1、毕业设计开题报告计算机科学与技术基于MIPS平台的H264编码器设计及优化研究一、选题的背景与意义选题背景在多媒体技术和网络与移动通信的飞速发展下,图像压缩编码技术不仅在理论研究中已经取得重大进步,而且在实际应用中也得到了很多成果。图像和视频信号数字化可以避免远距离传输中产生的累计失真,数字化存储可以高保真还原,并且容易借助计算机等设备进行灵活处理和管理。近年来,图像编码技术得到了迅速发展和广泛应用,国际标准化组织(ISO)和国际电工委员会(IEC)制定了关于静止图像的编码标准JPEG/JPEG2000,关于活动图像的编码标准MPEG1,MPEG2,MPEG42,MPEG410等,以及国际电信
2、联盟(ITU)制定了视频编码标准H26X系列。这些融合了各种优良性能算法的编码标准都有一个共同的不断追求的目标,即在尽可能小的编码容量下获得尽可能好的图像质量。H264编码是由ITUT和ISO/IEC共同推出的新视频编码国际标准,在H26X发展初期,VCEG从实时性和图像质量等方面为其制定了一下要求(1)约束码率的图像质量相同的比特率和采用相同方法优化的编码器条件下,H264的帧率能达MPEG4标准SIMPLEPROFILE的两倍,即相同图片质量条件下H264能节省一半带宽。(2)延时限制H264强调在实时的环境的应用,拥有低延迟的模式以应用于实时会话服务。(3)复杂度一个标准的复杂度是和计算
3、复杂度以及存储器大小密切相关的,出于对复杂度的考虑,H264从编码器处理和质量方面规定BASELINE、MAIN、和X三个类及多个等级,从而适用于不同的应用范围。(4)差错恢复应用于实时环境下时,应当具备防止误码扩散的机制。(5)语法定义采用简单的语法定义。(6)网络友好性将整体视频编码数据按照视频编码层(VCL)和网络抽象层(NAL)进行概念性分割,以此将视频压缩和网络传输功能进行有效的分割。意义H264编码是以更高的算法复杂度来实现更低的码率。在嵌入式平台上应用于视频监控系统中可以在有限的带宽下提高图像的质量(或者说相同的图像质量下减少带宽的使用量),尤其适合在未来3G网络基础上移动监控设
4、备的应用。但在系统资源相对缺少的嵌入式平台上应用时,对H264编码器进行合理的优化是必要的。二、研究的基本内容与拟解决的主要问题基本内容1H264编码标准的分析和研究。对所涉及的模块及算法进行理论上的分析和研究。2H264编码器的设计和实现。参考H264标准测试模型编码器的程序,功能为输入视频帧数据输出标准的H264编码。3对H264编码器进行基于MIPS架构处理器优化研究。拟解决的主要问题1参考现有开源H264编码器实现H264编码标准中所用技术帧内预测编码技术、帧间预测编码技术、变换与量化、统计编码技术以及网络抽象层技术等以及实现H264编码器。2研究H264编码在实际应用时可优化的部分。
5、3学习研究MIPS平台特性。4结合实际项目的测试经验和根据MIPS平台特性,实现在MIPS平台上H264算法优化以及耗时算法中的一些优化。三、研究的方法与技术路线研究方法平台初期在PC平台上实现H264编码,后期对编码器进行优化实现把编码器移植到嵌入式MIPS平台。参考标准的编码器目前H264的开源编码器主要有三类JM,T264和X264。JM作为H264的官方测试源码,由德国HHI研究所负责开发。它实现了H264所有的特性,但其程序结构冗长,只考虑引入各种新特性以提高编码性能,忽视了编码复杂度,其编码复杂度极高,不宜实用。T264是中国视频编码自由组织联合开发的H264编解码器,编码器能编码
6、输出标准的H264码流,但解码器只能解T264编码器生成的码流,目前已经停止更新。X264是网上自由组织联合开发的兼容H264标准码流的编码器,它注重实用,和JM相比,在不明显降低编码性能的前提下,努力降低编码的计算复杂度,编码效率很高。优化在分析H264编码器的结构和复杂度之后,提出了结合MIPS处理器性能特点的一些优化方法。提高了程序代码的并行性和存储器的访问效率,重点为算法中比较耗时的半像素插值、绝对误差和SAD等关键模块算法优化。技术路线1编码标准的分析研究。H264编码标准由视频编码层(VCL)和网络提取层(NAL)两部分组成。VCL层主要包括帧内预测、帧间预测、变换量化、熵编码等压
7、缩单元。NAL层为VCL层提供一个与网络无关的统一接口,负责对视频数据进行封装打包后使其在网络中传送。2编码器的设计与实现及C语言级的优化。参考开源H264编码器,注重实用实现计算复杂度较低H264编码器设计。(并非完全实现H264全部特性)3根据MIPS处理器特点对进行优化。四、研究的总体安排与进度第一阶段(201012620101220)检索基于MIPS平台的H264编码器设计及优化研究的文献资料,完成文献综述和开题报告。第二阶段(201012202011320)深入基于MIPS平台的H264编码器设计及优化研究的知识,实现H264编码器设计并对其进行优化。第三阶段(20113202011
8、330)在导师指导下进一步完善程序,并完成论文的初稿。第四阶段(20113302011430)修改、完善论文,经导师审阅后定稿;准备5月份的毕业答辩。主要参考文献1张春田,苏育挺,张静数字图像压缩编码北京清华大学出版社2余兆明,查日勇,黄磊,周海骄图像编码标准H264技术北京人民邮电出版社3WENGER,ETAL,IETFRFC3984,RTPPAYLOADFORMATFORH264VIDEO4SALOMOND数据压缩原理与应用吴乐南等译北京电子工业出版社,20035YAOWANG,JORNOSTERMANN,YAQINZHANG视频处理与通信侯正信等译北京电子工业出版社,20036ISO/I
9、ECIS1449610INFORMATIONTECHNOLOGYCODINGOFAUDIOVISUALOBJECTSPART10ADVANCEDVIDEOCODINGAVC,2003MPEG4AVC7WIEGANDT,ETALOVERVIEWOFTHEH264/AVCVIDEOCODINGSTANDARDIEEETRANONCIRCUITSANDSYSTEMFORVIDEOTECHNOLOGY,2003,1375605768RICHARDSONIEG,H264/MPEG4PART10WHITEPAPERHTTP/WWWVCODEXCOM9SULLIVANGJ,WIEGANDTVIDEOCOMP
10、RESSIONFROMCONCEPTTOTHEH264/AVCSTANDARDPROCEEDINGSOFTHEIEEE,2005,931183110OSTERMANNJ,BORMANSJ,VIDEOCODINGWITHH264/AVCTOOLS,PERFORMANCE,ANDCOMPLEXITYIEEECIRCUITANDSYSTEMMAGAZINE,2004,41728毕业设计文献综述计算机科学与技术基于MIPS平台的H264编码器设计及优化在当前广播数字化、网络宽带化、通讯无线化、存储高密化的趋势下,多媒体技术应用需求的关键在于传输的带宽和媒体的处理问题上。为此ITUT的视频编码专家组VC
11、EG和ISOIEC的活动图像专家组MPEG1联合制定了新的视频压缩标准H26412。一、H264编码标准的起源、现状及发展趋势MPEG4(VISUAL)和H263的标准,是基于对视频压缩(“视频编码“)由CIRCA制定于1995年。该组织负责制定的这些标准中运动图像专家组和视频编码专家组(MPEG和的VCEG)在最后阶段同时推出一种有望由于优于MPEG4和H263,提供更好的视频图像压缩编码,具有高品质,低比特率视频流的功能特点。3在1995年完成原来为可视电话制定的H263标准后,ITUT视频编码专家组VCEG进一步的开展两方面的开发一项为H263增加额外的功能(H263的第二个版本)和一项
12、开发一个具有低比特率视频通讯的标准。前者促成了“H26L”标准,提供比ITUT之前的标准明显更好的视频压缩率。2001年,国际标准化组织运动图像专家组(MPEG)承认了H26L中的和潜在的优点,由原MPEG和VCEG专家成立了联合视频组(JVT)。JVT的主要任务是发展草案H26L成为一个完整的国际标准。事实上有两个效果完全相同的标准MPEG4的第10部分和ITUT的H264。“官方”的标题是新一代视频编码标准ADVANCEDVIDEOCODINGAVC,然而它广为人知的是它旧的暂定名H26L和它的ITU文档号H264。同以往标准相比,H264编码标准采用了许多新技术,例如1/4,1/8精度的
13、子像素运动估计,多参考帧技术,去块滤波,加强的熵编码,小块的整数变换等来提高编码效果4,但这些技术同时也增加了H264编码器的复杂度,限制了H264在很多领域尤其是实时领域的应用。二、H264编码标准技术概述H264/AVC包含了一系列新的特征5,这些新特性包括帧间编码运动补偿。与之前的视频编码标准相比,H264/AVC使用已编码的多个帧来作为参考帧。在大多数场景切换时可以带来一定的码率降低或者质量提高,对某些类型的场景串行,例如快速重复的闪光,反复的剪切或者背景遮挡的情况,它能很显著的降低编码的码率。帧内预测。H264帧内预测的方法,即利用已解码重构的邻近块来对实现当前块预测,对预测块与实际
14、块间的残差做相应的变换和量化。帧内预测技术使得帧内编码技术的码率大大减小了,编码效率也有很大提高,对于图像序列变化平缓的视频效果非常明显。DCT整数4X4变换和量化。H264变换采用基于4X4块的整数操作而不是浮点运算,使得变换操作仅使用整数加减和移位操作,降低了设计复杂度,避免了编解码误匹配,能够得到与4X4DCT变换近似的结果,而由此带来的编码性能的减少微乎其微。在量化过程中还可有机结合变换中的系数矩阵,使得变换过程中不再出现浮点乘法问题,并且在量化过程中巧妙地回避了除法运算。熵编码。H264中熵编码分为CALVC和CABAC。CAVLC利用相邻已编码符号所提供的相关性,动态调整编码中的码
15、表,为编码符号选择合适的上下文模型,降低了符号间的冗余度,取得较高的压缩比。但CAVLC采用固定码表,不能随视频源的统计特性自适应性变化,编码效率降低,因此H264又提出了一种新的熵编码算法即CABAC编码算法。CABAC在编码数据元素的自适应范围上比CAVLC更加广泛,大大提高了编码的压缩率,但这是以增加编码复杂度为代价的。网络抽像层NAL。H264采用一个网络抽象层使得相同的视频语法可以适用于多种网络环境中;并且使用了串行参数集(SPSS)和图像参数集(PPSS)来提供更高的强健性和灵活性。以上技术使得H264能高效的对视频进行压缩,并在各种环境下达成更广泛的应用,H264在压缩性能上比起
16、MPEG2有很大的提高,在相同的图像质量下可以,码率可以减少到一半或者更少。6三、编码器优化为了使H264能在比较容易的在低码率高实时性的应用系统中实现,必须对其编码进行优化。对其编码器各个算法模块分析可以得出运动估计模块的耗时量占到的全部的70左右78,其次耗时较多的模块为DCT变换9和熵编码模块10。在这些模块中采用快速算法对编码器优化。四、参考文献1ISO/IECIS1449610INFORMATIONTECHNOLOGYCODINGOFAUDIOVISUALOBJECTSPART10ADVANCEDVIDEOCODINGAVC,2003MPEG4AVC2WIEGANDT,ETALOVE
17、RVIEWOFTHEH264/AVCVIDEOCODINGSTANDARDIEEETRANONCIRCUITSANDSYSTEMFORVIDEOTECHNOLOGY,2003,1375605763RICHARDSONIEG,H264/MPEG4PART10WHITEPAPERHTTP/WWWVCODEXCOM4毕厚杰新一代视频压缩编码标准H264AVC人民邮电出版社,2005年第1版5SULLIVANGJ,WIEGANDTVIDEOCOMPRESSIONFROMCONCEPTTOTHEH264/AVCSTANDARDPROCEEDINGSOFTHEIEEE,2005,93118316WENGE
18、R,ETAL,IETFRFC3984,RTPPAYLOADFORMATFORH264VIDEO7李红叶,刘明军H264运动估计算法研究8吴晓军,白世军,卢文涛基于H264视频编码的运动估计算法优化9陈宝远,吴孟泽,张清喜,郝艳莉H264标准中整数DCT图像压缩算法的优化及实现10刘冲H264中CABAC算法的研究与优化本科毕业设计(20届)基于MIPS的H264编码器设计及优化研究摘要【摘要】H264编码标准是2003年5月制定的新一代视频编码标准。H264编码标准与以往标准相比有许多新技术,例如1/4,1/8精度的子像素运动估计,多参考帧技术,去块滤波,加强的熵编码,小块的整数变换。但由于其
19、编码性能是以在增加编码复杂度为代价的,很难达到实时编码、传输的要求,很大的限制了H264编码标准在移动设备上的视频应用。本文对H264原理进行分析,并以H264官方测试模型JM86为参考,对运动估计搜索算法进行详细阐述,实现H264编码器运动搜索算法及其优化。【关键词】H264;编码器;优化。ABSTRACT【ABSTRACT】H264ISTHENEWESTVIDEOCOMPRESSIONSTANDARDJOINTLYPUBLISHEDIN2003H264CODINGSTANDARD,COMPAREDWITHPREVIOUSSTANDARDSTHEREAREMANYNEWTECHNOLOGIE
20、S,SUCHAS1/4,1/8SUBPIXELMOTIONESTIMATION,MULTIPLEREFERENCEFRAMETECHNIQUE,DEBLOCKINGFILTER,ENHANCEDENTROPYCODING,INTEGERTRANSFORMSMALLPIECESBUTBECAUSEOFITSCODINGPERFORMANCEISINCREASINGTHECOSTOFCODINGCOMPLEXITY,ITISDIFFICULTTOACHIEVEREALTIMEENCODING,TRANSMISSIONREQUIREMENTS,AGREATLIMITONAMOBILEDEVICEAP
21、PLICATIONSTHISPAPERANALYZESTHEPRINCIPLEOFH264,ANDH264TESTMODELJM86OFFICIALREFERENCE,THEMOTIONESTIMATIONSEARCHALGORITHMINDETAIL,IMPLEMENTATIONANDOPTIMIZATIONALGORITHMOFH264ENCODER【KEYWORDS】H264ENCODEROPTIMIZATION目录摘要8ABSTRACT101绪论1211选题背景1212选题目标及意义1313开发思路1314论文结构说明132数字视频理论基础1421视频源格式1422数据库需求分析142
22、21主观视频质量评定14222客观视频质量测量153H264编码原理1631H264概述1632编码器1633帧内预测1733144亮度预测173321616亮度预测1733388色度预测1834帧间预测18341树状运动补偿18342运动矢量18343MV预测2035整数变换与量化2135144DCT整数变换21352量化23353HADAMARD变换24354完整的变换、量化过程2536熵编码25361哥伦布指数编码26362基于上下文自适应可变长编码CAVLC2737小结294H264编码器分析实现3041编码器结构3042运动估计代码分析3143经典运动搜索算法分析及实现33431全搜
23、索法FS33432三步法TSS34433四步法FSS35434菱形法DS36435梯度下降法BBGDS37436六边形法HEXBS3844小结385H264编码器优化研究3851算法复杂度分析3952算法优化3953MIPS平台移植4154MIPS平台优化4255小结43致谢错误未定义书签。1绪论11选题背景随着互联网的普及,数字视频技术在网络通讯和广播领域得到了广泛的应用,视频和多媒体信息在INTERNET网络和移动网络中处理和传输成为信息化过程中的热点技术。视频信息有直观性、确切性、高效性、广泛性等特点1,但其信息量过大不易于存储和传输。要使网络视频得到广泛应用,必须解决视频编码压缩问题。
24、从1984年CCITT公布第一个视频压缩编码以来,至今已有20多年。ITU/ISO等国际标准化组织陆续颁布了近十个编码标准,极大推动了视频通讯的发展。2003年3月ITUT/ISO正式公布了H264编码标准,由于其相比以往标准出色的编码性能,被称为新一代视频编码标准。H264编码标准与其上一个标准H263已被广泛应用于视频会议相比,码率降低一半左右;或者说相同码率下图像质量明显提高。2但H264编码标准优良的编码性能是以增加编码算法复杂度为代价的。在一些低频处理器上编码速度较慢,很难达到实时编码、传输的要求,很大的影响了H264编码标准在移动设备上的应用。在处理器处理能力有限的基础上,如何降低
25、其运算复杂度,快速实现其算法已成为其标准进入实用阶段的关键问题。12选题目标及意义信息资源中,视频信息的开发、利用更具有重要的理论意义和应用价值。近年来,INTERNET的迅猛发展,使IP技术应用普及到各个方面,网上教育、远程医疗、电子商务、电子政务、电子游戏、网上证券等等。通信业务从电话、传真、电报发展为可视电话、会议电视、视频点播等,即由音频为主发展到以视频为主的多媒体通信。网络中视频应用以越来越多的融入到日常生活中。4H264编码性能优于现有其他视频编码标准,和MPEG2和MPEG4ASP等压缩技术相比,在同等图像质量下,采用H264技术压缩后的数据量只有MPEG2的1/8,MPEG4的
26、1/3,H264压缩技术的采用将大大节省用户的下载时间和数据流量收费。由于其基本信源编码框架与原来类似,性能的提高来源于各个特定的编码工具。但H264的编码运算复杂度制约了其进入实用阶段。2,3本编码器的主要目标是对H264编码的参考模型进行MIPS平台的移植和针对平台对其算法进行编码速度优化。13开发思路H264编码器以VISUALSTUDIO2005做为开发平台,用C/C语言进行编写,以JM86为参考模型进行算法实现及编码优化。编码器对YUV420视频序列进行编码。14论文结构说明本文第一章简要介绍了项目背景、目标和开发思路。第二章、第三章为视频编码基本知识和H264编码标准的基本原理。第
27、四章为H264官方测试模型的分析及实现。第五章阐述对H264编码器优化实现。2数字视频理论基础21视频源格式常见的彩色图像记录的格式有RGB、YUV、CMYK等格式。彩色电视格式最早的构想是使用RGB三原色来同时传输。这种设计方式是原来黑白带宽的3倍,并不是很好的设计。RGB着重于人眼对色彩的感应,YUV则着重于视觉对于亮度的敏感程度,Y代表的是亮度,UV代表的是色度(因此黑白电影可省略UV,相近于RGB),分别用CR和CB来表示,因此YUV的记录通常以YUV的格式呈现。YUV有4种常见的格式444,422,420,411444表示每4个亮度像素相应的有4个CB和4个CR色度像素。422表示每
28、4个亮度像素相应的有2个CB和2个CR色度像素。411表示每4个亮度像素相应的有1个CB和1个CR色度像素。420表示每行4个亮度像素对应2个色度像素,隔行CRCB。即此行YUV为420下一行YUV为402。YUV和RGB的转换公式矩阵表示为BGRVUY1000105149806150436028886014713011405870299021VUYBGR003211215806003946501139831012222数据库需求分析对压缩后图像质量的评价大体上分为主观视频质量评定和客观视频质量测量。221主观视频质量评定主观视频质量的评定由若干名专家和“非专家”作为评分委员,共同利用五项或七
29、项评分法对视频图像进行评定,最后按加权平均对压缩后图像质量进行主观评定。222客观视频质量测量主观的视频质量评分接近人的真实视觉感受,但需耗费人力和时间。客观质量的测定方法速度快、易实行,但往往不会太符合人眼的视觉感受,只能说大体上的质量。客观质量测定方法应致力于改进其测试标准和测试方法,使其符合人的视觉感受。最常用的测试标准是峰值信号与噪声之比(PSNR)MSENPSNRDB/12LOG1021023MSE为原始图像和编解码后图像的均方差,212N为图像最大可能的信号值平方,N表示每个像素的比特数。PSNR越高视频质量越好。3H264编码原理31H264概述MPEG(MOVINGPICTUR
30、EEXPERTSGROUP)和VCEG(VIDEOCODINGEXPERTSGROUP)已经联合开发了一个比早期研发的MPEG和H263性能更好的视频压缩编码标准,这就是被命名为AVC(ADVANCEDVIDEOCODING)的,也被称为ITUTH264建议和MPEG4的第10部分的标准,简称为H264/AVC或H264。这个国际标准已于20033正式被ITUT所通过并在国际上正式颁布。332编码器H264并不明确地规定一个编解码器如何实现,而是规定了一个编码的视频比特流的语法。H264编码器的功能组成见图31。图31编码器3编码器由两条路径组成一条正向路径,一条反向重构路径。正向路径蓝色FN
31、为当前要编码宏块,有2种预测方式帧间和帧内预测,预测后得到一个残差块DN,DN经过44DCT整数变换和量化后得到,一个编码系数矩阵X,再对系数矩阵X进行熵编码后与之前编码的参数包括量化参数,预测方式等参数写入NAL片。反向重构路径红色重构路径从编码系数矩阵X开始,经过反量化、反变换得到残差块DN,根据宏块的预测方式预测参考宏块FN1或当前帧已编码宏块UFN得预测矩阵,加上残差块DNDN和DN不完全相同,量化过程会造成精度丢失得到UFN,再经过过滤器去块滤波重构参考宏块FN。33帧内预测在帧内预测模式中,预测块P是基于已编码重建块和当前块形成的。亮度块分为1616块和44子块,44子块有9种可选
32、预测模式,用于大量细节的图像编码;1616亮度块有4种预测模式,预测整个1616亮度块,用于图像平滑区域;色度块有4种预测模式,与1616亮度块预测模式类似。33144亮度预测如图31,32所示,亮度44子块帧内预测由上部、左部的13个像素点AQ预测得。1个模式中并非AQ中每个像素都用到图32用AQ对AP进行帧内预测预测的八个方向3图32帧内44预测9种模式3例如,模式4中,DROUNDB/4C/2D/4。模式2DC为所有预测值为AD及IL平均值。3321616亮度预测1616的亮度宏块的预测有4种,用于图像平滑区域,如图33所示。图33帧内亮度1616预测4种模式333388色度预测88色度
33、预测由帧内已编码的上部和左部的像素预测而得。两种色度用同一种预测模式,类似于帧内1616色度预测的4种模式,只是编号不同。34帧间预测H264帧间预测是基于已编码的块运动补偿的预测模式。有亚像素运动矢量、多参考帧等新技术特征。341树状运动补偿每个1616宏块有4种划分方式,每个88的子块还可以有4种方式划分,如图34所示。图34帧间预测分割方式3每个划分或者子划分都有独立的运动补偿。每个MV都被编码传输。色度与亮度的划分模式相同,尺寸减半高度宽度均为一半。342运动矢量帧间编码宏块的每个划分都是从参考帧预测而得。他们的运动矢量MV对亮度采用1/4像素精度,色度采用1/8像素精度。亚像素在参考
34、帧中并不存在而是由邻近点内插得。图351/2像素点计算方式3例如图35所示半像素点B由对应整像素点6抽头滤波得,权重1/32,5/32,5/8,5/8,5/32,1/32,公式如下BROUNDE5F20G20H5IJ/32剩余的半像素点由垂直或水平方向的半像素点滤波得,J由CC,DD,H,M,EE,FF滤波得。半像素点得出后,1/4像素点可由半像素点线性内插而得。如图36所示。A由邻近半像素点内插得,公式如下AROUNDGB/2剩余1/4像素由对角半像素点内插得,如EROUNDBH/2图361/4像素计算方式3色度像素的1/8精度的像素点,由整像素线性内插得,如图37所示。图37色度1/8像素
35、计算方式3343MV预测每个划分的MV传输需要相当数目的比特。MV可以由邻近已编码的MV预测得。E为当前宏块或宏块分割子宏块。A、B、C分别为E的左、上、右上方的三个相对应块。如果E的左边不止一个分割,取其中最上的一个为A;上方不止一个分割时,取最左边一个为B。如图38显示所有分割有相同尺寸时的邻近分割选择。图39给出了不同尺寸时临近分割的选择。图38所有分割有相同尺寸时3图39不同尺寸时临近分割的选择31传输分割不包括168和816或跳跃宏块(SKIPPEDMB)时,MVP为A、B、C分割MV的中值;2168分割,上面部分MVP由B预测,下面部分MVP由A预测;3816分割,左面部分MVP由
36、A预测,右面部分MVP由C预测;35整数变换与量化变换编码是将图像时域信号变换成频域信号。H264编码对预测残差采用的是44整数离散余弦变换,量化根据图像的动态范围大小确定量化参数。H264的整数DCT变换中只有整数运算,消除了浮点运算,减少了运算量,并且精确的整数排除了编码器和解码器反变换之间的误匹配问题。H264的基本档次要根据编码图像的残差块数据进行3种变换1帧内预测44的亮度直流系数1616预测模式222的色度直流系数3其他44的残差块。如图310,所示。1、2的残差块还要组合成一个1616的整体块进行一次HADAMARD变换,进一步压缩编码。图310编码变换和量化过程35144DCT
37、整数变换输入数组X的44DCT变换公式为CABABACABACACABAXCBBCAAAABCCAXAYTBAAAA其中21A8COS21B83COS21C这个矩阵乘法可以被转化为以下等式22222222111111111111111111111111BABBABABAABABABBABABAABADDDDXDDDDECXCYT符号表示每一个CXCT中的元素被E标量相乘而不是矢量乘。AB如前,D等于C/B近似为0414。为了简化变换,D近似为05。为了保持正交,B要被修正为52。为了避免计算CXCT中精度的丢失,最终变换式为4/2/4/2/2/2/4/2/4/2/2/2/11212111211
38、11121122111112112111122222222BABBABABAABABABBABABAABAXEXCCYFTFF这个变换是一个近似的44DCT变换。因为改变了元素D和B,输出的矩阵和DCT变换不会完全相同。相应的其反变换式为2/1112/1111112/12/1111112/1111112/11112/111/211122222222BABBABABAABABABBABABAABAYCEYCYFFTF正反变换时正交的,即T1TXX。H264把DCT中后面EF放到后面的量化过程中,实际的DCT输出是WCXCT352量化H264使用标量量化。这样定义和实施是为了避免进行除法或浮点计算
39、。基本的量化公式如下STEPIJIJQYROUNDZ/IJY是变换后得系数,STEPQ是量化步长。H264标准一共支持52个值的量化步长STEPQ,以一个量化参数QP为索引。每个QP对应的STEPQ值在表31中。注意QP每6个增量QSTEP扩大两倍;QP每增量1STEPQ增量125。量化步长的宽范围使编码器能准确灵活的控制码率和图像质量之间的平衡。色度和亮度的QP值可能会不同。QP0123456789101112QSTEP0625068750812508751112512513751625175222525QP18243036424851QSTEP510204080160224表31QP值对应
40、表H264把变换和量化的过程放在一起,变换中的标量矩阵乘在量化过程中,公式如下PF/QROUNDWZSTEPIJIJPF根据I,J在变换中标量矩阵的位置是2A,2/AB或4/2B。元素STEPPF/Q以乘以一个MF(乘数)和一个右移来避免除法操作MF/2ROUNDWZQBITSIJIJ这里STEPQBITSPF/QMF/2,6/15QPFLOORQBITS整数量化的公式为QBITSFMFWZIJIJIJIJWSIGNZSIGN其中F在帧内块是3/2QBITS,在帧间块是6/2QBITS作用是偏移量改善视觉效果。MF实现时可查表得。这样量化的过程可以避免除法操作,并且确保用16位算法来处理数据,
41、在PSNR没有降低的情况下实现。353HADAMARD变换如果当前处理的图像宏块是色度块或帧内1616预测模式的亮度块,则需要将其中各图像块的DCT变换系数矩阵W中的直流分量或直流系数W00按对应图像块顺序排序,组成新的矩阵WD,再对WD进行HADAMARD变换及量化。在这种情况下,不需要对变换后系数矩阵单独量化。图311所示,为1616宏块的传输顺序,每个44块的左上角为直流系数,首先被传输。图311宏块编码顺序3对亮度块DW的HADAMARD变换为2/11111111111111111111111111111111DDWY对YD量化输出1QBITS2FMFYZ00,JI,DJI,D00,M
42、F是位置0,0的MF系数值。对色度块DW的HADAMARD变换为11111111DDWY对DY量化输出1QBITS2FMFYZ00,JI,DJI,DWSIGNSIGNZJDI,JDI,354完整的变换、量化过程编码器完整的变换、量化编码过程1输入44残差块X244DCT变换TFFXCCW3量化QBITSSTEPQPFWZ2/36熵编码熵编码是无损压缩,解码后不会有数据的丢失,熵编码是建立在随机过程的统计特征基础上的。片层上要编码的元素如下表所示要编码的元素描述SEQUENCE,PICTUREANDSLICELAYERSYNTAXELEMENTSMACROBLOCKTYPEMB_TYPEPRED
43、ICTIONMETHODFOREACHCODEDMACROBLOCKCODEDBLOCKPATTERNINDICATESWHICHBLOCKSWITHINAMACROBLOCKCONTAINCODEDCOEFFICIENTSQUANTIZERPARAMETERTRANSMITTEDASADELTAVALUEFROMTHEPREVIOUSVALUEOFQPREFERENCEFRAMEINDEXIDENTIFYREFERENCEFRAMESFORINTERPREDICTIONMOTIONVECTORTRANSMITTEDASADIFFERENCEMVDFROMPREDICTEDMOTIONVECT
44、ORRESIDUALDATACOEFFICIENTDATAFOREACH44OR22BLOCK表32熵编码元素描述片层上,语法元素被编码成定长或可变长的二进制编码,语法元素根据熵编码模式用可变长编码CAVLC或自适应上下文算术编码CABAC。在H264基本档次中,残差块使用自适应上下文可变长编码CAVLC,其他的可变长编码单元使用哥伦布编码。361哥伦布指数编码哥伦布指数编码是有重构规则的可变长编码。表33列举了前9种码字;从表中可以看出,每一个码字被如下构造INFOZEROSM1INFO是一个携带了M位信息的区域。CODEN_UM0不带前缀0,CODE_NUM1、2有1位INFO区域;COD
45、E_NUM36有2位INFO区域。编码长度为2M1位。CODE_NUMCODEWORD01101020113001004001015001106001117000100080001001表33哥伦布指数编码码字对应表参数V要被编码映射到CODE_NUM用如下3种方式中的一种UEV不标记直接映射,CODE_NUMV。用在编码宏块类型、参考帧索引等。SEV标记映射,用在运动矢量差,量化参数等,V映射如下表34VCODE_NUM001112232435表34SEV码字对应表MEV映射符号,参数V根据标准中指定的表被映射到CODE_NUM。如下表所示CODED_BLOCK_PATTERNINTERPR
46、EDICTIONCODE_NUM0NONONZEROBLOCKS016CHROMADCBLOCKNONZERO11TOPLEFT88LUMABLOCKNONZERO22TOPRIGHT88LUMABLOCKNONZERO34LOWERLEFT88LUMABLOCKNONZERO48LOWERRIGHT88LUMABLOCKNONZERO532CHROMEDCANDACBLOCKSNONZERO63TOPLEFTANDTOPRIGHT88LUMABLOCAKSNONZERO7表35MEV码字对应表每个映射(UE,SE和ME)都是设计以较短的码字给高频率的值,较长的码字给低频率的值。362基于上下
47、文自适应可变长编码CAVLC在H264的CAVLC基于上下文自适应的可变长编码中,通过根据已编码句法元素的情况动态调整编码中使用的码表,取得了极高的压缩比。CLVAC被设计利用如下几个44块量化的特点1在预测,变换和量化后,块通常是稀疏矩阵主要包含零。CAVLC用运行等级编码简洁的表示0的字符串。2在ZIGZAG扫描后最高的非零系数常有/1序列。CAVLC用一种简洁的方式表示高频率的/1系数“拖尾”或“TLS”的数字。3邻近块非零系数的数字是相关的。编码系数的数字是用查表;查表的选择根据邻近块中非零系数的数字。4在重新排列数组的开始直流系数附近和频率更低向更高中非零系数的等级幅度变高。CAVL
48、C利用他根据最近编码LEVEL大小适应VLC对LEVEL参数查表的选择。在CAVLC中上下文模型的选择主要体现在两个方面,非零系数编码所需表格的选择以及拖尾系数后缀长度的更新。CAVLC非零系数的数模是从0到16,拖尾系数的数目范围是0到3。如果/1的个数大于3只有最后3个作为拖尾系数,其余作为非零系数。对非零系数数目和拖尾系数数目的编码是通过查表得到的,共有4个变长表和一个定长表可选择。表格的选择是根据变量NC的值来选择的,除了色度直流系数外,其他的系数类型的NC值是根据当前块左边44的非零系数数目NA和当前块上面的44块的非零系数数目NB求得的。当输入的系数是色度的直流系数时,NC1。当NA,NB都可用NCNANB/2,都不可用时NC0,当只有1个可用时NC等于可用的值。当08时使用定长表格。对于拖尾系数只须1比特表示其符号0为,1为。编码的顺序是按照反向扫描的顺序,从高频