视频转码技术的研究及其应用

视频转码技术的研究及其应用

ID:34395352

大小:3.62 MB

页数:122页

时间:2019-03-05

上传者:U-22107
视频转码技术的研究及其应用_第1页
视频转码技术的研究及其应用_第2页
视频转码技术的研究及其应用_第3页
视频转码技术的研究及其应用_第4页
视频转码技术的研究及其应用_第5页
资源描述:

《视频转码技术的研究及其应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

摘要随着各种数字视频服务的蓬勃发展,以MPEG和H.26x为代表的视频压缩编码标准得到了广泛的应用。在实际的视频服务过程中,由于网络特性的不同,终端设备处理能力的限制,以及用户需求的差异,往往需要对已经压缩编码的视频码流进行转换以满足实际的应用需求。这种对已经压缩编码的视频码流进行转换就是所谓的视频转码,它已经成为视频压缩编码研究领域的一个重要组成部分。本文的研究以MPEG视频编码技术为基础,从转码器结构以及实际应用需求两方面入手,对面向MPEG码流的视频转码技术进行了深入系统的研究。这些研究包括漂移误差自适应的视频转码器结构、系统级别的视频转码结构、用于视频码流剪接算法中的视频转码技术,以及色度缩减的视频转码技术。具体说来,本文的研究内容如下:1.提出了漂移误差自适应的快速视频转码结构,该结构能够比传统的开环结构和闭环结构更为高效的实现码率缩减的视频转码。这是因为漂移误差自适应的快速视频转码结构在转码速度和转码后的图像质量两者问有了更好的折衷,它的转码速度甚至超过了传统的开环结构,而转码后的图像质量却接近传统的闭环结构.更进一步的,结合开环结构,闭环结构以及新的漂移误差自适应的快速视频转码结构,我们能够实现一个复杂度可分级的视频转码器,它使得视频转码器可以根据CPU资源的分配情况进行自适应地转码,从而可以使实际的视频服务器更加有效地分配各种服务的负荷,更好地进行多种服务。2.提出了面向MPEG码流的系统级别转码技术。将广播的数字电视节目更为有效的存储为DVD光盘格式方便以后的回放。在这个系统级别视频转码方案中,最核心的内容是将固定码率(CBR)的视频码流转码成为可变码率(vBR)的视频码流,为此,我们提出了两种不同的方法。第一种方法适合脱机离线工作,需要的处理复杂度较高,但是视觉质量更好;而第二种方法适合在线实时工作,可以完成实时的转码需要,视觉质量也好于CBR视频码流到CBR视频码流的转换。3.研究了视频码流剪接算法中的视频转码技术。视频码流的剪接是最基本最重要的视频后处理技术,其中的难点在于MPEG视频码流的拼接以及相应的视频帧的重编.基于视频转码技术,我们提出了两种直接在压缩域上进行视 中国科学院计算技术研究所博士论文频剪接的算法:开环剪接算法和闭环剪接算法。其中压缩域上的开环剪接算法虽然图像质量不如闭环剪接算法,但是它的速度较快,比较适合广播节目中广告插入这样的实时应用;而压缩域上的闭环结构因为图像质量较好,比较适合非线性编辑这样的对实时性要求不太高的应用。4.提出了色度缩减的视频转码结构,目的是将YUV422格式的视频码流转码成YUV420格式的视频码流。首先,我们假定ⅥⅣ422格式的视频码流是采用传统的MPEG视频编码方法压缩生成,应用压缩域(DCT域)上的下采样算法以及传统的开环结构、闭环结构,我们提出了相应的视频转码方法。其次,我们提出了一个色度可分级的YUV422格式的视频编码方法,采用该编码方法生成的YUV422格式的视频码流,可以几乎没有代价的转码生成传统的YUV420格式的视频码流。这样当广播传送YUV422格式的节目时,原来拥有YUV420格式终端的用户无需更新设备还能看到YUV420格式的节目,而发送端也不必为此同时传送YUV420格式的相同节目,这就很好的解决了向下兼容的问题。关键词:MPEG;视频转码;漂移误差;码率控制;视频剪接;色度可分级 AbstractWiththedevelopementofvideocodingtechnologies.moreandmoredigitalvideocontentsexistinthecodedform(e.晷MPEG,H.26xorothers)forsavingstorageandfacilitatingcontentexchange.TranscodingcodedvideocontentsfromoneformattOanother,fromonebitratetoanotherandfromoneresolutiontoanotheriSindispensableinmanymultimediaapplications,suchasdigitalvideobroadcasting,videoondemand(VOD),teleconferencingandlongdistancelearning,andSOon.TllisdissertationmainlyinvestigatesvideotranscodingtechniquesforMPEGbitstreams.TheissuesforourresearchincludehowtofasttranscodeMPEGvideobitstreamfromhighbitratetolowbitrate.howtotranscodeⅣ【PEGtransportstreamtoMPEGprogramstream.andhowtolxanscodeYLrV422videobitsreamto1州420videebitstream.Moreover,videotranscodingtechniqueforMPEGvideobitstreamcutting&pastingiSalsoaddressed.Detailresearchcontentsaregivenasfollows.LProposesafastvideotranscodingarchitecturewithlimiteddriftingerror.ItiSusedforbit-ratereductionvideotranscoding.Withthisvideetranscodingarchitecture,thepicturequalityobtainedfromtheproposedtranscoderisclosetothatofthetraditionalclosed-loopone,whilethetranscodingspeediSevenfasterthanthetransditionalopen-loopone.Furthermore,theproposedtranscoderprovidesthedesiredflexibilitybetweenpicturequalityandtranscodingcomplexityinCPU-awarenessapplications.2.ProposesnsystemlevelMPEGtranscodingschemeforconvertingMPEGtransportstreamors)toMPEGprogramstream(Ps).Thekeypointforthissystemleveltranscodingschemeistranscodingconstant-bit-rate(CBR)videobitstreamtovariable-bit-rateⅣBR)videobitstream.Twodifferentsolutionsareaddressed.OneiSdesignedforO衄inetranseoding.whichhasbettervisualqualitybuthi曲implemetioncost.Theotherisdesignedforreal—timetranscoding.whichalsohasbettervisualqualitiycomparedwithtranscodingCBRbitstreamtOCBRbitstreamat也esanlebitrate.3.Proposesvideotranscodingtechniqueforcutting&pastingMPEGvideo一11I一 中国科学院计算技术研究所博士论文bitstream.WeproposedtwocuttingandpastingalgorithmsinDCTdomainareprovidedforMPEGvideobitstream:open-loopalgorithmandclose-loopalgorithm.Videotranscodingtechniqueisusedbythesetwoalgorithmsforre-encodingvideoframes,hencethecomplexityofre-encodingisdramaticallyreducedcomparedwitllthetraditionaldecoding-and-encodingmethod.Theopen-loopalgofithmisfasterthantheclose-loopone,whereastheclose-loopalgorithmhasbettervisualquality.Therefore,theopendoopalgorithmisfitforreal-timeapplicationssuchasinsertingcommercialsintobroadcastingTVcontent,andtheclose·looponeissuitfornon-realqimeapplicationssuchascuringandpastinginthenon-lineareditingsystem.4.ProposeschromareductiontranscodingschemeforconvertingYUV422videobitstreamtoYUV420videobitstream.Firstly,onechromareductiontranseodingarchitectureinDCTdomainisproposedifYUV422videobitstreamisencodedwithtranditonalMPEGvideocodingtechnique.Secondly.inordertoreducethecostofvideotranscoding,wepropsednewvideocodingframeworkforencodingYUV422formatvideocontent.Wimthisnewvideocodingframework,thechromareductiontranseodingcallbedonebysimpletruncationinsteadofundergoinganexpensivetranseodingprocess.Keywords:MPEG,videoIxanscoding,driftingerror,ratecontrol,videocuttingandpasting,chrominancescalability——IV— 中国科学院计算技术研究所博士论文图目录图1.1、根据用户需求、网络特征和终端设备处理能力⋯⋯⋯⋯⋯⋯⋯⋯2图1.2、全解全编结构的MPEG视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4图1.3、串联结构的MPEG视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5图1.4、开环结构的MPEO视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6图1.5、闭环结构的MPEG视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6图1-6、漂移误差对开环结构和闭环结构视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯7图1.7、时间分辨率缩减的视频转码中运动矢量的重新估计⋯⋯⋯⋯⋯⋯8图1.8,空问分辨率缩减的视频转码中运动矢量的重新估计⋯⋯⋯⋯⋯⋯9图1-9、空间分辨率缩减的视频转码中宏块模式的选择⋯⋯⋯⋯⋯⋯⋯。11图2.1、码率缩减的MPEG视频转码器中的漂移误差⋯⋯⋯⋯⋯⋯⋯⋯.18图2.2、闭环结构的MPEO视频转码器中消除漂移误差的环路⋯⋯⋯⋯.20图2.3、漂移误差自适应的快速视频转码结构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..2l图2-4、帧间预测编码块进行漂移误差自适应控制时阈值的计算⋯⋯⋯..23图2.5、MPEG-2视频编码所用的缺省量化矩阵⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯24图2-6、视频转码器中重新量化模块结构框图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..26图2.7、视频转码器中采用查表技术的重新量化模块结构框图⋯⋯⋯⋯..28图2.8、转码器中各个模块的开销百分比⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..29图2-9、视频序列SrnallTrap上不同结构视频转码器R-D曲线图⋯⋯⋯。30图2.10、视频序列Mobile.Calendar上不同结构视频转码器R-D曲线图。31图2.11、视频序列Tempete上不同结构视频转码器R-D曲线图⋯⋯⋯⋯32图3.1、MPEG.2系统总体框图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯37图3.2、DVB传输流到DVD节目流转化的系统框图⋯⋯⋯⋯⋯⋯⋯⋯.38图3-3、两趟编码的VBR码率控制算法框图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯42图3-4、样条插值计算相应R和D值⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.45图3—5、VBV模型示意图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~48图3-6、测试视频序列l在不同码率下的PSNR曲线图⋯⋯⋯⋯⋯⋯⋯。57图3.7、测试视频序列2在不同码率下的PSNR曲线图⋯⋯⋯⋯⋯⋯⋯..57图3.8、在线实时VBR码率控制算法中各个视频序列的PSNR曲线图⋯59图4.1、视频剪接流程图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..62 目录图4.2、MPEG视频码流中三种不同格式的编码帧⋯.⋯⋯.64图4.3、直接连接MPEG码流导致视频缓冲校验器的上溢和下溢⋯⋯⋯.64图4-4、编码视频序列示例⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..65图4-5、视频剪接算法示意图⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.....⋯66图4-6、DCT域上的视频解码器⋯⋯⋯⋯⋯⋯⋯⋯。⋯⋯⋯⋯⋯⋯⋯⋯⋯69图4.7、DCT域上宏块的运动补偿⋯⋯⋯⋯⋯⋯⋯⋯.图4.8、压缩域上开环剪接算法的重编结构⋯⋯⋯⋯..⋯⋯⋯..71.⋯⋯⋯.75图4-9、四种剪接算法的图像质量比较⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..80图5.1、三种不同YUv格式的亮度和色度样本位置⋯⋯⋯⋯⋯⋯⋯⋯⋯83图5.2、开环结构的色度缩减视频转码器⋯⋯⋯⋯⋯.图5.3、DriftLow结构的色度缩减视频转码器⋯⋯⋯.⋯⋯⋯..85⋯⋯⋯.85图5-4、DriftFull结构的色度缩减视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..85图5.5、串联结构的色度缩减视频转码器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..86图5-6、16x8块区域到8x8块区域的下采样方法⋯⋯图5.7、色度可伸缩的视频编码方案⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯87....⋯⋯..90图5.8、宏块色度信息分割组成相应编码色度块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..9l图5.9、YUV422格式的视频编码器之一⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。92图5.10、色度可伸缩的编码方案中码流的组织方法图5.1l、YUV422格式的视频解码器之一⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯95图5.12、YUV420格式中亮度和色度样本位置⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯97图5.13、YUV422格式的视频编码器之二⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯98图5.14、YUV422格式的视频解码器之二⋯⋯⋯⋯图5.15,序列Harp上三种色度缩减转码算法的性能比较⋯⋯⋯⋯⋯⋯100图5.16、序列FICar上三种色度缩减转码算法的性能比较⋯⋯⋯⋯⋯.100图5.17、序列Mobile.Calendar上三种YUV422编码方法的性能比较⋯101图5.18、序列Football上三种YUV422编码方法的性能比较⋯⋯⋯⋯。101 中国科学院计算技术研究所博士论文表目录表格2.1、视频序列SmallTrap上不同结构视频转码器性能比较⋯⋯⋯⋯30表格2.2、视频序列Mobile-Calendar上不同结构视频转码器性能比较⋯.31表格2.3、视频序列Tempete上不同结构视频转码器性能比较⋯⋯⋯⋯~32表格3.1、离线脱机VBR码率控制算法中的各帧的编码信息⋯⋯⋯⋯⋯44表格3.2、离线脱机VBR码率控制算法实验中所用的测试视频序列⋯⋯55表格3.3、测试视频序列l在不同码率下的PSNR的平均值和均方差⋯..56表格3.4、测试视频序列2在不同码率下的PSNR的平均值和均方差⋯。56表格3.5、在线实时VBR码率控制算法的实验结果⋯⋯⋯⋯⋯⋯⋯⋯⋯58表格4.1、矩阵岛J和5b⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯70表格4.2、四种视频剪接算法重编帧数的比较⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。79表格4.3、四种视频剪接算法剪接速度的比较⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..79表格5.1、EMode的定义⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。就我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。储獬:’獬醐眵墨枇关于论文使用授权的说明中国科学院计算技术研究所有权处理、保留送交论文的复印件,允许论文被查阅和借阅:并可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存该论文。储戤。镅.翩獬:匆亨醐:阳·4加 1.1课题背景第1章绪论随着数字视频处理技术和网络通信技术的发展,诸如数字视频广播(DTV:DigitalVideoBrocasting)、视频点播(VOD:VideoOnDemand)、视频会议(VideoConferenee)、网络流媒体(NetworkingMediaStreaming)以及网络远程教育(NetwrokingRomteLearning)等众多的网络多媒体服务已经或正在成为人们日常生活的重要组成部分,这就促使计算机、广播电视以及各种通信系统越来越走向融合.如何有效的在这些不同的系统间无缝地实现各种各样的多媒体服务,更好的实现用户和系统的交互性,已经变得越来越重要,通用多媒体访问(UMA:UniversalMultimediaAccess)概念应运而生[PB03.PESA03,BGP031。在UMA系统中,存在不同的网络结构,不同的终端设备,以及不同的多媒体数据格式;这些对于最终用户都是透明的。用户通过和系统的交互,得到需要的数据服务,而无须关心网络的结构特征、终端设备的处理能力以及多媒体数据的表示格式。由于多媒体数据格式多种多样,网络结构也各不相同,终端处理能力更是千差万别,UMA系统内部必然涉及若干数据的转换。首先,用户需要的数据类型和存储的数据类型可能不同,比如用户需要声音数据,而存储的是文本数据,这就需要文本到声音的转换。其次,从服务器到用户终端可能经过不同网络结构的路径,而在不同的网络结构中需要将数据进行不同的打包封装实现可靠的网络传输。最后,用户的终端设备处理能力也不尽相同,例如存储的是高码率、高分辨率的视频码流,而用户的个人数字助理(PDA)却只能处理低码率、低分辨率的视频码流,这就需要视频转码技术的支持。因此,数据转换技术是实现UMA系统的核心,UMA系统必须自动完成这些数据转换的工作,以实现最终用户所需的服务.在UMA系统支持的众多数据服务中,视频数据服务构成了它的一个重要组成部分,而视频转码技术是实现视频数据服务的关键技术.在视频数据服务中,首先必须对海量的数字视频数据进行压缩编码以节约存储空间和网络传输带宽l高94,吴95】.在过去几十年里,为了更有效的进行数字视频数据存储和传输,各种不同的视频编码标准被开发出来,其中最 中闰科学院计算技术研究所博士论文重要和最有影响的是国际标准化组织(ISO:InternationalStandardOrganization)开发的MPEG系列标准和国际电信联盟(ITU:InternationalTelecommunicatinsUnion)开发的H.26x系列标准.这些标准包括用于存储CD.ROM的MPEG.1标准[IS093a,于95l;用于数字视频光盘(DVD)和数字电视广播(DVB)的MPEG.2标准[IS095a,IS095b1;用于视频会议的H.261/H.263标准[ITU93,ITU95】;新的MPEG-4标准允许对任意的形状的对象进行编码和解码,在接受方视频对象被组合起来形成混合的对象和场景【Is099l;最新的H.264/AVC(MPEG4.10)标准也已经制定出来ilTU031。当使用这些视频压缩标准对数字视频数据进行压缩编码的时候,总是预先假定实际的网络传输条件以确定压缩编码所需的参数,然后才能生成视频压缩比特流。然而,正如前文所述,在实际的网络视频服务应用中,由于不同的网络带宽的限制,涉及的网络各有特色:其次,终端的显示能力、处理器能力和内存容量也不一样;最后,用户对视频内容消费喜好也各不相同,这就需要根据当前的网络条件,终端的处理能力以及用户的需求来定制和传送视频内容。显然,预先压缩好的视频数据不可能够满足这些多方面的要求,这就要求对已经编码的视频数据根据实际的应用需求进行相应的转换,这一视频数据的转换过程即称为视频转码(VideoTranscoding)【VCS03l。图1.1、根据用户需求、网络特征和终端设备处理能力进行多媒体内容的转化图1.1给出了视频转码的一个典型应用。在服务器端,输入的视频内容采用较高的比特率进行编码存储,同时对其建立索引,以方便用户查找所需的视频内容.在客户端,用户可能使用具有过滤功能的视频收录机收录娱乐 第1章绪论节目,或者使用PC机和移动设备搜索视频内容,或者通过个人数字助理(PDA)观看视频节目.其中,传输视频内容的通信网络有各种不同的选择,它可能是移动网络(例如GSM系统,CDMA系统,以及未来的3G系统),公共电话交换网络,ISDN,xDSL等等。不同的网络具有不同的带宽,以及不同的差错率,这些因素对视频传输的质量都有很大的影响。当视频服务器接收到一个请求,它首先根据用户的请求启动搜索引擎查找相应的视频数据,然后根据网络结构特征、终端处理能力对检索到的视频数据进行转化,最后生成用户所需的码流进行传输.由此可见,通过采用视频转码技术,系统完全透明地实现了用户所需的服务,而无需用户关心他们的网络传输特性和终端设备的处理能力.1.2国内外研究现状分析将已经压缩编码的视频码流转换成另一种不同格式、不同码率以及不同分辨率的视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求,这是视频转码技术的核心问题。事实上,所有的视频转码都可以使用如图1.2所示的串联的解码器和编码器完成。这种转码方法首先对原始的压缩编码视频码流进行解码,然后在像素域进行适当的处理,最后重新编码压缩生成新的视频码流.一般的,我们称这种视频转码器结构为全解全编结构.全解全编结构的好处是实现简单,但是由于完全没有利用原始视频码流中的相关编码信息进行视频数据的转换,它的复杂度很高,很难做到实时的视频数据转换.这是因为目前流行的视频编码方法(例如MPEG系列和H.26x系列视频标准)都采用了非对称的编码器和解码器设计方法,其中解码器的复杂度比较低,以利于实现客户端的实时解码;而编码器的复杂度比较高,主要用在服务器端供内容提供商压缩编码视频节目源。由于上述的全解全编视频转码方法既使用解码器。又使用了编码器,它的效率必然不高,很难达到实时的应用。然而,实际的应用又往往要求我们提供实时的视频转码,以保证自适应的视频服务.因此,视频转码技术的研究重点在于结合具体的应用环境和视频码流使用的压缩编码方法,充分利用原始视频码流中的编码信息进行重新压缩编码,简化视频转码器的结构,得到低复杂度的视频转码器,同时尽可能保证较少的图像失真[VCS03l。根据应用背景的不同,视频转码通常可以分为比特率缩减、空间分辨率缩减、时间分辨率缩减以及码流格式转换等多种类型.比特率的转换可以弥补低带宽的不足,使码流能 中国科学院计算技术研究所博士论文够在网络带宽变化的情况下也能顺利地传输;空间分辨率和时间分辨率的转换也有助于在低带宽下工作,但它主要用于解决用户设备的限制,比如处理器的处理能力,显示器的分辨率大小以及设备的内存容量等问题;格式转换能够让发送方和接受方保持兼容性,确保混合网络的自适应性。在实际应用中,这几种视频转码技术通常是结合在一起进行码流的转换。=r1:望r,11==!r’:\:》:\_—鞠a幢eroII扎4-J’J宦M。h∞VmfrJ夕.1竺曼一腓甲,薄IIMI、IMd枷ved∽I.l图1.2、全解全编结构的MPEG视频转码器1.2.1比特率缩减的视频转码技术最早的视频转码研究主要集中在缩减输入视频码流的比特率以满足网络的传输带宽.显然,可以使用全解全编结构实现比特率缩减的视频转码。但是,由于重新编码过程需要复杂度很高的运动估计和模式选择过程,这种方案很难达到实时的视频转码,这就极大限制了比特率缩减的视频转码器的使用.因为在很多情况下,这种类型的视频转码器都配置在服务器端(Server)或者代理(Proxy)端,它们需要按照实际的情况实时地完成视频码流的转换.因此,比特率缩减的视频转码的研究,关键在于有效利用原始码流中的编码信息来降低重新编码的复杂度,以便视频转码器能够实时完成码流的转换,同时保证转码后的图像质量在可接受的范围之内。基于重用编码信息这一观点,IYSL99l中提出了如图1.3所示的称为串联结构的转码器。这种结构的转码器同全解全编结构很类似。所不同的是,因为这种结构完全重用原始码流中的宏块模式和运动矢量信息,因此转码过程中不需要进行运动估计和模式 第1章绪论选择(即省去了图1.2中ME模块),从而极大的加快了转码的速度.这是因为在全解全编的转码器结构中,运动估计和模式选择是开销最大的部分.此外,为了改善转码后的图像质量,可以在小范围内(例如两个像素范围内)进行运动估计来修正原始码流中的运动矢量.Decoder!Encoder图1-3、串联结构的MPEG视频转码器串联结构虽然较全解全编结构有了极大的提高,但是实际上转码器中的解码部分和编码部分还可以迸一步藕合,得到更为简单更为有效的转码结构。如图1.4所示的开环结构和图l,5所示的闭环结构.同串联结构一样,这两种结构也完全重用原始码流中的宏块模式和运动矢量信息,因此无需复杂度很高的运动估计和模式选择.在开环结构的视频转码器中【NHK95,SKz96l(如图1-4所示),解码部分只剩下可变长解码模块(vLD)和反量化模块(IQl),而编码部分只剩下量化模块(Q2)和可变长编码模块(VLC),其余的部分都已经省去。事实上。开环结构直接在压缩域(DCT域)上进行转码,因而转码的速度最快。但是,因为在转码过程中视频帧会损失高频信息,所以转码后新的编码帧会发生退化.当进行运动补偿的时候,当前帧的预测部分将从转码后退化了的参考帧中取得,而残差部分将从原始码流中解码获得,这样必将导致预测部分和残差部分的不匹配,于是就产生了所谓的漂移误差(driftingerror).因为预测编码的缘故,前面的帧的漂移误差会被带到后续的帧上,直到新的I帧出现(因为I帧只进行帧内编码,不会受到前面的帧的漂移误差的影响).这种逐级累加效应会使前面很小的误差最后被放大 中国科学院计算技术研究所博士论文成很大的误差,严重影响后续帧转码后的图像质量.因此,开环结构的转码器在转码后图像质量有很大的损失,而且这种损失呈周期性变化.从图1.6可以看出,在两个相邻I帧之间(也就是通常的一个GOP范围),如果离I帧越近,图像损失就越小;反之,如果离I帧越远,图像损失就越大.为了克服这种漂移误差带来的较大的图像失真,文献[SZK96,PM96,PM98l中提出了闭环结构的视频转码器(如图1.5所示).同图1-4所示的开环结构相比,闭环结构在编码部分引入了闭合回路来消除漂移误差的影响。由于在每帧的转码过程中漂移误差都补偿到了当前转码帧的残差部分,因此闭环结构基本消除了漂移误差对转码后图像质量的影响(如图1-6所示).闭环结构的误差补偿回路和图1.3所示的串联结构中的运动补偿回路很类似,所不同的是是闭环结构的中运动补偿模块(MC)处理的是累积的漂移误差,而串联结构则处理实际的运动图像。DeeoderlEncoderI图I-4、开环结构的MPEG视频转码器13ecoder!EncoderI图l一5、闭环结构的MPEG视频转码器 第1章绪论图1-6、漂移误差对开环结构和闭环结构视频转码器转码后图像质量的影响1.2.2分辨率缩减的视频转码技术随着无线通信技术的发展,使用手机(MobilePhohe)、个人数字助理(PDA:PersonalDJ西talAssistant)等移动终端设备访问视频内容变得越来越普及。由于移动终端设备的显示能力和处理器能力的限制,需要对视频内容的空间分辨率和时间分辨率进行缩减。因此,新的进行空间分辨率和时间分辨率缩减的视频转码技术成为被开发出来.此外,因为无线网络存在较大的传输错误,研究人员还进行具有容错功能的视频转码技术的研究。-时间分辨率缩减的视频转码:通常用于电视广播的视频数据其帧率为每秒25帧或者30帧,而在实际使用中因为终端设备的处理能力限制只能处理帧率为每秒lO帧或者15帧的视频数据,这就要求减小视频数据的时间分辨率。缩减时间分辨率的方法就是按照一定的规则去掉原始视频数据中的某些编码视频帧。但是因为视频编码标准使用了帧问预测编码,如果去掉的视频帧是参考帧,那么保留下来的某些后续编码视频帧的运动矢量将无效,所以必须对这些帧产生一套新的运动矢量,这就是运动矢量的重新估计问题(如图1.7所示).【YSL991提出了前向主导矢量选择方法来计算新的运动矢量.其中,新的运动矢量^种么。按照下面的公式计算, 中国科学院计算技术研究所博士论文%=肘‰+帆(公式I·1)上式中肘圪埘表示视频帧R参考视频帧R.1时的运动矢量,此时当前宏块(图1.7中的红色区域部分)在视频帧,n.1中的参考区域和4个相邻的宏块交叠,其中交叠部分面积最大的宏块的运动矢量是M%。,%={蟛I墨≥墨,f=o,,,2,3}(公式l·2)如果跳过的不只一个视频帧,那么可以重复使用上面的方法直到得到最终的运动矢量.为了进一步提高运动矢量的精度,可以用求得的运动矢量为初始值,在小范围内搜索求得精度更高的运动矢量。计算出新的运动矢量之后,预测残差值也需要重新计算.如果采用像素域的转码器结构,那么直接使用新的运动矢量进行运动补偿求得;如果采用是的DCT域上的转码器结构,那么需要利用DCT域上运动补偿算法[CM951计算预测残差的DCT系数;或者使用文献lFCS02,VYLS021中的方法,直接进行DCT系数相加,同时使用误差补偿反馈回路进行补偿,这样将进一步的减少视频转码的复杂度。,02R.1(Dropped)R图1.7、时间分辨率缩减的视频转码中运动矢量的重新估计-空间分辨率缩减的视频转码:视频终端的显示能力各不相同的,高清数字电视的空间分辨率可达1920x1080,标清数字电视的空问分辨率也能够达到720x576,而手持无线终端设备的显示空间分辨率一般是QCIF格式(176x144),或者至多达到CIF格式(352x288)。显然,我们应该根据显示设备的空间分辨率大小来定制视频码流,这样可以节省不必要的额外开销。减小空间分辨率就是把一个高分辨率的图像转化为另一个低分辨率的图像,要对压缩编码的视频码流完成这一定制过程,涉及以下三方面的问题.第一方面是宏块的新的运动矢量的生成,在图1.8所示 的空问分辨率缩减的转码过程中,长度和高度都缩减为原来的一半,因此高分辨率图像中的4个宏块将映射为低分辨率图像中的1个宏块。此时,原来4个运动矢量可以合成一个新的运动矢量;如果是MPEG.4视频编码标准[1s0991或者H.263视频编码标准[ITU95l,那么还可以合成4个8x8运动矢量.文献[BC98a,BC98b,SSV97,SG00,YWL00】中对上述运动矢量合成问题做了详细的讨论。其中,对于多个运动矢量合成一个运动矢量的问题,主要有以下三种不同的方法重构运动矢量:Fottrl6x16MVs虿鞠il∥1篆珊汐:⋯—Z.::“/蠢溉争l缨甄,,●.‘o.,。⋯0nel6x16MVFour8x8MV$图1-8、空间分辨率缩减的视频转码中运动矢量的重新估计A。运动矢量均值法:这种方法相对简单,即是将4个宏块的运动矢量求平均作为新的宏块的运动矢量,MV:!争彬4智‘(公式1-3)B.同向均值法:这种方法计算输入的运动矢量中具有相同运动方向的运动向量的均值作为新的宏块的运动矢量。它主要是利用了相邻宏块之间的运动相关性来提高新的运动矢量的精度,公式如下:MV=去萎叫,。≤肌<4(公式14)C.Euclidean距离法:这种方法首先计算每个运动矢量Euclidean距离,圈圉 中国科学院计算技术研究所博十论文它是当前运动矢量和其余运动矢量之间的距离之和,z:壹0蟛一彬l(公式I-5)』loJ.I定义中心运动矢量为具有最小Euclidean距离的运动矢量,选择中心运动矢量作为新的运动矢量,MV=(彬lZ≤乃,j=od,2,3}(公式1-6)同时间分辨率缩减的视频转码中的运动矢量的重新估计类似,为了进一步提高重构运动矢量的精确性,可以用计算出的运动矢量为起点,在一个较小的范围内进行运动估计,以便细化新的运动矢量。第二个方面是宏块的下采样变换方法,在DCT域上实现下采样一般的方法是保留各个编码块的低频分量,然后将这些低频分量在组合成新的宏快的DCT系数,我们可以按照文献[CM951给出的算法进行,此外,文献1SC98。VSDP98l中给出了更加精细的DCT域上的滤波器来完成上述下采样过程.第三个方面是宏块的新的编码模式的选择.如图1-9所示,如果原来的四个宏块都是帧内编码宏块或者帧间编码宏块,那么新的宏块编码模式是帧内编码宏块或者帧间编码宏块;但是如果原来的四个宏块既有帧内编码宏块又有帧间编码宏块,那么情况就比较复杂了。【BC98,YVLS02l中给出了各种三种不同的处理方法:A.ZeroOut方法:首先将帧内编码宏块变成帧间预测编码宏块,它的运动矢量和预测残差DCT系数都置为零.此时所有的四个宏块都是帧问预测编码宏块,因此新的宏块就编码为帧间预测编码宏块。B.Intra-Inter方法:首先将帧内编码宏块变成帧间预测编码宏块,它需要进行运动估计得到新的运动矢量,不过新的运动矢量仅在零运动矢量以及相邻宏块的运动矢量中选择.此时所有的四个宏块也都是帧问预测编码宏块,因此新的宏块就也编码为帧间预测编码宏块.C.Inter-Intra方法:将帧间预测编码宏块变成帧内编码宏块,此时所有的四个宏块都是帧内编码宏块,那么新的宏块就编码为帧内编码宏块。上述三种方法中,Intra-Inter方法和Inter.Intra方法都需要转码器的编码部分有一个解码环路,以便能够得到新的重构图像,实现帧内编码宏块和帧间预测编码宏块的转换.如果图像的运动矢量比较小而且细节比较少。那么可以使用复杂度低的ZeroOut方法.否则,需要使用其余的两 第1章绪论种方法.实际应用表明,Inter-Intra方法略优于Intra-Inter方法,因为Inter.Intra方法中帧间预测编码宏块变成帧内编码宏块能够克服漂移误差的传播.1忠IntraMBLll船IntrarIMBIInterIMBLIInter—IlMBZeroOutIntra,InterInter-Intra图1-9、空间分辨率缩减的视频转码中宏块模式的选择_具有容错功能的视频转码:一般的,无线信道的带宽较低而且出错率较高,因此在无线信道上传输视频码流往往需要考虑如何增强视频传输的容错能力。提高码流容错能力可以从两个方面考虑,首先是在压缩编码过程中适当减少预测编码的块数,这样虽然降低了编码器的编码性能,但是提高了编码码流本身的容错能力,因此最终将带来传输视频码流性能的提高;其次是在传输的时候使用更好的容错编码技术,虽然在相同的码率下,更好的容错编码技术意味着更多的冗余比特数(用于错误保护和纠错)和更少的有效编码比特数(这将降低视频码流的编码效率),但是更好的容错编码技术将保证传输过程中更少的错误编码比特数,最终也将带来传输视频码流质量的提高。显然,将已经编码的视频码流转换成具有更好容错能力的视频码流,必然涉及视频码流的重新编码,这就是所谓的具有容错功能的视频转码.文献[RRCC00l中,按照上面的第 中国科学院计算技术研究所博士论文一种方法调整视频码流的容错能力,可以通过减少条带(slice)中的编码块(block)数来增加视频码流的空间容错能力,也可以通过增加帧内编码宏块数来增加视频码流的时间容错能力。因为增加了额外的容错能力,那么有效的视频传输带宽必然减少,因此需要根据出错率和传输带宽进行率失真优化。文献[DCUSK02】中讨论了GPRS网络中传输MPEG4码流时进行具有容错功能转码的方法,其中使用MPEG4视频编码标准中定义的AIR方法或者FCS方法调整视频码流容错能力。同样的,要达到最好性能,需要在出错率和有效传输带宽问进行率失真优化。1.2.3其他的视频转码技术除了上述的视频转码类型,还存在以下多种的视频转码应用:-码流格式转换的视频转码:将一种格式的视频码流转换成另一种格式的视频码流。文献[WHHHS96]qb讨论了JPEG格式到MPEGI格式的转码方法;文献IMR971讨论了GIF格式到JPEG.LS格式的转码方法;文献【FW99]讨论了MPEG2格式到H.263格式的转码方法;文献[KYNH02l讨论了DV格式到MPEG2格式的转码方法。文献[LBMW0202IDVS0格式到MPEG2格式的转码方法。一基于对象的视频转码:文献Ivswoq讨论了基于对象的视频转码技术,将基于帧的压缩码流转换为基于对象的压缩码流,在传输带宽受到限制的时候,将较多的比特数分配给用户感兴趣的视频对象,而对于用户不关心的视频对象,则可以分配较少的比特数,这样就能保证即使在较低的比特率下用户所关心的视频对象也能有较好的视觉质量._实现特殊播放模式的视频转码:文献[TLY02]讨论了如何使用视频转码技术实现MPEG视频码流的快进和倒播.因为MPEG码流采用帧问预测编码,在快进和倒播时必然涉及视频码流的重编,因此所以采用转码技术来实现实时的视频码流的重新编码.1.3本文的研究内容尽管过去十多年问已经研究了各种各样的视频转码技术,但是随着新的编码标准的制定以及新的应用需求的出现。我们需要对现有的视频转码技术进行改进和完善。同时针对新的实际应用需求探讨新的合适的视频转码方法。本文研究的基础是MPEG视频编码标准,研究的重点是能够解决实际需要的 第l章绪论面向MPEG码流的视频转码技术,其中涉及的研究内容和需要解决的关键技术主要有以下几个方面:1,漂移误差自适应的快逮视频转码结构;如前所述,存在两种比特率缩减的视频转码器结构:开环结构和闭环结构.开环结构没有使用闭合回路消除漂移误差,虽然转码速度很快,但是转码后的图像质量损失较大;而闭环结构使用了闭合回路极大地消除了漂移误差,虽然转码后的图像质量较好,但是因为闭合回路的使用增加了转码的复杂度,使得它的转码速度不如开环结构。针对这两种转码结构的优缺点,本文提出了一种新的漂移误差自适应的快速视频转码结构。首先,提出了自适应的漂移误差控制算法,使转码器可以自适应地选择部分编码块消除漂移误差,而不是像闭环结构中那样对整个视频帧中的所有块都进行消除漂移误差的操作。其次,通过设计合适的运算表格,采用查表方法实现转码过程中开销最大的量化和反量化操作,从而避免了复杂的乘除运算.因为漂移误差的自适应控制和量化和反量化操作的查表实现,使得本文提出的的快速转码结构在转码速度上不仅远远高于闭环结构,而且也超过了传统的开环结构。在转码后的图像质量方面,尽管只在部分编码块上进行消除漂移误差的操作,但是因为自适应控制算法的引入,本文提出的的快速转码器结构实际上接近闭环结构,并且远远好于开环结构。此外,本文提出的快速转码结构还可以方便地扩展成为复杂度可伸缩的转码器,根据处理器当前分配给转码服务的有效负荷,动态地调整转码器的复杂度,更好地实现实时视频转码服务。2.面向DVD存储的系统级别的视频转码器:随着数字电视广播的普及,将数字电视节日存储下来方便以后的回放成为一个重用的应用需求.目前,数字电视广播(DVB)采用的是MPEG.2传输流(TS)格式;而存储数字视频数据的设备主要是数字视频光盘(DVD),它采用MPEG.2节目流(PS)格式.因此。将数字电视广播节目存储到数字光盘上,这就需要一个将MPEG.2传输流转换生成MPEG-2节目流的系统级别的视频转码器.一般的,MPEG.2传输流中的视频码流是码率较高的固定码率(CBR)视频流,而用于存储回放的是码率相对较低的可变码率(VBR)视频流;因此,上述的系统级别的视频转码器的核心问题是如何将高码率的固定码率(CBR)视频流转码为低码率的可交码率(VBR)视频流.针对这一问题,本文提出了两种不同的码率控制算法.第一种码率控制算法需 中国科学院计算技术研究所博士论文要首先分析得到整个码流的编码信息,因此适合脱机离线转码存储应用;而第二种码率控制算只需要-d,段时间内码流的编码信息,因此适合在线的实时转码存储任务。3.视频码流剪接中的视频转码技术:直接在MPEG码流完成视频码流的剪切、粘贴操作是实现很多实际应用的基本组成部分,比如非线性编辑中的视频剪接,又比如电视广播中的广告内容的插播。显然,我们需要一个尽可能快的视频剪接算法,以便实现各种实时或者非实时的剪接任务。影响MPEG码流剪接算法速度的主要障碍在于重编的视频帧数和重编的视频帧使用的方法。采用视频转码技术,我们可以充分利用原始视频码流中的编码信息(例如宏块编码模式,宏块的运动矢量等)来加速视频剪接算法。基于上述观点,我们提出压缩域(DCT域)上的两种不同的视频剪接方法;开环视频剪接算法和闭环视频剪接算法。其中闭环剪接算法最大所需重编帧数为一个GOP长度(通常为12帧或者15帧),而开环剪接算法最大所需重编帧数为相邻两个非B帧问的距离(通常为2帧)。同时两种剪接算法中视频帧的重编都充分使用了原始码流中的编码信息,极大的降低视频帧重编的复杂度。其中,开环剪接算法因为重编的帧数较少,因而速度较快,但是剪接后的图像质量会受到漂移误差的影响有一定下降,因此适合对视频剪接的实时性要求较高的任务;而闭环剪接算法采用了闭合环路克服了漂移误差的影响,剪接后图像质量较好,但是因为重编的帧数较多而且闭合环路的引入,因而开销比较大,速度不及开环结构,因此它适合要求有较好图像质量,同时实时性要求不高的应用。4.YUV422格式到YUV420格式的视频转码研究:一般的,YUV422格式的视频内容保留了更多的色度信息,因而具有更好的图像质量,因而主要应用在电视台内的节目制作存储和电视台问的节目交换中;而YUV420格式首先在色度信息上就进行了图像信息的压缩(色度信息只有YUV422格式的一半,而仅有YUV444格式的四分之一),因而主要应用到广播级别视频传输中。因此,在电视台播出节目的时候,这里就有一个YUV422格式码流到YUV420格式码流转码的操作.进一步的,随着用户对高画质的图像需求越来越多,相应的支持YUV422格式的设备也大量出现,这就需要向用户提供YuV422格式的视频码流.然而,将在一段时问内还有大量用户使用仅支持YUV420格式的设备,这就需要在播出YUV422 第1章绪论格式的视频节目的同时提供YUV420格式的视频节目.同时播出两路节目(一路YUV420格式,一路YUV422格式)是不可取的,因为造成频道资源的浪费,所以最可行的方法也就是视频转码。如果使用传统的编码框架,那么播出YUv422格式的节目在YUV420用户端需要配置YUv422格式到YUv420格式的转码器,这实际也不可取,因为这些用户根本不需要任何的升级(否则直接购买YUV422格式的设备好了)。所以我们根据可伸缩编码方法的思想,提出了色度可分级的YuV422格式编码方案。根据这个方案,YUV422格式的码流被分成YUV420格式和增强的色度分量两部分,YUV420格式按照传统的视频编码方案编码生成基本层码流,而增强的色度分量编码生成增强层码流。那么,当传送此种类型的Y1Ⅳ422格式的编码码流,YUV420格式的终端只要丢弃增强层码流就实现了转码,而YUV422格式的终端只要完全解码基本层和增强层的码流就得到整个YUV422格式的图像.1.4章节安排本论文的其余章节安排如下:第二章提出了漂移误差自适应的快速转码结构,首先讨论自适应的漂移误差控制算法,然后给出了转码器中实现量化和反量化操作的查表运算结构,最后讨论了复杂度可伸缩的转码器,这样的转码器可以根据处理器当前分配给转码服务的有效负荷,动态地调整转码器的复杂度,更好地实现实时视频转码服务。第三章提出了面向DVD存储的系统级别的MPEG转码方法,首先提出将数字电视广播所用的MPEG.2传输流(TS)转码生成数字视频光盘所用的MPEG.2节目流(Ps)的核心问题是将高码率的CBR码流转码成低码率的VBR码流。然后分别给出离线脱机的VBR码率控制算法和在线实时的VBR码率控制算法来解决上述的转码问题。第四章提出了用于MPEG码流视频剪接算法的视频转码技术。首先分析了在MPEG视频码流上进行精确到帧的视频剪接面临的困难,然后提出了全解全编视频剪接算法,最后从视频转码的角度入手,提出了两个压缩域(DCT域)上进行视频剪接的方法:开环剪接算法和闭环剪接算法.第五章首先讨论了如何在传统的视频编码框架下将YUV422格式的视频码流转码到YUV420格式的视频码流问题;然后基于色度可分级的概念,提 中国科学院计算技术研究所博士论文出了新的色度可分级的YUV422格式的视频编码方案,使用该方案进行编码,YUV422格式的视频内容分成两部分:YUV420格式编码成基本层视频码流,而增强的色度信息编码成增强层视频码流,因此,新的实现YUV422格式到YUV420格式转码现在仅需要丢弃增强层视频码流。最后对全文的内容进行了总结. 第2章漂移误差自适应的快速视频转码器第2章漂移误差自适应的快速视频转码器将高码率的视频码流转码生成低码率的视频码流,以适应不同网络带宽的需要,这是MPEG视频转码的一个最重要的应用.如前所述,存在两种不同结构的码率缩减视频转码器:开环结构【NHK95,SKZ961和闭环结构【SKZ96,PM96,PM98l。其中开环结构的速度最快,但是因为漂移误差的影响,转码后的图像质量损失较大;相反的,闭环结构使用了闭合回路极大地消除了漂移误差,因而转码后的图像质量较好,但是因为闭合回路的使用增加了转码的复杂度,使得它的转码速度不如开环结构。针对这两种转码结构的优缺点,本章提出了一种新的漂移误差自适应的快速视频转码结构。首先,消除漂移误差的基本单元是块而不是整个视频帧。这样,转码器可以自适应地选择部分块进行消除漂移误差的操作,而不是像闭环结构中那样需要整个视频帧中的所有块都进行消除漂移误差的操作。因此转码器中闭合回路带来的复杂度的增加将低于闭环结构,相应的转码器的转码速度将快于闭环结构。同时因为只有部分块消除了漂移误差,转码后图像质量的损失应该大于闭环结构,但是因为自适应算法的使用,这一损失可以控制在可接受的最小范围之内.其次,无论在开环结构还是在闭环结构中,量化和反量化过程都涉及了大量复杂的乘除法运算,其开销很大。通过设计合适的运算表格,可以采用查表方法完成上述的量化和反量化过程,从而避免了复杂的乘除运算,这就进一步加快了转码器的转码速度。实验结果表明,本章提出的漂移误差自适应的快速转码结构在转码速度上不仅远远高于闭环结构,而且也超过了传统的开环结构;在转码后的图像质量上接近闭环结构,并且远远好于开环结构。此外,本章提出的快速转码结构还可以方便地扩展成为复杂度可伸缩的转码器,根据处理器当前分配给转码服务的有效负荷,动态地调整转码器的复杂度,更好地实现实时视频转码服务.2.1码率缩减的快速视频转码结构无论是开环结构还是闭环结构,在转码过程都完全重用了原来的宏块编码模式和运动矢量信息进行转码,它们都是在如图1.3所示的串联结构的基础上发展而来。仔细分析串联结构的转码过程(如图2.1所示),我们可以知道所谓的漂移误差(DriftingError)ISZK961是如何生成的。因为MPEG视频编码标准 中国科学院计算技术研究所博士论文采用了预测编码方法[IS093a,IS095b,IS0991,所以视频帧的值C包括两部分:一部分是运动补偿得到的预测参考值PC,而另一部分是预测残差值RC.假设当前的视频帧为局,而它的参考帧为昂,那么原始视频码流解码得到的当前视频帧的值a可以表示如下,口=Pco+R口=脚(C)+只口(公式2-1)其中尸口是运动补偿得到的预测参考值,R口是直接解码得到预测残差值,而c:是解码得到的参考帧的值。当前视频帧的值掣将做为视频转码器的编码部分的输入,因此口又可以表示为,I图2.1、码率缩减的MPEG视频转码器中的漂移误差上面的式子中新的运动补偿得到的预测参考值尸q来至于转码之后参考帧的值c:;预测残差值RcJ将送入转码器的编码部分进行编码,根据以上两个式子可以计算Re,Rc,=脚(c;)+R口一脚(q)(公式2-3)由于重新编码的时候使用了和原始视频码流一致的运动模式和运动矢量,所以上面的式子又可以表示成,Rc,=R口+脚(C;一q)(公式2-4)上式中a—c:表示参考帧转码前和转码后的差值,这就是漂移误差的来源.如 第2章漂移误差自适应的快速视频转码器果忽略这个差值,即认为转码前和转码后c:=c:,那么就可以将图l·3所示的串联结构简化成如图1.4所示的开环结构。但是因为下面的误差累积放大效应,这一简化不可避免的带较大的图像损失.预测残差值Rc,经过DCT变换和量化(Q2)得到量化后的预测残差值Q叹G:鲫G经过可变长编码(VLC)得到编码的比特流,同时它经过反量化(IQ2)和IDCT变换,得到重建的预测残差值Rd,那么转码后当前视频帧的值d就是,cI=删+丑q=脚(q)+Rq(公式2-5)那么当前视频帧E的漂移误差DE,可以表示为,OE,=曰一q《脚(q)+Rq]一[脚(q)+Rq]=脱(q—q)+(R口一Rc1)(公式2-6)--MC(n%)+(R口-m:)从上式可以看出,当前帧的漂移误差包括两部分:它的参考帧的漂移误差DEp,预测残差RG编码前后的差值Rp—RC:。即就是说,因为预测编码,参考帧的漂移误差将带到当前帧,即使参考帧只有很小的漂移误差,经过逐级放大累积,也会变得很大,这就是漂移误差的累积放大效应。公式2-4和公式2-6也给出了一个解决漂移误差的方法:在转码过程中参考帧的漂移误差进行缓存;在转码器进行重新编码的时候,根据公式2_4,从解码部分得到预测残差RCo要补偿相应的漂移误差值MC(DE)才能得到新的编码预测残差值尼c;同时在编码部分末端需要按照公式2-6进行漂移误差的重建以更新漂移误差缓存.按照上述方法简化串联结构,就得到如图1.5所示的闭环结构。如图2.2所示,闭环结构的视频转码器中消除漂移误差的闭合环路可以分为两部分,其中位于误差缓冲区(ErrorBuffer)输入之前的部分完成漂移误差的累积(DriftingErrorAccumulation);而位于ErrorBuffer输出之后的部分完成漂移误差的补偿(DriftingErrorCompensation).对于MPEG视频码流,存在三种不同类型的编码视频帧,即I帧、P帧和B帧IIS093jS095,IS0991。由于I帧 中国科学院计算技术研究所博士论文图像只进行帧内编码,不可能受到漂移误差的影响,因此l帧图像的转码不需要误差补偿操作;但是I帧图像将作为后续的P帧或者B帧的参考图像,因此I帧图像的转码需要进行误差累积操作.对于B帧图像,它不会作为后续帧的参考图像,因此不可能传递漂移误差,所以无需误差累积操作;但是B帧图像因为参考了前面的I帧或者P帧,需要进行误差补偿操作.不过,因为B帧图像的漂移误差来自邻近的I帧或者P帧,而这些图像都进行了误差补偿,所以如果B帧图像不进行误差补偿,其转码后图像质量的损失不会很大。因此在本章提出的转码器结构中B帧图像将不进行误差补偿.对于P帧图像,它既参考前面的I帧或者P帧,又将作为后续的P帧或者B帧的参考图像,因此必须进行误差补偿和误差累积操作.实际上,即使是P帧图像,也可以在转码过程中仅使部分块进行误差补偿操作,而其余的块不进行误差补偿操作,从而简化P帧的转码。·I图2.2、闭环结构的MPEG视频转码器中消除漂移误差的环路 假设CFo是原始码流中解码得到的DCT系数,而ER是误差补偿操作得到DCT系数,经过Q2量化操作得到新的量化后的DCT系数CFI按照如下方法求得,CE:—CFo+—ER(公式2忉‘口2如果OsER+CFo%q2<92,那么非零误差ER并不影响CFI的取值·因此,如果预先给定一个阈值TH,就可以按照误差ER和阈值丁H的大小来决定是否进行误差补偿操作。根据这一思想,本章提出了如图2.3所示的漂移误差自适应的快速视频转码器结构,该结构的转码器按照如下方式进行操作:Decoder!EncoderI图2.3、漂移误差自适应的快速视频转码结构_当前转码图像是I帧:因为I帧只进行了帧内编码,所以无需误差补偿操作;但是I帧将是后续帧的参考帧,所以需要误差累积操作.一当前转码图像是P帧:因为P帧将是后续帧的参考帧,所以P帧转码需要进行误差累积操作;又因为参考了前面紧邻的非B帧(I帧或者P帧),所以P帧转码需要进行误差补偿.P帧进行误差补偿以块为单位进行,如果漂移误差小于给定的阈值,则图2.3中的开关THI打开,当前块不进行误差补偿;否则,漂移误差大于了给定的阈值,图2.3中的开关THI闭合,当前块需要进行误差补偿.具体的方法将按照下面2.2节给出的算法进行。_当前转码图像是B帧:尽管B帧参考了前面紧邻的非B帧(I帧或者P帧),但是B帧不可能做后续帧的参考帧,所以如果B帧不进行误差补偿,其漂移误差不会传递到后续的帧;而且尽管B帧没有进行误差补偿,但是参考 中国科学院计算技术研究所博士论文的非B帧进行了误差补偿,因此不会产生较大的图像损失。所以对于B帧既不需要误差补偿也不需要误差累积。2.2漂移误差的自适应控制算法在MPEG码流的转码过程中,误差补偿和误差累积操作都是在8×8的块(block)结构上进行而不是在单个的DCT系数上进行。这就是说,漂移误差的控制也应该建立在整个块上而不是单个的DCT系数之上。迸一步的,转码器通常用在实时性的场合,这就要求漂移误差自适应控制算法应该尽可能的有效和简单,以便在保证合理限制漂移误差的情况下所带来的额外开销也尽可能的小。本文设计的自适应控制算法正是基于以上原则提出。为了描述算法的方便,首先定义如下变量表示整个块的漂移误差blockerror,,'‘block—error--XXlerror(f,州(公式2-8)i=0J一0其中上式中的error(id)表示块中每个点的漂移误差,那么块的漂移误差实际上是块中所有点的漂移误差绝对值之和。根据前面的描述,如果blockP聊小于给定的阈值7ZL表示当前块的漂移误差较小,无需进行误差补偿;否则表示当前块的漂移误差较大,应该进行误差补偿.这实际上给出了一个单阈值的漂移误差控制算法(FAST-1)。不过这个算法过于简单,它可能导致较大的图像损失.因此,本文提出了更为有效的三阈值自适应控制算法(FAST-3)来改善转码后图像的质量。假设预先给定的三个阈值分别是THo、THI和TH2,并且THo>THI>TH2。其中阈值越大表示块越不容易进行误差补偿,反之阈值越小块就越容易进行误差补偿。此外,在算法中还引入新的变量blockcounter进行计数(转码器初始化时所有块的blockcounter都设置为O)。三阈值自适应控制算法具体描述如下:1)首先初始化当前块的块号k=0;2)如果当前块为帧内编码块,需要进行误差累积,令block.counter[k1=0,跳转到第6步;3)当前块为帧间编码块,首先计算当前块对应的阈值TH。假定当前块对应的运动矢量是"以它在参考帧中的对应的参考区域和参考帧中的4个编码块重叠,不妨设这四个块的对应的blockcounter值分别是bl,b2,b3,b4;而交叠部分的面积分别是两,&,毋,&.根据blockcounter值可以得到四个对应的阈值blockTH: 第2章漂移误差自适应的快速视频转码器block—Z珥=THb,,f=l,2,3,4sl岛匿霾毖么刎一S3SJ图2-4、帧间预测编码块进行漂移误差自适应控制时阈值的计算那么当前当前块对应的阈值TH可以有以下两种方法:一平均值法:掰:薹竖:竺:!二兰!,此时得到掰还需要转化成预先一平均值法:丁Ⅳ=型———万—一,此时得到丁日还需要转化成预先设定的三个阈值THo、THI和TH2其中之一:ifTHsTHo.thenTH=THoelse矿TH≤THl,thenTH=磁elseTH=TH2-最大值法:册={block一掰,lsj≥墨,i-l,2,3,4}4)按照公式2.8计算当前块的漂移误差block_error;5)当前块为帧间编码块,修正计数器6fDc置』鲫”耙r【明的值并决定是否进行误差补偿操作,-如果blockerror>TH,需要进行误差补偿;block..counter[k]=block..counter[k]-I矿block—counter[k]2,.thenblock—counter[k]=26)如果还有后续的块,则k=k+l。跳转到第2步;71结束。从上面的算法可以看出,如果blockcounter越大,则所选择的闽值越小,那么当前块就越有可能进行误差补偿操作;反之,block—counter越小,则所选择的阈值越大,那么当前块就越不可能进行误差补偿操作.如前分析,因为预 测编码引起漂移误差传递的缘故,前面很小的漂移误差将被逐级放大,这正是开环结构转码器的图像质量有较大损失的深层次原因。采用上述的自适应控制算法,可以有效的克服漂移误差的逐级放大。2.3实现量化和反量化的查表运算结构MPEG视频编码标准定义了解码器中的反量化(IQ)方法;而对于编码器中的量化(Q)方法在标准中没有给出,它由编码器的设计者实现。在MPEG.2视频编码标准qb[IS095b],定义的反量化(IQ)方法如下:CF=—2x—Q—CiF-xq—mxq,(intracoded)坠壶!罢蚓型!枷删)‘硫。9’其中CF是反量化后得到的DCT系数,而QCF是量化后的DCT系数,g是量化系数,“是8x8量化矩阵中相应的系数,而Sign是符号函数.MPEG视频码流的语法规定,量化矩阵%在编码器设计实现时给出,并且编入视频比特流中;如果没有给出,那么就使用标准中定义的缺省值(如图2.5所示)。此外,符号函数Sign定义如下,跏∽:贮:【-1,工40,那么我们就采用通常的方法计算局和玛,而不采用查表运算;如果蜀在【l,40】范围内,那么就通过查表计算玛和五。一其次,由于量化矩阵可以自己定义,最坏的情况下‰有“种不同的取值,这就使得运算表格需要更大的内存开销。因此,我们希望构造和锄取值无关的表格。公式2.12计算局和公式2.13计算墨都需要对最后的值取整;如果忽略取整运算,那么将公式2.12带入公式2.13,同时注意到扔和粥同符号,可以得到下面的式子,五=兰!:墼加加cD如2x!≥xql+Sign(Xi)x(q,+2xq:).加旭,。。沈(公式2-17)五)。⋯以⋯一⋯2xq2按照公式2一17计算玛就和g卅无关。由公式2-12和公式2·15以及岛和蜀同符号可以得到计算%的式子,五=.(.X..1..x..q.1.-..X...3.x..q..2.)..x.q.—.—l,r—tlr.a—c—ouF一(2x(Xt:盐雩掣型阻砌砒(黼-18)(+五)+鼢瞄)x如+口:))×%。⋯一,⋯⋯~量化矩阵系数q。是公式2-18中的公因子,为了构造和锄无关的表格,我们设定q。=16,然后按照下面的公式计算墨:五:盟:—F2(Xl,16,q—t,q2)xq.(公式2.19)’16、’按照公式2一17和公式2·19就可以构造和铂取值无关的表格;这样通过查 中国科学院计算技术研究所博士论文表可以得到局和X'5,然后进一步通过移位操作可以得到墨。虽然上述公式计算出的局和墨存在误差,但大量实验表明,无论从PSNR值还是从实际的视觉质量上看,所引入的误差是可以忽略的.同时,采用公式2.17和2.19计算局和恐,还可以克服对不同的量化矩阵需要不同表格的困难.此时,无论量化矩阵如何,我们只需要两张表格,分别对应于帧内编码的块和帧间编码的块。InputleveIr一一一一一一一一一一一一一一⋯一一一一一一一一一⋯IfI让Output:levelI图2.7、视频转码器中采用查表技术的重新量化模块结构框图通过以上的简化,无论是帧内编码的块还是帧间编码的块,存储表格需要的内存开销降低到40x31x16x4=79K字节.如此的内存开销无论是软件还是硬件实现都是可行的.因此,采用查表运算结构实现重新量化模块的结构框图如图2.7所示,其中LUT表示查表运算,而w表示公式9中的缩放操作(乘以叮。除以16,显然其中的除以16采用移位操作即可实现).2.4实验结果和分析要验证视频转码方法的有效性,需要从转码速度以及转码后的图像质量两方面来进行比较.为此,我们分别实现了三种不同结构的视频转码器,即开环结构、闭环结构以及我们提出的漂移误差自适应的快速视频转码器结构。实验中所有的硬件平台是P42.4GCPU。256MB的内存。实验中采用了三组视频测试序列,其中Mobile-Calendar和Tempete是704x480@30fps格式的MPEG标准 测试序列,而SmallTrap则取至一段电影预告片,其格是为720x480@24fps.首先,我们将测试序列编码生成lOMbps的MPEG-2视频码流,它们是实验中使用的原始码流。在转码实验中,每段码流都将进行5次不同的转码,每次采用固定的量化参数(QP)进行(其中Mobile.Calendar序列和Tempete序列采用的量化参数分别是14,16,1820和22;而SmallTrap序列所用的量化参数分别是6,8,12,16和20),所有的结果分别列在表格2.1、表格2.2和表格2.3中,同时图2.8、图2.9和图2.10中给出了相应的R-D曲线以方便转码质量的比较。为了公平起见,在闭环结构中,所有的B帧都没有进行误差补偿(如同我们的快速转码器结构).同时,所有转码器的实现都使用了Intel的SIMD指令进行了优化。从表格2.1、表格2-2和表格2.3所列的转码速度值可以看出,我们的快速转码结构不仅在速度上远远超过了闭环结构,而且也略微超过了开环结构.如前所述,转码速度的提高来自两个方面.一方面,在我们的转码器结构中新的编码系数和漂移误差的计算主要通过查表而不是复杂的乘除运算获得,这就极大的降低了转码器的开销,提高了转码器的速度。图2-8中给出了闭环结构和快速转码结构的各个模块所占的开销,从中可以估算出采用查表运算所节约的时间开销。首先,假设闭环结构总的开销是C,而快速转码结构总的开销是F。我们注意到,无论在闭环结构还是在快速转码器结构中,VLD(可变长解码)部分的开销是相同的,因此有下列式子成立,c删218%=F×30.44%≥吾=筹(公式2-20)图2-8、转码器中各个模块的开销百分比 表格2-l、视频序列SmallTrap上不同结构视频转码器性能比较飘蕊瓣飘黼oPEN·4.442443.176748.29266CLoSE4.587343.503539.2770FAST4.540643,482849.4701oPEN3.194240.415152.08798CLoSE3.343541.137241.3793FAST3.308140.845952.8961oPEN2.210038.843754.829612CLoSE2.276839.527744.0885FAST2.273939.418056.1430OPEN1.628837.540456.657216CLoSE1.690838.261545.2318FAST1.674237.909758.5366oPEN1.395436.559857.898320CLoSE1.445937.282246.0440FAST1.415937.079759.2593图2-9、视频序列SmallTrap上不同结构视频转码器R-D曲线图一30— 表格2-2、视频序列Mobile-Calendar上不同结构视频转码器性能比较溺黼鬻飘瓣麓飘oPEN5.95428.44046.547814CLoSE6.17l29.369338.7746FAST5.94429.03752.8949oPEN5.13527.581348.607616CLoSE5.36928.596339.0390FAST5.04428.049354.115loPEN3.53025.473351.981818CLoSE3.93026.932040.1391FAST3.76626.395556.3280oPEN2.68924.146954.084620CLoSE3.06425.649341.4729FAST2.93825.319758.4763oPEN2.20023.522555.452822CLoSE2.52324.801942.35llFAST2.42924.495460.6944图2.10、视频序列Mobile.Calendar上不同结构视频转码器R-D曲线图一3I一 表格2·3,视频序列Tempete上不同结构视频转码器性能比较震蕊黼黧斓瓣oPEN4.39l30.605249.515214CLoSE4.65431.765340.0127FAST4.47731.372655.6696oPEN3.67729.641050.987816CLoSE3.86230.854340.8325FAST3.62830.365258.0466oPEN2.43628.063354.582618CLoSE2.63329.288542.5706FAST2.58728.837762.8906oPENI.99727.168055.93lO20CLOSE2.14528.241942.4809FAST2.07927.865663.6085oPEN1.73126.543756.764422CLoSE1.85327.474243.5055FAST1.82327.01965.2857图2-11、视频序列Tempete上不同结构视频转码器R-D曲线图 在闭环结构中,重新量化部分(IQl,Q2,10.2)的开销是Cx52.52%;在快速转码结构中,重新量化部分的开销是Fx39.79%,那么,垦丝孚:业。丝口0.5421(公式2-21)Cx52.52%30445252即是说,快速转码结构中重新量化部分较闭环结构大约节省了一半的开销.另一方面,快速转码结构速度的提高还来自于有选择的对P帧的块进行误差补偿操作。在快速转码器结构中每一个P帧仅有部分块进行了误差补偿操作,在实验所用的两个视频序列中这些块大约仅占50%,即是说,另有50%的块不需要误差补偿操作.如果块进行了误差补偿操作,那么无法利用查表结构进行新的编码系数和漂移误差的计算,反之就可以利用查表结构进行相应的运算.由此可以看出,自适应的漂移误差控制方法极大降低了P帧转码的复杂度,也就提高了P帧的转码速度.而在一个MPEG编码码流中,P帧是大量存在的,比如如果GOP结构是(N=15,M-3),即GOP长度是15,相邻非B帧的距离是3,这时I帧的比例为1/15=6.67%,而P帧的比例是4/15=26.66%,B帧的比例是10/15=66.67%;又如GOP结构是(N=15。M=1),这时没有B帧,则I帧的比例为1/15=6.67%,而P帧的比例更是高达14/15--93.33%。这说明提高P帧的转码速度将明显提高整个转码器的速度。综上所述,快速转码结构必将远远快于闭环结构,同时因为查表运算是如此有效,它也将略微的领先于开环结构。实际上我们可以看到,查表结构也可以运用在开环结构中,这样开环结构的速度就是三者中最快的了。图2.9、图2.10和图2.1l所示的R-D曲线图给出了三种不同结构的转码器转码后图像质量的比较.显然,我们的快速转码器结构无论是采用单阈值自适应控制算法.(FAST-1),还是采用三阈值自适应控制算法(FAsT.3),在图像质量上都比闭环结构低,这主要是因为P帧只有部分块进行了误差补偿。不过,其中的三阈值自适应控制算法(FAST-3)最大的损失不超过0.2dB,而且两种自适应控制算法都好于开环结构;同时,快速视频转码结构较闭环结构在速度上有了巨大的提高,甚至超过了传统的开环结构。因此,综合权衡转码的速度和转码后的图像质量,我们的漂移误差自适应的快速转码结构应该说比闭环结构和开环结构具有更好地性能,能够更加有效地实现实时转码的需要。同时我们注意到,如果P帧中有更多的块不进行误差补偿,那么就有更多的块采用查表结构进行转码,因而转码器的速度将更快。极端地,如果P帧中所有的块都不进行误差补偿,快速转码结构就退化成为开环结构,但是由于查 表结构的使用,它将快于传统的开环转码结构.反之,如果P帧中有更多的块进行了误差补偿,那么也有更多的块不能采用查表结构进行转码,因而转码器的速度将更慢.极端地,如果P帧中所有的块都进行误差补偿,快速转码结构就成为闭环结构.由此可见,通过调整P帧中进行误差补偿的块的数目,可以达到调整转码器复杂度的目的,这实际构造了一个复杂度可分级的视频转码器。这样一个复杂度可分级的视频转码器有很多实际的应用。比如,如果提供视频转码服务的处理器很忙,这时用于视频转码服务的处理器时间开销比较少,那么我们就降低视频转码器的复杂度,其效果是提高了转码速度并降低转码后的图像质量,这样将比因为转码器处理能力不足造成丢帧更为合理;相反地,如果处理器比较空闲,则提高视频转码器的复杂度,其效果是降低速度而提高转码后的图像质量。显然,这种复杂度可分级的视频转码结构的应用,可以使处理器更为有效地分配负载实现多种多媒体服务.我们的复杂度可分级的视频转码器可以按照以下方案实现:-如果处理器分配给视频转码的时间足够多,那么就使用闭环结构:_如果处理器分配给视频转码的时间低于某个阈值,那么B帧使用开环结构,而P帧和I帧使用闭环结构;_如果处理器分配给视频转码的时间更少,那么就使用我们的漂移误差自适应的快速视频转码结构;_如果处理器分配给视频转码的时间只够开环结构,视频转码器:_如果处理器分配给视频转码的时间不够开环结构,-最后,只转码I帧,丢弃P帧和B帧。2.5小结那么就使用开环结构的那么就丢弃B帧;一般地,实现MPEO视频流码率缩减的转码存在开环结构和闭环结构两种不同的转码器结构,它们在转码速度和转码后的图像质量上各有优缺点.本文提出了一种漂移误差自适应的快速视频转码结构,在转码速度和转码后图像质量两者问有了更好的折衷。首先,通过漂移误差的自适应控制,在块级别而不是在帧级别决定是否进行误差补偿操作,这样节省了闭环结构中误差补偿环路的开销,降低了转码器的复杂度。其次,通过查表运算结构以实现快速的量化和反量化操作,大大降低了重新量化模块的复杂度,极大的提高转码器的速度。实现结果表明,漂移误差自适应的快速视频转码器能够以比传统开环结构更快 第2章漂移误差自适应的快速视频转码器的速度进行转码,而且转码后的图像质量远好于开环结构,且较闭环结构最多不过0.2dB的下降。此外,如果我们有选择的设定漂移误差自适应控制算法中的阈值,我们就能调整转码器的转码速度和转码后的图像质量,从而构造一个复杂度可分级的转码器结构,这就使得我们甚至可以根据视频服务处理器的负荷合理地选择转码的速度和质量,极大的提高视频转码实时适应环境的能力. 中国科学院计算技术研究所博士论文第3章面向DVD存储的MPEG转码方法随着数字视频技术和网络通信技术的发展,通过网络传输获得数字视频数据已经成为人们日常生活中必不可少的内容.在中国的广播电视领域,电视台内部的节目制作和电视台间的节目传送已经实现了数字化;而从电视台到最终用户的电视节目数字广播(DVB:DigitalVideoBroadcasting)也正在全面展开I郑97,刘98,中国98】.与此同时,各种影视节目的数字发布完全采用了数字视频光盘(DVD:DigitalVideoDisk)格式,DVD光盘机已经深入千家万户.一般的,电视节目是实时播出,而用户往往会因为各种各样的原因希望将自己感兴趣的节目存储下来以便日后观看。在以前,这可以用磁带录像机实现;但是现在,用户更希望存储的节目能够使用已有的DVD光盘机观看,即是说,需要将数字广播的电视节目存储成DVD光盘机能够识别的DVD光盘格式。在实际的使用中,数字电视广播(DVB)所用的是MPEG.2传输流(TS:TransportStream)格式,而数字视频光盘(DVD)使用的是MPEG.2节目流格式(PS:ProgramStream)IIS095al;这就是说,将DVB广播的电视节目保存为DVD存储格式,这实际是一个系统级别的MPEG转码过程。通常,DVB传输流中的视频码流是码率较高的固定码率(CBR:ConstantBitRate)的比特流;而DVD节目流中的视频码流是可变码率(VBR.-VariableBitRate)的比特流,又因为主要供用户个人存储观看,所以应该使用较低码率节约存储空间.综上所述,从DVB传输流到DVD节目流的系统级别的MPEG转码其核心就是将高码率的CBR视频码流转码为低码率的VBR视频码流。针对这一问题,本章提出了两种不同的解决方案,即离线脱机的VBR码率控制方法和在线实时的VBR码率控制方法实现CBR视频码流到VBR视频码流的转码.本章的其余部分按照如下方式组织:在第一节中讨论了传输流到节目流的系统级别的MPEG转码方法;在第二节给出了离线脱机的VBR码率控制方法;在第三节给出了在线实时的VBR码率控制方法;实验结果和分析在第四节给出;最后进行了总结。3.1传输流到节目流的系统级别转码方法MPEG-2编码标准的系统部分[IS095a,钟97]定义了两种不同的系统码流格式:传输流(TS:TranspoftStream)和节目流(PS:ProgramStream); 第3章面向DVD存储的MPEG转码方法它们对视频和音频比特流数据进行封装,使得视音频数据能够可靠的传输和同步的回放(如图3.1所示).当视频和音频数据经过编码器(Encoder)编码后,输出的比特流是基本流(ES:ElementaryStream);然后基本流数据进入打包器(Packetizer)打包分装成数据包,这些数据包形成的比特流称为PES(PackctizedElementaryStream);最后视频和音频PES码流在节目流复用器(PSMux)内复用生成节目流,在传输流复用器(TSMux)内复用生成传输流.。图3-1、MPEG.2系统总体框图ProgramStreamTransportStream在生成传输流和节目流的过程中,为了能够在解码端同步的回放视频和音频数据,需要在打包生成PES码流以及PS复用和TS复用中,加入相应的时钟信息.在PES码流中的时钟信息称为时间戳(Timestamp),存在两种类型的时间戳:解码时间戳(DTS:DecodingTimeStamp)和显示时间戳(PTS:PresentationTimeStamp).对于音频PES码流,每个音频帧的解码时问戳和显示时间戳是相同的;但是对于视频PES码流,如果存在双向预测编码的视频帧(就是存在B帧),那么作为参考帧的I帧或者是P帧它们的解码时间戳和显示时间戳往往不同.在Ps码流中的时钟信息是SCR(SystemClockReference),而在TS码流中的时钟信息是PCR(ProgramClockReference),它们是复用时使用的基准时钟信息,在解码端用于校正系统的基准时钟信息. 中国科学院计算技术研究所博士论文一般的,在数字电视广播(DVB)中使用的是固定码率的传输信道,因此DVB传输流是码率恒定的压缩比特流,对于标清格式(SD),通常是5~6Mbps的CBR码流。而在数字视频光盘(DVD)使用的节目流中,视频码流通常是可变码率的压缩比特流,这是因为在相同的码率下,VBR码流中各帧的图像质量更加平滑一致,对于人眼来说具有更好视觉质量[WRG99,YZWC011.此外,如果将DVB节目存储成DVD格式方便用户今后的观看,那么不需要较高的码率。因此,要将DVB传输流转码成DVD节目流,往往需要将高码率的CBR码流转码成低码率的VBR码流,而音频码流不做任何变换,直接送入DVD节目流复用器中和视频转码后生成的VBR视频码流复用.图3.2给出了将DVB传输流转码生成DVD节目流的整个过程,其中包括以下三个步骤:1)首先传输流经过TS解复用器解码得到视频PES码流和音频PES码流;2)然后视频PES码流经过PES解复用器解码得到CBR视频基本流,将它送入视频转码器中进行转码,得到的VBR视频基本流传送到PES复用器;同时视频PES码流中的时间戳信息DTS(解码解码时间戳)和PTS(显示时间戳)也一并送到PES复用器;经过PES复用器之后得到转码后的视频PES码流,而且原来的时钟信息也得到保存;3)最后转码生成的VBR视频PES码流和解复用得到的音频PES码流经过节目流复用器重新合成节目流以便实现DVD存储.VideoIJl0.r10VideoPES。一瞬豳嗍1rPES—◆解复复用-●■瀚流薹羹用器一豳器CBRVBR复节用目一VideoESVideoES器流AudioPES图3.2、DVB传输流到DVD节目流转化的系统框图在上面的这个系统级别的转码过程,最核心的问题是将高码率的CBR视频码流转换为低码率的VBR视频码流,这个问题实际也是一个码率缩减的视频转码问题,第2章中提到的开环结构视频转码器、闭环结构视频转码器 以及漂移误差自适应的快速视频转码器都可以使用来解决该问题。所不同的是现在要实现CBR视频码流转换为低码率的VBR视频码流,因此,最关键的任务就是设计一个视频转码器中的VBR码率控制算法。事实上,码率控制不仅是视频转码,也是视频编码中的关键问题。文献中有大量的关于视频编码的码率控制算法的文章[CP94,DL96,KF97,L098,REJG99,CL99,TDP00l,这些算法经过适当的修改都可以应用到视频转码中.不过,因为视频转码中原始码流的信息可以利用,因此视频转码的码率控制算法总是希望能够借用这些信息帮助实现转码过程中码率控制。在视频编码标准的制定中,虽然码率控制不在标准范围内,但是在标准的参考软件中都给出了可供参考的码率控制算法,这些算法连同它们的若干改进和扩展构成了视频编码以及视频转码码率控制算法研究的基础,其中影响最大的是MPEG.2视频编码标准的TM5码率控制算法[IS093b,LH98l,MPEG.4视频编码标准的VM8码率控制算法[IS097,CZ97】,以及H.263视频编码标准的TMN8码率控制算法1CL991。一TM5码率控制算法:该算法分成两部分:首先在GOP范围内根据R-D模型分配各帧的耳标比特数,然后在帧范围根据缓冲区的状态给定各个宏块的量化参数保证编码生成的比特数和目标比特数一致。整个控制算法基于以下的假设;1)图像失真度D和量化参数q之间符合线性关系,即q越大,D就越大。2)为了保证各帧的图像质量一致,l帧、P帧和B帧的量化参数q卜qP和qB满足以下的关系,旦L:堡:垒(公式3.1)、kPkB其中kP和kB是常数,它们的缺省值分别是1.0和1.4。3)码率R和图像失真D之间的成反比例关系,R口D=X(公式3.2)1上式中的x是一个常数,它可以描述编码的复杂度,R和÷是线性关U系,这是一个一次R-D模型。一VM8码率控制算法:TM5码率控制算法中的R-D模型过于简单,因此精确度不过高.在MPEG.-4视频编码的制定过程中,一个二次关系的R-D模型被提了出来[CZ971,并且被应用到参考软件VM8.0中.VM8码率控一39— 中国科学院计算技术研究所博士论文制算法基于下面的假设:1)相邻的同类型的视频帧具有一致的率失真关系;2)码率R和量化参数q之间满足下面的二次关系,R(q)=a。q一+bxq-2(公式3.3)_TMN8码率控制算法:TMN8码率控制算法是H.263视频编码标准参考软件中实现的码率控制方法。该方法采用的R.Q模型如下,R(q)--尹Ig:(P盯2In2q2盯2I一>Ye(公式3.4)上面的式子实际上来源于经典的R.D公式[Ber984】。不管采用什么率失真模型,所有的码率控制问题都可以归结为在额定的码率条件下达到最低的图像失真度.一般的,视频编码系统可以工作在两种模式下:固定码率(CBR)模式和可变码率(VBR)模式.在固定码率模式下,输出的视频压缩码流的码率是恒定的,但是图像质量有较大的起伏变化:而在可变码率模式下,输出的视频压缩码流的码率是可变的,但是可以使图像质量变化起伏较小。由于许多数字视频应用限制在固定带宽的情形下,而且固定码率的视频编码系统比较容易实现,因此,固定码率的编码方法得到广泛的应用。但是,固定码率的编码方法并不能得到最好的编码性能,这主要表现在它的图像质量是可变的,同时它的编码效率也是低效的.相反,可变码率的编码方法能够基于视频帧不同的编码难易程度在各帧之间合理分配有效的编码比特,因此它能够获得较为一致的图像质量,同时也能提高编码的效率.但是,为了能够尽可能最优的分配有效的编码比特,一般必须有关于视频序列的编码复杂度信息,这就使得可变码率的编码通常需要进行多次编码(比较普遍采用的是两次编码的方案),这就限制了可变码率编码模式的应用。在面向DVD存储的转码应用中,我们既可以先将原始的传输码流先存储下来,然后脱机进行节日流转换,因此可以使用多趟编码的VBR码率控制策略.更一般的,我们希望做到实时在线的视频转码,因此我们也需要研究实时的VBR码率控制算法.矿●一知i≤,一矿王矿矿2, 第3章面向DVD存储的MPEG转码方法3.2离线脱机的VBR码率控制算法.离线脱机的VBR码率控制算法适用于先将DVB传输流存储下来,然后在转码到DVD节日流的应用场合。事实上,我们开发的VBR码率控制算法同样适用视频编码,因为视频转码器中的码率控制实际是在编码部分实现的.心理学研究结果证明,人类的视觉系统更适应于具有一致视觉质量的视频序列。即是说,一个视频序列具有较高的平均PSNR,但是PSNR波动很大,在视觉质量上讲不如平均PSNR较低,但PSNR波动较小的视频序列.固定码率的编码方法为了获得恒定的码率,其PSNR一般波动较大,相反,可变码率编码方法通过使码率波动来达到尽可能一致的视觉质量.因此,可变码率的编码方法在家庭娱乐和休闲等应用环境得到广泛的应用,比如因特网上的流媒体服务,视频DVD光盘以及VOD点播服务.因为视频序列由具有不同编码复杂度的视频场景组成,为了获得一致的视觉质量,必须根据不同的视频场景合理分配有效的编码比特.对于编码复杂性较高的视频场景,将分配较多的比特,这样它们的视觉质量能够保持在较高的水平;而对于编码复杂性较低的视觉场景,将分配给它们较少的比特,但是它们的视觉质量不会有太多的下降.同时在比特分配的过程,要考虑平均比特率要求以及缓冲区的限制.通过这样的比特分配,最终能够达到在较为一致的视觉质量同时平均的视觉质量也比较好。因此,可变码率编码通常都需要进行多次编码,其中前面若干次的编码是预先获得视频序列中各帧的编码复杂度信息以便进行有效比特的分配,然后在最后一次编码中按照计算出的分配方案进行实际的可变码率编码。我们可以按照如下方式形式化的描述上述的可变码率编码问题。假设编码的视频序列由Ⅳ个视频帧组成,第再个编码的视频帧对应有三个编码参数(R。QkJ[k),这里凡表示编码视频帧的比特数,G表示编码视频帧的平均量化参数值,而风表示编码视频帧的失真.整个视频序列的平均失真D以及失真的方差cr2表示如下:石:百l∑N见Ⅳ鲁”盯::一1∑NN(乜一百)2鲁、“7(公式3.5)(公式3-6)可变码率编码算法的目标是在满足平均码率要求和缓冲区限制的条件下使平均失真五以及失真方差or2都尽可能的小.平均失真五尽可能的小,视频序列 具有较高的平均视觉质量;失真方差cr2,视频序列具有较为一致的视觉质量.因此,可变码率的编码问题可以表述为以下的最优化问题:[R*yQ*,D‘]=arg聊rain(历,盯2)满足。亩善疋s%这里Q表示编码视频帧量化参数的集合,它可以表示为:Q=【Ql,Q2,⋯,QⅣ】R表示为编码视频帧的编码比特数的集合,它可以表示为:R=陋,马,⋯,粕】D表示为编码视频帧失真的集合,它可以表示为:D=【Dl,D2,⋯,D。】(公式3.7)(公式3-8)(公式3-9)(公式3.10)R。。表示编码的比特流的平均码率.上述最优化问题没有列出缓冲区限制条件,它在实际的编码过程中考虑。求解上面的最优化问题可以得到可变码率编码中每帧的目标比特数,然后在实际编码过程结合缓冲区限制条件以及实际生成的各帧比特数,动态调整各帧的量化参数,使得生成的视频编码比特流和标准兼容。一般的,大多数实际可行的系统求解上述最优化问题时都朵用了如图3.3所示的两次编码方案:第一趟预编码获取各个视频场景的编码复杂度信息,然后根据这些信息进行合理的编码比特数分配,最后根据求得控制参数进行实际的编码ITR97,HVL97,WRG99。YZWC01l·Contorl图3—3、两趟编码的VBR码率控制算法框图 在文献[TR971中,Teixeria等人设计了一个两趟编码的MPEG视频编码系统.在第一次编码阶段,视频序列使用固定的量化参数进行编码,同时提取出有关视频序列的编码特征信息。然后,基于提取出的编码特征信息,分析生成第二次编码需要的码率控制参数。最后,第二次编码使用分析阶段的参数控制实际的视频编码过程,最后的得到的视频比特流在视觉质量有较好的提高。这个方法在第一阶段需要提取的视频序列信息较多,同时文章没有明确给出实际的比特流控制算法。文献[HVL971提出了一种基于宏块级别的两次编码算法.每个宏块视觉质量定义为宏块的量化参数和某个视觉因子的乘积。然后对整个序列所有的块采用字典排序以便第二次编码进行基于宏块的比特分配,在此过程中考虑了信道和缓冲区的限制。该算法复杂度太高,特别是对于长的视频序列.文献[WRG99l中,Westerink等人提出了基于视觉质量的两次编码的可变码率编码算法。第一次编码采用固定码率编码方法以提取视频序列的编码复杂度信息.然后基于大量的测试序列的构造了视觉质量模型,并给出模型的经验公式.第二次可变码率编码的目标比特分配基于此视觉模型进行。由于不同的视频序列表现出不同的视觉特性,根据测试序列构造出的模型可能不能很好的适应不同的视频序列。文献[YZWC011考虑的可变码率编码算法面向给定存储容量的应用,它也采用了两次编码方案.在第一阶段,采用固定量化参数编码方法提取关于相应的编码信息,为了减小第一次编码的编码强度,在编码的运动补偿中用原始视频帧取代重建的视频帧。基于得到的编码信息,构造了一个R-Q函数。然后根据此R-Q函数在比特率限制和缓冲限制条件下为第二次编码分配目标比特数.根据分配的目标比特数,可以从R-Q函数计算出采用的量化系数的值.本算法根据TM5固定码率控制算法中的经验公式计算目标比特数,防止缓冲区上溢和下湓的方法比较复杂.本节中的可变码率控制算法可以分为以下四个步骤:酋先使用固定量化参数编码视频序列提取视频序列相应的编码复杂度信息;然后根据编码复杂度信息,进行合理的比特分配从而计算出第二编码中用到的编码参数的值;第三步给出在第二次可变码率编码过程中满足缓冲区限制的方法;最后结合计算的编码参数值和缓冲区限制方法,动态调整编码参数以便生成可变码率的视频比特流。3.2.1第一次视频编码第一次视频编码使用固定的量化参数,目的是提取视频序列相应的编码——43— 中国科学院计算技术研究所博士论文复杂度信息.由于存在多种可能的量化参数选择,使用所有这些参数就必将导致同样次数的编码。即是说,如果有工个可选的量化参数,就要进行工次编码.例如MPEG.2视频编码中选用MPEG.2的量化参数或者MPEG.4视频编码中选用H.263的量化参数,可选的量化参数个数L=31,都需要进行31次编码。文献[YZWC01l中提出,在运动估计过程中采用原始图像而不是重建的图像进行计算,可以将工次编码的强度下降到和1次编码的强度相当。事实上,我们可以朵用视频转码的方法,只进行一次的编码,然后其余的编码都是经过视频转码得出,那么编码的强度会进一步的降低。如果是在视频转码中的VBR算法,因为已经有原始的码流,因此所有的编码过程都可以基于转码得出.经过这样£趟的编码过程,每一个视频帧将对应工组不同的编码信息,这样实际构成如下一个表格:表格3.1,离线脱机VBR码率控制算法中的各帧的编码信息隰瑟懑鬻黼懑黧E(R。I,圳(R.2,研)(胄:,叫)(胄÷,讲)五(趟,趔)(霹,珥)(琏,叫)㈣,磷)E(砖,或)(群,研)(《,砭)(砰,讲)R(硝,珥)(娘珥)(尺:,珥)(R:,砩)在上面的表格中∥,2o矿表示L个可供选择的量化参数,而(硝,叫)表示第厅个编码帧在使用第,个量化参数编码时的所用的编码比特数和失真。使用32比特数据存储R并使用32比特数据存储D,可供选择的量化参数个数L一31,那么2个小时、帧率为30fps的节目需要的存储空间为 2x60x60x30x8X31=53.568MB,它不到原始视频序列所需存储空间的O.05%。上面的表格实际上给定了R,Q以及D这三个编码参数之间的关系,它即是所需要的编码复杂度信息。在下面的算法描述中,通过使用这个表格,可以查表估算出相应的编码参数值。此外,我们可以使用【L0981使用的样条插值方法来简化表格3.1的计算.例如MPEG-2的视频编码中有31个量化参数,我们只选用了其中的肘个量化参数进行编码(比如M=5,选择的量化参数分别是l,5,10,16,23,31),那么我们只能得到表格中这几个量化参数对应的R和D值;但是,我们使用如下的样条插值方法可以求得其余量化参数所对应的R和D值。如图3-4所示,定义三次样条插值函数如下,RZ(工)=q既3+匆既2+cf陆+4(公式3-11)DQ图3-4,样条插值计算相应R和D值其中/=1⋯2一,M-I,那么总共有M-1个三次样条插值函数分别对应曲线图中的肛I段.对于每个样条插值函数,它的四个待定参数q、b.、cj和函使用四个点(‘-.,."-.),“,只),(葺。只+.)和(‘。儿:)使它们满足下面的两个限制条件就可以求得.-“,咒)和(k.,只+.)是对应曲线段的端点,因此可以将它们代如公式3一ll得到下面的式子,乃=qD亍+包D乎+e啦+Z(公式3-12) 中国科学院计算技术研究所博士论文咒+I=q凸0l+匆既三I+c啦“+Z(公式3-13)·一阶导数在端点处连续,即是说在点“,M)处满足,Z‘(‘)=正.(‘)=丛二堕(公式3-14)工,+I一而一I根据样条插值函数的定义(公式3.11),它的一阶导数是,彳“)=3#啦+2‘哦+q(公式3-15)这样根据公式公式3.14和公式3.15,有以下两个式子成立,3矸啦+2‘嘎+q=.YI+I--Yt-I‘+I一‘~13善五瓯+2薯+I哦+q=Yt+2一Yi‘+2一玉(公式3-16)(公式3-17)将公式3-12、公式3-13、公式3-16和公式3-17联立就可以求解四个参数。我们可以按照如下的方法简化上面的计算过程,首先定义,z(x)=』土‘“一‘并且将样条插值函数重新定义为,(公式3-18),(z)=q&3+包匝2+q&+Z(公式3-19)那么其中的四个参数函、6卜白和4按照以下的式子计算得到:码=(‘q一‘)[占也^“一^』-l以=(薯。一X)口YI+2--Yt.X1+2一‘e=yt“一yt—dtg=以一面q=g-2e色=3e-gcI=d。dI=yt(公式3-20)(公式3-21) 第3章面向DVD存储的MPEG转码方法3.2.2目标比特分配目标比特分配实际是要解决公式3.7中提出的最优化问题,根据3.2.1节中得到的R,Q’,D关系表格,解决上述最优化问题变成一个组合问题,采用全局搜索求得最优解的其搜索空间大小:兀£=∥,(公式3.22)显然,上述全局搜案方法的时间复杂度为指数阶,当视频帧数Ⅳ很大时利用现有的机器计算能力是不可解的,必须粟用近似算法求解。同时注意到得到的目标比特数仅是一个标定值,实际编码过程中要不断根据实际生成的比特数调整量化参数以满足平均码率要求和缓冲区限制,因此能够得到一个足够好的次优解就能很好解决问题。本文朵用下面的方法求解目标比特数,实验表明该方法是有效的(参见3.4.1节的实验结果和分析)。具体算法描述如下;a)对于第一个视频帧,它的三个编码参数按下式给出,[RI(1),Qs(1),Dl(1)]=[科,纠,叫];b)对于第疗个视频帧,它的三个编码参数可按照下是求得,[R(1),Q(1),乜(1)]=[《,包,砭]=argm。。i。nlq一科I:通过搜索R.Q.D关系表中第甩个编码帧对应的行,即可求解。c)按照步骤2处理完整个视频序列,则可以得到一个编码控制参数集合。由于有三个不同的量化参数,这要的编码控制参数集合总共有£组,墨={[曷(七),Ql(七),Dl(后)],⋯,[疋@),Q(七),乜(t)]},l2,△叮=24)第.,个宏块对应的量化参数值为%+却.3.3.3码率控制算法根据上面的描述,本文提出的用于将CBR视频流转化到VBR视频流的VBR码率控制算法可以表述如下:1)将CBR视频流前面的形帧图像存储到滑动窗口缓冲区中,同时提取出各帧图像相应的编码比特数和平均量化参数值,它们可以表示为以下的式子。£={(蜀.QI),(岛.Q),⋯,(以.Qo)}.如表示剩余未分配的比特数,其初始值为整个VBR视频流的目标比特数%.Ⅳ膈表示剩余未转码的图像数,其初始值为视频流的全部图像数 中国科学院计算技术研究所博士论文2)从滑动窗口缓冲区中取出第一帧图像进行转码,根据3.2.1节的描述,可以计算出该帧图像的目标比特数T以及量化参数的参考值如。堡res里.~呻汜卜南呻(Ql卜惹黔∑R心)4Ⅳ埘∑R(Q)’%;华:靠:掣Ⅳ肼∑R(Q)43)根据3.2.2节的描述计算出各个宏块的量化参数值。当所有的宏块都转码完毕,当前图像转码生成的实际比特数为足。4)将滑动窗口缓冲区中的第一帧图像移出,同时从CBR视频流中取出下一帧图像放入缓冲区中,该帧图像的编码比特数和平均量化参数值分别为尼和Q.按照下面的式子更新缓冲区信息L,剩余比特数‰以及剩余转码的图像数Ⅳ埘:R=足。Q=Qf+.(扛l,2,⋯,W-I)Rw=足,甄=QBm=Bm—R.,Nm=N。一、5)重复步骤2,3,4,直到所有的图像都转码完毕.3.4实验结果和分析我们分别设计了两组实验来验证本章提出的MPEG系统级别的视频转码方案:其中第一组实验用丁=测试离线脱机VBR码率控制算法的性能;第二组实验用于测试在线实时的VBR码率控制算法的性能。 3.4.1离线脱机VBR码率控制算法的实验实验中桀用的视频转码结构是我们提出的漂移误差自适应的快速视频转码器;为了便于比较,首先将TM5码率控制算法[IS093bi俐转码器中实现将高码率的CBR视频码流转码成低码率的CBR视频码流,然后使用本章提出的离线脱机VBR码率控制算法实现将高码率的CBR视频码流转码成低码率的VBR视频码流.实验所用的测试视频序列由多个标准的MPEG测试视频序列剪切、拼接而成,这样做的目的是使视频序列由多个不同的场景组成,以便验证可变码率编码算法的性能。这样的测试视频序列由两个,它们对应的编码参数如表格3.2所示.首先将它们编码成为8Mbps的CBR视频码流,使用的编码参数也如表格3.2所示,然后这两个8Mbps的CBR视频码流将分别进行可变码率转码,转码过程中使用的平均码率分别6Mbps,5Mbps,4Mbps,3Mbps:粤此同时,这两个8Mbps的CBR视频码流也将进行相同码率下的固定码率转码。表格3.3和表格34给出了这两种情况下两个测试视频序列的PSNR的平均值和均方差;图3-6和图3.7给出了相应的PSNR曲线图。表格3.2、离线脱机VBR码率控制算法实验中所用的测试视频序列从表格3.3和表格3-4可以看出,VBR码率控制算法在PsNR平均值高于CBR码率控制算法,同时VBR码率控制算法的PSNR均方差远远低于CBR码率控制算法。更高的PSNR平均值表明具有更好的平均视觉质量,而更低的PsNR均方差表明视觉质量更为一致.因此在视频转码过程中,本章提出的CBR转换到VBR的码率控制算法较CBR转换到CBR码率控制算法具有更高的视觉质量,更好的编码效率。当然,因为离线脱机VBR码率控制算法需要多趟编码,所以算法的复杂度很高,不适合实时的应用场合。图3-6和图3.7给出的PSNR凸线图也反映了这一实验结果.这两个测试序列都由5个不同的场景组成,每个场景都50帧.在CBR编码过程中,各个不同的场景编码所用的比特数大致相同,但是它们所有的平均PSNR值是 中国科学院计算技术研究所博士论文不同的.在编码所用比特大致相同的情况下,平均PSNR越高,说明编码所产生的失真越低,即是说其编码复杂度越低。从图3-6的CBR编码对应的PSNR曲线可以看出,测试序列l中的5个场景按照编码复杂度由低到高依次排列分别是场景4(第150帧~第199帧)、场景2(第50帧~第99帧)、场景3(第100帧~第149帧)、场景l(第0帧~第49帧)、场景5(第200帧一第249帧):而测试序列2中的5个场景按照编码复杂度由低到高依次排列分别是场景2(第50帧一第99帧)、场景l(第0帧一第49帧)、场景3(第loo帧~第149帧)、场景5(第200帧一第249帧)、场景4(第150~199帧)。根据本文提出的VBR编码准则,在VBR编码中,编码复杂度较低的场景,例如测试序列l的场景4和场景2,以及测试序列2的场景2和场景l,分配了较低的比特数,它们的平均PSNR较CBR编码降低了;而编码复杂性较高的场景,例如测试序列l和场景1、场景3和场景4,测试序列2的场景3,场景4和场景5,分配了更多的比特数,它们的平均PSNR较CBR编码提高了。这样一方面,整个编码序列的平均PSNR较CBR编码有了一定提高,同时PSNR曲线较CBR编码平滑了许多,这表明VBR编码比CBR编码具有更好的视觉质量。图3.7的VBR编码的PSNR曲线都反映了这一点。表格3-3、测试视频序列I在不同码率下的PSNR.的平均值和均方差表格3-4、测试视频序列2在不同码率下的PSNR的平均值和均方差编码码流的平均CBR编码的VBR编码的CBR编码的VBR编码的码率fbps'PSNR平均值(dB’PSNR均方差6M37.9938.454,460.8l5M37.0437.494.390.704M35.9136.204.33O.503M34.3834.594.310.47 第3章面向DVD存储的MPEG转码方法050100i50rr-删图3-6、测试视瑚2∞0幻Ff●-‘频序列l在不同码率下的PSNR曲线图050100l∞2∞:∞,ootz一图3.7,测试视频序列2在不同码率下的PSNR曲线图“∞冀弘勰孔台3譬臣“∞跖驼箱“mP一譬芷“∞饕豫∞孔啦P—l“时拓"勰“写一重瑟。}非“∞鞴轺嚣孔靶船“∞跖∞∞a日P】受蟹曼薹雎=i拈“∞跖"∞“珏拈“∞:I:∞∞“曼zt芷目一誊足||瑚渤兰∞ 中国科学院计算技术研究所博士论文3.4.2在线实时VBR码率控制算法的实验在线实时VBR码率控制算法实验,选取了四段不同的视频序列。其中序列l、2,3由多段不同的MPEG标准测试序列拼接而成,而序列4裁取自一段实际的电影片花.这些序列的格式参数如表格3.5所示。首先,这些视频序列被编码成6Mbps的CBR视频流,然后将它们转码成平均码率为3Mbps的VBR视频流。为了比较,6Mbps的CBR视频流也被转码为3Mbps的CBR视频流(这时候籴用全解全编结构,CBR码率控制算法可以采用TM5码率控制算法)。转码生成的CBR视频流和VBR视频流的平均PSNR值也列在了表格3中。图3.8给出了各个序列每帧图像的PSNR变化趋势图。从实验结果可以看出,转码后生成的VBR视频流比CBR视频流有更好的图像质量。本章的在线实时VBR算法之所具有较好的性能,主要是充分应用了原来CBR视频流中的编码信息,在目标比特分配阶段进行了更为合理的比特数分配:同时,在码率控制阶段,还利用已有的宏块编码信息进行率失真优化以便尽可能降低失真.一般的,要进行VBR码率控制,需要整个序列的编码复杂度信息,但是对于这样在线实时的转码存储应用是不可能预先知道后续帧的信息的。因此,本章设计的在线实时VBR算法只是在较小的范围内(滑动窗口范围,0.5秒时间)进行了比特数的调整,这虽然只能得到一个局部优化的结果;但是,它能够适应在线实时转码的需要,而且图像质量有了较大的改善。因此,本文的VBR码率控制算法是行之有效。我们注意到,用于对比的CBR视频码流朵用全解全编的串联结构,转码之后的图像质量不受漂移误差的影响,因而具有最好的图像质量,但是转码复杂度最高.而朵用我们提出的转码结构和VBR控制算法生成的VBR码流,不仅得到的图像质量比全解全编结构的CBR码流具有更高的PsNR值,而且转码的速度更快。因此,我们的视频转码方案是适合这种在线实时的DVD存储应用的。表格3.5、在线实时VBR码率控制算法的实验结果黼蕊鬻纛瓣骂鞭醪鬻聱鞭,黪麟裂襟鹣嬲翅翰《;。,醯。毪,戳吒也鼍敬。(dB)X。惫囊视频序列1720×4803025032.1532.56视频序列2720×4803025034.0334.63视频序列3720x5762520028.6l29.3I视频序列4720x4802450039.6340.40 (a)视频序觅1(c)视频序魏2(b)视频序魏2(d)视频序觅4图3.8、在线实时VBR码率控制算法中各个视频序列的PSNR曲线图3.5小结本文提出了一种系统级别的MPEG转码方法,它的目的是将数字电视广播所用的MPEG.2传输流转化成数字视频光盘所用的MPEG.2节目流。在这一转码方法中,其核心问题是将高码率的CBR视频流转码为低码率的VBR视频流。首先,我们选用了第2章提出的漂移误差自适应的快速视频转码结构,该转码器结构具有比传统开环结构更快的转码速度,同时转码后的图像质量也接近传统的闭环结构。其次,我们设计了两种不同的VBR码率控制算法,以实现CBR视频码流到VBR视频码流的转码。第一种VBR码率控制算法适合离线脱机的应用场合,它朵用了两趟编码的方案:在第一次编码阶段,使用固定量化参数编码视频序列以便提取编码复杂度信息,同时构造了编码视频帧的编码比特数R,量化参数Q以及失真D之间的关系表格.根 中国科学院计算技术研究所博士论文据R.Q.D关系表格,合理分配有效的比特数从而估算出第二次编码所需的编码控制参数.基于估算的编码控制参数,在第二次编码过程中动态的调整量化参数以满足平均比特率要求和缓冲区限制.实验结果表明,本章提出可变码率编码算法相对于固定码率编码算法,不仅在平均视觉质量上有所提高,而且得到的各帧间视觉质量更加一致,由此可以证明生成的可变码率视频压缩流具有更好的视觉质量.第二种VBR码率控制算法适合在线实时的应用场合,它充分使用原始CBR视频流中的编码信息,在图像级别的目标比特分配过程采用了经验公式进行目标比特分配以及量化参数的计算;在宏块级别的码率控制过程中,朵用率失真优化方法计算出各个宏块的量化参数,以便得到尽可能小的图像失真。同时保证满足目标比特数的限制。实验结果表明,我们提出的新的视频转码结构能够有效的完成视频转码;在相同码率条件下,本章提出的在线实时VBR转码方法能够比CBR转码方法获得更好的图像质量。事实上,本章提出的两种VBR码率控制算法不仅适用于高码率的CBR视频码流转码到VBR视频码流,也适合于适用于MPEG系列的视频标准的编码应用中,例如MPEG.2。MPEG.4,它们可以在诸如因特网上的流媒体服务,DVD视频光盘以及VOD视频点播系统等实际的视频应用场合得到使用。 第4章视频剪接算法中的视频转码技术随着MPEG系列标准的制定和普遍使用,以及诸如数字视频广播(DVB)、数字视频光盘(DvD)、网络流媒体等众多多媒体服务的蓬勃开展,越来越多的视频内容采用MPEG视频编码标准进行压缩存储.通常,在实际的多媒体服务中,往往需要对已获取的视频内容进行后处理,以满足特定的需求。这些后处理包括对视频内容的增加、删除、修改、合并,以及加入字幕和特技【刘98,中国981。显然,因为压缩编码的缘故,对已经编码压缩的视频内容实现这些后处理和对没有压缩过的视频内容是完全不同的.如果视频内容没有进行过压缩或者只采用了像MotionJPEG格式那样的帧内压缩,那么对视频内容进行后处理相当直接,无需重新编码。否则,如果视频内容采用MPEG视频标准gsogsb。钟971进行了压缩,那么对视频内容的后处理不可避免地需要重新编码,这就大大增加了后处理的复杂度.因为重新编码的开销很大,这就使得某些原来在没有压缩情况下很容易实时进行的后处理过程现在变得很困难了。在这些后处理过程中,最基本最核心的后处理过程莫过于所谓的视频剪接,它是指从原始素材中剪切出感兴趣的视频节目片段,然后将这些视频节目片段拼接形成新的视频节目.在很多实际的应用中,视频剪接往往是其最重要的组成部分.例如,在视频的非线性编辑过程中,需要从若干视频内容中提取出有用的部分,剪切连接成新的视频内容;又如电视广播中,需要在正在播放的视频节目中实时插入广告内容;还有就是在视频检索过程中,当用户已经检索得到感兴趣的视频内容后,需要将有关的视频片断从相应的视频内容中剪切连接起来传送给用户.在上述的这些处理过程中,非线性编辑中的剪切连接可以看成是脱机的静态剪接,不需要很强的实时性;而电视广播中的广告插播以及视频检索中的剪切连接往往是在线实时的剪接.即是说,实际的应用需要一个尽可能实时的剪接过程。以满足这些实时和非实时的任务。本章详细讨论了造成MPEG视频码流剪接困难的原因所在,从需要重编的视频帧数和重编视频帧采用的方法两方面入手,提出了像素域的开环剪接算法,像素域的闭环剪接算法,压缩域上的开环剪接算法以及压缩域上的闭环剪接算法四种不同的视频剪接方法.其中闭环剪接算法最大所需重编帧数为一个GOP长度(通常为12帧或者15帧),而开环剪接算法最大所需重编帧数为相邻两个非B帧问的距离(通常为2帧).基于视频转码的 中国科学院计算技术研究所博士论文思想,通过合理的使用原始码流中的编码信息,可以极大的降低重编视频帧的复杂度.实验结果表明,闭环结构的剪接算法因为克服了漂移误差的影响,具有较好的图像质量,但是重编的帧数较多:而开环结构的剪接算法重编的帧数较少,但是图像质量会受到漂移误差的影响有一定下降。同时压缩域上的剪接算法远远快于像素域上的剪接算法.因此,在实际的使用中,如果对视频剪接的实时性要求很高,那么应该使用压缩域上的开环剪接算法;如果实时性要求一般,为了有更好的图像质量,那么应该选择压缩域上的闭环剪接算法。4.1面向MPEG码流的视频剪接概述事实上,视频剪接的难易程度同视频内容的存储格式密切相关。如果视频内容没有进行过压缩,那么实现剪切和连接的操作相当直接和容易,图4.1的第一层就反映了这一剪接过程。如果视频内容仅进行了帧内编码压缩(比如MotionJPEG格式),因为只进行剪接操作,那么也可以按照图4.1第一层所示的方法进行剪接操作。这是因为帧内编码的各帧之间独立编码,对于剪切连接操作就好像所处理的视频序列没有进行过压缩编码。如果视频内容采用了MPEG视频标准进行编码,那么就不能简单的只按照图4.1的第一层所示方法进行剪接。这是因为MPEG压缩编码使用了帧间预测编码,结果导致了以下两方面的困难:视频序列1视频序列2剪接后的视频序列图4-1、视频剪接流程图 第4章视频剪接算法中的视频转码技术一首先,MPEG视频压缩码流存在三种不同类型的帧,即I帧,P帧和B帧。其中I帧只进行向MotionJPEG那样的帧内编码,而P帧和B帧却参考了紧邻的非B帧(I帧和P帧)进行预测编码,这就使得MPEG视频码流中帧和帧之间存在相关性(如图4.2所示).因此,在剪接过程中,剪切掉的视频帧中如果包含了剪切后保留的视频帧的参考帧,那么这些留下的视频帧就不能够正确解码.例如,凡是R的参考帧,当剪切掉R,在码流中晶就失去了它的参考帧R,如果不对凡进行某种处理,解码器就不能正确的解码f.卅。一其次,因为MPEG压缩编码本质是可变码率的编码。为了能够在固定码率(CBR)和可变码率(VBR)的信道上传输,那么必然引入缓冲区进行数据缓存,为此MPEG视频标准中规定了缓冲区规则,使得编码的码流在通过标准定义的视频缓冲校验器(VBV:VideoBufferVerifier)时既不发生缓冲区上溢也不发生缓冲区下溢.如果直接将两段MPEG压缩码流相联而不进行任何处理,即使视频帧的参考关系正确,那么也往往会因为视频缓冲校验器的数据缓冲区发生上溢或者下溢而使得连接的视频码流和MPEG不完全兼容。如图4.3所示,视频序列1和视频序列2都是正常的MPEG视频码流:当把视频序列l的第一部分VII和视频序列2的第一部分V21连接,此时缓冲区发生下溢;当把视频序列2的第一部分V21和视频序列l的第二部分V12连接,此时缓冲区发生上溢。因此,为了防止上述情况的发生,连接视频码流时必须进行相应的处理。正是因为上述剪切和连接方面的困难,对MPEG视频压缩码流的剪接必然涉及码流的解码和编码。显然,最简单最直接的剪接方法就是首先将原始的视频码流解码得到没有压缩的视频序列,然后按照第一层方法进行剪接连接,最后将生成新的视频序列再编码成新的视频码流。这一方法因为涉及视频内容的解码和编码,可以称为全解全编的方法,它对应图l中的第一层和第二层。事实上,不仅剪接操作可以这样实现,其他的后处理操作均可按照此法完成。全解全编的方法虽然简单直接,但是因为涉及复杂度很高的视频帧的重新编码,因而很难达到实时的剪接操作。在实际应用的很多场合中,往往需要实时的完成视频码流的剪接也满足用户的要求。为此,我们应该充分应用原始码流中的相关编码信息,来降低重新编码的代价,达到快速的视频剪接操作.这就是图l第三层所示的视频转码的方法来实现实时的视频剪接.。 中国科学院计算技术研究所博士论文双向预测编码占—口0前向预测编码图4.2、MPEG视频码流中三种不同格式的编码帧图4.3、直接连接MPEG码流导致视频缓冲校验器的上溢和下溢在已有的文献中,研究人员提出了各种直接在MPEG视频码流进行视频处理的方法。其中,文献[MC96a]和[WV971分别就视频剪切粘贴提出了各自的解决方案,用于处理剪切过程中视频帧失去参考帧的情况以及粘贴码流过程中需要满足视频缓冲校验器要求的问题;文献[Shen98,FCB00,YHN00]讨论一。一。一。口BE 第4乖桃频剪接算法中的视频转码技术了直接在MPEG视频码流上生成视频特技的方法,其中文献[Shen98]讨论的是淡入淡出特技(Fade-InFade.Out)的生成,文献[FCB00I讨论的是划入划出特技(Wipe)的生成,而文献IYHN001讨论的是融入融出(Dissolve)的生成;而文献IMC96bl给出了一个完整的压缩域上的视频编辑处理框架,其中首先讨论使用压缩域上提取的特征进行视频检索,然后讨论了如何实现MPEG视频码流上的视频剪接和特技生成。尽管这些研究已经解决了MPEG视频压缩码流剪接遇到的两个困难,但是对于如何利用已有的视频编码信息来降低视频剪接过程中重新编码的复杂度,实现快速的剪接操作,却没有进行深入的探讨。为此,本章从视频转码的角度,详细讨论了如何利用原始码流中的编码信息,在压缩域上直接完成视频剪接操作,尽可能的降低了重新编码的复杂度,从而使得实时完成视频剪接操作成为可能。4.2像素域上的视频剪接算法如前所述,因为MPEG视频码流中编码帧的相关性,使得直接在MPEG码流上进行精确到视频帧的剪接变得困难.如图4-4所示的编码视频帧序列(显示顺序):⋯⋯^占2口3只B5BePTBsB9PIcBllBl2113814占11,l∈⋯⋯图4-4、编码视频序列示例1)如果剪切掉Jl前所有的帧(包括^),这时B2、B3、P4的前向参考帧^被剪切掉,若不对口2、历、尸4作相应的变化,则它们就不能正确的解码;同样的,岛、风、户7参考了^,如果尸4不能正确解码,则它们也不能正确的解码。实际上,直到下一个I帧(^3),^之后所有的帧都不能正确解码了.同样的,如果剪切掉尸7前所有的帧(包括P7),那么宜到,13,从B3到B12的所有帧也不能正确解码.2)如果剪切掉^3后所有的帧(包括fi3),这时BlI、B12的后向参考帧,13被剪切掉,若不对Bll、B12作相应的变化,则它们也不能正确的解码。同样的,如果剪切掉P10’风和岛也不能正确解码.3)如果剪切掉,I前所有的帧(不包括J1),因为I帧只进行帧内编码,没有参考帧。不会出现上述的困难;同样的,如果剪切掉占ll后所有的帧(包 中国科学院计算技术研究所博j’论文括BlI),由于没有帧以B帧为参考帧,也不会出现上述的困难。综上所述,要克服因为剪切掉参考帧从而使得直接拼接码流不能正确解码的困难,只需要对涉及的编码帧进行解码重编,就可以实现精确到帧的视频剪接操作。具体来说,该视频剪接算法可以描述如下。如图4.5所示,要剪切保留阴影部分的视频帧,这时涉及在蜀和乃处的两次剪切.其中蜀为入点,而,一为出点;DJ表示从入点局起向前找到第一个I帧;仍表示从入点局起向后找到第一个非B帧(I帧或者P帧);Dj表示从出点R起向前找到第一个I帧;D√表示从出点凡起向后找到第一个非B帧。在入点和出点处的剪切操作如下所述:图4.5、视频剪接算法示意图I.入点局处的剪切·如果局为I帧,那么没有帧需要重编。-如果局为P帧,那么直到下一个I帧,所有的帧重编;其中局重编为I帧,其余帧的编码格式保持不变;为了重编这些帧,必须从Dj开始向后解码直到局,这个过程中所有的非B帧都要解码,而B帧不需要解码。一如果局为B帧,那么直到下一个I帧,所有的帧重编:其中乃重编为I帧,其余帧的编码格式保持不变;为了重编这些帧,必须从DJ开始向后解码直到仍,这个过程中所有的非B帧都要解码,而B帧不需要解码。II.出点乃处的剪切一如果E为I帧或者P帧,那么没有帧需要重编;_如果乃为B帧,那么L前所有连续的B帧都需要重编(这些B帧的后向参考帧在B之后,被剪切掉了);其中B重编为P帧,其余的帧编码格式保持不变(仍为B帧);为了重编这些帧,必须从现开始向后解码直到矾,这个过程中所有的非B帧(I帧或者P帧)都要解码,而B帧不需要解码。在上述算法中,所谓重编是指从原来的MPEG视频码流中解码相应的帧,然后再按照新的编码格式编码该帧.可以看出,重编的帧数不会超过相邻两 第4素视频剪接算弦中的视频转码技术个I帧问的帧数.一般的,两个相邻I帧间的所有视频帧构成了一个GOP,因此上述视频剪接方法其重编的帧数在一个GOP的范围内(对PAL制的节目而言。GOP长度一般是12帧;对NTSC制的节目而言,GOP长度一般是15帧).事实上,仔细分析MPEG视频码流中各帧之间的参考关系,我们可以将重编的视频帧数限制在更小的范围。例如,对于图4.4所示的编码视频序列,要保留P4以后的所有视频帧,根据全解全编算法,需要重编从P4到B12所有的各帧.但是稍作分析后可以发现,事实上只需重编P4为I帧,其余的各帧不需要重编,也能够得到正确的编码视频帧序列。以视频帧尸7为例,其中任意一个前向预测编码宏块的编码数据包括两部分:直接解码得到当前宏块的预测残差坳一使用运动补偿从参考视频帧P4求得当前宏块的预测参考值MBp。dO,那么当前宏块的值MBo即为:MBo=MB。dq七MB。(公式4·1)如果不重编P7,那么预测残差仍为朋玩。,但是因为视频帧P4进行了重编,所以预测参考值为朋昂蒯,则当前宏块的新值^扭,为:MB、=MB_Ⅻ+MB。(公式4-2)视频帧P4的重编必然带来重编误差(因为MPEG是有失真的编码),但是这里并非码率缩减的编码(码率仍就保持不变),所以这个误差一般很小;忽略该误差,则有下式成立:(公式4.3)由公式4.3可知,如果不重新编码视频帧P7,在误差允许范围内P7仍是可以解码的.同样的,可以证明其余的帧也不需要重编.显然,新的剪接算法将比全解全编算法重编更少的视频帧,它可以描述如下:I.入点局处的剪切-如果局为I帧,那么没有帧需要重编。-如果局为P帧,那么重编局为I帧;为了重编乃,必须从DI开始向后解码直到局,这个过程中所有的非B帧都要解码,而B帧不需要解码。-如果局为B帧,那么重编的帧序列为从局占⋯⋯占仍.其中丹重编为I帧;D2如果是P帧,那么以重编为I帧局为前向参考帧,仍旧重 中困科学院计算技术研究所博十论文编为P帧;如果是I帧,那么不需要重编;其余的B帧以重编为I帧局为前向参考帧,重编的仍为后向参考帧,仍然重编为B帧。为了重编这些帧,必须从DJ开始向后解码直到仍,这个过程中所有的非B帧都要解码。而B帧不需要解码。II.出点B处的剪切·如果B为I帧或者P帧,那么没有帧需要重编。一如果乃为B帧,那么乃前所有连续的B帧都需要重编(这些B帧的后向参考帧在F口之后,被剪切掉了);其中乃重编为P帧,其余的帧仍旧编码为B帧,它们的前向参考帧保持不变。而后向参考帧为新编码的P帧的乃;为了重编这些帧,必须从现开始向后解码直到仉,这个过程中所有的非B帧(I帧或者P帧)都要解码,而B帧不需要解码。可以看出,新的剪接算法在出点处的剪切同上述的第一个视频剪接算法是一样;而在入点处的剪切,此时最多需要重编的帧数不超过两个相邻非B帧间距离(一般的这个数目不超过3)。相对于第一个视频剪接,本算法重编的帧数更少,因而剪接的速度更快。4.3压缩域上的视频帧的重编在上述的两个像素域的视频剪接算法中,第二个算法较第一个算法重编更少的视频帧,因此它的复杂度更低。实际上,要降低剪接算法的复杂度,除了重编更少的视频帧以外,还应该尽可能的使用原始编码码流中的信息来降低编码本身的复杂度,这就成为了一个视频转码的问题.但足,同通常意义的视频转码不同,在剪接过程中的视频转码既不是码率的降低,也不是时间或者空间分辨率的下降,更不是视频格式的转换,它只是利用原始码流中宏块的编码模式和运动信息来加速重新编码过程。很显然,传统的视频转码方法中使用的各种技术都可以用到视频剪接的转码上,同时视频剪接的转码又有自身的特点。本节将详细讨论如何使用视频转码技术,加快视频剪接的重编。因此在这个意义上,视频帧的重编和视频帧的转码是同一概念。在上述两个像素域的视频剪接算法中,视频帧的重编方法使用的像素域的编解码方法:首先使用一个解码器将视频码流解码为像素域上的视频序列,然后使用编码器将像索域上的视频序列重新编码生成新的视频码流,这实际使用了图1.2所示的全解全编结构的视频转码器.这个过程完全没有重用原始视频 流中的信息.因为编码部分的运动估计和模式选择(ME模块)的开销很大(通常占到是编码器50%.60%的开销),所以,如果能够重用原始码流中的宏块编码模式信息和运动矢量信息,则在编码过程中将省去这两部分的开销,那么重新编码的代价将极大的降低.而且,因为不需要进行运动估计和模式选择,所以无须将视频码流解码到像素域,我们可以在压缩域(DCT域)上完成的视频帧重编。4.3.I部分解码得到图像的DCT系数第l章中图1.2所示的全解全编结构的视频转码器首先解码得到的是像素域的图像值,然而本章中我们将在压缩域上完成视频帧的重新编码,因此在解码时只需得到图像的DCT系数,而无需进行反DCT变换(IDCT模块),即是说解码按图4-6所示的DCT域上的解码器结构进行。图4-6、DCT域上的视频解码器1)如果是帧内编码的宏块,那么可变长解码(VLD)和反量化(IQ)之后,就得到帧内编码宏块的DCT系数.2)如果是帧问编码的宏块,那么当前宏块的编码值有两部分组成:预测残差值和预测参考值.经可变长解码(VLD)和反量化(IQ)之后,得到当前宏块的预测残差值的DCT系数;使用解码的运动矢量进行运动补偿,从参考帧中计算得到当前宏块的预测参考值的DCT系数.在MPEG视频编码过程中,DCT变换是在8x8大小的块(block)上进行的。因此,我们假设当前块为矗,其相应的预测参考值和预测残差值分别是毋耐和口。,,,那么,B=BⅢ+Bt。即是说当前块的DCT系数为,(公式4.4) 中国科学院计算技术研究所博十论文Dcr(口)=Dcr(哆删+%)因为DCT变换是线性变换,所以有,Dc丁(B)=Dcr(哆州)+Dc丁(占o)(公式4.5)(公式4-6)块的预测残差DCT系数经过可变长解码(VLD)和反量化(IQ)解码直接得到,而块的预测参考值的DCT系数需要使用解码得到的运动矢量进行运动补偿(Mc)求得。此时,我们需要在DCT域上进行运动补偿运算,可以按照s.F.Chang和D.Messerchmitt等在[CM951中所述算法求得。如图4.7所示,在参考帧上8x8大小的数据块历耐表示当前块的参考块,BJ,B2,B,,B,表示参考帧上和岛脚相邻的4个编码块,运动矢量为(“,v),则岛删可以按照下面的式子计算,●Dcr(日■)=∑Dcr(墨.哦晖:)“1(公式4.7)4。’’--ZDCT(S。.)DCT(B,)DCT(S,2)t-I其中变换矩阵韪J,勋在表格4-l中给出。表格4-l、矩阵&J和&瓢黧懑聪鬻鬻0,^10BI右下角0I。t0I^20I,2B2左下角0Bj右上角I^30I。,0。。00。。0I,4口。左上角。Ih40。0O 兰!翌堡翌兰薹兰兰耋篓竺耋堡譬垄譬二。—e———s——一自目自|目目}目目备28。。985一一参考帧当前帧图4.7、DCT域上宏块的运动补偿一一一一一一一一一一一一一一 DCT(MB)一嗄竖学+圾)c黼∽;竺睦字字塑一伽r(圾)其中膨眵^u耐表示前向预测参考值,脚^岍d表示后向预测参考值,它们按照4.3。l节所示的方法计算。3)B帧变换为P帧:B帧中包括帧内编码宏块、前向预测编码宏块、后向预测编码宏块和双向预测编码宏块四种宏块类型;而P帧中只有帧内编码宏块和前向预测编码宏块类型。因此,重编后B帧的帧内编码宏块和后向预测编码宏块重编为帧内编码宏块,而前向预测编码宏块和双向预测编码宏块重编为前向预测编码宏块。所以,如果是B帧的帧内编码宏块或者前向预测编码宏块,那么不需要进行重编;如果是B帧的后向预测编码宏块和双向预测编码宏块,那么需要首先解码得到各个宏块的DCT系数,然后进行量化(Q)和可变长编码(VLC)。其中后向预测编码宏块的编码值按照公式4.9计算;而双向预测编码宏块的DCT系数按照下面的式子计算(定义BMB#p、p、占枷。分别表示重.redBMB#.red编前B帧的前向预测参考值、后向预测参考值、预测残差值;定义PM8:耐和嬲。分别表示重编后P帧的前向预测参考值和预测残差值),MB=竺型粤+峨MB=PMBI.,一pⅫ+PMB。(公式4.10)(公式4.11)因为当前宏块重编前和重编后其前向预测参考帧不变,前向预测的运动矢量也不变,所以有,(公式4—12)由此重编后P帧的预测残差按照公式4—13计算,其中口膨卧,Pred、BMBfv_r。d按照4.3.1节所示的方法计算,而预测残差值BM8。由解码当前宏块得到。 第4牵视频翦接算法中的视频转码技术ocr(1"us,.)=ocr(.8-e.8,.d)一丁(墼学+溉一啤一州]c公舭⋯:DC丁(蛾)+竺垫堕生2兰坐坚一4.3.3帧类型不变的视频帧的重编在4.2节中所示的剪接算法中,如果视频帧的帧类型不变,但是仍然需要重编,一定是它的预测参考帧发生了变化.这包括因为前向参考帧发生变化重编P帧和B帧,以及因为后向参考帧变化重编B帧。1)前向参考帧发生变化重编P帧:这种情况是P帧前面的入点局处的B帧重编成了I帧,因而P帧的前向参考帧由原来的尼变成了现在的历了。如果是帧内编码的宏块,那么不需要重编。如果是前向预测编码的宏块,那么仍然重编为前向预测编码的宏块,不过因为参考帧的变化,运动矢量需要修改,编码的预测残差也要重新计算。不妨假设当前宏块原来的运动矢量是肘%,重编后的运动矢量为肘H,P帧和原来的参考帧B间的距离是%,而和现在的参考帧局的距离是m,那么,ME,=NN,pMVf(公式4.14)使用原来的参考帧昂和原来的运动矢量是M嵋,按照4.3.1节中的方法计算出当前宏块的预测参考值肘昂P耐;使用重编后的参考帧和重编后的运动矢量,同样可以计算出重编后当前宏块的预测参考值MBi之前的预测残差肜巩。可解码获得,那么重编之后的预测残差MBI。为,DCT(MB,。)=DCT(MBp—pred+MBp一。一MB,一删)(公式4-15)=DCT(MBp—p。a)+DCT(MBp一。)一DCT(MB,一pred)将计算出P帧的预测残差DCT系数进行量化和可变长编码就可完成当前宏块的重编.2)前向参考帧发生变化重编B帧:这种情况是B帧前面的入点局处的B一73— 中国科学院计算技术研究所博士论文帧重编成了I帧,因而B帧的前向参考帧由原来的尼变成了现在的乃,而B帧的后向参考帧不变仍然是n。如果是帧内编码的宏块或者后向编码的宏块,那么不需要重编。如果是前向预测编码的宏块,类似步骤1的处理。如果是双向预测编码的宏块,那么重新编码时,新的运动矢量按照公式4.14计算,而新的预测残差值按照下面的公式4.16计算,vcr(uB.,):聊f丝訾.I-MBt,.。一丝学1(公蚺16)\二/:丝塑型学型+DCT(MBe一。)=·_---_-‘·_-·__——___________---‘_-_‘。—-‘‘一l3)后向参考帧发生变化重编B帧:这种情况是B帧后面的出点疋处的B帧重编成了P帧,因而使得B帧的后向参考帧由原来的n变成了现在的乃,而B帧的前向参考帧不变仍然是昂。如果是帧内编码的宏块或者前向编码的宏块,那么不需要重编.如果是后向预测编码的宏块,那么仍然重编为后向预测编码的宏块,不过因为参考帧的变化,运动矢量需要修改,编码的预测残差也要重新计算。不妨假设当前宏块原来的后向运动矢量是肘%,重编后的运动矢量为肘圪,B帧和原来的参考帧n问的距离是M,而和现在的参考帧乃的距离是M,那么,MV0一N^rOME。』Vb(公式4.17)使用原来的参考帧凡和原来的运动矢量肘%,按照4.3.1节中的方法计算出当前宏块的预测参考值MB^。耐;使用重编后的参考帧和重编后的运动矢量,同样可以计算出重编后当前宏块的预测参考值MB。,删:而重编之前的预测残差MBb。可解码获得,那么重编之后的预测残差MB。。为,DCT(MBo。)=DCT(MBb删+MBt,。,一朋玩pw)(公式4-18)=DCT(MBo—P,。a)+DCT(MBb一。)一Dc7’(朋玩一pW)将计算出B帧的预测残差DCT系数进行量化和可变长编码就可完成当前宏块的重编.如果当前宏块是双向预测编码,那么重新编码时按照公式 第4章视频剪接算法中的视频转码技术4-17计算庙同还动天量,ff玎及熙F皿嗣公式4-19计算重新骊俏的坝铡钱差,DCT(MBo一。)删吖坚学一一。一堡剖c公式4-∽:竺丝叠止型丝一.慨.。)2.-DCT(4.4压缩域上的视频剪接算法按照4.2节的给出的视频剪接算法和4.3节给出的压缩域上的重编方法,我们可以得到压缩域上的视频剪接算法。4.4.1开环视频剪接算法首先,我们可以得到压缩域上的开环视频剪接算法,它需要重编的视频帧按照4.2节中的第二个视频剪接算法确定,而使用的重编结构根据4.3节描述可以表示为图4.8的结构,实际上这和转码结构中的开环结构【NHK95,SKZ961类似,所以这个新的视频剪接算法称为压缩域上的开环视频剪接算法,对应的,我们称像素域上的第二个视频剪接算法为像素域上的开环剪接算法。同像素域上的视频剪接算法相比,压缩域上的视频剪接算法视频帧重编的开销更低,因而剪接的速度更快。Decoder—R=_~广肃~^一LIrl一—r—-L’Veltors骆—l!!∑ro一图4.8、压缩域上开环剪接算法的重编结构虽然开环视频剪接算法的需要重编的视频帧数最少,但是剪接后图像的 中国科学院计算技术研究所1埠L论文质量可能因为漂移误差的影响而有比较大的损失。这是因为MPEG视频编码是有损失的压缩编码,重编必然带来视频帧高频信息的损失,因而重编后新的编码帧会发生退化。当进行运动补偿的时候,当前帧的预测部分将从重编后退化了的参考帧中取得,而残差部分将从原始码流中解码获得,这样必将导致预测部分和残差部分的不匹配,于是就产生了类似视频转码中的漂移误差(driftingerror)。从前面第2章的分析知道,因为预测编码的缘故,前面重编后的视频帧的漂移误差会被带到后续的帧上,直到新的I帧出现.这种逐级累加效应会使前面很小的误差最后被放大成很大的误差,严重影响后续帧转码后的图像质量。例如,4.2节中证明之所以不重编视频帧P,,是因为认为JP7从重编的^中得到的预测参考值和原来的几乎没有多大的差别,但是实际上这个差别是存在的,这必将带来剪接后P7的预测参考值和预测残差的不匹配,从而导致漂移误差;尽管这个误差在P7上很少,但是因为预测编码缘故进行误差的传递和累加,到离下一个I帧(Ii3)之前的P10,Bll’B12就可能已经比较大了。当然,因为视频剪接中没有码率的下降,这样的漂移误差的影响实际比码率缩减的开环结构视频转码器来的小,同时考虑到开环剪接算法的低复杂度,所以开环剪接算法仍是很有实际意义的。4.4.2闭环视频剪接算法4.2节中的第一个视频剪接算法中,因为所有可能受到影响的视频帧都进行了重编,不会存在漂移误差.类似的,为了克服上述漂移误差的影响,我们也可以在DCT域上重编所有可能受到影响的视频帧。这实际上相当于闭环结构的视频转码器[SKZ96,PM96,PM981,使用闭合环路克服漂移误差带来的图像损失,因此这种新的视频剪接算法可以称为闭环视频剪接算法。因为4.2节中的第一个视频剪接算法使用了全解全编的转码结构,所以称为像素域上的闭环视频剪接算法:而如果按照4.2节中第一个视频剪接算法确定要重编的视频帧,而按照4.3节的重编方法以及闭环转码结构重编相关的视频帧,那么就称为压缩域上的闭环剪接算法。对于压缩域上的闭环剪接算法,需要重编的视频帧可以分为两部分:第一部分是在开环剪接算法中也必须重编的帧,第二部分是在丌环剪接算法中不需要重编的帧。重编第二部分的视频帧可以使用传统的闭环结构的视频转码器,它使用闭合环路来消除漂移误差;或者使用【YWCLG041中所述的漂移误差自适应的视频转码结构(根据剪接后的图像质量和剪接速度来衡量该结构具有更好的性能)。而重编第一部分的视频帧,方法完全类似压缩域上的开环剪接算法,仅有一个不同之处: 第4章说频剪接算法中的视频转码技术一前向参考帧发生变化重编B帧:此时B帧前面的入点局处的B帧重编成了I帧,因而B帧的前向参考帧由原来的B变成了现在的局,而B帧的后向参考帧凡(如果是P帧)也重编(帧类型不变)为Fi。如果当前宏块是帧内编码的宏块、前向预测编码编码的宏块,那么采用和开环剪接算法同样的方法.如果当前宏块是后向预测编码的宏块,那么仍重编为后向预澳6编码的宏块,新的预测残差值按照下面的式子计算,DCT(MB,一。)=DCT(MBb一州+MBp一。一慨一删)(公式4-20)=DCT(MBb一删)+DCT(MBp一。)一Dcr(慨.删)其中心。表示后向参考帧重编之后的后向预测参考值。如果当前宏块是双向预测编码的宏块,那么仍重编为双向预测编码的宏块,重编之后当前宏块的预测残差应该为,DCT(MB,一。)划吖堕《坠+鸠.。一些哮监1:型丝=型!;里唑必埘r(MBt,一。)‘帅。21’DCT(MB,一删)+D凹(删一删)4.5实验结果和分析实际上,本文讨论了四种类型的视频剪接算法,其中包括像素域上的开环视频剪接算法和像素域上的闭环视频剪接算法,以及和它们对应的压缩域(DCT域)上的开环视频剪接算法和闭环视频剪接算法。视频剪接算法的性能要从剪接速度和剪接后的图像质量两方面进行衡量.其中,视频剪接速度由剪接时需要重编的帧数以及剪接时采用的重编方法决定。压缩域上的剪接算法因为使用了原始视频流中的信息极大加速了重编的速度,因而一定比相应的像素域上的剪接算法快.至于需要重编的帧数,像素域上的剪接算法一 和闭环剪接算法是一样的,像素域上的剪接算法二和开环剪接算法是一样的。实际上。重编的帧数和视频素材的GOP结构,剪接点在GOP中位置,以及剪接点的帧类型密切相关。一般的,最常见的GOP结构有两种:(N=12。M=3)GOP结构,表示GOP长度是N=12,相邻的非B帧的距离是M=3(即连续B帧的个数是M.1=2);(N=15,M=3)GOP结构,表示GOP长度是N=15。相邻的非B帧的距离是M=3。表格4.2给出了四种剪接算法在各种情况下需要重编的帧数。表中的给出重编帧数两个值,第一个值表示最小可能重编的帧数,而第二值表示最大可能重编的帧数。从表格4.2种可以看出,在出点处的剪切四种算法是相同的,主要的不同点在入点处的剪切。为了克服重编可能产生的漂移误差,闭环剪接算法一直重编到了下一个I帧,因而就所需重编的帧数来说,它们的重编代价比较高,但是因为克服了漂移误差的影响,重编后的图像质量比较好;而开环剪接算法只需要重编那些帧的类型或者参考帧发生了变化的视频帧,虽然重编后的图像质量可能受到漂移误差的影响,但是因为重编的帧数较少,因为可能达到更快的速度.为了实际比较上述的四个剪接算法,我们选用了两段已经编码的视频流进行实验,其中第一个视频码流的GOP结构是N=12,M=3:而第二个视频码流的GOP结构是N=15,M=3。因为只有在入点处是P帧和B帧时,四个剪接算法的剪接才有较大的差别,因此实验中只对两种情况进行比较,而且分别对应表2中最大所需重编帧数和最小所需重编帧数.从表格4.3可以看出,压缩域上的剪接算法远远快于像素域上的剪接算法。当GOP结构是N=12,M=3时,入点是P帧且采用开环剪接算法:最大的重编帧数和最小的重编帧数都是1,表中的速度实际上是P帧重编为I帧的速度。当入点是P帧且采用闭环剪接算法:最小的重编帧数是3,表中的速度是将PBB(1)⋯序列重编为IBB(I)⋯序列的平均速度;最大的重编帧数是9,表中的速度是将PBBPBBPBB(I)⋯序列重编为IBBPBBPBB(I)⋯序列的平均速度。入点是B帧且采用开环剪接算法:最小的重编帧数是l,表中的速度实际上序列B(I)⋯重编为序列I(I)⋯的速度;最大的重编帧数是3,表中的速度是将BBP⋯序列重编为IBP⋯序列的平均速度。当入点是B帧且采用闭环剪接算法:最小的重编帧数是l,表中的速度是将B(I)⋯序列重编为I(I)⋯序列的平均速度;最大的重编帧数是11,表中的速度是将BBPBBPBBPBB(I)⋯序列重编为IBPBBPBBPBB(I)⋯序列的平均速度。当GOP结构是N=15。M=3时的速度值同上类似. 表格4.2、四种视频剪接算法重编帧数的比较隔镬艄溉戮燃嚣鬻承。,;、.?’?绷;瓢碧瓣戳I(O,o)(O,O)(0,O)入点P(3,9)(1,1)(3,9)B(1,11)(1,3)(1,11)Ⅳ:12■f=3I(O,0)(O,o)(0,0)(O,O)出点P(o,0)(O,O)B(1,2)I(O,O)(O,o)(0,o)(O,0)入点P(3,12)(1,1)(3,12)B(1,14)(1,3)(1,14)JV三15且仁3I(O,0)(0,o)(0,O)(O,O)出点P(O,0)(O,o)(0,0)(O,O)B(1,2)表格4.3、四种视频剪接算法剪接速度的比较《,8二_”rt∥’●÷√o’}像素域上的闭:像素域上的开*压缩域上的开压缩域上的闭实验的视频码流,帧类型:环剪接算法。j环剪接算法?。翌譬譬÷‘环剪接算法一r。。·_。:’’P20.6522(3)25.361.(1)54.2926(1)42.185l(3)视频码流一20.0704(9)25.3612(1)54.2926(1)4】.3319(9)【^,-12,膨=3)24.2954(1)53.0736(1)52.7063(1)B20.0962(11)21.5909(3)51.2297(3)41.4474(11)P20.6896(3)25.2775(1)58.9864(1)43.4207(3)视频码流=20.0417(12)25.2775(1)58.9864(1)43.206502)【^,-15.胙3)24.1565(1)57.7434(I)57.3478(1)B20.0717(14)21.6216(3)54.2466(3)42.3403(14)一79— 中固科学院计算技术研究所博士论文序列PBBPBBPBB(1:⋯重编为序歹I.1BBPBBPBB‘I:⋯序列PBBPBBPBBPBB‘l:⋯重编为序列IBBPBBPBBPBB(I:⋯序列BBPBBPBBPBB(I:”重编为序歹I_IBPBBPBBPBB‘l:⋯序列BBPBBPBBPBBPBB(1:重编为序列lBPBBPBBPBBPBB(1:图4-9、四种剪接算法的图像质量比较图4-9给出了当对应表格4.3的图像的PSNR曲线图,从图中可以清楚地看到,因为漂移误差的影响,开环剪接算法中GOP中最后几个视频帧有较大的图像损失,而闭环剪接算法因为对所有可能受影响的视频帧都进行了重编,因而几乎消除了漂移误差带来的损失.根据以上的剪接速度和剪接后的图像一80— 第4章视频剪接算法中的视频转码技术质量的分析,我们可以得出,如果对视频剪接的实时性要求很高。那么应该使用压缩域上的开环剪接算法;如果实时性要求一般,为了有更好的图像质量,那么应该选择压缩域上的闭环剪接算法。4.6小结本文讨论了面向MPEG视频码流的视频剪接算法.通过分析MPEG视频码流中帧间参考关系推导出第一种算法,即像素域上的闭环剪接算法,其最大所需重编帧数为一个GOP长度.进一步分析运动估计的机制提出了第二种算法,即像素域上的开环剪接算法,其最大所需重编帧数为相邻两个非B帧间的距离.然后从视频转码角度出发,详细讨论了如何使用原始视频码流中的编码信息来降低重编视频帧的复杂度,在这个基础上提出了压缩域(DCT域)上的开环剪接算法和闭环剪接算法。相应的,像素域上的视频剪接的算法实际上使用全解全编转码结构来实现视频帧的重编。分析上述四种剪接算法,可以看出闭环剪接算法重编的帧数较多,但是因为克服了漂移误差的影响,剪接后的图像质量较好;而开环剪接算法重编的帧数较少,但是因为漂移误差会使得图像的质量有一定的损失.同时实验结果还表明,压缩域上的剪接算法远远快于像素域上的剪接算法.因此,在实际的应用中,如果对视频剪接的实时性要求很高,比如电视广播中实时地广告插播,那么应该使用压缩域上的开环剪接算法;如果实时性要求一般,比如非线性编辑中的剪切粘贴操作,为了有更好的图像质量,那么应该选择压缩域上的闭环剪接算法。 中固科学院计算技术研究所博士论文第5章色度缩减的视频转码技术在视频压缩编码领域。输入视频信号一般采用Yuv格式进行表示。其中Y是亮度分量,而U和V是相应的两个色度分量。通常存在以下三种不同的YUV格式:YUV420格式,YUV422格式以及YUV444格式[IS095b,IS099,ITU03l(如图5.1所示)。YUV444格式(如图5.1c所示)中保留了所有的亮度和色度信息,不存在色度信息的压缩。实验表明,人眼的视觉系统对亮度信息比对色度信息更为敏感,保留全部的亮度信息而压缩部分色度信息,人眼不会感觉到什么不同。基于上述的实验事实,于是出现了YUV422格式和YUV420格式[MPFL96l。同YUV444格式相比,YUV422格式(如图5.1b所示)压缩了一半色度信息,即每4个像素只保留2个色度信息值;而YUV420格式(如图5.1a所示)压缩了四分之一的色度信息,即每4个像素只保留了1个色度信息值。在实际的使用中,大量使用的是YUV422格式和YUV420格式。因为YUv422格式保留了更多的色度信息,图像质量更好,所以通常用于电视台内的节目制作和电视台间的节日交换;而YUV420格式压缩了更多的色度信息,通常用于电视台节目面向用户的广播发送。显然,这里就有一个转码的过程,即需要将压缩编码的YUV422格式的视频码流转换成YUV420格式的视频码流以便进行电视节目广播发送。此外,随着技术的进步,用户也越来越要求更好的图像质量,同时支持Y'UV422格式的用户终端设备也大量出现,因此直接发送YUV422格式的电视节目也将成为未来的趋势。不过因为目前大量只支持YUV420格式用户设备的存在,在很长一段时间YUV422格式终端和YUV420终端将共同存在,这意味着一套节日需要传送两路视频码流,即YUV422格式和YUV420格式;然而这对于电视广播传送是不可接受的,因为它多占用了一半的频道资源.解决问题最好的办法是只传送YUV422格式的视频码流,而在用户端进行YUV422格式到YUV420格式的转码,这至少要求拥有YUV420格式设备的用户增加一个YUV422格式到YUV420格式的转码器,事实上这也不可行,因为如此用户不如直接更新到YUV422格式的设备。对这些只支持YUV420格式设备的用户来说,任何增加设备的企图都是不可行。基于上述事实,即只广播发送YUV422格式视频码流,而YUV420终端用户不需要增添任何的设备,本章提出了一种新的YVU422格式的视频编码方案,它能够在用户端直接做到无任何额外开销 的YUV422格式到YUV420格式的视频转码,从而实现上述目标.X0o0XOX0OXY田a.4:2:0格式下亮度和色度样本位置&XHX西X强XI矗X珏X丑X趸X垃X垃X垃X盈X————矗X珏X西X硅X————RX矗X&X矗X——一——ⅡX矗XKX甚Xb.4:2:2格式下亮度和&耳H矗H强畦R墨西醢叠H耳H一&拄矗蛙&———ⅡH噩矗畦甚矗————珏矗‘矗Ⅱ甚矗&HRKⅡH矗西矗毪CbCr囵囵YChcrYc.4:4:4格式下亮度和色度样本位置图5-I、三种不同YUV格式的亮度和色度样本位置囡囵弘雕田田~田田 中国科学院计算技术研究所博士论文5.1传统视频编码方案中的色度缩减视频转码无论是MPEG2视频编码标准【IS095bl,还是MPEG4视频编码标准IIS099】,以及最新的H.264/MPEG4.10AVC视频编码标准IlTU03】,都支持YUV420格式和YUV422格式的编码.从图5.1a和图5.1b给出的YUV420格式和YUV422格式的亮度和色度样本的位置以及相应的宏块结构图中可以看出,YUV422格式编码是YIJV420格式编码的简单扩展,不同的是每个16×16大小的宏块中YUV422格式比YUV420格式多了2个8x8色度块,其余都几乎一致。在电视台内制作存储视频节目通常采用码率较高的YUV422格式的视频码流,而广播发送采用码率较低的YUv420格式的视频码流.这就是说,发送时的视频转码,除了色度缩减以外,还对应相应的码率缩减。例如,通常制作存储的视频码流是8Mbps的YUV422格式的码流,而广播传送的是5Mbps或者6Mbps的YUV420格式的码流.对于这样一个视频转码问题,前面第2章所述的码率缩减的视频转码结构都可以使用,对Y分量的转码没有什么不同,而对于色度分量的转码,转码过程中需要有一个色度信息下采样过程,这样才能最终构成YUV420格式的码流.类似[YWL00。YVLS02I中给出的空间分辨率缩减的视频转码器结构,我们给出了以下三种类型的色度缩减的视频转码器结构:图5.2给出的是开环结构的色度缩减视频转码器:图5.3和图5-4给了两种结构的闭环结构的色度缩减视频转码器,其中称为DriftLow的结构在解码和编码之间进行色度信息下采样,因此它的误差累积和误差补偿都是在YUV420的色度空间上进行,而DriftFull的结构在编码前先对新得到的编码预测残差进行色度信息下采样(Downsampling),然后在误差累积的时候还要进行色度信息的上采样(Upsampling)使得能够在YUV422格式的色度空间内进行误差累积和误差补偿。如第2章所述,转码过程中不可避免的存在漂移误差,其中亮度信息的转码没有涉及空问分辨率的变化,因此它的漂移误差如第2章的推导;而色度信息在转码中涉及了空间分辨率的变化,因此它的漂移误差和第2章略有不同,它实际上和[YVLS02l中给出的空间分辨率缩减时的漂移误差是一致的。按照第1章所述的串联结构的视频转码器结构,我们以可以给出如图5.5所示的串联结构的色度缩减视频转码器,色度信息转码时引起的漂移误差的推导将根据图5-5进行。首先解码部分解码得到YUV422格式的色度信息Z可以表示为, 第5章色度缩减的视频转码技术DecoderIEncoder图5.2、开环结构的色度缩减视频转码器DecoderIEncoder图5.3、DriftLow结构的色度缩减视频转码器DecoderIEncoderl图5-4,DriftFull结构的色度缩减视频转码器 中国科学院计箅技术研究所博十论文DecoderEncoder:图5-5、串联结构的色度缩减视频转码器≈=Z+坼(囊。)(公式5.1)其中艺是预测残差值,而吩(矗,)是预测参考值;然后E经过下采样得到YUV420格式的色度信息Z,Z--D(x,.一。1(公式5-2)此时送入编码部分编码的YUV420格式的色度信息预测残差值Z为,露=一一坼(正。)(公式5-3)根据公式5-1和公式5-2,预测残差值Z可以表示为,露=D(艺)+D(吩(E一。))一M(疟.)(公式5-3)如果公式5-3中忽略最后的两项,则露可以表示为,露=D(e1.)(公式5-4)按照上式图5-5的串联结构就简化成了图5-2的开环结构。事实上,公式5-3中的最后两项就是色度信息转码的漂移误差,d=D(吩(z.。))一鸠(丘。)(公式5-4)公式5-4还可以表示如下, d三础:羔袢揣颦搬)))r船。,=[M(一一t-正。)]+|D(吩(《一.))一鸠(D(吩(z一。)))l⋯⋯上面的式子中第一项是因为量化带来的误差以,而第二项是因为下采样带来d=dq+dr吒=鸠(以一.一正.)(公式5-5)4=D(吩(矗.))一鸠(D(吩(一.,)))当采用如图5-3的DriftLow结构的转码,实际是忽略了采样带来的误差Z,只考虑消除了量化带来的误差以;而采用图5-4的DriftFull结构的转码,则既考虑消除了量化带来的误差以,也考虑消除下采样带来的误差4,但是该结构需要额外的上采样操作,复杂度比DriftLow结构更大。在色度缩减的视频转码器结构中,因为编码部分的宏块编码模式以及运动矢量信息一般都只来自于亮度分量,而几乎不受色度分量的影响。因此,只要亮度信息没有相应的改变,宏块的编码信息就可以认为不受色度缩减的题,它需要将YUV422格式中每个宏块的16x8大小的色度信息转换到简单的下采样方法是双线性插值算法[DA01l(如图5.6a所示),我们可以使c=%·co+啊·q(公式5-6)C·8x8Cl8x8a.16x8数据块下采样到8×8数据块0O00.5O.500.500.5b.下采样矩阵图5-6、16x8块区域到8x8块区域的下采样方法 中国科学院计算技术研究所博十论文其中ho和hl表示下采样滤波器矩阵,%也H矧(公式5.7)这里“。。如图5—66所示,而04。。是系数全为零的矩阵。公式5-6和公式5-7给出了像素域上的下采样方法,但是我们选用的转码结构无论开环、DriftLow,还是DriftFull结构都需要在压缩域(DCT域)上实现的下采样,以便将YUV422格式的2个8x8块的DCT系数变换成YUV420格式中的1个8x8块的DCT系数.根据lCM96l中给出DCT域上的算法,我们可以很容易导出如下的DCT域上色度信息下采样算法。假设丁表示8x8DCT变换矩阵,丁的转置矩阵为,,则刀‘=r丁=,,其中J表示单位矩阵,那么由公式5-6可以进行如下推导,DCT(c)=死,=r(%’co+^‘q)∥=ThocoTI+矾clr(公式5.8)=砜IcoT‘+巩啊T‘=砜rTcoT。+观r‘%r=Dcr(%)Dcr(co)+Dcr(啊)Dcr(q)5.2色度可分级的视频编码方案随着技术的进步,用户希望获得更好的图像质量,而且支持YUV422格式的用户终端设备也大量出现,因此原来只用于专业领域的YUV422格式,甚至YUV444格式也将出现在视频广播级别的应用中。在传统的视频编码方案中对YUV422格式的色度分量的编码方法只是YUV420格式的色度分量编码方法简单的扩充。这种做法的缺点是对每一种格式都要生成相应的码流,没有简单易行的方法在这些格式之问进行转变.但是,在实际的应用场合,在未来相当长的一段时间内,支持YUv420格式和YUV422格式的接收端设备将共同存在。为了支持多种终端,一种方法是传送多个版本,这种方法势必造成带宽以及存储的浪费.另一种则是使用转码技术,通常,转码器的成本都很高。转换过程可以是在传送端或者是在接收端:·在传送端:先将YUV422格式的码流转码成YUV420格式的码流再传送,如前面5.1节的描述,因为传统的YUV422格式的编码方案色度分量是紧密藕合在一起,所以传送端的转码过程实际包括解码出YUV422格式的图象,下采样到YuV420格式,重新编码新的YUV420格式这三个过 第5章色度缩减的视频转码技术程,尽管这些过程在压缩域上实现可以降低很大的复杂度,但是仍然代价很大,而且只能用于传统的广播YUV420格式节目的系统,没有考虑YUV422格式视频码流的传送.·在接收端:解码出YUV422格式的图像之后下采样为YUV420格式的图像.由于接收端的用户需要一个新的YUV422格式的解码器,使得接受端能够对YUV422格式码流进行解码。同时需要该解码器支持下采样功能,以便将解码出的YUV422格式图象下采样为YUV420格式的图像最后传送到接收端原来的YUV420格式显示设备。显然,这个代价对于原来的接收端用户是不可接受的。综上所述,如果采用传统的视频编码方案将不能提供我们解决问题的最佳方法。我们希望,只传送一个YU-V422格式的码流,而拥有YIJV422格式设备和YUV420格式设备的用户都能得到各自应该得到的服务,并且YUV420格式的用户不需要任何增加任何新的设备.借鉴分层编码[GHAN89l以及可分级编码方法[L100,WLZ011,我们提出了一个色度可分级的视频编码方法解决上述问题。在色度可分级的视频编码方法中,YUV422格式的图像首先被分成了两部分:亮度信息Y分量和基本层色度信息BU和BV分量组成YUV420格式的图像,它们可以采用MPEG或者H.26x系列的视频标准压缩编码生成基本层的码流;而增强层的色度信息由EU和EV分量组成,它们被压缩编码生成增强层的码流。这样,YUV422格式的视频码流就包括基本层和增强层,当广播传送这样的码流时,如果用户设备只支持YUV420格式,那么只要简单的丢弃增强层码流就能实现接收端的转码,无需任何额外的开销:如果用户设备支持YUV422格式,那么解码出基本层和增强层全部的码流就可以了.使用上述的色度可分级视频编码方法,使得当广播传送YUV422格式码流后,能够同时支持YUV422格式和YUV420格式的接受端设备.显然,这个编码方案可以同样扩展到YUV444格式,使得广播传送YUV444格式码流时,可以一并支持YUV444格式、YUV422格式和YUV420格式的接受端设备。整套编码方法对应的编码器和解码器框图如图5-7a和5·7b所示。在图5.7中,我们将分解的基本层信号看成是低频信号L,而增强层信号看成是高频分量H。实际上,L是亮度分量Y和低频的色度分量信息,而H是高频的色度信息.因此,本节中色度可分级的编码方法的重点在于色度信息的分解上,即如何对YUV422格式视频信号中的色度分量进行分解,也最终构成基本层的YUV420格式信号以及增强层的高频色度信号.下面分别给出对应于两种不同分解方法的色度可分级的YUv422视频编码方案。 中田科学院计算技术研究所博卜论文a.色度可伸缩的视频编码器b.色度可伸缩的视频解码器图5-7、色度可伸缩的视频编码方案5.2.1色度可分级的YUV422视频编码方法一如图5—8a所示,在传统的YUV422格式编码中,每个宏块的16x8大小的色度信号由两个8x8块构成,其中每个块是偶数行和奇数行交织在一起,奇数行和偶数行耦合的很紧密.如果我们按照5.8b所示方法来分解YUV422 格式的色度信息,那么每个宏块的色度信号偶数行构成了基本层色度分量BUr和BV,而色度信号的奇数行构成了增强层色度分量EU和EV’,这样就可以得到如下的YUV422格式的分解方法:BU=(uo,“2,‰,l气,‰,“I。,Ⅳ12,Ⅳ14)‘BV=(%,v2,v4,%,v3,vl。,q2,v1.)‘在该方法中其中亮度分量Y和基本层色度分量BU和BV组成了YUV420格式,相应的色度可伸缩的YUV422格式编码器和解码器如图5-9和5.1l所示,其中基本层的编码采用的是MPEG2IIS095b1视频标准进行编码(当然也可以采用MPEG4[IS0991或者H.264/AVCIITU031视频标准进行编码)._.传统编码方案中的宏块色度信息分割图b.色度可伸缩编码方案中的宏块色度信息分割图图5-8、宏块色度信息分割组成相应编码色度块1)YUV422格式的视频编码器YUV422格式的视频编码器结构如图5-9所示。首先,如果输入的视频是RGB格式,那么就需要~个颜色空间转化过程(图中的CSC:ColorSpaceConversion模块)实现RGB格式到YUv格式的转换;在MPEG系列和H.26x‘事实上.基奉层色度分盈BIJ和BV也可以由色度信号的奇数行构成;相应的.增强层色度分量Eu和EV就由色度信号的偶数行构成了.一9l一孓式公0y幽%¨p“q∥川蜘%蜥叶略b以以如叱阳∥ 中固科学院计算技术研究所博l’论文系列编码中,一般采用下面的方法进行颜色空间的变换[IS095b|。国际电信联盟ITu和美国的SMPTE组织都定了几种类型的RGB颜色空问到YUV颜色空间的转换矩阵,例如MPEG.2标准中缺省的转换矩阵使用ITU.RBT.709推荐:图5-9、YUV422格式的视频编码器之一引‘嗣l圈Ee;,(馘5-10)0.5000-0115046o.5000lL£;,.1l或I-o.J其中E的取值在0和1之间,辟。和矗的取值在.0.5到0.5之间,而砭,E和砭的取值在0和1之问;砭=去,E=去,砭=甭R(公式5一11)464585l1J4Jc;mO一—......。..........。....L=1●●●●●●●I一西‰珞—............。....。.....L r=219xE+16,G=224x矗+128(公式5-12)C,=224xEPR+128得到YUV422格式的视频信号后按照公式5-9进行分解,可以得到YUV420格式的视频信号和增强层色度信号EUV,它们将分别适用不同的编码框架进行编码:●YUV420格式可以采用现有的某种视频编码标准进行编码(这里选用的是MPEG2视频编码标准)。YUV420格式的编码需要以下的几个步骤:如果是帧问预测编码,那么首先根据当前的输入图像和帧缓存(FrameBuffer)中的参考图像进行运动估计求得运动矢量(图中ME模块),然后利用得到运动矢量和帧缓存中的参考图像计算出预测参考图像;这之后当前的输入图像和预测参考图像做差得到预测残差将进行DCT变换,量化(Q)以及可变长编码(VLC)就得到输出的视频码流;同时再经过反量化(IQ)和反DCT变换(IDCT),重构出预测残差,将它和预测参考值相加得到当前帧的重构图像存入帧缓冲以便后续视频帧的运动估计和运动补偿。如果是帧内编码,那么就没有运动估计和运动补偿,其余过程和帧问预测编码类似。YUV420格式的输出码流构成了基本层码流B.BS(baselayerbitstream)。-增强层色度信号编码得到的输出码流构成了增强层码流E—BS(enhancementlayerbitstream),它的编码过程和上述YUV420格式的类似,所不同的是在编码模式的选择上.增强层色度信号的宏块大小是8×8,正好对应一个8x8的编码块,它的编码模式有三种:帧内编码模式(IntraMode),空间预测编码模式(SP:SpatialPreditionMode)和时间预测编码模式(TP:TemporalPreditionMode).I)帧内编码模式(IntraMode):增强层色度信号EUV直接进行DCT变换,量化(Q)和可变长编码(VLC)得到增强层编码码流;同时重构增强层色度信号只需要反量化(IQ)和反DCT变换(IDCT).II)空间预测编码模式(SPMode):增强层色度信号EUV和YUV420格式中相对应的基本层色度信号BUV进行空间预测,此时的空间预测参考信号Euv..red采用如下公式计算, 中国科学院计算技术研究所博卜论文fEu‰。(o,_,)=BUV,。(0,n(o≤-,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