ReconstructDCTBlockIntra_MPEG1

Decodes 8X8 intra block using table of Run-Level codes for standard MPEG1, rearranges and performs inverse quantization.

Syntax

IppStatus ippiReconstructDCTBlockIntra_MPEG1_32s(Ipp32u** ppBitStream, int * pOffset, const Ipp32s* pDCSizeTable, const Ipp32s* pACTable, Ipp32s* pScanMatrix, int QP, Ipp16s* pQPMatrix, Ipp16s* pDCPred, Ipp16s* pDstBlock, Ipp32s* pDstSize);

Parameters

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.

pDstBlock

Pointer to the decoded elements.

pDstSize

Position of the last non-zero block coefficient in scanning sequence.

Description

This function is declared in the ippvc.h header file. The function ippiReconstructDCTBlockIntra_MPEG1_32s is applied to intra blocks and processes all the DCT coefficients in block using pACTable, which contains Run-Level codes for AC coefficients, except for DC coefficient that is to be processed using pDCTable.

The function uses the tables derived with HuffmanTableInitAlloc and HuffmanRunLevelTableInitAlloc functions.

The pointer pScanMatrix points to the scanning matrix described in MPEG standard. Figure "Scanning Matrix and Sequence" illustrates a simple matrix and a sequence. After decoding, data is rearranged from scanning sequence to linear sequence. Then 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.

The DC coefficient is increased by pDCPred. After performing the function, the pDCPred stores the sum of its initial value and DC coefficient.

The function decodes the block of 8x8 DCT coefficients. 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".

Return Values

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 H263 standard.


Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.