掌桥专利:专业的专利平台
掌桥专利
首页

有长期分块实体存储器的体积视频

文献发布时间:2024-04-18 20:02:18


有长期分块实体存储器的体积视频

1.技术领域

本发明原理总体上涉及三维(3D)场景和作为3D场景序列的体积视频内容的领域。还在编码、格式化和解码表示3D场景的纹理和几何结构的数据的上下文中理解本文档,以在诸如移动设备或头戴式显示器(HMD)的最终用户设备上渲染体积内容。特别地,本文档涉及对3D场景序列的编码,该3D场景序列包括在视频子序列期间为静态的部分。

2.背景技术

本部分旨在向读者介绍本领域的各个方面,这些方面可能与下文描述和/或要求保护的本发明原理的各个方面有关。据信该讨论有助于为读者提供背景信息,以促进更好地理解本发明原理的各个方面。因此,应当理解,这些陈述应当从这个角度来解读,而不是承认现有技术。

最近,可用的大视场内容(高达360°)有所增长。观看沉浸式显示设备(诸如头戴式显示器、智能眼镜、PC屏幕、平板电脑、智能电话等)上的内容的用户可能无法完全看到此类内容。这意味着在给定的时刻,用户只能观看一部分内容。然而,用户通常可通过例如头部移动、鼠标移动、触摸屏、语音以及类似物的各种手段在内容内导航。通常希望对该内容进行编码和解码。

沉浸式视频(也称为360°平面视频)允许用户通过围绕静止视点旋转其头部来观看自己周围的一切。旋转仅允许3自由度(3DoF)体验。即使3DoF视频足以满足第一次全向视频体验(例如,使用头戴式显示器(HMD设备))的要求,但3DoF视频对于期望更多自由(例如,通过体验视差)的观看者可能很快变得令人沮丧。此外,3DoF还可能导致眩晕,因为用户永远不会只旋转其头部,而是还向三个方向平移头部,这些平移不会在3DoF视频体验中再现。

其中,大视场内容可以是三维计算机图形图像场景(3D CGI场景)、点云或沉浸式视频。许多术语可用于设计此类沉浸式视频:例如,虚拟现实(VR)、360、全景、4π球面度、沉浸式、全向或大视场。

体积视频(也称为6自由度(6DoF)视频)是3DoF视频的替代方案。在观看6DoF视频时,除了旋转之外,用户还可以在观看的内容中平移其头部,甚至其身体,并且体验视差甚至体积。这种视频显著增加了沉浸感和对场景深度的感知,并通过在头部平移期间提供一致的视觉反馈来防止眩晕。内容是通过专用传感器创建的,允许同时记录感兴趣场景的颜色和深度。即使仍然存在技术困难,使用结合摄影测量技术的彩色相机装备也是执行这种记录的一种方式。

虽然3DoF视频包括由纹理图像的解映射产生的图像序列(例如,根据纬度/经度投影映射或等角投影映射编码的球面图像),但6DoF视频帧嵌入了来自多个视点的信息。它们可被视为由三维捕获产生的点云的时间序列。根据观看条件可以考虑两种体积视频。第一种(即完整的6DoF)允许在视频内容内完全自由导航,而第二种(又名3DoF+)将用户观看空间限制到称为观看边界框的有限体积,从而允许有限的头部平移和视差体验。该第二种情况是在自由导航和就座观众的被动观看条件之间的有价值的折衷。

在3D场景序列中,常常会找到静态部分,即场景的从序列中的一个3D场景到另一个为相同的对象或区域。通常,地面和背景(例如,当在外部时的建筑物或当在内部时的墙壁)对于体积视频的子序列不改变。这些部分对应于3D场景的物理实体。它们在3D场景的参考系中为静态的。当投影到分块上时,如果相机装备静止,则静态部分产生静态分块,并且如果照明条件不随时间改变,则分块的属性值保持恒定。当相机装备移动时(例如,在行进期间),投影的分块的深度值改变。当照明改变时,这是改变的属性(例如,颜色)。然而,即使在此类情况下,3D场景的静态部分也保持其静态性质。

例如,如果特别地更好地考虑3D场景的静态部分,则通过更好的编码,预期在像素率(即,对3D场景编码所需的像素数量)和比特率(即,压缩之后的比特流大小)有显著增益。缺乏利用3D场景序列的这种性质(静态部分)以用于对体积视频编码、传输和解码的格式。

3.发明内容

以下呈现本发明原理的简化概述,以便提供对本发明原理的一些方面的基本理解。本发明内容不是本发明原理的广泛概述。不旨在识别本发明原理的关键或重要元素。以下发明内容仅以简化形式呈现本发明原理的一些方面,作为下面提供的更详细描述的前言。

本发明原理涉及一种用于渲染3D场景序列中的3D场景的方法。该方法包括:

-从数据流获得第一图集,该第一图集打包用于3D场景的第一分块;

-从本地数据库获得条目,该条目将实体与3D场景的第二分块相关联,该实体是3D场景的一部分;以及

-通过反向投影第一分块和第二分块渲染3D场景。

在实施方案中,该方法进一步包括:

-从数据流获得第二图集,该第二图集打包用于3D场景的分块;

-从数据流获得元数据,该元数据针对3D场景的实体指示一组指令中的指令,该指令包括:

·针对3D场景在本地存储器中创建新条目,该新条目将实体与第二图集的分块子集相关联;

·针对3D场景,用第二图集的分块子集更新本地存储器的将实体与第二分块相关联的条目;以及

·从本地存储器删除将实体与第二分块相关联的条目;

以及在获得条目之前,将在元数据中指示的动作应用于本地存储器。

在另一实施方案中,来自本地数据库的用于3D场景的条目是本地数据库的用于3D场景序列中的先前3D场景的条目。

本发明原理还涉及一种设备,该设备包括与存储器相关联的处理器,该处理器被配置为执行上述方法。

本发明原理还涉及一种用于在数据流中对3D场景序列中的3D场景编码的方法。该方法包括:

-获得3D场景的动态分块;

-在第一图集中打包动态分块;

-获得3D场景的静态分块,该静态分块与3D场景的实体相关联;

-在静态分块与序列中的先前3D场景的静态分块不同的条件下:

·在第二图集中打包静态分块并且生成元数据,该元数据针对3D场景的实体指示用于客户端进行以下操作的指令:

-针对3D场景在本地存储器中创建新条目,该新条目将实体与关联于实体的静态分块相关联;

-针对3D场景,用与实体相关联的静态分块更新本地存储器的将实体与静态分块相关联的条目;或者

-从本地存储器删除将实体与静态分块相关联的条目;

·在数据流中对第一图集、第二图集和元数据编码;

-否则,在数据流中对第一图集编码。

在一个实施方案中,该方法包括,在静态分块与序列中的先前3D场景的静态分块相同的条件下,在第二图集中打包静态分块并且在数据流中对第一图集和第二图集编码。

本发明原理还涉及一种设备,该设备包括与存储器相关联的处理器,该处理器被配置为执行上述方法。

本发明原理还涉及携带以下的数据流或存储以下的非暂态计算机可读介质:

-第一图集,该第一图集打包第一分块;

-第二图集,该第二图集打包第二分块;和

-元数据,针对3D场景的实体,该元数据指示用于客户端进行以下操作的指令:

·针对3D场景在本地存储器中创建新条目,该新条目将实体与关联于实体的静态分块相关联;

·针对3D场景,用与实体相关联的静态分块更新本地存储器的将实体与静态分块相关联的条目;或者

·从本地存储器删除将实体与静态分块相关联的条目;

4.附图说明

将更好地理解本公开,并且在阅读以下描述、参考附图的描述之后,将出现其他特定特征和优点,其中:

-图1示出了根据本发明原理的非限制性实施方案的对象的三维(3D)模型和对应于该3D模型的点云的点;

-图2示出了根据本发明原理的非限制性实施方案的对表示3D场景序列的数据进行编码、传输和解码的非限制性示例;

-图3示出了根据本发明原理的非限制性实施方案的可被配置为实现关于图9和图10描述的方法的设备的示例性架构;

-图4示出了根据本发明原理的非限制性实施方案的当通过基于分组的传输协议传输数据时流的语法的实施方案的示例;

-图5示出了根据本发明原理的非限制性实施方案的以4个投影中心为例的分块图集方法;

-图6示出了3D场景序列在体积视频的三个不同时间的三个3D场景的示例;

-图7描绘了携带两个图集序列的比特流的示例;

-图8a示出了根据第一实施方案的静态图集数据的多比特流封装传输格式;

-图8b示出了根据第二实施方案的静态图集数据的多比特流封装传输格式;

-图9示出了根据本发明原理的非限制性实施方案的用于对3D场景编码的方法;

-图10示出了根据本发明原理的非限制性实施方案的用于从数据流渲染3D场景的方法;

-图11示出了根据本发明原理的非限制性实施方案的采集系统在3D场景的物理世界内移动的情形。

5.具体实施方式

下文将参考附图更全面地描述本发明原理,在该附图中示出了本发明原理的示例。然而,本发明原理可以许多替代形式体现,并且不应被解释为限制于本文阐述的示例。因此,虽然本发明原理易受各种修改和替代形式的影响,但是其具体示例通过附图中的示例示出,并且本文将详细描述。然而,应当理解,不存在将本发明原理限制为所公开的特定形式的意图,但是相反,本公开用于涵盖落入由权利要求书限定的本发明原理的实质和范围内的所有修改、等同物和替代方案。

本文使用的术语仅出于描述特定示例的目的,并且不旨在限制本发明原理。如本文所用,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确说明。将会进一步理解,当用于本说明书时,术语“包括”和/或“包含”指定存在所述特征、整数、步骤、操作、元件和/或分量,但不排除一个或多个其他特征、整数、步骤、操作、元件、分量和/或其组的存在或添加。此外,当元件被称为“响应”或“连接”到另一元件时,它可以直接响应或连接到另一元件,或者可以存在中间元件。相反,当元件被称为“直接响应”或“直接连接”到其他元件时,不存在中间元件。如本文所用,术语“和/或”包括列出的相关联项中的一者或多者的任何和所有组合,并且可以缩写为“/”。

应当理解,尽管在本文中可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本发明原理的教导内容的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。

尽管一些图示包括通信路径上的箭头以显示主通信方向,但是应理解,通信可以在与所描绘箭头相反的方向上发生。

关于其中每个框表示电路元件、模块或代码部分的框图和操作流程图描述了一些示例,该代码部分包括用于实现指定逻辑功能的一个或多个可执行指令。还应当指出的是,在其他具体实施中,框中标注的功能可能不按标注的顺序出现。例如,连续显示的两个框实际上可基本上同时执行,或者这些框有时可根据所涉及的功能以相反的顺序执行。

本文中的“根据一个示例”或“在一个示例中”的参考意味着结合示例描述的特定特征、结构或特性可以包括在本发明原理的至少一个具体实施中。说明书中各个地方的“根据一个示例”或“在一个示例中”的短语的出现不一定全部参考同一示例,也不一定是与其他示例相互排斥的单独的或替代的示例。

在权利要求书中出现的附图标号仅通过说明的方式,并且对权利要求书的范围没有限制作用。虽然未明确描述,但本示例和变型可以任何组合或子组合采用。

图1示出了对象的三维(3D)模型10和对应于3D模型10的点云11的点。3D模型10和点云11可例如对应于包括其他对象的3D场景的对象的可能3D表示。3D模型10可以是3D网格表示,并且点云11的点可以是网格的顶点。点云11的点也可以是分布在网格面的表面上的点。3D模型10也可表示为点云11的喷溅版本,3D模型10的表面是通过喷溅点云11的点创建的。3D模型10可由诸如体素或样条的很多不同表示来表示。图1示出了可用3D对象的表面表示来定义点云以及可从云点生成3D对象的表面表示的事实。如本文所用,将3D对象的点(引申为3D场景的点)投影到图像上等效于投影该3D对象的任何表示,例如点云、网格、样条模型或体素模型。

点云可在存储器中表示为例如基于矢量的结构,其中每个点在视点的参照系中都有自己的坐标(例如三维坐标XYZ,或立体角和从/到视点的距离(也称为深度))和一个或多个属性,也称为分量。分量的一个示例是可在各种色彩空间中表示的颜色分量,例如RGB(红、绿和蓝)或YUV(Y是亮度分量并且UV是两个色度分量)。点云是包括对象的3D场景的表示。可从给定视点或视点范围看到3D场景。点云可通过多种方式获得,例如:

·从由相机装备拍摄的真实对象的捕获,任选地辅以深度主动感测设备;

·从由建模工具中的虚拟相机装备拍摄的虚拟/合成对象的捕获;

·从真实对象和虚拟对象两者的混合。

3D场景对应于经捕获的场景,其为真实(或虚拟)场景的一部分。首先,要捕获的一些部分或场景对于每个摄像机是不可见的(因为被遮挡);这些部分在3D场景之外。其次,摄像机装置的视场可以低于360°。然后,真实场景的一部分保留在捕获的3D场景之外。然而,3D场景之外的一些部分可反射在3D场景的某部分上。

图2示出了对表示3D场景序列的数据进行编码、传输和解码的非限制性示例。编码格式可例如同时兼容3DoF、3DoF+和6DoF解码。

获得3D场景序列20。如同画面序列是2D视频,3D场景序列是3D(也称为体积)视频。可将3D场景序列提供给体积视频渲染设备以进行3DoF、3Dof+或6DoF渲染和显示。

可将3D场景序列20提供给编码器21。编码器21将一个3D场景或3D场景序列作为输入,并提供表示该输入的比特流。比特流可存储在存储器22中和/或电子数据介质上,并且可通过网络22传输。表示3D场景序列的比特流可由解码器23从存储器22读取和/或从网络22接收。解码器23由比特流输入并提供例如点云格式的3D场景序列。

编码器21可包括实现若干步骤的若干电路。在第一步骤中,编码器21将每个3D场景投影到至少一个2D画面上。3D投影是将三维点映射到二维平面的任何方法。由于用于显示图形数据的大多数当前方法都基于平面(来自几个位平面的像素信息)二维介质,因此这种类型的投影的用途是广泛的,在计算机图形、工程和制图方面尤为如此。投影电路211为3D场景20序列提供至少一个二维帧2111。帧2111包括深度信息,该深度信息表示投影到帧2111上的3D场景。在变型中,帧2111包括其他属性。根据本原理,投影属性可表示投影在帧上的3D场景的纹理(即,颜色属性)、热、反射或其他属性。在一个变型中,信息在单独的帧中编码,例如两个单独的帧2111和2112或每个属性一个帧中。在这个步骤中,电路211可以区分从序列20的一个3D场景变化的2D投影与对于序列20的两个或更多个连续3D场景为相同的2D投影。

元数据212由投影电路211使用和更新。元数据212包括关于投影操作的信息(例如投影参数)以及关于颜色和深度信息在帧2111和2112内的组织方式的信息,如结合图5至图7所述。元数据还可以包括将投影与3D场景的对象或对象的一部分(本文中称为3D场景的实体)相关联的信息。例如,电路211可以生成每实体投影图,并且在元数据中发信号通知投影图对应于哪个实体。

视频编码电路213将帧2111和2112序列编码为视频。3D场景的画面2111和2112(或3D场景的画面序列)由视频编码器213编码在流中。然后,视频数据和元数据212由数据封装电路214封装在数据流中。

编码器213例如与诸如以下的编码器兼容:

-JPEG,规范ISO/CEI 10918-1UIT-T Recommendation T.81,https://www.itu.int/rec/T-REC-T.81/en;

-AVC,也称为MPEG-4AVC或h264。在UIT-T H.264和ISO/CEI MPEG-4第10部分(ISO/CEI 14496-10)两者中规定,http://www.itu.int/rec/T-REC-H.264/en,HEVC(其规范见于ITU网站,T recommendation,H series,h265,http://www.itu.int/rec/T-REC-H.265-201612-I/en);

