首页> 中国专利> 针对有效速率控制和增强视频编码质量的ρ域帧级比特分配的方法

针对有效速率控制和增强视频编码质量的ρ域帧级比特分配的方法

摘要

本发明要求保护一种以目标比特率对画面组进行编码的方法。针对画面组中的每个帧执行预分析过程(105),以产生一系列参数。然后,针对从所述画面组中选择的帧执行预处理过程(115),以便对与所选择的帧相关联的参数进行更新,而与画面组中的未编码帧相关联的参数保持不变。然后,使用这两组参数来确定为所述帧分配的比特率(125),使得在对所述帧进行实际编码时,将所分配的比特率预留用于编码操作。所分配的比特率可以与画面组的目标比特率不同,与所分配的比特率相关联的量化级可以不同于与用于对帧编码的实际比特率相关联的量化级。

著录项

  • 公开/公告号CN101518088A

    专利类型发明专利

  • 公开/公告日2009-08-26

    原文格式PDF

  • 申请/专利权人 汤姆森许可贸易公司;

    申请/专利号CN200780035858.X

  • 发明设计人 杨华;吉尔·麦克唐纳·博伊斯;

    申请日2007-09-28

  • 分类号H04N7/26(20060101);H04N7/50(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人王波波

  • 地址 法国布洛涅-比郎库尔

  • 入库时间 2023-12-17 22:36:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-26

    专利权的转移 IPC(主分类):H04N7/26 登记生效日:20190131 变更前: 变更后: 申请日:20070928

    专利申请权、专利权的转移

  • 2019-02-26

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04N7/26 变更前: 变更后: 申请日:20070928

    专利权人的姓名或者名称、地址的变更

  • 2013-02-20

    授权

    授权

  • 2009-12-02

    实质审查的生效

    实质审查的生效

  • 2009-08-26

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2007年9月28日提交的美国临时申请序列号No.60/848,254的优先权,其全部公开一并在此作为参考。

技术领域

本原理总体涉及视频编码,更具体地,涉及对视频进行编码以满足指定平均比特率的方法及设备。

背景技术

在视频编码系统中,速率控制在呈现良好的总体视频编码性能方面起重要作用。实际上,不同的应用场景可能引起不同类型的速率控制问题,可以将这些问题粗略地分类为恒定比特率(CBR)或可变比特率(VBR)速率控制。在例如视频点播、视频广播、视频会议以及视频电话等实时网络视频应用中,由于有限的信道带宽,通常必须以恒定的平均比特率来对输入视频信号进行编码,从而需要CBR速率控制。另一方面,对于例如将家庭视频或电影压缩为DVD等的各种离线视频压缩应用而言,不存在严格的恒定比特率限制,而仅有的限制是总存储空间。在这种情况下,允许VBR编码,与CBR编码相比,VBR编码在速率控制方面面临的挑战较小。

在实际视频流系统中,在解码器侧的缓冲是必要的,以吸收帧之间的比特率变化以及可变的传输延迟,从而确保平滑且连续地播放解码后的视频信号。如果不同帧的比特率变化过大,则缓冲器可能下溢(underflow)或溢出(overflow)。在任一种情况下,都不能再保持连续且平滑的视频播放。因此,良好的CBR速率控制方案的目的主要有三点:(i)实现平均目标比特率;(ii)满足缓冲器约束;(iii)保持一致的视频质量。其中,速率;(ii)满足缓冲器约束;(iii)保持一致的视频质量。其中,前两个目的对于系统而言更为急迫,因而在实际中有更高的优先权。

可以将视频流应用进一步分类为对延迟敏感或对延迟不敏感。交互式双向流应用(例如视频会议或视频电话)具有非常严格的延迟要求(通常小于几百毫秒),因此导致了较小的解码器缓冲器。在这种情况下,在实现平均比特率并满足缓冲器约束之后,一致的编码视频质量的范围非常有限。另一方面,在单向流应用中(例如视频点播或视频广播),通常可允许几秒或几十秒的延迟,可以采用较大的缓冲器。基于所有这些考虑,需要产生一种视频编码器,可以提供由具有总体平均比特率(CBR)的一系列视频帧构成的画面组(Group of Pictures),而不使这样的帧的相关质量达到这样的要求。

发明内容

本原理解决了现有技术的这些和其他缺陷和缺点,本原理的目的是提供一种将可用运动信息重用为视频编码的运动估计预测信息的方法和设备。

根据本原理的一方面,提供了一种编码器,在对要编码的帧的画面组进行分析时使用预编码和预分析。针对每个画面组的这样的步骤的结果具有相同或相似的总体平均比特率,而在这样的画面组中的帧将具有为编码这样的帧而分配和预留的可变比特率。

根据以下结合附图来阅读的示例实施例的详细描述,本原理的这些和其他方面、特征以及优点将变得显而易见。

附图说明

根据以下示例附图将更好地理解本原理,附图中:

图1示出了根据本发明原理的实施例的执行预分析和与处理步骤以对画面组进行编码的示例过程的框图;

图2示出了根据本发明原理的实施例的对画面组执行预分析操作的示例过程的流程图;

图3示出了根据本发明原理的实施例的基于ρ域和失真建模来执行帧级(frame-level)比特分配的示例过程的流程图;

图4示出了根据本发明原理的实施例的当画面组中的帧具有可变比特率时采用恒定比特率对每个这样的画面组进行编码的示例过程的流程图;

图5示出了根据本原理实施例的本原理可以应用的具有预处理元件的示例视频编码器的框图。

具体实施方式

本发明的原理可以应用于基于帧内或帧间的任何编码标准。此外,贯穿说明书,以同义的方式使用术语“画面”和“帧”。即术语帧或画面表示相同的事物。

本描述说明了本发明的原理。因此,可以认识到,本领域技术人员能够想到各种实施本发明的原理的设置,虽然这里没有显式地描述或示出这些设置,但是,这些设置包括在本发明的精神和范围中。

这里阐述的所有示例和条件语言是为了教导的目的,以帮助读者理解本发明的原理以及发明人为了改进现有技术而贡献的概念,这些应被解释为并非将本发明局限于这样具体阐述的示例和条件。

此外,这里阐述本发明的原理、方面和实施例以及其具体示例的所有表述应包括其结构和功能的等效物。此外,这样的等效物应包括当前已知的等效物以及未来开发的等效物,例如,开发出的执行相同功能的任何元件,而不论其结构如何。

因此,例如,本领域技术人员应理解,这里呈现的框图表示了实现本发明原理的示意电路图的概念视图。类似地,可以认识到,任何流程图、流程图表、状态转移图、伪代码等表示了各种过程,所述过程可以被实质上表示在计算机可读介质中,并从而由计算机或处理器执行,而不论是否显式地示出了这样的计算机或处理器。

可以通过使用专用硬件以及能够与合适的软件相关联地执行软件的硬件,来提供图中所示的各种元件的功能。在由处理器提供时,可以由单个专用处理器、单个共享处理器或多个单处理器(其中一些可以是共享的)来提供该功能。此外,显式使用的术语“处理器”或“控制器”不应被解释为是排他性地指能够执行软件的硬件,可以隐含地包括但不限于:数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”)、和永久存储器。

