用于视频译码中的帧内预测的经改进内插滤波器的制作方法

文档序号:17585196发布日期:2019-05-03 21:15阅读:177来源:国知局
用于视频译码中的帧内预测的经改进内插滤波器的制作方法

本申请主张2016年9月28日提交的第62/401,067号美国临时申请的权益,所述申请的全部内容以引用的方式并入本文中。

本公开涉及视频译码。



背景技术:

数字视频能力可并入到各种装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等等。数字视频装置实施视频压缩技术,例如描述于以下各项中的那些技术:由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分高级视频译码(avc)定义的标准、itu-th.265高效率视频译码(hevc)标准,及这些标准的扩展。视频装置可通过实施这些视频压缩技术而更高效地传输、接收、编码、解码和/或存储数字视频信息。

视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测来减少或移除视频序列中固有的冗余。对于基于块的视频译码来说,视频切片(即,视频帧或视频帧的一部分)可分割成视频块,视频块也可被称作树块、译码单元(cu)及/或译码节点。使用相对于相同图片中的相邻块中的参考样本的空间预测对图片的经帧内译码(i)切片中的视频块进行编码。图片的经帧间译码(p或b)切片中的视频块可使用相对于相同图片中的相邻块中的参考样本的空间预测,或相对于其它参考图片中的参考样本的时间预测。空间或时间预测产生待译码块的预测性块。残余数据表示待译码原始块与预测性块之间的像素差。经帧间译码块根据指向形成预测性块的参考样本块的运动向量及指示经译码块与预测性块之间的差的残余数据来编码。经帧内译码块根据帧内译码模式及残余数据来编码。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,接着可量化所述残余变换系数。



技术实现要素:

大体来说,本公开描述与结合帧内预测使用的内插滤波有关的技术。可在高级视频编解码器(例如hevc的扩展或下一代视频译码标准)的上下文中使用本文中所描述的一或多种技术。

在一个实例中,本公开描述一种处理视频数据块的方法,所述方法包含使用内插滤波器的一或多个特征,确定将存储在参考缓冲器处的参考样本的数量。所述方法还包含生成对应于所述参考缓冲器中的所述参考样本的数量的多个值。所述方法还包含使用所述内插滤波器和所述多个值,生成用于帧内预测的预测信息。所述方法还包含基于所述预测信息重构所述视频数据块。

在一个实例中,本公开描述一种用于处理视频数据块的设备,所述设备包含经配置以存储所述视频数据的存储器和一或多个处理器。一或多个处理器经配置以使用内插滤波器的一或多个特征,确定将存储在参考缓冲器处的参考样本的数量。一或多个处理器经配置以生成对应于所述参考缓冲器中的所述参考样本的数量的多个值。一或多个处理器经配置以使用所述内插滤波器和所述多个值,生成用于帧内预测的预测信息。一或多个处理器经配置以基于所述预测信息重构所述视频数据块。

在一个实例中,本公开描述一种存储指令的非暂时性计算机可读存储媒体,所述指令在执行时使用于对视频数据进行译码的装置的一或多个处理器使用内插滤波器的一或多个特征,确定将存储在参考缓冲器处的参考样本的数量。所述指令还使得所述一或多个处理器生成对应于所述参考缓冲器中的所述参考样本的数量的多个值。所述指令还使得所述一或多个处理器使用所述内插滤波器和所述多个值,生成用于帧内预测的预测信息。所述指令还使得所述一或多个处理器基于所述预测信息重构所述视频数据块。

在一个实例中,本公开描述一种用于处理视频数据块的设备,所述设备包含用于使用内插滤波器的一或多个特征确定将存储在参考缓冲器处的参考样本的数量的装置。所述设备还包含用于生成对应于所述参考缓冲器中的所述参考样本的数量的多个值的装置。所述设备还包含用于使用所述内插滤波器和所述多个值生成用于帧内预测的预测信息的装置。所述设备还包含用于基于所述预测信息重构所述视频数据块的装置。

在下文的附图和描述中阐述本公开的一或多个方面的细节。本公开中所描述的技术的其它特征、目标和优点将根据描述、图式和权利要求书而显而易见。

附图说明

图1是本公开中所描述的说明可利用一或多种技术的实例视频编码和解码系统的框图。

图2是16x16块的帧内预测的实例。

图3是示出实例帧内预测模式的概念图。

图4是示出实例平面帧内预测模式的概念图。

图5是示出基于角度预测模式的双线性内插的实例的概念图。

图6是示出用于帧内预测的实例参考样本的概念图。

图7是示出角度帧内预测的实例正向和负向预测方向的概念图。

图8是示出角度帧内预测的实例参考样本映射过程的概念图。

图9是示出其它实例帧内预测模式的概念图。

图10是示出基于角度预测模式的实例4抽头内插的概念图。

图11是示出边界位置处的实例4抽头内插的概念图。

图12a是示出用于导出跨分量线性预测模型预测模式的线性预测参数的色度样本的位置的概念图。

图12b是示出用于导出跨分量线性预测模型预测模式的线性预测参数的亮度样本的位置的概念图

图13是说明可实施本公开中所描述的一或多种技术的实例视频编码器的框图。

图14是说明可实施本公开中描述的一种或多种技术的实例视频解码器的框图。

图15是说明本公开的第一实例译码方法的流程图。

图16是说明本公开的第二实例译码方法的流程图。

图17是说明本公开的第三实例译码方法的流程图。

具体实施方式

大体来说,本公开描述与用于视频译码中的帧内预测的内插滤波器有关的技术。可在高级视频编解码器(例如hevc的扩展或下一代视频译码标准)的上下文中使用内插滤波器。

视频编码器可生成呈适用于从视频编码器输出到视频解码器的形式的残余视频数据块。视频解码器可使用内插滤波器生成预测性块,并使用残余块和预测性块生成译码视频数据块。希望减少用于表示残余块的数据的量,使得从视频编码器传输到视频解码器的数据的量减少。一般来说,当内插滤波器的准确性增加时,从视频编码器传输到视频解码器的用于表示残余块的数据的量减少。

在视频译码中,4抽头内插滤波器可使用存储在参考样本缓冲器中的参考样本。在一些技术中,mxn块的参考样本缓冲器可包含2*(m+n)+1个参考样本用于帧内预测。相比于4抽头内插滤波器,更长抽头滤波器(例如,相对于4抽头)(例如,6抽头、8抽头或另一更长抽头滤波器)可进一步改进译码性能。然而,此类更长抽头内插滤波器通常并不实施用于视频译码,因为相比于4抽头内插滤波器,它们具有获得更多参考样本的复杂性。

另外,对于布置在块边界附近的参考像素,视频编码器和解码器可存取超出存储在参考样本缓冲器中的参考样本范围(即,不可用)的参考样本,以用于某些内插滤波器。为了适应超出范围的参考像素,一些技术可包含视频编码器和/或视频解码器执行使用不可用参考样本的相邻参考值的修剪运算,相比于具有更少抽头的内插滤波器,这可能会增加复杂性,所述更少抽头的内插滤波器不会产生超出存储在参考样本缓冲器中的参考样本的范围的参考样本。

此外,用于内插滤波的一些技术可包含执行舍入运算的帧内参考样本映射过程。然而,舍入运算沿着预测方向可能会存在预测误差,从而使得所得残余块误差变大。

视频译码器(例如,视频解码器、视频编码器等)可生成包含适应用于图像块预测的内插滤波器的一或多个特征的动态(例如,自适应或可修改)数量的参考样本的参考样本缓冲器,而不是依赖于包含静态数量(例如,固定数量,如2*(m+n)+1)个用于帧内预测的参考样本的mxn块的参考样本缓冲器。通过这种方式,相比于使用静态数量(例如,2*(m+n)+1)的参考样本的视频译码器,使用动态数量的参考样本的视频译码器可选择参考样本的数量,以便准许使用更长抽头滤波器。此外,相比于使用静态数量(例如,2*(m+n)+1)的参考样本的视频译码器,使用动态数量的参考样本的视频译码器可选择参考样本的数量,以便减少或去除数个修剪运算。另外,相比于使用静态数量(例如,2*(m+n)+1)的参考样本的视频译码器,使用动态数量的参考样本的视频译码器可选择参考样本来减少或去除执行舍入运算的帧内参考样本映射过程,从而减小所得残余块的误差。

视频译码器可针对每一块、切片、图块或图片选择内插滤波器,而不是向块、切片、图块或图片应用单个内插滤波器。通过这种方式,相比于针对整个块、切片、图块或图片使用单个内插滤波器的视频译码器,使用多个内插滤波器的视频译码器可基于获得更多参考样本的复杂性来选择内插滤波器,从而准许更高效地使用更长抽头内插滤波器。

视频译码器可向相邻参考样本应用内插滤波器以导出值,而不是使用最接近的相邻参考来导出参考值。通过这种方式,相比于使用最接近的相邻参考来导出参考值的译码器译码器,应用内插滤波器的视频译码器可减小所得残余块的误差。

图1是说明可利用本公开的技术的实例视频编码和解码系统10的框图。如图1所示,系统10包含源装置12,所述源装置12提供将在稍后时间由目的地装置14解码的经编码视频数据。具体地说,源装置12通过计算机可读媒体16向目的地装置14提供视频数据。源装置12和目的地装置14可包括各种装置中的任一个,包含台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、手机(例如,所谓的“智能”电话)、平板计算机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等等。在一些情况下,源装置12和目的地装置14可经装备以用于无线通信。因此,源装置12和目的地装置14可以是无线通信装置。源装置12是实例视频译码装置,更确切地说,实例视频编码装置(即,用于对视频数据进行编码的装置)。目的地装置14是实例视频译码装置,更确切地说,实例视频解码装置(即,用于对视频数据解码的装置)。如本文中所使用,视频译码器可以指视频解码器(例如,视频解码装置)、视频编码器(例如,视频编码装置)或另一视频译码装置。

在图1的实例中,源装置12包含视频源18、经配置以存储视频数据的存储媒体19、视频编码器20和输出接口24。目的地装置14包含输入接口26、经配置以存储经编码视频数据的存储媒体28、视频解码器30和显示装置32。在其它实例中,源装置12和目的地装置14包含其它组件或布置。例如,源装置12可从外部视频源(例如,外部相机)接收视频数据。同样地,目的地装置14可与外部显示装置介接,而不是包含集成显示装置。

图1所说明的系统10仅仅是一个实例。用于处理视频数据的技术可通过任何数字视频编码和/或解码装置执行。尽管一般来说,本公开的技术由视频编码装置执行,但是技术还可由视频编码器/解码器(通常被称为“编解码器”)执行。源装置12和目的地装置14仅仅是此类译码装置的实例,其中源装置12生成用于传输到目的地装置14d经译码视频数据。在一些实例中,源装置12和目的地装置14可以大体上对称的方式操作,使得源装置12和目的地装置14中的每一个包含视频编码和解码组件。因此,系统10可支持源装置12和目的地装置14之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。

源装置12的视频源18可包含视频捕获装置(例如摄像机)、含有先前捕获的视频的视频存档和/或用于从视频内容提供者接收视频数据的视频馈送接口。作为另一替代方案,视频源18可生成基于计算机图形的数据作为源视频,或实时视频、存档视频和计算机生成的视频的组合。源装置12可包括经配置以存储视频数据的一或多个数据存储媒体(例如,存储媒体19)。本公开中描述的技术大体上可适用于视频译码,并且可应用于无线和/或有线应用。在每一情况下,所捕获的、预捕获的或计算机生成的视频可由视频编码器20编码。输出接口24可将经编码视频信息输出到计算机可读媒体16。

目的地装置14可通过计算机可读媒体16接收待解码的经编码视频数据。计算机可读媒体16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一些实例中,计算机可读媒体16包括使得源装置12实时地直接向目的地装置14传输经编码视频数据的通信媒体。经编码视频数据可根据通信标准(例如,无线通信协议)进行调制,并被传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(rf)频谱或一或多个物理传输线。通信媒体可形成基于包的网络的一部分,例如局域网、广域网或全球网络(例如,因特网)。通信媒体可包含路由器、交换机、基站或可适用于促进从源装置12到目的地装置14的通信的任何其它设备。目的地装置14可包括经配置以存储经编码视频数据和经解码视频数据的一或多个数据存储媒体。

在一些实例中,经编码数据可从输出接口24输出到存储装置。类似地,经编码数据可通过输入接口从存储装置存取。存储装置可包含各种分布式或本地存取的数据存储媒体中的任一个,例如硬盘驱动器、蓝光光盘、dvd、cd-rom、快闪存储器、易失性或非易失性存储器,或任何其它合适的用于存储经编码视频数据的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或另一可存储由源装置12生成的经编码视频的中间存储装置。目的地装置14可通过流式传输或下载从存储装置存取所存储视频数据。文件服务器可以是能够存储经编码视频数据并向目的地装置14传输所述经编码视频数据的任何类型的服务器。实例文件服务器包含网络服务器(例如,对于网站)、ftp服务器、网络连接存储(nas)装置或本地磁盘驱动器。目的地装置14可通过包含因特网连接的任何标准数据连接存取经编码视频数据。这可包含无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或适用于存取存储在文件服务器上的经编码视频数据的这两者的组合。经编码视频数据从存储装置的传输可为流式传输、下载传输或其组合。

技术可应用于支持各种多媒体应用中的任一个的视频译码,例如空中电视广播、有线电视传输、卫星电视传输、因特网流式视频传输,例如通过http的动态自适应流式传输(dash)、编码到数据存储媒体上的数字视频、存储在数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输,以支持例如视频流、视频回放、视频广播和/或视频电话的应用。

计算机可读媒体16可包含暂时性媒体(例如无线广播或有线网络传输),或存储媒体(非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未示出)可从源装置12接收经编码视频数据并向目的地装置14提供经编码视频数据,例如,通过网络传输。类似地,媒体生产设施(例如,压盘设施)的计算装置可从源装置12接收经编码视频数据并产生含有所述经编码视频数据的光盘。因此,在各种实例中,计算机可读媒体16可被理解成包含各种形式的一或多个计算机可读媒体。

目的地装置14的输入接口26从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由还供视频解码器30使用的视频编码器20的视频编码器20限定的语法信息,所述语法信息包含描述块和其它经译码单元(例如,图片群组(gop))的特征和/或处理的语法元素。存储媒体28可经配置以存储经编码视频数据,例如由输入接口26接收的经编码视频数据(例如,位流)显示装置32向用户显示经解码视频数据,并且可包括各种显示装置中的任一个,例如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示装置。

视频编码器20和视频解码器30各自可实施为各种合适的编码器电路系统或解码器电路系统中的任一个,例如一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当技术部分地实施为软件时,装置可在合适的非暂时性计算机可读媒体中存储用于所述软件的指令,并使用一或多个处理器执行硬件中的指令以执行本公开的技术。视频编码器20和视频解码器30中的每一个可包含在一或多个编码器或解码器中,其中的任一个可集成为相应装置中的组合编码器/解码器(编解码器)的一部分。

在一些实例中,视频编码器20和视频解码器30可根据视频译码标准(例如,已存在的或未来的标准)操作。实例视频编码标准包含但不限于itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual和itu-th.264(也被称为iso/iecmpeg-4avc),包含其可调式视频译码(svc)和多视图视频译码(mvc)扩展。此外,近来,关于视频译码的联合合作小组(jct-vc)以及itu-t视频编码专家组(vceg)和iso/iec动画专家组(mpeg)的关于3d视频译码扩展发展的联合合作小组(jct-3v)已建立新的视频译码标准,即高效视频译码(hevc)或itu-th.265,包含其范围和屏幕内容译码扩展、3d视频译码(3d-hevc)和多视图扩展(mv-hevc)和可调式扩展(shvc)。最新的hevc草案规范在下文中被称为hevcwd,它可获自http://phenix.int-evry.fr/jct/doc_end_user/documents/14_vienna/wg11/jctvc-n1003-v1.zip。

在一些实例中,视频编码器20可经配置以从多个内插滤波器中选择内插滤波器,并使用所述内插滤波器生成用于重构视频数据块的预测信息。例如,视频编码器20可选择使用可获自参考样本缓冲器的最大量的参考样本的滤波器,而不是所述多个滤波器中不使用不包含在参考样本缓冲器中的任何参考样本的其它滤波器。类似地,视频解码器30可经配置以从多个内插滤波器中选择内插滤波器,并使用所述内插滤波器生成用于重构视频数据块的预测信息。例如,视频解码器30可选择使用可获自参考样本缓冲器的最大量的参考样本的滤波器,而不是所述多个滤波器中不使用不包含在参考样本缓冲器中的任何参考样本的其它滤波器。

更确切地说,例如,视频编码器20可经配置以针对视频块,确定目标内插滤波器类型和目标内插滤波器抽头。举例来说,视频编码器20可经配置以基于视频块的块高度和/或宽度,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频编码器20可经配置以基于视频块的形状,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频编码器20可经配置以基于视频块的区域大小,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频编码器20可经配置以基于帧内预测模式,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频编码器20可经配置以基于相邻经解码信息(例如,相邻块的经重构样本值),确定目标内插滤波器类型和/或目标内插滤波器抽头。在任何情况下,视频编码器20可选择对应于视频块的目标内插滤波器类型和目标内插滤波器抽头的内插滤波器,并使用选定内插滤波器生成用于重构视频块的预测信息。

类似地,例如,视频解码器30可经配置以针对视频块,确定目标内插滤波器类型和目标内插滤波器抽头。举例来说,视频解码器30可经配置以基于视频块的块高度和/或宽度,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频解码器30可经配置以基于视频块的形状,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频解码器30可经配置以基于视频块的区域大小,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频解码器30可经配置以基于帧内预测模式,确定目标内插滤波器类型和/或目标内插滤波器抽头。在一些情况下,视频解码器30可经配置以基于相邻经解码信息(例如,相邻块的经重构样本值),确定目标内插滤波器类型和/或目标内插滤波器抽头。在任何情况下,视频解码器30可选择对应于视频块的目标内插滤波器类型和目标内插滤波器抽头的内插滤波器,并使用选定内插滤波器生成用于重构视频块的预测信息。

视频编码器20可经配置以向单个视频块应用不同滤波器。例如,视频编码器20可经配置以针对视频块的第一部分(例如,子块),从多个内插滤波器中选择第一内插滤波器,并针对视频块的第二部分(例如,子块),从多个内插滤波器中选择第二内插滤波器,其中第一和第二内插滤波器是不同的。举例来说,视频编码器20可经配置以当视频编码器20可使用包含在参考样本缓冲器中的参考样本应用4抽头内插滤波器时,并且当参考样本缓冲器不包含用于6抽头内插滤波器的至少一个参考样本时,针对视频块的第一部分(例如,子块),从多个内插滤波器中选择4抽头内插滤波器。在此情况下,视频编码器20可经配置以当视频编码器20可使用包含在参考样本缓冲器中的参考样本应用6抽头内插滤波器时,针对视频块的第二部分(例如,子块),从多个内插滤波器中选择6抽头内插滤波器。视频编码器20可确定预测块,其中确定预测块包含向视频块的第一部分应用第一内插滤波器以及向视频块的第二部分应用第二内插滤波器。

类似地,视频解码器30可经配置以向单个视频块应用不同滤波器。例如,视频解码器30可经配置以针对视频块的第一部分(例如,子块),从多个内插滤波器中选择第一内插滤波器,并针对视频块的第二部分(例如,子块),从多个内插滤波器中选择第二内插滤波器,其中第一和第二内插滤波器是不同的。举例来说,视频解码器30可经配置以当视频解码器30可使用包含在参考样本缓冲器中的参考样本应用4抽头内插滤波器时,并且当参考样本缓冲器不包含用于6抽头内插滤波器的至少一个参考样本时,针对视频块的第一部分(例如,子块),从多个内插滤波器中选择4抽头内插滤波器。在此情况下,视频解码器30可经配置以当视频解码器30可使用包含在参考样本缓冲器中的参考样本应用6抽头内插滤波器时,针对视频块的第二部分(例如,子块),从多个内插滤波器中选择6抽头内插滤波器。视频解码器30可确定预测块,其中确定预测块包含向视频块的第一部分应用第一内插滤波器以及向视频块的第二部分应用第二内插滤波器。

在一些实例中,视频编码器20可经配置以导出经扩展参考样本的值,并使用所述经扩展参考样本的值生成用于重构视频数据块的预测信息。类似地,视频解码器30可经配置以导出经扩展参考样本的值,并使用所述经扩展参考样本的值生成用于重构视频数据块的预测信息。

更确切地说,例如,视频编码器20可经配置以向包含在参考样本缓冲器中的参考样本应用第一滤波器,以生成经扩展参考样本缓冲器的经扩展参考样本,其中经扩展参考样本缓冲器包含来自参考样本缓冲器的参考样本和经扩展参考样本。在本实例中,视频编码器20可向包含在经扩展参考样本缓冲器中的一或多个参考样本应用第二滤波器,以生成用于重构视频数据块的预测信息。类似地,例如,视频解码器30可经配置以向包含在参考样本缓冲器中的参考样本应用第一滤波器,以生成经扩展参考样本缓冲器的经扩展参考样本,其中经扩展参考样本缓冲器包含来自参考样本缓冲器的参考样本和经扩展参考样本。在本实例中,视频解码器30可向包含在经扩展参考样本缓冲器中的一或多个参考样本应用第二滤波器,以生成用于重构视频数据块的预测信息。

视频编码器20可经配置以生成经扩展参考样本缓冲器的值,并使用所述经扩展参考样本缓冲器的值生成用于重构视频数据块的预测信息。类似地,视频解码器30可经配置以生成经扩展参考样本缓冲器的值,并使用所述经扩展参考样本缓冲器的值生成用于重构视频数据块的预测信息。

更确切地说,例如,视频编码器20可生成补充包含在参考样本缓冲器中的参考样本的经扩展参考样本缓冲器的一或多个参考样本。在一些实例中,视频编码器20可根据内插滤波器的滤波器类型和/或滤波器抽头来生成所述一或多个参考样本。换句话说,例如,视频编码器20可生成所述一或多个参考样本,使得将通过内插滤波器应用的所有参考样本可从经扩展参考样本缓冲器获取。

类似地,例如,视频解码器30可生成补充包含在参考样本缓冲器中的参考样本的经扩展参考样本缓冲器的一或多个参考样本。在一些实例中,视频解码器30可根据内插滤波器的滤波器类型和/或滤波器抽头来生成所述一或多个参考样本。换句话说,例如,视频解码器30可生成所述一或多个参考样本,使得将通过内插滤波器应用的所有参考样本可从经扩展参考样本缓冲器获取。

在hevc和其它视频译码规范中,视频序列通常包含一连串图片。图片还可被称作“帧”。图片可包含三个样本阵列,表示sl、scb和scr。sl是亮度样本的二维阵列(即,块)。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。色度(chrominance)样本在本文中还可被称作“色度(chroma)”样本。在其它情况下,图片可以是单色的,并且可以仅包含亮度样本阵列。

为了生成图片的经编码表示,视频编码器20可对视频数据的图片的块进行编码。视频编码器20可在位流中包含视频块的经编码表示。例如,在hevc中,为了生成图片的经编码表示,视频编码器20可生成一组译码树单元(ctu)。ctu中的每一个可包括一或多个译码树块(ctb),并且可包括用于对所述一或多个译码树块的样本进行译码的语法结构。举例来说,每一ctu可包括亮度样本的译码树块、两个对应的色度样本的译码树块,以及用于对译码树块的样本进行译码的语法结构。在单色图片或具有三个独立颜色平面的图片中,ctu可包括单个译码树块和用于对所述译码树块的样本进行译码的语法结构。译码树块可为nxn样本块。ctu还可被称作“树块”或“最大译码单元”(lcu)。语法结构可定义为按特定次序共同存在于位流中的零或多个语法元素。在hevc主规范中,ctb的大小可在16x16到64x64的范围内变化(但是在技术上,可以支持8x8ctb大小)。

在hevc中,切片包含以光栅扫描次序连续排序的整数数量的ctu。因此,在hevc中,切片中的最大译码单元被称作译码树块(ctb)。

在hevc中,为了生成图片的经译码ctu,视频编码器20可以递归方式对ctu的译码树块执行四叉树分割,以将译码树块划分成译码块,因此译码块被称作“译码树单元”。译码块是nxn样本块。译码单元(cu)可包括一或多个译码块和用于对所述一或多个译码块的样本进行译码的语法结构。例如,cu可包括具有亮度样本阵列、cb样本阵列和cr样本阵列的图片的亮度样本的译码块和两个对应的色度样本的译码块,以及用于对所述译码块的样本进行译码的语法结构。在单色图片或具有三个独立颜色平面的图片中,cu可包括单个译码块和用于对所述译码块的样本进行译码的语法结构。因此,ctb可含有四叉树,所述四叉树的节点是cu。

此外,视频编码器20可对cu进行编码。举例来说,为了对cu进行编码,视频编码器20可将cu的译码块分割成一或多个预测块。预测块是其上应用相同预测的矩形(即,正方形或非正方形)样本块。cu的预测单元(pu)可包括cu的一或多个预测块和用于预测所述一或多个预测块的语法结构。例如,pu可包括亮度样本的预测块、两个对应的色度样本的预测块,以及用于预测所述预测块的语法结构。在单色图片或具有三个独立颜色平面的图片中,pu可包括单个预测块和用于预测所述预测块的语法结构。视频编码器20可针对cu的每一pu的预测块(例如,亮度、cb和cr预测块)生成预测性块(例如,亮度、cb和cr预测性块)。

在hevc中,每一cu用一个模式译码,所述模式可为帧内模式或帧间模式。当cu进行帧间译码(即,应用帧间模式)时,cu可进一步分割成2个或4个pu,或在没有应用进一步分割时,变为仅一个pu。当在一个cu中存在两个pu时,这两个pu可以是一半大小的矩形或分别具有cu的1/4或3/4大小的两个矩形大小。

当cu进行帧间译码时,针对每一pu存在一组运动信息。此外,每一pu用唯一帧间预测模式译码以导出所述一组运动信息。如果视频编码器20使用帧内预测生成pu的预测性块,那么视频编码器20可基于包含pu的图片的经解码样本,生成pu的预测性块。当cu进行帧内译码时,2nx2n和nxn是唯一准许的pu形状,并且在每一pu内,对单个帧内预测模式进行译码(同时色度预测模式在cu层级处进行传信)。当当前cu大小等于在序列参数集(sps)中限定的最小cu大小时,仅允许nxn帧内pu形状。

视频编码器20可生成cu的一或多个残余块。举例来说,视频编码器20可生成cu的亮度残余块。cu的亮度残余块中的每一样本指示一个cu的预测性亮度块中的亮度样本和cu的原始亮度译码块中的对应样本之间的差。此外,视频编码器20可生成cu的cb残余块。cu的cb残余块中的每一样本可指示一个cu的预测性cb块中的cb样本和cu的原始cb译码块中的对应样本之间的差。视频编码器20还可生成cu的cr残余块。cu的cr残余块中的每一样本可指示一个cu的预测性cr块中的cr样本和cu的原始cr译码块中的对应样本之间的差。

此外,视频编码器20可将cu的残余块分解成一或多个变换块。举例来说,视频编码器20可使用四叉树分割将cu的残余块分解成一或多个变换块。变换块是其上应用相同变换的矩形(例如,正方形或非正方形)样本块。cu的变换单元(tu)可包括一或多个变换块。例如,tu可包括亮度样本的变换块、两个对应的色度样本的变换块,以及用于变换变换块样本的语法结构。因此,cu的每一tu可具有亮度变换块、cb变换块和cr变换块。tu的亮度变换块可为cu的亮度残余块的子块。cb变换块可为cu的cb残余块的子块。cr变换块可为cu的cr残余块的子块。在单色图片或具有三个独立颜色平面的图片中,tu可包括单个变换块和用于变换变换块的样本的语法结构。

视频编码器20可向tu的变换块应用一或多个变换,以生成tu的系数块。举例来说,视频编码器20可向tu的亮度变换块应用一或多个变换,以生成tu的亮度系数块。系数块可为变换系数的二维阵列。变换系数可为标量。视频编码器20可向tu的cb变换块应用一或多个变换,以生成tu的cb系数块。视频编码器20可向tu的变换块应用一或多个变换,以生成tu的cr系数块。

在一些实例中,视频编码器20跳过向变换块应用变换。在此类实例中,视频编码器20可处理残余样本值,残余样本值可以用与变换系数相同的方式处理。因此,在其中视频编码器20跳过应用变换的实例中,变换系数和系数块的以下论述可适用于变换块的残余样本。

在生成系数块之后,视频编码器20可量化系数块。量化一般是指其中对变换系数进行量化以可能地减少用于表示变换系数的数据量从而提供进一步的压缩的过程。在一些实例中,视频编码器20跳过量化。在视频编码器20量化系数块之后,视频编码器20可生成指示经量化变换系数的语法元素。视频编码器20可对指示经量化变换系数的语法元素中的一或多个进行熵编码。例如,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(cabac)。

视频编码器20可输出包含经编码视频数据的位流。例如,位流可包括形成视频数据的经译码图片的表示的位序列和相关联的数据。因此,位流包括视频数据的经编码表示。在一些实例中,经译码图片的图示可包含块的经编码表示。因此,视频编码器20可在位流中对块的经编码表示中的块的变换系数进行传信。在一些情况下,视频编码器20可使用一或多个语法元素来对块的每一变换系数进行传信。

位流可包括网络抽象层(nal)单元的序列。nal单元是含有nal单元中的数据类型的指示的语法结构和含有呈原始字节序列有效负载(rbsp)形式的所述数据的字节,所述原始字节序列有效负载根据需要散置有防止竞争位。每一个nal单元可包含nal单元标头并包封rbsp。nal单元标头可包含指示nal单元类型代码的语法元素。通过nal单元的nal单元标头指定的nal单元类型代码指示nal单元的类型。rbsp可为含有包封在nal单元内的整数数量的字节的语法结构。在一些情况下,rbsp包含零个位。

视频解码器30可接收由视频编码器20生成的位流。此外,视频解码器30可解析位流以从位流获得语法元素。视频解码器30可至少部分地基于从位流获得的语法元素,重构视频数据的图片。重构视频数据到过程一般可以与由视频编码器20执行的过程互反。举例来说,视频解码器30可使用pu的运动向量确定当前cu的pu的预测性块。此外,视频解码器30可逆量化当前cu的tu的系数块。视频解码器30可对系数块执行逆变换以重构当前cu的tu的变换块。视频解码器30可通过将当前cu的pu的预测性块的样本添加到当前cu的tu的变换块的对应样本来重构当前cu的译码块。通过重构图片的每一cu的译码块,视频解码器30可重构图片。

下文论述帧内预测。在一些实例中,帧内预测模式可在hevc中和/或在hevc扩展中的一或多个中限定。视频编码器20和/或视频解码器30可使用空间相邻经重构图像样本执行图像块预测。在图2中示出16x16图像块的帧内预测的实例。在所述实例中,视频编码器20和/或视频解码器30可沿着选定预测方向(如由箭头204所指示)通过左上方相邻经重构样本(参考样本)预测16x16图像块(呈正方形202形式)。

对于亮度块的帧内预测,hevc限定35个模式,包含平面模式、dc模式和33个角度模式,如图3中所说明。在表1中为hevc中限定的帧内预测的35个模式编索引。

表1——帧内预测模式和相关联名称的说明

对于通常是最经常使用的帧内预测模式的平面模式,如图4中所示,生成预测样本。为了执行nxn块的平面预测,针对位于(x,y)处的每一样本pxy,视频编码器20和/或视频解码器30可使用四个特定的相邻经重构样本(即,参考样本)通过双线性滤波器计算预测信息。这四个参考样本可包含右上经重构样本tr、左下经重构样本bl、位于当前样本的相同列(rx,-1)和行(r-1,y)处的两个经重构样本(分别表示为t和l)。视频编码器20和/或视频解码器30可制定平面模式,如下:

pxy=(n-x-1)·l+(n-y-1)·t+x·tr+y·bl

如图4中所示,对于dc模式,视频编码器20和/或视频解码器30可以用一或多个相邻经重构样本的平均值填充预测块。一般来说,视频编码器20和/或视频解码器30可同时应用平面和dc模式,以对平滑变化和不变的图像区域进行建模。

对于hevc中总共包含33个不同预测方向的角度帧内预测模式,下文描述帧内预测过程。对于每一给定角度帧内预测,视频编码器20和/或视频解码器30可相应地识别帧内预测方向。举例来说,根据图3,帧内模式10对应于纯水平预测方向,且帧内模式26对应于纯竖直预测方向。给定特定帧内预测方向,视频编码器20和/或视频解码器30可针对预测块的每一样本沿着预测方向将相应坐标(x,y)投影到相邻经重构样本的行和/或列,如图5中的实例所示。假设,(x,y)被投影到两个相邻经重构样本l和r之间的分数位置α,那么视频编码器20和/或视频解码器30可使用二抽头双线性内插滤波器计算(x,y)的预测信息,公式如下:

pxy=(1-α)·l+α·r。

为了避免浮点运算,在hevc中,视频编码器20和/或视频解码器30可使用如下整数运算估算上述计算。

pxy=((32-a)·l+a·r+16)>>5,

在上述公式中,a是等于32*α的整数。

在图6中通过示例圆形602示出hevc中使用的参考样本。如图6所示,被译码的视频块的样本由正方形604指示。相比之下,圆形602指示相邻参考样本。如本文中所使用,样本可以指具有一像素值的分量(例如,亮度样本或两个色度样本中的一个)。

在一些实例中,对于hxw块,视频编码器20和/或视频解码器30可针对相邻顶部行和左侧列两者使用w+h+1个参考样本。在实例中,视频编码器20和/或视频解码器30可将参考样本填充到参考样本缓冲器中,所述参考样本缓冲器可总共含有2*(w+h)+1个参考样本。根据35个角度模式的定义,参考样本可来自示例圆形602,这意味着参考样本是可用的。在一些实例中,视频编码器20和/或视频解码器30可从相邻经重构参考样本导出参考样本。举例来说,当经重构参考样本的一部分不可用时,视频编码器20和/或视频解码器30可使用(例如,直接复制)相邻的可用经重构参考样本覆盖经重构参考样本中不可用的部分。

此外,hevc中的33个角度帧内预测方向可以分类为两组,一个是正向方向,另一个是负向方向。对于正向方向(例如,图7中的模式2到10和模式26到34),视频编码器20和/或视频解码器30可以只使用一侧参考样本(例如,顶部行或左侧列)。对于负向方向(例如,图7中的模式11到25),视频编码器20和/或视频解码器30可使用两侧(例如,顶部行和左侧列)参考样本。图7使用非虚线说明负向方向,并使用虚线说明正向方向。

当视频编码器20和/或视频解码器30应用负向预测方向时,在hevc中,可以应用参考映射过程,如下所述。如8图中所示,根据帧内预测方向,视频编码器20和/或视频解码器30可使用左侧列相邻样本804a到804e导出扩展到顶部行的左侧的经扩展参考样本802a到802e(统称为经扩展参考样本802)。例如,视频编码器20和/或视频解码器30可使用左侧列相邻样本804a导出样本802a,使用左侧列相邻样本804b导出样本802b,以此类推。视频编码器20和/或视频解码器30可使用所有参考样本802执行帧内预测过程。

更确切地说,为了导出经扩展参考样本802,对于经扩展参考样本802中的每一经扩展参考样本,视频编码器20和/或视频解码器30可将坐标映射到左侧列相邻样本。例如,视频编码器20和/或视频解码器30可将经扩展参考样本802a映射到坐标806a、将经扩展参考样本802b映射到坐标806b、将经扩展参考样本802c映射到坐标806c、将经扩展参考样本802d映射到坐标806d,并将经扩展参考样本802e映射到坐标806e。在实例中,视频编码器20和/或视频解码器30可将最接近样本的值用作当前经扩展参考样本的值。例如,当相比于样本804b到804e,坐标806a更接近样本804a时,视频编码器20和/或视频解码器30可将样本804a用作经扩展参考样本802a的值。然而,在一些情况下,经映射位置可指示处于左侧列相邻样本的分数位置,且沿着预测方向使用最接近样本可能会存在某一预测误差。换句话说,例如,坐标806a指示处于经扩展参考样本804a和804b之间的分数位置,当样本804a的值用作经扩展参考样本802a的值时,这可导致经扩展参考样本802a出现预测误差。

在下文中论述jem中的帧内预测模式。近来,itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)一直在研究对具有压缩能力的未来视频译码技术的标准的潜在需求,这种需求远远超过当前hevc标准(包含其对于屏幕内容译码和高动态范围译码的当前扩展以及近期扩展)的需求。被称为联合视频探索队(jvet)的这些群组共同致力于这一探索活动,以评估由这一领域的专家提出的压缩技术设计。jvet已为此目的建立测试模型(即联合探索模型),关于最新jem版本的新算法的描述(即,jem-3.0)可获自:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/3_geneva/wg11/jvet-c1001-v3.zip。上述文件将itu-tvceg和iso/iecmpeg的联合视频探索队(jvet)的协作测试模型研究下的译码特征描述为超出hevc能力之外的潜在增强视频译码技术。还可在“hm参考软件”获得信息:https://hevc.hhi.fraunhofer.de/svn/svn_hevcsoftware/tags/hm-14.0/。

下文论述经扩展帧内预测方向。jem-3.0中的一个帧内相关译码工具是引入67个帧内预测模式,如图9中所示。相比在hevc中的帧内预测模式,具有32个额外帧内预测角度,如图9中由虚线箭头所示。帧内模式索引0和1是指hevc中的相同平面和dc模式,帧内模式索引2~66是指不同帧内预测角度,而18、34和50分别指示纯水平预测、对角线预测和纯竖直预测。通过67个帧内预测模式,可以实现更好的帧内预测准确性。

下文论述用于帧内预测的四抽头内插滤波器。为了生成帧内预测块,在jem-3.0中,视频编码器20和/或视频解码器30可使用具有1/32像素准确性的4抽头内插滤波器,而不是使用2抽头双线性内插。如本文中所使用,1/32像素是指使用样本之间的距离的1/32。对于竖直式角度帧内预测方向(例如,帧内模式索引>=34),如果块宽度大于8,那么视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。否则,视频编码器20和/或视频解码器30可使用4抽头三次内插滤波器。对于水平式角度帧内预测方向(例如,帧内模式索引<34),如果块高度大于6,那么视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。否则,视频编码器20和/或视频解码器30可使用4抽头三次内插滤波器。下面示出示例性4抽头三次内插和4抽头高斯内插滤波器:

在图10中描绘了使用4抽头内插过程的帧内预测过程。在图10的实例中,对于预测块中的每一样本,视频编码器20和/或视频解码器30可假设预测块中的相应样本指向两个参考样本p1和p2之间的分数位置α。在所述实例中,视频编码器20和/或视频解码器30可将此样本的预测信息计算如下。

在一些实例中,给定分数位置α和内插滤波器(例如,4抽头三次或4抽头高斯滤波器),视频编码器20和/或视频解码器30可将滤波器系数选择为f0、f1、f2、f3。在所述实例中,视频编码器20和/或视频解码器30可将此样本的预测信息计算如下。

p(x,y)=(f0*p0+f1*p1+f2*p2+f3*p3+r)/w。

在上述公式中,p0到p3是参考样本,r是舍入偏移,w是标准化因数,w应近似f0+f1+f2+f3。在上文中,给定4抽头三次和高斯滤波器,标准化因数可以是256。

在jem中的当前4抽头内插滤波器设计中,对于一些边界情况,某一滤波器抽头处的参考样本可能是不可用的。例如,如图11中所示,给定由箭头表示的帧内预测角度,为了使用四抽头滤波器{f0,f1,f2,f3}生成样本x的预测信息,视频编码器20和/或视频解码器30可使用参考样本p0、p1、p2和p3。然而,根据当前jem设计,在参考样本缓冲器中仅参考样本1102可用,且最右侧的参考样本(由实心圆1104表示的p3)不可用。在此情况下,视频编码器20和/或视频解码器30可对参考样本坐标执行修剪运算,使得内插过程仅使用p0~p2,举例来说,使用下面的公式。

x=f0*p0+f1*p1+f2*p2+f3*p2。

在一些实例中,视频编码器20和/或视频解码器30可在内插过程期间使用修剪运算,以免存取在参考样本缓冲器范围之外的任何样本。然而,当n>2时,这可使得执行n抽头内插滤波器变得更复杂。对于在hevc中使用的二抽头内插滤波器,不存在此类问题,因为仅使用参考样本1102。

图12a是示出用于导出跨分量线性预测模型预测模式的线性预测参数的色度样本的位置的概念图。图12b是示出用于导出跨分量线性预测模型预测模式的线性预测参数的亮度样本的位置的概念图。

跨分量线性模型预测模式在下文中论述。尽管在ycbcr颜色空间中显著减小了交叉互补冗余,但是三个颜色分量之间可能还存在相关性。一直在研究通过进一步减小相关性来改进视频译码性能的各种方法。

在4:2:0色度视频译码中,在hevc标准发展期间已经很好地研究了名为线性模型(lm)预测模式的方法。例如,matsuo、shohei、seishitakamura和hirohisajozawa的“通过基于dct的内插滤波器的经改进帧内角度预测(improvedintraangularpredictionbydct-basedinterpolationfilter)”(信号处理会议(eusipco),2012年第20届欧洲会议记录(2012proceedingsofthe20theuropean),第1568到1572页,ieee,2012年)提供实例帧内角度预测。

通过lm预测模式,视频编码器20和/或视频解码器30可基于相同块的经重构亮度样本,通过使用如下线性模型来预测色度样本:

predc(i,j)=α·recl(i,j)+β

在上述公式中,predc(i,j)表示块中的色度样本的预测,recl(i,j)表示相同块的经下取样的经重构亮度样本。在一些实例中,视频编码器20和/或视频解码器30可从围绕当前块的因果性经重构样本导出线性参数α和β。在一些实例中,参数α和β是跨分量线性预测模型预测模式的线性预测参数。在图12a的实例中,色度块1200具有大小nxn。因而,在本实例中,i和j均可在范围[0,n]内。

视频编码器20和/或视频解码器30可通过使围绕当前块的相邻经重构亮度和色度样本之间的回归误差最小化,而导出上述公式中的参数α和β。

视频编码器20和/或视频解码器30可如下求解参数α和β。

β=(∑yi-α·∑xi)/i

在上述公式中,xi是经下取样的经重构亮度参考样本,yi是经重构色度参考样本,i是参考样本的量。对于目标n×n色度块,当左侧和上方因果性样本都可用时,涉及的总参考样本数量i等于2n。在图12b的实例中,针对图12a的目标色度块1200,亮度块1210具有大小2nx2n。当只有左侧或上方因果性样本可用时,涉及的总参考样本数量i等于n。

总之,在一个实例中,当视频编码器20和/或视频解码器30应用lm预测模式时,可依序调用以下步骤:(a)视频编码器20和/或视频解码器30可对相邻亮度样本进行下取样;(b)视频编码器20和/或视频解码器30可导出线性参数(即,α和β);以及(c)视频编码器20和/或视频解码器30可对当前亮度块进行下取样并从经下取样亮度块和线性参数导出预测。

在当前jem设计中,视频编码器20和/或视频解码器30可使用4抽头内插滤波器,但是使用更长抽头滤波器可以进一步改进视频编码器20和/或视频解码器30的译码性能,而不会具有太大复杂性。

对于一些边界情况,视频编码器20和/或视频解码器30可存取在当前参考样本范围之外的一些参考样本位置(例如,在图6中的示例圆形602、由图11的实心圆1104表示的p3等),并且可使用修剪运算来避免存取未知存储器。在实例中,修剪运算可使得4抽头内插滤波技术更复杂。

在hevc和jem两者中的当前实例帧内预测过程中,帧内参考样本映射过程通过舍入运算(例如,与最接近整数相同)执行,这不可避免地产生了某一预测误差。

matsuo、shohei、seishitakamura和hirohisajozawa,“通过基于dct的内插滤波器的经改进帧内角度预测”(信号处理会议(eusipco),2012年第20届欧洲会议记录(2012proceedingsofthe20theuropean),第1568到1572页,ieee,2012年)提出针对4x4和8x8块大小应用4抽头基于dct的内插滤波器,并且在应用4抽头滤波器时,还关闭帧内平滑化滤波器,针对大于或等于16x16的块大小,应用2抽头双线性内插滤波器。

在maani、ehsan的“用于hevc的帧内预测的内插滤波器(interpolationfilterforintrapredictionofhevc)”(2011年12月6日提交的美国专利申请13/312,946)中,当帧内平滑化滤波器关闭时可使用4抽头内插滤波器,同时可基于三次内插过程、基于dct的内插过程或hermite内插过程获得4抽头内插滤波器。

在zhao的“帧内预测和帧内模式译码(intrapredictionandintramodecoding)”(2016年6月16日提交的美国专利申请15/184,033)中,针对帧内预测过程,联合使用4抽头三次内插滤波器和4抽头高斯内插滤波器。

为帮助解决上文所提及的问题,提出以下技术。可单独地应用以下详细列举的技术。替代地或另外,可一起使用下文描述的技术的任何组合。

在一些实例中,视频编码器20和/或视频解码器30可针对帧内预测应用多个内插滤波器。例如,视频编码器20和/或视频解码器30可在一个块、切片、图块、图片或其组合内应用不同内插滤波器抽头(例如,长度)。换句话说,视频解码器30可向图片的第一部分应用第一内插滤波器,并向图片的第二部分应用不同于第一内插滤波器的第二内插滤波器。类似地,视频编码器20可向图片的第一部分应用第一内插滤波器,并向图片的第二部分应用不同于第一内插滤波器的第二内插滤波器。

在一些实例中,视频编码器20和/或视频解码器30可将内插滤波器限定为六次滤波器。如本文中所使用,六次滤波器可以指内插滤波器抽头为6的内插滤波器。

在一些实例中,多个内插滤波器可包含基于dct的内插滤波器、高斯滤波器、正弦内插滤波器和使用图像相关性模型导出的内插滤波器。

视频编码器20和/或视频解码器30可基于块高度和/或宽度、块形状(例如,宽度相较于高度的比)、块区域大小、帧内预测模式或相邻经解码信息(包含但不限于经重构样本值和帧内预测模式)来选择内插滤波器类型和/或内插滤波器抽头(例如,长度)。例如,视频编码器20和/或视频解码器30可基于块高度和/或宽度、块形状(例如,宽度相较于高度的比)、块区域大小、帧内预测模式或相邻经解码信息(包含但不限于经重构样本值和帧内预测模式)来选择内插滤波器类型。举例来说,视频编码器20和/或视频解码器30可基于块高度和/或宽度、块形状(例如,宽度相较于高度的比)、块区域大小、帧内预测模式或相邻经解码信息(包含但不限于经重构样本值和帧内预测模式)来选择内插滤波器抽头长度。

换句话说,视频解码器30可基于所述视频数据块从多个内插滤波器中选择内插滤波器。类似地,视频编码器20可基于所述视频数据块从多个内插滤波器中选择内插滤波器。

在一些实例中,可以预定义2种不同类型的内插滤波器,即滤波器‘a’和滤波器‘b’。在本实例中,如果宽度/高度<1/4或宽度/高度>1/4,那么视频编码器20和/或视频解码器30应用滤波器‘a’,否则视频编码器20和/或视频解码器30应用滤波器‘b’。换句话说,当块的宽度/高度比在预定义范围内时,视频编码器20和/或视频解码器30可针对所述块从多个内插滤波器中选择第一内插滤波器。在本实例中,当块的宽度/高度比不在预定义范围内时,视频编码器20和/或视频解码器30可针对所述块从多个内插滤波器中选择第二内插滤波器。

在一些实例中,可以预定义2种不同类型的内插滤波器,即滤波器‘a’和滤波器‘b’。在本实例中,视频编码器20和/或视频解码器30将相邻(例如,顶部和/或左侧)经重构样本的方差计算为σ2。在本实例中,如果σ2小于预定义阈值t,那么视频编码器20和/或视频解码器30应用滤波器‘a’,否则视频编码器20和/或视频解码器30应用滤波器‘b’。换句话说,当块的相邻经重构样本的方差小于预定义值时,视频编码器20和/或视频解码器30可针对所述块从多个内插滤波器中选择第一内插滤波器。在本实例中,当所述方差不小于预定义值时,视频编码器20和/或视频解码器30可针对所述块从多个内插滤波器中选择第二内插滤波器。

在一些实例中,给定帧内预测方向,预限定若干种不同类型的内插滤波器。在本实例中,视频编码器20和/或视频解码器30根据预定义查找表选择所述若干个预定义内插滤波器中的一个。换句话说,当查找表将特定内插滤波器与块的帧内预测方向关联时,视频编码器20和/或视频解码器30可针对当地块从多个内插滤波器中选择特定内插滤波器。

例如,当帧内预测是竖直式帧内预测(例如,hevc的模式18到34、jem-3.0的模式34到66,等等)时,视频编码器20和/或视频解码器30可使用块的宽度来选择内插滤波器和/或内插滤波器抽头的数量(例如,滤波器抽头长度)。在本实例中,如果宽度小于或等于某一大小(例如,8),那么视频编码器20和/或视频解码器30可使用6抽头六次内插滤波器。否则,在本实例中,视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。

类似地,例如,当帧内预测是水平式帧内预测(例如,hevc的模式2到17、jem-3.0的模式2到33,等等)时,视频编码器20和/或视频解码器30可使用块的高度来选择内插滤波器和/或内插滤波器抽头的数量(例如,滤波器抽头长度)。在本实例中,如果高度小于或等于某一大小(例如,8),那么视频编码器20和/或视频解码器30可使用6抽头六次内插滤波器。否则,在本实例中,视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。

在一些实例中,内插滤波器类型和/或内插滤波器抽头(例如,长度)可取决于所需参考样本是否在参考样本缓冲器之外,例如,不可用。举例来说,视频编码器20和/或视频解码器30可基于所需参考样本是否在参考样本缓冲器之外(例如,不可用)来选择内插滤波器类型。举例来说,视频编码器20和/或视频解码器30可基于所需参考样本是否在参考样本缓冲器之外(例如,不可用)来选择内插滤波器抽头长度。

在一些实例中,如在当前示例性设计中,对于mxn块的帧内预测,参考样本缓冲器可含有2*(m+n)+1个样本。对于帧内预测模式和块内的位置,参考样本可能不位于参考样本缓冲器中。在实例中,相比于相同帧内预测模式下的其它位置,视频编码器20和/或视频解码器30可应用具有较小滤波器抽头长度的内插。例如,视频解码器30可确定来自相邻经重构参考样本的一组参考样本。在本实例中,视频解码器30可基于视频数据块,从多个内插滤波器中选择内插滤波器。例如,视频解码器30可针对位于参考样本缓冲器中的给定一组参考样本选择具有最大滤波器抽头长度的内插滤波器。

类似地,例如,视频编码器20可确定来自相邻经重构参考样本的一组参考样本。在本实例中,视频编码器20可基于视频数据块,从多个内插滤波器中选择内插滤波器。例如,视频编码器20可针对位于参考样本缓冲器中的给定一组参考样本选择具有最大滤波器抽头长度的内插滤波器。

在一些实例中,当帧内预测是竖直式帧内预测时,视频编码器20和/或视频解码器30可使用块的宽度来选择内插滤波器和/或内插滤波器抽头的数量(例如,滤波器抽头长度)。在实例中,如果宽度小于或等于某一大小(例如,8),那么视频编码器20和/或视频解码器30可使用6抽头六次内插滤波器。在实例中,如果宽度不小于或等于某一大小,那么视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。另外或替代地,当帧内预测是水平式帧内预测时,视频编码器20和/或视频解码器30可使用块的高度来选择内插滤波器和/或内插滤波器抽头的数量(例如,滤波器抽头长度)。在实例中,如果宽度小于或等于某一大小(例如,8),那么视频编码器20和/或视频解码器30可使用6抽头六次内插滤波器。在实例中,如果宽度不小于或等于某一大小,那么视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。滤波器类型可以是(例如)平滑化、锐化、内插或任何其它滤波器类型。

在一些实例中,当视频编码器20和/或视频解码器30应用帧内参考样本映射过程时,例如,对于负向帧内预测方向,而不是使用最接近相邻参考来导出经扩展参考样本的值,视频编码器20和/或视频解码器30可向相邻参考样本应用n抽头内插滤波器,以导出每一经扩展参考样本的值。例如,视频解码器30可基于来自相邻经重构参考样本的一组参考样本,使用第一内插滤波器导出经扩展参考样本的值。类似地,视频编码器20可基于来自相邻经重构参考样本的一组参考样本,使用第一内插滤波器导出经扩展参考样本的值。

在一些实例中,视频编码器20和/或视频解码器30可在帧内参考样本映射过程期间应用四抽头三次内插滤波器以导出经扩展参考样本值。例如,视频解码器30可基于来自相邻经重构参考样本的一组参考样本,使用四抽头三次内插滤波器导出经扩展参考样本的值。类似地,视频编码器20可基于来自相邻经重构参考样本的一组参考样本,使用四抽头三次内插滤波器导出经扩展参考样本的值。

在一些实例中,当参考样本的一部分不可用于n抽头内插时,视频编码器20和/或视频解码器30可对参考样本位置执行修剪运算,使得最接近的可用参考样本可用于n抽头内插。例如,对于特定经扩展参考样本的帧内参考样本映射,如果在使用4抽头内插滤波器{f0,f1,f2,f3}时对应的参考样本是{p0,p1,p2和p3},但是p0不可用,那么视频编码器20和/或视频解码器30可将内插过程执行为v=f0*p1+f1*p1+f2*p2+f3*p3。例如,为了导出经扩展参考样本的值,视频解码器30可执行对一组参考样本执行的修剪运算,使得最接近的可用参考样本用于导出经扩展参考样本的值。类似地,为了导出经扩展参考样本的值,视频编码器20可执行对一组参考样本执行的修剪运算,使得最接近的可用参考样本用于导出经扩展参考样本的值。

替代地或另外,视频编码器20和/或视频解码器30可根据关于多个内插滤波器所描述的规则选择n抽头内插滤波器。替代地或另外,滤波器抽头长度可取决于块大小或形状,例如如在以上描述中的那样。例如,视频解码器30可使用第二内插滤波器和经扩展参考样本的值生成预测信息。类似地,视频编码器20可使用第二内插滤波器和经扩展参考样本的值生成预测信息。

对于mxn块的帧内预测,视频编码器20和/或视频解码器30可应用经扩展参考样本缓冲器来进行帧内预测,而不是使用2*(m+n)+1参考样本来进行帧内预测。例如,视频解码器30可使用内插滤波器的一或多个特征确定将存储在参考缓冲器处的参考样本的数量。类似地,例如,视频编码器20可使用内插滤波器的一或多个特征确定将存储在参考缓冲器处的参考样本的数量。

更确切地说,例如,对于mxn视频数据块,视频解码器30可使用内插滤波器的一或多个特征,确定将存储在参考缓冲器处的参考样本的数量大于2*(m+n)+1。类似地,例如,视频编码器20可使用内插滤波器的一或多个特征,确定将存储在参考缓冲器处的参考样本的数量大于2*(m+n)+1。

在一些实例中,视频编码器20和/或视频解码器30可以阈值k将参考样本缓冲器扩展到参考样本的上部行和/或左侧列。举例来说,阈值k可以是1、2、3、4,或另一阈值。换句话说,例如,视频解码器30可沿着视频数据块的一行和一列分别使参考样本数量从2*(m+n)+1扩展一阈值。类似地,例如,视频编码器20可沿着视频数据块的一行和一列分别使参考样本数量从2*(m+n)+1扩展一阈值。

在一些实例中,视频编码器20和/或视频解码器30可通过滤波器抽头的数量n确定经扩展参考样本的数量。在一些实例中,视频编码器20和/或视频解码器30可通过滤波器抽头的数量n确定经扩展参考样本的数量,使得在当前帧内预测方向上使用的n抽头滤波器的所有参考样本都可用。

换句话说,例如,视频解码器30可基于内插滤波器中的滤波器抽头数量确定阈值,并且可使参考样本数量从2*(m+n)+1扩展所述阈值。举例来说,当使用4抽头内插滤波器时,视频解码器30可确定阈值2(或1),并且可使参考样本的数量从2*(m+n)+1扩展2(或1)。在一些情况下,当使用6抽头内插滤波器时,视频解码器30可确定阈值3(或2),并且可使参考样本的数量从2*(m+n)+1扩展3(或2)。

类似地,例如,视频编码器20可基于内插滤波器中的滤波器抽头的数量确定阈值,并且可使参考样本的数量从2*(m+n)+1扩展所述阈值。举例来说,当使用4抽头内插滤波器时,视频编码器20可确定阈值2(或1),并且可使参考样本的数量从2*(m+n)+1扩展2(或1)。在一些情况下,当使用6抽头内插滤波器时,视频编码器20可确定阈值3(或2),并且可使参考样本的数量从2*(m+n)+1扩展3(或2)。

在一些实例中,视频编码器20和/或视频解码器30可通过帧内预测方向确定经扩展参考样本的数量。在一些实例中,视频编码器20和/或视频解码器30可通过帧内预测方向确定经扩展参考样本的数量,使得在当前帧内预测方向上使用的n抽头滤波器的所有参考样本都可用。

换句话说,例如,视频解码器30可使用内插滤波器的帧内预测方向确定阈值,并且可使参考样本的数量从2*(m+n)+1扩展所述阈值。举例来说,当帧内预测方向是34时,视频解码器30可确定阈值1,并且可使参考样本的数量从2*(m+n)+1扩展1。在一些情况下,当帧内预测方向是66时,视频解码器30可确定阈值2,并且可使参考样本的数量从2*(m+n)+1扩展2。

类似地,例如,视频编码器20可使用内插滤波器的帧内预测方向确定阈值,并且可使参考样本的数量从2*(m+n)+1扩展所述阈值。举例来说,当帧内预测方向是34时,视频编码器20可确定阈值1,并且可使参考样本的数量从2*(m+n)+1扩展1。在一些情况下,当帧内预测方向是66时,视频编码器20可确定阈值2,并且可使参考样本的数量从2*(m+n)+1扩展2。

视频解码器30和/或视频编码器20可生成对应于参考缓冲器中的参考样本的数量的多个值。如本文中所使用,为了生成对应于参考缓冲器中的参考样本的数量的值,视频译码器可对样本进行解码、对样本进行重构,或以其它方式生成值。例如,视频解码器30可对对应于参考缓冲器中的数个参考样本的样本进行解码。在一些实例中,视频编码器20可重构对应于参考缓冲器中的数个参考样本的样本。

更确切地说,例如,视频编码器20和/或视频解码器30可以用相邻经重构图像样本填充参考样本缓冲器的经扩展部分。换句话说,例如,视频解码器30可使用相邻经重构图像样本填充所述多个值中的一或多个值。类似地,例如,视频编码器20可使用相邻经重构图像样本填充所述多个值中的一或多个值。

在一些实例中,视频编码器20和/或视频解码器30可根据参考样本缓冲器中的可用参考样本值覆盖参考样本缓冲器的经扩展部分。换句话说,例如,视频解码器30可根据参考缓冲器中的可用参考样本值覆盖所述多个值中的一或多个值。类似地,例如,视频编码器20可根据参考缓冲器中的可用参考样本值覆盖所述多个值中的一或多个值。

在一些实例中,视频编码器20和/或视频解码器30可针对lm模式、平面模式和/或dc模式使用经扩展参考样本。在一些实例中,在lm模式中,视频编码器20和/或视频解码器30可使用经扩展参考样本来导出线性模型的参数。换句话说,例如,视频解码器30可使用从2*(m+n)+1扩展所述阈值的至少一个值导出线性模型的参数。类似地,例如,视频编码器20可使用从2*(m+n)+1扩展所述阈值的至少一个值导出线性模型的参数。

在一些实例中,在平面模式中,视频编码器20和/或视频解码器30可使用经扩展参考样本来生成预测块。例如,视频解码器30可使用从2*(m+n)+1扩展所述阈值的至少一个值生成预测块。换句话说,例如,视频解码器30可使用内插滤波器和所述多个值生成用于帧内预测的预测信息。类似地,例如,视频编码器20可使用从2*(m+n)+1扩展所述阈值的至少一个值生成预测块。换句话说,例如,视频编码器20可使用内插滤波器和所述多个值生成用于帧内预测的预测信息。

视频译码器可基于预测信息重构视频数据块。如本文中所使用,为了重构视频数据块,视频译码器可执行视频数据块的重构环路、视频数据块的解码或视频数据块的另一重构。

视频解码器30可基于预测信息重构视频数据块。例如,视频解码器30可使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频解码器30可确定译码单元的残余数据。在本实例中,视频解码器30可通过对译码单元的残余数据和预测性块的对应样本进行求和来重构译码单元的译码块。

类似地,视频编码器20可基于预测信息重构视频数据块。例如,视频编码器20可使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频编码器20可确定译码单元的残余数据,使得残余数据指示译码单元的译码块和译码单元的预测性块之间的差。在本实例中,视频编码器20可将译码单元的残余数据分割成一或多个变换块。在本实例中,视频编码器20可向一或多个变换块应用变换以生成一或多个系数块。在本实例中,视频编码器20可对一或多个系数块中的系数进行量化。

在一些实例中,在dc模式中,视频编码器20和/或视频解码器30可使用经扩展参考样本来预测经预测dc值。换句话说,例如,视频解码器30可使用从2*(m+n)+1扩展所述阈值的至少一个值预测经预测dc值。类似地,例如,视频编码器20可使用从2*(m+n)+1扩展所述阈值的至少一个值预测经预测dc值。

在一些实例中,当执行经扩展顶部行参考样本的参考样本映射时,对于每一个经扩展参考样本,给定帧内预测方向,视频编码器20和/或视频解码器30可使用左侧列的一个或若干个参考样本导出值。换句话说,例如,视频解码器30可根据参考缓冲器中的可用参考样本值导出所述多个值中的一或多个值。类似地,例如,视频编码器20可根据参考缓冲器中的可用参考样本值导出所述多个值中的一或多个值。然而,当“左侧列的一个或若干个参考样本”在参考样本缓冲器中不可用时,视频编码器20和/或视频解码器30可使用当前经扩展参考样本最接近的可用经扩展参考样本值。

在一些实例中,视频编码器20和/或视频解码器30可向缓冲器添加更多参考样本,而不是一个拐角样本。在实例中,视频编码器20和/或视频解码器30可在从左侧和/或上部参考样本导出的参考样本之间插入参考样本。经插入样本的数量可取决于滤波器抽头,它可用于根据帧内预测方向导出帧内预测。举例来说,视频编码器20和/或视频解码器30可基于滤波器抽头确定经插入样本的数量,和/或视频编码器20和/或视频解码器30可根据帧内预测方向导出帧内预测。视频编码器20和/或视频解码器30可基于帧内模式方向,从最接近的左侧和/或上部相邻参考导出经插入样本。另外或替代地,视频编码器20和/或视频解码器30可向左侧和/或上部相邻样本应用具有某一抽头长度的滤波器。在实例中,视频编码器20和/或视频解码器30可将经滤波样本插入到参考缓冲器中。

以下内容呈现应用包含六次内插滤波器的多个内插滤波器的视频编码器20和/或视频解码器30的实施例。

在一些实例中,当帧内预测模式是竖直式角度预测模式时,如果宽度小于或等于8,那么视频编码器20和/或视频解码器30可使用6抽头六次内插滤波器。替代地或另外,视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。在一些实例中,当帧内预测是水平式帧内预测时,如果高度小于或等于8,那么视频编码器20和/或视频解码器30可使用6抽头六次内插滤波器。替代地或另外,视频编码器20和/或视频解码器30可使用4抽头高斯内插滤波器。

实例6抽头六次内插滤波器示出如下。

实例4抽头高斯内插滤波器示出如下。

图13是说明可实施在帧内预测期间使用内插滤波器的本公开的技术的实例视频编码器20的框图。图13是出于解释的目的而提供的,且不应被视为限于在本公开中所广泛例示和描述的技术。本公开的技术可适用于各种译码标准或方法。在概念图1到13中示出的技术可与本公开的技术一起使用。

在图13的实例中,视频编码器20包含预测处理单元1300、视频数据存储器1301、残余生成单元1302、变换处理单元1304、量化单元1306、逆量化单元1308、逆变换处理单元1310、重构单元1312、滤波器单元1314、经解码图片缓冲器1316和熵编码单元1318。在一些实例中,预测处理单元1300可执行本公开的技术中的一或多种。预测处理单元1300包含帧间预测处理单元1320和帧内预测处理单元1326。帧间预测处理单元1320可包含运动估计单元和运动补偿单元(未示出)。在一些实例中,帧内预测处理单元1326可执行本公开的技术中的一或多种。

帧内预测处理单元1326可包含内插滤波器单元1327。内插滤波器单元1327可使用内插滤波器的一或多个特征确定将存储在参考缓冲器处的参考样本的数量。例如,内插滤波器单元1327可通过滤波器抽头的数量n确定经扩展参考样本的数量。在一些实例中,内插滤波器单元1327可通过帧内预测方向确定经扩展参考样本的数量。

内插滤波器单元1327可基于视频数据块从多个内插滤波器中选择内插滤波器。例如,内插滤波器单元1327可基于所需参考样本是否在参考样本缓冲器之外(例如,不可用)而选择内插滤波器抽头长度。

内插滤波器单元1327可基于来自相邻经重构参考样本的一组参考样本,使用第一内插滤波器导出经扩展参考样本的值。例如,内插滤波器单元1327可向相邻参考样本应用n抽头内插滤波器以导出每一经扩展参考样本的值。

视频数据存储器1301可经配置以存储将由视频编码器20的组件编码的视频数据。存储在视频数据存储器1301中的视频数据可(例如)从视频源18获得。经解码图片缓冲器1316可为存储参考视频数据以供视频编码器20对视频数据进行编码(例如,在帧内或帧间译码模式中)的参考图片存储器。视频数据存储器1301和经解码图片缓冲器1316可由各种存储器装置中的任一个形成,例如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其它类型的存储器装置。视频数据存储器1301和经解码图片缓冲器1316可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器1301可以与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器1301可与图1的存储媒体20相同,或者可为图1的存储媒体20的一部分。

视频编码器20接收视频数据。视频编码器20可对所述视频数据的图片的切片中的每一ctu进行编码。每一个ctu可与大小相等的亮度译码树块(ctb)和图片的对应ctb相关联。作为对ctu进行编码的一部分,预测处理单元1300可执行分割以将ctu的ctb划分成逐渐更小的块。所述更小的块可以是cu的译码块。例如,预测处理单元1300可根据树状结构分割与ctu相关联的ctb。

视频编码器20可对ctu的cu进行编码,以生成cu的经编码表示(即,经译码cu)。作为对cu进行编码的一部分,预测处理单元1300可将与cu相关联的译码块分割成cu的一或多个pu。因此,每一pu可与亮度预测块和对应的色度预测块相关联。视频编码器20和视频解码器30可支持不同大小的pu。如上文所指出,cu的大小可以指cu的亮度译码块的大小,且pu的大小可以指pu的亮度预测块的大小。假设特定cu的大小是2nx2n,视频编码器20和视频解码器30可支持大小为2nx2n或nxn的pu用于帧内预测,以及大小为2nx2n、2nxn、nx2n、nxn等等的对称pu用于帧间预测。对于帧间预测,视频编码器20和视频解码器30还可支持大小为2nxnu、2nxnd、nlx2n和nrx2n的pu的不对称分割。

帧间预测处理单元1320可通过对cu的每一pu执行帧间预测来生成pu的预测性数据。pu的预测性数据可包含pu的预测性块和pu的运动信息。依据cu的pu是在i切片中、p切片中还是在b切片中,帧间预测处理单元1320可针对所述pu执行不同操作。在i切片中,所有pu进行帧内预测。因此,如果pu是在i切片中,那么帧间预测处理单元1320不对所述pu执行帧间预测。因此,对于在i模式中编码的块,使用空间预测从相同帧内的经先前编码的相邻块形成经预测块。如果pu是在p切片中,那么帧间预测处理单元1320可使用单向帧间预测来生成达到pu的预测性块。如果pu是在b切片中,那么帧间预测处理单元1320可使用单向或双向帧间预测来生成所述pu的预测性块。

帧内预测处理单元1326可通过对pu执行帧内预测来生成所述pu的预测性数据。pu的预测性数据可包含pu的预测性块和各种语法元素。帧内预测处理单元1326可对i切片、p切片和b切片中的pu执行帧内预测。

为了对pu执行帧内预测,帧内预测处理单元1326可使用多个帧内预测模式来生成pu的多组预测性数据。帧内预测处理单元1326可使用来自相邻pu的样本块的样本生成pu的预测性块。假设pu、cu和ctu采用从左到右、从上到下的编码次序,相邻pu可以在所述pu的上方、右上方、左上方或左侧。帧内预测处理单元1326可使用不同数量的帧内预测模式,例如,33个定向帧内预测模式。在一些实例中,帧内预测模式的数量可取决于与pu相关联的区域的大小。

针对cu的pu,预测处理单元1300可从由pu的帧间预测处理单元1320生成的预测性数据或由pu的帧内预测处理单元1326生成预测性数据当中选择预测性数据。在一些实例中,预测处理单元1300基于多组预测性数据的速率/失真度量选择cu的pu的预测性数据。选定预测性数据的预测性块在本文中可被称为选定预测性块。在一些实例中,预测处理单元1300和/或帧内预测处理单元1326可应用多个内插滤波器。举例来说,预测处理单元1300和/或帧内预测处理单元1326可执行本文中所描述的技术的任何组合。更确切地说,举例来说,预测处理单元1300和/或帧内预测处理单元1326可选择内插滤波器,并使用所述内插滤波器生成预测信息来重构视频数据块。在一些情况下,预测处理单元1300和/或帧内预测处理单元1326可导出经扩展参考样本的值,并使用所述经扩展参考样本的值生成预测信息来重构视频数据块。在一些情况下,预测处理单元1300和/或帧内预测处理单元1326可生成经扩展参考样本缓冲器的值,并使用所述经扩展参考样本缓冲器的值生成预测信息来重构视频数据块。

残余生成单元1302可基于cu的译码块(例如,亮度、cb和cr译码块)和cu的pu的选定预测性块(例如,预测性亮度、cb和cr块),生成cu的残余块(例如,亮度、cb和cr残余块)。举例来说,残余生成单元1302可生成cu的残余块,使得残余块中的每一样本具有等于cu的译码块中的样本和cu的pu的对应选定预测性块中的对应样本之间的差的值。

变换处理单元1304可执行四叉树分割以将与cu相关联的残余块分割成与cu的tu相关联的变换块。因此,tu可与亮度变换块和两个色度变换块相关联。cu的tu的亮度和色度变换块的大小和位置可以基于也可以不基于cu的pu的预测块的大小和位置。被称为“残余四叉树”(rqt)的四叉树结构可包含与每一个区域相关联的节点。cu的tu可对应于rqt的叶节点。

针对cu的每一tu,变换处理单元1304可通过向tu的变换块应用一或多个变换来生成变换系数块。变换处理单元1304可向与tu相关联的变换块应用各种变换。例如,变换处理单元1304可向变换块应用离散余弦变换(dct)、定向变换或在概念上类似的变换。在一些实例中,变换处理单元1304不向变换块应用变换。在此类实例中,变换块可被视为变换系数块。

量化单元1306可对系数块中的变换系数进行量化。量化过程可减小与变换系数中的一些或全部相关联的位深度。例如,在量化期间,n位变换系数可下舍入到m位变换系数,其中n大于m。量化单元1306可基于与cu相关联的量化参数(qp)值,对与cu的tu相关联的系数块进行量化。视频编码器20可通过调整与cu相关联的qp值来调整应用于与cu相关联的系数块的量化程度。量化可能会引发信息的损耗。因此,经量化变换系数的精度可能比原始变换系数低。

逆量化单元1308和逆变换处理单元1310可分别向系数块应用逆量化和逆变换,以从系数块重构残余块。重构单元1312可向来自由预测处理单元1300生成的一或多个预测性块的对应样本添加经重构残余块,以产生与tu相关联的经重构变换块。通过以这种方式重构cu的每一tu的变换块,视频编码器20可重构cu的译码块。

滤波器单元1314可执行一或多个解块操作以减少与cu相关联的译码块中的成块假象。经解码图片缓冲器1316可在滤波器单元1314对经重构译码块执行一或多个解块操作之后存储经重构译码块。帧间预测处理单元1320可使用含有经重构译码块的参考图片来对其它图片的pu执行帧间预测。此外,帧内预测处理单元1326可使用经解码图片缓冲器1316中的经重构译码块来对与cu相同的图片中的其它pu执行帧内预测。

熵编码单元1318可从视频编码器20的其它功能组件接收数据。例如,熵编码单元1318可从量化单元1306接收系数块,并且可从预测处理单元1300接收语法元素。熵编码单元1318可对所述数据执行一或多个熵编码操作以生成经熵编码数据。例如,熵编码单元1318可对所述数据执行cabac操作、上下文自适应可变长度译码(cavlc)操作、可变到可变(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率区间分割熵(pipe)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含由熵编码单元1318生成的经熵编码数据的位流。举例来说,位流可包含表示cu的变换系数的值的数据。

图14是说明经配置以实施在帧内预测期间使用内插滤波器的本公开的技术的实例视频解码器30的框图。图14是出于解释的目的而提供的,且并不限于在本公开中所广泛例示和描述的技术。出于解释的目的,本公开在hevc译码的上下文中描述视频解码器30。然而,本公开的技术可适用于其它译码标准或方法。在概念图1到14中示出的技术可与本公开的技术一起使用。

在图14的实例中,视频解码器30包含熵解码单元1450、视频数据存储器1451、预测处理单元1452、逆量化单元1454、逆变换处理单元1456、重构单元1458、滤波器单元1460和经解码图片缓冲器1462。在一些实例中,预测处理单元1452可执行本公开的技术中的一或多种。预测处理单元1452包含运动补偿单元1464和帧内预测处理单元1466。在一些实例中,帧内预测处理单元1466可执行本公开的技术中的一或多种。在一些实例中,预测处理单元1452和/或帧内预测处理单元1466可应用多个内插滤波器。举例来说,预测处理单元1452和/或帧内预测处理单元1466可执行本文中所描述的技术的任何组合。更确切地说,举例来说,预测处理单元1452和/或帧内预测处理单元1466可选择内插滤波器,并使用所述内插滤波器生成预测信息来重构视频数据块。在一些情况下,预测处理单元1452和/或帧内预测处理单元1466可导出经扩展参考样本的值,并使用所述经扩展参考样本的值生成预测信息来重构视频数据块。在一些情况下,预测处理单元1452和/或帧内预测处理单元1466可生成经扩展参考样本缓冲器的值,并使用所述经扩展参考样本缓冲器的值生成预测信息来重构视频数据块。在其它实例中,视频解码器30可包含更多、更少或不同的功能组件。

帧内预测处理单元1466可包含内插滤波器单元1467。内插滤波器单元1467可使用内插滤波器的一或多个特征确定将存储在参考缓冲器处的参考样本的数量。例如,内插滤波器单元1467可通过滤波器抽头的数量n确定经扩展参考样本的数量。在一些实例中,内插滤波器单元1467可通过帧内预测方向确定经扩展参考样本的数量。

内插滤波器单元1467可基于视频数据块从多个内插滤波器中选择内插滤波器。例如,内插滤波器单元1467可基于所需参考样本是否在参考样本缓冲器之外(例如,不可用)而选择内插滤波器抽头长度。

内插滤波器单元1467可基于来自相邻经重构参考样本的一组参考样本,使用第一内插滤波器导出经扩展参考样本的值。例如,内插滤波器单元1467可向相邻参考样本应用n抽头内插滤波器以导出每一经扩展参考样本的值。

视频数据存储器1451可存储将由视频解码器30的组件解码的经编码视频数据,例如经编码视频位流。存储在视频数据存储器1451中的视频数据可(例如)通过视频数据的有线或无线网络通信或通过存取物理数据存储媒体而从计算机可读媒体16(例如,从本地视频源,例如相机)获得。视频数据存储器1451可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(cpb)。经解码图片缓冲器1462可为存储参考视频数据以供视频解码器30对视频数据进行解码(例如,在帧内或帧间译码模式中)或用于输出的参考图片存储器。视频数据存储器1451和经解码图片缓冲器1462可由各种存储器装置中的任一个形成,例如动态随机存取存储器(dram),包含同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其它类型的存储器装置。视频数据存储器1451和经解码图片缓冲器1462可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器1451可以与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。视频数据存储器1451可与图1的存储媒体28相同,或者可为图1的存储媒体28的一部分。

视频数据存储器1451接收并存储位流的经编码视频数据(例如,nal单元)。熵解码单元1450可从视频数据存储器1451接收经编码视频数据(例如,nal单元),并且可解析所述nal单元以获得语法元素。熵解码单元1450可对nal单元中的经熵编码语法元素进行熵解码。预测处理单元1452、逆量化单元1454、逆变换处理单元1456、重构单元1458和滤波器单元1460可基于从位流提取的语法元素生成经解码视频数据。熵解码单元1450可执行与大体上熵编码单元1318的过程互反的过程。

除了从位流获得语法元素之外,视频解码器30还可对未分割cu执行重构操作。为了对cu执行重构操作,视频解码器30可对cu的每一tu执行重构操作。通过执行cu的每一tu的重构操作,视频解码器30可重构cu的残余块。

作为对cu的tu执行重构操作的一部分,逆量化单元1454可对与tu相关联的系数块进行逆量化,即,解量化。在逆量化单元1454对系数块进行逆量化之后,逆变换处理单元1456可向系数块应用一或多个逆变换,以便生成与tu相关联的残余块。例如,逆变换处理单元1456可向系数块应用逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆定向变换或另一逆变换。

逆量化单元1454可执行本公开的特定技术。例如,对于视频数据的图片的ctu的ctb内的多个量化群组中的至少一个相应量化群组,逆量化单元1454可至少部分地基于在位流中传信的本地量化信息,导出相应量化群组的相应量化参数。另外,在本实例中,逆量化单元1454可基于相应量化群组的相应量化参数,对ctu的cu的tu的变换块的至少一个变换系数进行逆量化。在本实例中,相应量化群组被定义为一组呈译码次序的后续cu或译码块,使得相应量化群组的边界一定是cu或译码块的边界,并且相应量化群组的大小大于或等于阈值。视频解码器30(例如,逆变换处理单元1456、重构单元1458和滤波器单元1460)可基于变换块的逆量化变换系数重构cu的译码块。

如果pu使用帧内预测进行编码,那么帧内预测处理单元1466可执行帧内预测以生成pu的预测性块。帧内预测处理单元1466可基于空间相邻块的样本,使用帧内预测模式来生成pu的预测性块。帧内预测处理单元1466可基于从位流获得的一或多个语法元素,确定pu的帧内预测模式。

如果pu使用帧间预测进行编码,那么熵解码单元1450可确定pu的运动信息。运动补偿单元1464可基于pu的运动信息,确定一或多个参考块。运动补偿单元1464可基于所述一或多个参考块,生成pu的预测性块(例如,预测性亮度、cb和cr块)。

重构单元1458可在适用时使用cu的tu的变换块(例如,亮度、cb和cr变换块)及所述cu的pu的预测性块(例如,亮度、cb和cr块)(即,帧内预测数据或帧间预测数据)来重构所述cu的译码块(例如,亮度、cb和cr译码块)。例如,重构单元1458可将变换块(例如,亮度、cb和cr变换块)的样本添加到预测性块(例如,亮度、cb和cr预测性块)的对应样本以重构所述cu的译码块(例如,亮度、cb和cr译码块)。

滤波器单元1460可执行解块操作以减少与cu的译码块相关联的成块假象。视频解码器30可在经解码图片缓冲器1462中存储cu的译码块。经解码图片缓冲器1462可提供参考图片以用于后续运动补偿、帧内预测及显示装置(例如,图1的显示装置32)上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器1462中的块,执行其它cu的pu的帧内预测或帧间预测操作。

图15是说明可实施本公开中所描述的一或多种技术的视频数据的实例译码的流程图。如所描述,图15的实例技术可通过视频编码器20或视频解码器30执行。在图15的实例中,视频译码器使用内插滤波器的一或多个特征确定将存储在参考缓冲器处的参考样本的数量(1502)。例如,视频编码器20和/或视频解码器30可通过滤波器抽头的数量n确定经扩展参考样本的数量。在一些实例中,视频编码器20和/或视频解码器30可通过帧内预测方向确定经扩展参考样本的数量。

视频译码器生成对应于所述参考缓冲器中的所述参考样本的数量的多个值(1504)。例如,视频编码器20和/或视频解码器30可以用相邻经重构图像样本填充参考样本缓冲器的经扩展部分。在一些实例中,视频编码器20和/或视频解码器30可根据参考样本缓冲器中的可用参考样本值覆盖参考样本缓冲器的经扩展部分。在一些实例中,视频编码器20和/或视频解码器30可使用左侧列的一个或若干个参考样本导出所述值。

视频译码器使用所述内插滤波器和所述多个值生成用于帧内预测的预测信息(1506)。例如,视频编码器20和/或视频解码器30可使用从2*(m+n)+1扩展一阈值的至少一个值生成预测块。

视频译码器基于预测信息重构视频数据块(1508)。例如,视频解码器30使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频解码器30确定译码单元的残余数据。在本实例中,视频解码器30通过对译码单元的残余数据和预测性块的对应样本进行求和来重构译码单元的译码块。

在一些实例中,视频编码器20使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频编码器20确定译码单元的残余数据,使得残余数据指示译码单元的译码块和译码单元的预测性块之间的差。在本实例中,视频编码器20将译码单元的残余数据分割成一或多个变换块。在本实例中,视频编码器20向所述一或多个变换块应用变换以生成一或多个系数块。在本实例中,视频编码器20对所述一或多个系数块中的系数进行量化。

图16是说明可实施本公开中所描述的一或多种技术的视频数据的实例译码的流程图。如所描述,图16的实例技术可通过视频编码器20或视频解码器30执行。在图16的实例中,视频译码器确定来自相邻经重构参考样本的一组参考样本(1602)。视频译码器基于视频数据块从多个内插滤波器中选择内插滤波器(1604)。例如,视频编码器20和/或视频解码器30基于所需参考样本是否在参考样本缓冲器之外(例如,不可用)而选择内插滤波器抽头长度。视频译码器使用所述内插滤波器和所述一组参考样本生成所述一组参考样本的预测信息(1606)。

视频编码器20和/或视频解码器30可针对视频数据块的多个部分中的每一部分,基于所需参考样本是否在参考样本缓冲器之外(例如,不可用),从多个内插滤波器中选择内插滤波器。例如,视频编码器20和/或视频解码器30可针对视频数据块的第一样本,在用于向第一样本应用第一滤波器的所需参考样本在参考样本缓冲器中时选择第一内插滤波器(例如,六次内插滤波器)。在本实例中,视频编码器20和/或视频解码器30可针对视频数据块的第二样本,在用于向第二样本应用第一滤波器(例如,六次内插滤波器)的所需参考样本在参考样本缓冲器之外(例如,不可用)时,并且在用于向第二样本应用第二滤波器的所需参考样本在参考样本缓冲器中时,选择第二内插滤波器(例如,三次内插滤波器)。

视频译码器基于预测信息重构视频数据块(1608)。例如,视频解码器30使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频解码器30确定译码单元的残余数据。在本实例中,视频解码器30通过对译码单元的残余数据和预测性块的对应样本进行求和来重构译码单元的译码块。

在一些实例中,视频编码器20使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频编码器20确定译码单元的残余数据,使得残余数据指示译码单元的译码块和译码单元的预测性块之间的差。在本实例中,视频编码器20将译码单元的残余数据分割成一或多个变换块。在本实例中,视频编码器20向所述一或多个变换块应用变换以生成一或多个系数块。在本实例中,视频编码器20对所述一或多个系数块中的系数进行量化。

图17是说明可实施本公开中所描述的一或多种技术的视频数据的实例译码的流程图。如所描述,图17的实例技术可通过视频编码器20或视频解码器30执行。在图17的实例中,视频译码器确定来自相邻经重构参考样本的一组参考样本(1702)。视频译码器基于所述来自相邻经重构参考样本的一组参考样本,使用第一内插滤波器导出经扩展参考样本的值(1704)。例如,视频编码器20和/或视频解码器30向相邻参考样本应用n抽头内插滤波器以导出每一经扩展参考样本的值。视频译码器使用第二内插滤波器和所述经扩展参考样本的值生成预测信息(1706)。

视频译码器基于预测信息重构视频数据块(1708)。例如,视频解码器30使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频解码器30确定译码单元的残余数据。在本实例中,视频解码器30通过对译码单元的残余数据和预测性块的对应样本进行求和来重构译码单元的译码块。

在一些实例中,视频编码器20使用预测性信息确定视频数据块的译码单元的预测性块。在本实例中,视频编码器20确定译码单元的残余数据,使得残余数据指示译码单元的译码块和译码单元的预测性块之间的差。在本实例中,视频编码器20将译码单元的残余数据分割成一或多个变换块。在本实例中,视频编码器20向所述一或多个变换块应用变换以生成一或多个系数块。在本实例中,视频编码器20对所述一或多个系数块中的系数进行量化。

出于说明的目的,已相对于hevc标准的扩展描述了本公开的某些方面。然而,本公开中描述的技术可适用于其它视频译码过程,包括尚未开发的其它标准或专有视频译码过程。

如本公开中所描述,视频译码器可以指视频编码器或视频解码器。类似地,视频译码单元可以指视频编码器或视频解码器。同样地,视频译码在适当时可以指视频编码或视频解码。在本公开中,短语“基于”可指示仅基于、至少部分地基于或一定程度上基于。本公开可使用术语“视频单元”或“视频块”或“块”来指代一或多个样本块和用于对一或多个样本块的样本进行译码的语法结构。视频单元的实例类型可包含ctu、cu、pu、变换单元(tu)、宏块、宏块分区等等。在一些上下文中,pu的论述可以与宏块或宏块分区的论述互换。视频块的实例类型可包含译码树块、译码块和其它类型的视频数据块。

应认识到,依据实例,本文中所描述的技术中的任一个的某些动作或事件可以按不同顺序执行,可以添加、合并或完全省略(例如,所描述的动作或事件并非全部都是实践所述技术所必需的)。此外,在某些实例中,动作或事件可(例如)通过多线程处理、中断处理或多个处理器同时执行,而不是依序执行。

在一或多个实例中,描述的功能可用硬件、软件、固件或其任何组合来实施。如果用软件实施,那么所述功能可以作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包含任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体通常可对应于(1)非暂时性有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

借助于实例而非限制,此类计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电和微波等无线技术包含在媒体的定义中。然而,应理解,计算机可读存储媒体和数据存储媒体并不包含连接、载波、信号或其它暂时性媒体,而是实际上针对于非暂时性的有形存储媒体。如本文所使用,磁盘和光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上述各项的组合也应包含在计算机可读媒体的范围内。

指令可由固定功能和/或可编程处理电路系统执行,包含一或多个处理器,例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其它等效的集成或离散逻辑电路。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文所描述的功能性可提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入于组合式编解码器中。并且,所述技术可完全实施在一或多个电路或逻辑元件中。

本公开的技术可在各种装置或设备中实施,包含无线手持机、集成电路(ic)或一组ic(例如,芯片组)。本公开中描述的各种组件、模块或单元是为了强调经配置以执行所公开技术的装置的功能方面,但未必需要通过不同硬件单元来实现。实际上,如上文所描述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。

已经描述各种实例。这些和其它实例在以上权利要求的范围内。

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