《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > 视频压缩IPcore设计

视频压缩IPcore设计

2008-08-28
作者:傅伟煌 孟利民 徐林静

    摘 要: 介绍了一种基于FPGA技术的视频压缩IPcore(Intellectual Property core,智力产权)设计。设计中综合运用了分布式算法、并行运算和流水线单元,通过VerilogHDL(Verilog Hardware Description Language)硬件描述语言描述运算单元及其结构配置。整个系统能在27MHz系统时钟下工作。
    关键词: 视频压缩  IPcore  FPGA

 

    现行的视频压缩标准有多种,但基本属于以下两大类:视频会议" title="视频会议">视频会议标准和多媒体标准。视频会议标准包括ITU(International Telecommunication Union)的H.263/H.261等。这些标准主要采用了基于DCT(离散余弦变换" title="离散余弦变换">离散余弦变换)编码、运动补偿等技术,使视频流" title="视频流">视频流能以N×64kbps(N=1~32)的速率传输。
    多媒体压缩标准主要包括:MPEG-1、MPEG-2、MPEG-4等,由CCITT和ISO的动态图像专家组(Motion Picture Experts Group)制定。MPEG-1主要应用在以CD-ROM为介质的视频上,比特率为1.5Mbps。MPEG-2应用在NTSC/PAL和CCIR601中,比特率为2~10Mbps。MPEG-1和MPEG-2的目的都是有效传输和存储音视频。而MPEG-4是为了提供更有效的视频压缩,基于内容提供广泛的接入方式。它既可以在5~64kbps的移动电话和公共交换网中应用,也可以在4Mbps带宽的电视中应用。
    JPEG(Joint Photographic Experts Group)标准是一个适用范围广泛的通用标准,由联合图像专家小组制定。它不仅适用于静止图像的压缩,也适用于电视图像序列的帧内图像的压缩[1]
    近年来,随着FPGA技术的日益成熟,愈来愈多的曾使用软件或DSP实现的复杂数字算法开始使用FPGA完成。这当然是由于FPGA的特殊结构和特性,使它可以更加高速和高效地完成这些算法。IPcore技术可以把这些FPGA中的算法设计封装成包(模块)。这些包具有智力产权,可以被继承、共享或购买。
1 视频压缩原理和算法实现
    视频压缩技术主要利用图像信号的相关、冗余等特性,通过一些变换算法,保留对人眼视觉最重要的部分,进行编码传输。大部分视频压缩利用2D-DCT(二维离散余弦变换)和2D-IDCT(二维反离散余弦变换)变换得到图像的频谱,高精度保留对人眼重要的高频部分,低精度保留低频部分从而对视频流进行压缩[1]。其过程如图1所示。

 


1.1 DCT变换算法
    2D-DCT变换是视频压缩中的常用变换[2]。在压缩过程中,将一幅图像分成许多8×8的小块进行变换。
    8×8的2D-DCT变换如公式(1)所示:
   

    如果直接使用公式(1)进行2D-DCT变换,运算量将会十分巨大,普通FPGA很难有效完成整个视频压缩运算。所以需要先把2D-DCT运算进行一些变换,简化计算,减少运算量。
   

    2D-DCT具有正交可分解性[3],可以通过对输入的矩阵先做一维行变换,再做一维列变换实现。即将8×8数据先按行方向进行累加运算,产生中间矩阵,再对中间矩阵按列方向进行累加运算,最后得到变换结果。2D-DCT可以分解成两个1D-DCT运算,见公式(2)。
    将公式(2)展开成矩阵形式,得到公式(3)。计算一个这样的单元需要64个乘法器" title="乘法器">乘法器和56个加法器,运算量还是很大。利用公式(3)的对称性进行变换,可以得到公式(4),使乘法器减少到32个,加法器减少到8个。
    一个由公式(4)推演出的分布式乘法器如图2所示。4个乘数(x0…x3)同时与各自的系数(c0…c3)相与,然后相加得到一个和数,这个和数与除2器出来的数相加,得到一个新的累计数。这个新的累加数如果是最后的结果,则输出;如果不是,送入除2器,进行下一步累加。这样,分布式乘法器就可以完成系数yj的运算。

 


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

 


    LPM_ROM  U1 (
            .address (adr),
            .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设计,如图4所示。其中4RC单元表示图3的结构。

 

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

 


    转置RAM是一个8×8的RAM阵列。当数据完成1D-DCT变换后,即由xij到zil变换,按行顺序输入到转置RAM,在读出时按列顺序读出,这样完成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  量化,编码
    量化算法包括一张量化表,它因人眼对各种空间频率" title="空间频率">空间频率的灵敏度的不同而确定。在表中,较低空间频率的精度要高于较高频率的精度,这是由于人眼的低频分量比较敏感,而对高频分量不太敏感。
    编码可以采用游程编码或熵编码。单元模块均可通过FPGA的片上RAM(满足双口RAM的特性)设计完成。
2 结论
    整个视频压缩IPcore设计可以在FPGA上实现,在27MHz的系统时钟下工作。根据具体芯片的不同,可以在更高的速率工作。压缩速率可以达到108Mbps。
    实际应用中,数据字长对压缩效果和比率有较大影响,一般情况下系数Cm取12位,可以满足大部分的视频压缩要求。
    整个视频压缩IPcore可以直接下载到FPGA上(例如EDIF格式),独立实现视频压缩功能,也可以通过软件设计与其他的IPcore协同工作。例如,在网络摄像机的应用上,可以把视频压缩IPcore、数字摄像头控制器、网络接口一起编译成新的核。这个核具有视频采集、压缩、传输等一系列功能。把核的EDIF文件通过生产厂商的下载软件下载到FPGA上,就可以在一块芯片上实现所有网络摄像机的功能。实现了SoPC(System on a Programmable Chip)的目标。
参考文献
1 Rafael C. Conzalez Richard E.Woods. Digital Image Processing(Second Edition). Prentice Hall
2 D. Le Gall. MPEG: A Video Compression Standard for Multimedia Applications. Communications of the ACM, CACM, April 1991
3 Feig, E., Winograd, S. Fast Algorithms for the Discrete Cosine Transform. IEEE Trans, September 1992
4 Altera Megafunctions. http:// www.altera. com/ literature/litip.jsp
5 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,iPS'97, IEEE  Press.
6 Heron, J.P., Trainor, D., Woods, R. Image Compression Algorithms Using Re-configurable Logic. 31st Asilomar Conference on Signals, Systems and Computers, Asilomar, USA, November 1997

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。