Decodes any non-chroma DC coefficients CAVLC coded.
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);
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. |
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].
For proper operation of the function, remove emulation_prevention_three_byte described in 7.4.1 of [JVTG050] from the stream that undergoes decoding.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when at least one input pointer is NULL. |
Copyright © 2000 - 2010, Intel Corporation. All rights reserved.