使用区域自适应平滑的360度视频的编码转让专利

申请号 : CN201580062009.8

文献号 : CN107113414B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J.弗顿金国鑫J.威尔金森A.迪克森M.布达加维A.萨克塞纳

申请人 : 三星电子株式会社

摘要 :

一种用于区域自适应平滑的视频处理单元和方法。图像处理单元包括存储器和一个或多个处理器。一个或多个处理器可操作地连接到存储器,并且被配置成将多个视频帧一起缝合成视频的多个等矩形映射帧。一个或多个处理器被配置成:为视频的等矩形映射帧中的每一个定义顶部区域和底部区域;对视频的等矩形映射帧中的每一个的顶部区域和底部区域执行平滑处理;并且编码视频的经平滑的等矩形映射帧。

权利要求 :

1.一种电子设备,包括:

存储器;以及

可操作地连接到存储器的一个或多个处理器,一个或多个处理器被配置成:获得视频帧的多个图像;

通过缝合所述多个图像来获得单个图像;

识别被等矩形映射的单个图像的顶部区域和底部区域;

通过对顶部区域和底部区域执行平滑处理来获得结果图像;并且编码所述结果图像,

其中,所述平滑处理被执行以通过降低顶部区域和底部区域的分辨率来减少与所述顶部区域和底部区域对应的比特的数量。

2.如权利要求1所述的电子设备,其中,所述一个或多个处理器被进一步配置成确定平滑的强度以用于控制要减少的比特的数量,以及其中,所述平滑的强度基于在顶部区域或底部区域中的行中的像素数量和虚拟球体的对应部分的像素数量之间的比率来确定。

3.如权利要求1所述的电子设备,其中,为了执行平滑处理,所述一个或多个处理器被进一步被配置成改变用于编码的量化参数。

4.如权利要求1所述的电子设备,其中,高斯滤波器被用于平滑处理,其中,高斯滤波器被计算为以下的函数:以及

其中,σ2是高斯滤波器的方差,y是在-1和1之间的归一化行号,以及K是任意变量。

5.如权利要求1所述的电子设备,其中,所述一个或多个处理器被进一步配置成对所述单个图像的左边区域和右边区域执行平滑操作。

6.如权利要求1所述的电子设备,其中,所述一个或多个处理器被进一步配置成:对所述单个图像的多个角区域执行平滑操作。

7.如权利要求1所述的电子设备,其中,顶部区域和底部区域是不对称的。

8.如权利要求1所述的电子设备,进一步包括:被配置成发送元数据的收发器,所述元数据包括:包含顶部区域和底部区域的边界框坐标的第一信息,包含滤波类型、滤波强度以及是使用固定还是使用可变平滑的第二信息。

9.如权利要求1所述的电子设备,其中,所述一个或多个处理器被进一步配置成:对所述单个图像的顶部区域和底部区域执行挤压处理。

10.如权利要求1所述的电子设备,其中,所述一个或多个处理器被配置成:通过执行等距离映射获得与所述单个图像对应的翘曲平面;

获得翘曲平面的第一像素的位置被改变的第一值;并且通过使用所述值来估计所述翘曲平面的第二像素的位置被改变的第二值。

11.一种电子设备,包括:

接收器,被配置成从另一电子设备接收数据;和一个或多个处理器,被配置成:

通过解码所述数据来获得视频帧;以及将所述视频帧渲染成球体形状,

其中,所述视频帧是通过对被等矩形映射的单个图像的顶部区域和底部区域执行平滑处理而获得的,其中,所述单个图像是通过缝合多个图像而获得的,以及其中,所述平滑处理被执行以通过降低顶部区域和底部区域的分辨率来减少与所述顶部区域和底部区域对应的比特的数量。

12.如权利要求11所述的电子设备,其中,所述一个或多个处理器被进一步配置成对顶部区域和底部区域执行增强技术,以及其中,所述增强技术包括边缘增强或反向滤波中的至少一个。

13.如权利要求11所述的电子设备,其中,其中,所述接收器被进一步配置成接收视频帧的元数据,以及其中,所述元数据包括:包含顶部区域和底部区域的边界框坐标的第一信息,包含滤波类型、滤波强度以及是使用固定平滑还是使用可变平滑的第二信息。

14.如权利要求13所述的电子设备,其中,所述一个或多个处理器被进一步配置成:基于第一信息来识别顶部区域或底部区域。

15.如权利要求13所述的电子设备,其中,所述一个或多个处理器被进一步配置成:基于第二信息来识别平滑技术。

16.一种用于操作电子设备的方法,所述方法包括:获得视频帧的多个图像;

通过缝合所述多个图像来获得单个图像;

识别被等矩形映射的单个图像的顶部区域和底部区域;

通过对顶部区域和底部区域执行平滑处理来获得结果图像;并且编码所述结果图像,

其中,所述平滑处理被执行以通过降低顶部区域和底部区域的分辨率来减少与所述顶部区域和底部区域对应的比特的数量。

17.如权利要求16所述的方法,还包括:确定平滑的强度以用于控制要减少的比特的数量,其中,所述平滑的强度基于在顶部区域或底部区域中的行中的像素数量和虚拟球体的对应部分的像素数量之间的比率来确定。

18.如权利要求16所述的方法,其中,执行平滑处理包括改变用于编码的量化参数。

19.如权利要求16所述的方法,其中,高斯滤波器被用于平滑处理,其中,高斯滤波器被计算为以下的函数:以及

其中,σ2是高斯滤波器的方差,y是在-1和1之间的归一化行号,以及K是任意变量。

20.如权利要求16所述的方法,还包括:对所述单个图像的左边区域和右边区域执行平滑操作。

21.如权利要求16所述的方法,还包括:对所述单个图像的多个角区域执行平滑操作。

22.如权利要求16所述的方法,其中,顶部区域和底部区域是不对称的。

23.如权利要求16所述的方法,还包括:发送元数据,所述元数据包括:包含顶部区域和底部区域的边界框坐标的第一信息,包含滤波类型、滤波强度以及是使用固定还是使用可变平滑的第二信息。

24.如权利要求16所述的方法,还包括:对所述单个图像的顶部区域和底部区域执行挤压处理。

25.如权利要求16所述的方法,还包括:通过执行等距离映射获得与所述单个图像对应的翘曲平面;

获得翘曲平面的第一像素的位置被改变的第一值;并且通过使用所述值来估计所述翘曲平面的第二像素的位置被改变的第二值。

26.一种用于操作电子设备的方法,所述方法包括:从另一电子设备接收数据;

通过解码所述数据来获得视频帧;并且将所述视频帧渲染成球体形状,

其中,所述视频帧是通过对被等矩形映射的单个图像的顶部区域和底部区域执行平滑处理而获得的,其中,所述单个图像是通过缝合多个图像而获得的,以及其中,所述平滑处理被执行以通过降低顶部区域和底部区域的分辨率来减少与所述顶部区域和底部区域对应的比特的数量。

27.如权利要求26所述的方法,还包括:对顶部区域和底部区域执行增强技术,其中,所述增强技术包括边缘增强或反向滤波中的至少一个。

28.如权利要求26所述的方法,还包括:接收视频帧的元数据,

其中,所述元数据包括:包含顶部区域和底部区域的边界框坐标的第一信息,包含滤波类型、滤波强度以及是使用固定平滑还是使用可变平滑的第二信息。

29.如权利要求28所述的方法,还包括:基于第一信息来识别顶部区域或底部区域。

30.如权利要求28所述的方法,还包括:基于第二信息来识别平滑技术。

说明书 :

使用区域自适应平滑的360度视频的编码

技术领域

[0001] 本申请通常涉及生成视频数据,并且更具体地涉及使用区域自适应平滑的360度视频的编码。

背景技术

[0002] 360度视频是使用诸如GearVR之类的设备体验沉浸式视频的新方式。通过捕获世界的360度视图,360度视频使得消费者能够沉浸式“现实生活”、“在线(being there)”体验。用户可以改变他们的视点,并且动态地查看他们期望的捕获的场景的任何部分。由于支持更宽的视野所需的增大的视频分辨率(4K及更高),所以360度视频要求比常规视频高的比特率。比特率增加是向消费者提供高质量360度沉浸式视频查看体验的限制因素。
[0003] 因此,比特率要求也更高,迫使需要有效率的压缩。360度视频具有可以被利用来改善压缩效率的独特特性。由于视频中存在翘曲(warping),视频中的运动经常是非平移的(non-translational)。

发明内容

[0004] 解决方案
[0005] 本公开的实施例提供使用用于360度视频的区域自适应平滑以及运动估计和补偿的360度视频的编码。
[0006] 在一个实施例中,提供一种能够进行区域自适应平滑的视频处理单元。图像处理单元包括存储器和一个或多个处理器。一个或多个处理器可操作地连接到存储器,并且被配置成将多个视频帧一起缝合成视频的多个等矩形映射帧。一个或多个处理器被配置成:为视频的等矩形映射帧中的每一个定义顶部区域和底部区域;对视频的等矩形映射帧中的每一个的顶部区域和底部区域执行平滑处理;并且编码视频的经平滑的等矩形映射帧。
[0007] 在另一个实施例中,提供一种能够进行区域自适应平滑的视频处理单元。图像处理单元包括接收器和一个或多个处理器。接收器被配置成接收视频的平滑的等矩形映射帧和元数据。一个或多个处理器被配置成:沿着视频的平滑的等矩形映射帧的外部边界解码跨平滑区域平滑的视频的平滑的等矩形映射帧;在平滑区域上执行增强技术,并且将视频的等矩形映射帧中的每一个再现成球体形状。
[0008] 在又一个实施例中,提供一种用于区域自适应平滑的方法。该方法包括:分别将多个视频帧缝合成视频的等矩形映射帧;为视频的等矩形映射帧中的每一个定义顶部区域和底部区域;对视频的等矩形映射帧中的每一个的顶部区域和底部区域执行平滑处理;并且编码视频的经平滑的等矩形映射帧。
[0009] 在进行下面的详细描述之前,阐述在整个本专利文件中使用的某些单词和短语的定义可能是有利的。术语“耦合”及其派生词是指在两个或更多个元件之间的任何直接或间接通信,不管这些元件是否彼此物理接触。术语“发送”、“接收”和“通信”以及其派生词包括直接和间接通信两者。术语“包括”和“包含”以及其派生词意为包括而没有限制。术语“或”是包含性的,意为和/或。短语“与……相关联”以及其派生词意为包括、被包括在……内、与……互联、包含、被包含在……内、连接到……或与……连接、耦合到……或与……耦合、可与……通信、与……合作、交织、并列、接近……、被绑定到……或与……绑定、具有、具有……的属性、和或与……具有关系等等。术语“控制器”意为控制至少一个操作的任何设备、系统或其部件,这样的设备可以硬件或者硬件和软件和/或固件的组合来实现。与任何特定控制器相关联的功能性可以是集中的或分布式的,不管是本地还是远程。当与项目列表一起使用时,短语“……中的至少一个”意为可使用列出的项目中的一个或多个的不同组合,并且可需要列表中的仅仅一个项目。例如,“A、B和C中的至少一个”包括以下任何组合:A、B、C,A和B,A和C,B和C,以及A和B和C。

附图说明

[0010] 为了更全面地理解本公开及其优点,现在参考下面结合附图进行的描述,其中相同的附图标记表示相同的部件:
[0011] 图1图示根据本公开的各种实施例的示例性计算系统;
[0012] 图2和图3图示根据本公开的各种实施例的在计算系统中的示例性设备;
[0013] 图4图示根据本公开的各种实施例的360度视频处理链;
[0014] 图5A、5B、5C和5D图示根据本公开的各种实施例的缝合和等矩形映射的示例;
[0015] 图6图示根据本公开的各种实施例的在矩形平地(plain)与翘曲平地之间的等距离映射;
[0016] 图7A图示根据本公开的各种实施例的在映射之后的翘曲的效果;
[0017] 图7B图示根据本公开的各种实施例的在映射之前的翘曲的效果;
[0018] 图8A图示根据本公开的各种实施例的运动估计;
[0019] 图8B图示根据本公开的各种实施例的翘曲运动估计;
[0020] 图9A图示根据本公开的各种实施例的由帧fj中的像素920插值900映射像素915;
[0021] 图9B图示根据本公开的各种实施例的插值技术;
[0022] 图9C图示根据本公开的各种实施例的运动矢量预测器补偿(MVPC);
[0023] 图10图示根据本公开的各种实施例的RDO搜索中的附加翘曲模式;
[0024] 图11图示根据本公开的各种实施例的具有这样的区域自适应平滑的360度视频处理过程;
[0025] 图12A图示根据本公开的各种实施例的具有半径为1的归一化的球体,该球体用于导出用于计算作为图像行号y的函数的高斯平滑滤波器的方差的启发法;
[0026] 图12B图示根据本公开的实施例的对于等于3的K,σ2如何随归一化的图像行号(归一化为在是图像底部的-1到是图像顶部的+1之间)变化;
[0027] 图13图示根据本公开的各种实施例的用于使用区域自适应平滑的360度视频的编码的过程;
[0028] 图14图示根据本公开的各种实施例的用于使用用于区域自适应平滑的强度的行位置的360度视频的编码的过程;
[0029] 图15图示根据本公开的各种实施例的360度视频处理链;
[0030] 图16A和16B图示根据本公开的各种实施例的替代平滑区域;以及
[0031] 图17图示根据本公开的各种实施例的挤压等矩形映射帧的顶部区域和底部区域。

具体实施方式

