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

📄 omxvcm4p2_blockmatch_integer_16x16.c

📁 The OpenMAX DL (Development Layer) APIs contain a comprehensive set of audio, video, signal processi
💻 C
字号:
/** *  * File Name:  omxVCM4P2_BlockMatch_Integer_16x16.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 Block matching, a full search algorithm * is implemented *  */ #include "omxtypes.h"#include "armOMX.h"#include "omxVC.h"#include "armVC.h"#include "armCOMM.h"/** * Function:  omxVCM4P2_BlockMatch_Integer_16x16   (6.2.4.2.1) * * Description: * Performs a 16x16 block search; estimates motion vector and associated  * minimum SAD. Both the input and output motion vectors are represented using  * half-pixel units, and therefore a shift left or right by 1 bit may be  * required, respectively, to match the input or output MVs with other  * functions that either generate output MVs or expect input MVs represented  * using integer pixel units.  * * Input Arguments: *    *   pSrcRefBuf - pointer to the reference Y plane; points to the reference  *            MB that corresponds to the location of the current macroblock in  *            the current plane.  *   refWidth - width of the reference plane  *   pRefRect - pointer to the valid reference plane rectangle; coordinates  *            are specified relative to the image origin.  Rectangle  *            boundaries may extend beyond image boundaries if the image has  *            been padded.  For example, if padding extends 4 pixels beyond  *            frame border, then the value for the left border could be set to  *            -4.  *   pSrcCurrBuf - pointer to the current block in the current macroblock  *            buffer extracted from the original plane (linear array, 256  *            entries); must be aligned on a 16-byte boundary.  The number of  *            bytes between lines (step) is 16.  *   pCurrPointPos - position of the current macroblock in the current plane  *   pSrcPreMV - pointer to predicted motion vector; NULL indicates no  *            predicted MV  *   pSrcPreSAD - pointer to SAD associated with the predicted MV (referenced  *            by pSrcPreMV); may be set to NULL if unavailable.  *   pMESpec - vendor-specific motion estimation specification structure;  *            must have been allocated and then initialized using  *            omxVCM4P2_MEInit prior to calling the block matching function.  * * Output Arguments: *    *   pDstMV - pointer to estimated MV  *   pDstSAD - pointer to minimum SAD  * * Return Value: *     *    OMX_Sts_NoErr - no error  *    OMX_Sts_BadArgErr - bad arguments.  Returned if one of the following  *              conditions is true:  *    -    at least one of the following pointers is NULL: pSrcRefBuf,  *              pRefRect, pSrcCurrBuff, pCurrPointPos, pDstMV, pDstSAD or  *              pMESpec, or  *    -    pSrcCurrBuf is not 16-byte aligned  * */OMXResult omxVCM4P2_BlockMatch_Integer_16x16(     const OMX_U8 *pSrcRefBuf,     OMX_INT refWidth,     const OMXRect *pRefRect,     const OMX_U8 *pSrcCurrBuf,     const OMXVCM4P2Coordinate *pCurrPointPos,     const OMXVCMotionVector *pSrcPreMV,     const OMX_INT *pSrcPreSAD,     void *pMESpec,     OMXVCMotionVector *pDstMV,     OMX_INT *pDstSAD){   OMX_U8 BlockSize = 16;      /* Argument error checks */     armRetArgErrIf(!armIs16ByteAligned(pSrcCurrBuf), OMX_Sts_BadArgErr);      return ( armVCM4P2_BlockMatch_Integer(     pSrcRefBuf,     refWidth,     pRefRect,     pSrcCurrBuf,     pCurrPointPos,     pSrcPreMV,     pSrcPreSAD,     pMESpec,     pDstMV,     pDstSAD,     BlockSize)     );}/* End of file */

⌨️ 快捷键说明

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