Grok  7.6.6
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
grk::TileProcessor Struct Reference

Tile compressor/decompressor. More...

#include <TileProcessor.h>

Public Member Functions

 TileProcessor (CodeStream *codeStream, BufferedStream *stream)
 
 ~TileProcessor ()
 
bool init (GrkImage *output_image, bool isCompressor)
 Initializes tile processor (no buffer memory is allocated) More...
 
bool pre_write_tile (void)
 
bool compress_tile_part (uint32_t *tile_bytes_written)
 Compress tile part. More...
 
bool pre_compress_first_tile_part (void)
 
bool do_compress (void)
 Compress tile. More...
 
bool decompress_tile_t1 (void)
 T1 decompress. More...
 
bool decompress_tile_t2 (ChunkBuffer *src_buf)
 T2 decompress. More...
 
bool copy_uncompressed_data_to_tile (uint8_t *p_src, uint64_t src_length)
 Copies tile data from the given memory block onto the system. More...
 
bool needs_rate_control ()
 
void copy_image_to_tile ()
 
bool prepare_sod_decoding (CodeStream *codeStream)
 

Public Attributes

uint16_t m_tile_index
 index of tile being currently compressed/decompressed More...
 
bool m_first_poc_tile_part
 Compressing Only true for first POC tile part, otherwise false. More...
 
uint8_t m_tile_part_index
 Compressing Only index of tile part being currently coding. More...
 
uint32_t tile_part_data_length
 
uint8_t totnum_tp
 Compressing Only Total number of tile parts of the tile. More...
 
uint32_t pino
 Compressing Only Current packet iterator number. More...
 
grk_tiletile
 info on image tile More...
 
GrkImageimage
 image header More...
 
grk_plugin_tilecurrent_plugin_tile
 
bool wholeTileDecompress
 
PacketLengthMarkersplt_markers
 
CodingParamsm_cp
 Coding parameters. More...
 
PacketTracker m_packetTracker
 
BufferedStreamm_stream
 
bool m_corrupt_packet
 

Private Member Functions

bool t2_decompress (ChunkBuffer *src_buf, uint64_t *p_data_read)
 
bool is_whole_tilecomp_decoding (uint32_t compno)
 Returns whether a tile component should be fully decompressed, taking into account win_* members. More...
 
bool need_mct_decompress (uint32_t compno)
 
bool mct_decompress ()
 
bool dc_level_shift_decompress ()
 
bool dc_level_shift_encode ()
 
bool mct_encode ()
 
bool dwt_encode ()
 
void t1_encode ()
 
bool t2_encode (uint32_t *packet_bytes_written)
 
bool rate_allocate (void)
 
bool layer_needs_rate_control (uint32_t layno)
 
bool make_single_lossless_layer ()
 
void makelayer_final (uint32_t layno)
 
bool pcrd_bisect_simple (uint32_t *p_data_written)
 
void make_layer_simple (uint32_t layno, double thresh, bool final)
 
bool pcrd_bisect_feasible (uint32_t *p_data_written)
 
void makelayer_feasible (uint32_t layno, uint16_t thresh, bool final)
 

Private Attributes

uint32_t tp_pos
 position of the tile part flag in progression order More...
 
TileCodingParamsm_tcp
 

Detailed Description

Tile compressor/decompressor.

Constructor & Destructor Documentation

◆ TileProcessor()

grk::TileProcessor::TileProcessor ( CodeStream codeStream,
BufferedStream stream 
)
explicit

◆ ~TileProcessor()

grk::TileProcessor::~TileProcessor ( )

References plt_markers, and tile.

Member Function Documentation

◆ compress_tile_part()

bool grk::TileProcessor::compress_tile_part ( uint32_t *  tile_bytes_written)

Compress tile part.

Parameters
tile_bytes_writtennumber of bytes written to stream
Returns
true if the coding is successful.

References J2K_MS_SOD, m_stream, m_tile_part_index, plt_markers, t2_encode(), grk::PacketLengthMarkers::write(), and grk::BufferedStream::write_short().

Referenced by grk::CodeStream::write_tile_part().

◆ copy_image_to_tile()

void grk::TileProcessor::copy_image_to_tile ( )

◆ copy_uncompressed_data_to_tile()

bool grk::TileProcessor::copy_uncompressed_data_to_tile ( uint8_t *  p_src,
uint64_t  src_length 
)

Copies tile data from the given memory block onto the system.

References _grk_image::comps, grk::grk_tile::comps, _grk_image_comp::data, image, _grk_image::numcomps, and tile.

◆ dc_level_shift_decompress()

bool grk::TileProcessor::dc_level_shift_decompress ( )
private

◆ dc_level_shift_encode()

bool grk::TileProcessor::dc_level_shift_encode ( )
private

◆ decompress_tile_t1()

bool grk::TileProcessor::decompress_tile_t1 ( void  )

◆ decompress_tile_t2()

bool grk::TileProcessor::decompress_tile_t2 ( ChunkBuffer src_buf)

◆ do_compress()

bool grk::TileProcessor::do_compress ( void  )

◆ dwt_encode()

bool grk::TileProcessor::dwt_encode ( )
private

