本申请要求如下申请的优先权:2011年1月3日递交的申请号为61/429,313,标题为“MediaTek’s Adaptive Loop Filter”的美国临时案;2011年6月20日递交的申请号为61/498,949,标题为“LCU-based Syntax for Sample Adaptive Offset”的美国临时案;2011年7月1日递交的申请号为61/503,870,标题为“LCU-based Syntax for Sample Adaptive Offset”的美国临时案;2011年10月21日递交的申请号为61/549,931,标题为“Filter Unit Adaptation for Adaptive Loop Filter and Sample Adaptive Offset”的美国临时案。在此合并参考这些申请案的申请标的。
【技术领域】
本发明关于视频处理,尤其关于一种基于滤波单元的包含样本自适应偏移和自适应回路滤波器的回路滤波方法。
背景技术:
在视频编码系统中,视频数据经历各种处理,例如预测、变换、量化以及解块(deblocking)。在视频编码系统的处理路径上,由于应用至视频数据上的多个操作,可能会引入噪声并且处理后的视频数据的特性可能与原始视频数据不同。举例来说,处理后的视频的平均值可能会转移。强度偏移(intensity shift)可能导致视觉损害(visual impairment)或失真(artifact),当强度偏移随着图片改变时这会变得尤其明显。因此,必须小心补偿或恢复像素强度偏移来降低失真。在本领域中已经使用了某些强度偏移机制。举例来说,一种强度偏移机制,称为样本自适应偏移(sample adaptive offset,SAO),依据选定内容将处理后视频数据中每一像素分类成多个类别的其中之一。SAO机制通常需要结合视频比特流中的SAO信息例如分区(partition)信息,来将图片或切片(slice)分离成多个块(block)以及每一块所需的SAO偏移值,这样一来解码器可恰当地运作。除了SAO以外,自适应回路滤波器(adaptive loop filter,ALF)是另一种类型的回路滤波器,经常应用于重建后视频以提升视频品质。类似地,视频比特流中必须包含ALF信息例如分区信息及滤波参数,这样一来解码器便能恰当地运作。
在传统编码系统中,经常使用图片层(picture-level)的回路滤波,其中由该图片中所有的块共享相同的滤波参数。虽然图片层的回路滤波简易,但其缺乏对该图片局部特性的自适应性。有需要发展一种能适应图片局部特性的回路滤波机制。具有局部自适应性的回路滤波机制会需要更多带宽来传输滤波器信息。相应地,也需要发展能有效及/或灵活地传输滤波器信息的语法。
技术实现要素:
有鉴于此,本发明提供基于滤波单元的回路滤波方法。
本发明提供一种在视频解码器及视频编码器中基于滤波单元的回路滤波方法,用于彩色视频。依据本发明实施例在视频解码器中的该方法包含:接收对应于压缩彩色视频的视频比特流,其中基于滤波单元的回路滤波被用于与该压缩彩色视频相关的重建回路中,从该视频比特流中获得重建后彩色视频,该重建后彩色视频被分成多个滤波单元,以及每一滤波单元包含第一颜色分量及第二颜色分量;接收与该第一颜色分量相关的第一滤波器语法以及与该第二颜色分量相关的第二滤波器语法,用于该视频比特流中的该多个滤波单元,其中用于该多个滤波单元的该第一滤波器语法及该第二滤波器语法在该视频比特流中被交错;以及依据该第一滤波器语法,对与每一滤波单元相关的该第一颜色分量应用该回路滤波;以及依据该第二滤波器语法,对与每一滤波单元相关的该第二颜色分量应用该回路滤波。
依据本发明另一实施例,还提供一种在视频编码器中基于滤波单元的回路滤波方法,包含:产生对应于压缩彩色视频的视频比特流,其中基于滤波单元的回路滤波被用于与该压缩彩色视频相关的重建回路中,该重建回路中的重建后彩色视频被分割成多个滤波单元,以及每一滤波单元包含第一颜色分量及第二颜色分量;并入与该第一颜色分量相关的第一滤波器语法以及与该第二颜色分量相关的第二滤波器语法,用于该视频比特流中的该多个滤波单元,其中用于该多个滤波单元的该第一滤波器语法及该第二滤波器语法在该视频比特流中被交错;以及提供该视频比特流。依据本发明实施例的该基于滤波单元的回路滤波方法通过交错用于滤波单元的颜色分量滤波器语法,将滤波器语法并入视频比特流中。
上述在视频解码器及视频编码器中基于滤波单元的回路滤波方法可更动态地适应图片局部特性变化。
【附图说明】
图1A为示范性滤波单元分区,其中图片尺寸为832x480及滤波单元尺寸为192x128;
图1B为示范性滤波单元分区,其中图片尺寸为832x480及滤波单元尺寸为384x256;
图1C为示范性滤波单元分区,其中整个图片被当做一个滤波单元;
图2为依据本发明实施例的alf_param()示范性语法设计;
图3为依据本发明实施例的alf_fu_size_param()示范性语法设计;
图4为依据本发明实施例的sao_alf_unit()示范性语法设计;
图5为依据本发明另一实施例的sao_alf_unit()示范性语法设计;
图6为依据本发明实施例的用于彩色视频的示范性交错式滤波单元语法;
图7为依据本发明实施例的用于彩色视频的示范性交错式滤波单元语法连同基于图片的颜色分量的回路滤波。
【具体实施方式】
在高性能视频编码(High-efficiency video coding,HEVC)中,已经包含数种回路滤波工具来提升视频品质。举例来说,引入了一种叫自适应偏移(adaptive offset,AO)技术来补偿重建后视频的偏移且AO应用在重建回路内部。在2011年6月12日提交的申请号为13/158,427,标题为“Apparatus and Method of Sample Adaptive Offset for Video Coding”的美国非临时专利申请中揭露了一种偏移补偿的方法及系统。该方法将每一像素分类为多个类别的其中之一并基于每一像素的类别对处理后视频数据应用强度偏移补偿或恢复(restoration)。上述AO技术被称为样本自适应偏移(SAO)。除了SAO外,自适应回路滤波器(adaptive loop filter,ALF)也已被引入HEVC来提升视频品质。ALF在重建回路内部对重建后视频应用空间滤波器。SAO和ALF在该专利申请中都被称为回路滤波。
为了实现回路滤波,在比特流语法中会必须包含回路滤波相关信息。回路滤波相关语法通常被并入(incorporate)在较高层的视频比特流中(higher level)(例如序列层或图片层)上,供很多块共享以便降低有关语法的比特率。在高层并入回路滤波信息可降低回路滤波所需相关语法的比特率,但这种方法不能快速适应图片内的局部变化。提供一定程度局部自适应性的某些改进机制已经被报道。举例来说,SAO可使用四叉树自适应地将图片或图片区域分割成较小块且应用SAO于每一切分完成的块(leaf block)中。另一方面,ALF可使用群组旗标(group flag)来提供局部自适应性特性(localization)。
需要发展一种能提供更动态的自适应性的技术,允许基于图片的局部特性来执行回路滤波过程。依据本发明的实施例使用基于滤波单元的语法来代替基于图片层的语法。滤波单元(filter unit,FU)为用于回路滤波过程的处理单元,其不同于在HEVC中使用的编码单元(coding unit,CU)。在2011年4月25日提交的申请号为13/093,068,标题为“Method and Apparatus of Adaptive Loop Filtering”的美国非临时专利申请中,揭露了基于滤波单元的ALF,其允许每一滤波单元选择滤波器设置的其中之一作为候选。在一实施例中,一个图片可被分成具有相同尺寸的多个滤波单元。当该图片尺寸无法被滤波单元尺寸整除时,在该图片的行/列末尾的某些滤波单元可能更小。图1A-1C为三个不同滤波单元尺寸的滤波单元分区的范例。这些范例中使用的图片尺寸为832x480。图1A-1C中每一个小方块表示64x64的最大编码单元(largest coding unit,LCU)且位于底部的块的尺寸为64x32。如果已知图片尺寸和滤波单元尺寸,可相应地决定滤波单元分区。举例来说,192x128的滤波单元尺寸会产生20个滤波单元,如图1A所示,其中FU04、FU09及FU14的尺寸为64x128,FU15到FU18的尺寸为192x96,以及FU19的尺寸为64x96。图1B为滤波单元尺寸为384x256的情况。这种情况会产生6个滤波单元,其中FU2的尺寸为64x256,FU3及FU4的尺寸为384x224,以及FU5的尺寸为64x224。图1C为滤波单元覆盖整个图片的范例。虽然预定的滤波单元由图1A-1C中的LCU为单位作测量,但也可使用其他块尺寸。
图片被分离成滤波单元之后,可决定滤波器设置(也称滤波参数设置)来适应图片的局部特性,以用于回路滤波过程,该滤波器设置包含多个候选滤波器。图2为alf_param()示范性语法设计,以供应回路滤波参数用于ALF。语法部分210说明滤波器设置中的候选滤波器数量AlfFsNum,如果确定使用滤波单元分区(alf_fu_size_flag的值为1),则依据AlfFsNum=alf_fs_num_minus1+1来决定AlfFsNum,其中alf_fs_num_minus1为比特流中与滤波器设置中候选滤波器数量相关的语法元素。语法部分220说明决定每一候选滤波器的滤波参数。在语法部分230中决定图片宽度中的滤波单元数量AlfFuNumW以及图片高度中的滤波单元数量AlfFuNumH。此外,如果确定使用滤波单元分区(alf_fu_size_flag的值为1),则并入旗标(flag)alf_enable_fu_merge来指示对于每一滤波单元,是否允许滤波单元合并(merge)以及是否选择了一个候选滤波器,如语法部分240所示。图2中语法设计范例说明为每一滤波单元使用滤波器索引来代替在每一滤波单元的比特流中单独并入滤波参数。与明确的滤波参数相比,滤波器索引是比特率更有效的滤波器信息表示法。本领域技术人员可通过修改图2所示的语法设计来实现本发明。
可使用alf_fu_size_param()来并入滤波单元尺寸信息,如图3所示。如果afl_fu_size_flag的值为1,则指示使用了该滤波单元分区。当使用滤波单元分区时,可用滤波器尺寸变化旗标alf_change_fu_size指示滤波单元尺寸,关于是否使用默认滤波单元尺寸或其他滤波单元尺寸。在使用了不同于默认尺寸的滤波单元尺寸的情况中(即alf_change_fu_size=1),示范性语法提供两个供选择的方法来并入滤波器尺寸信息,由alf_fu_size_syntax_mode指示。如果alf_fu_size_syntax_mode的值为1,则直接并入滤波单元尺寸信息,如语法部分310所示,其中alf_fu_width_in_lcu_minus1为以LCU为单位表示的滤波单元宽度,以及alf_fu_height_in_lcu_minus1为以LCU为单位表示的滤波单元高度。如果alf_fu_size_syntax_mode的值为0,则使用滤波单元尺寸比表示滤波器尺寸信息。在这种情况下,滤波单元尺寸等于最小滤波单元尺寸与乘法因子alf_fu_size_ratio_minus2的乘积,如语法部分320所示。图3中的范例使用默认的滤波单元尺寸作为最小滤波单元尺寸。语法元素alf_default_fu_width_in_lcu_minus1为以LCU为单位表示的默认的滤波单元的宽度,语法元素alf_default_fu_height_in_lcu_minus1为以LCU为单位表示的最小滤波单元的高度。如果语法元素alf_change_fu_size的值为0,则使用默认的滤波单元尺寸,如语法部分330所示。如果语法元素alf_fu_size_flag的值为0,则指示滤波单元尺寸等同于图片尺寸,如语法部分340所示。图3中的语法设计范例说明依据语法模式旗标(即alf_fu_size_syntax_mode),使用直接模式或比例模式来在比特流语法中并入滤波单元尺寸信息。本领域技术人员可修改图3所示的语法设计来实现本发明。
如果允许滤波单元合并,则具有类似特性的相邻滤波单元可共享相同的候选滤波器以便提升编码效率。传输滤波单元合并信息的一个范例就是传输被合并的连续的滤波单元的数量,其中被合并的连续的滤波单元的数量被称为run。在2011年12月6日提交的申请号为13/311,953,标题为“Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components”的美国非临时案中,揭露了基于run的滤波单元合并表示法。一种用于滤波单元结构的示范性语法设计sao_alf_unit(rx,ry,c)如图4所示,其中回路滤波包含SAO及ALF,rx和ry分别为滤波单元水平索引和垂直索引,以及c指示颜色分量(即Y,Cb或Cr)。为了进一步提升编码效率,滤波单元的一行(row)可共享相同的候选滤波器。为了节省比特率,可使用语法元素repeat_row_flag[c][ry]来指示在ry处的该行滤波单元是否使用了相同的滤波器信息。使用语法元素run_diff[c][ry][rx]来指示与左边滤波单元合并的滤波单元数量。
虽然图4中示范性语法设计说明对于基于滤波单元的回路滤波,基于run的滤波器共享表示法,但也可使用其他方法来表示滤波器共享。基于合并旗标(merge flag)的另一语法设计变化在图5中说明。使用语法元素merge_flag[c][ry][rx]来指示在(rx,ry)处具有颜色分量c的滤波单元是否与其相邻块之一进行了合并。如语法部分510所示,当repeat_row_flag[c][ry]指示该行滤波单元没有重复时,仅并入语法元素merge_flag[c][ry][rx]。此外,依据语法部分510,对于rx=0及ry=0,merge_flag[c][ry][rx]=0。如果merge_flag[c][ry][rx]指示滤波单元与其相邻块之一进行了合并,则并入merge_index[c][ry][rx]以指示滤波单元是与哪一个相邻块进行了合并,如语法部分520所示。也就是说,如果该合并旗标指示至少一个滤波单元被合并且多于一个合并候选滤波单元存在,则对于视频解码器,从视频比特流中接收合并索引,其中从该合并索引指示的该相邻滤波单元的滤波参数中决定滤波参数;而对于视频编码器,则将合并索引并入视频比特流中,其中该多个滤波单元的该至少一个与该合并索引指示的该相邻滤波单元共享滤波参数。当merge_flag[c][ry][rx]指示滤波单元没有合并时,将并入语法元素sao_alf_param(rx,ry,c)以提供滤波参数信息,如语法部分530所示。如果repeat_row_flag[c][ry]指示该行滤波单元重复时,即该滤波单元的一行共享相同的滤波参数时,则对于视频解码器,跳过获得该合并旗标、接收该合并索引以及接收该滤波参数的步骤;对于视频编码器,则跳过并入该合并旗标、并入该合并索引以及并入该滤波参数的步骤。图5中的语法设计范例说明并入合并旗标来指示当前滤波单元是否被合并以及并入合并索引来指示当前滤波单元与哪一个相邻块进行了合并。本领域技术人员可修改图5所示的语法设计来实现本发明。
当使用图片层回路滤波语法时,总是在图片层或较高层中的比特流中并入回路滤波语法。也就是说,与该滤波参数设置相关的信息可被并入不同于该一个或多个滤波单元的较高层的视频比特流中。对于彩色视频,可使用图片层中的语法以允许该图片使用单独的回路滤波信息用于每一颜色分量或允许色度(chroma)分量与亮度(luma)分量共享回路滤波信息。对于彩色视频,基于滤波单元的回路滤波的语法可并入整个图片亮度分量相关的信息,接着是整个图片色度分量相关的信息。因此,用于色度滤波单元的回路滤波过程将必须等待直到用于该图片所有亮度滤波单元的信息已被接收后才可以进行。为了降低延迟,依据本发明的实施例,对于彩色视频,基于滤波单元的回路滤波使用交错式(interleave)语法。图6为用于彩色视频基于滤波单元的回路滤波的示范性交错式语法。依据滤波单元的顺序并入该基于滤波单元的滤波器语法。对于每一滤波单元,用于颜色分量的语法一个接着一个被并入。举例来说,用于FU0的Y分量610相关的语法后跟随着Cb分量612及Cr分量614。并入用于FU0所有颜色分量的滤波器语法之后,再并入用于FU1的Y分量620且其后跟随着Cb分量622和Cr分量624。可以相同方式并入用于剩余滤波单元的语法。图6中的交错式滤波器语法为依据本发明的一个示范性实施例。该滤波器语法被交错用于图6中每个滤波单元。本领域技术人员可在不脱离本发明精神前提下通过使用其他变形来实现本发明。举例来说,可修改用于三个颜色分量的YCbCr语法顺序,例如CbCrY或YCrCb。虽然图6为用于每个滤波单元的语法交错的范例,但是本发明实施例可实现用于多个滤波单元的滤波器语法交错。举例来说,可执行语法交错用于两个滤波单元,即Y FU0,Y FU1,Cb FU0,Cb FU1,Cr FU0,Cr FU1,Y FU2,Y FU3,Cb FU2,Cb FU3,Cr FU2,Cr FU3等等。
当允许基于滤波单元的回路滤波时,依据切片层、图片层或序列层中的选择旗标(selection flag),可使用切片层、图片层或序列层中的旗标来自适应地选择基于滤波单元或是基于图片的回路滤波。依据本发明的实施例,对于彩色视频,可连同滤波器语法交错一起使用该选择旗标。使用滤波器语法交错及选择旗标的示范性语法配置如图7所示,其中Cb分量使用图片层回路滤波,而Y和Cr分量使用基于滤波单元的回路滤波。依据滤波单元的顺序,对于Y分量和Cr分量,并入滤波器语法类似于图6所述的情况。在用于Y分量的第一滤波单元的滤波器语法之后可插入用于Cb图片的滤波器语法。相应地,滤波器语法配置变成Y FU0 710,Cb Picture 712,Cr FU0 714,Y FU1 720,Cr FU1 724,Y FU2 730以及Cr FU2 734,如图7所示。作为设计变化,用于Cb图片的滤波器语法可放置在用于Y FU0的滤波器语法之前。
上述实施例可用于视频解/编码器,从对应于压缩视频的视频比特流中获得重建后视频,接着依据本发明实施例提供的基于滤波单元的回路滤波方法,在与该压缩视频相关的重建回路中将该重建后视频分成一个或多个滤波单元。上述实施例中各种滤波参数、索引、尺寸、语法信息可从视频比特流中获得或被并入视频比特流中。
上述依据本发明用于回路滤波器的语法的实施例可通过各种硬件码、软件码、或者二者的结合来实作。举例来说,本发明实施例可以是集成到视频压缩芯片上的电路或者是集成到视频压缩软件中的程式码,以执行上述处理。本发明实施例也可为在数字信号处理器(Digital Signal Processor,DSP)上执行的程式编码,以执行上述处理。本发明也可包含藉由计算机处理器、数字信号处理器、微处理器或现场可编程门阵列(field programmable gate array,FPGA)执行的若干功能。依据本发明,通过执行定义本发明的特定方法的机器可读软件码或固件(firmware)码,该些处理器可被设置以执行特定的任务。软件码或固件码可以不同的编程语言及不同的格式或类型来开发。软件码也可对不同的目标平台进行编译。然而,依据本发明用来执行任务的软件码不同的码格式、类型及语言以及其他设置码的方式都不会脱离本发明的精神及范围。
本发明可以其他特定形式体现而不脱离本发明的精神和基本特征。上述实施例仅作为说明而非用来限制本发明,因此,本发明的保护范围当视所附的权利要求所界定者为准。凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。