用于实现全向内容播放的多时间线支持的方法和装置与流程

文档序号:24986387发布日期:2021-05-07 23:04阅读:112来源:国知局
用于实现全向内容播放的多时间线支持的方法和装置与流程

示例实施例总体上涉及对媒体内容进行编码和解码,特别是在流传输虚拟现实和其他视听内容的上下文中。



背景技术:

虚拟现实视听内容(诸如360°视频和其他类似内容)在喜欢或以其他方式享受从这样的内容中可获取的沉浸式观看体验的观看者和内容创建者中变得越来越流行。虚拟现实内容的流行度的这种增长推动了观看者对提供高质量观看体验的流传输虚拟现实内容的需求。

虚拟现实视听内容能够响应于各种用户交互,诸如具有三个自由度(偏航俯仰侧倾)(3dof)的旋转移动、以及用户头部(3dof+)和/或身体(6dof)的平移运动。虚拟现实视听内容还能够具有多个层,诸如视频之上的覆盖(overlays)。当覆盖位于用户视场(fov)之外时,某些覆盖类型(诸如与球体相对的覆盖)将不可见。但是,根据特定情况,可能希望在用户不观看覆盖时继续或暂停覆盖的播放(playback)。因此,需要一种能够支持多个播放时间线的机制,该机制又可以实现独立于基本内容的自定义覆盖播放/暂停。



技术实现要素:

根据示例实施例提供了一种方法、装置和计算机程序产品,以使得能够在具有覆盖的全向媒体内容的播放中进行多时间线支持。

在一个示例实施例中,提供了一种方法,该方法包括接收可视覆盖(overlay),该可视覆盖被配置为与全向媒体内容文件一起被绘制(render)为多层可视内容。全向媒体内容文件与第一呈现时间线相关联。可视覆盖与第二呈现时间线相关联。该方法还包括构造与可视覆盖相关联的覆盖行为定义文件。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。该方法还包括引起对可视覆盖和覆盖行为定义文件的存储。

在这种方法的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠(non-overlapping),或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放;或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供了一种装置,该装置包括至少一个处理器和至少一个存储器,至少一个存储器包括用于一个或多个程序的计算机程序代码,至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使该装置至少接收可视覆盖,该可视覆盖被配置为与全向媒体内容文件一起被绘制为多层可视内容。全向媒体内容文件与第一呈现时间线相关联。可视覆盖与第二呈现时间线相关联。计算机程序代码还被配置为与至少一个处理器一起使该装置构造与可视覆盖相关联的覆盖行为定义文件。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。计算机程序代码还被配置为与至少一个处理器一起使该装置引起对可视覆盖和覆盖行为定义文件的存储。

在这种装置的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放;或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供了一种计算机程序产品,该计算机程序产品包括其中存储有计算机可执行程序代码指令的至少一个非瞬态计算机可读存储介质,计算机可执行程序代码指令包括在执行时被配置为接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖的程序代码指令。全向媒体内容文件与第一呈现时间线相关联。可视覆盖与第二呈现时间线相关联。计算机可执行程序代码指令包括在执行时还被配置为构造与可视覆盖相关联的覆盖行为定义文件的程序代码指令,覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。计算机可执行程序代码指令包括在执行时还被配置为引起对可视覆盖和覆盖行为定义文件的存储的程序代码指令。

在这种计算机程序产品的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放;或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供了一种装置,该装置包括用于接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖的部件。全向媒体内容文件与第一呈现时间线相关联。可视覆盖与第二呈现时间线相关联。该装置还包括用于构造与可视覆盖相关联的覆盖行为定义文件的部件。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。该装置还包括用于引起对可视覆盖和覆盖行为定义文件的存储的部件。

在这种装置的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放;或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供了一种方法,该方法包括接收全向媒体内容文件。全向媒体内容文件与第一呈现时间线相关联。该方法还包括接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖和与可视覆盖相关联的覆盖行为定义文件。可视覆盖与第二呈现时间线相关联。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。该方法还包括绘制全向视频媒体内容文件和可视覆盖。该方法还包括检测预定义用户交互切换的出现。该方法还包括基于出现和覆盖行为定义文件调节可视覆盖的绘制。

在这种方法的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供了一种装置,该装置包括至少一个处理器和至少一个存储器,至少一个存储器包括用于一个或多个程序的计算机程序代码,至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使该装置至少接收全向媒体内容文件。全向媒体内容文件与第一呈现时间线相关联。计算机程序代码还被配置为与至少一个处理器一起使该装置接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖和与可视覆盖相关联的覆盖行为定义文件。可视覆盖与第二呈现时间线相关联。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。计算机程序代码还被配置为与至少一个处理器一起使该装置绘制全向视频媒体内容文件和可视覆盖。计算机程序代码还被配置为与至少一个处理器一起使该装置检测预定义用户交互切换的出现。计算机程序代码还被配置为与至少一个处理器一起使该装置基于出现和覆盖行为定义文件调节可视覆盖的绘制。

在这种装置的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供一种计算机程序产品,该计算机程序产品包括其中存储有计算机可执行程序代码指令的至少一个非瞬态计算机可读存储介质,计算机可执行程序代码指令包括在执行时被配置为接收全向媒体内容文件的程序代码指令。全向媒体内容文件与第一呈现时间线相关联。计算机可执行程序代码指令包括在执行时还被配置为接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖和与可视覆盖相关联的覆盖行为定义文件的程序代码指令。可视覆盖与第二呈现时间线相关联。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。计算机可执行程序代码指令包括在执行时还被配置为绘制全向视频媒体内容文件和可视覆盖的程序代码指令。计算机可执行程序代码指令包括在执行时还被配置为检测预定义用户交互切换的出现的程序代码指令。计算机可执行程序代码指令包括在执行时还被配置为基于出现和覆盖行为定义文件调节可视覆盖的绘制的程序代码指令。

在这种计算机程序产品的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放;或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

在另一示例实施例中,提供了一种装置,该装置包括用于接收全向媒体内容文件的部件。全向媒体内容文件与第一呈现时间线相关联。该装置还包括用于接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖和与可视覆盖相关联的覆盖行为定义文件的部件。可视覆盖与第二呈现时间线相关联。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。该装置还包括用于绘制全向视频媒体内容文件和可视覆盖的部件。该装置还包括用于检测预定义用户交互切换的出现的部件。该装置还包括用于基于出现和覆盖行为定义文件调节可视覆盖的绘制的部件。

在这种装置的一些实现中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放;当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放;当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放;或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。

附图说明

因此,已经以一般术语描述了本公开的某些示例实施例,在下文中将参考附图,这些附图不一定按比例绘制,并且在附图中:

图1a和图1b是结合描述本文中包含的一些示例实施例而参考的在全向媒体内容播放期间用户的视场旋转的实例的图形表示;

图2是根据本发明的示例实施例的可以具体配置的装置的框图;

图3是示出根据本发明的示例实施例的诸如由图2的装置执行的一组操作的流程图;以及

图4是示出根据本发明的示例实施例的诸如由图2的装置执行的一组操作的流程图。

具体实施方式

现在将在下文中参考附图更完整地描述一些实施例,在附图中示出了本发明的一些但不是全部实施例。实际上,本发明的各种实施例可以以很多不同的形式来实施,并且不应当被解释为限于本文中阐述的实施例;相反,提供这些实施例是为了使得本公开满足适用的法律要求。贯穿全文,相同的附图标记表示相同的元素。如本文中使用的,根据本发明的实施例,术语“数据”、“内容”、“信息”和类似术语可以互换使用以指代能够被传输、接收和/或存储的数据。因此,任何这样的术语的使用不应当理解为限制本发明的实施例的精神和范围。

另外,如本文中使用的,术语“电路系统”是指(a)仅硬件电实现(例如,模拟电路系统和/或数字电路系统中的实现);(b)电路和(多个)计算机程序产品的组合,包括存储在一个或多个计算机可读存储器上的软件和/或固件指令,这些软件和/或固件指令一起工作以引起装置执行本文中描述的一个或多个功能;(c)电路,诸如(多个)微处理器或(多个)微处理器的一部分,其需要软件或固件才能操作,即使软件或固件实际上不存在。“电路系统”的这一定义适用于该术语在本文中的所有使用,包括在任何权利要求中。作为另一示例,如本文中使用的,术语“电路系统”还包括一种实现,该实现包括一个或多个处理器和/或其一部分以及随附的软件和/或固件。作为另一示例,如本文中使用的术语“电路系统”还包括例如用于移动电话的基带集成电路或应用处理器集成电路、或者服务器、蜂窝网络设备、其他网络设备和/或其他计算设备中的类似集成电路。

如本文中定义的,可以将指代非瞬态物理存储介质(例如,易失性或非易失性存储器设备)的“计算机可读存储介质”与指代电磁信号的“计算机可读传输介质”区分开。

如本文中定义的,“可视覆盖”是指被配置为绘制为多层全向可视内容的一部分的视频或图像和/或图像序列的层。可视覆盖可以被覆盖在另一全向视频序列或图像之上(从观看者的角度来看)和/或被另一可视覆盖而覆盖。

根据示例实施例提供了一种方法、装置和计算机程序产品,以便提供和利用覆盖元数据文件,该覆盖元数据文件为多层全向可视内容的不同部分(诸如3dof/3dof+/6dof内容)定义用户交互能力,并且定义在多层全向可视内容作为覆盖被消费时的行为。

与二维(2d)内容的消费相比,沉浸式多媒体(诸如全向内容消费)对于最终用户而言更为复杂。这是由于最终用户可用的自由度更高。这种自由度还导致更多不确定性,因为在任何时间点要观看的沉浸式内容(就视场而言)可能与典型2d内容有所不同,典型2d内容由于其固有的有限视场而具有更加确定的性质。当绘制内容层时,例如在覆盖的情况下,情况变得更加复杂。在多个3dof/3dof+/6dof内容(在相同或不同时间和位置捕获的)的情况下,如果存在包括2d/3dof/3dof+/6dof内容的覆盖,则应当说明与覆盖的用户交互并且应当指出方式以及交互的目标。此外,如果根据客户端实现的判断将用户交互(例如,头部运动、头部旋转或平移)应用于前景和背景内容,则可能对用户体验产生不利影响。仅依靠客户端实现可能会扭曲内容创建者或发布者对内容的创作意图,从而导致非最佳用户体验。

该方法、装置和计算机程序产品可以与多种不同可视和/或视听内容文件结合使用,包括根据多种不同格式(包括各种视频、视听和图像文件格式)而格式化的可视和/或视听内容文件。

可用媒体文件格式标准包括国际标准组织(iso)基本媒体文件格式(iso/iec14496-12,可以缩写为isobmff)、移动图像专家组(mpeg)-4文件格式(iso/iec14496-14,也称为mp4格式)、nal(网络抽象层)单元结构视频(iso/iec14496-15)的文件格式和高效视频编码标准(hevc或h.265/hevc)。

下面描述isobmff的一些概念、结构和规范作为容器文件格式的示例,基于其可以实现一些实施例。本公开的各方面不限于isobmff,而是出于一种可能的基础给出了描述,在此基础上,可以至少部分或完全地实现至少一些实施例。

iso基本媒体文件格式的基本构建块被称为框(box)。每个框具有报头和有效载荷。框报头以字节为单位指示框的类型和框的大小。框类型通常由无符号的32位整数标识,该整数被解释为四字符代码(4cc)。框可以封装其他框,并且iso文件格式指定某种类型的框中允许使用哪些框类型。此外,每个文件中某些框的存在可以是强制性的,而其他框的存在可以是可选的。此外,对于某些类型的框,可以允许文件中存在一个以上的框。因此,可以考虑使用iso基本媒体文件格式来指定框的层次结构。

在符合iso基本媒体文件格式的文件中,媒体数据可以在mediadatabox('mdat')的一个或多个实例中提供,并且moviebox('moov')可以用于封装定时媒体的元数据。在某些情况下,为了使文件可操作,可能需要'mdat'和'moov'框同时存在。'moov'框可以包括一个或多个轨道,并且每个轨道可以位于一个对应trackbox('trak')中。每个轨道与处理程序相关联,该处理程序由四字符代码标识并且指定轨道类型。视频、音频和图像序列轨道可以统称为媒体轨道,并且包含基本媒体流。其他轨道类型包括提示(hint)轨道和定时元数据轨道。

轨道包括样本,诸如音频或视频帧。对于视频轨道,媒体样本可以对应于编码图片或访问单元。

媒体轨道是指根据媒体压缩格式(及其对iso基本媒体文件格式的封装)而格式化的样本(也可以称为媒体样本)。提示轨道是指提示样本,其中包含用于构造分组以通过所指示的通信协议进行传输的码元书(cookbook)指令。定时元数据轨道可以是指描述参考媒体和/或提示样本的样本。

'trak'框在其框的层次结构中包括sampledescriptionbox,该sampledescriptionbox提供有关所使用的编码类型的详细信息、以及该编码所需要的任何初始化信息。sampledescriptionbox包含条目数和与条目数所指示的一样多的样本条目。样本条目的格式是特定于轨道类型的,但是是从通用类(例如,visualsampleentry、audiosampleentry)中得出的。由轨道的媒体处理程序来确定使用哪种类型的样本输入形式来得出特定于轨道类型的样本输入格式。

轨道参考机构可以用于使轨道彼此关联。trackreferencebox包括(多个)框,每个框提供从包含轨道到一组其他轨道的引用。这些引用通过所包含的(多个)框的框类型(例如,框的四字符代码)进行标记。

iso基本媒体文件格式包含可以与特定样本相关联的定时元数据的三种机制:样本组、定时元数据轨道和样本辅助信息。得出规范可以通过这三种机制中的一种或多种提供类似功能。

iso基本媒体文件格式及其得出(诸如高级视频编码(avc)文件格式和可缩放视频编码(svc)文件格式)的样本分组可以定义为基于分组标准将轨道中的每个样本分配为一个样本组的成员。样本分组中的样本组不限于连续样本,还可以包含不相邻样本。由于轨道中的样本可以有一个以上的样本分组,因此每个样本分组可以具有用于指示分组的类型的类型字段。样本分组可以由两个链接的数据结构表示:(1)sampletogroupbox(sbgp框)表示将样本分配给样本组;以及(2)samplegroupdescriptionbox(sgpd框)包含每个样本组的样本组条目,该样本组条目描述该组的属性。基于不同分组标准,可以存在sampletogroupbox和samplegroupdescriptionbox的多个实例。这些可以通过用于指示分组类型的类型字段来区分。sampletogroupbox可以包括例如可以用于指示分组的子类型的grouping_type_parameter字段。

在isombff中,编辑列表提供呈现时间线与媒体时间线之间的映射。除其他事项外,编辑列表还提供轨道中样本呈现的线性偏移,提供空闲时间的指示,并且提供要在特定时间段内停留的特定样本。呈现时间线可以被相应地修改以提供循环,例如用于场景的各个区域的循环视频。下面提供包括编辑列表的框的一个示例,即,editlistbox:

在isobmff中,editlistbox可以被包含在editbox中,editbox被包含在trackbox('trak')中。

在编辑列表框的该示例中,标志指定编辑列表的重复。例如,将框标志(最低有效位,例如ansi-c表示法中的标志&1,其中&指示按位and运算)内的特定位设置为0指定编辑列表不重复,而将特定位(例如,ansi-c表示法中的标志&1)设置为1指定编辑列表重复。大于1的框标志的值可以被定义为被保留以供将来扩展。这样,当编辑列表框指示播放零个或一个样本时,(标志&1)应当等于零。当编辑列表重复时,由编辑列表产生的时间0的媒体紧随具有由编辑列表产生的最大时间的媒体,使得编辑列表无缝地重复。

符合isobmff的文件可以在meta框中包含任何非定时对象,称为项(items)、元项(metaitems)或元数据项(metadataitems)(四字符代码:'meta')。尽管meta框的名称是指元数据,但项通常可以包含元数据或媒体数据。meta框可以位于文件的顶级,在movie框(四字符代码:'moov')和track框(四字符代码:'trak')之内,但是在文件级别、movie级别或track级别中的每个级别最多只能出现一个meta框。可能需要在meta框包含“hdlr”框,以指示“meta”框内容的结构或格式。meta框可以列出并且表征可以引用的任何数目的项,并且每个项可以与文件名相关联并且由作为整数值的项标识符(item_id)唯一地标识。元数据项可以例如存储在meta框的“idat”框中或在'mdat'框中,或者驻留在单独的文件中。如果元数据位于文件外部,则其位置可以由datainformationbox(四字符代码:“dinf”)声明。在特定情况下,元数据使用可扩展标记语言(xml)语法进行格式化并且需要直接存储在metabox中,元数据可以封装到xmlbox(四字符代码:'xml')或binaryxmlbox中(四字符代码:'bxml')中。项可以存储为连续字节范围,也可以存储为若干区段(extents),每个区段是连续字节范围。换言之,项可以被存储分段为区段,例如,以启用交错。区段是资源的字节的连续子集。资源可以通过串联范围来形成。

itempropertiesbox使得任何项与项属性的有序集合相关联。项属性可以被视为小数据记录。itempropertiesbox由两部分组成:包含项属性的隐式索引列表的itempropertycontainerbox、以及将项与项属性相关联的一个或多个itempropertyassociationbox。

高效图像文件格式(heif)是由移动图像专家组(mpeg)开发的用于存储图像和图像序列的标准。除其他外,该标准还促进了根据高效视频编码(hevc)标准而编码的数据的文件封装。heif包括在所使用的iso基本媒体文件格式(isobmff)之上构建的功能。

isobmff结构和特征在heif的设计中被用于大区段。heif的基本设计包括存储为项的静止图像和存储为轨道的图像序列。

在heif的上下文中,以下框可以被包含在根级'meta'框中,并且可以如下所述使用。在heif中,'meta'框的“处理程序”框的处理程序值为'pict'。包含编码媒体数据的资源(无论是在同一文件中,还是在由统一资源标识符标识的外部文件中)通过“数据信息”('dinf')框被解析,而“项位置”('iloc')框存储引用文件中每个项的位置和大小。“项引用”('iref')框使用类型化引用来记录项之间的关系。如果某个项集合中有一个项在某种程度上被认为是与其他项相比最重要的项,则该项会在“主要项”('pitm')框内被发信号通知。除了此处提到的框,'meta'框还可以灵活地包含可能需要用来描述项的其他框。

同一文件中可以包括任何数目的图像项。给定通过使用'meta'框方法而存储的图像集合,有时必须限定图像之间的某些关系。这样的关系的示例包括指示用于集合的封面图像,为集合中的一些或所有图像提供缩略图,以及将集合中的一些或所有图像与诸如α平面等辅图像相关联。图像集合中的封面图像使用'pitm'框来指示。缩略图或辅图像分别使用类型为'thmb'或'auxl'的项引用被链接到主图像项。