◆ init()

bool grk::TileProcessor::init ( GrkImage output_image,
bool  isCompressor 
)

◆ is_whole_tilecomp_decoding()

bool grk::TileProcessor::is_whole_tilecomp_decoding ( uint32_t  compno)
private

Returns whether a tile component should be fully decompressed, taking into account win_* members.

Parameters
compnoComponent number
Returns
true if the tile component should be fully decompressed

References grk::TileComponentWindowBuffer< T >::bounds(), grk::grk_tile::comps, grk::TileComponent::getBuffer(), grk::grk_rectangle< T >::intersection(), grk::shift, and tile.

Referenced by decompress_tile_t2().

◆ layer_needs_rate_control()

bool grk::TileProcessor::layer_needs_rate_control ( uint32_t  layno)
private

◆ make_layer_simple()

void grk::TileProcessor::make_layer_simple ( uint32_t  layno,
double  thresh,
bool  final 
)
private

◆ make_single_lossless_layer()

bool grk::TileProcessor::make_single_lossless_layer ( )
private

◆ makelayer_feasible()

void grk::TileProcessor::makelayer_feasible ( uint32_t  layno,
uint16_t  thresh,
bool  final 
)
private

◆ makelayer_final()

void grk::TileProcessor::makelayer_final ( uint32_t  layno)
private

◆ mct_decompress()

bool grk::TileProcessor::mct_decompress ( )
private

◆ mct_encode()

bool grk::TileProcessor::mct_encode ( )
private

◆ need_mct_decompress()

bool grk::TileProcessor::need_mct_decompress ( uint32_t  compno)
private

◆ needs_rate_control()

bool grk::TileProcessor::needs_rate_control ( )

◆ pcrd_bisect_feasible()

bool grk::TileProcessor::pcrd_bisect_feasible ( uint32_t *  p_data_written)
private

◆ pcrd_bisect_simple()

bool grk::TileProcessor::pcrd_bisect_simple ( uint32_t *  p_data_written)
private

◆ pre_compress_first_tile_part()

bool grk::TileProcessor::pre_compress_first_tile_part ( void  )

◆ pre_write_tile()

bool grk::TileProcessor::pre_write_tile ( void  )

◆ prepare_sod_decoding()

bool grk::TileProcessor::prepare_sod_decoding ( CodeStream codeStream)

◆ rate_allocate()

bool grk::TileProcessor::rate_allocate ( void  )
private

◆ t1_encode()

void grk::TileProcessor::t1_encode ( )
private

◆ t2_decompress()

bool grk::TileProcessor::t2_decompress ( ChunkBuffer src_buf,
uint64_t *  p_data_read 
)
private

References m_tile_index.

Referenced by decompress_tile_t2().

◆ t2_encode()

bool grk::TileProcessor::t2_encode ( uint32_t *  packet_bytes_written)
private

Member Data Documentation

◆ current_plugin_tile

grk_plugin_tile* grk::TileProcessor::current_plugin_tile

◆ image

GrkImage* grk::TileProcessor::image

◆ m_corrupt_packet

bool grk::TileProcessor::m_corrupt_packet

◆ m_cp

CodingParams* grk::TileProcessor::m_cp

◆ m_first_poc_tile_part

bool grk::TileProcessor::m_first_poc_tile_part

Compressing Only true for first POC tile part, otherwise false.

Referenced by grk::CodeStream::post_write_tile(), pre_write_tile(), and t2_encode().

◆ m_packetTracker

PacketTracker grk::TileProcessor::m_packetTracker

◆ m_stream

BufferedStream* grk::TileProcessor::m_stream

◆ m_tcp

TileCodingParams* grk::TileProcessor::m_tcp
private

◆ m_tile_index

uint16_t grk::TileProcessor::m_tile_index

◆ m_tile_part_index

uint8_t grk::TileProcessor::m_tile_part_index

Compressing Only index of tile part being currently coding.

m_tile_part_index holds the total number of tile parts encoded thus far while the compressor is compressing the current tile part.

Referenced by compress_tile_part(), grk::CodeStream::post_write_tile(), pre_compress_first_tile_part(), pre_write_tile(), and grk::CodeStream::write_tile_part().

◆ pino

uint32_t grk::TileProcessor::pino

Compressing Only Current packet iterator number.

Referenced by grk::CodeStream::post_write_tile(), and t2_encode().

◆ plt_markers

PacketLengthMarkers* grk::TileProcessor::plt_markers

◆ tile

grk_tile* grk::TileProcessor::tile

◆ tile_part_data_length

uint32_t grk::TileProcessor::tile_part_data_length

◆ totnum_tp

uint8_t grk::TileProcessor::totnum_tp

Compressing Only Total number of tile parts of the tile.

Referenced by pre_write_tile().

◆ tp_pos

uint32_t grk::TileProcessor::tp_pos
private

position of the tile part flag in progression order

Referenced by pcrd_bisect_feasible(), pcrd_bisect_simple(), t2_encode(), and TileProcessor().

◆ wholeTileDecompress

bool grk::TileProcessor::wholeTileDecompress

The documentation for this struct was generated from the following files: