全景视频回放期间的视图相关操作的制作方法

文档序号:18095590发布日期:2019-07-06 11:01阅读:200来源:国知局
全景视频回放期间的视图相关操作的制作方法

在通过互联网流式传输视频并且通过web浏览器或者媒体回放器回放视频时,以数字形式传送视频。在通过许多广播服务、卫星服务和有线电视服务传送视频时,也使用数字视频。实时视频会议通常使用数字视频,并且数字视频在视频捕获期间与大部分智能电话、web相机和其他视频捕获设备一起使用。数字视频还用于诸如虚拟现实和增强现实的技术,不管视频是在头戴式显示器、移动设备中还是在其他类型的设备中被回放。

全景视频是在中心位置周围的多个方向上的视图被同时记录的视频。所记录的视频可以包括每个方向上的图像内容、或者至少包括在中心位置周围的360度球面中的每个方向上的图像内容,至少包括中心位置上方的一些图像内容以及至少包括中心位置下方的一些内容。全景视频有时被称为360度视频、沉浸式视频或者球面视频。全景视频可以使用全向相机或者指向不同的方向的多个相机的集合来捕获。对于现今的应用,在创建、编辑和传送阶段以及重建和渲染以进行回放的阶段期间以数字形式来处理全景视频。

在回放期间,观看者通常可以控制相对于中心位置的视图方向,潜在地随时间改变观看全景视频的哪个片段。在一些系统中,观看者还可以放大或者缩小,这有效地改变了全景视频的视场。当全景视频被渲染以进行显示时,全景视频的被观看的片段可以被投影到平面图像,这被称为屏幕投影。对于移动设备或者计算机监视器,单个屏幕投影可以被渲染。对于头戴式显示器(或者固定在头戴式带中的移动设备),全景视频的被观看的片段可以分别被投影到针对左眼和右眼的两个屏幕投影。

当计算机系统重建和渲染全景视频时,可能会浪费资源来重建未被观看的图像内容。例如,存储器可能用于存储全景视频的未被观看的区域的采样值,并且处理周期可能用于确定未被观看的采样值和其在不同的处理阶段的位置。



技术实现要素:

总言之,具体实施方式呈现了在全景视频的重建和渲染方面的创新。在一些示例实施方式中,这些创新帮助全景视频回放系统避免花费诸如存储器和处理周期等资源来重建未被观看的图像内容。备选地,这些创新帮助全景视频回放系统投入可用资源以改进被渲染的图像内容的质量。

根据本文所描述的创新的一个方面,计算机系统实施全景视频回放系统,该全景视频回放系统包括流控制器、输入缓冲器、视频解码器、颜色转换器、映射器和视图相关操作控制器。流控制器被配置为请求针对输入投影中的全景视频图片的至少一个片段的编码数据。输入投影可以例如是等量矩形投影或者立方图投影。输入缓冲器被配置为存储编码数据,并且视频解码器被配置为对编码数据中的至少一些编码数据进行解码,从而产生输入投影中的全景视频图片的至少一个片段的采样值。颜色转换器被配置为将由视频解码器产生的采样值中的至少一些采样值从第一颜色空间转换到第二颜色空间。

映射器被配置为将经颜色转换的采样值中的至少一些采样值映射到输出投影。输出投影可以是屏幕投影,在这种情况下,应用可以仅使用屏幕投影来进行渲染。或者,输出投影可以是等量矩形投影或者立方图投影,在这种情况下,应用可以在渲染之前对输出投影执行进一步的映射操作。

视图相关操作控制器被配置为接收对用于应用的视图方向的指示,并且至少部分地基于视图方向来标识输入投影中的全景视频图片的片段。视图相关操作控制器将颜色转换器的操作限于经标识的片段。换言之,针对经标识的片段中的采样值但是不针对经标识的片段外部的采样值执行颜色转换操作。在一些示例实施方式中,视图相关操作控制器还限制视频解码器的操作,以便于对针对经标识的片段而不是针对输入投影中的全景视频图片的其他片段的编码数据进行选择性地解码。在另外一些示例实施方式中,视图相关操作控制器进一步限制流控制器的操作,使得流控制器请求针对经标识的片段而不是针对输入投影中的全景视频图片的其他片段的编码数据。以这种方式,全景视频回放系统可以避免执行用以重建全景视频图片的将不被观看的片段的操作。

根据本文所描述的创新的另一方面,计算机系统实施全景视频回放系统,该全景视频回放系统包括流控制器、输入缓冲器、视频解码器和映射器。流控制器被配置为请求针对输入平板投影中的全景视频图片的至少一个片段的编码数据。输入平板投影可以例如是等量矩形投影或者立方图投影。输入缓冲器被配置为存储编码数据,并且视频解码器被配置为对编码数据中的至少一些编码数据进行解码,从而产生输入平板投影中的全景视频图片的至少一个片段的采样值。全景视频回放系统还可以包括颜色转换器,该颜色转换器被配置为将由视频解码器产生的采样值中的至少一些采样值从第一颜色空间转换到第二颜色空间。映射器被配置为将输入平板投影中的采样值中的至少一些采样值映射到输出平板投影,输出平板投影可以例如是等量矩形投影或者立方图投影。为了映射到输出平板投影,映射器被配置为将输入平板投影中的采样值中的至少一些采样值(共同地)朝向应用的视图方向的中心位置重新投影。应用可以在渲染之前对输出平板投影执行进一步的映射操作,例如,从被提供给应用的输出平板投影生成一个或多个屏幕投影。与输入平板投影相比较,输出平板投影可以通过更紧凑、高效的方式将相关细节(诸如,用于渲染视图的采样值)传送给应用,这可以简化之后通过应用进行的处理。

这些创新可以被实施为方法的一部分、被配置为执行针对方法的操作的计算机系统的一部分或者存储用于使计算机系统执行针对方法的操作的计算机可执行指令的一个或多个计算机可读介质的一部分。各种创新可以被组合使用或者单独使用。本发明内容被提供以通过简化形式介绍一些概念,这些概念将在以下具体实施方式中被进一步详细描述。本发明内容既不旨在标识所要求保护的主题的主要特征或者基本特征,也不旨在用于限制所要求保护的主题的范围。本发明的前述和其他目的、特征和优点通过以下参考附图进行的详细描述将变得显而易见。

附图说明

图1是图示了可以实施一些所描述的实施例的示例计算机系统的示意图。

图2a和图2b是图示了可以实施一些所描述的实施例的示例网络环境的示意图。

图3a至图3c是针对全景视频图片的示例投影的示意图。

图4是图示了针对全景视频图片的视图的屏幕投影的示例的示意图。

图5a和图5b是图示了标识针对全景视频图片的输入等量矩形投影的与球面投影的视图片段相对应的片段的示例的示意图。

图6是图示了支持视图相关操作和针对平板投影的重新投影操作的全景视频回放系统的示例架构的示意图。

图7是图示了用于通过视图相关操作回放全景视频的一般技术的流程图。

图8是图示了在应用渲染模式下、将全景视频图片的输入平板投影的采样值重新投影到输出平板投影的概念的示意图。

图9a和图9b是图示了在应用渲染模式下、将全景视频图片的输入平板投影的采样值重新投影到输出平板投影的示例的示意图。

图10是图示了用于在应用渲染模式下操作的全景视频回放系统的示例架构的特征的示意图。

图11是图示了用于在全景视频图片的回放期间、在应用渲染模式下、将输入平板投影的采样值重新投影到输出平板投影的一般技术的流程图。

图12是图示了用于在全景视频图片的回放期间、在应用渲染模式下、将输入平板投影的采样值重新投影到输出平板投影的示例实施方式的特征的示意图。

具体实施方式

具体实施方式呈现了在全景视频的重建和渲染方面的创新。在一些示例实施方式中,本创新帮助全景视频回放系统避免花费诸如存储器和处理周期等资源来重建未被观看的图像内容。或者,本创新帮助全景视频回放系统投入可用资源以提高被渲染的图像内容的质量。本创新包括在全景视频的回放期间使用诸如颜色转换操作和解码操作等视图相关操作。本创新还包括在全景视频图片的平板投影之间重新投影以使之后通过应用进行的渲染更高效。

在本文所描述的示例中,不同附图中的相同附图标记指示相同的组件、模块或者操作。根据上下文,给定组件或者模块可以接受不同类型的信息作为输入和/或产生不同类型的信息作为输出。

更一般地,对本文所描述的示例的各种备选方案是可能的。例如,可以通过改变所描述的方法动作的排序、通过分解、重复或者省略某些方法动作等来改变本文所描述的方法中的一些方法。所公开的技术的各个方面可以被组合使用或者单独使用。本文所描述的创新中的一些创新解决了

背景技术:
中提到的一个或多个问题。通常,给定的技术/工具不会解决所有这样的问题。

i.示例计算机系统。

图1图示了可以实施所描述的创新中的若干创新的合适的计算机系统(100)的广义示例。计算机系统(100)不旨在暗示对使用或者功能的范围的任何限制,因为本创新可以在各种各样的通用或者专用计算机系统中来实施。

参考图1,计算机系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“cpu”)、专用集成电路(“asic”)中的处理器或者任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。例如,图1示出了cpu(110)和gpu(115)。通常地,gpu(115)是与cpu(110)不同的、加速图形管线中的图像数据的创建和/或操纵的任何专用电路。gpu(115)可以被实施为专用图形卡(视频卡)的一部分、主板的一部分、片上系统(“soc”)的一部分,或者以一些其他方式(甚至在与cpu(110)相同的管芯上)被实施。

有形存储器(120、125)可以是由(多个)处理单元可访问的易失性存储器(例如,寄存器、高速缓存、ram)、非易失性存储器(例如,rom、eeprom、闪速存储器等)或者两者的某个组合。在图1中,存储器(120)是cpu(110)可访问的cpu存储器,并且存储器(125)是gpu(115)可访问的gpu存储器。根据架构(例如,gpu(115)是否是视频卡、主板或者soc的一部分),cpu存储器可以完全与gpu存储器分离,或者cpu存储器和gpu存储器可以至少部分地是共享存储器或者来自相同的源(例如,ram)。存储器(120、125)存储以适合于由(多个)处理单元执行的计算机可执行指令形式的、在全景视频的回放期间实施视图相关操作和/或平板投影之间的重新投影的一个或多个创新的软件(180)。

计算机系统可以具有附加特征。例如,计算机系统(100)包括存储装置(140)、一个或多个输入设备(150)、一个或多个输出设备(160)和一个或多个通信连接(170)。诸如总线、控制器或者网络的互连机制(未示出)将计算机系统(100)的组件互相连接。通常,操作系统(“cs”)软件(未示出)提供用于在计算机系统(100)中执行的其他软件的操作环境和计算机系统(100)的组件的协调活动。

有形存储装置(140)可以是可移除的或者不可移除的,并且包括磁存储介质(诸如,磁盘、磁带或者录像带)、光存储介质(诸如,cd-rom或者dvd)、或者可以用于存储信息并且可以在计算机系统(100)内被访问的任何其他介质。存储装置(140)可以存储用于实施在全景视频的回放期间的视图相关操作和/或在平板投影之间的重新投影的一个或者多个创新的软件(180)的指令。

(多个)输入设备(150)可以是触摸输入设备,诸如,键盘、鼠标、触控笔或者轨迹球、语音输入设备、扫描设备、或者将输入提供给计算机系统(100)的另一设备。对于视频,(多个)输入设备(150)可以是相机、视频卡、屏幕捕获模块、电视调频卡或者接受以模拟或数字形式的视频输入的相似设备、或者将视频输入读入计算机系统(100)中的cd-rom或者cd-rw。(多个)输出设备(160)可以是头戴式显示器、计算机监视器、其他显示设备、打印机、扬声器、cd写录机或者提供来自计算机系统(100)的输出的另一设备。

(多个)通信连接(170)实现通过通信介质到另一计算实体的通信。通信介质递送信息,诸如,计算机可执行指令、音频或视频输入或输出、或者经调制的数据信号中的其他数据。经调制的数据信号是使其特征中的一个或多个以为了将信息编码在信号中的这样的方式而被设置或改变的信号。作为示例而非限制,通信介质可以使用电学、光学、rf或者其他载波。

本创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可以在计算环境内被访问的任何可用有形介质。作为示例而非限制,对于计算机系统(100),计算机可读介质包括存储器(120、125)、存储装置(140)以及其组合。如本文所使用的,术语计算机可读介质不包括暂态信号或者传播的载波。

本创新可以在计算机可执行指令的一般上下文中描述,计算机可执行指令诸如被包括在程序模块中的、在目标的真实或虚拟处理器上的计算机系统中被执行的那些计算机可执行指令。通常,程序模块包括例程、程序、库、对象、类、组件、数据结构等,它们执行特定任务或实施特定抽象数据类型。如各种实施例中所需的,程序模块的功能可以被组合或在程序模块之间被分离。用于程序模块的计算机可执行指令可以在本地或分布式计算机系统中执行。

术语“系统”和“设备”在本文中可替换地被使用。除非上下文另外清楚地指出,否则没有术语暗示对计算机系统或者计算机设备的类型的限制。通常地,计算机系统或者计算机设备可以是本地的或者分布式的,并且可以包括具有实施本文所描述的功能的软件的专用硬件和/或通用硬件的任何组合。

为呈现起见,具体实施方式使用了如“确定”、“选择”和“接收”等术语来描述计算机系统中的计算机操作。这些术语是针对由计算机执行的操作的高级别抽象,且不应与由人类执行的动作相混淆。对应于这些术语的实际的计算机操作取决于实施方式而不同。

ii.示例网络环境

图2a和图2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201、202)。编码器(220)和解码器(270)通过使用适当的通信协议的网络(250)连接。网络(250)可以包括互联网或者其他计算机网络。

在图2a所示的网络环境(201)中,每个实时通信(“rtc”)工具(210)包括编码器(220)和解码器(270)以进行双向通信。给定的编码器(220)可以产生符合h.265/hevc标准、iso/iec14496-10标准(也被称为h.264/avc)、其他标准、或者诸如vp8或者vp9等专有格式、或者其变型或者扩展的输出,其中对应的解码器(270)接受和解码来自编码器(220)的编码数据。双向通信可以是视频会议、视频电话呼叫或者其他两方或者多方通信场景的一部分。虽然图2a中的网络环境(201)包括两个rtc工具(210),但是网络环境(201)也可以包括参与多方通信的三个或者三个以上的rtc工具(210)

rtc工具(210)管理编码器(220)进行的编码并且还管理解码器(270)进行的解码。图6和图10示出了可以被包括在rtc工具(210)中的示例视频回放系统(600、1000)。备选地,rtc工具(210)使用另外的视频回放系统。

在图2b中的网络环境(202)中,编码工具(212)包括编码器(220),编码器(220)编码视频以传送至包括解码器(270)的多个回放工具(214)。单向通信可以针对直播视频流、视频监控系统、web相机监视系统、远程桌面会议演示或共享、无线屏幕投影、云计算或游戏、或者其中视频被编码并且从一个位置被发送到一个或多个其他位置的其他场景而被提供。虽然图2b中的网络环境(202)包括两个回放工具(214),但是网络环境(202)可以包括更多或者更少的回放工具(214)。通常地,回放工具(214)可以与编码工具(212)进行通信以确定回放工具(214)要接收的视频流。回放工具(214)接收流,在适当的时段内缓冲接收到的编码数据,并且开始解码和回放。

编码工具(212)可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。回放工具(214)可以包括用于管理与编码工具(212)的连接的客户端侧控制器逻辑。图6和图10示出了可以被包括在回放工具(214)中的示例视频回放系统(600、1000)。备选地,回放工具(214)使用另外的视频回放系统。

备选地,web服务器或者其他媒体服务器可以存储编码视频以传送至包括解码器(270)的一个或多个回放工具(214)。例如,编码视频可以针对点播视频流、广播或者其中编码视频从一个位置被发送到一个或多个其他位置的另外的场景而被提供。回放工具(214)可以与媒体服务器进行通信以确定回放工具(214)要接收的视频流。媒体服务器可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。回放工具(214)接收流,在适当的时段内缓冲接收到的编码数据,并且开始解码和回放。

iii.针对全景视频图片的示例投影

全景视频(有时被称为360度视频、沉浸式视频或者球面视频)是在中心位置周围的多个方向上的视图被同时记录的视频。全景视频图片是在给定时间被记录的在多个方向上的视图的表示。全景视频图片可以包括在中心位置的每个方向或者大体上每个方向上的图像内容。更常见地,全景视频图片包括在中心位置周围的360度球面中的每个方向上的图像内容,其至少包括中心位置上方的一些图像内容并且至少包括中心视图/相机位置下方的一些图像内容。

全景视频图片包括采样值,该采样值表示图片的位置处的颜色。根据图片如何被投影,图片的采样值可以具有各种属性。通常地,采样值可以每个采样值具有8比特、每个采样值具有10比特、每个采样值具有12比特或者每个采样值具有一些其他数目的比特。采样值的动态范围可以是标准动态范围(例如,0至100尼特)、高动态范围(例如,0尼特至1000尼特、0尼特至1500尼特、0尼特至4000尼特)或者一些其他动态范围。关于色域,采样值可以具有窄色域(对于标准动态范围视频是常见的)或者宽色域(对于高动态范围视频是常见的),宽色域可以潜在地表示更饱和或者更鲜艳的颜色。对于直线投影,全景视频图片的空间分辨率可以是2160×1080采样值、4320×2160采样值、7680×3840采样值、8640×4320采样值或者每个图片一些其他数目的采样值。通常,全景视频图片的空间分辨率非常高(例如,8k或者更高),以便在图片内的较小视图被渲染时提供足够的空间分辨率。通常地,像素是图片中的位置的一个或多个并置采样值的集合,该集合可以针对不同的色度采样格式以不同的方式被布置。对于球面投影,空间分辨率可以变化。

通常,在直线投影(例如,等量矩形投影)中进行编码之前,将图片的采样值转换为诸如yuv的颜色空间,其中亮度(y)分量的采样值表示亮度或者强度值,并且色度(u、v)分量的采样值表示色差值。色差值(以及yuv颜色空间与诸如rgb等另一颜色空间之间的转换操作)的精确定义取决于实施方式。通常地,如本文所使用的,术语yuv指示具有亮度(或者照度)分量和一个或多个色度(或者彩度)分量的任何颜色空间,包括y’uv、yiq、y’iq和ydbdr以及诸如ycbcr和ycocg等变型。色度采样值可以被子采样为较低色度采样率(例如,对于yuv4:2:0格式)以减小色度采样值的空间分辨率,或者色度采样值可以具有与亮度采样值相同的分辨率(例如,对于yuv4:4:4格式)。在解码之后,直线投影中的采样值可以被转换为另一颜色空间,诸如,rgb颜色空间。全景视频图片的球面投影或者屏幕投影中的采样值可以在rgb颜色空间或者其他颜色空间中。

全景视频图片的图像内容可以以各种方式来组织。图3a示出了全景视频图片的球面投影(301)。在球面投影(301)中,采样值被映射到距中心视图/相机位置相等距离的位置。采样值可以在rgb颜色空间或者接近用于渲染的最终颜色空间的其他颜色空间中。球面投影(301)提供概念上简单的方式来表示全景视频图片的采样值,并且对于一些建模和渲染操作可以是有用的。对于其他处理阶段(例如,存储、压缩、解压缩),球面投影(301)可能不如其他类型的投影一样高效。

图3b示出了全景视频图片的等量矩形投影(302)。等量矩形投影(302)是用于存储、压缩和解压缩全景视频图片的采样值的有用的表示。特别地,等量矩形投影(302)的采样值可以用传统视频编码/解码工具来处理,该传统视频编码/解码工具处理矩形图片中的采样值的块。等量矩形投影(302)通过沿水平轴从中心视图/相机位置向侧面旋转以360度描绘图像内容;其通过沿垂直轴从中心视图/相机位置向上或者向下旋转以180度描绘图像内容。在等量矩形投影(302)中,朝向图片顶部的内容和朝向图片底部的内容被水平拉伸,并且处于顶部与底部之间的内容被水平挤压。除了导致可见的失真(其在等量矩形投影(302)未被直接渲染以进行显示的情况下并不是问题)之外,等量矩形投影(302)还使用额外的采样值来表示朝向图片顶部的内容和朝向图片底部的内容。与等量矩形投影(302)相关联的元数据可以指示等量矩形投影(302)的分辨率以及在等量矩形投影(302)的一个或多个位置中的每个位置处的视图方向(例如,在等量矩形投影(302)的中心处的视图方向、在沿等量矩形投影(302)的边缘的垂直轴的中点处的视图方向)。或者,可以定义等量矩形投影(302)的位置的默认视图方向。例如,等量矩形投影(302)的中心被定义为具有零度平移和零度间距的视图方向。

图3c示出了全景视频图片的立方图投影(303)。如同等量矩形投影(302),立方图投影(303)是用于存储、压缩和解压缩全景视频图片的采样值的有用的表示,因为立方图投影(303)的面可以“被展开”和/或分成单独的片段以进行这种操作。在立方图投影(303)中,朝向立方体的面的边缘的内容被水平地和/或垂直地拉伸,并且朝向面的中间的内容被水平地和/或垂直地挤压。通常地,这种拉伸的程度小于等量矩形投影(302)的顶部和底部处的拉伸程度,并且立方图投影(303)可以使用较少的额外采样值来表示经拉伸的内容。与立方图投影(303)相关联的元数据可以指示立方图投影(303)的分辨率以及在立方图投影(303)的一个或多个位置中的每个位置处的视图方向。

在回放期间,重建全景视频图片。至少在概念上,图片在该阶段可以用球面投影来表示。通常,观看者可以控制相对于球面投影的中心视图/相机位置的视图方向,潜在地改变全景视频的哪个片段被观看。例如,除了以角度或弧度指定针对视图方向的从侧面到侧面的航向(即,偏航或者平移)之外,观看者还可以以角度或弧度指定针对视图方向的向上或者向下的倾斜(即,间距或者倾角)以及甚至以角度或弧度指定针对视图方向的视图的旋转(即,滚动)。备选地,视图方向可以通过一些其他方式来参数化(例如,作为使用欧拉角度或者四元数单元来指定的与航向、间距和滚动值相对应的三维空间旋转的仿射变换系数的矩阵)。观看者可能还能够放大或者缩小,这有效地改变全景视频在被渲染时的视场。视场可以以角度(例如,对于普通视图以90度、对于宽视图以120度)或弧度来指定。当全景视频视图被渲染以进行显示时,全景视频的被观看的片段可以被投影到平板图像,这被称为屏幕投影。

图4示出了全景视频图片的视图的屏幕投影的示例。图片的等量矩形投影(401)例如通过视频解码操作和颜色转换操作被重建。全景视频图片的采样值被映射到球面投影(403)。实质上,采样值被投影到球面投影(403)的球面的“内部”,如从球面的中心处的视图/相机位置的视角所观看到的。球面投影(403)中的位置被映射到等量矩形投影(401)中的对应位置。如果等量矩形投影(401)中的对应位置处于或者接近整数(全像素)偏移,则来自对应位置的采样值被分配给球面投影(403)中的位置。否则,采样值可以通过等量矩形投影(401)中的附近位置处的采样值之间的插值来计算(例如,使用双线性插值),并且(经插值的)采样值被分配给球面投影(403)中的位置。

球面投影(403)中的视图片段(410)基于从中心视图/相机位置的视图方向和视场而被找出。视图片段(410)被投影到屏幕投影(420)以进行渲染。例如,应用透视变换以将采样值从球面投影(403)的采样值分配给屏幕投影(420)的对应位置。对于屏幕投影(420)的每个位置,从球面投影(403)或者从球面投影(403)的采样值之间的插值直接分配采样值。因此,屏幕投影(420)包括来自球面投影(403)的采样值并且通过扩展包括来自等量矩形投影(401)的相关部分的采样值。

iv.标识输入投影中的片段的示例

当应用提供视图方向和视场(如果未被预先定义)以渲染全景视频图片的视图时,应用指定要被渲染的视图片段。例如,应用将对视图方向的指示(并且可能是对视场的指示)提供给全景视频回放系统的模块。视图方向可以被指定为(1)以角度或弧度表示的、从中心视图/相机位置从侧面到侧面的航向(即,偏航或者平移)和(2)以角度或弧度表示的、从视图/相机位置向上或向下的倾斜(即,间距或者倾角)。视图方向还可以包括(3)以角度或弧度表示的、从视图/相机位置的视图的旋转(即,滚动)。或者,视图方向可以通过一些其他方式来参数化(例如,指定空间旋转的仿射变换系数的矩阵)。视场可以以角度(例如,对于普通视图以90度、对于宽视图以120度)或弧度来指定。备选地,不同于直接提供对视图方向(并且有可能是对视场)的指示,应用可以指定用于指示视图方向(并且有可能是视场)的源,在这种情况下,所指定的源在渲染期间提供指示。在任何情况下,全景视频回放系统的模块找出全景视频图片的球面投影的适当的视图片段。

视图片段通常包括全景视频图片的总体内容的一小部分。为了在诸如解码和颜色转换等操作期间简化处理和节省资源,全景视频回放系统可以在输入投影中标识图片的与视图片段相对应的片段,然后使用该信息来限制哪些操作在重建全景视频图片的输入投影时被执行。特别地,全景视频回放系统可以将操作限于输入投影中经标识的片段(以及可能是在输入投影中经标识的片段周围的邻近区域)。

图5a示出了标识全景视频图片的输入等量矩形投影(520)的与球面投影(510)的第一视图片段(511)相对应的片段的示例。全景视频回放系统基于视图方向和视场找出球面投影(510)的第一视图片段(511)。基于第一视图片段(511),全景视频回放系统标识输入等量矩形投影(520)中的片段。具体地,全景视频回放系统标识输入等量矩形投影(520)中的图片的与球面投影(510)的第一视图片段(511)相对应的部分(521)。根据球面投影中的视图片段的位置,由于在进一步远离中间水平线的位置处的等量矩形投影中的拉伸和在更接近中间水平线的位置处的等量矩形投影中的挤压,所以等量矩形投影中的对应部分可能被拉伸和/或挤压。在图5a中,对应部分(521)在对应部分(521)的顶部被拉伸并且朝向对应部分(521)的底部被挤压。全景视频回放系统在等量矩形投影(520)中的对应部分(521)周围设置矩形边界框(524)。由边界框(524)限定的经标识的片段可以用于在重建输入等量矩形投影(520)时限制诸如颜色转换操作和解码操作等操作。

因此,包括了针对视图方向和视场的等量矩形投影(520)的对应部分(521)的经标识的片段包括在对应部分(521)周围的缓冲区域。以这种方式,经标识的片段可以与用于重建过程中的不同操作的采样值组(例如,块、片、图块)的边界一致。缓冲区域还给出了用于移动的一些空间,这允许了在视图方向逐渐改变的情况下的快速反馈并且还提供对可以用于供之后的解码操作参考的内容的重建。同样,如果应用的视图方向是(例如,基于观看者的视图方向的变化速率或者其他模式的)预测视图方向,则缓冲区域提供等量矩形投影(520)的“额外的”重建内容,以用于预测视图方向与之后由观看者指定的实际视图方向之间的校正。

图5b示出了标识全景视频图片的输入等量矩形投影(520)的与球面投影(510)的第二不同视图片段(512)相对应的片段的示例。全景视频回放系统基于视图方向和视场找出球面投影(510)的第二视图片段(512)。基于第二视图片段(512),全景视频回放系统标识输入等量矩形投影(520)中的不同片段。具体地,全景视频回放系统标识输入等量矩形投影(520)中的图片的与球面投影(510)的第二视图片段(512)相对应的两个部分(522a、522b)。对应部分(522a、522b)“围绕”等量矩形投影(520)中的图片。在图5b中,对应部分(522a、522b)朝向对应部分(522a、522b)的顶部被大大地拉伸。全景视频回放系统在等量矩形投影(520)中的对应部分(522a、522b)周围设置矩形边界框(525a、525b)。由边界框(525a、525b)限定的经标识的片段可以用于在重建输入等量矩形投影(520)时限制诸如颜色转换操作和解码操作等操作。

图5a和图5b描绘了输入等量矩形投影。备选地,输入投影可以是立方图投影。在立方图投影中,根据球面投影中的视图片段的位置,输入立方图投影的(在一个或多个边界框内)包括对应部分的片段可以在立方体的单个面、跨越边缘的两个面、在拐角的三个面或者如果经标识的片段足够大则甚至在更多的面中被找出。

v.用于全景视频的渲染的示例架构。

当全景视频回放系统接收到全景视频时,全景视频回放系统渲染全景视频的视图。本节描述了用于回放全景视频的示例架构的各个方面,包括使用视图相关操作和平板投影之间的重新投影。本节中描述的示例架构支持平台渲染模式或者应用渲染模式下的回放。

在一些示例实施方式中,在平台渲染模式下,全景视频回放系统的模块将屏幕投影提供给应用(例如,由用于渲染的应用指示的缓冲器)。应用可以是自身不对全景视频执行渲染操作的轻量级应用,这简化了应用的实施。例如,应用是新闻阅读器、房地产网站列举应用、或者不专门呈现全景视频的其他应用。相反,应用提供视图方向并且还可以提供视场,并且“平台”(全景视频回放系统的系统提供的模块)执行操作以生成屏幕投影。备选地,应用可以设置视图方向和视场的源(例如,基于诸如一个或多个加速度计、陀螺仪、倾斜传感器、光学传感器、相机等一个或多个传感器的源、或者用于按键按压、鼠标光标运动、鼠标滚轮运动、远程控制输入、游戏控制器输入、触摸屏输入等的用户输入事件的源),并且平台从该源获得视图方向和视场信息。应用还可以具有用于渲染的开/关控件。在平台渲染模式下,可以使用视图相关操作,但是不使用平板投影之间的重新投影。

在一些示例实施方式中,在应用渲染模式下,全景视频回放系统的模块将平板投影提供给应用。平板投影可以是等量矩形投影或者立方图投影。在应用渲染模式下,应用包括对平板投影的采样值执行附加变换(例如,到球面投影的映射、到屏幕投影的映射)以生成适合于应用的一个或多个屏幕投影的模块,这些屏幕投影给应用更多关于渲染决策的控制。例如,应用是用于全景视频的虚拟现实应用、增强现实应用或者专业媒体应用。在应用渲染模式下,可以使用视图相关操作,并且可以使用平板投影之间的重新投影。应用渲染模式可以被称为帧服务器模式——“平台”(全景视频回放系统的系统提供的模块)提取单独的图片(帧)并且在逐个图片的基础上将图片提供给应用以用于回放。在应用渲染模式下,不同的应用可以使用不同的方法来渲染平板投影。对于移动设备或者计算机监视器,单个屏幕投影可以被渲染。或者,对于头戴式显示器(或者固定在头戴式带中的移动设备),应用可以分别生成针对左眼和右眼的两个屏幕投影。

a.用于全景视频的示例渲染架构

图6示出了支持视图相关操作和重新投影操作的全景视频回放系统(600)的示例架构。除了显示设备(690)和媒体服务器(630)之外,示例架构还包括全景视频回放系统(600),该全景视频回放系统(600)具有视图相关操作控制器(610)、流控制器(620)、输入缓冲器(640)、视频解码器(650)、颜色转换器(660)、映射器(670)和应用(680)。应用(680)可以由第三方提供或者被封装为全景视频回放系统(600)的一部分。应用(680)可以通过应用编程接口(“api”)与全景视频回放系统(600)的其他模块隔开。

在图6中所示的场景中,全景视频回放系统(600)将颜色转换器(660)的操作限于全景视频图片的输入投影的经标识的片段。在其他场景中,除了限制颜色转换器(660)的操作之外,全景视频回放系统(600)还将视频解码器(650)的操作限于全景视频图片的输入投影的经标识的片段。在其他场景中,除了限制视频解码器(650)和颜色转换器(660)的操作之外,全景视频回放系统(600)还指示流控制器(620)将被请求的编码数据限制为全景视频图片的输入投影的经标识的片段的编码数据。这些场景在下面进一步被详述。

显示设备(690)可以是头戴式显示器、计算机监视器、电视屏幕、移动设备屏幕或者其他类型的显示设备。

数据存储库(未示出)可以存储用于全景视频回放系统(600)的各种设置。例如,设置可以包括在安装应用(680)时由应用(680)提供的信息。其他模块可以跨接口与数据存储库交互。

视图相关操作控制器(610)被配置为接收对用于应用(680)的视图方向(682)的指示。在图6中,应用(680)提供对视图方向(682)的指示。例如,视图方向(682)可以被指定为(1)以角度或弧度表示的、从中心视图/相机位置从侧面到侧面的航向(即,偏航或者平移)以及(2)以角度或弧度表示的、从中心视图/相机位置向上或者向下的倾斜(即,间距或者倾角)。视图方向(682)还可以包括(3)以角度或弧度表示的、从视图/相机位置的视图的旋转(即,滚动)。备选地,视图方向(682)可以一些其他方式被参数化(例如,作为使用欧拉角度或者四元数单元来指定的与航向、间距和滚动值相对应的三维空间旋转的仿射变换系数的矩阵)。代替应用(680),另外的源(例如,基于诸如一个或多个加速度计、陀螺仪、倾斜传感器、光学传感器、相机等一个或多个传感器的源、或者用于按键按压、鼠标光标运动、鼠标滚轮运动、远程控制输入、游戏控制器输入、触摸屏输入等的用户输入事件的源)可以提供对视图方向的指示。在一些配置中,视图相关操作控制器(610)还被配置为从应用(680)或者另外的源接收对用于应用(680)的视场(684)的指示。视场可以以角度(例如,对于普通视图以90度、对于宽视图以120度)或弧度来指定。视场(684)可以被定义用于应用(680)或者回放会话。或者,视场(684)可以在回放会话期间动态变化(例如,放大或者缩小)。

视图相关操作控制器(610)进一步被配置为:至少部分地基于视图方向(682),标识输入投影中的全景视频图片的片段。例如,输入投影是等量矩形投影,并且经标识的片段是等量矩形投影的连续部分或者围绕等量矩形投影的边缘的多个非连续部分。备选地,输入投影可以是立方图投影,并且经标识的片段可以是立方图投影的一个或多个面的连续部分或者围绕“被展开”的立方图投影的一个或多个边缘的多个非连续部分。

为了标识输入投影中的全景视频图片的片段,视图相关操作控制器(610)可以被配置为使用视图方向(682)来标识球面投影的视图片段,然后确定输入投影中的全景视频图片的与球面投影中的视图片段相对应的一个或多个部分。例如,给定球面投影的视图片段,视图相关操作控制器(610)可以应用等量矩形到球面投影的逆来标识等量矩形投影中的(多个)对应部分。输入投影中的全景视频图片的(多个)对应部分可以具有不规则的边界。为了解决这种可能性,视图相关操作控制器(610)可以进一步被配置为针对经标识的片段将边界框限定在输入投影中的全景视频图片的(多个)对应部分周围。如果输入投影包括(例如,跨边缘的)多个对应部分,则边界框可以被限定在各个对应部分周围。

当视图相关操作控制器(610)接收到对用于应用(680)的视场(684)的指示时,视图相关操作控制器(610)可以在标识输入投影中的全景视频图片的片段时使用视场(684)。因此,视图相关操作控制器(610)可以被配置为使用视图方向和视场来标识球面投影的视图片段,然后确定输入投影中的全景视频图片的与球面投影中的视图片段相对应的一个或多个部分。视图相关操作控制器可以针对经标识的片段限定边界框(或者多个边界框),该边界框包括在输入投影中的全景视频图片的(多个)对应部分周围的(多个)缓冲区域。

视图相关操作控制器(610)将控制信号(612)传递至全景视频回放系统(600)的其他模块,该控制信号指示输入投影中的全景视频图片的经标识的片段。例如,控制信号指定针对经标识的片段的一个或多个边界框。在图6中,视图相关操作控制器(610)将控制信号(612)传递至颜色转换器(660)。在图6中所示的场景中,视图相关操作控制器(610)被配置为将颜色转换器(660)的操作限于经标识的片段。在(下面所描述的)其他场景中,视图相关操作控制器(610)将控制信号(612)传递至流控制器(620)和/或视频解码器(650),并且那些模块的操作限于经标识的片段。备选地,视图相关操作控制器(610)可以以一些其他方式控制全景视频回放系统(600)的其他模块的操作,以便限制本文所描述的操作。

在图6中,视图相关操作控制器(610)与流控制器(620)、视频解码器(650)和颜色转换器(660)分离。视图相关操作控制器(610)将控制信号(612)发送至流控制器(620)、视频解码器(650)和/或颜色转换器(660),该控制信号指示经标识的片段。虽然在图6中被单独示出,但是视图相关操作控制器(610)可以与映射器(670)(即,映射器(670)的一部分)组合。视图相关操作控制器(610)还可以是流控制器(620)、视频解码器(650)和/或颜色转换器(660)的一部分。

流控制器(620)被配置为(例如,在由视图相关操作控制器(610)或以其他方式如此指示时)请求针对输入投影中的全景视频图片的至少一个片段的编码数据。流控制器(620)可以请求针对全景视频图片的全部的编码数据。或者,流控制器(620)可以请求仅针对全景视频图片的经标识的片段的编码数据。根据场景,流控制器(620)可以将对编码数据的请求发送至媒体服务器(630)或者媒体存储库(631)。在图6中所示的场景中,回放控制器(620)将对针对全景视频图片的全部的编码数据的请求(622)发送至媒体服务器(630)。

因此,流控制器(620)可以限制输入投影中编码数据被请求的全景视频图片的区域(例如,片、图块)。当编码数据针对特定空间区域被分区时,流控制器(620)可以请求覆盖经标识的片段的(多个)边界框的区域的编码数据,并且不请求输入投影中的全景视频图片的其他片段的编码数据。

媒体服务器(630)可以是通过网络连接的web服务器或者其他服务器,该服务器存储针对视频的编码数据并且将其流式传输至客户端系统以进行回放。媒体服务器(630)可以存储针对全景视频的编码数据。编码数据可以被分区成针对图片的不同区域(例如,片、图块)的编码数据。在图6中所示的场景中,媒体服务器(630)将针对整个全景视频图片的编码数据(632)流式传输至全景视频回放系统(600)。在其他场景中,媒体服务器(630)可以将针对全景视频图片的经标识的片段的编码数据(632)流式传输至全景视频回放系统(600)(例如,针对覆盖经标识的片段的空间区域的编码数据)。

如果未使用媒体服务器(630),则全景视频回放系统(600)可以从媒体存储库(631)取回编码数据。媒体存储库(631)可以是在本地连接至全景视频回放系统(600)的磁盘、光存储介质、非易失性存储器或者其他存储装置或者存储器,它们存储针对全景视频的编码数据并且将其提供给全景视频回放系统(600)以进行回放。编码数据可以被分区成针对图片的不同区域(例如,片、图块)的编码数据。根据场景,媒体存储库(631)可以提供针对输入投影中的全景视频图片的全部或者仅经标识的片段的编码数据。

输入缓冲器(640)被配置为存储编码数据。输入缓冲器(640)将编码数据(例如,针对全景视频图片的全部或者经标识的片段的编码数据(632))提供给视频解码器(650)。视频解码器(650)被配置为对编码数据中的至少一些编码数据进行解码,从而产生输入投影中的全景视频图片的至少一个片段的采样值(652)。根据编码数据的实施方式和格式,视频解码器(650)可以以与h.265/hevc标准、iso/iec14496-10标准(也被称为h.264/avc)、另外的标准、或者诸如vp8或者vp9等专有格式、或者其变型或者扩展一致的方式来解码编码数据。例如,输入投影中的全景视频图片的采样值(652)是yuv颜色空间中具有4:2:0的色度采样率的8比特采样值或者10比特采样值。备选地,由视频解码器(650)输出的采样值是另外的格式。

在一些场景中,视频解码器(650)将解码操作限于输入投影中的全景视频图片的经标识的片段。特别地,视频解码器(650)将解码操作限于经标识的片段的(多个)边界框。(多个)边界框可以与(例如,针对图块、针对片的)编码数据的空间区域的边界对齐,或者(多个)边界框可以适于在(例如,针对图块、针对片的)编码数据的区域的一些集合内。

在一些情况下,即使在提供了经标识的片段以进行解码时,如果图片将用于供之后的解码操作参考,则视频解码器(650)仍然可能解码整个图片。视频解码器(650)可以基于比特流中的语法元素(例如,图片的“用于参考”标记)来进行该确定。或者,视频解码器(650)可以基于规则(例如,b图片从未被编码器或者在特定编码会话期间用作参考图片,但是i图片和p图片可能被用作参考图片)进行该确定。因此,视频解码器(650)可以被配置为确定输入投影中的全景视频图片是否在按照解码顺序对任何后续全景视频图片进行解码期间被用作参考,并且如果是,则对输入投影中的全景视频图片的全部的编码数据进行解码,从而产生输入投影中的全景视频图片的全部的采样值。如果图片未被用于参考,则视频解码器(650)还可以被配置为仅对针对经标识的片段的编码数据进行解码,从而仅产生输入投影中的全景视频图片的经标识的片段的采样值。备选地,除了解码(多个)边界框内的任何内容之外,视频解码器(650)还可以解码图片区域(例如,片、图块),该区域被指示为用于供之后的运动补偿参考(例如,根据元数据、根据对后续图片的语法元素的分析)。

颜色转换器(660)被配置为将由视频解码器产生的采样值(652)中的至少一些采样值从第一颜色空间转换到第二颜色空间。例如,第一颜色空间是yuv颜色空间,并且第二颜色空间是rgb颜色空间。在颜色空间转换之前或者作为颜色空间转换的一部分,颜色转换器(660)可以执行色度采样率上采样以将色度采样值恢复为具有与解码视频中的亮度采样值相同的分辨率。

映射器(670)被配置为将经颜色转换的采样值(662)中的至少一些采样值映射到输出投影。在平台渲染模式下,为了确定屏幕投影,映射器(670)可以执行如参考图4所示出和描述的操作。在一些示例实施方式中,映射器(670)可以跳过中间球面投影并且从输入投影的采样值直接确定屏幕投影的适当的采样值。在应用渲染模式下,映射器(670)可以使用经标识的片段的经颜色转换的采样值(662)或者来自视频解码器(650)的采样值(652)来确定在下一节中描述的输出平板投影。

映射器(670)产生包括采样值的输出投影。(图6示出了产生输出投影中的经颜色转换的采样值(672)的映射器(670)。)对于平台渲染模式,输出投影是屏幕投影。对于应用渲染模式,输出投影是输出平板投影(例如,等量矩形投影、立方图投影)。输出投影可以通过各种方式被提供给应用(680)。例如,输出投影被提供在由应用(680)指定的缓冲器中。

总之,对于平台渲染模式,输入投影可以是等量矩形投影或者立方图投影,并且输出投影是用于应用的屏幕投影(686)。映射器(670)被配置为针对屏幕投影(686)中的位置确定输入投影中的对应位置。屏幕投影(686)中的位置和输入投影中的对应位置与中间球面投影的视图片段中的位置相关联。中间球面投影的视图片段由视图方向(和视场)指示。映射器(670)还被配置为:基于在输入投影中的对应位置处的经颜色转换的采样值(662)中的至少一些采样值,将采样值分别分配给屏幕投影(686)中的位置,并且将屏幕投影(686)提供给应用(680)。为了在无需中间投影至球面投影的情况下将采样值分配给屏幕投影(686)中的位置,映射器(670)可以被配置为:分别选择在输入投影中的对应位置处的经颜色转换的采样值(662)中的至少一些采样值之中的采样值,和/或在这些采样值之间插值(例如,使用双线性插值)。备选地,为了确定对应位置并且分配采样值,映射器(670)可以被配置为将来自输入投影的经颜色转换的采样值(662)中的至少一些采样值投影到中间球面投影的视图片段,并且然后将经颜色转换的采样值中的至少一些采样值从中间球面投影的视图片段投影到屏幕投影(686)。应用(680)将屏幕投影(686)提供给显示设备(690)。

对于应用渲染模式,输入投影是输入平板投影,并且输出投影是输出平板投影。为了产生输出平板投影,映射器被配置为将输入平板投影中的至少一些经颜色转换的采样值(662)或者采样值(652)朝向视图方向的中心位置重新投影。应用(680)然后将输出投影映射到一个或多个屏幕投影(686),该一个或多个屏幕投影(686)被提供给显示设备(690)。节vi详述了可以被执行以用于应用渲染模式下的平板投影之间的重新投影的操作。

在图6中所示的场景中,视图相关操作控制器(610)被配置为将颜色转换器(660)的操作限于经标识的片段。在该场景中,视图相关操作控制器(610)不被配置为将流控制器(620)或者视频解码器(650)的操作限于经标识的片段。因此,在该场景中,流控制器(620)被配置为请求针对输入投影中的整个全景视频图片的编码数据。视频解码器(650)被配置为对输入投影中的整个全景视频图片的编码数据进行解码,从而产生输入投影中的全景视频图片的全部的采样值。颜色转换器(660)被配置为仅针对经标识的片段但不针对图片的其他片段将采样值从第一颜色空间转换到第二颜色空间。

在另一场景中,除了限制颜色转换器(660)的操作之外,视图相关操作控制器(610)还被配置为将视频解码器(650)(但不是流控制器(620))的操作限于经标识的片段。在该场景中,流控制器(620)被配置为请求针对输入投影中的整个全景视频图片的编码数据。视频解码器(650)被配置为仅针对输入投影中的经标识的片段(并且不针对输入投影中的其他片段)选择性地解码编码数据。颜色转换器(660)被配置为仅针对经标识的片段(并且不针对输入投影中的其他片段)将采样值从第一颜色空间转换到第二颜色空间。

在又一场景中,除了限制颜色转换器(660)的操作之外,视图相关操作控制器(610)还被配置为将视频解码器(650)和流控制器(620)的操作限于经标识的片段。在该场景中,流控制器(620)被配置为仅针对经标识的片段(并且不针对输入投影的其他片段)请求编码数据。视频解码器(650)被配置为仅针对经标识的片段(并且不针对输入投影的其他片段)选择性地解码编码数据。颜色转换器(660)被配置为仅针对经标识的片段(并且不针对输入投影的其他片段)将采样值从第一颜色空间转换到第二颜色空间。

全景视频回放系统(600)还可以选择性地移除对流控制器(620)、视频解码器(650)和颜色转换器(660)的操作的任何限制。例如,如果全景视频的回放被暂停,则流控制器(620)可以请求针对整个输入投影(或者被部分解码的输入投影的其余部分)的编码数据,视频解码器(650)可以解码整个输入投影(或者被部分解码的输入投影的其余部分),并且颜色转换器(660)可以对整个输入投影(或者被部分重建的输入投影的其余部分)执行颜色转换操作。以这种方式,一旦观看者选择通过全景视频的“暂停”环境导航,整个输入投影就可用于渲染。

根据所需的实施方式和处理类型,全景视频回放系统(600)的模块可以被添加、省略、分成多个模块、与其他模块组合和/或用类似的模块代替。在备选实施例中,具有不同的模块和/或模块的其他配置的视频回放系统执行所描述的技术中的一种或者多种技术。全景视频回放系统的特定实施例通常使用全景视频回放系统(600)的变型或者补充版本。全景视频回放系统(600)内的模块之间的所示的关系指示全景视频回放系统(600)中的一般的信息流;为了简单起见,其他关系并未被示出。通常地,全景视频回放系统(600)的给定模块可以由cpu上的软件可执行文件,由软件控制的专用硬件(例如,gpu或者用于视频加速的其他图形硬件)或者由(例如,在asic中的)专用硬件实施。具体地,在一些示例实施方式中,颜色转换操作(包括限于输入投影中的全景视频图片的经标识的片段的视图相关操作)用在gpu上可执行的着色指令来实施,并且重新投影操作用在gpu上可执行的着色指令来实施。

b.用于限制颜色转换的场景中的示例操作

图7示出了用于具有视图相关操作的全景视频回放的一般技术(700)。诸如图6所示的全景视频回放系统(600)或者其他全景视频回放系统的全景视频回放系统执行技术(700)。

全景视频回放系统接收对用于应用的视图方向的指示(710)。例如,对视图方向的指示是针对视图方向的航向、间距和滚动值的集合。或者,对视图方向的指示是指定针对视图方向的空间旋转的仿射变换系数的集合。或者,视图方向以一些其他方式被指定。全景视频回放系统可以从应用或者从应用所指定的源接收对视图方向的指示。全景视频回放系统还可以接收对用于应用的视场的指示。

至少部分地基于视图方向,全景视频回放系统标识输入投影中的全景视频图片的片段(720)。例如,输入投影是等量矩形投影或者立方图投影。

全景视频回放系统接收针对输入投影中的全景视频图片的至少一个片段的编码数据(730)并且对编码数据中的至少一些编码数据(740)进行解码。这会产生输入投影中的全景视频图片的至少一个片段的采样值。如上所述,在其他场景中,解码(740)的操作可能限于经标识的片段。在另一些场景中,全景视频回放系统进一步将被请求的(并且因此被接收到的)编码数据限制为针对经标识的片段的编码数据。

全景视频回放系统将采样值中的至少一些采样值从第一颜色空间转换到第二颜色空间(750)。转换的操作(即,颜色转换操作)限于经标识的片段。

全景视频回放系统将经颜色转换的采样值中的至少一些采样值映射到输出投影(760)。例如,输出投影是(用于平台渲染模式的)屏幕投影或(用于应用渲染模式的)输出平板投影,诸如,输出等量矩形投影或者立方图投影。

全景视频回放系统可以在逐个图片的基础上重复图7所示的技术(700)。

vi.用于应用渲染模式的示例重新投影操作

在应用渲染模式下,全景视频回放系统的系统提供的模块(即,“平台”的部分)将全景视频图片的平板投影提供给应用。平板投影可以是等量矩形投影或者立方图投影。应用包括映射器,该映射器对平板投影的采样值执行附加变换(例如,到球面投影的映射、到屏幕投影的映射),以便于生成适合于应用的一个或多个屏幕投影。例如,应用是用于全景视频的虚拟现实应用、增强现实应用或者专用媒体应用。

通常,应用(至少在理论上)可以从作为输入的全帧平板投影生成屏幕投影。即应用可以接受针对整个图片的输入平板投影。然而,对于能够在不太强大的硬件上运行的应用,平台可以提供输入平板投影的重新投影版本,其中无关的细节被裁剪掉。或者,平板投影的重新投影版本可以具有与原始平板投影相同的大小,但是包括附加采样值以用于相关部分的更好的分辨率。因此,在一些示例实施方式中,重新投影可以改进应用性能,因为应用接收到的新的平板投影(1)可能更小(由于裁剪);和/或(2)可能包括图片的相关部分的更多采样值,这可以通过应用进行更准确的屏幕投影。另外,图片的相关部分在新的平板投影中居中,这可以简化应用的实施方式。新的平板投影还可以具有从图片到图片的相同的大小,这可以进一步简化应用的实施方式。最后,如果视图相关操作用于应用渲染模式,则重新投影可以简化与视图相关操作的集成。

a.平板投影之间的重新投影的示例

图8图示了在应用渲染模式下针对全景视频图片将输入平板投影的采样值重新投影到输出平板投影的概念。在图8的示例中,对于全景视频图片的球面投影的视图片段,对应的片段已经在输入等量矩形投影(810)中被标识。在输入等量矩形投影(810)中,经标识的片段包括在对应部分(821a、821b)周围的边界框(824a、824b)。x指示针对输入等量矩形投影(810)中的经标识的片段的视图方向的中心。

输入等量矩形投影(810)被映射到球面投影(850),该球面投影(850)包括与输入等量矩形投影(810)的经标识的片段相对应的视图片段(851)。对于中心位置(x),坐标(例如,笛卡尔x、y、z坐标或者极坐标)在球面投影(850)中被找出。

在图8中,视图片段(851)被定位为朝向球面投影(850)的顶部,这与输入等量矩形投影(810)中的对应部分(821a、821b)的所示的广泛水平拉伸一致。由于水平拉伸,输入等量矩形投影(810)中的经标识的片段包括较大数目的采样值。同样,经标识的片段被分成两个边界框。

球面投影(850)被旋转,使得视图方向的中心位置(x)与输出平板投影的中心位置相对应。即,球面投影被旋转,使得中心位置(x)被旋转到球面投影(850)中的诸如(0,0,0)的默认位置处的新的笛卡尔x'、y'、z'坐标,或者被旋转到球面投影(850)中的诸如0度的航向和0度的间距的默认位置处的新的极坐标

在旋转之后,球面投影(850)被映射到整个图片的中间等量矩形投影(870)。在中间等量矩形投影(870)中,经标识的片段被居中。即,视图方向的中心位置(x)在中间等量矩形投影(870)的中间。旋转之后,经标识的片段包括在视图片段(851)的对应部分(871)周围的边界框(874)。此时,中间等量矩形投影(870)可以被提供给应用以渲染一个或多个屏幕投影。

与输入等量矩形投影(810)中的经标识的片段相比较,中间等量矩形投影(870)中的经标识的片段包括较少的采样值。另外,采样值被装入单个边界框。如果(例如,裁剪后的)中间等量矩形投影(870)的经标识的片段被提供给应用,则这会减少应用的资源需求。

可选地,中间等量矩形投影(870)可以被缩放(如图8所示)和/或裁剪(图8中未示出)以产生输出等量矩形投影(880),该输出等量矩形投影(880)可以被提供给应用。在输出等量矩形投影(880)中,经标识的片段包括在视图片段(851)的经缩放的对应部分(881)周围的边界框(884)。

与中间等量矩形投影(870)中的经标识的片段相比较,输出等量矩形投影(880)中的经标识的片段包括更多的采样值。虽然在输出等量矩形投影(880)被提供给应用时这可能增加应用的资源需求,但是应用被提供有更多的采样值以进行渲染。

因此,在重新投影之后,视图方向是等量矩形投影的中心。只要视场不改变,边界矩形的大小就可以不变。或者,在缩放的情况下,即使视场因为放大或者缩小而改变,边界矩形的大小也可以保持不变。

实际上,可以跳过到球面投影的中间映射和旋转。例如,对于输出平板投影的位置,映射器确定输入平板投影中的对应位置,并且(通过复制或者插值)分配来自输入平板投影中的对应位置的采样值。图9a和图9b示出了在没有到球面投影的中间映射的情况下在应用渲染模式下将输入平板投影的采样值重新投影到全景视频图片的输出平板投影的示例。

在图9a中,对于视图方向上的视图片段,输入等量矩形投影(910)包括经标识的片段,其中对应部分(911a、911b)由边界框(914a、914b)包围。示出了视图方向的中心位置(x)。在没有到球面投影的中间映射或球面投影的旋转的情况下,输入等量矩形投影(910)的某些采样值被重新投影到输出等量矩形投影(920)。在输出等量矩形投影(920)中,经标识的片段包括由边界框(924)包围的对应部分(921)。例如,对于输出等量矩形投影(920)中的边界框(924)中的对应位置,输入等量矩形投影(910)中的经标识的片段中的对应位置被确定,并且来自对应位置的采样值(例如,通过取回采样值或者通过插值)被分配。与输入等量矩形投影(910)中的经标识的片段相比较,输出等量矩形投影(920)中的经标识的片段包括较少的采样值并且具有单个边界框。因此,如果输出等量矩形投影(920)的经标识的片段被提供给应用,则重新投影可以减少应用的资源需求。

在图9b中,如同在图9a中一样,对于视图方向上的视图片段,输入等量矩形投影(910)包括经标识的片段,其中对应部分(911a、911b)由边界框(914a、914b)包围。示出了视图方向的中心位置(x)。在没有到球面投影的中间映射或球面投影的旋转的情况下,输入等量矩形投影(910)的某些采样值被重新投影到输出等量矩形投影(930)并且被缩放。在输出等量矩形投影(930)中,经标识的片段包括由边界框(934)包围的经缩放的对应部分(931)。例如,对于输出等量矩形投影(934)中的边界框(930)中的对应位置,输入等量矩形投影(910)中的经标识的片段中的相应位置被确定,并且来自相应位置的采样值(例如,通过取回采样值或者通过插值)被分配。

b.示例重新投影架构

图10示出了在应用渲染模式下操作的全景视频回放系统的示例架构的特征。示例架构可以是参考图6描述的架构的变型,其支持视图相关操作。备选地,图10的示例架构可以用于不支持视图相关操作的系统。

在图10中,全景视频回放系统(1000)包括映射器(1070)。映射器(1070)是系统提供的模块。即,映射器(1070)是支持全景视频的应用渲染的平台的部分。映射器(1070)被配置为将至少一些采样值(例如,由颜色转换器提供的经颜色转换的采样值,或者由解码器提供的采样值)映射到输出平板投影的采样值(1072)。特别地,映射器(1070)被配置为将输入平板投影中的采样值朝向应用(1080)的视图方向(1082)的中心位置重新投影。映射器(1070)可以接受应用(1080)的视图方向(1082)作为输入。

例如,对于输出平板投影中的位置,映射器(1070)被配置为确定输入平板投影中的对应位置。输出平板投影中的位置和输入平板投影中的对应位置与中间球面投影的视图片段中的位置相关联。中间球面投影的视图片段由视图方向(1082)指示。映射器(1070)被配置为基于输入平板投影中的对应位置处的采样值分别将采样值分配给输出平板投影中的位置,并且将输出平板投影提供给应用(1080)。为了在没有到中间球面投影的映射的情况下将采样值分配给输出平板投影中的位置,映射器(1070)可以被配置为分别选择输入平板投影中的对应位置处的采样值和/或在输入平板投影中的对应位置处的采样值之间插值(例如,使用双线性插值)。备选地,为了确定对应位置并且分配采样值,映射器可以被配置为将输入平板投影中的采样值投影到中间球面投影的视图片段上,并且然后将来自中间球面投影的视图片段的采样值投影到输出平板投影。经标识的片段可以被缩放以产生输出平板投影。

全景视频回放系统可以包括颜色转换器,该颜色转换器被配置为将由视频解码器产生的采样值从第一颜色空间转换到第二颜色空间。在这种情况下,映射器(1070)被配置为将经颜色转换的采样值映射到输出平板投影。对于输出平板投影中的位置,映射器(1070)可以被配置为确定输入平板投影中的对应位置。输出平板投影中的位置和输入平板投影中的对应位置与中间球面投影的视图片段中的位置相关联。中间球面投影的视图片段由视图方向(1082)指示。映射器(1070)进一步被配置为基于输入平板投影中的对应位置处的经颜色转换的采样值分别将采样值分配给输出平板投影中的位置,并且将输出平板投影提供给应用(1080)。为了在没有到中间球面投影的映射的情况下将采样值分配给输出平板投影中的位置,映射器(1070)可以被配置为选择输入平板投影中的对应位置处的经颜色转换的采样值和/或在输入平板投影中的对应位置处的经颜色转换的采样值之间插值。备选地,为了确定对应位置并且分配采样值,映射器可以被配置为将来自输入平板投影的经颜色转换的采样值投影到中间球面投影的视图片段上,并且然后将来自中间球面投影的视图片段的经颜色转换的采样值投影到输出平板投影。

映射器(1070)可以被配置为根据应用(1080)的视图方向(1082)标识输入平板投影中的片段。映射器(1070)还可以接受应用(1080)的视场(1084)作为输入。在这种情况系,映射器(1070)可以被配置为根据应用(1080)的视图方向(1082)和视场(1084)来标识输入平板投影中的片段。输入平板投影中的经标识的片段可以是输入平板投影的连续部分或者围绕输入平板投影的边缘的多个非连续部分。

在一些示例实施方式中,映射器(1070)被配置为重新投影输入平板投影中的采样值,使得输出平板投影准确地以视图方向的中心位置为中心。备选地,输出平板投影可以近似地以视图方向的中心位置为中心。输入平板投影和输出平板投影可以具有相同的大小。或者,输入平板投影和输出平板投影可以具有不同的大小。特别地,映射器(1070)可以被配置为缩放输入平板投影的片段以填满输出平板投影,或者至少大体上填满输出平板投影,其中缓冲区域填满剩余边界区域。因此,输出平板投影可以与输入平板投影的一个片段相对应,并且输入平板投影在片段外部的部分可以从输出平板投影中被裁剪掉。

参考图10,全景视频回放系统(1000)还包括应用(1080),该应用(1080)可以由第三方提供。应用(1080)包括第二映射器(1088),该第二映射器(1088)被配置为将来自输出平板投影的采样值(1072)中的至少一些采样值映射到屏幕投影(1086),该屏幕投影(1086)被渲染以在显示设备(1090)上进行显示。

全景视频回放系统(1000)的其他组件可以包括流控制器、输入缓冲器和视频解码器,它们如参考图6所描述的那样操作。在一些示例实施方式中,全景视频回放系统(1000)还包括视图相关操作控制器,该视图相关操作控制器如参考图6所描述的那样操作。

c.用于平板投影之间的重新投影的示例操作

图11示出了在全景视频图片的回放期间在应用渲染模式下将输入平板投影的采样值重新投影到输出平板投影的一般技术(1100)。诸如图10所示的全景视频回放系统(1000)或者其他全景视频回放系统的全景视频回放系统执行技术(1100)。

全景视频回放系统接收对应用的视图方向的指示(1110)。对视图方向的指示可以如参考图6所描述的那样被接收或者以一些其他方式被接收。

全景视频回放系统接收针对全景视频图片在输入平板投影中的至少一个片段的编码数据(1120)。例如,输入平板投影可以是输入等量矩形投影或者输入立方图投影。编码数据可以如参考图6所描述的那样被接收或者以一些其他方式被接收。

全景视频回放系统对编码数据中的至少一些编码数据(1130)进行解码。这会产生输入平板投影中的全景视频图片的至少一个片段的采样值。编码数据可以如参考图6所描述的那样被解码或者以一些其他方式被解码。

全景视频回放系统将来自输入平板投影的采样值中的至少一些采样值映射到输入平板投影(1140)。例如,输出平板投影可以是输出等量矩形投影或者输出立方图投影。作为映射的一部分,全景视频回放系统将输入平板投影的采样值朝向应用的视图方向的中心位置重新投影。输入平板投影的采样值可以如参考图9a、图9b和图12所描述的那样、如参考图8所描述的那样和以一些其他方式被重新投影到输出平板投影。

全景视频回放系统可以在逐个图片的基础上重复图11所示的技术(1100)。

d.用于等量矩形投影之间的重新投影的示例实施方式

在一些示例实施方式中,为了将输入等量矩形投影的相关部分重新投影到输出等量矩形投影,对于输出等量矩形投影的每个位置,标识输入等量矩形投影中的对应位置。然后基于输入等量矩形投影中的对应位置处的采样值或者在输入等量矩形投影中的邻近位置处的采样值之间的插值,将采样值分配给输出等量矩形投影中的位置。

图12示出了输出等量矩形投影(1210),该输出等量矩形投影(1210)具有wo采样值的宽度和ho采样值的高度。输出等量矩形投影(1210)的点用uo,vo标记。为了说明,输出等量矩形投影(1210)中的点uo,vo是视图方向的中心点,但是以同样的方式对输出等量矩形投影(1210)中的其他位置执行重新投影操作。

宽度wo取决于用弧度测量的视场(fov)。例如,宽度wo被设置为:

对于图12所示的示例,高度ho取决于宽度wo。例如,高度ho被设置为:ho=wo/π。

图12还示出了输入等量矩形投影(1290),该输入等量矩形投影(1290)具有wi采样值的宽度和ho采样值的高度。输入等量矩形投影(1290)的尺寸wi和hi可以是2160×1080采样值、4320×2160采样值、7680×3840采样值、8640×4320采样值或者每个图片的一些其他数目的采样值。输入等量矩形投影包括用ui,vi标记的位置,该位置与输出等量矩形投影(1210)的标记位置uo,vo相对应。为了说明,输入等量矩形投影(1290)中的位置ui,vi是视图方向的中心位置,但是以同样的方式执行重新投影操作以确定输出等量矩形投影(1210)的其他位置在输入等量矩形投影(1290)中的对应位置。

对于输出等量矩形投影(1210)中的位置uo,vo,映射器重新对位置归一化。位置uo,vo最初是以等量矩形坐标表示的相对值,其中每个分量在0至1.0的范围内。矢量表示重新归一化之后的位置,并且被计算为:

其中,指示按元素的乘法,对每个元素执行减去0.5,并且对每个元素执行与因数2的乘法。

接下来,经重新归一化的位置被转换为球面坐标。矢量表示到球面坐标的转换之后的位置,并且被计算为:

其中,对每个元素执行与因数π的乘法,并且按元素执行与<0,π/2>的加法。此时,以经重新归一化的坐标表示的位置被表示为以球面坐标表示的位置其中r被理解为1并且从许多之后的计算中被省略。

接下来,以球面坐标表示的位置被转换为笛卡尔坐标。矢量表示到笛卡尔坐标的转换之后的位置,并且被计算为:

其中,指示按元素的乘法,并且函数sph2cart()被定义为:

cos(θo),

1>。

此时,以球面坐标表示的位置被表示为笛卡尔坐标<xo,yo,zo,wo>中的位置其中,并且wo=1。

接下来,以笛卡尔坐标表示的位置根据视图方向旋转。矩阵ml是视图方向的4×4仿射矩阵,其可以使用欧拉角度或者四元数单元来指定三维空间旋转。可以针对为应用指定的视图方向(例如,从航向、间距和滚动值中)计算矩阵ml。位置的旋转产生以笛卡尔坐标表示的旋转位置

其中,·指示矩阵乘法。此时,以笛卡尔坐标表示的旋转位置包括分量<xi,yi,zi,wi>,其中,<xi,yi,zi>=l-1<xo,yo,zo>,并且wi仍然是1。

接下来,以笛卡尔坐标表示的位置被转换回球面坐标。矢量表示转换回球面坐标之后的位置,并且被计算为:

其中,函数cart2sph()被定义为:

因此,以笛卡尔坐标表示的位置被表示为以球面坐标表示的位置其中,并且θi=tan-1(zi/xi)。

最后,以球面坐标表示的位置被转换为以输入等量矩形投影(1290)表示的位置ui,vi的等量矩形坐标,如下:

以及

vi=θi/π。

然后基于输入等量矩形投影(1290)中的对应位置ui,vi处的采样值,将采样值分配给输出等量矩形投影(1210)中的位置uo,vo。或者,如果输入等量矩形投影(1290)中的对应位置ui,vi处于分数位置,则采样值在与输入等量矩形投影(1290)中的对应位置ui,vi邻近的位置之间(例如,通过四个最接近的采样值之间的双线性插值)被插值,并且被分配给输出等量矩形投影(1210)中的位置uo,vo。

针对输出等量矩形投影(1210)中的不同位置,输入等量矩形投影(1290)中的对应位置可以并行地被计算,并且采样值(通过取回来自对应位置的采样值或者插值)被并行地分配。例如,这样的计算可以用gpu中的着色指令来实施。

鉴于可以应用所公开的发明的原理的许多可能的实施例,应当认识到,所说明的实施例仅是本发明的优选示例,而且不应当被视为限制本发明的范围。相反,本发明的范围由以下权利要求限定。我们因此主张我们的发明全部在这些权利要求的范围和精神内。

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