C# Класс CSJ2K.j2k.codestream.writer.PktEncoder

This class builds packets and keeps the state information of packet interdependencies. It also supports saving the state and reverting (restoring) to the last saved state, with the save() and restore() methods.

Each time the encodePacket() method is called a new packet is encoded, the packet header is returned by the method, and the packet body can be obtained with the getLastBodyBuf() and getLastBodyLen() methods.

Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
PktEncoder ( CodedCBlkDataSrcEnc infoSrc, CSJ2K.j2k.encoder.EncoderSpecs encSpec, Coord numPrec, CSJ2K.j2k.util.ParameterList pl ) : System

Creates a new packet encoder object, using the information from the 'infoSrc' object.

encodePacket ( int ly, int c, int r, int t, CSJ2K.j2k.entropy.encoder.CBlkRateDistStats cbs, int tIndx, CSJ2K.j2k.codestream.writer.BitOutputBuffer hbuf, byte bbuf, int pIdx ) : CSJ2K.j2k.codestream.writer.BitOutputBuffer

Encodes a packet and returns the buffer containing the encoded packet header. The code-blocks appear in a 3D array of CBlkRateDistStats, 'cbs'. The first index is the tile index in lexicographical order, the second index is the subband index (as defined in the Subband class), and the third index is the code-block index (whithin the subband tile) in lexicographical order as well. The indexes of the new truncation points for each code-block are specified by the 3D array of int 'tIndx'. The indices of this array are the same as for cbs. The truncation point indices in 'tIndx' are the indices of the elements of the 'truncIdxs' array, of the CBlkRateDistStats class, that give the real truncation points. If a truncation point index is negative it means that the code-block has not been included in any layer yet. If the truncation point is less than or equal to the highest truncation point used in previous layers then the code-block is not included in the packet. Otherwise, if larger, the code-block is included in the packet. The body of the packet can be obtained with the getLastBodyBuf() and getLastBodyLen() methods.

Layers must be coded in increasing order, in consecutive manner, for each tile, component and resolution level (e.g., layer 1, then layer 2, etc.). For different tile, component and/or resolution level no particular order must be followed.

getPrecInfo ( int t, int c, int r, int p ) : CSJ2K.j2k.codestream.PrecInfo

Returns information about a given precinct

reset ( ) : void

Resets the state of the object to the initial state, as if the object was just created.

restore ( ) : void

Restores the last saved state of this object. An IllegalArgumentException is thrown if no state has been saved.

save ( ) : void

Saves the current state of this object. The last saved state can be restored with the restore() method.

Приватные методы

Метод Описание
fillPrecInfo ( int t, int c, int r ) : void

Retrives precincts and code-blocks coordinates in the given resolution, component and tile. It terminates TagTreeEncoder initialization as well.

Описание методов

PktEncoder() публичный Метод

Creates a new packet encoder object, using the information from the 'infoSrc' object.
public PktEncoder ( CodedCBlkDataSrcEnc infoSrc, CSJ2K.j2k.encoder.EncoderSpecs encSpec, Coord numPrec, CSJ2K.j2k.util.ParameterList pl ) : System
infoSrc CodedCBlkDataSrcEnc The source of information to construct the object. /// ///
encSpec CSJ2K.j2k.encoder.EncoderSpecs The encoding parameters. /// ///
numPrec Coord Maximum number of precincts in each tile, component /// and resolution level. /// ///
pl CSJ2K.j2k.util.ParameterList ParameterList instance that holds command line options /// ///
Результат System

encodePacket() публичный Метод

Encodes a packet and returns the buffer containing the encoded packet header. The code-blocks appear in a 3D array of CBlkRateDistStats, 'cbs'. The first index is the tile index in lexicographical order, the second index is the subband index (as defined in the Subband class), and the third index is the code-block index (whithin the subband tile) in lexicographical order as well. The indexes of the new truncation points for each code-block are specified by the 3D array of int 'tIndx'. The indices of this array are the same as for cbs. The truncation point indices in 'tIndx' are the indices of the elements of the 'truncIdxs' array, of the CBlkRateDistStats class, that give the real truncation points. If a truncation point index is negative it means that the code-block has not been included in any layer yet. If the truncation point is less than or equal to the highest truncation point used in previous layers then the code-block is not included in the packet. Otherwise, if larger, the code-block is included in the packet. The body of the packet can be obtained with the getLastBodyBuf() and getLastBodyLen() methods.

Layers must be coded in increasing order, in consecutive manner, for each tile, component and resolution level (e.g., layer 1, then layer 2, etc.). For different tile, component and/or resolution level no particular order must be followed.

public encodePacket ( int ly, int c, int r, int t, CSJ2K.j2k.entropy.encoder.CBlkRateDistStats cbs, int tIndx, CSJ2K.j2k.codestream.writer.BitOutputBuffer hbuf, byte bbuf, int pIdx ) : CSJ2K.j2k.codestream.writer.BitOutputBuffer
ly int The layer index (starts at 1). /// ///
c int The component index. /// ///
r int The resolution level /// ///
t int Index of the current tile /// ///
cbs CSJ2K.j2k.entropy.encoder.CBlkRateDistStats The 3D array of coded code-blocks. /// ///
tIndx int The truncation point indices for each code-block. /// ///
hbuf CSJ2K.j2k.codestream.writer.BitOutputBuffer The header buffer. If null a new BitOutputBuffer is created /// and returned. This buffer is reset before anything is written to it. /// ///
bbuf byte The body buffer. If null a new one is created. If not large /// enough a new one is created. /// ///
pIdx int The precinct index. /// ///
Результат CSJ2K.j2k.codestream.writer.BitOutputBuffer

getPrecInfo() публичный Метод

Returns information about a given precinct
public getPrecInfo ( int t, int c, int r, int p ) : CSJ2K.j2k.codestream.PrecInfo
t int Tile index. /// ///
c int Component index. /// ///
r int Resolution level index. /// ///
p int Precinct index /// ///
Результат CSJ2K.j2k.codestream.PrecInfo

reset() публичный Метод

Resets the state of the object to the initial state, as if the object was just created.
public reset ( ) : void
Результат void

restore() публичный Метод

Restores the last saved state of this object. An IllegalArgumentException is thrown if no state has been saved.
public restore ( ) : void
Результат void

save() публичный Метод

Saves the current state of this object. The last saved state can be restored with the restore() method.
public save ( ) : void
Результат void