基于图片次序计数的运动矢量精简的制作方法

文档序号:15577084发布日期:2018-09-29 05:43阅读:153来源:国知局

本发明涉及视频译码。



背景技术:

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

视频译码技术包含空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列中固有的冗余。对于基于块的视频译码来说,视频片段(例如,视频帧或视频帧的一部分)可被分割成视频块,对于一些技术来说视频块也可被称作树块、译码单元(cu)和/或译码节点。使用相对于相同图片中的相邻块中的参考样本的空间预测对图片的帧内译码(intra-coded,i)片段中的视频块进行编码。图片的经帧间译码(p或b)片段中的视频块可使用相对于相同图片中的相邻块中的参考样本的空间预测,或相对于其它参考图片中的参考样本的时间预测。图片可以被称作帧,且参考图片可以被称作参考帧。

空间或时间预测产生用于待译码块的预测块。残余数据表示待译码原始块与预测块之间的像素差。经帧间译码块是根据指向形成预测块的参考样本块的运动矢量和指示经译码块与预测块之间的差的残余数据来编码。经帧内译码块是根据帧内译码模式和残余数据来编码的。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,随后可以将残余变换系数量化。可扫描最初布置成二维阵列的经量化变换系数,以便产生变换系数的一维矢量,且可应用熵译码以实现甚至更多压缩。



技术实现要素:

一般来说,本发明描述了用于基于图片次序计数(poc)值精简运动矢量预测候选项的列表的技术。视频译码装置可经配置以产生用于视频数据的预测单元(pu)的运动矢量预测候选项的列表。当用于通过第一运动矢量预测候选项识别的参考图片的poc值等于在运动矢量预测候选项的列表中通过第二运动矢量预测候选项识别的参考图片的第二poc值时,视频译码装置可精简来自运动矢量预测候选项的列表的第一运动矢量预测候选项。视频译码装置可使用精简的列表译码pu。

在一个实例中,解码视频数据的方法包含产生用于视频数据的预测单元(pu)的运动矢量预测候选项的列表;当用于通过第一运动矢量预测候选项识别的参考图片的第一图片次序计数(poc)值等于在运动矢量预测候选项的列表中通过第二运动矢量预测识别的参考图片的第二poc值时,精简来自运动矢量预测候选项的列表的第一运动矢量预测候选项;并且使用精简的列表解码pu。

在另一实例中,视频译码装置包含:存储器,其经配置以保存视频数据;以及一或多个处理器,其经配置以进行以下操作:产生用于视频数据的预测单元(pu)的运动矢量预测候选项的列表;当用于通过第一运动矢量预测候选项识别的参考图片的第一图片次序计数(poc)值等于在运动矢量预测候选项的列表中通过第二运动矢量预测识别的参考图片的第二poc值时,精简来自运动矢量预测候选项的列表的第一运动矢量预测候选项;并且使用精简的列表译码pu。

在另一实例中,计算机可读存储媒体具有存储于其上的指令,所述指令在执行时使得视频译码装置的一或多个处理器进行以下操作:产生用于视频数据的预测单元(pu)的运动矢量预测候选项的列表;当用于通过第一运动矢量预测候选项识别的参考图片的第一图片次序计数(poc)值等于在运动矢量预测候选项的列表中通过第二运动矢量预测候选项识别的参考图片的第二poc值时,精简来自运动矢量预测候选项的列表的第一运动矢量预测候选项;以及使用精简的列表译码pu。

在另一实例中,用于解码视频数据的设备包含用于产生视频数据的预测单元(pu)的运动矢量预测候选项的列表的装置。所述设备还包含用于当用于通过第一运动矢量预测候选项识别的参考图片的第一图片次序计数(poc)值等于在运动矢量预测候选项的列表中通过第二运动矢量预测候选项识别的参考图片的第二poc值时精简来自运动矢量预测候选项的列表的第一运动矢量预测候选项的装置。所述设备进一步包含用于使用精简的列表解码pu的装置。

在附图和以下描述中阐明本发明的一或多个实例的细节。本发明的其它特征、目标和优点将从所述描述和图式以及权利要求书中显而易见。

附图说明

图1是说明可利用用于基于图片次序计数值实施精简运动矢量的技术的实例视频编码和解码系统的方块图。

图2是说明可实施用于基于图片次序计数值来精简运动矢量的技术的视频编码器的实例的方块图。

图3是说明可实施用于基于图片次序计数值来精简运动矢量的技术的视频解码器的实例的方块图。

图4是说明高效视频译码(hevc)中的空间相邻候选项的概念图。

图5是说明hevc中的时间运动矢量预测(tmvp)的概念图。

图6是说明用于3d-hevc的实例预测结构的概念图。

图7是说明3d-hevc中的基于子pu的视图间运动预测的概念图。

图8是说明来自参考图片的子pu运动预测的概念图。

图9是说明atmvp(类似于tmvp)中的相关图片的概念图。

图10a和10b是说明pu的子pu以及pu的相邻子pu的实例的概念图。

图11是说明根据本发明的一或多种技术简将运动矢量分类到用于基于图片次序计数的精简的三个类别中的一个中的流程图。

图12是说明根据本发明的一或多种技术用于精简图11中所描述的三个类别中的每一个的条件的流程图。

图13是说明根据本发明的技术用于基于图片次序计数值的精简运动矢量的实例方法的流程图。

具体实施方式

一般来说,本发明涉及视频编解码器(也就是说,视频译码器,例如,视频编码器和视频解码器)中的运动矢量预测。更具体地说,运动矢量预测包含通过基于具有例如相同图片次序计数(pictureordercount,poc)值和/或运动矢量值的多个运动矢量预测候选项的考虑来精简运动矢量预测候选项。为了最大化运动矢量(motionvector,mv)预测的效率,可以检测有效运动矢量预测候选项的唯一性。否则,冗余的运动矢量预测候选项将引起低效的资源利用,例如,浪费位预算或目标装置的资源。因此,通过精简运动矢量预测候选项来消除运动矢量预测候选项的冗余可提高潜在的运动矢量预测候选项的列表的唯一性和多样性以提供mv预测的更有意义的运动矢量预测候选项。此类技术可以应用于合并模式和/或高级运动矢量预测(advancedmotionvectorprediction,amvp)模式。

本文中所描述的技术包含基于图片次序计数(poc)的精简技术。本文中所描述的技术可提高精简精确性,这是因为这些技术使得视频译码装置能够检测无法通过现有精简方法俘获的冗余运动矢量预测候选项。此外,相对于例如itu-th.265/高效视频译码(hevc)可不需要额外的开销(例如,元数据或语法元素的添加)来实施本发明的技术。最后,基于poc的精简在这些技术可以应用于多种多样情况的意义而言可以是通用的,这些情况例如,用于atmvp/合并候选项的空间mv、子pu(atmvp和stmvp)mv、tmvp、组合mv以及甚至零mv。

图1是说明可利用用于基于图片次序计数值实施精简运动矢量的技术的实例视频编码和解码系统的方块图。如图1中所示,系统10包含源装置12,所述源装置提供在稍后时间由目的地装置14解码的经编码视频数据。具体地说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。源装置12和目的地装置14可包括多种多样的装置中的任一者,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能”电话)、所谓的“智能”平板机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,可装备源装置12和目的地装置14以用于无线通信。

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

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

本发明的技术未必限于无线应用或设置。所述技术可以应用于在支持多种多媒体应用中的任一者时的视频译码,例如,空中电视广播、有线电视传输、卫星电视传输、互联网流式传输视频传输(例如,http动态自适应流式传输(dash))、被编码到数据存储媒体上的数字视频,存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输,以支持例如视频流式传输、视频回放、视频广播和/或视频电话的应用。

在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。目的地装置14包含输入接口28、视频解码器30和显示装置32。根据本发明,源装置12的视频编码器20可经配置以应用所述技术用于高级时间运动矢量预测(advancedtemporalmotionvectorpredictionatmvp)。在其它实例中,源装置和目的地装置可包含其它组件或布置。举例来说,源装置12可从外部视频源18(例如,外部相机)接收视频数据。类似地,目的地装置14可以与外部显示装置介接,而不是包含集成显示装置。

图1的所说明的系统10仅为一个实例。用于高级时间运动矢量预测(atmvp)的技术可通过任何数字视频编码和/或解码装置执行。虽然本发明的技术通常通过视频编码装置执行,但是所述技术也可通过视频编码器/解码器(通常被称作“编解码器”)执行。此外,本发明的技术还可通过视频预处理器执行。源装置12和目的地装置14仅为源装置12在其中产生经译码视频数据以供传输到目的地装置14的此类译码装置的实例。在一些实例中,装置12、14可以以基本上对称的方式操作,使得装置12、14中的每一者包含视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频传输以例如用于视频流式传输、视频回放、视频广播或视频电话。

源装置12的视频源18可包含视频俘获装置,例如摄像机、含有先前所俘获视频的视频存档和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或实况视频、所存档视频与计算机产生的视频的组合。在一些情况下,如果视频源18是摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术一般可适用于视频译码,且可应用于无线和/或有线应用。在每一情况下,可由视频编码器20编码所俘获、预先俘获或计算机产生的视频。经编码视频信息可随后通过输出接口22输出到计算机可读媒体16上。

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

目的地装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可包含由视频编码器20定义的语法信息,其也由视频解码器30使用,其包含描述块和其它经译码单元(例如,gop)的特性和/或处理的语法元素。显示装置32将经解码视频数据显示给用户,且可包括多种显示装置中的任一者,例如,阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示装置。

视频编码器20和视频解码器30可根据视频译码标准(例如,高效视频译码(hevc)标准、hevc标准的扩展或随后标准,例如,itu-th.266)来操作。替代地,视频编码器20和视频解码器30可根据其它专有或业界标准(例如itu-th.264标准,替代地被称作mpeg-4第10部分,高级视频译码(avc))或此类标准的扩展来操作。然而,本发明的技术不限于任何特定译码标准。视频译码标准的其它实例包含mpeg-2和itu-th.263。虽然在图1中未示出,但是在一些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当多路复用器-多路分用器单元或其它硬件和软件以处置对共同数据流或单独数据流中的音频或视频两者的编码。如果适用,那么多路复用器-多路分用器单元可符合ituh.223多路复用器协议,或例如用户数据报协议(userdatagramprotocol,udp)等其它协议。

视频编码器20和视频解码器30各自可实施为多种合适的编码器电路中的任一者,例如,一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分地在软件中实施所述技术时,装置可将用于软件的指令存储在合适的非暂时性计算机可读媒体中并使用一或多个处理器在硬件中执行所述指令以执行本发明的技术。视频编码器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)扩展。mvc的最新联合草案描述于2010年3月的“用于通用视听服务的高级视频译码(advancedvideocodingforgenericaudiovisualservices)”(itu-t建议h.264)中。

此外,存在一种新开发的视频译码标准,即,高效率视频译码(hevc),其由itu-t视频译码专家组(vceg)及iso/iec动画专家组(mpeg)的视频译码联合合作小组(jct-vc)进行开发。hevc的最新草案可从phenix.int-evry.fr/jct/doc_end_user/documents/12_geneva/wg11/jctvc-l1003-v34.zip获得。hevc标准也在推荐itu-th.265和国际标准iso/iec23008-2中联合呈现,两者的标题都是“高效视频译码”,并且都发布于2014年10月。

对于视频数据的每个块,运动信息的一个集合可以是可供使用的。用于块的运动信息的一个集合含有用于前向和后向预测方向的运动信息。此处,前向和后向预测方向是对应于当前图片或片段的参考图片列表0(refpiclist0)和参考图片列表1(refpiclist1)的两个预测方向。术语“前向”和“后向”未必具有几何含义。替代地,它们用于区分运动矢量所基于的参考图片列表。前向预测意味着预测基于参考列表0形成,而后向预测意味着预测基于参考列表1形成。在参考列表0和参考列表1两者都用于形成给定块的预测的例子中,它被称为双向预测。

对于给定图片或片段,如果仅使用一个参考图片列表,那么在图片或片段内部的每个块都是前向预测的。如果参考图片列表都用于给定图片或片段,那么在图片或片段内部的块可以是前向预测的,或后向预测的,或双向预测的。对于每个预测方向,运动信息含有参考索引和运动矢量。参考索引值用于识别对应的参考图片列表(例如,refpiclist0或refpiclist1)中的参考图片。运动矢量具有水平和垂直分量两者,其中的每一者相应地指示沿着水平和垂直方向的偏移值。在一些描述中,为了简单起见,词语“运动矢量”可与运动信息互换使用,以指示所述运动矢量及其相关联的参考索引两者。

图片次序计数(poc)广泛用于视频译码标准以识别图片的显示次序。虽然存在一个经译码视频序列内的两个图片可具有相同poc值的情况,但是其通常不在经译码视频序列内发生。当位流中存在多个经译码视频序列时,具有相同poc值的图片可能就解码次序而言更接近彼此。图片的poc值通常用于参考图片列表构造和参考图片集的导出,就像hevc和运动矢量按比例调整中一样。

在h.264/avc中,每个帧间宏块(mb)可以四种不同方式被分割:一个16×16mb分区、两个16×8mb分区、两个8×16mb分区或四个8×8mb分区。一个mb中的不同mb分区对于每个方向可具有不同参考索引值(refpiclist0或refpiclist1)。

当mb未被分割成四个8x8mb分区时,mb在每个方向上对于每个mb分区仅具有一个运动矢量。当mb被分割成四个8×8mb分区时,每个8×8mb分区可以进一步被分割成子块,其中的每一个在每个方向上可具有不同的运动矢量。存在从8×8mb分区中获得子块的四种不同方式:一个8×8子块,两个8×4子块,两个4×8子块或四个4×4子块。每个子块在每个方向上可具有不同运动矢量。因此,运动矢量存在于等于或高于子块的层级中。

在avc中,时间直接模式可以在mb或mb分区层级中的任一者中启用以用于b片段中的跳过或直接模式。对于每个mb分区,与当前块的refpiclist1[0]中的当前mb分区位于同一位置的块的运动矢量用于导出运动矢量。位于同一位置块中的每个运动矢量是基于poc距离按比例调整的。在avc中,直接模式还可以预测来自空间相邻项的运动信息。

在高效视频译码(hevc)中,片段中的最大译码单元(cu)被称为译码树块(ctb)或译码树单元(ctu)。ctb含有四叉树,所述四叉树的节点为译码单元。在hevc主规范中ctb的大小范围可从16×16到64×64(但是技术上可支持8×8ctb大小)。虽然译码单元(cu)可以与ctb相同大小,但其可以像8×8一样小。每个译码单元用一种模式译码。当cu经帧间译码时,cu可进一步被分割成2个或4个预测单元(pu),或当进一步分割不适用时变为仅一个pu。当两个pu存在于一个cu中时,pu可以是两个相等大小的矩形(即,每个pu是面积等于cu的一半的矩形)或者是不同大小的两个矩形(即,一个pu是面积等于cu的面积的四分之一的矩形并且另一pu是面积等于cu的面积的四分之三的矩形)。当cu经帧间译码时,针对每个pu存在运动信息的一个集合。此外,每个pu以唯一帧间预测模式译码以导出运动信息的集合。

在hevc标准中,对于一个预测单元(pu)相应地存在两个通用帧间预测模式:合并模式(跳过模式被视为合并模式的特殊情况)以及高级运动矢量预测(amvp)模式。在amvp或合并模式中,针对多个运动矢量预测候选项维持运动矢量候选项列表。当前pu的运动矢量以及合并模式中的参考索引是通过从mv候选项列表中获取一个候选项而产生的。

mv候选项列表含有用于合并模式的多达5个候选项和用于amvp模式的仅两个候选项。合并候选项可含有运动信息集合,例如,对应于两个参考图片列表(列表0和列表1)的运动矢量和参考索引。如果通过合并索引来识别合并候选项,那么参考图片用于当前块的预测,并且相关联的运动矢量得到确定。然而,在amvp模式下,对于自列表0或列表1起的每个潜在的预测方向,将参考索引连同对mv候选项列表的mvp索引一起明确地用信号发送,这是因为amvp候选项仅含有一个运动矢量。在amvp模式中,可进一步优化经预测运动矢量。

如同从上文中可见,合并候选项对应于运动信息的完整集合,而amvp候选项仅含有用于特定预测方向和参考索引的一个运动矢量。以类似方式从相同空间和时间相邻块导出用于两种模式的候选项。

jct-vc正在努力开发hevc标准。hevc标准化努力是基于被称作hevc测试模型(hm)的视频译码装置的演进的模型。hm假设视频译码装置根据例如itu-th.264/avc相对于现有装置的若干额外能力。举例来说,虽然h.264提供了九种帧内预测编码模式,但是hevchm可提供多达三十三种帧内预测编码模式。

一般来说,hm的工作模型描述视频帧或图片可划分成包含明度和色度样本两者的一序列树块或最大译码单元(lcu)。位流内的语法数据可定义lcu(就像素数目来说,其为最大译码单位)的大小。片段包含按译码次序的多个连续树块。视频帧或图片可以被分割成一或多个片段。每个树块可根据四叉树而被分裂成多个译码单元(cu)。一般来说,四叉树数据结构包含每个cu一个节点,其中一个根节点对应于所述树块。如果cu分裂成四个子cu,那么对应于cu的节点包含四个叶节点,所述叶节点中的每一者对应于所述子cu中的一者。

四叉树数据结构的每个节点可提供对应的cu的语法数据。举例来说,四叉树中的节点可包括分裂旗标,指示对应于所述节点的cu是否分裂成子cu。用于cu的语法元素可以递归方式定义,且可取决于cu是否分裂成子cu。如果cu未进一步分裂,那么cu被称作叶cu。在本发明中,叶cu的4个子cu也将被称作叶cu,即使不存在原始叶cu的明确分裂时也如此。举例来说,如果16×16大小的cu不进一步分裂,那么尽管16×16cu从未经分裂,四个8×8子cu也将被称作叶cu。

除了cu不具有大小区别以外,cu具有与h.264标准的宏块类似的目的。举例来说,树块可分裂成四个子节点(还称为子cu),并且每个子节点又可为父节点并且可分裂成另外四个子节点。最终,未分裂的子节点(被称作四叉树的叶节点)包括译码节点,也被称作叶cu。与经译码位流相关联的语法数据可定义树块可分裂的最大次数,被称作最大cu深度,且还可定义译码节点的最小大小。因此,位流还可定义最小译码单元(scu)。在hevc的情形下,本发明使用术语“块”来指代cu、pu或tu中的任一者,或者在其它标准(例如,在h.264/avc中的宏块及其子块)的情形下,本发明使用术语“块”来指代类似数据结构。

cu包含译码节点以及与所述译码节点相关联的预测单元(pu)和变换单元(tu)。cu的大小对应于译码节点的大小并且形状必须是正方形。cu的大小范围可从8×8像素到具有最大64×64像素或更大的树块的大小。每个cu可含有一或多个pu和一或多个tu。举例来说,与cu相关联的语法数据可描述将cu分割成一或多个pu。分割模式可在cu被跳过还是经直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间有所不同。pu可以分割成非正方形形状。举例来说,与cu相关联的语法数据还可描述cu根据四叉树分割成一或多个tu。atu可为正方形或非正方形(例如,矩形)形状。

hevc标准允许根据tu的变换,tu可针对不同cu而有所不同。tu通常是基于针对经分割lcu定义的给定cu内的pu的大小而定大小,但是情况可能并不总是如此。tu通常与pu大小相同或小于pu。在一些实例中,对应于cu的残余样本可使用被称为“残余四叉树”(rqt)的四叉树结构细分成较小单元。rqt的叶节点可被称作变换单元(tu)。可变换与tu相关联的像素差值以产生变换系数,所述变换系数可经量化。

叶cu可包含一或多个预测单元(pu)。一般来说,pu表示对应于相对应的cu的全部或一部分的空间区域,并且可包含用于检索pu的参考样本的数据。此外,pu包含与预测相关的数据。举例来说,当pu经帧内模式编码时,用于pu的数据可包含在残余四叉树(rqt)中,残余四叉树可包含描述用于对应于pu的tu的帧内预测模式的数据。作为另一实例,当pu经帧间模式编码时,pu可包含定义pu的一或多个运动矢量的数据。定义pu的运动矢量的数据可描述(例如)运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动矢量所指向的参考图片,和/或运动矢量的参考图片列表(例如,列表0、列表1或列表c)。

具有一或多个pu的叶cu还可包含一或多个变换单元(tu)。变换单元可使用rqt(也被称作tu四叉树结构)来指定,如上文所论述。举例来说,分裂旗标可以指示叶cu是否分裂成四个变换单元。随后,每个变换单元可以进一步分裂成更多子tu。当tu未进一步分裂时,tu可被称作叶tu。一般来说,对于帧内译码,属于叶cu的所有叶tu共享相同的帧内预测模式。也就是说,一般应用相同的帧内预测模式来计算叶cu的所有tu的预测值。对于帧内译码,视频编码器可以使用帧内预测模式将每个叶tu的残余值计算为cu的对应于tu的部分与原始块之间的差。tu未必限于pu的大小。因此,tu可比pu大或小。对于帧内译码,pu可以与相同cu的相对应的叶tu位于同一位置。在一些实例中,叶tu的最大大小可以对应于相对应的叶cu的大小。

此外,叶cu的tu还可与相应四叉树数据结构(被称作残余四叉树(rqt))相关联。也就是说,叶cu可包含指示叶cu如何分割成tu的四叉树。tu四叉树的根节点通常对应于叶cu,而cu四叉树的根节点通常对应于树块(或lcu)。未经分裂的rqt的tu被称作叶tu。一般来说,除非以其它方式提及,否则本发明相应地使用术语cu和tu来指代叶cu和叶tu。

视频序列通常包含一系列视频帧或图片。图片群组(gop)大体上包括一系列的一或多个视频图片。gop可包含gop的标头、图片中的一或多者的标头或其它处的语法数据,所述语法数据描述gop中所包含的多个图片。图片的每个片段可包含描述用于相应的片段的编码模式的片段语法数据。视频编码器20通常对各个视频片段内的视频块进行操作以便对视频数据进行编码。视频块可对应于cu内的译码节点。视频块可以具有固定或变化的大小,并且根据指定译码标准可以有不同大小。

作为一个实例,hm支持在各种pu大小下的预测。假定特定cu的大小为2n×2n,那么hm支持2n×2n或n×n的pu大小下的帧内预测,以及2n×2n、2n×n、n×2n或n×n的对称pu大小下的帧间预测。hm还支持用于2n×nu、2n×nd、nl×2n和nr×2n的pu大小下的帧间预测的不对称分割。在不对称分割中,不分割cu的一个方向,但是将另一方向分割成25%和75%。cu的对应于25%分区的部分通过“n”后面跟着“上”、“下”、“左”或“右”的指示来指示。因此,举例来说,“2n×nu”是指水平地分割的2n×2ncu,其中顶部为2n×0.5npu,而底部为2n×1.5npu。

在本发明中,“n×n”和“n乘n”可互换使用来指就垂直和水平尺寸而言的视频块的像素尺寸,例如,16×16个像素或16乘16个像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。类似地,nxn块一般来说在垂直方向上具有n个像素,且在水平方向上具有n个像素,其中n表示非负整数值。块中的像素可以按行和列布置。此外,块可能不一定在水平方向与垂直方向上具有相同数目的像素。举例来说,块可包括nxm个像素,其中m未必等于n。

在使用cu的pu进行帧内预测性或帧间预测性译码之后,视频编码器20可计算cu的tu的残余数据。pu可包括描述在空间域(也被称作像素域)中产生预测性像素数据的方法或模式的语法数据,并且tu可包括在对残余视频数据应用变换(例如,离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换)之后变换域中的系数。所述残余数据可对应于未经编码图片的像素与对应于pu的预测值之间的像素差。视频编码器20可形成包含用于cu的残余数据的tu,并且随后变换tu以产生用于cu的变换系数。

在任何用于产生变换系数的变换之后,视频编码器20可执行变换系数的量化。量化一般来说是指变换系数经量化以可能地减少用于表示系数的数据量从而提供进一步压缩的过程。量化过程可减小与系数中的一些或全部相关联的位深度。举例来说,可在量化期间将n位值向下舍入到m位值,其中n大于m。

在量化之后,视频编码器可以扫描变换系数,从包含经量化变换系数的二维矩阵中产生一维矢量。所述扫描可经设计以将较高能量(并且因此较低频率)的系数放置在阵列的前面,并且将较低能量(并且因此较高频率)的系数放置在阵列的后面。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化变换系数以产生可被熵编码的串行化矢量。在其它实例中,视频编码器20可以执行自适应扫描。在扫描经量化变换系数以形成一维矢量之后,视频编码器20可以(例如)根据上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵编码方法对一维矢量进行熵编码。视频编码器还20还可以对与经编码视频数据相关联的语法元素进行熵编码以供视频解码器30在对视频数据进行解码时使用。

为了执列cabac,视频编码器20可将上下文模型内的上下文指派给待传输的符号。举例来说,所述上下文可与符号的相邻值是否为非零有关。为了执行cavlc,视频编码器20可选择用于将传输的符号的可变长度码。vlc中的码字可经构造使得相对较短码对应于更有可能的符号,而较长码对应于不太可能的符号。以此方式,使用vlc可较之于例如对待传输的每个符号使用等长码字而实现位节省。概率确定可基于指派给符号的上下文而进行。

应注意在以下描述中,我们使用“pu”来指示经帧间译码块单元,并且使用子pu来指示从相邻块中导出运动信息的单元。

视频编码器20和视频解码器30可独自或以任何组合应用以下方法中的任一个。根据本发明的技术,视频编码器20和视频解码器30可经配置以对运动矢量进行译码。在对运动矢量进行译码中,视频编码器20和视频解码器30可经配置以产生视频数据的预测单元(pu)的运动矢量预测候选项的列表。当通过第一运动矢量预测候选项识别的参考图片的第一图片次序计数(poc)值等于运动矢量预测候选项的列表中通过第二运动矢量预测候选项识别的参考图片的第二poc值时,视频编码器20和视频解码器30可进一步经配置以从运动矢量预测候选项的列表中精简第一运动矢量预测候选项。视频编码器20和视频解码器30可进一步经配置以使用精简过的列表对pu进行译码(例如,编码或解码)。

一般来说,现有mv精简方法被分类成至少(可能超过)两种类别:(1)基于像素的精简以及(2)基于运动信息的精简。第一方法是结果导向过程,但是与在运动补偿(mc)之后的经预测像素进行比较是精确的。基于像素的精简可基于mc过程的结果区分mv,因此如果甚至完全不同的运动矢量预测候选项指向相同的经预测像素,那么这些候选项也可得到精简。然而,由于极其高的复杂度,此方法是不切实际的。如同在hevc中,第二方法是基于运动信息(例如,预测方向(interdir)、参考列表(reflist)和参考索引(refidx)来比较运动矢量预测候选项。如果mv(mv[0])的interdir、reflist和refidx等于另一mv(mv[1])的这些项,那么如果mv[0]等于mv[1],则基于运动信息的精简技术假定mv是相同的mv。然而,这个假设未必是真实的,这是因为参考列表l0和l1有时具有相同参考图片,各自具有相同poc值。

根据本文中所描述的技术,基于poc的精简可具有区分具有相同运动信息同时具有较低复杂度且简单的运动矢量预测候选项的能力,以便轻易地应用于最新的视频编解码器,例如,hevc或任何将来的视频译码标准。由于基于poc的精简检查poc值,所以即使所有运动信息都是相同的本文中所描述的技术也可区分运动矢量预测候选项。并且,基于poc的精简检查单个数据点(poc值),而不是多个运动信息数据点,即,interdir、reflist和refidx。因此,基于poc的精简并不引入任何额外的复杂度。此外,由于本文中所描述的技术检查当运动信息存在时总是可供使用的poc值,所以本文中所描述的技术可替代现有精简方法,即,基于运动信息的精简。关于图12和13的实例示出如何可在基于hm16.6的jem1.0上实施基于poc的精简,基于hm16.6的jem1.0是用于评估下一代视频编解码器的参考软件。

当比较关注区域的两个运动矢量预测候选项时,两个候选项可以是单向预测的或双向预测的:单mv对单mv或双mv对双mv。当两个运动矢量预测候选项都是单向预测的时,基于poc的精简可容纳更灵活的候选项,这是因为它可以比较来自不同参考列表的两个运动矢量预测候选项。举例来说,第一运动矢量预测候选项mv[j]可以来自参考列表l0,并且第二运动矢量预测候选项mv[k]可以来自参考列表l1。通过基于运动信息的精简,它们总是被识别为不同的运动矢量预测候选项,这是因为它们来自不同参考列表。然而,基于poc的精简考虑poc值,而非运动信息,因此那些运动矢量预测候选项可以被识别为相同的,前提是poc[j]==poc[k]且mv[j]==mv[k]。如果两个运动矢量预测候选项都是双向预测的,那么类似于单mv情况比较运动矢量预测候选项。此处,导出四对(mv,poc)并且每两对来自一个候选项:一个来自参考列表l0且另一个来自列表l1。并且,来自相同候选项的两对(mv,poc)经分类使得针对所有i∈{j,k},poc[i][0]小于poc[i][1]。接下来,通过两个级联条件检查可供使用的四对(mv,poc):逐对等同条件随后是交叉等同条件:

1.逐对等同条件:

poc[j][0]==poc[k][0]&&poc[j][1]==poc[k][1]&&

mv[j][0]==mv[k][0]&&mv[j][1]==mv[k][1]

2.交叉等同条件:

poc[j][0]==poc[k][0]&&poc[j][1]==poc[k][1]&&poc[j][0]==poc[j][1]&&

mv[j][0]==mv[k][1]&&mv[j][1]==mv[k][0]

如果条件中的一个以级联方式得到满足,那么两个双mv是等同的。

表1.基于poc的精简适用的运动矢量预测候选项的可能的对。

表1概括了哪种运动矢量预测候选项对可使用基于poc的方法来精简。在类别c1中,来自常规pu(非子pu)的运动矢量预测候选项通过单mv对单mv或通过双mv对双mv进行比较,其过程如上文所述。从类别c2到c4,子pumv被包含于比较中。在类别c2中,基于poc的精简用于确定pu内的子pu运动矢量预测候选项是否都是相同的。这可以通过施加类别c1中的相同方式到来自子pu的运动矢量预测候选项来操控。当所有子pu运动矢量预测候选项等同时的情况属于类别c3,其中mv代表来自子pu的所有mv。因而,与类别c1中相同的比较适用。但是如果候选项的所有子pumv并非等同并且此处存在具有子pumv的另一候选项(即,类别c4),那么基于poc的精简适用于来自位于pu内的相同位置的子pu的每对运动矢量预测候选项。通过合并两个单mv,类别c5和c6都涉及双mv构造:一个来自l0并且另一个来自l1。如果两个单mv是相同的(来自相同参考图片的相同mv),那么不需要双mv构造,这是因为所得的双mv将与单mv相同。因此,通过更精确地检测相同运动矢量预测候选项,尤其当l0和l1具有相同参考图片时,基于poc的精简可有助于节约资源。

视频编码器20和视频解码器30各自可实施为可适用的多种合适的编码器或解码器电路中的任一者,例如,一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑电路、软件、硬件、固件或其任何组合。视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为组合视频编码器/解码器(编解码器)的部分。包含视频编码器20和/或视频解码器30的装置可包括集成电路、微处理器和/或无线通信装置,例如,蜂窝式电话。

图2是说明可实施用于基于图片次序计数值来精简运动矢量的技术的视频编码器的实例的方块图。视频编码器20可执行视频片段内的视频块的帧内和帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测来减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(i模式)可指代若干基于空间的译码模式中的任一个。例如单向预测(p模式)或双向预测(b模式)等帧间模式可指代若干基于时间的译码模式中的任一个。

如图2中所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的实例中,视频编码器20包含模式选择单元40、参考图片存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46和分割单元48。为了视频块重构,视频编码器20还包含逆量化单元58、逆变换单元60,以及求和器62。还可包含解块滤波器(图2中未示出)以便对块边界进行滤波,以从经重构视频中移除成块效应假影。必要时,解块滤波器通常将对求和器62的输出进行滤波。除了解块滤波器之外,还可使用额外滤波器(环路内或环路后)。为了简洁起见未示出这些滤波器,但是必要时,这些滤波器可对求和器50的输出进行滤波(作为环路内滤波器)。

在编码过程期间,视频编码器20接收待译码的视频帧或片段。所述帧或片段可划分成多个视频块。运动估计单元42和运动补偿单元44相对于一或多个参考帧中的一或多个块执行接收到的视频块的帧间预测性译码以提供时间预测。帧内预测单元46可替代地相对于与待译码块相同的帧或片段中的一或多个相邻块执行接收到的视频块的帧内预测性译码以提供空间预测。视频编码器20可执行例如多个译码遍次,以针对每个视频数据块选择适当的译码模式。

此外,分割单元48可基于先前译码遍次中的先前分割方案的评估将视频数据块分割成子块。举例来说,分割单元48可起初将帧或片段分割成lcu,并且基于速率失真分析(例如,速率失真优化)将lcu中的每一者分割成子cu。模式选择单元40可以进一步产生指示将lcu分割成子cu的四叉树数据结构。四叉树的叶节点cu可以包含一或多个pu和一或多个tu。

模式选择单元40可例如基于错误结果选择帧内或帧间译码模式中的一个,并且将所得的经帧内或经帧间译码块提供到求和器50以产生残余块数据并且提供到求和器62以重构经编码块以用作参考帧。模式选择单元40还将语法元素(例如,运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。

运动估计单元42和运动补偿单元44可高度集成,但出于概念的目的分别加以说明。由运动估计单元42执行的运动估计是产生运动矢量的过程,所述过程估计视频块的运动。举例来说,运动矢量可指示当前视频帧或图片内的视频块的pu相对于参考帧(或其它经译码单元)内的预测块相对于当前帧(或其它经译码单元)内被译码的当前块的位移。预测块是被发现就像素差而言与待译码的块紧密匹配的块,其可通过绝对差总和(sad)、平方差总和(ssd)或其它差度量来确定。在一些实例中,视频编码器20可以计算存储在参考图片存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以相对于整数像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动矢量。

运动估计单元42通过比较pu的位置与参考图片的预测块的位置来计算用于经帧间译码片段中的视频块的pu的运动矢量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),其中的每一者识别存储在参考图片存储器64中的一或多个参考图片。运动估计单元42将计算出的动作矢量发送到熵编码单元56和运动补偿单元44。

根据本发明的技术,视频编码器20的运动补偿单元44可经配置以执行本文中所描述的各种技术。举例来说,视频编码器20的运动补偿单元44可经配置以产生用于视频数据的预测单元(pu)的运动矢量预测候选项的列表。当通过第一运动矢量预测候选项所识别的参考图片的第一图片次序计数(poc)值等于通过运动矢量预测候选项的列表中的第二运动矢量预测候选项所识别的参考图片的第二poc值时,视频编码器20的运动补偿单元44可进一步经配置以从运动矢量预测候选项的列表中精简第一运动矢量预测候选项。视频编码器20的运动补偿单元44还可经配置以使用精简过的列表对pu进行编码。具体地说,运动补偿单元44可选择到识别将被用于预测pu的运动矢量预测候选项中的一个的精简过的列表中的索引,并且将索引作为将要经熵编码的语法元素提供到熵编码单元56。此外,运动补偿单元44可使用从运动矢量预测候选项中导出的运动矢量产生经预测块并且将经预测块提供到求和器50和求和器62。

在一些实例中,在运动矢量预测候选项的精简列表中,运动补偿单元44可确定第一poc值等于第二poc值。运动补偿单元44可进一步确定第一运动矢量预测候选项等于第二运动矢量预测候选项的第二运动矢量。响应于确定第一poc值等于第二poc值并且第一运动矢量等于第二运动矢量,运动补偿单元44可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。在移除第一运动矢量预测候选项之前或之后,运动补偿单元44可将另一运动矢量预测候选项添加(或保留)到运动矢量预测候选项的列表中,所述另一运动矢量预测候选项代替移除的运动矢量预测候选项。

在一些实例中,运动补偿单元44可从第一参考图片列表中导出第一运动矢量预测候选项的第一运动矢量。运动补偿单元44还可从第二参考图片列表中导出第二运动矢量预测候选项的第二运动矢量。第一参考图片列表可不同于第二参考图片列表。举例来说,如上文所描述,各种预测模式可使用列表l0和列表l1两者。根据本文中所描述的技术,两个运动矢量预测候选项中的一个可包含从列表l0中导出的运动矢量,并且第二运动矢量预测候选项可包含从列表l1中导出的运动矢量。在一些例子中,第一运动矢量预测候选项和第二运动矢量预测候选项可以是pu的子预测单元(子pu)的运动矢量。

在一些例子中,第一运动矢量预测候选项和第二运动矢量预测候选项是单向运动矢量预测候选项。在其它例子中,其中第一运动矢量预测候选项和第二运动矢量预测候选项是双向运动矢量预测候选项。在运动矢量预测候选项是双向运动矢量预测候选项的例子中,第一poc值用于通过第一运动矢量预测候选项识别的第一参考图片。第一运动矢量预测候选项进一步包含第一运动矢量。另外,第二poc值用于通过第二运动矢量预测候选项识别的第二参考图片。第二运动矢量预测候选项进一步包含第二运动矢量。因为运动矢量预测候选项是双向的,所以第一运动矢量预测候选项进一步包含第三运动矢量以及具有第三poc值的第三参考图片,并且第二运动矢量预测候选项进一步包含第四运动矢量以及具有第四poc值的第四参考图片。

在一些实例中,其中运动矢量预测候选项是双向的,精简第一运动矢量预测候选项的过程可包含运动补偿单元44确定第一poc值等于第二poc值。运动补偿单元44可进一步确定第一运动矢量预测候选项的第一运动矢量等于第二运动矢量预测候选项的第二运动矢量。运动补偿单元44可进一步确定第三poc值等于第四poc值,并且第一运动矢量预测候选项的第三运动矢量等于第二运动矢量预测候选项的第四运动矢量。换句话说,运动补偿单元44可确定相应的双向运动矢量预测候选项的相应的方向具有在相对应的双向运动矢量预测候选项中的呈现成对等同性的匹配的poc值和匹配的运动矢量。响应于确定第一poc值等于第二poc值,第一运动矢量等于第二运动矢量,第三poc值等于第四poc值,并且第三运动矢量等于第四运动矢量,运动补偿单元44可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

在其它实例中,其中运动矢量预测候选项是双向的,精简第一运动矢量预测候选项的过程可包含运动补偿单元44确定第一poc值等于第二poc值。运动补偿单元44可进一步确定第一运动矢量预测候选项的第一运动矢量等于第二运动矢量预测候选项的第四运动矢量。运动补偿单元44可进一步确定第三poc值等于第四poc值,并且第一运动矢量预测候选项的第三运动矢量等于第二运动矢量预测候选项的第二运动矢量。换句话说,运动补偿单元44可确定相应的双向运动矢量预测候选项的相应的方向具有在相对应的双向运动矢量预测候选项中的呈现交叉等同性条件的匹配的poc值和匹配的运动矢量。响应于确定第一poc值等于第二poc值,第一运动矢量等于第四运动矢量,第三poc值等于第四poc值,第一poc值等于第三poc值,并且第二运动矢量等于第三运动矢量,运动补偿单元44可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

通过运动补偿单元44执行的运动补偿可以涉及基于通过运动估计单元42确定的运动矢量来获取或产生预测块。同样,在一些实例中,运动估计单元42与运动补偿单元44可以在功能上集成。在接收到当前视频块的pu的运动矢量后,运动补偿单元44可在参考图片列表中的一者中定位所述运动矢量指向的预测块。求和器50通过从经译码的当前视频块的像素值中减去预测块的像素值从而形成像素差值来形成残余视频块,如下文所论述。一般来说,运动估计单元42相对于亮度分量执行运动估计,且运动补偿单元44将基于亮度分量计算出的运动矢量用于色度分量和亮度分量两者。模式选择单元40还可产生与视频块和视频片段相关联的语法元素以供视频解码器30在对视频片段的视频块进行解码时使用。

作为如上文所描述由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可对当前块进行帧内预测。具体地说,帧内预测单元46可以确定用来对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元46可以例如在单独的编码编次期间使用各种帧内预测模式对当前块进行编码,并且帧内预测单元46(或在一些实例中为模式选择单元40)可以从所述经测试模式中选择适当帧内预测模式来使用。

举例来说,帧内预测单元46可使用速率失真分析计算用于各种经测试帧内预测模式的速率失真值,并且从所述经测试模式当中选择具有最佳速率失真特性的帧内预测模式。率失真分析通常确定经编码块与经编码以产生所述经编码块的原始未经编码块之间的失真(或错误)的量,以及用于产生经编码块的位速率(即,位的数目)。帧内预测单元46可根据用于各种经编码块的失真和速率计算比率,以确定哪种帧内预测模式对于所述块呈现最佳速率-失真值。

在选择用于块的帧内预测模式之后,帧内预测单元46可将指示用于所述块的选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可对指示选定帧内预测模式的信息进行编码。视频编码器20可在所传输的位流中包含配置数据,所述配置数据可包含多个帧内预测模式索引表和多个修改的帧内预测模式索引表(也被称作码字映射表)、对用于各种块的上下文进行编码的定义,以及对最可能的帧内预测模式、帧内预测模式索引表及修改的帧内预测模式索引表的指示以用于所述上下文中的每一者。

视频编码器20通过从被译码的原始视频块减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示可执行此减法运算的一或多个组件。变换处理单元52将例如离散余弦变换(dct)或概念上类似的变换等变换应用于残余块,从而产生包括残余变换系数值的视频块。变换处理单元52可执行概念上类似于dct的其它变换。还可使用小波变换、整数变换、子带变换或其它类型的变换。在任何情况下,变换处理单元52将变换应用于残余块,从而产生残余变换系数块。所述变换可以将残余信息从像素值域转换到变换域,例如,频域。变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小位速率。量化过程可减小与系数中的一些或全部相关联的位深度。可以通过调节量化参数来修改量化的程度。在一些实例中,量化单元54可随后执行对包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。

在量化之后,熵编码单元56对经量化变换系数进行熵译码。举例来说,熵编码单元56可以执行上下文自适应可变长度译码(cavlc)、上下文自适应二进制算术译码(cabac)、基于语法的上下文自适应二进制算术译码(sbac)、概率区间分割熵(pipe)译码或另一熵译码技术。就基于上下文的熵译码而言,上下文可基于相邻块。在通过熵编码单元56进行熵译码之后,可以将经编码位流传输到另一装置(例如,视频解码器30),或者将所述经编码位流存档以用于稍后传输或检索。

逆量化单元58和逆变换单元60相应地应用逆量化和逆变换以在像素域中重构残余块,例如,以供稍后用作参考块。运动补偿单元44可以通过将残余块添加到参考图片存储器64的帧中的一者的预测块来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于经重构的残余块以计算子整数像素值以用于运动估计。求和器62将经重构的残余块添加到由运动补偿单元44产生的运动补偿预测块以产生经重构的视频块以用于存储在参考图片存储器64中。经重构视频块可由运动估计单元42和运动补偿单元44使用作为参考块以对后续视频帧中的块进行帧间译码。

图3是说明可实施用于基于图片次序计数值来精简运动矢量的技术的视频解码器的实例的方块图。在图3的实例中,视频解码器30包含熵解码单元70、运动补偿单元72、帧内预测单元74、逆量化单元76、逆变换单元78、参考图片存储器82和求和器80。在一些实例中,视频解码器30可执行总体上与关于视频编码器20(图2)描述的编码遍次互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动矢量产生预测数据,而帧内预测单元74可基于从熵解码单元70接收的帧内预测模式指示符产生预测数据。

在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频片段的视频块的经编码视频位流和相关联的语法元素。视频解码器30的熵解码单元70对位流进行熵解码以产生经量化系数、运动矢量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动矢量及其它语法元素转发到运动补偿单元72。视频解码器30可在视频片段层级和/或视频块层级接收语法元素。

当视频片段经译码为经帧内译码(i)片段时,帧内预测单元74可以基于用信号发送的帧内预测模式以及来自当前帧或图片的先前经解码块的数据产生用于当前视频片段的视频块的预测数据。在视频帧被译码为经帧间译码(即,b、p或gpb)片段时,运动补偿单元72基于从熵解码单元70接收的运动矢量和其它语法元素产生当前视频片段的视频块的预测块。预测块可产生自参考图片列表中的一者内的参考图片中的一者。视频解码器30可基于存储在参考图片存储器82中的参考图片使用默认构造技术构造参考帧列表,即列表0及列表1。运动补偿单元72通过解析运动矢量及其它语法元素来确定当前视频片段的视频块的预测信息,并且使用所述预测信息来产生被解码的当前视频块的预测块。举例来说,运动补偿单元72使用接收到的语法元素中的一些来确定用于对视频片段的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测片段类型(例如,b片段、p片段或gpb片段)、用于片段的参考图片列表中的一或多个的构造信息、用于片段的每个经帧间编码视频块的运动矢量、用于片段的每个经帧间译码视频块的帧间预测状态,以及用于解码当前视频片段中的视频块的其它信息。

运动补偿单元72也可基于内插滤波器执行内插。运动补偿单元72可使用由视频编码器20在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元72可根据接收到的语法元素而确定由视频编码器20使用的内插滤波器并使用所述内插滤波器来产生预测块。

根据本发明的技术,视频解码器30的运动补偿单元72可经配置以执行本文中所描述的各种技术。举例来说,视频解码器30的运动补偿单元72可经配置以产生用于视频数据的预测单元(pu)的运动矢量预测候选项的列表。当通过第一运动矢量预测候选项所识别的参考图片的第一图片次序计数(poc)值等于通过运动矢量预测候选项的列表中的第二运动矢量预测候选项所识别的参考图片的第二poc值时,视频解码器30的运动补偿单元72可进一步经配置以从运动矢量预测候选项的列表中精简第一运动矢量预测候选项。视频解码器30的运动补偿单元72还可经配置以使用精简过的列表对pu进行解码。

具体地说,运动补偿单元72可接收来自熵解码单元70的索引值,其中索引值识别运动矢量预测候选项的列表中的运动矢量预测候选项中的一个。运动补偿单元72可使用通过索引值识别的运动矢量预测候选项来重构用于pu的运动矢量。举例来说,在合并模式中,运动补偿单元72可使用来自运动矢量预测候选项的运动信息,包含参考图片列表、参考图片索引和运动矢量,以产生运动矢量并且从通过参考图片中的运动矢量识别的参考块中预测pu,所述参考图片通过相对应的参考图片列表中的参考图片索引来识别。作为另一实例,在amvp模式中,运动补偿单元72可从熵解码单元70中接收包含参考图片列表、参考图片索引以及x和y偏移值的运动信息,从运动矢量预测候选项中构造预测过的运动矢量,使用x和y偏移值来修改预测过的运动矢量,并且使用通过参考图片中的运动矢量识别的参考块来预测pu,所述参考图片通过相对应的参考图片列表中的参考图片索引来识别。

在一些实例中,在运动矢量预测候选项的精简列表中,运动补偿单元72可确定第一poc值等于第二poc值。运动补偿单元72可进一步确定第一运动矢量预测候选项等于第二运动矢量预测候选项的第二运动矢量。响应于确定第一poc值等于第二poc值并且第一运动矢量等于第二运动矢量,运动补偿单元72可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

在一些实例中,运动补偿单元72可从第一参考图片列表中导出第一运动矢量预测候选项的第一运动矢量。运动补偿单元72还可从第二参考图片列表中导出第二运动矢量预测候选项的第二运动矢量。第一参考图片列表可不同于第二参考图片列表。举例来说,如上文所描述,各种预测模式可使用列表l0和列表l1两者。根据本文中所描述的技术,两个运动矢量预测候选项中的一个可包含从列表l0中导出的运动矢量,并且第二运动矢量预测候选项可包含从列表l1中导出的运动矢量。在一些例子中,第一运动矢量预测候选项和第二运动矢量预测候选项可以是pu的子预测单元(子pu)的运动矢量。

在一些例子中,第一运动矢量预测候选项和第二运动矢量预测候选项是单向运动矢量预测候选项。在其它例子中,其中第一运动矢量预测候选项和第二运动矢量预测候选项是双向运动矢量预测候选项。在运动矢量预测候选项是双向运动矢量预测候选项的例子中,第一poc值用于通过第一运动矢量预测候选项识别的第一参考图片。第一运动矢量预测候选项进一步包含第一运动矢量。另外,第二poc值用于通过第二运动矢量预测候选项识别的第二参考图片。第二运动矢量预测候选项进一步包含第二运动矢量。因为运动矢量预测候选项是双向的,所以第一运动矢量预测候选项进一步包含第三运动矢量以及具有第三poc值的第三参考图片,并且第二运动矢量预测候选项进一步包含第四运动矢量以及具有第四poc值的第四参考图片。

在一些实例中,其中运动矢量预测候选项是双向的,精简第一运动矢量预测候选项的过程可包含运动补偿单元72确定第一poc值等于第二poc值。运动补偿单元72可进一步确定第一运动矢量预测候选项的第一运动矢量等于第二运动矢量预测候选项的第二运动矢量。运动补偿单元72可进一步确定第三poc值等于第四poc值,并且第一运动矢量预测候选项的第三运动矢量等于第二运动矢量预测候选项的第四运动矢量。换句话说,运动补偿单元72可确定相应的双向运动矢量预测候选项的相应的方向具有在相对应的双向运动矢量预测候选项中的呈现成对等同性的匹配的poc值和匹配的运动矢量。响应于确定第一poc值等于第二poc值,第一运动矢量等于第二运动矢量,第三poc值等于第四poc值,并且第三运动矢量等于第四运动矢量,运动补偿单元72可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

在其它实例中,其中运动矢量预测候选项是双向的,精简第一运动矢量预测候选项的过程可包含运动补偿单元72确定第一poc值等于第二poc值。运动补偿单元72可进一步确定第一运动矢量预测候选项的第一运动矢量等于第二运动矢量预测候选项的第四运动矢量。运动补偿单元72可进一步确定第三poc值等于第四poc值,并且第一运动矢量预测候选项的第三运动矢量等于第二运动矢量预测候选项的第二运动矢量。换句话说,运动补偿单元72可确定相应的双向运动矢量预测候选项的相应的方向具有在相对应的双向运动矢量预测候选项中的呈现交叉等同性条件的匹配的poc值和匹配的运动矢量。响应于确定第一poc值等于第二poc值,第一运动矢量等于第四运动矢量,第三poc值等于第四poc值,第一poc值等于第三poc值,并且第二运动矢量等于第三运动矢量,运动补偿单元72可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

逆量化单元76将在位流中提供且由熵解码单元70解码的经量化变换系数逆量化,即,去量化。逆量化过程可包含针对视频片段中的每个视频块通过视频解码器30计算的量化参数qpy的使用以确定量化的程度以及类似地应该应用的逆量化的程度。

逆变换单元78对变换系数应用逆变换(例如,逆dct、逆整数变换,或概念上类似的逆变换过程),以便产生像素域中的残余块。

在运动补偿单元72基于运动矢量和其它语法元素产生当前视频块的预测块之后,视频解码器30通过对来自逆变换单元78的残余块与由运动补偿单元72产生的相对应的预测块求和而形成经解码视频块。求和器80表示执行此求和运算的一或多个组件。必要时,还可应用解块滤波器以对经解码块进行滤波以便移除成块效应假影。还可使用其它环路滤波器(在译码环路中或在译码环路之后)来使像素转变变平滑或者以其它方式改善视频质量。随后将给定帧或图片中的经解码视频块存储在参考图片存储器82中,所述参考图片存储器存储用于后续运动补偿的参考图片。参考图片存储器82还存储经解码视频以用于稍后呈现在显示装置(例如,图1的显示装置32)上。

图4是说明高效视频译码(hevc)中的空间相邻候选项的概念图。尽管从块中产生候选项的方法对于合并模式和amvp模式不同,但对于特定pu(pu0),从在图4上所示的相邻块导出空间mv候选项。

在合并模式中,多达四个空间mv候选项可以按照图4(a)上所示带编号的次序导出,并且次序如下:左(0,a1),上(1,b1),右上(2,b0),左下(3,a0)和左上(4,b2),如图4(a)所示。

在amvp模式中,将相邻块划分成两个群组:由块0和1组成的左侧群组,以及由块2、3和4组成的上方群组,如图4(b)上所示。对于每个群组,如用信号发送的参考索引所指示的参考相同参考图片的相邻块中的潜在候选项具有最高待选优先级,以形成所述群组的最终候选项。有可能所有相邻块均不含指向相同参考图片的运动矢量。因此,如果无法找到此类候选项,那么可按比例调整第一可供使用的候选项以形成最终候选项,因此可补偿时间距离差异。

图5是说明hevc中的时间运动矢量预测(tmvp)的概念图。如果经启用并且是可供使用的,那么时间运动向量预测符(tmvp)候选项被添加到mv候选项列表中位于空间运动矢量候选项之后。对于合并模式和amvp模式两者来说,tmvp候选项的运动矢量导出的过程是相同的,然而在合并模式中用于tmvp候选项的目标参考索引总是被设置成0。

用于tmvp候选项导出的主块位置是位于同一位置的pu外部的右下块,如图5(a)所示为块“t”,以补偿对用于产生空间相邻候选项的左上块的偏置。然而,如果所述块位于当前ctb行的外部或运动信息不可供使用,那么所述块被pu的中心块取代。

tmvp候选项的运动矢量可从位于同一位置的图片的位于同一位置的pu导出,在片段层级中指示。位于同一位置的pu的运动矢量被称作位于同一位置的mv。类似于用于导出tmvp候选项运动矢量的avc中的时间直接模式,位于同一位置的mv可经缩放以补偿时间距离差,如图5所示。

可假设运动矢量的价值与按呈现时间的图片的时间距离成比例。运动矢量使两个图片相关联:参考图片和包含运动矢量的图片(即,包含图片)。当运动矢量被用来预测另一运动矢量时,基于图片次序计数(poc)值来计算包含图片和参考图片的距离。

对于待预测的运动矢量,相关联的包含图片和参考图片两者可以是不同的。因此,计算出新距离(基于poc)并且运动矢量是基于这两个poc距离按比例调整的。对于空间相邻候选项,两个运动矢量的包含图片是相同的,而参考图片是不同的。在hevc中,运动矢量按比例调整适用于空间和时间相邻候选项的tmvp和amvp两者。

如果运动矢量候选项列表并不完整,那么仿真运动矢量候选项可产生并且插入在列表的末端直至列表具有所有的候选项为止。在合并模式中,存在两种类型的仿真mv候选项:仅针对b片段导出的组合的候选项和仅针对amvp使用的零候选项,前提是第一类型并不提供足够的仿真候选项。对于已经在候选项列表中并且具有必要的运动信息的每对候选项,双向组合的运动矢量候选项可通过参考列表0中的图片的第一候选项的运动矢量与参考列表1中的图片的第二候选项的运动矢量的组合导出。

来自不同块的候选项可碰巧是相同的,这降低了合并/amvp候选项列表的功效。精简过程可适用于解决这个问题。一般来说,精简过程比较一个候选项与当前候选项列表中的其它候选项以在一定程度上避免插入相同候选项。为了降低复杂度,可应用仅有限数目的精简过程而不是比较每个潜在的一个与所有其它现有的那些。

图6是说明用于3d-hevc的实例预测结构的概念图。3d-hevc是通过jct-3v所开发的hevc的3d视频扩展。图6示出了用于三视图情况的多视图预测结构。v3指示基础视图并且非基础视图(v1或v5)中的图片可从相同时间例子的从属(基础)视图中的图片中预测。视图间样本预测(来自经重构样本)在mv-hevc中得到支持,其典型的预测结构在图8中示出。

mv-hevc和3d-hevc两者都与hevc兼容,其方式为基础(纹理)视图是可通过hevc(版本1)解码器来解码的。在zhang等人的“3d-hevc和mv-hevc的测试模型6(testmodel6of3d-hevcandmv-hevc)”(jct-3v文档iso/iecjtc1/sc29/wg11n13940,可在网站mpeg.chiariglione.org/standards/mpeg-h/high-efficiency-video-coding/test-model-6-3d-hevc-and-mv-hevc供使用,2015年1月26日)中描述了用于mv-hevc和3d-hevc的测试模型。

在mv-hevc中,非基础视图中的当前图片可通过相同视图中的图片和相同时间例子的参考视图中的图片两者来预测,方法是将所有这些图片放置在图片的参考图片列表中。因此,当前图片的参考图片列表含有时间参考图片和视图间参考图片两者。与对应于时间参考图片的参考索引相关联的运动矢量被表示为时间运动向量。与对应于视图间参考图片的参考索引相关联的运动矢量被表示为视差运动矢量。

3d-hevc支持mv-hevc中的所有特征。因此,可启用如上文所提到的视图间样本预测。此外,支持更高级的仅纹理译码工具和深度相关/从属译码工具。仅纹理译码工具通常需要可属于相同对象的相对应的块(在视图之间)的识别。因此,视差矢量导出是3d-hevc中的基本技术。

图7是说明3d-hevc中的基于子pu的视图间运动预测的概念图。在3d-hevc中,子pu层级视图间运动预测方法用于视图间合并候选项,即,从参考视图中的参考块导出的候选项。

当此类模式被启用时,当前pu可对应于参考视图中的参考区域(具有与通过视差矢量识别的当前pu相同的大小),并且与产生通常用于pu的运动信息的一个集合所需的相比参考区域可具有更丰富的运动信息。因此,如图7所示提出了子pu层级视图间运动预测(spivmp)方法。此模式也作为特殊合并候选项用信号发送。子pu中的每一者含有运动信息的完整集合,因而pu可含有运动信息的多个集合。

类似地,在3d-hevc的深度译码中,从纹理视图中导出的运动参数继承(mpi)候选项也可以类似于子pu层级视图间运动预测的方式扩展。举例来说,如果当前深度pu具有含有多个pu的位于同一位置的区,那么当前深度pu可被分成子pu,每个子pu可具有运动信息的不同集合。此方法被称作子pumpi。

在单层译码中,提出二阶段高级时间运动矢量预测设计。利用第一阶段以导出识别参考图片中的当前预测单元(pu)的相对应块的矢量,并且第二阶段是从相对应块中提取多个集合运动信息并且将它们分配到pu的子pu。因而,pu的每个子pu是分别地得到运动补偿的。

atmvp的概念概括如下。第一阶段中的矢量可以从当前pu的空间和时间相邻块中导出。此过程可以随着在所有其它合并候选项中激活合并候选项而实现。

适用于单层译码和子pu时间运动矢量预测,pu或cu可具有待在预测符之前传送的运动细化数据。矢量导出的第一阶段也可通过仅零矢量来简化。矢量导出的第一阶段可包含联合地识别运动矢量及其相关联的图片。已经提出选择相关联的图片并且进一步决定作为第一阶段矢量的运动矢量的各种方式。如果在以上过程期间的运动信息是不可供使用的,那么“第一阶段矢量”用于替代。

从时间相邻项中识别的运动矢量必须按比例调整以用于当前子pu,其方式类似于tmvp中的运动矢量按比例调整。然而,运动矢量可按比例调整成的哪个参考图片可通过以下方式中的一个来设计。在一个例子中,图片可通过当前图片的固定参考索引来识别。在另一例子中,图片可被识别为相对应的时间相邻项的参考图片,前提是在当前图片的参考图片列表中也可供使用。在又一例子,图片可被设置成在第一阶段中识别的位于同一位置的图片并且运动矢量是从其中攫取的。

图8是说明来自参考图片的子pu运动预测的概念图。图9是说明atmvp(类似于tmvp)中的相关图片的概念图。如果例如按照合并候选项列表插入,那么atmvp候选项的位置可发生变化。假设空间候选项和tmvp候选项按照一定次序插入到合并候选项中。atmvp候选项可以插入在那些候选项的任何相对固定的位置中。在一个例子中,例如,atmvp候选项可以插入在前两个空间候选项例如a1和b1之后。在另一例子中,例如,atmvp候选项可以插入在前三个空间候选项例如a1和b1以及b0之后。在又一例子中,例如,atmvp候选项可以插入在前四个空间候选项例如a1、b1、b0和a0之后。在另一例子中,例如,atmvp候选项可以恰好插入在tmvp候选项之前。在另一例子中,例如,atmvp候选项可以恰好插入在tmvp候选项之后。替代地,atmvp候选项在候选项列表中的位置可以在位流中用信号发送。包含tmvp候选项的其它候选项的位置可以另外用信号发送。

atmvp候选项的可用性检查可通过存取运动信息的仅一个集合来应用。当信息的此集合不可供使用时,例如,一个块经帧内译码,整个atmvp候选项被认为是不可供使用的。在该情况下,atmvp将不会被插入到合并列表中。

中心位置或中心子pu可用于检查atmvp候选项的可用性。当使用中心子pu时,中心子pu被选择为覆盖中心位置(例如,中心3位置,其到pu的左上方样本的相对坐标为(w/2,h/2),其中wxh是pu的大小)的一个。此类位置或中心子pu可与时间矢量一起使用以识别运动源图片中的相对应块。识别出来自覆盖对应块的中心位置的块的运动信息的集合。

atmvp译码的pu的运动信息的代表集合可以从子pu中导出。为了形成atmvp候选项,首先形成运动信息的代表集合。此类运动信息的代表集合可从固定位置或固定子pu中导出。固定位置或固定子pu可以按与用于确定atmvp候选项的可用性的运动信息的集合相同的方式来选择。

当子pu已识别其自身的运动信息的集合并且运动信息是不可供使用的时,运动信息可被设置成等于运动信息的代表集合。如果运动信息的代表集合被设置成子pu的运动信息的代表集合,那么对于当前ctu或片段在解码器侧不需要额外的运动存储。此类运动信息的代表集合用于解码过程需要待由运动信息的一个集合表示的全部pu时的所有场景,包含精简,所述过程用于产生组合式双向预测合并候选项。

atmvp候选项可以与tmvp候选项一起精简并且可以考虑tmvp与atmvp之间的交互。基于子pu的候选项(例如,atmvp候选项)与普通候选项一起的精简可通过使用此类基于子pu的候选项的运动信息的代表集合来进行。如果此类运动信息的集合与普通合并候选项相同,那么两个候选项被认为是相同的。

在一些例子中,此外,可以进行检查以确定atmvp是否含有用于多个子pu的运动信息的多个不同集合。如果识别出至少两个不同集合,那么基于子pu的候选项并不用于精简,即,被视为不同于任何其它候选项。否则,基于子pu的候选项可以用于精简。

在一些例子中,此外,atmvp候选项可以与空间候选项一起精简,例如,仅左上的那些,其位置被表示为a1和b1。替代地,仅一个候选项是从时间参考中形成的,所述候选项为atmvp候选项或tmvp候选项。当atmvp可供使用时,候选项是atmvp。否则,候选项是tmvp。此类候选项被插入到合并候选项列表中在类似于tmvp的位置的位置中。在此情况下,候选项的最大数目可保持不变。替代地,甚至当atmvp不可供使用时tmvp总是停用的。替代地,仅当atmvp不可供使用时使用tmvp。

替代地,当atmvp可供使用且tmvp不可供使用时,一个子pu的运动信息的一个集合可被用作tmvp候选项。在此情况下,此外,并不应用atmvp与tmvp之间的精简过程。替代地或另外,用于atmvp的时间矢量也可用于tmvp,使得如用于hevc中的当前tmvp的右下位置或中心3位置可能无法使用。替代地,通过时间矢量以及右下和中心3位置识别的位置联合地被视为提供可供使用的tmvp候选项。

支持atmvp的多个可用性检查以使atmvp候选项更精确和高效的机会更高。当如通过第一时间矢量(例如,如图9所示)所识别的来自运动源图片的当前atmvp候选项不可供使用时,其它图片可被视为运动源图片。当考虑另一图片时,图片可以与不同的第二时间矢量相关联,或者可以简单地与从指向不可供使用的atmvp候选项的第一时间矢量中按比例调整的第二时间矢量相关联。

第二时间矢量可识别第二运动源图片中的atmvp候选项并且可应用相同可用性检查。如果如从第二运动源图片中导出的atmvp候选项是可供使用的,那么导出atmvp候选项并且不可以检查其它图片,否则,可以检查如同运动来源图片的其它图片。

待检查的图片可以是在当前图片的参考图片列表中的那些,它们具有给定次序。对于每个列表,图片是按参考索引的升序检查的。列表x首先被检查并且列表y中的图片(是1-x)随后。列表x可以被选择从使得列表x是含有用于tmvp的位于同一位置的图片的列表。替代地,x被简单地设置成1或0。待检查的图片是通过空间相邻项的运动矢量识别的那些,它们具有给定次序。

当前atmvp可应用于的pu的分割可以是2n×2n、n×n、2n×n、n×2n或其它amp分割,例如,2n×n/2。在一些实例中,此外,如果可以允许其它分割大小。举例来说,可支持atmvp以包含如同64x8的此类大小。替代地,所述模式可仅适用于某些分区,例如,2n×2n。atmvp候选项可被标记为不同类型的合并。

当从相邻项中识别矢量(如在第一阶段中的时间矢量)时,可以按次序检查多个相邻位置,例如,在合并候选项列表构造中使用的那些。对于相邻项中的每一个,可以按次序检查对应于参考图片列表0(列表0)或参考图片列表1(列表1)的运动矢量。当两个运动矢量可供使用时,可以首先检查列表x中的运动矢量并且随后是列表y(其中y等于1-x),使得列表x是含有用于tmvp的位于同一位置的图片的列表。在atmvp中,时间矢量被用于添加为子pu的任何中心位置的偏移,其中时间矢量的分量可偏移到整数编号。此类偏移的中心位置用于识别运动矢量可被分配到的最小单元,例如,具有覆盖当前中心位置的4×4的大小。

在一些实例中,对应于列表0的运动矢量可以在对应于列表1的那些之前被检查。替代地,对应于列表1的运动矢量可以在对应于列表0的那些之前被检查。在又一替代实例中,按次序检查对应于所有空间相邻项中的列表x的所有运动矢量,随后是对应于列表y的运动矢量(其中y等于1-x)。此处,x可指示位于同一位置的图片所属于的位置,或者x可简单地设置成0或1。空间相邻项的次序可以与在hevc合并模式中使用的那些相同。

当在识别时间矢量并不组成识别参考图片的第一阶段中时,如图9所示,运动源图片可被简单地设置成固定图片,例如,用于tmvp的位于同一位置的图片。在此实例中,矢量可仅从指向此类固定图片的运动矢量中被识别。此外,矢量可仅从指向任何图片但是进一步朝向固定图片按比例调整的运动矢量中被识别。

当识别矢量的第一阶段包含识别参考图片和运动源图片时,如图9所示,额外的检查可应用于候选运动矢量。如果运动矢量与经帧内译码的图片或片段相关联,那么此类运动矢量被视为不可供使用的并且不可用于被转换成矢量。另外,如果运动矢量识别相关联的图片中的帧内块(通过例如,添加当前中心坐标与运动矢量),那么此类运动矢量被视为不可供使用的并且不可用于被转换成矢量。

当在识别矢量的第一阶段中时,矢量的分量可被设置成当前pu的宽度的一半和当前pu的高度的一半,使得视频译码器识别运动源图片中的右下像素位置。此处,(x,y)可指示一个运动矢量的水平分量和垂直分量。替代地,矢量的水平分量可被设置成当前pu的宽度的一半和m的总和,并且矢量的垂直分量可被设置成当前pu的高度的一半和n的总和。在一个实例中,当运动信息存储于4×4单元中时,m和n都被设置成等于2。在另一实例中,当运动信息存储于8×8单元中时,m和n都被设置成等于4。

当atmvp适用时,子块/子pu大小可在参数集合中用信号发送,例如,图片参数集合的序列参数集合。所述大小的范围从最小pu大小到ctu大小。所述大小也可是预定义的或用信号发送的。最小pu大小的所述大小可以小至4×4。替代地,子块/子pu大小可基于pu或cu的大小导出。举例来说,子块/子pu可被设置成等于最大(4x4,(cu的宽度)>>m)。m的值可以是预定义的或在位流中用信号发送的。

由于atmvp可被视为新合并候选项的事实,合并候选项的最大数目可以增加1。举例来说,与hevc相比,其可在精简之后占用合并候选项列表中的5个候选项,合并候选项的最大数目可增加到6。替代地,可以针对atmvp执行常规的tmvp候选项的精简或与常规的tmvp候选项的统一,使得合并候选项的最大数目可保持不变。替代地,当atmvp被识别为可供使用的时,空间相邻候选项被从合并候选项列表中排除,例如,获取次序中的最后一个空间相邻候选项被排除。

当多个空间相邻运动矢量被视为导出时间矢量时,运动矢量类似性可基于当前pu的相邻运动矢量以及通过被设置成等于运动矢量的特定时间矢量所识别的相邻运动矢量来计算。导致最高运动类似性的一个可被选为最终时间矢量。在一个替代方案中,对于来自相邻位置n的每个运动矢量,视频译码器识别运动源图片中的块(与当前pu相同大小),其中它的相邻位置n含有运动信息的集合。将此运动矢量的集合与当前块的相邻位置n中的运动信息的集合进行比较。

在另一替代方案中,对于来自相邻位置n的每个运动矢量,视频译码器识别运动源图片中的块,其中它的相邻位置含有运动信息的多个集合。将运动矢量的这些多个集合与来自相同相对位置中的当前pu的相邻位置的运动信息的多个集合进行比较。计算运动信息类似性。举例来说,当前pu具有运动信息的以下集合:a1、b1、a0和b0,被表示为mia1、mib1、mia0和mib0。对于时间矢量tv,视频译码器识别对应于运动源图片中的pu的块。该块具有来自相同的相对a1、b1、a0和b0位置的运动信息,并且被表示为tmia1、tmib1、tmia0和tmib0。通过tv所确定的运动类似性被计算为mstv=∑n∈{a1,b1,a0,b0}mvsim(min,tmin),其中mvsim定义运动信息的两个集合之间的类似性。

在以上两个情况下,可使用运动类似性mvsim,其中两个输入参数是两个运动信息,各自含有多达两个运动矢量和两个参考索引。由此列表x中的每对运动矢量与不同图片的不同列表x中的参考图片、当前图片和运动源图片相关联。对于两个运动矢量mvxn和tmvxn中的每一个(其中x等于0或1),所述运动矢量差mvdxn可被计算为mvxn-tmvxn。之后,差mvsimx被计算为例如,abs(mvdxn[0])+abs(mvdxn[1]),或者(mvdxn[0]*mvdxn[0]+mvdxn[1]*mvdxn[1])。如果运动信息的两个集合都含有可供使用的矢量,那么mvsim被设置成等于mvsim0+mvsim1。

为了具有运动差的通用计算,两个运动矢量都可以朝向相同的固定图片按比例调整,所述固定图片可以是例如当前图片的列表x的第一参考图片refpiclistx[0]。如果来自第一集合的列表x中的运动矢量的可用性与来自第二集合的列表x中的运动矢量的可用性是不同的,即,一个参考索引是-1而另一个不是。运动信息的这两个集合被视为在方向x上并不类似。如果所述两个集合在两个集合中都不类似,那么最终mvsim函数可返回大值t,其可被例如视为无穷大。

替代地,对于运动信息的一对集合,如果一个被预测来自列表x(x等于0或1)而不是列表y(y等于1-x)并且另一个具有相同状态,那么权重在1和2之间(例如,mvsim等于mvsimx*1.5)。当一个集合是仅从列表x中预测的且另一个集合是仅从列表y中预测的时,mvsim被设置成大值t。在其它例子中,对于运动信息的任何集合,只要有一个运动矢量是可供使用的,则两个运动矢量都会被生成。在仅一个运动矢量可供使用的(对应于列表x)情况下,按比例调整运动矢量以形成对应于另一列表y的运动矢量。

替代地,可基于当前pu的相邻像素与通过运动矢量识别的块(与当前pu相同大小)的相邻像素之间的差测量运动矢量。可以将导致最小差的运动矢量选为最终时间矢量。

当导出当前块的时间矢量时,来自通过atmvp译码的相邻块的运动矢量和/或时间矢量可具有与来自其它相邻块的运动矢量相比较高的优先级。在一个实例中,首先检查相邻块的仅时间矢量。第一可供使用的矢量可被设置成当前块的时间矢量。仅当此类时间矢量不存在时,进一步检查普通运动矢量。在此情况下,可存储用于atmvp译码块的时间矢量。

在另一实例中,首先检查仅来自atmvp译码相邻块的运动矢量。第一可供使用的矢量可被设置成当前块的时间矢量。仅当此类时间矢量不存在时,进一步检查普通运动矢量。

在又一实例中,首先检查仅来自atmvp译码相邻块的运动矢量。第一可供使用的矢量可被设置成当前块的时间矢量。如果此类运动矢量不可供使用,那么时间矢量的检查通过时间矢量继续。

在另一实例中,首先检查相邻块的时间矢量。第一可供使用的矢量可被设置成当前块的时间矢量。如果此类运动矢量不可供使用,那么时间矢量的检查继续。在另一实例中,首先检查atmvp译码相邻块的时间矢量和运动矢量。第一可供使用的一个可被设置成当前块的时间矢量。仅当此类时间矢量和运动矢量不存在时,进一步检查普通运动矢量。

当多个空间相邻运动矢量被视为导出时间矢量时,运动矢量可经选择使得视频译码器将从像素域中计算出的减到最少,例如,模板匹配可用于导出时间矢量,使得导致最小匹配开销的一个被选为最终时间矢量。

来自相对应块(在运动源图片中)的运动信息的集合的导出可以完成的方式为当运动矢量在用于任何列表x的对应块中可供使用时(指示运动矢量将为mvx),对于atmvp候选项的当前子pu,运动矢量被视为可供用于列表x(通过按比例调整mvx)。如果运动矢量在用于任何列表x的相对应块中不可供使用,那么运动矢量被视为不可用于列表x。

在一些例子中,当对应块中的运动矢量不可供用于列表x但是可供用于列表1-x(通过y指示1-x并且将运动矢量指示为mvy)时,运动矢量仍然被视为可供用于列表x(通过朝向列表x中的目标参考图片按比例调整mvy)。

在一些例子中,此外,当用于列表x和列表y(等于1-x)的相对应块中的两个运动矢量都可供使用时,来自列表x和列表y的运动矢量不必用于直接地按比例调整以通过按比例调整产生当前子pu的两个运动矢量。

在一个实例中,当编制atmvp候选项时,如在tmvp中所进行的低延迟检查可应用于每一个子pu。如果对于当前片段的每个参考图片列表中的每个图片(通过refpic指示)来说refpic的poc小于当前片段的poc,那么当前片段被视为具有低延迟模式。在此低延迟模式中,按比例调整来自列表x和列表y的运动矢量以相应地产生列表x和列表y的当前子pu的运动矢量。当不在低延迟模式中时,仅选择和按比例调整来自mvx或mvy的一个运动矢量mvz以产生当前子pu的两个运动矢量。类似于tmvp,在此情况下,z被设置成等于collocated_from_l0_flag,这意味着z取决于如在tmvp中的位于同一位置的图片是否处于当前图片的列表x或列表y中。替代地,如果运动源图片被识别为来自列表x,那么z被设置成x。

在一些例子中,此外,当运动源图片属于两个参考图片列表并且refpiclist0[idx0]是首先出现于列表0中的运动源图片并且refpiclist(1)[idx1]是首先出现于列表1中的运动源图片时,如果idx0小于或等于idx1,那么z被设置成0,否则,z被设置成1。

可用信号发送运动源图片。详细地说,对于b片段来说,用信号发送指示运动源图片是否来自列表0或列表1的旗标。替代地,此外,可用信号发送对当前图片的列表0或列表1的参考索引以识别运动源图片。

当识别时间矢量时,如果时间矢量指向相关联的运动源图片中的经帧内译码块,那么矢量被视为不可供使用的(因此可以考虑其它的)。根据本文中所描述的技术,每个子pu的运动矢量可从3d域中的相邻块的信息中导出。这意味着相邻块可为当前图片中的空间相邻项或先前译码图片中的时间相邻项。视频译码装置首先从当前子pu的空间或时间相邻块中获得可供使用的运动场。视频译码装置随后导出来自所获得的相邻运动场的运动信息。如果较多的子pu残留,那么视频译码装置重复以上步骤。如果所有子pu具有导出的运动信息,那么视频译码装置可以确定空间时间子pu运动预测符的可用性。如果可供使用,那么视频译码装置可随后将空间时间子pu运动预测符插入到合并列表中。

在以下描述中,术语“块”用于指代用于存储预测相关信息的块单元,所述信息例如,帧间或帧内预测、帧内预测模式、运动信息等。可保存此类预测信息并且用于译码将来块,例如,预测将来块的预测模式信息。在avc和hevc中,该块的大小是4×4。

应注意在以下描述中,“pu”指示经帧间译码块单元和子pu以指示从相邻块中导出运动信息的单元。可应用以下方法的任何组合。

图10a和10b是说明pu的子pu以及pu的相邻子pu的实例的概念图。考虑具有多个子pu的pu,子pu的大小通常等于或大于相邻块的大小。在一个实例中,如图10a和10b中所示,灰色方块表示在当前pu外部的相邻块(a,b,……i)且其余的方块(a,b,……p)表示当前pu中的子pu,并且子pu和其相邻块的大小是相同的。举例来说,大小等于4×4。图10b示出了其中子pu大于相邻块的另一实例。在一些例子中,子pu可采取非正方形的形状,例如,矩形或三角形。在一些例子中,此外,子pu的大小可在片段标头中用信号发送。

考虑图10a中的情况,光栅扫描次序(a,b,c,d,e……)可应用于子pu以用于在本发明的技术的以下描述中的它们运动预测导出。然而,还可以应用其它的扫描次序,并且应注意本文中所描述的技术并不仅限于光栅扫描次序。

相邻块可分类成两个不同的类型:空间和时间。空间相邻块是在当前图片或片段中且与当前子pu相邻的已经译码块或已经扫描的子pu。时间相邻块是在先前经译码的图片中且与当前子pu的位于同一位置的块相邻的块。在一个实例中,与当前pu相关联的所有参考图片用于获得时间相邻块。在另一实例中,参考图片的子集用于stmvp导出,例如,仅使用每个参考图片列表的第一表项。

根据此定义,对于子pu(a)来说,所有灰色块(a,b,……i)和其在先前译码图片中的位于同一位置的块是被看作可供使用的空间和时间相邻块。根据光栅扫描次序,块b、c、d、e……p不是空间可供使用的。不过,所有子pu(从a到p)是子pu(a)的时间可供使用的相邻块,这是因为它们的运动信息可在先前译码图片中的它们的位于同一位置的块中发现。将子pu(g)作为另一实例,可供使用的其空间相邻块包含从a、b……到i的那些,并且还包含从a到f的那些。替代地,此外,某些限制可应用于空间相邻块,例如,空间相邻块(即,从a、b……到i)将在相同lcu/片段/图块中。

在本文中所描述的技术中,可选择所有可供使用的相邻块的子集以导出每一子pu的运动信息或运动场。可以预定义用于每个pu的导出的子集。替代地,子集可以作为片段标头/pps/sps中的高层级语法用信号发送。为了最优化译码性能,对于每个子pu子集可以是不同的。实际上,为了简单起见,子集的位置的固定图案是优选的。举例来说,每个子pu可使用其正上方空间相邻项、其正左方空间相邻项及其正右下时间相邻项作为子集。如图10a所示,当考虑子pu(j)时,上方块(f)和左方块(i)是空间可供使用的相邻块,并且右下块(o)是时间可供使用的相邻块。通过此子集,由于处理相关性,必须连续地处理当前pu中的子pu。

为了实现当前pu中的每个子pu的并行处理,可定义且使用相邻块的不同子集。在一个实例中,子集仅含有并不属于当前pu的空间相邻块,例如,块a、b……i。在此情况下,并行处理将是可能的。在另一实例中,对于给定子pu来说,如果其空间相邻块在当前pu内,那么该空间相邻块的位于同一位置的块可放在子集中并且用于导出当前子pu的运动信息。举例来说,当考虑子pu(j)时,选择上方块(f)、左方块(i)和右下块(o)的时间上位于同一位置的块作为子集以导出子pu(j)的运动。在此情况下,子pu(j)的子集含有三个时间相邻块。在另一实例中,可启用部分并行处理,其中一个pu被拆分成若干个区并且可独立地处理每个区(覆盖几个子pu)。

在一些实例中,相邻块可经帧内译码,其中期望存在规则以确定那些块的替代运动信息以用于更好的运动预测和译码效率。举例来说,考虑子pu(a),可能存在其中块b、c、f是经帧内译码且块a、d、e、g、h、i是经帧间译码的情况。

对于空间相邻项来说,预定义次序可用于将首先发现的经帧间译码块的运动信息填入经帧内译码块的运动信息。举例来说,上方相邻项的搜索次序可被设置为如从正上方相邻项开始向右直至最右相邻项,意味着b、c、d和e的次序。左方相邻项的搜索次序可被设置为如从正左方相邻项开始向下直至最底部相邻项,意味着f、g、h和i的次序。如果在整个搜索过程没有发现经帧间译码块,那么上方或左方空间相邻项被视为不可供使用的。

对于时间相邻项来说,可使用如在tmvp导出中所规定的相同规则。然而,应注意,还可使用其它规则,例如,基于运动方向、时间距离(在不同参考图片中搜索)以及空间位置等的规则。

目标参考图片确定和运动矢量按比例调整:对于每个相邻块来说,运动矢量按比例调整基于每个参考图片列表应用于其运动矢量以便将所有相邻块的运动矢量映射到每个列表中的相同参考图片。存在两个步骤:首先,确定用于按比例调整所使用的源运动矢量。其次,确定源运动矢量所投影到的目标参考图片。对于第一步骤来说,可使用几种方法。

在一个实例中,对于每个参考列表来说,运动矢量按比例调整可独立于另一个参考列表中的运动矢量。对于给定块的运动信息来说,如果参考列表中不存在运动矢量(例如,单向预测模式而不是双向预测模式),那么对于所述列表不执行运动矢量按比例调整。

在另一实例中,运动矢量按比例调整并不独立于另一参考列表中的运动矢量。对于给定块的运动信息来说,如果在参考列表中没有运动矢量是不可供使用的,那么运动信息可根据另一参考列表中的运动信息按比例调整。在又一实例中,两个运动矢量都根据一个预定义参考列表按比例调整(如在tmvp中)。

根据基于可供使用的空间相邻块的运动信息(例如,参考图片)的某一规则,可选择目标参考图片。此类规则的一个实例是大部分规则,即,选择由大部分的块所共享的参考图片。在此情况下,对于目标参考图片来说不需要从编码器到解码器的信号传递,这是因为相同信息也可以使用相同规则在解码器侧推断出来。替代地,此类参考图片也可以在片段标头中明确地指定或以一些其它方法用信号发送到解码器。根据本文中所描述的技术,目标参考图片被确定为每个参考列表的第一参考图片(refidx=0)。

导出给定子pu的运动信息:在从如先前区段中所示的相邻块中检索运动信息以及运动按比例调整处理(如果需要)之后,导出当前子pu运动信息。假设对于一个给定子pu来说存在具有运动信息的n个可供使用的相邻块。首先,必须确定预测方向(interdir)。interdir可初始化为零,随后贯穿n个可供使用的相邻块的运动信息循环。如果在列表0中存在至少一个运动向量,那么interdir=(interdirbitwiseor1)。如果在列表1中存在至少一个运动向量,那么interdir=(interdirbitwiseor2)。此处“bitwiseor”表示逐位或运算。interdir的值定义为:0(无帧间预测)、1(基于列表0的帧间预测)、2(基于列表1的帧间预测)以及3(基于列表0和列表1两者的帧间预测)。

替代地,类似于对用于上述运动矢量按比例调整的目标参考图片的确定,大部分规则可基于所有可供使用的相邻块的运动信息用于确定给定子pu的interdir的值。

在确定interdir之后,可导出运动矢量。对于基于所导出的interdir的每个参考列表来说,贯穿对目标参考图片的运动矢量按比例调整可存在m个可供使用的运动矢量(m<=n)。参考列表的运动矢量可导出为:

其中wi和wj是相应地水平和垂直运动分量的加权因数,并且oi和oj是取决于加权因数的偏移值。

加权因数可基于各种因数来确定。在一个实例中,相同规则可适用于一个pu内的所有子pu。举例来说,加权因数可基于当前子pu与相对应的相邻块的位置距离来确定。在另一实例中,加权因数也可以基于目标参考图片和与按比例调整之前的相对应的相邻块的运动矢量相关联的参考图片之间的poc距离来确定。在又一实例中,加权因数可基于运动矢量差或一致性来确定。为了简单起见,所有加权因数也可设置成1。

替代地,不同规则可应用于一个pu内的子pu。举例来说,上述规则可适用,此外,对于位于第一行/第一列的子pu来说,从时间相邻块导出的运动矢量的加权因数被设置成0,而对于其余的块来说,从空间相邻块导出的运动矢量的加权因数被设置成0。

应注意,实际上,上述等式可按照原样实施,或简化以用于简单的实施。举例来说,为了避免除法或浮点运算,定点运算可用于粗略估计上述等式。一个例子是为了避免除以3,可替代地选择为乘以43/128以用乘法和位偏移替代除法运算。在实施中那些变化应被视为本文中所描述的技术的相同思想所涵盖的。替代地,非线性的运算也可应用于导出运动矢量,例如,中值滤波器。

即使每个子pu的运动矢量预测符是可供使用的,stmvp模式仍可重置为对一个pu不可用。举例来说,一旦针对给定pu导出每个子pu的运动矢量预测符,那么执行一些可用性检查以确定是否应使得stmvp模式可供用于给定pu来说。此运算用于除去其中对于给定pu来说最终选择stmvp模式是极不可能的情况。当stmvp模式不可供使用时,模式信号传递不包含stmvp。在stmvp模式通过在合并列表中插入smtvp来实施的情况下,当stmvp模式确定为不可用时,合并列表并不包含此stmvp候选项。结果,可减少信令开销。

考虑一个pu被分割成m个子pu。在一个实例中,如果m个子pu中n1(n1<=m)个子pu具有相同的运动矢量预测符(即,相同运动矢量和相同参考图片索引),那么当n1小于阈值或预测符不同于合并列表中的其它运动向量预测符(具有较小的合并索引)时,仅stmvp可供使用。在另一实例中,如果n2(n2<=m)个处于stmvp模式下的子pu共享与处于atmvp模式下的相对应的子pu相同的运动向量预测符,那么当n2小于另一阈值时,仅stmvp可供使用。在本发明的技术的一个实例中,n1和n2两者的阈值被设置成等于m。如果stmvp可供使用,那么stmvp被插入到合并列表中。atmvp过程可扩展,并且在atmvp之前或在atmvp之后可插入stmvp。在一个实例中,在合并列表中stmvp刚好插入到atmvp之后。

根据本文中所描述的技术,引入基于poc的精简。如上文所论述,本文中所描述的技术可具有较高精简精确性,这是因为技术可通过考虑poc值来更精确地俘获冗余的mv候选项。并且,基于poc的精简在它可应用于任何mv对以确定其唯一性的意义中是通用的。

本部分呈现关于基于poc的精简可如何应用于jem1.0m中的合并候选项列表的实例,所述基于hm16.6的jem1.0m是用于下一代视频编解码器的评估的参考软件。由于所提出的精简的多功能性,所以基于poc的精简可轻易地应用于任何合并mv候选项,例如,空间候选项、子pu候选项(atmvp和stmvp)、tmvp、组合的mv,以及零mv。由于基于hm16.6的jem1.0并不应用组合的mv和零mv候选项的任何有意义的精简,所以本实例还呈现如何应用基于poc的精简。

应注意基于poc的精简并不限于合并候选项,并且可轻易地扩展到其它mv精简,例如amvp候选项和双向预测的mv构造。此外,在此实例中,为了简单起见,忽略上文所论述的基于poc的精简的一些特征。

图11是说明根据本发明的一或多种技术简将运动矢量分类到用于基于图片次序计数的精简的三个类别中的一个中的流程图。图11的方法可以通过视频编码器20和/或视频解码器30来执行。一般来说,图11的方法被解释为由“视频译码器”来执行,所述“视频译码器”同样可对应于视频编码器20或视频解码器30中的任一个,并且具体地说视频编码器20的运动补偿单元44和视频解码器30的运动补偿单元72中的任一个。

无论哪些图片属于参考列表,例如h.264或hevc中的那些的常规的精简过程取决于运动矢量和参考索引。因此,常规的精简无法精简mv候选项,尤其是当l0和l1具有相同参考图片(即,相同poc)时,这是因为视频译码器并不考虑poc值。本文中所描述的技术呈现基于poc的精简以移除已经被常规的精简视为有效候选项的冗余的mv候选项。

在此实例中,对于输入(当前)候选项cand[k](1102)来说,视频译码器(例如,视频编码器20或视频解码器30)针对当前候选项cand[k]考虑每个现有候选项cand[j],其中每一j∈{0,…,(k-1)}(1102)。图11示出了其中基于poc的精简可适用的三个类别:类别a(1108)、b(1112)和c(1114)。在确定cand[k]属于那个类别中,视频译码器确定cand[k]是否来自子pu(1104)。如果cand[k]来自子pu(1104的“是”分支),那么视频译码器随后确定cand[k]的每个子pu运动矢量是否相同(1110)。如果视频译码器确定并非cand[k]的每个子pu运动矢量是相同的(1110的“否”分支),那么随后视频译码器确定cand[k]属于类别c。

然而,如果视频译码器确定cand[k]并非来自子pu(1104的“否”分支)或视频译码器确定cand[k]的每个子pu运动矢量是相同的(1110的“是”分支),那么视频译码器(例如,视频编码器20或视频解码器30)随后确定cand[k]是否是双向预测的(1106)。当cand[k]并不是双向预测的(1106的“否”分支)时,视频译码器确定cand[k]属于类别a(1108)。另一方面,当cand[k]是双向预测的(1106的“是”分支)时,视频译码器确定cand[k]属于类别b(1112)。

任何mv候选项属于那些类别中一个,并且视频译码器(例如,视频编码器20或视频解码器30)通过表2中的条件分开每个类别。应注意,为了简单起见,当检查所有子pumv的cand[k]是否相同时,忽略基于poc的精简。

表2.将基于poc的精简应用于合并候选项列表的三个类别。

对于三个类别中的每一个来说,在不同条件下的精简过程中,视频译码器考虑poc值。简单地说,视频译码器使用相关联的精简条件处理每个类别,例如,用于类别a的条件a和用于类别b的条件b-1和b-2。图12说明了对mv候选项的基于poc的精简的流程图。

图12是说明根据本发明的一或多种技术用于精简图11中所描述的三个类别中的每一个的条件的流程图。图12的方法可以通过视频编码器20和/或视频解码器30来执行。一般来说,图12的方法解释为由“视频译码器”来执行,所述“视频译码器”同样可对应于视频编码器20或视频解码器30中的任一个,并且具体地说视频编码器20的运动补偿单元44和视频解码器30的运动补偿单元72中的任一个。

在此实例中,对于输入(当前)候选项cand[k]来说,视频译码器(例如,视频编码器20或视频解码器30)针对当前候选项cand[k]考虑每个现有候选项cand[j],其中每个j∈{0,…,(k-1)}(1202)。在类别a(1204)中,对于当前mv候选项cand[k]来说,或者(a)视频译码器并不是通过子pu方法导出cand[k]或(b)视频译码器确定子pu中的所有mv相同(更多细节参考类别c的描述)。并且,mv是单向预测的。因此,视频译码器计算mv[i]和poc[i],其中所有i∈{j,k}(1206)。对于来自候选项的(mv,poc)对,视频译码器与来自另一个候选项的对进行比较(1208),并且,如果它们相同(1208的“是”分支)(表3中的条件a),那么视频译码器确定精简当前mv(1222)。

应注意基于poc的精简并不受限于参考列表(l0或l1)或参考索引。举例来说,在执行基于poc的精简中,即使mv[0]从l0导出但是mv[1]从l1导出,视频译码器检查相对应的参考图片的poc值并且确定它们是否相同。

类别b(1210)候选项同与类别a相同的条件相关联,不同之处在于视频译码器双向导出mv。在类别b中,视频译码器导出四对(mv,poc)并且每两对来自每个候选项:一个来自参考列表0且另一个来自列表1。视频译码器随后对来自相同候选项的两对(mv,poc)进行分类,使得poc[i][0]小于poc[i][1],其中所有i∈{j,k}(1212)。视频译码器通过两个级联条件检查可供使用的四对(mv,poc):如下的逐对等同性条件(1214)(表3中的条件b-1)和交叉等同性条件(1216)(表3中的条件b-2)。如果视频译码器确定满足条件中的任一者(1214或1216的“是”分支),那么视频译码器识别当前候选项为冗余并且视频译码器精简来自候选项列表的候选项(1222)。

关于类别c(1218),视频译码器导出子pumv候选项。由于超过一个子pumv候选项可存在于候选项列表中,所以视频译码器将基于poc的精简应用于两种情况:

1.一个pu内的子pumv对子pumv。

2.一个pu内的子pumv对另一个pu内的子pumv。

对于第一情况,视频译码器确定pu中的子pumv是否全部相同(图11的1110)。如果相同,那么子pumv由用于pu的单个mv表示并且子pu配合到类别a或类别b中。对于第二情况,视频译码器通过位于pu内相同位置处的一对子pumv的逐一比较来比较两个子pumv候选项(1220),也就是说,表3中的条件c,它是条件a和条件b-1/2的组合。视频译码器通过比较中的相对应的子pu的特性确定应该应用的条件,例如,对在类别a下的一对子pu应用条件a。

表3.将应用于表2中的相对应的类别的条件的实例。

为了精简组合的mv候选项,视频译码器构造来自已经在合并列表中的一对mv候选项的组合的mv候选项。在最新的hevc(hm16.6)中,视频译码器可使用多达4个现有合并候选项(全部有12个组合)来导出组合的mv。视频译码器使用如下两个mv候选项构造组合的mv:参考列表l0中的图片的第一候选项和参考列表l1中的图片的第二候选项。视频译码器将导出的mv候选项插入到列表中,除非两个候选项的参考图片和mv相同。然而,在插入之前,视频译码器并不将导出的mv候选项与合并列表中的现有候选项进行比较。

在此实例中,一旦导出的mv候选项可供使用,那么视频译码器应用基于poc的精简。更具体地说,此情况属于类别b,这是因为视频译码器双向地预测组合的mv候选项。如上文所描述,视频译码器应用条件b-1和b-2两者,并且如果所述条件中的任一个得到满足,那么视频译码器通过考虑poc值来精简组合的mv候选项。

对于精简零mv候选项,在hevc中,视频译码器将零运动矢量按从零开始直至列表完成的参考索引的次序插入到合并候选项列表中。换句话说,相同零mv可存在于列表中,即使其它唯一零mv是可供使用的。在最不利情况中,视频译码器插入具有较小参考索引的零mv,即使它们对于现有候选项是冗余的也是如此,而具有较大参考索引的其余的零mv无法添加,即使它们是唯一的也是如此,因为列表已经完成。

替代于将零mv盲插入到合并列表,本实例呈现使视频译码器通过引入零mv的基于poc的冗余检查来精简零mv的方式。在执行精简过程中,视频译码器通过引入更多唯一mv候选项来增加合并列表的多样性,这可产生更高效率的mv预测。

如果零mv并不存在于列表中且合并候选项的当前数目小于合并候选项的最大数目,那么视频译码器将零mv插入到合并列表中。否则,视频译码器通过将参考索引增加1来跳过零mv并且转到下一可供使用的零mv,例如,对于b片段,同时增加l0和l1参考列表中的参考索引两者。如果参考索引超出可供使用的参考索引,那么视频译码器将参考索引设置为零。视频译码器迭代此过程,迭代直至合并列表充满最大数目的合并候选项。

鉴于curmergecandnum是列表中的合并候选项的当前数目且小于合并候选项的最大数目,设置r=0,refcnt=0,且brunflag=0,如果当前图片在b片段中,那么视频译码器将maxrefidx设置为l0和l1中可供使用的参考索引的最小数目。否则,视频译码器可将maxrefidx设置为l0中的可供使用的参考索引的数目。

如果在合并候选项列表中视频译码器并不包含零mv候选项(即,具有mv等于(0,0)的候选项列表中不存在候选项并且其相关联的参考图片poc值并不等于参考图片的poc值,其中refidx等于r)(其中,mv等于(0,0)且refidx等于r)或brunflag等于1,那么视频译码器将零mv添加到合并列表并且将curmergecandnum增加1。视频译码器还将r和refcnt两者都增加1。如果refcnt等于(maxrefidx-1),那么视频译码器设置r=0并且设置brunflag=1。视频译码器重复这些步骤直至curmergecandnum等于合并候选项的最大数目。

替代地,对于b片段来说,视频译码器不必同时增加l0和l1中的参考索引。举例来说,替代于对于上述l0和l1列表两者将r重置为零,视频译码器可仅增加列表中的仅一个中的参考索引以增加零mv的多样性。在其它例子中,通过所提出的没有任何修改的基于poc的精简,视频译码器可组合不同列表的不同偏移并且检查那些零mv的冗余。

图13是说明根据本发明的技术用于基于图片次序计数值的精简运动矢量的实例方法的流程图。图13的方法可以通过视频编码器20和/或视频解码器30来执行。一般来说,图13的方法被解释为由“视频译码器”来执行,所述“视频译码器”同样可对应于视频编码器20或视频解码器30中的任一个,并且具体地说视频编码器20的运动补偿单元44和视频解码器30的运动补偿单元72中的任一个。

视频编码器20的运动估计单元42和运动补偿单元44可高度地集成。如果本发明的技术是在运动补偿单元44执行本文中所描述的技术之前在视频译码过程的编码循环中执行,那么运动估计单元42可执行运动估计或产生运动矢量的过程,所述过程估计视频块的运动。举例来说,运动矢量可指示当前视频帧或图片内的视频块的pu相对于参考帧(或其它经译码单元)内的预测块相对于当前帧(或其它经译码单元)内被译码的当前块的位移。预测块是被发现就像素差而言与待译码的块紧密匹配的块,其可通过绝对差总和(sad)、平方差总和(ssd)或其它差度量来确定。在一些实例中,视频编码器20可以计算存储在参考图片存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以相对于整数像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动矢量。

运动估计单元42通过比较pu的位置与参考图片的预测块的位置来计算用于经帧间译码片段中的视频块的pu的运动矢量。参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),其中的每一者识别存储在参考图片存储器64中的一或多个参考图片。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。

根据本发明的技术,视频译码器可经配置以译码运动矢量。在译码运动矢量中,视频译码器可经配置以产生视频数据的预测单元(pu)的运动矢量预测候选项的列表(1302)。当通过第一运动矢量预测候选项识别的参考图片的第一图片次序计数(poc)值等于运动矢量预测候选项的列表中通过第二运动矢量预测候选项识别的参考图片的第二poc值时,视频译码器可进一步经配置以精简来自运动矢量预测候选项的列表中的第一运动矢量预测候选项(1304)。视频译码器还可经配置以使用精简列表来译码(例如,解码或编码)pu(1306)。

在一些实例中,在精简运动矢量预测候选项的列表中,视频译码器可确定第一poc值等于第二poc值。视频译码器可进一步确定第一运动矢量预测候选项等于第二运动矢量预测候选项的第二运动矢量。响应于确定第一poc值等于第二poc值且第一运动矢量等于第二运动矢量,视频译码器可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

在一些实例中,视频译码器可从第一参考图片列表中导出第一运动矢量预测候选项的第一运动矢量。视频译码器还可从第二参考图片列表中导出第二运动矢量预测候选项的第二运动矢量。第一参考图片列表可不同于第二参考图片列表。举例来说,如上文所描述,各种预测模式可使用列表l0和列表l1两者。根据本文中所描述的技术,两个运动矢量预测候选项中的一个可包含从列表l0中导出的运动矢量,并且第二运动矢量预测候选项可包含从列表l1中导出的运动矢量。在一些例子中,第一运动矢量预测候选项和第二运动矢量预测候选项可以是pu的子预测单元(子pu)的运动矢量。

在一些例子中,第一运动矢量预测候选项和第二运动矢量预测候选项是单向运动矢量预测候选项。在其它例子中,其中第一运动矢量预测候选项和第二运动矢量预测候选项是双向运动矢量预测候选项。在运动矢量预测候选项是双向运动矢量预测候选项的例子中,第一poc值用于通过第一运动矢量预测候选项识别的第一参考图片。第一运动矢量预测候选项进一步包含第一运动矢量。另外,第二poc值用于通过第二运动矢量预测候选项识别的第二参考图片。第二运动矢量预测候选项进一步包含第二运动矢量。因为运动矢量预测候选项是双向的,所以第一运动矢量预测候选项进一步包含第三运动矢量以及具有第三poc值的第三参考图片,第二运动矢量预测候选项进一步包含第四运动矢量和具有第四poc值的第四参考图片。

在运动矢量预测候选项是双向的一些实例中,精简第一运动矢量预测候选项的过程可包含视频译码器确定第一poc值等于第二poc值。视频译码器可进一步确定第一运动矢量预测候选项的第一运动矢量等于第二运动矢量预测候选项的第二运动矢量。视频译码器可进一步确定第三poc值等于第四poc值,并且第一运动矢量预测候选项的第三运动矢量等于第二运动矢量预测候选项的第四运动矢量。换句话说,视频译码器可确定相应的双向运动矢量预测候选项的相应的方向具有在相对应的双向运动矢量预测候选项中的呈现成对等同性的匹配的poc值和匹配的运动矢量。响应于确定第一poc值等于第二poc值,第一运动矢量等于第二运动矢量,第三poc值等于第四poc值,并且第三运动矢量等于第四运动矢量,视频译码器可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

在运动矢量预测候选项是双向的其它实例中,精简第一运动矢量预测候选项的过程可包含视频译码器确定第一poc值等于第二poc值。视频译码器可进一步确定第一运动矢量预测候选项的第一运动矢量等于第二运动矢量预测候选项的第四运动矢量。视频译码器可进一步确定第三poc值等于第四poc值,并且第一运动矢量预测候选项的第三运动矢量等于第二运动矢量预测候选项的第二运动矢量。换句话说,视频译码器可确定相应的双向运动矢量预测候选项的相应的方向具有在相对应的双向运动矢量预测候选项中的呈现交叉等同性条件的匹配的poc值和匹配的运动矢量。响应于确定第一poc值等于第二poc值,第一运动矢量等于第四运动矢量,第三poc值等于第四poc值,第一poc值等于第三poc值,并且第二运动矢量等于第三运动矢量,视频译码器可从运动矢量预测候选项的列表中移除第一运动矢量预测候选项。

如果在视频译码过程的解码循环中执行本发明的技术,那么在运动补偿单元44执行本文中所描述的技术之后,逆量化单元76对提供于位流中且由熵解码单元70解码的经量化变换系数进行逆量化,即,去量化。逆量化过程可包含针对视频片段中的每个视频块通过视频解码器30计算的量化参数qpy的使用以确定量化的程度以及类似地应该应用的逆量化的程度。

逆变换单元78对变换系数应用逆变换(例如,逆dct、逆整数变换,或概念上类似的逆变换过程),以便产生像素域中的残余块。

在运动补偿单元72基于运动矢量和其它语法元素产生当前视频块的预测块之后,视频解码器30通过对来自逆变换单元78的残余块与由运动补偿单元72产生的相对应的预测块求和而形成经解码视频块。求和器80表示执行此求和运算的一或多个组件。必要时,还可应用解块滤波器以对经解码块进行滤波以便移除成块效应假影。还可使用其它环路滤波器(在译码环路中或在译码环路之后)来使像素转变变平滑或者以其它方式改善视频质量。随后将给定帧或图片中的经解码视频块存储在参考图片存储器82中,所述参考图片存储器存储用于后续运动补偿的参考图片。参考图片存储器82还存储经解码视频以用于稍后呈现在显示装置上。

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

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

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

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

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

已描述了本发明的各种实例。预期所描述的系统、操作或功能的任何组合。这些和其它实例在所附权利要求书的范围内。

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