HuffmanDecode_MP3, HuffmanDecodeSfb_MP3, HuffmanDecodeSfbMbp_MP3

Decodes Huffman data.

Syntax

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);

Parameters

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.

Description

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.

Return Values

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.

Submit feedback on this help topic

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