CN116982084A - 用于网格压缩的顶点连接性编码 - Google Patents

用于网格压缩的顶点连接性编码 Download PDF

Info

Publication number
CN116982084A
CN116982084A CN202280016783.5A CN202280016783A CN116982084A CN 116982084 A CN116982084 A CN 116982084A CN 202280016783 A CN202280016783 A CN 202280016783A CN 116982084 A CN116982084 A CN 116982084A
Authority
CN
China
Prior art keywords
connectivity
vertex
vertices
inferred
mesh
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
Application number
CN202280016783.5A
Other languages
English (en)
Inventor
许晓中
张翔
田军
黄超
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent America LLC filed Critical Tencent America LLC
Publication of CN116982084A publication Critical patent/CN116982084A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

处理电路从携载3D网格的比特流中解码3D网格中的顶点的坐标。3D网格表示具有多边形的对象的表面,多边形由顶点和原始连接性来定义,该原始连接性具有连接顶点的原始边。处理电路根据顶点的坐标,得出推断的连接性,推断的连接性具有连接顶点的推断边。处理电路从比特流中解码连接性差异。在示例中,连接性差异与顶点的子集相关联。在另一示例中,连接性差异与原始边和推断边中的一条或更多条边相关联。处理电路根据推断的连接性和连接性差异确定恢复的连接性,并且根据恢复的连接性重建3D网格。

Description

用于网格压缩的顶点连接性编码
相关申请的交叉引用
本申请要求于2022年10月13日提交的美国专利申请第17/965,611号“VERTEXCONNECTIVITY CODING FOR MESH COMPRESSION”的优先权权益,该美国专利申请要求于2021年11月5日提交的美国临时专利申请第63/276,459号“Vertex Connectivity Codingfor Mesh Compression”以及于2021年12月13日提交的美国临时专利申请第63/289,026号“Vertex Connectivity Coding for Mesh Compression”的优先权权益。在先申请的全部公开内容通过引用整体并入本文。
技术领域
本公开内容描述了总体上与网格编码相关的实施方式。
背景技术
本文提供的背景技术描述是出于总体上呈现本公开内容的上下文的目的。就在该背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交时可能未被另外限定作为现有技术的描述的各方面既没有明确地也没有隐含地被承认为是针对本公开内容的现有技术。
人们开发了各种技术在3维(3D)空间中捕获和呈现世界(例如世界上的对象、世界上的环境等)。世界的3D呈现能够实现更多沉浸式的交互和交流形式。在一些示例中,点云和网格可以用作世界的3D表示。
发明内容
本公开内容的各个方面提供了用于网格编码(例如,压缩和解压缩)的方法和装置。在一些示例中,用于网格编码的装置包括处理电路。处理电路从携载三维(3D)网格的比特流中解码3D网格中的顶点的坐标。3D网格表示具有多边形的对象的表面,该多边形由顶点和原始连接性来定义,该原始连接性具有连接顶点的原始边。处理电路根据顶点的坐标得出推断的连接性,推断的连接性具有连接顶点的推断边。处理电路从比特流中解码与顶点的子集相关联的连接性差异,根据推断的连接性和连接性差异确定恢复的连接性,并且根据恢复的连接性重建3D网格。
在一些示例中,为了对连接性差异进行解码,从比特流中解码第一值,该第一值指示顶点的子集中的顶点的数量。处理电路对顶点的子集中的第一顶点的第一索引进行解码,并且从比特流中解码第二值,该第二值指示与第一顶点相关联的连接性校正的数量。处理电路对索引序列进行解码,该索引序列指示与第一顶点相关联的连接性校正分别对应的顶点的集合。
在一些示例中,为了确定恢复的连接性,处理电路确定与连接性校正对应的第二顶点的第二索引,并且响应于推断边中存在连接第一顶点和第二顶点的第一边,处理电路从恢复的连接性中去除第一边。另外,在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,处理电路在恢复的连接性中添加连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了确定恢复的连接性,处理电路确定与连接性校正对应的第二顶点的第二索引,并且响应于推断边中不存在连接第一顶点和第二顶点的第一边,处理电路在恢复的连接性中添加连接第一顶点和第二顶点的第一边。在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,处理电路从恢复的连接性中去除连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了对指示与连接性校正分别对应的顶点的集合的索引序列进行解码,处理电路从比特流中解码指示第二顶点的第二索引的第一信号,并且从比特流中解码第二信号,该第二信号是索引序列中的第二索引与第三顶点的第三索引之间的差异。
在一些示例中,为了得出推断的连接性和对连接性差异进行解码,处理电路针对第一顶点,得出在推断的连接性中与第一顶点连接的顶点的第一集合。处理电路从比特流中解码与第一顶点相关联的标志,该标志指示一个或更多个连接性校正是否与第一顶点相关联。在示例中,该标志指示与第一顶点相关联的一个或更多个连接性校正,处理电路从比特流中解码索引序列,该索引序列指示与第一顶点相关联的一个或更多个连接性校正分别对应的顶点的第二集合。
在一些示例中,为了对连接性差异进行解码,处理电路从比特流中解码顶点的子集中的第一顶点的索引,从比特流中解码效价差,并且通过将效价差与推断的连接性中的第一顶点的推断的效价相加来确定第一顶点的恢复的效价。
在一些实施方式中,处理电路从携载三维(3D)网格的比特流中解码出3D网格中的顶点的坐标。3D网格表示具有多边形的对象的表面,该多边形由顶点和原始连接性来定义,所述原始连接性具有连接顶点的原始边。处理电路根据顶点的坐标,得出推断的连接性,该推断的连接性具有连接顶点的推断边,并且从比特流中解码与原始边和推断边中的一条或更多条边相关联的连接性差异。处理电路根据推断的连接性和连接性差异确定恢复的连接性,并且根据恢复的连接性重建3D网格。
在一些示例中,为了对连接性差异进行解码,处理电路对比特流中指示第一边的第一顶点和第二顶点的信号进行解码。在示例中,处理电路对与第一顶点的第一索引对应的第一值进行解码,并且对第二值进行解码,该第二值对应于第一索引与第二顶点的第二索引之间的差异。
在一些示例中,为了确定恢复的连接性,响应于推断边中存在连接第一顶点和第二顶点的第一边,处理电路从恢复的连接性中去除第一边。在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,处理电路在恢复的连接性中添加连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了确定恢复的连接性,响应于推断边中不存在连接第一顶点和第二顶点的第一边,处理电路在恢复的连接性中添加连接第一顶点和第二顶点的第一边。在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,处理电路从恢复的连接性中去除连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了对连接性差异进行解码,处理电路对分别与推断边分别相关联的标志进行解码,与推断边相关联的标志指示推断边是否存在于原始边中。
本公开内容的各方面还提供了存储指令的非暂态计算机可读介质,该指令在由计算机执行时使计算机执行用于网格编码的方法中的任何一个或组合。
附图说明
根据以下详细描述和附图,所公开的主题的另外的特征、性质和各种优点将更加明显,在附图中:
图1示出了一些示例中的通信系统的框图。
图2示出了一些示例中的流式传输系统的框图。
图3示出了一些示例中的用于编码点云帧的编码器的框图。
图4示出了一些示例中的用于对与点云帧对应的压缩比特流进行解码的解码器的框图。
图5示出了一些示例中的视频解码器的框图。
图6示出了一些示例中的视频编码器的框图。
图7示出了一些示例中的用于编码点云帧的编码器的框图。
图8示出了一些示例中的用于对携载点云帧的压缩比特流进行解码的解码器的框图。
图9示出了一些示例中的示出网格到地图集的映射的图。
图10A至图10E示出了使用顶点重新排序进行网格压缩的示例。
图11示出了根据本公开内容的一些实施方式的用于网格压缩的帧的图。
图12A至图12D示出了根据本公开内容的一些实施方式的网格帧的显式编码连接性属性的示例。
图13示出了根据本公开内容的一些实施方式的用于网格压缩的帧的图。
图14A至图14F示出根据本公开内容的一些实施方式的对网格帧的连接性差异进行编码的示例。
图15示出了概述一些实施方式中的处理示例的流程图。
图16示出了概述一些实施方式中的处理示例的流程图。
图17示出了概述一些实施方式中的处理示例的流程图。
图18示出了概述一些实施方式中的处理示例的流程图。
图19示出了概述一些实施方式中的处理示例的流程图。
图20是一些示例中的计算机系统的示意图。
具体实施方式
本公开内容的各方面提供了三维(3D)媒体处理领域的技术。
3D媒体处理的技术发展,例如三维(3D)捕获、3D建模和3D呈现等方面的进展,促进了3D媒体内容在多个平台和装置上的普遍存在。在示例中,婴儿迈出的第一步可以在一个大洲被捕获,媒体技术可以让祖父母在另一个大洲观看(也许还有交互)并享受与婴儿的沉浸式体验。根据本公开内容的一个方面,为了提高沉浸式体验,3D模型变得越来越复杂,并且3D模型的创建和消费占用了大量的数据资源,例如数据存储、数据传输资源。
根据本公开内容的一些方面,点云和网格可以用作3D模型来表示沉浸式内容。
点云通常可以指3D空间中的点的集合,每个点具有相关联的属性,例如颜色、材料性质、纹理信息、强度属性、反射率属性、运动相关属性、模式属性以及各种其他属性。点云可以用来重建对象或场景作为这些点的组成。
对象的网格(也称为网格模型)可以包括描述对象的表面的多边形。每个多边形可以由3D空间中的多边形的顶点以及顶点如何连接到多边形的信息来定义。顶点如何连接的信息称为连接性信息。在一些示例中,网格还可以包括与顶点相关联的属性,例如颜色、法线等。
根据本公开内容的一些方面,用于点云压缩(PCC)的一些编码工具可以用于网格压缩。例如,网格可以被重新网格化以生成新网格,该新网格的连接性信息可以被推断出来。新网格的顶点以及与新网格的顶点相关联的属性可以被视为点云中的点,并且可以使用PCC编解码器进行压缩。
点云可以用于将对象或场景重建为点的组成。这些点可以在各种设置中使用多个摄像装置、深度传感器或Lidar来捕获,并且可以由数千至数十亿个点组成,以真实地表示重建的场景或对象。面片通常是指由点云描述的表面的连续子集。在示例中,面片包括具有表面法向量的点,这些点相互间的偏差小于阈值。
可以根据各种方案(例如称为G-PCC的基于几何的方案,称为V-PCC的基于视频编码的方案等)执行PCC。根据本公开内容的一些方面,G-PCC直接对3D几何进行编码,并且是纯粹的基于几何的方法,与视频编码没有太多共同之处,而V-PCC则主要是基于视频编码的。例如,V-PCC可以将3D云的点映射到2D网格(图像)的像素。V-PCC方案可以利用通用视频编解码器进行点云压缩。本公开内容中的PCC编解码器(编码器/解码器)可以是G-PCC编解码器(编码器/解码器)或V-PCC编解码器。
根据本公开内容的一个方面,V-PCC方案可以使用现有的视频编解码器将点云的几何、占用和纹理压缩为三个单独的视频序列。解释这三个视频序列所需的额外元数据被分别压缩。整个比特流的一小部分是元数据,在示例中,该元数据可以使用软件实现方式来有效地进行编码/解码。大部分的信息由视频编解码器处理的。
图1示出了一些示例中的通信系统(100)的框图。该通信系统(100)包括多个终端设备,所述多个终端设备可以经由例如网络(150)相互通信。例如,通信系统(100)包括经由网络(150)相互连接的一对终端设备(110)和(120)。在图1的示例中,第一对终端设备(110)和(120)可以执行点云数据的单向传输。例如,终端设备(110)可以压缩由与终端设备(110)连接的传感器(105)捕获的点云(例如,表示结构的点)。经压缩的点云可以经由网络(150)例如以比特流的形式传输给其他终端设备(120)。终端设备(120)可以从网络(150)接收经压缩的点云,解压缩比特流以重建该点云,并且适当地显示重建的点云。单向数据传输可能在媒体服务应用等方面很常见。
在图1的示例中,终端设备(110)和(120)可以被示出为服务器和个人计算机,但是本公开内容的原则可以不受此限制。本公开内容的实施方式可以找到膝上型计算机、平板计算机、智能手机、游戏终端、媒体播放器和/或专用三维(3D)设备的应用。网络(150)表示任何数目的网络,这些网络在终端设置(110)与(120)之间传输经压缩的点云。网络(150)可以包括例如有线(wired)和/或无线通信网络。网络(150)可以在电路交换和/或分组交换通道中交换数据。代表性的网络包括电信网络、局域网、广域网、互联网等。
图2示出了一些示例中的流式传输系统(200)的框图。流式传输系统(200)是点云的使用应用。所公开的主题可以同样适用于其他启用点云的应用,例如3D远程呈现应用、虚拟现实应用等。
流式传输系统(200)可以包括捕获子系统(213)。捕获子系统(213)可以包括点云源(201),例如光检测和测距(light detection and ranging,LIDAR)系统、3D摄像装置、3D扫描仪、在软件中生成未压缩的点云的图形生成部件等,该图形生成部件生成例如未压缩的点云(202)。在示例中,点云(202)包括由3D摄像装置捕获的点。与经压缩的点云(204)(经压缩的点云的比特流)相比,点云(202)被描绘成粗线,以强调高数据量。经压缩的点云(204)可以由电子设备(220)生成,该电子设备(220)包括与耦接至点云源(201)的编码器(203)。编码器(203)可以包括硬件、软件或其组合,以启用或实现下文更详细描述的所公开主题的各个方面。与点云流(202)相比,经压缩的点云(204)(或经压缩的点云比特流(204))被描绘成细线以强调较低的数据量,并且可以被存储在流式传输服务器(205)上供将来使用。一个或更多个流式传输客户端子系统,如图2中的客户端子系统(206)和(208)可以访问流式传输服务器(205)以检索经压缩的点云(204)的副本(207)和(209)。客户端子系统(206)可以包括例如电子设备(230)中的解码器(210)。解码器(210)对经压缩的点云的传入副本(207)进行解码,并且创建可以在渲染设备(212)上进行呈现的重建点云(211)的传出流。
要注意,电子设备(220)和(230)可以包括其他部件(未示出)。例如,电子设备(220)可以包括解码器(未示出),并且电子设备(230)也可以包括编码器(未示出)。
在一些流式传输系统中,经压缩的点云(204)、(207)和(209)(例如,经压缩的点云的比特流)可以根据某些标准来压缩。在一些示例中,视频编码标准被用于点云的压缩。这些标准的示例包括高效视频编码(High Efficiency Video Coding,HEVC)、多功能视频编码(Versatile Video Coding,VVC)等。
图3示出了根据一些实施方式的用于编码点云帧的V-PCC编码器(300)的框图。在一些实施方式中,V-PCC编码器(300)可以用于通信系统(100)和流式传输系统(200)中。例如,编码器(203)可以以与V-PCC编码器(300)类似的方式进行配置和操作。
V-PCC编码器(300)接收点云帧作为未压缩的输入,并且生成与经压缩的点云帧对应的比特流。在一些实施方式中,V-PCC编码器(300)可以从点云源(例如点云源(201)等)接收点云帧。
在图3的示例中,V-PCC编码器(300)包括面片生成模块(306)、面片打包模块(308),几何图像生成模块(310)、纹理图像生成模块(312)面片信息模块(304)、占用图模块(314)、平滑模块(336)、图像填充模块(316)和(318)、组扩张模块(320)、视频压缩模块(322)、(323)和(332)、辅助面片信息压缩模块(338)、熵压缩模块(334)和复用器(324)。
根据本公开内容的一个方面,V-PCC编码器(300),将3D点云帧连同一些元数据(例如,占用图和面片信息)一起转换为基于图像的表示,这些元数据用于将经压缩的点云转换回解压缩的点云。在一些示例中,V-PCC编码器(300)可以将3D点云帧转换为几何图像、纹理图像和占用图,然后使用视频编码技术将几何图像、纹理图像和占用图编码为比特流。一般来说,几何图像是2D图像,该2D图像的像素填充有与投影到像素上的点相关联的几何值,并且填充有几何值的像素可以称为几何样本。纹理图像是2D图像,该2D图像的像素填充有与投影到像素上的点相关联的纹理值,并且填充有纹理值的像素可以称为纹理样本。占用图是2D图像,该2D图像的像素填充有指示被面片占用或未占用的值。
面片生成模块(306)将点云分割成面片的集合(例如,面片被定义为由点云描述的表面的连续子集),这些面片可以是交叠的或不交叠的,使得每个面片可以由相对于2D空间中的平面的深度场来描述。在一些实施方式中,面片生成模块(306)旨在将点云解压缩为具有平滑边界的最小数目的面片,同时也使重建误差最小化。
在一些示例中,面片信息模块(304)可以收集指示面片的大小和形状的面片信息。在一些示例中,面片信息可以被打包成图像帧,然后由辅助面片信息压缩模块(338)编码,以生成经压缩的辅助面片信息。
在一些示例中,面片打包模块(308)被配置成将所提取的面片映射到二维(2D)网格上,同时使未使用的空间最小化,并且保证网格的每个M×M(例如,16×16)块都与唯一面片相关联。有效的面片打包可以通过使未使用的空间最小化或者确保时间上的一致性来直接影响压缩效率。
几何图像生成模块(310)可以在给定的面片位置处生成与点云的几何形状相关联的2D几何图像。纹理图像生成模块(312)可以在给定的面片位置处生成与点云的纹理相关联的2D纹理图像。几何图像生成模块(310)和纹理图像生成模块(312)利用打包处理期间计算的3D至2D的映射,将点云的几何和纹理存储为图像。为了更好地处理多个点被投影到同一样本的情况,每个面片被投影到被称为层的两个图像上。在示例中,几何图像由YUV420-8位格式的WxH单色帧表示。为了生成纹理图像,纹理生成过程利用重建/平滑的几何图形,以计算与重新采样的点相关联的颜色。
占用图模块(314)可以生成描述每个单元的填充信息的占用图。例如,占用图包括二进制图,该二进制图对于网格的每个单元指示该单元是属于空白空间还是属于点云。在示例中,占用图使用二进制信息来针对每个像素描述该像素是否被填充。在另一示例中,占用图使用二进制信息来描述每个像素块是否被填充。
由占用图模块(314)生成的占用图可以使用无损编码或有损编码进行压缩。当使用无损编码时,熵压缩模块(334)用于压缩占用图。当使用有损编码时,视频压缩模块(332)用于压缩占用图。
要注意,面片打包模块(308)可以在图像帧中打包的2D面片之间留下一些空隙。图像填充模块(316)和(318)可以填充空白空间(称为填充),以生成可能适合于2D视频和图像编解码的图像帧。图像填充也称为背景填充,图像填充可以用冗余信息填充未使用的空间。在一些示例中,良好的背景填充最小地增加了比特率,同时不会在面片边界周围引入明显的编码失真。
视频压缩模块(322)、(323)和(332)可以基于合适的视频编码标准例如HEVC、VVC等,对2D图像例如经填充的几何图像、经填充的纹理图像和占用图进行编码。在示例中,视频压缩模块(322)、(323)和(332)是单独操作的独立部件。要注意,视频压缩模块(322)、(323)和(332)在另一示例中可以作为单个部件实现。
在一些示例中,平滑模块(336)被配置成生成重建的几何图像的平滑的图像。平滑的图像可以被提供给纹理图像生成(312)。然后,纹理图像生成(312)可以基于重建的几何图像来调整纹理图像的生成。例如,当面片形状(例如几何形状)在编码和解码期间稍微失真时,在生成纹理图像时可以考虑该失真以校正面片形状的失真。
在一些实施方式中,组扩张(320)被配置成用冗余的低频内容填充对象边界周围的像素,以改进编码增益以及重建的点云的视觉质量。
复用器(324)可以将经压缩的几何图像、经压缩的纹理图像、经压缩的占用图、经压缩的辅助面片信息复用为经压缩的比特流。
图4示出了一些示例中的用于对与点云帧对应的压缩比特流进行解码的V-PCC解码器(400)的框图。在一些示例中,V-PCC解码器(400)可以用于通信系统(100)和流式传输系统(200)中。例如,解码器(210)可以被配置成以类似于V-PCC解码器(400)的方式操作。V-PCC解码器(400)接收经压缩的比特流,并且基于经压缩的比特流生成重建的点云。
在图4的示例中,V-PCC解码器(400)包括解复用器(432)、视频解压缩模块(434)和(436)、占用图解压缩模块(438)、辅助面片信息解压缩模块(442)、几何重建模块(444)、平滑模块(446)、纹理重建模块(448)和颜色平滑模块(452)。
解复用器(432)可以接收经压缩的比特流,并且将经压缩的比特流分离为经压缩的纹理图像、经压缩的几何图像、经压缩的占用图和经压缩的辅助面片信息。
视频解压缩模块(434)和(436)可以根据合适的标准(例如HEVC、VVC等)对经压缩的图像进行解码,并且输出解压缩的图像。例如,视频解压缩模块(434)对经压缩的纹理图像进行解码并且输出解压缩的纹理图像;视频解压缩模块(436)对经压缩的几何图像进行解码并且输出解压缩的几何图像。
占用图解压缩模块(438)可以根据合适的标准(例如HEVC、VVC等)对经压缩的占用图进行解码并且输出解压缩的占用图。
辅助面片信息解压缩模块(442)可以根据合适的标准(例如HEVC、VVC等)对经压缩的辅助面片信息进行解码,并且输出解压缩的辅助面片信息。
几何重建模块(444)可以接收解压缩的几何图像,并且基于解压缩的占用图和解压缩的辅助面片信息生成重建的点云几何。
平滑化模块(446)可以平滑面片边缘的不协调性。平滑程序旨在减轻由于压缩伪影而在面片边界处可能出现的潜在不连续情况。在一些实施方式中,平滑滤波器可以被应用于位于面片边界上的像素,以缓解可能由压缩/解压缩引起的失真。
纹理重建模块(448)可以基于解压缩的纹理图像和平滑的几何图形来确定点云中的点的纹理信息。
颜色平滑模块(452)可以平滑着色的不协调性。3D空间中的非相邻面片在2D视频中经常被挤在一起。在一些示例中,来自非相邻面片的像素值可能被基于块的视频编解码器混合起来。颜色平滑的目标是减少出现在面片边界处的可见伪影。
图5示出了一些示例中的视频解码器(510)的框图。视频解码器(510)可以用于V-PCC解码器(400)中。例如,视频解压缩模块(434)和(436)、占用图解压缩模块(438)可以与视频解码器(510)类似地配置。
视频解码器(510)可以包括解析器(520),以根据经压缩的图像(例如已编码视频序列)重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息。解析器(520)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可以基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可以包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(520)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
解析器(520)可以对从缓冲存储器接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其他因素,符号(521)的重建可以涉及多个不同单元。涉及哪些单元以及涉及方式可以由解析器(520)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(520)与下文的多个单元之间的此类子群控制信息流。
除已经提及的功能块以外,视频解码器(510)可以在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(551)可以输出包括样本值的块,所述样本值可以输入到聚合器(555)中。
在一些情况下,缩放器/逆变换单元(551)的输出样本可以属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可以使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)使用从当前图片缓冲器(558)提取的已重建信息生成大小和形状与正在重建的块相同的周围块。例如,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(555)基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
在其他情况下,缩放器/逆变换单元(551)的输出样本可以属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(553)可以访问参考图片存储器(557)以提取用于预测的样本。在根据属于块的符号(521)对提取的样本进行运动补偿之后,这些样本可以由聚合器(555)添加到缩放器/逆变换单元(551)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可以受到运动矢量控制,并且所述运动矢量以所述符号(521)的形式而供运动补偿预测单元(553)使用,所述符号(521)例如可以具有X、Y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的内插、运动矢量预测机制等等。
聚合器(555)的输出样本可以在环路滤波器单元(556)中被各种环路滤波技术采用。视频压缩技术可以包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,并且所述参数作为来自解析器(520)的符号(521)可以用于环路滤波器单元(556),但是还可以响应于在对已编码图片或已编码视频序列的先前(按解码次序)部分进行解码期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元(556)的输出可以是样本流,所述样本流可以输出到渲染设备以及存储在参考图片存储器(557)中,以用于将来的帧间图片预测。
一旦完全重建,某些已编码图片就可以用作参考图片以用于将来预测。例如,一旦与当前图片对应的已编码图片被完全重建,并且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可以变为参考图片存储器(557)的一部分,并且可以在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可以根据例如ITU-T H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件二者的意义上,已编码视频序列可以符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可以从视频压缩技术或标准中可以用的所有工具中选择某些工具作为在所述配置文件下可以供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可以通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号通知的HRD缓冲器管理的元数据来进一步限定。
图6示出了根据本公开内容的实施方式的视频编码器(603)的框图。该视频编码器(603)可以用于压缩点云的V-PCC编码器(300)中。在示例中,视频压缩模块(322)和(323)以及视频压缩模块(332)与编码器(603)类似地配置。
视频编码器(603)可以接收图像,例如经填充的几何图像、经填充的纹理图像等,并且生成经压缩的图像。
根据实施方式,视频编码器(603)可以实时或在由应用所要求的任何其他时间约束下,将源视频序列(图像)的图片编码并且压缩成已编码视频序列(经压缩的图像)。施行适当的编码速度是控制器(650)的一个功能。在一些实施方式中,控制器(650)控制如下文所描述的其他功能单元并且在功能上耦接至这些单元。为了简洁起见,图中未标示耦接。由控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。控制器(650)可以被配置成具有其他合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
在一些实施方式中,视频编码器(603)被配置成在编码环路中进行操作。作为简单的描述,在实施方式中,编码环路可以包括源编码器(630)(例如,负责基于待编码的输入图片和参考图片来创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在所公开的主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于对符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。
“本地”解码器(633)的操作可以与例如已在上文结合图5详细描述视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,当符号可用并且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括解析器(520)在内的视频解码器(510)的熵解码部分可能无法完全在本地解码器(633)中实施。
在操作期间,在一些示例中,源编码器(630)可以执行运动补偿预测编码,所述运动补偿预测编码参考来自视频序列中被指定为“参考图片”的一个或更多个先前已编码图片,对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的差异进行编码,所述参考图片可以被选作所述输入图片的预测参考。
本地视频解码器(633)可以基于源编码器(630)创建的符号,对可以指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可以有利地为有损过程。当已编码视频数据可以在视频解码器(图6中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,所述解码过程可由视频解码器对参考图片执行,并且可以使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可以在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
预测器(635)可以针对编码引擎(632)执行预测搜索。即,对于将要编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索可以作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可以基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果,可以确定输入图片可以具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可以管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可以在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
帧内图片(I图片),其可以是不将序列中的任何其他图片用作预测源就可以被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
预测性图片(P图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可以使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可以在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可以参考其他(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其他块。举例来说,I图片的块可以进行非预测编码,改造所述块可以参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可以参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。B图片的块可以参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。
视频编码器(603)可以根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可以符合所用视频编码技术或标准指定的语法。
视频可以作为呈时间序列的多个源图片(图像)的形式。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其他)相关性。在示例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可以通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,所述运动矢量可以具有识别参考图片的第三维度。
在一些实施方式中,双向预测技术可以用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来预测所述块。
此外,合并模式技术可以用于帧间图片预测中以改善编码效率。
根据本公开内容的一些实施方式,诸如帧间图片预测和帧内图片预测的预测以块为单位来执行。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(coding tree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),所述三个编码树块是一个亮度CTB和两个色度CTB。更进一步的,还可将每个CTU以四叉树拆分为一个或多个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,将CU拆分为一个或更多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施方式中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8×8像素、16×16像素、8×16像素、16×8像素等等。
图7示出了一些示例中的G-PCC编码器(700)的框图。G-PCC编码器(700)可以被配置成接收点云数据并且压缩该点云数据以生成携载压缩的点云数据的比特流。在实施方式中,G-PCC编码器(700)可以包括位置量化模块(710)、重复点去除模块(712)、八叉树编码模块(730)、属性传递模块(720)、细节层次(levelofdetail,LOD)生成模块(740)、属性预测模块(750)、残差量化模块(760)、算术编码模块(770)、逆残差量化模块(780)、加法模块(781)和用于存储重建的属性值的存储器(790)。
如所示出的,可以在G-PCC编码器(700)处接收输入点云(701)。点云(701)的位置(例如,3D坐标)被提供给量化模块(710)。量化模块(710)被配置成对坐标进行量化以生成量化的位置。重复点去除模块(712)被配置成接收量化的位置并且执行滤波处理以识别和去除重复点。八叉树编码模块(730)被配置成从重复点去除模块(712)接收经滤波的位置,并且执行基于八叉树的编码处理以生成描述体素的3D网格的占用码的序列。占用码被提供给算术编码模块(770)。
属性传递模块(720)被配置成接收输入点云的属性,以及在多个属性值与相应体素相关联时执行属性传递处理以确定每个体素的属性值。可以对从八叉树编码模块(730)输出的重新排序的点执行属性传递处理。将传递操作之后的属性提供给属性预测模块(750)。LOD生成模块(740)被配置成对从八叉树编码模块(730)输出的重新排序的点进行操作,并且将这些点重新组织成不同的LOD。将LOD信息提供给属性预测模块(750)。
属性预测模块(750)根据由来自LOD生成模块(740)的LOD信息指示的基于LOD的顺序来处理点。属性预测模块(750)基于存储在存储器(790)中的当前点的相邻点的集合的重建属性来生成针对当前点的属性预测。随后可以基于从属性传递模块(720)接收的原始属性值和本地生成的属性预测来获得预测残差。当在相应属性预测处理中使用候选索引时,可以将与所选预测候选对应的索引提供给算术编码模块(770)。
残差量化模块(760)被配置成从属性预测模块(750)接收预测残差,并且执行量化以生成经量化的残差。经量化的残差被提供给算术编码模块(770)。
逆残差量化模块(780)被配置成从残差量化模块(760)接收经量化的残差,并且通过执行在残差量化模块(760)处执行的量化操作的逆操作来生成重建的预测残差。加法模块(781)被配置成接收来自逆残差量化模块(780)的重建的预测残差以及来自属性预测模块(750)的相应属性预测。通过将重建的预测残差与属性预测组合,生成重建的属性值并将其存储至存储器(790)。
算术编码模块(770)被配置成接收占用码、候选索引(如果使用)、量化的残差(如果生成)和其他信息,并且执行熵编码以进一步压缩接收到的值或信息。作为结果,可以生成携载压缩的信息的压缩的比特流(702)。比特流(702)可以被发送或以其他方式提供给对压缩的比特流进行解码的解码器,或者可以被存储在存储装置中。
图8示出了根据实施方式的G-PCC解码器(800)的框图。G-PCC解码器(800)可以被配置为接收经压缩的比特流并且执行点云数据解压缩来解压缩比特流以生成已解码点云数据。在实施方式中,解码器(800)可以包括算术解码模块(810)、逆残差量化模块(820)、八叉树解码模块(830)、LOD生成模块(840)、属性预测模块(850)、以及用于存储重建的属性值的存储器(860)。
如所示出的,可以在算术解码模块(810)处接收压缩的比特流(801)。算术解码模块(810)被配置成对压缩的比特流(801)进行解码,以获得点云的占用码和量化的残差(如果生成)。八叉树解码模块(830)被配置成根据占用码确定点云中的点的重建的位置。LOD生成模块(840)被配置成基于重建的位置将点重新组织成不同的LOD,并且确定基于LOD的顺序。逆残差量化模块(820)被配置成基于从算术解码模块(810)接收到的经量化的残差来生成重建的残差。
属性预测模块(850)被配置成执行属性预测处理以根据基于LOD的顺序来确定点的属性预测。例如,可以基于存储在存储器(860)中的当前点的相邻点的重建的属性值来确定当前点的属性预测。在一些示例中,可以将属性预测与相应的重建残差进行组合以生成针对当前点的重建的属性。
在一个示例中,从属性预测模块(850)生成的重建的属性的序列连同从八叉树解码模块(830)生成的重建位置对应于从G-PCC解码器(800)输出的已解码点云(802)。另外,重建的属性也被存储到存储器(860)中,并且可以随后用于得出针对后续点的属性预测。
在各种实施方式中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以用硬件、软件或其组合实现。例如,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以用处理电路系统,例如与软件一起或不与软件一起操作的一个或更多个集成电路(integratedcircuit,IC),例如专用集成电路(applicationspecificintegratedcircuit,ASIC)、现场可编程门阵列(fieldprogrammablegatearray,FPGA)等来实现。在另一示例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以实现为包括存储在非易失性(或非暂态)计算机可读存储介质中的指令的软件或固件。所述指令在由诸如一个或更多个处理器的处理电路执行时使该处理电路执行编码器(300)、解码器(400)、编码器(700)和/或解码器(800)的功能。
注意,被配置成实现本文中公开的属性预测技术的属性预测模块(750)和(850)可以包括在可以具有与图7和图8所示的解码器或编码器类似结构或不同结构的其他解码器或编码器中。另外,在各种示例中,编码器(700)和解码器(800)可以包括在同一设备或分开的设备中。
根据本公开内容的一些方面,网格压缩可以使用与PCC编码工具不同的编码工具,或者可以使用诸如上面的PCC(例如,G-PCC、V-PCC)编码器、上面的PCC(例如,G-PCC、V-PCC)解码器等的PCC编码工具。
对象的网格(mesh)(也被称为网格模型、网格帧)可以包括描述对象的表面的多边形。每个多边形可以由3D空间中的多边形的顶点和将顶点连接成多边形的边来限定。如何连接顶点的信息(例如,边的信息)被称为连接性信息。在一些示例中,对象的网格由描述对象的表面的连接的三角形形成。共享边的两个三角形被称为两个连接的三角形。在一些其他示例中,对象的网格由连接的四边形形成。共享边的两个四边形可以被称为两个连接的四边形。注意,网格可以由其他合适的多边形形成。
在一些示例中,网格还可以包括例如颜色、法线等与顶点相关联的属性。可以通过利用映射信息将属性与网格的表面相关联,该映射信息使用2D属性图对网格进行参数化。映射信息通常由与网格顶点相关联的一组参数坐标(被称为UV坐标或纹理坐标)来描述。2D属性图(在一些示例中被称为纹理图)用于存储例如纹理、法线、位移等高分辨率属性信息。这样的信息可以用于例如纹理映射和着色(shading)等各种目的。
在一些实施方式中,网格可以包括被称为几何信息、连接性信息、映射信息、顶点属性和属性图的分量。在一些示例中,几何信息由与网格的顶点相关联的3D位置的集合来描述。在示例中,(x,y,z)坐标可以用来描述顶点的3D位置,并且也被称为3D坐标。在一些示例中,连接性信息包括描述如何连接顶点以创建3D表面的顶点索引的集合。在一些示例中,映射信息描述如何将网格表面映射到平面的2D区域。在示例中,映射信息由与网格顶点相关联的UV参数/纹理坐标(u,v)的集合以及连接性信息来描述。在一些示例中,顶点属性包括与网格顶点相关联的标量或矢量属性值。在一些示例中,属性图包括与网格表面相关联并且被存储为2D图像/视频的属性。在示例中,视频(例如,2D图像/视频)与网格表面之间的映射由映射信息来定义。
根据本公开的一方面,使用被称为UV映射或网格参数化的一些技术来将3D域中的网格的表面映射到2D域。在一些示例中,网格在3D域中被分割成面片(patch)。面片是具有由边界边形成的边界的网格的连续子集。面片的边界边是属于面片的仅一个多边形并且不被面片中的两个相邻多边形共享的边。在一些示例中,面片中的边界边的顶点被称为面片的边界顶点,并且面片中的非边界顶点可以被称为面片的内部顶点。
在一些示例中,对象的网格由连接的三角形形成,并且网格可以被分割成面片,每个面片是连接的三角形的子集。面片的边界边是属于面片中的仅一个三角形并且不被面片中的相邻三角形共享的边。在一些示例中,面片中的边界边的顶点被称为面片的边界顶点,并且面片中的非边界顶点可以被称为面片的内部顶点。边界环包括边界顶点序列,由边界顶点序列形成的边界线可以形成被称为边界环的环。
根据本公开内容的一方面,在一些示例中,面片分别被参数化成2D形状(也被称为UV面片)。在一些示例中,2D形状可以被打包(例如,定向和放置)到也被称为地图集的图中。在一些示例中,可以使用2D图像或视频处理技术来进一步处理图。
在示例中,UV映射技术生成与3D网格的面片对应的2D中的一个或更多个纹理地图集(也被称为纹理图)和UV地图集(也被称为UV图)。UV地图集包括3D网格的3D顶点到2D域(例如,矩形)中的2D点的分配。UV地图集是3D表面的坐标到2D域的坐标之间的映射。在示例中,UV地图集中2D坐标(u,v)处的点具有由3D域中的顶点的坐标(x,y,z)形成的值。在示例中,纹理地图集包括3D网格的颜色信息。例如,纹理地图集中2D坐标(u,v)处的点(其在UV地图集中具有3D值(x,y,z))具有指定3D域中(x,y,z)处的点的颜色属性的颜色。在一些示例中,3D域中的坐标(x,y,z)被称为3D坐标或xyz坐标,并且2D坐标(u,v)被称为uv坐标或UV坐标。
根据本公开内容的一些方面,可以通过使用一个或更多个2D图(在一些示例中也被称为2D地图集)表示网格,并且然后使用图像或视频编解码器对2D图进行编码,来执行网格压缩。可以使用不同的技术来生成2D图。
图9示出了示出一些示例中的3D网格(910)到2D地图集(920)的映射的图。在图9的示例中,3D网格(910)包括形成四个面片A-D的四个顶点1-4。每个面片都具有与属性信息相关联的顶点的集合。例如,面片A由连接成三角形的顶点1、2和3形成;面片B由连接成三角形的顶点1、3和4形成;面片C由连接成三角形的顶点1、2和4形成;面片D由连接成三角形的顶点2、3和4形成。在一些示例中,顶点1、2、3和4可以具有相应属性,并且由顶点1、2、3和4形成的三角形可以具有相应属性。
在示例中,3D中的面片A、B、C和D被映射到2D域,例如被映射到也被称为图(920)的2D地图集(920)。例如,面片A被映射为图(920)中的2D形状(也被称为UV面片)A’,面片B被映射为图(920)中的2D形状(也被称为UV面片)B’,面片C被映射为图(920)中的2D形状(也被称为UV面片)C’,并且面片D被映射为图(920)中的2D形状(也被称为UV面片)D’。在一些示例中,3D域中的坐标被称为(x,y,z)坐标,诸如图(920)的2D域中的坐标被称为UV坐标。3D网格中的顶点可以在图(920)中具有对应的UV坐标。
图(920)可以是具有几何信息的几何图,或者可以是具有颜色、法线、织物或其他属性信息的纹理图,或者可以是具有占用信息的占用图。
虽然在图9示例中由三角形表示每个面片,但是注意,面片可以包括连接形成网格的连续子集的任何合适数目的顶点。在一些示例中,面片中的顶点连接形成三角形。注意,可以使用其他合适的形状来连接面片中的顶点。
在示例中,顶点的几何信息可以被存储到2D几何图中。例如,2D几何图将采样点的(x,y,z)坐标存储在2D几何图中的对应点处。例如,2D几何图中(u,v)位置处的点具有分别与3D网格中的对应采样点的x、y和z值对应的3个分量的矢量值。
根据本公开内容的一方面,图中的区域可以未被完全占用。例如,在图9中,2D形状A’、B’、C’和D’之外的区域未定义。可以丢弃解码之后在2D形状A’、B’、C’和D’之外的区域的样本值。在一些情况下,使用占用图来存储每个像素的一些附加信息,例如存储用于识别像素是属于面片还是未定义的二进制值。
根据本公开内容的一方面,动态网格是其中分量(几何信息、连接性信息、映射信息、顶点属性和属性图)中的至少之一随时间变化的网格。动态网格可以由网格的序列(也被称为网格帧)来描述。在一些示例中,动态网格中的网格帧可以是对象表面在不同时间的表示,每个网格帧是对象表面在特定时间(也被称为时间实例)的表示。动态网格可能需要大量数据,因为动态网格可能会包括随时间改变的大量信息。网格的压缩技术可以允许网格表示的媒体内容的高效存储和传输。
在一些示例中,动态网格可以具有恒定的连接性信息、时变几何形状和时变顶点属性。在一些示例中,动态网格可以具有时变连接性信息。在示例中,数字内容创建工具通常生成具有时变属性图和时变连接性信息的动态网格。在一些示例中,使用体积获取技术来生成动态网格。体积获取技术可以尤其是在实时约束下生成具有时变连接性信息的动态网格。
一些技术用于网格压缩。在一些示例中,UV地图集采样和V-PCC可以用于网格压缩。例如,在规则网格上对UV地图集进行采样以生成具有规则网格样本的几何图像。可以推断规则网格样本的连接性。规则网格样本可以被视为点云中的点,并且因此可以使用PCC编解码器例如V-PCC编解码器来编码。
在一些其他示例中,顶点重新排序技术用于网格压缩。网格的顶点根据特定规则被重新排序以增加相邻顶点的相关性,因此可以使用预测编码方法来增加编码效率。在示例中,对顶点进行重新排序以增加序列中的相邻顶点的相关性。在另一示例中,网格的顶点被重新排序并重新布置成二维(two-dimensional,2D)帧以增加2D帧的局部区域中的相邻顶点的相关性,因此2D帧可以由图像/视频编解码器例如使用帧内预测技术更高效地编码。在另一示例中,在2D帧中对不同网格帧的顶点进行重新排序和重新布置以增加2D帧之间的相关性,因此2D帧可以由视频编解码器例如使用帧间预测技术更高效地编码。
图10A至图10E示出了针对网格压缩使用顶点重新排序的示例。图10A示出了输入网格(1005)(例如,原始网格)的图。输入网格(1005)包括描述对象的表面的连接的三角形。每个三角形由顶点和将顶点连接成三角形的边限定。如图10A所示,输入网格(1005)包括顶点0至8,这些顶点被连接成三角形。
图10B示出了一些示例中的顶点遍历顺序(1015)的图。顶点遍历顺序(1015)由具有箭头的线示出,其遍历序列中的顶点0、顶点1、顶点2、顶点3、顶点4、顶点5、顶点6、顶点7和顶点8。
然后,可以根据顶点遍历顺序(1015)将顶点的属性(例如,顶点的3D(几何)坐标、顶点的UV坐标和顶点的其他属性)重新排序成阵列。例如,顶点的3D坐标可以按顶点遍历顺序(1015)被重新排序成3D坐标的阵列,顶点的UV坐标可以按顶点遍历顺序(1015)被重新排序成UV坐标的阵列。阵列可以是1D阵列或者可以是2D阵列。
在一些示例中,顶点的属性根据光栅扫描线被重新排序和重新成形为形成2D图像的2D阵列。2D图像可以通过预测编码技术例如通过图像或视频编解码器来编码。在包括网格帧的序列的动态网格的示例中,动态网格的属性可以被重新排序以形成2D图像的序列,并且在示例中,该2D图像的序列可以由视频编解码器来编码。
图10C示出了用于将顶点的属性重新成形为2D阵列(1035)的光栅扫描线(1025)的图。光栅扫描线(1025)由具有箭头的线示出。2D阵列(1035)也可以被称为2D图或2D图像。在示例中,将顶点的属性存储在2D阵列(1035)中的与顶点对应的条目处,条目是2D图像中的像素,并且可以将属性值视为像素的颜色信息。在示例中,2D阵列(1035)可以是3D坐标图。在另一示例中,2D阵列(1035)可以是UV坐标图。2D阵列(1035)可以被编码到用于携载网格帧的比特流中。
在一些示例中,连接性信息(例如,如何将顶点连接成三角形的边)未显式地编码到用于携载网格帧的比特流中。因此,在解码器侧,解码器可以从例如2D图解码顶点的属性(例如,3D坐标、uv坐标等),并且重建顶点。
图10D示出了示出一些示例中的重建的顶点0’至8’的图。例如,可以从比特流中解码出坐标(例如3D坐标、uv坐标),然后可以根据已解码坐标生成重建的顶点0’至8’。
在一些示例中,连接性信息未显式地编码到比特流中,并且根据连接性推断规则推断连接重建的顶点0’至8’的边。连接性推断规则可以从解码器侧的解码的3D坐标(xyz坐标)和/或UV坐标(uv坐标)推断连接性。在示例中,在解码器侧适当地建立连接性推断规则。一旦解码了所有顶点,则根据连接性推断规则连接相邻顶点。解码器不需要从比特流中解码连接性信息。
图10E示出了可以将重建的顶点0’至8’连接成三角形以形成重建的网格(1095)的推断的连接性信息(边)的图。
如图10A和图10E所示,重建的网格(1095)中的顶点的连接性(边)可以不同于原始输入网格(1005)。在一些示例中,连接性差异可以导致重建的网格的主观质量受到影响。根据本公开内容的另一方面,在解码器侧推断连接性可能花费时间并且在复杂度方面消耗计算能力。
本公开内容的多个方面提供了用于显式地将网格帧的连接性信息编码到携载网格帧的比特流中的技术。在一些示例中,以多边形面的形式提供连接性信息。每个多边形面由顶点的序列限定,所述顶点连接形成多边形面的边。在示例中,以三角形(也被称为三角形面)的形式提供连接性信息,每个三角形由连接形成三角形的三个边的三个顶点限定。例如,输入网格(1005)的网格连接性可以包括由顶点0、顶点1和顶点6形成的形式为“f v0 v1v6”的三角形,其中“f”指示面信息,“v0”是顶点0的索引,“v1”是顶点1的索引,“v6”是顶点6的索引。
根据本公开内容的一方面,可以将网格帧的连接性信息重新组织为顶点的相应连接性属性。
根据本公开内容的一方面,顶点的连接性属性可以是表示顶点处的连接性信息的任何合适的度量。在示例中,顶点的连接性属性包括效价值,该效价值是顶点处的边的数目。例如,输入网格(1005)中的顶点3的效价值为3,输入网格(1005)中的顶点5的效价值为4,输入网格(1005)中的顶点8的效价值为6等。
在另一示例中,称为Edgebreaker算法的算法可以遍历顶点,并且用图案索引标记每个顶点,以描述该顶点可以如何连接到其他一些顶点。例如,图案索引可以识别诸如内部顶点、边界顶点的连接图案和其他图案。然后,顶点的连接性属性可以包括由Edgebreaker算法标记的图案索引。
在一些示例中,顶点的连接性属性可以被重新排序和重新成形为顶点的其他属性,并且然后可以被显式地编码到携载网格的比特流中。
图11示出了根据本公开内容的一些实施方式的用于网格压缩的框架(1100)的图。框架(1100)包括网格编码器(1110)和网格解码器(1150)。网格编码器(1110)将输入网格(1105)(在动态网格处理的情况下为网格帧)编码成比特流(1145),并且网格解码器(1150)对比特流(1145)进行解码以生成重建的网格(1195)(在动态网格处理的情况下为重建的网格帧)。
网格编码器(1110)可以是任何合适的设备,例如计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。网格解码器(1150)可以是任何合适的设备,例如计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。可以经由任何合适的通信网络(未示出)将比特流(1145)从网格编码器(1110)发送至网格解码器(1150)。
在图11示例中,网格编码器(1110)包括耦接在一起的顶点重新排序模块(1120)、1D/2D编码器(1130)和辅助数据编码器(1140)。顶点重新排序模块(1120)接收输入网格(1105)并且执行重新排序以生成重新排序的顶点的网格信息(1125)。在一些示例中,输入网格(1105)包括原始顺序的网格的顶点的3D位置信息、多边形面形式的连接性信息、将网格参数化到2D的映射信息(例如,UV地图集)和其他2D属性图(例如,2D颜色图)。顶点重新排序模块(1120)可以确定顶点的顶点遍历顺序,并且根据顶点遍历顺序对顶点进行重新排序和/或重新布置以增加相邻顶点的属性相关性(例如,序列(例如,1D阵列)中的相邻顶点的属性相关性、2D阵列中的局部区域中的相邻顶点的属性相关性、相邻帧的属性相关性)。
在示例中,顶点重新排序模块(1120)可以以顶点的相应连接性属性(也被称为原始连接性属性)的形式重新组织网格帧的连接性信息。在示例中,每个顶点的连接性属性可以包括用于指示由Edgebreaker算法标记的用于连接性压缩的连接性图案的图案索引。在另一示例中,每个顶点的连接性属性可以包括指示连接至该顶点的边的数目的效价值。
顶点重新排序模块(1120)输出重新排序的顶点的网格信息(1125)。重新排序的顶点的网格信息(1125)包括重新排序的序列(例如,1D)中的顶点的顶点信息。例如,每个顶点的顶点信息可以包括各种属性,例如网格中的3D空间信息(例如,xyz坐标)、到2D的映射信息(例如,uv坐标)、颜色信息(例如,RGB值)和连接性属性。
在另一示例中,重新排序的顶点的网格信息(1125)包括2D图像形式的顶点的顶点信息。例如,重新排序的顶点被重新布置成2D的样本(像素)(例如,基于光栅扫描线等),并且重新排序的顶点的网格信息可以形成一个或更多个2D图像,例如顶点的3D坐标的2D图像、顶点的UV坐标的2D图像、顶点连接性属性的2D图像等。
1D/2D编码器(1130)被配置成将重新排序的顶点的网格信息(1125)编码成比特流(1145)。当重新排序的顶点的网格信息(1125)包括重新排序的序列(1D)中的顶点的顶点信息时,1D/2D编码器(1130)可以使用1D编码技术对重新排序的序列中的顶点的顶点信息进行编码。当重新排序的顶点的网格信息(1125)包括2D图像时,1D/2D编码器(1130)可以使用图像编码和/或视频编码技术(例如,使用图像编解码器或视频编解码器)对2D图像进行编码。
顶点重新排序模块(1120)还生成包括辅助信息的辅助数据(1127)。辅助数据编码器(1140)接收辅助数据(1127),并且将辅助数据(1127)编码到比特流(1145)中。例如,顶点重新排序模块(1120)可以逐面片地对顶点进行重新排序。顶点重新排序模块(1120)可以在辅助数据(1127)中提供指示每个面片中的顶点的数目的值。此外,在示例中,顶点重新排序模块(1120)可以针对每个面片对非边界顶点前面的边界顶点进行重新排序。顶点重新排序模块(1120)可以在辅助数据(1127)中提供指示每个面片中的边界顶点的数目的值。在另一示例中,顶点重新排序模块(1120)可以根据Edgebreaker算法遍历顶点,并且可以在辅助数据(1127)中提供指示Edgebreaker算法的信号。
在图11示例中,比特流(1145)被提供给网格解码器(1150)。网格解码器(1150)包括如图11所示耦接在一起的1D/2D解码器(1160)、辅助数据解码器(1170)和网格重建模块(1190)。在示例中,1D/2D解码器(1160)对应于1D/2D编码器(1130),并且可以对由1D/2D编码器(1130)编码的比特流(1145)的一部分进行解码并且生成已解码信息(1165)。在示例中,已解码信息(1165)包括解码的连接性属性图,以及例如解码的3D坐标图、解码的uv坐标图、颜色图等其他解码的属性图。
在图11示例中,辅助数据解码器(1170)对应于辅助数据编码器(1140),并且可以对由辅助数据编码器(1140)编码的比特流(1145)的一部分进行解码并且生成已解码辅助数据(1175)。
在图11示例中,已解码信息(1165)、已解码辅助数据(1175)被提供给网格重建模块(1190)。网格重建模块(1190)基于已解码信息(1165)、已解码辅助数据(1175)来生成重建的网格(1195)。
注意,网格编码器(1110)中的部件例如顶点重新排序模块(1120)、辅助数据编码器(1140)和1D/2D编码器(1130)可以分别通过各种技术来实现。在示例中,由集成电路系统实现部件。在另一示例中,使用可以由一个或更多个处理器执行的软件来实现部件。
注意,网格解码器(1150)中的部件例如1D/2D解码器(1160)、辅助数据解码器(1170)和网格重建模块(1190)可以分别通过各种技术来实现。在示例中,由集成电路系统实现部件。在另一示例中,使用可以由一个或更多个处理器执行的软件来实现部件。
图12A至图12D示出了根据本公开内容的一些实施方式显式地将网格帧的连接性属性编码到携载网格帧的比特流中的示例。图12A示出了输入网格(1205)的图。输入网格(1205)包括描述对象的表面的连接的三角形。每个三角形由顶点和将顶点连接成三角形的边限定。如图12A所示,输入网格(1205)包括顶点0至8,这些顶点被连接成三角形。
图12B示出了顶点遍历顺序(1215)的图。顶点遍历顺序(1215)由具有箭头的线示出,其遍历序列中的顶点0、顶点1、顶点2、顶点3、顶点4、顶点5、顶点6、顶点7和顶点8。
然后,可以根据顶点遍历顺序(1215)将顶点的属性(例如,顶点的3D(几何)坐标、顶点的UV坐标、顶点的连接性属性和顶点的其他属性)重新排序成阵列。例如,顶点的3D坐标可以按顶点遍历顺序(1215)被重新排序成3D坐标的阵列,顶点的UV坐标可以按顶点遍历顺序(1215)被重新排序成UV坐标的阵列,顶点的连接性属性可以按顶点遍历顺序(1215)被重新排序成连接性属性的阵列。阵列可以是1D阵列或者可以是2D阵列。
在一些示例中,顶点的属性根据光栅扫描线被重新排序和重新成形为形成2D图像的2D阵列。2D图像可以通过预测编码技术例如通过图像或视频编解码器来编码。在包括网格帧的序列的动态网格的示例中,动态网格的属性可以被重新排序以形成2D图像的序列,并且在示例中,该2D图像的序列可以由视频编解码器来编码。
图12C示出了光栅扫描线(1225)的图,该光栅扫描线(1225)用于将顶点的属性重新成形为例如2D阵列(1245)和2D阵列(1235)的2D阵列。光栅扫描线(1225)由具有箭头的线示出。2D阵列(1235)和(1245)也可以被称为2D图或2D图像。在示例中,将顶点的连接性属性存储在2D阵列(1245)中的与顶点对应的条目处,条目是2D图像中的像素,并且连接性属性是像素的颜色信息。在示例中,将顶点的另一属性例如3D坐标、UV坐标等存储在2D阵列(1235)中的与顶点对应的条目处,条目是2D图像中的像素,并且属性是像素的颜色信息。在示例中,2D阵列(1235)可以是3D坐标图。在另一示例中,2D阵列(1235)可以是UV坐标图。2D阵列(1235)和2D阵列(1245)可以被编码到用于携载网格帧的比特流中。
注意,在图12C示例中,以顶点的连接性属性的形式重新组织连接性信息(例如,如何将顶点连接成三角形的边),并且将顶点的连接性属性显式地编码到用于携载网格帧的比特流中。在一些示例中,遍历例如输入网格(1205)的原始网格的顶点,并且用可以表示顶点的连接性信息的图案索引或效价值来标记每个顶点。例如,可以使用EdgeBreaker算法来确定顶点遍历顺序例如顶点遍历顺序(1215)以遍历顶点,并且EdgeBreaker算法可以用图案索引来标记每个顶点。顶点的连接性属性可以根据顶点遍历顺序被重新排序,并且然后成形为2D图,该2D图也被称为由Morg表示的连接性图(例如2D阵列(1245))。连接性图(例如,2D阵列(1245))中像素位置处的每个值是被重新排序和重新成形至像素位置的顶点的对应的图案索引或效价值。顶点的其他属性可以根据顶点遍历顺序被重新排序,并且然后成形为例如2D阵列(1235)的其他2D图。连接性图可以通过任何预测编码方法例如图像编解码器、视频编解码器等来编码。在一些示例中,可以以有损模式对连接性图进行编码。在一些示例中,可以以无损模式对连接性图进行编码。
根据本公开内容的一方面,在解码器侧,解码器可以直接从携载网格帧的比特流解码顶点的连接性属性以及顶点的其他属性。然后,解码器可以根据顶点的连接性属性和顶点的其他属性来重建网格帧。
图12D示出了示出重建的网格帧(1295)的图。在示例中,可以根据例如从比特流解码的顶点的坐标来重建所重建的顶点0’至8’。然后,可以根据从比特流解码的顶点的连接性属性(例如,顶点的效价值或顶点的图案索引)来连接重建的顶点0’至8’。在示例中,可以使用Edgebreaker算法来根据顶点的图案索引生成重建的网格帧(1295)。在另一示例中,使用合适的算法来根据顶点的效价值生成重建的网格帧(1295)。重建的网格帧(1295)可以具有与原始网格帧(1205)相同的连接性信息(相同的边)。
在一些实施方式中,可以将网格帧的连接性差异信息编码在携载网格帧的比特流中。连接性差异信息是输入网格帧中的原始连接性信息与根据连接性推断规则推断的连接性信息之间的差异。
图13示出了根据本公开的一些实施方式的用于网格压缩的框架(1300)的图。框架(1100)包括网格编码器(1110)和网格解码器(1150)。框架(1300)包括网格编码器(1310)和网格解码器(1350)。网格编码器(1310)将输入网格(1305)(在动态网格处理的情况下为网格帧)编码成比特流(1345),并且网格解码器(1350)对比特流(1345)进行解码以生成重建的网格(1395)(在动态网格处理的情况下为重建的网格帧)。
网格编码器(1310)可以是任何合适的设备,例如计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。网格解码器(1350)可以是任何合适的设备,例如计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。可以经由任何合适的通信网络(未示出)将比特流(1345)从网格编码器(1310)发送至网格解码器(1350)。
在图13示例中,网格编码器(1310)包括耦接在一起的顶点重新排序模块(1320)、1D/2D编码器(1330)、辅助数据编码器(1340)和连接性推断模块(1335)。顶点重新排序模块(1320)接收输入网格(1305)并且执行重新排序以生成包括连接性差异的重新排序的顶点的网格信息(1325)。在一些示例中,输入网格(1305)包括原始顺序的网格的顶点的3D位置信息、多边形面形式的连接性信息、将网格参数化到2D的映射信息(例如,UV地图集)和其他2D属性图(例如,2D颜色图)。顶点重新排序模块(1320)可以确定顶点的顶点遍历顺序,并且根据顶点遍历顺序对顶点进行重新排序和/或重新布置以增加相邻顶点的属性相关性(例如,序列(例如,1D阵列)中的相邻顶点的属性相关性、2D阵列中的局部区域中的相邻顶点的属性相关性、相邻帧的属性相关性)。
在示例中,顶点重新排序模块(1320)可以以顶点的相应连接性属性(也被称为原始连接性属性)的形式重新组织网格帧的连接性信息。在示例中,每个顶点的连接性属性可以包括用于指示由Edgebreaker算法标记的用于连接性压缩的连接性图案的图案索引。在另一示例中,每个顶点的连接性属性可以包括指示连接至该顶点的边的数目的效价值。
顶点重新排序模块(1320)输出重新排序的顶点的网格信息(1325)。重新排序的顶点的网格信息(1325)包括重新排序的序列(例如,1D)中的顶点的顶点信息。例如,每个顶点的顶点信息可以包括各种属性,例如网格中的3D空间信息(例如,xyz坐标)、到2D的映射信息(例如,uv坐标)、颜色信息(例如,RGB值)以及原始连接性属性与由连接性推断模块(1335)提供的推断的连接性属性之间的连接性属性差异(也被称为连接性差异)。
在另一示例中,重新排序的顶点的网格信息(1325)包括2D图像形式的顶点的顶点信息。例如,重新排序的顶点被重新布置成2D的样本(像素)(例如,基于光栅扫描线等),并且重新排序的顶点的网格信息可以形成一个或更多个2D图像,例如顶点的3D坐标的2D图像、顶点的UV坐标的2D图像、顶点连接性属性差异的2D图像等。
1D/2D编码器(1330)被配置成将重新排序的顶点的网格信息(1325)编码成比特流(1345)。当重新排序的顶点的网格信息(1325)包括重新排序的序列(1D)中的顶点的顶点信息时,1D/2D编码器(1330)可以使用1D编码技术对重新排序的序列中的顶点的顶点信息进行编码。当重新排序的顶点的网格信息(1325)包括2D图像时,1D/2D编码器(1330)可以使用图像编码和/或视频编码技术(例如,使用图像编解码器或视频编解码器)对2D图像进行编码。
在一些示例中,连接性推断模块(1335)可以基于原始网格输入(1305)中的顶点的坐标来生成顶点的推断的连接性属性(1336)。在一些示例中,连接性推断模块(1335)可以从顶点的已编码坐标生成顶点的推断的连接性属性(1336)。例如,连接性推断模块(1335)可以从1D/2D编码器(1330)接收顶点的已编码坐标(1331),对顶点的已编码坐标进行解码以生成顶点的已解码坐标(例如,解码的3D坐标、解码的UV坐标),并且基于连接性推断规则根据顶点的已解码坐标来生成顶点的推断的连接性属性(1336)。连接性推断模块(1335)可以将推断的连接性属性(1336)提供给顶点重新排序模块(1320)。顶点重新排序模块(1320)可以确定顶点的原始连接性属性与顶点的推断的连接性属性(1336)之间的顶点的连接性差异。顶点重排序模块(1320)可以根据顶点遍历顺序对顶点的连接性差异进行重新排序,以形成连接性差异的1D阵列或2D阵列。连接性差异的1D阵列或2D阵列被提供给1D/2D编码器以编码到比特流(1345)中。
顶点重新排序模块(1320)还生成包括辅助信息的辅助数据(1327)。辅助数据编码器(1340)接收辅助数据(1327),并且将辅助数据(1327)编码到比特流(1345)中。例如,顶点重新排序模块(1320)可以逐面片地对顶点进行重新排序。顶点重新排序模块(1320)可以在辅助数据(1327)中提供指示每个面片中的顶点的数目的值。此外,在示例中,顶点重新排序模块(1320)可以针对每个面片对非边界顶点前面的边界顶点进行重新排序。顶点重新排序模块(1320)可以在辅助数据(1327)中提供指示每个面片中的边界顶点的数目的值。在另一示例中,顶点重新排序模块(1320)可以根据Edgebreaker算法遍历顶点,并且可以在辅助数据(1327)中提供指示Edgebreaker算法的信号。在另一示例中,可以使用多个连接性推断规则来推断连接性属性,并且指示从多个连接性推断规则中对特定连接性推断规则的选择的信号可以包括在辅助数据(1327)中。
在图13示例中,比特流(1345)被提供给网格解码器(1350)。网格解码器(1350)包括如图13所示耦接在一起的1D/2D解码器(1360)、辅助数据解码器(1370)、连接性确定模块(1380)和网格重建模块(1390)。在示例中,1D/2D解码器(1360)对应于1D/2D编码器(1330),并且可以对由1D/2D编码器(1330)编码的比特流(1345)的一部分进行解码并且生成已解码信息(1365)。已解码信息(1365)包括已解码坐标信息(例如,解码的3D坐标图、解码的UV坐标图等)、解码的连接性差异(例如,解码的连接性差异图)、其他解码的属性信息(例如,解码的颜色图等)。
在图13示例中,辅助数据解码器(1370)对应于辅助数据编码器(1340),并且可以对由辅助数据编码器(1340)编码的比特流(1345)的一部分进行解码并且生成已解码辅助数据(1375)。
在图13示例中,连接性确定模块(1380)可以接收已解码信息(1365)例如已解码顶点坐标(例如,解码的3D坐标、解码的uv坐标等)和解码的顶点连接性差异,并且生成恢复的连接性属性(1385)。在示例中,连接性确定模块(1380)包括连接性推断模块(1381)。连接性推断模块(1381)与连接性推断模块(1335)类似地操作,可以基于连接性推断规则根据已解码顶点坐标来生成推断的连接性属性。注意,在示例中,在连接性推断模块(1335)和连接性推断模块(1381)中使用相同的连接性推断规则。连接性确定模块(1380)将从连接性推断模块(1381)输出的推断的顶点连接性属性与解码的顶点连接性差异组合,以生成恢复的顶点连接性属性(1385)。
在图13示例中,已解码信息(1365)、已解码辅助数据(1375)和恢复的顶点连接性属性(1385)被提供给网格重建模块(1390)。网格重建模块(1390)基于已解码信息(1365)、已解码辅助数据(1375)和恢复的顶点连接性属性(1385)来生成重建的网格(1395)。
注意,网格编码器(1310)中的部件例如顶点重新排序模块(1320)、辅助数据编码器(1340)、1D/2D编码器(1330)和连接性推断模块(1335)可以分别通过各种技术来实现。在示例中,由集成电路系统实现部件。在另一示例中,使用可以由一个或更多个处理器执行的软件来实现部件。
注意,网格解码器(1350)中的部件例如1D/2D解码器(1360)、辅助数据解码器(1370)、连接性确定模块(1380)和网格重建模块(1390)可以分别通过各种技术来实现。在示例中,由集成电路系统实现部件。在另一示例中,使用可以由一个或更多个处理器执行的软件来实现部件。
图14A至图14F示出了根据一些实施方式的将网格帧中的顶点的连接性差异编码到携载网格帧的比特流中的示例。图14A示出了输入网格(1405)的图。输入网格(1405)包括描述对象的表面的连接的三角形。每个三角形由顶点和将顶点连接成三角形的边限定。如图14A所示,输入网格(1405)包括顶点0至8,这些顶点被连接成三角形。
图14B示出了一些示例中的顶点遍历顺序(1415)的图。顶点遍历顺序(1415)由具有箭头的线示出,其遍历序列中的顶点0、顶点1、顶点2、顶点3、顶点4、顶点5、顶点6、顶点7和顶点8。
然后,可以根据顶点遍历顺序(1415)将顶点的属性(例如,顶点的3D(几何)坐标、顶点的UV坐标和顶点的其他属性)重新排序成阵列。例如,顶点的3D坐标可以按顶点遍历顺序(1415)被重新排序成3D坐标的阵列,顶点的UV坐标可以按顶点遍历顺序(1415)被重新排序成UV坐标的阵列。阵列可以是1D阵列或者可以是2D阵列。
在一些示例中,原始网格帧(1405)的连接性信息(例如,如何将顶点连接成三角形的边)以顶点的原始连接性属性的形式被重新组织。在一些示例中,遍历原始网格例如输入网格(1405)的顶点,并且用可以表示顶点的连接性属性的图案索引或效价值来标记每个顶点。例如,可以使用EdgeBreaker算法来确定顶点遍历顺序例如顶点遍历顺序(1415)以遍历顶点,并且EdgeBreaker算法可以使用图案索引来标记每个顶点。顶点的连接性属性可以根据顶点遍历顺序被重新排序,并且然后被成形为2D图,该2D图也被称为由Morg表示的原始连接性图。连接性图中像素位置处的每个值是被重新排序和重新成形至像素位置的顶点的对应的图案索引或效价值。
在编码器侧,在一些示例中,编码器根据连接性推断规则来生成推断的连接性属性。
图14C示出了例如根据连接性推断规则基于顶点的位置推断的顶点1至8的连接性(1420)。推断的连接性(1420)可以是推断的顶点连接性属性的形式。在一些示例中,推断的顶点连接性属性可以根据顶点遍历顺序被重新排序,并且然后被成形为2D图,该2D图也被称为由Minfer表示的推断的连接性图。推断的连接性图中像素位置处的每个值是被重新排序和重新成形至像素位置的顶点的对应的推断的图案索引或推断的效价值。
根据本公开内容的一方面,可以例如使用Mdiff=Morg-Minfer计算原始连接性图Morg与推断的连接性图Minfer之间的差异,以确定由Mdiff表示的连接性差异图。连接性差异图Mdiff中像素位置处的每个值是原始连接性图和推断的连接性图中相同像素位置处的像素值之间的差值。
在一些示例中,顶点的属性根据光栅扫描线被重新排序和重新成形为形成2D图像的2D阵列。2D图像可以通过预测编码技术例如通过图像或视频编解码器来编码。在包括网格帧的序列的动态网格的示例中,动态网格的属性可以被重新排序以形成2D图像的序列,并且在示例中,该2D图像的序列可以由视频编解码器来编码。
图14D示出了示出光栅扫描线(1425)的图,光栅扫描线(1425)用于将顶点的属性重新成形为例如2D阵列(1444)和2D阵列(1435)的2D阵列。光栅扫描线(1425)由具有箭头的线示出。2D阵列(1435)和(1444)也可以被称为2D图或2D图像。在示例中,2D阵列(1444)是连接性差异图Mdiff。将顶点的连接性差异存储在2D阵列(1444)中的与顶点对应的条目处,条目是2D图像中的像素,并且连接性差异是像素的颜色信息。在示例中,将顶点的另一属性例如3D坐标、UV坐标等存储在2D阵列(1435)中的与顶点对应的条目处,条目是2D图像中的像素,并且属性是像素的颜色信息。在示例中,2D阵列(1435)可以是3D坐标图。在另一示例中,2D阵列(1435)可以是UV坐标图。2D阵列(1435)和2D阵列(1444)可以被编码到用于携载网格帧的比特流中。
图14E示出了示出一些示例中的重建的顶点0’至8’的图。例如,可以从比特流解码出坐标,并且然后可以根据已解码坐标生成重建的顶点0’至8’。
在一些示例中,根据连接性推断规则推断连接重建的顶点0’至8’的边。连接性推断规则可以从解码器侧的已解码3D坐标(xyz坐标)和/或UV坐标(uv坐标)推断连接性。根据本公开内容的一方面,在编码器侧和解码器侧使用相同的连接性推断规则。在一些示例中,连接性推断规则用于在编码器侧生成推断的顶点连接性属性(1420)。在解码器侧,使用相同的连接性推断规则来连接图14E中的重建的顶点0’至8’,并且生成例如由M′infer表示的推断的连接性图的形式的推断的顶点连接性属性。推断的连接性图M′infer可以与根据图14C的描述获得的推断的连接性图Minfer相同。
解码器还从比特流解码顶点的连接性差异,例如为由M′diff表示的已解码连接性差异图的形式。在示例中,可以将已解码连接性差异图M′diff和推断的连接性图M′infer相加,以获得包括恢复的顶点连接性属性的恢复的连接性图Mrecover。恢复的连接性图Mrecover可以与原始输入网格(1405)的连接性图Morg相同,并且可以用于重建网格。
图14F示出了示出重建的网格(1495)的图。重建的网格包括重建的顶点0’至8’,并且根据恢复的连接性图Mrecover连接重建的顶点0’至8’。在一些示例中,重建的网格(1495)可以与具有相同连接性的原始输入网格(1405)相同。
根据本公开内容的一方面,在编码器侧,编码器可以使用不同的连接性推断规则(也被称为不同的连接性推断方法)来推断多于一个的连接性图。然后,由编码器选择与原始连接性图相比具有最佳推断的连接性图(例如,具有最小误差)的连接性推断规则之一,并且在比特流中用信号通知指示该选择的索引,以使解码器知道选择了哪个连接性推断规则。
本公开内容的一些方面提供了将例如网格(也称为网格帧)的原始连接性信息与推断的连接性信息之间的连接性差异)的网格连接性信息编码在携载压缩网格的比特流中的技术。在解码器侧,解码器可以从比特流中解码出用信号通知的连接性信息(例如连接性差异)。解码器可以根据由编码器和解码器共享的商定规则生成推断的连接性信息,并且可以将连接性差异与推断的连接性信息相结合。通过使用接收到的连接性信息和推断的连接性信息,可以恢复顶点之间的最终连接性信息。
根据本公开内容的一些方面,连接性信息(例如连接性差异)可以与顶点相关联地表示,或者可以与边相关联地表示。
根据本公开内容的一个方面,连接性信息(例如连接性差异)可以通过列出每个顶点的所连接顶点来表示。
在一些实施方式中,在编码器侧和解码器侧两者处,整个顶点的集合被排序,并且每个顶点被分配唯一的索引号。在编码器侧处,编码器可以将原始连接性和推断的连接性(也称为得出的连接性)进行比较,并且用信号通知原始连接性与推断的连接性之间具有不同连接性的顶点的索引,随后是可以使用差异信息来校正顶点的推断的连接性信息。
在一些示例中,对于每个顶点Vi(i=1,2,…),顶点Vi所连接的顶点称为Vi(1),Vi(2),…Vi(Ci),其中Ci是顶点Vi所连接的顶点数。对于不同的顶点,Ci可能是不同的。在示例中,也可以用信号通知每个顶点具有的连接数。
图15示出了流程图,该流程图概述了在一些示例中对与顶点相关联的连接性差异进行编码的处理(1500)。在示例中,该处理(1500)在编码器侧执行,以按顶点用信号通知连接性差异。处理(1500)从(S1501)开始并且进行到(S1510)。
在(S1510)处,用信号通知需要连接性校正的顶点数。需要连接性校正的顶点数可以用NC来表示。然后,通过对需要连接性校正的顶点分别进行循环处理来执行对连接性差异的编码。每个处理循环可以用来对一个顶点的连接性差异进行编码。
在(S1520)处,循环开始。每个循环包括从(S1530)到(S1550)的处理。
在(S1530)处,对于当前循环中的顶点,用信号通知具有要校正的连接性信息的当前顶点的索引。
在(S1540)处,用信号通知指示当前顶点需要进行的校正数的值。在示例中,对于需要连接性校正的顶点来说,校正数是正的,因此要用信号通知的值可以是校正数减去1。
在(S1550)处,用信号通知当前顶点的连接性差异。在一些示例中,连接性差异可以包括当前顶点应连接到(在原始连接性中应连接到)但是在推断的连接性中未连接到的顶点的索引的第一集合,以及当前顶点不应连接到(在原始连接性中不应连接到)但是在推断的连接性中连接到的顶点的索引的第二集合。
例如,基于推断的连接性,当前顶点Vx连接到m个(m是正整数)不同的顶点Vi1,Vi2,Vi3…,Vim。根据原始连接性,当前顶点Vx不应连接到顶点Vi2和Vi3,并且当前顶点Vx还应该另外连接到Vy(不在推断的连接性中)。顶点的索引的第一集合包括Vy,并且顶点的索引的第二集合包括Vi2和Vi3。因此,在示例中,当前顶点应该进行的连接性校正数是3(例如,在示例中,用信号通知2)。此外,要用信号通知的顶点的索引可以是Vi2、Vi3、Vy。
在一些示例中,在解码器侧处,在得出顶点Vx的连接性后,去除Vx-Vi2的第一连接和Vx-Vi3的第二连接,并且将Vx与Vy的附加连接添加到顶点Vx的连接性中。
在(S1560)处,当循环数(循环计数)等于需要校正的顶点数时,处理进行到(S1599)并且终止;否则,处理返回到(S1530)并且进行到下一个循环。
要注意,边是通过将两个顶点连接在一起而建立的,因此当校正与边相关(添加边或者去除边)时,校正可以用两个顶点中的一个执行。例如,当对(要与Vy连接的)Vx进行校正时,则对(要与Vx连接的)Vy的相应校正就没有必要。
在一些示例中,需要校正的顶点的索引可以被预测地编码。例如,在(S1540)处,可能需要用信号通知多个顶点,第一顶点具有第一索引,第二顶点具有第二索引。在示例中,为了用信号通知顶点的索引,在用信号通知第一顶点的第一索引后,可以对第二索引与第一索引之间的差进行编码,而不是用信号通知第二索引的绝对值。
在一些实施方式中,在编码器侧和解码器侧两者处都使用以逐个顶点的方式(对于顶点序列,一次一个顶点)得出顶点的连接性的具体规则。在得出当前顶点Vi的连接顶点后,可以使用标志来指示是否需要进行任何校正。如果标志指示“是”(存在要进行的校正),则可以用信号通知需要校正的一个或更多个顶点的索引(或多个索引)。对于当前顶点Vi的推断的连接性中的现有连接顶点,用信号通知意味着当前顶点Vi到用信号通知的顶点的连接应被去除;对于当前顶点Vi的推断的连接性中的非连接顶点,用信号通知意味着用信号通知的顶点到当前顶点Vi的连接应该被添加到与当前顶点Vi相关联的连接性信息。
在一些示例中,四边形包括两对对角线顶点。两对对角线顶点中的一对对角线顶点可以被连接以将四边形划分为一对三角形,但不允许两对对角线顶点都被连接。当一对对角线顶点被连接时,另一对对角线顶点不应被连接。因此,校正四边形中的一对对角线顶点的连接可以推断出另一对未连接的对角线顶点应被连接,反之亦然。
例如,在图14C中,顶点5、6、7和8形成四边形。在图14C中,推断的连接性包括顶点5和顶点7的连接,该连接将四边形分成2个三角形。对于当前顶点5,连接性差异包括顶点5与顶点7的连接,并且用信号通知顶点7的索引以指示要进行校正。响应于针对当前顶点5的顶点7的索引,顶点5与顶点7的连接可以被去除。此外,可以同时添加顶点6与顶点8的连接,而无需用信号通知。
根据本公开内容的另一个方面,可以基于边而用信号通知连接性差异。例如,当推断的连接性不包括边时,用信号通知边的一对顶点可以指示用于连接该对顶点以形成边的校正;另一方面,当推断的连接性包括边时,用信号通知边的一对顶点可以指示用于去除该边以断开该两对顶点的校正。
例如,在图14C中,顶点5、6、7和8形成四边形。在图14C中,推断的连接性包括由顶点5和顶点7的连接形成的边,该边将四边形分为2个三角形。由顶点5和顶点7形成的边不在原始连接性信息中。在示例中,连接性差异可以包括用信号通知当前连接的顶点5和顶点7,以指示要进行校正。在解码器侧处,响应于用信号通知当前连接的顶点5和顶点7,顶点5和顶点7的边被去除,并且同时添加顶点6和顶点8的另一条边,而不用信号通知。在另一示例中,连接性差异可以包括用信号通知一对当前未连接的顶点6和顶点8,以指示要进行校正。在解码器侧处,响应于用信号通知一对当前未连接的顶点6和顶点8,顶点6和顶点8的边被添加,并且顶点5与顶点7的另一条边被同时去除,而不用信号通知。
要注意的是,通知边的顶点的索引的信号可以以预测的方式进行编码。例如,边由第一顶点和第二顶点形成,第一顶点具有第一索引,第二顶点具有第二索引。在示例中,用信号通知第一索引(例如,第一索引和第二索引中较小的索引),并且用信号通知第二索引与第一索引之间的差以指示该边的两个顶点。
根据本公开内容的另一个方面,连接性信息(例如连接性差异)可以基于顶点的效价值来表示。
在一些示例中,给定网格中所有顶点的效价值,可以基于给定的效价值得出唯一的连接性图。因此,当所有顶点的正确效价值(与编码器侧原始网格中的顶点的效价值相同)在解码器侧可用时,可以得出与原始网格的原始连接性相同的连接性。
在一些示例中,在编码器侧和解码器侧两者处,整个顶点的集合被排序并且分配有唯一的索引号。在编码器侧处,用信号通知在原始连接性与推断的连接性(使用给定的连接性得出算法,称为DA)之间具有不同效价值的顶点的索引,随后是可以用于校正顶点的效价值的效价差。在解码器侧处,基于连接性得出算法(使用与编码器侧相同的连接性得出算法,称为DA),每个顶点可以具有推断的效价值。在根据用信号通知的价差校正了顶点的所有效价值并且变成与原始网格中相同后,可以正确地得出连接性信息。
根据本公开内容的另一个方面,可以基于每条边而用信号通知连接性信息(例如连接性差异)。在一些示例中,针对网格的推断的连接性中的每条边,可以用信号通知标志以指示该边是否存在于原始网格中。在示例中,推断的连接性中的边可以被适当地排序。例如,基于边的两个顶点中具有较低索引的第一顶点然后是边的两个顶点中具有较高索引的第二顶点对每条边进行排序。推断的连接性中的边的标志可以根据经排序的边来组织,然后用信号通知,因此不需要用信号通知边的顶点的索引。在解码器侧处,当推断的连接性中的边的标志指示“是”时,解码器可以保留该边;否则,该边可以被去除。在一些示例中,可以通过使用来自编码比特流的一些上下文信息进行算术编码来用信号通知标志。
此外,对于不在推断的连接性中但是在原始网格中的每条边,可以通过该边的两个顶点索引来用信号通知该边,使得解码器可以恢复该边。也可以通过预测性编码用信号通知这两个顶点索引。例如,用信号通知两个顶点索引中较小的索引,然后用信号通知两个顶点索引之间的差异。
图16示出了根据本公开内容的实施方式的概述处理(1600)的流程图。可以在针对网格的编码处理期间使用处理(1600)。在各种实施方式中,处理(1600)由处理电路执行。在一些实施方式中,处理(1600)以软件指令来实现,因此当处理电路执行软件指令时,处理电路执行处理(1600)。处理从(S1601)处开始并进行至(S1610)。
在(S1610)处,根据顶点的坐标(例如3D坐标和/或UV坐标)得出3D网格中的顶点的推断的连接性。3D网格表示具有多边形的对象的表面,该多边形由顶点以及具有连接顶点的原始边的原始连接性定义。推断的连接性包括推断的连接顶点的边。
在(S1620)处,确定原始连接性与推断的连接性之间的连接性差异。连接性差异与顶点的子集相关联。
在(S1630)处,将与顶点的子集相关联的连接性差异编码到用于携载3D网格的比特流中。
在一些示例中,为了对连接性差异进行编码,指示顶点的子集中的顶点数的第一值被编码到比特流中。为了对与顶点的子集中的第一顶点相关联的连接性差异进行编码,将第一顶点的第一索引编码到比特流中,并且将指示与第一顶点相关联的连接性校正数的第二值编码到比特流中。此外,指示与第一顶点相关联的连接性校正分别对应的顶点的集合的索引序列被编码到比特流中。
在一些示例中,为了对与第一顶点相关联的索引序列进行编码,将与第二顶点的第二索引对应的第一信号编码到比特流中,并且将对应于第二索引与第三顶点的第三索引之间的差异的第二信号编码到比特流中。
在一些示例中,推断的连接性是逐顶点生成的。在示例中,针对第一顶点,得出推断的连接性中与第一顶点连接的顶点的集合。然后,与第一顶点相关联的标志被编码到比特流中。该标志指示一个或更多个连接性校正是否与第一顶点相关联。响应于指示与第一顶点相关联的一个或更多个连接性校正的标志,索引序列被编码到比特流中。索引序列指示与第一顶点相关联的一个或更多个连接性校正分别对应的顶点的第二集合。
在一些示例中,为了对顶点的子集中的第一顶点的连接性差异进行编码,将第一顶点的索引编码到比特流中,并且将原始连接性中的第一顶点的第一效价与推断的连接性中的第一顶点的第二效价之间的效价差编码到比特流中。
根据本公开内容的一个方面,连接性校正通常改变两个顶点的连接性,但是可以在两个顶点中的一个处执行。在示例中,对于连接性校正,选择两个顶点中的一个来用信号通知连接性校正。
根据本公开内容的另一方面,四边形中第一对对角线顶点的连接性校正也指示四边形中第二对对角线顶点的另一连接性校正。因此,在示例中,对于四边形中的连接性校正,选择两对对角线顶点的两个连接性校正中的一个并且在比特流中用信号通知。
然后,处理进行至(S1699)并且终止。
可以适当地调整处理(1600)。可以修改和/或省略处理(1600)中的步骤。可以添加附加的步骤。可以使用任何合适的实现顺序。
图17示出了概述根据本公开内容的实施方式的处理(1700)的流程图。可以在针对网格的编码处理期间使用处理(1700)。在各种实施方式中,处理(1700)由处理电路执行。在一些实施方式中,处理(1700)以软件指令来实现,因此当处理电路执行软件指令时,处理电路执行处理(1700)。处理从(S1701)处开始并进行至(S1710)。
在(S1710)处,根据顶点的坐标(3D坐标和/或UV坐标)得出3D网格中顶点的推断的连接性。3D网格表示具有多边形的对象的表面,该多边形由顶点以及具有连接顶点的原始边的原始连接性定义。推断的连接性包括连接顶点的推断边。
在(S1720)处,确定原始连接性与推断的连接性之间的连接性差异。该连接性差异与原始边和推断边中的一条或更多条边相关联。
在(S1730)处,将与一条或更多条边相关联的连接性差异编码到用于携载3D网格的比特流中。
在一些示例中,为了指示原始边和推断边中的一条或更多条边中的第一边,指示第一边的第一顶点和第二顶点的信号被编码到比特流中。在示例中,与第一顶点的第一索引对应的第一值被编码到比特流中,并且对应于第一索引与第二顶点的第二索引之间的差异的第二值被编码到比特流中。
在一些示例中,与推断边分别相关联的标志被编码到比特流中。与推断边相关联的标志指示该推断边是否存在于原始边中。在一些示例中,推断边可以被适当地排序,并且可以根据推断边的顺序对标志进行编码。
根据本公开内容的另一方面,四边形中的第一对对角线顶点的连接性校正也表示四边形中的第二对对角线顶点的另一连接性校正。因此,在示例中,对于四边形中的连接性校正,选择两对对角线顶点的两个连接性校正中的一个并且在比特流中用信号通知。
然后,处理进行至(S1799)并且终止。
可以适当地调整处理(1700)。可以修改和/或省略处理(1700)中的步骤。可以添加附加的步骤。可以使用任何合适的实现顺序。
图18示出了概述根据本公开内容的实施方式的处理(1800)的流程图。可以在针对网格的解码处理期间使用处理(1800)。在各种实施方式中,处理(1800)由处理电路系统执行。在一些实施方式中,处理(1800)以软件指令实现,因此,当处理电路系统执行软件指令时,处理电路系统执行处理(1800)。处理在(S1801)处开始,并且进行到(S1810)。
在(S1810)处,从携载3D网格的比特流中解码3D网格中的顶点的坐标(例如3D坐标和/或UV坐标)。3D网格表示具有多边形的对象的表面,该多边形由顶点以及具有连接顶点的原始边的原始连接性定义。
在(S1820)处,根据顶点的坐标得出具有连接顶点的推断边的推断的连接性。
在(S1830)处,从比特流中解码与顶点的子集相关联的连接性差异。
在(S1840)处,根据推断的连接性和连接性差异确定恢复的连接性。
在(S1850)处,根据恢复的连接性重建3D网格。
在一些示例中,为了对连接性差异进行解码,从比特流中解码出指示顶点的子集中的顶点数的第一值。然后,根据顶点的子集中的顶点的数量执行解码循环,并且每个解码循环用于对与顶点的子集中的顶点相关联的连接性差异进行解码。
在一些示例中,在解码的循环中,对顶点的子集中的第一顶点的第一索引进行解码。然后,从比特流中解码出指示与第一顶点相关联的连接性校正数的第二值。此外,从比特流中解码出指示与连接性校正分别对应的顶点的集合的索引序列。
在一些示例中,为了确定恢复的连接性,确定与连接性校正对应的第二顶点的第二索引,并且响应于在推断的边中存在连接第一顶点和第二顶点的第一边,从恢复的连接性中去除第一边。在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,将连接四边形的第二对对角线顶点的第二边添加到恢复的连接性中。在一些示例中,响应于在推断边中不存在连接第一顶点和第二顶点的第一边,将连接第一顶点和第二顶点的第一边添加到恢复的连接性中。响应于第一顶点和第二顶点是四边形的第一对对角线顶点,从恢复的连接性中去除连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了对指示连接性校正的顶点的集合的索引序列进行解码,对与第二顶点的第二索引对应的第一信号进行解码,并且对对应于第二索引与第三顶点的第三索引之间的差的第二信号进行解码。
在一些示例中,为了得出推断的连接性并且对连接性差异进行解码,针对第一顶点,得出在推断的连接性中与第一顶点连接的顶点的集合。然后,从比特流中得出与第一顶点相关联的标志。该标志指示一个或更多个连接性校正是否与第一顶点相关联。响应于指示与第一顶点相关联的一个或更多个连接性校正的标志,从比特流中解码出指示与第一顶点相关联的一个或更多个连接性校正分别对应的顶点的第二集合的索引序列。
在一些示例中,为了对连接性差异进行解码,对顶点的子集中的第一顶点的索引进行解码,并且从比特流中解码出效价差。然后,通过将第二效价与效价差相加确定第一顶点的恢复价。
然后,处理进行至(S1899)并且终止。
可以适当地调整处理(1800)。可以修改和/或省略处理(1800)中的步骤。可以添加附加的步骤。可以使用任何合适的实现顺序。
图19示出了概述根据本公开内容的实施方式的处理(1900)的流程图。可以在针对网格的解码处理期间使用处理(1900)。在各种实施方式中,处理(1900)由处理电路系统执行。在一些实施方式中,处理(1900)以软件指令实现,因此,当处理电路系统执行软件指令时,处理电路系统执行处理(1900)。处理在(S1901)处开始,并且进行到(S1910)。
在(S1910)处,从携载三维(3D)网格的比特流中,对3D网格中的顶点的坐标(例如,3D坐标和/或UV坐标)进行解码。3D网格表示具有多边形的对象表面,该多边形由顶点以及连接顶点的原始边的原始连接性定义。
在(S1920)处,根据顶点的坐标得出具有连接顶点的推断边的推断的连接性。
在(S1930)处,从比特流中解码出连接性差异,该连接性差异与原始边和推断边中的一条或更多条边相关联。
在(S1940)处,根据推断的连接性和连接性差异确定恢复的连接性。
在(S1950)处,根据恢复的连接性重建3D网格。
在一些示例中,为了对连接性差异进行解码,从比特流中解码出指示第一边的第一顶点和第二顶点的信号。在示例中,从比特流中解码出与第一顶点的第一索引对应的第一值,并且从比特流中解码出对应于第一索引与第二顶点的第二索引之间的差异的第二值。
在一些示例中,为了确定恢复的连接性,响应于在第二边中存在连接第一顶点和第二顶点的第一边,从恢复的连接性中去除第一边。在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,在恢复的连接性中添加连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了确定恢复的连接性,响应于在推断边中不存在连接第一顶点和第二顶点的第一边,在恢复的连接性中添加连接第一顶点和第二顶点的第一边。在示例中,响应于第一顶点和第二顶点是四边形的第一对对角线顶点,从恢复的连接性中去除连接四边形的第二对对角线顶点的第二边。
在一些示例中,为了对连接性差异进行解码,从比特流中解码出与推断边分别相关联的标志,与推断边相关联的标志指示推断的边是否存在于原始连接性中(例如,为原始边之一)。
然后,处理进行至(S1999)并且终止。
可以适当地调整处理(1900)。可以修改和/或省略处理(1900)中的步骤。可以添加附加的步骤。可以使用任何合适的实现顺序。
本公开内容中公开的技术可以单独使用或者以任何顺序组合使用。此外,技术(例如,方法、实施方式)、编码器和解码器中的每一个可以由处理电路系统(例如,一个或更多个处理器或者一个或更多个集成电路)来实现。在一些示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。
上述技术可以被实现为使用计算机可读指令的计算机软件并且物理地存储在一个或更多个计算机可读介质中。例如,图20示出了适于实现所公开的主题的某些实施方式的计算机系统(2000)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,所述机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(centralprocessingunit,CPU)、图形处理单元(GraphicsProcessingUnit,GPU)等直接执行或者通过解译、微代码执行等执行。
指令可以在各种类型的计算机或其部件上执行,所述计算机或其部件包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图20中示出的用于计算机系统(2000)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统(2000)的示例性实施方式中示出的部件中的任何一个或组合有关的任何依赖性或要求。
计算机系统(2000)可以包括某些人机接口输入设备。这样的人机接口输入设备可以对由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)进行的输入作出响应。人机接口设备还可以用于捕获不一定与人的有意识的输入直接有关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像设备获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下各项中的一个或更多个(每项仅描绘出一个):键盘(2001)、鼠标(2002)、触控板(2003)、触摸屏(2010)、数据手套(未示出)、操纵杆(2005)、麦克风(2006)、扫描仪(2007)、摄像设备(2008)。
计算机系统(2000)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏(2010)、数据手套(未示出)或操纵杆(2005)的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(2009)、头戴式耳机(未描绘))、视觉输出设备(例如,屏幕(2010),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个均具有或不具有触摸屏输入能力,每个均具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出、虚拟现实眼镜(未描绘)、全息显示器和发烟器(未描绘)的手段输出二维视觉输出或多于三维输出)和打印机(未描绘)。
计算机系统(2000)还可以包括人类可访问的存储设备及其相关联的介质,例如包括具有CD/DVD等介质(2021)的CD/DVDROM/RW(2020)的光学介质、拇指驱动器(2022)、可移除硬盘驱动器或固态驱动器(2023)、诸如磁带和软盘的传统磁介质(未描绘)、诸如安全加密狗(未描绘)的基于专用ROM/ASIC/PLD的设备等。
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他瞬态信号。
计算机系统(2000)还可以包括到一个或更多个通信网络(2055)的接口(2054)。网络可以是例如无线的、有线的、光学的。网络还可以是局域的、广域的、城域的、车辆和工业的、实时的、延时容忍的等。网络的示例包括:局域网,例如以太网、无线LAN;蜂窝网络,包括GSM、3G、4G、5G、LTE等;电视有线或无线广域数字网络,包括有线电视、卫星电视和地面广播电视;车辆的和工业的,包括CANBus等。某些网络通常需要附接至某些通用数据端口或外围总线(2049)(例如,计算机系统(2000)的USB端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的系统总线(例如,到PC计算机系统中的以太网接口或到智能电话计算机系统中的蜂窝网络接口)集成到计算机系统(2000)的核中。计算机系统(2000)可以使用这些网络中的任何网络与其他实体进行通信。这样的通信可以是单向的、仅接收的(例如,广播电视)、单向仅发送的(例如,到某些CANbus设备的CANbus)、或双向的(例如,到使用局域数字网络或广域数字网络的其他计算机系统)。可以在如上所述的这些网络和网络接口中的每个网络和网络接口上使用特定的协议和协议栈。
以上提及的人机接口设备、人类可访问存储设备和网络接口可以附接至计算机系统(2000)的核(2040)。
核(2040)可以包括一个或更多个中央处理单元(CPU)(2041)、图形处理单元(GPU)(2042)、现场可编程门区(FPGA)形式的专用可编程处理单元(2043)、用于某些任务的硬件加速器(2044)、图形适配器(2050)等。这些设备连同只读存储器(ROM)(2045)、随机存取存储器(2046)、内部大容量存储设备例如内部非用户可访问的硬盘驱动器、SSD(Solid-StateDrive,SSD)等(2047)可以通过系统总线(2048)连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线(2048),以使得能够由附加的CPU、GPU等进行扩展。外围设备可以直接附接至核的系统总线(2048)或可以通过外围总线(2049)附接至核的系统总线(1448)。在示例中,屏幕(2010)可以连接至图形适配器(2050)。外围总线的架构包括PCI(PeripheralComponentInterconnect/Interface,PCI)、USB(UniversalSerialBus,USB)等。
CPU(2041)、GPU(2042)、FPGA(2043)和加速器(2044)可以执行某些指令,这些指令组合起来可以构成以上提及的计算机代码。所述计算机代码可以存储在ROM(2045)或RAM(2046)中。暂态数据也可以存储在RAM(2046)中,而永久数据可以存储在例如内部大容量存储设备(2047)中。可以通过使用缓存存储器来实现对存储设备中的任何存储设备的快速存储和检索,该缓存存储器可以与一个或更多个CPU(2041)、GPU(2042)、大容量存储设备(2047)、ROM(2045)、RAM(2046)等紧密相关联。
计算机可读介质在其上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为本公开内容的目的而专门设计和构造的介质和计算机代码,或者它们可以具有计算机软件领域的技术人员公知且可用的类型。
作为示例而非限制的方式,具有架构特别是核(2040)的计算机系统(2000)可以由于处理器(包括CPU、GPU、FPGA、加速器等)执行体现在一个或更多个有形计算机可读介质中的软件而提供功能。这样的计算机可读介质可以是与如以上所介绍的用户可访问的大容量存储设备相关联的介质,以及具有非暂态性质的核(2040)的某些存储设备,例如核内部的大容量存储设备(2047)或ROM(2045)。实现本公开内容的各种实施方式的软件可以被存储在这样的设备中并且由核(2040)执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或者芯片。软件可以使核(2040)特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在RAM(2046)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或作为替选方案,计算机系统可以提供作为硬连线或以其他方式体现在电路(例如:加速器(2044))中的逻辑的结果的功能,其可以代替软件或与软件一起操作以执行本文中描述的特定过程或特定过程的特定部分。在适当的情况下,提及的软件可以包含逻辑,反之,提及的逻辑也可以包含软件。在适当的情况下,对计算机可读介质的引用可以涵盖存储用于执行的软件的电路(例如集成电路(IC))、实施用于执行的逻辑的电路或上述两者。本公开内容包含硬件与软件的任何合适的组合。
虽然本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等同物。因此将认识到,本领域技术人员将能够设想出许多系统和方法,尽管这些系统和方法未在本文中明确示出或描述,但是体现了本公开内容的原理并因此在本公开内容的精神和范围内。

Claims (20)

1.一种用于网格解压缩的方法,包括:
从携载三维(3D)网格的比特流中解码所述3D网格中的顶点的坐标,所述3D网格表示具有多边形的对象的表面,所述多边形由所述顶点和原始连接性定义,所述原始连接性具有连接所述顶点的原始边;
根据所述顶点的坐标,得出推断的连接性,所述推断的连接性具有连接所述顶点的推断的边;
从所述比特流中解码出与所述顶点的子集相关联的连接性差异;
根据所述推断的连接性和所述连接性差异确定恢复的连接性;以及
根据所述恢复的连接性重建所述3D网格。
2.根据权利要求1所述的方法,其中,对所述连接性差异进行解码还包括:
从所述比特流中解码第一值,所述第一值指示所述顶点的所述子集中的顶点的数量。
3.根据权利要求2所述的方法,还包括:
对所述顶点的所述子集中的第一顶点的第一索引进行解码;
从所述比特流中解码第二值,所述第二值指示与所述第一顶点相关联的连接性校正的数量;以及
对索引序列进行解码,所述索引序列指示与所述第一顶点相关联的连接性校正分别对应的顶点的集合。
4.根据权利要求3所述的方法,其中,确定所述恢复的连接性还包括:
确定与连接性校正对应的第二顶点的第二索引;以及
响应于所述推断的边中存在连接所述第一顶点和所述第二顶点的第一边,从所述恢复的连接性中去除所述第一边。
5.根据权利要求4所述的方法,还包括:
响应于所述第一顶点和所述第二顶点是四边形的第一对对角线顶点,在所述恢复的连接性中添加连接所述四边形的第二对对角线顶点的第二边。
6.根据权利要求3所述的方法,其中,确定所述恢复的连接性还包括:
确定与连接性校正对应的第二顶点的第二索引;以及
响应于在所述推断边中不存在连接所述第一顶点和所述第二顶点的第一边,在所述恢复的连接性中添加连接所述第一顶点和所述第二顶点的第一边。
7.根据权利要求6所述的方法,还包括:
响应于所述第一顶点和所述第二顶点是四边形的第一对对角线顶点,从所述恢复的连接性中去除连接所述四边形的第二对对角线顶点的第二边。
8.根据权利要求3所述的方法,其中,对指示与所述连接性校正分别对应的顶点的集合的索引序列进行解码还包括:
从所述比特流中解码指示第二顶点的第二索引的第一信号;以及
从所述比特流中解码第二信号,所述第二信号是所述第二索引与所述索引序列中的第三顶点的第三索引之间的差异。
9.根据权利要求1所述的方法,其中,得出所述推断的连接性和对所述连接性差异进行解码还包括:
针对第一顶点,得出在所述推断的连接性中与所述第一顶点连接的顶点的第一集合;
从所述比特流中解码与所述第一顶点相关联的标志,所述标志指示与所述第一顶点相关联的一个或更多个连接性校正;以及
从所述比特流中解码索引序列,所述索引序列指示与所述第一顶点相关联的一个或更多个连接性校正分别对应的顶点的第二集合。
10.根据权利要求1所述的方法,其中,对所述连接性差异进行解码还包括:
从所述比特流中解码所述顶点的子集中的第一顶点的索引;
从所述比特流中解码效价差;以及
通过将所述效价差与所述推断的连接性中的第一顶点的推断的效价相加来确定所述第一顶点的恢复的效价。
11.一种用于网格解压缩的方法,包括:
从携载三维(3D)网格的比特流中解码所述3D网格中的顶点的坐标,所述3D网格表示具有多边形的对象的表面,所述多边形由所述顶点和原始连接性来定义,所述原始连接性具有连接所述顶点的原始边;
根据所述顶点的坐标,得出推断的连接性,所述推断的连接性具有连接所述顶点的推断的边;
从所述比特流中解码与所述原始边和所述推断的边中的一条或更多条边相关联的连接性差异;
根据所述推断的连接性和所述连接性差异确定恢复的连接性;以及
根据所述恢复的连接性重建所述3D网格。
12.根据权利要求11所述的方法,其中,对所述连接性差异进行解码还包括:
对所述比特流中指示所述第一边的第一顶点和第二顶点的信号进行解码。
13.根据权利要求12所述的方法,其中,对所述信号进行解码包括:
对与所述第一顶点的第一索引对应的第一值进行解码;以及
对第二值进行解码,所述第二值对应于所述第一索引与第二顶点的第二索引之间的差异。
14.根据权利要求12所述的方法,其中,确定所述恢复的连接性还包括:
响应于所述推断的边中存在连接所述第一顶点和所述第二顶点的第一边,从所述恢复的连接性中去除所述第一边。
15.根据权利要求14所述的方法,还包括:
响应于所述第一顶点和所述第二顶点是四边形的第一对对角线顶点,在所述恢复的连接性中添加连接所述四边形的第二对对角线顶点的第二边。
16.根据权利要求12所述的方法,其中,确定所述恢复的连接性还包括:
响应于所述推断的边中不存在连接所述第一顶点和所述第二顶点的第一边,在所述恢复的连接性中添加连接所述第一顶点和所述第二顶点的第一边。
17.根据权利要求16所述的方法,还包括:
响应于所述第一顶点和所述第二顶点是四边形的第一对对角线顶点,从所述恢复的连接性中去除连接所述四边形的第二对对角线顶点的第二边。
18.根据权利要求11所述的方法,其中,对所述连接性差异进行解码还包括:
对分别与所述推断的边相关联的标志进行解码,与所述推断的边相关联的标志指示所述推断的边是否存在于所述原始边中。
19.一种用于网格解压缩的装置,包括处理电路,所述处理电路被配置成:
从携载三维(3D)网格的比特流中解码所述3D网格中的顶点的坐标,所述3D网格表示具有多边形的对象的表面,所述多边形由所述顶点和原始连接性来定义,所述原始连接性具有连接所述顶点的原始边;
根据所述顶点的坐标,得出推断的连接性,所述推断的连接性具有连接所述顶点的推断的边;
从所述比特流中解码与所述顶点的子集相关联的连接性差异;
根据所述推断的连接性和所述连接性差异确定恢复的连接性;以及
根据所述恢复的连接性重建所述3D网格。
20.根据权利要求19所述的装置,其中,所述处理电路被配置成:
从所述比特流中解码第一值,所述第一值指示所述顶点的子集中的顶点的数量;
对所述顶点的子集中的第一顶点的第一索引进行解码;
从所述比特流中解码出第二值,所述第二值指示与所述第一顶点相关联的连接性校正的数量;以及
对索引序列进行解码,所述索引序列指示与所述第一顶点相关联的连接性校正分别对应的顶点的集合。
CN202280016783.5A 2021-11-05 2022-10-18 用于网格压缩的顶点连接性编码 Pending CN116982084A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202163276459P 2021-11-05 2021-11-05
US63/276,459 2021-11-05
US202163289026P 2021-12-13 2021-12-13
US63/289,026 2021-12-13
US17/965,611 US20230143284A1 (en) 2021-11-05 2022-10-13 Vertex connectivity coding for mesh compression
US17/965,611 2022-10-13
PCT/US2022/078282 WO2023081578A1 (en) 2021-11-05 2022-10-18 Vertex connectivity coding for mesh compression

Publications (1)

Publication Number Publication Date
CN116982084A true CN116982084A (zh) 2023-10-31

Family

ID=86229852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280016783.5A Pending CN116982084A (zh) 2021-11-05 2022-10-18 用于网格压缩的顶点连接性编码

Country Status (5)

Country Link
US (1) US20230143284A1 (zh)
JP (1) JP2024509886A (zh)
KR (1) KR20230124720A (zh)
CN (1) CN116982084A (zh)
WO (1) WO2023081578A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7538764B2 (en) * 2001-01-05 2009-05-26 Interuniversitair Micro-Elektronica Centrum (Imec) System and method to obtain surface structures of multi-dimensional objects, and to represent those surface structures for animation, transmission and display
FR2961930B1 (fr) * 2010-06-29 2013-01-04 Fittingbox Procede de compression / decompression de maillage tridimensionnel
US9734595B2 (en) * 2014-09-24 2017-08-15 University of Maribor Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
GB2563019B (en) * 2017-05-29 2021-07-28 Canon Kk Improved valence-based encoding and decoding of connectivity data in a 3D model
US10553035B2 (en) * 2017-06-02 2020-02-04 Google Llc Valence based implicit traversal for improved compression of triangular meshes
EP4085634A4 (en) * 2020-01-02 2024-01-10 Nokia Technologies Oy METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR CODING AND DECODING VOLUMETRIC VIDEOS

Also Published As

Publication number Publication date
JP2024509886A (ja) 2024-03-05
WO2023081578A1 (en) 2023-05-11
KR20230124720A (ko) 2023-08-25
US20230143284A1 (en) 2023-05-11

Similar Documents

Publication Publication Date Title
US20230063575A1 (en) Patch zippering for mesh compression
JP2023551303A (ja) メッシュ復元のための方法、装置及びコンピュータプログラム
US20230177738A1 (en) Dynamic mesh compression based on point cloud compression
JP2024516244A (ja) メッシュ圧縮におけるパッチの重複のないプロパティのチェック
JP2023552114A (ja) メッシュ展開のための方法、装置及びプログラム
US11967025B2 (en) Detection of boundary loops in non-manifold meshes
CN116982084A (zh) 用于网格压缩的顶点连接性编码
JP7504298B2 (ja) 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム
US20230090677A1 (en) Coding connectivity in vertex reordering methods for mesh compression
US20230074762A1 (en) Vertex reordering for mesh compression
JP2024516343A (ja) 推定されたテクスチャ座標を用いたメッシュ圧縮
CN116686011A (zh) 基于图表的网格压缩方法和装置
CN116711305A (zh) 用于解码器执行网格压缩的自适应采样方法和装置
CN117083636A (zh) 用于网格压缩的边界几何信息的预测编码
CN116635904A (zh) 用于动态网格压缩的方法和装置
CN117178299A (zh) 将3d网格快速且紧凑地打包到2d地图中的卷积方法

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