如本文中使用的,术语全向可以是指具有比绘制内容的设备的视场更大的空间区段的媒体内容。全向内容例如可以在水平方向上基本涵盖(cover)360度,而在垂直方向上基本涵盖180度,但是全向内容也可以是指在水平方向上涵盖小于360度的视图和/或在垂直方向上涵盖小于180度的视图的内容。

可以用球体表示全景图像,该全景图像水平地涵盖360度视场,垂直地涵盖180度视场,该球体已经使用等角投影(erp)映射到二维图像平面。在这种情况下,在不应用任何变换或缩放的情况下,可以将水平坐标视为等同于经度,将垂直坐标视为等同于纬度。在某些情况下,具有360度水平视场但具有小于180度垂直视场的全景内容可以被认为是等角投影的特殊情况,其中球体的极坐标区域尚未映射到二维图像平面上。在某些情况下,全景内容可以具有小于360度水平视场和高达180度垂直视场,而其他情况下则具有等角投影格式的特征。

在立方体贴图投影格式中,球形视频被投影到立方体的六个面(又称侧面)上。立方体图可以例如通过首先从视点绘制球形场景六次来生成,其中以90度视锥体定义的视图表示每个立方体面。立方体侧面可以被框架包装到同一框架中,或者每个立方体侧面可以被个体地处理(例如,在编码中)。将立方体侧面放置到框架上的顺序可以有很多,和/或立方体侧面可以旋转或镜像。用于框架包装的框架的宽度和高度可以被选择以“紧密地”适合立方体的侧面,例如,在3×2立方体侧网格处,或者可以包括未使用的构成帧,例如在4×3立方体侧网格处。

通常,可以将360度内容映射到不同类型的实体几何结构上,诸如多面体(即,包含平坦多边形面、直边和尖角或顶点的三维实体,例如,立方体或金字塔)、圆柱体(通过将球面图像投影到圆柱体上,如上所述,具有等角矩形投影)、圆柱体(直接而不首先投影到球体上)、圆锥体等,然后展开为二维图像平面。二维图像平面也可以被视为几何结构。换言之,可以将360度内容映射到第一几何结构上并且进一步展开为第二几何结构。但是,可以直接从原始360度内容或从其他宽视角可视内容获取到第二几何结构的变换。通常,全向投影格式可以被定义为表示二维图像平面上的(最多)360度内容的格式。全向投影格式的示例包括等矩形投影格式和立方体贴图投影格式。

视口可以被定义为适合于由用户显示和观看的全向图像或视频的区域。当前视口(有时可以简称为视口)可以定义为当前显示并且因此由(多个)用户可查看的球面视频的一部分。在任何时间点,由应用在头戴式显示器(hmd)上绘制的视频都会绘制360度视频的一部分,这称为视口。同样,当在常规显示器上观看360度内容的空间部分时,当前显示的空间部分是视口。视口是经由绘制显示器显示的全向视频中表示的360度世界上的窗口。视口的特征在于水平视场(vhfov)和垂直视场(vvfov)。在下文中,视口的水平视场将被缩写为hfov,视口的垂直视场将被缩写为vfov。

球体区域可以被定义为球体上可以由四个大圆或由两个方位角圆和两个仰角圆并且另外由平铺角指定的区域,该平铺角指示穿过球体区域的中心点的沿着源自球体原点的轴的旋转。大圆可以定义为球体与穿过球体中心点的平面的交点。大圆也称为矫正圆或黎曼圆。方位角圆可以定义为球体上连接具有相同方位角值的所有点的圆。高程圆可以定义为球体上连接具有相同高程值的所有点的圆。

全向媒体格式(“omaf”)标准(iso/iec23090-2)指定球体区域的通用定时元数据语法。定时元数据轨道的目的由轨道样本条目类型指示。所指定的球体区域的所有元数据轨道的样本格式均以公共部分开始,并且可以跟随有特定于元数据轨道的样本条目的扩展部分。每个样本指定球体区域。

在omaf中指定的特定球体区域定时元数据轨道之一被称为推荐视口定时元数据轨道,其指示当用户不具有观看取向的控制权或已经释放观看取向的控制权时应当显示的视口。推荐视口定时元数据轨道可以用于基于“导演剪辑”或基于观看统计数据的测量来指示推荐视口。推荐视口的文字说明可以在样本条目中提供。推荐的视口类型可以在样本条目中指出,并且可以在以下各项中:

-根据导演剪辑的推荐视口,例如,根据内容作者或内容提供者的创作意图而建议的视口。

-基于观看统计数据的测量而选择的推荐视口。

-未指定(供omaf以外的应用或规范使用)。

视频和/或图像可以覆盖在全向视频和/或图像上。编码覆盖视频可以是当前绘制的360度视频/图像的单独流或部分位流。全向流传输系统可以将视频/图像覆盖在正在绘制的全向视频/图像之上。覆盖的二维视频/图像可以具有矩形网格或非矩形网格。覆盖过程可以涵盖覆盖的视频/图像或视频/图像的一部分,或者可以存在一定程度的透明度/不透明度或一个以上的透明度/不透明度级别,其中覆盖视频/图像可以在覆盖视频/图像下方看到,但亮度较低。换言之,可能存在与前景覆盖中的视频/图像和背景中的视频/图像(vr场景的视频/图像)相对应的关联透明度级别。术语不透明度和透明度可以互换使用。

覆盖区域可以具有一个或多个透明度级别。例如,覆盖区域可以具有透明度级别不同的不同部分。根据一个实施例,透明度级别可以定义为在一定范围内,诸如从0到1,使得该值越小则透明度越小,反之亦然。

另外,内容提供者可以选择将相同全向视频的一部分覆盖在用户的当前视口上。内容提供者可能希望基于用户的观看条件来覆盖视频。例如,如果用户的视口与内容提供者的推荐视口不匹配,则可以执行覆盖。在这种情况下,客户端播放器逻辑将内容提供者的推荐视口(作为预览窗口)覆盖在用户的当前视口之上。如果用户的当前视口不匹配,则也可以覆盖推荐视口,使得覆盖视频的位置基于用户观看的方向。例如,如果推荐视口位于用户的当前视口的左侧,则将推荐视口覆盖在显示器的左侧。也可以覆盖整个360度视频。又一示例是使用覆盖可视信息作为引导机制来将用户引导至推荐视口,例如引导听力受损的人。

关于何时以及如何显示可视覆盖可能存在一个或多个条件。因此,绘制设备可能需要接收信息,绘制设备可以使用该信息来执行覆盖,如发信号通知的信息所指示的。

可以在单个可视媒体轨道或单个图像项中携带一个或多个覆盖。当在单个轨道或图像项中携带一个以上的覆盖时,或者当通过其他媒体(例如,背景)携带覆盖时,可以提供从轨道或图像项的样本到覆盖元数据的区域映射,例如在overlaystruct中或与之关联。

当若干轨道或图像项共同携带一个或多个覆盖和/或背景可视媒体时,可以在容器文件中指示一组轨道和图像项。例如,isobmff的实体组可以用于这个目的。

覆盖可以落在用户视场(fov)之外,例如,用户的视口与覆盖不重叠。例如,如图1a和图1b所示,在用户10在全向媒体内容播放期间旋转之后,用户10的视口12与可视覆盖14不重叠。根据特定情况,可能希望在用户不在观看覆盖时,继续或暂停覆盖的播放。例如,可能需要暂停覆盖播放的时间线,直到覆盖再次与用户的视口重叠。即使覆盖位于用户的视口之外,也可能希望继续播放覆盖。因此,需要一种支持多个播放时间线的机制,该机制又可以实现独立于基本内容的自定义覆盖播放/暂停。因此,根据示例实施例提供了一种方法、装置和计算机程序产品,以便在具有覆盖的全向媒体内容的播放中实现多个时间线支持,这又实现了取决于覆盖是否与用户的视口重叠而定制的覆盖播放行为。

下面结合isobmff描述一些示例实施例。需要理解,示例实施例仅作为示例提供,并且实施例不限于isobmff。isobmff的editbox是用于包含从轨道的媒体时间线到呈现时间线(在轨道之间共享)的映射的容器框。editbox可以用作将呈现时间线与轨道相关联的容器。下面提供一个示例editbox:

框类型:′prtl′

容器:editbox

必填:否

数量:0或1

当存在时,editbox将轨道分配给由框中提供的时间线标识符标识的特定呈现时间线。当不存在editbox时,轨道被隐式分配给时间线标识符等于0的呈现时间线。

在全向媒体内容的播放期间,与相同呈现时间线相关联的轨道被同步地播放。具有不同时间线标识符的呈现时间线可以不同步地调节节奏并且可以具有不同播放状态(例如,一个可以被暂停,而另一个可以处于常规播放模式)。在一些实施例中,示例presentationtimelinebox指定呈现时间线,但是不指示如何控制呈现时间线。下面提供示例presentationtimelinebox:

aligned(8)classpresentationtimelineboxextendsfullbox(′prtl′,version,flags){

unsignedint(32)timeline_id;

}

timeline_id提供该轨道被分配给的呈现时间线的时间线标识符。

不管用于覆盖和全向媒体内容的文件格式如何,示例实施例的装置都可以由包括例如视频编码器、视频解码器、计算机工作站、服务器等在内的多种计算设备中的任何一种来提供,或者通过各种移动计算设备(诸如移动终端,例如,智能电话、平板电脑、视频游戏机等)中的任何一种来提供。备选地,该装置可以由虚拟现实系统实施,诸如能够接收一个或多个数据流并且绘制可以呈现给用户的可视和视听内容的虚拟现实耳机。

不管实施该装置的计算设备如何,示例实施例的装置20都包括处理电路系统22、存储器24、通信接口26和可选的用户接口28,如图2所示,与之关联,或者以其他方式与之通信。

处理电路系统22可以经由总线与存储器设备24通信,以在装置20的组件之间传递信息。存储器设备可以是非瞬态的,并且可以包括例如一个或多个易失性和/或非易失性存储器。换言之,例如,存储器设备可以是电子存储器设备(例如,计算机可读存储介质),其包括被配置为存储可以由机器(例如,诸如处理电路系统等计算设备)检索的数据(例如,比特)的门。存储器设备可以被配置为存储信息、数据、内容、应用、指令等,以使得装置能够根据本公开的示例实施例执行各种功能。例如,存储器设备可以被配置为缓冲输入数据以供处理电路系统处理。附加地或备选地,存储器设备可以被配置为存储指令以由处理电路系统执行。

在一些实施例中,装置20可以实施在如上所述的各种计算设备中。然而,在一些实施例中,该装置可以实施为芯片或芯片组。换言之,该装置可以包括一个或多个物理封装(例如,芯片),该物理封装包括在结构组件(例如,底板)上的材料、组件和/或电线。该结构组件可以为其上包括的组件电路系统提供物理强度、尺寸守恒和/或电气相互作用的限制。因此,该装置在某些情况下可以被配置为在单个芯片上或作为单个“片上系统”实现本发明的实施例。这样,在某些情况下,芯片或芯片组可以构成用于执行一个或多个操作以提供本文所述功能的部件。

处理电路系统22可以以多种不同的方式实施。例如,处理电路系统可以实施为各种硬件处理部件中的一种或多种,诸如协处理器、微处理器、控制器、数字信号处理器(dsp)、具有或不具有随附dsp的处理元件、或各种其他电路系统,包括集成电路,诸如asic(专用集成电路)、fpga(现场可编程门阵列)、微控制器单元(mcu)、硬件加速器、专用计算机芯片等。这样,在一些实施例中,处理电路系统可以包括被配置为独立执行的一个或多个处理核心。多核处理电路系统可以在单个物理封装内实现多处理。附加地或备选地,处理电路系统可以包括经由总线串联配置以使得能够独立执行指令、流水线和/或多线程的一个或多个处理器。

在示例实施例中,处理电路系统22可以被配置为执行存储在存储器设备24中或以其他方式可以被处理电路系统访问的指令。备选地或附加地,处理电路系统可以被配置为执行硬编码功能。这样,无论是通过硬件或软件方法来配置,还是通过其组合来配置,处理电路系统都可以表示能够在相应配置时执行根据本公开的实施例的操作的实体(例如,物理地实施在电路系统中)。因此,例如,当处理电路系统实施为asic、fpga等时,处理电路系统可以是用于进行本文中描述的操作的专门配置的硬件。备选地,作为另一示例,当处理电路系统实施为指令的执行器时,指令可以具体地将处理器配置为在指令被执行时执行本文中描述的算法和/或操作。然而,在某些情况下,处理电路系统可以是特定设备(例如,图像或视频处理系统)的处理器,该特定设备被配置为通过用于执行本文中描述的算法和/或操作的指令进一步配置处理电路系统来采用本发明的实施例。除了别的以外,处理电路系统还可以包括被配置为支持处理电路系统的操作的时钟、算术逻辑单元(alu)和逻辑门。

通信接口26可以是被配置为接收和/或传输数据(包括视频或图像文件形式的可视内容、一个或多个音轨等)的实施在硬件或硬件和软件的组合中的诸如设备或电路系统等任何部件。在这点上,通信接口可以包括例如天线(或多个天线)以及用于实现与无线通信网络的通信的支持硬件和/或软件。附加地或备选地,通信接口可以包括用于与(多个)天线交互以引起经由与(多个)天线的信号传输或处理经由与(多个)天线接收的信号的接收的电路系统。在某些环境中,通信接口可以备选地或附加地支持有线通信。这样,例如,通信接口可以包括通信调制解调器和/或用于支持经由电缆、数字用户线(dsl)、通用串行总线(usb)或其他机制进行的通信的其他硬件/软件。

在一些实施例中,诸如在装置20被配置为以视频或图像文件的形式处理可视内容并且以视频或图像文件的形式绘制可视内容的情况下,装置20可以可选地包括用户接口28,该用户接口28又可以与处理电路系统22通信以向用户提供输出,诸如通过以视频或图像文件的形式绘制可视内容,并且在一些实施例中,接收用户接口28。用户输入的指示。这样,用户界面可以包括显示器,并且在一些实施例中还可以包括键盘、鼠标、操纵杆、触摸屏、触摸区域、软键、麦克风、扬声器或其他输入/输出机制。备选地或附加地,处理电路系统可以包括用户接口电路系统,该用户接口电路系统被配置为控制一个或多个用户接口元件的至少一些功能,诸如显示器,并且在一些实施例中,诸如扬声器、振铃器、麦克风等。处理电路系统和/或包括处理电路系统的用户接口电路系统可以被配置为通过存储在处理电路系统(例如,存储器设备24等)可访问的存储器上的计算机程序指令(例如,软件和/或固件)来控制一个或多个用户接口元素的一个或多个功能。

若干实施例涉及例如指示一组指示(以下也称为文件),例如,该指示定义位流、容器文件、清单、脚本(例如,javascript或smil程序)和/或网页中的允许和/或不允许的交互、或者从位流、容器文件、清单、脚本(例如,运行javascript或smil程序)和/或网页中解析信息。一组指示的示例是用户交互定义文件,该文件可以定义允许由用户执行的第一组交互类型。位流可以例如是视频或图像位流(诸如hevc位流),其中指示可以利用例如补充增强信息(sei)消息。容器文件可以例如符合iso基本媒体文件格式、matroska文件格式或材料交换格式(mxf)。清单可以例如符合mpeg-dash(iso/iec23009-1)的媒体表示描述(mpd)、m3u格式、或可互操作主格式(imf)或由vr-if定义的视频主格式的组成播放列表(cpl)。需要理解,提供了这些格式作为示例,并且实施例不限于它们。某些实施例可以类似地利用诸如会话描述协议(sdp)等任何其他类似的容器或媒体描述格式来实现。示例实施例可以用指示可以在其中的一整组(多个)位流格式、(多个)容器文件格式和(多个)清单格式来实现。mpegomaf是这样的一组格式的示例。

在一些实施例中,用于允许或不允许的用户交互的指示可以被分成上一段落中描述的一个以上的包含实体。例如,可以在容器文件(例如,isobmff文件)中指示多个呈现时间线的使用以及呈现时间线与背景和覆盖轨道的关联。多个呈现时间线可以暗示允许分别控制它们。脚本或网页等可以伴随容器文件并且包含用于控制呈现时间线的可执行程序代码。例如,可以将脚本等设置为在与其相关联的(多个)轨道未被查看(例如,在视口上不可见)时暂停呈现时间线。

需要理解,代替或除了清单,示例实施例类似地适用于容器文件格式和/或媒体位流。例如,代替或除了在清单中指示要覆盖的空间区域和用于覆盖的空间区域,还可以在还包含或引用编码位流的容器文件格式的元数据内指示它们。

现在参考图3,描绘了根据示例实施例的诸如由图2的装置20执行以创建包括与可视覆盖相关联的用户交互定义文件的覆盖元数据文件的操作。如框30所示,该装置包括诸如处理电路系统22、通信接口26等用于接收可视覆盖的装置,该可视覆盖被配置为与全向媒体内容文件一起被绘制为多层可视内容。可视覆盖可以是在omaf中定义的可视覆盖。全向媒体内容文件可以包括视频内容和/或音频内容。

“可视覆盖”是被配置为绘制为多层全向可视内容的一部分的视频或图像和/或图像序列的层。可视覆盖可以覆盖在另一全向视频序列或图像之上,和/或被另一可视覆盖覆盖。可视覆盖可以与其他全向视频序列或图像和/或其他可视覆盖部分或完全重叠。全向媒体内容文件可以与第一呈现时间线相关联,并且可视覆盖可以与第二呈现时间线相关联。呈现时间线可以被指定为先前描述的时间线。

一旦接收到可视覆盖,如框32所示,装置20包括用于构造与可视覆盖相关联的覆盖行为定义文件的装置,诸如处理电路系统22。覆盖行为定义文件指示在全向媒体内容文件的播放期间出现预定义用户交互切换的情况下第二呈现时间线相对于第一呈现的行为。

在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖重叠。定义阈值可以存储在全向媒体内容播放设备上。

在一些实施例中,预定义用户交互切换包括以下一项或多项:用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠,或者用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠。定义时间阈值是大于零的时间段(或在条件出现之后立即满足的“大于零的”阈值)。类似地,定义空间阈值可以是大于零的距离,或者仅仅是在条件出现时可以满足的“大于零”的阈值。

在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放。

在一些实施例中,第二呈现时间线相对于第一呈现的行为包括以下一项或多项:当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放,当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放,当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放,或者当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放。定义空间阈值可以是预定距离。

在一些实施例中,覆盖行为定义文件可以采取以下提供的sphererelativeomnioverlay语法的形式:

