⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omxvcm4p2_encodevlczigzag_inter.c

📁 The OpenMAX DL (Development Layer) APIs contain a comprehensive set of audio, video, signal processi
💻 C
字号:
/** *  * File Name:  omxVCM4P2_EncodeVLCZigzag_Inter.c * OpenMAX DL: v1.0.2 * Revision:   10586 * Date:       Wednesday, March 5, 2008 *  * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. *  *  * * Description:  * Contains modules for zigzag scanning and VLC encoding * for inter block. * */  #include "omxtypes.h"#include "armOMX.h"#include "omxVC.h"#include "armVC.h"#include "armCOMM_Bitstream.h"#include "armCOMM.h"#include "armVCM4P2_Huff_Tables_VLC.h"#include "armVCM4P2_ZigZag_Tables.h"/** * Function:  omxVCM4P2_EncodeVLCZigzag_Inter   (6.2.4.5.3) * * Description: * Performs classical zigzag scanning and VLC encoding for one inter block.  * * Input Arguments: *    *   ppBitStream - pointer to the pointer to the current byte in the bit  *            stream  *   pBitOffset - pointer to the bit position in the byte pointed by  *            *ppBitStream. Valid within 0 to 7  *   pQDctBlkCoef - pointer to the quantized DCT coefficient  *   pattern - block pattern which is used to decide whether this block is  *            encoded  *   shortVideoHeader - binary flag indicating presence of  *            short_video_header; escape modes 0-3 are used if  *            shortVideoHeader==0, and escape mode 4 is used when  *            shortVideoHeader==1.  * * Output Arguments: *    *   ppBitStream - *ppBitStream is updated after the block is encoded so that  *            it points to the current byte in the bit stream buffer.  *   pBitOffset - *pBitOffset is updated so that it points to the current bit  *            position in the byte pointed by *ppBitStream.  * * Return Value: *     *    OMX_Sts_NoErr - no error  *    OMX_Sts_BadArgErr - Bad arguments  *    -    At least one of the pointers: is NULL: ppBitStream, *ppBitStream,  *              pBitOffset, pQDctBlkCoef  *    -   *pBitOffset < 0, or *pBitOffset >7.  * */OMXResult omxVCM4P2_EncodeVLCZigzag_Inter(     OMX_U8 **ppBitStream,     OMX_INT * pBitOffset,     const OMX_S16 *pQDctBlkCoef,     OMX_U8 pattern,	 OMX_INT shortVideoHeader){    OMX_U8 start = 0;    const OMX_U8  *pZigzagTable = armVCM4P2_aClassicalZigzagScan;    /* Argument error checks */    armRetArgErrIf(ppBitStream == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf(*ppBitStream == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf(pBitOffset == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf(pQDctBlkCoef == NULL, OMX_Sts_BadArgErr);    armRetArgErrIf((*pBitOffset < 0) || (*pBitOffset >7), OMX_Sts_BadArgErr);    if (pattern)    {        armVCM4P2_PutVLCBits (              ppBitStream,              pBitOffset,              pQDctBlkCoef,              shortVideoHeader,              start,              26,              40,              10,              1,              armVCM4P2_InterL0RunIdx,              armVCM4P2_InterVlcL0,			  armVCM4P2_InterL1RunIdx,              armVCM4P2_InterVlcL1,              armVCM4P2_InterL0LMAX,              armVCM4P2_InterL1LMAX,              armVCM4P2_InterL0RMAX,              armVCM4P2_InterL1RMAX,              pZigzagTable        );    } /* Pattern check ends*/    return OMX_Sts_NoErr;}/* End of file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -