CN116097652A - 基于视口变化的双流动态gop访问 - Google Patents
基于视口变化的双流动态gop访问 Download PDFInfo
- Publication number
- CN116097652A CN116097652A CN202180054467.2A CN202180054467A CN116097652A CN 116097652 A CN116097652 A CN 116097652A CN 202180054467 A CN202180054467 A CN 202180054467A CN 116097652 A CN116097652 A CN 116097652A
- Authority
- CN
- China
- Prior art keywords
- frame
- image
- viewer
- image stream
- gop
- 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
- 230000009977 dual effect Effects 0.000 title description 43
- 238000000034 method Methods 0.000 claims description 41
- 238000011144 upstream manufacturing Methods 0.000 claims description 17
- 238000009877 rendering Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 230000003190 augmentative effect Effects 0.000 claims description 4
- 230000001413 cellular effect Effects 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 90
- 238000004891 communication Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 11
- 230000033001 locomotion Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000002156 mixing Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000000203 mixture Substances 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001668 ameliorated effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44016—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8451—Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
访问用主图像和次图像编码的多视角图像流。每个主图像流包括图片组(GOP)。每个次图像流包括从对应主图像流生成的I帧。从接收方解码设备接收实时收集的视点数据以指示观看者的视点已经从特定时间点开始发生了改变。基于观看者的改变的视点来选择相机。确定所述特定时间点是否与所述选择的相机的主图像流的GOP中的非I帧相对应。如果是,则将来自与所述主图像流相对应的次图像流的I帧传输到接收方解码设备。
Description
相关申请的交叉引用
本申请要求均于2020年8月3日提交的美国临时专利申请号63/060,269和欧洲专利申请EP20189126.4的优先权。
技术领域
本发明总体上涉及图像编解码和渲染(rendering),并且具体地涉及视频编解码器。
背景技术
随着时间的推移,已经开发了如运动图片专家组1(MPEG-1)视频、MPEG-2视频、MPEG-4视觉、H.264/高级视频编码(H.264/AVC)、高效视频编码(HEVC)等视频编码标准,以便以相对较低的比特率压缩和流式传输相对高质量的视频。
在本节中描述的方法是可以采用的方法,但不一定是先前已经设想到或采用过的方法。因此,除非另有指示,否则不应该认为本节中描述的任何方法仅凭其纳入本节就可被视为现有技术。类似地,除非另有指示,否则关于一种或多种方法所认定的问题不应该基于本节而认为在任何现有技术中被认定。
附图说明
在附图中以示例而非限制的方式来图示本发明,并且其中相似的附图标记指代类似的要素,并且在附图中:
图1A图示了示例多视角相机系统;图1B和图1C图示了示例双比特流结构;
图2A图示了示例视见体;图2B图示了用于即时智能渲染的示例实时图像流式传输;
图3A至图3D图示了用于即时智能流式传输和渲染的示例视频输送流水线和示例编解码器;
图4A和图4B图示了示例过程流程;以及
图5图示了可以在其上实施如本文描述的计算机或计算设备的示例硬件平台。
具体实施方式
本文描述了涉及基于视口改变的双流动态图片组(GOP)访问的示例实施例。在以下说明中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。然而,明显的是,可以在没有这些具体细节的情况下实践本发明。在其他情形中,为了避免不必要地遮蔽、模糊或混淆本发明,没有详尽地描述众所周知的结构和设备。
本文根据以下概要描述了示例实施例:
1.总体概述
2.多视角图像流和相机系统
3.视见体和实时视频流式传输
4.示例视频流式传输设备
5.示例过程流程
6.实施机制——硬件概述
7.等效物、扩展、替代品和其他
1.总体概述
此概述介绍了对本发明的示例实施例的一些方面的基本描述。应当注意的是,此概述不是对示例实施例的各方面的广泛或详尽总结。此外,应当注意的是,此概述不旨在被理解为识别示例实施例的任何特别重要的方面或要素,也不旨在被理解为特别地描绘示例实施例的任何范围,也不是概括地描绘本发明。此概述仅以压缩和简化的格式介绍与示例实施例相关的一些概念,并且应被理解为仅仅是以下示例实施例的更详细说明的概念性前奏。注意,尽管本文讨论了单独的实施例,但是本文讨论的实施例和/或部分实施例的任何组合都可以组合以形成进一步实施例。
对于AR、VR或体积视频流式传输,从不同相机位置和/或不同相机取向的多个相机捕获的视频图像可以被扭曲,以创建要在观看者的视口(viewport)中呈现的期望视点(viewpoint)的图像。为了节省视频流式传输中的带宽使用,可以仅传输从多个相机中的相对小的子集(例如,与期望视口相关的一个或多个“N”个最近的相机等)捕获的图像数据,以创建要在观看者的视口中呈现的期望视点的扭曲图像。当观看者的位置或取向改变时,需要从多个相机中的不同的相对小的子集捕获的图像数据来创建与观看者的改变的位置或取向相对应的不同视点的扭曲图像。
为了进一步节省视频流式传输中的带宽使用,用多个相机中的每个相机生成的图像流可以以GOP结构编码,该GOP结构通过同一GOP中的图像内或图像间的帧内或帧间预测编解码来消除或减少数据冗余。图像流中的每个GOP都包含I帧、P帧和B帧的特定有序布置。
GOP可以从一组连续的源图像或输入图像中被构建,如用利用计算设备实施的物理相机或虚拟相机捕获的相机生成的(例如,物理相机生成的、虚拟相机生成的等)图像。GOP中如P帧或I帧等图像可以包括预测单元,所述预测单元包括已经通过帧间或帧内预测操作减少或去除了对应源图像或输入图像中的数据冗余的图像数据。可以从GOP中构建或重构一组重构图像。所述一组重构图像中的每个重构图像可以与GOP中的相应帧/图像相对应,并且可以通过对用于将输入图像或源图像压缩为GOP的帧间或帧内预测操作执行逆操作来构建或重构。所述一组重构图像中的每个重构图像表示或(例如,接近地等)近似用于生成GOP的输入图像或源图像中的对应图像。
AR、VR或体积视频应用中的观看者可以进行头部或身体运动,以不时地改变位置或取向,并期望与改变的位置或取向相对应的图像在观看者的视口中呈现。由观看者改变位置和取向引起的视口变化可能与GOP边界一致,也可能不一致。
在没有实施如本文描述的技术的其他方法下,可能会引入切换伪影。例如,如果使用来自先前位置和取向的相机的图像流中的GOP的I帧或瞬时解码器刷新图片(例如,干净随机访问图片、断链访问图片等)的图像数据对基于观看者当前改变的位置和取向选择的不同相机的不同图像流的不同GOP中间的非I帧执行预测编解码操作,则所得图像的图像质量可能会受到很大影响。可替代地,如果到不同相机的图像流的切换被延迟到不同相机的图像流中的下一个GOP边界,则观看者可以容易地注意到观看者的位置或取向已经改变的第一时间与呈现与观看者的改变的位置或取向相对应的图像的第二后续时间之间的时滞。
克服这些问题的一种方法可以是(例如,总是、大部分等)对所有图像流只使用I帧。这可以使得基于观看者的位置或取向来切换相机相对容易;然而,考虑到将需要大量仅I帧的图像流来支持特定位置或取向的图像渲染,该方法在带宽使用方面可能成为极其昂贵的操作。
如本文描述的技术可以用于响应于具有显著的带宽效率且没有或几乎没有视觉伪影的视口变化而支持对多个相机的多个图像流中的任一个中的图片组(GOP)的动态访问。
在这些技术下,可以为具有不同相机位置或不同相机取向的多个相机中的每个相机生成实施GOP结构的相应主图像流。作为结果,为多个相机生成多个主图像流。
对于具有GOP结构的多个主图像流中的每个主图像流,创建相应的次图像流作为仅I帧流。次图像流中的I帧不是使用由相机捕获并用于产生主图像流的初始(例如,源、原始、未压缩等)图像帧创建的,而是使用从主图像流中的重构I帧、P帧和B帧得到的I帧创建的。在一些操作场景中,初始图像或源图像(例如,在应用预测操作之前等)不直接用作次图像流中的I帧。使用重构图像在次图像流中创建I帧,目的是减少与主图像流中的图像数据相关的累积或相加误差损失的量。另外,可选地或可替代地,在一些操作场景中,在应用预测操作之前的初始帧或源帧可以直接用于得到要被包括在次图像流中的I帧。包括未从主图像流重构但从初始(例如,源、原始等)图像构建的I帧的次图像流可能在解码器侧产生一些伪影诱导(或伪影可见)帧。然而,使用图像处理算法至少可以在很大程度上校正或改善这种伪影。该方法可以折衷延迟的一些质量损失,并且允许利用或不利用补救图像处理算法在具有一些剩余伪影的流之间快速切换。
对于多个相机中的每个相机,双比特流结构由包括从相机捕获的图像数据生成的GOP图像的对应主图像流和包括从对应主图像流的GOP图像重构的I帧的对应次图像流形成。可以为多个相机形成多个双比特流结构,以允许或使得视频流式传输服务器能够执行即时图像数据流式传输操作,并且允许或使得视频流式传输客户端能够基于经流式传输的图像数据执行智能渲染操作。
包括主图像流和次图像流的双比特流结构可以用于将观看者视点中的图像动态地切换到不同的视点。即使在包括I帧、P帧和/或B帧的GOP内发生切换,双比特流结构也可以用于保持GOP的GOP结构(的完整性),并允许在预测编解码操作中用正确的编解码上下文来解释GOP中的非I帧。
当图像流在不同相机之间的切换发生在GOP内部时,如视频解码器等视频流式传输客户端将从次图像流接收(多个)重构I帧,随后是对应主图像流中的后续非I帧。视频解码器可以使用从次图像流较早接收的(多个)重构I帧来建立正确的编解码上下文,以执行如关于来自主图像流的后续非I帧的预测编解码操作等图像处理操作。
更具体地,响应于在新选择的相机的主图像流的GOP内发生的视口切换,如视频流式传输服务器等上游设备(例如,立即、接下来等)向如视频解码器等视频接收方设备发送与主图像流相对应的次图像流的重构I帧。次图像流的重构I帧对应于视口切换(时)的主图像流中的非I帧,并且在视频流式传输中紧随其后的是主图像流的GOP中的后续P帧和/或B帧。
接收方设备从次图像流接收重构I帧,基于重构I帧设置对应的编解码上下文用于对后续帧进行编解码,接收GOP中的后续P帧和/或B帧,并使用根据重构I帧设置的编解码上下文对GOP中的后续P帧和/或B帧进行解码并生成或重构图像以呈现给观看者。
当对如本文描述的主图像流进行编码时,可以至少部分地基于前一帧(例如,紧接在前、GOP内等)的状态(例如,SNR、PSNR、噪声、量化/编解码误差、算术编码状态等)来生成主图像流中的GOP的非I帧中的残差数据。当从主图像流的同一GOP中的对应非I帧以及(多个)在前I帧和非I帧重构次图像流中的每个重构I帧时,对应非I帧以及(多个)在前帧的状态(例如,SNR、PSNR、噪声、量化/编解码误差、算术编码状态等)被(例如,正确地等)累积并传播到重构I帧。作为结果,视频解码器可以使用重构I帧来建立正确的编解码上下文(或状态)以对主图像流中的后续非I帧进行解码。作为结果,由视频解码器从(多个)重构I帧和后续非I帧生成或得到的图像具有一致的相关图像质量等级。
通过比较,直接从由相机捕获的图像数据构建的I帧可能具有与已经通过与从中得到重构I帧的GOP中相同的在前路径的重构I帧的图像质量等级不同的图像质量等级。因此,即使从由相机捕获的图像数据直接构建的I帧被发送到视频解码器,视频解码器在从GOP中的后续非I帧重构图像时也不会获得正确的编解码上下文。作为结果,观看者可以在视觉上感知视觉伪影以及不一致的图像质量等级。
本文描述的示例实施例涉及提供视频流数据。访问用多个主图像流和多个次图像流编码的多视角图像流。多个主图像流中的每个主图像流包括图片组(GOP)。多个次图像流中的每个次图像流包括从多个主图像流中的对应主图像流生成的重构I帧。在观看者正在观看从多视角图像流中的图像数据子集得到的视频内容时实时收集的观看者的视点数据从接收方解码设备被接收。视点数据指示观看者的视点已经从特定时间点开始发生了改变。基于观看者的改变的视点从多个相机中选择相机。从由所选择的相机捕获的图像数据部分得到的视频内容部分将在特定时间点之后在观看者的视口中呈现。确定特定时间点是否对应于与所选择的相机相关的主图像流的GOP中的非I帧。响应于确定特定时间点对应于与所选择的相机相关的主图像流的GOP中的非I帧,来自同与所选择的相机相关的主图像流相对应的次图像流的重构I帧被传输到接收方解码设备。
本文描述的示例实施例涉及渲染视频流数据。从用多个主图像流和多个次图像流编码的多视角图像流中的图像数据子集得到的视频内容从上游设备被接收。多个主图像流中的每个主图像流包括图片组(GOP)。多个次图像流中的每个次图像流包括从多个主图像流中的对应主图像流生成的重构I帧。在观看者正在观看视频内容时实时收集的观看者的视点数据被发送到上游设备。视点数据指示观看者的视点已经从特定时间点开始发生了改变。基于观看者的改变的视点从多个相机中选择相机。从由所选择的相机捕获的图像数据部分得到的视频内容部分将在特定时间点之后在观看者的视口中呈现。特定时间点对应于与所选择的相机相关的主图像流的GOP中的非I帧。来自与所选择的相机相关的主图像流相对应的次图像流的重构I帧从上游设备被接收。处理重构I帧并在特定时间点在观看者的视点中呈现所述重构I帧。
在一些示例实施例中,如本文描述的机制形成媒体处理系统的一部分,这些机制包括但不限于以下各项中的任一项:基于云的服务器、移动设备、虚拟现实系统、增强现实系统、抬头显示设备、头盔式显示设备、CAVE式系统、墙壁大小的显示器、视频游戏设备、显示设备、媒体播放器、媒体服务器、媒体制作系统、相机系统、基于家庭的系统、通信设备、视频处理系统、视频编解码器系统、制作室系统、流式传输服务器、基于云的内容服务系统、手持式设备、游戏机、电视机、影院显示器、膝上型计算机、笔记本计算机、平板计算机、蜂窝无线电话、台式计算机、计算机工作站、计算机服务器、计算机亭、或各种其他类型的终端和媒体处理单元。
对优选实施例和通用原理以及本文描述的特征作出的各种修改对本领域的技术人员而言将是显而易见的。因此,本公开不旨在受限于所示实施例,而旨在符合与本文描述的原理和特征一致的最大范围。
2.多视角图像流和相机系统
如本文描述的多视角图像流包括多视角图像序列。在视频应用中,从多视角图像流的多视角图像序列中的多视角图像得到的图像数据将在某个时间间隔/持续时间内的时间点序列中的某一时间点呈现给观看者。示例视频应用包括但不一定仅限于以下各项中的任一项:AR应用、VR应用、体积视频应用、沉浸式视频应用、360度视频应用等。
多视角图像流可以由如多视角视频编码器等上游设备从多个不同相机位置和/或相机取向的多个相机的多个(例如,初始、源、未压缩、原始等)单独的单视角图像流生成。
图1A图示了示例多视角相机系统,其包括用于从多个不同相机位置和/或多个相机取向捕获单独单视角图像流的多个相机。作为示例而非限制,多个相机可以位于空间体积中的3维(3D)网格的多个顶点(或网格点)处。
多个相机中的相机1可以位于多个不同相机位置和/或多个不同相机取向中的第一相机位置或第一相机取向,对应于第一相机位置和/或第一相机取向,如3D网格的中心顶点(或网格点)。由相机1捕获或获取的第一单独单视角图像序列可以用于生成第一单视角图像流。类似地,多个相机中的相机2可以位于多个不同相机位置和/或多个不同相机取向中的第二不同相机位置或第二不同相机取向,对应于第二不同相机位置和/或第二不同相机取向,如3D网格的左上顶点(或网格点)。由相机2捕获或获取的第二单独单视角图像序列可以用于生成第二单视角图像流。
多视角图像流中与时间点序列中的某一时间点相对应(例如,将在该时间点呈现给观看者等)的多视角图像可以从由多个相机获取的对应的多个单独单视角图像生成或得到。对应的多个单独单视角图像中的每个单独单视角图像可以通过多个相机中的相应相机得到。例如,对应的多个单独单视角图像可以包括用第一相机生成的第一单视角图像流的第一单独单视角图像序列中的第一单独单视角图像、用第二相机生成的第二单视角图像流的第二单独单视角图像序列中的第二单独单视角图像等。
图1B图示了相机1和相机2(例如,如图1A所示等)的示例双比特流结构。如图1B所图示的双比特流结构可以被实施用于利用用于生成多视角视频流的多视角相机系统(例如,图1A的100等)的多个相机中的每个相机生成的图像数据。
用相机1生成的图像数据的第一双比特流结构包括实施第一GOP结构的第一主图像流(表示为“GOP”)和包括从第一主图像流得到的重构I帧的次图像流(表示为“I帧”)。
用相机1生成的第一主图像流的第一GOP结构包括被连续划分为两个GOP的第一图像序列。第一图像序列对应于在时间间隔/持续时间T(单位时间)内从t=0开始到t=T结束的时间点序列,或者用该时间点序列来索引。用相机1生成的第一主图像流的第一GOP结构中的两个GOP中的每一个都包括以I帧(表示为“I”)开始随后是九个P帧(分别表示为“P1”、“P2”、…“P9”)的图像子序列。
与相机1相关的次图像流包括第一重构I帧序列,每个重构I帧从第一主图像流中的所有非I帧中的对应非I帧得到。如图1B所图示,与相机1相关的次图像流包括两个重构I帧子序列。与相机1相关的次图像流中的两个重构I帧子序列分别对应于用相机1生成的第一主图像流中的两个GOP。
与相机1相关的两个重构I帧子序列中的每个重构I帧子序列对应于用相机1生成的第一主图像流中的GOP中的相应GOP。每个这样的重构I帧子序列包括从相应GOP中的非I帧(“P1”、“P2”、…“P9”)生成的重构I帧(分别表示为“I’1”、“I’2”、…“I’9”)。
如本文使用的,I帧是存储完整图像/图片或存储用于得到完整图像/图片的完整图像数据的图像帧。P帧是存储仅包括相对于一个或多个先前完整图像/图片的变化的变化图像/图片的图像帧。B帧是存储仅包括相对于先前和后面的完整图像/图片的变化的变化图像/图片的图像帧。关于GOP、I帧、P帧、B帧等的示例描述可以在ISO/IEC 13818-2:2013,“Information Technology-Generic Coding of Moving Pictures and Associatedaudio information-Part 2:Video[信息技术——运动图片和相关音频信息的通用编解码——第2部分:视频]”(2013年10月)中找到,所述文献通过引用以其整体并入本文。
例如,用相机1生成的第一主图像流的相应GOP中表示为I的I帧可以包含或产生完整图像/图片而无需参考前面或后面的图像/图片。I帧I或与I帧I相对应或存储在其中的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从第一主图像流对I帧进行解码之后对后续图像/图片进行解码的编解码上下文的一部分。
用相机1生成的第一主图像流的相应GOP中的I帧I和P帧P1可以用于生成重构I帧I’1。更具体地,P帧P1仅存储相对于与I帧I相对应或存储在其中的完整图像/图片的变化。在从用相机1生成的第一主图像流对存储在P帧P1中的变化进行解码之后,这些变化可以被添加到(或取决于变化的符号从其减去)与I帧I相对应或存储在其中的完整图像/图片,以生成或构建包括与P帧P1相对应(但仅是存储在其中的变化)的完整图像/图片的重构I帧I’1。重构I帧I’1或与P帧P1相对应的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从第一主图像流对P帧P1进行解码之后以及在生成或构建重构I帧I’1或与P帧P1相对应的完整图像/图片之后对后续图像/图片进行解码的更新的编解码上下文的一部分。
用相机1生成的第一主图像流的相应GOP中的I、P1和P2(或I’1和P2)可以用于生成第二重构I帧I’2。更具体地,P帧P2仅存储相对于与I帧I和P帧P1中的一者或两者相对应的完整图像/图片的变化。仅出于说明的目的,P帧P2仅存储相对于重构I帧I’1或与P帧P1相对应的完整图像/图片的变化。在从用相机1生成的第一主图像流对存储在P帧P2中的变化进行解码之后,这些变化可以被添加到(或取决于变化的符号从其减去)重构I帧I’1或与P帧P1相对应的完整图像/图片,以生成或构建包括与P帧P2相对应(但仅是存储在其中的变化)的完整图像/图片的第二重构I帧I’2。第二重构I帧I’2或与P帧P2相对应的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从第一主图像流对P帧P2进行解码之后以及在生成或构建第二重构I帧I’2或与P帧P2相对应的完整图像/图片之后对后续图像/图片进行解码的更新的编解码上下文的一部分。
用相机1生成的第一主图像流的相应GOP中的I和P1至Pi(或I’(i-1)和Pi)可以用于以与如上所述类似的方式来生成重构I帧I’i,其中,i是任何非零正整数。
类似地,用相机2生成的图像数据的第二双比特流结构包括实施第二GOP结构的第二主图像流(表示为“GOP”)和包括从第二主图像流得到的重构I帧的次图像流(表示为“I帧”)。
用相机2生成的第二主图像流的第二GOP结构包括被连续划分为两个GOP的第二图像序列。第二图像序列对应于在时间间隔/持续时间T(单位时间)内从t=0开始到t=T结束的时间点序列,或者用该时间点序列来索引。用相机2生成的第二主图像流的第二GOP结构中的两个GOP中的每一个都包括以I帧(表示为“I”)开始随后是九个P帧(分别表示为“P1”、“P2”、…“P9”)的图像子序列。
与相机2相关的次图像流包括第二重构I帧序列,每个重构I帧从第二主图像流中的所有非I帧中的对应非I帧得到。如图1B所图示,与相机2相关的次图像流包括两个重构I帧子序列。与相机2相关的次图像流中的两个重构I帧子序列分别对应于用相机2生成的第二主图像流中的两个GOP。
与相机2相关的两个重构I帧子序列中的每个重构I帧子序列对应于用相机2生成的第二主图像流中的GOP中的相应GOP。每个这样的重构I帧子序列包括从相应GOP中的非I帧(“P1”、“P2”、…“P9”)生成的重构I帧(分别表示为“I’1”、“I’2”、…“I’9”)。
例如,用相机2生成的第二主图像流的相应GOP中的I和P1可以用于以与如上所述类似的方式来生成重构I帧I’1。
用相机2生成的第二主图像流的相应GOP中的I、P1和P2(或I’1和P2)可以用于以与如上所述类似的方式来生成重构I帧I’2。
用相机2生成的第二主图像流的相应GOP中的I和P1至Pi(或I’(i-1)和Pi)可以用于以与如上所述类似的方式来生成重构I帧I’i,其中,i是任何非零正整数。
应当注意,重构I帧可以用包括B帧的GOP来生成或构建。图1C图示了用于生成多视角视频流的多视角相机系统(例如,图1A的100等)的多个相机中如本文描述的相机的示例双比特流结构。
用相机生成的图像数据的双比特流结构包括实施GOP结构的主图像流(表示为“GOP”)和包括从主图像流得到的重构I帧的次图像流(表示为“I帧”)。
用相机生成的主图像流的GOP结构包括被连续划分为两个GOP的图像序列。图像序列对应于在时间间隔/持续时间T(单位时间)内从t=0开始到t=T结束的时间点序列,或者用该时间点序列来索引。用相机生成的主图像流的GOP结构中的第一GOP包括以I帧(表示为“I”)开始随后是P帧和B帧的混合(分别表示为“P1”、“B1”、“P2”、“B2”、…“P7”)的第一图像子序列。用相机生成的主图像流的GOP结构中的第二GOP包括以I帧(表示为“I”)开始随后是P帧和B帧(分别表示为“P1”、“P2”、…“P9”)的第二图像子序列。
与相机相关的次图像流包括重构I帧序列,每个重构I帧从主图像流中的所有非I帧中的对应非I帧得到。如图1C所图示,与相机相关的次图像流包括两个重构I帧子序列。与相机相关的次图像流中的两个重构I帧子序列分别对应于用相机生成的主图像流中的两个GOP。
与相机相关的两个重构I帧子序列中的每个重构I帧子序列对应于用相机生成的主图像流中的GOP中的相应GOP。例如,第一重构I帧子序列包括从第一GOP中的非I帧(“P1”、“B1”、“P2”、“B2”、…“P7”)生成的重构I帧(分别表示为“I’1”、“I’2”、…“I’9”)。
例如,用相机生成的主图像流的第一GOP中表示为I的I帧可以包含或产生完整图像/图片而无需参考前面或后面的图像/图片。I帧I或与I帧I相对应或存储在其中的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从主图像流对I帧进行解码之后对后续图像/图片进行解码的编解码上下文的一部分。
用相机1生成的主图像流的第一GOP中的I帧I和P帧P1可以用于生成重构I帧I’1。更具体地,P帧P1仅存储相对于与I帧I相对应或存储在其中的完整图像/图片的变化。在从用相机1生成的主图像流对存储在P帧P1中的变化进行解码之后,这些变化可以被添加到(或取决于变化的符号从其减去)与I帧I相对应或存储在其中的完整图像/图片,以生成或构建包括与P帧P1相对应(但仅是存储在其中的变化)的完整图像/图片的重构I帧I’1。重构I帧I’1或与P帧P1相对应的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从主图像流对P帧P1进行解码之后以及在生成或构建重构I帧I’1或与P帧P1相对应的完整图像/图片之后对后续图像/图片进行解码的更新的编解码上下文的一部分。
假设B帧B1取决于或参考P帧P1和P帧P2。更具体地,B帧B1仅包含相对于与P帧P1和P帧P2两者相对应的完整图像/图片的变化。例如,B帧B1的一些图像块可以仅包含相对于P帧P1的变化,而B帧B1的一些其他图像块可以仅包含相对于P帧P2的变化。为了生成或构建与B帧B1相对应的重构I帧I’2,可以在生成或构建与B帧B1相对应的重构I帧I’2之前生成与P帧P2相对应的重构I帧I’3。
用相机生成的主图像流的第一GOP中的I、P1和P2(或I’1和P2)可以用于生成重构I帧I’3。更具体地,P帧P2仅存储相对于与I帧I和P帧P1中的一者或两者相对应的完整图像/图片的变化。仅出于说明的目的,P帧P2仅存储相对于重构I帧I’1或与P帧P1相对应的完整图像/图片的变化。在从用相机生成的主图像流对存储在P帧P2中的变化进行解码之后,这些变化可以被添加到(或取决于变化的符号从其减去)重构I帧I’1或与P帧P1相对应的完整图像/图片,以生成或构建包括与P帧P2相对应(但仅是存储在其中的变化)的完整图像/图片的重构I帧I’3。重构I帧I’3或与P帧P2相对应的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从主图像流对P帧P2进行解码之后以及在生成或构建重构I帧I’3或与P帧P2相对应的完整图像/图片之后对后续图像/图片进行解码的进一步更新的编解码上下文的一部分。
用相机生成的主图像流的第一GOP中的I、P1、P2、B1(或I、I’1、I’3、B1)可以用于生成重构I帧I’2。在从用相机生成的主图像流对存储在B帧B1中的变化进行解码之后,一些图像块中的这些变化中的一些可以被添加到(或取决于变化的符号从其减去)重构I帧I’1或与P帧P1相对应的完整图像/图片中的相应图像块中的图像数据,而一些其他图像块中的这些变化中的一些其他变化可以被添加到(或取决于变化的符号从其减去)重构I帧I’3或与P帧P2相对应的完整图像/图片中的相应图像块中的图像数据。当B帧B1中的变化与分别对应于P帧P1和P2的重构I帧I’1和I’3中的相应图像数据组合时,可以生成或构建包括与B帧B1相对应(但仅是存储在其中的变化)的完整图像/图片的重构I帧I’2。重构I帧I’2或与B帧B1相对应的完整图像/图片可以在参考图片缓冲器中缓冲,作为用于在从主图像流对B帧B1进行解码之后以及在生成或构建重构I帧I’2或与B帧B1相对应的完整图像/图片之后对后续图像/图片进行解码的进一步更新的编解码上下文的一部分。同样,可以为用相机生成的主图像流的第一GOP中的第一GOP构建其他重构I帧。
3.视见体和实时视频流式传输
在AR、VR或体积视频应用中,在观看者的视口中呈现的显示图像响应于观看者的头部(或身体)运动而更新,以提供身临其境且舒适的观看体验。可以允许观看者沿着一维直线/曲线、在2维(2D)观看区域中、在3D视见体中或在特定场所中自由地进行头部(或身体)运动,以观看由视频应用在观看者的视口中呈现的特定位置或特定取向(例如,2D、3D等)的图像,并获得在特定位置或特定取向的图像中描绘的视觉对象的正确取向。如本文使用的,视口可以指以下各项中的任一项:AR眼镜上的指定显示区域、可穿戴VR显示器、结合观看者的视频流式传输客户端设备操作的图像显示器等。
图2A图示了示例视见体200,在所述视见体中,AR、VR或体积视频应用的观看者可以自由地四处移动,并且观看由视频应用呈现的特定位置或特定取向的图像。
如图所示,观看者在时间间隔/持续时间(例如,在图1B的t=0与t=T之间等)的第一时间点的位置或取向由图2的视点1表示。观看者在时间间隔/持续时间的第二时间点(例如,紧接在第一时间点之后等)的位置或取向由图2的视点2表示。
多视角图像流中与第一时间点相对应的第一多视角图像中的一个或多个第一单视角图像可以用于扭曲、插入或混合到和/或生成第一时间点的第一特定位置或特定取向的图像。多视角图像流中与第二时间点相对应的第二多视角图像中的一个或多个第二单视角图像可以用于扭曲、插入或混合到和/或生成第二时间点的第二特定位置或特定取向的图像。这些特定位置或特定取向的图像可以分别在第一时间点和第二时间点在观看者的视口中呈现给观看者。
多视角图像流包括以多个双比特流结构表示的多视角图像序列。多个双比特流结构中的每个双比特流结构包括为了比特率效率用GOP结构(例如,多个GOP中的每一个中的I帧、P帧和/或B帧等)实施的主图像流以及包括从主图像流生成的重构I帧的次图像流。多视角图像流的多个双比特流结构中的每个双比特流结构直接或间接地从用多视角相机系统的多个相机捕获的多个单独单视角图像流中的相应单独单视角图像流(例如,源图像、输入图像、高度详细图像、未压缩图像和/或原始图像等)得到。
可以选择多个双比特流结构中直接或间接地从多个相机中的一个或多个第一相机(例如,离观看者的位置或取向最近的相机、空间区域的中心相机、观看者的视点周围的一组四个最近的相机等)的一个或多个第一单独单视角图像流得到的一个或多个双比特流结构的第一子集,以用于扭曲、插入或混合到和/或生成要在第一时间点在观看者的视口中呈现的第一特定位置或特定取向的图像。一个或多个第一相机可以包括相机1,但是不包括相机2。如图像扭曲、图像混合等图像处理操作可以用于从与一个或多个第二相机(如相机1等)相关的一个或多个双比特流结构的第一子集的图像数据中生成第一特定位置或特定取向的图像的图像数据。
可以选择多个双比特流结构中直接或间接地从多个相机中的一个或多个第二相机(例如,离观看者的位置或取向最近的相机、空间区域的中心相机、观看者的视点周围的一组四个最近的相机等)的一个或多个第二单独单视角图像流得到的一个或多个双比特流结构的第二不同子集,以用于扭曲、插入或混合到和/或生成要在第二时间点在观看者的视口中呈现的第二特定位置或特定取向的图像。一个或多个第二相机可以包括相机2,但是不包括相机1。如图像扭曲、图像混合等图像处理操作可以用于从与一个或多个第二相机(如相机2等)相关的一个或多个双比特流结构的第二子集的图像数据中生成第二特定位置或特定取向的图像的图像数据。
图2B图示了用于即时智能渲染的示例实时(图像)流式传输。仅出于说明的目的,对于第一时间点(表示为“t1”)之前并且直到第一时间点的一个或多个时间点,观看者的位置或取向由图2A的视点1表示。直接或间接地从相机1得到的图像数据可以用于在第一时间点(“t1”)之前并且直到第一时间点的这些时间点处生成或构建要在观看者的视口中呈现的一个或多个第一图像。更具体地,包括与多视角相机系统的多个相机相关的多个单视角图像流的多视角图像流中与相机1相关的第一单视角图像流的第一双比特流结构的第一主图像流的GOP中的一个或多个I帧和P帧(例如,I、P1、P2、P3、P4和/或P5等)被用于在第一时间点(“t1”)之前并且直到第一时间点的这些时间点处生成要在观看者的视口中呈现的一个或多个第一图像。
从可能紧随第一时间点(“t1”)的第二不同时间点(表示为“t2”)开始,观看者的位置或取向通过观看者的头部或身体运动而改变并且现在由图2A的视点2表示。直接或间接地从相机2得到的图像数据可以用于生成或构建要在从第二时间点(“t2”)开始直到观看者的位置或取向通过观看者的进一步头部或身体运动而进一步改变的时间点在观看者的视口中呈现的一个或多个第二图像。
在本示例中,观看者的位置或取向在多视角图像流中与相机2相关的第二单视角图像流的第二双比特流结构的第二主图像流的GOP的中间从视点1改变到视点2。
如果来自与相机2相关的第二单视角图像流的第二双比特流结构的第二主图像流的GOP的非I帧要被流式传输到观看者的视频流式传输客户端设备,则与相机2相关的非I帧中的图像数据将基于先前接收到的或构建的与相机1相关的图像/帧(例如,I帧、P1帧、P2帧、P3帧、P4帧和P5帧等)被错误地解释。作为结果,要从第二时间点(“t2”)开始在观看者的视口中呈现的一个或多个第二图像中会产生视觉伪影。
可替代地,当观看者的位置或取向在与相机2相关的第二单视角图像流的第二双比特流结构的第二主图像流的GOP的中间从视点1改变到视点2时,从直接或间接地从相机1得到的图像数据构建的图像可以继续进行流式传输,直到与相机2相关的第二单视角图像流的第二双比特流结构的第二主图像流的GOP结束。然而,如果与相机2相关的第二单视角图像流的第二双比特流结构的第二主图像流的GOP覆盖了比观看者可感知的时滞阈值更长的相对长的时间段,则观看者将会注意到观看者可感知的时滞,从而导致观看者期望看到的与观看者实际看到的之间的观看者可察觉的差异。这将对观看者在AR、VR或体积视频应用中的体验产生极大的负面影响,尤其是在观看描绘动态变化场景或情感投入场景的渲染图像时出现这种时滞的情况下。
代替延迟到下一个GOP边界(例如,其中,GOP结束而下一个GOP开始等)和/或发送可能被误解的图像/帧,在如本文描述的技术下,响应于确定观看者位置或取向在与相机相关的单视角图像流的双比特流结构的主图像流的GOP的中间发生改变,其中所述相机是基于(例如,最接近的、最接近的之一等)观看者当前改变的位置或当前改变的取向来选择的,来自与所选择的相机相关的单视角图像流的双比特流结构的次图像流的一个或多个重构I帧被发送到观看者的视频流式传输客户端设备。
来自与所选择的相机相关的单视角图像流的双比特流结构的次图像流的一个或多个重构I帧允许或使得观看者的视频流式传输客户端设备能够生成要在观看者的视口中呈现的一个或多个特定位置或特定取向的图像而没有或几乎没有视觉伪影。另外,来自与所选择的相机相关的单视角图像流的双比特流结构的次图像流的一个或多个重构I帧允许或使得观看者的视频流式传输客户端设备能够被置于正确的编解码上下文中,以解释在一个或多个重构I帧之后(例如,紧接在其后等)发送或流式传输的相同双比特流结构的主图像流的一个或多个非I帧,并且从一个或多个非I帧生成一个或多个图像以用于在一个或多个后续时间点在观看者的视点中呈现所述一个或多个图像。
例如,如图2B所图示,响应于确定观看者的位置或取向从图2A的第一时间点(“t1”)的视点1改变到图2A的第二时间点(“t2”)的视点2,上游设备将多视角图像流中与相机2相关的单视角图像流的双比特流结构的次图像流中的第二时间点(“t2”)的重构I帧(表示为“I’6”)流式传输到观看者的视频流式传输客户端设备。
在本示例中,与相机2相关的单视角图像流的双比特流结构的次图像流中的第二时间点(“t2”)的重构I帧(“I’6”)允许或使得观看者的视频流式传输客户端设备能够生成要在第二时间点(“t2”)在观看者的视口中呈现的特定位置或特定取向的图像而没有或几乎没有视觉伪影。另外,与相机2相关的单视角图像流的双比特流结构的次图像流中的第二时间点(“t2”)的重构I帧(“I’6”)允许或使得观看者的视频流式传输客户端设备能够被置于正确的编解码上下文中,以解释在第二时间点(“t2”)的重构I帧(“I’6”)之后(例如,紧接在其后等)发送或流式传输的相同双比特流结构的主图像流的一个或多个非I帧(例如,“P7”、“P8”和“P9”等),并且从一个或多个非I帧(例如,“P7”、“P8”和“P9”等)生成一个或多个对应图像以用于在第二时间点(“t2”)之后的一个或多个时间点在观看者的视点中呈现所述一个或多个对应图像。
由于与切换到的相机(“相机2”)相关的次图像流中的重构I帧I’6是使用与切换到的相机(“相机2”)相关的主图像流的GOP中的I1、P1至P6创建的,因此主图像流的GOP中的这些帧的状态(例如,SNR、PSNR、噪声、量化/编解码误差、算法编码状态等)被累积并传播到重构I帧I’6中。接收方设备可以使用重构I帧I’6来建立正确的上下文,以解释或处理同一GOP中的后续非I帧(如P7)的图像数据,就好像后续非I帧是从主图像流的同一GOP中的起始I帧和所有在前非帧开始解释的一样。作为结果,可以从重构I帧I’6和P7构建或生成与非I帧P7相对应的图像(例如,显示图像等)。从重构I帧I’6和P7构建或生成的图像的图片质量将与将从主图像流的同一GOP中的起始I帧和所有在前非帧构建或生成的图像的图片质量相同。因此,从重构I帧I’6和P7构建或生成的图像表示相对于将从主图像流的同一GOP中的起始I帧和所有在前非帧构建或生成的图像的忠实重构。
4.示例视频流式传输设备
图3A图示了示例视频输送流水线300,其中,来自多视角相机系统(例如,图1A的100等)中的多个相机的多个源图像流由流水线(300)接收作为来自外部视频数据源的输入,并且目标视频流由流水线(300)输出作为用于呈现给观看者的输出。多个源图像流中的每个源图像流是从由多个相机中的相应相机捕获的图像数据生成或得到的。
作为示例而非限制,多个源图像流包括用多个相机中的相机1生成的第一源图像流302-1和用多个相机中的相机2生成的第二源图像流302-2。由流水线300接收的多个源图像流中的每个源图像流(例如,302-1、302-2等)包括(例如,未压缩、原始、相对高质量等)源(视频)图像序列。
视频输送流水线(300)包括从多个源图像流(例如,302-1、302-2等)生成多个主图像流的多视角视频编码器304。多个主图像流中的每个主图像流是从多个源图像流中的由多个相机中的相应相机生成的相应源图像流得到的。
与多个源图像流相比,多个主图像流为了比特率效率而被大幅度压缩。多个主图像流中的每个主图像流包括用GOP结构实施的GOP图像序列。主图像流中的GOP图像序列包括多个GOP,每个GOP包括I帧、B帧和P帧。在主图像流中的GOP图像序列中实施GOP结构减少或消除了图像序列中的数据冗余。在一些操作场景中,仅I帧和P帧用于如本文描述的视频压缩。在这些操作场景中,解码顺序和显示顺序可以相同;后续P帧仅根据先前帧(例如,次图像流中的I’帧或I帧等)进行时间预测。在一些操作场景中,B帧也至少部分地用于如本文描述的视频压缩。在这些操作场景中,解码顺序和显示顺序可以不同;B帧所依赖的先前或后续帧(例如,次图像流中的I’帧或I帧等)或者所有解码顺序帧(其不必是显示顺序帧)可以被发送到接收方解码设备。这将确保B帧的双向或双重预测能力。在这些操作场景中,当执行随机访问时,随机访问中的第一帧可以是B帧所使用或参考的显示帧或仅解码帧,并且发送到接收方解码设备的I’帧的顺序不需要如本文图中所示出的显示顺序。
多视角视频编码器(304)进一步从多个主图像流生成多个次图像流。多个次图像流中的每个次图像流由多视角视频编码器(304)从多个主图像流中的相应主图像流生成,并且包括从相应主图像流的GOP图像序列中的非I帧生成的重构I帧序列。例如,相应主图像流的GOP图像序列中的每个非I帧可以用于生成次图像流的重构I帧序列中的相应重构I帧。
多视角视频编码器(304)基于多个主图像流和多个次图像流生成多视角图像流306。例如,多视角图像流(306)包括多个双比特流结构。多个比特流结构中的每个双比特流结构包括多个主图像流中的相应主图像流和多个次图像流中的相应次图像流。
多视角图像流(306)通过具有相对高带宽、相对低延迟等的一个或多个第一数据链路(或第一计算机网络路径)被直接或间接地传输到接收方(例如,即时的、支持智能渲染的等)流式传输服务器。
在第一示例中,多视角图像流(306)可以首先由多视角视频编码器(304)输出并存储在如多视角视频数据存储装置308等有形计算机可读存储介质上,并且然后由(例如,即时的、支持智能渲染、重新编码的等)流式传输服务器从有形计算机可读存储介质中取得。
在第二示例中,多视角图像流(306)可以由多视角视频编码器(304)直接输出到流式传输服务器。
与图像显示器一起操作以向观看者呈现图像的下游视频客户端设备316(例如,可穿戴设备、VR客户端设备、AR客户端设备、视频解码器等)可以通过使用位置传感器、运动传感器、眼睛跟踪设备等来实时或近实时地确定观看者的位置或取向,以收集与观看者的位置或取向相关的实时或近实时的视点数据314。观看者在给定时间点的位置或取向可以(例如,通过视频客户端设备(316)、即时视频流式传输服务器(310)等)被实时或近实时地被监控和确定(例如,具有1或5毫秒或20毫秒的延迟、具有低于可感知时滞阈值或预算的严格延迟等)。
视点数据(314)和/或根据视点数据确定的观看者的位置或取向可以由下游设备(316)发信号通知/提供给如即时视频流式传输服务器(310)等上游设备(例如,VR服务器、AR服务器、多视角视频编码器等)。
基于观看者在特定时间点的特定位置或取向,视频流式传输服务器(310)可以从多视角图像流(306)的多个双比特流结构中识别与被确定为接近(例如,一个或多个最接近等)观看者的特定位置或取向的一个或多个相机子集相关的一个或多个双比特流结构子集。来自一个或多个双比特流结构子集的一个或多个主图像流和/或一个或多个次图像流的图像数据由即时视频流式传输服务器(310)通过一个或多个第二数据链路(或第二计算机网络路径)以实时视频流312(例如,如图2B所图示等)流式传输到下游视频客户端设备(316)。与第一数据链路(或第一计算机网络路径)相比,第二数据链路可以具有相对低的带宽、相对高的延迟等。
视频客户端设备(316)从实时视频流(312)对图像数据进行解码并且相对于从实时视频流(312)解码的图像数据执行图像扭曲/混合,以生成与观看者的特定位置或特定取向相对应的特定位置或特定取向的图像。特定位置或特定取向的图像可以由视频客户端设备(316)以输出流(318)提供给结合视频客户端设备(316)操作的图像显示器,以用于在特定时间点呈现给观看者。
图3B图示了包括多视角源图像接收器324、多视角流生成器328、数据储存库326等的示例多视角视频编码器(例如,304等)。多视角视频编码器(304)的一些或所有部件可以由一个或多个设备、模块、单元等以软件、硬件、软件与硬件的组合等来实施。
多视角源图像接收器(324)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:从多视角图像源接收多个单视角源(例如,原始、未压缩、高质量等)图像流304,所述多视角图像源比如是基于云的多视角图像源、与VR应用、AR应用、远程呈现应用、显示应用、体积视频应用、沉浸式视频应用等相关的多视角相机系统(例如,图1A的100等);从多个单视角源图像流(304)对多个单视角源图像序列进行解码;等等。
在一些实施例中,多视角流生成器(328)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:从在多个单视角图像流(302)中接收的多个单视角源图像序列生成具有双比特流结构的多视角图像流306。
数据储存库(326)表示被配置成进行以下操作的一个或多个数据库、一个或多个数据存储单元/模块/设备等:支持与由多视角源图像接收器(324)接收的多个单视角源图像序列中的一些或全部、多视角图像流(306)等有关的如存储、更新、取得、删除等操作。
图3C图示了包括多视角流接收器332、视点处理器334、即时流生成器336等的示例(即时)视频流式传输服务器310。视频流式传输服务器(310)的一些或所有部件可以由一个或多个设备、模块、单元等以软件、硬件、软件与硬件的组合等来实施。
多视角流接收器(332)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:直接或间接地从多视角视频编码器(304)接收多视角图像流(306);对多视角图像流(306)中的主图像流和次图像流进行解码;等等。
视点处理器(334)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:从由观看者实时或近实时地操作的视频客户端设备接收观看者的视点数据;在AR、VR或体积视频应用的时间间隔/持续时间内针对多个时间点建立/确定观看者的位置或取向,其中,从多视角图像流(306)得到的图像将在多个时间点在如与视频客户端设备结合操作的图像显示器所提供的观看者的视口中呈现;等等。
即时流生成器(336)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:至少部分地基于观看者的位置或取向从多视角图像流(306)中的双比特流结构子集的图像数据生成实时流312;等等。
视频流式传输服务器(310)可以用于支持AR应用、VR应用、360度视频应用、体积视频应用、实时视频应用、近实时视频应用、非实时全向视频应用、汽车娱乐、头盔式显示应用、抬头显示应用、游戏、2D显示应用、3D显示应用、多视角显示应用等。
图3D图示了包括实时流接收器342、视点跟踪器344、显示管理器346、图像显示器348等的示例视频客户端设备316。视频客户端设备(316)的一些或所有部件可以由一个或多个设备、模块、单元等以软件、硬件、软件与硬件的组合等来实施。
视点跟踪器(344)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:与一个或多个观看者位置/取向跟踪传感器(例如,运动传感器、位置传感器、眼部跟踪器等)一起操作以收集与观看者有关的实时或近实时的视点数据314;将视点数据(314)或根据视点数据确定的观看者的位置/取向发送到即时视频流式传输服务器(310);等等。可以以相对精细的时间尺度(例如,每毫秒、每五毫秒等)对视点数据(314)进行采样或测量。视点数据可以用于按给定时间分辨率(例如,每毫秒、每五毫秒等)确立/确定观看者的位置或取向。
实时流接收器(342)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:接收至少部分地基于视点数据(314)生成的实时视频流(312)并对其进行解码;对从实时视频流(312)解码的图像数据执行图像扭曲、图像混合(例如,混合来自多个相机源的多个扭曲图像等)、图像合成等,以生成与观看者的预测或测量位置或取向相对应的特定位置或特定取向的图像;等等。
显示管理器(346)包括被配置成进行以下操作的软件、硬件、软件与硬件的组合等:对要在图像显示器(348)上呈现的特定位置或特定取向的图像执行显示管理操作;将显示管理的特定位置或特定取向的图像输出到图像显示器(348)以供呈现;等等。
在一些操作场景中,图像元数据与实时视频流一起从流式传输服务器传输到流式传输客户端,以指示捕获用于生成或得到在实时视频流中表示或编码的主图像流的I帧和非I帧、重构I帧等的图像数据的所选择的相机的空间位置或取向。相机的空间位置或取向可以或可以不被表示或转换成表示观看者位置或取向的参考(例如,笛卡尔、角度、世界等)坐标系。坐标系变换操作可以由流式传输服务器和/或流式传输客户端来执行。
在实时视频流中传输的一些或所有图像元数据可以是以下各项中的任一项:SEI(补充增强信息)、PPS(图片参数集)、SPS(序列参数集)、切片头、单独的子流或流文件等。
在一些操作场景中,从多视角相机系统的不同相机得到的主图像流可以用时间同步的GOP结构来编码。在这些操作场景中,描绘场景的(主图像流的)GOP中的I帧是按时间索引的,或者对应于描绘相同场景的(另一个主图像流的)另一个GOP中的另一个I帧。类似地,描绘场景的(主图像流的)GOP中的P帧或B帧是按时间索引的,或者对应于描绘相同场景的(其他主图像流的)其他GOP中的另一个P帧或B帧。指示与一个相机相关的一个时间同步的主图像流或次图像流的定时信息的图像元数据可以与SEI、PSP、SPS等中的图像一起被接收,并且被图像元数据的接收方设备用来动态地切换到与另一个相机相关的另一个时间同步的主图像流或次图像流。
在一些操作场景中,从多视角相机系统的不同相机得到的主图像流可以用可能不是时间同步的不同GOP结构来编码。可以生成图像元数据以指示不同图像流中的不同定时信息,并以SEI、PPS、SPS等的形式从如多视角视频编码器或即时视频流式传输服务器等上游设备发送到如即时视频流式传输服务器或视频流式传输客户端等下游接收方设备。接收方设备可以使用定时信息来在图像流之间动态地切换,并且适当地从正确的主图像流和/或次图像流中获取图像。
如本文使用的,可以从多视角相机系统的多个相机中选择与相机的适当子集有关的图像流,所述多视角相机系统可以由即时视频流式传输服务器选择,以向接收方视频流式传输客户端提供图像数据,从而构建要在观看者的视口中呈现的特定位置或特定取向的图像。在示例中,相机的适当子集可以是在特定位置处的单个相机,如与视见体中的中心或对称点相对应的相机,在所述视见体中,观看者被允许相对于在观看者的视口中呈现的所描绘场景移动或改变到不同位置或不同取向。在另一个示例中,相机的适当子集可以是多个相机,如接近或最接近观看者在视见体中的位置或取向的四个相机。
接收方设备可以使用其中的图像元数据或定时信息来确定切换到的相机的主图像流或次图像流中的对应图像帧是否在GOP边界。响应于确定切换发生在GOP边界,从GOP中的第一I帧开始切换到的相机的主图像流中的对应GOP可以从存储在数据存储装置中的多视角图像流中获取,或者从上游视频编码器传输,并且从即时流式传输服务器提供给流式传输客户端。另一方面,响应于确定在GOP边界处没有发生切换,切换到的相机的次图像流中的重构I帧可以从多视角图像流中获取,并从即时流式传输服务器提供给流式传输客户端,随后是切换到的相机的主图像流中的非I帧。
如本文所述,可以根据来自客户端设备的实时或近实时的地理、眼睛跟踪或感觉数据(视点数据)来确定观看者的位置或取向。
在一些操作场景中,如本文描述的B帧或P帧可以参考时间上(例如,紧接的、接下来等)相邻的帧。在这些操作场景中,来自次图像流的单个重构I帧可以被发送到接收方视频解码器,以(例如,充分地等)将接收方视频解码器置于正确的起始编解码上下文中,以用于对来自对应主图像流的后续非I帧进行解码。
在一些其他操作场景中,除了或代替时间上(例如,紧接的、接下来等)相邻的帧,如本文描述的B帧或者P帧可以参考其他帧(例如,至多15个帧等)。在这些操作场景中,来自次图像流的多个(例如,连续的等)重构I帧可以被发送以充分地放置接收方视频解码器,以(例如,充分地等)将接收方视频解码器置于正确的起始编解码上下文中,以用于对来自对应主图像流的后续非I帧进行解码。
仅出于说明的目的,已经描述了与相机或图像获取设备相关的包括主图像流和次图像流的双比特结构可以由多视角视频编码器生成。应当注意,在其他实施例中,如本文描述的双比特流结构可以由其他设备创建或生成。如本文描述的双比特流结构中的主图像流和次图像流可以或可以不同时生成,并且可以或可以不由同一设备生成。例如,当视频内容被流式传输到视频流式传输客户端时,即时流式传输服务器可以从主图像流即时创建次图像流。
仅出于说明的目的,已经描述了在观看者的视点发生变化时可以发送一个或多个重构I帧。应当注意,在一些操作场景中,附加信息和/或附加帧可以与重构I帧一起发送。例如,上游设备可以向接收方编解码设备发送包括帮助接收方编解码设备设置用于解释非I帧的正确编解码上下文的附加信息的一个或多个伪I帧。
如本文使用的,如本文描述的视频流中的视频内容可以包括但不必限于以下各项中的任一项:视听节目、电影、视频节目、TV广播、计算机游戏、增强现实(AR)内容、虚拟现实(VR)内容、汽车娱乐内容等。示例视频解码器可以包括但不必限于以下各项中的任一项:显示设备、具有近眼显示器的计算设备、头戴式显示器(HMD)、移动设备、可穿戴显示设备、具有如电视等显示器的机顶盒、视频监视器等。
如本文使用的,“视频流式传输服务器”可以是指准备视频内容且将该视频内容流式传输到一个或多个视频流式传输客户端(如视频解码器)以便在一个或多个显示器上呈现视频内容的至少一部分的一个或多个上游设备。视频内容被呈现在其上的显示器可以是一个或多个视频流式传输客户端的一部分,或者可以与一个或多个视频流式传输客户端联动操作。
示例视频流式传输服务器可以包括但不必限于以下各项中的任一项:远离(多个)视频流式传输客户端定位的基于云的视频流式传输服务器、通过本地有线或无线网络与(多个)视频流式传输客户端连接的本地视频流式传输服务器、VR设备、AR设备、汽车娱乐设备、数字媒体设备、数字媒体接收器、机顶盒、游戏机(例如,Xbox)、通用个人计算机、平板计算机、如苹果TV或罗库盒(Roku box)等专用数字媒体接收器等。
5.示例过程流程
图4A图示了根据本发明的示例实施例的示例过程流程。在一些示例实施例中,一个或多个计算设备或部件可以执行这个过程流程。在框402中,图像处理器(例如,视频流式传输服务器、视频编码器、视频内容提供商、视频代码转换器等)访问用多个主图像流和多个次图像流编码的多视角图像流。多个主图像流中的每个主图像流包括图片组(GOP)。多个次图像流中的每个次图像流包括从多个主图像流中的对应主图像流生成的I帧。
在框404中,图像处理器从接收方解码设备接收在观看者正在观看从多视角图像流中的图像数据子集得到的视频内容时实时收集的观看者的视点数据。视点数据指示观看者的视点已经从特定时间点开始发生了改变。
在框406中,图像处理器基于观看者的改变的视点从多个相机中选择相机。从由所选择的相机捕获的图像数据部分得到的视频内容部分将在特定时间点之后在观看者的视口中呈现。
在框408中,图像处理器确定特定时间点是否对应于与所选择的相机相关的主图像流的GOP中的非I帧。
在框410中,响应于确定特定时间点对应于与所选择的相机相关的主图像流的GOP中的非I帧,图像处理器向接收方解码设备传输来自与所选择的相机相关的主图像流相对应的次图像流的I帧。
在实施例中,多个主图像流包括从用多个相机捕获的图像数据生成的多个单视角图像序列;多个单视角图像序列中的每个单视角图像序列包括多个图片组(GOP);多个GOP中的GOP包括I帧和非I帧。
在实施例中,多个次图像流包括以下各项之一:从多个主图像流生成的多个重构I帧序列,或者从用于得到多个主图像流的源图像生成的多个I帧序列。
在实施例中,图像处理器进一步被配置成:响应于确定特定时间点对应于与所选择的相机相关的主图像流的GOP中的I帧,向接收方解码设备传输I帧。
在实施例中,图像处理器进一步被配置成:向接收方解码设备传输主图像流的GOP中的一个或多个后续非I帧。
在实施例中,图像处理器进一步被配置成:在向接收方解码设备传输来自次图像流的I帧之后立即向接收方解码设备传输来自次图像流的第二I帧。
在实施例中,所选择的相机属于至少部分地基于观看者的视点从多个相机中选择的相机子集;I帧属于与相机子集相关的I帧子集;I帧子集被传输到接收方解码设备。
在实施例中,观看者的视点表示以下各项之一:观看者的位置、观看者的取向、观看者的位置和与取向的组合等。
在实施例中,多视角图像流用于支持以下各项之一:增强现实应用、虚拟现实应用、影院视频应用、基于家庭的视频应用、视频流式传输应用、基于云的视频应用、基于WiFi的视频应用、基于蜂窝数据网络的视频应用、沉浸式视频应用等。
图4B图示了根据本发明的示例实施例的示例过程流程。在一些示例实施例中,一个或多个计算设备或部件可以执行这个过程流程。在框452中,图像处理器(例如,视频流式传输客户端、视频解码器、机顶盒设备等)从上游设备接收从用多个主图像流和多个次图像流编码的多视角图像流中的图像数据子集得到的视频内容。多个主图像流中的每个主图像流包括图片组(GOP)。多个次图像流中的每个次图像流包括从多个主图像流中的对应主图像流生成的I帧。
在框454中,图像处理器向上游设备发送在观看者正在观看视频内容时实时收集的观看者的视点数据。视点数据指示观看者的视点已经从特定时间点开始发生了改变。
基于观看者的改变的视点从多个相机中选择相机。从由所选择的相机捕获的图像数据部分得到的视频内容部分将在特定时间点之后在观看者的视口中呈现。
特定时间点对应于与所选择的相机相关的主图像流的GOP中的非I帧。
在框456中,图像处理器从上游设备接收来自与所选择的相机相关的主图像流相对应的次图像流的I帧。
在框458中,图像处理器处理I帧并在特定时间点在观看者的视点中呈现所述I帧。
在实施例中,来自主图像流的GOP的非I帧被随后接收;其中,至少部分地基于用所述I帧建立的编解码上下文从所述非I帧得到第二显示图像。
在实施例中,第一图像块属于形成覆盖观看者的方向的图像区域的两个或更多个连续图像块的组;一个或多个第二图像块在图像区域之外;在一个或多个第二图像块之前,接收、解码和渲染所述两个或更多个连续图像块的组中的其他图像。
在实施例中,观看者的视点在视见体内变化。
在各种示例实施例中,装置、系统、装置或者一个或多个其他计算设备执行如所描述的前述方法中的任何方法或一部分。在实施例中,非暂态计算机可读存储介质存储软件指令,这些软件指令当由一个或多个处理器执行时致使执行如本文描述的方法。
注意,尽管本文讨论了单独的实施例,但是本文讨论的实施例和/或部分实施例的任何组合都可以组合以形成进一步实施例。
6.实施机制——硬件概述
根据一个实施例,本文描述的技术由一个或多个专用计算设备实施。专用计算设备可以是硬接线的,以用于执行这些技术,或者可以包括被持久地编程以执行这些技术的数字电子设备,比如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可以包括被编程为根据固件、存储器、其他存储设备或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这样的专用计算设备也可以将定制的硬接线逻辑、ASIC或FPGA与定制编程相结合来实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备、或合并硬接线和/或程序逻辑以实施技术的任何其他设备。
例如,图5是图示了可以在其上实施本发明的示例实施例的计算机系统500的框图。计算机系统500包括总线502或用于传送信息的其他通信机制、以及与总线502耦接以处理信息的硬件处理器504。硬件处理器504可以是例如通用微处理器。
计算机系统500还包括耦接到总线502以用于存储要由处理器504执行的信息和指令的主存储器506,比如随机存取存储器(RAM)或其他动态存储设备。主存储器506还可以用于存储在执行要由处理器504执行的指令期间的临时变量或其他中间信息。在被存储于处理器504可访问的非暂态存储介质中时,这样的指令使得计算机系统500变成被自定义为执行在指令中指定的操作的专用机器。
计算机系统500进一步包括只读存储器(ROM)508或耦接到总线502以用于存储处理器504的静态信息和指令的其他静态存储设备。
如磁盘或光盘、固态RAM等存储设备510被提供并耦接到总线502以用于存储信息和指令。
计算机系统500可以经由总线502耦接到如液晶显示器等显示器512上,以用于向计算机用户显示信息。包括字母数字键和其他键的输入设备514耦接到总线502,以用于将信息和命令选择传送到处理器504。另一种类型的用户输入设备是如鼠标、轨迹球或光标方向键等光标控件516,以用于将方向信息和命令选择传送到处理器504并用于控制在显示器512上的光标移动。典型地,此输入设备具有在两条轴线(第一轴线(例如,x轴)和第二轴线(例如,y轴))上的两个自由度,允许设备在平面中指定位置。
计算机系统500可以使用自定义硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施本文描述的技术,这些自定义硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统相结合使计算机系统500成为或编程为专用机器。根据一个实施例,响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列,由计算机系统500执行本文的技术。这样的指令可以从另一个存储介质(如存储设备510)读取到主存储器506中。包含在主存储器506中的指令序列的执行使处理器504执行本文描述的过程步骤。在替代实施例中,可以使用硬接线电路来代替软件指令或者与软件指令相结合。
如本文所使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,比如存储设备510。易失性介质包括动态存储器,比如主存储器506。常见形式的存储介质包括例如软盘、软磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM和EPROM、闪速EPROM、NVRAM、任何其他存储器芯片或存储盒。
存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与存储介质之间的信息传递。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线502的导线。传输介质还可以采用声波或光波的形式,比如在无线电波和红外数据通信期间生成的那些声波或光波。
各种形式的介质可以涉及将一个或多个指令的一个或多个序列载送到处理器504以供执行。例如,最初可以在远程计算机的磁盘或固态驱动器上载送指令。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据并使用红外发射器将数据转换成红外信号。红外检测器可以接收红外信号中载送的数据,并且适当的电路可以将数据放在总线502上。总线502将数据载送到主存储器506,处理器504从主存储器取得并执行指令。主存储器506接收的指令可以可选地在由处理器504执行之前或之后存储在存储设备510上。
计算机系统500还包括耦接到总线502的通信接口518。通信接口518提供耦接到网络链路520的双向数据通信,所述网络链路连接到本地网络522。例如,通信接口518可以是综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器、或用于提供与对应类型电话线的数据通信连接的调制解调器。作为另一个示例,通信接口518可以是局域网(LAN)卡,用于提供与兼容LAN的数据通信连接。还可以实施无线链路。在任何这样的实施方式中,通信接口518发送和接收载送表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路520通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路520可以提供通过本地网络522到主计算机524或到由因特网服务提供商(ISP)526操作的数据设备的连接。ISP 526进而通过现在通常称为“因特网”528的全球分组数据通信网络来提供数据通信服务。本地网络522和因特网528都使用载送数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路520上和通过通信接口518的信号(其将数字数据载送到计算机系统500和从计算机系统载送数字数据)是传输介质的示例形式。
计算机系统500可以通过(多个)网络、网络链路520和通信接口518发送消息和接收数据,包括程序代码。在因特网示例中,服务器530可以通过因特网528、ISP 526、本地网络522和通信接口518传输应用程序的请求代码。
接收到的代码可以在被接收到时由处理器504执行和/或存储在存储设备510或其他非易失性存储器中以供稍后执行。
7.等效物、扩展、替代品和其他
在前述说明书中,已经参考许多具体细节描述了本发明的示例实施例,这些细节可以根据实施方式而变化。因此,指明本发明以及本申请人的发明意图的唯一且排他性指示是根据本申请以具体形式发布的权利要求组,其中,这样的权利要求发布包括任何后续修正。本文中针对这样的权利要求中包含的术语明确阐述的任何定义应该支配如在权利要求中使用的这样的术语的含义。因此,权利要求中未明确引用的限制、要素、性质、特征、优点或属性不应该以任何方式限制这样的权利要求的范围。因此,应当从说明性而非限制性意义上看待本说明书和附图。
Claims (13)
1.一种用于提供视频流数据的方法,所述方法包括:
访问用多个主图像流和多个次图像流编码的多视角图像流,其中,所述多个主图像流包括从用多个相机捕获的图像数据生成的多个单视角图像序列,其中,所述多个单视角图像序列中的每个单视角图像序列包括多个图片组(GOP),其中,所述多个GOP中的GOP包括I帧和非I帧,其中,所述多个次图像流包括多个重构I帧序列,所述多个重构I帧序列中的每一个是从所述主图像流中的所有非I帧中的对应非I帧得到的;
从接收方解码设备接收在观看者正在观看从所述多视角图像流中的图像数据子集得到的视频内容时实时收集的所述观看者的视点数据,其中,所述视点数据指示所述观看者的视点已经从特定时间点开始发生了改变;
基于所述观看者的改变的视点,从多个相机中选择相机,其中,从由所选择的相机捕获的图像数据部分得到的视频内容部分将在所述特定时间点之后在所述观看者的视口中呈现;
确定所述特定时间点是否对应于与所选择的相机相关的主图像流的GOP中的非I帧;
响应于确定所述特定时间点对应于与所选择的相机相关的主图像流的GOP中的非I帧,向所述接收方解码设备传输来自同与所选择的相机相关的所述主图像流相对应的次图像流的I帧。
2.如权利要求1所述的方法,进一步包括:响应于确定所述特定时间点对应于与所选择的相机相关的所述主图像流的GOP中的I帧,向所述接收方解码设备传输所述I帧。
3.如权利要求1或权利要求2所述的方法,进一步包括:向所述接收方解码设备传输所述主图像流的GOP中的一个或多个后续非I帧。
4.如权利要求1或权利要求3所述的方法,进一步包括:在向所述接收方解码设备传输来自所述次图像流的所述I帧之后立即向所述接收方解码设备传输来自所述次图像流的第二I帧。
5.如权利要求1至4中任一项所述的方法,其中,所选择的相机属于至少部分地基于所述观看者的视点从所述多个相机中选择的相机子集;其中,所述I帧属于与所述相机子集相关的I帧子集;其中,所述I帧子集被传输到所述接收方解码设备。
6.如权利要求1至5中任一项所述的方法,其中,所述观看者的视点表示以下各项之一:所述观看者的位置、所述观看者的取向或所述观看者的位置和所述观看者的取向的组合。
7.如权利要求1至6中任一项所述的方法,其中,所述多视角图像流用于支持以下各项之一:增强现实应用、虚拟现实应用、影院视频应用、基于家庭的视频应用、视频流式传输应用、基于云的视频应用、基于Wi-Fi的视频应用、基于蜂窝数据网络的视频应用或沉浸式视频应用。
8.一种用于呈现视频流数据的方法,所述方法包括:
从上游设备接收从用多个主图像流和多个次图像流编码的多视角图像流中的图像数据子集得到的视频内容,其中,所述多个主图像流包括从用多个相机捕获的图像数据生成的多个单视角图像序列,其中,所述多个单视角图像序列中的每个单视角图像序列包括多个图片组(GOP),其中,所述多个GOP中的GOP包括I帧和非I帧,其中,所述多个次图像流包括多个重构I帧序列,所述多个重构I帧序列中的每一个是从所述主图像流中的所有非I帧中的对应非I帧得到的;
向所述上游设备发送在观看者正在观看所述视频内容时实时收集的所述观看者的视点数据,其中,所述视点数据指示所述观看者的视点已经从特定时间点开始发生了改变;
其中,基于所述观看者的改变的视点,从多个相机中选择相机,其中,从由所选择的相机捕获的图像数据部分得到的视频内容部分将在所述特定时间点之后在所述观看者的视口中呈现;
其中,所述特定时间点对应于与所选择的相机相关的主图像流的GOP中的非I帧;
从所述上游设备接收来自同与所选择的相机相关的所述主图像流相对应的次图像流的I帧;
处理从所述I帧得到的显示图像并在所述特定时间点在所述观看者的视点中呈现所述显示图像。
9.如权利要求8所述的方法,其中,来自所述主图像流的GOP的非I帧被随后接收;其中,至少部分地基于用所述I帧建立的编解码上下文从所述非I帧得到第二显示图像。
10.如权利要求8或9所述的方法,其中,所述观看者的视点在视见体内变化。
11.如权利要求8至10中任一项所述的方法,其中,所述观看者的视点表示以下各项之一:所述观看者的位置、所述观看者的取向或所述观看者的位置和所述观看者的取向的组合。
12.一种装置,所述装置包括处理器并且被配置成执行如权利要求1至11所述的方法中的任一种方法。
13.一种计算机可读存储介质,所述计算机可读存储介质具有存储于其上的用于根据权利要求1至11所述的方法中的任一种方法、利用一个或多个处理器来执行方法的计算机可执行指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063060269P | 2020-08-03 | 2020-08-03 | |
EP20189126 | 2020-08-03 | ||
EP20189126.4 | 2020-08-03 | ||
US63/060,269 | 2020-08-03 | ||
PCT/US2021/044379 WO2022031727A1 (en) | 2020-08-03 | 2021-08-03 | Dual stream dynamic gop access based on viewport change |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116097652A true CN116097652A (zh) | 2023-05-09 |
CN116097652B CN116097652B (zh) | 2024-07-19 |
Family
ID=77367486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180054467.2A Active CN116097652B (zh) | 2020-08-03 | 2021-08-03 | 基于视口变化的双流动态gop访问 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230300426A1 (zh) |
EP (1) | EP4189968A1 (zh) |
JP (1) | JP7463614B2 (zh) |
CN (1) | CN116097652B (zh) |
WO (1) | WO2022031727A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527914A (zh) * | 2023-04-28 | 2023-08-01 | 北京沃东天骏信息技术有限公司 | 适用于空间图像的解码方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101953164A (zh) * | 2008-02-21 | 2011-01-19 | 英国电讯有限公司 | 视频流传送 |
CN109996055A (zh) * | 2017-12-06 | 2019-07-09 | 杜比实验室特许公司 | 位置零时延 |
CN110024409A (zh) * | 2016-11-21 | 2019-07-16 | 思科技术公司 | 具有多个接收器的视频流的关键帧削弱 |
US10432970B1 (en) * | 2018-06-14 | 2019-10-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for encoding 360° immersive video |
CN111355954A (zh) * | 2018-12-20 | 2020-06-30 | 皇家Kpn公司 | 为视频播放器装置处理视频数据 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6788333B1 (en) * | 2000-07-07 | 2004-09-07 | Microsoft Corporation | Panoramic video |
US7444664B2 (en) * | 2004-07-27 | 2008-10-28 | Microsoft Corp. | Multi-view video format |
WO2006057938A2 (en) | 2004-11-22 | 2006-06-01 | Thomson Research Funding Corporation | Method and apparatus for channel change in dsl system |
WO2007043775A1 (en) * | 2005-10-07 | 2007-04-19 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding and decoding hopping default view for multiple cameras system |
WO2014001381A2 (en) * | 2012-06-28 | 2014-01-03 | Axis Ab | System and method for encoding video content using virtual intra-frames |
US9742995B2 (en) * | 2014-03-21 | 2017-08-22 | Microsoft Technology Licensing, Llc | Receiver-controlled panoramic view video share |
EP3014579B1 (en) * | 2014-04-30 | 2018-09-26 | Intel Corporation | System and method of limiting processing by a 3d reconstruction system of an environment in a 3d reconstruction of an event occurring in an event space |
US10951914B2 (en) * | 2015-08-27 | 2021-03-16 | Intel Corporation | Reliable large group of pictures (GOP) file streaming to wireless displays |
US11303966B2 (en) * | 2016-09-26 | 2022-04-12 | Dolby Laboratories Licensing Corporation | Content based stream splitting of video data |
US11290699B2 (en) * | 2016-12-19 | 2022-03-29 | Dolby Laboratories Licensing Corporation | View direction based multilevel low bandwidth techniques to support individual user experiences of omnidirectional video |
US10592747B2 (en) * | 2018-04-26 | 2020-03-17 | Fyusion, Inc. | Method and apparatus for 3-D auto tagging |
US10567780B2 (en) | 2018-06-14 | 2020-02-18 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for encoding 360° immersive video |
-
2021
- 2021-08-03 US US18/019,729 patent/US20230300426A1/en active Pending
- 2021-08-03 JP JP2023507401A patent/JP7463614B2/ja active Active
- 2021-08-03 EP EP21755873.3A patent/EP4189968A1/en active Pending
- 2021-08-03 WO PCT/US2021/044379 patent/WO2022031727A1/en active Application Filing
- 2021-08-03 CN CN202180054467.2A patent/CN116097652B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101953164A (zh) * | 2008-02-21 | 2011-01-19 | 英国电讯有限公司 | 视频流传送 |
CN110024409A (zh) * | 2016-11-21 | 2019-07-16 | 思科技术公司 | 具有多个接收器的视频流的关键帧削弱 |
CN109996055A (zh) * | 2017-12-06 | 2019-07-09 | 杜比实验室特许公司 | 位置零时延 |
US10432970B1 (en) * | 2018-06-14 | 2019-10-01 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for encoding 360° immersive video |
CN111355954A (zh) * | 2018-12-20 | 2020-06-30 | 皇家Kpn公司 | 为视频播放器装置处理视频数据 |
Also Published As
Publication number | Publication date |
---|---|
EP4189968A1 (en) | 2023-06-07 |
JP2023535994A (ja) | 2023-08-22 |
US20230300426A1 (en) | 2023-09-21 |
JP7463614B2 (ja) | 2024-04-08 |
CN116097652B (zh) | 2024-07-19 |
WO2022031727A1 (en) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10567464B2 (en) | Video compression with adaptive view-dependent lighting removal | |
US10469873B2 (en) | Encoding and decoding virtual reality video | |
US10419737B2 (en) | Data structures and delivery methods for expediting virtual reality playback | |
US20130022116A1 (en) | Camera tap transcoder architecture with feed forward encode data | |
US20110157309A1 (en) | Hierarchical video compression supporting selective delivery of two-dimensional and three-dimensional video content | |
KR20100125292A (ko) | 가상 레퍼런스 뷰 | |
JP7320146B2 (ja) | ディスオクルージョンアトラスを用いたマルチビュービデオ動作のサポート | |
JP7177034B2 (ja) | レガシー及び没入型レンダリングデバイスのために没入型ビデオをフォーマットする方法、装置、及びストリーム | |
US11120615B2 (en) | Dynamic rendering of low frequency objects in a virtual reality system | |
CN112753224B (zh) | 用于生成并且绘制视频流的装置和方法 | |
US20230215129A1 (en) | Representing volumetric video in saliency video streams | |
US9483845B2 (en) | Extending prediction modes and performance of video codecs | |
CN116097652B (zh) | 基于视口变化的双流动态gop访问 | |
US20230300346A1 (en) | Supporting view direction based random access of bitsteam | |
US11295541B2 (en) | Method and apparatus of 360 degree camera video processing with targeted view | |
JP2012028960A (ja) | 画像復号装置、画像復号方法および画像復号プログラム | |
RU2775391C1 (ru) | Разбиение на тайлы и подизображения | |
RU2775739C1 (ru) | Способ поуровневого произвольного доступа в кодированном видеопотоке | |
US20240236352A1 (en) | Bitstream syntax for mesh motion field coding | |
US20240233271A1 (en) | Bitstream syntax for mesh displacement coding | |
US20240242389A1 (en) | Displacement vector coding for 3d mesh | |
US20240236305A1 (en) | Vertices grouping in mesh motion vector coding | |
WO2023199076A1 (en) | Extended reality encoding | |
WO2024151517A2 (en) | Integrating duplicated vertices and vertices grouping in mesh motion vector coding |
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 |