改进的解码器侧运动矢量推导的制作方法

文档序号:22047526发布日期:2020-08-28 18:58阅读:251来源:国知局
改进的解码器侧运动矢量推导的制作方法

35u.s.c.§119下的优先权要求

本申请要求于2019年1月16日提交的题为“improveddecoder-sidemotionvectorderivation”的美国非临时专利申请no.16/249,371的权益,该美国非临时专利申请no.16/249,371要求于2018年1月18日提交的题为“decoder-sidemotionvectorderivation”的美国临时申请no.62/618,902的优先权,将其通过引用完全包括于此。

本公开涉及视频编码和视频解码。



背景技术:

数字视频能力可以包括在各种各样的装置中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(pda)、膝上型电脑或者台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏主机、蜂窝或者卫星无线电话(所谓的“智能电话”)、召开电视会议装置、视频流装置,等等。数字视频装置实现视频压缩技术,比如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4、part10、高级视频编码(avc)定义的标准、近年来最后确定的高效视频编码(hevc)标准和这些标准的扩展中描述的那样。视频装置可以通过实现这种视频压缩技术来更有效地发送、接收、编码、解码和/或存储数字视频信息。

视频压缩技术执行空间(画面内)预测和/或时间(画面间)预测,以减小或者除去视频序列中固有的冗余。对于基于块的视频编码,视频片段(即,图像帧或者图像帧的一部分)可以划分为视频块,其也可以被称为树块、编码单元(cu)和/或编码节点。画面的内编码(i)片段中的视频块使用相对于相同画面中相邻块中的参考样本的空间预测来编码。画面的帧间编码(p或者b)片段的视频块可以使用相对于相同画面中的相邻块中的参考样本的空间预测或者相对于其他参考画面中的参考样本的时间预测。画面可以被称为帧,且参考画面可以被称为参考帧。

空间或者时间预测导致用于要编码的块的预测块。剩余数据表示要编码的初始块和预测块之间的像素差值。帧间编码块根据指向形成预测块的参考样本的块的运动矢量,和指示已编码块和预测块之间的差值的残差数据来编码。内编码块根据内编码模式和残差数据来编码。为了进一步压缩,残差数据可以从像素域变换到变换域,导致可以量化的残差变换系数。可以扫描最初以二维阵列布置的量化的变换系数,以产生变换系数的一维矢量,且熵编码可以应用于实现更进一步的压缩。



技术实现要素:

总的来说,本公开描述与解码器侧运动矢量推导(dmvd)有关的技术,包括用于推导用于编码视频数据块的运动信息(例如,一个或多个运动矢量,精度和一个或多个参考画面索引)的技术和用于由视频解码器确定与由视频编码器选择的运动信息相同的运动信息的技术。使用由视频编码器使用的相同(或者互逆)的推导技术,视频解码器可以在不接收特别地标识运动信息的任何语法元素的情况下,确定什么运动信息用于编码视频数据。

在一个示例中,一种方法包括:确定以帧间预测模式编码视频数据块;隐含地确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式;确定该视频数据块的运动信息;使用运动信息,根据dmvd模式确定参考块;和基于参考块生成该视频数据块的预测块。

在另一示例中,一种用于解码视频数据的装置包括:存储器,配置为存储视频数据,和一个或多个处理器,配置为确定以帧间预测模式编码视频数据块;隐含地确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式;确定该视频数据块的运动信息;使用运动信息,根据dmvd模式确定参考块;和基于参考块生成该视频数据块的预测块。

在另一示例中,一种存储指令的计算机可读存储介质,该指令当由一个或多个处理器执行时使得一个或多个处理器:确定以帧间预测模式编码视频数据块;隐含地确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式;确定该视频数据块的运动信息;使用运动信息,根据dmvd模式确定参考块;和基于参考块生成该视频数据块的预测块。

在另一示例中,一种用于解码视频数据的设备包括:用于确定以帧间预测模式编码视频数据块的装置;用于隐含地确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式的装置;用于确定该视频数据块的运动信息的装置;用于使用运动信息根据dmvd模式确定参考块的装置;和用于基于参考块生成该视频数据块的预测块的装置。

在另一示例中,一种解码视频数据的方法包括:确定以帧间预测模式编码视频数据块,确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式,确定该视频数据块的运动信息,使用运动信息根据dmvd模式确定参考块,其中,进一步限制参考块以节省存储器访问带宽,和基于限制的参考块生成该视频数据块的预测块。限制的参考块可以在至少一个维度上减小大小。限制的参考块仅包括可以由初始运动矢量指示的参考像素。可以通过以下的至少之一确定限制的参考块外的参考像素的值而生成预测块:利用具有较短抽头的插值滤波器、从附近的可用参考像素复制像素值、从附近的可用参考像素插值像素值。运动信息可以包括运动矢量、运动矢量精度和参考画面索引中的一些或者全部。dmvd模式可以包括图案匹配的运动矢量推导模式、双向光流模式、双边模板匹配模式中的一个。确定对于该视频数据块使能dmvd模式可以包括:基于用于编码该视频数据块的一个或多个相邻块的模式,确定对于该视频数据块使能dmvd模式。一个或多个相邻块可以包括时间相邻块。确定对于该视频数据块使能dmvd模式可以包括:响应于包括该视频数据块的当前片段的低延迟条件为真,确定对于该视频数据块使能dmvd模式,其中,低延迟条件需要当前片段的所有参考画面在显示顺序上位于当前片段之前。dmvd模式可以包括帧速上变换(fruc)模板匹配模式。确定该视频数据块的运动信息可以包括确定用于该视频数据块的参考索引,且其中,确定对于该视频数据块使能dmvd模式包括响应于确定该视频数据块的参考索引的值等于零,确定对于该视频数据块使能dmvd模式。该方法可以作为视频编码处理的解码循环的一部分执行。

在另一示例中,一种用于解码视频数据的装置包括:存储器,配置为存储视频数据,和一个或多个处理器,配置为确定以帧间预测模式编码视频数据块;确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式;确定该视频数据块的运动信息;使用运动信息,根据dmvd模式确定参考块,其中,进一步限制参考块以节省存储器访问带宽;和基于限制的参考块生成该视频数据块的预测块。限制的参考块可以在至少一个维度上减小大小。限制的参考块仅包括可以由初始运动矢量指示的参考像素。可以通过以下中的至少之一确定限制的参考块外的参考像素的值而生成预测块:利用具有较短抽头的插值滤波器、从附近的可用参考像素复制像素值、从附近的可用参考像素插值像素值。运动信息可以包括运动矢量、运动矢量精度和参考画面索引中的一些或者全部。dmvd模式可以包括图案匹配的运动矢量推导模式、双向光流模式、双边模板匹配模式中的一个。确定对于该视频数据块使能dmvd模式可以包括:基于用于编码该视频数据块的一个或多个相邻块的模式,确定对于该视频数据块使能dmvd模式。一个或多个相邻块可以包括时间相邻块。确定对于该视频数据块使能dmvd模式可以包括:响应于包括该视频数据块的当前片段的低延迟条件为真,确定对于该视频数据块使能dmvd模式,其中,低延迟条件需要当前片段的所有参考画面在显示顺序上位于当前片段之前。dmvd模式可以包括帧速上变换(fruc)模板匹配模式。确定该视频数据块的运动信息可以包括确定该视频数据块的参考索引,且其中,确定对于该视频数据块使能dmvd模式包括响应于确定该视频数据块的参考索引的值等于零,确定对于该视频数据块使能dmvd模式。该方法可以作为视频编码处理的解码循环的一部分执行。

在另一示例中,一种用于解码视频数据的装置包括:存储视频数据的装置,和用于配置为以下的处理的装置:确定以帧间预测模式编码视频数据块;确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式;确定该视频数据块的运动信息;使用运动信息,根据dmvd模式确定参考块,其中,进一步限制参考块以节省存储器访问带宽;和基于限制的参考块生成该视频数据块的预测块。限制的参考块可以在至少一个维度上减小大小。限制的参考块仅包括可以由初始运动矢量指示的参考像素。可以通过以下中的至少之一确定限制的参考块外的参考像素的值而生成预测块:利用具有较短抽头的插值滤波器、从附近的可用参考像素复制像素值、从附近的可用参考像素插值像素值。运动信息可以包括运动矢量、运动矢量精度和参考画面索引中的一些或者全部。dmvd模式可以包括图案匹配的运动矢量推导模式、双向光流模式、双边模板匹配模式中的一个。确定对于该视频数据块使能dmvd模式可以包括:基于用于编码该视频数据块的一个或多个相邻块的模式,确定对于该视频数据块使能dmvd模式。一个或多个相邻块可以包括时间相邻块。确定对于该视频数据块使能dmvd模式可以包括,响应于包括该视频数据块的当前片段的低延迟条件为真,确定对于该视频数据块使能dmvd模式,其中,低延迟条件需要当前片段的所有参考画面在显示顺序上位于当前片段之前。dmvd模式可以包括帧速上变换(fruc)模板匹配模式。确定用于该视频数据块的运动信息可以包括确定该视频数据块的参考索引,且其中,确定对于该视频数据块使能dmvd模式包括响应于确定该视频数据块的参考索引的值等于零,确定对于该视频数据块使能dmvd模式。该方法可以作为视频编码处理的解码循环的一部分执行。

