📄 idct.cpp
字号:
#include <math.h>
#include "stdafx.h"
#include "color.h"
#include "DBitstream.h"
#include "sactable.h"
#include "sad.h"
#include "Dh263class.h"
#include "commonvar.h"
extern "C"
{ void idct8x8aan(short* dctcoeffshort);
void PrevIDCTShift(short* dctcoeffshort);
}
void DH263MB::idct(short *coeff,short *block)
{
block[0] =coeff[0]; block[1] =coeff[2];
block[2] =coeff[3]; block[3] =coeff[9];
block[4] =coeff[10]; block[5] =coeff[20];
block[6] =coeff[21]; block[7] =coeff[35];
block[8] =coeff[1]; block[9] =coeff[4];
block[10]=coeff[8]; block[11]=coeff[11];
block[12]=coeff[19]; block[13]=coeff[22];
block[14]=coeff[34]; block[15]=coeff[36];
block[16]=coeff[5]; block[17]=coeff[7];
block[18]=coeff[12]; block[19]=coeff[18];
block[20]=coeff[23]; block[21]=coeff[33];
block[22]=coeff[37]; block[23]=coeff[48];
block[24]=coeff[6]; block[25]=coeff[13];
block[26]=coeff[17]; block[27]=coeff[24];
block[28]=coeff[32]; block[29]=coeff[38];
block[30]=coeff[47]; block[31]=coeff[49];
block[32]=coeff[14]; block[33]=coeff[16];
block[34]=coeff[25]; block[35]=coeff[31];
block[36]=coeff[39]; block[37]=coeff[46];
block[38]=coeff[50]; block[39]=coeff[57];
block[40]=coeff[15]; block[41]=coeff[26];
block[42]=coeff[30]; block[43]=coeff[40];
block[44]=coeff[45]; block[45]=coeff[51];
block[46]=coeff[56]; block[47]=coeff[58];
block[48]=coeff[27]; block[49]=coeff[29];
block[50]=coeff[41]; block[51]=coeff[44];
block[52]=coeff[52]; block[53]=coeff[55];
block[54]=coeff[59]; block[55]=coeff[62];
block[56]=coeff[28]; block[57]=coeff[42];
block[58]=coeff[43]; block[59]=coeff[53];
block[60]=coeff[54]; block[61]=coeff[60];
block[62]=coeff[61]; block[63]=coeff[63];
// prepare the input operands to the MMX iDCT
// shift the 12 bits to the higher part
PrevIDCTShift(block);
// add 0.5 to the DC value
block[0] +=64;
idct8x8aan(block);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -