用于视频译码的自适应性中心频带偏移滤波器的制造方法

文档序号:7992931阅读:247来源:国知局
用于视频译码的自适应性中心频带偏移滤波器的制造方法
【专利摘要】一种经配置以执行样本自适应性偏移滤波的视频译码器可基于像素集合中的像素值确定用于所述集合的中心值,基于所述中心值将像素值的频带分成群组,及基于所述群组确定用于所述频带的偏移值。
【专利说明】用于视频译码的自适应性中心频带偏移滤波器
[0001]本申请案主张2011年11月4日申请的美国临时申请案第61/556,085号的优先权,所述申请案的全部内容在此被以引用的方式并入。
【技术领域】
[0002]本发明大体上涉及视频译码,且更明确地说,涉及在视频译码过程中的样本自适应性偏移(SAO)滤波。
【背景技术】
[0003]数字视频能力可并入到广泛范围的装置内,包含数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数字相机、数字记录装置、数字媒体播放器、数字游戏装置、视频游戏控制台、蜂窝式或卫星无线电技术、所谓的“智能电话”、视频电话会议装置、视频串流传输装置和类似者。数字视频装置实施视频压缩技术,例如,在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分先进视频译码(AVC)定义的标准、目前在开发中的高效率视频译码(HEVC)标准和这些标准的扩展中描述的视频压缩技术。视频装置可通过实施这些视频压缩技术来更有效率地发射、接收、编码、解码和/或存储数字视频信息。
[0004]视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可分区成视频块,它也可被称作树型块、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测编码图片的经帧内译码(I)的切片中的视频块。图片的经帧间译码(P或B)的切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测或关于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
[0005]空间或时间预测导致用于待译码的块的预测性块。残余数据表示待译码的原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本的块的运动向量和指示经译码的块与预测性块之间的差的残余数据编码经帧间译码的块。根据帧内译码模式和残余数据编码经帧内译码的块。为了进一步压缩,可将残余数据从像素域变换到变换域,从而导致残余变换系数,接着可量化残余变换系数。可扫描一开始按二维阵列排列的经量化的变换系数,以便产生变换系数的一维向量,且可应用熵译码以达成甚至更多的压缩。

【发明内容】

[0006]本发明大体上描述与样本自适应性偏移(SAO)滤波有关的技术,且更明确地说,描述用于在经编码的位流中用信号发送用于基于频带的SAO滤波的系数的技术。本发明描述用于基于中心值自适应地确定频带的分群且将确定的分群用于用信号发送用于频带的偏移值的技术。
[0007]在一个实例中,一种用于译码视频资料的方法包含确定用于像素集合的中心值,其中所述中心值是基于所述像素的值;基于所述中心值将像素值的频带分成群组;以及,基于所述群组确定用于所述频带的偏移值。
[0008]在另一实例中,一种视频译码装置包含视频译码器,其经配置以确定用于像素集合的中心值,其中所述中心值是基于所述像素的值;基于所述中心值将像素值的频带分成群组;以及,基于所述群组确定用于所述频带的偏移值。
[0009]在另一实例中,一种计算机可读存储媒体存储使一或多个处理器进行以下操作的指令:确定用于像素集合的中心值,其中所述中心值是基于所述像素的值;基于所述中心值将像素值的频带分成群组;以及,基于所述群组确定用于所述频带的偏移值。
[0010]在另一实例中,一种用于译码视频资料的设备包含用于确定用于像素集合的中心值的装置,其中所述中心值是基于所述像素的值;用于基于所述中心值将像素值的频带分成群组的装置;以及,用于基于所述群组确定用于所述频带的偏移值的装置。
【专利附图】

【附图说明】
[0011]图1为说明可利用本发明中描述的样本自适应性偏移滤波技术的实例视频编码和解码系统的框图。
[0012]图2为展示用于基于边缘的样本自适应性偏移滤波的边缘偏移分类的实例的图解说明。
[0013]图3A和3B为展示针对用于基于频带的样本自适应性偏移滤波的频带偏移分类的实例频带分群的图解说明。
[0014]图4为说明可实施本发明中描述的样本自适应性偏移滤波技术的实例视频编码器的框图。
[0015]图5为说明可实施本发明中描述的样本自适应性偏移滤波技术的实例视频解码器的框图。
[0016]图6展示说明本发明中描述的样本自适应性偏移滤波技术的流程图。
【具体实施方式】
[0017]样本自适应性偏移(SAO)滤波为在视频译码中使用的环路滤波类型。一般来说,在一些情况下,将偏移值添加到视频帧(例如,重构建的图像)中的像素可改进译码,而不大大地增加需要用来存储或传输经编码的视频数据的位开销。潜在地从SAO滤波产生的译码改进可为(例如)经解码的图像更紧密地类似于原始图像。如以下将更详细地解释,SAO技术允许取决于像素(或块)分类度量(例如,边缘度量、频带度量或其它类型的度量)将不同的偏移值应用到不同像素(或像素块)。
[0018]如以下将更详细地解释,在一些配置中,SAO滤波器单元可经配置以执行两个类型的偏移滤波,大体上在本发明中被称作频带偏移滤波和边缘偏移滤波。SAO滤波器单元有时也可不应用偏移,这自身可被视为第三类型的偏移滤波。由SAO滤波器应用的偏移滤波的类型可明确或隐含地用信号发送到视频解码器。当应用边缘偏移滤波时,可基于译码单元的边缘信息分类像素,且可基于边缘分类确定像素的偏移。如以下将参看图2更详细地解释,通常存在四个基于边缘的SAO的变体,其中将像素的值与它的八个相邻像素中的两个进行比较。哪两个像素被用于比较取决于使用了基于边缘的偏移的哪一变体。基于量值差,将偏移添加到像素值。
[0019]当应用频带偏移滤波时,可基于像素值(例如,强度值)将像素分类成不同的频带,其中每一频带具有相关联的偏移。频带包含一系列像素值。例如,范围从O到255的像素值可分成32个相等频带(标为O到31),使得像素值0-7为第一频带,像素值8-15为第二频带,像素值16-23为第三频带,且对于所有三十二个频带依此类推。频带可用于确定将哪一特定偏移值应用到像素或像素群组。例如,如果像素具有值10(在以上实例中,其在第二频带内,即,值8-15),那么可将与第二频带相关联的偏移添加至像素值。
[0020]为了用信号发送和产生用于各种频带的偏移的目的,可将频带分群成两个或两个以上群组。对于频带偏移滤波,例如,可将像素归类成如上所述的三十二个频带(频带0-31),且可将频带分群成两个群组(例如,各有十六个频带的两个群组、具有四个频带的一个群组和具有二十八个频带的一个群组、具有八个频带的一个群组和具有二十四个频带的一个群组,或其它这些分群)。可将频带的分群用于确定在经编码的视频位流中用信号发送用于频带的偏移值的次序,和/或用以确定特定频带是否具有不同于零的偏移值。可使用将当前值作为当前值与先前值之间的差用信号发送的差分译码技术来用信号发送用于频带的偏移。在一些情况下,通过使用这些译码技术达成的位节省量可取决于用信号发送值的排序。例如,在连续用信号发送值相近的偏移值的情况下,可达成较大的位节省。在一些情况下,可将用于特定群组(例如,第二群组)的所有偏移值假定为零。
[0021]根据一些技术,频带的分群为静态的。例如,根据一项技术,中间的十六个频带(频带8-23)始终构成十个频带的一个群组,而最左边的八个频带(频带0-7)和最右边的八个频带(频带24-31)构成十六个频带的第二群组。本发明描述用于动态确定频带的分群的技术。如以下将更详细地解释,视频编码器或视频解码器可通过基于像素值动态地确定中心值来动态地确定频带的分群。在一些配置中,可在经编码的视频位流中用信号发送中心值的指示,使得视频解码器不需要基于像素值确定中心值,而取而代之,可基于在位流中的明确用信号发送来确定中心值。中心值可用以确定第一群频带,且其余频带可构成第二群频带。如在以下实例中将澄清,如在本发明中使用的术语中心值大体上指可用以对准或大致对准至特定像素值的一群频带的中心的任一值。因此,如在本发明中使用的中心值可为频带群组的中心对准的特定像素值,或可为某一其它值,例如,针对一频带或一群频带的开始像素值或结尾像素值。在一些情况下,不同于识别像素值,中心值可将一特定频带识别为群组的第一频带、群组的最后一个频带或某一其它这种识别,根据所述识别,可将一群频带的中心对准特定像素值。
[0022]在一些情况下,频带的分群的动态确定改进用于SAO滤波的偏移系数的用信号发送,且因此,可改进总体视频译码质量。频带的分群的此动态确定也可用以确定频带SAO滤波的哪些群组将最受益于视频译码质量,其中假定其它频带具有偏移值零。
[0023]图1为说明可利用本发明中描述的自适应性SAO技术的实例视频编码和解码系统10的框图。如图1中所展示,系统10包含源装置12,其产生将在稍后时间由目的地装置14解码的经编码的视频数据。源装置12和目的地装置14可包括广泛范围的装置中的任一者,包含桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、电话手机(例如,所谓的“智能”电话)、所谓的“智能”触控板、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频串流传输装置和类似者。在一些情况下,可装备源装置12和目的地装置14以用于无线通信。
[0024]目的地装置14可经由链路16接收将被解码的经编码的视频数据。链路16可包括能够将经编码的视频数据从源装置12移动到目的地装置14的任一类型的媒体或装置。在一个实例中,链路16可包括通信媒体,以使源装置12能够实时地将经编码的视频数据直接传输至目的地装置14。可根据例如无线通信协议的通信标准调制经编码的视频数据,且将它传输至目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如,射频(RF)频谱或一或多个实体传输线。通信媒体可形成基于包的网络的部分,例如,局域网、广域网或例如因特网的全球网络。通信媒体可包含路由器、交换器、基站或可用以促进从源装置12到目的地装置14的通信的任一其它装备。
[0025]替代地,经编码的数据可从输出接口 22输出到存储装置32。类似地,经编码的数据可由输入接口从存储装置32访问。存储装置32可包含多种分散式或局部访问的数据存储媒体中的任何者,例如,硬驱动机、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码的视频数据的任何其它合适的数字存储媒体。在再一实例中,存储装置32可对应于文件服务器或可保持由源装置12产生的经编码的视频的另一中间存储装置。目的地装置14可经由串流传输或下载访问来自存储装置32的存储的视频数据。文件服务器可为能够存储经编码的视频数据且将经编码的视频数据传输至目的地装置14的任一类型的服务器。实例文件服务器包含网络服务器(例如,针对网站)、FTP服务器、网络附着式存储(NAS)装置或局部磁盘机。目的地装置14可通过任一标准数据连接(包含因特网连接)访问经编码的视频数据。这可包含无线信道(例如,W1-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或适合于访问存储于文件服务器上的经编码的视频数据的两者的组合。经编码的视频数据从存储装置32的传输可为串流传输、下载传输或两者的组合。
[0026]本发明的技术未必取于无线应用或环境。技术可应用于支持多种多媒体应用(例如,用无线电电视广播、有线电视传输、卫星电视传输、串流传输视频传输(例如,经由因特网)、用于存储于数据存储媒体上的数字视频的编码、存储于数据存储媒体上的数字视频的解码或其它应用)中的任何者的视频译码。在一些实例中,系统10可经配置以支持单向或双向视频传输以支持例如视频串流传输、视频播放、视频广播和/或视频电话的应用。
[0027]在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口 22。在一些情况下,输出接口 22可包含调制器/解调制器(调制解调器)和/或传输器。在源装置12中,视频源18可包含例如以下的源:视频捕获装置(例如,摄像机)、含有先前捕获的视频的视频存档、从视频内容提供者接收视频的视频馈入接口和/或用于产生作为源视频的计算机图形资料的计算机图形系统或这些源的组合。作为一个实例,如果视频源18为摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,本发明中描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。
[0028]捕获、预先捕获或计算机产生的视频可由视频编码器20编码。可经由源装置12的输出接口 22直接将经编码的视频数据传输到目的地装置14。经编码的视频数据也可(或替代地)存储至存储装置32上,用于稍后由目的地装置14或其它装置访问,用于解码和/或播放。
[0029]目的地装置14包含输入接口 28、视频解码器30和显示装置32。在一些情况下,输入接口 28可包含接收器和/或调制解调器。目的地装置14的输入接口 28经由链路16接收经编码的视频数据。经由链路16传递或在存储装置32上提供的经编码的视频数据可包含由视频编码器20产生用于由视频解码器(例如,视频解码器30)在解码视频数据过程中使用的多种语法元素。这些语法元素可与在通信媒体上传输、存储于存储媒体上或存储于文件服务器上的经编码的视频数据包含在一起。
[0030]存储装置32可与目的地装置14集成在一起或在目的地装置外部。在一些实例中,目的地装置14可包含集成显示装置,且也可经配置以与外部显示装置接口连接。在其它实例中,目的地装置14可为显示装置。一般来说,存储装置32对用户显示经解码的视频数据,且可包括多种显示装置中的任何者,例如,液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
[0031]视频编码器20和视频解码器30可根据例如目前在开发中的高效率视频译码(HEVC)标准的视频压缩标准操作,且可遵守HEVC测试模型(HM)。被称作“HEVC工作草案8”或“WD8”的HEVC标准的最近草案描述于布拉斯(Bross)等人的文档JCTVC-H1003 “高效率视频译码(HEVC)文本规范草案 8 (High efficiency video coding (HEVC) text specificationdraft8) ” (ITU-T SG16WP3与IS0/IEC JTC1/SC29/WG11的关于视频译码的联合合作团队(JCT-VC),第10次会议,瑞典斯德哥尔摩,2012年7月11日至20日)中,至2012年10月2 日为止,所述文档可自以下链接下载:http://phenix.1nt-evry.fr/jet/doc_end_user/documents/10_Stockholm/wglI/JCTVC-J1003-v8.zip.[0032]替代地,视频编码器20和视频解码器30可根据专有或行业标准操作,例如,ITU-TH.264标准(替代地被称作MPEG-4第10部分先进视频译码(AVC))或这些标准的扩展。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和 ITU-T H.263。
[0033]尽管图1中未展示,但在一些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包括适当的多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件及软件,以处理对共同数据流或分开的数据流中的音频与视频两者的编码。在一些实例中,如果可适用,MUX-DEMUX单元可遵守ITU H.223多路复用器协议或例如用户数据报协议(m)P)的其它协议。
[0034]视频编码器20和视频解码器30各自可经实施为例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合的多种合适编码器电路中的任一者。当部分以软件实施所述技术时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且使用一或多个处理器执行硬件中的指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含于一或多个编码器或解码器中,其中的任一者可作为组合式编码器/解码器(CODEC)集成于相应装置中。
[0035]JCT-VC正致力于开发HEVC标准。HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的演变模型。HM根据(例如)ITU-TH.264/AVC假定视频译码装置相对于现有装置的若干额外能力。例如,虽然H.264提供九个帧内预测编码模式,但HM可提供多达三十三个帧内预测编码模式。
[0036]—般来说,HM的工作模型描述可将视频巾贞或图片分成包含亮度和色度样本的一连串树型块或最大译码单元(LCU)。树型块具有与H.264标准的宏块类似的用途。切片按译码次序包含许多连续树型块。视频帧或图片可分区成一或多个切片。每一树型块可根据四叉树分裂成译码单元(CU)。例如,作为四叉树的根节点的树型块可分裂成四个子节点,且每一子节点可又为母节点,且分裂成另外四个子节点。作为四叉树的叶节点的最后未分裂子节点包括译码节点,即,经译码的视频块。与经译码的位流相关联的语法数据可定义可分裂树型块的最大次数,且也可定义译码节点的最小大小。
[0037]CU包含译码节点和与译码节点相关联的预测单元(PU)及变换单元(TU)。CU的大小对应于译码节点的大小,且必须形状为正方形。CU的大小可范围从8X8个像素直到最大64X64个像素或更大的树型块的大小。每一⑶可含有一或多个I3U和一或多个TU。与CU相关联的语法数据可描述(例如)CU到一或多个PU的分区。分区模式可在CU经跳过模式或直接模式编码、帧内预测模式编码还是帧间预测模式编码之间不同。可将PU分区为在形状上为非正方形。与CU相关联的语法数据还可根据四叉树描述(例如)CU到一或多个TU的分区。TU可在形状上为正方形或非正方形。
[0038]HEVC标准允许根据TU的变换,它可针对不同⑶而不同。通常可基于在针对经分区的LCU定义的给定CU内的PU的大小对TU定大小,但情况并不始终如此。TU通常与PU大小相同或小于PU。在一些实例中,可使用被称为“残余四叉树”(RQT)的四叉树结构将对应于CU的残余样本细分成更小的单元。RQT的叶节点可被称作变换单元(TU)。可变换与TU相关联的像素差值以产生可量化的变换系数。
[0039]一般来说,PU包含与预测过程有关的数据。例如,当经帧内模式编码时,PU可包含描述用于PU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包含定义用于PU的运动向量的数据。定义用于PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、用于运动向量的分辨率(例如,四分之一像素精确度或八分之一像素精确度)、运动向量指向的参考图片和/或用于运动向量的参考图片列表(例如,列表O、列表I或列表C)。
[0040]一般来说,TU用于变换和量化过程。具有一或多个I3U的给定⑶也可包含一或多个变换单元(TU)。在预测后,视频编码器20可计算对应于PU的残值。残值包括可使用TU变换成变换系数、经量化和扫描以产生用于熵译码的串行化变换系数的像素差值。本发明通常使用术语“视频块”来指CU的译码节点。在一些具体情况下,本发明还可使用术语“视频块”来指包含译码节点和I3U及TU的树型块,即,LCU或CU。
[0041]视频序列通常包含一系列视频帧或图片。图片群组大体上包括一系列一或多个所述视频图片。GOP可在GOP的标头、图片中的一或多者的标头或其它处中包含描述包含于GOP中的图片的数目的语法数据。图片的每一切片可包含描述用于相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作以便编码视频数据。视频块可对应于CU内的译码节点。视频块可具有固定或变化大小,且可根据指定译码标准而大小不同。
[0042]作为一实例,HM支援在各种I3U大小中的预测。假定特定⑶的大小为2NX 2N,那么HM支持在2NX2N或NXN的I3U大小中的帧内预测,和在2NX2N、2NXN、NX 2N或NXN的对称I3U大小中的帧间预测。HM还支持针对2NXnU、2NXnD、nLX2N和nRX2N的PU大小中的帧间预测的不对称分区。在不对称分区中,不分区CU的一个方向,同时将另一个方向分区成25%与75%o对应于25%分区的CU的部分由“η”跟着为“Up”、“Down”、“Left”或“Right”的指示来指示。因此,例如,“2NXnU”指水平分区为顶部2NX0.5N PU且底部为2NX1.5N PU 的 2NX2N CU。
[0043]在本发明中,“NXN”与“N乘N”可互换地使用以指就垂直和水平维度来说的视频块的像素尺寸,例如,16X16个像素或16乘16个像素。一般来说,16X16块将在垂直方向上具有16个像素(y = 16)且在水平方向上具有16个像素(x = 16)。同样地,NXN块大体上在垂直方向上具有N个像素且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成若干行和若干列。此外,块不需要在水平方向上必要地具有与在垂直方向上相同数目个像素。例如,块可包含NXM个像素,其中M未必等于N。
[0044]在使用CU的PU的帧内预测性或帧间预测性译码后,视频编码器20可计算用于CU的TU的残余数据。I3U可包括在空间域(也被称作像素域)中的像素数据,且在将例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换的变换应用到残余视频数据后,TU可包括在变换域中的系数。残余数据可对应于未编码的图片的像素与对应于的预测值之间的像素差。视频编码器20可形成包含用于CU的残余数据的TU,且接着变换TU以产生用于⑶的变换系数。
[0045]在任何变换以产生变换系数后,视频编码器20可执行变换系数的量化。量化大体上指量化变换系数以可能地减少用以表示系数的数据量从而提供进一步的压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。例如,在量化期间可将η位值下舍入到m位值,其中η大于m。
[0046]在一些实例中,视频编码器20可利用预定义的扫描次序扫描经量化的变换系数以产生可熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应性扫描。在扫描经量化的变换系数以形成一维向量后,视频编码器20可熵编码一维向量,例如,根据上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、基于语法的上下文自适应性二进制算术译码(SBAC)、概率间隔分区熵(PIPE)译码或另一熵编码方法。视频编码器20也可熵编码与经编码的视频数据相关联的语法元素,用于由视频解码器30在解码视频数据过程中使用。
[0047]为了执行CABAC,视频编码器20可将上下文模型内的上下文指派到待传输的符号。上下文可涉及(例如)符号的相邻值是否为非零。为了执行CAVLC,视频编码器20可选择用于待传输的符号的可变长度码。VLC中的码字可经构建使得相对较短的码对应于更可能发生的符号,而较长的码对应于不太可能发生的符号。以这个方式,VLC的使用可达成相较于(例如)针对待传输的每一符号使用相等长度码字的位节省。概率确定可基于指派到符号的上下文。
[0048]一般来说,在一些情况下,将偏移值添加到视频帧中的像素可改进译码。例如,可将偏移值应用到重构建的视频块的像素以便补偿照明改变、量化误差,或更通常地,以使经解码的视频数据更紧密地类似于原始视频数据。SAO技术允许取决于像素(或块)的像素值将不同偏移值应用到不同像素(或像素块)。可基于像素的值来确定待应用到像素的偏移值。例如,如果像素具有在第一频带内的值,那么可将与第一频带相关联的偏移应用到像素。如果像素具有在第二频带内的值,那么可将与第二频带相关联的偏移应用到像素,且对于所有频带,情况如此等等。[0049]在一个类型的SAO实施中,每一分区(其由一组IXU组成)可具有三个偏移类型(也叫作像素分类)中的一者。三个偏移类型为无偏移、基于频带分类的偏移类型0/1和基于边缘分类的类型0/1/2/3。每一频带分类偏移类型具有16个可能的偏移值,而每一基于边缘分类的类型具有4个可能的偏移值。如果选择这些偏移类型中的一个用于分区,那么可在经编码的视频位流中用信号发送指示对应的偏移类型和偏移值的信息。
[0050]图2为展示在SAO滤波的一个实施方案中使用的四个可能边缘偏移分类的概念图。在图2的实例中,边缘偏移类型基于边缘信息分类每一像素。对于图2中展示的边缘分类中的每一者,通过将当前像素(C)的值与相邻像素(I和2)的值比较来计算用于当前像素(即,正译码的特定像素)的边缘类型。对于分类零的SAO边缘偏移(SA0_E0_0),将当前像素与左边和右边邻居像素比较。对于分类一的SAO边缘偏移(SA0_E0_1),将当前像素与顶部和底部邻居像素比较。对于分类二的SAO边缘偏移(SA0_E0_2),将当前像素与左上和右下邻居像素比较。对于分类三的SAO边缘偏移(SA0_E0_3),将当前像素与左下和右上邻居像素比较。
[0051]一开始,假定当前像素的边缘类型为零。如果当前像素C的值等于左边和右边邻居像素(I和2)两者的值,那么边缘类型保持在零。如果当前像素C的值大于邻居像素I的值,那么将边缘类型增大一。如果当前像素C的值小于邻居像素I的值,那么将边缘类型减小一。同样地,如果当前像素C的值小于邻居像素2的值,那么将边缘类型增大一,且如果当前像素C的值小于邻居像素2的值,那么将边缘类型减小I。
[0052]因而,当前像素C可具有边缘类型_2、-1、0、I或2。如果当前像素C的值小于邻居像素I和2的两个值,那么边缘类型为_2。如果当前像素C的值小于一个邻居像素,但等于另一邻居像素,那么边缘类型为-1。如果当前像素C的值与两个邻居像素相同,或如果当前像素C的值大于一个邻居像素但小于另一邻居像素,那么边缘类型为O。如果当前像素C的值大于一个邻居像素,但等于另一邻居像素,那么边缘类型为I。如果当前像素C的值大于邻居像素I和2的两个值,那么边缘类型为2。对于每一非零边缘类型值,确定四个偏移值,且将其在经编码的视频位流中用信号发送,用于由解码器使用(即,eoffSet_2、eoffset^,eoffset^ eoffset2)。
[0053]鉴于以上描述,对于每一边缘偏移分类,可借助以下伪码计算边缘类型值:
[0054]EdgeType = O ;
[0055]if(C > PixelI)EdgeType = EdgeType+1 ;
[0056]if(C < PixelI)EdgeType = EdgeType-1 ;
[0057]if(C > Pixel2)EdgeType = EdgeType+1 ;
[0058]if(C < Pixel2)EdgeType = EdgeType-1
[0059]图3A为展示基于强度值的实例频带的概念图。为了实例的目的,假定像素值范围自O到255,但也可使用其它范围。在这个实例中,图3A中展示的最大值将等于255,且图3A中展示的三十二个频带 中的每一者将具有范围8。最左边频带将为像素值0-7,接下来的频带将针对8-15的像素值,接下来的频带将针对像素值16-23等等,直到将针对像素值248-255的最右边频带。对于频带偏移,基于强度将像素分类成不同频带(即,对于频带偏移分类,将像素归类成三十二个频带中的一者)。基于像素值落在哪一个频带中,将偏移添加到像素。例如,如果像素具有值19,那么像素值落在范围从像素值16到23的第三频带内。因此,与第三频带相关联的偏移将被添加到像素值19。
[0060]为了用信号发送与每一频带相关联的偏移值的目的,可将频带分群成两个或两个以上群组。在一些实施方案中,将在中心的十六个频带(频带8-23)分类成一个群组,且将剩余频带(频带0-7和24-31)分类成第二群组。对于每一群频带,确定16个偏移值(即,
boffsetO、.......boffsetj),且将其在经编码的视频位流中用信号发送,用于由视频解
码器使用。在一些实施方案中,可将用于一群组(例如,第二群组)的所有偏移值假定为0,在所述情况下,针对那个群组,无偏移值的用信号发送需要包含于经编码的视频位流中。
[0061]如图3A中所展示,中间十六个频带(频带8-23)构成第一频带群组,而八个最左边频带(频带0-7)构成第二频带群组的第一部分,且八个最右边频带(频带24-31)构成第二频带群组的第二部分。根据当前技术,此频带分群是固定的。本发明描述用于自适应地确定频带的分群的技术。例如,本发明描述用于基于像素的值确定针对一组像素的中心值的技术。可(例如)基于针对一频带群组的确定的中心确定中心值,且可基于针对像素集合的平均值、用于像素集合的中值或通过确定直方图的峰值所位于的像素来确定针对频带群组的中心。
[0062]可基于中心值将像素值的频带分成群组。例如,中心值可用以确定用于一个频带群组的中心。再次假定三十二个频带(频带0-31)和两个群组,在中心右边的八个频带和在中心左边的八个频带可为第一频带群组。其余十六个频带可为第二群组。因此,不同于一个群组始终由中间十六个频带组成的先前技术,本发明描述频带的分群可基于基于实际像素值确定的中心值为自适应性的技术。
[0063]图3B展示可根据本发明的技术使用的许多可能分群中的一者。在图3B的实例中,确定中心在频带18附近。因此,第一频带群组包含在中心左边的八个频带(频带11-18)和在中心右边的八个频带(频带19-26)。第二频带群组包含其余频带,在这个实例中,其为频带0-4和频带27-31。再次,图3B表示许多可能的情形中的一者。图3B的主要目的为展示根据本发明的技术,用于确定第一频带群组的中心可经自适应地确定,且不需要固定在图3A中展示的位置或固定在任何其它位置处。以下将更详细地解释用于确定中心值和自适应地确定频带的分群的技术。
[0064]图4为说明可实施本发明中描述的SAO滤波技术的实例视频编码器20的框图。视频编码器20可执行视频切片内的视频块的帧内和帧间译码。帧内译码依赖于空间预测来减少或去除在给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除在视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(P模式)或双向(B模式)的帧间模式可指若干基于时间的压缩模式中的任一者。
[0065]在图4的实例中,视频编码器20包含分区模块35、预测模块41、参考图片存储器64、求和器50、变换模块52、量化模块54和熵编码模块56。预测模块41包含运动估计模块42、运动补偿模块44和帧内预测模块46。为了视频块重构建,视频编码器20还包含反量化模块58、反变换模块60和求和器62。还可包含解块滤波器72以滤波块边界以从重构建的视频去除块效应伪影。如在图4中所展示,视频编码器20还包含额外环路滤波器,包含样本自适应性偏移(SAO)滤波器74和自适应性环路滤波器(ALF) 76。虽然将解块滤波器72,SAO滤波器74和ALF76在图4中展示为环路内滤波器,但在一些配置中,可将解块滤波器72、SAO滤波器74和ALF76实施为环路后滤波器。
[0066]如在图4中所展示,视频编码器20接收视频数据,且分区模块35将数据分区成视频块。这个分区也可包含分区成切片、图像块或其它较大单元,以及视频块分区,例如,根据LCU和CU的四叉树结构。视频编码器20大体上说明编码待编码的视频切片内的视频块的组件。可将切片分成多个视频块(且可能分成被称作图像块的视频块的集合)。预测模块41可基于误差结果(例如,译码速率和失真级别)选择多个可能的译码模式中的一者(例如,多个帧内译码模式中的一者或多个帧间译码模式中的一者),用于当前视频块。预测模块41可将所得帧内或帧间译码的块提供到求和器50以产生残余块数据,且提供到求和器62以重构建经编码的块,用于用作参考图片。
[0067]预测模块41内的帧内预测模块46可相对于与待译码的当前块相同的帧或切片中的一或多个相邻块执行当前视频块的帧内预测性译码以提供空间压缩。预测模块41内的运动估计模块42和运动补偿模块44相对于一或多个参考图片中的一或多个预测性块执行当前视频块的帧间预测性译码,以提供时间压缩。
[0068]运动估计模块42可经配置以根据用于视频序列的预定型样确定用于视频切片的帧间预测模式。确定的型样可将序列中的视频切片指明为预测的切片(P切片)、双向预测的切片(B切片)或一般化的P/B切片(GPB切片)。运动估计模块42和运动补偿模块44可高度集成,但为了概念目的而分开来说明。由运动估计模块42执行的运动估计为产生估计用于视频块的运动的运动向量的过程。例如,运动向量可指示当前视频帧或图片内的视频块的PU相对于参考图片内的预测性块的位移。
[0069]预测性块为就像素差来说发现紧密匹配待译码的视频块的的块,像素差可由绝对差的总和(SAD)、平方差的总和(SSD)或其它差度量来确定。在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的子整数像素位置的值。例如,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计模块42可相对于完全像素位置和分数像素位置执行运动搜寻,且按分数像素精确度输出运动向量。
[0070]运动估计模块42通过比较PU的位置与参考图片的预测性块的位置来计算用于经帧间译码的切片中的视频块的PU的运动向量。参考图片可选自第一参考图片列表(列表O)或第二参考图片列表(列表I),其中的每一者识别存储于参考图片存储器64中的一或多个参考图片。运动估计模块42将计算的运动向量发送到熵编码模块56和运动补偿模块44。
[0071]由运动补偿模块44执行的运动补偿可涉及基于通过运动估计确定的运动向量提取或产生预测性块,可能按子像素精确度执行内插。在接收到用于当前视频块的PU的运动向量,运动补偿模块44可在参考图片列表中的一者中找出运动向量指向的预测性块的位置。视频编码器20通过从正译码的当前视频块的像素值减去预测性块的像素值从而形成像素差值来形成残余视频块。像素差值形成用于块的残余数据,且可包含亮度和色度差分量。求和器50表示执行这个减法运算的一或多个组件。运动补偿模块44也可产生与视频块和视频切片相关联的语法元素,用于由视频解码器30在解码视频切片的视频块过程中使用。
[0072]作为对如上所述由运动估计模块42和运动补偿模块44执行的帧间预测的替代,帧内预测模块46可对当前块执行帧内预测。明确地说,帧内预测模块46可确定帧内预测模式以用以编码当前块。在一些实例中,帧内预测模块46可使用各种帧内预测模式编码当前块,例如,在分开的编码遍次期间,且帧内预测模块46 (或在一些实例中,模式选择模块40)可从测试的模式选择适当的帧内预测模式使用。例如,帧内预测模块46可使用针对各种测试的帧内预测模式的速率-失真分析来计算速率-失真值,且在测试的模式间选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析大体上确定经编码的块与经编码以产生经编码的块的原始未编码的块之间的失真(或误差)量,以及用以产生经编码的块的位速率(即,位数目)。帧内预测模块46可从用于各种编码的块的失真和速率计算比率以确定哪一帧内预测模式展现用于块的最佳速率-失真值。
[0073]在任一情况下,在选择了用于块的帧内预测模式后,帧内预测模块46可将指示用于块的选定帧内预测模式的信息提供到熵编码模块56。熵编码模块56可根据本发明的技术编码指示选定帧内预测模式的信息。视频编码器20可在传输的位流中包含配置数据,配置数据可包含多个帧内预测模式索引表和多个修改的帧内预测模式索引表(也被称作码字映射表)、针对各种块的编码上下文的定义和用于上下文中的每一者的最可能的帧内预测模式、帧内预测模式索引表和修改的帧内预测模式索引表的指示。
[0074]在预测模块41通过帧间预测或帧内预测产生用于当前视频块的预测性块后,视频编码器20通过从当前视频块减去预测性块来形成残余视频块。残余块中的残余视频数据可包含于一或多个TU中且应用到变换模块52。变换模块52使用例如离散余弦变换(DCT)或概念上类似的变换的变换将残余视频数据变换成残余变换系数。变换模块52可将残余视频数据从像素域转换到变换域(例如,频域)。
[0075]变换模块52可将所得变换系数发送到量化模块54。量化模块54量化变换系数以进一步减小位速率。量化过程可减少与系数中的一些或全部相关联的位深度。量化的程度可通过调整量化参数来修改。在一些实例中,量化模块54可接着执行对包含量化的变换系数的矩阵的扫描。替代地,熵编码模块56可执行扫描。
[0076]在量化后,熵编码模块56熵编码经量化的变换系数。例如,熵编码模块56可执行上下文自适应性可变长度译码(CAVLC)、上下文自适应性二进制算术译码(CABAC)、基于语法的上下文自适应性二进制算术译码(SBAC)、概率间隔分区熵(PIPE)译码或另一熵编码方法或技术。在由熵编码模块56进行的熵编码后,经编码的位流可被传输到视频解码器30,或存档以用于稍后由视频解码器30传输或检索。熵编码模块56也可熵编码用于正被译码的当前视频切片的运动向量和其它语法元素。
[0077]反量化模块58和反变换模块60分别应用反量化和反变换以在像素域中重构建残余块,供稍后用作参考图片的参考块。运动补偿模块44可通过将残余块添加到参考图片列表中的一者内的参考图片中的一者的预测性块来计算参考块。运动补偿模块44也可将一或多个内插滤波器应用到重构建的残余块以计算子整数像素值,供在运动估计中使用。求和器62将重构建的残余块添加到由运动补偿模块44产生的经运动补偿的预测块,以产生参考块以供存储于参考图片存储器64中。
[0078]在存储于存储器64中之前,重构建的残余块可由一或多个滤波器滤波。如果需要,也可应用解块滤波器72以滤波重构建的残余块,以便去除块效应伪影。也可使用其它环路滤波器(在译码环路中或在译码环路后)来使像素转变平滑,或另外改进视频质量。这些其它滤波器的一个实例为SAO滤波器74。参考块可由运动估计模块42和运动补偿模块44用作参考块来帧间预测随后的视频帧或图片中的块。
[0079]SAO滤波器74可以改进视频译码质量的方式确定用于SAO滤波的偏移值。改进视频译码质量可(例如)涉及确定使重构建的图像更紧密地匹配原始图像的偏移值。视频编码器20可(例如)使用具有不同偏移值的多个遍次来译码视频数据,且选择提供最佳译码质量(如基于速率-失真计算所确定)的偏移值供包含于经编码的位流中。
[0080]在一些配置中,SAO滤波器74可经配置以应用如上所述的两个类型的偏移(例如,频带偏移和边缘偏移)。SAO滤波器74也可有时不应用偏移,其可自身被视为第三类型的偏移。由SAO滤波器74应用的偏移的类型可明确或隐含地用信号发送到视频解码器。当应用边缘偏移时,可基于根据图2的边缘信息对像素进行分类,且可基于边缘分类确定滤波器。当应用频带偏移时,SAO滤波器74可基于像素值(例如,强度值)将像素分类成不同的频带,其中每一频带具有相关联的偏移。
[0081]为了用信号发送和产生用于各种频带的偏移的目的,SAO滤波器74可将三十二个频带分群成两个或两个以上群组,如在图3A和3B的实例中所展示。SAO滤波器74可(例如)将三十二个频带中的每一者分群至两个群组(即,两个十六个频带的群组)内。虽然本发明大体上描述将频带分群至相等大小的两个群组内,但也可使用两个以上群组和不等大小的群组。本发明描述用于确定如何确定这些群组的技术。
[0082]每一频带可跨越一系列像素值。像素值可(例如)为像素强度值,且可描述RGB值、亮度值、色度值或任一其它类型的像素值中的任一者。本发明中描述的技术可(例如)应用于视频数据的色度样本、视频数据的亮度样本或视频数据的色度和亮度样本两者。
[0083]在一些实施方案中,第一频带群组可居中于可能的像素值的范围的中心(即,max/2)处。因此,例如,如果像素值的范围为0-255,那么第一频带群组的中心可在像素值127与像素值128之间,其中第一群组跨越值64-191。第二群组的第一部分可跨越像素值0-63且第二群组的第二部分可跨越像素值192到255。第一群组包含十六个频带,且第二群组包含十六个频带(第一部分中的八个频带和第二部分中的八个频带)。这个实例分群展示于图3A中。虽然本发明的实例大体上假定三十二个频带中的每一频带大小相等,但在一些实施方案中,可使用不等大小的频带。
[0084]根据本发明的技术,SAO滤波器74可自适应性地确定第一群组的中心,而非使用频带的静态分群。SAO滤波器74可(例如)基于用于帧的区域中的像素的像素值的平均值或中值确定第一群组的中心。SAO滤波器74也可基于直方图的峰值所位于的像素确定第一群组的中心。一旦SAO滤波器74确定了第一群组的中心,那么SAO滤波器74可接着确定第二群组。再次,假定三十二个频带,第一群组可包含在中心左边的大致八个频带和在中心右边的大致八个频带。其余频带可形成第二群组。
[0085]作为一个实例,假定最大像素值为256,且SAO滤波器74在像素值90处基于以上描述的技术中的任何者确定用于第一频带群组的中心。在这个情况下,相对于图3A的静态分群,第一频带群组可向左移位,从而使第二群组的第一部分更小,同时使第二群组的第二部分更大。然而,如果SAO滤波器74确定第一群组的中心在170处,则第一群组相对于图3A的静态分群向右移位,从而使第二群组的第一部分更大,且使第二群组的第二部分更小。SAO滤波器74可根据在本发明中描述用于确定直方图的平均值、中值或峰值的技术中的任何者来确定中心,或可按某一其它方式确定。
[0086]在确定了中心后,SAO滤波器74可确定第一频带群组。SAO滤波器74可通过识别在中心左边的八个频带和在中心右边的八个频带来确定第一频带群组。在一些情况下,确定的中心可落在频带内。再次假定32个相等频带(频带0-31)和像素值0-255,频带12具有从96到103的值范围。如果(例如)SA0滤波器74确定中心为99,那么中心落在由频带12涵盖的像素值范围内。在这个情况下,SAO滤波器74可经配置以始终包含频带12作为在中心左边的八个频带中的一个,或始终包含频带12作为在中心右边的八个频带中的一个。如果SAO滤波器74将频带12识别为在中心左边的八个频带中的一个,那么第一频带群组包含频带5-20,而第二群组包含频带0-4和21-31。如果SAO滤波器74将频带12识别为在中心右边的八个频带中的一个,那么第一频带群组包含频带6-21,而第二群组包含频带
0-5和22-31。SAO滤波器74也可经配置以基于中心落在频带内何处确定频带12与中心左边的频带还是中心右边的频带包含在一起。因为99更靠近96,而非103,所以SAO滤波器74可经配置以响应于确定中心为99,将频带12识别为在中心左边的频带中的一个。然而,响应于确定中心为101 (其更靠近103,而非96),SAO滤波器74可经配置以频带12识别为在中心右边的频带中的一个。
[0087]虽然本发明的技术已使用具有三十二个频带和十六个频带的两个群组的实例大体上描述,但本发明的技术大体上适用于使用或多或少频带和或多或少群组的SAO方案。作为许多可能实例中的一个,本发明的技术可用以确定四个频带的第一群组和二十八个频带的第二群组,其中用于第二群组的偏移皆假定为具有值零。在另一实例中,可使用十六个频带、六十四个频带或某一其它数目个频带。
[0088]SAO滤波器74可基于这些分群产生且用信号发送用于频带的偏移。对于每一频带群组(再次假定十六个频带的群组),十六个偏移值可经确定且在经编码的视频位流中用信号发送,用于由视频解码器使用。在一个实例中,发送十六个频带偏移值的群组所需要的位数目可通过利用在群组内的频带偏移值之间的相关性而减少。在另一实例中,可使用相邻分区的频带偏移值来预测用于当前分区的群组的频带偏移值。相邻分区可为与当前分区有因果关系的分区(即,相邻分区已经编码)。相邻分区的实例包含空间相邻分区(例如,在当前分区上方或左边的分区),或时间相邻分区(例如,在先前编码的帧中的分区(例如,相同位置分区))。
[0089]用于找到中心的技术可应用于每一 IXU或IXU的群组。技术可(例如)应用于以类似于以上论述的四叉树分区的方式确定的帧的区域。帧可分区成四个区域,每一区域可分区成四个更小的区域,等等。SAO滤波器74可基于LCU群组或帧的其它区域内的所有像素值如上所述确定中心值,或可通过以利用IXU或IXU群组中的不是所有可利用的像素值的方式子采样像素来确定中心值。
[0090]图4的视频编码器20表示视频编码器的实例,其经配置以基于值确定用于一像素集合的中心值;基于中心值将像素值的频带分成群组;以及,基于群组确定用于频带的偏移值。视频编码器20可通过确定用于第一像素集合的平均值、确定用于像素集合的中值和/或确定直方图的峰值所位于的像素来确定像素集合的中心。视频编码器20可通过基于第一群组的第二频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。视频编码器20可通过基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。视频编码器20也可基于群组将频带偏移值用信号发送到视频解码器。在一些实施方案中,视频编码器20可产生语法元素,用于包含于指示确定的中心值的经编码的位流中。在一些情况下,语法元素可为针对一频带群组确定的中心的明确指示,但语法元素未必需要为确定的中心的明确指示。例如,中心值可识别特定群组的第一个或最后一个频带以使视频解码器能够重构建由视频编码器20确定的频带的同样分群。在这个情况下,由视频解码器重构建的频带的分群可与与由视频编码器确定的分群相同的中心对准,即使中心未明确地在经编码的位流中用信号发送。
[0091]图5为说明可实施本发明中描述的技术的实例视频解码器30的框图。在图5的实例中,视频解码器30包含熵解码模块80、预测模块81、反量化模块86、反变换模块88、求和器90和参考图片存储器92。预测模块81包含运动补偿模块82和帧内预测模块84。在一些实例中,视频解码器30可执行大体上与关于来自图4的视频编码器20描述的编码遍次互逆的解码遍次。
[0092]在解码过程期间,视频解码器30从视频编码器20接收表示经编码的视频切片的视频块和相关联的语法元素的经编码的视频位流。视频解码器30的熵解码模块80熵解码位流以产生经量化的系数、运动向量和其它语法元素。熵解码模块80将运动向量和其它语法元素转递到预测模块81。视频解码器30可在视频切片级别和/或视频块级别接收语法元素。
[0093]当将视频切片译码为经帧内译码的(I)切片时,预测模块81的帧内预测模块84可基于用信号发送的帧内预测模式和来自当前帧或图片的先前解码的块的数据产生用于当前视频切片的视频块的预测数据。当将视频帧译码为经帧间译码的(例如,B、P或GPB)切片时,预测模块81的运动补偿模块82基于从熵解码模块80接收的运动向量和其它语法元素产生用于当前视频切片的视频块的预测性块。可自参考图片列表中的一者内的参考图片中的一者产生预测性块。视频解码器30可基于存储于参考图片存储器92中的参考图片使用默认构建技术来构建参考帧列表——列表O和列表I。
[0094]运动补偿模块82通过剖析运动向量和其它语法元素确定用于当前视频切片的视频块的预测信息,且使用预测信息产生用于正经解码的当前视频块的预测性块。例如,运动补偿模块82使用接收的语法元素中的一些确定用以译码视频切片的视频块的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于用于切片的参考图片列表中的一或多者的构建信息、用于切片的每一经帧间编码的视频块的运动向量、用于切片的每一经帧间编码的视频块的帧间预测状态和解码当前视频切片中的视频块的其它信息。
[0095]运动补偿模块82也可基于内插滤波器执行内插。运动补偿模块82可使用如由视频编码器20在视频块的编码期间使用的内插滤波器计算用于参考块的子整数像素的内插的值。在这个情况下,运动补偿模块82可从接收的状态元素确定由视频编码器20使用的内插滤波器,且使用内插滤波器产生预测性块。
[0096]反量化模块86反量化(即,去量化)在位流中提供且由熵解码模块80解码的经量化的变换系数。反量化过程可包含使用由视频编码器20针对视频切片中的每一视频块计算的量化参数确定量化的程度,和同样的,应应用的反量化的程度。反变换模块88将反变换(例如,反DCT、反整数变换或概念上类似的反变换过程)应用到变换系数以便在像素域中产生残余块。
[0097]在运动补偿模块82基于运动向量和其它语法元素产生用于当前视频块的预测性块后,视频解码器30通过将来自反变换模块88的残余块与由运动补偿模块82产生的对应的预测性块求和来形成经解码的视频块。求和器90表示执行这个求和运算的一或多个组件。由求和器90形成的经解码的视频块可接着由解块滤波器93、SAO滤波器94和自适应性环路滤波器95滤波。在给定帧或图片中的经解码的视频块接着存储于参考图片存储器92中,参考图片存储器存储用于随后运动补偿的参考图片。参考图片存储器92也存储经解码的视频,用于稍后在例如图1的显示装置32的显示装置上呈现。
[0098]SAO滤波器94可经配置以应用与以上论述的SAO滤波器74相同的滤波(例如,边缘偏移和频带偏移)。以这个方式,作为执行频带偏移的部分,SAO滤波器74可确定用于第一频带群组的中心值,如上参看图4所描述。中心值可(例如)基于例如平均像素值、中间像素值的度量确定,或针对LCU或LCU群组基于直方图的峰值所位于的像素确定。
[0099]在一些实施方案中,SAO滤波器94可在视频位流中接收在视频编码器处确定的中心的指示。指示可呈如由视频编码器计算的实际中心值的形式,或可呈用于第一群组的第一频带的指示、第二群组的第一部分的最后一个频带的指示、用于第一群组的中间值或使SAO滤波器94能够确定由视频编码器使用的频带的相同分群的某一其它这条信息的形式。基于基于中心值确定的第一群组和第二群组,SAO滤波器94可基于在经编码的视频位流中接收的信息产生偏移值。对于群组中的一者(例如,第二群组),可假定偏移值都等于零。
[0100]对于IXU群组,SAO滤波器94可通过确定用于IXU群组的平均像素值来确定中心值。SAO滤波器94可通过将IXU群组中的所有或一些像素的像素值求和且除以其值为总和的部分的像素的数目来确定平均像素值,其中所得值为用于LCU群组的平均像素值。SAO滤波器94可接着按以上描述的方式使用确定的平均像素值来确定频带的分群。
[0101]替代地,对于IXU群组,SAO滤波器94可通过确定用于IXU群组的中间像素值来确定中心值。SAO滤波器94可通过识别IXU群组的像素值的一半大于值且IXU群组的像素值的一半低于值的所述值来确定中间像素值。SAO滤波器94可接着按以上描述的方式使用确定的中间像素值来确定频带的分群。
[0102]替代地,对于IXU群组,SAO滤波器94可通过针对IXU或IXU群组确定直方图的峰值位于何处来确定中心值。直方图大体上可被视为用于LCU群组的像素值的分布的统计表示。因此,SAO滤波器94可通过识别在IXU群组中最频繁地出现的一或多个像素值来确定直主图的峰值。SAO滤波器94可接着按以上描述的方式使用直方图中的峰值的确定的值来确定频带的分群。
[0103]如何确定中心值的三个实例(例如,平均值、中间、直方图的峰值)可由SAO滤波器74和SAO滤波器94中的一个或两个执行,且并非可确定中心值所借助的仅有的三个可能技术。预料到大体上涉及动态确定用于用信号发送频带偏移值的频带的分群的本发明的技术可与用于确定中心值的其它这些技术兼容。
[0104]图5的视频解码器30表示视频解码器的实例,其经配置以基于像素的值确定用于一像素集合的中心值;基于中心值将像素值的频带分成群组;以及,基于群组确定用于频带的偏移值。在一些实施方案中,视频解码器30可通过接收指示中心值的语法元素来确定中心值。如上所述,语法元素可或可不为中心值的明确指示。在一些实施方案中,视频解码器30可通过确定像素集合的平均值、确定像素集合的中值和/或确定直方图的峰值所位于的像素来确定中心值。视频解码器30可通过基于第一群组的第二频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。视频解码器30可通过基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。视频解码器30也可基于群组重构建从视频编码器用信号发送的频带偏移值。
[0105]以这个方式,图5的视频解码器30表示视频解码器的实例,其经配置以基于用于群组的像素的值确定用于一像素集合的中心值;基于中心值将像素值的频带分成群组;以及,基于群组确定用于频带的偏移值。视频解码器30可通过接收指示中心值的语法元素确定中心值,通过确定用于像素集合的平均值确定中心值,通过确定用于像素集合的中值确定中心值,或确定中心值包括确定直方图的峰值所位于的像素。像素集合可(例如)包含最大译码单元(LCU)的群组。视频解码器30可通过基于第一群组的第二频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。视频解码器30可通过基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。
[0106]图6展示说明本发明中描述的SAO滤波技术的流程图。图6的技术可由具有SAO滤波模块的视频译码 器(例如,视频编码器20或视频解码器30)执行。将参照视频解码器30来描述图6的技术。但应理解,图6的技术适用于宽泛阵列的视频译码装置,且不仅限于视频解码器。
[0107]视频解码器30基于像素的值确定用于像素集合的中心值(610)。视频解码器30可(例如)通过确定像素集合的平均值、确定像素集合的中值、确定直方图的峰值所位于的像素来确定中心值。视频解码器30基于中心值将像素值的频带分成群组(620)。视频解码器30基于群组确定用于频带的偏移值(630)。视频解码器30可通过基于第一群组的第二频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。视频解码器30也可通过基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值来基于群组确定用于频带的偏移值。
[0108]在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合实施。如果以软件实施,那么功能可作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体的有形媒体),或包含促进计算机程序从一处转移到另一处(例如,根据通信协议)的任何媒体的通信媒体。以这个方式,计算机可读媒体大体上可对应于(I)为非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如,信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码和/或数据指令用于实施本发明中描述的技术的任何可利用的媒体。计算机程序产品可包含计算机可读媒体。
[0109]例如,且不受限制,这些计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用以以指令或数据结构的形式存储所要的程序代码且可由计算机存取的任一其它媒体。同样,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它短暂媒体,而取而代之,针对非短暂、有形存储媒体。如本文中所使用,磁盘及光盘包括紧密光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘使用激光光学地复制数据。上文的组合也应包含在计算机可读媒体的范围内。
[0110]指令可由一或多个处理器执行,例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。此外,在一些方面,本文中描述的功能性可提供于经配置用于编码和解码或内插于组合式编码解码器中的专用硬件和/或软件模块内。同样,可将所述技术完全实施于一或多个电路或逻辑元件中。
[0111]本发明的技术可实施于广泛多种装置或设备中,包含无线手机、集成电路(IC)或IC集合(例如,芯片集合)。各种组件、模块或单元在本发明中描述以强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元实现。相反地,如上所述,各种单元可组合于编码解码器硬件单元中或由互操作的硬件单元(包含如上所述的一或多个处理器)结合合适的软件和/或固件的集合来提供。
[0112]已描述了各种实例。这些及其它实例在以下权利要求书的范围内。
【权利要求】
1.一种用于译码视频数据的方法,所述方法包括: 确定用于像素集合的中心值,其中所述中心值是基于所述像素的值; 基于所述中心值将像素值的频带分成频带群组; 基于所述群组确定用于所述频带的偏移值。
2.根据权利要求1所述的方法,其中所述方法由视频解码器执行,且其中确定所述中心值包括接收语法元素,且其中将像素值的所述频带分成频带群组包括基于所述语法元素确定所述频带群组,所述方法进一步包括基于所述偏移值应用样本自适应性偏移SAO滤波器。
3.根据权利要求1所述的方法,其中所述方法由视频编码器执行,且其中所述方法进一步包括: 产生语法元素以供包含于经编码的位流中,其中所述语法元素指示所述中心值。
4.根据权利要求1所述的方法,其中确定所述中心值包括确定用于所述像素集合的平均值。
5.根据权利要求1所述的方法,其中确定所述中心值包括确定用于所述像素集合的中值。
6.根据权利要求1所述的方法,其中确定所述中心值包括确定直方图的峰值所位于的所述像素。
7.根据权利要求1所述的方法,其中所述像素集合包括最大译码单元IXU的群组。
8.根据权利要求1所述的方法,其中基于所述群组确定用于所述频带的偏移值包括基于第一群组的第二频带偏移产生用于所述第一群组的频带的频带偏移值。
9.根据权利要求1所述的方法,其中基于所述群组确定用于所述频带的偏移值包括基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值。
10.一种视频译码装置,所述视频译码装置包括: 视频译码器,其经配置以:确定用于像素集合的中心值,其中所述中心值是基于所述像素的值;基于所述中心值将像素值的频带分成群组;以及,基于所述群组确定用于所述频带的偏移值。
11.根据权利要求10所述的视频译码装置,其中所述视频译码器包括视频解码器,且其中所述视频译码器经配置以 通过接收语法元素来确定所述中心值; 通过基于所述语法元素确定频带群组将像素值的所述频带分成所述频带群组;以及, 基于所述偏移值应用样本自适应性偏移SAO滤波器。
12.根据权利要求10所述的视频译码装置,其中所述视频译码器包括视频编码器,且其中所述视频译码器经进一步配置以产生语法元素以供包含于经编码的位流中,其中所述语法元素指示所述中心值。
13.根据权利要求10所述的视频译码装置,其中所述视频译码器经配置以基于用于所述像素集合的平均值确定所述中心值。
14.根据权利要求10所述的视频译码装置,其中所述视频译码器经配置以基于用于所述像素集合的中值确定所述中心值。
15.根据权利要求10所述的视频译码装置,其中所述视频译码器经配置以基于直方图的峰值所位于的像素来确定所述中心值。
16.根据权利要求10所述的视频译码装置,其中所述像素集合包括最大译码单元LCU的群组。
17.根据权利要求10所述的视频译码装置,其中所述视频译码器经配置以通过基于第一群组的第二频带偏移产生用于所述第一群组的频带的频带偏移值来基于所述群组确定用于所述频带的所述偏移值。
18.根据权利要求10所述的视频译码装置,其中所述视频译码器经配置以通过基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值来基于所述群组确定用于所述频带的所述偏移值。
19.根据权利要求10所述的视频译码装置,其中所述视频译码装置包括下列中的至少一者: 集成电路; 微处理器;以及, 无线通信装置,其包含所述视频译码器。
20.一种计算机可读 存储媒体,其存储可操作以使一或一个以上处理器进行以下操作的指令: 确定用于像素集合的中心值,其中所述中心值是基于所述像素的值; 基于所述中心值将像素值的频带分成群组; 基于所述群组确定用于所述频带的偏移值。
21.根据权利要求20所述的计算机可读存储媒体,其中所述一或一个以上处理器包括视频解码器,且其中所述指令使所述一或一个以上处理器 通过接收语法元素来确定所述中心值; 通过基于所述语法元素确定频带群组将像素值的所述频带分成所述频带群组;以及, 基于所述偏移值应用样本自适应性偏移SAO滤波器。
22.根据权利要求20所述的计算机可读存储媒体,其中所述一或一个以上处理器包括视频解码器,且其中所述计算机可读存储媒体存储另外指令,所述另外指令使所述一或一个以上处理器产生语法元素以供包含于经编码的位流中,其中所述语法元素指示所述中心值。
23.根据权利要求20所述的计算机可读存储媒体,其中所述指令使所述一或一个以上处理器通过确定用于所述像素集合的平均值来确定所述中心值。
24.根据权利要求20所述的计算机可读存储媒体,其中所述指令使所述一或一个以上处理器通过确定用于所述像素集合的中值来确定所述中心值。
25.根据权利要求20所述的计算机可读存储媒体,其中所述指令使所述一或一个以上处理器通过确定直方图的峰值所位于的像素来确定所述中心值。
26.根据权利要求20所述的计算机可读存储媒体,其中所述像素集合包括最大译码单元IXU的群组。
27.根据权利要求20所述的计算机可读存储媒体,其中所述指令使所述一或一个以上处理器通过基于第一群组的第二频带偏移产生用于所述第一群组的频带的频带偏移值来基于所述群组确定用于所述频带的所述偏移值。
28.根据权利要求20所述的计算机可读存储媒体,其中所述指令使所述一或一个以上处理器通过基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值来基于所述群组确定用于所述频带的所述偏移值。
29.一种用于译码视频数据的设备,所述设备包括: 用于确定用于像素集合的中心值的装置,其中所述中心值是基于所述像素的值; 用于基于所述中心值将像素值的频带分成群组的装置; 用于基于所述群组确定用于所述频带的偏移值的装置。
30.根据权利要求29所述的设备,其中所述设备包括视频解码器,且其中所述用于确定所述中心值的装置包括用于接收语法元素的装置,且所述用于将像素值的所述频带分成频带群组的装置包括用于基于所述语法元素确定所述频带群组的装置;且其中所述设备进一步包括用于基于所述偏移值应用样本自适应性偏移SAO滤波器的装置。
31.根据权利要求29所述的设备,其中所述设备包括视频编码器,且其中所述设备进一步包括: 用于产生语法元素以供包含于经编码的位流中的装置,其中所述语法元素指示所述中心值。
32.根据权利要求29所述的设备,其中所述用于确定所述中心值的装置包括用于确定用于所述像素集合的平均 值的装置。
33.根据权利要求29所述的设备,其中所述用于确定所述中心值的装置包括用于确定用于所述像素集合的中值的装置。
34.根据权利要求29所述的设备,其中所述用于确定所述中心值的装置包括用于确定直方图的峰值所位于的所述像素的装置。
35.根据权利要求29所述的设备,其中所述像素集合包括最大译码单元IXU的群组。
36.根据权利要求29所述的设备,其中所述用于基于所述群组确定用于所述频带的所述偏移值的装置包括用于基于第一群组的第二频带偏移产生用于所述第一群组的频带的频带偏移值的装置。
37.根据权利要求29所述的设备,其中所述用于基于所述群组确定用于所述频带的所述偏移值的装置包括用于基于针对相邻分区确定的频带偏移产生用于第一群组的频带的频带偏移值的装置。
【文档编号】H04N19/82GK104012091SQ201280053792
【公开日】2014年8月27日 申请日期:2012年11月2日 优先权日:2011年11月4日
【发明者】钟仁肃, 桑吉弗·库马尔, 马尔塔·卡切维奇 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1