Processing

Please wait...

PATENTSCOPE will be unavailable a few hours for maintenance reason on Tuesday 27.07.2021 at 12:00 PM CEST
Settings

Settings

Goto Application

1. CN106797477 - 用于解码及编码视频数据的方法和设备

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
用于解码及编码视频数据的方法和设备


本申请案主张2014年10月14日申请的第62/063,857号美国临时申请案、2014年10月17日申请的第62/065,384号美国临时申请案、2014年10月18日申请的第62/065,643号美国临时申请案、2015年1月29日申请的第62/109,323号美国临时申请案以及2015年1月30日申请的第62/110,261号美国临时申请案的权益,以上申请案中的每一者的整个内容以引用的方式并入本文中。
技术领域
本发明涉及视频译码,并且更确切地说涉及视频块的基于其它视频块的预测。
背景技术
数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频压缩技术,例如,在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)定义的标准、目前正在开发的高效视频译码(HEVC)标准以及此类标准的扩展中所描述的视频压缩技术。视频装置可通过实施此类视频压缩技术来更有效率地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可分割成若干视频块,所述视频块也可被称作树块、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测来编码图片的经帧内译码(I)切片中的视频块。图片的经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
空间或时间预测产生待译码块的预测性块。残差数据表示待译码原始块与预测性块之间的像素差。经帧间译码块是根据指向形成预测性块的参考样本块的运动向量和指示经译码块与预测性块之间的差的残差数据来编码的。经帧内译码块是根据帧内译码模式和残差数据来编码的。为了进一步压缩,可将残差数据从像素域变换到变换域,从而产生残差变换系数,可接着量化所述残差变换系数。可扫描一开始按二维阵列排列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码来实现更多压缩。
发明内容
一般来说本发明描述用于视频译码中的运动向量和块向量预测的技术。本发明的技术可用于相对于另一视频数据帧中的预测性块来译码的视频数据块,且用于相对于同一视频数据帧中的预测性块来译码的视频数据块(例如根据块内复制模式来译码的块)。
在一个实例中,本发明描述一种解码视频数据的方法,其包括:接收第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于所述第一视频数据帧中的第一预测性块来编码的,所述第一预测性块由块向量识别;以及使用运动向量预测过程和与用于解码运动向量相同的运动向量候选者列表来解码所述块向量,其中所述运动向量用以为使用帧间译码来译码的第二视频数据块识别帧间预测性块。
在另一实例中,本发明描述一种经配置以解码视频数据的设备,所述设备包括:存储器,其经配置以存储视频数据;以及视频解码器,其经配置以:接收第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于所述第一视频数据帧中的第一预测性块来编码的,所述第一预测性块由块向量识别;且使用运动向量预测过程和与用于解码运动向量相同的运动向量候选者列表来解码所述,其中所述运动向量用以为使用帧间译码来译码的第二视频数据块识别帧间预测性块。
在另一实例中,本发明描述一种编码视频数据的方法,所述方法包括:编码第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于所述第一视频数据帧中的第一预测性块来编码的,所述第一预测性块由块向量识别;以及使用运动向量预测过程和与用于解码运动向量相同的运动向量候选者列表来编码所述块向量,其中所述运动向量用以为使用帧间译码来译码的第二视频数据块识别帧间预测性块。
在另一实例中,本发明描述一种经配置以解码视频数据的设备,所述设备包括:用于接收第一视频数据帧中的第一视频数据块的装置,所述第一视频数据块是相对于所述第一视频数据帧中的第一预测性块来编码,所述第一预测性块由块向量识别;以及用于使用运动向量预测过程和与用于解码运动向量相同的运动向量候选者列表来解码所述块向量的装置,其中所述运动向量用以为使用帧间译码来译码的第二视频数据块识别帧间预测性块。
附图和以下描述中陈述一或多个实例的细节。其它特征、目标和优点将从所述描述、图式以及所附权利要求书显而易见。
附图说明
图1是说明可利用本发明中所描述的技术的实例视频编码和解码系统的框图。
图2是说明可实施本发明中描述的技术的实例视频编码器的框图。
图3是说明可实施本发明中所描述的技术的实例视频解码器的框图。
图4示出用于合并模式和AMVP模式的空间相邻运动向量候选者的实例。
图5示出块内复制(IBC)模式的概念说明。
图6是示出根据本发明的技术的实例视频编码方法的流程图。
图7是示出根据本发明的技术的实例视频解码方法的流程图。
具体实施方式
包含最近开发的高效视频译码(HEVC)标准在内的各种视频译码标准包含用于视频块的预测性译码模式,其中基于已经译码的视频数据块来预测当前正译码的块。在帧内预测模式中,基于与当前块在相同的图片中的一或多个先前经译码相邻块来预测当前块,而在帧间预测模式中,基于不同图片中的已经译码块来预测当前块。在帧间预测模式中,确定将用作预测性块的先前经译码帧的块的过程有时被称作运动估计。运动估计通常由视频编码器执行,且识别和检索预测性块的过程有时被称作运动补偿,其由视频编码器和视频解码器两者执行。先前经译码帧中的预测性块可由运动向量识别。运动向量可指示预测性块相对于当前经译码块中的点(例如所述当前块的左上角)的位置。
视频编码器通常通过使用多种译码情形来译码视频数据且识别产生合意的速率失真折衷的译码情形,来确定如何译码视频数据序列。当为特定视频块测试帧内预测译码情形时,视频编码器通常测试相邻像素行(例如正译码块的紧接上方的像素行),且测试相邻像素列(例如正译码块的紧接左侧的像素列)。相比之下,当测试帧间预测情形时,视频编码器通常在大得多的搜索区域中识别候选预测性块,其中所述搜索区域对应于先前经译码的视频数据帧中的任何位置中的视频块。
对于某些类型的视频图像,例如包含文本、符号或重复图案的视频图像,可通过使用帧内运动补偿(IMC)模式,相对于帧内预测和帧间预测实现译码增益。IMC模式有时还被称作块内复制(IBC)模式。在本发明中,术语IMC模式和IBC模式是可互换的。在IBC模式中,视频编码器在与正译码的块相同的帧或图片中检索预测性块,如在帧内预测模式中,但视频编码器检索较宽的搜索区域,而不仅是相邻行和列。较宽的搜索区域可包括所述帧的在译码所述当前视频数据块之前已译码的任何区域。
在IBC中模式,视频编码器可确定偏移向量,有时也称为运动向量或块向量,用于识别与正预测的块相同的帧或图片内的预测性块。所述块向量包含例如x分量和y分量,其中所述x分量识别正预测的视频块与所述预测性块之间的水平位移,且其中所述y分量识别正预测的视频块与所述预测性块之间的垂直位移。视频编码器在经编码位流中发信号通知所述所确定的块向量,使得视频解码器在解码经编码位流时,可识别视频编码器所选定的所述预测性块。一般来说,IMC和/或IBC译码模式是其中视频数据块是从来自与所述当前视频数据块相同的帧的预测性视频块预测,且其中所述预测性视频数据块由偏移向量(例如块向量或运动向量)识别的任何译码模式。
本发明介绍用以高效地技术统一IBC模式和帧间预测模式的技术。所提出的技术主要是针对但不限于运动/块向量预测技术,包含运动/块向量候选者列表导出。本发明的技术可适用于与可使用帧间预测模式和IBC模式的任何视频译码技术一起使用,包含使用屏幕内容译码的视频译码技术,包含可能的高位深度(例如超过8位)和不同色度取样格式(例如4:4:4、4:2:2、4:2:0、4:0:0等)的支持。
图1是说明可利用本发明的技术的实例视频译码系统10的框图。如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本发明中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码系统10的视频编码器20和视频解码器30表示可经配置以根据本发明中所描述的各种实例来执行用于运动向量和块向量预测的技术的裝置的实例。
如图1中所示,视频译码系统10包含源装置12和目的地装置14。源装置12产生经编码视频数据。因此,源装置12可被称为视频编码装置或视频编码设备。目的地装置14可对由源装置12所产生的经编码的视频数据进行解码。因此,目的地装置14可被称为视频解码装置或视频解码设备。源装置12以及目的地装置14可为视频译码装置或视频译码设备的实例。源装置12、目的地装置14或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于RAM、ROM、EEPROM、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置12和目的地装置14可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置14可经由链路16从源装置12接收经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的一或多个媒体或装置。在一个实例中,链路16可包括使得源装置12能够实时将经编码视频数据直接发射到目的地装置14的一或多个通信媒体。在此实例中,源装置12可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到目的地装置14。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置12到目的地装置14的通信的其它设备。
在另一实例中,可将经编码数据从输出接口22输出到存储装置17。类似地,可通过输入接口28从存储装置17存取经编码数据。存储装置17可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置17可对应于文件服务器或可保持由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置17存取所存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的地装置14的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接式存储(NAS)装置或本地磁盘驱动器。目的地装置14可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置17的传输可为流式传输、下载传输或两者的组合。
本发明的用于视频译码中的运动向量和块向量预测的技术不限于无线应用程序或设置。所述技术可应用于视频译码以支持多种多媒体应用,例如空中电视广播、有线电视发射、卫星电视发射、串流视频发射(例如,经由因特网)、用于存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
图1中所说明的视频译码系统10仅为实例,并且本发明的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些实例中,输出接口22可包含调节器/解调器(调制解调器)和/或发射器。视频源18可包含视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。
视频编码器20可对来自视频源18的视频数据进行编码。在一些实例中,源装置12经由输出接口22将经编码视频数据直接发射到目的地装置14。在其它实例中,经编码视频数据还可存储到存储装置17上,供目的地装置14以后存取来用于解码和/或播放。
在图1的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些实例中,输入接口28包含接收器和/或调制解调器。输入接口28可经由链路16和/或从存储装置17接收经编码视频数据。显示装置32可与目的地装置14集成或可在目的地装置14外部。一般来说,显示装置32显示经解码视频数据。显示装置32可包括多种显示装置,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
尽管图1中未图示,但在一些方面,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可实施为例如以下各项的多种合适电路中的任一者:一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施所述技术,那么装置可将用于软件的指令存储在合适的非暂时性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本发明的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本发明可大体上将视频编码器20称为将某些信息“发信号通知”或“发射”到例如视频解码器30的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
视频编码器20和视频解码器30可根据例如高效视频译码(HEVC)等视频压缩标准来操作,并且可符合HEVC测试模型(HM)。被称作“HEVC工作草案10”或“HEVC WD10”的HEVC标准的工作草案描述于布洛斯(Bross)等人的“编者提出的对HEVC版本1的校正(Editors'proposed corrections to HEVC version 1)”中,ITU-T SG16WP3和ISO/IECJTC1/SC29/WG11的视频译码联合合作小组(JCT-VC),2013年4月,韩国仁川第13次会议。本发明中描述的技术也可根据当前正开发的HEVC标准的扩展来操作。或者或另外,视频编码器20和视频解码器30可根据其它专有或业界标准来操作,所述标准例如是ITU-T H.264标准(或者被称作MPEG-4第10部分,高级视频译码(AVC)),或此类标准的扩展。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-TH.263、ISO/IEC MPEG-4视觉和ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。
在一个实例中,视频解码器30可经配置以:接收第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于第二视频数据帧中的第一预测性块来编码的,所述第一预测性块由运动向量识别;接收第一视频数据帧中的第二视频数据块,所述第二视频数据块是相对于第一视频数据帧中的第二预测性块来编码的,所述第二预测性块由块向量识别;使用运动向量预测过程和运动向量候选者列表来解码所述运动向量;且使用所述运动向量预测过程和与用于解码所述运动向量相同的运动向量候选者列表来解码所述块向量。
在另一实例中,视频编码器20可经配置以:相对于第二视频数据帧中的第一预测性块来编码第一视频数据帧中的第一视频数据块,所述第一预测性块由运动向量识别;相对于第一视频数据帧中的第二预测性块来编码第一视频数据帧中的第二视频数据块,所述第二预测性块由块向量识别;使用运动向量预测过程和运动向量候选者列表来编码所述运动向量;且使用所述运动向量预测过程和与用于解码所述运动向量相同的运动向量候选者列表来编码所述块向量。
近来,新的视频译码标准(即高效视频译码(HEVC))的设计已由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的视频译码联合合作小组(JCT-VC)定案。HEVC草案说明书的一个版本(且下文中称为HEVC WD)可从http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v2.zip获得。对HEVC的范围扩展(即HEVC RExt)也正由JCT-VC开发。范围扩展的最新工作草案(WD)(在下文中被称作“RExt WD7”)可从http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v4.zip获得。
JCTVC-Q1003中所陈述的HEVC规范文本常常被称作HEVC版本1。范围扩展规范可变成HEVC的版本2。然而,在很大程度上,直到关注所提出的技术,例如,运动向量预测,HEVC版本1和范围扩展规范在技术上是相似的。因此,每当本发明涉及基于HEVC版本1的技术时,相同技术也可适用于范围扩展规范,且每当此技术涉及再用任何HEVC版本1模块时,本发明还涉及再用HEVC范围扩展模块(例如具有相同子条款)。
近年来,开始研究用于带有运动的例如文本和图形的屏幕内容材料的新译码工具,并且研究人员已经提出了改进屏幕内容的译码效率的技术。因为有迹象表明可通过用新颖的专用译码工具来开发屏幕内容的特性来获得译码效率的显著改进,所以正发布征求计划书(CfP),其目标是可能开发高效视频译码(HEVC)标准的进一步扩展,包含用于屏幕内容译码(SCC)的特定工具。邀请公司和组织来响应于此征求而提交建议。此CfP的使用情况和要求描述于MPEG文件N14174中。在第17次JCT-VC会议期间,建立SCC测试模型(SCM)。SCC的最近工作草案(WD)可从http://phenix.int-evry.fr/jct/doc_end_user/documents/18_Sapporo/wg11/JCTVC-R1005-v3.zip获得。
JCT-VC开发了HEVC标准。HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的演进模型。HM假定视频译码装置根据例如ITU-T H.264/AVC相对于现有装置的几项额外能力。举例来说,虽然H.264提供九种帧内预测编码模式,但HM可提供多达三十三种帧内预测编码模式。
一般来说,HM的工作模型描述视频帧或图片可分成包含亮度和色度样本两者的一连串树块或最大译码单元(LCU)。树块具有与H.264标准的宏块类似的目的。切片包含按译码次序的若干连续树块。视频帧或图片可被分割成一或多个切片。每一树块可根据四叉树分裂成译码单元(CU)。举例来说,作为四叉树的根节点的树块可分裂成四个子节点,且每一子节点又可为父节点且可分裂成另外四个子节点。作为四叉树的叶节点的最后的未经分裂的子节点包括译码节点,即经译码视频块。与经译码位流相关联的语法数据可定义树块可分裂的最大次数,且还可定义译码节点的最小大小。
将CU定义为HEVC中的基本译码单元。在HEVC中,首先将帧分成若干正方形单元,被称作CTU(译码树单元)。令CTU大小为2N×2N。每一CTU可分成4个N×N CU,且每一CU可进一步分成4个(N/2)x(N/2)单元。块分裂可以相同方式继续,直到其达到预定义的最大分裂等级或所允许的最小CU大小为止。CTU的大小、CTU进一步分裂成CU的等级以及CU的最小大小是在编码配置中定义的,且将发送到视频解码器30或可为视频编码器20和视频解码器30两者已知。
CU包含译码节点和与所述译码节点相关联的预测单元(PU)和变换单元(TU)。CU的大小对应于译码节点的大小并且形状必须是正方形。CU的大小范围可从8×8像素到具有64×64像素或更大像素的最大值的树块的大小。每一CU可含有一或多个PU和一或多个TU。举例来说,与CU相关联的语法数据可描述将CU分割成一或多个PU。分割模式可在CU被跳过或经直接模式编码、帧内预测模式编码或帧间预测模式编码之间有区别。PU可分割成非正方形形状。举例来说,与CU相关联的语法数据还可描述CU根据四叉树到一或多个TU的分割。TU的形状可为正方形或非正方形。
HEVC标准允许根据TU的变换,TU可针对不同CU而有所不同。TU的大小通常是基于针对经分割LCU定义的给定CU内的PU的大小而确定,但是情况可能并不总是如此。TU通常与PU大小相同或小于PU。在一些实例中,可使用被称为“残差四叉树”(RQT)的四叉树结构将对应于CU的残差样本细分成较小单元。RQT的叶节点可被称为变换单元(TU)。可变换与TU相关联的像素差值来产生变换系数,所述变换系数可经量化。
一般来说,PU包含与预测过程有关的数据。举例来说,当PU经帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包含定义PU的运动向量的数据。定义PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考图片,和/或运动向量的参考图片列表(例如,列表0、列表1或列表C)。
一般来说,TU用于变换和量化过程。具有一或多个PU的给定CU还可包含一或多个变换单元(TU)。在预测之后,视频编码器20可计算对应于PU的残差值。残差值包括像素差值,所述像素差值可变换成变换系数、经量化且使用TU进行扫描以产生串行化变换系数以用于熵译码。本发明通常使用术语“视频块”来指代CU的译码节点。在一些具体情况下,本发明还可使用术语“视频块”来指代树块(即,LCU)或包含译码节点以及PU和TU的CU。
视频序列通常包含一系列视频帧或图片。图片群组(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”后接“上(Up)”、“下(Down)”、“左(Left)”或“右(Right)”的指示来指示。因此,例如,“2NxnU”是指经水平分割的2Nx2N CU,其中顶部为2Nx0.5N PU,而底部为2Nx1.5NPU。
在本发明中,“N×N”与“N乘N”可互换使用以指依据垂直尺寸和水平尺寸来说的视频块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16x16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样,NxN块总体上在垂直方向上具有N个像素,并且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成行和列。此外,块未必需要在水平方向上与在竖直方向上具有相同数目个像素。举例来说,块可包括NxM个像素,其中M未必等于N。
因此,根据HEVC,CU可包含一或多个预测单元(PU)和/或一或多个变换单元(TU)。本发明还使用术语“块”、“分区”或“部分”来指CU、PU或TU中的任一者。通常,“部分”可指视频帧的任何子集。另外,本发明通常使用术语“视频块”来指CU的译码节点。在一些具体情况下,本发明还可使用术语“视频块”来指代树块(即,LCU)或包含译码节点以及PU和TU的CU。因此,视频块可对应于CU内的译码节点,并且视频块可具有固定或变化的大小,并且可根据指定译码标准而大小不同。
还可被称作色度格式的视频取样格式可定义相对于CU中所包含的亮度样本的数目来说的CU中所包含的色度样本的数目。取决于色度分量的视频取样格式,U和V分量的大小(依据样本的数目)可与Y分量的大小相同或不同。在HEVC标准中,将语法元素chroma_format_idc的值定义为相对于亮度分量指示色度分量的不同取样格式。在HEVC中,在序列参数集(SPS)中发信号通知chroma_format_idc语法元素。表1说明chroma_format_idc的值与相关联的色度格式之间的关系。
chroma_format_idc 色度格式 子宽度C 子高度C
0 单色 - -
1 4:2:0 2 2
2 4:2:2 2 1
3 4:4:4 1 1
表1:HEVC中定义的不同色度格式
在表1中,变量SubWidthC和SubHeightC可用以指示用于亮度分量的样本的数目与用于每一色度分量的样本的数目之间的水平和垂直取样速率比。在表1中所描述的色度格式中,两个色度分量具有相同的取样速率。因此,在4:2:0取样中,两个色度阵列中的每一者具有亮度阵列的高度的一半和宽度的一半,而在4:2:2取样中,两个色度阵列中的每一者具有所述亮度阵列的相同高度和所述宽度的一半。在4:4:4取样中,两个色度阵列中的每一者可具有与亮度阵列相同的高度和宽度,或在一些情况下,三个色彩平面可全部分别处理为单色经取样图片。
在表1的实例中,对于4:2:0格式,用于亮度分量的取样速率是用于水平和垂直方向两者的色度分量的取样速率的两倍。因此,对于根据4:2:0格式来格式化的译码单元,用于亮度分量的样本阵列的宽度和高度是用于色度分量的每一样本阵列的宽度和高度的两倍。类似地,对于根据4:2:2格式来格式化的译码单元,用于亮度分量的样本阵列的宽度是用于每一色度分量的样本阵列的宽度的两倍,但用于亮度分量的样本阵列的高度等于用于每一色度分量的样本阵列的高度。对于根据4:4:4格式来格式化的译码单元,用于亮度分量的样本阵列具有与用于每一色度分量的样本阵列相同的宽度和高度。
应注意,除YUV色彩空间之外,还可根据RGB空间色彩来定义视频数据。以此方式,本文中所描述的色度格式可适用于YUV或RGB色彩空间。通常对RGB色度格式进行取样,使得红色样本的数目、绿色样本的数目和蓝色样本的数目相等。因此,如本文所使用的术语“4:4:4色度格式”可指YUV色彩空间或RGB色彩空间,其中对于所有色彩分量,样本的数目相等。
在使用CU的PU的帧内预测性或帧间预测性译码之后,视频编码器20可计算CU的TU的残差数据。PU可包括空间域(也被称作像素域)中的像素数据,且在将变换应用到残差视频数据之后,TU可包括变换域中的系数,所述变换例如离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。所述残差数据可对应于未经编码图片的像素与对应于PU的预测值之间的像素差。视频编码器20可形成包含用于CU的残差数据的TU,并且接着变换所述TU以产生用于CU的变换系数。
在任何用于产生变换系数的变换之后,视频编码器20可执行变换系数的量化。量化大体上是指对变换系数进行量化以可能减少用以表示所述系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。举例来说,n位值可在量化期间被下舍入到m位值,其中n大于m。
在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数以产生可被熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可对所述一维向量进行熵编码,例如根据上下文自适应二进制算术编码(CABAC)或另一熵编码方法。视频编码器20也可对与经编码视频数据相关联的语法元素进行熵编码以供视频解码器30在解码视频数据时使用。
为了执行CABAC,视频编码器20可向待发射的符号指派上下文模型内的上下文。上下文可涉及(例如)符号的相邻值是否为非零。
图2是说明可实施本发明中描述的技术的实例视频编码器20的框图。视频编码器20可经配置以将视频输出到后处理实体27。后处理实体27既定表示可处理来自视频编码器20的经编码视频数据的视频实体的实例,例如媒体感知网络元件(MANE)或拼接/编辑装置。在一些情况下,后处理实体27可为网络实体的实例。在一些视频编码系统中,后处理实体27和视频编码器20可为单独装置的若干部分,而在其它情况下,相对于后处理实体27所描述的功能性可由包括视频编码器20的相同装置执行。在某一实例中,后处理实体27是图1的存储装置17的实例。
视频编码器20可根据本发明的技术执行视频切片内的视频块的帧内、帧间和IBC译码。帧内译码依靠空间预测来减小或去除给定视频帧或图片内的视频的空间冗余。帧间译码依靠时间预测来减少或去除视频序列的相邻帧或图片内的视频中的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指若干基于时间的压缩模式中的任一者。如将在下文更详细地描述,IBC译码模式可从视频数据帧去除空间冗余,但不同于传统帧内模式,IBC译码代码可用于在与当前经译码块相同的帧内的较大搜索区域中定位预测性块,并用块向量来指代所述预测性块,而不是依靠帧内预测译码模式。
在图2的实例中,视频编码器20包含视频数据存储器33、分割单元35、预测处理单元41、滤波器单元63、经解码图片缓冲器(DPB)64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包含运动估计单元42、运动补偿单元44和帧内预测处理单元46。为了视频块重构,视频编码器20还包含逆量化单元58、逆变换处理单元60和求和器62。滤波器单元63既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管在图2中将滤波器单元63示出为环路内滤波器,但在其它配置中,可将滤波器单元63实施为环路后滤波器。
视频数据存储器33可存储待由视频编码器20的组件编码的视频数据。可(例如)从视频源18获得存储在视频数据存储器33中的视频数据。DPB 64可为参考图片存储器,其存储用于由视频编码器20(例如)在帧内、帧间或IBC译码模式中对视频数据进行编码的参考视频数据。视频数据存储器33和DPB 64可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。视频数据存储器33和DPB 64可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器33可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,视频编码器20接收视频数据,并将所述视频数据存储在视频数据存储器33中。分割单元35将所述数据分割成若干视频块。此分割还可包含分割成切片、瓦片或其它较大单元,以及例如根据LCU和CU的四叉树结构的视频块分割。视频编码器20通常说明编码待编码的视频切片内的视频块的组件。所述切片可分成多个视频块(并且可能分成被称作瓦片的视频块集合)。预测处理单元41可基于错误结果(例如,译码速率和失真等级)选择用于当前视频块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者、多个帧间译码模式中的一者或多个IBC译码模式中的一者。预测处理单元41可将所得经帧内、帧间或IBC译码的块提供给求和器50以产生残差块数据,且提供给求和器62以重构适用作参考图片的经编码块。
预测处理单元41内的帧内预测处理单元46可相对于与待译码当前块在相同帧或切片中的一或多个相邻块执行当前视频块的帧内预测性译码,以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44可相对于一或多个参考图片中的一或多个预测性块执行当前视频块的帧间预测性译码以提供时间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44还可相对于在同一图片中的一或多个预测性块执行当前视频块的IBC译码,以提供空间压缩。
在这点上,IBC和帧间预测译码可被认为是统一的。就是说,帧间预测和IBC译码两者从另一先前经译码块预测当前块。先前经译码块的位置可由运动向量或块向量识别。一般来说,运动向量可用于识别与当前经译码块的帧不同的帧中的先前经译码块(例如,如在帧间预测中)。块向量可用于识别与当前经译码块的帧相同的帧中的先前经译码块(例如,如在IBC模式中)。应理解,块向量还可被称作运动向量,即使块向量并不涉及帧中的特定对象的任何运动。
为了使用运动估计单元42和运动估计单元44来执行IBC,可将当前帧(例如当前经译码块的帧)的参考帧索引添加到参考图片列表。以此方式,运动估计单元42可搜索与当前经译码块不同的帧以及与当前经译码块相同的帧中的预测性块。如果预测性块具有与当前经译码块相同的参考帧索引,那么视频编码器20和/或视频解码器30可被认为具有使用IBC模式来译码的当前块。以此方式,视频编码器20无需发信号通知指示IBC模式的单独语法元素,而是可从所述预测性块的参考帧索引推断IBC模式。
运动估计单元42可经配置以根据视频序列的预定样式,为视频切片确定帧间预测模式或IBC模式。预定样式可将序列中的视频切片指定为P切片或B切片。运动估计单元42和运动补偿单元44可高度集成,但出于概念的目的分别加以说明。由运动估计单元42执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块的PU相对于参考图片内的预测性块的移位。在IBC译码的情况下,运动向量,其在IBC中可被称为块向量,可指示当前视频帧或图片内的视频块的PU相对于当前视频帧内的预测性块的位移。
预测性块是被发现在像素差方面与待译码视频块的PU密切匹配的块,所述像素差可由绝对差总和(SAD)、平方差总和(SSD)或其它差异度量来确定。在一些实例中,视频编码器20可计算存储在经解码图片缓冲器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精确度的运动向量。
运动估计单元42通过比较PU的位置与参考图片的预测性块的位置来计算用于经帧间译码切片中的视频块的PU的运动向量。参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),所述列表中的每一者识别存储在经解码图片缓冲器64中的一或多个参考图片。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。
根据本发明的一些技术,当使用IBC模式来译码视频块时,运动估计单元42可确定视频块的亮度分量的运动向量或块向量,且基于所述亮度分量的块向量来确定视频块的色度分量的块向量。在另一实例中,当使用IBC模式来译码视频块时,运动估计单元42可确定视频块的色度分量的运动向量或块向量,且基于色度分量的块向量来确定视频块的亮度分量的偏移向量。因此,视频编码器20可在位流中仅发信号通知一个块向量,从所述块向量可确定视频块的色度和亮度分量两者的块向量。
通过运动补偿单元44执行的运动补偿可涉及基于通过运动估计(可能执行对子像素精确度的内插)确定的运动/块向量获取或产生预测性块。内插滤波可从已知像素样本产生额外像素样本,从而潜在地增加可用于译码视频块的候选预测性块的数目。在接收到当前视频块的PU的运动向量后,运动补偿单元44可在参考图片列表中的一者中定位所述运动向量指向的预测性块。在IBC译码的情况下,块向量可指向正译码的图片。如上所提到,当前图片也可包含于参考图片列表中。视频编码器20通过从正译码的当前视频块的像素值减去预测性块的像素值来形成残差视频块,从而形成像素差值。像素差值形成用于所述块的残差数据,且可包含亮度和色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿单元44还可产生与视频块和视频切片相关联的语法元素以供视频解码器30在对视频切片的视频块解码时使用。
在一些实例中,预测处理单元41还可执行运动向量和/或块向量预测。就是说,不是发信号通知用以编码视频数据块的运动向量和/或块向量的全部,可相对于相邻块的运动向量和/或块向量来预测所述运动向量和/或块向量。如下文将更详细地论述,本发明描述用于帧间预测和IBC译码模式两者的运动向量和块向量预测的技术。
作为如上文所描述由运动估计单元42和运动补偿单元44执行的帧间预测和IBC的替代方案,帧内预测单元46可对当前块执行帧内预测。明确地说,帧内预测处理单元46可确定用来编码当前块的帧内预测模式。在一些实例中,帧内预测处理单元46可(例如)在单独编码遍次期间使用各种帧内预测模式来编码当前块,并且帧内预测处理单元46可从受测模式中选择适当帧内预测模式来使用。举例来说,帧内预测处理单元46可使用速率-失真分析来计算用于各种受测试的帧内预测模式的速率-失真值,并从受测试模式当中选择具有最佳速率-失真特性的帧内预测模式。速率失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(也就是说,位数目)。帧内预测处理单元46可从各种经编码块的失真和速率计算比率,以确定哪一帧内预测模式对于所述块展现最佳速率-失真值。
在任何情况下,在为块选择帧内预测模式之后,帧内预测处理单元46可将指示块的所选帧内预测模式的信息提供到熵编码单元56。熵编码单元56可根据本发明的技术来编码指示所选帧内预测模式的信息。视频编码器20可在所发射的位流中包含配置数据,其可包含以下各项:多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(还被称作码字映射表),各种块的编码上下文的定义,以及待用于所述上下文中的每一者的最有可能的帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。
在预测处理单元41经由帧间预测、帧内预测或IBC产生当前视频块的预测性块之后,视频编码器20通过从当前视频块减去所述预测性块来形成残差视频块。所述残差块中的残差视频数据可包含在一或多个TU中,并应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换处理单元52可将残差视频数据从像素值域转换到变换域,例如频域。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54量化所述变换系数以进一步减小位速率。量化过程可减少与系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化的程度。在一些实例中,量化单元54可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码单元56可执行扫描。
在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码方法或技术。在由熵编码单元56熵编码之后,可将经编码位流发射到视频解码器30,或经存档以供稍后发射或由视频解码器30检索。熵编码单元56还可对正译码的当前视频切片的运动向量和其它语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图片的参考块。运动补偿单元44可通过将残差块添加到参考图片列表中的一者内的参考图片中的一者的预测性块中来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于所重构的残差块以计算子整数像素值用于运动估计。内插滤波可从已知像素样本产生额外像素样本,从而潜在地增加可用于译码视频块的候选预测性块的数目。求和器62将经重构的残差块添加到由运动补偿单元44产生的运动补偿预测块,以产生参考块以用于存储在经解码图片缓冲器64中。参考块可由运动估计单元42和运动补偿单元44用作参考块以对后续视频帧或图片中的块进行帧间预测。
图3是说明可实施本发明中描述的技术的实例视频解码器30的框图。在图3的实例中,视频解码器30包含视频数据存储器78、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元91以及经解码图片缓冲器92。预测处理单元81包含运动补偿单元82和帧内预测处理单元84。在一些实例中,视频解码器30可执行大体上与相对于来自图2的视频编码器20描述的编码遍次互逆的解码遍次。
在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块和相关联语法元素的经编码视频位流。视频解码器30可从网络实体29接收视频数据,并将所述视频数据存储在视频数据存储器78中。视频数据存储器78可存储待由视频解码器30的组件解码的视频数据,例如经编码视频位流。存储在视频数据存储器78中的视频数据可(例如)从存储装置17、从例如相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器78可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。因此,尽管在图3中分别示出,但视频数据存储器78和DPB 92可由相同存储器装置或单独存储器装置提供。视频数据存储器78和DPB 92可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。在各种实例中,视频数据存储器78可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。
网络实体29可例如为服务器、MANE、视频编辑器/剪接器,或经配置以实施上文所描述的技术中的一或多者的其它此装置。网络实体29可包含或可不包含视频编码器,例如视频编码器20。在网络实体29将经编码视频位流发射到视频解码器30之前,网络实体29可实施本发明中描述的技术中的一些。在一些视频解码系统中,网络实体29和视频解码器30可为单独装置的部分,而在其它情况下,相对于网络实体29描述的功能性可由包括视频解码器30的相同装置执行。在一些情况下,网络实体29可为图1的存储装置17的实例。
视频解码器30的熵解码单元80对位流进行熵解码以产生经量化的系数、运动向量和其它语法元素。熵解码单元80将运动向量和其它语法元素转发到预测处理单元81。视频解码器30可接收在视频切片层级和/或视频块层级处的语法元素。
当视频切片被译码为经帧内译码(I)切片时,预测处理单元81的帧内预测处理单元84可基于发信号通知的帧内预测模式和来自当前帧或图片的先前经解码块的数据而产生当前视频切片的视频块的预测数据。当将视频帧译码为经帧间译码(即,B或P)切片时,或当块经IBC译码时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动向量和其它语法元素,产生当前视频切片的视频块的预测性块。对于帧间预测,可从参考图片列表中的一者内的参考图片中的一者产生预测性块。视频解码器30可基于存储在DPB 92中的参考图片,使用默认建构技术来建构参考帧列表,列表0和列表1。对于IBC译码,可从与正预测的块相同的图片产生预测性块。当前图片的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,并非发信号通知指示IBC模式用以译码特定块的特定语法元素,而是视频解码器30可经配置以从指向当前图片的参考帧索引推断IBC模式(例如所述当前块的预测性块是来自与所述当前块相同的图片)。
运动补偿单元82通过剖析运动向量和其它语法元素来确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息来产生用于正解码的当前视频块的预测性块。例如,运动补偿单元82使用一些接收到的语法元素确定用于对视频切片的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于切片的参考图片列表中的一或多者的构造信息、切片的每一经帧间编码的视频块的运动向量、切片的每一经帧间译码的视频块的帧间预测状态,以及用以对当前视频切片中的视频块进行解码的其它信息。
运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可使用如视频编码器20在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的经内插值。在此情况下,运动补偿单元82可根据接收到的语法元素来确定由视频编码器20使用的内插滤波器,并使用所述内插滤波器来产生预测性块。
在一些实例中,预测处理单元81还可执行运动向量和/或块向量预测。就是说,不是接收用以编码视频数据块的运动向量和/或块向量的全部,可相对于相邻块的运动向量和/或块向量来预测所述运动向量和/或块向量。如下文将更详细地论述,本发明描述用于帧间预测和IBC译码模式两者的运动向量和块向量预测的技术。
根据本发明的一些技术,当使用IBC模式来译码视频块时,运动补偿单元82可确定视频块的亮度分量的运动向量或块向量,且基于所述亮度分量的所述运动向量来确定视频块的色度分量运动向量。在另一实例中,当使用IBC模式来译码视频块时,运动补偿单元82可确定视频块的色度分量的运动向量或块向量,且基于色度分量的运动向量来确定视频块的亮度分量的运动向量。因此,视频解码器30可在位流中仅接收一个块向量,从所述块向量可确定视频块的色度和亮度分量两者的偏移向量。
当使用IBC模式来解码视频块时,运动补偿单元82可例如修改亮度分量的运动向量(被称作IBC模式的块偏移向量),以确定色度分量的块向量。运动补偿单元82可例如基于视频块的取样格式且基于所述块向量指向的子像素位置的精度,来修改亮度块的块向量的x分量和y分量中的一者或两者。举例来说,如果使用4:2:2取样格式来译码视频块,那么运动补偿单元82可仅修改亮度偏移向量的x分量,而不修改y分量,以确定色度分量的偏移向量。
在另一实例中,如果使用4:2:0取样格式来译码视频块,那么运动补偿单元82可修改亮度块向量的x分量和y分量中的任一者或两者,以确定色度分量的块向量。如果当用于定位色度预测性块时,亮度块向量指向无色度样本的位置(例如在包含所述当前块的当前图片的色度样本中的子像素位置处),那么运动补偿单元82可仅修改亮度块向量。如果亮度块向量在用以定位色度预测性块时指向其中存在色度样本的位置,那么运动补偿单元82可不修改亮度块向量。
运动补偿单元82可修改亮度块向量,以产生经修改运动向量,还被称作经修改块向量。运动补偿单元82可修改亮度块向量,其在用以定位色度预测性块时,指向子像素位置,使得用于色度块的经修改块向量指向较低分辨率子像素位置或指向整数像素位置。作为一个实例,可修改指向1/8像素位置的亮度偏移向量,以指向1/4像素位置,可修改指向1/4像素位置的亮度块向量以指向1/2像素位置,等。在其它实例中,运动补偿单元82可修改亮度块向量,使得经修改的块向量总是指向用于定位色度参考块的整数像素位置。修改亮度块向量以指向较低分辨率子像素位置或指向整数像素位置可消除对一些内插滤波的需要,和/或降低任何所需的内插滤波的复杂性。
逆量化单元86将在位流中提供且由熵解码单元80解码的经量化变换系数逆量化,即去量化。逆量化过程可包含使用由视频编码器20针对视频切片中的每个视频块计算的量化参数以确定应施加的量化程度以及同样地确定应施加的逆量化程度。逆变换处理单元88将逆变换应用于变换系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
在运动补偿单元82基于运动向量和其它语法元素产生用于当前视频块的预测性块之后,视频解码器30通过将来自逆变换处理单元88的残差块与由运动补偿单元82产生的对应预测性块求和而形成经解码视频块。求和器90表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在译码环路中或在译码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元91既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)以及样本自适应偏移(SAO)滤波器。尽管在图3中将滤波器单元91示出为环路内滤波器,但在其它配置中,可将滤波器单元91实施为环路后滤波器。接着将给定帧或图片中的经解码视频块存储在经解码图片缓冲器92中,经解码图片缓冲器92存储用于后续运动补偿的参考图片。经解码图片缓冲器92可为存储器的一部分,其还存储经解码视频,以供稍后在显示装置(例如图1的显示装置32)上呈现,或可与此类存储器分开。
以下部分将论述与用于运动向量和块向量预测的本发明的技术相关的视频译码的增加特征。
对于以帧间预测译码的每一块,一组运动信息可为可用。一组运动信息含有用于正向和后向预测方向的运动信息。此处,正向和后向预测方向是双向预测模式的两个预测方向,且术语“正向”和“后向”不一定具有几何含义。实情为,术语“正向”和“后向”对应于当前图片的参考图片列表0(RefPicList0)和参考图片列表1(RefPicList1)。当仅一个参考图片列表可用于图片或切片时,仅RefPicList0可用,并且切片的每一块的运动信息始终是正向的。
对于每一预测方向,运动信息可含有参考索引和运动向量。在一些情况下,为简单起见,可以假定其具有相关联参考索引的方式来提起运动向量本身。参考索引用于识别当前参考图片列表(RefPicList0或RefPicList1)中的参考图片。运动向量可具有水平和垂直分量。
图片次序计数(POC)广泛用于视频译码标准以识别图片的显示次序。尽管存在一个经译码视频序列内的两个图片可具有相同POC值的情况,但其通常不在经译码视频序列内发生。当位流中存在多个经译码视频序列时,具有相同POC值的图片可能在解码次序方面彼此更接近。
图片的POC值通常用于参考图片列表建构、参考图片集的导出,就像HEVC和运动向量按比例调整中一样。
在HEVC中,切片中的最大译码单元称为译码树块(CTB)。CTB含有四叉树,所述四叉树的节点为译码单元。CTB的大小在HEVC主规范中可在16×16到64×64的范围内(尽管技术上可支持8×8CTB大小)。CU可具有CTB的相同大小,但可小至8×8。每一CU以一种模式译码。当CU经帧间译码时,CU可进一步分割成两个预测单元(PU),或当进一步分区不适用时变为仅一个PU。当两个PU存在于一个CU中时,所述PU可为一半大小的矩形或,具有CU的1/4或3/4大小的两个矩形大小。
当CU经帧间译码时,针对每一PU存在一组运动信息。另外,每一PU是以唯一帧间预测模式译码以导出所述组运动信息。在HEVC中,最小PU大小为8x4和4x8。
在一些实例中,编码器可预测每一分区(即,每一PU)的运动向量,而非直接发信号通知原始运动向量。在执行此运动向量预测中,视频编码器20可确定从与当前部分相同的帧中的空间相邻块确定的一组候选运动向量,或从参考帧中的处于相同位置的块确定的候选运动向量。视频编码器20可执行运动向量预测,且如果需要,那么发信号通知允许视频解码器30预测所述运动向量的语法元素,而不是发信号通知用以降低信令中的位速率的原始运动向量。来自空间相邻块的候选运动向量可被称为空间运动向量预测符(MVP)候选者,而来自另一参考帧中处于相同位置的块的候选运动向量可被称为时间MVP候选者。
在HEVC标准中,对于预测单元(PU)存在两个帧间预测模式,分别称为合并(跳过被视为合并的特殊情况)和高级运动向量预测(AMVP)模式。一般来说这些模式可被称为运动向量预测模式。
在合并模式中,视频编码器20通过预测语法的位流信令来指令视频解码器30复制来自帧的当前块的选定候选者运动向量的运动向量、参考图片索引(识别给定参考图片列表中的运动向量所指向的参考帧)以及运动预测方向(其识别参考图片列表(列表0或列表1),即,依据参考帧在时间上是在当前帧之前还是之后)。这是通过在位流中发信号通知到候选运动向量列表中的索引,其识别所述选定候选者运动向量(例如特定空间MVP候选者或时间MVP候选者)。因此,对于合并模式,预测语法可包含识别所述模式(在此情况下为“合并”模式)的旗标,以及识别选定候选者运动向量的索引。在一些情况下,候选运动向量将在参考所述当前块的因果部分中。就是说,候选运动向量将已经由视频解码器30解码。因此,视频解码器30已经接收到和/或确定因果部分的运动向量、参考索引和运动预测方向。由此,视频解码器30可简单地从存储器检索与因果部分相关联的运动向量、参考索引和运动预测方向,且复制这些值作为当前部分的运动信息。为了在合并模式中重构块,视频解码器30使用当前部分的所导出的运动信息获得预测性块,且将残差数据添加到预测性块以重构经译码块。
在AMVP中,视频编码器20通过位流信令指令视频解码器30仅复制来自候选部分的运动向量,且使用复制的向量作为当前部分的运动向量的预测符,且发信号通知运动向量差(MVD)。参考帧以及与当前部分的运动向量相关联的预测方向单独地是分别发信号通知的。MVD为当前块的当前运动向量与从候选块导出的运动向量预测符之间的差。在此情况下,视频编码器20使用运动估计来确定待译码块的实际运动向量,且随后确定实际运动向量与运动向量预测符之间的差作为MVD值。以此方式,视频解码器30并不如合并模式中那样使用候选运动向量的确切副本作为当前运动向量,而是可使用值可“接近”从运动估计确定的当前运动向量的候选运动向量且加上MVD以产生当前运动向量。为了在AMVP模式中重构块,视频解码器30添加对应残差数据以重构经译码块。
在大多数情况中,MVD需要比整个当前运动向量少的位来发信号通知。因此,AMVP允许当前运动向量的更精确信令,同时维持优于发送整个运动向量的译码效率。相比之下,合并模式并不允许MVD的规范,并且由此,合并模式牺牲运动向量信令的准确性以得到增加的信令效率(即,较少位)。用于AMVP的预测语法可包含用于所述模式的旗标(在此情况下为AMVP旗标)、用于候选部分的索引、当前运动向量与来自候选部分的预测性运动向量之间的MVD、参考索引以及运动预测方向。
在AMVP或合并模式中,为多个运动向量预测符维持运动向量(MV)候选者列表。当前PU的运动向量以及合并模式中的参考索引是通过从MV候选者列表确定一个候选者来产生的。
在一个实例中,MV候选者列表可含有针对合并模式的多达5个候选者,以及针对AMVP模式的仅两个候选者。以类似方式从相同空间和时间相邻块导出用于两个模式的MVP候选者。在一个实例中,可从图4中所示的针对特定PU(PU0)的相邻块导出空间MV候选者,从所述块产生候选者的方法可针对合并和AMVP模式而不同。也就是说,每一运动向量预测模式可使用相同的一组候选块,但可使用不同的MVP候选者列表导出技术来确定所使用的MVP候选者的最终列表。
在用于合并模式的一个实例中,图4中示出五个空间MV候选者的位置。对于每一候选位置,根据次序:{a1,b1,b0,a0,b2}来检查可用性。在一些实例中,如果特定候选者块并不具有与之相关联的任何运动信息(例如候选块是使用帧内预测来译码的),那么可将特定候选者的运动信息视为不可用。在其它实例中,如果候选块在与当前经译码块相同的CU内,那么可将所述候选块视为不可用。
在AMVP模式的一个实例中,相邻块分成两个群组:由块a0和a1组成的左群组以及由块b0、b1和b2组成的上群组,如图4中所示。对于左群组,根据次序:{a0,a1}来检查可用性。对于上群组,根据次序:{b0,b1、b2}来检查可用性。对于每一群组,如发信号通知的参考索引所指示的参考同一参考图片的相邻块中的潜在候选者具有最高待选优先级,以形成所述群组的最终候选者。有可能所有相邻块均不含有指向同一参考图片的运动向量。因此,如果无法找到此类候选者,那么将按比例缩放第一可用候选者以形成最终候选者,从而可补偿时间距离差异。
在合并模式的一个实例中,在验证空间候选者之后,可去除两种冗余。如果当前PU的候选位置将涉及同一CU内的第一PU,那么排除所述位置,因为可通过CU来实现相同合并,而不分裂成若干预测分区。此外,还可排除其中候选者具有完全相同的运动信息的任何冗余条目。
在检查空间相邻候选者之后,验证时间候选者(例如检查时间候选的有效运动信息)。对于时间候选,如果可用,那么可使用正好在参考图片的相同位置PU之外的右下方位置。否则,改为使用中心位置。选择相同位置PU的方式类似于先前标准的方式,但HEVC通过发射索引以指定哪一参考图片列表用于相同位置参考图片来允许较多灵活性。
与时间候选者的使用有关的一个问题是用以存储参考图片的运动信息的存储器的量。这是通过将用于存储时间运动候选者的粒度限制为仅16×16亮度网格的分辨率来解决的,甚至在参考图片中的对应位置处使用较小PB结构时也是如此。另外,图片参数集合(PPS)旗标允许编码器停用时间候选者的使用,其可用于具有易错发射的应用。
在一些实例中,在切片标头中指定合并候选者C的最大数目。如果找到的合并候选者(包含时间候选者)的数目大于C,那么仅保持前C-1个空间候选者和所述时间候选者。否则,如果所识别的合并候选者的数目小于C,那么可产生额外候选者,直到所述数目等于C为止。这简化了剖析,并使其更稳健,因为剖析经译码数据的能力不取决于合并候选者可用性。如果需要,额外MVP候选者可被称为“默认”MVP候选者或“人造”MVP候选者。
对于B切片,通过根据参考图片列表0和列表1的预定义次序挑选两个现有候选者来产生额外合并候选者。举例来说,第一所产生的候选者使用列表0的第一合并候选者和列表1的第二合并候选者。HEVC将已经建构的合并候选者列表中的以下次序中的两者的总共12个预定义对指定为(0,1)、(1,0)、(0,2)、(2,0)、(1,2)、(2,1)、(0,3)、(3,0)、(1,3)、(3,1)、(2,3)和(3,2)。其中,在去除冗余条目之后,可包含至多五个候选者。
当合并候选者的数目仍小于C时,改为使用默认合并候选者(包含默认运动向量和对应参考索引),其中使用与来自零到所述参考图片数目减一的参考索引相关联的零运动向量来填充合并候选者列表中的任何其余条目。
在AMVP模式的一个实例中,HEVC允许在运动向量预测过程情况下使用较低数目的候选者,因为视频编码器20可发送经译码差来改变所述运动向量。此外,视频编码器20执行运动估计,其为视频编码器20中的计算上最昂贵操作中的一者,且通过允许少量候选者来降低复杂性。
当相邻PU的参考索引不等于当前PU的参考索引时,可使用所述运动向量的经按比例缩放版本。根据当前图片与分别由相邻PU和当前PU的参考索引指示的参考图片之间的时间距离来按比例缩放相邻运动向量。
在一些实例中,当两个空间候选者具有相同运动向量分量时,可排除一个冗余空间候选者(例如不添加到MVP候选者列表)。在一个实例中,当运动向量预测符的数目不等于二,且时间MV预测的使用未明确停用时,包含时间MV预测候选者。这意味着当两个空间候选者可用时,根本不使用时间候选者。
最后,反复地包含在此实例中为零运动向量(即,具有值零的运动向量)的默认运动向量,直到运动向量预测候选者的数目等于二为止,这保证了运动向量预测符的数目是二。因此,对于识别在AMVP模式的情况下使用哪一运动向量预测,仅经译码旗标是必需的。
在运动向量用于色度运动补偿之前,为当前PU/CU的亮度分量导出所述运动向量。可基于色度取样格式来按比例缩放所述运动向量。
在HEVC中,可将LCU(或“CTB”)分成若干并行运动估计区(MER),且仅允许属于与当前PU不同的MER的那些相邻PU包含于合并/跳过MVP列表建构过程中。在具有语法元素log2_parallel_merge_level_minus2的PPS中发信号通知MER的大小。
当MER大小大于N×N时,其中2N×2N是最小CU大小,MER以如果空间相邻块在与当前PU相同的MER内部那么所述空间相邻块被视为不可用的方式起作用。
IBC译码模式已包含于HEVC的SCC的一些版本中。图5中示出显示IBC译码技术的概念图,其中从当前图片/切片的已经解码的预测性块104预测所述当前块(CU/PU)102。在此实例中,在无环路内滤波(包含去块和样本自适应偏移(SAO))的情况下重构预测信号(例如当前块102与预测性块104之间的预测残差)。
视频编码器20和视频解码器30可经配置以使用如图5中示出的IBC模式来编码和解码视频数据块。例如远程桌上型、远程游戏、无线显示器、汽车信息娱乐、云计算等许多应用程序正变成人的每日生活中的日常,且可通过使用IBC模式来改进当译码此类内容时的译码效率。图1的系统10可表示经配置以执行这些应用程序中的任一者的裝置。这些应用程序中的视频内容通常是自然内容、文本、人造图形等的组合。在视频帧的文本和人造图形区中,常常存在重复图案(例如字符、图标、符号等)。如上文所介绍,IBC是能够去除这种冗余并潜在地改进帧内译码效率的专用技术。如图5中所说明,对于使用IBC的译码单元(CU),从与当前块102相同的帧中的已经重构的搜索区108获得预测信号。最后,与预测残差一起编码指示从当前块102移位的预测性块104的位置的块向量106。注意,块向量106可包含水平分量112和垂直分量110。
图5说明根据本发明,例如根据依据本发明的技术的IBC模式,用于根据来自同一图片内的预测性视频数据块的视频数据块的帧内预测的模式来预测当前图片103内的当前视频数据块102的实例技术。图5说明当前图片103内的预测性视频数据块104。视频译码器,例如视频编码器20和/或视频解码器30,可根据依据本发明的技术的IBC,使用预测性视频块104来预测当前视频块102。
视频编码器20从一组先前经重构视频数据块选择用于预测当前视频块102的预测性视频块104。视频编码器20通过逆量化和逆变换也包含在经编码视频位流中的视频数据,且将所得残差块与用以预测经重构视频数据块的预测性块求和来重构视频数据块。在图5的实例中,图片103内的搜索区108,其还可被称作“既定区域”或“光栅区域”,包含所述组先前经重构视频块。视频编码器20可以多种方式定义图片103内的搜寻区108,如下文更详细描述。视频编码器20可根据基于搜索区108内的各种视频块而预测和译码当前块102的相对效率和准确性的分析,从搜索区108中的视频块当中选择用于预测当前块102的预测性块104。
搜索区108包含来自与当前块102相同的图片103的已经译码的块。举例来说,假定帧正以光栅扫描次序中(即,从左到右和从上到下)译码,所述帧的已经译码的块对应于在当前块102左侧和上方的块,如图5中示出。在一些实例中,搜索区108可包含所述帧中的所有已经译码的块,而在其它实例中,搜索区可包含少于所有的已经译码的块。
视频编码器20确定表示预测性块104相对于当前块102的位置或位移的块向量106。块向量106包含水平位移分量112和垂直位移分量110,其分别表示预测性块104相对于当前块102的水平和垂直位移。在一个实例中,图5中的块向量识别当前块102的左上像素与预测性块104的左上像素之间的差异。因此,当在IBC模式中译码当前块102时,通过在经编码视频位流中发信号通知块向量,视频解码器30可识别用于当前102的预测性块104。视频编码器20可在经编码视频位流中包含识别或定义块向量106,例如定义水平位移分量112和垂直位移分量110的一或多个语法元素。视频解码器30可解码所述一或多个语法元素以确定块向量106,且使用所述所确定的向量来识别当前视频块102的预测性块104。如下文将更详细地论述,在本发明的实例中,视频编码器20和视频解码器30可使用运动向量预测技术,例如用以译码用于帧间预测的运动向量的那些技术,来预测用于IBC模式的块向量(例如来预测从与所述当前块相同的帧中的另一视频数据块预测的当前视频数据块的块向量)。
在一些实例中,块向量106的分辨率可为整数像素,例如被限制为具有整数像素分辨率。在此些实例中,水平位移分量112和垂直位移分量110的分辨率将为整数像素分辨率。在此些实例中,视频编码器20和视频解码器30不需要内插预测性视频块104的像素值来确定用于当前视频块102的预测符。
在其它实例中,水平位移分量112和垂直位移分量110中的一者或两者的分辨率可为子像素分辨率。举例来说,分量112和110中的一者可具有整数像素分辨率,而另一者具有子像素分辨率。在一些实例中,水平位移分量112和垂直位移分量110两者的分辨率可为子像素,但水平位移分量112和垂直位移分量110可具有不同分辨率。
在一些实例中,视频译码器(例如,视频编码器20和/或视频解码器30)基于特定级来适配水平位移分量112和垂直位移分量110的分辨率,例如块级、切片级或图片级适配。举例来说,视频编码器20可例如在切片标头中在切片级处发信号通知指示水平位移分量112和垂直位移分量110的分辨率是整数像素分辨率还是不是整数像素分辨率的旗标。如果所述旗标指示水平位移分量112和垂直位移分量110的分辨率不是整数像素分辨率,那么视频解码器30可推断分辨率是子像素分辨率。在一些实例中,不一定是旗标的一或多个语法元素可针对每一切片或其它视频数据单元发射,以指示水平位移分量112和/或垂直位移分量110的共同或个别分辨率。
在又其它实例中,代替于旗标或语法元素,视频编码器20可基于分辨率情境信息来设定且视频解码器30可从分辨率情境信息推断水平位移分量112和/或垂直位移分量110的分辨率。分辨率情境信息可包含例如包含当前视频块102的图片或图片序列的色彩空间(例如YUV、RGB等)、特定色彩格式(例如4:4:4、4:2:2、4:2:0等)、帧大小、帧速率或量化参数(QP)。在至少一些实例中,视频译码器可基于与经先前译码帧或图片相关的信息来确定水平位移分量112和/或垂直位移分量110的分辨率。以此方式,水平位移分量112的分辨率和垂直位移分量110的分辨率可预定义、发信号通知、可从其它辅助信息(例如,分辨率情境信息)推断,或可基于已经译码的帧。
当前视频块102可为CU,或CU的PU。在一些实例中,视频译码器,例如视频编码器20和/或视频解码器30,可将根据IBC预测的CU分裂成若干PU。在此些实例中,视频译码器可确定CU的PU中的每一者的相应(例如,不同)二维向量106。举例来说,视频译码器可将2Nx2NCU分裂为两个2NxN PU、两个Nx2N PU,或四个NxN PU。作为其它实例,视频译码器可将2Nx2NCU分裂为((N/2)xN+(3N/2)xN)PU、((3N/2)xN+(N/2)xN)PU、(Nx(N/2)+Nx(3N/2))PU、(Nx(3N/2)+Nx(N/2))PU、四个(N/2)x2N PU或四个2Nx(N/2)PU。在一些实例中,视频译码器可使用2Nx2N PU来预测2Nx2N CU。
当前块102可包含亮度视频块(例如亮度分量)和对应于所述亮度视频块的色度视频块(例如色度分量)。在一些实例中,视频编码器20可仅将定义亮度视频块的块向量106的一或多个语法元素编码到经编码视频位流中。在此些实例中,视频解码器30可基于针对亮度块发信号通知的二维向量导出对应于所述亮度块的一或多个色度块中的每一者的块向量106。在本发明中描述的技术中,在为一或多个色度块导出二维向量时,如果亮度块的二维向量指向色度样本内的子像素位置,那么视频解码器30可修改所述亮度块的二维向量。
取决于色彩格式,例如色彩取样格式或色度取样格式,视频译码器可相对于亮度视频块来下取样对应色度视频块。色彩格式4:4:4不包含下取样,意味着色度块在水平和垂直方向上包含与亮度块相同数目的样本。色彩格式4:2:2在水平方向上下取样,意味着在色度块中在水平方向上相对于亮度块存在二分之一多的样本。色彩格式4:2:0在水平和垂直方向上下取样,意味着在色度块中在水平和垂直方向上相对于亮度块存在二分之一多的样本。
在其中视频编码器20和/或视频解码器30基于对应亮度块的块向量106确定色度视频块的块向量106的实例中,视频编码器20和/或视频解码器30可修改亮度向量。举例来说,如果亮度向量106具有整数分辨率,其中水平位移分量112和/或垂直位移分量110为奇数数目的像素,且色彩格式是4:2:2或4:2:0,那么经转换亮度向量可不指向对应色度块中的整数像素位置。在此些实例中,视频编码器20和/或视频解码器30可按比例缩放亮度向量,以用作色度向量来预测对应色度块。
现在将论述块补偿。对于以IBC译码的亮度分量或色度分量,视频编码器20和/视频解码器30使用整数块补偿来执行块补偿,因此不需要内插。在此实例中,在整数级预测和发信号通知块向量106。
在针对SCC的一些建议中,块向量106并不全部发信号通知,而是从块向量预测符预测。在一个实例中,在每一CTB的开头,将块向量预测符设定成(-w,0),其中w是CU(例如当前块102)的宽度。如果以IBC模式来译码,那么将此块向量预测符更新为最新经译码CU/PU中的所述一者。
如果并未以帧内BC来译码CU/PU,那么块向量预测值保持不变。在块向量预测之后,可使用HEVC中的MV差(MVD)译码方法来编码块向量差。
现将论述IBC块大小。在一些实例中,在CU和PU级两者处启用IBC。对于PU级IBC译码,针对全部CU大小支持2NxN和NX2N PU分区。另外,当CU是最小CU时,支持N×N PU分区。
如上文所论述,在本发明的实例中,帧间预测模式和IBC模式是统一的。就是说,视频编码器20的运动估计单元42和运动补偿单元44两者可经配置以在帧间预测模式和IBC模式两者中编码视频块。在一个实例中,可通过将当前帧的参考帧索引包含在运动估计单元42和运动补偿单元44所使用的参考图片列表中来实现此类统一。同样地,视频解码器30的运动补偿单元82还可经配置以通过将当前帧的参考帧索引包含在运动补偿单元82所使用的参考图片列表中,来在帧间预测模式和IBC模式两者中解码视频块。2014年5月19日申请的第62/000,437号共同待决美国临时申请案详细描述了用于帧间预测模式和IBC模式的统一的一些技术。
在B.李(B.Li)等人的“非SCCE1:帧内BC和帧间模式的统一(Non-SCCE1:Unification of intra BC and inter modes)”中,ITU-T SG 16WP 3和ISO/IEC JTC1/SC29/WG 11的视频译码联合合作小组(JCT-VC),第18次会议:日本札幌市,2014年6月30日到7月9日(JCTVC-R0100),提出了帧内BC和帧间的统一。如上文所论述,将当前图片添加到参考列表中。当前图片在解码之前可标记为长期的,且在当前图片的解码之后标记为短期参考图片。当启用IBC模式时,针对I切片(例如包含经IBC译码的块的切片),遵循P切片的语法剖析过程和解码过程。
对于帧间预测和IBC模式统一,尽管发信号通知的预测模式可相同(例如两者均使用MODE_INTER),但视频解码器30可能够通过检查与所述当前块相关联的参考索引所识别的参考图片是否是当前图片(例如参考图片索引所识别的参考图片具有与当前图片相同的POC值),来区分使用IBC模式译码的块与常规经帧间预测块。如果参考图片和当前图片是相同图片,那么视频解码器30可确定使用IBC模式来译码所述块。否则,所述块是常规经帧间预测块(例如从相对于所述当前块的另一图片中的块预测)。
虽然上文所提到的用于帧间预测和IBC模式统一的技术解决了像素预测技术,但现有IBC技术可具有关于运动向量和块向量预测的一些缺点。本发明描述用于译码经帧间预测模式译码和经IBC模式译码块的运动向量和块向量预测的技术。
在本发明的一个实例中,当用于IBC模式和帧间预测模式的像素预测技术如上文所描述统一时,视频编码器20和视频解码器30可进一步经配置以针对经帧间预测块使用相同运动向量预测候选者,如用于对经IBC译码的块执行块向量预测。就是说,不是使用上方所陈述的块向量预测技术,而是视频编码器20和视频解码器30可经配置以使用利用图4中所示的候选块的帧间合并和帧间AMVP技术。举例来说,视频编码器20和/或视频解码器30可使用帧间合并过程来为使用IBC模式译码的块预测块向量。
在本发明的一个实例中,用于经帧间预测块的合并和AMVP过程的全部,包含用于MVP候选者列表导出的规则,也用于经IBC译码的块。在其它实例中,视频编码器20和/或视频解码器30可针对经IBC译码的块的运动向量预测的合并和AMVP模式使用相同候选列表使用(例如来预测块向量),但MVP候选者列表导出的规则可具有一些差异。
作为一个实例,在使用IBC模式来译码块(例如如由参考图片索引识别)的情况下,视频编码器20和/或视频解码器30可经配置以针对具有大于4×4的大小的所有IBC块使用帧间预测合并技术。针对具有4×4或更小的大小的IBC块,视频编码器20和/或视频解码器30经配置以针对此类IBC块停用任何合并运动向量预测过程。
在本发明的另一实例中,被视为可用于在合并或AMVP中使用的MVP候选者可取决于使用帧间预测还是IBC模式来编码当前经译码块而更改。在本发明的一个实例中,将所有可能的MVP候选者,例如图4中所示的那些,添加到MVP候选者列表,不管它们是经IBC译码的块还是经帧间预测译码的块。举例来说,IBC块的MVP候选者可包含经帧间预测的块和经IBC译码的块两者。同样地,经帧间预测块的MVP候选者可包含经帧间预测块和经IBC译码的块两者。此类技术可使视频编码器20和/或视频解码器30能够避免合并和/或AMVP模式的候选者列表导出过程期间的额外条件性检查。
在本发明的另一实例中,可添加到MVP候选者列表的候选块的类型可以某一方式受限。举例来说,对于使用帧间预测译码的块,视频编码器20和/或视频解码器30可经配置以仅将来自经IBC译码的块的至多达X个MVP候选者添加到MVP候选者列表。虽然经IBC译码的块的块向量可呈现与经帧间预测块的运动向量相同的格式,但运动向量和块向量所传达的信息的本质是不同的。运动向量指示对象在视频帧中从一个帧到另一帧的移动,而块向量仅指示具有与当前块类似的信息的同一块中的另一帧。当预测运动向量时,在经帧间预测块的MVP候选者列表中包含太多的经IBC译码块可导致较差的位速率效率。
由此,视频编码器20和/或视频解码器30可经配置以限制可包含于经帧间预测块的MVP候选者列表中的经IBC译码块的数目。在一些实例中,视频编码器20和/或视频解码器30可经配置以将来自IBC块的所有MVP候选者标记为不可用。可用如上文所描述的默认候选者,或根据下文所描述的本发明的技术来代替不可用的MVP候选者。
同样地,在本发明的另一实例中,对于使用IBC模式译码的块,视频编码器20和/或视频解码器30可经配置以仅将来自经帧间预测译码块的至多达X个MVP候选者添加到MVP候选者列表。在一些实例中,视频编码器20和/或视频解码器30可经配置以将来自经帧间预测块的所有MVP候选者标记为不可用。可用如上文所描述的默认候选者,或根据下文所描述的本发明的技术来代替不可用的MVP候选者。
在本发明的其它实例中,视频编码器20和/或视频解码器30可使用相同合并候选者(例如图4中所示)来导出合并候选者列表。然而,添加到MVP候选者列表的默认或额外合并候选者可针对帧间预测块和经IBC译码块不同。在针对HEVC v1中的AMVP和合并模式的先前建议中,将默认运动向量(其为零运动向量)添加到MVP候选者列表,来确保针对AMVP模式存在2个预测符候选者,且针对合并模式存在最小数目(例如5)的MVP候选者。然而,对于经IBC译码的块来说,零运动向量不是有效的。这是因为经IBC译码的块是相对于同一图片中的另一块来译码的。零运动向量因此将指向当前经译码块。块可能不是从本身预测的。因此,根据本发明的技术,视频编码器20和/或视频解码器30可经配置以为AMVP模式和合并模式确定对经IBC译码块有效的其它默认运动向量。
当视频编码器20和/或视频解码器30确定使用IBC模式来译码块时,本发明中提出用于AMVP和MVP候选者列表建构的技术来更高效地译码运动向量。更具体地说,提出以下实例技术。实例技术中的每一者可与其它技术中的一或多者分别或联合地应用。
在本发明的一个实例中,代替于使用经IBC译码块的默认运动向量候选者的零候选者,视频编码器20和/或视频解码器30可经配置以从可仅包含有效IBC候选者且例如不包含零运动向量的预定默认候选者列表选择经IBC译码块的默认运动向量候选者。
在另一实例中,经IBC译码的块的所述组默认候选者可包含以下各项中的一或多者(-2w,0)、(2w,0)、(-w,0)、(w,0)、(0,0)、(0,-h)、(0,-2h)、(0,h)、(0,2h)、(-8,0)、(0,8)、(-w,-h)、(-2w,-h)、(-w,-2h)、(-2w,-2h),其中w和h是当前CU、PU或CTB的宽度和高度。在其它实例中,上文的预定义组并不包含零运动向量(0,0)。在一些实例中,这些预定义默认运动向量的值可对应于整数像素精度,且视频编码器20和/或视频解码器30可取决于用于运动向量的精度,通过视频编码器20和/或视频解码器30来按比例放大或缩小预定义运动向量的值。举例来说,倘若视频编码器20和视频解码器30经配置以用四分之一像素精度来译码所述运动向量,那么视频编码器20和/或视频解码器30可经配置以在使用之前,将预定义组中的运动向量(-2w,0)按比例缩放到(-8w,0)。
在本发明的另一实例中,视频编码器20和/或视频解码器30可经配置以使用一组预定义运动向量作为默认运动向量,其中所述组预定义运动向量以解码次序(例如最新经译码块)包含与当前经译码块相同的CTB的运动向量。在一个实例中,添加到所述组预定义运动向量的先前经解码运动向量可仅包含来自经IBC译码块的那些运动向量。在另一实例中,添加到所述组预定义运动向量的先前经解码运动向量可仅包含来自常规经帧间译码块的那些运动向量。在另一实例中,添加到所述组预定义运动向量的先前经解码运动向量可包含来自经IBC译码块和常规经帧间译码块两者的运动向量。
在本发明的另一实例中,当启用IBC时,除了对不可用MVP候选者的默认运动向量选择,视频编码器20和/或视频解码器30可经配置以将与HEVCv1中相同的AMVP运动向量预测过程应用于经IBC译码块和经帧间预测块两者。在一个实例中,视频编码器20和/或视频解码器30可经配置以不使用零运动向量作为默认运动向量经IBC和经帧间译码块。实情为,视频编码器20和/或视频解码器30可经配置以从一组预定的默认运动向量确定默认运动向量,例如如上文所定义的那些默认运动向量。在另一实例中,视频编码器20和/或视频解码器30可经配置以从的确包含零运动向量的一组预定的默认运动向量确定默认运动向量。
在本发明的另一实例中,当启用IBC时,除了对不可用MVP候选者的默认运动向量选择,视频编码器20和/或视频解码器30可经配置以将与HEVCv1中相同的合并运动向量预测过程应用于经IBC译码块和经帧间预测块两者。在一个实例中,视频编码器20和/或视频解码器30可经配置以将相同合并候选者列表用于经IBC译码块和经帧间预测译码块。对于用于合并的候选者列表建构,用于经IBC和帧间预测译码块的默认运动向量可能不是如HEVCv1中的零运动向量,但可选自预定义组,如上文所描述。当以此方式选择默认运动向量时,视频编码器20和/或视频解码器30可经配置以将当前帧的参考索引用于经IBC译码块。
在另一实例中,经IBC译码块和经帧间预测译码块共享相同合并候选者列表。对于默认合并候选者,参考索引产生过程与HEVC v1中的过程相同。然而,当以参考索引作索引的参考图片是当前图片时,对应默认运动向量可能不是零运动向量,而是实情为,视频编码器20和/或视频解码器30可经配置以从上文所述的预定义组确定默认运动向量。
上文所论述的技术中的任一者可用于特定参考列表,例如,仅用于参考列表0,或仅用于参考列表1,或用于参考列表0和参考列表1两者。并且,上文所述的技术的使用可取决于是否在参考图片列表中添加当前图片。就是说,上文的不将零运动向量用于经IBC译码块的技术可限于允许IBC译码的参考图片列表(例如包含当前图片的参考图片列表)。
在本发明的其它实例中,视频编码器20和/或视频解码器30可经配置以确定不同于上述默认候选者的IBC合并候选者。如果当IBC合并候选者的运动向量在合并过程中用于所述当前块时,整个参考块不可用(例如参考块不是重构的、参考块不是填充的,参考块处于不同切片/瓦片中等),那么以下技术可适用。在一个实例中,IBC合并候选者将不添加到合并候选者列表。
在另一实例中,将IBC合并候选者添加到所述候选者列表,但在其用于合并过程中之前,视频编码器20和/或视频解码器30可经配置以便以以下方式中的一者来更改IBC合并候选者。在一个实例中,视频编码器20和/或视频解码器30可经配置以用预定义组中的运动向量来代替对应运动向量,如上文所述。举例来说,令亮度位置(CUx,CUy)指定相对于当前图片的左上亮度样本的当前亮度译码块的左上样本;(PUx,PUy)指定相对于当前图片的左上亮度样本的当前亮度预测块的左上样本;(MVx,MVy)指定将改变的一个IBC合并候选者的对应运动向量;(PUw,PUh)指定当前CU的宽度和高度。如果PUx+MVx+PUw>CUx,那么MVy改变为min(MVy,CUy-PUy-PUh)。
在另一实例中,令亮度位置(CUx,CUy)指定相对于当前图片的左上亮度样本的当前亮度译码块的左上样本;(PUx,PUy)指定相对于当前图片的左上亮度样本的当前亮度预测块的左上样本;(MVx,MVy)指定将改变的一个IBC合并候选者的对应运动向量;(PUw,PUh)指定当前CU的宽度和高度。如果PUy+MVy+PUh>CUy,那么MVx改变为min(MVx,CUx-PUx-PUw)。
在本发明的另一实例中,当使用时间MVP(TMVP)时,可使用处于相同位置的MV来建构经IBC译码块和经帧间预测译码块两者的AMVP和合并模式的候选者列表。然而,对于HEVC合并模式,当将当前图片标记为长期参考图片时,且当处于相同位置的块是IBC块时,问题可产生。举例来说,如果参考列表中的第一参考图片(例如参考索引等于0)不是长期图片,那么与处于相同位置的IBC块相关联的MV将不添加到合并模式的候选者列表。根据本发明的实例,可使用以下技术来进行候选者列表建构。
在一个实例中,当启用IBC模式和TMVP两者时,对于合并过程,如果处于相同位置的块是IBC块,那么视频编码器20和/或视频解码器30可将处于相同位置的IBC块视为可用,而不检查每一参考图片列表中的第一参考图片是长期参考图片还是短期参考图片。视频编码器20和/或视频解码器30可经配置以将与处于相同位置的IBC块相关联的MV添加到候选者列表。视频编码器20和/或视频解码器30可经配置以便以与HEVC中的处于相同位置的块导出技术相同的方式导出处于相同位置的块。就是说,首先,检查右下块;如果不可用,那么检查中心块。
在另一实例中,视频编码器20和/或视频解码器30可经配置以将右下块和中心块两者的MV(例如块向量)添加到所述候选者列表,只要右下块和中心块两者是IBC块即可,而不检查每一列表中的第一参考图片是长期参考图片还是短期参考图片。通过以此方式将MV(例如块向量)添加到合并候选者列表,将所述当前块的对应参考索引设定成对应于当前图片的参考索引。
在另一实例中,当启用IBC模式和TMVP两者时,对于AMVP过程,如果处于相同位置的块是IBC块,那么视频编码器20和/或视频解码器30可将处于相同位置的IBC块视为可用,而不检查当前块的参考图片是长期参考图片还是短期参考图片。视频编码器20和/或视频解码器30可经配置以将与处于相同位置的IBC块相关联的MV添加到候选者列表。视频编码器20和/或视频解码器30可经配置以便以与HEVC中的处于相同位置的块导出技术相同的方式导出处于相同位置的块。就是说,首先,检查右下块;如果不可用,那么检查中心块。
在另一实例中,视频编码器20和/或视频解码器30可经配置以将右下块和中心块两者的MV(例如块向量)添加到所述候选者列表,只要右下块和中心块两者是IBC块即可,而不检查每一列表中的第一参考图片是长期参考图片还是短期参考图片。
在上文的实例中,在当将当前MV(例如块向量)视为IBC块时,特定MV(例如块向量)对于当前块无效的情况下,有可能不将MV(例如块向量)添加到候选者列表。
图6是示出根据本发明的技术的实例视频编码方法的流程图。图6的技术可由视频编码器20的由一或多个结构实施,包含运动补偿单元44和运动估计单元42。应理解,下文所描述的实例中的每一者可一起执行或可分开执行。
如图6中所示,在本发明的一个实例中,视频编码器20可经配置以相对于第二视频数据帧中的第一预测性块来编码第一视频数据帧中的第一视频数据块(600)。第一预测性块可由运动向量识别。视频编码器20可进一步经配置以相对于第一视频数据帧中的第二预测性块来编码第一视频数据帧中的第二视频数据块(602)。第二预测性块可由块向量识别。视频编码器20可进一步经配置以使用运动向量预测过程和运动向量候选者列表来编码所述运动向量(604),且使用运动向量预测过程和与用于编码运动向量相同的运动向量候选者列表来编码所述块向量(606)。
应理解,本发明的技术还可用于其中无经帧间预测的块在含有经IBC译码块的相同帧中编码的情境中。举例来说,视频编码器20可经配置以编码第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于第一视频数据帧中的第一预测性块来编码的,所述第一预测性块由块向量识别,且使用运动向量预测过程和与用于解码运动向量的相同运动向量候选者列表来编码所述块向量,其中所述运动向量用以为使用帧间译码来译码的第二视频数据块识别帧间预测性块。
在本发明的一个实例中,所述运动向量预测过程是合并模式和高级运动向量预测(AMVP)模式中的一者。在本发明的另一实例中,第二视频数据块是4×4或更小。
在本发明的另一实例中,为了编码所述块向量,视频编码器20可进一步经配置以将来自运动向量候选者列表中的一或多个相邻块的候选块向量和候选运动向量中的至少一者添加到用于运动向量预测过程的运动向量预测符候选者列表。
在本发明的另一实例中,视频编码器20可进一步经配置以确定相应候选块向量或相应候选运动向量不可用,并将默认运动向量添加到运动向量候选者列表。在本发明的另一实例中,视频编码器20可进一步经配置以从一组预定默认运动向量确定所述默认运动向量,所述预定组不包含零向量(0,0)。
在本发明的另一实例中,为了编码所述块向量,视频编码器20可进一步经配置以将来自运动向量候选者列表中的一或多个相邻块的候选块向量和候选运动向量中的至少一者添加到用于运动向量预测过程的运动向量预测符候选者列表。
在本发明的另一实例中,为了编码所述块向量,视频编码器20可进一步经配置以仅将来自运动向量候选者列表中的相邻块的候选块向量添加到用于运动向量预测过程的运动向量预测符候选者列表。在本发明的另一实例中,为了编码所述块向量,视频编码器20可进一步经配置以仅将来自运动向量候选者列表中的相邻块的候选块向量添加到用于运动向量预测过程的运动向量预测符候选者列表。
图7是示出根据本发明的技术的实例视频解码方法的流程图。图7的技术可由视频解码器30的一或多个结构实施,包含运动补偿单元82。应理解,下文所描述的实例中的每一者可一起执行或可分开执行。
如图7中所示,在本发明的一个实例中,视频解码器30可经配置以接收第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于第二视频数据帧中的第一预测性块来编码的,且所述第一预测性块由运动向量识别(700)。视频解码器30可进一步经配置以接收第一视频数据帧中的第二视频数据块,所述第二视频数据块是相对于第一视频数据帧中的第二预测性块来编码的,且第二预测性块由块向量识别(702)。视频解码器30可进一步经配置以使用运动向量预测过程和运动向量候选者列表来解码所述运动向量(704),且使用运动向量预测过程和与用于解码所述运动向量相同的运动向量候选者列表来解码所述块向量(706)。视频解码器30可进一步经配置以使用所述第一预测性块和所述运动向量来解码所述第一视频数据块,且使用所述第二预测性块和所述偏移向量来解码所述第二视频数据块。
应理解,本发明的技术还可用于其中无经帧间预测的块在含有经IBC译码块的相同帧中接收的情境中。举例来说,视频解码器30可经配置以接收第一视频数据帧中的第一视频数据块,所述第一视频数据块是相对于第一视频数据帧中的第一预测性块来编码的,所述第一预测性块由块向量识别,且使用运动向量预测过程和与用于解码运动向量相同的运动向量候选者列表来解码所述块向量,其中所述运动向量用以为使用帧间译码来译码的第二视频数据块识别帧间预测性块。
在本发明的一个实例中,所述运动向量预测过程是合并模式和高级运动向量预测(AMVP)模式中的一者。在本发明的另一实例中,第二视频数据块是4×4或更小。
在本发明的另一实例中,为了解码所述块向量,视频解码器30可进一步经配置以将来自运动向量候选者列表中的一或多个相邻块的候选块向量和候选运动向量中的至少一者添加到用于运动向量预测过程的运动向量预测符候选者列表。
在本发明的另一实例中,视频解码器30可进一步经配置以确定相应候选块向量或相应候选运动向量不可用,并将默认运动向量添加到运动向量候选者列表。在本发明的另一实例中,视频解码器30可进一步经配置以从一组预定的默认运动向量确定所述默认运动向量,所述预定组不包含零向量(0,0)。
在本发明的另一实例中,为了解码所述运动向量,视频解码器30可进一步经配置以将来自运动向量候选者列表中的一或多个相邻块的候选块向量和候选运动向量中的至少一者添加到用于运动向量预测过程的运动向量预测符候选者列表。
在本发明的另一实例中,为了解码所述块向量,视频解码器30可进一步经配置以仅将来自运动向量候选者列表中的相邻块的候选块向量添加到用于运动向量预测过程的运动向量预测符候选者列表。在本发明的另一实例中,为了解码所述块向量,视频解码器30可进一步经配置以仅将来自运动向量候选者列表中的相邻块的候选块向量添加到用于运动向量预测过程的运动向量预测符候选者列表。
在一或多个实例中,所描述功能可在硬件、软件、固件或其任何组合中实施。如果在软件中实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可以在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了各种实例。这些和其它实例在所附权利要求书的范围内。