多向视频的自适应编码和流式传输的制作方法

文档序号:26013429发布日期:2021-07-23 21:34阅读:73来源:国知局
多向视频的自适应编码和流式传输的制作方法

相关专利申请的交叉引用

本申请要求于2018年11月29日提交的美国专利申请no.16/204,792的权益,其公开内容以引用方式并入本文。



背景技术:

本公开涉及视频编码技术。

一些现代成像应用程序从相机的多个方向捕获图像数据。一些相机在图像捕获过程中枢转,这允许相机跨角度扫描来捕获图像数据,从而扩展了相机的有效视场。一些其他相机具有在若干不同视场中捕获图像数据的多个成像系统。在任一种情况下,可以创建聚合图像,该聚合图像合并从这些多个视图捕获的图像数据(常称为“360度”或全向图像)。

多种渲染应用程序可用于多向内容。一种渲染应用程序涉及提取和显示包含在多向图像中的内容的子集。例如,观察者可采用头戴式显示器并改变显示器的取向以识别观察者感兴趣的多向图像的一部分。另选地,观察者可采用静止显示器,并且通过用户界面控件识别观察者感兴趣的多向图像的一部分。在这些渲染应用中,显示设备从多向图像(为方便起见称为“视口”)提取图像内容的一部分并将其显示。显示设备将不显示多向图像的位于由视口占据的区域之外的其他部分。

附图说明

图1示出了根据本公开的一个方面的系统。

图2示意性地示出了根据本公开的一个方面的用于接收终端的渲染应用程序。

图3示出了示例性划分方案,其中帧被划分为非重叠图块。

图4示出了存储示例性一组编码视频数据的服务器。

图5a示出了根据本公开的一个方面的示例性渲染设备。

图5b示出了根据本公开的一个方面的渲染系统。

图6示出了根据本公开的一个方面的一种方法。

图7示出了根据本公开的一个方面的示例性移动视口。

图8示出了根据本公开的一个方面的一种方法。

图9示出了根据本公开的一个方面的一种方法。

图10示出了根据本公开的一个方面的一种用于预测视口位置的方法。

图11示出了根据本公开的一个方面的一种用于预测视口位置的方法。

图12示出了根据本公开的一个方面的一种用于编码拼贴视频的系统。

图13示出了根据本公开的一个方面的一种用于从预编码视频流中为视口位置选择图块和层的系统。

图14示出了根据本公开的一个方面的用于编码源视频的图块的方法。

图15示出了根据本公开的一个方面的一种用于在视口移动时为源视频的图块选择层的方法。

图16是根据本公开的一个方面的编码系统的功能框图。

图17是根据本公开的一个方面的解码系统的功能框图。

图18是示例视频分发系统的简化框图。

图19示出了根据一个方面的示例性多向图像投影格式。

图20示出了根据另一方面的示例性多向图像投影格式。

图21示出了另一示例性多向投影图像格式。

具体实施方式

在通信应用中,发射器处的聚合源图像数据超过在接收器处显示视口的渲染所需的数据。改进的流式传输技术可包括估计视口在未来时间的位置。改进的编码技术可包括适配源图像数据的独立编码子区域(例如,图块)之间的位分配。附加的改进的流式传输技术可包括确定可适配视口移动的预编码源图像数据的层和图块选择。

本公开的多方面提供包括估计视口在未来时间的位置的技术。根据此类技术,视口可表示未来时间将显示的来自多向视频的图像的一部分,并且可标识视口估计将位于其中的该图像的图块。在这些技术中,可在第一服务层请求视口估计将位于其中的图块的图像数据,并且可在低于第一服务层的第二服务层请求视口未被估计位于其中的另一图块。

本公开的多个方面提供了包括适配源图像数据的图块之间的位分配的技术。多向视频流可被空间地解析成独立编码区域,其在本文中可被称为图块,并且在时间上被划分成组块。可分析组块中图块的图像内容以确定组块内图块之间的位分配策略,使得所有图块的质量度量类似。然后可彼此独立地对组块的图块进行编码。在一些方面,可用多层编码协议对图块进行编码,其中可以多层质量或比特率对单个图块进行编码。在一些方面,可针对视频的其他组块重复分析和编码。

本公开的多个方面提供了用于在视口移动时选择层集合的技术。根据此类技术,可为多向视频流的当前视口位置选择第一层集合,其中层集合是具有对应层的图块的第一列表,包括在包括该视口位置的当前视口层处的视口图块以及在包括不包括当前视口位置的图块的非视口层处的非视口图块。当经压缩的视频数据的聚合大小超过阈值时,可选择新的层集合,并且可请求传输新的层集合。例如,当第一层集合的聚合大小高于高阈值时,可选择包括该第一图块列表和对应的减小层的减小层集合,其中对应的减小层中的每一者低于或等于其在第一集合中的对应的第一层。在另一示例中,当第一层集合的经压缩视频数据的聚合大小低于另一低阈值时,可选择包括该第一图块列表和对应的增大层的增大层集合,其中对应的增大层中的每一者高于或等于其在第一集合中的对应的第一层。图1示出了根据本公开的一个方面的系统100。如图所示,系统100被示出为包括通过网络130互连的源终端110和接收终端120。源终端110可将全向视频的编码表示传输到接收终端120。接收终端120可接收经编码的视频,对其进行解码,并且显示经解码的视频的所选择的部分。

图1示出了作为多向相机的源终端110,该多向相机在对本地环境的图像数据进行编码之前捕获它。在另一方面,源终端110可从外部源(未示出)诸如流式服务或存储设备接收全向视频。

接收终端120可以确定由多向图像表示的三维空间中的视口位置。接收终端120可以例如基于终端在自由空间中的取向来选择要显示的经解码的视频的一部分。图1示出了作为头戴式显示器的接收终端120,但是在其他方面,接收终端120可以是另一种类型的显示设备,诸如固定平板显示器、智能电话、平板电脑、游戏设备或便携式媒体播放器。可为不同类型的用户控件提供每种此类显示器类型,观察者通过这些显示器类型识别视口。除非本文另有说明,否则接收终端的设备类型对于本讨论是无关紧要的。

网络130表示从源终端110延伸到接收终端120的任何数量的计算机和/或通信网络。网络130可包括电路交换通信网络和/或分组交换通信网络中的一者或组合。网络130可通过任何数量的有线和/或无线通信介质在源终端110和接收终端120之间传送数据。除非本文另外指出,否则网络130的架构和操作对于本讨论而言是不重要的。

图1示出了通信配置,其中经编码的视频数据在单个方向上从源终端110传输到接收终端120。本公开的各方面可应用于以双向方式从终端110到终端120以及从终端120到终端110交换经编码的视频数据的通信设备。本公开的原理可应用于视频的单向交换和双向交换两者。

图2示意性地示出了根据本公开的一个方面的用于接收终端200的渲染应用程序。如图所示,全向视频被表示为好像其沿着围绕接收终端200提供的球形表面210存在。基于接收终端200的取向,终端200可以选择视频的一部分(为方便起见称为“视口”)并显示所选择的部分。随着接收终端200的取向改变,终端200可以从视频中选择不同的部分。例如,图2示出了沿表面210从第一位置230改变到第二位置240的视口。

本公开的各方面可应用根据多个编码协议中的任一个的视频压缩技术。例如,源终端110(图1)可以根据itu-t/isompeg编码协议(诸如h.265(hevc)、h.264(avc)和即将到来的h.266(vvc)标准)、aom编码协议(诸如av1)或先导编码协议来对视频数据进行编码。通常,此类协议将视频的各个帧解析成在本文中被称为“像素块”的视频的空间阵列,并且可以规则编码顺序诸如光栅扫描顺序对像素块进行编码。

在一个方面,多向内容的各个帧可以被解析成各个空间区域,在本文中称为“图块”,并且被编码为独立数据流。图3示出了示例性划分方案,其中帧300被划分为非重叠图块310.0-310.11。在帧300表示全向内容(例如,其表示完美360°视场中的图像内容,图像内容将跨帧300的相对的左边缘320和右边缘322连续)的情况下。

在一个方面,这里描述的图块可以是在一些标准诸如hevc中使用的图块的特殊情况。在这个方面,本文使用的图块可以是“运动约束图块集”,其中使用完全相同的图块划分对所有帧进行分段,并且每个帧中的每个图块仅被允许使用来自其他帧中协同定位的图块的预测。解码器回路中的滤波也可在图块上不被允许,从而提供图块之间的解码独立性。仍然可在解码器回路之外允许滤波。

图4在一个方面对应于图3所示的拼贴图像示出了存储示例性一组编码视频数据的服务器410。如所讨论的,可将多向图像300解析成表示图像300的不同空间区域的多个图块310.0-310.11。图块310.0-310.11中的每一者可在不同质量“层”420、430、440编码。层可通过以不同级别的编码质量、不同的编码比特率等表示其相应图块来彼此区分。

每个图块可被时间地解析成多个片段(片段0-n在图4的示例中示出)。每个片段可包含在预先确定的时间跨度上表示其相应层的经编码视频数据。尽管不是必要的,但每个片段可表示公共时间量(例如,5秒、10秒等)。片段可在公共时间点终止,这允许在第一质量层(例如,层430)递送单个图块(例如,图块0)的视频递送,然后在公共片段之间的过渡处改变到另一质量层(例如,层440)。即,区段0-2可从层430递送,然后过渡到层440,区段3-n从层440递送。因为片段0-n覆盖跨每个层420、430和440的公共时间跨度,所以片段限定层420-440之间的允许过渡点。

服务器410还可存储清单450,该清单存储标识层420-440、图块0-11以及其中可供用于下载到客户端设备的片段的数据。清单450通常存储关于层、图块和片段的描述性信息,诸如它们的空间大小、数据速率、时间和网络标识符,每个片段可从这些网络标识符下载。通常,服务器410将把清单450提供给客户端设备,并且客户端设备将基于对清单450的检查来选择用于下载的片段。

在一个方面,图4中的编码视频数据的层可以各种方式彼此区分。例如,按通过客观或主观质量度量所测量,层420可以是比层430或440更高的质量层。编码质量度量可例如通过测量均方误差(mse)、峰值信噪比(psnr)、视频多方法评估融合(vmaf)度量、结构相似性(ssim)指标、考虑时间误差的度量诸如视频质量度量(vqm)来将源输入视频与编码视频进行比较。主观质量度量可包括不同层的手动观察者评级。

图5a示出了根据本公开的一个方面的示例性渲染设备510。在图5a中,渲染设备510被描绘为佩戴在观察者的头部上,并且包括显示器530和任选的视线位置传感器530。显示器520可呈现来自多向视频的视口的渲染。任选的视线位置传感器可检测观察者的视线在视口的区域内的视线位置。例如,视线位置传感器520可包括相机,该相机检测相对于显示器520的观察者眼睛位置以估计观察者眼睛的视线位置。渲染设备510还可包括可选的运动传感器(未示出)以检测观察者头部的移动。

