用于3D-AVC中的基于相邻块的视差向量导出的方法和装置与流程

文档序号:14624939发布日期:2018-06-08 17:21阅读:334来源:国知局
用于3D-AVC中的基于相邻块的视差向量导出的方法和装置与流程

2013年2月26日申请的第61/769,716号美国临时申请案,

2013年2月27日申请的第61/770,263号美国临时申请案,

2013年3月4日申请的第61/772,321号美国临时申请案,

2013年3月19日申请的第61/803,384号美国临时申请案,以及

2013年4月24日申请的第61/815,656号美国临时申请案,以上申请案中的每一者的内容以全文引用方式并入本文。

技术领域

本发明涉及视频译码,且更确切地说,涉及用于导出视差向量的技术。



背景技术:

数字视频能力可并入到广泛范围的装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置及其类似者。数字视频装置实施视频压缩技术,例如在通过MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频译码(AVC)、目前正在开发的高效率视频译码(HEVC)标准及此类标准的扩展部分定义的标准中描述的技术,以便更有效地发射、接收及存储数字视频信息。

视频压缩技术包含空间预测及/或时间预测,以减少或移除视频序列中所固有的冗余。对于基于块的视频译码,一视频帧或切片可以分割成多个块。每一块可被进一步分割。使用相对于相同帧或切片中的相邻块中的参考样本的空间预测对经帧内译码(I)帧或切片中的块进行编码。经帧间译码(P或B)帧或片段中的块可使用相对于相同帧或片段中的相邻块中的参考样本的空间预测,或相对于其它参考帧中的参考样本的时间预测。空间或时间预测导致译码块的预测性块。残余数据表示待译码的原始块与预测块之间的像素差。

经帧间译码块是根据指向形成预测块的参考样本块的运动向量及指示经译码块与预测块之间的差的残余数据编码的。经帧内译码块是根据帧内译码模式和残余数据来编码的。为了进一步压缩,可将残余数据从像素域变换到变换域,从而导致残余变换系数,接着可对残余变换系数进行量化。可用特定次序扫描最初布置成二维阵列的经量化变换系数以产生变换系数的一维向量用于熵译码。



技术实现要素:

一般来说,本发明描述用于3D-高级视频译码(3D-AVC)顺应视频译码过程的纹理视图分量的块的视差向量导出而无需对应深度视图分量。视差向量导出技术评估相邻块的运动信息以识别以视差运动向量进行视图间预测的相邻块,且利用视差运动向量来导出视差向量。通过不依赖于对应深度视图分量用于视差向量导出,所述技术允许3D-AVC中的纹理优先译码,从而得到与其它视频译码技术的兼容性、带宽效率以及译码复杂性的减少。

在一个实例中,本发明描述一种对用于3D高级视频译码(3D-AVC)的视频数据进行解码的方法,其包括:接收在3D-AVC顺应视频译码过程中以相依视图的纹理优先译码产生的经译码位流;在所述3D-AVC顺应视频译码过程中对所述相依视图中的相依视图的纹理视图分量进行解码,其中对所述纹理视图分量进行解码包括:选择第一时间图片,其中所述第一时间图片包括在第一参考图片列表的第一条目处识别的图片;选择第二时间图片,其中所述第二时间图片包括在第二参考图片列表的第一条目处识别的图片;评估所述纹理视图分量中的当前宏块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除所述相依视图外的视图中的视图间参考图片的视差运动向量经视图间预测的,其中所述一或多个相邻块包括空间相邻块以及所述第一选定时间图片或所述第二选定时间图片中的至少一者中的至少一个时间相邻块;基于所述经评估相邻块中的一者的所述视差运动向量而导出所述当前块的视差向量;以及将所述导出的视差向量指派给所述宏块内的每一块;以及在对所述纹理视图分量进行解码之后对对应于所述纹理视图分量的深度视图分量进行解码。

在一个实例中,本发明描述一种对用于3D高级视频译码(3D-AVC)的视频数据进行编码的方法,其包括:在3D-AVC顺应视频译码过程中对相依视图的纹理视图分量进行编码,其中对所述纹理视图分量进行编码包括:选择第一时间图片,其中所述第一时间图片包括在第一参考图片列表的第一条目处识别的图片;选择第二时间图片,其中所述第二时间图片包括在第二参考图片列表的第一条目处识别的图片;评估所述纹理视图分量中的当前宏块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除所述相依视图外的视图中的视图间参考图片的视差运动向量经视图间预测的,其中所述一或多个相邻块包括空间相邻块以及在所述第一选定时间图片或所述第二选定时间图片中的至少一者中的至少一个时间相邻块;基于所述经评估相邻块中的一者的所述视差运动向量而导出所述当前块的视差向量;以及将所述导出的视差向量指派给所述宏块内的每一块;在对所述纹理视图分量进行编码之后对对应于所述纹理视图分量的深度视图分量进行编码;以及产生包含所述经编码纹理视图分量和所述经编码深度视图分量的具有相依视图的纹理优先译码的经译码位流用于输出。

在一个实例中,本发明描述一种用于对用于3D高级视频译码(3D-AVC)的视频数据进行译码的装置,其包括:存储器,其经配置以存储视频数据;以及视频译码器,所述视频译码器包括一或多个处理器且经配置以:在3D-AVC顺应视频译码过程中对所述视频数据的相依视图的纹理视图分量进行译码,其中为了对所述纹理视图分量进行译码,所述视频译码器经配置以:评估所述纹理视图分量中的当前宏块的仅具有参考两个参考图片列表中的第一参考图片列表的运动向量的一或多个相邻块的运动信息且避免评估具有参考所述两个参考图片列表中的第二参考图片列表的运动向量的相邻块的运动信息以确定至少一个相邻块是否是以参考除所述相依视图外的视图中的视图间参考图片的视差运动向量经视图间预测的;以及基于所述经评估相邻块中的一者的所述视差运动向量而导出所述当前块的视差向量;将所述导出的视差向量指派给所述宏块内的每一块;以及在对所述纹理视图分量进行译码之后对所述视频数据的对应于所述纹理视图分量的深度视图分量进行译码。

在一个实例中,本发明描述一种具有存储于其上的指令的计算机可读存储媒体,所述指令当执行时致使用于对用于3D高级视频译码(3D-AVC)的视频数据进行译码的装置的视频译码器的一或多个处理器:在3D-AVC顺应视频译码过程中对相依视图中的相依视图的纹理视图分量进行译码,其中致使所述一或多个处理器对所述纹理视图分量进行译码的所述指令包括致使所述一或多个处理器进行以下操作的指令:评估所述纹理视图分量中的当前宏块的仅具有参考两个参考图片列表中的第一参考图片列表的运动向量的一或多个相邻块的运动信息且避免评估具有参考所述两个参考图片列表中的第二参考图片列表的运动向量的相邻块的运动信息以确定至少一个相邻块是否是以参考除所述相依视图外的视图中的视图间参考图片的视差运动向量经视图间预测的;以及基于所述经评估相邻块中的一者的所述视差运动向量而导出所述当前块的视差向量;将所述导出的视差向量指派给所述宏块内的每一块;以及在对所述纹理视图分量进行译码之后对对应于所述纹理视图分量的深度视图分量进行译码。

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

附图说明

图1是说明可利用本发明中描述的技术的实例视频编码和解码系统的实例的框图。

图2是说明可实施本发明中描述的技术的实例视频编码器的框图。

图3是说明可实施本发明中描述的技术的实例视频解码器的框图。

图4A到H说明针对视差向量导出检查的在时间上位于同一地点的宏块(MB)的实例块位置。

图5A到5D说明针对视差向量导出检查的空间相邻宏块的实例块位置。

图6A和6B说明针对视差向量导出检查的用于宏块分区的相邻块的实例块位置。

图7是说明根据本发明中描述的技术的编码的实例操作的流程图。

图8是说明根据本发明中描述的技术的解码的实例操作的流程图。

图9是说明根据本发明中描述的技术的视差向量导出和帧间预测译码的实例操作的流程图。

图10是说明根据本发明中描述的技术的视差向量导出和帧间预测译码的另一实例操作的流程图。

具体实施方式

本发明涉及基于高级编解码器的多视图视频译码,包含以3D高级视频译码(AVC)编解码器对两个或两个以上视图的译码。更具体来说,提出与视差向量产生有关的技术。在3D-AVC中,视图分量包含纹理视图分量和深度视图分量,其中纹理视图分量包含视频数据(即,图片)以及指示纹理视图分量中的对象的相对深度的对应深度视图分量。视差向量是指示另一视图的纹理视图分量中的对应块的位置的纹理视图分量中的块的向量。

3D-AVC中的用于视差向量产生的一些技术依赖于深度视图分量(也被称作深度图)来产生纹理视图分量中的块的视差向量。需要依赖于深度视图分量以产生视差向量可存在某些问题。因为需要深度视图分量用于视差向量产生,所以对于非基础视图,视频译码器(例如,视频编码器或视频解码器)需要首先对深度视图分量进行译码(例如,编码或解码),然后对对应的纹理视图分量进行译码(例如,编码或解码)(称为深度优先译码)。然而,基于3D-AVC的视频服务的客户端可仅需要纹理视图分量(即,纹理视图的解码),但媒体网关不可能跳过转发深度视图分量(例如,深度包)或视频解码器不可能避免不必要地对深度视图分量进行解码。因此,这些其它技术显著增加带宽和解码复杂性。

此外,一些其它视频译码标准允许纹理优先译码,其中纹理视图分量是在深度视图分量之前经译码,例如在多视图视频译码(MVC)加深度(D)或MVC+D视频译码标准以及开发中的3D高效视频译码(3D-HEVC)视频译码标准中。一些其它视频译码标准甚至并不依赖于深度,例如H.264/AVC的MVC扩展。关于深度优先译码次序,多视图兼容性是不可能的,因为不存在仅纹理提取的能力。并且,纹理优先译码次序常用于MVC译码标准,且设计中的共同性可提供实施的容易性。然而,关于深度优先译码,设计中的此共同性是不可能的。换句话说,深度优先译码可视为不一致的设计元素。

此外,因为深度视图分量是在对应纹理视图分量之前经解码,所以在深度优先译码中,当纹理视图分量经解码时存在延迟。此延迟可一般为不合意的,但尤其在纹理视图分量是视图的随机存取点且视图的随机存取点中存在解码等待时间的情况下是不合意的。

已经使用其中针对3D-AVC实施纹理优先译码的一些技术。在这些其它技术中,排除了视差向量导出(即,不存在视差向量导出)。与具有深度优先译码和视差向量导出的3D-AVC编解码器相比,这些其它技术导致3D-AVC编解码器的不良译码性能,且接近于MVC+D编解码器。换句话说,视差向量导出方法的不存在引发了纹理译码工具的显著低效的译码成本。

本发明中描述的技术允许纹理优先译码,从而使得在导出视差向量的同时容易以其它视频译码技术进行实施。确切地说,本发明中描述的技术导出宏块的视差向量而无需依赖于对应深度视图分量(例如,深度图)。举例来说,视频译码器(例如,视频编码器或视频解码器)评估(即,检查)与当前宏块相邻的宏块的运动向量信息。相邻块的运动向量参考除包含当前宏块的视图外的视图中的图片,视频译码器将经评估相邻块的此运动向量转换为当前宏块的视差向量(即,利用相邻块的运动向量作为当前宏块的视差向量)。以此方式,视频译码器并不需要依赖于深度视图分量来确定纹理视图分量中的宏块的视差向量。

在本发明中,参考除包含当前宏块的视图外的视图中的图片的运动向量称为视差运动向量。换句话说,视差运动向量是参考视图间参考图片(即,除包含当前宏块的视图外的视图中的图片)中的块的向量。在本发明中描述的技术中,如果视频译码器确定经评估相邻块是以视差运动向量经帧间预测的,那么视频译码器将相邻宏块的视差运动向量转换为当前块的视差向量。

视差运动向量和视差向量不应混淆。视差运动向量参考用于补偿的视图间参考图片中的宏块(即,确定当前块与由视差运动向量所参考的宏块之间的残余且用以重构当前块,作为运动或视差补偿的部分)。视差向量是指示当前块与所述视差向量参考的对应块之间的视差的向量。视差向量随后用于各种目的,例如视图合成、运动向量预测以及各种其它译码工具。在一些情况下,可为可能的是由视差向量参考的块用于补偿。在此些情况下,视差向量视为也是视差运动向量。换句话说,视差向量和视差运动向量是不同向量,在其中由视差向量参考的宏块碰巧也用于补偿的情况中除外,在此情况下,视差向量和视差运动向量变为相同的。

视差运动向量和时间运动向量不应混淆。在非多视图视频译码中,运动向量参考不同图片中的块;然而,因为仅存在一个视图,所以不同图片中的此块处于与正进行帧间预测的当前宏块相同的视图中。此运动向量在本发明中称为时间运动向量或正常运动向量以避免混淆。另一方面,视差运动向量在例如3D-AVC的多视图视频译码技术中使用,其中运动向量参考另一视图中的参考图片。

举例来说,在多视图视频译码的上下文中,存在两个种类的运动向量。一个是指向时间参考图片的正常运动向量,且对应帧间预测是运动补偿预测(MCP)。另一者是指向不同视图中的图片的视差运动向量,且对应帧间预测是视差补偿预测(DCP)。不是视差运动向量的正常运动向量在本发明中也被称作时间运动向量。

并且,在其中参考图片是另一视图的情况下的帧间预测称为视图间预测。除包含当前宏块的视图外的视图中的参考图片称为视图间参考图片,且同一视图中的参考图片称为时间参考图片。此外,一个存取单元包含用于从将在大体上同时显示的不同视图解码图片的视频数据,且视差运动向量可仅参考与包含当前宏块的视频数据的存取单元相同的存取单元中的视图间参考图片。然而,时间运动向量参考另一存取单元中但针对同一视图的时间参考图片。

换句话说,在多视图视频译码中,在同一存取单元(即,具有同一时间实例)的不同视图中俘获的图片之间执行视图间预测以移除视图之间的相关。以视图间预测译码的图片可添加到其它非基础视图的视图间预测的参考图片列表中。视图间预测参考图片可以与帧间预测参考图片相同的方式放入参考图片列表的任何位置中。

如更详细地描述,视频译码器(例如,视频编码器或视频解码器)可评估当前宏块的一或多个相邻块的运动信息以确定相邻块是否是以参考视图间参考图片的视差运动向量进行帧间预测的。在一些实例中,视频译码器可仅评估参考第一参考图片列表(RefPicList0)中的图片的相邻块的运动向量的运动信息,且避免评估参考第二参考图片列表(RefPicList1)中的图片的相邻块的运动向量的运动信息。举例来说,第一相邻块可具有视差运动向量(例如,以视差运动向量进行帧间预测);然而,此视差运动向量可参考RefPicList1中的视图间参考图片。在此实例中,视频译码器可避免评估(例如,检查)此第一相邻块的视差运动向量(即,此第一相邻块的视差运动向量将不是当前块的视差向量),且继续进行另一相邻块。以此方式,所述技术可减少需要存取的运动信息的量,进而减少对当前宏块进行译码所花费的时间量。

与当前宏块相邻的块包含空间相邻块(例如,与当前宏块相同的图片中的块)和时间相邻块(例如,与包含当前宏块的图片不同的图片中的块)。包含时间相邻块的图片称为时间图片。

可存在大量候选时间图片(例如,存储在经解码图片缓冲器中的任何经先前译码图片)。然而,本发明中描述的技术在一些实例中可限制候选时间图片的数目。举例来说,所述技术可将包含时间相邻块的候选时间图片的数目限制于两个时间图片。

作为一个实例,视频译码器可选择第一时间图片,其中第一时间图片是在第一参考图片列表的第一条目(例如,RefPicList0的条目0)处识别的图片,且选择第二时间图片,其中第二时间图片是在第二参考图片列表的第一条目(例如,RefPicList1的条目0)处识别的图片。选择两个参考图片列表的第一条目中识别的图片可采用如下机制:参考图片列表经构造以利用可能产生以视差运动向量(且在一些实例中,参考RefPicList0的视差运动向量)进行帧间预测的时间相邻块的时间图片。

在一些实例中,视频译码器可将当前宏块分割为多个块(例如,分区或子块)。如上文所描述,视频译码器可基于经评估相邻块中的一者的视差运动向量而导出当前宏块的视差向量。在一些实例中,视频译码器可将此所导出的视差向量指派给当前宏块内的块中的每一者。以此方式,视频译码器可最小化其需要导出的视差向量的量,且可导出宏块的一个视差向量且将所述同一个视差向量指派给宏块的所有块(即,宏块的块采用针对所述宏块导出的视差向量作为其自身的相应视差向量)。

图1是说明根据本发明中所描述的一或多个实例的实例视频编码和解码系统的框图。举例来说,系统10包含源装置12及目的地装置14。源装置12及目的地装置14经配置以实施多视图视频译码,其中源装置12及目的地装置14各自对不同视图的图片进行译码。当在大体上同时观看不同视图的图片时,观看者感知到涵盖3D体积的图像,而不是约束于显示器的2D区域的图像。

系统10可根据不同视频译码标准、专属标准或多视图译码的任何其它方式操作。以下描述视频译码标准的几个实例,且不应被视为具限制性。视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual及ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)及多视图视频译码(MVC)扩展。MVC的最新联合草案在“用于通用视听服务的高级视频译码”(2010年3月的ITU-T建议H.264)中描述,其全部内容以引用的方式并入本文中。MVC的另一联合草案在“用于通用视听服务的高级视频译码”(2011年6月的ITU-T推荐H.264)中描述,其全部内容以引用的方式并入本文中。一些额外视频译码标准包含MVC+D和3D-AVC。

仅出于说明的目的,以根据例如3D-AVC的H.264标准的实例来描述本发明中描述的技术。然而,本发明中描述的技术不应被视为限于这些实例性标准,且可扩展到用于多视图译码或3D视频译码(例如,3D-HEVC)的其它视频译码标准,或可扩展到与不一定基于特定视频译码标准的多视图译码或3D视频译码相关的技术。举例来说,本发明中描述的技术由用于多视图译码的视频编码器/解码器(编解码器)实施,其中多视图译码包含两个或两个以上视图的译码。

如图1中所示,系统10包含源装置12,其提供稍后将由目的地装置14解码的经编码视频数据。源装置12及目的地装置14包括广泛范围的装置中的任一者,包含例如所谓的“智能”电话等无线手持机、所谓的“智能”平板,或经装备以用于无线通信的其它此类无线装置。源装置12及目的地装置14的额外实例包含(但不限于)数字电视、数字直播系统中的装置、无线广播系统中的装置、个人数字助理(PDA)、膝上型计算机、桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式无线电电话、卫星无线电电话、视频电话会议装置,及视频流式传输装置,或其类似者。

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

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

本发明的技术不一定限于无线应用或设定。所述技术可应用于视频译码以支持多种多媒体应用中的任一者,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、编码数字视频以存储于数据存储媒体上、解码存储于数据存储媒体上的数字视频,或其它应用。在一些实例中,系统10经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。

在图1的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些情况下,输出接口22包含调制器/解调器(调制解调器)及/或发射器。在源装置12中,视频源18包含以下各项中的一或多者:例如视频俘获装置(例如,摄像机)、含有先前俘获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口及/或用于产生计算机图形数据作为源视频的计算机图形系统、此类源的组合等源,或任一其它源。作为一个实例,如果视频源18是摄像机,则源装置12与目的地装置14可形成所谓的相机电话或视频电话。然而,本发明中描述的技术一般适用于视频译码,且可应用于无线和/或有线应用。

视频编码器20编码所俘获视频、预俘获的视频或计算机产生的视频。源装置12的输出接口22经配置以将经编码视频数据发射到目的地装置14。还可(或替代地)将经编码视频数据存储到存储装置34上以供稍后由目的地装置14或其它装置存取以用于解码及/或回放。

目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些情况下,输入接口28包含接收器及/或调制解调器。目的地装置14的输入接口28经由链路16或从存储装置34接收经编码视频数据。经由链路16传送或在存储装置34上提供的经编码视频数据包含由视频编码器20产生的多种语法元素以供由例如视频解码器30等视频解码器用于解码视频数据。此类语法元素可与在通信媒体上发射、存储在存储媒体上或存储在文件服务器中的经编码视频数据包含在一起。

显示装置32可与目的地装置14集成或在目的地装置14外部。在一些实例中,目的地装置14包含集成式显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14为显示装置。一般来说,显示装置32将经解码视频数据显示给用户,且包括多种显示装置中的任一者,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。

视频编码器20和视频解码器30可根据各种视频译码标准操作,例如上文所列的实例。然而,本发明中描述的技术不应被视为如此受限。出于描述的目的,在例如3D-AVC标准等H.264标准的上下文中描述视频编码器20和视频解码器30。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263,且包含3D-HEVC。例如称为On2 VP6/VP7/VP8的那些译码技术的专属译码技术也可实施本文所述的技术中的一或多者。

尽管图1中未展示,但在一些方面中,视频编码器20及视频解码器30各自与音频编码器及解码器集成,且包含适当多路复用器-多路分用器单元或其它硬件及软件以处置对共同数据流或单独数据流中的音频或视频两者的编码。在一些实例中,如果适用的话,多路复用器-多路分用器单元符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。

视频编码器20及视频解码器30各自可实施为多种合适的编码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。举例来说,可从设备或装置的角度描述本发明中描述的技术。作为一个实例,所述设备或装置可包含视频解码器30(例如,作为无线通信装置的部分的目的地装置14),且视频解码器30可包含经配置以实施本发明中描述的技术(例如,根据本发明中描述的技术解码视频数据)的一或多个处理器。作为另一实例,所述设备或装置可包含包含视频解码器30的微处理器或集成电路(IC),且所述微处理器或IC可为目的地装置14或另一种类型的装置的部分。相同情况可适用于视频编码器20(即,类似于源装置12和/或微控制器或IC的设备或装置包含视频编码器20,其中视频编码器20经配置以根据本发明中描述的技术编码视频数据)。

当部分地用软件实施所述技术时,装置可将用于所述软件的指令存储于合适的非暂时计算机可读媒体中且使用一或多个处理器用硬件执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可以集成为相应装置中的组合编码器/解码器(编解码器)的一部分。

视频序列通常包含来自视图的一系列视频图片。图片群组(GOP)通常包括一系列一或多个视频图片。GOP可包含GOP的标头、GOP的一或多个图片的标头或其它地方中的语法数据,其描述GOP中包含的图片的数目。每一图片可包含图片语法数据,其描述用于相应图片的编码模式。视频编码器20通常对个别视频图片内的视频块进行操作以便编码视频数据。视频块可对应于如H.264标准中界定的宏块、宏块的分区和可能的分区的子块。所述视频块可具有固定的或变化的大小,且可根据指定的译码标准而大小不同。每一视频图片可包含多个切片。每一切片可包含多个块。

作为实例,ITU-T H.264标准支持各种块大小的帧内预测(例如用于明度分量的16乘16、8乘8或4乘4及用于色度分量的8x8),以及各种块大小的帧间预测,例如用于明度分量的16x16、16x8、8x16、8x8、8x4、4x8及4x4及用于色度分量的对应缩放大小。在本发明中,“NxN”及“N乘N”可互换地使用以指代块在垂直及水平尺寸方面的像素尺寸(例如,16x16像素或16乘16像素)。一般来说,16x16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样,NxN块一般在垂直方向上具有N个像素,并且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成行及列。此外,块未必需要在水平方向与垂直方向上具有相同数目的像素。举例来说,块可包括NxM个像素,其中M未必等于N。

在对块进行帧内模式编码(例如,帧内预测)时,块可包含描述块的帧内预测模式的数据。作为另一实例,在对块进行帧间模式编码(例如,帧间预测)时,块可包含定义块的运动向量的信息。此运动向量参考同一视图中的参考图片(例如,时间运动向量),或参考另一视图中的参考图片(例如,视差运动向量)。定义块的运动向量的数据描述例如运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)。另外,在进行帧间预测时,块可包含参考索引信息,例如运动向量所指向的参考图片及/或运动向量的参考图片列表(例如,RefPicList0或RefPicList1)。

在H.264标准中,在帧内预测性或帧间预测性译码后,视频编码器20计算宏块的残余数据。残余数据可对应于未经编码图片的像素与H.264中的宏块的预测值之间的像素差。

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

在一些实例中,视频编码器20利用预定义扫描次序扫描经量化变换系数以产生可经熵编码的串行化向量。在其它实例中,视频编码器20执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,在一些实例中,视频编码器20根据上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法(作为几个实例)对所述一维向量进行熵编码。视频编码器20还对与经编码视频数据相关联的语法元素进行熵编码以供视频解码器30在对视频数据解码时使用。

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

视频解码器30实施视频编码器20的技术的逆技术。举例来说,视频解码器30对经编码视频位流进行解码且通过逆量化和逆变换确定残余块。视频解码器30将残余块与先前经解码图片的块进行求和以确定图片内的块的像素值。

如上文所描述,本发明中描述的技术是针对3D-AVC。为了更好地理解所述技术,以下描述一些H.264/AVC译码技术、从H.264/MVC扩展和高效率视频译码(HEVC)标准的角度的多视图视频译码以及3D-AVC技术。在此描述之后,本发明描述用于导出视差向量的技术,且具体来说,在无需依赖于深度视图分量(例如,深度图)的情况下导出用于3D-AVC的视差向量的技术。

对于H.264/高级视频译码(AVC),对宏块实施视频编码或解码(例如,译码),其中宏块表示经帧间预测或经帧内预测(即,经帧间预测编码或解码或者经帧内预测编码或解码)的帧的一部分。举例来说,在H.264/AVC中,可以四个不同方式分割每一帧间宏块(MB)(例如,经帧间预测宏块):一个16x16MB分区,两个16x8MB分区,两个8x16MB分区,或四个8x8MB分区。一个MB中的不同MB分区可具有用于每一方向的不同参考索引值(即,RefPicList0或RefPicList1)。当MB未分割成四个8x8MB分区时,其在每一方向中针对整个MB分区具有仅一个运动向量。

作为视频译码(编码或解码)的部分,视频编码器20和视频解码器30经配置以构造一个或两个参考图片列表,称为RefPicList0和RefPicList1。参考图片列表识别可用以对帧或切片的宏块进行帧间预测的参考图片。举例来说,视频编码器20可用信号表示参考索引和参考图片列表识别符。视频解码器30可接收参考索引和参考图片列表识别符,且根据参考索引和参考图片列表识别符确定将用于对当前宏块进行帧间预测解码的参考图片。

当MB分割成四个8x8MB分区时,每一8x8MB分区可进一步分割成子块。存在四个不同方式来从8x8MB分区得到子块:一个8x8子块,两个8x4子块,两个4x8子块,或四个4x4子块。每一子块可具有每一方向中的不同运动向量。8x8MB分区分割成子块的方式称为子块分区。

对于多视图视频译码,存在多个不同视频译码标准。为了避免混淆,当本发明一般地描述多视图视频译码时,本发明使用短语“多视图视频译码”。一般来说,在多视图视频译码中,存在基础视图和一或多个增强或相依视图。基础视图可在不参考相依视图中的任一者的情况下完全解码(即,基础视图仅以时间运动向量进行帧间预测)。这允许未经配置以用于多视图视频译码的编解码器仍接收完全可解码的至少一个视图(即,可提取出基础视图且丢弃其它视图,从而允许未经配置以用于多视图视频译码的解码器仍对视频内容进行解码,但无3D体验)。所述一或多个增强或相依视图可相对于基础视图或相对于其它增强视图或相依视图进行帧间预测,或相对于同一视图中的其它图片进行帧间预测(即,视差补偿预测或运动补偿预测)。

鉴于一般使用“多视图视频译码”,首字母缩写MVC与H.264/AVC的扩展相关联。因此,当本发明使用首字母缩写MVC时,本发明具体地参考对H.264/AVC视频译码标准的扩展。H.264/AVC的MVC扩展除时间运动向量之外还依赖于视差运动向量作为另一种类型的运动向量。JCT-3V和MPEG还已经开发称为MVC+D的另一视频译码标准。MVC+D应用与用于纹理和深度两者的MVC的那些工具相同的低层级译码工具,且深度的解码独立于纹理的解码且反之亦然。举例来说,在MVC中,帧仅由一个视图分量表示,所述视图分量称为纹理视图分量或简称为纹理。在MVC+D中,存在两个视图分量:纹理视图分量和深度视图分量,或简称为纹理和深度。举例来说,在MVC+D中,每一视图包含纹理视图和深度视图,其中视图包含多个视图分量,纹理视图包含多个纹理视图分量,且深度视图包含多个深度视图分量。

每一纹理视图分量与深度视图分量相关联以形成视图的视图分量。深度视图分量表示纹理视图分量中的对象的相对深度。在MVC+D中,深度视图分量和纹理视图分量是单独可解码的。举例来说,视频解码器30可实施MVC编解码器的两个实例,其中第一编解码器解码纹理视图分量且第二编解码器解码深度视图分量。这两个编解码器可独立于彼此而执行,因为纹理视图分量和深度视图分量是单独地经编码。

在MVC+D中,深度视图分量始终紧接着跟随相关联(例如,对应)的纹理视图分量。以此方式,MVC+D支持纹理优先译码,其中纹理视图分量是在深度视图分量之前经解码。

纹理视图分量及其相关联(例如,对应)深度视图分量可包含相同的图片次序计数(POC)值和view_id(即,纹理视图分量及其相关联深度视图分量的POC值和view_id是相同的)。POC值指示纹理视图分量的显示次序且view_id指示纹理视图分量和深度视图分量属于的视图。

以下针对3D-高级视频译码(AVC)的额外描述。MPEG中的最近标准化活动包含3D视频技术的建议书(CfP),且当前参考软件中的回应当中选择了若干技术。基于AVC的3D视频(3D-AVC)译码标准当前在由JCT-3V开发,且3D-AVC的最新版本现在公开可用且通过引用以其全文结合在此:M·M·汉努克塞拉(Hannuksela),Y·陈,T·铃木,J.-R.欧姆(Ohm),G·J·沙利文(Sullivan),“3D-AVC草案文本5”,JCT3V-C1002,瑞士日内瓦,2013年1月。其从2014年2月25日起从以下链接可用:http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/3_Geneva/wg11/JCT3V-C1002-v3.zip。

3D-AVC以基础视图的纹理部分对于H.264/AVC解码器完全可解码的方式兼容于H.264/AVC。举例来说,基础视图的视图分量中的纹理视图分量可仅以同一基础视图中的其它纹理视图分量进行帧间预测。基础视图中的纹理视图分量不可进行视图间预测。并且,基础视图中的纹理视图分量可不需要对应深度视图分量用于解码目的。

对于3D-AVC中的增强视图分量,在一些其它实例技术中,深度可在纹理之前经译码,且纹理视图分量可基于来自深度视图分量的信息而经译码,其也被称作深度优先译码。然而,例如在上述MVC+D中,每一纹理视图分量在纹理优先译码次序中在相应深度视图分量之前经译码。换句话说,在一些其它实例技术中,在3D-AVC中,首先对基础视图的纹理视图分量进行译码,接着是基础视图的相关联深度视图分量,接着是第一增强或相依视图的深度视图分量,接着是第一增强或相依视图的相关联纹理视图分量,接着是第二增强或相依视图的深度视图分量,接着是第二增强或相依视图的相关联纹理视图分量,等。

举例来说,如下例示3D-AVC中的纹理和深度视图分量的译码次序;其中T0和D0分别指代基础视图的纹理和深度视图分量,且T1和D1分别指代相依视图的纹理和深度视图分量。T0,D0,D1,T1…,基础视图是以纹理优先译码次序译码的,而相依视图是以深度优先译码次序译码的。在用于3D-AVC的一些其它实例技术中使用混合译码次序。基础视图可由于纹理优先译码次序而具有AVC兼容性,而相依视图由于Di的经解码信息由Ti使用(i不等于0)而并不具有此种兼容性。

在一些实例中,甚至对于3D-AVC,基础视图和相依视图的纹理优先译码可为可能的,按以下译码次序例示:T0,D0,T1,D1...在此实例中,所有视图分量是以纹理优先译码次序译码的,其可提供AVC/多视图兼容性。

如上文所描述,除兼容性问题之外,与纹理优先译码相比,关于深度优先译码可存在某些缺点。举例来说,视图的随机存取点中的解码等待时间,其中纹理视图分量的解码由对应深度视图分量的解码延迟。然而,可优选的是最小化视图的随机存取点的解码等待时间,因为视图图片的随机存取点是允许通道切换的图片。

此外,关于深度优先译码,如果视频解码器并不需要深度且仅需要解码纹理视图,那么可不存在跳过深度包或允许视频解码器跳过深度视图的解码的实际方法,因为需要深度视图来解码纹理视图。举例来说,媒体网关可不能够从经译码位流丢弃深度视图,因为在深度优先译码中需要深度视图来解码纹理视图。这导致增加的带宽且增加解码复杂性。

并且,可存在不一致的设计元素。举例来说,纹理优先译码次序常用于多视图视频译码,包含下文描述的MVC+D和HEVC视频译码标准。设计中的共同性可提供在需要深度优先译码的情况下不可用的实施方案中的每一者。

已经提出一些技术来与3D-AVC一起使用纹理优先译码。作为一个实例,3D-AVC使用深度视图分量来导出对应纹理视图分量中的宏块的视差向量,从而要求首先解码深度视图分量。一些技术已经提出避免视差向量的导出,其有助于纹理优先译码。然而,在其中视差向量导出不存在的实例中,3D-AVC编解码器的性能不良且与MVC+D相当。

如上所述,用于3D-AVC的一些实例技术使用深度图(例如,深度视图分量)来导出相关联纹理视图分量中的宏块的视差向量。如何导出视差向量可随着每一低层级译码工具而变化。然而通常,由于深度优先译码次序而采用相依视图的深度数据用于纹理视图分量译码。3D-AVC中的环路内基于块的视图合成视图间预测和基于深度的运动向量预测(D-MVP)是使用从深度图支持的视差向量的低层级译码工具。在3D-AVC软件中,从实际深度图值到与特定视图的视差的转换过程的结果与相机参数一起存储在查找表中。

一般来说,视差向量可用以实施一或多个译码工具(例如,视频编码器20和视频解码器30可利用所导出的视差向量用于实施一或多个译码工具而无需使用深度视图分量用于导出视差向量)。举例来说,如上文所描述,视差向量可用作视图间预测和运动向量预测(MVP)的部分。MVP一般指代其中经译码位流并不包含宏块的实际运动向量的信息而是包含可从其导出运动向量的信息的技术。举例来说,在运动向量预测中,宏块的运动向量是从例如相邻块的运动向量或相邻块的运动向量所参考的块的运动向量等运动向量预测符以及作为实际运动向量与运动向量预测符之间的差的运动向量差来预测。运动向量预测符可自身从候选预测符的集合来预测。

以下描述用于正常帧间预测模式的基于深度的运动向量预测。D-MVP指代并入了当前视图中的相关联深度图数据的运动向量预测方法,所述深度图数据由于深度优先译码次序而可用。D-MVP是以相依视图中的纹理视图分量而应用。

在3D-AVC中,D-MVP方法并入到H.264/AVC中的基于常规中值函数的运动向量预测中。具体来说,首先识别待预测的运动向量的类型(即,是否为时间运动向量或视差运动向量)。举例来说,在D-MVP方法中,视频译码器(例如,视频编码器20或视频解码器30)可检查相邻块中的运动向量的参考索引以确定用以帧间预测相邻块的参考图片是否是与当前宏块相同的视图或不同视图中的参考图片。如果参考图片处于同一视图中,那么相邻块是以时间运动向量进行帧间预测,且如果参考图片处于不同视图中,那么相邻块是以视差运动向量进行帧间预测(即,视图间预测)。

相邻块按次序包含当前块的左边块、上方块、右上方块以及左上方块。左上方块中的运动向量仅当其它三个相邻块中的一者不含运动向量时使用。作为一个实例,如果左边块、上方块或右上方块经帧内预测,那么经帧内预测块的运动向量视为不可用的。在此实例中,视频译码器可评估左上方块的运动向量。这些相邻块是用于H.264/AVC视频译码标准中的运动预测的相同相邻块。

如果三个相邻块可用,那么采用所述三个相邻块中的运动向量用于当前块的运动向量预测。在时间预测中,如果相邻块的运动向量是同一类型(即,全部时间运动向量或全部视差运动向量)且具有同一参考索引(即,参考同一参考图片),那么视频译码器(例如,视频编码器20或视频解码器30)如H.264/AVC中直接使用中值滤波器来确定运动向量预测符。视频译码器使用运动向量预测符来确定当前块的运动向量。

否则,如果相邻块的运动向量是不同类型和/或具有不同参考索引,那么进一步导出运动向量以用以确定运动向量预测符。在当前参考图片是视图间参考图片时,视频译码器检查(例如,评估)运动向量类型及其在相邻块位置中的参考索引。如果视频译码器确定它们全部具有相同运动向量类型和相同参考索引,那么视频译码器应用中值滤波器来确定运动向量预测符。

在两个情况(例如,相同类型和相同参考索引的运动向量或不同类型或不同参考索引的运动向量)中,如果少于三个相邻块可用,那么视频译码器导出不可用块的运动向量以使得三个相邻块变为可用的。针对相邻块导出的运动向量称为所导出的运动向量且如下文所描述而产生。

视频译码器可确定当前运动向量是否为视差运动向量。为了这样做,视频译码器可确定到当前块的运动向量的参考图片列表中的参考索引(即,视频解码器30可从用信号表示的经译码位流确定到当前块的运动向量的参考图片列表中的参考索引)。如果参考索引识别视图间参考图片(即,如从POC值和/或view_id所确定的另一视图中的参考图片),那么视频译码器可确定当前块的运动向量是视差运动向量。

如果当前运动向量是视差运动向量,其中其运动向量具有与当前运动向量的类型不同的类型或其运动向量不可用,那么将此块的所导出的运动向量设定成视差运动向量,其是从对应深度视图分量转换的。换句话说,在此用于3D-AVC的实例技术中,如果当前块的运动向量是视差运动向量,且相邻块的运动向量不是视差运动向量或原本不可用,那么为了导出相邻块的视差运动向量,视频译码器识别深度视图分量中的对应块,使用深度视图分量中的对应块来确定相邻块的视差向量,且使用相邻块的视差向量作为相邻块的视差运动向量。此视差运动向量被视为相邻块的所导出的运动向量。

视频译码器使用同一视图中的深度视图分量的对应块且将此对应块的四个拐角的深度值中的最大值转换为视差值。此视差值变成所导出的运动向量的水平分量。视频译码器将所导出的运动向量的垂直分量设定为零。

在以上实例中,当前块的运动向量是视差运动向量。在一些情况下,视频译码器可确定当前块的运动向量是时间运动向量。举例来说,视频译码器可确定到当前宏块的运动向量的参考图片列表中的参考索引且从所述参考索引识别参考图片。如果参考图片属于与当前宏块相同的视图(如从POC值和/或view_id所确定),那么视频译码器确定当前宏块的运动向量是时间运动向量(即,参考图片是时间参考图片)。

如果当前运动向量是时间运动向量,那么视频译码器使用视差值(类似于上文而导出)来得到参考(基础)视图中的参考块的时间运动向量。在此实例中,视频译码器将所导出的运动向量设定为时间运动向量。如果时间运动向量被视为不可用(帧内块或不指向与当前参考图片对准的参考视图中的参考图片),那么将所导出的运动向量设定成零。

举例来说,在其中当前块的运动向量是时间运动向量的情况下,为了在相邻块的运动向量不是时间运动向量或原本不可用的情况下导出相邻块的时间运动向量,视频译码器可使用上述技术确定相邻块的视差向量。随后,视频译码器确定视差向量参考的基础视图中的块。视频译码器确定基础视图中的块的运动向量是否存在。如果基础视图中的块的运动向量存在,那么运动向量需要为时间运动向量,因为基础视图中的块无法进行视图间预测。视频译码器将基础视图中的块的时间运动向量设定为相邻块的所导出的运动向量。如果基础视图中的块的运动向量并不存在(即,经帧内译码或如果基础视图中的块的运动向量参考未经识别为当前图片的参考图片的参考图片),那么视频译码器将相邻块的所导出的运动向量设定为等于零。

上述实例是针对正常模式的运动向量预测。以下描述用于跳过和直接模式的运动向量预测的实例,且确切地说,在3D-AVC的一些实例技术中用于跳过和直接模式的视图间运动预测。

3D-AVC中的视图间运动预测是在P-跳过、B-跳过、B-16x16直接模式和B-8x8直接模式中执行。视频译码器可首先从相邻块以及从同一视图的深度视图分量的深度值转换的视差向量导出视差向量。如果一个可用空间相邻块含有视差运动向量,那么此视差运动向量变成视差向量。否则,对于并不含有视差运动向量的相邻块,从深度值转换块的视差运动向量(类似于D-MVP中的转换),然后将中值滤波器应用于三个相邻块而得到视差向量。

视频译码器使用导出的向量来得到参考(基础)视图中的参考块的时间运动向量以识别参考视图的参考块中的时间运动向量。如果时间运动向量不可用,那么视频译码器首先导出参考索引且视频译码器应用上述D-MVP技术以产生运动向量预测符。上述D-MVP技术涉及用于正常帧间预测模式的基于深度的运动向量预测。

基于上文描述,可见视差向量是3D-AVC中的有用译码工具。举例来说,视差向量用以实施例如用于运动向量预测的一或多个译码工具;然而,同样可存在视差向量的其它用途。如上文所描述,一些3D-AVC技术使用纹理视图分量的深度视图分量用于视差向量导出(即,用于相依视图或增强视图的深度优先译码),其导致例如解码等待时间、实施方案复杂性、缺乏到其它视频译码标准的可缩放性、不需要深度视图分量的情况下的带宽低效率和其它潜在缺点等问题。

本发明中描述的技术允许并不需要使用对应深度视图分量的视差向量导出。以此方式,所述技术允许具有视差向量导出的用于相依视图的3D-AVC中的纹理优先译码。为了实现视差向量导出,本发明中描述的技术依赖于相邻块的运动向量信息。作为一个实例,如果相邻块的运动向量是视差运动向量,那么本发明中描述的技术利用相邻块的视差运动向量作为当前块的视差向量。以此方式,视频编码器20和视频解码器30可确定纹理视图分量的当前宏块的视差向量而不需要依赖于对应深度视图分量。并且,以此方式,视频编码器20和视频解码器30可实施利用所导出的视差向量的一或多个译码工具而无需使用深度视图分量用于导出视差向量。

3D-HEVC视频译码标准利用称为基于相邻块的视差向量(NBDV)导出的方案。本发明中描述的技术可利用3D-AVC中的NBDV导出技术。此外,3D-HEVC中的NBDV导出技术依赖于包含预测单元(PU)的译码单元(CU)的概念。译码单元和预测单元在3D-AVC中并不存在,而是使用宏块,从而在3D-AVC中利用NBDV技术中产生复杂性。本发明中描述的技术克服了利用例如用于3D-AVC的3D-HEVC中的NBDV导出等译码工具的此复杂性。

在此意义上,本发明中描述的技术可视为3D-AVC中的基于相邻块的视差向量导出过程。在描述利用NBDV导出的3D-AVC的视差向量导出之前,以下提供NBDV导出的额外上下文。

NBDV导出过程用于3D-HEVC视频译码标准中的视差向量导出方法,其针对所有视图使用纹理优先译码次序。在当前3D-HEVC设计中,视频译码器使用NBDV从参考视图的深度图检索深度数据。

最新参考软件描述以及3D-HEVC的工作草案从2014年2月25日起从http://phenix.it-sudparis.eu/jct3v/doc_end_user/current_document.php?id=460可用,如下:格哈德技术公司(Gerhard Tech),克雷兹托夫·韦格纳(Krzysztof Wegner),陈英(Ying Chen),叶思宏(Sehoon Yea),“3D-HEVC测试模型描述草案2”(JCT3V-B1005,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的3D视频译码扩展开发联合合作小组第2次会议:中国上海,2012年10月),其整个内容通过引用结合在此。

以下提供NBDV导出过程的概述。如上文所描述,视差向量(DV)可指示两个视图之间的视差的估计。在许多情况下,相邻块在视频译码中共享几乎相同的运动/视差信息。因此,当前块可使用相邻块中的运动向量信息作为良好视差预测符。因为相邻块的运动信息形成良好视差预测,所以NBDV导出使用相邻视差信息用于估计不同视图中的视差向量。

在NBDV导出中,存在若干可能的空间和时间相邻块,且评估预定义空间和相邻块作为NBDV导出技术的部分。视频译码器以通过当前块与候选块(即,正检查的相邻块)之间的相关的优先级所确定的预定义次序检查(例如,评估)相邻块中的每一者。一旦视频译码器确定候选者(即,相邻块中的一者中)是以视差运动向量经帧间预测(即,视图间预测),视频译码器便将相邻块的视差运动向量转换为当前块的视差向量。

如下文更详细地描述,可存在对评估哪些相邻块的某些限制。作为一个实例,视频编码器20和视频解码器30可评估(例如,检查)具有参考第一参考图片列表的运动向量(例如,参考第一参考图片列表中识别的视图间参考图片的视差运动向量)的相邻块,且可避免评估(例如,不评估或不检查)具有参考第二参考图片列表的运动向量(例如,参考第二参考图片列表中识别的视图间参考图片的视差运动向量)的相邻块。

举例来说,如果相邻块的参考图片列表索引等于0(识别RefPicList0),那么视频编码器20和视频解码器30可评估运动信息以确定相邻块的运动向量是否是可用以导出当前宏块的视差向量的视差运动向量。如果相邻块的参考图片列表索引等于1(识别RefPicList1),那么视频编码器20和视频解码器30可避免评估(例如,不评估)运动信息以确定相邻块的运动向量是否是可用以导出当前宏块的视差向量的视差运动向量。

换句话说,如果相邻块具有视差运动向量,但所述视差运动向量参考RefPicList1中的视图间参考图片,那么视频编码器20和视频解码器30可利用此视差运动向量用于导出当前块的视差向量,且可保持评估额外相邻块直到找到具有参考RefPicList0中的视图间参考图片的视差运动向量的相邻块。视频编码器20和视频解码器30可随后利用此视差运动向量来导出当前块的视差向量。以此方式,所述技术可最小化需要评估的相邻块的数目以找到可用以导出当前块的视差向量的视差运动向量。

在一些实例中,视频译码器利用相邻块的两个集合:一个集合是来自空间相邻块且另一集合是来自时间相邻块。空间相邻块是与当前宏块相同的帧中的块,且时间相邻块是不同帧中的块。在一些实例中,与当前宏块相同的视图中需要时间相邻块(即,包含时间相邻块的帧和包含当前宏块的帧在同一视图中)。

如更详细地描述,包含时间相邻块的图片称为时间图片。在一些实例中,视频编码器20和视频解码器30选择以识别时间相邻块的时间图片的数目可存在限制。作为一个实例,可存在两个时间图片,且视频编码器20和视频解码器30可选择位于第一参考图片列表(RefPicList0)的第一条目(条目0)中的图片作为时间图片中的一者,且选择位于第二参考图片列表(RefPicList1)的第一条目(条目0)中的图片作为另一时间图片。视频编码器20和视频解码器30可评估这些选定时间图片内的块。作为一个实例,视频编码器20和视频解码器30可评估右下块,其中所述右下块是位于所述选定时间图片中的当前宏块的底部且右边的位置处的块。

相对于空间相邻块,可存在某些限制。举例来说,视频编码器20和视频解码器30可评估多达最多四个空间相邻块的运动信息。这四个空间相邻块包含位于当前宏块的左边的块、位于当前宏块上方的块、位于当前宏块的左上方的块,和位于当前宏块的右上方的块。

如本发明中描述,对于运动预测,视频编码器20和视频解码器30可评估当前块的左边块、上方块、右上方块和左上方块,其中左上方块中的运动向量仅当其它三个相邻块中的一者不含运动向量时使用。因此,在一些实例中,视频编码器20和视频解码器30为了导出视差向量的目的而评估的四个空间相邻块中的三个可为H.264/AVC视频译码标准中用于运动预测的相同相邻块。

以下提供相对于3D-HEVC中的NBDV导出的额外细节。3D-HEVC首先采用JCT3V-A0097中所提议的NBDV方法,其整个内容以引用的方式并入本文中。与JCTVC-A0126中的简化NBDV一起包含隐式视差向量,其整个内容以引用的方式并入本文中。另外,在其整个内容以引用的方式并入本文中的JCT3V-B0047中,通过移除存储在经解码图片缓冲器中的隐式视差向量进一步简化NBDV,并且以随机存取点(RAP)图片选择得到改善的译码增益。

JCT3V-A0097:3D-CE5.h:视差向量产生结果(L·张,Y·陈,M·卡塞维茨)可从2014年2月25日起从http://phenix.int-evry.fr/jct3v/doc_end_user/current_document.php?id=89找到。JCT3V-A0126:3D-CE5.h:基于HEVC的3D视频译码的视差向量导出的简化(孙杰完(Jaewon Sung),古木莫(Moonmo Koo),叶思宏(Sehoon Yea)(LG))可从2014年2月25日起从http://phenix.int-evry.fr/jct2/doc_end_user/current_document.php?id=142找到。JCT3V-B0047:3D-CE5.h相关:视差向量导出的改进(J·康,Y·陈,L·张,M·卡塞维茨)可从2014年2月25日起从http://phenix.it-sudparis.eu/jct2/doc_end_user/current_document.php?id=236找到。

在用于3D-HEVC的NBDV导出过程的一个建议中,五个空间相邻块用于视差向量导出:当前预测单元(PU)的左下方、左边、右上方、上方和左上方块,如由A0、A1、B0、B1或B2指示。应注意这些块与HEVC中的合并模式中使用的那些块相同;因此,不需要额外存储器存取。

为了检查时间相邻块,视频译码器可首先执行候选图片列表的构造过程。在此实例中,来自当前视图的所有参考图片可视为候选图片。视频译码器可首先将位于同一地点的参考图片插入到候选图片列表,接着按参考索引的升序插入候选图片的其余部分。当两个参考图片列表中具有相同参考索引的参考图片可用时,位于同一地点的图片的同一参考图片列表中的参考图片先于另一参考图片。在一些实例中,对于候选图片列表中的每一候选图片,确定三个候选区用于导出时间相邻块。

当块是以视图间运动预测译码的时,可需要导出视差向量以用于选择不同视图中的对应块。隐式视差向量(IDV或所导出的视差向量)指代在相邻块的视图间运动预测中导出的视差向量。即使相邻块是以运动预测译码的,为了对随后的块进行译码的目的也不会丢弃所导出的视差向量。举例来说,相邻块的所导出的视差向量(即,隐式视差向量)可用作当前块的视差向量。

通常,NBDV导出过程按次序检查时间相邻块中的视差运动向量、空间相邻块中的视差运动向量以及随后的隐式视差向量;然而,其它次序是可能的。一旦找到视差运动向量或隐式视差向量,视频译码器便终止过程,且使用视差运动向量或隐式视差向量作为当前块的视差向量。

另外,还存在深度定向相邻块视差向量(DoNBDV)的概念。为了导出DoNBDV,NBDV导出过程用于检索参考视图的深度数据,以使得对应深度数据用以导出视差向量。应注意,此处深度数据是来自参考视图的深度视图分量,而不是包含当前块的纹理视图分量的数据。因此,纹理优先译码对于DoNBDV导出仍是可能的。与单独从NBDV导出过程导出的视差向量相比,NBDV和深度数据的联合优化可增强视差向量的准确性。另外,NBDV或DoNBDV导出的结果可用于其它译码工具,例如视图间运动预测和视图间残余预测。DoNBDV导出在JCT3V-C0131:3D-CE1.h:具有虚拟深度检索的深度定向相邻块视差向量(Y·L·常等人,MediaTek)中描述,其从2014年2月25日起可从http://phenix.int-evry.fr/jct3v/doc_end_user/current_document.php?id=572得到,其整个内容以引入的方式并入本文中。

视频编码器20和视频解码器30可经配置以实施本发明中描述的技术。举例来说,视频编码器20和视频解码器30可经配置以实施通过允许针对每一视图分量首先对纹理进行译码来实现3D-AVC的高效译码的技术。视频编码器20和视频解码器30可使用本发明的实例NBDV导出技术导出视差向量,其在3D-AVC中的对应深度数据由于纹理优先译码次序而不可用(尚未可用)时考虑来自当前块的空间/时间相邻块的一个以上可用视差运动向量。

作为一个实例,视频解码器30可接收在3D-AVC顺应视频译码过程中以相依视图的纹理优先译码产生的经译码位流。在此实例中,3D-AVC顺应视频译码过程指代使用3D-AVC视频译码标准中界定的视频译码工具的视频译码过程。相依视图的纹理优先译码指代其中在对应深度视图分量(即,T0、D0、T1、D1等)之前对纹理视图分量进行译码的情况。

视频解码器30可在3D-AVC顺应视频译码过程中对相依视图中的相依视图的纹理视图分量进行解码。在此实例中,为了对纹理视图分量进行解码,视频解码器30可经配置以评估纹理视图分量中的当前块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除相依视图外的视图中的视图间参考图片的视差运动向量进行视图间预测。并且,为了解码纹理视图分量,视频解码器30可经配置以基于相邻块中的一者的视差运动向量导出当前块的视差向量。视频解码器30可在解码纹理视图分量之后解码对应于纹理视图分量的深度视图分量。

作为另一实例,视频编码器20可在3D-AVC顺应视频译码过程中对相依视图的纹理视图分量进行编码。在此实例中,为了对纹理视图分量进行编码,视频编码器20可经配置以评估纹理视图分量中的当前块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除相依视图外的视图中的视图间参考图片的视差运动向量进行视图间预测。并且,为了编码纹理视图分量,视频编码器20可经配置以基于相邻块中的一者的视差运动向量导出当前块的视差向量。

视频编码器20可在编码纹理视图分量之后编码对应于纹理视图分量的深度视图分量。视频编码器20还可以包含经编码纹理视图分量和经编码深度视图分量的相依视图的纹理优先译码产生经译码位流以用于输出。

如下文进一步详细所论述,将NBDV导出过程应用于3D-AVC的技术可包含与3D-AVC中的NBDV导出和/或具有NBDV导出的运动向量预测有关的特征。以下描述用于3D-AVC的NBDV导出的实例,接着是例如在视图间运动预测中视差向量可使用的实例方式的描述。

为易于描述,所述技术是相对于视频译码器而描述。视频译码器的实例包含视频编码器20和视频解码器30。在以下描述中,术语“译码”可用以在适用时描述编码或解码。举例来说,术语译码(code)当由视频编码器20执行时指代编码且当由视频解码器30执行时指代解码。类似地,术语“译码(coding)”当由视频编码器20执行时可指代编码且当由视频解码器30执行时可指代解码。

举例来说,在本发明中描述的技术中,用于对用于3D-AVC的视频数据进行译码的装置包含视频译码器,所述视频译码器包括一或多个处理器且可经配置以实施本发明中描述的技术。举例来说,视频译码器可在3D-AVC顺应视频译码过程中对相依视图的纹理视图分量进行译码。为了对纹理视图分量进行译码,视频译码器经配置以评估纹理视图分量中的当前块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除相依视图外的视图中的视图间参考图片的视差运动向量进行视图间预测,且基于相邻块中的一者的视差运动向量导出当前块的视差向量。视频译码器还经配置以在对纹理视图分量进行译码之后对对应于纹理视图分量的深度视图分量进行译码。

一般来说,视频译码器检查相邻块位置的经先前译码运动信息以确定纹理视图分量和用于正译码的当前块的视差运动向量作为视差向量。另外,在一些实例中,视频译码器可在当前块与例如视图合成相关模式等其它模式有关的情况下将运动向量视为视差运动向量。如上文所描述,视频译码器按次序检查预定义时间和空间相邻块。在一些实例中,一旦视频译码器识别出视差运动向量,视频译码器便基于相邻块的视差运动向量导出当前块的视差向量(即,视差运动向量变成视差向量)。在识别视差运动向量且使用视差运动向量导出视差向量之后,视频译码器终止NBDV导出过程。

3D-AVC顺应译码器使用的NBDV导出过程可包含以3D-AVC的译码情形自适应地设计的若干特征中的一或多者。举例来说,如上文所描述,宏块(MB)可分割成子块且子块可进一步划分为4x4块层级。在一些实例中,视频译码器可针对宏块导出视差向量一次(例如,NBDV过程执行一次),且将此导出的视差向量指派给宏块内的所有块(即,子块或4x4块)。在一些实例中,视频译码器可针对每一个别MB分区层级、子MB分区层级或甚至在4x4块层级中导出视差向量(即,可在个别MB分区层级、子MB分区层级或甚至4x4块层级中调用NBDV过程)。

换句话说,视频译码器可导出当前块的视差向量。在一些实例中,当前块可为纹理视图分量的宏块。在这些实例中,视频译码器可将所导出的视差向量指派给宏块内的每一块。在一些实例中,当前块可为包含多个块的宏块内的块。在这些实例中,视频译码器可导出宏块内的多个块中的每一者的视差向量。

在一些实例中,当检查每一相邻块的运动信息以识别视差运动向量时,视频译码器可仅检查对应于参考图片列表(例如,RefPicList0)的运动向量。在这些实例中,视频译码器可不检查对应于另一参考图片列表(例如,RefPicList1)的运动向量。

举例来说,作为视频译码的部分,视频译码器构造一个或两个参考图片列表,称为RefPicList0和RefPicList1。视频编码器20和视频解码器30各自利用相同过程来构造一或多个参考图片列表。参考图片列表识别可用于帧间预测的参考图片。到参考图片列表中的参考索引识别将用于帧间预测的参考图片。对于双向预测帧或切片(即,B帧或B切片),视频译码器构造两个参考图片列表,且对于单向预测帧或切片(即,P帧或P切片),视频译码器构造仅一个参考图片列表(例如,RefPicList0)。

相邻块可包含两个运动向量,每一者参考参考图片列表中的一者。在这些实例中,视频译码器可仅确定参考RefPicList0的运动向量是否为视差运动向量,且不确定参考RefPicList1的运动向量是否为视差运动向量,或反之亦然。换句话说,为了评估(例如,检查)运动信息,视频译码器可仅评估具有参考两个参考图片列表中的第一参考图片列表的运动向量的一或多个相邻块的运动信息以确定至少一个相邻块是否是以视差运动向量进行视图间预测,且避免评估具有参考所述两个参考图片列表中的第二参考图片列表的运动向量的一或多个相邻块的运动信息以确定至少一个相邻块是否是以视差运动向量进行视图间预测。

如上文所描述,视频译码器可评估相邻块的运动信息,其中相邻块包含空间相邻块和时间相邻块。空间相邻块是与正译码的块相同的帧或图片中的块,且时间相邻块是在时间图片中,其中时间图片是与包含正译码的块的图片相同的视图中的图片。

可存在其块可潜在地为时间相邻块的时间图片的大量的可能性。然而,为了最小化需要评估以用于导出视差向量的时间图片的数目,视频译码器可实施以下实例技术中的一或多者用于确定用于导出导出视差向量的时间图片。

通常,视频译码器可选择多达两个时间图片用于检查时间相邻块中的视差运动向量。时间相邻块可为位于同一地点的(例如,位于同一地点)块。位于同一地点块涵盖时间图片中与当前块在当前图片中涵盖的区域相同的区域(即,位于同一地点的块位于时间图片中与当前块在当前图片中定位的位置相同的位置)。举例来说,视频译码器可评估第一时间图片中的一或多个时间相邻块的运动信息,且如果没有时间相邻块是以视差运动向量进行视图间预测,那么视频译码器可评估第二时间图片中的一或多个时间相邻块的运动信息。

在一些实例中,在两个候选时间图片中,一个候选时间图片是来自RefPicList0的具有索引0(例如,条目0)的图片,且另一候选时间图片是RefPicList1中具有索引0(例如,条目0)的图片。如果图片类型是P图片(即,RefPicList 1不可用),那么视频译码器可仅使用来自RefPicList0的具有索引0的图片。换句话说,作为纹理视图分量的译码的部分,视频译码器可选择第一时间图片,其中第一时间图片是在第一参考图片列表(例如,RefPicList0)的第一条目(例如,索引0)处识别的图片。视频译码器还可选择第二时间图片,其中第二时间图片是在第二参考图片列表(例如,RefPicList1)的第一条目(例如,索引0)处识别的图片。

视频译码器可评估的时间相邻块可为两个候选时间图片中的一者内的块。举例来说,在这些实例中,视频译码器可评估第一选定时间图片或第二选定时间图片中的至少一者中的至少一个时间相邻块的运动信息。

或者,视频译码器可以考虑锚图片、时间ID以及与当前图片的POC差的算法过程来导出所述两个时间图片。时间ID是时间识别值,其中具有较高时间ID值的图片无法用以帧间预测具有较低时间ID值的图片,但具有较低时间ID值的图片可用以帧间预测具有较高时间ID值的图片。举例来说,视频译码器可选择参考图片列表中的一者中识别的锚图片作为时间图片(如果可用)。如果不可用,那么视频译码器可参考图片列表中具有最小时间ID值的图片,且如果多个图片具有相同的最小时间ID值,那么视频译码器可基于POC值选择具有到当前图片的最小距离的参考图片(即,具有最小差的图片被视为时间图片)。

在一些实例中,如果图片类型是P图片,那么视频译码器可从RefPicList0返回仅一个图片。在一些实例中,并非确定用以导出视差向量的时间图片,视频编码器20可用信号表示指示用以导出视差向量的两个时间图片的信息,且视频解码器可接收所述用信号表示的信息且基于所述用信号表示的信息确定用以导出视差向量的所述两个时间图片。举例来说,视频编码器20可用信号表示且视频解码器30可接收指示用以导出视差向量的两个时间图片的信息,作为切片标头的部分。

虽然上文实例描述视频译码器确定多达两个时间图片,但所述技术不受如此限制。举例来说,视频译码器可使用仅一个图片作为时间图片。作为一个实例,仅为锚图片的图片可为时间图片。作为另一实例,仅为锚图片的图片可为时间图片。

在一些实例中,仅具有等于0的时间层级(即,时间ID值0)的图片可为时间图片。在这些实例中,可能存在一个、两个或两个以上时间图片。

作为NBDV导出技术的部分,一旦视频译码器选择一或多个时间图片,视频译码器便可评估所述一或多个时间图片内的一或多个时间块的运动信息。时间块可指代在时间上位于同一地点的MB内部或外部的任何块位置。视频译码器评估的时间块的位置和次序可为预定义的。

作为一个实例,视频译码器可评估位于同一地点的MB内部的中心块的运动信息,且如果所述中心块未经视图间预测,那么可评估位于同一地点的MB内部的右下拐角块的运动信息,或反之亦然。作为另一实例,视频译码器可评估位于同一地点的MB内部的中心块的运动信息,且如果所述中心块未经视图间预测,那么可评估MB内部的左下拐角块的运动信息,或反之亦然。作为又一实例,视频译码器可评估位于同一地点的MB内部的右下拐角块的运动信息,且如果右下拐角块未经视图间预测,那么可评估MB内部的左下拐角块的运动信息,或反之亦然。作为更多实例,视频译码器可评估位于同一地点的MB内部的中心块的运动信息,且如果所述中心块未经视图间预测,那么可评估MB外部的右下块的运动信息,或反之亦然。

在一些实例中,视频译码器可评估位于同一地点的MB内部的中心块的运动信息,且如果所述中心块未经视图间预测,那么可评估MB内部的左下拐角块的运动信息,且如果MB内部的左下拐角块未经视图间预测,那么可评估MB外部的右下块的运动信息,或任何排列。然而,如果右下块位置在MB外部不可用(例如,在图片边界外),那么视频译码器可评估四个拐角位置中的块的运动信息。举例来说,视频译码器可评估右下拐角位置的运动信息用于视差向量导出。

在一些实例中,视频译码器可评估位于同一地点的MB内部的中心块的运动信息,且如果所述中心块未经视图间预测,那么可评估MB外部的右下块的运动信息,且如果MB外部的右下块未经视图间预测,那么可评估在时间上位于同一地点的MB的四个拐角块的运动信息,或任何排列。一般来说,可考虑来自内部/外部位于同一地点的MB的任何选定块位置(例如仅中心和右下块)。

并非评估时间图片中的多个块,在一些实例中,视频译码器可评估仅一个时间块(例如,仅右下块)的运动信息。举例来说,视频译码器可评估候选时间图片中的至少一者(例如,第一选定时间图片或第二选定时间图片中的至少一者,其中第一选定时间图片是RefPicList0中的条目0且第二选定时间图片是RefPicList1中的条目0)中的仅一个块(例如,右下块)的运动信息。

在一些实例中,仅存取时间图片中的运动向量的水平分量。在这些实例中,可不需要存储或存取垂直分量。在一些实例中,将时间图片中的运动向量的一个分量限制于[-128,127]的范围。在这些实例中,视频译码器可需要存储仅一个字节用于运动向量(即,8个位可用以表示范围从-128到127的256个值)。

在一些实例中,仅存储一个旗标以代替参考索引来指示块是否含有视差运动向量或时间运动向量。在此情况下,由视频译码器实施的NBDV导出过程可始终返回视差向量到一个参考视图。

上文描述确定一或多个时间图片且确定视频译码器评估所确定的时间图片内的哪些时间块以用于导出当前块的视差向量的实例。以下描述视频译码器存取空间相邻块以用于导出当前块的视差向量的实例。

在一些实例中,空间块可指代同一图片中经先前译码的任何块位置。视频译码器可评估这些空间块的运动信息且如果空间块的运动向量指示空间块经视图间预测,那么视频译码器可利用所述空间块的视差运动向量用于导出视差向量。

在一些实例中,空间块包含多达最多四个空间相邻块,例如正译码的当前块的左边、上方、左上方和右上方位置中的相邻块。在这些实例中,四个相邻块中的三个与H.264/AVC视频译码标准中的运动预测中使用的相邻块相同。在一些实例中,视频译码器可仅在右上方位置不可用的情况下(例如,在图片边界外)考虑左上方位置。

如上文所描述,视频译码器可以预定义次序评估运动信息相邻块且当视频译码器识别出相邻块的视差运动向量(在一些实例中需要其参考RefPicList0)时,视频译码器可使用所述视差运动向量导出视差向量(即,将视差运动向量转换为视差向量)且即使存在运动信息尚未经评估的其它相邻块也终止NBDV导出过程。然而,本发明中描述的技术不限于此。

作为一个实例,一旦视频译码器识别出其水平分量不等于0的视差运动向量,视频译码器便可将视差运动向量转换为视差向量且在所述接合点而不是在第一识别的视差运动向量之后终止NBDV导出过程。作为另一实例,一旦视频译码器识别出非零视差运动向量,视频译码器便可将视差运动向量转换为视差向量且在所述接合点而不是在第一识别的视差运动向量之后终止NBDV导出过程。

此外在一些实例中,当空间/时间相邻块内未识别出视差运动向量时,视频译码器使用零视差向量。换句话说,视频译码器可在所述一或多个相邻块中没有相邻块经视图间预测的情况下将当前块的视差向量设定为等于零。

在一些实例中,对使用用于3D-AVC的NBDV导出技术导出的视差向量可存在某些限制。作为一个实例,视频译码器可将所导出的视差向量的垂直分量设定为与视差运动向量的垂直分量相同以使得视差向量的垂直分量不设定成0。在一个实例中,视频译码器可在导出过程结束时始终将视差向量的垂直分量设定为等于0。举例来说,视频译码器可将视差向量的水平分量设定为等于视差运动向量的水平分量,且将视差向量的垂直分量设定为等于零。

在另一实例中,取决于使用视差向量的译码模式,视频译码器可或可不将视差向量的垂直分量设定为等于0。举例来说,在视图间运动预测中,视频译码器可将由NBDV导出过程产生的视差向量转换为视差运动向量作为视差运动向量预测符。所述经转换视差运动向量可由于“视图间运动预测模式”而具有零垂直分量,不管视差运动向量的垂直分量是什么。然而,可能视差运动向量是不变的。当使用NBDV导出时同一情形可应用于时间运动预测和P跳过/B直接模式。

如上文所描述,视频译码器可为了运动向量预测而利用所导出的视差向量,作为视频译码器可利用所导出的运动向量而实施且无需使用深度视图分量用于导出视差向量的一或多个译码工具的一个实例。以下描述具有NBDV导出的运动向量预测。

在纹理优先译码次序中,NBDV导出过程用作运动向量预测过程中的视差向量且用以识别参考视图的参考块或用以转换成当前译码块的视差运动向量。作为实例,描述以下情况。

视频译码器(例如,视频编码器20和视频解码器30)可利用D-MVP(基于深度的运动向量预测)导出用于正常帧间预测模式。然而,并非依赖于深度,所述技术利用NBDV导出用于运动向量预测。正常帧间预测模式指代其中经译码位流包含运动向量其从导出的信息且包含残余数据的帧间预测模式,其中残余数据是由运动向量参考的块与实际当前块之间的差。

在正常帧间预测模式中的用于运动向量预测的第一实例技术中,在运动向量预测过程期间,视频译码器可确定用以帧间预测当前块的参考图片是否为视图间参考图片。作为一个实例,视频编码器20可在经译码位流中用信号表示到曾用于帧间预测编码当前块的参考图片列表中的参考索引,且视频解码器30可识别用于当前块的帧间预测解码的参考图片。视频解码器30可随后基于参考图片的POC值和/或view_id值而确定所识别参考图片是否为视图间参考图片或时间参考图片。视频编码器20选择用于帧间预测的参考图片,并因此视频编码器20可确定所述选定参考图片是否为视图间参考图片或时间参考图片。

换句话说,视频译码器可确定当前块的参考索引是否对应于视图间参考图片。在此意义上,将用于帧间预测的参考图片可为已知的,但参考参考图片的运动向量可为未知的且可使用运动向量预测技术来预测。

如果参考图片是视图间参考图片,那么视频译码器可确定用于运动向量预测的相邻块是否未经视图间预测。如上文所描述,在运动向量预测中,视频译码器仅在其它块中的一者的运动向量不可用的情况下利用左边块、上方块、右上方块和左上方块的运动向量。在本发明中,仅在其它块中的一者的运动向量不可用的情况下的左边块、上方块、右上方块和左上方块是用于运动向量预测的相邻块的实例。

在此实例技术中,如果当前块的参考索引对应于视图间参考图片且用于运动向量预测的相邻块未经视图间预测(即,不是以参考视图间参考图片的视差运动向量来预测),那么视频译码器可使用上述NBDV导出技术将所述导出的视差向量作为视差运动向量指派给用于运动向量预测且未经视图间预测的相邻块。作为一实例,假定左边块未经视图间预测,并因此不存在左边块的视差运动向量。然而,当前块是经视图间预测的,如对应于视图间参考图片的参考索引指示。

在此实例中,出于运动向量预测的目的,视频译码器将当前块的导出的视差向量视为如同其是左边块的视差运动向量。应理解,现在经指派作为左边块的视差运动向量的当前块的导出的视差运动向量并不用以帧间预测左边块。而是,出于当前块的运动向量预测的目的,如果左边块未经视图间预测,那么所导出的视差向量代替或替代作为左边块的视差运动向量。

然后,将中值滤波器应用于相邻块的运动向量以导出运动向量预测符。举例来说,视频译码器构造运动向量的候选者列表,其中所述候选者列表在此情况下包含视差运动向量,因为当前块经视图间预测(例如,三个视差运动向量)。如果用于运动向量预测的相邻块中的一者未经视图间预测,那么视频译码器将所导出的视差向量作为候选运动向量替代到三个视差运动向量的列表中。视频译码器利用中值滤波确定当前块的运动向量预测符,其中所述中值滤波利用作为视差运动向量指派给用于运动向量预测的相邻块的当前块的所导出的视差向量作为经滤波的运动向量中的一者。

视频译码器随后基于运动向量预测符对当前块进行帧间预测译码(对于视频解码器30为解码或对于视频编码器20为编码)。举例来说,视频译码器确定运动向量差(MVD)(例如,视频编码器20用信号表示MVD且视频解码器30接收MVD),视频译码器随后将MVD添加到运动向量预测符以确定当前块的运动向量(例如,在此实例中当前块的视差运动向量)。视频译码器随后以参考由当前块的参考索引识别的参考图片的所确定运动向量对当前块进行帧间预测译码。

在用于运动向量预测的第二实例技术中,视频译码器可确定当前块是否经视图间预测(例如,确定到当前块的参考图片列表中的参考索引是否对应于视图间参考图片)。在此实例中,如果当前块的参考索引对应于视图间参考图片,那么视频译码器可利用当前块的所导出的视差向量作为当前的运动向量预测符。在此实例中,视频译码器可不利用中值滤波来确定运动向量预测符,而是改为将所导出的视差向量直接转换为视差运动向量以预测当前运动向量(即,当前块的运动向量)。视频译码器可基于如上文所描述的运动向量预测符对当前块进行帧间预测译码。

用于运动向量预测的上文实例是基于其中当前块经视图间预测的情况。以下描述在当前块未经视图间预测而是以时间参考图片预测时使用所导出的视差向量进行运动向量预测的一个实例技术。

视频译码器可基于对应于到参考图片列表中的参考索引的参考图片而确定当前块是否是以时间参考图片预测的。在一些实例中,可能的是用于运动向量预测对的相邻块不是以时间运动向量帧间预测的。

在此情况下,视频译码器可利用针对当前块使用NBDV导出技术导出的视差向量来定位参考视图中的参考块(即,定位由所述视差向量参考的块)。如果由视差向量参考的块具有可用时间运动向量,那么视频译码器可将此时间运动向量指派为未以时间运动向量进行帧间预测的用于运动向量预测的相邻块的运动向量。换句话说,视频译码器将由视差向量参考的块的时间运动向量替代作为相邻块的时间运动向量以用于运动向量预测。视频译码器随后类似于上文使用中值滤波来确定运动向量预测符。

一般来说,对于运动向量预测,用以确定运动向量预测符的候选运动向量可需要为与将用于当前块的运动向量相同类型的运动向量。举例来说,如果当前块如从参考索引所确定是经视图间预测的,那么当前块的运动向量是视差运动向量。在一些实例中,用以确定当前块的运动向量预测符的候选运动向量也应为视差运动向量。在此情况下,将视差向量替代为未经视图间预测的相邻块的视差运动向量或直接用作运动向量预测符。如果当前块是以如从参考索引所确定的同一视图中的参考图片进行帧间预测的,那么当前块的运动向量是时间运动向量。在一些实例中,用以确定当前块的运动向量预测符的候选运动向量也应为时间运动向量。在此情况下,视差向量用以识别块,且将此识别块的时间运动向量替代为未经视图间预测的相邻块的时间运动向量。

上文描述相对于正常帧间预测模式的运动向量预测的实例。以下描述使用NBDV的相对于跳过和直接模式的运动向量预测的实例技术。

跳过模式和直接模式指代其中经译码位流中不包含残余或运动向量以用于解码当前块的帧间预测模式。相比之下,在正常帧间预测模式中,视频编码器20用信号表示从其导出运动向量的信息或用信号表示识别运动向量的信息。另外,在正常帧间预测模式中,视频编码器20用信号表示由运动向量识别的块与实际当前块之间的残余。跳过模式大体上与单向预测图片或切片(例如,P帧或切片)相关联且直接模式大体上与双向预测图片或切片(例如,B帧或切片)相关联。出于简洁的目的,一起描述使用NBDV导出过程的用于跳过和直接模式的视图间运动向量预测。

在一个实例中,视频译码器可利用针对当前块从NBDV导出技术导出的视差向量连同相邻块的视差运动向量一起来确定用于跳过和直接模式的视图间运动预测的视差向量。从NBDV导出技术导出的视差向量和用于跳过和直接模式的视图间运动预测的视差向量可为不同的或可为相同的。视频译码器利用用于视图间运动预测的视差向量来识别参考视图中的块,且确定所识别块的运动向量。视频译码器如当前3D-AVC中那样将所识别块的运动向量转换为当前块的运动向量。

在一些实例中,如果不存在相邻块的视差运动向量,那么视频译码器可将来自NBDV导出技术的针对当前块导出的视差向量替代为相邻块的视差运动向量而不是相邻块的视差向量。以此方式,当用于用于视图间运动预测的最终视差向量的预测时,当前块的相邻块可实际上具有与当前块相同的视差向量。

上文实例描述使用NBDV导出技术利用用于跳过和直接模式的视图间运动预测的视差向量的一种方式。然而,本发明的方面不限于此。作为一个实例,视频译码器可直接使用从用于跳过和直接模式的视图间运动预测的NBDV导出技术导出的视差向量。作为另一实例,如果所导出的视差向量是可用的,那么其直接用于视图间运动预测;否则,如上所述使用中值滤波。

图2是说明可实施本发明中描述的技术的视频编码器的实例的框图。举例来说,图2说明可执行视频切片内的视频块的帧内和帧间译码的视频编码器20。举例来说,视频编码器20可执行帧间预测编码或帧内预测编码。帧内译码依赖于空间预测来减少或去除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测或视图间预测来减少或移除视频序列的邻近帧或图片内的时间冗余或不同视图中的图片之间的冗余。帧内模式(I模式)可指若干基于空间压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可指代若干基于时间的压缩模式中的任一者。

在图2的实例中,视频编码器20包含视频数据存储器40、预测处理单元42、参考图片存储器64、求和器50、变换处理单元52、量化处理单元54和熵编码单元56。预测处理单元42包含运动估计单元44、运动补偿单元46和帧内预测单元48。为了视频块重构,视频编码器20还包含逆量化处理单元58、逆变换处理单元60,及求和器62。还可包含解块滤波器(图2中未图示)以便对块边界进行滤波,以从经重构视频移除成块效应假象。在需要时,解块滤波器通常对求和器62的输出进行滤波。除解块滤波器之外,还可使用额外环路滤波器(环路内或环路后)。

视频数据存储器40可存储待由视频编码器20的组件编码的视频数据(例如,经配置以存储视频数据)。可(例如)从视频源18获得存储在视频数据存储器40中的视频数据。参考图片存储器64是解码图片缓冲器(DPB的一个实例,其存储参考视频数据供视频编码器20用于编码视频数据(例如,在帧内或帧间译码模式中,也被称作帧内或帧间预测译码模式)。视频数据存储器40和参考图片存储器64可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器40和参考图片存储器64可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器40可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。

视频编码器20接收视频数据,且分割单元(未图示)将所述数据分割为视频块。此分割还可包含分割为切片、瓦片或其它较大单元,以及视频块分割(例如,宏块分区和分区的子块)。视频编码器20大体说明编码待编码视频切片内的视频块的组件。所述切片可划分成多个视频块(且可能划分成被称作瓦片的视频块集合)。预测处理单元42可基于错误结果(例如,译码速率和失真层级)选择用于当前视频块的多个可能的译码模式中的一者,例如多个帧内译码模式(帧内预测译码模式)中的一者或多个帧间译码模式(帧间预测译码模式)中的一者。预测处理单元42可将所得经帧内或帧间译码块提供到求和器50以产生残余块数据,且提供到求和器62以重构经编码块以用作参考图片。

预测处理单元42内的帧内预测单元48可相对于与待译码当前块在相同的帧或切片中的一或多个相邻块执行当前视频块的帧内预测性译码,以提供空间压缩。预测处理单元42内的运动估计单元44及运动补偿单元46相对于一或多个参考图片中的一或多个预测性块执行当前视频块的帧间预测性译码以提供时间压缩。

运动估计单元44可经配置以根据用于视频序列的预定模式确定用于视频切片的帧间预测模式。预定模式可将序列中的视频切片指定为P切片或B切片。运动估计单元44与运动补偿单元46可高度集成,但出于概念目的而分别加以说明。由运动估计单元44执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块相对于参考图片内的预测性块的位移。

预测性块是被发现在像素差方面与待译码视频块密切匹配的块,像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异度量来确定。在一些实例中,视频编码器20可以计算存储在参考图片存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可以内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元44可相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动向量。

运动估计单元44通过将视频块的位置与参考图片的预测性块的位置进行比较来计算经帧间译码(经帧间预测译码)切片中的视频块的运动向量。参考图片可以选自第一参考图片列表(RefPicList0)或第二参考图片列表(RefPicList1),其中的每一者识别存储于参考图片存储器64中的一或多个参考图片。运动估计单元44向熵编码单元56和运动补偿单元46发送计算出的运动向量。

通过运动补偿单元46执行的运动补偿可以涉及基于通过运动估计(可能执行对子像素精度的内插)确定的运动向量提取或产生预测性块。在接收到当前视频块的PU的运动向量后,运动补偿单元46即刻可以在参考图片列表中的一者中定位所述运动向量指向的预测性块。视频编码器20通过从正被译码的当前视频块的像素值减去预测性块的像素值从而形成像素差值来形成残余视频块。像素差值形成用于所述块的残余数据,并且可包含明度及色度差分量两者。求和器50表示可执行此减法运算的一或多个组件。运动补偿单元46还可产生与视频块及视频切片相关联的供视频解码器30在解码视频切片的视频块时使用的语法元素。

作为如上文所描述由运动估计单元44和运动补偿单元46执行的帧间预测的替代方案,帧内预测单元48可以对当前块进行帧内预测。明确地说,帧内预测单元48可以确定用来对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元48可以(例如)在单独的编码编次期间使用各种帧内预测模式来编码当前块,并且帧内预测单元48(或在一些实例中为模式选择单元)可以从测试模式中选择适当帧内预测模式来使用。举例来说,帧内预测单元48可以使用速率失真分析计算针对各种经测试帧内预测模式的速率失真值,并且从所述经测试模式当中选择具有最佳速率失真特性的帧内预测模式。速率失真分析大体上确定经编码块与经编码以产生所述经编码块的原始未编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(即,位数目)。帧内预测单元48可以根据用于各种经编码块的失真和速率计算比率,以确定哪个帧内预测模式对于所述块展现最佳速率失真值。

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

在预测处理单元42经由帧间预测或帧内预测产生当前视频块的预测块之后,视频编码器20通过从当前视频块减去预测块而形成残余视频块。残余块中的残余视频数据可应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残余视频数据变换成残余变换系数。变换处理单元52可将残余视频数据从像素值域转换到变换域,例如频域。

变换处理单元52可将所得变换系数发送到量化处理单元54。量化处理单元54可量化所述变换系数以进一步减小位率。量化过程可减少与变换系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。在一些实例中,量化处理单元54可接着执行对包含经量化变换系数的矩阵的扫描。或者,熵编码单元56可执行所述扫描。

在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码方法或技术。在由熵编码单元56进行熵编码之后,可将经编码位流发射到视频解码器30,或将经编码位流存档以供稍后发射或由视频解码器30检索。熵编码单元56还可对正被编码的当前视频切片的运动向量及其它语法元素进行熵编码。

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

以此方式,视频编码器20是经配置以本发明中描述的一或多个实例技术的视频编码器的实例。举例来说,视频数据存储器40存储视频数据。所述视频数据可包含相依视图的纹理视频分量和对应于纹理视图分量的深度视图分量,视频编码器20将在3D-AVC顺应视频译码过程中对其中的每一者进行编码。

在本发明中描述的技术中,视频编码器20可包含经配置以在3D-AVC顺应视频译码过程中对视频数据的相依视图的纹理视图分量进行编码的一或多个处理器。如上文所描述,3D-AVC中的每一视图包含纹理视图分量和深度视图分量。3D-AVC中存在一个基础视图以及一或多个增强或相依视图,其中一或多个增强或相依视图的纹理视图分量可进行视图间预测。

为了对纹理视图分量进行编码,视频编码器20可经配置以评估纹理视图分量中的当前宏块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除相依视图外的视图中的视图间参考图片的视差运动向量进行视图间预测。在一些实例中,视频编码器20可评估具有参考第一参考图片列表(RefPicList0)的运动向量的相邻块的运动信息,且避免评估具有参考第二参考图片列表(RefPicList1)的运动向量的相邻块的运动信息。

相邻块是空间和时间相邻块。时间相邻块可在第一选定图片和第二选定图片中的至少一者中。第一选定图片是第一参考图片列表(RefPicList0)的条目0(索引0)中识别的图片。第二选定图片是第二参考图片列表(RefPicList1)的条目0(索引0)中识别的图片。可存在视频编码器20评估的多达最多四个空间相邻块,其中所述四个空间相邻块中的三个是与H.264/AVC视频译码标准中的运动预测中使用的那些相邻块相同的相邻块。

视频编码器20可基于相邻块中的一者的视差运动向量导出当前宏块的视差向量。视频编码器20将当前宏块的导出的视差向量指派给当前宏块内的块。对于纹理优先译码,视频编码器20可在编码纹理视图分量之后编码对应于纹理视图分量的视频数据的深度视图分量。

作为一个实例,视频编码器20可选择候选时间图片,且可评估这些候选时间图片中的一者内的时间块。举例来说,视频编码器20可选择第一时间图片,其是第一参考图片列表(例如,RefPicList0)的第一条目(例如,条目0)中识别的图片,且选择第二时间图片,其是第二参考图片列表(例如,RefPicList1)的第一条目(例如,条目0)中识别的图片。所述相邻块包含所述第一选定时间图片或第二选定时间图片中的至少一者中的至少一个时间相邻块。在一些实例中,可存在仅一个时间相邻块(例如,右下块)。

作为另一实例(可与以上实例组合或单独地使用),视频编码器20可评估具有参考两个参考图片列表中的第一参考图片列表(例如,RefPicList0)的运动向量的仅一或多个相邻块的运动信息以确定至少一个相邻块是否是以视差运动向量经视图间预测的。在这些实例中,视频编码器20可避免评估具有参考所述两个参考图片列表中的第二参考图片列表(例如,RefPicList1)的运动向量的所述一或多个相邻块的运动信息以确定至少一个相邻块是否是以视差运动向量经视图间预测的。

在一些实例中,视频编码器20的预测处理单元42可为经配置以实施本发明中描述的实例的处理器的一个实例。在一些实例中,除预测处理单元42外的单元(例如,一或多个处理器)可实施上述实例。在一些实例中,预测处理单元42与视频编码器20的一或多个其它单元结合可实施上述实例。在一些实例中,视频编码器20的处理器(图2中未图示)可单独或与视频编码器20的其它处理器结合实施上述实例。

图3是说明可实施本发明中描述的技术的视频解码器的实例的框图。举例来说,视频解码器30可执行帧间预测解码或帧内预测解码。图3说明视频解码器30。在图3的实例中,视频解码器30包含视频数据存储器69、熵解码单元70、预测处理单元71、逆量化处理单元76、逆变换处理单元78、求和器80和参考图片存储器82。预测处理单元71包含运动补偿单元72和帧内预测单元74。在一些实例中,视频解码器30可执行一般与关于图2的视频编码器20描述的编码遍次互逆的解码遍次。

视频数据存储器69可存储待由视频解码器30的组件解码的视频数据(例如,经配置以存储视频数据),例如经编码视频位流。存储在视频数据存储器69中的视频数据可(例如)从存储装置34、从例如相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器69可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。

参考图片存储器82是存储参考视频数据供视频解码器30解码视频数据(例如,在帧内或帧间译码模式中)的经解码图片缓冲器(DPB)的一个实例。视频数据存储器69和参考图片存储器82可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器69和参考图片存储器82可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器69可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。

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

当视频切片经译码为经帧内译码(I)切片时,预测处理单元71的帧内预测单元74可以基于用信号表示的帧内预测模式和来自当前帧或图片的先前经解码块的数据产生用于当前视频切片的视频块的预测数据。当视频帧经译码为经帧间译码(即,B或P)切片时,预测处理单元71的运动补偿单元72基于从熵解码单元70接收到的运动向量和其它语法元素产生用于当前视频切片的视频块的预测性块。预测性块可以从参考图片列表中的一者内的参考图片中的一者产生。视频解码器30可基于存储在参考图片存储器82中的参考图片使用默认构造技术构造参考图片列表(RefPicList0和RefPicList1)。

运动补偿单元72通过剖析运动向量和其它语法元素确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息产生用于正被解码的当前视频块的预测性块。举例来说,运动补偿单元72使用所接收语法元素中的一些语法元素确定用于译码视频切片的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片或P切片)、切片的参考图片列表中的一或多者的构造信息、切片的每一经帧间编码的视频块的运动向量、切片的每一经帧间译码的视频块的帧间预测状态,及用以解码当前视频切片中的视频块的其它信息。

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

逆量化处理单元76将在位流中提供且由熵解码单元70解码的经量化变换系数逆量化(即,解量化)。逆量化过程可包含使用视频编码器20针对视频切片中的每一视频块计算以确定应应用的量化程度和同样逆量化程度的量化参数。逆变换处理单元78将逆变换应用于变换系数(例如,逆DCT、逆整数变换或概念上类似的逆变换过程),以便产生像素域中的残余块。

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

以此方式,视频解码器30是经配置以本发明中描述的一或多个实例技术的视频解码器的实例。举例来说,视频数据存储器69存储视频数据。所述视频数据可包含视频解码器30可从其解码相依视图的纹理视频分量和对应于纹理视图分量的深度视图分量的信息,视频编码器20在3D-AVC顺应视频译码过程中对其中的每一者进行编码。

在本发明中描述的技术中,视频解码器30可包含经配置以在3D-AVC顺应视频译码过程中对视频数据的相依视图的纹理视图分量进行解码的一或多个处理器。为了对纹理视图分量进行解码,视频解码器30可经配置以评估纹理视图分量中的当前宏块的一或多个相邻块的运动信息以确定至少一个相邻块是否是以参考除相依视图外的视图中的视图间参考图片的视差运动向量进行视图间预测。在一些实例中,视频解码器30可评估具有参考第一参考图片列表(RefPicList0)的运动向量的相邻块的运动信息,且避免评估具有参考第二参考图片列表(RefPicList1)的运动向量的相邻块的运动信息。

相邻块是空间和时间相邻块。时间相邻块可在第一选定图片和第二选定图片中的至少一者中。第一选定图片是第一参考图片列表(RefPicList0)的条目0(索引0)中识别的图片。第二选定图片是第二参考图片列表(RefPicList1)的条目0(索引0)中识别的图片。可存在视频解码器30评估的多达最多四个空间相邻块,其中所述四个空间相邻块中的三个是与H.264/AVC视频译码标准中的运动预测中使用的那些相邻块相同的相邻块。

视频解码器30可基于相邻块中的一者的视差运动向量导出当前宏块的视差向量。视频解码器30可将当前宏块的导出的视差向量指派给当前宏块内的块。对于纹理优先译码,视频解码器30可在解码纹理视图分量之后对对应于纹理视图分量的视频数据的深度视图分量进行解码。

作为一个实例,视频解码器30可选择候选时间图片,且可评估这些候选时间图片中的一者内的时间块。举例来说,视频解码器30可选择第一时间图片,其是第一参考图片列表(例如,RefPicList0)的第一条目(例如,条目0)中识别的图片,且选择第二时间图片,其是第二参考图片列表(例如,RefPicList1)的第一条目(例如,条目0)中识别的图片。所述一或多个相邻块包含所述第一选定时间图片或所述第二选定时间图片中的至少一者中的至少一个时间相邻块。在一些实例中,可存在仅一个时间相邻块(例如,右下块)。

作为另一实例(可与以上实例组合或单独地使用),视频解码器30可评估具有参考两个参考图片列表中的第一参考图片列表(例如,RefPicList0)的运动向量的仅一或多个相邻块的运动信息以确定至少一个相邻块是否是以视差运动向量经视图间预测的。在这些实例中,视频解码器30可避免评估具有参考所述两个参考图片列表中的第二参考图片列表(例如,RefPicList1)的运动向量的所述一或多个相邻块的运动信息以确定至少一个相邻块是否是以视差运动向量经视图间预测的。

在一些实例中,视频解码器30的预测处理单元71可为经配置以实施本发明中描述的实例的处理器的一个实例。在一些实例中,除预测处理单元71外的单元(例如,一或多个处理器)可实施上述实例。在一些实例中,预测处理单元71与视频解码器30的一或多个其它单元结合可实施上述实例。在又一些其它实例中,视频解码器30的处理器(图3中未图示)可单独或与视频解码器30的其它处理器结合实施上述实例。

以下描述视频编码器20和视频解码器30可实施上述技术的实例方式且为简洁起见以视频译码器描述,其中视频译码器基于上下文可为视频编码器20或视频解码器30。本发明中描述的技术不应被视为限于任何具体实例实施方案。所述技术中的任一者可与其它技术中的一或多者组合以用于视差向量导出。所述技术的每一方面可组合为一个完整技术。

初始地,视频译码器可确定一或多个时间图片。对于每一时间图片,视频译码器可检查(例如,评估)由块位置预定义的一或多个经确定时间相邻块。举例来说,视频译码器可将时间图片确定为参考图片列表中的一或多个图片。可能需要每一时间图片属于与当前图片相同的视图。

在一个实例中,视频译码器可使用隐式导出技术确定时间图片。在下文中,视频译码器确定多达两个时间图片:tempPic[0]和tempPic[1]。

作为用于隐式地确定时间图片的一个实例,使用RefPicList0和RefPicList1中的第一条目且使用多达两个时间图片。在一个实例中,当当前切片是P切片时,RefPicList0[0]是仅有的时间图片,且当当前切片是B切片时,RefPicList0[0]是第一时间图片且RefPicList1[0]是第二时间图片。作为另一实例,RefPicList1[0]是第一时间图片且RefPicList0[0]是第二时间图片。作为又一实例,参考图片列表中或DPB(经解码图片缓冲器)中的任何两个时间参考图片可选择为时间图片。

作为用于隐式地确定时间图片的另一实例,视频译码器可选择如H.264/AVC时间直接模式中所使用的位于同一地点的图片(即,RefPicList1[0])作为第一时间图片。视频译码器以第二时间图片较可能包含较多视差运动向量的方式选择第二时间图片。

以下描述用于隐式地确定时间图片的实例。

–i=0;

–如果当前切片类型是B,tempPic[i]=RefPicList1[0],i++;

–如下导出tempPic[i]:

–对于RefPicList0或RefPicList1中的每一图片Pic,如果Pic是锚图片,那么tempPic[i]=Pic,返回;

–对于在可用的情况下的RefPicList0和RefPicList1中的图片,将tempPic[i]设定成具有最低temporal_id的图片。如果存在具有相同temporal_id的多个图片,那么将tempPic[i]设定成具有与当前图片的较小POC差的图片。或者,即使当RefPicList1可用时,此步骤中也不考虑RefPicList1中的图片。

作为另一实例,如下在导出过程的中间不考虑temporal_id:

–i=0;

–如果当前切片类型是B,tempPic[i]=RefPicList1[0],i++;

–如下导出tempPic[i]:

–对于RefPicList0或RefPicList1中的每一图片Pic,如果Pic是锚图片,那么tempPic[i]=Pic,返回;

–如果当前切片是P切片,那么对于RefPicList0中的图片,将tempPic[i]设定成具有与当前图片的最小POC差的图片。

–如果当前切片是B切片,那么以将tempPic[i]设定成具有与当前图片的最小POC差的图片的方式检查RefPicList0中的图片,接着是RefPicList1中的图片。

在一些实例中,替代于时间图片的隐式导出,显式导出可为可能的。举例来说,视频编码器20可在视频解码器30接收的切片标头或图片参数集中显式地用信号表示时间图片的数目和时间图片。在一个实例中,显式地用信号表示仅一个时间图片。

在一个实例中,视频译码器可确定第一时间图片对于B切片始终为RefPicList1[0]且对于P切片始终为RefPicList0[0]。在此实例中,第二时间图片由视频编码器20用信号表示且由视频解码器30在切片标头中作为ref_idx_temp_pic而接收,且第二时间图片经导出为RefPicList0[ref_idx_temp_pic]。在另一实例中,第二时间图片不可用,因此对于P切片不用信号表示。在另一实例中,将两个参考索引值用信号表示为索引ref_idx_temp_pic0和ref_idx_temp_pic1且将时间图片识别为RefPicList0[ref_idx_temp_pic0]和RefPicList0[ref_idx_temp_pic1]。在另一实例中,将两个参考索引值用信号表示为索引ref_idx_temp_pic0和ref_idx_temp_pic1且将时间图片识别为RefPicList0[ref_idx_temp_pic0]和RefPicList1[ref_idx_temp_pic1]。

作为额外实例,将两个参考索引值用信号表示为索引ref_idx_temp_pic0和ref_idx_temp_pic1。然而,对于B切片,如果当前切片是B切片,那么用信号表示一个额外旗标list0_flag0和list0_flag1(对于P切片推断为0),且将时间图片识别为RefPicListX0[ref_idx_temp_pic0]和RefPicListX1[ref_idx_temp_pic1],其中X0和X1分别等于list0_flag0和list0_flag1。

关于所确定的时间图片,视频译码器可评估在时间上位于同一地点的块位置的运动信息以确定相邻块是否是以视差运动向量经视图间预测的。基本上,检查在时间上位于同一地点的宏块的预定义4x4块以搜索视差运动向量。

图4A到H图解说明针对视差向量导出而检查的在时间上位于同一地点的宏块(MB)的实例块位置。如图4A所示,所述块位置可在宏块内部,例如四个拐角块和中心块,或甚至在宏块外部,例如右下块。然而或者,所述位置可为位于同一地点的MB中的任何4x4块以及MB外部的任何相邻块。然而或者,在所有可能的位置中的几个选择性位置可用以减少复杂性。

在图4B中,可考虑MB外部的仅中心和右下位置。在图4C中,可考虑MB内部的仅中心和右下拐角位置。在图4D中,可考虑MB内部的仅中心和左下拐角位置。在图4E中,可考虑MB内部的右下拐角位置和左下拐角位置。在图4F中,可考虑中心和底部行中的两个拐角位置。在图4G中,可考虑中心、MB内部的左下拐角块和MB外部的右下块。

在一些实例中,如果块候选中的一者不可用(例如在图片边界外),那么用另一位置代替所述位置。举例来说,在图4H中,如果MB外部的右下块位置不可用,那么检查右下拐角位置。

在一些实例中,所述位置可随某一条件变化。举例来说,如果在当前MB与位于同一地点的MB之间存在显著运动改变,那么所述位置可因此随着运动而改变。检查次序可为待检查的块位置的任何排列次序。

上文描述用于评估时间块的实例,以下描述用于评估空间块的实施方案。实例指示空间块,视频译码器检查所述空间块以确定这些块中是否有任何块是以视差运动向量经视图间预测的。

图5A到5D图解说明针对视差向量导出检查的在空间上相邻的宏块的实例块位置。以类似于在时间上位于同一地点的块的方式,也存在当前经译码MB的预定义4x4空间相邻块。检查块位置A、B、C和D以找出视差运动向量,如图5A到5D中所示;然而,其它组合和排列可为可能的。

在图5A中,检查块位置A、B和C以找出视差运动向量。如果位置C不可用(例如在图片边界外),那么考虑位置D。在一些实例中,可考虑在位置A、B、C和D之上的当前MB的所有行和列中的任何相邻位置。在一些实例中,可考虑行和列中的任何选择性位置。

在图5B中,可考虑块位置A和B。在图5C中,可考虑块位置A和C,且在一些实例中,如果在位置C处的块不可用,那么可用D代替块位置C。在图5D中,可考虑MB的上方行中的块位置。另外,在搜索过程中可应用选定块位置中的任何排列次序。

上文描述空间和时间相邻者的实例,所述相邻者的运动信息经评估以确定这些相邻块中是否有任何相邻块是经视图间预测的以用于NBDV(基于相邻块的视差向量)导出技术中的视差向量导出。以下描述NBDV导出技术何时终止(即,当视频译码器停止评估相邻块的运动信息以导出视差向量时)的实例。

一般来说,一旦视频译码器识别出视差运动向量,视频译码器便停止评估运动信息。然而,在一些实例中,水平分量不等于0的视差运动向量可不被视为终止条件。换句话说,即使相邻块是以视差运动向量经视图间预测的,如果所述视差运动向量的水平分量不等于0,那么视频译码器可保持评估相邻块的运动信息。

在一些实例中,终止条件可为当视频识别出零视差运动向量时。在一些实例中,视频可识别多个视差运动向量候选,且随后应用滤波以使得一者变为视差向量。在一些实例中,如果未找到视差运动向量,那么视频译码器取决于视差向量而使用零视差向量用于运动向量预测或其它译码工具。

以下描述用于运动向量预测的实施方案实例。举例来说,以下提供关于基于用于正常帧间模式以及跳过和直接模式的NBDV的运动向量预测的具体实施方案。在此实例中,在用于跳过和直接模式的D-MVP过程和视图间运动预测两者期间,当视差运动向量不可用于相邻块时,其是从NBDV导出结果转换。在用于时间预测的D-MVP过程期间,将用以识别参考块的视差向量设定成NBDV结果。作为说明改变的方式,以下使用加下划线和斜体字来识别从3D-AVC的较早版本删除的语言,且使用加下划线和黑体字来识别添加的语言。

以下是用于以视图间预测中的D-MVP过程进行NBDV导出的伪码。

J.8.3 3DVC帧间预测、视图间预测、视图合成预测以及自适应明度补偿

将函数Disparity(depthSample,srcIndex,refIndex)指定为返回如下指定的disparityValue。

disparityValue=(NdrInverse[depthSample]*

DisparityScale[dps_id][srcIndex][refIndex]+

(DisparityOffset[dps_id][srcIndex][refIndex]<<BitDepthY)+

(1<<(log2Div-1)))>>log2Div

J.8.3.1.8用于中值明度运动向量预测的基于深度的导出过程

当分区mbAddrN\mbPartIdxN\subMbPartIdxN不可用或refIdxLXN不等于refIdxLX时,如以下有序步骤指定来导出mvLXN:

1.调用如子条款6.4中指定的逆宏块扫描过程,其中CurrMbAddr作为输入且将输出指派给(x1,y1)。

2.调用子条款6.4.2.1中指定的逆宏块分区扫描过程,其中mbPartIdx作为输入且将输出指派给(dx1,dy1)。

3.调用子条款6.4.2.2中指定的逆子宏块分区扫描过程,其中mbPartIdx和subMbPartIdx作为输入且将输出指派给(dx2,dy2)。

4.调用如子条款J.8.3.1.8.1中指定的中值明度运动向量预测中的视图间运动向量的修改过程,其中等于DepthRefPicList0[refIdxL0]的depthPic、等于x1+dx1+dx2的dbx1、等于y1+dy1+dy2的dby1以及等于mvL0的mv作为输入,且将输出指派给运动向量mvLXN。

运动向量预测mvpLX的每一分量由运动向量mvLXA、mvLXB和mvLXC的对应向量分量的中值给定:

mvpLX[0]=Median(mvLXA[0],mvLXB[0],mvLXC[0])(J8-XX)

mvpLX[1]=Median(mvLXA[1],mvLXB[1],mvLXC[1])(J8-XX)

J.8.3.1.8.1用于中值明度运动向量预测中的视图间运动向量的修改过程

假设refViewId为depthPic的view_id值。

以下有序步骤适用:

1.如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))(J-8-XX)

if(depthPic[dbx1+i,dby1+j]>maxDepth)

maxDepth=depthPic[dbx1+i,dby1+j]

2.如下指定变量mv:

srcIndex=ViewIdTo3DVAcquisitionParamIndex(view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(refViewId)

mv[0]=Disparity(maxDepth,srcIndex,refIndex)

mv[1]=0

调用如实施例#1指定的NBDV过程,且如下设定输出的视差向量tempDV:

mv[0]=tempDV[0]

mv[1]=0

以下是用于以时间预测中的D-MVP过程进行NBDV的伪码。

J.8.33DVC帧间预测、视图间预测、视图合成预测以及自适应明度补偿

指定函数Disparity(depthSample,srcIndex,refIndex)以返回如下指定的disparityValue。

disparityValue=(NdrInverse[depthSample]*

DisparityScale[dps_id][srcIndex][refIndex]+

(DisparityOffset[dps_id][srcIndex][refIndex]<<BitDepthY)+

(1<<(log2Div-1)))>>log2Div

J.8.3.1.9用于中值明度时间运动向量预测的基于深度的导出过程

当分区mbAddrN\mbPartIdxN\subMbPartIdxN不可用或refIdxLXN不等于refIdxLX时,如以下有序步骤指定来导出mvLXN:

1.调用如子条款6.4.1中指定的逆宏块扫描过程,其中CurrMbAddr作为输入且将输出指派给(x1,y1)。

2.调用子条款6.4.2.1中指定的逆宏块分区扫描过程,其中mbPartIdx作为输入且将输出指派给(dx1,dy1)。

3.调用子条款6.4.2.2中指定的逆子宏块分区扫描过程,其中mbPartIdx和subMbPartIdx作为输入且将输出指派给(dx2,dy2)。

4.调用子条款J.8.3.1.9.1中指定的过程,其中设定成DepthCurrPic的depthPic、设定成x1+dx1+dx2的dbx1、设定成y1+dy1+dy2的dby1以及listSuffixFlag作为输入,且InterViewPic、偏移向量dv以及变量InterViewAvailable作为输出。

5.如下设定refIdxCorrespond和mvCorrespond。

J.8.3.1.9.1用于视差向量和视图间参考的导出过程

对此过程的输入是深度参考视图分量depthPic、分区的左上样本(dbx1,dby1)的位置以及listSuffixFlag。

此过程的输出是图片InterViewPic、偏移向量dv以及变量InterViewAvailable将变量InterViewAvailable设定为等于0。

以下适用于导出视图间参考图片或仅视图间参考图片InterViewPic,其中当listFuffixFlag是1时X设定成1或否则为0:

当InterViewAvailable等于1时,以下步骤按次序适用。

1.如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))

if(depthPic[dbx1+i,dby1+j]>maxDepth)maxDepth=depthPic[dbx1+i,dby1+j]

2.如下指定变量dv:

currIndex=ViewIdTo3DVAcquisitionParamIndex(当前视图的view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(InterViewPic的view_id)

dv[0]=Disparity(maxDepth,currIndex,refIndex)

dv[1]=0

调用如实施例#1指定的NBDV过程,且如下设定输出的视差向量tempDV

dv[0]=tempDV[0]

dv[1]=0

以下是用于以视图间运动预测的NBDV的伪码。

J.8.3 3DVC帧间预测、视图间预测、视图合成预测以及自适应明度补偿

指定函数Disparity(depthSample,srcIndex,refIndex)以返回如下指定的disparityValue。

disparityValue=(NdrInverse[depthSample]*

DisparityScale[dps_id][srcIndex][refIndex]+

(DisparityOffset[dps_id][srcIndex][refIndex]<<BitDepthY)+

(1<<(log2Div-1)))>>log2Div

J.8.3.1.4用于视差向量和视图间参考的导出过程

如果DvAvailable[0]+DvAvailable[1]+DvAvailable[2]等于1,那么以下适用:

–dv[0]=mvCand[i][0]

–dv[1]=mvCand[i][1]

–否则,以下步骤按次序适用:

–如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))

if(depthPic[dbx1+i,dby1+j]>maxDepth)

maxDepth=depthPic[dbx1+i,dby1+j]

-如下指定变量dispVector:

currIndex=ViewIdTo3DVAcquisitionParamIndex(当前视图的view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(InterViewPic的view_id)

dispVector[0]=Disparity(maxDepth,currIndex,refIndex)

dispVector[1]=0

调用如实施例#1中指定的NBDV过程,且如下设定输出的视差向量tempDV:

dispVector[0]=tempDV[0]

dispVector[1]=0

以下提供当从NBDV导出的视差向量直接用于视图间预测和/或直接与跳过模式时基于NBDV的运动向量预测的具体实施方案的另一实例。在此实施方案中,从来自NBDV的视差向量转换视差向量,且跳过中值滤波。实际上,视差运动向量变成运动向量预测。

以下提供用于视图间预测中的D-MVP的NBDV的直接使用的伪码。

J.8.3.1.8用于中值明度运动向量预测的基于深度的导出过程

当分区mbAddrN\mbPartIdxN\subMbPartIdxN不可用或refIdxLXN不等于refIdxLX时,如以下有序步骤指定来导出mvLXN:

1.调用如子条款6.4.1中指定的逆宏块扫描过程,其中CurrMbAddr作为输入且将输出指派给(x1,y1)。

2.调用子条款6.4.2.1中指定的逆宏块分区扫描过程,其中mbPartIdx作为输入且将输出指派给(dx1,dy1)。

3.调用子条款6.4.2.2中指定的逆子宏块分区扫描过程,其中mbPartIdx和subMbPartIdx作为输入且将输出指派给(dx2,dy2)。

4.调用如子条款J.8.3.1.8.1中指定的中值明度运动向量预测中的视图间运动向量的修改过程,其中等于DepthRefPicList0[refIdxL0]的depthPic、等于x1+dx1+dx2的dbx1、等于y1+dy1+dy2的dby1以及等于mvL0的mv作为输入,且将输出指派给运动向量mvLXN。

运动向量预测mvpLX的每一分量由运动向量mvLXA、mvLXB和mvLXC的对应向量分量的中值给定:

mvpLX[0]=Median(mvLXA[0],mvLXB[0],mvLXC[0])(J8-XX)

mvpLX[1]=Median(mvLXA[1],mvLXB[1],mvLXC[1])(J8-XX)

调用实施例#1中指定的NBDV过程,且将视差向量存储到tempDV。

mvpLX[0]=tempDV[0]

mvpLX[1]=tempDV[1].

以下提供用于跳过/直接模式中的视图间运动向量预测的NBDV的直接使用的伪码。

J.8.3.1.4用于视差向量和视图间参考的导出过程

将InterViewAvailable设定为等于0。

以下适用于导出视图间参考图片或仅视图间参考图片InterViewPic:

当InterViewAvailable等于1时,以下步骤按次序适用。

–调用子条款8.4.1.3.2中指定的过程,其中设定成等于0的mbPartIdx、设定成等于0的subMbPartIdx、设定成等于“na”的currSubMbType以及设定成等于0的listSuffixFlag作为输入,且参考索引refIdxCandL0[i]和运动向量mvCandL0[i]作为输出,其中ⅰ等于0、1和2,分别对应于相邻分区A、B和C。

–调用子条款8.4.1.3.2中指定的过程,其中设定成等于0的mbPartIdx、设定成等于0的subMbPartIdx、设定成等于“na”的currSubMbType以及设定成等于1的listSuffixFlag作为输入,且参考索引refIdxCandL1[i]和运动向量mvCandL1[i]作为输出,其中ⅰ等于0、1和2,分别对应于相邻分区A、B和C。

–如以下有序步骤指定来导出变量dv:

–如下设定DvAvailable[i]和mvCand[i],其中ⅰ等于0、1和2,分别对应于相邻分区A、B和C

–如果DvAvailable[0]+DvAvailable[1]+DvAvailable[2]等于1,那么以下适用

–dv[0]=mvCand[i][0]

–dv[1]=mvCand[i][1]

–否则,以下步骤按次序适用:

–如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))

if(depthPic[dbx1+i,dby1+j]>maxDepth)

maxDepth=depthPic[dbx1+i,dby1+j]

–如下指定变量dispVector:

currIndex=ViewIdTo3DVAcquisitionParamIndex(当前视图的view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(InterViewPic的view_id)

dispVector[0]=Disparity(maxDepth,currIndex,refIndex)

dispVector[1]=0

–对于等于0、1和2的每一值,当DvAvailable[i]时等于0,将mvCand[i]设定成dispVector。

–如下导出变量dv的每一分量:

dv[0]=Median(mvCand[0][0],mvCand[1][0],mvCand[2][0])

dv[1]=Median(mvCand[0][1],mvCand[1][1],mvCand[2][1])

调用实施例#1中指定的NBDV过程,且将视差向量存储到tempDV。

dv[0]=tempDV[0]

dv[1]=tempDV[1].

如上文所描述,在某一实例中,视频译码器可针对宏块调用NBDV过程一次,且所有分区共享相同的结果。在一些实例中,视频译码器可在MB分区层级中调用NBDV过程。

图6A和6B图解说明当分区是8x16时针对视差向量导出检查的宏块分区的相邻块的实例块位置。确切地说,图6A图解说明基于MB分区的NBDV导出中的空间相邻块,且图6B图解说明基于MB分区的NBDV导出中的时间相邻块。

在一些实例中,时间块遵循基于MB的NBDV导出的位置。在一些实例中,空间块遵循基于MB的NBDV导出的位置。在一些实例中,可在子MB分区中或甚至在4x4块层级中调用NBDV导出过程,且因此可改变块位置。

在D-MVP中(即,在运动向量预测中),视频译码器可在子MB分区层级或MB分区层级中调用运动向量预测。作为一个实例,视频译码器可在MB分区中或在子MB分区中在每个D-MVP过程中调用基于MB分区的NBDV导出。作为另一实例,视频译码器可在MB分区中或在子MB分区中在每个D-MVP过程中进行调用。

上文描述时间图片的导出的实例、NBDV和运动预测的实例、以视图间预测中的D-MVP过程的NBDV导出的实例、以时间预测中的D-MVP过程的NBDV导出的实例以及以视图间运动预测的NBDV导出。以下提供此些技术的一些额外实例。这些实例是对上述用于导出时间图片的技术的添加或替代。换句话说,以下技术可单独地使用或与上述实例中的任一者结合使用。

以下是用于时间图片的导出的第一额外实例。在一些实例中,时间图片是并不属于与当前图片相同的存取单元的图片。如果当前图片是P切片,那么仅一个时间图片导出为RefPicList0[0]。如果当前图片是B切片,那么按如下次序导出两个时间图片:RefPicList1[0]和RefPicList0[0]。

在一些实例中,以下替代的导出过程可适用。如果当前图片具有等于0的temporal_id,那么仅一个时间图片导出为RefPicList0[0]。或者,在此情况下的时间图片可为RefPicList1[0](如果可用),且在RefPicList1[0]不可用的情况下为RefPicList0[0]。如果当前图片具有大于0的temporal_id,那么按如下次序导出两个时间图片:RefPicList1[0](如果可用)和RefPicList0[0](如果可用)。

在一些实例中,以下替代的导出过程可适用。如果当前图片具有锚图片,那么仅一个时间图片导出为RefPicList0[0]。或者,在此情况下的时间图片可为RefPicList1[0](如果可用),且在RefPicList1[0]不可用的情况下为RefPicList0[0]。如果当前图片具有非锚图片,那么按如下次序导出两个时间图片:RefPicList1[0](如果可用)和RefPicList0[0](如果可用)。

以下是用于时间图片的导出的第二额外实例。用于时间图片的导出的第二额外实例的技术可类似于用于时间图片的导出的第一实例。然而,如果当前图片属于锚图片,那么不导出时间图片且NBDV导出过程可不检查时间相邻块(例如,NBDV过程始终不检查时间相邻块)。

以下描述NBDV导出和运动预测的额外实例。此实例技术可类似于上文针对3D-AVC中的NBDV导出描述的实例。然而,两个替代方案中的一者适用,假定NBDV过程的输出是视差向量(DV),其由块的视差运动向量(DMV)设定:

·DV[1]设定成0;

·DV[1]设定成DMV[1]。

此处,假定已经针对整个MB调用NBDV导出过程。并且,类似于如上文关于基于NBDV的运动向量预测所描述,DV用以置换从深度转换的视差向量,且其进一步以与各种帧间预测模式相同的方式使用。

以下是用于以视图间预测中的D-MVP过程进行NBDV导出的另一实例的伪码。

J.8.3 3DVC帧间预测、视图间预测、视图合成预测以及自适应明度补偿

与上文相对于以视图间预测中的D-MVP过程进行的NBDV的第一实例所述相同。

J.8.3.1.8.1用于中值明度运动向量预测中的视图间运动向量的修改过程

假设refViewId为depthPic的view_id值。

以下有序步骤适用:

3.如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))(J-8-XX)

if(depthPic[dbx1+i,dby1+j]>maxDepth)

maxDepth=depthPic[dbx1+i,dby1+j]

4.如下指定变量mv:

srcIndex=ViewIdTo3DVAcquisitionParamIndex(view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(refViewId)

mv[0]=Disparity(maxDepth,srcIndex,refIndex)

mv[1]=0

mv[0]=DV[0]

mv[1]=DV[1]

以下是用于以时间预测中的D-MVP过程进行NBDV的另一实例的伪码。

J.8.3 3DVC帧间预测、视图间预测、视图合成预测以及自适应明度补偿

与以时间预测中的D-MVP过程进行NBDV的第一实例中描述相同。

J.8.3.1.9用于中值明度时间运动向量预测的基于深度的导出过程

与以时间预测中的D-MVP过程进行NBDV的第一实例中描述相同。

J.8.3.1.9.1用于视差向量和视图间参考的导出过程

对此过程的输入是深度参考视图分量depthPic、分区的左上样本(dbx1,dby1)的位置以及listSuffixFlag。

此过程的输出是图片InterViewPic、偏移向量dv以及变量InterViewAvailable将变量InterViewAvailable设定成等于0。

以下适用于导出视图间参考图片或仅视图间参考图片InterViewPic,其中当listFuffixFlag是1时X设定成1或否则为0:

当InterViewAvailable等于1时,以下步骤按次序适用。

1.如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))

if(depthPic[dbx1+i,dby1+j]>maxDepth)maxDepth=depthPic[dbx1+i,dby1+j]

2.如下指定变量dv:

currIndex=ViewIdTo3DVAcquisitionParamIndex(当前视图的view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(InterViewPic的view_id)

dv[0]=Disparity(maxDepth,currIndex,refIndex)

dv[1]=0

dv[0]=DV[0]

dv[1]=DV[1]

以下是用于以视图间运动预测的NBDV的额外实例的伪码。

J.8.3 3DVC帧间预测、视图间预测、视图合成预测以及自适应明度补偿

与上述以视图间运动预测的NBDV的第一实例中描述相同。

J.8.3.1.4用于视差向量和视图间参考的导出过程

如果DvAvailable[0]+DvAvailable[1]+DvAvailable[2]等于1,那么以下适用:

–dv[0]=mvCand[i][0]

–dv[1]=mvCand[i][1]

–否则,以下步骤按次序适用:

如下指定变量maxDepth:

maxDepth=INT_MIN

for(j=0;j<partHeight;j+=(partHeight-1))

for(i=0;i<partWidth;i+=(partWidth-1))

if(depthPic[dbx1+i,dby1+j]>maxDepth)

maxDepth=depthPic[dbx1+i,dby1+j]

–如下指定变量dispVector:

currIndex=ViewIdTo3DVAcquisitionParamIndex(当前视图的view_id)

refIndex=ViewIdTo3DVAcquisitionParamIndex(InterViewPic的view_id)

dispVector[0]=Disparity(maxDepth,currIndex,refIndex)

dispVector[1]=0

–如下设定dispVector:

dispVector[0]=DV[0]

dispVector[1]=DV[1]

图7是说明根据本发明中描述的技术的编码的实例操作的流程图。视频数据存储器40可存储基础视图和相依视图。视频编码器20的一或多个处理器可在3D-AVC顺应视频译码过程中对相依视图的纹理视图分量进行编码(100)。视频编码器20的所述一或多个处理器可在对纹理视图分量进行编码之后对对应于纹理视图分量的深度视图分量进行编码(102)。所述技术允许在深度视图分量之前对纹理视图分量进行编码,因为用于纹理视图分量中的块的视差向量导出并不需要深度视图分量。视频编码器20的所述一或多个处理器可产生包含经编码纹理视图分量和经编码深度视图分量的具有相依视图的纹理优先译码的经译码位流用于输出。

图8是说明根据本发明中描述的技术的解码的实例操作的流程图。视频解码器30的一或多个处理器可在3D-AVC顺应视频译码过程中接收以相依视图的纹理优先译码产生的经译码位流(106)。举例来说,视频数据存储器69可存储视频解码器30的所述一或多个处理器用来对包含包括纹理视图分量和深度视图分量的基础和相依视图的3D-AVC顺应视频进行解码的信息。

视频解码器30的所述一或多个处理器可对相依视图的纹理视图分量进行解码(108)。视频解码器30的所述一或多个处理器可在对纹理视图分量进行解码之后对对应于纹理视图分量的深度视图分量进行解码(110)。

图9是说明根据本发明中描述的技术的视差向量导出和帧间预测译码的实例操作的流程图。出于说明的目的,以视频译码器描述图9中说明的实例。视频译码器的一个实例是视频编码器20且视频译码器的另一实例是视频解码器30。因此,视频编码器20和视频解码器30可经配置以实施图9中描述的实例技术。

如所说明,视频译码器可评估相邻块的运动信息以确定相邻块是否是以参考视图间参考图片的视差运动向量经视图间预测的(112)。视频译码器可基于经视图间预测的相邻块的视差运动向量而导出视差向量(114)。

举例来说,所述一或多个相邻块包含时间相邻块。此时间相邻块可在两个时间图片候选的时间图片中。为了确定所述两个时间图片候选,视频译码器可选择第一时间图片和第二时间图片,所述第一时间图片和第二时间图片可为在相应参考图片列表的第一条目中识别的图片。

在一些实例中,视频译码器可评估仅具有参考两个参考图片列表中的一者(例如,参考RefPicList0)的运动向量的相邻块的运动信息。如果相邻块的运动向量参考另一参考图片列表,那么视频译码器可不评估运动信息。换句话说,视频译码器可避免评估具有参考另一参考图片列表(RefPicList1)的运动向量的相邻块的运动信息。以此方式,即使存在视差运动向量,如果所述视差运动向量参考RefPicList1(即,RefPicList1中的视图间参考图片),那么此视差运动向量也不可用以导出当前宏块的视差向量。

在用于正常帧间预测模式的视图间运动向量预测的本发明中描述的技术中,如果参考索引对应于视图间参考图片且用于运动向量预测的相邻块不是以视差运动向量帧间预测,那么视频译码器可将导出的视差向量指派给未经视图间预测的相邻块(116)。视频译码器可能够在到参考图片列表中的参考索引识别视图间参考图片的情况下确定当前块是否将经视图间预测。

在图9中说明的实例中,视频译码器可利用中值滤波确定运动向量预测符,其中所述中值滤波利用作为视差运动向量指派给未经视图间预测的相邻块的视差向量(118)。视频译码器可基于运动向量预测符对当前块进行帧间预测译码(120)。举例来说,视频译码器可基于运动向量预测符以及运动向量预测符与当前块的实际运动向量之间的差来确定当前块的运动向量。视频译码器可随后从用于帧间预测译码的当前块的运动向量识别预测符块。

图10是说明根据本发明中描述的技术的视差向量导出和帧间预测译码的另一实例操作的流程图。出于说明的目的,以视频译码器描述图10中说明的实例。视频译码器的一个实例是视频编码器20且视频译码器的另一实例是视频解码器30。因此,视频编码器20和视频解码器30可经配置以实施图10中描述的实例技术。

如图10中所说明,视频译码器可评估相邻块的运动信息以确定相邻块是否是经视图间预测的(122)且基于经视图间预测的相邻块的视差运动向量而导出视差向量(124),类似于以上相对于图9描述。在图10中的实例中,如果参考索引对应于视图间参考图片,那么视频译码器利用导出的视差向量作为运动向量预测符(126)。在此实例中,视频译码器可不需要使用中值滤波来确定运动向量预测符。视频译码器可基于运动向量预测符对当前块进行帧间预测译码,类似于上文相对于图9的帧间预测译码(128)。

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

所属领域的技术人员将认识到,结合本文揭示的方法、系统和设备描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、由处理器执行的计算机软件,或两者的组合。为清楚说明硬件与软件的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解译为引起对本发明的范围的偏离。

此外,本文揭示的实例可用电子装置或电路实施或执行,所述电子装置或电路例如通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或经设计以执行本文中所描述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。通用处理器可为微处理器,但在替代例中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此类配置。

结合本文所揭示的实例描述的方法或算法的步骤可直接以硬件、以由处理器执行的软件模块或以所述两者的组合来体现。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸式磁盘、CD-ROM,或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在ASIC中。ASIC可驻留于用户终端中。在替代例中,处理器及存储媒体可作为离散组件驻留在用户终端中。

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

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