译码视频及存储视频内容的方法转让专利

申请号 : CN201380006985.2

文献号 : CN104205840B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王益魁陈颖

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

摘要 :

本发明提供一种包括视频文件创建模块的装置,其经配置以获得经译码视频内容的多个切片。参数集与所述经译码视频内容相关联。所述视频创建模块将经译码视频内容的所述多个切片封装于视频流的一或多个存取单元内。可将第一类型的参数集封装于所述视频流的一或多个存取单元内。可将第二类型的参数集封装于样本描述内。所述样本描述可包含识别存储于所述视频流的一或多个存取单元内的参数集的数目的指示符。

权利要求 :

1.一种产生包含经译码视频内容的视频文件的方法,所述方法包括:获得经译码视频内容的多个切片;

获得与视频内容的所述多个切片相关联的第一类型的第一多个参数集及与视频内容的所述多个切片相关联的第二类型的第二多个参数集;

将经译码视频内容的所述多个切片封装于视频流的多个存取单元内;

将所述多个存取单元封装于文件轨中的多个样本内;

封装所述第一多个参数集;以及

封装所述第二多个参数集;其中,

将所述第一多个参数集封装于所述多个样本内并将所述第二多个参数集封装于所述文件轨的样本描述内,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

2.根据权利要求1所述的方法,其中所述样本描述包含识别存储于所述样本描述内的所述第二类型的所述第二多个参数集的数目的指示符。

3.根据权利要求1所述的方法,其中所述第二多个参数集由不同类型的参数集组成。

4.根据权利要求3所述的方法,其中将所述第二多个参数集封装于样本描述内包含将每一类型的参数集网络抽象层NAL单元存储于所述样本描述中的专用阵列中。

5.根据权利要求4所述的方法,其中所述样本描述进一步包含包含补充增强信息SEI网络抽象层NAL单元的阵列。

6.根据权利要求1所述的方法,其中所述第一类型及所述第二类型两者为相同类型,以使得所述第一多个参数集及所述第二多个参数集包含所述相同类型的参数集。

7.根据权利要求6所述的方法,其中所述文件轨包含是否所述相同类型的至少一些参数集可能封装于样本内及所述样本描述内的指示。

8.根据权利要求1所述的方法,其中所述第一多个参数集由不同类型的参数集组成。

9.根据权利要求1所述的方法,其中所述样本描述包含与所述视频流的帧速率及空间分辨率中的至少一者相关联的信息。

10.根据权利要求1所述的方法,其中所述视频流包含多个时间层且其中所述样本描述进一步包含所述视频流的所述多个时间层的数目的指示。

11.根据权利要求1所述的方法,其中所述文件轨含有所述文件轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述,其中所述特性描述包含时间层识别、配置文件、等级、位速率及帧速率中的至少一者。

12.一种用于产生包括经译码视频文件的装置,其包括:

存储器装置,其用于存储经译码视频文件;及

一或多个处理器,其用于处理所述经译码视频文件,所述一或多个处理器经配置以:获得经译码视频内容的多个切片;

获得与视频内容的所述多个切片相关联的第一类型的第一多个参数集及与视频内容的所述多个切片相关联的第二类型的第二多个参数集;

将经译码视频内容的所述多个切片封装于视频流的多个存取单元内;

将所述多个存取单元封装于文件轨中的多个样本内;

封装所述第一多个参数集;

封装所述第二多个参数集;以及

将所述视频流的至少一部分存储到所述存储器装置;其中,

将所述第一多个参数集封装于所述多个样本内且将所述第二多个参数集封装于所述文件轨的样本描述内,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

13.根据权利要求12所述的装置,其中所述样本描述包含识别存储于所述样本描述内的所述第二类型的所述第二多个参数集的数目的指示符。

14.根据权利要求12所述的装置,其中所述第二多个参数集由不同类型的参数集组成。

15.根据权利要求14所述的装置,其中将所述第二多个参数集封装于样本描述内包含将每一类型的参数集网络抽象层NAL单元存储于所述样本描述中的专用阵列中。

16.根据权利要求15所述的装置,其中所述样本描述进一步包含包含补充增强信息SEI网络抽象层NAL单元的阵列。

17.根据权利要求12所述的装置,其中所述第一多个参数集及所述第二多个参数集包含相同类型的参数集。

18.根据权利要求17所述的装置,其中所述文件轨包含是否所述相同类型的至少一些参数集可能封装于样本内及样本描述内的指示。

19.根据权利要求12所述的装置,其中所述第一多个参数集由不同类型的参数集组成。

20.根据权利要求12所述的装置,其中所述样本描述包含与所述视频流的帧速率及空间分辨率中的至少一者相关联的信息。

21.根据权利要求12所述的装置,其中所述视频流包含多个时间层且其中所述样本描述进一步包含所述视频流的所述多个时间层的数目的指示。

22.根据权利要求12所述的装置,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述,其中所述特性包含时间层识别、配置文件、等级、位速率及帧速率中的至少一者。

23.一种非暂时性计算机可读存储媒体,其具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得经译码视频内容的多个切片;

获得与视频内容的所述多个切片相关联的第一类型的多个参数集及与视频内容的所述多个切片相关联的第二类型的第二多个参数集;

将经译码视频内容的所述多个切片封装于视频流的多个存取单元内;

将所述多个存取单元封装于文件轨中的多个样本内;

封装第一多个参数集;以及

封装所述第二多个参数集;其中,

将所述第一多个参数集封装于所述多个样本内并将所述第二多个参数集封装于所述文件轨的样本描述内,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

24.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述样本描述包含识别存储于所述样本描述内的所述第二类型的所述第二多个参数集的数目的指示符。

25.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述第二多个参数集由不同类型的参数集组成。

26.根据权利要求25所述的非暂时性计算机可读存储媒体,其中将所述第二多个参数集封装于样本描述内包含将每一类型的参数集网络抽象层NAL单元存储于所述样本描述中的专用阵列中。

27.根据权利要求26所述的非暂时性计算机可读存储媒体,其中所述样本描述进一步包含包含补充增强信息SEI网络抽象层NAL单元的阵列。

28.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述第一类型及所述第二类型两者为相同类型,以使得所述第一多个参数集及所述第二多个参数集包含所述相同类型的参数集。

29.根据权利要求28所述的非暂时性计算机可读存储媒体,其中所述文件轨包含是否所述相同类型的至少一些参数集可能封装于样本内及所述样本描述内的指示。

30.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述第一多个参数集由不同类型的参数集组成。

31.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述样本描述包含与所述视频流的帧速率及空间分辨率中的至少一者相关联的信息。

32.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述视频流包含多个时间层且其中所述样本描述进一步包含所述视频流的所述多个时间层的数目的指示。

33.根据权利要求23所述的非暂时性计算机可读存储媒体,其中所述文件轨含有所述文件轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述,其中所述特性描述包含时间层识别、配置文件、等级、位速率及帧速率中的至少一者。

34.一种经配置以产生包含经译码视频内容的视频文件的设备,所述设备包括:用于获得经译码视频内容的多个切片的装置;

用于获得与视频内容的所述多个切片相关联的第一类型的第一多个参数集及与视频内容的所述多个切片相关联的第二类型的第二多个参数集的装置;

用于将经译码视频内容的所述多个切片封装于视频流的多个存取单元内的装置;

用于将所述多个存取单元封装于文件轨中的多个样本内的装置;

用于封装所述第一多个参数集的装置;以及

用于封装所述第二多个参数集的装置;其中,

将所述第一多个参数集封装于所述多个样本内并将所述第二多个参数集封装于所述文件轨的样本描述内,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

35.一种处理包含经译码视频内容的视频文件的方法,所述方法包括:获得包含多个样本的文件轨;

将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装;

将经译码视频内容的多个切片从所述多个存取单元中解封装;

将与视频内容的所述多个切片相关联的第一类型的第一多个参数集解封装;以及将与视频内容的所述多个切片相关联的第二类型的第二多个参数集解封装;其中,将所述第一多个参数集从所述多个样本中解封装且将所述第二多个参数集从所述文件轨的样本描述中解封装,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

36.根据权利要求35所述的方法,其中所述样本描述包含识别存储于所述样本描述内的所述第二类型的参数集的数目的指示符。

37.根据权利要求35所述的方法,其中所述第二多个参数集由不同类型的参数集组成。

38.根据权利要求37所述的方法,其中每一类型的参数集网络抽象层NAL单元存储于所述样本描述中的专用阵列中。

39.根据权利要求38所述的方法,其中所述样本描述进一步包含包含补充增强信息SEI网络抽象层NAL单元的阵列。

40.根据权利要求35所述的方法,其中所述第一类型及所述第二类型两者为相同类型,以使得所述第一多个参数集及所述第二多个参数集包含所述相同类型的参数集。

41.根据权利要求40所述的方法,其中所述文件轨包含是否所述相同类型的至少一些参数集可能封装于样本内及所述样本描述内的指示。

42.根据权利要求35所述的方法,其中所述第一多个参数集由不同类型的参数集组成。

43.根据权利要求35所述的方法,其中所述样本描述包含与所述视频流的帧速率及空间分辨率中的至少一者相关联的信息。

44.根据权利要求35所述的方法,其中所述视频流包含多个时间层且其中所述样本描述进一步包含所述视频流的所述多个时间层的数目的指示。

45.根据权利要求35所述的方法,其中所述文件轨含有所述文件轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述,其中所述特性描述包含时间层识别、配置文件、等级、位速率及帧速率中的至少一者。

46.一种处理包含经译码视频内容的视频文件的装置,其包括存储器装置,其用于存储视频流的经译码视频数据;及

一或多个处理器,其用于处理所述经译码视频数据,所述一或多个处理器经配置以:访问所述存储器装置的视频流的至少一部分;

获得包含多个样本的文件轨;

将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装;

将经译码视频内容的多个切片从所述多个存取单元中解封装;

将与视频内容的所述多个切片相关联的第一类型的第一多个参数集解封装;以及将与视频内容的所述多个切片相关联的第二类型的第二多个参数集解封装;其中,将所述第一多个参数集从所述多个样本中解封装且将所述第二多个参数集从所述文件轨的样本描述中解封装,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

47.根据权利要求46所述的装置,其中所述样本描述包含识别存储于所述样本描述内的所述第二类型的参数集的数目的指示符。

48.根据权利要求46所述的装置,其中所述第二多个参数集由不同类型的参数集组成。

49.根据权利要求48所述的装置,其中每一类型的参数集网络抽象层NAL单元存储于所述样本描述中的专用阵列中。

50.根据权利要求49所述的装置,其中所述样本描述进一步包含包含补充增强信息SEI网络抽象层NAL单元的阵列。

51.根据权利要求46所述的装置,其中所述第一类型及所述第二类型两者为相同类型,以使得所述第一多个参数集及所述第二多个参数集包含所述相同类型的参数集。

52.根据权利要求51所述的装置,其中所述文件轨包含是否所述相同类型的至少一些参数集可能封装于样本内及所述样本描述内的指示。

53.根据权利要求46所述的装置,其中所述第一多个参数集由不同类型的参数集组成。

54.根据权利要求46所述的装置,其中所述样本描述包含与所述视频流的帧速率及空间分辨率中的至少一者相关联的信息。

55.根据权利要求46所述的装置,其中所述视频流包含多个时间层且其中所述样本描述进一步包含所述视频流的所述多个时间层的数目的指示。

56.根据权利要求46所述的装置,其中所述文件轨含有所述文件轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述,其中所述特性描述包含时间层识别、配置文件、等级、位速率及帧速率中的至少一者。

57.一种非暂时性计算机可读存储媒体,其具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得包含多个样本的文件轨;

将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装;

将经译码视频内容的多个切片从所述多个存取单元中解封装;

将与视频内容的所述多个切片相关联的第一类型的第一多个参数集解封装;以及将与视频内容的所述多个切片相关联的第二类型的第二多个参数集解封装;其中,将所述第一多个参数集从所述多个样本中解封装且将所述第二多个参数集从所述文件轨的样本描述中解封装,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

58.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述样本描述包含识别存储于所述样本描述内的所述第二类型的参数集的数目的指示符。

59.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述第二多个参数集由不同类型的参数集组成。

60.根据权利要求59所述的非暂时性计算机可读存储媒体,其中每一类型的参数集网络抽象层NAL单元存储于所述样本描述中的专用阵列中。

61.根据权利要求60所述的非暂时性计算机可读存储媒体,其中所述样本描述进一步包含包含补充增强信息SEI网络抽象层NAL单元的阵列。

62.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述第一类型及所述第二类型两者为相同类型,以使得所述第一多个参数集及所述第二多个参数集包含所述相同类型的参数集。

63.根据权利要求62所述的非暂时性计算机可读存储媒体,其中所述文件轨包含是否所述相同类型的至少一些参数集可能封装于样本内及所述样本描述内的指示。

64.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述第一多个参数集由不同类型的参数集组成。

65.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述样本描述包含与所述视频流的帧速率及空间分辨率中的至少一者相关联的信息。

66.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述视频流包含多个时间层且其中所述样本描述进一步包含所述视频流的所述多个时间层的数目的指示。

67.根据权利要求57所述的非暂时性计算机可读存储媒体,其中所述文件轨含有所述文件轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述,其中所述特性描述包含时间层识别、配置文件、等级、位速率及帧速率中的至少一者。

68.一种经配置以处理包含经译码视频内容的视频文件的设备,所述设备包括:用于获得包含多个样本的文件轨的装置;

用于将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装的装置;

用于将经译码视频内容的多个切片从所述多个存取单元中解封装的装置;

用于将与视频内容的所述多个切片相关联的第一类型的第一多个参数集解封装的装置;以及用于将与视频内容的所述多个切片相关联的第二类型的第二多个参数集解封装的装置;其中,将所述第一多个参数集从所述多个样本中解封装且将所述第二多个参数集从所述文件轨的样本描述中解封装,以支持所述第一多个参数集的带内传输同时支持所述第二多个参数集的带外传输,其中所述第一类型为图片参数集PPS,且所述第二类型为序列参数集SPS。

说明书 :

译码视频及存储视频内容的方法

[0001] 相关申请案
[0002] 本申请案主张以下各申请案的权利:
[0003] 2012年1月30日申请的第61/592,462号美国临时申请案;所述申请案据此以其全文引用的方式并入本文中。

技术领域

[0004] 本发明涉及视频译码及存储视频内容,且更明确地说,涉及用于将参数集及其它参数封装于视频文件内的技术。

背景技术

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

发明内容

[0008] 本发明涉及用于存储视频数据的各种技术。明确地说,本发明描述用于将参数集及其它参数封装于视频文件内的技术。
[0009] 在本发明的一个实例中,一种产生包含经译码视频内容的视频文件的方法包括:获得经译码视频内容的多个切片;获得与视频内容的所述多个切片相关联的多个参数集;
将经译码视频内容的所述多个切片封装于视频流的一或多个存取单元内;将第一类型的参数集封装于所述视频流的所述一或多个存取单元内;以及将第二类型的参数集封装于样本描述内,其中所述样本描述包含识别存储于所述视频流的一或多个存取单元内的参数集的数目的指示符。
[0010] 在本发明的一个实例中,一种产生包含经译码视频内容的视频文件的方法包括:获得经译码视频内容的多个切片;获得与视频内容的所述多个切片相关联的多个参数集;
以及将多个参数集封装于文件轨的样本描述内,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0011] 在本发明的一个实例中,一种产生包含经译码视频内容的视频文件的方法包括:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内;获得与所述视频流相关联的多个流属性;以及将流属性封装于文件轨的样本描述内,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0012] 在本发明的一个实例中,一种产生包含经译码视频内容的视频文件的方法包括:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内,其中所述视频流包含多个时间层;以及将指示符封装于文件轨的样本描述内,其中所述指示符指示所述视频流的时间层的数目。
[0013] 在本发明的一个实例中,一种产生包含经译码视频内容的视频文件的方法包括:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内,其中所述视频流包含多个时间层;以及将所述多个存取单元封装于文件轨中的多个样本内,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述。
[0014] 在本发明的另一实例中,一种装置包括视频文件创建模块,所述视频文件创建模块经配置以:获得经译码视频内容的多个切片;获得与视频内容的所述多个切片相关联的多个参数集;将经译码视频内容的所述多个切片封装于视频流的一或多个存取单元内;将第一类型的参数集封装于所述视频流的所述一或多个存取单元内;以及将第二类型的参数集封装于样本描述内,其中所述样本描述包含识别存储于所述视频流的一或多个存取单元内的参数集的数目的指示符。
[0015] 在本发明的另一实例中,一种装置包括视频文件创建模块,所述视频文件创建模块经配置以:获得经译码视频内容的多个切片;获得与视频内容的所述多个切片相关联的多个参数集;以及将多个参数集封装于文件轨的样本描述内,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0016] 在本发明的另一实例中,一种装置包括视频文件创建模块,所述视频文件创建模块经配置以:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内;获得与所述视频流相关联的多个流属性;以及将流属性封装于文件轨的样本描述内,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0017] 在本发明的另一实例中,一种装置包括视频文件创建模块,所述视频文件创建模块经配置以:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内,其中所述视频流包含多个时间层;以及将指示符封装于文件轨的样本描述内,其中所述指示符指示所述视频流的时间层的数目。
[0018] 在本发明的另一实例中,一种装置包括视频文件创建模块,所述视频文件创建模块经配置以:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内,其中所述视频流包含多个时间层;以及将所述多个存取单元封装于文件轨中的多个样本内,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述。
[0019] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得经译码视频内容的多个切片;获得与视频内容的所述多个切片相关联的多个参数集;将经译码视频内容的所述多个切片封装于视频流的一或多个存取单元内;将第一类型的参数集封装于所述视频流的所述一或多个存取单元内;以及将第二类型的参数集封装于样本描述内,其中所述样本描述包含识别存储于所述视频流的一或多个存取单元内的参数集的数目的指示符。
[0020] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得经译码视频内容的多个切片;获得与视频内容的所述多个切片相关联的多个参数集;以及将多个参数集封装于文件轨的样本描述内,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0021] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内;获得与所述视频流相关联的多个流属性;以及将流属性封装于文件轨的样本描述内,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0022] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内,其中所述视频流包含多个时间层;以及将指示符封装于文件轨的样本描述内,其中所述指示符指示所述视频流的时间层的数目。
[0023] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得经译码视频内容的多个切片;将经译码视频内容的所述多个切片封装于视频流的多个存取单元内,其中所述视频流包含多个时间层;以及将所述多个存取单元封装于文件轨中的多个样本内,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述。
[0024] 在本发明的另一实例中,一种经配置以产生包含经译码视频内容的视频文件的设备包括:用于获得经译码视频内容的多个切片的装置;用于获得与视频内容的所述多个切片相关联的多个参数集的装置;用于将经译码视频内容的所述多个切片封装于视频流的一或多个存取单元内的装置;用于将第一类型的参数集封装于所述视频流的所述一或多个存取单元内的装置;以及用于将第二类型的参数集封装于样本描述内的装置,其中所述样本描述包含识别存储于所述视频流的一或多个存取单元内的参数集的数目的指示符。
[0025] 在本发明的另一实例中,一种经配置以产生包含经译码视频内容的视频文件的设备包括:用于获得经译码视频内容的多个切片的装置;用于获得与视频内容的所述多个切片相关联的多个参数集的装置;以及用于将多个参数集封装于文件轨的样本描述内的装置,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0026] 在本发明的另一实例中,一种经配置以产生包含经译码视频内容的视频文件的设备包括:用于获得经译码视频内容的多个切片的装置;用于将经译码视频内容的所述多个切片封装于视频流的多个存取单元内的装置;用于获得与所述视频流相关联的多个流属性的装置;以及用于将流属性封装于文件轨的样本描述内的装置,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0027] 在本发明的另一实例中,一种经配置以产生包含经译码视频内容的视频文件的设备包括:用于获得经译码视频内容的多个切片的装置;用于将经译码视频内容的所述多个切片封装于视频流的多个存取单元内的装置,其中所述视频流包含多个时间层;以及用于将指示符封装于文件轨的样本描述内的装置,其中所述指示符指示所述视频流的时间层的数目。
[0028] 在本发明的另一实例中,一种经配置以产生包含经译码视频内容的视频文件的设备包括:用于获得经译码视频内容的多个切片的装置;用于将经译码视频内容的所述多个切片封装于视频流的多个存取单元内的装置,其中所述视频流包含多个时间层;以及用于将所述多个存取单元封装于文件轨中的多个样本内的装置,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述。
[0029] 在本发明的另一实例中,一种处理包含经译码视频内容的视频文件的方法包括:获得包含多个样本的文件轨;将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装;将经译码视频内容的多个切片从所述多个存取单元中解封装;以及将与视频内容的所述多个切片相关联的多个参数集从所述多个样本中解封装。
[0030] 在本发明的另一实例中,一种处理包含经译码视频内容的视频文件的方法包括:获得文件轨,其中所述文件轨包含经译码视频内容的多个切片;以及将与视频的所述多个切片相关联的多个参数集从所述文件轨的样本描述中解封装,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0031] 在本发明的另一实例中,一种处理包含经译码视频内容的视频文件的方法包括:获得文件轨,其中所述文件轨包含包含视频流的经译码视频内容的多个切片;以及从所述文件轨的样本描述中获得与所述视频流相关联的多个流属性,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0032] 在本发明的另一实例中,一种处理包含经译码视频内容的视频文件的方法包括:将经译码视频内容的多个切片从视频流的多个存取单元中解封装,其中所述视频流包含多个时间层;以及获得文件轨的样本描述内的指示符,其中所述指示符指示所述视频流的时间层的数目。
[0033] 在本发明的另一实例中,一种处理包含经译码视频内容的视频文件的方法包括:将多个存取单元从文件轨中的多个样本中解封装,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述;以及将经译码视频内容的多个切片从视频流的多个存取单元中解封装,其中所述视频流包含多个时间层。
[0034] 在本发明的另一实例中,一种装置包括处理器,所述处理器经配置以进行以下操作:获得包含多个样本的文件轨;将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装;将经译码视频内容的多个切片从所述多个存取单元中解封装;以及将与视频内容的所述多个切片相关联的多个参数集从所述多个样本中解封装。
[0035] 在本发明的另一实例中,一种装置包括处理器,所述处理器经配置以进行以下操作:获得文件轨,其中所述文件轨包含经译码视频内容的多个切片;以及将与视频的所述多个切片相关联的多个参数集从所述文件轨的样本描述中解封装,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0036] 在本发明的另一实例中,一种装置包括处理器,所述处理器经配置以进行以下操作:获得文件轨,其中所述文件轨包含包含视频流的经译码视频内容的多个切片;以及从所述文件轨的样本描述中获得与所述视频流相关联的多个流属性,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0037] 在本发明的另一实例中,一种装置包括处理器,所述处理器经配置以进行以下操作:将经译码视频内容的多个切片从视频流的多个存取单元中解封装,其中所述视频流包含多个时间层;以及从文件轨的样本描述中获得指示符,其中所述指示符指示所述视频流的时间层的数目。
[0038] 在本发明的另一实例中,一种装置包括处理器,所述处理器经配置以进行以下操作:将多个存取单元从文件轨中的多个样本中解封装,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述;以及将经译码视频内容的多个切片从视频流的多个存取单元中解封装,其中所述视频流包含多个时间层。
[0039] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得包含多个样本的文件轨;将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装;将经译码视频内容的多个切片从所述多个存取单元中解封装;以及将与视频内容的所述多个切片相关联的多个参数集从所述多个样本中解封装。
[0040] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得文件轨,其中所述文件轨包含经译码视频内容的多个切片;以及将与视频的所述多个切片相关联的多个参数集从所述文件轨的样本描述中解封装,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0041] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:获得文件轨,其中所述文件轨包含包含视频流的经译码视频内容的多个切片;以及从所述文件轨的样本描述中获得与所述视频流相关联的多个流属性,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0042] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:将经译码视频内容的多个切片从视频流的多个存取单元中解封装,其中所述视频流包含多个时间层;以及从文件轨的样本描述中获得指示符,其中所述指示符指示所述视频流的时间层的数目。
[0043] 在本发明的另一实例中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使视频译码装置的一或多个处理器进行以下操作:将多个存取单元从文件轨中的多个样本中解封装,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述;以及将经译码视频内容的多个切片从视频流的多个存取单元中解封装,其中所述视频流包含多个时间层。
[0044] 在另一实例中,一种经配置以处理包含经译码视频内容的视频文件的设备包括:用于获得包含多个样本的文件轨的装置;用于将多个存取单元从所述文件轨中的视频流的所述多个样本中解封装的装置;用于将经译码视频内容的多个切片从所述多个存取单元中解封装的装置;以及用于将与视频内容的所述多个切片相关联的多个参数集从所述多个样本中解封装的装置。
[0045] 在另一实例中,一种经配置以处理包含经译码视频内容的视频文件的设备包括:用于获得文件轨的装置,其中所述文件轨包含经译码视频内容的多个切片;以及用于将与视频的所述多个切片相关联的多个参数集从所述文件轨的样本描述中解封装的装置,其中对应于一类型的参数集的参数集网络抽象层单元包含于所述样本描述中的专用阵列中。
[0046] 在另一实例中,一种经配置以处理包含经译码视频内容的视频文件的设备包括:用于获得文件轨的装置,其中所述文件轨包含包含视频流的经译码视频内容的多个切片;
以及用于从所述文件轨的样本描述中获得与所述视频流相关联的多个流属性的装置,其中所述流属性包含所述视频流的帧速率及空间分辨率中的至少一者。
[0047] 在另一实例中,一种经配置以处理包含经译码视频内容的视频文件的设备包括:用于将经译码视频内容的多个切片从视频流的多个存取单元中解封装的装置,其中所述视频流包含多个时间层;以及用于获得文件轨的样本描述内的指示符的装置,其中所述指示符指示所述视频流的时间层的数目。
[0048] 在另一实例中,一种经配置以处理包含经译码视频内容的视频文件的设备包括:用于将多个存取单元从文件轨中的多个样本中解封装的装置,其中所述文件轨含有所述轨中的所述样本到时间层的指配的表示以及所述时间层中的每一者的特性描述;以及用于将经译码视频内容的多个切片从视频流的多个存取单元中解封装的装置,其中所述视频流包含多个时间层。
[0049] 一个或一个以上实例的细节阐述于附图及以下描述中。其它特征、目标及优势将从描述及附图及从权利要求书中显而易见。

附图说明

[0050] 图1为说明可根据本发明中所描述的技术产生的实例媒体文件的结构的概念图。
[0051] 图2说明可包含于根据本发明中所描述的技术产生的媒体文件中的HEVC存取单元的实例。
[0052] 图3为说明可利用本发明中所描述的技术的实例视频译码及传输系统的框图。
[0053] 图4为说明视频编码器的实例的框图。
[0054] 图5为说明可实施本发明中所描述的技术的封装模块的实例的框图。
[0055] 图6为说明可根据本发明中所描述的技术产生的实例媒体文件的结构的概念图。
[0056] 图7为说明根据本发明的技术的产生包含经译码视频内容的视频文件的实例的流程图。

具体实施方式

[0057] 一般来说,本发明涉及译码视频及将经译码视频内容存储于文件中。本发明描述用于存储视频内容的各种技术,包含(例如)基于基于ISO的媒体文件格式(ISOBMFF)将根据HEVC视频标准译码的视频内容存储于文件中。明确地说,本发明描述用于将包含于HEVC视频内容中的序列参数集(SPS)、图片参数集(PPS)及自适应参数集(APS)封装于媒体文件中的技术。在其中所有参数集在文件的开始可能为已知的且无一者需要进行更新的情况下(即,在一些情况下,具有相同参数集ID的参数集经更新以包含不同内容),可将参数集包含于样本描述中,此情形实现带外参数传输。在其中所有参数集在文件的开始无法已知或至少一者需要进行更新的情况下,可将参数集包含于流的样本中,或者,可将流分裂成多个子流,对于每一子流,可将参数集包含于对应样本描述中。通过允许将参数集包含于样本描述中或样本描述所应用于的流的样本中,无额外轨需要用于刚好存储样本集,且视频文件创建模块能够自由地在数个样本描述当中折衷,具有带外参数集传输的可能性。
[0058] 视频译码标准的实例包含ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉以及ITU-T H.264(还被称为ISO/IEC MPEG-4 AVC),包含其可调式视频译码(SVC)及多视角视频译码(MVC)扩展。另外,存在新的视频译码标准,即,高效率视频译码(HEVC),其是由ITU-T视频译码专家群组(VCEG)及ISO/IEC动画专家群组(MPEG)的视频译码联合协作小组(JCT-VC)开发。HEVC的新近工作草案(WD)(其被称作“HEVC工作草案5”或“WD5”)描述于巴斯等人的文档JCTVC-G1103中:“WD5:高效率视频译码(HEVC)的工作草案5”,ITU-TSG16 WP3及ISO/IEC JTC1/SC29/WG11的视频译码联合协作小组(JCT-VC),第7次会议:瑞士日内瓦,2012年11月。另外,HEVC的另一新近工作草案(工作草案7)描述于巴斯等人的文档HCTVC-I1003中:“高效率视频译码(HEVC)文本规范草案7”,ITU-TSG16 WP3及ISO/IEC JTC1/SC29/WG11的视频译码联合协作小组(JCT-VC),第9次会议:瑞士日内瓦,2012年4月27日到2012年5月7日。HEVC标准还可被称作ISO/IEC23008-HEVC,其希望为HEVC的递送版本的标准编号。
[0059] 为了存储根据特定视频标准译码的视频内容,需要对应于特定视频标准的文件格式规范。HEVC文件格式的最新草案使用ISOBMFF作为其封装格式的基础。HEVC文件格式的最新草案(其在本文中被称作HEVCFF)是根据ISO/IEC14496-15:2010/Amd.1:2011(E)定义且包含以下参考标准:
[0060] (1)ISO/IEC 14496-1:2001,信息技术-音频视觉对象的译码-第1部分:系统;
[0061] (2)ISO/IEC 23008-HEVC;以及
[0062] (3)ISO/IEC 14496-12,信息技术-音频视觉对象的译码-第12部分:基于ISO的媒体文件格式(即,ISOBMFF)
[0063] 以上各者中的每一者以其全文引用的方式并入本文中。
[0064] 应注意,ISO/IEC 14496-12在技术上与ISO/IEC 15444-12相同。ISOBMFF用作许多视频译码标准封装格式的基础,以及许多多媒体容器格式的基础。基于ISOBMFF的其它文件格式的实例包含(例如)MPEG-4文件格式(ISO/IEC 14496-14)、3GPP文件格式(3GPP TS 26.244)及AVC文件格式(ISO/IEC 14496-15)(即,AVCFF)。另外,应注意,尽管本文中所揭示的技术在一些实例中是关于HEVC加以描述且可能参考特定文件格式,但其可同等地适用于其它视频译码标准及文件格式。
[0065] 根据ISOBMFF结构化的文件可用于许多目的,包含本地媒体文件播放、远程文件的渐进式下载、用于HTTP上的动态自适应流式传输的片段(DASH)、用于待进行流式传输的内容的容器及其包化指令,及所接收的实时媒体流的记录。一般来说,ISOBMFF允许独立于元数据而存储连续媒体数据(例如,音频及视频数据)。在一个实例中,媒体数据可包含根据HEVC译码的图片群组。元数据通常包含呈现及定时信息,以使得媒体数据的数个部分可独立解码。
[0066] ISOBMFF使用基于面向对象的机制,其中基本语法元素用作形成媒体文件的建置块。在ISOBMFF中,这些基本语法元素被称作“信息盒”。然而,基于ISOBMFF的特定文件格式可指使用不同术语(例如,“原子”)的信息盒。另外,应注意,当描述基于ISOBMFF的特定文件格式时,特定术语常常可以非限制性方式与ISOBMFF术语互换地使用。举例来说,当描述HEVCFF时,术语“存取单元”可对应于ISOBMFF中的术语“样本”且可使用任一术语来描述存取单元。在ISOBMFF中,信息盒包含四字符类型、信息盒的字节计数,及有效载荷。信息盒类型定义特定信息盒与其它类型的信息盒之间的逻辑关系。信息盒类型还可描述:哪种数据对于特定信息盒类型来说为必备的及哪种数据对于特定信息盒类型来说为可选的。信息盒可为一序列或一群组信息盒的部分且可含有可被称作子信息盒的其它信息盒。
[0067] 在ISOBMFF中,电影信息盒(“moov”)含有存在于文件中的连续媒体流的元数据。可进一步将存在于文件中的连续媒体流的元数据封入于电影信息盒中的其它信息盒内。在ISOMBFF文件中,可将连续媒体流表示为轨,其中轨为参考可封入于电影信息盒内的元数据的逻辑结构,且其中媒体流由一序列样本组成。在ISOBMFF中,可将媒体流封入于信息盒内,例如媒体数据信息盒(“mdat”)及其子信息盒。另外,在一些实例中,可直接将媒体流存储于ISOBMFF文件中。轨的媒体内容由一序列样本组成,例如视频存取单元。一序列样本可被称作流。ISOBMFF指定含有基本媒体流的媒体轨。每一轨的元数据包含样本描述项的列表,每一样本描述项提供在轨中使用的译码或封装格式及用于处理所述格式所需的初始化数据。每一样本与轨的样本描述项中的一者相关联。基于ISOBMFF的一些文件类型还包含提示轨。
提示轨包含促进媒体内容的重构造以使得在于网络上流式传输媒体内容时质量及可靠性得以改善的信息。
[0068] 类似于根据ISOBMFF存储的文件,HEVC文件可包含参考元数据的一系列基本流。在HEVCFF中,样本可被称作存取单元(如ISO/IEC 23008-HEVC中所定义)。在HEVCFF中,还可将元数据包含于样本描述项中。HEVCFF可允许提示,但应注意,在一些文件格式中,提示轨作为“B帧”提及的图片实际上可为“一次性的”图片或非参考图片(如ISO/IEC 23008-HEVC中所定义)。另外,用于存储HEVC视频内容的文件格式可使用ISOBMFF的现有能力,而且可定义扩展以支持特定HEVC译码的视频内容特征,例如:参数集、时间可扩充性及随机存取恢复点。
[0069] 术语参数集可指序列参数集、图片参数集或自适应参数集,如ISO/IEC 23008-HEVC中所定义。序列参数集及图片参数集机制可将不频繁改变的信息的传输与经译码块数据的传输解耦。根据HEVC,含有经译码块数据的每一切片可参考含有其解码参数的图片参数集。另外,图片参数集可参考含有序列级解码参数信息的序列参数集。另外,HEVC还支持自适应参数集。自适应参数集可含有期望比图片参数集中的译码参数更频繁地改变的解码参数。在需要时,自适应参数集还可通过切片来参考。应注意,AVC当前并不支持自适应参数集。
[0070] HEVCFF可通过包含结构化及分群组机制以指示存取单元与不同阶层等级的时间可扩充性的关联来支持时间可扩充性样本分群组。时间可扩充性一般允许以各种帧速率(例如,每秒30帧(fps)或60 fps)以各种位速率播放经译码视频内容。在一个实例中,HEVC视频轨可含有具有grouping_type′tscl′的SampleToGroupBox的零个或一个实例。此SampleToGroupBox实例可表示轨中的样本到时间层的指配。具有相同分群组类型的SampleGroupDescriptionBox的伴随实例可(如果存在的话)含有描述时间层的TemporalLayerEntry样本群组项。因此,在HEVCFF中,可将时间层样本群组项定义为群组类型:‘tscl’;容器:样本群组描述信息盒(‘sgpd’);必备的:否;及数量:零或更多样本。
[0071] 在一些情况下,时间层样本群组项可定义时间层中的所有样本的时间层信息。可用非负整数对时间层编号,每一时间层可与temporal_id的特定值相关联,如ISO/IEC23008-HEVC中所定义。在一个实例中,与大于0的temporal_id值相关联的时间层可取决于与较小temporal_id值相关联的所有时间层。与特定temporal_id值相关联的时间层表示(其还可被称作时间层的表示)可由与等于或大于特定temporal_id值的temporal_id值相关联的所有时间层组成。
[0072] 以下语法为可用于时间层项的语法的实例:
[0073]
[0074] 在上述的实例时间层项语法中,可将语义定义如下:
[0075] temporalLayerId可给出时间层的ID。在一些实例中,对于为此样本群组的成员的所有样本,视频译码层(VCL)网络抽象层(NAL)单元(下文中进一步详细描述VCL NAL单元)应具有等于temporalLayerId的temporal_id,如ISO/IEC 23008-HEVC中所定义。
[0076] tlProfileIndication可含有用于通过temporalLayerId识别的时间层的表示的配置文件代码(profile_idc),如ISO/IEC 23008-HEVC中所定义。
[0077] tlProfileCompatibility可为用于通过temporalLayerId识别的时间层的表示的与出现于SPS中的profile_idc与level_idc之间的字节相同的经确切定义的字节,如ISO/IEC23008-HEVC中所定义。
[0078] LevelIndication可含有用于通过temporalLayerId识别的时间层的表示的等级代码(level_idc),如ISO/IEC 23008-10中所定义。
[0079] tlMaxBitrate可给出用于通过temporalLayerId识别的时间层的表示的在一秒的任何窗口内的以每秒1000位来计的最大速率。
[0080] tlAvgBitRate可给出用于通过temporalLayerId识别的时间层的表示的以每秒1000位为单位的平均位速率。
[0081] tlConstantFrameRate可等于1,其指示通过temporalLayerId识别的时间层的表示具有恒定帧速率。值零可指示通过temporalLayerId识别的时间层的表示可能或可能不具有恒定帧速率。
[0082] tlAvgFrameRate可给出用于通过temporalLayerId识别的时间层的表示的以帧/(256秒)为单位的平均帧速率。
[0083] 除时间可扩充性样本分群组之外,HEVC的工作草案还包含“逐渐解码刷新”或随机存取恢复点的概念。可在位流中使用恢复点补充增强信息(SEI)消息用信号发出随机存取恢复点。此消息可见于随机存取的开始,且可指示在恢复完成之前在SEI消息的位置处的存取单元之后必须解码多少数据。在HEVCFF中通过使用类型为“卷动”(如ISO/IEC14496-12中所定义)的样本分群组来支持逐渐恢复的概念。群组成员组成可标记含有SEI消息的样本,以使得“卷动距离”约束为仅为正的(即,后卷)。应注意,卷动群组对文件格式中的样本计数的方式可能不匹配在SEI消息中表示距离的方式。因此,在流内,可能有必要标记预卷的开始,以使得流解码器可从所述处开始解码。然而,在文件中,当执行随机存取时,可能需要针对可完美地解码的最近的先前帧的确定性的搜索(例如,同步样本,或预卷结束)。
[0084] 图1为说明基于ISOBMFF及当前HEVCFF的实例HEVC媒体文件的结构的概念图。应注意,图1中的实例HEVC媒体文件142希望说明视频数据流与元数据之间的逻辑关系。为了简洁起见,未说明HEVC媒体文件142的完整封装结构。然而,HEVC媒体文件142可利用根据HEVCFF定义的信息盒及封装结构。在图1中所说明的实例中,HEVC媒体文件142包含元数据信息盒144及视频数据流146A到146N。元数据信息盒144可能类似于ISOBMFF‘moov’信息盒且可含有视频数据流146A到146N中的每一者的元数据。在一个实例中,可将元数据包含于元数据表148A到148N内。元数据表148A到148N可包含对应于视频数据流146A到146N的样本项。元数据表的一个实例为样本表信息盒。视频数据流146A到146N中的每一者可参考元数据表148A到148N中的一或多者。
[0085] 视频数据流146A到146N可对应于ISOBMFF中所描述的视频或视觉轨。因此,视频数据流146A到146N可因此可使用:(1)HandlerBox中的为‘参阅’的handler_type;(2)视频媒体标头‘vmhd’;以及(3)VisualSampleEntry的衍生形式。视频流可通过HEVC媒体文件142中的一个视频轨来表示。视频数据流146A到146N中的每一者可包含一或多个存取单元150A到150N。HEVC媒体文件142中的存取单元150A到150N可根据HEVCFF来定义。存取单元150A到
150N可对应于ISOBMFF中的样本。存取单元150A到150N可在外部进行分帧且具有通过所述外部分帧供应的大小。在一些情况下,元数据信息盒144可包含定义存取单元150A到150N的大小的信息。存取单元150A到150N可包含一组NAL(即,网络抽象层)单元152A到152N。NAL单元152A到152N可根据HEVCFF来定义。
[0086] 每一NAL单元152A到152N可包含指示NAL单元的长度(以字节计)的长度字段。在一些实例中,长度字段可经配置为一个字节、两个字节或四个字节。长度字段使得能够容易地扫描存取单元内的NAL单元。NAL单元152A到152N可含有如ISO/IEC23008-HEVC中所指定的NAL单元数据。除其它类型的NAL单元之外,HEVCFF还定义以下类型的NAL单元:视频数据NAL单元,其可被称作VCL NAL单元、补充增强信息(SEI)NAL单元及存取单元(AU)定界符NAL单元,以及其它类型的NAL单元。应注意,保留于ISO/IEC 23008-HEVC中的NAL单元类型可能需要未来的定义。一些文件读取器可经配置以忽略具有保留值的NAL单元类型的NAL单元(当其存在于这些阵列中时)。应注意,此‘容忍’行为经设计以使得错误不会升高,从而允许在未来规范中到这些阵列的向后兼容扩展的可能性。
[0087] VCL NAL单元可经格式化以使得单个图片的所有经译码切片NAL单元包含于其解码时间及合成时间为图片的解码时间及合成时间的存取单元内。另外,可能需要存取单元150A到150N含有至少一个视频数据NAL单元。
[0088] 视频数据流146A到146N还可经格式化以使得所有SEI NAL单元包含于其解码时间出现在SEI消息生效时的时间之前的存取单元中。SEI消息在存取单元150A到150N内的次序可如根据ISO/IEC 23008-HEVC所定义般。另外,HEVC文件142可能需要图片的SEI消息包含于含有所述图片的存取单元中且关于一序列图片的SEI消息包含于含有SEI消息所关于的序列的第一图片的存取单元中。存取单元定界符NAL单元可根据ISO/IEC 23008-HEVC来约束。HEVC文件142可能需要视频数据流146A到146N中及单个存取单元内的NAL单元序列以如ISO/IEC 23008-HEVC中所指定的有效解码次序布置。
[0089] 图2说明包含NAL单元的HEVC存取单元的实例。如图2中所说明,存取单元150包含AU定界符NAL单元、SEI NAL单元及两个切片NAL单元。另外,应注意,HEVCFF可支持ISOMBFF中所描述的子样本的概念。子样本经定义为样本内的一或多个相连NAL单元且具有以下字段的相同值:RefPicFlag及VclNalUnitFlag。在图2中所说明的实例存取单元150中,两个切片NAL单元可形成子样本。可用于HEVC流的子样本信息盒的实例描述于ISO/IEC 14496-12的第8.7.7章节中。子样本可包含多个NAL单元及其先前NAL单元长度字段。当使用子样本时,子样本信息盒的存在可为可选的。然而,根据HEVCFF,如果子样本信息盒存在于含有HEVC数据的轨中,那么可能需要将subsample_priority字段设置为根据ISO/IEC 14496-12中的此字段的规范的值。另外,只有在于舍弃此子样本的情况下(例如,子样本由SEI NAL单元组成)仍可解码此样本的情况下,可能需要将可弃字段设置为1。保留字段根据以下实例语法定义于HEVCFF中:
[0090] unsigned int(1)RefPicFlag;
[0091] unsigned int(1)VclNalUnitFlag;
[0092] unsigned int(30)reserved=0;
[0093] 在上述的实例语法中,可将语义定义如下:RefPicFlag等于0可指示子样本中的所有NAL单元具有等于0的nal_ref_flag。RefPicFlag等于1可指示子样本中的所有NAL单元具有等于1的nal_ref_flag。
[0094] VclNalUnitFlag等于0可指示子样本中的所有NAL单元为非VCL NAL单元。值1可指示子样本中的所有NAL单元为VCL NAL单元。
[0095] 再次参看图1,HEVC媒体文件142可经格式化以使得所有定时信息在视频数据流146A到146N外部。然而,在一些实例中,HEVC文件142可包含定义视频数据流146A到146N中的呈现或合成时间戳的图片定时SEI消息,这是因为图片定时SEI消息可含有除定时以外的信息且可能为所需的以进行符合性检查。HEVC媒体文件142可将所有定时信息存储于样本元数据表148A到148N中。存储于元数据表148A到148N中的定时信息可覆写提供于视频数据流146A到146N中的任何定时。另外,HEVC媒体文件142可经配置以使得提供于流内的定时信息被解码器忽略,这是因为其可能与提供于HEVC媒体文件142中的别处的定时信息相抵触且另外在一些情况下,提供于流内的定时信息可能不会为正确的或在其自身内一致。应注意,可归因于以下事实而强加定时信息约束:在文件格式等级下的流的压缩后编辑、组合或重新定时可能使存在于流内的任何嵌入式定时信息无效或使得其不一致。
[0096] 在一些实例中,HEVC媒体文件142可经配置以便按解码次序存储存取单元150A到150N。因此,如果不使用图片重新排序且解码时间(DTS)与合成时间(CTS)相同,那么呈现与解码次序相同且仅需要使用时间到样本‘stts’表。应注意,可将任何种类的图片重新排序于HEVC视频中,并非仅B-图片。如果解码时间与合成时间不同,那么还可结合‘stts’表使用合成时间到样本‘ctts’表。在一些实例中,如果存取单元中的VCLNAL单元指示存取单元中所含有的经译码图片为瞬时解码刷新(IDR)图片,那么存取单元可被视为同步样本。
[0097] 在一些情况下,HEVC媒体文件142可经配置以使得需要视频数据流146A到146N不包含开始代码。然而,希望使用开始代码递送用于HEVC媒体文件142的流的系统可通过将视频流146A到146N重新格式化以插入开始代码来进行此操作。另外,可自然地将视频数据表示为HEVC媒体文件142中的可变位速率且可在需要时进行填充以用于传输。因此,HEVC媒体文件142可经配置以使得需要视频数据流146A到146N不包含填充数据NAL单元及填充数据SEI消息。应注意,如果HEVC媒体文件142不含有填充数据NAL单元、开始代码、zero_byte语法元素及/或填充数据SEI消息,那么HEVC媒体文件142的位流特性可关于与假想参考解码器(HRD)(当在恒定位速率(CBR)模式中操作HRD时,如ISO/IEC 23008-HEVC附录C中所指定)的符合性而改变。
[0098] 类似于HEVCFF,AVCFF还包含作为参考标准的ISO/IEC 14496-1:2001且AVCFF包含与HEVC的工作草案类似的系统接口设计(还被称作高级语法)。因此,可以类似于AVC文件的方式来格式化HEVC媒体文件142的一些部分。然而,AVCFF的一些方面可能不提供HEVC译码的视频内容的最佳格式化。
[0099] AVCFF的一个方面在于:因为参数集可包含于样本描述中或单独参数集轨中,所以轨的数目或样本描述的数目可能存在不必要的增加,其中每一者对应于视频轨中的整个视频流的子集。应注意,当前HEVCFF并不允许单独参数集轨。
[0100] AVCFF的另一方面在于:不同类型的参数集捆绑在一起,而不管其包含于样本描述中还是单独参数集轨中。因此,在不使用单独参数轨的AVC文件中,不可能在样本描述中包含一些类型的参数集而排除其它参数集。因此,在此情况下,SPS及PPS两者存储于样本描述中,但PPS可更频繁地改变。以此方式,无法独立于SPS而传输PPS。
[0101] AVCFF的另一方面在于:样本描述包含用于SPS的阵列及用于PPS的另一阵列。在AVCFF中,还允许这些阵列含有含声明的SEI消息的SEI NAL单元。因此,文件分析器将必须检查包含于SPS或PPS阵列中的每一NAL单元的NAL单元标头以确定NAL单元为参数集NAL单元还是SEI NAL单元。
[0102] AVC文件格式的另一方面在于:不允许将如空间分辨率及帧速率的流属性(其对于轨或流选择目的来说为重要的)(例如,在基于文件的自适应流式传输应用中)存储于样本描述中且因此其在AVCFF设计下存取不便利。
[0103] AVC文件格式的另一方面在于:对于每一时间层表示,遗漏例如配置文件、等级及帧速率的时间可扩充性属性(其对于选择流的特定时间子集来说为重要的)。
[0104] 图3为说明可利用本发明中所描述的技术的实例视频译码及传输系统的框图。在一个实例中,系统10可经配置以将PPS封装于视频流的存取单元内,其中样本描述包含识别存储于视频流的一或多个存取单元内的PPS的数目的指示符。如图3中所展示,系统10包含源装置12,其产生经编码视频数据以用于在稍后时间由目的地装置14解码。源装置12及目的地装置14可经配置以使得可在源装置12处产生关于图1所描述的HEVC媒体文件142且将其发射到目的地装置14。源装置12及目的地装置14可包括广泛范围的装置中的任一者,广泛范围的装置包含桌上型计算机、笔记型计算机(即,膝上型计算机)、平板计算机、机顶盒、电话手机(例如,所谓的“智能”电话、所谓的“智能”平板计算机)、电视机、摄像机、显示装置、数字媒体播放器、视频游戏控制台、视频流装置或其类似者。在一些情况下,源装置12及目的地装置14可经装备以用于进行无线通信。
[0105] 在图3的实例中,源装置12包含视频源18、视频编码器20、封装单元21及输出接口22。视频源18可包含例如以下各者等源:视频俘获装置(例如,视频摄像机)、含有先前所俘获的视频的视频存档、接收来自视频内容提供者的视频的视频馈入接口,及/或用于产生计算机图形数据作为源视频的计算机图形系统,或此类源的组合。可由视频编码器20来编码所俘获的、预先俘获的或计算机产生的视频。视频编码器20可根据视频压缩标准(例如,HEVC)操作且可符合HEVC测试模型(HM)。另外,视频编码器20可根据本文中所描述的其它视频标准操作。
[0106] 对于根据HEVC的视频译码,可将视频帧分割成数个译码单元。译码单元(CU)一般是指用作对其应用各种译码工具以实现视频压缩的基本单元的图像区。CU通常具有表示为Y的明度分量,及表示为U及V的两个色度分量。取决于视频取样格式,依据样本的数目来计的U及V分量的大小可与Y分量的大小相同或不同。CU通常为方形,且可被视为类似于(例如)例如AVC等其它视频译码标准下的所谓的宏块。为了说明的目的,将在本申请案中描述根据在开发中的HEVC标准的目前所提议的方面中的一些方面的译码。然而,本发明中所描述的技术可用于其它视频译码过程,例如根据AVC或其它标准定义的视频译码过程或专有视频译码过程。HEVC标准化努力是基于被称作HEVC测试模型(HM)的视频译码装置的模型。HM假设视频译码装置优于根据(例如)ITU-T H.264/AVC的装置的若干能力。举例来说,鉴于AVC提供九个帧内预测编码模式,HM提供多达三十四个帧内预测编码模式。
[0107] 视频序列通常包含一系列视频帧或图片。图片群组(GOP)一般包含一系列视频图片中的一或多者。GOP可在GOP的标头、图片中的一或多者的标头中或在别处包含描述包含于GOP中的图片的数目的语法数据。图片的每一切片可包含描述所述相应切片的编码模式的切片语法数据。视频编码器20通常对个别视频切片内的视频块进行操作,以便编码视频数据。视频块可包含对应于CU内的译码节点的一或多个TU或PU。视频块可具有固定或变化的大小,且可根据指定译码标准而在大小方面不同。
[0108] 根据HM,CU可包含一或多个预测单元(PU)及/或一或多个变换单元(TU)。位流内的语法数据可定义最大译码单元(LCU),其为依据像素的数目来计的最大CU。一般来说,除了CU不具有大小区别以外,CU具有类似于H.264的宏块的目的。因此,可将CU分裂成数个子CU。一般来说,本发明中对CU的参考可指图片的最大译码单元或LCU的子CU。可将LCU分裂成数个子CU,且可将每一子CU进一步分裂成数个子CU。用于位流的语法数据可定义可将LCU分裂的最大次数,其被称作CU深度。因此,位流也可定义最小译码单元(SCU)。本发明也使用术语“块”或“部分”来指CU、PU或TU中的任一者。一般来说,“部分”可指视频帧的任一子集。
[0109] LCU可与四叉树数据结构相关联。一般来说,四叉树数据结构每一CU包括一个节点,其中根节点对应于LCU。如果将CU分裂成四个子CU,那么对应于CU的节点包含四个叶节点,所述四个叶节点中的每一者对应于所述子CU中的一者。四叉树数据结构的每一节点可提供用于对应CU的语法数据。举例来说,四叉树中的节点可包含分裂旗标,所述分裂旗标指示对应于所述节点的CU是否分裂成数个子CU。可以递归方式定义用于CU的语法元素,且用于CU的语法元素可取决于CU是否分裂成数个子CU。如果CU未经进一步分裂,那么CU被称作叶CU。在本发明中,叶CU的4个子CU也将被称作叶CU,但不存在原始叶CU的任何明确分裂。举例来说,如果16×16大小的CU未经进一步分裂,那么四个8×8子CU也将被称作叶CU,但16×16 CU从未经分裂。
[0110] 此外,叶CU的TU还可与相应四叉树数据结构相关联。即,叶CU可包含指示如何将叶CU分割成数个TU的四叉树。本发明提及指示如何将LCU分割为CU四叉树的四叉树,以及指示如何将叶CU分割成数个TU作为TU四叉树的四叉树。TU四叉树的根节点一般对应于叶CU,而CU四叉树的根节点一般对应于LCU。未经分裂的TU四叉树的TU被称作叶TU。
[0111] 叶CU可包含一或多个预测单元(PU)。一般来说,PU表示对应CU的全部或一部分,且可包含用于检索用于PU的参考样本的数据。举例来说,当PU经帧间模式编码时,PU可包含定义用于PU的运动向量的数据。定义运动向量的数据可描述(例如)运动向量的水平分量、运动向量的垂直分量、用于运动向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、运动向量指向的参考帧,及/或用于运动向量的参考列表(例如,列表0或列表1)。用于定义PU的叶CU的数据还可描述(例如)将CU分割成一或多个PU。分割模式可取决于CU是未经译码、经帧内预测模式编码还是经帧间预测模式编码而不同。对于帧内译码,可将PU视为与下文所描述的叶变换单元相同。
[0112] 作为实例,HM支持以各种PU大小进行预测。假设特定CU的大小为2N×2N,那么HM支持以2N×2N或N×N的PU大小进行帧内预测,及以2N×2N、2N×N、N×2N或N×N的对称PU大小进行帧间预测。HM还支持用于以2N×nU、2N×nD、nL×2N及nR×2N的PU大小进行帧间预测的不对称分割。在不对称分割中,CU的一个方向未经分割,而另一方向经分割成25%及75%。CU的对应于25%分割的部分通过“n”后接续有“上”、“下”、“左”或“右”的指示来指示。因此,例如,“2N×nU”是指在水平方向上以顶部2N×0.5N PU及底部2N×1.5N PU分割的2N×2N CU。
[0113] 在本发明中,“N×N”与“N乘N”可互换地使用以指视频块在垂直尺寸与水平尺寸方面的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块在垂直方向上将具有16个像素(y=16)且在水平方向上将具有16个像素(x=16)。同样地,N×N块一般在垂直方向上具有N个像素,且在水平方向上具有N个像素,其中N表示非负整数值。块中的像素可布置成数行及数列。此外,块未必需要在水平方向上具有与在垂直方向上的像素数目相同的数目个像素。举例来说,块可包括N×M个像素,其中M未必等于N。
[0114] 为了译码块(例如,视频数据的预测单元),首先导出用于块的预测子。预测子(其还被称作预测性块)可经由帧内(I)预测(即,空间预测)或帧间(P或B)预测(即,时间预测)来导出。因此,一些预测单元可使用相对于同一帧(或切片)中的相邻参考块中的参考样本的空间预测来进行帧内译码(I),且其它预测单元可相对于其它先前经译码帧(或切片)中的参考样本块进行单向帧间译码(P)或进行双向帧间译码(B)。在每一种情况下,参考样本可用以形成用于待译码块的预测性块。
[0115] 在识别预测性块后,便确定原始视频数据块与其预测性块之间的差。此差可被称作预测残余数据,且指示待译码块中的像素值与经选择以表示经译码块的预测性块中的像素值之间的像素差。为了实现更好的压缩,可(例如)使用离散余弦变换(DCT)、整数变换、卡南-洛伊夫(Karhunen-Loeve)(K-L)变换或另一变换来变换预测残余数据。
[0116] 变换块(例如,TU)中的残余数据可布置于驻留于空间像素域中的像素差值的二维(2D)阵列中。变换将残余像素值转换成变换域(例如,频域)中的变换系数的二维阵列。为了实现进一步压缩,可在熵译码之前将变换系数量化。熵译码器接着对经量化的变换系数应用熵译码,例如上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、概率区间分割熵译码(PIPE)或其类似者。
[0117] 为了熵译码经量化的变换系数块,通常执行扫描过程以便根据特定扫描次序将块中的经量化的变换系数的二维(2D)阵列重新排序成变换系数的有序的一维(1D)阵列(即,向量)。接着对变换系数的向量应用熵译码。变换单元中的经量化的变换系数的扫描使用于熵译码器的变换系数的2D阵列串行化。可产生有效性图以指示显著(即,非零)系数的位置。可应用扫描以扫描显著(即,非零)系数的等级,及/或译码显著系数的正负号。
[0118] 在HEVC中,首先译码针对TU的显著变换的位置信息(例如,有效性图)以指示扫描次序中最后的非零系数的位置。以反扫描次序译码每一系数的有效性图及等级信息(系数的绝对值及正负号)。
[0119] 在应用任何变换以产生变换系数之后,视频编码器20可执行变换系数的量化。量化一般指如下过程:将变换系数量化以可能地减少用以表示所述系数的数据的量,从而提供进一步压缩。量化过程可减少与系数中的一些系数或全部系数相关联的位深度。举例来说,可在量化期间将n位值降值舍位到m位值,其中n大于m。在一些实例中,视频编码器20可利用预定义扫描次序来扫描经量化的变换系数,以产生可经熵编码的串行化向量。在其它实例中,视频编码器20可执行自适应扫描。
[0120] 图4为说明可实施本发明中所描述的技术的实例视频编码器20的框图。视频编码器20可执行视频切片内的视频块的帧内译码及帧间译码。帧内译码依赖于空间预测以减少或去除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测以减少或去除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可指若干基于时间的压缩模式中的任一者。
[0121] 在图4的实例中,视频编码器20包含分割模块35、预测模块41、参考图片存储器64、求和器50、变换模块52、量化模块54,及熵编码模块56。预测模块41包含运动估计模块42、运动补偿模块44,及帧内预测模块46。预测模块41还可包含分割模块35。对于视频块重构造,视频编码器20还包含反量化模块58、反变换模块60,及求和器62。还可包含解块滤波器(图4中未展示)以对块边界进行滤波,以从经重构造的视频中去除块效应伪影。在需要时,解块滤波器通常对求和器62的输出进行滤波。除解块滤波器之外,还可使用额外的环路滤波器(环路内或环路后)。
[0122] 如图4中所展示,视频编码器20接收视频数据,且分割模块35可将数据分割成数个视频块。此分割还可包含将视频数据分割成切片、图块或其它较大单元,以及(例如)根据LCU及CU的残余四叉树结构以产生PU及TU的视频块分割。分割模块35可将视频数据块(例如,LCU)分割成数个子块(例如,CU、PU及TU)。举例来说,分割模块35可基于先前译码遍次中的先前分割方案的评估分割视频数据块。举例来说,分割模块35最初可基于速率-失真分析(例如,速率-失真优化)结合预测模块41将帧或切片分割成数个LCU,且将LCU中的每一者分割成数个子CU。因此,尽管在图4中将分割模块35展示为单独块以用于说明的目的,但由分割模块35执行的分割功能可与预测模块41的模式选择及预测功能集成,特别是在由预测模块41执行的速率-失真分析可用以至少部分地确定应用于LCU以产生CU、子CU、PU及TU的分割的方面的情况下。一般来说,预测模块41结合分割模块35可产生指示LCU到子CU的分割的四叉树数据结构。四叉树的叶节点CU可包含一或多个PU及一或多个TU。
[0123] 预测模块41(如通过分割模块35表示)可提供用于独立于其它视频分量定义用于多个视频分量中的一者的分割方案的各种技术,如本发明中所描述。在另一方面中,预测模块41可基于视频块的一或多个属性确定是否独立于其它视频分量定义用于视频块的多个视频分量中的至少一者的分割方案。在一些实例中,属性可包含块大小、图片类型、块分割或运动信息中的至少一者。
[0124] 视频编码器20一般说明编码待编码的视频切片内的视频块的组件。切片可划分成多个视频块(且有可能划分成被称作图块的视频块的集合)。预测模块41可基于误差结果(例如,译码速率及失真程度)选择用于当前视频块的多个可能译码模式中的一者,例如,多个帧内译码模式中的一者或多个帧间译码模式中的一者。预测模块41可将所得的经帧内译码或经帧间译码块提供到求和器50以产生残余块数据,且将所得的经帧内译码或经帧间译码块提供到求和器62以重构造经编码块以用作参考图片。
[0125] 预测模块41内的帧内预测模块46可执行相对于与待译码的当前块相同的帧或切片中的一或多个相邻块的当前视频块的帧内预测性译码以提供空间压缩。预测模块41内的运动估计模块42及运动补偿模块44执行相对于一或多个参考图片中的一或多个预测性块的当前视频块的帧间预测性译码以提供时间压缩。
[0126] 如果选择帧间预测而不是帧内预测用于当前视频块,那么运动估计模块42可经配置以根据用于视频序列的预定型样确定用于视频切片的帧间预测模式。预定型样可指明序列中的视频切片为P切片、B切片或一般化P/B(GPB)切片。运动估计模块42及运动补偿模块44可高度集成,但为了概念目的而分别加以说明。由运动估计模块42执行的运动估计为产生运动向量的过程,运动向量估计视频块的运动。运动向量(例如)可指示当前视频帧或图片内的视频块的PU相对于参考图片内的预测性块的位移。
[0127] 在帧间译码中,预测性块为被发现与待译码的视频块的PU在像素差方面紧密匹配的块,可通过绝对差总和(SAD)、平方差总和(SSD)或其它不同度量来确定像素差。在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的子整数像素位置的值。举例来说,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计模块42可执行相对于全像素位置及分数像素位置的运动搜索,且以分数像素精度输出运动向量。
[0128] 运动估计模块42通过比较经帧间译码切片中的视频块的PU的位置与参考图片的预测性块的位置而计算所述PU的运动向量。参考图片可选自第一参考图片列表(列表0)或第二参考图片列表(列表1),第一参考图片列表(列表0)或第二参考图片列表(列表1)中的每一者识别存储于参考图片存储器64中的一或多个参考图片。运动估计模块42将所计算的运动向量(例如)连同其它语法元素一起发送到熵编码模块56及运动补偿模块44。
[0129] 由运动补偿模块44执行的运动补偿可涉及基于通过运动估计确定的运动向量提取或产生预测性块,有可能执行子像素精度的内插。在接收到当前视频块的PU的运动向量后,运动补偿模块44便可将运动向量所指向的预测性块定位于参考图片列表中的一者中。视频编码器20通过从正被译码的当前视频块的像素值减去预测性块的像素值从而形成像素差值来形成残余视频块。像素差值形成块的残余数据,且可包含明度差分量与色度差分量两者。求和器50表示执行此减法运算的一或多个组件。运动补偿模块44还可产生与视频块及视频切片相关联的语法元素以供视频解码器30用于解码视频切片的视频块。
[0130] 帧内预测模块46可帧内预测当前块,从而作为由运动估计模块42及运动补偿模块44执行的帧间预测(如上文所描述)的替代。明确地说,帧内预测模块46可确定使用帧内预测模式以编码当前块。在一些实例中,帧内预测模块46可使用各种帧内预测模式(例如)在单独编码遍次期间编码当前块以产生预测性块,且帧内预测模块46(或,在一些实例中,模式选择模块40)可从所测试模式中选择适当帧内预测模式来使用。举例来说,帧内预测模块
46可使用对各种所测试帧内预测模式的速率-失真分析计算速率-失真值,且在所测试模式当中选择具有最好速率-失真特性的帧内预测模式。速率-失真分析一般确定经编码块与经编码以产生经编码块的原始的未经编码块之间的失真(或误差)的量,以及用以产生经编码块的位速率(即,位数目)。帧内预测模块46可根据各种经编码块的失真及速率计算比率以确定哪一帧内预测模式展现块的最好速率-失真值。
[0131] 在任一情况下,在选择用于块的帧内预测模式之后,帧内预测模块46可将指示用于块的选定帧内预测模式的信息提供到熵译码模块56。举例来说,帧内预测模块46可提供信令(例如,一或多个语法元素)以指示选定帧内模式。熵译码模块56可编码指示所选定帧内预测模式的信息。视频编码器20可在经发射的位流配置数据中包含各种块的编码上下文的定义及将用于所述上下文中的每一者的最可能的帧内预测模式、帧内预测模式索引表及修改的帧内预测模式索引表的指示,所述经发射的位流配置数据可包含多个帧内预测模式索引表及多个修改的帧内预测模式索引表(还被称作码字映射表)。
[0132] 在预测模块41产生用于当前视频块的预测性块之后,视频编码器20通过从当前视频块中减去预测性块而形成残余视频块。残余块中的残余视频数据可包含于一或多个TU中且应用于变换模块52。变换模块52使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残余视频数据变换成残余变换系数。变换模块52可将残余视频数据从像素域转换到变换域,例如频域。
[0133] 变换模块52可将所得变换系数发送到量化模块54。量化模块54将变换系数量化以进一步减小位速率。量化过程可减小与系数中的一些系数或全部系数相关联的位深度。可通过调整量化参数而修改量化程度。在一些实例中,量化模块54可接着执行包含经量化的变换系数的矩阵的扫描。或者,熵编码模块56可执行所述扫描。
[0134] 在量化之后,熵编码模块56熵编码经量化的变换系数。举例来说,熵编码模块56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵编码方法或技术。在由熵编码模块56进行的熵编码之后,可将经编码位流发射到视频解码器30或加以存档以供视频解码器30稍后传输或检索。熵编码模块56还可熵编码正被译码的当前视频切片的运动向量及其它语法元素。
[0135] 反量化模块58及反变换模块60分别应用反量化及反变换,以在像素域中重构造残余块以供稍后用作参考图片的参考块。运动补偿模块44可通过将残余块与参考图片列表中的一者内的参考图片中的一者的预测性块相加来计算参考块。运动补偿模块44还可将一或多个内插滤波器应用于经重构造的残余块以计算子整数像素值以供用于运动估计中。求和器62将经重构造的残余块与由运动补偿模块44产生的经运动补偿的预测块相加以产生用于存储于参考图片存储器64中的参考块。参考块可由运动估计模块42及运动补偿模块44作为用于对后续视频帧或图片中的块进行帧间预测的参考块使用。
[0136] 图4的视频编码器20表示经配置以输出HEVC译码的视频内容的视频编码器的实例,所述HEVC译码的视频内容可包含视频内容的经译码样本、参数集及SEI消息。如上文所描述,关于图1中所说明的HEVC媒体文件142,供HEVC视频译码标准使用的参数集的类型包含SPS、PPS及APS。每一参数集具有识别符,且根据HEVC标准译码的每一切片(如上文所描述)可参考不使用参数集的识别符来译码的参数集。
[0137] 再次参看图3,封装模块21可接收来自视频编码器20的经编码视频内容且根据本文中所描述的技术产生视频文件。在一个实例中,封装模块21可接收HEVC译码的视频内容且使用基于ISOBMFF及HEVCFF的当前版本的文件格式产生视频文件。
[0138] 图5为说明实例封装模块21的组件的框图。在图5的实例中,封装模块21包含视频输入接口70、视频文件创建模块72及视频文件输出接口76。在此实例中,视频文件创建模块70包含网络抽象层(NAL)单元构造器74。
[0139] 视频输入接口70可接收经译码视频内容。视频输入接口70可接收来自视频编码器20的经译码视频内容或可从存储装置中检索经编码视频内容。经译码视频内容可根据HEVC标准来译码且可包含视频内容的样本、参数集及SEI消息。在接收到经编码视频内容后,视频输入接口70可将经译码视频内容输出到视频文件创建模块72以用于组合成视频文件。在一些实例中,视频输入接口70可通过在将经译码视频内容输出到视频文件创建模块72之前组织或缓冲经译码视频内容而促进视频文件的组合。
[0140] 一般来说,视频文件创建模块72可产生包含所接收的经译码视频内容的视频文件。在一个实例中,视频文件创建模块72可创建视频文件,例如,关于图1所描述的HEVC媒体文件142。视频文件创建模块72可对应于包含经配置以执行有助于其的功能及程序的硬件、软件及/或固件的控制单元。控制单元可进一步执行一般来说有助于封装模块21的功能。对于其中视频文件创建模块72嵌入于软件及/或固件中的实例,封装模块21可包含包括用于视频文件创建模块72的指令的计算机可读媒体,及用以执行指令的处理单元。视频文件创建模块72的子模块(在此实例中,NAL单元构造器74)可实施为个别硬件模块及/或软件模块,且可在功能上集成或进一步分离成额外的子模块。视频文件创建模块72可对应于任何合适的处理单元或处理电路,例如,一或多个微处理器、特殊应用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其任何组合。视频文件创建模块72可进一步包含存储用于NAL单元构造器74的指令的非暂时性计算机可读媒体,以及用于执行指令的处理器。
[0141] 在一个实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中参数集可包含于样本描述中或样本描述所应用于的流的样本或存取单元中。在一个实例中,如果一类型的参数集包含于样本描述中,那么其可能不会也包含于样本自身内。即,在此特定实例中,对于特定样本描述应用于的视频流,特定类型的参数集(如果存在的话)可存储于样本描述中或样本中,但决不会存储于两者中。在替代实例中,一类型的参数集可包含于样本描述及样本描述所应用于的流的样本两者中。当允许将参数集包含于样本描述中或样本自身内时,可将一指示包含于样本描述中以指示除包含于样本描述中的参数集之外是否还存在包含于样本中的参数集。在另一实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中仅一种或一种以上特定类型的参数集可包含于样本描述及样本描述所应用于的流的样本两者中。举例来说,在一些实例中,文件格式可允许将PPS包含于样本描述及样本两者中,而可能仅允许将SPS包含于样本描述中。另外,在此实例中,可能仅允许APS为所存储样本。另外,可将一指示包含于样本描述中以指示除包含于样本描述中的参数集之外是否可能存在包含于样本中的特定类型的参数集。
[0142] 另外,视频文件创建模块72可经配置以使得含有HEVC视频流解码器特定信息的每一HEVC样本描述可包含特定类型的参数集群组。参数集群组可非常类似于码簿来起作用。每一参数集可具有识别符,且每一经译码切片可参考参数集识别符。如通过文件格式定义,可分别表示参数集的每一配置。根据一些文件格式,无法在不致使使用不同样本描述的情况下更新参数集。在此情况下,希望发送参数集更新的系统可能需要比较两种配置以找到差异以便发送适当参数集更新。应注意,HEVCFF通常推荐:当使用若干参数集且需要参数集更新时,将参数集包含于流的样本中。还应注意,除非通过基于HEVCFF的另一文件格式约束,否则可能需要符合HEVCFF的解码器支持存储于样本中的参数集以及存储于样本描述项中的参数集两者。
[0143] 在一个实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中当参数集包含于样本描述中或样本描述所应用于的流的样本中时,不同类型的参数集未捆绑在一起。在此实例中,样本描述或样本中的一种类型的参数集的包含可独立于其它类型的参数集是否包含于样本描述或样本中。在另一实例中,视频文件创建模块可经配置以根据文件格式输出经编码视频数据,其中当所有类型的参数集的子集涉及其是否包含于样本描述中还是样本描述所应用于的流的样本中时,仅所述子集捆绑在一起。举例来说,可将SPS及PPS捆绑在一起,而样本描述中或样本中的APS的包含可独立于样本描述中或样本中的SPS及PPS的包含。
[0144] 在一个实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中样本描述包含用于每一类型的参数集的阵列,且用于特定类型的参数集的阵列可能仅包含所述特定类型的参数集NAL单元。另外,样本描述还可包含用于含声明的SEI消息的SEI NAL单元的阵列。因此,在此情况下,文件分析器并不需要检查包含于阵列中的每一NAL单元的NAL单元标头以确定NAL单元的类型。在替代实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中阵列包含于样本描述中,且阵列可包含任何类型的参数集以及含声明的SEI消息的SEI NAL单元。
[0145] 在一个实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中类似空间分辨率及帧速率的流属性(其对于轨或流选择目的来说为重要的)(例如,在基于文件的自适应流式传输应用中)包含于样本描述中。另外,在另一实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中样本描述包含输出位深度(即,从视频编码器20输出的图片的位深度,其对于不同色彩分量来说可能相同或不同)。在样本描述中包含对于轨或流选择目的来说为重要的流属性可实现对这些流属性的便利存取。在另一实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中样本描述包含关于可独立于整个流中的其它图块而解码的图块集合(如HEVC中所定义)的信息,例如,图块集合所涵盖的几何区。
[0146] 在一个实例中,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,其中通过时间可扩充性样本分群组机制,包含用于每一时间层表示的例如配置文件、等级及帧速率等时间可扩充性属性(其对于流的特定时间子集的选择来说为重要的)。
[0147] 在一个实例中,视频文件创建模块72可经配置以将整个视频流存储于一个轨中,而不管视频流中包含多少个时间层。在替代实例中,可将整个视频流存储于一个以上轨中,其中每一轨含有连续时间层的子集。在其中整个视频流存储于一个以上轨中的情况下,文件中可能存在指示以指示每一轨的所含有的最低时间层具有表示为tId的大于0的temporal_id,且指示含有具有等于tId-1的temporal_id的层的轨。这些轨可分别表示为轨A及轨B。此指示可为包含于轨A中的类型为‘tscl’的轨参考,其中轨参考是指轨A所取决于的轨B。轨A的流属性可描述流由轨A组成且轨A中也含有共同地含有具有小于tId的temporal_id值的时间层的所有轨(似乎所有这些时间层)。在一个实例中,视频文件创建模块72可经配置以执行上文所描述的实例中的任一者及所有组合。举例来说,视频文件创建模块72可经配置以根据文件格式输出经编码视频数据,包含本文中所描述的文件格式中的任一者及所有组合。
[0148] 视频文件创建模块72可包含存储于文件内的解码器信息配置记录中的解码器配置信息。解码器信息可通过HEVC标准来定义且解码器配置记录可基于当前在HEVCFF中定义的解码器配置记录,但还可包含与本文中所描述的实例一致的额外信息。以此方式,可根据定义解码器配置信息的文件格式来实施上文所描述的视频文件创建模块72的实例配置中的一或多者。解码器配置信息可包含于如下文进一步描述的解码器配置记录中。因此,在一个实例中,如上文所描述的样本描述可体现于解码器配置记录中。应注意,尽管例如参数集及其相应指示等元数据经描述为包含于解码器配置记录中或样本描述中,但此情形不应被解释为限制性的且上文关于视频文件创建模块72的实例配置所描述的元数据可存储于由视频文件创建模块72产生的文件的其它部分中,其中由视频文件创建模块72产生的文件的其它部分不同于视频流。
[0149] 在一个实例中,视频文件创建模块72可产生包含解码器配置记录的文件,所述解码器配置记录可含有用于每一存取单元中的长度字段的大小以指示存取单元的所含有的NAL单元的长度。另外,在一个实例中,由视频文件创建模块72产生的解码器配置记录还可包含关于参数集及声明的SEI NAL单元的信息,例如:(1)关于参数集是存储于样本描述中还是存取单元内的指示;(2)存储于样本描述中或流的存取单元内的参数集的数目;(3)关于参数集NAL单元的信息;(4)关于声明的SEI NAL单元的信息;及/或(5)空间分辨率信息。
[0150] 可由视频文件创建模块72根据以下实例语法产生实例解码器配置记录。应注意,可根据上文所描述的其它实例视频文件创建模块72配置修改下文的语法。
[0151]
[0152]
[0153] 在上述的实例语法中,可将语义定义如下:
[0154] ProfileIndication可含有用于此配置记录所应用于的流的配置文件代码(profile_idc),如ISO/IEC 23008-HEVC中所定义。
[0155] profileCompatibility可为用于此配置记录所应用于的流的与出现于序列参数集(SPS)中的profile_idc与level_idc之间的字节相同的经确切定义的字节,如ISO/IEC23008-HEVC中所定义。
[0156] LevelIndication可含有等级代码(level_idc),如ISO/IEC 23008-10中所定义。
[0157] chromaFormat可含有用于此配置记录所应用于的流的chroma_format指示符,如通过ISO/IEC 23008-HEVC中的chroma_format_idc参数所定义。
[0158] bitDepthLumaMinus8可含有用于此配置记录所应用于的流的明度位深度指示符,如通过ISO/IEC 23008-HEVC中的bit_depth_luma_minus8参数所定义。
[0159] bitDepthChromaMinus8可含有用于此配置记录所应用于的流的色度位深度指示符,如通过ISO/IEC 23008-HEVC中的bit_depth_chroma_minus8所定义。
[0160] pictureWidthInLumaPixels可指示用于此配置记录所应用于的流的以明度像素为单位的已解码图片宽度。
[0161] pictureHeightInLumaPixels可指示用于此配置记录所应用于的流的以明度像素为单位的已解码图片高度。
[0162] avgFrameRate可给出用于此配置记录所应用于的流的以帧/(256秒)为单位的平均帧速率。值0可指示未经指定的平均帧速率。
[0163] constantFrameRate等于1可指示此配置记录所应用于的流具有恒定帧速率。值2可指示流中的每一时间层的表示具有恒定帧速率。值0可指示流可能或可能不具有恒定帧速率。
[0164] numTemporalLayers大于1可指示此配置记录所应用于的流在时间上可扩充且所含有的层的数目等于numTemporalLayers。值1可指示流在时间上并非可扩充的。值0可指示流是否在时间上可扩充为未知的。
[0165] lengthSizeMinusOne加上1可指示此配置记录所应用于的流中的HEVC视频样本中的NALUnitLength字段的以字节来计的长度。举例来说,可用值0来指示一个字节的大小。此字段的值可为0、1或3中的一者,其分别对应于以1个、2个或4个字节编码的长度。
[0166] numOfSequenceParameterSets可指示用于解码此配置记录所应用于的流的SPS的数目。在一个实例中,如果值大于0,那么将不存在包含于流的样本中的SPS。在一个实例中,如果值等于0,那么将存在包含于流的样本中的至少一个SPS。
[0167] sequenceParameterSetLength可指示SPS NAL单元的以字节来计的长度,如ISO/IEC 23008-HEVC中所定义。
[0168] sequenceParameterSetNalUnit可含有SPS NAL单元,如ISO/IEC 23008-HEVC中所指定。
[0169] numOfPictureParameterSets可指示用于解码此配置记录所应用于的流的图片参数集的数目。在一个实例中,如果值大于0,那么将不存在包含于流的样本中的PPS。在一个实例中,如果值等于0,那么将存在包含于流的样本中的至少一个PPS。
[0170] pictureParameterSetLength可指示PPS NAL单元的以字节来计的长度,如ISO/IEC23008-HEVC中所定义。
[0171] pictureParameterSetNalUnit可含有PPS NAL单元,如ISO/IEC 23008-HEVC中所指定。
[0172] numOfAdaptationParameterSets可指示用于解码此配置记录所应用于的流的自适应参数集(APS)的数目。在一个实例中,如果值大于0,那么将不存在包含于流的样本中的APS。在一个实例中,如果值等于0,那么可能或可能不存在包含于流的样本中的APS。
[0173] adaptationParameterSetLength可指示APS NAL单元的以字节来计的长度,如ISO/IEC 23008-HEVC中所定义。
[0174] adaptationParameterSetNalUnit可含有APS NAL单元,如ISO/IEC 23008-HEVC中所指定。
[0175] numOfDeclarativeSeiNalUnits可指示用于此配置记录所应用于的流的声明的SEINAL单元的数目。声明的SEI NAL单元可含有具‘声明的’性质的SEI消息,即,作为整体提供关于流的信息。此SEI的实例为用户数据SEI。
[0176] declarativeSeiNalUnitLength可指示声明的SEI NAL单元的以字节来计的长度。
[0177] declarativeSeiNalUnit可含有声明的SEI NAL单元。
[0178] numOfSequenceParameterSetExt可指示用于解码AVC基本流的序列参数集扩展的数目。
[0179] sequenceParameterSetExtLength可指示SPS扩展NAL单元的以字节来计的长度,如ISO/IEC 14496-10中所定义。
[0180] sequenceParameterSetExtNALUnit可含有SPS扩展NAL单元,如ISO/IEC 14496-10中所指定。
[0181] 除上文所描述的实例语法及语义之外,供视频创建模块72使用的文件格式可包含关于解码器配置记录的额外约束。举例来说,在一些情况下,对于通过解码器配置记录描述的流的所有参数集,用于ProfileIndication、LevelIndication及指示配置文件兼容性的旗标的值必须为有效的。另外,在一些情况下,等级指示必须指示等于或大于所包含的参数集中所指示的最高等级的能力等级,且在所有所包含的参数集设置每一配置文件兼容性旗标的情况下,可能仅设置所述旗标。另外,在一些情况下,配置文件指示必须指示与此配置记录相关联的流所符合的配置文件。另外,在一些情况下,如果用不同配置文件来标记序列参数集,且相关配置文件兼容性旗标皆为零,那么流可能需要进行检验以确定整个流符合哪个配置文件(如果存在的话)。另外,如果未检验整个流,或检验揭露不存在整个流所符合的配置文件,那么必须将整个流分裂成具有单独配置记录的两个或两个以上子流(其中可能满足这些规则)。
[0182] 另外,在一些实例中,可在解码器配置记录中提供关于色度格式及位深度以及供HEVC视频基本流使用的其它重要格式信息的明确指示。可能需要每一种类型的此信息在单个HEVC配置记录中在所有参数集(如果存在的话)中相同。另外,在一些情况下,如果两个序列在任一种类型的此信息中不同,那么可能需要两个不同的HEVC配置记录。另外,如果两个序列在其VUI信息中的色彩空间指示方面不同,那么也可能需要两个不同的配置记录。
[0183] 另外,可在外部将由视频文件创建模块72产生的解码器配置记录分帧。当在外部将解码器配置记录分帧时,可通过含有解码器配置记录的结构来供应其大小。解码器配置记录还可含有版本字段。在一些情况下,对解码器配置记录的兼容扩展可扩展解码器配置记录且将不会改变配置版本代码。在一些情况下,应准备文件读取器以忽略超出其所理解的数据的定义之外的未得到辨识的数据。
[0184] 除产生解码器配置记录之外,视频文件创建模块72可进一步经配置以组合特定时间实例的包含所有NAL单元的存取单元。再次参看图5,NAL单元构造器74可形成包含经编码视频数据的NAL单元。如上文关于图1中所描述的HEVC媒体文件142所描述,NAL单元的类型可包含:AU定界符NAL单元、SEI NAL单元及切片NAL单元。如关于实例解码器记录语法及语义进一步描述,NAL单元的额外类型可包含:SPS NAL单元、PPS NAL单元、APS NAL单元及声明的SEI NAL单元。
[0185] 在一个实例中,NAL单元构造器74可经配置以根据以下语法基于解码器配置记录定义NAL单元:
[0186]
[0187] 在实例语法中,NALUnitLength可指示以字节来计的NAL单元的大小。长度字段可包含NAL标头及RBSP有效载荷两者的大小,但未必包含长度字段自身。另外,NALUnit可含有单个NAL单元。NAL单元的语法可于ISO/IEC 23008-HEVC中加以定义且可包含NAL标头及可变长度封装的字节流有效载荷两者。
[0188] 另外,在一些实例中,视频文件创建模块72可进一步经配置以根据通过文件格式定义的约束组合包含NAL单元的存取单元。举例来说,在其中允许将参数集存储于待用于经译码图片的样本内的一种情况下,必须在含有所述图片的样本之前或在所述图片的样本中发送参数集。参看图1,如果图片包含于存取单元150B内,那么根据此实例约束,对于供存取单元150B使用的参数集,必须将其存储于元数据信息盒144、存取单元150A或存取单元150B中。应注意,将参数集存储于视频流的样本描述中提供了一种供应参数集的简单且静态的方式。然而,将参数集存储于样本中可能比将参数集存储于样本描述中更复杂,但在参数集更新的情况下及在添加额外参数集的情况下允许更多推动力。参数集更新是指特定参数集的内容更新,但参数集的ID保持相同。
[0189] 另外,供视频创建模块72使用的文件格式可定义HEVC视频基本流(其还可被称作HEVC视觉样本项)中的存取单元的格式。在一个实例中,可经由用于HEVC基本流的解码器特定配置来配置存取单元的语法。另外,在一个实例中,可将与一或多个存取单元相关联的样本描述名称及格式定义如下:(1)可将信息盒类型定义为‘hvcl’或‘hvcC’;(2)可将容器定义为样本表信息盒(‘stbl’);(3)必备项可包含‘hvcl’样本项;及(4)可定义数量以允许存在一或多个样本项。另外,在一个实例中,可能需要HEVC视觉样本项含有HEVC配置信息盒,如下文进一步描述。在一些实例中,HEVC配置信息盒可包含HEVC解码器配置记录,如上文所描述。
[0190] 可选语法元素MPEG4BitRateBox可存在于HEVC视觉样本项中以用信号发出HEVC视频流的位速率信息。在用于MPEG-4中时,还可存在应插入到基本流描述符中的扩展描述符。在一些实例中,可使用多个样本描述,如ISO基础媒体文件格式规范所准许的,以指示使用不同配置或参数集的视频的部分。
[0191] 在一些实例中,仅可在此样本项应用于的流为顺从的及可用的HEVC流时(如通过在HEVCConfigurationBox中给出的配置(包含配置文件及等级)下操作的HEVC解码器观察看来),使用样本项名称‘hvcl’。
[0192] 在一个实例中,视频文件创建模块72可经配置以根据以下语法定义HEVC视觉样本项:
[0193]
[0194] 另外,在上文提供的实例语法中,如在基础类VisualSampleEntry中定义的Compressorname可指示供推荐的值“\013HEVC译码”(\012为10,以字节来计的字串的长度)使用的压缩器的名称。可进一步根据HEVCFF来定义语法元素Compressorname。可根据解码器配置记录来定义语法元素config。
[0195] 视频文件创建模块72可进一步经配置以组合包含NAL单元的存取单元,其中宽度及高度字段包含于VisualSampleEntry中。在一个实例中,VisualSampleEntry中的宽度及高度字段必须正确地用文献证明通过所述项描述的HEVC流的经剪裁的图片尺寸(视觉呈现大小)。在一个实例中,宽度及高度字段并不反映由例如全景(pan-scan)等SEI消息造成的大小的任何改变。在一些实例中,例如全景等SEI消息的视觉处置为可选的及取决于终端的。另外,在某种情况下,如果序列的宽度及高度改变,那么需要新的样本描述。在一些实例中,轨标头中的宽度及高度字段可能与视频轨中的一个或一个以上VisualSampleEntry中的宽度及高度字段不相同。如ISO基础媒体文件格式中所指定,如果需要标准化视觉呈现,那么可将所有序列标准化成轨宽度及高度以用于呈现。
[0196] 在视频文件创建单元72产生视频文件之后,视频文件创建单元72可将视频文件传递到视频文件输出接口76。视频文件输出接口76可将视频文件输出到(例如)源装置20的输出接口22。在一些实例中,视频文件输出接口76可将视频文件输出到源装置20(未图示)的存储媒体或存储装置32。
[0197] 图6为说明基于ISOBMFF及当前HEVCFF的实例HEVC媒体文件的结构的概念图。HEVC媒体文件242表示使用本发明的技术的文件格式文本的实例,其中(1)参数集可包含于样本描述中或样本描述所应用于的流的样本中;(2)当不同类型的参数集涉及其是包含于样本描述中还是样本描述所应用于的流的样本中时,不同类型的参数集未捆绑在一起;(3)样本描述包含用于每一种类型的参数集的阵列,且用于特定类型的参数集的阵列可仅包含所述特定类型的参数集NAL单元且样本描述还包含用于含声明的SEI消息的SEI NAL单元的阵列;(4)流属性包含于样本描述中。应注意,图6中的实例HEVC媒体文件242希望说明视频数据流与元数据之间的逻辑关系。为了简洁起见,未说明HEVC媒体文件242的完整封装结构。然而,HEVC媒体文件242可利用根据HEVCFF定义的信息盒及封装结构。可由视频文件创建单元72根据上文所描述的实例语法及约束产生HEVC媒体文件。
[0198] 在图6中所说明的实例中,HEVC媒体文件242包含元数据信息盒244及视频数据流246。元数据信息盒244可类似于ISOBMFF‘moov’信息盒且可含有用于视频数据流266的数据,例如解码器配置记录250。在一个实例中,元数据表可为样本表信息盒。元数据信息盒
244及解码器配置记录250两者可形成样本描述的部分。在一个实例中,解码器配置记录250可使用上文所描述的实例语法来产生且可包含关于参数集的信息及SEI NAL单元消息。另外,解码器配置记录包含语法元素(SYNTAX ELEMENTS)。语法元素(SYNTAX ELEMENTS)可包含关于流属性的信息,例如空间分辨率。在一个实例中,解码器配置记录252可包含SPS阵列
254及SEI阵列258。SPS阵列254可包含SPS NAL单元255。SEI阵列258可包含SEI NAL单元
259。
[0199] 视频数据流246可对应于HEVCFF中所描述的视频或视觉轨。因此,视频数据流246可因此可使用:(1)HandlerBox中的为‘参阅’的handler_type;(2)视频媒体标头‘vmhd’;以及(3)VisualSampleEntry的衍生形式。视频数据流246可包含多个存取单元260A到260N。可由视频文件创建单元72根据上文所描述的实例语法及约束产生存取单元260A到260N。如图6中所说明,存取单元260A包含PPS NAL单元256A及VCLNAL单元256B且存取单元260N包含APS NAL单元256C及VCL NAL 256D。在一个实例中,视频数据流246可包含一或多个时间层且元数据信息盒244可进一步包含关于是否将视频数据流246划分成一或多个轨的指示。
[0200] 以此方式,HEVC文件242表示实例文件,其中(1)参数集包含于样本描述中及样本描述所应用于的流的样本中;(2)当不同类型的参数集涉及其是包含于样本描述中还是样本描述所应用于的流的样本中时,不同类型的参数集未捆绑在一起;(3)样本描述包含用于每一种类型的参数集的阵列且样本描述还包含用于含有声明的SEI消息的SEI NAL单元的阵列;及(4)流属性包含于样本描述中。
[0201] 再次参看图3,源装置12可经配置以根据一或多个文件格式输出经编码视频数据且目的地装置14可经配置以接收一或多个文件格式(例如,本文中所描述的文件格式)的经编码视频数据。可经由源装置12的输出接口22将本文中所描述的视频文件直接发射到目的地装置14。还可(或者)将视频文件存储到存储装置32上以用于稍后由目的地装置14或其它装置存取以用于解码及/或播放。
[0202] 目的地装置14包含输入接口28、解封装模块29、视频解码器30及显示装置34。在一些情况下,输入接口28可包含接收器及/或调制解调器。目的地装置14的输入接口28经由链路16接收经编码视频数据。经由链路16传达或提供于存储装置32上的经编码视频数据可包含由视频编码器20产生以供视频解码器(例如,视频解码器30)在解码视频数据中使用的多种语法元素。此类语法元素可包含于在通信媒体上予以传输、存储于存储媒体中或存储文件服务器的经编码视频数据中。在一些实例中,此类语法元素可包含用信号发出帧内译码模式的语法元素,如本发明中所描述。
[0203] 显示装置34可与目的地装置14集成或在目的地装置14外部。在一些实例中,目的地装置14可包含集成显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示装置34向用户显示已解码视频数据,且可包括多种显示装置中的任一者,例如,液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
[0204] 目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个实例中,链路16可包括通信媒体以使得源装置12能够实时地将经编码视频数据直接发射到目的地装置14。可根据通信标准(例如,无线通信协议)来调制经编码视频数据,且将经编码视频数据发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可形成基于包的网络的部分,例如局域网、广域网或例如因特网等全球网络。通信媒体可包含可用于促进从源装置12到目的地装置14的通信的路由器、交换器、基站或任何其它装备。在一些情况下,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。
[0205] 或者,可将经编码数据从输出接口22输出到存储装置32。类似地,可通过输入接口28从存储装置32中存取经编码数据。存储装置32可包含多种分散式或本地存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置32可对应于可保持由源装置12产生的经编码视频的文件服务器或另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置32存取所存储的视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附加存储器(NAS)装置,或本地磁盘驱动器。目的地装置14可通过任何标准数据连接(包含因特网连接)存取经编码视频数据。此情形可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。
来自存储装置32的经编码视频数据的传输可为流式传输、下载传输或流式传输与下载传输两者的组合。
[0206] 本发明的技术未必限于无线应用或设置。所述技术可适用于支持多种多媒体应用中的任一者的视频译码,多种多媒体应用例如空中电视广播、有线电视传输、卫星电视传输、流式视频传输(例如,经由互联网)、编码数字视频以用于存储于数据存储媒体上、解码存储于数据存储媒体上的数字视频,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
[0207] 尽管图3中未展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当的多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件及软件,以处置对共同数据流或单独数据流中的音频与视频两者的编码。在可适用的情况下,在一些实例中,MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
[0208] 视频编码器20及视频解码器30各自可实施为多种合适编码器电路中的任一者,多种合适编码器电路例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地以软件来实施技术时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中且在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,视频编码器20及视频解码器30中的任一者可集成为相应装置中的组合式编码器/解码器(CODEC)的部分。
[0209] 解封装模块29可经配置以接收视频文件,分析视频文件,以使得视频解码器30可输出已解码视频数据。在一些实例中,解封装模块29可执行封装模块72的逆过程。在一些实例中,视频解码器30可执行一般与关于视频编码器20(图4)所描述的编码遍次互逆的解码遍次。
[0210] 图7为说明根据本发明的技术的产生包含经译码视频内容的视频文件的实例的流程图。图7中所描述的过程可由视频译码装置来执行,视频译码装置可包含本文中所描述的源装置20、封装模块21及视频创建模块72的任何组合。视频译码装置可获得经译码视频内容的切片(702)。经译码视频内容可包含根据HEVC译码的多个切片。视频译码装置可获得与视频内容的切片相关联的参数集(704)。参数集可包含SPS、PPS及/或APS。视频译码装置可将经译码视频内容的切片封装于存取单元内(706)。可如本文中所描述来定义存取单元。视频译码装置可将参数集封装于存取单元内(708)。可根据本文中所描述的技术将参数集封装于存取单元内。视频译码装置可将参数集封装于样本描述内(710)。在一个实例中,可将PPS封装于一或多个存取单元内,而将SPS封装于样本描述内。视频译码装置输出视频文件(712)。可基于以文件格式定义进一步产生视频文件,其中文件格式是基于本文中所描述的技术。
[0211] 在一或多个实例中,可以硬件、软件、固件或其任何组合来实施所描述功能。如果以软件来实施,那么可将所述功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体而传输且由基于硬件的处理单元来执行。计算机可读媒体可包含计算机可读存储媒体(其对应于例如数据存储媒体等有形媒体)或通信媒体,通信媒体包含(例如)根据通信协议促进计算机程序从一处传送到另一处的任何媒体。以此方式,计算机可读媒体一般可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波等通信媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索指令、代码及/或数据结构以用于实施本发明中所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0212] 以实例说明且非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、快闪存储器,或可用以存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其它媒体。而且,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴电缆、光缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于媒体的定义中。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是有关非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字影音光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘使用激光光学地复制数据。上述各者的组合也应包含于计算机可读媒体的范围内。
[0213] 可由例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面,可将本文中所描述的功能性提供于经配置以用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编码译码器中。并且,可将所述技术完全实施于一或多个电路或逻辑元件中。
[0214] 本发明的技术可在广泛多种装置或设备中予以实施,所述装置或设备包含无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本发明中描述各种组件、模块或单元以强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元来实现。更确切地说,如上文所描述,可将各种单元组合于编码译码器硬件单元中,或通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合且结合合适软件及/或固件来提供所述单元。
[0215] 已描述了各种实例。这些及其它实例在所附权利要求书的范围内。