CN116583881A - 用于体积视频数据的数据流、设备和方法 - Google Patents
用于体积视频数据的数据流、设备和方法 Download PDFInfo
- Publication number
- CN116583881A CN116583881A CN202180081386.1A CN202180081386A CN116583881A CN 116583881 A CN116583881 A CN 116583881A CN 202180081386 A CN202180081386 A CN 202180081386A CN 116583881 A CN116583881 A CN 116583881A
- Authority
- CN
- China
- Prior art keywords
- data
- mesh
- grid
- information
- vertices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/388—Volumetric displays, i.e. systems where the image is built up from picture elements distributed through a volume
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20036—Morphological image processing
- G06T2207/20044—Skeletonization; Medial axis transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Abstract
公开了具有以场景描述语言编码在其中的体积视频数据的数据流,所述数据流表示包括一个或多个对象的场景,其中所述数据流对于所述至少一个对象包括第一网格数据、第二网格数据和对应性信息,其中所述第一网格数据用第一网格描述所述至少一个对象,所述第二网格数据用第二网格描述所述至少一个对象;并且其中,所述对应性信息指示所述第一网格与所述第二网格之间的映射。还描述了设备、方法和计算机程序产品。
Description
技术领域
本发明属于体积视频的技术领域。
本发明的实施例涉及具有以场景描述语言编码在其中的体积视频数据的数据流。进一步的实施例涉及用于生成此类数据流的设备、用于评估此类数据流的设备、生成此类数据流的方法以及评估此类数据流的方法。进一步的实施例涉及计算机程序产品。
背景技术
近年来,体积视频变得越来越重要。预计在不久的将来,体积视频流将成为一种流行的服务,可以用于虚拟现实(VR),增强现实(AR)和混合现实(MR)领域的几种应用。这种基于体积视频的应用的期望是,内容以高质量(逼真)的方式呈现,并给人一种真实的印象,这将导致身临其境的体验。
体积视频代表3D内容,可以是由相机捕捉到的真实对象。在过去,大量基于计算机生成图像(CGI)的三维计算机图形学工作已经开展。这些图像可以是动态的或静态的,用于视频游戏或电影和电视中的场景和特效。
随着体积视频捕捉的最新进展和新兴的HMD设备,VR/AR/MR引起了很多关注。由此实现的服务非常多样化,但主要包括在给定的真实场景中实时添加对象,从而产生混合现实,甚至在考虑VR时添加到虚拟场景中。为了获得高质量以及身临其境的体验,3D体积对象需要以高保真度传输,这可能需要非常高的比特率。
可以设想两种类型的服务。第一种对应于体积内容的“被动”消耗,其中添加到场景中的对象不与环境交互,或者以预定义动画的形式进行有限的交互,这些动画是作为对例如鼠标点击或按键的响应而激活的。第二种更具挑战性的服务是交互式场景,其中内容(体积视频)以这样一种方式提供,即应用能够使与用户交互的对象动画化,例如通过转动用户的头,将一个人插入到场景中……
对于第一种情况(具有预定义动画的“被动”消耗),我们可以设想以下解决方案:
-体积视频序列:反映预期动画的对象的编码帧的序列
-具有额外元数据的3D对象,其允许3D对象的预定义的动画
对于第二种情况(交互式对象),可以想象以下解决方案:
-具有额外元数据的3D对象,其允许自由形成3D对象的动画
第二种情况的体积视频序列流传输解决方案目前是不可行的,除非存在服务器到客户端耦合的系统,在该系统中,作为对客户端发生的事情的响应,在服务器处动态生成交互式动画,这由于相关联的资源成本而是非常不期望的设计。
因此,希望提供用于更有效地渲染体积视频编码的概念,以支持混合现实的生成等。附加地或可替换地,期望提供高质量并减少比特流,从而减少信号化成本,以实现3D体积对象的传输的高保真度。
这是通过本申请的独立权利要求的主题来实现的。
根据本发明的进一步实施例由本申请的从属权利要求的主题定义。
发明内容
本文描述了用于3D内容传输格式、动画的一些基本概念。接下来是探索不同的方法来实现体积视频动画。特别是,“顶点对应性的介绍”一章旨在实现两个网格几何之间的对应,其中一个网格中的变换可以很容易地使用对应属性转换到另一个网格。此方法将使应用能够制作体积视频的动画。
根据本发明的第一方面,本申请的发明人意识到,在试图更新与对象相关的网格时遇到的一个问题源于更新的网格可能与先前使用的网格在表示对象的顶点数量方面不同,更新的网格可能不包括用于启用对象的动画的信息和/或允许对象的动画所需的信息量将需要与更新的网格一起传输大量数据。根据本申请的第一方面,通过使用对应性信息克服了此困难。对应性信息表示与同一对象关联的两个网格之间的映射。发明人发现,提供对应性信息是有利的,因为对应性信息使得例如能够将与两个网格中的一个网格相关联的动画信息应用于另一个网格,或者使用对应性信息,响应于另一网格的动画来确定对象的姿势的相对变化,该对象的姿势与两个网格中的一个相关联。因此,没有必要为第二网格提供动画信息,因为第二网格的动画可以使用对应性信息通过第一网格的相应动画来模仿/仿效。这是基于这样的想法:如果数据流包括对应性信息而不是动画信息,则可以减少数据流中的数据量。第二网格可表示第一网格的更新,其中第一网格与第二网格不同,例如,在顶点的数量方面。对应性信息允许将与第一网格相关联的动画信息应用于第二网格,即使第一网格与第二网格不同,因为对应性信息包括,例如关于两个网格的顶点和/或面如何链接的信息。因此,例如,对于此对象,数据流可仅包括与第一网格相关联的动画信息,而不包括第一网格的更新,例如,对于第二网格。
因此,根据本申请的第一方面,一种具有以场景描述语言编码在其中的体积视频数据的数据流表示包括一个或多个对象的场景,例如体积对象或3D对象。数据流对于所述一个或多个对象中的至少一个对象包括第一网格数据、第二网格数据和对应性信息。第一网格数据用第一网格描述至少一个对象,第二网格数据用第二网格描述至少一个对象,并且对应性信息表示第一网格与第二网格之间的映射。如果数据流对于一个对象包括的第一网格数据、第二网格数据和对应性信息,则第一网格数据用第一网格描述此对象,并且第二网格数据用第二网格描述此对象。当数据流对于两个或更多个对象包括第一网格数据、第二网格数据和对应性信息时,对于两个或更多个对象中的每一个,相应的第一网格数据用第一网格描述相应的对象,并且相应的第二网格数据用第二网格描述相应的对象,并且对应性信息表示相应的第一网格和第二网格之间的映射。第一网格数据可以通过定义第一网格的顶点来描述第一网格,并且可以另外包括关于如何定义顶点之间的面或定义可以从中派生出面的顶点之间的某种顶点关系的信息(可以称为面数据)。第二网格数据可以通过定义第二网格的顶点来描述第二网格,并且可以另外包括关于如何定义顶点之间的面或定义可以从中派生出面的顶点之间的某种顶点关系的信息。第一和/或第二网格可表示对象的表面表示。可选地,第一网格可以被理解为对象的第一皮肤,并且第二网格可以被理解为对象的第二皮肤。
因此,根据本申请的第一方面,一种用于生成(或评估)数据流的设备被配置为以场景描述语言将体积视频数据的一个或多个对象生成(或评估)到数据流中(或从数据流生成(或评估)),该数据流表示包括一个或多个对象的场景。另外,用于生成的设备被配置为对于至少一个对象向数据流提供至少第一网格数据、第二网格数据和对应性信息,评估设备被配置为对于至少一个对象从数据流中取回至少第一网格数据、第二网格数据和对应性信息。上述第一网格数据、第二网格数据和对应性信息已经在上述数据流的上下文中进行了说明。
根据实施例,用于评估的设备是头戴式显示设备、移动设备、平板电脑、边缘服务器、服务器或客户端。
根据实施例,用于评估数据流的设备被配置为通过评估第一网格数据、第二网格数据和对应性信息来生成至少一个对象的表示。对应性信息可用于在时间连续性方面改进表示,例如,通过在时间上过滤第一时间戳与第二时间戳之间的表示。可替代地,对应性信息可以指示在对象的预定姿态中的第二网格和第一网格的顶点和/或面之间的映射。例如,映射指示多个顶点到面对应性,例如,对于第二网格的多个顶点中的每个顶点,可以指示顶点到面对应性,其中顶点到面对应性指示第二网格的顶点的第一网格的对应面。生成可涉及
对第一网格进行变换,以使第一网格描述处于预定姿态的对象;
对于多个顶点到面对应性中的每个指示的顶点到面对应性,计算第二网格的相应顶点与第一网格的相应面之间的相对偏移量;
对第一网格进行变换,以使第一网格描述处于进一步的姿态的对象,以及
将相对偏移量应用于结果的变换后的第一网格,以使结果的第二网格描述处于进一步的姿态的对象。
预定的姿态可以对应于第二网格的姿态,例如初始姿态。第二网格的姿态可以通过对应性信息在数据流中表示。因此,在计算相对偏移量时,第一网格和第二网格以相同的姿态,即预定姿态描述对象。
数据流、用于生成数据流的设备和/或用于评估数据流的设备可以包括下列所述的一个或多个特征。
例如,第一网格和第二网格各自包括多个顶点和多个面,其中,由多个顶点中的三个或更多个顶点的一组跨越的区域形成多个面的一个面。例如,顶点表示三维中的点/位置,而面表示例如由三个或更多个顶点定义的平面,例如,由三个或更多个顶点之间的连接线,例如边包围的区域。多个顶点中的每个顶点可以与索引相关联,或者可以通过其在三维中的位置来识别。多个面的每一个面可以与索引相关联,或者可以与与各自面的相关联的三个或更多个顶点的索引相关联,或者可以通过与各自面的相关联的三个或更多个顶点的位置来识别。
根据实施例,第一网格与第二网格之间的映射是顶点到顶点映射、顶点到面映射和/或顶点到多顶点映射之一。根据实施例,对应性信息指示是否使用顶点和/或面的索引指示映射,或者是否不使用顶点和/或面的索引指示映射,或者是否使用索引和非索引的组合指示映射。
在顶点到顶点映射中,例如,网格之一的每个顶点可能需要索引,它指向另一个网格中的一个或多个相应的顶点。基于对应性信息,对于第二网格的多个顶点中的每个顶点,可以计算出相应顶点的位置与第一网格的多个顶点中的相应顶点的位置之间的偏移量。换句话说,对于两个顶点对,两个顶点的位置之间的偏移量可以是可计算的,其中第一网格和第二网格的多个顶点被分组为两个顶点对,并且其中两个顶点对包括第二网格的顶点和第一网格的相应顶点。对应性信息可以通过指示顶点的索引或指示顶点在三维中的位置来指示顶点,也可以通过指示一个顶点的关联索引和另一个顶点在三维中的关联位置来指示顶点。
在顶点到面映射中,例如使用索引,例如,可以为一个网格的每个顶点花费索引,它指向另一个网格中的相应面,反之亦然,可以为一个网格的每个面花费索引,它指向另一个网格中的一个或多个相应顶点。例如,所述对应性信息包括一个整数值,该整数值标识所述第二网格的相应顶点(例如所述索引顶点)所应用的第一网格的索引面。基于对应性信息,可将用于评估数据流的设备配置为,对于第二网格的多个顶点中的每个顶点,确定/计算相应顶点的位置与该顶点投影到第一网格的多个面的对应面的位置之间的偏移量,例如相对偏移量。换句话说,第二网格的各自顶点与第一网格的对应面之间的距离可以是基于对应性信息可确定/可计算的。例如,对应性信息将第二网格的顶点与第一网格的面连接起来。对于第二网格的多个顶点中的每个顶点,对应性信息可以通过指示顶点的索引或通过指示顶点在三维中的位置来指示顶点,对应性信息可以通过指示对应面的索引或通过指示与对应面的关联的顶点的位置来指示第一网格的多个面的对应面。
在顶点到多顶点映射中,例如,一个网格的每个顶点可能会占用索引,它指向另一个网格中相应的一组顶点。例如,对于一个网格的每个顶点,对应性信息定义了顶点位置x,y,z-s的n元组,该元组定义了另一个网格的面,该面对应于网格的相应顶点。基于对应性信息,对于第二网格的多个顶点中的每个顶点,可计算相应顶点的位置与第一网格的多个顶点中的一组相应顶点的位置之间的偏移量。例如,对于第二网格的多个顶点中的某个顶点,相应一组顶点包括位于第一位置的第一顶点、位于第二位置的第二顶点和位于第三位置的第三顶点。某个顶点的位置和第一顶点的位置之间的第一偏移量,某个顶点的位置和第二顶点的位置之间的第二偏移量,以及某个顶点的位置和第三顶点的位置之间的第三偏移量可以是可计算的。对应性信息可以通过指示顶点的索引来指示顶点,或者通过指示顶点在三维中的位置来指示顶点,或者通过指示一个顶点的关联索引和其他顶点在三维中的关联位置来指示顶点,或反之亦然。
根据实施例,第一网格数据包括用于第一网格的变换的变换信息,以描述至少一个对象的不同姿态。例如,变换信息指示要应用变换的对象的关节和/或骨骼,以及例如对于每个指示的关节和/或骨骼的特定变换。
根据实施例,变换信息指示与第二网格相关联的时间戳的变换。可以对第一网格进行变换,使变换后的第一网格所描述的姿态与第二网格在时间戳处所描述的姿态相同,从而能够确定由对应性信息指示的相应顶点和面的偏移量或网格间距离。所确定的偏移量或网格间距离可用于校正进一步变换的第一网格,例如,通过应用由变换信息指示的进一步变换或通过进一步变换信息获得的进一步变换,从而校正的进一步变换的第一网格表示描述处于进一步姿态的对象的第二网格。
根据实施例,变换信息包括一个或多个骨架数据和一个或多个变形目标,用于第一网格的一组顶点中的每一个,或用于第一网格的一组顶点中的每一个,用于至少一个对象的每一个不同姿态的顶点位置。骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。蒙皮可以理解为对象的网格/蒙皮的绑定(binding)/附着,例如对象的第一网格到对象的虚拟骨架/绑定(rig),以便网格/蒙皮响应于骨架/绑定的变换/运动而移动。骨架/绑定可以由骨骼数据和关节数据指示的骨骼和关节来定义,其中两个骨骼通过关节相连接。例如,权重数据表示第一网格顶点的每个顶点的一个或多个权重,其中一个或多个权重表示每个骨骼或关节贡献或影响每个顶点的程度,或者一个或多个权重表示一个或多个骨骼或关节贡献或影响每个顶点的程度。例如,一个或多个变形目标的变形目标将第一网格的“变形”版本定义为一组顶点的位置,其中,例如,变形目标包括第一网格的一组顶点的每个位置。
根据实施例,变换涉及至少一个对象的动画,皮肤修改,例如网格修改,或变形。
根据实施例,变换信息包括变换类型、缩放、旋转、平移值中的一个或多个或作为其组合的矩阵。换句话说,变换信息包括变换类型中的一种或多种,如缩放、旋转或平移。另外或可替代地,变换信息可以包括缩放值、旋转值、平移值或作为其组合的矩阵。
根据实施例,对应性信息包括/提供用于将第一网格的变换应用于第二网格的应用信息。第二网格,即依赖网格,可以通过依赖于第一网格,即阴影网格,来变换/动画化。应用信息例如提供如下直接提供:提供顶点之间的对应性和/或第二网格和第一网格预定的姿态中的面,如此这些信息在这些相互对应的顶点之间的相对偏移量和/或第二网格和第一网格在预定对象的姿态中的面可被确定,其通过让第一网格变换和应用相对偏移到最终变换的第一网格在至少一个对象的进一步姿态中采用。预定的姿态可对应于由第二网格定义的初始姿态。在第二网格是第一网格在第二时间戳的更新的情况下,预定姿态可以对应于第二网格在第二时间戳定义的姿态,其中第一网格数据可以与第一时间戳相关。例如,第一网格数据描述对象,例如至少一个对象,其中第一网格定义对象的第一位置和第一姿态,并且例如,第二网格数据描述对象,其中第二网格定义对象的第二位置和第二姿态。例如,变换信息指示第一网格的第一变换,使第一位置等于第二位置,以及第一姿态等于第二姿态。因此,通过将第一变换应用到第一网格上,第一网格与第二网格对齐。第二网格对应的姿态和/或位置可以用来变换第一网格,使第一和第二网格处于相同的姿态和/或位置。用于评估数据流的设备可以配置为基于对应性信息,例如相对偏移量,例如距离或相对位置,在第一网格与第二网格对齐的姿态和/或位置上,第二网格和第一网格的相互对应的顶点和/或面之间。变换信息,例如,通过第一网格的进一步变换之一和应用相对偏移量到产生的变换的第一网格,例如以确定顶点的位置和/或第二网格的面,其将对应于顶点的位置和/或进一步的变换之一变换的第二网格的面,指示第一网格的进一步变换以对对象的进一步姿态采取相同的操作。这是基于这样一种思想,即通过变换第一网格并使用对应性信息可以获得与直接变换第二网格相同或几乎相同的结果。
根据实施例,第一网格数据涉及第一时间戳,以及第二网格数据涉及第二时间戳,其中第二网格是第一网格的更新。例如,对应性信息包括/提供用于将第一网格变换为第二网格的应用信息,其中,第一网格数据包括用于将第一网格变换为描述至少一个对象的不同姿态的变换信息。可替代地,例如,第二网格数据包括用于第二网格的进一步变换的进一步变换信息,以便描述至少一个对象的不同姿态。因此,可以独立于第一网格变换第二网格,或者通过变换第一网格并使用对应性信息并另外使用进一步变换来变换第二网格。例如,基于对应性信息,顶点之间的相对偏移量和/或描述在可由第一网格变换采用的对象的第一组预定的姿态中在第一时间戳的第一预定对象的姿态的第一网格的面和顶点和/或描述在可由第二网格变换采用的对象的第二组预定的姿态中在第二时间戳的第二预定对象的姿态的第二网格的面是可确定的。
根据实施例,第一网格数据和/或第二网格数据包括描述至少一个对象的骨架姿态的骨架数据。骨架数据可包括关于骨架或绑定的骨骼和关节位置的信息,其中至少两个骨骼通过关节相连接。例如,骨架姿态是由骨骼和关节在至少一个对象内的位置或位置定义的。骨架数据可表明骨架或绑定的骨骼之间的层次依赖性。因此,骨骼的位移,例如,是它自己的变换和母骨的变换的结合。例如,基于层级依赖,在层级上依赖于母骨的骨骼也可因母骨的移位而发生移位。
根据实施例,第二网格包括比第一网格更多的顶点。特别是在这种情况下,对应性信息的使用可以有效地生成和评估体积视频,并且可以降低数据流的信号化成本。例如,可以仅提供第一网格变换信息,并且可以通过变换第一网格和使用对应性信息来变换第二网格。因此,在体积视频序列中,各个对象的网格可以很容易地进行调整,例如,在体积视频序列中,描述对象的网格可以根据多个顶点而有所不同。即使在这样的适应下,在生成和/或评估体积视频序列时保持高效率,并且数据流的信号成本不会显著增加。根据实施例,第二网格可与描述对象的网格的“增强”信息相关联,并且第一网格可与描述对象的网格的“基本”信息相关联。第一网格可代表“基本网格”,并且第二网格可代表“增强网格”。两个网格的纹理可以不相同,即第一网格数据可以包括第一网格纹理的纹理信息,以及第二网格数据可以包括第二网格纹理的纹理信息,其中第一网格纹理的纹理信息与第二网格纹理的纹理信息在分辨率方面不同。例如,第二网格的纹理分辨率高于第一网格的纹理分辨率。因此,可以用不同的质量来描述数据流中的对象。根据实施例,只有第一网格数据包括用于变换第一网格即低复杂度网格的变换信息,并且第二网格数据不包括用于变换第二网格的变换信息,其中第二网格比第一网格以更高的质量描述对象,因为第二网格比第一网格包括更多的顶点。用于变换第一网格的变换信息可与对应性信息一起用于执行变换,例如,对第一网格进行重组/模仿/模拟第二网格的相应变换。
根据实施例,第二网格数据包括用于网格的纹理,即用于第二网格的纹理信息。纹理信息可以包括金属度值,例如表示网格的反射特性。另外,纹理信息可以包括关于网格的区域是否被光线遮挡从而渲染得更暗的信息和/或关于从网格发出的光的颜色的信息。
根据实施例,第一网格随时间不变和/或第二网格随时间变化。如上所述,第二网格可表示第一网格的更新,其中对象的网格可以在体积视频序列中的多个时间戳上更新。因此,数据流可以包括与第一时间戳相关联的第一网格、与第二时间戳相关联的第一第二网格和与第三时间戳相关联的第二第二网格,其中第一第二网格和第二第二网格在顶点数量方面不同。例如,第一第二网格和第二第二网格的共同之处在于不提供变换信息。数据流可只包括与第一网格相关联的变换信息。
根据实施例,数据流进一步包括第二网格数据。可将用于生成数据流的设备配置为向数据流提供进一步的第二网格数据,并且可将用于评估数据流的设备配置为从数据流中取回进一步第二网格数据。进一步第二网格数据定义第二网格的更新,其中数据流指示第一网格数据所关于的至少一个对象的第一姿态以及第二网格数据所关于的至少一个对象的第二姿态。指示第一网格和第二网格之间映射的对应性信息可关于为第一网格和第二网格的对象姿态相同的情况而确定的对应性。与第一网格数据和第二网格数据有关的对象的姿态在数据流中提供,例如,用于实现通过对第一网格进行变换而得到变换后的第一网格中而从数据流中导出对应性信息,从而使得,例如如果第一姿态和第二姿态不相同,与变换的网格数据有关的至少一个对象的姿态和与第二网格数据有关的至少一个对象的第二姿态相匹配。对应性信息可以指示第一网格和第二网格的相互对应部分(顶点/面)(参见,例如顶点到面对应),并且对于每一对相互对应的部分,相互对应部分对的两个部分之间的网格间距离可以由用于评估数据流的设备计算。例如,通过使用与第一网格相关联的相应变换信息进行变换,第一姿态和第二姿态可以被第一网格所采用,并且第一姿态可以是对其进行对应性信息以确定网格的相互对应部分(顶点/面)的网格间距离的姿态,然后该姿态也可以用于其他姿态。例如,数据流另外指示进一步第二网格数据所涉及的至少一个对象的第三姿态,其中第三姿态可以与第二姿态相同。指示第一网格与更新后的第二网格之间的映射的进一步对应性信息可以如第一网格与第二网格之间的映射所描述的那样派生。根据实施例,进一步的第二网格数据通过定义旧的第二网格和第二网格的更新版本之间的差异来定义第二网格的更新,例如,两个网格之间顶点和/或面的位置的差异和/或两个网格之间多个顶点和/或面的差异。在这种情况下,可能需要更新的对应性信息。可替代地,进一步的第二网格数据通过定义导致更新的第二网格的第二网格的变换来定义第二网格的更新。在这种情况下,可能不需要更新的对应性信息。
根据实施例,对应性信息包括用于评估视频流即数据流的评估信息,例如包括用于体积视频序列的信息的数据流。根据实施例,评估信息指示用于评估的算法。根据实施例,评估信息包括指向算法的指针,用于推导出一组算法的映射。例如,该算法被配置为确定两个网格,即第一网格和第二网格的相互对应部分(顶点/面)的网格间距离。例如,该算法被配置为,对于第二网格的多个顶点中的每个顶点,确定各自顶点的位置与该顶点的投影到第一网格的多个面的对应面的位置之间的偏移量。根据实施例,评估信息包括至少一个对象的姿态指示,该算法将应用于该映射的推导。所指示的姿态可代表第二网格所描述的对象的姿态,也可代表一个中立的姿态,比如所谓的T姿态。该算法可以配置为控制由第一网格描述的至少一个对象的姿态是否与评估信息所指示的姿态相匹配。如果第一网格所描述的姿态与评估信息所指示的姿态不匹配,则例如,将该算法配置为使用与第一网格相关联的变换信息对第一网格进行变换,使得第一网格所描述的姿态与评估信息所指示的姿态相匹配,并推导出映射,例如,网格间距离或偏移量。如果第一网格所描述的姿态与评估信息所指示的姿态相匹配,则该算法例如被配置为派生映射,例如网格间距离或偏移量。
根据实施例,第一网格数据和/或第二网格数据包括两个或更多个网格,每个网格包括多个顶点,其中两个或更多个网格中的一个网格是两个或更多个网格中的另一个网格的扩展。
根据实施例,数据流进一步包括关于网格,即多个网格,的多个进一步网格数据,并且对应性信息包括关联信息,其识别多个网格之中第一网格和第二网格。特别是在只有第一网格数据包括变换信息的情况下,对应性信息可以表明与第一网格关联的变换信息可以与对应性信息一起用于变换第二网格。换句话说,对应性信息可将第一网格识别为第二网格的“阴影网格”,其中第二网格可被理解为“依赖网格”。对应性信息可以提供对“阴影网格”的引用,通过指定网格阵列中的网格索引,与建立对应性值的依赖网格相关联。关联信息可指示两个网格,其映射由对应性信息指示。换句话说,关联信息可以指示多个网格中的第一网格和/或进一步多个网格中的第二网格。根据实施例,从相同的多个网格中选择第一网格和第二网格。例如,关联信息标识哪些网格连接在一起。根据实施例,可将用于生成数据流的设备配置为向数据流提供多个进一步网格数据,并且可将用于评估数据流的设备配置为从数据流取回多个进一步网格数据。
根据实施例,第一网格是先前传输的第一网格的更新和/或第二网格是先前传输的第二网格的更新。
根据实施例,用于网格的网格数据是相应先前传输网格的更新,包括更新的骨架数据和/或更新的关节数据,和/或更新的权重数据,和/或更新的变换数据,即变换信息,和/或更新的纹理信息,和/或更新的顶点数,和/或更新的一个或多个顶点的新位置,和/或更新所对应的姿态的指示。
根据实施例,第一网格是先前传输的第一网格和第一网格数据的更新,即用于该网格的网格数据是对应的先前传输的网格的更新,包括更新的权重数据和更新的变换信息(与网格数据相关的附加信息可以更新,如上所述)。例如,更新的变换信息指定多个关节(例如,关节数据或更新的关节数据)或多个骨骼(例如,骨架数据或更新的骨架数据),其中第一网格的变换由变换信息描述,并且更新的变换信息指示关节或骨骼,例如,通过指定索引,其中,第一网格的变换由变换信息描述。可替代地,例如,更新的变换信息指示了许多变形目标,更新的权重数据为其提供了与第一网格的顶点相关联的权重。
根据实施例,第二网格是先前传输的第二网格和第二网格数据的更新,即用于该网格的网格数据是对应的先前传输的网格的更新,包括更新的骨架数据、更新的关节数据、更新的纹理信息、更新的顶点数、更新的一个或多个顶点的新位置,以及更新所对应的姿态的指示中的一个或多个。与更新相对应的姿态可以表示为与第一网格相关联的变换信息,例如,更新的变换信息,其中,变换信息表示将应用于第一网格的关节的变换,以便第一网格描述与更新相对应的姿态中的对象。可以将变换信息所指示的变换应用于第一网格,使其在与第二网格的更新相对应的特定时间与第二网格处于相同的位置,例如预定位置。因此,可以对第一网格或更新后的第一网格进行变换,使第一网格或更新后的第一网格所对应的姿态/等于更新后的第二网格所对应的姿态,从而确定两个网格之间的映射。此外,对应性信息是先前传输的对应性信息的更新,因为骨架数据和/或关节数据和/或顶点数已经更新。更新的对应性信息表示更新的第二网格与第一网格或更新的第一网格之间的映射。
根据实施例,对应性信息是先前传输的对应性信息的更新。
根据实施例,更新的对应性信息包括优选可配置的对应性值的长度、对应性的数量、对应性的类型,例如顶点到顶点、面对面、顶点到面和/或顶点到多顶点,和/或包括这些对应性值的长度的信息中的一个或多个。对应性值的长度,即这些对应性值的长度,可以指定对应性值的精度。对应性值的长度,即这些对应性值的长度,可以用字节表示。
根据实施例,任何数据和/或信息都可以作为数据流中的链接提供,链接到实际的数据/或信息。例如,数据和/或信息保存在访问器中。例如,对应性值可以存储在访问器中,并且数据流中的对应性信息可以指示访问器的索引,以便将对应性信息链接到实际的对应性值。
根据实施例,链接数据和/或数据流中的信息是指一个或多个场景描述语言,现场,对象,第一网格数据,第一网格,第二网格数据,第二网格,多个顶点之一,多顶点之一,映射,变换信息,变换,应用信息,姿态数据,姿态,骨架数据,关节数据,权重数据,纹理信息,纹理、评估信息、算法和/或关联信息。
根据实施例,所链接的实际数据是在网络位置上访问可。
根据实施例,场景描述语言基于JSON标准。
根据实施例,场景描述语言采用图形库传输格式。
根据实施例,第二网格数据是体积扫描。
根据实施例,第二网格数据是以三维技术用另一个相机记录的,或由计算机生成的。
根据本发明的第二方面,本申请的发明人认识到,当试图用体积视频再现现实场景时遇到的一个问题源于这样一个事实,即在现实场景中,代表对象的许多顶点通常随时间变化。根据本申请的第二方面,通过随时间更新与体积视频场景中的对象相关的信息来克服这一困难。发明人发现,使用第一网格更新描述对象的网格数据和更新第一网格的变换的变换信息是有利的。例如,第一网格包括多个顶点和多个面,其中由多个顶点中的三个或更多顶点的一组跨越的区域形成多个面的一个面。网格的面和顶点在上面有更详细的描述。第一网格可以通过变换进行变换,例如,根据变换信息通过改变第一网格的多个顶点中的一组顶点的位置来进行变换。发明人意识到将网格数据与变换信息一起更新并指出第一网格的多个顶点是有效的。这是基于这样的想法,即此实现允许随着时间的推移改变第一网格的顶点数量,例如在定时体积视频序列的过程中。因此,可以用体积视频数据来表示真实的场景。
因此,根据本申请的第二方面,具有在其中以场景描述语言编码的体积视频数据的数据流表示包括一个或多个对象的场景。数据流对于至少一个对象包括网格数据的更新和变换信息。网格数据用第一网格描述至少一个对象,以及变换信息,例如蒙皮信息,表示用于第一网格变换的信息,以描述至少一个对象的不同姿态。对于每次更新,网格数据用第一网格描述处于预定姿态的至少一个对象,其中第一网格可通过变换向不同姿态变换,并且其中数据流表示网格的顶点数量。
因此,根据本申请的第二方面,用于生成(或评估)数据流的设备被配置为以场景描述语言将体积视频数据的一个或多个对象生成(或评估)到数据流中(或从数据流中生成(或评估)),该数据流表示包括一个或多个对象的场景。用于生成的设备配置为至少向用于至少一个对象的数据流提供网格数据和变换信息的更新,并且对于每次更新,提供第一网格的顶点数。用于评估的设备配置为从数据流中为至少一个对象取回至少网格数据和变换信息的更新,并且对于每次更新取回第一网格的顶点数量。网格数据和变换信息已经在上面的数据流上下文中解释过了。
数据流、用于生成数据流的设备和/或用于评估数据流的设备可以包括下列的一个或多个特征。
根据实施例,数据流包括指示顶点数量保持不变还是动态变化的配置信息,其中,如果顶点数量动态变化,则数据流在每次更新时发出网格顶点数量的信号。可将用于生成数据流的设备配置为向数据流提供配置信息,并且可将用于评估数据流的设备配置为从数据流取回配置信息。
根据实施例,在每次更新时,更新网格数据和变换信息。
根据实施例,在网格的顶点数发生变化的更新时更新变换信息,而在顶点数不发生变化的更新时,变换信息保持不变并保持不更新。
根据实施例,变换信息包括骨架数据和一个或多个变形目标中的一个或多个,骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。
根据实施例,变换信息包括骨架数据和一个或多个变形目标,骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,其中,在更新时,一个或多个变形目标和骨架数据以不同的更新速率更新。
根据本发明的第三方面,本申请的发明人认识到,当试图用体积视频再现现实场景时遇到的一个问题源于这样一个事实,即在现实场景中,对象的拓扑结构通常随时间而变化。根据本申请的第二方面,通过随时间更新与体积视频场景中的对象相关的信息来克服此困难。发明者发现,更新姿态混合形状信息是有利的。例如,姿态混合形状信息提供用于校正网格变形问题的信息,其中网格变形问题是应用于网格的变换的结果。发明者意识到更新姿态混合形状是有利的,因为对象可以很容易地变形/适应使用姿态混合形状,因此可以实现更真实的体积视频。例如,由于网格的一些顶点的变化,可以更新姿态混合形状。因此,如果对象的拓扑,例如代表对象网格的顶点数量随着时间的推移而变化,则可以使用基于新拓扑更新的姿态混合形状来改进网格变换的结果。也可根据改变与对象相关的姿态混合形状的数量来更新姿态混合形状,例如增加或减少姿态混合形状的数量。因此,可以实现对象的实际表示,并且同时仅表示对象的相关姿态混合形状,从而在生成和评估具有体积视频数据的数据流方面实现高效率。根据此方面,有可能在体积视频的场景中改进对象的表示,因为对象可以通过不同的网格和/或姿态混合形状随着时间的推移来描述。对象的拓扑结构可以随着时间的推移而调整,就像在现实场景中一样。
因此,根据本申请的第二方面,具有在其中以场景描述语言编码的体积视频数据的数据流表示包括一个或多个对象的场景。数据流包括用于用第一网格描述至少一个对象的至少一个对象的网格数据,以及用于描述至少一个对象的不同姿态的第一网格变换的变换信息,例如蒙皮信息,以及姿态混合形状信息的更新,例如变形目标信息。姿态混合形状信息指示在渲染开始时和/或没有变换时采用的默认姿态,和/或姿态混合形状信息的更新指示由姿态混合形状信息指示的多个姿态混合形状。
根据实施例,数据流用信号通知网格的顶点的数量。用于生成数据流的设备可以配置为向数据流提供网格的顶点的数量,并且用于评估数据流的设备可以配置为从数据流取回网格的顶点的数量。
根据实施例,数据流包括网格数据和/或变换信息的进一步更新。用于生成数据流的设备可以配置为向数据流提供网格数据和/或变换信息的更新,并且用于评估数据流的设备可以配置为从数据流取回网格数据和/或变换信息的更新。
根据实施例,姿态混合形状信息的更新至少发生在网格的顶点的数量发生变化的进一步更新处。
根据实施例,姿态混合形状信息的更新与网格的顶点的数量发生变化的进一步更新同步。
本发明的实施例与方法相关,其基于与上述用于生成或评估数据流的设备相同的考虑。顺便说一下,这些方法可以完成所有的特征和功能,这些特征和功能也被描述为关于设备。
实施例涉及具有用于在计算机上运行时执行本文所述方法的程序代码的计算机程序。
附图说明
附图不一定按比例,相反,重点通常放在说明本发明的原理上。在下面的描述中,参考以下附图描述了本发明的各种实施例,其中:
图1示出了图形API的概述,
图2示出了glTF的数据结构,
图3示出了具有一个节点和两个子节点的场景的示例性信令,
图4示出了用于创建关节矩阵的线性组合的示例性伪代码,
图5示出了使用变形目标的动画的示例性信令,
图6示出了用于使用变形目标渲染顶点位置的示例性伪代码,
图7示出与网格数据和变换信息更新相关的实施例,
图8示出了计算关节矩阵的伪代码的实施例,
图9示出了用于定义至少一部分网格数据的伪代码的实施例,
图10示出用于定义至少一部分网格数据的伪代码的进一步实施例,
图11示出配置为在数据流中提供网格数据和变换信息的更新的方法的实施例,
图12示出配置为从数据流取回网格数据和变换信息的更新的方法的实施例,
图13示出与姿态混合形状的更新有关的实施例,
图14a示出了微笑嘴的姿态混合形状的示例,
图14b示出用于将二头肌形成隆起的姿态混合形状的示例,
图14c示出用于向对象提供围巾的姿态混合形状的示例,
图15示出用于应用姿态混合形状的伪代码的实施例,
图16示出用于应用姿态混合形状的伪代码的进一步实施例,
图17示出了定义至少一部分姿态混合形状信息的伪代码实施例,
图18示出了用于为姿态混合形状的预定姿态提供权重的伪代码实施例,
图19示出了用于姿态更新的伪代码的实施例,
图20示出了配置为在数据流中提供姿态混合形状信息的更新的方法的实施例,
图21示出了配置为从数据流取回姿态混合形状信息的更新的方法的实施例,图22示出了与两个网格之间的对应性信息相关的实施例,
图23a示出了顶点到面映射的实施例,
图23b示出了顶点到顶点映射的实施例,
图23c示出顶点到多顶点映射的实施例,
图24示出用于评估信息的伪代码的实施例,
图25示出用于提供第二网格以及对应性信息的伪代码实施例,
图26示出了提供多个网格以及对应性信息的伪代码的实施例,
图27示出了根据实施例的对应性的可能定义表的摘录,
图28示出根据实施例的用于对应性的可能定义表的可替代摘录,
图29示出与非索引几何相关的伪代码的实施例,
图30示出根据实施例的用于对应性的可能定义表的进一步摘录,
图31示出了根据实施例的对应性的可能定义表的进一步摘录,
图32示出与对应性值的数量、格式和长度相关的伪代码实施例,
图33示出用于定义至少一部分对应性信息的伪代码实施例,
图34示出用于定义至少一部分对应性信息的伪代码的进一步实施例,
图35示出用于定义至少一部分对应性信息的伪代码的进一步实施例,
图36示出与定时访问器相关的伪代码的实施例,
图37示出用于定义第一网格的变换信息的伪代码实施例,
图38示出用于定义第一网格的变换信息的伪代码的进一步实施例,
图39示出了用于定义第一网格的变换信息的伪代码的进一步实施例,
图40示出用于不同变换之间同步的伪代码实施例,
图41示出配置为在数据流中提供对应性信息的方法的实施例,以及
图42示出配置为从数据流取回对应性信息的方法的实施例。
具体实施方式
在下文中,将使用附带的描述详细地描述本公开的实例。在下面的描述中,为了对本公开的实施例提供更彻底的解释,将描述许多细节。然而,对于本领域技术人员来说,可以在没有这些具体细节的情况下实施其他实施例是显而易见的。所描述的不同实施例的特征可以彼此组合,除非相应组合的特征是互斥的或明确排除这种组合。
应当指出的是,相同或类似的元件或具有相同功能的元件可以具有相同或类似的参考符号,也可以相同地指定,对具有相同或类似参考符号的元件进行重复描述,或者通常省略相同。具有相同或相似参考符号或被标记为相同的元素的描述是可互换的。
1.基本概念
最近,3D内容的压缩引起了一些关注。其中一个示例是Draco,一种用于压缩和解压缩3D几何网格和点云的开源库。此外,在MPEG中目前正在进行一些标准化工作,以指定用于点云压缩和网格压缩的解决方案。当这种方案得到广泛应用并且实现合理的压缩效率和复杂度时,动态3D几何对象的传输,即运动的3D几何对象的序列,将是可行的。
网格动画在过去已经被广泛使用,特别是应用于CGI内容。网格动画的概念是对象、或其网格可以被修改/变换,并且例如表示运动(例如,人走路)。已经针对这类动画采用了不同的方法。
最基本的一种是基于所谓的蒙皮。基本原理依赖于绑定(rigging),绑定是其中对象是由表面(网格皮肤)和具有等级的一组相互连接的骨骼(共同形成骨架或绑定)表示的过程。网格的顶点与连接它们的骨骼或关节相关联,并且具有蒙皮矩阵形式的缩放因子(用于每个骨骼或关节的顶点权重),该缩放因子描述了两个骨骼的关节附近的网格/蒙皮的运动受骨骼影响的程度。因此,骨骼中的任何移动/变化(骨骼的位置/方向)决定了网格/皮肤的顶点的新位置。下面的公式示出了线性混合蒙皮,这是一种特殊类型的蒙皮。请注意,有更多的方法可以进行蒙皮,例如以更高的计算复杂性为代价产生更少的伪影的对偶四元数蒙皮。然而,本应用的细节可以应用于任何类型的蒙皮,并且下面的公式仅作为示例示出。
p′i=∑jwijTjpi,其中Tj为骨骼j的变换,pi为顶点i的原始位置,wij为顶点i相对于骨骼j的权重,以及p’i是经蒙皮的顶点i的新位置。
然而,这样的动画遭受严重的变形,例如,模型变形未良好对应于类似的自然对象通常会如何变形。
另一种替代方案是基于变形目标制作动画。基本上来讲,这个想法是提供对象在不同位置处的网格(例如,对象的姿态)。然后,通过在两个或更多个这些变形目标之间进行插值,可得到不同位置处的对象的网格。插值可以通过网格的权重来控制。权重决定如何将这些变形目标位移添加到几何的初始状态,以获得几何的当前状态。
通常,3D内容包含在表明3D内容应该如何被渲染的场景结构下。它也被称为场景描述。复杂的3D场景可以用创作工具创建。这些工具允许编辑场景的结构、灯光设置、相机、动画,当然还有场景中出现的对象的3D几何形状。应用以其自己的自定义文件格式存储此信息,以用于存储和导出的目的。例如,Blender将场景存储在.blend文件中,LightWave3D使用.lws文件格式,3ds Max使用.max文件格式,以及Maya使用.ma文件。
3D数据扫描仪,例如LIDAR扫描仪,也以适当的格式导出3D资产,诸如.ply。然而,这样的格式不包含关于场景结构的信息或者关于对象应该如何渲染的信息。因此,将这样的3D资产导入到创作工具中,以使得可以以场景描述格式包含3D资产。
指令中描述的应用所需的一个重要部分是场景描述。场景描述语言是一种用于向3D渲染器描述场景的语言,即共同形成场景的对象如何组成(3D/2D几何形状,形式,纹理,动画)和/或如何相对于彼此进行排列。存在几种场景描述语言。
Khronos开启了GL传输格式(glTF),用于为3D场景的导入和导出的零散实践带来统一的解决方案。解决方案包括:
-用JSON描述的场景结构,其非常紧凑,并且能够容易地解析。
-对象的3D数据以一种可以被常见图形API,诸如OpenGL、WebGL等直接使用的形式存储,因此没有用于解码或预处理3D数据的开销。
本文的描述将主要集中于gLTF,但这应被理解为示例,因为本文所描述的实施例可以被类似地集成到例如上面列出的任何其他场景描述格式中。另请参见图1,它示出了图形API(应用程序编程接口)的概述。
glTF(GL传输格式)是一种用于通过应用进行高效存储、传输、加载和渲染3D场景及其包含的单个模型的规范。glTF是一种与供应商和运行时无关的格式,其可以用最少的处理加载。glTF旨在帮助桥接内容创建和呈现之间的缝隙。glTF是用表示几何图形、动画和其他丰富数据的一个或多个二进制文件格式化的JSON。二进制数据以这样一种方式存储,它可以被直接加载到GPU缓冲区,而不需要额外的解析或其他操作。glTF格式的数据的基本层次结构如图2所示。图2示出了glTF的数据结构。
在glTF中,场景由几个节点组成。节点可以彼此独立,或者也可以遵循glTF中定义的某种等级依赖关系。节点可以对应于相机,从而描述用于渲染的投影信息。然而,节点也可以对应于网格(描述对象)和皮肤(如果允许蒙皮)。当节点指向网格和皮肤时,皮肤包含关于网格如何基于当前骨架姿态变形的进一步信息(例如蒙皮矩阵)。在这种情况下,定义节点等级结构来表示动画角色的骨架。网格可以包含多个网格基元,这些基元包括顶点的位置、法线、关节、权重等。在glTF中,皮肤包含对反向绑定矩阵(IBM)的参考。矩阵将几何图形变换为各自关节的空间。
所有数据,诸如网格顶点、纹理、IBM等都存储在缓冲区中。此信息被结构化为缓冲视图,例如,一个缓冲视图被描述为具有给定步幅、偏移量和长度的缓冲区的子集。访问器定义了存储在缓冲视图中的数据的确切类型和布局。glTF将纹理、网格信息和其他参数链接到缓冲视图,这样就可以清楚在缓冲区中存在的数据中的何处可以找到所需的信息。
也可以提供可包括将被应用到渲染对象的纹理的材料。采样器描述了纹理的包裹和缩放。网格提供具有用于将纹理或纹理子集映射到网格几何的纹理坐标的信息。最后,glTF支持使用蒙皮和变形目标的预定义动画。
1.1顶点蒙皮动画
图3示出了使用蒙皮的glTF结构的示例,该结构具有一个节点和两个子节点。
对于蒙皮,mesh.primitives(网格基本体)包含属性,特别是“JOINTS_0”和“WEIGHTS_0”,如图3中突出显示的。用于mesh.primitives的数据“JOINTS_0”经由访问器2来访问,如示例中以黄色突出显示的那样。数据包含在蒙皮过程中对顶点有影响的关节的索引。另一方面,如示例中以绿色突出显示的访问器3中的mesh.primitives"WEIGHTS_0"提供关于每个关节应当用来影响每个顶点的强度的信息。组合"JOINTS_0"和"WEIGHTS_0"属性可以得到关于每个关节对每个顶点的影响的确切信息。关节矩阵描述骨架的当前姿态。在glTF中,皮肤属性包含对反向绑定矩阵(IBM)的参考。使用访问器4中的inverseBindMatrices数据计算每个关节的关节矩阵,如示例中以黄色突出显示的那样。客户端应用渲染器中的顶点着色器使用组合信息创建关节矩阵的线性组合,如图4的伪代码所示。
为了执行顶点蒙皮动画,关节节点被变换。动画属性包括不同的动画集。每个动画条目包含通道列表和相应的采样器。例如,如图3中所示的示例中在动画下突出显示的黄色。采样器阵列包含animation.sampler(动画采样器)对象,其定义了由访问器提供的值应当如何在关键帧之间插值。animation.sampler.input(动画采样器输入)是指提供关键帧时间间隔的访问器,而animation.sampler.output(动画采样器输出)是指为节点(在本例中是关节)提供关键帧变换数据的访问器。
动画包含animation.channel(动画通道)对象的阵列。通道建立了输入,即从采样器计算的值,与输出,即动画化的节点属性,之间的连接。因此,每个通道通过使用采样器的索引引用一个采样器,并包含animation.channel.target(动画通道目标)。animation.channel.target使用节点的索引引用节点,并包含路径,该路径定义了应该动画化的节点的属性。来自采样器的值将被写入此属性。在图3中示例中以黄色突出显示的,使用来自sampler.index(采样器索引)0处的采样器的关键帧信息,利用“LINEAR”插值对节点索引2处的节点的节点属性“旋转”进行动画化。
上面的示例只涵盖了LINEAR插值。glTF资产中的动画可以使用三种插值模式:
·阶式
·线性
·三次样条
1.2变形目标动画
该动画包括采样器,采样器的输入对应于用于由访问器5提供的动画的内部时间,以及由访问器6提供的用于关节(在节点2中)的旋转值作为采样器的输出。用于关节的旋转值(在节点2中)是在动画持续时间内用“LINEAR”函数插值的。
图5示出了使用变形目标的示例。
在此第二种方法中,没有骨架、关节和骨骼的概念,但是为网格提供了在访问器1中描述的顶点位置。然后,由访问器2和访问器3定义两个变形目标,即某些网格属性(在本例中为顶点位置)的位移或差异。在这个示例中,有两个变形目标,它们都将“POSITION”(黄色突出显示)属性映射到包含变形顶点位置的访问器。网格还包含权重阵列(黄色突出显示),它定义了每个变形目标对最终渲染网格的贡献。
网格的权重决定了如何将这些变形目标位移添加到初始几何体中,以获得几何体的当前状态。用于计算网格基本体的经渲染顶点位置的伪代码如图6所示。
如示例结果所示的经渲染动画将是应用于不同变形目标(在本例中为“LINEAR”)的插值。与顶点蒙皮动画类似,这里的动画包含采样器,其输入对应于由访问器4提供的动画的关键帧时间间隔。然而,在变形目标动画中,输出包含访问器5中的动画的关键帧权重变换数据,以黄色突出显示。在动画持续时间内用“LINEAR”函数对node.index(节点索引)0处的节点的权重值进行插值。
2.glTF在体积视频中的局限性
glTF不提供更新对象拓扑的手段(例如,有多少点代表对象的网格)。捕获的体积扫描被处理以生成纹理材料和3D网格几何。在现实场景中,表示对象的顶点的数量通常是变化的。同时,体积扫描缺乏关于如皮肤和用于动画的变形目标等语义信息的信息。一些已经被考虑的解决方案很难在实践中使用,因为允许动画的信息量将需要传输大量数据。
3.解决方案
有三种不同的方法可以为体积视频实现动画:
1.在源处绑定体积视频扫描并流式传输蒙皮矩阵(参见上面的蒙皮示例)
a.优点:
ⅰ.在gLTF中没有额外的数据和语义引入(解决方案3需要)
b.缺点:
ⅰ.纯蒙皮实现;这将导致特定于皮肤的伪影,诸如糖果包装
ii.当拓扑结构发生变化时,视频扫描(对象网格)和对应的蒙皮矩阵需要被更新(传输)。
2.在源处绑定体积视频,并将蒙皮矩阵与姿态混合形状(变形目标)一起流式传输(参见上面的用于蒙皮和变形目标的示例-这是两者的结合)。
a.优点:
ⅰ.在gLTF中没有额外的数据和语义引入(解决方案3需要)
ii.使用姿态混合形状来改善蒙皮结果
b.缺点:
ⅰ.当用于扫描的顶点数量发生变化时,需要更新(传输)姿态混合形状和蒙皮矩阵
3.使用具有不变拓扑的模型进行体积视频扫描
a.优点:
ⅰ.使用静态拓扑模型作为动画的基础:顶点数量和蒙皮矩阵不随时间变化
ii.通过使用高级模型来减少蒙皮伪影,所述高级模型例如利用姿态混合形状(使模型网格变形)
ⅲ.对呈现引擎的完全控制,以对体积视频扫描进行姿态适配
b.缺点:
ⅰ.需要引入顶点对应性数据和语义信息,其将变化的网格拓扑映射到模型网格
ii.模型(包括例如姿态混合形状)必须转移到呈现引擎,该引擎需要计算高级模型
上述解决方案在本文件中有如下详细描述:
“自绑定体积扫描”一章描述了如上所述的解决方案1,“具有姿态依赖改进的自绑定体积扫描”一章描述了如上所述的解决方案2,以及“顶点对应性的介绍”一章描述了如上所述的解决方案3。
3.1自绑定体积扫描
根据图7所示的实施例,通过提供网格数据112的更新1102和1103以及变换信息122的更新1202和1203,可以在体积视频102中表示具有随时间变化的拓扑的对象100。
网格数据112用第一网格114描述对象100。网格数据112可以包括第一网格114的顶点116的位置,并且可选地包括与第一网格114的顶点116或面118相关联的法线、与顶点116相关联的权重,并且可选地包括骨架信息。其中,骨架信息可包括对象100的关节和骨骼在三维空间中的位置或相对于第一网格114的位置,并且权重表示应用于关节或骨骼的变换对第一网格114的顶点116产生的影响的强度。例如,第一网格114由顶点116和面118定义,其中一组至少三个顶点116定义面118。因此,对于第一网格114的每个顶点116,网格数据112可包括相应顶点116在三维空间中的位置的信息,其中具有其位置的相应顶点可通过指针,例如索引,在网格数据112中进行识别。
变换信息122提供用于第一网格114的变换的信息,如蒙皮信息,以描述对象100的不同姿态124。例如,变换信息122包括骨架数据中的一个或多个,该骨架数据包括用于蒙皮的骨骼数据、关节数据和/或权重数据,例如,就对象100的骨骼和/或关节的位置和/或方向而言的骨骼数据和/或关节数据。权重数据可表示应用于关节或骨骼的变换应该对第一网格114的顶点116产生的影响的强度。可选地,权重数据由第一网格数据组成,例如作为第一网格的多个顶点的顶点属性。例如,变换信息表示骨架数据中的运动/变化,例如关节和/或骨骼的变换,并相应地应用权重,这导致依赖于权重数据的第一网格114的一组顶点的新位置。可选地,变换信息122包括一个或多个变形目标,其中变形目标例如就一组顶点中的两个或更多个顶点的位置变化而言,定义用于第一网格114,即基本网格的一组顶点变化。根据实施例,变换信息122包括骨架数据和一个或多个变形目标两者,其中一个或多个变形目标和骨架数据以不同的更新速率更新。
对于每个更新1102和1103,网格数据112用第一网格114描述处于预定姿态,例如如T姿态这样的中性姿态的对象100。例如,网格数据112的每个更新1102和1103与变换信息122的更新1202和1203相关联。通过相应更新的变换信息122所指示的变换,第一网格114是可变换的,例如,从预定姿态变换到不同姿态124。
需要注意的是,变换信息122的更新1202和1203可表示特定于网格的变换,即,用于由对应的更新1102或1103的网格数据112所表示的第一网格114的变换,但是由通过网格特定变换进行变换后的第一网格114所描述的不同姿态对于不同的更新1202和1203可以是相同的。
图7示出具有一个对象100的场景104的实施例。然而,显然也能够表示有两个或两个以上对象100的场景104。在具有两个或更多个对象100的场景104的情况下,对于两个或更多个对象100中的每个对象100,可以提供网格数据112的更新1102和1103以及变换信息122的更新1202和1203。可替代地,也可仅为两个或更多个对象100中的一个或多个对象100提供网格数据112的更新1102和1103以及变换信息122的更新1202和1203。
数据流130可以表示包括对象100的场景104,其中数据流130对于对象100包括网格数据112的更新1102和1103以及变换信息122的更新1202和1203。以场景描述语言将体积视频数据编码到数据流130中。
设备200,例如数据流发生器,可以被配置为通过在数据流130中以场景描述语言提供关于一个或多个对象100的信息来生成数据流130。设备300,例如数据流评估器,可以被配置为通过从数据流130中取回关于一个或多个对象100的信息来评估数据流130。关于一个或多个对象100的信息包括如上所述的网格数据的更新1102和1103以及变换信息的更新1202和1203。可选地,关于一个或多个对象100的信息可以包括下文所述的一个或多个特征。
如图7所示,数据流130可以包括关于原始网格数据1101和原始变换信息120的信息以及从其获得的更新1102、1103、1102和1103。根据实施例,在每次更新时,更新网格数据112和变换信息122。
数据流130可用信号通知网格112的顶点116的数量117(见1171至1173)。如图7所示,顶点116的数量117可与每个网格数据112一起用信号通知。然而,顶点116的数字117也可以只与网格数据112的一些更新1102和1103一起用信号通知。例如,数据流130包括指示顶点116的数量117是保持不变还是动态变化的配置信息,其中,如果顶点116的数量117动态变化,则数据流130在每次更新1102和1103时用信号通知第一网格114的顶点116的数量117。根据实施例,例如,与由先前更新所指示的第一网格114的顶点116的数量117相比,变换信息122在第一网格114的顶点116的数量117发生变化的更新1102和1103处更新,而变换信息122在顶点116的数量117不发生变化的更新处保持不变并保持未更新。
由网格数据112的更新1102或1103指示的第一网格114可以是由对象100的体积扫描产生的网格。
由glTF2.0开箱即用地支持基于骨架的蒙皮或顶点蒙皮。通常使用如用于点云捕获的.ply格式或用于基于网格的几何图形的.obj格式的体积扫描,例如网格数据112,可以被导入到内容创作工具,诸如Blender等中。通过使用创作工具,计算机图形艺术家可以手动绑定体积扫描,即提供骨架信息,应用用于体积扫描的网格顶点116适当的权重或复杂的工具,如Mixamo Auto Rigger,来自Blender的Auto Riggin addons。可应用于绑定体积扫描,从而最大限度地减少了绑定体积扫描的人力。在这种情况下,创作工具以场景描述格式,例如glTF导出绑定的体积扫描资产,例如作为网格数据112。mesh.primitives,例如由网格数据112组成的信息,包括用于体积扫描的顶点信息以及“JOINTS_0”和“WEIGHTS_0”,以允许客户端运行时应用,例如设备300,以将体积扫描动画化并渲染它。为了简单和高效,"JOINTS_0"和"WEIGHTS_0"属性中包含的关节节点的索引通常为4D向量,将可能影响顶点116的关节的数量限制为4个。如果多于四个关节影响顶点116,则glTF文件中将出现附加属性"JOINTS_1"和"WEIGHTS_1",使得影响顶点116的总关节变为8。类似地,可以对顶点116应用12关节、16关节(4的倍数)影响。
glTF中的蒙皮属性,例如由网格数据112组成的信息,是顶点蒙皮的核心。它包括属性;
1.名为关节的阵列,它列出了定义骨架层次结构的节点的索引。用于控制蒙皮网格姿态的关节层次结构是简单的glTF节点层次结构,每个节点被指定为关节。
2.在属性inverseBindMatrices中对访问器的引用。此访问器为每个关节提供一个矩阵。这些矩阵中的每一个将几何变换到相应关节的空间中。这意味着每个矩阵在其初始配置中都是相应关节的全局变换的倒数。然而,skin.inverserBindMatrix属性不是必选的。
反向绑定矩阵用于计算每个关节的关节矩阵,以便它可以插入到用于如上所示的vertex116的蒙皮矩阵的顶点着色器代码中。用于计算关节j的关节矩阵的伪代码如图8所示。
动态更新
对于体积扫描的定时序列,即体积视频,用于体积网格,即第一网格114的顶点116的数量117可能在定时序列的过程中发生变化,这意味着mesh.primivities.POSITION(网格基本体位置),即第一网格114的顶点116的位置可能会改变。因此,属性“JOINTS_*”和“WEIGHTS_*”也应该被动态更新。这意味着由“JOINTS_0”和“WEIGHTS_0”引用的访问器将被动态更新。同时,由于体积扫描的拓扑例如随着时间的推移而变化,这导致也为每个关节动态更新skin.inverseBindMatrix。
SkinPrimitivesConfigBox('scob')可由网格数据112组成,它存储对顶点116有影响的每个顶点116的关节阵列及其对应的权重。此外,网格索引存储在确定为其描述了皮肤基本体的mesh.index的配置框中,例如由网格数据指示的第一网格114,参见1101至1103,可以通过类似索引的指针来识别。根据实施例,需要提供的主要信息是属于骨架的关节的数量和影响顶点116的关节的最大数量。后者可以例如以4的倍数,作为“joint_sets_minus1”来提供,其中,0表示最多有4个关节可以影响顶点116的位置,以及1表示8个,等等。number_of_joint表示附装到特定网格114的关节的实际数量。如果网格114的顶点116的数量117在整个时间内是不变的,则可以在配置中指示。这是由dynamic_flag指示的。如果dynamic等于0,则在配置中提供static_num_vertices的值。否则,它将在每个样本中更新。另见图9。
例如,样本是在轨道中提供的,轨道存储用于每个顶点116的实际皮肤基本体数据。SkinPrimitiveSample可由网格数据112组成,它为网格114提供了基本体“JOINTS_*”和“WEIGHTS_*”。为了与glTF格式一致,用于每个顶点116的关节的数量及其对应的权重例如被存储为一组4D向量,尽管这可以以其他方式配置(例如,在上面的配置中提供每个集合的数量)。对于每个顶点116和每组关节,关节对顶点116的影响值以及影响程度(权重)由关节[i][j]和权重[i][j]提供。另见图10。
综上所述,在本实施例中提供更新1202和1203的帧,允许将蒙皮应用于网格114的蒙皮信息/权重。更新的信息可包含表明顶点116的数字117以及因此蒙皮信息(关节影响和权重)的数量是静态还是动态的指示。如果是动态的,每一帧表示提供了多少这样的信息值。此外,该信息还提供影响顶点116的关节的集合的大小(集合的大小),然后提供了集合的数量(joints_set_minus1)来指示所指示的每个顶点116的权重值的最大数量。
在另一个实施例中,仅当用于网格114的顶点116的数量发生变化时,对蒙皮信息(关节影响和权重)同步地提供更新。
如图11所示,实施例涉及生成数据流130的方法210,该方法包括以场景描述语言生成210数据流130中的体积视频数据的一个或多个对象100,并为数据流130提供214用于至少一个对象100的至少网格数据112的更新1102和1103和变换信息122的更新1202和1203。方法210可以利用所有特征和功能来完成,这些特征和功能也在图7中关于设备200进行了描述。
并且如图12所示,实施例涉及评估数据流130的方法310,该方法包括从数据流130评估312体积视频数据的一个或多个对象100,其中一个或多个对象100用场景描述语言编码到数据流130中,并且为至少一个对象100从数据流130中取回314至少网格数据112的更新1102和1103和变换信息122的更新1202和1203。方法310可以利用所有特征和功能来完成,这些特征和功能也在图7中关于设备300进行了描述。
3.2具有姿态依赖改进的自绑定体积扫描
根据图13所示的实施例,可以通过提供姿态混合形状信息1421的更新1421和1422,例如变形目标信息,在体积视频102中表示具有随时间变化的拓扑的对象100。
图13示出具有在其中以场景描述语言编码的体积视频数据的数据流130。数据流130表示包括一个或多个对象100的场景104。
数据流130对于至少一个对象100包括网格数据112,该网格数据112用第一网格114描述至少一个对象100,以及用于对第一网格114进行变换以描述至少一个对象100的不同姿态124的变换信息122。网格数据112和变换信息122可以包括图7中关于网格数据112和变换信息122所描述的特征。可选地,图13中的数据流130可以额外包括关于图13所描述的网格数据和变换信息的更新。
姿态混合形状信息1421和/或姿态混合形状信息1421的更新1422和1423例如表示在渲染开始和/或没有变换时采用的默认姿态144,如T姿态或任何其他中性姿态。例如,姿态混合形状信息1421和/或姿态混合形状信息1421的更新1422和1423指示多个姿态混合形状146。
图14a至14b示出姿态混合形状146的示例。在图的左侧指示默认姿态144,在图的右侧指示姿态混合形状146。图14a中所示的姿态混合形状146表示对第一网格114的一组顶点1161至1164进行的变换,从而将对象100的嘴变换为微笑。图14b中所指示的姿态混合形状146表示对第一网格114的一组顶点进行的变换,使得对象100的二头肌在对象100的手臂的弯折处形成隆起。姿态混合形状146校正了未良好对应于类似的自然对象通常会如何在手臂弯折处变形的变形。图14c中所示的姿态混合形状146表示对第一网格114的一组顶点进行变换,使得对象100围绕其脖子佩戴围巾。
例如,姿态混合形状146被配置为在对第一网格114应用变换时校正第一网格114的不自然变形,或精化第一网格114,例如使得采用对象的第一网格114,即皮肤的表面,例如,使其看起来更自然。
根据实施例,数据流130用信号通知第一网格114的顶点116的数量。
如上文已经指出的,数据流130可以包括网格数据112的更新1102和1103,其中第一网格114的顶点116的数量可以不改变,或者可以在更新1102和1103处改变。根据实施例,至少在第一网格114的顶点116的数量发生变化的情况下,姿态混合形状信息1421的更新1422和1423发生。根据实施例,姿态混合形状信息1421的更新1422和1423与其中第一网格114的顶点116的数量发生变化的网格数据112的更新1102和1103同步,。
设备200,例如数据流发生器,可以被配置为通过以场景描述语言提供关于数据流130中的一个或多个对象100的信息来生成数据流130。设备300,例如数据流评估器,可以被配置为通过从数据流130中取回关于一个或多个对象100的信息来评估数据流130。关于一个或多个对象100的信息包括网格数据112,可选地包括网格数据112的更新1102和1103,变换信息122,可选地包括变换信息122的更新1202和1203以及姿态混合形状信息1421的更新1422和1423,如上所述。
与“自绑定体积扫描”部分类似,例如由网格数据112描述的体积扫描将被绑定以便于利用骨架和对应的权重等进行该体积扫描。与骨架一起,姿态依赖的混合形状/姿态混合形状,即姿态混合形状信息142(见1421至1423),必须与体积扫描相关联。姿态混合形状146用于改善蒙皮结果,并且目的在于消除诸如糖果包装效果等蒙皮伪影。
通常,姿态依赖混合形状,即姿态混合形状146背后的基本思想是在蒙皮之前使3D网格,即第一网格114变形,从而改善蒙皮的结果。姿态依赖的混合形状可以通过计算机图形艺术家或数据驱动的方法生成。glTF中的姿态混合形状被表示为变形目标,例如一组顶点116的目标位置。
在这种情况下,姿态混合形状146可以应用于使用变形目标的体积扫描,例如,如图15中以黄色突出显示的一组顶点116的目标位置。
注意:姿态依赖的混合形状可以使用权重=1.0的不变值100%应用以使网格几何形状变形。
因此,应用姿态混合形状146的绑定体积扫描可以使用如图16所示的具有变形顶点(以黄色突出显示)的典型蒙皮顶点着色器实现蒙皮。
注意:姿态混合形状146与蒙皮实施的风格密切相关。这意味着与线性混合蒙皮实施紧密相关的姿态混合形状164可能无法与不同风格的蒙皮,诸如对偶四元数混合蒙皮一起工作。因此,例如,可能需要通过glTF文件将此信息指示给呈现引擎。
动态更新
如上所述的动态更新也适用于此方法。除此之外,姿态混合形状146也应被适时地提供。
PoseMorphTargetConfigBox('pmtb'),例如姿态混合形状信息142(参见1421至1423),存储用于第一网格114的姿态依赖的变形目标,例如姿态混合形状146。例如,网格索引存储在确定为其描述了姿态依赖的变形目标的mesh.index(网格索引)的配置框中。变形的强度可以通过权重来控制。为此,添加了一些信息来指示在没有用户输入(即,无交互性)的情况下应该渲染的默认姿态144。但是,权重的默认值是1.0。见图17。
提供顶点116的数量和变形目标,即姿态混合形状146,以表示图17中描述的样本中的变形目标。
姿态变形目标样本,例如姿态混合形状信息142,在轨道中提供,该轨道存储用于第一网格114的姿态依赖的混合形状,例如姿态混合形状146。PoseMorphTargetSample提供目标网格几何形状,例如姿态混合形状146,其由mesh.target(网格目标)属性使用的以使第一网格114变形。见图18。
除了为默认姿态144提供的权重之外,morph_targets,例如姿态混合形状146,也在图18中提供。在所示的示例中,它们作为绝对位置提供,但另一种选择是将它们作为相对于另一个姿态混合形状146的增量提供(或者,例如,相对于默认姿态144,即释放的位置)。
需要考虑的替代方案是,顶点116的数量117或变形目标,例如姿态混合形状146,是动态的。在这种情况下,可以将动态标志添加到配置框中,并将顶点116的数量117或变形目标包括到样本本身中。
另一替代方案是每一轨道具有单个变形目标,并且因此,每个轨道将以自包含的方式描述单个变形目标,并且接收器,例如设备300,将需要获得多个变形目标(与上面的示例不同的是,number_of_morph_target不存在)。
进一步的替代方案是默认姿态更新,例如网格数据112的更新1102和1103,与变形目标更新1422和1423不同步,例如,默认姿态更新比变形目标更新发生得更频繁,并且在这种情况下,它们将被提供到不同的框中。例如,姿态更新1422和1423可以如图19所示。
另一个示例是不为变形目标提供权重,而是提供骨架的位置,并让客户端,例如设备300为所有顶点116相等地导出权重,或者为每个顶点116分别导出权重,以应用于具有附加蒙皮信息(如上所定义)的每个变形目标(如上所定义),以能够进行该变换。语法可以在后面的JointsTransformationSample中显示。
综上所述,在本实施例中,提供帧,该帧在要应用于网格114的蒙皮信息,例如网格数据112和变换信息122之上更新姿态混合形状信息1421。每当3D对象的呈现作为这样的帧开始时或者当不执行交互/变换时,更新1422和1423的信息可以包含默认姿态144的指示。这样的默认值包括所提供的不同姿态混合形状的组合(例如,这些形状的加权平均值)。附加信令指示更新1422和1423是否由于网格114的顶点116的数量117上的变化而包括更新的姿态混合形状,或者是否添加了不同数量的姿态混合形状(增加或减少)。
在另一实施例中,仅当网格114的顶点116的数量117发生变化时,在姿态混合形状信息1422和1423(关节影响和权重)上同步提供更新1102和1103。
如图20所示,实施例涉及生成数据流130的方法210,该数据流130包括以场景描述语言将体积视频数据的一个或多个对象100生成212到数据流130中,并且对于至少一个对象100为数据流130提供214至少网格数据112、变换信息122以及姿态混合形状信息1421的更新1422和1423。方法210可以利用所有特征和功能完成,这些特征和功能也关于图13中的设备200进行了描述。
并且,如图21所示,实施例涉及评估数据流130的方法310,其包括从数据流130中评估312体积视频数据的一个或多个对象100,其中以场景描述语言将一个或多个对象100编码到数据流130中,以及对于至少一个对象100从数据流130中取回314至少网格数据112、变换信息122以及姿态混合形状信息1421的更新1422和1423。方法310可以利用所有特征和功能完成,这些特征和功能也关于图13中的设备300进行了描述。
3.3顶点对应性的介绍
如图22所示的实施例涉及两个网格,例如第一网格1141与第二网格1142之间的对应性信息150的使用或确定,以优化在体积视频数据102中的对象100的表示。对应性信息150表示第一网格1141与第二网格1142之间的映射。
可以以场景描述语言将体积视频数据102编码到数据流130中。数据流130表示包括一个或多个对象100的场景104。在图22的上下文中,更详细地描述了与一个对象100相关的信息。然而,很明显,下面针对一个对象100描述的的特征也可适用于另一个对象100。
设备200,例如数据流发生器,可以被配置为通过在数据流130中以场景描述语言提供关于一个或多个对象100的信息来生成数据流130。设备300,例如数据流评估器,可以被配置为通过从数据流130取回关于一个或多个对象100的信息来评估数据流130。关于一个或多个对象100的信息包括第一网格数据1121、第二网格数据1122和对应性信息150,其详细说明如下。设备200可以被配置为在数据流130中提供附加信息,这些信息将在以下数据流130的上下文中进行描述,并且设备300可以被配置为从数据流130取回附加信息。设备200和300可以被配置为执行附加步骤以提供或取回信息/附加信息。
数据流130对于对象100包括第一网格数据1121、第二网格数据1122以及由第一网格数据1121和第二网格数据1122所指示的两个网格1141、1142的对应性信息150。对于具有两个或更多个对象100,例如多个对象100的场景104,例如,对于多个对象100中的两个或更多个对象100中的每个对象100,在数据流130中提供第一网格数据1121、第二网格数据1122和对应性信息150。
第一网格数据1121用第一网格1141描述对象100,并且第二网格数据1122用第二网格1142描述对象100。如第一网格数据1121和第二网格数据1122,网格数据包括网格数据用来描述对象100的网格1141、1142的信息。例如,网格数据1121、1122包括网格1141、1142的顶点116的顶点位置(参见第一网格1141的116'1至116'7和第二网格1142的1161至1166),并且可选地包括关于成对的顶点116之间的连接的信息。三个或更多个顶点116定义网格1141、1142的面118(见第一网格1141的118′1~118′5和第二网格1142的1181~1184),其中关于成对的顶点116之间的连接的信息表示面的界限/边界。可选地,网格1141,1142的顶点和/或面可以通过索引识别。网格数据可包括附加信息,如与顶点116或面118相关联的法线,和/或可选地包括骨架信息,其中骨架信息可包括对象100的关节和骨骼在三维空间中的位置。对于每个顶点116,法线可表示围绕各自顶点116的面118的法线,例如与各自顶点116相邻的面118的法线,的平均值。由网格数据1121、1122组成的可能信息另见图7。
可选地,可为对象100获得进一步的网格数据和进一步的对应性信息,其中,进一步的对应性信息表示其所针对指示映射的两个网格。进一步的对应性信息可指示由附加网格数据指示的附加网格与第一网格1141之间的映射。可选地,第一网格1141表示参考网格,例如对象100的模型网格。对于描述同一对象100但不同于第一网格1141的所有网格,可以在数据流130中提供对应性信息150,其中对应性信息150表示相应网格与第一网格1141之间的映射。附加网格数据为描述对象100的附加网格提供信息,其中附加网格可以是第二网格1142的更新。例如,对应性信息是先前传输的对应性信息的更新,例如与第一网格和第二网格关联的对应性信息的更新。
用于描述对象100的网格1141、1142可能在顶点116的数量或顶点116的位置方面彼此不同。
根据实施例,第一网格数据1121和第二网格数据1122可以与相同的时间戳相关联,其中,第二网格数据1122提供第一网格数据1121的精化,例如,就顶点116的数量而言。例如,第一网格数据1121提供基本质量的第一网格1141,例如基本质量级别的第一网格1141,以及第二网格数据1122提供高质量的第二网格1142,例如高质量级别的第二网格1142。例如,第二网格1142包括比第一网格1141更高数量的顶点116。
根据替代实施例,第一网格数据1121和第二网格数据1122可以与不同的时间戳相关联,其中第二网格数据1122表示第一网格数据1121的更新。例如,第一网格数据1121提供对象100的模型网格作为第一网格1141,以及第二网格数据1122提供基于体积扫描的网格作为第二网格1142。例如,第二网格1142在由相应网格1141、1142和/或网格1141、1142的顶点116的位置和/或顶点116的数量所描述的对象100的姿态方面不同于第一网格1141。
根据实施例,数据流130包括与相同时间戳相关联的网格数据1121、1122和与不同时间戳相关联的网格数据1121、1122。例如,第一网格数据1121和第二网格数据1122与第一时间戳相关联,并且数据流130包括与第二时间戳相关联的进一步的第一网格数据和进一步的第二网格数据两者,其中第一时间戳不等于第二时间戳。进一步的第二网格数据可表示进一步的第一网格数据的精化和第二网格数据1122的更新。进一步的第一网格数据可表示第一网格数据的更新。
例如由对应性信息150提供的对应性是两个任意网格之间的映射,即,可以具有不同的拓扑、不同的顶点数量和/或不同的网格连接性的第一网格1141和第二网格1142,例如由关于成对的顶点116之间的连接的信息指示。网格,例如第二网格1142的每个顶点116被映射到另一个网格,例如第一网格1141的另一个顶点116或面118。在一个变体中,例如由对应性信息150指示的顶点对应性将体积扫描的网格,例如第二网格1142的顶点116映射到模型网格,例如第一网格1141的面118,该模型网格具有关于如何被动画化的信息。这种映射如图22和图23a所示,并且可以理解为顶点到面映射。另一种讨论的映射是顶点到顶点的映射,见图23b,或顶点到多顶点的映射,见图23c。
图22示出了体积扫描网格,即第二网格1142,其具有高级别的细节,例如高顶点数量,以及人体模型网格,即第一网格1141,其具有较低的顶点数量和均匀的间距。
在下面的描述将主要集中在两个网格之间的对应性(映射):模型网格,例如,第一网格1141,其是可动画的,以及体积扫描网格,例如,第二网格1142,其对应于使用该模型进行动画的真实对象。然而,应该清楚的是,这种对应性可以用于表示任意两个网格的映射的其他上下文中。其示例可以是体积扫描的单个网格(或任何其他3D网格表示),其拓扑随时间变化,例如,根据时间实例具有不同的顶点数量和位置,即第二网格1142是第一网格1141的更新。例如,当从网格的拓扑之一过渡到另一个拓扑时,例如从第一网格1141过渡到第二网格1142,了解两个网格的对应性(映射)可用于改善网格的不同拓扑之间的过渡阶段。例如,如果在过渡阶段发生动画,映射可以帮助避免不同拓扑中的变换,从而导致拓扑的非无缝切换。
首先,本文的解决方案讨论了表示对象100或可动画对象100的动画的方法,而不管场景104是静态场景还是动态场景(即对象拓扑是否改变)。因此,在第一实施例中,场景描述信息包含模型的第一网格1141(通常具有减少的顶点数量),其中提供了允许动画(例如皮肤信息或变形目标)的信息,例如变换信息,以及对应于体积扫描的第二网格1142,以及例如由对应性信息150指示的一些映射信息,该映射信息映射体积扫描的顶点116,即第二网格1142,到模型网格的顶点116或面118,即第一网格1141。基于变换信息,可以将第一网格1141变换为变换后的第一网格,其中变换后的第一网格描述了与第一网格1141不同的对象100的姿态。变换信息可以包括用于不同变换的信息,以便可以表示对象100的不同姿态。变换信息可能指示一种类型的变换,如缩放、旋转或平移。可替代地变换指示矩阵,它可以组合缩放和/或旋转和/或平移。
注意:该体积扫描即第二网格1142的模型,即第一网格1141,可以由计算机图形艺术家使用3D内容创作工具诸如Blender,Maya等创作。体积扫描的模型也可以使用复杂的数据驱动方法生成,其中使用巨大的数据集来生成具有与体积扫描相似拓扑结构的3D模型,即第二网格1142,例如身高(高或矮),身体结构(胖/瘦),性别(男或女)等。数据驱动的方法需要最少的人为干预来生成所谓的“适合”的体积扫描。该模型,即第一网格1141的目的是为其网格提供语义信息,诸如;骨架和最小顶点数用于网格表示。对于需要高保真度的区域,诸如脸部等,模型网格在顶点数量方面也可能具有较高的细节。
更具体地说,给出了从体积扫描即第二网格1142中的每个顶点116到模型网格即第一网格1141的面118或顶点116的对应性。例如,在运行时,渲染器实际上将顶点附加到模型网格上。模型网格是用先前拟合的姿态,即预定姿态来构建的。渲染器记录每个顶点116到其相应模型网格面118的平面的距离。它还记录了投射到面118的扫描顶点的质心坐标。第二网格1142依赖于第一网格1141,因此,第二网格1142可表示依赖网格,而第一网格1141可表示阴影网格。
如图23a所示,对于第一网格1141和第二网格1142的对应部分,以第二网格1142在时刻t的每个顶点116(见1161至1166),例如,用vd,i(t)表示,其中i=0..Nd(t)-1,其中Nd(t)为第二网格1142在时刻t的顶点116的数量。
第一网格1141的每个顶点116(参见116'1至116'7)用vs,i表示,其中i=0..Ns–1,其中Ns是第一网格1141的顶点116的数量。请注意,第一网格1141是静态的,因此它不依赖于时间。
可以使用变换信息对第一网格1141进行变换,使第一网格1141与第二网格1142处于相同的位置和姿态。通过使用对应性信息150,在时间t的第二网格1142的每个顶点116vd,i(t)被映射到第ci(t)面118(见118’1到118’5),其中ci(t)是为在时间t的第二网格1142的第i顶点116指示的对应性值。与第二网格1142在相同的位置处的第一网格1141的每个面118对应并且由对应性值ci(t)表示的三个顶点116由v's,j(t),v's,k(t)和v's,l(t)表示。如图22所示,对应性信息150指示第二网格1142的放大端口的哪个顶点116对应于第一网格1141的对应放大端口的哪个面118。
从vd,i(t)到由v's,j(t),v's,k(t)和v's,l(t)定义的平面以及给定面pi(t)内的投影点的距离如下计算。
对于第ci(t)面118的标准正交向量被定义为:
其中×表示两个向量的外积。
向量(v's,j(t)-vd,i(t))被投影到上,并加上顶点vd,i(t),以确定点pi(t)。
例如,顶点1163在面118'1上的投影点pi(t)由1193指示。顶点1161的投影点为1191,顶点1162的投影点为1192,顶点1164的投影点为1194,顶点1165的投影点为1195,以及顶点1166的投影点为1196。
距该平面的距离被确定为:
d=||vd,i(t)-pi(t)||
最后,将投影点pi(t)变换为质心坐标,如下:
pi,w(t)=1-pi,u(t)-pi,v(t)
因此,当第一网格1141的第ci(t)面118被通过动画变换时,计算出的质心坐标可以用在由v”s,j(t),v”s,k(t)和v”s,l(t)表示的面118上,并使用对应的点和计算出的距离在相同的相对位置处确定第二网格1142的对应顶点116。
此相对位置保持固定,实际上将第二网格1142的网格顶点116粘合到第一网格1141的面118,即模型网格基本体(例如三角形-面);具有不变的距离和方向。通过在每个体积扫描帧和模型之间进行此参数化,可以将模型的动画,皮肤修改或变形直接传送到体积扫描中。换句话说,第一网格1141的变换可应用于第二网格1142。这样的应用或传送可以通过应用信息在数据流130中表示。
如上所述,为了确定对应性信息,第二网格1142和第一网格1141的姿态和位置可以相同,其中第一网格可以变换为第二网格的姿态。第二网格的姿态可以表示用于确定对应性信息的预定姿态。这两个网格1141和1142的一致姿态和/或位置也可能适用于以下映射之一的确定,即顶点到顶点映射和顶点到多顶点映射。
在顶点到顶点的映射中,如图23b所示,第二网格1142的顶点116(参见1161至1166)映射到第一网格1141的顶点116(参见116'1至116'7)。例如,对于第二网格1142的每个顶点116,选择其位置与对应顶点的位置偏差最小的第一网格1141的顶点116作为第一网格1141的对应顶点116。如图23b所示,例如,顶点1161对应于顶点116’1,顶点1162对应于顶点116’2,顶点1163对应于顶点116’3,顶点1164对应于顶点116’5,顶点1165对应于顶点116’6,并且顶点1166对应于顶点116’7。
在顶点到多顶点的映射中,如图23c所示,第二网格1142的顶点116(参见1161至1166)映射到第一网格1141的两个或更多个顶点116(参见116′1至116′7),其中第二网格1141的一些顶点116可仅映射到第一网格1141的一个顶点。例如,对于第二网格1142的顶点116,选择其位置与对应顶点116的位置偏差最小的第一网格1141的两个或更多个顶点116作为第一网格1141的对应顶点116。例如,如图23c所示,顶点1161对应于顶点116’1,顶点1162对应于顶点116’2,顶点1163对应于顶点116’3,顶点1164对应于顶点116’3和116’5,顶点1165对应于顶点116’6和116’7,并且顶点1166对应于顶点116’7。
两个网格1141和1142之间的顶点对应性可以使用复杂的算法实时计算,这将避免将对应性值发送给客户端。另一种选择是在内容制作期间预先计算顶点对应性。体积扫描及其与模型的顶点对应性可以用于渲染。内容作者将导出模型和其顶点对应性的体积扫描到glTF中的模型。然而,必须作为glTF的扩展引入顶点对应性的语义。
实时顶点对应性
如上所述,在实时顶点对应性计算的情况下,客户端,即设备300,自己进行计算以确定两个网格的对应性,这增加了复杂性的成本。对于这样的解,需要建立网格关系,即对应性信息150所指示的映射(同上)。如前所述,glTF文件可以扩展以包含将根据其计算对应性的网格索引,例如,数据流130连同第二网格数据1122和对应性信息150发出指示多个网格中的第一网格1141的指针的信号。在进一步的实施例中,除了网格关系(表明两个网格对应于相同的对象-模型和体积扫描)之外,glTF提供了一组算法(ENUM_ALGO)的值,以便从实时计算中进行选择。因此,为客户提供了指导,告诉客户应该如何进行对应性的计算。该算法可以通过由数据流130组成的评估信息来指示。
这样的示例性扩展如图24所示。
为了实时建立扫描到模型对应性,即对应性信息150,需要了解扫描的顶点位置,即第二网格1142,以及完整的模型网格,即第一网格1141,包括表面(例如面三角形)的定义。
对于每个扫描顶点,参见顶点1161到1166,需要计算离模型网格表面最近的相对位置,即第一网格1141。因此,模型网格的表面需要用数据结构表示,即第一网格数据1121,该数据结构可以用单个3D点进行查询。
选项AABB:一个选项是将模型网格基本体(例如三角形)存储在轴对齐的边界框层次结构(AABB)中。利用AABB可以查询从扫描到模型的真实点到表面的距离。
选项KD-tree:如果在运行时构造AABB的成本过高,那么在某些情况下,可以使用更简单的数据结构,诸如KD-tree来近似解决点到面距离问题。对于具有三角形尺寸均匀的基于三角形的模型网格,可以构造模型网格三角形质心的KD-tree,然后查询得到最接近的曲面点的三角形,即面118。
虽然AABB算法提供了比KD-tree算法更好的解决方案,但在许多情况下KD-tree算法提供了足够好的结果,需要更低的计算复杂度。在内容生成步骤中,可以确定情况是否如此,因此gLTF文件可以包含指示,帮助客户知道是否应该使用AABB算法,或者可以使用KD-tree算法,而不会导致不希望的低质量。这两种算法是作为示例提供的,但显然可以添加更多的算法,gLTF文件将表明哪一种最合适,例如在质量和计算复杂性方面。该算法可以通过由数据流130组成的评估信息来指示。
额外的顶点检查:为了避免模型中具有相近小细节的部分的查询不匹配,诸如同一只手的不同手指,可以在查询中添加常规检查,无论是对于AABB还是KD-tree选项。如果模型面(参见118'1到118'5)的法线与扫描顶点(参见1161到1166)的法线不指向同一个半球,则在查询过程中被忽略。当使用顶点检查时,用于扫描的顶点法线,即第二网格1141和模型网格的面法线,即第一网格1141也需要作为输入。由于编码和发送扫描顶点法线以及其他扫描数据对于实时对应性计算的用例来说是过多的,因此扫描顶点法线也应该被实时计算,作为事件面法线的平均值。可以使用基于面积或角度的加权方案来避免扫描中不均匀面产生的偏差。
利用光线追踪硬件:用于光线追踪渲染应用的GPU专用硬件可能会大大加快点到表面的查询过程。该算法的实现将取决于硬件指令和SDK的可用性(例如Nvidia RTX内核)。
预先计算的顶点对应性
用于单个网格对象的glTF中的顶点对应性语义
为了提供顶点对应性,例如由对应性信息150指示,需要扩展场景描述信息。例如,在glTF的情况下,解决方案如图25所示。
在此第一示例中,黄色高亮线对应于模型的变换信息,即蒙皮矩阵和变形目标,即第一网格1141,以及绿色高亮线对应于模型的网格对象的扩展(即映射到它的体积扫描,即第二网格1142)。扩展提供了体积扫描网格及其顶点对应于模型网格的访问器。因此,不理解扩展的玩家仍然可以播放并呈现模型,而忽略额外的信息。然而,理解扩展的玩家可以渲染体积扫描,并可以使用顶点对应性在体积扫描和模型之间建立几何关系,即对应性信息150。
体积扫描的顶点数量可与模型的不同,因此扩展还应包括适用于体积扫描的纹理坐标,即由数据流130中的纹理信息指示。请注意,体积扫描可具有与模型不同的纹理材料,即不仅纹理坐标可不同,而且实际纹理也可不同,这是作为材料提供的,并在primitive.material(基本体材料)属性中引用,即纹理信息,其进一步指纹理。
可替代地,体积视频扫描可以作为glTF文件中的网格条目提供,扩展名包括模型网格。因此,玩家有可能不理解扩展,在不了解与之相关的模型的情况下简单地播放体积扫描,这意味着没有体积扫描的动画是可能的。扫描到模型的对应型将成为glTF扩展的一部分。
如果模型网格是体积扫描网格的扩展,则涉及皮肤、子节点、动画、采样器的节点都适用于扩展中指示的模型。指示那些适用于扩展中提供的网格是必需的,以便玩家不理解扩展,忽略这些参数。
用于多网格对象的glTF中的顶点对应性语义
另一替代选择是glTF文件分别包含几个网格114。在进一步实施例中,使用不同的网格114,并在gLTF中提供链路信令,例如对应性信息150或由对应性信息150组成的关联信息,即,指示哪一个是需要用于体积扫描网格的模型网格。如图26所示。
换句话说,关联信息可将第一网格1141指示为第二网格1142的参考网格,即阴影网格,其中关联信息指示多个网格中的一个网格作为第一网格1141。第一网格1141可以是参考网格,因为基于对应性信息150校正的变换后的第一网格可以表示以进一步姿态描述对象的第二网格1142,例如,以不同于由第二网格1142描述的初始姿态的姿态。使用对应性信息150,可以容易地将第一网格1141的变换变换为第二网格1142。
如示例所示,新的基本体作为扩展添加到网格114中。在这种情况下,指出了几个网格114,其中一个网格114具有扩展,这指示它是依赖的(即适用于模型的体积扫描),并且这样的网格,即第二网格1142,除了顶点之外还包括对应性信息150和mesh.index(网格索引),其指向模型网格,即第一网格1141。在上面的示例中,两个网格1141和1142的关系在glTF文件本身中指示。另一种选项是这些信息从外部提供,例如,以文件格式提供,因为在某些情况下,依赖关系可能会动态更改。
注意,在这种情况下,玩家应该只渲染其中一个网格。将单个网格映射到节点的方式是,如果玩家不理解扩展,则只能示出不可动画化的体积扫描或可动画化的模型,这取决于gLTF文件中所指示的内容。
顶点对应性描述
如上所述,对应性对两个不同的网格1141和1142进行映射。这种映射可以用不同的方式进行。
一个选项是,“对应性”,即对应性信息150,包含如下数据,该数据通过指示模型网格中的顶点的索引(表示模型网格中的第i个条目的整数i)或者通过直接表示顶点(不是作为整数,而是作为空间中的点,即位置信息),将体积扫描网格即第二网格1142的顶点116映射到模型网格即第一网格1141的顶点116,。
另一个选项包括顶点到面关系。一组顶点116可以指向单个面。例如,如图23a所示,一组顶点1161至1163指向面118′1。对于前一种情况,有两种可能的选项,即使用索引指向或使用模型本身的顶点,即顶点位置指向:
-在索引几何(模型)的情况下,“对应性”数据包含在体积扫描中的顶点与模型的网格基本体(默认三角形)索引之间的对应性建立的数据,即,为第二网格1142的顶点116指示第一网格1141的面118的索引,其中第二网格1142的顶点116可以通过其位置或其索引指示。
-在非索引的几何(模型)的情况下,“对应性”数据包含在体积扫描中的顶点与模型的网格基本体的顶点属性之间的对应性建立的数据,即,为第二网格1142的顶点116指示与第一网格1141的面118相关联的顶点116的位置,其中第二网格1142的顶点116可以由其位置或由其索引表示。
换句话说,对应性将通过存储访问器对顶点索引(模型)和顶点(体积扫描),或顶点(模型)和顶点(体积扫描)来实现。
glTF允许对网格的基本体使用不同的模式:
-所允许的用于模式的值
0 POINTS
1 LINES
2 LINE_LOOP
3 LINE_STRIP
4 TRIANGLES(默认)
5 TRIANGLE_STRIP
6 TRIANGLE_FAN
-计算中使用的顶点116的顺序将影响表面法线的方向(在面118内或外)。
-对于索引几何的情况,假设索引访问器的三个连续元素包含单个三角形的索引,即面118。
-对于非索引几何,顶点属性访问器的三个元素被假定包含三角形的三个顶点的属性
假设索引访问器的三个连续元素包含三角形,即面118(对于primitive.mode(基本体模式)=4)。因此,假设的三角形序列(模型的网格)与扫描中的顶点116之间的间接关系可以存储在对应性数据中,即对应性信息150。此选项需要客户端逻辑来理解对应性数据并构造点对面关系,即对应性信息150所指示的映射。
可以定义不同的索引几何,例如使用面118矩形而不是三角形(尽管三角形很常见),并且这应该在primitive.mode(基本体模式)属性中指出。例如,在图26所示的示例中,基本体模式等于4,假设是三角形。
因此,在一个实施例中,glTF文件指示对应性值,例如由对应性信息150指示的对应性值是否适用于索引或非索引网格(在模型中经由新属性或使用primitive.mode(基本体模式)指示)。在不使用已定义的索引属性的情况下,也可以有与索引网格对应的值。在这种情况下,对应性值可以定义为顶点(模型)到顶点(扫描)的关系,不同的定义/未定义的基本体模式,例如三角形、多边形等,需要指示。
注意“extensions.MPEG_primitives.CORRESPONDENCE”值,例如由对应性信息150指示,其是指向缓冲视图(bufferView)的访问器,该缓冲视图包含定义顶点对应性数据的类型和布局的属性。这样的访问器可以是具有组件类型UNIT(单元)的类型SCALAR(标量),并用于与不同网格的顶点对应性。另见图27所示的可能定义表的摘录。
模型顶点和模型顶点位置之间的直接关系可以在对应性中表示。在这种情况下,对应性数据存储来自模型的顶点元素。例如,如果模型顶点具有三个顶点组件,并且组件类型为漂浮,那么存储在对应性中的数据可以被结构化,以用于不同网格的顶点对应性。另见图28所示的可能定义表的摘录。
例如,可以按照图29所示的方式布局非索引几何。
在这种非索引模型几何的情况下,可以有不同的方式来表示对应数据。
对应性数据,即对应性信息150,存储了用于扫描顶点,即第二网格1142的顶点116与一组特定模型顶点,即第一网格1141的顶点116的关系。在一种选项中,对应性数据包括模型顶点(例如VEC3)的位置值。图29所示的示例包含非索引几何。对应性数据将存储模型顶点的阵列,作为每个扫描顶点的对应性数据。例如,以具有三个顶点组件且组件类型为FLOAT(浮动)的模型顶点为例,对应性数据存储的顶点阵列如图30所示。
另一种选项是重新使用模型的“POSITION(位置)”访问器中提供的模型顶点数据。在这种情况下,对应性数据存储来自模型mesh.primitives(网格基本体)的“POSITION”访问器的顶点116。例如,对应性数据存储模型即第一网格1141的“POSITION”访问器中存在的顶点条目的数量,如图31所示。
上面的详细示例展示了用于对应性的数据表示,该对应性被定义为按照缓存中扫描顶点数据存储的顺序进行对齐。
动态更新
当涉及到动态场景时,glTF并不那样支持它们。glTF文件中的缓冲区被描述为静态的(网格顶点的位置等不会随着时间的推移而改变),glTF中定义的节点数量,网格等对整个演示都有效。然而,已经研究了一些扩展,通过扩展缓冲区以给定的刷新率刷新来支持glTF中的动态场景,例如,如果网格是动态网格,以25帧/秒的帧率变化。此外,对于场景本身的更新,例如,节点的数量,JSON补丁已经被考虑。
在进一步实施例中,可以动态地向用户提供顶点对应性信息150。这可以通过流式传输来实现,例如使用HTTP流式传输。由于对应性针对体积扫描网格,例如第二网格1142,因此网格1142和对应性以相同的更新速率被封装并流在一起。换句话说,可以在数据流130中以相同的更新速率提供第二网格数据1122和对应性信息150。作为一种封装格式,可能需要存储对应性的属性和格式。在另一实施例中,对应性及其格式定义如下。例如,需要指定新的定时元数据。
指定文件格式中的允许识别所存储的媒体是对应性的新样本条目。例如由对应性信息150指示的一个VerticesCorrespondenceConfigBox被包括在样本条目中以确定格式。VerticesCorrespondenceConfigBox提供信息,如条目的数量、对应性值及其格式,例如,对应性值的字节长度。这能够在图32中看出。例如,对应性值的长度是可配置的。
该格式描述的一个示例是例如由对应性信息150指示的correspondence_type(对应性类型),其指定如何存储对应性值。例如,值为0可表示在每个样本中使用简单的整数来指定模型的面索引(如下所述),并且在这种情况下,还指定了识别面索引的长度(例如,以字节数为单位)。样本条目中的另一个属性可以是整个表示的对应性数量是静态的还是动态的。如果是,则在样本条目中指出并给出对应性的数量。否则,表明情况并非如此,每个样本(时间瞬间)的对应性的数量在样本本身中给出。这样的整数可以如上所述用于索引网格。对于等于1的correspondence_type,也示出了另一个选项,其中顶点位置的三个分量是直接给出的(此选项将对应于顶点到顶点的映射)。对于顶点到顶点的映射,可以有两种类型;correspondence_type=2,指定在模型的"POSITION"访问器中存在的顶点阵列;correspondence_type=3,指定模型的顶点位置的阵列。配置框提供每个对应性类型2或对应性类型3的顶点的数量。顶点的数量可以是动态的,即可以从三个模型顶点建立对应性,然后动态地变为四个模型顶点。
然后在轨道中提供样本,其中包含每个时间瞬间的实际值。如图33所示。
在上面的示例中,correspondence_type等于0考虑了使用整数列表存储在体积扫描即第二网格1142的顶点116与模型网格即第一网格1141的面118之间的对应性,扫描的顶点的数量的长度按照上面讨论的动态或静态方式指示。整数索引指向模型网格的面数量。correspondence_type等于1直接考虑了空间中的点。
可替代地,是否使用整数值来存储对应性或直接使用另一个网格的空间中的点的不同格式,由样本条目类型本身提供,使用不同的格式,例如'vco1'和'vco2'因此省略了correspondence_type,因为这相当于由描述的4cc提供。
请注意,由glTF文件示例中的两个网格(模型和扫描)的链接或连接,即由对应性信息150所指示的映射,可以在glTF文件本身之外完成,如前所述。如果是这种情况,则样本本身的样本格式需要执行这样的映射。
因此,在另一实施例中,为了在两个网格之间建立几何关系,从而指示体积扫描网格与模型网格相连接,顶点对应性样本即对应性信息150指示在建立对应性时用作参考的网格索引。
例如,如果参考是静态的,那么将其添加到示例配置框中会更有意义,如图34所示。
并且如果这样的参考是动态的,那么将其添加到样本本身中会更有意义,如图35所示。
由于对应性本身没有任何意义,并且要与体积扫描一起解释,因此轨迹通过“cdsc”轨迹参考链接到体积扫描网格的一个或多个轨迹,单独描述每个参考的体积扫描网格轨迹。有一个约束条件,即两个顶点的数量必须相同。
上述解决方案包括提供与两个网格1141和1142相关的信息以及指示映射即对应性的进一步信息,即对应性信息150。如前已所讨论的,通过某种方式以glTF和文件格式向客户端提供对应性,可以在一定程度上减轻客户端侧的计算。对于其他对应性类型也可以实现类似的解决方案。
所提供的动态信息传递给访问器,该访问器随时间更新其信息。这已经在MPEG媒体扩展中定义,该扩展还使用timedAccessors对象提供对定时访问器的引用。其示例可在图36中看到。
虽然在文档中没有讨论,但另一替代选择是对不同的网格1141和1142进行面对面的映射,其如果使用索引网格,则可以节省一些要传输的数据,因为每个面118只发送一个索引。
姿态更新
上面的主要讨论集中在需要链接在一起的两个网格1141和1142的对应性上;模型网格,即第一网格1141,为其提供信息使其可动画化,并且第二网格1142,即体积扫描,也可以使用模型网格动画进行动画化。
然而,体积扫描网格是及时更新的,即具有给定的帧率,这取决于捕获过程。每当提供体积扫描网格时,这对应于对象的特定姿态。这样的姿态也需要提供。此姿态可被理解为预定姿态,并可用于确定对应性信息150。
变换模型骨架的关节/骨骼需要姿态信息。需要初始姿态来拟合模型姿态到体积扫描的姿态。姿态可以动态更新。姿态信息需要模型骨架的每个关节/骨骼的变换矩阵(4x4)。如图37中示例所示。
关节/骨骼的变换由节点的平移/旋转属性提供,如上面的示例所示。在上面的示例中,此变换静态地给出一次,然后可能被动画修改。然而,在所讨论的情况下,每次将体积扫描网格作为新帧提供时,都应进行这样的变换。换句话说,例如,数据流130与第二网格数据1122一起发出用于变换第一网格1141的变换信息,其中,变换信息指示用于将第一网格1141变换为与第二网格1142相关联的姿态的变换。
节点变换属性数据也可以存储在访问器中。对于动态更新,可以及时更新访问器,例如使用timedAccessors。
节点属性也可以使用glTF2.0中定义的动画机制进行变换,如图38所示。sampler.output(采样器输出)存储关键帧变换,例如节点2在访问器9中的旋转值,以黄色突出显示。对于动态更新,sampler.output(采样器输出)可以指timedAccessors,它存储节点2的每帧旋转值。动画的时间可以通过外部手段来控制,因此需要仔细考虑。采样器输入存储用于动画回放的关键帧的定时信息。采样器输入引用的访问器(图38中以绿色突出显示的示例中的访问器8)可以动态更新,例如使用timedAccessors。
与用于对应性的HTTP流或文件格式的集成类似,需要用于这些变换的定时元数据。在文件格式中指定新的样本条目,允许识别骨架的关节节点的变换数据。
例如,由第一网格1141的变换信息指示的JointsConfigBox('jcob')将节点索引的阵列存储在joints_to_transform中,该阵列将随着姿态更新而进行变换。换句话说,变换信息显示关节和/或对象的骨骼和变换,适用于指定的关节和/或骨骼,这样变换的第一网格,即变换的应用后的第一网格,描述了对象与第二网格所描述的姿态相同的姿态,其中由第二网格描述的姿态表示变换前由第一网格描述的姿态的姿态更新。如果变换数据作为独立的属性可用,诸如平移、旋转或缩放,则transform_type_flag等于0。否则,当期望的变换数据是4x4矩阵时,transform_type_flag被设置为1。在transform_type_flag等于0的情况下;transform_property枚举确保变换节点的哪个属性。这是图39所示的示例性。
样本在轨道中提供,轨道存储了关节的实际变换数据。JointsTransformationSample,例如由第一网格1141的变换信息指示,提供了关节的变换数据。样本可以包含单个样本中多个关节的变换数据,也可以包含单个关节的变换数据。在变换多个关节的场景中,包含多个关节的变换数据的示例在提供不同变换之间的同步时可能很有用。如图40所示。
如图41所示,实施例涉及生成数据流130的方法210,该数据流130包括以场景描述语言将体积视频数据的一个或多个对象100生成212到数据流130中,并提供214用于至少一个对象100的数据流130至少具有第一网格数据1121、第二网格数据1122和对应性信息150。方法210可以完成所有特征和功能,这些特征和功能也在图22中描述了关于设备200的特征和功能。
并且实施例,如图42所示,涉及评估数据流130的方法310,包括从以场景描述语言编码有一个或多个对象100的数据流130中评估312体积视频数据的一个或多个对象100,并且对于至少一个对象100从数据流130中取回314至少第一网格数据1121、第二网格数据1122和对应性信息150。方法310可以利用所有特征和功能完成,这些特征和功能也在图22中关于设备300进行了描述。
结论
作为简单的总结,对象和两组顶点表示同一个对象。此外,信令将对象的一组顶点映射到同一对象的另一组顶点,从而提供某种关系。
一个示例是,第一组顶点对应于模型,以及另一组对应于体积扫描(它们对应于同一时间瞬间)。
另一个示例是对象的一组顶点随时间变化。为了达到某种一致性,将集合的这种关系对应于不同的时间瞬间表示出来。
在第一示例中:
1.第一组顶点和关于如何定义面部结构的信息,具有允许网格变换的附加信息(例如,动画/交互)
2.具有变换可以应用到第二网格的映射(对应性)信息。
a.场景描述文件提供具有两组顶点的网格,其中一个顶点是另一个顶点的扩展
b.场景描述文件提供两个网格和链接信息,以识别对于同一对象的两组相关联的顶点。
3.第一组顶点/面(或者更准确地说——网格结构)不会随时间变化(即,静态拓扑)——可替代地,可以说它只会非常不频繁地改变。而第二组顶点的变化经常比第一组频繁或比第一组频繁得多。
4.提供对于第二组顶点/面的更新,并且从而也提供映射信息。
a.这是为流应用提供的,例如HTTP流,并且提供关联信息,其将新的一组顶点与映射信息链接起来。
b.用于映射信息的格式如下:
i.值的数量和/或值的数量是否随时间变化(如果是静态的或动态的)
ii.对应性值的长度。
iii.面的索引
iv.顶点的索引
v.一个顶点
vi.定义面的一组顶点
vii.两组顶点之间的链接(如果gLTF文件中没有提供)
5.与第二组顶点的更新一起,它所对应的新姿态也被传输。此外,还提供了一些
附加信息:
a.关节的数量
b.变换的类型
c.变换信息、缩放、旋转、平移值或作为其组合的矩阵。
6.纹理坐标和/或纹理本身也被提供以用于第二组顶点,其根据变换后的第一组顶点进行相应的修改。
7.作为提供映射信息的替代方案,映射信息的计算留给客户端来执行。客户端被指导如何执行这些映射信息,例如使用哪种算法。
在第二示例中,提供了类似的信息,但第二组顶点只是第一组顶点的更新。这两组顶点都有允许动画的信息。
综上所述,本文所述的实施例可以任选地由本文所述的任何要点或方面补充。然而,需要注意的是,这里描述的要点和方面可以单独使用或组合使用,并且可以单独和组合地引入到本文描述的任何实施例中。
上面已经描述了不同的发明实施例和方面。
另外,进一步的实施例将由所附权利要求定义。
应当注意的是,权利要求所定义的任何实施例都可以由上面描述的任何细节(特征和功能)加以补充。
此外,上述实施例可以单独使用,也可以由另一章中的任何特征或权利要求中包括的任何特征补充。
此外,应当注意,本文所述的单个方面可以单独使用或组合使用。因此,可以向所述的每个单独方面添加细节,而无需向所述的另一个方面添加细节。
还应注意,本公开明确或隐式地描述了设备(用于生成数据流的设备或用于评估数据流的设备)和/或方法(生成数据流的方法或评估数据流的方法)和/或数据流和/或计算机程序产品中可用的特征。因此,本文描述的任何特征都可以在设备、方法、数据流和/或计算机程序产品的上下文中使用。
此外,本文公开的与方法相关的特征和功能也可用于设备(配置为执行此类功能)。此外,本文所公开的关于设备的任何特征和功能也可以在相应的方法中使用。换句话说,本文公开的方法可以由所描述的关于所述设备的任何特征和功能补充。
此外,本文描述的任何特征和功能都可以在硬件或软件中实现,或使用硬件和软件的组合实现,如“实现替代”一节所述。
实现替代方案:
虽然在装置的上下文中描述了一些方面,但很明显,这些方面也代表了对相应方法的描述,其中设备或其部分对应于方法步骤或方法步骤的特征。类似地,在方法步骤上下文中描述的方面也表示对相应装置或装置的一部分或相应装置的项目或特征的描述。一些或所有的方法步骤可以由(或使用)硬件装置来执行,例如,微处理器、可编程计算机或电子电路。在一些实施例中,最重要的方法步骤中的一个或多个可以通过这样的装置来执行。
本发明的数据流可以存储在数字存储介质上,或者可以在诸如无线传输介质或诸如互联网的有线传输介质上传输。
根据某些实施要求,本发明的实施例可以在硬件或软件中实现。该实现可以使用数字存储介质来执行,例如软盘、DVD、蓝光、CD、ROM、PROM、EPROM、EEPROM或闪存,这些介质具有存储在其上的电子可读控制信号,其与可编程计算机系统合作(或能够合作),从而执行相应的方法。因此,数字存储介质可以是计算机可读的。
根据本发明的一些实施例包括具有电子可读控制信号的数据载体,其能够与可编程计算机系统合作,从而执行本文所述的方法之一。
通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,当计算机程序产品在计算机上运行时,该程序代码可用于执行所述方法之一。程序代码可以例如存储在机器可读的载体上。
其他实施例包括存储在机器可读载体上的用于执行本文所述方法之一的计算机程序。
换句话说,因此,本发明方法的实施例是,当计算机程序在计算机上运行时,具有用于执行本文所述方法之一的程序代码的计算机程序。
因此,本发明方法的进一步实施例是数据载体(或数字存储介质,或计算机可读介质),包括记录在其上的用于执行本文所述方法之一的计算机程序。数据载体、数字存储介质或记录介质通常是有形的和/或非过渡的。
因此,本发明方法的进一步实施例是表示用于执行本文所述方法之一的计算机程序的数据流或信号序列。数据流或信号序列可以例如被配置为经由数据通信连接传送,例如经由互联网。
进一步的实施例包括处理装置,例如计算机或可编程逻辑器件,其被配置为或适应于执行本文所述的方法之一。
进一步的实施例包括在其上安装了用于执行本文所述方法之一的计算机程序的计算机。
根据本发明的进一步实施例包括配置为将(例如,电子或光学)用于执行本文所述方法之一的计算机程序传送到接收器的装置或系统。例如,接收器可以是计算机、移动设备、存储设备等。装置或系统可例如包括用于将计算机程序传送到接收器的文件服务器。
在一些实施例中,可编程逻辑器件(例如现场可编程门阵列)可用于执行本文所述方法的一些或全部功能。在一些实施例中,现场可编程门阵列可以与微处理器合作以执行本文所述的方法之一。通常,优选由任何硬件装置执行方法。
本文所述的装置可以使用硬件装置来实现,或者使用计算机来实现,或者使用硬件装置和计算机的组合来实现。
本文所述的装置,或本文所述的装置的任何组件,可以至少部分地在硬件和/或软件中实现。
本文所述的方法可以使用硬件装置,或使用计算机,或使用硬件装置和计算机的组合来执行。
本文描述的方法,或本文描述的方法的任何部分,可以至少部分地通过硬件和/或软件来执行。
上述所描述的实施例仅是对本发明的原理进行说明。应当理解,本文所述的布置和细节的修改和变化对于本领域技术人员将是显而易见的。因此,其意图仅受即将到来的专利权利要求的范围的限制,而不受通过本文的实施例的描述和解释方式所提供的具体细节的限制。
Claims (210)
1.一种具有以场景描述语言编码在其中的体积视频数据的数据流(130),所述数据流(130)表示包括一个或多个对象(100)的场景,
其中,所述数据流(130)对于所述至少一个对象(100)包括第一网格数据(1121)、第二网格数据(1122)和对应性信息(150),其中
所述第一网格数据(1121)用第一网格(1141)描述所述至少一个对象(100);
第二网格数据(1122)用第二网格(1142)描述所述至少一个对象(100);以及
其中,所述对应性信息(150)指示所述第一网格(1141)与所述第二网格(1142)之间的映射。
2.根据任何前述权利要求所述的数据流(130),其中所述第一网格(1141)与所述第二网格(1142)之间的映射是以下中的一种:
顶点到顶点映射,
顶点到面映射,和/或
顶点到多顶点映射。
3.根据任何前述权利要求所述的数据流,其中所述第一网格数据(1121)包括用于所述第一网格的变换的变换信息,以描述所述至少一个对象的不同姿态。
4.根据权利要求3所述的数据流,其中所述变换信息包括以下中的一个或多个:
骨架数据,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,以及
用于所述第一网格的一组顶点中的每一个,或者对于所述第一网格的一组顶点中的每一个,所述至少一个对象的不同姿态中的每一个的顶点位置。
5.根据任何前述权利要求所述的数据流,其中所述变换关于所述至少一个对象的动画、皮肤修改或变形。
6.根据权利要求3至5中任一项所述的数据流,其中所述对应性信息(150)提供用于将所述第一网格的变换应用于所述第二网格的应用信息。
7.根据权利要求1至5所述的数据流,其中所述第一网格数据(1121)关于第一时间戳,以及所述第二网格数据(1122)关于第二时间戳,其中所述第二网格是所述第一网格的更新,以及所述第二网格数据(1122)包括用于所述第二网格的进一步变换的进一步变换信息,以描述所述至少一个对象的不同姿态。
8.根据任何前述权利要求所述的数据流,其中所述第一网格数据(1121)和/或所述第二网格数据(1122)包括描述所述至少一个对象的骨架姿态的骨架数据。
9.根据任何前述权利要求所述的数据流,其中所述第二网格包括比所述第一网格多的顶点。
10.根据任何前述权利要求所述的数据流,其中所述第二网格数据(1122)包括用于网格的纹理的纹理信息。
11.根据任何前述权利要求所述的数据流,其中所述第一网格随时间不变和/或所述第二网格随时间变化。
12.根据任何前述权利要求所述的数据流,其中所述数据流包括定义所述第二网格的更新的进一步第二网格数据(1122),其中所述数据流指示所述第一网格数据(1121)所关于的所述至少一个对象的第一姿态,以及所述第二网格数据(1122)所关于的所述至少一个对象的第二姿态。
13.根据任何前述权利要求所述的数据流,其中所述对应性信息(150)包括用于评估所述视频流的评估信息。
14.根据权利要求13所述的数据流,其中所述评估信息指示要用于评估的算法。
15.根据权利要求13至14中任一项所述的数据流,其中所述评估信息包括指向一组算法之中的要用于导出映射的算法的指针。
16.根据权利要求15所述的数据流,其中所述评估信息还包括对于将要应用所述算法以导出映射的所述至少一个对象的姿态的指示。
17.根据任何前述权利要求所述的数据流,其中所述第一网格数据(1121)和/或所述第二网格数据(1122)包括两个或更多个网格,每个网格包括多个顶点,其中所述两个或更多个网格中的一个网格是所述两个或更多个网格中的另一个网格的扩展。
18.根据任何前述权利要求所述的数据流,进一步包括关于网格的多个进一步网格数据,并且所述对应性信息(150)包括关联信息,其识别所述多个网格之中的所述第一网格和第二网格。
19.根据任何前述权利要求所述的数据流,其中所述第一网格是先前传输的第一网格的更新和/或所述第二网格是先前传输的第二网格的更新。
20.根据权利要求19所述的数据流,其中用于作为对应的先前传输的网格的更新的网格的网格数据包括更新的骨架数据、更新的关节数据、更新的权重数据、更新的变换数据和/或更新的纹理信息、更新的顶点的数量、更新的一个或多个顶点的位置、更新所对应的姿态的指示中的一个或多个。
21.根据权利要求3至20中任一项所述的数据流,其中所述变换信息包括变换类型中的一种或多种,缩放值、旋转值、平移值或者作为其组合的矩阵。
22.根据任何前述权利要求所述的数据流,其中所述对应性信息(150)是先前传输的对应性信息(150)的更新。
23.根据权利要求22所述的数据流,其中更新的对应性信息(150)包括以下中的一个或多个:优选为可配置的对应性值的长度,对应性的数量,对应性的类型,例如面到面、顶点到面和/或顶点到多顶点,和/或包括这些对应性的值的长度的信息。
24.根据任何前述权利要求所述的数据流,其中任何的所述数据和/或信息可以作为所述数据流中的链接提供,其链接到实际的数据/或信息。
25.根据权利要求24所述的数据流,其中所述数据流中的所链接的数据和/或信息是指以下中的一个或多个:场景描述语言,场景,对象,第一网格数据(1121),第一网格,第二网格数据(1122),第二网格,多个顶点之一,多顶点之一,映射,变换信息,变换,应用信息,姿态数据,姿态,骨架数据,关节数据,权重数据,纹理信息,纹理,评估信息,算法和/或关联信息。
26.根据权利要求24或25所述的数据流,其中所链接的实际数据是在网络位置上可访问的。
27.根据任何前述权利要求所述的数据流,其中所述场景描述语言基于JSON标准。
28.根据权利要求27所述的数据流,其中所述场景描述语言采用图形库传输格式。
29.根据任何前述权利要求所述的数据流,其中所述第二网格数据(1122)是体积扫描。
30.根据任何前述权利要求所述的数据流,其中所述第二网格数据(1122)是以三维技术用多于一个相机记录的,或计算机生成的。
31.一种具有以场景描述语言编码在其中的体积视频数据的数据流(130),所述数据流(130)表示包括一个或多个对象(100)的场景,
其中,所述数据流(130)对于至少一个对象(100)包括以下的更新
用第一网格(114)描述所述至少一个对象(100)的网格数据(112),以及
变换信息(122),其用于所述第一网格(114)的变换,以描述所述至少一个对象(100)的不同姿态(124);
其中,对于每次更新,所述网格数据(112)用第一网格(114)描述处于预定姿态的所述至少一个对象(100),其中所述第一网格(114)通过所述变换可向所述不同姿态(124)变换,并且其中所述数据流(130)用信号通知所述网格的顶点(116)的数量(117)。
32.根据权利要求31所述的数据流(130),其中所述数据流包括指示顶点的数量保持不变还是动态变化的配置信息,其中,如果所述顶点的数量动态变化,则所述数据流在每次更新时用信号通知所述网格的顶点的数量。
33.根据权利要求32所述的数据流,其中在每次更新时,更新网格数据和变换信息。
34.根据权利要求31或32所述的数据流,其中,所述变换信息在所述网格的顶点的数量发生变化的更新时更新,而所述变换信息在所述顶点的数量不发生变化的更新时保持不更新。
35.根据权利要求31至34中任一项所述的数据流,其中所述变换信息包括骨架数据和一个或多个变形目标中的一个或多个,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。
36.根据权利要求31至35中任一项所述的数据流,其中所述变换信息包括骨架数据和一个或多个变形目标,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,其中,在更新时,所述一个或多个变形目标和所述骨架数据以不同的更新速率更新。
37.一种具有以场景描述语言编码在其中的体积视频数据的数据流(130),所述数据流(130)表示包括一个或多个对象(100)的场景,
其中,所述数据流(130)对于至少一个对象(100)包括以下
用第一网格(114)描述所述至少一个对象(100)的网格数据(112),以及
变换信息(122),其用于所述第一网格(114)的变换,以描述所述至少一个对象(100)的不同姿态(124),以及
姿态混合形状信息的更新(1422,1423);
其中,所述姿态混合形状信息指示在渲染开始时和/或没有变换时采用的默认姿态(144),和/或所述姿态混合形状信息的所述更新指示由所述姿态混合形状信息指示的多个姿态混合形状。
38.根据权利要求37所述的数据流(130),其中所述数据流用信号通知所述网格的顶点的数量。
39.根据权利要求37或38所述的数据流,其中所述数据流包括所述网格数据和/或变换信息的进一步更新。
40.根据权利要求37至39中任一项所述的数据流,其中,所述姿态混合形状信息的所述更新至少发生在所述网格的顶点的数量发生变化时的进一步更新处。
41.根据权利要求37至40中任一项所述的数据流,其中,所述姿态混合形状信息的所述更新与所述网格的顶点的数量发生变化时的进一步更新同步。
42.一种用于生成数据流的设备(200),其被配置为:
以场景描述语言将体积视频数据的一个或多个对象生成到数据流中,所述数据流表示包括一个或多个对象(100)的场景;以及
对于至少一个对象(100)向所述数据流提供至少第一网格数据(1121)、第二网格数据(1122)和对应性信息(150),其中
所述第一网格数据(1121)用第一网格(1141)描述所述至少一个对象(100);
所述第二网格数据(1122)用第二网格(1142)描述所述至少一个对象(100);以及
其中,所述对应性信息(150)表示所述第一网格(1141)与第二网格(1142)之间的映射。
43.根据权利要求42所述的设备,其中所述第一网格与第二网格之间的映射是以下中的一个
顶点到顶点映射,
顶点到面映射,和/或
顶点到多顶点映射。
44.根据权利要求42至43中任一项所述的设备,其中所述第一网格数据(1121)包括用于所述第一网格的变换的变换信息,以描述所述至少一个对象的不同姿态。
45.根据权利要求44所述的设备,其中所述变换信息包括以下中的一个或多个
包括骨骼数据、关节数据和/或用于蒙皮的权重数据的骨架数据,以及
用于所述第一网格的一组顶点中的每一个的一个或多个变形目标,或者对于所述第一网格的一组顶点中的每一个,用于所述至少一个对象的不同姿态中的每一个的顶点位置。
46.根据权利要求42至45中任一项所述的设备,其中所述变换关于所述至少一个对象的动画、皮肤修改或变形。
47.根据权利要求44至46中任一项所述的设备,其中所述对应性信息(150)提供用于将所述第一网格的变换应用于所述第二网格的应用信息。
48.根据权利要求42至46所述的设备,其中所述第一网格数据(1121)关于第一时间戳并且所述第二网格数据(1122)关于第二时间戳,其中所述第二网格是所述第一网格的更新,以及所述第二网格数据(1122)包括用于所述第二网格的进一步变换的进一步变换信息,以描述所述至少一个对象的不同姿态。
49.根据权利要求42至48中任一项所述的设备,其中所述第一网格数据(1121)和/或所述第二网格数据(1122)包括描述所述至少一个对象的骨架姿态的骨架数据。
50.根据权利要求42至49中任一项所述的设备,其中所述第二网格包括比所述第一网格多的顶点。
51.根据权利要求42至50中任一项所述的设备,其中所述第二网格数据(1122)包括用于网格的纹理的纹理信息。
52.根据权利要求42至51中任一项所述的设备,其中所述第一网格随时间不变和/或所述第二网格随时间变化。
53.根据权利要求42至52中任一项所述的设备,其中所述设备进一步向所述数据流提供定义所述第二网格的更新的进一步第二网格数据(1122),以及所述第一网格数据(1121)所关于的所述至少一个对象的第一姿态、以及所述第二网格数据(1122)所关于的所述至少一个对象的第二姿态的指示。
54.根据权利要求42至53中任一项所述的设备,其中所述对应性信息(150)包括用于评估所述视频流的评估信息。
55.根据权利要求54所述的设备,其中所述评估信息指示要用于评估的算法。
56.根据权利要求54至55中任一项所述的设备,其中所述评估信息包括指向一组算法之中的要用于导出映射的算法的指针。
57.根据权利要求56所述的设备,其中所述评估信息还包括对于将要应用所述算法以导出映射的所述至少一个对象的姿态的指示。
58.根据权利要求42至57中任一项所述的设备,其中所述第一网格数据(1121)和/或所述第二网格数据(1122)包括两个或更多个网格,每个网格包括多个顶点,其中所述两个或更多个网格中的一个网格是所述两个或更多个网格中的另一个网格的扩展。
59.根据权利要求42至58中任一项所述的设备,其中,所述设备进一步向所述数据流提供关于网格的多个进一步网格数据,并且所述对应性信息(150)包括关联信息,其识别所述多个网格之中的所述第一网格和第二网格。
60.根据权利要求42至59中任一项所述的设备,其中所述第一网格是先前传输的第一网格的更新和/或所述第二网格是先前传输的第二网格的更新。
61.根据权利要求60所述的设备,其中用于作为对应的先前传输的网格的更新的网格的网格数据包括更新的骨架数据、更新的关节数据、更新的权重数据、更新的变换数据和/或更新的纹理信息、更新的顶点的数量、更新的一个或多个顶点的位置、更新所对应的姿态的指示中的一个或多个。
62.根据权利要求44至61中任一项所述的设备,其中所述变换信息包括变换类型中的一种或多种,缩放值、旋转值、平移值或者作为其组合的矩阵。
63.根据权利要求42至62中任一项所述的设备,其中所述对应性信息(150)是先前传输的对应性信息(150)的更新。
64.根据权利要求63所述的设备,其中更新的对应性信息(150)包括以下中的一个或多个:优选为可配置的对应性值的长度,对应性的数量,对应性的类型,例如面到面、顶点到面和/或顶点到多顶点,和/或包括这些对应性的值的长度的信息。
65.根据权利要求42至64中任一项所述的设备,其中任何的所述数据和/或信息可以作为所述数据流中的链接提供,其链接到实际的数据/或信息。
66.根据权利要求65所述的设备,其中所述数据流中的所链接的数据和/或信息是指以下中的一个或多个:场景描述语言,场景,对象,第一网格数据(1121),第一网格,第二网格数据(1122),第二网格,多个顶点之一,多顶点之一,映射,变换信息,变换,应用信息,姿态数据,姿态,骨架数据,关节数据,权重数据,纹理信息,纹理,评估信息,算法和/或关联信息。
67.根据权利要求65或66所述的设备,其中所链接的实际数据是在网络位置上可访问的。
68.根据权利要求42至67中任一项所述的设备,其中所述场景描述语言基于JSON标准。
69.根据权利要求68所述的设备,其中所述场景描述语言采用图形库传输格式。
70.根据权利要求42至69中任一项所述的设备,其中所述第二网格数据(1122)是体积扫描。
71.根据权利要求42至70中任一项所述的设备,其中所述第二网格数据(1122)是以三维技术用多于一个相机记录的,或计算机生成的。
72.一种用于生成数据流的设备(200),其被配置为:
以场景描述语言将体积视频数据的一个或多个对象(100)生成到数据流(130)中,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象向所述数据流(130)提供至少以下的更新
用第一网格(114)描述所述至少一个对象的网格数据(112),以及
变换信息(122),其用于所述第一网格(114)的变换,以描述所述至少一个对象(100)的不同姿态(124),
其中,对于每次更新,所述网格数据(112)用所述第一网格(114)描述处于预定姿态的所述至少一个对象,其中所述第一网格通过所述变换可向所述不同姿态(124)变换,并且其中所述数据流用信号通知所述网格(114)的顶点(116)的数量(117)。
73.根据权利要求72所述的设备,其中所述数据流包括指示所述顶点的数量保持不变还是动态变化的配置信息,其中,如果所述顶点的数量动态变化,则所述数据流在每次更新时用信号通知所述网格的顶点的数量。
74.根据权利要求73所述的设备,其中在每次更新时,更新网格数据和变换信息。
75.根据权利要求72或73所述的设备,其中,所述变换信息在所述网格的顶点的数量发生变化的更新时更新,而所述变换信息在所述顶点的数量不发生变化的更新时保持不更新。
76.根据权利要求72至75中任一项所述的设备,其中所述变换信息包括骨架数据和一个或多个变形目标中的一个或多个,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。
77.根据权利要求72至76中任一项所述的设备,其中所述变换信息包括骨架数据和一个或多个变形目标,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,其中,在更新时,所述一个或多个变形目标和所述骨架数据以不同的更新速率更新。
78.一种用于生成数据流的设备(200),其被配置为:
以场景描述语言将体积视频数据的一个或多个对象(100)生成到数据流(130)中,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象向所述数据流(130)提供至少以下
用第一网格(114)描述所述至少一个对象的网格数据(112),以及
变换信息(122),其用于所述第一网格(114)的变换,以描述所述至少一个对象(100)的不同姿态(124),以及
姿态混合形状信息的更新(1422,1423);
其中,所述姿态混合形状信息指示在渲染开始时和/或没有变换时采用的默认姿态,和/或所述姿态混合形状信息的所述更新指示由所述姿态混合形状信息指示的多个姿态混合形状。
79.根据权利要求78所述的设备,其中所述数据流用信号通知所述网格的顶点的数量。
80.根据权利要求78或79所述的设备,其中所述数据流包括所述网格数据和/或变换信息的进一步更新。
81.根据权利要求78至80中任一项所述的设备,其中,所述姿态混合形状信息的所述更新至少发生在所述网格的顶点的数量发生变化的进一步更新处。
82.根据权利要求78至81中任一项所述的设备,其中,所述姿态混合形状信息的所述更新与所述网格的顶点的数量发生变化的进一步更新同步。
83.一种用于评估数据流(130)的设备(300),其被配置为:
从其中以场景描述语言编码有一个或多个对象的数据流中评估体积视频数据的所述一个或多个对象,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象(100)从所述数据流中取回至少第一网格数据(1121)、第二网格数据(1122)和对应性信息(150),其中
所述第一网格数据(1121)用第一网格(1141)描述所述至少一个对象;
所述第二网格数据(1122)用第二网格(1141)描述所述至少一个对象;以及
其中,所述对应性信息(150)表示所述第一网格(1141)与第二网格(1142)之间的映射。
84.根据权利要求83所述的设备,进一步被配置为
通过评估所述第一网格数据(1121)、所述第二网格数据(1122)和所述对应性信息(150)来生成所述至少一个对象的表示。
85.根据权利要求83或84所述的设备,其中所述第一网格与第二网格之间的映射是以下中的一个
顶点到顶点映射,
顶点到面映射,和/或
顶点到多顶点映射。
86.根据权利要求83至85中任一项所述的设备,其中所述第一网格数据(1121)包括用于第一网格的变换的变换信息,以描述所述至少一个对象的不同姿态。
87.根据权利要求86所述的设备,其中所述变换信息包括以下中的一个或多个
包括骨骼数据、关节数据和/或用于蒙皮的权重数据的骨架数据,以及
用于所述第一网格的一组顶点中的每一个的一个或多个变形目标,或者对于所述第一网格的一组顶点中的每一个,用于所述至少一个对象的不同姿态中的每一个的顶点位置。
88.根据权利要求83至87中任一项所述的设备,其中所述变换关于所述至少一个对象的动画、皮肤修改或变形。
89.根据权利要求86至88中任一项所述的设备,其中所述对应性信息(150)提供用于将所述第一网格的变换应用于所述第二网格的应用信息。
90.根据权利要求83至88所述的设备,其中所述第一网格数据(1121)关于第一时间戳并且所述第二网格数据(1122)关于第二时间戳,其中所述第二网格是所述第一网格的更新,以及所述第二网格数据(1122)包括用于所述第二网格的进一步变换的进一步变换信息,以描述所述至少一个对象的不同姿态。
91.根据权利要求83至90中任一项所述的设备,其中所述第一网格数据(1121)和/或所述第二网格数据(1122)包括描述所述至少一个对象的骨架姿态的骨架数据。
92.根据权利要求83至91中任一项所述的设备,其中所述第二网格包括比第一所述网格多的顶点。
93.根据权利要求83至92中任一项所述的设备,其中所述第二网格数据(1122)包括用于网格的纹理的纹理信息。
94.根据权利要求83至93中任一项所述的设备,其中所述第一网格随时间不变和/或所述第二网格随时间变化。
95.根据权利要求83至94中任一项所述的设备,其中所述设备进一步从所述数据流中取回定义所述第二网格的更新的进一步第二网格数据(1122),以及所述第一网格数据(1121)所关于的所述至少一个对象的第一姿态、以及所述第二网格数据(1122)所关于的所述至少一个对象的第二姿态的指示。
96.根据权利要求83至95中任一项所述的设备,其中所述对应性信息(150)包括用于评估所述视频流的评估信息。
97.根据权利要求96所述的设备,其中所述评估信息指示要用于评估的算法。
98.根据权利要求96至97中任一项所述的设备,其中所述评估信息包括指向一组算法之中的要用于导出映射的算法的指针。
99.根据权利要求98所述的设备,其中所述评估信息还包括对于将要应用所述算法以导出映射的所述至少一个对象的姿态的指示。
100.根据权利要求83至99中任一项所述的设备,其中所述第一网格数据(1121)和/或所述第二网格数据(1122)包括两个或更多个网格,每个网格包括多个顶点,其中所述两个或更多个网格中的一个网格是所述两个或更多个网格中的另一个网格的扩展。
101.根据权利要求83至100中任一项所述的设备,其中,所述设备进一步从所述数据流中取回关于网格的多个进一步网格数据,并且所述对应性信息(150)包括关联信息,其识别所述多个网格之中的所述第一网格和第二网格。
102.根据权利要求83至101中任一项所述的设备,其中所述第一网格是先前传输的第一网格的更新和/或所述第二网格是先前传输的第二网格的更新。
103.根据权利要求102所述的设备,其中用于作为对应的先前传输的网格的更新的网格的网格数据包括更新的骨架数据、更新的关节数据、更新的权重数据、更新的变换数据和/或更新的纹理信息、更新的顶点的数量、更新的一个或多个顶点的位置、更新所对应的姿态的指示中的一个或多个。
104.根据权利要求86至103中任一项所述的设备,其中所述变换信息包括变换类型中的一种或多种,缩放值、旋转值、平移值或者作为其组合的矩阵。
105.根据权利要求83至104中任一项所述的设备,其中所述对应性信息(150)是先前传输的对应性信息(150)的更新。
106.根据权利要求105所述的设备,其中更新的对应性信息(150)包括以下中的一个或多个:优选为可配置的对应性值的长度,对应性的数量,对应性的类型,例如面到面、顶点到面和/或顶点到多顶点,和/或包括这些对应性的值的长度的信息。
107.根据权利要求83至106中任一项所述的设备,其中任何的所述数据和/或信息可以作为所述数据流中的链接提供,其链接到实际的数据/或信息。
108.根据权利要求107所述的设备,其中所述数据流中的所链接的数据和/或信息是指以下中的一个或多个:场景描述语言,场景,对象,第一网格数据(1121),第一网格,第二网格数据(1122),第二网格,多个顶点之一,多顶点之一,映射,变换信息,变换,应用信息,姿态数据,姿态,骨架数据,关节数据,权重数据,纹理信息,纹理,评估信息,算法和/或关联信息。
109.根据权利要求106或107所述的设备,其中所链接的实际数据是在网络位置上可访问的。
110.根据权利要求83至109中任一项所述的设备,其中所述场景描述语言基于JSON标准。
111.根据权利要求110所述的设备,其中所述场景描述语言采用图形库传输格式。
112.根据权利要求83至111中任一项所述的设备,其中所述第二网格数据(1122)是体积扫描。
113.根据权利要求83至112中任一项所述的设备,其中所述第二网格数据(1122)是以三维技术用多于一个相机记录的,或计算机生成的。
114.一种用于评估数据流(130)的设备(300),其被配置为:
从其中以场景描述语言编码有一个或多个对象的数据流中评估体积视频数据的所述一个或多个对象,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象的从所述数据流(130)中取回至少以下的更新
用第一网格(114)描述所述至少一个对象的网格数据(112),以及
变换信息(122),其用于所述第一网格(114)的变换,以描述所述至少一个对象(100)的不同姿态(124);
其中,对于每次更新,所述网格数据(112)用第一网格(1141)描述处于预定姿态的所述至少一个对象,其中所述第一网格(1141)通过所述变换可向所述不同姿态(124)变换,并且其中所述数据流用信号通知所述网格的顶点(116)的数量(117)。
115.根据权利要求114所述的设备,其中所述数据流包括指示所述顶点的数量保持不变还是动态变化的配置信息,其中,如果所述顶点的数量动态变化,则所述数据流在每次更新时用信号通知所述网格的顶点的数量。
116.根据权利要求115所述的设备,其中在每次更新时,更新网格数据和变换信息。
117.根据权利要求114或115所述的设备,其中,所述变换信息在所述网格的顶点的数量发生变化的更新时更新,而所述变换信息在所述顶点的数量不发生变化的更新时保持不更新。
118.根据权利要求114至117中任一项所述的设备,其中所述变换信息包括骨架数据和一个或多个变形目标中的一个或多个,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。
119.根据权利要求114至118中任一项所述的设备,其中所述变换信息包括骨架数据和一个或多个变形目标,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,其中,在更新时,所述一个或多个变形目标和所述骨架数据以不同的更新速率更新。
120.一种用于评估数据流(130)的设备(300),其被配置为:
从其中以场景描述语言编码有一个或多个对象的数据流中评估体积视频数据的所述一个或多个对象,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象(100)从所述数据流(130)中取回至少
用第一网格(114)描述所述至少一个对象(100)的网格数据(112),以及
变换信息(122),其用于所述第一网格(114)的变换,以描述所述至少一个对象(100)的不同姿态(124),以及
姿态混合形状信息的更新(1422,1423);
其中,所述姿态混合形状信息指示在渲染开始时和/或没有变换时采用的默认姿态,和/或所述姿态混合形状信息的所述更新指示由所述姿态混合形状信息指示的多个姿态混合形状。
121.根据权利要求120所述的设备,其中所述数据流用信号通知所述网格的顶点的数量。
122.根据权利要求120或121所述的设备,其中所述数据流包括所述网格数据和/或变换信息的进一步更新。
123.根据权利要求120至122中任一项所述的设备,其中所述姿态混合形状信息的所述更新至少发生在所述网格的顶点的数量发生变化时的进一步更新处。
124.根据权利要求120至123中任一项所述的设备,其中,所述姿态混合形状信息的所述更新与所述网格的顶点的数量发生变化时的进一步更新同步。
125.根据权利要求42至124中任一项所述的设备,其中所述设备是头戴式显示设备、移动设备、平板电脑、边缘服务器或服务器。
126.一种生成数据流的方法(210),其包括:
以场景描述语言将体积视频数据的一个或多个对象生成(212)到数据流中,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象向所述数据流提供(214)至少第一网格数据、第二网格数据和对应性信息,其中
所述第一网格数据用第一网格描述所述至少一个对象;
所述第二网格数据用第二网格描述所述至少一个对象;以及
其中,所述对应性信息表示所述第一网格与第二网格之间的映射。
127.根据权利要求126所述的方法,其中所述第一网格与第二网格之间的映射是以下中的一个
顶点到顶点映射,
顶点到面映射,和/或
顶点到多顶点映射。
128.根据权利要求126至127中任一项所述的方法,其中所述第一网格数据包括用于所述第一网格的变换的变换信息,以描述所述至少一个对象的不同姿态。
129.根据权利要求128所述的方法,其中所述变换信息包括以下中的一个或多个
包括骨骼数据、关节数据和/或用于蒙皮的权重数据的骨架数据,以及
用于所述第一网格的一组顶点中的每一个的一个或多个变形目标,或者对于所述第一网格的一组顶点中的每一个,用于所述至少一个对象的不同姿态中的每一个的顶点位置。
130.根据权利要求126至129中任一项所述的方法,其中所述变换关于所述至少一个对象的动画、皮肤修改或变形。
131.根据权利要求128至130中任一项所述的方法,其中所述对应性信息提供用于将所述第一网格变换应用于所述第二网格的应用信息。
132.根据权利要求126至130所述的方法,其中所述第一网格数据关于第一时间戳并且所述第二网格数据关于第二时间戳,其中所述第二网格是所述第一网格的更新,以及所述第二网格数据包括用于所述第二网格的进一步变换的进一步变换信息,以描述所述至少一个对象的不同姿态。
133.根据权利要求126至132中任一项所述的方法,其中所述第一网格数据和/或所述第二网格数据包括描述所述至少一个对象的骨架姿态的骨架数据。
134.根据权利要求126至133中任一项所述的方法,其中所述第二网格包括比所述第一网格多的顶点。
135.根据权利要求126至134中任一项所述的方法,其中所述第二网格数据包括用于网格的纹理的纹理信息。
136.根据权利要求126至135中任一项所述的方法,其中所述第一网格随时间不变和/或所述第二网格随时间变化。
137.根据权利要求126至136中任一项所述的方法,其中所述方法进一步包括向所述数据流提供定义所述第二网格的更新的进一步第二网格数据,以及所述第一网格数据所关于的所述至少一个对象的第一姿态、以及所述第二网格数据所关于的所述至少一个对象的第二姿态的指示。
138.根据权利要求126至137中任一项所述的方法,其中所述对应性信息包括用于评估所述视频流的评估信息。
139.根据权利要求138所述的方法,其中所述评估信息指示要用于评估的算法。
140.根据权利要求138至139中任一项所述的方法,其中所述评估信息包括指向一组算法之中的要用于导出映射的算法的指针。
141.根据权利要求140所述的方法,其中所述评估信息还包括对于将要应用所述算法以导出映射的所述至少一个对象的姿态的指示。
142.根据权利要求126至141中任一项所述的方法,其中所述第一网格数据和/或所述第二网格数据包括两个或更多个网格,每个网格包括多个顶点,其中所述两个或更多个网格中的一个网格是所述两个或更多个网格中的另一个网格的扩展。
143.根据权利要求126至142中任一项所述的方法,其中,所述方法进一步包括向所述数据流提供关于网格的多个进一步网格数据,并且所述对应性信息包括关联信息,其识别所述多个网格之中的所述第一网格和第二网格。
144.根据权利要求126至143中任一项所述的方法,其中所述第一网格是先前传输的第一网格的更新和/或所述第二网格是先前传输的第二网格的更新。
145.根据权利要求144所述的方法,其中用于作为对应的先前传输的网格的更新的网格的网格数据包括更新的骨架数据、更新的关节数据、更新的权重数据、更新的变换数据和/或更新的纹理信息、更新的顶点的数量、更新的一个或多个顶点的位置、更新所对应的姿态的指示中的一个或多个。
146.根据权利要求128至145中任一项所述的方法,其中所述变换信息包括变换类型中的一种或多种,缩放值、旋转值、平移值或者作为其组合的矩阵。
147.根据权利要求126至146中任一项所述的方法,其中所述对应性信息是先前传输的对应性信息的更新。
148.根据权利要求147所述的方法,其中更新的对应性信息包括以下中的一个或多个:优选为可配置的对应性值的长度,对应性的数量,对应性的类型,例如面到面、顶点到面和/或顶点到多顶点,和/或包括这些对应性的值的长度的信息。
149.根据权利要求126至148中任一项所述的方法,其中任何的所述数据和/或信息可以作为所述数据流中的链接提供,其链接到实际的数据/或信息。
150.根据权利要求149所述的方法,其中所述数据流中的所链接的数据和/或信息是指以下中的一个或多个:场景描述语言,场景,对象,第一网格数据,第一网格,第二网格数据,第二网格,多个顶点之一,多顶点之一,映射,变换信息,变换,应用信息,姿态数据,姿态,骨架数据,关节数据,权重数据,纹理信息,纹理,评估信息,算法和/或关联信息。
151.根据权利要求149或150所述的方法,其中所链接的实际数据是在网络位置上可访问的。
152.根据权利要求126至151中任一项所述的方法,其中所述场景描述语言基于JSON标准。
153.根据权利要求152所述的方法,其中场景描述语言采用图形库传输格式。
154.根据权利要求126至153中任一项所述的方法,其中所述第二网格数据是体积扫描。
155.根据权利要求126至154中任一项所述的方法,其中所述第二网格数据是以三维技术用多于一个相机记录的,或计算机生成的。
156.一种生成数据流的方法(210),其包括:
以场景描述语言将体积视频数据的一个或多个对象生成(212)到数据流中,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象向所述数据流提供(214)至少以下的更新
用第一网格描述所述至少一个对象的网格数据,以及
变换信息,其用于所述第一网格的变换,以描述所述至少一个对象的不同姿态,其中,对于每次更新,所述网格数据用所述第一网格描述处于预定姿态的所述至少一个对象,其中所述第一网格通过所述变换可向所述不同姿态变换,并且其中所述数据流用信号通知所述网格的顶点的数量。
157.根据权利要求156所述的方法,其中所述方法进一步包括向所述数据流提供指示所述顶点的数量保持不变还是动态变化的配置信息,其中,如果所述顶点的数量动态变化,则所述数据流在每次更新时用信号通知所述网格的顶点的数量。
158.根据权利要求157所述的方法,其中所述方法进一步包括在每次更新时更新网格数据和变换信息。
159.根据权利要求156或157所述的方法,其中所述方法进一步包括在所述网格的顶点的数量发生变化的更新时更新所述变换信息,而在所述顶点的数量不发生变化的更新时保持不更新所述变换信息。
160.根据权利要求156至159中任一项所述的方法,其中所述方法进一步包括向所述数据流提供包括骨架数据和一个或多个变形目标中的一个或多个的变换信息,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。
161.根据权利要求156至160中任一项所述的方法,其中所述方法进一步包括向所述数据流提供包括骨架数据和一个或多个变形目标的变换信息,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,其中,在更新时,所述一个或多个变形目标和所述骨架数据以不同的更新速率更新。
162.一种生成数据流的方法(210),其包括:
以场景描述语言将体积视频数据的一个或多个对象生成(212)到数据流中,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象向所述数据流提供(214)至少以下
用第一网格描述所述至少一个对象的网格数据,以及
变换信息,其用于所述第一网格的变换,以描述所述至少一个对象的不同姿态,以及
姿态混合形状信息的更新;
其中,所述姿态混合形状信息指示在渲染开始时和/或没有变换时采用的默认姿态,和/或所述姿态混合形状信息的所述更新指示由所述姿态混合形状信息指示的多个姿态混合形状。
163.根据权利要求162所述的方法,其中所述方法进一步包括向所述数据流提供用信号通知所述网格的顶点的数量的信息。
164.根据权利要求162或163所述的方法,其中所述方法进一步包括向所述数据流提供所述网格数据和/或变换信息的进一步更新。
165.根据权利要求162至164中任一项所述的方法,其中所述方法进一步包括至少在所述网格的顶点的数量发生变化的进一步更新处更新所述姿态混合形状信息。
166.根据权利要求162至165中任一项所述的方法,其中所述方法进一步包括将所述姿态混合形状信息的更新与所述网格的顶点的数量发生变化的进一步更新同步。
167.一种评估数据流的方法(310),其包括:
从其中以场景描述语言编码有一个或多个对象的数据流中评估(312)体积视频数据的所述一个或多个对象,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象从所述数据流中取回(314)至少第一网格数据、第二网格数据和对应性信息,其中
所述第一网格数据用第一网格描述所述至少一个对象;
所述第二网格数据用第二网格描述所述至少一个对象;以及
其中,所述对应性信息表示所述第一网格与第二网格之间的映射。
168.根据权利要求167所述的方法,进一步包括
通过评估所述第一网格数据、所述第二网格数据和所述对应性信息来生成所述至少一个对象的表示。
169.根据权利要求167或168所述的方法,其中所述第一网格与第二网格之间的映射是以下中的一个
顶点到顶点映射,
顶点到面映射,和/或
顶点到多顶点映射。
170.根据权利要求167至169中任一项所述的方法,其中所述第一网格数据包括用于第一网格的变换的变换信息,以描述所述至少一个对象的不同姿态。
171.根据权利要求170所述的方法,其中所述变换信息包括以下中的一个或多个
包括骨骼数据、关节数据和/或用于蒙皮的权重数据的骨架数据,以及
用于所述第一网格的一组顶点中的每一个的一个或多个变形目标,或者对于所述第一网格的一组顶点中的每一个,用于所述至少一个对象的不同姿态中的每一个的顶点位置。
172.根据权利要求167至171中任一项所述的方法,其中所述变换关于所述至少一个对象的动画、皮肤修改或变形。
173.根据权利要求170至172中任一项所述的方法,其中所述对应性信息提供用于将所述第一网格变换为所述第二网格的应用信息。
174.根据权利要求167至172所述的方法,其中所述第一网格数据关于第一时间戳并且所述第二网格数据关于第二时间戳,其中所述第二网格是所述第一网格的更新,以及所述第二网格数据包括用于所述第二网格的进一步变换的进一步变换信息,以描述所述至少一个对象的不同姿态。
175.根据权利要求167至174中任一项所述的方法,其中所述第一网格数据和/或所述第二网格数据包括描述所述至少一个对象的骨架姿态的骨架数据。
176.根据权利要求167至175中任一项所述的方法,其中所述第二网格包括比第一所述网格多的顶点。
177.根据权利要求167至176中任一项所述的方法,其中所述第二网格数据包括用于网格的纹理的纹理信息。
178.根据权利要求167至177中任一项所述的方法,其中所述第一网格随时间不变和/或所述第二网格随时间变化。
179.根据权利要求167至178中任一项所述的方法,其中所述方法进一步包括从所述数据流中取回定义所述第二网格的更新的进一步第二网格数据,以及所述第一网格数据所关于的所述至少一个对象的第一姿态、以及所述第二网格数据所关于的所述至少一个对象的第二姿态的指示。
180.根据权利要求167至179中任一项所述的方法,其中所述对应性信息包括用于评估所述视频流的评估信息。
181.根据权利要求180所述的方法,其中所述评估信息指示要用于评估的算法。
182.根据权利要求180至181中任一项所述的方法,其中所述评估信息包括指向一组算法之中的要用于导出映射的算法的指针。
183.根据权利要求182所述的方法,其中所述评估信息还包括对于将要应用所述算法以导出映射的所述至少一个对象的姿态的指示。
184.根据权利要求167至183中任一项所述的方法,其中所述第一网格数据和/或所述第二网格数据包括两个或更多个网格,每个网格包括多个顶点,其中所述两个或更多个网格中的一个网格是所述两个或更多个网格中的另一个网格的扩展。
185.根据权利要求167至184中任一项所述的方法,其中,所述方法进一步包括从所述数据流中取回关于网格的多个进一步网格数据,并且所述对应性信息包括关联信息,其识别所述多个网格之中的所述第一网格和第二网格。
186.根据权利要求167至185中任一项所述的方法,其中所述第一网格是先前传输的第一网格的更新和/或所述第二网格是先前传输的第二网格的更新。
187.根据权利要求186所述的方法,其中用于作为对应的先前传输的网格的更新的网格的网格数据包括更新的骨架数据、更新的关节数据、更新的权重数据、更新的变换数据和/或更新的纹理信息、更新的顶点的数量、更新的一个或多个顶点的位置、更新所对应的姿态的指示中的一个或多个。
188.根据权利要求167至187中任一项所述的方法,其中所述变换信息包括变换类型中的一种或多种,缩放值、旋转值、平移值或者作为其组合的矩阵。
189.根据权利要求167至188中任一项所述的方法,其中所述对应性信息是先前传输的对应性信息的更新。
190.根据权利要求189所述的方法,其中更新的对应性信息包括以下中的一个或多个:优选为可配置的对应性值的长度,对应性的数量,对应性的类型,例如面到面、顶点到面和/或顶点到多顶点,和/或包括这些对应性的值的长度的信息。
191.根据权利要求167至190中任一项所述的方法,其中任何的所述数据和/或信息可以作为所述数据流中的链接提供,其链接到实际的数据/或信息。
192.根据权利要求191所述的方法,其中所述数据流中的所链接的数据和/或信息是指以下中的一个或多个:场景描述语言,场景,对象,第一网格数据,第一网格,第二网格数据,第二网格,多个顶点之一,多顶点之一,映射,变换信息,变换,应用信息,姿态数据,姿态,骨架数据,关节数据,权重数据,纹理信息,纹理,评估信息,算法和/或关联信息。
193.根据权利要求191或192所述的方法,其中所链接的实际数据是在网络位置上可访问的。
194.根据权利要求167至193中任一项所述的方法,其中所述场景描述语言基于JSON标准。
195.根据权利要求194所述的方法,其中所述场景描述语言采用图形库传输格式。
196.根据权利要求167至195中任一项所述的方法,其中所述第二网格数据是体积扫描。
197.根据权利要求167至196中任一项所述的方法,其中第二网格数据是以三维技术用多于一个相机记录的,或计算机生成的。
198.一种评估数据流的方法(310),其包括:
从其中以场景描述语言编码有一个或多个对象的数据流中评估(312)体积视频数据的所述一个或多个对象,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象的从所述数据流中取回(314)至少以下的更新
用第一网格描述所述至少一个对象的网格数据,以及
变换信息,其用于所述第一网格的变换,以描述所述至少一个对象的不同姿态;
其中,对于每次更新,所述网格数据用第一网格描述处于预定姿态的所述至少一个对象,其中所述第一网格通过所述变换可向所述不同姿态变换,并且其中所述数据流用信号通知所述网格的顶点的数量。
199.根据权利要求198所述的方法,其中所述方法进一步包括从所述数据流中取回指示所述顶点的数量保持不变还是动态变化的配置信息,其中,如果所述顶点的数量动态变化,则所述数据流在每次更新时用信号通知所述网格的顶点的数量。
200.根据权利要求199所述的方法,其中所述方法进一步包括在每次更新时更新网格数据和变换信息。
201.根据权利要求198或199所述的方法,其中所述方法进一步包括在所述网格的顶点的数量发生变化的更新时更新,而所述变换信息在所述顶点的数量不发生变化的更新时保持不更新。
202.根据权利要求198至201中任一项所述的方法,其中所述方法进一步包括从所述数据流中取回包括骨架数据和一个或多个变形目标中的一个或多个的变换信息,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据。
203.根据权利要求198至202中任一项所述的方法,其中所述方法进一步包括从所述数据流中取回包括骨架数据和一个或多个变形目标的变换信息,所述骨架数据包括骨骼数据、关节数据和/或用于蒙皮的权重数据,其中,在更新时,所述一个或多个变形目标和所述骨架数据以不同的更新速率更新。
204.一种评估数据流的方法(310),其包括:
从其中以场景描述语言编码有一个或多个对象的数据流中评估(312)体积视频数据的所述一个或多个对象,所述数据流表示包括一个或多个对象的场景;以及
对于至少一个对象从所述数据流中取回(314)至少
用第一网格描述所述至少一个对象的网格数据,以及
变换信息,其用于所述第一网格的变换,以描述所述至少一个对象的不同姿态,以及
姿态混合形状信息的更新;
其中,所述姿态混合形状信息指示在渲染开始时和/或没有变换时采用的默认姿态,和/或所述姿态混合形状信息的所述更新指示由所述姿态混合形状信息指示的多个姿态混合形状。
205.根据权利要求204所述的方法,其中所述方法进一步包括从所述数据流中取回用信号通知所述网格的顶点的数量的信息。
206.根据权利要求204或205所述的方法,其中所述方法进一步包括从所述数据流中取回所述网格数据和/或变换信息的进一步更新。
207.根据权利要求204至206中任一项所述的方法,其中所述方法进一步包括至少在所述网格的顶点的数量发生变化的进一步更新处更新所述姿态混合形状信息。
208.根据权利要求204至207中任一项所述的方法,其中所述方法进一步包括将所述姿态混合形状信息的所述更新与所述网格的顶点的数量发生变化时的进一步更新同步。
209.一种包括用于处理设备的程序的计算机程序产品,包括当所述程序在所述处理设备上运行时用于执行权利要求126至208中任一项所述的步骤的软件代码部分。
210.根据权利要求209所述的计算机程序产品,其中所述计算机程序产品包括其上存储有所述软件代码部分的计算机可读介质,其中所述程序可直接加载到所述处理设备的内部存储器中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20199853.1 | 2020-10-02 | ||
EP20199853 | 2020-10-02 | ||
PCT/EP2021/076917 WO2022069616A1 (en) | 2020-10-02 | 2021-09-30 | Data stream, devices and methods for volumetric video data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116583881A true CN116583881A (zh) | 2023-08-11 |
Family
ID=72744649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180081386.1A Pending CN116583881A (zh) | 2020-10-02 | 2021-09-30 | 用于体积视频数据的数据流、设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230260215A1 (zh) |
EP (1) | EP4222711A1 (zh) |
KR (1) | KR20230079256A (zh) |
CN (1) | CN116583881A (zh) |
WO (1) | WO2022069616A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115170707B (zh) * | 2022-07-11 | 2023-04-11 | 上海哔哩哔哩科技有限公司 | 基于应用程序框架的3d图像实现系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009105126A1 (en) * | 2008-02-22 | 2009-08-27 | Pixar | Mesh transfer |
WO2016207311A1 (en) * | 2015-06-24 | 2016-12-29 | MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. | Skinned multi-person linear model |
US10984591B2 (en) * | 2018-07-27 | 2021-04-20 | Arcturus Studios Inc. | Volumetric data post-production and distribution system |
-
2021
- 2021-09-30 WO PCT/EP2021/076917 patent/WO2022069616A1/en active Application Filing
- 2021-09-30 EP EP21786414.9A patent/EP4222711A1/en active Pending
- 2021-09-30 KR KR1020237014532A patent/KR20230079256A/ko unknown
- 2021-09-30 CN CN202180081386.1A patent/CN116583881A/zh active Pending
-
2023
- 2023-03-30 US US18/193,394 patent/US20230260215A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022069616A1 (en) | 2022-04-07 |
EP4222711A1 (en) | 2023-08-09 |
US20230260215A1 (en) | 2023-08-17 |
KR20230079256A (ko) | 2023-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540817B2 (en) | System and method for creating a full head 3D morphable model | |
US6154222A (en) | Method for defining animation parameters for an animation definition interface | |
US6483513B1 (en) | Method for defining MPEP 4 animation parameters for an animation definition interface | |
CN101156175B (zh) | 3d对象的基于深度图像呈现方法和使用该方法的建模方法和设备以及渲染方法和设备 | |
US11398059B2 (en) | Processing 3D video content | |
US7920143B1 (en) | Method for defining animation parameters for an animation definition interface | |
US11321919B2 (en) | Volumetric data post-production and distribution system | |
US20130278607A1 (en) | Systems and Methods for Displaying Animations on a Mobile Device | |
Huang et al. | Hybrid skeletal-surface motion graphs for character animation from 4d performance capture | |
WO2002009037A2 (en) | Modeling human beings by symbol manipulation | |
US7274367B2 (en) | Method for defining animation parameters for an animation definition interface | |
US8358311B1 (en) | Interpolation between model poses using inverse kinematics | |
US20230260215A1 (en) | Data stream, devices and methods for volumetric video data | |
Radovan et al. | Facial animation in a nutshell: past, present and future | |
Mattos et al. | 3D linear facial animation based on real data | |
Li et al. | Animating cartoon faces by multi‐view drawings | |
Lavagetto et al. | Smooth surface interpolation and texture adaptation for MPEG-4 compliant calibration of 3D head models | |
Preda et al. | Virtual character definition and animation within the MPEG-4 standard | |
KR100624453B1 (ko) | 3차원 캐릭터 애니메이션을 효율적으로 저작/재생하는방법 및 장치 | |
US10825225B1 (en) | Simulation stream pipeline | |
US20240096016A1 (en) | System And Method For Virtual Object Asset Generation | |
Yang et al. | Active contour projection for multimedia applications | |
Garchery et al. | Real-time adaptive facial animation | |
KR20230147709A (ko) | 3d 장면 설명 데이터, 3d 장면 설명 데이터로부터 장면을 렌더링하는 장면 렌더링 장치, 및 장면을 3d 장면 설명 데이터로 인코딩하는 장치 | |
Lin et al. | A low bit-rate web-enabled synthetic head with speech-driven facial animation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |