欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 多视频流在播放端的无缝切换方法与系统独创技术34988字

多视频流在播放端的无缝切换方法与系统

2020-11-24 17:48:06

多视频流在播放端的无缝切换方法与系统

  技术领域

  本公开涉及高清流传媒传输领域,更具体地,涉及基于用户互动的高清流传媒传输领域。

  背景技术

  在传统的视频流式传输或广播场景中,存在多个视频源,并且对于任何特定时间,观众只能观看它们中的一个。在传统的广播中,大多数视频流通过广播站,在该广播站中,人(例如,导演)选择它们中的一个来广播。

  最近的方法为每个观众提供了选择要观看的视频流的各种方式。然而,现有的方法或者不能在切换(switch)期间确保时间同步,或者为了提供同步,要求在客户端侧的显著更多的网络带宽和计算资源,或者要求昂贵的服务器计算成本。

  因此,需要为观众提供系统和方法来在保持帧完全同步的同时在多个流当中进行选择,同时仅使用少量额外的网络带宽和计算成本,并且在服务器侧不使用额外的计算。

  发明内容

  本文公开的系统和方法涉及多流编码和解码/回放。在一些实施例中,所描述的系统和方法可以在多个高分辨率视频流之间提供无缝的观众控制的切换。

  在一个方面,提供了一种系统。该系统包括多流编码器,该多流编码器包括被配置为执行操作的编码器控制器。操作包括接收多个视频源以及对视频源进行编码,以便形成多个编码流。多个编码流中的每个编码流包括相应的主视频源和至少一个辅视频源。该系统还包括具有被配置为执行操作的播放器控制器的多流播放器。操作包括接收多个编码流,接收指示期望视频源的视频源选择命令,以及基于视频源选择命令来确定包括期望视频源的高分辨率版本的期望编码流。

  在另一方面,提供了一种方法。该方法包括在多流编码器处接收多个视频源。该方法还包括利用多流编码器对视频源进行编码,以便形成多个编码流。多个编码流中的每个编码流包括相应的主视频源和至少一个辅视频源。该方法还包括在多流播放器处接收多个编码流。该方法附加地包括在多流播放器处接收指示期望视频源的视频源选择命令。该方法还包括由多流播放器基于视频源选择命令来确定包括期望视频源的高分辨率版本的期望编码流。

  通过适当时参考附图来阅读以下详细描述,这些以及其他实施例、方面、优点和替换方案对于本领域普通技术人员来说将变得显而易见。此外,应当理解,本文提供的本发明内容和其他描述及附图仅旨在通过示例的方式示出实施例,因此,许多变动是可能的。例如,结构元件和过程步骤可以被重新布置、组合、分布、消除或以其他方式改变,同时保持在所要求保护的实施例的范围内。

  附图说明

  图1示出了根据示例实施例的系统。

  图2示出了根据示例实施例的图1的系统。

  图3示出了根据示例实施例的图1的系统的一部分。

  图4A示出了根据示例实施例的在编码流中使用颜色编码来编码渲染策略。

  图4B示出了根据示例实施例的涉及图1的系统的用户交互场景。

  图5A示出了根据示例实施例的高分辨率视频帧。

  图5B示出了根据示例实施例的压缩视频帧。

  图5C示出了根据示例实施例的压缩视频帧。

  图6示出了根据示例实施例的为2D视频创建视口的线性几何映射。

  图7示出了根据示例实施例的函数映射压缩和在渲染时恢复视口。

  图8示出了根据示例实施例的涉及在编码流中选择和布置视口的场景。

  图9示出了根据示例实施例的涉及子弹时间(bullet time)实时流管道和执行观众剪切的场景。

  图10示出了根据示例实施例的方法。

  具体实施方式

  本文描述了示例方法、设备和系统。应当理解,词语“示例”和“示例性”在本文中用于表示“用作示例、实例或说明”。在本文中被描述作为“示例”或“示例性”的任何实施例或特征不一定被解释为优选于或优于其他实施例或特征。在不脱离本文所呈现的主题的范围的情况下,可以利用其他实施例,并且可以进行其他改变。

  因此,本文描述的示例实施例并不表示是限制性的。如在本文中一般描述并在附图中示出的,本公开的各方面可以以各种不同的配置来布置、替换、组合、分离和设计,所有这些都在本文中是预期的。

  此外,除非上下文另有说明,否则每个附图中示出的特征可以彼此结合使用。因此,附图通常应被视为一个或多个总体实施例的组成方面,应当理解,并非所有示出的特征对于每个实施例都是必要的。

  I. 概述

  在传统的视频流或广播场景中,存在多个视频源,并且对于任何特定时间,观众通常能够观看视频源中的一个。在传统的广播中,大多数视频流通过广播站,在该广播站中,人(例如,导演)选择要广播哪个视频流。这通常被称为“导演剪切(Direct Cut)”。

  本文描述的实施例涉及允许观众选择要观看的视频流,称为“观众剪切(ViewerCut)”。观众剪切允许每个观众有对事件的不同视图,并根据需要改变视频流。在这样的场景下,描述了用于视频捕获、转码、流式传输和渲染的系统和方法。这样的系统和方法可以利用被设计成改善和/或优化切换平滑度并减少或最小化资源要求的算法。针对各种使用案例提出了具体实施例,包括超高分辨率缩放和“子弹时间”流式传输。

  在其他方面中,当前描述的观众剪切解决方案提供了:1)当在流之间切换时准确的帧同步;2)很少的服务器侧计算,即使在服务大量观众时也如此;以及3)客户端侧的最小带宽和计算成本。

  在一些实施例中,本系统和方法包括以两个连续且紧密联接的步骤在流之间切换:1)响应于用户输入或系统改变,从第一流切换到低分辨率第二流;以及2)当数据准备好时,从低分辨率第二流切换到高分辨率第二流。描述了具体的算法和硬件,以减少步骤1和步骤2之间的滞后,使得观众不直接受到分辨率改变的影响。

  II. 示例系统

  在一些实施例中,示例系统可以包括两个主要元素:1)多流编码器;以及2)多流播放器,这两者都被配置为响应于用户输入或系统改变而提供视频流之间的无缝切换。

  图1示出了根据示例实施例的系统100。系统100包括多流编码器110,该多流编码器110包括编码器控制器112。编码器控制器112可以被配置为执行操作。操作包括接收多个视频源10a、10b、10c。

  编码器控制器112的操作还包括对视频源10a、10b、10c进行编码,以便形成多个编码流120a、120b、120c。多个编码流120a、120b、120c中的每个编码流包括相应的主视频源(例如,高分辨率源A 122a)和至少一个辅视频源(例如,低分辨率源B 122b和低分辨率源C122c)。

  系统100还包括多流播放器130。多流播放器130包括被配置为执行操作的播放器控制器132。操作包括接收多个编码流120a、120b和120c,以及接收指示期望视频源的视频源选择命令136。

  播放器控制器132的操作还包括基于视频源选择命令来确定包括期望视频源的高分辨率版本的期望编码流。

  在一些实施例中,每个编码流可以包括相应的主视频源(例如,高分辨率源A122a)的高分辨率版本和至少一个辅视频源(例如,低分辨率源B 122b和低分辨率源C122c)的低分辨率版本。在这样的场景下,主视频源的高分辨率版本和辅视频源的低分辨率版本是从不同视频源编码的。

  在各种示例中,多流编码器110可以被配置为通过互联网30向多流播放器130发送多个相应的编码流120a、120b和120c。

  在一些示例中,多个相应的编码流可以等于多个相应的视频源。在这样的场景下,对于n个视频源中的每一个,多流编码器110被配置为编码n个编码流。每个编码流包括单个主视频源和n-1个辅视频源。每个相应的编码流包含来自多个视频源当中的不同主视频源。

  在示例实施例中,每个编码流可以包括单个主视频源和一个或多个辅视频源,该一个或多个辅视频源是基于以下中的至少一个来选择的:提供相应视频源的相机的位置、提供相应视频源的相机的取向或历史用户行为数据。

  在一些实施例中,与原始视频源相比,一个或多个辅视频源的低分辨率版本的至少一部分被扭曲(warp)、压缩或以其他方式变更。

  在一些示例中,对视频源进行编码以便形成多个编码流的操作可以包括将视频元数据嵌入到多个编码流的至少一部分中。在这样的场景下,嵌入的视频元数据可以包括指示主视频源和至少一个辅视频源的信息。此外,在这样的场景下,确定期望编码流是基于嵌入的视频元数据的。嵌入的视频元数据可以包括关于视频格式的信息或者关于编码视频流和/或视频源的其他信息。

  在各种场景下,播放器控制器132还可以被配置为执行诸如将期望视频源的高分辨率版本(例如,期望视频源的版本134)发送到显示器140的操作。显示器140可以向观众20提供期望视频源142。

  附加地或可替代地,播放器控制器132还可以被配置为执行诸如将当前播放的编码流中的期望视频源的低分辨率版本发送到显示器并缓冲期望编码流的操作。

  在这样的场景下,在期望编码流的至少一部分被缓冲之后,操作可以包括切换到期望编码流,以便提供期望视频源的高分辨率版本。

  在各种示例中,系统100可以附加地包括用户界面150。在这样的场景下,接收视频源选择命令136可以包括从用户界面150接收的用户输入。这样,用户输入可以是以下中的至少一种:滑动交互、轻击交互、双击交互、捏拉缩放交互、手势命令、语音命令、面部识别交互或眼睛跟踪交互。

  在一些实施例中,系统100可以从被配置为从不同视点对共同对象进行成像的多个相机接收视频源信息。在这样的场景下,视频源选择命令136可以包括滑动交互。这样,确定期望编码流可以包括基于滑动交互在主视频源、至少一个辅视频源或不同的编码流中的至少一个之间切换。

  图2示出了根据示例实施例的涉及图1的系统100的场景200。如图2中所示,场景200包括来自3个相机的视频源信息。不同的视频源被编码成3个编码流。每个流包括所有3个相机流的版本,但分辨率不同。每个观众在给定时间连接到一个特定的编码流。作为示例,观众可能正在观看初始编码流中的第一视频源的高分辨率版本。当观众想要从第一视频源切换到第二视频源时,播放器控制器首先切换到渲染包括在初始编码流中的第二视频源的低分辨率版本。附加地,播放器控制器可以连接到并缓冲具有第二视频源的高分辨率版本的新的编码流。一旦发生了足够的缓冲,播放器控制器可以切换到提供新的编码流,并显示第二视频源材料的高分辨率版本。

  在一个实施例中,给定k个视频源S1、S2、…、Sk,所描述的编码器控制器112可以被配置为将视频源转换成k个编码器流T1、T2、…、Tk。Ti包括Si的高分辨率版本和所有其他流的低分辨率版本。

  在另一实施例中,Ti可以包括Si的高分辨率版本和一些(但不一定是所有)其他流的低分辨率版本,其中流的小子集是通过用户可能从视图i切换的可能性来选择的。在一个示例中,可能性可以被定义为相机位置之间的物理距离或视角相似性。在另一示例中,可能性可以根据历史数据统计(例如,“先前的观众已从视图i切换到视图j的频率”)或者根据使用统计回归方法的推断数据预测来定义。在另一示例中,低分辨率版本的可变分辨率可以根据用户切换的这种可能性来确定。换句话说,在一些示例中,编码流不需要包括一些视频流,或者只需要包括用户不太可能切换到的流的相对低分辨率的版本。

  在另一实施例中,Ti可以包括来自原始视频源的经几何调整(例如,裁剪或移位)的或经函数扭曲的版本,而不是简单的尺寸或分辨率缩放。

  在另一实施例中,给定k个视频源S1、S2、…、Sk,所描述的编码器控制器112可以被配置为将视频源转换成k+1个编码流T0、T1、T2、…、Tk,其中Ti = Si,而T0是所有Si的低分辨率版本的组合。在一些实施例中,T0的一些或所有部分可以被扭曲或以其他方式调整,使得在观看内容的重要区域中保持高分辨率,而对于观看内容的不太重要的区域中利用低分辨率版本。

  图3示出了根据示例实施例的涉及图1的系统100的多流播放器130的场景300。

  因为每个编码流Ti可以包含多个视频流的版本,所以视频播放器(例如,多流播放器130)可以不被配置为直接渲染它们。此外,播放器逻辑可以在不同平台(例如,HTML5、iOS、安卓等)上有所不同。为了恰当地操作,多流播放器130应当被配置为处理1)何时在编码流之间切换;2)帧缓冲;以及3)如何正确地渲染每一帧。请注意,用户可以在任何时间在视频源之间(并且可能在编码流之间)切换,使得播放器的输入帧与前一帧相比可以具有不同的结构和/或格式。在这样的场景下,多流播放器130需要知道每一帧的结构,并恰当地渲染该帧。

  在一个实施例中,来自各个视频源的多个原始视频源帧被简单地缩放(例如,降低像素分辨率)并打包到编码帧的各个区域中。对于每个帧,多流播放器130可以从对应于期望视频源的输入帧中选择正确的区域,缩放正确的区域,并对其进行渲染以用于显示。在编码帧中的帧被变换(例如,扭曲)的情况下,可以使用各种图像处理技术来解扭曲(unwarp)或以其他方式调整编码帧。作为示例,可以利用OpenGL渲染方法或图像处理方法来解扭曲和渲染编码帧的期望部分。

  为了避免对从多个流源接收的编码帧应用不正确的渲染方法(其可能导致闪烁、失真或其他伪像),多流播放器130可以被配置为具有在渲染之前知道每一帧的结构的鲁棒机制。

  图4A示出了根据示例实施例的在编码流400中使用颜色编码来编码渲染策略。

  如图4A中所示,可以采用渲染管道的至少一部分。在这样的场景下,关于每个视频帧的结构信息可以被编码并作为视频元数据包含在每一帧中。在这样的场景下,多流播放器130可以被配置为从视频元数据中提取结构信息,并利用它来正确地渲染帧。由于这些元数据嵌入在每一帧中,这种技术保证了渲染将是正确的。这种方法在元数据无法经由单独的通道(例如,数据侧通道)准确传递的一些平台中至关重要。

  对结构视频元数据进行编码的几种方式是预期和可能的。在一个实施例中,可以在每个编码视频帧中插入额外的像素。例如,沿着编码视频帧的一个或多个边的像素带可以用于对视频帧元数据进行编码。对元数据进行编码的图像水印也是可能和预期的。基于视频元数据,渲染技术可以在动态的、逐帧的基础上应用于每个编码视频帧。

  渲染策略=函数(色带[]) 或 渲染策略=函数(水印)

  在另一实施例中,当渲染策略的数量有限时,可以在回放之前或回放期间通信传达关于预定渲染策略的信息。这样,多流编码器110只需要在帧中编码渲染策略标识符。例如,我们可以将索引编码为帧的宽度和高度:

  渲染策略索引=函数(视频帧的宽度,视频帧的高度)

  该特定方法的益处是,在大多数渲染系统中,视频宽度和视频高度都是容易获取的参数。因此,以这种方式对元数据进行编码将不需要额外的计算资源。此外,这种方法将大大加速获得和解码视频渲染元数据的过程。

  在支持多个帧缓冲队列的系统中,可以利用多个缓冲器来获得准确的渲染。在这样的场景下,每个帧缓冲队列可以与特定的渲染策略相关联。当所有队列都用完时,播放器控制器132可以清空它们中的一个并改变其相关联的渲染策略。

  当从一个队列切换到另一个队列时,播放器控制器132被配置为对帧时间戳进行同步。例如,在完成对来自队列3的第100帧的渲染之后,当切换到队列4时,播放器控制器132将渲染第101帧。在这样的场景下,视频源之间的切换可以是无缝的,并且观众将不会看到时间抖动。

  图4B示出了根据示例实施例的涉及图1的系统100的用户交互场景420。当用户观看观众剪切流时,在用户界面(例如,用户界面150)上有一些额外的控制,供用户选择他们想要观看的流。

  在一个实施例中,用户可以滑动用户界面150的触摸屏。在这样的场景下,播放器控制器可以确定滑动距离和滑动方向,并且基于滑动距离和/或滑动方向来确定要被渲染在屏幕上的流。请注意,在滑动期间改变视图是可能的,因为每个流都具有一些或所有其他视图的低分辨率版本。同时,滑动动作也将触发多流播放器的流源改变。该流源改变可能发生在滑动期间或滑动结束后。在流源改变之后,多流播放器130将从新的流源获得新的视频帧,并相应地为该视图渲染高分辨率。请注意,由于所有流源已经由多流编码器110生成,所以不需要多流播放器130和多流编码器110之间的双向信令。

  在另一实施例中,类似于滑动交互,用户可以用鼠标拖动屏幕来触发视图改变。在另一实施例中,系统100的取向和/或位置可以基于来自陀螺仪和/或位置传感器的信息来确定。在这样的场景下,流源更新可以基于关于系统100的这种取向和/或位置信息。

  在又一实施例中,所有视图当前都可以显示在用户的设备(例如,显示器140)上。用户可以通过点击小(例如,缩略图)视图来选择观看什么,并且多流播放器130可以基于用户输入来执行渲染改变和流源更新。

  在另一实施例中,多流播放器130可以获知每个特定观众的偏好,并在给定特定满足条件的情况下自动为他们切换流源。换句话说,各种推荐器或预测系统(潜在地基于人工智能和/或机器学习算法)可以用来自动切换流源,以代替或补充用户交互或输入。

  在一些实施例中,形成多个编码流的操作可以包括基于共同高分辨率视频源的相应部分形成编码流。例如,主视频源和辅视频源可以基于同一高分辨率视频源的不同区域形成。在一些示例中,如本文所描述的,单个8K源可以用于形成多个视频流。

  图5A、图5B和图5C涉及本公开范围内的可缩放高分辨率视频流式传输过程。本文描述的观众剪切系统和方法也可以用于其他目的,包括提供高分辨率视频渲染应用。作为示例,用传统的编码器/回放系统播放8K视频可能存在多个问题:(1)屏幕分辨率通常不足以高到显示8K视频;以及(2)实时解码8K视频在传统设备上是不可行的。

  然而,基于当前描述的实施例,8K(或更高分辨率)视频可以是可行的,并且用户能够在8K视频内放大和平移。示例过程可以如下:

  1. 高分辨率(例如,8K)视频被转码/编码到许多视口中,每个视口将是独立的流。图5A示出了根据示例实施例的高分辨率视频帧500。

  2. 每个视口都可以具有其中与原始高分辨率视频的像素比为1:1的相应的高分辨率区域。可以利用各种压缩或扭曲算法来压缩和/或扭曲各个视口内的剩余区域。作为示例,扭曲算法可以包括基于对数的函数。然而,其他函数或算法也是可能和预期的。请注意,除了1:1像素比区域,其余的转码流将包括有损(例如,压缩)图像变换。在示例实施例中,几何变换可以包括被设计成提供平滑视觉外观的函数。在这样的场景下,函数的一阶导数对于所有或几乎所有位置都是连续的。附加地或可替代地,随着给定图像坐标远离中心,函数的一阶导数可以单调递增。

  3. 在渲染时,视频的期望区域可以基于渲染参数提取,该渲染参数可以指示对应的编码方案。在这样的场景下,播放器控制器可以基于渲染参数对视频帧的期望部分进行解码。

  当用户放大视频帧时,与用户的当前视图相对应的视口以1:1的像素比提供。通过这种方式,用户能够看到非常高分辨率的视频,即使他们放大多个等级。只有当观众通过平移将视野切换到帧的相邻区域时,才将显示视口的低分辨率部分。因为有损压缩用于视频帧的相邻区域,所以对于用户的计算/显示设备解码来说,发送的流的分辨率被认为小得多。

  图5B示出了根据示例实施例的压缩视频帧520。图5C示出了根据示例实施例的压缩视频帧530。

  在一些实施例中,可以利用具有以下属性的有损压缩方法:

  1. 高分辨率区域中的像素不被压缩。

  2. 在高分辨率区域之外,给定像素离高分辨率区域越近,压缩比越低。

  3. 高分辨率区域边缘处的压缩比应当接近1:1,以避免分辨率的突然变化。

  图6示出了根据示例实施例的为2D视频创建视口的线性几何映射600。在一些实施例中,几何映射可以执行如下。区域A1保持在1:1的像素比(例如,与原始视频相同的分辨率)。右侧压缩视频中的黑色区域在视频中实际上是黑色的。除了高分辨率区域A1,图像的其他区域可以使用简单的线性变换被映射到新的区域。例如,对于区域A3 Δabcd,它可以被线性映射到Δa’b’c’d’。请注意,映射的坐标被仔细选择为满足上述要求2。

  图7示出了根据示例实施例的函数映射压缩700和在渲染时恢复视口。在这样的实施例中,可以如下应用函数映射方法:

  1.从原始高分辨率视频基于坐标系选择视口中心(u0, v0)。

  2. 选择原始视频上像素比为1:1、宽度为2*w0并且高度为2*h0的区域。

  3. 对于原始高分辨率视频(u, v)中的所有点,按照以下方式基于(u0, v0)和(w0, h0)计算归一化点:

  a. u' = (u – u0) / w0

  b. v' = (v – v0) / h0

  4. 然后将所有(u, v)映射到新位置(s, t)

  a.如果abs(u’) > 1: s = (ln(abs(u’))/k + 1) * sign(u’)

  b.如果abs(u’) <= 1: s = u’

  c.类似的也应用于v’。

  d.请注意,k是控制压缩比的参数。

  5. 在渲染时,上述过程可以被反转,以检索渲染相对应像素的正确位置。

  以上选择对数函数是工程选择。它具有以下益处:

  1. 对数函数在x = 1处的一阶导数为1。这确保高分辨率区域和压缩区域具有平滑过渡。

  2. 压缩计算(对数函数)和恢复渲染(指数函数)易于可逆。

  3. 对数函数和指数函数在一般化硬件上计算成本低。

  4. x和y坐标上的压缩是独立的。这提供了实现上的便利和性能优势。

  在另一实施例中,可以定义圆形高分辨率区域。在这样的场景下,圆形外部像素的压缩比可以基于距高分辨率区域中心的给定像素距离。压缩比可以是其一阶导数单调递减的多项式函数。

  图8示出了根据示例实施例的涉及在编码流中选择和布置视口的场景800。

  在一个实施例中,所描述的系统和方法可以包括多等级视口组织技术。对于给定的高分辨率视频,源视频可以被压缩成n个副本,每个副本包括不同的分辨率值/比例。对于每个副本,可以进一步基于当前等级的分辨率对视频源进行编码,以便包括多个视口。当用户在以不同的缩放等级观看时,基于当前视口位置相应地向用户提供相对应等级的视口。这种方法有两个益处:

  1. 每个视口视频都有相似的宽度/高度。因此,每个视口视频都将需要相似的带宽用于流式传输。

  2. 所描述的多等级视口组织技术总是将可以显示的分辨率最大化。因此,如果需要的话,用户可以总是以其显示设备的最高分辨率观看内容。

  如图8中所示,在等级1中,视频源被简单地缩放到更小的尺寸。等级2包括缩放到中等尺寸,然后在等级2中对多个视口进行编码。对于等级n,在许多小视口当中提供了几个高分辨率。

  在另一实施例中,我们基于导演选择(例如,提供给多流编码器110的导演命令)生成视口。作为示例,视口数量、高分辨率区域尺寸和高分辨率中心位置都可以通过手动过程来确定。

  在一些实施例中,视口可以基于对给定视频源图像中的高度感兴趣区域进行分类的一些AI算法(例如,图像识别分类器)来生成。

  图9示出了根据示例实施例的涉及子弹时间实时流管道和观众剪切功能的场景900。通过结合观众剪切管道和可缩放流式传输技术,可以为在从不同位置和取向捕获单个对象(或目标位置)的图像的K个相机提供“子弹时间”多视图实时流式传输功能。

  在一个实施例中,子弹时间系统相机系统可以具有焦点(例如,共享或共同目标对象)。对于所提供的每个编码流,主视图(例如,焦点周围的区域)和来自其他相机的相邻视图使用先前描述的编码来扭曲。当用户观看多视图流时,可以利用使用先前介绍的渲染管道的解扭曲操作来提供平坦的视频视图。

  来自所描述的系统和方法的益处包括,由于在子弹时间多视图系统中焦点相对较小,因此侧视图可以被大大地压缩。这使得流式传输大量相机视图变得可行,即使在有限带宽的情况下也如此。

  在另一实施例中,由于子弹时间旋转中的视图不能任意地从一个跳到另一个(但是通常通过连续“围绕”目标对象的视角进行),所以可以执行对侧视图尺寸的智能布置。例如,靠近当前主视图的视图可以更大,而其他视图可以更小。此外,角度较远的视图可以完全被丢弃。

  III. 示例方法

  图10示出了根据示例实施例的方法1000。将会理解,方法1000可以包括比本文明确示出或以其他方式公开的步骤或块更少或更多的步骤或块。此外,方法1000的各个步骤或块可以以任何顺序执行,并且每个步骤或块可以被执行一次或多次。在一些实施例中,方法1000的一些或所有块或步骤可以由如关于图1所示和所述的系统100执行。

  块1002包括在多流编码器(例如,多流编码器110)处接收多个视频源(例如,视频源10a-10c)。

  块1004包括利用多流编码器对视频源进行编码,以便形成多个编码流(例如,编码流120a-120c)。多个编码流中的每个编码流包括相应的主视频源(例如,高分辨率源A122a)和至少一个辅视频源(例如,低分辨率源B 122b和低分辨率源C 122c)。

  块1006包括在多流播放器(例如,多流播放器130)处接收多个编码流。

  块1008包括在多流播放器处接收指示期望视频源的视频源选择命令(例如,视频源选择命令136)。

  块1010包括由多流播放器基于视频源选择命令来确定包括期望视频源的高分辨率版本的期望编码流。

  在一些实施例中,每个编码流可以包括相应的主视频源的高分辨率版本和至少一个辅视频源的低分辨率版本。在这样的场景下,主视频源的高分辨率版本和辅视频源的低分辨率版本是从不同视频源编码的。

  在各种实施例中,方法1000还可以包括由多流编码器通过互联网(例如,互联网30)向多流播放器发送多个相应的编码流。

  在示例实施例中,多个相应的编码流可以等于多个相应的视频源。在这样的场景下,对于n个视频源中的每一个,方法1000可以包括由多流编码器编码n个编码流。在这样的场景下,每个编码流可以包括单个主视频源和n-1个辅视频源。在这样的示例中,每个相应的编码流可以包括来自多个视频源当中的不同主视频源。

  在一些实施例中,每个编码流可以包括单个主视频源和一个或多个辅视频源,该一个或多个辅视频源是基于以下中的至少一个来选择的:提供相应视频源的相机的位置、提供相应视频源的相机的取向或历史用户行为数据。

  在各种实施例中,方法1000还可以包括由多流编码器对至少一个辅视频源的低分辨率版本的至少一部分进行扭曲。

  在一些场景下,对视频源进行编码以便形成多个编码流可以包括将视频元数据嵌入到多个编码流的至少一部分中。嵌入的视频元数据包括指示主视频源和至少一个辅视频源的信息。在这样的示例中,由多流播放器确定期望编码流可以基于嵌入的视频元数据。在一些实施例中,元数据可以包括关于多个编码流中的每个编码流的图像格式或布局的信息。在这样的场景下,元数据可以提供关于正确渲染每个帧所需的流格式或布局的信息。每个视频帧可以包括渲染信息作为元数据的一部分。渲染信息可以包括诸如视频格式、压缩、视频编码类型等信息,以确保多流播放器正确渲染。

  在一些实施例中,方法1000可以包括由多流播放器将期望视频源的高分辨率版本发送到显示器。

  附加地或可替代地,方法1000可以包括由多流播放器将当前播放的编码流中的期望视频源的低分辨率版本发送到显示器并缓冲期望编码流。

  在这样的场景下,方法1000可以包括,在期望编码流的至少一部分被缓冲之后,切换到期望编码流,以便提供期望视频源的高分辨率版本。

  在一些实施例中,接收视频源选择命令可以包括从用户界面接收用户输入。在这样的场景下,用户输入可以包括以下中的至少一种:滑动交互、轻击交互、双击交互、捏拉缩放交互、手势命令、语音命令、面部识别交互或眼睛跟踪交互。

  在各种实施例中,方法1000可以附加地包括通过位于不同视点处的多个相机捕获共同对象的图像。在这样的场景下,视频源选择命令可以包括滑动交互。这样,确定期望编码流可以包括基于滑动交互在主视频源、至少一个辅视频源或不同的编码流中的至少一个之间切换。

  在示例实施例中,在本公开的上下文中,可以从单个高分辨率源生成多个流。在这样的场景下,主视频源和辅视频源可以源自同一高分辨率视频源的不同区域。在一些示例中,如本文所述,单个8K源可以用于形成多个视频流。

  附图中所示的特定布置不应被视为限制性的。应当理解,其他实施例可以包括或多或少的给定附图中所示的每个元件。此外,一些示出的元件可以被组合或省略。此外,说明性实施例可以包括附图中未示出的元件。

  表示信息处理的步骤或块可以对应于可以被配置为执行本文描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的步骤或块可以对应于模块、段或程序代码的一部分(包括相关数据)。程序代码可以包括可由处理器执行的一个或多个指令,用于实施方法或技术中的特定逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质上,诸如包括磁盘、硬盘驱动器或其他存储介质的存储设备。

  计算机可读介质还可以包括非暂时性计算机可读介质,诸如短时间段存储数据的计算机可读介质,如寄存器存储器、处理器高速缓存和随机存取存储器(Random AccessMemory,RAM)。计算机可读介质还可以包括存储程序代码和/或数据达更长时间段的非暂时性计算机可读介质。因此,计算机可读介质可以包括辅助或永久长期存储装置,如只读存储器(Read Only Memory,ROM)、光盘或磁盘、致密盘只读存储器(Compact-Disc Read OnlyMemory,CD-ROM)。计算机可读介质也可以是任何其他易失性或非易失性存储系统。计算机可读介质可以被认为是例如计算机可读存储介质或有形存储设备。

  虽然已经公开了各种示例和实施例,但是其他示例和实施例对于本领域技术人员来说将是显而易见的。各种公开的示例和实施例是为了说明的目的,而不是意在限制,其中真正的范围由所附权利要求指示。

《多视频流在播放端的无缝切换方法与系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)