用于流传输和渲染的球形视频的转换和预处理的制作方法

文档序号:15884627发布日期:2018-11-09 18:37阅读:229来源:国知局
用于流传输和渲染的球形视频的转换和预处理的制作方法

本申请要求于2017年3月21日提交的标题为“conversionandpre-processingofsphericalvideoforstreamingandrendering”的美国非临时申请no.15/464,883的权益和优先权,该申请要求于2016年3月21日提交的标题为“conversionpre-processingtooptimize360degreesphericalvideoforstreaminganddisplay”的美国临时申请no.62/311,263的优先权,这两个申请的内容都通过引用整体上并入本文。

背景技术

将360度虚拟现实(vr)内容编码成经典的矩形二维(2d)图像的常用格式是使用“等距长方圆柱(equirectangular)”格式。与制图中使用的经典地图投影类似,等距长方圆柱格式旨在通过在2d图像的矩形表面上给予球形(spherical)的所有区域相似的面积来尽可能准确地表示来自球形的表面的数据。

结果所得的2d图像以具有严重扭曲的直线的原始内容为特征,其可以类似于极端广角照片中的扭曲线。可以在观看时将扭曲的线解码为未扭曲的三维(3d)图像;但是,当编码作为视频的一部分的图像时,扭曲的线给出了特别的困难。例如,图像的扭曲性质导致需要增加的数据来以给定的质量表示编码格式的视频。所需的附加数据增加了需要被编码的数据,这使用更多的带宽,从而使得以可接受的流传输带宽为虚拟现实体验提供视频成为挑战。另外,当虚拟现实体验是立体的(例如,每只眼睛有单独的图像)时,问题会恶化,因为需要编码和发送针对每只眼睛的图像数据。

附图说明

图1描绘了根据一个实施例的用于提供虚拟现实内容的简化系统。

图2a描绘了根据一个实施例的用于预处理球形内容的方法的简化流程图。

图2b示出了根据一个实施例的片材的示例。

图3a描绘了根据一个实施例的用于将面图像放置在片材200上的方法的简化流程图。

图3b示出了根据一个实施例的片材上的间隙的示例。

图3c描绘了根据一个实施例的将像素线添加到当前面图像的示例。

图4描绘了根据一个实施例的用于对编码视频流进行解码的方法的简化流程图。

图5描绘了根据一个实施例的用于直接从2d图像在立方体结构上显示球形内容的方法的简化流程图。

图6示出了根据一个实施例的分别针对两只眼睛的两张片材的示例。

图7描绘了根据一个实施例的经由一个或多个通信网络与多个客户端设备通信的视频流传输系统。

图8描绘了用于观看视频内容和广告的装置的示意图。

具体实施方式

本文描述的是用于视频处理系统的技术。在以下描述中,出于解释的目的,阐述了许多示例和具体细节,以便提供对特定实施例的透彻理解。由权利要求限定的特定实施例可以单独包括这些示例中的一些或全部特征,或者与下面描述的其它特征组合,并且还可以包括本文描述的特征和概念的修改和等同物。

特定实施例向使用视频交付服务的用户提供用于流传输视频的虚拟现实体验。系统使用立方体映射(map)来表示虚拟现实设备周围的球形环境。立方体映射通过将数据投影到一组面图像(诸如投影到立方体的六个面上)来表示原始球形内容。当呈现给系统的用户时,立方体映射可以被解码,并且解码的图像包括非常低的扭曲水平。系统在内容被编码之前预处理内容,以改进编码和解码处理。例如,预处理从内容提供者接收“等距长方圆柱”格式的矩形二维(2d)图像。预处理对等距长方圆柱数据进行解码,以从原始球形内容生成面图像(诸如六个面图像)。面图像表示可以放置在物体(诸如立方体)的不同面上的图像。六个面图像布置在片材上的立方体映射中,以最大化编码收益。例如,预处理在片材上将具有自然边界的面图像的边缘挨着彼此对齐。而且,预处理在相邻的面图像的一些边缘之间添加间隙,以避免在面图像的边缘边界处的任何编码伪像。可以略微缩小面图像,以允许插入来自逻辑上相邻的立方体映射面的像素。生成这些附加像素,以便还允许在渲染时使用双线性过滤。在一个实施例中,特定实施例还添加附加图像(例如,mip-map),以避免渲染期间的混叠伪像。