[0032] 以下讨论的图1至17以及用于描述本专利文档中的本公开的原理的各种实施例仅仅通过说明的方式,并且不应当以任何方式解释为限制该公开的范围。本领域技术人员将理解:可以任何适当布置的系统实现本公开的原理。
[0033] 以下文档和标准描述由此被并入到本公开中,如同本文中完全阐述的:
[0034] [1]M.Narroschke和R.Swoboda,“Extending HEVC by an affine motion model”,321-324页,IEEE Picture Coding Symposium,2013。
[0035] [2]J.Zheng等人,“Adaptive selection of motion models for panoramic video”,1319-1322页,IEEE International Conference on Multimedia and Expo,2007。
[0036] 可以使用诸如[1]和[2]之类的使用复杂运动模型来编码视频的在先技术。然而,这些技术的缺点是:它们需要对视频解码架构进行修改,并且因此在现有设备上不能得到支持。
[0037] 通过翘曲和缝合来自覆盖360度世界的多个相机的图像来创建360度视频。然后将缝合的图像等矩形地(equirectangularly)映射成二维(2D)矩形图像,该二维矩形图像然后使用诸如H.264/AVC和HEVC/H.265之类的标准视频编解码器来编码。在重放期间,可以流式传输或下载和解码压缩的视频。在解码之后,视频是映射到3D图形环境中的虚拟球体上的纹理,同时观众位于虚拟球体的中心。观众可以在虚拟球体内部导航,以查看他/她期望的360度世界的视图,并且从而体验沉浸式体验。等矩形映射的特性是:当与虚拟球体上的实际区域比较时,顶部和底部视图占据2D缝合的图像中的较大数量的像素。该公开利用等矩形映射的这个特性来提供比特率节省。本公开在编码之前平滑视频的顶部和底部区域。由于缝合的图片的顶部和底部部分中的像素具有比感知显著高的分辨率,因此平滑不会导致感知质量降级。然而,由于平滑区域要求较少的待发送的变换系数,其导致比特率节省。
本公开中的平滑可以是固定的或变化的,这取决于2D图像的区域。本公开的方法可以实现高达20%的节省。平滑是编码侧的预处理步骤,并且不取决于编解码器的类型;因此其可以使用现有的编解码器来容易地得到支持。
[0038] 本公开还涉及新类型的视频序列,即对于其翘曲和缝合全景场景的多个视图的360度视频序列。360度视频序列在虚拟现实(VR)设备中有许多应用。为了有效率地发送360视频序列,不单独发送多视图序列。相反,存储由矩形帧组成的翘曲和缝合版本。诸如HEVC和H.264/AVC之类的最新水平的视频编码技术可以没有完全利用翘曲图像空间的特性。特别地,在常规视频序列中,运动估计在视频编解码器中提供显著的压缩增益。然而,在翘曲空间中,待运动估计的对象,例如像素的块将变形。因而,应当重新设计运动估计技术以符合翘曲空间。
[0039] 在高效率视频编码(HEVC)标准中,在帧间预测过程中存在三个模式。在跳过模式中,不发送变换系数,并且将编码单元(CU)表示为预测单元(PU),并且通过合并模式获得参数。在合并模式中,从相邻的PU推断当前PU参数。并且正常的帧间预测模式,其中运动参数被计算和发信号通知。
[0040] 在运动矢量预测中,空间和时间相邻的PU运动矢量用于预测当前PU运动矢量。
[0041] 图1图示根据本公开的示例性计算系统100。图1中所示的计算系统100的实施例仅仅用于说明。可使用计算系统100的其它实施例而不会脱离本公开的范围。
[0042] 如图1中所示,系统100包括有助于系统100中的各种组件之间的通信的网络102。例如,网络102可在网络地址之间传送因特网协议(IP)分组、帧中继帧、异步传输模式(ATM)单元或者其它信息。网络102可包括一个或多个局域网(LAN)、城域网(MAN)、广域网(WAN)、诸如因特网之类的全球网络的全部或一部分、或者在一个或多个位置处的一个或多个任何其它通信系统。
[0043] 网络102有助于至少一个服务器104与各种客户端设备106-114之间的通信。每个服务器104包括可以为一个或多个客户端设备提供计算服务的任何合适的计算或处理设备。例如,每个服务器104可能包括一个或多个处理设备、存储指令和数据的一个或多个存储器以及促进通过网络102的通信的一个或多个网络接口。
[0044] 每个客户端设备106-114表示通过网络102与至少一个服务器或一个或多个其它计算设备交互的任何合适的计算或处理设备。在该示例中,客户端设备106-114包括台式电脑106、移动电话机或智能手机108、个人数字助理(PDA)110、膝上型电脑112和平板电脑114。然而,可在计算系统100中使用任何其它或附加的客户端设备。
[0045] 在该示例中,一些客户端设备108-114与网络102间接通信。例如,客户端设备108-110经由诸如蜂窝基站或eNB之类的一个或多个基站116通信。此外,客户端设备112-114经由诸如IEEE 802.11无线接入点之类的一个或多个无线接入点118通信。注意:这些仅仅用于说明,并且每个客户端设备可与网络102直接通信或经由一个或多个任何合适的中间设备或一个或多个网络与网络102间接通信。
[0046] 在该说明性实施例中,计算系统100使用用于360度视频的区域自适应平滑以及运动估计和补偿来提供对360度视频的编码,如将在下面更详细讨论的。例如,服务器104可使用用于360度视频的区域自适应平滑以及运动估计和补偿来提供对360度视频的编码。类似地,客户端设备108-114可通过网络102从服务器104接收编码的图像或视频,并使用用于360度视频的区域自适应平滑以及运动估计和补偿来解码360度视频。
[0047] 虽然图1图示计算系统100的一个示例,但是可对图1进行各种改变。例如,系统100可包括任何合适布置中的任何数量的每个组件。通常,计算和通信系统具有各种各样的配置,并且图1不将本公开的范围限制成任何特定的配置。虽然图1图示其中可以使用在该专利文档中公开的各种特征的一个操作环境,但是这些特征可用于任何其它合适的系统中。
[0048] 图2和图3图示根据本公开的在计算系统中的示例性设备。特别地,图2图示示例性服务器200,并且图3图示示例性客户端设备300。服务器200可表示图1中的服务器104,并且客户端设备300可表示图1中的客户端设备106-114中的一个或多个。
[0049] 如图2中所示,服务器200包括总线系统205,该总线系统205支持在一个或多个处理器210、至少一个存储设备215、至少一个通信单元220和至少一个输入/输出(I/O)单元225之间的通信。
[0050] 一个或多个处理器210执行可被加载到存储器230中的指令。一个或多个处理器210可包括任何合适布置的任何适当的一个或多个数量和一个或多个类型的处理器或其它设备。一个或多个处理器210的示例性类型包括微处理器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和分立线路。一个或多个处理器210被配置成执行用认证的可穿戴设备解锁电子设备的操作。
[0051] 存储器230和持久存储器235是存储设备215的示例,该示例表示能够存储和有助于信息(诸如数据、程序代码和/或在临时或永久基础上的其它合适的信息)的检索的任何一个或多个结构。存储器230可表示随机存取存储器或任何其它合适的一个或多个易失性或非易失性存储设备。持久存储器235可包含支持长期数据存储的一个或多个组件或设备,诸如只读存储器、硬盘驱动器、闪速存储器或光盘。
[0052] 通信单元220支持与其它系统或设备的通信。例如,通信单元220可包括有助于通过网络102通信的网络接口卡或无线收发器。通信单元220可支持通过任何合适的一个或多个物理或无线通信链路的通信。
[0053] I/O单元225允许数据的输入和输出。例如,I/O单元225可通过键盘、鼠标、小键盘、触摸屏或其它合适的输入设备来为用户输入提供连接。I/O单元225还可向显示器、打印机或其它合适的输出设备发送输出。
[0054] 在该说明性实施例中,服务器200可实现图像处理单元,该图像处理单元使用用于360度视频的区域自适应平滑以及运动估计和补偿来提供对360度视频的编码,如下面将更详细地讨论的。注意:虽然将图2被描述为表示图1的服务器104,但是可能在客户端设备
106-114中的一个或多个中使用相同或相似的结构。例如,膝上型电脑或台式电脑可具有与图2中所示的相同或相似的结构。
[0055] 如图3中所示,客户端设备300包括天线305、射频(RF)收发器310、发送(TX)处理线路315、麦克风320和接收(RX)处理线路325。客户端设备300还包括扬声器330、一个或多个处理器340、输入/输出(I/O)接口(IF)345、触摸屏350、显示器355和存储器360。存储器360包括基本操作系统(OS)程序361和一个或多个应用程序362。
[0056] RF收发器310从天线305接收由系统中的另一个组件发送的传入的RF信号。RF收发器310下变频传入的RF信号以生成中频(IF)或基带信号。IF或基带信号被发送到RX处理线路325,RX处理线路325通过滤波、解码和/或数字化基带或IF信号来生成处理的基带信号。RX处理线路325将处理的基带信号发送给扬声器330(诸如用于语音数据)或给一个或多个处理器340以用于进一步处理(诸如用于web浏览数据)。
[0057] TX处理线路315从麦克风320接收模拟或数字语音数据,或从一个或多个处理器340接收其它传出的基带数据(诸如web数据、电子邮件或交互式视频游戏数据)。TX处理线路315编码、复用和/或数字化传出的基带数据以生成处理的基带或IF信号。RF收发器310从TX处理线路315接收传出的处理的基带或IF信号,并将基带或IF信号上变频为经由天线305发送的RF信号。
[0058] 一个或多个处理器340可以包括一个或多个处理器或其它处理设备,并且执行存储在存储器360中的基本OS程序361以便控制客户端设备300的整体操作。例如,一个或多个处理器340可根据公知原理控制通过RF收发器310、RX处理线路325和TX处理线路315的前向信道信号的接收和反向信道信号的发送。在一些实施例中,一个或多个处理器340包括至少一个微处理器或微控制器。
[0059] 一个或多个处理器340还能够执行驻留在存储器360中的其它进程和程序,诸如用于用认证的可穿戴设备解锁电子设备的操作。一个或多个处理器340可以按照执行过程要求将数据移入到存储器360中或从存储器360移出。在一些实施例中,一个或多个处理器340被配置成基于OS程序361或响应于从外部设备或操作者接收的信号来执行应用程序362。一个或多个处理器340还耦合到I/O接口345,该I/O接口345向客户端设备300提供连接到诸如膝上型电脑和手持式计算机之类的其它设备的能力。I/O接口345是这些附件与一个或多个处理器340之间的通信路径。
[0060] 一个或多个处理器340还耦合到触摸屏350和显示单元355。客户端设备300的操作者可以使用触摸屏350来将数据输入到客户端设备300中。显示器355可以是液晶显示器或能够再现诸如来自网站的文本和/或至少有限的图形的其它显示器。
[0061] 存储器360耦合到一个或多个处理器340。存储器360的部分可包括随机存取存储器(RAM),并且存储器360的另一个部分可包括闪速存储器或其它只读存储器(ROM)。
[0062] 如下面将更详细地讨论的,在该说明性实施例中,客户端设备300实现图像处理单元,该图像处理单元通过网络102从服务器104接收编码的图像或视频并使用用于360度视频的区域自适应平滑以及运动估计和补偿来解码360度视频。虽然图2和图3图示计算系统中的设备的示例,但是可对图2和图3进行各种改变。例如,可能组合、进一步细分或省略图2和图3中的各种组件,并且可能根据具体需要添加附加组件。作为特定示例,一个或多个处理器340可能被划分为多个处理器,诸如一个或多个中央处理单元(CPU)和一个或多个图形处理单元(GPU)。此外,虽然图3图示被配置为移动电话机或智能手机的客户端设备300,但是客户端设备可被配置成作为其它类型的移动或静止设备操作。另外,与计算和通信网络一样,客户端设备和服务器可具有各种各样的配置,并且图2和3不将本公开限制成任何特定的客户端设备或服务器。
[0063] 图4图示从捕获405到图像缝合和等矩形映射410、到视频编码415、到视频解码420以及再现425的360度视频处理链400。世界的360度视图一般通过使用多个相机来捕获。图4的捕获405示出其中使用七个相机的示例。五个相机覆盖前面、后面和侧面,一个相机在顶部,并且一个相机在底部。来自多个相机的图像被对齐、缝合在一起,并且被等矩形地映射410到单个图像中。
[0064] 图5A-5D图示缝合和等矩形映射510的示例。图5A图示来自七个相机的馈送到缝合处理的七个图像500。这些输入通过使用具有122.6度的水平视野和94.4度的垂直视野的宽眼镜头来模拟对棋盘图像的捕获而生成。图5B图示对应的缝合的图像505。顶部和底部棋盘图案分别来自顶部和底部相机。图5A中的七个图像中的每一个的尺寸是1920×1440。图5B中的缝合的图像505的尺寸是4096×2048。
[0065] 通过使用诸如H.264/AVC和HEVC/H.265之类的标准视频编解码器,缝合处理的输出处的360度视频被编码为常规的2D视频。在重放期间,可以流式传输或下载和解码压缩的视频。在解码之后,视频是下述纹理,该纹理被映射到3D图形环境中的虚拟球510上,如图5C中所图示,同时观众位于虚拟球510的中心。当图5B中的视频用360度视频观众查看时,用户得到站立在具有五堵墙以及天花板和地板的房间中的感知。图5D是已经被包括在图中以帮助理解该感知的360度视频观众的输出515的屏幕捕获。
[0066] 另一个观察是:当与前、后和侧视图相比时,顶部和底部视图在360度缝合的图像中占据较大数量的像素。比较图5B和图5C是显然的,其中所有的视图覆盖球体上大致相等的区域。该观察是等矩形映射的特性,并且还存在于将地球(球体)的表面映射到2D表面(地图)的世界地图。在世界地图中,极地附近的大陆块看起来比赤道附近的大陆块大得多。本公开利用等矩形映射的该特性来提供比特率节省,在编码之前平滑视频的顶部和底部区域。由于缝合的图片的顶部和底部部分中的像素具有比感知显著的大的分辨率,所以平滑不会导致感知质量降级。然而,平滑导致比特率节省,这是由于平滑区域要求发送较少的变换系数。
[0067] 图6图示在矩形平地605与翘曲平地610之间的等距离映射600。矩形平地605以x和y为单位。翘曲平地610以u和v为单位。
[0068] 鱼眼透镜中的翘曲是从矩形平面到翘曲平面610的非线性映射。存在表示映射的各种模型,并且在那些之中,等距离映射是最常见的。
[0069] r=fθ,(等式1)
[0070] 而如在图1中举例说明的,θ是矩形平面605中的点s(x,y)到平面中心615(x0,y0)的角度。映射结果r是翘曲平面P中的映射点p(u,v)到翘曲平面中心615(u0,v0)之间的距离。
[0071] 映 射 过 程 被 描 述 如 下 。假 设 d 是 s 到 ( x 0 ,y 0) 之 间的 距 离 :角度将是θ=arctan(d/f)。翘曲距离则是r=farctan(d/f)。假
设S中的(x,y)到P中的(u,v)之间的同类关系:
[0072]
[0073] 映射被写为:
[0074]
[0075] 和
[0076]
[0077] 从翘曲平面615,P到矩形平面610,S的逆映射可以被类似地导出(x,y)=iT(u,v):
[0078]
[0079]
[0080]
[0081] 和
[0082]
[0083] 图7A图示在映射之后翘曲的效果700,并且图7B图示在映射之前翘曲的效果705。映射的特性:应用翘曲越多,点离中心越远。
[0084] 图8A图示翘曲运动估计800,其中当前帧815fi中的PU 810正在从具有与当前PU 810相同形状的先前编码和重构的帧825fj寻找预测候选块820。参考帧索引j和运动矢量Δ将被编码为运动估计参数。
[0085] 图8B图示翘曲运动估计805。在矩形空间中,像素p1移动到p2的位置,则PU中的所有其它像素将用相同的MV移动,即:
[0086] Δ=s2–s1=s4–s3  (等式9)
[0087] 然而,在翘曲平面中将不维持相同的运动关系。如果翘曲平面中的矩形块用不等于零的运动矢量δ移动,则矩形块内的像素的位置将不再维持与其它像素相同的相对位置。如图8B中所举例说明的,如果p1移动到p2的位置,则其中p3移动到的位置将不是p3+p2-p1。然而,应当在未翘曲平面中维持相同的运动关系。结果,应当进行中间映射和插值。
[0088] 翘曲运动估计问题是:假设帧fi中的由翘曲视频序列中的左上像素p1指示的PU,如果p1移动到其它帧fj中p2的位置,则PU中的另一个像素p3将移动到什么位置(即,p4的位置是什么)?
[0089] 通过在未翘曲平面中假设相同的运动关系,中间映射830用于计算矩形平面中的p4的位置并将其映射回到翘曲平面。从矩形平面S到翘曲平面P的映射由p=T(s)表示,并且逆映射由s=T(p)表示:
[0090] s1=iT(p1),s2=iT(p2),s3=iT(p3)  (等式10)
[0091] Δ=s2–s1  (等式11)
[0092] s4=s3+Δ  (等式12)
[0093] p4=T(s1)=T(s3+Δ)=T(iT(p3)+iT(p1+δ)-iT(p1))  (等式13)
[0094] 图9A图示由帧fj 925中的像素920插值900映射像素915。一旦使用中间映射获得在运动之后的所有像素位置,在那些位置处的像素的值应当由插值技术来确定。
[0095] 本发明中可能的实施例使用用于Luma分量的双线性插值和色度分量的最近邻插值。原型实验示出在Luma分量中使用双线性插值比使用最近邻插值更先进。参考图9B,两种插值技术被描述如下:
[0096] 通过中间映射找到的像素位置(x,y)必须驻留在像素网格上的4个相邻像素之间的单元中。假设 和 分别是(x,y)的整数部分。t2=x-xi和t1=y-yi是坐标差。最近邻插值通过I(x,y)=I(网格上的最近点到x,y)找到(x,y)的值,而双线性插值通过以下找到(x,y)的值:
[0097] I(x,y)=(1-t1)I(x,yi)+t1I(x,yi+1)  (等式14)
[0098] I(x,yi)=(1-t2)I(xi,yi)+t2I(xi+1,yi)  (等式15)
[0099] I(x,yi+1)=(1-t2)I(xi,yi+1)+t2I(xi+1,yi+1)  (等式16)
[0100] 在插值之后,插值像素值是当前PU的预测。
[0101] 图9C图示根据本公开的各种实施例的运动矢量预测器补偿(MVPC)910。在帧间预测技术中,重新使用和编码当前PU运动矢量到相邻PU的运动矢量之一之间的差的运动矢量预测对于利用空间相干性具有大的优势。然而,在翘曲平面中,由于PU位置的差,不应当直接使用相邻PU的运动矢量,而是添加补偿。
[0102] 如图9C中所图示,MVPC要求当前PU2知道参考PU1的偏移τ以及PU1的运动矢量δ2。因而运动矢量预测为δ2加MVPCγ,其中未翘曲平面中的相同运动关系被再访问。
[0103] s1=iT(p1),s2=iT(p2)  (等式17)
[0104] p2=p1+τ  (等式18)
[0105] p4=p2+δ2,δ2=p4–p2  (等式19)
[0106] Δ2=s4–s2=iT(p4)-iT(p2)  (等式20)
[0107] s3=s1+Δ2=s1+iT(p2+δ2)-iT(p2)  (等式21)
[0108] δ1=p3–p1=T(iT(p1)+iT(p2+δ2)-iT(p2))-p1  (等式22)
[0109] γ=δ1–δ2=T(iT(p1)+iT(p2+δ2)-iT(p2))-p1–p4+p2
[0110] =T(iT(p1)+iT(p1+τ+δ2)-iT(p1+τ))-p1–δ2  (等式23)
[0111] 图10图示根据本公开的各种实施例的RDO搜索1005中的附加翘曲模式1000。在某些实施例中,在传统的帧间预测技术上添加翘曲运动估计模式(包括MVPC)。
[0112] 在这种情况下,必须编码附加开销以指示额外翘曲模式。两个编码方案被示在表1中。
[0113] 表1:开销编码
[0114]
[0115] 查找表用于减少计算表。显著地影响翘曲的复杂性的两个方面是映射函数和距离计算。平地中心与网格上的像素之间的距离对于所有帧可不改变,因此距离被预先计算并存储到与视频帧相同尺寸的2D阵列。
[0116] 在映射函数中,最昂贵的计算是得到tan()和arctan()的值。在某些实施例中,用有限的精度量化和存储这些值。例如,两个邻近像素之间的距离是一(归一化)。因而两个距离之间的最小非零差是:
[0117]
[0118] 其中 是对角像素的距离,1是邻近像素的距离,f是以像素为单位的焦距,而4表示运动估计中的最小分数1/4。前向映射的量化值为:
[0119] tan(x),其中
[0120] 并且逆映射的值为:
[0121] arctan(x),其中x=0,λ,2λ,…,π  (等式26)
[0122] 表2:在HM14(具有禁用的分数运动估计)到作为额外模式(提出的)的翘曲运动估计之间的低延迟P配置中的BD速率比较。负值意为增益。前7行是在编码之前被下采样和翘曲的自然序列。最后3行是模拟的全局运动(具有n像素/帧的运动速度)并且被翘曲。
[0123]
[0124] 图11图示根据本公开的各种实施例的用这样的区域自适应平滑1115的360度视频处理过程1100。
[0125] 捕获1105获取来自七个不同相机的图像。来自七个相机的图像1110以2D图案来排序。图像缝合和等矩形映射1110获取图像并将它们组合成等矩形地图1120。
[0126] 区域自适应平滑1125是在编码侧的预处理步骤,并且不取决于编解码器的类型,因此其可以使用现有的编解码器来容易地得到支持。
[0127] 为了测试平滑的影响,7×7高斯滤波器(具有方差5)用于平滑表3中列出的11个不同的360度视频。使用x264(具有QP=27的随机存取设置)平滑和编码顶部和底部pSmooth(平滑的图像的顶部区域1130和底部区域1135的百分比)、视频序列中所有图像的百分比以确定比特率节省。还使用GEARVR正式地查看对应于Subway、Zoo和DragonRide2的具有和不具有平滑的比特流,以确定感知质量降级开始变得可见的pSmooth值。Subway和Zoo序列是自然序列,而DragonRide2是计算机生成的动画。对于自然视频序列,感知质量降级在等于20%的pSmooth时开始变得稍微值得注意,而对于计算机生成的动画,感知质量降级在等于
15%的pSmooth时开始变得稍微值得注意。对于非正式查看的其它视频序列,该观察概略地保持。以下表3示出pSmooth的比特率节省等于25%和15%。可以看到:用本区域自适应平滑技术实现在4%到22%范围中的比特率节省。
[0128] 表3:
[0129]
[0130]
[0131] 一旦等矩形映射图像1115被平滑,等矩形映射图像1115就被编码1140以用于传输。等矩形映射图像1115被解码器接收并被解码1145。一旦等矩形映射图像1115被解码,图像处理单元就将等矩形映射图像1115再现成球体1155。球体1155然后被观众1160使用以看到3D图像或视频1165。
[0132] 从图5B的另一个观察是:朝着图像的顶部和底部将图像伸展得更大,允许在图像的顶部和底部的平滑程度增加,而不增加感知损失。通过增加靠近图像的顶部和底部的高斯平滑滤波器的方差来控制平滑程度。图12A图示具有半径为1的归一化的球体,该球体用于导出用于计算作为图像行号y的函数的高斯平滑滤波器的方差的启发法。在图像行号y处,球体上图像的固有分辨率与x成正比,即 随着y增加到顶极,x保持降低(类似地,随着y降低到底极,x保持降低)。然而,等矩形映射仍然使用图像的完整宽度来表示该分辨率。因此,与 成反比例的下列等式用于确定高斯平滑滤波器的方差σ2。
[0133]
[0134] 随着y从零(图像中心)进行到一(图像顶部),σ2从零进行到较大的值,即没有平滑到非常强的平滑。图12B图示对于等于3的K,σ2如何随归一化的图像行号(归一化为在是图像底部的-1到是图像顶部的+1之间)变化。可变平滑用x264来实现。表4示出比表3的对应比特率节省高的对应比特率节省。通过增加K,我们发现由于图像的中心区域被稍微平滑以实现附加比特率节省,所以可变平滑在低比特率下尤其有用,同时使得能够进行速率控制。
[0135] 表4:
[0136]
[0137]
[0138] 图13图示根据本公开的各种实施例的用于使用区域自适应平滑的对360度视频的编码的过程。例如,图13中图示的过程可由图2中的服务器200执行。
[0139] 步骤1305,图像处理单元定义等矩形映射图像的顶部区域和底部区域或者视频的等矩形映射帧中的每一个。顶部区域和底部区域可以是预定义的或者基于诸如区域中的信息量之类的函数。
[0140] 在步骤1310,图像处理单元选择行并确定是否该行在顶部区域或底部区域中。在步骤1315,当行在顶部区域或底部区域中时,图像处理单元对像素的行执行平滑处理。在步骤1320中,图像处理单元确定在等矩形映射图像或者视频的等矩形映射帧的每一个中是否存在任何剩余的行。
[0141] 图14图示根据本公开的各种实施例的用于使用用于区域自适应平滑的强度的行位置的对360度视频的编码的过程。例如,图14中图示的过程可由图2中的服务器200执行。
[0142] 在步骤1405,图像处理单元定义等矩形映射图像的顶部区域和底部区域或者视频的等矩形映射帧中的每一个。顶部区域和底部区域可以是预定义的或者基于诸如区域中的信息量之类的函数。在步骤1410,图像处理单元选择行并确定该行是否在顶部区域或底部区域中。
[0143] 在步骤1415,图像处理单元取决于行位置确定使用的平滑的强度。在等矩形映射图像的顶部和底部的行具有与地图中其它行相同的像素数量,但是表示球体上少得多的数量的像素。因此,当再现球体时,北极和南极包括比实际捕获的多的信息。由于等矩形映射的这种效果,平滑的强度随着行接近等矩形映射图像的顶部和底部而增加。可以基于行中的像素数量与在虚拟球体的对应部分或纬度线中的像素数量之间的比率来确定平滑的强度。
[0144] 在步骤1420,当行在顶部区域或底部区域中时,图像处理单元对像素的行执行平滑处理。在步骤1420,图像处理单元确定在等矩形映射图像或者视频的等矩形映射帧的每一个中是否存在任何剩余的行。
[0145] 图15图示根据本公开的各种实施例的360度视频处理链。除了图11中的处理之外,编码器还向解码器发送平滑元数据1505以用于额外细节增强1510。平滑元数据包括:包含边界框坐标的平滑区域信息以及包含滤波类型、滤波强度的平滑滤波信息以及是使用固定还是可变平滑。发送平滑元数据允许在等矩形映射图像中的更大平滑。细节增强包括诸如边缘增强和反向滤波之类的方法。
[0146] 图16A和16B图示根据本公开的各种实施例的替代平滑区域。连同平滑顶部区域1600和底部区域1605,还可以平滑左边区域1610和右边区域1615。不同的区域可以是不对称的,如在不对称的顶部区域1625和不对称的底部区域1630中。在某些实施例中,以角度平滑角落。替代平滑区域的目的是增加转移的比特率,同时最小化感知损失。
[0147] 图17图示根据本公开的各种实施例的挤压等矩形映射帧1700的顶部区域1705和底部区域1710。
[0148] 因为等矩形映射帧的顶部区域1705和底部区域1710包含比感知显著的高的分辨率,所以可以在编码之前挤压这些区域以减少待发送的变换系数的数量,导致比特率节省。经挤压的等矩形映射帧1715的经挤压的顶部区域1720和经挤压的底部区域1725在被查看时不导致感知质量降级。挤压可以均匀跨顶部区域1705或底部区域1710。例如,图像的前
20%的下采样比可以是均匀的2。挤压也可以是自适应的,这取决于顶部区域1705或底部区域1710的分辨率。例如,如果等矩形帧的前10%包含比等矩形帧1700的10%到20%低的分辨率,前10%可能具有为4的下采样比率,而顶部区域1705的较高分辨率部分可能具有为2的下采样比率2。
[0149] 虽然已经用示范性实施例描述了本公开,但是可向本领域技术人员建议各种改变和修改。意图是本公开包括落在所附权利要求的范围内的这样的改变和修改。