CN116686011A - 基于图表的网格压缩方法和装置 - Google Patents
基于图表的网格压缩方法和装置 Download PDFInfo
- Publication number
- CN116686011A CN116686011A CN202280008579.9A CN202280008579A CN116686011A CN 116686011 A CN116686011 A CN 116686011A CN 202280008579 A CN202280008579 A CN 202280008579A CN 116686011 A CN116686011 A CN 116686011A
- Authority
- CN
- China
- Prior art keywords
- graph
- map
- mesh
- vertices
- bitstream
- 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
- 238000000034 method Methods 0.000 title claims abstract description 157
- 230000006835 compression Effects 0.000 title description 57
- 238000007906 compression Methods 0.000 title description 57
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000004044 response Effects 0.000 claims description 15
- 230000006837 decompression Effects 0.000 claims description 12
- 238000005070 sampling Methods 0.000 description 80
- 230000008569 process Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 41
- 230000000875 corresponding effect Effects 0.000 description 28
- 230000003044 adaptive effect Effects 0.000 description 26
- 230000033001 locomotion Effects 0.000 description 20
- 238000013507 mapping Methods 0.000 description 18
- 238000013139 quantization Methods 0.000 description 16
- 239000013598 vector Substances 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 11
- 238000009499 grossing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 7
- 108050005509 3D domains Proteins 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000012856 packing Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 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
- 238000012367 process mapping Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000002596 correlated effect 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
- 230000010339 dilation Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000035807 sensation 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
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开的各方面提供了网格编解码的方法和装置。在一些示例中,一种网格编解码的装置包括处理电路。处理电路接收携带3D网格帧的比特流。3D网格帧用多边形表示对象的表面,多边形由顶点和连接顶点的边定义,3D网格帧被参数化为2D UV图集中的多个2D图表。处理电路根据从比特流解码出的一个或多个索引为多个2D图表确定相应的基于图表的编码模式,并且根据相应的基于图表的编码模式从比特流中至少解码出与多个2D图表各自相关联的几何信息。处理电路根据与多个2D图表各自相关联的相应的几何信息重建3D网格帧。
Description
引用并入
本申请要求于2022年10月12日提交的美国专利申请第17/964,613号“用于基于图表的网格压缩的方法和装置(METHOD AND APPARATUS FOR CHART BASED MESHCOMPRESSION)”的优先权,该美国专利申请要求于2021年12月3日提交的美国临时申请第63/285,905号“用于基于图表的网格压缩的方法和装置(Method and Apparatus forChart Based Mesh Compression)”的优先权。在先申请的公开内容在此全文引入作为参考。
技术领域
本公开描述了总体上涉及网格编解码的实施例。
背景技术
本文中提供的背景描述是为了总体地呈现本公开的上下文。当前署名的发明人的工作,在该背景技术部分中描述的程度而言,以及在提交时可能不构成现有技术的描述的各方面,既不明示地也不暗示地被认为是本公开的现有技术。
各种技术被开发以在三维(3D)空间中捕获和表示世界,诸如世界中的对象、世界中的环境等。世界的3D表示能够实现更沉浸式的交互和通信形式。在一些示例中,点云和网格可以用作世界的3D表示。
发明内容
本公开的各方面提供了一种用于网格编解码(例如,压缩和解压缩)的方法和装置。在一些示例中,一种用于网格编解码的装置包括处理电路。处理电路接收携带三维(3D)网格帧的比特流。3D网格帧用多边形表示对象的表面,多边形由顶点和连接顶点的边定义,3D网格帧被参数化为2D UV图集中的多个二维(2D)图表。顶点被映射到2D UV图集中的2D顶点,2D顶点形成2D UV图集中的多个2D图表。处理电路根据从比特流解码的一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式,并且根据所述相应的基于图表的编码模式从所述比特流中至少解码出与所述多个2D图表各自相关联的几何信息。处理电路根据与多个2D图表相关联的相应的几何信息重建3D网格帧。
在一些实施例中,基于图表的编码模式至少包括基于采样的编码模式、基于重新排序的编码模式和原始图表编码模式。
在一些示例中,响应于多个2D图表中的第一2D图表与基于采样的编码模式相关联,处理电路使用图像解码器和/或视频解码器从所述比特流中解码出第一几何图,并且根据第一几何图确定第一2D图表中的第一顶点的3D坐标和UV坐标。
在一些示例中,响应于多个2D图表中的第二2D图表与基于重新排序的编码模式相关联,处理电路使用图像解码器和/或视频解码器从所述比特流中解码出第二几何图和UV图,根据第二几何图确定第二2D图表中的第二顶点的3D坐标,并且根据UV图确定第二2D图表中的第二顶点的UV坐标。
在一些示例中,处理电路从所述比特流中解码出组合的2D几何图,组合的2D几何图包括第一2D图和第二2D图,其中,所述第一2D图用于基于采样的编码模式的第一2D图表,所述第二2D图用于基于重新排序的编码模式的第二2D图表。处理电路解码第一信号和第二信号,其中,所述第一信号指示所述组合的2D几何图中的所述第一2D图的第一位置,所述第二信号指示所述组合的2D几何图中的所述第二2D图的第二位置。然后,处理电路根据所述基于采样的编码模式,基于位于所述组合的2D几何图中所述第一位置处的所述第一2D图,确定与所述第一2D图表相关联的第一几何信息,并且根据基于重新排序的编码模式,基于位于所述组合的2D几何图中所述第二位置处的所述第二2D图,确定与所述第二2D图表相关联的第二几何信息。
在一些示例中,响应于多个2D图表中的第三2D图表与原始图表编码模式相关联,处理电路不使用图像解码器或视频解码器,从所述比特流中解码出所述第三2D图表中的第三顶点的UV坐标和3D坐标。
在一示例中,处理电路从包括所述3D网格帧的3D网格帧序列的序列头中解码出索引,所述序列头中的所述索引指示用于所述多个2D图表、以及从所述3D网格帧序列中的其它3D网格帧参数化的其它2D图表的基于图表的编码模式。
在另一示例中,处理电路从所述3D网格帧的帧头中解码出索引,所述帧头中的所述索引分别指示所述多个2D图表的基于图表的编码模式。
在另一示例中,处理电路从用于携带所述3D网格帧的第一网格片段的所述比特流的第一部分的第一头中解码出索引,所述第一网格片段被参数化为所述多个2D图表中的一个或多个第一2D图表,所述索引指示分别用于所述一个或多个第一2D图表的基于图表的编码模式。
在一些示例中,处理电路对各个与所述多个2D图表相关联的索引进行解码,所述各索引指示用于所述多个2D图表的相应的基于图表的编码模式。
本公开的各方面还提供了一种存储指令的非易失性计算机可读介质,这些指令在由计算机执行时使得计算机执行用于网格编解码的方法中的任何一种或其组合。
附图说明
从以下详细描述和附图中,所公开的主题的其它特征、性质和各种优点将变得更加明显,其中:
图1示出了一些示例中的通信系统的框图。
图2示出了一些示例中的流式传输系统的框图。
图3示出了一些示例中的用于对点云帧进行编码的编码器的框图。
图4示出了一些示例中的用于对对应于点云帧的压缩比特流进行解码的解码器的框图。
图5示出了一些示例中的视频解码器的框图。
图6示出了一些示例中的视频编码器的框图。
图7示出了一些示例中的用于对点云帧进行编码的编码器的框图。
图8示出了一些示例中的用于对携带点云帧的压缩比特流进行解码的解码器的框图。
图9示出了一些示例中的图示网格到图集的映射的图。
图10示出了一些示例中的图示下采样的图。
图11示出了根据本公开的一些实施例的用于网格压缩的框架的图。
图12示出了一些示例中的自适应采样的图。
图13示出了一些示例中的自适应采样的图。
图14A至图14E示出了一些示例中的使用顶点重新排序进行网格压缩的示例。
图15示出了一些示例中的用于网格压缩的框架的图。
图16A至图16D示出了一些示例中的对网格帧的连接性属性进行编码的示例。
图17示出了示例中的UV参数化过程的图。
图18示出了示例中的UV参数化过程的另一个图。
图19示出了示例中的2D UV图集的图。
图20示出了一些示例中的概述过程示例的流程图。
图21示出了一些示例中的概述过程示例的流程图。
图22是一些示例中的计算机系统的示意图示。
具体实施方式
本公开的各方面提供了三维(3D)媒体处理领域中的技术。
3D媒体处理中的技术发展(诸如3D捕获、3D建模和3D渲染等中的进步)已促进3D媒体内容在若干平台和设备上的普遍存在。在示例中,可以在一个洲中捕获婴儿的第一步,媒体技术可以允许祖父母在另一个洲观看(并可能互动)并享受与婴儿的沉浸式体验。根据本公开的方面,为了改善沉浸式体验,3D模型变得越来越复杂,并且3D模型的创建和消费占用了大量的数据资源,诸如数据存储和数据传输资源。
根据本公开的一些方面,点云和网格可以用作3D模型来表示沉浸式内容。
点云通常可以指3D空间中的一组点,每个点具有相关联的属性,诸如颜色、材料属性、纹理信息、强度属性、反射率属性、运动相关属性、形态属性和各种其它属性。点云可以用于将对象或场景重建为这些点的组合。
对象的网格(也被称为网格模型)可以包括描述对象表面的多边形。每个多边形可以由3D空间中多边形的顶点以及顶点如何连接到多边形中的信息来定义。如何连接顶点的信息被称为连接性信息。在一些示例中,网格还可以包括与顶点相关联的属性,诸如颜色、法线等。
根据本公开的一些方面,用于点云压缩(PCC)的一些编码工具可以用于网格压缩。例如,网格可以被重新网状化以生成新网格,可以推断新网格的连接性信息。新网格的顶点和与新网格的顶点相关联的属性可以被视为点云中的点,并且可以使用PCC编解码器来压缩。
点云可以用于将对象或场景重建为点的组合。这些点可以在各种设置中使用多个相机、深度传感器或激光雷达(Lidar)来捕获,并且可以由数千到数十亿个点组成,以便真实地表示重建的场景或对象。图像块(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)可以包括例如有线(wireline/wired)和/或无线通信网络。网络(150)可以在电路交换信道和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网、因特网等。
图2图示了一些示例中的流式传输系统(200)的框图。流式传输系统(200)是点云的使用应用程序。所公开的主题可以等同地应用于其它支持点云的应用程序,诸如3D远程呈现应用程序、虚拟现实应用程序等。
流式传输系统(200)可以包括捕获子系统(213)。捕获子系统(213)可以包括点云源(201),例如光检测和测距(LIDAR)系统、3D相机、3D扫描仪、在软件中生成未压缩点云的图形生成部件,以及生成例如未压缩点云(202)的类似部件。在示例中,点云(202)包括由3D相机捕获的点。点云(202)被描绘为粗线,以强调与压缩点云(204)(压缩点云的比特流)相比时的高数据量。压缩点云(204)可以由电子设备(220)生成,该电子设备(220)包括被耦合到点云源(201)的编码器(203)。编码器(203)可以包括硬件、软件或其组合,以启用或实现如以下更详细描述的所公开的主题的各方面。压缩点云(204)(或压缩点云(204)的比特流)被描绘为细线,以强调与点云流(202)相比时的较低数据量,压缩点云(204)可以被存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端子系统(诸如图2中的客户端子系统(206)和(208))可以访问流式传输服务器(205)以检索压缩点云(204)的副本(207)和(209)。客户端子系统(206)可以包括例如电子设备(230)中的解码器(210)。解码器(210)对压缩点云的传入副本(207)进行解码,并且创建可以在呈现设备(212)上呈现的重建的点云的传出流(211)。
应注意,电子设备(220)和(230)可以包括其它部件(未示出)。例如,电子设备(220)可以包括解码器(未示出),并且电子设备(230)也可以包括编码器(未示出)。
在一些流式传输系统中,可以根据某些标准来压缩压缩点云(204)、(207)和(209)(例如,压缩点云的比特流)。在一些示例中,在点云的压缩中使用视频编码标准。这些标准的示例包括高效视频编码(HEVC)、通用视频编码(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图像,其像素填充有指示被图像块占用或未被图像块占用的值。
图像块生成模块(306)将点云分割为可以重叠或不重叠的图像块集合(例如,图像块被定义为由点云描述的表面的连续子集),使得每个图像块可以由相对于2D空间中的平面的深度域来描述。在一些实施例中,图像块生成模块(306)旨在将点云分解为具有平滑边界的最小数量的图像块,同时还使重建误差最小化。
在一些示例中,图像块信息模块(304)可以收集指示图像块的大小和形状的图像块信息。在一些示例中,图像块信息可以被打包到图像帧中,然后由辅助图像块信息压缩模块(338)编码以生成压缩辅助图像块信息。
在一些示例中,图像块打包模块(308)被配置为将提取的图像块映射到2维(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)可以对所接收的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等。解析器(520)可以基于对应于该组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素的至少一个子组的子组参数集。子组可以包括图片群组(GOP)、图片、图块、条带、宏块、编码单元(CU)、块、变换单元(TU)、预测单元(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)内的地址可以由运动矢量控制,该运动矢量对于运动补偿预测单元(553)是以符号(521)的形式可用的,符号可以具有例如X、Y和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时从参考图片存储器(557)获取的样本值的内插、运动矢量预测机制等。
聚合器(555)的输出样本可以在环路滤波器单元(556)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,该技术由包括在已编码视频序列(也被称为已编码视频比特流)中的参数控制,并且作为来自解析器(520)的符号(521)可用于环路滤波器单元(556),但是也可以响应于在已编码图片或已编码视频序列的先前(按解码顺序)部分的解码期间获得的元信息,以及响应于先前重建的和环路滤波的样本值。
环路滤波器单元(556)的输出可以是样本流,该样本流可以被输出到呈现设备并被存储在参考图片存储器(557)中,以用于将来的帧间预测。
某些已编码图片一旦被完全地重建,就可以被用作用于将来预测的参考图片。例如,一旦对应于当前图片的已编码图片被完全地重建并且该已编码图片已被识别为参考图片(例如,由解析器(520)),则当前图片缓冲器(558)可以成为参考图片存储器(557)的一部分,并且可以在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可以根据标准(诸如ITU-T Rec.H.265)中的预定的视频压缩技术来执行解码操作。已编码视频序列可以符合由所使用的视频压缩技术或标准指定的语法,在这种意义上,已编码视频序列既符合视频压缩技术或标准的语法,又符合视频压缩技术或标准中记载的简档。具体地,简档可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该简档下可用的唯一工具。合规性还需要已编码视频序列的复杂度在视频压缩技术或标准级定义的范围内。在一些情况下,级限制了最大图片大小、最大帧速率、最大重建采样速率(例如以每秒兆样本测量)、最大参考图片大小等。在一些情况下,通过在已编码视频序列中发信号通知的用于假设参考解码器(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图片的块进行非预测地编码,或者可以参考相同图片的已编码块对它们进行预测地编码(空间预测或帧内预测)。可以参考一个先前已编码参考图片经由空间预测或经由时间预测对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,或32×32像素的4个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)、细节层次(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)可以被配置为接收压缩比特流并执行点云数据解压缩以解压缩该比特流来生成已解码点云数据。在一个实施例中,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)解码器等。
对象的网格(也被称为网格模型、网格帧)可以包括描述对象表面的多边形。每个多边形可以由3D空间中多边形的顶点和将顶点连接到多边形的边来定义。如何连接顶点的信息(例如,边的信息)被称为连接性信息。在一些示例中,对象的网格由描述对象表面的相连的三角形形成。共享边的两个三角形被称为两个相连的三角形。在一些其它示例中,物体的网格由相连的四边形形成。共享边的两个四边形可以被称为两个相连的四边形。应注意,网格可以由其它合适的多边形形成。
在一些示例中,网格还可以包括与顶点相关联的属性,诸如颜色、法线等。通过利用映射信息(映射信息用2D属性图将网格参数化),可以将属性与网格的表面相关联。映射信息通常由与网格顶点相关联的参数坐标(被称为UV坐标或纹理坐标)集来描述。2D属性图(在一些示例中被称为纹理图)用于存储高分辨率属性信息,诸如纹理、法线、位移等。这种信息可以用于各种目的,诸如纹理映射和着色。
在一些实施例中,网格可以包括被称为几何信息、连接性信息、映射信息、顶点属性和属性图的部件。在一些示例中,几何信息由与网格的顶点相关联的一组3D位置来描述。在示例中,(x,y,z)坐标可以用于描述顶点的3D位置,并且也被称为3D坐标。在一些示例中,连接性信息包括描述如何连接顶点以创建3D表面的一组顶点索引。在一些示例中,映射信息描述了如何将网格表面映射到平面的2D区域。在示例中,通过与网格顶点相关联的一组UV参数/纹理坐标(u,v)以及连接性信息描述映射信息。在一些示例中,顶点属性包括与网格顶点相关联的标量或矢量属性值。在一些示例中,属性图包括与网格表面相关联并被存储为2D图像/视频的属性。在示例中,视频(例如,2D图像/视频)与网格表面之间的映射由映射信息来定义。
根据本公开的方面,被称为UV映射或网格参数化的一些技术用于将3D域中的网格的表面映射到2D域。在一些示例中,在3D域中网格被分区成图像块。图像块是具有由边界边形成的边界的网格的连续子集。图像块的边界边是仅属于图像块的一个多边形的边,并且不被图像块中的两个相邻多边形共享。在一些示例中,图像块中的边界边的顶点被称为图像块的边界顶点,并且图像块中的非边界顶点可以被称为图像块的内部顶点。
在一些示例中,对象的网格由相连的三角形形成,并且该网格可以被分区成图像块,每个图像块是相连的三角形的子集。图像块的边界边是仅属于图像块中的一个三角形的边,并且不被图像块中的相邻三角形共享。在一些示例中,图像块中的边界边的顶点被称为图像块的边界顶点,并且图像块中的非边界顶点可以被称为图像块的内部顶点。边界环路包括边界顶点序列,由边界顶点序列形成的边界边可以形成被称为边界环路的环路。
根据本公开的方面,在一些示例中,图像块分别被参数化为2D形状(也被称为UV图像块、或2D图表、或2D图像块)。在一些示例中,可以将2D形状打包(例如,定向和放置)成也被称为2D UV图集的2D图。在一些示例中,可以使用2D图像或视频处理技术来进一步处理2D图。
在示例中,UV映射技术生成对应于3D网格的图像块的2D中的UV图集(也被称为UV图、2D 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坐标。
根据本公开的一些方面,可以使用各种技术(诸如直接编码技术、基于采样的编码技术、基于重新排序的编码技术)来执行网格压缩。
在直接编码技术中,可以将顶点的几何信息(例如,3D坐标、UV坐标等)、属性信息和连接性信息直接编码到比特流中。在一些示例中,可以应用预测编码技术来减少数据冗余。例如,先前已编码值可以用于预测当前值。预测可以来自当前网格帧(也被称为帧内空间预测)或先前帧(也被称为帧间时间预测)。例如,平行四边形预测可以用于从三个先前已编码几何(UV坐标和/或3D坐标)位置预测当前几何位置。在一些示例中,可以通过算术编码对预测残差进行编码。此外,来自先前已编码值的上下文信息可以用于提高编码效率。
在基于采样的编码技术和基于重新排序的编码技术中,可以将3D网格转换为一个或多个2D图(在一些示例中也被称为2D图集),并且然后可以使用图像或视频编解码器对2D图进行编码。将参考图9至图13描述一些基于采样的编码技术,并且将参考图14A至图14E、图15和图16A至图16D描述一些基于重新排序的编码技术。
根据本公开的方面,一些基于采样的技术可以从3D网格生成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域,诸如2D图集(920),也被称为UV图集(920)或图(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)可以是具有几何信息的几何图,或者可以是具有颜色、法线、织物(textile)或其它属性信息的纹理图,或者可以是具有占用信息的占用图。
虽然在图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图集在规则栅格(grid)上被采样以生成具有规则栅格样本的几何图像。可以推断规则栅格样本的连接性。规则栅格样本可以被视为点云中的点,并且因此可以使用PCC编解码器(诸如V-PCC编解码器)来编码。
根据本公开的方面,为了有效地压缩3D网格信息,可以在编码之前对2D图(诸如几何图、纹理图(在一些示例中也被称为属性图)、占用图等)进行下采样。
图10示出了一些示例中的图示下采样的图。在图10中,在水平方向和垂直方向上以因子2对图(1020)进行下采样,并且相应地生成下采样图(1030)。下采样图(1030)的宽度(例如,水平方向上的像素数)是图(1020)的宽度(例如,水平方向上的像素数)的1/2,并且下采样图(1030)的高度(例如,垂直方向上的像素数)是图(1020)的高度(例如,垂直方向上的像素数)的1/2。
在图10中,图(1020)包括2D形状(也被称为UV图像块)A’、B’、C’和D’,并且下采样图(1030)包括分别对应于2D形状A’、B’、C’和D’的采样的2D形状A”、B”、C”和D”。在一些示例中,然后由网格编码器侧的图像或视频编码器对下采样图(1030)进行编码。
在一些示例中,在网格解码器侧,对下采样图进行解码。在对下采样图进行解码之后,下采样图被恢复到原始分辨率(例如,垂直方向上的原始像素数和水平方向上的原始像素数),用于重建3D网格。
通常,动态网格序列需要大量数据,因为动态网格序列可能由随时间变化的大量信息组成。应用于2D图(例如,UV图集、属性图)的采样步骤可以帮助减少表示网格信息所需的带宽。然而,采样步骤还会在下采样期间去除关键信息,诸如3D网格的一些关键几何形状。
在一些示例中,可以使用自适应采样技术来处理2D图集(也被称为2D形式的图)而不丢失太多的重要信息。自适应采样技术可以用于静态网格(一个网格帧或网格内容不随时间改变)压缩和动态网格压缩。各种自适应采样技术可以单独应用或以任何形式组合应用。在以下描述中,将自适应采样方法应用于2D图集(例如,2D形式的图),该2D图集可以是几何图或属性(纹理)图,或两者。
图11示出了根据本公开的一些实施例的用于网格压缩的框架(1100)的图。框架(1100)包括网格编码器(1110)和网格解码器(1150)。网格编码器(1110)接收输入网格(1101)(在动态网格处理的情况下为网格帧),并将输入网格(1101)编码为比特流(1145),并且网格解码器(1150)对比特流(1145)进行解码以生成重建的网格(1195)(在动态网格处理的情况下为重建的网格帧)。
网格编码器(1110)可以是任何合适的设备,诸如计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。网格解码器(1150)可以是任何合适的设备,诸如计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(1145)可以经由任何合适的通信网络(未示出)从网格编码器(1110)传输到网格解码器(1150)。
在图11的示例中,网格编码器(1110)包括耦合在一起的预处理模块(1111)、自适应采样模块(1120)、视频编码器(1130)和辅助数据编码器(1140)。视频编码器(1130)被配置为对图像或视频数据进行编码,诸如用于3D网格的表示中的2D图。
在图11的示例中,预处理模块(1111)被配置为对输入网格(1101)执行适当的操作,以生成具有UV图集(1105)的网格。例如,预处理模块(1111)可以执行包括跟随(tracking)、重新网格化、参数化和体素化的一系列操作。在图11的示例中,这一系列操作可以仅是编码器的,且不是解码过程的一部分。在一些示例中,具有UV图集(1105)的网格包括顶点的3D位置信息、将3D位置信息映射到2D的UV图集,以及其它2D属性图(例如,2D色图等)。
应注意,在一些示例中,输入网格(1101)是具有UV图集的网格的形式,然后预处理模块(1111)可以将输入网格(1101)转发为具有UV图集的网格(1105)。
自适应采样模块(1120)接收具有UV图集的网格(1105)并执行自适应采样以生成自适应采样的图(1125)。在一些示例中,自适应采样模块(1120)可以使用各种技术来检测图中或图的不同区域中的特征,诸如图中的信息密度,且基于特征来确定用于对图或图的不同区域进行采样的不同采样速率。然后,可以根据不同的采样速率对2D图进行采样,以生成自适应采样的图(1125)。自适应采样的图(1125)可以包括几何图(在一些示例中也被称为几何图像)、占用图、其它属性图(例如,色图)等。
视频编码器(1130)可以使用图像编码和/或视频编码技术将自适应采样的图(1125)编码为比特流(1145)。
自适应采样模块(1120)还生成指示用于自适应采样的辅助信息的辅助数据(1127)。辅助数据编码器(1140)接收辅助数据(1127),并将辅助数据(1127)编码到比特流(1145)中。
在本公开中将进一步描述自适应采样模块(1120)和辅助数据编码器(1140)的操作。
在图11的示例中,将比特流(1145)提供给网格解码器(1150)。网格解码器(1150)包括如图11所示的耦合在一起的视频解码器(1160)、辅助数据解码器(1170)和网格重建模块(1190)。在示例中,视频解码器(1160)对应于视频编码器(1130),且可以对由视频编码器(1130)编码的比特流(1145)的一部分进行解码并生成已解码图(1165)。在一些示例中,已解码图(1165)包括已解码UV图、一个或多个已解码属性图等。在一些示例中,已解码图(1165)包括已解码占用图(例如,初始已解码图)。
在图11的示例中,辅助数据解码器(1170)对应于辅助数据编码器(1140),且可以对由辅助数据编码器(1140)编码的比特流(1145)的一部分进行解码并生成已解码辅助数据(1175)。
在图11的示例中,将已解码图(1165)和已解码辅助数据(1175)提供给网格重建模块(1190)。网格重建模块(1190)基于已解码图(1165)和已解码辅助数据(1175)生成重建的网格(1195)。在一些示例中,网格重建模块(1190)可以确定重建的网格(1195)中的顶点和顶点信息,诸如与顶点相关联的相应的3D坐标、UV坐标、颜色等。在本公开中将进一步描述辅助数据解码器(1170)和网格重建模块(1190)的操作。
应注意,网格编码器(1110)中的部件,诸如预处理模块(1111)、自适应采样模块(1120)、视频编码器(1130)和辅助数据编码器(1140)可以分别通过各种技术来实现。在一示例中,部件由集成电路实现。在另一示例中,使用可以由一个或多个处理器执行的软件来实现部件。
应注意,网格解码器(1150)中的部件,诸如视频解码器(1160)、辅助数据解码器(1170)和网格重建模块(1190)可以分别通过各种技术来实现。在一示例中,部件由集成电路实现。在另一示例中,使用可以由一个或多个处理器执行的软件来实现部件。
在一些实施例中,采样自适应可以基于图类型。在一些示例中,自适应采样模块(1120)可以将不同的采样速率应用于不同类型的图。例如,可以将不同的采样速率应用于几何图和属性图。在示例中,网格是用于具有规则形状和丰富纹理的对象的模型。例如,物体具有矩形形状,但是颜色丰富。因此,几何图的信息密度相对较低。在示例中,自适应采样模块(1120)在几何图上(在垂直方向和水平方向上)应用2:1的第一采样速率,并且在纹理图上(在垂直方向和水平方向上)应用1:1的第二采样速率。
在一些示例中,某一方向上的A:B的采样速率指示在该方向上为原始图中的A个像素生成B个样本。例如,水平方向上2:1的采样速率指示在水平方向上为原始图中的每两个像素生成1个样本。垂直方向上2:1的采样速率指示在垂直方向上为原始图中的每两个像素生成1个样本。
在一些示例中,使用术语采样步长。某一方向上的采样步长指示在该方向上两个相邻采样位置之间的像素数。例如,水平方向上的采样步长为二,指示在水平方向上相邻采样位置之间为两个像素;垂直方向上的采样步长为二,指示在垂直方向上相邻采样位置之间为两个像素。应注意,在本公开中,采样速率等同于采样步长。例如,采样速率为2(例如,2:1)等同于相邻采样位置之间为两个像素。
在一些实施例中,采样自适应基于图中的子区域。图的不同部分上可以应用不同的采样速率。在一些示例中,一些像素行具有较少的待保存信息,则可以沿着这些行应用较大的采样速率,从而产生较少数量的待编码样本行。在一些示例中,一些像素列具有较少的待保存信息,则可以沿着这些列应用较大的取样率,从而产生较少数量的待编码样本列。对于其它区域,应用较小的采样速率以在采样之后保持信息损失最小。
图12示出了一些示例中的自适应采样的图。将图(1220)划分成若干块行,每个块行包括固定数量的样本(像素)行。在垂直方向上对块行应用不同的采样速率以生成自适应采样的图(1230)。例如,每个块行是CTU行(也被称为CTU线)并且包括64行样本(也被称为像素)。在图12的示例中,对于图(1220)中的块行0和块行6,在垂直方向上应用2:1的第一采样速率,在采样之后,自适应采样的图(1230)中的块行0和块行6各产生32行样本。对于图(1220)中的块行1至块行5,在垂直方向上应用1:1的第二采样速率,从而为自适应采样的图(1230)中的块行1至块行5各产生64行样本。
应注意,将1:1的采样速率应用于图12中的水平方向。
在一些示例中,自适应采样的图(1230)然后由诸如视频编码器(1130)的图像或视频编码器编码。在解码器侧,在示例中,对自适应采样的图(1230)进行解码。解码后,将顶部32行样本恢复(上采样)到原始分辨率,诸如64行样本;并且将底部32行样本恢复(上采样)到原始分辨率,诸如64行样本。
在一些其它示例中,可以将3D网格的2D表示中的待编码图划分成多个子区域。图(例如,图片)内的这种划分的示例包括条带、图块、图块组、编码树单元等。在一些示例中,可以将不同的采样速率应用于不同的子区域。在示例中,可以在携带3D网格的比特流中发信号通知与不同的子区域相关联的不同的采样速率。在解码器侧,在对自适应采样的图进行解码之后,根据与子区域相关联的采样速率将每个子区域恢复到其原始分辨率。
在一些示例中,自适应采样的图到原始分辨率的恢复过程被称为生成恢复图的逆采样过程。在从逆采样过程中恢复之后,2D图集形式的恢复图的输出可以用于3D网格重建。
虽然图12中的示例示出了在垂直方向上对不同的块行的自适应取样,但是在水平方向上可以将类似的自适应取样应用于不同的列,或在垂直方向和水平方向两者上可以应用。
在一些实施例中,采样自适应基于图像块。在一些示例中,图中的不同的图像块可以具有不同的采样速率。
图13示出了一些示例中的自适应采样的图。图(1320),诸如具有高分辨率的2D图集,包括多个2D形状,这些2D形状也被称为对应于3D网格中的图像块的UV图像块,诸如第一2D形状A’和第二2D形状B’。在图13的示例中,在垂直方向和水平方向上将2:1的第一采样速率应用于第一2D形状A’以生成第一采样的2D形状A”;并且在垂直方向和水平方向上将1:1的第二采样速率应用于第二2D形状B’以生成第二采样的2D形状B”。将第一采样的2D形状A”和第二采样的2D形状B”放置在新图中,该新图被称为自适应采样的图(1330)。
在图13的示例中,第一采样的2D形状A”小于第一2D形状A’,并且第二采样的2D形状B”具有与第二2D形状B’相同的大小。自适应采样的图(1330)由诸如视频编码器(1130)的图像或视频编码器编码到携带3D网格的比特流中。在一些示例中,与采样的2D形状相关联的采样速率例如由辅助数据编码器(1140)编码到携带3D网格的比特流中。
在一些示例中,在解码器侧,诸如视频解码器(1160)的图像/视频解码器从比特流中解码出初始图,诸如自适应采样的图(1330)。此外,例如由辅助数据解码器(1170)从比特流中解码出与采样的2D形状相关联的采样速率。根据与采样的2D形状相关联的采样速率,将自适应采样的图(1330)中的采样的2D形状恢复到原始大小(例如,在垂直方向和水平方向上相同数量的像素)以生成恢复图。然后将恢复图用于3D网格重建。
根据本公开的方面,在网格编码器侧和网格解码器侧已知自适应采样信息,诸如用于不同的图类型的采样速率、用于不同的子区域的采样速率、用于不同图像块的采样速率等。在一些示例中,将自适应采样信息适当地编码到携带3D网格的比特流中。因此,网格解码器和网格编码器可以基于相同的自适应采样信息来操作。网格解码器可以将图恢复到正确的大小。
根据本公开的方面,基于重新排序的编码技术还从3D网格生成2D图。
图14A至图14E示出了使用顶点重新排序进行网格压缩的示例。图14A示出了输入网格(1405)(例如,原始网格)的图。输入网格(1405)包括描述对象表面的相连的三角形。每个三角形由顶点和将顶点连接成三角形的边定义。如图14A所示,输入网格(1405)包括连接为三角形的顶点0到8。
图14B示出了一些示例中的顶点遍历顺序(1415)的图。顶点遍历顺序(1415)由具有箭头的线示出,并依次遍历顶点0、顶点1、顶点2、顶点3、顶点4、顶点5、顶点6、顶点7和顶点8。
然后,根据顶点遍历顺序(1415)可以将顶点的属性,诸如顶点的3D(几何)坐标、顶点的UV坐标和顶点的其它属性重新排序成阵列。例如,按顶点遍历顺序(1415)可以将顶点的3D坐标重新排序成3D坐标阵列,按顶点遍历顺序(1415)可以将顶点的UV坐标重新排序成UV坐标阵列。阵列可以是1D阵列或可以是2D阵列。
在一些示例中,根据光栅扫描线将顶点的属性重新排序且重新整形为形成2D图像的2D阵列。可以通过预测编码技术对2D图像进行编码,例如通过图像或视频编解码器。在包括网格帧序列的动态网格的示例中,可以将动态网格的属性重新排序以形成2D图像序列,并且在示例中可以通过视频编解码器对2D图像序列进行编码。
图14C示出了图示用于将顶点的属性重新整形为2D阵列(1435)的光栅扫描线(1425)的图。光栅扫描线(1425)由具有箭头的线示出。2D阵列(1435)也可以被称为2D图或2D图像。在示例中,顶点的属性被存储在2D阵列(1435)中对应于该顶点的条目处,该条目是2D图像中的像素,并且属性值可以被视为像素的颜色信息。在一示例中,2D阵列(1435)可以是3D坐标图。在另一示例中,2D阵列(1435)可以是UV坐标图。可以将2D阵列(1435)编码到用于携带网格帧的比特流中。
在一些示例中,连接性信息(例如,如何将顶点连接到三角形的边)未被显式地编码到用于携带网格帧的比特流中。因此,在解码器侧,解码器可以从例如2D图中解码出顶点的属性(例如,3D坐标、uv坐标等),并重建顶点。
图14D示出了一些示例中的图示重建的顶点0’至8’的图。例如,可以从比特流中解码出坐标(例如,3D坐标、uv坐标),并且然后可以根据已解码坐标生成重建的顶点0’至8’。
在一些示例中,连接性信息未被显式地编码到比特流中,并且根据连接性推断规则来推断用于连接重建的顶点0’至8’的边。连接性推断规则可以从解码器侧的已解码3D坐标(xyz坐标)和/或UV坐标(uv坐标)中推断连接性。在示例中,在解码器侧适当地建立连接性推断规则。一旦所有顶点被解码,根据连接性推断规则连接相邻顶点。解码器不需要从比特流中解码出连接性信息。
图14E示出了图示可以将重建的顶点0’至8’连接到三角形以形成重建的网格(1495)的推断连接性信息(边)的图。
如图14A和图14E所示,重建的网格(1495)中的顶点的连接性(边)可以不同于原始输入网格(1405)。在一些示例中,连接性差异会导致重建的网格的主观质量受损。根据本公开的另一个方面,在解码器侧处推断连接性会花费时间并且在复杂度方面消耗计算功率。
本公开的各方面提供了对携带网格帧的比特流中的网格帧的连接性信息进行显式编码的技术。在一些示例中,以多边形面的形式提供连接性信息。每个多边形面由连接以形成多边形面的边的顶点序列定义。在示例中,以三角形(也被称为三角形面)的形式提供连接性信息,每个三角形由连接以形成三角形的三个边的三个顶点定义。例如,输入网格(1405)的网格连接性可以包括由顶点0、顶点1和顶点6以“f v0 v1 v6”的形式形成的三角形,其中“f”指示面信息,“v0”是顶点0的索引,“v1”是顶点1的索引,并且“v6”是顶点6的索引。
根据本公开的方面,可以将网格帧的连接性信息重新组织为顶点的相应的连接性属性。
根据本公开的方面,顶点的连接性属性可以为表示顶点处的连接性信息的任何合适的度量。在一示例中,顶点的连接性属性包括价数(valence value),所述价数为在顶点处的边的数量。例如,输入网格(1405)中的顶点3的价数是3,输入网格(1405)中的顶点5的价数是4,且输入网格(1405)中的顶点8的价数是6,依此类推。
在另一示例中,被称为Edgebreaker算法的算法可以遍历顶点,并且用模式索引来标记每个顶点以描述该顶点如何连接到一些其它顶点。例如,模式索引可以标识连接性模式,诸如内部顶点、边界顶点和其它模式。然后,顶点的连接性属性可以包括由Edgebreaker算法标记的模式索引。
在一些示例中,顶点的连接性属性可以被重新排序和重新整形为顶点的其它属性,并且然后可以被显式编码到携带网格的比特流中。
图15示出了根据本公开的一些实施例的用于网格压缩的框架(1500)的图。框架(1500)包括网格编码器(1510)和网格解码器(1550)。网格编码器(1510)将输入网格(1505)(在动态网格处理的情况下为网格帧)编码为比特流(1545),并且网格解码器(1550)对比特流(1545)进行解码以生成重建的网格(1595)(在动态网格处理的情况下为重建的网格帧)。
网格编码器(1510)可以是任何合适的设备,诸如计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。网格解码器(1550)可以是任何合适的设备,诸如计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(1545)可以经由任何合适的通信网络(未示出)从网格编码器(1510)传输到网格解码器(1550)。
在图15的示例中,网格编码器(1510)包括耦合在一起的顶点重新排序模块(1520)、1D/2D编码器(1530)和辅助数据编码器(1540)。顶点重新排序模块(1520)接收输入网格(1505)并执行重新排序以生成重新排序的顶点的网格信息(1525)。在一些示例中,输入网格(1505)包括原始顺序的网格顶点的3D位置信息、多边形面形式的连接性信息、将网格参数化为2D(例如,UV图集)的映射信息,以及其它2D属性图(例如,2D色图)。顶点重新排序模块(1520)可以确定顶点的顶点遍历顺序,并根据顶点遍历顺序对顶点进行重新排序和/或重新排列,以增加相邻顶点的属性相关性(例如,序列(例如,1D阵列)中相邻顶点的属性相关性、2D阵列中局部区域中相邻顶点的属性相关性、相邻帧的属性相关性)。
在示例中,顶点重新排序模块(1520)可以以顶点的相应的连接性属性(也被称为原始连接性属性)的形式来重新组织网格帧的连接性信息。在一示例中,每个顶点的连接性属性可以包括模式索引,用于指示由Edgebreaker算法标记的用于连接性压缩的连接性模式。在另一示例中,每个顶点的连接性属性可以包括指示连接到顶点的边的数量的价数。
顶点重新排序模块(1520)输出重新排序的顶点的网格信息(1525)。重新排序的顶点的网格信息(1525)包括重新排序的序列(例如,1D)中的顶点的顶点信息。例如,每个顶点的顶点信息可以包括各种属性,诸如网格中的3D空间信息(例如,xyz坐标)、到2D的映射信息(例如,uv坐标)、颜色信息(例如,RGB值)和连接性属性。
在另一示例中,重新排序的顶点的网格信息(1525)包括2D图像形式的顶点的顶点信息。例如,将重新排序的顶点重新排列成2D的样本(像素)(例如,基于光栅扫描线等),并且重新排序的顶点的网格信息可以形成一个或多个2D图像,诸如顶点的3D坐标的2D图像、顶点的UV坐标的2D图像、顶点连接性属性的2D图像等。
1D/2D编码器(1530)被配置为将重新排序的顶点的网格信息(1525)编码到比特流(1545)中。当重新排序的顶点的网格信息(1525)包括重新排序的序列(1D)中的顶点的顶点信息时,1D/2D编码器(1530)可以使用1D编码技术来对重新排序的序列中的顶点的顶点信息进行编码。当重新排序的顶点的网格信息(1525)包括2D图像时,1D/2D编码器(1530)可以使用图像编码和/或视频编码技术(例如,使用图像编解码器或视频编解码器)来对2D图像进行编码。
顶点重新排序模块(1520)还生成包括帮助信息的辅助数据(1527)。辅助数据编码器(1540)接收辅助数据(1527),并将辅助数据(1527)编码到比特流(1545)中。例如,顶点重新排序模块(1520)可以逐图像块地对顶点进行重新排序。顶点重新排序模块(1520)可以在辅助数据(1527)中提供指示每个图像块中顶点数量的值。此外,在一示例中,顶点重新排序模块(1520)可以针对每个图像块将边界顶点重新排序至非边界顶点之前。顶点重新排序模块(1520)可以在辅助数据(1527)中提供指示每个图像块中边界顶点的数量的值。在另一示例中,顶点重新排序模块(1520)可以根据Edgebreaker算法遍历顶点,并且可以在辅助数据(1527)中提供指示Edgebreaker算法的信号。
在图15的示例中,将比特流(1545)提供给网格解码器(1550)。网格解码器(1550)包括如图15所示的耦合在一起的1D/2D解码器(1560)、辅助数据解码器(1570)和网格重建模块(1590)。在示例中,1D/2D解码器(1560)对应于1D/2D编码器(1530),且可以对由1D/2D编码器(1530)编码的比特流(1545)的一部分进行解码并生成已解码信息(1565)。在示例中,已解码信息(1565)包括已解码连接性属性图和其它已解码属性图,诸如已解码3D坐标图、已解码uv坐标图、色图等。
在图15的示例中,辅助数据解码器(1570)对应于辅助数据编码器(1540),且可以对由辅助数据编码器(1540)编码的比特流(1545)的一部分进行解码并生成已解码辅助数据(1575)。
在图15的示例中,将已解码信息(1565)和已解码辅助数据(1575)提供给网格重建模块(1590)。网格重建模块(1590)基于已解码信息(1565)和已解码辅助数据(1575)生成重建的网格(1595)。
应注意,网格编码器(1510)中的部件,诸如顶点重新排序模块(1520)、辅助数据编码器(1540)和1D/2D编码器(1530)可以分别通过各种技术来实现。在一示例中,部件由集成电路实现。在另一示例中,使用可以由一个或多个处理器执行的软件来实现部件。
应注意,网格解码器(1550)中的部件,诸如1D/2D解码器(1560)、辅助数据解码器(1570)和网格重建模块(1590)可以分别通过各种技术来实现。在一示例中,部件由集成电路实现。在另一示例中,使用可以由一个或多个处理器执行的软件来实现部件。
图16A至图16D示出了根据本公开的一些实施例对携带网格帧的比特流中的网格帧的连接性属性进行显式编码的示例。图16A示出了输入网格(1605)的图。输入网格(1605)包括描述对象表面的相连的三角形。每个三角形由顶点和将顶点连接成三角形的边定义。如图16A所示,输入网格(1605)包括连接到三角形中的顶点0到8。
图16B示出了顶点遍历顺序(1615)的图。顶点遍历顺序(1615)由具有箭头的线示出,这些线依次遍历顶点0、顶点1、顶点2、顶点3、顶点4、顶点5、顶点6、顶点7和顶点8。
然后,根据顶点遍历顺序(1615)可以将顶点的属性,诸如顶点的3D(几何)坐标、顶点的UV坐标、顶点的连接性属性和顶点的其它属性重新排序成阵列。例如,按顶点遍历顺序(1615)可以将顶点的3D坐标重新排序成3D坐标阵列,按顶点遍历顺序(1615)可以将顶点的UV坐标重新排序成UV坐标阵列,按顶点遍历顺序(1615)可以将顶点的连接性属性重新排序成连接性属性阵列。阵列可以是1D阵列或可以是2D阵列。
在一些示例中,根据光栅扫描线将顶点的属性重新排序且重新整形为形成2D图像的2D阵列。可以通过预测编码技术对2D图像进行编码,例如通过图像或视频编解码器。在包括网格帧序列的动态网格的示例中,可以将动态网格的属性重新排序以形成2D图像序列,并且在示例中可以通过视频编解码器对2D图像序列进行编码。
图16C示出了图示用于将顶点的属性重新整形为2D阵列,诸如2D阵列(1645)和2D阵列(1635)的光栅扫描线(1625)的图。光栅扫描线(1625)由具有箭头的线示出。2D阵列(1635)和(1645)也可以被称为2D图或2D图像。在示例中,顶点的连接性属性被存储在2D阵列(1645)中对应于该顶点的条目处,该条目是2D图像中的像素,并且连接性属性是像素的颜色信息。在示例中,顶点的另一属性,诸如例如3D坐标、UV坐标等被存储在2D阵列(1635)中对应于该顶点的条目处,该条目是2D图像中的像素,并且该属性是像素的颜色信息。在一示例中,2D阵列(1635)可以是3D坐标图。在另一示例中,2D阵列(1635)可以是UV坐标图。可以将2D阵列(1635)和2D阵列(1645)编码到用于携带网格帧的比特流中。
应注意,在图16C的示例中,将连接性信息(例如,如何将顶点连接成三角形的边)以顶点的连接性属性的形式重新组织,并且顶点的连接性属性被显式地编码到用于携带网格帧的比特流中。在一些示例中,遍历诸如输入网格(1605)等原始网格的顶点,并且用可以表示顶点的连接性信息的模式索引或价值来标记每个顶点。例如,可以使用EdgeBreaker算法来确定顶点遍历顺序,诸如顶点遍历顺序(1615),以遍历顶点,并且EdgeBreaker算法可以用模式索引标记每个顶点。可以根据顶点遍历顺序将顶点的连接性属性重新排序,然后整形为2D图,该2D图也被称为由Morg,诸如2D阵列(1645)表示的连接性图。连接性图(例如,2D阵列(1645))中的像素位置处的每个值是被重新排序并重新整形到像素位置的顶点的对应的模式索引或价数。可以根据顶点遍历顺序将顶点的其它属性重新排序,并且然后整形为其它2D图,诸如2D阵列(1635)。可以通过任何预测编码方法来对连接性图进行编码,诸如图像编解码器、视频编解码器等。在一些示例中,可以以有损模式对连接性图进行编码。在一些示例中,可以以无损模式对连接性图进行编码。
根据本公开的方面,在解码器侧,解码器可以直接从携带网格帧的比特流中解码出顶点的连接性属性和顶点的其它属性。然后,解码器可以根据顶点的连接性属性和顶点的其它属性来重建网格帧。
图16D示出了图示重建的网格帧(1695)的图。在示例中,例如,重建的顶点0’至8’可以是从来自比特流的顶点的已解码坐标来重建的。然后,可以根据来自比特流的顶点的已解码连接性属性(诸如顶点的价或顶点的模式索引)来连接重建的顶点0’至8’。在一示例中,可以使用Edgebreaker算法来根据顶点的模式索引生成重建的网格帧(1695)。在另一示例中,使用合适的算法来根据顶点的价生成重建的网格帧(1695)。重建的网格帧(1695)可以具有与原始网格帧(1605)相同的连接性信息(相同的边)。
在一些实施例中,可以将网格帧的连接性差异信息编码到携带网格帧的比特流中。连接性差异信息是输入网格帧中的原始连接性信息与根据连接性推断规则推断的连接性信息之间的差异。
本公开的一些方面提供了用于基于图表的网格压缩的技术。可以为网格的不同部分选择各种编码技术,诸如直接编码技术、基于采样的编码技术、基于重新排序的编码技术,以适应不同部分的特征,从而可以提高整个网格(或网格序列)的整体编码效率。
根据本公开的方面,可以在编码器侧使用UV参数化来将3D网格映射到一个或多个2D图表。在一些示例中,3D网格可以被分区成若干片段(在一些示例中也被称为图像块)。每个片段可以包括具有相关联的几何形状、属性和连接性信息的相连的一组顶点。
图17示出了在一些示例中的将网格片段映射到2D UV图集中的2D图表上的UV参数化过程的图。在图17的示例中,网格片段(1710)是3D网格的片段。网格片段(1710)包括6个顶点v0至v5。网格片段(1710)中的每个顶点被分配有2D UV图集(1750)中的2D UV坐标,并且被映射到2D UV图集(1750)中的2D顶点。例如,顶点v0被映射到2D UV图集(1750)中的2D顶点v0’,顶点v1被映射到2D UV图集(1750)中的2D顶点v1’,顶点v2被映射到2D UV图集(1750)中的2D顶点v2’,顶点v3被映射到2D UV图集(1750)中的2D顶点v3’,顶点v4被映射到2D UV图集(1750)中的2D顶点v4’,并且顶点v5被映射到2D UV图集(1750)中的2D顶点v5’。2D顶点v0’至v5’形成对应于3D网格片段的相连的2D图表。2D图表中的2D顶点的几何形状、属性和连接性信息可以从3D片段中的对应的顶点继承。
在一些示例中,3D网格片段可以被映射到2D UV图集中的多个单独的2D图表。3D片段中的顶点可以对应于2D UV图集中的多个2D顶点。
图18示出了在一些示例中的将网格片段映射到2D UV图集中的多个2D图表上的UV参数化过程的图。在图18的示例中,网格片段(1810)是3D网格的片段,并且可以与图17中的网格片段(1710)相同。网格片段(1810)包括6个顶点v0至v5。网格片段(1810)被映射到2D UV图集(1850)中的两个2D图表(1851)和(1852)。网格片段(1810)中的每个顶点可以被映射到2D UV图集(1850)中的一个或两个2D顶点。例如,顶点v0被映射到2D UV图集(1850)中的2D顶点v0”,顶点v1被映射到2D UV图集(1850)中的两个顶点,诸如2D顶点v1’和2D顶点v1”,顶点v2被映射到2D UV图集(1850)中的2D顶点v2’,顶点v3被映射到2D UV图集(1850)中的2D顶点v3’,顶点v4被映射到2D UV图集(1850)中的两个2D顶点,诸如2D顶点v4’和2D顶点v4”,并且顶点v5被映射到2D UV图集(1850)中的2D顶点v5’。2D顶点v0”、v1”和v4”形成2D图表(1851),并且2D顶点v1’至v5’形成2D图表(1852)。
根据本公开的方面,用于3D网格的2D UV图集可以包括多个2D图表,并且每个2D图表可以包括多个(通常大于或等于3个)具有从3D网格中的对应的顶点继承的相关联的3D几何形状、属性和连接性信息的2D顶点。
图19示出了示例中的2D UV图集(1900)的图。2D UV图集(1900)包括多个2D图表,诸如图19所示的2D图表(1901)至(1910)。
本公开的一些方面提供了用于基于图表的网格压缩的技术。网格编码器和网格解码器可以使用这些技术。
根据本公开的方面,可以通过各种技术来对2D UV图集中的每个2D图表进行编解码(编码和解码),诸如基于采样的技术、基于重新排序的技术和基于图表的直接编码技术(也被称为原始图表编码技术)。例如,当2D图表处于基于采样的编码模式时,使用基于采样的技术对2D图表进行编解码;当2D图表处于基于重新排序的编码模式时,使用基于重新排序的技术对2D图表进行编解码;当2D图表处于原始图表编码模式时,使用基于图表的直接编码技术对2D图表进行编解码。
在基于采样的技术中,以给定的采样速率(步长)对2D图表进行采样,以生成2D图,诸如几何图、属性图和占用图等。可以由视频编解码器对生成的占用图、几何图和属性图进行编码。在一些示例中,在编码器侧不生成占用图。在示例中,将边界顶点信息编码在比特流中,可以根据边界顶点信息在解码器侧推断占用图。
在基于重新排序的技术中,图表中的2D顶点按特定顺序排列,且通过特定空间填充曲线(例如,光栅扫描线)被填充在2D区域中,以生成2D图,诸如UV图、几何图、属性图、连接性图等。可以由视频编解码器对2D图进行编码。
在一些示例中,将基于重新排序的技术应用于3D网格的第一2D图表以生成第一2D图,且将基于采样的技术应用于3D网格的第二2D图表以生成第二3D图。第一2D图和第二2D图可以合并成组合的2D图。在示例中,在比特流中发信号通知组合的2D图中的第一2D图和第二2D图的位置信息。例如,在比特流中发信号通知第一2D图表的第一2D图的起始位置(或边界信息或边界框)和第二2D图表的第二2D图的起始位置(或边界信息或边界框)。
在基于图表的直接编码技术(也被称为原始图表编码方法)中,例如在不使用视频编解码器的情况下,将2D图表中的顶点的几何信息(UV坐标和3D坐标)、属性信息和连接性信息直接编码到比特流中。可以应用预测编码来减少数据冗余。例如,先前已编码值可以用于预测当前值。预测可以来自当前网格帧(例如,帧内空间预测)或先前已编码网格帧(例如,帧间时间预测)。例如,平行四边形预测可以用于从三个先前已编码几何(UV坐标和3D坐标)位置预测当前几何位置。可以通过算术编码来对预测残差进行编码,且来自先前已编码值的一些上下文信息可以用于提高编码效率。
根据本公开的方面,可以在比特流中在不同的级处启用和发信号通知不同的基于图表的网格压缩编码技术。
在一实施例中,整个网格序列使用相同的基于图表的编码技术,例如基于采样的技术。在一些示例中,可以在网格序列的序列头中发信号通知指示基于图表的编码模式的索引。
在另一实施例中,每个网格帧可以选择不同的基于图表的编码技术。然后,可以在网格帧的帧头中发信号通知指示网格帧的基于图表的编码模式的索引。然后,从网格帧参数化的所有2D图表可以使用相同的编码技术。
在另一实施例中,网格帧的每个片段(例如,条带、区域)可以具有单独选择的编码技术。在一些示例中,可以在片段的头部分,诸如条带的条带头(或区域的头)等发信号通知指示所选基于图表的编码模式的索引,因此条带中(或区域中)的所有图表可以使用由索引指示的相同指定的编码技术。
在另一实施例中,网格帧的每个2D图表可以选择单独的编码技术。在一些示例中,可以为每个2D图表发信号通知指示所选基于图表的编码模式的索引。在一些示例中,基于图表的编码模式的索引可以被预测,或可以根据已编码信息通过上下文编码来进行编码,例如,先前已编码2D图表的基于图表的编码模式的索引。在一些实施例中,基于图表的编码模式的索引也可以根据当前2D图表的某些特征(例如,当前2D图表中的顶点数量)由上下文预测或编码。例如,当当前2D图表中的顶点数量小于阈值时,可以预测用于当前2D图表的基于图表的编码模式为原始图表编码模式。
根据本公开的方面,可以在比特流中对2D图表的一些共同辅助信息(例如,边界顶点信息)进行编码而不管编码技术如何。辅助信息可以用于解码器侧的网格重建。
本公开的一些方面还为编码器侧提供选择编码技术的技术,例如,为2D图表选择基于图表的编码模式。在一些示例中,网格编码器可以为每个图表/区域/帧/序列选择最佳的基于图表的编码模式,并且可以在比特流中显式地发信号通知所选基于图表的编码模式。当为区域选择基于图表的编码模式时,根据基于图表的编码模式对该区域的2D图表进行编码。当为(3D网格)帧选择基于图表的编码模式时,根据基于图表的编码模式对从该(3D网格)帧参数化的2D图表进行编码。当为(3D网格帧)序列选择基于图表的编码模式时,根据基于图表的编码模式对从该(3D网格帧)序列参数化的2D图表进行编码。
在一些实施例中,网格编码器可以使用图表/区域/帧/序列的特定特征来确定/估计最佳的基于图表的编码模式。在一些示例中,网格编码器可以根据图表/区域/帧/序列中的顶点数量来确定基于图表的编码模式。在一些示例中,网格编码器可以根据图表/区域/帧/序列中的边界顶点数量来确定基于图表的编码模式。在一些示例中,网格编码器可以根据图表/区域/帧/序列中的边界顶点数量与顶点数量的比来确定基于图表的编码模式。在一些示例中,网格编码器可以根据图表/区域/帧/序列中的值(例如,几何形状、属性)的变化来确定基于图表的编码模式。在一些示例中,网格编码器可以根据当前帧的图表/区域中的时间一致性(例如,与先前帧的相似性)来确定基于图表的编码模式。
在示例中,将图表中边界顶点数量与顶点数量之间的比率用作模式决策标准。当2D图表的比率大于阈值时,网格编码器确定将原始图表编码模式用于2D图表;否则,网格编码器确定将基于采样的编码模式用于2D图表。
在一些实施例中,率失真优化(RDO)可以用于为图表/区域/帧/序列选择最佳的基于图表的编码模式。在一些示例中,网格编码器可以计算应用于图表/区域/帧/序列的每个基于图表的编码模式的率失真成本。例如,对于基于图表的编码模式i,网格编码器通过Ci=Di+λ·Ri计算率失真成本Ci,其中,Di指示基于图表的编码模式i的失真,Ri指示基于图表的编码模式i的比特率,并且λ是失真与比特率之间的折衷因子。然后,选择最佳的基于图表的编码模式作为最小化率失真成本的编码模式,即应注意,在一些示例中,多通道编码可以应用于计算实际速率和失真项。
图20示出了概述根据本公开的实施例的过程(2000)的流程图。过程(2000)可以在用于网格的编码过程期间使用。在各种实施例中,过程(2000)由处理电路执行。在一些实施例中,过程(2000)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(2000)。该过程开始于(S2001)并且进行到(S2010)。
在(S2010)处,3D网格帧被UV参数化为2D UV图集中的多个2D图表。3D网格帧用多边形表示对象的表面,多边形由顶点和连接顶点的边定义。顶点被映射到2D UV图集中的2D顶点,2D顶点形成2D UV图集中的多个2D图表。
在(S2020)处,为多个2D图表确定相应的基于图表的编码模式。
在(S2030)处,根据相应的基于图表的编码模式,至少将与多个2D图表各自相关联的几何信息编码到比特流中。
在一些实施例中,基于图表的编码模式至少包括基于采样的编码模式、基于重新排序的编码模式和原始图表编码模式。
在一些示例中,响应于基于采样的编码模式的第一2D图表,对第一2D图表进行采样以生成至少第一几何图,该第一几何图将第一顶点的3D坐标与第一2D图表中的第一顶点的UV坐标相关联。使用图像编码器和/或视频编码器将第一几何图编码到比特流中。
在一些示例中,响应于基于重新排序的编码模式的第二2D图表,确定用于对第二2D图表中的第二顶点进行重新排序的顺序。根据顺序和空间填充曲线将第二顶点的3D坐标排列成第二几何图。根据顺序和空间填充曲线将第二顶点的UV坐标排列成UV图。可以将其它属性类似地排列到2D图中。使用图像编码器和/或视频编码器将诸如第二几何图、UV图等的2D图编码到比特流中。
在一些示例中,为第一2D图表确定基于采样的编码模式,并且为第二2D图表确定基于重新排序的编码模式。对第一2D图表进行采样以生成至少第一几何图,该第一几何图将第一2D图表中的第一顶点的3D坐标与第一顶点的UV坐标相关联。确定用于对第二2D图表中的第二顶点进行排序的顺序,并且根据顺序和空间填充曲线将第二顶点的3D坐标排列成第二几何图。第一几何图和第二几何图不重叠地合并成组合的2D几何图。将第一几何图放置在组合的2D几何图中的第一位置。将第二几何图放置在组合的2D几何图中的第二位置。使用图像编码器和/或视频编码器将组合的2D几何图编码到比特流中。在示例中,将指示组合的2D几何图中的第一2D图的第一位置的第一信号编码到比特流中,并且将指示组合的2D几何图中的第二2D图的第二位置的第二信号编码到比特流中。
在一些示例中,响应于原始图表编码模式的第三2D图表,在不使用图像解码器或视频解码器的情况下将第三2D图表中的第三顶点的UV坐标和3D坐标编码到比特流中。
在一示例中,索引被包括在包括3D网格帧的3D网格帧序列的序列头中。序列头中的索引指示用于多个2D图表和从3D网格帧序列中的其它3D网格帧参数化的其它2D图表的基于图表的编码模式。
在另一示例中,索引被包括在3D网格帧的帧头中,帧头中的索引指示分别用于从3D网格帧参数化的多个2D图表的基于图表的编码模式。
在另一示例中,索引被包括在用于携带3D网格帧的第一网格片段的比特流的第一部分的第一头中,第一网格片段被参数化为多个2D图表中的一个或多个第一2D图表,索引指示分别用于该一个或多个第一2D图表的基于图表的编码模式。
在另一示例中,将各索引编码成与多个2D图表相关联。各索引指示用于多个2D图表的相应的基于图表的编码模式。
在一些示例中,可以基于3D网格帧序列的一部分的特征为3D网格帧序列的一部分中的一个或多个图表确定基于图表的编码模式。在一示例中,可以基于2D图表的特征为2D图表确定基于图表的编码模式。在另一示例中,可以基于区域的特征为区域中的2D图表确定基于图表的编码模式。在另一示例中,可以基于3D网格帧的特征为从3D网格帧参数化的2D图表确定基于图表的编码模式。在另一示例中,可以基于3D网格帧序列的特征为从3D网格帧序列参数化的2D图表确定基于图表的编码模式。在一示例中,特征包括图表/区域/帧/序列中的顶点数量。在另一示例中,特征包括图表/区域/帧/序列中的边界顶点数量。在另一示例中,特征包括图表/区域/帧/序列中的边界顶点数量与顶点数量之间的比率。在另一示例中,特性包括图表/区域/帧/序列中的值(例如,几何形状、属性)的变化。在另一示例中,特征包括当前3D网格帧的图表/区域中的时间一致性(例如,与先前帧的相似性)。
在一些示例中,可以基于率失真优化为3D网格帧序列的一部分(例如,2D图表、区域、3D网格帧、整个序列)中的一个或多个图表确定基于图表的编码模式。可以从一组基于图表的编码模式中选择基于图表的编码模式作为具有最小率失真成本的编码模式。
然后,过程进行到(S2099)并结束。
可以适当地调整过程(2000)。可以修改和/或省略过程(2000)中的一个或多个步骤。可以增加附加的一个或多个步骤。可以使用任何合适的实现顺序。
图21示出了概述根据本公开的实施例的过程(2100)的流程图。过程(2100)可以在用于网格的解码过程期间使用。在各种实施例中,过程(2100)由处理电路执行。在一些实施例中,过程(2100)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(2100)。该过程开始于(S2101)并进行到(S2110)。
在(S2110)处,接收携带3D网格帧的比特流。3D网格帧用多边形表示对象的表面,多边形由顶点和连接顶点的边定义。3D网格帧被UV参数化为2D UV图集中的多个2D图表。顶点被映射到2D UV图集中的2D顶点,2D顶点形成2D UV图集中的多个2D图表。
在(S2120)处,根据从所述比特流解码出的一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式。
在(S2130)处,根据所述相应的基于图表的编码模式从所述比特流中至少解码出与所述多个2D图表各自相关联的几何信息。
在(S2140)处,根据与所述多个2D图表各自相关联的所述几何信息重建所述3D网格帧。
在一些实施例中,基于图表的编码模式至少包括基于采样的编码模式、基于重新排序的编码模式和原始图表编码模式。
在一些示例中,响应于基于采样的编码模式的第一2D图表,使用图像解码器和/或视频解码器从所述比特流中解码出第一几何图。根据第一几何图确定第一2D图表中的第一顶点的3D坐标和UV坐标。
在一些示例中,响应于基于重新排序的编码模式的第二2D图表,使用图像解码器和/或视频解码器从所述比特流中解码出第二几何图和UV图。根据第二几何图确定第二2D图表中的第二顶点的3D坐标,并且根据UV图确定第二2D图表中的第二顶点的UV坐标。
在一些示例中,从所述比特流中解码出组合的2D几何图,所述组合的2D几何图包括第一2D图和第二2D图,其中,所述第一2D图用于基于采样的编码模式的第一2D图表,所述第二2D图用于基于重新排序的编码模式的第二2D图表。此外,从比特流解码出第一信号和第二信号,其中,所述第一信号指示所述组合的2D几何图中的所述第一2D图的第一位置,所述第二信号指示所述组合的2D几何图中的所述第二2D图的第二位置。根据基于采样的编码模式,基于位于所述组合的2D几何图中所述第一位置处的所述第一2D图,确定与所述第一2D图表相关联的第一几何信息。根据基于重新排序的编码模式,基于位于所述组合的2D几何图中所述第二位置处的所述第二2D图,确定与所述第二2D图表相关联的第二几何信息。
在一些示例中,响应于原始图表编码模式的第三2D图表,不使用图像解码器或视频解码器,从所述比特流中解码出所述第三2D图表中的第三顶点的UV坐标和3D坐标。
在一示例中,从包括所述3D网格帧的3D网格帧序列的序列头中解码出索引,所述序列头中的所述索引指示用于所述多个2D图表、以及从所述3D网格帧序列中的其它3D网格帧参数化的其它2D图表的基于图表的编码模式。
在另一示例中,从所述3D网格帧的帧头中解码出索引,所述帧头中的所述索引分别指示所述多个2D图表的基于图表的编码模式。
在另一示例中,从用于携带所述3D网格帧的第一网格片段的所述比特流的第一部分的第一头中解码出索引,所述第一网格片段被参数化为所述多个2D图表中的一个或多个第一2D图表,所述索引指示分别用于所述一个或多个第一2D图表的基于图表的编码模式。
在另一示例中,对各个与所述多个2D图表相关联的索引进行解码,所述各索引指示用于所述多个2D图表的相应的基于图表的编码模式。
然后,过程进行到(S2199)并结束。
可以适当地调整过程(2100)。过程(2100)中的步骤可以被修改和/或省略。可以增加附加的一个或多个步骤。可以使用任何合适的实现顺序。
本公开中所公开的技术可以单独使用或以任何顺序组合使用。此外,技术(例如,方法、实施例)、编码器和解码器中的每一者可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。
上文所描述的技术可使用计算机可读指令实施为计算机软件且以物理方式存储在一个或多个计算机可读存储介质中。举例来说,图22示出适于实施所公开主题的某些实施例的计算机系统(2200)。
所述计算机软件可使用任何合适的机器代码或计算机语言来编码,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由一个或多个计算机中央处理单元(central processingunit,CPU)、图形处理单元(Graphics Processing Unit,GPU)等执行。
可在各种类型的计算机或计算机组件上执行所述指令,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。
图22中所示的用于计算机系统(2200)的组件在本质上是示范性的,并非旨在暗示关于实施本申请实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统(2200)的示范性实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。
计算机系统(2200)可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口装置可包括以下一个或多个(每种仅描绘一个):键盘(2201)、鼠标(2202)、轨迹垫(2203)、触摸屏(2210)、数据手套(未示出)、操纵杆(2205)、麦克风(2206)、扫描仪(2207)、相机(2208)。
计算机系统(2200)还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激一个或多个人类用户的感觉。此类人机接口输出装置可包括触觉输出装置(例如触摸屏(2210)、数据手套(未示出)或操纵杆(2205)的触觉反馈,但还可存在不充当输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(2209)、头戴式耳机(未描绘))、视觉输出装置(例如屏幕(2210),包括CRT屏幕、LCD屏幕、等离子体屏幕、OLED屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力--其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘)),以及打印机(未描绘)。
计算机系统(2200)还可包括人类可访问的存储装置和存储装置的相关联介质,例如光学介质,包括具有CD/DVD等介质(2221)的CD/DVD ROM/RW(2220)、拇指驱动器(2222)、可移动硬盘驱动器或固态驱动器(2223)、磁带和软盘(未描绘)等旧版磁性媒体、基于ROM/ASIC/PLD的专用装置,例如安全保护装置(未描绘),等等。
所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。
计算机系统(2200)还可包括到一个或多个通信网络的接口。网络可例如是无线的、有线的、光学的。网络还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络的实例包括例如以太网、无线LAN的局域网、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线TV、卫星TV和地面广播TV的TV有线或无线广域数字网络、包括CAN总线的车载网络和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线(2249)(例如,计算机系统(2200)的USB端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统(2200)的核心中(例如通过以太网接口集成到PC计算机系统中,或通过蜂窝网络接口集成到智能电话计算机系统中)。通过使用这些网络中的任一网络,计算机系统(2200)可与其它实体通信。此类通信可以是仅单向接收(例如广播TV)、仅单向发送(例如连到某些CAN总线装置的CAN总线)或是双向的,例如使用局域数字网络或广域数字网络连接到其它计算机系统。可在如上文所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口装置、人类可访问存储装置和网络接口可附接到计算机系统(2200)的核心(2240)。
核心(2240)可包括一个或多个中央处理单元(CPU)(2241)、图形处理单元(GPU)(2242)、现场可编程门区域(Field Programmable Gate Areas,FPGA)形式的专用可编程处理单元(2243)、用于某些任务的硬件加速器(2244),图形适配器(2250)等等。这些装置连同只读存储器(read-only memory,ROM)(2245)、随机存取存储器(2246)、例如内部非用户可访问的硬盘驱动器、SSD等内部大容量存储装置(2247)可通过系统总线(2248)连接。在一些计算机系统中,系统总线(2248)可通过一个或多个物理插头形式访问以实现通过额外CPU、GPU等来扩展。外围装置可直接或通过外围总线(2249)附接到核心的系统总线(2248)。在一个示例中,屏幕(2210)可以连接至图形适配器(2250)。用于外围总线的架构包括PCI、USB等等。
CPU(2241)、GPU(2242)、FPGA(2243)和加速器(2244)可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在ROM(2245)或RAM(2246)中。过渡数据也可存储在RAM(2246)中,而永久性数据可例如存储在内部大容量存储装置(2247)中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与一个或多个CPU(2241)、GPU(2242)、大容量存储装置(2247)、ROM(2245)、RAM(2246)等紧密关联。
计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本申请的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。
举例来说但不作为限制,具有架构(2200)且尤其是核心(2240)的计算机系统可提供因处理器(包括CPU、GPU、FPGA、加速器等)执行以一个或多个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心(2240)的非暂时性质的某些存储装置(例如核心内部大容量存储装置(2247)或ROM(2245))相关联的介质。实施本申请的各种实施例的软件可存储在此类装置中且由核心(2240)执行。根据特定需求,计算机可读介质可包括一个或多个存储器装置或芯片。软件可使核心(2240)且具体地说使其中的处理器(包括CPU、GPU、FPGA等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在RAM(2246)中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:加速器(2244))中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或这两种电路。本申请涵盖硬件与软件的任何合适的组合。
尽管本申请描述了若干示范性实施例,但在本申请的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本申请的原理的系统和方法。
Claims (20)
1.一种网格解压缩的方法,其特征在于,包括:
接收携带三维(3D)网格帧的比特流,所述3D网格帧使用多边形表示对象的表面,所述多边形由顶点和连接所述顶点的边定义,所述3D网格帧被参数化为2D UV图集中的多个二维(2D)图表,所述顶点被映射到所述2D UV图集中的2D顶点,所述2D顶点形成所述2D UV图集中的所述多个2D图表;
根据从所述比特流解码出的一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式;
根据所述相应的基于图表的编码模式从所述比特流中至少解码出与所述多个2D图表各自相关联的几何信息;以及
根据与所述多个2D图表各自相关联的所述几何信息重建所述3D网格帧。
2.根据权利要求1所述的方法,其特征在于,所述基于图表的编码模式至少包括基于采样的编码模式、基于重新排序的编码模式和原始图表编码模式。
3.根据权利要求2所述的方法,其特征在于,响应于所述多个2D图表中的第一2D图表与所述基于采样的编码模式相关联,所述方法包括:
使用图像解码器和/或视频解码器从所述比特流中解码出第一几何图;以及
根据所述第一几何图确定所述第一2D图表中的第一顶点的3D坐标和UV坐标。
4.根据权利要求2所述的方法,其特征在于,响应于所述多个2D图表中的第二2D图表与所述基于重新排序的编码模式相关联,所述方法包括:
使用图像解码器和/或视频解码器从所述比特流中解码出第二几何图和UV图;
根据所述第二几何图确定所述第二2D图表中的第二顶点的3D坐标;以及
根据所述UV图确定所述第二2D图表中的所述第二顶点的UV坐标。
5.根据权利要求2所述的方法,其特征在于,进一步包括:
从所述比特流中解码出组合的2D几何图,所述组合的2D几何图包括第一2D图和第二2D图,其中,所述第一2D图用于基于采样的编码模式的第一2D图表,所述第二2D图用于基于重新排序的编码模式的第二2D图表;
解码第一信号和第二信号,其中,所述第一信号指示所述组合的2D几何图中的所述第一2D图的第一位置,所述第二信号指示所述组合的2D几何图中的所述第二2D图的第二位置;
根据所述基于采样的编码模式,基于位于所述组合的2D几何图中所述第一位置处的所述第一2D图,确定与所述第一2D图表相关联的第一几何信息;以及
根据所述基于重新排序的编码模式,基于位于所述组合的2D几何图中所述第二位置处的所述第二2D图,确定与所述第二2D图表相关联的第二几何信息。
6.根据权利要求2所述的方法,其特征在于,响应于所述多个2D图表中的第三2D图表与所述原始图表编码模式相关联,所述方法包括:
不使用图像解码器或视频解码器,从所述比特流中解码出所述第三2D图表中的第三顶点的UV坐标和3D坐标。
7.根据权利要求1所述的方法,其特征在于,所述根据从所述比特流解码出的所述一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式进一步包括:
从包括所述3D网格帧的3D网格帧序列的序列头中解码出索引,所述序列头中的所述索引指示用于所述多个2D图表、以及从所述3D网格帧序列中的其它3D网格帧参数化的其它2D图表的基于图表的编码模式。
8.根据权利要求1所述的方法,其特征在于,所述根据从所述比特流解码出的所述一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式进一步包括:
从所述3D网格帧的帧头中解码出索引,所述帧头中的所述索引分别指示所述多个2D图表的基于图表的编码模式。
9.根据权利要求1所述的方法,其特征在于,所述根据从所述比特流解码出的所述一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式进一步包括:
从用于携带所述3D网格帧的第一网格片段的所述比特流的第一部分的第一头中解码出索引,所述第一网格片段被参数化为所述多个2D图表中的一个或多个第一2D图表,所述索引指示分别用于所述一个或多个第一2D图表的基于图表的编码模式。
10.根据权利要求1所述的方法,其特征在于,所述根据从所述比特流解码出的所述一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式进一步包括:
对各个与所述多个2D图表相关联的索引进行解码,所述各索引指示用于所述多个2D图表的相应的基于图表的编码模式。
11.一种网格解压缩的装置,其特征在于,包括处理电路,所述处理电路被配置为:
接收携带三维(3D)网格帧的比特流,所述3D网格帧使用多边形表示对象的表面,所述多边形由顶点和连接所述顶点的边定义,所述3D网格帧被参数化为2D UV图集中的多个二维(2D)图表,所述顶点被映射到所述2D UV图集中的2D顶点,所述2D顶点形成所述2D UV图集中的所述多个2D图表;
根据从所述比特流解码出的一个或多个索引为所述多个2D图表确定相应的基于图表的编码模式;
根据所述相应的基于图表的编码模式从所述比特流中至少解码出与所述多个2D图表各自相关联的几何信息;以及
根据与所述多个2D图表各自相关联的所述几何信息重建所述3D网格帧。
12.根据权利要求11所述的装置,其特征在于,所述基于图表的编码模式至少包括基于采样的编码模式、基于重新排序的编码模式和原始图表编码模式。
13.根据权利要求12所述的装置,其特征在于,响应于所述多个2D图表中的第一2D图表与所述基于采样的编码模式相关联,所述处理电路被配置为:
使用图像解码器和/或视频解码器从所述比特流中解码出第一几何图;以及
根据所述第一几何图确定所述第一2D图表中的第一顶点的3D坐标和UV坐标。
14.根据权利要求12所述的装置,其特征在于,响应于所述多个2D图表中的第二2D图表与所述基于重新排序的编码模式相关联,所述处理电路被配置为:
使用图像解码器和/或视频解码器从所述比特流中解码出第二几何图和UV图;
根据所述第二几何图确定所述第二2D图表中的第二顶点的3D坐标;以及
根据所述UV图确定所述第二2D图表中的所述第二顶点的UV坐标。
15.根据权利要求12所述的装置,其特征在于,所述处理电路被配置为:
从所述比特流中解码出组合的2D几何图,所述组合的2D几何图包括第一2D图和第二2D图,其中,所述第一2D图用于基于采样的编码模式的第一2D图表,所述第二2D图用于基于重新排序的编码模式的第二2D图表;
解码第一信号和第二信号,其中,所述第一信号指示所述组合的2D几何图中的所述第一2D图的第一位置,所述第二信号指示所述组合的2D几何图中的所述第二2D图的第二位置;
根据所述基于采样的编码模式,基于位于所述组合的2D几何图中所述第一位置处的所述第一2D图,确定与所述第一2D图表相关联的第一几何信息;以及
根据所述基于重新排序的编码模式,基于位于所述组合的2D几何图中所述第二位置处的所述第二2D图,确定与所述第二2D图表相关联的第二几何信息。
16.根据权利要求12所述的装置,其特征在于,响应于所述多个2D图表中的第三2D图表与所述原始图表编码模式相关联,所述处理电路被配置为:
不使用图像解码器或视频解码器,从所述比特流中解码出所述第三2D图表中的第三顶点的UV坐标和3D坐标。
17.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
从包括所述3D网格帧的3D网格帧序列的序列头中解码出索引,所述序列头中的所述索引指示用于所述多个2D图表、以及从所述3D网格帧序列中的其它3D网格帧参数化的其它2D图表的基于图表的编码模式。
18.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
从所述3D网格帧的帧头中解码出索引,所述帧头中的所述索引分别指示所述多个2D图表的基于图表的编码模式。
19.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
从用于携带所述3D网格帧的第一网格片段的所述比特流的第一部分的第一头中解码出索引,所述第一网格片段被参数化为所述多个2D图表中的一个或多个第一2D图表,所述索引指示分别用于所述一个或多个第一2D图表的基于图表的编码模式。
20.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
对各个与所述多个2D图表相关联的索引进行解码,所述各索引指示用于所述多个2D图表的相应的基于图表的编码模式。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163285905P | 2021-12-03 | 2021-12-03 | |
US63/285,905 | 2021-12-03 | ||
US17/964,613 US20230177736A1 (en) | 2021-12-03 | 2022-10-12 | Method and apparatus for chart based mesh compression |
US17/964,613 | 2022-10-12 | ||
PCT/US2022/078151 WO2023102290A1 (en) | 2021-12-03 | 2022-10-14 | Method and apparatus for chart based mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116686011A true CN116686011A (zh) | 2023-09-01 |
Family
ID=86607837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280008579.9A Pending CN116686011A (zh) | 2021-12-03 | 2022-10-14 | 基于图表的网格压缩方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230177736A1 (zh) |
JP (1) | JP2024509988A (zh) |
KR (1) | KR20230132818A (zh) |
CN (1) | CN116686011A (zh) |
WO (1) | WO2023102290A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3349463A1 (en) * | 2017-01-11 | 2018-07-18 | Thomson Licensing | Method and apparatus for coding/decoding a picture of an omnidirectional video |
WO2021136876A1 (en) * | 2020-01-02 | 2021-07-08 | Nokia Technologies Oy | An apparatus, a method and a computer program for volumetric video |
KR20210126940A (ko) * | 2020-04-13 | 2021-10-21 | 한국전자통신연구원 | 3차원 영상 생성을 위한 2차원 영상의 부호화 및 복호화 장치 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9648346B2 (en) * | 2009-06-25 | 2017-05-09 | Microsoft Technology Licensing, Llc | Multi-view video compression and streaming based on viewpoints of remote viewer |
US10389994B2 (en) * | 2016-11-28 | 2019-08-20 | Sony Corporation | Decoder-centric UV codec for free-viewpoint video streaming |
US10417806B2 (en) * | 2018-02-15 | 2019-09-17 | JJK Holdings, LLC | Dynamic local temporal-consistent textured mesh compression |
-
2022
- 2022-10-12 US US17/964,613 patent/US20230177736A1/en active Pending
- 2022-10-14 WO PCT/US2022/078151 patent/WO2023102290A1/en active Application Filing
- 2022-10-14 JP JP2023556553A patent/JP2024509988A/ja active Pending
- 2022-10-14 KR KR1020237027614A patent/KR20230132818A/ko active Search and Examination
- 2022-10-14 CN CN202280008579.9A patent/CN116686011A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3349463A1 (en) * | 2017-01-11 | 2018-07-18 | Thomson Licensing | Method and apparatus for coding/decoding a picture of an omnidirectional video |
WO2021136876A1 (en) * | 2020-01-02 | 2021-07-08 | Nokia Technologies Oy | An apparatus, a method and a computer program for volumetric video |
KR20210126940A (ko) * | 2020-04-13 | 2021-10-21 | 한국전자통신연구원 | 3차원 영상 생성을 위한 2차원 영상의 부호화 및 복호화 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20230132818A (ko) | 2023-09-18 |
WO2023102290A1 (en) | 2023-06-08 |
US20230177736A1 (en) | 2023-06-08 |
JP2024509988A (ja) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230063575A1 (en) | Patch zippering for mesh compression | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
KR20230091987A (ko) | 인코더에 의한 메시 압축을 위한 적응적 샘플링 방법 및 장치 | |
US20230177738A1 (en) | Dynamic mesh compression based on point cloud compression | |
US11924434B2 (en) | 2D atlas adaptive sampling in 3D mesh compression | |
US20230177736A1 (en) | Method and apparatus for chart based mesh compression | |
US20230143284A1 (en) | Vertex connectivity coding for mesh compression | |
US20230074762A1 (en) | Vertex reordering for mesh compression | |
US20230090677A1 (en) | Coding connectivity in vertex reordering methods for mesh compression | |
JP7504298B2 (ja) | 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム | |
US20230014820A1 (en) | Methods and apparatuses for dynamic mesh compression | |
CN116635905A (zh) | 非流形网格中边界环的检测 | |
KR20230051201A (ko) | 디코더에 의한 메시 압축을 위한 적응형 샘플링의 방법 및 장치 | |
CN117461054A (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 |