资源简介
JPEG压缩编码:实现其算法的压缩程序,帮您了解和学习图像的编码与压缩
代码片段和文件信息
//////////////////////////////////////////////////////////////
//Name:compress.c
//Purpose: Run length algorithm and Jpeg decoding
//Author: phoenix CS TshingHua Beijing P.R.C.
//Email: bjlufengjun@www.163.net or lufengjun@hotmail.com
//Date:April 3 1998
//header file
#include “bmp.h“
#include “jpeg.h“
#include “memory.h“
#include “math.h“
#include “stdio.h“
//macro definition
#define WIDTHBYTES(i) ((i+31)/32*4)
#define PI 3.1415926535
//define return value of function
#define FUNC_OK 0
#define FUNC_MEMORY_ERROR 1
#define FUNC_FILE_ERROR 2
#define FUNC_FORMAT_ERROR 3
//function declaration
int PASCAL WinMain (HANDLE HANDLE LPSTR int);
LRESULT CALLBACK MainWndProc(HWND UINTWPARAM LPARAM);
BOOL LoadPcxFile(HWND hWndchar *BmpFileName);
void ReadPcxLine(unsigned char *pFILE *fp);
//////////////////////////////////////////////////
//Jpeg functions
BOOL LoadJpegFile(HWND hWndchar *BmpFileName);
void showerror(int funcret);
int InitTag();
void InitTable();
int Decode();
int DecodeMCUBlock();
int HufBlock(BYTE dchufindexBYTE achufindex);
int DecodeElement();
void IQtIZzMCUComponent(short flag);
void IQtIZzBlock(short *s int * dshort flag);
void GetYUV(short flag);
void StoreBuffer();
BYTE ReadByte();
void Initialize_Fast_IDCT();
void Fast_IDCT(int * block);
void idctrow(int * blk);
void idctcol(int * blk);
//////////////////////////////////////////////////
//global variable declaration
BITMAPFILEHEADER bf;
BITMAPINFOHEADER bi;
HPALETTE hPalette=NULL;
HBITMAP hBitmap=NULL;
HGLOBAL hImgData=NULL;
DWORD NumColors;
DWORD LineBytes;
DWORD ImgWidth=0 ImgHeight=0;
unsigned int PcxBytesPerLine;
LPSTR lpPtr;
//////////////////////////////////////////////////
//variables used in jpeg function
short SampRate_Y_HSampRate_Y_V;
short SampRate_U_HSampRate_U_V;
short SampRate_V_HSampRate_V_V;
short H_YtoUV_YtoUH_YtoVV_YtoV;
short Y_in_MCUU_in_MCUV_in_MCU;
unsigned char *lpJpegBuf;
unsigned char *lp;
short qt_table[3][64];
short comp_num;
BYTE comp_index[3];
BYTE YDcIndexYAcIndexUVDcIndexUVAcIndex;
BYTE HufTabIndex;
short *YQtTable*UQtTable*VQtTable;
BYTE And[9]={01370xf0x1f0x3f0x7f0xff};
short code_pos_table[4][16]code_len_table[4][16];
unsigned short code_value_table[4][256];
unsigned short huf_max_value[4][16]huf_min_value[4][16];
short BitPosCurByte;
short rrunvvalue;
short MCUBuffer[10*64];
int QtZzMCUBuffer[10*64];
short BlockBuffer[64];
short ycoefucoefvcoef;
BOOL IntervalFlag;
short interval=0;
int Y[4*64]U[4*64]V[4*64];
DWORD sizeisizej;
short restart;
static long iclip[1024];
static long *iclp;
///////////////////////////////////////////////////////////
int PASCAL WinMain (HANDLE hInstance HANDLE hPrevInstance
LPSTR lpszCmdLine int nCmdShow)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 265568 1998-05-07 10:32 行程编码,JPEG压缩编码\Bmp.aps
文件 142 1998-04-23 13:47 行程编码,JPEG压缩编码\Bmp.h
文件 331 1998-04-23 15:47 行程编码,JPEG压缩编码\Bmp.rc
文件 32030 1998-04-25 09:37 行程编码,JPEG压缩编码\compress.c
文件 43008 1998-05-06 09:20 行程编码,JPEG压缩编码\compress.exe
文件 758 1998-04-23 14:04 行程编码,JPEG压缩编码\JPEG.H
文件 228 2009-02-19 09:47 行程编码,JPEG压缩编码\readme.txt
文件 13310 1995-11-22 14:50 行程编码,JPEG压缩编码\test.jpg
目录 0 2012-05-22 10:13 行程编码,JPEG压缩编码
----------- --------- ---------- ----- ----
355375 9
相关资源
- verilog实现JPEG图象压缩程序
- 读取以及写入Jpg图片内的Exif信息
- jpeg FPGA代码
- JPEG数据格式转YUV数据格式
- avilib将JPEG数据封装成AVI视频
- 图像jpeg压缩算法介绍及其源码
- MSTAR,SAR数据集,mstar2jpeg编译文件
- JPEG图像压缩VC代码实现
- libjpeg.so.8
- bmp转jpeg源码
- STM32 TFT液晶驱动与JPEG解码图象显示
- JPEG压缩源码(已经经过测试)
- FPGA JPEG Verilog Source code 源代码
- bmp压缩jpeg源码
- vc图像编程:jpeg格式转换成bmp
- 图片批处理软件JPEG Resizer2.1汉化版
- 图象压缩JPEG编码算法及压缩过程的实
- JPEG-LS压缩与解压源程序
- jpeg格式图片的读取和显示
- JPEG文件隐形信息检测算法
- JPEG图片文件编解码详解.doc
- libjpeg编译后的包
- JPEG2000图像压缩基础、标准和实践 1部
- amcap v3.09.exe
- JPEG格式编码/解码
- jpegsrc.v9a.tar.gz
- jpegsrc.v8b.tar.gz25389
- Linux 下V4l2摄像头采集图片,实现yuy
- vc实现bmp图片转化jpeg图片
- JPEG图像压缩编码.doc
评论
共有 条评论