CN116888631A - 基于点云压缩的动态网格压缩 - Google Patents
基于点云压缩的动态网格压缩 Download PDFInfo
- Publication number
- CN116888631A CN116888631A CN202280012353.6A CN202280012353A CN116888631A CN 116888631 A CN116888631 A CN 116888631A CN 202280012353 A CN202280012353 A CN 202280012353A CN 116888631 A CN116888631 A CN 116888631A
- Authority
- CN
- China
- Prior art keywords
- connectivity
- connectivity information
- mesh frame
- point cloud
- vertex
- 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
- 230000006835 compression Effects 0.000 title claims abstract description 58
- 238000007906 compression Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 42
- 230000006837 decompression Effects 0.000 claims description 14
- 238000005070 sampling Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 36
- 238000013507 mapping Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 26
- 230000033001 locomotion Effects 0.000 description 22
- 239000013598 vector Substances 0.000 description 17
- 238000013139 quantization Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 10
- 238000009499 grossing Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 108050005509 3D domains Proteins 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000002310 reflectometry Methods 0.000 description 6
- 239000003086 colorant Substances 0.000 description 5
- 230000000153 supplemental effect Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/20—Contour coding, e.g. using detection of edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
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)
Abstract
本公开的各方面提供了用于网格编解码(编码和/或解码)的方法和装置。在一些示例中,用于编解码网格的装置包括处理电路。处理电路使用点云压缩PCC解码器从比特流解码点云,点云包括与三维3D网格帧中的顶点相对应的第一点,3D网格帧用多边形表示对象的表面。处理电路从比特流中解码3D网格帧的第一连通性信息。已在比特流中用信令通知第一连通性信息。处理电路从点云的第一点推断3D网格帧的第二连通性信息。未在所述比特流中用信令通知第二连通性信息。处理电路基于点云、第一连通性信息和第二连通性信息重构所述3D网格帧。
Description
相关申请的交叉引用
本公开要求于2022年10月7日提交的题为“DYNAMIC MESH COMPRESSION BASED ONPOINT CLOUD COMPRESSION”的美国专利申请第17/962201号的优先权的权益,前述美国专利申请要求于2021年12月3日提交的题为“Dynamic Mesh Compression based on PointCloud Compression”的第63/285967号美国临时申请的优先权的权益,在先申请的公开内容全部通过引用并入本文。
技术领域
本公开描述了总体上与网格编解码相关的实施例。
背景技术
本文所提供的背景描述是出于总体上呈现本公开的上下文的目的。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本公开的现有技术。
各种技术被开发用于捕捉和表示世界,例如世界中的对象、世界中的环境,在三维(3D)空间中的类似物。世界的3D表示可以实现更沉浸式的交互和通信。在一些示例中,点云和网格可以用作世界的3D表示。
发明内容
本公开的各方面提供了用于网格编解码(编码和/或解码)的方法和装置。在一些示例中,用于编解码网格的装置包括处理电路。处理电路使用点云压缩(point cloudcompression,PCC)解码器从比特流解码点云,点云包括与三维(3D)网格帧中的顶点相对应的第一点。3D网格帧用多边形表示对象的表面。处理电路从比特流中解码3D网格帧的第一连通性信息。已在比特流中用信令通知第一连通性信息。处理电路从点云的第一点推断3D网格帧的第二连通性信息。未在比特流中用信令通知第二连通性信息。处理电路基于点云、第一连通性信息和第二连通性信息重构3D网格帧。
在一些示例中,第一连通性信息包括3D网格帧的第一区域中的第一多个顶点的第一连通性,第二连通性信息包括3D网格帧的第二区域中的第二多个顶点的第二连通性,第一区域相比第二区域具有更高的顶点密度。
在一些示例中,第一连通性信息包括第一区域中的第一多个顶点的连通性,第一区域的曲率参数大于阈值。
在一些示例中,第一连通性信息包括第一区域中的第一多个顶点的连通性,第一区域中的法线值满足要求。
在一些示例中,第一连通性信息包括3D网格帧的第一多边形的第一连通性。处理电路通过插值确定第一多边形内的一个或多个附加采样点,并推断所有第一点与一个或多个附加采样点之间的连接的第二连通性信息。
在一些示例中,第二连通性信息包括具有连接第一图表中的第一顶点和第二图表中的第二顶点的第一边的多边形。处理电路通过基于至少第一顶点的第一颜色和第二顶点的第二颜色的插值来确定多边形内的点的颜色。
在一些示例中,第一连通性信息包括3D网格帧的原始连通性与3D网格帧的推断的连通性之间的连通性差,处理电路将第一连通性信息与第二连通性信息组合,以生成3D网格帧的恢复连通性信息,并基于点云和恢复的3D网格帧的连通性信息重构3D网格帧。
在一些示例中,第一连通性信息包括连接第一顶点和第二顶点的第一边,以指示第一边是连接两个不同图表的假边。处理电路确定与第一边交叉的图表边界边,并将第一边替换为第二连通性信息中的图表边界边。
本公开的各方面还提供了一种存储指令的非暂态计算机可读存储介质,所述指令在由计算机执行时使计算机执行用于网格编码的方法中的任意一者或任意组合。
附图说明
根据下面的详细描述和附图,所公开的主体的其他特征、性质以及各种优点将更加明显,在附图中:
图1示出了在一些示例中的通信系统的框图。
图2示出了在一些示例中的流式传输系统的框图。
图3示出了在一些示例中的用于编码点云帧的编码器的框图。
图4示出了在一些示例中的用于解码点云帧对应的压缩的比特流的解码器的框图。
图5示出了在一些示例中的视频解码器的框图。
图6示出了在一些示例中的视频编码器的框图。
图7示出了在一些示例中的用于编码点云帧的编码器的框图。
图8示出了在一些示例中的用于解码携带点云帧的压缩的比特流的解码器的框图。
图9示出了在一些示例中的说明网格到图集的映射的图。
图10示出了根据本公开的一些实施例的用于网格压缩的架构的图。
图11示出了根据本公开的一些实施例的用于网格压缩的架构的图。
图12示出了说明在一些示例中的网格处理技术的图。
图13示出了概述在一些示例中的处理示例的流程图。
图14示出了概述在一些示例中的处理示例的流程图。
图15是在一些示例中的计算系统的示意图。
具体实施方式
本公开的各方面提供了三维(3D)媒体处理领域中的技术。
3D媒体处理中的技术发展,诸如三维(3D)捕获、3D建模和3D渲染等方面的进步,已经促进了跨几个平台和设备的3D媒体内容的普遍存在。在一个示例中,可以在一片大陆捕捉到婴儿的第一步,媒体技术可以让祖父母在另一片大陆观看(也许互动)并享受与婴儿的沉浸式体验。根据本公开的一个方面,为了改善沉浸式体验,3D模型变得越来越复杂,并且3D模型的创建和消费占用了大量的数据资源,例如数据存储、数据传输资源。
根据本公开的一些方面,点云和网格可以用作3D模型来表示沉浸式内容。
点云通常可以指3D空间中的点集,点集中的每个点具有关联的属性,例如颜色、材质属性、纹理信息、强度属性、反射率属性、运动相关属性、形态属性和各种其他属性。点云可用于将对象或场景重构为这些点的组合。
对象的网格(也称为网格模型)可以包括描述对象表面的多边形。每个多边形可以由3D空间中多边形的顶点以及这些顶点如何连接成多边形的信息来定义。将顶点如何连接的信息称为连通性信息。在一些示例中,网格还可以包括与顶点关联的例如颜色、法线等属性。
根据本公开的一些方面,用于点云压缩(point cloud compression,PCC)的一些编码工具可以用于网格压缩。例如,可以将网格重新网格化以生成可以推断新网格的连通性信息的新网格。可以将新网格的顶点以及与新网格的顶点关联的属性当做点云中的点,并且可以使用PCC编解码器进行压缩。
点云可用于将对象或场景重构为点的组合。这些点可以在各种设置中使用多个相机、深度传感器或激光雷达来捕获,并且可以由数千到数十亿个点组成,以便真实地表示重构的场景或对象。小片(patch)通常可以指由点云描述的表面的连续子集。在一个示例中,小片(patch)包括具有彼此偏离小于阈值量的表面法向量的点。
PCC可以根据各种方案来执行,诸如被称为G-PCC的基于几何学的方案、被称为V-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)可以包括例如有线(连线的)和/或无线通信网络。网络(150)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网、因特网等。
图2示出了一些示例中的流式传输系统(200)的框图。流式传输系统(200)是点云的使用应用。所公开的主题可以同样适用于其他支持点云的应用,例如3D远程呈现应用、虚拟现实应用等。
流式传输系统可包括采集子系统(213),采集子系统(413)可包括诸如光探测器和测距(LIDAR)系统、3D相机、3D扫描仪、在软件中生成未压缩点云的图形生成组件,以及生成例如未压缩点云(202)的类似物的视频源(201)。在一个示例中,点云(202)包括由3D相机捕获的点。将点云(202)描绘为粗线,以强调与压缩点云(204)(压缩点云的比特流)相比数据量高。压缩点云(204)可以由电子设备(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)中。例如,可以以与V-PCC编码器(300)类似的方式配置和操作编码器(203)。
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图像,其像素填充有指示被小片占用或未被小片占用的值。
小片生成模块(306)将点云分割成小片集(例如,小片被定义为由点云描述的表面的连续子集),该小片集可以重叠或不重叠,使得每个小片可以由相对于2D空间中的平面的深度场来描述。在一些实施例中,小片生成模块(306)旨在将点云分解成具有平滑边界的最小数量的小片,同时也最小化重构误差。
在一些示例中,小片信息模块(304)可以收集指示小片的大小和形状的小片信息。在一些示例中,可以将小片信息分组到图像帧中,然后由辅助小片信息压缩模块(338)编码以生成压缩的辅助小片信息。
在一些示例中,小片分组模块(308)被配置成将提取的小片映射到二维(2D)栅格上,同时最小化未使用的空间并保证网格的每个M×M(例如,16×16)块与唯一的小片关联。有效的小片分组可以通过最小化未使用的空间或确保时间的一致性来直接影响压缩效率。
几何图像生成模块(310)可以生成与给定小片位置处的点云的几何形状关联的2D几何图像。纹理图像生成模块(312)可以生成与给定小片位置处的点云的纹理关联的2D纹理图像。几何图像生成模块(310)和纹理图像生成模块(312)利用在分组过程中计算的3D到2D的映射来将点云的几何形状和纹理存储为图像。为了更好地处理将多个点投影到同一个样本的情况,将每个小片投影到两个图像上,称为层。在一个示例中,几何图像由YUV420-8bit格式的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)可以平滑颜色的不一致。在2D视频中,3D空间中的非相邻小片通常被并排分组。在一些示例中,基于块的视频编解码器可能混淆来自非相邻小片的像素值。颜色平滑的目标是减少出现在小片边界的可视伪影。
图5示出了一些示例中的视频解码器(510)的框图。视频解码器(510)可用在V-PCC解码器(400)中。例如,视频解压缩模块(434)和(436),占用映射解压缩模块(438)可以类似地配置为视频解码器(510)。
视频解码器(510)可包括解析器(520),以从诸如已编码视频序列的压缩图像中重构符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息。解析器(520)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼(Huffman)编码、具有或不具有上下文敏感度的算术编码等。解析器(520)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(GOP)、图片、图块、切片、宏块、编码单元(CU)、块、变换单元(TU)、预测单元(PU)等。解析器(520)还可以从已编码视频序列提取信息,例如变换系数,量化器参数值,运动矢量等。
解析器(520)可以对从缓冲存储器接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片,帧间块和帧内块)的类型以及其它因素,符号(521)的重构可涉及多个不同的单元。涉及哪些单元以及涉及方式可由解析器(520)通过从已编码视频序列解析的子群控制信息来控制。为了清楚起见,未描绘解析器(520)与下文的多个单元之间的此类子群控制信息流。
除了已提及的功能块之外,视频解码器(510)可以在概念上细分成如下文所描述的多个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,在概念上细分成下文的多个功能单元是合适的。
第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收量化变换系数以及控制信息,包括要使用哪种变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(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 Rec.H.265建议书的标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体而言,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。为了合规性,还可能需要已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重构采样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
图6示出了根据本公开的一个实施例的视频编码器(603)的框图。视频编码器(603)可用于压缩点云的V-PCC编码器(300)中。在一个示例中,视频压缩模块(322)和(323)以及视频压缩模块(332)被类似地配置给编码器(603)。
视频编码器(603)可以接收图像,例如填充的几何图像、填充的纹理图像等,并生成压缩图像。
根据一个实施例,视频编码器(603)可实时地或在应用所要求的任何其它时间约束下,将源视频序列(图像)的图片编码并压缩成已编码视频序列(压缩图像)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在功能上耦接到所述的其它功能单元。为了清楚起见,图中未描绘耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值......)、图片大小、图片群组(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图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(“IDR”)图片。本领域的技术人员了解I图片的这些变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联的元数据来用于重构单个块。
源图片通常可以在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,其它(已编码)块由应用于块的相应图片的编码分配来确定。例如,I图片的块可进行非预测性编码,或者I图片的块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间预测来进行预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测来进行预测性编码。
视频编码器(603)可根据诸如ITU-T Rec.H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。
视频可作为呈时间序列的多个源图片(图像)。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在一个示例中,将正在编码/解码的特定图片分成块,正在编码/解码的特定图片称为当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称为运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,运动矢量可具有识别参考图片的第三个维度。
在一些实施例中,双向预测技术可用于帧间图片预测。根据该双向预测技术,使用两个参考图片,例如按解码次序在视频中的当前图片之前(但是按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量来对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来预测该块。
此外,合并模式技术可用于帧间图片预测以改善编码效率。
根据本公开的一些实施例,诸如帧间图片预测和帧内图片预测的预测以块为单位来执行。例如,根据HEVC标准,将视频图片序列中的图片分成编码树单元(CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。通常,CTU包括三个编码树块(CTB),这三个编码树块是一个亮度CTB和两个色度CTB。可以将每个CTU递归地以四叉树划分成一个或多个编码单元(CU)。例如,可以将64×64像素的CTU划分成一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在一个示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。根据时间和/或空间可预测性,将CU划分成一个或多个预测单元(PU)。通常,每个PU包括亮度预测块(PB)和两个色度PB。在一个实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。使用亮度预测块作为预测块的示例,预测块包括针对像素的值(例如,亮度值)的矩阵,所述的像素例如是8×8像素、16×16像素、8×16像素、16×8像素等。
图7示出了一些示例中的G-PCC编码器(700)的框图。G-PCC编码器(700)可以被配置为接收点云数据并压缩点云数据以生成携带压缩点云数据的比特流。在一个实施例中,G-PCC编码器(700)可以包括位置量化模块(710)、重复点去除模块(712)、八叉树编码模块(730)、属性转换模块(720)、细节层次(level of detail,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)发送给或以其他方式提供给解码压缩比特流的解码器,或者可以将比特流(702)存储在存储设备中。
图8示出了根据一个实施例的G-PCC解码器(800)的框图。G-PCC解码器(800)可被配置为接收压缩的比特流并执行点云数据解压缩以解压缩该比特流以生成解码的点云数据。在一个实施例中,G-PCC解码器(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)可以用处理电路来实现,所述处理电路例如为使用或不使用软件来操作的一个或多个集成电路(IC),例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在另一示例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以实现为包括存储在非易失性(或非暂态)计算机可读存储介质中的指令的软件或固件。当由诸如包括一个或多个处理器的处理电路执行时,该指令使得处理电路执行编码器(300)、解码器(400)、编码器(700)和/或解码器(800)的功能。
需要注意的是,被配置为实现本公开的属性预测技术的属性预测模块(750)和(850)可以包括在其他解码器或编码器中,这些解码器或编码器可以具有与图7和图8所示的结构相似或不同的结构。此外,在各种示例中,编码器(700)和解码器(800)可以包括在同一设备中,或者包括在单独的设备中。
根据本公开的一些方面,网格压缩可以使用不同于PCC编码工具的编码工具,或者可以使用PCC编码工具,例如以上PCC(例如G-PCC、V-PCC)编码器、以上PCC(例如G-PCC、V-PCC)解码器等。
对象的网格(也称为网格模型、网格帧)可以包括描述对象表面的多边形。每个多边形可以由三维空间中多边形的顶点和将顶点连接到多边形的边来定义。将顶点如何连接的信息(例如,边的信息)称为连通性信息。在一些示例中,对象的网格由描述对象表面的连接的三角形形成。共享一条边的两个三角形称为两个相连的三角形。在一些其他示例中,对象的网格由连接的四边形形成。共享一条边的两个四边形可以称为两个相连的四边形。需要注意的是,网格可以由其他合适的多边形形成。
在一些示例中,网格还可以包括与顶点关联的属性,例如颜色、法线等。通过利用用2D属性映射参数化网格的映射信息,可以将属性与网格的表面相关联。映射信息通常由一组与网格顶点相关联的参数坐标,称为UV坐标或纹理坐标,来描述。2D属性映射(在一些示例中称为纹理映射)用于存储高分辨率属性信息,例如纹理、法线、位移等。这种信息可以用于各种目的,例如纹理映射和晕渲。
在一些实施例中,网格可以包括被称为几何信息、连通性信息、映射信息、顶点属性和属性映射的组件。在一些示例中,几何信息由与网格的顶点相关联的一组3D位置来描述。在一个示例中,(x,y,z)坐标可用于描述顶点的3D位置,并且也被称为3D坐标。在一些示例中,连通性信息包括描述如何连接顶点以创建3D表面的一组顶点索引。在一些示例中,映射信息描述了如何将网格表面映射到平面的2D区域。在一个示例中,映射信息由与网格顶点相关联的一组UV参数/纹理坐标(u,v)以及连通性信息来描述。在一些示例中,顶点属性包括与网格顶点相关联的标量或矢量属性值。在一些示例中,属性映射包括与网格表面相关联并存储为2D图像/视频的属性。在一个示例中,视频(例如,2D图像/视频)和网格表面之间的映射由映射信息定义。
根据本公开的一个方面,一些称为UV映射或网格参数化的技术用于将3D域中的网格表面映射到2D域。在一些示例中,网格在3D域中被分割成小片。小片是网格的连续子集,其边界由边界边组成。小片的边界边是只属于该小片的一个多边形,并且不与该小片中的两个相邻多边形共享的边。在一些示例中,小片中边界边的顶点称为小片的边界顶点,而小片中的非边界顶点可以称为小片的内部顶点。
在一些示例中,对象的网格由连接的三角形形成,并且可以将网格分割成小片,每个小片是连接的三角形的子集。小片的边界边是只属于小片中的一个三角形并且不与小片中的相邻三角形共享的边。在一些示例中,小片的边界边的顶点称为小片的边界顶点,而小片中的非边界顶点可以称为小片的内部顶点。边界环包括边界顶点序列,由边界顶点的序列形成的边界边可以形成称为边界环的环。
根据本公开的一个方面,在一些示例中,小片被分别参数化为2D形状(也称为UV小片)。2D形状可以分组(例如,定向并放置)到映射中,在一些示例中,映射也被称为图集。在一些示例中,可以使用2D图像或视频处理技术进一步处理映射。
在一个示例中,UV映射技术在2D中生成对应于3D网格的小片的UV图集(也称为UV映射)和一个或多个纹理图集(也称为纹理映射)。UV图集包括3D网格的3D顶点到2D域(例如,矩形)中的2D点的分配。UV图集是3D表面坐标到2D域坐标之间的映射。在一个示例中,UV图集中位于2D坐标(u,v)处的点具有由3D域中顶点的坐标(x,y,z)形成的值。在一个示例中,纹理图集包括3D网格的颜色信息。例如,纹理图集中位于2D坐标(u,v)处的点(其在UV图集中具有(x,y,z)的3D值)具有指定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域,例如也被称为UV图集(920)或映射(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)坐标,将2D域中的坐标,例如映射(920),称为UV坐标。3D网格中的顶点可以在映射(920)中具有相应的UV坐标。
映射(920)可以是具有几何信息的几何映射,或者可以是具有颜色、法线、纹理或其他属性信息的纹理映射,或者可以是具有占用信息的占用映射。
而每个小片在图9的示例中由三角形表示,应当注意的是,小片可以包括连接起来形成网格的连续子集的任何合适数目的顶点。在一些示例中,将小片中的顶点连接成三角形。需要注意的是,小片中的顶点可以使用其他合适的形状来连接。
在一个示例中,顶点的几何信息可以存储到2D几何映射中。例如,2D几何映射存储2D几何映射中对应点处的采样点的(x,y,z)坐标。例如,2D几何映射中在(u,v)位置处的点具有3个分量的向量值,分别对应于3D网格中相应采样点的x、y和z值。
根据本公开的一方面,映射中的区域可能没有被完全占据。例如,在图9中,2D形状A’、B’、C’和D’之外的区域没有被定义。在解码之后,可以将在2D形状A’、B’、C’和D’之外的区域的样本值丢弃。在某些情况下,占用映射用于存储每个像素的一些额外信息,例如存储二进制值来识别像素是属于小片的还是未定义的。
根据本公开的一个方面,动态网格是其至少一个组件(几何信息、连通性信息、映射信息、顶点属性和属性映射)随时间变化的网格。动态网格可以用网格序列(也称为网格帧)来描述。在一些示例中,动态网格中的网格帧可以是在不同时间的对象表面的表示,并且每个网格帧是在特定时间(也称为时间实例)的对象表面的表示。由于动态网格可能包括随时间变化的大量信息,因此动态网格可能需要大量数据。网格的压缩技术可以允许在网格表示中有效地存储和传输媒体内容。
在一些示例中,动态网格可以具有恒定的连通性信息、时变的几何形状和时变的顶点属性。在一些示例中,动态网格可以具有时变的连通性信息。在一个示例中,数字内容创建工具通常生成具有时变的属性映射和时变的连通性信息的动态网格。在一些示例中,体积采集技术用于生成动态网格。体积采集技术可以生成具有时变的连通性信息的动态网格,特别是在实时约束下。
根据本公开的一些方面,上述PCC(例如G-PCC、V-PCC)编码器和解码器可用于网格压缩的框架中,例如静态网格压缩、动态网格压缩、具有恒定的连通性信息的动态网格的压缩、具有时变的连通性信息的动态网格的压缩、具有时变的属性映射的动态网格的压缩等。
图10示出了根据本公开的一些实施例的用于网格压缩的框架(1000)的示意图。框架(1000)包括网格编码器(1010)和网格解码器(1050)。网格编码器(1010)将输入网格(1005)(在动态网格的情况下为网格帧)编码成比特流(1045),而网格解码器(1050)解码比特流(1045)以生成重构网格(1095)(在动态网格的情况下为网格帧)。
网格编码器(1010)可以是任何合适的设备,例如计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。网格解码器(1050)可以是任何合适的设备,例如计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(1045)可以经由网络(未示出)从网格编码器(1010)传输到网格解码器(1050)。
在图10的示例中,网格编码器(1010)包括预处理模块(1011)和多个编码器,例如PCC编码器(1040)、视频编码器(1041)、属性编码器(1042)等。
预处理模块(1011)被配置为将输入网格(1005)转换成具有由多个编码器进行编码的多个部分的合适的中间数据。在一个示例中,预处理模块(1011)可以将输入网格(1005)转换为包括3D栅格上的等尺寸块的集合的立体像素化的网格。立体像素化的网格可以维持关于体积和连通性的信息。
在一个示例中,可以将输入网格(1005)的信息转换成顶点(1021)、纹理映射(1022)和其他属性(1023)。顶点(1021)可以包括顶点的几何信息,例如描述顶点位置的(x,y,z)坐标。顶点(1021)还可以包括顶点属性,例如法线、颜色反射率等。纹理映射(1022)(在一些示例中也称为属性映射)是与网格表面关联的属性。在一些示例中,用于网格帧序列的纹理映射(1022)可以形成视频序列。其他属性(1023)可以包括不能由PCC编码器编码的属性。在一些示例中,其他属性(1023)包括映射信息,例如3D坐标(例如,(x,y,z))与2D坐标(例如,UV坐标(u,v))之间的映射。
根据本公开的一个方面,可以将顶点(1021)视为点云,并且可以由PCC编码器(1040)编码。PCC编码器(1040)可以是任何合适的PCC编码器,例如V-PCC编码器、G-PCC编码器等。需要注意的是,顶点属性(与顶点关联的属性),例如法线、颜色、反射率等,可以由PCC编码器(1040)编码。
可以将纹理映射(1022)视为视频序列,并且可以由视频编码器(1041)编码。在一些示例中,纹理映射(1022)可以不同于输入网格(1005)中的原始纹理映射。纹理映射(1022)可以通过任何合适的算法来生成。
不能由PCC编码器(1040)和视频编码器(1041)编码的其他属性(1023)可以由属性编码器(1042)编码。属性编码器(1042)可以用适于对其他属性(1023)进行编码的任何其他属性编码技术来实现。例如,其他属性(1023)包括UV坐标(u,v),且属性编码器(1042)被配置为对UV坐标(u,v)进行编码。
在图10的示例中,将来自PCC编码器(1040)、视频编码器(1041)和属性编码器(1042)的编码输出混合(例如,多路复用)到携带针对输入网格(1005)的编码网格的比特流(1045)中。
在图10的示例中,网格解码器(1050)可以将比特流(1045)解多路复用成要分别由多个解码器解码的部分,该多个解码器为例如PCC解码器(1060)、视频解码器(1061)和属性解码器(1062)。
在一个示例中,PCC解码器(1060)对应PCC编码器(1040),并且可以解码由PCC编码器(1040)编码的比特流(1045)的一部分。PCC解码器(1060)可以生成具有作为网格顶点的点的点云(1065)。
连通性生成模块(1070)可以从点云(1065)中的解码的点(网格上下文中的顶点)估计连通性信息(1075)(也称为拓扑)。需要注意的是,连通性生成模块(1070)可以使用任何合适的算法来估计顶点的连通性信息。
在图10的示例中,将点云(1065)和连通性信息(1075)提供给网格重构模块(1080)。
在一个示例中,视频解码器(1061)对应于视频编码器(1041),并且可以解码由视频编码器(1041)编码的比特流(1045)的一部分。视频解码器(1061)可以生成解码的纹理映射(1066)。将解码的纹理映射(1066)提供给网格重构模块(1080)。
在一个示例中,属性解码器(1062)对应属性编码器(1042),并且可以解码由属性编码器(1042)编码的比特流(1045)的一部分。属性解码器(1062)可以生成解码的属性(1067)。将解码的属性(1067)提供给网格重构模块(1080)。
网格重构模块(1080)接收点云(1065)、连通性信息(1075)、解码的纹理映射(1066)和解码的属性(1067),并相应地生成重构网格(1095)。例如,来自PCC解码器(1060)的点云(1065)可以为重构网格(1095)的重构提供顶点的几何信息和顶点属性;由连通性生成模块(1070)确定的连通性信息(1075)可以为重构网格(1095)的重构提供连通性信息;解码的纹理映射(1066)可以为重构网格(1095)的重构提供纹理映射,而解码的属性(1067)可以为重构网格(1095)的重构提供其他属性。
需要注意的是,网格编码器(1010)中的组件,例如预处理模块(1011)、PCC编码器(1040)、视频编码器(1041)和属性编码器(1042)可以通过各种技术分别实现。在一个示例中,组件由集成电路实现。在另一示例中,使用可由一个或多个处理器执行的软件来实现组件。
需要注意的是,网格解码器(1050)中的组件,例如PCC解码器(1060)、连通性生成模块(1070)、网格重构模块(1080)、视频解码器(1061)、属性解码器(1062)可以通过各种技术分别实现。在一个示例中,组件由集成电路实现。在另一示例中,使用可由一个或多个处理器执行的软件来实现组件。
图11示出了根据本公开的一些实施例的用于网格压缩的框架(1100)的图。框架(1100)包括网格编码器(1110)和网格解码器(1150)。网格编码器(1110)将输入网格(1105)(在动态网格的情况下为网格帧)编码成比特流(1145),而网格解码器(1150)解码比特流(1145)以生成重构网格(1195)(在动态网格的情况下为网格帧)。
网格编码器(1110)可以是任何合适的设备,例如计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。网格解码器(1150)可以是任何合适的设备,例如计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(945)可以经由网络(未示出)从网格编码器(1110)传输到网格解码器(1150)。
在图11的示例中,网格编码器(1110)包括预处理模块(1111)和多个编码器,例如PCC编码器(1140)、视频编码器(1141)、属性编码器(1142)、连通性编码器(1144)等。此外,网格编码器包括PCC解码器(1130)和连通性生成模块(1131)。
预处理模块(1111)被配置为将输入网格(1105)转换为具有由多个编码器进行编码的多个部分的合适的中间数据。在一个示例中,预处理模块(1111)可以将输入网格(1105)转换为包括3D栅格上的等尺寸块的集合的立体像素化网格。立体像素化的网格可以维持关于体积和连通性的信息。
在一个示例中,可以将输入网格(1105)的信息转换成顶点(1021)、连通性信息(1124)、纹理映射(1122)和其他属性(1123)。顶点(1121)可以包括顶点的几何信息,例如描述顶点位置的(x,y,z)坐标。顶点(1121)还可以包括顶点属性,例如法线、颜色反射率等。连通性信息(1124)(在一些示例中也称为拓扑)包括输入网格(1105)的连通性信息。纹理映射(1122)(在一些示例中也称为属性映射)是与网格表面关联的属性,并且纹理映射(1122)可以是视频序列。其他属性(1123)可以包括不能由PCC编码器(1140)和视频编码器(1141)编码的属性。在一些示例中,其他属性(1123)包括映射信息,例如3D坐标(例如,(x,y,z))与2D坐标(例如,UV坐标(u,v))之间的映射等。
根据本公开的一个方面,顶点(1121)可以被视为点云,并且可以由PCC编码器(1140)编码。PCC编码器(1140)可以是任何合适的PCC编码器,例如V-PCC编码器、G-PCC编码器等。需要注意的是,顶点属性(与顶点关联的属性),例如法线、颜色、反射率等,可以由PCC编码器(1140)编码。
根据本公开的一个方面,连通性编码器(1144)可以直接对连通性信息(1124)进行编码。
根据本公开的另一方面,连通性编码器(1144)被配置为对连通性信息(1124)(也称为原始连通性信息)和估计的连通性信息(1134)之间的连通性差进行编码。在图11的示例中,网格编码器(1100)包括PCC解码器(1130)和连通性生成模块(1131),以生成估计的连通性信息(1134)。在一个示例中,PCC解码器(1130)对应PCC编码器(1140)。PCC解码器(1130)可以解码由PCC编码器(1140)编码的信息。PCC解码器(1130)可以接收编码的点云的副本(1132),并生成具有作为网格顶点的点的点云(1133)。
连通性生成模块(1131)可以从点云(1133)中的解码点(网格上下文中的顶点)生成估计的连通性信息(1134)。连通性生成模块(1131)可以通过任何合适的算法来估计和生成估计的连通性信息(1134)。连通性编码器(1144)接收原始的连通性信息(1124)和估计的连通性信息(1134),并在比特流(1145)中编码估计的连通性信息(1134)和原始的连通性信息(1124)之间的差。
纹理映射(1122)可以被视为视频序列,并且可以由视频编码器(1141)编码。在一些示例中,纹理映射(1122)可以不同于输入网格(1105)中的原始纹理映射。纹理映射(1122)可以通过任何合适的算法来生成。
不能由PCC编码器(1140)和视频编码器(1141)编码的其他属性(1123)可以由属性编码器(1142)编码。属性编码器(1142)可以用适于对其他属性(1123)进行编码的任何其他属性编码技术来实现。例如,其他属性(1123)包括3D坐标到UV坐标的映射信息,且属性编码器(1142)被配置为对映射信息进行编码。
在图11的示例中,将来自PCC编码器(1140)、视频编码器(1141)和属性编码器(1142)的编码输出混合(例如,多路复用)到携带对应于输入网格(1105)的编码网格的比特流(1145)中。
在图11的示例中,网格解码器(1150)可以将比特流(1145)解多路复用成要分别由多个解码器解码的部分,该多个解码器为例如PCC解码器(1160)、连通性解码器(1164)、视频解码器(1161)和属性解码器(1162)。
在一个示例中,PCC解码器(1160)对应PCC编码器(1140),并且可以解码由PCC编码器(1140)编码的比特流(1145)的一部分。PCC解码器(1160)可以生成具有作为网格顶点的点的点云(1165)。
在一些示例中,连通性生成模块(1170)可以从点云(1165)中的解码点(网格上下文中的顶点)估计连通性(拓扑),并输出估计的连通性信息(1175)。需要注意的是,连通性生成模块(1170)可以使用任何合适的算法来确定顶点的估计的连通性信息(1175)。
在图11的示例中,将解码的点云(1165)提供给网格重构模块(1180)。将估计的连通性信息(1175)提供给连通性解码器(1164)。
连通性解码器(1164)对应连通性编码器(1144),并且可以对由连通性编码器(1144)编码的比特流(1145)的一部分进行解码。在一个示例中,连通性编码器(1144)直接对连通性信息进行编码,然后连通性解码器(1164)可以对连通性信息进行解码并生成解码后的连通性信息(1168),并将解码后的连通性信息(1168)提供给网格重构模块(1180)。在另一示例中,连通性编码器(1144)对连通性差进行编码,然后连通性解码器(1164)可以对连通性差进行解码,并且可以将连通性差与估计的连通性信息(1175)组合并输出解码的连通性信息(1168)。可以将解码的连通性信息(1168)提供给网格重构模块(1180)。
根据本公开的一方面,PCC解码器(1130)和PCC解码器(1160)可以使用相同的解码算法。此外,连通性生成模块(1131)和连通性生成模块(1170)可以使用相同的连通性估计算法。
在一个示例中,视频解码器(1161)对应视频编码器(1141),并且可以解码由视频编码器(1141)编码的比特流(1145)的一部分。视频解码器(1161)可以生成解码的纹理映射(1166)。将解码的纹理映射(1166)提供给网格重构模块(1180)。
在一个示例中,属性解码器(1162)对应属性编码器(1142),并且可以解码由属性编码器(1142)编码的比特流(1145)的一部分。属性解码器(1162)可以生成解码的属性(1167)。将解码的属性(1167)提供给网格重构模块(1180)。
网格重构模块(1180)接收解码的点云(1165)、解码的连通性信息(1168)、解码的纹理映射(1166)和解码的属性(1167),并相应地生成重构网格(1195)。例如,来自PCC解码器(1160)的解码点可以为重构网格(1195)的重构提供顶点的几何信息和顶点属性;由连通性解码器(1164)确定的经解码的连通性信息(1168)可以为重构网格(1195)的重构提供连通性信息;解码的纹理映射(1166)可以为重构网格(1195)的重构提供纹理映射,而解码的属性(1167)可以为重构网格(1195)的重构提供其他属性。
需要注意的是,网格编码器(1110)中的组件,例如预处理模块(1111)、PCC编码器(1140)、视频编码器(1141)、属性编码器(1142)、PCC解码器(1130)、连通性生成模块(1131)、连通性编码器(1144)可以通过各种技术分别实现。在一个示例中,组件由集成电路实现。在另一示例中,使用可由一个或多个处理器执行的软件来实现组件。
需要注意的是,网格解码器(1150)中的组件,例如PCC解码器(1160)、连通性生成模块(1170)、网格重构模块(1180)、视频解码器(1161)、属性解码器(1162)、连通性解码器(1164)可以通过各种技术分别实现。在一个示例中,组件由集成电路实现。在另一示例中,使用可由一个或多个处理器执行的软件来实现组件。
在一些示例中,诸如输入网格(1005)、输入网格(1105)的输入网格以包括顶点的3D坐标(几何信息)、顶点的UV坐标(映射信息)、由顶点(连通性信息)形成的面(多边形,例如三角形等)和纹理映射的形式提供。在一些示例中,可以将可以包括跟踪、重新网格化、参数化、立体像素化等的一系列操作应用于输入网格(1005),以将输入网格转换成另一种形式,例如具有UV图集的网格,例如UV图集(920)。在一些示例中,输入网格(1005)是具有UV图集的网格的形式。
根据本公开的一个方面,可以将输入网格的顶点视为点云,并且可以由任何合适的PCC编码器编码。在一些示例中,与顶点关联的属性,例如法线、颜色、反射率等,也可以由PCC编码器编码。
在一些实施例中,例如图10所示,连通性信息(拓扑)可以通过表面重构算法在解码的顶点上估计,并且不被显式地编码成比特流,例如比特流(1045)。
在一些实施例中,例如图11所示,可以将连通性信息编码到携带压缩网格的比特流中。在一些示例中,将连通性信息直接编码到比特流中。在一些示例中,可以将估计的连通性和原始连通性之间的差编码到比特流中。
根据本公开的一些方面,将连通性信息部分编码到比特流中。例如,对某些顶点(例如密集顶点)的连通性进行编码,以避免重构表面中的大量失真。
在一些示例中,编码连通性的标准可以基于空间特征。在一个实施例中,可以将诸如平均曲率或主曲率的曲率大于给定阈值的顶点的连通性编码到比特流中。在另一实施例中,顶点/面法线的方差或分布可用于选择针对连通性编码的顶点。
根据本公开的一个方面,纹理映射可以被转换为视频序列,并且可以由任何视频编码器编码。在一些示例中,将要编码的纹理映射可以不同于原始纹理映射(在输入网格中),任何合适的算法都可以用于生成不同的纹理映射。
在一些示例中,可以从UV图集中的顶点估计连通性。在一些示例中,UV图集包括多个图表(也称为2D形状、UV小片),每个图表对应于网格的子集。在一些示例中,为了基于UV图集中的顶点估计连通性,估计的连通性可以连接UV图集的不同图表中的顶点。在一个示例中,不同图表的边界顶点可以连接到原始输入网格中不存在的假面。
本公开的一些方面提供了响应于假面而转换纹理映射的技术。在一些示例中,转换纹理映射以添加连接不同图表的假面,并且假面的纹理基于假面的顶点来确定。在一个示例中,通过在假面的顶点上插值颜色来确定假面内的颜色。
在一些示例中,响应于连接不同图表的假面,可以检测连接不同图表的边(称为假边),然后可以移除假边或用连接同一图表中顶点的边替换假边。在一些示例中,在编码器侧,编码器可以检测连接不同图表中的顶点的假边,并将假边编码,例如作为比特流中的其他属性。例如,假边信息可以由诸如属性编码器(1042)、属性编码器(1142)等的属性编码器编码成携带压缩网格的比特流(例如,比特流(1045)、比特流(1145))。然后,在解码器侧,解码器可以解码假边信息,并移除假边或用连接同一图表中顶点的边替换假边。
图12示出了图示在一些示例中的处理假边的技术的图。图12示出了原始网格的图(1210)。原始网格包括第一图表和第二图表。第一图表包括第一三角形(v1,v2,v3),第二图表包括第二三角形(v1,v3,v4)。
在一个示例中,连通性估计算法用于基于顶点估计连通性。图12示出了具有估计的连通性的图(1220)。通过连通性估计算法根据顶点生成估计的连通性。估计的连通性由第三三角形(v1、v2、v4)和第四三角形(v2、v3、v4)示出。第三三角形(v1,v2,v4)和第四三角形(v2,v3,v4)是假三角形,并包括连接两个不同图表上顶点的边。假三角形会使转换两个假面上的纹理映射变得困难。
在一个示例中,可以检测连接两个不同图表中顶点的边(v2,v4)。因为边(v2,v4)连接两个不同图表中的顶点,所以边(v2,v4)穿过两个图表的边界,因此边(v1,v3)是边界边。在一个示例中,从编码器侧发信号通知假边(v2,v4)。在解码器侧,解码器可以用边界边(v1,v3)替换假边(x2,v4),以恢复原始连通性。图12示出了具有恢复的连通性的图(1230)。移除假边(x2,v4),并且将边界边(v1,v3)添加到恢复的连通性中。
需要注意的是,可能不能由PCC编码器编码的任何其他属性可以例如由属性编码器(1042)、属性编码器(1142)等通过其他属性编码器方法编码。
如图10和图11所示,解码器侧可以包括多个解码器,例如PCC解码器、视频解码器、连通性解码器、属性解码器等,以分别解码比特流(例如,比特流(1045)、比特流(1145))的不同部分。
在一些示例中,PCC解码器可以解码对应于编码的PCC的部分,并生成解码的点云。
在一些示例中,完全没有将连通性编码到比特流中,因此,连通性可以从解码的点估计,例如通过图10中的连通性生成模块(1070)进行估计。
在一些示例中,将连通性直接编码到比特流中,并且在一个示例中,连通性可以直接从比特流导出。
在一些示例中,通过对原始连通性和估计的连通性之间的差进行编码来对连通性进行编码。因此,在一个示例中,通过用解码的差来调整估计的连通性以恢复连通性。
本公开的一些方面还提供了当将部分连通性编码到比特流中时,恢复完整的连通性的技术。例如,发信令通知的部分连通性直接从解码器侧的比特流中导出,而完整的连通性中的其余部分可以在解码器侧进行估计。
在一个示例中,基于从比特流中导出的部分连通性,可以通过在连接的多边形上插值来生成额外的采样点以增加顶点密度,然后通过表面重构来估计所有点(包括采样点和解码点)的连通性。
在一些示例中,纹理映射可以由视频解码器解码,而其他属性可以由属性解码器解码。解码后的纹理映射和其他属性可用于重构具有映射和其他属性的最终网格。
在一些示例中,发信令通知连接不同图表的假边。可以将假边解码,然后可以用从发信令通知的假边推导出来的边界边替换假边。这可以相应地改变估计的连通性。
图13示出了概述根据本公开的实施例的处理(1300)的流程图。处理(1300)可以在网格的编码处理期间使用。在各种实施例中,处理(1300)由处理电路执行。在一些实施例中,处理(1300)用软件指令实现,由此当处理电路执行该软件指令时,该处理电路执行处理(1300)。该处理从(S1301)开始,并进行到(S1310)。
在(S1310),从3D网格帧生成点云中的点。3D网格帧用多边形表示对象的表面。在一些示例中,点对应3D网格帧的顶点。
在(S1320),确定3D网格帧的第一连通性信息。第一连通性信息不同于3D网格帧的原始连通性信息。
在(S1330),使用点云编码器将点云编码成比特流。
在(S1340),将第一连通性信息编码到比特流中。
在一些示例中,第一连通性信息是原始连通性信息中的部分连通性信息。在一个示例中,第一连通性信息包括3D网格帧的第一区域中的第一多个顶点的连通性,原始连通性信息包括3D网格帧的第一区域中的第一多个顶点的连通性以及3D网格帧的第二区域中的第二多个顶点的连通性,第一区域相比第二区域具有更高的顶点密度。例如,可以识别顶点密度高于阈值的区域,并可以提取该区域中顶点的连通性并将其编码到比特流中。
在另一示例中,第一连通性信息包括第一区域中的第一多个顶点的连通性,第一区域的曲率参数大于阈值。例如,可以检测具有大于阈值的平均曲率或主曲率的区域,并可以提取该区域中顶点的连通性并将其编码到比特流中。
在另一示例中,第一连通性信息包括第一区域中的第一多个顶点的连通性,第一区域中的法线值满足要求。例如,可以检测具有满足要求的顶点法线或面法线的方差或分布的区域,并可以提取该区域中顶点的连通性并将其编码到比特流中。
在另一示例中,这些点可以是3D网格帧中的顶点的一部分。例如,3D网格帧的一些部分,例如大平面等,可以由减少的顶点数量来表示,而不会引入失真。减少的顶点数量可以包括在点云的点中。3D网格帧包括除点云中的点之外的一个或多个附加点。第一连通性信息包括由点云中的点形成的第一多边形的第一连通性。
在一些示例中,根据点云中的点推断3D网格帧的第二连通性信息。在一些示例中,第二连通性信息可以包括一个或多个假边。在一个示例中,根据第二连通性信息,检测具有连接第一图表(例如,小片)中的第一顶点和第二图表(例如,小片)中的第二顶点的第一边的多边形。第一边是假边。在一些示例中,可以响应于对假边的检测来调整纹理映射。例如,通过基于至少第一顶点的第一颜色和第二顶点的第二颜色的插值来确定多边形内的点的颜色。然后,调整纹理映射以包括多边形内具有颜色的点。在一个示例中,将调整后的纹理映射编码到比特流中。
在一些示例中,根据点云中的点推断3D网格帧的第二连通性信息。将第一连通性信息确定为3D网格帧的原始连通性和3D网格帧的第二连通性信息之间的差。
在一些示例中,第一连通性信息包括推断的连通性信息中的假边。例如,第一连通性信息包括连接第一顶点和第二顶点的第一边,以指示第一边是连接两个不同图表的假边。在一个示例中,第一连通性信息可以由连通性编码器(例如,连通性编码器(1144)等)编码到比特流中。在另一示例中,第一连通性信息可以由其他合适的属性编码器(例如,属性编码器(1042)、属性编码器(1142)等)编码。
然后,处理进行到(S1399)并终止。
可以适当地调整处理(1300)。可以修改和/或省略处理(1300)中的一个或多个步骤。可以添加额外的步骤。可以使用任何合适的实现顺序。
图14示出了概述根据本公开的实施例的处理(1400)的流程图。处理(1400)可以在针对网格帧的网格序列的解码过程中使用。在各种实施例中,处理(1400)由处理电路执行。在一些实施例中,处理(1400)用软件指令实现,由此当处理电路执行该软件指令时,该处理电路执行处理(1400)。该处理从(S1401)开始,并进行到(S1410)。
在(S1410),使用点云压缩(PCC)解码器从比特流解码点云。点云包括与三维(3D)网格帧中的顶点相对应的第一点。3D网格帧用多边形表示对象的表面。
在(S1420),从比特流解码3D网格帧的第一连通性信息。已经在比特流中用信令通知第一连通性信息。
在(S1430),从点云的点推断3D网格帧的第二连通性信息。未在比特流中用信令通知第二连通性信息。
在(S1440),基于点云、第一连通性信息和第二连通性信息重构3D网格帧。
在一些示例中,第一连通性信息包括3D网格帧的第一区域中的第一多个顶点的连通性,第二连通性信息包括3D网格帧的第二区域中的第二多个顶点的连通性,第一区域相比第二区域具有更高的顶点密度。
在一些示例中,第一连通性信息包括第一区域中的第一多个顶点的连通性,第一区域的曲率参数大于阈值。
在一些示例中,第一连通性信息包括第一区域中的第一多个顶点的连通性,第一区域中的法线值满足要求。
在一些示例中,第一连通性信息包括所述3D网格帧的第一多边形的第一连通性,然后通过插值确定第一多边形内的一个或多个附加采样点。然后推断所有点(点云的第一点和一个或多个附加采样点)之间的连接的第二连通性信息。
在一些示例中,第二连通性信息包括具有连接第一图表中的第一顶点和第二图表中的第二顶点的第一边的多边形,然后通过基于至少所述第一顶点的第一颜色和所述第二顶点的第二颜色的插值来确定所述多边形内的点的颜色。
在一些示例中,第一连通性信息是3D网格帧的原始连通性与3D网格帧的推断的连通性之间的连通性差。将第一连通性信息与第二连通性信息组合,以生成3D网格帧的恢复连通性信息。基于点云和恢复的3D网格帧的连通性信息来重构3D网格帧。
在一些示例中,第一连通性信息包括假边信息,例如包括连接第一顶点和第二顶点的第一边,以指示第一边是连接两个不同图表(小片)的假边。然后,确定与第一边交叉的图表边界边。将第一边替换为第二连通性信息中的图表边界边。
然后,处理进行到(S1499)并终止。
可以适当地调整处理(1400)。可以修改和/或省略处理(1400)中的一个或多个步骤。可以添加额外的步骤。可以使用任何合适的实现顺序。
本公开中公开的技术可以单独使用或以任意顺序组合使用。此外,技术(例如,方法、实施例)、编码器和解码器中的每一个都可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,一个或多个处理器执行存储在非暂态计算机可读介质中的程序。
上述描述的技术可以使用计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图15示出了适用于实现所公开主题的某些实施例的计算机系统(1500)。
可使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,指令可由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行,或者通过解释、微代码执行等执行。
指令可以在各种类型的计算机或其组件上执行,计算机或其组件包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图15所示的计算机系统(1500)的组件本质上是示例性的,并不旨在对实施本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应解释为具有与计算机系统(1500)的示例性实施例中所示的组件中的任何一个组件或组件的组合相关的任何依赖或要求。
计算机系统(1500)可包括某些人机接口输入设备。此类人机接口输入设备可响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口设备还可用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止图像相机获取的拍摄图像)、视频(例如,二维视频、包括立体视频的三维视频)。
人机接口输入设备可包括下述的一项或多项(每种中仅示出一个):键盘(1501)、鼠标(1502)、触控板(1503)、触摸屏(1510)、数据手套(未示出)、操纵杆(1505)、麦克风(1506)、扫描仪(1507)、相机(1508)。
计算机系统(1500)还可包括某些人机接口输出设备。此类人机接口输出设备可通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出设备可包括触觉输出设备(例如,触摸屏(1510)的触觉反馈、数据手套(未示出)或操纵杆(1505),但还可以是不作为输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(1509)、耳机(未描绘))、视觉输出设备(例如,包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(1510),每种屏幕具有或没有触摸屏输入功能,每种屏幕具有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。
计算机系统(1500)还可包括人类可访问存储设备及其关联介质,例如包括具有CD/DVD等介质(1521)的CD/DVD ROM/RW(1520)的光学介质、指状驱动器(1522)、可拆卸硬盘驱动器或固态驱动器(1523)、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的设备(未描绘)等。
本领域技术人员还应该理解,结合当前公开的主题所使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。
计算机系统(1500)还可包括通向一个或多个通信网络(1555)的接口(1554)。网络可例如是无线网络、有线网络、光网络。网络可进一步是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线(1549)的外部网络接口适配器(例如,计算机系统(1500)的USB端口);如下所述,其它网络接口通常通过附接到系统总线而集成到计算机系统(1500)的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(1500)可使用这些网络中的任何网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANBus设备的CANBus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上所述,可以在那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口设备、人机可访问的存储设备和网络接口可附接到计算机系统(1500)的内核(1540)。
内核(1540)可包括一个或多个中央处理单元(CPU)(1541)、图形处理单元(GPU)(1542)、现场可编程门区域(FPGA)(1543)形式的专用可编程处理单元、用于某些任务的硬件加速器(1544)、图形适配器(1550)等。这些设备以及只读存储器(ROM)(1545)、随机存取存储器(1546)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(1547)可通过系统总线(1548)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1548),以能够通过附加的CPU、GPU等进行扩展。外围设备可直接附接到内核的系统总线(1548)或通过外围总线(1549)附接到内核的系统总线(1548)。在一个示例中,屏幕(1510)可连接到图形适配器(1550)。外围总线的架构包括PCI、USB等。
CPU(1541)、GPU(1542)、FPGA(1543)和加速器(1544)可执行某些指令,这些指令可组合来构成上述计算机代码。该计算机代码可存储在ROM(1545)或RAM(1546)中。过渡数据可存储在RAM(1546)中,而永久数据可例如存储在内部大容量存储器(1547)中。可通过使用高速缓存来进行通向任何存储设备的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个CPU(1541)、GPU(1542)、大容量存储(1547)、ROM(1545)、RAM(1546)等。
计算机可读介质可以在其上具有执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
作为示例,而非限制,可由一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(1500),特别是内核(1540)的计算机系统提供功能。此类计算机可读介质可以是与如上所介绍的用户可访问的大容量存储相关联的介质,以及某些非暂态内核(1540)的存储器,例如内核内部大容量存储器(1547)或ROM(1545)。实施本公开的各种实施例的软件可存储在此类设备中并由内核(1540)执行。根据特定需要,计算机可读介质可包括一个或多个存储设备或芯片。软件可使得内核(1540),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1546)中的数据结构以及根据由软件定义的处理来修改此类数据结构。附加地或作为替代,可由硬连线或以其它方式体现在电路(例如:加速器(1544))中的逻辑而使得计算机系统提供功能,该电路可替代软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如,集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。
虽然本公开已描述多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。
Claims (20)
1.一种用于网格解压缩的方法,包括:
使用点云压缩PCC解码器从比特流解码点云,所述点云包括与三维3D网格帧中的顶点相对应的第一点,所述3D网格帧用多边形表示对象的表面;
从所述比特流中解码所述3D网格帧的第一连通性信息,所述第一连通性信息在所述比特流中用信令通知;
推断所述3D网格帧的第二连通性信息,所述第二连通性信息未在所述比特流中用信令通知;以及
基于所述点云、所述第一连通性信息和所述第二连通性信息重构所述3D网格帧。
2.根据权利要求1所述的方法,其中,所述第一连通性信息包括所述3D网格帧的第一区域中的第一多个顶点的第一连通性,所述第二连通性信息包括所述3D网格帧的第二区域中的第二多个顶点的第二连通性,所述第一区域相比所述第二区域具有更高的顶点密度。
3.根据权利要求1所述的方法,其中,所述第一连通性信息包括第一区域中的第一多个顶点的连通性,所述第一区域的曲率参数大于阈值。
4.根据权利要求1所述的方法,其中,所述第一连通性信息包括第一区域中的第一多个顶点的连通性,所述第一区域中的法线值满足要求。
5.根据权利要求1所述的方法,其中,所述第一连通性信息包括所述3D网格帧的第一多边形的第一连通性,所述方法还包括:
通过插值确定所述第一多边形内的一个或多个附加采样点;以及
推断所述第一点与所述一个或多个附加采样点之间的连接的所述第二连通性信息。
6.根据权利要求1所述的方法,其中,所述第二连通性信息包括具有连接第一图表中的第一顶点和第二图表中的第二顶点的第一边的多边形,所述方法还包括:
通过基于至少所述第一顶点的第一颜色和所述第二顶点的第二颜色的插值来确定所述多边形内的点的颜色。
7.根据权利要求1所述的方法,其中,所述第一连通性信息包括所述3D网格帧的原始连通性与所述3D网格帧的推断的连通性之间的连通性差,所述方法还包括:
将所述第一连通性信息与所述第二连通性信息组合,以生成所述3D网格帧的恢复连通性信息;以及
基于点云和恢复的3D网格帧的连通性信息来重构3D网格帧。
8.根据权利要求1所述的方法,其中,所述第一连通性信息包括连接第一顶点和第二顶点的第一边,以指示所述第一边是连接两个不同图表的假边,所述方法包括:
确定与所述第一边交叉的图表边界边;以及
将所述第一边替换为所述第二连通性信息中的所述图表边界边。
9.一种用于网格解压缩的装置,包括处理电路,所述处理电路被配置为:
使用点云压缩PCC解码器从比特流解码点云,所述点云包括与三维3D网格帧中的顶点相对应的第一点,所述3D网格帧用多边形表示对象的表面;
从所述比特流中解码所述3D网格帧的第一连通性信息,所述第一连通性信息在所述比特流中用信令通知;
推断所述3D网格帧的第二连通性信息,所述第二连通性信息未在所述比特流中用信令通知;以及
基于所述点云、所述第一连通性信息和所述第二连通性信息重构所述3D网格帧。
10.根据权利要求9所述的装置,其中,所述第一连通性信息包括所述3D网格帧的第一区域中的第一多个顶点的第一连通性,所述第二连通性信息包括所述3D网格帧的第二区域中的第二多个顶点的第二连通性,所述第一区域相比所述第二区域具有更高的顶点密度。
11.根据权利要求9所述的装置,其中,所述第一连通性信息包括第一区域中的第一多个顶点的连通性,所述第一区域的曲率参数大于阈值。
12.根据权利要求9所述的装置,其中,所述第一连通性信息包括第一区域中的第一多个顶点的连通性,所述第一区域中的法线值满足要求。
13.根据权利要求9所述的装置,其中,所述第一连通性信息包括所述3D网格帧的第一多边形的第一连通性,所述处理电路被配置为:
通过插值确定所述第一多边形内的一个或多个附加采样点;以及
推断所述第一点与所述一个或多个附加采样点之间的连接的所述第二连通性信息。
14.根据权利要求9所述的装置,其中,所述第二连通性信息包括具有连接第一图表中的第一顶点和第二图表中的第二顶点的第一边的多边形,所述处理电路被配置为:
通过基于至少所述第一顶点的第一颜色和所述第二顶点的第二颜色的插值来确定所述多边形内的点的颜色。
15.根据权利要求9所述的装置,其中,所述第一连通性信息包括所述3D网格帧的原始连通性与所述3D网格帧的推断的连通性之间的连通性差,所述处理电路被配置为:
将所述第一连通性信息与所述第二连通性信息组合,以生成所述3D网格帧的恢复连通性信息;以及
基于点云和恢复的3D网格帧的连通性信息来重构3D网格帧。
16.根据权利要求9所述的装置,其中,所述第一连通性信息包括连接第一顶点和第二顶点的第一边,以指示所述第一边是连接两个不同图表的假边,所述处理电路被配置为:
确定与所述第一边交叉的图表边界边;以及
将所述第一边替换为所述第二连通性信息中的所述图表边界边。
17.一种存储指令的非暂态计算机可读存储介质,所述指令在由至少一个处理器执行时使所述至少一个处理器执行:
使用点云压缩PCC解码器从比特流解码点云,所述点云包括与三维3D网格帧中的顶点相对应的第一点,所述3D网格帧表示多边形对象的表面;
从所述比特流中解码所述3D网格帧的第一连通性信息,所述第一连通性信息在所述比特流中用信令通知;
推断所述3D网格帧的第二连通性信息,所述第二连通性信息未在所述比特流中用信令通知;以及
基于所述点云、所述第一连通性信息和所述第二连通性信息重构所述3D网格帧。
18.根据权利要求17所述的非暂态计算机可读存储介质,其中,所述第二连通性信息包括具有连接第一图表中的第一顶点和第二图表中的第二顶点的第一边的多边形,所述指令使所述至少一个处理器执行:
通过基于至少所述第一顶点的第一颜色和所述第二顶点的第二颜色的插值来确定所述多边形内的点的颜色。
19.根据权利要求17所述的非暂态计算机可读存储介质,其中,所述第一连通性信息包括所述3D网格帧的原始连通性与所述3D网格帧的推断的连通性之间的连通性差,所述指令使所述至少一个处理器执行:
将所述第一连通性信息与所述第二连通性信息组合,以生成所述3D网格帧的恢复连通性信息;以及
基于点云和恢复的3D网格帧的连通性信息重构3D网格帧。
20.根据权利要求17所述的非暂态计算机可读存储介质,其中,所述第一连通性信息包括连接第一顶点和第二顶点的第一边,以指示所述第一边是连接两个不同图表的假边,所述指令使所述至少一个处理器执行:
确定与所述第一边交叉的图表边界边;以及
将所述第一边替换为所述第二连通性信息中的所述图表边界边。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163285967P | 2021-12-03 | 2021-12-03 | |
US63/285,967 | 2021-12-03 | ||
US17/962,201 US20230177738A1 (en) | 2021-12-03 | 2022-10-07 | Dynamic mesh compression based on point cloud compression |
US17/962,201 | 2022-10-07 | ||
PCT/US2022/077890 WO2023102285A1 (en) | 2021-12-03 | 2022-10-11 | Dynamic mesh compression based on point cloud compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116888631A true CN116888631A (zh) | 2023-10-13 |
Family
ID=86607828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280012353.6A Pending CN116888631A (zh) | 2021-12-03 | 2022-10-11 | 基于点云压缩的动态网格压缩 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230177738A1 (zh) |
JP (1) | JP2024509605A (zh) |
KR (1) | KR20230127319A (zh) |
CN (1) | CN116888631A (zh) |
WO (1) | WO2023102285A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10694210B2 (en) * | 2016-05-28 | 2020-06-23 | Microsoft Technology Licensing, Llc | Scalable point cloud compression with transform, and corresponding decompression |
US11393132B2 (en) * | 2019-03-07 | 2022-07-19 | Samsung Electronics Co., Ltd. | Mesh compression |
KR102292195B1 (ko) * | 2019-07-04 | 2021-08-24 | 엘지전자 주식회사 | 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 |
US11450030B2 (en) * | 2019-09-24 | 2022-09-20 | Apple Inc. | Three-dimensional mesh compression using a video encoder |
US11373339B2 (en) * | 2020-03-18 | 2022-06-28 | Sony Group Corporation | Projection-based mesh compression |
US20220164994A1 (en) * | 2020-11-24 | 2022-05-26 | Samsung Electronics Co., Ltd. | Overlapped patches for mesh coding for video based point cloud compression |
-
2022
- 2022-10-07 US US17/962,201 patent/US20230177738A1/en active Pending
- 2022-10-11 KR KR1020237026051A patent/KR20230127319A/ko active Search and Examination
- 2022-10-11 CN CN202280012353.6A patent/CN116888631A/zh active Pending
- 2022-10-11 WO PCT/US2022/077890 patent/WO2023102285A1/en active Application Filing
- 2022-10-11 JP JP2023555698A patent/JP2024509605A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230177738A1 (en) | 2023-06-08 |
KR20230127319A (ko) | 2023-08-31 |
JP2024509605A (ja) | 2024-03-04 |
WO2023102285A1 (en) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230063575A1 (en) | Patch zippering for mesh compression | |
US20230107834A1 (en) | Method and apparatus of adaptive sampling for mesh compression by encoders | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
KR20230148257A (ko) | 지오메트릭과 시맨틱 정보를 사용한 맨해튼 레이아웃 추정 | |
CN116917950A (zh) | 在网格压缩中检查补丁的不交叠属性 | |
JP2024509623A (ja) | メッシュ展開のための方法、装置、およびコンピュータプログラム | |
JP2024515984A (ja) | メッシュ圧縮のための境界ジオメトリ情報の予測コーディング | |
US20230177738A1 (en) | Dynamic mesh compression based on point cloud compression | |
US11967025B2 (en) | Detection of boundary loops in non-manifold meshes | |
US11924434B2 (en) | 2D atlas adaptive sampling in 3D mesh compression | |
US11922664B2 (en) | Method and apparatus of adaptive sampling for mesh compression by decoders | |
US20230014820A1 (en) | Methods and apparatuses for dynamic mesh compression | |
US20230090677A1 (en) | Coding connectivity in vertex reordering methods for mesh compression | |
US20230281876A1 (en) | Mesh compression with constrained geometry dynamic range | |
US20230143284A1 (en) | Vertex connectivity coding for mesh compression | |
CN117461054A (zh) | 具有推导的纹理坐标的网格压缩 | |
CN116324912A (zh) | 用于网格压缩的顶点重新排列 | |
CN116368523A (zh) | Uv坐标编码 | |
CN116686011A (zh) | 基于图表的网格压缩方法和装置 | |
CN117083636A (zh) | 用于网格压缩的边界几何信息的预测编码 |
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 |