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

📄 me.cpp

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 CPP
字号:
/*//////////////////////////////////////////////////////////////////////////////////                  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) 2002-2005 Intel Corporation. All Rights Reserved.//*/#include <limits.h>#include "mpeg2_defs.h"#define SAD_FUNC_16x16 \  ippiSAD16x16_8u32s(pBlock,     \                     BlockStep,  \                     ref_data,   \                     RefStep,    \                     &MAD,       \                     flag)#define SAD_FUNC_16x8 \  ippiSAD16x8_8u32s_C1R(pBlock,      \                        BlockStep,   \                        ref_data,    \                        RefStep,     \                        &MAD,        \                        flag)#define VARMEAN_FUNC_16x16                  \  ippiVarMeanDiff16x16_8u32s_C1R(           \                          pBlock,           \                          BlockStep,        \                          ref_data,         \                          RefStep,          \                          pSrcMean,         \                          Var[!min_index],  \                          Mean[!min_index], \                          flag);            \  MAD = Var[!min_index][0] + Var[!min_index][1] + \        Var[!min_index][2] + Var[!min_index][3]#define VARMEAN_FUNC_16x8                   \  ippiVarMeanDiff16x8_8u32s_C1R(            \                          pBlock,           \                          BlockStep,        \                          ref_data,         \                          RefStep,          \                          pSrcMean,         \                          Var[!min_index],  \                          Mean[!min_index], \                          flag);            \  MAD = Var[!min_index][0] + Var[!min_index][1]/***********************************************************/#define ME_FUNC     MotionEstimation_Frame#define FIELD_FLAG  0#define ME_STEP_X   2#define ME_STEP_Y   2#define ME_MIN_STEP 2#define NUM_BLOCKS  4#define TRY_POSITION(FUNC)                                   \if (me_matrix[YN*me_matrix_w + XN] != me_matrix_id)          \{                                                            \  me_matrix[YN*me_matrix_w + XN] = me_matrix_id;             \  ref_data = (Ipp8u*)(pRef + (XN >> 1) + (YN >> 1)*RefStep); \  flag = ((XN & 1) << 3) | ((YN & 1) << 2);                  \                                                             \  FUNC##_16x16;                                              \                                                             \  if(MAD < BestMAD)                                          \  {                                                          \    min_point = 1;                                           \    BestMAD = MAD;                                           \    min_index = !min_index;                                  \    XMIN = XN;                                               \    YMIN = YN;                                               \  }                                                          \}#include "me.h"/***********************************************************/#undef  ME_FUNC#define ME_FUNC  MotionEstimation_FieldPict#undef  NUM_BLOCKS#define NUM_BLOCKS  2#undef  TRY_POSITION#define TRY_POSITION(FUNC) \if (me_matrix[YN*me_matrix_w + XN] != me_matrix_id)          \{                                                            \  me_matrix[YN*me_matrix_w + XN] = me_matrix_id;             \  ref_data = (Ipp8u*)(pRef + (XN >> 1) + (YN >> 1)*RefStep); \  flag = ((XN & 1) << 3) | ((YN & 1) << 2);                  \                                                             \  FUNC##_16x8;                                               \                                                             \  MAD = Var[!min_index][0] + Var[!min_index][1];             \  if(MAD < BestMAD)                                          \  {                                                          \      min_point = 1;                                         \      BestMAD = MAD;                                         \      min_index = !min_index;                                \      XMIN = XN;                                             \      YMIN = YN;                                             \  }                                                          \}#include "me.h"/***********************************************************/#undef  ME_FUNC#define ME_FUNC  MotionEstimation_Field#undef  FIELD_FLAG#define FIELD_FLAG  1#undef  NUM_BLOCKS#define NUM_BLOCKS  2#undef  TRY_POSITION#define TRY_POSITION(FUNC) \if (me_matrix[YN*me_matrix_w + XN] != me_matrix_id)          \{                                                            \  me_matrix[YN*me_matrix_w + XN] = me_matrix_id;             \  ref_data = (Ipp8u*)(pRef + (XN >> 1) + (YN >> 1)*RefStep); \  flag = ((XN & 1) << 3) | ((YN & 1) << 2);                  \                                                             \  /* top field */                                            \  FUNC##_16x8;                                               \                                                             \  MAD = Var[!min_index][0] + Var[!min_index][1];             \  if(MAD < BestMAD)                                          \  {                                                          \    min_point = 1;                                           \    field_select = 0;                                        \    BestMAD = MAD;                                           \    min_index = !min_index;                                  \    XMIN = XN;                                               \    YMIN = YN;                                               \  }                                                          \                                                             \  /* bottom field */                                         \  ref_data += (RefStep >> 1);                                \  FUNC##_16x8;                                               \                                                             \  MAD = Var[!min_index][0] + Var[!min_index][1];             \  if(MAD < BestMAD)                                          \  {                                                          \    min_point = 1;                                           \    field_select = 1;                                        \    BestMAD = MAD;                                           \    min_index = !min_index;                                  \    XMIN = XN;                                               \    YMIN = YN;                                               \  }                                                          \}#include "me.h"

⌨️ 快捷键说明

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