图5b示出了根据本公开的一个方面的渲染系统550。系统550包括发射器/接收器单元552、包含视口图块556和非视口图块558两者的编码图像数据的流缓冲器554、解码器560、显示输出562和控制器564。系统550还可任选地包括运动检测器566和/或视线传感器,诸如相机568。发射器/接收器552可将对多向视频的片段的请求发送给通信信道,并且可从该信道接收所请求的片段。在一个方面,片段请求可被发送给服务器诸如图4的服务器410,并且片段数据可从服务器接收。控制器564可确定哪些图块包含当前视口,控制解码器560从流缓冲器554解码当前视口图块556,并且将经解码的图像内容提供给显示输出562。显示输出562可被发送给显示器,诸如图5a的显示器520,以向观察者呈现视口的图像。

一方面,控制器564可基于运动传感器数据确定当前视口位置。例如,如果运动检测器566在头戴式显示器上,则可从运动检测器566确定当前视口位置。经解码的视口图块可到达视口周边以用于渲染。在另一方面,控制器564可从来自视线位置传感器的视线位置确定静止显示器上的感兴趣区域。

除了确定当前视口位置之外,控制器564还可预测视口的未来位置。例如,可从运动检测器566或相机568估计观察者的视线移动的方向和速度,并且可从所估计的视线移动方向推导视口的未来位置。在其他方面,可基于视口位置提示、基于关于其他观察者的数据以及基于视频的图像内容本身来预测视口的未来位置。视口命中可例如从经编码片段的源接收,并且指示其他观察者的视线或视口位置,或可由多向视频的艺术导演或创建者指定的优选视口。视频的图像内容可包括根据对象分析或视频数据识别确定的对象在视频中的位置。

在一个方面,控制器564可请求经编码的多向视频数据的片段。所请求的片段可用于当前视口位置、预测的未来视口位置和其他非视口位置。例如,片段请求可基于清单450中列出的网络位置标识符来自图4的服务器410。示例性默认请求策略可包括在第一较高质量层处请求预测位置的一个或多个图块,在第二较低质量层处请求该预测位置附近的图块,以及不请求远离该预测位置的图块的任何片段。在另一方面,可在第二较低质量层处请求预测视口位置之外的所有层。在一个方面,与所预测的视口位置的图块相比,可在更高或更低质量层处为未来渲染时间的片段请求包含当前视口的图块。

视口预测

图6示出了根据本公开的一个方面的一种方法600。渲染终端510可确定当前视口位置(框602),并解码和渲染包括当前视口位置的经编码视频图块(框604)。框602和604可连续地重复以确定新的视口位置并解码和渲染新的视口图像。可估计对当前视口的可能未来变化(框606),并且可基于当前视口位置和所估计的变化来分配服务质量层给图块。(框608)。终端510可向终端410请求经编码的数据片断(消息610),并且终端610可通过提供所请求的经编码数据片断(消息612)进行响应。可连续重复地估计视口变化并对片段请求(框606、608,消息610、612)。在各方面,终端510可以是图5a的渲染设备510,并且终端410可以是图4的服务器410。

图7示出了根据本公开的一个方面的示例性移动视口。在图7中,多向图像700被空间地解析成图块t10至t12,并且当前视口位置跨图块t1和t2,而所估计的未来视口位置在也移动通过图块t5之后跨图块t6和t7。在示例性默认层-图块选择策略中,包含当前视口位置(图块t1和t2)的片段可以用于最高服务级别的第一层被请求,而包括所预测的未来视口位置的其他图块(图块t5、t6和t7)可以用于较低服务质量的第二层被请求。不包括当前或所预测的服务级别的其他图块可以最低服务质量被请求,或者可根本不被请求。

图8示出了根据本公开的一个方面的方法800。在方法800中,可估计观察者的视线位置移动的方向(框802),并且可标识沿所估计的视线移动方向的图块(框804)。可针对所标识的图块提高所请求片段的服务质量级别(框806),而可降低远离所估计的视线移动方向的图块的服务质量级别(框808)。

在一个方面,视线位置移动的方向可基于以下各项的任何组合:来自当前观察者处的传感器的输入,诸如图5b的运动检测器566和相机568;视口提示,诸如嵌入经编码图像数据中的sei消息;以及关于其他观察者的数据,诸如其他观察者的视线方向或视口位置。

一方面,视口提示可与图像压缩数据一起提供,诸如在嵌入在数据中的sei消息中,并且视口提示可指定当前位置或预期未来位置。所指定位置可指示视口位置或视线位置,并且可包括视口或视线位置的当前运动(方向和速度)。在一些方面,来自数据源的位置信息可为相对于整个多向图像,或者位置信息可为相对于图块边界,诸如通过简单地通过指定包括视口位置的图块来指定位置。例如,嵌入在视频时间t处的片段的视频数据中的sei消息可指定在未来视频时间t+2期间的视口的预期图块位置。此类sei消息可便于接收终端在视频时间t+2的渲染是必要的之前针对预期的未来图块位置请求更高服务级别的传输。又如,sei消息可指定优选的未来位置或预期的视线位置,诸如单个像素或区域的位置,然后接收终端可基于所指定的视线位置和本地视口的尺寸来确定将被包括在本地视口中的图块。

在一个方面,视口提示信息可包括其他观察者的观看习惯。观看习惯可包括在多向视频的不同视频时间的视线或视口位置。观察习惯也可包括视口运动诸如方向和速度、或头部运动。在一些方面,许多其他用户的观看习惯可在许多用户上平均,而在其他方面,其他观察者的观看习惯可例如根据多个统计上频繁的视线位置或根据对应于频繁视线位置的图像内容中的对象来分类。

一方面,其他观察者的视线位置可基于在传输给当前观察者之前先前观察者在那里观看媒体的先前观察者的视线。在另一方面,本文呈现的技术可在实时广播或组播事件中使用。并发观察者的视线位置可被估计并用于分配用于传输的服务层。例如,可检测一个或多个实时观察者在编码之前观看视频的视线位置,然后可使用那些实时观察者视线位置为多个网络位置处的多个当前观察者分配服务级别。在该实时事件方面,优于现有技术的附加带宽改善包括对观察者的多个同时网络目的地的所分配服务级别的带宽优化。

图9示出了根据本公开的一个方面的方法900。在方法900中,可从传感器估计当前观察者的视线位置移动的方向(框902),然后可将其与从信道接收的视口方向的提示进行比较(框904)。如果所估计的方向与视口提示匹配(框906),则对于与视口提示匹配的图块要求提高的服务级别(框910),并且应用默认的层-图块选择策略(框908)。

图10示出了根据本公开的一个方面的一种用于预测视口位置的方法。在该方法中,可在观看多向视频时估计当前观察者的视线方向(框1002)。可将当前观察者的估计视线运动与视频内容中的主导运动进行比较(框1006)。如果当前观察者的估计视线运动与主导运动匹配(框1008),则沿主导运动路径的视口的服务级别被提高(框1012)。例如,与默认的层选择策略相比,可将沿主导运动路径的图块的层级别提高到更高质量层。另选地,如果观察者的估计视线运动与主导运动不匹配,则可应用默认的层选择策略(框1010)。

来自源的运动指示符可例如作为元数据直接存储在视频的清单中,可嵌入经编码的视频内容中诸如在sei消息中,或者可单独传送诸如在运动信息的数据片段中在清单中所列出的与经编码的视频数据的位置分开的位置处传送。运动指示本身可以是例如视频中的光流的估计,或者可以简单地是平均主导运动的指示。例如,视频内容中的运动可由视线位置周围区域中的经编码视频中的运动矢量确定,或者由指示运动的元数据诸如由视频的内容分析创建的元数据确定。在一个方面,与视线方向进行比较的内容运动可以是视线位置的区域中的主导运动。在其他方面,内容运动可以是源视频的较大部分或整个帧的全局运动。

图11示出了根据本公开的一个方面的一种用于预测视口位置的方法。先前观察者的视线方向可被分类(框1102),并且与当前用户的视线方向分类进行比较(框1104)。如果当前观察者的分类匹配先前观察者的分类(框1104),则可根据所提供的分类请求图块服务级别(框1106)。

先前观察者的数据(包括先前观察者的视线方向的分类)可与经编码的媒体一起提供,例如作为清单中的元数据、嵌入经编码媒体中诸如sei消息中的元数据、或作为清单对于媒体所指向的单独数据片段。

图块位分配

图12示出了根据本公开的一个方面的用于编码拼贴视频的系统1200。图12的系统包括图像处理器1202、视频格式化器1204和视频编码器1204。图12还包括可选的元素存储装置1208和预测处理器1210。可将多向源视频作为输入提供给图像处理器1202和视频格式化器1204两者。视频格式化器1204可将多向源视频从源格式诸如图19至图21的格式转换成时间组块的空间图块,例如如本文关于图3所解释的。因此,图像格式化器1204可输出要由视频编码器1206压缩的时间组块的视频图块。在一些方面,视频编码器1206可彼此独立地对组块内的图块进行编码。视频的组块对应于一段时间内的视频部分。在一些方面,组块可对应于源视频的多个帧时间;在其他方面,组块可对应于源视频的单个帧。图像处理器1202处理输入视频以产生用于视频组块的图块位分配,其可包括跨组块图块的位预算(或带宽限制)的分配。例如,图像处理器1202可选择图块位分配,该图块位分配可提供按质量度量测量跨图块类似的视觉质量。视频编码器1206可根据图像处理器1202所确定的位分配来对组块的图块进行编码。例如,视频编码器1206可使用基于来自图像处理器1202的图块位分配的量化参数来对在时间上彼此协同定位的图块的数据片段进行编码。

可选的存储装置1208可存储多向视频的组块的经编码图块,例如如图4所示。在一个方面,存储装置1208中的组块的经编码图块可在清单文件中被索引,如图18所示,以便于稍后检索。存储装置1208可驻留在能够响应对组块的所存储的经编码图块的请求的联网服务器上。

可选的预测处理器1210可确定将在接收或渲染经编码多向视频的终端处用于预测观察者的视口的可能位置的观察者预测信息。预测信息可包括来自同一多向源视频的其他观察者的数据、关于多向源视频的图像内容的数据和/或从其他观察者的数据和图像内容中的一者或两者推导的信息。例如,图像处理器1202可执行图像分析以检测对象和光流,并且可将检测到的对象的位置和运动提供给预测处理器1210。例如,预测处理器1210可收集关于先前用户观看多向源视频的数据,包括其他用户对于每个视频组块的视口位置,或者其他观察者的眼睛视线可在呈现多向源视频期间被跟踪。在一些情况下,其他观察者可被分组到类别中,诸如由人口统计数据定义的类别或由观察者在观看源视频时视线跟踪的检测到的对象定义的类别。在另一示例中,观察者预测信息可包括被多源视频的艺术导演确定为包含例如多向源视频的预期主要主题的优选视口的视口位置。