-3D-HEVC(HEVC的扩展,其规范见于ITU网站,T recommendation,H series,h265,http://www.itu.int/rec/T-REC-H.265-201612-I/en annex G and I);

-Google开发的VP9;或者

-由Alliance for Open Media开发的AV1(AOMedia Video 1)。

根据本发明原理

数据流被存储在可由解码器23例如通过网络22访问的存储器中。解码器23包括实现不同的解码步骤的不同电路。解码器23将由编码器21生成的数据流作为输入,并提供待由如头戴式设备(HMD)的体积视频显示设备渲染和显示的3D场景序列24。解码器23从源22获得流。例如,源22属于一组,该组包括:

-本地存储器,例如视频存储器或RAM(或随机存取存储器)、闪存存储器、ROM(或只读存储器)、硬盘;

-存储接口,例如具有大容量存储装置、RAM、闪存存储器、ROM、光盘或磁性载体的接口;

-通信接口,例如有线接口(例如总线接口、广域网接口、局域网接口)或无线接口(诸如IEEE 802.11接口或

-使用户能够输入数据的用户界面,诸如图形用户界面。

解码器23包括用于提取在数据流中编码的数据的电路234。电路234将数据流作为输入,并提供对应于在流中编码的元数据212的元数据232和二维视频。视频由提供帧序列的视频解码器233解码。解码帧包括颜色和深度信息。在一个变型中,视频解码器233提供两个帧序列,一个包含颜色信息,另一个包含深度信息。电路231使用元数据232对来自解码帧的颜色和深度信息进行去投影,以提供3D场景序列24。3D场景序列24对应于3D场景序列20,可能损失与作为2D视频的编码和视频压缩相关的精度。

在渲染时,用户正在观看的视口图像是合成视图,其是未由相机捕获的场景的视图。在镜面反射由采集装备的一个相机捕获时,如从该相机的视点观察到的,对来自不同虚拟视点的3D场景进行渲染就需要根据新的视点来修改反射内容的位置和外观。根据本原理,数据流中携带了用于对复杂光效果进行渲染的信息。

图3示出了可被配置为实现关于图9和图10描述的方法的设备30的示例性架构。图2的编码器21和/或解码器23可实现该架构。或者,编码器21和/或解码器23中的每个电路可以是根据图3的架构的设备,其例如经由其总线31和/或经由I/O接口36链接在一起。

设备30包括通过数据和地址总线31连接在一起的以下元件:

-微处理器32(或CPU),该微处理器是例如DSP(或数字信号处理器);

-ROM(或只读存储器)33;

-RAM(或随机存取存储器)34;

-存储接口35;

-I/O接口36,该I/O接口用于从应用程序接收要传输的数据;以及

-电源,例如电池。

根据一个示例,电源在设备外部。在每个提到的存储器中,说明书中使用的词语“寄存器”可以对应于小容量的区域(一些位)或非常大的区域(例如,整个程序或大量接收或解码的数据)。ROM 33至少包括程序和参数。ROM 33可以根据本发明原理存储用于执行技术的算法和指令。当接通时,CPU 32上载RAM中的程序并执行对应指令。

RAM 34包括寄存器中的由CPU 32执行并在设备30的接通之后上载的程序、寄存器中的输入数据、寄存器中的方法的不同状态中的中间数据以及用于在寄存器中执行方法的其他变量。

本文所述的具体实施可在例如方法或过程、装置、计算机程序产品、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法或设备讨论),讨论的特征的具体实施也可以其他形式(例如,程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的装置(诸如例如处理器)中实施,该装置包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、手机、便携式/个人数字助理(“PDA”)以及便于最终用户之间信息通信的其他设备。

根据示例,设备30被配置为实现关于图9和图10描述的方法,并且属于包括以下的集合:

-移动设备;

-通信设备;

-游戏设备;

-平板电脑(或平板计算机);

-膝上型电脑;

-静态图片相机;

-摄像机;

-编码芯片;

-服务器(例如广播服务器、视频点播服务器或web服务器)。

图4示出了当通过基于分组的传输协议传输数据时流的语法的实施方案的示例。图4示出了体积视频流的示例性结构4。该结构包含在以语法的独立元素组织流的容器中。该结构可包括标头部分41,它是流的每个语法元素所共有的一组数据。例如,标头部分包括关于语法元素的一些元数据,描述它们中每一个的性质和角色。标头部分还可包括图2的元数据212的一部分,例如用于将3D场景的点投影到帧2111和2112上的中心视点的坐标。该结构包括有效载荷,该有效载荷包括语法元素42和至少一个语法元素43。语法元素42包括表示颜色和深度帧的数据。图像可能已根据视频压缩方法进行了压缩。

语法元素43是数据流的有效载荷的一部分,并且可包括关于如何对语法元素42的帧进行编码的元数据,例如用于将3D场景的点投影和打包到帧上的参数。此类元数据可与视频的每个帧或帧组(在视频压缩标准中也称为画面组(GoP))相关联。

图5示出了以4个投影中心为例的分块图集方法。3D场景50包括人物。例如,投影中心51是透视相机,并且相机53是正射相机。相机还可以是具有例如球面映射(例如等矩形映射)或立方体映射的全向相机。根据在元数据的投影数据中描述的投影操作,3D场景的3D点被投影到与位于投影中心处的虚拟相机相关联的2D平面上。在图5的示例中,根据透视映射将由相机51捕获的点的投影映射到分块52上,并且根据正射映射将由相机53捕获的点的投影映射到分块54上。

投影像素的群集产生多个2D分块,其被打包在矩形图集55中。图集内分块的组织限定了图集布局。在一个实施方案中,具有相同布局的两个图集:一个用于纹理(即颜色)信息,并且一个用于深度信息。由同一相机或由两个不同相机捕获的两个分块可包括表示3D场景的相同部分的信息,如例如分块54和56。

打包操作为每个生成的分块产生分块数据。分块数据包括对投影数据的引用(例如,投影数据表中的索引或指向投影数据的指针(即,存储器中或数据流中的地址))和描述图集内分块的位置和尺寸的信息(例如,左上角坐标、尺寸和以像素为单位的宽度)。将分块数据项添加到元数据,以与一个或两个图集的压缩数据相关联地封装在数据流中。

现有的用于对3D场景的基于图集的表示编码的格式,像MIV格式(ISO/IECDIS23090-12MPEG Immersive Video的文本,ISO/IEC JTC 1/SC 29/WG 4,N00049),不提供利用大多数3D场景的高时间冗余的工具或特征。例如,MIV标准允许将基于分块的3D场景描述分割成多个图集(其自身可以被划分成多个图块)。分块打包布局和与那些图集相关联的相关联投影参数被发射到单独的“图集数据”子比特流中。通过在给定的连续时刻发送图集帧,仅MIV简档允许整个图集数据的完全和自包含(“帧内编码”)刷新。然而分块图集的对应的几何和属性(例如,纹理、透明度)样本在视频子比特流中以全视频帧速率发射。TMIV基准软件(Test Model8for MPEG Immersive Video,ISO/IEC JTC 1/SC 29/WG 4,N00050)每隔32视频帧(这对应于视频比特流的编码帧内周期)实现图集数据的周期性规则刷新,以用于优化的视频编码。

V3C规范(ISO/IEC DIS23090-5(2E)的文本Visual Volumetric Video-basedCoding(V3C)and Video-based Point Cloud Compression,ISO/IEC JTC 1/SC 29/WG 7,N00065)(MIV为其扩展)供应了用于图集数据子比特流内的分块数据的可替代预测编码模式,即“inter”、“merge”或“skip”,它们不被MIV激活。但是此类可替代的分块编码模式使得能够仅降低图集数据子比特流的比特率,该比特率相对于构成MIV比特流的其他视频子比特流是可忽略的。

根据本发明原理,提供发射格式以有效地支持3D场景的紧凑且灵活的描述,其中大部分具有恒定的或仅缓慢演变的几何和外观。另外,对于在3D场景的物理世界中为静态的实体,当相机装备在移动时和/或当照明条件随时间演变时提出了编码和解码技术。

当相机移动时,静态3D场景部分被视为相机装备的参考系中的移动部分。根据本发明原理,在编码器侧,估计相机装备运动(姿态参数=位置和取向)并且将其发射到解码器。这样做,在解码器侧稍后使用发射的静态场景部分的分块,其中补偿了相机移动。

照明条件改变情况在3D场景(甚至全CGI 3D场景)序列中非常频繁。在这种情况下,几何不改变,但是外观由于变化的照明或阴影而改变。根据本发明原理,静态分块的纹理(即,颜色属性)比几何属性更新更频繁。在另一实施方案中,纹理改变在参数化数学函数的形式下的紧凑表达式在数据流中编码并且被发射到解码器。

根据本发明原理提出的方法的主要元素为:

·在编码器阶段,识别静态或准静态3D场景部分,并且它们的基于分块的描述与场景的其余部分的描述分离;

·静态分块被聚集成一组长期持久实体;当针对静态分块检测到照明条件或相机移动时,描述这些改变的元数据被添加到场景表示。

·仅当3D场景演进需要时,以实体粒度刷新静态分块描述;

·通过在需要时更新实体(擦除、重写、添加),解码器维持存储器中解码的分块的存储器(例如,数据库)中的数据结构以渲染场景的静态部分。如果描述照明条件改变或相机移动的元数据在3D场景的表示中被编码,则相应地适配静态分块。

图6图示了3D场景序列在体积视频的三个不同时间的三个3D场景61、62和63的示例。三个3D场景61、62和63包括墙壁、橱柜和前景中的移动人物。这三个3D场景发生在3D场景序列中的不同位置i、i+n和i+n+m处。当关闭时包括移动人物以及门的3D场景的部分64由在3D场景序列中从一个3D场景到下一个场景不同的分块表示。

图6示出了五个实体:E2和E8是墙壁的一部分,E5是橱柜的门的内侧,E10为门的外侧,并且E9为橱柜的内侧。实体可以投影在一个或几个分块上。实体E8由序列的每个3D场景中的分块p320体现。换句话说,分块p320是静态的:它在整个序列期间具有相同的值(深度以及属性像颜色、透明度、反射率等)。图6的示例的其他实体由在两个3D场景之间保持静态的分块体现。实体E2与帧61中的分块p128和p342相关联。这些分块在n帧(即,序列的3D场景)期间是静态的,并且在帧62处被分块p456和p117取代。实际上,因为橱柜的门在关闭,所以场景的新点从相机位置可见,并且改变与墙壁的这个部分相关联的分块。最后,在帧63处,唯一分块p540足以表示实体E2。门E5的不动内部由帧61处的分块p17和p41表示。一旦门开始关闭,这个实体的分块就在每一帧处改变,并且不再需要跟踪实体E5。当门关闭并且再次不动时,实体E10由在帧63处开始的分块p104表示。橱柜E9的内部由框61处的三个分块p181、p162和p41组成。它们在n+m帧期间保持静止直到帧62,因为即使人物和门在它们前面移动,投影在这些分块上的点也从相机可见。在框63处,橱柜的内部不再可见,并且实体E9从实体列表中移除。在图6的场景示例中,不在每帧处发射表示墙壁和橱柜的数据是相关的,而有必要连续发射动态部分64。

根据本发明原理,3D场景表示为可识别的、可参考的对象(本文中称为实体)的合集。

根据本发明原理的3D场景表示可与计算机图形接口(CGI)方法比较:

·在CGI场景中,每个对象由带外装置(通过通常像Maya、混合器等建模工具)定义,并且永久合成对象被一次发送到像一些云游戏递送架构的服务器-客户端架构的客户端。

·使用本3D场景表示,而不是通过带外装置将场景定义为有网格、纹理、像CGI中的着色器的一组合成对象,通过由多相机捕获和场景分析处理生成的以MIV形式定义的一组小片(即,有几何+纹理和其他属性的分块)定义场景。这是基于相机的场景生成。

在基于MIV分块图集的格式中,由TMIV编码器的场景切出处理(用裁剪等)生成的分块可以从一个帧内周期(例如,32帧长)完全改变到另一个帧内周期。通过使那些对象通常附接到3D场景的物理世界,更稳定的场景切出是可能的。根据本发明原理的实体不由高级语义像“椅子”、“墙壁”、“头部”等定义。相反,它们由符合像纹理均匀性、打包效率等标准切割的算法生成。

本发明原理对应于将场景描述在带内生成为附接到3D场景的物理世界的一组对象,并且对应于使这个基于相机的场景的递送更高效的问题。通过观察到体积内容的大部分为静态的(完全地或部分地),并且不值得在每一帧处重复静态部分,使这种场景递送更有效。在基于分块图集的表示中,分块是大量(通常几百个)且易变的(每个帧内周期改变)。根据本发明原理,实体是分块的合集,优选为小的(例如,十个)。虽然实体内的分块集可以随时间演变,但是预期其合集关于其在物理3D世界中的位置和累积的足迹保持稳定。实体的底层分块有可能彼此重叠。因此,实体也可以彼此重叠。

当更新静态实体时,发射分块的新合集(与其几何和属性分量一起,连同反向投影所需的2D到3D投影参数)。根据本发明原理,附加的更新信息以适配参数的形式在不同的帧频率下发射,以管理相机移动和/或照明条件改变。

图11示出了采集系统在3D场景的物理世界中移动的情形。当多相机装备不固定而是移动时,例如在行进中,所有场景部分相对于附接到相机装备的参考系移动。完整3D场景的新外观必须在每一帧处发射。在现有格式中,在每一帧处发射新分块。然而,对于静态场景部分,在相机装备的第一姿态处采集的分块仍然有效并且稍后可用,但是从另一视点可见到。另外,3DoF+和6DoF技术基于视图合成。根据本发明原理,编码格式利用了这个性质。

在图11的示例中,3D场景的物理世界包括在物理3D世界中完全为静态的桌子113和花瓶114(但不如从相机视点111和112见到的那样)。在每一帧处,并且根据相机装备的姿势,分块在采集的视图内分段。重要的是,注意在不同时间从同一视图(即,由给定相机捕获的图像)生成分块。例如,与对应于桌子的面板的实体相关联的分块115不能由图11的相机在时间和姿势111捕获,因为面板的这个部分被花瓶114从相机的这个位置遮挡。当处于姿势112时,即稍后在3D场景序列中,分块115由唯一示出的相机捕获。相反,分块116是由所示相机在姿势111和112下捕获的视图的一部分。因此,当在稍后的帧i+n处渲染场景时,在帧i处记录在解码器的数据库中的分块可能不再有效。在现有格式(例如MIV)中,每个分块附接到给定视图,并且在图11的示例中,要在帧i+n处渲染的分块仍然附接到同一视图。

为了渲染此类分块,因此有必要估计捕获的视图在帧i(在姿态111)与i+n(在姿态112)之间的姿态差,以便针对解码器,在帧i+n处的MIV参考坐标系中恢复在帧i处的视图v的姿态参数。根据本发明原理,如图11中所示,执行从由相机在姿态112下捕获的视图提取的分块的渲染,从而将视图姿态参数

根据本发明原理,信息被添加到与当前帧相关联的元数据以发信号通知相机装备是否在移动(并且只要相机装备(并且因此视图)移动),以及发信号通知相机在每一帧处的姿态增量。

本发明原理涉及:

·对于编码器:发送所有视图的姿态增量的记录过程的激活信号,并且当相机装备停止移动时停用该过程。

·对于编码器:经由外在参数的视图更新在每一帧处发送每个视图的姿态差(delta位置和delta取向):

·pose_update(view v,+1),pose_update(view w,+1),pose_update(view x,+1),…

·pose_update(view v,+2),pose_update(view w,+2),pose_update(view x,+2),…

·pose_update(view v,+3),pose_update(view w,+3),pose_update(view x,+3),…

·等。

·对于客户端:将这些delta姿态系列记录在本地存储器中。

·对于客户端:当在帧k处渲染与视图v相关联但在先前帧i处记录的分块时,通过累加从i到k的delta姿态对这帧k处的当前视图v的外在参数应用校正。

在先前帧记录的分块可以连同在当前帧捕获的动态部分的新分块在重建的3D场景中重复地重新投影。

在变型中,在不可变形对象在3D场景中移动(而不是相机装备)的情况下,虚拟视图或虚拟视图子集附接到实体并且将根据本发明原理的技术应用于这个唯一视图或视图子集。

在另一变型中,相机的移动作为数学函数的参数发射,例如作为表示点和多项式曲线的参数或作为贝塞尔曲线或作为样条曲线。

3D场景的大部分为静态是非常常见的。因此,3D场景的这些固定部分的几何信息是恒定的。此类静态场景的纹理外观由于变化的照明条件和阴影而经常改变,例如当移动前景人物向附近环境投射阴影时。在这种情况下,本发明原理提出了两个实施方案,以最小化与这些静态分块相关联的纹理信息的比特率:

1.发射包括更新的分块纹理的视频比特流。在这个第一实施方案中,预期此类比特流展现平滑变化,易于由视频编码器压缩。

2.将这些纹理变化表达为数学函数的参数,例如2D纹理图的u和v索引的多项式函数。这个第二实施方案比第一实施方案更紧凑,因为它降低了比特率和像素率。

像在行进情况下,编码器有必要确定针对给定分块的参考的纹理。在实践中,编码器可以总是决定通过重新发送实体做出分块纹理的重置,但是仅针对纹理部分。

更确切地,有必要:

-编码器确定实体更新,该实体更新重置分块的纹理样本值,但不一定是它们的几何样本值。

-编码器在两个实体更新之间计算和发送分块的纹理更新。

-客户端接收记录的分块的纹理更新,在与其他分块一起渲染该纹理之前相应地更新它。

根据第二实施方案的本发明原理,计算记录的纹理在视图级的时间校正。这个参数对应于例如计算机图形工程中的镜头着色器。实际上,它对应于针对视图j的所有像素(u,v)定义每(R,G,B)分量的校正函数。由于任何分块与视图相关,因此将有可能通过这个手段更新任何分块。

作为第二实施方案的示例,为每个视图j和视图j的每个样本(u,v)设置参数,u和v索引的三重多项式函数:

P_r

P_g

P_b

其中例如b_g

或参考分量r、g、b用c公式化:

P

其中例如b

所有系数在有限的定义中都是正浮点值,像16位fl(16),并且可以表达0与大于1.0之间的乘法因子。它们与记录的纹理与当前纹理之间的纹理差有关,并且通常约为1.0,因为纹理值通常是缓慢演变的。

因为纹理不能超过[0,255]范围,所以每视图像素乘法后应当有如下夹紧过程:

所提出的数学多项式函数是实施方案示例,并且可能不是在所有情况下起作用。它可以仅在光传输对于所关注的分块集是均匀的并且远离相互阴影效应的情况下工作。但是MIV规范的重要方面是,一个视图不必对应于一个真实相机。例如,若干语法视图可以从单个原始视图创建,并且原始集的每个分块可以附加到它们中的任一者。因此,它导致分块分区,并且这些分区可以用于更容易地映射诸如以上给出的数学函数。形式上,“语法视图”是从最初在MIV编码器中创建的视图池中取得的视图,为了这个目的该视图可以超尺寸。

图7描绘了根据本发明原理的第一实施方案的携带两个图集序列71和72的比特流的示例。图集序列71携带动态场景部分的分块,例如对应于图6的部分64的分块。图集序列72传输静态分块,例如与图6中的其他实体相关联的分块。在这个示例中,静态分块在序列的第一帧73(例如,图6的帧61)处初始化,并且然后在帧74(例如,图6的帧62)处更新。根据本发明原理,术语“静态分块”和“静态实体”定义如下:

静态分块:几何、占用率和属性样本值逐段地在时间上保持恒定的分块。

静态实体:静态分块集。

本格式语法结构包括以下元素:

·比特流的标头中的发信号通知比特流包含具有静态分块的“长期记忆”分量的序列参数集(VPS)。

·初始化静态实体的ID的与第一帧73相关联的图集(ASPS)的序列参数集。

·更新静态实体的ID的图集的帧参数(AFPS)。新的AFPS元素与每个更新的静态图集帧(例如,帧73和74)相关联。

这些语法元素可例如基于有粗体扩展的MIV元素格式化:

vme_long_term_patch_memory_enabled_flag等于1指定静态分块被分组到专用图集(称为“长期记忆图集”)中。

vme_long_term_memory_atlas_count_minus1+1指定长期记忆图集的数量。比特流一致性的要求是vme_long_term_memory_atlas_count_minus1应当小于vps_atlas_count_minus1。

vme_long_term_memory_atlas_id[k]指定具有索引k的长期记忆图集的ID。比特流一致性的要求是,对于在0到vps_atlas_count_minus1的范围(包括0和vps_atlas_count_minus1)内的所有j,vme_long_term_memory_atlas_id[k]应当等于vps_atlas_id[j]的值之一。

asme_long_term_memory_flag等于1指示图集包含静态分块。比特流一致性的要求是,asme_long_term_memory_flag等于vme_long_term_memory_atlas_id[atlasID],其中atlasID为当前图集的ID。

asme_num_init_static_entities_minus1+1指定在序列开始时的静态实体的数量。

asme_init_static_entity_init_id[k]指定具有索引k的静态实体的ID。比特流一致性的要求是,在当前图集的第一帧中,针对具有索引p的任何分块,在具有等于tileID的ID的图块中,对于在0到asme_num_init_static_entities_minus1的范围内(包括0和asme_num_init_static_entities_minus1)的所有k,pdu_entity_id[tileID][p]应当等于asme_init_static_entity_id[k]的值之一。

afme_update_static_entities_flag等于1指定静态实体的更新存在于参考这个AFPS的图集图块中。

steu_num_removed_entities_minus1+1指定移除的静态实体的数量。

steu_removed_entity_id[k]指定具有索引k的移除的静态实体的ID。

steu_num_modified_entities_minus1+1指定修改的静态实体的数量。

steu_modified_entity_id[k]指定具有索引k的修改的静态实体的ID。

steu_num_new_entities_minus1+1指定新的静态实体的数量。

steu_new_entity_id[k]指定具有索引k的新的静态实体的ID。

在第一实施方案的变型中,用于将静态分块分组的实体ID语法元素与能够将对象关联到分块的V3C体积注释SEI消息族一起被发信号通知。将移除的、修改的或新的实体的ID附接到每个静态帧更新的同一原理适用,但是被携带到SEI消息中而不是核心MIV比特流内。

另外,携带由于静态几何的两次更新之间的照明改变的平滑变化的纹理图集视频比特流76在比特流中编码,其中ASPS中具有附加的语法标志以发信号通知纹理视频比特流中有附加的更新信息。

asme_texture_update_flag等于1指定纹理视频比特流的帧在静态实体的两次更新之间携带纹理更新样本值。

asme_texture_update_refresh_period_minus1加1指定纹理样本值的时间更新的周期T(每隔T帧刷新)。当不存在时,指示asme_texture_update_refresh_period_minus1的值等于0。

在第一实施方案的变型中,不重复几何帧75。仅重复纹理帧76。

现有的基于分块图集的格式(像MIV),针对所有图集(如果有许多的话),强制所有几何和属性视频子比特流在时间上对准(相对于编码顺序)。如图7中所示,静态视频子比特流72不具有与其它MIV视频子比特流相同的时间行为。与图集序列71的连续、规则的采样相反,图集序列72由在随机时间位置(对应于静态实体更新)采样的一组视频帧组成。在图7的示例中,视频轨道71和72携带具有相同图集布局的若干视频子比特流,例如,一个深度视频子比特流和针对每个属性(例如,颜色、透明度、反射率等)的附加视频子比特流。

在第二实施方案中,每个几何和属性视频帧更新被编码为仅由那几帧组成的视频比特流中的内编码帧,其间没有几何帧重复75。这个第二实施方案要求解码器能够支持与动态部分的视频子比特流在时间上不对准的此类几何和属性视频比特流。

在第二实施方案中,公共图集帧(CAF)信息被添加到元数据以发信号通知需要镜头着色器的多项式系数。

come_texture_update_flag等于1的公共图集帧被发送以用于由于照明改变而具有纹理更新的静态图集的每一帧。因此,通知解码器纹理块样本值必须通过与分块相关联的视图的镜头着色器功能更新。此类纹理更新有效,直到接收到come_texture_update_flag等于1的新CAF。

可以组合所提出的语法以同时发信号通知相机移动和照明改变的补偿。

图8a示出了根据第一实施方案的静态图集数据的多比特流封装传输格式。帧更新73和74被描绘为比对应于视频比特流中重复的几何帧75的其它样本更暗。

图8b示出了根据第二实施方案的静态图集数据的多比特流封装传输格式。几何和属性的帧更新被编码为连续的内编码帧,而没有帧重复。与每个样本相关联的合成时间发信号通知更新的适当时间。ct1、ct2和ct3是三个更新的时间戳。第一样本由客户端用于在间隔[ct1,ct2]期间的内容呈现,第二样本由客户端用于在间隔[ct2,ct3]期间的内容呈现,并且第三样本由客户端用于从ct3到序列末端的内容呈现。

在解码器和渲染器侧,客户端能够输入新的实体、删除过时的实体以及更新其它实体。客户端(例如,图2的客户端23,例如在图3的设备30中实现的客户端)根据图8a或图8b从广播服务器接收比特流,或从存储器读取比特流。在宽带客户端-服务器架构中,客户端应用负责请求信号块,例如像DASH段。客户端应用程序解析比特流,提取元数据,并且对几何和属性子比特流进行视频解码。由于实体级的信令,解码器对来自动态图集的分块解码,并且将它们发送到渲染器,并且访问本地数据库以用于根据它们所关联的实体获得静态分块。渲染器合并动态部分和静态部分两者以输出全场景的渲染。

图9示出了根据本发明原理的非限制性实施方案的用于对3D场景编码的方法90。在步骤91,从3D场景的自动分析获得动态分块和静态分块以编码。例如,如关于图5所描述地执行分析。静态分块是几何、占用率和属性样本值逐段地在时间上保持恒定的分块。每个静态分块与3D场景的实体相关联。动态分块是在序列中从3D场景到下一个场景频繁变化的分块。在步骤92中,在第一图集中打包动态分块。在步骤93,获得的静态分块与针对构成3D视频的3D场景序列中的先前3D场景获得的分块比较。如果要编码的3D场景是序列中的第一个,则认为静态分块是不同的。在它们不同的情况下,执行步骤94。在步骤94,获得的静态分块在第二图集中打包。根据与静态分块相关联的实体以及根据与序列中的先前3D场景的静态分块相关联的实体生成包括指令的元数据。当对于实体没有差异时,不生成指令。当实体是新的(即,该实体不与先前的静态分块相关联)时,用于客户端针对3D场景在其本地存储器(例如被构造为数据库)中创建将实体与关联于该实体的静态分块相关联的新条目的指令被添加到元数据。当实体不再与任何静态分块相关联时,用于客户端从本地存储器删除将实体与静态分块相关联的条目的指令被添加到元数据。当与实体相关联的静态分块不同于序列中的先前3D场景的静态分块时(由于它们的数量、大小、值等),用于客户端针对3D场景用与实体相关联的静态分块更新本地存储器的将实体与静态分块相关联的条目的指令被添加到元数据。然后执行步骤95以用于在数据流中对第一图集、第二图集和生成的元数据编码。在变型中,第一图集在数据流的第一视频子比特流中编码,并且第二图集在数据流的第二视频子比特流中编码。如果在步骤93确定静态分块与序列中的先前3D场景的静态分块没有不同,则在步骤95仅第一图集在数据流中编码。在另一实施方案中,在这种情况下执行步骤96。在步骤96获得第二图集(通过打包在步骤91获得的静态分块或通过重新使用针对先前3D场景生成的第二图集)。在这个另一实施方案中,在步骤95,第一图集和第二图集在数据流中编码。

图10示出了用于渲染来自数据流的3D场景的方法100。在步骤101,从数据流中解码第一分块图集。在步骤102,从数据流中解码第二图集和相关联的元数据。如果没有第二图集或如果没有相关联的元数据,则可以跳过步骤102。在其它情况下,在步骤103更新由解码器维护在存储器中的本地数据结构(例如,数据库)。本地数据结构存储将实体与相应的静态分块集合相关联的条目。元数据的指令可以是:

·针对3D场景在本地数据结构中创建新条目,该新条目将实体与第二图集的分块子集相关联;

·针对3D场景,用第二图集的分块子集更新本地数据结构的将实体与第二分块相关联的条目;或者

·从本地数据结构删除将实体与第二分块相关联的条目;

在步骤103,通过使用解码的第二图集的第二分块执行元数据的每个指令。

在步骤104,本地数据结构用于检索与对于渲染可见的3D场景的实体相关联的第二分块。最后一次已用第二图集(其携带静态分块)获得指令时,已更新数据结构。在步骤105,通过反向投影来自数据流的第一分块和来自数据结构的第二分块渲染3D场景。

本文所述的具体实施可在例如方法或过程、装置、计算机程序产品、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法或设备讨论),讨论的特征的具体实施也可以其他形式(例如,程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的装置(诸如例如处理器)中实施,该装置包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如,智能电话、平板电脑、计算机、移动电话、便携式/个人数字助理(“PDA”)以及有利于最终用户之间信息的通信的其他设备。

本文描述的各种过程和特征的具体实施可以体现于各种不同的设备或应用程序中,特别是例如与数据编码、数据解码、视图生成、纹理处理和图像以及相关纹理信息和/或深度信息的其他处理相关联的设备或应用程序。此类设备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型电脑、个人计算机、蜂窝电话、PDA和其他通信设备。应当清楚的是,设备可以是移动的,甚至安装在移动车辆中。

另外,方法可以由处理器执行的指令来实现,并且此类指令(和/或由具体实施产生的数据值)可以存储在处理器可读介质上,诸如例如集成电路、软件载体或其他存储设备,诸如例如硬盘、紧凑型磁盘(“CD”)、光盘(诸如例如,DVD,通常称为数字通用光盘或数字视频光盘)、随机存取存储器(“RAM”)或只读存储器(“ROM”)。指令可以形成在处理器可读介质上有形地体现的应用程序。指令可以是例如硬件、固件、软件或组合。指令可以在例如操作系统、单独应用程序或两者的组合中发现。因此,处理器可以被表征为例如被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(诸如存储设备)的设备。此外,除了或代替指令,处理器可读介质可以存储由具体实施产生的数据值。

对于本领域的技术人员将显而易见的是,具体实施可产生格式化为携带例如可存储或可传输的信息的各种信号。信息可包括例如用于执行方法的指令或由所述具体实施中的一个具体实施产生的数据。例如,信号可以被格式化为作为数据携带用于写入或阅读所描述的实施方案的语法的规则,或作为数据携带由所描述的实施方案写入的实际语法值的数据。此类信号可格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可包括例如对数据流进行编码并且使用经编码的数据流调制载体。信号携带的信息可为例如模拟或数字信息。如已知的,信号可通过多种不同的有线或无线链路传输。信号可存储在处理器可读介质上。

已描述了多个具体实施。但应理解的是,可以作出许多修改。例如,可以组合、补充、修改或移除不同具体实施的元件以产生其他具体实施。另外,普通技术人员将理解,其他结构和过程可以被替换为所公开的那些,并且所得具体实施将以至少基本上相同的方式执行至少基本上相同的功能,以实现与所公开的具体实施至少基本相同的结果。因此,本申请考虑了这些和其他具体实施。

技术分类

06120116576134