资源简介

行程编码,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  Bmp.aps
     文件         142  1998-04-23 13:47  Bmp.h
     文件         331  1998-04-23 15:47  Bmp.rc
     文件       32030  1998-04-25 09:37  compress.c
     文件       43008  1998-05-06 09:20  compress.exe
     文件         758  1998-04-23 14:04  JPEG.H
     文件         183  2000-06-11 09:44  readme.txt
     文件       13310  1995-11-22 14:50  test.jpg

评论

共有 条评论