Decodes 8X8 intra block using table of Run-Level codes for standard MPEG2, rearranges and performs inverse quantization.
IppStatus ippiReconstructDCTBlockIntra_MPEG2_32s(Ipp32u** ppBitStream, int * pOffset, const IppVCHuffmanSpec_32s* pDCSizeTable, const IppVCHuffmanSpec_32s* pACTable, Ipp32s* pScanMatrix, int QP, Ipp16s* pQPMatrix, Ipp16s* pDCPred, Ipp32s shiftDCVal, Ipp16s* pDstBlock, Ipp32s* pDstSize);
ppBitStream |
Double pointer to the current position in the bit stream. |
pOffset |
Pointer to the offset between the bit that ppBitStream points to and the start of the code. |
pDCSizeTable |
Pointer to the table containing codes for DC coefficient, that is, the first of the DCT coefficients. |
pACTable |
Pointer to the table containing Run-Level codes for all DCT coefficients except the first one. |
pScanMatrix |
Pointer to the scanning matrix imposed by standard or user-defined. |
QP |
Quantizer scale factor read from the bit stream. |
pQPMatrix |
Pointer to the weighting matrix imposed by standard or user-defined. |
pDCPred |
Pointer to the value to be added to the DC coefficient. This value is read from the special table imposed by standard. |
shiftDCVal |
Integer value. The DC coefficient must be multiplied by 2shiftDCVal. |
pDstBlock |
Pointer to the decoded elements. |
pDstSize |
Position of the last non-zero block coefficient in scanning sequence. |
This function is declared in the ippvc.h header file. The function ippiReconstructDCTBlockIntra_MPEG2_32s decodes an 8x8 intra block using tables of Run-Level codes, rearranges the block and performs inverse quantization. The function is applied to intra blocks and processes all the DCT coefficients in block, except for DC coefficient that is to be processed using the table pDCSizeTable.
The function uses the tables derived with HuffmanTableInitAlloc and HuffmanRunLevelTableInitAlloc functions.
The function decodes the block of 8x8 DCT coefficients. Simultaneous processing of the coefficients enhances performance. The result is sent to pDstBlock and *pDstSize is the position of the last non-zero coefficient. After decoding, the pointers to code in the bitstream are reset as shown in Figure "Getting One Code From Bitstream".
The pointer pScanMatrix points to the scanning matrix that is read from the bit stream. Figure "Scanning Matrix and Sequence" illustrates a simple matrix and a sequence. After decoding, data is rearranged from scanning sequence to linear sequence.
Then the inverse quantization is performed: each of the DCT coefficients is multiplied by a corresponding value from the weighting matrix pQPMatrix and by the quantizer scale factor, which are read from the bit stream.
This function is used in the MPEG-2 decoder included into Intel IPP Samples. See introduction to MPEG-1 and MPEG-2.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when at least one input pointer is NULL. |
ippStsH263VLCCodeErr |
Indicates an error when decoding in accordance with the H263 standard. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.