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

📄 umc_h264_bme.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 H
字号:
////               INTEL CORPORATION PROPRIETARY INFORMATION//  This software is supplied under the terms of a license agreement or//  nondisclosure agreement with Intel Corporation and may not be copied//  or disclosed except in accordance with the terms of that agreement.//        Copyright (c) 2004 - 2005 Intel Corporation. All Rights Reserved.//#ifndef BASIC_H__#define BASIC_H__#include "ippdefs.h"#include "umc_h264_core_enc.h"#if _MSC_VER>1000#pragma warning (disable:4244)#endifnamespace UMC{// 4x4 Block differencinginline void Diff4x4(    Ipp8u*          pPred,  // predictor pels    Ipp8u*          pSrc,   // source pels    const Ipp32u    uPitch, // source pitch    Ipp16s*     pDiff   // result buffer){    ippiGetDiff4x4_8u16s_C1(pSrc,uPitch,pPred,16,pDiff,8,0,0,0,0);}// The definition for this function has changed to// a pDiff of type Ipp16s* instead of Ipp32s*  All of the// functions below need to be updated to match.// Commented out because it currently won't build this way...// 4x4 Block addvoid Add4x4(    Ipp8u*          pPred,  // predictor pels    Ipp32s*     pErr,   // error pels    const Ipp32u    uPitch, // reconstruct pitch    Ipp8u*          pRec    // reconstruct block);// 4x4 Block copyinline void Copy4x4(    Ipp8u*          pSrc,    const Ipp32u    uPitch,    Ipp8u*          pDst){    IppiSize s;    s.height=4;    s.width=4;    ippiCopy_8u_C1R(pSrc,16,pDst,uPitch,s);}inline void Copy4x4_PredPitch4(             Ipp8u*         pSrc,             const Ipp32u   uPitch,             Ipp8u*         pDst             ){    IppiSize s;    s.height=4;    s.width=4;    ippiCopy_8u_C1R(pSrc,4,pDst,uPitch,s);}// Memcpyinline void MemCopy(    Ipp8u *pDst,    const Ipp8u *pSrc,    const Ipp32u uHeight,    const Ipp32u uWidth){    IppiSize s;    s.height=uHeight;    s.width=uWidth;    ippiCopy_8u_C1R(pSrc,16,pDst,16,s);}// Memcpyinline void SADComp41(    Ipp16u *ThisSAD,    Ipp32u *BestSADs,    T_ECORE_MV *BestMVs,    T_RefIdx this_ref,    T_RefIdx *bestRefIdxs,    T_ECORE_MV *this_pred_MV,    T_ECORE_MV *best_pred_MV,    Ipp32s xvec,    Ipp32s yvec,    int start,    int end){    Ipp32u tempSAD;    for (int block = start; block < end; ++block)    {        tempSAD = (Ipp32u)ThisSAD[block];        if (tempSAD < BestSADs[block]) {            BestSADs[block] = tempSAD;            BestMVs[block].iMVx = (Ipp8s)xvec*SubPelFactor;            BestMVs[block].iMVy = (Ipp8s)yvec*SubPelFactor;            bestRefIdxs[block] = this_ref;            best_pred_MV[block] = this_pred_MV[block];        }    }}inline void Move_ME_Info(    Ipp32u *ThisSAD,    Ipp32u *BestSADs,    T_ECORE_MV *this_BestMVs,    T_ECORE_MV *BestMVs,    T_RefIdx this_ref,    T_RefIdx *bestRefIdxs,    T_ECORE_MV *this_pred_MV,    T_ECORE_MV *best_pred_MV,    int start,    int end){    for (int block = start; block < end; ++block)    {        BestSADs[block] = ThisSAD[block];        BestMVs[block] = this_BestMVs[block];        bestRefIdxs[block] = this_ref;        best_pred_MV[block] = this_pred_MV[block];    }}} //namespace UMC#endif // BASIC_H__

⌨️ 快捷键说明

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