CN112204993A - 使用重叠的被分区的分段的自适应全景视频流式传输 - Google Patents
使用重叠的被分区的分段的自适应全景视频流式传输 Download PDFInfo
- Publication number
- CN112204993A CN112204993A CN201980034982.7A CN201980034982A CN112204993A CN 112204993 A CN112204993 A CN 112204993A CN 201980034982 A CN201980034982 A CN 201980034982A CN 112204993 A CN112204993 A CN 112204993A
- Authority
- CN
- China
- Prior art keywords
- segments
- projection
- panoramic video
- segment
- playback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/003—Reconstruction from projections, e.g. tomography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4728—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
- H04N21/6379—Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Studio Devices (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
描述了用于全景视频的自适应流式传输的流配置操作和回放操作的创新。这些创新包括利用重叠分段的全景视频的自适应流式传输的特征。例如,流配置工具将全景视频的输入图片拆分为重叠分段。回放工具重构分段中的一个或多个分段。由于相邻分段之间的重叠,对于视图窗口中的逐渐变化,回放工具实际上可以在视图窗口从当前分段移出到新分段中时抢先获取新分段。到视图窗口到达相邻新分段的非重叠部分时,回放工具已经取回针对该新分段的编码数据并且可以重构新分段。这对观看者隐藏了网络延迟和流切换延迟,并且避免了回放的中断。
Description
背景技术
当视频通过互联网进行流式传输(stream)并且通过Web浏览器或媒体播放器进行回放时,视频以数字形式递送。通过很多广播服务、卫星服务和有线电视服务递送视频时,也会使用数字视频。实时视频会议通常使用数字视频,并且在利用大多数智能手机、Web相机和其他视频捕获设备进行的视频捕获期间都使用数字视频。数字视频还用于诸如虚拟现实(VR)和增强现实(AR)等技术,而无论视频是在头戴式显示器、移动设备还是其他类型的设备中回放。
全景视频是其中同时记录在围绕中央位置的多个方向上的视图的视频。所记录的视频可以包括在每个方向上的图像内容、或至少在围绕中央位置的360°圆周的每个方向上的图像内容、以及在中央位置上方的至少一些图像内容和在中央位置下方的至少一些图像内容。全景视频有时也称为360度视频、沉浸式视频或球形视频。全景视频可以使用全向相机或指向不同方向的多个相机的集合来捕获。对于现代应用,全景视频在创建、编辑和递送阶段以及在用于回放的重构和绘制阶段以数字形式进行处理。
在回放期间,观看者通常可以控制相对于中央位置的视图方向,从而可以改变随时间观看全景视频的哪个分段(section)。在某些系统中,观看者还可以放大或缩小。当绘制全景视频以供显示时,可以将所观看的全景视频的分段投影到平面图像上以进行输出。对于移动设备或计算机监视器,可以绘制单个输出图片。对于头戴式显示器(或固定在头戴式腕带中的移动设备),可以将所观看的全景视频的分段分别投影到针对左眼和右眼的两个输出图片上。
当回放工具重构并且绘制全景视频时,资源可能浪费在取回和重构未被观看的图像内容上。例如,存储器可以用于存储未被观看的全景视频的区域的样本值,并且处理周期可以用于确定未被观看的样本值及其在不同处理阶段的位置。
为了使用更少资源,回放工具可以仅取回和重构全景视频的一部分(不是全部)。例如,考虑到观看者的观看方向和缩放因子,回放工具可以取回编码数据并且仅针对全景视频的可见分段重构全景视频。以这种方式,回放工具可以在正确地绘制全景视频的可见分段的同时节省存储器、处理周期和其他资源。但是,如果视图方向或缩放因子发生变化,则回放工具可能没有正确绘制全景视频的应该可见的分段所需要的图像内容。回放可能会冻结或停止,直到回放工具可以通过取回编码数据并且针对新的可见分段重构全景视频来恢复。
发明内容
总之,详细描述提出了用于全景视频的自适应流式传输的流配置操作和回放操作的创新。在一些示例实现中,如果观看者在回放期间逐渐改变视图方向或缩放因子,则本发明可以帮助避免全景视频的回放中的中断。
根据本文中描述的创新的一个方面,一种计算机系统实现全景视频流配置工具,该全景视频流配置工具包括输入缓冲器、格式化器、一个或多个视频编码器和一个或多个输出缓冲器。输入缓冲器被配置为存储全景视频的输入图片。格式化器被配置为根据分区设置将输入图片拆分为多个分段。分段中的每个分段与至少一个其他分段重叠。格式化器被配置为将这些分段分别添加到对应视频流。(多个)视频编码器被配置为分别编码对应视频流中的分段。这分别产生了针对分段的编码数据,作为针对对应视频流的多个比特流的一部分。(多个)输出缓冲器被配置为存储编码数据以用于递送。使分段重叠降低了整体压缩效率,但是支持归因于全景视频回放期间的比特流切换的中断的发生率的降低。
根据本文中描述的创新的另一方面,一种计算机系统实现全景视频回放工具,该全景视频回放工具包括视图控制器、流式传输控制器、一个或多个输入缓冲器、一个或多个视频解码器、映射器和输出缓冲器。视图控制器被配置为确定用于全景视频的回放的视图窗口。视图控制器还被配置为从全景视频的多个分段之中标识包含视图窗口的至少一部分的一个或多个分段。分段中的每个分段与至少一个其他分段重叠。对于所标识的(多个)分段,视图控制器被配置为在针对对应视频流的多个比特流之中选择一个或多个比特流。流式传输控制器被配置为针对全景图像的输入图片,分别请求在针对所标识的(多个)分段的所选择的(多个)比特流中的编码数据。(多个)输入缓冲器被配置为存储编码数据。(多个)视频解码器被配置为对编码数据进行解码以重构针对输入图片的所标识的(多个)分段。映射器被配置为至少部分地基于所重构的(多个)分段来创建输出图片。最后,输出缓冲器被配置为存储输出图片以用于输出到显示设备。
以这种方式,可以降低在全景视频的回放期间归因于比特流切换的中断的发生率。如果视图窗口改变(例如,由于视图方向和/或缩放因子的改变),则回放工具可以标识将被用于针对视图窗口创建输出图片的新的分段/流。由于相邻分段之间的重叠,对于视图方向和/或缩放因子的逐渐变化,回放工具实际上可以在视图窗口从当前分段移出到新分段中时抢先获取新的分段。到视图窗口到达相邻新分段的非重叠部分时,回放工具已经取回针对该新分段的编码数据并且可以重构新分段。这对观看者隐藏了网络延迟和流切换延迟,并且避免了回放中断。
本发明可以被实现为方法的一部分、被配置为执行该方法的计算机系统的一部分、或存储用于使计算机系统执行该方法的计算机可执行指令的有形计算机可读介质的一部分。各种创新可以组合使用或单独使用。提供本发明内容以便以简化的形式介绍概念的选择,这些概念将在下面的详细描述中进一步描述。本“发明内容”并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。通过以下参考附图进行的详细描述,本发明的前述和其他目的、特征和优点将变得更清楚。
附图说明
图1是示出可以在其中实现一些所描述的实施例的示例计算机系统的图。
图2a和图2b是示出可以在其中实现一些所描述的实施例的示例网络环境的图。
图3a至图3d是针对全景视频的图片的示例投影的图,并且图3e是示出针对全景视频的图片的视图的屏幕投影的示例的图。
图4是示出支持重叠分段和合成图片的全景视频流配置工具的示例架构的图。
图5是示出支持重叠分段和合成图片的全景视频回放工具的示例架构的图。
图6a和图6b是示出利用重叠分段的全景视频的自适应流式传输的流配置操作的示例的图。
图7是示出在正弦投影中的全景视频的图片的重叠分段的示例的图。
图8a和图8b是示出利用重叠分段的全景视频的自适应流式传输的回放操作的示例的图。
图9是示出利用重叠分段的全景视频的流配置的示例技术的流程图。
图10是示出用于利用重叠分段的全景视频的回放的示例技术的流程图。
图11a和图11b是示出利用合成图片的全景视频的自适应流式传输的流配置操作的示例的图。
图12是示出全景视频的示例合成图片的图。
图13a和图13b是示出利用合成图片的全景视频的自适应流式传输的回放操作的示例的图。
图14是示出利用合成图片的全景视频的流配置的示例技术的流程图。
图15是示出利用合成图片的全景视频的回放的示例技术的流程图。
具体实施方式
详细描述提出了用于全景视频的自适应流式传输的流配置操作和回放操作的创新。这些创新包括利用合成图片的全景视频的自适应流式传输的特征。在一些示例实现中,如果观看者在回放期间极大地改变了视图方向或缩放因子,或者如果针对全景视频的一个分段的编码数据丢失(例如,由于网络拥塞)或损坏,则这些创新可以帮助避免全景视频的回放的中断。这些创新还包括利用重叠分段的全景视频的自适应流式传输的特征。在其他示例实现中,当观看者在回放期间逐渐改变视图方向或缩放因子时,这些创新可以帮助避免全景视频的回放的中断。
在本文中描述的示例中,不同附图中的相同附图标记指示相同的组件、模块或操作。取决于上下文,给定组件或模块可以接受不同类型的信息作为输入,和/或产生不同类型的信息作为输出。
更一般地,本文中描述的示例的各种替代是可能的。例如,可以通过改变所描述的方法动作的顺序、拆分、重复或省略某些方法动作等来更改本文中描述的一些方法。所公开的技术的各个方面可以组合使用或单独使用。本文中描述的一些创新解决了背景技术中提到的一个或多个问题。通常,给定技术/工具不能解决所有这样的问题。I.示例计算机系统。
图1示出了可以在其中实现所描述的一些创新的合适的计算机系统(100)的一般示例。本文中描述的创新涉及全景视频流配置(streamconfiguration)、流式传输(streaming)和回放。除了其在全景视频流配置、流式传输和/或回放中的使用,计算机系统(100)并不旨在建议有关使用或功能范围的任何限制,因为这些创新可以在各种计算机系统中实现,包括适用于全景视频流配置、流式传输和/或回放的专用计算机系统。
参考图1,计算机系统(100)包括中央处理单元(“CPU”)的一个或多个处理核心(110……11x)、和本地片上存储器(118)。(多个)处理核心(110……11x)执行计算机可执行指令。(多个)处理核心(110……11x)的数目取决于实现,并且例如可以是4或8。本地存储器(118)可以是(多个)相应处理核心(110……11x)可访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或这两者的某种组合。
本地存储器(118)可以以计算机可执行指令的形式存储用于实现工具的软件(180),该工具用于针对由(多个)相应处理核心(110……11x)执行的操作的、使用重叠分段和/或合成图片的自适应全景视频流配置、流式传输和/或回放。在图1中,本地存储器(118)是片上存储器,诸如一个或多个高速缓存,利用(多个)处理核心(110……11x)对其的访问操作、传输操作等较快。
计算机系统(100)可以包括图形处理单元(“GPU”)的处理核心(未示出)和本地存储器(未示出)。通常,GPU是与CPU不同的任何专用电路,该专用电路可以加速图形流水线中图像数据的创建和/或操纵。GPU可以实现为专用图形卡(视频卡)的一部分、主板的一部分、片上系统(“SoC”)的一部分,或者以某种其他方式实现(甚至在与GPU相同的管芯上)。GPU的处理核心的数目取决于实现。GPU的处理核心是例如GPU的单指令多数据(“SIMD”)单元的一部分。SIMD宽度n(取决于实现)指示SIMD单元的元件(有时称为道(lane))的数目。例如,对于超宽SIMD架构,SIMD单元的元件(道)的数目可以是16、32、64或128。本地存储器可以是GPU的相应处理核心可访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)、或者是这两者的某种组合。GPU的(多个)处理核心可以执行用于自适应全景视频流配置、流式传输和/或回放的一个或多个创新的计算机可执行指令。
替代地,计算机系统(100)包括片上系统(“SoC”)、专用集成电路(“ASIC”)或其他集成电路的一个或多个处理核心(未示出)、以及相关联的存储器(未示出)。(多个)处理核心可以执行用于自适应全景视频流配置、流式传输和/或回放的一个或多个创新的计算机可执行指令。
计算机系统(100)包括共享存储器(120),该共享存储器(120)可以是(多个)处理核心可访问的易失性存储器(例如,RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或这两者的某种组合。取决于架构(例如,GPU是视频卡、主板还是SoC的一部分),CPU存储器可以与GPU存储器完全分开,或者CPU存储器和GPU存储器可以至少部分是共享存储器,或者来自同一来源(例如,RAM)。存储器(120)以计算机可执行指令的形式存储用于实现工具的软件(180),该工具用于针对所执行的操作的、使用重叠分段和/或合成图片的自适应全景视频流配置、流式传输和/或回放。在图1中,共享存储器(120)是片外存储器,针对其利用处理核心的访问操作、传输操作等较慢。
计算机系统(100)包括一个或多个网络适配器(140)。如本文中使用的,术语网络适配器指示任何网络接口卡(“NIC”)、网络接口、网络接口控制器或网络接口设备。(多个)网络适配器(140)使得能够通过网络与另一计算实体(例如,服务器、其他计算机系统)通信。网络可以是广域网、局域网、存储区域网或其他网络。(多个)网络适配器(140)可以针对广域网、局域网、存储区域网或其他网络支持有线连接和/或无线连接。(多个)网络适配器(140)通过(多个)网络连接以调制数据信号传送数据(诸如计算机可执行指令、音频或视频输入或输出、或其他数据)。调制数据信号是一种信号,其一个或多个特性以使得能够将信息编码在信号中的方式进行设置或改变。作为示例而非限制,网络连接可以使用电、光、RF或其他载波。
计算机系统(100)还包括一个或多个输入设备(150)。(多个)输入设备可以是触摸输入设备(诸如键盘、鼠标、笔或轨迹球等)、扫描设备、或向计算机系统(100)提供输入的另一设备。对于视频,(多个)输入设备(150)可以是相机、视频卡、屏幕捕获模块、电视调谐器卡、或接受以模拟或数字形式的视频输入的类似设备,也可以是将视频输入读取到计算机系统(100)中的CD-ROM或CD-RW。计算机系统(100)还可以包括音频输入、运动传感器/跟踪器输入、和/或游戏控制器输入。
计算机系统(100)包括一个或多个输出设备(160)。(多个)输出设备(160)可以是打印机、CD刻录机、或提供来自计算机系统(100)的输出的另一设备。对于视频回放,(多个)输出设备(160)可以是头戴式显示器、计算机监视器或其他显示设备。音频输出可以将音频输出提供给一个或多个扬声器。
存储装置(170)可以是可移除的或不可移除的,并且包括磁介质(诸如磁盘、磁带或盒式磁带)、光盘介质、和/或可以用于存储信息并且可以在计算机系统(100)内访问的任何其他介质。存储装置(170)存储用于软件(180)的指令,该指令实现用于使用重叠分段和/或合成图片的自适应全景视频流配置、流式传输和/或回放的工具。
诸如总线、控制器或网络等互连机制(未示出)互连计算机系统(100)的组件。通常,操作系统软件(未示出)为在计算机系统(100)中执行的其他软件提供操作环境,并且协调计算机系统(100)的组件的活动。
图1的计算机系统(100)是物理计算机系统。虚拟机可以包括如图1所示的所组织的组件。
这些创新可以在计算机可读介质的一般上下文中描述。计算机可读介质是可以在计算环境中访问的任何可用的有形介质。作为示例而非限制,对于计算机系统(100),计算机可读介质包括存储器(118、120)、存储装置(170)及其组合。术语计算机可读介质不包括暂态传播信号或载波。
这些创新可以在被执行在目标真实或虚拟处理器上的计算机系统中的计算机可执行指令的一般上下文中描述。计算机可执行指令可以包括在通用处理器的处理核心上可执行以提供本文中描述的功能的指令、可执行以控制GPU或专用硬件以提供本文中描述的功能的指令、在GPU的处理核心上可执行以提供本文中描述的功能的指令、和/或在专用处理器的处理核心上可执行以提供本文中描述的功能的指令。在一些实现中,计算机可执行指令可以组织成程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,程序模块的功能可以在程序模块之间组合或拆分。用于程序模块的计算机可执行指令可以在本地或分布式计算机系统内执行。
通常,计算机系统或设备可以是本地的或分布式的,并且可以包括专用硬件和/或硬件与实现本文中描述的功能的软件的任何组合。为了呈现,详细描述使用诸如“确定”、“接收”和“提供”等术语来描述计算机系统中的计算机操作。这些术语表示由计算机执行的操作,并且不应当与由人类执行的行为相混淆。与这些术语相对应的实际计算机操作取决于实现。
II.示例网络环境。
图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201、202)。编码器(220)和解码器(270)使用适当的通信协议通过网络(250)被连接。网络(250)可以包括互联网或另一计算机网络。
在图2a所示的网络环境(201)中,每个实时通信(“RTC”)工具(210)包括用于双向通信的一个或多个编码器(220)和一个或多个解码器(270)两者。每个RTC工具(210)是全景视频流配置工具和全景视频回放工具的示例。给定编码器(220)可以产生符合H.265/HEVC标准、ISO/IEC 14496-10标准(也称为H.264/AVC)、另一标准或专有格式(诸如VP8或VP9)或其变体或扩展的输出,其中对应解码器(270)从编码器(220)接收和解码编码数据。双向通信可以是视频会议、视频电话或其他两方或多方通信场景的一部分。尽管图2a中的网络环境(201)包括两个RTC工具(210),但是网络环境(201)可以改为包括参与多方通信的三个或更多个RTC工具(210)。
RTC工具(210)作为全景视频流配置工具管理由(多个)编码器(220)进行的编码,并且还作为全景视频回放工具管理由(多个)解码器(270)进行的解码。图4示出了可以在RTC工具(210)中实现的示例全景视频流配置工具(400)。图5示出了可以在RTC工具(210)中实现的示例性全景视频回放工具(500)。替代地,RTC工具(210)使用另一全景视频流配置工具和/或另一全景视频回放工具。
在图2b所示的网络环境(202)中,全景视频流配置工具(212)包括一个或多个编码器(220),其对视频进行编码以递送到包括解码器(270)的多个全景视频回放工具(214)。可以提供单向通信以用于实时广播视频流式传输、视频监控系统、web相机监测系统、远程桌面会议演示或共享、无线屏幕投射、云计算或游戏、或在其中全景视频被编码并且从一个位置被发送到一个或多个其他位置的其他场景。尽管图2b中的网络环境(202)包括两个回放工具(214),但是网络环境(202)可以包括更多或更少的回放工具(214)。通常,回放工具(214)与流配置工具(212)通信以确定供回放工具(214)接收的一个或多个视频流。回放工具(214)接收(多个)流,将所接收的编码数据缓冲达适当时间,并且开始解码和回放。
流配置工具(212)可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。回放工具(214)可以包括用于管理与流配置工具(212)的连接的客户端侧控制器逻辑。图4示出了可以在流配置工具(212)中实现的示例全景视频流配置工具(400)。替代地,流配置工具(212)使用另一全景视频流配置工具。图5示出了可以在回放工具(214)中实现的示例全景视频回放工具(500)。替代地,回放工具(214)使用另一全景视频回放工具。
替代地,Web服务器或其他媒体服务器可以存储编码视频以用于递送到一个或多个全景视频回放工具(214),该全景视频回放工具(214)包括解码器(270)。可以提供编码视频,例如,用于点播视频流式传输、广播、或在其中编码视频从一个位置被发送到一个或多个其他位置的另一场景。回放工具(214)可以与媒体服务器通信以确定供回放工具(214)接收的一个或多个视频流。媒体服务器可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。回放工具(214)接收(多个)流,将所接收的编码数据缓冲达适当时间,并且开始解码和回放。
III.全景视频的图片的示例投影。
全景视频(有时称为360度视频、沉浸式视频或球形视频)是如下视频:其中在围绕中央位置的多个方向上的视图被同时记录。全景视频的图片是在给定时间记录的多个方向上的视图的表示。全景视频的图片可以包括在从中央位置开始的每个方向或基本上每个方向上的图像内容。更通常地,全景视频的图片包括在围绕中央位置的360度圆周中的每个方向上的图像内容,包括在中央位置上方的至少一些图像内容和在中央视图/相机位置下方的至少一些图像内容。
全景视频的图片包括样本值,样本值表示图片的位置处的颜色。取决于图片的投影方式,图片的样本值可以具有各种属性。通常,样本值可以每个样本值具有8位、每个样本值具有10位、每个样本值具有12位、或每个样本值具有某个其他位数。样本值的动态范围可以是标准动态范围(例如,0到100尼特)、高动态范围(例如,0尼特到1000尼特、0尼特到1500尼特、0尼特到4000尼特)、或某些其他动态范围。关于色域,样本值可以具有较窄色域(对于标准动态范围视频是常见的)或较宽色域(对于高动态范围视频是常见的),它们可以表示更饱和或更鲜艳的颜色。对于直线投影(rectilinear projection),全景视频的图片的空间分辨率可以是每张图片1280×720个样本值(所谓的720p)、1920×1080个样本值(所谓的1080p)、2160×1080个样本值、3840×2160个样本值(所谓的4K)、4320×2160个样本值、7680×3840个样本值、7680×4320个样本值(所谓的8K)、8640×4320个样本值、或某个其他数目的样本值。通常,全景视频的图片的空间分辨率很高(例如,8K或更高),以便在绘制图片中的较小视图时提供足够的空间分辨率。通常,像素是针对图片中某个位置的一个或多个并置(collocated)样本值的集合,其可以针对不同的色度采样格式以不同方式布置。对于球面投影,空间分辨率可以变化。
通常,在以直线投影(例如,等角矩形投影)进行编码之前,将图片的样本值转换到诸如YUV等色彩空间,其中亮度(Y)分量的样本值表示亮度或强度值,并且色度(U,V)分量的样本值表示色差值。色差值的精确定义(以及YUV颜色空间与另一颜色空间(诸如RGB)之间的转换操作)取决于实现。通常,如本文中使用的,术语YUV表示具有亮度分量和一个或多个色度分量的任何色彩空间,包括Y'UV、YIQ、Y'IQ和YDbDr以及其变体,诸如YCbCr和YCoCg。可以将色度样本值子采样为较低色度采样率(例如,针对YUV 4:2:0格式)以便降低色度样本值的空间分辨率,或者色度样本值可以具有与亮度样本值相同的分辨率(例如,针对YUV 4:4:4格式)。在解码之后,直线投影中的样本值可以被转换到另一颜色空间,诸如RGB颜色空间。针对全景视频的图片的球面投影或屏幕投影中的样本值可以在RGB颜色空间或其他颜色空间中。
针对全景视频的图片的图像内容可以以各种方式组织。图3a示出了全景视频的图片的球面投影(301)。在球面投影(301)中,样本值被映射到与中央视图/相机位置等距的位置。样本值可以在RGB颜色空间或接近最终颜色空间的其他颜色空间中以进行绘制。球面投影(301)提供了一种概念上简单的方式来表示全景视频的图片的样本值,并且可能对某些建模和绘制操作有用。然而,对于其他处理阶段(例如,存储、压缩、解压缩),球面投影(301)可能不如其他类型的投影有效。
图3b示出了针对全景视频的图片的等角矩形投影(302)。等角矩形投影(302)是用于存储、压缩和解压缩全景视频的图片的样本值的有用表示。特别地,等角矩形投影(302)的样本值可以利用常规的视频编码/解码工具来处理,该工具处理矩形图片中的样本值的块。等角矩形投影(302)沿着将等角矩形投影(302)二等分的水平轴从中央视图/相机位置向侧面旋转描绘360度的图像内容;它沿着竖直轴从中央视图/相机位置向上或向下旋转描绘180度的图像内容。在等角矩形投影(302)中,朝向图片顶部的内容和朝向图片底部的内容被水平地拉伸,并且在顶部与底部之间的中间的内容被水平地挤压。除了引起可见失真(在等角矩形投影(302)不被直接绘制以进行显示的程度上,这不是问题),等角矩形投影(302)还使用额外的样本值来表示朝向图片顶部的内容和朝向图片底部的内容,这可能会降低压缩效率。与等角矩形投影(302)相关联的元数据可以指示等角矩形投影(302)的分辨率、以及等角矩形投影(302)的一个或多个位置中的每个位置处的视图方向(例如,等角矩形投影(302)的中心处的视图方向、沿着等角矩形投影(302)的边缘的竖直轴的中点处的视图方向)。或者,可以定义针对等角矩形投影(302)的位置的默认视图方向。例如,等角矩形投影(302)的中心被定义为平移(pan)为零度并且俯仰角为零度的视图方向。
图3c示出了针对全景视频的图片的正弦投影(303)。正弦投影(303)是用于存储、压缩和解压缩全景视频的图片的样本值的另一有用表示。正弦投影是伪圆柱、等面积图(map)投影,其中比例尺沿着中央子午线(或多个中央子午线)恒定,而水平比例尺在整个图上恒定。正弦投影可以具有单折叠(single fold)(单个中央子午线)或多折叠(多个中央子午线)。例如,双折叠(two-fold)正弦投影可以具有两个等长的中央子午线,其中两个褶层(fold)对应于图的半球。因此,正弦投影(303)描绘沿着将正弦投影(303)二等分的水平轴从中央视图/相机位置向侧面旋转360度的图像内容;它描绘沿着竖直轴从中央视图/相机位置向上或向下旋转180度的图像内容。与等角矩形投影(302)不同,在正弦投影(303)中,朝向图片顶部的内容和朝向图片底部的内容没有被水平拉伸,并且在顶部与底部之间的中间的内容没有被水平挤压。正弦投影(303)使用具有默认值(例如,黑色、灰色)的额外样本值来表示实际内容之外朝向图片顶部或底部的区域。尽管这种方法导致一些样本值未被用于表示实际编码的全景视频,但是压缩效率仍然倾向于比等角矩形投影(302)更好。与正弦投影(303)相关联的元数据可以指示正弦投影(303)的分辨率、以及正弦投影(303)的一个或多个位置中的每个位置处的视图方向(例如,正弦投影(303)的中心处的视图方向、沿着正弦投影(303)的边缘在竖直轴的中点处的视图方向)。或者,可以定义针对正弦投影(303)的位置的默认视图方向。例如,正弦投影(303)的中心被定义为全景为零度并且俯仰角为零度的视图方向。
图3d示出了针对全景视频的图片的立方体贴图投影(cubemap projection)(304)。像等角矩形投影(302)和正弦投影(303)一样,立方体贴图投影(304)是用于存储、压缩和解压缩全景视频的图片的样本值的有用表示,因为立方体贴图投影(304)的面可以被“展开”和/或拆分为单独的分段以进行这样的操作。在立方体贴图投影(304)中,朝向立方体的面的边的内容被水平和/或竖直地拉伸,并且朝向面的中间的内容被水平和/或竖直地挤压。通常,这样的拉伸的程度小于在等角矩形投影(302)的顶部和底部处的拉伸,并且立方体贴图投影(304)可以使用较少的额外样本值来表示拉伸内容。与立方体贴图投影(304)相关联的元数据可以指示立方体贴图投影(304)的分辨率、以及在立方体贴图投影(304)的一个或多个位置中的每个位置处的视图方向。或者,可以定义针对立方体贴图投影的位置的默认视图方向(304)。
在回放期间,全景视频的图片被重构。至少在概念上,在这个阶段可以以球面投影表示图片。通常,观看者可以控制相对于球面投影的中央视图/相机位置的视图方向,潜在地改变全景视频的哪个分段被观看。例如,除了指定针对视图方向的从一侧到另一侧以角度或弧度的航向(即,偏航或平移),观看者还可以指定针对视图方向的上下方向上以角度或弧度的倾斜度(即,俯仰或倾斜)、以及甚至针对视图方向的以角度或弧度的视图的旋转(即,滚动)。替代地,视图方向可以以其他方式来参数化(例如,作为仿射变换系数的矩阵,该仿射变换系数使用欧拉角或四元数单位来指定三维空间旋转,其与航向、俯仰和滚动值相对应)。观看者还可以能够放大或缩小。视场可以以角度(例如,普通视场为90度,宽视场为120度)或弧度来指定。当绘制全景视频的视图以供显示时,所观看的全景视频的分段可以被投影到平面图像,这称为屏幕投影。
图3e示出了针对全景视频的图片的视图的屏幕投影的示例。图片的等角矩形投影(302)例如通过视频解码操作和颜色转换操作来重构。全景视频的图片的样本值被映射到球面投影(303)。从本质上讲,从球体中心处的视图/相机位置的角度看,样本值被投影到针对球体投影(303)的球体的“内部”。球面投影(303)中的位置被映射到等角矩形投影(302)中的对应位置。如果等角矩形投影(302)中的对应位置在整数(全像素)偏移处或附近,则来自对应位置的样本值被分配给球面投影(303)中的位置。否则,可以通过在等角矩形投影(302)中附近位置处的样本值之间进行插值来计算样本值(例如,使用双线性插值),并且将(插值的)样本值分配给球面投影(303)中的位置。
球面投影(303)中的视图窗口(310)基于视图方向、缩放因子和来自中央视图/相机位置的视场被查找。视图窗口(310)被投影到屏幕投影(320)以进行绘制。例如,透视变换被应用以将样本值从球面投影(303)的样本值分配给屏幕投影(320)的相应位置。对于屏幕投影(320)的每个位置,直接从球面投影(303)或从球面投影(303)的样本值之间的插值来分配样本值。因此,屏幕投影(320)包括来自球面投影(303)的样本值,并且扩展地包括来自等角矩形投影(302)的相关部分的样本值。
IV.标识输入投影中的图片的分段的示例。
当应用提供视图方向、视场(如果未预先定义)和缩放因子(如果可配置)用于绘制全景视频的图片的视图时,应用将指定要绘制的视图窗口。例如,应用向全景视频回放工具的模块提供视图方向的指示。视图方向可以被指定为(1)从中央视图/相机位置开始从一侧到另一侧以角度或弧度的航向(即,偏航或平移),以及(2)从视图/相机位置向上或向下以角度或弧度的倾斜度(即,俯仰或倾斜)。视图方向还可以包括(3)从视图/相机位置以角度或弧度的视图的旋转(即,滚动)。替代地,视图方向可以以某种其他方式来参数化(例如,作为仿射变换系数的矩阵,该仿射变换系数使用欧拉角或四元数单位来指定与航向、俯仰和滚动值相对应的三维空间旋转)。视场可以以角度(例如,针对普通视场的90度,针对宽视场的120度)或弧度来指定。缩放因子可以被指定为距视图相机(view camera)位置的距离、视图窗口的大小,或以其他某种方式指定。替代地,除了直接提供视图方向(可能还有视场和缩放因子)的指示,应用还可以指定视图方向(可能还有视场和缩放因子)的指示的来源,在这种情况下,所指定的来源可以提供绘制期间的指示。在任何情况下,全景视频回放工具的模块都会针对全景视频的图片的球面投影查找适当的视图窗口。
视图窗口通常仅包括全景视频的图片的总内容的一小部分。为了简化处理并且节省诸如编码数据的取回和解码等操作期间的资源,全景视频回放工具可以标识包含视图窗口的、输入投影(诸如等角矩形投影、立方体贴图投影、正弦投影或其他投影)中的输入图片的一个或多个分段,然后使用该信息来限制在重构全景视频的图片时执行的操作。特别地,全景视频回放工具可以将操作限制为输入投影中的图片的所标识的(多个)分段。
例如,全景视频回放工具基于视图方向(以及可以预先定义的视场和缩放因子)查找球面投影的视图窗口。基于视图窗口,回放工具标识包含球面投影的视图窗口的输入图片(在诸如等角矩形投影、立方体贴图投影或正弦投影之类的输入投影中)的一个或多个分段。给定球面投影的视图窗口,回放工具可以从球面投影投影回输入投影,以标识全景视频的输入图片中的对应窗口,然后标识输入图片中包含对应窗口的任何一部分的那些分段。输入图片中的对应窗口可以具有不规则的边界并且可以被拆分(例如,跨越边缘)。以这种方式,回放工具可以标识图片的包含视图窗口的至少一部分的任何分段。
通常,所标识的(多个)分段与用于重构过程中的不同操作的样本值的组(例如,块、切片、图块(tile))的边界对准。根据视图窗口的位置和大小,图片的一个分段可以包括整个视图窗口。或者,图片的多个分段可以集体地包括视图窗口。多个分段可以是连续的,或者,如果视图窗口与图片的边缘交叉,则可以是不连续的。回放工具可以将操作(诸如对编码数据的取回、对编码数据的解码、以及对输出图片的创建)限制到所标识的(多个)分段。
V.全景视频的自适应流式传输的示例架构。
当全景视频流配置工具接收全景视频的输入图片时,流配置工具产生多个比特流中的针对全景视频的编码数据。当全景视频回放工具接收到针对全景视频的编码数据时,回放工具绘制全景视频的视图。本节描述了用于流配置的示例架构和用于全景视频的回放的示例架构的各个方面,包括重叠分段和合成图片的使用。
可以针对各种用例场景制作和流式传输全景视频。例如,可以针对诸如音乐会或体育赛事等现场事件产生和流式传输全景视频。或者,作为另一示例,可以针对沉浸式体验产生和流式传输全景视频,以用于教育、虚拟旅行或房地产列表的虚拟漫游。或者,作为另一示例,可以针对会议或远程医疗产生和流式传输全景视频。或者,作为另一示例,可以针对沉浸式游戏回放产生和流式传输全景视频。
全景视频可以以各种方式回放。例如,全景视频可以通过在游戏机、台式计算机或其他计算平台上执行的Web浏览器或视频回放应用进行回放。或者,作为另一示例,全景视频可以通过用于VR或AR应用的移动设备或头戴式显示器进行回放。
在一些配置中,单个实体管理全景视频流配置工具和一个或多个全景视频回放工具的端到端行为。在这样的配置中,流配置工具和(多个)回放工具可以在一个或多个私有通道中交换关于将输入图片分区为多个分段、合成图片的组织、流选择决策等的信息。在替代配置中,全景视频流配置工具和(多个)全景视频回放工具由不同实体管理。在这样的配置中,流配置工具和(多个)回放工具可以根据限定的协议跨标准化接口进行互操作,以交换关于将输入图片分区为多个分段、合成图片的组织、流选择决策等的信息。
A.示例流配置架构。
图4示出了针对支持重叠分段和合成图片的全景视频流配置工具(400)的示例架构。除了视频源(410)和媒体服务器(490),示例架构还包括全景视频流配置工具(400),该全景视频流配置工具(400)具有输入缓冲器(430)、格式化器(440)、一个或多个视频编码器(460)和一个或多个输出缓冲器(470)。
视频源(410)将全景视频的输入图片(420)提供给输入缓冲器(430)。例如,视频源(410)包括产生全景视频的输入图片(420)的与全向相机相关联的缓冲器。替代地,视频源(410)包括产生在一个位置处在不同方向上拍摄的图片的与相机的集合相关联的缓冲器、以及存储从由相机产生的图片所聚合、镶嵌、合成等的全景视频的输入图片(420)的缓冲器。相机可以是记录自然视频的物理相机,也可以是在合成环境(例如,游戏环境)中记录视频的虚拟相机。替代地,流配置工具(400)自身可以从流配置工具(400)接收的图片流来创建被存储在输入缓冲器(430)中的全景视频的输入图片(420)。全景视频流配置工具(400)可以在与视频源(410)或相机位于同一位置的内容生产站点处被实现。替代地,全景视频流配置工具(400)可以在远程站点(例如,Web服务器)处被实现,其中视频源(410)通过网络向配置工具(400)提供全景视频的输入图片(420),或相机通过网络向配置工具(400)提供视频流。
输入缓冲器(430)被配置为接收和存储全景视频的一个或多个输入图片(420)。通常,输入图片(420)在输入投影中。例如,输入投影可以是等角矩形投影、立方体贴图投影、正弦投影或其他类型的投影。在一些示例实现中,输入图片(420)具有4K或更高的空间分辨率。替代地,输入图片(420)可以具有较低空间分辨率。
格式化器(440)被配置为根据分区设置将每个输入图片(420)拆分为多个分段(445)(n个分段)。n的值取决于实现。例如,n为6、8、12或16。数据存储库(未示出)可以存储针对全景视频流配置工具(400)的各种设置。例如,设置可以包括用于将全景视频的输入图片(420)拆分为分段(445)的分区设置。分区设置可以包括输入图片(420)被分区到的分段(445)的计数n、分段(445)的相对大小和位置、以及(对于重叠分段)分段(445)之间的重叠程度。分段(445)的空间分辨率取决于实现。在一些示例实现中,分段(445)每个的空间分辨率为1080p、720p、或某个其他分辨率,该分辨率是(多个)视频编码器(460)容易接受的并且足够大以包含回放中的典型视图窗口的内容,但是足够小以排除典型视图窗口之外的全景视频的内容(以避免在回放期间取回对内容的不必要的取回和重构)。
在一些配置中,n个分段(445)是非重叠的。在其他配置中,n个分段(445)是重叠的。也就是说,n个分段(445)中的每个与n个分段(445)中的至少一个其他分段重叠。在一些示例实现中,n个分段(445)中的每个与n个分段中的每个相邻分段重叠。分段(445)的重叠倾向于降低整体压缩效率(因为相同的样本值可能在不同分段中被冗余编码)。另一方面,分段(445)的重叠倾向于降低由比特流切换引起的回放中断的发生率。格式化器(440)被配置为将n个分段(445)添加到对应的视频流。在图4中,存在针对n个分段(445)的n个流,其被标记为0……n-1。
格式化器(440)可以被配置为将输入图片(420)从输入投影投影到中间投影,使得n个分段(445)在中间投影中。例如,输入投影是等角矩形投影或立方体贴图投影,而中间投影是正弦投影。在这种情况下,n个分段(445)中的至少一个分段包括具有默认值的至少一些样本值,这些样本值不表示全景视频的输入图片的内容。
格式化器(440)可以被配置为接收反馈的指示,并且至少部分基于反馈指示来调节分区设置。例如,反馈指示包括网络连接质量的指示、视图窗口改变活动的幅度的指示、关于哪个视图方向较为普遍的指示、和/或某种其他类型的反馈。为了调节分区设置,格式化器(440)可以被配置为改变重叠分段之间的重叠程度、改变n个分段(445)的计数、改变n个分段(445)中的至少一些的相对大小、改变n个分段(445)中至少一些的位置、在新位置处向n个分段(445)添加一个或多个分段,从n个分段(445)中移除一个或多个分段,和/或对分区设置进行某种其他改变。
在一些配置中,格式化器(440)被配置为创建输入图片(420)的低分辨率版本。例如,格式化器(440)水平和/或竖直地对输入图片(420)进行下采样。输入图片(420)的低分辨率版本可以具有与n个分段之一相同的宽度(例如,对于1080p分段为1920个样本值,对于720p分段为1280个样本值)。输入图片(420)的高度可以成比例地减小。格式化器(440)还被配置为在根据分区设置将输入图片(420)拆分为n个分段(445)(取决于实现,可以是重叠的或非重叠的)之后,创建n个合成图片(446)。n个合成图片(446)中的每个包括n个分段(445)之一,并且还包括输入图片(420)的低分辨率版本。格式化器(440)被配置为将分别包括n个分段(445)的n个合成图片(446)添加到对应视频流。
合成图片(446)可以以各种方式来组织。例如,对于n个合成图片(446)中的每个,在合成图片(446)内输入图片(420)的低分辨率版本与n个分段(445)之一相邻。或者,作为另一示例,对于n个合成图片(446)中的每个,n个分段(445)之一提供帧打包布置的第一视图,并且输入图片的低分辨率版本(420)提供帧打包布置的第二视图。在合成图片(446)内,输入图片(420)的低分辨率版本可以被定位在相对于n个分段(445)之一的预定义位置处。替代地,在合成图片(446)内,输入图片(420)的低分辨率版本可以被定位在相对于n个分段(445)之一的可变位置处。
输入图片(420)和输入图片(420)的低分辨率版本可以在输入投影中,输入投影诸如等角矩形投影或立方体贴图投影。格式化器(440)还可以被配置为将输入图片(420)从输入投影投影到中间投影,诸如正弦投影。在合成图片(446)中,输入图片(420)的低分辨率版本可以在输入投影或中间投影中。
(多个)视频编码器(460)被配置为分别编码对应视频流中的n个分段(445)或n个合成图片(446)的样本值。样本值为例如YUV颜色空间中的8位样本值或10位样本值,其中色度采样率为4:2:0。替代地,由(多个)视频编码器(460)编码的样本值是另一种格式。编码分别产生针对n个分段(445)或n个合成图片(446)的编码数据(465),作为针对对应视频流的n个比特流的一部分。例如,n个比特流是视频基本比特流。取决于实现和编码数据的格式,(多个)视频编码器(460)可以产生符合H.265/HEVC标准、ISO/IEC 14496-10标准(也称为H.264/AVC)、另一标准或专有格式(诸如VP8或VP9)或其变体或扩展的编码数据。流配置工具(400)可以包括被配置为针对n个比特流将编码数据组合为单个容器流的复用器(未示出)。
格式化器(440)还被配置为产生一个或多个清单文件(442)。(多个)清单文件(442)包括针对n个比特流中的每个比特流指示n个分段(445)中的一个分段的位置(例如,在输入图片(420)的坐标中,或在球面投影的坐标中)的信息,该一个分段的内容为针对该比特流的对应视频流的一部分。(多个)清单文件(442)还可以包括指示输入图片(420)的低分辨率版本在n个合成图片(446)中分别位于何处的信息。
(多个)输出缓冲器(470)被配置为存储编码数据(465)以用于递送给媒体服务器(490)。(多个)输出缓冲器还可以存储(多个)清单文件(442)以用于递送给媒体服务器(490)。媒体服务器(490)可以是通过网络连接的Web服务器或其他服务器,该服务器存储针对全景视频的分段(或合成图片)的n个流的编码数据(465)并且将所选择的比特流的编码数据(465)流式传输到回放工具以用于回放。
取决于实现和期望的处理类型,全景视频流配置工具(400)的模块可以被添加、省略、拆分成多个模块、与其他模块组合、和/或替换为相似的模块。在替代实施例中,具有不同模块和/或模块的其他配置的全景视频流配置工具执行所描述的技术中的一种或多种。全景视频流配置工具的特定实施例通常使用全景视频流配置工具(400)的变体或补充版本。全景视频流配置工具(400)中的模块之间示出的关系指示全景视频流配置工具(400)中信息的通常流动;为了简单起见,未示出其他关系。
通常,全景视频流配置工具(400)的给定模块可以由在CPU上可执行的软件、通过控制专用硬件(例如,用于视频加速的GPU或其他图形硬件)的软件、或通过专用硬件(例如,在ASIC中)来实现。特别地,在一些示例实现中,利用在GPU上可执行的着色器指令来实现视频编码操作和用于在不同投影之间映射样本值的重新投影操作。因此,计算密集型的重复性操作(例如,用于视频编码,用于在将输入图片分成分段时在不同类型的投影之间进行映射)可以利用图形硬件(例如,作为针对GPU的着色器指令)或其他专用硬件来实现,并且高级操作(例如,决定如何对输入图片进行分区)可能在CPU上可执行的软件中实现。
B.示例回放架构。
图5示出了针对支持重叠分段和合成图片的全景视频回放工具(500)的示例架构。除了媒体服务器(530)、应用(580)和显示设备(590),该示例架构还包括全景视频回放工具(500),该全景视频回放工具(500)具有视图控制器(510)、流式传输控制器(520)、一个或多个输入缓冲器(540)、一个或多个视频解码器(550)、映射器(570)和一个或多个输出缓冲器(585)。
应用(580)可以由第三方提供或打包为全景视频回放工具(500)的一部分。应用(580)可以通过应用程序编程接口(“API”)与全景视频回放工具(500)的其他模块(系统提供的模块)分开。
数据存储库(未示出)可以存储针对全景视频回放工具(500)的各种设置。例如,设置可以包括在安装应用(580)时由应用(580)提供的信息。其他模块可以跨接口与数据存储库交互。
视图控制器(510)被配置为确定用于全景视频的回放的视图窗口。例如,视图窗口取决于视图方向。视图控制器(510)被配置为接收针对应用(580)的视图方向(582)的指示。在图5中,应用(580)提供视图方向(582)的指示。代替应用(580),另一来源(例如,基于一个或多个传感器(诸如一个或多个加速度计、陀螺仪、倾斜传感器、光学传感器、相机等)的来源、或者用于按键按下的用户输入事件、鼠标光标移动、鼠标滚轮移动、远程控制输入、游戏控制器输入、触摸屏输入等的来源)可以提供视图方向(582)的指示。例如,视图方向(582)如第IV节中所述进行参数化。视图窗口还可以取决于视场和/或缩放因子。在一些配置中,视图控制器(510)还被配置为从应用(580)或另一来源接收针对应用(580)的视场(584)的指示。例如,视场(584)如第IV节中所述进行参数化。可以针对应用(580)或回放会话来定义视场(584)。在一些配置中,视图控制器(510)还被配置为从应用(580)或另一来源接收针对应用(580)的缩放因子的指示。例如,缩放因子如第IV节所述进行参数化。通常,缩放因子可以在回放会话期间动态改变(例如,放大或缩小)。
视图控制器(510)被配置为接收一个或多个清单文件(542),并且使用(多个)清单文件(542)来标识包含视图窗口的至少一部分的一个或多个分段和/或选择针对所标识的(多个)分段的一个或多个比特流。(多个)清单文件(542)从输入缓冲器(540)被提供,输入缓冲器(540)可以从媒体服务器(530)或直接从流配置工具接收(多个)清单文件(542)。(多个)清单文件(542)包括针对n个比特流中的每个比特流指示其内容为对应视频流的一部分的n个分段之一的位置(例如,在输入图片(420)的坐标中,或在球面投影的坐标中)的信息。(多个)清单文件(542)还可以包括分别指示输入图片的低分辨率版本在合成图片(556)中被定位在何处的信息。
视图控制器(510)还被配置为从全景视频的多个分段(n个分段)之中标识包含视图窗口的至少一部分的一个或多个分段。例如,视图控制器(510)被配置为标识n个分段中的、包含视图窗口的至少一部分的每个分段。视图控制器(510)可以标识各自包含如第IV节所述的视图窗口的至少一部分的(多个)分段。或者,视图控制器(510)可以简单地使用(多个)清单文件(542)中的位置信息(例如,球面投影的坐标)来标识各自包含视图窗口的至少一部分的(多个)分段。所标识的(多个)分段可以是针对输入投影(例如,等角矩形投影、立方体贴图投影、正弦投影)中的输入图片的连续分段。或者,所标识的(多个)分段可以是包裹输入投影中的输入图片的一个或多个边缘周围的非连续分段。视图控制器(510)还被配置为针对所标识的(多个)分段,在针对对应视频流的n个比特流中选择一个或多个比特流。视图控制器(510)被配置为将指示所选择的(多个)比特流的控制信号(512)递送到流式传输控制器(520)。以这种方式,视图控制器(510)可以迭代地执行操作以:确定视图窗口、标识包含视图窗口的至少一部分的(多个)分段、以及选择针对所标识的(多个)分段的(多个)比特流。
在一些配置中,n个分段是非重叠的。在其他配置中,n个分段是重叠的。也就是说,n个分段中的每个与n个分段之中的至少一个其他分段重叠。在一些示例实现中,n个分段中的每个与n个分段之中的每个相邻分段重叠。n个分段的重叠会降低整体压缩效率(因为相同的样本值可能在不同的分段中被冗余编码)。另一方面,n个分段的重叠也倾向于降低归因于比特流切换的回放中断的发生率。特别是,当存在离开某个分段的逐渐平移动作或缩放为新的分段时,n个分段的重叠为快速绘制高分辨率视图提供了一种方法,而不会造成回放中断。尽管回放工具(500)可以切换到针对新分段的新比特流,但是流切换会花费一些时间(例如,将对新比特流的请求发送到媒体服务器(530),并且等待可以在新比特流中开始解码的切换点)。例如,流切换可能需要3-5秒。在重叠分段的情况下,如果视图方向和/或缩放因子改变,则视图控制器(510)可以更快地标识将被用于针对视图窗口创建输出图片(575)的新的分段/流。由于相邻分段之间的重叠,对于逐渐且一致的视图方向和/或缩放因子的变化,视图控制器(510)实际上在视图窗口从当前分段移出到新分段中时预先取回新分段。假定视图窗口的运动不是极端的,则到视图窗口到达相邻的新分段的非重叠分段时,取回相邻的新分段的内容就已经被取回并且重构。这对观看者隐藏了网络延迟和流切换延迟,并且回放的中断被避免。
视图控制器(510)可以被配置为发送反馈的指示(例如,向流配置工具或聚合器以进行反馈)。然后,该反馈可以用于调节在将输入图片拆分为多个分段时所应用的分区设置。例如,反馈的指示包括网络连接质量的指示、视图窗口改变活动的幅度的指示、哪个视图方向普遍的指示、和/或另一类型的反馈。
视图控制器(510)被配置为向映射器(570)提供所标识的(多个)分段的指示(515)。当针对视图窗口创建输出图片(575)时,映射器(570)可以使用所标识的(多个)分段的指示(515)以及(多个)清单文件(542)。
流式传输控制器(520)被配置为针对全景视频的输入图片,分别请求在所标识的(多个)分段的所选择的(多个)比特流中的编码数据。取决于配置,流式传输控制器(520)可以将对编码数据(532)的请求(522)发送到媒体服务器(530)、直接发送到全景视频流配置工具、或发送到本地媒体存储库(531)。流式传输控制器(520)可以针对输入图片的不同部分(例如,切片、图块)或针对每个输入图片,对编码数据(532)做出单独的请求(522),或者它可以批量请求。
媒体服务器(530)可以是通过网络连接的Web服务器或其他服务器,该服务器被配置为存储针对全景视频的各分段的n个比特流的编码数据(532),并且将针对n个比特流中的所选择的比特流的编码数据(532)流式传输到回放工具以用于回放。在图5所示的场景中,媒体服务器(530)流式传输针对所选择的一个或多个比特流的编码数据(532),所选择的一个或多个比特流与包含用于回放的视图窗口的所标识的(多个)(多个)分段相对应。
如果未使用媒体服务器(530),则全景视频回放工具(500)可以从媒体存储库(531)取回针对所选择的(多个)比特流的编码数据(532)。媒体存储库(531)可以是磁盘、光学存储介质、非易失性存储器、或者本地连接到全景视频回放工具(500)的其他存储装置或存储器,其被配置为存储针对全景视频的编码数据(532),并且提供其以用于回放。
在一些配置中,所标识的(多个)分段中的每个是还包括输入图片的低分辨率版本的合成图片(556)的一部分。低分辨率版本通常是由于在水平和/或竖直地对输入图片进行下采样而引起的。输入图片的低分辨率版本的宽度可以与n个分段之一相同(例如,对于1080p分段为1920个样本值,对于720p分段为1280个样本值),其中输入图片的高度则按比例减小。
合成图片(556)可以以各种方式来组织。例如,对于n个合成图片(556)中的每个,输入图片的低分辨率版本与合成图片(556)内的n个分段之一相邻。或者,作为另一示例,对于n个合成图片(556)中的每个,n个分段(555)之一提供帧打包布置的第一视图,并且输入图片的低分辨率版本提供帧打包布置的第二视图。在合成图片(556)内,输入图片的低分辨率版本可以被定位在相对于n个分段(555)之一的预定义位置处。替代地,在合成图片(556)内,输入图片的低分辨率版本可以被定位在相对于n个分段(555)之一的可变位置处。
(多个)输入缓冲器(540)被配置为存储针对所选择的(多个)比特流的编码数据(532)。(多个)输入缓冲器之一也可以存储(多个)清单文件(542),该清单文件(542)可以由媒体服务器(530)、本地媒体存储库(531)或流配置工具提供。(多个)输入缓冲器(540)被配置为向(多个)视频解码器(550)提供针对所选择的(多个)比特流的编码数据(532)。
(多个)视频解码器(550)被配置为对编码数据(532)进行解码以重构针对输入图片的所标识的(多个)分段,从对应视频流产生针对所重构的一个或多个分段(555)的样本值。当所选择的(多个)比特流包括(多个)合成图片(556)时,(多个)视频解码器还被配置为对针对输入图片的低分辨率版本的编码数据(532)进行解码,从而产生针对输入图片的低分辨率版本的样本值。取决于实现和编码数据的格式,(多个)视频解码器(550)可以以符合H.265/HEVC标准、ISO/IEC 14496-10标准(也称为H.264/AVC)、另一标准或专有格式(诸如VP8或VP9)或其变体或扩展的方式对编码数据(532)进行解码。样本值为例如YUV颜色空间中的8位样本值或10位样本值,其中色度采样率为4:2:0。替代地,由(多个)视频解码器(550)输出的样本值是另一格式。
映射器(570)被配置为至少部分地基于来自(多个)合成图片(556)的、输入图片的所重构的(多个)分段(555)和/或所重构的低分辨率版本来创建输出图片(575)。例如,映射器(570)被配置为使用所标识的(多个)分段的指示(515)以及(多个)清单文件(542)来确定所重构的(多个)分段(555)的哪些样本值分别映射到输出图片(575)。映射器(570)可以被配置为确定输出图片(575)的哪些样本值不能使用所重构的(多个)分段(555)而被确定,并且对于不能使用所重构的(多个)分段(555)来确定的输出图片(575)的任何样本值,使用所重构的输入图片的低分辨率版本来确定输出图片(575)的样本值。因此,可以仅使用所重构的(多个)分段(555)的样本值来创建输出图片(575)。或者,可以仅使用所重构的输入图片的低分辨率版本的样本值来创建输出图片(575)。或者,可以使用所重构的(多个)分段(555)的样本值来创建输出图片(575)的至少一部分,并且可以使用所重构的输入图片的低分辨率版本的样本值来创建输出图片(575)的至少一部分。
通常,映射器(570)被配置为执行各种颜色空间转换操作、色度率上采样(upsampling)操作、投影操作、插值操作和空间上采样操作。例如,映射器(570)被配置为将由(多个)视频解码器(550)产生的样本值中的至少一些从第一颜色空间(诸如YUV颜色空间)转换到第二颜色空间(诸如RGB颜色空间)。映射器(570)可以被配置为在颜色空间转换之前或作为颜色空间转换的一部分,执行色度采样率上采样,以将色度样本值恢复为具有与解码视频中的亮度样本值相同的分辨率。为了创建输出图片(575),映射器(570)可以被配置为将所重构的(多个)分段(555)从中间投影(例如,正弦投影)投影到输出投影(例如,屏幕投影)。为了创建输出图片(575),映射器(570)还可以被配置为将所重构的输入图片的低分辨率版本从输入投影(例如,等角矩形投影、立方体贴图投影)或中间投影(例如,正弦投影)投影到输出投影(例如,屏幕投影)。映射器(570)被配置为根据在所重构的(多个)分段(555)或所重构的输入图片的低分辨率版本中的对应位置处的样本值来确定输出图片(575)的适当样本值,从而潜在地选择在对应位置处的样本值或者执行插值操作(例如,双线性插值操作)以确定在输入图片的所重构的(多个)分段(555)或所重构的低分辨率版本的相邻样本值之间的对应位置处的样本值。映射器(570)可以被配置为对输入图片的所重构的低分辨率版本的样本值执行空间上采样操作,以反转在创建输入图片的低分辨率版本时执行的下采样操作。
(多个)输出缓冲器(585)被配置为存储输出图片(575)以用于输出到显示设备(590)。显示设备(590)可以是头戴式显示器、计算机监视器、电视屏幕、移动设备屏幕或其他类型的显示设备。
在一些示例实现中,对于平台绘制模式,映射器(570)将屏幕投影(586)中的输出图片(575)提供给应用(580),例如提供给由应用(580)指示的输出缓冲器(585)以用于绘制。应用(580)可以是本身不执行针对全景视频的绘制操作的轻量级应用,从而简化了应用(580)的实现。例如,应用(580)是新闻查看器、房地产站点列表应用、或不专门呈现全景视频的其他应用。相反,应用(580)提供视图方向(582),并且还可以提供视场(584),并且“平台”(回放工具(500)的系统提供的模块)执行用于生成屏幕投影的操作。替代地,应用(580)可以设置针对视图方向(582)和视场(584)的来源,并且平台从该来源获取视图方向(582)和视场(584)信息。应用(580)还可以具有用于绘制的开/关控制。
在其他示例实现中,在应用绘制模式下,映射器(570)将平面投影中的输出图片(575)提供给应用(580),例如提供给由应用(580)指示的输出缓冲器(585)。平面投影可以是等角矩形投影或立方体贴图投影,可以对其进行重新投影,使得其位于视图窗口的中心,可以裁切掉不相关的细节,和/或可以针对相关细节增强其空间分辨率。在应用绘制模式下,应用(580)包括如下模块:该模块对平面投影中的输出图片(575)的样本值执行附加转换(例如,映射到球面投影,映射到屏幕投影),以生成适合于应用(580)的一个或多个屏幕投影,这使应用(580)对绘制决策有更多控制。例如,应用(580)是针对全景视频的VR应用、AR应用或专用媒体应用。在应用绘制模式下,不同应用可以使用不同方法来绘制平面投影。对于移动设备或计算机监视器,可以绘制单个屏幕投影。或者,对于头戴式显示器(或被保持在头戴式带中的移动设备),应用(580)可以分别为左眼和右眼生成两个屏幕投影。
流式传输控制器(520)可以选择性地取回针对(多个)附加比特流的编码数据。例如,如果全景视频的回放被暂停,则流式传输控制器(520)可以请求针对输入图片的其余分段的编码数据,并且(多个)视频解码器(550)可以对输入图片的其余分段进行解码。以这种方式,如果观看者选择通过全景视频的“暂停”环境进行导航,则整个输入图片都可用于绘制。
取决于实现和期望的处理类型,全景视频回放工具(500)的模块可以被添加,省略,拆分成多个模块,与其他模块组合,和/或替换为相似模块。例如,尽管在图5中单独示出,但是视图控制器(510)可以与映射器(570)组合(即,映射器(570)的一部分),或者视图控制器(510)可以与流式传输控制器(520)组合(即,流式传输控制器(520)的一分段)。在替代实施例中,具有不同模块和/或模块的其他配置的全景视频回放工具执行一种或多种所描述的技术。全景视频回放工具的特定实施例通常使用全景视频回放工具(500)的变体或补充版本。全景视频回放工具(500)内的模块之间示出的关系指示全景视频回放工具(500)中信息的一般流动;为了简单起见,其他关系未示出。
通常,全景视频回放工具(500)的给定模块可以由在CPU上可执行的软件,通过控制专用硬件(例如,用于视频加速的GPU或其他图形硬件)的软件,或者通过专用硬件(例如,在ASIC中)来实现。特别地,在一些示例实现中,视频解码操作和用于在不同投影之间映射样本值的重投影操作利用在GPU上可执行的着色器指令来实现。因此,计算密集型的重复性操作(例如,用于视频解码,用于在创建输出图片时在不同类型的投影之间进行映射)可能利用图形硬件(例如,作为针对GPU的着色器指令)或其他专用硬件来实现,并且高级操作(例如,选择要请求的流)可能在CPU上可执行的软件中实现。
VI.利用重叠分段的全景视频流式传输的示例。
本节描述利用重叠分段的全景视频流式传输的示例。一些示例涉及流配置操作,而其他示例涉及回放操作。
将全景视频的图片分区为重叠分段会降低整体压缩效率,因为相同的样本值(针对重叠区域)在不同分段中分别被编码。也就是说,集体地,更多的比特被用于针对重叠分段的编码数据。
另一方面,将全景视频的图片分区为重叠分段也倾向于降低归因于比特流切换的回放的中断的发生率。例如,当逐渐平移运动或缩放导致视图窗口不再与某个分段重叠时,该重叠可以使回放工具快速绘制高分辨率视图,而不会中断回放。切换到针对新分段的新比特流可能要花费一些时间(例如,将对新比特流的请求发送到媒体服务器,并等待新比特流中可以开始解码的切换点)。在重叠分段的情况下,如果视图方向和/或缩放因子改变,则回放工具可以更快地标识将被用于创建针对视图窗口的输出图片的新的分段/流。由于相邻分段之间的重叠,对于视图方向和/或缩放因子的逐渐且一致的变化,回放工具实际上会在视图窗口从当前分段移出到新分段时抢先取回针对新分段的编码数据。假定视图窗口的运动不是极端的,则到视图窗口到达相邻的新分段的非重叠部分时,相邻的新分段的内容已经被取回并且重构。这对观看者隐藏了网络延迟和流切换延迟,并且避免了回放中断。因此,在回放期间视图方向或缩放逐渐变化的情况下,使用重叠分段可以支持局部响应。如果视图窗口突然改变在其内容已经被取回和重构的分段内的位置,则使用重叠分段会产生一些“缓冲垫(cushion)”。A.利用重叠分段的全景视频的自适应流式传输的流配置操作的第一示例。
图6a示出了利用重叠分段的全景视频的自适应流式传输的流配置操作的第一示例(601)。在第一示例(601)中,全景视频的输入图片(610)在等角矩形投影中。
参考图6a,流配置工具接收或创建等角矩形投影中的一系列输入图片,诸如输入图片(610)。输入图片可以从多个相机视频流(与来自中央位置的不同视图相关联)创建,也可以从来自全向相机的视频流创建。例如,等角矩形投影中的输入图片的分辨率为4K(3840×2160)或更高。
针对球面投影坐标中的phi和theta(θ)的不同值,流配置工具将输入图片(610)拆分为重叠分段(630)。通常,重叠分段(630)与不同视图方向相关联。重叠分段(630)中的每个与针对全景视频的球体表面的区域相对应,并且使用针对球体表面的phi和theta坐标范围进行参数化。替代地,可以以其他方式对分段630进行参数化。
重叠分段(630)可以具有相同尺寸或不同尺寸。例如,重叠分段(630)中的每个的空间分辨率为1080p、720p或某个其他尺寸。集体地,重叠分段(630)覆盖输入图片(610)的所有实际内容。在图6a中,输入图片(610)被分区为六个重叠分段。更一般地,分段的数目n取决于实现(例如,n为8、12、16或32)。重叠分段(630)中的每个与输入图片(610)的相邻分段重叠。重叠的程度取决于实现(例如,10%、20%、30%)。通常,当在回放期间视图方向、视场或缩放因子发生变化时,具有更大范围的重叠可以为相邻分段的编码数据的取回提供更多“提前期”。另一方面,具有更大范围的重叠会导致对更多样本值进行冗余编码,这可能会增加总比特率并且增加每个流(分段)的比特率。
重叠程度可以是静态的。例如,在默认情况下,输入图片(610)始终以相同方式(或以取决于输入图片(610)的分辨率、要编码的视频流的图片大小、重叠程度、或在流配置开始时已知的其他因素)进行分区。替代地,在流配置和回放期间,重叠分段(630)的计数、重叠分段(630)的大小和重叠程度可以是可配置的和/或可调节的。特别地,重叠程度可以根据诸如网络连接的预期可靠性和视图窗口的预期位置改变(例如,由于平移或缩放)的多少等因素来调节。如果网络连接可靠,则需要较少重叠来隐藏针对流切换事件的延迟问题。如果网络连接不可靠,则需要更多重叠来隐藏针对流切换事件的延迟问题。如果视图窗口的位置预期是静止的,则需要较少重叠来隐藏针对流切换事件的延迟问题。如果视图窗口的位置预期会快速变化,则需要更多重叠来隐藏针对流切换事件的延迟问题。
可以应用具有不同重叠程度的分区的不同变体。例如,在资源允许的情况下,一个版本的重叠分段(630)可以具有较少重叠(例如,5%),并且被用于具有相对静止的视图窗口并且通过可靠网络连接进行连接的回放工具。另一版本的分段可以具有更多重叠(例如,30%),并且被用于具有快速改变位置的视图窗口和/或通过不可靠网络连接进行连接的回放工具。
流配置工具可以根据需要生成针对重叠分段(630)的任意多个phi/theta组合。这些组合可以被预先设置或被适配到所请求的视图。例如,分区模式的“中心”可以基于大多数视图窗口的焦点(或预期焦点)的位置来改变。如果某个分段/流以焦点为中心,则回放工具可能不需要从多个比特流请求并且组合这些分段。替代地,可以简单地添加以焦点为中心的新分段。
流配置工具还创建指示与相应重叠分段(630)相关联的球面坐标的清单文件(未示出)。替代地,可以以某种其他方式针对重叠分段(630)中的每个发送参数,该参数指示输入图片(610)的哪个部分被该分段覆盖。参数可以是每个分段的phi和theta值、或用于导出关于该分段的范围的相同信息的其他信息。
流配置工具将重叠分段(630)添加到对应视频流。在图6a中,六个重叠分段(630)被分别添加到对应视频流(650……655)。
流配置工具分别对对应视频流(650……655)进行编码,从而针对相应分段产生编码数据(670……675)的比特流。因此,流配置工具将从输入图片(610)分区得到的多个重叠分段(630)编码为不同视频流(650……655)的一部分。分段1被编码为图片流1,分段2被编码为图片流2,以此类推。以这种方式,全景视频的输入图片(610)的不同分段以编码数据(670……675)的不同比特流表示。
最后,流配置工具缓冲编码数据(670……675)。编码数据(670……675)可以直接被发送到一个或多个回放工具。但是,在大多数配置中,编码数据(670……675)被发送到媒体服务器。媒体服务器还可以存储清单文件,该清单文件具有关于重叠分段(630)和流的细节。
B.利用重叠分段的全景视频的自适应流式传输的流配置操作的第二示例。
图6b示出了利用重叠分段的全景视频的自适应流式传输的流配置操作的第二示例(602)。在第二示例(602)中,输入图片(612)在正弦投影中。
参考图6b,流配置工具接收或创建正弦投影中的一系列输入图片,诸如输入图片(612)。根据在等角矩形投影或立方体贴图投影的输入图片,流配置工具可以将输入图片转换为正弦投影。正弦投影可以具有单个折叠或多个折叠(例如,双折叠投影)。对于单折叠正弦投影,正弦投影包括被空白区域(例如,具有默认值,诸如黑色或灰色)包围的全景视频内容。对于双折叠正弦投影,正弦投影包括由空白区域(例如,具有默认值,诸如黑色或灰色)分隔开的两个“半球”的全景视频内容。例如,正弦投影中的输入图片的分辨率为8K或更高,其高于等角矩形表示中的输入图片。与等角矩形投影相比,正弦投影表示朝向球体“极点”的内容,而没有过度拉伸、变形等,这可以使后续压缩操作(诸如运动估计)更加有效。(在等角矩形投影中,极点周围的细节被分散并且拉伸。在压缩过程中也无法利用冗余。)
针对球面投影坐标中的phi和theta(θ)的不同值,流配置工具将输入图片(612)拆分为重叠分段(632),总体上如参考图6a所述。然而,由于输入图片(612)在正弦投影中,因此重叠分段(632)可以包括在输入图片(612)的实际内容之外的空白区域中的分段的默认样本值(例如,黑色或灰色)。在分区时,重叠分段(632)的放置可以被配置为减少分段中的默认样本值的数目。集体地,重叠分段(632)仍然覆盖全景视频的输入图片(612)的所有实际内容。在图6b中,输入图片(612)被分区为七个重叠分段。更一般地,分段的数目n取决于实现(例如,n为8、12、16或32)。重叠分段(632)之间的重叠程度取决于实现,并且可以是静态的或动态的,总体上如参考图6a所述。流配置工具可以生成针对重叠分段(632)的各种phi/theta组合,总体上如参考图6a所述。
尽管图6b示出了正弦投影中的单独的输入图片(612),但是实际上,输入图片到正弦投影的转换可以是名义上的。也就是说,正弦投影中的相应重叠分段(632)的样本值可以直接根据等角矩形投影、立方体贴图投影或其他输入投影中的输入图片来确定。
流配置工具可以创建清单文件,总体上如参考图6a所述。流配置工具将重叠分段(632)添加到对应视频流。在图6b中,七个重叠分段(632)被分别添加到对应视频流(660……666)。流配置工具分别对对应视频流(660……666)进行编码,从而针对相应分段产生编码数据(680……686)的比特流。因此,流配置工具将从输入图片(612)分区得到的多个重叠分段(632)编码为不同视频流(660……666)的一部分。分段1被编码为图片流1,分段2被编码为图片流2,以此类推。以这种方式,全景视频的输入图片(612)的不同分段以编码数据(680……686)的不同比特流表示。最后,流配置工具缓冲编码数据(680……686)。编码数据(680……686)可以直接被发送到一个或多个回放工具。但是,在大多数配置中,编码数据(680……686)被发送到媒体服务器,该媒体服务器还可以存储清单文件,该清单文件具有关于重叠分段(632)和流的细节。
C.具有重叠分段的全景视频的图片的示例。
图7是示出正弦投影中的全景视频的图片(710)的重叠分段的示例(700)的图。正弦投影中的图片(710)已经被分区为大小相等的七个重叠分段。重叠分段标记为0……6。
图7还示出了重叠分段之一(分段5)的经扩大的视图。分段5包括全景视频的图片(710)的实际内容——示出为无阴影。尽管分段5包括仅是分段5(而不是其他任何分段)的一部分的某些实际内容,但是分段5的重叠区域(740)包括也是一个或多个其他分段(具体地,分段3、4和6)的一部分的实际内容。如果视图窗口移入重叠区域(740)中的一个或多个中,则回放工具可以抢先取回也包括该重叠区域的相邻分段中的一个或多个的内容。分段5还包括针对空白区域的默认值(750)(例如,中等灰色值),其用阴影线示出。
D.利用重叠分段的全景视频的自适应流式传输的回放操作的第一示例。
图8a示出了利用重叠分段的全景视频的自适应流式传输的回放操作的第一示例(801)。在第一示例(801)中,全景视频的图片的重叠分段(830)在等角矩形投影中。
回放工具周期性地为观看者确定全景视频的球面投影(810)中的视图窗口(811)。在回放期间,观看者可以控制相对于全景视频的中心处的观看者/相机位置的视图方向。观看者还可以能够控制视场(例如,窄、宽)和/或缩放因子。视图窗口(811)取决于视图方向,并且还可以取决于视场和/或缩放因子。
回放工具还从媒体服务器(或流配置工具)请求清单文件。在接收到清单文件之后,回放工具标识全景视频的哪些分段将被用来针对视图窗口(811)创建输出图片(890)。具体地,回放工具标识一个或多个分段,每个分段至少包含视图窗口(811)的一部分。图8a示出了全景视频的图片的重叠分段(830)。在图8a中,重叠分段(830)中的两个(分段4和5)各自包含视图窗口(811)的至少一部分,其被示出为到全景视频的图片上的投影(834)。回放工具分别选择针对所标识的(多个)分段的一个或多个比特流。
回放工具请求针对所选择的(多个)比特流的编码数据。例如,取决于配置,回放工具从流配置工具或媒体服务器请求编码数据。回放工具可以在逐图片的基础上或在某个其他基础上请求针对所选择的(多个)比特流的编码数据。在图8a的示例(801)中,回放工具请求针对比特流4的编码数据(854)并且请求针对比特流5的编码数据(855)。
回放工具接收和解码针对所选择的(多个)比特流的编码数据,从而重构所标识的(多个)分段。在图8a的示例(801)中,回放工具解码针对比特流4的编码数据(854)以重构分段4(874),并且回放工具解码针对比特流5的编码数据(855)以重构分段5(875)。
回放工具根据所重构的(多个)分段针对视图窗口(811)创建输出图片(890)。这样做,针对输出图片(890)的位置,回放工具选择在所重构的(多个)分段的对应位置处的样本值,或者通过在所重构的(多个)分段的相邻样本值之间进行插值来确定在对应位置处的样本值。输出图片(890)可以在屏幕投影(用于显示)或其他(例如,等角矩形)投影(用于后续绘制)中。因此,为了查找所重构的(多个)分段中的对应位置,回放工具可以在不同投影之间扭曲(warp),例如,从针对输出图片的屏幕投影到针对重叠分段的等角矩形投影(830)。回放工具还可以执行各种后处理操作(例如,将颜色转换到适合于显示设备的颜色空间)。
在回放期间,如果视图窗口(811)改变,则回放工具可以标识将被用于针对视图窗口(811)创建输出图片(890)的新的分段/比特流。由于相邻分段之间的重叠,对于视图方向和/或缩放因子的逐渐且一致的变化,回放工具实际上可以在视图窗口(811)从当前分段移出到新分段中时抢先获取新的分段。到视图窗口(811)到达新分段的非重叠部分时,新分段的内容已经被取回和重构。以这种方式,回放工具可以向观看者隐藏网络等待时间和流切换等待时间,并且避免了回放的中断。
E.用于利用重叠分段的全景视频的自适应流式传输的回放操作的第二示例。
图8b示出了利用重叠分段的全景视频的自适应流式传输的回放操作的第二示例(802)。在第二示例(802)中,全景视频的图片的重叠分段(831)在正弦投影中。全景视频的图片的重叠分段(831)可以如参考图6b的示例(602)所述进行组织。
如在图8a的示例(801)中,回放工具周期性地为观看者确定全景视频的球面投影(810)中的视图窗口(811)。在接收到清单文件之后,回放工具标识全景视频的重叠分段(831)中的哪些将被用于针对视图窗口(811)创建输出图片(892)。具体地,回放工具标识一个或多个重叠分段(831),每个重叠分段包含视图窗口(811)的至少一部分。在图8b中,重叠分段(831)中的两个(分段2和6)各自包含视图窗口(811)的至少一部分,其被示出为到全景视频的图片上的投影(832)。回放工具分别选择针对所标识的(多个)分段的一个或多个比特流。
回放工具请求针对所选择的(多个)比特流的编码数据,总体上如参考图8a所述。在图8b的示例(802)中,回放工具请求针对比特流2的编码数据(852),并且请求针对比特流6的编码数据(856)。回放工具接收并且解码针对所选择的(多个)比特流的编码数据,从而重构所标识的(多个)分段。在图8b的示例(802)中,回放工具解码针对比特流2的编码数据(852)以重构分段2(872),并且回放工具解码针对比特流6的编码数据(856)以重构分段6(876)。回放工具根据所重构的(多个)分段针对视图窗口(811)创建输出图片(892),总体上如参考图8a所述。为了在所重构的(多个)分段中查找对应位置,回放工具可以在不同投影之间扭曲,例如,从针对输出图片的屏幕投影到针对重叠分段的正弦投影(831)。
VII.利用具有重叠分段的全景视频的流配置的示例技术。
图9示出了利用重叠分段的全景视频的流配置的示例技术(900)。如参考图4所述的全景视频流配置工具或其他全景视频流配置工具可以执行示例技术(900)。
流配置工具接收(910)全景视频的输入图片。通常,输入图片在输入投影中,输入投影诸如等角矩形投影、立方体贴图投影或正弦投影。流配置工具根据分区设置将输入图片拆分(920)为多个重叠分段。例如,分区设置包括分段的计数、分段的大小、分段的位置、以及分段之间的重叠程度。多个分段中的每个分段与多个分段中的至少一个其他分段重叠。(这最终降低了整体压缩效率,但是支持在全景视频回放期间由于比特流切换而引起的中断的发生率的降低。)例如,对于多个分段中的每个分段,该分段与多个分段之中的每个相邻分段重叠。
在一些配置中,当将输入图片拆分为多个分段(在中间投影中)时,流配置工具从输入投影将输入图片投影到中间投影。例如,输入投影是等角矩形投影或立方体贴图投影,而中间投影是正弦投影。当多个分段在正弦投影中时,多个分段中的至少一个可以包括具有默认值(例如,黑色值或灰度值,不表示全景视频的输入图片的内容)的至少一些样本值。
流配置工具分别将多个分段添加(930)到对应视频流以用于编码。
图9示出了两个循环。作为格式化流水线的循环的一分段,流配置工具检查(940)是否要继续针对下一输入图片的操作。如果是,则流配置工具接收(910)下一输入图片,将其拆分(920)为多个重叠分段,并且将这些分段添加(930)到对应视频流。以这种方式,流配置工具迭代地拆分输入图片并且将输入图片的分段添加到对应视频流。
作为编码流水线的一部分,流配置工具针对输入图片分别对对应视频流中的多个分段进行编码(950)。这分别产生了针对多个分段的编码数据,作为针对对应视频流的多个比特流的一部分。通常,比特流是视频基本比特流。视频基本比特流中的编码数据可以被复用到单个容器流中以用于递送到媒体服务器。流配置工具存储(960)编码数据以用于递送(例如,递送到媒体服务器,或直接递送到一个或多个全景视频回放工具)。流配置工具检查(970)是否要继续编码操作,并且如果是,则对下一输入图片的分段进行编码(950)。以这种方式,作为针对编码流水线的循环的一部分,流配置工具对在格式化流水线中被添加到视频流的图片的分段进行编码。
流配置工具还可以产生一个或多个清单文件。(多个)清单文件包括针对多个比特流中的每个指示多个分段之一的位置(就输入投影或球面投影而言)的信息,多个分段之一的内容是针对该比特流的对应视频流的一部分。例如,对于每个分段,清单文件包括针对该分段的phi和theta坐标。流配置工具可以将(多个)清单文件递送到媒体服务器,以用于随后递送到一个或多个回放工具。或者,流配置工具可以将(多个)清单文件直接递送到一个或多个回放工具。(多个)清单文件可以作为基本比特流的用户数据、容器中的元数据或以某种其他方式被递送。替代地,流配置工具和(多个)回放工具可以在不交换(多个)清单文件中的信息的情况下进行操作,并且输入图片根据静态的预定义的模式被分区为多个分段。
在某些配置中,分区设置可以自适应地改变。例如,流配置工具可以接收反馈的指示,并且至少部分地基于反馈的指示来调节分区设置。反馈的指示可以包括网络连接质量的指示、视图窗口改变活动的幅度的指示、哪个视图方向普遍的指示、和/或某种其他类型的反馈。为了调节分区设置,流配置工具可以改变多个分段之间的重叠程度。例如,如果网络连接质量较差或视图窗口改变活动较高,则流配置工具可以增加相邻分段之间的重叠程度。或者,如果网络连接质量良好且视图窗口改变活动较少,则流配置工具可以减少相邻分段之间的重叠程度。替代地,流配置工具可以改变重叠分段的计数、改变重叠分段中的至少一些的相对大小、改变重叠分段中的至少一些的位置、在新位置处向重叠分段添加一个或多个分段、和/或从重叠分段移除一个或多个分段。例如,响应于哪个视图方向普遍的指示,流配置工具可以添加一个或多个分段或重新定位分段以聚焦于普遍视图方向(并且从而降低在普遍视图方向周围切换的发生率)。替代地,流配置工具可以对分区设置进行其他改变。
VIII.利用重叠分段的全景视频的回放的示例技术。
图10示出了利用重叠分段的全景视频的回放的示例技术(1000)。如参考图5所述的全景视频回放工具或其他全景视频回放工具可以执行示例技术(1000)。
全景视频回放工具确定(1010)用于全景视频的回放的视图窗口。例如,视图窗口取决于视图方向、视场和/或缩放因子。回放工具可以接收针对应用的视图方向的指示。例如,视图方向的指示是针对视图方向的一组航向、俯仰和滚动值。或者,视图方向的指示是一组仿射变换系数,它们指定了针对视图方向的空间旋转。或者,视图方向以其他方式指定。回放工具可以从应用或从由应用指定的来源接收视图方向的指示。回放工具还可以接收针对应用的视场和/或缩放因子的指示。
从全景视频的多个分段之中,回放工具标识(1020)包含视图窗口的至少一部分的一个或多个分段。多个分段中的每个分段与多个分段中的至少一个其他分段重叠,这降低了归因于比特流切换的中断的发生率。例如,回放工具标识包含视图窗口的至少一部分的重叠分段中的每个。针对所标识的(多个)分段,回放工具在针对对应视频流的多个比特流之中选择(1030)一个或多个比特流。
图10示出了两个循环。作为中的视图窗口流水线的循环的一部分,回放工具检查(1040)视图窗口是否已经改变(例如,由于视图方向、视场或缩放因子的改变)。如果是,则回放工具确定(1010)视图窗口,标识(1020)包含视图窗口的(多个)分段,并且选择(1030)针对所标识的(多个)分段的(多个)比特流。以这种方式,回放工具可以迭代地执行操作以:确定(1010)视图窗口、标识(1020)包含视图窗口的至少一部分的(多个)分段、并且选择(1030)针对所标识的(多个)分段的(多个)比特流。
作为解码和重构流水线的一分段,回放工具针对全景视频的输入图片,分别请求(1050)在针对所标识的(多个)分段的所选择的(多个)比特流中的编码数据。取决于配置,回放工具可以从媒体服务器或直接从全景视频流配置工具请求编码数据。回放工具可以针对输入图片的各部分或针对每个输入图片做出单独的请求,或者回放工具可以批量请求。
回放工具接收(1060)编码数据(例如,从媒体服务器或直接从全景视频流配置工具)。回放工具针对输入图片对编码数据进行解码(1070)以重构针对所标识的(多个)分段的样本值。然后,至少部分地基于所重构的(多个)分段,回放工具创建(1080)输出图片。在创建输出图片时,回放工具可以将所重构的(多个)分段从输入投影(例如,等角矩形投影)或中间投影(例如,正弦曲线投影)投影到输出投影(例如,屏幕投影)。回放工具存储(1090)输出图片以用于输出到显示设备。回放工具检查(1095)是否要继续解码和重构操作,并且如果是,则请求(1050)并且解码(1070)针对下一输入图片的一个或多个分段的编码数据。以这种方式,作为解码和重构流水线的循环的一部分,回放工具将重构在视图窗口流水线中所标识的分段。
回放工具可以接收一个或多个清单文件(例如,从媒体服务器或直接从流配置工具接收)。(多个)清单文件包括针对多个比特流中的每个指示多个分段之一的位置(就输入投影或球面投影而言)的信息,多个分段之一的内容是针对该比特流的对应视频流的一部分。例如,针对每个分段,清单文件包括针对该分段的phi和theta坐标。回放工具可以使用(多个)清单文件来标识(1020)包含视图窗口的至少一部分的(多个)分段和/或选择(1030)针对所标识的分段的(多个)比特流。当基于所重构的(多个)分段创建(1080)输出图片时,回放工具也可以使用(多个)清单文件。(多个)清单文件可以作为基本比特流的用户数据、容器中的元数据或以其他某种方式进行递送。替代地,流配置工具和(多个)回放工具可以在不交换(多个)清单文件中的信息的情况下进行操作,并且输入图片根据静态的预定义的模式被分区为多个分段。
回放工具可以将反馈的指示发送到聚合反馈的流配置工具或中介。反馈的指示可以包括网络连接质量的指示、视图窗口改变活动的幅度的指示、哪个视图方向普遍的指示、和/或某种其他类型的反馈。反馈可以用于调节分区设置,例如,如上一节所述。
IX.利用合成图片的全景视频流式传输的示例。
本节描述利用合成图片的全景视频流式传输的示例。一些示例涉及流配置操作,而其他示例涉及回放操作。
合成图片包括全景视频的输入图片的高分辨率分段以及该输入图片的低分辨率版本。在正常操作下,回放工具可以使用所重构的(多个)的高分辨率分段来绘制全景视频的高质量视图。但是,如果视图窗口发生巨大变化,或者针对特定分段的编码数据丢失或损坏,则回放工具可以暂时使用输入图片的低分辨率版本来绘制针对全景视频的视图的较低质量的细节,而不会中断回放,直到取回或恢复针对(多个)高分辨率分段的编码数据。
使用全景视频的合成图片可能会降低整体压缩效率,因为可能根本不被用于绘制的输入图片的低分辨率版本的样本值被冗余编码。也就是说,额外的比特被用于针对输入图片的低分辨率版本的编码数据。另一方面,当视图窗口发生巨大变化或针对高分辨率分段的编码数据丢失或损坏时,使用合成图片还倾向于降低回放中断的发生率。当视图窗口发生巨大变化时,切换到针对新分段的新比特流可能要花费一些时间(例如,将对新比特流的请求发送到媒体服务器,并且等待新比特流中可以开始解码的切换点)。类似地,当针对高分辨率分段的编码数据丢失或损坏时,恢复针对该分段的比特流的编码数据会花费一些时间。直到取回/恢复针对(多个)高分辨率分段的编码数据之前为止,回放工具可以使用输入图片的低分辨率版本来绘制全景视频的视图的较低质量的细节,而不会中断回放。这对观看者隐藏了网络延迟和流切换延迟,并且避免了回放中断。
A.利用合成图片的全景视频的自适应流式传输的流配置操作的第一示例。
图11a示出了利用合成图片的全景视频的自适应流式传输的流配置操作的第一示例(1101)。在第一示例(1101)中,全景视频的输入图片(1110)在等角矩形投影中。
参考图11a,流配置工具接收或创建等角矩形投影中的一系列输入图片,诸如输入图片(1110)。输入图片可以从多个相机视频流(与来自中央位置的不同视图相关联)创建,也可以从来自全向相机的视频流创建。例如,等角矩形投影中的输入图片的分辨率为4K(3840×2160)或更高。
针对球面投影坐标中的phi和theta(θ)的不同值,流配置工具将输入图片(1110)拆分为多个分段(1120)。分段(1120)可以是非重叠的,或者如第VI节所述,可以是重叠的。通常,分段(1120)与不同视图方向相关联。分段(1120)中的每个与针对全景视频的球体表面的区域对应,并且使用针对球体表面的phi和theta坐标范围进行参数化。替代地,可以以某种其他方式对分段(1120)进行参数化。分段(1120)可以具有相同尺寸或不同尺寸。例如,分段(1120)中的每个的空间分辨率为1080p、720p或某个其他尺寸。集体地,分段(1120)覆盖输入图片(1110)的所有实际内容。在图11a中,输入图片(1110)被分区为六个非重叠分段。更一般地,分段的数目n取决于实现(例如,n为8、12、16或32)。
在默认情况下,输入图片(1110)始终以相同方式(或以取决于输入图片(1110)的分辨率、待编码的视频流的图片大小、或在流配置开始时已知的其他因素的方式)进行分区。替代地,在流配置和回放期间,分段的计数(1120)和分段的尺寸(1120)可以是可配置的和/或可调节的。
流配置工具可以根据需要生成针对重叠分段(1120)的任意多个phi/theta组合。这些组合可以被预先设置或被适配到所请求的视图。例如,分区模式的“中心”可以基于大多数视图窗口的焦点(或预期焦点)的位置来改变。如果某个分段/流以焦点为中心,则回放工具可能不需要从多个比特流请求并且组合这些分段。替代地,可以简单地添加以焦点为中心的新分段。
流配置工具还创建指示与相应分段(1120)相关联的球面坐标的清单文件(未示出)。替代地,可以以其他方式针对分段(1120)中的每个发送参数,该参数指示输入图片(1110)的哪个部分被该分段覆盖。参数可以是每个分段的phi和theta值、或用于导出关于该分段的范围的相同信息的其他信息。
流配置工具创建全景视频的输入图片的低分辨率版本(1130)。例如,流配置工具对全景视频的输入图片进行下采样(1110)。流配置工具可以以相同的因子水平和竖直地或者以不同因子水平和竖直地对输入图片(1110)进行下采样。
流配置工具将分段(1120)和输入图片的低分辨率版本添加到合成图片(1140……1145)。对于分段(1120)中的每个,流配置工具将该分段与输入图片的低分辨率版本(1130)组合以制造合成图片(1140……1145)中的对应合成图片。以这种方式,流配置工具针对分段(1120)中的每个创建不同的合成图片。例如,合成图片0(1140)包括分段0和输入图片的低分辨率版本(1130)。合成图片5(1140)包括分段5和输入图片的低分辨率版本(1130)。
在图11a的示例(1101)中,输入图片的低分辨率版本(1130)在等角矩形投影中。替代地,输入图片的低分辨率版本(1130)可以在正弦投影或其他投影中。输入图片的低分辨率版本(1130)可以与分段(1120)在相同投影(例如,正弦或均等角矩形)中,也可以在不同投影中(例如,对于分段(1120),在正弦投影中,对于输入图片的低分辨率版本(1130),在等角矩形投影中)。
输入图片的低分辨率版本(1130)可以被放在合成图片(1140……1145)中的预定义位置处。或者,该位置可以在清单文件中指定。输入图片的低分辨率版本(1130)可以被合成在分段(1120)之一的下方,或者以某种其他配置被布置在单个图片中。替代地,合成图片可以组织为帧包装布置中的多个视图。
流配置工具将合成图片(1140……1145)添加到对应视频流。在图11a中,六个合成图片(1140……1145)被分别添加到对应视频流(1150……1155)。
流配置工具分别对对应视频流(1150……1155)进行编码,从而针对相应合成图片产生编码数据(1170……1175)的比特流。因此,流配置工具将包括输入图片(1110)的不同分段(1120)的合成图片(1140……1145)编码为不同视频流(1150……1155)的一部分。合成图片1被编码为图片流1,合成图片2被编码为图片流2,以此类推。以这种方式,全景视频的输入图片(1110)的不同分段的合成图片以编码数据(1170……1175)的不同比特流表示。
最后,流配置工具缓冲编码数据(1170……1175)。编码数据(1170……1175)可以直接被发送到一个或多个回放工具。但是,在大多数配置中,编码数据(1170……1175)被发送到媒体服务器。媒体服务器还可以存储清单文件,该清单文件具有关于分段(1120)和流的细节。
B.利用合成图片的全景视频的自适应流式传输的流配置操作的第二示例。
图11b示出了利用合成图片的全景视频的自适应流式传输的流配置操作的第二示例(1102)。在第二示例(1102)中,输入图片(1112)在正弦投影中,并且输入图片(1112)被拆分为重叠分段(1122)。
参考图11b,流配置工具接收或创建正弦投影中的一系列输入图片,诸如输入图片(1112)。如参考图6b的示例(602)所述,根据等角矩形投影或立方体贴图投影中的输入图片,流配置工具可以将输入图片转换为正弦投影。
针对球面投影坐标中的phi和theta(θ)的不同值,流配置工具将输入图片(1112)拆分为重叠分段(1122),总体上如第VI节所述。由于输入图片(1112)在正弦投影,因此重叠分段(1122)可以包括针对在输入图片(1112)的实际内容之外的空白区域中的部分的默认样本值(例如,黑色或灰色)。在图11b中,输入图片(1112)被分区为七个重叠分段。更一般地,分段的数目n取决于实现(例如,n为8、12、16或32)。重叠分段(1122)之间的重叠程度取决于实现,并且可以是静态的或动态的,如第VI节所述。流配置工具可以创建清单文件,该清单文件包括关于分段(1122)的信息,如第VI节所述。
尽管图11b示出了正弦投影中的单独的输入图片(1112),但是实际上,输入图片到正弦投影的转换可以是名义上的。也就是说,正弦投影中的相应重叠分段(1122)的样本值可以直接根据等角矩形投影、立方体贴图投影或其他输入投影中的输入图片来确定。
如参考图11a的示例(1101)所述,流配置工具创建全景视频的输入图片的低分辨率版本(1132)。输入图片的低分辨率版本(1132)可以与分段(1122)在相同投影中(例如,均在正弦投影中),也可以在不同投影中(例如,对于分段(1122),在正弦投影中,对于输入图片的低分辨率版本(1132),在等角矩形投影中)。
流配置工具将输入图片的分段(1122)和低分辨率版本(1132)添加到合成图片(1190……1196)。对于分段(1122)中的每个,流配置工具将该分段与输入图片的低分辨率版本(1132)组合以制造合成图片(1190……1196)中的对应合成图片。以这种方式,流配置工具针对分段(1122)中的每个创建不同得合成图片。例如,合成图片0(1190)包括分段0和输入图片的低分辨率版本(1132)。合成图片6(1196)包括分段6和输入图片的低分辨率版本(1132)。
输入图片的低分辨率版本(1132)可以被放在合成图片(1190……1196)中的预定义位置处。或者,该位置可以在清单文件中指定。输入图片的低分辨率版本(1132)可以被合成在分段(1122)之一的下方,或者以某种其他配置被布置在单个图片中。替代地,合成图片可以组织为帧包装布置中的多个视图。
流配置工具将合成图片(1190……1196)添加到对应视频流。在图11b中,七个合成图片(1190……1196)被分别添加到对应视频流(1160……1166)。流配置工具分别对对应视频流(1160……1166)进行编码,从而针对相应的合成图片产生编码数据(1180……1186)的比特流。因此,流配置工具将包括输入图片(1112)的不同分段(1122)的合成图片(1190……1196)编码为不同视频流(1160……1166)的一部分。
最后,流配置工具缓冲编码数据(1180……1186)。编码数据(1180……1186)可以直接被发送到一个或多个回放工具。但是,在大多数配置中,编码数据(1180……1186)被发送到媒体服务器。媒体服务器还可以存储清单文件,该清单文件具有关于分段(1122)和流的细节。
C.合成图片示例。
图12是示出全景视频的示例合成图片(1200)的图。合成图片(1200)包括输入图片的分段(1220)。例如,分段(1220)是从在等角矩形投影、立方体贴图投影,正弦投影或其他投影中的输入图片分区得到的高分辨率分段。合成图片(1200)还包括输入图片的低分辨率版本(1230)。输入图片的低分辨率版本(1230)描绘了整个输入图片,尽管其空间分辨率低于原始输入图片。输入图片的低分辨率版本(1230)可以在等角矩形投影、立方体贴图投影、正弦投影或其他投影中。在图12中,输入图片的低分辨率版本(1230)在输入图片的分段(1220)下方。替代地,合成图片(1200)可以以其他方式来组织。
D.利用合成图片的全景视频的自适应流式传输的回放操作的第一示例。
图13a示出了利用合成图片的全景视频的自适应流式传输的回放操作的第一示例(1301)。在第一示例(1301)中,全景视频的图片的分段(1330)在等角矩形投影中。
回放工具周期性地为观看者确定球面投影(1310)的在全景视频的视图窗口(1311)。在回放期间,观看者可以控制相对于全景视频的中心处的观看者/相机位置的视图方向。观看者还可以能够控制视场(例如,窄、宽)和/或缩放因子。视图窗口(1311)取决于视图方向,并且也可以取决于视场和/或缩放因子。
回放工具还从媒体服务器(或流配置工具)请求清单文件。在接收到清单文件之后,回放工具标识全景视频的哪些分段将被用来针对视图窗口(1311)创建输出图片(1390)。具体地,回放工具标识一个或多个分段,每个分段至少包含视图窗口(1311)的一部分。图13a示出了全景视频的图片的非重叠分段(1330)。在图13a中,分段(1330)之一(分段4)包含视图窗口(1311),其被示出为到全景视频的图片上的投影(1334)。回放工具分别选择针对所标识的(多个)分段的一个或多个比特流。
回放工具请求针对所选择的(多个)比特流的编码数据。例如,取决于配置,回放工具从流配置工具或媒体服务器请求编码数据。回放工具可以在逐图片的基础上或在某个其他基础上请求针对所选择的(多个)比特流的编码数据。在图13a的示例(1301)中,回放工具请求针对比特流4的编码数据(1354)。
回放工具接收和解码针对所选择的(多个)比特流的编码数据,从而重构包括所标识的(多个)分段的(多个)合成图片。在图13a的示例(1301)中,回放工具解码针对比特流4的编码数据(1354)以重构包括分段4的合成图片(1364)。
回放工具根据输入图片的所重构的(多个)分段和/或所重构的低分辨率版本针对视图窗口(1311)创建输出图片(1390)。对于输出图片创建的普通模式,(多个)合成图片的所重构的(多个)的高分辨率分段支持根据(多个)分段的内容进行高分辨率视图/细节的绘制。在图13a中,所重构的(多个)分段包括分段4。针对输出图片(1390)的位置,回放工具选择在所重构的(多个)分段的对应位置处的样本值,或者通过在所重构的(多个)分段的相邻样本值之间进行插值来确定在对应位置处的样本值。只要视图窗口(1311)落在所重构的(多个)分段内,回放工具就可以绘制高质量的视图。
然而,如果视图窗口(1311)落在所重构的(多个)分段之外,则回放工具使用输出图片创建的回退(fallback)模式。在回退模式下,回放工具可以根据(多个)合成图片的低分辨率版本来绘制低质量的视图/细节,而无需从流配置工具或媒体服务器请求其他内容。针对输出图片(1390)的位置,回放工具选择在输入图片的所重构的低分辨率版本的对应位置处的样本值,或者通过在输入图片的所重构的低分辨率版本的相邻样本值之间进行插值来确定对应位置处的样本值。回放工具可以在绘制之前放大等输入图片的低分辨率版本。因此,如果视图方向或缩放因子发生巨大变化或者针对高分辨率分段的编码数据丢失,则输入图片的低分辨率版本可以根据需要支持较低分辨率视图/细节的绘制。以这种方式,尽管绘制视图的质量可能会暂时受损,但是绘制操作不会在回放期间中断。
输出图片(1390)可以在屏幕投影(用于显示)中或其他(例如,等角矩形)投影中(用于后续绘制)。为了在输入图片的所重构的(多个)分段和/或所重构的低分辨率版本中查找对应位置,回放工具可以在不同投影之间扭曲,例如,从针对输出图片的屏幕投影到针对分段(1330)的等角矩形投影。回放工具还可以执行各种后处理操作(例如,将颜色转换到适合于显示设备的颜色空间)。
在回放期间,如果视图窗口(1311)改变,则回放工具可以标识被用于针对视图窗口(1311)创建输出图片(1390)的新的分段/比特流。但是,如果视图方向和/或缩放因子突然发生巨大变化,或者针对高分辨率分段的编码数据丢失,则回放工具可以根据输入图片的低分辨率版本绘制视图/细节,直到取回或恢复针对(多个)高分辨率分段的编码数据为止。以这种方式,回放工具可以向观看者隐藏网络等待时间和流切换等待时间,并且避免了回放的中断。
E.利用合成图片的全景视频的自适应流式传输的回放操作的第二示例。
图13b示出了利用合成图片的全景视频的自适应流式传输的回放操作的第二示例(1302)。在第二示例(1302)中,全景视频的图片的重叠分段(1331)在正弦投影中。全景视频的图片的重叠分段(1331)可以如参考图6b的示例(602)和图11b的示例(1102)所述进行组织。
如在图13a的示例(1301)中,回放工具周期性地为观看者确定全景视频的在球面投影(1310)的视图窗口(1311)。在接收到清单文件之后,回放工具标识全景视频的哪些重叠分段(1331)将被用来针对视图窗口(1311)创建输出图片(1392)。具体地,回放工具标识一个或多个重叠分段(1331),每个重叠分段至少包含视图窗口(1311)的一部分。在图13b中,重叠分段(1331)中的两个(分段2和6)各自包含视图窗口(1311)的至少一部分,视图窗口(1311)被示出为到全景视频图像上的投影(1332)。回放工具分别选择针对所标识的(多个)分段的一个或多个比特流。
回放工具请求针对所选择的(多个)比特流的编码数据,总体上如参考图13a所述。在图13b的示例(1302)中,回放工具请求针对比特流2的编码数据(1352),并且请求针对比特流6的编码数据(1356)。回放工具接收并且解码针对所选择的(多个)比特流的编码数据,从而重构包括所标识的(多个)分段的(多个)合成图片。在图13b的示例(1302)中,回放工具解码针对比特流2的编码数据(1352)以重构包括分段2的合成图片(1362),并且回放工具解码针对比特流6的编码数据(1356)以重构包括分段6的合成图片(1366)。
回放工具根据输入图片的所重构的(多个)分段和/或所重构的低分辨率版本针对视图窗口(1311)创建输出图片(1392),总体上如参考图13a所述。对于输出图片创建的普通模式,(多个)合成图片的所重构的(多个)的高分辨率分段支持根据(多个)分段的内容进行高分辨率视图/细节的绘制。在图13b中,所重构的(多个)分段包括分段2和分段6。只要视图窗口(1311)落在所重构的(多个)分段内,回放工具就可以绘制高质量的视图。如果视图窗口(1311)落在所重构的(多个)分段(在图6中,分段2和6)之外,则回放工具使用输出图片创建的回退模式。在回退模式下,回放工具可以根据(多个)合成图片的低分辨率版本来绘制低质量的视图/细节,而无需从流配置工具或媒体服务器请求其他内容。因此,如果视图方向或缩放因子发生巨大变化或者针对高分辨率分段的编码数据丢失,则输入图片的低分辨率版本可以根据需要支持较低分辨率视图/细节的绘制。为了在输入图片的所重构的(多个)分段和/或所重构的低分辨率版本中查找对应位置,回放工具可以在不同投影之间扭曲,例如,从针对输出图片的屏幕投影到针对重叠分段(1331)的正弦投影。
X.利用合成图片的全景视频的流配置的示例技术。
图14示出了利用合成图片的全景视频的流配置的示例技术(1400)。如参考图4描述的全景视频流配置工具或其他全景视频流配置工具可以执行示例技术(1400)。
流配置工具接收(1410)全景视频的输入图片。通常,输入图片在输入投影中,输入投影诸如等角矩形投影、立方体贴图投影或正弦投影。输入图片的空间分辨率为4K或更高。
流配置工具创建(1420)输入图片的低分辨率版本。例如,流配置工具水平和/或竖直地对输入图片进行下采样。输入图片的低分辨率版本可以在输入投影(例如,等角矩形投影、立方体贴图投影或正弦投影)或中间投影(例如,正弦投影)中。通常,输入图片的低分辨率版本的空间分辨率低于输入图片。
流配置工具还根据分区设置将输入图片拆分(1430)为多个分段。如上所述,这些分段可以是重叠分段,也可以是非重叠分段。例如,分区设置包括分段的计数、分段的大小、分段的位置以及分段之间的重叠程度。在一些配置中,当将输入图片拆分为多个分段(在中间投影中)时,流配置工具从输入投影将输入图片投影到中间投影。例如,输入投影(针对输入图片和输入图片的低分辨率版本)是等角矩形投影或立方体贴图投影,而中间投影是正弦投影。当多个分段在正弦投影中时,多个分段中的至少一个可以包括具有默认值(例如,黑色值或灰度值,不表示全景视频的输入图片的内容)的至少一些样本值。通常,分段中的每个的空间分辨率低于输入图片的空间分辨率,但是可以高于或低于输入图片的低分辨率版本的空间分辨率。
流配置工具创建(1440)多个合成图片。合成图片中的每个包括多个分段之一,并且还包括输入图片的低分辨率版本。例如,在合成图片中的每个内,输入图片的低分辨率版本与这些分段之一相邻。在合成图片中的每个内,输入图片的低分辨率版本可以被定位在相对于多个分段之一的预定义位置处。替代地,对于合成图片中的每个,多个分段之一提供帧打包布置中的第一视图,而输入图片的低分辨率版本提供帧打包布置中的第二视图。替代地,合成图片以其他方式组织。流配置工具分别将多个合成图片添加(1450)到对应视频流以用于编码。
图14示出了两个循环。作为格式化流水线的循环的一部分,流配置工具检查(1460)是否要继续针对下一输入图片的操作。如果是,则流配置工具接收(1410)下一输入图片,创建(1420)下一输入图片的低分辨率版本,将(1430)下一输入图片拆分为多个分段,针对下一输入图片创建(1440)合成图片,并且将合成图片添加(1450)到对应视频流。以这种方式,流配置工具迭代地创建合成图片并且将其添加到对应视频流。
作为编码流水线的一部分,流配置工具针对输入图片分别对对应视频流中的多个合成图片进行编码(1470)。这分别产生了针对合成图片的编码数据,作为针对对应视频流的多个比特流的一部分。通常,比特流是视频基本比特流。视频基本比特流中的编码数据可以被复用到单个容器流中以用于递送到媒体服务器。流配置工具存储(1480)编码数据以用于递送(例如,递送到媒体服务器,或直接递送到一个或多个全景视频回放工具)。流配置工具检查(1490)是否要继续编码操作,并且如果是,则对针对下一输入图片的合成图片进行编码(1470)。以这种方式,作为编码流水线的循环的一部分,流配置工具对在格式化流水线中被添加到视频流的合成图片进行编码。
流配置工具还可以产生一个或多个清单文件。(多个)清单文件包括针对多个比特流中的每个指示多个分段之一的位置(就输入投影或球面投影而言)的信息,多个分段之一的内容是针对该比特流的对应视频流的一部分。例如,针对每个分段,清单文件包针对括该分段的phi和theta坐标。(多个)清单文件还可以包括分别指示输入图片的低分辨率版本在合成图片中的位置的信息。流配置工具可以将(多个)清单文件递送到媒体服务器,以便随后递送到一个或多个回放工具。或者,流配置工具可以将(多个)清单文件直接递送到一个或多个回放工具。(多个)清单文件可以作为基本比特流的用户数据、容器中的元数据或以其他某种方式被递送。替代地,流配置工具和(多个)回放工具可以在不交换(多个)清单文件中的信息的情况下进行操作,并且输入图片根据静态的预定义的模式被分区为多个分段。
XI.利用合成图片的全景视频的回放的示例技术。
图15示出了利用合成图片的全景视频的回放的示例技术(1500)。如参考图5所述的全景视频回放工具或其他全景视频回放工具可以执行示例技术(1500)。
全景视频回放工具确定(1510)用于全景视频的回放的视图窗口。例如,视图窗口取决于视图方向、视场和/或缩放因子。回放工具可以接收针对应用的视图方向的指示。例如,视图方向的指示是针对视图方向的一组航向、俯仰和滚动值。或者,视图方向的指示是一组仿射变换系数,它们指定了针对视图方向的空间旋转。或者,视图方向以其他方式指定。回放工具可以从应用或从由应用指定的来源接收视图方向的指示。回放工具还可以接收针对应用的视场和/或缩放因子的指示。
从全景视频的多个分段之中,回放工具标识(1520)包含视图窗口的至少一部分的一个或多个分段。分段可以是重叠分段,这可以降低归因于比特流切换的中断的发生率,也可以是非重叠分段。例如,回放工具标识包含视图窗口的至少一部分的多个分段中的每个分段。对于所标识的(多个)分段,回放工具在针对对应视频流的多个比特流之中选择(1530)一个或多个比特流。
图15示出了两个循环。作为中的视图窗口流水线的循环的一部分,回放工具检查(1540)视图窗口是否已经改变(例如,由于视图方向、视场或缩放因子的改变)。如果是,则回放工具确定(1510)视图窗口,标识(1520)包含视图窗口的(多个)分段,并且选择(1530)针对所标识的(多个)分段的(多个)比特流。以这种方式,回放工具可以迭代地执行操作以:确定(1510)视图窗口、标识(1520)包含视图窗口的至少一部分的(多个)分段、以及选择(1530)针对所标识的(多个)分段的(多个)比特流。
作为解码和重构流水线的一分段,回放工具针对全景视频的输入图片分别请求(1550)在针对所标识的(多个)分段的所选择的(多个)比特流中的编码数据。取决于配置,回放工具可以从媒体服务器或直接从全景视频流配置工具请求编码数据。回放工具可以针对输入图片的各部分或针对每个输入图片做出单独的请求,或者回放工具可以批量请求。
所标识的(多个)分段中的每个分段是还包括输入图片的低分辨率版本的合成图片的一部分。每个合成图片包括多个分段之一,并且还包括输入图片的低分辨率版本。例如,对于每个合成图片,在合成图片内输入图片的低分辨率版本与多个分段之一相邻。对于每个合成图片,输入图片的低分辨率版本和多个分段之一可以位于合成图片内的预定义位置处。替代地,对于每个合成图片,多个分段之一提供帧打包布置中的第一视图,而输入图片的低分辨率版本提供帧打包布置中的第二视图。替代地,合成图片以其他方式组织。
通常,输入图片在输入投影中,输入投影诸如等角矩形投影、立方体贴图投影或正弦投影。输入图片的空间分辨率为4K或更高。输入图片的低分辨率版本可以在输入投影(例如,等角矩形投影、立方体贴图投影或正弦投影)或中间投影(例如,正弦投影)中。通常,输入图片的低分辨率版本的空间分辨率低于输入图片。通常,多个分段中的每个分段的空间分辨率低于输入图片的空间分辨率,但是可以高于或低于输入图片的低分辨率版本的空间分辨率。
回放工具接收(1560)编码数据(例如,从媒体服务器或直接从全景视频流配置工具)。回放工具对编码数据进行解码(1570),以重构针对输入图片的所标识的(多个)分段的样本值和/或重构针对输入图片的低分辨率版本的样本值。例如,回放工具重构输入图片的所标识的(多个)分段和低分辨率版本两者。或者,如果所标识的(多个)分段完全包含视图窗口,则回放工具仅重构所标识的(多个)分段。或者,如果视图窗口发生巨大变化并且完全在所标识的(多个)分段之外,则回放工具将仅重构输入图片的低分辨率版本。
然后,至少部分地基于输入图片的所重构的(多个)分段和/或所重构的低分辨率版本,回放工具创建(1580)输出图片。例如,回放工具确定输出图片的哪些部分不能使用所重构的(多个)分段被创建,并且对于不能使用所重构的(多个)分段来创建输出图片的任何分段,使用输入图片的所重构的低分辨率版本来创建输出图片的该部分。因此,可以仅使用所重构的(多个)分段来创建输出图片。或者,可以仅使用输入图片的所重构的低分辨率版本来创建输出图片。或者,可以使用所重构的一个或多个分段来创建输出图片的至少一部分,并且可以使用输入图片的所重构的低分辨率版本来创建输出图片的至少一部分。
在创建输出图片时,回放工具可以将输入图片的所重构的(多个)分段和/或所重构的低分辨率版本从中间投影(例如,正弦投影)投影到输出投影(例如,屏幕投影)。或者,在创建输出图片时,回放工具可以将输入图片的所重构的(多个)分段和/或重构的低分辨率版本从输入投影(例如,等角矩形投影、立方体贴图投影、正弦投影)投影到输出投影(例如,屏幕投影)。
回放工具存储(1590)输出图片以用于输出到显示设备。回放工具检查(1595)是否要继续解码和重构操作,并且如果是,则请求(1550)并且解码(1570)针对下一输入图片的一个或多个分段的编码数据。以这种方式,作为解码和重构流水线的循环的一部分,回放工具将重构在视图窗口流水线中所标识的分段。
回放工具可以接收一个或多个清单文件(例如,从媒体服务器或直接从流配置工具接收)。(多个)清单文件包括针对多个比特流中的每个指示多个分段之一的位置(就输入投影或球面投影而言)的信息,多个分段之一的内容是针对该比特流的对应视频流的一部分。例如,针对每个分段,清单文件包括针对该分段的phi和theta坐标。回放工具可以使用(多个)清单文件来标识(1520)包含视图窗口的至少一部分的(多个)分段和/或选择(1530)针对所标识的分段的(多个)比特流。在基于输入图片的所重构的(多个)分段和/或所重构的低分辨率版本创建(1580)输出图片时,回放工具还可以使用(多个)清单文件。(多个)清单文件还可以包括分别指示输入图片的低分辨率版本在合成图片中的位置的信息。(多个)清单文件可以作为基本比特流的用户数据、容器中的元数据或以其他某种方式被递送。替代地,流配置工具和(多个)回放工具可以在不交换(多个)清单文件中的信息的情况下进行操作,并且输入图片根据静态的预定义的模式被分区为多个分段。
鉴于可以将所公开的发明的原理应用于其很多可能的实施例,应当认识到,所示出的实施例仅是本发明的优选示例,而不应当被认为是对本发明范围的限制。相反,本发明的范围由所附权利要求书限定。因此,我们要求保护落入这些权利要求的范围和精神内的所有内容作为我们的发明。
Claims (15)
1.一种计算机系统,包括一个或多个处理单元和存储器,其中所述计算机系统实现全景视频流配置工具,所述全景视频流配置工具包括:
输入缓冲器,被配置为存储全景视频的输入图片;
格式化器,被配置为:
根据分区设置将所述输入图片拆分为多个分段,所述多个分段中的每个分段与所述多个分段之中的至少一个其他分段重叠,从而降低整体压缩效率,但是支持中断的发生率的降低,所述中断归因于所述全景视频的回放期间的比特流切换;以及
将所述多个分段分别添加到对应的视频流;
一个或多个视频编码器,被配置为分别对所述对应的视频流中的所述多个分段进行编码,从而分别产生针对所述多个分段的编码数据,作为针对所述对应的视频流的多个比特流的一部分;以及
一个或多个输出缓冲器,被配置为存储所述编码数据以用于递送。
2.根据权利要求1所述的计算机系统,其中所述输入图片在输入投影中,并且其中所述输入投影是等角矩形投影、立方体贴图投影或正弦投影。
3.根据权利要求1所述的计算机系统,其中所述格式化器还被配置为:
从输入投影将所述输入图片投影到中间投影,所述多个分段在所述中间投影中,其中所述输入投影是等角矩形投影或立方体贴图投影,并且其中所述中间投影是正弦投影,所述多个分段中的至少一个分段包括至少一些样本值,所述至少一些样本值具有不表示所述全景视频的输入图片的内容的默认值。
4.根据权利要求1所述的计算机系统,其中所述多个比特流是视频基本比特流,并且其中所述全景视频流配置工具还包括:
复用器,用于针对所述多个比特流将所述编码数据组合为单个容器流。
5.根据权利要求1所述的计算机系统,其中所述格式化器还被配置为:
产生清单文件,所述清单文件包括信息,所述信息针对所述多个比特流中的每个比特流指示所述多个分段中的一个分段的位置,所述一个分段的内容是针对所述比特流的所述对应的视频流的一部分。
6.根据权利要求1所述的计算机系统,其中所述格式化器还被配置为:
接收反馈的指示,其中所述反馈的指示包括:
网络连接质量的指示;
视图窗口改变活动的幅度的指示;和/或
哪个视图方向普遍的指示;以及
至少部分地基于所述反馈的指示,调节所述分区设置,其中所述格式化器被配置为针对所述分区设置:
改变所述多个分段之间的重叠程度;
改变所述多个分段的计数;
改变所述多个分段中的至少一些分段的相对大小;
改变所述多个分段中的至少一些分段的位置;
在新位置处向所述多个分段添加一个或多个分段;和/或
从所述多个分段移除一个或多个分段。
7.根据权利要求1所述的计算机系统,其中针对所述多个分段中的每个分段,所述分段与所述多个分段之中的每个相邻分段重叠。
8.一种在实现全景视频流配置工具的计算机系统中的方法,包括:
接收全景视频的输入图片;
根据分区设置将所述输入图片拆分为多个分段,所述多个分段中的每个分段与所述多个分段之中的至少一个其他分段重叠,从而降低整体压缩效率,但是支持中断的发生率的降低,所述中断归因于所述全景视频的回放期间的比特流切换;
将所述多个分段分别添加到对应的视频流;
将所述对应的视频流中的所述多个分段分别进行编码,从而分别产生针对所述多个分段的编码数据,作为针对所述对应的视频流的多个比特流的一部分;以及
存储所述编码数据以用于递送。
9.一种计算机系统,包括一个或多个处理单元和存储器,其中所述计算机系统实现全景视频回放工具,所述全景视频回放工具包括:
视图控制器,被配置为:
确定用于全景视频的回放的视图窗口;
从所述全景视频的多个分段之中,标识包含所述视图窗口的至少一部分的一个或多个分段,所述多个分段中的每个分段与所述多个分段之中的至少一个其他分段重叠,从而降低中断的发生率,所述中断归因于比特流切换;以及
针对所标识的所述一个或多个分段,在针对对应的视频流的多个比特流之中选择一个或多个比特流;
流式传输控制器,被配置为针对所述全景视频的输入图片,分别请求在针对所标识的所述一个或多个分段的所选择的所述一个或多个比特流中的编码数据;
一个或多个输入缓冲器,被配置为存储所述编码数据;
一个或多个视频解码器,被配置为对所述编码数据进行解码,以重构针对所述输入图片的所标识的所述一个或多个分段;
映射器,被配置为至少部分地基于所重构的所述一个或多个分段来创建输出图片;以及
输出缓冲器,被配置为存储所述输出图片,以用于输出到显示设备。
10.根据权利要求9所述的计算机系统,其中所述视图控制器还被配置为:
接收清单文件,所述清单文件包括信息,所述信息针对所述多个比特流中的每个比特流指示所述多个分段中的一个分段的位置,所述一个分段的内容是针对所述比特流的所述对应的视频流的一部分;以及
使用所述清单文件来标识包含所述视图窗口的至少一部分的所述一个或多个分段和/或选择所述一个或多个比特流。
11.根据权利要求9所述的计算机系统,其中所述视图控制器被配置为在多个迭代中执行操作以:确定所述视图窗口、标识包含所述视图窗口的至少一部分的所述一个或多个分段、以及针对所标识的所述一个或多个分段选择所述一个或多个比特流。
12.根据权利要求9所述的计算机系统,其中所述视图控制器标识所述多个分段中的、包含所述视图窗口的至少一部分的每个分段。
13.根据权利要求9所述的计算机系统,其中所述视图窗口取决于视图方向、视场和缩放因子。
14.根据权利要求9所述的计算机系统,其中所述映射器还被配置为:
在创建所述输出图片时,从中间投影将所重构的所述一个或多个分段投影到输出投影,其中所述中间投影是正弦投影,并且其中所述输出投影是屏幕投影。
15.根据权利要求9所述的计算机系统,其中所述视图控制器还被配置为发送反馈的指示,并且其中所述反馈的指示包括:
网络连接质量的指示;
视图窗口改变活动的幅度的指示;和/或
哪个视图方向普遍的指示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/990,557 | 2018-05-25 | ||
US15/990,557 US10666863B2 (en) | 2018-05-25 | 2018-05-25 | Adaptive panoramic video streaming using overlapping partitioned sections |
PCT/US2019/031913 WO2019226369A1 (en) | 2018-05-25 | 2019-05-13 | Adaptive panoramic video streaming using overlapping partitioned sections |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112204993A true CN112204993A (zh) | 2021-01-08 |
CN112204993B CN112204993B (zh) | 2022-08-16 |
Family
ID=66641515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980034982.7A Active CN112204993B (zh) | 2018-05-25 | 2019-05-13 | 使用重叠的被分区的分段的自适应全景视频流式传输 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10666863B2 (zh) |
EP (1) | EP3804348A1 (zh) |
CN (1) | CN112204993B (zh) |
WO (1) | WO2019226369A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11900521B2 (en) | 2020-08-17 | 2024-02-13 | LiquidView Corp | Virtual window apparatus and system |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10944971B1 (en) * | 2017-05-22 | 2021-03-09 | Cinova Media | Method and apparatus for frame accurate field of view switching for virtual reality |
US10764494B2 (en) | 2018-05-25 | 2020-09-01 | Microsoft Technology Licensing, Llc | Adaptive panoramic video streaming using composite pictures |
US11212439B2 (en) * | 2018-07-24 | 2021-12-28 | Ricoh Company, Ltd. | Communication terminal, display method, and non-transitory computer-readable medium for displaying images and controller |
CN111263191B (zh) * | 2018-11-30 | 2023-06-27 | 中兴通讯股份有限公司 | 视频数据的处理方法、装置、相关设备及存储介质 |
US10742992B1 (en) * | 2019-03-26 | 2020-08-11 | Electronic Arts Inc. | Video compression for video games |
US11706375B2 (en) * | 2019-07-30 | 2023-07-18 | Intel Corporation | Apparatus and system for virtual camera configuration and selection |
US11023729B1 (en) * | 2019-11-08 | 2021-06-01 | Msg Entertainment Group, Llc | Providing visual guidance for presenting visual content in a venue |
KR20210147404A (ko) * | 2020-05-28 | 2021-12-07 | 삼성전자주식회사 | 엣지 컴퓨팅 서비스를 이용한 영상 컨텐츠 전송 방법 및 장치 |
US11210840B1 (en) * | 2020-08-27 | 2021-12-28 | Aspeed Technology Inc. | Transform method for rendering post-rotation panoramic images |
US11743440B2 (en) * | 2021-04-19 | 2023-08-29 | Apple Inc. | Transmission and consumption of multiple image subframes via superframe |
CN115988147A (zh) * | 2021-10-14 | 2023-04-18 | 瑞昱半导体股份有限公司 | 用于在显示设备中进行多重显示处理的显示控制集成电路 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050226531A1 (en) * | 2004-04-01 | 2005-10-13 | Silverstein D A | System and method for blending images into a single image |
US20060034374A1 (en) * | 2004-08-13 | 2006-02-16 | Gwang-Hoon Park | Method and device for motion estimation and compensation for panorama image |
US20120324490A1 (en) * | 2011-06-14 | 2012-12-20 | University-Industry Cooperation Group Of Kyung Hee University | Apparatus and method for providing adaptive multimedia service |
US20160352791A1 (en) * | 2015-05-27 | 2016-12-01 | Google Inc. | Streaming spherical video |
CN106464945A (zh) * | 2014-06-11 | 2017-02-22 | 谷歌公司 | 增强型流媒体回放 |
WO2017093611A1 (en) * | 2015-12-02 | 2017-06-08 | Nokia Technologies Oy | A method for video encoding/decoding and an apparatus and a computer program product for implementing the method |
US20170332117A1 (en) * | 2016-05-16 | 2017-11-16 | Google Inc. | Method and apparatus for spatial enhanced adaptive bitrate live streaming for 360 degree video playback |
WO2017202899A1 (en) * | 2016-05-25 | 2017-11-30 | Koninklijke Kpn N.V. | Spatially tiled omnidirectional video streaming |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1255021A (en) * | 1985-03-12 | 1989-05-30 | Toshihiko Hata | Image describing apparatus |
US5384912A (en) | 1987-10-30 | 1995-01-24 | New Microtime Inc. | Real time video image processing system |
ATE158129T1 (de) * | 1992-03-23 | 1997-09-15 | Canon Kk | Bildaufnahmevorrichtung mit mehreren linsen und korrektur von falschregistrierung |
JPH07298307A (ja) * | 1994-04-28 | 1995-11-10 | Canon Inc | 画像記録再生装置 |
US6549681B1 (en) * | 1995-09-26 | 2003-04-15 | Canon Kabushiki Kaisha | Image synthesization method |
US6031540A (en) * | 1995-11-02 | 2000-02-29 | Imove Inc. | Method and apparatus for simulating movement in multidimensional space with polygonal projections from subhemispherical imagery |
US6552744B2 (en) * | 1997-09-26 | 2003-04-22 | Roxio, Inc. | Virtual reality camera |
US7136096B1 (en) * | 1998-03-11 | 2006-11-14 | Canon Kabushiki Kaisha | Image processing method and apparatus, control method therefor, and storage medium |
AU4184399A (en) | 1998-05-13 | 1999-11-29 | Infinite Pictures Inc. | Panoramic movies which simulate movement through multidimensional space |
US6486908B1 (en) * | 1998-05-27 | 2002-11-26 | Industrial Technology Research Institute | Image-based method and system for building spherical panoramas |
WO2000060857A1 (en) | 1999-04-08 | 2000-10-12 | Internet Pictures Corporation | Virtual theater |
US20020046218A1 (en) * | 1999-06-23 | 2002-04-18 | Scott Gilbert | System for digitally capturing and recording panoramic movies |
US7015954B1 (en) | 1999-08-09 | 2006-03-21 | Fuji Xerox Co., Ltd. | Automatic video system using multiple cameras |
KR100415266B1 (ko) * | 2000-05-11 | 2004-01-16 | 가부시끼가이샤 도시바 | 물체영역정보 기술방법과 물체영역정보 생성장치 및 기록매체 |
US20020057739A1 (en) * | 2000-10-19 | 2002-05-16 | Takumi Hasebe | Method and apparatus for encoding video |
PL350983A1 (en) | 2001-11-30 | 2003-06-02 | Advanced Digital Broadcast Ltd | Method of scanning a high-frequency signal band and apparatus therefor |
US7421129B2 (en) | 2002-09-04 | 2008-09-02 | Microsoft Corporation | Image compression and synthesis for video effects |
JP2004234455A (ja) * | 2003-01-31 | 2004-08-19 | Canon Inc | 情報処理方法および画像再生装置 |
US6968973B2 (en) * | 2003-05-31 | 2005-11-29 | Microsoft Corporation | System and process for viewing and navigating through an interactive video tour |
US7336299B2 (en) | 2003-07-03 | 2008-02-26 | Physical Optics Corporation | Panoramic video system with real-time distortion-free imaging |
US20050058360A1 (en) * | 2003-09-12 | 2005-03-17 | Thomas Berkey | Imaging system and method for displaying and/or recording undistorted wide-angle image data |
US7606441B2 (en) * | 2003-11-27 | 2009-10-20 | Seiko Epson Corporation | Image processing device and a method for the same |
US7142209B2 (en) | 2004-08-03 | 2006-11-28 | Microsoft Corporation | Real-time rendering system and process for interactive viewpoint video that was generated using overlapping images of a scene captured from viewpoints forming a grid |
US7623682B2 (en) * | 2004-08-13 | 2009-11-24 | Samsung Electronics Co., Ltd. | Method and device for motion estimation and compensation for panorama image |
US7627194B2 (en) * | 2004-08-13 | 2009-12-01 | Samsung Electronics Co., Ltd. | Method and device for making virtual image region for motion estimation and compensation of panorama image |
US9049396B2 (en) | 2004-09-29 | 2015-06-02 | Hewlett-Packard Development Company, L.P. | Creating composite images based on image capture device poses corresponding to captured images |
JP4244973B2 (ja) * | 2005-08-03 | 2009-03-25 | ソニー株式会社 | 撮像システムとカメラ制御装置およびパノラマ画像表示方法とプログラム |
US20070103543A1 (en) * | 2005-08-08 | 2007-05-10 | Polar Industries, Inc. | Network panoramic camera system |
US20070047642A1 (en) * | 2005-08-31 | 2007-03-01 | Erlandson Erik E | Video data compression |
US8073492B2 (en) | 2005-10-24 | 2011-12-06 | Broadcom Corporation | Simultaneously multi-networked handheld multimedia gateways |
US7835592B2 (en) | 2006-10-17 | 2010-11-16 | Seiko Epson Corporation | Calibration technique for heads up display system |
US7961983B2 (en) * | 2007-07-18 | 2011-06-14 | Microsoft Corporation | Generating gigapixel images |
US7961980B2 (en) | 2007-08-06 | 2011-06-14 | Imay Software Co., Ltd. | Method for providing output image in either cylindrical mode or perspective mode |
WO2009047572A1 (en) | 2007-10-09 | 2009-04-16 | Analysis Systems Research High-Tech S.A. | Integrated system, method and application for the synchronized interactive play-back of multiple spherical video content and autonomous product for the interactive play-back of prerecorded events. |
EP2277317B1 (en) * | 2008-05-19 | 2021-01-27 | Citrix Systems, Inc. | Systems and methods for enhanced image encoding |
US10440329B2 (en) | 2009-05-22 | 2019-10-08 | Immersive Media Company | Hybrid media viewing application including a region of interest within a wide field of view |
KR100988872B1 (ko) | 2009-07-08 | 2010-10-20 | 주식회사 나노포토닉스 | 회전 대칭형의 광각 렌즈를 이용하여 복합 영상을 얻는 방법과 그 영상 시스템 및 하드웨어적으로 영상처리를 하는 이미지 센서 |
JP5127787B2 (ja) * | 2009-07-30 | 2013-01-23 | 富士フイルム株式会社 | 複眼撮影装置及びその制御方法 |
US9225916B2 (en) | 2010-03-18 | 2015-12-29 | Cisco Technology, Inc. | System and method for enhancing video images in a conferencing environment |
WO2011121741A1 (ja) * | 2010-03-30 | 2011-10-06 | 富士通株式会社 | 画像生成装置、画像生成プログラム、合成テーブル生成装置および合成テーブル生成プログラム |
ES2713173T3 (es) * | 2010-03-31 | 2019-05-20 | Orange | Procedimientos y dispositivos de codificación y de decodificación de una secuencia de imágenes que implementan una predicción por compensación de movimiento anticipado, y programa de ordenador correspondiente |
KR101663321B1 (ko) * | 2010-07-30 | 2016-10-17 | 삼성전자주식회사 | 파노라마 사진 촬영 방법 |
US20120092348A1 (en) | 2010-10-14 | 2012-04-19 | Immersive Media Company | Semi-automatic navigation with an immersive image |
US9282242B2 (en) * | 2011-08-24 | 2016-03-08 | Htc Corporation | Method and electric device for taking panoramic photograph |
CN104170383A (zh) * | 2012-03-15 | 2014-11-26 | 索尼公司 | 图像处理装置和方法 |
US8902335B2 (en) * | 2012-06-06 | 2014-12-02 | Apple Inc. | Image blending operations |
US9098922B2 (en) * | 2012-06-06 | 2015-08-04 | Apple Inc. | Adaptive image blending operations |
WO2014007058A1 (ja) * | 2012-07-03 | 2014-01-09 | シャープ株式会社 | 画像復号装置、および画像符号化装置 |
US9978156B2 (en) | 2012-10-03 | 2018-05-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | High-throughput image and video compression |
US9270885B2 (en) * | 2012-10-26 | 2016-02-23 | Google Inc. | Method, system, and computer program product for gamifying the process of obtaining panoramic images |
US9264782B2 (en) * | 2013-01-25 | 2016-02-16 | Electronics And Telecommunications Research Institute | Method and system for providing realistic broadcasting image |
GB2511730A (en) | 2013-01-28 | 2014-09-17 | Microsoft Corp | Spatially adaptive video coding |
JP6003803B2 (ja) * | 2013-05-22 | 2016-10-05 | 株式会社Jvcケンウッド | 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム |
US10021295B1 (en) * | 2013-06-03 | 2018-07-10 | Amazon Technologies, Inc. | Visual cues for managing image capture |
EP2824883A1 (en) | 2013-07-12 | 2015-01-14 | Alcatel Lucent | A video client and video server for panoramic video consumption |
EP2824884A1 (en) | 2013-07-12 | 2015-01-14 | Alcatel Lucent | A video client for smooth display of a panoramic video |
US9247129B1 (en) | 2013-08-30 | 2016-01-26 | A9.Com, Inc. | Self-portrait enhancement techniques |
US20150138311A1 (en) | 2013-11-21 | 2015-05-21 | Panavision International, L.P. | 360-degree panoramic camera systems |
EP3110160A4 (en) * | 2014-02-18 | 2017-10-11 | LG Electronics Inc. | Method and apparatus for transreceiving broadcast signal for panorama service |
SG11201607282YA (en) | 2014-03-04 | 2016-09-29 | Microsoft Technology Licensing Llc | Adaptive switching of color spaces, color sampling rates and/or bit depths |
US9264839B2 (en) | 2014-03-17 | 2016-02-16 | Sonos, Inc. | Playback device configuration based on proximity detection |
WO2015172227A1 (en) | 2014-05-13 | 2015-11-19 | Pcp Vr Inc. | Method, system and apparatus for generation and playback of virtual reality multimedia |
WO2015174501A1 (ja) | 2014-05-16 | 2015-11-19 | 株式会社ユニモト | 全周動画配信システム、全周動画配信方法、画像処理装置、通信端末装置およびそれらの制御方法と制御プログラム |
KR102407283B1 (ko) | 2014-05-29 | 2022-06-10 | 네버마인드 캐피탈 엘엘씨 | 콘텐트를 전달 및/또는 콘텐트를 재생하기 위한 방법들 및 장치 |
JP6075889B2 (ja) | 2014-06-10 | 2017-02-08 | 日本電信電話株式会社 | 映像配信装置及び映像再生装置 |
EP3162075B1 (en) | 2014-06-27 | 2020-04-08 | Koninklijke KPN N.V. | Hevc-tiled video streaming |
US9621798B2 (en) | 2014-07-07 | 2017-04-11 | GM Global Technology Operations LLC | Grid-based image resolution enhancement for video processing module |
US10204658B2 (en) | 2014-07-14 | 2019-02-12 | Sony Interactive Entertainment Inc. | System and method for use in playing back panorama video content |
WO2016024892A1 (en) | 2014-08-13 | 2016-02-18 | Telefonaktiebolaget L M Ericsson (Publ) | Immersive video |
JP2016058840A (ja) | 2014-09-08 | 2016-04-21 | 株式会社リコー | 撮像装置、画像処理装置、撮像方法及びプログラム |
US9918094B2 (en) | 2014-10-20 | 2018-03-13 | Google Llc | Compressing and representing multi-view video |
US20160119551A1 (en) | 2014-10-22 | 2016-04-28 | Sentry360 | Optimized 360 Degree De-Warping with Virtual Cameras |
US10104361B2 (en) | 2014-11-14 | 2018-10-16 | Samsung Electronics Co., Ltd. | Coding of 360 degree videos using region adaptive smoothing |
US9997199B2 (en) | 2014-12-05 | 2018-06-12 | Warner Bros. Entertainment Inc. | Immersive virtual reality production and playback for storytelling content |
US9832449B2 (en) | 2015-01-30 | 2017-11-28 | Nextvr Inc. | Methods and apparatus for controlling a viewing position |
KR102533555B1 (ko) | 2015-02-17 | 2023-05-18 | 네버마인드 캐피탈 엘엘씨 | 감축된 해상도 이미지들을 생성 및 이용하고 및/또는 재생 또는 컨텐트 분배 디바이스에 이러한 이미지들을 통신하기 위한 방법들 및 장치 |
EP3112985A1 (en) | 2015-06-30 | 2017-01-04 | Nokia Technologies Oy | An apparatus for video output and associated methods |
CN105898271A (zh) | 2015-12-28 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 360度全景视频的播放方法、播放模块及移动终端 |
US9787896B2 (en) | 2015-12-29 | 2017-10-10 | VideoStitch Inc. | System for processing data from an omnidirectional camera with multiple processors and/or multiple sensors connected to each processor |
US10977764B2 (en) * | 2015-12-29 | 2021-04-13 | Dolby Laboratories Licensing Corporation | Viewport independent image coding and rendering |
WO2017127816A1 (en) | 2016-01-22 | 2017-07-27 | Ziyu Wen | Omnidirectional video encoding and streaming |
US9992502B2 (en) | 2016-01-29 | 2018-06-05 | Gopro, Inc. | Apparatus and methods for video compression using multi-resolution scalable coding |
KR102460906B1 (ko) * | 2016-02-17 | 2022-11-01 | 삼성전자주식회사 | 이미지 처리 방법 및 이를 지원하는 전자 장치 |
CN109074628A (zh) * | 2016-05-13 | 2018-12-21 | 索尼公司 | 生成装置和生成方法以及再现装置和再现方法 |
US10979691B2 (en) | 2016-05-20 | 2021-04-13 | Qualcomm Incorporated | Circular fisheye video in virtual reality |
US20170345129A1 (en) * | 2016-05-26 | 2017-11-30 | Gopro, Inc. | In loop stitching for multi-camera arrays |
CN106162203B (zh) | 2016-07-05 | 2019-10-25 | 实野信息科技(上海)有限公司 | 全景视频播放方法、播放器与头戴式虚拟现实设备 |
US20180018807A1 (en) | 2016-07-15 | 2018-01-18 | Aspeed Technology Inc. | Method and apparatus for generating panoramic image with texture mapping |
KR102560029B1 (ko) * | 2016-09-12 | 2023-07-26 | 삼성전자주식회사 | 가상 현실 콘텐트를 송수신하는 방법 및 장치 |
EP3513562A1 (en) | 2016-09-14 | 2019-07-24 | Koninklijke KPN N.V. | Streaming virtual reality video |
US10244215B2 (en) | 2016-11-29 | 2019-03-26 | Microsoft Technology Licensing, Llc | Re-projecting flat projections of pictures of panoramic video for rendering by application |
US10244200B2 (en) | 2016-11-29 | 2019-03-26 | Microsoft Technology Licensing, Llc | View-dependent operations during playback of panoramic video |
US20180167634A1 (en) * | 2016-12-09 | 2018-06-14 | Nokia Technologies Oy | Method and an apparatus and a computer program product for video encoding and decoding |
US10242714B2 (en) | 2016-12-19 | 2019-03-26 | Microsoft Technology Licensing, Llc | Interface for application-specified playback of panoramic video |
US10560682B2 (en) | 2017-01-13 | 2020-02-11 | Gopro, Inc. | Methods and apparatus for providing a frame packing arrangement for panoramic content |
CN108513119A (zh) * | 2017-02-27 | 2018-09-07 | 阿里巴巴集团控股有限公司 | 图像的映射、处理方法、装置和机器可读介质 |
US20190182462A1 (en) * | 2017-12-08 | 2019-06-13 | Gopro, Inc. | Methods and apparatus for projection conversion decoding for applications eco-systems |
-
2018
- 2018-05-25 US US15/990,557 patent/US10666863B2/en active Active
-
2019
- 2019-05-13 WO PCT/US2019/031913 patent/WO2019226369A1/en unknown
- 2019-05-13 CN CN201980034982.7A patent/CN112204993B/zh active Active
- 2019-05-13 EP EP19726275.1A patent/EP3804348A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050226531A1 (en) * | 2004-04-01 | 2005-10-13 | Silverstein D A | System and method for blending images into a single image |
US20060034374A1 (en) * | 2004-08-13 | 2006-02-16 | Gwang-Hoon Park | Method and device for motion estimation and compensation for panorama image |
US20120324490A1 (en) * | 2011-06-14 | 2012-12-20 | University-Industry Cooperation Group Of Kyung Hee University | Apparatus and method for providing adaptive multimedia service |
CN106464945A (zh) * | 2014-06-11 | 2017-02-22 | 谷歌公司 | 增强型流媒体回放 |
US20160352791A1 (en) * | 2015-05-27 | 2016-12-01 | Google Inc. | Streaming spherical video |
WO2017093611A1 (en) * | 2015-12-02 | 2017-06-08 | Nokia Technologies Oy | A method for video encoding/decoding and an apparatus and a computer program product for implementing the method |
US20170332117A1 (en) * | 2016-05-16 | 2017-11-16 | Google Inc. | Method and apparatus for spatial enhanced adaptive bitrate live streaming for 360 degree video playback |
WO2017202899A1 (en) * | 2016-05-25 | 2017-11-30 | Koninklijke Kpn N.V. | Spatially tiled omnidirectional video streaming |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11900521B2 (en) | 2020-08-17 | 2024-02-13 | LiquidView Corp | Virtual window apparatus and system |
Also Published As
Publication number | Publication date |
---|---|
US20190364205A1 (en) | 2019-11-28 |
US10666863B2 (en) | 2020-05-26 |
EP3804348A1 (en) | 2021-04-14 |
WO2019226369A1 (en) | 2019-11-28 |
CN112204993B (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112204993B (zh) | 使用重叠的被分区的分段的自适应全景视频流式传输 | |
CN109983757B (zh) | 全景视频回放期间的视图相关操作 | |
US11483475B2 (en) | Adaptive panoramic video streaming using composite pictures | |
US10574955B2 (en) | Re-projecting flat projections of pictures of panoramic video for rendering by application | |
US11388381B2 (en) | Suggested viewport indication for panoramic video | |
US10242714B2 (en) | Interface for application-specified playback of panoramic video | |
US11265527B2 (en) | Methods and apparatus for providing a frame packing arrangement for panoramic con tent | |
EP3434021B1 (en) | Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices | |
US11270413B2 (en) | Playback apparatus and method, and generation apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |