参考帧设置

2024-10-11

参考帧设置(精选4篇)

参考帧设置 篇1

摘要:HEVC作为新一代的视频编码标准,在传统的混合视频编码框架下,采用了更精细的变换单元、运动融合技术等先进技术,使得HEVC的压缩性能得到很大的提高,尤其针对高分辨率的视频压缩,将达到更加出色的效果。然而,HEVC的压缩性能越强,计算复杂度也就越高,为了降低压缩编码时间,本文探讨了参考帧设置以及块划分的解决方案,通过对HEVC的参考帧集对图像缓存中的已经解码的图像进行管理方法以及对四叉树的块划分策略进行深入分析,结果表明通过参考帧设置以及块划分能够有效的解决HEVC的编码时间,提高了压缩效率。

关键词:HEVC,视频编码,参考帧设置,压缩

0 引言

随着社会科技的飞速发展,信息技术以及多媒体技术也趋于成熟,多媒体信息在网络中的传输已经成为现代人们的主要互通、交流的方式,压缩技术成为了研究的热点。目前,视频媒体的发展迅速,视频数据非常庞大,尤其是涉及到高清视频,使用当前的压缩技术仍然不能得到很好的压缩效果,视频在网络中的传输以及存储将面临着很大的挑战。因此,在视频分辨率不断提高,3D视频技术不断成熟的今天,急需一种新型的视频压缩技术来解决视频传输以及存储的问题。

本文主要针对新一代压缩技术——HEVC视频压缩技术进行研究,HEVC应用了多种先进技术,有着比传统压缩技术更强的压缩性能,但是算法复杂度也随之升高,并且相应的软间与硬件的设计难度也变得更高。本文主要针对HEVC压缩算法进行优化,从HEVC视频编码技术中的参考帧技术以及块划分算法两个方面进行探索,降低算法的复杂度,提高视频压缩效果。

1 参考帧设置与块划分快速算法分析

在H.264/AVC视频压缩编码中,编码器传输参考帧会发生相应的变化,然而在HEVC视频编码技术中,传输的参考帧拥有绝对地址。当解码端由于某种情况丢失一个NAL单元或者某幅图像,拥有绝对地址的HEVC将不会引起参考帧的错误,因此HEVC有着很好的鲁棒性。HEVC中显示编码的参考帧能够在图像中所有的Slice头部进行传递,从而能够有效的抵抗数据单元丢失引起的错误。关于参考帧设置,HEVC使用参考帧集对图像缓存中的已经解码的图像进行管理。其中,图像缓存中应用图像序列号标识身份,标识方式分为三种类型 :第一类为短期参考帧,第二种类型为长期参考帧,第三种类型为不适用的参考帧。其中,图像缓存中的图像假如被标记为第三类,则从图像缓存中删除。

针对HEVC的块划分快速算法,具体的过程如下 :假如一幅图像被一系列空间连续的编码树单元进行划分,编码树单元有三部分组成,一部分是亮度编码树块,另外两部分是两个色度编码树块。在亮度编码树块中,取值范围通常为16、32以及64。一般来说,被压缩的视频的分辨率越高,亮度编码树块的取值范围就越大,因此HEVC的亮度编码树块的值通常选取为64。在实际的HEVC编码中,编码树块的大小将作为一个重要的参数传入编码器中,在编码器的输出流中,编码树块的大小被记录在NAL(序列参考集)中。HEVC视频编码将编码树块继续细粒度的划分为编码单元,运用四叉树的递归划分技术。例如,在编码树块为64x64时,将其进行深度为4的块划分,则细粒度划分后的编码单元有如下类型,32x32,16x16以及8x8三种类型。下面将描述四层深度中编码单元的配置个数,在深度为第二层中,有四个32x32的编码单元,在深度为第三层中,有十六个32x32的编码单元,深度为第四层中,有64个8x8的编码单元。编码单元的计算方法为1+4+16+64=85,即一共85个编码单元。依据全搜索的思路进行编码单元的遍历,需要遍历全部的编码单元。即通过子层的四个编码单元与父层的编码单元进行综合判断,从而选择最佳的划分模式,这样能够使整个编码树单元得到最佳的划分策略。在编码树单元的划分策略中,每个编码单元做的工作是将一个编码单元遍历帧内预测的所有模式以及帧内所有的预测单元划分。这种针对HEVC的块划分快速算法能够有效的降低编码时间,同时将码率得到有效的提升。

在设计具体的HEVC视频压缩编码器时,设计人员可以设定编码树块的大小,而且可以设定块划分的深度,以满足不同应用场景的需求。

2 结束语

本文对HEVC的参考帧设置与块划分快速算法的关键技术进行深入探索。首先进行了多参考帧技术的研究,对HEVC编码中的参考帧设置进行深入探讨,设计了优化的参考帧设置方案。其次,文章对HEVC的块划分技术进行深入的分析,研究了编码树模块的划分过程。通过本文的研究,有效的减少了HEVC编码时间,并且加强了高清视频的压缩效果。

参考帧设置 篇2

主要课程:计算机文化基础、计算机网络基础、面向对象程序设计、Java网络编程、数据库原理及应用、Web应用开发(JSP)、软件工程与项目管理、网页设计与制作、应用服务器配置(Linux)、Oracle数据库管理系统、网站设计实训、移动应用开发技术、实用开发技术等。

计算机网络技术专业

主要课程:计算机文化基础、C语言程序设计、Java程序设计、数据结构、数据库原理及应用、计算机网络技术、网页设计与制作、网络设备配置与管理、网络系统集成与规划、综合布线、Web应用开发、网站设计、应用服务器配置(Linux)、Oracle数据库管理系统、PHP开发技术、计算机网络安全技术、微机组装与维护等。

主干课程:数据库原理及应用、数据库设计与开发、网络基础、网络规划设计及组网技术、网络操作系统、网络架构的设计与实现、活动目录、网络安全设计与典型应用、网络设备的调试与维护、程序设计基础、web程序设计、网站系统的设计与开发等。

嵌入式技术与应用

主要课程:计算机文化基础、计算机电路、C语言程序设计、C++程序设计与开发、嵌入式数据库开发与应用、Linux基础与Shell编程、嵌入式GUI编程、嵌入式微处理器结构与应用、ARM系统应用开发技术、嵌入式系统硬件设计与实现、嵌入式WinCE开发、嵌入式系统测试与调试等。专业技术能力课程——主干课程为:LINUX操作系统、嵌入式LINUX C程序设计、C++程序设计、嵌入式LINUX应用编程、ARM处理器编程、嵌入式LINUX系统开发、嵌入式LINUX内核开发、嵌入式LINUX驱动开发、3G手机Android操作系统、Android应用编程、Android系统开发、嵌入式软件产品开发实战等

主干课程:C++程序设计、微机原理及接口技术、嵌入式基础、DSP嵌入式系统开发、嵌入式技术、移动通信等软件项目测试技术、数据库原理与应用、ARM操作系统开发与应用、单片机原理及应用等。

软件技术(游戏设计方向)

主要课程:计算机文化基础、素描、色彩、C语言程序设计、Java程序设计、数据结构、数据库原理及应用、软件工程、计算机网络技术、游戏概论、Flash动画制作、3Ds Max动画制作、网络游戏设计、Flash游戏开发、手机游戏开发等。

专业技术能力课程——主干课程为:C程序设计、C++程序设计、游戏设计概论、3D数学与游戏图形开发、数据结构、计算机图形学、Direct 3D游戏编程、lua脚本编程、数据库应用、软件开发工具与环境、游戏软件实践等

【主要课程】游戏架构设计与策划、游戏运营管理、数据库原理(SQL 语言)、数据结构(C++ 版)、C++ 编程基础、游戏客户端设计基础、Photoshop 应用、3D 游戏开发与引擎分析实践、网络游戏服务器设计、统一建模语言UML等。

计算机多媒体技术

主要课程:

大学英语、计算机文化基础、平面构成与色彩、多媒体设备、平面设计(Photoshop)、广告设计实训(CorelDraw)、视听语言、二维动画设计(Flash)、三维动画设计(Maya)、计算机辅助设计(AutoCAD)、室内外效果图制作(3DS Max)、建筑动画制作(3DS Max)、影视后期制作(Adobe Premiere/AE)、网页设计与制作、多媒体综合项目实训、市场营销等。计算机应用技术专业

大学英语、计算机文化基础、计算机电路、微机原理与接口技术、计算机网络技术、数据库原理及应用、C#程序设计、C#项目实训、计算机组装与维修、ASP.NET网页设计、WEB数据库技术、JAVA程序设计、JAVA项目实训、网络管理与维护、多媒体技术、Flash动画设计、计算机辅助设计(AutoCAD)、市场营销等。

软件技术专业软件设计方向

专业技术能力课程——主干课程为:网页技术、JAVA程序设计、C#程序设计、JAVASCRIPT程序设计、JAVA应用编程、C#应用编程、ASP.NET程序设计、数据库基础、数据库应用、数据库设计、基于JSP/Servlet/Javabean的应用软件开发、基于Struts/Spring/ Hibernate/Ajax的应用软件开发、应用软件项目实战等

软件技术专业软件测试方向

专业技术能力课程——主干课程为:网页技术、JAVA程序设计、C#程序设计、JAVASCRIPT程序设计、JAVA应用编程、C#应用编程、软件测试技术、软件测试工具、数据库基础、数据库应用、基于JSP/Servlet/Javabean的应用软件开发、基于Struts/Spring/ Hibernate/Ajax的应用软件开发、应用软件项目实战等

【主要课程】 JAVA2 编程技术基础、网络与 Web 技术导论、DB2 通用数据库基础、软件工程、软件质量与测试、统一建模语言 UML、Rational 测试工具性能测试、Rational 测试工具功能测试、Rational 测试工具测试管理、Rational 团队管理工具等。

五、图形图像制作(三年)

【培养目标】本专业培养掌握计算机图形图像的基本理论知识,熟悉图形图像制作环境,熟练运用图形、图像制作工具独立完成图形图像制作任务;具有较强的图形、图像处理与数码制作能力的高级技术应用型人才。

参考帧设置 篇3

目前,主流的视频编码标准均采用了多参考帧、多模式帧内预测、自适应大小的运动补偿、上下文自适应的熵编码等编码技术,在大大提高了编码效率的同时也增加了数据之间的依赖性,以及对错误的敏感性。当这些数据在物理信道(如无线信道等)上进行传输时,由于信道本身的不稳定性不可避免地造成数据错误或者丢包,而编码数据的依赖性和敏感性又导致错误扩散甚至影响到了整个视频序列,严重降低了视频质量。为了保证一定的视频质量,提高视频编码码流的抗错误能力,错误隐藏技术成为视频通信中研究的热点。

目前为解决视频通信中传输错误引起的视频质量降低而提出的错误隐藏算法主要有2大类:空域错误隐藏算法和时域错误隐藏算法[1]。空域错误隐藏利用图像的空间平滑特性,通过对其周围块的分析来恢复丢失块。而时域错误隐藏则是首先需要恢复丢失的运动矢量,通常利用参考帧中的宏块或者丢失宏块周围被正确接收到的宏块来重构丢失宏块的信息,然后再根据恢复的运动矢量在参考帧中进行运动补偿来恢复丢失宏块。在前后连续的帧间编码帧运动平缓时,采用时域隐藏法能获得较好的效果。经典的时域错误隐藏算法有基于像素域最大平滑恢复的块匹配算法(BMA)[2], 其基本思路就是从受损块周围选取可用的运动矢量,以这些运动矢量和运动矢量的中值、平均值等作为候选运动矢量集,再经过边界匹配法则的判定,从候选集合中选择最为匹配的运动矢量指向的参考宏块来替代受损的宏块。有文献[3]中Zheng等人利用运动矢量的运动趋势建立拉格朗日内插公式,再通过该公式恢复错误块的运动矢量的算法。另外还有文献[4]提出的多帧恢复的时域错误隐藏算法,其基本思想是在最邻近参考帧中选择性地利用BMA算法运动矢量候选集中的运动矢量,在此参考帧中搜寻匹配块并以此匹配块位置为中心在其余不同参考帧中设定不同的候选集或者搜索范围,以寻找最优匹配块。这些算法简单易实现,并且大大降低了搜寻匹配块的算法复杂度,但并没有考虑到视频在信道传输过程中错误的时域传播效应,即由于错误的时域传播效应,当前1帧失真较大,前1帧或者前几帧中对应位置宏块的运动矢量、可用邻边宏块的运动矢量和零运动矢量不可用或者误差较大时,无法按上述方法恢复出丢失块的运动矢量或者恢复出的运动矢量误差较大,因此上述的时域隐藏算法并不能较好地恢复受损宏块,达到差错隐藏的目的。

为克服以上方法的不足,本文主要讨论无法较好地恢复丢失运动矢量情况下的差错隐藏,提出了根据视频序列运动的剧烈程度在多参考帧中自适应扩大搜索范围的差错隐藏算法,实验结果表明该算法可以更好地解决上述问题。

1 多参考帧时域视频差错隐藏算法原理

本文算法借鉴了视频标准中的多参考帧帧间编码原理,即可在多个参考帧中寻找与当前帧中编码宏块最匹配宏块的帧间编码技术。在差错隐藏时,不但在丢失帧的前一参考帧中寻找匹配块而且在其他多个参考帧中寻找,这样差错隐藏后的视频序列平滑度较好,隐藏效果较佳。在图像序列中被遮挡物体重新被露出时和前1个或2个参考帧失真较大的情况下,在多个参考帧中寻找匹配块来进行差错隐藏的算法更有优势。

在多参考帧错误隐藏过程中,为了搜索匹配块将所有参考帧进行遍历并且全搜索的方法虽然能取得较好的错误隐藏性能,但是运算量巨大。为了减少运算量,通常采用限定搜索范围的方式,那么选择合理的搜索范围就显得尤为重要。本文综合考虑视频序列运动的剧烈程度和图像块的运动特点进行搜索范围的选择。

1.1 块在视频序列中的运动特点

在整个视频序列中,一般连续的视频图像帧之间具有很强的相关性,只有在运动物体出现、消失或视频场景切换时才有很大的变化,所以在前后帧运动平缓时,总可以在参考帧中以受损宏块对应的宏块为中心的一定区域内搜索到最佳匹配宏块[5]。所以对整个视频序列来讲,距当前帧越远的参考帧,在其中找到最佳匹配块距离参考帧中受损块对应位置的距离可能越远。图1中给出了此原理示意图。将上述理论运用到差错隐藏技术中,也就是在参考帧中寻找匹配块的过程中距离当前帧越远的参考帧需要搜索的范围就应当越大。

1.2 视频序列剧烈程度计算方法

在进行时域差错隐藏时,解码器首先统计这一帧中正确接收到的宏块运动信息,计算出每个宏块的平均运动矢量大小ΜV¯,用此变量来表征整个帧运动的强弱程度。计算公式为

ΜV¯=i=0Ν-1(|ΜVx(i)|+|ΜVy(i)|)Ν(1)

式中:N为正确接收到运动信息的宏块数目;MVx(i),MVy(i)分别为各个正确接收到的宏块运动矢量的xy分量。

如果ΜV¯大于预设的门限值T,则说明当前帧的运动剧烈;否则,说明当前帧的运动较为缓慢。

1.3 不同参考帧中搜索范围大小设定

本算法利用ΜVx¯,ΜVy¯来设定在不同参考帧中的搜索范围。对于Ref(0)以当前帧受损块对应块为中心,以{ -α[max(ΜVx¯,ΜVy¯)],+α[max(ΜVx¯,ΜVy¯)] }像素范围进行全搜索。ΜVx¯,ΜVy¯的定义为

ΜVx¯=i=0Ν-1(|ΜVx(i)|)Ν(2)

ΜVy¯=i=0Ν-1(|ΜVy(i)|)Ν(3)

对于Ref(N),N>0的参考帧为对其搜索范围进行动态自适应调整,在这里定义了α,β两个系数实现了在不同参考帧中调整自适应搜索范围,其值需要在实验中自适应选择。通过对搜索范围的分析,可以发现α,β的自适应调整可以在尽量缩小搜索范围的情况下保证错误隐藏的质量。那么,在Ref(N),N>0的参考帧中的搜索范围,即以当前帧受损块对应块为中心,以{-max[ΜVx¯(Ν),ΜVy¯(Ν)],+max[ΜVx¯(Ν),ΜVy¯(Ν)]}像素范围进行全搜索。其中ΜVx¯(Ν),ΜVy¯(Ν)的定义为

ΜVx¯(Ν)=αΜVx¯+(Ν-1)×β,Ν>0(4)

ΜVy¯(Ν)=αΜVy¯+(Ν-1)×β,Ν>0(5)

1.4 算法流程

本文提出的算法可以总结为首先将当前帧中正确接收的宏块信息进行统计,按式(1)~(3)计算出ΜV¯,ΜVx¯,ΜVy¯。然后在Ref(0)帧中以受损块为中心,在{ -α[ max(ΜVx¯,ΜVy¯)],+α[max(ΜVx¯,ΜVy¯)] }像素范围内进行全搜索并根据文献[6]中Chen改进的边界匹配法则求出Ref(0)中最匹配块。最后在Ref(N),N>1帧中以受损块为中心,在{-max[ΜVx¯(Ν),ΜVy¯(Ν)],+ max[ΜVx¯(Ν),ΜVy¯(Ν)]}范围内进行全搜索并根据Chen的边界匹配法则求出Ref(N),N>1帧中最匹配块。当N≥2时,为降低算法复杂度,采用快速运动估计六边形搜索(HEXBS)[7]算法在不同参考帧寻找匹配块。其流程图如图2所示。

2 实验及数据分析

本文选择的是H.264 JM86[8]平台进行测试。实验选取了3组不同分辨力的视频序列,每组中分别有1个较平稳序列和1个剧烈序列。第1组是QCIF(176×144)格式序列foreman和bus;第2组是CIF(352×288)格式序列akiyo和football;第3组是D1(720×576)格式序列flower和basketball。其中foreman,akiyo,flower序列在其相应组中较另外1个序列运动较为平缓,而bus,football,basketball序列则相对较剧烈。每个序列编码50 f,帧率30 f/s(帧/秒),序列以“IPPP…”的编码方式进行编码,即只有第1帧为I帧采用帧内编码模式,其余的都采用P帧的编码模式,输出文件格式为RTP。测试时在一帧中随机丢掉一些宏块来模拟信道中的丢包现象,此处用块丢失率(Block Loss Rate,BLR)来表示,分别测试了2个视频序列在BLR为1%,10%两种情况下的数据。同时在参考帧帧数的选择中本文在宏块丢失率较低的情况下采用3个参考帧(如实验中的1%宏块丢失率的情况),宏块丢失率较高的情况下采用5个参考帧(如实验中的10%宏块丢失率的情况)。步骤1中的ΜV¯,ΜVx¯,ΜVy¯的数值在实验中向上取整。表1是本文算法与参考文献[4]中提出的多帧恢复时域错误隐藏算法[4]在不同序列不同宏块丢失率下的测试结果的对比。

从表1可见,与多帧恢复的时域错误隐藏算法相比,本文算法不管是BLR为1%还是10%,PSNR都有了小幅度的提高。

图3、图4分别显示了bus序列在BLR为1%和10%时的不同效果图对比,可看出,本文算法明显比多帧恢复的时域错误隐藏算法有更好的恢复质量。再观察图4b和图4c,在BLR较大的情况下,使用本文算法更有优势,即在大面积块丢失的情况下,多帧恢复的时域错误隐藏算法恢复出的运动矢量误差较大,本文算法更有优势。

3 小结

本文提出的自适应扩大搜索范围的多参考帧错误隐藏算法,即在多参考帧中寻找匹配块的过程中充分考虑到了视频序列的剧烈程度和图像块的运动特点。实验结果表明,采用这种策略进行错误隐藏,同多帧恢复的时域错误隐藏算法相比,本文提出的错误隐藏算法无论是在PSNR值上还是主观视觉效果上都有所提高,尤其是无法较好恢复丢失运动矢量情况下,本文算法更有优势。

参考文献

[1]任培明,史萍,侯铭睿.MPEG-2中的错误隐藏技术[J].电视技术,2011,35(1):18-21.

[2]WANG Y K,HANNUKSEL M M,VARSA V,et al.The error concealment feature in the H.26l.test model[C]//Proc.International Conference on Image Processing.[S.l.]:IEEE Press,2002:729-732.

[3]ZHENG J H,CHAU L P.A motion vector recovery algorithm for digital video using lagrange interpolation[J].IEEE Trans.Broadcasting,2003,49(4):382-389.

[4]唐文佳.视频通信中的差错隐藏及基于DSP的视频优化技术的研究[D].武汉:华中科技大学,2004.

[5]陈海强,翟玉兰,覃团发.一种基于快速搜索的视频时域差错隐藏算法[J].电讯技术,2008(7):5-9.

[6]ZHU C,LIN X,CHAU L P.Hexagon-based search patten for fast block motion estimation[J].Circuits and Systems for Video Technology,2002,12(5):349-355.

[7]CHEN Y,OSCAR A,ZHOU J T,et al.Adaptively switching between direc-tional interpolation and region matching for spatial error concealment based on DCT coefficients[C]//Proc.2006IEEE International Conference on Multimedia and Expo.Toronto,Ont:IEEE Press,2006:805-808.

参考帧设置 篇4

