Reconstruct inter frame DCT block (MPEG-1)


FwStatus   fwiReconstructDCTBlock_MPEG1_32s ( Fw32u ** ppBitStreamint * pOffsetconst Fw32s * pDCSizeTableconst Fw32s * pACTableFw32s * pScanMatrixint QPFw16s * pQPMatrixFw16s * pDstBlockFw32s * pDstSize );


QP   Quantizer scale factor read from the bitstream.
pACTable   Pointer to a table containing run-level codes for all DCT coefficients other than the first one.
pDCSizeTable   Pointer to a table containing codes for the DC coefficient (the first of the DCT coefficients).
pDstBlock   Pointer to a block of decoded elements.
pDstSize   Pointer to the position of the last non-zero block coefficient in scanning sequence.
pOffset   Pointer to the offset between the bit that ppBitStream points to and the start of the code.
pQPMatrix   Pointer to a standard or user-defined weighting matrix.
pScanMatrix   Pointer to a matrix containing indices of elements in a scanning sequence.
ppBitStream   Double pointer to the current position in the bit stream.


This function reconstructs an 8x8 DCT block for inter frames in accordance with the MPEG-1 standard.

The function first decodes 64 quantised DCT coefficients from the bitstream using the run-level tables of the MPEG-1 standard. The coefficients are then rearranged as an 8x8 block as specified by pScanMatrix and inverse quantization is performed. The function also performs saturation and mismatch control in accordance with the MPEG-1 standard.

The pDCSizeTable is used to decode the DC coefficient and the pACTable is used to decode the AC coefficients. The quantizing scale factor Qp and pQPMatrix are used to perform inverse quantization. The reconstructed 8x8 block of DCT coefficients is written to pDstBlock. Pointer *pDstSize indicates the position of the last non-zero coefficient. The pointers ppBitStream and pOffset are updated to the position in the bitstream where decoding of the next 8x8 block begins.