|
Grok 15.1.0
|
#include <CodeStreamCompress.h>
Public Member Functions | |
| CodeStreamCompress (BufferedStream *stream) | |
| virtual | ~CodeStreamCompress () |
| bool | start (void) |
| bool | init (grk_cparameters *p_param, GrkImage *p_image) |
| uint64_t | compress (grk_plugin_tile *tile) |
| Public Member Functions inherited from grk::CodeStream | |
| CodeStream (BufferedStream *stream) | |
| virtual | ~CodeStream () |
| TileProcessor * | currentProcessor (void) |
| BufferedStream * | getStream () |
| GrkImage * | getHeaderImage (void) |
| grk_plugin_tile * | getCurrentPluginTile () |
| CodingParams * | getCodingParams (void) |
| Public Member Functions inherited from grk::ICodeStreamCompress | |
| virtual | ~ICodeStreamCompress ()=default |
Static Public Member Functions | |
| static char * | convertProgressionOrder (GRK_PROG_ORDER prg_order) |
| static uint16_t | getPocSize (uint32_t num_components, uint32_t l_nb_poc) |
| Static Public Member Functions inherited from grk::CodeStream | |
| 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 tile_index, 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 | |
| Protected Member Functions inherited from grk::CodeStream | |
| bool | exec (std::vector< PROCEDURE_FUNC > &p_procedure_list) |
| Protected Attributes inherited from grk::CodeStream | |
| 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 grk::CodeStream::CodeStream(), and grk::CodeStream::cp_.
|
virtual |
|
private |
References grk::CodeStream::codeStreamInfo, and grk::CodeStream::stream_.
Referenced by init_header_writing().
|
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 compare_SPCod_SPCoc(), and grk::CodeStream::cp_.
Referenced by write_all_coc().
|
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. |
References compare_SQcd_SQcc().
Referenced by write_all_qcc().
|
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 grk::CodeStream::cp_, and J2K_CCP_CSTY_PRT.
Referenced by compare_coc().
|
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 grk::CodeStream::cp_, J2K_CCP_QNTSTY_NOQNT, and J2K_CCP_QNTSTY_SIQNT.
Referenced by compare_qcc().
|
virtual |
|
private |
References grk::CodeStream::cp_, GRK_MAXRLVLS, and grk::grklog.
Referenced by start().
|
static |
References grk::j2k_prog_order::enum_prog, grk::j2k_prog_order_list, and grk::j2k_prog_order::str_prog.
Referenced by grk::PacketIter::enable_tile_part_generation(), and getNumTilePartsForProgression().
|
private |
References grk::CodeStream::cp_, grk::CodeStream::exec(), grk::CodeStream::procedure_list_, write_eoc(), and write_tlm_end().
Referenced by compress().
|
private |
Gets the size taken by writing a SPCod or SPCoc for the given tile and component.
| comp_no | the component being outputted. |
References grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), J2K_CCP_CSTY_PRT, and grk::SPCod_SPCoc_len.
Referenced by write_coc(), and write_cod().
|
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 grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), J2K_CCP_QNTSTY_NOQNT, and J2K_CCP_QNTSTY_SIQNT.
Referenced by write_qcc(), and write_qcd().
|
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 grk::CodeStream::cp_, getNumTilePartsForProgression(), grk::grklog, grk::maxTilePartsPerTileJ2K, grk::maxTotalTilePartsJ2K, and grk::PacketManager::updateCompressParams().
Referenced by init_header_writing().
|
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 convertProgressionOrder(), grk::CodeStream::cp_, and grk::maxTilePartsPerTileJ2K.
Referenced by getNumTileParts(), and writeTileParts().
|
static |
Referenced by grk::TileProcessor::doCompress(), writePoc(), and writeTilePart().
|
virtual |
Implements grk::ICodeStreamCompress.
References grk::GrkImage::applyICC(), grk::mct::calculate_norms(), grk::ceildiv(), grk::GrkImage::copyHeader(), grk::CodeStream::cp_, grk::floorlog2(), GRK_CBLKSTY_HT_ONLY, GRK_CLRSPC_EYCC, GRK_CLRSPC_SYCC, 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_JPH_RSIZ_FLAG, grk::grk_malloc(), GRK_MAX_COMMENT_LENGTH, GRK_MAXRLVLS, GRK_PROFILE_CINEMA_S2K, GRK_PROFILE_CINEMA_S4K, GRK_PROFILE_NONE, GRK_PROFILE_PART2, grk_version(), grk::grklog, grk::CodeStream::headerImage_, init_mct_encoding(), grk::Profile::is_broadcast_compliant(), grk::Profile::is_cinema_compliant(), grk::Profile::is_imf_compliant(), J2K_CCP_CSTY_PRT, J2K_CCP_QNTSTY_NOQNT, J2K_CCP_QNTSTY_SEQNT, J2K_CP_CSTY_PRT, grk::maxNumComponentsJ2K, grk::maxNumTilesJ2K, grk::Profile::set_broadcast_parameters(), grk::Profile::set_cinema_parameters(), grk::Profile::set_imf_parameters(), and validateProgressionOrders().
|
private |
References cacheEndOfHeader(), grk::CodeStream::codeStreamInfo, compressorState_, grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), getNumTileParts(), GRK_EXTENSION_MCT, GRK_PROFILE_PART2, grk::CodeStream::procedure_list_, updateRates(), write_all_coc(), write_all_qcc(), write_cap(), write_cod(), write_com(), write_mct_data_group(), write_qcd(), write_regions(), write_siz(), write_soc(), write_tlm_begin(), and writePoc().
Referenced by start().
|
private |
References grk::grk_mct_data::array_type_, grk::grk_mct_data::data_, grk::grk_mct_data::data_size_, grk::TileComponentCodingParams::dc_level_shift_, grk::grk_simple_mcc_decorrelation_data::decorrelation_array_, grk::default_number_mct_records, grk::grk_mct_data::element_type_, grk::grk_free(), grk::grk_malloc(), grk::grk_realloc(), grk::grk_mct_data::index_, grk::grk_simple_mcc_decorrelation_data::index_, grk::grk_simple_mcc_decorrelation_data::is_irreversible_, grk::j2k_mct_write_functions_from_float, grk::TileCodingParams::mcc_records_, grk::TileCodingParams::mct, grk::TileCodingParams::mct_decoding_matrix_, grk::MCT_ELEMENT_SIZE, grk::TileCodingParams::mct_records_, grk::MCT_TYPE_DECORRELATION, grk::MCT_TYPE_FLOAT, grk::MCT_TYPE_OFFSET, grk::grk_simple_mcc_decorrelation_data::nb_comps_, grk::TileCodingParams::nb_max_mcc_records_, grk::TileCodingParams::nb_max_mct_records_, grk::TileCodingParams::nb_mcc_records_, grk::TileCodingParams::nb_mct_records_, grk::grk_simple_mcc_decorrelation_data::offset_array_, and grk::TileCodingParams::tccps.
Referenced by init().
|
private |
References grk::CodeStream::cp_, and grk::CodeStream::headerImage_.
Referenced by start().
|
virtual |
|
private |
References grk::CodeStream::cp_, grk::CodeStream::headerImage_, and grk::CodeStream::stream_.
Referenced by init_header_writing().
|
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 grk::grklog.
Referenced by init().
|
private |
Writes COC marker for each component.
References compare_coc(), grk::CodeStream::getHeaderImage(), and write_coc().
Referenced by init_header_writing().
|
private |
Writes QCC marker for each component.
References compare_qcc(), grk::CodeStream::getHeaderImage(), and write_qcc().
Referenced by init_header_writing().
|
private |
Writes the CAP marker.
References grk::CodeStream::cp_, and grk::CodeStream::stream_.
Referenced by init_header_writing().
|
private |
Writes the CBD marker (Component bit depth definition)
References grk::CodeStream::getHeaderImage(), grk::J2K_CBD, and grk::CodeStream::stream_.
Referenced by write_mct_data_group().
|
private |
|
private |
Writes the COC marker (Coding style component)
| comp_no | the index of the component to output. |
| stream | buffered stream. |
Referenced by write_all_coc().
|
private |
Writes the COD marker (Coding style default)
References grk::CodeStream::cp_, get_SPCod_SPCoc_size(), grk::grklog, grk::J2K_COD, grk::CodeStream::stream_, and write_SPCod_SPCoc().
Referenced by init_header_writing().
|
private |
Writes the COM marker (comment)
References grk::CodeStream::cp_, GRK_MAX_COMMENT_LENGTH, grk::grklog, grk::J2K_COM, and grk::CodeStream::stream_.
Referenced by init_header_writing().
|
private |
Writes the EOC marker (End of Codestream)
References grk::J2K_EOC, and grk::CodeStream::stream_.
Referenced by end().
|
private |
Writes the MCC marker (Multiple Component Collection)
| p_mcc_record | MCC record |
| stream | buffered stream. |
References grk::grk_simple_mcc_decorrelation_data::decorrelation_array_, grk::grk_mct_data::index_, grk::grk_simple_mcc_decorrelation_data::index_, grk::grk_simple_mcc_decorrelation_data::is_irreversible_, grk::J2K_MCC, grk::grk_simple_mcc_decorrelation_data::nb_comps_, grk::grk_simple_mcc_decorrelation_data::offset_array_, grk::BufferedStream::write24(), grk::BufferedStream::writeByte(), and grk::BufferedStream::writeShort().
Referenced by write_mct_data_group().
|
private |
Writes the MCO marker (Multiple component transformation ordering)
References grk::CodeStream::cp_, grk::J2K_MCO, and grk::CodeStream::stream_.
Referenced by write_mct_data_group().
|
private |
Writes the CBD-MCT-MCC-MCO markers (Multi components transform)
References grk::CodeStream::cp_, grk::CodeStream::stream_, write_cbd(), write_mcc_record(), write_mco(), and write_mct_record().
Referenced by init_header_writing().
|
private |
Writes the MCT marker (Multiple Component Transform)
| p_mct_record | MCT record |
| stream | buffered stream. |
References grk::grk_mct_data::array_type_, grk::grk_mct_data::data_, grk::grk_mct_data::data_size_, grk::grk_mct_data::element_type_, grk::grk_mct_data::index_, grk::J2K_MCT, grk::BufferedStream::writeBytes(), and grk::BufferedStream::writeShort().
Referenced by write_mct_data_group().
|
private |
Writes the QCC marker (quantization component)
| tile_index | current tile index |
| comp_no | the index of the component to output. |
| stream | buffered stream. |
Referenced by write_all_qcc().
|
private |
|
private |
Writes the QCD marker (quantization default)
References get_SQcd_SQcc_size(), grk::grklog, grk::J2K_QCD, grk::CodeStream::stream_, and write_SQcd_SQcc().
Referenced by init_header_writing().
|
private |
Writes regions of interests.
References grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), and write_rgn().
Referenced by init_header_writing().
|
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 grk::CodeStream::cp_, grk::J2K_RGN, and grk::CodeStream::stream_.
Referenced by write_regions().
|
private |
Writes the SIZ marker (image and tile size)
References grk::CodeStream::stream_, and grk::SIZMarker::write().
Referenced by init_header_writing().
|
private |
Writes the SOC marker (Start Of Codestream)
References grk::J2K_SOC, and grk::CodeStream::stream_.
Referenced by init_header_writing().
|
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 grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), J2K_CCP_CSTY_PRT, and grk::CodeStream::stream_.
Referenced by write_coc(), and write_cod().
|
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 grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), J2K_CCP_QNTSTY_NOQNT, J2K_CCP_QNTSTY_SIQNT, and grk::CodeStream::stream_.
Referenced by write_qcc(), and write_qcd().
|
private |
Begin writing the TLM marker (Tile Length Marker)
References compressorState_, grk::CodeStream::cp_, and grk::CodeStream::stream_.
Referenced by init_header_writing().
|
private |
|
private |
Writes the POC marker (Progression Order Change)
References grk::CodeStream::cp_, grk::CodeStream::getHeaderImage(), getPocSize(), grk::J2K_POC, and grk::CodeStream::stream_.
Referenced by init_header_writing(), and writeTilePart().
|
private |
References grk::TileProcessor::canPreCalculateTileLen(), grk::TileProcessor::canWritePocMarker(), grk::CodeStream::cp_, grk::TileProcessor::getIndex(), getPocSize(), grk::TileProcessor::getPreCalculatedTileLen(), grk::grklog, grk::CodeStream::headerImage_, grk::sot_marker_segment_len_minus_tile_data_len, grk::CodeStream::stream_, grk::TileProcessor::tilePartCounter_, grk::SOTMarker::write(), grk::SOTMarker::write_psot(), writePoc(), and grk::TileProcessor::writeTilePartT2().
Referenced by writeTileParts().
|
private |
References grk::CodeStream::cp_, grk::CodeStream::currentTileProcessor_, grk::TileProcessor::first_poc_tile_part_, grk::TileProcessor::getIndex(), getNumTilePartsForProgression(), grk::grklog, grk::TileProcessor::incrementIndex(), grk::maxTilePartsPerTileJ2K, grk::TileProcessor::pino, grk::TileProcessor::tilePartCounter_, and writeTilePart().
Referenced by compress().
|
private |
Referenced by init_header_writing(), and write_tlm_begin().