在另一示例中,一种存储指令的计算机可读非瞬时存储介质,该指令当由一个或多个处理器执行时使得一个或多个处理器执行处理,该处理包括:确定以帧间预测模式编码视频数据块,确定对于该视频数据块使能解码器侧运动矢量推导(dmvd)模式,确定该视频数据块的运动信息,使用运动信息根据dmvd模式确定参考块,其中,进一步限制参考块以节省存储器访问带宽,和基于限制的参考块生成该视频数据块的预测块。限制的参考块可以在至少一个维度上减小大小。限制的参考块仅包括可以由初始运动矢量指示的参考像素。可以通过以下中的至少之一确定限制的参考块外的参考像素的值而生成预测块:利用具有较短抽头的插值滤波器、从附近的可用参考像素复制像素值、从附近的可用参考像素插值像素值。运动信息可以包括运动矢量、运动矢量精度和参考画面索引中的一些或者全部。dmvd模式可以包括图案匹配的运动矢量推导模式、双向光流模式、双边模板匹配模式中的一个。确定对于该视频数据块使能dmvd模式可以包括,基于用于编码该视频数据块的一个或多个相邻块的模式,确定对于该视频数据块使能dmvd模式。一个或多个相邻块可以包括时间相邻块。确定对于该视频数据块使能dmvd模式可以包括,响应于包括该视频数据块的当前片段的低延迟条件为真,确定对于该视频数据块使能dmvd模式,其中,低延迟条件需要当前片段的所有参考画面在显示顺序上位于当前片段之前。dmvd模式可以包括帧速上变换(fruc)模板匹配模式。确定该视频数据块的运动信息可以包括确定该视频数据块的参考索引,且其中,确定对于该视频数据块使能dmvd模式包括响应于确定该视频数据块的参考索引的值等于零,确定对于该视频数据块使能dmvd模式。该方法可以作为视频编码处理的解码循环的一部分执行。

在以下的附图和描述中提到本公开的一个或多个示例的细节。其他特征、目的和优点将从说明书、附图和权利要求是明显的。

附图说明

图1是图示可以利用用于支持解码器侧运动矢量推导的本公开的技术的示例视频编码和解码系统的框图。

图2a是示出了用于合并模式的空间相邻运动矢量候选的示例的概念图。

图2b是示出了用于高级运动矢量预测模式的空间相邻运动矢量候选的示例的概念图。

图3a是示出了时间运动矢量预测器候选的示例的概念图。

图3b是示出了运动矢量缩放的示例的概念性时序图。

图4是示出了双边匹配的示例的概念图。

图5是示出了模板匹配的示例的概念图。

图6a和图6b是示出了对于帧速上变换模板匹配模式提出修改的示例的流程图。

图7是示出了光流轨迹的示例的概念图。

图8是示出了用于8x4块的双向光流的示例的概念图。

图9是示出了提出的基于双边模板匹配的解码器侧运动矢量推导的示例的概念图。

图10a和图10b是示出了其中可以应用重叠块运动补偿的子块的示例图示的概念图。

图11a-图11d是示出了重叠块运动补偿加权的示例的概念图。

图12是图示可以实现支持解码器侧运动矢量推导的技术的视频编码器的示例的框图。

图13是图示解码编码的视频序列和执行解码器侧运动矢量推导的视频解码器的示例的框图。

图14是图示根据本公开中描述的技术来解码视频数据的示例方法的流程图。

图15是图示关于简化的双边匹配的示例的概念图。

图16是示出了运动细化的示例的概念图。

具体实施方式

关于解码器侧运动矢量推导(dmvd)提出了改进的技术,例如,对运动信息应用一个或多个约束,运动信息比如由dmvd推导出的运动矢量(mv),和/或初始mv和由dmvd推导出的mv之间的mv差值。这些技术可以应用于任意现有的视频编解码器,比如hevc(高效视频编码),和/或可以是任何将来视频编码标准中的高效编码工具。在一个示例中,可以限制用于dmvd的块大小。在另一示例中,可以通过不在由初始运动矢量指示的参考块外部搜索来简化fruc双边匹配。

本公开描述关于解码器侧运动矢量推导(dmvd)的技术。本公开的技术可以与现有的视频编解码器,比如高效视频编码(hevc)标准结合地使用,或者可以用作任何将来视频编码标准中的高效编码工具。

总的来说,本公开描述用于推导用于编码视频数据块的运动信息(例如,一个或多个运动矢量、精度和一个或多个参考画面索引)的技术和用于由视频解码器确定与由视频编码器选择的运动信息相同的运动信息的技术。使用由视频编码器使用的相同(或者互逆)的推导技术,视频解码器可以在不接收特别地标识运动信息的任何语法元素的情况下,确定什么运动信息用于编码视频数据。但是,在某些编码方案中,视频编码器可能仍然明确地编码用于编码块的某些运动信息。

本公开中的各种技术可以参考视频编码器描述,其意在是可以表示视频编码器或者视频解码器的通用术语。除非明确地另外说明,不应该假定相对于视频编码器或者视频解码器描述的技术不能由视频编码器或者视频解码器中的另一个执行。例如,在许多实例中,视频解码器执行与视频编码器相同或者有时互逆的编码技术,以解码编码的视频数据。在许多实例中,视频编码器也包括视频解码循环,因此视频编码器执行视频解码,作为编码视频数据的一部分。因此,除非另有说明,否则相对于视频解码器的本公开中描述的技术也可以由视频编码器执行,反之亦然。

本公开也可以使用比如当前层、当前块、当前画面、当前片段等的术语。在本公开的上下文中,术语当前意在标识当前正在编码的层、块、画面、片段等,与例如预先编码的层、块、画面和片段或者还未编码的块、画面和片段相对。

图1是图示可以利用本公开中描述的技术的示例视频编码和解码系统10的框图。如图1所示,系统10包括源装置12,其生成要在之后由目的地装置14解码的已编码的视频数据。源装置12和目的地装置14可以包括各种各样的装置中的任意一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、比如所谓的“智能”电话的电话机、所谓的“智能”平板、电视、相机、显示装置、数字媒体播放器、视频游戏主机、视频流装置等等。在有些情况下,源装置12和目的地装置14可以配备有无线通信。

目的地装置14可以经由链路16接收要解码的已编码的视频数据。链路16可以包括能够将已编码的视频数据从源装置12移动到目的地装置14的任何类型的介质或装置。在一个示例中,链路16可以包括使源装置12能够实时地将已编码的视频数据直接发送到目的地装置14的通信介质。已编码的视频数据可以根据比如无线通信协议的通信标准来调制,并发送到目的地装置14。通信介质可以包括任何无线或者有线通信介质,比如射频(rf)频谱或者一个或多个物理传输线。通信介质可以形成基于分组的网络,比如局域网、广域网或者比如因特网的全球网的一部分。通信介质可以包括路由器、交换机、基站,或者可以用于便利从源装置12到目的地装置14的通信的任何其他设备。

在另一示例中,已编码的数据可以从输出接口22输出到存储装置26。类似地,已编码的数据可以通过输入接口从存储装置26被访问。存储装置26可以包括各种分布式或者本地访问的数据存储介质中的任意一种,比如硬盘驱动器、蓝光盘、dvd、cd-rom、闪存、易失或者非易失性存储器,或者用于存储已编码的视频数据的任何其他适当的数字存储介质。在另一示例中,存储装置26可以对应于文件服务器或者可以保存由源装置12生成的已编码的视频的另一中间存储装置。目的地装置14可以经由流传输或者下载来访问来自存储装置26的存储的视频数据。文件服务器可以是能够存储已编码的视频数据和将该已编码的视频数据发送到目的地装置14的任何类型的服务器。示例文件服务器包括网络服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)装置或者本地磁盘驱动器。目的地装置14可以通过包括因特网连接的任何标准数据连接来访问已编码的视频数据。这可以包括适于访问存储在文件服务器上的已编码的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl,电缆调制解调器等)或者两者的组合。已编码的视频数据从存储装置26的传输可以是流传输、下载传输或者两者的组合。

本公开的技术不是必须限于无线应用或者设置。该技术可以应用于支持各种多媒体应用(比如空中电视广播、有线电视传输、卫星电视传输、例如经由因特网的流视频传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码或者其他应用)中的任意一种的视频编码。在某些示例中,系统10可以配置为支持单向或者双向视频传输,以支持比如视频流、视频回放、视频广播和/或视频电话的应用。

在图1的示例中,源装置12包括视频源18、视频编码器20和输出接口22。在有些情况下,输出接口22可以包括调制器/解调器(调制解调器)和/或发射器。在源装置12中,视频源18可以包括比如视频捕获装置(例如,摄像机)、包括预先捕获的视频的视频存档、从视频内容提供者接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统的源,或者这些源的组合。作为一个示例,如果视频源18是摄像机,则源装置12和目的地装置14可以形成所谓的可视电话或者视频电话。但是,本公开中描述的技术总的来说可应用于视频编码,且可以应用于无线和/或有线应用。

捕获的、预先捕获的或者计算机生成的视频可以由视频编码器20编码。已编码的视频数据可以经由源装置12的输出接口22直接发送到目的地装置14。已编码的视频数据也可以(或者替代地)存储到存储装置26上,用于之后由目的地装置14或者其他装置访问以解码和/或回放。

目的地装置14包括输入接口28、视频解码器30和显示装置32。在有些情况下,输入接口28可以包括接收器和/或调制解调器。目的地装置14的输入接口28经链路16接收已编码的视频数据。经链路16传递或者在存储装置26上提供的已编码的视频数据可以包括由视频编码器20生成以用于由视频解码器(比如视频解码器30)在解码视频数据时使用的各种语法元素。这种语法元素可以被包括在在通信介质上发送、存储在存储介质上或者存储在文件服务器中的已编码的视频数据中。

显示装置32可以与目的地装置14集成,或者在目的地装置14之外。在某些示例中,目的地装置14可以包括集成的显示装置,且还配置为与外部显示装置接口连接。在其他示例中,目的地装置14可以是显示装置。总的来说,显示装置32向用户显示已解码的视频数据,且可以包括各种显示装置中的任意一种,比如液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或者另一类型的显示装置。

视频编码器20和视频解码器30可以根据视频压缩标准(比如hevc标准)而操作,且可以符合hevc测试模型(hm)。视频编码器20和视频解码器30可以另外根据hevc扩展而操作,比如已经由itu-t视频编码专家组(vceg)和iso/iec运动图像专家组(mpeg)的关于视频编码的联合合作组(jct-vc)以及关于3d视频编码扩展发展的联合合作组(jct-3v)开发的范围扩展、多视角扩展(mv-hevc)或者可缩放扩展(shvc)。

视频编码器20和视频解码器30也可以根据其他专有或者工业标准而操作,比如itu-th.264标准,替代地称为iso/iecmpeg-4第10部分、高级视频编码(avc)或者这种标准的扩展,比如可缩放视频编码(svc)和多视角视频编码(mvc)扩展。但是,本公开的技术不限于任何特定编码标准。视频压缩标准的其他示例包括itu-th.261、iso/iecmpeg-1视觉、itu-th.262或者iso/iecmpeg-2视觉、itu-th.263和iso/iecmpeg-4视觉。

itu-tvceg(q6/16)和iso/iecmpeg(jtc1/sc29/wg11)现在正在研究将来的视频编码技术的标准化的潜在需要,其压缩性能显著地超过当前hevc标准(包括用于屏幕内容编码和高动态范围编码的其当前扩展和近期扩展)。这些组正在联合合作努力中共同开展这项研究活动,该联合合作努力被称为联合视频研究组(jvet),以评估由他们在该领域的专家提出的压缩技术设计。jvet首先在2015年10月19–21日期间开会。且参考软件的最新版本,即,联合研究模型5(jem5)可以从以下下载:

https://jvet.hhi.fraunhofer.de/svn/svn_hmjemsoftware/tags/hm-16.6-jem-5.0/。联合研究测试模型5(jem5)的算法描述可以被称为jvet-e1001。

本公开的技术可以利用hevc术语以便于说明。但是,不应该假定本公开的技术限于hevc,且事实上,明确地考虑本公开的技术可以以hevc和其扩展的后继标准实现。视频编码器20和视频解码器30可以根据多个标准编码和解码视频数据。

虽然在图1中未示出,但是在某些方面,视频编码器20和视频解码器30每个都可以与音频编码器和解码器集成,且可以包括适当的mux-demux单元或者其他硬件和软件,以处理公共数据流或者单独数据流中的音频与视频两者的编码。如果可应用,则在某些示例中,mux-demux单元可以符合ituh.223多路复用器协议或者比如用户数据报协议(udp)的其他协议。

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

在hevc及其他视频编码规范中,视频序列典型地包括一系列画面。画面也可以被称为“帧”。在一个示例方法中,画面可以包括三个样本阵列,表示为sl、scb和scr。在这种示例方法中,sl是亮度样本的二维阵列(即,块)。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。色度样本在这里也可以被称为“色品”样本。在其他实例中,画面可以是单色的且可以仅包括亮度样本的阵列。

为了生成画面的编码表示,视频编码器20可以生成一组编码树单元(ctu)。每个ctu可以包括亮度样本的编码树块、色度样本的两个相应的编码树块和用于编码该编码树块的样本的语法结构。在单色画面或者具有三个单独色彩面的画面中,ctu可以包括单个编码树块和用于编码该编码树块的样本的语法结构。编码树块可以是样本的nxn块。ctu也可以被称为“树块”或者“最大编码单元(lcu)”。hevc的ctu可以广泛地类似于其他标准,比如h.264/avc的宏块。但是,ctu不必须限于特定大小,且可以包括一个或多个编码单元(cu)。片段可以包括以光栅扫描次序连续地排序的整数数目的ctu。

为了生成编码的ctu,视频编码器20可以关于ctu的编码树块递归地执行四叉树分割,以将编码树块划分为编码块,由此命名“编码树单元”。编码块可以是样本的nxn块。cu可以包括亮度样本的编码块和具有亮度样本阵列、cb样本阵列和cr样本阵列的画面的色度样本的两个相应的编码块,以及用于编码编码块的样本的语法结构。在单色画面或者具有三个单独色彩面的画面中,cu可以包括单个编码树块和用于编码该编码树块的样本的语法结构。

视频编码器20可以将cu的编码块划分为一个或多个预测块。预测块是应用了相同预测的样本的矩形(即,正方或者非正方)块。cu的预测单元(pu)可以包括亮度样本的预测块、色度样本的两个相应的预测块和用于预测预测块的语法结构。在单色画面或者具有三个单独色彩面的画面中,pu可以包括单个预测块和用于预测预测块的语法结构。视频编码器20可以生成cu的每个pu的亮度、cb和cr预测块的预测性亮度、cb和cr块。

视频编码器20可以使用帧内预测或者帧间预测以生成pu的预测块。如果视频编码器20使用帧内预测以生成pu的预测块,则视频编码器20可以基于与pu相关联的画面的解码样本来生成pu的预测块。如果视频编码器20使用帧间预测以生成pu的预测块,则视频编码器20可以基于除了与pu相关联的画面之外的一个或多个画面的解码样本来生成pu的预测块。

在视频编码器20生成cu的一个或多个pu的预测性亮度、cb和cr块之后,视频编码器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的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是应用了相同变换的样本的矩形(例如,正方或者非正方)块。cu的变换单元(tu)可以包括亮度样本的变换块、色度样本的两个相应的变换块和用于变换变换块样本的语法结构。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cb变换块可以是cu的cr残差块的子块。在单色画面或者具有三个单独色彩面的画面中,tu可以包括单个变换块和用于变换变换块的样本的语法结构。

视频编码器20可以将一个或多个变换应用于tu的亮度变换块,以生成tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于tu的cb变换块,以生成tu的cb系数块。视频编码器20可以将一个或多个变换应用于tu的cr变换块,以生成tu的cr系数块。

在生成系数块(例如,亮度系数块,cb系数块或者cr系数块)之后,视频编码器20可以量化系数块。量化通常是指量化变换系数以可能地减小用于表示变换系数的数据量,提供进一步压缩的处理。在视频编码器20量化系数块之后,视频编码器20可以熵编码指示已量化的变换系数的语法元素。例如,视频编码器20可以关于指示已量化的变换系数的语法元素执行上下文自适应二进制运算编码(cabac)。

视频编码器20可以输出包括形成编码画面和关联数据的表示的位序列的位流。位流可以包括网络抽象层(nal)单元的序列。nal单元是一种于法结构,其包含nal单元中的数据类型的指示以及包含该数据的字节,这些字节以原始字节序列有效载荷(rbsp)的形式,必要时将其与仿真阻止位一起使用。每个nal单元包括nal单元报头并封装rbsp。nal单元报头可以包括指示nal单元类型码的语法元素。由nal单元的nal单元报头指定的nal单元类型码指示nal单元的类型。rbsp可以是包含nal单元内封装的整数数目的字节的语法结构。在有些情况下,rbsp包括零位。

不同类型的nal单元可以封装不同类型的rbsp。例如,第一类型的nal单元可以封装用于pps的rbsp,第二类型的nal单元可以封装用于编码片段的rbsp,第三类型的nal单元可以封装用于sei消息的rbsp,等等。封装用于视频编码数据的rbsp(与用于参数集合和sei消息的rbsp相反)的nal单元可以被称为vclnal单元。

视频解码器30可以接收由视频编码器20生成的位流。另外,视频解码器30可以解析位流以从位流获得语法元素。视频解码器30可以至少部分地基于从位流获得的语法元素来重建视频数据的画面。重建视频数据的处理通常可以是与由视频编码器20执行的处理互逆的。另外,视频解码器30可以逆量化与当前cu的tu相关联的系数块。视频解码器30可以关于系数块执行逆变换,以重建与当前cu的tu相关联的变换块。视频解码器30可以通过将用于当前cu的pu的预测块的样本添加到当前cu的tu的变换块的相应样本,来重建当前cu的编码块。通过重建画面的每个cu的编码块,视频解码器30可以重建画面。

在hevc中,片段中的最大编码单元被称作编码树块(ctb)或者编码树单元(ctu)。ctb包括四叉树,其节点是编码单元。ctb的大小可以在hevc主档案中从16x16到64x64的范围(虽然技术上可以支持8x8ctb大小)。cu可以大至ctb,或者小至8x8,或者在这两者之间的大小。每个cu典型地使用一个编码模式编码。当cu被帧间编码时,帧间编码的cu可以进一步划分为2或者4个pu,且当不应用进一步划分时仅具有一个pu。当两个pu存在于一个cu中时,两个pu可以是cu的一半大小的矩形或者具有1/4或者3/4大小的两个矩形大小。当cu被帧间编码时,对于每个pu呈现一组运动信息。另外,每个pu以唯一的帧内预测模式编码,以推导出该组运动信息。

为了减小发送运动信息(例如,运动矢量,参考索引和/或运动矢量精度)需要的位速率,视频编码标准一般使用不同类型的运动矢量预测。例如,在hevc标准中,存在分别用于pu的两个帧内预测模式,分别称为合并模式(跳跃模式被认为是合并模式的特定情况)和高级运动矢量预测(amvp)模式。

在amvp或者合并模式中,视频解码器30维持用于多个运动矢量预测器的运动矢量(mv)候选列表。视频解码器30通过从mv候选列表中取得一个候选,生成当前pu的一个或多个运动矢量,以及在合并模式中的参考索引。视频编码器20和视频解码器30两者生成相同的候选列表。本公开将从视频解码器30的角度来描述运动矢量预测,但是应当理解视频编码器20通常实现相同的技术。

在基本hevc标准中,mv候选列表包含用于合并模式的多至五个候选和用于amvp模式的仅两个候选,虽然其他标准可能使用不同数目的候选。合并候选可以包含一组运动信息,例如,与一个或者两个参考画面列表(列表0和列表1)和参考索引对应的运动矢量。如果合并候选由合并索引来标识,则视频解码器30使用标识的合并候选的运动矢量和参考画面索引用于当前块的预测。但是,在用于来自列表0或者列表1的每个潜在预测方向的amvp模式下,参考索引需要与mv预测器(mvp)索引一起明确地以信号通知给mv候选列表,因为amvp候选仅包含运动矢量。在amvp模式中,可以进一步细化预测的运动矢量。

如可以从上面看到的,合并候选对应于整组的运动信息,而amvp候选仅包含用于特定预测方向和用于参考索引的一个运动矢量。用于两个模式的候选可以从相同的空间和时间相邻块类似地推导出。

图2a是示出了用于合并模式的空间相邻运动矢量候选的示例的概念图。视频解码器30可以通过将空间相邻候选的运动信息添加到候选列表来生成候选列表。对于特定pu(pu0),空间mv候选从图2a和图2b示出的相邻块推导出,虽然从块生成候选的方法对于合并和amvp模式不同。在合并模式中,可以以图2a所示的数字的次序推导出多至四个空间mv候选,次序如下:左(0,a1),上(1,b1),右上(2,b0),左下(3,a0)和左上(4,b2),如图2a所示。

图2b是示出了用于高级运动矢量预测模式的空间相邻运动矢量候选的示例的概念图。在avmp模式中,相邻块被划分为两个组:如图2b所示的由块0和1组成的左组和由块2、3和4组成的上组。对于每个组,参考如由以信号通知的参考索引指示的相同参考画面的相邻块中的潜在候选具有被选为形成组的最终候选的最高优先级。有可能全部相邻块都不包含指向相同参考画面的运动矢量。因此,如果不能找到这种候选,则视频解码器30可以缩放第一可用候选以形成最终候选,因此可以补偿时间距离差异。

视频编码器20和视频解码器30可以执行如在hevc标准中那样的时间运动矢量预测(tmvp)。视频解码器30可以将tmvp候选(如果使能且可用)在空间运动矢量候选之后添加到mv候选列表中。用于tmvp候选的运动矢量推导的处理对于合并和amvp模式两者相同;但是,在hevc中,合并模式中用于tmvp候选的目标参考索引总是设置为0。

图3a是示出了时间运动矢量预测器候选的示例的概念图。用于tmvp候选推导的主要块位置是作为块“t”的、如图3a所示的并置(collocated)的pu外的右下块,以补偿用于生成空间相邻候选的上和左块的偏离。但是,如果该块位于当前ctb行之外或者运动信息不可用,则该块以pu的中心块代替。

视频解码器30可以从以片段级别指示的、共置(co-located)画面的共置pu推导出用于tmvp候选的运动矢量。用于共置pu的运动矢量被称作并置的mv。如果参考画面中的块和当前块的每个都包括与参考画面和当前画面中相同的相对位置对应的至少一个像素,则参考画面中的块例如可以被认为是与当前画面中的块共置的。

图3b是示出了运动矢量缩放的示例的概念性时序图。类似于avc中的时间直接模式,为了推导出tmvp候选运动矢量,视频解码器30可以缩放共置的mv以补偿时间距离差异,如图3b所示。通过运动矢量缩放,通常假定运动矢量的值与呈现时间中画面的距离成正比。运动矢量关联两个画面,参考画面和包含运动矢量的画面(即,包含画面)。当使用运动矢量预测另一运动矢量时,基于画面次序计数(poc)值计算包含画面和参考画面的距离。

当正在预测运动矢量时,其参考画面和运动矢量预测器的参考画面可以不同。因此,计算新距离(基于poc)。且基于这两个poc距离缩放运动矢量。在hevc中,运动矢量缩放应用于用于空间和时间相邻候选的tmvp和amvp两者。

相对于人工运动矢量候选生成,如果未完成运动矢量候选列表,则视频解码器30可以生成人工运动矢量候选,在列表的结尾插入该人工运动矢量候选,直到列表满或者直到用于人工候选的选项耗尽为止。

在合并模式中,存在两个类型的人工mv候选:仅对于b-片段推导出的组合候选和仅当第一类型不提供足够的人工候选时使用的零候选。

对于已经在候选列表中且具有必要的运动信息的每一对候选,视频解码器30可以通过参考列表0中的画面的第一候选的运动矢量和参考列表1中的画面的第二候选的运动矢量的组合,推导出双向组合运动矢量候选。

关于用于候选插入的切断处理,来自不同块的候选可能正好相同,这由于列表中的候选重复而降低了合并/amvp候选列表的效率。为了帮助减少这种低效率,视频解码器30可以应用切断处理。作为切断处理的一部分,视频解码器30将一个候选与当前候选列表中的其它候选相比较,以在一定程度上避免插入相同的候选。为了减小复杂性,代替将每个潜在候选与所有其他现有候选相比较,可以仅应用有限数目的切断处理。

jem参考软件包括利用dmvd推导或者细化当前块的运动矢量的几个帧间编码工具。一个这种dmvd工具是图案匹配运动矢量推导(pmmvd)模式,其是基于帧速上变换(fruc)技术的特殊合并模式。当实现jem参考软件时,在pmmvd模式中,视频解码器30可以推导出用于块的运动信息而不是接收明确信令。

当用于cu的合并标志为真时,视频解码器30可以接收用于cu的fruc标志。当fruc标志为假时,视频解码器30可以接收合并索引并使用常规的合并模式。当fruc标志为真时,视频解码器30可以接收附加的fruc模式标志以指示要使用哪个方法(例如,双边匹配或者模板匹配)来推导出用于该块的运动信息。编码用于fruc的标志的语法表如下:

在运动推导处理期间,视频解码器30可以首先基于双边匹配或者模板匹配,推导出用于全部cu的初始运动矢量。首先,检查cu的合并列表或者所谓的pmmvd种子,且导致最小匹配成本的候选被选为开始点。然后,执行开始点周围的基于双边匹配或者模板匹配的局部搜索,且以产生最小匹配成本的mv结果作为用于全部cu的mv。随后,以推导出的cu运动矢量作为开始点,进一步以子块级别细化运动信息。

图4是示出了双边匹配的示例的概念图。如图4所示,双边匹配用于通过在两个不同参考画面(ref0和ref1)中沿着当前块的运动轨迹,找到两个参考块(r0和r1)之间的最佳匹配,来推导出当前块(cur)的运动信息。运动轨迹可以包括当考虑图像序列(例如,参考帧和当前帧)作为3维连续时空场时,块中的像素沿着空间与时间所遵循的路径。在连续运动轨迹的假定下,指向两个参考块(r0和r1)的运动矢量mv0和mv1与当前画面(cur)和两个参考画面(ref0和ref1)之间的时间距离成正比。推导出的mv100和102使用双边匹配推导出,并分别指向参考块r’0和r’1。作为特殊情况,当当前画面(cur)在时间上在两个参考画面(ref0和ref1)之间且从当前画面到两个参考画面的时间距离相同时,双边匹配成为基于镜像的双向mv。因此,推导出的运动矢量100和102类似地是镜像的。

图5是示出了模板匹配的示例的概念图。如图5所示,模板匹配用于通过找出当前画面中的模板(当前块的顶部和/或左边相邻块)和参考画面(ref0和ref1)中的块(与模板相同大小)之间的最佳匹配,来推导当前块的运动信息(cur)。模板可以包括块的相邻像素,所述块用于通过搜索r0和r1的相邻块,将感兴趣的块(cur)与候选参考(具有mv0的r0和具有mv1的r1)或者推导出的参考(具有mv110的r’0和具有mv112的r’1)相比较。最类似的参考然后用作预测。

在视频编码器20,关于是否使用用于cu的fruc合并模式的决定基于如对于普通合并候选做出的rd成本选择。也就是,通过使用rd成本选择,对于cu检查两个匹配模式(双边匹配和模板匹配)。导致最小成本的一个进一步与其他cu模式比较。如果fruc匹配模式是最有效率的一个,则fruc标志对于cu设置为真,且使用有关的匹配模式。

在第5次jvet会议中,提出在http://phenix.it-sudparis.eu/jvet/可获得的“enhancedtemplatematchinginfrucmode”,jvet-e0035,以进一步改进fruc模板匹配。示例性fruc模板匹配模式的流程图如图6a所示。在第一步骤,发现模板t0(和其相应的运动信息mv0)匹配来自list0参考画面的当前块的当前模板tc。在第二步骤,从list1参考画面发现模板t1(和其相应的运动信息mv1)。获得的运动信息mv0和mv1用于执行双向预测以生成当前块的预测器。

图6a和图6b是示出了提出对帧速上变换模板匹配模式的修改的示例的流程图。可以通过在单向预测和双向预测之间引入双向模板匹配和适应性选择来增强fruc模板匹配模式。在图6b中以下划线示出相对于图6a的示例性修改。

双向模板匹配可以基于单向模板匹配实现。如图6a所示,首先在模板匹配的第一步骤中从list0参考画面找到匹配的模板t0(120)。注意,这里list0仅作为示例。事实上,在第一步骤中使用list0还是list1对于相应的参考画面中的当前模板和初始模板之间的初始失真成本是相适应的。初始模板可以以在执行第一模板匹配之前可用的当前块的初始运动信息确定。与最小初始模板失真成本对应的参考画面列表将在模板匹配的第一步骤中使用。例如,如果与list0对应的初始模板失真成本不大于与list1对应的成本,则list0用在模板匹配的第一步骤中且list1用在第二步骤中,然后,当前块的当前模板tc如下更新:

t’c=2*tc–t0

更新的当前模板t’c代替当前模板tc用于在第二模板匹配中从list1参考画面找到另一匹配的模板t1(122)。结果,通过联合地使用list0和list1参考画面找到匹配的模板t1(124)。该匹配处理被称作双向模板匹配。

用于运动补偿预测(mcp)的单向预测和双向预测之间的选择可以基于模板匹配失真。如图6b所示,在模板匹配期间,模板t0和tc(当前模板)之间的失真可以计算为cost0(130),可以更新当前模板(132),且模板t1和t’c(更新的当前模板)之间的失真可以计算为cost1(134)。如果cost0小于0.5*cost1(136),则基于mv0的单向预测可以应用于fruc模板匹配模式(138);否则,应用基于mv0和mv1的双向预测(140)。注意,cost0与0.5*cost1比较,因为cost1指示模板t1和t’c(更新的当前模板)之间的差值,其是tc(当前模板)及其0.5*(t0+t1)的预测之间的差值的2倍。注意,mcp可以应用于pu级别的运动细化。子pu级别的运动细化可以保持不变。

图7是示出了光流轨迹的示例的概念图。jem还包括称为双向光流(bio)的编码模式。bio是逐像素运动细化,在双向预测的情况下,它是在逐块的运动补偿的基础上执行的。由于bio补偿,所以精细运动可以在块的内部,使得bio能够扩大用于运动补偿的块大小。样本级别的运动细化可能不需要穷举搜索或者信令,因为明确的等式可以给出用于每个样本的精细运动矢量。

令i(k)是在补偿块运动之后来自参考k(k=0,1)的亮度值,且分别是i(k)梯度的水平和垂直分量。假定光流有效,则运动矢量字段(vx,vy)由以下等式给出:

将光流方程与赫米特插值相结合以用于每个样本的运动轨迹,得到唯一的三阶多项式,该多项式在末端匹配函数值i(k)和导数两者。在t=0的该多项式的值是bio预测:

这里,τ0和τ1表示到如图7所示的参考帧的距离。距离τ0和τ1基于用于ref0和ref1的poc计算:τ0=poc(当前)-poc(ref0),τ1=poc(ref1)-poc(当前)。如果两个预测都来自相同时间方向(两个都来自过去或者两个都来自将来),则符号不同τ0·τ1<0。在该情况下,仅当预测不来自相同时刻(τ0≠τ1),两个参考的区域具有非零运动(mvx0,mvy0,mvx1,mvy1≠0),且块运动矢量与时间距离成正比(mvx0/mvx1=mvy0/mvy1=-τ0/τ1)时才应用bio。

运动矢量字段(vx,vy)通过最小化在点a和b(图7中的运动轨迹和参考帧平面的交叉点)的值之间的差δ而确定。模型仅使用用于δ的局部泰勒展开式的第一线性项:

在(1)中的所有值取决于至今为止省略的样本位置(i′,j′)。假定运动在局部周围一致,则最小化以当前预测点(i,j)为中心的(2m+1)×(2m+1)正方形窗口ω内的δ:

最小化的简化解。结果是:

其中,

为了避免除以零或者非常小的值,在等式(2)、(3)中引入正则化参数r和m。

r=500·4d-8(8)

m=700·4d-8(9)

这里,d是输入视频的内部位深度。

在有些情况下,bio的mv团(regiment)由于噪声或者不规则运动可能是不可靠的。因此,在bio中,mv团的幅值被限制到某个阈值thbio。阈值基于当前画面的全部参考画面是否全部来自一个方向而确定。如果当前画面的全部参考画面来自于一个方向,则阈值的值设置为12×214-d,否则,其被设置为12×213-d

使用与hevc运动补偿处理(2d可分离fir)一致的操作,用于bio的梯度与运动补偿插值同时计算。用于该2d可分离fir的输入是与运动补偿处理相同的参考帧样本,并且是根据块运动矢量的分数部分的分数位置(fracx,fracy)。在水平梯度的情况下,信号首先使用与具有去缩放偏移d-8的分数位置fracy对应的biofilters垂直地插值,然后在与具有去缩放偏移18-d的分数位置fracx对应的水平方向上应用梯度滤波器biofilterg。在垂直梯度的情况下,首先使用与具有去缩放偏移d-8的分数位置fracy对应的biofilters垂直地应用梯度滤波器,然后在与具有去缩放偏移18-d的分数位置fracx对应的水平方向上使用biofilters执行信号位移。用于梯度计算biofilterg和信号位移biofilterf的插值滤波器的长度较短(6-抽头)以维持合理的复杂性。表1示出了用于bio中的块运动矢量的不同分数位置的梯度计算的滤波器。表2示出了用于bio中的预测信号生成的插值滤波器。

图8是示出了用于8x4块的双向光流的示例的概念图。图8示出了用于执行8x4块的梯度计算的技术的示例。对于8x4块,视频解码器30需要获取运动矢量补偿的预测器,并计算当前块内所有像素以及外部两行像素的hor/ver梯度,因为求解每个像素的vx和vy需要如等式(4)所示的以每个像素为中心的窗口ω内的像素的hor/ver梯度值和运动补偿的预测器。且在jem中,该窗口的大小设置为5x5,因此需要获取运动补偿的预测器,并计算外部两行像素的梯度。

表1:用于bio中的梯度计算的滤波器

表2:用于bio中的预测信号生成的插值滤波器

在jem中,当两个预测来自于不同参考画面时,bio应用于全部双向预测块。当对于cu使能lic时,禁止bio。

图9是示出了提出的基于双边模板匹配的解码器侧运动矢量推导的示例的概念图。jem还包括称为模板匹配的编码工具。视频解码器30分别从list0的初始mv0和list1的mv1生成作为两个预测块的加权组合的双边模板,如图9所示。

模板匹配操作包括计算生成的模板和参考画面中的样本区域(初始预测块周围)之间的成本度量。对于两个参考画面中的每一个,产生最小模板成本的mv被认为是该列表代替初始mv的更新mv。最后,如图8所示的两个新mv,即mv0’和mv1’用于常规双向预测。如通常在块匹配运动估计中使用的那样,绝对差之和(sad)用作成本度量。

提出的dmvd技术应用于双向预测的合并模式,其中一个来自过去的参考画面且另一个来自将来的参考画面,而没有附加的语法元素的传输。

在jem4.0中,当lic、仿射、子cu合并候选或者fruc被选择用于一个cu时,不应用dmvd。

图10a和图10b是示出了其中可以应用重叠块运动补偿(obmc),比如jem中包括的obmc的子块的示例图示的概念图。obmc已经用于早期的视频标准,例如,如在h.263中。在jem中,对于除了cu的右边和底部边界之外所有运动补偿(mc)的块边界执行obmc。此外,其应用于亮度和色度分量两者。在jem中,mc块与编码块对应。当cu以子cu模式(包括子cu合并、仿射和fruc模式,如在kaiminghe,jiansun和xiaooutang,“guidedimagefiltering”,patternanalysisandmachineintelligence,ieeetransactionson,vol.35,no.6,pp.1397-1409,2013中描述的那样)编码时,cu的每个子块是mc块。为了以一致方式处理cu边界,对于所有mc块边界以子块级别执行obmc,其中子块大小设置为等于4x4,如图10a和图10b所示。

当obmc应用于当前子块时,除当前运动矢量之外,四个连接的相邻子块的运动矢量(如果可用且不与当前运动矢量相同)也用于推导当前子块的预测块。将基于多个运动矢量的这些预测块组合以生成当前子块的最终预测信号。

图11a-图11d是示出了重叠块运动补偿加权的示例的概念图。如图11a-图11d所示,基于相邻子块的运动矢量的预测块表示为pn,其中n指示用于相邻的上、下、左和右子块的索引,且基于当前子块的运动矢量的预测块表示为pc。当pn基于包括与当前子块相同运动信息的相邻子块的运动信息时,不从pn执行obmc。否则,pn的每个像素被加到pc中的相同像素,即,pn的四行/列被加到pc。加权因数{1/4,1/8,1/16,1/32}用于pn,且加权因数{3/4,7/8,15/16,31/32}用于pc。例外是小mc块,(即,当编码块的高度或者宽度等于4或者以子cu模式编码cu时),对于这样的小mc块,仅pn的两行/列被加到pc。在该情况下,加权因数{1/4,1/8}用于pn,且加权因数{3/4,7/8}用于pc。对于基于垂直地(水平地)相邻的子块的运动矢量生成的pn,pn的相同行(列)中的像素被以相同加权因数加到pc。注意,bio也应用于预测块pn的推导。

在jem中,对于具有小于或者等于256个亮度样本的大小的cu,以信号通知cu级别标志,以指示对于当前cu是否应用obmc。对于具有大于256个亮度样本或不以amvp模式编码的cu,默认地应用obmc。在编码器,当对于cu应用obmc时,在运动估计阶段期间考虑其影响。通过使用顶部相邻块和左边相邻快的运动信息的预测信号用于补偿当前cu的初始信号的顶部和左边边界,然后应用普通运动估计处理。

本公开的技术可以解决以上提到的某些或者所有问题。所有关于dmvd的方法(bio、fruc双边匹配、fruc模板匹配、双边模板匹配等)可以提供显著的比特率减小。但是,dmvd方法的编码复杂性很高。此外,在当前fruc设计中存在冗余信令。本公开介绍可以修改和/或简化dmvd的技术。以下描述本公开的技术。所描述的技术可以单独地应用。在某些示例中,可以应用它们的任何组合。

本公开的技术包括dmvd模式的开/关控制。在一个示例中,视频解码器30可以通过位流中的以信号通知的语法明确地确定dmvd模式的开/关。在另一示例中,视频解码器30可以基于编码信息隐含地确定dmvd模式的开/关。编码信息可以包括但不限于空间或者时间相邻块的编码模式、当前块的编码模式、当前poc和参考画面poc的poc信息或者当前片段的低延迟条件(ldc)等。低延迟条件(ldc)是当前片段的所有参考画面就显示顺序而言是否在当前片段之前的条件。当当前片段的所有参考画面都在当前片段之前时,ldc设置为真;否则,ldc设置为假。

在一个示例中,视频解码器30可以确定基于当前片段的ldc为真,使能子块级别fruc模板匹配,并确定基于当前片段的ldc为假,禁止子块级别fruc模板匹配。

本公开的技术还包括用于dmvd模式的约束。在一个示例中,dmvd模式的mv推导被限制为关于某些条件执行。以下描述示例条件,但是也可以使用其他条件。

在第一示例中,视频解码器30可以仅当参考索引等于一个或者几个预定数目n时执行mv推导。在某些示例中,n可以等于0,0的索引对应于参考画面列表中的第一画面,由于第一参考画面最接近具有最低量化参数的当前画面,所以第一画面可以频繁地是提供最好预测的参考画面。可以分开地或者联合地对于list0或者list1检查该条件。在一个示例中,当当前块是双向预测帧间块且联合地检查时,仅当l0和l1参考索引两者等于一个或者几个预定数目n(例如n=0)时执行mv推导。在另一示例中,当分开地检查时,当l0或者l1参考索引等于一个或者几个预定数目n(例如n=0)时执行mv推导。

在第二示例中,对于dmvd模式,当mv候选在预定范围内时,视频解码器30可以仅使用mv候选。该范围可以在位流中预定义或者以信号通知。预定范围可以限制必须检查的运动矢量的数目,因此减小存储器访问带宽和总体编码复杂性。

在第三示例中,对于dmvd模式,当参考画面和当前画面之间的poc距离小于或者等于预定数值n(例如,n=4)时,视频解码器30可以仅执行mv推导。视频解码器30可以分开地或者联合地对于list0或者list1检查该条件。在一个示例中,当联合地检查时,视频解码器30可以对于两个列表仅当参考画面和当前画面之间的poc距离小于或者等于预定数值n(例如,n=4)时,执行mv推导。在另一示例中,当联合地检查时,视频解码器30可以对于l0或者l1仅当参考画面和当前画面之间的poc距离小于或者等于预定数值n(例如,n=4)时,执行mv推导。

在另一示例中,视频解码器30可以首先推导用于cu的初始运动矢量,该cu使用用于接下来的局部搜索的fruc双边匹配或者fruc模板匹配模式来编码。视频解码器30可以仅测试对于list0和list1两者具有等于零的参考索引的mv候选,以选择用于进一步细化的初始运动矢量。在另一示例中,视频解码器30可以首先推导用于cu的初始运动矢量,该cu使用用于接下来的局部搜索的fruc双边匹配或者fruc模板匹配模式来编码。仅测试在一范围内的mv候选以选择用于进一步细化的初始运动矢量。在另一示例中,双边模板匹配不应用于在list0或者list1mv中具有非零参考索引的mv。在另一示例中,bio不应用于在list0或者list1mv中具有非零参考索引的mv。

在另一示例中,可以以如下方式来执行bio的开/关切换:如果插值的像素p0和p1之间的sad大于阈值,则禁止bio,因为块的运动轨迹在找到相同对象方面可能不是最优的。在另一示例中,计算当前重建的帧的模板和ref0/ref1中关联区域之间的sad值。如果sad值的比率远大于1(或者远小于1),则禁止bio。阈值可以是预定的或者通过sps/pps/片段报头以信号通知。

本公开的技术还包括信令fruc_mode的约束。当fruc标志为真时,以信号通知附加的fruc模式标志(或者索引),以指示要使用哪种方法(例如,双边匹配或者模板匹配)来推导出用于该块的运动信息。但是,双边匹配可以仅当存在用于当前画面的至少两个不同参考画面时工作。在jem中,仅当slice_type!=p_slice时以信号通知fruc_mode。但是,即使当前画面是b-片段,也可能对于当前画面仅存在一个参考画面,意味着在参考列表0中仅存在一个参考画面且在参考列表1中仅存在一个参考画面,且参考画面是相同画面。在这种情况下,如果fruc_mode指示正在使用双边匹配,则解码器将以未知方式执行。为解决该问题,提出几个解决方案。

在一个示例中,如果在参考列表0中仅存在一个参考画面且在参考列表1中仅存在一个参考画面,且参考画面是相同画面,则可以不以信号通知fruc_mode标志(其指示fruc双边匹配是否应用于块)。在该情况下可以隐含地进行其他fruc模式(例如,模板匹配)。示例性语法表是:

在另一示例中,如在jem中定义的那样,以信号通知fruc模式标志。但是在双边匹配不能工作时的情况下将其省略。例如,当在参考列表0中仅存在一个参考画面且在参考列表1中仅存在一个参考画面,且参考画面是相同画面时,则可以以信号通知fruc模式标志,但是可以省略或者忽略fruc模式标志的值,意味着将应用模板匹配而无论fruc模式标志的值是0还是1。

图12是图示可以实现本公开中描述的技术的示例视频编码器20的框图。视频编码器20可以执行视频片段内的视频块的帧内编码和帧间编码。帧内编码依赖于空间预测以减小或者除去给定图像帧或者画面内的视频中的空间冗余。帧间编码依赖于时间预测以减小或者除去视频序列的相邻帧或者画面内的视频中的时间冗余。帧内模式(i模式)可以指任意几个基于空间的压缩模式。帧间模式,比如单向预测(p模式)或者双向预测(b模式)可以指任意几个基于时间的压缩模式。

在图12的示例中,视频编码器20包括视频数据存储器33、划分单元35、预测处理单元41、加法器50、变换处理单元52、量化单元54、熵编码单元56。预测处理单元41包括运动估计单元(meu)42、运动补偿单元(mcu)44和帧内预测单元46。对于视频块重建,视频编码器20还包括逆量化单元58、逆变换处理单元60、加法器62、滤波器单元64和解码画面缓存器(dpb)66。

如图12所示,视频编码器20接收视频数据并在视频数据存储器33中存储接收到的视频数据。视频数据存储器33可以存储要由视频编码器20的组件编码的视频数据。视频数据存储器33中存储的视频数据例如可以从视频源18获得。dpb66可以是存储用于由视频编码器20以帧内编码或者帧间编码模式编码视频数据时使用的参考视频数据的参考画面存储器。视频数据存储器33和dpb66可以由各种存储器装置中的任意一种形成,比如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram),电阻ram(rram)或者其他类型的存储器装置。视频数据存储器33和dpb66可以由同一存储器装置或者分开的存储器装置提供。在各种示例中,视频数据存储器33可以与视频编码器20的其他组件一起是片上的,或者相对于那些组件是片下的。

划分单元35从视频数据存储器33检索视频数据并将视频数据划分为视频块。该划分也可以包括例如根据lcu和cu的四叉树结构,划分为片段、片或者其他较大单元以及视频块分区。视频编码器20通常图示编码要编码的视频片段内的视频块的组件。片段可以分割为多个视频块(且可能分割为称为片的视频块的集合)。预测处理单元41可以基于错误结果(例如,编码速率和失真级别),对于当前视频块选择多个可能的编码模式之一,比如多个帧内编码模式之一或者多个帧间编码模式之一。预测处理单元41可以将产生的帧内编码或者帧间编码块提供到加法器50以生成残差块数据,和提供到加法器62以重建用作参考画面的编码块。

预测处理单元41内的帧内预测单元46可以相对于相同帧或者片段中的一个或多个相邻块执行作为要编码的当前块的当前视频块的帧内预测编码,以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44执行相对于一个或多个参考画面中的一个或多个预测块的当前视频块的帧间预测编码,以提供时间压缩。运动估计单元42和运动补偿单元44可以配置为根据本公开中描述的技术执行dmvd。

运动估计单元42可以配置为根据用于视频序列的预定图案确定用于视频片段的帧间预测模式。预定图案可以指定序列中的视频片段为p片段或者b片段。运动估计单元42和运动补偿单元44可以高度集成,但是为了概念性目的图示为分开的。由运动估计单元42执行的运动估计是生成估计视频块的运动的运动矢量的处理。例如,运动矢量可以指示相对于参考画面内的预测块的当前图像帧或者画面内的视频块的pu的位移。

预测块是在像素差方面被发现与要编码的视频块的pu紧密地匹配的块,像素差可以由绝对差之和(sad)、平方差之和(ssd)或者其他差值度量确定。在某些示例中,视频编码器20可以计算dpb66中存储的参考画面的子整数像素位置的值。例如,视频编码器20可以插值参考画面的四分之一像素位置、八分之一像素位置或者其他分数像素位置的值。因此,运动估计单元42可以相对于完全像素位置和分数像素位置执行运动搜索,并输出具有分数像素精度的运动矢量。

运动估计单元42通过比较pu的位置与参考画面的预测块的位置,计算帧间编码的片段中的视频块的pu的运动矢量。参考画面可以从第一参考画面列表(list0)或者第二参考画面列表(list1)中选出,其每个标识存储在dpb66中的一个或多个参考画面。运动估计单元42将计算的运动矢量发送到熵编码单元56和运动补偿单元44。

由运动补偿单元44执行的运动补偿可以涉及基于由运动估计确定的运动矢量获取或者生成预测块,可能对子像素精度执行插值。在接收用于当前视频块的pu的运动矢量时,运动补偿单元44可以在参考画面列表之一中定位运动矢量所指向的预测块。视频编码器20通过从正在编码的当前视频块的像素值减去预测块的像素值,形成像素差值来形成残差视频块。像素差值形成该块的残差数据,且可以包括亮度和色度差值分量两者。加法器50表示执行该减法操作的一个或多个组件。运动补偿单元44还可以生成与视频块和视频片段相关联的语法元素,用于由视频解码器30在解码视频片段的视频块时使用。

在预测处理单元41生成用于当前视频块的预测块之后,经由帧内预测或者帧间预测,视频编码器20通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以包括在一个或多个tu中且应用于变换处理单元52。变换处理单元52使用比如离散余弦变换(dct)或者概念上类似的变换之类的变换,将残差视频数据变换为残差变换系数。变换处理单元52可以将残差视频数据从像素域转换到变换域,比如频域。

变换处理单元52可以将产生的变换系数发送到量化单元54。量化单元54量化变换系数以进一步减小位速率。量化处理可以减小与某些或者全部系数相关联的位深度。可以通过调整量化参数来修改量化程度。在某些示例中,量化单元54然后可以执行包括已量化变换系数的矩阵的扫描。在另一示例中,熵编码单元56可以执行该扫描。

在量化之后,熵编码单元56熵编码已量化变换系数。例如,熵编码单元56可以执行上下文自适应可变长度编码(cavlc)、上下文自适应二进制运算编码(cabac)、基于语法的上下文自适应二进制运算编码(sbac)、概率区间划分熵(pipe)编码或者另一熵编码方法或者技术。在熵编码单元56的熵编码之后,编码的位流可以发送到视频解码器30,或者存档用于之后的传输或者由视频解码器30的检索。熵编码单元56还可以熵编码正在编码的当前视频片段的运动矢量和其它语法元素。

逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换,以在像素域中重建残差块,以用于之后用作参考画面的参考块。运动补偿单元44可以通过将残差块加到参考画面列表之一内的参考画面之一的预测块来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建的残差块,以计算用于运动估计的子整数像素值。加法器62将重建的残差块加到由运动补偿单元44产生的运动补偿的预测块,以产生重建的块。

滤波器单元64滤波重建的块(例如,加法器62的输出),并在dpb66中存储滤波的重建的块,以用作参考块。参考块可以由运动估计单元42和运动补偿单元44用作参考块,以帧间预测后续视频帧或者画面中的块。滤波器单元64意在表示分块滤波器、样本自适应偏移(sao)滤波器和自适应环路滤波器(alf)或者任何其他类型的环路滤波器中的任意一种或者其任何组合。分块滤波器例如可以应用分块滤波以对块边界进行滤波,以从重建的视频种除去块状伪像。sao滤波器可以将偏移应用于重建的像素值,以改进总体编码质量。还可以使用附加的环路滤波器(环路中或者环路后)。

图13是图示可以实现本公开中描述的技术的示例视频解码器30的框图。图13的视频解码器30例如可以配置为相对于图12的视频编码器20接收如上所述的信令。在图13的示例中,视频解码器30包括视频数据存储器78、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88,加法器90、滤波器单元92和dpb94。预测处理单元81包括运动补偿单元82和帧内预测单元84。在某些示例中,视频解码器30可以执行通常与相对于图12的视频编码器20描述的编码路径互逆的解码路径。

在解码处理期间,视频解码器30从视频编码器20接收表示已编码的视频片段的视频块和关联的语法元素的已编码的视频位流。视频解码器30在视频数据存储器78中存储接收到的已编码视频位流。视频数据存储器78可以存储要由视频解码器30的组件解码的视频数据,比如已编码的视频位流。视频数据存储器78中存储的视频数据例如可以经由链路16从存储装置26,或者从本地视频源(比如相机),或者通过访问物理数据存储介质而获得。视频数据存储器78可以形成已编码画面缓存器(cpb),其存储来自已编码的视频位流的已编码的视频数据。dpb94可以是存储用于由视频解码器30例如以帧内编码或者帧间编码模式解码视频数据所使用的参考视频数据的参考画面存储器。视频数据存储器78和dpb94可以由各种存储器装置中的任意一种形成,比如dram、sdram、mram、rram或者其他类型的存储器装置。视频数据存储器78和dpb94可以由同一存储器装置或者分开的存储器装置提供。在各种示例中,视频数据存储器78可以与视频解码器30的其他组件一起是片上的,或者相对于那些组件是片下的。

视频解码器30的熵解码单元80熵解码视频数据存储器78中存储的视频数据以生成量化系数、运动矢量及其他语法元素。熵解码单元80将运动矢量及其他语法元素转发到预测处理单元81。视频解码器30可以以视频片段级别和/或视频块级别接收语法元素。

当视频片段编码为帧内编码(i)片段时,预测处理单元81的帧内预测单元84可以基于以信号通知的帧内预测模式和来自当前帧或者画面的先前解码的块的数据,生成用于当前视频片段的视频块的预测数据。当视频帧编码为帧间编码片段(例如,b片段或者p片段)时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动矢量及其他语法元素,产生用于当前视频片段的视频块的预测块。预测块可以从参考画面列表之一内的参考画面之一产生。视频解码器30可以基于dpb94中存储的参考画面使用默认构造技术构造参考帧列表,列表0(list0)和列表1(list1)。

运动补偿单元82结合视频解码器30的其他部分可以配置为执行根据本公开中描述的技术的dmvd。运动补偿单元82通过解析运动矢量及其他语法元素确定用于当前视频片段的视频块的预测信息,并使用该预测信息产生用于正在解码的当前视频块的预测块。例如,运动补偿单元82使用某些接收到的语法元素来确定用于编码视频片段的视频块的预测模式(例如,帧内或者帧间预测)、帧间预测片段类型(例如,b片段或者p片段)、用于该片段的一个或多个参考画面列表的构造信息、用于片段的每个帧间编码的视频块的运动矢量、用于该片段的每个帧间编码的视频块的帧间预测状态及其他信息,以解码当前视频片段中的视频块。

运动补偿单元82还可以基于插值滤波器执行插值。运动补偿单元82可以使用如由视频编码器20在视频块的编码期间使用的插值滤波器,以计算用于参考块的子整数像素的插值。在该情况下,运动补偿单元82可以从接收到的语法元素确定由视频编码器20使用的插值滤波器,并使用插值滤波器产生预测块。

逆量化单元86逆量化,即,去量化在位流中提供且由熵解码单元80解码的已量化变换系数。逆量化处理可以包括用于视频片段中的每个视频块的由视频编码器20计算的量化参数的使用,以确定量化程度,和同样地,确定应该应用的逆量化的程度。逆变换处理单元88将逆变换(例如,逆dct,逆整数变换或者概念上类似的逆变换处理)应用于变换系数以产生像素域中的残差块。

在预测处理单元例如使用帧内或者帧间预测来生成当前视频块的预测块之后,视频解码器30通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的相应的预测块求和来形成重建的视频块。加法器90表示执行该求和操作的一个或多个组件。

滤波器单元92表示解块滤波器、sao滤波器和alf或者任何其他类型的环路滤波器(在编码环中或者在编码环后)中的任意一种或者任何组合。然后将给定帧或者画面中的解码的视频块存储在dpb94中,dpb94存储用于后续运动补偿的参考画面。dpb94可以是存储用于之后在显示装置(比如图1的显示装置32)上呈现的解码的视频的附加存储器的一部分,或者与其分开。

图14是图示本公开中描述的示例视频解码技术的流程图。将参考通用视频解码器,比如但不限于视频解码器30来描述图14的技术。在有些情况下,图14的技术可以由比如视频编码器20的视频编码器执行,而在这样的情况下,通用视频解码器对应于视频编码器的解码环。

在图14的示例中,视频解码器确定视频数据块以帧间预测模式编码(202)。视频解码器隐含地确定对于该视频数据块使能dmvd模式(204)。dmvd模式例如可以是图案匹配的运动矢量推导模式、双向光流模式、双边模板匹配模式或者重叠块运动补偿模式或者另一dmvd模式之一。

在一个示例中,为了隐含地确定对于视频数据块使能dmvd模式,视频解码器可以基于用于编码视频数据块的一个或多个相邻块的模式,确定对于视频数据块使能dmvd模式。一个或多个相邻块可以是时间上相邻的块或者空间上相邻的块。在另一示例中,为了隐含地确定对于视频数据块使能dmvd模式,视频解码器可以响应于包括视频数据块的当前片段的低延迟条件为真,确定对于该视频数据块使能dmvd模式(例如,fruc模板匹配模式),其中低延迟条件需要当前片段的所有参考画面在显示顺序上处于当前片段之前。

在另一示例中,为了隐含地确定对于该视频数据块使能dmvd模式,视频解码器可以响应于该视频数据块是b片段,用于该视频数据块的第一参考画面列表仅包括一个参考画面,用于该视频数据块的第二参考画面列表仅包括一个参考画面,且第一参考画面列表的仅一个参考画面和第二参考画面列表的仅一个参考画面是同一参考画面,来确定对于该视频数据块使能dmvd模式。在另一示例中,为了确定用于该视频数据块的运动信息,视频解码器可以确定用于该视频数据块的参考索引,且为了隐含地确定对于该视频数据块使能dmvd模式,视频解码器可以响应于确定用于该视频数据块的参考索引的值等于零而确定对于该视频数据块使能dmvd模式。

视频解码器确定用于该视频数据块的运动信息(206)。运动信息例如包括运动矢量、运动矢量精度和参考画面索引中的某些或者全部。视频解码器使用运动信息根据dmvd模式确定参考块(208)。视频解码器基于参考块生成用于该视频数据块的预测块(210)。视频解码器可以将残差数据加到预测块以生成重建的视频数据块,并处理重建的视频数据块以生成视频数据的已解码块。该处理例如可以包括一个或多个环路中或者环路后滤波操作。

视频解码器输出视频数据的已解码块。在视频解码器是视频编码器的一部分的实例中,然后视频解码器可以通过在已解码画面缓存器中存储包括视频数据的已解码块的画面,以在编码视频数据的后续画面时用作参考画面,来输出视频数据的已解码块。在视频解码器解码用于显示的视频数据的实例中,然后视频解码器可以通过在已解码画面缓存器中存储包括视频数据的已解码块的画面以在解码视频数据的后续画面时用作参考画面,和通过将包括视频数据的已解码块的画面输出到显示装置,来输出视频数据的已解码块。

图15是图示关于简化的双边匹配的示例的概念图。一个示例方法是限制用于dmvd的块大小。应当理解,dmvd使用先前解码的信息在解码器侧寻求推导比如运动矢量、预测方向的运动信息。在当前方法中,可以首先在解码器侧推导像素的组。然后使用像素的组进一步推导运动信息。例如,在帧速上变换(fruc)模板匹配中,当前块的模板和参考块的模板用于dmvd。在fruc双边匹配中,沿着参考块的运动轨迹的镜像对用于dmvd。在双边模板匹配中,双向预测生成的模板用于dmvd。在bio中,参考块用于dmvd。

限制用于dmvd的块大小可以帮助限制或者约束存储器访问带宽。讨论用以简化fruc双边匹配和fruc双边模板匹配的几个方法。代替使用初始块大小1500,可以代替地使用更小的压缩块大小1502。

对于fruc双边匹配,沿着参考块的运动轨迹的镜像对的块大小可以限于小于当前块的大小。因此,dmvd将不使用除了由当前块的初始l0和l1运动矢量获取的参考像素之外的参考像素。在一个示例中,用于dmvd的参考块从如图15所示的块边界垂直地压缩k个像素和/或水平地压缩l个像素。k和l两者可以预定义为用于dmvd的搜索范围或者基于长宽比或者相邻运动矢量的任何常数。例如,如果当前块的宽度远大于高度,则l可以设置为大于k。在另一示例中,如果大部分相邻运动矢量具有在x方向大于y方向的幅值,k可以设置为大于或者等于l。替代地,k和/或l可以在sps/vps/pps/片段报头中以信号通知。值k和/或l还可以取决于当前块的块大小。在另一示例中,可以仅使用位于某些相对位置的样本,比如定义为(x,y)的坐标,其中x可以是奇数(或者偶数)值,且y可以是奇数(或者偶数)。

对于fruc双边模板匹配,双向预测生成的模板的块大小可以限于小于当前块的大小,这样,dmvd将不使用除了由当前块的初始l0和l1运动矢量获取的参考像素之外的参考像素。在一个示例中,双向预测生成的模板的块从如图15所示的外部或者边缘垂直地压缩k个像素和水平地压缩l个像素。k和l可以预定义为用于dmvd的搜索范围或者如讨论的任何常数。替代地,k和l可以从块宽度和高度,m和n推导出。在另一示例中,可以仅使用位于某些相对位置的样本,比如定义为(x,y)的坐标,其中x可以是奇数(或者偶数)值,且y可以是奇数(或者偶数)值。

对于fruc双边匹配和fruc双边模板匹配两者,如果由搜索范围内的mv指示的参考像素不位于由初始mv(例如,在dmvd之前的mv)指示的参考块内,则参考像素可以标记为“不可用”,且可以由替换像素代替。如图16所示,由初始运动获取的参考块分别是r0和r1。由dmvd推导出的运动矢量获取的参考块是r’0和r’1。不位于初始参考块内的参考像素标记为不可用。

几个方法可以生成用于标记为不可用的像素的替换像素。在一个示例中,可以使用由dmvd推导出的mv来生成替换像素,但是插值滤波器具有较短的抽头,比如双线性差值滤波器或者hevc色度4-抽头插值滤波器。在另一示例中,通过从未标记为不可用的最近的水平或者垂直像素复制像素值来生成替换像素。在像素重复之后,可以应用1d/2d外推滤波器以基于可用参考像素平滑重复的参考像素。滤波器可以是预定义的或者通过sps/vps/pps/片段报头以信号通知。在另一示例中,对于fruc双边匹配和fruc双边模板匹配两者,用于生成“所有像素”线索的插值处理可以简化为具有较短抽头的插值滤波器。例如,在jem中,hevc插值滤波器(8-抽头)用于生成双边模板搜索的像素线索(或者所谓的双边模板)。可以使用具有较短抽头的滤波器,比如双线性滤波器或者hevc色度(4-抽头)。

图16是示出了运动细化的示例的概念图。图示了与生成替换像素值有关的示例。在由dmvd确定最终mv之后,最终mv将用于从list0或者list1参考画面获取参考块以生成最终运动补偿的预测器。为了限制存储器访问带宽,几个方法可以用于简化fruc双边匹配和fruc双边模板匹配。

对于fruc双边匹配和fruc双边模板匹配两者,如果由dmvd推导出的mv指示的参考像素不位于由初始mv(例如,dmvd之前的mv)指示的参考块内,则该参考像素被标记为不可用。如图16所示,由初始运动矢量1600获取的参考块分别是r0和r1。由dmvd推导出的运动矢量1602获取的参考块是r’0和r’1。不位于初始参考块内的那些参考像素如图所示被标记为不可用。

对于fruc双边匹配和fruc双边模板匹配两者,每个像素分别具有来自list0和list1参考画面的两个参考像素。存在三个可能情况:

第一:如果list0和list1参考像素两者都未被标记为“不可用”,则用于关联像素的最终预测器可以由常规方法,比如这两个的平均,或者如hevc中支持的加权平均生成。

第二:如果list0或者list1参考像素被标记为不可用,则仅未被标记为“不可用”的参考像素可以用作最终预测器。

第三:如果list0和list1参考像素两者都被标记为“不可用”,则如下讨论的替换方法可以用于生成最终预测器。这些方法也可以应用于2),以生成list0或者list1中的“不可用”参考像素。如果应用于2),则与使用如下方法生成的标记为“不可用”的参考像素相比,可以给予未被标记为“不可用”的参考像素更高的权重。

提出不同方法以生成用于标记为不可用的那些参考像素的替换像素值。

在一个示例中,可以使用由dmvd推导出的mv生成替换像素,但是插值滤波器具有较短的抽头,比如双线性插值滤波器或者hevc色度4-抽头插值滤波器。

在另一示例中,通过从未被标记为不可用的最近的水平或者垂直像素复制像素值来生成替换像素。在像素重复之后,可以应用1d/2d外推滤波器,以基于可用参考像素平滑重复的参考像素。滤波器可以是预定义的或者通过sps/vps/pps/片段报头以信号通知。

在另一示例中,如果mv在dmvd之后不改变,则可以以与常规方法,比如hevc或者jem中使用的方法同样的方式执行运动补偿。如果mv由dmvd改变,则使用由dmvd推导出的mv生成块内的所有像素,但是插值滤波器具有较短的抽头,比如双线性插值滤波器或者hevc色度4-抽头插值滤波器。

与obmc结合,当基于相邻子块的运动信息生成预测块时,以具有较短抽头的插值滤波器,比如双线性插值滤波器或者hevc色度4-抽头插值滤波器,使用相邻子块的运动信息来生成预测器。

在一个或多个示例中,描述的功能可以以硬件、软件、固件或者其任何组合实现。如果以软件实现,则功能可以作为一个或多个指令或者代码存储在计算机可读介质上或者经计算机可读介质发送,且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于比如数据存储介质的有形介质,或者包括例如根据通信协议促进计算机程序从一地到另一地的传送的任何介质的通信介质。以该方式,计算机可读介质通常可以对应于(1)非瞬时的有形的计算机可读存储介质,或者(2)比如信号或者载波的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以检索用于本公开中描述的技术的实现的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

举例来说,而不是限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或者其他光盘存储、磁盘存储或者其他磁存储装置、闪存、或者可以用于以指令或者数据结构的形式存储所需的程序代码且可以由计算机访问的任何其他介质。此外,任何连接适当地称为计算机可读介质。例如,如果指令从网站、服务器或者其他远程源使用同轴电缆、光纤电缆、双绞线、数字用户路(dsl)或者比如红外、无线电和微波的无线技术发送,则同轴电缆、光纤电缆、双绞线、dsl或者比如红外、无线电和微波的无线技术包括在介质的定义中。但是,应该理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或者其他瞬时的介质,而是代替地涉及非瞬时的有形的存储介质。如在此使用的,盘和磁盘包括致密盘(cd)、激光盘、光盘、数字多用途盘(dvd)、软盘和蓝光盘,其中磁盘通常地磁性地再现数据,而盘以激光光学地再现数据。上述的组合也应该包括在计算机可读介质的范围内。

指令可以由一个或多个处理器,比如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他等效的集成或者离散逻辑电路系统执行。因此,如在此使用的术语“处理器”可以指适于在这里描述的技术的实现的任意前述结构或者任何其他结构。另外,在某些方面,在这里描述的功能性可以在配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入组合的编解码器中。此外,该技术可以在一个或多个电路或逻辑元件中完全地实现。

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

已经描述了各种示例。这些及其他示例在以下权利要求的范围内。

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