全向视频编码和流传输的制作方法

文档序号:16470756发布日期:2019-01-02 23:04阅读:288来源:国知局
全向视频编码和流传输的制作方法

本公开涉及视频的编码和流传输,尤其涉及对全向视频进行编码和流传输。



背景技术:

全向视频提供360°视野的环境。全向视频允许观看者观看360°环境中的任何所需部分。对全向视频进行编码可以通过将全向视频从球体投影到一个或多个矩形上而使用用于二维(2d)视频的现有编码技术。图1描绘了使用等矩形投影(equirectangularprojection)和立方体投影(cubicprojection)将全向视频从球体100投影到一个或多个矩形102、104a、104b、104c、104d、104e、104f上。在等矩形投影和立方体投影这两种情况下,所产生的2d投影都有浪费的像素。如图1中所示的,全向视频的面积是球体102的面积。如果全向视频的球体具有半径r,则全向视频覆盖4πr2的面积。然而,在等矩形投影中,球体的面积被投影到面积为2π2r2的矩形上,该面积是球体面积的157%。类似地,在立方体投影中,球体的面积被投影到6个方形上这6个方形的组合面积为6πr2,该面积是球体面积的150%。因此,这两种投影技术都会导致相对大量的不必要的信息被编码。

在2d视频中,摄影师倾向于使用整帧(wholeframe)来捕捉所有感兴趣的区域(roi,regionsofinterest)。然而,在全向视频中,相对较高百分比的像素被用于渲染场景的环境。常规编码方法(regularencodingmethod)将这些非roi区域视为与roi区域相同。因此,非roi区域可以使用比特率,这不必要地导致对roi区域进行编码的可用比特率更低。编码后视频可以被流传输给观看者,以交互地观看360°视频。

用于对全向视频进行编码的附加的、替代的和/或改进的编码技术以及用于对编码后的全向视频进行流传输的改进的流传输技术是期望的。



技术实现要素:

本公开提供一种使用几乎等面积投影的新编码方法。该编码也可以使用以roi为目标的编码来提供被编码的全向视频。此外,本公开提供用于全向视频的自适应流传输技术。本公开还提供用于捕获和拼接全景和全向视频的视频捕获设备以及技术。

根据本公开,提供一种对全向视频进行编码的方法,包括:接收球形全向视频数据;将球形全向视频数据的帧分割成北极分段(northpolesegment)、南极分段(southpolesegment)和至少一个连接分段(joiningsegment),其中北极分段通过将球形全向视频数据的帧的顶部球形圆顶部分(topsphericaldomeportion)映射到圆上而形成,南极分段通过将球形全向视频数据的帧的底部球形圆顶部分(bottomsphericaldomeportion)映射到圆上而形成,至少一个连接分段通过将球形全向视频数据的帧的、连接顶部球形圆顶部分和底部球形圆顶部分的球形连接部分(sphericaljoiningportion)映射到至少一个矩形上而形成;将北极分段、南极分段和至少一个连接分段堆叠在一起,以形成对应于球形全向视频数据的帧的二维(2d)帧;以及对2d帧进行编码。

在另一实施例中,该方法还包括将球形全向视频数据的多个帧分割成多个北极分段、多个南极分段和多个连接分段;将多个北极分段、多个南极分段和多个连接分段堆叠成多个2d帧;以及对多个2d帧进行编码。

在该方法的另一实施例中,所述至少一个连接分段包括多个连接分段,每个连接分段将球形连接部分的一部分映射到相应的矩形上。

在该方法的另一实施例中,圆极被放置在方形内。

在该方法的另一实施例中,北极分段、南极分段和至少一个连接分段中的每一者都包括重叠的像素数据。

在该方法的另一实施例中,在分段之间存在高达5%的重叠。

在该方法的另一实施例中,所述至少一个连接分段包括2到4个分段。

在另一实施例中,该方法还包括在对2d帧进行编码之前跟踪一个或多个感兴趣的区域(roi)。

在该方法的另一实施例中,对2d帧进行编码包括:将一个或多个视点(viewpoint)编码到第一流中;以及针对每一个视点,对附加流进行编码,所述附加流包括帧内编码帧流(intra-codedframestream)、预测帧流和双向预测帧流(bi-predictiveframestream)。

在另一实施例中,该方法还包括对编码后的视点中的至少一者进行流传输。

根据本公开,还提供一种用于对全向视频进行编码的系统,包括:处理器,用于执行指令;以及存储器,用于存储指令,当所述指令由处理器执行时,配置所述系统以提供一种方法,该方法包括:接收球形全向视频数据;将球形全向视频数据的帧分割成北极分段、南极分段和至少一个连接分段,其中北极分段通过将球形全向视频数据的帧的顶部球形圆顶部分映射到圆上而形成,南极分段通过将球形全向视频数据的帧的底部球形圆顶部分映射到圆上形成,至少一个连接分段通过将球形全向视频数据的帧的、连接顶部球形圆顶部分和底部球形圆顶部分的球形连接部分映射到至少一个矩形上而形成;将北极分段、南极分段和至少一个连接分段堆叠在一起,以形成对应于球形全向视频数据的帧的二维(2d)帧;以及对2d帧进行编码。

在该系统的另一实施例中,指令还将所述系统配置为:将球形全向视频数据的多个帧分割成多个北极分段、多个南极分段和多个连接分段;将多个北极分段、多个南极分段和多个连接分段堆叠成多个2d帧;以及对多个2d帧进行编码。

在该系统的另一实施例中,所述至少一个连接分段包括多个连接分段,每个连接分段将球形连接部分的一部分映射到相应的矩形上。

在该系统的另一实施例中,圆极被放置在方形内。

在该系统的另一实施例中,北极分段、南极分段和至少一个连接分段中的每一者都包括重叠的像素数据。

在系统的另一实施例中,分段之间存在高达5%的重叠。

在该系统的另一实施例中,所述至少一个连接分段包括2到4个分段。

在系统的另一实施例中,指令还将所述系统配置为在对2d帧进行编码之前跟踪一个或多个感兴趣的区域(roi)。

在该系统的另一实施例中,对2d帧进行编码包括:将一个或多个视点编码到第一流中;以及针对每一个视点,对附加流进行编码,所述附加流包括帧内编码帧流、预测帧流和双向预测帧流。

在该系统的另一实施例中,指令还将所述系统配置为对编码后的视点中的至少一者进行流传输。

根据本公开,还提供一种用于捕获全景视频的设备,包括:框架,用于支撑移动设备;第一鱼眼镜头,被安装在框架上,并被设置成当移动设备由框架支撑时被定位在移动设备的前置摄像头上方;以及第二鱼眼镜头,被安装在框架上,并且被设置成当移动设备由框架支撑时被定位在移动设备的后置摄像头上方。

根据本公开,还提供一种拼接从一个或多个移动设备捕获的多个视频的方法,包括:为捕获视频的每个摄像头生成拼接模板;使用帧的时间戳来同步捕获的视频的帧;使用拼接模板将多个视频重新映射到球体上;以及混合重新映射的图像以提供全景视频。

附图说明

参考以下描述和附图将更好地理解本公开的特征、方面和优点,其中:

图1描绘了球体的等矩形投影和立方体投影;

图2a和2b描绘了球体的分段球体投影(ssp);

图3描绘了来自分段球体投影的分段的堆叠;

图4是基于圆极和方极分段的分段数量的、分段面积与球形面积的比率的曲线图;

图5是基于圆极分段的分段数量和不同数量的分段重叠的、分段面积与球形面积的比率的曲线图;

图6是基于方极分段的分段数量和不同数量的分段重叠的、分段面积与球形面积的比率的曲线图;

图7描绘了使用单个赤道区块分段和方极的分段球体投影;

图8描绘了使用多个赤道区块分段和方极的分段球体投影;

图9描绘了使用相同尺寸的赤道区块分段和方极的分段球形投影;

图10描绘了重叠区块分段的堆叠;

图11描绘了重叠区块分段的又一堆叠;

图12描绘了重叠区块分段的又一堆叠;

图13描绘了用于立体全向视频的重叠区块分段的堆叠;

图14描绘了感兴趣的区域(roi)编码;

图15描绘了又一roi编码;

图16描绘了roi热图;

图17描绘了roi时间编码;

图18描绘了全向视频的视点编码;

图19描绘了用于自适应视点流传输的全向视频的视图的视点编码;

图20描绘了全向视频的自适应视点流传输;

图21描绘了用于编码和流传输全向视频的系统;

图22a、图22b和图25c描绘了用于捕获全景和/或全向视频的设备;

图23a、图23b和图23c一起描绘了拼接视频;以及

图24a和24b描绘了亮度映射。

具体实施方式

全向视频可以使用常规编码技术、通过首先将视频从球体投影到二维(2d)区块进行编码。分段球体投影(ssp)将球体视频从球体的顶部圆顶或盖子(cap)部分、球体的底部圆顶或盖子部分以及球体的连接顶部和底部盖子部分的中间赤道部分进行投影。顶部和底部盖子分段可以被映射到圆形区块或被映射到方形区块的圆形部分。球体的赤道部分可以被映射到一个或多个矩形区块。然后可以将这些区块堆叠在一起成为用于后续编码的单个帧。由ssp产生的区块的总面积可以小于由等矩形投影或立方体投影产生的总面积。ssp的区块面积接近全向视频的球体面积的区块面积。

除了将球体分割成具有比其他投影技术(例如,等矩形投影或立方体投影)更低的总面积的区块之外,可以通过使用更高比特率对全向视频的特定感兴趣的区域(roi)部分进行编码同时通过使用更低比特率对全向视频的非roi部分进行编码,来进一步提高全向视频的编码效率。

图2a和图2b描绘了球体的分段球体投影(ssp)。如图2a中所示,使用基于正弦投影的改进的投影将球体分割并映射到区块。如图所示,球体200沿其纬度被切割成若干分段,这些分段包括北极分段202a,南极分段202b(统称为极分段202)和一个或多个位于北极分段和南极分段之间的赤道连接分段204a-f(统称为连接分段204)。然后可以将这些分段映射到区块,并且特别地,极分段可以被映射到圆形区块206a、圆形区块206b,以及连接分段204可以被映射到矩形区块208a-208f。如图2b中所示,连接分段的数量可以变化。球体200可以被切割成两个级分段210a、210b和3个赤道连接分段212a、212b、212c。两个级分段210a、210b中的每一者都被映射到方形214a、方形214b所包括的相应的圆形上,以及连接分段212a-c被映射到相应的矩形216a-c上。单独区块可以彼此重叠一定量,以便在进一步处理期间保持视频质量。一旦被分割成区块,单独区块就可以被堆叠在一起以形成可以使用各种编码技术编码的帧。

图3描绘了来自分段球体投影的分段的堆叠。如图所示,单独的连接分段区块304a-c可以与方极区块302a和302b堆叠在一起并且被布置在矩形帧300中。然后可以使用例如h.264编码器对矩形帧300进行编码,尽管也可以使用其他的编码技术。

图4是基于圆极和方极分段的分段数量的、分段面积与球形面积的比率的曲线图。如图4的曲线图中所示,随着赤道连接分段数量的增加,分段区块的总面积接近球体的面积。从图4中可以看出,与圆极相比,当使用方极时,分段区块面积更大。随着分段区块数量的增加,区块极分段纬度,即球体被切割以形成分段的纬度,将被推向极点。

图5是基于圆极分段的分段数量和不同数量的分段重叠的、分段面积与球形面积的比率的曲线图。图6是基于方极分段的分段数量和不同数量的分段重叠的、分段面积与球形面积的比率的曲线图。从图5和图6的图中可以看出,如果分段区块之间存在重叠,则随着分段数量的增加,总面积也增加。相反,当分段区块之间没有重叠时,总面积随着分段数量的增加而减少。下面的表1示出了用于改变分段重叠的数量、改变连接分段的数量以及使用圆极或方极区块的分段纬度。

表1显示了用于不同半球分段和重叠的分段纬度

如上所述,分段区块的数量可以变化。将球体的每个半球分割成1个分段和1个极点可以通过以下方式描述:

其中,θ是区块极点分段纬度。当θ=32.70°时,最小总面积是球体面积4πr2的大约107.1%。

将球体的每个半球分成2个分段和1个极点可以通过以下方式描述:

其中,θ1是区块-区块分段纬度,θ2是区块-极点分段纬度。当θ1=25.34°且θ2=38.22°时,最小总面积是大约105.4%。

如上所示,极点可以被映射到圆形;但是,当对生成的区块进行编码时,这些圆形被放置在方形中。当θ=45°时,对于每个半球一个区块一个极点而言,将圆形极点放置在方形中将将分段的总面积增加至大约117.8%。当每个半球被分割成两个区块和一个极点时,当θ1=35.07°、θ2=53.16°时,总面积为近似113.4%。

不同的硬件解码器具有不同的解码能力。以hevc为例,表2提供了在使用不同的区块时关于编码等级和相应的hevc支持的分辨率、等效等矩形分辨率和在单眼(fov90°)上显示的等效分辨率的示例。

表2显示了针对不同分段以及hevc编码等级的分辨率

图7描绘了使用单个赤道区块分段和方极的分段球体投影。如图所示,球体700可以被分割成由连接分段706连接的北极702和南极704。极点702和极点704被映射到方形708和方形710内的圆形上,以及连接分段706被映射到矩形712上。如图所示,极点区块708和赤道区块710可以被垂直堆叠以形成用于编码的帧。

图8描绘了使用多个赤道区块分段和方极的分段球体投影。如图所示,球体800可以被分割成由多个连接分段连接的北极和南极。这些极点被映射到方形802和方形804内的圆上,以及连接分段被映射至矩形806上。如图所示,极点区块808和赤道区块810可以被垂直堆叠以形成用于编码的帧。

如图7和图8这两个图所示,分段球体投影(ssp)将球体分成若干分段:北极、南极和其余部分。北部和南部的所有分段的边界是对称的。北极和南极被映射成2个圆,其余的分段被投影到一个或多个矩形上。

如图7和图8所示,当形成帧时,可以垂直地布置区块的布局,ssp的公式如下所示。假设有θ,即α1,α2,..,αk,那么将有2k+1。

原点位于图像的左上角。θ'的初始侧位于赤道平面中。北半球中的θ'为正,以及南半球中的θ'为负。公式(3)表示如何将盖子上的点(θ',φ)映射到圆中的点(x',y')上。应该注意的是,北极和南极之间的符号存在差异。公式(4)表示如何将赤道映射到中间矩形上。它使用与等矩形投影(erp)相同的公式将赤道区域转换为矩形。公式(5)和公式(6)表示如何将其余分段映射到矩形上。它也使用与等矩形投影(erp)相同的公式来映射到矩形上。

图9描绘了使用相同尺寸的赤道区块分段和方极的分段球体投影。图9中所示的投影可以与图7中所示的投影类似;然而,不是将单个连接分段映射到单个矩形上,图9中所示的投影将单个矩形分成4个方形。也就是说,球体900被分割成两个极点902、904和连接分段906,并被映射到方形908、910和方形912a-d上的圆上。如图所示,图9的分段球体投影(ssp)将球体分成3个区块:北极、赤道和南极。3个分段的边界为45°n和45°s。北极和南极被映射成2个圆,以及赤道分段的投影与erp相同。圆的直径等于赤道分段的高度,因为两个级分段和赤道分段都具有90°纬度的跨度。

赤道分段被分成4个方形,以获得相同大小的“面”。帧包装结构在图9中示出。圆极的角用“零(null)”值填充以形成方形。球体上的点根据以下公式被映射到相应的区块上:

分段区块可以被包装在一起以形成用于编码的帧。包装过程试图将ssp分段的每个区域都放入具有最少浪费面积的一个2d图像中。

ssp有三种包装类型。可以在编码器侧选择特定的包装方法,以便最小化浪费的面积。对于第一类型,如图10所示,方形1002上的两个圆被垂直放置在矩形1004的顶部上。圆水平居中,作为赤道矩形的中心。所有其他矩形垂直居中,作为赤道矩形的中心。对于第二类型,如图11所示,两个圆1102被水平放置在矩形1104的顶部上。这些圆也水平居中,作为赤道矩形的中心,而且所有其他矩形也垂直居中,作为赤道矩形的中心。对于第三类型,如图12所示,两个圆1202被放在赤道的矩形1204的左侧和右侧上。圆的最高点与赤道矩形的上边缘一样高。所有其他矩形都被放置成使所有矩形的底边缘处于相同的高度。

对于分段而言,由上述图10至图12中的附图标记1006、1106、1206所示的像素的重叠也将被放入2d图像中,并且重叠区域的宽度可以通过具有编码图像数据的语法和语义来指示给解码器。

图13描绘了用于立体全向视频的重叠区块分段的堆叠。对于立体视频,有两种视图。每个视图1302、1304的分段区块都被并排打包。图13示出了支持立体视频的1区块1极的ssp的布局。

下面提供了新语法以允许现有mp4格式支持ssp格式。ssp视频信息框被如下定义。尽管下面描述了特定的语法和语义,但是应当理解,其他实现也是可能的。

语法

语义

boxtype:′ssp′

container:schemeinformationbox(′vrvd′)

mandatory:yes

quantity:one

is_stereoscopic(是_立体)表示是否使用立体媒体渲染。该字段的值等于1,以表示参考轨道中的视频被分成两部分,以根据stereoscopic_type(立体_类型)指定的构图类型分别为左眼和右眼提供不同的纹理数据。

geometry_type(几何_类型)表示用于渲染全向媒体的几何类型。它可以是表示使用等矩形投影的geometry_erp(几何_erp)、表示使用立方体映射投影的geometry_cmp(几何_cmp)或表示分段球体投影的geometry_ssp(几何_ssp)。

stereoscopic_type表示参考轨道中的立体视频的合成类型。

ssp_theta_num表示多少θ被使用。那么包括北极和南极在内的ssp的分段数量将是2*ssp_theta_num+1,默认值为1。

ssp_theta_id表示theta的标识符。

ssp_theta包含θ个度数值,范围从0到180。默认值为45。

ssp_overlap_width(ssp_重叠_宽度)表示重叠的宽度,以像素为单位。

以上已经描述了球形全向视频到多个分段的分段和映射,以及将它们包装在一起并编码。应当理解,虽然描述的是单个分段和映射单个帧,但是该过程将映射全向视频的每个帧。除了由分段体球投影提供的有效映射之外,通过以较高比特率编码感兴趣的区域同时以较低比特率编码非roi,可以提高全向视频的编码效率。

图14描绘了感兴趣的区域(roi)编码。如图14所示,roi目标编码过程1400使用roi信息1406,该信息可以包括指定原始视频1402的roi部分正被编码的掩码1408。原始视频1402被描绘为具有人和树的视频帧1404,其中人是roi。原始视频1402和roi信息1406可以被用于降低编码器1410编码原始视频的非roi区域的质量。非roi区域的降低的质量允许优化的比特率分配,以便在恒定比特率的情况下获得roi区域的最高质量的编码。编码器1410提供roi优化视频1412。输出被描绘为具有人的高质量编码、而树是低质量编码的帧1414。

图15描绘了又一roi编码。过程1500类似于上述参考图14描述的过程;但是,该过程会跟踪原始视频中的roi。原始视频1402被提供给roi分析和跟踪功能1506。

对于roi跟踪,用户可以在第一帧或任何的后续帧中指出roi所基于的对象。跟踪方案使用图像分段算法来估计与所选对象相对应的roi。图像分段算法专门针对全向视频进行调整,以便在将得到的roi应用于全向编码时自动调整面积分配以实现更好的效率。用户可以通过指出错误分类的区域来进一步校正所述估计,则roi将被优化。

一旦确定了用于第一帧的roi,就使用光流跟踪算法来基于先前的帧生成用于相继帧(successiveframe)的roi。通过算法来选择特征点的数量、光流矢量场的精细度和其他参数,以最大化其用于投影方案的效率。用户可以在任何时刻暂停光流跟踪算法,并在使用相同图像分段算法的情况下手动定义用于特定帧的roi。一旦光流跟踪算法被恢复,光流跟踪算法就将使用最新的手动指定的掩码作为其参考。

图16描绘了roi热图。热图1600描绘了roi的最常见的位置,这些位置由亮度描绘,其中最常见的区域由白色1602描绘。热图1600提供关于极点区块1604、1606和赤道区块1608内的最常见位置的信息。对于被观察到的频率较低的roi,roi扩展尺寸容限(margin)相对较低并且roi边界陡峭。分段迭代很高,而且特征点的数量很少。光流场的精细度很低。在低频区域中,存在以下较小的roi区域,也即该roi区域具有针对静态视频而调整的急剧过渡。对于被观察到的频率较高的roi,roi扩展尺寸容限相对较高且roi边界平滑。分段迭代很少,而且特征点的数量很大。光流场的精细度很高。在高频区域中,存在以下更大的roi区域,也即该roi区域平滑过渡并且是运动敏感的。

对于这些提取和跟踪的roi,有两种控制编码质量的通用方式。第一种方式是调整qp利用率。常规视频编码器同等地对待视频流中的每个块(cu)。但是,在全向视频中以及具有关于roi信息的情况下中,可以调整参数以使roi区域具有更高的质量。第二种方式是分辨率利用率。如上所述,全向视频将被切割并被重新整形。某些区块可能不包含任何roi区域。因此,不需要为这些区块保持相同的分辨率。因此,不包含roi区域的那些区块可以被缩小到用调整的qp参数编码的特定分辨率,以便节省比特率。

