DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

H.264/AVC中量化的Verilog方法介绍及实现

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-25 20:40:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
H.264/AVC中量化的Verilog方法介绍及实现
0 引 言
  H.264作为新一代的视频压缩标准,是由ITU-T的视频编码专家组和ISO/IEC的MPEG(运动图像编码专家组)成立的联合视频小组共同开发的。它优异的压缩性能也将在数字电视广播、视频实时通信、网络视频流媒体传递以及多媒体通信等各个方面发挥重要的作用。
  在核心技术上,H.264/AVC采用各种有效的技术,如统一的VLC符号编码、1/4像素精度的运动估计、多模式运动估计、基于4×4块的整数变换、分层编码语法等。由于采用了整数变换,计算不会出现浮点数,而且精度高等。这些措施使得H.264算法具有很高的编码效率。在量化方面,量化步长采用52个,下面将主要分析量化。在此,提出量化的Verilog实现,将变换后的数据作为输入,以量化后的码流作为输出,达到量化的目的。
  1量化的功能介绍
  取样后的脉冲信号在时间上是离散的,但在幅值和空间上仍是连续的,即其可能取的值有无限多个,这就需要对它采用四舍五入的方法,将其可能的幅值数由无限多个变为有限个值。这种将信号幅值由连续量变成离散量的过程称为量化。
  在不降低视觉效果的前提下,量化过程可减少图像编码长度,减少视觉恢复中不必要的信息。H.264采用标量量化技术,将每个图像样点编码映射成较小的数值。一般标量量化器的原理为:



  式中:y为输入样本点编码;QP为量化步长;FQ为y的量化值;round()取整函数(其输出与输入实数最近的整数)。
  2量化的算法介绍
  在H.264中,量化步长Qstep共有52个值。如表1所示。其中,QP是量化参数,是量化步长的序号。当QP取最小值0时,代表最精细的量化;当QP取最大值51时,代表最粗糙的量化。QP每增加6,Qstep增加1倍。应用时可以在这个较宽的量化步长范围根据实际需要灵活选择。对于色度编码,一般使用与亮度编码同样的量化步长。为了避免在较高量化步长时出现颜色量化人工效应,现在的H.264草案把色度的QP最大值大约限制在亮度QP最大值的80%范围内。最后的H.264草案规定,亮度QP的最大值是51;色度QP的最大值是39。



  在H.264中,量化过程是对DCT的结果进行操作:



  式中:Yij是矩阵Y中的转换系数;Zij是输出的量化系数;Qstep是量化步长。
  H.264量化过程还要同时完成DCT变换中“Ef”乘法运算,它可以表述为:



  式中:Wij是矩阵W中的转换系数;PF是矩阵EF中的元素。根据样本点在图像中的位置(i,j)取值如表2所示。



  利用量化步长随量化参数每增加6而增加1倍的性质,可以进一步简化计算,即:



  式中:floor()为取整函数(其输出不大于输入实数的最大整数)。式(3)可以写为:



  这样,MF可以取整数。表3给出对应QP值为0~5的MF值。对于QP值大于5的情况,只是qbits值随QP值每增加6而增加1,而对应的MF值不变。这样,量化过程为整数运算,可以避免使用除法,确保用16位算法来处理数据,在没有PSNR性能恶化的情况下,实现最小的运算复杂度如表3所示。



具体量化过程的运算为:



  式中:“》”为右移运算,右移1次完成整数除以2;sign()为符号函数;f为偏移量。f的作用是改善恢复图像的视觉效果,如对帧内预测图像块f取2qbits/3;对帧间预测图像块厂取2qbits/6。
  3具体实现
  在该文中,用Verilog语言实现H.264的量化;运用Modelsim进行仿真;用QuartusⅡ进行综合。
  根据Verilog编程,Modelsim仿真如图1所示。



  输入的矩阵是[140,-1,-6,7,-19,-39,7,-92,22,17,8,31,-27,-32,-59,-21],最后量化的结果为[17,0,-1,0,-1,-2,0,-5,3,1,1,2,-2,-1,-5,-1]。由此可知,这与Iain E.G.Richardson给出的结果相符合。所用的开发板是红色飓风第三代开发板,FPGA芯片是Altra EP2C35F484C8。从综合后的报告可以看出,消耗的资源不到1%,如图2所示。综合后的RTL图如图3所示。



  4结 语
  介绍了H.264的量化算法,并用Modelsim进行了仿真,结果与理论完全一致。分析了在FPGA开发板上的资源的消耗。由此可知,完全可以用FPGA实现H.264的量化。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-5 14:39 , 耗时 0.088496 秒, 18 个查询请求 , Gzip 开启.

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

桂公网安备 45031202000115号

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

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

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

QQ:28000622;Email:libyoufer@sina.com

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

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