本发明一般涉及例如根据由MPEG标准化组织定义的基本媒体文件格式来封装定时(timed)媒体数据的领域,以提供有助于媒体数据的交换、管理、编辑和呈现的灵活并可扩展的格式,并改善流输送,特别是关于HTTP(超文本传输协议)和在压缩的视频流中的用户选择的感兴趣区域的RTP(实时传输协议)流传输。更特别地,本发明涉及用于在封装基本流中编码层间依赖性的方法、设备和计算机程序,该基本流包含诸如允许有效的特别是一个或多个区块(tile)的数据的流传输或提取的空间区块的多层分区(partitioned)数据。
背景技术:
视频编码是将一系列视频图像转换为紧凑的数字化比特流以使得该视频图像可以被传送或储存的方式。编码设备被用于编码视频图像,伴随着相关联的解码设备可用于重建用于显示和观看的比特流。一般的目的是形成比特流以具有比原始视频信息更小的尺寸。这有利地减少了传输网络或储存设备传送或储存比特流代码所要求的容量。为了被传送,视频比特流一般根据通常添加报头(header)和校验位的传送协议而被封装。视频流传输机制在互联网和移动网络上被广泛部署和使用,以在HTTP(超文本传输协议)(诸如例如3GPP的自适应HTTP流传输(AHS),微软的平滑流传输或苹果的HTTP实况流传输)上流传输音频/视频媒体。
最近,运动图像专家组(MPEG)公布了新的标准,以统一和取代现有的HTTP上的流传输解决方案。这种被称为“HTTP上的动态自适应流传输(DASH)”的新标准意图基于标准web服务器支持在HTTP上的媒体流传输模型,其中智能(即,选择用于流传输的媒体数据,以及比特流对用户选择、网络条件和客户端能力的动态自适应)仅仅依赖于客户端选择和设备。
在这个模型中,按照数据片段以及按照被称为“媒体呈现描述(MPD)”的表示将被呈现的定时媒体数据的组织的清单(manifest)来组织媒体呈现。特别地,清单包括用于下载数据片段的资源标识符,并且提供上下文以选择和组合那些数据片段以获取有效的媒体呈现。资源标识符通常是HTTP-URL(统一资源定位符),其可能与字节范围组合。基于清单,客户端设备在任何时候根据其需要、其能力(例如所支持的编解码器、显示器大小、帧率、质量级别等)并且取决于网络条件(例如可用带宽)而确定要从媒体数据服务器下载哪些媒体片段。
应当注意,存在对HTTP的替代协议,例如实时传输协议(RTP)。
另外,从标准清晰度(SD)到高清晰度(HD)以及到超高清晰度(例如4K2K或8K4K,即包括具有4096×2400像素或7680×4320像素的图像的视频),视频分辨率在持续地增长。然而,并非所有接收和视频解码设备都具有以全分辨率访问视频的资源(例如,网络访问带宽或CPU(中央处理单元)),特别是当视频是具有超高清晰度时,以及并非所有用户都需要访问这种视频。在这种上下文下,特别有利地是提供只访问一些感兴趣区域(ROI)(即只访问整个视频序列的一些空间子部分)的能力。
一种已知的访问属于视频的帧的空间子部分的机制在于将视频的每个帧组织为一般被称为区块的可独立解码的空间区域的布置。诸如HEVC(高效视频编码)的一些视频格式提供对区块定义的支持。用户定义的ROI可以覆盖一个或多个连续的区块。
作为替代方式,如果用户想只关注视频序列中的图片的特定细节,则用户可以选择ROI。
因此,对于根据HTTP协议的流传输视频序列或用户选择的ROI,重要的是以使得能够空间访问一个或多个区块并且使得能够组合所访问的区块的方式提供对经编码的视频比特流的定时媒体数据的封装。
应记得,经编码的视频比特流被组织成一般被构造为对应于完整帧的连续时间样本集合的NAL(网络抽象层)单元,该时间样本根据解码顺序而组织。文件格式用于封装和描述这种经编码的比特流。
为了例示起见,国际标准组织基本媒体文件格式(ISO BMFF)是众所周知的灵活并可扩展的格式,其描述或者用于本地储存或者用于经由网络或经由另一个比特流输送机制的传送的经编码的定时媒体数据比特流。该文件格式是面向对象的。它由被称为盒(box)的构建块组成,该构建块被顺序地或分层地组织并且定义经编码的定时媒体数据比特流的参数,诸如定时和结构参数。根据该文件格式,定时媒体数据比特流被包含在被称为mdat盒的数据结构中,mdat盒被定义在被称为轨道(track)盒的另一数据结构中。轨道表示样本的定时序列,其中样本对应于与单个时间戳相关联的所有数据,即,与单个帧相关联的所有数据或与共享相同时间戳的几个帧相关联的所有数据。
对于可伸缩(scalable)视频,诸如多层HEVC格式的视频,通过使用多个依赖性轨道可以有效地表示分层的媒体数据组织,每个轨道表示处于可伸缩性的特定级别的视频。为了避免轨道之间的数据重复,可以使用提取器。根据标准文件格式,提取器是被直接包括在比特流中的特定类别的网络抽象层(NAL)数据结构,其使得能够从其他比特流有效地提取其他网络抽象层(NAL)单元。例如,增强层轨道的比特流可以包括参考来自基层轨道的NAL单元的提取器。然后,当从文件格式提取出这种增强层轨道时,提取器必须由它们所参考的数据替换。
当使用嵌入这些机制的ISO BMFF时,可以采用几种策略来描述子信息并且方便访问该子信息或者有效地将比特流组织成多个片段。
例如,在题为“Implications of the ISO Base Media File Format on Adaptive HTTP Streaming of H.264/SVC”的文章中,作者Kofler等人提出了考虑ISO BMFF的可能性以及限制的用于组织用于HTTP流传输的可伸缩视频比特流(H264/SVC)的三种不同策略:
a)包含特定文件报头的单个文件,其包括文件类型盒“ftyp”和包含所有ISO BMFF元数据(包括轨道定义)的电影盒“moov”,该单个文件还包括包含整个经编码的比特流的单个mdat盒。该组织适合于本地储存,但不适应于其中的客户端可能仅需要整个比特流的一部分的HTTP流传输。当比特流被分段成多个片段时,这种组织被优选地用于被用作初始化文件的文件。这个初始化文件后面是其组织在b)中被定义的另一个单个文件,这个初始化文件收集关于所有片段的信息;
b)单个文件,其包含适合于分段的多个moof/mdat盒,每个moof/mdat对与比特流的多个片段中的一个相关。该格式允许渐进式下载。更详细地说,moof盒相当于处于分段级别的moov盒。根据该方案,使用经分段的媒体文件,可伸缩比特流可以被分成表示处于不同可伸缩性级别的视频的多个依赖性轨道。提取器是用于参考来自其他轨道的NAL单元的特定NAL单元。在使用每个区块的轨道的情况下,必须预先准备所有可寻址的轨道,并且不能独立地选择轨道。如果要显示几个区块,则必须解码几个比特流,并且解码基层几次。在c)中描述的最后一个组织特别适合于独立选择的每个轨道;
c)多个片段文件,每个文件可由其自己的URL访问并且可被独立地下载。每个文件与一个分段相关,并且优选地在多个片段文件之前有专用的初始化文件。每个片段通常包括作为一类文件报头的片段类型盒(styp)、可选的片段索引盒(sidx)以及一个或多个分段。每个分段还包括moof和mdat盒。根据该方案,使用经分段的媒体文件,每个轨道被储存在其自己的片段中,相关联的比特流与一个可伸缩性的级别相关。如果需要的话,提取器被用于从依赖轨道参考所要求的比特流。这种编码方案特别适合于独立流传输轨道。它很好地适应于DASH标准,但不适合于区块流传输,因为要解码几个比特流,以及因此每个轨道要求一个解码器。此外,当选择多于一个区块时,存在基层的比特流的潜在的重复。
参照文档“WD3 of ISO/IEC 14496-15 2013/AMD1 Enhanced support of HEVC and MVC+D,ISO/IEC JTC1/SC29/WG11,W14328,Mar-Apr 2014,巴伦西亚,西班牙”(以下命名为“w14328”)做出的以上提到的盒的定义以及那些盒中包括的子盒的定义可能导致ISO BMFF元数据的复杂且更低效率的组织。
此外,未对于分层HEVC适当地定义区块轨道,这限制了其使用。
为了解决这些问题,提供了一种有效的数据组织和轨道描述方案,其尤其适合于处理用于多层视频流的分层HEVC中的空间区块。这确保了ISO BMFF解析的结果更有效并且适应于分层HEVC。
技术实现要素:
面对这些约束,本发明的发明人提供了一种用于在服务器中封装多层分块(tiled)定时媒体数据并且用于从封装在多个媒体片段文件中的多层分块定时媒体数据提供定时媒体数据比特流的方法和设备。
本发明的广义目的是弥补如上所述的现有技术的不足。
根据本发明的第一方面,提供一种用于在服务器中封装多层分区定时媒体数据的方法,该多层分区定时媒体数据包括定时样本,每个定时样本被编码到第一层以及至少一个第二层中,至少一个定时样本包括至少一个子样本,每个子样本被编码到第一层或该至少一个第二层中。该方法包括:
从定时样本中的至少一个获取至少一个子样本;
创建包括该至少一个被获取的子样本的轨道;以及
生成与该被创建的轨道相关联的描述性元数据,该描述性元数据被组织到每个轨道的一个主描述盒中,关于不同层的组织的描述性信息被包括在一个或多个子盒中,其中,至多一个主描述盒包括该一个或多个子盒。
本发明的第一方面通过将一些不必要的子盒做成可选的而提供在封装过程中的简化。
在一个实施例中,如果每个定时样本被编码到第一层和仅一个第二层中,则主描述盒中没有一个包括包含关于不同层的组织的描述性信息的所述子盒。
在一个实施例中,当被创建的轨道包括该至少一个被获取的子样本,每个子样本与单个层相关时,主描述盒中没有一个包括包含关于不同层的组织的描述性信息的所述子盒。
在一个实施例中,如果一个主描述盒包括所述一个或多个子盒,则包含在与第二层相关的主描述盒中并包括用于根据被用于编码定时样本的编码方法而配置解码设备的描述性信息的配置盒包括索引,该索引的值从来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引推断出来,
否则如果主描述盒中没有一个包括所述一个或多个子盒,则将配置盒中的索引的值设置为默认值。
该实施例允许考虑当来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引不可用时的特定情况。它允许封装过程甚至在这种情况下进行。
在一个实施例中,默认值是′0′。
在另一个实施例中,如果一个主描述盒包括所述一个或多个子盒,则配置盒被包含在与第二层相关的主描述盒中,并且包括用于根据被用于编码定时样本的编码方法来配置解码设备的描述信息,并且如果预定标志(例如“operationPointFlag”)被设置为预定值,则所述配置盒包括索引,该索引的值从来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引推断出来,
否则如果该预定标志被设置为另一个值,则所述配置盒不包括从来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引推断出值的所述索引。
在一个实施例中,所述方法符合ISOBMFF第15部分。
在一个实施例中,所述子盒中的一个是′oinf′子盒。
在一个实施例中,所述子盒中的一个是′tcon′子盒。
在一个实施例中,指向用于封装方法的预定参数集合的索引是prof_tier_level索引。
在一个实施例中,多层分区定时媒体数据是多层分块定时媒体数据,子样本是空间子样本。
根据本发明的第二方面,提供了一种用于在服务器中从被封装在至少一个媒体片段文件中的多层分区定时媒体数据提供多层定时媒体数据比特流的方法,多层分区定时媒体数据包括定时样本,每个定时样本被编码到第一层和至少一个第二层中,至少一个定时样本包括被编码到至少第一层或至少一个第二层的至少一个子样本,至少一个媒体片段文件包括至少一个轨道,该轨道包括从定时样本中的至少一个获取的至少一个子样本,该至少一个媒体片段文件与关联于该至少一个轨道的描述性元数据相关联,该描述性元数据被组织成每第一和第二层的一个主描述盒,关于不同层的组织的描述性信息被包括在一个或多个子盒中。至多一个主描述盒包括该一个或多个子盒。
在一个实施例中,如果每个定时样本被编码到第一层和仅一个第二层中,则主描述盒中没有一个包括包含关于不同层的组织的描述性信息的所述子盒。
在一个实施例中,一个轨道的子样本与单个层相关,主描述盒中没有一个包括包含关于不同层的组织的描述性信息的所述子盒。
在一个实施例中,如果一个主描述盒包括所述一个或多个子盒,则包含在与第二层相关的主描述盒中并包括用于根据被用于编码定时样本的编码方法来配置解码设备的描述性信息的配置盒包括索引,该索引的值从来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引推断出来,
否则如果主描述盒中没有一个包括所述一个或多个子盒,则将配置盒中的索引的值设置为默认值。
在一个实施例中,默认值是′0′。
在另一实施例中,如果一个主描述盒包括所述一个或多个子盒,则配置盒被包含在与第二层相关的主描述盒中,并且包括用于根据被用于编码定时样本的编码方法来配置解码设备的描述性信息,并且如果预定标志(例如“operationPointFlag”)被设置为预定值,则所述配置盒包括索引,该索引的值从来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引推断出来,
否则如果该预定标志被设置为另一个值,则所述配置盒不包括从来自所述子盒中的一个的指向用于封装方法的预定参数集合的索引推断出值的所述索引。
在一个实施例中,所述方法符合ISOBMFF第15部分。
在一个实施例中,所述子盒中的一个是′oinf′子盒。
在一个实施例中,所述子盒中的一个是′tcon′子盒。
在一个实施例中,指向用于封装方法的预定参数集合的索引是prof_tier_level索引。
在一个实施例中,多层分区定时媒体数据是多层分块定时媒体数据,子样本是空间子样本。
根据本发明的第三方面,提供一种用于可编程装置的计算机程序产品,该计算机程序产品包括当程序由可编程装置加载以及运行时执行以上提到的方法的每个步骤的指令。
根据本发明的第四方面,提供一种储存用于实现以上提到的方法的计算机程序的指令的计算机可读储存介质。
根据本发明的第五方面,提供一种用于在服务器中封装多层分区定时媒体数据的设备,其包括适于执行以上提到的封装方法的部件。
根据本发明的第六方面,提供一种用于在服务器中封装多层分区定时媒体数据的设备,其包括适于执行以上提到的提供方法的部件。
在一个实施例中,它被并入服务器设备中。
根据本发明的第七方面,提供了一种用于在服务器中封装多层分块定时媒体数据的方法,多层分块定时媒体数据包括定时样本,每个定时样本被编码到第一层以及至少一个第二层中,
至少一个定时样本包括至少一个空间子样本,每个子样本被编码到第一层或至少一个第二层中。该方法包括:
从定时样本中的至少一个获取至少一个子样本;
创建包括该至少一个被获取的子样本的轨道;以及
生成与该被创建的轨道相关联的描述性元数据,该描述性元数据被组织到每个轨道的一个主描述盒中,关于不同层的组织的描述性信息被包括在子盒中,其中,
如果主描述盒与从被编码到至少一个第二层中的子样本的封装得到的轨道相关,则所述主描述盒的至少一个子盒包括用于传信(signal)该媒体数据是多层分块媒体数据的类型参数。
这种新的参数类型允许解析器立即识别出其指向区块轨道,特别是在多层媒体中。
在一个实施例中,使用HEVC标准的多层扩展来编码子样本。
在一个实施例中,类型参数是′lht1′。
在一个实施例中,类型参数被包括在包含于所述主描述盒中的第二配置子盒中,该主描述盒与从被编码到至少一个第二层中的子样本的封装得到的轨道相关,所述第二配置子盒包括用于根据被用于编码定时样本的编码方法来配置解码装置的描述性信息。
在一个实施例中,所述第二配置子盒的描述性信息适于ISOBMFF标准。
根据本发明的第七方面,提供了一种用于在服务器中从被封装在至少一个媒体片段文件中的多层分区定时媒体数据提供多层定时媒体数据比特流的方法,多层分块定时媒体数据包括定时样本,每个定时样本被编码到第一层和至少一个第二层中,至少一个定时样本包括被编码到至少第一层或至少一个第二层中的至少一个子样本,该至少一个媒体片段文件包括至少一个轨道,该轨道包括从定时样本中的至少一个获取的至少一个子样本,该至少一个媒体片段文件与关联于该至少一个轨道的描述性元数据相关联,描述性信息被划分到子盒中,其中,如果主描述盒与相关于被编码到至少一个第二层中的子样本的轨道相关,则所述主描述盒的至少一个子盒包括用于传信该媒体数据是多层分块媒体数据的类型参数。
在一个实施例中,使用HEVC标准的多层扩展来编码子样本。
在一个实施例中,类型参数是′lht1′。
在一个实施例中,类型参数被包括在包含于所述主描述盒中的第二配置子盒中,该主描述盒与从被编码到该至少一个第二层中的子样本的封装得到的轨道相关,所述第二配置子盒包括用于根据被用于编码定时样本的编码方法来配置解码装置的描述性信息。
在一个实施例中,所述第二配置子盒的描述性信息适于ISOBMFF标准。
根据本发明的第八方面,提供一种用于可编程装置的计算机程序产品,该计算机程序产品包括当程序由可编程装置加载以及运行时执行以上提到的方法的每个步骤的指令。
根据本发明的第九方面,提供了一种储存用于实现以上提到的方法的计算机程序的指令的计算机可读储存介质。
根据本发明的第十方面,提供了一种用于在服务器中封装多层分区定时媒体数据的设备,其包括适于执行以上提到的封装方法的部件。
根据本发明的第十一方面,提供了一种用于在服务器中封装多层分区定时媒体数据的装置,其包括适于执行以上提到的提供的方法的部件。
由于本发明可以用软件实现,因此本发明可以被体现为在任何适合的载体介质上的用于提供给可编程装置的计算机可读代码。有形载体介质可以包括诸如软盘、CD-ROM、硬盘驱动器、磁带设备或固态存储设备等的储存介质。瞬态载波介质可以包括诸如电信号、电子信号、光信号、声信号、磁信号或电磁信号的信号,例如微波或RF信号。
附图说明
通过查看附图和详细描述,本发明的其它优点对于本领域技术人员将变得明白。意图将任何附加的优点并入本文。
现在将仅以示例的方式,参照以下附图描述本发明的实施例,在附图中:
图1例示了表示用于分层HEVC的根据本发明的轨道盒的实施例;
图2例示了表示用于分块分层HEVC的根据本发明的轨道盒的实施例;以及
图3表示了可以实现一个或多个实施例的服务器或客户端设备的框图。
具体实施方式
以下三部分分别描述了关于三个不同特征的已知信息,三个不同特征是:图片的空间组织(部分A)、NAL单元(部分B)和被称为VisualSampleEntry的特定描述符(部分C)。在此描述这些特征以更好地理解图1~图3上所表示的实施例。
部分A
视频优选地是可伸缩的或多视图的视频,并按照可伸缩性/视图的不同级别被组织。
根据特定实施例,包括定时样本(例如图像)的诸如多层分块定时媒体数据(例如,可伸缩或多视图分块视频数据)的多层分区定时媒体数据作为几个定时媒体数据轨道(通常是基本轨道和区块轨道)的集合被传送。同样根据特定实施例,基本轨道包括基本层基本轨道和至少一个增强层基本轨道。附加的区块轨道可以是基本层区块轨道和/或增强层区块轨道。每个定时媒体数据轨道包括几个定时样本的一个空间子样本(例如几个NAL单元)。每个视频帧(定时样本)可由对应于视频帧的空间子部分(空间子样本)的可独立解码区块组成。在分层HEVC中,每个视频帧可由对应于视频帧的空间子部分(空间子样本)的可依赖性解码层组成。另外,在分层HEVC中,每个视频帧可由可依赖性解码层组成,且每个层可由对应于视频帧的空间子部分(空间子样本)的可独立解码区块(对于给定层)组成。
使用列表来描述轨道依赖性(区块、层间和/或层内的依赖性)。这种定时媒体数据轨道集合允许选择、组成以及有效地流传输多层空间视频区块。可以将每个轨道作为媒体片段文件集合从服务器设备传送到客户端设备。初始化片段文件可以被用来传送解码媒体片段文件所要求的元数据。
本发明的实施例可以应用于例如被称为HEVC或分层HEVC(也称为LHVC或多层HEVC)的视频格式。
要提醒的是,根据HEVC标准,图像可以被空间地划分成区块、条带(slice)以及条带片段。在该标准中,区块对应于由水平和垂直边界(即,行和列)定义的图像的矩形区域。它包含整数数目的编码树单元(CTU)。因此,可以通过定义例如感兴趣区域的位置和大小而有效地使用区块来识别感兴趣区域。然而,HEVC比特流的结构以及它的作为网络抽象层(NAL)单元的封装不是相对于区块,而是基于条带被组织的。
在HEVC标准中,条带是条带片段的集合,条带片段集合的第一条带片段是独立条带片段,即其储存在报头内的一般信息不参考另一条带片段的一般信息的条带片段。如果有条带片段集合的其他条带片段,则其他条带片段是依赖性条带片段(即其存储在报头内的一般信息参考独立条带片段的一般信息的条带片段)。
条带片段包含整数数目的连贯的(以光栅扫描顺序)编码树单元。因此,条带片段可以是矩形形状或不是矩形形状,因此,其不适合于表示感兴趣的区域。对于后面是条带片段数据的条带片段报头,按照HEVC比特流进行编码。独立和依赖性条带片段不同在于它们的报头:因为依赖条带片段依赖于独立条带片段,所以其报头的信息量小于独立条带片段的报头的信息量。独立条带片段和依赖条带片段二者都包含被用于定义区块或被用作熵解码同步点的在对应比特流中的条目点的列表。
根据HEVC标准,根据可被如下概括的规则(必须满足一个或两个条件)将条带片段链接到区块:
-条带片段中的所有CTU属于相同区块(即,条带片段不能属于几个区块);以及
-区块中的所有CTU属于相同条带片段(即,区块可以被划分为几个条带片段,只要这些条带片段中的每一个仅属于该区块)。
部分B
如以上提到的,虽然区块可以被认为是对感兴趣区域的恰当支持,但是条带片段是实际上被放在NAL单元中用于在通信网络上传输并且被聚合以形成访问单元(即,处于文件格式级别的经编码的图片或样本)的实体。
要记得的是,根据HEVC标准,NAL单元的类型被编码在NAL单元报头的两字节中,NAL单元报头可以被定义如下:
用于编码条带片段的NAL单元包括条带片段报头,该报头由于条带片段地址语法元素而指示条带片段中的第一CTU的地址。这种条带片段报头可以被定义如下:
在PPS(图片参数集)NAL单元中提供分块信息。然后可以从这些参数推导出条带片段和区块之间的关系。
虽然在区块边界上(通过定义)重置空间预测,但没有什么阻止区块使用来自参考帧中的不同区块的时间预测器。因此,为了构建独立区块,在编码期间有利地将用于预测单元的运动矢量约束在区块内,以维持在参考帧中的共同定位区块中。另外,当解码仅一个区块时,优选地在区块边界上停用环路(in-loop)滤波器(去块和样本自适应偏移(SAO)滤波器),使得不引入误差漂移。应当注意,这种环路滤波器的控制在HEVC标准中是可用的。在条带片段报头中利用被称为loop_filter_across_tiles_enabled_flag的标志来设置它。通过明确地将此标志设置为零,区块边界处的像素不能依赖于落在相邻区块的边界上的像素。当满足与运动矢量和环路滤波器相关的这两个条件时,区块可以被认为是“可独立解码的区块”或“独立区块”。
部分C
MPEG-4 Part 12标准的现有样本分组机制可以被用于封装区块。因此,利用作为特定类别的标准VisualSampleGroupEntry描述符的区块描述符来创建特定样本组描述。样本分组机制用于表示轨道中样本的分区。它们依赖于使用两个盒:描述向样本组分配样本的SampleToGroup盒(′sbgp′)和描述在特定样本组内的样本的共同属性的SampleGroupDescription盒(′sgpd′)。特定类型的样本分组由一个SampleToGroup盒和一个SampleGroupDescription盒的组合经由类型字段(′grouping_type′)定义。基于不同的分组标准,可以存在多个样本分组实例(即SampleToGroup和SampleGroupDescription盒对)。
使用与样本的分块相关的特定分组标准。这种被称为′trif′的特定分组类型描述了区块的属性,并从标准VisualSampleGroupEntry导出。它可以被称为TileRegionSampleGroupEntry并且被定义如下:
根据该特定类型的组条目,参数groupID是关于由组描述的区块的唯一标识符。参数horizontal_offset和vertical_offset被分别用于设置在基础区域的亮度样本中由区块表示的矩形区域的左上像素相对于HEVC帧的左上像素的水平偏移和垂直偏移。参数region_width和region_height被分别用于设置在HEVC帧的亮度样本中由区块表示的矩形区域的宽度和高度。
参数independent是2比特字,其指定该区块包括与仅属于相同区块的样本相关的解码依赖性,如以上通过参照独立区块的定义所描述的那样。出于例示的目的并且参考用于描述区块组织的SEI消息(补充增强信息)的标准使用,被称为tile_section_exact_match_flag的标志可以被用于设置independent标志的值,其含义可以被设置如下:
-如果参数independent等于0,则在该区块与相同帧或先前帧中的其它区块之间的编码依赖性或者在区块设置级别被描述或者未知;
-如果参数independent等于1,则在该区块和在任何参考帧中具有不同groupID的其它区块之间没有时间编码依赖性,但是在该区块与在参考帧中具有相同groupID的区块之间可以存在编码依赖性,以及
-如果参数independent等于2,则在该区块和相同帧中的其他区块之间没有编码依赖性,并且在该区块与参考帧中的任何其他区块之间没有编码依赖性,
independent参数值3被保留。
通过为每个区块轨道定义具有′trif′grouping_type和TileRegionGroupEntry的一个SampleGroupDescription盒(′sgpd′),在电影报头(′moov′盒)中给出每个区块的属性一次。还可以每个轨道分段定义区块属性。这种mp4轨道可以被定义为视频区块轨道或区块轨道。根据HEVC标准,HEVC区块轨道是视频区块轨道,对于它存在对承载该轨道中的区块所属的HEVC层的其它NALU(通常诸如各种参数集合的设定信息)的HEVC轨道的参考。参考可以使用在MPEG-4第15部分标准中已经定义的值,诸如′sbas′四字符代码,或者更具体的一个,诸如′tbas′,以指示区块基本轨道。
一个区块轨道应或者具有一个且仅一个TileRegionGroupEntry且不具有TileSetGroupEntry,或者具有一个且仅一个TileSetGroupEntry和从其做出该区块集合的一个或多个依赖性TileRegionGroupEntry,TileSetGroupEntry是TileRegionGroupEntry的扩展,以描述区块集合。应当注意,这些组中的每一个被分配唯一的标识符,其可以用于将NALU与组关联。区块区域和区块集合共享由基本HEVC层限定的用于groupID的相同命名空间,如由′tbas′轨道参考所指示的(即,在具有相同基本层的任何轨道中不应存在具有相同groupID的两个区块区域或区块集合)。
在这里引入一种新类别的轨道,区块轨道,意味要定义相应的样本条目,以遵从文件格式设计。实际上,每个轨道必须在其描述性数据中包含具有强制的SampleDescriptionBox(′stsd′)的SampleTableBox(′stbl′)。样本描述表给出关于所使用的编码类型的详细信息以及解码轨道样本所需的任何初始化信息。储存在SampleDescriptionBox中的信息是轨道特定的,并且通过具体化对于任何视觉样本条目的抽象描述而被对于视频轨道进行描述。通常,任何视觉样本条目包含提供用于处理样本的压缩格式解码器的“编码名称”参数。此参数必须是被编码为四字符代码的唯一标识符。为了描述放在区块轨道中的样本,我们然后必须利用特定类别的VisualSampleEntry来描述这些样本。HEVCTileSampleEntry被引入,例如由代码′hvt1′表示以指示要求具有区块能力的HEVC解码器来处理区块轨道的样本。经常地,在样本描述表中,包括ConfigurationBox作为参数以提供解码器配置信息。对于HEVC区块轨道的特定情况,我们不复制配置盒,而是继承在轨道报头中的轨道参考类型′tbas′中指示的区块基本轨道中描述的配置盒。可选地,可以在HEVCTileSampleEntry中设置描述每个区块的平均比特率的参数以及档次(profile)、层次(tier)和级别(level)信息。档次按照特征方面定义了标准的子集合,通常针对应用域。每个档次定义层次和级别。层次可以被视为嵌套复杂度级别,每个级别定义对一些值,比如像素数目,条带、区块...的数目的限制。被组织成增加的复杂性,可以处理档次中给定级别处的最高层次的解码器将能够支持在相同档次中处于相同级别或以下的任何更低的层次。在该盒中储存每区块比特率信息可以是有用的,以被提供给流传输客户端以用于基于带宽的适配。像对于大多数mp4盒那样,可以利用可选的额外盒来扩展HEVCTileSampleEntry盒,以匹配应用特定需求。
图1例示根据MPEG-4文件格式封装两个可伸缩性层的示例。如所例示的那样,每个层(增强层EL和基本层BL)被封装在其自己的轨道中,使得能够进行有效的数据寻址并导致将视频封装为两个轨道。
更精确地,图1表示包含关于被编码到多层HEVC比特流中并且包含S个样本的媒体数据序列的所有ISO BMFF元数据的电影盒“moov”100。相同的原理将应用于利用电影分段或作为如在b)和c)第3页中定义的片段封装的媒体数据。
单个“mdat”盒101包含被组织成两个块(chunk)的整个经编码的比特流,一个用于基本层102,一个用于增强层103,每个块包含S个样本104、105。对于增强层EL,块EL103包括用于S个样本的经编码的比特流的对应部分。每个样本被组织成一个或多个NAL单元。此外,在部分的开始处添加特定NAL单元以包括提取器106,以参考在基本层块中的对应部分。最后,增强层块包括用于定义在给定“x”级别(例如图像级别(PPS)或序列级别(SPS))处的参数的不同参数集合(被概括为“xPS”107)。
“moov”盒100包括两个盒“轨道”,一个专用于基本层轨道110(由基本层封装得到),一个专用于增强层轨道130(由增强层封装得到)。
每个层轨道描述在mdat盒101中例示出的其各自的S个样本。
基本层轨道110包括被顺序地或分层地组织并且定义以上提到的经编码的比特流的经编码部分的参数的几个盒子。为了清楚起见,在图1中仅例示出所选择的盒。
用于轨道报头111的被命名为′tkhd′的盒或子盒包括时间、空间和识别信息。时间信息涉及S个样本的创建和修改时间(creation_time,modification_time)。这里标识符(track_ID)等于“BL”,允许识别该轨道。空间信息包括基本层的显示大小信息(宽度和高度)。
被命名为′mdia′112的另一个盒或子盒是媒体信息描述盒,并且包括关于与比特流的S个样本相关的媒体数据的信息。
′mdia′盒包括为了清楚起见而未示出的一些报头盒,以及包含描述性信息本身的媒体信息盒′minf′113。在该示例中,′minf′盒被细分为三个不同的盒或子盒。
第一盒或子盒′oinf′114包含操作点信息,例如层和子层(例如时间子层)及它们的组成操作点的组织,它们之间的依赖性(如果有的话),反映被包含在用于操作点的HEVC比特流的VPS中的档次、层次和级别信息的prof_tier_level参数。更详细地,盒′oinf′包括给出关于可伸缩性结构的信息的参数(scala_mask);层的数目,在这里是两个(max_layer_count=2),以及对于每个层的标识符、依赖层列表;后面是文件中的操作点的数目,每个操作点由档次/层次和级别信息以及由组成该操作点的层的集合描述。
用于样本表格盒(Sample Table Box)的被称为′stbl′盒115的第二盒或子盒包含描述样本的信息。与高效视频编码(HEVC)方法相关的信息的部分被包括在用于样本描述盒(Sample Description Box)的′stsd′盒116或子盒中。参数“entry_count”指示仅包括一个(视觉)样本条目。四字节′hvc1′指示对应于所考虑的媒体数据的比特流是符合的且可由以下在′hvcC′盒117中定义的HEVCDecoderConfigurationRecord中给出的配置(包括档次、层次和级别)下操作的HEVC解码器使用。在该示例中,版本配置是第一个(configVersion=1)。HEVCDecoderConfigurationRecord还给出包含在HEVC比特流的视频参数集合中的档次、层次和级别信息。
被命名为′tcon′118的第三盒或子盒列出在轨道中承载的所有层和子层,这里仅一个(num_layers=1)。为了盒的进一步演变,所保留的参数总是具有0值。
根据优选实施例,′oinf′盒和/或′tcon′盒是可选的,可选性通过使用斜体来示意。例如,当只有一个增强层时,以上提到的两个盒′oinf′114和′tcon′118(或仅这些盒中的一个)不存在于文件中。实际上,已经注意到,操作点信息不是有用的,因为用于增强级别的所有层次/档次/级别信息将被包括在承载该层的轨道中,尤其是在样本描述盒中。因此,′oinf′盒和/或′tcon′不是强制性的。
与层的组织相关的其它信息可以是可选的,比如不同类别的样本条目:′shvl′、′she1′、′shvC′以及仅用于可伸缩HEVC的任何四字符代码,以及′mhv1′、′mhe1′、′mhvC′以及专用于仅多视图HEVC样本条目的任何四字符代码。仅可以保持一种或两种样本条目:例如′Ihv1′、′IhvC′或′Ihe1′,或用来描述分层的HEVC样本条目的任何四字符代码。
另一个轨道专用于增强层130。它包括与基本层轨道的′tkhd′盒类似的轨道报头盒′tkhd′131或子盒,除了对于增强层track_ID是“EL”。
用于增强层的轨道包括轨道参考盒(Track Reference Box)′tref′132或子盒。在呈现中,它提供从包含轨道(这里的增强层轨道)到另一个轨道(这里的基本层轨道)的参考。
第一参考′sbas′指示基本层110的轨道是对于增强轨道130的基本轨道。(track_ids[]=BL)。
另一参考′oref′允许参考这里被放在基本层轨道中的′oinf′盒。通过使用斜体写′oref′参考。实际上,如以下所解释的,如果只有一个参考层,则考虑到′oinf′盒不存在于基本层轨道中,′oref′参考可以是可选的。
如同对于基本层轨道那样,增强层轨道包括′mdia′盒133,其包括′minf′盒134。该′minf′盒包括′stbl′盒135,′stbl′盒本身包括′stsd′盒。该最后一个盒包括例如四字节′Ihe1′,其指示对应于所考虑的媒体数据的比特流是符合的且可由以下在′IhvC′盒137中定义的配置盒中给定的配置(包括档次、层次和级别)下操作的L-HEVC解码器使用。
以下更详细地描述该′Ihvc′盒。
最后,如同对于基本层轨道那样,′mdia′盒包括可选的′tcon′盒138。
根据以上提到的优选实施例,基于预定义的条件(例如,仅一个增强层),可以从轨道中移除′tcon′盒,如同对于经由′tref′盒中的′oref′参考来参考′oinf′盒那样。
更一般地,如果将意指基本层和几个增强层中的每一个的每个层封装在单独的轨道中,则′oinf′和′tcon′盒是可选的。实际上,当一个层对应于一个操作点时,对于典型的配置,这些盒不提供任何有用的信息:′tcon′盒将仅指示在轨道中存在一个层,而′oinf′将描述每个轨道(因为轨道与本身匹配操作点的层匹配)。在′oinf′盒中找到的档次/层次/级别信息可以直接从LHEVCDecoderConfigurationRecord读取。同样,可以经由轨道参考盒找到依赖层的列表(即,在这种情况下的轨道)。′oinf′和′tcon′盒可能仅当从几个层的封装得到一个轨道时有用。
根据另一个优选实施例,对于具有共同′sbas′轨道参考的轨道集合,在该集合中至多有一个轨道承载′oinf′盒。如果′oinf′盒存在,则具有共同′sbas′参考轨道的所有轨道应通过使用′oref′类型轨道参考被链接到承载′oinf′盒的轨道。
′IhvC′盒包含被命名为operationPointldx的索引。该字段示意在操作点信息盒′oinf′中记载的操作点的索引(当存在时)。操作点表示可以通过子比特流提取处理获取的L-HEVC比特流的一部分。每个有效操作点可以独立于其他操作点地被解码。
在优选实施例中,operationPointIdx应是在oinf盒中描述的操作点的基于1的索引(对于增强级别,这里是“2”),或者如果未知或未指定,则为0。
根据另一实施例,关于解码器配置信息,有被称为hevc_baselayer_flag的字段以指示是否利用HEVC编码基本轨道(分层HEVC可以被用在AVC、高级视频编码格式之上)。该信息可以从轨道参考找到:如果由′sbas′参考所参考的轨道不是HEVC轨道,则基本层不是HEVC。这个标志可以用来做出可选的另一参数:在解码器配置信息137的末端处的操作点索引,尤其是当用于操作点信息的盒不存在时。通过这样做,LHEVCDecoderConfigurationRecord将被定义如下:
这种新结构不增加解码器配置信息的大小,并且避免必须为operationPointIdx设置默认值。
以上提到的文献w14328当前在不指示在比特流中使用的可伸缩性的类型的情况下定义了LHEVCDecoderConfigurationRecord。如果要使用通用的′Ihv1′/′Ihe1′,如当前在w14328中定义的,在客户端侧处的文件读取器必须解析视频参数集合(VPS)扩展以理解可伸缩性类型。该VPS可以在块的NALU 107中。这是复杂的过程。
根据优选实施例,提出新的LHEVCDecoderConfigurationRecord,其包括被命名为“scalability_mask”的16比特的可伸缩性掩模(mask)(参见盒137)。根据另一实施例,可伸缩性掩模可以在n比特上表示,n是整数,只要整个结构维持在字节的整数数目上对齐。例如,如在HEVC规范中那样,n=8。
LHEVCDecoderConfigurationRecord包括为了清楚起见未示出的在w14328中定义的被命名为“general_level_idc”的字段。字段“general_level_idc”给出关于像素的最大数目以及可能的区块和条带的信息。
根据本发明的优选实施例,提出在解码器配置记录中添加另一参数以消除解码样本所要求的这类分层HEVC,例如在“general_level_idc”参数之后添加:
“scalability_mask”的值(在该示例中为“2”)指示类型空间或质量的可伸缩性。该字段具有帮助客户端检测是否支持可伸缩性类型以及确定其是否能够播放该文件的优点。当不能播放该文件时,它可以然后选择更低的操作点,比如例如仅基本层轨道。
图2例示出当将所考虑的图片的仅增强层的图片划分成四个区块时根据ISO基本媒体文件格式封装两个可伸缩性层的示例。封装传输四个附加区块轨道(140-143)或增强区块轨道ELTT。
按照与HEVC区块轨道类似的方式,可以定义分层HEVC区块轨道以允许有效地访问增强层的空间子部分。对于这种情况,根据本发明的实施例,利用使用LHEVCTileSampleEntry样本描述格式的特定样本创建特定轨道。
LHEVC区块轨道是关于它存在参考LHEVC轨道的′tbas′的视频轨道,LHEVC轨道承载该轨道中的区块所属的HEVC层的非视频编码层的NALU。根据本发明的实施例,定义新的样本描述类型:′lht1′。
根据本发明的实施例,区块轨道的样本和样本描述盒都不应包含VPS、SPS或PPS NAL单元,这些NAL单元应在包含相关联的层的轨道的样本描述盒中或样本中,如由轨道参考类型′tbas′所标识的那样(图2中的增强层轨道130)。
根据本发明的实施例,LHEVC区块轨道以及如由′tbas′轨道参考所指示的那样包含相关联层的轨道或层轨道二者都使用提取器(如w14328的附件B中定义的那样)来指示如何重建原始比特流。在一些应用领域中,可以约束这些区块轨道中的提取器的存在,例如,可以优选地将提取器放在区块基本轨道中而不是在每个区块轨道中,尤其是允许选择区块的子集合以解码和播放。或者在多个区块层的情况下,当仅在区块基本轨道中放置提取器时,描述大小被减小。
如ISO/IEC 23008-2中定义的那样,储存在区块轨道中的LHEVC样本是关于一个或多个区块的完整条带集合。通常,如果区块轨道指单个区块,则在样本中仅找到用于编码该区块的条带。区块轨道通常包括已经对于HEVC定义的一个TileRegionGroupEntry(单区块轨道)或一个TileSetGroupEntry以及构成该区块集合的一个或多个依赖性的TileRegionGroupEntry(多区块轨道)。
如果储存在区块轨道中的LHEVC样本中的VCL NAL单元指示被包含在样本中的经编码的条带是瞬时解码刷新(IDR)条带、清除随机访问(CRA)条带或断点链接访问(BLA)条带,则样本被认为是“sync”样本,用于例如比如搜索的随机存取的同步样本。
对于常规LHEVC(在w14328中)样本定义的子样本和样本分组具有对于LHEVC区块样本相同的定义。
根据本发明的实施例,实现方式可决定仅解码HEVC序列的完整区块的子集合。在这种情况下,它可以使用在TileRegionGroupEntry和TileSetGroupEntry样本组描述中的区块依赖性信息以在解码HEVC序列时丢弃不需要的轨道或忽略一些提取器。
在图2中,具有与图1中相同的标号的元素是类似的。此外,为了清楚起见,仅表示出′moov′盒。
在图2中,′moov′盒包括附加轨道盒,它们是四个区块轨道盒140、141、142、143。这里仅描述区块轨道141。其他区块轨道盒可以被容易地推导出来。
区块轨道盒包括′tkhd′,轨道报头盒或子盒150,其与属于BL和EL层轨道盒的′tkhd′盒111或131具有相同的特性。
区块轨道盒包括′tref′,轨道参考盒或子盒151,其与属于BL和EL层轨道盒的′tref′盒具有相同的特性,除了:
-其包含用于指示与区块基本轨道的关系的四字节′tbas′,以及
-标识符track_IDs[]指示对于该轨道的区块基本轨道是具有标识符“ELBT”的增强区块轨道。
如BL和EL轨道一样,区块轨道盒包括具有′mdia′盒152、′stbl′盒或子盒153、′stsd′盒或子盒154的minf(为了清楚起见未示出)盒。
′stbl′盒153包括将属性与轨道样本相关联的两个盒或子盒:′sgpd′156和包括在′sgpd′中的′trif′154。这些盒在w14328中被很好的定义。
′sgpd′是SampleGroupDescription盒,其描述特定样本组内样本的共同属性。这里,参数“def_sample_descr_index”指示应用于轨道的所有样本的默认属性:第一个(以及′trif′盒中只有一个)。
′trif′是TileRegionGroupEntry盒,其包括关于所考虑的区块的信息。在这种情况下,所考虑的区块由具有值′1′的groupID所标识,并且其位置和大小分别由“horizontal_offset”、“vertical_offset”以及“region_width”、“region_height”定义。被保留的参数没有意义,并且独立标志指示区块是否为自包含的(即,不需要任何其它区块以被重构)。最后,全帧参数指示区块是覆盖整个图像(1)还是不覆盖(0)。
根据本发明的实施例,定义新样本条目155的四字节指示对应于LHEVC区块轨道的媒体数据或样本的比特流是符合的并可由以下在′IhvC′盒156中定义的DecoderConfigurationRecord或者更具体地LHEVCDecoderConfigurationRecord中给出的配置(包括档次、层次、级别)下操作的HEVC解码器使用。
在一个实施例中,四字节是:′Iht1′。
这个新样本条目的定义可以是以下的一个:
“
盒类型:′Iht1′
容器:样本描述盒(′stsd′)
强制:否
数量:可以存在零个或更多个样本条目
”
新的样本条目的定义允许解析器立即识别出其指向LHEVC区块轨道。这在利用现有样本条目时是不允许的。
此外,可以引入仅与区块轨道相关的一些特定属性。
如上所表述的,该样本条目描述LHEVC区块轨道的媒体样本。对于LHEVC区块轨道(样本条目类型′Iht1′)的VisualSampleEntry的宽度和高度应被设置为包含于轨道中的区块或区块集合的最大宽度和高度。区块轨道的轨道报头中的布局信息(即,层、用于定位区块的矩阵、宽度和高度)应该与如由′tbas′轨道参考识别的相关联的参考轨道(也称为区块基本轨道)的轨道报头信息相同,否则被忽略。
优选地,在′lht1′样本描述中的任何′clap′(意指清晰光圈)和′pasp′(意指像素纵横比)盒应被忽略。
因此,对于作为特定类别的标准VisualSampleGroupEntry描述符的LHEVC区块描述符,创建特定样本描述
MPEG4BitRateBox和extra_boxes二者都是可选的。
优选地,LHEVCTileSampleEntry不合有任何LHEVCConfigurationBox(或LHVCConfigurationBox,或用于表明对于分层HEVC格式的配置盒的任何名字)、HEVCConfigurationBox或MPEG4ExtensionDescriptorsBox。实际上,在区块基本LHEVC轨道样本描述中找到这些盒,如由′tbas′轨道参考类型所指示的那样。
其他可选盒可以被包括在LHEVCTileSampleEntry中。经常地,在LHEVC区块轨道的SampleDescriptionBox中有与在区块基本LHEVC轨道的SampleDescriptionBox中的条目一样多的条目。SampleDescriptionBox是众所周知的HEVC区块轨道的描述符,其包含关于HEVC区块轨道的描述性信息。
用于LHEVC区块轨道的针对MIME类型′codecs′参数的子参数遵循定义标准的w14328的附件E.3中定义的规则。从基本轨道样本描述取出解码器配置记录,如′tbas′轨道参考类型所指示的那样。然后使用该解码器配置记录来构造针对MIME类型′codecs′的子参数。
优选地,用于L-HEVC的编解码器子类型参数与HEVC的编解码器子类型参数相同,除了以下例外:如果编解码器类型标识出LHVC区块轨道的通用L-HEVC媒体样本(即“Ihv1”代码点),则所构造的HEVC编解码器参数应该被附加有“.SXX”,“S”指示可伸缩性类型,以及“XX”是对应于用于该轨道的可伸缩性掩模的值的字节;如果拖尾字节是零,则可以省略拖尾字节。这可以例如在DASH表示中有用以便具有关于被用于编码相关联的视频的编解码器的精确信息。例如,在多视图流传输应用中,具有多层HEVC解码器的DASH客户端将不选择利用指示空间或质量可伸缩性的编解码器参数来声明的表示。
图3表示其中可以实现一个或多个实施例的步骤的服务器或客户端设备300的框图。
优选地,设备300包括通信总线302、能够在设备上电时执行来自程序ROM 306的指令以及在上电之后运行与来自主存储器308的软件应用相关的指令的中央处理单元(CPU)304。主存储器308例如是经由通信总线302起到CPU 304的工作区域作用的随机存取存储器(RAM)类型,并且其存储容量可以通过被连接到扩展端口(未例示出)的可选RAM来扩展。与软件应用相关的指令可以例如从硬盘(HD)310或程序ROM 306被加载到主存储器308。在被CPU 304运行时,这种软件应用使得在服务器中进行参照图1和图2描述的封装步骤。
附图标记312是允许将设备300连接到通信网络314的网络接口。在被CPU 304运行时,软件应用适于对经过网络接口接收的请求作出反应,并且经由网络向其他设备提供数据流和请求。
附图标记316表示用于向用户显示信息和/或从用户接收输入的用户界面。
这里应当指出,作为变型,用于管理多媒体比特流的接收或发送的设备300可以包括能够实现参照图1、图2和图3描述的方法的一个或多个专用集成电路(ASIC)。这些集成电路被例如且非限制性地集成到用于产生或显示视频序列和/或用于收听音频序列的装置中。
本发明的实施例可以被嵌入在诸如摄像机、智能电话或者用作对TV的遥控器的平板设备的设备中,以例如放大感兴趣的特定区域。也可以通过选择感兴趣的特定区域,使用它们从相同的设备来具有电视节目的个性化浏览体验。用户对这些设备的另一种使用是将他/她优选的视频的所选子部分与其他连接的设备共享。它们还可以被用在智能电话或平板设备中,以监视被置于监控下的建筑物的特定区域中发生了什么,只要监视摄像机支持本发明的生成部分。
当然,为了满足本地和特定要求,本领域技术人员可以将上述解决方案应用于许多修改和变化,然而,所有这些都包括在如由所附权利要求所限定的本发明的保护范围内。