• 大小: 2.49MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-05
  • 语言: C/C++
  • 标签: jpeg  c++  

资源简介

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个文件信息

评论

共有 条评论