資源簡介
嵌入式Linux應用系統開發實例精講源碼

代碼片段和文件信息
#include?“DataType.h“
#include?“tables.h“
#include?“dct.h“
#include?“flash.h“
#define?DEBUG
#ifdef?DEBUG
#include?“serial.h“
#endif
#define?CIFW?352
#define?CIFH?288
LINT8?cha_y[CIFW][CIFH];
LINT8?cha_u[CIFW/2][CIFH/2];
LINT8?cha_v[CIFW/2][CIFH/2];
LINT8?ix=0;
LINT8?iy=0;
LINT32?ydc=0udc=0vdc=0;
LINT32?accoder[16][11]acbit[16][11];
LINT32?accoder2[16][11]acbit2[16][11];
///////////文件部分/////////
#define?MAXSIZE?262114?//256K
typedef?struct{
LINT8?buffer[MAXSIZE];
LINT32?fplpCurrentPositionlength;
LINT8?CurrentData;
LINT8?CurrentBits;
}FILEBUF;
FILEBUF?infile;
//輸入數據,長度為bits
void?PutDatatoJpegFile(LINT32?dataLINT8?bitsFILEBUF?*buf)
{
LINT8?CurrentFreeBits=0;
while?(bits!=0)
{
if?(buf->CurrentBits+bits<8)
{
buf->CurrentData=(buf->CurrentData< buf->CurrentBits+=bits;
bits=0;
}
else
{
CurrentFreeBits=8-buf->CurrentBits;
bits=bits-CurrentFreeBits;
buf->CurrentData=(buf->CurrentData<>bits;
buf->buffer[buf->CurrentPosition]=buf->CurrentData;
buf->CurrentPosition++;
buf->length++;
//如果data=0xFF?加0
if?(buf->CurrentData==0xff)
{
buf->buffer[buf->CurrentPosition]=0;
buf->CurrentPosition++;
buf->length++;
}
buf->CurrentData=0;
buf->CurrentBits=0;
data=data&mask[bits];
}
}
}
///////////Huffman編碼?/////////
typedef?struct
{
LINT32?maxcode[16];
LINT32?mincode[16];
LINT8?ml;
unsigned?valptr[16];
}DHUFF;
typedef?struct
{
LINT8?huffval[256];
}XHUFF;
DHUFF?dhuffdhuffdcdhuff2dhuffdc2;
XHUFF?xhuffxhuffdcxhuff2xhuffdc2;
void?len2huff(LINT8?*lengthtabDHUFF?*dhuffXHUFF?*xhuffLINT8?*val)
{
int?ilkbase=0;
dhuff->ml=16;
for(i=0;iml;i++)
{
dhuff->mincode[i]=0;
dhuff->maxcode[i]=0;
dhuff->valptr[i]=-1;
}
for(i=0;i<256;i++)
xhuff->huffval[i]=0;
i=0;
base=0;
for(l=0;lml;l++)
{
if(lengthtab[l]!=0)
{
dhuff->mincode[l]=base;
dhuff->valptr[l]=i;
}
for(k=0;k {
xhuff->huffval[i]=val[i];
i++;
base++;
}
if(lengthtab[l]!=0)dhuff->maxcode[l]=base-1;
base=base*2;
}
}
void?iztransfer(LINT32?*array)
{
LINT32?temp[64]nxy;
for(n=0;n<64;n++)
{
x=iztab[2*n];
y=iztab[2*n+1];
temp[n]=array[x*8+y];
}
for(n=0;n<64;n++)
array[n]=temp[n];
}
//量化
void?qdata(LINT32?*?inLINT32?*?outLINT8?level)
{
int?i;
for(i=0;i<64;i++)
{
if(in[i]>0)
out[i]=in[i]/agraytab[level][i];
else
out[i]=in[i]/agraytab[level][i];
}
}
void?quvdata(LINT32?*?inLINT32?*?outLINT8?level)
{
int?i;
for(i=0;i<64;i++)
{
if(in[i]>0)
out[i]=in[i]/acolortab[level][i];
else
out[i]=in[i]/acolortab[level][i];
}
}
//從SRAM?0xC0100000讀數據到?cha_y[CIFW][CIFH];
//cha_u[CIFW/2][CIFH/2];?cha_v[CIFW/2][CIFH/2];
#ifdef?DEBUG
void?put_num8(unsigned?char?i)
{
put_char(((((i>>4)?&?0x0f)?+?‘0‘)>?‘9‘?)??((i>>4)?&
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????......R??????3233??2006-06-12?17:17??程序代碼\第10章\DCT.h
????......R?????13645??2006-06-12?17:17??程序代碼\第10章\jpeg.c
????......R?????12141??2006-10-05?10:12??程序代碼\第11章\pd6710.c
????......R??????3221??2006-10-05?10:12??程序代碼\第11章\pd6710.h
????......R???????366??2006-09-18?11:16??程序代碼\第6章\Ds1820\DELAY.s
????......R???????690??2006-09-18?11:16??程序代碼\第6章\Ds1820\DISPLAY.s
????......R???????779??2006-09-18?11:15??程序代碼\第6章\Ds1820\FORMULA.s
????......R???????496??2006-09-18?11:14??程序代碼\第6章\Ds1820\GET_TEMPER.s
????......R???????296??2006-09-18?11:15??程序代碼\第6章\Ds1820\READ_1820.s
????......R???????181??2006-09-18?11:14??程序代碼\第6章\Ds1820\WRITE_1820.s
????......R???????446??2006-09-18?11:12??程序代碼\第6章\Ds1820\init_1820.s
????......R???????281??2006-09-18?11:13??程序代碼\第6章\Ds1820\main.s
????......R??????3725??2006-09-18?11:13??程序代碼\第6章\Ds1820\main.txt
????......R???????205??2005-07-22?11:47??程序代碼\第6章\host\Makefile
????......R?????14265??2005-08-29?15:35??程序代碼\第6章\host\host_serial
????......R???????499??2005-08-29?15:34??程序代碼\第6章\host\host_serial.c
????......R??????2668??2004-12-05?21:43??程序代碼\第6章\host\serial.c
????......R???????794??2004-12-05?21:43??程序代碼\第6章\host\serial.h
????......R???????215??2005-07-22?11:46??程序代碼\第6章\target\Makefile
????......R??????2668??2004-12-05?21:43??程序代碼\第6章\target\serial.c
????......R???????794??2004-12-05?21:43??程序代碼\第6章\target\serial.h
????......R?????10616??2005-08-29?16:35??程序代碼\第6章\target\target_serial
????......R???????534??2005-08-29?16:35??程序代碼\第6章\target\target_serial.c
????......R?????16615??2006-09-17?22:47??程序代碼\第7章\main.c
????......R??????6621??2004-11-02?00:00??程序代碼\第7章\usb100.h
????......R??????1193??2006-06-12?17:23??程序代碼\第8章\main.c
????......R??????7814??2006-06-12?17:24??程序代碼\第8章\rtl8019.c
????......R??????6821??2005-03-22?08:57??程序代碼\第9章\QDManage.cpp
????......R??????2272??2005-03-22?08:57??程序代碼\第9章\QDManage.h
????......R??????5765??2005-03-22?08:51??程序代碼\第9章\QDServer.cpp
............此處省略18個文件信息
評論
共有 條評論