一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种编码和解码立体视频的方法和装置与流程

2022-04-02 06:41:00 来源:中国专利 TAG:


1.本公开总体上涉及三维(3d)场景和立体视频内容领域。本文也在用于在诸如移动设备或头戴式显示器(hmd)的终端用户设备上渲染立体内容的、对表示3d场景的纹理和几何的数据进行编码、格式化和解码的背景中理解。


背景技术:

2.本部分旨在向读者介绍本领域的各个方面,其可以与下面描述和/或要求保护的本公开的各个方面相关。相信本讨论有助于向读者提供背景信息以便于更好地理解本公开的各个方面。因此,应该理解的是这些陈述应该从这个角度来阅读,而不是作为对现有技术的承认。
3.近来,可用的大视场内容(多达360
°
)有所增长。这种内容对在诸如头戴式显示器、智能眼镜、pc屏幕、平板电脑、智能手机等的沉浸式显示设备上观看该内容的用户可能不是完全可见的。这意味着在给定的时刻,用户可能只在观看该内容的一部分。然而,用户通常可以通过诸如移动头部、移动鼠标、触摸屏幕、语音等各种方式在该内容内漫游。通常需要对该内容进行编码和解码。
4.沉浸式视频(也称为360
°
平面视频)允许用户通过围绕静止的视点旋转头部来观看自己周围的一切。旋转只允许3个自由度(3dof)的体验。即使3dof视频对于第一次全方向视频体验来说是足够的,例如使用头戴式显示设备(hmd),对于期望更多自由的观看者来说3dof视频可能很快会变得令人沮丧,例如通过体验到视差。此外,3dof还可能导致头晕,因为用户绝不仅仅旋转他的头部,而且还会在三个方向上平移他的头部,这种平移在3dof视频体验中不会再现。
5.大视场内容尤其可以是三维计算机图形图像场景(3d cgi场景)、点云或沉浸式视频。许多术语可以用来指代这种沉浸式视频:例如,虚拟现实(vr)、360、全景、4π球面度、沉浸式、全方向或大视场。
6.立体视频(也称为6自由度(6dof)视频)是3dof视频的替代物。观看6dof视频时,除了旋转外,用户还可以在观看的内容内平移他的头部以及甚至他的身体,并体验视差以及甚至立体。这种视频显著增加沉浸感和对场景深度的感知,并通过在平移头部期间提供一致的视觉反馈来防止头晕。该内容由允许同时记录感兴趣场景的颜色和深度的专用传感器来创建。对结合摄影测量技术的彩色相机平台的使用是执行这种记录的一种方式,即使技术困难仍然存在。
7.虽然3dof视频包括对纹理图像进行解映射而产生的图像序列(例如,根据纬度/经度投影映射或等矩形投影映射编码的球形图像),但6dof视频帧嵌入来自一些视点的信息。它们可以被视为由三维捕获而产生的点云的时间序列。根据观看条件,可以考虑两种立体视频。第一种(即完整的6dof)允许在视频内容中完全自由地漫游,而第二种(又名:3dof )将用户视图空间限制在称为观看边界框的有限立体内,允许有限的头部平移和视差体验。第二种情景是自由漫游和坐着的观众的被动观看条件之间的有价值的权衡。
8.编码立体视频的技术方法是基于将3d场景投影到被称为补片的多个2d图片上,这些补片被打包成可以使用传统视频编码标准(例如,hevc)进行进一步压缩的图集。这些补片按照给定布局的组织被打包在一个图集中。图集与描述其布局的元数据相关联地被编码在数据流中;这是对图集中每个补片的位置、形状和大小的描述。这些元数据具有不可忽略的大小,因为图集可能包括数百个补片。为了限制布局元数据的大小,一种方法在于对给定数量的、对应于对相同数量的连续3d场景立体序列进行投影的连续图集使用相同的布局。该数量被选为吻合所选编解码器的图像组(gop)中的帧数,例如8或12。即使将布局元数据的数量除以该数量,这些数据的大小仍然重要。缺少一种在不降低编码序列质量的前提下,减小对立体视频进行基于图集的编码中布局数据的大小的技术。


技术实现要素:

