• 大小: 2.32MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-01-10
  • 语言: 其他
  • 标签: vc  

资源简介

本工程已通过vc编译运行,实现bmp图片转化成jpeg图片,运用离散余弦、哈弗曼、量化等编码过程,代码详细,每一行都有详细的注释,适合对图像编码的学习和研究。 ……………… ………… typedef struct tagJPEGSOF0_24BITS { WORD segmentTag; //SOF段标记,必须为0xFFC0 WORD length; //段长度,真彩图为17,灰度图为11 BYTE precision; //精度,每个信号分量所用的位数,基本系统为0x08 WORD height; //图像高度 WORD width; //图像宽度 BYT

资源截图

代码片段和文件信息

//jenc.cpp
/*
 这是一个简单的jpeg编码程序,支持1:1:1采样的baseline彩色jpeg,输入只能是24bit的BMP文件
 代码结构只求能说明各步骤过程,并不做特别的优化,效率较为一般。jpeg的色彩是采用YCrCb模式
 的,所以从BMP到jpeg要经过YUV的转换。
*/
#include “jenc.h“

// 存放VLI表
BYTE VLI_TAB[4096];
BYTE* pVLITAB;                        //VLI_TAB的别名使下标在-2048-2048

// 存放2个量化表
BYTE YQT[DCTBLOCKSIZE]; 
BYTE UVQT[DCTBLOCKSIZE]; 
// 存放2个FDCT变换要求格式的量化表
FLOAT YQT_DCT[DCTBLOCKSIZE];
FLOAT UVQT_DCT[DCTBLOCKSIZE];
//存放4个Huffman表
HUFFCODE STD_DC_Y_HT[12];
HUFFCODE STD_DC_UV_HT[12];
HUFFCODE STD_AC_Y_HT[256];
HUFFCODE STD_AC_UV_HT[256];


 // bmFile:输入文件
 // jpgFile:输出文件
 // Q:质量
void JEnc::Invoke(string bmFile string jpgFile long Q)
 {
  FILE* pFile;            // 输入文件句柄

  if ((pFile = fopen(bmFile.c_str()“rb“)) == NULL)   // 打开文件
  { 
   throw(“open bmp file e

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-11-09 10:45  jpeg_mine\
     文件        5941  2004-06-30 15:33  jpeg_mine\Jpeg.h
     文件        4723  2004-06-30 15:09  jpeg_mine\JpegFormat.h
     文件        4563  2004-06-30 15:31  jpeg_mine\Jpeg_mine.dsp
     文件         541  2004-06-30 14:37  jpeg_mine\Jpeg_mine.dsw
     文件       82944  2011-11-09 10:45  jpeg_mine\Jpeg_mine.ncb
     文件       49664  2011-11-09 10:45  jpeg_mine\Jpeg_mine.opt
     文件         252  2011-11-09 10:01  jpeg_mine\Jpeg_mine.plg
     文件     3145784  2011-08-07 19:40  jpeg_mine\house.bmp
     文件      344161  2011-11-09 09:55  jpeg_mine\house.jpg
     文件       26248  2004-06-30 17:34  jpeg_mine\jenc.cpp
     文件        4823  2004-06-30 15:20  jpeg_mine\jenc.h
     文件         925  2011-11-09 10:01  jpeg_mine\main.cpp

评论

共有 条评论