2.2.4.2.1.5.4 RFX_PROGRESSIVE_TILE_FIRST

The RFX_PROGRESSIVE_TILE_FIRST structure specifies the first-pass compression of a tile with progressive techniques. Subsequent passes, which improve the quality of the tile, are specified using the RFX_PROGRESSIVE_TILE_UPGRADE (section 2.2.4.2.1.5.5) block.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

blockType

blockLen

...

quantIdxY

quantIdxCb

quantIdxCr

xIdx

yIdx

...

flags

progressiveQuality

yLen

...

cbLen

crLen

...

tailLen

yData (variable)

...

...

cbData (variable)

...

...

crData (variable)

...

...

tailData (variable)

...

...

blockType (2 bytes):  A 16-bit unsigned integer that specifies the block type. This field MUST be set to WBT_TILE_PROGRESSIVE_FIRST (0xCCC6).

blockLen (4 bytes):  A 32-bit unsigned integer that specifies the size, in bytes, of the variable-length RFX_PROGRESSIVE_TILE_FIRST block.

quantIdxY (1 byte):  An 8-bit unsigned integer that specifies an index into the RFX_COMPONENT_CODEC_QUANT (section 2.2.4.2.1.5.2) array (the quantVals field) of the containing RFX_PROGRESSIVE_REGION (section 2.2.4.2.1.5) block. The specified quantization table MUST be used for de-quantization of the sub-bands for the Luma (Y) component.

quantIdxCb (1 byte):  An 8-bit unsigned integer that specifies an index into the RFX_COMPONENT_CODEC_QUANT array (the quantVals field) of the containing RFX_PROGRESSIVE_REGION block. The specified quantization table MUST be used for de-quantization of the sub-bands for the Chroma Blue (Cb) component.

quantIdxCr (1 byte):  An 8-bit unsigned integer that specifies an index into the RFX_COMPONENT_CODEC_QUANT array (the quantVals field) of the containing RFX_PROGRESSIVE_REGION block. The specified quantization table MUST be used for de-quantization of the sub-bands for the Chroma Red (Cr) component.

xIdx (2 bytes):  A 16-bit unsigned integer that specifies the x-index of the encoded tile in the screen tile grid. The pixel x-coordinate is obtained by multiplying the x-index by the size of the tile.

yIdx (2 bytes):  A 16-bit unsigned integer that specifies the y-index of the encoded tile in the screen tile grid. The pixel y-coordinate is obtained by multiplying the y-index by the size of the tile.

flags (1 byte):  An 8-bit unsigned integer that contains a single tile flag.

Flag

Meaning

RFX_TILE_DIFFERENCE

0x01

Indicates that the tile contains the compressed difference of the DWT coefficients for the same tile between the current frame and the previous frame.

The seven high bits of the flags field MAY be set to zero by the encoder and MUST be ignored by the decoder.

progressiveQuality (1 byte):  An 8-bit unsigned integer that specifies an index into the RFX_PROGRESSIVE_CODEC_QUANT (section 2.2.4.2.1.5.1) array (the quantProgVals field) of the containing RFX_PROGRESSIVE_REGION block. A value of 255 (0xFF) indicates a full progressive quality table (the quality is 100%, and all the coefficients are zero).

yLen (2 bytes):  A 16-bit unsigned integer that specifies the size, in bytes, of the yData field.

cbLen (2 bytes):  A 16-bit unsigned integer that specifies the size, in bytes, of the cbData field.

crLen (2 bytes):  A 16-bit unsigned integer that specifies the size, in bytes, of the crData field.

tailLen (2 bytes):  A 16-bit unsigned integer that specifies the size, in bytes, of the tailData field. This field SHOULD<3> be set to zero.

yData (variable): A variable-length array of bytes that contains the compressed data for the Luma (Y) component of the tile using a discrete wavelet transform (DWT), sub-band diffing if enabled, quantization and entropy encoded using the RLGR1 method. The size of this field, in bytes, is specified by the yLen field.

cbData (variable):  A variable-length array of bytes that contains the compressed data for the Chroma Blue (Cb) component of the tile using the same methods as the yData field. The size of this field, in bytes, is specified by the cbLen field.

crData (variable): A variable-length array of bytes that contains the compressed data for the Chroma Red (Cr) component of the tile using the same methods as the yData field. The size of this field, in bytes, is specified by the crLen field.

tailData (variable):  A variable-length array of bytes that contains data that SHOULD<4> be ignored. The size of this field, in bytes, is specified by the tailLen field.