原创 【博客大赛】DE2+DSP实现的JPEG编码器方案

2013-1-2 15:48 1192 7 12 分类: 处理器与DSP
11.jpg

1、将图像分成8*8数据块(数字信号数组,即YCbCr)

2、进行DCT变换:

22.jpg

 

可以利用一维DCT变换来实现二维的DCT变换公式1,将公式1改写成矩阵运算形式F = CfCT其中,C为带余弦基本函数的变换系数矩阵,CT为C 的转置,则DCT变换公式可以分解成串联的两次一维变换,如下:

33.jpg

即写成矩阵形式为:F=CY,Y=fCT,这里,Y为中间乘积矩阵(Y的列等于f行的一维DCT 输出) 。因此,在做二维DCT变换时,可以应用一维DCT 变换来计算,即先沿f的行进行一维DCT 计算获得Y,再沿着Y的转置的行进行一维DCT运算。这其中就包含一个转置存储器。这样的算法结构如图:

44.jpg

3、进行量化,量化有对应的量化表(色度和亮度的量化表不同),将DCT变换的结果与对应量化表中的数相除;

4、之字形输出,即将量化后的数据按之字形输出即可(直流分量在最前,之后是交流分量),经过此步骤后,低频分量数据靠前排列,高频分量数据靠后排列;

55.jpg

5、Huffman编码,此部分有对应的色度和亮度编码表。此部分也可以根据数值出现的可能性大小来提高编码速度。

二:系统结构

整个系统可以分成两大部分:DE2开发板图像预处理部分和DSP图像压缩部分,另外采用EMIF进行数据交换。

66.jpg

 

1)DE2开发板图像预处理部分(如图4中的黑色虚线表示)包括视频AD转换和FPGA处理,其中视频AD转换可以采用DE2开发板自带的ADV7181转换芯片实现,可以将PAL/NTSC制式的信号转换为CCIR656制式的信号;FPGA处理部分采用Altera的嵌入式软核NiosII作为控制单元,将CCIR656制式信号进一步转换为YCbCr制式信号方便DSP做处理,将YCbCr信号缓存到SRAM中为DSP处理提供数据源。

2)DSP图像压缩部分(如图4中的红色虚线表示)采用TI公司的TMS320VC5509A处理器,其具有乘法累加和累减单元,能在单周期内完成1次乘法运算和1次累加运算,将上面的公式2和公式3进一步转换,都可以变换成乘法累加/累减: 

77.jpg

可见采用DSP做DCT变换非常合适(其实DCT变换就是FFT变换的变型,在很多设计中都能看到采用DSP设计FFT变换的);量化一步中会涉及到除法,但是可以近似采用乘法的方法代替(譬如除以3,可以转换为乘以0.333,再转换为乘以333再除以1000), 之字形扫描只是按照一定的规律将数据从新排列,此步骤很容易;编码一步采用静态的Huffman编码表,对应编码表,按照一定的顺序打包输出;从描述中可以看出,设计会用到一些表,可以采用片外存储的方式进行实现。

3)FPGA和DSP之间采用EMIF(外部存储器接口)进行数据交换,它们之间的握手信号可以采用中断实现。

4)整个系统可以采用NiosII作为总的控制单元,由其发起信号采集,缓存以及数据压缩等模块的功能。

 

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户450216 2016-5-11 13:19

点赞

用户593939 2016-5-8 18:24

写的好,学习和参考了

用户1301577 2013-2-1 12:32

学习了啊!

sunyzz 2013-1-9 14:05

这类芯片的开发板不是一般的贵啊

Hoki 2013-1-9 12:49

DE2接触过,但没深入了解过 如果要完成图像处理算法的话,最好整个stratix系列的芯片吧

sunyzz 2013-1-8 14:32

我本科毕设就是只用的DE2做的,当时只做到仿真,没上板子,整个系统搭建起来太难了,请问您玩过DE2板子吗,能否请教您几个问题??!

Hoki 2013-1-8 13:45

这个JPEG编码,博主可以摆脱DSP,完全用DE2实现
相关推荐阅读
sunyzz 2017-08-19 10:38
【博客大赛】AVALON总线介绍
1、AVALON总线简介Avalon总线是一种协议较为简单的片内总线,是ALTERA公司定义的片上互联总线,该总线可以将诸如NIOS II的CPU与其他外设连接起来,进而进行数据交换。AVALON总线...
sunyzz 2017-08-17 21:36
【博客大赛】不要轻易做职场滥好人
小A毕业于国内普通高校,但是他聪明,勤奋,能干,动手能力强,可是即便有这些优点也不能让小A轻轻松松找到一份好工作。这不,去年9月份小A好不容易找到一份工作,然后立马就入职了C公司,生怕C公司过两天不要...
sunyzz 2017-08-16 21:15
【博客大赛】IC设计低功耗技术四
五:工艺层面的降低功耗前面几节都是在讨论设计人员如何在前期阶段,中期阶段降低功耗,涉及到软件层面的,硬件层面的,这些技巧基本都是前辈总结出来的,或者根据理论推论出来的。但是到了后期,想降低功耗基本就要...
sunyzz 2017-08-14 22:35
【博客大赛】IC设计之低功耗技术三
四:RTL(寄存器传输)级的低功耗设计4.1 状态机的设计状态机编码中一般有两种方式,普通的二进制编码,特殊的格雷码,格雷码的特点是两个数据之间的跳变时只会有一个bit在toggle,显然比起多bit...
sunyzz 2017-08-12 16:51
【博客大赛】IC设计之低功耗技术二
三、架构层面的降低功耗系统的实现有很多的方式,每种方式对功耗的影响都不相同,本节主要介绍架构对功耗的影响。3.1 高级门口电路 在同步电路系统中,时钟占据了大部分的动态功耗,因而在一些情况下,如果有些...
sunyzz 2017-08-12 10:37
【博客大赛】IC 设计之低功耗技术一
一、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片...
EE直播间
更多
我要评论
5
7
关闭 站长推荐上一条 /3 下一条