?? dct.c
字號:
/*********************************************************************/
/* dct.c Function to perform a 8 point 2D DCT */
/* DCT is performed using direct matrix multiplication */
/*********************************************************************/
#include "dct.h"
extern unsigned char image_in[IMAGE_SIZE];
extern unsigned char image_out[IMAGE_SIZE];
extern short block[BLOCK_SIZE];
extern const short coe[8][8];
void dct(void)
{
int i,j,x,y;
int value[8];
/* Perform 1D DCT on the columns */
for(j=0;j<8;j++)
{
for(y=0;y<8;++y)
{
value[y]=0;
for(x=0;x<8;++x)
{
value[y] += (int)(coe[y][x]*block[j+(x*8)]);
}
}
for(y=0;y<8;++y)
{
block[j+(y*8)] = (short)(value[y]>>12);
}
}
/* Perform 1D DCT on the resulting rows */
for(i=0;i<64;i+=8)
{
for(y=0;y<8;++y)
{
value[y] = 0;
for(x=0;x<8;++x)
{
value[y] += (int)(coe[y][x]*block[i+x]);
}
}
for(y=0;y<8;++y)
{
block[i+y] = (short)(value[y]>>15);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -