背景技术
多数视频应用针对一组给定的比特率限制寻求可能的最高感知质量。例如,在诸如视频电话系统之类的低比特率应用中,视频编码器通过消除在视觉上更易注意到的并且因此更重要的感兴趣区域中的强烈的视觉伪像而提供更高的质量。另一方面,在高比特率应用中,在画面中的每一处都期望在视觉上无损的质量并且视频编码器还应该实现透明的(transparent)质量。在高比特率应用中获得透明的视觉质量中的一个挑战在于保留细节,尤其是在其中细节丢失比非平滑区域的细节丢失更易看见的平滑区域中,这是因为人类视觉系统的纹理遮蔽属性。
增加可用的比特率是提高客观和主观质量的最直接的方法之一。当给定比特率时,编码器操纵其比特分配模块以在可以获得最大视觉质量提高的地方花费可用的比特。在非实时的应用中,诸如数字视频盘(DVD)编辑时,视频编码器可以利用可变比特率(VBR)设计以在时间上在难于编码的内容和容易编码的内容上产生具有恒定质量的视频。在这种应用中,将可用的比特适当地分布在不同的视频分段上以便获得恒定的质量。相反,恒定比特率(CBR)系统将相同数目的比特指定给一个或者多个画面的间隔而不管它们的编码困难度,并且产生随视频内容而变化的视觉质量。对于可变比特率和恒定比特率编码系统这二者,编码器可以根据画面内的感知模型而分配比特。人类感知的一个特征是纹理遮蔽,这解释了为什么人眼对于平滑区域中的质量降低比在具有纹理的区域中的质量降低更敏感。可以利用该属性来增加被分配给平滑区域的比特的数目以获得更高的视觉质量。
视频编码器中的量化过程控制编码比特的数目和质量。通常通过调节量化参数(QP)来调节质量。量化参数可以包括量化步长、舍入偏移,以及缩放矩阵。在国际标准化组织/国际电工委员会(ISO/ICE)运动画面专家组-4(MPEG-4)第10部分高级视频编码(AVC)标准/国际电信联盟、电信分部(ITU-T)H.264推荐(下文的“MPEG-4AVC标准)中,可以在码片或者宏块(MB)级别上调节量化参数值。编码器具有调整量化参数和将该调节发信令给解码器的灵活性。量化参数发信令需要开销成本。
MPEG-4AVC标准中的QP编码
MPEG-4AVC标准中的语法允许量化参数对于每个码片和宏块(MB)不同。量化参数的值是整数并且在0-51的范围中。可以从语法元素pic_init_qp_minus26中推导每个码片的初始值。当编码非零值的slice_qp_delta时,在码片层修改初始值,并且当在宏块层编码非零值的mb_qp_delta时,也修改初始值。
在数学上,如下计算码片的初始的量化参数:
SliceQPY=26+pic_init_qp_minus26+slice_qp_delta (1)
在宏块层,如下推导QP的值:
QPY=QPY,PREV+mb_qp_delta (2)
其中QPY,PREV是当前码片解码顺序中前一个宏块的量化参数。
第一种现有技术方法的量化参数编码
在第一种现有技术方法中(以及以下在此更详细地描述的第二种现有技术方法中),实施比16×16像素更大的运动分区。使用第一种现有技术方法作为示例,除了现有的MPEG-4AVC标准分区大小之外,还使用64×64、64×32、32×64、32×32、32×16,和16×32大小的宏块。引入两个新的语法元素mb64_delta_qp和mb32_delta_qp来编码大块的量化参数。
第一种现有技术方法使得亮度量化器步长做如下改变。如果64×64块被分区为四个单独的32×32块,则每一个32×32块可以具有其自身的量化参数。如果32×32块被进一步分区为四个16×16块,则每一个16×16块也可以具有其自身的量化参数。使用delta_qp语法将该信息发信令给解码器。对于64×64块,如果mb64_type不是P8×8(意味着没有进一步分区),则编码mb64_delta_qp以便将亮度量化器步长关于当前块的左上侧的块的相对改变发信令。该块可以是64×64、32×32或者16×16的大小。mb64_qp_delta的解码值被限制在范围[-26,25]中。当在任何块(包括P_Skip和B_Skip块类型)中不存在时,mb64_qp_delta值被推断为等于0。如下推导当前块的亮度量化值QPY:
QPY=(QPY,PREV+mb64_qp_delta+52)%52, (3)
其中QPY,PREV是当前码片解码顺序中前一个64×64块的亮度QP。对于码片中的第一个64×64块,QPY,PREV被设置为等于码片首标中发送的码片量化参数。
如果mb64_type是P8×8(意味着64×64块被分区为四个32×32块),则对于每个32×32块,重复相同的过程。也就是说,如果mb32_type不是P8×8(意味着没有进一步分区),则编码mb32_delta_qp。否则,如在MPEG-4AVC标准中那样,将每个16×16宏块的delta_qp发送给解码器。应注意,当在64×64或者32×32块大小上发信令delta_qp时,其可应用于运动分区中的所有块。
第二种现有技术方法中的量化参数编码
在第二种现有技术方法中,通过编码单元的构思来支持大块。在第二种现有技术方法中,定义编码单元(CU)作为具有方形的基本单元。尽管其具有与MPEG-4AVC标准中的宏块和子宏块类似的作用,但主要的差异在于以下事实:该编码单元可以具有各种大小,而没有对应于其大小的区别(distinction)。在编码单元基础上执行除了基于帧的循环滤波之外的所有处理,包括帧内/帧间预测、变换、量化和熵编码。定义两个特殊术语:最大编码单元(LCU)和最小编码单元(SCU)。为了便于实施,LCU大小和SCU大小被限制为2的幂并且大于或者等于8的值。
假定画面由非重叠的LCU组成。由于编码单元被限制为方形,LCU内的编码单元结构可以被表示为适配于该画面的递归树表示。也就是说,编码单元由最大的编码单元大小和编码单元所属的最大编码单元中的分层级深度来表征。
与编码单元结合,第二种现有技术方法引入了预测模式的基本单元:预测单元(PU)。应注意,预测单元仅仅是为最后深度(last-depth)编码单元定义的,并且它的大小限制为编码单元的大小。类似于常规的标准,定义两个不同的术语来规定预测方法:预测类型和预测单元分割。预测类型是跳过、帧内或者帧间中的值之一,其粗略地描述了预测方法的本质。之后,根据预测类型定义可能的预测单元分割。对于2N×2N大小的编码单元大小,帧内的预测单元具有两种不同可能的分割:2N×2N(即,没有分割)和N×N(即,四分之一分割)。帧间的预测单元具有八种不同可能的分割:四种对称分割(2N×2N,2N×N,N×2N,N×N)和四种非对称的分割(2N×nU,2N×nD,nL×2N和nR×2N)。
除了编码单元和预测编码单元定义,单独定义了用于变换和量化的变换单元(TU)。应注意,变换单元的大小可能大于预测单元的大小,其与之前的视频标准不同,但是变换单元不能超过编码单元的大小。然而,变换单元大小不是任意的,并且一旦对于编码单元定义了预测单元结构,就只有两种变换单元分区是可能的。结果,通过transform_unit_size_flag来确定编码单元中变换单元的大小。如果transform_unit_size_flag被设置为0,则变换单元的大小与该变换单元所属的编码单元的大小相同。否则,根据预测单元分割而将变换单元大小设置为N×N或者N/2×N/2。
大变换的量化和去量化系数的基本原理与MPEG-4AVC标准中使用的相同,即,具有死区的标量量化器。确切而言,在提出的编解码器中已经使用了相同的量化参数范围和对应的量化步长。对于每个编码单元,该建议允许改变量化参数。如下推导当前块的亮度量化值QPY,
QPY=SliceQPY+qp_delta, (4)
其中SliceQPY是码片的量化参数,qp_delta是当前编码单元和码片的量化参数之间的差。相同的量化参数应用到整个编码单元。
典型的QP编码过程-来自单个QP的QP预测值
转向图1,通过参考数字100总地指示视频编码器中常规的量化参数编码过程。方法100包括开始块105,其将控制传递给功能块110。功能块110将码片的量化参数(QP)设置为SliceQPY,将SliceQPY存储为QP预测值,并且将控制传递给循环限制块115。循环限制块115使用范围从1到编码单元的数目(#)的变量i开始循环,并且将控制传递给功能块120。功能块120将每个编码单元的QP设置为QPCU,并且将控制传递给功能块125。功能块125编码delta_QP=QPCU-SliceQPY,并且将控制传递给功能块130。功能块130对编码单元i进行编码,并且将控制传递给循环限制块135。循环限制块135结束对编码单元的循环,并且将控制传递给结束块199。
由此,在方法100中,单个QP,即码片QP(SliceQPY),被用作要编码的QP的预测值。关于功能块120,基于编码单元的内容和/或之前的编码结果而调节编码单元的QP。例如,平滑编码单元将降低QP以便提高感知质量。在另一示例中,如果之前的编码单元使用比所指定比特更多的比特,则当前的编码单元将增加QP以便消耗比原始指定的比特更少的比特。在这个示例中,当前编码单元的QP(QPCU)和QP预测值SliceQPY之间的差被编码(经功能块125)。
转向图2,通过参考数字200总地指示视频解码器中常规的量化参数解码过程。方法200包括开始块205,其将控制传递给功能块210。功能块210解码SliceQPY,将SliceQPY存储为QP预测值,并且将控制传递给循环限制块215。循环限制块215使用范围从1到编码单元的数目(#)的变量i开始循环,并且将控制传递给功能块220。功能块220解码delta_QP,并且将控制传递给功能块225。功能块225将每个编码单元的QP设置为QPCU=SliceQPY+delta_QP,并且将控制传递给功能块230。功能块230对编码单元i进行编码,并且将控制传递给循环限制块235。循环限制块235结束对编码单元的循环,并且将控制传递给结束块299。关于功能块230,由此重构编码单元。
具体实施方式
本原理针对一种用于从多个相邻量化参数中确定量化参数预测值的方法和装置。
本描述对本原理进行说明。由此,要理解,本领域的技术人员将能够想到(devise)各种布置来实施本原理,虽然这些配置并未被明确地在此描述或示出但却被包括在本原理的精神和范围中。
在此陈述的所有示例和条件性的语言旨在辅助读者理解(多个)发明人贡献以促进本领域的本原理和构思的教导性目的,并且要被解译为不限于被这样具体陈述的示例和条件。
而且,在此陈述本原理的原理、方面,以及实施例的所有叙述,以及其具体的示例,旨在包括其结构和功能的等效物。此外,这种等效物旨在包括当前已知的等效物以及在未来开发的等效物(即所开发的执行相同功能的任何元件而不论其结构如何)这两者。
由此,例如,本领域的技术人员将理解的是在此呈现的框图表示实施本原理的说明性电路的概念上的视图。类似的,将理解,任何流程图表、流程图、状态转换图、伪代码等等表示各种处理,这些处理实质上可以以计算机可读介质表示并且因而通过计算机或处理器来执行,而无论是否明确地示出这样的计算机或处理器。
可以通过使用专用的硬件以及与合适的软件相关的能够执行软件的硬件来提供图中示出的各种元件的功能。当通过处理器来提供时,可以通过单一的专用处理器、通过单一的共享的处理器,或者通过多个单独的处理器(其一部分可以被共享)来提供该功能。另外,术语“处理器”或“控制器”的明确使用不应当被解译为排他性地指代能够执行软件的硬件,而是可以隐含地包括,但不限于,数字信号处理器(“DSP”)硬件、用于存储软件的只读存储器(“ROM”)、随机存取存储器(“RAM”),以及非易失性存储器。
还可以包括传统的和/或定制的其它硬件。类似的,在图中所示的任何开关仅仅是概念上的。它们的功能可以通过程序逻辑的操作、通过专用的逻辑、通过程序控制和专用逻辑的交互,或者甚至通过手动来进行,具体的技术是可由实施者按照从上下文中更具体的理解来选择。
在其权利要求中,表达为用于执行指定功能的手段(means)的任何元件旨在包含执行该功能的任何方式,例如包括,a)执行该功能的电路元件的组合或者b)任何形式的软件,因此包括,与执行该软件以进行该功能的合适的电路所组合的固件、微代码等等。由这样的权利要求所限定的本原理在于这样的事实,以权利要求所要求的方式将通过各种陈述的手段所提供的功能相组合并且集合在一起。由此认为能够提供这些功能的任何手段等效于在此所示的这些手段。
说明书中对于本原理的“一个实施例”或者“一实施例”以及其其它变形的引用意味着与实施例相结合地描述的具体的特性、结构、特征,等等被包括在本原理的至少一个实施例中。由此,贯穿本说明书的各个位置中出现的“一个实施例中”或“一实施例中”短语以及其其它变形的出现不一定都指代相同的实施例。
要理解,以下的“/”、“和/或”以及“…中的至少一个”中的任一个的使用,例如,在“A/B”、“A和/或B”以及“A和B的至少一个”的情形下,其旨在涵盖仅仅选择罗列的第一选项(A)、或仅仅选择罗列的第二选项(B),或者选择两个选项(A和B)。作为另一个例子,在“A、B,和/或C”以及“A、B和C的至少一个”的情形下,这样措辞旨在涵盖仅仅选择罗列的第一选项(A)、或者仅仅选择罗列的第二选项(B)、或者仅仅选择罗列的第三选项(C)、或者仅仅选择罗列的第一选项和第二选项(A和B)、或者仅仅选择罗列的第一选项和第三选项(A和C)、或者仅仅选择罗列的第二选项和第三选项(B和C),或者选择所有的三个选项(A和B和C)。如本领域和相关领域的普通技术人员易于清楚的是,这可以扩展到所罗列的许多条目。
此外,如在此使用的,单词“画面”和“图像”可互换地使用并且指代静态图像或者来自视频序列的画面。如已知的,画面可以是帧或者场。
此外,如在此使用的,短语“编码单元(CU)”指代具有方形的基本单元。尽管其具有与MPEG-4AVC标准中的宏块和子宏块类似的作用,但主要的差异在于以下事实:该编码单元可以具有各种大小,而没有对应于其大小的区别。在编码单元基础上执行除了基于帧的循环滤波之外的所有处理,包括帧内/帧间预测、变换、量化和熵编码。
此外,如在此使用的,短语“预测单元”(PU)指的是预测模式的基本单元。应注意到,PU仅是针对最后深度的CU定义的并且其大小被限制于CU的大小。在PU的基础上发信令与预测有关的所有信息。
此外,如在此使用的,短语“变换单元”(TU)指的是变换的基本单元。应注意,变换单元的大小可能大于预测单元的大小,其与之前的视频标准不同,但是变换单元不能超过编码单元的大小。然而,变换单元大小不是任意的,并且一旦对于编码单元已经定义了预测单元结构,就只有两种变换单元分区是可能的。结果,通过transform_unit_size_flag来确定编码单元中变换单元的大小。如果transform_unit_size_flag被设置为0,则变换单元的大小与该变换单元所属的编码单元的大小相同。否则,根据预测单元分割而将变换单元大小设置为N×N或者N/2×N/2。
另外,如在此使用的,短语“跳跃模式”指的是以下的预测模式,其中从运动矢量预测值中推断运动信息、并且既不发送运动信息也不发送纹理信息。
此外,要理解出于描述的简要性和清楚的目的,以通过第二种现有技术方法定义的基础而开始,并且定义新的变量、原理、语法等等,作为对第二种现有技术方法的修改。然而,对于本领域技术人员明显的是,连同本发明在此公开和描述的原理和构思可应用于任何新的或者修改的标准或者专用系统-而绝不是仅仅试图是对第二种现有技术方法的修改。其也不是试图对第一种现有技术方法、MPEG-4AVC标准,或者任何其它方法或标准的修改。
转到图3,通过参考数字300总地指示可以应用本原理的示例性视频编码器。视频编码器300包括帧排序缓冲器310,其具有与组合器385的非反向输入端信号通信的输出端。组合器385的输出端与变换器和量化器(具有多个预测值)325的第一输入端信号通信连接。变换器和量化器(具有多个预测值)325的输出端与熵编码器345的第一输入端与逆变换器和逆量化器(具有多个预测值)350的第一输入端信号通信地连接。熵编码器345的输出端与组合器390的第一非反向输入端信号通信地连接。组合器390的输出端与输出缓冲器335的第一输入端信号通信地连接。
编码器控制器305的第一输出端与帧排序缓冲器310的第二输入端、逆变换器和逆量化器(具有多个预测值)350的第二输入端、画面类型判定模块315的输入端、宏块类型(MB-类型)判定模块320的第一输入端、帧内预测模块360的第二输入端、去块滤波器365的第二输入端、运动补偿器370的第一输入端、运动估计器375的第一输入端,以及参考画面缓冲器380的第二输入端信号通信地连接。
编码器控制器305的第二输出端与补充增强信息(SEI)插入器330的第一输入端、变换器和量化器(具有多个预测值)325的第二输入端、熵编码器345的第二输入端、输出缓冲器335的第二输入端,以及序列参数集(SPS)和画面参数集(PPS)插入器340的输入端信号通信地连接。
SEI插入器330的输出端与组合器390的第二非反向输入端信号通信地连接。
画面类型判定模块315的第一输出端与帧排序缓冲器310的第三输入端信号通信地连接。画面类型判定模块315的第二输出端与宏块类型判定模块320的第二输入端信号通信地连接。
序列参数集(SPS)和画面参数集(PPS)插入器340的输出端与组合器390的第三非反向输入端信号通信地连接。
逆量化器和逆变换器(具有多个预测值)350的输出端与组合器319的第一非反向输入端信号通信地连接。组合器319的输出端与帧内预测模块360的第一输入端和去块滤波器365的第一输入端信号通信地连接。去块滤波器365的输出端与参考画面缓冲器380的第一输入端信号通信地连接。参考画面缓冲器380的输出端与运动估计器375的第二输入端和运动补偿器370的第三输入端信号通信地连接。运动估计器375的第一输出端与运动补偿器370的第二输入端信号通信地连接。运动估计器375的第二输出端与熵编码器345的第三输入端信号通信地连接。
运动补偿器370的输出端与开关397的第一输入端信号通信地连接。帧内预测模块360的输出端与开关397的第二输入端信号通信地连接。宏块类型判定模块320的输出端与开关397的第三输入端信号通信地连接。开关397的第三输入端确定该开关的“数据”输入端(与控制输入端,即第三输入端,相比)是由运动补偿器370还是由帧内预测模块360提供。开关397的输出端与组合器319的第二非反向输入端和组合器385的反向输入端信号通信地连接。
帧排序缓冲器310的第一输入端和编码器控制器305的输入端可用作编码器300的用于接收输入画面的输入端。此外,补充增强信息(SEI)插入器330的第二输入端可用作编码器300的用于接收元数据的输入端。输出缓冲器335的输出端可用作编码器300的用于输出比特流的输出端。
转到图4,通过参考数字400总地指示可以应用本原理的示例性视频解码器。视频解码器400包括输入缓冲器410,其具有与熵解码器445的第一输入端信号通信地连接的输出端。熵解码器445的第一输出端与逆变换器和逆量化器(具有多个预测值)450的第一输入端信号通信地连接。逆变换器和逆量化器(具有多个预测值)450的输出端与组合器425的第二非反向输入端信号通信地连接。组合器425的输出端与去块滤波器465的第二输入端和帧内预测模块460的第一输入端信号通信地连接。去块滤波器465的第二输出端与参考画面缓冲器480的第一输入端信号通信地连接。参考画面缓冲器480的输出端与运动补偿器470的第二输入端信号通信地连接。
熵解码器445的第二输出端与运动补偿器470的第三输入端、去块滤波器465的第一输入端和内部预测器460的第三输入端信号通信地连接。熵解码器445的第三输出端与解码器控制器405的输入端信号通信地连接。解码器控制器405的第一输出端与熵解码器445的第二输入端信号通信地连接。解码器控制器405的第二输出端与逆变换器和逆量化器(具有多个预测值)450的第二输入端信号通信地连接。解码器控制器405的第三输出端与去块滤波器465的第三输入端信号通信地连接。解码器控制器405的第四输出端与帧内预测模块460的第二输入端、运动补偿器470的第一输入端和参考画面缓冲器480的第二输入端信号通信地连接。
运动补偿器470的输出端与开关497的第一输入端信号通信地连接。帧内预测模块460的输出端与开关497的第二输入端信号通信地连接。开关497的输出端与组合器425的第一非反向输入端信号通信地连接。
输入缓冲器410的输入端可用作解码器400的用于接收输入比特流的输入端。去块滤波器465的第一输出端可用作解码器400的输出端,用于对输出画面进行输出。
如上所注意的,本原理针对从多个相邻量化参数中确定量化参数预测值的方法和装置。
关于前述的第一和第二种现有技术方法,注意到同样支持在块级别上调节量化参数,其中块可以是宏块、大块(如在第一现有技术方法中的),或者编码单元(如在第二现有技术方法中的)。对量化参数值进行差分(differentially)编码。在MPEG-4AVC标准和第一种现有技术方法中,使用当前码片中编码顺序中前一个块的量化参数作为预测值。在第二种现有技术方法中,码片量化参数用作预测值。
根据本原理,提供了使用相邻编码块的多个量化参数来确定量化参数预测值的方法和装置。通过编码器和解码器二者已知的规则来定义量化参数预测值计算。这种方案相对于现有方案的一个益处在于减少了向解码器发信令量化参数所需的开销。
通常调节量化参数来满足目标比特率或者适配于内容以便提高视觉质量。这导致各编码单元之间的QP变化。出于描述本原理的目的,单词“(多个)编码单元”意味着包括图像分区和区域的宽泛范围,其中图像分区和区域包含但不限于块、宏块、超块、超宏块、子宏块、子块、图像分区、图像几何分区、图像区域、预测单元、和变换单元。为了减少在发信令QP差上的开销成本,公开和描述了提高QP预测值性能的方法和装置。在编码器和解码器二者处使用相同的方法,通过来自之前编码/解码的编码单元的相邻块中的多个QP形成QP预测值,由此减少所需的发信令的开销。
转向图5,通过参考数字500来总地指示视频编码器中的示例性的量化参数编码过程。方法500包括开始块505,其将控制传递给循环限制块510。循环限制块510使用范围从1到编码单元的数目(#)的变量i开始循环,并且将控制传递给功能块515。功能块515使用之前编码的编码单元的多个QP形成QP预测值(QPPRED),并且将控制传递给功能块520。功能块520将每个编码单元的QP设置为QPCU,并且将控制传递给功能块525。功能块525编码delta_QP=QPCU-QPPRED,并且将控制传递给功能块530。功能块530对编码单元i进行编码,并且将控制传递给循环限制块535。循环限制块535结束对编码单元的循环,并且将控制传递给结束块599。关于功能块515,可以使用用于运动矢量预测的相同的编码单元来形成预测值QPPRED。例如,可以使用用于形成MPEG-4AVC标准中的中间运动矢量的编码单元,或者用于运动矢量竞争的编码单元。
转向图6,通过参考数字600来总地指示视频解码器中的示例性的量化参数解码过程。方法600包括开始块605,其将控制传递给循环限制块610。循环限制块610使用范围从1到编码单元的数目(#)的变量i开始循环,并且将控制传递给功能块615。功能块615使用之前解码的编码单元的多个QP形成QP预测值(QPPRED),并且将控制传递给功能块620。功能块620解码delta_QP,并且将控制传递给功能块625。功能块625将每个编码单元的QP设置为QPCU=delta_QP+QPPRED,并且将控制传递给功能块630。功能块630解码编码单元i,并且将控制传递给循环限制块635。循环限制块635结束对编码单元的循环,并且将控制传递给结束块699。关于功能块615,可以使用用于运动矢量预测的相同的编码单元来形成预测值QPPRED。例如,可以使用用于形成MPEG-4AVC标准中的中间运动矢量的编码单元,或者用于运动矢量竞争的编码单元。
QP预测值(QPPRED)推导
下文中,公开和描述了形成QP预测值的方案。在编码器和解码器二者处使用相同的方法用于同步性。
在感兴趣的区域中提供高感知质量在整个感知质量中具有显著的影响。因此,QP调节中总的方针是向感兴趣的区域指定较低的QP以提高感知质量并且向其它区域指定较高大的QP以减少比特数目。由于画面内容具有大的连续性,相邻编码单元的QP通常是相关的。在现有技术中,利用了当前QP和之前编码的块的QP的相关性。由于QP还可以与来自其它相邻块的QP相关,因此通过考虑更多的QP来改进QP预测值。转到图7,通过参考数字700总地指示示例性的相邻编码单元。相邻编码单元700包括以下:由A指示的左侧相邻编码单元;由B指示的顶部相邻编码单元;由C指示的右上侧相邻编码单元;以及由D指示的左上侧相邻编码单元。使用相邻编码单元A到D形成用于由E指示的当前编码单元的QP预测值。在一个示例中,A、B、C和D的定义与用于MPEG-4AVC标准运动矢量预测的块相同。还可以包括来自其它相邻编码单元的更多QP来获得QP预测值。
将根据编码器和解码器二者已知的规则来形成QP预测值。使用编码单元A、B和C处的QP,提供了几个示例性规则如下:
·规则1:QPPRED=median(QPA,QPB,QPC);
·规则2:QPPRED=min(QPA,QPB,QPC);
·规则3:QPPRED=max(QPA,QPB,QPC);
·规则4:QPPRED=mean(QPA,QPB,QPC)或QPPRED=mean(QPA,QPB);
如果不是所有的编码单元(A,B,C)可用,则可以利用SliceQPY替换它们的QP,或者仅使用可用的QP来形成预测值。例如,当编码单元A不可用时,规则2变成QPPRED=min(QPB,QPC)。在另一示例中,当不是所有的编码单元可用时,可以利用其它块的QP来替换缺失的QP,例如使用块D来替换块C。
MPEG-4AVC标准中的运动矢量预测共享使用其相邻运动矢量的中间矢量来生成运动矢量预测值的类似基本原理。编码运动矢量和运动矢量预测值之间的差并且在比特流中进行发送。为了使得运动矢量和QP二者的预测处理统一化,当在INTER模式下编码块时,一个实施例要使用相同的相邻编码单元来预测运动矢量和QP这二者。
已经提供了VCEG“关键技术领域”(KTA)软件(KTA软件版本KTA2.6)作为公共平台以便在完成了MPEG-4AVC标准之后在视频编码中集成新进展。在KTA中采用了使用运动矢量竞争的建议。在运动矢量竞争方案中,编码块具有一组运动矢量预测值候选者,其包括空间上或者时间上相邻块的运动矢量。基于率失真优化从候选组中选择最好的运动矢量预测值。如果该组具有不止一个候选者,则显式地将该组中的运动矢量预测值的索引传送给解码器。为了使得运动矢量和QP二者的预测处理统一化,当在INTER模式下编码块时,一个实施例涉及使用相同的相邻编码单元来预测运动矢量和QP这二者。由于已经发送了运动矢量预测值的索引用于运动矢量竞争,所以不需要额外的开销用于QP预测值。
变形1实施例-预测单元的QP调节
编码单元可能如128x128一样大。这转化为在画面中具有非常少的编码单元。为了精确地满足目标比特率,编码单元之间的QP变化可能很大。使得QP变化平滑的一种解决方案是在预测单元而不是编码单元处应用QP调节。在预测单元不是处于跳跃模式时,仅仅需要发送QP差。
转向图8,通过参考数字800来总地指示视频编码器中的另一示例性的量化参数编码过程。要理解,方法800涉及在预测单元处的QP调节。方法800包括开始块805,其将控制传递给循环限制块810。循环限制块810使用范围从1到预测单元的数目(#)的变量i开始循环,并且将控制传递给功能块815。功能块815使用之前编码的预测单元的多个QP形成QP预测值(QPPRED),并且将控制传递给功能块820。功能块820将每个预测单元的QP设置为QPPU,并且将控制传递给功能块825。功能块825编码delta_QP=QPPU-QPPRED,并且将控制传递给功能块830。如果预测单元i不处于跳跃模式中,则功能块830对预测单元i进行编码,并且将控制传递给循环限制块835。循环限制块835结束对预测单元的循环,并且将控制传递给结束块899。关于功能块815,可以使用用于运动矢量预测的相同的预测单元来形成预测值QPPRED。例如,可以使用用于形成MPEG-4AVC标准中的中间运动矢量的预测单元,或者用于运动矢量竞争的预测单元。
转向图9,通过参考数字900来总地指示视频解码器中的另一示例性的量化参数解码过程。要理解,方法900涉及在预测单元处的QP调节。方法900包括开始块905,其将控制传递给循环限制块910。循环限制块910使用范围从1到预测单元的数目(#)的变量i开始循环,并且将控制传递给功能块915。功能块915使用之前解码的预测单元的多个QP形成QP预测值(QPPRED),并且将控制传递给功能块920。功能块920解码delta_QP,并且将控制传递给功能块925。功能块925将每个预测单元的QP设置为QPPU=delta_QP+QPPRED,并且将控制传递给功能块930。如果预测单元i不处于跳跃模式中,则功能块930解码预测单元i,并且将控制传递给循环限制块935。循环限制块935结束对预测单元的循环,并且将控制传递给结束块999。关于功能块915,可以使用用于运动矢量预测的相同的预测单元来形成预测值QPPRED。例如,可以使用用于形成MPEG-4AVC标准中的中间运动矢量的预测单元,或者用于运动矢量竞争的预测单元。
变形2实施例-变换单元的QP调节
类似于变形1,可以在变换单元处应用QP调节。当在变换单元中存在非零变换系数时,仅仅需要发送QP差。
转向图10,通过参考数字1000来总地指示视频编码器中的又一示例性的量化参数编码过程。要理解,方法1000涉及在变换单元处的QP调节。方法1000包括开始块1005,其将控制传递给循环限制块1010。循环限制块1010使用范围从1到变换单元的数目(#)的变量i开始循环,并且将控制传递给功能块1015。功能块1015使用之前编码的变换单元的多个QP形成QP预测值(QPPRED),并且将控制传递给功能块1020。功能块1020将每个变换单元的QP设置为QPTU,并且将控制传递给功能块1025。功能块1025编码delta_QP=QPTU-QPPRED,并且将控制传递给功能块1030。如果变换单元i具有非零系数,则功能块1030对变换单元i进行编码,并且将控制传递给循环限制块1035。循环限制块1035结束对变换单元的循环,并且将控制传递给结束块1099。关于功能块1015,可以使用用于运动矢量预测的相同的变换单元来形成预测值QPPRED。例如,可以使用用于形成MPEG-4AVC标准中的中间运动矢量的变换单元,或者用于运动矢量竞争的变换单元。
转向图11,通过参考数字1100来总地指示视频解码器中的又一示例性的量化参数解码过程。要理解,方法1100涉及在变换单元处的QP调节。方法1100包括开始块1105,其将控制传递给循环限制块1110。循环限制块1110使用范围从1到变换单元的数目(#)的变量i开始循环,并且将控制传递给功能块1115。功能块1115使用之前解码的变换单元的多个QP形成QP预测值(QPPRED),并且将控制传递给功能块1120。功能块1120解码delta_QP,并且将控制传递给功能块1125。功能块1125将每个变换单元的QP设置为QPTU=delta_QP+QPPRED,并且将控制传递给功能块1130。如果变换单元i具有非零系数,则功能块1130解码变换单元i,并且将控制传递给循环限制块1135。循环限制块1135结束对变换单元的循环,并且将控制传递给结束块1199。关于功能块1115,可以使用用于运动矢量预测的相同的变换单元来形成预测值QPPRED。例如,可以使用用于形成MPEG-4AVC标准中的中间运动矢量的变换单元,或者用于运动矢量竞争的变换单元。
语法
使用变换单元处的QP调节作为示例,来描述怎样设计应用于本原理的语法。使用语法元素TU_delta_QP来指定当前变换单元的QP和QP预测值之间的QP差。也可以在预测单元或者编码单元处指定QP差。表1示出了根据本原理的实施例的、变换单元中的示例性语法。
表1
表1中所示的语法元素TU_delta_QP的语义如下:
TU_delta_QP指定了当前变换单元的QP(QPTU)和QP预测值(QPPRED)之间的QP差的值。变换单元的QP(QPTU)被推导为QPTU=QPPRED+TU_delta_QP。在变换单元中存在非零系数(即,code_block_flag不为零)时,仅仅需要TU_delta_QP。
现在将给出对本发明的许多伴随优点/特征中的一些的描述,它们中的一些已经在上面提及到。例如,一个优点/特征是一种具有编码器的装置,所述编码器使用要应用到画面的至少一部分的图像数据的当前量化参数的量化参数预测值来对所述图像数据进行编码,所述量化参数预测值是使用来自之前编码的相邻部分的多个量化参数而确定的,其中编码当前量化参数和量化参数预测值之间的差用于发信令给对应的解码器。
另一优点/特征是具有上述编码器的装置,其中基于编码器和解码器二者已知的规则来隐式地推导量化参数预测值。
另一优点/特征是具有上述编码器的装置,其中如上所述基于编码器和解码器二者已知的规则来隐式地推导量化参数预测值,其中该规则是用于响应于以下的至少一项量化参数而进行确定量化参数预测值和选择量化参数预测值中的至少一项:具有来自多个量化参数中的最小值的量化参数、具有来自多个量化参数中的最大值的量化参数、从多个量化参数中的至少一些的中间值计算的量化参数,以及从多个量化参数中的至少一些的平均值计算的量化参数。
又一优点/特征是具有上述的编码器的装置,其中从与用于运动矢量预测的画面的相同部分对应的一个或更多量化参数中选择量化参数预测值,所述一个或更多量化参数在所述多个量化参数中。
此外,另一优点/特征是具有上述的编码器的装置,其中从与用于运动矢量预测的画面的相同部分对应的一个或更多量化参数中选择量化参数预测值,如上所述所述一个或更多量化参数在所述多个量化参数中,其中使用运动矢量竞争来确定运动矢量预测值。
另外,另一优点/特征是具有上述的编码器的装置,其中图像数据是编码单元、预测单元,和变换单元之一。
此外,另一优点/特征是具有上述的编码器的装置,其中如上所述图像数据是编码单元、预测单元,和变换单元之一,其中图像数据是预测单元,并且在预测单元处于非跳跃模式时,仅仅对当前量化参数和量化参数预测值之间的差进行编码,用于发信令给对应的解码器。
另外,另一优点/特征是具有上述编码器的装置,其中图像数据是变换单元,并且在变换单元包括非零系数时,仅仅对当前量化参数和量化参数预测值之间的差进行编码,用于发信令给对应的解码器。
相关领域的普通技术人员基于在此的教导可以很容易地确认本原理的这些和其它特性以及优点。要理解的是可以以各种形式的硬件、软件、固件、专用处理器或其组合来实现本原理的教导。
最优选地,将本原理的教导实现为硬件和软件的组合。而且,可以将该软件实现为在程序存储单元上有形体现的应用程序。可以将该应用程序上载到包括任何合适架构的机器,并由其执行。优选地,在具有诸如一个或多个中央处理单元(“CPU”)、随机存取存储器(“RAM”)、以及输入/输出(“I/O”)接口之类的硬件的计算机平台上实现该机器。该计算机平台还可以包括操作系统和微指令代码。在此描述的各种处理和功能可以是由CPU可以执行的微指令代码的一部分、或者应用程序的一部分、或者是它们的任何组合。此外,诸如附加数据存储单元和打印单元之类的各种其它的外设单元可与该计算机平台连接。
还要理解的是因为优选地以软件实现附图中描绘的一些组成系统组件和方法,所以取决于对本原理进行编程的方式,系统组件或处理功能块之间的实际连接可能有所不同。给出在此的教导,相关领域的普通技术人员将能够设想到本原理的这些和类似的实现或配置。
虽然参照附图在此已经描述了说明性的实施例,但应当理解的是本原理不限于这些明确的实施例,并且相关领域的普通技术人员可以在其中实施各种改变和修改而不脱离本原理的范围或精神。所有这种改变和修改旨在被包括在所附的权利要求中所阐述的本原理的范围内。