H. 264 / AVC是由ISO / IEC与ITU-T联合制定的新一代国际视频编码标准,具有较高的图像质量、较强的抗误码性和良好的网络亲和性,非常适合于 有丢包和 抖动的无 线信道[1]。H. 264目前已广泛地应用在视频通信、移动通信、数字广播和流媒体等领域。

H. 264的多参考帧运动估计技术是其编码器中最耗时的模块,且编码复杂度与参考帧数量呈现线性增长关系[2],这给移动终端硬件设备的处理能力、内存空间和电池容量等带来了巨大挑战。因此,研究相应的快速算法加快编码器的计算速度势在必行。

1 H. 264 多参考帧选择算法分析

1. 1 现有算法分析

为降低多参考帧运动估计补偿的计算量,提高编码实时性,国内外学者提出了许多快速算法。常用的多参考帧快速选择算法总体上可以分成以下两类:

第一类是参考帧预测法,即根据一定的策略,跳过可能性较小的参考帧,以此提高多参考帧运动估计的速度。例如利用视频序列的时域相关性,文献[3]根据前2帧中Skip模式的占比来确定参考帧数目; 文献[4]根据前5帧中最优参考帧的选用情况来确定当前编码块的参考帧数目。文献[5]用Sobel算子进行边缘梯度检测,并结合运动矢量最大值和差值的分布情况,确定候选参考帧集合。在文献[6]中,对于宏块级编码,根据已编码帧中Skip模式和16×16模式的占比来确定参考帧数目; 对亚宏块级编码,则跟据运动矢量的相关性来确定的参考帧数目。文献[7]根据先前参考帧的运动矢量信息,判断是否使用各个参考帧。在这类算法中,如果块之间的相关性不强,会导致最优参考帧的误判,且这个错误有可能被不断传播,影响编码R-D( Rate-Distortion) 性能。

第二类是预测运动矢量法,即根据一定的策略,通过时空相邻块的运动矢量预测各个参考帧的初始运动矢量,减少花费在每个参考帧上的搜索时间。例如文献[8]分析了多参考帧效率和视频对象运动幅度之间的关系,对快速运动块和平缓运动块分别采用不同的搜索策略,并建立了基于哈达玛变换系数的提前终止条件。文献[9]根据多参考帧下运动矢量的中心偏置特性,预测各个参考帧的初始运动矢量,并结合快速运动估计算法降低计算量。文献[10]首先对运动矢量进行中值滤波,然后使用处理后的运动矢量扩展出一个新的参考帧,最后将新的参考帧插入到参考帧列表中进行运动估计,提升了编码质量。文献[11]根据不同参考帧之间的预测运动矢量,选择空间上最接近的候选参考帧。在这类算法中,对遮挡显露等情况,运动矢量的预测精度较难把握,影响编码R-D性能。

1. 2 多参考帧选择依据

在H. 264中,每一个帧间预测编码宏块最多可支持16个参考帧、10种预测编码模式( Skip模式、16×16、16×8、8×16、8×8、8×4、4×8、4×4、intra16×16、intra4×4) 。为找出基于率失真代价( Rate Distortion Optimization,RDO) 的最优参考帧,JM校验模型在运动估计过程中采用遍历所有参考帧的方法,并选择代价最小的参考帧作为最优参考帧。H. 264中参考帧选择的率失真代价函数定义如下

式中: J( mv,ref)表示率失真代价; SAD表示当前块与参考块的绝对差; S表示当前编码宏块的像素值; C( mv,ref)表示参考块的像素值; ref为当前参考帧序号; mv表示该参考帧的运动矢量;Rmv和Rref分别表示运动矢量和参考帧序号的编码比特数; λ为拉格朗日参数,其值与量化系数有关。这种遍历计算所有候选参考帧的J( mv,ref),进而得到率失真意义上的最优参考帧的方法,给编码器带来了巨大的计算量。

1. 3 最优参考帧分布情况分析

表1是各标准测试序列在16×16模式和亚宏块级模式下的最优参考帧采用情况统计表,本文数据是在H. 264的JM86测试平台上进行100帧编码统计的结果,表1选用5个参考帧,量化参数QP = 28。图1是多参考帧的运动估计补偿示意图,其中ref0 ~ n是指最优参考帧的序号,ref0最近,refn最远。表1的数据说明绝大多数编码块仅仅需要最临近的1个参考帧就可以获得最好的编码效果,其余的参考帧均被浪费了,没有起到提升编码R-D性能的作用。

1. 4 时空相邻区域的相关性分析

