📄 omxicjp_dctquantinv_multiple_s16.c
字号:
/** * * File Name: omxICJP_DCTQuantInv_Multiple_S16.c * OpenMAX DL: v1.0.2 * Revision: 10586 * Date: Wednesday, March 5, 2008 * * (c) Copyright 2007-2008 ARM Limited. All Rights Reserved. * * * * Description: * This file contains module for multiple block IDCT with de-quantization * */#include "omxtypes.h"#include "armOMX.h"#include "omxIC.h"#include "armCOMM.h"/** * Function: omxICJP_DCTQuantInv_Multiple_S16 (5.1.3.3.6) * * Description: * Multiple block dequantization and IDCT function. This function implements * inverse DCT with dequantization for 8-bit image data. It processes * multiple blocks (each 8x8). The blocks are assumed to be part of a * planarized buffer. This function should be called separately for luma and * chroma buffers with the respective quantization table. The start address * of pQuantInvTable must be 8-byte aligned. * * Input Arguments: * * pSrc - pointer to the start of the first 8x8 coefficient block in the * input buffer, which should contain a total of nBlocks x 8 x 8 * coefficients stored contiguously. The coefficients within each * block must be arranged in raster scan order, and the start * address must be 8-byte aligned. Buffer values should lie in the * range [-2040, 2040]. * nBlocks - the number of 8x8 blocks to be processed. * pQuantInvTable - pointer to the quantization table initialized using the * function DCTQuantInvTableInit. The table contains 64 entries * and the start address must be 8-byte aligned.. * * Output Arguments: * * pDst - pointer to the start of the first 8x8 output pixel block in the * multi-block output buffer; must be 8-byte aligned. The buffer * referenced by pDst must have sufficient free space to contain * nBlocks blocks of 8x8 pixels stored contiguously. * * Return Value: * * OMX_Sts_NoErr - no error * OMX_Sts_BadArgErr - Bad arguments. Returned for any of the following * conditions: * - one or more of the following pointers was NULL: pSrc, pDst, or * pQuantInvTable * - one or more of the following pointers was not 8-byte aligned: * pSrc, pDst, or pQuantInvTable. * */ OMXResult omxICJP_DCTQuantInv_Multiple_S16( const OMX_S16 *pSrc, OMX_S16 *pDst, OMX_INT nBlocks, const OMX_U32 *pQuantInvTable ){ OMX_INT blockNum; /* Argument Checks */ armRetArgErrIf( pSrc == NULL, OMX_Sts_BadArgErr) armRetArgErrIf( pDst == NULL, OMX_Sts_BadArgErr) armRetArgErrIf( nBlocks < 1 , OMX_Sts_BadArgErr) armRetArgErrIf( pQuantInvTable == NULL , OMX_Sts_BadArgErr) armRetArgErrIf( armNot8ByteAligned(pSrc) , OMX_Sts_BadArgErr) armRetArgErrIf( armNot8ByteAligned(pDst) , OMX_Sts_BadArgErr) armRetArgErrIf( armNot8ByteAligned(pQuantInvTable), OMX_Sts_BadArgErr) /* Processing */ for (blockNum = 0 ; blockNum < nBlocks ; blockNum++) { omxICJP_DCTQuantInv_S16(pSrc,pDst,pQuantInvTable); pSrc += 64; pDst += 64; } return OMX_Sts_NoErr;}/*End of File*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -