




已阅读5页,还剩79页未读, 继续免费阅读
(信号与信息处理专业论文)低码率下h264码率控制跳帧插帧算法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学硕士研究生学位论文 摘要 i 摘摘摘摘 要要要要 随着多媒体通信技术的高速发展,高效和高质量的压缩视频传输技术已经成为现今的 热点研究和开发领域之一。h.264 作为新一代的视频编码标准,采用了一系列的新技术, 编码效率高,应用前景广泛。为了在变化的信道带宽条件下得到较高的重建视频质量,可 以在 h.264 视频编码端采用码率控制技术来控制编码输出的码率。 本文在深入研究 h.264 的码率控制原理和算法的基础上,着重对低码率传输时码率控 制中的跳帧算法做了研究和改进。对比原有的被动跳帧算法,论文提出了一种主动跳帧算 法。该方法充分考虑了图像运动复杂度,编码图像质量和编码缓冲区充盈度,自适应地判 断下一帧是否跳过,使视频序列的编码比特分配更加合理。 和编码端相对应,论文还对应用于 h.264 解码端的插帧算法做了改进。改进的算法使 用基于双向运动矢量估计的补偿插帧算法,并在运动矢量估计的过程加入了两次运动矢量 调整来平滑得到的运动矢量,使用经过调整的运动矢量进行运动补偿插帧,并在插值恢复 的过程中考虑了运动矢量指向的像素超过图像边界的情况,使得解码端解码重构和插值恢 复出的图像能得到更好的主客观效果。 本文在 matlab 和 jm10.2 平台上对算法进行了仿真实验。 实验结果表明, 与 jm10.2 中原有的插值算法相比,本文的插帧算法对视频图像的运动情况做出了比较准确的估计, 使得插帧恢复图像的客观质量有一定程度提高,并且具有更好的主观效果;与 jm10.2 原 有的仅调整量化参数的码率控制算法相比,根据本文的主动跳帧策略编码重建后的图像质 量更好。 关键词:视频通信;码率控制;跳帧;运动补偿插帧;h.264 南京邮电大学硕士研究生学位论文 abstract ii abstract with the rapid development of the multimedia communication technology, efficient and high quality compression digital video transmission technology has become one hot topic of the research and development nowadays. as a new generation of video coding standard, h.264 has high coding efficiency and wide application prospects by using a series of new technologies. in order to get higher reconstruction video quality in the variable channel bandwith, the rate control technology is used to control the bitrate. based on the thorough research of rate control principle and algorithm in h.264, the frame skipping algorithm of the rate control in the low bit rate is researched and improved. contrasting the original passive frame skipping algorithm, a new active frame skipping algorithm is propsed in this paper. by fully considering the complexity of image motion, the encoded frame quality and the occupancy of the encoding buffer, the proposed algorithm can adaptively decide whether to skip the next frame, which makes bit allocation of the video sequence more rationally. corresponding to the encoder, the interpolation algorithm used at the decoder is also improved in this paper. the improved algorithm uses the bilateral motion vector estimation for the motion-compensated frame interpolation and smooths the motion vector twice in the motion vector estimation. using the adjusted motion vector in the motion-compensated frame interpolation and considering the situation in which the pixels pointed by the motion vector are over the image boundary, the subjective quality and psnr of the decoded frames are improved. the simulation experiments of the algorithm are on matlab and jm10.2. the experiments results show that the visual quality and psnr with the proposed algorithm are improved comparing with the original frame interpolation algorithm by using the more accurate motion vector estimation; the visual quality and psnr with the proposed active frame skipping algorithm are improved comparing with the orginal rate control algorithm which only modifies the quantitative parameters. key words: video communication; rate control; frame skipping; motion-compensated frame interpolation; h.264 南京邮电大学学位论文原创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所送 交学位论文的复印件和电子文档,可以采用影印、缩印或其它复制手段保存论 文。本文电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文 外,允许论文被查阅和借阅,可以公布(包括刊登)论文的全部或部分内容。 论文的公布(包括刊登)授权南京邮电大学研究生院(筹)办理。 研究生签名:_ 日期:_ 研究生签名:_ 导师签名:_ 日期:_ 南京邮电大学硕士研究生学位论文 第一章 绪论 1 第一章第一章第一章第一章 绪论绪论绪论绪论 1.1 课题的研究背景和意义课题的研究背景和意义课题的研究背景和意义课题的研究背景和意义 近些年来,以计算机、多媒体和网络技术为基础的信息技术迅速发展。数字信息化遍 布各处,信息化的一个主要表现就是多媒体技术的应用越来越广泛,应用在如数字电视、 视频监控、数字视频点播、数字视频存储、视频通信等方面。随着多媒体技术的不断发展, 它越来越成为产业界和学术界的研究热点。多媒体信息主要包括文字、声音、图像和视频 等信息,其中视频是一个重要的组成部分,这是因为视频信息具有直观、确切、生动和高 效等优点。但是视频的数据量非常大,若未经处理就进行传输,对通信中的带宽和存储空 间的要求会比较高,而在实际通信过程中带宽是有限的。因此,要想在实际中对视频进行 有效传输,必须对原始视频信息进行压缩编码。但压缩编码会造成视频编码重构图像质量 的降低,视频信息数据量和编码重构图像的质量是相互矛盾的。所以视频压缩编码的任务 就是使压缩后的视频流适合在实际信道上传输和存储,并且保证一定的视频编码重构图像 质量。 如何对视频进行压缩编码是视频通信中的重要问题之一,经过专家和学者多年的研 究,现今视频压缩编解码技术朝着更高的压缩比,更好的重构图像质量,更快的编解码速 度,更小的时延等方向发展。目前主流的视频编码标准是由国际电信联盟(itu-t)制定的 h.26x123 系列的视频编解码标准和国际标准化组织(iso)/国际电工委员会(iec)制定的 mpeg-x45系列的视频编解码标准。h.264/avc6是在 2003 年由上面两大组织共同组成的 联合视频小组(jvt)提出的视频压缩编解码标准。和以往的视频编解码标准相比, h.264/avc 编解码标准的压缩比高,网络适应性强,在数字电视、实时视频通信、网络流 媒体传输等方面都得到了广泛应用,其性能得到了广大专家和学者的充分肯定,逐渐的取 代了 h.263 和 mpeg-4,成为目前主流的视频编解码标准。 码率控制是视频编码策略中最为重要的部分之一。如果在视频编码过程中不进行码率 控制,在传输编码产生的压缩视频码流时由于编码端的码率和实际传输信道带宽不匹配, 编码端的缓冲区很容易出现溢出的现象。码率控制算法的好坏将直接影响视频编码重构图 像的主客观质量和视频的传输和存储。码率控制算法对于能否有效地在实际信道上传输视 频起着重要作用。好的码率控制算法能获得较高的压缩比,在给定信道带宽下,通过调整 编码器的帧率、分辨率和量化参数等相关编码参数,来获得好的视频编码质量。 南京邮电大学硕士研究生学位论文 第一章 绪论 2 目前多数码率控制机制是建立在率失真模型的基础之上,通过调整量化参数来达到控 制码率的目的,而对码率控制中调整编码帧率的跳帧算法研究较少。此类码率控制算法多 在中高码率情况下能起到很好的调控作用,但在低码率情况下仅仅靠调整量化参数难以满 足信道带宽变化幅度较大情况下的传输需求。本文主要就低码率下 h.264 码率控制中的解 码端的跳帧和编码端的插帧两个方面做出了深入的研究,在学习沿用原有码率控制算法的 基础上,对码率控制中的跳帧/插帧算法做出改进,提出了自己的优化算法。这种算法在高 码率的情况下,信道变化幅度不大,出现阻塞的可能更少,大多数视频序列使用原有的码 率控制算法就能得到很好的编码重构图像质量,使用本文改进的码率控制跳帧算法产生的 跳帧数较少, 编码重构图像质量与原有的码率控制算法相比改进不多; 在低码率的情况下, 信道变化幅度较大,常常出现阻塞,使得编码视频序列的编码重构图像质量较差,使用本 文改进的码率控制跳帧算法得到的编码重构图像质量比使用原有的码率控制算法得到的 编码重构图像质量要好。 1.2 国内外研究现状国内外研究现状国内外研究现状国内外研究现状 1.2.11.2.11.2.11.2.1 码率控制研究现状码率控制研究现状码率控制研究现状码率控制研究现状 近年来,码率控制算法得到越来越多学者与专家的研究和关注。国内外许多专家、学 者和研究机构提出了许多应用在不同视频编解码标准上的码率控制算法。比较经典的有应 用在 mpeg-2 上的码率控制算法 tm57;用在 mpeg-4 上的码率控制算法 vm88;用在 h.261 上的码率控制算法 rm89;用在 h.263 上的码率控制算法 tmn810以及用在 h.264/avc 上的 jvt 系列码率控制算法等。在这些经典算法的基础上,不少研究者还提出 了许多改进的码率控制算法。 h.261 中的 rm8 码率控制算法是最基础的算法, 它的基本思想是通过编码缓冲区来平 滑编码输出码率的波动,编码端通过实时观测编码缓冲区充盈度来调整量化参数以达到码 率控制的目的,防止编码缓冲区的溢出。其它码率控制算法的基本思想也是通过编码缓冲 区来平滑编码输出码率的波动,只是在具体的实现方法上有所不同。但是之前的经典码率 控制算法在 h.264 中不能直接使用,因为在 h.264 视频编解码标准中量化参数 qp 同时用 于码率控制部分和率失真优化(rdo)部分:在对当前帧中的宏块进行 rdo 时,需要用 到当前帧的宏块的平均绝对误差(mad)来计算各个宏块的量化参数(qp),而当前帧中各个 宏块的实际 mad 只有在 rdo 完成之后才能得到, 这样就导致了蛋鸡悖论。 所以需要在以 南京邮电大学硕士研究生学位论文 第一章 绪论 3 往经典的码率控制算法基础上进行改进,使算法能在 h.264 中使用。 目前 h.264 码率控制算法主要有 jvt 系列码率控制算法。 s.w.ma 等人在 tm5 码率控 制算法的基础上提出了提案 jvt-d03011,该算法并没有解决蛋鸡悖论并且计算量较大。 在提案 jvt-f08612中 s.w.ma 等人提出了基于 mad 线性模型的码率控制算法,利用前一 帧实际的 mad 通过线性模型来估计当前帧的 mad, 然后用估算出的 mad 通过率失真模 型得到当前帧的量化参数 qp,最后用该量化参数对帧内各个宏块进行率失真优化选出最 优的编码模式。这种算法解决了蛋鸡悖论问题,但编码重构图像的质量波动大并且视频序 列的编码性能不好。提案 jvt-g01213是由 z.g.li 等人提出的,除了沿用线性模型来解决 蛋鸡悖论问题外,该算法还通过流量传输模型来分配目标比特数,采用二次率失真模型来 估算量化参数,并通过率失真优化得到最优的编码模式,使得码率控制的效果较好。提案 jvt-h01714在沿袭提案 jvt-g012 中码率控制算法的基础上通过 hrd 模型设置各帧目标 比特数的最大值和最小值,并对 jvt-g012 的一些经验阈值进行修改。h.264 的参考模型 jm10.2 即采用 jvt-h017 的算法进行码率控制。 在视频实时传输的过程中,通常要求时延较小,所以编码缓冲区也相应较小,使得编 码缓冲区在编码过程中极易出现溢出而导致强制跳帧。 目前码率控制中的跳帧策略151617 大多是被动跳帧, 为了防止编码缓冲区溢出, 当编码缓冲区的充盈度超过某一预定阈值时, 就跳过下一帧不编码, 通过这种方法来降低编码缓冲区的充盈度。 jvt-h017 中的跳帧机制 是当编码缓冲区充盈度超过预定阈值时(提案 jvt-h017 中将其阈值设为编码缓冲区大小的 80%), 则不管当前视频序列中帧间的运动复杂度如何, 直接将下一帧跳过不对其进行编码。 跳帧后对编码缓冲区进行更新,若更新后的编码缓冲区充盈度仍然超过阈值,则继续跳过 下一帧,直到编码缓冲区充盈度低于阈值时才继续编码下一帧。这种仅仅根据编码缓冲区 充盈度来判断是否跳帧的处理方法有其不足之处。对于视频中一个运动比较剧烈或图像发 生场景变换的帧而言,对该图像帧进行编码后产生的比特数也相应较多,往往会造成编码 缓冲区充盈度超过阈值,若按照传统的跳帧算法将其跳过的话,将会影响到解码端解码视 频的连续性,丢失掉视频中拥有重要细节信息的帧,从而造成解码重构视频图像主客观质 量的下降。因此许多研究者们提出了一系列的改进跳帧算法,文献1819提出的改进跳帧 算法大多是跳过运动复杂度较小的帧而保存运动复杂度较大的帧,从而能为运动剧烈的帧 分配更多的编码资源,这样就能更好地保留视频中重要的图像细节,从而提高了解码重构 图像的主客观质量。文献20中的方法基于图像的量化参数值进行跳帧判别而不考虑图像 的帧间复杂度并且经过大量迭代算法,计算复杂不适用于实时视频编码。文献21中当图 像运动剧烈时帧率减少,当运动平稳时帧率增加,这和人的视觉要求相违背。文献 南京邮电大学硕士研究生学位论文 第一章 绪论 4 222324中将帧间运动复杂度和帧内细节复杂度结合起来考虑,通过平衡帧内和帧间性 能来进行跳帧编码。 1.2.21.2.21.2.21.2.2 插帧方法研究现状插帧方法研究现状插帧方法研究现状插帧方法研究现状 在编码端使用跳帧算法或是在传输信道中发生丢帧后,在解码端需要通过时域内插对 视频序列进行插帧。视频序列的插帧算法可大概分为两类。 (1)非运动补偿插帧算法 252627: 直接利用前后参考帧的各种线性组合插值恢复出缺失帧而不考虑图像帧中物体的 运动情况,如帧复制法和帧平均法。这类算法在视频运动复杂度较小时能够得到可接受的 插值恢复图像质量,但在视频运动复杂度较大时,得到的插值恢复图像质量会变得很差, 帧重复容易产生图像停滞和突变的现象,帧平均法会在图像中运动物体的边缘处产生模糊 现象。但这类算法计算简单,便于实现,适合用在对插帧时间要求较高而对插值恢复出的 图像质量要求较低的场合。 (2)运动补偿插值(mci)算法28-32:此类算法将运动矢量估 计与插值恢复联合在一起,研究者们提出了许多运动补偿插帧算法。运动补偿插帧算法的 插值恢复图像的质量主要取决于运动矢量估计的正确性。在 lee 等人提出的加权自适应运 动补偿插帧算法中30,将图像帧中物体的运动情况分为四类并分别进行运动补偿插值恢 复,能得到较好的插值恢复效果,但运算复杂。文献31中采用了重叠块运动补偿插帧算 法来减少由于运动矢量不连续造成的块效应。但是由于将邻块的运动矢量也考虑进去,在 运动矢量估计较准确时插值恢复效果不如双向运动补偿插帧算法32。 1.3 论文主要研究工作和结构论文主要研究工作和结构论文主要研究工作和结构论文主要研究工作和结构 1.3.11.3.11.3.11.3.1 主要研究工作主要研究工作主要研究工作主要研究工作 本文在分析了 h.264 的编解码原理及其关键技术的基础上,着重研究了 h.264 码率控 制中的跳帧算法和解码端的插帧算法,并对 jm10.2 中的跳帧机制进行实现、跳/插帧方法 进行改进。 本文的主要工作如下: (1) 对 h.264 的视频编码技术和相关参考模型 jm10.2 以及码率控制进行了深入研究; (2)详细研究了 h017 码率控制算法,并分析其跳帧策略存在的缺点和不足; (3)在 h.264 的参考模型 jm10.2 中实现 h017 中的跳帧机制; (4)对 h017 中的跳帧算法进行改进,针对低码率传输的情况从固定码率(cbr)和 南京邮电大学硕士研究生学位论文 第一章 绪论 5 可变码率(vbr)两种情况下根据时空相关性,缓冲区和信道带宽提出了一种改进的主动 跳帧机制; (5)详细研究了参考模型 jm10.2 中的插帧算法和具体的插帧过程,分析其中的不足 之处,并对插帧过程作出了一定的修改; (6)使用改进的基于双向运动矢量估计的运动补偿插帧算法替代参考模型 jm10.2 中 的插帧算法:帧复制法和运动矢量复制法对经过跳帧的视频序列进行插帧,使解码视频具 有更高的图像质量。 1.3.21.3.21.3.21.3.2 本文的组织结构本文的组织结构本文的组织结构本文的组织结构 第一章介绍研究的背景及意义,重点介绍当前国内外码率控制及其中的跳帧和插帧的 研究现状,概括本文主要的研究工作和结构。 第二章首先简要介绍 h.264 编码技术中的关键技术, 传输信道和码率控制的理论基础, 并对基本码率控制技术进行分析。 然后从gop层、 帧层和基本单元层三方面重点阐述h.264 参考模型 jm10.2 中的码率控制算法。最后对码率控制中的跳帧和插帧进行介绍。 第三章详细介绍提案 jvt-h017 中的跳帧策略,分析其不足之处,针对低码率传输的 情况从固定码率(cbr)和可变码率(vbr)两种情况下改进其不足之处得到主动跳帧策 略,并结合 jm10.2 编码端原有的仅调整量化参数的码率控制算法对视频序列进行编码。 第四章首先介绍传统的插帧方法,然后提出一种改进的基于双向运动矢量估计的补偿 插帧算法,最后对 jm10.2 解码端的插帧过程进行一定的修改,将改进的基于双向运动矢 量估计的补偿插帧算法运用到 jm10.2 的解码端。 第五章给出实验结果数据的比对和分析。 第六章为总结与展望, 对本文的研究工作进行总结, 对下一步要的研究工作进行展望。 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 6 第二章第二章第二章第二章 h.264 码率控制中的插帧和跳帧码率控制中的插帧和跳帧码率控制中的插帧和跳帧码率控制中的插帧和跳帧 h.264/avc 是新一代的视频压缩标准, 它借鉴了之前视频压缩标准的特点, 在各方面 性能上都有了十分明显的提高,正逐步成为视频压缩领域的主流标准。 码率控制技术是视频编码和传输中的最重要的环节之一,码率控制的目的是在一定的 实际信道带宽下,尽可能地提高视频编码重构图像的主客观质量,并负责使视频编码器产 生的码率和实际信道带宽相匹配,因此其在编码器中的作用十分重要。码率控制算法的好 坏将直接影响到视频的编码和通信质量,如编码重构图像的主客观质量、视频通信过程中 的延时和跳变以及视频编码缓冲区的充盈度情况等。 在视频压缩标准 h.264/avc 中, 为了在编码产生的比特数和编码重构图像的质量间达 到一定的平衡,广泛采用了率失真优化技术,在选择宏块编码模式,选择参考帧,选择运 动矢量等阶段都使用了率失真优化技术,因此造成了“蛋鸡悖论” ,使得以往视频标准中 的经典码率控制算法不适用于 h.264,需要对之前的算法进行改进得出能够适用于 h.264 的码率控制算法。 本章首先介绍了新一代视频压缩标准 h.264 中的编码技术,然后对网络传输和码率控 制的一般性问题进行了描述,介绍了 h.264 现有的码率控制策略,其中着重介绍了参考模 型 jm10.2 中的码率控制算法,最后对码率控制中的跳帧和插帧问题进行了重点阐述。 2.1 h.264 编码技术编码技术编码技术编码技术 h.264/avc6标准是 iso/iec 和 itu-t 两大国际标准化组织联合制定的新一代视频压 缩标准。 h.264 视频编解码标准的主要思想与之前的视频编解码标准是相同的,即基于块的混 合编码模式。继承了之前视频编解码标准的基本框架,采用了多种编码方案,但对许多实 现细节进行了改进,现列举如下: (1)分层结构:h.264 采用了分层结构的思想对视频的编码和传输进行分割,分为视 频编码和网络适配两层,视频编码层主要负责对视频序列进行压缩编码,网络适配层主要 负责对编码压缩后的视频码流进行打包和传输。分层结构便于编码后的视频码流能够满足 不同网络传输的要求并能更好对编码过程进行控制。 (2)多种宏块分割方式:在帧间预测编码时,h.264 可以采用多种不同尺寸和形状的 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 7 宏块分割方式。对于运动复杂度较低的宏块,可采用 1616 的宏块进行帧间预测,而对 于运动复杂度较高的宏块,可采用较小的块进行帧间预测。总的来说,当区域比较平坦运 动细节比较少时选取大尺寸的帧间预测模式,当区域运动细节比较多时选取小尺寸的帧间 预测模式。 在帧内预测编码中, 对于灰度值像素可分为 44 块或是 1616 块进行帧内预测。 对于图像细节较多的情况采用 44 块进行帧内预测,对于图像细节较少比较平坦的情况采 用 1616 块进行帧内预测。 (3)多参考帧估计:在 h.264 中,可以使用多个参考帧进行运动矢量估计,即将多个 刚刚编码重构好的参考帧存放在编码器的解码图像缓存中,编码器编码后续帧时从缓存中 选择一个能得到最好编码效果的帧作为参考帧,当视频序列中周期出现某场景时用这种方 法比仅仅用前一个编码重构帧作参考帧的方法得到的编码效果更好。 (4)1/4 像素精度运动估计:帧间编码时当前块和参考帧中匹配块之间的位移在亮度 上使用 1/4 像素精度的运动矢量估计。 (5)44 的整数变换:在之前的视频编码标准中通常先将一帧图像划分为 88 块再对 各个块进行变换编码。 在 h.264 中是对 44 块中帧内预测和帧间预测的差异进行整数编码。 由于减小了变换编码块的尺寸,块效应等不良情况也相应减少,运算速度也加快了。 除上面几项之外还有变换系数量化,抗块效应滤波器和高效的熵编码等。这许多小的 改进,使 h.264 的编码效率与之前的压缩标准相比有了很大提高。 h.264 编码器和解码器的功能组成分别如图 2-1 和 2-2 所示。 图 2-1 h.264 编码器结构 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 8 图 2-2 h.264 解码器结构 (1)编码器 图 2-1 中的编码器包含两条路径,一个前向编码路径和一个解码重构路径。 1)前向编码路径:编码器以大小为 1616 的宏块为单位来处理输入视频的一帧或场 fn,对每个宏块选择帧内或者帧间预测编码的方式进行处理,生成一个预测宏块 p。若选 择帧内预测编码模式, fn 中的宏块经过编码、解码重构生成预测宏块(重建帧为 fn) 。 若选择帧间预测编码模式,由参考帧进行运动补偿得到预测宏块。在图 2-1 中,参考帧用 fn-1表示。预测宏块 p 和当前宏块相减后,产生了一个残差块 dn。dn经过变换和量化, 产生了一组量化后的变换系数 x,再经过熵编码,与解码所需的一些头信息如宏块分割方 式、 量化参数、 运动矢量和参考帧等一起组成一个压缩后的视频码流, 在网络适配层 (nal) 根据不同网络环境或应用要求进行打包传输或存储。 2)解码重构路径:为了得到预测所用的参考帧图像,编码器还必须具有解码重构图 像的部分。在前向编码路径中得到的变换系数 x 在解码重构路径中被反量化、反变换后得 到残差宏块 dn。这个残差与前向路径中产生的差分宏块 dn并不完全一样,这是因为在量 化和反量化的过程产生了失真。预测宏块 p 和残差宏块 dn相加,得到了 fn,之后编码 器用一个滤波器来减轻编解码过程中的噪声,以此改进重构图像帧的质量,提高压缩编码 性能。fn 经过滤波后得到重构帧 fn。 (2)解码器 如图 2-2 所示,解码器根据接收到的视频编码码流,经过熵解码得到量化后的一组变 换系数 x,再经过反量化和反变换得到 dn,根据从该码流中解码出的头信息,得到预测 块 p,p 与 dn相加得到 fn。再经过滤波后得到重构宏块 fn。 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 9 2.2 编码视频的网络传输编码视频的网络传输编码视频的网络传输编码视频的网络传输 2.2.12.2.12.2.12.2.1 码率控制的作用码率控制的作用码率控制的作用码率控制的作用 码率控制技术是视频编码中非常重要的部分之一,在视频压缩编码过程中,通过码率 控制可以使视频在信道上传输时能充分利用带宽,即在传输视频时即不浪费带宽也不超过 带宽的限制。由于视频序列中采用不同的编码方式对帧进行编码并且各帧图像的帧内细节 复杂度和帧间运动复杂度情况也不一定一样,这样就造成最后产生的视频码流可能波动很 大。 现有视频编码标准都采用 dct 来消除视频图像间的相关性。编码器将一待编码图像 帧分割成一定大小的块,再分别对各块进行 dct 和量化。当采用帧内编码时,帧内复杂 度大细节较多的帧产生的比特数也较多,帧内复杂度小细节较少的帧产生的比特数也较 少。当采用帧间编码时,帧间不存在场景变换或帧间运动平缓时,基于块的运动矢量估计 可有效地预测出运动情况。在这种情况下,编码产生的比特数较少。如果帧间存在场景变 换或帧间运动剧烈时,基于块的运动矢量估计不能预测出实际的运动情况,特别在帧间存 在场景变换时,编码器会对图像帧中很多宏块使用帧内编码,这样就导致编码产生的比特 数较多。 在视频编码中,不同类型的帧产生的比特数也有一定的差异。i 帧图像中仅使用帧内 编码模式对图像帧中的块进行编码, 这样就造成编码压缩比较低, 编码产生的比特数较多。 p 帧采用帧间预测,它的压缩比通常要高于 i 帧。b 帧使用了双向帧间预测,不将其作为 参考帧对视频中后续未编码图像帧进行帧间预测,所以可以用较少的比特数对 b 帧进行编 码。一段视频序列中各类型帧编码产生的比特数通常是:编码 i 帧产生的比特数最多;编 码 p 帧产生的比特数居中,编码 b 帧产生的比特数最少。 对视频通信而言,由于实际信道带宽和编码缓冲区大小的限制,如果不对编码产生的 波动很大的视频码流加以控制会对视频传输造成很大的影响。所以需要对视频编码器选择 适当的策略进行码率控制,将编码产生的输出码率控制在一定范围内,以保证在符合信道 带宽的基础上尽可能地提高编码重构图像的质量。 2.2.22.2.22.2.22.2.2 传输信道和码率控制传输信道和码率控制传输信道和码率控制传输信道和码率控制 码率控制算法根据不同的网络传输信道情况又可大致分为固定码率(cbr)控制算法 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 10 和可变码率(vbr)控制算法。 (1)固定码率(cbr)控制算法 cbr 控制算法是针对网络传输信道稳定的情况, 此时对传输的视频码流根据实际信道 带宽的情况设定一个目标码率。固定码率控制的目的就是通过调整编码器的相关参数,使 编码输出码率达到目标码率。固定码率控制后的视频码流输出码率相对稳定,适用于网络 传输信道带宽稳定波动小的情况。目前提出的码率控制算法大多是针对固定码率的情况。 (2)可变码率(vbr)控制算法 vbr 控制算法是针对网络传输信道不稳定波动大的情况, 一般应用在有线传输信道发 生信道拥塞或是无线传输信道的时候,这种情况下信道的传输稳定性比较差,信道带宽容 易出现较大的波动或跳变,即目标码率可能发生较大的变化。并且在这些情况下,信道能 够提供的传输带宽也往往较低。需要通过码率控制使得视频编码器产生的码率与传输信道 的码率相匹配并且能保证一定的编码重构图像质量。 2.3 基本码率控制技术基本码率控制技术基本码率控制技术基本码率控制技术 2.3.12.3.12.3.12.3.1 码率控制的基本原理码率控制的基本原理码率控制的基本原理码率控制的基本原理 目前码率控制算法大多是根据编码缓冲区充盈度通过调整编码器相关编码参数来使 编码输出码率满足给定目标码率。码率控制算法通常都是在编码器中引入反馈控制装置, 使编码器中相关的编码参数能够根据给定的目标码率、实际产生的编码码率和编码缓冲区 充盈度等各项指标进行不断修正,其原理图如图 2-3 所示。 图 2-3 码率控制原理图 在图 2-3 所示的码率控制系统中,码率控制负责观测实际信道带宽和编码缓冲区充盈 度等信息,并通过调整编码器相关编码参数的方式使得各项性能指标符合要求。编码缓冲 区起平滑输出码率的作用,使输出码流满足给定目标码率。编码器编码产生的压缩码流输 入缓冲区中码率是变化的,而输出码率则取决于码率控制的模式。在固定码率控制下,输 出码流的码率稳定波动不大;在可变码率控制下,输出码流的码率随着给定的目标码率在 一定范围内波动。理论上,当编码缓冲区非常大时,可以做到编码输出码流的码率满足给 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 11 定的目标码率,但是由于编码缓冲区越大所造成的传输时延也越大。对于实时视频通信系 统来说,要求时延较小。因此不能靠增加编码缓冲区大小的方法来满足给定的目标码率, 需要在视频编码过程中采用码率控制根据实际信道带宽和编码缓冲区充盈度等信息来调 整编码器相关编码参数,如量化参数(qp) ,帧率等。目前多数码率控制算法是在编码过 程中根据估计得到的视频编码复杂度、实际编码产生的码率、目标码率和编码缓冲区充盈 度等信息估算出量化参数(qp) ,编码器再利用估算出的 qp 对视频序列进行压缩编码, 最后将编码后的视频流送入缓冲区中。 2.3.22.3.22.3.22.3.2 率失真理论与模型率失真理论与模型率失真理论与模型率失真理论与模型 信源输出的信息往往是连续的,所以信源的信息量是无限大的,想要无失真地传输信 源连续的信息,所需要的信息率将大大超过信道容量(rc),根据信道编码定理,信道不 可能实现对消息的完全无失真传输。 在实际生活中,可以允许以一定程度的失真近似地再现原始信息。率失真理论研究的 就是信息率和失真之间的关系。 率失真理论是允许一定程度失真的信源编码理论,用来表示信源编码码率与失真之间 的关系。香农提出的信息率失真理论奠定了信源编码的理论基础。率失真理论研究的是限 失真编码问题:即在允许一定失真度 d 的情况下,将信源输出的信息率压缩到 r(d)(信息 率失真函数) ,归结为数学公式为: mind,约束条件:rrc (2-1) 其中 d 代表失真度,r 为码率,rc 为信道的传输速率。 视频压缩是典型的限失真编码,所以率失真理论同样适用于视频编码。为在限定码率 下使失真最小,需要在码率 r 和失真 d 之间寻找一个平衡点。可用一组编码参数集(量化 参数,编码模式等)对视频序列进行编码,得到相应的码率(r)和编码重构图像的失真 度(d) ,两者结合形成一个 r-d 点。用多组编码参数集反复进行编码,可以获得多个 r-d 点。多个 r-d 点拟合成率失真(r-d)曲线。如图 2-4 所示,当 d=0 时,编码对应于无损 压缩,输入码率应大于或等于信源熵 h(x);其中 dmax为最大允许失真。给定一个目标码 率 rt, 在曲线中找到与其对应的失真点 dt。 视频编码的率失真优化的目的就是寻找一个合 适的编码参数集使得产生的 r-d 点尽可能地位于或接近 r-d 曲线。 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 12 图 2-4 视频编码的r-d曲线 利用拉格朗日乘子法求解约束条件下的极值,从多组编码参数集中找出性能最好的那 组编码参数,将其用在视频编码器中以获得最好的编码性能。 率失真模型在视频编码中的作用非常重要,用它来描述编码码率、图像失真度和量化 参数之间的关系,率失真模型的准确与否关系到编码器能否在给定目标码率下选择最优的 编码参数来达到最佳的编码重构图像质量;同时率失真模型的选择也要考虑到是否便于计 算和使用。目前常用的率失真模型有对数模型、二次模型和 域模型等。下面介绍 jm10.2 中使用的二次率失真模型。 文献33中根据一系列的公式推算,提出了一种二次率失真模型,可用二次多项式表 示如下: ttexture=x1madq-1+ x2madq-2 (2-2) ttexture为当前图像帧的纹理比特数;q 为当前图像帧的量化步长;mad 为当前图像帧 的平均绝对误差,由前一帧的 mad 根据线性预测得来,用它来表征图像复杂度;x1,x2 为参数。二次率失真模型比较准确地描述了视频编码比特数、图像失真度和量化步长之间 的关系。 2.3.32.3.32.3.32.3.3 经典码率控制算法经典码率控制算法经典码率控制算法经典码率控制算法 针对不同的视频编码标准,有不同的码率控制算法。比较经典的有用在 h.261 上的 rm834, 用在mpeg-2上的tm535, 用在mpeg-4上的vm836和用在h.263上的tmn837。 (1)rm8 码率控制算法 rm8 定义的编码模型中,编码器编码产生的视频码流输出到一个缓冲区中,利用该缓 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 13 冲区来平滑编码输出视频码流的码率波动。根据观测到的编码缓冲区充盈度,编码器通过 调整量化参数来达到码率控制的目的,防止编码缓冲区的溢出。 rm8 的码率控制算法中规定了编码缓冲区的大小、最大缓冲延时等参数。根据实际信 道带宽来决定初始帧的量化参数,在对初始帧的编码过程中该量化参数不变。完成对初始 帧的编码后,编码缓冲区中有一定的充盈度。视频序列后续帧的量化参数由编码缓冲区充 盈度 bf决定,其计算公式如下: 31, 1|32min|+= f bqp (2-3) qp的取值范围为 1,31中的整数,bf被归一化到0,1之间。 (2)tm5码率控制 tm5码率控制算法中将待编码的视频序列划分为多个图像组(gop), 每个gop的第一 帧为i帧,其余帧为p帧或b帧。码率控制算法分为如下三步: 第一步,帧层的比特数分配,将各gop的目标比特数分配给gop中的各个帧。每帧 图像所分配到的比特数与图像复杂度有关,各类型图像帧的初始复杂度分别定义为: xi=(160bit_rate)/115 (2-4) xp=(60bit_rate)/115 (2-5) xb=(42bit_rate)/115 (2-6) 式中xi、xp、xb是初始i,p,b帧图像的复杂度,bit_rate为目标比特数,对各类型 图像的初始帧编码后,可以分别得到编码产生的比特数和平均量化参数qi、qp、qb。视频 序列的帧与帧之间存在一定相关性,故后续待编码帧的复杂度可由最近的己编码同类型帧 预测得到,xi =sixi、xp = spxp、xb = sbxb;其中si、sp、sb为相关系数。 第二步,宏块层的比特分配,根据编码缓冲区充盈度和宏块间的相关性计算每个宏块 的量化参数。 第三步是自适应量化。 (3)vm8码率控制 vm8码率控制算法,不对宏块层进行码率控制,gop层和帧层的比特数分配和上一 码率控制算法中的基本相同。该算法引进一个二次率失真模型,率失真模型的公式如下: 2 /)(qbqaqr+= (2-7) 式中a、b为参数。考虑到当前帧图像的编码复杂度,将上面公式(2-7)中的模型修 改为: )/()( 2 qbqamadqr+= (2-8) 南京邮电大学硕士研究生学位论文 第二章 h.264 码率控制中的插帧和跳帧 14 二次r-q模型是在具有较强相关性的视频序列相邻帧具有一致的r-q曲线的基础上提 出的。当对一帧图像进行编码后,得到编码产生的比特数和平均量化参数。通过统计当前 帧之前多帧图像的这两个值,可以用来修正当前公式中的a、b 参数。根据修正得到的参 数a、b,可用公式(2-8)来计算出当前帧的量化参数。 由于没有对宏块层进行码率控制,所以该算法对目标比特数的估计精度不高,另外, 由于二次r-q模型提出的基础,在视频序列运动复杂度高即帧间相关性较弱时对量化参数 的估计将会出现较大误差。 (4)tmn8码率控制 该码率控制算法主要有以下两个步骤: 第一步为帧层:为当前帧决定目标比特数。 = otherbsacbf bsacbffcbf f r b , ,/ ,其中: (2-9) 其中,b为分配给当前帧的目标比特数,r为目标码率,f为帧率,cbf为当前编码 缓冲区充盈度,bs为缓冲区大小,参数a=0.1。 第二步是宏块层,利用率失真模型,根据目标码率和编码重构图像的失真度来调整量 化参数使编码性能能达到最优。 与上一码率控制算法相比,由于对宏块层进行了码率控制,tmn8对目标比特数的估 计更加准确。然而,由于此算法的也是以视频序列中帧间相关性强为应用基础,所以在视 频序列运动复杂度高即帧间相关性较弱时会出现对量化参数估计不准确的情况。 2.4 h.264 的的的的参考模型参考模型参考模型参考模型 jm10.2 中的码率控制算法中的码率控制算法中的码率控制算法中的码率控制算法 2.4.12.4.12.4.12.4.1 基本原理基本原理基本原理基本原理 码率控制是编码端的一个重要部分,在2.3.3中已分析过以往在mpeg-2、mpeg-4、 h.263等视频编码标准中的经典码率控制算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业自动化技术的现状与趋势
- 工业设计在产品开发中的作用
- 工业设计新品的创新与市场分析
- 工业节能的挑战与解决方案
- 工作压力的缓解与管理
- 工作环境优化与员工满意度提升
- 工程中的环境保护法规与实践
- 工程师培训中的数据可视化技术
- 工厂设备安全与维护管理
- 工厂电气安全防护措施与实践
- 现代物流技术在军事后勤保障中的应用研究
- 停车场承包经营协议书范本
- 工作分析实务-国家开放大学电大易考通考试题目答案
- 2025年广州市越秀区建设街招考聘用劳动保障监察协管员高频重点提升(共500题)附带答案详解
- 医疗器械产品运输质量保证措施
- 2025年宁夏银川市灵武市文化旅游投资开发有限公司招聘笔试参考题库附带答案详解
- 燃气行业法律法规培训
- T-GDHES 003-2024 预应力混凝土U形板桩应用技术规程
- 八不伤害培训课件
- 出镜记者与现场报道知到智慧树章节测试课后答案2024年秋武汉学院
- 《颅骨修补术》课件
评论
0/150
提交评论