用于亮度和色度分量的样本自适应偏移的方法和装置与流程

文档序号:13146579阅读:291来源:国知局
交叉引用本申请要求下述美国临时申请案的优先权:2011年5月16日递交的申请号为61/486,504,发明名称为“SampleAdaptiveOffsetforLumaandChromaComponents”的美国临时申请案;以及2011年6月20日递交的申请号为61/498,949,发明名称为“LCU-basedSyntaxforSampleAdaptiveOffset”的美国临时申请案;2011年7月1日递交的申请号为61/503,870,发明名称为“LCU-basedSyntaxforSampleAdaptiveOffset”的美国临时申请案。本申请还要求下述美国专利申请案的优先权:2011年6月12日递交的申请号为13/158,427,发明名称为“ApparatusandMethodofSampleAdaptiveOffsetforVideoCoding”的美国专利申请案;2011年12月6日递交的申请号为13/311,953,发明名称为“ApparatusandMethodofSampleAdaptiveOffsetforLumaandChromaComponents”的美国专利申请案。本申请在此合并参考上述美国临时申请案及专利申请案。技术领域本发明有关于视频处理,特别是有关于包括样本自适应偏移(sampleadaptiveoffset,SAO)补偿和自适应回路滤波(adaptiveloopfilter,ALF)的自适应环路滤波(adaptivein-loopfiltering)装置和方法。

背景技术:
在视频编码系统中,视频数据被进行多种处理如:预测、转换、量化、解块、以及自适应回路滤波。沿着视频编码系统的处理路径,因为在视频数据上进行上述操作,已处理的视频数据的某些特征可能从原始视频数据被改变。如:已处理的视频的平均值可能发生偏移。强度偏移可能导致视觉损害或者伪影(artifacts),尤其是当从帧到帧变化时,强度偏移更加明显。因此,像素强度偏移需被小心补偿或者恢复以减轻伪影。在此领域,一些强度补偿方案已经被使用。例如:一种称为样本自适应偏移(sampleadaptiveoffset,SAO)的强度偏移方案,该强度补偿方案一般依据上下文选择,将已处理视频数据中的每一像素分类至多个类别中的一个。传统的SAO方案仅应用于亮度分量(lumacomponent)。需要扩展SAO方案同样应用于处理色度分量(chromacomponent)。SAO方案通常需要结合视频比特流(bitstream)中包含的SAO信息(例如,将画面或片(slice)进行分块的分区信息(partitioninformation)、以及每个块的SAO偏移值),以使解码器能够适当的操作。SAO信息可能会占据压缩视频的比特率的相当一部分,并且需要开发高效的编码包含SAO信息的方法。除了SAO,自适应回路滤波是另一种类型的环路滤波(in-loopfilter),通常应用于重构视频(reconstructedvideo)以提高视频质量。相似地,需要将自适应回路滤波应用于处理色度分量以提高视频质量。再者,视频比特流中需包含有自适应回路滤波信息(例如,分区信息以及滤波参数),以使解码器能够适当的操作。因此,也需要开发高效的编码包含自适应回路滤波信息的视频比特流的方法。

技术实现要素:
本发明提供一种在视频解码器中使用环路滤波处理重构视频的方法装置。根据本发明的实施例的方法和装置包括:从视频比特流获取重构视频数据,其中所述重构视频数据包括亮度分量和多个色度分量;如果在所述视频比特流中的亮度环路滤波指示表明环路滤波处理应用于所述亮度分量,从所述视频比特流中接收色度环路滤波指示;如果所述色度环路滤波指示表明所述环路滤波处理应用于所述多个色度分量,确定色度环路滤波信息;以及如果所述色度环路滤波指示表明所述环路滤波处理应用于所述多个色度分量,根据所述色度样本环路滤波信息,应用所述环路滤波处理至所述多个色度分量。所述色度分量可使用单一色度环路滤波标记或者每一个色度分量可使用自己的环路滤波标记,以控制是否应用所述环路滤波处理。整个图像使用相同环路滤波信息。作为一种选择,图像可被划分为多个块,每个块使用自己的环路滤波信息。当所述环路滤波处理应用于块时,可以从相邻块获取当前块的环路滤波信息以提高编码效率。本发明公开了提高效率的多个实施例,其中环路滤波信息的多个方面用于以提高编码的效率,例如基于四叉树分区的属性、块的编辑条件、亮度分量和色度分量共享环路滤波信息、环路滤波信息集合的缩影、以及环路滤波信息的预测。本发明提供一种在视频解码器中使用环路滤波处理重构视频的方法装置,其中所述重构视频的图像区域划分为多个块,所述环路滤波应用于所述多个块。所述方法和装置包括:从视频比特流获取重构视频数据,其中所述重构视频数据包括重构块;如果当前重构块是新的分区,从所述视频比特流接收环路滤波信息;如果所述当前重构块不是所述新的分区,从目标块获取环路滤波信息,其中所述当前重构块与所述目标块合并,所述目标块是从对应于所述当前重构块的一个或多个相邻块的一个或多个候选块中选择出来的;以及将环路滤波处理应用于使用所述环路滤波信息的所述当前重构块。为了提高编码效率,如果存在超过一个相邻块,视频比特流中的合并标记可用于当前块,以指示相邻块中的一个共享环路滤波信息。如果只有一个相邻块,无需合并标记即可推断共享的环路滤波信息。根据四叉树分区的属性和一个或多个候选块的合并信息,候选块从与当前重构块的合并中消除以提高编码效率。本发明提供一种在对应的视频编码器中使用环路滤波处理重构视频的方法装置。此外,还提供一种在对应的视频编码器中使用环路滤波处理重构视频的方法装置,其中所述重构视频的图像区域划分为多个块,以及环路滤波应用于所述多个块。附图说明图1为包含重构回路(reconstructionloop)的视频编码器的系统框图,其中环路滤波处理包括解块滤波、样本自适应偏移以及自适应回路滤波。图2为包含重构回路的视频解码器的系统框图,其中环路滤波处理包括解块滤波、样本自适应偏移以及自适应回路滤波。图3为本发明使用相邻块A、D、B、E的信息进行SAO编码当前块C的一实施例。图4A为本发明用于SAO处理的基于四叉树(quadtree-based)的图像划分的一实施例。图4B为本发明用于SAO处理的基于LCU的图像划分的一实施例。图5A为块C允许四叉树分区的实施例,其中块A和D位于相同的分区,块B位于不同的分区。图5B为块C允许四叉树分区的另一实施例,其中块A和D位于相同的分区,块B位于不同的分区。图5C为块C不允许四叉树分区的实施例,其中块A和D位于相同的分区,块B位于不同的分区。图6A为块C允许四叉树分区的实施例,其中块B和D位于相同的分区,块A位于不同的分区。图6B为块C允许四叉树分区的另一实施例,其中块B和D位于相同的分区,块A位于不同的分区。图6C为块C不允许四叉树分区的实施例,其中块B和D位于相同的分区,块A位于不同的分区。图7为在序列参数集(SequenceParameterSet,SPS)中包括标记(flag)的语法设计(syntaxdesign),其中标记用于指示在序列中SAO是使能还是禁能的。图8为SAO参数sao_param()的语法设计,其中单独的SAO信息允许色度分量。图9为SAO分割参数sao_split_param()的语法设计,其中SAO分割参数sao_split_param()包括“分量”参数,并且“分量”可以是亮度分量或者多个色度分量中的一个。图10为SAO分割参数sao_split_param()的语法设计,其中SAO分割参数sao_split_param()包括“分量”参数,并且“分量”可以是亮度分量或者多个色度分量中的一个。图11为用于SAO种类决定的基于四叉树的图像划分的一实施例。图12A为基于图像的SAO的实施例,其中整个图像采用相同的SAO参数。图12B为基于LCU的SAO的实施例,其中每一LCU采用各自的SAO参数。图13为用于前三个LCU的SAO信息的运行示例,该运行等于2。图14为使用运行信号以及合并上方标记(merge-aboveflag)以编码共享SAO信息的实施例。图15为使用运行信号、运行预测以及合并上方标记以编码共享SAO信息的实施例。具体实施方式在高效率视频编码(HighEfficiencyVideoCoding,HEVC)领域,引入了一种称为自适应偏移(AdaptiveOffset,AO)的技术,用于补偿重构视频的偏移,并且自适应偏移技术应用于重构回路中。申请号为13/158,427,发明名称为“ApparatusandMethodofSampleAdaptiveOffsetforVideoCoding”的美国专利申请案揭露了一种偏移补偿方法和系统。该偏移补偿方法和系统将每个像素分类至一个类,并基于每个像素的分类对处理视频数据应用强度偏移补偿或修复。除了自适应偏移之外,在高效率视频编码领域,还引入了自适应回路滤波(AdaptiveLoopFilter,ALF)以提高视频的质量。自适应回路滤波运用空间滤波(spatialfilter)来重建位于重构回路中的视频。在上述发明中,AO和ALF都被认为是一种环路滤波。如图1所示的编码器的范例表示了一使用帧内/帧间预测(intra/inter-prediction)的系统。帧内预测单元110基于同一图像的视频数据,负责提供预测数据。对于帧间预测,ME/MC单元112,即运动预测(motionestimation,ME)及运动补偿(motioncompensation,MC),用于基于其它图像的视频数据提供预测数据。开关114用于选择帧内或者帧间预测数据,且被选择的预测数据提供至加法器116以产生预测误差(predictionerrors),也叫残差(residues)。该预测误差接着依次被T(transformation,转换)118及Q(quantization,量化)120处理。被转换及量化后的残差被熵编码单元122编码以形成对应于该压缩视频数据的比特流。与转换参数相关的该比特流与附加信息(sideinformation)被打包。该附加信息可以为:运动、模式和其它与图像区域相关的信息。该附加信息也被进行熵编码以减少所需带宽。如图1所示,与附加信息相关的数据被提供至熵编码单元122。当使用帧间预测模式,一参考图像或者多个参考图像在编码器端须被重构。因此,IQ(inversequantization,逆量化)124及IT(inversetransformation,逆转换)126处理该被转换及量化后的残差以恢复该残差。然后,在REC(reconstruction,重构)128,该残差被加回至该预测数据136以重构视频数据。该重构视频数据可被存储在参考图像缓存器134,且被用于预测其它帧。如图1所示,输入的视频数据在编码系统中经历了一系列处理。经过REC128的重构视频数据因为上述一系列处理可能发生强度偏移以及其它噪音。因此,在重构数据被存储至该参考图像缓存器134之前,DF(deblockingfilter,解块滤波)130及SAO(样本自适应偏移)131以及ALF(自适应回路滤波)132被应用至该重构视频数据以提高视频质量。该样本自适应偏移信息和该自适应滤波信息须在该比特流中被传输,因此解码器可以适当的恢复所需信息以应用自适应偏移和自适应滤波。因此,为并入该比特流,SAO131输出的自适应偏移信息和ALF132输出的自适应回路滤波信息被提供至熵编码器122。为了获取自适应偏移信息和自适应回路滤波信息,编码器可能需要访问原始视频数据。在图1中并未明确地绘出从输入到SAO131、ALF132之间的路径。图2为包含解块滤波及自适应回路滤波的视频解码器实施例的系统框图。因为编码器也包含本地解码器用以重构该视频数据,因此除了熵解码器222,一些解码器元件已经被使用在编码器中。进一步,仅有运动补偿单元212在解码器端被需要。开关单元214选择帧内或者帧间预测模式,且选择的预测数据被提供至REC128以与恢复的残差合并。除了对已压缩视频数据执行熵解码,熵解码单元222还熵解码附加信息且提供该附加信息至各自的块。举例来说,帧内模式信息被提供至帧内预测单元110,帧间模式信息被提供至运动补偿单元MC212,自适应偏移信息被提供至SAO131,自适应回路滤波信息被提供至ALF132,以及残差被提供至IQ124。IQ124、IT126及随后的重构处理对该残差进行处理,以重构该视频数据。再次,如图2所示,从REC128输出的重构视频数据历经包括IQ124及IT126的一系列处理后发生强度偏移。该重构视频数据进一步被解块滤波130、SAO131及ALF132处理。根据现行的HEVC标准,环路滤波仅被用于重构视频的亮度分量。同样,将环路滤波用于重构视频的色度分量也是相当有益的。用于色度分量的、与环路滤波相关的信息是相当大的。然而,色度分量通常可以压缩为比亮度分量更小的压缩数据。因此,需要开发一种有效应用环路滤波至色度分量的方法和装置。因此,本法明揭露一种有效应用于色度分量的SAO方法和装置。在本发明的一实施例中,当用于亮度分量的SAO已启动时,提供一指示(indication)以示意(signaling)用于色度分量的环路滤波是启动或关闭。如果用于亮度分量的SAO没有启动,那么用于色度分量的SAO也不会启动。因此,在这种情况下,就不需要提供指示,以示意用于色度分量的环路滤波是启动或关闭的。本实施例中的伪码(pseudocodes)的范例如下:指示用于色度分量的SAO是启动的标记称为色度环路滤波指示,因为其可以用于ALF,也可以用于SAO。SAO是环路滤波处理的一种实施例,环路滤波处理也可以是ALF。在本发明的另一实施例中,当用于亮度分量的SAO已启动时,提供各自的指示(individualindications),以示意用于多个色度分量(例如Cb和Cr)的环路滤波是启动或关闭。如果用于亮度分量的SAO没有启动,那么用于两个色度分量的SAO也不会启动。因此,在这种情况下,就不需要提供各自的指示,以示意用于两个色度分量的环路滤波是启动或关闭的。本实施例中的伪码的范例如下:如上所述,需要开发一种有效的环路滤波方法以减少数据量。例如,减少关于SAO是否启动的指示以及若SAO启动时所需的SAO参数等信息。由于相邻块通常具有相似的特征,因此相邻块可以用于减少所需的SAO信息。图3为使用相邻块来减少SAO信息的实施例。块C为SAO正在处理的当前块。如图3所示,块B、D、E和A为在块C之前处理的并且环绕块C的相邻块。基于块的语法表示当前处理块的参数。块可以是一个编码单元(codingunit,CU)、最大编码单元(largestcodingunit,LCU)、或多个最大编码单元(multipleLCUs)。采用标记来指示当前块与相邻块共享SAO参数可以减少当前块所需的比特率。如果块的处理顺序为光栅扫描顺序,那么当编码块C的参数时,块D、B、E和A的参数是可用的。当来自相邻块的参数是可用时,这些块的参数可以用于编码当前块。需要发送的用以指示共享SAO参数的标记的数据量通常远远少于SAO参数的数据量。因此,可实现高效的SAO。然而,SAO用作环路滤波来说明基于相邻块的参数共享,仅仅是作为一个范例,该技术也可以应用于其它的环路滤波,如ALF。在当前的HEVC标准中,基于四叉树的算法可以用于自适应地将图像区域划分为四个子区域,以实现更好的性能。为了维持SAO的编码增益,用于基于四叉树的SAO划分的编码算法需要被有效地设计。SAO参数(SAOP)包括类型索引(typeindex)和所选类型的偏移值。图4A和图4B为基于四叉树的SAO划分的一实施例。图4A表示将采用四叉树分区方法进行分区的图像,其中每个小正方形对应一个LCU。第一分区(深度0分区)用split_0()来表示。值0表示没有分割,值1表示应用分割。在图4B中,图像包括12个LCU,分别标记为P1、P2、……、P12。深度0四叉树分区,split_0(1)将图像分割为4部分,左上、右上、左下和右下区域。由于左下和右下区域只有一行块,因此不能进一步应用四叉树分区。因此,深度1四叉树分区只考虑左上和右上区域。图4A所示的实施例中,左上区域没有被分割,采用split_1(0)来表示;右上区域进一步被分割为四个区域,采用split_1(1)来表示。相应地,在图4A中的四叉树分区结果为7个分区,分表标记为P’0、…、P’6,其中:·P1的SAO参数与P2、P5和P6的参数相同;·P9的SAO参数与P10的SAO参数相同;以及·P11的SAO参数与P12的SAO参数相同。根据SAO的分区信息,每一个LCU可以是一个新的分区,或与其它LCU合并在一起成为一个分区。如果当前的LCU是指示被合并的,可以选择多个合并候选。为了说明允许信息共享的语法设计范例,在图3所示的四叉树分区中只允许有两个合并候选。虽然在本实施例中只有两个候选,但在本发明的其它实施例中可以从相邻块中选择多个候选。语法设计如下:根据本发明的另一实施例,相邻块(LCUs)之间的关系以及四叉树分区的属性,可以用于减少需要传送的SAO相关信息的数据量。此外,图像区域(例如片)的边界条件可能包含相邻块间的关系信息,可用于减少所需传送的SAO相关信息的数据量。相邻块之间的关系也可能会引入依赖于相邻块的冗余,以及相邻块之间的关系可用于减少所需传送的SAO相关信息的数据量。图5A-图5C为依赖于相邻块的冗余的实施例。如图5A和图5B所示,根据四叉树分区的属性,如果块D和A在相同的分区内,块B在另一个分区内,那么块A和块C将会在不同的分区内。换句话说,根据四叉树分区,图5C所示的情况是不允许出现的。因此,图5C中的合并候选是冗余的(redundant),以及没有必要为表示对应图5C的合并标志分配一个代码。实施合并算法的伪码实施例如下:如上述实施例所述,仅有两种允许的情况,即块C是一个新的分区,或者块C与块B合并在一起。因此,只用单个比特(singlebit)来表示newPartitionFlag已足以识别这两种情况。在另一实施例中,如图6A和图6B所示,块D和块B在相同的分区内,块A在另一个分区内,块B和块C将会是在不同的分区内。换句话说,根据四叉树分区,图6C所示的情况是不允许出现的。因此,图6C中的合并候选是冗余的,以及没有必要为表示对应图6C的合并标志分配一个代码。实施合并算法的伪码实施例如下:图5A-5C和图6A-6C说明了运用依赖于相邻块的冗余来进一步减少所需传送的当前块相关的SAO信息的两个实施例。系统利用依赖于相邻块的冗余还有许多其它的条件。例如,如果块A、B和D在相同的分区中,那么块C就不能在其它的分区中。因此,块C必须与块A、B和D在相同的分区中,并且也没有必要传送SAO信息共享的指示。片边界的LCU块也可考虑用于减少所需传送的当前块相关的SAO信息。例如,如果块A不存在,那就只有一个方向可以进行合并。如果块B不存在,同样也只有一个方向可以进行合并。如果块A和B都不存在,就没有必要传送标记来指示块C作为一个新的分区。为了进一步减少传送语法元素(syntaxelements)的数量,可以用一个标记来表明当前片仅应用一种SAO类型,而不需要任何基于LCU的信令(signaling)。当上述片是单一的分区,传送语法元素的数量也可以减少。然而,在上述实施例中,LCU是作为块的单元,也可以使用其它的块配置(例如,块的大小和形状)。虽然这里以片作为图像区域的一个例子,图像区域中的块分组以共享共同的信息,当然也可运用其它的图像区域,例如:一组片和一幅图像。此外,色度和亮度分量可共享相同的用于彩色视频数据的SAO信息。SAO信息也可以在多个色度分量之间共享。例如,多个色度分量(Cb和Cr)可使用亮度分区信息,这样就无需为色度分量提供分区信息。在另一实施例中,色度分量Cb和Cr可共享相同的SAO参数,因此,只需传送一组SAO参数以供Cb和Cr共享。亮度分量的SAO语法可以用于色度分量,其中,SAO语法可包括四叉树语法和基于LCU的语法。如图5A-5C和图6A-6C所示的运用依赖于相邻块的冗余来减少所需传送的SAO信息相关的数据的实施例也可以应用于色度分量。SAO参数包括SAO类型索引和所选类型的SAO偏移值,SAO参数可在分区信息之前进行编码,因此可形成SAO参数集(SAOparameterset,SAOPS)。相应地,可以使用索引来从SAO参数集中识别出当前块的SAO参数,其中,传送索引的数据通常少于传送SAO参数的数据。当分区信息被编码时,用以指示SAO参数的索引选择可一同被编码。SAO参数集的数量可动态地增加。例如,在示意有新的SAO参数之后,SAO参数集中的SAO参数的数量将会增加1。为了表示SAO参数集中的数量,可以动态地调整比特数(numberofbits)以与数据范围相符。例如,包括5-8个参数的SAO参数集需要用3个比特来表示。当示意有新的SAO参数之后,SAO参数集中的数量会增加到9,这时就需要用4个比特来表示包括9个参数的SAO参数集。如果SAO的处理涉及到其它片中的数据,SAO会使用填充技术来避免从任何其它片中获取数据,或者改变模式(pattern)以取代来自其它片的数据。为了减少所需的SAO信息的数据,SAO参数可采用预测后形式(predictedform)传送,例如,传送当前块的SAO参数与相邻块的SAO参数之间的差异。根据本发明的另一实施例减少用于色度分量的SAO参数。例如,基于边缘的偏移(Edge-basedOffset,EO)分类将每一个像素分类至色度分量的四个种类中。色度分量的EO种类的数量可以减少到两种,以减少与当前块的SAO信息相关的传送数据。亮度分量的带偏移(bandoffset,BO)分类的带数量通常是16。在又一实施例中,亮度分量的带偏移(bandoffset,BO)分类的带数量可以减少到8。图3所示的实施例说明了当前块C有四个合并候选(即,块A、B、D和E)的情况。如果合并候选块位于相同的分区中,合并候选的数量可以减少。相应地,用于指示哪一个合并候选被选择的比特数可以减少或节省。如果SAO的处理涉及到其它片中的数据,SAO将会避免从任何其它片中获取数据,并且跳过当前处理的像素以避免来自其它片的数据。此外,标记可用于控制SAO处理是否避免从任何其它片获取数据。关于SAO处理是否避免从任何其它片获取数据的控制标记,可以包含在序列层级或图像层级中。关于SAO处理是否避免从任何其它片获取数据的控制标记,也可以为自适应滤波或解块滤波的非交叉片边界标记所共享。为了进一步减少传递与SAO信息相关的数据,色度SAO的开/关控制取决于亮度SAO的开/关信息。色度SAO的种类可以是特定SAO类型中的亮度SAO的子集。根据本发明的各种实施例的语法设计范例说明如下。图7说明了包含在序列层级数据中的sao_used_flag,例如序列参数集(SequenceParameterSet,SPS)。当sao_used_flag的值为0时,SAO对序列是禁能的。当sao_used_flag的值为1时,SAO对序列是使能的。图8揭示了SAO参数的一个语法范例,其中,sao_param()语法可以包含在自适应参数集(AdaptationParameterSet,APS)、图像参数集(PictureParameterSet,PPS)或片标头(header)中。除了PPS,APS是另一个图像层级的标头,包括可能随图像改变的参数。如果sao_flag指示SAO是使能的,语法将会包括用于亮度分量的分割参数sao_split_param(0,0,0,0)和偏移参数sao_offset_param(0,0,0,0)。此外,语法还包括用于Cb分量的SAO标记sao_flag_cb和用于Cr分量的SAO标记sao_flag_cr。如果sao_flag_cb指示用于Cb分量的SAO是使能的,语法将会包括用于色度分量Cb的分割参数sao_split_param(0,0,0,1)和偏移参数sao_offset_param(0,0,0,1)。如果sao_flag_cr指示用于Cr分量的SAO是使能的,语法将会包括用于色度分量Cr的分割参数sao_split_param(0,0,0,2)和偏移参数sao_offset_param(0,0,0,2)。图9揭示了sao_split_param(rx,ry,Depth,component)的一个语法范例,其中该语法与传统的sao_split_param()相似,除了增加的额外的参数“component”,其中“component”用于指示亮度分量或多个色度分量中的一个。图10揭示了sao_offset_param(rx,ry,Depth,component)的一个语法范例,其中,该语法与传统的sao_offset_param()相似,除了增加的额外的“component”参数。在sao_offset_param(rx,ry,Depth,component)中,如果分割标志sao_split_flag[component][Depth][ry][rx]指示这一区域不会进一步分割,语法会包括sao_type_idx[component][Depth][ry][rx]。语法sao_type_idx[component][Depth][ry][rx]的说明如表1所示。表1如图11所示,HM-3.0应用的样本自适应偏移(SAO)采用基于四叉树的语法,基于四叉树的语法采用分割标记将图像区域递归(recursively)划分为4个子区域。每一个叶区域(leafregion)都有自己的SAO参数,其中SAO参数包括SAO类型和应用区域的偏移值信息。图11揭示的实施例中,图像被分为7个叶区域,1110到1170,其中带偏移类型SAO应用于叶区域1110和1150,边缘偏移类型SAO应用于叶区域1130、1140和1160,以及对于叶区域1120和1170,SAO是关闭的。为了提高编码增益,根据本发明的实施例的语法设计使用图像层级标记以在基于图像的SAO和基于块的SAO之间切换,其中,块可以是一个LCU或其它的块大小。图12A揭示了基于图像的SAO的实施例,图12B揭示了基于块的SAO的实施例,其中,每个区域为一个LCU,并且在图像中有15个LCU。在基于图像的SAO中,整个图像共享一个SAO参数(SAOP)。还可以使用基于片的SAO,以使整个片或者多个片共享一个SAOP。在基于LCU的SAO中,每个LCU都有自己的SAO参数,以及15个LCU(LCU1-LCU15)分别使用SAOP1-SAOP15中的一个。在根据本发明的另一实施例中,每个LCU的SAOP可以被随后的LCU共享。共享相同SAOP的连续的随后的LCU的数量可以由运行信号(runsignal)来指示。图13所示的实施例中,SAOP1、SAOP2和SAOP3是相同的。换句话说,第一个LCU的SAOP是SAOP1,并且SAOP1用于随后的两个LCU。在这种情况下,语法“run=2”将会被编码以示意共享相同SAOP的连续的随后LCU的数量。由于接下来两个LCU的SAOP都不用传送,因此可以节省编码这些SAOP的比特率。在根据本发明的又一实施例中,除了使用运行信号,根据光栅扫描顺序的下一行中的LCU可以共享当前LCU的SAOP。如果上方的LCU是可用的,可以用合并上方标记(merge-aboveflag)来指示当前LCU共享上方的LCU的SAOP。如果将合并上方标记设置为1,当前LCU将会使用上方的LCU的SAOP。如图14所示,SAOP2被四个LCU共享,即1410-1440,其中“run=1”和“nomerge-above”用来指示LCU1410和1420共享SAOP2,并且不共享它们上方的LCU的SAOP。此外,“run=1”和“merge-above=1”用来指示LCU1430和1440共享SAOP2,并且它们共享上方的LCU的SAOP。另外,SAOP1和SAOP3都分别被随后的两个LCU所共享,SAOP4被随后的四个LCU所共享。相应地,SAOP1和SAOP3的运行信号为2,SAOP4的运行信号为4。由于这些LCU都不共享上方的LCU的SAOP,因此SAOP1、SAOP3和SAOP4的merge-above语法的值为0。为了减少运行信号的比特率,上方的LCU的运行信号可以用作当前LCU的运行信号的预测符。不直接对运行信号进行编码,取而代之的是对两个运行信号之间的差异进行编码,其中,差异在图15中表示为d_run。当上方的LCU不是LCU组中具有运行值的第一个LCU时,运行预测值(runpredictionvalue)可以是在上方的LCU组的运行值减去在上方的LCU之前的相同的LCU组中的LCU的个数。共享SAOP3的第一个LCU的运行值为2,第一个LCU上方的共享SAOP1的LCU的运行值也为2,那么共享SAOP3的LCU的d_run的值为0。共享SAOP4的第一个LCU的运行值为4,第一个LCU上方的共享SAOP3的LCU的运行值为2。相应地,共享SAOP4的的LCU的d_run的值为2。如果运行的预测符是不可用的,可以通过使用无符号可变长度码(unsignedvariablelengthcode,U_VLC)来对运行进行编码。如果预测符存在,可以通过使用符号可变长度码(signedvariablelengthcode,S_VLC)来对运行差值(deltarun),即d_run进行编码。U_VLC和S_VLC可以是k阶的指数哥伦布码(exp-Golombcoding)、Golomb-Rice编码、或CABAC编码中的二值化处理(binarizationproces)。在根据本发明的一实施例的,可以用标记来指示当前LCU行中的所有SAOP都是与上一行的LCU相同的。例如,用于每个LCU行的RepeatedRow标记,用来指示当前LCU行中的所有SAOP都与上方的LCU行相同。如果RepeatedRow标记等于1,就不需要编码更多的信息。当前LCU行中的每一个LCU相关的SAOP,都是从上方的LCU行中LCU复制而来。如果RepeatedRow标记等于0,当前LCU行的SAOP则需要编码。在根据本发明的另一实施例中,可以用标记来示意RepeatedRow标记是否可用。例如,EnableRepeatedRow标记可以用来指示RepeatedRow标记是否可用。EnableRepeatedRow标记可以在片或图像层级来指示。如果EnableRepeatedRow等于0,那么RepeatedRow标记不会对每一LCU行进行编码。如果EnableRepeatedRow等于1,那么RepeatedRow标记对每一LCU行都进行编码。在根据本发明的又一实施例中,图像或片的第一LCU行中的RepeatedRow标记可以被节省(save)。在图像只有一片的情况下,可以节省第一LCU行中的RepeatedRow标记。在一个图像有多个片的情况下,如果SAO处理是片独立操作(slice-independentoperation),那么可以节省第一LCU行中的RepeatedRow标记;反之,则RepeatedRow标记需被编码。在一个图像或一个片中节省第一LCU行中的RepeatedRow标记的方法,也可以应用于使用EnableRepeatedRow标记的情况。为了减少传送与SAOP相关的数据,根据本发明的一实施例,采用运行信号以指示下方的LCU行中的所有SAOP与上方的LCU行中的相同。例如,N个连续的LCU行包含相同的SAOP,在N个连续的重复的LCU行中的第一LCU行中,SAOP以及运行信号等于N-1被发信。在一个图像或片中,重复的LCU行的最大和最小运行可以在片或图像层级获取以及被发信。基于最大值和最小值,运行数可以用固定长度码字(fixed-lengthcodeword)进行编码。固定长度码字的长度可以根据最大运行值和最小运行值来确定,因此可以在片或图像层级自适应地改变。在根据本发明的另一实施例中,图像或片的第一LCU行中的运行数被编码。在运用熵编码上述提及的一个图像或一个片中的第一LCU行的运行和运行差值的方法中,如果在连续的LCU中重复SAOP,运行被编码以指示共享SAOP的LCU的数量。如果运行的预测符不可用,可以通过使用无符号可变长度码U_VLC或固定长度码字来编码运行。如果使用固定长度码字,字长可以基于图像宽度、编码的运行或剩余的LCU来自适应编码,或者字长可基于图像宽度而固定或被发信至解码器。例如,包含有N个LCU的图像中的一个LCU行,被SAO处理的LCU是该LCU行中的第k个LCU,其中k=0,…,N-1。如果运行需要被编码,那么运行的最大数为N-1-k。将被编码的运行的字长为floor(log2(N-1-k)+1)。在另一例子中,在一片或图像中的运行的最大数和最小数可被首先计算出来。基于最大值和最小值,固定长度码字的字长可以被获取及编码。在根据本发明的又一实施例中,运行数和运行差值数的信息可以包含在片层级中。运行数、运行差值数、或者LCU的数量(NumSaoRun),可以在片层级被发信。当前编码SAOP的LCU的数量可以用NumSaoRun标记来说明。此外,运行数、运行差值数、或者LCU的数量可以用在一个编码图像中的LCU的数量来预测。预测方程式如下:NumSaoRun=sao_num_run_info+NumTBsInPicture其中,NumTBsInPicture是在一个图像中的LCU的数量,sao_num_run_info是预测残差值。语法sao_num_run_info可用符号可变长度码或无符号可变长度码来进行编码。语法sao_num_run_info也可用符号固定长度码字或无符号固定长度码字来进行编码。根据本发明的环路滤波的实施例如上所述,可以采用多种硬件、软件码、或两者的组合来实现。举例来说,本发明的一实施例可为电路集成到视频压缩芯片,或者程序码集成到视频压缩系统,以进行相应处理。本发明的一实施例也可为在数字信号处理器(DigitalSignalProcessor,DSP)上执行以进行相应处理的程序码。本发明还可包含一系列功能,并由电脑处理器、数字信号处理器、微处理器、现场可编程门阵列(FieldProgrammableGateArray,FPGA)执行。通过执行定义本发明实施例的机器可读软件码或韧件码,上述处理器可根据本发明执行特定任务。软件码或韧件码可在不同程序语言和不同格式或方式中进行。软件码可编译成不同的目标平台。不过,不同的编码格式、方式和软件码语言,以及与本发明有关的使码执行任务的其它方法均符合本发明的精神,落入本发明的保护范围。虽然本发明已就较佳实施例揭露如上,然其并非用以限制本发明。本发明所属技术领域中一般技术人员,在不脱离本发明的精神和范围内,当可作各种的变更和润饰。因此,本发明的保护范围当视之前的权利要求书所界定为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1