视频压缩IPcore设计_第1页
视频压缩IPcore设计_第2页
视频压缩IPcore设计_第3页
视频压缩IPcore设计_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、视频压缩IPcore设计傅伟煌 孟利民 徐林静 时间:2008年08月28日 字 体: 大 中 小关键词:? 摘 要: 介绍了一种基于FPGA技术的视频压缩IPcore(Intellectual Property core,智力产权)设计。设计中综合运用了分布式算法、并行运算和流水线单元,通过VerilogHDL(Verilog Hardware Description Language)硬件描述语言描述运算单元及其结构配置。整个系统能在27MHz系统时钟下工作。? 关键词: 视频压缩? IPcore? FPGA?1。? 近年来,随着FPGA技术的日益成熟,愈来愈多的曾使用软件或DSP实现的复

2、杂数字算法开始使用FPGA完成。这当然是由于FPGA的特殊结构和特性,使它可以更加高速和高效地完成这些算法。IPcore技术可以把这些FPGA中的算法设计封装成包(模块)。这些包具有智力产权,可以被继承、共享或购买。1 视频压缩原理和算法实现? 视频压缩技术主要利用图像信号的相关、冗余等特性,通过一些变换算法,保留对人眼视觉最重要的部分,进行编码传输。大部分视频压缩利用2D-DCT(二维离散余弦变换)和2D-IDCT(二维反离散余弦变换)变换得到图像的频谱,高精度保留对人眼重要的高频部分,低精度保留低频部分从而对视频流进行压缩1。其过程如图1所示。?1.1 DCT变换算法? 2D-DCT变换是

3、视频压缩中的常用变换2。在压缩过程中,将一幅图像分成许多88的小块进行变换。? 88的2D-DCT变换如公式(1)所示:? ? 如果直接使用公式(1)进行2D-DCT变换,运算量将会十分巨大,普通FPGA很难有效完成整个视频压缩运算。所以需要先把2D-DCT运算进行一些变换,简化计算,减少运算量。? ? 2D-DCT具有正交可分解性30x3)同时与各自的系数(c0c3)相与,然后相加得到一个和数,这个和数与除2器出来的数相加,得到一个新的累计数。这个新的累加数如果是最后的结果,则输出;如果不是,送入除2器,进行下一步累加。这样,分布式乘法器就可以完成系数yj的运算。? 由于DCT运算中的系数C

4、m是常数,对于拥有RAM单元的FPGA,上述运算也可以使用查ROM表的方法实现。将图2中的虚线内部分,改换ROM单元,如图3所示。这时,(x0x3)作为ROM表的地址位,通过查表的方式输出和数,进行累加运算。ROM表的地址位宽度为4,存储单元数量DW2416。一些生产商提供的综合软件带有IP库,可以调用这些IP库中的ROM模块实现ROM表。例如ALTERA公司的Megafunction Library中的LPM_ROM可以用以下的语句调用(VerilogHDL)4。用VC或MATLAB生成一个.mif的ROM表文件。? LPM_ROM? U1 (? ? .address (adr),? ? ?

5、 .inclock (clk),? ? .q (dat);? defparam? ? ?lpm_rom_component.lpm_width = 16,? ?lpm_rom_component.lpm_widthad = 4,? ?lpm_rom_component.lpm_address_control=REGISTERED,? ?lpm_rom_component.lpm_outdata=UNREGISTERED,? ?lpm_rom_component.lpm_file=romtable.mif;? 这样,可以得到由这些基本单元构成与矩阵公式(4)相对的1D-DCT的FPGA设计,如图

6、4所示。其中4RC单元表示图3的结构。? 如前所述,2D-DCT需要两个1D-DCT共同完成,但是两个1D-DCT运算的中间变量并不是直接传递的,而需要一个矩阵转置模块进行耦合。1.2?转置RAM? 2D-DCT单元由两个相同的1D-DCT和转置RAM等组成,如图5所示。根据公式(2),可以知道1D-DCT先对88单元的行进行累加操作,把得到的结果暂存到RAM中,直到8行都运算完成。RAM中的临时88矩阵要先转置,把列数据变成行数据,经并串转换后输入到第2个1D-DCT进行行累加。? 转置RAM是一个88的RAM阵列。当数据完成1D-DCT变换后,即由xij到zil变换,按行顺序输入到转置RA

7、M,在读出时按列顺序读出,这样完成zil到zli的变换;然后将zli并串转换,输入到第二个1D-DCT,由zli运算得到ylk。这样就完成了公式(1)的2D-DCT整个变换,如图6所示。?1.3 2D-IDCT? 2D-IDCT变换如公式(5)所示。? ? 可见公式(5)与公式(1)相同,所以2D-IDCT可以用与2D-DCT的同样方法实现。1.4? 量化,编码2 结论? 整个视频压缩IPcore设计可以在FPGA上实现,在27MHz的系统时钟下工作。根据具体芯片的不同,可以在更高的速率工作。压缩速率可以达到108Mbps。? 实际应用中,数据字长对压缩效果和比率有较大影响,一般情况下系数Cm

8、取12位,可以满足大部分的视频压缩要求。? 整个视频压缩IPcore可以直接下载到FPGA上(例如EDIF格式),独立实现视频压缩功能,也可以通过软件设计与其他的IPcore协同工作。例如,在网络摄像机的应用上,可以把视频压缩IPcore、数字摄像头控制器、网络接口一起编译成新的核。这个核具有视频采集、压缩、传输等一系列功能。把核的EDIF文件通过生产厂商的下载软件下载到FPGA上,就可以在一块芯片上实现所有网络摄像机的功能。实现了SoPC(System on a Programmable Chip)的目标。参考文献1 Rafael C. Conzalez Richard E.Woods. D

9、igital Image Processing(Second Edition). Prentice Hall2 D. Le Gall. MPEG: A Video Compression Standard for Multimedia Applications. Communications of the ACM, CACM,?April 19913 Feig, E., Winograd, S. Fast Algorithms for the Discrete Cosine Transform. IEEE Trans, September 19924 Altera Megafunctions. http:/ www.altera. com/ literature/litip.jsp5 Heron, J.P., Trainor, D., Woods, R. Implementation of the 2D DCT using a Xilinx XC6264 FPGA. IEEE Proceedsing?on the Workshop on Signal Processing systems,iPS97, IEEE? Press.6 Heron, J.P., Trainor, D., W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论