本文对最优参考帧的相关性情况进行了100帧的编码统计,如表2所示。表2中,“时域”指当前块与前一帧对应位置块最优参考帧的相关性统计,“空域”指当前块与同帧中相邻块的相关性统计,其位置关系可以参考图2的位置关系说明。图2中M指当前编码块,E指前一帧中与M对应位置的块,A指M的左边相邻块,B、C、D分别指M的左上边、上边和右上边相邻块。

%

从表2的统计数据可以看出,时空相邻块的最优参考帧具有很强的相关性。而且,亚宏块级模式编码时,块之间的空域相关性要明显高于时域相关性; 16×16模式编码时,前后帧之间的时域相关性要高于帧内空域相关性。这是因为上下左右相邻的小尺寸块很有可能属于同一对象,它们选用同一参考帧的概率更大; 而大尺寸编码块往往属于背景区或纹理平滑区,前后帧之间的相关性更高,选其前一时刻已编码帧作为最优参考帧的可能性更大。利用这个特性,可以根据已编码块的最优参考帧选用情况,对当前块的最优参考帧进行预测与筛选,从而提高编码速度。

1. 5 各编码模式的采用率分析

本文对帧间编码模式的采用情况也进行了100帧的编码统计,如表3所示。根据统计结果,Skip模式的使用概率最高( 使用ref0作为参考帧) ,宏块级( 16×16,16×8,8×16) 编码模式的采用率要远高于亚宏块级模式( 8×8,8×4,4×8,4×4) ,而采用帧内编码模式的概率极低。由于本文算法主要针对移动终端小尺寸图像的应用场合,摒弃帧间编码中的帧内模式以提高编码速度,对编码质量不会产生大的影响。此外,在进行参考帧的比较选择时,由于亚宏块级编码模式的采用率较低,可以适当控制计算量的分配; 而宏块级编码模式的采用率较高,应保留更多的计算量,从而在编码质量与速度之间达到一个较好的平衡。

%

2 自适应的多参考帧快速选择算法

2. 1 候选模式选择策略

根据表2最优参考帧的时空相关性统计结果,在进行宏块级模式编码时,前后帧之间的时域相关性都要高于帧内相邻块间的空域相关性。因此,本文通过统计前一帧中对应位置块的参考帧选用情况来确定当前编码块的候选参考帧集合。在进行亚宏块级模式编码时,帧内相邻块之间的空域相关性明显强于帧间的时域相关性。因此,本文候选参考帧集合的构成如下

式中: Ref1表示宏块级编码时确定的初步候选参考帧集合1; Ref2表示亚宏块级编码时,各8×8子块初步确定的候选参考帧集合2。由于H. 264中的参考帧以8×8为单位进行分配和保存,因此宏块级的16×16模式最多可以有4个初步候选参考帧。而对于亚宏块级模式,同一个8×8子块的各个更小分割块( 如8×4、4×8、4×4模式) 只能指向同一个参考帧。

2. 2 参考帧扩展选择策略

多参考帧技术所获得的编码增益并非简单依赖于参考帧数目的多少,而是取决于视频内容的本质特征。在一些特殊情况下,例如在对象发生遮挡和显露时,对象周期性运动时,或发生场景切换时,远端参考帧被选为最优参考帧的概率更大。因此,本文定义一个参考帧范围的扩展条件

参考帧扩展条件

式中: 表示候选参考帧集合的最小代价值; Jx( x∈A,B,C,D,E) 表示时空相邻块的最优参考帧代价; 两个参数用于进行计算量的分配控制。根据1. 4节的统计分析和编码实践,本文设置α = 0. 75,β = 1. 2。如果当前块满足扩展条件,则认为当前参考帧的补偿结果并不理想,需要通过对更多参考帧进行搜索,以求得更为准确的运动补偿,防止这些块编码质量的降低和可能导致的错误传播。若不满足扩展条件,则根据式( 2) ,直接从候选参考帧集合中确定最优参考帧。

2. 3 本文快速参考帧选择算法流程

本文算法专门针对多参考帧选择模块进行研究,算法通用性强。本文算法具体编码过程描述如下( 见图3) :

1) 当进行宏块级编码时,依据时域相关性确定当前编码块的候选参考帧集合1,见式( 2) 。进行集合1的运动估计补偿,求得初步最优参考帧和最小代价。

2) 宏块级参考帧扩展条件判断。如果不满足式( 3 ) ,则说明不需要扩展搜索,直接进入到亚宏块级的编码。如果需要扩展搜索,则将候选参考帧范围扩展至余下的全部参考帧,并根据最小代价确定编码块的最优参考帧。

