Grok 10.0.5
|
#include <TileCache.h>
Public Member Functions | |
CodeStreamCompress (BufferedStream *stream) | |
virtual | ~CodeStreamCompress () |
bool | start (void) |
bool | init (grk_cparameters *p_param, GrkImage *p_image) |
bool | compress (grk_plugin_tile *tile) |
![]() | |
CodeStream (BufferedStream *stream) | |
virtual | ~CodeStream () |
TileProcessor * | currentProcessor (void) |
BufferedStream * | getStream () |
GrkImage * | getHeaderImage (void) |
grk_plugin_tile * | getCurrentPluginTile () |
CodingParams * | getCodingParams (void) |
![]() | |
virtual | ~ICodeStreamCompress ()=default |
Static Public Member Functions | |
static char * | convertProgressionOrder (GRK_PROG_ORDER prg_order) |
static uint16_t | getPocSize (uint32_t numComponents, uint32_t l_nb_poc) |
![]() | |
static std::string | markerString (uint16_t marker) |
Private Member Functions | |
bool | init_header_writing (void) |
bool | cacheEndOfHeader (void) |
bool | end (void) |
bool | writeTilePart (TileProcessor *tileProcessor) |
bool | writeTileParts (TileProcessor *tileProcessor) |
bool | updateRates (void) |
bool | compressValidation (void) |
bool | mct_validation (void) |
bool | write_soc () |
Writes the SOC marker (Start Of Codestream) | |
bool | write_siz () |
Writes the SIZ marker (image and tile size) | |
bool | write_cap () |
Writes the CAP marker. | |
bool | write_com () |
Writes the COM marker (comment) | |
bool | write_cod () |
Writes the COD marker (Coding style default) | |
bool | compare_coc (uint32_t first_comp_no, uint32_t second_comp_no) |
Compares 2 COC markers (Coding style component) | |
bool | write_coc (uint32_t comp_no, BufferedStream *stream) |
Writes the COC marker (Coding style component) | |
bool | write_coc (uint32_t comp_no) |
bool | write_qcd () |
Writes the QCD marker (quantization default) | |
bool | compare_qcc (uint32_t first_comp_no, uint32_t second_comp_no) |
Compare QCC markers (quantization component) | |
bool | write_qcc (uint16_t tileIndex, uint32_t comp_no, BufferedStream *stream) |
Writes the QCC marker (quantization component) | |
bool | write_qcc (uint32_t comp_no) |
bool | writePoc () |
Writes the POC marker (Progression Order Change) | |
bool | write_tlm_end () |
End writing the updated tlm. | |
bool | write_tlm_begin () |
Begin writing the TLM marker (Tile Length Marker) | |
bool | compare_SPCod_SPCoc (uint32_t first_comp_no, uint32_t second_comp_no) |
Compare 2 a SPCod/ SPCoc elements, i.e. | |
bool | write_SPCod_SPCoc (uint32_t comp_no) |
Writes a SPCod or SPCoc element, i.e. | |
uint32_t | get_SPCod_SPCoc_size (uint32_t comp_no) |
Gets the size taken by writing a SPCod or SPCoc for the given tile and component. | |
uint32_t | get_SQcd_SQcc_size (uint32_t comp_no) |
Gets the size taken by writing SQcd or SQcc element, i.e. | |
bool | compare_SQcd_SQcc (uint32_t first_comp_no, uint32_t second_comp_no) |
Compares 2 SQcd or SQcc element, i.e. | |
bool | write_SQcd_SQcc (uint32_t comp_no) |
Writes a SQcd or SQcc element, i.e. | |
bool | write_mct_record (grk_mct_data *p_mct_record, BufferedStream *stream) |
Writes the MCT marker (Multiple Component Transform) | |
bool | write_mcc_record (grk_simple_mcc_decorrelation_data *p_mcc_record, BufferedStream *stream) |
Writes the MCC marker (Multiple Component Collection) | |
bool | write_mco () |
Writes the MCO marker (Multiple component transformation ordering) | |
bool | write_cbd () |
Writes the CBD marker (Component bit depth definition) | |
bool | write_all_coc () |
Writes COC marker for each component. | |
bool | write_all_qcc () |
Writes QCC marker for each component. | |
bool | write_regions () |
Writes regions of interests. | |
bool | write_rgn (uint16_t tile_no, uint32_t comp_no, uint32_t nb_comps) |
Writes the RGN marker (Region Of Interest) | |
bool | write_eoc () |
Writes the EOC marker (End of Codestream) | |
bool | write_mct_data_group () |
Writes the CBD-MCT-MCC-MCO markers (Multi components transform) | |
bool | getNumTileParts (uint16_t *p_nb_tile_parts, GrkImage *image) |
Calculates the total number of tile parts needed by the compressor to compress such an image. | |
uint64_t | getNumTilePartsForProgression (uint32_t pino, uint16_t tileno) |
Gets the number of tile parts used for the given change of progression (if any) and the given tile. | |
bool | validateProgressionOrders (const grk_progression *progressions, uint32_t numProgressions, uint8_t numResolutions, uint16_t numcomps, uint16_t numlayers) |
Validate progression orders. | |
bool | init_mct_encoding (TileCodingParams *p_tcp, GrkImage *p_image) |
Private Attributes | |
CompressorState | compressorState_ |
Additional Inherited Members | |
![]() | |
bool | exec (std::vector< PROCEDURE_FUNC > &p_procedure_list) |
![]() | |
CodingParams | cp_ |
CodeStreamInfo * | codeStreamInfo |
std::vector< PROCEDURE_FUNC > | procedure_list_ |
std::vector< PROCEDURE_FUNC > | validation_list_ |
GrkImage * | headerImage_ |
TileProcessor * | currentTileProcessor_ |
BufferedStream * | stream_ |
std::map< uint32_t, TileProcessor * > | processors_ |
grk_plugin_tile * | current_plugin_tile |
grk::CodeStreamCompress::CodeStreamCompress | ( | BufferedStream * | stream | ) |
References cp_.
|
virtual |
|
private |
References codeStreamInfo, grk::CodeStreamInfo::setMainHeaderEnd(), and stream_.
|
private |
Compares 2 COC markers (Coding style component)
first_comp_no | the index of the first component to compare. |
second_comp_no | the index of the second component to compare. |
References cp_.
|
private |
Compare QCC markers (quantization component)
first_comp_no | the index of the first component to compare. |
second_comp_no | the index of the second component to compare. |
|
private |
Compare 2 a SPCod/ SPCoc elements, i.e.
the coding style of a given component of a tile.
first_comp_no | The 1st component number to compare. |
second_comp_no | The 1st component number to compare. |
References cp_, and J2K_CCP_CSTY_PRT.
|
private |
Compares 2 SQcd or SQcc element, i.e.
the quantization values of a band in the QCD or QCC.
first_comp_no | the first component number to compare. |
second_comp_no | the second component number to compare. |
References cp_, J2K_CCP_QNTSTY_NOQNT, and J2K_CCP_QNTSTY_SIQNT.
|
virtual |
|
private |
References cp_, grk::GRK_ERROR(), GRK_J2K_MAXRLVLS, and valid.
|
static |
|
private |
References cp_, and procedure_list_.
|
private |
Gets the size taken by writing a SPCod or SPCoc for the given tile and component.
comp_no | the component being outputted. |
References cp_, J2K_CCP_CSTY_PRT, numcomps, and grk::SPCod_SPCoc_len.
|
private |
Gets the size taken by writing SQcd or SQcc element, i.e.
the quantization values of a band in the QCD or QCC.
comp_no | the component being output. |
References cp_, J2K_CCP_QNTSTY_NOQNT, J2K_CCP_QNTSTY_SIQNT, and numcomps.
|
private |
Calculates the total number of tile parts needed by the compressor to compress such an image.
If not enough memory is available, then the function return false.
p_nb_tile_parts | total number of tile parts in whole image. |
image | image to compress. |
References cp_, grk::GRK_ERROR(), image, grk::maxTilePartsPerTileJ2K, grk::maxTotalTilePartsJ2K, pino, and tileno.
|
private |
Gets the number of tile parts used for the given change of progression (if any) and the given tile.
pino | the offset of the given poc (i.e. its position in the coding parameter). |
tileno | the given tile. |
References cp, cp_, grk::maxTilePartsPerTileJ2K, pino, prog, and tileno.
|
static |
|
virtual |
Implements grk::grk::ICodeStreamCompress.
References grk::_grk_cparameters::allocationByQuality, grk::_grk_cparameters::allocationByRateDistoration, grk::_grk_cparameters::apply_icc_, grk::_grk_cparameters::cblk_sty, grk::_grk_cparameters::cblockh_init, grk::_grk_cparameters::cblockw_init, grk::ceildiv(), grk::_grk_image::color_space, grk::_grk_cparameters::comment, grk::_grk_cparameters::comment_len, grk::_grk_progression::compE, compno, grk::_grk_progression::compS, grk::_grk_image::comps, cp_, grk::_grk_cparameters::csty, grk::_grk_image_comp::data, grk::_grk_image_comp::dx, grk::_grk_image_comp::dy, grk::_grk_cparameters::enableTilePartGeneration, grk::floorlog2(), GRK_CBLKSTY_HT, grk::GRK_CLRSPC_EYCC, grk::GRK_CLRSPC_SYCC, grk::GRK_ERROR(), GRK_EXTENSION_MCT, GRK_EXTENSION_NONE, grk::grk_free(), GRK_IS_BROADCAST, GRK_IS_CINEMA, GRK_IS_IMF, GRK_IS_PART2, GRK_IS_STORAGE, GRK_J2K_MAXRLVLS, GRK_JPH_RSIZ_FLAG, grk::grk_malloc(), GRK_MAX_COMMENT_LENGTH, GRK_PROFILE_CINEMA_S2K, GRK_PROFILE_CINEMA_S4K, GRK_PROFILE_NONE, GRK_PROFILE_PART2, grk::grk_version(), grk::GRK_WARN(), grk::_grk_image_comp::h, headerImage_, image, grk::_grk_cparameters::irreversible, grk::_grk_cparameters::is_binary_comment, J2K_CCP_CSTY_PRT, J2K_CCP_QNTSTY_NOQNT, J2K_CCP_QNTSTY_SEQNT, J2K_CP_CSTY_PRT, grk::_grk_progression::layE, grk::_grk_cparameters::layer_distortion, grk::_grk_cparameters::layer_rate, grk::_grk_cparameters::max_comp_size, grk::_grk_cparameters::max_cs_size, grk::maxNumComponentsJ2K, grk::maxNumTilesJ2K, grk::_grk_cparameters::mct, grk::_grk_cparameters::mct_data, grk::_grk_cparameters::newTilePartProgressionDivider, grk::_grk_cparameters::num_comments, grk::_grk_image::numcomps, grk::_grk_cparameters::numgbits, numgbits, grk::_grk_cparameters::numlayers, grk::_grk_cparameters::numpocs, grk::_grk_cparameters::numresolution, grk::_grk_cparameters::prch_init, grk::_grk_cparameters::prcw_init, grk::_grk_image_comp::prec, grk::_grk_cparameters::prog_order, grk::_grk_cparameters::progression, grk::_grk_cparameters::rateControlAlgorithm, grk::_grk_cparameters::res_spec, grk::_grk_progression::resE, grk::_grk_progression::resS, grk::_grk_cparameters::roi_compno, grk::_grk_cparameters::roi_shift, grk::_grk_cparameters::rsiz, grk::_grk_image_comp::sgnd, grk::_grk_progression::specifiedCompressionPocProg, grk::_grk_cparameters::t_height, grk::_grk_cparameters::t_width, grk::_grk_cparameters::tile_size_on, grk::_grk_progression::tileno, tileno, grk::_grk_cparameters::tx0, grk::_grk_cparameters::ty0, version, grk::_grk_image_comp::w, grk::_grk_cparameters::writePLT, grk::_grk_cparameters::writeTLM, grk::_grk_image::x0, grk::_grk_image::x1, grk::_grk_image::y0, and grk::_grk_image::y1.
|
private |
References codeStreamInfo, compressorState_, cp_, GRK_EXTENSION_MCT, GRK_PROFILE_PART2, and procedure_list_.
|
private |
References grk::grk::grk_mct_data::array_type_, data, grk::grk::grk_mct_data::data_, grk::grk::grk_mct_data::data_size_, grk::grk::TileComponentCodingParams::dc_level_shift_, grk::grk::grk_simple_mcc_decorrelation_data::decorrelation_array_, grk::default_number_mct_records, grk::grk::grk_mct_data::element_type_, grk::grk_free(), grk::grk_malloc(), grk::grk_realloc(), grk::grk::grk_mct_data::index_, grk::grk::grk_simple_mcc_decorrelation_data::index_, grk::grk::grk_simple_mcc_decorrelation_data::is_irreversible_, grk::j2k_mct_write_functions_from_float, grk::grk::TileCodingParams::mcc_records_, grk::grk::TileCodingParams::mct, grk::grk::TileCodingParams::mct_decoding_matrix_, grk::MCT_ELEMENT_SIZE, grk::grk::TileCodingParams::mct_records_, grk::MCT_TYPE_DECORRELATION, grk::MCT_TYPE_FLOAT, grk::MCT_TYPE_OFFSET, grk::grk::grk_simple_mcc_decorrelation_data::nb_comps_, grk::grk::TileCodingParams::nb_max_mcc_records_, grk::grk::TileCodingParams::nb_max_mct_records_, grk::grk::TileCodingParams::nb_mcc_records_, grk::grk::TileCodingParams::nb_mct_records_, grk::_grk_image::numcomps, grk::grk::grk_simple_mcc_decorrelation_data::offset_array_, and grk::grk::TileCodingParams::tccps.
|
private |
References cp_, headerImage_, and valid.
|
virtual |
Implements grk::grk::ICodeStreamCompress.
References procedure_list_, and validation_list_.
|
private |
|
private |
Validate progression orders.
progressions | progression orders. |
numProgressions | number of progression orders. |
numResolutions | number of resolutions. |
numcomps | number of components |
numlayers | number of layers. |
References compno, grk::GRK_ERROR(), layno, resno, and grk::_grk_progression::resS.
|
private |
Writes COC marker for each component.
References compno.
|
private |
Writes QCC marker for each component.
References compno.
|
private |
|
private |
Writes the CBD marker (Component bit depth definition)
References bpc, grk::_grk_image::comps, image, grk::J2K_MS_CBD, grk::_grk_image::numcomps, numcomps, and stream_.
|
private |
References grk::cod_coc_len, cp_, image, grk::J2K_MS_COC, grk::_grk_image::numcomps, and stream_.
|
private |
Writes the COC marker (Coding style component)
comp_no | the index of the component to output. |
stream | buffered stream. |
|
private |
Writes the COD marker (Coding style default)
References cp_, grk::GRK_ERROR(), grk::J2K_MS_COD, and stream_.
|
private |
Writes the COM marker (comment)
References cp_, GRK_MAX_COMMENT_LENGTH, grk::GRK_WARN(), grk::J2K_MS_COM, and stream_.
|
private |
Writes the EOC marker (End of Codestream)
References grk::J2K_MS_EOC, and stream_.
|
private |
Writes the MCC marker (Multiple Component Collection)
p_mcc_record | MCC record |
stream | buffered stream. |
References grk::grk::grk_simple_mcc_decorrelation_data::decorrelation_array_, grk::grk::grk_mct_data::index_, grk::grk::grk_simple_mcc_decorrelation_data::index_, grk::grk::grk_simple_mcc_decorrelation_data::is_irreversible_, grk::J2K_MS_MCC, grk::grk::grk_simple_mcc_decorrelation_data::nb_comps_, grk::grk::grk_simple_mcc_decorrelation_data::offset_array_, and stream.
|
private |
Writes the MCO marker (Multiple component transformation ordering)
References cp_, grk::J2K_MS_MCO, and stream_.
|
private |
|
private |
Writes the MCT marker (Multiple Component Transform)
p_mct_record | MCT record |
stream | buffered stream. |
References grk::grk::grk_mct_data::array_type_, grk::grk::grk_mct_data::data_, grk::grk::grk_mct_data::data_size_, grk::grk::grk_mct_data::element_type_, grk::grk::grk_mct_data::index_, grk::J2K_MS_MCT, and stream.
|
private |
Writes the QCC marker (quantization component)
tileIndex | current tile index |
comp_no | the index of the component to output. |
stream | buffered stream. |
|
private |
References grk::J2K_MS_QCC, numcomps, and stream_.
|
private |
Writes the QCD marker (quantization default)
References grk::GRK_ERROR(), grk::J2K_MS_QCD, and stream_.
|
private |
|
private |
Writes the RGN marker (Region Of Interest)
tile_no | the tile to output |
comp_no | the component to output |
nb_comps | the number of components |
References cp, cp_, grk::J2K_MS_RGN, and stream_.
|
private |
Writes the SIZ marker (image and tile size)
References stream_, and grk::grk::SIZMarker::write().
|
private |
Writes the SOC marker (Start Of Codestream)
References grk::J2K_MS_SOC, and stream_.
|
private |
Writes a SPCod or SPCoc element, i.e.
the coding style of a given component of a tile.
comp_no | the component number to output. |
References cp_, J2K_CCP_CSTY_PRT, numcomps, and stream_.
|
private |
Writes a SQcd or SQcc element, i.e.
the quantization values of a band in the QCD or QCC.
comp_no | the component number to output. |
References cp_, expn, J2K_CCP_QNTSTY_NOQNT, J2K_CCP_QNTSTY_SIQNT, mant, numcomps, and stream_.
|
private |
Begin writing the TLM marker (Tile Length Marker)
References compressorState_, cp_, and stream_.
|
private |
End writing the updated tlm.
References cp_.
|
private |
Writes the POC marker (Progression Order Change)
References cp_, image, grk::J2K_MS_POC, grk::_grk_image::numcomps, and stream_.
|
private |
|
private |
References cp_, currentTileProcessor_, grk::GRK_ERROR(), grk::maxTilePartsPerTileJ2K, pino, and tileProcessor.
|
private |