减少用于上下文自适应熵解码中的行缓存的方法及装置与流程

文档序号:11778945阅读:334来源:国知局
减少用于上下文自适应熵解码中的行缓存的方法及装置与流程

相关申请的交叉引用

本申请的权利要求范围要求如下申请的优先权:2011年5月27日递交的申请号为61/490,805,标题为「reductionofdecoderlinebufferforcavlcandcabac」的美国临时案;2011年9月13日递交的申请号为61/533,895,标题为「reductionofdecoderlinebufferforcavlcandcabac」的美国临时案。在此合并参考这些申请案的全部内容。

本发明有关于减少用于上下文自适应熵处理的行缓存的方法,更具体地,本发明有关于减少用于上下文自适应熵处理的行缓存的方法及对应的装置。



背景技术:

在视频编码中,相邻区块的区块信息常用于预测当前区块的语法元素(syntaxelement),例如运动数据(motiondata)。相邻区块通常对应于先前已处理的区块,以使得无需边信息(sideinformation)或仅需最少的边信息(sideinformation)即可在解码器端(decoderside)推导相邻区块的信息。可利用下层区块(underlyingblock)和相邻区块之间的相关性来改进熵编码(entropycoding,ec)的编码效率。而为了利用下层区块和相邻区块区块之间的相关性,在新的视频编码系统(如h.264)和新兴的高效视频编码(highefficiencyvideocoding,hevc)系统中已广泛地使用基于上下文的自适应熵编码(context-basedadaptiveentropycoding)(也称为上下文自适应熵编码)。存在两种类型的ec模式。一种模式为基于上下文自适应二进制算术编码(context-basedadaptivebinaryarithmeticcoding,cabac),而另一种模式为基于上下文自适应变长编码(basedadaptivevariablelengthcoding,cavlc)。在cabac和cavlc中,通常使用来自相邻块的信息作为上下文用于对当前块的语法元素进行熵编码。

相邻区块可为当前区块的上边(upperside)及/或左边(leftside)。当以光栅扫描顺序(rasterscanorder)对图像中的区块进行处理时,可能需要行缓冲(linebuffer)以在先前行(previousrow)中存储相应于区块的信息。例如,hevc测试模型版本3(hevctestmodelversion3.0,hm-3.0)中使用的处理单元可对应为编码单元(codingunit,cu)、预测单元(predictionunit,pu)、转换单元(transformunit,tu)或最大编码单元(largestcodingunit,lcu)。在对当前区块的运动矢量差(motionvectordifference,mvd)进行cavlc编码的情形中,需要左区块和上区块的mv用作上下文信息。因此,如果处理顺序为逐个lcu行地进行,则需要缓存lcu的先前行中相应于区块的运动矢量的信息。在hevc中,cabac和cavlc用于编码相应于区块的各种语法元素。行缓存的尺寸(size)可为非常大,尤其是对于大尺寸的图片。因此,需要产生减少用于依据相邻区块的处理的行缓存的需求,其中,依据相邻区块的处理可例如cabac和cavlc。



技术实现要素:

有鉴于此,本发明提供一种减少用于上下文自适应熵处理的行缓存的方法及装置。

本发明提供一种减少用于上下文自适应熵解码的行缓存的方法,该减少用于上下文自适应熵解码的行缓存的方法包括:依据相应于相邻区块的区块信息确定用于处理区域中当前区块的语法元素的上下文,其中该区域对应于最大编码单元的行;如果该相邻区块相对于该当前区块位于该区域的区域边界的上边,以替换区块信息来替换相应于该相邻区块的该区块信息;以及根据该上下文执行该语法元素的上下文自适应熵解码。

本发明还提供一种减少用于上下文自适应熵解码中的行缓存的装置,该减少用于上下文自适应熵解码中的行缓存的装置包括一个或多个电子电路,用于:依据相应于相邻区块的区块信息确定用于处理区域中当前块的语法元素的上下文,其中该区域对应于最大编码单元的行;如果该相邻区块相对于该当前区块位于该区域的区域边界的上边,以替换区块信息来替换相应于该相邻区块的该区块信息;以及根据该上下文执行该当前语法元素的上下文自适应熵解码。

本发明提供的减少用于上下文自适应熵处理的行缓存的方法及装置可有效地减少或移除行缓存需求。

附图说明

图1a为具有df、sao及alf内环路处理的自适应外部/内部视频编码系统的示意图;

图1b为具有df、sao及alf内环路处理的自适应外部/内部视频解码系统的示意图;

图2为使用相应于两个相邻区块的区块信息的示例性基于上下文的语法元素处理的示意图;

图3为用于基于上下文熵编码的关于lcu行边界的行缓存需求的示意图;

图4为用于基于上下文熵编码的关于片列边界的列缓存需求的示意图;

图5为图像的区域划分的示意图;

图6为根据本发明一个实施例的移除行缓存需求的方法。

具体实施方式

图1a为示例自适应外部/内部视频编码系统的示意图,该外部/内部视频编码系统包括内环路处理(in-loopprocessing)。对于内部预测而言,运动估计(motionestimation,me)/运动补偿(motioncompensation,mc)用于根据来自其他图像的视频数据提供预测数据。开关114选择内部预测110或外部预测数据,且将所选择的数据提供至加法器(adder)116以形成预测误差(predictionerror),也称为残差(residue)。然后转换器(transformation,t)118以及随后的量化器(quantization,q)120对预测误差进行处理。然后熵编码器(entropyencoder)122对转换和量化后的残差进行编码以形成对应于压缩视频数据的视频比特率。然后将相应于转换系数(transformcoefficient)的比特流与边信息(sideinformation)封装在一起,其中,边信息可例如相应于视频数据的运动、模式和其他信息。边信息也可根据熵编码而变化以减少所需带宽。然后,将相应于边信息的数据提供至如图1a所示的熵编码器122。当使用外部预测模式时,也需要在编码器端重构(reconstruct)参考图像。因此,由反量化器(inversequantization,iq)124和反转换器(inversetransformation,it)126对转换和量化后的残差进行处理以对残差进行恢复。然后将残差加回至重构器(reconstruction,rec)128的预测数据136以对视频数据进行重构。可在参考图像缓存(referencepicturebuffer)134中存储重构视频数据并用于预测其他帧。

如图1a所示,输入的视频数据在编码系列中经过一系列的处理。而由于一系列的处理,来自rec128的重构视频数据可能遭受各种损失(impairment)。相应地,为了改进视频质量则在将重构视频数据存储在参考图像缓冲134中之前对重构视频数据运用各种内环路处理。在不断发展的hevc标准中,已开发出解区块滤波器(deblockingfilter,df)130、样本自适应偏差器(sampleadaptiveoffset,sao)131、以及自适应环路滤波器(adaptiveloopfilter,alf132)用于增强图像质量。内环路滤波信息必须包括在比特流中以使解码器可恰当地恢复所需信息。因此,将来自aso和alf的内环滤波信息提供至熵编码器122以用于将内环滤波信息包括至比特流中。在图1a中,首先对重构视频运用df130;然后对经过df处理的视频运用sao131;以及对经过sao处理的视频运用alf132。然而,可对df、sao及alf之间的处理顺序进行重排序。

图1b为与图1a的编码器对应的解码器的示意图。视频解码器142对视频比特流进行解码以恢复转换和量化后的残差、sao/alf信息和其他系统信息。在解码器端,仅可执行mc113,而并非可执行me/mc。编码解码处理类似于在编码器端的重构环路。重构的转换和量化后残差、sao/alf信息和其他系统信息用于重构视频数据。重构视频更由df130、sao131及alf132处理以产生最终的改进的解码视频。

图1a中的熵编码器122和图1b中的熵解码器142支持cabac及/或cavlc以用于编码系统中使用的各种语法元素。除残差信息以外,相应的边信息(例如运动信息、sao信息及alf信息)也包括在比特流中。为了有效地表示边信息,如图1a和图1b所示也使用cabac或cavlc对边信息进行处理。

图2为根据两个相邻区块的上下文自适应处理的示意图,该上下文自适应处理对应于hm-3.0的运动矢量差(motionvectordifference,mvd)的cabac编码。当前区块的mvd是由cabac处理的,且上下文信息需要左区块和上区块的mvd用作上下文信息。由于对lcu的处理时以光栅扫描的顺序进行的,因此用于存储左区块信息的缓存非常小且容易以片上存储器(on-chipmemory)来实现,其中,片上存储器并不会增加任何外部存储存取。然后,对于上区块信息而言,需要行缓存以存储来自上方的lcu行的信息,其中,行缓存的大小与图像宽度成正比。如果使用片上行缓存,则会显著增加新品面积与成本。而如果将行缓存实现为外部存储器,则会显著增加外部存储器带宽。因此,需要设计视频的编码和解码算法,可实现减少行缓存的需求。

在上述实例中,如图2所示,cabac的上下文是根据左区块和上区块的mvd。用于形成上下文的信息可包括分割标志(split_flag)、跳过标志(skip_flag)、运动信息、编码模式、外部预测方向、参考索引(referenceindex)、亮度内部模式(lumaintramode)、色度内部模式(chromaintramode)以及分区信息(partitioninformation)。表格1显示了用于各种语法元素的cabac/cavlc编码的示例和行缓存中存储的所需信息。例如,当使用cabac对分割标志进行熵编码时,需要在行缓存中存储相邻区块的深度信息以用于下一lcu行。又例如,当使用cabac或cavlc对合并索引进行熵编码时,需要在行缓存中存储相邻区块的mv和参考索引以用于下一lcu行。如表格1所示,行缓存中存储的上下文包括由cabac或cavlc处理的语法元素以及可能并不由cabac或cavlc处理的其他块信息。

尽管表格1显示了由cabac或cavlc处理的一些示例语法元素,其他的语法元素也可由cabac或cavlc进行处理。可由cabac或cavlc处理的其他语法元素包括分区大小(partitionsize)、预测模式、运动矢量差,德尔塔量化参数(deltaquantizationparameter)、重要标志、最不重要标志、大于1的系数,幅度减一的系数(coefficient-magnitude-minus-one)、自适应环路滤波器(adaptiveloopfilter,alf)控制标志、alf标志、alf滤波长度、alf滤波系数、sao标志、sao滤波长度、sao滤波系数、转换细分标志(subdivisionflag)、残差四叉树(quad-tree)编码区块标志(codedblockflag,cbf)以及残差四叉树根(root)cbf。如表格1所示,行缓存中存储的信息为重要的。需要减少或移除对行缓存的需求。

表格1

用于视频处理的区块可为用于运动预测的预测单元(predictionunit,pu)、用于转换处理的转换单元(transformunit,tu)、编码单元(codingunit,cu)、lcu或其他区块结构。通常,hevc视频编码系统在图像中以lcu为基础处理下层图像,并以光栅扫描顺序,即从图像的顶端至底部逐行地处理图像中的lcu。由于当前区块在用于cabac或cavlc的上下文信息上依赖于相邻区块,因此需要存储先前lcu的信息。图3为图像的luc行边界的示意图,其中,其中,每个正方形对应一个lcu。可适应性地将lcu划分为更小的处理单元(例如cu)。对于紧邻lcu边界下方的区块,对当前区块的语法元素的基于上下文的处理可能需要相应于lcu边界上方的区块的信息。因此,需要行缓存以存储相应于lcu边界上方的区块的信息。行缓存需求随图像宽度而线性增长。对于宽图像,存储需求变得非常重要。

如图3所示尽管图像可以划分为多个lcu并对lcu进行逐行处理,如图4所示,图像也可以划分为垂直片(verticaltile),其中的每个正方形代表一个lcu。图4为图像的luc列边界的示意图。对图像进行从左到右逐片地处理。由于当前区块在用于cabac或cavlc的上下文信息上依赖于相邻区块,因此如果用于垂直片边界的区块的上下文信息需要来自左区块的信息,则需要存储先前片的信息。因此,使用列缓存(columnbuffer),且该缓存的大小与图像高度成正比。列缓存可看作垂直的行缓存。因此,在本发明的揭露书中行缓存也指列缓存。

在将图像划分为多个区域的情况下,也可逐个区域地对图像进行处理。每个区域可包括m*n个区块、cu或lcu。可根据光栅扫描顺序对区域进行处理。或者,可从左至右逐列对区域进行扫描。在一种极端情况中,在图像高度中n等于lcu的数目。换言之,区域对应于片。在另一种极端情况中,在图像宽度中m等于lcu的数目。换言之,区域对应于一或多个lcu列。图5为图像的区域划分的示意图,其中每个正方形为lcu,且区域大小在图像中可变化。对于急于区域的处理,需要列缓存(即垂直的行缓存),其中列缓存大小与垂直区域大小成正比。此外,除列缓存以外,也需要行缓存。如前所述,“行缓存”一词可表示行缓存及/或垂直的行缓存。同时也应理解,行的大小并不一定指图像的宽度。

为移除行缓存需求,当上区块不在当前lcu行中时,根据本发明的一个实施例通过lcu行基础的处理修改lcu的上下文信息。如果上区块不属于当前lcu行,则相应于上区块的信息不用于上下文信息。在此情形中,可将上区块作为不可用或者以当前lcu行中的任何其他因果区块(causalblock)替换该上区块。因果区块为先前处理过的区块。因而,不需要行缓存用于cabac或cavlc。例如,如图2所示,hevc中使用cabac或cavlc的亮度内部模式编码/解码需要上区块的亮度内部模式和左区块的亮度内部模式。当上区块不在当前lcu行中时,根据本发明的一个实施例将上区块作为不可用。如果上区块的值不可用,可使用预定义值或用户定义值。例如,在内部亮度预测模式的cabac编码的情况中,可使用dc模式或平面模式(planarmode)作为预定义模式用于lcu行边界之上的上区块。也可使用其他预定义的内部亮度模式。

类似地,对于图4中所示的基于片的处理,对于根据本发明的一个片的待处理单元(例如cu或pu或tu)的cabac或cavlc处理将不会使用来自左边片的任何数据作为上下文信息。如果左区块并不属于当前片,则相应于左区块的信息并不用作上下文信息。在此情况中,可将左区块作为不可用或者以当前lcu行中的任何其他因果区块替换该左区块。因此,不需要列缓存(即垂直行缓存)用于cabac或cavlc。例如,如图2所示,hevc中使用cabac或cavlc的亮度内部模式编码/解码需要上区块的亮度内部模式和左区块的亮度内部模式。当左区块不在当前片中时,根据本发明的一个实施例将左区块作为不可用。如果左区块的值不可用,可使用预定义值或用户定义值。例如,在内部亮度预测模式的cabac编码的情况中,可使用dc模式或平面模式作为预定义模式用于片边界的左边的左区块。也可使用其他内部亮度模式。

当将图像划分为多个区域时,可能需要用于垂直区域边界和水平区域边界的行缓存。可将前面揭示的用于移除相应于水平lcu行的行缓存和相应于垂直片边界的行缓存的本发明实施例运用于基于区域的cabac和cavlc处理以移除行缓存需求。

图6为根据本发明一个实施例的移除行缓存需求的方法,其中,该行缓存需求有关于基于上下文熵编码的区域边界。在步骤610中确定用于处理区域中的当前块的当前语法元素的上下文信息,其中,该上下文信息依据相应于相邻区块的区块信息。在步骤620中,如果相邻区块相对于当前区块位于区域边界不同边,则以替换区块信息来替换相应于相邻区块的区块信息。在完成上下文信息之后,在步骤630中根据上下文信息执行当前语法元素的上下文自适应熵处理。图6中的流程图显示了根据本发明的一个实施例的行缓存减少的实例。本领域的技术人员也可通过重排顺序及/或修改各个步骤来实作本发明以实现相同的效果。

上述的根据本发明的减少用于自适应熵处理的行缓存的实施例可以各种硬件、软件代码或两者的组合执行。例如,本发明的一个实施例可为集成在视频压缩芯片中的电路或集成在视频压缩软件中的程序代码以执行实施例中所述的处理。本发明的一个实施例也可为数字信号处理器(digitalsignalprocessor,dsp)上执行的程序代码以执行实施例中所述的处理。本发明也关于由计算机处理器、dsp、微处理器或场可编码门阵列(fieldprogrammablegatearray,fpga)执行的多个功能。根据本发明,通过执行定义本发明所包括的特定方法的机器可读软件代码或固件代码,可配置这些处理器执行特定任务。可在不同程序语言和不同格式或风格中开发软件代码或固件代码。也可对不同目标平台编译软件代码。然而,根据本发明不同编码格式、风格和软件代码语言以及为执行任务的配置代码的其他方式都不得脱离本发明的精神与范围。

不脱离本发明精神或本质特征的其他特定形式可包括在本发明中。所述实施例仅用于从各个角度进行考虑而并不用于限制本发明。因此,本发明的范围是由后附的权利要求所限定而并非由前述所限制。在权利要求的意义范围内或等同范围之内的所有变化都包括在本发明范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1