用于为能够可变比特速率编码的视频编码器提供速率控制的方法、模块、设备和系统的制作方法

文档序号:7638852阅读:164来源:国知局
专利名称:用于为能够可变比特速率编码的视频编码器提供速率控制的方法、模块、设备和系统的制作方法
技术领域
本发明涉及视频编码器的速率控制器。更具体地,本发明涉及能够生成压缩视频比特流的视频编码器,其中视频编码器可以被配置成符合规定比特速率变化内的预定目标比特率。

背景技术
大多数实用的视频传输技术需要编码/压缩的视频比特流遵守平均比特率和比特率变化方面的限制。比特率变化通常针对缓冲要求。所有的当前视频压缩标准(视频编解码器)包含规范地或有教益地缓冲器模型,其中视频编码器的速率控制策略需要履行,以便形成适应的比特流。
3GPP(第三代合作伙伴计划)当前考虑需要针对所有产品视频编码器的某个最小量的质量水平。用于基于3GPP终端的视频编码器的速率控制策略需要在周期和存储消耗方面相当的小,而在缓冲要求方面相当的灵活,从而能够应对基于3GPP终端的编码器的不同应用(例如记录、流式服务和会话应用)的约束,以及高的质量以提高用户体验。更具体地,这样的视频编码器在所有时刻都需要符合由标准所设置的缓冲要求,以确保适应的比特率和因此的互操作性。对于会话应用,端到端延迟要求是很低的,这意味着速率控制策略将工作在很麻烦的缓冲器水平。
尽管有不少于三十种已知的不同速率控制策略,但这些策略都没有满足上述确定的要求,即轻量的、基本上是单通道的,在应用方面灵活,并且严格到确保符合与3GPP相关的视频编码标准的缓冲策略(例如,H.263基准、H.246、MPEG-4部分2简单简档和AVC基准标准)。


发明内容
本发明通过向压缩的视频编码器提供速率控制器来解决上述的问题。本发明的控制器可被配置成符合在当前视频编码标准中所规定的缓冲策略。具体地,本发明以更为严密的缓冲器水平(例如小于1秒)来解决控制视频的比特率的问题。
根据本发明的第一方面,提供一种用于视频编码器的速率控制的方法。对每个帧执行帧编码处理,其中计算初始量化参数以用作编码当前帧的量化参数。对当前帧内的每个宏块组按组进行编码;即,以组方式。在对当前的宏块组进行宏块编码后确定分值。如果分值超出预定的阈值,则将调节用于编码下一宏块组的量化参数;否则,将以该量化参数来继续宏块编码,该量化参数当前用于编码当前的宏块组。
根据本发明的一个实施方式,基于下面组中的至少一个来确定分值,该组包括针对当前帧的一个或多个比特封装值以及宏块索引,其中预测比特数预测在编码时刻编码当前宏块所需的比特数。
根据本发明的一个实施方式,该预测比特数基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定。
根据本发明的一个实施方式,针对当前帧来确定比特封装值。比特封装值至少包括上限和下限并且根据缓冲器模型来确定,并且优选地基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值。基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值,该预定函数是宏块索引的函数。预定函数优选地是基于查找表可实施的抛物线函数。
根据本发明的一个实施方式,量化参数的调节包括以至少一个偏移值来偏移所述量化参数。至少一个偏移值优选地取决于封装值和/或确定的预测比特数。
根据本发明的一个实施方式,根据分值来执行量化参数的调节。
根据本发明的一个实施方式,至少一个速率控制相关参数在帧编码之前被初始化。从包括比特速率和缓冲器大小的组来选择至少一个速率控制相关参数。
根据本发明的一个实施方式,确定宏块的数目,这些宏块自上次量化参数调节已发生起已经被编码。在宏块的数目超过预定的阈值的情况下,允许量化参数的调节。否则,保持量化参数。
根据本发明的一个实施方式,如果需要,针对当前帧来确定更新的初始量化参数并且基于更新的初始量化参数来重复帧编码处理。
根据本发明的一个实施方式,确定当前帧是P帧还是理想的数据表示帧。
根据本发明的一个实施方式,如果当前帧是P帧,则从一个或多个先前帧的比特分布来确定预测比特数。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则从在先前帧处生成的比特数来确定预测比特数。
根据本发明的一个实施方式,如果当前帧是P帧,则通过计算短窗口和长窗口量化参数的值来计算初始量化参数;基于短窗口和长窗口量化参数来计算初始量化参数;以及截短帧的初始量化参数的值。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则根据下面的判定来计算初始量化参数。如果根据缓冲器模型的缓冲器可用性检查是成功的,则使用先前P帧的量化参数作为初始量化参数。如果缓冲器可用性检查失败,则初始量化参数从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断,并且推断的量化参数被截短。该推断优选的基于回归计算,该回归计算基于具有一个或多个参数的回归函数。如果推断不可靠,则从一个或多个先前理想数据表示帧的一个或多个量化参数来确定初始量化参数。
根据本发明的第二方面,提供一种用于对视频编码器提供速率控制的计算机程序产品,该程序产品包括用于对每个帧执行编码处理的程序/代码段。程序/代码段被设置成确定初始量化参数,该初始量化参数被用作用于编码当前帧的量化参数。程序/代码段适于对在当前帧内的宏块组按组进行编码;即,以组方式。因此,用于宏块编码的程序/代码段包括提供用于在当前的宏块组的宏块编码后确定分值的程序/代码段。如果分值超出预定的阈值,由包括程序/代码段以便允许调节用于编码下一宏块组的量化参数;否则,提供程序/代码段以便以该量化参数来继续宏块编码,该量化参数当前用于编码当前的宏块组。
根据本发明的一个实施方式,基于下面组中的至少一个来确定分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数(其预测在编码时刻编码当前宏块所需的比特数目),以及宏块索引。
根据本发明的一个实施方式,该预测比特数基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定。
根据本发明的一个实施方式,提供程序/代码段以针对当前帧来确定比特封装值。比特封装值至少包括上限和下限。根据缓冲器模型来确定比特封装值,并且该比特封装值优选地基于包括视频比特率、针对当前帧的目标比特数目和视频帧速率的组中的至少一个值。提供程序段以便基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值。该预定函数是宏块索引的函数并且优选地是基于查找表可实施的抛物线函数。
根据本发明的一个实施方式,用于调节量化参数的程序/代码段包括以至少一个偏移值来偏移所述量化参数的程序/代码段。至少一个偏移值优选地取决于封装值和/或确定的预测比特数。
根据本发明的一个实施方式,用于调节量化参数的程序/代码段被设置成根据分值来确定量化参数。
根据本发明的一个实施方式,提供程序/代码段以便初始化至少一个速率控制相关参数。从包括比特速率和缓冲器大小的组来选择至少一个速率控制相关参数。
根据本发明的一个实施方式,提供程序/代码段以便确定宏块的数目,这些宏块自上次量化参数调节已发生起已经被编码。在宏块的数目超过预定的阈值的情况下,启用调节量化参数。
根据本发明的一个实施方式,如果需要,包括程序/代码段以便针对当前帧来确定更新的初始量化参数并且启动当前帧的帧编码处理的重复。
根据本发明的一个实施方式,提供程序/代码段以便确定当前帧是P帧还是理想的数据表示帧。
根据本发明的一个实施方式,如果当前帧是P帧,则从一个或多个先前帧的比特分布来确定预测比特数。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则从在先前帧处生成的比特数来确定预测比特数。
根据本发明的一个实施方式,如果当前帧是P帧,则通过用于计算短窗口和长窗口量化参数的值的程序/代码段来确定初始量化参数;用于基于短窗口和长窗口量化参数来计算初始量化参数的程序/代码段;以及用于截短帧的初始量化参数的值的程序/代码段。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则用于初始量化参数的程序段包括下面的一个或多个程序/代码段。如果根据缓冲器模型的缓冲器可用性检查是成功的,则提供程序段以便使用先前P帧的量化参数作为初始量化参数。如果缓冲器可用性检查失败,则提供另外的程序/代码段以便从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且推断的量化参数被截短。该推断优选的基于回归计算,该回归计算基于具有一个或多个参数的回归函数。如果推断不可靠,则最后提供程序/代码段以便从一个或多个先前理想数据表示帧的一个或多个量化参数来确定初始量化参数。
根据本发明的第三方面,提供一种包括至少处理器或处理单元和存储单元的电子设备。该存储单元可操作性地连接到处理器并且包括用于视频编码器的速率控制的计算机程序产品。程序/代码段被设置成确定初始量化参数,该初始量化参数被用作用于编码当前帧的量化参数。程序/代码段适于对在当前帧内的宏块组按组进行编码;即,以组方式。因此,用于宏块编码的程序/代码段包括提供用于在当前的宏块组的宏块编码后确定分值的程序/代码段。如果分值超出预定的阈值,包括程序/代码段以便允许调节用于编码下一宏块组的量化参数;否则,提供程序/代码段以便以该量化参数来继续宏块编码,该量化参数当前用于编码当前的宏块组。
根据本发明的一个实施方式,基于下面组中的至少一个来确定分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数(其预测在编码时刻编码当前宏块所需的比特数目)以及宏块索引。
根据本发明的一个实施方式,该预测比特数基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定。
根据本发明的一个实施方式,提供程序/代码段以针对当前帧来确定比特封装值。比特封装值至少包括上限和下限。根据缓冲器模型来确定比特封装值,并且该比特封装值优选地基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值。提供程序段以便基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值,该预定函数是宏块索引的函数并且优选地是基于查找表可实施的抛物线函数。
根据本发明的一个实施方式,用于调节量化参数的程序/代码段包括以至少一个偏移值来偏移所述量化参数的程序/代码段。至少一个偏移值优选地取决于封装值和/或确定的预测比特数。
根据本发明的一个实施方式,用于调节量化参数的程序/代码段被设置成根据分值来确定量化参数。
根据本发明的一个实施方式,提供程序/代码段以便初始至少一个速率控制相关参数。从包括比特速率和缓冲器大小的组来优选地选择至少一个速率控制相关参数。
根据本发明的一个实施方式,提供程序/代码段以便确定宏块的数目,这些宏块自上次量化参数调节已发生起已经被编码。在宏块的数目超过预定的阈值的情况下,启用调节量化参数。
根据本发明的一个实施方式,如果需要,包括程序/代码段以便针对当前帧来确定更新的初始量化参数并且启动当前帧的帧编码处理的重复。
根据本发明的一个实施方式,进一步提供程序/代码段以便确定当前帧是P帧还是理想的数据表示帧。
根据本发明的一个实施方式,如果当前帧是P帧,则从一个或多个先前帧的比特分布来确定预测比特数目。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则从在先前帧处生成的比特数来确定预定比特数。
根据本发明的一个实施方式,如果当前帧是P帧,则通过用于计算短窗口和长窗口量化参数的值的程序/代码段来确定初始量化参数;用于基于短窗口和长窗口量化参数来计算初始量化参数的程序/代码段;以及用于截短帧的初始量化参数的值的程序/代码段。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则用于初始量化参数的程序段包括下面的一个或多个程序/代码段。如果根据缓冲器模型的缓冲器可用性检查是成功的,则提供程序段以便使用先前P帧的量化参数作为初始量化参数。如果缓冲器可用性检查失败,则提供另外的程序/代码段以便从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且推断的量化参数被截短。该推断优选的基于回归计算,该回归计算基于具有一个或多个参数的回归函数。如果推断不可靠,则最后提供程序/代码段以便从一个或多个先前理想数据表示帧的一个或多个量化参数来确定初始量化参数。
根据本发明的第四方面,提供一种可利用速率控制模块来操作的视频编码器。视频编码器被设置成对每个帧执行帧编码;即,以帧方式。由视频编码器所包括的初始帧QP计算器被设置用于确定初始量化参数以便用作编码当前帧的量化参数。所述视频编码器进一步设置成对在当前帧内的每组宏块进行宏块编码;即,以组方式。由视频编码器所包括的QP调节器被设置用于在将要编码的当前帧的当前宏块组的编码后确定分值。QP调节器适于如果分值超出预定的阈值,则调节用于编码下一宏块组的量化参数。否则QP调节器适于保持该量化参数,该量化参数将被用于当前宏块编码,用于下一宏块组的后续宏块编码。
根据本发明的一个实施方式,QP调节器被设置用于基于下面组中的至少一个来确定分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数(其预测在编码时刻编码当前宏块所需的比特数目)以及宏块索引。
根据本发明的一个实施方式,由该视频编码器所包括的比特预测器被设置用于基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定预测比特数。
根据本发明的一个实施方式,由视频编码器所包括的比特封装计算器被设置用于针对当前帧来确定比特封装值。比特封装值至少包括上限和下限。根据缓冲器模型来确定比特封装值,和/或比特封装值基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值。QP调节器被设置用于基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值,该预定函数优选地是宏块索引的函数并且更优选地是基于查找表可实施的抛物线函数。
根据本发明的一个实施方式,QP调节器被设置用于调节量化参数,因为量化参数以至少一个偏移值来偏移。至少一个偏移值优选地取决于封装值和/或确定的预测比特数。
根据本发明的一个实施方式,QP调节器被设置用于根据分值来调节量化参数。
根据本发明的一个实施方式,至少一个速率控制相关参数被提供,从包括比特速率和缓冲器大小的组来优选地选择至少一个速率控制相关参数。
根据本发明的一个实施方式,QP调节器被设置用于确定宏块的数目,这些宏块自上次量化参数调节已发生起已经被编码。在宏块的数目超过预定的阈值的情况下,启用量化参数调节。
根据本发明的一个实施方式,如果需要,初始帧QP计算器被设置用于针对当前帧来确定更新的初始量化参数并且启动重复当前帧的帧编码处理。
根据本发明的一个实施方式,确定当前帧是P帧还是理想的数据表示帧。
根据本发明的一个实施方式,如果当前帧是P帧,则比特预测器被设置用于从一个或多个先前帧的比特分布来确定预测比特数。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则比特预测器被设置用于从在先前帧处生成的比特数来确定预测比特数。
根据本发明的一个实施方式,如果当前帧是P帧,则初始帧QP计算器被设置用于计算短窗口和长窗口量化参数的值;基于短窗口和长窗口量化参数来计算初始量化参数;和/或截短帧的初始量化参数的值。
根据本发明的一个实施方式,如果当前帧是理想的数据表示帧,则初始帧QP计算器被设置用于根据下面的判定来操作。如果根据缓冲器模型的缓冲器可用性检查是成功的,则初始帧QP计算器被设置用于使用先前P帧的量化参数作为初始量化参数。如果缓冲器可用性检查失败,则初始帧QP计算器被设置用于从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且截短推断的量化参数。该推断优选的基于回归计算,该回归计算基于具有一个或多个参数的回归函数。如果推断不可靠,则初始帧QP计算器被设置用于从一个或多个先前理想数据表示帧的一个或多个量化参数来确定初始量化参数。
总之,本发明涉及速率控制策略,其有利地被设置成在低延迟应用中操作,例如会话。因此,根据本发明的一个实施方式的速率控制策略能够获得严格的缓冲器校准,这意味着当对帧进行编码时,大致生成相同的比特数,即使帧可能具有变化的编码复杂度。因此,从提议的速率控制器所得到的质量变化可以比操作在更高缓冲器水平的VBR(可变比特率)族速率控制器所得到的质量变化更高。但是,根据本发明的一个实施方式的算法复杂度被保持在低水平,从而可以将其实现在具有存储器和/或处理能力约束的设备上。例如,使用宏块级速率失真模型将以增加复杂度的代价来提高性能。另外,根据本发明的一个实施方式的算法将不会在宏块级或帧级执行任何的预行估计。因此,具有显著的增加的复杂度的一些固定比特速率(CBR)算法可增加性能。
无论如何,本发明提供速率控制策略,其代表考虑编码质量和再生和对计算复杂度的要求之间的平衡的解决方案。



当结合附图时,本发明的这些和其他目的、优势和特征,连同其操作的组织和方式将从下面的详细描述而变得明显,其中贯穿下面的若干附图,相同的元素具有相同的编号。现在将参考附图来解释本发明的优选实施方式,其中 图1a表示示意性地示出根据本发明的一个实施方式的通用处理系统的框图; 图1b表示示意地示出根据本发明的一个实施方式的另外处理系统的框图; 图2表示示意性示出根据本发明的一个实施方式的视频编码器的组件的框图; 图3表示示出操作根据本发明的一个实施方式的视频编码器的速率控制器的操作序列的流程图;以及 图4表示示意性地示出根据本发明的一个实施方式的视频编码器的速率控制器的组件的框图。

具体实施例方式 当结合附图时,根据本发明的方面的特征和优势将从下面的详细描述而变得明显。应该注意到贯穿附图,相同和类似的组件以相同的参考编号表示。
参考图1a和图1b,示意性地示出根据本发明的实施方式的处理系统100的结构组件。
图1a的框图示出处理系统100的原理结构性组件,该处理系统100应示例性代表可结合本发明使用的任意类型的处理系统或处理设备。处理系统100可以代表任何通用的计算机系统。应该理解到本发明不限于任何特定的处理系统。
概括实施方式中图示出的处理系统100是基于连接到存储器120的处理单元(CPU)100的。存储器120提供用于字符串数据或一个或多个应用,其包括任何随机存取存储器(RAM)和/或只读存储器(ROM),该存储器120可利用处理系统100操作。一个或多个应用具体地包括用于实施在处理系统上和一个或多个操作上的任何用户应用软件以及操作处理系统和其进一步硬件组件所需的设备驱动器软件(仅部分示出)。
处理系统可以耦合到多个输入/输出设备(未示出),包括例如键盘、小键盘、鼠标、显示器以及任何的存储设备,包括但不限于硬盘驱动器、磁带驱动器、软盘驱动器、压缩盘驱动器和数字多功能盘驱动器。
处理系统可包括一个或多个通用输入/输出(I/O)接口180,该接口实现经由任何数据通信网络170的数据通信,该数据通信网络170优选地是任何分组交换数据通信网络。应该理解到一个或多个输入/输出(I/O)接口180不应该被理解为限于网络接口,输入/输出(I/O)接口180也可包括可应用于数据交换的任何接口。
另外,处理系统100包括视频编码器200,其耦合到通用视频源200以便接收视频输入信号。视频源200可包括但不限于视频相机、便携式摄像放像一体机、视频记录器和能够接收射频电视广播信号的任何视频信号接收机,该广播信号例如数字TV广播信号(包括例如DVB-T/S/C(数字视频广播-陆地/卫星/电缆)信号和/或模拟TV广播信号(包括例如PAL(逐行倒相)编码TV RF信号,NTSC(国家电视系统委员会)编码TV RF信号,和/或SECAM((顺序传送彩色与记忆制)编码TV RF信号),包括数字相机、扫描仪和类似的任何成像设备,以及模拟和/或数字视频记录器。
视频输入源220用于向由处理系统100包括的视频编码器220提供视频输入信号,从而产生编码的(数字)视频比特流。同样地,可以从任何的存储设备或任何的成像设备接收视频图像的序列以提供给视频编码器220,该视频编码器220生成一个或多个编码的(数字)视频比特流。得到的视频比特流优选地经由任何输入/输出接口180传送到设备或系统,该设备或系统能够从编码的视频比特流再生成视频序列。
将参考图1b来说明处理系统100的更为特定的实施方式并且将参考图2来详细描述视频编码器200的一个实施方式。特别地,在图1b中示出的实施方式包括在上面概括示出的输入/输出接口的实施方式。
图1b的框图示出便携式处理系统100的原理结构组件,该便携式处理系统100应示例性代表可结合本发明使用的任意类型的处理系统或设备。应该理解到本发明既不限于示出的便携式处理系统100,也不限于任意其他特定类型的处理系统或设备。
示出的处理系统100被示例性地实施为支持蜂窝通信的便携式用户终端。特别地,处理系统100被分别地具体化为基于处理器或基于微控制器的系统,该系统分别包括中央处理单元(CPU)和移动处理单元(MPU)110、数据和应用存储器120、包括具有射频天线(概要)的蜂窝射频接口(I/F)183和订户标识模块(SIM)184的蜂窝通信装置,用户接口输入/输出装置通常包括音频输入/输出(I/O)装置140(通常为麦克风和扬声器)的按键、小键盘和/或具有按键输入控制器(Ctrl)130的键盘和具有显示器控制器(Ctrl)的显示器150,(局域)无线数据接口(I/F)181和通用数据接口(I/F)182。另外,处理系统100包括视频编码器模块200,该视频编码器模块200能够编码/压缩视频输入信号以获得根据一个或多个视频编解码器的压缩数字视频序列(和例如数字图像)并且尤其可利用提供视频输入信号的图像捕获模块220来操作,并且视频解码器模块210用于根据一个或多个视频编解码器来编码压缩的数字视频序列(和例如数字图像)。
通常由中央处理单元(CPU)/移动处理单元(MPU)110基于操作系统或基本控制应用来控制处理系统100的操作,该操作系统或基本控制应用通过将其应用提供给其用户来控制处理系统100的功能、特征和功能性。显示器和显示器控制器(Ctrl)150通常由处理单元(CPU/MPU)110控制并且向用户提供信息,该信息特别包括(图形)用户接口(UI),允许用户来使用处理系统100的功能、特征和功能性。提供小键盘和小键盘控制器(Ctrl)130以使得用户能够输入信息。经由小键盘的信息输入通常由小键盘控制器(Ctrl)提供给处理单元(CPU/MPU)110,可根据输入信息来指示和/或控制处理单元。音频输入/输出(I/O)装置140包括用于再生音频信号的扬声器和用于记录音频信号的麦克风。处理单元(CPU/MPU)110可控制音频数据到音频输出信号的转换以及音频输入信号到音频数据的转换,其中例如音频数据具有用于传输和存储的合适格式。数字音频到音频信号的音频信号转换并且反之情况传统地由数模和模数电路来支持,例如,基于数字信号处理器来实施(DSP,未示出)。
在图1b中示出根据特定实施方式的处理系统100包括耦合到射频天线(未示出)的蜂窝接口(I/F)183并且可结合订户标识模块(SIM)184来操作。蜂窝接口(I/F)183被设置为蜂窝收发器以接收来自蜂窝天线的信号,解码信号、解调它们和将它们还原成基带频率。蜂窝接口(I/F)183提供空中接口,其用于结合订户标识模块(SIM)184以与公共陆地移动网络(PLMN)的无线接入网络(RAN)的相应基站(BS)进行蜂窝通信。
蜂窝接口(I/F)183的输出因此包括可需要由处理单元(CPU/MPU)110进一步处理的数据流。设置为蜂窝收发器的蜂窝接口(I/F)183也适于接收来自处理单元(CPU/MPU)110的数据,该数据也将经由空中接口发送到无线接入网络(RAN)的基站(BS)。因此,蜂窝接口(I/F)183编码、调制并且将体现信号的数据上变频到射频,其将用于空中传输。处理系统100的天线(未示出)接着将得到的射频信号发送到公共陆地移动网络(PLMN)的无线接入网络(RAN)的相应基站(BS)。蜂窝接口(I/F)183优选地支持第2代数字蜂窝网络,例如GSM(全球通信系统),其可被实现用于GPRS(通用分组无线服务)和/或EDGE(GSM演进的增强型数据)、UMTS(通用移动通信系统)和/或用于蜂窝电话标准的任意类似或相关标准。
无线数据接口(I/F)181被示意性地示出并且应该被理解为代表一个或多个无线网络接口,其可以被提供用于对实施在示例性处理系统100中的上述蜂窝接口(I/F)183的增加或作为备选。当前可获得大量的无线网络通信标准。例如,处理系统100可包括一个或多个无线网络接口,其根据IEEE 802.xx标准、Wi-Fi标准、任何蓝牙标准(1.0,1.1,1.2,2.0ER)、ZigBee(用于无线个人局域网络(WPAN))、红外线数据接入(IRDA)、任意其他当前可用的标准和/或任意未来的无线数据通信标准,例如UWB(超宽带)。
此外,通用数据接口(I/F)182被示例性地示出并且应该被理解为代表包括实施在示例性处理系统100中的特定网络接口的一个或多个数据接口。此类的网络接口可支持例如以太网LAN(局域网)、PSTN(公共交换电话网络)、DSL(数字订户线)的基于有线的网络和/或其他当前可用和未来的标准。通用数据接口(I/F)182也可代表任何的数据接口,该数据接口包括任何合适的串行/并行接口,通用串行总线(USB)接口、防火墙接口(根据任何的IEEE1394/1394a/1394b等标准)、包括ATAPI(高级技术附件包接口)一致总线的存储器总线接口,MMC(多媒体卡)接口、SD(安全数据)卡接口、闪存卡接口等。
在图1b中示出的组件和模块可以被集成在处理系统100中作为单独、各个的模块、或以其任意的组合。优选地,处理系统100的一个或多个组件和模块可以与处理单元(CPU/MPU)进行集成以形成片上系统(SoC)。此类的片上系统(SoC)优选地将计算机系统的所有组件集成进单个的芯片。SoC可包含数字、模拟、混合的信号,并且也通常包括射频功能。典型的应用是在嵌入式系统和便携式系统的领域内,其尤其限于尺寸和功耗约束。此类的典型SoC包括执行不同任务的多个集成电路。这些可包括一个或多个组件,包括微处理器(CPU/MPU)、存储器(RAM随机存取存储器、ROM只读存储器),一个或多个UART(通用异步接收器-发射器)、一个或多个串行/并行/网络端口、DMA(直接存储存取)控制器芯片、GPU(图形处理单元)、DSP(数字信号处理器)等。近年来在半导体技术方面的改进已经允许VLSI(大规模集成)集成电路在复杂度方面增长,使得可以将系统的所有组件集成进单个的芯片中。
视频编码器适于接收视频输入信号和编码其数字视频序列,该序列可以经由任意通信接口存储、发送,和/或通过视频解码器210来再生。视频编码器200可以利用任何的视频编解码器来操作。可以由处理系统100的图像捕获模块221来提供视频输入信号。图像捕获模块221可以实施或可分离地连接到处理系统100。下面参考图2来描述视频编码器200的示例性实施。
图像捕获模块221优选地是用于记录图像的传感器。典型地,此类的图像捕获模块221包括包含链接的、或耦接的电容器的阵列的集成电路(IC)。在外部电路的控制下,每个电容器可以将其电荷传输到其相邻的一个或其他电容器。本领域技术人员熟知包含链接的、或耦接的电容器的阵列的此类集成电路为电荷耦合设备(CCD)。也可以使用其他的图像捕获技术。
视频解码器210适于接收数字编码/压缩的视频比特流/序列,优选地划分为多个视频数据分组,其中经由通过基于分组数据通信网络的蜂窝接口183、无线接口(I/F)181、处理系统100的任意其他数据接口来接收该多个视频数据分组或从连接到处理系统100的数据存储器来接收该多个视频数据分组。视频解码器210可利用视频编解码器来操作。由视频解码器来对视频数据分组进行解码并且优选地输出到由显示器控制器和显示器150显示给处理系统100的用户。关于视频解码器210的功能和实施的细节在本发明的范围之外。
典型的备选处理系统或设备可包括个人数字助理(PDA)、手持计算机、笔记本、所谓的智能电话(具有改进的计算和存储容量的蜂窝电话,允许实施一个或多个高级和复杂的应用),其中设备配备有实现通过分组交换数据网络来进行典型的数据通信的一个或多个网络接口。实施此类能够处理包括编码多媒体内容的多媒体内容的典型基于微处理器的设备在本领域内是熟知的。
本领域技术人员将理解到本发明不限于任意特定的支持便携式处理的设备,其仅代表一种可能支持处理的、能够实施本发明的创造性概念的设备。应该理解到创造性概念涉及视频编码器200的有利实施,其可以实施在任何支持处理的设备上,包括上述的便携式设备、个人计算机(PC)、消费电子(CE)设备、服务器等。
图2示意性地示出根据本发明的一个实施方式的视频编码器的基本框图。在图2中示出的示意性视频编码器描绘一种混合解码器,其针对视频编码使用时间和空间预测,例如用于根据H.264标准的视频编码。应该注意到本发明不限于任何特定的视频编码标准或编解码器。本领域技术人员将理解到根据本发明一个实施方式的概念可结合任意其他的视频编码标准来应用,包括但不限于任意的MPEG.x和任意H.26x标准。名称MPEG x应该被理解为包括具体的MPEG 1,MPEG 2,MPEG 4及其任何特定的简档和等级,以及任何未来的发展。名称H.26x应该被理解为包括具体地H.261,H.262和H.263,H.264以及未来的发展。
第一帧或视频序列的随机接入点通常不使用除包括在第一帧中之外的任何信息来进行编码。这种类型的编码被称为“帧内”编码,即,第一帧通常被“帧内”编码。视频序列的剩余图像或视频序列的随机接入点间的图像通常使用“帧间”编码来进行编码。“帧间”编码使用来自先前解码的图像来进行预测(尤其运动补偿预测)。用于“帧间”预测或动作补偿的编码处理是基于选择动作数据,包括参考图像和应用于块的所有采样的空间位移。作为侧信息传送的运动数据由编码器和解码器使用以同时提供“帧间”预测信号。视频编码器200优选地创建一系列(例如,周期性)参考图像帧(即,“帧内”或I帧),其与插入的预测图像帧(即,包括P-帧和/或B-帧的“帧间”帧)进行混合以最大化图像编码效率,同时当由例如视频解码器210的视频解码器来再生时保持高图像质量。
参考“帧间”编码模式,在从缓冲器310接收到当前帧时,视频编码器选择由帧内预测单元423或运作补偿单元424所提供的参考帧内的最佳块来计算差异帧,这是通过借助变换器、定标器(scaler)和量化量来执行变换、定标和量化操作来进行处理的。这些单元在非限制性的意义上示意性地示为集成的变换、定标和量化单元410。接着,通过熵编码单元440来对得到的量化变换系数进行熵编码,使得可将其暂时性地存储在缓冲器320中的压缩视频比特流结果可被最终输出。换句话说,预测的余数(residual)(“帧间”或“帧内”)(其是原始和预测块之间的差)被变换,定标、量化和熵编码。现在完全编码的视频比特流可以被传输到存储器并且接着记录在期望的介质上或传送到一个或多个期望的接收器。
熵编码处理代表一种压缩处理,其将更短的码字分配给具有更高发生可能性的符号,以及将更长的码字分配给具有更低发生可能性的符号。不同的熵编码机制可以应用于视频编码。例如参考H.264视频编码标准,使用上下文自适应可变长度编码(CAVLC),例如参考主简档广播内容,使用甚至更为有效的上下文自适应二进制算术编码(CABAC)。原理上,熵编码技术利用相邻块中的非零系数的发生频率和幅度来选择将要用于每个块的可变长度编码(VLC)查找表。
利用量化操作的结果来重构预测的“帧间”帧(这里量化变换系数由变换、定标和量化单元410来输出),并且施加包括去量化、重定标和反向变换的反向操作。包括但不限于此,这些单元被示意性地示为集成的去量化、重定标和反向变换单元420。得到的重构或再生帧被施加到“帧内”帧预测单元423、解块滤波器421和/或另外的(特定的)处理单元(未示出)。
变换和反变换操作通常基于双向的变换算法,具体包括可利用针对4×4采样/像素子块的H.264视频编码标准操作的精确或单独整型变换以及可利用针对16×16采样/像素子块的MPEG x视频编码标准操作的离散余弦变换(DCT)。离散余弦变换(DCT)需要舍入并且隐含舍入误差,就反离散余弦变换(DCT)而言,其尤其值得考虑。由于整型计算,精确或单独整型变换实现精确的反变换。
参考H.264视频编码标准,从施加的变换算法所得到的变换系数被使用标量量化算法进行量化,该标量量化算法具有例如被增加到预定速率的52个不同步长的一个,而不像在其他的视频编码标准中固定的增加和更少的步长,尤其MPEG x视频编码标准。同样参考示例的H.264视频编码标准,子块内的量化变换系数对应于子块内的亮度和色度空间值的不同频率并且以代表子块的亮度或色度的平均DC值的上左手角中的系数来开始。代表非零、亮度和色度的递增频率值的剩余系数被通常设置成Z字形模式。
“帧间”预测是基于使用给定视频图像帧内的空间估计。最初,视频图像帧被划分成多个更小的块,称为宏块。典型的16×16采样/像素宏块被抽样用于亮度分量(Y)和色度分量(Cb、Cr)。
对于I帧(帧间图像参考帧),仅图像中的空间冗余被编码,而没有参考与其他帧的时间关系。这意味着编码的I帧通常在尺寸上是大的并且可用作对其他(P和B“帧间”预测)帧进行编码的参考。亮度和色度的帧内预测编码使用相邻的块的值(典型地,上部和左部的块)来预测感兴趣的宏块。接着对预测块和实际块之间的差异进行编码,得到更少的比特来表示每个编码的宏块。例如,H.264视频编码标准支持九种预测4×4像素亮度块模式,一个DC预测模式和八个方向模式。
帧间预测是基于使用运动估计和运动补偿以利用视频序列中连续帧之间的时间冗余。利用运动估计单元430操作的运动估计得到运动矢量,该运动矢量具有预定的精确度,例如四分之一像素精确度或半像素精确度,并且基于运动矢量,利用运动补偿单元424操作的运动补偿可提供用于宏块的块大小的运动补偿,包括例如16×16、16×8、8×8、8×4、4×8和4×4采样/像素。
根据使用的视频编码标准,帧间图像编码可以基于一个或多个参考,(“帧间”)P帧参考先前编码的帧,具体在序列的开始处的(“帧内”)I帧。(“帧间”)B帧参考先前编码的帧和未来的帧。
运动补偿循环内的解块滤波器421可操作于沿块和子块边缘的垂直和水平伪像以产生在质量方面得到改进的原始图像的再生。
由输出得到的视频输出比特流的视频编码器200编码的视频输入信号将在提供给视频编码器之前通过预处理单元300进行预处理。典型地,视频输入信号按照帧方式或图像方式提供给视频编码输入,其中视频序列的图像可以是帧或一个区域。如上面所提到,每个图像被划分成每个具有预定固定大小的宏块。每个宏块覆盖图像的矩形区域。优选地,典型的宏块具有亮度分量16×16采样/像素的区域以及两个色度分量每个8×8采样/像素的区域。
典型的视频编码技术通常使用YCbCr色彩空间来表示,其中Y是亮度分量,Cb是蓝色差分量或第一色度分量,而Cr是红色差分量或第二亮度分量。对人类视觉系统(HVS)的研究已经显示人类眼睛对亮度中的改变最为敏感,而对色度中的变化不太敏感。因此,YCbCr色彩空间的使用代表一种用于考虑人眼的特性的有利方式。如果需要,则预处理单元300允许将来自RGB(红、绿、蓝分量)色彩空间的视频输入转换成YCbCr色彩空间。
一般地,用于例如视频编码器200的视频编码器的速率控制机制允许对编码器参数的动态调节以获得得到的比特流的目标比特速率。速率控制机制将比特的预算分配到视频序列中的每组图像、各个帧和/或子帧。例如那些可利用MPEG x和H.26x视频编码标准应用的基于块的混合视频编码策略是固有的有损视频编码机制。压缩不仅通过将真正冗余的信息从比特流中移去获得,也包括通过以旨在被最低限度感觉到的方式来做出小的质量妥协来获得。
特别地,量化参数QP被提供以调节编码帧中的空间细节。当量化参数QP很小时,几乎所有的细节都被保留。当量化参数QP被增加时,则一些细节将被合并,从而比特率下降,但代价是失真中的一些增加和再生中的一些质量损失。这意味着,随着例如视频编码器200的视频编码器的输出比特流的持续增加的比特速率,视频比特流的再生的质量增加并且由再生的观测者所感知的失真将减小。
简单的方法可提供两个关键输入,即,非压缩的视频输入信号和用于量化参数QP的(预定)值。随着源视频输入信号的处理的前进,再生中相当固定质量的压缩视频是可获得的,但比特率可动态地变化。因为在实际的视频输入信号中,帧的复杂度持续地改变,应该指定什么样的量化参数QP值是不明显的。
事实上,可由解码器缓冲器大小和网络带宽来强加约束,这将迫使以更为接近固定目标比特率来对视频进行编码。这意味着,基于源信号的复杂度的确定或估计来不得不动态地改变量化参数QP,该源信号通常是视频输入信号。这意味着每个帧或每组图像(GOP)将得到合适的比特分配。替代于将量化参数QP指定为输入,而是应当指定需要的比特速率。换句话说,闭环速率控制是有利的。应该注意到组图像(GOP)概念是从包括MPEG和H.26x标准的典型视频编码标准继承来的并且表示I图像/帧,该I图像/帧由所有的P和B-图像/帧跟着直到下一个I图像/帧。例如,典型的MPEG GOP结构可以是IBBPBBPBBI。
参考图3,示出根据本发明的一个实施方式的速率控制机制。更具体地,图3表示示出根据本发明的一个实施方式的速率控制机制的操作性序列的流程图。
操作性序列可以被分成下面的原理性操作 计算初始帧量化参数QP; 计算帧的比特封装;以及 在编码一组宏块后调节量化参数QP。
首先,将参考本发明的一个实施方式来描述原理性操作。
计算初始帧量化参数QP 因为(“帧内”)IDR-帧(理想数据表示帧)的速率失真(RD)特性明显不同于那些(“帧”间)P帧和B帧的,所以不同的方法将用于计算那些类型帧的初始QP。本领域技术人员将理解到IDR帧表示仅包含具有造成解码处理中的“复位”的I(或SI)片断(slice)类型的片断的已编码帧。在解码了IDR帧后,在解码顺序中的所有后面编码图像可以被解码,不需要来自在IDR帧之前解码的任何图像的帧间预测。上面定义的I帧是此类的IDR帧。典型地,熵编码器输出片断,该片断是包含整数宏块的宏块数据的比特串,以及片断报头的信息,其包括片断中的第一宏块的空间地址、初始量化参数和类似等。
计算用于帧间的初始帧量化参数QP 参考用于(“帧间”)P和B帧的初始帧量化参数QP,使用下面的等式来计算帧的目标比特数

等式(1) 其中Rtarget(i)是第i个帧的目标比特数; Rvideo是视频比特率; f是视频序列的帧速率; Δerror是直到编码第i个帧所使用的比特数和如果所有的先前帧以Rvideo/f的理想速率编码将使用的比特数之间的差值; W是比特调节窗口长度;以及 num_frames是视频帧的总数。
在通过等式(1)来计算帧的目标比特数后,将可从下面的二次方程式获得两个量化参数,短窗口量化参数QPSW和长窗口量化参数QPLW, 和等式(2) 等式(3) 其中,Rtex(i-1)是用于编码先前帧的纹理比特数; Rheader(i-1)是用于编码先前帧的报头比特数; SW_size是短窗口速率失真模型的窗口大小; LW_size是长窗口速率失真模型的窗口大小; MADavg(x)是通过窗口大小计算出的先前帧的均方差(MAD)的平均值;以及 (a1,SW,a2,SW)和(a1,LW,a2,LW)是分别用于短窗口和长窗口的速率失真模型参数。
对于示例性的实施,短窗口量化参数QPSW和长窗口量化参数QPLW中的改变可以被限制到等于2,并且QPLW可以被每5帧计算一次,其中QPSW在每个帧处进行更新。
下一步,缓冲器满度比γ被定义为, 其中,Bfullness(i)是在编码帧i时刻时的缓冲器占有率; Bsize是缓冲器的大小;以及 n是在编码帧i前发生的连续帧跳跃的数目。
使用缓冲器满度比γ和两个量化参数QPSW,和QPLW,可以使用下面的分段线性函数来计算(“帧间”)P或B-帧的初始量化参数QP 等式(4) 等式4具体定义根据缓冲器满度比γ的三个操作区域。这些区域包括很重要的区域,其中缓冲器满度比γ<0.05并且0.95≤γ,不太重要的区域,其中缓冲器满度比0.05≤γ<0.35并且0.65≤γ<0.95,以及非重要区域,其中缓冲器满度比0.35≤γ<0.65。
对于满度比(其中0.35≤γ<0.65)的非重要区域,P或B帧的初始量化参数QP与当缓冲器满度在期望的水平时支持不变质量视频的量化参数QPLW相同。
对于很重要的区域(其中缓冲器满度比γ<0.05并且0.95≤γ),用于P帧或B帧的初始量化参数QP破坏性地从根据缓冲器满度的先前帧的平均量化参数QP改变到避免缓冲器溢出和下溢。
对于剩下的区域(尤其对于其中0.05≤γ<0.35并且0.65≤γ<0.95的缓冲器满度比来说),使用下面的等式来计算量化参数QP 等式(5) QPweighted是量化参数QPSW和QPLW的加权平均。量化参数QPSW和QPLW的相应权重取决于缓冲器满度比γ·。如果缓冲器接近于溢出或下溢,则量化参数QPSW将具有支持不变比特速率视频的更大权重,而当缓冲器满度比γ·对支持不变质量视频不重要,则量化参数QPLW将具有更大的权重。
对于低延迟应用,有利的是速率控制器来对由于缓冲器溢出造成的帧跳跃做出反应,因此根据在编码帧i之前发生的连续帧跳跃的数目来对QPweighted(i)进一步调节。
计算用于帧间帧的初始帧量化参数QP 如果IDR帧是视频序列中的第一帧,则算法使用由例如用户所提供或由预定所提供的初始量化参数QP。如果不提供初始量化参数QP,则算法将使用与在ISO/IEC(国际标准化组织/国际电工委员会)MPEG&ITU-T(国际电联的电信标准部门);的联合视频编码组(JVT)中所公开的文档JVT-H014“Adaptive Rate Control with HRDconsideration”(将通过参考将其并入)的相同方法来估计在给定(预定)比特率处的初始量化参数QP。
如果得到的比特数目造成缓冲器溢出,则使用更大的量化参数QP来对第一(“帧间”)IDR帧进行重编码。
对于后续的IDR帧,检查缓冲器可用性。对于第i个IDR帧,在缓冲器中可用的比特数Bavail(i)可给出为 如果比特数Bavail(i)大于预定的阈值,则使用先前的(“帧间”)P或B-帧的量化参数QP来计算量化参数QP。否则,使用下面的模型来计算用于(“帧内”)IDR帧的量化参数QP 等式(6) 其中,Nbits,IDR,是生成用于(“帧内”)IDR帧的比特数;以及QPIDR是用于(“帧间”)IDR图像的量化参数QP。
过去的L个IDR帧的编码结果被保存在两个阵列中,即,包括生成用于(“帧间”)IDR-帧Nbits,IDR的最后L个比特的第一阵列Nbits,IDR[...],包括用于(“帧间”)IDR图像QPIDR·的最后L个量化参数QP。使用先前编码结果,模型参数a和b可从线性回归获得。如果发现a大于零,则阵列Nbits,IDR[...]和阵列QPIDR[...]中的最后采样被移去并且再次执行回归。接着,检查上述的模型是否可靠的计算量化参数QP。模型是可靠的,如果 L>2;并且 Nbits,IDR,min<Bavail<Nbits,IDR,max, 其中Nbits,IDR,min和Nbits,IDR,max分别是阵列Nbits,IDR[...]中的最小元素和最大元素。
如果该模型是可靠的,则使用等式(6)来计算QPIDR(i)并且利用下面的两个等式来进行截短 QPIDR(i)=MIN{QPIDR(i),QPIDR(i-1)+2} 并且 QPIDR(i)MAX{QPIDR(i),QPIDR(i-1)-2}, 其中QPIDR(i-1)是最后一个IDR帧的量化参数。
如果因为L小于2而模型不可靠,则以下面的方式来计算QPIDR(i)
如果模型由于其他原因而不可靠,则QPIDR(i)被计算为
其中QPIDR,min=MIN{QPIDR[...]},并且QPIDR,max=MAX{QPIDR[...]}。
比特封装计算 比特封装包括三个变量,包括upper_limit,lower-limit和centerBit。变量upper_limit和lower-limit分别定义允许的最大比特数和最小比特数,而变量centerBit定义用于帧的期望比特数。
已经发现具有高质量(“帧间”)IDR帧增加视频序列的整体质量。因此,大量的比特被优选地分配给(“帧间”)IDR帧。发现用于IDR帧i的变量upper_limit的值为 其中变量upper_limit(i)由

上截短并且以

下截短,并且其中I_P_RATIO是预定的常数值。这意味着, 并且 可通过从变量upper_limit减去

来找到用于(“帧间”)IDR帧的变量lower-limit的值;因此,用于IDR帧的变量lower_limit的值为 应该注意到变量centerBit不用于(“帧间”)IDR帧。对于(“帧间”)P或B帧,下面的等式用于计算比特封装 If(Bcurrent(i)>Bsize/2) 和等式(7.1) else 和 等式(7.2) upper_limit(i)=centerBit(i)·K; 其中K和J是预定的常数值并且它们的值优选的是以经验为主地。
最后,根据缓冲器满度Bfullness来进一步截短变量upper_limit,lower_limit和centerBit以确定如果生成用于帧的比特数落入到比特封装中,则不会发生缓冲器溢出或下溢。
宏块(MB)级量化参数QP控制 对于低延迟应用,帧级速率控制不提供繁忙缓冲器上的足够控制,因此MB级控制是必须的。将随同算法引入两个主要部分。第一部分是所谓的比特预测器,其预测将被生成用于帧的比特数目。第二部分是所谓QP调节器,其决定量化参数QP是否应该被改变并且多少将是用于后续宏块(MB)的量化参数QP的新值。
比特预测器 比特预测器的目标是在完成帧的编码之前,预测将生成用于帧(帧i)的比特数。假设,mbcurr表示当前被编码的宏块号,而mblast表示宏块号,其中量化参数QP的上次调节已发生,并且mbtotal是帧内的宏块的总数。如果先前的帧已经是(“帧间”)P或B帧,则使用先前帧的比特分布来进行预测。假设符号N([mblast-mbaddr],i-1)指示在从mblast到mbaddr;的宏块位置处、在帧i-1中生成的比特数,即,符号可以被写成 在编码宏块号mbcurr的时刻,当前帧的预测表示为Npred(i,mbcurr)并且给出为 如果先前帧是(“帧间”)IDR帧或N(
,i-1)等于零,接着在先前帧处生成的比特被用作预测。
量化参数QP调节器 QP调节器的目标是调节在宏块级中的量化参数QP,从而保持针对帧生成的比特位于比特封装内。为了不更新量化参数QP太多并且造成比特流中的太多比特来发送更新的量化参数QP,使用UpdateThreshold变量来限制调节频率。UpdateThreshold变量根据当前宏块号mbcurr变化。如果当前宏块号和最后宏块号的差(mbcurr-mblast)大于UpdateThreshold,则计算基于若干参数的分数或分值。
使用下面的等式来计算分数QPscore

等式(8) 其中δ是(预定的)常数值,并且f(mbcurr)是解决在开始宏块处的比特预测的不可靠性的函数。
使用查找表来实施该函数f(mbcurr),并且它的值给出为 如果计算的分数大于预定的阈值,则计算新的量化参数QP并且用于下一个宏块。如果发现分数低于预定的阈值,则保持量化参数QP不变。
对于下面宏块的量化参数QP,使用下面的等式来计算更新的量化参数QPupdated。


等式(9) 其中Δ1,Δ2,Δ3,和Δ4是(预定的)常数值,并且它们的值可以是(Δ1,Δ2,Δ3,Δ4)=(2,1,1,2),但应该理解它们的值不限于此。特别地,不同的应用方案可能需要其他值以获得更好的结果。可选地,可基于或根据上面定义的分数QPscore来计算更新的量化参数QPupdated。
应该注意到本发明不限于本发明的上述实施方式,其仅代表图示方式的一种实现。特别地,等式(1)的比特调节窗口长度W可以选择为W=1,但本发明不限于此。另外,可以使用除上面详细描述的不同方法来计算(“帧间”)P或B帧的初始量化参数QP。参考等式(6),另一种模型可用于(“帧间”)IDR帧。关于等式(7.1)和(7.2),预定的常数K和J分别赋值为K=2和J=4,但不限于此。然而预定常数K和J的值可以具有不同的值。此外,本发明的实施方式不限于如上所述的比特预测器的实施,而可以不同于上述实施方式的不同方式来实施。本领域技术人员将理解到两个量化参数QP是可获得的;即,短窗口量化参数QPSW和长窗口量化参数QPLW,但不限于特定的限制和上述的计算周期。特别地,用于计算的周期QPLW可以不同。参考等式(8),应该注意到也可以使用与上述模型不同的模型来计算分数QPscore,其仅代表图示方式的一个实施方式。此外,函数f(mbcurr)是用于解决在开始宏块处的比特预测不可靠性的函数,应该理解其不限于上述的查找表。例如,函数f(mbcurr)是可基于查找表可实施的抛物线函数。
现在,将参考图3来描述基于根据本发明的一个实施方式的操作序列进行的整体比特速率控制操作。
在操作S100中,对视频输入信号进行编码并且控制从视频输入信号编码得到的输出比特流的比特率开始。
在操作S110中,对于速率控制所需的速率控制参数被初始化。需要初始化的速率控制参数特别包括但不限于下面参数的组中的至少一个,该组包括视频比特速率Rvideo,帧率f,调节窗口长度W,短窗口速率失真模型的窗口大小SW_size,长窗口速率失真模型的窗口大小LW_size,QPLW更新重复率、速率失真模型参数(a1,SW,a2,SW),(a1,LW,a2,LW),(初始)缓冲器满度Bfullness’,缓冲器大小Bsize,用于(“帧间”)P或B帧的比特封装计算的常数K和J,用于解决比特预测不可靠性的f(mbcurr)的查找表。
在下面的操作S120中,计算初始帧量化参数QP。允许分别计算用于(“帧间”)P或B帧的初始帧量化参数QP和用于(“帧间“)IDR帧的初始帧量化参数QP的实施方式已经被详细地示出。
在提供初始帧量化参数QP后,在操作S130开始当前帧的编码。在操作S150中,帧的第一宏块组被编码并且在操作S160检查在帧中是否存在一个或多个另外宏块组。如果有至少一个宏块组,则在操作S140中调节量化参数QP以用于下一宏块组。基于用于图示方式的实施方式在上面详细地示出量化参数QP的调节。
如果已经对最后宏块组进行了编码,则操作序列继续到操作S170,此处检查当前编码的帧需要重新编码。如果量化参数QP的调节不成功并且得到的编码视频比特流的比特率不可接受,例如如果得到的比特率高于或低于阈值,则需要重新编码。如果需要重新编码,则操作序列以操作S180中的更新的初始帧量化参数QP的计算继续并且返回到操作S130,其中当前帧的编码被重新开始。
否则,即,如果帧成功编码,则最终检查视频编码是否完成。如果最后帧已经被编码,则在操作S200编码视频输入信号并且控制输出比特流的比特率结束。如果仍有帧可用于编码,则操作序列返回到操作S110,重复对序列中下一个新帧的处理。
参考图4,示出了框图,其图示出设置用于执行根据本发明的一个实施方式的上述示出操作序列的速率控制器的组件。
速率控制器包括初始量化参数QP计算器510,比特封装计算器530、比特预测器520和QP调节器540。
QP初始器或初始量化参数QP计算器510被设置提供初始量化参数QP。在启动视频序列的编码后不得不初始化量化参数QP。可通过优选地手工输入,但也可分别基于估计和计算来提供量化参数QP的初始值。可基于一个或多个预定的参数和限制来获得估计或计算,该一个或多个预定的参数和/或限制包括至少一个或多个参数/和或限制,该至少一个或多个参数和/或限制包括编码的比特流的需要的比特率或期望的目标比特率、由比特流所携带的编码视频序列的帧率和缓冲器模型。
任何典型的合适视频解码器配置有缓冲器存储器,使得能够平衡视频序列的进入数据分组的到达时间和速率中的变化。因此,视频编码器不得不编码满足解码器限制的视频比特流,尤其涉及缓冲器存储器的限制。所谓的虚拟缓冲器模型可应用于预测视频解码器的缓冲存储器的满度。虚拟缓冲器的满度中的改变一般是编码进视频序列的比特流的总比特和比特流的所需比特率的差。原理上,缓冲器满度从下受最小缓冲器容量等于零的限制,而从上受最大容量的限制。速率控制机制不得不提供有用于缓冲器容量和初始缓冲器满度的合适值,它们与视频解码器相一致。
根据本发明的一个实施方式,在上面示例性地描述用于“帧间”帧和“帧内”帧的不同初始QP计算机制。
用于“帧间”帧的初始QP计算机制可应用于基于两个量化参数来获得初始量化参数QPinitial,该两个量化参数包括根据短窗口速率控制模型所确定的(短窗口)量化参数QPSW和根据长窗口速率失真模型所确定的(长窗口)量化参数QPLW以及依赖于根据虚拟缓冲器模型所确定的缓冲器满度比γ。定义短窗口和长窗口每个涉及用于分别计算相应的短量化参数QPSW和长量化参数QPLW的特定(预定)重复周期。更具体地,可以从多个先前帧的量化参数的平均量化参数和预定的(正或负的)量化参数偏移、短窗口量化参数QPSW和长窗口量化参数QPLW的加权平均来获得初始量化参数QPinitial,或从长量化参数QPLW·来获得初始量化参数QPinitial。
缓冲器满度比γ是出于下面组的至少一个参数的函数,该组包括编码当前帧时刻的缓冲器占用比、缓冲器大小、视频比特率、帧比特率、在编码当前帧前发生的连续帧跳跃的数目。
用于“帧间”帧的初始QP计算机制可应用于基于线性回归和预定的常数来获得初始量化参数QPIDR。从L个比特Nbits,IDR[...]计算线性回归,其已经被生成用于最后L个图像/帧的编码,并且L个量化参数QPIDR[...]被定义用于对这些最后L个图像/帧进行编码。
如果线性回归不可用,则可从最小值、最大值、或以一个或多个预定偏移值(例如,-1,±0,和+1)的一个或多个最后量化参数QPIDR偏移获得量化参数QPIDR。最小和/最大值可以是预定的值或可以从定义用于编码多个先前图像/帧的量化参数QPIDR[...]的选择来确定。
根据本发明的一个实施方式,上面示意性描述的比特封装计算可以利用比特封装计算器530来操作。比特封装计算器530被设置成确定将要被编码的帧的比特封装值。封装值包括至少上限(upper_limit)和下限(lower_limit),其定义允许由视频编码所生成的最大比特数和最小比特数。另外的中心值(centerBit)可定义通过视频编码可获得的帧的期望比特数。通常,比特封装计算是基于但不限于缓冲器模型以模拟在解码期间,在解码器中可用的比特数。另外,可以考虑视频比特率(Rvideo)、目标视频比特率(Rtarget)和/或视频帧率(f)。
根据本发明的一个实施方式,上面示意性示出的比特预测可以利用比特预测器520来操作。比特预测器520被设置成在对帧进行编码完成之前,预测将在生成用于帧和其宏块的比特数(Npred)。因此,比特预测器将适于基于比特数(其已经被生成用于当前帧的一个或多个先前宏块、一个或多个先前帧、和/或先前帧的一个或多个宏块)来预测将生成用于帧和其宏块的比特数。一般地,对于(“帧间”)P或B帧,从当前帧和先前帧的比特分布来获得比特数的预测。对于(“帧间”)IDR帧,比特数目(在先前帧已经生成)被使用。
根据本发明的一个实施方式,上面示意性描述的QP调节可利用QP调节器540来操作。QP调节器540被设置成调节在宏块级处的量化参数QP。在调节前,涉及调节频率的更新阈值被检查以将调节处理的发生限制于期望的速率。基于分值(其依赖于用于帧和其宏块的预测比特数和比特封装值)来确定是否更新当前使用的量化参数QP。如果分值超过预定的阈值,则调节当前使用的量化参数QP。调节优选地基于一个或多个偏移值来执行,这些偏移值具有根据封装值(upper_limit,lower_limit,centerBit)和预测比特数(Npred)的预定值。例如,偏移值可以是2,1,-1和-2,取决于封装值(upper_limit,lower_limit,centerBit)和预测比特数(Npred)之间的关系。
在操作的一般背景中描述本发明,其可以通过程序产品实施在一个实施方式中,该程序产品包括计算机可读指令,例如代码段和程序代码,由计算机在网络化环境中执行。一般地,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定的任务或实施特定的抽象数据类型。计算机可执行指令、相关的数据结构和程序模块代表用于执行这里公开的方法的操作的程序代码的例子。此类可执行指令的特定序列或相关数据结构代表用于实施在这样的步骤中所述的功能的相应动作的例子。
也可通过具有基于规则的逻辑和其他逻辑的标准编程技术来完成本发明的软件实施,以完成各种数据库搜索操作、相关操作、比特操作和判定操作。还应该注意到词组“组件”和“模块”,如这里所使用的和在权利要求书中的,旨在包括使用一行或多行软件代码的实现、和/或硬件实现,和/或用于接收手工输入的设备。
为了说明和描述已经示出本发明的实施方式的上述描述。不旨在穷举或将本发明限于这里所公开的精确形式,并且根据上述的教导,修改和变形是可以的或可以从本发明的实践中获得。选择实施方式和对其进行描述以便解释本发明的原理和其实际应用,从而本领域技术人员能够将本发明实施在各种实施方式中并且利用各种修改来实施,作为适于预想到的特定使用。不偏离本发明的精神和范围的所有些类修改、改变、变形和其它使用和应用将被认为由本发明覆盖。
权利要求
1.一种用于视频编码器的速率控制的方法,包括
对每个帧执行帧编码处理,包括
确定初始量化参数以用作编码当前帧的量化参数;以及
对当前帧内的宏块组进行编码,其中对宏块组进行所述宏块编码处理包括
在对当前的宏块组进行编码之后确定分值,
如果所述分值超出预定的阈值,则调节用于编码下一宏块组的量化参数;以及
否则,以当前有效的量化参数来继续宏块编码。
2.根据权利要求1所述的方法,其中基于下面组中的至少一个来确定所述分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数以及宏块索引,其中该预测比特数预测在编码时刻编码当前宏块所需的比特数。
3.根据权利要求1所述的方法,其中所述预测比特数基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定。
4.根据权利要求2所述的方法,包括
针对当前帧来确定比特封装值,所述比特封装值至少包括上限和下限,其中根据缓冲器模型来确定所述封装值和/或所述封装值基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值;以及
基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值,该预定函数是所述宏块索引的函数,其中所述预定函数优选地是基于查找表可实施的抛物线函数。
5.根据权利要求1所述的方法,其中量化参数的调节包括以至少一个偏移值来偏移所述量化参数;其中至少一个偏移值取决于封装值和/或确定的预测比特数。
6.根据权利要求1所述的方法,其中根据所述分值来执行量化参数的调节。
7.根据权利要求1所述的方法,包括
初始化至少一个速率控制相关参数;
其中从包括比特速率和缓冲器大小的组来选择至少一个速率控制相关参数。
8.根据权利要求1所述的方法,包括
确定宏块的数目,这些宏块自上次量化参数调节已发生起已经被编码;以及
在宏块的数目已经超过预定的阈值的情况下,允许调节所述量化参数。
9.根据权利要求1所述的方法,包括
如果需要,针对当前帧来确定更新的初始量化参数并且重复帧编码处理。
10.根据权利要求1所述的方法,其中进一步包括确定当前帧是P帧还是理想的数据表示帧。
11.根据权利要求10所述的方法,其中如果所述当前帧是P帧,则从一个或多个先前帧的比特分布来确定预测比特数。
12.根据权利要求10所述的方法,其中如果当前帧是理想的数据表示帧,则从在先前帧处生成的比特数来确定预测比特数。
13.根据权利要求10所述的方法,其中如果当前帧是P帧,则通过以下操作来计算初始量化参数
计算针对短窗口量化参数和长窗口量化参数的值;
基于短窗口量化参数和长窗口量化参数来计算初始量化参数;和/或
截短帧的初始量化参数的值。
14.根据权利要求10所述的方法,其中如果当前帧是理想的数据表示帧,则通过以下操作来来计算初始量化参数
如果根据所述缓冲器模型的缓冲器可用性检查是成功的,则使用先前P帧的量化参数作为初始量化参数;
如果所述缓冲器可用性检查失败,则从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且推断的量化参数被截短,其中该推断基于回归计算,该回归计算基于具有一个或多个参数的回归函数;和/或
如果所述推断不可靠,则从一个或多个先前理想的数据表示帧的一个或多个量化参数来确定所述初始量化参数。
15.一种用于对视频编码器提供速率控制的计算机程序产品,该程序产品包括
用于对每个帧执行帧编码处理的程序段,包括
用于确定初始量化参数的程序段,该初始量化参数被用作用于编码当前帧的量化参数;以及
用于对在当前帧内的宏块组进行编码的程序段,其中,对于宏块组,用于宏块编码的程序段包括
用于在对当前的宏块进行编码之后确定分值的程序段;
用于如果分值超出预定的阈值,则调节用于编码下一宏块组的量化参数的程序段;以及
否则,用于以该当前有效的量化参数来继续宏块编码的程序段。
16.根据权利要求15所述的计算机程序产品,其中基于下面组中的至少一个来确定所述分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数以及宏块索引,其中该预测比特数预测在编码时刻编码当前宏块所需的比特数。
17.根据权利要求15所述的计算机程序产品,其中该预测比特数基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定。
18.根据权利要求16所述的计算机程序产品,包括
用于针对当前帧来确定比特封装值的程序段,该比特封装值至少包括上限和下限,其中根据缓冲器模型来确定封装值和/或该封装值基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值;以及
用于基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值的程序段,该预定函数是宏块索引的函数,其中所述预定函数优选地是基于查找表可实施的抛物线函数。
19.根据权利要求15所述的计算机程序产品,其中用于调节量化参数的程序段包括用于以至少一个偏移值来偏移所述量化参数的程序段,其中所述至少一个偏移值取决于封装值和/或确定的预测比特数。
20.根据权利要求15所述的计算机程序产品,其中用于调节量化参数的程序段被设置成根据所述分值来确定量化参数。
21.根据权利要求15所述的计算机程序产品,包括
用于初始化至少一个速率控制相关参数的程序段;以及从包括比特速率和缓冲器大小的组来选择至少一个速率控制相关参数。
22.根据权利要求15所述的计算机程序产品,包括
用于确定宏块的数目的程序段,这些宏块自上次量化参数调节已发生起已经被编码;以及
在宏块的数目超过预定的阈值的情况下,允许调节所述量化参数。
23.根据权利要求15所述的计算机程序产品,包括
用于如果需要,针对当前帧来确定更新的初始量化参数并且重复帧编码处理的程序段。
24.根据权利要求15所述的计算机程序产品,其中进一步包括用于确定所述当前帧是P帧还是理想的数据表示帧的程序段。
25.根据权利要求23所述的计算机程序产品,其中如果当前帧是P帧,则从一个或多个先前帧的比特分布来确定预测比特数。
26.根据权利要求23所述的计算机程序产品,其中如果当前帧是理想的数据表示帧,则从在先前帧处生成的比特数来确定预定比特数。
27.根据权利要求23所述的计算机程序产品,其中如果当前帧是P帧,则通过下面的程序段来计算初始量化参数
用于计算短窗口量化参数和长窗口量化参数的值的程序段;
用于基于短窗口量化参数和长窗口量化参数来计算初始量化参数的程序段;以及
用于截短帧的初始量化参数的值的程序段。
28.根据权利要求23所述的计算机程序产品,其中如果当前帧是理想的数据表示帧,则用于初始量化参数的程序段包括
用于如果根据缓冲器模型的缓冲器可用性检查是成功的,则使用先前P帧的量化参数作为初始量化参数的程序段;
用于如果缓冲器可用性检查失败,则从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且推断的量化参数被截短的程序段,其中推断基于回归计算,该回归计算基于具有一个或多个参数的回归函数;以及
用于如果推断不可靠,则从一个或多个先前理想数据表示帧的一个或多个量化参数来确定初始量化参数的程序段。
29.一种电子设备,包括
处理器;
存储单元,该存储单元可操作性地连接到处理器并且包括用于提供视频编码器的速率控制的计算机程序产品,包括
用于对每个帧执行帧编码处理的程序段,包括
用于确定初始量化参数的程序段,该初始量化参数被用作用于编码当前帧的量化参数;以及
用于对在当前帧内的宏块组进行编码的程序段,其中对于宏块组,用于宏块编码的程序段包括
用于在对当前的宏块进行编码后确定分值的程序段;以及
用于如果所述分值超出预定的阈值,则调节用于编码下一宏块组的量化参数的程序段;以及
否则,用于以该当前有效的量化参数来继续宏块编码的程序段。
30.根据权利要求29所述的电子设备,其中基于下面组中的至少一个来确定所述分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数以及宏块索引,其中该预测比特数预测在编码时刻编码当前宏块所需的比特数。
31.根据权利要求29所述的电子设备,其中预测比特数基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定。
32.根据权利要求30所述的电子设备,包括
用于针对当前帧来确定比特封装值的程序段,该比特封装值至少包括上限和下限,其中根据缓冲器模型来确定该比特封装值,和/或该比特封装值是基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值;以及
用于基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定分值的程序段,该预定函数是宏块索引的函数,其中预定函数优选地是基于查找表可实施的抛物线函数。
33.根据权利要求29所述的电子设备,其中用于调节量化参数的程序段包括以至少一个偏移值来偏移所述量化参数的程序段;其中至少一个偏移值取决于封装值和/或确定的预测比特数。
34.根据权利要求29所述的电子设备,其中用于调节量化参数的程序段被设置成根据所述分值来确定所述量化参数。
35.根据权利要求29所述的电子设备,包括
用于初始化至少一个速率控制相关参数的程序段;其中从包括比特速率和缓冲器大小的组来选择至少一个速率控制相关参数。
36.根据权利要求29所述的电子设备,包括
用于确定宏块数目的程序段,这些宏块自上次量化参数调节已发生起已经被编码;以及
在宏块的数目超过预定的阈值的情况下,允许调节所述量化参数。
37.根据权利要求29所述的电子设备,包括
用于如果需要,针对帧来计算更新的初始量化参数并且重复帧编码处理的程序段。
38.根据权利要求29所述的电子设备,其中进一步包括用于确定当前帧是P帧还是理想的数据表示帧的程序段。
39.根据权利要求38所述的电子设备,其中如果当前帧是P帧,则从一个或多个先前帧的比特分布来确定预测比特数。
40.根据权利要求38所述的电子设备,其中如果当前帧是理想的数据表示帧,则从在先前帧处生成的比特数来确定预测比特数。
41.根据权利要求38所述的电子设备,其中如果当前帧是P帧,则通过下面的程序段来计算初始量化参数
用于计算短窗口量化参数和长窗口量化参数的值的程序段;
用于基于短窗口量化参数和长窗口量化参数来计算初始量化参数的程序段;以及
用于截短帧的初始量化参数的值的程序段。
42.根据权利要求38所述的电子设备,其中如果当前帧是理想的数据表示帧,则用于初始量化参数的程序段包括
用于如果根据缓冲器模型的缓冲器可用性检查是成功的,则使用先前P帧的量化参数作为初始量化参数的程序段;
用于如果缓冲器可用性检查失败,则从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且截短推断的量化参数的程序段,其中该推断基于回归计算,该回归计算基于具有一个或多个参数的回归函数;以及
用于如果推断不可靠,则从一个或多个先前理想的数据表示帧的一个或多个量化参数来确定初始量化参数的程序段。
43.一种可利用速率控制模块来操作的视频编码器,
其中所述视频编码器被设置成对每个帧执行帧编码,包括
初始帧QP计算器,被设置用于确定初始量化参数以便用作编码当前帧的量化参数;以及
其中所述视频编码器被设置用于对当前帧内的宏块组进行宏块编码,包括
QP调节器,被设置用于在对将要编码的当前帧的当前宏块组进行编码后确定分值,其中所述QP调节器适于如果分值超出预定的阈值,则调节用于编码下一宏块组的量化参数,以及否则QP调节器适于保持用于宏块编码的当前有效量化参数。
44.根据权利要求43所述的视频编码器,包括
QP调节器,被设置用于基于下面组中的至少一个来确定所述分值,该组包括针对当前帧的一个或多个比特封装值、预测比特数以及宏块索引,其中预测比特数预测在编码时刻编码当前宏块所需的比特数。
45.根据权利要求43所述的视频编码器,包括
比特预测器,被设置用于基于生成用于编码当前帧的一个或多个先前宏块和/或一个或多个先前帧的一个或多个先前宏块的比特数来确定预测比特数。
46.根据权利要求44所述的视频编码器,包括
比特封装计算器,被设置用于针对当前帧来确定比特封装值,所述比特封装值至少包括上限和下限,其中根据缓冲器模型来确定封装值,和/或该封装值是基于包括视频比特率、针对当前帧的目标比特数和视频帧速率的组中的至少一个值,以及
QP调节器,被设置用于基于预测比特数、封装值和解决比特预测不可靠性的预定函数来确定所述分值,该预定函数是所述宏块索引的函数,其中所述预定函数优选地是基于查找表可实施的抛物线函数。
47.根据权利要求43所述的视频编码器,其中QP调节器被设置用于调节量化参数,其中所述量化参数以至少一个偏移值来偏移;其中至少一个偏移值取决于封装值和/或确定的预测比特数。
48.根据权利要求43所述的视频编码器,其中QP调节器被设置用于根据分值来调节所述量化参数。
49.根据权利要求43所述的视频编码器,包括
至少一个速率控制相关参数;
其中从包括比特速率和缓冲器大小的组来选择至少一个速率控制相关参数。
50.根据权利要求43所述的视频编码器,包括
QP调节器,被设置用于确定宏块的数目,这些宏块自上次量化参数调节已发生起已经被编码,并且在宏块的数目超过预定的阈值的情况下,允许量化参数调节。
51.根据权利要求43所述的视频编码器,包括
如果需要,初始帧QP计算器被设置用于针对当前帧来确定更新的初始量化参数并且启动重复帧编码处理。
52.根据权利要求43所述的视频编码器,其中进一步包括确定当前帧是P帧还是理想的数据表示帧。
53.根据权利要求52所述的视频编码器,其中如果当前帧是P帧,则比特预测器被设置用于从一个或多个先前帧的比特分布来确定预测比特数。
54.根据权利要求52所述的视频编码器,其中如果当前帧是理想的数据表示帧,则比特预测器被设置用于从在先前帧处生成的比特数来确定预测比特数。
55.根据权利要求52所述的视频编码器,其中如果当前帧是P帧,则初始帧QP计算器被设置用于
计算短窗口量化参数和长窗口量化参数的值;
基于短窗口量化参数和长窗口量化参数来计算初始量化参数;和/或
截短帧的初始量化参数的值。
56.根据权利要求52所述的视频编码器,其中如果当前帧是理想的数据表示帧,则初始帧QP计算器被设置用于
如果根据缓冲器模型的缓冲器可用性检查是成功的,由使用先前P帧的量化参数作为初始量化参数;
如果缓冲器可用性检查失败,则从针对一个或多个先前帧生成的比特数和用于编码一个或多个先前帧的量化参数来推断初始量化参数,并且截短推断的量化参数,其中该推断基于回归计算,该回归计算基于具有一个或多个参数的回归函数;和/或
如果推断不可靠,则从一个或多个先前理想的数据表示帧的一个或多个量化参数来确定所述初始量化参数。
全文摘要
一般地,提供一种用于视频编码的速率控制的方法,其可通过方法、设备、计算机程序和/或视频编码器来实施。对每个帧执行帧编码处理,其中计算初始量化参数以用作编码当前帧的量化参数,对当前帧内的每个宏块组按组进行编码,即,按组方式。在当前的宏块组的编码后确定分值,如果所述分值超出预定的阈值,则将调节用于编码下一宏块组的量化参数;否则,将以该用于编码当前宏块组的量化参数来继续宏块编码。
文档编号H04N7/26GK101233757SQ200680027283
公开日2008年7月30日 申请日期2006年7月7日 优先权日2005年7月28日
发明者K·宇居尔, J·莱纳玛, Y·Z·刘 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1