免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4488 | 回复: 15
打印 上一主题 下一主题

g-bios support JPEG decode [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-20 10:59 |只看该作者 |倒序浏览
Description:
    实现g-bios对JPEG格式图片的处理

Team member:
    Change Shi、Tbag Tang

论坛徽章:
0
2 [报告]
发表于 2010-09-20 21:51 |只看该作者
2010.9.20进展汇报:

软件解码部分:
    基本完成libjpeg库的移植,实现将烧在nand上的jpeg文件数据解码成RGB数据流,并在LCD上显示。

硬件解码部分:
    S3C6410硬件解码jpeg基本成功,但是解码输出的数据是YUV4:2:2标准,为了适用广泛,LCD已设置成RGB565标准,所以颜色转换方面还有些问题,仍需调试。

遇到的难点:
    libjpeg库适用于对文件的编解码,而g-bios上没有fopen、fread等库函数,必须要将libjpeg库进行修改,将其适用于对内存块数据的编解码。

论坛徽章:
0
3 [报告]
发表于 2010-09-22 16:39 |只看该作者
小组三天进展

软件方面:
1)成功移植libjpeg到g-bios。
2)实现g-bios对JPEG格式图片的处理。

硬件方面:
.基本实现对JPEG的解码,并在LED显示图片,但图片颜色有偏差,仍需调试。

BUG:
1)jpeglib太大,移植jpeglib后,g-bios下半部由原来的82k增加到150k.
2)硬件解码目前没有解决。

解决办法:
1)jpeglib
a.通过对jpeglib的裁剪,减少g-bios下半部的大小。
b.编程实现精简版jpeglib。
2)硬件解码
.继续调试

论坛徽章:
0
4 [报告]
发表于 2010-09-27 11:00 |只看该作者
一个裁剪的思路,g-bios目前只需要libjpeg的decode部分,可以尝试把encode部分的函数以及数据结构从libjpeg剔除出去,应该可以缩减不少的体积。

论坛徽章:
0
5 [报告]
发表于 2010-09-27 12:00 |只看该作者
目前对于jpeg的裁减进展不是很大,对于程序还没完全理解,所以裁减还需继续努力。
主要的难点:
1、函数调用较复杂。
2、解码算法较复杂。

4楼的方案不错,可以借鉴下。谢谢!

论坛徽章:
0
6 [报告]
发表于 2010-09-27 21:55 |只看该作者
针对移植后Jpeglib的大小问题,我打算从下面几点入手
1)通过查找资料,了解JPEG文件格式。
2)了解离散余弦变换和哈夫曼编码。
2)读懂Jpeglig库的解码算法。
3)精确移植Jpeglib,去掉无用的代码

论坛徽章:
0
7 [报告]
发表于 2010-09-27 21:56 |只看该作者
写错标号了,右手的错

论坛徽章:
0
8 [报告]
发表于 2010-09-28 09:41 |只看该作者
经过昨天的裁减,略有进展,去除了部分冗余代码,已裁减17K。
采取的方案:
    跟踪函数的调用,逐步去除未调用的函数。
    此方法虽然有所繁杂,但的确起到了一定的成效,而且在裁减的过程中,对源码进行了分析,也对解码算法有了一定的理解,还应继续努力,以达到理想的效果。

论坛徽章:
0
9 [报告]
发表于 2010-09-29 09:55 |只看该作者
经过前一次的大幅度裁减之后,裁减工作也陷入僵局,昨天裁减了部分冗余代码,但是未能起到很好的作用,接下去想从解码过程入手,对整个算法了解后,再精简。
查看了一些资料,大致了解了jpeg编码的原理,而解码就是一个反过程,在这做一下简单的总结。
编码过程:
  1. Color Model Conversion (色彩模型)
  2. DCT (Discrete Cosine Transform 离散余弦变换)
  3. 重排列 DCT 结果
  4. 量化
  5. RLE 编码
  6. 范式 Huffman 编码
  7. DC 的编码
首先,由于人的视觉对于色彩的敏感度小于对亮度的敏感度,所以将色彩模型通过DCT转换得到一个DCT 变换系数,通过这个系数进行量化,去除一些空间上(指色彩)的部分冗余数据,从而达到压缩的效果。DCT转换的过程是无损的,而量化的过程是有损的。
其次数据本身可以通过编码实现数据的精简,比如说一个字节数据为0x00,在通常情况下存储的时候就是一个字节(8bit),而通过Huffman编码得到0(1bit),这样通过数学方法实现了压缩。通过Huffman编码来压缩过程是无损的。
这个是我的一些理解,有偏差的地方希望大家能更正。谢谢!

论坛徽章:
0
10 [报告]
发表于 2010-09-29 10:44 |只看该作者
本帖最后由 tbag-tang 于 2011-01-14 12:41 编辑

Come together。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP