将媒体数据封装到媒体文件中的方法、装置和计算机程序与流程

文档序号:30087771发布日期:2022-05-18 06:36阅读:92来源:国知局
将媒体数据封装到媒体文件中的方法、装置和计算机程序与流程

1.本发明涉及用于封装和发送媒体数据的方法和装置。


背景技术:

2.国际标准化组织基本媒体文件格式(iso bmff、iso/iec 14496-12)是众所周知的灵活且可扩展的文件格式,其封装和描述经编码的定时或非定时媒体数据以用于本地存储或用于经由网络或经由另一位流递送机制的传输。扩展的示例为iso/iec 14496-15,其描述用于各种基于nal(network abstraction layer(网络抽象层))单元的视频编码格式的封装工具。这种编码格式的示例是avc(advanced video coding(高级视频编码))、svc(scalable video coding(可缩放视频编码))、hevc(high efficiency video coding(高效视频编码))和l-hevc(layered hevc(分层hevc))。文件格式扩展的另一示例是iso/iec 23008-12,其描述用于静止图像或静止图像序列(诸如hevc静止图像等)的封装工具。文件格式扩展的另一示例是定义全向媒体应用格式(omaf)的iso/iec 23090-2。iso基本媒体文件格式是面向对象的。其由称为框的构建块(或以唯一类型标识符表征的数据结构,通常是四字符码,也称为fourcc或4cc)组成。完整框是类似于附加包括版本和标志值属性的框的数据结构。在下文中,术语“框(box)”可以指定完整框或框两者。这些框或完整框在isobmff文件中分层级地或顺序地组织,并且定义描述经编码的定时或非定时媒体数据、其结构和定时(如果有)的参数。封装媒体文件中的所有数据(媒体数据和描述媒体数据的元数据)包含在框中。文件内没有其他数据。文件级框是不包含在其它框中的框。
3.在文件格式中,整个媒体呈现被称为动画。动画由文件顶层的动画框(具有四字符码“moov”)描述。该动画框表示包含描述媒体呈现的各种框集合的初始化信息容器。其在逻辑上被分割成由轨框(具有四字符码“trak”)表示的轨。各个轨(由轨标识符(track_id)唯一地标识)表示属于呈现的媒体数据的定时序列(例如,视频或音频样本的帧)。在各个轨内,各个定时数据单元被称为样本;这可以是视频、音频或定时元数据的帧。样本在解码顺序序列中被隐式地编号。各个轨框包含描述轨的样本的框的层级,例如,样本表框(“stbl”)包含轨中的媒体样本的所有时间和数据索引。实际样本数据存储在与动画框相同级别的称为媒体数据框(具有四字符码“mdat”)或标识的媒体数据框(具有四字符码“imda”,类似于媒体数据框但包含附加标识符)的框中。动画可以在时间上被组织为包含用于整个呈现的信息的动画框,随后是媒体分片(fragment)列表,即,耦合动画分片和媒体数据框(“mdat”或“imda”)的列表。在动画分片(具有四字符码“moof”的框)内,存在描述媒体分片内的轨的轨分片集合(具有四字符码“traf”的框),每个动画分片为零个或更多个。轨分片继而包含零个或多个轨运行框(“trun”),各个轨运行框记录该轨分片的样本的连续运行。
4.isobmff文件可以包含形成多个轨的多个经编码定时媒体数据或经编码定时媒体数据的子部分。当子部分对应于随时间拍摄的视频源的一个或连续的空间部分(例如,随时间拍摄的至少一个矩形区域,有时称为“区块(tile)”或“子图片”)时,相应的多个轨可以称为区块轨或子图片轨。isobmff及其扩展包括若干分组机制以将轨、静态项或样本分组在一
起。组通常共享共同的语义和/或特征。
5.发明人已经注意到在描述和用信号通知关于要发送的媒体数据的信息时的若干问题,特别是对于在一个轨引用另一个轨时的多个轨。
6.示例涉及降低用信号通知在另一轨中引用的数据实体的成本,特别是当用信号通知在所有轨上包括大部分重复的值时。
7.另一示例涉及对用信号通知通过提取器获得的数据实体的nal单元长度进行优化。
8.现有的解决方案是复杂的或没有很好地定义。


技术实现要素:

9.本发明旨在解决上述问题中的一个或多于一个。
10.在该上下文中,提供了一种用于例如通过诸如使用http协议的互联网等的ip网络来流式传输媒体内容(例如全向媒体内容)的解决方案。
11.根据本发明的第一方面,提出一种用于将媒体数据封装到媒体文件中的方法,所述方法包括:在所述媒体文件中包括第一轨,所述第一轨包括媒体样本;在所述媒体文件中包括第二轨,所述第二轨包括提取器,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器,以及其中,所述方法还包括:在所述第二轨中包括默认构造器;其中,所述构造器是引用所述默认构造器的引用构造器。
12.在实施例中,默认构造器被包括在第二轨的元数据部分中。
13.在实施例中,第二轨中的默认构造器被包括作为默认构造器的列表,引用构造器包括该列表中的索引。
14.在实施例中,默认构造器被包括在第二轨的元数据部分的样本条目中。
15.在实施例中,默认构造器被包括在描述第二轨的样本组的样本组条目中,提取器被包括在所述样本组的样本中。
16.根据本发明的另一方面,提出一种用于将媒体数据封装到媒体文件中的方法,所述方法包括:在所述媒体文件中包括第一轨,所述第一轨包括媒体样本;在所述媒体文件中包括第二轨,所述第二轨包括提取器,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,以及其中,所述方法还包括:在所述第二轨中包括默认提取器;在所述第二轨中包括的所述提取器是引用所述默认提取器的引用提取器。
17.根据本发明的另一方面,提出一种用于将媒体数据封装到媒体文件中的方法,所述方法包括:在所述媒体文件中包括第一轨,所述第一轨包括媒体样本,各个媒体样本包含一个或多于一个nal单元的集合;在所述媒体文件中包括第二轨,所述第二轨包括提取器,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器,以及其中,所述构造器包括内联数据和指示所述内联数据不包括任何nal单元长度字段的信息。
18.根据本发明的另一方面,提出一种用于将媒体数据解析成媒体文件的方法,所述方法包括:在所述媒体文件中获得包括媒体样本的第一轨;在所述媒体文件中获得包括提取器的第二轨,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器,以及其中,所述方法还包括:在所述第二轨中获得默认构造
器;其中,所述构造器是引用所述默认构造器的引用构造器;基于所述默认构造器从所述第一轨获得所述提取器所引用的数据。
19.根据本发明的另一方面,提出一种用于将媒体数据解析成媒体文件的方法,所述方法包括:在所述媒体文件中获得包括媒体样本的第一轨;在所述媒体文件中获得包括提取器的第二轨,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,以及其中,所述方法还包括:在所述第二轨中获得默认提取器;在所述第二轨中包括的所述提取器是引用所述默认提取器的引用提取器;基于所述默认提取器从所述第一轨获得所述提取器所引用的数据。
20.根据本发明的另一方面,提出一种用于将媒体数据解析成媒体文件的方法,所述方法包括:在所述媒体文件中获得包括媒体样本的第一轨,各个媒体样本包含一个或多于一个nal单元的集合;在所述媒体文件中获得包括提取器的第二轨,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器;以及其中,所述构造器包括内联数据和指示所述内联数据不包括任何nal单元长度字段的信息。
21.根据本发明的另一方面,提出一种用于可编程设备的计算机程序产品,所述计算机程序产品包括指令序列,所述指令序列用于在被加载到所述可编程设备中并且被所述可编程设备执行时实现根据本发明所述的方法。
22.根据本发明的另一方面,提出一种计算机可读存储介质,其存储有用于实现根据本发明所述的方法的计算机程序的指令。
23.根据本发明的另一方面,提出一种计算机程序,所述计算机程序在执行时使得进行根据本发明所述的方法。
24.根据本发明的另一方面,提出一种用于将媒体数据封装到媒体文件中的装置,所述装置包括处理器,所述处理器被配置为:在所述媒体文件中包括第一轨,所述第一轨包括媒体样本;在所述媒体文件中包括第二轨,所述第二轨包括提取器,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器,以及其中,所述方法还包括:在所述第二轨中包括默认构造器;在所述提取器中包括引用所述默认构造器的引用构造器。
25.根据本发明的另一方面,提出一种用于将媒体数据封装到媒体文件中的装置,所述装置包括处理器,所述处理器被配置为:在所述媒体文件中包括第一轨,所述第一轨包括媒体样本;在所述媒体文件中包括第二轨,所述第二轨包括提取器,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,以及其中,所述方法还包括:在所述第二轨中包括默认提取器;在所述第二轨中包括的提取器是引用所述默认提取器的引用提取器。
26.根据本发明的另一方面,提出一种用于将媒体数据封装到媒体文件中的装置,所述装置包括处理器,所述处理器被配置为:在所述媒体文件中包括第一轨,所述第一轨包括媒体样本,各个媒体样本包含一个或多于一个nal单元的集合;在所述媒体文件中包括第二轨,所述第二轨包括提取器,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器;以及其中,所述构造器包括内联数据和指示所述内联数据不包括任何nal单元长度字段的信息。
27.根据本发明的另一方面,提出一种用于将媒体数据解析成媒体文件的装置,所述装置包括处理器,所述处理器被配置为:在所述媒体文件中获得包括媒体样本的第一轨;在
所述媒体文件中获得包括提取器的第二轨,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器,以及其中,所述方法还包括:在所述第二轨中获得默认构造器;在所述提取器中获得引用所述默认构造器的引用构造器;基于所述默认构造器从所述第一轨获得所述提取器所引用的数据。
28.根据本发明的另一方面,提出一种用于将媒体数据解析成媒体文件的装置,所述装置包括处理器,所述处理器被配置为:在所述媒体文件中获得包括媒体样本的第一轨,各个媒体样本包含一个或多于一个nal单元的集合;在所述媒体文件中获得包括提取器的第二轨,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,以及其中,所述方法还包括:在所述第二轨的元数据部分中获得默认提取器;在所述第二轨中包括的所述提取器是引用所述默认提取器的引用提取器;基于所述默认提取器从所述第一轨获得所述提取器所引用的数据。
29.根据本发明的另一方面,提出一种用于将媒体数据解析成媒体文件的装置,所述装置包括处理器,所述处理器被配置为:在所述媒体文件中获得包括媒体样本的第一轨,各个媒体样本包含一个或多于一个nal单元的集合;在所述媒体文件中获得包括提取器的第二轨,所述提取器是引用在所述第一轨中包括的媒体样本中的数据的结构,所述提取器包括至少一个构造器,以及其中,所述构造器包括内联数据和指示所述内联数据不包括任何nal单元长度字段的信息。
30.本发明的其他方面涉及用于封装(encapsulate)媒体数据和解析(parse)媒体文件的计算装置以及相应的计算机程序。
附图说明
31.本发明的其它优点对于本领域技术人员来说在研究了附图和详细描述之后将变得明显。本文旨在并入任何附加优点。
32.下面仅通过示例的方式并参考以下附图描述本发明的实施例,其中:
33.图1示出了包括适于体现本发明实施例的封装/解封装模块的示例性系统;
34.图2示出了nal(网络抽象层)单元的结构示例;
35.图3a示出了根据iso基本媒体文件格式的视频媒体样本的结构示例;
36.图3b示出了根据iso基本媒体文件格式的视频媒体样本的另一结构示例;
37.图4示出了根据iso/iec 14496-15的示例提取器和聚合器结构;
38.图5a和5b示出了根据本发明实施例的封装和解封装处理;
39.图6示出了根据本发明实施例的封装文件格式;
40.图7是用于实现本发明的一个或多于一个实施例的计算装置的示意性框图。
具体实施方式
41.图1示出了适于体现本发明的实施例的示例性系统191和195。系统191包括连接到通信网络199的封装模块150。系统195包括连接到通信网络199的解封装模块100。
42.根据实施例,系统191用于处理内容,例如视频、静止图像和/或音频内容,以用于流式传输或存储。系统191获得/接收包括原始非定时图像集合或定时图像序列151的内容,使用媒体编码器(例如,图像或视频编码器)将非定时图像集合或定时图像序列编码到经编
码媒体数据中,并且使用封装模块150将经编码媒体数据封装在媒体文件101中。封装模块150包括用于封装经编码媒体数据的写入器或打包器中的至少一个。媒体编码器可以在封装模块150内实现以编码所接收的内容,或者可以与封装模块150分离。因此,封装模块150可以仅专用于封装已经编码的内容(经编码媒体数据)。编码步骤是可选的,经编码媒体数据可以对应于raw媒体数据。
43.根据实施例,系统195用于处理封装的经编码媒体数据以显示/输出给用户。系统195经由通信网络199或通过读取存储装置获得/接收媒体文件101,使用解封装模块100解封装媒体文件101以检索经编码媒体数据,并使用媒体解码器将经编码媒体数据解码为音频和/或视频内容(信号)。解封装模块100包括解析器或播放器中的至少一个。媒体解码器可以在解封装模块100内实现以对经编码媒体数据进行解码,或者可以与解封装模块100分离。
44.媒体文件101以多种方式通信到模块100的解析器或播放器,例如,可以由封装模块150的写入器或打包器预先生成并作为数据存储在通信网络199中的存储设备中(例如,在服务器或云存储装置上),直到用户从存储设备请求其中编码的内容。在请求内容时,将数据从存储设备通信/流式传输到解封装模块100。
45.系统191还可以包括内容提供设备,用于向用户提供/流式传输针对存储在存储设备中的内容的内容信息(例如,可以经由清单文件描述内容信息,该清单文件包括内容的标题以及用于识别、选择和请求内容的其他描述性元数据和存储位置数据)。内容提供设备还可以适于接收和处理对要从存储设备通信/流式传输到用户终端的内容的用户请求。
46.可替代地,封装模块150可以生成媒体文件101并且在用户请求内容时将其直接通信/流式传输到解封装模块100。然后,解封装模块100接收媒体文件101并根据本发明的实施例进行媒体数据的解封装和解码,以获得/生成视频信号109和/或音频信号,然后由用户终端使用视频信号109和/或音频信号来向用户提供所请求的内容。
47.用户可以通过包括模块100的用户终端或具有与模块100通信的部件的用户终端的用户接口来访问音频/视频内容(信号)。这样的用户终端可以是计算机、移动电话、平板电脑或能够向用户提供/显示内容的任何其他类型的装置。
48.根据一个实施方案,媒体文件101根据iso基本媒体文件格式(isobmff、iso/iec 14496-12及iso/iec 14496-15标准)将经编码媒体数据(例如,经编码音频或视频)封装到框中。媒体文件101可以对应于一个单个媒体文件(以filetypebox“ftyp”为前缀)或跟随一个媒体文件(以filetypebox“ftyp”为前缀)的一个或多于一个分段(segment)文件(以segmenttypebox“styp”为前缀)。根据isobmff,媒体文件101可以包括两种框;包含媒体数据的“媒体数据”框(“mdat”或“imda”)和包含定义媒体数据的布置和定时的元数据的“元数据框”(“moov”或“moof”或“meta”框层级)。
49.图像或视频编码器使用图像或视频标准对图像或视频内容进行编码以生成编码媒体数据。例如,图像或视频编码/解码(编解码器)标准包括itu-th.261、iso/iec mpeg-1visual、itu-t h.262(iso/iec mpeg-2visual)、itu-t h.263(iso/iec mpeg-4visual)、itu-t h.264(iso/iec mpeg-4avc)(包括其可缩放视频编码(svc)和多视图视频编码(mvc)扩展)、itu-t h.265(hevc)(包含其可缩放(shvc)和多视图(mv-hevc)扩展)。
50.本文中所描述的许多实施例使用hevc标准或其扩展来描述示例。然而,本文中所
描述的技术和系统还可适用于已可用的其它编码标准(诸如avc)或者尚未可用或开发的其它编码标准(诸如规范下的itu-t h.vvc(iso/iec mpeg-i vvc)(通用视频编码))。
51.图2示出了在诸如h.264/avc、hevc/h.265或vvc等的视频编解码器中使用的nal(网络抽象层)单元200的结构示例。
52.nal单元包含nal单元头部201和nal单元有效载荷202。nal单元头部201具有固定长度并提供关于nal单元的一般信息。例如,在hevc中,nal单元头部201指示各个nal单元的类型、层的标识符及时间子层的标识符。存在两种主要类型的nal单元200:视频编码层nal单元(vcl-nal)和非vcl nal单元。vcl nal单元通常在其有效载荷中包含经编码条带分段(coded slice segment)205。非vcl nal单元通常包含参数集(即,配置信息)或补充增强信息消息。
53.经编码条带分段205在hevc位流(经编码媒体数据)中被编码为slice_segment_header或“slice header”206,随后是slice_segment_data或“slice data”207,并且随后是rbsp_slice_segment_trailing_bits或“slice trailing bits”208,用于确保字节对齐。条带分段包含整数个连续(以光栅扫描顺序)编码树单元(即图片中的块)。条带不一定具有矩形形状(因此,与用于空间子部分表示的区块相比,不太适合)。视频压缩格式将存取单元定义为与经编码图片相对应的按解码顺序连续的nal单元的集合。
54.图3a示出根据iso基本媒体文件格式的媒体(视频)样本300的结构示例。
55.媒体样本是具有单个时间的音频/视频数据单元(例如,音频样本或视频帧)。根据iso/iec 14496-15,样本是与存取单元或存取单元的一部分相对应的一个或多于一个nal单元302(类似于图2中所示的nal单元200)的集合。各个nal单元302的前面是nal单元长度字段,该nal单元长度字段301提供nal单元302的以字节为单位的长度。例如,对于单层视频,样本对应于经编码图片。对于分层视频,样本可以对应于存取单元的一部分,例如对应于基础层的nal单元。
56.在样本大小框“stsz”或“stsz2”中描述了以字节为单位的样本大小。给定样本大小及nal单元长度,isobmff解析器(例如,模块100)可以确定样本中的nal单元的数量。iso/iec 14496-15定义了特定nal单元、提取器和聚合器,它们是嵌入在媒体数据(“mdat”框)内的特定isobmff结构。它们也被称为“流内结构”。提取器是使用nal单元头部从其他轨提取数据的流内结构。提取器包含关于如何从其他轨提取数据的指令。逻辑上,提取器可以被视为指向数据的指示器。在读取包含提取器的轨时,提取器被其指向的数据替换。提取器还可以直接包含在替换提取器时要使用的数据(内联数据(inline data))。聚合器是使用nal单元头部对属于相同样本的nal单元进行分组的流内结构。
57.图3b示出了根据iso基本媒体文件格式的媒体(视频)样本310的另一结构示例。
58.根据iso/iec 14496-15,类型“hvt2”的轨的样本格式可以由独立条带分段的hevc句法元素slice_segment_data()311和rbsp_slice_segment_trailing_bits()312的一个且仅一个实例组成。样本中不存在其他数据。通常,这种特定种类的样本格式有意地不包括针对可能需要重写这些句法元素的应用的hevc句法元素,诸如nal单元头部和slice_segment_header()。这在来自不同轨的样本包含可以被组合和合并以获得要解码的经编码媒体数据的单个位流的nal单元时发生。例如,当不同轨包含与视频内容的不同空间子部分相对应的nal单元时。在这种情况下,将需要在合并操作期间重写nal单元头部和slice_
segment_header()以获得经编码媒体数据的一致位流,例如,需要在所得位流中重新计算和改变条带地址。为了避免这种重写,这些头部不像平常那样被封装在包含slice_segment_data()的轨内,而是它们被封装在一个单独的轨中(对于要合并的所有轨是共同的)。该轨本身包含提取器和条带分段头部。提取器是允许从另一被引用轨的样本中引用和提取数据的特定结构。通过分解(resolve)如图4所示的提取器来获得要解码的位流的样本(包含nal单元长度字段、nal单元头部、条带头部、条带数据和条带尾部位)。
59.图4示出了根据iso/iec 14496-15的示例提取器结构。
60.对应于经编码媒体数据(例如,经编码视频位流)的第一(媒体)轨400包括媒体(例如,视频)样本401,各个媒体样本包含一个或多于一个nal单元的集合(它们各自的前面是nal单元长度字段),如图3a所示。样本中的nal单元的数量可以彼此不同。第二轨420(被称为例如重构、合成、引用或提取器轨)包括用于将nal单元423和提取器nal单元422混合以引用来自另一轨(这里是如箭头410所示的第一轨400)的数据的样本421。然后可以通过从轨400提取数据并将其与来自当前轨420的数据423连结来重构来自当前轨420的样本421。
61.可以注意到,重构轨420的一些样本421可以仅包含提取器或仅包含数据。提取器或nal单元的数量可以从一个样本421到另一样本421变化。提取器是nal单元,并且它们的前面也是nal单元长度字段作为任何其他nal单元。提取器422是使得能够从除了包含提取器的轨之外的轨有效地提取nal单元的结构。提取器nal单元由特定nal单元类型值标识(特定值可以取决于使用中的编解码器,以不与分配给vlc和非vlc nal单元的编解码器特定类型值冲突)。
62.iso/iec 14496-15定义了用于不同压缩格式(svc、mvc、hevc

)的提取器。对于hevc,提取器被定义为如下的构造器集合:
[0063][0064]
提取器首先由一个nalunitheader()组成,随后是一个或多于一个构造器,构造器用于从当前轨或从与提取器通过类型“scal”的轨引用而驻留的轨链接的另一轨提取数据。
[0065]
指定了几种类型的构造器:
[0066]
样本构造器(constructor_type=0)通过引用从另一轨的样本中提取nal单元数据。
[0067]
内联构造器(constructor_type=1)包括nal单元数据。
[0068]
来自轨组的样本构造器(constructor_type=2)通过引用从另一轨或轨组中的轨的样本中提取nal单元数据(根据复制模式,整个nal单元或nal单元有效载荷)。
[0069]
对于hevc,nalunitheader()对应于iso/iec 23008-2nal单元的前两个字节,其中特定nal单元类型值(nal_unit_type)等于提取器的保留值(=49)。
[0070]
endofnalunit()是如下的函数:当在该提取器中更多数据跟随时返回0(假);否则返回1(真)。
[0071]
各个构造器可以包含多个属性以表征要提取的数据。
[0072]
应在引用来自另一轨或轨组的样本的nal单元数据或部分nal单元数据的提取器轨的各个样本中声明提取器。在子图片/条带/区块提取的典型使用中,提取器主要是重复结构,并且其构造器属性的大部分从一个提取器到另一个提取器简单地重复。例如,来自轨组的样本构造器和样本构造器具有track_ref_index属性,其指定类型“scal”的轨引用的索引以用于找到从中提取数据的轨。典型地,该属性的值不原意从一个样本到另一个样本经常改变。作为另一示例,当数据的提取仅涉及其他轨的时间对准样本时,属性sample_offset在所有提取器中通常为0。
[0073]
根据本发明的一个方面,提出了一种通过声明默认构造器并通过定义引用这些默认构造器的新构造器来优化提取器的用信号通知成本的机制。一个优点是,声明引用默认构造器的提取器,这允许在构造器的属性在所有轨上是大部分重复的值时减小提取器轨的各个样本中的各个提取器的描述大小。可以在提取器轨的元数据部分中定义默认构造器的列表。在媒体数据部分中,在样本中,提出了引用默认构造器列表中的默认构造器的新类型的构造器,即引用构造器。例如,引用构造器可以包含默认构造器列表中的索引。因此,在提取器轨中多次使用的构造器可以在默认构造器列表中发送一次。
[0074]
当提取器不基于构造器时,可以在提取器级别应用相同的机制。可以在提取器轨的元数据部分中定义默认提取器的列表。可以定义新类型的提取器,即引用提取器,用于引用默认提取器。引用提取器可以在样本中用于提取器轨的媒体部分中,以引用默认提取器列表中的默认提取器。
[0075]
根据本发明的另一方面,提出了一种新型的内联构造器。内联构造器可以用于提供新的nal单元头部。发生内联构造器包含nal单元长度字段,并且可以根据用于提供nal单元的有效载荷的其他构造器来重写该字段。当nal单元长度字段已经由内联构造器提供时并且当nal单元长度字段需要被重写时,它在内联构造器中的传输是无用的。所提出的新类型的内联构造器明确地不包含任何nal单元长度字段,因此当其可以在提取器轨的解析期间生成时节省其传输。
[0076]
图5a示出了根据本发明的实施例的封装处理。在实施例中,该处理由图1所示的封装模块150的写入器或打包器进行来封装媒体数据。
[0077]
在步骤500处,封装模块被初始化,以能够适当地读取经编码媒体数据的位流。初始化可以由用户通过用户接口或由应用来进行。初始化可以涉及识别位流的句法结构(一般称为数据实体),以及配置封装参数。封装的配置可以在于决定例如是将媒体文件101生成为一个媒体文件还是生成为构成由一个或多于一个媒体分片组成的媒体分段的多个媒体文件;在媒体文件中包括一个轨还是包括用于视频流的多个轨;设置将视频轨拆分成部分、视图或层等。
[0078]
当包括多个轨时,封装模块可以在步骤500期间设置轨之间的引用或定义轨组。因此,通过引用一个或多于一个其他轨而构建的轨包含对这些一个或多于一个轨的轨引用。
轨引用可以具有不同类型以描述引用轨与被引用轨之间的关系或相依性的种类。轨引用类型可以使用四字符码来编码。例如,根据iso/iec 14496-15,类型码“scal”指定至少包含引用从中提取数据的另一轨的提取器的轨。
[0079]
在iso/iec 14496-15中针对h.264/avc和hevc指定的提取器实现通过引用来提取nal单元数据的轨的紧凑形成。提取器是类似nal单元结构(nal-unit-like structure)。类似nal单元结构可以被指定为像任何nal单元那样包括nal单元头部和nal单元有效载荷,但是在类似nal单元结构中可能不遵循起始码模拟预防(其是nal单元所需的)。对于hevc,提取器包含一个或多于一个构造器。样本构造器通过引用而从另一轨的样本提取nal单元数据。内联构造器包括nal单元数据。当提取器由需要它的文件读取器处理时,提取器在逻辑上被在以出现顺序分解所包含的构造器时产生的字节替换。嵌套提取可能是不允许的,例如,由样本构造器引用的字节不应包含提取器;提取器不应直接或间接地引用另一提取器。提取器可以包含一个或多于一个构造器,该构造器用于通过类型“scal”的轨引用来从当前轨或从链接到提取器驻留的轨的另一轨提取数据。经分解的提取器的字节可表示一个或多于一个整个nal单元。经分解的提取器以有效长度字段和nal头部开始。仅从通过所指示的“scal”轨引用而引用的轨中的单个识别的样本复制样本构造器的字节。对准是在解码时间上的,即仅使用时间到样本表,随后是样本号中的计数偏移。提取器轨可以被定义为包含一个或多于一个提取器的轨。
[0080]
一旦封装模块被初始化,在步骤501处逐个nal单元地读取位流。取决于步骤500处的初始化(带内或带外参数集),对应于参数集的第一nal单元可以嵌入在decoderconfigurationrecord结构中。这些参数集可以由写入器或打包器检查,以更多地了解位流分区并确定要创建的单独轨的数量,各个分区一个轨,加上一个或多于一个提取器轨,各个提取器轨利用类型“scal”的轨引用来引用包含分区的一个或多于一个轨。因此,各个提取器轨表示分区轨的全部或子集的可能组合。例如,可以例如通过检查用于时间运动约束区块集或图片参数集中的区块存在的sei(补充增强信息)消息来判断是否是区块化hevc位流。可以定义用于各个hevc区块的轨和描述所有hevc区块的组成的一个提取器轨。当在步骤501处读取nal单元时,写入器在步骤502处检查nal单元是否对应于新样本。这可以例如通过对图片顺序计数进行解码或通过检查对应于nal单元的条带是否是图片中的第一条带来完成。如果是,则在步骤503中通过设置样本描述的参数(大小、媒体数据中的位置、一些样本组中的属性

)来完成前一样本。特别地,将样本大小重置为0,将nal单元计数重置为0。然后,在步骤504处检查当前nal单元是否应该被包括在提取器轨的媒体部分中,或者是否应该被包括到分区轨的媒体部分并从提取器轨引用,或者应该被部分地包括到分区轨的媒体部分并被提取器轨部分地修改和引用。这是根据在初始化步骤500期间建立的轨依赖性或关系来确定的。如果未引用nal单元,则首先将nal单元的长度插入提取器轨的媒体数据框中,随后是nal单元头部及nal单元有效载荷(步骤505)。然后,当前样本的大小随着这三个结构的字节数而递增,并且在步骤506处,写入器或打包器从经编码媒体数据的位流中检查下一nal单元。如果这不是最后nal单元,则该处理迭代到步骤501,直到所有nal单元都被处理为止。
[0081]
根据本发明的实施例,如果要通过引用而将nal单元部分地或完全地包括在提取器轨中(测试504为真),则在步骤507处写入器或打包器在分区轨的媒体数据框中包括要引
用的nal单元数据(如果nal单元数据是完整的nal单元,则具有前面的nal单元长度字段)以及在提取器轨中包括具有一个或多于一个构造器和相关联属性的提取器。具体地,该处理在提取器轨的媒体数据框中以字节为单位添附具有提取器结构的大小的nal单元长度字段,并创建提取器nal单元。当提取器包括对应于沿着样本的重复结构的构造器时,可以将默认构造器插入到提取器轨的样本条目中的默认构造器列表中(如果尚未存在)。所创建的提取器nal单元包括引用构造器(reference constructor),该引用构造器提供要从默认构造器列表中使用的默认构造器的索引。
[0082]
当提取器写入媒体数据框中时,更新样本描述(样本大小、样本中的当前nalu索引等)。然后,在步骤506处,写入器或打包器检查下一nal单元。当到达最后nal单元时,写入器在步骤508处终止媒体文件,例如通过写入最后样本的大小、索引表、用户数据或关于媒体的任何元数据。
[0083]
注意,当初始化步骤500指示封装成分段时,在开始新样本之前进行附加测试(未表示)以检查是否达到分段持续时间。当达到分段持续时间时,该分段完成并准备好由播放器使用或通过分发网络发送。当未达到分段持续时间时,写入器或打包器对样本和nal单元进行迭代。
[0084]
图5b示出了根据本发明的实施例的解封装处理。在实现中,该处理由图1所示的解封装模块100的解析器或播放器进行以用于解封装媒体数据。
[0085]
在步骤510处,播放器首先接收媒体文件101(作为一个文件或作为连续分段)。文件可以存储在解析器或播放器的存储器中,或者可以从网络套接字读取。
[0086]
首先,在步骤511处解析初始化数据,通常是“moov”框及其子框,以知道媒体文件的参数/设置:轨数量、轨关系和依赖性、样本类型、持续时间、位置和大小等。
[0087]
从在步骤511处确定的轨集合中,播放器或解析器在步骤512选择要渲染的一个提取器轨。接着,通过逐样本地解析媒体数据框而开始重构。
[0088]
解析器或播放器在样本上迭代,直到到达文件的末尾为止(测试513为否)。在分段的情况下,当完全读取一个分段时,解析器逐个样本地读取下一分段。
[0089]
对于给定样本,该处理从由组块(chunk)偏移框指示的位置加上针对该组块解析的先前样本的累积大小来读取数据。从该位置,解析器找到nal单元长度字段。然后,解析器读取由nal单元长度字段给出的字节数以获得完整的nal单元。如果nal单元对应于提取器(测试515),则解析器在步骤516处读取提取器中的下一构造器的构造器类型属性。如果构造器是根据本发明的一方面的引用构造器,则解析器在步骤517处从引用构造器中检索默认构造器的索引,该索引将用于在步骤518分解构造器。然后从默认构造器列表(表示列表中的位置的索引值)检索默认构造器,该默认构造器列表在样本条目中定义,或在经由样本分组机制与当前样本相关联的样本组描述中定义。默认构造器可以是除了另一引用构造器之外的任何类型的构造器(例如内联、样本、

)。在步骤518处,根据与构造器的类型相关联的语义来分解构造器(在提取器nalu中直接检索或经由引用构造器引用)。在步骤520处,将通过分解提取器nal单元的所有构造器(测试519)而获得的数据添附到经编码媒体数据的重构位流。
[0090]
如果在步骤515处nal单元不是提取器,则解析器在步骤520处将与nal单元头部和nal单元有效载荷(没有nal单元长度)相对应的字节添附到将被提供给媒体解码器以进行
解码的经编码媒体数据的重构位流。在步骤520之后,该处理针对下一nal单元进行迭代(转到步骤514),直到达到当前样本的大小为止。
[0091]
在下文中,提供示例以说明根据本发明的实施例提出的提取器的构造器和提取器构造器的默认值。新构造器实现引用索引属性,如上面在图5a和5b的封装/解封装处理的步骤507和516中所讨论的。
[0092]
用于指定默认构造器或默认提取器的基准索引的实现适用于不具有构造器的提取器(诸如svc、mvc提取器等)和具有构造器的提取器(诸如hevc或l-hevc提取器等)这两者。对于具有构造器的提取器,可以如下定义新类型的构造器(由“constructor_type”标识):
[0093][0094]
其中constructor_type指定随后的构造器。sampleconstructor、inlineconstructor、sampleconstructorfromtrackgroup和referenceconstructor分别对应于等于0、2、3和4的constructor_type。constructor_type的其他值被保留。
[0095]
提供新构造器的名称“referenceconstructor”作为示例。此外,提供保留的“constructor_type”值“4”作为示例。新构造器不是指示(“sampleconstructor”)或提供(“inlineconstructor”)字节范围,而是允许引用在提取器轨的元数据部分中声明的默认构造器,通常在样本条目或样本组描述框中的列表中。可以使用“constructor_type”的任何保留名称或保留值。通常,该新的constructor_type值可存在且用于具有类型”hvc3”或”hev3”的样本条目的hevc或l-hevc轨或稍后定义的任何其它类型的轨的样本中。新构造器可以被定义为例如如下所示:
[0096][0097]
其中新构造器的参数、字段或属性具有以下语义:
[0098]-ref_index指定要在提取数据的轨的样本条目中的defaulthevcextractorconstructorbox的构造器列表中使用的构造器的索引。值0指示第一条目。
[0099]
如图6的提取器轨的封装文件的示例中所示,在提取器轨600的样本条目602中声明提取器构造器的默认值。提取器轨是具有轨引用框(“tref”)601的轨,该轨引用框包含具
有等于“scal”(其引用可以由提取器从中提取数据的轨的track_id(例如603和604)或轨组(未表示)的track_group_id的标识符)的reference_type的trackreferencetypebox。声明样本条目中的提取器构造器的默认值,这确保了它们的声明可以由提取器轨中的所有样本共用。
[0100]
在hevc或l-hevc提取器的实施例中,在样本条目602中如下定义新框defaulthevcextractorconstructorbox 605(类似实施例可容易地导出用于除hevc之外的其它视频格式(诸如avc、svc、mvc、vvc等)的提取器):
[0101][0102]
num_entries给出在该框中定义的默认构造器的数量。
[0103]
constructor_type给出该条目的构造器的类型。值4(即referenceconstructor)不应存在。
[0104]
defaulthevcextractorconstructorbox提供了用于代替样本中存在的referenceconstructor的构造器列表。在该框中给出的构造器应仅被分解为样本中的referenceconstructor构造器的替换。defaulthevcextractorconstructorbox可以包含具有相同constructor_type的多个构造器。能够声明具有相同constructor_type的多个构造器的一个优点是改变默认值以在提取器轨中沿时间应用的可能性(例如由于可能需要对提取器定义进行轻微修改的一些图片参数集(pps)变化)。在这种情况下,提取器可以简单地包括具有不同ref_index值的referenceconstructor,以引用defaulthevcextractorconstructorbox中的不同默认构造器,并且因此对相同类型的构造器使用不同的默认属性值,如图6所示。提取器轨600的两个样本606和607包括提取器608和609,它们各自分别包含referenceconstructor 610和611,其中ref_index属性引用默认构造器的不同替代。
[0105]
为了更好地维护规范,提取器和defaulthevcextractorconstructorbox也可以如下重新定义,其中具有与上述相同的语义:
[0106][0107]
在上述实施例中,sampleconstructor、inlineconstructor和sampleconstructorfromtrackgroup如iso/iec 14496-15第5版及其修正中所规定的那样定义。
[0108]
在上述实施例中,在位于样本条目中的defaulthevcextractorconstructorbox中定义默认构造器的设计不允许一旦产生moov就更新默认构造器的列表,从而在切换质量时可能强制moov重新加载。然而,当例如在切换质量之后不再应用默认构造器时,仍然可以通过不再使用默认构造器来构建符合上述实施例的编码媒体数据的位流。
[0109]
如果期望一旦产生moov就能够更新默认构造器列表,则替代实施例是使用样本分组机制和新的样本组定义来替换样本条目中的defaulthevcextractorconstructorbox的声明。该替代实施例将需要双重引用,首先,将提取器轨的各个样本与具有给定grouping_type的样本组描述框(“sgpd”)中定义的视觉样本组条目相关联(该关联经由具有相同grouping_type的sampletogroupbox的group_description_index完成),以及其次,来自referenceconstructor的ref_index应引用与样本相关联的视觉样本组条目中的构造器列表中的条目。
[0110]
根据该实施例,定义了新的grouping_type,例如“dhec”,并且新的visualsamplegroupentry定义如下:
[0111][0112]
提供新视觉样本组条目“defaulthevcextractorconstructorsamplegroupentry”的名称作为示例。此外,提供保留的4cc值“dhec”作为示例。该新类中的所有属性具有与defaulthevcextractorconstructorbox相同的语义。
[0113]
然后例如如下定义referenceconstructor中的ref_index的语义:
[0114]
ref_index经由具有等于“dhec”的grouping_type的sampletogroupbox(“sbgp”)的group_description_index指定在与样本相关联的defaulthevcextractorconstructorsamplegroupentry的构造器列表中使用的构造器的索引。值0指示第一条目。
[0115]
通过这种实施例,有可能使用iso/iec 14496-12中定义的默认样本组机制来将默认视觉样本组条目“defaulthevcextractorconstructorsamplegroupentry”与样本相关联,而无需定义具有相同grouping_type的sampletogroupbox。当默认构造器的列表不随时间改变时,这允许保存一些字节(对应于sampletogroupbox的定义)。
[0116]
利用这样的实施例,还可以通过创建新的isobmff动画分片(几个框“moof”和“mdat”)来更新默认构造器的列表,其中在与动画分片框(“moof”)中的提取器轨相对应的轨分片(“traf”)中的具有grouping_type“dhec”的新samplegroupdescriptionbox(“sgpd”)中定义新的defaulthevcextractorconstructorsamplegroupentry。另外,还可在动画分片中定义具有相同grouping_type“dhec”的新sampletogroupbox以将新的defaulthevcextractorconstructorsamplegroupentry与动画分片的提取器轨的样本相关联。
[0117]
在变型中,新的视觉样本组条目defaultextractorconstructorsamplegroupentry()还可以如下包括唯一标识符groupid:
[0118][0119]
其中:
[0120]
groupid是由该样本组条目描述的默认提取器构造器组的唯一标识符。默认提取器构造器组条目中的groupid的值应大于0。值0被保留用于特殊用途。
[0121]
当存在类型为“nalm”的sampletogroupbox且grouping_type_parameter等于“dhec”时,应存在类型为“dhec”的samplegroupdescriptionbox,且以下适用:
[0122]-默认提取器构造器组条目中的groupid的值应等于nalumapentry的条目之一中的groupid。
[0123]-nal单元通过nalumapentry映射到groupid 0暗示nal单元不是提取器或nal单元不引用任何默认构造器。
[0124]
该新类中的所有其他属性具有与defaulthevcextractorconstructorbox相同的语义。
[0125]
通过这种变型,可以使用iso/iec 14496-15中定义的nal单元映射机制以针对样本中的各个nal单元关联默认构造器的不同列表(而不是针对样本中的所有nal单元关联默认构造器的一个单个列表)。在这种情况下,nalumapentry可用于将称作groupid的标识符指派到样本中的各个nal单元。nalumapentry为具有等于“nalm”的grouping_type且如下定义的视觉样本组条目:
[0126][0127]
其中:
[0128]
large_size指示轨样本中的nal单元条目的数量是以8位还是16位表示。
[0129]
rle指示运行长度编码用于(1)将groupid分配给nal单元还是(0)不将groupid分配给nal单元。
[0130]
entry_count指定映射中的条目的数量。注意,当rle等于1时,entry_count对应于连续nal单元与相同组相关联的运行的数量。当rle等于0时,entry_count表示nal单元的总数。
[0131]
nalu_start_number是与groupid相关联的当前运行中的第一nal单元的样本中的基于1的nal单元索引。
[0132]
groupid指定组的唯一标识符。关于组的更多信息由样本组描述条目提供,其中该groupid及grouping_type等于类型为“nalm”的sampletogroupbox的grouping_type_parameter。
[0133]
nalumapentry(当存在时)应链接到提供该groupid的语义的样本组描述。应通过将类型“nalm”的sampletogroupbox的grouping_type_parameter设置为相关联样本分组类型的四字符码来提供该链接。
[0134]
根据该变型,定义具有等于“nalm”的grouping_type以及等于“dhec”的grouping_type_parameter的sampletogroupbox以使提取器轨的各个样本与nalumapentry相关联,其中各个nalumapentry在具有等于“nalm”的grouping_type的samplegroupdescriptionbox(“sgpd”)中定义且描述groupid与样本中的各个nal单元的关联。利用defaultextractorconstructorsamplegroupentry的集合定义具有等于“dhec”的grouping_type的另一samplegroupdescriptionbox(“sgpd”),各个条目提供对应于与nal单元相关联的groupid的默认构造器的列表。最后,nal单元中包含的referenceconstructor中的ref_index提供了在默认构造器列表中使用的构造器的索引。
[0135]
可以容易地导出类似的实施例以将默认提取器(而不是构造器)的不同列表与样本的各个nal单元相关联。
[0136]
在替代实施例中,对于不使用具有构造器的提取器而仅使用简单提取器的视频格式,可以定义新的提取器,其中利用保留的nal单元类型以将引用在样本条目或样本组描述框中定义的默认提取器的新提取器与现有的基于字节的提取器区分开。被称为例如“referenceextractor”的新提取器被定义如下:
[0137][0138]
其中:
[0139]
ref_index指定在提取数据的轨的样本条目中的defaulthevcextractorbox的提取器列表中要使用的提取器的索引。值0指示第一条目。
[0140]
主要区别在于这里我们有特定的“nalunitheader”。“nalunitheader”是与使用中的视频编码格式相对应的nal单元头部,但是具有尚未针对使用中的视频编码格式的任何vcl、非vcl nal单元或现有提取器或聚合器保留的保留值。
[0141]
在该实施例中,默认提取器在defaulthevcextractorbox中的样本条目中定义如下:
[0142][0143]
其中:
[0144]
num_entries给出了在该框中定义的默认提取器的数量。
[0145]
nalunitlength给出了nalunitextractor的以字节为单位的长度。
[0146]
nalunitextractor是针对该条目定义的默认提取器。nalunitextractor的nal_unit_type应为有效提取器,并且referenceextractor不应存在。
[0147]
根据本发明的另一方面,提取器最初在avc/svc/mvc中被设计为提取nal单元的完整集合(1个或多于1个),各个数据引用(提取的字节范围)以使用1至4字节的nal单元长度字段开始,来提供随后nal单元的长度(取决于相关联的解码器配置记录中的lengthsizeminusone属性的值)。通过在hevc中与hvt1或hvt2样本数据组合引入内联构造器(例如,以重写条带头部),构造器(例如,sampleconstructor或
sampleconstructorfromtrackgroup)可以用于从非nal单元长度字段偏移开始提取样本数据,内联构造器用于重写nal单元的起始。实际上,例如,hvt2样本数据仅包含nal单元的子集,通常仅包含条带数据及条带尾部位而无nal单元头部且无条带头部。在这种情况下,不清楚在提取一系列样本数据之后在何处以及如何定义nal单元长度,特别是当将提取器(由多个构造器组成)分解为多个nal单元时。另外,当处理样本构造器时,读取器不容易知道所提取的样本中的数据偏移是否对应于nal单元长度字段的第一字节;必须从所提取的样本中解析所有先前的nal单元以将其弄清楚。也不清楚内联构造器是否应包括nal单元长度字段,但是如果包括nal单元长度字段,则这可能需要重写以与从后续构造器提取的字节匹配。我们可以观察到,在内联构造器中定义nalu长度字段可能导致在内联构造器中浪费多达4个字节,特别是当需要重写时。
[0148]
为了优化读取器的大小和复杂度这两者,以将要避免文件读取器维持“这些提取的字节需要nalu长度字段重写或没有/在何处重写该字段”的状态的方式定义新的显式nal开始内联构造器。
[0149]
具有显式地开始nalu但没有嵌入nalu长度字段的内联构造器的提取器定义如下:
[0150][0151]
提供新构造器的名称“nalustartinlineconstructor”作为示例。此外,提供保留的“constructor_type”值“5”作为示例。
[0152]
nalustartinlineconstructor用于指示nal单元在该构造器处开始,并且扩展到紧接着的随后构造器(如果有)。inline_data包含nal单元的起始(可能包含nal单元头部、nal单元头部的一部分、nal单元有效载荷或nal单元有效载荷的一部分),但不包含任何nal单元长度字段。该字段应由文件读取器根据轨lengthsizeminusone字段来插入,并且在处理该构造器和紧接着的随后构造器(如果有)之后设置为完整的nal单元大小。
[0153]
nalustartinlineconstructor定义如下:
[0154]
[0155]
其中:
[0156]
length:是属于该字段随后的nalustartinlineconstructor的字节数。长度的值应大于0。保留等于0的长度值。
[0157]
inline_data:是在分解内联构造器时要返回的数据字节。如果这是提取器中的最后构造器,则这些字节应包含恰好一个完整的nal单元,或者nal单元的起始。
[0158]
此外,现有的inlineconstructor(针对constructor_type=2)被修改如下:
[0159][0160]
其中:
[0161]
length:是属于该字段随后的inlineconstructor的字节数。长度的值应大于0。保留等于0的长度值。
[0162]
inline_data:是在分解内联构造器时要返回的数据字节。在这些字节中不应存在与提取器的经重构nal单元的nal单元长度字段相对应的任何字节。
[0163]
图7是用于实现本发明的一个或多于一个实施例的计算装置700的示意性框图。计算装置700可以是诸如微计算机、工作站或轻型便携式装置等的装置。计算装置700包括通信总线,该通信总线连接到:
[0164]-中央处理单元(cpu)701,诸如微处理器等;
[0165]-随机存取存储器(ram)702,用于存储本发明的实施例的方法的可执行代码以及寄存器,该寄存器适于记录实现用于读取和写入清单和/或用于编码视频和/或用于读取或生成给定文件格式下的数据的方法所需的变量和参数,其存储器容量可以通过例如连接到扩展端口的可选ram来扩展;
[0166]-只读存储器(rom)703,用于存储用于实现本发明的实施例的计算机程序;
[0167]-网络接口704,其进而通常连接到通信网络,通过该通信网络发送或接收要处理的数字数据。网络接口704可以是单个网络接口,或者由不同的网络接口的集合(例如有线和无线接口,或不同种类的有线或无线接口)组成。在cpu 701中运行的软件应用的控制下,将数据写入到网络接口以供传输或从网络接口读取以供接收;
[0168]-用户接口(ui)705,用于从用户接收输入或向用户显示信息;
[0169]-硬盘(hd)706;
[0170]-i/o模块707,用于从诸如视频源或显示器等的外部装置接收数据/向诸如视频源或显示器等的外部设备发送数据。
[0171]
可执行代码可以存储在只读存储器703中、硬盘706上或可移动数字介质(例如磁盘)上。根据变型,程序的可执行代码可以经由网络接口704借助于通信网络来接收,以在被执行之前存储在通信装置700的存储部件之一(诸如硬盘706等)中。
[0172]
中央处理单元701适于控制和指导根据本发明的实施例的一个或多于一个程序的指令或软件代码的一部分的执行,这些指令存储在上述存储部件之一中。在通电之后,cpu 701能够在例如从程序rom 703或硬盘(hd)706加载来自主ram存储器702的与软件应用相关的指令之后执行这些指令。当由cpu 701执行时,这种软件应用使得进行先前附图中所示的
流程图的步骤。
[0173]
在该实施例中,该设备是使用软件来实现本发明的可编程设备。然而,可替代地,本发明可以以硬件(例如,以专用集成电路或asic的形式)来实现。
[0174]
尽管上文已经参考具体实施例描述了本发明,但是本发明不限于这些具体实施例,并且对于本领域技术人员来说,在本发明的范围内的修改将是明显的。
[0175]
例如,本发明可以嵌入在诸如照相机、智能电话、头戴式显示器或平板电脑等的装置中,用作tv或多媒体显示器的遥控器,例如以放大特定的感兴趣区域。还可以从同一装置使用,以通过选择特定的感兴趣区域来具有多媒体演示的个性化浏览体验。用户对这些装置和方法的另一用途是与其他连接的装置共用用户的优选视频的一些所选子部分。如果监视照相机支持根据本发明的用于提供数据的方法,则还可以与智能电话或平板电脑一起使用以监视在被监视的建筑物的特定区域中发生的情况。
[0176]
在参考前述说明性实施例时,本领域技术人员将想到许多进一步的修改和变化,前述说明性实施例仅作为示例给出并且不旨在限制本发明的范围,该范围仅由所附权利要求确定。特别地,在适当的情况下,来自不同实施例的不同特征可以互换。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1