資源簡介
JPEG編碼中的正反DCT變換還有量化等操作。

代碼片段和文件信息
//?jpeg.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?“stdio.h“
#include?“math.h“
#include?“jpeg.h“
#include?
#include?
#define?DEBUG_FLAG
#define?PI?3.14
int?remain_bits=8;
char?jpeg_word=0;
int?y_dc=0cr_dc=0cb_dc=0;
??
void?mcu_gen(int?y?int?*bmp_data?int?*mcu_data)
{
int?ij;
for(i=0;i<16;i++)
???for(j=0;j<16;j++)
??????{
??? ????mcu_data[i*16+j]=bmp_data[i*1280+y*16+j];
??????}
}
void?rgb_2_yuv(int?*mcu_data_rint?*mcu_data_gint?*mcu_data_b?int?*y1_data?int?*y2_data?int?*y3_data?int?*y4_data?int?*cb_data?int?*cr_data)
{
/*Y?=?0.299*R?+?0.587*G?+?0.114*B*/
/*Cb?=?-?0.1687*R?-?0.3313*G?+?0.5?*B?+?128*/
/*Cr?=?0.5?*R?-?0.4187*G?-?0.0813*B?+?128*/
int?ij;
int?r_data;
int?g_data;
int?b_data;
int?avg_r[8][8]avg_g[8][8]avg_b[8][8];
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
r_data=mcu_data_r[((0*8+i)*16+0*8+j)];
g_data=mcu_data_g[((0*8+i)*16+0*8+j)];
b_data=mcu_data_b[((0*8+i)*16+0*8+j)];
y1_data[i*8+j]=r_data*0.299+g_data*0.587+b_data*0.114-128;
}
/* for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
printf(“%d“y1_data[i*8+j]);
if(j==7)
printf(“\n“);
}
*/
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
r_data=mcu_data_r[((0*8+i)*16+1*8+j)];
g_data=mcu_data_g[((0*8+i)*16+1*8+j)];
b_data=mcu_data_b[((0*8+i)*16+1*8+j)];
y2_data[i*8+j]=r_data*0.299+g_data*0.587+b_data*0.114-128;
}
/* for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
printf(“%d“y2_data[i*8+j]);
if(j==7)
printf(“\n“);
}
*/
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
r_data=mcu_data_r[((1*8+i)*16+0*8+j)];
g_data=mcu_data_g[((1*8+i)*16+0*8+j)];
b_data=mcu_data_b[((1*8+i)*16+0*8+j)];
y3_data[i*8+j]=r_data*0.299+g_data*0.587+b_data*0.114-128;
}
/* for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
printf(“%d“y3_data[i*8+j]);
if(j==7)
printf(“\n“);
}
*/
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
r_data=mcu_data_r[((1*8+i)*16+1*8+j)];
g_data=mcu_data_g[((1*8+i)*16+1*8+j)];
b_data=mcu_data_b[((1*8+i)*16+1*8+j)];
y4_data[i*8+j]=r_data*0.299+g_data*0.587+b_data*0.114-128;
}
/* for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
printf(“%d“y4_data[i*8+j]);
if(j==7)
printf(“\n“);
}
*/
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
avg_r[i][j]=mcu_data_r[((i*2+0)*16+j*2+0)]+mcu_data_r[((i*2+0)*16+j*2+1)]+mcu_data_r[((i*2+1)*16+j*2+0)]+mcu_data_r[((i*2+1)*16+j*2+1)];
avg_g[i][j]=mcu_data_g[((i*2+0)*16+j*2+0)]+mcu_data_g[((i*2+0)*16+j*2+1)]+mcu_data_g[((i*2+1)*16+j*2+0)]+mcu_data_g[((i*2+1)*16+j*2+1)];
avg_b[i][j]=mcu_data_b[((i*2+0)*16+j*2+0)]+mcu_data_b[((i*2+0)*16+j*2+1)]+mcu_data_b[((i*2+1)*16+j*2+0)]+mcu_data_b[((i*2+1)*16+j*2+1)];
avg_r[i][j]/=4;
avg_g[i][j]/=4;
avg_b[i][j]/=4;
}
for(i=0;i<8;i++)
for(j=0;j<8;j++)
{
r_data=avg_r[i][j];
g_data=avg_g[i][j];
b_data=avg_b[i
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????94022??2007-11-12?20:13??jpeg-C++\Debug\1.jpg
?????文件?????164864??2010-08-27?10:01??jpeg-C++\Debug\jpeg.bsc
?????文件?????217154??2010-08-27?10:01??jpeg-C++\Debug\jpeg.exe
?????文件?????220960??2010-08-27?10:01??jpeg-C++\Debug\jpeg.ilk
?????文件??????44789??2010-08-27?10:01??jpeg-C++\Debug\jpeg.obj
?????文件?????203728??2010-08-19?09:43??jpeg-C++\Debug\jpeg.pch
?????文件?????492544??2010-08-27?10:01??jpeg-C++\Debug\jpeg.pdb
?????文件??????????0??2010-08-27?10:01??jpeg-C++\Debug\jpeg.sbr
?????文件???????2080??2010-08-19?09:43??jpeg-C++\Debug\StdAfx.obj
?????文件???????4084??2010-08-19?09:43??jpeg-C++\Debug\StdAfx.sbr
?????文件??????58368??2010-09-25?16:26??jpeg-C++\Debug\vc60.idb
?????文件??????61440??2010-08-27?10:01??jpeg-C++\Debug\vc60.pdb
?????文件????????509??2007-07-09?17:40??jpeg-C++\Desktop.ini
?????文件??????28181??2010-08-27?09:51??jpeg-C++\jpeg.cpp
?????文件???????4510??2010-08-19?10:35??jpeg-C++\jpeg.dsp
?????文件????????531??2007-07-09?17:40??jpeg-C++\jpeg.dsw
?????文件??????11512??2007-11-18?10:39??jpeg-C++\JPEG.H
?????文件??????58368??2010-09-25?16:27??jpeg-C++\jpeg.ncb
?????文件??????????0??2010-08-19?10:35??jpeg-C++\jpeg.ncb?(Can‘t?open)
?????文件??????55808??2010-09-25?16:27??jpeg-C++\jpeg.opt
?????文件????????242??2010-09-25?16:26??jpeg-C++\jpeg.plg
?????文件????????204??2010-09-25?16:25??jpeg-C++\jpeg.sln
????..A..H.??????6656??2010-09-25?16:25??jpeg-C++\jpeg.suo
?????文件????????623??2007-11-08?23:31??jpeg-C++\jpegh
?????文件????????623??2007-07-09?17:40??jpeg-C++\jpegh.bak
?????文件???????3056??2007-11-08?23:23??jpeg-C++\jpegheader
?????文件???????3056??2007-11-08?23:20??jpeg-C++\jpegheader.bak
?????文件???????1196??2007-07-09?17:40??jpeg-C++\ReadMe.txt
?????文件????????291??2007-07-09?17:40??jpeg-C++\StdAfx.cpp
?????文件????????769??2007-07-09?17:40??jpeg-C++\StdAfx.h
............此處省略8個文件信息
評論
共有 條評論