blob: 9f9706bd07339003c6d34575494cd3eb2b231cd3 [file] [log] [blame]
/*
* Copyright (C) 2007-2008 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
/* ----------------------------------------------------------------
*
*
* File Name: omxVCM4P10_DecodeCoeffsToPairCAVLC.c
* OpenMAX DL: v1.0.2
* Revision: 9641
* Date: Thursday, February 7, 2008
*
*
*
*
* H.264 decode coefficients module
*
*/
#include "omxtypes.h"
#include "armOMX.h"
#include "omxVC.h"
#include "armCOMM.h"
#include "armVC.h"
/**
* Function: omxVCM4P10_DecodeCoeffsToPairCAVLC
*
* Description:
* Performs CAVLC decoding and inverse zigzag scan for 4x4 block of
* Intra16x16DCLevel, Intra16x16ACLevel,LumaLevel, and ChromaACLevel.
* Inverse field scan is not supported. The decoded coefficients in packed
* position-coefficient buffer are stored in increasing zigzag order instead
* of position order.
*
* Remarks:
*
* Parameters:
* [in] ppBitStream Double pointer to current byte in bit stream buffer
* [in] pOffset Pointer to current bit position in the byte pointed
* to by *ppBitStream
* [in] sMaxNumCoeff Maximum number of non-zero coefficients in current
* block
* [in] sVLCSelect VLC table selector, obtained from number of non-zero
* AC coefficients of above and left 4x4 blocks. It is
* equivalent to the variable nC described in H.264 standard
* table 9-5, except its value can¡¯t be less than zero.
* [out] ppBitStream *ppBitStream is updated after each block is decoded
* [out] pOffset *pOffset is updated after each block is decoded
* [out] pNumCoeff Pointer to the number of nonzero coefficients in
* this block
* [out] ppPosCoefbuf Double pointer to destination residual
* coefficient-position pair buffer
* Return Value:
* Standard omxError result. See enumeration for possible result codes.
*
*/
OMXResult omxVCM4P10_DecodeCoeffsToPairCAVLC(
const OMX_U8** ppBitStream,
OMX_S32* pOffset,
OMX_U8* pNumCoeff,
OMX_U8**ppPosCoefbuf,
OMX_INT sVLCSelect,
OMX_INT sMaxNumCoeff
)
{
return armVCM4P10_DecodeCoeffsToPair(ppBitStream, pOffset, pNumCoeff,
ppPosCoefbuf, sVLCSelect, sMaxNumCoeff);
}