DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0
打印 上一主题 下一主题

H.264/AVC视频编码变换量化核的硬件设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-22 00:01:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
随着数字化视频技术在视频电话、视频会议、DVD以及高清晰度数字电视等方面的应用,视频压缩标准也随之不断发展。ITU-T制定的H.26x系列和ISO/IEC制定的MPEG-x系列,是视频领域中两大独立的主流视频压缩标准。2003年,这些组织又联合推出新的视频压缩标准H.264/MPEG-4 -10AVC,简称H.264/AVC。H.264/AVC采用一系列新的压缩方法[1],可获得更好的压缩效果,其压缩率达到以往标准的1.5"2倍[2]。因此,基于这一标准的相关研究和硬件实现具有重要的意义。视频压缩硬件实现的关键是编解码模块,其中尤以编码模块最为核心。本文主要研究编码模块中的4×4整数变换量化核,提出硬件实现的优化方法,并采用Verilog HDL语言进行硬件设计和综合。

1 4×4整数变换量化核的原理

在以前的视频编码标准如MPEG-2和H.263中,对于预测的残差数据都是采用8×8离散余弦变换(DCT)[1]作为变换的基本运算操作;而在H.264/AVC编码标准中,则采用类似DCT变换形式的基于4×4 像素块的整数变换。由于变换块的尺寸缩小,运动物体的划分更精确,而且运动物体边缘处的衔接误差大为减小。

对于整数变换方式,4×4像素块的变换公式[3]为:


  
式中,(CXCT)是二维变换核,Ef是缩放因子矩阵,符号表示CXCT矩阵里的每个元素和Ef矩阵中相同位置的元素相乘,a=1/2,b=

。为了更有效地压缩数据,需要利用量化的方法对变换后的数据进行有损压缩。同时,由于整数变换需要利用矩阵行向量的归一化因子进行系数缩放处理,为降低变换的运算量,在H.264/AVC标准中将变换的系数缩放并进行量化运算处理,避免了复杂的实数运算和除法运算,更有利于硬件的实现。
对于量化方式,正向量化运算可由如下公式[3]实现:


  
式中, Zij为量化后的系数;Wij为变换矩阵W=CXCT中的元素;MF=

·2q,PF称为缩放系数,根据元素在阵列块中的不同位置,其取值如表1所示,Qstep为量化步长,由0至51共52个量化参数QP决定,QP增加1, Qstep增加12.5%; q=15+QP/6,QP/6取整数;对于帧内宏块f取2q/3,帧间宏块f取2q/6。需要指出的是,MF的值可根据PF和QP的取值经简单计算得到,并可形成表格,通过查表方式便可实现硬件运算,并有效地提高了运算速度。






2 4×4整数变换量化核的优化设计
  为进一步提高硬件运算速度,减少硬件开销,设计中采用了如下优化方法:

(1)在求取变换阵W=CXCT时,根据变换的对称性,将X的列变换(矩阵左乘)与行变换(矩阵右乘)分开实现,把二维变换分割为两次一维变换,并采用快速堞形算法[4]来实现。一维变换的快速算法实现如图1所示,其中的列变换可用如下算式表示:


  
对于每列变换,需要进行8次加法和2次移位运算,而行变换则可根据矩阵转置的性质AbT=(bAT)T,将经过列变换后的结果矩阵先进行转置,再采用相同的变换形式运算。这样对4×4点数据做一次变换,只需通过8×8次加法和2×8次移位运算便可完成。

(2)针对不同运算的位宽需要,设计专用的加法器和乘法器。本文对整数变换中的加法器采用三级流水线加法器,实现9位加法,每级流水线完成三位超前进位加法,将逻辑延迟限制在三位加法器之内。图2给出了9位加法器的流水线实现框图。选用EPF10K10LC84-3作为适配器件,经过Synplify Pro 7.3综合,结果表明这种加法器具有较优的最高工作频率和硬件开销。如表2所示, 常规加法器的最高工作频率为37.0MHz,消耗资源却为28LC,而经过优化的三级流水线加法器在消耗资源增加不多的情况下,其最高工作频率相比常规加法器提高了257%,达到94.5MHz。





在量化过程中,对于给定的量化参数QP, MF只有三种取值,因此乘法实现可以采用无符号数乘法运算,乘法结构则采用16×14位加法树乘法器。这样,在提高运算速度的同时节约了芯片面积。

(3)对于f的计算,在不影响运算精度的情况下本文采用近似处理。为了避免除法运算,将f的计算式变形,即:
f=2q/3=(215/3)×2m≈[(215+1)/3]×2m≈10923×2m
式中, m取值为0~8,具体由相应的QP给出。由于f在完成加法运算后其结果还需左移q位,所以计算精度不会受影响。这样,对f的计算只需进行移位操作。

3 4×4整数变换量化核硬件实现

基于上述算法原理及其设计,本文首先对4×4整数变换量化模块进行C语言编程,验证了该模块所采用算法的正确性。然后采用Verilog HDL语言描述4×4整数变换和量化核(帧内模式)的硬件功能,并通过仿真软件Modelsim SE 5.7进行功能仿真,验证了该模块输出结果与设计要求相一致。最后采用Synplify Pro7.3综合工具,并以Altera公司的Stratix系列FPGA作为主要目标适配器件进行综合。
  4×4整数变换量化核的二大子模块的综合结果如表3所示,表中同时给出经本文优化设计前后的综合结果作为对比。可见,经本文采用的三种优化设计处理后,在硬件开销改变不大情况下,变换子模块的最高工作频率达到59.4MHz,是未优化前的1.73倍,而量化子模块的最高工作频率达到55.8MHz,是未优化前的1.82倍。4×4整数变换量化核的最高工作频率取各子模块的最低频率,这样其优化后的最高工作频率是55.8MHz,相比优化前的30.7MHz提高了82%。



本文对H.264/AVC协议中的4×4整数变换量化核从算法原理到硬件实现进行了分析和设计。采用自顶向下的Verilog HDL设计流程,实现了4×4整数变换量化核硬件功能的优化设计,模块的最高工作频率提高了82%,为H.264/AVC视频编码标准的硬件实现提供了参考。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 05:58 , 耗时 0.081751 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表