CN117083636A - 用于网格压缩的边界几何信息的预测编码 - Google Patents
用于网格压缩的边界几何信息的预测编码 Download PDFInfo
- Publication number
- CN117083636A CN117083636A CN202280016784.XA CN202280016784A CN117083636A CN 117083636 A CN117083636 A CN 117083636A CN 202280016784 A CN202280016784 A CN 202280016784A CN 117083636 A CN117083636 A CN 117083636A
- Authority
- CN
- China
- Prior art keywords
- geometric
- patch
- coordinates
- boundary
- 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
- 238000007906 compression Methods 0.000 title description 58
- 230000006835 compression Effects 0.000 title description 58
- 238000000034 method Methods 0.000 claims abstract description 82
- 238000004891 communication Methods 0.000 claims description 17
- 238000013139 quantization Methods 0.000 claims description 17
- 238000005070 sampling Methods 0.000 claims description 7
- 238000012935 Averaging Methods 0.000 claims 1
- 230000033001 locomotion Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 239000013598 vector Substances 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 230000006837 decompression Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 11
- 238000009499 grossing Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012856 packing Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 101150114515 CTBS gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 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
- 238000007405 data analysis Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design 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
- 238000001914 filtration Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开内容涉及用于利用边界几何信息的预测编码来对3D网格进行编码或解码的方法和系统。该示例解码方法包括:接收包括三维网格的几何补丁的编码比特流;从编码比特流中提取包括与三维网格中的边界顶点的几何坐标集合相对应的点集合的几何补丁的经重建的几何图像;基于该几何坐标集合来得出边界顶点的3D几何坐标;获得边界顶点的预测残差;以及由该设备基于所得出的3D几何坐标和预测残差来重建边界顶点的几何信息。
Description
交叉引用
本申请基于于2022年3月15日提交的美国临时专利申请第63/319,976号并要求其优先权权益,该美国临时专利申请通过引用整体并入本文。本申请还基于于2022年10月26日提交的美国专利申请第17/973,792号并要求其优先权权益,该美国专利申请通过引用整体并入本文。
技术领域
本公开内容总体上涉及网格编码(或压缩)和网格解码(或解压缩)处理,并且具体地涉及用于网格压缩的边界几何信息的预测编码的方法和系统。
背景技术
本文中提供的该背景技术描述是出于总体上呈现本公开内容的上下文的目的。就该背景技术部分中描述的工作而言,目前署名的发明人的工作以及该描述的可以不被另外限定为提交本申请时的现有技术的各方面既没有明确地也没有隐含地承认为是针对本公开内容的现有技术。
开发了各种技术来捕获、表示和模拟三维(three-dimension,3D)空间中的真实世界对象、环境等。世界的3D表示可以实现更沉浸式的交互式通信形式。对象和环境的示例3D表示包括但不限于点云和网格。对象和环境的一系列3D表示可以形成视频序列。可以利用对象和环境的一系列3D表示内的冗余和相关性将这样的视频序列压缩和编码成更紧凑的数字形式。
发明内容
本公开内容总体上涉及3D网格的编码(压缩)和解码(解压缩),并且具体涉及用于网格压缩的边界几何信息的预测编码。
本公开内容描述了一种用于对三维网格的几何补丁进行解码的方法的实施方式。该方法包括由设备接收包括三维网格的几何补丁的编码比特流。该设备包括存储指令的存储器和与存储器通信的处理器。该方法还包括:由设备从编码比特流中提取包括与三维网格中的边界顶点的几何坐标集合相对应的点集合的几何补丁的经重建的几何图像;由设备基于几何坐标集合得出边界顶点的3D几何坐标;由设备获得边界顶点的预测残差;以及由设备基于所得出的3D几何坐标和预测残差来重建边界顶点的几何信息。
本公开内容描述了一种用于对三维网格的几何补丁进行解码的方法的另一实施方式。该方法包括由设备接收编码比特流。该设备包括存储指令的存储器和与存储器通信的处理器。该方法还包括:由设备从编码比特流中提取边界顶点的多个几何预测,其中,每个几何预测包括预测的几何坐标集合;由设备基于多个几何预测来确定边界顶点的预测几何值;由设备获得边界顶点的预测残差;以及由设备基于预测几何值和预测残差来重建边界顶点的几何信息。
根据另一方面,本公开内容的实施方式提供了一种用于对3D网格进行编码或解码的设备。该设备包括存储指令的存储器;和与存储器通信的处理器。当处理器执行指令时,该处理器被配置成使设备执行上述方法。
根据另一方面,本公开内容的实施方式提供了一种存储指令的非暂态计算机可读介质,所述指令在由计算机执行用于视频解码和/或编码时使计算机执行以上方法。
在附图、说明书和权利要求书中更详细地描述了以上方面和其他方面及其实现方式。
附图说明
所公开的主题的另外的特征、性质和各种优点将根据以下详细描述和附图更加明显,在附图中:
图1是根据实施方式的通信系统的简化框图的示意性图示;
图2是根据实施方式的流式传输系统的简化框图的示意性图示;
图3示出了根据一些实施方式的用于对网格帧进行编码的编码器的框图;
图4示出了根据一些实施方式的用于对与网格帧相对应的经压缩比特流进行解码的解码器的框图;
图5是根据实施方式的视频解码器的简化框图的示意性图示;
图6是根据实施方式的视频编码器的简化框图的示意性图示;
图7示出了根据一些实施方式的用于对网格帧进行编码的编码器的框图;
图8示出了根据本公开内容的一些实施方式的用于网格压缩的框架的图。
图9示出了根据本公开内容的一些实施方式的用于网格压缩的框架的另一图。
图10示出了根据本公开内容的一些实施方式的用于网格压缩的框架的另一图。
图11示出了根据一些实施方式的概述处理示例的流程图。
图12是根据实施方式的计算机系统的示意性图示。
具体实施方式
贯穿本说明书和权利要求书,术语可以具有在上下文中建议或暗示的超出明确陈述的含义的有细微差别的含义。如本文所使用的短语“在一个实施方式中”或“在一些实施方式中”不一定是指相同的实施方式,并且如本文所使用的短语“在另一实施方式中”或“在其他实施方式中”不一定是指不同的实施方式。同样,如本文所使用的短语“在一个实现方式中”或“在一些实现方式中”不一定是指相同的实现方式,并且如本文所使用的短语“在另一实现方式中”或“在其他实现方式中”不一定是指不同的实现方式。例如,意指所要求保护的主题包括示例性实施方式/实现方式的整体或部分的组合。
通常,可以至少部分地根据上下文的使用来理解术语。例如,如本文中所使用的诸如“和”、“或”或“和/或”的术语可以至少部分地取决于使用这样的术语的上下文而包括各种各样的含义。通常,“或”(如果用于关联列表,例如,A、B或C)旨在意指:A、B和C,这里以包含性的意义来使用;以及A、B或C,这里以排他性的意义来使用。另外,至少部分地取决于上下文,如本文所使用的术语“一个或更多个”或“至少一个”可以用于以单数意义描述任何特征、结构或特性,或者可以用于以复数意义描述特征、结构或特性的组合。类似地,术语例如“一”、“一个”或“该”同样可以被理解成传达单数用法或传达复数用法,这至少部分地取决于上下文。另外,术语“基于”或“由……确定”可以被理解为不一定旨在传达排他的因素集合,并且可以替代地允许存在不一定明确描述的附加因素,这同样至少部分地取决于上下文。
3D媒体处理中的技术发展例如3D捕获、3D建模、3D呈现等中的进步已经促进了跨若干平台和设备的3D内容的普遍创建。这样的3D内容包含如下信息,该信息可以被处理以生成各种形式的媒体,以提供例如沉浸式观看/呈现和交互式体验。3D内容的应用是丰富的,包括但不限于虚拟现实、增强现实、元宇宙交互、游戏、沉浸式视频会议、机器人、计算机辅助设计(computer-aided design,CAD)等。根据本公开内容的一方面,为了改善沉浸式体验,3D模型变得越来越复杂,并且3D模型的创建和消耗需要大量数据资源,例如数据存储、数据传输资源和数据处理资源。
与通常由2D像素阵列形式的数据集表示的传统2维(2-dimensional,2D)内容(例如图像)相比,具有三维全分辨率像素化的3D内容可能是极其资源密集的,并且即使不是在大多数实际应用中也是在许多实际应用中是不必要的。根据本公开内容的一些方面,在大多数3D沉浸式应用中,可以采用3D内容的数据密集度较低的表示。例如,在大多数应用中,可能只需要3D场景(由诸如LIDAR设备的传感器捕获的真实世界场景或者由软件工具生成的动画3D场景)中的地形信息,而不是对象的体积信息。因此,可以使用更有效形式的数据集来表示3D对象和3D场景。例如,3D网格可以用作一种3D模型来表示沉浸式3D内容,例如3D场景中的3D对象。
一个或更多个对象的网格(可替选地称为网格模型)可以包括顶点的集合。顶点可以彼此连接以形成边。边可以进一步连接以形成面。面可以进一步形成多边形。各种对象的3D表面可以被分解成例如面和多边形。顶点、边、面、多边形或表面中的每一个都可以与各种属性例如颜色、法线、纹理等相关联。表面的法线可以被称为表面法线;以及/或者顶点的法线可以被称为顶点法线。顶点如何连接成边、面或多边形的信息可以被称为连接性信息。连接性信息对于唯一地定义网格的组成部分而言是重要的,因为同一顶点集合可以形成不同的面、表面和多边形。通常,顶点在3D空间中的位置可以由其3D坐标来表示。面可以由顺序连接的顶点集合来表示,其中每个顶点与3D坐标集合相关联。同样,边可以由两个顶点表示,其中每个顶点与其3D坐标相关联。可以在3D网格数据集中对顶点、边和面编索引。
网格可以由一个或更多个这些基本元素类型的集合来定义和描述。然而,并非上述所有类型的元素都是必要的来完整地描述网格。例如,可以通过仅使用顶点及其连接性来完整地描述网格。对于另一示例,可以通过仅使用面的公共顶点和面的列表来完整地描述网格。因此,网格可以具有由可替选数据集组成和格式描述的各种可替选类型。示例网格类型包括但不限于面-顶点网格、翼形边网格、半边网格、四边网格、角桌网格、顶点-顶点网格等。相应地,网格数据集可以存储有符合具有如下文件扩展名的替选文件格式的信息,所述文件扩展名包括但不限于:.raw、.blend、.fbx、.3ds、.dae、.dng、3dm、.dsf、.dwg、.obj、.ply、.pmd、.stl、amf、.wrl、.wrz、.x3d、.x3db、.x3dv、.x3dz、.x3dbz、.x3dvz、.c4d、.lwo、.smb、.msh、.mesh、.veg、.z3d、.vtk、.l4d等。这些元素的属性例如颜色、法线、纹理等可以以各种方式被包括到网格数据集中。
在一些实现方式中,网格的顶点可以被映射到像素化的2D空间(称为UV空间)中。因此,网格的每个顶点可以映射到UV空间中的像素。在一些实现方式中,一个顶点可以被映射到UV空间中的一个以上的像素,例如,边界处的顶点可以被映射到UV空间中的两个或三个像素。同样,网格中的面或表面可以被采样成可以在或可以不在网格中的所记录的顶点中的多个3D点,并且这些多个3D点也可以被映射到二维UV空间中的像素。将网格中的顶点和面或表面的采样3D点(sampled 3D point)映射到UV空间中以及UV空间中的后续数据分析和处理可以促进网格或一系列网格的3D数据集的数据存储、压缩和编码,如下面进一步详细描述的。映射的UV空间数据集可以被称为网格的2D图像、2D图或UV图像。
在将3D网格中的顶点和采样表面点(sampled surface point)映射到2D UV空间之后,一些像素可以被映射到3D网格的顶点和采样表面点,而其他像素可以不被映射。网格的2D图像中的每个映射像素可以与3D网格中对应的映射顶点或表面点的信息相关联。根据UV空间中的像素所包括的信息类型,可以构建网格的各种2D图像或2D图。多个2D图的集合可以被用作网格的可替选和/或联合表示。
例如,网格的最简单的2D图可以被构建为占用图。占用图可以指示UV空间中被映射到网格的3D顶点或采样表面点的像素。占用的指示可以在2D像素中的每个2D像素处由二进制指示符来表示,例如,其中二进制值“1”指示映射或占用,以及二进制值“0”表示非映射或非占用。因此,占用图可以被构建为2D图像。虽然正常的2D图像包含具有例如8位色深的三个通道(RGB、YUV、YCrCb等)的阵列,但是网格的这样的2D占用图仅需要单比特二进制通道(single-bit binary channel)。
对于另一示例,可以针对网格构建2D几何图。2D几何图不是包含单个二进制通道,而是完整的三通道图像,其中,被占用像素中的每个被占用像素处的三色通道将对应于网格中的对应的映射顶点或采样3D点的三个3D坐标。
在一些实现方式中,可以针对网格构建其他2D图。例如,可以从网格数据集中提取网格的顶点和采样3D点中的每一个的属性集合,并且可以将其编码到2D图图像的3个颜色通道中。这样的2D图可以被称为网格的属性图。特定的属性图可以包含UV空间中的被占用像素中的每个被占用像素的三通道颜色。对于另一示例,与网格的每个映射顶点或采样3D点相关联的纹理属性可以被参数化成三通道值,并被编码成2D属性图。对于另一示例,与网格的每个映射顶点或采样3D点相关联的法线属性可以被参数化成三通道值,并且被编码成2D属性图。在一些示例实现方式中,可以构建多个2D属性图,以便保存网格的顶点和采样表面点的所有必要属性信息。
上述2D图仅仅是示例。可以构建网格的其他类型的2D图。此外,可以从3D网格中提取其他数据集,以与上面的2D图一起联合表示原始3D网格。例如,顶点之间的连接或连接性信息可以在2D图之外以列表、表格等形式被单独分组和组织。例如,连接性信息可以使用顶点索引来指代顶点。顶点索引可以被映射到它们在2D图中对应的像素位置。对于另一示例,表面纹理、颜色、法线、位移和其他信息可以在2D图之外单独提取和组织,而不是作为2D图。可以从3D网格中进一步提取其他元数据,以结合2D图和上述其他数据集来表示3D网格。
虽然上述示例实现方式集中于静态的网格,但是根据本公开内容的方面,3D网格可以是动态的。例如,动态网格可以指其中组成部分(几何信息、连通性信息、映射信息、顶点属性和属性图)中的至少一个组成部分随时间变化的网格。因此,动态网格可以由一系列网格或网格(也称为网格帧)来描述,类似于形成视频的2D图像帧的定时序列。
在一些示例实现方式中,动态网格可以具有恒定的连接性信息、时变几何形状和时变顶点属性。在一些示例中,动态网格可以具有时变连接性信息。在一些示例中,可以使用数字3D内容创建工具来生成具有时变属性图和时变连接性信息的动态网格。在一些其他示例中,使用体积获取/检测/感测技术来生成动态网格。体积获取技术可以生成具有时变连接性信息的动态网格尤其是在实时约束下具有时变连接性信息的动态网格。
动态网格可能需要大量数据,因为动态网格可以包括随时间改变的大量信息。然而,可以执行压缩以利用网格帧内(帧内压缩)和网格帧之间(帧间压缩)的冗余。可以实现各种网格压缩过程,以允许网格表示中的媒体内容的有效存储和传输,特别是对于网格序列。
本公开内容的各方面提供了用于网格压缩的示例架构和技术。该技术可以用于各种网格压缩,包括但不限于静态网格压缩、动态网格压缩、具有恒定连接性信息的动态网格的压缩、具有时变连接性信息的动态网格的压缩、具有时变属性图的动态网格的压缩等。这些技术可以在各种应用的有损和无损压缩中使用,这些应用例如是实时沉浸式通信、存储、自由视点视频、增强现实(augmented reality,AR)、虚拟现实(virtual reality,VR)等。这些应用可以包括诸如随机访问和可扩展/渐进编码的功能。
虽然本公开内容明确地描述了适用于3D网格的技术和实现方式,但是本文描述的各种实现方式的基础原理适用于其他类型的3D数据结构,包括但不限于点云(PointCloud,PC)数据结构。为了简单起见,下面对3D网格的引用旨在是一般性的,并且包括其他类型的3D表示,例如点云和其他3D体积数据集。
首先转向示例架构级实现方式,图1示出了根据本公开内容的示例实施方式的通信系统(100)的简化框图。通信系统(100)可以包括多个终端设备,这些终端设备可以经由例如通信网络(150)(可替选地称为网络)相互通信。例如,通信系统(100)可以包括经由网络(150)互连的一对终端设备(110)和(120)。在图1的示例中,第一对终端设备(110)和(120)可以执行3D网格的单向传输。例如,终端设备(110)可以压缩3D网格或3D网格序列,所述3D网格或3D网格序列可以由终端设备(110)生成,或者从存储器获得,或者由与终端设备(110)连接的3D传感器(105)捕获。经压缩的3D网格或3D网格序列可以例如以比特流(也称为编码比特流)的形式经由网络(150)传输到另一终端设备(120)。终端设备(120)可以从网络(150)接收经压缩的3D网格或3D网格序列,对比特流进行解压缩以重建原始3D网格或3D网格序列,并且适当地对经重建的3D网格或3D网格序列进行处理以用于显示或用于其他目的/用途。单向数据传输在媒体服务应用等中可以是常见的。
在图1的示例中,终端设备(110)和(120)中的一个或两个可以被实现为服务器、固定或移动个人计算机、膝上型计算机、平板计算机、智能电话、游戏终端、媒体播放器和/或专用三维(3D)设备等,但是本公开内容的原理可以不限于此。网络(150)可以表示在终端设备(110)与终端设备(120)之间传输经压缩的3D网格的任何类型的网络或网络组合。网络(150)可以包括例如有线的(有线)和/或无线通信网络。网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性的网络包括长途电信网络、局域网、广域网、蜂窝网络和/或互联网。出于本公开内容的目的,除非以下在本文中说明,否则网络(150)的架构和拓扑对于本公开内容的操作可能是非实质相关的。
图2示出了根据本公开内容的实施方式的流式传输系统(200)的示例简化框图。图2示出了所公开的与3D网格和经压缩的3D网格相关的实现方式的示例应用。所公开的主题可以同样适用于其他支持3D网格或点云的应用,例如3D远程呈现应用、虚拟现实应用等。
流式传输系统(200)可以包括捕获或存储子系统(213)。捕获或存储子系统(213)可以包括3D网格生成器或存储介质(201),例如,3D网格或点云生成工具/软件、图形生成部件或点云传感器,例如生成或提供未经压缩的3D网格(202)或点云(202)的光检测和测距(light detection and ranging,LIDAR)系统、3D摄像机、3D扫描仪、3D网格存储装置等。在一些示例实现方式中,3D网格(202)包括3D网格的顶点或点云的3D点(两者都被称为3D网格)。3D网格(202)被描绘为粗线,以强调在与经压缩的3D网格(204)(经压缩的3D网格的比特流)相比时对应的高数据量。经压缩的3D网格(204)可以由包括耦接至3D网格(202)的编码器(203)的电子设备(220)生成。编码器(203)可以包括硬件、软件或其组合,以实现或实施如下面更详细描述的所公开主题的各方面。被描绘为细线以强调在与未经压缩的3D网格(202)的流相比时较低的数据量的经压缩的3D网格(204)(或经压缩的3D网格(204)的比特流)可以被存储在流式传输服务器(205)中以供将来使用。一个或更多个流式传输客户端子系统(例如图2中的客户端子系统(206)和(208))可以访问流式传输服务器(205)以检索经压缩的3D网格(204)的副本(207)和(209)。客户端子系统(206)可以例如在电子设备(230)中包括解码器(210)。解码器(210)可以被配置成对经压缩的3D网格的传入副本(207)进行解码,并且创建经重建的3D网格(211)的传出流,其可以在呈现设备(212)上呈现或用于其他用途。
注意,电子设备(220)和(230)可以包括其他部件(未示出)。例如,电子设备(220)可以包括解码器(未示出),并且电子设备(230)也可以包括编码器(未示出)。
在一些流式传输系统中,可以根据某些标准对经压缩的3D网格(204)、(207)和(209)(例如,经压缩的3D网格的比特流)进行压缩。在一些示例中,如下面进一步详细描述的,在3D网格首先被投影以映射到适于视频压缩的2D表示中之后,使用视频编码标准来利用3D网格的压缩中的冗余和相关性。这些标准的非限制性示例包括高效视频编码(HighEfficiency Video Coding,HEVC)、通用视频编码(Versatile Video Coding,VVC)等,如下面进一步详细描述的。
经压缩的3D网格或3D网格序列可以由编码器生成,而解码器可被配置成对经压缩或编码的3D网格进行解压缩。图3示出了在这样的编码器(301)和解码器(303)中的3D网格的高级示例数据流。如图3所示,可以通过轨迹重新网格化(track remeshing)、参数化和/或体素化对原始输入3D网格或3D网格序列(302)进行预处理,以生成到用于将3D网格映射到2D UV空间的映射单元(304)的输入数据,在一些实现方式中,该2D UV空间可以包括具有UV图谱的网格。3D网格可被采样以包括可能不在顶点中的3D表面点,并将这些采样3D表面点添加在到UV空间的映射中。可以在编码器301中生成各种2D图,包括但不限于占用图(310)、几何图(312)、属性图(314)。这些图像类型的图可以由编码器301使用例如视频编码/压缩技术来压缩。例如,视频编码器可以使用帧内预测技术和由其他3D网格参考帧进行的帧间预测来帮助压缩3D网格帧。其他非图像或非图数据或元数据(316)也可以以各种方式被编码以移除冗余,从而对于非限制性示例经由熵编码来生成经压缩的非图数据。编码器301然后可以对经压缩的2D图和非图数据进行组合或复用,并进一步对组合的数据进行编码以生成编码比特流(encoded bitstream)(或称为编码比特流(coded bitstream))。编码比特流然后可以被存储或传输以供解码器303使用。解码器可以被配置成对比特流进行解码,对已解码的比特流进行解复用以获得经压缩的2D图和非图数据,并且执行解压缩以生成已解码的占用图(320)、已解码的几何图(322)、已解码的属性图(324)以及已解码的非图数据和元数据(326)。解码器303然后还可以被配置成从已解码的2D图(320、322和324)和已解码的非图数据(326)中重建3D网格或3D网格序列(330)。
更详细地,图4示出了根据本公开内容的一些实施方式的用于对3D网格帧进行编码的示例3D网格编码器(400)的框图。在一些示例实现方式中,网格编码器(400)可以在通信系统(100)和流式传输系统(200)中使用。例如,编码器(203)可以以与网格编码器(400)类似的方式被配置和操作。
网格编码器(400)可以接收3D网格帧作为未经压缩的输入,并生成与经压缩的3D网格帧相对应的比特流。在一些示例实现方式中,网格编码器(400)可以从任何源例如图2的网格或点云源(201)等接收3D网格帧。
在图4的示例中,网格编码器(400)可以包括补丁生成模块(406)(可替选地称为图表生成模块)、补丁打包模块(408)、几何图像生成模块(410)、纹理图像生成模块(412)、补丁信息模块(404)、占用图模块(414)、平滑模块(436)、图像填充模块(416)和(418)、组扩展模块(420)、视频压缩模块(422)、(423)和(432)、辅助补丁信息压缩模块(438)、熵压缩模块(434)和复用器(424)。
在本公开内容的各种实施方式中,模块可以指软件模块、硬件模块或其组合。软件模块可以包括具有预定义功能并且与其他相关部分一起工作以实现预定义目标(例如本公开内容中描述的那些功能)的计算机程序或计算机程序的一部分。可以使用被配置成执行本公开内容中描述的功能的处理电路系统和/或存储器来实现硬件模块。可以使用一个或更多个处理器(或处理器和存储器)来实现每个模块。同样,可以使用处理器(或处理器和存储器)来实现一个或更多个模块。此外,每个模块可以是包括该模块的功能的整个模块的一部分。此处的描述也可以适用于术语模块和其他等效术语(例如,单元)。
根据本公开内容的一方面,并且如上所述,网格编码器(400)将3D网格帧转换成基于图像的表示(例如,2D图)以及用于帮助将经压缩的3D网格转换回解压缩的3D网格的一些非图元数据(non-map meta data)(例如,补丁或图表信息)。在一些示例中,网格编码器(400)可以将3D网格帧转换成2D几何图或图像、纹理图或图像以及占用图或图像,并且然后使用视频编码技术将几何图像、纹理图像和占用图与元数据和其他经压缩的非图数据一起编码成比特流。通常,并且如上所述,2D几何图像是具有如下2D像素的2D图像,该2D像素填充有与投影(术语“投影”用于表示“映射”)到2D像素的3D点相关联的几何值,并且填充有几何值的2D像素可以被称为几何样本。纹理图像是具有如下像素的2D图像,该像素填充有与投影到2D像素的3D点相关联的纹理值,并且填充有纹理值的2D像素可以称为纹理样本。占用图是具有如下2D像素的2D图像,该2D像素填充有来指示被3D点占用或非占用的值。
补丁生成模块(406)将3D网格分割成可以交叠或不交叠的图表或补丁的集合(例如,补丁被定义为由3D网格或点云描述的表面的邻接子集(contiguous subset)),使得每个补丁可以由相对于2D空间中的平面的深度场来描述(例如,表面的平坦化使得表面上更深的3D点更远离对应的2D图的中心)。在一些实施方式中,补丁生成模块(406)旨在将3D网格分解成最小数量的具有平滑边界的补丁,同时还使重建误差最小化。
补丁信息模块(404)可以收集指示补丁的大小和形状的补丁信息。在一些示例中,补丁信息可以被打包为数据帧,并且然后由辅助补丁信息压缩模块(438)进行编码以生成经压缩的辅助补丁信息。辅助补丁压缩可以以各种形式实现,包括但不限于各种类型的算术编码。
补丁或图表打包模块(408)可以被配置成将提取的补丁映射到UV空间的2D网格上,同时使未使用的空间最小化。在一些示例实现方式中,2D UV空间的像素可以被粒化为用于补丁或图表的映射的像素的块。块大小可以预先定义。例如,块大小可以是M×M(例如,16×16)。有了这样的粒度,可以保证2D UV网格的每个M×M块都与唯一的补丁相关联。换句话说,每个补丁以M×M的2D粒度映射到2D UV空间。高效的补丁打包可以通过使未使用的空间最小化或确保时间一致性来直接影响压缩效率。下面将更详细地给出将补丁或图表打包到2D UV空间中的示例实现方式。
几何图像生成模块(410)可以在2D网格中生成与给定补丁位置处的3D网格的几何形状相关联的2D几何图像。纹理图像生成模块(412)可以在2D网格中生成与给定补丁位置处的3D网格的纹理相关联的2D纹理图像。如上所述,几何图像生成模块(410)和纹理图像生成模块(412)本质上利用在上述打包过程期间计算的3D到2D映射来将3D网格的几何形状和纹理存储为2D图像。
在一些实现方式中,为了更好地处理多个点被投影到同一样本的情况(例如,补丁在网格的3D空间中交叠),2D图像可以被分层。换句话说,每个补丁可以被投影到例如称为层的两个图像上,使得多个点可以被投影到不同层中的相同点上。
在一些示例实现方式中,几何形状图像可以由宽×高(W×H)的单色帧来表示。因此,3个亮度或色度通道的三个几何图像可以用来表示3D坐标。在一些示例实现方式中,几何图像可以由具有有着特定色深(例如,8位、12位、16位等)的三个通道(RGB、YUV、YCrCb等)的2D图像来表示。因此,具有3个颜色通道的一个几何图像可以用于表示3D坐标。
为了生成纹理图像,纹理生成过程利用经重建/平滑的几何形状来计算与来自原始3D网格的采样点相关联的颜色(参见图3的“采样”,其例如将生成不在原始3D网格的顶点中的3D表面点)。
占用图模块(414)可以被配置成生成描述每个单元处的填充信息的占用图。例如,如上所述,占用图像可以包括二进制图,该二进制图针对2D网格的每个单元指示该单元属于空白空间还是属于3D网格。在一些示例实现方式中,占用图可以使用二进制信息来针对每个像素描述该像素是否被填充。在一些其他示例实现方式中,占用图可以使用二进制信息来针对每个像素块(例如,每个M×M块)描述该像素块是否被填充。
可以使用无损编码或有损编码来对由占用图模块(414)生成的占用图进行压缩。当使用无损编码时,可以使用熵压缩模块(434)来压缩占用图。当使用有损编码时,可以使用视频压缩模块(432)来压缩占用图。
注意,补丁打包模块(408)可能在打包在图像帧中的2D补丁之间留出一些空的空间。图像填充模块(416)和(418)可以填充空的空间(称为填充),以便生成可能适合于2D视频和图像编解码器的图像帧。图像填充也被称为背景填充,其可以用冗余信息填充未使用的空间。在一些示例中,良好实现的背景填充最小程度地增加了比特率,同时避免在补丁边界周围引入显著的编码失真。
视频压缩模块(422)、(423)和(432)可以基于合适的视频编码标准例如HEVC、VVC等对2D图像例如经填充的几何图像、经填充的纹理图像和占用图进行编码。在一些示例实现方式中,视频压缩模块(422)、(423)和(432)是单独操作的个体部件。注意,在一些其他示例实现方式中,视频压缩模块(422)、(423)和(432)可以实现为单个部件。
在一些示例实现方式中,平滑模块(436)被配置成生成经重建的几何图像的经平滑的图像。经平滑的图像可以被提供给纹理图像生成(412)。然后,纹理图像生成(412)可以基于经重建的几何图像来调整纹理图像的生成。例如,当在编码和解码期间补丁形状(例如,几何形状)略有失真时,可以在生成纹理图像时考虑失真,以对补丁形状的失真进行校正。
在一些实施方式中,组扩展(420)被配置成用冗余的低频内容填充对象边界周围的像素,以便提高经重建的3D网格的视觉质量以及编码增益。
复用器(424)可以被配置成将经压缩的几何图像、经压缩的纹理图像、经压缩的占用图、经压缩的辅助补丁信息复用到经压缩的比特流(或称为编码比特流)中。
图5示出了根据本公开内容的一些实施方式的用于对与3D网格帧相对应的经压缩比特流进行解码的示例网格解码器(500)的框图。在一些示例实现方式中,网格解码器(500)可以在通信系统(100)和流式传输系统(200)中使用。例如,解码器(210)可以被配置成以与网格解码器(500)类似的方式操作。网格解码器(500)接收经压缩的比特流,并基于经压缩的比特流生成经重建的3D网格,经压缩的比特流包括例如经压缩的几何图像、经压缩的纹理图像、经压缩的占用图、经压缩的辅助补丁信息。
在图5的示例中,网格解码器(500)可以包括解复用器(532)、视频解压缩模块(534)和(536)、占用图解压缩模块(538)、辅助补丁信息解压缩模块(542)、几何重建模块(544)、平滑模块(546)、纹理重建模块(548)和颜色平滑模块(552)。
解复用器(532)可以接收经压缩的比特流,并且将其分离成经压缩的纹理图像、经压缩的几何图像、经压缩的占用图和经压缩的辅助补丁信息。
视频解压缩模块(534)和(536)可以根据合适的标准(例如,HEVC、VVC等)对经压缩的图像进行解码并输出解压缩的图像。例如,视频解压缩模块(534)可以对经压缩的纹理图像进行解码并输出解压缩的纹理图像。视频解压缩模块(536)可以进一步对经压缩的几何图像进行解码并输出解压缩的几何图像。
占用图解压缩模块(538)可以被配置成根据合适的标准(例如,HEVC、VVC等)对经压缩的占用图进行解码并输出解压缩的占用图。
辅助补丁信息解压缩模块(542)可以被配置成根据合适的解码算法对经压缩的辅助补丁信息进行解码,并且输出解压缩的辅助补丁信息。
几何重建模块(544)可以被配置成接收解压缩的几何图像,并且基于解压缩的占用图和解压缩的辅助补丁信息生成经重建的3D网格几何形状。
平滑模块(546)可以被配置成对补丁的边缘处的不一致性进行平滑。平滑处理可以旨在减轻由于压缩伪影而可能出现在补丁边界处的潜在不连续性。在一些示例实现方式中,可以将平滑过滤器应用于位于补丁边界上的像素,以减轻可能由压缩/解压缩引起的失真。
纹理重建模块(548)可以被配置成基于解压缩的纹理图像和平滑几何形状来确定3D网格中的点的纹理信息。
颜色平滑模块(552)可以被配置成对颜色的不一致性进行平滑。3D空间中的非相邻补丁在2D视频中通常被彼此相邻地打包。在一些示例中,来自非相邻补丁的像素值可能被基于块的视频编解码器混合。颜色平滑的目的可以是减少在补丁边界处出现的可见伪影。
图6示出了根据本公开内容的实施方式的示例视频解码器(610)的框图。视频解码器(610)可以在网格解码器(500)中使用。例如,视频解压缩模块(534)和(536)、占用图解压缩模块(538)可以被类似地配置为视频解码器(610)。
视频解码器(610)可以包括解析器(620),以根据诸如编码视频序列的经压缩的图像来重建符号(621)。这些符号的类别可以包括用于管理视频解码器(610)的操作的信息。解析器(620)可以对接收到的编码视频序列进行解析/熵解码。编码视频序列的编码可以根据视频编码技术或标准进行,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文灵敏度的算术编码等。解析器(620)可以基于与群组相对应的至少一个参数,从编码视频序列中提取用于视频解码器中的像素的子群组中的至少之一的子群组参数集合。子群组可以包括图片群组(Group of Picture,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器(620)还可以从编码视频序列提取诸如变换系数、量化器参数值、运动矢量等的信息。
解析器(620)可以对从缓冲存储器接收的图像序列执行熵解码/解析操作以创建符号(621)。
取决于编码视频图片或其一部分的类型(例如:帧间图片和帧内图片、帧间块和帧内块)以及其他因素,符号(621)的重建可以涉及多个不同单元。涉及哪些单元以及涉及方式可以通过由解析器(620)从编码视频序列中解析出的子群组控制信息来控制。为了清楚起见,未描绘这样的子群组控制信息在解析器(620)与下面的多个单元之间的流动。
除已经提及的功能块以外,视频解码器(610)可以在概念上被细分为如下所述的多个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互并且可以至少部分地集成到彼此。以下对功能单元的概念细分仅仅是出于描述所公开的主题的目的。
视频解码器(610)可以包括缩放器/逆变换单元(651)。缩放器/逆变换单元(651)可以从解析器(620)接收量化的变换系数以及控制信息(包括使用哪种变换、块大小、量化因子、量化缩放矩阵等)作为符号(621)。缩放器/逆变换单元(651)可以输出包括可以输入到聚合器(655)中的样本值的块。
在一些情况下,缩放器/逆变换单元(651)的输出样本可以涉及帧内编码块;即:不使用来自先前重建的图片的预测性信息但可以使用来自当前图片的先前重建部分的预测性信息的块。这样的预测性信息可以由帧内图片预测单元(652)提供。在一些情况下,帧内图片预测单元(652)可以使用从当前图片缓冲器(658)获取的周围已重建的信息来生成大小和形状与重建中的块相同的块。例如,当前图片缓冲器(658)对部分重建的当前图片和/或完全重建的当前图片进行缓冲。在一些情况下,聚合器(655)基于每个样本将帧内预测单元(652)已经生成的预测信息添加至如由缩放器/逆变换单元(651)提供的输出样本信息。
在其他情况下,缩放器/逆变换单元(651)的输出样本可以属于经帧间编码并且可能经运动补偿的块。在这样的情况下,运动补偿预测单元(653)可以访问参考图片存储器(657)以获取用于预测的样本。在根据关于块的符号(621)对所获取的样本进行运动补偿之后,可以由聚合器(655)将这些样本添加至缩放器/逆变换单元(651)的输出(在这种情况下,称作残差样本或残差信号)以生成输出样本信息。运动补偿预测单元(653)从中获取预测样本的参考图片存储器(657)内的地址可以由运动矢量控制,运动矢量能够以符号(621)的形式供运动补偿预测单元(653)使用,符号(621)可以具有例如X、Y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时从参考图片存储器(657)获取的样本值的插值、运动矢量预测机制等。
聚合器(655)的输出样本可以在环路滤波器单元(656)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,环路内滤波器技术受控于包括在编码视频序列(也被称为编码视频码流)中的参数,并且所述参数作为来自解析器(620)的符号(621)可用于环路滤波器单元(656),但是视频压缩技术也可以响应于在对编码图片或编码视频序列的先前(按解码顺序的)部分进行解码期间获得的元信息,以及响应于先前重建并且经环路滤波的样本值。
环路滤波器单元(656)的输出可以是样本流,所述样本流可以被输出至呈现设备以及被存储在参考图片存储器(657)中以用于将来的帧间图片预测。
一旦被完全重建,某些编码图片就可以用作参考图片以用于将来预测。例如,一旦与当前图片相对应的编码图片被完全重建,并且该编码图片(通过例如解析器(620))被识别为参考图片,则当前图片缓冲器(658)就可以变为参考图片存储器(657)的一部分,并且可以在开始重建随后的编码图片之前重新分配新的当前图片缓冲器。
视频解码器(610)可以根据诸如ITU-T H.265建议书的标准中的预定的视频压缩技术来执行解码操作。在编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,编码视频序列可以符合所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅在该配置文件下可供使用的工具。对于合规性,还要求编码视频序列的复杂度在由视频压缩技术或标准的层级限定的界限内。在一些情况下,层级限制最大图片大小、最大帧速率、最大重建样本速率(以例如每秒兆个样本为单位进行度量)、最大参考图片大小等。在一些情况下,由层级设置的限制可以通过假设参考解码器(HypotheticalReference Decoder,HRD)规范以及在编码视频序列中用信号表示的用于HRD缓冲器管理的元数据来进一步限制。
图7示出了根据本公开内容的实施方式的视频编码器(703)的框图。视频编码器(703)可以在压缩3D网格或点云的网格编码器(400)中使用。在一些示例实现方式中,视频压缩模块(422)和(423)以及视频压缩模块(432)与编码器(703)类似地配置。
视频编码器(703)可以接收诸如经填充的几何图像、经填充的纹理图像等的2D图像,并且生成经压缩的图像。
根据本公开内容的示例实施方式,视频编码器(703)可以实时地或在由应用所要求的任何其他时间约束下,将源视频序列的图片(图像)编码并压缩为编码视频序列(经压缩的图像)。实施适当的编码速度是控制器(750)的一个功能。在一些实施方式中,控制器(750)控制如下所述的其他功能单元并且在功能上耦接至其他功能单元。出于简洁起见,未描绘耦接。通过控制器(750)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片群组(GOP)布局、最大运动矢量搜索范围等。控制器(750)可以被配置成具有其他合适的功能,这些功能与针对某些系统设计优化的视频编码器(703)相关。
在一些示例实现方式中,视频编码器(703)可以被配置成在编码环路中操作。作为超简化的描述,在示例中,编码环路可以包括源编码器(730)(例如,负责基于要编码的输入图片以及(一个或多个)参考图片创建诸如符号流的符号)以及嵌入在视频编码器(703)中的(本地)解码器(733)。解码器(733)以类似于(远程)解码器也将创建样本数据的方式重建符号以创建样本数据(因为在所公开的主题中考虑的视频压缩技术中,符号与编码视频比特流之间的任何压缩都是无损的)。将经重建的样本流(样本数据)输入至参考图片存储器(734)。由于符号流的解码产生与解码器位置(本地或远程)无关的比特精确结果,因此参考图片存储器(734)中的内容在本地编码器与远程编码器之间也是比特精确的。换言之,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。该参考图片同步性的基本原理(以及在例如由于信道误差而无法维持同步性的情况下产生的漂移)也在一些相关技术中使用。
“本地”解码器(733)的操作可以与已经在上面结合图6详细描述的“远程”解码器例如视频解码器(610)的操作相同。然而,还简要参照图6,当符号可用并且熵编码器(745)和解析器(620)将符号编码/解码到编码视频序列可以为无损时,包括解析器(620)的视频解码器(610)的熵解码部分可能无法完全在本地解码器(733)中实现。
在本公开内容的各种实施方式中,解码器中存在的除解析/熵解码之外的任何解码器技术也可能必须以基本相同的功能形式存在于对应的编码器中。出于该原因,各种实施方式中公开的主题可以集中在解码器操作上。由于编码器技术与已全面描述的解码器技术互逆,因此可以简化对编码器技术的描述。下面仅在某些部分中需要和提供更详细的描述。。
在一些示例中,在操作期间,源编码器(730)可以执行运动补偿预测编码,其参考来自视频序列中被指定为“参考图片”的一个或更多个先前编码的图片对输入图片进行预测性编码。以此方式,编码引擎(732)对输入图片的像素块与可以被选作该输入图片的(一个或多个)预测参考的(一个或多个)参考图片的像素块之间的差异进行编码。
本地视频解码器(733)可以基于由源编码器(730)创建的符号对可以被指定为参考图片的图片的编码视频数据进行解码。编码引擎(732)的操作可以有利地是有损处理。当编码视频数据可以在视频解码器(图7中未示出)处被解码时,经重建的视频序列通常会是具有一些误差的源视频序列的副本。本地视频解码器(733)复制可以由视频解码器对参考图片执行的解码处理,并且可以使经重建的参考图片存储在参考图片高速缓存(734)中。以这种方式,视频编码器(703)可以在本地存储经重建的参考图片的副本,所述副本与将由远端视频解码器获得的经重建的参考图片具有共同内容(不存在传输误差)。
预测器(735)可以针对编码引擎(732)执行预测搜索。即,对于要编码的新图片,预测器(735)可以在参考图片存储器(734)中搜索可以用作新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(735)可以基于样本块逐像素块操作以找到合适的预测参考。在一些情况下,如由预测器(735)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(734)中存储的多个参考图片取得的预测参考。
控制器(750)可以管理源编码器(730)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群组参数。
所有以上提及的功能单元的输出可以在熵编码器(745)中经受熵编码。熵编码器(745)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩,将符号转换成编码视频序列。
控制器(750)可以管理视频编码器(703)的操作。在编码期间,控制器(750)可以为每个编码图片分配可能影响可以应用于相应的图片的编码技术的某些编码图片类型。例如,通常可以将图片分配为以下图片类型之一:
帧内图片(I图片),其可以是可以在不将序列中的任何其他图片用作预测源的情况下进行编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,
“IDR”)图片。本领域技术人员了解I图片的那些变型及其相应的应用和特征。
预测性图片(P图片),其可以是可以使用下述帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可以使用下述帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多预测性图片可以使用多于两个参考图片和相关联元数据以用于单个块的重建。
源图片通常可以在空间上细分成多个样本块(例如,各自4x4、8x8、4x8或16x16个样本的块),并且逐块被编码。这些块可以参考其他(已经被编码的)块进行预测性编码,所述其他块通过应用于块的相应图片的编码分配来确定。例如,可以对I图片的块进行非预测性编码,或者可以参考同一图片的已经被编码的块对I图片的块进行预测性编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片经由空间预测或经由时间预测对P图片的像素块进行预测性编码。可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测对B图片的块进行预测性编码。
视频编码器(703)可以根据诸如ITU-T H.265建议书的预定的视频编码技术或标准执行编码操作。在其操作中,视频编码器(703)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,编码视频数据可以符合由所使用的视频编码技术或标准指定的语法。
视频可以呈时间序列中的多个源图片(图像)的形式。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其他)相关性。在示例中,将被称为当前图片的正在被编码/解码的特定图片分成块。在当前图片中的块类似于视频中先前被编码并且仍被缓冲的参考图片中的参考块时,可以通过被称为运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,运动矢量可以具有识别参考图片的第三维度。
在一些实施方式中,在帧间图片预测中可以使用双向预测技术。根据双向预测技术,使用两个参考图片,例如按解码顺序均在视频中的当前图片之前(但按显示顺序可能分别是过去和将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来预测块。
此外,可以在帧间图片预测中使用合并模式技术以提高编码效率。
根据本公开内容的一些实施方式,诸如帧间图片预测和帧内图片预测的预测以块为单位来执行。例如,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(codingtree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64x64像素、32x32像素或16x16像素。一般地,CTU包括三个编码树块(coding tree block,CTB),所述三个编码树块是一个亮度CTB和两个色度CTB。每个CTU可以被递归地以四叉树拆分成一个或多个编码单元(CU)。例如,可以将64x64像素的CTU拆分成一个64x64像素的CU、或4个32x32像素的CU、或16个16x16像素的CU。在示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,将CU拆分成一个或更多个预测单元(PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施方式中,译码(编码/解码)中的预测操作以预测块为单位来执行。使用亮度预测块作为预测块的示例,预测块包括像素值(例如,亮度值)的矩阵,例如8x8像素、16x16像素、8x16像素、16x8像素等。
在各种实施方式中,上述网格编码器(400)和网格解码器(500)可以用硬件、软件或其组合来实现。例如,网格编码器(400)和网格解码器(500)可以用处理电路系统例如在有或没有软件的情况下工作的一个或更多个集成电路(integrated circuit,IC)来实现,这些集成电路例如是专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)等。在另一示例中,网格编码器(400)和网格解码器(500)可以被实现为包括存储在非易失性(或非暂态)计算机可读存储介质中的指令的软件或固件。这些指令在由诸如一个或更多个处理器的处理电路系统执行时,使得处理电路系统执行网格编码器(400)和/或网格解码器(500)的功能。
图8示出了将3D x-y-z坐标系(819)中的3D补丁(810)映射到u-v坐标系(859)中的2D UV平面(850)的示例。在一些实现方式中,3D补丁(或简称为补丁)通常可以指由与3D空间中的网格相对应的顶点集合描述的表面的邻接子集。在非限制性示例中,补丁包括具有3D坐标、法向量、颜色、纹理和其他信息的顶点。在一些实现方式中,2D几何补丁(或简称为几何补丁或补丁)可以指2D UV平面中的投影形状、对应于补丁的投影形状以及对应于补丁的几何补丁。
在UV平面中的投影形状中,每个映射点(ui,vi)与具有位置(xi,yi,zi)的3D顶点相对应,其中,i=1,2,3,4等。例如,具有3D坐标(x1,y1,z1)的第一顶点(811)被映射到具有2D坐标(u1,v1)的第一点(851);具有3D坐标(x2,y2,z2)的第二顶点(812)被映射到具有2D坐标(u2,v2)的第二点(852);具有3D坐标(x3,y3,z3)的第三顶点(813)被映射到具有2D坐标(u3,v3)的第三点(853);具有3D坐标(x4,y4,z4)的第四顶点(814)被映射到具有2D坐标(u4,v4)的第四点(854)。
顶点几何形状(即,xi、yi和zi的值)的编码然后被转换成2D平面中的3通道值的编码,其中,在(u,v)位置处的每个3通道值对应于相关联的3D位置。例如,第一位置(851)的像素值包括与第一顶点(811)的3D坐标相对应的3通道值(或三个通道值),其中,3通道值的第一通道值对应于值x1,3通道值的第二通道值对应于值y1,以及3通道值的第三通道值对应于值z1。
因此,具有一个或更多个补丁的投影/映射的2D平面被称为几何图像,并且因此可以使用任何图像或视频编解码器(例如,支持4:4:4颜色格式的视频编解码器)对其进行编码。
在一些实现方式中,UV平面上的投影/映射的点的像素值可以与从3D顶点到UV平面的距离相对应。因此,为了定位顶点位置信息,不同方向上的多个平面可以用于这样的投影。当在这种情况下时,UV平面中的每个位置(或称为点)都是记录距离的1通道值。这样的图像被称为深度图像。可以使用任何图像或视频编解码器(例如,支持YUV4:2:0或YUV4:0:0颜色格式的视频编解码器)来对深度图像进行编码。
图9和图10显示了边界顶点。边界顶点可以是3D空间中的单个顶点,并且可以被映射到2D UV空间中的不止一个点。
参照图9,可以在2D UV空间中定义边界顶点(911、912、913、914、915和916)。边界顶点位于连通分量(例如,补丁/图表)的边界边缘(例如,921和922)上,并且非边界顶点(例如,931)位于连通分量(补丁/图表)内部。
在一些实现方式中,可以通过检查边缘是否仅出现在一个三角形中来确定边界边缘:当边缘仅出现在一个三角形中时,该边缘是边界边缘;以及当边缘出现在两个以上的三角形中时,该边缘就不是边界边缘。
在一些实现方式中,以下边界顶点信息的一部分或全部是重要的,并且可以在比特流中被编码和用信号表示:几何信息,即3D xyz坐标;和/或2D UV坐标。
在一些实现方式中,顶点可以由一个以上的网格表面多边形共享。当网格被分割成多个补丁时,这样的顶点可以作为公共顶点出现在多个补丁的边界上。
对于非限制性示例,参照图10,两个相邻的3D补丁(1010和1020)可以被映射到2DUV平面(1050)中。在UV平面的投影形状中,每个点(ui,vi)对应于其位置在3D空间中由3D坐标(xi,yi,zi)表示的3D顶点,其中,i为正整数,例如1,2,3,4等。顶点几何形状的编码然后被转换成2D平面中的3通道值的编码,其中,在(u,v)位置处的每个3通道值对应于相关联的3D位置(x,y,z)。因此,具有一个或更多个补丁的投影的2D平面被称为几何图像,并且因此可以使用任何图像或视频编解码器(例如,支持4:4:4颜色格式的视频编解码器)对其进行编码。
特别地,两个3D补丁的边界上的顶点成为由两个补丁共享的公共顶点。当这样的顶点被投影到2D平面上时,它具有不止一个UV坐标。例如,3D空间中的第一顶点(1011)可以被映射到2D UV空间中的第一点(1051),3D空间中的第二顶点(1012)可以被映射到2D UV空间中的第二点(1052)和第五点(1062),3D空间中的第三顶点(1013)可以被映射到2D UV空间中的第三点(1053)和第六点(1063),以及3D空间中的第四顶点(1014)可以被映射到2DUV空间中的第四点(1054)。换句话说,UV平面上具有它们自己的边界几何值的多个点可以对应于相同的3D顶点,并且因此,它们自己的边界几何值应当相等以具有相同的几何信息。例如,在(1012)(x2,y2,z2)和(1013)(x3,y3,z3)处的顶点在补丁1010和补丁1020两者的边界上。当这两个补丁被投影到2D平面时,对于补丁1010,这两个边界顶点的对应UV坐标分别是(1052)(u2,v2)和(1053)(u3,v3);对于补丁1020,这两个边界顶点的对应UV坐标分别是(1062)(u2’,v2’)和(1063)(u3’,v3’)。注意,在这种情况下,位置(1062)(u2’,v2’)不同于(1052)(u2,v2),以及位置(1053)(u3,v3)不同于(1063)(u3’,v3’)。
在一些实现方式中,考虑边界顶点的几何信息对于解码期间的高质量3D网格重建是重要的,在对边界顶点的几何信息方面进行编码、用信号表示和解码方面存在一些问题/难题。当一个边界顶点出现在两个补丁中时,一个边界顶点对应于2D UV平面中的两个点,并且在不应用压缩时,这两个点的边界几何值应当相同。然而,在将压缩应用于不同的补丁之后,同一顶点对的几何信息可能会变得不同,这可能是由于某些压缩方法(例如,量化过程)的非无损性质。这可能会影响解码后的网格重建。通常,在边界顶点的几何形状失真的情况下,一些裂缝可能会在经重建的网格表面中变得可见,因为表面变得不再平滑地从一个补丁连接到另一补丁。
在一些实现方式中,可以使用无损或近无损过程对边界几何信息进行编码。在一些实现方式中,可以将边界几何信息与每个补丁内的其他顶点分开编码。上述实现方式中的一些实现方式可能会影响3D网格压缩的编码/解码效率。
本公开内容描述了各种实施方式,这些实施方式用于利用边界几何信息的预测编码对3D网格进行编码或解码,解决了以上讨论的至少一个问题/难题,从而提高了压缩几何信息的效率和/或推进了高效的3D网格压缩技术。
图11示出了示例方法的流程图1100,该示例方法遵循上述用于利用边界几何信息的预测编码来对3D网格进行解码的实现方式的基础原理。示例解码方法流程在S1101处开始,并且可以包括以下步骤的一部分或全部:在S1110中,接收包括三维网格的几何补丁的编码比特流;在S1120中,从编码比特流中提取包括与三维网格中的边界顶点的几何坐标集合相对应的点集合的几何补丁的经重建的几何图像;在S1130中,基于该几何坐标集合来得出边界顶点的3D几何坐标;在S1140中,获得边界顶点的预测残差;以及在S1150中,由设备基于得出的3D几何坐标和预测残差来重建边界顶点的几何信息。示例方法在S1199处停止。
在一些实现方式中,与点集合相关联的几何坐标集合可以包括多个3D几何坐标(x,y,z),并且该点集合中的每个点包括UV平面中的2D坐标(u,v)和像素值(例如,RGB通道)。每个点的像素值(例如,RGB通道)对应于几何坐标集合中的每个几何坐标(x,y,z)。
在一些实现方式中,编码比特流包括以下中的至少一项:编码几何图(codedgeometry map)或编码元数据(coded metadata)。例如,编码比特流可以是图4中的经压缩的比特流,其可以包括一个或更多个经压缩的几何图像/图、一个或更多个经压缩的纹理图像/图、一个或更多个经压缩的占用图和/或经压缩的辅助补丁信息。一些编码比特流可能不具有任何占用图,因为当用信号表示每个补丁的边界顶点时,可以从解码器侧推断出占用图信息。在一些实现方式中,几何补丁是与编码几何图相对应的补丁之一。
在一些实现方式中,基于所得出的3D几何坐标和预测残差来重建边界顶点的几何信息包括:根据P+Q*QS来重建边界顶点的几何信息,其中,P是所得出的3D几何坐标,Q是预测残差,以及QS是量化步长。
在一些实现方式中,量化步长在高级语法(high-level syntax,HLS)中用信号表示,该高级语法包括以下中的至少一项:序列报头、帧报头或切片报头。
在一些实现方式中,从编码比特流中提取包括与三维网格中的边界顶点的几何坐标集合相对应的点集合的几何补丁的经重建的几何图像包括:根据编码比特流重建几何图像;以及基于重建的几何图像中的点集合的像素值来获得边界顶点的几何坐标集合。
在一些实现方式中,基于几何坐标集合得出边界顶点的3D几何坐标包括:计算几何坐标集合的平均值以获得平均后的3D几何坐标;以及将平均后的3D几何坐标确定为所得出的边界顶点的3D几何坐标。
在一些实现方式中,基于几何坐标集合得出边界顶点的3D几何坐标包括:计算几何坐标集合的加权平均值,以获得加权平均后的3D几何坐标;以及将加权平均后的3D几何坐标确定为所得出的边界顶点的3D几何坐标。
在一些实现方式中,几何坐标集合包括第一补丁的第一几何坐标和与第二补丁相对应的第二几何坐标;第一补丁具有比第二补丁更大的采样率;以及对于加权平均值,第一几何坐标的第一权重大于第二几何坐标的第二权重。
在一些实现方式中,几何坐标集合包括第一补丁的第一几何坐标和与第二补丁相对应的第二几何坐标;第一补丁具有比第二补丁更大的补丁大小;以及对于加权平均值,第一几何坐标的第一权重大于第二几何坐标的第二权重。
在一些实现方式中,几何坐标集合包括第一补丁的第一几何坐标和与第二补丁相对应的第二几何坐标;第一补丁具有比第二补丁更大的量化级别;以及对于加权平均值,第一几何坐标的第一权重小于第二几何坐标的第二权重。
在一些实现方式中,基于几何坐标集合得出边界顶点的3D几何坐标包括:基于几何坐标集合来建立候选列表;从编码比特流中获得与候选列表相对应的索引;以及基于索引和候选列表来确定所得出的边界顶点的3D几何坐标。
在一些实现方式中,候选列表中的几何坐标的顺序是根据它们的解码顺序来确定的。
在一些实现方式中,从编码比特流中提取包括与三维网格中的边界顶点的几何坐标集合相对应的点集合的几何补丁的经重建的几何图像包括:重建第二边界顶点的几何信息,其中,在重建所述边界顶点之前重建第二边界顶点;以及将第二边界顶点的几何信息确定为几何坐标集合中的几何坐标。
在一些实现方式中,第二边界顶点是所述边界顶点的相邻顶点。
在一些实现方式中,用于利用边界几何信息的预测编码对3D网格进行解码的另一示例方法可以包括以下步骤中的一部分或全部:接收编码比特流;从编码比特流中提取边界顶点的多个几何预测,其中,每个几何预测包括预测的几何坐标集合;基于多个几何预测来确定边界顶点的预测几何值;获得边界顶点的预测残差;以及基于预测几何值和预测残差来重建边界顶点的几何信息。
在一些实现方式中,编码比特流包括以下中的至少一项:编码几何图或编码元数据。例如,编码比特流可以是图4中的经压缩的比特流,其可以包括一个或更多个经压缩的几何图像/图、一个或更多个经压缩的纹理图像/图、一个或更多个经压缩的占用图和/或经压缩的辅助补丁信息。一些编码比特流可能不具有任何占用图,因为当用信号表示每个补丁的边界顶点时,可以从解码器侧推断出占用图信息。在一些实现方式中,几何补丁是与编码几何图相对应的补丁之一。
在一些实现方式中,基于预测几何值和预测残差来重建边界顶点的几何信息包括:根据P+Q*QS重建边界顶点的几何信息,其中,P是预测几何值,Q是预测残差,以及QS是量化步长。在一些实现方式中,预测几何值(P)包括3D坐标集合(x_P,y_P,z_P),以及/或者预测残差(Q)包括3D坐标集合(x_Q,y_Q,z_Q)。量化步长(quantization step size,QS)可以是对于所有三个3D坐标都相同的单个值(QS_公共),或者可以是三个值的集合(QS_x,QS_y,QS_z),三个值中的每个值对应于3D坐标中的一个坐标。经重建的几何信息可以是(x_P+x_Q*QS_公共,y_P+y_Q*QS_公共,z_P+z_Q*QS_公共)或(x_P+x_Q*QS_x,y_P+y_Q*QS_y,z_P+z_Q*QS_z)。
在一些实现方式中,量化步长在高级语法(HLS)中用信号表示,该高级语法包括以下至少一项:序列报头、帧报头或切片报头。
在一些实现方式中,从编码比特流中提取边界顶点的多个几何预测包括:根据编码比特流重建几何图像;以及分别基于几何图像中与边界顶点相对应的多个像素来获得边界顶点的多个几何预测。
在一些实现方式中,基于多个几何预测来确定边界顶点的预测几何值包括:计算多个几何预测的平均值以获得平均后的几何预测;以及将平均后的几何预测确定为边界顶点的预测几何值。
在一些实现方式中,基于多个几何预测来确定边界顶点的预测几何值包括:计算多个几何预测的加权平均值,以获得加权平均后的几何预测;以及将加权平均后的几何预测确定为边界顶点的预测几何值。
在一些实现方式中,多个几何预测包括第一补丁的第一几何预测和与第二补丁相对应的第二几何预测;第一补丁具有比第二补丁更大的采样率;并且对于加权平均值,第一几何预测的第一权重大于第二几何预测的第二权重。
在一些实现方式中,多个几何预测包括第一补丁的第一几何预测和与第二补丁相对应的第二几何预测;第一补丁具有比第二补丁更大的补丁大小;并且对于加权平均值,第一几何预测的第一权重大于第二几何预测的第二权重。
在一些实现方式中,多个几何预测包括第一补丁的第一几何预测和与第二补丁相对应的第二几何预测;第一补丁具有比第二补丁更大的量化级别;并且对于加权平均值,第一几何预测的第一权重小于第二几何预测的第二权重。
在一些实现方式中,基于多个几何预测来确定边界顶点的预测几何值包括:基于多个几何预测来建立预测候选列表;从编码比特流中获得与预测候选列表相对应的索引;以及基于索引和预测候选列表来确定预测几何值。
在一些实现方式中,根据几何预测的解码顺序来确定预测候选列表中的几何预测的顺序。
在一些实现方式中,从编码比特流中提取边界顶点的多个几何预测包括:重建第二边界顶点的几何信息,其中,在重建边界顶点之前重建第二边界顶点;以及/或者将第二边界顶点的几何信息确定为多个几何预测中的几何预测。
在一些实现方式中,第二边界顶点是边界顶点的相邻顶点。
一个或更多个实施方式或实现方式中的各个步骤可以单独应用或通过任何形式的组合来应用。本公开内容中的各种实施方式可以应用于动态网格或静态网格。在静态网格中,可能仅存在一帧网格,或者网格内容不随时间变化。本公开内容中的各种实施方式可以扩展到深度图像/属性图像/纹理图像等的编码。
在一些实现方式中,包括xyz坐标的边界顶点的几何信息(或称为边界几何信息)可以根据经重建的几何图像(给定对应的uv坐标)或根据另一边界顶点的先前重建的边界信息来预测。
在一些实现方式中,在编码器侧,可以通过从预测值中减去原始几何形状来得出边界几何形状的预测残差,即,Ri=Oi-Pi,其中,Oi是第i个边界顶点的原始xyz坐标,Pi是第i个边界顶点的预测xyz坐标,以及Ri是第i个边界顶点的xyz坐标的预测残差。预测残差然后可以被量化和熵编码。
在一些实现方式中,预测残差可以通过标量值来量化,即,其中,QS代表量化步长。QS可以在高级语法(HLS)中用信号表示,该高级语法例如是序列报头、帧报头、切片报头等。
在一些实现方式中,在解码器侧,经重建的几何信息可以由Reci=Pi+Qi*QS得出。
在一些实现方式中,边界几何信息的预测可以根据以下示例性方法中的至少一种来执行。
对于一个示例性方法,边界几何信息的预测可以从经重建的几何图像中得出,即,Pi=GIM_REC(ui,vi)。GIM_REC表示经重建的几何图像,Pi是第i个边界顶点的预测的几何xyz坐标,以及(ui,vi)是第i个边界顶点的几何图像中的UV坐标。
考虑到一个边界顶点(xyz)可以对应于多个uv坐标,可以使用一个或更多个多假设预测来获得基于由于多个uv坐标而导致的多个Pi=GIM_REC(ui,vi)的预测。
在一些实现方式中,多个预测的平均值可以被用作第i个边界顶点的预测,即其中,N是与相同xyz几何位置相对应的uv坐标的总数,并且(ui,vi)是第j个对应关系。
在一些实现方式中,可以建立预测候选列表,并且可以从预测候选列表中选择一个项作为边界顶点的预测。一个这样的预测顶点可以来自多个预测之一。对于非限制性示例,多个预测的编码/解码顺序可以用于建立列表中的多个候选的顺序。当允许一个以上的预测器预测当前顶点的几何信息时,在比特流中用信号表示索引,以指示选择列表中的哪一个。
在一些实现方式中,多个预测的加权平均可以被用作第i个边界顶点的预测,即,其中,wj是第j个对应关系的加权因子,其可以基于许多其他因素(例如对应的补丁的采样率、对应的补丁大小等)中的至少一个来确定。对于非限制性示例,补丁的采样率越大,对应的加权因子越高;和/或补丁的补丁大小越大,对应的加权因子越高。
在一些实现方式中,边界几何信息的预测可以从先前重建的边界顶点得出。
对于非限制性示例,在编码器侧,边界顶点的几何信息可以被编码为通过已被编码并且在对当前边界顶点进行编码时变得可用的另一边界顶点的几何信息进行预测,即Pi=Recj,其中,j<i,i对应于当前边界顶点,并且j对应于已被编码并且在对当前边界顶点进行编码时变得可用的边界顶点。在解码器侧,边界顶点的几何信息可以被解码为通过已被解码(或重建)并在对当前边界顶点进行解码时变得可用的另一边界顶点的几何信息进行预测,即Pi=Recj,其中,j<i,i对应于当前边界顶点,以及j对应于已被重建的边界顶点。
对于另一非限制性示例,边界顶点的几何信息可以基于同一补丁的其相邻边界顶点来预测。在3D空间中,边界顶点集合形成了补丁的边界。在这些顶点中,两个相邻的顶点在位置上彼此接近,使得它们的几何信息也彼此接近,从而导致预测的高效率。
对于另一非限制性示例,边界顶点的几何信息可以通过已被编码并且在对当前边界顶点的几何信息进行编码时变得可用的多个边界顶点的几何信息来预测。当多个对应的边界顶点(通过多个UV坐标)可用于预测当前边界顶点时,可以应用以下预测机制。
在一种预测机制中,可以建立预测候选列表。一个这样的预测顶点可以来自一个先前已编码的补丁。对于非限制性示例,可以使用补丁的编码/解码顺序来建立列表中的多个候选的顺序。当允许一个以上的预测器预测当前顶点的几何信息时,在比特流中用信号表示索引,以指示选择列表中的哪一个。
在另一种预测机制中,可以生成多个候选的平均值或加权平均值(当适用时)来预测当前边界顶点。每个候选的加权参数可以根据一个或更多个因素来确定。对于非限制性示例,当候选预测值被编码时,可以基于量化级别(例如QS)来确定加权因子。例如,与较大量化步长(QS)相对应的重度量化的候选可以对应于较小的权重。
本公开内容中公开的技术可以单独使用或者以任何顺序组合使用。此外,技术(例如,方法、实施方式)、编码器和解码器中的每一个可以由处理电路系统(例如,一个或更多个处理器或者一个或更多个集成电路)来实现。在一些示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。
上述技术可以被实现为使用计算机可读指令的计算机软件并且物理地存储在一个或更多个计算机可读介质中。例如,图12示出了适于实现所公开的主题的某些实施方式的计算机系统(1300)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,所述机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(central processing unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)等直接执行或者通过解译、微代码执行等执行。
指令可以在各种类型的计算机或其部件上执行,所述计算机或其部件包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图12中示出的用于计算机系统(1300)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统(1300)的示例性实施方式中示出的部件中的任何一个或组合有关的任何依赖性或要求。
计算机系统(1300)可以包括某些人机接口输入设备。这样的人机接口输入设备可以对由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)进行的输入作出响应。人机接口设备还可以用于捕获不一定与人的意识输入直接有关的某些介质,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静态图像摄像机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下各项中的一个或更多个(每项仅描绘出一个):键盘(1301)、鼠标(1302)、触控板(1303)、触摸屏(1310)、数据手套(未示出)、操纵杆(1305)、麦克风(1306)、扫描仪(1307)、摄像机(1308)。
计算机系统(1300)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道刺激一个或更多个人类用户的感官。这样的人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏(1310)、数据手套(未示出)或操纵杆(1305)的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(1309)、头戴式耳机(未描绘))、视觉输出设备(例如,屏幕(1310),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个均具有或不具有触摸屏输入能力,每个均具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出、虚拟现实眼镜(未描绘)、全息显示器和发烟器(未描绘)的手段输出二维视觉输出或多于三维输出)和打印机(未描绘)。
计算机系统(1300)还可以包括人类可访问的存储设备及其相关联的介质,例如包括具有CD/DVD等介质(1321)的CD/DVD ROM/RW(1320)的光学介质、拇指驱动器(1322)、可移除硬盘驱动器或固态驱动器(1323)、诸如磁带和软盘的传统磁介质(未描绘)、诸如安全加密狗(未描绘)的基于专用ROM/ASIC/PLD的设备等。
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他瞬态信号。
计算机系统(1300)还可以包括到一个或更多个通信网络(1355)的接口(1354)。网络可以是例如无线的、有线的、光学的。网络还可以是局域的、广域的、城域的、车辆和工业的、实时的、延时容忍的等。网络的示例包括:局域网,例如以太网、无线LAN;蜂窝网络,包括GSM、3G、4G、5G、LTE等;电视有线或无线广域数字网络,包括有线电视、卫星电视和地面广播电视;车辆的和工业的,包括CANBus等。某些网络通常需要附接至某些通用数据端口或外围总线(1349)(例如,计算机系统(1300)的USB端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的系统总线(例如,到PC计算机系统中的以太网接口或到智能电话计算机系统中的蜂窝网络接口)集成到计算机系统(1300)的核中。计算机系统(1300)可以使用这些网络中的任何网络与其他实体进行通信。这样的通信可以是单向的、仅接收的(例如,广播TV)、单向仅发送的(例如,到某些CANbus设备的CANbus)、或双向的,例如到使用局域或广域数字网络的其他计算机系统。可以在如上所述的这些网络和网络接口中的每个网络和网络接口上使用特定的协议和协议栈。
以上提及的人机接口设备、人类可访问存储设备和网络接口可以附接至计算机系统(1300)的核(1340)。
核(1340)可以包括一个或更多个中央处理单元(CPU)(1341)、图形处理单元(GPU)(1342)、现场可编程门区(FPGA)形式的专用可编程处理单元(1343)、用于某些任务的硬件加速器(1344)、图形适配器(1350)等。这些设备连同只读存储器(Read-only memory,ROM)(1345)、随机存取存储器(1346)、内部大容量存储装置例如内部非用户可访问的硬盘驱动器、SSD等(1347)可以通过系统总线(1348)连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线(1348),以使得能够由附加的CPU、GPU等进行扩展。外围设备可以直接附接至核的系统总线(1348)或可以通过外围总线(1349)附接至核的系统总线(1348)。在示例中,屏幕(1310)可以连接至图形适配器(1350)。外围总线的架构包括PCI、USB等。
CPU(1341)、GPU(1342)、FPGA(1343)和加速器(1344)可以执行某些指令,这些指令组合起来可以构成以上提及的计算机代码。该计算机代码可以存储在ROM(1345)或RAM(1346)中。暂态数据也可以存储在RAM(1346)中,而永久数据可以存储在例如内部大容量存储装置(1347)中。可以通过使用缓存存储器来实现对存储设备中的任何存储设备的快速存储和检索,该缓存存储器可以与一个或更多个CPU(1341)、GPU(1342)、大容量存储装置(1347)、ROM(1345)、RAM(1346)等紧密相关联。
计算机可读介质上可以具有计算机代码,该计算机代码用于执行各种计算机实现的操作。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以具有计算机软件领域的技术人员公知且可用的类型。
作为示例而非限制,具有架构的计算机系统(1300)——特别是核(1340)——可以提供由于(一个或多个)处理器(包括CPU、GPU、FPGA、加速器等)执行体现在一个或更多个有形计算机可读介质中的软件而提供的功能。这样的计算机可读介质可以是与如上所介绍的用户可访问的大容量存储装置相关联的介质,以及核(1340)的具有非暂态性质的某些存储装置,例如,核内部的大容量存储装置(1347)或ROM(1345)。可以将实现本公开内容的各种实施方式的软件存储在这样的设备中并通过核(1340)执行。根据特定需求,计算机可读介质可以包括一个或更多个存储设备或芯片。软件可以使核(1340)并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在RAM(1346)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或作为替选方案,计算机系统可以提供作为硬连线或以其他方式体现在电路(例如:加速器(1344))中的逻辑的结果的功能,其可以代替软件或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及软件可以涵盖逻辑,并且反之提及逻辑也可以涵盖软件。在适当的情况下,提及计算机可读介质可以包含存储用于执行的软件的电路(例如,集成电路(IC))、体现用于执行的逻辑的电路或上述两者。本公开内容涵盖硬件与软件的任何合适的组合。
虽然本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等同方案。因此将理解,本领域技术人员将能够设计出多种系统和方法,所述多种系统和方法虽然在本文中没有明确示出或描述,但是体现了本公开内容的原理并且因此在本公开内容的精神和范围内。
Claims (16)
1.一种用于对三维网格的几何补丁进行解码的方法,包括:
由包括存储指令的存储器和与所述存储器通信的处理器的设备接收包括三维网格的几何补丁的编码比特流;
由所述设备从所述编码比特流中提取包括与所述三维网格中的边界顶点的几何坐标集合相对应的点集合的所述几何补丁的经重建的几何图像;
由所述设备基于所述几何坐标集合得出所述边界顶点的3D几何坐标;
由所述设备获得所述边界顶点的预测残差;以及
由所述设备基于所得出的3D几何坐标和所述预测残差来重建所述边界顶点的几何信息。
2.根据权利要求1所述的方法,其中:
所述编码比特流包括以下中的至少一项:
编码几何图,或
编码元数据。
3.根据权利要求1所述的方法,其中,基于所得出的3D几何坐标和所述预测残差来重建所述边界顶点的几何信息包括:
根据P+Q*QS来重建所述边界顶点的几何信息,其中,P是所得出的3D几何坐标,Q是所述预测残差,以及QS是量化步长。
4.根据权利要求3所述的方法,其中,
所述量化步长在高级语法(HLS)中用信号表示,所述高级语法包括以下中的至少一项:序列报头、帧报头或切片报头。
5.根据权利要求1所述的方法,其中,从所述编码比特流中提取包括与所述三维网格中的边界顶点的几何坐标集合相对应的点集合的所述几何补丁的经重建的几何图像包括:
根据所述编码比特流重建几何图像;以及
基于重建的几何图像中的所述点集合的像素值来获得所述边界顶点的几何坐标集合。
6.根据权利要求1所述的方法,其中,基于所述几何坐标集合得出所述边界顶点的3D几何坐标包括:
计算所述几何坐标集合的平均值,以获得平均后的3D几何坐标;以及
将所述平均后的3D几何坐标确定为所得出的所述边界顶点的3D几何坐标。
7.根据权利要求1所述的方法,其中,基于所述几何坐标集合得出所述边界顶点的3D几何坐标包括:
计算所述几何坐标集合的加权平均值,以获得加权平均后的3D几何坐标;以及
将所述加权平均后的3D几何坐标确定为所得出的所述边界顶点的3D几何坐标。
8.根据权利要求7所述的方法,其中:
所述几何坐标集合包括第一补丁的第一几何坐标和与第二补丁相对应的第二几何坐标;
所述第一补丁具有比所述第二补丁更大的采样率;以及
对于所述加权平均值,所述第一几何坐标的第一权重大于所述第二几何坐标的第二权重。
9.根据权利要求7所述的方法,其中:
所述几何坐标集合包括第一补丁的第一几何坐标和与第二补丁相对应的第二几何坐标;
所述第一补丁具有比所述第二补丁更大的补丁大小;以及
对于所述加权平均值,所述第一几何坐标的第一权重大于所述第二几何坐标的第二权重。
10.根据权利要求7所述的方法,其中:
所述几何坐标集合包括第一补丁的第一几何坐标和与第二补丁相对应的第二几何坐标;
所述第一补丁具有比所述第二补丁更大的量化级别;以及
对于所述加权平均值,所述第一几何坐标的第一权重小于所述第二几何坐标的第二权重。
11.根据权利要求1所述的方法,其中,基于所述几何坐标集合得出所述边界顶点的3D几何坐标包括:
基于所述几何坐标集合来建立候选列表;
从所述编码比特流中获得与所述候选列表相对应的索引;以及
基于所述索引和所述候选列表来确定所得出的所述边界顶点的3D几何坐标。
12.根据权利要求11所述的方法,其中:
所述候选列表中的几何坐标的顺序是根据它们的解码顺序来确定的。
13.根据权利要求1所述的方法,其中,从所述编码比特流中提取包括与所述三维网格中的边界顶点的几何坐标集合相对应的点集合的所述几何补丁的经重建的几何图像包括:
重建第二边界顶点的几何信息,其中,在重建所述边界顶点之前重建所述第二边界顶点;以及
将所述第二边界顶点的几何信息确定为所述几何坐标集合中的几何坐标。
14.根据权利要求13所述的方法,其中:
所述第二边界顶点是所述边界顶点的相邻顶点。
15.一种用于对三维网格的几何补丁进行解码的设备,所述设备包括:
存储指令的存储器;和
与所述存储器通信的处理器,其中,当所述处理器执行所述指令时,所述处理器被配置成使所述设备执行根据权利要求1至14中任一项所述的方法。
16.一种存储指令的非暂态计算机可读存储介质,其中,当所述指令由处理器执行时,所述指令被配置成使所述处理器执行根据权利要求1至14中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/319,976 | 2022-03-15 | ||
US17/973,792 US20230298216A1 (en) | 2022-03-15 | 2022-10-26 | Predictive coding of boundary geometry information for mesh compression |
US17/973,792 | 2022-10-26 | ||
PCT/US2022/048355 WO2023177422A1 (en) | 2022-03-15 | 2022-10-31 | Predictive coding of boundary geometry information for mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117083636A true CN117083636A (zh) | 2023-11-17 |
Family
ID=88718029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280016784.XA Pending CN117083636A (zh) | 2022-03-15 | 2022-10-31 | 用于网格压缩的边界几何信息的预测编码 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117083636A (zh) |
-
2022
- 2022-10-31 CN CN202280016784.XA patent/CN117083636A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783512B2 (en) | Attribute value of reconstructed position associated with plural original points | |
CN113519163B (zh) | 点云压缩的方法、装置和存储介质 | |
CN111641834B (zh) | 点云编码的方法和装置、计算机设备和存储介质 | |
US20230063575A1 (en) | Patch zippering for mesh compression | |
CN113615201B (zh) | 点云压缩和解压缩的方法和装置 | |
US20230298216A1 (en) | Predictive coding of boundary geometry information for mesh compression | |
JP2023551303A (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
US20230281876A1 (en) | Mesh compression with constrained geometry dynamic range | |
CN117083636A (zh) | 用于网格压缩的边界几何信息的预测编码 | |
US20230306645A1 (en) | Convolutional Approach to Fast and Compact Packing of 3D Mesh Into 2D Maps | |
US20230014820A1 (en) | Methods and apparatuses for dynamic mesh compression | |
US20230090677A1 (en) | Coding connectivity in vertex reordering methods for mesh compression | |
JP2023552114A (ja) | メッシュ展開のための方法、装置及びプログラム | |
CN116888631A (zh) | 基于点云压缩的动态网格压缩 | |
JP2024509988A (ja) | チャートベースのメッシュ圧縮の方法、装置およびコンピュータプログラム | |
JP2023548237A (ja) | 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム | |
CN117461054A (zh) | 具有推导的纹理坐标的网格压缩 | |
CN116324912A (zh) | 用于网格压缩的顶点重新排列 | |
CN116711305A (zh) | 用于解码器执行网格压缩的自适应采样方法和装置 | |
CN116635905A (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 |