在一个方面(未示出),观察者预测信息可被嵌入到经编码视频中。例如,hevc和其他视频编码标准可提供可用于描述优选视口位置的元数据机制,诸如补充增强信息(sei)消息。

在一个方面,视觉质量可通过质量度量诸如主观感知图像质量度量或客观图像质量度量诸如mse、psnr、vmaf、ssim或vqm来测量。在一个方面,可标识质量度量的目标,图块可被编码和解码以测量实际质量度量值。如果所测量的实际质量度量不足够接近目标质量度量,则可调节编码参数,并且图块可利用经调节的参数进行重新编码,直到实现目标。

在一个方面,质量度量处的编码可包括改变编码参数以实现由质量度量测量的质量级别。可变化的此类编码参数包括改变量化参数、改变量化阈值、改变拉格朗日λ参数、以及改变要编码的源视频的分辨率。

在一个方面,视频编码器1206可根据多层编码协议创建源视频的图块,并且图像处理器1202所生成的图块位分配可包括组块中每个图块的多个层的位分配。位分配中所指定的所有组块的所有层可被编码并存储在存储装置1208中,并且以清单进行描述用于供后续使用,诸如来自服务器的流式传输。

图14示出了根据本公开的一个方面的用于编码源视频的图块的方法1400。多向源视频的时间组块可被分成空间图块(框1402),这些空间图块被分析(框1404)并被编码(框1406)。组块中的图块的分析(框1402)可生成图块位分配,例如如在图12的图像处理器框1202中那样。组块的每个图块j可根据图块位分配进行编码(框1406)。

如图12和图14所示根据图块位分配对视频进行编码可解决由拼贴的源视频(诸如图3所示的被分成图块的视频)引起的问题。例如,视频数据的图像常常不包括在空间上遍及视频帧的信息的均匀密度。与包含地面上具有详细纹理或复杂运动的对象的图块相比,填充有平滑天空的图像的图块可更容易压缩。对经压缩视频的存储容量或传输带宽限制可指示经压缩组块k的最大位数bk。均匀分配给每个图块的bk个位的简单划分可导致较容易压缩的图块的高质量压缩,以及较难压缩的图块的低质量压缩。此类不均匀压缩质量可被观察者在视觉上感知为所渲染图块的边缘处的视觉伪影。

在一个方面,对所有图块上的位预算的均匀分布的改进可包括基于图块的权重来分配位,其中可由图像处理器1202基于特定组块中所有图块的图像内容来确定该组块中特定图块的权重。例如,组块k的图块j的权重wkj可基于组块k的图像内容,并且可用于确定图块位分配

bkj=bk*wkj(等式1)

其中bkj是组块k的图块j的图块位分配,并且bk是组块k的所有图块的总位预算。

在一个方面,视频编码器1206可根据多层编码协议来使用源视频的图块,并且图像处理器1202所生成的图块位分配可以是包括用于组块中各个图块的多个层的位分配的层-图块位分配。例如,组块k的图块j和层t之间的层-图块位分配bkj(t)可被确定为:

bkj(t)=bk(t)*wkj(等式2)

其中组块k的每个层t的总位预算是bk(t)。同样,权重wkj可基于组块k的图块的图像内容分析来确定。图块编码(框1406)然后可包括根据层-图块位分配对层中第一组块的图块进行编码。

图块和层选择

图13示出了根据本公开的一个方面的用于为视口位置从预编码的视频流中选择图块和层的系统1300。图13的系统包括图块和层选择器1302以及视频解码器1304。基于当前视口位置,图块和层选择器1302可选择指定将从经编码的多向视频例如从图12的存储装置1208请求当前组块的哪些层和图块的层集合。用于当前视口位置的视频数据(其可为层集合中所指定的数据的子集,并且因此可为从存储装置1208接收的视频数据的子集)可由视频解码器1304解码以生成包含当前视口的图块的经解码视频。可选的视口裁剪器1306可将经解码的图块组合和裁剪为视口的实际形状,以生成经解码的视口图像。可选的视口预测器1310可基于当前视口位置和从经编码的多向视频源接收的视图预测信息来生成预测的视口位置。在一方面(未示出),视图预测信息可嵌入在经编码的视频数据中,诸如在hevc视频编码标准的sei消息中。

图15示出了根据本公开的一个方面的用于在视口移动时为源视频的图块选择层的方法1500。如图15所示,为第一视口位置选择第一层集合(框1502),并且发出对传输第一层集合的请求(框1504)。然后为新的视口位置选择第二层集合(框1506)。在请求第二视口位置之前,确定第一层集合和第二层集合的组合的经压缩视频数据的聚合大小(框1508)。如果聚合大小超过高阈值,则选择(框1516)并请求(框1518)减小的第二层集合。另选地,如果聚合大小低于低阈值,则选择(框1512)并请求(框1514)增大的第二层集合。

层集合可包括图块的列表和对应的层,并且可例如由图13的图块和层选择器1302来进行层集合的选择。如果在针对组块开始传输第一层集合之后视口从第一视口位置移动,则可能期望在渲染下一组块之前调节层集合。例如,当新视口位置的图块位于较低质量层或者在第一层集合中根本不请求时,可能期望对新视口位置具有较高质量渲染,而不等待直到下一组块。然而,针对新视口位置传输第二层集合的请求可能超过带宽阈值。当超过阈值时,可根据需要增大或减小第二层集合中的层以满足聚合大小阈值。

在一个方面,与层集合的聚合大小进行比较的阈值的数量可变化。例如,可使用多个高阈值来以不同方式减小聚合大小。例如,如果超过第一高阈值,则可针对视口图块和非视口图块中的仅一者减小层级别,而如果超过比第一高阈值高的第二高阈值,则可针对视口图块和非视口图块两者减小层级别。类似地,如果超过第一低阈值,则可针对视口图块和非视口图块中的仅一者增大层级别,而如果超过比第一低阈值低的第二低阈值,则可针对视口图块和非视口图块两者增大层级别。

在一个方面,可通过增大或减小视口图块所使用的层级别来改变层集合的聚合压缩大小。在另一方面,可通过增加或减少视口图块和非视口图块之间的层数来改变层集合的大小。例如,用于层集合的默认选择可以是选择用于视口图块的恒定视口层,以及用于非视口图块的恒定非视口层,其中非视口层小于视口层。在这种情况下,可通过增大视口层和非视口层之间的差异来选择减小的层集合。另选地,可通过减少视口层和非视口层之间的层数来选择增大的层集合。

在一个方面,对层集合的请求可包括对从多向视频的清单文件中所指定的位置传输经编码数据片段的请求。例如,可在多个层处对多向视频的图块进行预编码,并且可在清单文件中描述层和图块,例如如图4和图18所示。接收或渲染设备可通过向清单中列出的位置请求片段来请求层集合。

图块的编码和解码

图16是根据本公开的一个方面的编码系统1600的功能框图。系统1600可包括图像源1610、图像处理系统1620、视频编码器1630、视频解码器1640、参考画面存储库1650和预测器1660。图像源1610可生成作为多向图像的图像数据,该图像数据包含在多个方向上围绕参考点延伸的视场的图像数据。图像处理系统1620可执行图像处理操作以调节图像用于编码。在一个方面,图像处理系统1620可生成不同版本的源数据,以便于将源数据编码成多层编码数据。例如,图像处理系统1620可生成从多个相机聚合的源视频的多个不同投影。在另一示例中,图像处理系统1620可为具有较高空间分辨率的高层和具有较低空间分辨率的较低层生成源视频的分辨率。视频编码器1630通常可通过利用图像数据中的空间和/或时间冗余来生成其输入图像数据的多层编码表示。视频编码器1630可输出输入数据的编码表示,该编码表示在传输和/或存储时消耗的带宽小于原始源视频的带宽。视频编码器1630可在对应于源图像数据的时间部分的离散时间组块中输出数据,并且在一些方面,可独立于其他时间组块对单独时间组块编码的数据进行解码。视频编码器1630还可在离散层中输出数据,并且在一些方面,可独立于其他层传输单独的层。

视频解码器1640可反转由视频编码器1630执行的编码操作,以从经编码的视频数据获得重建画面。通常,视频编码器1630所应用的编码过程是有损过程,这导致重建画面在与原始画面比较时具有各种差异。视频解码器1640可重建被指定为“参考画面”的选定编码画面的画面,并将经解码的参考画面存储在参考画面存储库1650中。在不存在传输误差的情况下,经解码的参考画面可复制解码器(图16中未示出)所获得的经解码的参考画面。

预测器1660可在编码新输入画面时为其选择预测参考。对于被编码的输入画面的每个部分(为了方便起见称为“像素块”),预测器1660可选择编码模式并标识参考画面中可充当被编码的像素块的预测参考搜索的部分。编码模式可为帧内编码模式,在这种情况下,可从被编码画面的先前编码(和解码)部分绘制预测基准。另选地,编码模式可以是帧间编码模式,在这种情况下,可从一个或多个先前编码和解码的画面绘制预测参考。在分层编码的一个方面,预测参考可以是先前从另一层解码的像素块,通常是比当前正在编码的层低的较低层。在编码多向视频的两种不同投影格式的两个层的情况下,可将诸如图像翘曲函数的函数应用于第一层处的一种投影格式的参考图像,以预测第二层处的不同投影格式的像素块。

在分层编码系统的另一方面,差分编码增强层可以用受限预测参考来编码,以使得能够寻找或层/层切换到编码增强层块的中间。在第一方面,预测器1660可将增强层中每个帧的预测参考限制为基底层或其他较低层的帧。当在不参考增强层的其他帧的情况下预测增强层的每个帧时,解码器可以有效地在任何帧处切换到增强层,因为先前的增强层帧将不再需要作为预测参考进行参考。在第二方面,预测器1660可要求仅从基底层或其他较低层预测组块内的每第n个帧(诸如每隔一个其他帧),以使得能够搜索编码数据组块内的每第n个帧。

当合适的预测参考被标识时,预测器1660可向视频编码器1630提供预测数据。视频编码器1630可针对由预测器1660提供的预测数据而对输入视频数据进行差异编码。通常,预测操作和差分编码在逐个像素块的基础上操作。预测残差(表示输入像素块和预测像素块之间的像素方面差异)可经受进一步的编码操作以进一步减小带宽。

如所指出的,由视频编码器1630输出的编码视频数据在传输和/或存储时应比输入数据消耗更小的带宽。编码系统1600可将经编码的视频数据输出到可跨通信网络130(图1)传输经编码的视频数据的输出设备1670,诸如收发器。另选地,编码系统1600可将编码数据输出到存储设备(未示出)诸如电子存储介质、磁存储介质和/或光学存储介质。

收发器1670还可从解码终端(图17)接收视口信息并将视口信息提供给控制器1680。控制器1680可控制图像处理器1620、总体上的视频编码过程,包括视频编码器1630和收发器1670。由收发器1670接收的视口信息可包括视口位置和/或优选的投影格式。在一个方面,控制器1680可基于视口信息来控制收发器1670以发送用于某些空间图块的某些编码层,同时发送用于其他图块的不同编码层。在另一方面,控制器1680可控制某些层的某些帧中的可允许的预测参考。在又一方面,控制器1680可基于所接收的视口信息来控制由图像处理器1630产生的投影格式或缩放层。

图17是根据本公开的一个方面的解码系统1700的功能框图。解码系统1700可包括收发器1710、缓冲器1715、视频解码器1720、图像处理器1730、视频接收器1740、参考画面存储库1750、预测器1760和控制器1770。收发器1710可从信道接收经编码的视频数据,并且在将其发送到视频解码器1720之前将其路由到缓冲器1715。经编码的视频数据可被组织成时间块和空间图块,并且可包括用于不同图块的不同编码层。缓冲器1715中缓冲的视频数据可跨多个组块的视频时间。视频解码器1720可参考由预测器1760提供的预测数据对经编码的视频数据进行解码。视频解码器1720可在由生成经编码的视频的编码系统的源图像处理器(诸如图16的图像处理器1620)确定的表示中输出经解码的视频数据。图像处理器1730可根据当前在解码系统处有效的视口取向从解码视频中提取视频数据。图像处理器1730可将所提取的视口数据输出到视频接收设备1740。控制器1770可控制图像处理器1730,包括视频解码器1720的视频解码处理,和收发器1710。

如图所示,视频接收器1740可消费由解码系统1700生成的解码视频。视频接收器1740可由例如渲染解码视频的显示设备来实现。在其他应用中,视频接收器1740可由将经解码的视频集成到其内容中的计算机应用(例如,游戏应用、虚拟现实应用和/或视频编辑应用)来实现。在一些应用中,视频接收器可为其应用处理解码视频的整个多向视场,但是在其他应用中,视频接收器1740可处理从解码视频中选择的内容子集。例如,当在平板显示器上渲染经解码的视频时,仅显示多向视频的选定子集可能就足够了。在另一个应用中,经解码的视频可以多向格式渲染,例如在天文馆中。

收发器1710还可将由控制器1770提供的视口信息(诸如视口位置和/或优选投影格式)发送到经编码视频源,诸如图16的终端1600。当视口位置改变时,控制器1770可向收发器1710提供新的视口信息以向经编码视频源发送。响应于新的视口信息,经编码视频的某些先前已接收但尚未解码的图块的丢失层可被收发器1710接收,并被存储在缓冲器1715中。然后,解码器1720可使用(先前丢失的)这些替换层而不是先前已基于旧视口位置接收的层来对这些图块进行解码。

控制器1770可基于视口位置来确定视口信息。在一个示例中,视口信息可仅包括视口位置,并且经编码视频源然后可使用该位置来标识哪些经编码层提供给解码系统1700用于特定空间图块。在另一个示例中,从解码系统发送的视口信息可包括对特定图块的特定层的特定请求,从而从而将大部分视口位置映射留在了解码系统中。在又一示例中,视口信息可包括基于视口位置对特定投影格式的请求。

本公开的原理可用于具有多种多向图像的投影格式的应用。在一个方面,使用合适的投影转换函数可以在图14-图16的各种投影格式之间转换。

图18是适合与本发明一起使用的示例视频分发系统1800的简化框图,包括在多向视频被预编码并存储在服务器上时。系统1800可包括经由通信网络1830连接的分发服务器系统1810和客户端设备1820。分发系统1800可响应于客户端请求而将经编码的多向视频数据提供给客户端1820。客户端1820可对经编码的视频数据进行解码并将其渲染在显示器上。

分发服务器1810可包括存储系统1840,在其上以各种层存储预编码的多向视频,以供客户端设备1820下载。分发服务器1810可存储视频内容项的几个编码表示,图示为层1、2和3,其已经用不同的编码参数编码。视频内容项包括清单文件,该清单文件包含指向每个层的已编码视频数据块的指针。

在图18的示例中,层1和层2的平均比特率不同,与层1提供的相比,层2使得能够以更高的平均比特率对视频内容项进行更高质量的重建。比特率和质量的差异可由编码参数(例如,编码复杂性、帧速率、帧尺寸等)的差异引起。层3可以是层1的增强层,当与层1结合解码时,其可以改善层1表示由其自身解码时的质量。每个视频层1-3可被解析成多个块ch1.1-ch1.n、ch2.1-ch2.n和ch3.1-ch3.n.。清单文件1850可包括指向每个层的编码视频数据的每个组块的指针。不同组块可从存储装置检索并且通过在网络1830中定义的信道递送到客户端1820。信道流1840表示来自多个层的传输组块的聚合。此外,如上文结合图4所述,多向视频可在空间上分段成图块。图18示出了可用于一个图块的各个层的组块。清单1850可另外包括其他图块(在图18中未示出),诸如通过提供元数据和指向多个层的指针,该多个层包括用于各个层中的每个层的存储位置编码数据组块。

