《H264AVC实时视频编码器与解码器的实现_.docx》由会员分享,可在线阅读,更多相关《H264AVC实时视频编码器与解码器的实现_.docx(158页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、H264AVC实时视频编码器与解码器的实现_H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现上海大学硕士学位论文H.264/AVC实时视频编码器与解码器的实现姓名:曹文锋申请学位级别:硕士专业:通信与信息系统指导老师:张颖20040301H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现摘要多媒体信息技术的高速发展,给人们带来了多姿多彩的生活。不断增长的社会需求也对信息技术提出了更大的挑战。而视频编码技术是解决视频传输的核心技术,经过近二十年的不泄努力,从一到一,视频编码技术得到了广泛的应用。本文基于最新国际视频编码标准,以
2、提高编码器与解码器软件执行速度为目的,参考测试模型基本算法,在保证其原有的率失真特性条件下,重新设计程序框架与数据构造,提出新的编码与解码算法,解决编码器与解码器实时实现的问题。本文主要从三个方面进行了阐述:第一、解码器核心代码的设计与优化。主要从数据构造与程序构造,以及核心算法上提出优化建议。采用了更为简洁的数据构造和更为高效的程序构造,减少程序中不必要的重复判定,并在取码、运动补偿与熵解码上提出了更为高效的算法。第二、基于的解码器优化。从硬件架构特点出发,主要从内存占用量与分配上的优化,及其相关汇编指令并行编码优化两方面解决解码的速度问题,并对相关算法进一步优化,充分利用的传输,有效地提高
3、了代码执行速度。第三、编码器的设计与优化。采用了新的更为高效的程序架构,在此基础上,提出了新的运动估计算法,帧内预测形式决策算法与帧间预测形式决策算法,与此同时,对率失真优化模型作了一定的简化,并作了一些有益的讨论,一定程度上保证了原有率失真特性,有效地提高了编码器的编码速度。关键词:,视频,编码器,运动估计,解码器,优化H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现,?一,:,。,:;,。,:,H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现上海大学本论文经答辩委员会全体委员审查,确认符合上海大学硕士学位论文质量要求。
4、答辩委员会签名:工作单位职称主任:委员:夏鳃中?乙狄皿转铆畹硌导厩亨良张答辩日期:沙。卜H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现原创性声明本人声明:所呈交的论文是本人在导师指导下进行的研究工作。除了文中十分加以标注和致谢的地方外,论文中不包含其别人已发表或撰写过的研究成果。介入同一工作的其他同志对本研究所做的任何奉献均已在论文中作了明确的讲明并表示了谢签名日期翌丝:!:本论文使用受权讲明本人完全了解上海大学有关保留、使用学位论文的规定,即:学校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校能够公布论文的全部或部分内容。保密的论文在解密后应遵
5、守此规定签名导师签名:主亟塾日期:。型:H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现第一章绪论多媒体与计算机网络通信的高速发展,以及人们对当代化生活需求的不断增长,使传统的多媒体编码与传输技术面临越来越大的挑战。卫星电视、交互式电视、视频点播以及个人无线视频通信系统等的出现,为人民提供了功能更为强大的多媒体通信平台,同时也对视频编码各方面的性能提出更高的要求。对数字视频压缩编码技术的研究可追溯到世纪年代初期,逐步进行了包括熵编码、变换、运动补偿等很多关键技术的研究,为标准的制定提供了技术条件。随着、一等标准制定完成并得到广泛的应用,极大地推动了多媒体产业
6、的发展。目前,视频编码标准即将制定完成,其更好的率失真效果及其更强的过失鲁棒性,己得到业界专家们的肯定。数字视频编码发展历程视频编码关键技术的研究熵编码如今广泛应用的熵编码发明于世纪年代末,年代开场应用于视频编码,到年代中期发展成为二维可变长码编码和算术编码。熵编码用于消除编码统计上的冗余【】。熵编码最早由香农于年提出,称为香农编码。而后年哈夫曼提出种更优的算法,称为哈夫曼编码。这种方法在已知采样和概率分布条件下,可产生最小数目的二进制编码比特流。这也就是目前为止最为通用的视频编码中熵编码的算法原型。而后在年代早期,哈夫曼编码被用来定义字形扫描的变换系数的可交长码表,其优化后的可变长码表被用于
7、,和。目前为至,有三种流行的可变长码编码方法:哈夫曼编码、编码、算术编码。哈夫曼编码把固定数目的符号转成可变长的码字;方法把可变数目的符号转成固定长度的码字;而算术编码把可变数目的符号转成可变长度的码字。哈夫曼和算术编码方法是基于概率模型的,且可逐步到达熵界线。算术编码方法更容易到达渐进的性能;且容易适应信号统计特性的变化,但它比哈夫曼编码更复杂。不要求了解信号的统计特性,效率更低。哈夫曼与算术编码已经用于各种视频编码标准中。预测编码存预测编码中,不是对个像素直接编码,而是由同魄或前帧中的相邻像素值来预测它的值。这是受相邻像素通常有类似的彩色值这一事实启发,渡少编码比特的浪费。在编码器中,首先
8、由存储在内存中的几个先前重建的样点来预测输入样点,H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现然后量化预测误差,再用可变长编码器对预测误差进行编码。解码器的重建是预测值加上量化后的预测误差。为了保证编码器与解码器的一致,编码器必须重复与解码器同样的重建样点经过,这称为环内预测编码方法,也称为差分脉冲编码调蒂。发明于年,同年被应用于视频编码。最开场只是用于减少空间域冗余的编码技术,直到年代,应用于时域编码。发展到年代早期,仍然只停留于一种单一的视频编码解决方案。编码方法与变换编码的结合,构成了一种基于变换和预测的混合编码框架,并开场应用于标准,获得了很大的
9、成功。预测编码用于空间域编码称帧内预测。帧内预测不仅应用于原始像素值,可以以应用于变换域系数。在块变换编码器中,相邻块的系数时常是类似的,我们能够由当前块的上方和左侧的块的值来预测当前块的值。方法应用于视频时域编码,也就是通常所讲的运动补偿方法。亚像素插值方法应用于运动补偿,进一步提高了预测的精度。到年代末,双向预测形式的提出,也就构成了迄今为止的一种时域预测编码形式。采用运动补偿预测的时间预测编码是当代视频编码标准成功的关键,它包括单向的时间预测和双向的时间预测。单向时间预测要求以前一帧或几帧图像作为参考帧,并通过运动向与预测误差来重建图像块;双向时间预测则不仅依靠于前面的图像帧,而且由前向
10、帧与将来帧相邻像素共同预测,可有效提高预测编码增益,但是由于预测方法采用不同于原时间顺序,会引入较大的编码延迟,在实时应用系统中通常是不用的【。变换编码变换编码最早用于视频是世纪年代末期。到年代初期,变换编码获得了本质性的进展,并应用于视频编码,以消除空间域冗余。最早对变换的研究大约开场于年和对一维哈达变换的研究。接下来开展了对各种变换方法的研究,其中包括二维变换,傅立叶变换、卡胡南变换、二维哈达玛阻变换等。研究中发现,傅立叶变换由于其计算的复杂度,十分是需要高精度的浮点运算,而且对有限的小图像块其能量集中程度并不理想,并不适用于图像块的编码。理论上能量摄为集中的最优变换是卡胡南变换,由于其运
11、算极为复杂,无法应用于实际的图像编码,而且其统计模型仅是一种近似的模型,不一定在实际应用获得理想的效果。几年后,发现对于小图像块,哈达玛变换比傅立叶变换有更好的能量集中效果,但是其变换带来的误差太大,并没有在实际中得到应用。变换和变换是在哈达玛变换的基础修改的两种变换方法,也没获得理想的效果。年,余弦变换由,和等人提出,其理论结果非常接近于卡胡南变换,其良好的能量集中肚能和其运算复杂度的大大降低完全是实数的运算,以及其快速优化算法的提出,使其成为迄今为止仍在图像编码领域广泛应的变换方法。H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现视频压缩技术在早期电视时
12、期就有应用了,比方:隔行扫描实际上是一种:的视频压缩算法。采用隔行扫描的动机是在给定时间内给定所能记录的总行数的条件下,用牺牲垂直分辨率来提高时问分辨率。在电视系统中,为了减少所需带三;:;。;。五王,西一一式。一。鲁式盯H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现成电路的高速发展,硬件处理速度的提高,视频编码的算法越来越复杂,进而换取更其它参数图视频编码框图【图卜与视频标准发展框图研究图际视频编码标准,不能不涉及两个国际标准组织:国际电信联盟一电信部、运动图像专家组。第研究组负责多媒体的研究,其第工作组负责音视频编码,迄今为止已推出了包括、在内的视频编
13、码标准旷建议。则是另个国际标准化组织,其所有的与计算机相关的活动目前都由关于信息技术的联合技术委员会负责。H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现其分委员会计算机图形和图像处理和音频、图片、多媒体和超媒体信息编码与多媒体有关,其第工作组成功开发了众所周知的音视频编码标准一、一、一。如图卜所示与两个标准组织制定的视频编码标准的发展大概情况。这些标准在制定时都提供了参考模型,以彻底评价该标准。如的参考模型、的最近测试模型,、一的仿真模型、一的测试模型、一的校验模型以及的远期测试模型,后来称作的联合测试模型。与概述。是由过去叫定的第一个国际视频编码标准,也
14、是第一个用于然视频编码的国际标准。年完成了第一个版本,采用了包括、标量量化、变长码编码等编码方法。年完成了第二版本,参加了运动补偿和背景预测的编码方法。系统随着、等更好的视频编码系的出现,己逐步淘汰了。采用了:采样格式,是基于块的运动补偿与变换相结合的混合视频编码标准。具有下面特点:将图像分成若干个像素尺寸的宏块,一个宏块由个的亮度块和两个的色度块一个用于分量,一个用于分量组成。对每个的块使用变换以减少空间冗余。使用环路在,中使用单向整像素前向运动补偿,以减少时间冗余。对运动补偿预测信号采用了一种二维环路滤波器进行低通滤波,以减少预测误差并降低预测图像的块效应。对系数采用两个量化器。用步长为的
15、均匀量化器量化帧内形式的系数,用步长至的近似均匀的中间踏板量化器量化帧内形式和帧间形式的系数,这种量化器在卜,之间被称为死区,被量化为,死区之外,步长是均匀的。这个死区避免了对主要会引起编码噪声的很多小的系数进行编码。编码器主要传输每个编码宏块的两类信息:由预测误差信号变换产生的系数和由运动估计器估计出的运动向量。运动向量的范围限制在像素内。编码控制信息还包括宏块类型、编码块形式以及量化器步长变化,可选项等。宏块类型包括下面种宏块类型:、,?、?、。的系数编码方法:每个非零系数转换成游程,量化后系数值这样的符号,每一个符号用可变长码进行编码,并在块的最后逐一个非零系数之后输出一个块结束。最低要
16、求支持的图像,最高支持的图像。H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现,标准是基于编码框架的,由于视频压缩技术的进步以及高性能台式计算机的逐步普及,决定在中放入复杂度更高且编码效率更高的算法的发展分为三个阶段:、。如图卜所示。年月制定的与相比,其采用了如下新技术:半像素运动补偿。在非整数运动向量的情况下,用双线性内插计算预测像素。运动向量的编码是用三个邻近的中值运动向量作为对该向量的每个分量的预测。改善的可变长编码,包括三维以提高系数编码的效率。要编码的事件是,标志能否为最后一个非零系数。在块组级以及和编码中降低开销。比支持更多的图像格式。除以上改善
17、,还提供了下面特性:无限定运动向量。基于语法的算术编码可用于替代可变长编码。先进的时域预测形式,包括无限定运动向量形式。其中提供了两种改善的技术:重迭块运动补偿方法和可选的亮度块的运动向量。双向预测形式图像帧与单向预测形式图像帧混合使用的编码形式,即帧形式。年后,推出了更新的版本,进一步添加了一些可选形式,其中最重要的包括:先进的帧内编码形式,即用左侧或上方的块作为预测进行编码的方法。去块滤波器,用以对块的边界滤波,以减小块效应。去块滤波器在编码器和解码器预测环的内部实现。附加加强信息,用来提供由使用的应用系统定义的用于外部应用的标志信息。改良的帧形式。假如使用先进帧内预测、算术编码、帧这些选
18、项,可比获得其的增益;如没有这些选项,可以获得的增益。一与一概述标准是由开发的。一标准是为多媒体应用中所使用的逐行扫描的视频设计的,目的是包括音频和视频在内的比特率下生成接近质量的视频,视频格式是。一仍采用了与类似的混合编码框架,与相比有如下区别:】由于使用了半像素精度的运动向量,不需要滤波器,运动向量范围扩大到像素。采用了帧,帧,帧三种帧类型。H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现对于帧,系数的量化是适应人类视觉系统的,用一个加权矩阵来除这些系数。在一样比特率条件下加权矩阵降低了解码图像的,但提高了主观质量。帧内编码块的系数能够由它的左邻块的系数
19、预测。使用一个图像组构造。每一个都以一个帧开场,后跟一定数量的帧和帧,以实现视频的随机访问。在一标准化结束时,发现一不能以广播质量有效地压缩隔行数字视频。因而,组发出了征集电视广播应用系统编码技术的通知,以将扩展四处理隔行视频格式。由此开场了一的制定。一主要目的是使用:格式,产生、码率的电视质量图像和、码率的高质量图像,解决或隔行扫描视频的编码问题。视频编码与相比主要有如下区别:用于一视频编码的:格式与一相比,其色度采样点的位置水平移动个像素。一可编码:格式的隔行序列。一允许系数有其它的扫描格式如交替扫描,并具有像素尺寸的块运动补偿。的系数的比特量化、非线性量化和较好的表提高了逐行扫描视频序列
20、的编码效率。一支持各式各样的可分级性。比方空间可分级性、时间可分级性、可分级性。视频电视会议的视频编码导致了用于视频会议的标准的制定和用于在模拟线路传输视频会议和连接到因特网的桌面和移动终端的标准的制定。用于在上存储电影以及其它消费视频应用系统中的视频编码,导致了最初的一标准的制定。用于广播和数字视频存储的视频编码,导致了一标准的制定。如今一视频被应用于每一个数字机顶盒,并被选择为美国广播系统的视频解码器。对编码质量的更高要求,个人无线视频通信系统、交互电视、视频点播等的出现,要综合性能更好的视频编码技术,这导致了一和等当代视频编码标准的制定。当代视频编码技术概述编写一标准是为了在支持传统视频
21、应用的同时,知足新一代高度交互性多媒体应用系统的需求。这些多媒体应用系统除高效编码外,还要求各种先进的功能,例如基对象的交互性、内容的分级性和高度的过失恢复性能。;一提供自然的和合成的音视频以及基于对象的编码工具。H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现一的功能不仅需要访问整个图像序列,而且需要访问整个对象。与图像一样的是,一个对象也被规定为一个访问单元;与图像不同的是希望它具有语义上的意义。一通过用运动、纹理和形状对物体独立地编码,使与视频对象进行基于内容的交互成为可能。在解码器中,不同的对象综合成一个场景并加以显示。为了实现这个功能,需要开发较高
22、级的句法构造。一个场景是由几个视频对象组成。一个可由几个视频对象层组成。能够表示可分级比特流的不同层或的不同部分。的一个时间霎时称为一个视频对象平面。一个是一个矩形视频或它的一个部分,可由其纹理变化和其形状完全描绘。视频编码器把运动、纹理和形状编码工具用于,使用的,和形式类似于的编码形式。为编辑和随机访问,相继的可组成一个视频对象平面组。除了以上一的基于对象的性质引起视频编码的明显改变之外,还引入下面工具提高其编码效率:与一相比改良了的系数预测方法:选择当前块的左边块或者上边块做为预测器来预测当前系数值。新的系数预测方法:用左边块和上边块预测当前块的第一列系数或第一行系数。交替水平扫描方法。与
23、类似的三维系数的编码方法。与类似的可选块运动向量。无限制运动向量,与相比,能够使用更宽的运动向量范围像素。全局运动补偿。准确到像素的运动补偿。概述是首先开场制定,并在年底与联合制定的新一代国际视频编码标准,目前已被接纳为建议,并同时被接纳为国际标准一第部分,高级视频编码。大约十年前制定的已在标清和高清的数字视频领域获得广泛应用,如卫星电视信号、有线电视信号、地面发射电视信号,以及光盘存储。随着对高明晰视频服务要求的不断增长,要求更高的视频压缩效率。另外,由于其它传输媒介的兴起,女或等比广播信道带宽更窄的传输媒介,要求以有限的传输码率获得相对更高明晰度的视频图像。近年来,硬件处理能力的高速发展和
24、视频编码技术的提高,导致了标准的制定目前的高效编码技术已被世界专家们所肯定,估计在不久的将来,可能在相关领域获得广泛应用。相对于以前的视频编码标准,比方等,有如下比拟突出的特点】种不同大小块的运动补偿方法:不同大小的帧间预测块形式,可较以前编码方法获得更好的预测编码增益,也同时增加了块形式决策的复杂度。精度亚像素运动补偿方法:较过去亚像素运动补偿方法有更大改良。H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现,超出图像边界的运动向量:类似可选项,无边界线制运动向量。,多参考帧运动补偿:多参考帧技术最先用于,突破了过去编码标准运动补偿对帧编码只参考前一帧的限制
25、。新的基于方向的空间域帧内预测方法,有效提高了预测质量,进而提高了帧内编码效率。自适应的循环去块滤波器用于编码器,不仅有效提高了去块滤波效果,而且一定程度上提高了帧间预测效果。一改正去的变换,采用的整数类变换,降低了变换的计算,减小了浮点运算带来的变换与反变换上的漂移。基于上下文的自适应熵编码,包括,和曲。提出网络抽象层的概念,使之能更为友好地适应于网络的应用。除以上技术,还提出了包括、等新技术。编码系统的优势及其实时视频编解码研究的必要性编码系统相对以前标准编码系统的优势的主要目的是基于现有的技术,采用基本的,简单直接的设计方法,开发出高效可靠的视频编码标准。相对于以前的视频编码标准,有很多
26、的优势,主要总结如下主要参考文献】:相对于或一,同等程度的编码器可节省的码流量。支持高清隔行编码,以及其它各种高码率与低码率编码方式,同等的码率条件下,可获得更好的图像质量。更强的过失鲁棒性。针对口网络丢包和无线网络误码,提供了更多更好的工具,如,等。通过网络抽象层,视频码流可更好地在各种网络上传输。与一的详细比拟参见参考文献,与一的比拟参见文献】。实时编码与解码软件研究的必要性从前面的阐述可看出,仍采用了传统的混合编码框架,但从预测到变换,以及熵编码,采用了一系列的新技术,一方面提高了编码效率,但另一方面也同时提高了算法的复杂度。文献通过分析得出结论,解码器将解码器提高倍以上的复杂度。我们先
27、看看测试模型解码器和编码器的测试数据:H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现表解码器测试数据。码率】平均解码时间盯表是在为内存为机上对三种不同的码率的测试结果,其中为低运动量序列,粕为中等运动量序列,为高运动量序列,其编码的量化参数。从测试结果来看,测试模型即便低运动量的序列也远未到达实时。在做编码器的优化之前,本人曾做过实验,对基于简化,在程序中删去了很多的判定,并没有作其它算法上的优化,发现解码器执行效率提高了近倍。由此可见,对程序构造作进一步的调整可进一步提高程序执行的效率。表编码器测试数据码率】平均编码时间盯表编码器的测试数据,测试条件同解
28、码器,采用的编码技术包括:最大搜索范围为;七种帧间预测块形式;单个参考帧:熵编码方法;率失真优化模型等;从以上测试数据来看,在只要一个参考帧的条件下,格式图像编码速度远未到达实时,要使编码器到达实时的效果,不仅要从程序构造与数据构造上做相应的优化,运动估计算法是制约编码器的首要因素,必需要有率失真效果好,速度快的运动估计算法支持。由于多参考帧、多种帧问块形式的提出,有效地提高了编码器的率失真效果,同时,也给运动估计算法提出了更大的挑战。本课题要实现实时的编码器与解码器,首要解决的就是编码与解码的时间问题。要解决这个问题,要从两个方面考虑,一个是从程序的总体架构出发,优化设计程序框架,减少程序中
29、的重复判定,提高代码执行效率;另外就是从算法的角度考虑,从根本上减小计算量,进而提高编码与解码的速度。本论文主要从这两方面进行阐述,讨论怎样完成实时编码与解码器的实现。视频编码器与解码器软件加速策略由前面分析可见,对于实时视频编码器与解码器的实现,其软件执行速度是一个H264AVC实时视频编码器与解码器的实现H264AVC实时视频编码器与解码器的实现关键的问题。近年来,国内外对视频编码器与解码器软件优化方法的研究方兴未艾,也出现了不少相关的解决方案,使、一等视频编码标准成功地应用于各个相关领域。其软件加速策略主要可归结为下面两个方面:第一,平台无关的基于或其它编程语言的优化。其中包括编码器与解
30、码器关键算法的优化、程序构造与数据构造上的优化等。对于编码器,运动估计算法、形式决策算法等往往对编码速度与编码质量起关键性的作用。如参考文献一【分别从程序构造的优化、运动估计算法以及算法的优化讨论了、等视频编码器核心代码的优化加速策略。如文献,结合现有的快速块匹配算法的模板构造,从仿生学的角度构造了一种类似人眼中央凹的搜索模板,进而提出了一种新的搜索算法一正方形一菱形搜索算法,简称算法,通过实验证实,算法其搜索速度与搜索结果都明显优于钻石搜索法,有其独到之处。其它文献对变换算法和运动估计算法作了具体的讨论。对于解码器,算法、运动补偿算法、取码算法、变长码解码算法也对解码速度起着至关重要的作用。
31、文献】和中提到关于解码器的算法优化,经统计有接近一的宏块能够略过而无须作和反量化处理。最后只对剩余的稀疏图像块作和反量化,能够大大地降低计算量。文献征对视频解码器,给出了一种优化方案从程序构造入手,结合技术,对软件解码器数据构造、程序流程与内存分配进行全面的优化。优化后的解码器在以上的机上能够对于格式的序列进行实时解码。第二,平台相关的指令与算法上的优化。目前,处理器硬件平台纷繁复杂,其体系构造不尽一样,其数据处理能力有不同的优势,并成功地应用于各种不同的领域。如机采用冯?诺依曼构造,数字信号处理器多数采用哈fo总线构造,还有其它的多处理器系统,其体系构造更为复杂。如今常用的机多数是单处理器系统,是目前最为普及的处理系统,其更新速度快,主频较高,目前主流的机系统其处理器速度已达以上,对于解码标准明晰度视频其处理速度已足够,但对更高明