视频译码中的语法元素的值范围的制作方法

文档序号:11162275阅读:856来源:国知局
视频译码中的语法元素的值范围的制造方法与工艺

本申请涉及视频译码和压缩的领域,例如,在视频编码器和视频解码器中。具体而言,本申请涉及可缩放视频译码(SVC),包含用于高级视频译码(AVC)的SVC,以及用于高效视频译码(HEVC)的SVC,除了HEVC的3D和多视图扩展之外,其也被称作可缩放HEVC(SHVC)。



背景技术:

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

视频译码方法包含空间(图片内)预测和/或时间(图片间)预测来减少或移除视频序列中固有的冗余。对于基于块的视频译码,视频切片(例如,视频帧或视频帧的一部分)可分割成视频块,所述视频块也可被称作树块、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测对图片的经帧内译码(I)切片中的视频块进行编码。图片的经帧间编码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称为帧,且参考图片可被称为参考帧。

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

可通过例如从多个视角编码视图来产生多视图译码位流。已经开发利用多视图译码方面的一些三维(3D)视频标准。举例来说,不同视图可发射左眼和右眼视图以支持3D视频。替代地,一些3D视频译码过程可应用所谓的多视图加深度译码。在多视图加深度译码中,3D视频位流可不仅含有纹理视图分量而且还含有深度视图分量。举例来说,每一视图可包括一个纹理视图分量和一个深度视图分量。



技术实现要素:

一般来说,本发明描述涉及HEVC的方法及系统,包含HEVC的多视图扩展(MV-HEVC)及可缩放扩展(SHVC)。在用于管理参考图片集(reference picture sets;RPS)中的某些变量的指定范围中,HEVC当前使用如由伪代码指定的复杂导出过程。然而,导出过程的一部分是不正确的,且总的来说,此偏差过程会给编码器及解码器带来不必要的复杂度。本发明向一些变量的范围确定提供某些改进以促进视频编码器与视频解码器之间的适当信号发送。具体来说,变量“num_negative_pics”、“num_positive_pics”及“num_long_term_pics”的值范围可得到改进。

本发明的系统、方法及装置各自具有若干创新方面,其中没有单个方面单独负责本文中所揭示的合乎需要的属性。

本发明的一个方面提供一种用于对视频数据进行编码的方法。所述方法可包含接收多个图片,所述多个图片包含一当前图片及一或多个参考图片。所述方法还可包含至少部分地基于所述一或多个参考图片而确定所述当前图片的参考图片集(RPS)。所述方法还可包含确定所述RPS中的所述一或多个参考图片中的每一参考图片的图片次序计数(picture order count;POC)值。所述方法还可包含识别所述RPS内的多个长期参考图片及多个短期参考图片中的至少一者。所述方法还可包含在视频参数集(video parameter set;VPS)扩展处于使用中的情况下对所述RPS中的长期图片的数目及短期图片的数目施加约束,所述约束是基于所述POC值及最大经解码图片缓冲器大小减去一。所述方法还可包含基于所述约束而产生识别所述RPS的至少一个语法元素。所述方法还可包含基于所述RPS及所述至少一个语法元素而对所述当前图片进行编码。

本发明的另一方面提供一种用于对视频数据进行编码的装置。所述装置可具有经配置以存储多个图片的存储器。所述多个图片可具有一当前图片及一或多个参考图片。所述装置还可具有可操作地耦合到所述存储器的至少一个处理器。所述至少一个处理器可至少部分地基于所述一或多个参考图片而确定所述当前图片的参考图片集(RPS)。所述至少一个处理器还可确定所述RPS中的每一参考图片的图片次序计数(POC)值。所述至少一个处理器还可识别所述RPS内的多个长期参考图片及多个短期参考图片中的至少一者。所述至少一个处理器还可对所述RPS中的长期图片的所述数目及短期图片的所述数目施加约束。在视频序列参数(VPS)扩展处于使用中的情况下,所述约束可基于所述POC值及最大经解码图片缓冲器大小减去一。所述至少一个处理器还可基于所述约束而产生识别所述RPS的至少一个语法元素。所述至少一个处理器还可基于所述RPS及所述至少一个语法元素而对所述当前图片进行编码。

本发明的另一方面提供一种用于解码视频数据的方法。所述方法可包含从位流获得当前图片的图片次序计数(POC)及一或多个参考图片的POC值。所述方法还可包含基于所述当前图片的所述POC值及所述一或多个参考图片的所述POC值而确定具有所述一或多个参考图片的参考图片集(RPS)。所述方法还可包含在视频参数集(VPS)扩展处于使用中的情况下,将所述RPS中的所述一或多个参考图片识别为多个长期图片及多个短期图片中的至少一者,长期图片的所述数目及短期图片的所述数目是基于约束,所述约束是基于所述POC值及最大经解码图片缓冲器大小减去一。所述方法还可包含基于所述RPS而解码所述当前图片。

本发明的另一方面提供一种用于解码视频数据的装置。所述装置可包含经配置以存储来自位流的当前图片、当前图片的图片次序计数(POC)及一或多个参考图片的POC值的存储器,所述POC值及所述当前图片是从位流获得。所述装置还可具有可操作地耦合到所述存储器的处理器。所述处理器可基于所述当前图片的所述POC值及所述一或多个参考图片的所述POC值而确定具有所述一或多个参考图片的参考图片集(RPS)。所述处理器还可在视频参数集(VPS)扩展处于使用中的情况下将所述RPS中的所述一或多个参考图片识别为多个长期图片及多个短期图片中的至少一者,长期图片的所述数目及短期图片的所述数目是基于约束,所述约束是基于所述POC值及最大经解码图片缓冲器大小减去一。所述处理器还可基于所述RPS而解码所述当前图片。

通过借助于实例说明本发明的诸方面的以下描述,本发明的其它特征及优点应变得显而易见。

附图说明

本发明的实施例的关于其结构及操作两者的细节可通过研究附图而被部分地搜集,其中相同参考标号指代相同部分,且其中:

图1是视频译码系统的功能框图;

图2是图1的视频编码器的功能框图;

图3是说明图1的视频解码器的功能框图;

图4是说明经译码视频图片的序列的概念图;

图5是用于对视频数据进行编码的方法的流程图;且

图6是用于解码视频数据的方法的流程图。

具体实施方式

本发明提供可包含在多层视频译码方面的若干改进中的一或多者的译码的系统及方法,其包含用于改进某些语法元素的值范围的规范以用于对视频数据进行编码的方法。具体来说,在本文中建议对语法元素num_negative_pics、num_positive_pics及num_long_term_pics的值范围的某些改进。在HEVC中,基于根据如由伪代码指定的复杂过程导出的变量“maxNumPics”而指定语法元素“num_negative_pics”、“num_positive_pics”及“num_long_term_pics”的值范围。然而,如果短期参考图片集包含于序列参数集(sequence parameter set;SPS)中,那么用于伪代码中以导出maxNumPics的nuh_layer_id是不正确的,此是因为应该是参考SPS的层的nuh_layer_id而非SPS的nuh_layer_id。此外,甚至在此问题解决之后,如由伪代码指定的导出过程会给编码器或解码器的符合性检查强加不必要的复杂度。

下文参考附图更充分地描述新颖系统、设备及方法的各个方面。然而,本发明可以许多不同形式来体现,且不应将其解释为限于贯穿本发明所呈现的任何特定结构或功能。相反地,提供这些方面以使得本发明将透彻且完整,并且将向所属领域的技术人员充分传达本发明的范围。基于本文中的教示,所属领域的技术人员应了解,本发明的范围既定涵盖本文中所公开的无论是独立于本发明的任一其它方面还是与之组合而实施的新颖系统、设备和方法的任何方面。举例来说,可以使用本文中所阐述的任何数目个方面来实施设备或实践方法。另外,本发明的范围意图涵盖使用除本文中所阐述的本发明的各种方面之外的或不同于本文中所阐述的本发明的各种方面的其它结构、功能性或结构与功能性来实践的此设备或方法。应理解,可通过权利要求的一或多个要素来体现本文中所公开的任何方面。

尽管本文描述了特定方面,但这些方面的许多变化及排列落入本发明的范围内。尽管提及了优选方面的一些益处及优点,但本发明的范围并非意图限于特定益处、用途或目标。而是,本发明的方面意图广泛地适用于不同无线技术、系统配置、网络及发射协议,其中的一些是借助于实例而在图中以及在优选方面的以下描述中说明。具体实施方式和图式仅说明本发明,而不是限制由所附权利要求书和其等效物界定的本发明的范围。

视频译码系统

图1是视频译码系统的功能框图。视频译码系统(“系统”)10可以利用根据本发明中描述的方面的方法。如本文中所描述地使用,术语“视频译码器”一般指代视频编码器和视频解码器两者。在本发明中,术语“视频译码”或“译码”可一般地指代视频编码和视频解码。

如图1所示,系统10包含源装置12,该源装置可以产生待稍后通过目的地装置14解码的经编码的视频数据。源装置12和目的地装置14可包括各种各样裝置中的任一者,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能”电话,所谓的“智能”平板)、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,源装置12和目的地装置14可以用于无线通信。

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

经编码数据可从输出接口22输出到存储装置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可以对捕获、预捕获或计算机产生的视频进行编码。另外,在一些实施例中,视频解码器30可以基于第一位流的参数集ID和唯一参数集ID区分第一位流与第二位流。在其它实例中,源装置12的输出接口22可以经由链路16将经编码的视频数据直接地传输到目的地装置14。经编码视频数据也可以(或替代地)存储到存储装置34上以供稍后由目的地装置14或其它装置存取以用于解码和/或播放。

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

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

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

HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的进化的模型。HM假设视频译码装置根据例如ITU-T H.264/AVC相对于现有装置的若干额外容量。举例来说,虽然H.264提供了九种帧内预测编码模式,但是HM可提供多达三十三种帧内预测编码模式。

一般来说,HM的工作模型描述视频帧或图片可以分成包含明度及色度样本两者的一连串树块或最大译码单元(LCU)。树块具有与H.264标准的宏块类似的目的。切片包含按译码顺序的若干连续树块。视频帧或图片可以被分割成一或多个切片。每一树块可以根据四叉树分裂成译码单元(CU)。举例来说,作为四叉树的根节点的树块可分裂成四个子节点,且每一子节点又可为父代节点且可分裂成另外四个子节点。最后的未经分裂的子节点(作为四叉树的叶节点)包括译码节点,即,经译码视频块。与经译码位流相关联的语法数据可限定树块可分裂的最大次数,且还可限定译码节点的最小大小。

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而有所不同。可基于针对经分割LCU定义的给定CU内的PU的大小而对TU进行大小设定,但是情况可能并不总是如此。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的译码节点。在一些特定情况下,本发明还可使用术语“视频块”指代包含译码节点以及PU及TU的树块,即,LCU或CU。

视频编码器20可产生包括经编码视频数据的位流。位流可包含一系列网络抽象层(NAL)单元。NAL单元中的每一者可包含NAL单元标头,且可囊封原始字节序列有效负载(RBSP)。NAL单元标头可包含指示NAL单元类型代码的语法元素。由NAL单元的NAL单元标头规定的NAL单元类型代码指示NAL单元的类型。位流的NAL单元可包含视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元可包含图片的经译码切片。

非VCL NAL单元可包含VPS、序列参数集(SPS)、图片参数集(PPS)、SEI或其它类型的数据。VPS是可含有适用于0或大于0个完整经译码视频序列的语法元素的语法结构。SPS是可含有适用于0或大于0个完整经译码视频序列的语法元素的语法结构。单个VPS可适用于多个SPS。PPS为可含有适用于0或大于0个完整经译码图片的语法元素的语法结构。单个SPS可适用于多个PPS。VPS、SPS和PPS的各个方面可一般而言如HEVC标准所限定的形成。视频编码器20可使用SEI消息以在位流中包含正确解码图片的样本值所不需要的元数据。然而,视频解码器30或其它装置可使用包含于SEI消息中的元数据用于各种其它目的。举例来说,视频解码器30可使用SEI消息中的元数据用于图片输出计时、图片显示、丢失检测及错误隐藏。

图2是图1的视频编码器的功能框图。视频编码器20可以包含分割模块35,该分割模块经配置以接收所捕获的视频数据并且将视频数据分割成视频块。分割模块35可以将视频数据分割成切片、单元片或其它较大单元。分割模块35也可以例如根据LCU和CU的四分树结构来分割视频块。视频编码器20可以将切片划分成多个视频块(并且可能划分成被称作单元片的视频块的集合)。

视频编码器20也可以具有可操作地耦合到分割模块35且经配置以接收分割的视频数据的预测模块41。预测模块41可以基于错误结果(例如,译码速率和失真的水平)选择多个可能的译码模式中的一个,例如,多个帧内译码模式中的一或多个帧间译码模式中的一个用于当前视频块。预测模块41可以允许视频编码器20执行视频切片内的视频块的帧内和帧间译码。帧内译码依赖于空间预测来减少或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依靠时间预测来减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指代若干基于空间压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一者。

预测模块41可以包含运动估计模块42、运动补偿模块44及帧内预测模块46。这些组件中的每一个可以可操作地连接或集成在视频编码器20内的一或多个处理器中。虽然出于概念性目的单独地论述,但是运动估计模块42、运动补偿模块44和帧内预测模块46可以高度集成。

运动估计模块42可经配置以根据用于视频序列的预定模式为视频切片确定帧间预测模式。当前视频块的此类帧间预测或帧间预测译码相对于一或多个参考图片中的一或多个预测块可以提供时间压缩。预定模式可将序列中的视频切片标明为P切片、B切片或GPB切片。如本文所使用,运动估计可以通常指代产生运动向量的过程,该过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块的PU相对于参考帧或参考图片内的预测块的移位。参考帧可以存储在可操作地耦合到预测模块41的参考图片存储器64中。参考帧存储器64可以在滤波器模块63对经重建的译码块执行解块操作之后存储经重建的译码块。参考帧存储器64可以因此也操作为经解码图片缓冲器(DPB)。

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

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

运动补偿可涉及基于通过运动估计确定的运动向量提取或产生预测块。这可以包含到子像素精度的内插。在接收到当前视频块的PU的运动向量后,运动补偿模块44可在参考图片列表中的一者中定位运动向量指向的预测块。运动补偿模块44还可产生与视频块和视频切片相关联的供视频解码器30在对视频切片的视频块进行解码时使用的语法元素。

预测模块41的帧内预测模块46可以相对于相同帧或切片中的一或多个相邻块执行当前视频块的帧内预测译码以提供空间压缩。帧内预测模块46可以帧内预测当前块,作为对通过运动估计模块42和运动补偿模块44执行的帧间预测的替代方案,如上文所述。具体而言,帧内预测模块46可以确定用来对当前块进行编码的帧内预测模式。在一些实例中,帧内预测模块46可以使用各种帧内预测模式对当前块进行编码,例如,在单独编码通过期间。举例来说,帧内预测模块46可以使用速率失真分析计算用于各种经测试帧内预测模式的速率失真值,并且从所述经测试模式当中选择具有最佳速率失真特性的帧内预测模式。速率-失真分析可以确定经编码块与经编码以产生所述经编码块的原始未编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(即,位数目)。帧内预测模块46可以根据用于各种经编码块的失真和速率计算比率,以确定哪个帧内预测模式对于所述块呈现最佳速率失真值。

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

在预测模块41经由帧间预测或帧内预测产生用于当前视频块的预测性块之后,视频编码器20通过从当前视频块减去所述预测性块而形成残余视频块。此过程可以引起像素差值。像素差值形成用于所述块的残余数据,并且可包含明度及色度差分量这两者。可操作地耦合到预测模块41和分割模块35的求和器50表示可以被配置成执行此减法运算的组件。

残余块中的残余视频数据可包含在一或多个TU中且应用到可操作地耦合到求和器50的变换模块52。变换模块52可使用例如离散余弦变换(DCT)或概念上类似的变换的变换将残余视频数据变换成残余变换系数。变换模块52可将残余视频数据从像素域转换到变换域,例如,频域。预测模块41可以提供所得的帧内或帧间译码块到求和器50以产生残余块数据。所得的帧内或帧间译码块可以进一步提供求和器62以重建经编码块用作参考图片。

视频编码器20也可以包含可操作地耦合到求和器62的滤波器模块63。滤波器模块63可以表示一或多个环路滤波器,例如,解块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管滤波器模块63在图2中示出为环内滤波器,但在其它配置中,滤波器模块63可实施为环路后滤波器(post loop filter)。滤波器模块63可以提供参考图片到参考图片存储器64。

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

在量化之后,熵编码模块56可以对经量化的变换系数进行熵编码。举例来说,熵编码模块56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法。视频编码器20还可以对与经编码视频数据相关联的语法元素进行熵编码以供视频解码器30在解码视频数据时使用。

在通过熵编码模块56进行熵编码之后,经编码位流可以传输到视频解码器30。位流也可以存档用于稍后的传输或通过视频解码器30取回。熵编码模块56还可对正被译码的当前视频切片的运动向量和其它语法元素进行熵编码。

视频编码器20也可以包含可操作地耦合到熵编码模块56的逆量化模块58。逆变换模块60也可以可操作地耦合到逆量化模块58和求和器62。逆量化模块58和逆变换模块60可以分别应用逆量化和逆变换以在像素域中重建残余块,以供稍后用作参考图片的参考块。运动补偿模块44可以通过将残余块添加到参考图片列表中的一者内的参考图片中的一者的预测块中来计算参考块。求和器62可以将经重建的残余块添加到由运动补偿模块44产生的运动补偿预测块以产生参考块用于存储在参考图片存储器64中。参考块可由运动估计模块42和运动补偿模块44用作参考块以对后续视频帧或图片中的块进行帧间预测。

在一些实例中,视频编码器20产生位流。由视频编码器20产生的位流可包含可以作为子位流从位流中提取的多个操作点。操作点可例如包含多层和/或视图以及多个帧率。视频编码器20可以对指示VPS中的输出操作点的信息进行编码。在一些实例中,对于与位流相关联的VPS中的视频编码器20信号的每个操作点,操作点语法结构规定用于识别属于给定操作点的子位流的位流中的NAL单元的层识别符(ID)的集合。以此方式,组成给定操作点的子位流的NAL单元可基于NAL单元的层识别符从原始位流中提取出。

图3是说明图1的视频解码器的框图。出于解释的目的,本发明描述在HEVC译码的背景下的视频解码器30。然而,本发明可适用于其它译码标准或方法。

视频解码器30可以包含熵解码模块70、预测模块71、逆量化模块76、逆变换模块78、求和器80、滤波器模块84和经解码图片缓冲器(DPB)82。预测模块71可以包含运动补偿模块72和帧内预测模块74。在其它实例中,视频解码器30可包含更多、更少或不同功能组件。

经译码图片缓冲器(CPB)90可接收且存储位流的经编码视频数据(例如,NAL单元)。熵解码模块70可从CPB 90接收NAL单元,且解析NAL单元以解码语法元素。熵解码模块70可对NAL单元中的经熵编码语法元素进行熵解码。预测模块71、逆量化模块76、逆变换模块78、求和器80和滤波器模块84可以基于从位流中提取出的语法元素产生经解码视频数据。

位流的NAL单元可包含经译码切片的NAL单元。作为对位流进行解码的部分,熵解码模块70可从经译码的切片NAL单元中提取语法元素并且对所述语法元素进行熵解码。经译码的切片中的每一者可以包含切片标头以及切片数据。切片标头可以含有关于切片的语法元素。切片标头中的语法元素可包含识别与含有切片的图片相关联的PPS的语法元素。

除了对来自位流的语法元素进行解码之外,视频解码器30还可对未经分割的CU执行重建操作。为了在未分割的CU上执行重建操作,视频解码器30可以在CU的每个TU上执行重建操作。通过对CU的每个TU执行重建操作,视频解码器30可重建CU的残余块。

作为对CU的TU执行重建操作的部分,逆量化模块76可逆量化(即,解量化)与TU相关联的系数块。逆量化模块76可使用与TU的CU相关联的量化参数(QP)值以确定量化的程度,并且类似地确定逆量化单元模块76将应用的逆量化的程度。也就是说,可通过调整在量化变换系数时所使用的QP的值来控制压缩比,即用于表示原始序列与经压缩序列的位的数目的比率。压缩比还可取决于所采用的熵译码的方法。

在逆量化模块76逆量化系数块之后,逆变换模块78可将一或多个逆变换应用于系数块以便产生与TU相关联的残余块。举例来说,逆变换模块78可以将逆DCT、逆整数变换、逆定向变换或另一逆变换应用到系数块。

如果使用帧内预测对PU进行编码,那么帧内预测模块74可执行帧内预测以产生用于PU的预测块。帧内预测模块74可使用帧内预测模式,以基于空间上相邻的PU的预测块产生PU的预测性亮度、Cb和Cr块。帧内预测模块74可以基于从位流中解码的一或多个语法元素确定用于PU的帧内预测模式。

预测模块71可以基于自位流提取的语法元素构建第一参考图片列表(RefPicList0)和第二参考图片列表(RefPicList1)。此外,如果使用帧间预测对PU进行编码,那么熵解码模块70可以提取用于PU的运动信息。运动补偿模块72可基于PU的运动信息确定用于PU的一或多个参考区。运动补偿模块72可以基于PU的一或多个参考块处的样本块产生用于PU的预测亮度、Cb和Cr块。

求和器80可以在适当时使用与CU的TU相关联的亮度、Cb和Cr变换块以及CU的PU的预测亮度、Cb和Cr块(即,帧内预测数据或帧间预测数据)来重建CU的亮度、Cb和Cr译码块。举例来说,求和器80可以将亮度、Cb和Cr变换块的样本添加到预测亮度、Cb和Cr块的对应的样本以重建CU的亮度、Cb和Cr译码块。

滤波器模块84可以例如是解块滤波器,并且执行解块操作以减小与CU的亮度、Cb和Cr译码块相关联的成块假象。视频解码器30可随后将CU的亮度、Cb和Cr译码块存储在经解码图片缓冲器82中。经解码图片缓冲器82可提供参考图片以用于后续运动补偿、帧内预测和呈现在显示装置(例如图1的显示装置32)上。举例来说,视频解码器30可以基于经解码图片缓冲器82中的亮度、Cb和Cr块在其它CU的PU上执行帧内预测或帧间预测操作。因此,视频解码器30可从位流中解码显著亮度系数块的变换系数水平,逆量化变换系数水平,对变换系数水平应用变换以产生变换块、至少部分基于变换块而产生译码块,且输出译码块以用于显示。

参考图片集

HEVC指定参数集中的某些变量以供用于对经译码视频数据进行解码。参考图片集(RPS)是与包括按解码次序在相关联图片之前的所有参考图片的图片相关联的参考图片的集合,所述集合可用于对相关联图片或按解码次序在相关联图片之后的任何图片进行帧间预测。参考图片含有可用于对按解码次序的后续图片的解码过程进行帧间预测的样本。

在HEVC中,直接用信号发送每一经译码图片的RPS。用于RPS的信号发送的语法元素包含于序列参数集(SPS)及切片标头两者中。对于特定经译码图片,RPS可为包含于SPS中的替代集合中的一者,如由切片标头中的旗标所指示或直接用信号发送于切片标头中。

每一图片的参考图片集可包含参考图片的五个不同列表,其还被称作五个RPS子集:RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFoll、RefPicSetLtCurr及RefPicSetLtFoll。RefPicSetStCurrBefore包含在解码次序及输出次序两者中在当前图片之前且可用于当前图片的帧间预测中的短期参考图片(STRP)。RefPicSetStCurrAfter包含在解码次序中在当前图片之前、在输出次序中在当前图片之后且以用于当前图片的帧间预测中的短期参考图片。RefPicSetStFoll包含可用于在解码次序中在当前图片之后的图片中的一或多者的帧间预测中且不用于当前图片的帧间预测中的短期参考图片。RefPicSetLtCurr包含可用于当前图片的帧间预测中的长期参考图片。RefPicSetLtFoll包含可以用于在解码次序中在当前图片之后的图片中的一或多者的帧间预测中且不用于当前图片的帧间预测中的长期参考图片(LTRP)。

HEVC中的参考图片管理的RPS概念基本上不同于先前视频译码标准的参考图片管理。代替用信号将相对变化发送到DPB 82(图3),用信号将DPB 82的状态发送于每一切片中。此过程可将误差稳固性的基本水平提供于所有符合标准(例如,HEVC)的比特流及解码器中。

HEVC定义假想参考解码器(HRD),假想参考解码器模型化视频解码器30且描述CPB 90及DPB 82(图3)的使用情况。CPB 90及DPB 82可进一步是相似于参考帧存储器64(图2)的参考帧存储器的组件。经译码图片的解码次序与经译码图片在位流中出现的次序相同。HEVC进一步支持经解码图片的输出次序,其不同于所述图片的解码次序。每一图片与表示输出次序的图片次序计数(POC)值相关联。POC是与每一图片相关联的变量、从CVS中的所有图片当中唯一地识别相关联图片,且当相关联图片将从经解码图片缓冲器输出时,POC指示相对于将从DPB 82输出的同一CVS中的其它图片的输出次序位置,相关联图片在输出次序中的位置。

存在两种类型的参考图片:短期及长期。当参考图片变得不再为预测参考所需要时,参考图片还可被标记为“不用于参考”。在适用时,将这些标记中的一者指派给图片会隐式地移除这些标记中的另一者。当图片被提及为被标记为“用于参考”时,此总起来说是指所述图片被标记为“用于短期参考”或“用于长期参考”(而并非两者)。在这些三种状态(短期、长期及不用于参考)当中进行转换受经解码参考图片标记过程控制。在HEVC中,首先从当前图片的切片标头解码RPS,接着在解码当前图片之前应用图片标记及缓冲操作。

高级语法

NAL单元可含有由视频编码器20编码且发射到视频解码器30的语法元素。描述位流的结构或提供应用于多个图片或应用于图片内的多个经译码块区域的信息的语法元素(诸如参数集(例如,SPS、VPS、PPS等等))、参考图片管理语法及SEI消息被称为HEVC的“高级语法”(HLS)部分。

具体来说,HEVC使用与本发明相关的参数集结构。参数集含有可被共享以用于对经解码视频的若干区域进行解码的信息。参数集结构提供用于传达解码过程所必需的数据的稳固机制。

切片片段标头语义

HEVC中的每一切片标头包含用于用信号发送含有切片的图片的RPS的参数。RPS的短期部分(其在本文中还被称作短期RPS)可直接包含于切片标头中,或切片标头可仅含有表示参考发送于活动SPS中的RPS的预定列表的索引的语法元素。

在一些实例中,HEVC基于变量maxNumPics(其是根据如由伪代码指定的复杂过程进行导出)而指定语法元素num_negative_pics、num_positive_pics及num_long_term_pics的某些值范围。举例来说,以下伪代码可用以导出maxNumpics:

然而,当短期参考图片集包含于SPS中时,用于伪代码中以导出maxNumPics的nuh_layer_id是不正确的。实情为,用于伪代码中以导出maxNumPics的nuh_layer_id应该是参考SPS的层的nuh_layer_id而非SPS的nuh_layer_id。

接着在一些实施例中,可需要参考SPS的所有层的nuh_layer_id值的再一个环路以正确地参考nuh_layer_id。举例来说,除了用nuhLayerId[i](其中“i”是计数,相似于上述伪代码中的“j”)替换所述代码中的“nuh_layer_id”以外,可能还需要诸如(i=0;i<所有层的数目;i++)的额外线以正确地定义maxNumpics变量。此外,甚至在上述问题解决之后,由伪代码指定的导出过程会给编码器或解码器的符合性检查强加不必要的复杂度,从而负面地影响符合性测试。

长期参考图片

当存储于DPB 82中时,长期参考图片被标记为用于长期参考。在解码次序中的后续图片的解码过程中存在含有可用于帧间预测的样本的参考图片。直接用指定当前图片的RPS中的条目数目的变量num_long_term_pics来将长期参考图片用信号发送于切片标头中。如果在切片标头中未发现值,那么假定值为零。

RPS依赖于在HEVC标准的语义中所界定的变量的数目。举例来说,变量num_negative_pics(即,负片的数目)指代具有小于当前图片的POC计数的POC的POC的短期RPS中的条目数目。变量num_positive_pics(即,正片的数目)指代具有大于当前图片的POC值的POC的短期RPS中的条目数目。变量num_long_term_sps(即,长期SPS的数目)指代基于在活动SPS中指定的候选长期参考图片而导出的当前图片的长期RPS中的条目数目。变量num_long_term_pics指代直接用信号发送于切片标头中的当前图片的长期RPS中的条目数目。

在一些实施例中,为了解决上文提及的担忧,可改进这些语法元素的某些值范围以更准确地反映RPS及HRD的要求。可如下文所提及来改进通用切片片段标头语义。椭圆形指示为了简洁起见已移除而不影响本发明的部分。举例来说:

num_long_term_pics指定直接用信号发送于切片标头中的当前图片的长期RPS中的条目数目。当不存在时,推断num_long_term_pics的值等于0。

当nuh_layer_id等于0时,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。当vps_extension_flag等于1时,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于MaxDpbSize-1。

在一些实施例中,此改进将对变量“maxNumPics”的使用从num_long_term_pics的语义消除。因此,还可消除用于导出“maxNumPics”的过程。实情为,所述过程依赖于经解码图片缓冲器(例如,DPB 82)的最大大小或变量MaxDpbSize-1。如本文中所使用,MaxDpbSize是最大经解码图片缓冲器大小。

短期参考图片

短期参考图片集可具有语法结构st_ref_pic_set(stRpsIdx)。st_ref_pic_set(stRpsIdx)语法结构可存在于SPS或切片标头中。如果存在于切片标头中,那么st_ref_pic_set(stRpsIdx)语法结构指定当前图片(例如,含有切片的图片)的短期RPS。另外,以下内容也是需要的:1)在当前图片的所有切片标头中,st_ref_pic_set(stRpsIdx)语法结构的内容将是相同的;2)stRpsIdx的值将等于活动SPS中的语法元素num_short_term_ref_pic_sets;且3)当前图片的短期RPS还被称作在此条项的剩余部分中所指定的语义中的num_short_term_ref_pic_sets-th候选短期RPS。

在一些实例中,上文描述的许多变量也同样适用于短期RPS。

如果不存在于切片标头中而以其它方式存在于SPS中,那么st_ref_pic_set(stRpsIdx)语法结构指定候选短期(例如,ST)RPS。此外,如用于语义中的术语“当前图片”指代具有等于CVS(其具有SPS以作为活动SPS)中的stRpsIdx的short_term_ref_pic_set_idx(即,短期RPS索引)的每一图片。

可如下改进短期参考图片集语义:

num_negative_pics指定具有小于当前图片的图片次序计数值的图片次序计数值的stRpsIdx-th候选短期RPS中的条目数目。当nuh_layer_id等于0时,num_negative_pics的值将介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内且包含端值。当vps_extension_flag等于1时,num_negative_pics的值将介于0到MaxDpbSize-1的范围内且包含端值。

num_positive_pics指定具有大于当前图片的图片次序计数值的图片次序计数值的stRpsIdx-th候选短期RPS中的条目数目。当nuh_layer_id等于0时,num_positive_pics的值将介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范围内且包含端值。当vps_extension_flag等于1时,num_positive_pics的值将介于0到MaxDpbSize-1-num_negative_pics的范围内且包含端值。

以与上文相似的方式,此改进移除先前用于导出变量maxNumPics的过程,且依赖于最大DPB大小(MaxDpbSize)减去一以得出值范围。

图4是说明经译码视频图片的序列的概念图。以不同方式给图片加阴影以指示阶层式预测结构内的位置。举例来说,图片100、116及132是暗灰色阴影以表示图片100、116、132是在阶层式预测结构的顶部。举例来说,图片100、116、132可包括根据单个方向上的其它图片(例如,P图片)预测的经帧内译码图片或经帧间译码图片。当经帧内译码时,图片100、116、132是仅根据同一图片内的数据进行预测的。当经帧间译码时,图片116(例如)可相对于图片100的数据进行译码,如由从图片116到图片100的虚线箭头指示。图片116、132分别形成图片群组(GOP)134、136的关键图片。

图片108、124是中等灰色阴影以指示其是在图片100、116及132之后的下一编码阶层。图片108、124可包括双向的经帧间模式预测编码的图片。举例来说,可根据图片100及116的数据预测图片108,但是可根据图片116及132预测图片124。图片104、112、120及128是浅灰色阴影以指示其是在图片108及124之后的下一编码阶层。图片104、112、120及128也可包括双向的经帧间模式预测编码的图片。举例来说,可根据图片100及108预测图片104,可根据图片108及116预测图片112,可根据图片116及124预测图片120,且可根据图片124及132预测图片128。一般来说,假定参考图片仍然在经解码图片缓冲器中缓冲且假定参考图片比当前正被译码的图片较早地进行译码,可根据在阶层上部的任何参考图片来对在阶层下部的图片进行编码。

图片102、106、110、114、118、122、126及130是白色以指示这些图片是最后一个编码阶层。图片102、106、110、114、118、122、126及130可为双向的经帧间模式预测编码的图片。可根据图片100及104预测图片102,可根据图片104及108预测图片106,可根据图片108及112预测图片110,可根据图片112及116预测图片114,可根据图片116及120预测图片118,可根据图片120及124预测图片122,可根据图片124及128预测图片126,且可根据图片128及132预测图片130。应理解,可根据在译码阶层上部的其它图片来对在译码阶层下部的图片进行译码。举例来说,另外或在替代方案中,可相对于图片100、116或108中的任一者来预测图片102、106、110或114中的任一者或全部。

按显示次序说明图片100到132。也就是说,在解码之后,图片100在图片102之前显示,图片102在图片104之前显示等等。如上文所论述,POC值一般描述图片的显示次序,所述显示次序还与原始图片在被编码之前被捕获或产生的次序大体上相同。然而,归因于编码阶层,可按不同次序对图片100到132进行解码。此外,在被编码时,可按解码次序将图片100到132布置于包含图片100到132的经编码数据的位流中。举例来说,图片116可显示为是GOP 134的图片当中的最后一个。然而,归因于编码阶层,图片116可以是GOP 134中首先解码的。也就是说,举例来说,为了恰当地解码图片108,图片116可需要被首先解码以便充当图片108的参考图片。类似地,图片108可充当图片104、106、110及112的参考图片,且因此可需要在图片104、106、110及112之前被解码。

此外,某些图片可被处理成长期参考图片,而其它图片可被处理成短期参考图片。举例来说,图片100及116可表示长期参考图片,而图片108、104及112表示短期参考图片。情况可以如下:在此实例中,可相对于图片100、116、108或104中的任一者来预测图片102及106,但可相对于图片100、116、108或112中的任一者来预测图片110及114。换句话说,当对图片110及114进行译码时,图片104可能不可用于参考。作为另一实例,假定图片100及116表示长期参考图片且图片108、104及112表示短期参考图片,当对图片118、122、126及130进行译码时,图片108、104及112可能不可用于参考。

在一些实例中,可约束RPS中的长期参考图片的数目以便符合译码标准(例如,HEVC)。举例来说,可将图片的数目约束在值的有限集合内。这些值或值范围可通常在本文中被称作约束。在一些实施例中,值的此有限集合或约束可为整数值。在一些其它实施例中,值的有限集合可基于缓冲器大小或最大存储器大小,如下文所描述。在一些实例中,可约束值范围以使得编码器及解码器能够向用以表示语法元素的变量分配有限数目个位。一旦值范围经指定,即遵循约束以作为符合性测试的一部分在一些其它实例中,直接通过其它方法限制RPS的最大大小,然而,还可间接通过相关语法元素的值范围来限制RPS的最大大小。

如上文所提及,变量num_long_term_pics指定直接用信号发送于切片标头中的当前图片的长期RPS中的条目数目。当不存在于切片标头中时,推断num_long_term_pics的值等于0。另外,在基础层(nuh_layer_id等于零)中,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。当vps_extension_flag等于1时,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于MaxDpbSize-1。在一些实例中,“vps_extension_flag等于1”术语可指示VPS扩展处于使用中且存在并非基础层的至少一个层。

还可约束RPS中的短期图片的数目。短期图片(例如,st_ref_pic_set()语法结构)可包含语法元素或变量num_negative_pics及num_positive_pics。为了符合译码标准(例如,HEVC),还可将这些变量约束在某些限值内。举例来说,如上文所提及,num_negative_pics指定具有小于当前图片的图片次序计数值的图片次序计数值的stRpsIdx-th候选短期RPS中的条目数目。当nuh_layer_id等于0时(如在基础层中),num_negative_pics的值将介于零到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内且包含端值。当vps_extension_flag等于1时,num_negative_pics的值将介于0到MaxDpbSize-1的范围内。在一些实例中,“sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]加1”的值可指定需要进行缓冲的基础层的经解码图片的最大数目。

使用这些约束时,可导出语法元素num_long_term_pics、num_negative_pics及num_positive_pics的值范围。结果,视频编码器20、视频解码器30及其它位流符合性检查实体可检查这些语法元素的值是否在指定的值范围内。此外,视频编码器20可用信号将适当的RPS及参考图片列表发送到视频解码器30。随后,可接收到符合的经译码视频且在视频解码器30处解码所述视频。

视频编码器20及视频解码器30可经配置以使用参考图片集来对图片102到114、118到130及潜在地图片116及/或图片132中的全部或部分进行帧间译码。举例来说,在对图片100、116及132进行译码之后,视频编码器20及视频解码器30可对图片108进行译码。因此,图片100、116及/或132可包含于图片108的参考图片集中。在对图片108进行译码之后,视频编码器20及视频解码器30可继续对图片104进行译码。因此,图片100、116、132及/或108可包含于图片104的参考图片集中。

图5是用于对视频数据进行编码的方法的流程图。方法500指示用于基于参考图片集变量的某些约束而形成当前图片的参考图片集的方法。在框510处,视频编码器20可接收多个图片。多个图片可为由(例如)视频源18捕获的一系列图片。多个图片可为GOP(例如,GOP 134及GOP 136)中的一者,其中一个图片是待编码的当前图片。

在框520处,视频编码器20(或更确切地说,预测模块41),可确定当前图片的当前RPS。当前RPS可具有当前图片的一或多个参考图片(来自多个图片)。在一些实例中,在多个译码遍次期间(例如,根据多种不同的潜在参考图片),形成当前RPS可被执行多次。视频编码器20可基于速率失真优化(RDO)技术、特定译码标准(例如,HEVC)的简档及/或水平(其可指定在任何给定时间待存储于经解码图片缓冲器中的参考图片的最大数目)或其它此类特性来确定是否将特定参考图片包含于最终参考图片集中。

视频编码器20可根据当前RPS形成参考图片列表。在一些实例中,视频编码器20可形成两种参考图片列表:RefPicList0,其包含具有比当前图片早的显示次序的参考图片;及RefPicList1,其包含具有比当前图片晚的显示次序的参考图片。

在框530处,举例来说,视频编码器20可确定GOP 134、136中的每一图片的POC值。GOP 134、136中的每一图片可具有POC,所述POC识别GOP 134、136中(或例如,CVS中)的其它图片当中的相关联图片,且指示相对于待从DPB 82输出的同一CVS中的所有其它图片的输出次序,相关联图片在输出次序中的位置。举例来说,如果当前图片是图片116(图4),那么左侧的图片(例如,100到114)可具有小于图片116的POC的POC,而右侧的图片(例如,118到132)可具有高于图片116的POC。每一图片的POC可基于本文中所描述的约束来确定其作为参考图片的状态(例如,长期、短期)及其存储于RPS中的能力。

在框540处,视频编码器可对由RPS提供且被编码的图片的数目施加某些约束。举例来说,所述约束可影响用于当前图片的在RPS中识别的长期参考图片的数目。在一些实施例中,当nuh_layer_id等于0时(例如,基础层),NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。当vps_extension_flag等于1时,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于MaxDpbSize-1。这些值可因而受限制,这是因为包含当前图片(正被编码或解码)的所有经解码图片存储于DPB 82中。因此,RPS中的所有参考图片的数目不能大于DPB 82的大小减去一。

在一些实施例中,还可约束短期RPS。举例来说,当nuh_layer_id等于0时(对于基础层),num_negative_pics的值将介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内且包含端值。当vps_extension_flag等于1时,num_negative_pics的值将介于0到MaxDpbSize-1的范围内且包含端值。

在一些实施例中,还可约束正片的数目(num_positive_pics)。举例来说,当nuh_layer_id等于0时(对于基础层),num_positive_pics的值将介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范围内且包含端值。在另一实施例中,当vps_extension_flag等于1时,num_positive_pics的值将介于0到maxNumPics MaxDpbSize-1-num_negative_pics的范围内且包含端值。

在框550处,视频编码器20可基于所述约束而产生用于当前图片的识别RPS的至少一个语法元素。所述约束可进一步受RPS及GOP 134、136中的图片的数目以及DPB82的大小影响。

在框560处,视频编码器20可基于RPS及至少一个语法元素而对当前图片进行编码。

因此,方法500可用以在选择RPS中的参考图片时简化这些变量的约束。

图6是用于解码视频数据的方法的流程图。方法600可用于解码视频数据(例如,在方法500中经编码的视频数据)中。在框610处,视频解码器可接收位流且从位流获得当前图片及RPS。当前图片可在被解码之前存储为视频解码器30处的CPB 90中的经译码图片。RPS可含有用以解码当前图片的一或多个参考图片。

在框610处,视频解码器30可(例如)从切片标头获得当前图片的POC值。在一些实例中,仅可在当前图片的第一切片片段中需要此操作。位流中的每一经译码图片可具有POC值。经解码图片可用作当前图片的参考图片。因此,视频解码器30可获得一或多个参考图片的POC值。如上文所描述,POC可用以识别图片以用于导出合并模式及运动向量预测中的运动参数以及用于进行解码器符合性检查。

在框620处,视频解码器30可基于POC值而获得当前图片的RPS。可在解码切片标头之后而在解码译码单元之前及在解码参考图片列表之前,每个图片一次获得RPS。RPS可具有多个参考图片列表,所述参考图片列表是基于当前图片及参考图片(图4)的POC值构建。解码图像可存储于DPB 82中且被标记为“不用于参考”、“用于短期参考”或“用于长期参考”,但在解码过程期间的任何给定时刻仅被标记为三者中的一者。

在框630处,视频解码器可将RPS(及参考图片列表)中的一或多个参考图片识别为多个长期图片及多个短期图片中的至少一者,长期图片的数目及短期图片的数目是基于约束。在VPS扩展处于使用中的情况下,此类约束可基于POC值及最大经解码图片缓冲器大小减去一。在语法元素“vps_extension_flag”等于1的情况下可指示此情形。当位流中存在至少一个非基础层时,VPS扩展可处于使用中。

举例来说,在一些实施例中,在当前图片位于基础层中时(例如,nuh_layer_id等于0),NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。当vps_extension_flag等于1时,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的总和将小于或等于MaxDpbSize-1。这些值可因而受限制,这是因为包含当前图片(正被编码或解码)的所有经解码图片存储于DPB 82中。因此,RPS中的所有参考图片的数目不能大于DPB 82的大小减去一。

在一些实施例中,还可约束短期RPS。举例来说,当nuh_layer_id等于0时(对于基础层),num_negative_pics的值将介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范围内且包含端值。当vps_extension_flag等于1时,num_negative_pics的值将介于0到MaxDpbSize-1的范围内且包含端值。

在一些实施例中,还可约束正片的数目(num_positive_pics)。举例来说,当nuh_layer_id等于0时(对于基础层),num_positive_pics的值将介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范围内且包含端值。在另一实施例中,当vps_extension_flag等于1时,num_positive_pics的值将介于0到maxNumPics MaxDpbSize-1-num_negative_pics的范围内且包含端值。

在框640处,视频解码器30可接着基于RPS而对当前图片进行解码。以此方式,视频解码器30可接着使用如结合图5所描述的短期图片及长期图片的约束值。

结合本文揭示的实施例所描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件,或两者的组合。为清晰地说明硬件与软件的此可互换性,以上已大体就其功能性来描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本发明的范围。

本文中所描述的方法可以在硬件、软件、固件或其任何组合中实施。此类方法可以在多种装置中的任何一个中实施,例如,通用计算机、无线通信装置手机或具有包含无线通信装置手机和其它装置中的应用的多个用途的集成电路装置。被描述为模块或组件的任何特征可一起实施于集成逻辑装置中或分开来实施为离散但可互操作的逻辑装置。如果以软件实施,那么所述方法可至少部分地由包括程序代码的计算机可读数据存储媒体来实现,所述程序代码包含在执行时执行上文所描述的方法中的一或多个的指令。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如,随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体等等。另外或替代地,所述方法可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传送程序代码且可由计算机存取、读取和/或执行,例如,传播的信号或波。

程序代码可由处理器执行,所述处理器可包含一或多个处理器,例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此类处理器可以经配置以执行本发明中所描述的任何方法。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。相应地,如本文所使用术语“处理器”可以指上述结构中的任何一个、上述结构的任何组合或适用于本文中所描述的方法的实施的任何其它结构或设备。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码和解码的专用软件模块或硬件模块内或并入组合式视频编码器-解码器(CODEC)中。

本文中论述的译码方法可为实例视频编码和解码系统中的实施例。系统包含提供待在稍后时间由目的地装置解码的经编码视频数据的源装置。确切地说,源装置经由计算机可读媒体将视频数据提供到目的地装置。源装置和目的地装置可包括广泛范围的装置中的任一者,包含台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、所谓的“智能”板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频串流装置或类似者。在一些情况下,源装置和目的地装置可经装备以用于无线通信。

虽然本发明的实施例是在上文中针对具体实施例描述的,但是本发明的许多变化是可能的。举例来说,各种组件的数目可以增大或减小,确定电源电压的模块和步骤可以经修改以确定频率、另一系统参数或参数的组合。另外,可以不同于上文所描述的那些的组合对各种实施例的特征进行组合。

所属领域的技术人员将理解结合本文中所公开的实施例描述的各种说明性块和模块可以各种形式实施。上文已经大体上就其功能而言描述了一些块和模块。如何实施此类功能取决于施加于整个系统的设计约束。所属领域的技术人员可以针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起对本发明的范围的偏离。另外,模块、块或步骤内的功能的分组是为了易于描述。特定的功能或步骤可以从一个模块或块中移动或跨越模块或块分布而不会脱离本发明。

提供对所公开的实施例的先前描述以使得所属领域的技术人员能够制作或使用本发明的标的物。所属领域的技术人员将容易了解对这些实施例的各种修改,且可在不脱离本发明的精神或范围的情况下将本文中描述的一般原理应用到其它实施例。因此,应理解,本文中呈现的描述和图式表示本发明的当前优选的实施例,且因此表示广泛地由本发明涵盖的标的物。进一步理解,本本发明的范围充分涵盖对所属领域的技术人员而言可能显而易见的其它实施例,且本发明的范围因此仅受到所附权利要求书的限制。

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