首页 | 供应信息 | 采购信息 | PDF资料 | 技术资料 | 行业资讯 | 产品展示 | 人才市场 进入会员区
   技术文章分类:单片机/DSP 嵌入式系统 测试仪表 电源技术 接口电路 存储器 传感与控制 通信网络 无线通信 模拟技术 显示与光电 EDA/PLD 汽车电子 消费电子 电子综合
   电子综合工具:PDF资料大全 电子缩略语 IC型号替换 IC厂家 电子电路图 技术参数 设计应用 解决方案
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
  您所在的位置: IC37首页 > 技术问答 > 单片机 > 一个700行代码完成的Jpeg图片解压源码

  一个700行代码完成的Jpeg图片解压源码 

一个700行代码完成的Jpeg图片解压源码

--------------------------------

jpeg2code.exe把当前目录的print.jpg打印到print.txt

jpeg2code.cppjpeg2code.exe的源代码

Jpeg_decode.c在ARM9裸机平台上测试过的Jpeg解压代码

DECODE.CJpeg_decode.c代码的原型,可用TC编译,并在真实DOS下执行

DECODE.EXEDOS下可执行,看效果,XP 的CMD窗口就不要执行了,本来就不是真实的DOS环境。

print.jpg测试的图片

print.txt图片的内容

--------------------------------

1.JPEG解压的代码不是我写的,因此不要问问关于解压原理什么的。

2.最初在网络上找到的是DECODE.C这份源代码。我的贡献仅仅在于把这份DOS下的代码移植到ARM的平台上,只要更改是数据宽度定义的问题。见jpeg_decode.C中的#define _INT_short

PC上 short / int是32bit宽度的

而ARM上short是16bit int是32bit的

3.原有代码编写质量确实不敢说是好的,但厉害的是短短700行的代码就能完成Jpeg解压,比我见过很多别的Jpeg解压代码要简单的多很多,这点我佩服,而且我们这些搞应用的,这个能直接拿来应用,

这是不错。

4.我的ARM平台是ARM9 我是把该函数用的WINCE的Eboot中做Logo显示用的。实际测试过的。编译用的是WINCE 的Platform Builder,你们应该可以很简单移植到ADS下编译的。

Jpeg_decode.c 两个调用的函数

extern void LCD_DrawPixel(INT16U x0, INT16U y0, INT8U Pixel_Lbyte, INT8U Pixel_Hbyte);

LCD上显示一个点的函数,这个需要外部来提供,而且LCD的初始化必须完成后才能使用。

extern void EdbgOutputDebugString(const unsigned char *sz, ...);

Debug输出,没什么用,你可以关闭。

对外函数接口

void JpegFileDecode(void)

想换个图片?

用jpeg2code.exe把print.jpg转换诚print.txt,然后提到Jpeg_decode.c中的内容吧。

如果想XP下编译DECODE.C 找DosBox模拟真实的DOS环境,找TC在上面编译吧。

liandao

Email:lycld@163.com

2008/01/24

现在路径:

http://bbs.21ic.com/upfiles/img/20081/2008124134239130.rar

http://bbs.21ic.com/upfiles/img/20081/2008124134239130.rar


作者:liandao  2008-1-24 13:43:00

  回复1  谢谢!留给记号,到时移到我的系统里。167562

谢谢!留给记号,到时移到我的系统里。
作者:hebeijiang  2008-1-24 14:27:00

  回复2  有用的东西,有时间测试一下167563

有用的东西,有时间测试一下
作者:onemillion  2008-1-24 14:48:00

  回复3  好,感谢楼主167564

好,感谢楼主
作者:古道热肠  2008-1-24 17:20:00

  回复4  谢谢发表167565

谢谢发表
作者:gyt  2008-1-25 13:22:00

  回复5  改天测试测试167566

改天测试测试
作者:农民讲习所  2008-1-25 13:40:00

  回复6  做个记号167567

做个记号
作者:sz_kd  2008-1-25 14:16:00

  回复7  测试167568

1。测试前,最好能先确认LCD显示函数是正确的,然后测试,如果有问题,请对比DECODE.C和Jpeg_decode.c,我确实没有刚改代码内容,仅仅修改了一些数据宽度的部分。

2。如果有问题,欢迎Email探讨。


作者:liandao  2008-1-25 22:42:00

  回复8  收藏167569

收藏
作者:huntington  2008-1-26 9:08:00


我要投稿 注册会员
客服咨询热线:0755-26000950 0755-26007355
 相关技术问答
·程序代码  2008-1-23
·上电迅间误操作问题  2008-1-23
·看一段关于通讯的程序  2008-1-23
·请教问题  2008-1-23
·下面这个函数的功能是给结构..  2008-1-23
·请教一个串口波特率的问题  2008-1-23
·XD们谁用过4V左右的电压..  2008-1-23
·请教I2C多个从设备读写。..  2008-1-23
·帮忙看看这个烂定时器  2008-1-24
·欢迎大家进行程序结构的讨论  2008-1-24
·大家了解NEC单片机吗?请..  2008-1-24
·请教一个电压比较器的问题!  2008-1-24
·想选个MCU做电表,朋友说..  2008-1-24
·2803发热??急  2008-1-24
·大家帮看看这个计数程序有什..  2008-1-24
·6位BCD码转十六进制  2008-1-24
·求购51或arm开发板  2008-1-24
·关于C和汇编的问题  2008-1-25
·请大家帮我看看这个电路实现..  2008-1-25
·TDA2030AV国外库存..  2008-1-25
·请教砍波原理  2008-1-25
·定时器精确定时  2008-1-25
·说说msp430的仿真指令  2008-1-25
·请各位推荐一块80c51开..  2008-1-26
·为何sin = 0;报错e..  2008-1-26
·“技术派”的力量——坚持看..  2008-1-26
 
 热门IC
6169  CS4236B-XQ3  FAH.DA.3100.ZB  FOD2743AS  FSAV450MTCX  FNQ12  FOD260L  FM27C040V90  FL1072  FLC32CT150K  TSOP34836  TEA7052DP  FCN2416C334JD2  FARF5CG856M50A204MT  FARF5CJ947M50L211MT  FARF5CB881M50G211R  FAN2501S33X  FAN2559MP13X  FE800112  FE2X0362  UDN6510A  0805CS-391XJBC  IDT7202LA20TP  MC14012BAL  UAA190  BU2911  MAX3224EEPP  MAX234  CV4261N  DS1225AD-170  IRF94-3410  QH8-8648-01  UPD4713AC  HD6433258C86F  MSM80C49-529GS-VK-G  AP20G45EH  UPD75308GC-J06-3B9  GMS34112-RA060A  MSM80C49-807GS-2K-G  IDT74LVCH16501PA  MSM65524A-329  UPC6458GT-611-E2  MX93021FC  2SC2732  2N5401RLRAG  20ETS12  24LC02BISN  12065E104MAT2A  1N5359BRL  IMP38HC43ESD