图1描绘了根据一个实施例的用于提供虚拟现实内容的简化系统100。系统100包括编码系统102、视频服务器104和客户端设备106。系统100从内容提供者接收球形内容(例如,360度虚拟现实(vr)内容)并且可以在客户端设备106处提供360度虚拟现实体验。球形内容允许用户以360度观看视频。

编码系统102包括视频预处理器108,其在视频由编码器110编码之前接收并预处理视频。在一个实施例中,视频预处理器108从内容提供者接收一种格式的球形内容(诸如“等距长方圆柱”格式的矩形二维(2d)图像)。视频预处理器108将等距长方圆柱数据解码成用于映射(诸如立方体映射)的面图像。面图像包括来自原始球形内容的内容。立方体映射将面图像布置在可以被编码的片材上。然后通过将面图像放置在诸如立方体结构之类的物体上,可以在向用户呈现时解码立方体映射。构成立方体映射的六个面图像的集合可以较适合于被压缩并且对图像提供低扭曲水平。然后,编码器110对视频的立方体映射进行编码。编码器110可以是使用编码标准之一的标准编码器。即使执行转换处理,对编码器110进行更改可能也是不需要的。然后,视频服务器104可以将压缩视频流发送到客户端设备106。

客户端设备106中的三维(3d)硬件112包括解码器114和渲染器116。解码器114解码被编码为立方体映射的压缩视频。解码器114在渲染时将立方体映射解码为立方体格式。例如,六个面图像被解码。然后,渲染器116可以使用立方体结构渲染面图像。经渲染的面图像向观看视频的用户提供3d视频。然后,使用客户端106的用户可以使用客户端106来查看球形内容。在一个实施例中,在客户端106上运行的应用上呈现球形内容。例如,将内容放置在相机周围并且用户位于立方体内并可以360度观看内容。由于预处理,经渲染的3d视频避免了立方体结构的边缘边界处的伪影。

预处理

视频预处理器108将六个面图像布置成称为片材200的矩形二维图像。例如,视频预处理器108可以在片材200上的立方体映射中布置六个方形的面图像。视频预处理器108边缘到边缘地布置面图像,在对齐中对于改进解码的面图像给予优先级。例如,在片材200上,视频预处理器108尝试使立方体上自然彼此接近的边缘尽可能多地保持挨着彼此。这允许编码器110更好地编码跨边缘的移动。而且,视频预处理器108在布置边缘时给出主要地平线面(例如,左、右、前和顶面)优先级,因为这是大多数用户在大多数时间看向的地方。在一个实施例中,对于整个视频中的图像,视频预处理器108总是将左、右、前和顶面图像设置在相同位置。在另一个实施例中,视频预处理器108可以针对每个面图像分析边缘处的内容,以通过将内容的特点与阈值进行比较来确定哪些边缘具有最相似的内容(例如,来自两个面图像的内容的特点在阈值内是相似的)。然后,视频预处理器108可以将具有拥有相似内容的边缘的那些面图像在片材200中布置在一起。

图2a描绘了根据一个实施例的用于预处理球形内容的方法的简化流程图201。在202处,编码系统102从内容提供者接收视频。例如,视频可以包括由视频交付服务提供的视频(诸如电影或电视节目)。此外,视频可以是用于提供的视频游戏的视频。视频可以包括以第一格式提供的球形内容(诸如“等距长方圆柱”格式的矩形2d图像)。球形内容是意在在360度环境中显示的内容。虽然描述了等距长方圆柱格式,但是也可以接收其它格式(诸如不是球形格式的标准视频)。

在204处,视频预处理器108从视频内容生成用于映射的面图像。生成面图像,以映射到物体。例如,视频预处理器108为立方体的六个面生成六个面图像。以下将使用映射到立方体的六个面的六个面图像的示例,但是将理解的是,可以使用不同数量的面图像并且可以使用与立方体不同的结构(诸如可以为具有多于六个面的结构生成多于六个面图像,或者可以使用没有边缘的球形结构)。在一个实施例中,可以将接收的视频变换为可以与立方体映射对应的六个面图像。例如,等距长方圆柱内容被用于生成立方体的左、右、前、后、顶和底面的面图像。这可以在那些方向上用面图像围绕用户,从而提供360度环境。从等距长方圆柱格式到面图像的变换移除了等距长方圆柱格式中的扭曲。扭曲的移除改进了编码质量。

在206处,视频预处理器108识别面图像,以便向立方体映射中的放置指派较高的优先级。立方体映射是面图像在片材(诸如矩形片材)上的布置。一些面图像可以具有边缘,边缘具有与另一个面图像的边缘上的内容相似的内容。而且,面图像上的一些边缘可以不具有与另一个面图像的边缘相似的内容。具有拥有相似内容的边缘的面图像可以具有在一起的自然边界,并且这些面图像被给予放置在一起的优先级。而且,视频预处理器108可以向可能更有可能被用户观看的面图像给予优先级,诸如,对于一些应用,用户可能更有可能观看左、前、右和后面图像。视频预处理器108可以选择具有优先级的面图像并尝试将这些面图像的边缘布置在一起。

在208处,视频预处理器108将立方体映射中的面图像布置在片材上。例如,片材可以包括六个位置,其中放置立方体映射的六个面图像。在一个示例中,左、前、右和顶面图像可以与具有对齐在一起的相似内容的边缘对齐。图2b示出了根据一个实施例的片材200的示例。在202-1处,示出了左面图像;在202-2处,示出了前面图像;在202-3处,示出了右面图像;在202-4处,示出了顶面图像。可以看出,在这些面图像之间的边缘处的内容可以是相似的。例如,在204-1处,左面图像和前面图像边缘的边界处的内容被对齐。类似地,在204-2处,前面图像和右面图像边缘的边界处的内容被对齐。在204-3处,前面图像和顶面图像边缘的边界处的内容被对齐。

可以存在边缘可以不包括相似内容的一些面图像。例如,在202-5处,示出了后面图像,并且在202-6处,示出了底面图像。后面图像和左面图像之间的204-4处的边缘不包括相似的内容。在204-5出,后面图像和顶面图像之间的边缘也不包括相似的内容。类似地,在202-6和202-7处,底面图像和顶面图像以及底面图像和右面图像之间的边缘分别不包括相似的内容。

可以导致的一个问题是编码伪像出现在立方体映射上不自然挨着彼此的面图像边界处。如上面所讨论的,当在片材200上布置面图像时,面图像有多个边缘被放置为与其他面图像的边缘挨着,而这些面图像在所得的立方体中实际上互相并没有任何接触。这会导致相邻的面图像之间的一些串扰,并且会导致从一个面图像到另一个面图像的伪像渗出(bleeding)。如果面图像在立方体中上自然相邻,那么这可以不是问题。但是,如果这些面图像在立方体中不是自然相邻,那么面图像可以包含非常不同的外观素材,并且在视频的回放期间渗出伪像可以是用户可注意到的。

为了最小化伪像的渗出,特定实施例可以执行以下方法。图3a描绘了根据一个实施例的用于将面图像放置在片材200上的方法的简化流程图300。在302处,视频预处理器108在片材200上围绕立方体映射的每个面图像添加具有设定宽度的间隙。在一个实施例中,间隙可以是单个块的宽度,诸如16×16像素。这可以是编码器110用来对视频进行编码的块的尺寸。也可以使用其它宽度。

图3b示出了根据一个实施例的片材200上的间隙的示例。图2b中的面图像也添加了间隙;但是,间隙很难看到,因为间隙内容与沿着面图像边缘的内容相似。因而,图3b示出了根据一个实施例的间隙位于片材200中的情况。

在一个实施例中,视频预处理器108仅在具有邻居的边缘之间添加间隙。例如,间隙不被添加到片材200外部的边缘。但是,在边缘是邻居的任何地方,视频预处理器108添加间隙。这导致间隙320-1至320-6被添加到片材200。间隙320-1至320-6可以延伸相应的面图像。例如,间隙320-1被添加到面图像202-1,间隙320-2被添加到面图像202-2,等等。而且,面图像202-1至202-6已经被调整尺寸以适合具有间隙的片材200。

返回去参考图3a,在304处,视频预处理器108减小面图像的尺寸。这种调整尺寸可以在添加间隙之前或之后发生,但是在将间隙内容添加到间隙之前发生。在一个实施例中,当等距长方圆柱内容被转换成面图像时,面图像的尺寸可能已经减小。在另一个实施例中,视频处理器108减小面图像的尺寸以适应添加了间隙的片材200的规格。可以调整面图像的尺寸以适应稍后将在过滤处理中使用的内容的添加。

在一个实施例中,在渲染期间,过滤处理可以需要使用来自相邻面图像的像素。因为已添加间隙,所以过滤处理无法到达相邻帧上的像素。为了克服这一点,在306处,视频预处理器108识别在立方体上的相邻面图像中找到的至少一个像素线,并将来自相邻面图像的像素插入面图像中。一个或多个帧线(frameline)从相邻面的边缘取出,该相邻面与正在处理的面自然相邻。这基本上使像素“继续”进入当前面图像上的自然相邻面。可以调整当前面图像的尺寸以适应一个或多个像素线。即,基于包括像素线和间隙内容来调整当前面图像的尺寸。在一个实施例中,编码器110使用块尺寸(诸如16×16块)进行编码。为了避免各种类型的伪像,视频预处理器108将间隙尺寸和面图像尺寸(例如,实际面图像、额外像素线和间隙内容)在宽度/高度方面对齐为16的倍数。作为合乎逻辑的结果,片材上的间隙和面图像位置因此也是对齐的。

在一个示例中,过滤本身仅需要一个邻居像素。但是,解码处理可以使用mip-map,其是片材200的小型化版本。由于小型化,这使得需要面图像中的多于一个像素线。即,需要在当前面图像中存在来自相邻面图像的至少单个像素线,并且需要将来自相邻面的较多像素添加到当前面图像以补偿小型化。如果使用两个mip-map,以在最小的mip-map中保留附加数据的至少一个像素,那么当前面需要最大面图像(例如,片材200中的最大面图像)中的四个像素。如果使用不同数量的mip-map,那么来自相邻面的像素线的数量将变化。

图3c描绘了根据一个实施例的将像素线添加到当前面图像的示例。在这个示例中,示出了前面,但是也调整了其它面图像的尺寸。当前面图像已经被调整尺寸为较小并且包括当前面图像内容350。像素帧352已经插入到由于调整尺寸而变空的区域中。像素帧中的像素来自与立方体结构上的前面邻近的相邻面。这就是为什么在片材200上,即使片材200上的前面图像在其下方没有相邻的面图像,也在前面图像周围形成帧。在一个示例中,在352-1处,来自相邻底面图像的像素被包括,在352-2处,来自相邻左面图像的像素被包括,在352-3处,来自相邻顶面图像的像素被包括,在352-4处,来自相邻右面图像的像素被包括。要注意的是,由于每个面图像包括来自相邻面的内容,因此像素帧352中的内容需要从相邻面的当前面图像内容350中取得,而不是从片材200上的面图像的边缘取得。

返回去参考图3a,在308处,视频预处理器108检查每个面图像的间隙附近的面图像上的内容,以供用间隙内容填充间隙。对于编码,间隙需要用信息填充。选择间隙内容,以最小化经解码的面图像中的伪像。在一个实施例中,可以基于间隙的那部分附近的内容生成间隙内容。例如,间隙内容可以是像素的被涂抹掉的颜色或者从面图像的边缘周围的像素挤出。当边缘周围的像素的颜色改变时,这种颜色可以改变。挤出的颜色可以基于来自原始面图像的内容、来自相邻面图像的内容(因为它被添加在像素帧中)或两者兼有。由于编码器110可以充分利用的相似性,所以使用基于间隙附近的内容的颜色可以允许更高效的编码。

返回去参考图3a,在310处,视频预处理器108基于面图像的边缘处的内容生成间隙内容并向间隙添加间隙内容。

可以在不受间隙内容的影响的情况下解码并显示片材200中实际包含来自视频的内容而非间隙内容的块。此外,在解码图像中出现的任何渗出伪像限于在间隙中找到的数据,渲染器116不显示该数据。

对齐约束可以导致片材200上的一些区域未被使用。特定实施例利用这些未使用的区域来增加图像分辨率。立方体映射可以使用方形面图像来表示每个面。而且,可以将相同数量的像素映射到每次访问。渲染器116可以忽略这个限制并且可以针对每个轴使用不同数量的像素。这使得面图像不是方形。渲染器116可以在渲染时调整纹理映射以补偿非方形的图像。编码器110可以为每个面图像编码非方形的图像,这可以更好地利用可用的图像分辨率,从而产生每个面更高的分辨率。

在312处,编码器110对片材200中的面图像和间隙内容进行编码。间隙内容的添加可以要求对附加数据进行编码,但是由于间隙内容的低信息内容,编码器110可以高效地压缩内容。通过限制渗出伪像而获得的收益超过了附加数据的成本。要注意的是,编码器110对片材200进行编码,因为它通常将对不包括间隙的视频进行编码。即,编码器110的操作不需要改变,以编码包括间隙的片材200。

在对片材200进行编码之后,编码器110将经编码的视频提供给视频服务器104。然后,视频服务器104可以通过网络将经编码的视频发送到客户端106。虽然视频服务器104被讨论为通过网络发送视频,但将理解的是,编码系统102和视频服务器104可以位于客户端106中。即,视频不需要通过网络被流传输,并且客户端106可以执行关于编码系统102和视频服务器104描述的功能。

解码

在视频回放时,经编码的视频流被解码并作为单个二维(2d)图像呈现给渲染器116。然后,渲染器116可以通过将面图像放置在立方体上来生成360度环境。以下将更详细地描述解码。

图4描绘了根据一个实施例的用于解码经编码的视频流的方法的简化流程图400。可以对视频的每个图像(例如,帧)执行这个方法。在402处,解码器114从视频服务器104接收经编码的视频流。在404处,解码器114将视频流的一部分解码为单个2d图像。该单个2d图像可以包括片材200的面图像和间隙内容,并且表示视频的单个图像或帧。对于视频的每个图像,可以多次执行以下处理。

在406处,解码器114将经解码的单个2d图像提供给渲染器116。该2d图像不由客户端106显示为2d图像。而是来自片材的面图像被放置在立方体结构的面上。在一个实施例中,2d图像被转换成硬件112所需的任何二进制表示。在一些实施例中,这可以被避免,因为渲染器可以像2d图像通常被渲染的那样来处理该2d图像。渲染器116可以在立方体上显示面图像之前对2d图像执行一些动作,诸如生成mip-map,这将在下面描述。

渲染

图5描绘了根据一个实施例的用于直接从2d图像在立方体结构上显示球形内容的方法的简化流程图500。在一个实施例中,渲染器116使用纹理映射技术在立方体结构上渲染面图像。立方体结构可以围绕表示用户在空间中的朝向的点(诸如相机)形成360度环境。即,用户可以位于立方体内部并且可以观看立方体结构的面图像。在502处,渲染器116识别从片材200到立方体结构的面图像。在一个实施例中,每个视频流对所有帧使用面图像的恒定布局。该布局可以被包括在视频流的元数据中。渲染器116可以确定面图像以及间隙内容在片材200上的位置。渲染器116可以使用预设坐标来确定面图像在片材200上的位置。可替代地,可以利用经编码的视频流在元数据中发送坐标。

在504处,渲染器116使用纹理映射将片材200上的面图像映射到立方体结构,其中纹理映射使用过滤技术(诸如双线性过滤)。双线性过滤可以提供高质量渲染并且需要多个像素(诸如四个像素)来执行过滤。纹理采样技术在被请求进行过滤的实际像素周围采样至多一个像素,以提高渲染质量。在每个面图像区域的边缘处,需要从相邻面图像读取的附加像素,以避免任何伪像。如果间隙没有插入片材200中,那么双线性过滤将具有来自相邻面图像的自然采样的像素。但是,由于间隙,插入到间隙中的一个像素线可以用于双线性过滤。当在面图像的边缘处执行双线性过滤时,渲染器116使用每个面图像中找到的来自相邻面图像的一个像素线。使用来自相邻面图像的一个像素线避免了渲染视频中的任何伪像,因为双线性过滤处理按预期执行。

除了上述双线性采样问题之外,当渲染器116渲染映射到立方体结构的图像时,还可能发生一些缩小。缩小是一类抗混叠(anti-aliasing)(aa),其中纹理样本以如下频率而存在,该频率高于纹理填充需要的样本频率所要求的频率。这会在立方体上的图像中导致混叠伪像。为了补偿缩小问题,在506处,渲染器116可以针对每个原始面图像识别mip-map,这是由编码器110生成的原始面图像的较小版本。渲染器116可以使用mip-map来执行纹理映射,以避免缩小可能导致的混叠。编码系统102可以针对片材200使用两个附加的mip-map。片材200上的面图像包括如上面所讨论的宽度为四个像素的来自相邻立方体映射面图像的像素。这导致在最小的mip级别仍然可以有1个像素可用,因为每个mip级别是每个轴上的规格(dimension)的一半。所生成的mip-map可以是每个较高mip-map的一半尺寸(每个轴,因此像素数是四分之一尺寸)版本。如果片材200是2048×1024像素,那么mip-map可以是1024x512和512x256像素。这提供了具有单个像素线的最小mip-map。最大的片材200可以具有来自相邻面的四个像素线,但是仅需要1个像素线,并且可以忽略其它3个像素线。类似地,较大的mip-map包括来自相邻面的2个像素线,并且可以忽略其中一个像素线。

在508处,渲染器116在立方体结构上渲染面图像。渲染器116不从片材200渲染间隙内容。这仅留下面图像。例如,渲染器116使用面图像的坐标并且可以将面图像映射到立方体面,而不渲染间隙内容或来自像素帧的内容。用户位于虚拟立方体结构的中心,并且当立方体的每一侧被流入时,面图像被投影到3d空间中,这给出了每个像素与用户具有相等距离的错觉。

立体内容

特定实施例还可以提供立体内容,其为双眼提供独立的图像。图6示出了根据一个实施例的分别用于两只眼睛的两个片材602-1和602-2的示例。编码器110可以利用单个片材600内的相似性。因此,第二眼睛图像的添加不会使所需的带宽加倍。这是因为用于双眼的面图像被放置在编码器110可以一起编码的单个片材600上。与每只眼睛被压缩为独立片材相比,这增加了编码器110可以实现的压缩。

然后,解码器114可以将经编码的视频流解码为单个2d图像。渲染器116为每只眼睛在分离的立方体结构上渲染针对每只眼睛的相应立方体映射。例如,602-1处的立方体映射在第一立方体结构上渲染,而602-2处的立方体映射在第二立方体结构上渲染。

面图像的侧面的对齐以及它们之间添加的间隙避免了在边缘边界处的编码伪像。从等距长方圆柱到立方体映射格式的重新采样避免了扭曲。片材200上面图像的布置使编码收益最大化。面图像的尺寸略微缩小,以允许附加像素以允许在渲染时使用双线性过滤。直接从单个平坦纹理进行渲染避免了在渲染时的附加转换工作。立体素材自然适合上述编码方案。而且,变形立方体面图像编码也增加了可用的分辨率。

系统

本文公开的特征和方面可以结合经由一个或多个通信网络与多个客户端设备通信的视频流传输系统700来实现,如图7中所示。描述视频流传输系统700的各方面仅仅是为了提供启用根据本公开准备的内容的分发和交付的应用的示例。应当认识到的是,本技术不限于流传输视频应用,而且可以适用于其它应用和交付机制。

在一个实施例中,媒体节目提供者可以包括媒体节目库。例如,媒体节目可以通过站点(例如,网站)、应用或浏览器进行聚合和提供。用户可以访问媒体节目提供者的站点或应用,并请求媒体节目。用户可以限于只请求媒体节目提供者提供的媒体节目。

在系统700中,可以从一个或多个源(例如,从视频源710)获得视频数据,用作到视频内容服务器702的输入。输入的视频数据可以包括原始的或基于编辑帧的、任何合适的数字格式的视频数据,例如运动图像专家组(mpeg)-1、mpeg-2、mpeg-4、vc-1、h.264/高级视频编码(avc)、高效率视频编码(hevc),或其它格式。在替代方案中,视频可以以非数字格式提供并且使用扫描仪和/或转码器转换成数字格式。输入的视频数据可以包括各种类型的视频剪辑或节目,例如,作为消费者感兴趣的主要内容产生的电视情节、运动画面和其它内容。视频数据还可以包括音频或者可以只使用音频。

视频流传输系统700可以包括分布在一台或多台计算机上的一个或多个计算机服务器或模块702、704和/或707。每个服务器702、704、707可以包括或可操作地耦合到一个或多个数据存储709,例如数据库、索引、文件或其它数据结构。视频内容服务器702可以访问各种视频片段的数据存储(未示出)。视频内容服务器702可以如由与客户端设备通信的用户接口控制器指示的那样提供视频片段。如本文所使用的,视频片段是指基于帧的视频数据的既定部分,诸如可以在流传输视频会话以观看电视情节、运动画面、记录的现场表演或其它视频内容中所使用的。

在一些实施例中,视频广告服务器704可以访问相对短的视频(例如,10秒、30秒或60秒视频广告)的数据存储,该相对短的视频被配置为针对特定广告商或消息的广告。广告可以为广告商提供,以换取某种形式的支付,或者可以包括用于系统700的宣传信息、公共服务消息或其它信息。视频广告服务器704可以如由用户接口控制器(未示出)指示的那样提供视频广告片段。

视频流传输系统700还可以包括编码系统102112。

视频流传输系统700还可以包括将视频内容和视频广告集成到流传输视频片段中的集成和流传输部件707。例如,流传输部件707可以是内容服务器或流传输媒体服务器。控制器(未示出)可以基于任何合适的算法或处理来确定流传输视频中的广告的选择或配置。视频流传输系统700可以包括图7中未描绘的其它模块或单元,例如行政管理服务器、商业服务器、网络基础设施、广告选择引擎,等等。

视频流传输系统700可以连接到数据通信网络712。数据通信网络712可以包括局域网(lan)、广域网(wan)(例如,互联网)、电话网、无线蜂窝电信网络(wcs)714,或这些或类似网络的一些组合。

一个或多个客户端设备720可以经由数据通信网络712和/或其它网络714与视频流传输系统700通信。这种客户端设备可以包括,例如,一个或多个膝上型计算机720-1、台式计算机720-2、“智能”手机720-3、平板设备720-4、启用网络的电视720-5,或它们的组合,经由用于lan的路由器718、经由用于无线电话网络714的基站717,或经由某种其它连接。在操作中,响应于从用户输入设备接收的用户输入或其它输入,这种客户端设备720可以向系统700发送和接收数据或指令。作为响应,系统700可以响应于媒体节目的选择而从数据存储709向客户端设备720提供视频片段和元数据。客户端设备720可以使用显示屏幕、投影仪或其它视频输出设备从媒体播放器中的流视频片段中输出视频内容,并接收用于与视频内容交互的用户输入。

音频-视频数据的分发可以使用各种方法(例如,流传输)经计算机网络、电信网络以及这种网络的组合从流传输部件707到远程客户端设备实现。在流传输中,内容服务器将音频-视频数据连续地流传输到至少部分地在客户端设备上操作的媒体播放器部件,媒体播放器部件可以与从服务器接收流传输数据并发地播放音频-视频数据。虽然讨论了流传输,但是可以使用其它交付方法。媒体播放器部件可以在从内容提供者接收数据的初始部分之后立即发起视频数据的播放。传统的流传输技术使用单个提供者向终端用户的集合交付数据流。高带宽和处理能力可能是向大量观众交付单个流所需要的,并且当终端用户的数量增加时,提供者的所需带宽可能增加。

流传输媒体可以按需或实时交付。流传输允许在文件中的任何点立即重放。终端用户可以在整个媒体文件中跳过,以开始重放或将重放改变到媒体文件中的任何点。因此,终端用户不需要等待文件逐步下载。通常,流传输媒体是经由接收对视频文件的请求的专用设备从几个具有高带宽能力的专用服务器交付的,并且具有关于格式、带宽和那些文件的结构的信息,仅以播放视频所需的速率交付播放视频所需的数据量。流传输媒体服务器还可以解释目的地客户端上媒体播放器的传输带宽和能力。流传输部件707可以使用控制消息和数据消息与客户端设备720通信,以在播放视频时根据变化的网络状态进行调整。这些控制消息可以包括用于启用控制功能的命令,诸如快进、快退、暂停或在客户端查找文件的特定部分。

由于流传输部件707仅根据需要并以所需的速率发送视频数据,因此可以维持对所服务的流的数量的精确控制。观看者将无法在较低数据速率的传输介质上查看高数据速率视频。但是,流传输媒体服务器(1)向用户提供对视频文件的随机访问,(2)允许监视谁在看什么视频节目以及它们被观看多长时间,(3)更高效地使用传输带宽,因为只发送支持观看体验所需的数据量,以及(4)视频文件不存储在观看者的计算机中,而是被媒体播放器丢弃,从而允许对内容的更多控制。

流传输部件707可以使用基于tcp的协议,诸如http和实时消息传送协议(rtmp)。流传输部件707也可以交付网络直播并可以多播,这允许多于一个客户端调整到单个流,从而节省带宽。流传输媒体播放器可以不依赖于缓冲整个视频以提供对媒体节目中任意点的随机访问。相反,这是通过使用从媒体播放器发送到流传输媒体服务器的控制消息来实现的。另一个用于流传输的协议是超文本传输协议(http)直播流传输(hls)或经http的动态自适应流传输(dash)。hls或dash协议经由小片段的播放列表经http交付视频,这些小片段通常从一个或多个内容交付网络(cdn)以各种位速率可用。这允许媒体播放器以片段为基础切换位速率和内容源两者。切换有助于补偿网络带宽差异以及在视频重放过程中可能发生的基础设施故障。

通过流传输的视频内容的交付可以在各种模式下完成。在一个模式中,用户为观看视频节目而付费,例如,使用费用来访问媒体节目库或受限媒体节目部分,或者使用按需付费服务。在广播电视开始之后不久被广泛采用的另一种模式中,赞助商支付媒体节目的呈现,以换取在节目播出期间或附近展示广告的权利。在一些模式中,广告插在视频节目中的预定时间处,该时间可以被称为“广告位”或“广告插播”。对于流传输视频,媒体播放器可以被配置为使得客户端设备不能在没有在指定的广告位期间还播放预定广播的情况下播放视频。

参考图8,图示了用于观看视频内容和广告的装置800的示意图。在选定的实施例中,装置800可以包括操作地耦合到处理器存储器804的处理器(cpu)802,处理器存储器804保持二进制编码的功能模块以供处理器802执行。这些功能模块可以包括用于处理系统功能(诸如输入/输出和存储器访问)的操作系统808、显示网页的浏览器808,以及用于播放视频的媒体播放器810。这些模块还可以包括3d硬件112。存储器804可以保持在图8中未示出的附加模块,例如用于执行本文其它地方描述的其它操作。

总线814或其它通信部件可以支持装置800内信息的通信。处理器802可以是专门的或专用的微处理器,通过执行定义特定任务的机器可读软件代码,该专门的或专用的微处理器被配置为根据本文所公开的特征和方面执行特定任务。处理器存储器804(例如,随机存取存储器(ram)或其它动态存储设备)可以连接到总线814或直接连接到处理器802,并且存储要由处理器802执行的信息和指令。存储器804还可以在执行此类指令期间存储临时变量或其它中间信息。

存储设备824中的计算机可读介质(crm)可以连接到总线814并且存储用于处理器802的静态信息和指令;例如,存储设备(crm)824可以在装置800断电时存储模块806、808和810,当装置800上电时可以将模块从存储设备加载到处理器存储器804中。存储设备824可以包括保持信息、指令或它们的某种组合的非暂态计算机可读存储介质,例如在被处理器802执行时使装置800被配置成执行本文所述的方法的一个或多个操作的指令。

通信接口816也可以连接到总线814。通信接口816可以提供或支持装置800与一个或多个外部设备(例如,流传输系统700)之间的双向数据通信,可选地经由路由器/调制解调器826以及有线或无线连接。在替代方案中,或另外,装置800可以包括连接到天线829的收发器818,通过其,装置800可以与用于无线通信系统的基站或者与路由器/调制解调器826进行无线通信。在替代方案中,装置800可以经由局域网、虚拟专用网或其它网络与视频流传输系统700通信。在另一种替代方案中,装置800可以作为系统700的模块或部件被结合,并且经由总线814或通过某种其它方式与其它部件通信。

装置800可以连接(例如,经由总线814和图形处理单元820)到显示单元828。显示器828可以包括用于向装置800的操作者显示信息的任何合适的配置。例如,显示器828可以包括或利用液晶显示器(lcd)、触摸屏lcd(例如,电容显示器)、发光二极管(led)显示器、投影仪或其它显示设备,以在可视显示器中将信息呈现给装置800的用户。

一个或多个输入设备830(例如,字母数字键盘、麦克风、键区、遥控器、游戏控制器、相机或相机阵列)可以经由用户输入端口822连接到总线814,以便向装置800传达信息和命令。在选定的实施例中,输入设备830可以提供或支持对光标定位的控制。这种光标控制设备(也被称为定点设备)可以被配置为鼠标、轨迹球、轨迹垫、触摸屏、光标方向键或用于接收或跟踪物理运动并将运动翻译为指示光标移动的电子信号的其它设备。光标控制设备可以结合到显示单元828中,例如使用触摸敏感屏。光标控制设备可以向处理器802传达方向信息和命令选择,并在显示器828上控制光标移动。光标控制设备可以具有两个或更多个自由度,例如允许设备在平面或三维空间中指定光标位置。

特定实施例可以在非瞬态计算机可读存储介质中实现,以供指令执行系统、装置、系统或机器使用或与其结合使用。计算机可读存储介质包含用于控制计算机系统以执行由特定实施例描述的方法的指令。计算机系统可以包括一个或多个计算设备。当指令由一个或多个计算机处理器执行时,指令可以被配置为执行特定实施例中描述的指令。

如在本描述中并且贯穿所附权利要求所使用的,“一个”、“一”和“该”包括复数引用,除非上下文另有明确规定。而且,如在本描述中并且贯穿所附权利要求所使用的,“在...中”中的含义包括“在...中”和“在...上”,除非上下文另有明确规定。

以上描述示出了各种实施例,连同特定实施例的各方面可以如何实现的示例。以上示例和实施例不应当被视为唯一的实施例,并且其给出是为了说明由所附权利要求限定的特定实施例的灵活性和优点。基于以上公开内容和所附权利要求,可以在不背离权利要求限定的其范围的情况下采用其它布置、实施例、实现和等同物。

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