文档库 最新最全的文档下载
当前位置:文档库 › 多视点频编码快速搜索算法研究

多视点频编码快速搜索算法研究

华侨大学

硕士学位论文

多视点频编码快速搜索算法研究

姓名:汤秀丽

申请学位级别:硕士

专业:@

指导教师:戴声奎

20100101

论文摘要

多视点视频是近年来视频和多媒体领域的研究热点之一。研究提高编码压缩效率的同时,如何保证编码复杂度的降低,是多视点视频技术研究的关键。

本文对多视点视频编码平台JMVC4.0中的TZSearch快速搜索算法进行分析和改进的三种优化方法:

第一,根据实验统计结果设置了使TZSearch搜索提前终止的阈值,并得出了阈值的使用规律,即对于运动比较平缓和运动比较剧烈的序列采取不同的阈值。

第二,根据多视点视频编码中的帧间和视间的不同特性,提出了基于帧间和视间的TZSearch改进方法一。实验表明,本方法能在总体PSNR 下降均未超过0.02dB,码率增加不超过1.4%的基础上取得30%左右的编码时间减少量,但个别序列只有15%左右的减少量。

第三,在第四章统计好的TZSearch阈值分布规律的基础上,针对序列运动的剧烈和缓慢情况,将基于帧间和视间的改进TZSearch方法一分别与阈值设置方法结合。实验表明,本方法相比JMVC中的TZSearch算法能有50%左右的编码时间的降低,且失真代价很小。

实验表明,本研究内容具有一定的效果,但还有待进一步的改进和优化。

关键词:H.264/AVC、多视点视频、TZSearch、钻石搜索、光栅搜索

Abstract

Multi-view Video is the hotspot of video and multimedia area in recent years. How to ensure lower encoding complexity while researching how to improve encoding efficiency is the key of multi-view video technology research.

Through analyzing and improving, three optimization methods of TZSearch fast search algorithm in multi-view video coding platform JMVC4.0 are proposed as follows: Firstly, according to the experimental results, set some thresholds which can early stop TZSearch search, and obtain the rule of using the thresholds, that is, for relatively gentle movement sequences and relatively intense movement sequences use different threshold setting methods.

Secondly, according to the different characteristics between inter-frame and inter-view in Multi-View Video Coding, the first inproved TZSearch method based on inter-frame and inter-view is proposed. Experiments show that, this method can obtain about 30% reduction in encoding time while the decrease of the overall PSNR doesn’t exceed 0.02dB and the increase of bit-rate doesn’t exceed 1.4%, but some sequences only have about 15% reduction.

Thirdly, on the base of the threshold distribution of TZSearch in the fourth chapter, and according to the condition that the sequence movement is slow or intense, the first inproved TZSearch method based on inter-frame and inter-view is combined with the threshold setting method. Experiments show that, this method has about 50% reduction of encoding time compared to original TZSearch algorithm in JMVC4.0,what’s more, the distortion is very small.

Experiments show that, this research has some effect, but needs further improvement and optimization.

Keywords: H.264/A VC, Multi-view Video Coding, TZSearch, Diamond Search,

Raster Search

第一章绪论

1.1引言

近年来,随着宽带网络技术的不断发展和多媒体技术的不断进步,人们对于多媒体应用的期望也越来越高,人们希望不再是被动地接收和欣赏视听节目,而是能根据自己的喜好去编辑、操作和多角度欣赏视听对象。因此,网络化、真实感和交互性是新一代多媒体应用的重要特征和发展方向,而多视点视频(Multi-view Video)正是这样一种具有立体感和交互操作功能的视频[1-4]。多视点视频是现阶段表征3D视频信号的重要方式,它蕴涵了景物的深度信息,在自然场景的表征上更具真实感,因此在立体电视(3DTV)、自由视点电视(Free- viewpoint Television,FTV)、交互式HDTV、具有临场感的可视会议和远程医学诊疗、虚拟现实等领域,多视点视频具有广阔的应用前景。因而,多视点视频编码(Multi-view Video Coding, MVC)是新一代多媒体的核心技术之一,也是现阶段多媒体领域的研究热点之一。

在多视点视频的发展和实用化过程中,有两项关键技术制约了它的进一步应用。第一项是立体/3D显示。立体显示技术的原理是将立体图像对的左右图像分别呈现给人的左右眼。但由于早期立体显示技术的限制,人们需要佩戴特制眼镜或别的特殊装置,才能感知立体图像序列的立体感,这种不便很大程度上延缓了立体视频技术的推广和应用。后来随着电子显示器材的发展,产生了视差光栅或凸透镜阵列的自动立体显示器材,使用户不用使用任何辅助设备就可以观察到生动的立体显示效果,而且随着集成电路技术和电子元器件的发展,其成本也越来越低廉,现已进入商业使用阶段。

另一项影响多视点视频发展和应用的技术是多视点视频内容的存储与传输。随着视点数目的增加,多视点视频在提供场景3D深度信息的同时会带来视频数据的急剧增加,使得视频数据的存贮和传输变得十分困难。在过去的十几年中,国内外很多学者致力于该领域的研究,提出了不少综合利用视点内的时间、空间相关性和视点之间的空间交叉相关性来去除立体视频的冗余,提高编码效率的方案[5-6],然后将这些方案做相应的延伸,应用于多视点视频,并成为该领域内学者们的研究重点。

由于在多视点视频中存在时间/空间相关性和视间相关性,在提高压缩效率的同时,也带来了编码复杂度的增加,急需采取一些技术以在提高压缩效率和降低编码复杂度之间取得一定的折衷。因此,本文将多视点视频的编码作为主要方向,研究了多

视点视频编码中的运动估计和视差估计这两个关键技术,并分析和提出一些降低编码复杂度的快速运动估计的算法。

1.2多视点视频

多视点视频信号是由一组平行、会聚或任意角度的相机阵列拍摄得到的一组视频信号,它能提供拍摄场景不同角度的视频信息,利用其中的一个或多个视点信息可以合成任意视点的信息,达到自由视点显示和自由切换任意视点的目的[2-3]。

在多视点视频中,除前后时间上具有相关性(时间域相关性)外,由于多个视点相机拍摄的是同一场景,相互间还具有视点间的关联(视点相关性/空间域相关性)。视点间相关性是多视点视频序列的重要特性,它与相机阵列形式、相机间距、相机和拍摄对象间的距离存在极大的关系,直接反映在同一时刻相邻视点两幅图像的视差上。

多视点视频系统一般包括多视点视频采集、多视点视频编码、网络传输、解码和显示等部分,如图1.1所示[7]。多视点视频的数据量随着相机数目的增加而成倍的增加,要实现海量数据的有效压缩并与用户保持实时的交互操作及随机读取,必将给多视点视频系统的数据处理、存储和网络传输能力带来巨大的考验。因此,系统的核心模块是多视点视频的编码、储存/传输。多视点视频编码(MVC)技术主要致力于如何利用视点间相关性和视点内部的相关性(时间相关性和空间相关性)来提高多视点视频的压缩效率。国际视频标准化组织将现阶段的MVC定位于H.264/A VC的重要补充和扩展,因此,本论文的研究内容是基于H.264/A VC的MVC编码框架开展的。

图1.1 多视点视频系统框图

1.3 MVC的标准化进程

活动图像专家组(Moving Picture Expert Group,MPEG)早在2001年就充分认识到3D音频和3D视频(3D Audio and Video,3DA V)的重要性及其广阔的应用前景,于2001年12月第58次MPEG会议上成立了3DA V特别小组,对3DA V进行需求分析、定义典型应用场景(如全景视频、交互式立体视频、任意视点视频、3D音频)等研究。在2005年1月第71次MPEG会议上,3DA V特别小组正式开始接收MVC 的提案,标志着MVC标准化制定工作的正式开始。MVC的标准化工作主要有两个方面,一是在H.264/A VC的框架下定义一些扩展的语法语义,用于多个视点的联合编码;二是研究一些新的技术,用来提高多视点视频的编码效率。

截止到2006年1月的第75次MPEG会议,国际上知名的IT行业公司、研究机构和大学,例如微软、摩托罗拉、Thomson、HHI、NTT、KDDI、三菱、三星、LG、Sejong大学和清华大学等都参与到了MVC的标准制订工作中,积极提交技术提案。为了进一步深入分析各种技术对编码效率的贡献,本次会议还针对MVC建立了五个核心实验(Core Experiment,CE),分别为预测结构、亮度补偿、视图合成预测、视差矢量估计和非对称宏块划分。由于考虑到现有的MVC是对H.264/A VC的扩展,第75次MPEG会议还做出了一个重要决定,将MVC作为H.264/A VC的第四个增修案,其标准化限制在H.264/A VC的编码框架内。

由于H.264/A VC的标准化工作一直由联合视频小组(Joint Video Team,JVT)负责,因此,在2006年7月的第77次MPEG会议上,MVC的标准化工作正式移交给JVT,这标志着MVC的标准化工作进入实质性阶段。视频标准并不明确规定编码器如何实现,而是规定一个已编码视频比特流的语法语义和该比特流的解码方法。另外,第77次MPEG会议正式发布了MVC、SVC(Scalable Video Coding,可分级视频编码)的软件参考模型JMVM(Joint Multiview Video Model,JMVM)[8],并将该模型作为后续技术提案的公共测试平台来衡量各技术提案的编码增益。

在2006年10月的第78次MPEG会议上,JVT向MPEG组织提交了MVC联合草案(MVC Joint Draft)[9],MVC的标准化程序正式启动。之后MVC的标准化制订工作正在紧张的进行中,在每三个月召开一次的标准化会议上,国内外研究机构纷纷提交自己的提案,争取所提技术能成为MVC的一个基本组成部分。在JMVM经过数次版本升级后,2008年5月,JVT发布了新的MVC的公共测试平台JMVC(Joint

Multiview Video Coding)[10],该平台剔除了与MVC无关的算法和工具,专用于MVC,本论文中所做实验便是在该平台上进行的。2009年3月,JVT正式公布了H.264/A VC 的第四个增修案-----多视点视频编码方案。之后又发布了关于MVC的相关档次定义、附加补充增强信息(SEI)等,MVC的研究进程还在如火如荼的进行中。

1.4多视点视频编码方法

实现多视点视频编码(MVC)可以基于传统混合编码框架(如H.264),也可基于小波编码以及分布式编码等新一代视频编码工具。由于多视点视频系统存在着大量的数据冗余,如何组织和压缩数据就成为重要的研究课题。当前MVC主要围绕如何提高压缩效率、降低编码复杂度以及随机读取能力进行研究。现有的多视点视频编码方法可分为预测编码、子带编码、基于物体的三维编码和基于模型的编码四大类。

1.4.1 预测编码

多视点视频预测编码针对如何提高压缩效率、降低编码复杂度及随机读取能力又可从两个主要方面来分类:一是预测结构,二是预测工具。

一、预测结构

预测结构指的是多视点视频时空帧之间的相互预测参考关系,它代表将哪些帧一道进行处理以消除数据的时空冗余性,因而不管是传统的混合编码、小波,还是分布式编码,都离不开预测关系的设计。预测结构是决定随机读取性能、快速解码性能、网络传输代价的重要指标,因而在MVC研究中受到广泛关注。将MVC编码码流应用到传统流式传输框架下,会产生视点切换问题,因而如何设计新型的切换帧以及如何分析切换对预测结构的影响也具有重要的意义。

Simulcast预测结构(同步联播) [11]是对各视点视频进行独立编码,其中每个GOP 中各视点的第一帧使用帧内编码(I帧),其余帧参考时间轴上的前面帧作预测进行编码(P帧),如图1.2所示。该方案是普通单通道视频编码的简单扩展,没有考虑视点间的相关性,编码效率低,通常仅被作为评价其它多视点视频编码方案的性能对比参考。文献[3]提出了一种结合视差估计和运动估计的顺序视点预测方法,如图1.3(a)所示,有效地利用了相邻视点和前一时刻的相关信息降低编码冗余,但也带来了误差传递等问题。IDR帧的及时更新会减少误差传递带来的编码质量的降低,但同时会导致码率的增加。图 1.3(b)是对图 1.3(a)的改进[3],此结构中存在着5种帧类型:I(帧内编码),P′(空间域预测),P(时间域预测),B′(时、空双向预测,参考帧

为P、P′或B′共2帧),B(时、空双向预测,参考帧包括B帧),有效地减少相邻视点和时间域信息冗余,缓解遮挡和暴露问题,有较高的编码效率,但其随机访问性能不佳。

图1.2 Simulcast预测结构图1.3顺序视点预测结构

由日本名古屋大学提出的M-picture预测结构[12-13]包括6种帧类型,共支持21种帧模式:帧内(1种)、单向帧间预测(4种)、单向帧间预测兼残差编码(4种)、双向预测(6种)和双向预测兼残差编码(6种)。该结构通过RDO选择最佳的帧模式和多参考帧预测编码,对密集相机阵列多视点视频有较高的编码效率,但其计算复杂度大且不利于随机访问。图1.4给出了M帧预测结构示意图。为了提高多视点视频编码的随机接入性能,NTT公司提出了GoGOP预测结构[14],可分为BaseGOP和InterGOP。BaseGOP互不参考,而InterGOP可以参考BaseGOP组和其他InterGOP 组,如图1.5所示。该结构使用多个帧内预测(I帧),提高了随机访问的性能,却导致编码压缩效率降低,且所采用的InterGOP多参考帧策略,增加了计算复杂度。

图1.4 M-picture预测结构图1.5 GoGOP预测结构图1.6所示的是棋盘式分解预测结构(Checkerboard Decomposition)[3,15],即空间/时间轮流预测结构。在这个结构里,偶数相机的偶数帧标记为“低通帧”,而其他帧标记为“高通帧”。低通帧由基于适当的提升机构如时间平均或时间低通滤波生

成,而高通帧则需要补充操作生成。高通帧由相邻低通帧的视差补偿和运动补偿预测并编码。尽管已经采取一些方法来降低此结构的复杂度,但还是相当复杂的。

图1.6(a)棋盘式分解(b)高通帧预测

近年来,为提高编码效率,一些研究者提出了基于最新视频编码标准H.264的分级B帧(HBP)预测结构[16,17,18],如图1.7所示,采用的是8视点,GOP长度为8的多视点视频序列。此结构综合考虑了时间和视点间的冗余,采用分等级多参考方式提高了编码效率,但也增加了计算复杂度。此外,采用帧内模式编码基本视点(S0)的关键帧保证了视点的同步和随机接入。本文也是采用HBP的预测结构。

图1.7 HBP预测结构

二、预测工具

预测工具指的是多路码流视点之间的空间预测手段,包括亮度补偿,运动/视差补偿,2D直接预测模式,视点插值。由于视点间的相关性利用是决定MVC压缩效率的主要因素,因而未来MVC压缩效率的进一步提高依赖于新型预测工具的设计。

在多视点视频中,由于摄像机所处的方位和接收到的光强不同以及不完美的摄像

机校正都会导致亮度差异,使实际拍摄的多视点视频中对应点的颜色值存在差异,从而严重影响多视点视频的压缩性能。文献[19]提出了一种将颜色差异补偿模块作为中间过程包含于多视点视频编码系统中。文中的颜色差异补偿(包括亮度差异补偿和色差分量差异补偿)都是针对视差预测方向的参考图像进行的颜色差异补偿。其中包括全局线性和非线性的颜色差异补偿,有效地提高了编码压缩效率。文献[20]提出了一种基于宏块的自适应局部亮度变化补偿的方法,并使用去均值绝对误差和(MRSAD)和SAD来衡量位移矢量估计(DVE),有效地改善了多视点视频中由于亮度变化导致的性能降低,提高了压缩效率,但在一定程度上增加了编码时间。

多视点视频信号中,除各自视频流内有很强的时间和空间相关性外,视频流之间也具有高度的交叉相关性。因此,使用运动预测、补偿技术消除视频序列时间方向的冗余,同时利用视差预测、补偿技术进一步去除各个视点之间的冗余。根据这个原理,近年来许多研究者提出了多种编码方法。根据视差和运动估计方法不同,这些方法可以归纳为基于“块”的编码方法和基于“对象”的编码方法两大类[19]。此外,JMVM 曾提出了自适应亮度变化的运动补偿方法和HBP预测结构,JMVM使用了H.264/AVC 基于块的编码技术去除时间方向的连续帧和相邻视点间的时间和空间相关性[18,21]。

文献[21]在H.264/AVC基础上提出了使用双向预测的编码结构,对于剧烈运动的场景的编码效率有很大的提高。由于各视点间存在亮度等差异,此文献使用柱状匹配[22,23]作为一个预处理步骤,对某些序列(如Ballet和Baiiroom)能有效改善视差补偿预测和提高压缩效率。文献[24]提出了一种基于场景深度特征的多视点视频深度区域分割与区域视差估计算法,其优点在于不需要计算图像的视差场,直接提取图像中各区域的深度特征,通过最小化图像块匹配误差完成分割过程,与其它区域分割算法相比能够显著降低运算量。文献[25]提出了多视点视频编码的快速视差和运动估计方法,有效降低了由多视点视频庞大的数据量导致的计算复杂度。随着更多学者对该领域的关注,大量卓有成效的算法和方案相继产生,但如何有效地结合运动预测和视差预测,并提出一些快速算法,仍是亟待解决的问题之一。

1.4.2 子带编码

对于有效压缩,预测编码和子带编码有不同的限制。预测编码是按时序进行的,而子带编码并不强调时序,它从属于子带分解,提供了更灵活的多视点视频描述[26]。

不管在预测编码还是子带编码中,运动补偿和视差补偿都被用来消除多视点视频中的统计冗余。图1.8所示的是一个典型的自适应运动和视差子带编码框图。

图1.8 自适应运动和视差子带编码

为多视点视频子带编码选择一个自适应变换需考虑一些限制因素。如在前向变换时有非量化的子带系数,则解码端的反自适应变换应能够正确地重构输入视频图像。此外,还要求有好的时空多分辨率特性。文献[27]和[28]中提到的运动和视差补偿提升小波正好能解决以上这两个限制问题。其中运动补偿提升小波有2种基本类型,一种是基本自适应小波即运动补偿Haar小波,另一种是提高自适应小波即运动补偿5/3提升小波[26]。

文献[29]描述的视差补偿小波和文献[30]中提到的多种多视点小波视频编码(如视差补偿视点滤波器DCVF和运动补偿时间滤波器MCVF),都说明了子带编码能提供更加灵活的多视点视频描述。但是,运动和视差补偿提升小波通常会在预测和更新阶段出现补偿误匹配现象,特别是对多联通的运动和视差场。因此,保持与任意的运动和视差补偿正交的时空子带分解仍是一个有挑战性的研究方向。

1.4.3 基于物体的三维编码

在基于物体的三维编码中,每个物体的结构、运动和表面纹理(彩色)被编码,而不是编码每个图像,在解码端,基于结构、运动和纹理信息合成所期望的视图。图1.9为该方法的一般结构图[31],比二维联合运动估计(MCP)/视差估计(DCP)更具有潜力。该方法对于结构简单的场景有非常高的压缩效率,也易于合成任意的虚拟视图。

图1.9 基于物体的三维编码

1.4.4 基于模型的编码

根据多视点视频的特性,场景的三维信息可以通过计算机视觉中的算法得到[32]。当场景中仅有少数物体且物体的结构符合一些已知结构时,我们可为每个潜在的物体构建通用的模型,与基于物体的三维编码相比,一旦通用模型与成像的物体相适应,则只有运动信息必须被估计和编码。但该方法的主要难点是获取场景的三维模型[33]。

1.5论文的主要研究内容和章节安排

作为H.264/AVC编码标准的第四个增修案---多视点视频编码MVC,是当前视频领域的研究热点。由于多视点视频中不仅存在时间/空间相关性还存在视点间的相关性,充分利用这些相关性消除冗余以提高MVC编码效率,但也带来编码复杂度的增加。因此在提高MVC编码效率和降低编码复杂度之间取得一定折衷,是研究MVC的一个主要方向。目前在JMVC参考代码中,视差估计和运动估计是共用的,采用与运动估计相似的基于块的方法,选择相邻视点对应时刻的帧为参考帧。在H.264/AVC中,由于允许多参考帧和可变块尺寸编码,运动和视差估计搜索时就要对每一种分块模式和每一个参考帧遍历搜索,计算量非常大。因此,本文将利用H.264/AVC的运动估计和多参考图像预测技术,利用本视点和邻近视点中已编码图像作为当前编码图像的参考图像,分析和改进优化了一些快速搜索算法。

本文共五章,其具体章节安排如下:

第一章:绪论。首先简单介绍了多视点视频编码MVC的研究背景及其发展应用前景,接着介绍了多视点视频的相关原理以及MVC的标准化进程,最后介绍了四类多视点视频编码方法,以及本论文的主要研究内容和章节安排。

第二章:H.264视频编码标准。本章主要介绍了H.264视频编码标准,分析了其编解码器的主要结构,然后介绍了就本文研究MVC所需要的H.264的相关内容及关键技术。

第三章:立体视觉原理及JMVC模型介绍。本章首先介绍了立体视觉原理;然后介绍了本文实验所采用的JMVC参考软件模型,着重介绍了它的编码流程图、宏块类型分析及几个重要的配置参数、MVC的性能评价指标;最后阐述了基于JMVC的双目立体视频编码方案。

第四章:JMVC中的TZSearch算法分析与优化。本章首先实验对比分析了JMVC 中的全搜索算法和TZSearch快速算法,描述了TZSearch的原理及搜索过程并对其进行分析,然后根据实验统计结果设置了使搜索提前终止的阈值,并总结了阈值设置的一般规律。

第五章:基于帧间和视间的TZSearch改进方法。本章根据多视点视频编码中的帧间和视间的不同特性及JMVC中原有的TZSearch算法里几种不同搜索算法的特性,依次提出了基于帧间和视间的TZSearch改进方法一和改进方法二。实验结果表明,方法二相比方法一能有30%左右的编码时间的降低,方法二相比JMVC4.0中最原始的TZSearch算法能有50%左右的编码时间的降低,且失真代价都很小。但这两种方法都只适用于平行相机配置的视频序列,还有待进一步的改进和优化。

第六章:总结与展望。总结全文,并展望了今后的研究方向。

第二章 H.264/AVC视频编码标准

2.1 H.264/AVC标准概述

H.264/A VC标准是由ISO/IEC(国际标准化组织/国际电工委员会)的MPEG(活动图像专家组)和ITU-T(国际电信联盟)的VCEG(视频编码专家组)联合开发的最新视频压缩编码标准,也被称为ITU-T H.264建议和MPEG-4的第10部分的标准,简称为H.264/A VC或H.264。它有着比以前开发的MPEG和H.263标准更优越的性能,因此于2003年3月被ITU-T所通过并在国际上正式颁布。

H.264的颁布是视频压缩编码学科发展中的一件大事,它不仅有优异的压缩性能,而且具有良好的网络亲和性,也将在数字电视广播、视频实时通信、网络视频流媒体传递以及多媒体短信等各个方面发挥重要作用。测试表明,相对于MPEG-4、H.263和MPEG-2,在获得相同视频质量的前提下,H.264的平均编码比特比MPEG-4 ASP 要少41%,比H.263 HLP要少52%,比MPEG-2要少67%。在无线带宽资源和传输能力有限的条件下,以提高压缩编码效率为主要研究目标的无线视频和多媒体应用中,H.264以其卓越的性能,具有广阔的应用前景。H.264可应用于视频通信领域,如实时视频会议系统、HDTV、网络广播、视频流媒体服务、移动多媒体以及远程视频监控等等,其编码技术先进实用,网络适应性强,将成为最具影响力的视频编码标准之一。

具体来说,H.264支持三个不同档次的应用:(1)基本档次:主要用于“视频会话”,如会议电视、可视电话、远程医疗、远程教学等;(2)扩展档次:主要用于网络的视频流,如视频点播;(3)主要档次:主要用于消费电子应用,如数字电视广播、数字视频存储等。关于H.264的详细内容可以参考文献[34]。

2.2 H.264编码器和解码器

2.2.1 H.264编码器

H.264并没有明确规定一个编码器或解码器如何实现,而是规定了一个编了码的视频比特流的句法和该比特流的解码方法,因此其在具体实现上有着很大的灵活性。

如图2.1所示,H.264编码器采用的是变换和预测的混合编码法。在图2.1中,输入的帧或场Fn以宏块为单位被编码器处理。首先,按帧内或帧间预测编码方法进行

处理。如果采用帧间预测编码,其预测值P是由当前片中已编码的参考图像经运动补偿(MC)后得出,其中参考图像用F′n-1表示。在实际编码时,参考图像可在参考图像列表list中进行选择。预测值P与当前块值相减后,得到一个残差块Dn,经块变换、量化后产生一组变换系数X,再经熵编码后,与预测模式、量化参数、运动矢量等信息一起组成一个比特流,经NAL(网络自适应层)供传输和存储用。

图2.1 H.264编码器

为了提供进一步预测用的参考图像,编码器也具有重建图像的功能。在图中体现在得到变换系数X后,再经反量化和反变换后得到Dn′,将它与预测值P相加,得到uFn′(未经滤波的帧)。为了去除编解码环路中产生的噪声,提高参考帧的图像质量,从而提高压缩图像性能,设置了一个环路滤波器,滤波后的输出Fn′即为可用作参考图像的重建图像。

2.2.2 H.264解码器

由图2.2可见,解码就是编码的逆过程。编码后得到的H.264比特流,进入解码器后,先进行熵编码和重排序,得到变换系数X,该系数与编码器中所得到的是一致的。然后再对它进行反量化和反变换,得到残差Dn′。同时解码器利用比特流中的头信息,产生一个预测块P,它与编码器中所得到的是一致的。然后将P与Dn′相加,得到uFn′,再经滤波后,就得到了所需的重建帧Fn′,即为最后的解码输出图像。

图2.2 H.264解码器

2.3 H.264中的关键技术

H.264采用传统的基于块的运动补偿和变换编码,还有一些先进的编码技术极大地提高了压缩效率,例如:1/4像素精度运动补偿预测、可变块大小运动补偿预测、多参考帧运动补偿预测、精细的帧内预测、自适应环路滤波等。本节简要介绍本文研究MVC所需要的H.264的相关关键技术。

2.3.1 H.264的图像划分

在电视中,为减少大面积闪烁现象,把一帧分成两个隔行的场,视频的一场或一帧可用来产生一个编码图像。同一帧内各邻近行之间的空间相关性比同一场内各邻近行之间的空间相关性要强,而同一场内各邻近行之间的时间相关性比同一帧内各邻近行之间的时间相关性要强,因为同一帧内当前行的下一行要等到一场扫描完后才出现在当前行之下,时间相关性弱。因此,对于活动量较小或静止的图像宜采用帧编码方式,而对于活动量较大的运动图像宜采用场编码方式。一幅视频图像(帧)可划分成一个或多个片(slice),根据预测关系片可以分为以下五类:

I片:片内的所有宏块(Macroblock,MB)都采用帧内预测进行编码;

P片:除I片的编码方式外,P片中的一些宏块可以使用前向帧间预测进行编码,但不能使用后向帧间预测;

B片:除P片可使用的编码方式外,B片中的一些宏块可以使用前向帧间预测和后向帧间预测;

SP片和SI片:是H.264/A VC中相对于先前标准添加的两种新的片的编码方式,这两种片可用于码流切换,实现快进快退,并具有抗误码能力。

当前编码图像的各个片相互独立,不存在预测关系,因此可以有效地限制误码扩散。每个片中包含若干个MB,一个MB由一个16×16亮度分量(Y分量)及其相应的两个色度分量(Cb、Cr分量)组成。其中,I片只包含I宏块,P片可包含I和P 宏块,而B片可包含B和I宏块。I宏块利用从当前片中已解码的像素作为参考进行帧内预测(不能取其它片中的已解码像素作为参考进行帧内预测),P宏块利用前面已编码图像作为参考图像进行帧内预测,B宏块则利用双向的参考图像进行预测。

在H.264/A VC的帧间预测编码过程中,可根据不同的图像内容将MB进一步划分为分区:1个16×16,2个16×8,2个8×16或4个8×8这四种方式,也相应的有4种运动补偿。对于8×8的子宏块分区与MB的分区类似,其可分为1个8×8,2个8×4,

2个4×8或4个4×4这四种方式。这些分区和子宏块大大提高了各宏块之间的关联性。在H.264/A VC中还给出块(block)的定义,块是指一个M×N的采样点集合,M和N 可任选16、8和4中的任一值,也就是说块可以指MB,也可以指分区。

图 2.3宏块及子宏块分区

2.3.2 帧内预测

在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。帧内预测的预测模式根据亮度块与色度块不同而有所不同:亮度块又分为16×16宏块和4×4子块,16×16亮度块有4种预测模式,适用于平坦区域图像编码,而4×4亮度子块则有9种可选预测模式,独立预测每一个4×4亮度子块,适用于含有大量细节的图像编码;色度块则只有4种预测模式,类似于16×16亮度块。残差最小的那种预测模式将被编码器选为最终的预测模式。

1. 16×16亮度预测模式

宏块的16×16亮度成分可以进行整体预测,有4种预测模式,如图2.4所示,其描述见表2.1。

图2.4 16×16的四种预测模式

表2.1 16×16四种预测模式描述

模式描述

模式0(垂直)由上边像素推出相应像素值

模式1(水平)由左边像素推出相应像素值

模式2(DC)由上边和左边像素平均值推出相应像素值

模式3(平面)利用线形“plane”函数及左、上像素推出相应像素值,适用于亮度变化平缓区域

对于每个4×4块,除了边缘特别处理外,每个像素都可使用先前已编码的像素的不同加权和进行预测,如图2.5所示,可利用上方和左方的已编码并重构的像素A~Q 为预测参考像素,a~p为待预测像素,并通过9种预测模式进行预测,如图2.6所示。图2.6中的箭头表明每种模式的预测方向,表2.2给出了对这9种模式的描述。

图2.5 (a)利用像素A-Q对方块中a-p像素进行帧内4×4预测

(b) 帧内4×4预测的8个预测方向

图2.6 4×4亮度块的九种预测模式

表2.2 4×4九种预测模式描述

模式描述

模式0(垂直)由A、B、C、D垂直推出相应像素值

模式1(水平)由I、J、K、L水平推出相应像素值

模式2(DC)由A~D及I~L平均值推出所有像素值

模式3(下左对角线)由450方向像素内插得出相应像素值

模式4(下右对角线)由450方向像素内插得出相应像素值

模式5(右垂直)由26.60方向像素值内插得出相应像素值

模式6(下水平)由26.60方向像素值内插得出相应像素值

模式7(左垂直)由26.60方向像素值内插得出相应像素值

模式8(上水平)由26.60方向像素值内插得出相应像素值

每个帧内编码宏块的8×8色度成分由左上方已编码色度像素预测而得到,两种色度成分常用同一种预测模式。色度块的4种预测模式类似于帧内16×16的亮度块中的预测模式,只是模式编号不同,变为DC(模式0)、水平(模式1)、垂直(模式2)、平面(模式3)。

2.3.3 帧间预测

帧间预测是去除视频序列各幅图像之间的时间冗余的有效方式,它是从已编码的前几帧得出一个预测模型,这个模型是由参考帧的像素位移得到的,即运动补偿预测。

H.264帧间预测是基于块的运动补偿的预测模式。与以往标准的帧间预测的区别在于块尺寸范围更广(从16×16到4×4)、亚像素运动矢量(MV)的使用(亮度采用1/4像素精度的MV)及多参考帧的运用等。

对于每个分割子宏块或子块,都有一个独立的运动补偿,其对应的MV必须被编码、传输,同样,分割的选择也需编码到压缩比特流中。对大的分割尺寸而言,MV 选择和分割类型只需少量的比特,但运动补偿残差在多细节区域能量将非常高。小尺寸分割运动补偿残差能量低,但需要较多的比特表征MV和分割选择。因此,大的分割尺寸适合平坦区域,小的分割尺寸适合多细节区域。宏块的色度成分(Cb和Cr)则为相应亮度的一半(水平和垂直各一半)。色度块采用和亮度块同样的分割模式,只是尺寸对应的减半。色度块的MV也是通过相应亮度MV水平和垂直分量减半得到。灵活的宏块分割方式使得在帧间预测时能根据内容灵活地分割MB,从而得到较小的预测差信号,提高H.264/A VC的编码效率。

2.3.4 运动矢量MV

帧间编码宏块的每个分割或者子宏块都是从参考图像某一相同尺寸区域预测得到,该预测表示为当前编码块与其参考图像中的最佳匹配块之间的相对位移,即运动矢量MV。亮度成分的预测为1/4像素精度,色度成分的预测为1/8像素精度。亚像素位置的亮度和色度像素并不存在于参考图像中,需利用邻近的像素点进行内插得到。如果MV的垂直和水平分量为整数,参考块对应像素实际存在,如果其中一个或两个为分数,预测像素通过参考帧中相应像素内插得到。

内插像素生成方法如图2.7所示。首先生成参考图像亮度成分半像素,半像素点(如b,h,m)通过对相应整像素点进行6抽头滤波得到,权重为(1/32,-5/32,5/8,

5/8,-5/32,1/32)。b计算如下:

=?++?+(2.1)

((520205)/32)

b round E F G H I J

图 2.7 亮度半像素位置内插

类似的,h可由A、C、G、M、R、T滤波得出。一旦邻近(垂直或水平方向)整像素点的所有像素都计算出,剩余的半像素点便可以通过对6个垂直或水平方向的半像素点滤波得到。例如,j由cc、dd、h、m、ee、ff滤波得到。

半像素点计算出来以后,1/4像素点就可以通过线性内插得到,如图2.8所示。1/4像素点(如a、c、i、k、d、f、n、q)由邻近像素内插得到,如

=+(2.2)

(()/2)

a round G b

剩余1/4像素点(p,r)由一对对角半像素点线性内插得到。如e由b和h得到。

图 2.8 亮度1/4像素内插

色度像素需要1/8精度的MV,也同样通过整像素线性内插得到。

2.3.5 MV预测

每个子宏块都有相应的运动信息需要传送到解码端。如果对每个块的MV都进行

相关文档