📄 standarddct.cpp
字号:
#include "StdAfx.h"
#include <math.h>
#include "..\Common.h"
double c[8][8]; /* transform coefficients */
void Init()
{
int i, j;
double s;
for (i=0; i<8; i++)
{
s = (i==0) ? sqrt(0.125) : 0.5;
for (j=0; j<8; j++)
c[i][j] = s * cos((PI/8.0)*i*(j+0.5));
}
Init_AanScales();
init_idct_int32();
}
void Standard_fDCT(unsigned char *pIn, double *pOut)
{
double tmp[64];
double s;
int i, j, k;
for ( i = 0; i < 8; i++ )
for ( j = 0; j < 8; j++ )
{
s = 0.0;
for ( k = 0; k < 8; k++ )
s += c[j][k] * pIn[8 * i + k];
tmp[8 * i + j] = s;
}
for ( j = 0; j < 8; j++ )
for ( i = 0; i < 8; i++ )
{
s = 0.0;
for ( k = 0; k < 8; k++ )
s += c[i][k] * tmp[8 * k + j];
pOut[8 * i + j] = s;
}
}
double CompareDCT(double *pIn, double *pTmpl)
{
double dMaxAbsErr;
int i;
dMaxAbsErr = fabs(pIn[0] - pTmpl[0]);
for ( i = 1; i < 64; i++ )
{
double tmp;
if ( (tmp = fabs(pIn[i] - pTmpl[i])) > dMaxAbsErr )
dMaxAbsErr = tmp;
}
return dMaxAbsErr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -