参考图片选择转让专利

申请号 : CN201480064080.5

文献号 : CN105794207B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陶思平穆罕默德·蔡德·科班马尔塔·卡切维奇

申请人 : 高通股份有限公司

摘要 :

本发明描述其中包含视频解码器的装置向包含视频编码器的装置输出识别图片的信息的技术。所述视频编码器可确定可能已用以对所述所识别图片和/或在译码次序中在所述所识别图片之后的图片进行帧间预测编码的图片。所述视频编码器可基于所述所确定的图片和/或所述所识别图片中的一或多者对当前图片进行帧间预测编码。

权利要求 :

1.一种编码视频数据的方法,所述方法包括:

存储指示本该已用以对相应图片和之后的图片进行帧间预测编码的图片的信息,其中所述相应图片中的一个或多个存储于经解码图片缓冲器DPB中;

从包括视频解码器的装置接收信息,所述信息识别在所述视频解码器发射所述信息时存储在所述视频解码器的经解码图片缓冲器DPB中的先前经解码图片;

检索指示本该已用以对所识别图片和之后的图片进行帧间预测编码的图片的所存储信息;

基于所述所识别图片和经检索信息确定可用于编码当前图片的一或多个候选参考图片,其中所述一或多个候选参考图片包含先前在所述所识别图片的编码期间基于所述经检索信息确定为可用于对所述所识别图片进行帧间预测编码或先前在所述所识别图片之后的图片的编码期间确定为用于对在译码次序中在所述所识别图片之后的所述图片进行帧间预测编码且仍存储在视频编码器的DPB中的一或多个图片;

从所述所确定的一或多个候选参考图片和所述所识别图片为所述当前图片选择一或多个参考图片;以及基于所述选定的一或多个参考图片对所述当前图片进行帧间预测编码。

2.根据权利要求1所述的方法,其进一步包括:

在稍后由所述视频解码器识别的可用图片的所述编码期间以及在所述当前图片的所述编码之前,构建以下各项中的一者或一者以上:第一参考图片子集,其包含在显示次序中在所述可用图片之前且确定为可用于对所述可用图片进行帧间预测且确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测的任何短期参考图片;

第二参考图片子集,其包含在显示次序中在所述可用图片之后且确定为可用于对所述可用图片进行帧间预测且确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测的任何短期参考图片;

第三参考图片子集,其包含确定为可用于对所述可用图片进行帧间预测且确定为可用于对在译码次序中在所述可用图片之后的一或多个图片进行帧间预测的任何长期参考图片;

第四参考图片子集,其包含确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测且确定为不可用于对所述可用图片进行帧间预测的任何短期参考图片;以及第五参考图片子集,其包含确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测且确定为不可用于对所述可用图片进行帧间预测的任何长期参考图片,其中所述第一、第二、第三、第四和第五参考图片子集中的一或多者中的图片包括先前确定为可用于对所述可用图片进行帧间预测编码或先前确定为可用于对在译码次序中在所述可用图片之后的图片进行帧间预测编码的图片,且其中确定一或多个候选参考图片包括从所述第一参考图片子集、所述第二参考图片子集、所述第三参考图片子集、所述第四参考图片子集和所述第五参考图片子集中的一或多者确定一或多个候选参考图片。

3.根据权利要求2所述的方法,其中确定一或多个候选参考图片包括从所述第一、第二和第三参考图片子集,而不从所述第四和第五参考图片子集确定一或多个候选参考图片。

4.根据权利要求2所述的方法,其中确定一或多个候选参考图片包括从所述第一和第二参考图片子集,而不从所述第三、第四和第五参考图片子集确定一或多个候选参考图片。

5.根据权利要求1所述的方法,其进一步包括:

基于所述所识别图片不存储在所述视频编码器的所述经解码图片缓冲器DPB且基于所述经检索信息确定所述所识别图片不可用于编码所述当前图片;以及基于确定的所述所识别图片不可用于编码所述当前图片来对所述当前图片进行帧内预测编码。

6.根据权利要求1所述的方法,其进一步包括:

接收识别丢失的图片的信息;以及

将所述丢失的图片从所述所确定的一或多个候选参考图片排除。

7.根据权利要求1所述的方法,其中基于所述选定的一或多个参考图片对所述当前图片进行帧间预测编码包括基于来自所述选定参考图片的两个图片对所述当前图片进行双向预测编码。

8.一种用于编码视频数据的装置,所述装置包括:

第一经解码图片缓冲器DPB,其包括经配置以存储一或多个图片的存储器;以及视频编码器,其包括一或多个处理器,其中所述视频编码器经配置以:存储指示本该已用以对相应图片和之后的图片进行帧间预测编码的图片的信息,其中所述相应图片中的一个或多个存储于所述第一经解码图片缓冲器DPB中;

从包括视频解码器的装置接收信息,所述信息识别在所述视频解码器发射所述信息时存储在所述视频解码器的第二DPB中的先前经解码图片;

检索指示本该已用以对所识别图片和之后的图片进行帧间预测编码的图片的所存储信息;

基于所述所识别图片确定可用于编码当前图片的一或多个候选参考图片,其中所述一或多个候选参考图片包含先前在所述所识别图片的编码期间基于经检索信息确定为可用于对所述所识别图片进行帧间预测编码或先前在所述所识别图片之后的图片的编码期间确定为可用于对在译码次序中在所述所识别图片之后的所述图片进行帧间预测编码且仍存储在视频编码器的所述第一DPB中的一或多个图片;

从所述所确定的一或多个候选参考图片和所述所识别图片为所述当前图片选择一或多个参考图片;以及基于所述选定的一或多个参考图片对所述当前图片进行帧间预测编码。

9.根据权利要求8所述的装置,其中所述视频编码器经配置以:

在稍后由所述视频解码器识别的可用图片的所述编码期间以及在所述当前图片的所述编码之前,构建以下各项中的一者或一者以上:第一参考图片子集,其包含在显示次序中在所述可用图片之前且确定为可用于对所述可用图片进行帧间预测且确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测的任何短期参考图片;

第二参考图片子集,其包含在显示次序中在所述可用图片之后且确定为可用于对所述可用图片进行帧间预测且确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测的任何短期参考图片;

第三参考图片子集,其包含确定为可用于对所述可用图片进行帧间预测且确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测的任何长期参考图片;

第四参考图片子集,其包含确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测且确定为不可用于对所述可用图片进行帧间预测的任何短期参考图片;以及第五参考图片子集,其包含确定为可用于对在译码次序中在所述可用图片之后的所述一或多个图片进行帧间预测且确定为不可用于对所述可用图片进行帧间预测的任何长期参考图片,其中所述第一、第二、第三、第四和第五参考图片子集中的一或多者中的图片包括先前确定为可用于对所述可用图片进行帧间预测编码或先前确定为可用于对在译码次序中在所述可用图片之后的图片进行帧间预测编码的图片,且其中,为了确定一或多个候选参考图片,所述视频编码器经配置以从所述第一参考图片子集、所述第二参考图片子集、所述第三参考图片子集、所述第四参考图片子集和所述第五参考图片子集中的一或多者确定一或多个候选参考图片。

10.根据权利要求9所述的装置,其中,为了确定一或多个候选参考图片,所述视频编码器经配置以从所述第一、第二和第三参考图片子集,而不从所述第四和第五参考图片子集确定一或多个候选参考图片。

11.根据权利要求9所述的装置,其中,为了确定一或多个候选参考图片,所述视频编码器经配置以从所述第一和第二参考图片子集,而不从所述第三、第四和第五参考图片子集确定一或多个候选参考图片。

12.根据权利要求8所述的装置,其中所述视频编码器经配置以:

基于所述经检索信息确定所述所识别图片不可用于编码所述当前图片;以及基于确定的所述所识别图片不可用于编码所述当前图片来对所述当前图片进行帧内预测编码。

13.根据权利要求8所述的装置,其中所述视频编码器经配置以:

接收识别丢失的图片的信息;以及

将所述丢失的图片从所述所确定的一或多个候选参考图片排除。

14.根据权利要求8所述的装置,其中为了基于所述的选定一或多个参考图片对所述当前图片进行帧间预测编码,所述视频编码器经配置以基于来自所述选定参考图片的两个图片对所述当前图片进行双向预测编码。

说明书 :

参考图片选择

[0001] 本申请案主张2013年12月2日申请的第61/910,766号美国临时专利申请案的权益,所述临时专利申请案的全部内容以引用的方式并入本文中。

技术领域

[0002] 本发明涉及视频译码(即,视频编码或视频解码)。

背景技术

[0003] 数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频串流装置等。数字视频装置实施视频压缩技术,例如在由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)定义的标准、目前正在开发的高效率视频译码(HEVC)标准及此类标准的扩展中所描述的视频压缩技术。视频装置可通过实施此类视频压缩技术来更高效地发射、接收、编码、解码和/或存储数字视频信息。
[0004] 视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可分割成若干视频块,所述视频块也可被称作树块、译码单元(CU)和/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测来编码图片的经帧内译码(I)切片中的视频块。图片的经帧间编码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称作帧,且参考图片可被称作参考帧。
[0005] 空间或时间预测导致待译码块的预测性块。残差数据表示待译码原始块与预测性块之间的像素差。经帧间译码块是根据指向形成预测性块的参考样本块的运动向量和指示经译码块与预测块之间的差的残差数据来编码的。根据帧内译码模式和残差数据来编码经帧内译码块。为了进一步压缩,可将残差数据从像素域变换到变换域,从而产生残差变换系数,可接着量化所述残差变换系数。可扫描一开始按二维阵列排列的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码来实现更多压缩。

发明内容

[0006] 本发明描述用于基于视频解码器所输出的信息来确定从中选择一或多个参考图片来编码和解码当前图片的图片的实例技术。举例来说,视频解码器可将识别存储在视频解码器的缓冲器中的先前经解码图片的信息输出到视频编码器。所述视频编码器接收来自视频解码器的输出信息,且可基于以下各项来确定可用于译码的图片:所识别的图片、确定是可能已成为所识别图片的参考图片的图片,和/或在译码次序中在所述所识别图片之后的图片。所述视频编码器接着可利用确定为可用于译码的图片中的一或多者来对当前图片进行帧间预测。
[0007] 举例来说,不是确定是可能已成为所识别图片和在译码次序中在所识别图片之后的图片的参考图片的图片的所有图片均可用于译码。然而,存在以下相对较高的确定性:如果确定为可能已成为所识别图片的参考图片的图片以及在译码次序中在所识别图片之后的图片仍可用于供视频编码器编码当前图片,那么那些图片也将可用于供视频解码器解码当前图片。以此方式,视频编码器可能够从多个图片而不是仅所识别图片进行选择,以便以选定图片将在视频解码器处可用于解码当前图片的相对较高的确定性来编码当前图片。
[0008] 在一个实例中,本发明描述一种编码视频数据的方法,所述方法包括:在视频解码器发射了识别存储在所述视频解码器的经解码图片缓冲器(DPB)中的先前经解码图片的信息时,从包括视频解码器的装置接收所述信息;基于所识别的图片来确定可用于编码当前图片的一或多个候选参考图片,其中所述一或多个候选参考图片包含先前确定为可用于对所识别图片或在译码次序中在所述所识别图片之后的图片中的一或多者进行帧间预测编码且仍存储在视频编码器的DPB中的一或多个图片;从所述所确定的一或多个候选参考图片和所述所识别图片为当前图片选择一或多个参考图片;以及基于选定的一或多个参考图片来对当前图片进行帧间预测编码。
[0009] 在一个实例中,本发明描述一种解码视频数据的方法,所述方法包括:在输出识别存储在视频解码器的经解码图片缓冲器(DPB)中的先前经解码图片的信息时,向包括视频编码器的装置输出所述信息;用一或多个候选参考图片来对当前图片进行帧间预测解码,其中所述一或多个候选参考图片包含所述视频编码器先前确定为可用于对所识别图片进行帧间预测编码的一或多个图片。
[0010] 在一个实例中,本发明描述一种用于编码视频数据的装置,所述装置包括:第一经解码图片缓冲器(DPB),其包括经配置以存储一或多个图片的存储器;以及视频编码器,其包括一或多个处理器。所述视频编码器经配置以:在视频解码器发射识别存储在视频解码器的第二DPB中的先前经解码图片的信息时,从包括视频解码器的装置接收所述信息;基于所述所识别图片来确定可用于编码当前图片的一或多个候选参考图片,其中所述一或多个候选参考图片包含先前确定为可用于对所识别图片或在译码次序中在所识别图片之后的图片中的一或多者进行帧间预测编码且仍存储在第一DPB中的一或多个图片;从所述所确定的一或多个候选参考图片和所述所识别图片为所述当前图片选择一或多个参考图片;且基于选定的一或多个参考图片对当前图片进行帧间预测编码。
[0011] 在一个实例中,本发明描述一种用于解码视频数据的装置,所述装置包括:经解码图片缓冲器(DPB),其包括经配置以存储一或多个图片的存储器;以及视频解码器,其包括一或多个处理器。所述视频解码器经配置以:在输出识别存储在视频解码器的DPB中的先前经解码图片的信息时,向包括视频编码器的装置输出所述信息;且用一或多个候选参考图片来对当前图片进行帧间预测解码,其中所述一或多个候选参考图片包含所述视频编码器先前确定为可用于对所识别图片进行帧间预测编码的一或多个图片。
[0012] 在附图和下文描述中陈述本发明的一或多个实例的细节。其它特征、目标和优点将从所述描述、图式以及所附权利要求书而显而易见。

附图说明

[0013] 图1是说明可利用本发明中描述的技术的实例视频编码和解码系统的框图。
[0014] 图2是说明可实施本发明中描述的技术的实例视频编码器的框图。
[0015] 图3是说明可实施本发明中描述的技术的实例视频解码器的框图。
[0016] 图4是说明编码视频数据的实例方法的流程图。
[0017] 图5是说明解码视频数据的实例方法的流程图。
[0018] 图6是说明编码视频数据的另一实例方法的流程图。
[0019] 图7是说明解码视频数据的另一实例方法的流程图。

具体实施方式

[0020] 本发明中描述的技术大体上涉及视频译码,包含实时视频应用程序的实例。举例来说,本发明中描述的技术可适用于视频电话或视频会议,其中在视频电话或会议的每一侧上实时编码和解码视频。作为另一实例,本发明中描述的技术可适用于实况流式传输,其中正实时编码实况事件的视频来进行广播。然而,本发明中描述的技术不应被视为限于视频电话、视频会议或实况事件的实时视频编码。本发明中描述的技术可适用于视频译码,其中视频解码器能够向正编码发射到视频解码器的视频数据的视频编码器发射信息。
[0021] 在实时视频译码中,视频解码器可经配置以与视频编码器(例如使用实时传输协议(RTP))通信,以使视频编码器确定可用于译码的图片,视频编码器从所述图片选择一或多个参考图片来对当前图片进行帧间预测编码。可存在视频解码器可与视频编码器通信以确定可用于译码的此类图片的各种原因,且本发明中描述的技术不限于视频解码器可与视频编码器通信以确定可用于译码的此类图片的任何特定原因。
[0022] 在一些实例中,视频解码器可与视频编码器通信,以使视频编码器确定候选参考图片(即,可用于译码的图片),使得视频编码器选择参考图片来对当前图片进行帧间预测编码,针对所述当前图片,存在这些参考图片将在视频解码器的缓冲器(例如经解码图片缓冲器(DPB))中可用的相对较高确定性水平。作为仅出于说明的目的的实例,视频解码器可与视频编码器通信,以出于限制错误传播的目的而使视频编码器确定候选参考图片。
[0023] 在一些情况下,视频解码器可不接收重构图片所需的视频数据中的一些或全部。视频解码器不能够重构的图片被称作丢失的图片。除视频解码器不能够输出丢失的图片之外,如果将丢失的图片用作后续图片的参考图片,那么解码错误传播,因为视频解码器可能不能够重构此后续图片。
[0024] 为了限制传播错误,视频解码器可向视频编码器输出视频编码器用来选择参考图片来对当前图片进行帧间预测的信息,针对所述当前图片,存在参考图片存储在视频解码器的DPB中的相对较高概率。在一些情况下,可几乎保证选定图片在视频解码器的DPB中。以此方式,通过使用具有存在于视频解码器的DPB中的相对较高概率的图片,视频编码器可不使用丢失的图片作为参考图片,且视频解码器将能够重构当前图片而无错误。
[0025] 应理解,出于说明的目的而描述限制错误传播,且还可出于其它原因执行信息从视频解码器到视频编码器的传送。出于除限制错误传播之外或不同于限制错误传播的原因,视频解码器可输出视频编码器用来选择参考图片的信息。举例来说,在不存在丢失的图片的实例中,视频解码器可输出视频编码器用来选择参考图片的信息。
[0026] 在本发明中描述的技术中,视频解码器可向视频编码器发射信息,其中在视频解码器向视频编码器发射所述信息的时刻,所述信息识别当前存储在视频解码器的DPB中的先前经解码图片。所识别的图片可对应于一个可能候选参考图片(即,所识别的图片可为可用于译码的图片中的一者)。然而,根据本发明中描述的技术,除所识别的图片之外,视频编码器已确定为所识别图片的可能参考图片的一或多个图片也是额外候选参考图片(即,视频编码器已确定为所识别图片的可能参考图片的一或多个图片是可用于译码的图片,且在一些实例中,还包含所识别图片的参考图片的可能参考图片)。应注意所识别图片的可能参考图片中的一或多者可能已成为所识别图片的实际参考图片。换句话说,“所识别图片的可能参考图片”不应被解释为排除实际上用以对所识别图片进行帧间预测的参考图片。
[0027] 在一些实例中,在编码图片时,视频编码器可确定可能已用以对图片(包含实际上用以对图片进行帧间预测编码的图片)进行帧间预测编码的图片。视频编码器可存储指示可能已用以对相应图片和之后的图片进行帧间预测编码的图片的信息。响应于从视频解码器接收到识别特定图片的信息,视频编码器可检索指示可能已用以对所识别图片和之后的图片进行帧间预测编码的图片的所存储信息。视频编码器可确定检索到的信息中所指示的哪些图片仍存储在视频编码器的缓冲器中,且接着可从所述所确定的图片选择一或多个参考图片来对当前图片进行帧间预测编码。
[0028] 举例来说,高效视频译码(HEVC)标准定义视频编码器和视频解码器为每一图片建构的多个参考图片子集。对于特定图片,所述参考图片子集中的三个指示可潜在地用以对特定图片和在解码次序中在所述特定图片之后的图片进行帧间预测的参考图片。所述参考图片子集中的两者指示不可用于对特定图片进行帧间预测但可潜在地用以对在解码次序中在所述特定图片之后的图片进行帧间预测的参考图片。术语“参考图片集”是指多个参考图片子集的组合。
[0029] 根据HEVC标准来配置的视频编码器和视频解码器可采用HEVC标准中定义的参考图片子集来实施本发明中所描述的实例技术。然而,对于根据H.264/AVC标准或以其它方式配置的视频编码器和视频解码器,可不具有预定义的参考图片子集。对于此类视频编码器和视频解码器,视频编码器可经配置以维持视频编码器可能已用于对图片进行帧间预测的可能参考图片的列表。
[0030] 为了便于理解,如本发明中所使用,术语特定图片的“图片集”是指可能已用以对特定图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片。作为一个实例,在HEVC的上下文中,术语特定图片的“图片集”是指图片,但不一定是特定图片的参考图片集中的所有图片。作为另一实例,在H.264/AVC或其它的上下文中,术语特定图片的“图片集”是指所维持的图片列表中所指示的视频编码器可能已用于对特定图片进行帧间预测的图片。
[0031] 在本发明中描述的技术中,响应于接收到识别存储在视频解码器的DPB中的图片的信息,视频编码器可确定所识别图片的图片集中的哪些图片仍在视频编码器的DPB中可用(即,当前存储在视频编码器的DPB中),且在一些实例中,视频编码器还可确定所识别图片的图片集中的图片的图片集中的哪些图片仍在视频编码器的DPB中可用。被认为是可用于译码当前图片的图片(即,当前图片的候选参考图片)的图片可包含:确定为在所识别图片的图片集中的图片、所识别图片的图片集中的图片的图片集中仍在视频编码器的DPB中可用的图片,以及所识别图片本身。视频编码器可从所述图片选择可用于译码当前图片的一或多个参考图片,并根据选定参考图片来对当前图片进行帧间预测。
[0032] 一般来说,可存在以下非常高的确定性(例如几乎保证):在视频编码器编码当前图片时存储在视频编码器的DPB中的图片(其可能已成为所识别图片和在译码次序中在所识别图片之后的图片的参考图片)在视频解码器解码当前图片时还存储在视频解码器的DPB中。此非常高的确定性可归因于在视频编码器将图片从其DPB去除之后视频解码器将图片从其DPB去除的事实。换句话说,如果DPB中存在可能已用以对所识别图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片,且视频编码器尚未将图片从其DPB去除,那么存在非常高的视频解码器尚未将图片从其DPB去除的可能性。因此,尽管视频编码器的DPB中不是所有的图片均需要在视频解码器的DPB中,且反之亦然,但如果视频编码器的DPB中存在可能已用以对所识别图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片(视频解码器将其识别为存储在其DPB中的图片),那么几乎保证所述图片将在视频解码器的DPB中。
[0033] 在本发明中描述的技术中,视频编码器可能够确定可用于对当前图片进行帧间预测的多个图片,其已知可用于视频解码器的解码。举例来说,视频解码器可有可能发射识别其DPB中的多个图片的信息,且使视频编码器接着选择这些所识别图片中的一或多者作为当前图片的参考图片。然而,使视频解码器发射识别其DPB中的多个图片的信息可为带宽密集的。然而,使视频解码器仅识别一个图片,且使视频编码器使用所述一个图片来对当前图片进行帧间预测可导致较差的译码效率,这又导致较高的带宽利用率。
[0034] 本发明中描述的技术可允许视频解码器仅识别其DPB中的几个图片(例如一或多个图片),并使视频编码器基于可全部用以对当前图片进行帧间预测的所识别图片(例如所识别图片的参考图片集中仍在视频编码器的DPB中可用的图片)来确定额外图片(例如多个图片)。以此方式,本发明中描述的技术要求较低的带宽利用率(例如视频解码器可输出识别一个图片的信息),但提供较高的译码效率,因为视频编码器可从多个图片选择将提供用于对当前图片进行帧间预测的最佳译码效率的图片。
[0035] 举例来说,视频编码器可从包含视频解码器的装置接收信息,所述信息识别在视频解码器发射所述信息时(例如当视频解码器发射识别图片的信息时,所述图片存储在视频解码器的DPB中)存储在视频解码器的DPB中的先前经解码图片。视频编码器可基于所识别的图片来确定可用于编码当前图片的一或多个候选参考图片。所述一或多个候选参考图片包含先前确定为可用于对所识别图片或在译码次序中在所识别图片之后的图片中的一或多者进行帧间预测编码且仍存储在视频编码器的DPB中的一或多个图片。视频编码器可从所述所确定的一或多个候选参考图片和所述所识别图片为当前图片选择一或多个参考图片。视频编码器接着可基于选定的一或多个参考图片对当前图片进行帧间预测编码。
[0036] 在本发明中所描述的实例技术中,视频解码器可向包含视频编码器的装置输出信息,所述信息识别在输出所述信息时存储在其DPB中的先前经解码图片。视频解码器可用一或多个候选参考图片对当前图片进行帧间预测解码。所述一或多个候选参考图片包含视频编码器先前确定为可用于对所识别图片进行帧间预测编码的一或多个图片。
[0037] 图1是说明可利用本发明中所描述的技术的实例视频编码和解码系统10的框图。如图1中所示,系统10包含装置12和装置14。在一些实例中,装置12和装置14可为用于视频电话或视频会议的裝置,其中“实时”(例如在捕获、编码和发射以及接收、解码并以非常少的延迟显示时)编码和解码视频。为易于描述,相对于视频电话或视频会议来描述所述技术,但所述技术不限于此。在一些实例中,所述技术可用于实况流式传输。本发明中描述的技术不必限于实时应用。
[0038] 装置12和装置14可包括各种各样的裝置中的任一者,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”平板电脑、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置等。在一些情况下,装置12和装置14可经装备以用于无线通信。
[0039] 对于实时视频,装置12可发射装置14解码的视频,且装置14可发射装置12解码的视频。在此意义上,在一些情况下,装置12可充当源装置和目的地装置两者,且装置14可充当目的地装置和源装置两者。
[0040] 举例来说,将装置12说明为包含例如用于发射视频的视频编码器20A的组件,且将装置14说明为包含例如用于接收视频数据的视频解码器30B的组件。然而,由于装置也可能需要接收视频,因此装置12也可包含视频解码器30A。并且,由于装置14也可能需要发射视频,因此装置14也可包含视频编码器20B。
[0041] 为易于描述,相对于发射装置14接收的视频的装置12来描述所述技术。然而,应理解装置14也发射视频,在一些实例中,一般来说,且可经配置以将数据发射到装置12。
[0042] 举例来说,在一些实例中,装置12和装置14可彼此通信,其中两个裝置经配置以向彼此发射数据和从彼此接收数据。在实时视频应用,装置14可需要发射数据(例如其自身的经编码视频或一些其它数据,例如装置12用来编码装置14接收的视频的信息)。因此,如图1中所示,装置14可包含用以向装置12发射数据的组件(例如视频源18B、视频编码器20B,以及将经编码视频从视频编码器20B发射到装置12的输入/输出接口22B)。类似地,如图1中所示,装置12可包含用以从装置14接收数据的组件(例如输入/输出接口22A、视频解码器30A、显示装置31A)。
[0043] 换句话说,装置12和装置14可包含大体上类似的组件来允许双向通信。举例来说,视频源18A和视频源18B可捕获相应的视频。视频编码器20A编码来自视频源18A的视频,且视频编码器20B编码来自视频源18B的视频。输入/输出接口22A经由链路16将视频数据从视频编码器20A发射到输入/输出接口22B,且输入/输出接口22B经由链路16将视频数据从视频编码器20B发射到输入/输出接口22A。输入/输出接口22B可将视频发射到视频解码器30B以用于视频解码,且接着从视频解码器30B发射到显示装置31B,以供显示。输入/输出接口22A可将视频发射到视频解码器30A以用于视频解码,且接着从视频解码器30A发射到显示装置31A,以供显示。
[0044] 尽管在其中装置12和装置14发射和接收视频的视频电话或视频会议的上下文中描述实时视频应用的以上实例,但本发明中描述的技术不限于此。在一些实例中,装置12可将实况事件的视频数据发射到装置14。在此实例中,装置12可无需从装置14接收视频(且无需包含视频解码器30A或显示装置31A);然而,本发明中描述的技术适用于实时视频应用的此类实例。
[0045] 装置12和装置14可经由链路16发射和接收待解码的经编码视频数据。链路16可包括能够在装置12与装置14之间移动经编码视频数据的任何类型的媒体或装置。在一个实例中,链路16可包括使装置12和装置14能够实时地直接向彼此发射经编码视频数据的通信媒体。可根据通信标准(例如无线通信协议)来调制并发射经编码视频数据。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线。通信媒体可形成基于分组的网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换器、基站或可用于促进从源装置12到目的地装置14的通信的任何其它设备。以此方式,链路16充当装置12和装置14借此执行双向通信的媒体。
[0046] 在本文所述的一些实例中,可经由双向协议来传送视频位流。举例来说,实例协议可为例如基于因特网协议(IP)的实时传输协议(RTP)。明确地说,一些实例包含用于RTP和类似协议的额外协议消息,来改进如本文中所论述的流式传输通信。RTP通常用于视频电话和视频会议,以及用于流式传输实况内容。
[0047] 举例来说,在图1中,以指向相应的输入/输出接口22A和22B的双箭头来说明视频解码器30A、视频编码器20A、视频解码器30B和视频编码器20B。在一些实例中,除接收视频数据之外,视频解码器30A可发射由视频编码器20B用来进行视频编码的信息,且除接收视频数据之外,视频解码器30B可发射由视频编码器20A用来进行视频编码的信息。信息从视频解码器30A到视频编码器20B和从视频解码器30B到视频编码器20A的此发射可根据RTP(例如RTP的额外协议消息)或可根据类似协议,已允许信息从视频解码器到视频编码器的实时发射。
[0048] 或者,可将经编码数据从输入/输出接口22A输出到存储装置32,以供输入/输出接口22B存取。类似地,可将经编码数据从输入/输出接口22B输出到存储装置32,以供输入/输出接口22A存取。存储装置32可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置32可对应于文件服务器或另一中间存储装置,其可保持装置12或装置14产生的经编码视频以供另一者以后存取。文件服务器可为能够存储经编码视频数据和发射所述经编码视频数据的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络连接存储(NAS)装置或本地磁盘驱动器。装置12和装置14可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置32的发射可为流式发射、下载发射或两者的组合。
[0049] 本发明的技术未必限于无线应用或设定。所述技术可应用于视频译码以支持多种多媒体应用中的任一者,例如空中电视广播、有线电视发射、卫星电视发射、流式视频发射(例如,经由因特网)、编码数字视频以用于存储在数据存储媒体上、解码存储在数据存储媒体上的数字视频或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
[0050] 在一些情况下,输入/输出接口22A和22B可各自包含调制器/解调器(调制解调器)和/或发射器。在装置12和装置14中,视频源18A和18B可分别包含来源,例如视频捕获装置(例如摄像机),包含先前所捕获的视频的视频存档,用于从视频内容提供者接收视频的视频馈入接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统,或此类来源的组合。作为一个实例,如果视频源18A和18B是视频相机,那么装置12和装置14可形成所谓的相机电话或视频电话。然而,本发明中所描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。
[0051] 视频编码器20A和20B中的对应一者可编码捕获、预先捕获或计算机产生的视频。可经由相应的输入/输出接口22A和22B将经编码视频数据直接从装置12发射到装置14,且反之亦然。还可(或替代地)将经编码视频数据存储到存储装置32上,供以后存取来解码和/或重放。
[0052] 经由链路16传送或提供于存储装置32上的经编码视频数据可包含视频编码器20A产生以供视频解码器30B用于解码视频数据的多种语法元素,且可包含视频编码器20B产生以供视频解码器30A用于解码视频数据的多种语法元素。此类语法元素可与在通信媒体上发射、存储于存储媒体上或存储于文件服务器的经编码视频数据包含在一起。
[0053] 显示装置31A和31B可与装置12或装置14的组件在一起,或可为在装置12或装置14外部的单独组件。在一些实例中,装置12和装置14可包含显示装置组件,且还可经配置以与外部显示装置介接。在其它实例中,装置12和装置14可本身为显示装置。一般来说,显示装置31A和31B将经解码视频数据显示给用户,且可包括多种显示装置中的任一者,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
[0054] 视频编码器20A和20B(统称为“视频编码器20”)以及视频解码器30A和30B(统称为“视频解码器30”)可根据视频压缩标准(例如高效视频译码(HEVC)标准)来操作,且可符合HEVC测试模型(HM)。此外,视频编码器20和视频解码器30可根据现在在开发的HEVC标准的扩展(被称作HEVC范围扩展标准)来操作。视频编码器20和视频解码器30还可根据其它专有或业界标准来操作,所述标准例如是ITU-T H.264标准,也被称为MPEG-4,第10部分,高级视频译码(AVC)(即,H.264/AVC),或此类标准的扩展。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263。
[0055] 尽管图1中未展示,但在一些方面中,视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当多路复用器-多路分用器单元或其它硬件和软件来处置对共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么多路复用器-多路分用器单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
[0056] 视频编码器20和视频解码器30各自可实施为多种合适编码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地用软件实施所述技术时,装置可将用于所述软件的指令存储于合适的非暂时计算机可读媒体中且使用一或多个处理器用硬件执行所述指令以执行本发明的技术。
[0057] 视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(CODEC)的部分。在一些实例中,当本发明将视频编码器20和视频解码器30描述为装置的一部分时,装置可为集成电路(IC)或微处理器(例如视频编码器20A和视频解码器30A可集成在一起,且可能与集成电路或微处理器中的其它组件集成,且视频编码器20B和视频解码器30B可集成在一起,且可能与集成电路或微处理器中的其它组件集成)。在一些实例中,所述装置可为无线装置,例如类似于装置12或装置14的无线通信装置。
[0058] 以下是辅助理解的HEVC标准的简要说明。然而,本发明中描述的技术不限于HEVC标准,且适用于例如H.264/AVC等其它标准,或适用于非基于标准的视频译码。为易于描述,相对于视频编码器20A和视频解码器30B来描述下文。然而,视频编码器20B和视频解码器30A可分别类似于视频编码器20A和视频解码器30B来配置。在一些实例中,视频编码器20A和视频编码器20B不同地配置可为可能。举例来说,视频解码器30A和视频解码器30B可不同地配置,但视频编码器20A可产生可由视频解码器30B解码的视频数据,且视频编码器20B可产生可由视频解码器30A解码的视频数据。换句话说,视频编码器20A和视频编码器20B可类似地配置,且视频解码器30A和视频解码器30B可类似地配置。然而,这不是要求,且视频编码器20A和视频编码器20B可不同地配置,且视频解码器30A和视频解码器30B可不同地配置。
[0059] JCT-VC已开发了HEVC标准。HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的演进模型。HM假设视频译码装置相对于根据例如ITU-T H.264/AVC的现有装置的几项额外能力。举例来说,虽然H.264提供了九种帧内预测编码模式,但HM可提供多达三十三种帧内预测编码模式。
[0060] 布洛斯(Bross)等人的文献JCTVC-L1003v34“高效视频译码(HEVC)文本规范草案10(针对FDIS和最后呼叫)(High efficiency video coding(HEVC)text specification draft 10(for FDIS&Last Call)”(ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11视频译码联合合作小组(JCT-VC),第12次会议,瑞士日内瓦,2013年1月14日到23日)中描述了HEVC标准的最近草案,被称作“HEVC工作草案10”或“WD10”,其可从以下地址下载:http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip。
[0061] HEVC标准的另一草案在本文中被称作布洛斯(Bross)等在“编辑对HEVC版本1所提出的校正(Editors'proposed corrections to HEVC version 1)”的“WD10修订本”,ITU-T SG16WP3和ISO/IEC JTC1/SC29/WG11的视频译码联合合作小组(JCT-VC),第13次会议,韩国仁川,2013年4月,其从以下地址可得:http://phenix.int-evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC-M0432-v3.zip。
[0062] 一般来说,HM的工作模型描述视频帧或图片可分成包含亮度和色度样本两者的一连串树块或最大译码单元(LCU)。树块具有与H.264标准的宏块类似的用途。切片包含按译码次序的若干连续树块。视频帧或图片可被分割成一或多个切片。每一树块可根据四叉树分裂成若干译码单元(CU)。举例来说,作为四叉树的根节点的树块可分裂成四个子节点,且每一子节点又可为父节点且可分裂成另外四个子节点。作为四叉树的叶节点的最后的未经分裂的子节点包括译码节点,即,经译码视频块。与经译码位流相关联的语法数据可界定树块可分裂的最大次数,且还可界定译码节点的最小大小。
[0063] CU包含译码节点和与所述译码节点相关联的预测单元(PU)和变换单元(TU)。CU的大小对应于译码节点的大小,并且形状必须是正方形。CU的大小可介于8×8个像素至多达具有最大64×64个像素或更大的树块大小的范围内。每一CU可含有一或多个PU和一或多个TU。举例来说,与CU相关联的语法数据可描述CU分割成一或多个PU。分割模式可在CU被跳过或经直接模式编码、经帧内预测模式编码或经帧间预测模式编码之间有所不同。PU可分割成非正方形形状。举例来说,与CU相关联的语法数据还可描述根据四叉树将CU分割成一或多个TU。TU可为正方形或非正方形形状。
[0064] HEVC标准允许根据TU的变换,TU可针对不同CU而有所不同。TU的大小通常是基于针对经分割LCU定义的给定CU内的PU的大小而确定,但是情况可能并不总是如此。TU通常与PU大小相同或小于PU。在一些实例中,对应于CU的残差样本可使用被称为“残差四叉树”(RQT)的四叉树结构细分成较小单元。RQT的叶节点可被称作TU。可变换与TU相关联的像素差值以产生变换系数,所述变换系数可经量化。
[0065] 一般来说,PU包含与预测过程有关的数据。举例来说,当PU经帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一实例,当PU经帧间模式编码时,PU可包括定义PU的运动向量的数据。定义PU的运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量所指向的参考图片和/或运动向量的参考图片列表(例如,列表0(RefPicList0)或列表1(RefPicList1)或列表C)。
[0066] 一般来说,TU用于变换和量化过程。具有一或多个PU的给定CU还可包含一或多个TU。在预测之后,视频编码器20A可计算对应于PU的残差值。残差值包括像素差值,所述像素差值可变换成变换系数、经量化且使用TU进行扫描以产生串行化变换系数以用于熵译码。本发明通常使用术语“视频块”来指代CU的译码节点。在一些特定情况下,本发明还可使用术语“视频块”来指包含译码节点以及PU和TU的树块,即LCU或CU。
[0067] 视频序列通常包含一系列视频帧或图片。图片群组(GOP)一般包括一系列一或多个视频图片。GOP可包含描述GOP中所包含的图片数目的GOP的标头中、图片中的一或多者的标头中或别处的语法数据。图片的每一切片可包含描述用于相应切片的编码模式的切片语法数据。视频编码器20A通常对个别视频切片内的视频块进行操作以便对视频数据进行编码。视频块可对应于CU内的译码节点。视频块可具有固定或变化的大小,并且根据指定译码标准可在大小上有所不同。
[0068] 作为实例,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”后面接着“上”、“下”、“左”或“右”的指示来指示。因而,举例来说,“2NxnU”是指水平地分割的2Nx2N CU,其中上方有2Nx0.5N PU,而下方有2Nx1.5N PU。
[0069] 在本发明中,“N×N”与“N乘N”可互换使用来指代在垂直和水平尺寸方面的视频块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16x16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样,NxN块通常在垂直方向上具有N个像素,并且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成行和列。此外,块未必需要在水平方向上与在竖直方向上具有相同数目个像素。举例来说,块可包括NxM个像素,其中M未必等于N。
[0070] 在使用CU的PU的帧内预测性或帧间预测性译码之后,视频编码器20A可计算CU的TU的残差数据。PU可包括空间域(还被称作像素域)中的像素数据,且在将变换应用到残差视频数据之后,TU可包括变换域中的系数,所述变换例如为离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。残差数据可对应于未经编码图片的像素与对应于PU的预测值之间的像素差。视频编码器20A可形成包含用于CU的残差数据的TU,并且接着变换TU以产生用于CU的变换系数。
[0071] 在用于产生变换系数的任何变换之后,视频编码器20A可执行变换系数的量化。量化大体上是指对变换系数进行量化以可能减少用以表示所述系数的数据量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。举例来说,n位值可在量化期间被下舍入到m位值,其中n大于m。
[0072] 在一些实例中,视频编码器20A可利用预定义扫描次序来扫描经量化的变换系数以产生可经熵编码的串行化向量。在其它实例中,视频编码器20A可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20A可例如根据上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法对所述一维向量进行熵编码。视频编码器20A还可对与经编码视频数据相关联的语法元素进行熵编码,以供视频解码器30B在解码视频数据时使用。
[0073] 为了执行CABAC,视频编码器20A可向待发射的符号指派上下文模型内的上下文。上下文可涉及符号的相邻值是否为非零。为了执行CAVLC,视频编码器20A可选择用于待发射的符号的可变长度码。VLC中的码字可构造成使得相对较短的代码对应于更有可能的符号,而较长的代码对应于不太可能的符号。以此方式,使用VLC可例如实现优于针对待发射的每一符号使用等长度码字的位节省。概率确定可基于指派给符号的上下文。
[0074] 图2是说明可实施本发明中描述的技术的实例视频编码器20A的框图。如上文所描述,视频编码器20B可类似于视频编码器20A;然而,本发明中描述的技术不限于此。视频编码器20A可执行视频切片内的视频块的帧内和帧间译码。帧内译码依靠空间预测来减少或去除给定视频帧或图片内的视频中的空间冗余。帧间译码依靠时间预测来减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)的帧间模式可指代若干基于时间的压缩模式中的任一者。
[0075] 在图2的实例中,视频编码器20A包含视频数据存储器39、分割单元35、预测处理单元41、经解码图片缓冲器(DPB)64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包含运动估计单元42、运动补偿单元44和帧内预测处理单元46。为了视频块重构,视频编码器20A还包含逆量化单元58、逆变换处理单元60和求和器62。还可包含去块滤波器(图2中未展示)以对块边界进行滤波,来从重构的视频去除成块性假影。在需要时,去块滤波器将通常对求和器62的输出进行滤波。除了去块滤波器外,还可使用额外的环路滤波器(环路中或环路后)。
[0076] 如图2中所示,视频数据存储器39接收用于对视频图片内的当前视频块进行编码的视频数据。视频数据存储器39可存储待由视频编码器20A的组件编码的视频数据(例如,经配置以存储视频数据)或存储将用于编码视频图片的视频数据。举例来说,视频数据存储器39可存储视频编码器20A编码的每一图片的参数集(例如存储指示可能已用以对相应图片进行帧间预测的图片的信息)。根据本发明中描述的技术,视频数据存储器39还可存储从视频解码器30B接收到的识别视频解码器30B先前解码的图片的信息。举例来说,视频编码器20A可经配置以基于视频解码器30B所识别的图片、可能已用以对视频解码器30B所识别的图片进行帧间预测的图片或可用以对可能已用以对视频解码器30B所识别的图片进行帧间预测的图片进行帧间预测的图片中的一或多者来对当前图片进行帧间预测。一般来说,如果视频编码器20A从此组所确定的图片选择图片,那么有较高的概率选定图片可用于通过视频解码器30B进行解码。
[0077] 在一些实例中,存储在视频数据存储器39中的视频数据可例如从视频源18A获得。DPB 64存储用于供视频编码器20A编码视频数据(例如在帧内译码模式或帧间译码模式下)的参考视频数据。视频数据存储器39和DPB 64可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。视频数据存储器39和DPB 64可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器39可与视频编码器20A的其它组件一起在芯片上,或相对于那些组件在芯片外。
[0078] 如图2中所示,视频编码器20A接收视频数据,且分割单元35将所述数据分割成视频块。此分割还可包含分割成切片、瓦片或其它较大单元,以及例如根据LCU和CU的四叉树结构的视频块分割。视频编码器20A通常说明对待编码视频切片内的视频块进行编码的组件。所述切片可分成多个视频块(并且可能分成被称作瓦片的视频块集合)。预测处理单元41可基于误差结果(例如,译码速率和失真的水平)为当前视频块选择多种可能译码模式中的一者,例如多种帧内译码模式中的一者或多种帧间译码模式中的一者。
[0079] 预测处理单元41可经配置以实施用于基于视频解码器30B所识别的参考图片来执行帧间预测的本发明的技术。预测处理单元41可将所得经帧内或帧间译码块提供到求和器50以产生残差块数据,并提供到求和器62以重构经编码块以用作参考图片。
[0080] 预测处理单元41内的帧内预测处理单元46可相对于与待译码当前块在相同帧或切片中的一或多个相邻块执行当前视频块的帧内预测性译码,以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一或多个参考图片中的一或多个预测性块执行当前视频块的帧间预测性译码以提供时间压缩。
[0081] 运动估计单元42可经配置以根据用于视频序列的预定模式来确定用于视频切片的帧间预测模式。预定模式可将序列中的视频切片标明为P切片、B切片或GPB切片。运动估计单元42和运动补偿单元44可高度集成,但出于概念的目的分别加以说明。由运动估计单元42执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。举例来说,运动向量可指示当前视频帧或图片内的视频块的PU相对于参考图片内的预测性块的移位。
[0082] 预测块是被发现在像素差方面与待译码视频块的PU密切匹配的块,所述像素差可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异度量来确定。在一些实例中,视频编码器20A可计算存储在DPB 64中的参考图片的子整数像素位置的值。举例来说,视频编码器20A可内插四分之一像素位置、八分之一像素位置或参考图片的其它分数像素位置的值。因此,运动估计单元42可相对于全像素位置和分数像素位置执行运动搜索,并且输出具有分数像素精度的运动向量。
[0083] 运动估计单元42通过比较PU的位置与参考图片的预测性块的位置来计算用于经帧间译码切片中的视频块的PU的运动向量。参考图片可选自第一参考图片列表(RefPicList0)或第二参考图片列表(RefPicList1),其中的每一者识别存储在DPB 64中的一或多个参考图片。运动估计单元42将所计算的运动向量发送到熵编码单元56和运动补偿单元44。
[0084] 通过运动补偿单元44执行的运动补偿可涉及基于通过运动估计(可能执行对子像素精度的内插)确定的运动向量获取或产生预测性块。在接收到当前视频块的PU的运动向量后,运动补偿单元44可在参考图片列表中的一者中定位所述运动向量指向的预测性块。视频编码器20A通过从正被译码的当前视频块的像素值减去预测性块的像素值来形成残差视频块,从而形成像素差值。像素差值形成所述块的残差数据,且可包含亮度和色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿单元44还可产生与视频块和视频切片相关联的语法元素以供视频解码器30在解码视频切片的视频块时使用。
[0085] 作为如上文所描述由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可以对当前块进行帧内预测。明确地说,帧内预测处理单元46可确定用来对当前块进行编码的帧内预测模式。在一些实例中,帧内预测处理单元46可(例如)在单独的编码编次期间使用各种帧内预测模式对当前块进行编码,且帧内预测处理单元46(或在一些实例中,预测处理单元41)可从被测模式中选择适当的帧内预测模式来使用。举例来说,帧内预测处理单元46可使用速率失真分析来计算用于各种所测试的帧内预测模式的速率失真值,并从所述所测试的模式当中选择具有最佳速率失真特性的帧内预测模式。速率失真分析一般确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(也就是说,位数)。帧内预测处理单元46可根据用于各种经编码块的失真和速率计算比率,以确定哪种帧内预测模式对于所述块展现最佳速率失真值。
[0086] 在任何情况下,在选择用于块的帧内预测模式之后,帧内预测处理单元46可将指示用于所述块的选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可根据本发明的技术对指示选定帧内预测模式的信息进行编码。视频编码器20A在所发射的位流中可包含配置数据,其可包含多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表),对用于各种块的上下文进行编码的定义,以及对最可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示以用于所述上下文中的每一者。
[0087] 在预测处理单元41经由帧间预测或帧内预测产生当前视频块的预测性块之后,视频编码器20A通过从当前视频块减去预测性块来形成残差视频块。残差块中的残差视频数据可包含在一或多个TU中且应用到变换处理单元52。变换处理单元52使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换处理单元52可将残差视频数据从像素域转换到变换域,例如频域。
[0088] 变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小位速率。量化过程可减小与系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。在一些实例中,量化单元54可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码单元56可执行所述扫描。
[0089] 在量化之后,熵编码单元56对经量化变换系数进行熵编码。举例来说,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法或技术。在熵编码单元56进行的熵编码之后,可将经编码位流发射到视频解码器30B,或将经编码位流存档以供稍后发射或由视频解码器30B检索。熵编码单元56还可对正译码的当前视频切片的运动向量和其它语法元素进行熵编码。
[0090] 逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换来重构像素域中的残差块,以供后面用作参考图片的参考块。运动补偿单元44可通过将残差块添加到参考图片列表中的一者内的参考图片中的一者的预测性块中来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于所重构的残差块以计算子整数像素值用于运动估计。求和器62将经重构的残余块添加到由运动补偿单元44所产生的运动补偿预测块,以产生用于存储在DPB 64中的参考块。参考块可供运动估计单元42和运动补偿单元44用作参考块,以对后续视频帧或图片中的块进行帧间预测。
[0091] 如下文更详细地描述,视频编码器20A可经配置以从视频解码器30B接收指示可用于视频解码器30B处的解码的参考图片的信息。视频编码器20A可基于可用于视频解码器30B处的解码的参考图片中的一或多者来对当前图片进行帧间预测编码。在一些实例中,如果视频解码器30B对参考图片的重构中出现错误,那么视频编码器20A可接收指示可用于视频解码器30B处的解码的参考图片的信息。在一些实例中,为了接收指示可用于视频解码器
30B处的解码的参考图片的信息,视频编码器20A可接收识别参考图片集中所识别的图片的信息。视频编码器20A可经配置以确定包含于参考图片集中的参考图片,作为可用于视频解码器30B处的解码的参考图片。
[0092] 以此方式,视频编码器20A可经配置以从包含视频解码器30B的装置14接收信息,所述信息识别在视频解码器30B发射信息时存储在视频解码器30B DPB 92(图3)中的先前经解码图片。视频编码器20A可基于所识别的图片来确定可用于编码当前图片的一或多个候选参考图片。所述一或多个候选参考图片包含先前确定为可用于对所识别图片或在译码次序中在所识别图片之后的图片中的一或多者进行帧间预测编码(例如基于包含形成参考图片集的参考图片子集中的一或多者的所识别图片的参数集)且仍存储在视频编码器20A的DPB 64中的一或多个图片。视频编码器20A(例如经由预测处理单元41)可从所确定的一或多个候选参考图片和所识别图片选择当前图片的一或多个参考图片。
[0093] 视频编码器20A可基于选定的一或多个参考图片对当前图片进行帧间预测编码。举例来说,视频编码器20A可从所述所确定的候选参考图片和所识别图片选择一个图片,且进行单向预测来对当前图片进行帧间预测。在一些实例中,视频编码器20A可从所述所确定的候选参考图片和所识别图片为当前图片选择两个图片,且对当前图片进行双向预测编码(例如使用两个参考图片,每一参考图片列表各一个,来对当前图片进行帧间预测编码)。
[0094] 在一些情况下,视频编码器20A可确定所识别的图片是否可用于编码当前图片(例如存储在DPB 64中)。视频编码器20A可基于所识别的图片不可用于编码当前图片的确定来对当前图片进行帧内预测编码,而不是帧间预测编码。
[0095] 视频编码器20A还可另外接收识别丢失的图片的信息。视频编码器20A可排除从所述所确定的一或多个候选参考图片丢失的图片。
[0096] 图3是说明可实施本发明中描述的技术的实例视频解码器30B的框图。如上文所描述,视频解码器30A可类似于视频解码器30B;然而,本发明中描述的技术不限于此。在图3的实例中,视频解码器30B包含熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90和经解码图片缓冲器(DPB)92。预测处理单元81包含运动补偿单元82和帧内预测处理单元84。在一些实例中,视频解码器30B可执行一般与关于图2的视频编码器20A描述的编码遍次互逆的解码遍次。
[0097] 在图3的实例中,视频数据存储器79接收经编码视频。视频数据存储器79可存储将由视频解码器30B的组件解码的视频数据(例如,经配置以存储视频数据),例如经编码视频位流。视频数据存储器79还可存储视频解码器30B的组件用来解码视频数据和重构图片的视频数据。
[0098] 存储在视频数据存储器79中的视频数据可从例如相机等本地视频源、经由视频数据的有线或无线网络通信或通过存取物理数据存储媒体而获得。视频数据存储器79可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。
[0099] DPB 92是存储供视频解码器30B用于解码视频数据(例如在帧内译码模式和帧间译码模式下)的参考视频数据的存储器的一个实例。视频数据存储器79和DPB 92可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。视频数据存储器79和DPB 92可由同一存储器装置或单独的存储器装置提供。在不同实例中,视频数据存储器79可与视频解码器30B的其它组件一起在芯片上,或相对于所述组件在芯片外。
[0100] 在解码过程期间,视频解码器30B从视频编码器20A接收表示经编码视频切片的视频块和相关联语法元素的经编码视频位流。视频解码器30B的熵解码单元80对位流进行熵解码以产生经量化的系数、运动向量和其它语法元素。熵解码单元80将运动向量和其它语法元素转发到预测处理单元81。视频解码器30B可在视频切片层级和/或视频块层级接收语法元素。
[0101] 当视频切片被译码为经帧内译码(I)切片时,预测处理单元81的帧内预测处理单元84可基于发信号通知的帧内预测模式和来自当前帧或图片的先前经解码块的数据产生用于当前视频切片的视频块的预测数据。预测处理单元81可经配置以实施用于指示例如当未接收到参考图片时应将哪些参考图片用于帧间预测的本发明的技术。当视频帧经译码为经帧间译码(即,B或P)切片时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动向量和其它语法元素产生用于当前视频切片的视频块的预测性块。预测性块可从参考图片列表中的一者内的参考图片中的一者产生。视频解码器30B可基于存储在DPB 92中的参考图片使用默认构建技术来构建参考帧列表,RefPicList0和RefPicList1。
[0102] 运动补偿单元82通过剖析运动向量和其它语法元素来确定用于当前视频切片的视频块的预测信息,并且使用所述预测信息来产生用于经解码当前视频块的预测性块。举例来说,运动补偿单元82使用所接收语法元素中的一些确定用于对视频切片的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、切片的参考图片列表中的一或多者的建构信息、切片的每一经帧间编码的视频块的运动向量、切片的每一经帧间译码的视频块的帧间预测状态和用以对当前视频切片中的视频块进行解码的其它信息。
[0103] 运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可使用由视频编码器20A在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元82可根据所接收的语法元素来确定视频编码器20A所使用的内插滤波器,且使用所述内插滤波器来产生预测性块。
[0104] 逆量化单元86将在位流中提供并由熵解码单元80解码的经量化的变换系数逆量化,即去量化。逆量化过程可包含使用由视频编码器20A针对视频切片中的每一视频块所计算的量化参数来确定应应用的量化程度且同样确定应应用的逆量化程度。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数以便产生像素域中的残差块。
[0105] 在运动补偿单元82基于运动向量和其它语法元素产生用于当前视频块的预测性块之后,视频解码器30B通过将来自逆变换处理单元88的残差块与由运动补偿单元82产生的对应预测性块求和而形成经解码视频块。求和器90表示执行此求和操作的组件。视需要,还可应用去块滤波器来对经解码块进行滤波,以便去除成块假影。还可使用其它环路滤波器(在译码环路中或在译码环路之后)来使像素转变平滑或者以其它方式改进视频质量。接着将给定帧或图片中的经解码视频块存储于DPB 92中,所述DPB 92存储用于后续运动补偿的参考图片。DPB 92还存储经解码视频以供后来呈现于显示装置(例如,图1的显示装置31B)上。
[0106] 视频编码器20A、视频解码器30B、视频编码器20B和视频解码器30A可经配置以实施本发明中描述的技术。并且,为易于描述,相对于视频编码器20A和视频解码器30B来描述所述技术,且视频编码器20B和视频解码器30A可经配置以实施类似技术。然而,所述技术不应被视为受限于要求视频编码器20B和视频解码器30A来执行与视频编码器20A和视频解码器30B中的那些技术相同的技术。
[0107] 举例来说,相对于发送器侧上的编码器和接收器侧上的解码器来描述上述技术。视频编码器20A可为发送器侧上的此编码器的实例,且视频解码器30B可为接收器侧上的此解码器的实例。在一些实例中,视频解码器30B可经配置以输出参考图片集选择指示(RPSSI)反馈消息(例如作为RTP消息的一部分)。从RPSSI反馈消息,视频编码器20A可经配置以确定哪些参考图片在视频解码器30B的DPB 92中可用,且可基于已知将在视频解码器
30B的DPB 92中的图片中的一者来编码图片。
[0108] 如上文所描述,本发明中描述的技术可与实时视频应用程序有关。对于尽量好的网络条件下的实时视频应用,反馈消息对于告知发送器(例如视频编码器20A或包含视频编码器20A的装置12)关于接收器(例如视频解码器30B或包含视频解码器30B的装置14)处发生了什么来说是重要的。应理解,在视频电话或视频会议中,发送器可为装置12或装置14,且接收器可为装置12或装置14。为易于描述,本发明将装置12描述为发送器,且将装置14描述为接收器,其中应理解,装置14还可充当发送器,且装置12可充当接收器。
[0109] 举例来说,在其中视频解码器30B并不从视频编码器20A所发信号通知的位流接收图片的例子中,对于视频解码器30B来说,发射反馈消息来告知视频编码器20A存在丢失的图片可为有益的。对于现有的HEVC编解码器,当视频解码器30B丢失参考图片中的一者时,视频解码器30B可使用参考图片选择指示(RPSI)和特定图片丢失指示(SPLI)消息来告知视频编码器20A图片丢失,所述消息在来自网络工作组的王(Wang)等人在2013年9月6日的“用于高效视频译码的RTP有效负载格式(RTP Payload Format for High Efficiency Video Coding)”中定义。
[0110] 关于用于高效视频译码的RTP有效负载格式的信息从2013年12月2日起可从http://tools.ietf.org/html/draft-ietf-payload-rtp-h265-01找到。举例来说,关于RTP有效负载格式的信息描述RTP有效负载格式允许每一RTP包有效负载中的一或多个网络抽象层(NAL)单元的包化,以及将NAL单元分段成多个RTP包。此外,RTP有效负载格式支持HEVC串流经由单个以及多个RTP流的发射。有效负载格式在视频会议、因特网视频流式传输和高位速率娱乐质量视频等等中具有广泛适用性。
[0111] 可存在视频解码器30B可确定存在丢失的图片的各种方式。作为一个实例,视频解码器30B可接收经编码位流中的语法元素,其指令视频解码器30B利用丢失的图片作为参考图片来解码。在此情况下,视频解码器30B确定将用作参考图片的图片不存储在视频解码器30B的DPB 92中,因为图片是丢失的,且视频解码器30B确定图片在位流中丢失。可存在视频解码器30B为何确定图片是丢失的其它原因,以及视频解码器30B确定图片是丢失的其它方式。本发明中描述的技术不限于视频解码器30B确定图片是丢失的任何特定方式。
[0112] 以下描述针对理解本发明中描述的技术的上下文来阐释RPSI消息的功能性。下文更进一步描述SPLI消息。
[0113] 对于RPSI,当发生错误时,视频解码器30B从DPB 92中选择一个较早恰当解码的参考图片,并请求视频编码器20A使用所述图片,通常为长期参考图片,以在编码下一图片(即,正编码的当前图片)时参考。如果此指定参考图片仍存在于视频编码器20A的DPB 64中,那么视频编码器20A可以此参考来编码下一图片,以停止进一步错误传播。
[0114] 在RPSI中,视频解码器30B可指定用于编码的参考图片。然而,恰好指示存储在视频编码器20A的DPB 92中的所有图片的信息可能不可用于视频解码器30B。实情为,视频解码器30B可用来确定在视频解码器30B发射指定参考图片的信息时存储在视频编码器20A的DPB 64中的图片的信息可能不准确且过期。
[0115] 因此,在一些实例中,视频解码器30B可导致指定视频编码器20A应将其用于帧间预测的参考图片,而视频编码器20A已将所述参考图片从DPB 64去除。在此情况下,视频编码器20A可不能够使用视频解码器30B标识为参考图片的所识别图片来编码,因为所述所识别图片被从DPB 64去除。在一些实例中,如果所识别的图片不在视频编码器20A的DPB 64中,那么视频编码器20A将当前图片编码为帧内随机存取点(IRAP)来阻止错误。然而,将当前图片编码为IRAP在译码效率方面可为昂贵的。
[0116] 为了减轻视频解码器30B将图片识别为用作不存储在视频编码器20A的DPB 64中的参考图片的问题,在一些实例中,视频编码器20A和视频解码器30B可协商来使用长期参考(LTR)图片(例如通过视频编码器20A与视频解码器30B之间的某一类型的通信),其将在视频编码器20A的DPB 64和视频解码器30B的DPB 92两者中保持更长。在一些实例中,并非协商LTR图片的使用,视频解码器30B可经预配置以将LTR图片识别为视频编码器20A将使用的参考图片。在任一实例中,视频解码器30B可将当前存储在视频解码器30B的DPB 92中的LTR图片指定为将用于对视频编码器20A将要编码的当前图片进行编码的图片。然而,依靠LTR图片可能不利地影响译码效率,因为由于相比于其它图片(例如短期参考图片),LTR图片可在时间距离上距正编码的当前图片较远,因此可存在较低时间相关。换句话说,在一些情况下(尽管不作要求),相比于短期参考图片,长期参考图片趋向于在DPB 64和DPB 92中存储较长的时间量,且因此,相比于短期参考图片,可在时间距离上距当前图片较远。
[0117] RPSI的现有技术可存在其它问题。举例来说,即使视频解码器30B并不识别LTR图片,而是识别视频编码器20A的DPB 64中的图片,在一些其它技术中,也要求视频编码器20A使用视频解码器30B所识别的图片来对当前图片(即,将要编码的图片)进行帧间预测。视频编码器20A使用所识别图片,假定其在视频编码器20A的DPB 64中,因为由于视频解码器30B从DPB 92选择了所述图片,所以所识别图片保证存在于视频解码器30B的DPB 92中。然而,可存在除视频解码器30B识别为较适合于对当前图片进行帧间预测的图片之外的图片。此外,由于双向预测使用两个图片,因此限于仅使用视频解码器30B所识别的图片致使视频编码器20A仅利用单向预测。这进一步不利地影响帧间预测译码效率。
[0118] 本发明中描述的技术可用RPSI来解决上文所描述的问题中的一或多者。举例来说,在本发明中描述的技术中,视频解码器30B可输出识别DPB 92中的先前经解码图片的信息;然而,视频编码器20A可不限于仅使用所识别图片来对当前图片进行帧间预测。
[0119] 实际上,视频编码器20A可根据所识别图片来确定视频编码器20A的DPB 64和视频解码器30B的DPB 92两者中可用的一或多个图片。视频编码器20A可选择所确定的图片以及潜在地所识别图片中的一或多者,来对当前图片进行帧间预测。以此方式,视频编码器20A可经配置以从仅一个图片除外的大图片集合进行选择,并确定哪些图片提供较好译码效率,并选择那些图片来对当前图片进行帧间预测。
[0120] 此外,视频编码器20A可经配置以用来自视频解码器30B的最小信令来确定视频编码器20A和视频解码器30B两者的相应DPB(例如DPB 64和DPB 92)中可用的图片。举例来说,通过仅发信号通知几个图片(例如一个或选定的几个图片),视频编码器20A可经配置以确定视频编码器20A的DPB 64和视频解码器30B的DPB 92两者中可用的较多图片(例如多个图片)。出于说明的目的,本发明描述视频解码器30B识别一个图片,但本发明不应被视为限于此。
[0121] 在本发明中描述的技术中,一旦视频编码器20A确定视频解码器30B的DPB 92中的参考图片,视频编码器20A就可针对错误恢复(例如针对其中存在丢失的图片的实例情况)作出更佳决策。举例来说,视频解码器30B应告知视频编码器20A视频解码器30B的DPB 92中的所有参考图片。在一些实例中,视频编码器20A可确定视频解码器30B的DPB 92中的确切参考图片,且可基于视频解码器30B的DPB 92中的所述所确定的参考图片来确定错误恢复模式(例如哪些图片将用于对当前图片进行帧间预测)。
[0122] 为了使视频编码器20A确定视频解码器30B的DPB 92中的确切参考图片,视频解码器30B可向视频编码器20A发信号通知视频解码器30B的DPB 92中的所有参考图片。然而,此发信号通知可为带宽低效的,且在本发明中描述的技术中,视频解码器30B可发信号通知一个图片,根据所述图片,视频编码器20A可确定可用于编码或解码当前图片的多个图片。
[0123] 视频编码器20A可确定存储在DPB 64中的哪些图片也存储在视频解码器30B的DPB 92中的一种实例方式是使用HEVC标准中定义的参考图片子集。存储在视频编码器20A的DPB 
64中的也确定为存储在视频解码器30B的DPB 92中的图片被称作可用于视频编码或视频解码的图片。并且,应理解,确定为可用于视频编码或解码的图片不必包含相应DPB中的所有图片。实际上,视频编码器20A可实施某些程序来确定哪些图片存储在视频编码器20A和视频解码器30B两者的DPB(例如DPB 64和DPB 92两者)中。
[0124] HEVC标准定义一起形成参考图片集的五个参考图片子集。在HEVC标准中,视频编码器20A和视频解码器30B可各自为每一图片构建参考图片子集。举例来说,为了编码或解码图片,视频编码器20A的预测处理单元41和视频解码器30B的预测处理单元81可基于为所述图片构建的参考图片子集来构建参考图片列表(例如RefPicList0和RefPicList1),并基于所构建的参考图片列表来对所述图片进行帧间预测编码或解码。
[0125] 2013年4月4日且在本文中被称作“高效视频译码,ITU-TH.265和ISO/IEC 23008-2”的系列H:视听和多媒体系统,视听服务的基础设施—移动视频的译码,高效视频译码ITU-T建议H.265(SERIES H:AUDIOVISUAL ND MULTIMEDIA SYSTEMS,Infrastructure of audiovisual services-Coding of moving video,High efficiency video coding ITU-T Recommendation H.265)中更详细地描述用于HEVC标准的参考图片子集和集,且可从http://www.itu.int/rec/T-REC-H.265-201304-I找到。
[0126] 举例来说,为了编码或解码特定图片,视频编码器20A和视频解码器30B可构建五个参考图片子集,其包含:RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFoll、RefPicSetLtCurr和RefPicSetLtFoll。RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr包含可用于解码特定图片的所有图片。在一些实例中,RefPicSetStCurrBefore可包含确定为在特定图片之前显示的短期参考图片的任何参考图片,且RefPicSetStCurrAfter可包含确定为在特定图片之后显示的短期参考图片的任何参考图片。RefPicSetLtCurr可包含任何长期参考图片。RefPicSetStFoll和RefPicSetLtFoll包含不用于编码或解码特定图片但可用于在解码次序中在特定图片之后的图片的任何参考图片。RefPicSetStFoll可包含确定为短期参考图片的任何参考图片,且RefPicSetLtFoll可包含确定为长期参考图片的任何参考图片。在一些实例中,所述集合中的图片可为互斥的(例如所述集合的一者中的图片不可在任一其它集合中)。
[0127] 在一些实例中,五个集合的构建可为明确的。举例来说,图片仅存在于DPB中不应被视为属于这五个集合中的一者的参考图片。实际上,这些集合中的一者中所识别的图片是被特定确定为可用于对特定图片和在解码次序中在特定图片之后的图片或仅在解码次序中在特定图片之后的图片进行编码或解码的图片的图片。
[0128] 在一些实例中,视频编码器20A和视频解码器30B可基于参考图片集来构建参考图片列表。到参考图片列表中的索引可识别用以对视频编码器20A和视频解码器30B为其构建参考图片集的特定图片进行帧间预测编码或帧间预测解码的参考图片。因此,明确地将五个实例子集中的参考图片确定为属于这些子集中的图片,因为其是来自形成参考图片列表的这些图片。
[0129] 确定为短期参考图片或长期参考图片的图片并不意味着此图片属于实例参考图片子集中的一者中。同样,参考图片子集包含明确确定为属于那些参考图片子集的图片,其指定关于其对特定图片和/或在解码次序中在特定图片之后的图片进行帧间预测编码或解码的可用性的特性。
[0130] 在一些实例中,本发明中描述的技术利用参考图片子集来确定存储在视频编码器20A的DPB 64中的也存储在视频解码器30B的DPB 92中。如上文所描述,假定在视频编码器
20A正对当前图片进行帧间预测时,所识别的图片存储在视频编码器20A的DPB 64中,那么在RPSI消息中,视频解码器30B发射识别图片的信息,且要求视频编码器20A使用所识别的图片来对当前图片进行帧间预测。为了避免混淆,本发明使用术语参考图片集选择指示(RPSSI)反馈消息来指示视频编码器20A正利用本发明中描述的技术,其不同于RPSI。然而,使用术语“RPSSI”仅为了避免混淆。可有可能重新定义术语“RPSI”,以包含本发明中描述的技术。
[0131] 在一些实例中,视频编码器20A可从视频解码器30B接收识别图片的信息。视频编码器20A可确定所识别图片的一或多个参考图片子集中的哪些图片仍存储在DPB 64中。举例来说,视频编码器20A可存储指示为视频编码器20A编码的每一图片构建的参考图片子集的信息。视频编码器20A可从所存储的信息检索指示可能已用以对所识别图片进行帧间预测的图片的信息,且确定可能已用以对所识别图片进行帧间预测的哪些图片仍存储在DPB 64中。
[0132] 一般来说,如果可能已用以对所识别图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片仍存储在视频编码器20A的DPB 64中,那么存在非常高的可能性(几乎保证)所述图片也将存储在视频解码器30B的DPB 92中。如本发明中所使用,可能已用以对所识别图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片表示可能已成为所识别图片以及在译码次序中在所识别图片之后的图片的参考图片的图片。并且,可能已用以对所识别图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片包含实际上用以对所识别图片进行帧间预测的任何图片。
[0133] 在一些实例中,视频解码器30B可仅在视频编码器20A将图片从DPB 64清除之后,才将图片从DPB 92清除。因此,如果视频编码器20A并不清除可能已成为所识别图片的参考图片(例如用以对所识别图片进行帧间预测)的图片,那么存在视频解码器30B并不将图片从DPB 92清除的非常高概率。
[0134] 应理解,不存在视频编码器20A和视频解码器30B的DPB完全相同(例如存储在DPB 64和DPB 92中的图片需要为完全相同的一组图片)的保证。然而,如果可能已用以对所识别图片进行帧间预测的图片存储在视频编码器20A的DPB 64中,那么所述图片存在于视频解码器30B的DPB 92中,即使视频编码器20A的DPB 64中存在不在视频解码器30B的DPB 92中的图片且即使视频解码器30B的DPB 92中存在不在视频编码器20A的DPB 64中的图片也是如此。
[0135] 视频编码器20A确定哪些图片可能已用以对所识别图片进行帧间预测的一种方法是通过所识别图片的参考图片子集。举例来说,视频编码器20A可确定所识别图片的RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetLtCurr、RefPicSetLtFoll和RefPicSetStFoll参考图片子集中的图片在视频编码器20A的DPB 64中是否仍可用(例如基于视频编码器20A编码所识别图片时所存储的所识别图片的信息)。如上文所描述,RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr子集包含可能已用以对所识别图片和在译码次序中在所识别图片之后的图片进行帧间预测的图片。RefPicSetLtFoll和RefPicSetStFoll子集包含可能已用以对在译码次序中在所识别图片之后的图片而不是所识别图片进行帧间预测的图片。
[0136] 存储在视频编码器20A的DPB 64中的所识别图片的参考图片子集中的一或多者中的图片被称作可用于译码的图片(或候选参考图片)。在一些实例中,视频编码器20A可确定在所识别图片的参考图片子集的任一者中的图片作为可用以对当前图片进行帧间预测(即,可用于对当前图片进行帧间预测或可用作当前图片的参考图片)的候选参考图片。在一些实例中,视频编码器20A可进一步确定在所识别图片的参考图片子集中的图片的参考图片子集的任一者中存储在视频编码器20A的DPB 64中的图片。
[0137] 在 一 些 实 例 中 ,视 频 编 码 器 2 0 A 可 确 定 仅 在 所 识 别 图 片 的RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr子集中的一者中的图片作为可用于对当前图片进行帧间预测(即,可用作当前图片的参考图片)的候选参考图片。举例来说,在一些实例中,归因于可在视频解码器30B接收位流之前发生的子位流提取,可将RefPicSetStFoll和RefPicSetLtFoll子集中的图片(即,可能尚未用以对所识别图片和仅在所识别图片之后的图片进行帧间预测的图片)从位流去除。
[0138] 在此特殊情况下,视频编码器20A的DPB 64可包含在视频解码器30B的DPB 92中不可用的所识别图片的参考图片集的图片。因为视频编码器20A可不能够确定是否启用子位流提取,所以为了避免参考图片不可用的问题,视频编码器20A可确定可用以对所识别图片进行帧间预测的图片,而不仅是所识别图片之后的图片,作为可用以对当前图片进行帧间预测的候选参考图片。并且,所识别图片的RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr子集包含可能已用以对所识别图片进行帧间预测的图片,且因此,视频编码器20A可仅根据所识别图片的RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr子集中仍在视频编码器20A的DPB 64中可用的图片来确定可用于对当前图片进行帧间预测的图片。
[0139] 在一些实例中,视频编码器20A可确定在可能已用以对所识别图片进行帧间预测的短期参考图片子集(即,RefPicSetStCurrBefore和RefPicSetStCurrAfter)中的图片。这可能因为长期参考图片的时间相关相对较差,且为了减少处理时间,为了帧间预测目的使视频编码器20A评估长期参考图片可存在极少到无益处。
[0140] 为了进一步减少处理时间,在一些实例中,视频编码器20A可确定作为可能已用以对比所识别图片早显示的短期参考图片的所识别图片(即,RefPicSetStCurrBefore子集中的图片)进行帧间预测的图片,作为可用以对当前图片进行帧间预测的候选参考图片。作为另一实例,视频编码器20A可确定作为可能已用以对在在所识别图片(即,RefPicSetStCurrFoll子集中的图片)之后显示的所识别图片进行帧间预测的短期参考图片的图片,作为可用以对当前图片进行帧间预测的候选参考图片。
[0141] 在视频编码器20A基于可能已用以对所识别图片和所识别图片之后的图片进行帧间预测的候选参考图片而确定哪些图片可用于对当前图片进行帧间预测之后,视频编码器20A可选择所述所确定图片中的一或多者来对当前图片进行帧间预测。除可能已用以对所识别图片进行帧间预测的图片之外,视频解码器30B所识别的图片也是可用以对当前图片进行帧间预测的候选参考图片。视频编码器20A可包含用以对当前图片的参考图片集(RPS)中的当前图片进行帧间预测的图片,并构建包含选定图片的参考图片列表,且基于构建的参考图片列表来对当前图片进行帧间预测编码。
[0142] 因为选定图片是在当前图片的RPS中,所以视频解码器30B可类似地构建与视频编码器20A所构建的那些参考图片列表相同的参考图片列表,且因此将选定图片包含在参考图片列表中。视频解码器30B接着可基于参考图片列表对当前图片进行帧间预测解码。
[0143] 在一些实例中,视频解码器30B可识别不存储在视频编码器20A的DPB 64中的图片。举例来说,在视频解码器30B冲洗所识别图片之前,视频编码器20A可能已冲洗所述所识别图片。在其中视频编码器20A的DPB 64并不存储所识别图片的实例中,视频编码器20A可将当前图片帧内预测为(帧内-刷新随机存取点图片)IRAP。
[0144] 在一些实例中,即使视频解码器30B所识别的图片在视频编码器20A的DPB 64中可用,视频编码器20A仍可对当前图片进行帧内预测。举例来说,如果使用候选参考图片中的一或多者来对当前图片进行帧间预测与对当前图片进行帧内预测相比,译码效率较不良(或较不好),那么视频编码器20A可对当前图片进行帧内预测,可能作为IRAP。
[0145] 因此,再本发明中描述的技术中,视频解码器30B可经由对图片的唯一识别符来告知视频编码器20A,以便描述视频解码器30B的DPB 92中可由视频编码器20A使用来确定视频编码器20A和视频解码器30B两者处的可用参考图片(例如确定存储在DPB 64和DPB 92中的可用参考图片)。所述唯一识别符(例如识别图片的信息)可包括图片的图片次序计数(POC)值。举例来说,每一图片可与识别显示或输出图片的次序的唯一POC值相关联。举例来说,具有较小POC值的图片比具有较大POC值的图片早显示或输出。POC值仅为视频解码器30B用来识别图片的唯一识别符的一个实例,且识别所述图片的其它方式可为可能的。
[0146] 以此方式,视频编码器20A和视频解码器30B两者处可用的共同参考图片可用于建立视频编码器20A与视频解码器30B之间的共同参考(即,一旦视频编码器20A确定在视频编码器20A的DPB 64中和视频解码器30B的DPB 92中可用的图片,视频编码器20A就可确定哪些图片将用于对当前图片进行帧间预测)。在一些实例中,将与图片识别符相关联的参考图片(即,所识别的图片)描述为解码识别符被发送的图片之后的所有可用参考图片(即,可能已用以对所识别图片和在译码次序中在所述所识别图片之后的图片进行帧间预测的所有图片)。
[0147] 在一些实例中,指示符可指示在解码所指示的图片(即,所识别图片的RefPicSetStCurrBefore子集中的图片)之前的所有可用参考图片,或在解码所指示的图片(即,所识别图片的RefPicSetStCurrAfter子集中的图片)之后的图片。一旦视频编码器20A与视频解码器30B(接收器)侧的相关联参考图片建立视频解码器30B的DPB 92的DPB状态,视频编码器20A就可作出参考选择来建立共同参考集。或者,视频编码器20A可发送IRAP图片(例如经帧内预测的图片,例如帧内刷新随机存取点图片)。
[0148] 如上文所描述,视频编码器20A还可避免参考发信号通知的参考图片中的RefPicSetStFoll和RefPicSetLtFoll图片,因为归因于对原始位流执行的可能子位流提取,这些图片在接收器侧(例如视频解码器30B)上可能不可用。在一些实例中,例如媒体接入网络元件(MANE)装置等中间装置可执行子位流提取,其中提取只能用来对在解码次序中在当前图片之后的图片进行帧间预测的图片。
[0149] 如上文还描述,指示符(即,识别图片的信息)可为HEVC说明书(“高效视频译码,Rec.ITU-T H.265和ISO/IEC 23008-2”)中指定的PicOrderCntVal(POC值)(32位带正负号的值)或等效于唯一地识别图片的POC值的某值。除PicOrderCntVal之外,如HEVC说明书中指定的nuh_layer_id可为多层位流发信号通知,类似于草案HEVC RTP有效负载说明书(即,“用于高效视频译码的RTP有效负载格式”)中的当前RPSI、SPLI语法中的多层位流。
[0150] 因此,在一或多个实例中,视频编码器20A可从包含视频解码器30B的装置14接收信息,所述信息识别在视频解码器30B发射了所述信息时存储在视频解码器30B的DPB 64中的先前经解码图片。视频编码器20A可基于所识别的图片来确定可用于编码当前图片的一或多个候选参考图片。所述一或多个候选参考图片包含先前确定为可用于对所识别图片或在译码次序中在所识别图片之后的图片中的一或多者进行帧间预测编码且在编码当前图片时仍存储在视频编码器20A的DPB 64中的一或多个图片。视频编码器20A可从所述所确定的一或多个候选参考图片和所述所识别图片为当前图片选择一或多个参考图片。视频编码器20A可基于选定的一或多个参考图片对当前图片进行帧间预测编码。
[0151] 先前确定为可用于对所识别图片或在译码次序中在所识别图片之后的图片中的一或多者进行帧间预测编码的一或多个图片包含来自视频编码器20A在编码所识别图片期间构建的一或多个参考图片子集的图片。并且,所识别的图片是视频解码器30B先前解码的图片,这意味着视频编码器20A在编码当前图片之前编码了所述所识别图片。
[0152] 因为本发明中描述的技术允许视频编码器20A确定多个候选参考图片,所以视频编码器20A可基于来自选定参考图片的两个图片对当前图片进行双向预测编码。此类双向预测编码可允许额外帧间预测选项,其在视频编码器20A受限于仅使用所识别图片来进行帧间预测的情况下原本不可用。
[0153] 为了解码,视频解码器30B可向包含视频编码器20A的装置12输出信息,所述信息识别在输出所述信息时存储在视频解码器30B的DPB 92处的先前经解码图片。视频解码器30B可用一或多个候选参考图片对当前图片进行帧间预测解码。所述一或多个候选参考图片包含视频编码器20A先前确定为可用于对所识别图片进行帧间预测编码的一或多个图片。在一些实例中,视频解码器30B可确定图片丢失(例如视频解码器30B并未接收到恰当地或完全重构丢失的图片的信息)。视频解码器30B可经配置以基于图片丢失的确定而输出信息。并且,因为视频编码器20A可能够对来自两个图片的当前图片进行双向预测编码,所以视频解码器30B可经配置以基于来自候选参考图片的两个图片队当前图片进行双向预测解码。
[0154] 视频解码器30B可传送信息,所述信息识别在经由链路16输出信息时存储在视频解码器30B的DPB 92中的先前经解码图片。在一些实例中,视频解码器30B可经由用以将视频位流从视频编码器20A传送到视频解码器30B的通信链路或协议(例如双向信令协议,包含RTP)的信息。举例来说,可经由新的或现有的发信号通知机制或消息将信息从视频解码器30B传送到视频编码器20A。
[0155] 在一些实例中,所述技术引入了参考图片集选择指示(RPSSI)反馈消息,其在一些实例中向视频编码器20A传送识别存储在视频解码器30B的DPB 92中的先前经解码图片的信息。在一个实例中,下文更详细地描述作为传送经编码视频位流的RTP协议会话的一部分而发信号通知的RPSSI消息。举例来说,RPSSI反馈消息可代替RPSI消息,可用于添加到RPSI消息来区分何时使用现有技术和本发明中描述的技术,或可修改RPSI消息来指示将实施本发明中描述的技术。为易于描述,下文将消息描述为RPSSI反馈消息,但其仅为了便于理解且不应被视为具限制性或受限于下文描述的具体实例。
[0156] RPSSI反馈消息可由PT=PSFB和FMT=9识别。可存在包含于FCI字段中的一个RPSSI(且在一些实例中,必须为正好一个RPSSI)。下文的表1说明RPSSI的格式的一个实例。
[0157]
[0158] 表1.RPSSI的PCI格式
[0159] 在表1的实例中,PB为8位。PB可定义将RPSSI消息的长度填补到32位的整倍数所需的未用位的数目。在表1中,0为1位。此位在发射后可即刻设定为零(例如必须设定为零),且在接收后可即刻忽略。在表1中,有效负载类型为7位。有效负载类型可在可(例如必须)解释原生RPSSI位串的上下文中指示RTP有效负载类型。在表1中,原生RPSSI位串为可变长度。原生RPSSI可将SPLI信息指示为由视频编解码器原生定义。在表1中,填补可为#PB个位。若干位设定为零以将RPSSI消息的内容填满到下一32位边界。填补位的数目可(例如必须)由PB字段指示。
[0160] 在一些实例中,对于RPSI消息的相同时序规则(如在[RFC4585]中定义)适用于RPSSI消息。对于被指示用于发信号通知可用参考图片在接收器侧的存在的图片,字段“根据编解码器定义的原生RPSSI位串”可为由2个等于0的最高有效位和nuh_layer_id的6个位(如在HEVC中定义)组成的8个位的基础16[RFC4648]表示,接着是表示PicOrderCntVal的值的32个位(如在HEVC中定义)。
[0161] 尽管上述实例技术是相对于HEVC标准加以描述,但本发明中所描述的技术不必限于此。举例来说,所述技术可与其它编解码器(例如符合H.264/AVC的编解码器)以及其它视频压缩标准或甚至专有视频压缩技术一起使用。下文描述其中所述技术可与H.264/AVC编解码器一起使用的一种实例方式。
[0162] 在所述实例技术的任一者中,一个优点可为通过发信号通知单个图片识别符,可发信号通知由多个帧/图片组成的完整参考图片集。换句话说,视频解码器30B发信号通知识别几个图片(例如一个图片)的信息,且根据所述信息,视频编码器20A可确定可用以对当前图片进行帧间预测的较多图片(例如多个图片)。这允许视频解码器30B的高效带宽利用,同时促进视频编码器20A的视频译码效率。
[0163] 在一些视频技术中,不同于根据HEVC的视频技术,视频编码器20A可不经预配置以确定和维持可用以对图片和在译码次序中在所述图片之后的图片进行帧间预测的图片列表。举例来说,如果视频编码器20A是基于H.264/AVC标准来配置,那么视频编码器20A可经配置以确定可能已用以对所识别图片进行帧间预测的图片(例如作为视频编码器20A在先前编码所识别图片时实施的方法的一部分),但可不经配置以维持可能已用以对视频解码器30B所识别的图片进行帧间预测的图片列表。举例来说,在编码所识别图片之后,视频编码器20A可丢弃指示哪些图片可能已用以对所识别图片进行帧间预测的信息。换句话说,根据H.264/AVC配置的视频编码器20A可不以视频编码器20A在根据HEVC配置的情况下将具有的方式来构建参考图片子集。
[0164] 举例来说,在视频编码器20A不根据HEVC配置的情况下,视频编码器20A可经配置以(例如在此情况下设计成)将可能已用以对图片进行帧间预测的每一图片的图片列表例如维持在视频编码器20A的存储器中,使得所述信息可用于所识别图片。以此方式,即使对于根据H.264/AVC配置的视频编码器20A,视频编码器20A也可有可能实施本发明中所描述的实例技术。
[0165] 类似地,根据H.264/AVC配置的视频解码器的一些实例可不支持输出识别先前经解码图片的信息。对于此类实例,视频解码器30B可专门经配置以支持输出识别先前经解码图片的信息来实施本发明中所描述的实例技术。
[0166] 前面的描述描述了其中视频编码器20A可确定将可供视频解码器30B进行解码以用于基于视频解码器30B输出的信息对当前图片进行帧间预测编码的多个候选参考图片。然而,本发明不限于上述实例技术。下文描述可结合上述实例技术使用或不同于上述实例技术的一些额外实例技术。
[0167] 在一些实例中,对于解码器侧的每一丢失的参考图片(例如对于视频解码器30B丢失的每一图片),视频解码器30B将此图片(例如丢失的图片)的唯一识别符,例如其POC值发送到视频编码器20A,类似于SPLI消息(下文更详细地描述SPLI消息)。除此之外(例如另外),视频解码器30B可向视频编码器20A发送视频解码器30B当前正解码的图片的唯一识别符。视频解码器30B当前正解码的图片是视频编码器20A先前编码的图片。使用在视频解码器30B输出识别所述图片的信息时视频解码器30B正解码的图片的识别符,视频编码器20A可确定哪些参考图片被推测存储在视频解码器30B的DPB 92中。
[0168] 举例来说,如上文所描述,作为解码图片的一部分,视频解码器30B为图片构建参考图片子集,且为来自所述参考图片子集的图片构建参考图片列表。在此实例中,在视频解码器30B发射视频解码器30B正解码的图片的信息时,视频编码器20A接收所述信息,且确定参考图片子集(或更一般地,用于涵盖H.264/AVC的参数集),以确定哪些图片在视频解码器30B的DPB 92中可用。并且,视频编码器20A可确定视频解码器30B指示为丢失的图片不在视频解码器30B的DPB 92中。因此,除了从视频解码器30B报告的丢失的参考图片,其余参考图片应全部存在于视频解码器30B的DPB 92中。一般来说,因为仅几个参考图片丢失,所以视频解码器30B可仅几次输出识别丢失的图片的信息(例如很少参考图片丢失,仅需要发送很少的消息)。因此,本实例技术可为相对带宽高效的。
[0169] 作为另一实例,类似于上述实例,视频解码器30B可输出识别丢失的图片的信息,且视频编码器20A可接收识别丢失的图片的此类信息。视频编码器20A可排除从所述所确定的一或多个候选参考图片丢失的图片。以此方式,视频解码器30B可用丢失的图片除外的一或多个候选参考图片来对当前图片进行帧间预测解码。
[0170] 作为可与上述技术一起使用或与上述技术分开使用的又一实例技术,对于视频解码器30B的DPB 92中的每一恰当解码的参考图片,视频解码器30B通过反馈消息向视频编码器20A输出此图片的唯一识别符,例如其POC值。本实例技术可与一起发送若干RPSI消息类似。然而,差别是视频编码器20A可确定要使用哪些参考图片,而不是视频解码器30B为图片指定一个参考图片来用于对当前图片进行帧间预测编码。
[0171] 在此实例中,视频解码器30B可输出识别视频解码器30B能够恰当地重构的存储在视频解码器30B的DPB 92中的每一图片的信息。视频编码器20A可确定针对其视频编码器20A接收到此类信息的图片中的哪些仍在视频编码器20A的DPB 64中可用。视频编码器20A接着可使用这些图片中的一或多者来对当前图片进行帧间预测编码。当视频解码器30B的DPB 92中存在很多参考图片时,视频解码器30B可向视频编码器20A一起输出许多反馈消息。因此,本实例技术可为相对带宽低效的,但具有视频编码器20A和视频解码器30B的DPB 
92中可用的参考图片来对当前图片进行帧间预测编码的较好保证。
[0172] 根据本发明的一或多种技术,视频解码器30B可向视频编码器20A发射指示可用于解码的参考图片的信息。视频解码器30B接着可接收用所述参考图片中的一或多者来进行帧间预测编码的图片的视频数据。视频解码器30B可基于所述视频数据对所述图片进行帧间预测解码。
[0173] 在一些实例中,如果在解码期间,参考图片的重构中出现错误,那么视频解码器30B可向视频编码器20A发射指示可用于解码的参考图片的信息。在一些实例中,为了向视频编码器20A发射指示可用于解码的参考图片的信息,视频解码器30B可发射识别参考图片集中所识别的图片的信息,根据所述信息,可将包含于所述参考集中的参考图片确定为可用于视频解码器30B处的解码的参考图片。
[0174] 根据一或多个实例,视频解码器30B可向包含视频编码器20A的装置12输出信息,所述信息识别在输出所述信息时存储在视频解码器30B的DPB 92中的先前经解码图片。视频解码器30B可用一或多个候选参考图片对当前图片进行帧间预测解码。所述一或多个候选参考图片包含视频编码器20A先前确定为可用于对所识别图片进行帧间预测编码的一或多个图片。在一些实例中,视频解码器30B可确定图片丢失。视频解码器30B可基于图片丢失的确定而输出识别先前经解码图片的信息。
[0175] 视频编码器20A可从选定的候选者参考图片选择两个图片来对当前图片进行双向预测编码。因此,视频解码器30B可基于来自候选参考图片的两个图片对当前图片进行双向预测解码。
[0176] 此外,除输出识别先前经解码图片的信息之外,视频解码器30B可输出识别丢失的图片的信息。在此实例中,视频解码器30B可用丢失的图片除外的一或多个候选参考图片来对当前图片进行帧间预测解码。
[0177] 图4是说明编码视频数据的实例方法的流程图。出于说明的目的,所述实例是关于视频编码器20A进行描述的。视频编码器20A可确定可用于对每一图片和译码次序中之后的图片进行帧间预测编码的图片(100)。举例来说,作为编码每一图片的一部分,视频编码器20A可经配置以为所述图片确定参数集(例如如HEVC中定义的一或多个参考图片子集,或维持不必根据HEVC的视频译码技术中的参数集)。视频编码器20A可存储指示为每一图片确定的图片(例如参数集的图片)的信息(102)。
[0178] 视频编码器20A可接收识别特定图片的信息(例如通过其POC值)(104)。视频编码器20A可根据所存储的信息确定先前确定为可用于对所识别图片进行帧间预测编码的一或多个图片(106)。在一些实例中,视频编码器20A还可确定先前确定为将可用于对先前曾确定为可用于对所识别图片进行帧间预测编码的图片进行帧间预测编码的一或多个图片。
[0179] 根据视频编码器20A确定为可用于对所识别图片进行帧间预测编码(且可能确定为可用于对确定为可用于对所识别图片进行帧间预测编码的图片进行帧间预测编码)的图片,视频编码器20A可确定这些图片中的哪些仍存储在视频编码器20A的DPB 64中(108)。视频编码器20A可从所述所确定的候选参考图片选择一或多个参考图片(例如来自一个参考图片列表的用于单向预测的一个参考图片,或来自两个参考图片列表中的每一者中的参考图片的用于双向预测的两个参考图片)(110)。视频编码器20A可基于选定的参考图片对当前图片进行帧间预测编码(112)。
[0180] 图5是说明解码视频数据的实例方法的流程图。为易于描述,所述实例是相对于视频解码器30B进行描述的。视频解码器30B可向包含视频编码器20A的装置12输出信息,所述信息识别在输出所述信息时存储在视频解码器30B的DPB 92处的先前经解码图片(200)。在一些实例中,视频解码器30B可确定图片丢失。视频解码器30B可经配置以基于图片丢失的确定而输出识别先前经解码图片的信息。
[0181] 视频解码器30B可用一或多个候选参考图片对当前图片进行帧间预测解码(202)。所述一或多个候选参考图片包含视频编码器20A先前确定为可用于对所识别图片和/或识别为可用于对曾被识别为可用于对所识别图片进行帧间预测编码的图片进行帧间预测编码的图片进行帧间预测编码的一或多个图片。所识别的图片也可为一或多个候选参考图片的一部分。
[0182] 举例来说,如果视频编码器20A对当前图片进行双向预测编码,视频解码器30B可以大体上类似的方式对当前图片进行双向预测解码。并且,在一些实例中,视频解码器30B可另外输出识别丢失的图片的信息。在此实例中,视频解码器30B可用丢失的图片除外的一或多个候选参考图片来对当前图片进行帧间预测解码。
[0183] 上述技术与RPSI和RPSSI有关(并且,可改变RPSI的定义以包含RPSSI的定义)。在一些实例中,视频编码器20A和视频解码器30B可利用特定图片丢失指示(SPLI)消息。对于SPLI,当发生错误时,视频解码器30B仅报告丢失或部分丢失的参考图片。视频编码器20A根据消息来跟踪错误,且一旦视频编码器20A可推断恰当地解码且仍存在于视频解码器30B的DPB 92中的参考图片,视频编码器20A就可使用此参考图片来编码当前图片以停止错误传播。
[0184] 对于SPLI消息,由于视频解码器30B可仅报告哪些图片丢失,因此视频编码器20A可基于所述所接收的消息仅推断哪些参考图片在视频解码器30B的DPB 92中可用。然而,视频编码器20A可不能够确定视频解码器30B侧何时发生错误(即,当报告错误时,视频编码器20A无法确定视频解码器30B的DPB 92的确切状态)。在一些情况下,对于视频编码器20A来说,准确地推断存储在视频解码器30B的DPB 92中的图片可为复杂的,如表2的实例中所示。
[0185]
[0186] 表2.参考结构
[0187] 表2指示参考结构。在表2中,*表示此图片保持在DPB中,但不用于当前图片解码,且POC表示图片次序计数,其指示何时将显示图片。举例来说,具有较小POC值的图片比具有较大POC值的图片早显示。所述图片的显示次序可不同于图片的编码或解码次序。
[0188] 在表2中,视频编码器20A使用所说明参考结构。存在两种情况:情况1:仅图片t+1丢失,解码器在解码图片t+2时布告此损失,且接着发送SPLI消息以告知编码器图片t+1丢失,以及情况2:图片t+1和图片t+2两者丢失,解码器在解码图片t+4时布告此无意丢失,且接着解码器发送SPLI消息来告知编码器图片t+1丢失。
[0189] 在一些实例中,当丢失的参考图片不用于当前图片解码时,视频解码器30B可不报告参考图片丢失,因为此参考图片可为有意丢弃的。比较这两种情况,视频编码器20A可不能够仅通过接收到的SPLI消息来区分它们。就是说,视频编码器20A可不推断图片t+3是否可用或不在视频解码器30B的DPB中。
[0190] 在以上实例技术中,视频解码器30B输出识别视频编码器20A根据其确定可用以对当前图片进行帧间预测编码的较多图片(例如多个图片)的几个图片(例如一个图片或选定很少图片)。然而,在一些实例中,视频解码器30B输出识别可不足以触发视频编码器20A确定视频编码器20A可用来对当前图片进行帧间预测编码的图片的几个图片的信息。在此等实例中,除输出识别视频解码器30B的DPB 92中的一或多个图片的信息之外,视频解码器30B还可输出指示图片已丢失的信息,以及识别丢失的图片的信息。作为响应,视频编码器
20A可基于识别为在视频解码器30B的DPB 92中的图片或先前确定为可用于对所识别图片或在译码次序中在所识别图片之后的图片进行帧间预测的图片来对当前图片进行帧间预测编码。
[0191] 图6是说明编码视频数据的另一实例方法的流程图。如上,所述实例是相对于视频编码器20A加以描述。如图6中所示,视频编码器20A可从视频解码器30B接收识别丢失的图片的信息(300)。视频编码器20A还可接收识别当前存储在视频解码器30B的DPB 92中的一或多个图片的信息(302)。在一些实例中,仅在视频解码器30B确定图片丢失的例子中,视频编码器20A可接收识别当前存储在视频解码器30B的DPB 92中的一或多个图片的信息。
[0192] 举例来说,在一些实例中,在恰当地解码图片的每一时刻之后,视频解码器30B可向视频编码器20A输出识别恰当地经解码图片的信息,且视频编码器20A接着可利用这些所识别图片中的一或多者来对当前图片进行帧间预测编码。在一些实例中,仅当视频解码器30B确定图片丢失(例如图片未解码、未准确地重构或未完全重构)时,视频解码器30B可输出识别存储在DPB 64中的一或多个图片(例如一或多个恰当地经解码图片)的信息。在这些实例中,视频解码器30B还可输出识别丢失的图片的信息(例如丢失的图片的POC值)。
[0193] 如图6中所示,接收识别丢失的图片的信息和接收识别视频解码器30B的DPB 92中的一或多个图片的信息是分开说明的。然而,本发明中描述的技术不限于此。在一些实例中,视频编码器20A可在捆绑的反馈消息中接收识别丢失的图片的信息以及识别视频解码器30B的DPB 92中的一或多个图片的信息。作为一个实例,单个反馈消息可包含识别丢失的图片的信息以及识别当前存储在视频解码器30B的DPB 92中的一或多个图片的信息。
[0194] 视频编码器20A可确定候选参考图片(304)。候选图片可仅限于视频解码器30B在反馈消息中识别的在视频解码器30B的DPB 92中的一或多个图片。在一些实例中,候选图片可为仍存储在视频编码器20A的DPB 64中的图片,其可能已用以对视频解码器30B所识别的一或多个图片进行帧间预测编码。
[0195] 视频编码器20A可从候选参考图片选择参考图片(306)来对当前图片进行帧间预测编码。视频编码器20A可基于选定的参考图片对当前图片进行帧间预测编码(308)。
[0196] 图7是说明解码视频数据的另一实例方法的流程图。如上,为了方便,所述描述是相对于视频解码器30B。如所说明,视频解码器30B可确定图片丢失(400)。举例来说,当图片将用以对另一图片进行帧间预测时,视频解码器30B可确定图片丢失,且视频解码器30B确定所述图片在视频解码器30B的DPB 92中不可用。作为另一实例,当视频解码器30B将输出图片时,视频解码器30B可确定所述图片丢失,且所述图片在视频解码器30B的DPB 92中不可用。
[0197] 视频解码器30B可向视频编码器20A输出识别丢失的图片的信息(402)。视频解码器30B还可输出识别当前存储在视频解码器30B的DPB 92中的一或多个图片的信息(404)。举例来说,视频解码器30B可输出识别丢失的图片的图片次序计数(POC)值,以及当前存储在视频解码器30B的DPB 92中的一或多个图片。在一些实例中,视频解码器30B可在捆绑的反馈消息中输出识别丢失的图片的信息,以及识别当前存储在DPB 92中的一或多个图片的信息。作为一个实例,可仅存在视频解码器30B需要发送来识别丢失的图片以及当前存储在DPB 92中的一或多个图片的一个消息。以此方式,视频解码器30B可发射识别缺失图片的SPLI类型消息,以及识别当前存储在视频解码器30B的DPB 92中的一或多个图片的RPSI类型消息。
[0198] 在一些实例中,视频解码器30B可在一个以上消息中输出识别丢失的图片的信息,以及当前存储在DPB 92中的一或多个图片。在一些实例中,在解码图片之后,视频解码器30B可向视频编码器20A输出识别其恰当地解码的每一图片的信息。在一些实例中,仅当视频解码器30B确定图片丢失时,视频解码器30B可输出识别当前存储在DPB 92中的一或多个图片的信息。
[0199] 视频解码器30B可根据一或多个参考图片对当前图片进行帧间预测解码(406)。参考图片可仅包含所识别的图片。在一些实例中,参考图片可包含所识别的图片以及可能已用以对所识别的图片进行帧间预测的图片。在一些实例中,参考图片可仅包含可能已用以对所识别的图片进行帧间预测的图片。
[0200] 在一或多个实例中,所描述的功能可用硬件、软件、固件或其任何组合来实施。如果用软件实施,那么所述功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体等有形媒体。以此方式,计算机可读媒体可一般对应于非暂时性的有形计算机可读存储媒体。数据存储媒体可为可由一或多个计算机或一个或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0201] 作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。然而,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
[0202] 可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指代上述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置以用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合式编解码器中。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
[0203] 本发明的技术可在各种各样的装置或设备中实施,包括无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要通过不同硬件单元来实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
[0204] 已描述了各种实例。这些和其它实例在所附权利要求书的范围内。