在一些方面,可以不为所有组块编码所有层。在图18的示例中,针对每个组块对每个层进行编码。然而,在一些方面,可以为一个或多个组块仅编码层的子集。例如,对于具有低运动和低空间变化的视频,可能的是,可在最低层的比特率内以非常高的质量对整个组块(或组块的图块)进行编码。在另一示例中,可以不针对组块的每个图块对中间层进行编码。

图18的示例示出了用于一个图块的三个编码视频层1、2和3,每个层被编码成具有不同编码参数的n个组块(1至n)。虽然不是必需的,但是该示例将每个层的块示出为在时间上对准,使得块边界限定视频内容的相应时间段(t1,t2,t3,…,tn)。块边界可提供用于层之间的流切换的优选点。例如,可以通过在切换点重置运动预测编码状态来促进流切换。

在一个方面,多向图像数据可以包括深度图和/或遮挡信息。深度图和/或遮挡信息可被包括作为单独的信道,并且清单1850可包括对用于深度图和/或遮挡信息的这些单独的信道的引用。

多向视频格式

图19示出了根据一个方面的示例性多向图像投影格式。多向图像1930可由沿着轴线枢转的相机1910生成。在操作期间,相机1910可在其沿预定角距离1920(优选地,完整360°)枢转时捕获图像内容,并可将所捕获的图像内容合并到360°图像中。捕获操作可产生表示已经沿着切片1922划分的多向视场的多向图像1930,该切片将圆柱形视场划分为二维数据阵列。在多向图像1930中,图像1930的任一边缘1932、1934上的像素表示相邻图像内容,即使它们出现在多向图像1930的不同边缘上。

图20示出了根据另一方面的示例性多向图像投影格式。在图20的方面,相机2010可具有图像传感器2012-2016,该图像传感器从公共参考点捕获不同视场中的图像数据。相机2010可输出多向图像2030,其中图像内容根据立方体地图捕获操作2020布置,其中传感器2012-2016捕获关于相机2010的不同视场2021-2026(通常为六个)中的图像数据。可根据立方体地图布局2030将不同视场2021-2026的图像数据拼接在一起。在图20示出的示例中,可根据相应视图2021-2026之间图像内容的“接缝”在多向画面2030内捕获、拼接和布置与左视图2021、前视图2022、右视图2023、后视图2024、顶视图2025和底视图2026对应的六个子图像。因此,如图20所示,与来自左图像2031、右图像2033、顶图像2035和底图像2036中每一者的像素相邻的来自前图像2032的像素表示分别与相邻子图像的内容相邻的图像内容。类似地,彼此相邻的来自右图像2033和后图像2034的像素表示相邻图像内容。此外,来自后图像2034的终端边缘2038的内容与来自左图像的相对终端边缘2039的内容相邻。图像2030还可具有不属于任何图像的区域2037.1-2037.4。图20中所示的表示常被称为“立方体地图”图像。

立方体地图图像的编码可以若干方式发生。在一个编码应用中,立方体地图图像2030可被直接编码,其包括不具有图像内容的空区域2037.1-2037.4的编码。图14的编码技术可应用于立方体地图图像2030。

在其他编码应用中,立方体地图图像2030可在编码之前被重新打包以消除空区域2037.1-2037.4,如图像2040所示。图14中所述的技术也可应用于经打包的图像帧2040。在解码之后,经解码的图像数据可在显示之前被解包。

图21示出了另一示例性多向投影图像格式2130。图21的帧格式可由称为全景相机的另一类型的全向相机2100生成。全景相机通常由一对鱼眼透镜2112、2114和相关联的成像设备(未示出)组成,每个成像设备被布置成在半球形视场中捕获图像数据。可将从半球形视场捕获的图像拼接在一起以表示完整的360°视场中的图像数据。例如,图21示出了包含在接缝2135处接合的来自相机的半球形视图2122、2124的图像内容2131、2132的多向图像2130。上文所述的技术还可应用于此类格式2130的多向图像数据。

在一个方面,相机,诸如图19至图21中的相机1910、2010和2110,除了可见光之外,还可捕获深度或遮挡信息。在一些情况下,深度和遮挡信息可以多投影格式(诸如图像,诸如1930、2030、2040和2130)存储为数据的单独数据信道。在其他情况下,深度和遮挡信息可作为单独的数据信道被包括在清单中,诸如图4的清单1050。

前述讨论已在视频编码器和解码器的上下文中描述了本公开各个方面的操作。这些部件常常作为电子设备来提供。视频解码器和/或控制器可以被嵌入在集成电路中,诸如专用集成电路、现场可编程门阵列和/或数字信号处理器。另选地,它们可以被嵌入到在相机设备、个人计算机、笔记本电脑、平板电脑、智能电话或计算机服务器上执行的计算机程序中。此类计算机程序包括处理器指令,并且通常被存储在诸如基于电子,基于磁性和/或基于光学的存储设备之类的物理存储介质中,在此它们被处理器读取并被执行。解码器常常被封装在消费电子设备中,诸如智能电话、平板电脑、游戏系统、dvd播放器、便携式媒体播放器等;并且,它们也可以被封装在消费软件应用程序中,诸如视频游戏、媒体播放器、媒体编辑器等。并且,当然,这些部件可以被提供作为根据需要在专用硬件部件和经编程的通用处理器上分配功能的混合系统。

众所周知,使用个人可识别信息诸如关于视频观察者的数据应遵循公认为满足或超过维护用户隐私的行业或政府要求的隐私政策和做法。具体地,应管理和处理个人可识别信息数据,以使无意或未经授权的访问或使用的风险最小化,并应当向用户明确说明授权使用的性质。

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