9.下面给出了本公开的简化概述,以提供对公开的一些方面的基本理解。该概述不是对本公开的广泛概述。它并不旨在确定本公开的关键或重要要素。以下概述仅仅以简化的形式呈现了本公开的一些方面,作为下面提供的更详细描述的序言。
10.本公开涉及一种方法,该方法包括获取3d场景的第一序列的第一图集布局。图集布局定义图集内至少一个补片的组织,图集是打包相同3d场景的至少一个补片的图像。补片是表示3d场景的一部分在图像平面上的投影的图像,因此3d场景的部分的不同投影提供补片集。这些补片集被打包在称为图集的更大的图像中。它们的图集内的补片的组织称为图集布局。该方法还包括获取3d场景的第二序列的第二图集布局。该第二序列是将要编码的3d场景序列的下一个3d场景附加其上的该第一序列。如果该第二图集布局的补片的数量大于该第一图集布局的补片的数量的情况下,则然后根据第一图集布局为该3d场景的第一序列生成图集。否则,该方法在第一和第二布局中选择布局,并根据选择的布局为3d场景的第二序列生成图集。
11.在特定实施例中,当第二图集布局的补片数量小于或等于第一图集布局的补片数量时,迭代获取图集布局的步骤,3d场景的第一序列成为前一迭代的3d场景的第二序列。迭代时,该方法在每次迭代时存储获取的第一图集布局。当迭代结束时,从存储的布局中选择一个布局,并且根据所选的图集布局生成3d场景的最后第一序列的图集。在一种变型中,给定的数量被设置为根据相同的图集布局生成的图集的最大数量。在这种情况下,当第二序列包括多于3d场景的给定数量时,该方法的迭代结束。
12.根据特定实施例,选择布局是基于率失真优化标准来执行的。根据特定实施例,生成的图集序列被编码为视频数据流中的一个帧内周期。
13.本公开还涉及一种设备,该设备包括存储指令的存储器,以使处理器实现该方法的步骤。本公开还涉及由该设备生成的视频数据流。
附图说明
14.通过阅读以下描述,将更好地理解本公开,并且其他特定特征和优点将显现出来,该描述参考了附图,其中:
15.图1示出了根据本公开的非限制性实施例的对象的三维(3d)模型以及对应于该3d模型的点云的点;
16.图2示出了根据本公开的非限制性实施例的对表示3d场景序列的数据进行编码、传输和解码的非限制性示例;
17.图3示出了根据本公开的非限制性实施例的可以被配置为实现结合图8描述的方法的设备的示例架构;
18.图4示出了根据本公开的非限制性实施例的、当通过基于分组的传输协议发送数据时流的语法的实施例的示例;
19.图5示出了根据本公开的非限制性实施例的、具有示例的4个投影中心的补片图集方法;
20.图6示出了根据本公开的非限制性实施例的、包括3d场景的点的纹理信息的图集的示例;
21.图7示出了根据本公开的非限制性实施例的、包括图6中的3d场景的点的深度信息的图集的示例;
22.图8示出了根据本公开的非限制性实施例的、对数据流中的3d场景序列进行编码的方法80;
23.图9示出了根据本公开的非限制性实施例的、不同寿命的图集布局的帧内周期的示例结构。
具体实施方式
24.下文将参考在其中示出了本公开的示例的附图更全面地描述本公开。然而,本公开可以以多种替代形式来体现,并且不应被解释为限于本文阐述的示例。因此,尽管本公开易于进行各种修改和替代形式,但是其具体示例在附图中以示例的方式示出,并将在本文详细描述。然而,应当理解,并不打算将本公开限制于所公开的特定形式,相反,本公开覆盖了落入由权利要求所限定的本公开的精神和范围内的所有修改方案、等同方案和替代方案。
25.本文使用的术语仅仅是为了描述特定的示例,而不是为了限制本公开。如本文所使用的,除非上下文清楚地另行指出,单数形式“一个(a)”、“一个(an)”和“该(the)”、“本(the)”旨在也包括复数形式。将进一步理解,当在本说明书中使用时,术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”和/或“包括(including)”特指存在所陈述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合。此外,当一个元件被称为“响应”或“连接”到另一个元件时,它可以直接响应或连接到另一个元件,或者可以存在中间元件。相反,当一个元件被称为“直接响应”或“直接连接”到其他元件时,不存在中间元件。如本文所使用的,术语“和/或”包括一个或多个的相关列出的条目的任何和所有组合,并且可以缩写为“/”。
26.应当理解,尽管本文可以用术语第一、第二等描述各种元件,但是这些元件不应该被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。例如,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件,而不脱离本公开的教导。
27.尽管一些图包括通信路径上的箭头以示出通信的主要方向,但是应当理解,通信可以在与所示箭头相反的方向上发生。
28.关于框图和操作流程图描述了一些示例,其中每个框表示包括用于实现指定逻辑功能的一个或多个可执行指令的电路元件、模块或代码的部分。还应该注意的是,在其他实现方式中,框中所述的功能可以不按所述的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以实质上同时执行,或者这些框有时可以以相反的顺序执行。
29.这里提到的“根据示例”或“在示例中”意味着结合示例描述的特定特征、结构或特性可以被包括在本公开的至少一个实现方式中。本说明书中不同地方出现的短语“根据示例”或“在示例中”不一定都指同一示例,也不一定是与其他示例相互排斥的单独或替代示例。
30.权利要求中出现的附图标记仅仅是为了说明,其对权利要求的范围没有限制作用。虽然没有明确描述,但是本示例和变型可以以任何组合或子组合来实施。
31.根据本公开,本文公开了以基于图集的格式对立体视频进行编码和解码的方法和设备。3d场景被投影到被称为补片的多个2d图片上,这些补片根据布局被打包成图集。根据本公开,组织图集中的补片的相同布局被用于对连续3d场景序列进行编码的、不同数量的连续图集。
32.图1示出对象的三维(3d)模型10以及对应于3d模型10的点云11的点。3d模型10和点云11可以例如对应于包括其他对象的3d场景中的对象的可能3d表示形式。模型10可以是3d网格表示形式,而点云11的点可以是网格的顶点。点云11的点也可以是散布在网格的面的表面上的点。模型10也可以表示为点云11的展开版本,模型10的表面通过展开点云11的点来创建。模型10可以由许多不同的表示形式来表示,例如体素或样条。图1示出了这样的事实,即点云可以用3d对象的表面表示形式来定义,并且3d对象的表面表示可以从点云生成。如本文所使用的,将3d对象的点(通过3d场景的扩展点)投影到图像上等同于投影该3d对象的任何表示形式,例如点云、网格、样条模型或体素模型。
33.例如,点云可以在存储器中表示为基于向量的结构,其中每个点在视点的参考系中具有其自己的坐标(例如,三维坐标xyz,或者从视点/到视点的立体角和距离(也称为深度))以及一个或多个属性,也称为分量。分量的一个示例是可以在各种颜色空间中表示的颜色分量,例如rgb(红色、绿色和蓝色)或yuv(y是亮度分量,uv是两个色度分量)。点云是包括对象的3d场景的表示形式。可以从给定的视点或视点范围观看3d场景。点云可以通过多种方式获取,例如:
34.·
从由相机平台拍摄的真实物体的捕获中,可选地通过深度主动感测设备补充;
35.·
从由建模工具中的虚拟相机平台拍摄的虚拟/合成对象的捕获中;
36.·
从真实和虚拟对象的混合中。
37.图2示出对表示3d场景序列的数据进行编码、传输和解码的非限制性示例。例如,编码格式可以同时兼容3dof、3dof 和6dof解码。
38.获取3d场景序列20。正如图片序列是2d视频,3d场景序列是3d(也称为立体)视频。3d场景序列可以被提供给立体视频渲染设备以进行3dof、3dof 和6dof渲染和显示。
39.3d场景序列20被提供给编码器21。编码器21将一个3d场景或3d场景序列作为输入,并提供表示该输入的比特流。该比特流可以存储在存储器22中和/或电子数据介质上,并且可以在网络22上发送。解码器23可以从存储器22读取和/或从网络22接收表示3d场景序列的比特流。所述比特流输入解码器23,并且解码器23提供例如点云格式的3d场景序列。
40.编码器21可以包括实现一些步骤的一些电路。在第一步骤中,编码器21将每个3d场景投影到至少一个2d图片上。3d投影是将三维点映射到二维平面的任何方法。由于大多数当前显示图形数据的方法是基于平面(来自一些位平面的像素信息)二维媒介,对这种类型的投影的使用是广泛的,特别是在计算机图形、工程和制图中。投影电路211为3d场景序列20提供至少一个二维帧2111。帧2111包括表示投影到帧2111上的3d场景的颜色信息和深度信息。在一种变型中,颜色信息和深度信息被编码在两个单独的帧2111和2112中。
41.元数据212由投影电路211使用和更新。元数据212包括关于投影操作(例如投影参数)以及关于如参考图5至7所述的、颜色和深度信息在帧2111和2112内组织的方式的信息。根据本公开,3d场景被投影到被称为补片的多个2d图片上,这些补片被打包成图集。组织图集中的补片的相同布局被用于对连续3d场景序列进行编码的、不同数量的连续图集。
42.视频编码电路213将帧2111和2112的序列编码为视频。视频编码器213将3d场景2111和2112的图片(或3d场景的图片序列)编码在流中。然后,视频数据和元数据212被数据封装电路214封装在数据流中。
43.例如,编码器213是符合如下的编码器:
[0044]-jpeg,规范iso/cei 10918-1uit-t推荐t.81,https://www.itu.int/rec/t-rec-t.81/en;
[0045]-avc,也称为mpeg-4avc或h264。在uit-t h.264和iso/ceimpeg-4第10部分(iso/cei 14496-10)都有规定,http://www.itu.int/rec/t-rec-h.264/en,hevc(其规范在itu网站-t推荐-h系列-h265上找到,http://www.itu.int/rec/t-rec-h.265-201612-i/en);
[0046]-3d-hevc(hevc的扩展,其规范在itu网站-t推荐-h系列-h265上找到,http://www.itu.int/rec/t-rec-h.265-201612-i/en annex g and i);
[0047]-google开发的vp9;或者
[0048]-开放媒体联盟(alliance for open media)开发的av1(ao媒体视频1)。
[0049]
数据流存储在例如由解码器23通过网络22可访问的存储器中。解码器23包括实现不同解码步骤的不同电路。解码器23将由编码器21生成的数据流作为输入,并提供要由立体视频显示设备(如头戴式设备(hmd))渲染和显示的3d场景序列24。解码器23从源22处获取该流。例如,源22属于包括以下的集合:
[0050]-本地存储器,例如视频存储器或ram(或随机存取存储器)、闪存、rom(或只读存储器)、硬盘;
[0051]-存储接口,例如大容量存储器、ram、闪存、rom、光盘或磁性载体的接口;
[0052]-通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(例如ieee 802.11接口或蓝牙接口);以及
[0053]-使得用户能够输入数据的诸如图形用户界面的用户界面。
[0054]
解码器23包括用于提取被编码在数据流中的数据的电路234。电路234将数据流作为输入,并提供对应于被编码在流中的元数据212的元数据232和二维视频。该视频由提供帧序列的视频解码器233解码。解码的帧包括颜色和深度信息。在一个变型中,视频解码器233提供两个帧序列,一个包括颜色信息,另一个包括深度信息。电路231使用元数据232以从解码的帧中解投影颜色和深度信息,进而提供3d场景序列24。3d场景序列24对应于3d场景序列20,可能会损失与编码为2d视频和视频压缩相关的精度。
[0055]
图3示出了可以被配置为实现结合图8描述的方法的设备30的示例架构。图2的编码器21和/或解码器23可以实现这种架构。可选地,编码器21和/或解码器23的每个电路可以是根据图3的架构的、例如经由它们的总线31和/或经由i/o接口36链接在一起的设备。
[0056]
设备30包括由数据和地址总线31链接在一起的如下元件:
[0057]-微处理器32(或cpu),其例如是dsp(或数字信号处理器);
[0058]-rom(只读存储器)33;
[0059]-ram(随机存取存储器);
[0060]-存储接口35;
[0061]-用于从应用程序接收要传输的数据的i/o接口36;以及
[0062]-电源,例如电池。
[0063]
根据一个示例,电源在设备外部。在每个提到的存储器中,本说明书中使用的词“寄存器”可以对应于小容量的区域(一些位)或非常大的区域(例如,整个程序或大量接收的或解码的数据)。rom 33至少包括程序和参数。rom33可以存储算法和指令以执行根据本公开的技术。当开启时,cpu 32将程序加载到ram中并执行相应的指令。
[0064]
ram 34包括寄存器中的由cpu 32执行并在设备30开启后上传的程序、寄存器中的输入数据、寄存器中的该方法的不同状态的中间数据以及寄存器中用于执行该方法的其他变量。
[0065]
本文描述的实现方式可以在例如方法或流程、装置、计算机程序产品、数据流或信号中实现。即使仅在单一实现形式的上下文中讨论(例如,仅作为方法或设备讨论),所讨论的特征的实现方式也可以以其他形式实现(例如,程序)。装置可以以例如适当的硬件、软件和固件来实现。方法可以在例如诸如处理器的装置中实现,处理器通常指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,例如计算机、蜂窝电话、便携式/个人数字助理(“pdas”)以及促进终端用户之间信息通信的其他设备。
[0066]
根据示例,设备30被配置为实现结合图8描述的方法,并且属于包括以下的集合:
[0067]-移动设备;
[0068]-通讯设备;
[0069]-游戏设备;
[0070]-平板(或平板电脑);
[0071]-笔记本电脑;
[0072]-静止图片相机;
[0073]-视频相机;
[0074]-编码芯片;
[0075]-服务器(例如广播服务器、视频点播服务器或网络服务器)。
[0076]
图4示出了当通过基于分组的传输协议发送数据时流的语法的实施例的示例。图4示出了立体视频流的示例结构4。该结构包括在以独立的语法元素来组织流的容器中。该结构可以包括头部41,其是流的每个语法元素共有的一组数据。例如,头部包括一些关于语法元素的元数据,描述了每个语法元素的性质和作用。头部还可以包括图2的元数据212的一部分,例如用于将3d场景的点投影到帧2111和2112上的中心视点的坐标。该结构包括包括语法元素42和至少一个语法元素43的有效载荷。语法元素42包括表示颜色和深度帧的数
据。图像可能已经根据视频压缩方法进行了压缩。
[0077]
语法元素43是数据流的有效载荷的一部分,并且可以包括关于语法元素42的帧如何被编码的元数据,例如用于将3d场景的点投影和打包到帧上的参数。此元数据可以与视频的每一帧或帧组(在视频压缩标准中也称为图片组(gop))相关联。
[0078]
图5示出了具有示例的4个投影中心的补片图集方法。3d场景50包括一个人物。例如,投影中心51是透视相机,且相机53是正交相机。相机也可以是具有例如球面映射(例如等矩形映射)或立方体映射的全向相机。根据在元数据的投影数据中描述的投影操作,将3d场景的3d点投影到与位于投影中心的虚拟相机相关联的2d平面上。在图5的示例中,由相机51捕获的点的投影根据透视映射被映射到补片52上,并且由相机53捕获的点的投影根据正交映射被映射到补片54上。
[0079]
投影的像素的聚类产生多个2d补片,这些补片被打包在矩形图集55中。对图集内的补片进行组织定义了图集布局。在一个实施例中,两个图集具有相同的布局:一个针对纹理(即颜色)信息,一个针对深度信息。由同一个相机或两个不同的相机捕获的两个补片可以包括表示3d场景的相同部分的信息,例如补片54和56。
[0080]
打包操作为每个生成的补片生成一个补片数据。补片数据包括对投影数据的援引(例如投影数据表中的索引或指向投影数据的指针(即存储器或数据流中的地址))和描述该补片在图集内的位置和大小的信息(例如左上角坐标、大小和像素宽度)。补片数据各项被添加到元数据中,以与一个或两个图集的压缩数据相关联地封装在数据流中。在本说明书中补片数据项的集合也被称为布局元数据。
[0081]
图6示出了根据本公开的非限制性实施例的、包括3d场景的点的纹理信息(例如,rgb数据或yuv数据)的图集60的示例。如关于图5所阐述的,图集是打包补片的图像,补片是通过投影3d场景的一部分点而获取的图片。图集的布局是描述图集内补片的位置、形状和大小的元数据。在一个实施例中,补片的形状默认为矩形,因此没有描述形状,此信息可以在布局元数据中省略。在此实施例中,位置可以是以图集中的像素为单位的补片矩形的左上坐标,并且其大小可以由以像素为单位的宽度和高度来描述。在一种变型中,以对应于三维空间的立体角的、指向投影中心的、包括投影到该补片上的点的弧度来描述补片的大小。在其他实施例中,分片是例如用可缩放矢量图形(svg)指令来描述的椭圆和/或多边形。
[0082]
在图6的示例中,图集60包括第一部分61和一个或多个第二部分62,第一部分61包括从视点可见的3d场景的点的纹理信息。第一部分61的纹理信息可以例如根据等矩形投影映射获取,等矩形投影映射是球面投影映射的一个示例。在图6的示例中,第二部分62被布置在第一部分61的左右边界处,但是第二部分可以被不同地布置。第二部分62包括与从视点可见的部分互补的3d场景的部分的纹理信息。第二部分可以通过从3d场景中移除从第一视点可见的点(其纹理存储在第一部分中)并通过根据相同的视点投影剩余的点来获取。后一过程可以反复重复,以每次获取3d场景的隐藏部分。根据一种变型,可以通过从3d场景中移除从视点(例如中心视点)可见的点(其纹理存储在第一部分中),并通过根据不同于第一视点的视点(例如从以中心视点为中心的视图空间(例如,三维渲染的视图空间)的一个或多个第二视点)投影剩余的点来获取第二部分。
[0083]
第一部分61可以被视为第一大纹理补片(对应于3d场景的第一部分),且第二部分62包括较小的纹理补片(对应于与第一部分互补的、3d场景的第二部分)。此图集具有同时
与3dof渲染(当仅渲染第一部分61时)和3dof /6dof渲染兼容的优点。
[0084]
图7示出了根据本公开的非限制性实施例的、包括图6中的3d场景的点的深度信息的图集70的示例。图集70可以被视为对应于图6的纹理图像60的深度图像。
[0085]
图集70包括第一部分71和一个或多个第二部分72,第一部分71包括从中心视点可见的3d场景的点的深度信息。图集70可以以与图集60相同的方式获取,但是包含的是与3d场景的点相关联的深度信息,而不是纹理信息。
[0086]
对于3d场景的3dof渲染,只考虑一个视点(通常是中心视点)。用户可以围绕第一视点以三个自由度旋转他的头部来观看3d场景的各个部分,但是用户不能移动这个唯一的视点。要编码的场景点是从这个唯一的视点可见的点,并且对于3dof渲染只需要编码/解码纹理信息。对于3dof渲染,不需要对从这个唯一的视点不可见的场景点进行编码,因为用户无法访问它们。
[0087]
对于6dof渲染,用户可以移动场景中所有地方的视点。在这种情况下,需要在比特流中对场景的每个点(深度和纹理)进行编码,因为每个点都有可能由能够移动他/她的视点的用户访问。在编码阶段,没有办法先验地知道用户将从哪个视点观察3d场景。
[0088]
对于3dof 渲染,用户可以在围绕中心视点的有限空间内移动视点。这使得能够体验视差。表示从视图空间的任何点可见的场景部分的数据将要被编码到流中,包括表示根据中心视点可见的3d场景的数据(即,第一部分61和71)。视图空间的大小和形状可以例如在编码步骤中决定和确定,并编码在比特流中。解码器可以从比特流中获取此信息,并且渲染器将视图空间限制为由获取的信息确定的空间。根据另一个示例,渲染器根据硬件约束(例如与检测用户移动的传感器的能力相关)来确定视图空间。在这种情况下,如果在编码阶段,从渲染器的视图空间内的点可见的点没有被编码在比特流中,则该点将不会被渲染。根据另一示例,表示3d场景的每个点的数据(例如,纹理和/或几何)被编码在流中,而不考虑视图的渲染空间。为了优化流的大小,可以仅对场景的点的子集(例如根据视图的渲染空间可见的点的子集)进行编码。
[0089]
图5的投影表面的参数可能随时间频繁变化,以便适应3d场景序列之间的姿态和几何变化。这些参数由投影算法选为要遵守的功能标准,例如投影的信息中的补片数量或冗余率。从一个3d场景到序列中的其后继场景,这些参数可能会变化进而导致补片的数量和/或大小的修改以及暂时修改图集结构和相关的布局元数据。为了限制这些变化,投影参数按每n个(通常n等于8)连续帧中的小的固定长度分割来评估。因此,发送的解投影参数,包括布局元数据(即补片数据项)每n帧定期更新。此外,由深度和纹理补片图集的序列组成的、视频流的编码结构被相应地调整为具有对齐的固定大小、n帧长度、封闭的gop。这样,通过在每个视频内容变化时重置时间预测(即,补片图集结构更新,其在图集视频中创建“场景剪切”),编码效率得以优化。这种每n帧在固定时刻更新投影表面参数的方法在传输比特率方面是次优的,因为给定的投影表面(因此图集布局)可以在更长的持续时间内有效。若场景的3d几何变化不太快:
[0090]
·
通过避免对解投影参数的不必要更新,可以来降低元数据比特率;
[0091]
·
通过避免过于频繁的不必要场景变化(对应于图集结构更新)并相应地调整编码参数,可以显著提高投影的深度和纹理图集的视频压缩效率。
[0092]
根据本公开,不是对最适合于n个连续点云的固定长度组的、基于补片的投影表面
的参数进行评估(并因此确定n个连续图集的图集布局),而是根据场景几何的时间演变,连续帧的数量n随时间变化。
[0093]
图8示出了根据本公开的非限制性实施例的、对数据流中的3d场景序列进行编码的方法80。
[0094]
在步骤81,从源获取数据。例如,获取3d场景系列。初始化变量。特别地,选择连续3d场景的第一序列。对于被选来要对表示3d场景的图集进行编码的编解码器,第一序列的大小n可以被设置为gop的大小,例如对于hevc,n=8。最大的大小也可以初始化。因此,第一序列的3d场景从索引i到索引i n-1,其中i是第一序列的第一3d场景的索引。为了本说明书的清楚起见,索引n被初始化为0。
[0095]
在步骤82,根据已知方法为第一序列构建图集布局。如图5所示,通过将3d场景的点投影到投影表面上来生成补片集合。补片按照相同的布局打包在n个图集中。每个图集中打包的补片数量称为布局的大小。所获取的布局存储在存储器中索引为n的表s中。在步骤83,n递增。通过将序列的i n个场景附加到第一序列来构建3d场景的第二序列。也就是说,即将到来的3d场景被添加到第一序列以形成第二序列。n也递增。在步骤84,为第二序列构建新的图集布局。第二个布局存储在索引为n(其已递增)的布局表中。
[0096]
在步骤85,将第二布局s[n]的大小与第一布局s[n-1]的大小进行比较。如果第二布局的补片数量小于或等于第一布局的补片数量,则该方法在步骤83迭代。n和n递增,第二序列成为第一序列,并且通过将下一个3d场景附加到新的第一序列来建立新的第二序列。为这个新的第二序列构建图集布局并存储在表s中。当s[n]的大小小于或等于s[n-1]时,该方法迭代。在一种变型中,当第二序列包括超过给定数量的3d场景的数量时,例如9、10、128、256或512,迭代结束。这个给定数量可以根据被选来要对图集进行编码的编解码器的最大帧内周期大小来定义。
[0097]
在步骤86,表格s包括n 1个布局。最后一个(即为最后一个第二序列构建的布局)被移除,因为它的补片数量超过第一个第一布局的补片数量(或者因为在一个变型中存储的布局的数量超过最大帧内周期大小)。这些布局中的一个被选来用于为最后第一个序列生成n图集。所选的布局可能是最后一个或存储在表中的布局。在另一个实施例中,当已经评估了n多个连续布局{s[k]},k∈[1,k]时,该方法选择生成具有最佳压缩属性的纹理和深度图集视频的补片的图集布局。首先,对于每个计算的图集布局,验证来自最终点云分割[1,n]的所有点是否可以与其补片中的一个配对,从而产生一组有效的候选补片集{s[k]},k∈[1,k'],k'≤k。然后,对于每个候选补片集,用相同的编码参数(即,在单个gop中)对3d场景的每个递增序列的深度和纹理图集视频进行编码,并选择具有最佳压缩属性的补片集。只考虑比特率并选择产生最小压缩的图集文件大小r的补片集。在变型中,采用由方程1所描述的选择最小化失真度d的图集布局s*、使用的比特数r约束于约束rc的率失真优化(rdo;如g.sullivan和t.wiegand“视频压缩的率失真优化”中)方法。
[0098]
方程1约束于r《rc[0099]
此优化任务可以使用拉格朗日优化(lagrangian optimization)来解决,其中失真项相对于如方程2中的率项进行加权。
[0100]
方程2
[0101]
对于拉格朗日系数λ的一个给定值,方程2的每个解是对于给定约束rc的方程1的解。
[0102]
因此需要失真度d。基于用户视点上的渲染图像的基于图像的标准是优于压缩点云的点对点失真,因为更接近用户体验。更准确地说,像素对像素的距离度量在立体视频压缩之前和之后的渲染帧之间被评估,并在属于预定义的视点路径的那些帧上被平均。在其他变型中,可以根据必须保证或优化的视频流属性来考虑其他标准。
[0103]
方法80的伪代码可以是:
[0104]
[0105][0106]
由上述投影方法生成的深度和纹理图集视频可以以任何传统的视频编码标准化方法进行编码,例如hevc。然而,这些图集视频具有其生成过程所固有的特定属性:在两次图集结构更新之间,视频内容在时间上高度相关,因为帧由相同的补片布局(例如矩形)组成,包括深度或纹理的部分投影。对一组新的3d场景输入的图集布局更新打破了时间一致性,并可以被描述为“场景切割”。通过相应地设置适当的编码参数,可以利用这种特性来优化压缩效率。
[0107]
被编码图片的不同类型的通常时间组织是基于图片组(gop)的。通常,一个gop是8图片长。一个帧内周期通常由一些gop组成。
[0108]
为了受益于图集视频中帧的时间可预测性,根据本公开的方法将可变的gop和帧内周期结构与图集更新对齐,新的帧内周期在每次图集更新时开始。
[0109]
图9示出了不同寿命n的图集布局的帧内周期的示例结构。在该示例中,帧内周期从第一个固定大小的k图片长的gop开始。例如,k等于8或10。(|n/k|-1)固定大小的gop紧随其后。帧内周期的最后一个gop具有以固定大小为模的缩短长度n。在图9的示例中,一个gop包含8个图片。第一帧内周期93包含8个图集的第一gop 91和3个图集的缩短gop 92。gop 92已经被缩短,因为将下一个图集附加到这个序列会增加补片的数量,并因此修改了布局。图9示出了另一个帧内周期96,其包括八个图片的两个gop 94和95。在这个阶段,帧内周期96还没有结束,并将至少接收另一个可能会缩短的gop。
[0110]
这种结构可以被嵌入到isobmmf语法的通用元素中,例如,以发送根据本公开描述的不同持续时间的解投影参数元数据。给定的基于补片的投影表面的解投影参数(包括具有其特征的补片列表(即补片数据项)和相关的打包补片的图集(布局元数据))被定义为具有结构化样本格式的元数据样本。解投影元数据样本被放置在定时元数据轨道中,具有不同持续时间的样本。深度和纹理的基于图集的投影的两个视频轨道被组合在一个轨道组中。解投影元数据轨道通过轨道参数(即,具有

cdtg’轨道参数)链接到投影的视频轨道组。
[0111]
与相关视频样本的持续时间不匹配的定时元数据样本的持续时间、投影的深度/纹理视频帧和在渲染端相关的解投影元数据的同步通过解析样本解码时间来解决。
[0112]
这里描述的实现方式可以在例如方法或过程、装置、计算机程序产品、数据流或信号中实现。即使仅在单一实现形式的上下文中讨论(例如,仅作为方法或设备讨论),所讨论的特征的实现也可以以其他形式实现(例如,程序)。装置可以用例如适当的硬件、软件和固件来实现。这些方法可以在例如诸如处理器的装置中实现,处理器通常指包括例如计算机、微处理器、集成电路或可编程逻辑设备的处理设备。处理器还包括通信设备,例如智能手机、平板电脑、计算机、移动电话、便携式/个人数字助理(“pdas”)以及促进终端用户之间信息通信的其他设备。
[0113]
本文描述的各种过程和特征的实现方式可以体现在各种不同的设备或应用中,特别是例如与数据编码、数据解码、视图生成、纹理处理以及图像和相关纹理信息和/或深度信息的其他处理相关联的设备或应用。这种设备的示例包括编码器、解码器、处理解码器的输出的后处理器、向编码器提供输入的前处理器、视频编码器、视频解码器、视频编解码器、网络服务器、机顶盒、膝上型电脑、个人计算机、蜂窝电话、pda以及其他通信设备。应该清楚的是,设备可以是移动的,甚至可以安装在移动车辆中。
[0114]
此外,这些方法可以通过由处理器执行的指令来实现,并且这样的指令(和/或由实现方式产生的数据值)可以存储在处理器可读介质上,例如集成电路、软件载体或其他存储设备,例如硬盘、光盘(“cd”)、光盘(例如dvd,通常称为数字多功能盘或数字视频盘)、随机存取存储器(“ram”)或只读存储器(“rom”)。指令可以形成有形地包含在处理器可读介质上的应用程序。指令可以在例如硬件、固件、软件或其组合中。指令可以在例如操作系统、单独的应用程序或两者的组合中找到。因此,处理器可以被表征为例如被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(例如存储设备)的设备。此外,除了指令之外或者代替指令,处理器可读介质可以存储由实现方式产生的数据值。
[0115]
对于本领域技术人员来说显而易见的是,实现方式可以产生各种信号,这些信号被格式化以携带例如可以被存储或发送的信息。该信息可以包括例如用于执行方法的指令,或者由所描述的实现方式之一产生的数据。例如,信号可以被格式化为携带用于写入或读取所描述的实施例的语法的规则作为数据,或者携带由所描述的实施例写入的实际语法值作为数据。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括,例如,编码数据流和用编码的数据流调制载波。信号携带的信息可以是例如模拟或数字信息。众所周知,信号可以通过各种不同的有线或无线链路传输。该信号可以存储在处理器可读介质上。
[0116]
已经描述了许多实现方式。然而,应当理解,可以进行各种修改。例如,不同实现的元素可以被组合、补充、修改或移除以产生其他实现方式。此外,本领域普通技术人员将理解,可以用其他结构和过程来代替所公开的那些结构和过程,并且所得到的实现方式将以至少基本相同的方式执行至少基本相同的功能,以实现与所公开的实现方式至少基本相同的结果。因此,本技术考虑了这些和其他实现方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献