DecodeCoeffsIntra_MPEG4

Decodes DCT coefficients for intra coded block.

Syntax

IppStatus ippiDecodeCoeffsIntra_MPEG4_1u16s(Ipp8u** ppBitStream, int* pBitOffset, Ipp16s* pCoeffs, int* pIndxLastNonZero, int rvlcFlag, int noDCFlag, int scan);

Parameters

ppBitStream

Pointer to the pointer to the current byte in the bitstream buffer. The pointer is updated by the function.

pBitOffset

Pointer to the bit position in the byte pointed by **ppBitStream. The pointer is updated by the function.

pCoeffs

Pointer to the output coefficients.

pIndxLastNonZero

Pointer to the index of the last non-zero coefficient. In case of error during decoding, the index of the previous successfully decoded coefficient is stored in it.

rvlcFlag

Flag, when set to ‘0' indicates that VLC tables B.16, B.18, B.19, and B.21 [ISO14496] are used in decoding DCT coefficients, otherwise the reversible variable length tables B.23, B.24, and B.25 [ISO14496] are used.

noDCFlag

Flag, when set to ‘0' indicates that pCoeffs is set starting with zero element, otherwise - with the first element.

scan

Type of the scan, takes one of the following values:

IPPVC_SCAN_NONE,

indicating that no inverse scan is performed,

IPPVC_SCAN_ZIGZAG,

indicating the classical zigzag scan,

IPPVC_SCAN_HORIZONTAL,

indicating the alternate-horizontal scan,

IPPVC_SCAN_VERTICAL,

iindicating the alternate-vertical scan,

See the corresponding enumerator in the introduction to the General Functions.

Description

The function ippiDecodeCoeffsIntra_MPEG4_1u16s is declared in the ippvc.h header file. This function performs VLC decoding of the DC coefficient (if noDCFlag is 0) and AC coefficients for one intra coded block using VLC decoding process as specified in [ISO14496], subclause 7.4.1. Additionally, the function can perform inverse scan.

This function is used in the MPEG-4 decoder included into Intel IPP Samples. See introduction to MPEG-4.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

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

ippStsBitOffsetErr

Indicates an error condition if* pBitOffset is out of the range [0, 7].

ippStsVLCCodeErr

Indicates an error condition if an illegal code is detected through the decoding.


Submit feedback on this help topic

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