- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
H.264中图像去方块的编码算法研究
梁德坚1 廖燕玲2
摘要:为了解决视频编解码后图像出现方块的效应,论文通过研究与对比现有的去块算法,提出适于H.264标准的改进图像去方块去块算法。详细阐述算法的改进思想和实现过程,给出了改进后新的处理顺序,对边界去块强度计算公式进行推导。最后对改进算法进行性能测试,结果表明算法运行时间减法短,存储空间减少,性能大大提高。
关键词: 视频编解码;去方块;H.264;算法;硬件实现
1前言
在视频编码标准中,编解码器反变换量化后图像会出现方块效应。产生这一现象的原因主要有两个。其一是基于块的帧内和帧间预测残差的变换。其变换系数的量化过程相对粗糙,因而反量化过程恢复的变换系数带有误差,会造成在图像块边界上的视觉不连续。其二是来自于运动补偿。运动补偿块可能是从不是同一帧的不同位置上的内插样点数据中复制而来的。因为运动补偿块的匹配不可能是绝对准确的,所以就会在复制块的边界上产生数据的不连续。当然,参考帧中存在的边界不连续也会被复制到需要补偿的图像块内。尽管从H.264采用了比较小的变换尺寸(4×4)可以降低这种不连续的现象,但是仍然需要一个去方块的模块,以最大程度的提高编码性能。
在视频编解码器中加入去方块模块的方法有两种后置去块和环路去块两种做法。后置去块之处理编码环路外的显示缓冲中的数据,它不是标准化规定的内容。而环路去块处理编码环路当中的数据。在编码器中,被去块的图像帧作为后续编码帧运动补偿的参考帧。在解码器中,去块后的图像输出显示。这要求所有的与本标准一致的解码器采用同一个去块模块与编码器同步。在和标准当中,环内去块都放在重建图像完成之后,显示图像之前进行,在编码端,环内去块的图像还用来作为帧间预测的参考图像,这样使得帧间预测残差更小。
2 H.264中图像去块算法设计
2.1研究现状分析
H.264当中,去块的基本单元是宏块,通常的宏块去块顺序如图一所示。
图一 宏块内环路去块顺序
去块亮度部分的4条垂直边界。以a~d的顺序依次处理;
去块亮度部分的4条水平边界。以e~h的顺序依次处理;
去块色度部分的2条垂直边界。以i,j 的顺序依次处理;
去块色度部分的2条水平边界。以k,l的顺序依次处理;
整个去块处理过程中,以边界强度Broad_S的获取较为关键,去块方式的选择取决于边界强度和去块边界像素的变化率。边界强度参数Broad_S可以按下表所列的方式进行获取:
(1)去块边界两边图像块至少有一个是帧内预测并且去块边界为宏块边界,设置Broad_S=4代表最强去块;
(2)去块边界两边图像块至少有一个是帧内预测,但是去块边界不是宏块块边边界,设置Broad_S=3;
(3)边界两边图像块至少有一个对残差编码,设置Broad_S=2;
(4)边界两边图像块参考图像不同,或者参考图像数目不同,或者参考图图像相同,但是运动矢量之差不小于一个像素点的距离,设置Broad_S=2;
(5)其他情况,设置Broad_S=0代表完全不进行去块处理;
目前比较典型的算法都采用上述的处理方式。这些方案所提出的去块算法结构都需要频繁对内存或硬盘进行读写操作,然而频繁对存储空间进行读写操作会消耗掉很多的时钟周期。因此在进行算法改进时,这是一个很好的值得注意的地方。
2.2改进算法的思路和策略
按照上述的处理顺序,可以看到,亮度宏块左上角的4*4的块,一共需要进行两次垂直边界去块和两次水平边界去块,在每一次去块结束之后都需要把去块中间结果存入存储器中,等待下一次去块操作。这样的去块过程需要多次的读写的操作,不仅减慢了去块速度,并且在硬件实现时,也会消耗更多的资源。因此在对环内去块算法进行性能上的优化时,可以考虑在不影响去块结果的前提下,调整去块顺序,尽量减少读写存储器的操作次数。
图 二:调整后的图像去块顺序
在图二中,去块的顺序被重新安排,按照这种去块顺序,还是以亮度宏块左上角的块为例,两次垂直边界的去块被安排在了一起,所以可以把第一次去块的结果存放在寄存器阵列当中马上进行第二次去块,几乎把操作的次数降为原来的一半。这样就不仅提高了性能,而且减少了对处理资源的占用。
图像去块处理时,如果是以8×8的块为单元处理。一般的去块顺序是按照先横向后纵向,先亮度后色度的顺序对宏块中单位块边界分别处理。按照先垂直边界去块,然后按照水平边界去块,这种去块顺序需要存储垂直边界去块之后的中间结果,如果按照宏块流水来计算,至少需要存储一个亮度宏块的信息。
同样,这种去块顺序并不利于快速实现,它需要把垂直边界的去块结果存储到存储器中等待水平去块。这就需要在垂直边界去块和水平边界去块中间进行的写入和读取操作。同样会影响系统的性能。
为了提高去块算法的运行速度,也需要对去块顺序进行调整,调整的原理是首先将块划分为4×4的小块,
文档评论(0)