资源简介
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个文件信息
相关资源
- 完成端口IOCP性能测试程序c++版本 64位
- C++ Primer 中文完整PDF清晰非扫描(第四
- 牛客校招面试题附答案与解析c++篇.
- 卫星坐标计算程序C++
- C++图书管理系统MFC
- 图书管理系统C++MFC
- C++实现吃豆子人小游戏windows控制台
- visual c++14.0
- traceroute在windows下的c++实现源代码
- WindowsAPI参考大全forCC++(chm)
- 物流配送管理系统
- c++经典编程200例
- vs+mssql实现医药管理信息系统实验报告
- vc++MFC画彩色五角星
- 通过smart获取硬盘序列号等信息的C+
- C++ 多级目录文件管理系统
- 2018年东南大学553C、C++程序设计考研复
- c++音像管理系统简易版
- 用c++设计的超市收银系统
- VC++ Bresenham Midpoint 算法画线圆椭圆
- GoF+23种设计模式解析(2nd+Edition).p
- C++MFC源代码二维绘图工具计算机图形
- vc6.0的MFC实现简单的俄罗斯方块小游戏
- C/C++数据结构_随机10000个数:排序~8大
- 国密SM2非对称算法C语言实现
- C++程序设计期末考试机考题
- Visual Studio 2017C++ 2017安装手册说明
- 正向最大匹配中文分词c++源程序
- C++库存管理系统文档+mysql
- criminisi算法C++可运行程序
评论
共有 条评论