原本www还是pp983正常的,昨天开始pp983就出现了com错误带码

赞助商链接
当前位置: >>
基于H.264标准的网络视频编码器关键技术的研究与实现
国防科学技术大学 硕士学位论文 基于H.264标准的网络视频编码器关键技术的研究与实现 姓名:于正澍 申请学位级别:硕士 专业:计算机科学与技术 指导教师:罗莉
国防科学技术大学研究生院工学硕士学位论文摘要随着多媒体和信息技术的发展与完善,各种新的视频应用不断出现,人们对 图像质量的要求越来越高.其中实时视频应用倍受大家青睐,应用前景相当广阔. 在视频应用领域,图像质量和编码效率一直是两难问题.H.264视频编码标准成功 的解决了这一问题,但是编码过程的计算复杂性很高.因此降低编码过程的计算 复杂性,提高编码速度是H.264视频应用的重点和难点. 本课题从三个方面研究了网络视频编码器:H.264视频编码算法优化;DSP系 统中视频编码应用的硬件加速;H.264视频报文的网络实时传输. 首先,分析算法优化难点,提出了启发式预测模式确定算法,对帧间预测, 帧内预测和最佳预测模式的确定过程进行综合优化.该算法利用视频序列在空间 和时间上的相关性,以及相邻的图像单位在预测失真上的相似性,推测当前宏块 中接近最佳性能的预测块划分方法和预测模式.算法提供了推测错误处理机制, 能够保证预测块与原始图像之间实现最佳匹配.实验证明经过优化之后,以微小 的编码图像失真为代价,较大幅度地提高了编码速度,编码器的性能得到显著改善. 口.其次,研究了DSP上实现H.264的关键技术.将保证DSP系统定点运算精度 和利用DSP算法实现加速的关键技术作为研究重点.提出了多层次优化设计方案, 在程序,算法和指令三个不同层次上,通过优化程序结构,改善存储管理,合理 分配资源,优化指令调度,减少cache失效,以及利用多种DMA传输机制实现视 频处理与数据传输的重叠作业等优化关键技术,提高DSP系统中的功能部件,存 储资源和外部设备的工作效率,实现了视频图像的实时编码.实验结果表明,通 过关键技术优化的DSP视频编码器性能有大幅度的提高. 最后,利用德州仪器提供的网络开发工具包实现了RTP/RTCP实时网络传输 协议,主要包括TCP/IP网络协议栈的配置与使用,以及实现基于RTP/RTCP协议 的应用服务.在网络应用的基础上,对视频编码器进行性能进行测试,检验视频 编码器的实时效果;完成了进行数据完整性测试,验证了视频编码器的正确性. 测试结果表明本课题研究和实现的视频编码器具有良好的实时性和稳定性.关键词:H.264编码器预测模式确定优化第i页 国防科学技术大学研究生院工学硕士学位论文ABSTRACTWith the developmentnew applications,析tll of multimedia and communication technology,a variety of resolution have been taken intoare11i曲imageperspective,realtime video applicationsverypractice.W弛great popular,in which image quality andCallbitrates are in the dilemma.H.264 video coding standardsolve this intractabilityproblem successfully.However,there is much complexity in the encoding processes ofH.264encoder.Therefore,how toreduce the complexities of encodingprocess,aswelltoas to speed up the encoder,becomes the keystone of video application,which is hard achieve.Therefore,this dissertation researchesonthree aspectsof network videoencoder,which include the optimizing algorithm in video encoder,DSP hardwarespeedupand the real-timetransfer of H.264 video packets.onFirstly,by researching basedonthe optimizing algorithms,we proposeanalgorithmmethod of elicitation to optimize intra prediction,inter predictionorandmodedecision.By exploiting spacialtemporal correlation of neighbor macroblocks,as wellas distortion of neighbor macroblock,the algorithm speculates that the partition methodandprediction mode of current macroblock is similar to itsensuresneighbors.Themechanismprovided by the algorithmthe best match between prediction block and odginalblock.The results of image distortion.test provethat the algonthm improves the encoding rate,析tll littleSecondly,our researches focuson11i曲accuracyassigningfix-point arithmetic and DSPstructurehardware speedup of H.264 application.By optimizing theof program,improvingmemoryonmanagement,andresourcesproperly,we realizeoptimizationsdata transferstheprogram,algorithmandinstruction levelrespectively.Hi曲speedbetweenDSP and peripheralsareimplemented by EDMA operations.Anoverlap between data transfers and data processing ale introduced by EDMA mechanisms and the flexible configuration of the on chip SRAM of DSP.After theoptimization,ALUs;memory and peripherals are sufficiently utilized.The testingresults indicate that thehi.gh performance ofvideo encoder optimized by DSP optimized the network develop kit provided byalgorithms.Finally,we implement RTP protocol basedonTI corporation,which includes the conflgurationandutilization of TCP/IP protoc01.Experimental results are given to evaluate the performance of the video encoder. Accordingtothe results,our video encoder is considered to be an application with goodperformance and 11igh reliability.KeyWords:H.264VideoEncoderPredictionModeDecisionOptimization 第ii页 国防科学技术大学研究生院工学硕士学位论文图目录图2.1 H.264编码原理框图………………………………………………………………5 图2.2 NAL单元序列………………………………………………………………………7 图2.3片的语法结构……………………………………………………………………9图2.4预测采样的标记(4x4块)……………………………………………………10图2.5 4x4块的亮度预测模式…………………………………………………………l 0 图2.6 16x16块的帧内预测模式……………………………………………………………11图2.7与当前块的相邻的4x4块………………………………………………………1l图2.8不同尺寸的块和子块…………………………………………………………..12图2.9像素采样和亚像素采样预测……………………………………………………13 图2.10当前块和相邻块………………………………………………………………15图2.1 1宏块内参差块的扫描顺序…………………………………………………….16图2.12宏块中的边缘滤波顺序……………………………………………………….19 图2.13在垂直和水平边界上相邻的图像采样……….………………………………20图2.14 图3.14x4亮度块的Z字型扫描(帧模式)……………………………………..21 编码器的基本结构………………………………………:……………………27图3.2非帧场自适应的片编码……………………………………………………….28 图3.3计算编码率.失真开销………………………………………………………..29 图3.4模式确定的最大RDcost计算量…………………………………………….29图3.5启发式预测模式确定过程…………………………………………………….3 1图3.6计算平均边界误差…………………………………………………………….34图3.7以8×8子宏块为基础推测帧间预测模式………………………………….35图3.8运动矢量的中值预测………………………………………………………….36 图3.9菱形运动搜索算法的运动搜索过程…………………………………………37 图3.10搜索范围确定中的参数块位置…………………………………………….38图3.11 图3.12coast测试序列的性能比较………………………………………………….40 foreman测试序列的性能比较……………………………………………….41 网络视频编码器的工作流程…………………………………………………..43图4.1.网络视频编码器的基本结构…………………………………………………42图4.2图4.3非帧场自适应编码的简化过程………………………………………………47 图4.4非帧场自适应编码的简化过程………………………………………………48 图4.5利用EDMA通道实现内存读写和计算处理的重叠作业………………….49 图4.5创建重构图像的数据处理链…………………………………………………52第V页 国防科学技术大学研究生院工学硕士学位论文图4.6经过改进的重构图像处理链…………………………………………………52图4.7 图5.1 TMS320DM642处理器的系统结构…………………………………………..53 TMS320DM642处理器的系统结构…………………………………………60第Ⅵ页 国防科学技术大学研究生院工学硕士学位论文表目录表2.1 H.264和MPEG-4的比较……………………………………………………….6 表2.2 H.264的片模式……………………………………………………………………8 表2.3 4x4块的亮度预测模式…………………………………………………………10 表2.4 16×16块的亮度预测模式………………………………………………………11表2.5边界参数使用规则……………………………………………………………..20 表2.6需要编码的参数………………………………………………………………..2l 表2.7参数k的映射规则……………………………………………………………..22 表2.8使suf-fixLength增加的临界值………………………………………………_.24 表3.1重新排序的4x4亮度块的帧内预测模式…………………………………….39 表4.1编码过程的QDMA传输………………………………………………………51 表5.1测试序列一览表…………………………………………………………………58表5.2 coast视频序列的测试结果…………………………………………………:….58表5.3 foreman视频序列的测试结果………………………………………………….59表5.4 news视频序列的测试结果…………………………………………………….59 表5.5 silent视频序列的测试结果…………………………………………………….59表5.6未经DSP算法优化的编码器测试结果………………………………………59 表5.7经过DSP算法优化的编码器测试结果………………………………………59第1V页 独创性声明本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果.尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学位或证书而使用过的材料.与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意.学位论文版权使用授权书本人完全了解国防科学技术大学有关保留,使用学位论文的规定.本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印,缩印或扫描等复制手段保存,汇编学位论文. (保密学位论文在解密后适用本授权书.)学位论文作者签名:叠圣f茎翌日期:山西/年,.月f》日 国防科学技术大学研究生院工学硕士学位论文第一章绪论1.1课题背景与研究现状随着网络技术的迅猛发展,视频编码技术的成熟与完善,流媒体传输技术的 不断更新,以及硬件设备性能的不断提高,视频应用得到了长足的发展.在视频 应用中,基于网络的视频编码器具有配置灵活,易于扩展的优点,既可以集成到 视频会议系统中,也可以用于实现视频监控系统.随着人们生活水平的不断提高, 对于通信,安全和取证方面的需求与日剧增,来自不同行业和不同需求的应用层 出不穷,网络视频编码器具有广阔的应用前景. 网络视频编码器至少具有视频采样,图像编码,网络传输三个基本功能.其 中,图像序列编码是网络视频编码器中计算复杂性最高,实时性实现难度最大的 模块.采用什么样的编码标准,如何实现低码率,高画质的的实时视频编码,以 及视频传输过程中的错误恢复和流量控制都是当前网络视频应用的研究热点. 在视频技术的研究领域中,图像编解码,视频存储和传输一直是研究热点, 这些相关标准分别由运动图像专家组(MPEG)和国际电信标准化部门(ITU.T) 制定.前者制定的标准侧重于视频的存储与播放,而后者主要是针对视频通信. 早在1988年,IⅡJ-T就颁布了H.261建议草案,该建议以混合编码为核心, 以此为基础制定出一系列的视频编码标准,如nU.T的H.262和H.263等.随后ISO/1EC组织也相继制定了MPEG.1和MPEG.2标准.MPEG.1针对SIF标准分辨率(对于NTSC制为352 X 240:对于PAL制为352 x 288)的图像进行压缩,传输速 率为1.5Mbits/see,每秒播放30帧,曾经是VCD的主要压缩标准.MPEG-2能够 提供的传输率介于3&&10Mbits/sec之间,在NTSC制式下的分辨率可达720×486, 是DVD压缩标准.针对MPEG.1,MPEG-2和M.JPEG标准占用存储空间和网络 带宽大的特点,催生了具有高压缩比的H263和MPEG-4标准.H263和MPEG-4 采用4:2:0的色彩空间表示,更适合于存储和网络传输.但是1-1263和MPEG.4标 准存在着图像分辨率较低的缺点. 为此ITU.T和ISO/IEC组织共同制订了H.264标准.H.264标准以增加图像转 换的运算量为代价换取视频数据的高压缩比,解决图像质量和视频数据量之间的矛盾.H.264编码被划分为视频编码层(VCL)和网络抽象层(M让).视频编码层主要描述被传输视频数据承载的视频内容,而网络抽象层需要满足不同的应用 环境,例如视频会议通信,H.32X连续报文的视频传输或者基于IP报文的 RTP/UDP/IP网络通信.H.264对网络传输具有更好的支持功能,它引入了面向P 报文的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输.H.264第1页 国防科学技术大学研究生院工学硕士学位论文具有较强的抗误码特性,可适应丢包率高,干扰严重的无线信道视频传输,支持 不同网络资源下的分级编码传输,从而获得平稳的图像质量.互联网工程任务组 (mTF)已经完成对H.264实时传输协议流的格式标准化. 目前国内外对H.264编码技术的相关研究很多,其中包括针对YUV4:4:4高清 晰原始图像序列快速编解码,帧间层纹理,运动的预测,改善容错机制,更好的 支持任意片顺序,空间可以伸缩性重新采样等等.在系统结构方面的支持包括流处理器和可扩展的多核运算单元并行结构.1.2课题研究的内容及成果本文实时视频应用中,符合H.264标准的硬件编码器居多,仅有少数基于通 用数字信号处理的软件编码器能够实现实时H.264编码.本课题研究如何在通用 数字信号处理系统上实现符合H.264标准的实时视频编码器,主要研究H.264的 编码算法的改进,以及H.264在DSP上实现的关键技术,利用通用H.264开源代 码移植,在硬件仿真平台实现了H.264网络视频编码器.课题研究与实现工作包 括以下几个方面: 1.研究多种当前使用广泛的视频编码标准,并做以比较分析,总结出适合于 网络特性的视频编码算法. 2.分析参考软件源代码JM,通过实验结果评测各种快速算法性能,分析算 法优化难点,提出帧预测阶段优化算法:启发式预测模式确定算法. 3.采用基于通用处理器的H.264开源代码移植到DSP的思想,探讨在DSP 上实现H.264的优化关键技术,基于DSP系统特点进行优化,提出多层 次优化设计方案,大大提高了编码器的视频编码效率,增强了视频传输的 实时性. 4.研究了视频编码器的网络特性,根据网络特性,利用邮箱机制,实现包括 编码器在内的多个实时任务的通信与同步. 5.总结了网络视频编码器的工作性能测试案例,通过测试案例评价启发式预 测模式确定算法和多层次优化设计方案的性能. 本文将重点围绕着如何实现H.264实时编码器开展研究,通过对改进优化算 法组合的筛选,在编码率失真性能没有显著下降的前提下,编码过程中各个阶段 的执行速度获得整体提高.在通用数字信号处理系统中,基于数字信号处理器的 微系统结构对编码器进行优化.经过两次优化,编码速度基本上满足实时性要求, 由于在扩展协议子集中采用了多参考帧预测机制,在编码过程中偶尔会产生视频 序列的抖动现象.通过研究本课题,笔者对H.264视频编码技术有了更深层次的 认识,为进一步研究打下了基础.第2页 国防科学技术大学研究生院工学硕士学位论文1.3文章结构全文共分五章,各章组织如下: 第一章介绍了课题研究的概况,包括课题的研究背景,研究内容等. 第二章总结多种当前使用广泛的视频编码标准,并做以比较,总结出适合于 网络特性的视频编码算法.从总体上分析了H.264视频编码标准,包括编码图像 格式,视频编码过程中的各个阶段. 第三章分析H.264软件编码器的结构,编码器的能力与特征.对多种快速运 动估计,快速帧内预测和算法进行实验比较,在编码预测阶段提出启发式预测模 式确定算法,进一步提高编码速度. 第四章研究基于通用处理器的JM软件源代码移植DSP的优化技术,提出基 于DSP结构的编码器多层次优化设计方案,最后实现了网络视频编码器,. 第五章归纳了H.264编码器和网络视频编码器的测试工作,包括测试环境, 测试方法和测试结果.第3页 国防科学技术大学研究生院工学硕士学位论文第二章网络视频编码技术研究在网络视频编码器中最核心的技术是视频数字编码技术,也就是通常所说的 视频压缩算法,算法的选择直接影响到网络视频编码器的性能. 本章主要是分析网络视频编码器,介绍当今实用的经典视频编码技术并做出 对比分析,重点介绍和分析H.264.2.1网络视频编码技术选取视频编码技术有很多,例如:MPEG组织的MPEG-1,MPEG.2,MPEG-4, H.263,H.264,微软的WMV,国内自主知识产权的AVS等,但是,适合于网络 传输的高编码率,低传输率的要求很少,目前最流行的网络数字压缩编码算法是 MPEG-4和H.264.H.264以其高编码率,网络友好,容错的特点,开拓了无线视 频传输领域. 2.1.1视频编码技术介绍1.M―JPEGM.JPEG作为一种数字压缩格式,从模拟到数字,从录像机到硬盘录像机, M―JPEG为我们带来了崭新的数字化播出手段,它把信号变成了数据,应该来说 M―JPEG压缩技术在视频压缩的出现过程中具有里程碑式的意义.M.JPEG是基于 帧内,帧独立的压缩方式,所以相对于后来出现的MPEG.4,H.264的压缩方式, 它数据量更大,传输困难,所以该编码技术的网络视频设备已经基本上不能满足 现在远程监控需求,只能算是过渡的产品.2.MPEG.2.MPEG.2制定于1994年,是建立在MPEGl之上,设计目标是高级工业标准 的图像质量以及更高的传输率.它主要应用在没有色度,畸变要求场合的高质量 视频,数据速率在1.1Mbps到20Mbps之间.MPEG2能够提供广播级的视像和CD 级的音质.MPEG2不仅能录制电视节目,而且还是为录制高清晰度的高质量动态 图像而开发的,能够存储比MPEGl清晰度更高的动态图像.除了作为DVD的指 定标准外,MPEG2还可为数字有线电视分配,通过ATM的网络数据库业务,数 字VTR应用以及卫星和地面数字广播分配等提供广播级的数字视频.2.MPEG.4在MPEG(运动图像专家组)系列压缩方式中,MPEG.4技术属于是码流与画 质比中较好的一种,所以很多公司都推出了该编码的产品,在实际很多商品也采第4页 国防科学技术大学研究生院工学硕士学位论文用了MPEG.4编码. MPEG-4采用的帧间压缩方式,利用帧之间的冗余信息大大减少压缩数据量,达到同样的视频质量MPEG.4所需的码率只有M.JPEG的1/30甚至更少.大家一般意义上认为MPEG.4 IBP的压缩方式已经满足了网络传输的要求,所以也使得网络视频服务器在普通网络环境中应用成为可能.3,H.264?H.264用大运算量来换取高压缩率,高画质. H.264受人追捧有三大原因:高性能,国际标准和公正的无差别许可制度.联合视频工作组(ⅣT,Jo缸Video Team)在H26L的基础上提出了H.264编码技术.它通过增加运算的复杂性降低了码流的同时提高画质,其压缩率为MPEG-2的2 倍以上,MPEG-4的1.5至2倍.这样的高压缩率是以编码的大运算量来换取的, H.264的编码处理计算量有MPEG.2的十多倍.不过其解码的运算量并没有上升很 多,故对用户接收播放来说没有什么难度.H.264的出现为低码流网络传输的实现 提供了解决方式,也使得现有带宽的情况下多路数网络视频服务器的应用成为可 能,且可应用于无线传输网络. H,264可用于手机电视广播,PDA,家电的视频存储等.在通讯领域,IE'IT (互联网工程任务)已开始将H.264作为RTP(实时传输协议)流的格式进行标准化.从以上分析的几个视频压缩算法中总结出,最适合于网络传输的视频编码算法是MPEG.4和H.264,下面我们将其做以比较.2.1.2 MPEG_4和H.264的比较图2.1 H.264编码原理框图图2.1是H.264编码原理框图,图中,只要去除左下角的帧内预测模块和滤波第5页 国防科学技术大学研究生院工学硕士学位论文模块,此图同样可用于表示MPEG.2和MPEG.4的操作流程.所以,图中很容易 看出H.264和MPEG的各种早期格式的主要差别,下面我们具体分析一下其中操 作的差异.表2.1 H.264和MPEG-4的比较 主要技术 帧内预测H,264 M田EG,49种4&&4像素预测模式 4种16X 16像素预测模式 从4X4到16X 16像素块共7种模式,无帧问预测支持SDTV图像, 最大预测5帧(1/4像素精度)16X16和8X8像素块两种 模式(1/4像素精度) 8×8离散余弦变换 霍夫曼编码 无 2.5Mb/s变换 压缩编码 循环滤波 高清节目带宽4X4整数变换和Hadmard变换 CAVLC和CABAC 有 1.5Mb/sMPEG的每秒25或30帧的画面被分为构成方式不同的三种画面:帧内编码I画面,前向预测编码P画面和双向预测编码B画面.?I画面用原始数据直接编码,不与其它画面比较.所以,I画面的编码量信 息量大,数据量大,但可以仅用自身的数据独立还原画面.如果视频画面中出现马赛克或其它紊乱,只要有一帧I画面出现就能中止错误的画面继 续下去. ?P画面用最近的I或P画面作为比较基准进行运动预测,只记录下这帧画 面与基准画面的不同之处.所以,编码效率较高,数据量小,但还原画面 就需要前面的基准帧数据.若基准画面已经有错,那么这个画面上的错误 会被传下去,直到I画面到来. ◆B画面可以同时用前面和后面的画面作为比较基准进行运动预测.编码压 缩率最大,数据量最小,而且不会传递错误.但需要附加存储器,时间上 有迟后,还不能作为以后的预测基准. H.264的变化之一是在帧内编码I画面中,又加入了帧内预测编码技术,即解码时可用周围数据的差分值来重构画面.帧内预测以特定大小的块作为基准单元, 从周围像素中预测编码化的模板.H.264的基准块大小分4X4和16X 16两种,前 者有9种预测模式,后者也有4种模式.因为原图像左右,上下都有一定的相关 性,不同部分的差分值总比不进行帧内预测的原始值要少,故量化后的编码量就减少了,而且高频成分也比原图像为少.第6页 国防科学技术大学研究生院工学硕士学位论文 H.264与MPEG一2和MPEG.4的不同还存在于纠错编码块中,H.264的纠错编码为内容自适应可变长度码(CAVLC)和内容自适应二进制算法编码(CABAC), 能提高纠错能力.而MPEG.2和MPEG-4为霍夫曼编码.另外,还加入了MPEG-2 和MPEG-.4所没有的环路滤波器,有降低噪声的效果.H.264的整数变换以4×4 像素块为单位,已比原来的8X 8像素块的块噪声少,再次降低,画质得到了进一 步提高. 试验数据结果表明:H.264相对于MPEAG-4,MPEG.2平均码率降低分别约为 41%,67%.显然H.264的编码效率和图象信噪比明显高于其它测试标准.然而, H.264性能的改进是以增加编解码的复杂性为代价而获得的.因此,将H.264编解 器的新产品投入市场实际应用,如何快速有效的实现H.264的关键算法是关键.2.2H.264简介2.2.1编码图像的结构 2.2.1.1编码数据格式 H.264标准将视频编码分为视频编码层(VCL)和网络抽象层(NAL).其中 视频编码层(VCL)用于有效地表示视频数据的内容.网络抽象层(NAL)负责 以适合在多种通信信道或存储媒介上的传输方式编排数据格式,并且提供报头信 息.编码过程的输出是VCL数据,在传输与存储之前VCL映射到NAL单元中. NAL单元指定了在面向报文和二进制流的系统上都适用的通用格式.NAL单元包 含一个原始字节序列有效载荷(I出SP),RBSP是与编码视频数据或报头信息对 应的.视频数据是按照片组,片和宏块三个层次编码的.编码视频序列是采用NAL 单元序列表示的(图2.2),在序列中NAL单元是按照解码顺序排列的.在基于 电路交换的传输链路上,NAL单元将起始代码前缀和额外的填充字节作为NAL单 元之间的分隔标志.在基于报文交换的网络中,NAL单元序列中不需要额外的分隔标志.….|拦I2.2.1.2宏块麟PI船l―I黜l图2.2 NAL单元序列一卜&与其它视频编码标准类似,H.264的编码图像包含多个宏块,但是图像并不是由宏块直接组成的.编码图像是由宏块,片和片组构成的.宏块排列在片结构中,并且按照光栅扫描顺序编号实现编址.以H.264标准中4:2:0的YUV色彩空间的第7页 国防科学技术大学研究生院工学硕士学位论文为例,编码图像中的每个宏块包含与16×16的采样区域(16×16的亮度采样,以及相应8×8的Cb和8×8的Cr色差采样)相对应的编码数据.按照预测编码方 式,宏块共分为I,P,B,SI和SP五种类型.2.2.1.3片和片组.H.264编码标准将视频图像作为一个片或多个片进行编码,每个片至少包含一 个宏块,一个片最多可以包含图像中的所有宏块'(每个图像只有一个片),片包 含的宏块数量不是固定的.H.264标准中共有五类编码片(表2.2),而且允许不 同类型的片在图像中同时出现.I型片包含帧内预测编码的I型宏块.P型片不仅 可以包含采用帧间预测模式编码的P型宏块和I型宏块,还可以包含忽略预测的宏 块.B型片包含双向帧间预测编码的B型宏块.表2.2H.264的片模式 片类型1 P B SP SI描述 只包含I型宏块 包含P型宏块和/或I型宏块 包含B型宏块和/或I型宏块 便于编码流之间的切换;包含P型和/或I型宏块 便于编码流之间的切换;包含SI型宏块应用范围 所有子集 所有子集 主干和扩展子集扩展子集扩展子集片的语法结构将片分为片首和数据段.片首定义了片的类型,片所属的编码 图像和其它相关属性,片首可以包含管理参考图像的相关指令.片数据是由一系 列编码宏块和/或忽略预测的宏块组成的.每个宏块包含首部的宏块信息和经过编 码的残差.图2.3简单地描述了编码片语法结构.H.264编码器可以在编码图像的 边界插入RBSP单元作为图像分隔符,标识新编码图像的开始和随后编码图像中 允许的片类型.如果不使用图像分隔符,解码器应该按照新图像中第一个片首探测新图像的出现.H.264标准支持任意片顺序(ASO),即编码图像中的片可以按照任意顺序解 码.在相同的图像中,任意片顺序用于解码帧中任意片的第一个宏块地址比相同 图像中以前编码片的第一个宏块的地址(宏块编号)小的情况.第8页 国防科学技术大学研究生院工学硕士学位论文图2.3片的语法结构片组是编码图像中包含宏块的图像子集,可以包含一个或多个片.在片组中, 片内的宏块按照光栅扫描顺序编码.如果每个图像中使用一个片组,那么除了采 用任意片顺序之外,图像中所有的宏块按光栅顺序编码.多个片组可以按照多种 灵活的方式将编码宏块序列映射到解码图像中.2.2.2宏块预测对当前宏块或块的预测是利用编码图像采样创建的,其中帧内编码宏块的图 像采样是从当前片中已经完成编码,解码和重构的图像采样预测得到的;帧间预 测宏块的图像采样是从以前编码的图像采样预测得到的.先用当前宏块或块减去 预测块,再对残差实施变换和量化,同时将用于再现预测过程的信息(运动矢量, 预测模式等等)发送给解码器.解码器创建同样的预测块,将预测块加上残差块 或原始块得到重构图像. 2.2.2.1帧内预测 在帧内预测模式中,预测块是基于当前帧内完成编码和重构的块构造出的. 对于亮度采样,共有9种构造4×4预测块和4种构造16X 16预测块的预测模式. 编码器采用4种预测模式构造色差预测块.编码器通常选择预测块与待编码块之 间差值最小的预测模式.此外,帧内编码模式I PCM允许编码器不经过预测和变 换直接传输图像采样值【3】.在某些特殊情况下(例如模拟图像内容或者量化参数非 常低),这种预测模式的编码效率高于比其它帧内预测模式. ?4×4亮度块的预测模式 当宏块被分为16个4X4块时,当前块的顶部和左侧的图像采样经过编码, 重构之后,作为帧内预测的参考图像.预测块内的图像采样a,b,c……,P是根 据采样A~M计算得出的(图2.4).第9页 国防科学技术大学研究生院工学硕士学位论文MI J K L ABC够'篁哆C;DI瑶荔EFGH镬?鏊 睇蘸'瓤 彳d寥二蠢!e=^吲{,f':量Il;_:&竹奠,:?g噻%.譬i/荔:?kO;7场 皑冀撰?::?髫2≯翳图2.4预测采样的标记(4X4块)在表2.2描述的9种4X4亮度块的帧内预测模式中,对模式2(直流)的修 改取决于利用A,vM中的哪些采样编码:而任何其它模式只能用于所有需要的预测 采样都可用的情况下.O(垂直)『『『眵酽 『『『『l(水平)2(直漉) 3(左下对角线)4(右下对角线)图2.5 4X4块的亮度预测模式图2.5指明了各种预测模式的预测方向.在预测过程中,如果采样E,F,G 和H仍然没有被编码,将采样D的值复制到这些位置,然后将这些位置标记为&可 用&.对于模式3~8,预测采样都是图像采样A-M的加权之和.表2.3 4×4块的亮度预测模式编号O 1 2 3 4 5 6 7 8模式垂直 水平 直流 左下对角线 右下对角线 垂直偏右 水平偏下 垂直偏左 水平偏上描述 顶部的采样A,B,C,D是垂直外推的 左侧的采样I,J,K,L是水平外推的P中所有采样是用采样A…D和I…L的平均值预测得到的采样是沿左下和右上之间45.角的插值 采样是沿右下方向45.角的外推 与左侧垂直线成26.6.角的外推(宽/高=1/2)沿顶部的水平线成26.6.角方向的外推与右侧垂直线成26.6.角方向的外推(或插值)沿底部的水平线向上成26.6.的方向插值?16X16X16亮度块的预测模式16亮度块的预测模式比较简单(图2.5),可以在一个操作内完成预测.表2.3列举了4种预测模式的预测方法,其中模式3(平面)的宏块预测值是相邻第lO页 国防科学技术大学研究生院工学硕士学位论文的项部和左侧图像采样的线性组合,对亮度变化均匀的区域预测效果明显.表2.4 模式 0(垂直) I(水平) 2(直流) 3(平面) 描述 从顶部的图像采样外推(H) 从左侧的图像采样外推(V) 顶部和左侧的图像采样的均值(H+V) 线性&平面&函数适用于项部和左侧的图像采样H和V.16X16块的亮度预测模式?8X8块的色差预测模式 帧内编码宏块的每个8×8的色差分量是从顶部和/或左侧的编码色差采样预 测得到的,并且两种色差分量使用相同的预测模式.除了模式的编号不同之外,4 种预测模式与16X 16亮度块的预测模式十分类似.色差预测模式分别是直流(模 式0),水平(模式1),垂直(模式2)和平面(模式3).o(垂直) l(水平) 20莹hg)蔺届橱图2.616x16块的帧内预测模式?表明帧内预测模式 必须向解码器表明每个4X4块的帧内预测模式,这一过程需要很大的编码量. 然而,相邻4X4块的帧内预测模式经常是相关的.不妨假设A,B和E分别是左 侧,项部和当前的4X4块(图2.7).如果4X4编码块A和B都采用预测模式1, 很可能当前块E的最佳预测模式也是1.利用这种相关性,可以用预测性的编码表 明4X4块的帧内预测模式.B4×4C4X4§秽i!爱'岩,笱A4X4静E7遣磊,4X4,:&既.!v.,?:i图2.7与当前块的相邻的4X4块对当前块E,编码器和解码器估算最可能的预测模式,即块A和块B的预测 模式中的最小值.如果这些邻近块都无法利用(不在当前片内部或者没有按照4 X4块大小进行帧内预测),将块A和块B的预测模式值设置为2(直流预测).编码器为每个4 X4块分配一个标记prev_intra4x岫red_mode.如果标记的值第11页 国防科学技术大学研究生院工学硕士学位论文为l,采用最可能的预测模式.如果标记的值为0,使用另一个参数remintra4x4_pred_mode表示预测模式的变化.如果rem_intra4x4__pred_rnode的值小于当前最可能的模式,那么将预测模式设置为rem_intra4x4._pred_mode,否则将 预测模式设置为l'em intra4x4 pred edom..1+ 2.2.2.3帧间预测 帧间预测利用以块为基础的运动补偿从编码帧或者场创建预测模型.H.264标 准支持从16×16到4X4的块尺寸范围,以及l似图像采样解析度的运动矢量(亮 度分量的1/4采样解析度).宏块或块可以使用直接预测,双向预测,以及利用单 个参考图像列表的帧间预测. ?树状补偿 在宏块中可以按照4种方式分割16X16的亮度采样,分割产生的运动补偿块可以是1个16X 16宏块,2个16X 8块,2个8 X 16块或者4个8×8块(图2.7). 在宏块中可以按照4种方式进一步分割8X8子宏块,分割结果可以是1个8X8 的子块,2个8X4的子块,2个4X 8的子块或者4个4×4的子块【31.这些块和子 宏块可以实现多种块组合.宏块的每个色差分量(Cb和Cr)的水平和垂直解析度 是亮度分量的1/2.除了块尺寸恰好是半个水平和垂直精度之外,每个色差块的分 割方法与亮度分量相同.对于色差块的运动矢量的水平和垂直分量是都是亮度的 1/2.这种宏块分割方式构成了树状结构的运动补偿.1616×16 8田目田8×16 8X84 4 4X888X8目田8X4 4×4图2.8不同尺寸的块和子块每个块或者子宏块都需要单独的运动矢量.在压缩的二进制流中,必须将每 个运动矢量编码和传输,并且对块的选择信息编码.当选择大小为16&&16,16×8或8X 16的块时,只需传输少量的运动矢量和块的相关信息,但是在具有高度细节的帧区域内运动补偿的残差可能含有较高的能量.选择大小为8×8,8×4,4 ×8或4X4的块尺寸时,在运动补偿之后可以获得较低的能量,但是需要发送大 量的运动矢量和块的相关信息.因此块尺寸的选择与压缩性能是个两难问题.通第12页 国防科学技术大学研究生院工学硕士学位论文常大的块尺寸适合图像的均匀区域,小的块尺寸对细致的图像区域更有效.◆运动矢量 在帧间预测编码的宏块中,每个块或子块是从参考图像中相同尺寸区域预测 得到的.运动矢量是预测块与当前块之间的位置偏移(具有运动方向特征的矢量 值),体现了图像中不同区域之间景物的相对运动关系.运动矢量是表征运动方 向特征的有序二元组.在帧间预测模式中,编码器同时支持像素采样解析度和亚 像素采样解析的运动估计和运动补偿,在运动矢量中用小数表示亚像素采样解析 度的运动特征(图2.9).o O o ● o ● ● o o o o o o o o o O o O o o o参e易 O◇O o 移 囝 9 0 e O O o O O o o o o o 囝 @ 国 O O O o 囝 @ 囝 O o O o @ 囝 国 o o O o o 囝 o 囝 o 囝 O 囝 O O●● ●●o● O●O●@●●●o囊9●/o●◆●● o O O O OaOo OO Oo Oo‖oO O厨谚囝o o oo O(a)当前帧的4×4块(b)参考块:向量(1.一1)(c)参考块:商Ji(0.75.-0.5)图2.9像素采样和亚像素采样预测在H.264标准中,亮度分量的运动矢量具有l/4像素解析度,色差分量的运动 矢量具有1/8像素解析度.编码器为运动补偿预测提供的高解析度的亚像素图像采 样是通过原有图像采样的插值实现的.在插值过程中,首先利用多分支滤波器将 原始的像素采样插值生成1/2像素解析度的图像采样,然后再利用原始像素采样和 1/2像素解析度的插值采样生成更高解析度的插值采样. ?单向预测 在单向预测过程中,编码器将O号或者1号列表中的编码图像作为参考图像, 进行运动估计,获取运动补偿区域.在单向预测中,预测块与当前块或子块大小 一致.如果不采用加权模式,预测块中的图像采样直接来自运动0号或者1号参 考图像列表中的运动补偿区域;否则,预测块中图像采样是运动补偿区域的加权 结果.通过运动估计,编码器用当前块的图像采样减去预测块的图像采样得到运 动补偿的残差,然后将残差,运动矢量和预测模式等信息一起编码,发送.●双向预测双向预测的两个运动补偿参考区域分别是从0号和1号参考图像列表中获取 的(需要两个运动矢量).除非在双向预测采用加权模式,预测块的中的每个图 像采样是从0号和l号参考图像列表中预测采样的平均值计算出来的.构造预测 块的公式是pred(i,_『)=(predO(i,j)+predl(i,jf)+1)&&l,其中pred(i,J『)是双向预测 采样,predO(i,,)和predl(i,_,)分别是来自0号和1号参考图像列表中的预测采样.第13页 国防科学技术大学研究生院工学硕士学位论文计算出每个预测采样之后,用当前宏块中的每个图像采样减去pred(i,,)得到运动 补偿残差.在采用双向预测编码的宏块或块中,O号和l号参考图像列表中的运动矢量都 是从具有相同时间方向的邻近运动矢量预测得出的.例如当前宏块中指向以前编 码帧的运动矢量是从指向相同帧的其它邻近运动矢量预测得到的.?加权预测加权预测能够显式或者隐式地控制参考图像在运动补偿预测过程中的相对贡 献,例如加权预测可能对&淡入&的过渡场景(一个景物渐渐融入另一个景物) 编码具有较高效率【3】.加权预测修改(缩放)了P型或B型宏块中运动补偿预测 数据的采样值.加权预测包括P型宏块的显式加权预测,B型宏块的显式加权预测和隐式加权预测.在运动补偿预测之前,采用加权因子wo或w1缩放每个预测采样predO(i,,)或 者predl(i,.,).在&显式&加权预测中,加权因子由编码器确定,在片首中传输. 如果采用&隐式&加权预测,wO和w1是根据O号和1号列表中参考图像的相对 时间间隔计算的.如果参考图像与当前图像在时间上接近,采用较大的加权因子; 如果参考图像在时间上远离当前图像,使用较小的加权因子.●直接预测对运动矢量编码可能增加的编码量,尤其是当选取小的块尺寸时待编码和发 送的运动矢量的数量明显.利用运动矢量的相关性,直接预测模式编码的宏块或 块不需要发送运动矢量.解码器根据编码运动矢量计算O号和1号参考图像列表 中的运动矢量,再按照运动矢量计算解码图像采样的残差在双向预测中的运动补 偿.解码器使用直接预测模式重构B型片中未编码的宏块.B型片的片首标记了 直接预测模式的类型.直接预测模式分为时间模式和空间模式两种. 在空间预测模式中,根据运动矢量的相关性将邻近编码块的运动矢量作为当 前块的运动矢量的预测值.编码器利用已有运动失量构造运动矢量预测值(MVP), 再对当前运动矢量与运动矢量预测值的差(MVD)进行编码和传输.构造MⅥ, 的方法取决于运动补偿块的尺寸和可用的邻近运动矢量. 假设E是当前的宏块,块或子宏块,块或子块A直接出现在E的左侧,块或 子块B直接出现E的顶部,块或子块C在项部并且与E相邻(图2.9).当预测块的大小都是16X 16时,如果有多个块直接与E的左侧相邻,那么选择这些块的顶端作为A;如果有多个块直接与E的顶部相邻,那么选择这些块的左侧作为B. 当预测块的大小不一致时,除了大小为16 X 8和8×16的被传输预测块之外,MVP 是块A,B和C中运动矢量的中值;对于16×8块,顶部的16×8块的MVP是从 B预测得到的,底部的16×8块的MVP是从块A预测得到的;对于8 X 16块,左第14页 国防科学技术大学研究生院工学硕士学位论文侧8×16块的MVP是从A预测得到的,右侧8×16块的MVP是从C预测得到的;对于忽略预测的宏块(未编码宏块),16X 16块运动矢量的MVP的构造方法与块 大小相同的情况一致(如同按照16X 16的帧问预测模式编码).如果一个或多个 编码块不可用(例如不在当前片内),需要对MVP的选择做相应修改.解码器采 用相同方法构造运动矢量预测值(MVP),然后与解码的运动矢量差(MVD)相 加.如果是忽略预测的宏块(未经编码),没有解码的运动矢量差,用MVP作为 运动矢量生成一个运动补偿宏块.B16×16C16×16雕孽耀A16×16黪j毯0§貉:16,爻167 j霪隧蟛誊萼黟'强L一~蠡{.E,'.鬟恻C16X8缴糍斓r―r囊t叩簪豸 }{戮缀糍豸缁图2.10当前块和相邻块(a)块的大小相等(b)块的大小不等按照上面的描述的运动矢量预测规则,分别计算0号和1号参考图像列表中 的运动矢量.如果1号参考图像列表中的位置相同的宏块或块中存在小于±I/2亮 度采样解析度的运动矢量(或者其它情况),将一个或两个运动矢量的预测值设 置为O;否则利用0号和1号列表中运动矢量的预测值实现双向预测的运动补偿. 在时间预测模式中,解码器按照下列步骤工作: 1.在0号参考图像列表中查找与1号参考图像列表中位置相同的宏块或块. 将0号列表中的图像作为当前宏块或块在O号列表中的参考图像. 2.在0号参考图像列表中查找与1号参考图像列表中的宏块或块位置相同的运动矢量』帆3.根据当前图像与1号列表图像之间的图像排序计数&距离&对运动矢量 MV进行缩放,得到l号列表中新的运动矢量MVI. 4.根据当前图像与0号列表图像之间的图像排序计数&距离&对运动矢量MV进行缩放,得到0号列表中新的运动矢量』嗍9.2.2.3变换与量化H.264标准的三类变换取决于残差的类型:在采用16×16帧内预测的宏块中, 对亮度直流系数组成的4×4矩阵实施Hadamard变换【5】,对色差直流系数组成的2 ×2矩阵实施Hadamard变换,对残差中的其它4X4块作整数变换. 宏块中的数据是按照图2.10所示的顺序传输的.如果宏块按照16×16帧内预测模式编码,首先发送被标记为&.1&的块,它包含每个4×4亮度块的直流变换第15页 国防科学技术大学研究生院工学硕士学位论文系数.然后,按照顺序发送编号为肚15的亮度残差块(不含直流系数).发送块 16和块17,它们分别是包含来自Cb和Cr色差分量的直流系数的2X2矩阵,最后发送编号是1 8-25的色差残差块(不含直流系数).1617亮度CbCf图2.1 1宏块内参差块的扫描顺序2.2.3.14×4残差块的变换和量化经过预测之后,对4X4块的残差实施近似余弦变换的整数变换.变换过程中 所有的操作都可以用整数运算完成,没有精度丢失,并且保证了编码器与解码器 的反变换之间没有失谐.H.264标准中定义的变换是基于DCT变换的,但是与DCT变换是有区别的.真正的4×4 DCT变换表达式为:口 口 c 一口口 CY=AXAr:口cb--a―.b一口 口(式2.1)b一C一6其中:d=争6=加sc》c=加sc争在4 X 4残差块的变换中,对变换分解为核心变换与缩放矩阵的数量积.核心 部分可以只用加法和移位运算实现;然后将缩放乘法(变换的一部分)整合到量 化操作中去,可以减少乘法的数量.除了某些不规则的残差模式,对每个系数仅 用一次16位整数乘法运算就可以完成反量化(缩放)和反变换操作,并且不会产 生任何精度丢失.因此,将DCT变换的矩阵表达式按照上述思路因式分解成如下形式:第16页 国防科学技术大学研究生院工学硕士学位论文1 1 ●d l dy=(CXCr)pE=●ol doo(式2.2).叫o..o.I可●■_-●I.d可以o●o.o铲的铲的的护的护矿%铲%贴护贴护公式中的矩阵CXCr是变换的核心部分,E是缩放因子矩阵.符号Q表示矩阵 CXCr中的每个元素与矩阵E中相同位置的缩放因子相乘,这种乘法与矩阵乘法相 比运算量大大减少.D=c/b≈.O.414t6】,用0.5近似表示d.为了保持变换的正交特 性,将b修改为:口=≥6=信,c=丢为了避免因为核心变换CXCr乘以0.5而造成整型运算的精度丢失,将矩阵C 的第2行和第4行,矩阵‖.的第2列和第4列都放大2倍,再修改后面的缩放因 子矩阵作为补偿,变换公式的最终变为:1 1 1Hc,?砸毋=[ 二…-1-.2…一21 f.1●o2―1儿j2.o屯o●q引1● ● ● ● ● ●J0(式2.3)矿%矿% 暖%%% 矿%矿% %%嘭%y=@.码7,.局=I妄÷羔][ 1圆巨ab萎b2至ab訇b2][主1宝/2-÷1/2一-≥]'式2.4)虿M石F=西P面F或者qbits=15+‖.钟(QP/6)(式2.5' 国防科学技术大学研究生院工学硕士学位论文在矩阵中的具体位置确定.为了避免舍入误差,还原缩放因子被并入逆变换之后,再与乘以64,RpW'{r=乞?9印?PF?64.W'玎是经过式2.4中的CfrWCi核心逆变换得到的经过缩放的系数.将逆变换的结果除以64,再去掉缩放因子.当O弋&Qp≤5时,定义参数V=(Qstep?即?64),因此缩放操作变为形f=zo.圪.2加(Q,佰).2.2.3.2 4X 4亮度直流系数的变换和量化式.首先对每个4X4的残差作&核心&变换(啊),然后对每个4X4块的直流参数作Hadamard变换:在编码器中,4X4亮度直流系数的变换和量化只适用于16X 16的帧内预测模%肥:lzD(i『)I-d@卜絮0'0:+2门&&(卿斛n sign(ZD&j))=sign(%(奶)在解码过程中,首先作Hadamard逆变换:/2(式2.6)其中%是4 X 4的直流系数矩阵.将%变换结果%量化:(式2.7) …….MFm,彩是参考软件中编码器使用的(O,O)位置系数的乘法因子.‰=然后进行再次缩放:(式2.8)(QP≥12) (式2.9j 形'D(j∽2‰尻.)27洲曰-2 W'DQ,j)=【%(u)‰)+21.floor(QP/6)】&&(2-floor(QP/6))(QP&12)一一…其中%缈是(0,0)位置的常量缩放因子.将再次缩放的直流系数‖'D放入所属的4X4块,再对每个4X4系数矩阵作逆变换(讲.形B).在16X 16帧内预测的宏块中,许多能量集中在每个4X4块的直流系数中,这些4X4块倾向于高度相关.经过变换能量进一步集中到少量的显著系数中.2.2.3.3 2 X 2的色差直流系数的变换和量化在色差分量中,每个4X4块的直流系数构成一个2X2矩阵(WD).在编码 过程中,先对WD作变换:第18页 国防科学技术大学研究生院工学硕士学位论文%=HP&.]再按照下列公式对计算量化结果YD:Ic~,zD(u)I_(I%九I'嵋o,o)+2门&&(qbits+1)si972(Z&i,,))=sign(r,蚴))在解码过程中,在缩放之前先进行逆变换:%=K][乙H]再按照下列公式进行缩放:c~,(驴≥6) (鲈&6)形'D(f,力=%(f,‖‰o)?2』oo,'妒76'一1 W'o(f,,)=[%(f./)'Ko,o)】&&1对块作(G1形'G)变换.2.2.4消除块效应滤波.然后用经过再次缩放的系数替换每个4X4色差系数矩阵中的DC系数,最后在编码过程中,完成逆变换之后,重构和存储宏块之前,编码器对解码宏块 实施消除块效应滤波.在解码过程中,解码器在重构和显示宏块之前对宏块做消 除块效应滤波.解码滤波能够平滑块的边缘,改善解码帧的外观【引.经过滤波的图 像可以用于将来帧的运动补偿预测.经过滤波的图像通常比斑驳的,未经过滤波 的图像更接近于原帧的复制品,能够有效地减少块的边界失真.与帧间预测不同, 帧内预测使用未滤波的重构宏块进行预测. 在滤波过程中,编码器可以选择滤波强度或者禁用滤波功能.除了片边界之 外,解码器先按照a,b,c,d的顺序对宏块亮度的垂直边界滤波,再按照e,f,g, h的顺序对水平边界滤波;然后按照i,j的顺序对宏块色差的垂直边界滤波,再按 照k,l的顺序对色差水平边界滤波(图2.12).每次滤波最多影响边晃两侧亮度和色差的三种采样.厂厂]kl出i 16X 16亮度采样j8X8色差采样图2.12宏块中的边缘滤波顺序第19页 国防科学技术大学研究生院工学硕士学位论文2.2.4.1边界强度 消除块效应滤波的输出结果取决于边界强度和穿越边界的图像采样梯度.滤 波操作中的边界强度参数bS是依据表2.5中的规则选取的(用于逐行扫描的帧). 在块失真比较明显的块边界使用较高强度的滤波,例如在帧内编码宏块的边界或 者包含编码系数的块间边界处使用高强度的滤波.表2.5边界参数使用规则 相邻采样与边界情况 P和/或q是帧内编码的,边界是宏块的边界 P和/或q是帧内编码的,边界不是宏块的边界 P和/或q都不是帧内编码的;P和q含编码系数 P和/或q都不是帧内编码的:P和q都不含编码系数;P和 q使用不同的参考图像或不同数量的参考图像,或者运动矢 量值相差一个或多个亮度采样 否则 bS=0(无滤波) 边界强度参数值 bS=4(最强)bS=3 bS=2 bS=l2.2.4.2确定滤波过程. 在消除块效应滤波之前,应该先确定如何进行滤波.只有满足下列条件,才 对来自集合(p2,pl,p0,q0,ql,q2)的图像采样实施组滤波(图2.13):1.BS&0并且2.同时满足lpO―q0I&Q,lpl―pol&B和lql一qol≤13三个条件 其中a和13是H.264标准中定义的临界值;Q和13的值随着P和q的平均量 化参数QP的增加而增加.确定滤波过程的作用是当原始图像中块边界的梯度变化 显著时,关闭滤波器.当QP很小时,除了穿越边界很小的梯度之外,任何变化都 可能作为图像特征(而不是块效应)被保留,因此Q与B较低.当QP较大时,块 扭曲可能比较显著,Q与13很大,需要更多地对边界图像采样滤波.垂直边界水平边界图2.13在垂直和水平边界上相邻的图像采样2.2-5重新排序第20页 国防科学技术大学研究生院工学硕士学位论文每个由量化的变换系数构成的4x4块按照Z字型顺序映射到16个元素的数组 上(图2.14).在采用16x16帧内预测编码的宏块中,首先扫描每个4x4亮度块 的直流系数(左上角),这些直流系数组成的4x4矩阵按照图2.13所示的顺序扫 描.每个亮度块中剩下的15个交流系数是从图2.13中的第二个位置开始扫描的. 类似地,首先按照光栅顺序扫描每个色差分量中直流系数构成的2x2矩阵,每个 4x4色差块中剩下的15个交流系数是从第二个位置开始的.开始结束图2.144X4亮度块的Z字型扫描(帧模式)2.2.6熵编码在片的层次上,语法元素是固定或变化长度的二进制编码.在片的层次和更 底层中,元素既可以是以熵编码为基础的变化长度编码(VLC)【9】,也可以是上下文自适应的算术编码(CABAC)no】.当参数entropy_coding_mode为0时【111,残 差块中的数据采用上下文自适应变化长度编码(CAVLC)U2],其它变化长度编码单元采用Exp-Golomb编码字编码.表2.5列举了需要编码和传输的各种参数.r表2.6需要编码的参数参数描述序列,图像和片层的语法元素头信息和参数宏块类型mb_type 编码块模式 量化器参数 参考帧索引 运动矢量 残差2.2.6.1每个编码宏块的预测方式表明在宏块中哪些块包含的经过编码的系数发送当前QP值与以前的OP值相比的增量 标识帧间预测的参考帧 发送与预测运动矢量的差(mvd)每个4x4或2x2块的系数数据Exp-Golomb熵编码Exp.Golomb编码【131是具有规则结构的变化长度编码,它的编码字按照下述规第21页 国防科学技术大学研究生院工学硕士学位论文则构造:【M zeros][1][1NFO】 在编码字结构中,INFO是携带信息的M位字段.0的编码字没有作为前导的 0和尾随的INFO字段.1和2的编码字有一位1NFO字段,的索引code num构造每个编码字:3&的编码字有两位INTO字段等等.Exp―Golomb编码字的长度为(2M+1)位,编码器可以按照编码字 M=floor(1092[code―num+1】)刀正同D=code.num+1―2M编码字按照如下步骤解码:首先,读取第一个1前面作为前导的M个0;其 次,读取第一个1后面的M位的INFO字段;最后,按照公式codemum=2M+INFO一1计算与Exp―Golomb编码字对应的code―hum值(编码字O的INFO和M字段都是O).表2.7列举了参数k到code―num的四种映射关系.能够为频繁出现的参数值 生成短编码字,为不经常出现的参数值生成长编码字.表2.7参数k的映射规则映射类型Ue描述 无符号直接映射,code―num=k.用于宏块类型,参考帧索引和其它teSe一种短编码字被截断的Exp-Golomb编码字表 有符号映射,用于映射运动矢量差,QP的增量和其它.参数k按照如下规则映射成code_num code―num=ElkI o【≤0)hum.code―num=ElkI一1(k&0)me映射的符号,按照标准中指定的表格将参数k映射成code2.2.6.2上下文自适应的变化长度编码(CAn.C) CAVLC对按照Z字形排列,4x4(和2x2)块的残差变换系数实施编码.设 计CAVLC的目的是有效地利用经过量化的4x4块的各种特性【121,减少编码量. 1.经过预测,变换和量化之后,通常量化结果转化为绝大多数元素为0的稀疏 矩阵.CAVLC采用run-level编码紧凑地表示数组中的0元素串. 2.按照Z字形顺序扫描之后,最大的非零系数通常是±1的序列,CAVLC用 紧凑的方式标记出现频率高的±l系数的数量. 3.在相邻块中,非0系数的数量是相关的.使用查表法对系数的数量编码,查 找表的选择取决于临近块中非O系数的数量. 4.在重新排序数组的起始处(与直流系数相邻),非0系数的level值倾向于 很大,高频方向的level值很小.在VLC查找表中选择适当level参数取决于最近第22页 国防科学技术大学研究生院工学硕士学位论文编码的level值大小,CAVLC通过这种自适应过程充分地利用了相邻块中非0系数的相关性..使用CAVLC对包含变换系数实施编码的过程如下:●对系数的特征编码(coeff token)第一个变化长度编码coeff token对非零系数的总数(TotalCoeffs)和延续的 ±1数量(TrailingOnes)编码.TotalCoeffs可以是从0到16的任意数,TrailingOnes 可以是从0至3的任意数.如果延续的±1数量多于3个,只有最后3个作为&特 例&处理,其它的作为普通系数编码.标志codedblockpattem指明了宏块中哪些8x8块包含非0系数,但是在8×8编码块中可能存在不包含任何非0系数的4x4 子块,因此在任何4x4子块中TotalCoeffs都可能为0.TotalCoeffs出现最频繁, 因此为它分配最短的VLC编码字. 在CAVLC中共有4种用于4x4块的coeff token编码的查找表,其中3个变 化长度编码表和1个固定长度编码表可供选择.对表的选择取决于左侧和顶部的 编码块中非0系数的数量,将它们分别记作nA和nB.对参数nC的计算如下所示: 如果顶部和左侧块nB和nA都可用(例如在相同的编码片中), nC=round((nA+nB)/2).如果只有顶部存在,nC=riB;如果只有左侧的块可用, nC=nA;如果顶部和左侧都不可用,nC=0. 按照参数nC的值选择coeff token的查找表,使VLC的选取适合相邻块中编码系数的数量(上下文自适应).当nC为0或l时,选择表1:当nC为2或3 时,选择表2;当nC∈{4,5,6,7)时,选择表3;当nC≥8时,选择表4.表1倾向于较小数量的系数,专门为较小的TotalCoeffs指派短编码,为值较大的TotalCoeffs 指派长编码.表2倾向于中等参数数量(为TotalCoeffs的值在2-4附近的指派短 编码),表3倾向系数数量大的,表4为每对TotalCoeffs和TrailingOnes指派6 位固定长度的编码.?对TrailingOnes的符号编码 对于coeff token标记的每个TrailingOnes,符号采用一个二进制位进行逆序编码(O=+,1=.),按照从最高频率的TrailingOnes开始的顺序进行编码. ?对剩下的非0系数level值编码 残差块中的每个非O系数的level值(符号与数值)是按照逆序编码的,从最 高频率开始,向直流系数前进.每个level值的编码是由前缀(1evel)xiferp_后和 缀(1evel suffix)组成的.后缀的长度(suff'lxLength)可以是O~6位之间的编码,suffixLength的选择取决于每个连续编码level的数量(上下文自适应).小的 suffixLength适合于低数量,大的suffixLength适合高数量.suffixLength的选择适 应如下步骤:第23页 国防科学技术大学研究生院工学硕士学位论文1.通常suffixLength初始值为0;除非O系数多于10个,延续的±1数量少 于3个,此时将初始化设置成1. 2.对最高频率的非O系数编码. 3.如果此系数的量级比预定义的临界值大,增加suffixLength的值.如果这 是编码的第一个level参数,并且suffixLength的初始值为O,将suffixLength设置为2.采用此方法选择的前缀(随后是整个VLC)与最近编码的系数的量级匹配. 表2.8列出了当sumxLength取不同值时,使suffixLength值增加的临界值:第一 个临界值是0,这意味着第一个level系数经过编码后,suffixLength值总是增加.表2.8使sufflxLength增加的临界值?对前一非0系数的前导0总数编码 在重新排序的数组中,对最高非0系数前面出现的0的总数实施VLC编码. 单独发送一个VLC表示0的总数的原因是许多块在数组的起始处包含多个非0系 数,采用这种方法意味着从起始位置开始的连续0的数量不需要编码.◆对连续0的数量编码每个前导0的数量(run before)是按照逆序编码的.对每个非0系数的runbefore参数实施编码是从最高频率开始的,但是有两个例外: 1.如果不再有0用于编码(例如E[run before]=tcItal zeros),没有必要 对随后的run before编码..2.没有必要对与最后的非0系数(最低频率)对应的run before编码. 选择每个连续0的数量的VLC取决于未经编码0的数量(ZerosLeft)和前导 0的数量(run―before). 2.2.6.3上下文自适应的二进制算数编码(CABAC) 当图像参数集的entropycodingmode标志为1时,编码器和解码器用上下文自适应的二进制算数编码(CABAC)对H.264的语法元素进行编码或解码.编码 器根据语法元素的上下文为每个语法元素选择概率模型,利用本地统计的自适应 概率估计,通过更高效的算术编码获取良好的压缩效果. ●CABAC的编码过程 1.将非二进制值符号(例如变换系数或运动矢量,以及具有2种以上可能取 值的任何符号)映射成多位二进制码: 2.选择上下文模型.根据近期编码的数据符号的统计结果,在可选模型中选第24页 国防科学技术大学研究生院工学硕士学位论文择多个二进制位的概率模型.上下文模型存储每一位是1或0的概率. 3.依靠选择的概率模型,算术编码器对每个二进制位实施编码. 4.按照实际编码的二进制值对选中的上下文模型进行更新. ?上下文模型 H.264标准定义了每个语法元素的上下文模型和二进制化方案.针对不同语法 元素,有近400个独立的上下文模型.在每个编码片的起始处,上下文模型的初 始化取决于量化参数9P的初始值,因为Q垆的初始值对各种数据符号的出现概率 有显著的影响.除了允许适应不同类型视频内容之外,对于P型,SP型和B型片, 在每个片的起始处编码器可以选择三套上下文模型初始化参数中的一套. ?算术编码引擎 H.264标准描述了算数解码器的部分细节,包括三个方面的特征属性: 1.通过二进制位O或1中的最小概率符号(LPS)的64个独立概率状态的 转换过程实现概率估计. 2.在每次计算新的范围之前,将表示算术编码器的当前状态的范围R量化为 小范围的预设值. 3.绕过上下文建模,按照一种接近均匀分布的概率分布为数据符号定义编码和解码过程.2.3小结本章通过比较几种广泛使用的视频编码器,得出H.264的优缺点,适用范围, 及适合于网络视频的编码.从编码图像层次结构的编码数据格式入手,以编码过 程中的不同阶段为脉络,介绍了H.264视频编码技术的基本原理和突出特点.重 点研究了预测,变换,量化和熵编码过程.这四个阶段是建立编码效率的基础, 为后续的快速算法评估及提出奠定了基础.第25页 国防科学技术大学研究生院工学硕士学位论文第三章编码器的设计与算法改进为了降低H.264视频编码器的复杂性,提高编码器性能,本章以参考软件JM 为基础,提出了符合H.264扩展协议子集的网络视频编码器原型.按照视频编码 的性能评价标准,着重分析了预测过程的计算复杂性,通过对编码器设计的关键 技术研究,本文提出了启发式预测模式确定算法.该算法首次将宏块中预测块划 分与确定最佳预测模式联系起来,利用视频序列在时间和空间上的各种相关性, 在相邻宏块的预测信息启发下同时对宏块的预测块划分和预测模式加以推测,通 过缩小侯选的预测模式范围方法实现了预测过程加速.该算法易于实现,能够很 好地与多种快速搜索算法结合.3.1编码器的设计3.1.1编码器的特征 在H.264编码标准中,协议子集是定义编码器中算法特征和等级限制的子集. 等级限制包括针对不同协议子集的通用限制和针对特定协议子集的专门限制.在 H.264标准中定义了基线,主干和扩展等七个协议子集,基线协议子集主要用于视 频电话,视频会议和无线通信应用领域,主干协议子集适合电视广播和视频存储 等娱乐事业,扩展协议子集主要针对高效率的流媒体应用,其它几个子集主要是 面向高解析度视频等应用的. 本方案中的编码器符合H.264的扩展协议子集n11.在扩展协议子集中编码工 具支持帧内编码的I型片,帧间编码的P型片和B型片,以及适合同源编码流之 间切换SI型片和SP型片,支持具有加权的帧间预测和上下文自适应的变化长度 编码(CAvLC),支持片组结构和任意片顺序(ASO),能够生成冗余片,更好 的支持网络错误恢复;不支持上下文自适应的二进制算术编码(CABAC)和交错 的场结构.为了满足网络视频编码器的实时性要求,降低编码器的复杂性,减少 编码时间,在设计实现中不采用SI型片,SP型片和具有加权的帧间预测,并且限 制编码器对任意片顺序的支持.3,1.2编码器结构H.264视频编码标准定义了编码视频中二进制流的语法结构和对二进制流解 码的方法.与其它视频编码标准一样,H.264标准没有具体规定编码器的结构.为此,ⅣT提供了涵盖多种协议子集的参考模型软件JM,但是它的结构比较复杂,第26页 国防科学技术大学研究生院工学硕士学位论文没有针对特定的应用环境进行编码和解码过程的优化处理.在符合特定协议子集 的前提下,H.264编码标准不仅允许优化编码器结构和性能,还允许简化编码器的 计算复杂性.在本方案中,网络视频编码器是以参考软件JM为基础实现优化的. 在H.264标准中帧图像或者场图像编码是以宏块为基本单位的.按照宏块编 码过程中的数据流向,图3.1描绘了H.264编码器的部分结构和基本功能.对于宏 块的视频编码数据流向来说,宏块编码子系统是有环的自反馈数字信号系统.在 输入与输出之间的数据通路上,原始视频数据和重构视频数据依次经过预测,残 差计算,变换,量化,重新排序和熵编码之后,将熵编码的结果作为输出传送到 片编码子系统.我们将输入与输出之间的数据通路称作正向编码通路.将正向编 码通路上的量化输出作为反向量化的反馈输入,量化结果经过反向量化,逆变换, 再与预测相加得到重构宏块,有选择的将重构宏块反馈给帧内预测模块和消除边 界块效应滤波模块,最后将滤波结果输出到解码图像缓冲内作为参考图像.我们 将这一反馈过程称作重构反馈通路.图3.1编码器的基本结构从编码器的结构可以看出,与其它视频编码标准相比,H.264标准的宏块编码 在细节上发生了许多变化,其中比较显著的是为了改善重构图像质量增加的消除 块边界效应滤波模块.编码器利用未经滤波的重构图像采样构造帧内预测.与构 造帧内预测相反,编码器利用经过滤波的重构图像采样构造帧间预测(图3.1中的 参考帧F0,).如果原始视频满足忽略预测条件,直接将宏块数据作为变换输入进 行后续处理,处理结果传送到片编码子系统. 针对编码图像中宏块,片和片组结构之间层次化关系,图3.1和图3.2按照图 像结构的层次关系描述了宏块,非帧场自适应的片和片组的编码过程.在本方案 中,在编码图像中采用单个片组结构,'而且片组内仅包含一个片,宏块在编码图 像中按照光栅扫描顺序排列.这种做法避免了在支持多个片组和任意片顺序 (ASO)的图像结构中采用复杂的宏块地址映射机制,简化了宏块映射规则,能第27页 国防科学技术大学研究生院工学硕士学位论文够有效的降低编码器的计算复杂性.但是,也失去了灵活的片组结构在利用前景 与背景的分离,相关区域隔离对编码进行优化,以及利用散布映射实现错误恢复 隐藏等方面的优势.(-)非帧场自适应的片编码'(b)基于片组和片的帧编码图3.2非帧场自适应的片编码在准备阶段,编码器按照二进制流的语法结构将序列参数集和图像参数集组 装成N&L单元,按照附录B的格式将NAL单元写入多媒体存储文件或者发送给 H.264视频解码器.在编码阶段,如图3.2中(b)所示,编码器首先进入当前片 组内部,利用宏块地址映射关系遍历片组中每个片,再按照图3.2(a)所示的步 骤对片内的每个宏块编码,编码器不断重复上述操作,直至所有片组完成编码为 止.整个编码过程还包括针对图像参数集和序列参数集在宏块,片和片组层次上 进行的优化编码,这些优化过程在不同程度上增加了编码复杂性.3.2算法优化的难点分析3.2.1视频编码的性能评价在各种视频编码技术中,始终围绕着图像质量,编码率和编码速度三个方面 进行优化.其中图像质量和编码率之间的关系是衡量编码器质量的重要指标.在 编码率.失真优化(RDO)指标中,通过计算整个编码过程的RDcost值衡量视频第28页 国防科学技术大学研究生院工学硕士学位论文编码性能.RDcost=d+Axr,其中d表示原始图像采样与重构图像采样的均方 差,,.代表编码率,天是常数因子.从公式可以看出计算RDcost必须按照特定预 测和变换模式完成整个编码过程,运算量相当大.图3.3描绘了RDeoSt计算过程.图3.3计算编码率.失真开销在对视频的图像质量要求不严格的应用中常采用残差绝对值和(SAD),残 差变换结果绝对值和(SATD)代替RDcost作为性能指标.与RDeost相比,SAD 和SATD值分别是在残差计算和残差变换的结果,计算复杂性小于RDcost计算. 3.2.2预测过程的复杂性 H.264标准支持多种帧内预测模式和帧间预测模式.在编码率.失真优化模型 中,需要计算不同预测模式和变换模式组合条件下编码产生的所有RDcosft值,将 RDCost值最小的模式组合是编码率.失真优化性能最优的预测模式.在模式组合中 采用的预测模式作为编码器最终采用的预测模式. 对于帧内预测,在宏块中共有MSx(M4x16+M16)种亮度和色差分量的预测模 式组合,其中M8,M4和M16分别表示8×8色差块,4X4和16X 16亮度块的 帧内预测模式数量.在帧内预测中,确定编码率.失真优化性能最好的帧内预测模 式需要计算640种不同模式下的RDcost值.编码率.失真算法显著增加了H.264视 频编码的复杂性和计算量.SKIP MBl6Xt6 MBl6x8 MB8x18口口日田侣桊∞9x161144日田田 日田田 日田田日田田:宝侣垤,Il●0户,lj口||口第29页+×囵州…烨啪16Ⅱ0Ⅱ生扭_图3.4模式确定的最大RDcost计算量 国防科学技术大学研究生院工学硕士学位论文帧间预测模式的RD优化过程的计算量较小,RDcost的计算量大约是帧内预 测模式的1/4~1/s.图3.4显示了确定预测模式的最大RDcost计算量.帧间预测模 式的RD开销也随着搜索窗口尺寸变化而变化的.从分析结果看,必须改善帧内预 测和帧间预测的性能,简化预测模式的确定过程,降低系统的计算开销. 3.2.3快速预测的局限性 在预测模式确定过程中,无论是快速运动估计,还是快速帧内预测基本上都 是利用视频图像的多种或者某种相关性剔除视频序列中的冗余信息.在快速运动 估计算法中,利用时间轴上图像运动变化的相关性和连续性,以及相邻宏块或者 块的在空间上的相关性,预测当前宏块或者块的运动矢量,在FME算法中甚至将 残差变换结果的相似性也应用到运动估计当中.而快速帧内预测算法也主要是利 用空间相关性进行优化. 单纯的利用视频序列的相关性发掘快速预测算法潜力的做法已经发挥到极 致,很难进一步提高预测速度.快速帧间预测算法和快速帧内预测算法对编码速 度的提高是有限的,为了实现编码过程的加速,必须通过其它途径提高预测编码 速度.快速确定预测模式算法根据帧间预测和帧内预测出现概率的统计数据,在 现有快速预测算法的基础上通过调整评估预测模式的计算顺序和施加限制条件的 方法,大幅度的提高了预测速度.3.3启发式预测模式确定算法3.3.1算法的基本思想 本文提出的预测模式快速确定算法是基于启发式思维的.该算法的思路十分 简单,比如一个人在外出之前,看看外面行人的着装就能够大概知道天气情况一 样.当前待编码宏块的图像运动趋势和纹理细节都很可能与在空间上的相邻或者 时间轴上的处于相同位置的宏块极度相似.在推测帧间预测模式时,既要考虑到 相邻宏块之间运动矢量相似,也要考虑到相邻宏块具有图像纹理细节相似的树状 运动补偿结构.对于帧内预测模式,相邻宏块的图像纹理细节同样影响预测模式. 启发式算法就是利用这个特征,将预测模式的确定过程尽量限制在可能性最大的 候选预测模式范围内.3.3.2算法的实现步骤启发式预测模式确定算法借鉴了快速确定预测模式算法中比较各种预测模式 编码性能的计算顺序,采用选择性的帧内预测模式确定过程;增加了预测模式和第30页 国防科学技术大学研究生院工学硕士学位论文预测块划分的推测过程,并且在帧间预测中采用动态搜索范围技术,在不同层次 上缩小了候选预测模式的范围(图3.5).该算法对预测方式的确定过程由以下步骤组成:1.在宏块编码信息中加入最佳预测模式下宏块中块的划分信息,为相邻宏块 或者块预测编码提供参考(包括时间轴上的相邻关系).首次预测过程中 没有预测信息可供参考.图3.5启发式预测模式确定过程第31页 国防科学技术大学研究生院工学硕士学位论文2.按照相邻编码宏块中预测模式和预测块的划分情况,推测当前宏块或者块的最佳帧间预测模式.将推测结果与临界值比较,如果编码图像的性能损 失低于临界值,当前宏块的预测模式和预测块划分信息保持不变,继续作为确定预测模式的参考依据,算法执行结束;否则,继续执行.3.判断16×16块帧间预测是否为SKIP模式,如果预测模式是SKIP模式, 将最佳帧间预测模式的相关信息,算法执行结束;否则,继续执行. 4.计算其它帧间预测模式的编码性能,确定最佳帧间预测模式.利用平均编 码率(AR)与平均边界误差(ABE)的比较结果,判断是否有必要确定 最佳帧内预测模式.如果AR&ABE,将最佳帧间预测模式作为最佳预测 模式,保存当前宏块的预测模式和预测块划分信息,算法执行结束;否则, 继续执行. 5.利用相邻编码宏块的预测模式信息推测最佳帧内预测模式,如果预测结果 的编码性能满足提前终止的临界条件,将预测结果作为当前宏块或者块的 最佳帧内预测模式,保存预测信息,算法执行结束;否则,继续执行. 6.确定最佳帧内预测模式,比较最佳帧间预测模式与最佳帧内预测模式的编 码性能,确定最佳预测模式,保存预测模式和预测块划分信息.再次对宏 块预测编码时,直接从步骤2开始,忽略算法的初始化过程.3.3.3早期终止措施在计算编码率失真优化的过程中,有许多由于确定预测模式的计算顺序和方 式不合理造成的额外计算开销.帧内预测模式统计数据【27】表示在P型帧中帧内预 测模式作为最佳预测模式的最大概率是O.09,而平均概率是0.03.尽管这些的数 字来自特定的输入视频特征,在实际视频序列中出现最佳帧内预测模式的概率也 相当小.先确定最好的帧内预测模式,再确定最佳的帧间模式不利于降低预测过 程的计算复杂性. 在本文提出的启发式预测模式确定算法中,先确定出现机率高的最佳帧间预 测模式,再考虑出现机率小的最佳帧内预测模式.为了实现早期结束语才模式的 确定过程,采取了推测最佳预测模式,早期确定SKIP模式和选择性的帧内预测模式确定等措施.3.3.3.1推测最佳预测模式 根据宏块所在片的类型,首先利用相邻编码宏块的预测块划分情况推测当前 宏块的预测块划分,再利用视频序列的各种相关性推测当前宏块的最佳预测模式. 无论是推测哪种最佳预测模式都必须计算预测模式的失真,按照失真与临界值的 比较结果选择后续操作.比较结果表明当前宏块与相邻宏块相关程度:第32页 国防科学技术大学研究生院工学硕士学位论文1.如果推测得到的预测模式的失真d小于临界值Tl,表示推测与实际情况 非常接近,可以将推测结果作为最佳预测模式,结束预测模式确定过程: 2.如果失真d大于临界值Tl,但是小于临界值T2表明相邻宏块的图像纹理 特征和运动趋势比较接近,需要在推测结果的基础上继续搜索,逐步求精. 3.如果不满足任何临界值,表明推测结果与最佳预测模式差距较大,不能作 为候选最佳预测模式,必须返回通常的预测模式确定流程. 3.3.3.2早期确定SKIP模式 在确定最佳的编码预测模式过程中,首先检查SKIP模式,因为当一个宏块同 时满足多个相关条件时,SKIP预测模式是最佳模式的概率很高.因此,如果条件 满足,将SKIP模式作为最佳宏块预测模式,提前终止预测模式的确定过程.早期 确定SKIP模式的好处是可能忽略后面的RD计算,运动补偿和帧内预测. 检查是否能够选择SKIP模式作为指定的宏块的最佳预测模式.如果在编码过 程中选择SKIP编码模式,宏块应该同时满足下列条件: 1.最佳的运动补偿块尺寸是16×16; 2.参考帧恰好是前一帧; 3.运动矢量是(0,O)或者与MVP相同; 4.变换系数都量化成0. 在检查这些条件时,首先估计指定16X 16块的运动矢量和参考帧,然后计算16X16块的RDcostl6值.一旦四个条件都满足,就不再检查其它的帧内模式.&早期确定SKIP预测模式&只需要改变帧间预测模式的检查顺序,因此该算法很容易 在传统的编码器结构中实现,并且该方法没有额外的计算. 3.3.3.3选择性的帧内预测模式确定 H.264标准允许帧内预测模式在P型片中存在,尽管当前宏块属于帧间预测片, 编码器也要检查所有4X4和16×16的帧内预测方向.我们将4X4块看作基本计 数,因为H.264标准以4X4块为单位进行变换和编码.确定帧内预测模式计算开 销很大,.如果能够精确判断预测模式是否为最佳的,可以大大降低确定预测模式 过程的计算复杂性.帧间预测模式利用时间轴上不同图像中像素之间的相关性, 而帧内预测模式利用图像在空间方向上的相关性.如果当前块具有多个空间相关, 块很可能是帧内编码块.恰当的判断帧内和帧间模式需要对空间和时间相关性的 进行客观的度量.为了避免额外的计算量,如果能够利用所有就绪的,可供使用 的中间结果,对相关性的度量是值得的. 在确定最佳帧内预测模式过程中,将当前块与临近编码块的边界像素之间的 平均边界误差(ABE)作为空间相关程度的指标.同时也用到了平均编码率(AR) 的概念,例如在最佳帧间预测模式下对经过运动补偿的残差数据编码耗费的平均第33页 国防科学技术大学研究生院工学硕士学位论文位数作为时间相关性的指标.因此,比较最佳帧间预测模式的平均编码率和当前 块的平均边界误差.为了达到这一目的,我们定义平均编码率(AR)表示没有头信息的纹理数据的位数:AR=i苦(#bitsoftexturedata)x?,其中A=0.85x2啪,384=(16X16)LⅢ+(8×8)岫x2因为与纹理数据关联的位数已经在确定最佳帧间预测模式的RDcost时计算过了,. 求AR的值不需要额外的运算过程.帧内预测使用相邻的编码块的像素采样.如图 3.6所示,我们也定义平均边界误差(ABE):3BE=艺l艺哪(五y+f)一Kk.(x-l,y+O{+I艺心o+'J,)一‰.(z+j,y一叫J+∑I‰(ex,cy+i)-UR,.@一l,钞+叫+I【,啦向+i,cy)-Uh.@+f,钞一州JIO+∑Iy-呻(c墨钞+i)一%.(&一l,钞+叫+I圪r皤(a+'钞)一%.(cr+i,cy-1)lJABE=去泓其中64=(16+16)嘶+(8+8)岫×2其中SBE表示边界误差总和,‰,Uo.s,‰是当前宏块的原始像素数据;k,‰,‰是宏块的重构数据,(毛力,(a,钞)分别表示亮度和色差块中最左侧的像素.%y) ,■1 ____I棚兜彩 势 螂 》Zr】lTⅡn蓍髂盘%7一矗Zr{ 移群图3.6计算平均边界误差很显然,如果编码率足够低,那么选择最佳的帧间预测模式比最佳的帧内预 测模式更加容易获胜.因此,如果AR&霓ABE,(k是用户定义的某个正数)我们 建议忽略对所有帧内预测模式的检查;否则,编码器计算帧内预测模式的RDcost, 与最佳的帧间预测模式的]之E)cost值作比较.计算ABE时,根据相邻块可能有4 种不同情况: 1.无法使用左侧,无法使用顶部:如果AR=0,跳过对帧内模式的调查;否则ABE=0.2.无法使用左侧,可以使用顶部:||||=G+力 一 ‰ &X +y 一 &Ⅵ ,卜,∑脚‰&+缈一‰ 协+钞一NⅥ ,卜,∑脚 ‰&+秒一‰ @+‖一叫脚=培∑脚一I驼 k{li 3.可以使用左侧,无法使用顶部:第34页 国防科学技术大学研究生院工学硕士学位论文SBE=萋l‰伍),+0一k.o―l,),+f小毒I‰@,cy+D一%.@^钞+f)l】+∑7 l‰慨,cy+o一%.伍^钞+j羽,.o,神J∞&ABE:!SBE'32?可以使用左侧,可以使用顶部:按照图3.6描述的过程计算ABE. 图3.5显示了I型片或B型片的预测模式确定过程.用户定义的常数k用于调 节ABE与AR的重要性,在通常情况下k=l. 3.3.4确定帧间预测模式在启发式预测模式确定算法中,首先利用相邻编码宏块提供的树状运动补偿 块划分信息,初步确定可能出现最佳帧间预测模式的运动补偿块划分:在此基础 上采用基于预测的带状运动搜索算法中的常用方法,实现运动矢量预测,自适应 提前终止和运动矢量提炼.经过两个阶段,能够快速的确定帧间预测模式.3…34I运动补偿块的划分 在B型或者P型片中,假设当前宏块是E,相邻宏块分别是A,B,C和D.如图3.7所示,将每个宏块分成4个8×8的子宏块,以8×8的子宏块为单位记录 块的帧问预测模式和树状运动补偿块的划分信息.宏块A中的子宏块A1和A3, 宏块B中的子宏块B2和B3,宏块D中的子宏块D3都能够为确定当前宏块E中 的子宏块EO的运动补偿块的划分提供参考.为了简化运动补偿块划分的复杂性, 仅将子宏块AI,B2和D3作为划分运动补偿块的参考依据.如果无法利用A1, 可以用A3代替;如果无法利用B2,可以用B3代替.B C0l0lOlD 232323‖,:&:,….善:..7:~&薹j.Ol嚣参々0}j:.,≥《:l.篱A奎≥o:,rf 堙 ?t23弘2::,3乒};? E,-i.77.%图3.7以8 X 8子宏块为基础推测帧间预测模式选择运动补偿块大小的规则如下:1.当A1,B2和D3中的2个或者2个以上子宏块的预测模式相同,子宏块 EO采用占多数的预测模式和树状运动补偿.第35页 国防科学技术大学研究生院工学硕士学位论文2.如果3个相邻子宏块的运动补偿块大小和预测模式各不相同,选择8×8. 的运动补偿块. 3.如果多个相邻宏块采用16x16的运动补偿块,将当前宏块E中所有8 X 8 块的预测模式限制在16x16的帧间预测模式范围内. 4.如果多个相邻子宏块的运动补偿块尺寸小于8×8,需要对运动补偿块的 划分进一步细化. 5.当所选运动补偿块的大小是16x16时,如果满足SKIP预测模式所需的全 部条件,直接按照SKIP模式预测,省略确定帧间预测模式的其它步骤. 如果利用相邻宏块中的子宏块A1,B2和D3的预测模式和运动补偿块划分信 息,推测得到的预测信息不满足临界条件时,可以利用A3和B3,如果C2存在也 可以利用它的预测信息,再次推测当前子宏块E0的预测模式和运动补偿块划分信 息.采用与E0类似的方法划分E1,E2和E3的运动补偿块.3…3 4 2预测性的运动估计在启发式预测模式确定算法中,采用了基于运动矢量预测的快速运动估计. 与全搜索(FS)算法相比,预测性的运动估计具有较低编码计算复杂性和较高的 编码效率.其效率主要归结为三个方面:初始阶段的高可能性预测,可靠的早期 终止条件,以及简单,高效的搜索模式逐步提高运动估计的准确性.斜 快! 虿石 】矢 目妻无W一'上r盥,,\\\l』 17』●二工7圈\,|k, \I/rr,C\1▲X h^占ID_.鱼 \型1 _r厂BCfZ鬲 湘Il, U 1 JA I^3一』yJ gM 矿.Pr ed__咿AE图3.8运动矢量的中值预测确定初始预测点是实现快速运动估计不可缺少的一项重要技术.为了提高运 动估计性能,在快速运动估计算法中,将搜索区域设置在整个搜索窗口中块的最 小失真(MBD)点周围.初始预测点的选择利用了视频序列中存在的各种相关性,包括时间和空间上的相关性.在无法利用时间和空间相关性时,初始预测点被放置在窗口中的固定位置,通常是搜索窗口的中心.空间预测主要是利用相邻宏块或者块的运动矢量的相关性进行运动矢量预测.图3.8显示了常用的运动矢量中值预测.运动矢量的中值预测与当前块的运动矢量之间趋向于高度相关,符合物体 局部小范围内运动高度近似的规律.时间轴上的位于相同位置宏块也具有很强的第36页 相关性,因此在算法中还采用了基于运动矢量缩放的时间预测模式. 如果预测值没有满足早期终止标准,用迭代搜索模式提炼运动估计,最终停 止在预测值集合的最佳预测点或者局部最佳预测点.比较当前预测模式造成的编 码失真与编码失真的预测值,如果当前预测模式的失真大于失真的预测值,采用 菱形搜索算法继续搜索最佳预测点.如果失真的预测值足够小,运动矢量可以与 搜索窗口中心处于相邻的小范围内,这表明小菱形运动搜索具有较高效率;否则 采用大菱形运动搜索.在大菱形运动搜索过程中,如果具有最小的失真的预测点 位于大菱形运动搜索的菱形中心,采用小菱形运动搜索取代当前的大菱形运动搜 索,以原有的大菱形运动搜索的中心为起点继续搜索最佳预测点.最后小菱形运 动搜索停止在最佳预测点或者局部最佳预测点上.图3.9演示了菱形运动搜索算法 的搜索过程.' 一◇隧圜◇一一 {参疆参■一 一参匿◇i瓣.1熏■二蒸鎏3.3.4.3动态搜索范围技术 如图3.8所示对4×4块E做运动估计,与之相邻的4X 4块分别是A,B,C 和D.假设块A,B和C的运动矢量是(MV_Ax,MV_Ay),(MV_Bx,MV_By)和 (MV_Cx,MV_Cy),输入搜索范围是input_search_range.在此条件下,新的搜索范 围是按照下列步骤确定的: 1.检查相邻4×4块的编号,如果可以使用的相邻块的编码大于1,转到步 骤2,否则转到步骤4. 2.按照给定的相邻块A,B和C的运动矢量,将运动矢量中水平和垂直分量 绝对值中的最大值作为当前块E的运动矢量最大值.如果无法利用相邻 块,视相邻块的运动矢量的分量为0.如果无法利用块C,使用处于左上第37页 国防科学技术大学研究生院工学硕士学位论文角位置的块D代替块C. 3.10cal_searehrange_i=maxO!【j,2×ma】【MY Ej),i=x,Y,其中本地统 计,k―i的定义是:J(input―search―range+4)&&3%圭0七一f={(3幸input―search―range+8)&&4 【input―search―range+2)&&20≤%≤2其它ai=abs阑A叠+abs阑墨叠七abs心烈S叠4.如果可以利用的相邻块编号大于1,运动搜索范围受如下限制: new_searchrangei=min(input__search__range,Iocal_search__range i)否则,new_searchrangei=input_search_range 5.new_search_range=max(new_search_range_x,new_searchrange__y)D ABCE图3.10搜索范围确定中的参数块位置在子块层次上确定新的搜索范围,取代原来在宏块层定义的动态搜索范围. 在子块层次上确定搜索范围可以更好地适应从宏块内的一个块到其它块的搜索过 程.动态搜索范围(DSR)与快速运动估计算法易于结合,并且PSNR损失不高于O.1dB.3.3.5确定帧内预测模式 在传统视频标准中,I型编码图像是对图像中所有基本单元直接进行变换编码 的结果,与帧间编码相比帧内编码产生的数据量更大.H.264标准的帧内预测充分 发掘了视频序列中的空间冗余,利用图像中相邻宏块或者块的空间相关性提高帧 内编码效率.H.264标准的帧内预测编码技术优于JPEG2000静止图像压缩标准∞】, 但是帧内编码的计算复杂性相当高. 3.3.5.1推测预测块的尺寸 与帧间预测相比,帧内预测模式下的预测块类型较少,推测宏块的预测块尺 寸相对简单.在I型片中,利用当前宏块左侧和顶部的相邻宏块的预测块尺寸推测 当前宏块的预测块大小.当前宏块左侧和顶部的相邻宏块中的预测大小相同时, 当前宏块的预测块大小与相邻宏块中的预测块大小一致;否则,当前宏块的预测第38页 国防科学技术大学研究生院工学硕士学位论文块大小与左上角的相邻宏块中的预测块大小一致.3.3.5.2推测帧内预测模式 以4X4的亮度块帧内预测为例,按照顺时针方向对帧内预测模式进行重新排 序.表3.l显示了重新排列的4X4亮度块的帧内预测模式顺序.经过重新排列的 帧内预测模式有助于推测当前宏块内预测块的帧内预测方向.表3.1重新排序的4X4亮度块的帧内预测模式 编号0 1 2 3 4 5模式垂直 垂直偏左描述 顶部的采样A,B,C,D是垂直外推的 与右侧垂直线成26.6.角方向的外推(或插值)I 采样是沿左下和右上之间45.角的插值 P中所有采样是用采样A…D和I…L的平均值预测得到的 沿底部的水平线向上成26.6.的方向插值 左侧的采样I,J,K,L是水平外推的 沿顶部的水平线成26.6.角方向的外推 采样是沿右下方向45.角的外推 与左侧垂直线成26.6.角的外推(宽/高=1/2)左下对角线直流水平偏上水平67 8水平偏下右下对角线 垂直偏右相邻块的帧内预测模式也存在很强的相关性,在算法中我们利用这种相关性 推测当前块的帧内预测模式.如果当前块的左侧和右侧相邻块的预测模式相同, 当前块的预测模式与相邻块的预测模式相同.如果左侧和右侧块的预测模式不同, 在重新排列的帧内预测模式中选择介于两种预测模式之间的帧内预测模式作为当 前块的预测模式.如果根据相邻块推测得出的帧内预测模式与最佳帧内预测模式 差距较大时,以推测帧内预测模式为起点,依次计算和比较两侧帧内预测模式的 视频编码失真,确定最佳帧内预测模式.3.4算法的性能分析3.4.1测试环境启发式预测模式确定算法是在H.264参考模型软件JM 9.6的基础上实现的, 将运行WindowsXPSP2操作系统,采用奔腾Ⅳ2.8GHz处理器的PC机作为测试平台.分别对图像大小为QCIF的coast,foreman,news和silent四个标准视频测 试序列进行了编码测试实验,并且与参考模型软件JM中的快速预测算法和优化选项进行比较.下面列举了测试实验中三种算法共同使用的配置:第39页 参考图像数量为5; 编码图像序列为I.B.P.B.P顺序; 采用8位像素表示; 采用CAVLC编码; 支持Hadmard变换; 支持编码率.失真优化(RDO): 不支持8×8变换和残余色差变换: 不支持错误恢复机制; 3.4.2算法的性能比较 通过测试,本文对启发式预测模式确定算法,EPZS和UMHexagonS三种算法 的运行coast,foreman,news和silem四个标准视频序列的实验结果作了下列比较: 1.在不同视频序列测试条件下,三种算法的编码性能如下:岔 蟹 一丑棼 逛 趔 暨图3.11coast测试序列的性能比较如图3.11所示,对于coast测试序列,启发式算法的性能介于EPZS和 UMHexagonS算法之间,在不同量化参数的编码条件下没有出现图像质量的明显 失真.对300帧视频序列编码,启发式算法,UMHexagonS算法和EPZS算法的消 耗的时间别分别是1.305秒,1.459秒和1.406秒.从测试结果可以看出启发式算 法的

我要回帖

更多关于 www.848pp.com 的文章

 

随机推荐