资源简介
嵌入式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个文件信息
评论
共有 条评论