Decodes Huffman data.
IppStatus ippsHuffmanDecode_MP3_1u32s(Ipp8u** ppBitStream, int* pOffset, Ipp32s* pDstIs, int* pDstNonZeroBound, IppMP3SideInfo* pSideInfo, IppMP3FrameHeader* pFrameHeader, int hufSize);
IppStatus ippsHuffmanDecodeSfb_MP3_1u32s(Ipp8u** ppBitStream, int* pOffset, Ipp32s* pDstIs, int* pDstNonZeroBound, IppMP3SideInfo* pSideInfo, IppMP3FrameHeader* pFrameHeader, int hufSize, IppMP3ScaleFactorBandTableLong* pSfbTableLong);
IppStatus, ippsHuffmanDecodeSfbMbp_MP3_1u32s(Ipp8u** ppBitStream, int* pOffset, Ipp32s* pDstIs, int* pDstNonZeroBound, IppMP3SideInfo* pSideInfo, IppMP3FrameHeader* pFrameHeader, int hufSize, IppMP3ScaleFactorBandTableLong* pSfbTableLong, IppMP3ScaleFactorBandTableShort pSfbTableShort, IppMP3MixedBlockPartitionTable pMbpTable);
ppBitStream |
Pointer to the pointer to the first bit stream byte that contains the Huffman code words associated with the current granule and channel. The function updates this parameter. |
pOffset |
Pointer to the starting bit position in the bit stream byte pointed to by ppBitStream. The parameter is valid within the range of 0 to 7, where 0 corresponds to the most significant bit, and 7 corresponds to the least significant bit. The function updates this parameter. |
pSideInfo |
Pointer to MP3 structure containing side information associated with the current granule and channel. |
pFrameHeader |
Pointer to MP3 structure containing the header associated with the current frame. |
pDstIs |
Pointer to the vector of decoded Huffman symbols used to compute the quantized values of the 576 spectral coefficients associated with the current granule and channel. |
pDstNonZeroBound |
Pointer to the spectral region above which all coefficients are set to zero. |
hufSize |
The number of Huffman code bits associated with the current granule and channel. |
pSfbTableLong |
Pointer to the scale factor bands table for a long block. |
pSfbTableShort |
Pointer to scale factor band table for short block. You can use the default table from MPEG-1, MPEG-2 standards. |
pMbpTable |
Pointer to the mixed block partition table. |
The functions ippsHuffmanDecode_MP3, ippsHuffmanDecodeSfb_MP3, and ippsHuffmanDecodeSfbMbp_MP3 are declared in the ippac.h file. These functions decode Huffman symbols for the 576 spectral coefficients associated with one granule of one channel. Before returning to the caller, the function updates ppBitStream so that it points to the byte in the bitstream that contains the first new bit following the decoded block of Huffman codes.
The function ippsHuffmanDecodeSfb_MP3 makes the use of a predefined scale factor bands table possible when working with a long block. Alternatively, you can use the default table from MPEG-1, or MPEG-2 standards.
ippStsNoErr |
Indicates no error. |
ippStsNullPtrErr |
Indicates an error when at least one of the pointers ppBitStream, pOffset, pDstIs, pDstNonZeroBound, pSideInfo, pFrameHeader, or ppBitStream is NULL or when pOffset < 0 or pOffset > 7. |
ippStsMP3FrameHeaderErr |
Indicates an error when some elements in the MP3 frame header structure are invalid. |
ippStsMP3SideInfoErr |
Indicates an error when some elements in the MP3 side information structure are invalid, or when hufSize < 0 or hufSize > pSideInfo ->part23Len. |
ippStsErr |
Indicates unknown error. |
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.