资源简介
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
相关资源
- QT,JPEG解码源代码(已完成)
- 将yuv各种格式的图片转换为jpg格式的
- 2006年湖北工业大学409数据结构试题
- jpeg图像压缩实例代码
- 基于V4L2的视频采集,能够采集YUVJPE
- 利用FFmpeg将Jpeg图片转为任意视频容器
- jpeglib读取jpeg,转为bmp图,24真彩和灰
- JPEG2000编码核心算法:EBCOT
- turbo-jpeg
- jpeg-8c库 及H264转jpeg代码
- opencv jpeg 编解码
- stm32+JPEG+bmp+RM04_WIFI+二值图像.rar
- JpegToYUV源代码
- ffmpeg将一个视频文件解码输出bmp和j
- libjpeg-turbo-1.2.1.tar.gz
- zw_JPEG400.zip
- JPEG 编解码的程序大全我搜集的所有程
- JPEG标准中文版
- libjpeg-turbo.rar
- mjpeg_viewer_win软件
- jpeg编码实现
- kakadu2.2.3和openjpeg1.3两开源图像压缩软
- Mjpeg-streamer流实现抓拍功能
- 小波分析经典教材小波变换与JPEG200
- C实现的JPEG编码源代码,决定真实
- ios libjpeg .a静态库
- ISO/IEC 10918-1 ITU-T.81
- JPEG头信息解析c
- JPEG编码器源代码分析
- jpeg编解码原理详解
评论
共有 条评论