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

📄 wt97fwdrowgen.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) 2002-2005 Intel Corporation. All Rights Reserved.//////*/#ifndef __WT97FWDROWGEN_H__#define __WT97FWDROWGEN_H__#include "pp.h"//// WT97, fwd, row-oriented transform common code independent from data type// to be parametrized in template.//template<class T>void WT97FwdRowFirstL(const T* src, unsigned int  size, T* low, T* high){    switch(size)    {    case 0: return;    case 1: low [0] = src[0]; return;    case 2: WT97FwdRowFirstL_2(src, low, high); return;    case 3: WT97FwdRowFirstL_3(src, low, high); return;    case 4: WT97FwdRowFirstL_4(src, low, high); return;    case 5:        WT97FwdFirstStepBig(src, low, high);        WT97FwdLastStepSmall(&src[4], &low[1], high);        return;    case 6:        WT97FwdFirstStepBig(src, low, high);        WT97FwdLastStepBig(&src[4], &low[1], high);        return;    case 7:        WT97FwdFirstStepBig(src, low, high);        WT97FwdInterStep(&src[4], &low[1], high);        WT97FwdLastStepSmall(&src[6], &low[2], &high[1]);        return;    case 8:        WT97FwdFirstStepBig(src, low, high);        WT97FwdInterStep(&src[4], &low[1], high);        WT97FwdLastStepBig(&src[6], &low[2], &high[1]);        return;    default:        break;    }    WT97FwdFirstStepBig(src, low, high);    WT97FwdInterStep(&src[4], &low[1], high);    WT97FwdInterStep(&src[6], &low[2], &high[1]);    WT97FwdRowFirstL_H2MulKH(high);    if(size >= 11)        WT97FwdRow(&src[6], &low [3], &high[3], ( (size + 1) >> 1 ) - 5, ippWTFilterFirstLow);    WT97FwdRowFirstL_Ending(src, size, low, high);}template<class T>void WT97FwdRowFirstH(const T* src, unsigned int  size, T* low, T* high){    switch(size)    {    case 0: return;    case 1: WT97FwdRowFirstH_1(src,      high); return;    case 2: WT97FwdRowFirstH_2(src, low, high); return;    case 3: WT97FwdRowFirstH_3(src, low, high); return;    case 4:        WT97FwdFirstStepSmall(src, low, high);        WT97FwdLastStepSmall(&src[3], low, high);        return;    case 5:        WT97FwdFirstStepSmall(src, low, high);        WT97FwdLastStepBig(&src[3], low, high);        return;    case 6:        WT97FwdFirstStepSmall(src, low, high);        WT97FwdInterStep(&src[3], low, high);        WT97FwdLastStepSmall(&src[5], &low[1], &high[1]);        return;    case 7:        WT97FwdFirstStepSmall(src, low, high);        WT97FwdInterStep(&src[3], low, high);        WT97FwdLastStepBig(&src[5], &low[1], &high[1]);        return;    case 8:        WT97FwdFirstStepSmall(src, low, high);        WT97FwdInterStep(&src[3], low, high);        WT97FwdInterStep(&src[5], &low[1], &high[1]);        WT97FwdLastStepSmall(&src[7], &low[2], &high[2]);        return;    default:        break;    }    WT97FwdFirstStepSmall(src, low, high);    WT97FwdInterStep(&src[3], low, high);    WT97FwdInterStep(&src[5], &low[1], &high[1]);    WT97FwdInterStep(&src[7], &low[2], &high[2]);    if(size >= 12)        WT97FwdRow(&src[6], &low[3], &high[3], ( size >> 1 ) - 5, ippWTFilterFirstHigh);    WT97FwdRowFirstH_Ending(src, size, low, high);}template<class T>void WT97FwdRow(const T *src, const UIntRange &range, T *low, T *high){    WTPhase phase = Phase(range.Origin());    if(IsPhaseL(phase)) WT97FwdRowFirstL(src, range.Size(), low, high);    else                WT97FwdRowFirstH(src, range.Size(), low, high);}#endif // __WT97FWDROWGEN_H__

⌨️ 快捷键说明

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