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

📄 idct.c

📁 C代码完成jpeg编码和解码
💻 C
字号:
/*********************************************************************/
/* idct.c performs a 8 point 2D Inverse DCT function						*/
/*********************************************************************/

#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 idct(void)
{
	int i,j,x,y;
	int value[8];

	/* Perform 1D IDCT 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[x][y]*block[j+(x*8)]);
			}
		}
		
		for(y=0;y<8;++y)
		{
			block[j+(y*8)] = (short)(value[y]>>12);
		}
	}

	/* Perform 1D IDCT 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[x][y]*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 + -