3) 当进行亚宏块级各8×8子块的编码时,依据空域相关性确定当前编码块的候选参考帧集合2,见式( 2) 。进行集合2的运动估计补偿,求得各8×8子块的初步最优参考帧和最小代价。

4) 亚宏块级参 考帧扩展 条件判断。 如果不满 足式( 3) ,则说明不需要扩展搜索,当前子块的最优参考帧选择结束。如果需要扩展,则按参考帧序号逐个扩展搜索; 一旦发现,则结束扩展搜索,选取对应的参考帧为各子块的最优参考帧。

3 实验结果及数据分析

为了测试 分析算法 的综合性 能,本文从编 码时间( Time) 、峰值信噪比( PSNR) 、码率( Rate) 等几个方面进行测试比较。实验参考软件为H. 264的JM86基本档( baseline) ,编码器主要参数设置为: 帧率30 f/s( 帧/秒) ,帧结构为IPPP,采用JM默认的运动估计算法,QCIF序列的搜索范围为±16,CIF序列为±32,5个参考帧,采用RDO优化,CAVLC编码。实验平台为: CPU为奔4双核3 GHz,2 Gbyte内存,WindowsXP操作系统。

为了对算法性能进行客观比较,本文对不同画幅和运动类型的多个标准测试序列进行了测试,每个序列编码前100帧,编码结果如表4所示,其中QP = 28。各项编码性能指标的变化幅度定义如下

式中: PSNRproposed和PSNRJM分别指本文快速算法和JM86标准算法的编码峰值信噪比; ΔTime指编码时间的变化幅度,-Δ表示快速算法降低了编码时间; ΔRate指码率的变化情况,+ Δ表示快速算法的码率有增加。

从表4可以看出,与采用所有参考帧遍历搜索的JM标准相比,本文提出的多参考帧快速选择算法可以大幅降低计算量,平均可降低49. 12% 的编码时间。与此同时,码率平均仅增加0. 28% ,图像质量的损失平均为0. 02 d B,这样的损失对编码R-D性能的影响是微不足道的,对画面视觉质量的影响基本可以忽略。

表5和表6是本文快速算法与其他几种快速算法的性能对比。其中,文献[3]根据空间相关性确定参考帧数目; 文献[4]利用时空相关性确定当前宏块的编码模式及参考帧数目; 文献[5]根据边缘梯度检测以及运动矢量差值情况来确定候选参考帧; 文献[9]根据运动矢量中心偏置特性,结合快速运动估计算法来减少每个参考帧的计算量。

根据表5和表6的数据对比,本文快速算法的图像质量PSNR和码率都要明显优于其他算法,即本文算法的R-D性能明显优于其他快速算法。在计算量方面,本文算法大幅领先于文献[9]和文献[5]的算法,但是不及文献[4]和文献[3]。这主要是因为文献[4]的算法中加入了编码模式的预判; 而文献[3]的算法中加入了Skip模式的快速确定。但本文算法是纯粹的多参考帧快速选择算法,能与其他类型的快速算法( 例如快速模式选择、快速运动估计等) 结合,这将能获得更好的编码速度。

4 小结

根据移动视频业务的要求,针对多参考帧预测技术计算复杂度高的缺点,本文提出了一种基于内容自适应的多参考帧快速选择算法,具有实现简单且通用性强的特点。实验结果表明,相对于常见的多参考帧快速选择算法,本文算法具有更好的R-D性能,大幅降低了计算复杂度,且对于各种类型的视频具有较强的自适应性。下一步工作将研究多参考帧运动估计和编码模式快速选择算法的有效结合,进一步提高H. 264的编码实时性。

摘要:针对移动视频业务的市场需求和移动终端设备的性能局限,提出了一种基于时空内容自适应的低复杂度多参考帧快速选择算法。在对视频序列编码模式采用率和参考帧时空相关性统计分析的基础上,根据时空相邻块最优参考帧的分布情况等信息,排除可能性较小的参考帧,缩小当前编码块的候选参考帧范围。并设定自适应的参考帧选择代价阈值,以判断是否需要扩大搜索范围。实验结果表明,该算法能大幅降低H.264的编码计算量,平均可降低49.12%的编码时间,而且基本保持编码率失真性能不损失。

上一篇:启动品牌化营销新战略下一篇:科学管理中的统计应用