也可以包括其他硬件,不论其为传统的和/或常规的。类似地,图中所示的任何开关仅是概念性的。可以通过程序逻辑的操作、通过专用逻辑、通过程序控制和专用逻辑的交互,或甚至手动地实施其功能,如从上下文中可以更具体地理解的,实现者可以选择特定的技术。

在权利要求书中,表述为用于执行指定功能的装置的任何元件应包含执行该功能的任何方式,例如包括a)执行该功能的电路元件的结合或者b)任何形式的软件,从而包括固件、微代码等,与执行该软件的适当电路相结合来执行该功能。由这样的权利要求所限定的本发明在于以下事实:以权利要求所要求保护的方式,将各种所述装置所提供的功能结合并集合在一起。因此,应认为可以提供这些功能的任何装置都与这样所示的装置等效。

说明书中对本原理的“一个实施例”或“实施例”的引用意味着,结合实施例所描述的具体特征、结构、特性等包含在本原理的至少一个实施例中。因此,贯穿说明书各处出现的短语“在一个实施例中”或“在实施例中”的出现不一定全部指的是同一实施例。

如图5所示以示例视频编码器来实现本发明的原理,其中示例编码器是以硬件、软件或其组合来实现的,具有预分析/预处理元件,通常由参考标号500和590分别指示预分析/预处理元件。预分析/预处理元件590执行以下关于本发明的各种元件的操作而描述的各种预处理和预分析操作。

视频编码器500包括组合器510,组合器510的输出与变换器515的输入进行信号通信连接。变换器515的输出与量化器520的输入进行信号通信连接。该量化器的输出与可变长度编码器(VLC)560的第一输入和反量化器525的输入进行信号通信连接。反量化器525的输出与反变换器530的输入进行信号通信连接。反变换器530的输出与组合器535的第一非反相输入进行信号通信连接。组合器535的输出与环路滤波器540的输入进行信号通信连接。环路滤波器540的输出与帧缓冲器545的输入进行信号通信连接。帧缓冲器545的第一输出与运动补偿器555的第一输入进行信号通信连接。帧缓冲器545的第二输出与运动估计器550的第一输入进行信号通信连接。运动估计器550的第一输出与可变长度编码器(VLC)560的第二输入进行信号通信连接。运动估计器550的第二输出与运动补偿器555的第二输入进行信号通信连接。运动补偿器的第二输出与组合器535的第二非反相输入以及与组合器510的反相进行输入信号通信连接。组合器510的非反相输入、运动估计器550的第二输入以及运动估计器550的第三输入可用作编码器500的输入。预处理元件590的输入接收输入视频。预分析/预处理元件590的第一输出与组合器510的非反相输入和运动估计器550的第二输入进行信号通信连接。预分析/预处理元件590的第二输出与运动估计器550的第三输入进行信号通信连接。可变长度编码器(VLC)560的输出可用作编码器500的输出。因为图5中的编码器表示一种示例编码器,所以应理解,可以将预分析/预处理元件590分成若干附加元件,并且可以将其耦合到编码器的其他元件。

在说明本发明的特定处理元件之前,通过对于根据本发明为何使用这样的元件的对应解释,图4详述了本发明的示例编码方法400的流程图,该方法用于产生恒定比特率画面组(GOP间CBR),同时采用不同的比特率对每个画面组中的帧进行编码(帧内VBR)。编码方法400表示在本发明中所使用的编码分析/编码处理的总体视图。

步骤405引入了对要编码的原始帧组中的每个帧执行预分析的问题。如以后将解释的,本发明的实施例使用ρ域速率模型,所述ρ域速率模型假定画面组中的每个帧具有共同的失真。预分析操作的结果产生如ρ-QP和D’-QP之类的参数,以后在对这些帧进行编码以产生编码的画面组时将使用这些参数。

步骤410引入了预处理步骤,其中对来自原始画面组的特定帧进行分析,以在对其进行编码之前对与该特定帧相关联的ρ-QP和D’-QP进行更新。这就是说,与在正在编码的当前帧之后到来的帧相关联的ρ-QP和D’-QP来自预分析阶段,而在该步骤期间更新当前帧的ρ-QP和D’-QP,以便将所分配的比特率预留用于对当前帧进行编码,使得编码后的GOP可以满足总体目标比特率。这意味着,例如,与具有较低复杂度的I或P帧/画面相比,对I帧/画面(或复杂的P帧/画面)分配的比特率将为编码操作预留更多比特。这还意味着,对于特定画面组而言,对每个帧分配的比特率可以随不同帧而变化,使得对第一帧分配的比特率与对编码第二帧分配的比特率不同。

在对帧进行编码时,编码器必须考虑在对先前和当前编码的帧进行编码中所消耗的比特率,以使所述画面组在编码后处于目标比特率(CBR)。因此,对ρ-QP和D’-QP参数进行调节,以满足编码的GOP的目标比特率,其中所分配的比特率(影响用于对帧进行编码的量化级)将随GOP中的不同帧而变化。这意味着,编码器必须预留对每个帧分配的比特率,以满足总体目标比特率。

在步骤415中,对当前帧进行编码,其中将所分配的比特率与当前帧相关联。然而应理解,当实际对当前帧进行编码时,使用如宏块级比特分配之类的操作来确定用于对这样的帧进行编码的实际量化级(其中与为帧预留的所分配比特率相关联的量化级与用于对特定帧进行编码的量化级不是相同的量化级)。然而本发明的目的取消了针对实际编码过程分配的比特率,使得系统预先推测哪些帧将需要较多的比特用于编码(在第一量化级)以及哪些帧将需要较少的比特与对帧分配的比特率相关联,其中,对原始GOP中的每个连续帧,重复步骤410和415,以满足编码的GOP的目标比特率(在步骤420中对原始GOP的所有帧进行编码)。

还可以将本发明实现为:仅对GOP中的所选帧进行编码,并且仅针对这些帧执行上述过程。例如,可以确定,尽管可以将原始GOP配置为以每秒30帧来传送,然而GOP(在编码后)的实际传送可能用于仅以每秒15帧来解码视频的系统。因此,可以有预分析的附加操作,在该操作中以特定间隔来选择原始GOP中的帧,或相对于其他帧类型“P帧/画面”优先选择特定帧类型“I帧/画面”。

为实现上述期望结果,本发明的实施例使用一种基于ρ域速率和失真(RD)建模的帧级比特分配(FBA)的解决方案。所提出的FBA方案在于,通过简化的编码、新的高效而精确的失真模型、低复杂度的优化算法以及适当设计的模型参数更新方案,该方案有效地减少了参考与编码模式的失配。与其他现有FBA解决方案相比,所提出的方案在复杂度与性能之间实现了更好的权衡。与现有的基于方差的FBA方案相比,所提出的FBA方案通过复杂度的适度提高,实现了更加有效得多的速率控制,并实现了在感知视频编码质量方面的显著提高。

本发明的以下实施例以单向非交互式视频流应用为目标,但是本发明的这种原理可以用于使用双向和/或交互式能力的其他视频传送应用中。特别地,如果假定缓冲器大小充足而且所传送的内容的预加载时间充足(缓冲器/存储器约束在视频流的解码/传送中不是问题),则可以使用这样的其他传送应用。

实际上,在帧级和宏块(MB)级都执行速率控制。首先在帧级分配总编码比特率,以指定要采用多少比特来对特定帧进行编码,然后将比特进一步分配给该帧的不同MB。从而确定每个MB的量化阶,以对MB进行实际的编码。本发明描述了一种帧级比特分配(FBA)的完整解决方案。

具体地,本发明提出了一种基于ρ域RD模型的FBA解决方案。本发明是根据以下概念构建的(并且在以下概念基础上改进):现有ρ域速率模型,由Z.He、Y.Kim和S.K.Mitra撰写的文献“Object-level bitallocation and scalable rate control for MPEG-4 video coding,”Proc.Workshop and Exhibition on MPEG-4,pp.63-6,San Jose,CA,June2001,以及由H.Yang和J.Boyce于2007年8月21日提交的PCT申请US2007/01848“An analytic and empirical hybrid source coding distortionmodel with high modeling accuracy and low computation complexity”中提出的新的有效失真模型,以估计帧的实际RD特性。为了减轻参考与编码模式的失配的影响并从而改进RD建模的操作精度,通过在对GOP编码之前进行预分析处理,应用缜密设计的简化编码算法来采集画面组(GOP)中所有帧的RD数据。对于当前帧,当该帧的准确参考帧可用时,在对该帧编码之前的预处理过程中重新计算该帧的用于FBA的RD数据。基于帧级RD数据,提出一种高效的优化方案来解决FBA问题,其中假定以相同水平的失真来对GOP中的所有帧进行编码,其目的是在目标总比特率约束下找到最小恒定失真。此外,与任何其他ρ域FBA方法不同,所提出的方案采用独特设计的方法来分别更新所涉及的用于预分析和预处理的RD模型参数。最后,通过广泛实验,发明人认识到,所提出的FBA方案始终优于现有的基于方差的FBA方法,在总体感知视频编码质量上有显著提高。

关于FBA,现有方案可以大致分类为启发式(heuristic)方案或基于RD效率的方案。大多数启发式FBA方案可以被认为是基于复杂度度量的方案,这些方案主要源自简单而有用的直觉,即将较多比特分配给复杂的帧,将较少比特分配给简单的帧,使得所有帧具有相似的编码质量,同时将总比特预算完全用尽。在这些方案中,使用特定量,例如预测残余帧的绝对差均值(MAD)(参见B.Xie和W.Zeng的“Asequence-based rate control framework for constant quality video,”IEEETrans.Circuits Syst.Video Technol.,vol.16,no.1,pp.56-71,Jan.2006)或方差(参见I.-M Pao和M.-T.Sun的“Encoding stored video forstreaming applications,”IEEE Trans.Circuits Syst.Video Technol,vol.11,no.2,pp.199-209,Feb.2001)、或CBR编码中帧的量化参数(QP)(参见P.H.Westerink、R.Rajagopalan和C.A.Gonzales的“Two-passMPEG-2 variable-bit-rate encoding,”IBM J.Res.Develop.,vol.43,no.4,pp.471-488,Jul.1999)来度量帧的编码复杂度,并且根据其复杂度值来将比特按比例分配给每个帧。

另一方面,与启发式度量编码复杂度不同,RD FBA方案直接估计帧的RD函数,然后将这些RD数据应用到算法中以找出FBA解决方案。基于RD效率的FBA方案通常比启发式方法表现出更有效的速率控制以及更好的总体视频编码质量,因此只要可承受其增加的复杂度,其实际上是更优选的(例如,由于低复杂度实现(参见L.-J.Lin和A.Ortega的“Bit-rate control using piecewise approximated rate-distortioncharacteristics,”IEEE Trans.Circuits Syst.Video Technol.,vol.8,no.4,pp.446-59,Aug.1998),或由于并未加以严格复杂度约束的离线视频编码(参见Y.Yue、J.Zhou、Y.Wang和C.W.Chen的“A novel tow-passVBR coding algorithm for fixed size storage applications,”IEEE Trans.Circuits Syst.Video Technol,vol.11,no.3,pp.345-36,Mar.2001;J.Cai、Z.He和C.W.Chen的“Optimal bit allocation for low bit rate videostreaming applications,”Proc.ICIP 2002,vol.1,pp.22-5,Sept.2002))。本发明还集中关注基于RD效率的FBA。接下来,基于现有技术来公开本发明的一些关键特征。

在RD优化的FBA中,第一个重要问题是,如何精确估计每个帧的RD函数,为此目前提出了大量各种不同的RD模型。关于速率建模,在He、Kim和Mitra的文献中提出的ρ域速率模型以低计算复杂度表现出高建模精度,从而与其他现有速率模型相比是优越的方法。然而,大多数精确ρ域速率模型的现有应用集中关注MB级速率控制。本发明提出了一种将该模型应用于帧级速率控制的方案。连同现有的MB级方案,可以实现基于ρ域速率建模的完整速率控制架构。就我们所知,关于类似主题的唯一公布的成果来自于Cai、He和Chen的文献,该文献以针对DVD和电影的离线视频压缩应用为目标,在整个视频序列的VBR编码中针对优化的FBA应用ρ域RD模型。相反,我们的方案的目标是具有CBR速率控制的实时视频流应用,其在编码延迟和复杂度方面表现出更为严格的限制。

关于源编码失真建模,现有的基于RD效率的FBA方案采用基于QP的或基于ρ的分析模型(参见He、Kim、Mitra的文献;N.Kamaci、Y.Altunbasak和R.M.Mersereau的“Frame bit allocation for the H.264/AVC video coder via Cauchy-density-based rate and distortionmodels,”IEEE Trans.Circuits Syst.Video Technol.,vol.15,no.8,pp.944-1006,Aug.2005;A.Ortega、K.Ramchandran和M.Vetterli的“Optimal trellis-based buffered compression and fast approximations,”IEEE Tran.Image Processing,vol.3,no.1,pp.26-40,Jan.1994)或在Lin和Ortega的文献中公开的基于插值的经验模型。在Yang和Boyce的专利申请中公开的模型中,提出了一种更为精确的分析与经验混合的失真模型,由于快速查表计算使得该失真模型仍然产生了低计算复杂度。在本发明所讨论的实施例中,在我们提出的RD优化的FBA解决方案中采用这种更优越的失真模型,这种失真模型表现出比其他较不精确的模型更好的改进性能。

采用精确的源编码RD模型,在给定特定帧的预测参考帧的情况下,可以精确估计特定帧的R-QP与D-QP关系,以及所有MB的编码模式(包括运动向量和MB或块编码模式)。然而,在实际FBA问题中,必须在编码过程之前估计帧的RD函数。由于运动补偿的预测性视频编码架构,使得在没有对所有其先前帧进行实际编码的情况下,永远无法知道特定帧的准确参考帧和编码模式。因此,在FBA中假定的参考和编码模式与实际编码所产生的参考和编码模式之间,存在不可避免的失配,这必定将损害基础RD模型的实际操作估计精确度。

事实上,长久以来,这种失配问题被认为是RD函数的帧间依赖性问题。为了精确考虑帧间依赖性的影响,一些现有方案对帧的所有可能的QP组合穷举式(exhaustive)编码(参见A.Ortega、K.Ramchandran和M.Vetterli的“Optimal trellis-based buffered compression and fastapproximations,”IEEE Tran.Image Processing,vol.3,no.1,pp.26-40,Jan.1994)或穷举式建模(如在Lin和Ortega的文献中说明的),这导致了极高的计算复杂度。作为低复杂度的另一极端,一些方案在预分析中简单地将原始视频帧当作参考帧(参见Yue/Zhou/Wang/Chen的文献),然而这可能极大地降低RD估计的精确度,并从而降低所产生的速率控制性能。为了更好地对复杂度与性能加以权衡,一些解决方案通过一次单程编码来执行预分析(参见Cai、He、Chen的文献;Y.Sermadevi和S.Hemami的“Linear programming optimization for videocoding under multiple constrains,”Proc.DCC 2003)。为了有效补偿失配的影响,该单程预分析编码可以是采用目标比特率的CBR编码(参见Sermadevi/Hemami的文献)或针对所有帧使用特定固定QP(参见Cai/He/Chen的文献)。在本发明中,不使用单程完全编码,而开发了一种简化编码方法,针对参考与编码模式的失配补偿采用固定QP,其中,在P帧(或I帧)编码中仅应用P16×16(或I16×16)模式,并且不涉及熵编码。实际上,可以将完全编码简化至包括更多或更少编码选项的各种不同程度。简化方案包括特定编码选项集合,如采用广泛实验结果所证实的,该编码选项集合被证明表示了良好的复杂度与性能的权衡。此外,在透彻研究QP失配的影响之后,开发了一种有效的方式来选择固定的QP水平。因此,本发明的原理公开了一种关于预分析失配补偿的更为有效的解决方案。

在计算了每帧的RD数据之后,可以使用这些数据来优化FBA。关于改进准则,通常采用的方案是使平均MSE失真(参见Lin/Ortega或Yue/Zhou的文献)最小化。然而,最小化平均失真并不保证帧之间较低的质量变化,而帧之间较低的质量变化对良好的感知视频质量而言也很重要。因此,一些更先进的方案选择使最大失真最小化(参见G.M.Schuster、G.Melnikov和A.K.Katsaggelos的“A review of the minimummaximum criterion for optimal bit allocation among dependentquantizers,”IEEE Trans.on Multimedia,vol.1,no.1,pp.3-17,1999)或使失真的平均与变化的组合最小化(参见Lin/Ortega的文献)。在本发明中,在优化方法中针对所有帧假定恒定失真水平的情况,开发一种将梯度下降搜索和二分(bisectional)搜索相结合的快速搜索算法,以在满足目标比特率约束的同时找到最小失真水平。与现有优化算法相比,我们的方案不仅复杂度较低,而且还更直接地将恒定质量最大化作为目标,从而更适用于针对改进的感知视频编码质量的实际视频流系统中。

所提出的FBA解决方案还在于其独特设计的RD模型参数更新方案,其中采用两个不同大小的滑动窗来分别维护预分析和预处理模型的参数。实际上,视频信号可以包含非寻常的帧,如全白帧或完全静止帧,这些帧的编码消耗非常少的比特,并且这些帧不应包含在模型参数更新中。因此,本发明涉及有效的非寻常帧识别和一些其他异常处理,以实际上防止各种系统故障并保持整个系统的平滑运行。

为了实现图4所描述的概念,本发明提出了一种针对有效速率控制的ρ域RD FBA解决方案。我们的方案的以单向非交互式视频流应用为目标,这种应用通常没有严格的延迟约束。这里,假定缓冲器大小充足,从而不涉及缓冲器约束。假定在编码(导致一个GOP的编码延迟)之前,整个GOP是可用的。对于特定的指定目标比特率,假定使用不同GOP之间的CBR编码以及单个GOP内的VBR编码,这意味着每个GOP具有相同的总比特预算(根据目标平均比特率而确定),并且对GOP内的所有帧执行FBA。

图1示出了由要编码的画面组成的原始GOP的编码过程100。在一个GOP的原始视频帧可用的情况下,首先发起预分析过程105,以使用我们所提出的简化编码方法来从每个帧采集RD建模数据。还在预分析中实现场景变化检测。如果在GOP内没有场景变化,则对GOP进行编码,其中第一帧为I帧,其余帧为P帧。否则,将场景变化帧也编码为I帧。在预分析之后,在步骤110中,逐帧地执行对原始GOP的实际编码。在每个P帧编码之前,通过简化编码来重新采集当前帧的RD数据。因为这一点,可以提供准确的预测参考帧。在没有参考失配的情况下,可以实现更精确的RD估计。在步骤115中,我们将这种操作称作预处理。接着,在步骤120中,对其余所有帧执行优化的FBA,为每帧分配特定量的比特。然后,借助MB级速率控制,实际上对当前帧进行编码以实现所分配的比特预算。根据其实际消耗的比特,针对GOP中的其余帧更新该预算。然后针对下一帧重复预处理步骤110的整个过程、FBA以及编码,以此类推。

在详细描述每个模块之前,首先考虑在所提出的FBA方案中采用的RD模型。对于速率建模,采用在He/Kim/Mitra的文献中提出的ρ域模型,该模型定义如下:

R(QP)=θ·(1-ρ(QP))+C    (1)

这里ρ(QP)表示采用QP进行量化之后零量化的系数与所有系数之比。C表示除了系数编码比特以外所有其他开销比特,包括:画面首部比特、宏块首部比特、编码模式比特以及运动向量(MV)比特。θ是独立于QP的另一模型参数(参见该文献)。注意,ρ具有与QP的一一映射关系。在He/Kim/Mitra的文献中,示出了R与ρ有非常强的线性关系,这保证了模型的高建模精确度。在我们的广泛实验中,也验证了其优越的性能。

我们的失真模型是在Yang/Boyce的专利申请中公开的混合模型,其定义为:

D(QP)Dnz(QP)+Dz(QP)

=(1-ρ(QP))·112Q(QP)2+1A·ρ(QP)Σi=1(QP)Coeffz,i2(QP)---(2)

这里,A表示帧中像素的总数。Q表示与QP有关的量化步长。在H.264中,QP在0到51的范围内,QP与Q之间的关系是:

Q2(QP-4)/6---(3)

Coeffz2(QP)表示要采用QP量化为0的系数的幅度。在该失真模型中可以看出,总体MSE失真分成两部分:非零量化的系数Dnz(QP)的失真成分以及零量化的系数Dz(QP)的失真成分。仅在计算非零量化的系数的失真时才出现建模近似,其中假定均匀分布的量化误差。没有任何近似地精确计算零量化的系数的失真。该模型的最显著优点是,可以通过快速查表方法来执行Dz(QP)的精确计算,这仅导致少量复杂度提高。因此,该模型比现有模型实现了更高的精确度,同时仍然保持低复杂度。

实际上,我们发现,与参考与编码模式的失配对速率建模的损害相比,这种失配可能更严重地降低失真建模的性能。因此,如下所示,引入了附加模型参数α来补偿该失配效应。这里,D’表示根据(2)的失真估计。

D(QP)=α·D′(QP)        (4)

预分析的目的是为GOP的每个帧计算ρ-QP和D’-QP表,随后将其用于优化的FBA。在图2中示出了我们所提出的预分析方案200的框图(返回参考步骤105)。为了有效减轻参考与编码模式的失配对RD建模的影响,在对帧进行编码时,预分析的简化编码方法仅使用单个MB编码,即对于P帧或I帧分别使用P16×16或I16×16模式。

在步骤205中,H.264的完全编码过程从一帧开始,需要针对每个MB检查各种编码模式(步骤210,步骤215),例如,P16×16、P16×8、P8×16、P8×8、P8×4、P4×8、P4×4、跳过(Skip)、I16×16以及I4×4,这导致了很高的复杂度。现有预分析方案采用完全编码(参见Cai/He/Chen)或不采用任何编码(参见Yue/Zhou/Wang/Chen)。在本发明中,使用两种极端情况之间的良好平衡,这表现出在复杂度与建模精确度之间更好的权衡。通过广泛实验,做出以下确定:(i)与使用所有合法模式来进行检查相比,仅使用P16×16或I16×16模式并未过多牺牲建模精确度;(ii)因为全像素运动估计(ME)产生较差的建模性能,所以子像素ME是必要的;(iii)增强的预测带状搜索(EPZS)ME实现了接近全搜索ME的精确度,并且比对数(log)搜索的低复杂度ME方案的精确度好得多;(iv)在实际编码的ME搜索范围是128的情况下,预分析的良好搜索范围可以是64而不是32。这些有用的结果最终确定了所提出的预分析方案的相应设定。

注意,在我们的预分析过程中未包含熵编码,这是因为我们仅需要采集用于速率建模的ρ-QP数据。除此之外,我们的方案确实需要量化、反变换以及反量化等,以获得用于预测参考的重构的帧。这里,需要判定如何选择用于量化的QP。类似地,在Cai/He/Chen的文献中,假定GOP中的所有帧使用固定的QP用于预分析。在这种情况下,原始参考失配问题变成了QP失配问题,针对该问题,我们透彻研究了其对我们所采用的RD模式的性能的影响。在实验中,对于许多不同的视频序列,应用QP=25、35、45来进行实际编码,针对预分析应用编码QP+5或编码QP-5。实验结果表明:关于速率建模,与高估的QP相比,低估的QP(即预分析QP小于实际编码QP)是更优选的,这是因为,在使用编码QP+5的情况下,速率建模精确度比在编码QP-5的情况下的差得多。对于失真建模,高估的QP比低估的QP好。然而,相对低估的QP的性能退化并不太多。此外,实际上,精确的速率建模比精确的失真建模具有更高的优先级,这是因为,为了避免由于缓冲器溢出或下溢而造成的系统故障,精确速率控制总是必要的。因此,总体上,在QP失配不可避免的情况下,在预分析中低估的QP比高估的QP更为优选。在我们的方案中,通过以下公式来确定当前GOP的预分析QPQPpreA,currGOP

QPpreA,currGOP=QPprevGOP-ΔQPguard       (5)

这里,“preA”代表预分析。QPprevGOP表示先前编码的GOP的平均QP。ΔQPguard是使QPpreA,currGOP比实际编码QP更有可能被低估的QP保护间隔。

在我们的预分析方案中,通过快速查表来执行ρ-QP和D’-QP表的计算(步骤225),从而整个计算并不导致复杂度的显著提高。为了便于参考,以下给出了快速计算算法(针对步骤225、230和233来执行)。该方法使用步骤210至235来对帧中的每个宏块重复这样的分析,直到处理完画面中的所有这样的宏块为止。

块级计算:针对每个变换后的块:

1.初始化:ρ(QP)=0,Dz(QP)=0

2.单程查表:针对每个系数Coeffi

1)Leveli=|Coeffi|

2)QPi=QP_level_table[Leveli]。QP_level_Table是表,该表为每个系数水平指示出将该特定水平的系数量化为零的最小QP。

3)ρ(QPi)=ρ(QPi)+1,D2(QPi)=Dz(QPi)+Coeffi2.

3.求和:针对每个QP,从QPmin开始到QPmax

ρ(QP)=Σqp=QPminQPρ(qp),Dz(QP)=Σqp=QPminQPDz(qp)

根据上述计算,可以通过对所有变换系数进行QP level Table的单程查找来精确计算出所有QP的ρ和Dz,而且所导致的计算代价相当低。如以下所示,在获得帧的所有块的{ρ(QP),Dz(QP)}QP之后,可以分别对这些数据求平均,以得到相应的帧级量(步骤240)。这里,B表示帧中块的总数。

帧级计算:针对每个QP:

>1),ρ(QP)=1A·Σi=1Bρi(QP),

2)如果ρ(QP)>0,则Dz(QP)=1A·ρ(QP)Σi=1BDz,i(QP),否则Dz(QP)=0。

3)然后可以按照(2),使用ρ(QP)和Dz(QP)来计算D’(QP)。

注意,在对P帧编码之前(如在图1的步骤125中),已经编码了该P帧的前一帧,因此已知实际参考。在这一点上,可以通过对帧的预处理来计算更精确的ρ(QP)和D’(QP)数据(针对图1的步骤115)。除了不再需要量化以及其他重构步骤以外,P帧预处理的步骤几乎与预分析中的步骤相同。注意,由于I帧仅包含帧内预测,因此I帧不需要预处理。

在图3中作为FBA流程图300示出了FBA算法(针对步骤120)的示例实施例。来自预分析/和预处理步骤的参数用于正在编码的帧,其中这样的参数是在步骤305中从存储器中获得的。此外,在步骤310中,编码器必须考虑GOP中针对要编码的帧而剩余的比特预算,以满足针对编码的画面组的总体比特率。考虑剩余的预算是否充足(在步骤315中)。

为了实现不同帧之间一致的视频质量,我们的FBA方案直接集中关注恒定失真最小化,其中,假定针对GOP的所有剩余帧使用固定的失真水平,算法搜索满足目标比特预算的最小恒定失真。注意,在简化编码有效地补偿了预分析中的参考与编码模式的失配的情况下,可以假定不同帧的RD函数是独立的,这导致了全局最优的简单且直接的搜索方案。相反,如果假定互相以来的RD函数,则现有方案建议动态编程和迭代下降搜索,这涉及高计算复杂度或产生局部最优的解决方案。

我们的恒定失真搜索算法(325)包括梯度下降搜索和二分搜索,实际上,影响搜索复杂度的另一重要因素是初始搜索点。如果使用良好的起始点,则搜索可以更快。在我们的方案中,初始失真水平是来自恒定QP结果的平均失真,该失真水平给出了对最优恒定失真水平的紧密近似。当所达到的速率与目标速率之间的相对误差低于特定阈值、或迭代次数达到特定限制时,搜索过程结束。实验结果表明,大多数时候,搜索将在5~6次迭代内结束,这是相当快的。对搜索算法的描述如下。这里为了简明,省略了常见的二分搜索的细节。此外,注意RTarget表示在对GOP中所有剩余帧的系数编码的总比特预算,其中已经将开销比特排除在外。简单地,这是因为QP仅影响在系数编码上消耗的比特,而不影响开销比特。

基于恒定失真的FBA算法:

1.恒定QP(步骤325):

QPconstQP*=argminQP|Σi=1KRi(QP)-RT>arg>|,其中K表示GOP中剩余的未编码帧的数目,除了没有C以外,按照(2)来计算Ri。快速二分搜索用于搜索最优QP。

2.初始化(步骤330):n=0,D(n)=1KΣi=1KDi(QPconstQP*),其中按照(4)来计算Di

3.在给定D(n)的情况下,针对每个未编码帧i,使用二分搜索来找到由QPi*表示的最佳QP。然后,使用这些QP来找到相应的Ri(QPi*),从而R(n)=1KΣi=1KRi(QPi*).

4.ΔR(n)=(R(n)-RT arg et)/RT arg et。如果ΔR(n)小于阈值(本实践中是3%),则转至7。

5.如果n=0,或如果n>0且ΔR(n)·ΔR(n-1)>0,则搜索尚未越过最优的D。使用梯度下降搜索,并采用D(n+1)=D(n)·(1+ηΔR(n))来进行更新(本实践中η=1)。否则,搜索已经越过了最优值。使用二分搜索,并采用D(n+1)=12(D(n-1)+D(n))来进行更新。

6.如果n达到限制值(在本实践中为10),则转至7。否则,n=n+1,转至步骤3。

7.搜索结束,RcurrFrm=A·(R1(n)+C)是当前帧的比特总量。这里,A表示帧大小。[项3-7表示步骤355]

为了在实际上保持算法的平滑运行,始终必须识别极端情况以进行特殊处理。如图3所示,在FBA的开始处,检查用于系数编码的剩余比特预算是否充足(步骤315)。如果系数编码预算与总预算之比低于特定阈值(本实践中为0.15),则认为预算不足。在这种情况下,优化的FBA就不是必要的,一些简单的专用比特分配方案更为合适(步骤320)。具体地,当用于编码的比特耗尽或过少以至于不能满足期望的总体比特率时,分配更多的比特用于画面首部编码。如果剩余的比特仍然多于画面首部比特,则将过剩的比特平均分配给所有剩余帧。

如何有效地更新所涉及的RD模型参数(即(2)中的θ和C以及(4)中的α)是另一重要问题,这个问题严重影响最终的速率控制性能。因为预分析和预处理表现出不同的建模性能,所以分别计算其模型参数。在我们的方案中,采用常用的滑动窗方法,其中,在特定大小的窗内根据过去的编码结果来更新当前参数。越大的窗大小表现出越好的稳定性,然而也表现出越差的自适应性。因为将对除了当前帧以外的其余所有未编码帧应用更新的预分析模型参数(来自步骤140),所以稳定性比其在预处理中更为重要。因此,在我们的解决方案中,针对预处理,简单地利用从上一帧编码结果(步骤150中参考帧的存储)中导出的参数简单地对当前帧参数进行更新,而针对预分析,我们真正使用了滑动窗更新,其中针对P帧参数更新的窗大小是6,针对I帧参数更新的窗大小是3。I帧参数更新的窗口大小较短的原因在于,实际上,I帧或者是GOP的第一帧,或者是场景变化帧。因此,如果使用与用于P帧的窗大小相同的窗,则实际上窗将跨越更长的时间距离,从而可能不能表现出足够的自适应性。

如将要进一步解释的,针对GOP中每个要编码的帧,当要对GOP中的下一帧进行预处理和编码(步骤115、120、125、135和140)时,ρ-QP和D’-QP与帧相关联(步骤115、120、125、135和140),以在编码所述帧之后(在步骤155之后)用作将所述帧参考帧,其中对编码后的帧进行从重构(参见步骤15)。

用于有效参数更新的另一重要措施是从更新计算中排除那些非寻常帧的编码结果(步骤135)。实际上,视频信号可以包含各种类型的非寻常帧,如全白帧(尤其在目前的电影片尾中)、以及完全静止帧(如在示出记分板、股票信息等的新闻中),这些非寻常帧的编码可能消耗极小的比特量。因为这些帧的特性不能被推广到其他典型的视频帧,所以参数更新中也不应当包括其编码结果。在我们的方案中,当满足以下条件中的任何一个时,将编码后的帧识别为非寻常帧:(i)如果系数编码比特与总比特之比低于15%;(ii)如果帧中所有残余MB的平均方差小于0.1;(iii)如果所有MB的平均QP低于10;(iv)如果所产生的每像素比特少于0.01。

编码过程100重复进行其自身过程(如110所示),直到编码了特定GOP中的所有帧为止,其中编码后的GOP满足总体所需的比特率(CBR)。在步骤160中,通过对步骤152中确定的所有OPGOP  求总和来计算QPpreA。然后将所计算的QPpre A确定为总和QPGOP/N的平均,从所产生的平均量化级中减去保护值(参见等式5)。

所公开的FBA解决方案采用包括低运动、中运动以及高运动序列(CIF和QCIF序列)在内的各种测试视频序列来进行操作,并且以各种有关的编码速率进行操作。

本领域技术人员根据这里的教导可以容易地确定本原理的这些和其他特征以及优点。应理解,可以以各种形式的硬件、软件、固件、专用处理器或其组合来实现本原理的教导。

更优选地,将本发明的教导实现为硬件和软件的组合。此外,可以将软件实现为在程序存储单元上确实实现的应用程序。可以将应用程序加载至包括任何合适体系结构的机器并由其执行。优选地,在具有如一个或更多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)以及输入/输出(“I/O”)接口之类的硬件的计算机平台上实现所述机器。计算机平台还可以包括操作系统和微指令代码。这里所描述的各种过程和功能可以是由CPU来执行的微指令代码的一部分或应用程序的一部分或其任何组合。此外,可以将各种其他外围单元连接到计算机平台,如附加数据存储单元和打印单元。

还将理解,因为附图中所描述的一些系统组成组件和方法优选地是以软件来实现的,所以系统组件或处理功能模块之间的实际连接可能依对本原理进行编程的方式的不同而不同。在这里所给出的教导的情况下,本领域技术人员将能够想到本原理的这些和类似的实现或配置。

尽管这里参考附图描述了示意实施例,然而应理解,本原理不限于这些具体实施例,在不脱离本原理的精神和范围的前提下,本领域技术人员可以对本原理进行各种改变和修改。所有这些改变和修改应包括在所附权利要求所阐述的本原理的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号