• 大小: 50KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签:

资源简介

嵌入式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个文件信息

评论

共有 条评论

相关资源