nonoverlapping_playback_flag在设置为0时表示,在预定义时间阈值(时间段)内,如果覆盖不在用户的当前视口中,或者如果覆盖不在用户的当前视口加上预定义空间阈值中,则覆盖内容的播放将暂停。当覆盖回到用户的视口中时,可以使用内容的全局呈现时间线继续播放。中间间隔中的内容将被跳过。

nonoverlapping_playback_flag在设置为1时表示,即使在预定义时间阈值内覆盖不在用户的当前视口加上预定义空间阈值中,覆盖内容的播放仍将继续。这表示,与覆盖相对应的音频内容可以继续以某种形式绘制,并且覆盖的内容时间线继续前进,而不受视口非覆盖变化的影响。

nonoverlapping_playback_flag在设置为2时表示,如果在预定义时间阈值内覆盖不在用户的当前视口加上预定义空间阈值中,则覆盖内容的播放将暂停。重叠内容的播放将从暂停样本恢复。这可以防止由于覆盖远离用户的当前视口而丢失任何内容。

nonoverlapping_playback_flag在设置为3时表示,如果在预定义时间阈值内覆盖不在用户的当前视口加上预定义空间阈值中,则覆盖内容的检索将停止。当覆盖不是用户的当前视口的一部分时,这可以防止未绘制内容检索。

在一些实施例中,nonoverlapping_playback_flag和/或指示当在视口之外(上面的示例中未示出)时覆盖内容的播放控制的其他元素还可以包括指示当覆盖不在用户的当前视口中时高质量内容是否可用的语法元素。在一些实施例中,nonoverlapping_playback_flag和/或指示当在视口之外(未示出)时覆盖内容的播放控制的其他元素还可以包括指示当覆盖不在用户的当前视口中时是否将检索覆盖的帧频降低内容的语法元素。

等于0的region_indication_type指定覆盖在其上被绘制的球体区域在投影图片中被指示为矩形。等于1的region_indication_type指定覆盖在其上被绘制的球体区域由该语法结构中包括的sphereregionstruct来指示。当覆盖和背景可视媒体的投影格式相同时,region_indication_type可以等于0。

当region_indication_type等于0时,语法结构指示根据所指示的按区域打包过程信息,覆盖的投影图片按区域打包,并且在绘制之前需要解压缩。

投影图片的宽度和高度分别用proj_picture_width和proj_picture_height发信号通知。

proj_reg_width、proj_reg_height、proj_reg_top和proj_reg_left分别指定与语法结构相关联的投影区域的宽度、高度、顶部偏移和左侧偏移。

region_depth_minus1指示要在其上绘制覆盖的区域的深度(z值)。region_depth_minus1+1指定以2-16为单位的相对于单位球体的深度值。unit_sphere_distance_in_mm指定以毫米为单位的距离,该距离对应于单位球体的半径。

在另一示例实施例中,覆盖行为定义文件可以采用sphererelative2doverlay语法元素的形式:

nonoverlapping_playback_flag可以与先前描述的nonoverlapping_playback_flag相同。region_depth_minus1和unit_sphere_distance_in_mm可以与先前描述的相同。

overlay_rot_yaw、overlay_rot_pitch和overlay_rot_roll指定相对于坐标系的与覆盖相关联的平面的旋转,其中x轴是从覆盖区域的中心到全局坐标轴的原点的向量。

在构建与可视覆盖相关联的覆盖行为定义文件时,如框34所示,装置20包括用于引起对可视覆盖和覆盖行为定义文件的存储的部件,例如处理电路系统22。之后,可以传输可视覆盖和覆盖行为定义文件,或者可以采取其他动作。例如,可视覆盖和覆盖行为定义文件可以与全向媒体内容文件一起提供给全向内容播放器。

这样,结合图4描述与播放全向视频序列或图像相关联的操作、以及可视覆盖和覆盖行为定义文件以及其他文件。尽管下面相对于图2的装置20来进行对被配置为执行图4的操作的装置的参考,但是用于执行图4的操作的装置可以是相同的装置或不同的装置,即由与创建覆盖元数据文件的计算设备不同的计算设备来实施。然而,被配置为执行图5的操作的装置可以包括如下所述的用户接口28。

如框40所示,装置20包括用于接收全向媒体内容文件的部件,诸如处理电路系统22、通信接口26等。在一些实施例中,全向媒体内容文件可以是根据omaf而格式化的文件。

如框42所示,装置20包括用于接收被配置为与全向媒体内容文件一起被绘制为多层可视内容的可视覆盖和与可视覆盖相关联的覆盖行为定义文件的部件,诸如处理电路系统22、通信接口26等。全向媒体内容文件和覆盖行为定义文件可以是先前结合图3描述的全向媒体内容文件和覆盖行为定义文件。

在一些实施例中,覆盖行为定义文件可以采取以下提供的sphererelativeomnioverlay语法的形式:

nonoverlapping_playback_flag在设置为0时表示,在预定义时间阈值(时间段)内,如果覆盖不在用户的当前视口中,或者如果覆盖不在用户的当前视口加上预定义空间阈值中,则覆盖内容的播放(除背景以外的所有相关介质)将暂停。当覆盖回到用户的视口中时,可以使用内容的全局呈现时间线继续播放。中间间隔中的内容将被跳过。

nonoverlapping_playback_flag在设置为1时表示,即使在预定义时间阈值内覆盖不在用户的当前视口加上预定义空间阈值中,覆盖内容的播放仍将继续。这表示,与覆盖相对应的音频内容可以继续以某种形式(例如,在背景中以相同的音量级别或以较低的音量)以及其他媒体(例如,图形或动画)绘制,覆盖的内容时间线继续前进,而不受视口非覆盖变化的影响。

nonoverlapping_playback_flag在设置为2时表示,如果在预定义时间阈值内覆盖不在用户的当前视口加上预定义空间阈值中,则覆盖内容的播放将继续。与覆盖相对应的音频内容可以被静音。覆盖的内容时间线可以继续前进,而不受视口非覆盖变化的影响。

nonoverlapping_playback_flag在设置为3时表示,如果覆盖不在用户的当前视口中,则覆盖内容的播放将暂停(所有相关介质(背景除外))。覆盖内容的播放可以从暂停样本恢复。这可以防止由于覆盖远离用户的当前视口而丢失任何内容。

nonoverlapping_playback_flag在设置为4时表示,如果在预定义时间阈值内覆盖不在用户的当前视口加上预定义空间阈值中,则覆盖内容的检索将暂停(所有相关介质(背景除外))。当覆盖不是用户的当前视口的一部分时,这可以防止检索未绘制内容。

等于0的region_indication_type指定覆盖在其上被绘制的球体区域在投影图片中被指示为矩形。等于1的region_indication_type指定覆盖在其上被绘制的球体区域由该语法结构中包括的sphereregionstruct来指示。当覆盖和背景可视媒体的投影格式相同时,region_indication_type可以等于0。

当region_indication_type等于0时,语法结构指示根据所指示的按区域打包过程信息,覆盖的投影图片按区域打包,并且在绘制之前需要解压缩。

投影图片的宽度和高度分别用proj_picture_width和proj_picture_height发信号通知。

proj_reg_width、proj_reg_height、proj_reg_top和proj_reg_left分别指定与语法结构相关联的投影区域的宽度、高度、顶部偏移和左侧偏移。

region_depth_minus1指示要在其上绘制覆盖的区域的深度(z值)。region_depth_minus1+1指定以2-16为单位的相对于单位球体的深度值。unit_sphere_distance_in_mm指定以毫米为单位的距离,该距离对应于单位球体的半径。

在另一示例实施例中,覆盖行为定义文件可以采用sphererelative2doverlay语法元素的形式:

nonoverlapping_playback_flag可以与先前描述的nonoverlapping_playback_flag相同。region_depth_minus1和unit_sphere_distance_in_mm可以与先前描述的相同。

overlay_rot_yaw、overlay_rot_pitch和overlay_rot_roll指定相对于坐标系的与覆盖相关联的平面的旋转,其中x轴是从覆盖区域的中心到全局坐标轴的原点的向量。

如框44所示,装置20包括用于绘制全向媒体内容文件和可视覆盖的部件,诸如处理电路系统22、通信接口26等。

如框46所示,装置20包括用于检测预定义用户交互切换的出现的部件,诸如处理电路系统22、通信接口26等。预定义用户交互切换可以是结合图3描述的任何预定义用户交互切换。

如框48所示,装置20包括用于基于出现和覆盖行为定义文件来调节可视覆盖的呈现的部件,诸如处理电路系统22、通信接口26等。在一些实施例中,覆盖行为定义文件可以定义在出现预定义用户交互切换时,可以提示用户选择要进行的调节。

作为示例,调节可以是以下之一:

·当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,继续第二呈现时间线的播放,无论视点变化如何,将覆盖移动或滑动到其他视点,或者将覆盖冻结到视口上

·当用户的视口在第一定义时间阈值内与可视覆盖不重叠时,暂停第二呈现时间线的播放

·当用户的视口在第二定义时间阈值内与可视覆盖重叠时,继续第二呈现时间线的播放

·当用户的视口在第二定义时间阈值内与可视覆盖重叠时,暂停第二呈现时间线的播放

·当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,继续第二呈现时间线的播放

·当用户的视口在第一定义时间阈值内与可视覆盖加上第一定义空间阈值不重叠时,暂停第二呈现时间线的播放

·当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,继续第二呈现时间线的播放

·当用户的视口在第二定义时间阈值内与可视覆盖加上第二定义空间阈值重叠时,暂停第二呈现时间线的播放

另外,调节还可以包括检索覆盖的较低质量版本,以利于立即绘制(适用于快速变化的内容)。调节还可以包括停止对内容的检索以节省带宽(适用于缓慢变化的内容)。

如上所述,图3和图4是根据某些示例实施例的装置20、方法和计算机程序产品的流程图。应当理解,流程图的每个框以及流程图中的框的组合可以通过各种方式来实现,诸如与包括一个或多个计算机程序指令的软件的执行相关联的硬件、固件、处理器、电路系统、和/或其他设备。例如,上述过程中的一个或多个可以由计算机程序指令来实施。在这点上,实施上述过程的计算机程序指令可以由采用本发明实施例的设备的存储器设备24存储,并且由该装置的处理电路系统22执行。应当理解,任何这样的计算机程序指令可以被加载到计算机或其他可编程装置(例如,硬件)上以产生机器,使得所得到的计算机或其他可编程装置实现流程图框中指定的功能。这些计算机程序指令还可以存储在计算机可读存储器中,该计算机可读存储器可以指导计算机或其他可编程装置以特定方式起作用,使得存储在计算机可读存储器中的指令产生制品,该制品的执行实现流程图块中指定的功能。也可以将计算机程序指令加载到计算机或其他可编程装置上,以引起在计算机或其他可编程装置上执行一系列操作以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图块中指定的功能的操作。

因此,计算机程序产品在其中计算机程序指令(诸如计算机可读程序代码部分)由至少一个非瞬态计算机可读存储介质存储的情况下定义,该计算机程序指令(诸如计算机可读程序代码部分)被配置为在执行时执行以上诸如结合图3和图4的流程图描述的功能。在其他实施例中,计算机程序指令(诸如计算机可读程序代码部分)不需要由非瞬态计算机可读存储介质存储或以其他方式来实施,而是可以由具有计算机程序指令(诸如计算机可读程序代码部分)的瞬态介质来实施,该计算机程序指令仍然被配置为在执行时执行上述功能。

因此,流程图的框支持用于执行指定功能的装置的组合以及用于执行指定功能的用于执行指定功能的操作的组合。还应当理解,流程图的一个或多个框以及流程图中的框的组合可以由执行指定功能的基于专用硬件的计算机系统或专用硬件和计算机指令的组合来实现。

在一些实施例中,可以修改或进一步放大上述操作中的某些操作。此外,在一些实施例中,可以包括附加的可选操作。对以上操作的修改、添加或放大可以以任何顺序和任何组合来执行。

受益于前述说明书和相关附图中呈现的教导的这些发明所属领域的技术人员将能够想到本文中阐述的本发明的很多修改和其他实施例。因此,应当理解,本发明不限于所公开的特定实施例,并且修改和其他实施例旨在被包括在所附权利要求的范围内。此外,尽管前述说明和相关附图在元素和/或功能的某些示例性组合的背景下描述示例性实施例,但是应当理解,在不脱离所附权利要求的范围的前提下,可以由备选实施例提供元素和/或功能的不同组合。在这点上,例如,如可以在一些所附权利要求书中阐述的,还设想了与以上明确描述的元素和/或功能不同的元素和/或功能的组合。尽管本文中使用特定术语,但是它们仅在一般和描述性意义上使用,而不是出于限制的目的。

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