对于roi区域,可以简单地将整个区块放大到更高的分辨率,或者可以使用如图17所示的时间分辨率增强。通过使用时间分辨率增强,将仅增强roi区域1704、1708的分辨率。额外像素信息将被存储在偶数帧1706中,而初始帧变为所有奇数帧1702。分辨率的变化可能是不舒服的,因此,当视频中存在受限运动时,可以缓慢地调整分辨率。

以上已经描述了整个全向视频的分段和后续编码。然而,编码全向视频的特定视点可能是有利的。将不同视点编码为分离的流可以允许编码视频的更高效的流传输,因为将仅需要传递向用户显示的特定视点的流。如果用户浏览全向视频,则可以找回不同视点流。

图18描绘了全向视频的视点编码。如图所示,全向视频1800被编码以提供多个不同的视点1802、1804、1806。每个视点流被编码到不同的时间块1808中。在不同的剪辑起始时间块处,不同视点的流传输可以在彼此之间切换。然而,如图所示,如果每个剪辑起始块是5秒长,则视点之间的切换可能花费最多5秒就能够正确地解码新视点。编码的时间块形成2d高速缓存方案,其允许高速缓存针对不同视点的不同时间块。

如下面进一步描述的,可以针对每个视点编码附加流。视点被编码为包括具有i帧、p帧和b帧的附加流,其允许智能汇编器在在视点之间切换时快速恢复解码流。

图19描绘了用于自适应视点流传输的全向视频的视图的视点编码。如图19所示,对于不同的时间剪辑,初始视点流1902被进一步编码到附加流1904、1906、1908中。附加流1904、1906、1908将不同的帧编码到i帧、p帧和b帧中。初始流和附加流1910被传递以在任何时间点都允许快速视点切换。

如图19所示,在对一个完整视频流进行编码之后,对若干附加流进行编码。在初始流1902中的gop中的i帧之后的所有帧都被编码为形成流01904的i帧。在流01902中的第一个i帧之后的若干帧被选择并被编码为形成流11904的p帧。在流01902中的第一个i帧之后的若干帧被选择并被编码为形成流21908的b帧。

当通过网络进行流传输时,智能汇编器可以拾取这些i、p、b帧以根据它们的帧依赖性形成标准可解码流,其中这些i、p、b帧的位置在随机访问点(包括)与初始流的下一个gop的i帧之间。该视点编码可以缩短在时间随机访问期间的平均等待时间。结合上述编码不同视点的空间划分特征,可以在全向视频流传输期间实现高空间和时间随机访问能力。

图20描绘了全向视频的自适应视点流传输。如上所述,可以利用数据的附加流对每个视点进行编码,这为全向视频提供了改进的自适应流传输。如图20所示,先前的自适应流传输技术将视频编码成多个不同的质量流2002。不同的质量流允许视频的流传输以适应网络状况。与常规自适应流传输相比,用于全向视点的自适应流传输允许多个视点的自适应流传输。附加流允许视点之间的快速切换。

图21是用于编码和流传输全向视频的系统。该系统被描绘为用于处理全向视频的服务器2100,该全向视频可以从捕获360°视频的视频系统2102中被提供给服务器2100。服务器2100包括用于执行指令的处理单元2104。输入/输出(i/o)接口2106允许附加组件可操作地耦合到处理单元2104。服务器2100还包括用于存储数据和指令的非易失性(nv)存储器2108和诸如ram的用于存储由处理单元2104执行的指令的存储单元2110。存储在存储单元2110中的指令在由处理单元2104执行时,将服务器2100配置成根据上述功能提供全向视频编码功能2112。

编码功能2112包括用于将球形全向视频数据分段和映射2114到多个极点和赤道连接分段的功能。区块堆叠功能2116将所述分段排列到单个帧中以用于后续编码。所述功能还包括roi跟踪功能2118,其跟踪全向视频的帧上的roi。然后,编码功能2120使用堆叠的图像和roi信息来编码视频数据。

以上已经描述了全向视频的编码和流传输。如下面进一步描述的,可以从诸如智能电话的现有设备捕获360°全景视频。

图22a、图22b和图22c描绘了用于捕获全景和/或全向视频的设备。图22a、图22b和图22c各自描绘的设备都包括安装在设备的摄像头上的鱼眼镜头。该鱼眼设备可以与单个移动电话一起使用或与附加的移动电话一起使用。图22a描绘了具有前置摄像头和后置摄像头的单个电话2200a。全景视频捕获设备2202a安装在电话2200a上,并将第一鱼眼镜头2204a放置在前置摄像头上,并将第二鱼眼镜头2206a放置在后置摄像头上。图22b描绘了类似的全景视频捕获设备2202b;然而,设备2202b被设计成用于支撑背对背的两个移动设备2200b-1、2200b-2并且将鱼眼镜头2204b、2204b放置在移动设备的前置摄像头上,而不是将鱼眼镜头放置在前置摄像头和后置摄像头上。图22c描绘了又一设备2202c,其被设计成用于支撑三个移动设备2200c-1、2200c-2、2200c-3。设备2202c支撑三个移动设备并将鱼眼镜头2204c、2206c、2208c布置在设备的前置摄像头上。设备2202a、2202b、2202c允许使用普通移动设备捕获全景视频。每个鱼眼镜头都可以提供180°的视野。

通过利用上述的每个设备,可以同时捕获两个或更多个鱼眼视频流。当从分离的设备捕获视频流时,捕获设备之一充当主捕获设备并且可以与其他设备建立连接以接收视频流,将视频拼接在一起并输出全景视频。当从单个移动设备捕获视频时,由设备的前后摄像头捕获的两个视频流可以由移动设备拼接在一起并流传输出所得到的视频。可替换地,可以在播放器中完成拼接,这适用于低功率捕获设备。在这种情况下,所有捕获设备都会将视频直接流传输给播放器。

图22a、图22b和图22c中描绘的设备可用于在视频聊天系统中流传输全景视频。捕获设备之间以及从捕获设备到播放器的视频流传输过程可以使用实时传输协议来传输实时视频并使用会话描述协议来协商参数。另外,可以将每个帧的时间戳添加到流中以进行同步。

拼接过程可以如下进行:

1、生成拼接模板。在每次重新安装鱼眼镜头时都需要这样做。为每个相机捕获静态照片,并使用类似于sift的算法提取关键点。在匹配来自不同摄像头的关键点之后,可以生成每个摄像头的参数和旋转。关于拼接的更多细节在下面进行描述。

2、帧同步。通过使用每个视频帧的时间戳,每个视频帧都与由其他设备捕获的帧同步。

3、重新映射。通过使用生成的模板(每个摄像头的参数和旋转),可以将来自不同摄像头的每个帧重新映射到球体中。

4、混合。线性或多波段混合算法被用于混合来自不同摄像头的重新映射的帧以产生360度全景帧,该360度全景帧通常被投影到如上描述的矩形图像中。

生成拼接模板在图23a、图23b和图23c中示出。通过使用从鱼眼图像中直接提取的关键点来执行匹配可能产生不良结果,如图23a所示。鱼眼视频2302a、2302b之间的不匹配可能是由于鱼眼镜头的失真效应导致远离图像中心的对象难以通过诸如sift的算法进行识别并且因为大部分图像不重叠。生成拼接模板使用预定义的近似摄像头参数来在提取关键点之前将鱼眼图像重新映射到平坦图像2304a、2304b上,如图23b所示。基于两个或三个摄像头的近似位置,某些区域2306a、2306b处的关键点可以被安全地忽略。在在重新映射的图像2306a、2306b中找到正确匹配之后,然后将那些关键点未映射到初始鱼眼图像2308a、2308b中以计算最终的摄像头参数和旋转,以在捕获的视频之间提供适当的匹配。

生成模板的另一个重要步骤是计算亮度图,如图24a和23b所示。当使用鱼眼镜头时,每个像素的亮度在边界附近变化很大,如图24a所示。通过使用在旋转设备时捕获的多个重叠图像以及来自诸如陀螺仪之类的传感器的位置数据来检测设备的旋转,可以如图24b所示的那样计算为图像中的每个像素提供亮度值的亮度图,并且稍后使用该亮度图来在混合之前校正图像亮度。

拼接过程还可以涉及音频重建。可以重建由不同位置处的若干设备捕获的音频流,以提供立体声音频。

播放器(通常是智能设备或耳机)接收拼接的全景视频(或多个初始视频流,并然后进行拼接)并显示它。用户可以使用播放器中的旋转传感器(例如陀螺仪)来在不同的角度处进行查看。

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