专利名称:用于视频编码器速率控制的量化参数的确定的制作方法
技术领域:
本发明针对视频编码器,并且尤其针对用于视频编码器速率控制的量化参数确定。
背景技术:
一般以比特流的形式来处理和传输视频数据。速率控制涉及为图像组、图像、片或宏块分配比特的过程。所希望的速率控制方案应该使图像质量相对于给定的比特速率达到最佳。一般有三种类型的速率控制,包括恒定比特速率(CBR)、可变比特速率(VBR)和确切比特(exact bits)。序列长度可能已知或可能不是已知的。如果序列长度已知,则可以获得压缩流的确切比特,这一点可用于某些存储应用。CBR例如可用于恒定比特速率传输信道,如广播中。CBR只需要小缓冲器、且通常用于推模式(push mode)中。VBR可用于可变带宽信道,如数字视频光盘(DVD)。VBR典型地需要大缓冲器,且通常用于拉模式(pull mode)中。因为任何信道的带宽都有限。VBR有两个参数。一个VBR参数是最大比特速率,另一个VBR参数是平均比特速率。VBR最大比特速率是为信道而设的,而VBR平均比特速率是为存储空间而设的。
现有速率控制方法包括测试模型5(TM5)速率控制。不幸的是,这些方法允许图像间的图像质量变化太大,造成图像内成块。本发明的实施例致力于解决这些和其它问题。
发明内容
通过一种用于视频编码器速率控制的量化参数确定设备和方法,来致力于解决现有技术的这些和其它缺陷和缺点。
根据本发明原理,提供一种用于相对于至少一幅参考图像来对一个图像块的视频信号数据进行编码的视频编码器,包括用于响应当前比特速率而应用自适应量化参数的自适应量化器。对应的方法包括初始化自适应量化器,利用自适应量化器来计算视频信号数据所使用的比特数,为多种图像类型的每种类型分配比特,响应所分配的比特、计算与前一图象组所用的比特数目的差值,并为视频信号数据获得更新的自适应量化器,为视频信号数据的一部分计算自适应量化器,对视频信号数据这一部分进行编码,并获得(250)用于该视频信号数据编码部分的实际比特数。
通过以下示范性实施例的详细描述,并结合附图,本发明的这些及其它方面、特征和优点将变得显而易见。
通过参考并根据以下例图,可以更好地理解本发明,其中图1示出了根据本发明原理为进行速率控制而自适应确定量化参数的视频编码器的框图;图2示出了根据本发明原理为进行速率控制而自适应确定量化参数的编码过程的流程图;以及图3示出了根据本发明原理的量化参数对比特速率曲线的图。
具体实施例方式
本发明包括一种用于视频编码器速率控制的量化参数确定设备和方法。例如,本说明书中描述的一个实施例可用于H.264视频编码器或类似视频压缩方案的速率控制;虽然本发明原理的应用不应被看作受此限制。本发明创建一种新模型来确定自适应量化参数(QP)作为比特速率的函数。自适应QP针对各种比特速率来优化图像质量。前面的编码统计信息用于对后续图像编码。
本发明的实施例可以根据比特速率来选择QP,以实现对视频压缩和编码的速率控制。优选实施例生成并计算QP与比特速率模型。利用该模型来计算图像组(GOP)和每种类型图像的QP,以致在给定的比特速率下优化图像质量。这些和其它实施例改善了图像间的像质变化以及图像内的成块现象。
以下描述只是说明的本发明的原理。因而,应该理解,本领域技术人员将能够设计出虽然未在此明确描述或示出,但体现本发明原理且被包括在本发明精神和范围内的各种配置。而且,在此列举的所有例子和条件语言都旨在教导,来帮助读者理解本发明原理、以及本发明人对本领域进一步贡献的概念,并且应该被看作是不限于这些具体列举的例子和条件。而且,在此列举本发明原理、方面和实施例及本发明特例的所有语句,都旨在包括与本发明结构上和功能上等同之物。另外,这些等同物旨在包括当前周知的等同物以及将来研发出的等同物,即研发出来执行相同功能的任何元件,而不论其结构怎样。可以利用专用硬件以及能够与适当软件关联地执行软件的硬件,来提供图中所示各元件的功能。当通过处理器来提供这些功能时,可以通过单个专用处理器、单个共享处理器、或其中一些可被共享的多个单独处理器,来提供这些功能。而且,术语“处理器”或“控制器”的显式使用不应被看作是专门指能够执行软件的硬件,而可以隐含包括但不限于数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器。也可以包括其它常规或定制的硬件。
在本发明权利要求中,被表示为用于执行指定功能的装置的任何元件都预定包括执行该功能的任何方式,例如包括a)执行该功能的电路元件的组合,或b)任何形式、因而包括固件和微码等形式的软件,该软件与用于执行该软件的适当电路结合、以执行该功能。以这种权利要求所定义的本发明在于,由所列举的各种装置提供的功能以权利要求所要求的方式被组合和集合在一起。因而,申请人认为能够提供那些功能性的任何装置都等效于在此示出的装置。
如图1所示,一般用附图标记100来表示用于速率控制而确定量化参数的视频编码器。编码器100的输入以信号通信方式与求和点110的非反相输入相连。求和点110的输出以信号通信方式与块变换器120相连。编码器100的输入进一步以信号通信方式与I图像的帧内预测块115相连,I图像帧内预测块115的输出连接到变换器120的第二输入。变换器120以信号通信方式与量化器130相连。虽然在此描述的本发明在概念上是量化器130的一部分,但是应该理解,在替换实施例中,用于速率控制的单独量化参数确定单元可以馈给量化器130,且单元之间的信令指示要使用哪一个量化参数。量化器130的输出以信号通信方式与可变长编码器(VLC)140相连,其中VLC 140的输出是编码器100的外部可用输出。
量化器130的输出进一步以信号通信方式与逆量化器150相连。逆量化器150以信号通信方式与逆块变换器160相连,逆块变换器160反过来又以信号通信方式与参考图像存储器170相连。参考图像存储器170的第一输出,以信号通信方式与用于多幅参考图像的运动估计器180的第一输入相连。编码器100的输入进一步以信号通信方式与运动估计器180的第二输入相连。
运动估计器180的输出以信号通信方式与运动补偿器190的第一输入相连。参考图像存储器170的第二输出以信号通信方式与运动补偿器190的第二输入相连。运动补偿器190的输出以信号通信方式与求和点110的反相输入相连。
转到图2,一般用附图标记200来表示根据本发明的,确定用于速率控制的量化参数的示范性编码过程。过程200包括开始对图象组(GOP)编码的起始点210。初始化步骤215用于初始化量化参数(QP)。在步骤220,对当前GOP执行比特计算。步骤225,用加权函数来添加所节约的比特数,并用加权函数来减去过度使用的比特数。步骤230为每种类型的图像分配比特。步骤235,反过来,计算与前一个GOP比特数的差QP(DQP),并获得当前GOP的QP。步骤240计算当前图像的QP,并将控制传递给步骤245对图像进行编码。步骤250确定图像的实际比特数,并将控制传递给决策步骤255。决策步骤255确定是否要开始新的GOP,并且如果是这样的话,就将控制向后传递给步骤220,以计算该新的GOP的比特。另一方面,如果决策步骤255确定不要开始新的GOP,则将控制向后传递给步骤230,以便为每种类型的图像分配比特。
现在转到图3,一般用附图标记300来表示根据本发明原理的比特速率与用于速率控制的量化参数的曲线。在此,沿水平轴表示量化参数值,垂直轴表示比特速率值。该示范性曲线图示出了图像大小为1920×1080的24Hz高清晰(HD)视频的QP与比特速率曲线。在该示范性实施例中,量化参数值一般按照下式随比特速率减小而增大QP=-K*logabr+CK=-259,C=38.8,a=1.6---(1)]]>速率控制涉及为图像组、图像、片和/或宏块分配比特的过程。本发明的优选实施例假定序列长度为未知。GOP包括两幅相邻帧内编码图像之间的图像,并且也包括第一幅帧内编码图像。
本发明的优选实施例可以满足比特速率和/或存储要求,避免缓冲器上溢和下溢,以期望的比特对良好像质编码,限制图像之间的像质变化,以及以期望的比特速率对良好序列质量编码。比特预算可用于序列、GOP、图像、片和/或宏块。
例如,比特预算可以假定序列的总比特数和/或长度未知,GOP表示两幅相邻I图像之间的图像,以及I、P和B类型的图像的初始图像比特预算比为I∶P∶B=6∶3∶1。可以在对每个GOP编码后,更新该比值。例如,可以将随后GOP的初始比特预算比初始化为由前一个GOP产生的比特预算比。比特可以对应于最大的GOP比特数(只用于VBR)、平均GOP比特数、先前GOP比特数和总的可用比特数。
对于I图像或帧内块,可以获得编码复杂性的估计值为绝对差之和,对于P图像可以获得编码复杂性的估计值为绝对预测差之和,对于B图像可以获得编码复杂性的估计值为绝对双向预测差之和,对于宏块可以获得编码复杂性的估计值为绝对差之和。
对于示范性VBR实施例,在对每一幅图像编码后,使编码器缓冲级增加图像比特数,将比特速率选为{最大比特速率、编码器缓冲级乘以图像速率、以及(解码器缓冲器大小减去解码器缓冲级)乘以图像速率}中的最小值,比特速率随图像而变,使解码器缓冲级增加比特速率除以图像速率的值,并且当去除图像时,使解码器缓冲级减小去掉的图像比特。
对于示范性CBR实施例,在对每一幅图像编码后,使编码器缓冲级增加图像比特数,比特速率是指定的比特速率,比特速率在整个序列内都是恒定的,使解码器缓冲级增加比特速率除以图像速率,并且当去除图像时,使解码器缓冲级减小去掉的图像比特。可以用被设为等于2-GOP比特的平均比特速率的缓冲器大小,来模拟解码器缓冲器。为避免解码器缓冲器上溢,如果待编码图像可能造成解码器缓冲器上溢,则编码器可以通过增大QP,来减小图像大小。为避免解码器缓冲器下溢,如果待编码图像可能造成解码器缓冲器下溢,则编码器可以通过减小QP来增大图像大小,并增大VBR的比特速率。可以用等于2-GOP比特的平均比特速率的缓冲器大小,来模拟编码器缓冲器。如果编码器缓冲器下溢,则补零。如果待编码图像可能造成编码器缓冲器下溢,则增大图像大小。如果待编码图像可能造成编码器缓冲器上溢,则减小图像大小。可以从编码器缓冲器输出延迟,来确定端到端延迟。对于VBR,可以从一幅图像来确定端到端延迟,虽然在验证实验中已成功使用了六幅图像。对于CBR,可以在缓冲器半充满时,从开始输出流来确定端到端延迟。
也可以计算解码器缓冲器延迟。当计划要去除一幅图像时,该图像的所有比特都应该在解码器缓冲器中。对于VBR,解码器缓冲器延迟取决于图像最大比特数,虽然在验证试验中已成功使用了六幅图像。对于CBR,可以在缓冲器半充满时确定解码器缓冲器延迟。
在操作中,通过目标比特速率、前一个编码GOP中所消耗的比特数、以及目标比特数和直到前一个GOP所消耗的比特数之间的差比特,来确定GOP中的图像的比特数预算。
TargetBitsGOP=BitRate*NumberOfPicturesInGOPPictureRate---(2)]]>BitsGOP=K1*TargetBitsGOP+K2*BitsPreviousGOP+K3*BitsRemain(3)其中K1+K2+K3=1。
利用以下定义的项(见式6),帧内编码图像的比特数等于IeB乘以B图像的比特数,且P图像的比特数等于PeB乘以B图像的比特数。在一个GOP中,有一幅I图像、NP幅P图像以及NB幅B图像。每种图像的目标比特为Itargetbits=TargetBitsGOP*IeBIeB+NP*PeB+NB]]>Ptargetbits=TargetBitsGOP*PeBIeB+NP*PeB+NB---(4)]]>Btargetbits=TargetBitsGOPIeB+NP*PeB+NB]]>利用统计结果对第一个GOP量化参数(QP)初始化。对于每个新GOPQPPreviousGOP=IB*QPI+PBΣi=0NPQPPi+Σi=0NBQPBi---(5)]]>dpq=logbPreGOPBits Used/BitsGOPQPGOP=QPPreviousGOP/(IB+PB*NP+NB)+dqp (6)
其中dqp是差QP,并加到前一个GOP上,以形成新的GOP QP;b是底数,在此选择b等于1.4;IB、PB是常数,它们分别是I和P图像的GOP QP的贡献因子,在此IB=4,PB=2;GOP图像QP用于I图像QP。
对于P图像,BitsP=K1P*BitsPreviousP+K1B*BitsPreviousB(7)其中K1P+K1B=1。在没有B图像的情况下,K1B=0;在前一幅P图像和当前P图像之间有两幅B图像的情况下,BitsPreviousB是这两幅B图像的平均比特。在此,对于一幅B图像K1P=3/4,对于两幅B图像K1P=1/2;dqpP=logcBitsP/Ptargetbits(8)QPP=QPPreviousP+dqpP(9)其中c=1.5。
对于B图像BitsB=K2P*BitsPreviousP+K2B*BitsPreviousBdqpB=logdBitsB/PtargetbitsQPB=QPPreviousB+dqpP(10)其中K2P+K2B=1,在此K2P=1/2;BitSPreviousP是先前两幅编码P图像的平均比特;d是底数,在此d=1.8;得到QP和比特速率之间的函数如下QP=-Klogabr+C (11)K=-259,C=38.8,a=1.6]]>如果比特速率从br1变为br2,则QP应该变为QP2,QP2=Klogabr1br2+QP1---(12)]]>因而,在本发明示范性实施例的操作中,图1的编码器100和量化器130实施图2的方法200。在图2的步骤210,编码器准备对新的GOP编码。GOP被定义为两幅帧内编码图像之间的图像,包括第一幅帧内编码图像、但不包括第二幅帧内编码图像。在步骤215,从实验收集的统计数据,来初始化第一个GOP量化参数(QP)。实验统计数据例如可以包括1)图像大小352×288(CIF),帧频30Hz,QP被初始化为(106-比特速率)/105+30;2)图像大小720×480(SD),帧频24Hz,电影,QP=(4*106-比特速率)/3*106+20;以及3)图像大小1920×1088(HD),帧频24Hz,电影,QP=(107-比特速率)/5*106+26。
在图2的步骤220,编码器如下计算GOP的目标比特TargetBitsGOP=BitRate*NumberOfPicturesInGOPPictureRate---(13)]]>在步骤225,编码器将GOP可用的比特确定为,目标比特计数加上从先前GOP编码节约的比特数、或减去被先前GOP过度使用的比特数。在步骤230,对每种类型的图像进行比特数预算。分别由以下公式来计算I、P和B图像的比特数Itargetbits=TargetBitsGOP*IeBIeB+NP*PeB+NB]]>Ptargetbits=TargetBitsGOP*PeBIeB+NP*PeB+NB---(14)]]>Btargetbits=TargetBitsGOPIeB+NP*PeB+NB]]>在对每一幅图像编码后,重新计算该比特数预算。在步骤235,由下式来计算GOP的差QP(dqp)和QPdqp=logbPreGOPBitsUsed/BitsGOPQPGOP=QPPreviousGOP/(IB+PB*NP+NB)+dqp(15)该式来自于本发明的比特速率-QP模型。在步骤240,对每一幅图像计算QP。对于I图像,I图像的QP是GOP的QP。对于P图像,从先前P和B图像所使用的比特数以及可用于图像的比特数,来计算P图像的目标比特计数,并且由下式来计算dqp。
dqpP=logcBitsP/Ptargetbits(16)上式16也来自于本发明模型。对于B图像,由先前B和P图像以及可用于图像的比特来计算B图像的目标比特计数,并由此来计算dqp。
BitsB=K2P*BitsPreviousP+K2B*BitsPreviousBdqpB=logdBitsB/PtargetbitsQPB=QPPreviousB+dqpP(17)对于更精细的速率控制,计算每一个块或宏块的QP。计算每种类型块的目标比特计数,并利用相似方法来计算每一个块的dqp。在步骤245,利用从前面步骤获得的QP,来对图像编码。如果使用更精细的速率控制,则利用从前面步骤获得的QP对每个块进行编码,并且将平均QP用作后续图像的参考。在步骤250,当对图像编码时,对实际比特数计数,并计算平均QP。在步骤255,如果对GOP中的所有图像编码,则利用该GOP中所有图像的加权平均QP,来计算GOP的QP,如下式18所示。否则,以和上述相同的方式对下一幅图像编码。
QPPreviousGOP=IB*QPI+PBΣi=0NPQPPi+Σi=0NBQPBi---(18)]]>相关领域的普通技术人员基于此处的教导,可以容易弄清本发明的这些及其它特征和优点。应该理解,可以以各种形式的硬件、软件、固件、专用处理器或它们的组合,来实施本发明的教导。
最优选的是,将本发明的教导实施为硬件和软件的组合。而且,优选地将软件实施为确实可在程序存储单元上具体化的应用程序。可将该应用程序上载到包括任何合适架构的机器、并由该机器执行。优选地,在具有硬件如一个或多个中央处理器(CPU)、随机存取存储器(RAM)和输入/输出(I/O)接口的计算机平台上,实施该机器。该计算机平台也可包括操作系统和微指令码。在此描述的各种过程和功能可以是可通过CPU执行的微指令码一部分或应用程序一部分、或它们的任意组合。另外,其它各种外围单元可连接到该计算机平台,如附加数据存储单元和打印单元。
进一步应该理解,因为优选地用软件来实施附图中所描述的一些系统组成部分和方法,所以系统部件或过程功能块之间的实际连接可以随本发明的编程方式而有所不同。给定此处的教导,相关领域的普通技术人员将能够预期本发明的这些及类似实施或配置。
虽然在此参考附图描述了说明性实施例,但是应该理解,本发明不限于那些具体实施例,并且在不脱离本发明范围或精神的情况下,相关领域普通技术人员可以对本发明进行各种变化和更改。例如,替换实施例可以在序列长度或容量已知时对确切平均比特速率进行编码,利用两次完整的两遍编码来实施速率控制,优化图像内部的比特分配,识别场景变化,使用统计复用器,以及/或者对分层数据例如JVT和/或MPEG实施速率控制。所有这种变化和更改都旨在被包括在如所附权利要求所阐述的本发明范围内。
权利要求
1.一种视频编码器(100),用于相对于至少一幅参考图像来对图像块的视频信号数据进行编码,所述编码器(100)包括用于响应当前比特速率来应用自适应量化参数的自适应量化器(130)。
2.根据权利要求1所述的视频编码器,其中所述自适应量化器为图像组、一幅图像、一片和一个宏块中的至少一个分配比特。
3.根据权利要求1所述的视频编码器,其中图像序列的长度未知。
4.根据权利要求1所述的视频编码器,其进一步包括模拟单元,用于以下至少之一生成和计算自适应量化参数与比特速率的模型。
5.根据权利要求1所述的视频编码器,其中所述自适应量化器为每个图像组分配比特,所述编码器进一步包括模拟单元,所述模拟单元为多种图像类型的每种类型生成自适应量化参数与比特速率的模型。
6.根据权利要求1所述的视频编码器,其中对于给定的比特速率修改所述自适应量化器,以优化图像质量。
7.一种对图像组进行编码的方法(200),包括计算(230)对所述图像组内的至少一项进行编码所需的比特预算;响应所述计算的比特预算,来调节(240)量化参数;以及迭代地重复所述计算和调节步骤,以进一步调节所述量化参数。
8.根据权利要求7所述的方法,其中所述至少一项是从包括图像、片和宏块的组中选择的。
9.根据权利要求7所述的方法,其中所述图像组包括多于一幅图像。
10.根据权利要求7所述的方法,其中所述图像组包括两幅相邻帧内编码图像之间的图像,并包括第一幅帧内编码图像。
11.根据权利要求7所述的方法,其中所述图像组的长度未知。
12.根据权利要求7所述的方法,其进一步包括以下至少之一生成和计算自适应量化参数与比特速率的模型。
13.根据权利要求7所述的方法,其进一步包括为每一图像组分配比特;以及为多种图像类型的每种类型,生成自适应量化参数与比特速率的模型。
14.根据权利要求7所述的方法,其中对于给定比特速率修改所述自适应量化器,以优化图像质量。
15.一种用于对图像组编码的设备,包括用于计算(230)为对所述图像组内的至少一项进行编码所需的比特预算的装置;用于响应所述计算的比特预算,来调节(240)量化参数的装置;以及用于迭代地重复所述计算和调节步骤,以进一步调节所述量化参数的装置。
16.根据权利要求15所述的设备,其中所述至少一项是从包括图像、片和宏块的组中选择的。
17.一种机器可读程序存储器,所述程序存储器确实包括可由所述机器执行、以执行图像组编码程序步骤的指令程序,所述程序步骤包括计算(230)为对所述图像组内的至少一项进行编码所需的比特预算;响应所述计算的比特预算,来调节(240)量化参数;以及迭代地重复所述计算和调节步骤,以进一步调节所述量化参数。
全文摘要
本发明提供一种通过响应比特速率而应用自适应量化参数对视频信号数据进行编码的设备和对应方法;其中用于相对于至少一幅参考图像来对图像块的视频信号数据进行编码的视频编码器(100),包括用于响应当前比特速率而应用自适应量化参数的自适应量化器(130);以及其中对应方法(200)包括初始化(215)自适应量化器,利用自适应量化器来计算(225)视频信号数据所使用的比特数,为多种图像类型的每种类型分配(230)比特,响应所分配的比特,计算(235)自适应量化器中与前一个图像组所用的比特数的差值,并为视频信号数据获得更新的自适应量化器,为视频信号数据一部分计算(240)自适应量化器,对视频信号数据的这一部分进行编码(245),并获得(250)用于对该部分视频信号数据进行编码的实际比特数。
文档编号H04N7/50GK101069432SQ200580041450
公开日2007年11月7日 申请日期2005年6月15日 优先权日2004年12月2日
发明者林书 申请人:汤姆逊许可公司