DecodeCAVLCCoeffs_H264

Decodes any non-chroma DC coefficients CAVLC coded.

Syntax

IppStatus ippiDecodeCAVLCCoeffs_H264_1u16s(Ipp32u** ppBitStream, Ipp32s* pBitOffset, Ipp16s* pNumCoeff, Ipp16s** ppDstCoeffs , const Ipp32u uVLCSelect, const Ipp16s uMaxNumCoeff, const Ipp32s** ppTblCoeffToken , Ipp32s** ppTblTotalZeros , Ipp32s** ppTblRunBefore , Ipp32s* pScanMatrix);

IppStatus ippiDecodeCAVLCCoeffs_H264_1u32s(Ipp32u** ppBitStream, Ipp32s* pBitOffset, Ipp16s* pNumCoeff, Ipp32s** ppDstCoeffs, Ipp32u uVLCSelect, Ipp16s uMaxNumCoeff, const Ipp32s** ppTblCoeffToken, const Ipp32s** ppTblTotalZeros, const Ipp32s** ppTblRunBefore, const Ipp32s* pScanMatrix);

Parameters

ppBitStream

Double pointer to the current position in the bitstream. The pointer is updated by the function.

pBitOffset

Pointer to offset between the bit that **ppBitStream points to and the start of the code. The pointer is updated by the function.

pNumCoeff

Pointer to the output number of non-zero coefficients.

ppDstCoeffs

Double pointer to a 4x4 block of coefficients. These coefficients are calculated by the function. The function shifts pointer **ppDstCoeffs on 16.

uVLCSelect

Predictor on number of CoeffToken Table, which is designated in [JVTG050] as nC. It can be calculated in accordance with 9.2.1 of [JVTG050]

uMaxNumCoeff

Maximum coefficients in block (16 for intra 16x16, 15 for the rest).

ppTblCoeffToken

Double pointer to CoeffToken Tables.

ppTblTotalZeros

Double pointer to TotalZeros Tables.

ppTblRunBefore

Double pointer to RunBefore Tables.

pScanMatrix

Inverse scan matrix for coefficients in block.

Description

This function is declared in the ippvc.h header file. The functions ippiDecodeCAVLCCoeffs_H264_1u16s and ippiDecodeCAVLCCoeffs_H264_1u32s decode any non-chroma DC (chroma AC and Luma) coefficients CAVLC-coded in accordance with 9.2 of [JVTG050].

The table pTblCoeffToken is an array of size 4. Each element of this array is a pointer to a table that contains codes, number of trailing one transform coefficient and total number of non-zero transform coefficients in accordance with Table 9-5 of [JVTG050].

Use function HuffmanRunLevelTableInitAlloc for creation of tables PTblCoeffToken[i].

The table ppTblTotalZeros is an array of size 16. Each element of this array (except 0) is a pointer to a table that contains codes and values (total_zeros in [JVTG050]) in accordance with tables 9-7 and 9-8 of [JVTG050].

The table ppTblRunBefore is array of size 8. Each element of this array (except 0) is a pointer to a table that contains codes and values (run_before in [JVTG050]) in accordance with table 9-10 of [JVTG050].

Use function HuffmanTableInitAlloc for creation of tables PpTblTotalZeros[i], PpTblRunBefore[i].

Warning iconWarning

For proper operation of the function, remove emulation_prevention_three_byte described in 7.4.1 of [JVTG050] from the stream that undergoes decoding.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when at least one input pointer is NULL.


Submit feedback on this help topic

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