CN116940965A - 用于网格压缩的片时间对齐解码 - Google Patents
用于网格压缩的片时间对齐解码 Download PDFInfo
- Publication number
- CN116940965A CN116940965A CN202280017553.0A CN202280017553A CN116940965A CN 116940965 A CN116940965 A CN 116940965A CN 202280017553 A CN202280017553 A CN 202280017553A CN 116940965 A CN116940965 A CN 116940965A
- Authority
- CN
- China
- Prior art keywords
- pixel
- texture map
- restored
- texture
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006835 compression Effects 0.000 title description 44
- 238000007906 compression Methods 0.000 title description 44
- 230000009466 transformation Effects 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 127
- 238000013519 translation Methods 0.000 claims description 39
- 239000013598 vector Substances 0.000 claims description 36
- 230000006837 decompression Effects 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 62
- 238000004458 analytical method Methods 0.000 description 28
- 230000033001 locomotion Effects 0.000 description 24
- 238000013139 quantization Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 238000013507 mapping Methods 0.000 description 17
- 230000002123 temporal effect Effects 0.000 description 12
- 238000012935 Averaging Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 238000009499 grossing Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 108050005509 3D domains Proteins 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 101150114515 CTBS gene Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 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
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
- G06T9/00—Image coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Generation (AREA)
Abstract
处理电路从携带3D网格帧的码流中解码2D的纹理图。3D网格帧表示多边形的对象表面,并且被分割为片。纹理图包括具有变换UV坐标的变换片,变换UV坐标是根据重映射变换参数从片的原始UV坐标变换而来。处理电路解码与片相关联的重映射变换参数,并根据重映射变换参数基于纹理图生成恢复的纹理图。恢复的纹理图中的至少第一恢复像素被分配有在纹理图中的第一变换位置处的纹理值,纹理图中的第一变换位置是根据第一恢复像素的像素位置和与第一恢复像素所属的第一片相关联的第一重映射变换参数确定的。
Description
援引并入
本申请要求于2022年9月28日提交的标题为“DECODING OF PATCH TEMPORALALIGNMENT FOR MESH COMPRESSION”的美国专利申请第17/954,961号(其要求了于2021年11月22日提交的标题为“Decoding of Patch Temporal Alignment for MeshCompression”的美国临时申请第63/264,417号的优先权权益)的优先权权益。在先申请的全部内容通过引用整体并入本文中。
技术领域
本申请描述了总体上涉及网格编码的实施例。
背景技术
本文所提供的背景描述是出于总体上呈现本公开上下文的目的。在该背景部分中描述的范围内,目前命名的发明人的作品以及提交之时不可另行具备现有技术资格的本描述的各方面既未明确、亦未默示地承认为本发明的现有技术。
开发了各种技术来捕捉和表示世界,例如在三维(3-dimensional,3D)空间中的世界中的物体、世界中的环境等。对世界的3D表示可以实现更身临其境的互动和交流形式。在某些示例中,点云和网格可以用作对世界的3D表示。
发明内容
本公开的各方面提供了一种用于进行网格编解码(编码和/或解码)的方法和装置。在一些示例中,用于对网格进行编码的装置包括处理电路。处理电路从携带三维(3D)网格帧的码流中解码二维(two dimension,2D)的纹理图。3D网格帧表示多边形的对象表面,并且被分割为片。纹理图包括具有变换UV坐标的变换片,变换UV坐标是根据重映射变换参数从片的原始UV坐标变换而来的。重映射变换参数指示已经被执行用于生成变换后的片的变换操作。处理电路从码流中解码与片相关联的重映射变换参数,并根据重映射变换参数从纹理图生成恢复的纹理图。恢复的纹理图中的至少第一恢复像素被分配有纹理图中的第一变换位置处的纹理值,纹理图中的第一变换位置是根据第一恢复像素的像素位置和与第一恢复像素所属的第一片相关联的第一重映射变换参数确定的。然后,处理电路根据恢复的纹理图来重构3D网格帧。
在一些实施例中,为了生成恢复的纹理图,处理电路根据将第一恢复像素的像素位置映射到指示第一片的第一片索引的索引图,确定第一恢复像素属于第一片。
在一些实施例中,为了生成恢复的纹理图,处理电路识别与第一片的边界顶点相对应的第一像素位置,并通过将第一重映射变换参数应用于第一像素位置来确定纹理图中分别对应于第一像素位置的第一变换位置。处理电路将纹理图的第一变换位置处的第一纹理值分配给恢复的纹理图中的对应的第一像素位置。
在一些示例中,处理电路根据第一像素位置识别位于第一片的片内部的第二像素位置,并通过将第一重映射变换参数应用于第二像素位置来确定纹理图中对应于第二像素位置的第二变换位置。处理电路将纹理图的第二变换位置处的第二纹理值分配给恢复的纹理图中的对应的第二像素位置。
在一些示例中,处理电路响应于第一变换位置的一个或多个坐标不是整数,通过插值法来确定纹理图中第一变换位置处的纹理值。
在一些示例中,第一重映射变换参数包括旋转角度、空间平移矢量和指示反射操作的反射标志。第一重映射变换参数包括旋转角度和空间平移矢量,并且旋转角度的符号指示反射操作。
在一些示例中,处理电路根据恢复的纹理图中的被占用区域中的一个或多个被占用像素,将值分配给恢复的纹理图中的未占用像素,被占用区域包括属于片的被占用像素、未占用像素在被占用区域之外。在一些示例中,处理电路将值计算为被占用区域中的被占用像素的平均值和/或中值中的至少一个。在一些示例中,处理电路确定恢复的纹理图中的边界像素,边界像素是在边界像素的第一邻域中具有至少一个未分配的相邻像素的被占用像素,未分配的相邻像素具有未分配的纹理值。处理电路确定未分配的相邻像素的第二邻域中的分配的相邻像素,并且基于第二邻域内已分配的相邻像素来确定要分配给未分配的相邻像素的导出纹理值。
本公开的各方面还提供了一种存储指令的非暂时性计算机可读介质,所述指令在被计算机执行时使计算机执行用于网格编解码的方法中的任何一种或其组合。
附图说明
通过以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将更加明显,在附图中:
图1示出了在一些示例中的通信系统的框图。
图2示出了在一些示例中的流媒体系统的框图。
图3示出了在一些示例中用于对点云帧进行编码的编码器的框图。
图4示出了在一些示例中用于对与点云帧相对应的压缩码流进行解码的解码器的框图。
图5示出了在一些示例中的视频解码器的框图。
图6示出了在一些示例中的视频编码器的框图。
图7示出了在一些示例中用于对点云帧进行编码的编码器的框图。
图8示出了在一些示例中用于对携带点云帧的压缩码流进行解码的解码器的框图。
图9示出了在一些示例中网格到图集的映射的图。
图10示出了在一个示例中的在两个时间点处的纹理图。
图11示出了在一些示例中概述过程示例的流程图。
图12示出了在一些示例中概述过程示例的流程图。
图13示出了在一些示例中概述过程示例的流程图。
图14示出了在一些示例中概述过程示例的流程图。
图15示出了在一些示例中概述过程示例的流程图。
图16是在一些示例中的计算机系统的示意图。
具体实施方式
本公开的各方面提供了三维(3D)媒体处理领域中的技术。
3D媒体处理中的技术发展,例如在三维(3D)捕获、3D建模和3D渲染等方面的进步,促进了3D媒体内容在多个平台和设备上的普遍存在。例如,可以在一个洲上拍摄婴儿迈出的第一步,媒体技术可以让祖父母在另一个洲观看(也许是互动)并享受与婴儿在一起的沉浸式的体验。根据本公开的一个方面,为了提高沉浸式体验,3D模型变得越来越复杂,并且3D模型的创建和消耗占用了大量的数据资源,例如数据存储、数据传输资源。
根据本公开的一些方面,点云和网格可以用作表示沉浸式内容的3D模型。
点云通常可以指3D空间中的一组点,每个点具有相关联的属性,例如颜色、材料属性、纹理信息、强度属性、反射率属性、运动相关属性、模态属性和各种其他属性。点云可用于将对象或场景重构为这些点的组合。
对象的网格(也称为网格模型)可以包括描述对象表面的多边形。每个多边形可以由3D空间中多边形的顶点以及关于如何将顶点连接到多边形中的信息来定义。关于如何连接顶点的信息被称为连接信息。在一些示例中,网格还可以包括与顶点相关联的属性,例如颜色、法线等。
根据本公开的一些方面,用于点云压缩(point cloud compression,PCC)的一些编码工具可以用于网格压缩。例如,网格可以被重新网格化以生成新网格,可以推导新网格的连通性信息。新网格的顶点以及与新网格的顶点相关联的属性可以被认为是点云中的点,并且可以使用PCC编解码器进行压缩。
点云可用于将对象或场景重构为点的组合。可以在各种设置中使用多个相机、深度传感器或激光雷达来捕获这些点,并且这些点可以由成千上万甚至数十亿个点组成,以便真实地表示重建的场景或对象。片通常可以指由点云描述的表面的连续子集。在一个示例中,片包括表面法线矢量彼此间的偏离小于阈值量的点。
可以根据各种方案来执行PCC,例如被称为G-PCC的基于几何的方案、被称为V-PCC的基于视频编码的方案等等。根据本公开的一些方面,G-PCC直接对3D几何结构进行编码,并且是纯粹基于几何结构的方法,与视频编码没有太多共享,而V-PCC主要基于视频编码。例如,V-PCC可以将3D云的点映射到二维(2dimensional,2D)网格(图像)的像素。V-PCC方案可以利用通用视频编解码器进行点云压缩。本公开中的PCC编解码器(编码器/解码器)可以是G-PCC编解码器或V-PCC编解码器。
根据本公开的一个方面,V-PCC方案可以使用现有的视频编解码器来将点云的几何结构、占用和纹理压缩为三个单独的视频序列。解释这三个视频序列所需的额外元数据被分别压缩。整个码流的一小部分是元数据,在一个示例中,可以使用软件实现对其进行有效编码/解码。大部分信息由视频编解码器处理。
图1示出了在一些示例中的通信系统(100)的框图。通信系统(100)包括多个终端设备,该终端设备可通过例如网络(150)彼此通信。举例来说,通信系统(100)包括通过网络(150)互连的终端设备对(110)和(120)。在图1的示例中,第一终端设备对(110)和(120)可以执行点云数据的单向传输。例如,终端设备(110)可以压缩由与终端设备(110)相连接的传感器(105)捕获的点云(例如,表示结构的点)。例如,压缩的点云可以以码流的形式经由网络(150)发送到另一终端设备(120)。终端设备(120)可以从网络(150)接收压缩的点云,解压缩码流以重构点云,并且适当地显示重构的点云。单向数据传输在媒体服务等应用中是较常见的。
在图1的示例中,终端设备(110)和(120)可以被示出为服务器和个人计算机,但是本公开的原理可不限于此。本公开的实施例可应用于膝上型计算机、平板电脑、智能手机、游戏终端、媒体播放器和/或专用三维(3D)设备。网络(150)表示在终端设备(110)和(120)之间传输压缩的点云的任意数量的网络。例如,网络(150)可以包括有线(有线的)和/或无线通信网络。网络(150)可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网、因特网等。
图2示出了在一些示例中的流媒体系统(200)的框图。流媒体系统(200)是点云的使用应用。所公开的主题可以同样适用于其他点云使能的应用,例如3D远程呈现应用、虚拟现实应用等。
流媒体系统(200)可以包括捕获子系统(213)。捕获子系统(213)可以包括点云源(201),例如光探测和测距(Light Detection And Ranging,LIDAR)系统、3D相机、3D扫描仪、生成未压缩点云的软件形式的图形生成组件、以及生成例如未压缩点云(202)的其他组件。在一个示例中,点云(202)包括由3D相机捕获的点。点云(202)被示为粗线,以在与压缩的点云(204)(压缩的点云的码流)相比时强调高数据量。压缩的点云(204)可以由电子设备(220)生成,电子设备(220)包括耦合到点云源(201)的编码器(203)。编码器(203)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。压缩的点云(204)(或压缩的点云的码流(204))可以存储在流服务器(205)上以供将来使用,压缩的点云(204)被示为细线以在与点云的流(202)相比时强调较低的数据量。一个或多个流媒体客户端子系统(例如图2中的客户端子系统(206)和客户端子系统(208))可以访问流媒体服务器(205)以检索压缩的点云(204)的副本(207)和(209)。客户端子系统(206)可包括例如电子设备(230)中的解码器(210)。解码器(210)对传入的压缩的点云的副本(207)进行解码,并创建可在渲染设备(212)上进行渲染的重构的点云(211)的传出流。
应注意,电子设备(220)和电子设备(230)可包括其它组件(未示出)。举例来说,电子装置(220)可包括解码器(未示出),且电子设备(230)还可包括编码器(未示出)。
在一些流媒体系统中,可以根据某些标准来压缩压缩的点云(204)、(207)和(209)(例如,压缩的点云的码流)。在一些示例中,视频编码标准被用于点云的压缩。这些标准的示例包括高效视频编码(High Efficiency Video Coding,HEVC)、通用视频编码(Versatile Video Coding,VVC)等。
图3示出了根据一些实施例的用于对点云帧进行编码的V-PCC编码器(300)的框图。在一些实施例中,V-PCC编码器(300)可以用于通信系统(100)和流媒体系统(200)中。例如,编码器(203)可以以与V-PCC编码器(300)以类似的方式进行配置和操作。
V-PCC编码器(300)接收点云帧作为未压缩的输入,并生成与压缩的点云帧相对应的码流。在一些实施例中,V-PCC编码器(300)可以从诸如点云源(201)等的点云源接收点云帧。
在图3的示例中,V-PCC编码器(300)包括片生成模块(306)、片封装模块(308)、几何图像生成模块(310)、纹理图像生成模块(312)、片信息模块(304)、占用地图模块(314)、平滑模块(336)、图像填充模块(316)和(318)、组扩展模块(320)、视频压缩模块(322)、(323)和(332)、辅助片信息压缩模块(338)、熵压缩模块(334)和复用器(324)。
根据本公开的一个方面,V-PCC编码器(300)将3D点云帧转换为基于图像的标识以及一些元数据(例如,占用地图和片信息)。使用所述元数据将压缩的点云转换回解压缩的点云。在一些示例中,V-PCC编码器(300)可以将3D点云帧转换为几何图像、纹理图像和占用地图,然后使用视频编码技术将几何图像、纹理图像和占用地图编码为码流。通常,几何图像是2D图像,其中像素填充有与投影到像素的点相关联的几何值,并且填充有几何值的像素可以被称为几何样本。纹理图像是2D图像,其中像素填充有与投影到像素的点相关联的纹理值,并且填充有纹理值的像素可以被称为纹理样本。占用地图是2D图像,其中像素填充有指示被片占用或未被片占用的值。
片生成模块(306)将点云分割成一组片(例如,片被定义为由点云描述的表面的连续子集),这些片可以重叠也可以不重叠,使得每个片可以由相对于2D空间中的平面的深度域来描述。在一些实施例中,片生成模块(306)旨在将点云分解为具有平滑边界的最小数量的片,同时还最小化重构误差。
在一些示例中,片信息模块(304)可以收集用于指示片的大小和形状的片信息。在一些示例中,片信息可以被封装到图像帧中,然后由辅助片信息压缩模块(338)进行编码以生成压缩的辅助片信息。
在一些示例中,片封装模块(308)被配置为将提取的片映射到二维(2D)网格上,同时最小化未使用的空间,并保证网格的每M×M(例如,16x16)块与唯一的片相关联。有效的片封装可以通过最小化未使用的空间或确保时间一致性来直接影响压缩效率。
几何图像生成模块(310)可以生成与给定片位置处的点云的几何形状相关联的2D几何图像。纹理图像生成模块(312)可以生成与给定片位置处的点云的纹理相关联的2D纹理图像。几何图像生成模块(310)和纹理图像生成模块(312)利用在填封装过程中计算的3D到2D映射,将点云的几何形状和纹理存储为图像。为了更好地处理多个点被投影到同一样本的情况,每个片被投影到两个图像(称为层)上。在一个示例中,几何图像由YUV420-8bit格式的WxH单色帧来表示。为了生成纹理图像,纹理生成过程利用重构/平滑的几何形状来计算要与重新采样的点相关联的颜色。
占用地图模块(314)可以生成描述每个单元处的填充信息的占用地图。例如,占用图像包括二进制地图,该二进制地图针对网格的每个单元指示该单元是属于空白空间还是属于点云。在一个示例中,占用地图使用二进制信息来描述每个像素是否被填充。在另一示例中,占用地图使用二进制信息来针对每个像素块描述该像素块是否被填充。
可以使用无损编码或有损编码来压缩由占用地图模块(314)生成的占用地图。当使用无损编码时,熵压缩模块(334)用于压缩占用地图。当使用有损编码时,视频压缩模块(332)用于压缩占用地图。
应当注意,片封装模块(308)可以在封装在图像帧中的2D片之间留下一些空间。图像填充模块(316)和(318)可以填充该空间(称为填充),以便生成适合于2D视频和图像编解码器的图像帧。图像填充也被称为背景填充,其可以用冗余信息填充未使用的空间。在一些示例中,良好的背景填充最低限度地提高了比特率,而不会在片边界周围引入明显的编码失真。
视频压缩模块(322)、(323)和(332)可以基于合适的视频编码标准(例如,HEVC、VVC等)对2D图像(例如,填充的几何图像、填充的纹理图像和占用地图)进行编码。在一个示例中,视频压缩模块(322)、(323)和(332)是单独操作的独立组件。需要注意的是,在另一示例中,视频压缩模块(322)、(323)和(332)可以被实现为一个组件。
在一些示例中,平滑模块(336)被配置为生成重构的几何图像的平滑图像。平滑图像可以被提供给纹理图像生成(312)。然后,纹理图像生成模块(312)可以基于重构的几何图像来调整纹理图像的生成。例如,当片形状(例如,几何形状)在编码和解码期间轻微失真时,在生成纹理图像时可以考虑该失真,以校正片形状中的失真。
在一些实施例中,组扩展模块(320)被配置为用冗余低频内容来填充对象边界周围的像素,以便提高编码增益以及重构的点云的视觉质量。
复用器(324)可以将压缩的几何图像、压缩的纹理图像、压缩的占用地图、压缩的辅助片信息复用到压缩的码流中。
图4示出了在一些示例中用于对与点云帧相对应的压缩的码流进行解码的V-PCC解码器(400)的框图。在一些示例中,V-PCC解码器(400)可以用于通信系统(100)和流媒体系统(200)中。例如,解码器(210)可以被配置为以与V-PCC解码器(400)类似的方式进行操作。V-PCC解码器(400)接收压缩的码流,并基于压缩的码流生成重构的点云。
在图4的示例中,V-PCC解码器(400)包括解复用器(432)、视频解压缩模块(434)和(436)、占用地图解压缩模块(438)、辅助片信息解压缩模块(442)、几何重构模块(444)、平滑模块(446)、纹理重构模块(448)和颜色平滑模块(452)。
解复用器(432)可以接收压缩的码流并将其分离为压缩的纹理图像、压缩的几何图像、压缩的占用地图和压缩的辅助片信息。
视频解压缩模块(434)和(436)可以根据合适的标准(例如,HEVC、VVC等)对压缩的图像进行解码,并输出解压缩的图像。例如,视频解压缩模块(434)对压缩的纹理图像进行解码,并输出解压缩的纹理图像。视频解压缩模块(436)对压缩的几何图像进行解码,并输出解压缩的几何图像。
占用地图解压缩模块(438)可以根据合适的标准(例如,HEVC、VVC等)对压缩的占用地图进行解码,并输出解压缩的占用地图。
辅助片信息解压缩模块(442)可以根据合适的标准(例如,HEVC、VVC等)对压缩的辅助片信息进行解码,并输出解压缩的辅助片信息。
几何重构模块(444)可以接收解压缩的几何图像,并基于解压缩的占用地图和解压缩的辅助片信息来生成重构的点云几何形状。
平滑模块(446)可以平滑片边缘处的不一致。平滑过程旨在减轻可能由于压缩伪影而在片边界处出现的潜在不连续性。在一些实施例中,可以将平滑滤波器应用于位于片边界上的像素,以减轻可能由压缩/解压缩而引起的失真。
纹理重构模块(448)可以基于解压缩的纹理图像和平滑的几何形状来确定点云中的点的纹理信息。
颜色平滑模块(452)可以平滑着色的不一致。3D空间中的非相邻片通常被封装为在2D视频中彼此相邻。在一些示例中,来自非相邻片的像素值可能被基于块的视频编解码器混淆。颜色平滑的目标是减少出现在片边界处的可见伪影。
图5示出了在一些示例中的视频解码器(510)的框图。视频解码器(510)可以用于V-PCC解码器(400)中。例如,视频解压缩模块(434)和(436)、占用地图解压缩模块(438)可以类似地配置为视频解码器(510)。
视频解码器(510)可以包括解析器(520),用于根据压缩图像(例如,编码的视频序列)重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息。解析器(520)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffmancoding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的至少一个像素子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(520)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。
解析器(520)可对从缓冲存储器接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同单元。涉及哪些单元以及如何涉及可由解析器(520)从已编码视频序列解析的子群控制信息来控制。为了简洁起见,未描述解析器(520)与下文的多个单元之间的此类子群控制信息流。
除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。
第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(551)可输出包括样本值的块,该样本值可输入到聚合器(555)中。
在一些情况下,缩放器/逆变换单元(551)的输出样本可属于帧内编码块,即,不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)采用从当前图片缓冲器(558)提取的周围已重建信息来生成大小和形状与正在重建的块相同的块。举例来说,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(555)基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元(551)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(553)可访问参考图片存储器(557)以提取用于预测的样本。在根据属于块的符号(521)对提取的样本进行运动补偿之后,这些样本可由聚合器(555)添加到缩放器/逆变换单元(551)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。参考图片存储器(557)内的运动补偿预测单元(553)获取预测样本的地址可受到运动矢量控制,且该运动矢量以符号(521)的形式而供运动补偿预测单元(553)使用,该符号(521)可以具有例如X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的内插、运动矢量预测机制等等。
聚合器(555)的输出样本可经受环路滤波器单元(556)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中并且作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)的参数,然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间所获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元(556)的输出可以是样本流,该样本流可输出到渲染设备以及存储在参考图片存储器(557),以用于后续的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可根据例如ITU-T H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅可在该配置文件下使用的工具。还必须要求已编码视频序列的复杂度处于视频压缩技术或标准的水平所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由水平所设定的限制可通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
图6是根据本申请公开的实施例的视频编码器(603)的框图。视频编码器(603)可以用于压缩点云的V-PCC编码器(300)中。在一个示例中,视频压缩模块(322)和(323)以及视频压缩模块(332)的配置与编码器(603)类似。
视频编码器(603)可以接收图像,例如填充的几何图像、填充的纹理图像等,并生成压缩图像。
根据实施例,视频编码器(603)可实时或在由应用所要求的任何其它时间约束下,将源视频序列(图像)的图片编码且压缩成已编码视频序列(压缩的图像)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在功能上耦接到所述其它功能单元。为了简洁起见,图中未示出耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局、最大运动矢量搜索范围等。控制器(650)可被配置为具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
在一些实施例中,视频编码器(603)被配置为在编码环路中进行操作。作为简单的描述,在示例中,编码环路可包括源编码器(630)(例如,用于基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)重建符号以用类似于(远程)解码器创建样本数据的方式来创建样本数据(因为在所公开主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”作为参考图片样本具有与如解码器将在解码期间使用预测时所“看到”的完全相同的样本值。在一些相关技术中也会使用这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)。
“本地”解码器(633)的操作可与例如已在上文结合图5详细描述的视频解码器(510)的“远程”解码器相同。然而,仍简要参考图5,当符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在本地解码器(633)中实施。
在操作期间,在一些示例中,源编码器(630)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,该运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与参考图片的像素块之间的差异进行编码,该参考图片可被选作该输入图片的预测参考。
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可有利地为有损过程。当在视频解码器(图6中未示出)处解码已编码视频数据时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,该解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可在本地存储重建的参考图片的副本,该副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于将要编码的新图片,预测器(635)可在参考图片存储器(634)中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可逐样本块像素块地进行操作,以找到合适的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的那样,输入图片可具有从参考图片存储器(634)中存储的多个参考图片中取得的预测参考。
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将该符号转换成已编码视频序列。
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上再分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,该其它块由应用于块的相应图片的编码分配来确定。举例来说,可对I图片的块进行非预测编码,或可参考同一图片的已编码的块来I图片的块进行预测编码(空间预测或帧内预测)。可参考一个先前编码的参考图片通过空间预测或通过时间预测来对P图片的像素块进行预测编码。可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测来对B图片的块进行预测编码。
视频编码器(603)可根据例如ITU-T H.265建议书的预定视频编码技术或标准来执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
视频可以是时间序列中的多个源图片(图像)的形式。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在示例中,将正在编码/解码的特定图片(被称为当前图片)分割成块。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。该运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,该运动矢量可具有识别参考图片的第三维度。
在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测该块。
此外,合并模式技术可用于帧间图片预测以改善编码效率。
根据本申请公开的一些实施例,例如帧间图片预测和帧内图片预测的预测以块为单位执行。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(codingtree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),该三个编码树块是一个亮度CTB和两个色度CTB。还可将每个CTU递归地以四叉树划分为一个或多个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU划分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,将CU划分为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(predictionblock,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块的示例,预测块包括像素的值(例如,亮度值)的矩阵,所述像素为例如8×8像素、16×16像素、8×16像素、16×8像素等等。
图7示出了在一些示例中的G-PCC编码器(700)的框图。G-PCC编码器(700)可以被配置为接收点云数据并压缩点云数据以生成携带压缩的点云数据的码流。在一个实施例中,G-PCC编码器(700)可以包括位置量化模块(710)、重复点去除模块(712)、八叉树编码模块(730)、属性转移模块(720)、细节等级(Level Of Detail,LOD)生成模块(740)、属性预测模块(750)、残差量化模块(760)、算术编码模块(770)、逆残差量化模块(780)、加法模块(781)和用于存储重构的属性值的存储器(790)。
如图所示,可以在G-PCC编码器(700)处接收输入点云(701)。点云(701)的位置(例如,3D坐标)被提供给量化模块(710)。量化模块(710)被配置为量化坐标以生成量化位置。重复点去除模块(712)被配置为接收量化位置并执行滤波过程以识别和去除重复点。八叉树编码模块(730)被配置为从重复点去除模块(712)接收滤波后的位置,并执行基于八叉树的编码过程以生成描述体素的3D网格的占用码序列。占用代码被提供给算术编码模块(770)。
属性转移模块(720)被配置为接收输入点云的属性,并且当多个属性值与各个体素相关联时,执行属性转移过程以确定每个体素的属性值。可以对从八叉树编码模块(730)输出的重新排序的点执行属性转移过程。经过传输操作之后的属性被提供给属性预测模块(750)。LOD生成模块(740)被配置为对从八叉树编码模块(730)输出的重新排序的点进行操作,并将这些点重新组织成不同的LOD。LOD信息被提供给属性预测模块(750)。
属性预测模块(750)根据由来自LOD生成模块(740)的LOD信息所指示的基于LOD的顺序来处理点。属性预测模块(750)基于存储在存储器(790)中的当前点的一组相邻点的重构属性来生成针对当前点的属性预测。随后可以基于从属性转移模块(720)接收的原始属性值和本地生成的属性预测来获得预测残差。当在各个属性预测过程中使用候选索引时,可以将与所选择的预测候选相对应的索引提供给算术编码模块(770)。
残差量化模块(760)被配置为从属性预测模块(750)接收预测残差,并执行量化以生成量化残差。量化残差被提供给算术编码模块(770)。
逆残差量化模块(780)被配置为接收来自残差量化模块(760)的量化残差,并通过执行在残差量化模块(760)处执行的量化操作的逆操作来生成重构的预测残差。加法模块(781)被配置为从逆残差量化模块(780)接收重构的预测残差,以及从属性预测模块(750)接收相应的属性预测。通过组合重构的预测残差和属性预测,生成重构的属性值并将其存储到存储器(790)。
算术编码模块(770)被配置为接收占用码、候选索引(如果使用)、量化残差(如果生成)和其他信息,并执行熵编码以进一步压缩接收到的值或信息。因此,可以生成携带压缩信息的压缩的码流(702)。码流(702)可以被发送或以其他方式提供给对压缩的码流进行解码的解码器,或者可以被存储在存储设备中。
图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)之类的处理电路(例如,专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,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域。在某些示例中,网格在三维域中被划分为片。片是网格的连续子集,其边界由边界边形成。片的边界边是属于片的仅一个多边形的边,并且不由片中的两个相邻多边形共享。在某些示例中,片中边界边的顶点被称为片的边界顶点,而片中的非边界顶点可以被称为片的内部顶点。
在一些示例中,对象的网格由连接的三角形形成,并且网格可以划分为片,每个片都是连接的三角形的子集。片的边界边是属于片中仅一个三角形的边,并且不由片中的相邻三角形共享。在某些示例中,片中边界边的顶点被称为片的边界顶点,而片中的非边界顶点可以被称为片的内部顶点。边界循环包括边界顶点序列,由边界顶点序列形成的边界边可以形成称为边界循环的循环。
根据本公开的一个方面,在一些示例中,片被分别参数化为2D形状(也称为UV片)。在一些示例中,2D形状可以被封装(例如,定向和放置)到也称为图集的图中。在一些示例中,可以使用2D图像或视频处理技术来进一步处理图。
在一个示例中,UV映射技术生成与3D网格的片相对应的2D中的UV图集(也称为UV图)和一个或多个纹理图集(也称为纹理图)。UV图集包括将3D网格的3D顶点分配给2D域(例如,矩形)中的2D点。UV图集是3D表面的坐标到2D域的坐标之间的映射。在一个示例中,UV图集中2D坐标(u,v)处的点具有由3D域中顶点的坐标(x,y,z)形成的值。在一个示例中,纹理图集包括3D网格的颜色信息。例如,纹理图集中2D坐标(u,v)处的点(其具有在UV图集中的3D值(x,y,z))具有指定3D域中(x,y,z)处的点的颜色属性的颜色。在一些示例中,3D域中的坐标(x,y,z)被称为3D坐标或xyz坐标,并且2D坐标(u,v)被称作uv坐标或UV坐标。
根据本公开的一些方面,可以通过使用一个或多个2D图(在一些示例中也称为2D图集)来表示网格,然后使用图像或视频编解码器对2D图进行编码来执行网格压缩。可以使用不同的技术来生成2D图。
图9示出了在一些示例中示出3D网格(910)到2D图集(920)的映射的图。在图9的示例中,3D网格(910)包括形成四个片A-D的四个顶点1-4。每个片都有一组顶点和相关的属性信息。例如,片A由连接成三角形的顶点1、2和3形成。片B由连接成三角形的顶点1、3和4形成。片C由连接成三角形的顶点1、2和4形成。片D由连接成三角形的顶点2、3和4形成。在一些示例中,顶点1、2、3和4可以具有各自的属性,并且由顶点1、3、4形成的三角形可以具有各自的属性。
在一个示例中,3D中的片A、B、C和D被映射到2D域,例如,也被称为UV图集(920)或UV图(920)的2D图集(920)。例如,将片A映射到图(920)中的2D形状(也称为UV片)A’,将片B映射到图(920)中的2D形状(也称为UV片)B’,将片C映射到图(920)中的2D形状(也称为UV片)C’,将片D映射到图(920)中的2D形状(也称为UV片)D’。在一些示例中,3D域中的坐标被称为(x,y,z)坐标,2D域(例如,图(920))中的坐标被称作UV坐标。3D网格中的顶点可以在图(920)中具有对应的UV坐标。
图(920)可以是具有几何信息的几何图,或者可以是具有颜色、法线、纹理或其他属性信息的纹理图,或者是具有占用信息的占用地图。
虽然在图9示例中的每个片由三角形表示,但需要注意的是,片可以包括任何适当数量的顶点,这些顶点被连接以形成网格的连续子集。在一些示例中,片中的顶点连接成三角形。需要注意的是,可以使用其他合适的形状来连接片中的顶点。
在一个示例中,顶点的几何信息可以存储到2D几何图中。例如,2D几何图存储采样点在2D几何图中的对应点处的(x,y,z)坐标。例如,2D几何图中位于(u,v)位置的点具有分别对应于3D网格中对应采样点的x、y和z值的3个分量的矢量值。
根据本公开的一个方面,图中的区域可能没有被完全占据。例如,在图9中,在2D形状A’、B’、C’和D’之外的区域是未定义的。解码后在2D形状A’、B’、C’和D’之外的区域的采样值可以被丢弃。在某些情况下,占用地图用于存储每个像素的一些额外信息,例如存储二进制值以识别像素是否属于片或是未定义。
根据本公开的一个方面,动态网格是其中至少一个组分(几何信息、连接信息、映射信息、顶点属性和属性映射)随时间变化的网格。动态网格可以通过网格序列(也称为网格帧)来描述。在一些示例中,动态网格中的网格帧可以是对象的表面在不同时间的表示,并且每个网格帧是对象的表面在特定时间(也称为时间点)的表示。动态网格可能需要大量的数据,因为动态网格可能包括随着时间变化的大量信息。网格的压缩技术可以使得能够在网格表示中有效地存储和传输媒体内容。
在一些示例中,动态网格可以具有固定连接信息、时变几何形状和时变的顶点属性。在一些示例中,动态网格可以具有随时间变化的连接信息。在一个示例中,数字内容创建工具通常生成具有时变属性图和时变连接信息的动态网格。在一些示例中,体积采集技术用于生成动态网格。体积采集技术可以生成具有时变连接信息的动态网格,特别是在实时约束条件下。
根据本公开的一个方面,纹理映射(例如,纹理图、属性图)消耗了网格表示的很大一部分,并且对于纹理映射的有效压缩可以是网格压缩中的关键任务之一。在一些示例中,时间点处的纹理映射包括由与片相对应的2D形状组成的图像(例如,纹理图、属性图),2D形状也称为UV片。每个UV片表示网格的表面区域在时间点处的纹理信息(例如红色、绿色和蓝色的颜色值)。图像的像素坐标对应于UV坐标。
图10示出了在一个示例中的在两个时间点处的纹理图。在一些示例中,可以独立生成在不同时间点处的纹理图,可以对不同时间点处的纹理图中的相关UV片进行不同的布置。图10示出了在第一时间t0的第一纹理图(1010)和在第二时间t1的第二纹理图(1020)。对第一纹理图(1010)和第二纹理图(1020)中的相关UV片进行不同的布置。例如,第一纹理图(1010)包括与在第一时间t0的人的面部相对应的UV片(1011),并且第二纹理图(1020)包括与第二时间t1的人的面部相对应的UV片(1021)。UV片(1011)和UV片(1021)是相关的。如图10所示,UV片(1011)和UV片(1021)通过不同的方向和不同的UV位置布置在各自的纹理图中。
本公开的一些方面提供了用于在时间上对齐片的编码技术,例如在时间上对齐2D图(诸如纹理图、属性图、几何图)中的UV片。例如,当2D图中的UV片在时间上对齐时,可以例如使用帧间预测技术来更有效地压缩2D图。值得注意的是,在一些示例中,网格可以使用2D图来表示,并且本公开中的术语“片”可以指2D图情况下的UV片。
图11示出了根据本公开的一些实施例的片时间对齐的过程(1100)的图。过程(1100)可以在网格的编码过程期间使用。在各种实施例中,过程(1100)由处理电路执行。在一些实施例中,过程(1100)以软件指令实现,因此,当处理电路执行该软件指令时,处理电路执行过程(1100)。过程从步骤(S1101)开始,并且包括片分析(S1110)、片分类(S1120)、重映射分析(S1130)和重映射(S1140)。
在步骤(S1110)中,进行片分析。片分析可以分析片的特性。在一些示例中,在片分析期间,识别2D图(例如,属性图、纹理图等)中的各个片的特征点。特征点可以通过任何合适的技术来识别,例如尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)、加速鲁棒特征(SpeedUp Robust Feature,SURF)、梯度位置和方向直方图(GradientLocation and Orientation Histogram,GLOH)、定向梯度直方图(Histogram of OrientedGradient,HOG)等。
在一些示例中,在片分析期间,计算每个片的度量。度量可以是尺度不变度量、旋转不变度量、平移不变度量或仿射变换不变度量等。下文中将描述几个度量示例。在一些示例中,度量示例可以单独用作片分析中的度量。在一些示例中,度量示例的两个或多个度量可以被组合以在片分析中形成组合度量。在一些示例中,可以将指示片的相似特性的其他合适度量用于片分析。
在一些示例中,片的3D坐标的中心可以被计算为片的度量。例如,片的3D坐标的中心可以通过片内的点(例如,顶点)的3D坐标子集的加权和来计算。在一个示例中,可以通过对片内的所有点(例如,顶点)的3D坐标进行平均来计算片的3D坐标的中心,这些点包括边界点(例如,包括边界顶点)。在另一个示例中,通过对片内部的除了边界点(例如,不包括边界顶点)的所有点(例如,顶点)的3D坐标求平均值来计算片的3D坐标的中心。在另一个示例中,计算片的3D坐标的中心作为为该片的所有边界顶点的3D坐标的平均值。
在一些示例中,可以计算片的UV坐标的中心作为片的度量。例如,片的UV坐标的中心可以通过片内的点(例如,顶点)的UV坐标子集的加权和来计算。在一个示例中,可以通过对片内的所有点(例如,顶点)的UV坐标进行平均来计算片的UV坐标的中心,这些点包括边界点(例如,边界顶点)。在另一个示例中,通过对片内除了边界点(例如,边界顶点)之外的所有点(例如,顶点)的UV坐标进行平均来计算片的UV坐标的中心。在另一个示例中,通过对片的所有边界顶点的UV坐标取平均值来计算片的UV坐标中心。
在一些示例中,可以将片中的点的子集的加权平均纹理或属性值计算为片的度量。在一个示例中,可以通过对片内的包括边界点(例如,边界顶点)的所有点(例如,顶点)的纹理或属性值(例如,红色、绿色和蓝色通道值)进行平均来计算加权平均纹理或属性值。在另一个示例中,通过对片内的除了边界点(例如,边界顶点)之外的所有点(例如,顶点)的纹理或属性值(例如,红色、绿色和蓝色通道值)进行平均来计算加权平均纹理或属性值。在另一个示例中,通过对片的所有边界顶点的纹理或属性值(例如红色、绿色和蓝色通道值)取平均值来计算加权平均纹理或属性值。
在步骤(1120),执行片分类。在一些示例中,在片分类期间,可以基于给定时间点的片的帧间一致性或任何其他时间/空间特征将给定时间点的片分类为不同的类别。
在一些实施例中,在给定时间点处的2D图的片(例如,几何图、纹理图或属性图)可以被分类为被称为类别M和类别N的两个类。类别M包括在过去时间点处找到参考匹配片的片,而类别N包括在过去时间点处没有找到参考匹配片的片。在一些示例中,片和用于该片的参考匹配片可以是对象表面的一部分在不同时间点处的表示。例如,片表示对象在当前时间的的特定表面部分,而参考匹配片表示对象在过去时间点处的特定表面部分。
在片分类期间,在一些示例中,对于每个片,在过去时间点处的2D图(例如,几何图、纹理图或属性图)上采用参考匹配技术,以确定是否在过去时间点处找到参考匹配片。
在一些示例中,例如当片和参考匹配片具有足够的匹配特征点时,一种技术可以基于特征匹配来为给定时间点处的片确定在过去时间点处的参考匹配片。在一个实施例中,可以利用交叉特征匹配技术。例如,基于提取的特征点,将给定时间点(t)处由Pi,t表示的片与过去时间点(t-k)处的所有片相匹配。在过去时间点(t-k)处的所有片中,片Pi,t的最佳匹配片(例如,基于匹配特征点的数量)由Pi0,t-k表示。然后,将过去时间点(t-k)处的片Pi0,t-k与该时间点(t)处的所有片进行匹配,以找到最佳未来匹配片。当Pi0,t-k的最佳未来匹配片是Pi,t时,根据交叉特征匹配技术对Pi0,t-k和Pi,t进行交叉匹配。然后,对于片Pi,t,在过去时间点处存在参考匹配片,则Pi,t被分类到类别M。否则(例如,Pi0,t-k的最佳未来匹配片不是Pi,t),Pi,t被分类到类别N。
在一些示例中,在片分类期间,在过去时间点处的2D图(例如,几何图、纹理图或属性图)上采用度量匹配技术,以确定是否在过去时间点处找到参考匹配片。在一个示例中,使用3D坐标的中心,将时间点(t)处的片Pi,t与过去时间点(t-k)处的所有片相匹配,其中k是正数。在过去时间点(t-k)的所有片中,可以选择在3D坐标中心与片Pi,t具有最小差的片(由Pi0,t-k表示)作为最佳匹配片。3D坐标中心的差可以通过l1范数、l2范数或任何其他距离测量来测量。然后,使用3D坐标的中心将最佳匹配片Pi0,t-k与时间点(t)处的所有片进行匹配,以找到Pi0,t-k的最佳未来匹配片。如果片Pi0,t-k与在过去时间点(t-k)处的片中的片Pi,t在3D坐标中心具有最小的差,并且此外,片Pi,t与在时间点(t)处的片中的片Pi0,t-k在3D坐标中心具有最小的差(例如,片Pi,t是Pi0,t-k的最佳未来匹配),则Pi0,t-k和Pi,t根据3D坐标中心的交叉匹配进行交叉匹配,Pi,t被归类到类别M。否则(例如,Pi0,t-k的最佳未来匹配片不是Pi,t),则Pi,t被归类到类别N。
在一些示例中,在度量匹配技术中可以使用一个以上的度量。在一个示例中,对于时间点(t)处的片Pi,t,根据3D坐标中心找到过去时间点处的交叉匹配片Pi0,t-k,并且两个交叉匹配片的另一度量(例如,平均纹理值)或两个度量(例如,平均纹理值和UV坐标中心)的差很小,例如小于给定阈值(或者在两个度量的情况下为两个给定阈值),Pi,t被归类到类别M。否则(例如,其他度量的差等于或大于阈值),Pi,t被归类到类别N。
在一些例子中,豪斯道夫(Hausdorff)距离被用于度量匹配。例如,时间点t处的片Pi,t与过去时间点(t-k)处的所有片匹配,其中k是根据3D坐标的Hausdorff距离的正数。
在一些示例中,Hausdorff距离与度量匹配中的一个、两个或多个计算度量(例如平均纹理值和/或3D坐标中心和/或UV坐标中心等)相结合。
需要注意的是,尽管上述描述中的片分类执行给定时间点到过去时间点的参考匹配,但是也可以使用给定时间点对未来时间点的参考匹配来应用片分类。例如,在给定时间点处的2D图(例如,几何图、纹理图或属性图)的片被归类为被称为类别M和类别N的两个类。类别M包括在未来时间点处找到参考匹配片的片,而类别N包括在未来时间点处没有找到参考匹配片的片。
在步骤(S1130)中,进行重映射分析。在一些示例中,在重映射分析期间,为每个片计算重映射变换参数,例如旋转参数、反射参数、平移参数等,以使片在时域中更好地对齐。
在一些示例中,可以基于匹配的局部特征点来导出重映射变换参数。
在一些示例中,从类别M中的片开始进行重映射分析。在对类别M中的片完成重映射分析之后,可以对类别N中的片执行重映射分析。
在一个实施例中,为了进行重映射分析,封装的片列表L被初始化为空。然后,按大小对类别M中的片进行排序。按照大小顺序对类别M中的片进行重映射分析。例如,在分析类别M中的一个小的片之前先分析类别M中的一个大的片。在一个示例中,片的大小可以通过片内部的像素数(包括边界)来计算。在另一个示例中,可以通过片内部除边界之外的像素数来计算片的大小。在另一个示例中,片的大小可以是包含片的最小矩形边界框的面积。
在一些示例中,在重映射分析期间为每个片确定旋转角度,以获得相对于参考匹配片的最高相似度。在一些示例中,类别M中的片Pi,t在时间点(t-k)处具有参考匹配片,k是正数,参考匹配片由片Pi0,t-k表示。在一个示例中,对于片Pi,t,确定旋转角度ri,t,使得由R(Pi,t)表示的旋转片(将片Pi,t以角度ri,t旋转之后获得)具有相对于参考Pi0,t-k最高的相似度(相似度值被称为第一最高相似度值)。在一些示例中,旋转角度ri,t是介于0和2π之间的值,0<=ri,t<2π。在一些示例中,可以通过重叠度(intersection over union IoU)值来衡量相似度。在一些示例中,相似度测量是旋转片R(Pi,t)和参考匹配片Pi0,t-k之间的互相关性。
在一些示例中,沿着水平轴反射片Pi,t以生成反射片FPi,t,并且针对反射片FPi,t确定旋转角度fi,t以使其具有相对于参考Pi0,t-k最高的相似度(相似度的值被称为第二高相似度值)。然后,可以比较第一最高相似度值和第二最高相似度值的相似度值,以确定是在片Pi,t上使用ri,t还是在反射片FPi,t上使用fi,t。在一个示例中,当第一相似度值较高时,最终旋转角度为ri,t;当第二相似度值较高时,可以将最终旋转角度ri,t设置为-fi,t。需要注意的是,最终旋转角度ri,t的范围是-2π<ri,t<2π,其中负角度表示反射被施加到片Pi,t。
在一些示例中,一位反射标志用于指示是否应用反射。对于一位反射标志,旋转角度在0到2π的范围内。
在一些示例中,在确定旋转角度ri,t之后,确定旋转片R(Pi,t)的空间平移值(ui,t,vi,t)。在一个示例中,空间平移值(ui,t,vi,t)最初被设置为初始化值,使得在空间平移之后的片R(Pi,t)(称为空间平移片,表示为T(R(Pi,t)))的UV坐标中心等于参考匹配补片Pi0,t-k的UV坐标中心。然后,检查空间转换片T(R(Pi,t))是否与已经在封装的片列表L中的任何片重叠。如果空间转换片T(R(Pi,t))与封装的片列表L中的其他片无重叠,则空间转换片T(R(Pi,t))被添加到封装的片列表L。然后,可以按大小顺序继续对类别M中的下一个片进行重映射分析。
在一些示例中,通过在空间平移值的窗口上计算旋转片R(Pi,t)和参考匹配片Pi0,t-k之间的互相关值来初始化空间平移值(ui,t,vi,t)。窗口中可以给出最高互相关值的值可以用作空间平移值(ui,t,vi,t)的初始化值。
在一些示例中,在重叠检查期间,空间转换片T(R(Pi,t))与已经在封装的片列表L中的片重叠,然后可以在以初始化值为中心的范围内逐渐修改空间转换值(ui,t,vi,t),并且可以对具有修改后的空间转换值的空间转换片T(R(Pi,t))执行重叠检查,以检查空间转换片T(R(Pi,t))是否与封装的片列表L中的任何片重叠。当空间转换片T(R(Pi,t))与封装的片列表L中的片无重叠时,空间转换片T(R(Pi,t))被添加到封装的片列表L中。然后,可以按大小顺序继续对类别M中的下一个片进行重映射分析。
然而,在一个示例中,对于搜索范围中的所有空间转换值(ui,t,vi,t),如果在空间转换片T(R(Pi,t))和封装的片列表L中的一些片之间发生重叠,则从类别M中移除片Pi,t并将其添加到类别N中。然后,按大小顺序继续对类别M中的下一个片进行重映射分析。
在完成对类别M中的所有片的重映射分析之后,继续对类别N中的片进行重映射分析。
在一些示例中,类别N中的片是按大小排序的。重映射分析遵循大小顺序进行。例如,在对类别N中的一个小的片进行重映射分析之前先对类别N中的一个大的片进行重映射分析。在一个示例中,片的大小通过片内部的包括边界的像素数来计算。在另一个示例中,片的大小是片内部的除了边界之外的像素数)。在另一个示例中,片的大小是包含片的最小矩形边界框的面积。
在一些示例中,对于类别N中的片Pi,t,可以确定空间平移值(ui,t,vi,t)。在一个示例中,空间平移值(ui,t,vi,t)最初被设置为指示没有空间平移的(0,0)。然后,检查片Pi,t是否与已经在封装的片列表L中的任何片重叠。如果片Pi,t是无重叠的(例如,不与封装的片列表L中的任何片重叠),则将片Pi,t添加到封装的片列表L。然后,按大小顺序继续对类别N中的下一个片进行重映射分析。
在一些示例中,如果片Pi,t与封装的片列表L中的片重叠,则空间平移值(ui,t,vi,t)在以(0,0)为中心的范围内逐渐修改,并且执行重叠检查以检查由具有逐渐修改的空间转换值的由T(Pi,t)表示的空间转换片是否与封装的片列表L中的任何片重叠。如果由T(Pi,t)表示的空间转换片是无重叠的,则空间转换片T(Pi,t)被添加到封装的片列表L中。然后,按大小顺序继续对类别N中的下一个片进行重映射分析。
在一些示例中,对于搜索范围中的所有空间平移值(ui,t,vi,t),如果在T(Pi,t)和封装的片列表L中的一些片之间发生重叠,则停止重映射分析(称为早期停止)。早期停止表示在给定的搜索范围内重映射是不可行的。在一个示例中,将跳过重映射阶段(S1140)。因此,将不执行在给定时间点(t)处的重映射。
在一些示例中,当对于类别N中的片的重映射分析在没有出现早期停止的情况下完成时,可以执行重映射(S1140)。
在步骤(S1140)中,进行重映射。
在一些示例中,在重映射期间,为时间点(t)生成一个或多个新的2D图,例如新的纹理图或新的属性图。在一个示例中,可以检查原始2D图(例如,原始纹理图或原始属性图)中的每个像素,以确定该像素是否属于片。
如果像素属于片Pi,t,则该像素是被占用像素。对于片Pi,t的被占用像素,可以通过在像素位置上应用片Pi,t的旋转角度和空间平移值来确定新2D图(例如,新几何图、新纹理图或新属性图)中的新位置。需要注意的是,在一些示例中,片Pi,t在类别N中,则片Pi,t的重映射变换参数可以不包括旋转角度参数,并且不将旋转应用于像素。在导出像素的新位置之后,原始2D图(例如,几何图、纹理图或属性值)中的像素值被分配为新2D图中的新位置处的值。然后继续对下一个像素进行重映射。
如果该像素不属于任何片,则该像素是原始2D图(例如,几何图、纹理图或属性图)中未被占用像素,继续对下一个像素进行重映射。
在原始2D图中的所有被占用像素的像素值已经被重映射到新2D图之后,新图中可能存在尚未被分配值的像素。这些是新2D图中未被占用像素。
对于新2D图(例如,新几何图、新纹理图或新属性图)中未被占用像素,可以分配任何合适的值。在一个示例中,为了提高编码效率,可以从被占用的空间/时间邻居的值导出未被占用像素。在另一个示例中,未被占用像素可以被分配有固定值,其中固定值可以是所有被占用像素的平均值或中值。在另一个示例中,使用边界扩展技术,扩展片的边界以将边界值填充到未被占用像素中。在另一个示例中,使用贴图(mipmap)技术来填充未被占用像素。
在一些实施例中,对于诸如几何图、纹理图、属性图等的每个2D图,应用片时间对齐来生成诸如新几何图、新纹理图、新属性图等的新2D图。然而,在重映射分析期间出现早期停止的情况下,新2D图可以是原始2D图的精确副本。
在一些示例中,对于在网格序列的时间开始时的2D图(例如,几何图、纹理图或属性图),例如第一2D图,对应的新2D图可以是原始2D图的精确副本。在一些示例中,未来时间点处的2D图被用作参考帧,并且可以为网格序列中的第一2D图生成新2D图。
在一些示例中,对于每个时间点生成新2D图(例如,新几何图、新纹理图或新属性图)以形成新2D图序列,可以对新2D图序列进行压缩。
在一些示例中,为了在解码器侧将2D图(例如,纹理图或属性图)恢复到原始UV坐标,可以在编码器和解码器之间传送每个片的重映射变换参数,使得解码器可以恢复原始2D图。
根据本公开的一个方面,可以通过各种技术对重映射变换参数进行编码。在一些示例中,对于每个片,可以用信号发送一位变换标志,以指示重映射变换是否是有意义的变换。无意义的变换是无反射、旋转角度为零度、空间平移值为(0,0)的重映射变换。在一些示例中,可以在编码之前对旋转角度进行量化。在一个示例中,对旋转角度的量化可以用π/2、π/4的量化步长或一些其他量化步长来完成。在一些示例中,可以在编码之前对空间平移值进行量化。对空间平移值的量化可以通过整数值、浮点值的量化步骤或一些其它量化步骤来完成。
在一些实施例中,对网格表示(例如,3D几何表示,如Wavefront obj文件)中的UV坐标进行更新。例如,几何图将被更新为新几何图。UV坐标更新后,无需对重映射变换参数进行编码。
根据本公开的另一方面,自适应采样可以应用于编码器侧。在一些示例中,片时间对齐方法可以与自适应采样方法一起使用。
在自适应采样中,采样步骤自适应地应用于几何图、纹理图或属性图,这可以减少表示信息所需的带宽。在自适应采样之后,可以在时间上对齐2D图中的块,例如几何图、纹理图或属性图等。需要注意的是,在自适应采样期间可能已经以不同的采样率对片进行了采样。
根据本公开的一些方面,在编码器侧,纹理映射(例如,纹理图和/或属性图)可以具有时间对齐的片,但是几何信息(例如,顶点的UV坐标、连接信息)可以是网格的原始几何信息。时间对齐的纹理映射和原始几何信息由编码器编码成码流,并且该码流可以被提供给解码器侧。在解码器侧,解码器可以执行片时间对齐的解码,并且可以恢复原始纹理图。
在一些实施例中,索引图在解码器处是可用的。索引图可以为原始纹理图中的每个像素指示该像素是否属于片。如果像素属于片,则索引图可以指示标识该片的片索引。在一些示例中,索引图在编码器侧被编码到码流中,并且在解码器侧,解码器可以从码流中解码索引图。
在一些示例中,基于索引图,解码器可以针对要恢复的纹理图(也称为恢复的纹理图)中的像素确定该像素所属的片,并使用该片的重映射变换参数来建立该像素的UV坐标之间的一对一对应关系,以及解码的纹理映射(例如,解码的纹理图和/或解码的属性图)中的变换像素的变换UV坐标。然后,根据解码的纹理映射和一对一对应关系,可以向恢复的纹理图中的像素分配解码的纹理图中的变换像素的纹理值。
根据本公开的一个方面,对于不属于任何片的像素,可以为该像素的纹理值分配任意值。在一些示例中,可以从空间/时间邻居(空间/时间相邻像素)的纹理值导出纹理值。
在一些实施例中,在解码器处没有可用的索引图。解码器可以导出索引图并生成恢复的纹理图,在一些示例中恢复的纹理图可以是原始纹理映射。在一些示例中,解码器可以从片的边界顶点开始进行恢复。基于片的边界顶点,解码可以恢复片的内部,然后确定未被占用像素的纹理值。
根据本公开的一个方面,在对用于纹理映射压缩的片时间对齐进行编码期间,为纹理映射图(例如,纹理图、属性图)中的每个片计算重映射变换参数。在一些示例中,片的重映射变换参数包括旋转角度、反射标志和空间平移。空间平移是矢量,并且包括UV坐标中的U坐标的第一值和V坐标的第二值。在一些示例中,片的重映射变换参数包括旋转角度和空间平移。旋转角度的符号可以指示是否在片上应用反射操作。
图12示出了在一些实施例中概述过程(1200)的流程图。过程(1200)可以在网格帧的解码过程期间使用。过程(1200)可以接收包括网格帧的已编码的原始几何信息(例如,没有时间对齐的顶点的原始UV坐标)的码流,以及于另一个网格帧(例如,过去时间点的解码的网格帧)片时间对齐的已编码的时间对齐纹理图。应注意,通过根据与编码器侧的片相关联的重映射变换参数对网格帧的片应用变换操作(例如,旋转操作、反射操作、空间平移操作等)来生成(重映射)时间对齐的纹理图。重映射变换参数也被编码到码流中。在解码器侧,解码器可以从码流中解码与片和纹理图(例如,解码的时间对齐的纹理图)相关联的重映射变换参数。然后,过程(1200)可以生成与原始几何信息相对应的恢复的纹理图。在一些示例中,过程(1200)可以对恢复的纹理图中的片的边界顶点的像素进行恢复,然后对恢复的纹理图中的片的片内部的像素进行恢复,最后对恢复的纹理图中的未被占用像素进行恢复。在各种实施例中,过程(1200)由处理电路执行。在一些实施例中,过程(1200)以软件指令实现,因此,当处理电路执行该软件指令时,处理电路执行过程(1200)。该过程从步骤(S1201)开始,且进行到步骤(S1210)。
在步骤(S1210),对片的边界顶点的像素进行识别。在一些示例中,在对片的其他顶点进行编码之前,对片的边界顶点的几何信息(例如,原始UV坐标、连接)进行编码,并且片的边界顶点数被编码到码流中。在一个示例中,根据码流,解码器可以解码每个片的边界顶点的UV坐标。
在步骤(S1220),确定恢复的纹理图中的边界顶点的像素值。
例如,对于恢复的纹理图中的像素p,当像素p是片的边界顶点时(例如,恢复的纹理图内的像素p的UV坐标在片的边界顶点的解码的UV坐标中),可以根据从码流解码的片的重映射变换参数和时间对齐的纹理图(在一些示例中也称为解码的纹理图)来确定恢复的纹理图中的像素p的值。
在一个实施例中,片的重映射变换参数包括旋转角度、反射标志和空间平移矢量,空间平移矢量包括UV坐标中的空间平移操作的U分量和V分量这两个值。
图13示出了概述过程(1300)的流程图,该过程用于为恢复的纹理图中的像素确定解码的纹理图的对应变换像素的位置。在一个示例中,像素p是片Pi,t的边界顶点,并且片Pi,t的重映射变换参数包括旋转角r、反射标志和空间平移矢量(u,v),则可以通过过程(1300)来确定解码的纹理图中的对应变换像素(例如,对应变换UV坐标)的位置。该过程(1300)从步骤(S1301)开始,且进行到步骤(S1310)。
在步骤(S1310),确定片Pi,t的变换标志。当变换标志为假时,重映射变换是无意义的,解码的纹理图中对应变换UV坐标与恢复的纹理图的像素p相同,并且过程(1300)进行到步骤(S1399)并终止。当变换标志为真时,过程(1300)进行到步骤(S1320)。
在步骤(S1320),基于反射标志来执行反射操作。在一个示例中,反射标志是从码流中解码的。当反射标志为真时,已经在编码器侧的片Pi,t上应用了反射操作。在解码器侧,以与编码器侧类似的方式,将诸如沿着水平轴的反射等的反射操作应用于片Pi,t中的像素p的位置,以更新像素p的位置。当反射标志为假时,在编码器侧不对片Pi,t应用反射操作,并且在解码器侧不对像素p应用反射操作。
在步骤(S1330),在解码和去量化之后重构旋转角度r。然后,将旋转角度r的旋转操作应用于像素p的位置(或者在反射标志为真的情况下像素p的更新位置),经过旋转操作之后的像素的位置被称为旋转后像素位置。
在步骤(S1340),在解码和去量化之后重构空间平移矢量(u,v)。然后将空间平移矢量(u,v)应用于旋转后像素位置以确定空间平移的像素位置。空间平移的像素位置是解码的纹理图中针对恢复的纹理图中的像素p的变换位置,并且变换位置由解码的纹理图的变换UV坐标指定。然后,过程(1300)进行到步骤(S1399)并结束。
在另一个实施例中,重映射变换参数包括旋转角度和空间平移矢量,空间平移矢量包括UV坐标中的空间平移操作的U分量和V分量这两个值。
图14示出了概述过程(1400)的流程图,该过程用于为恢复的纹理图中的像素确定解码的纹理图的对应变换像素的位置。在一个示例中,像素p是片Pi,t的边界顶点,并且片Pi,t的重映射变换参数包括旋转角r和空间平移矢量(u,v),则可以通过过程(1400)来确定解码的纹理图中的对应变换像素(例如,对应变换UV坐标)的位置。该过程(1400)从步骤(S1401)开始,且进行到步骤(S1410)。
在步骤(S1410),确定片Pi,t的变换标志。当变换标志为假时,重映射变换是无意义的,解码的纹理图中对应变换UV坐标与恢复的纹理图的像素p相同,并且过程(1400)进行到步骤(S1499)并终止。当变换标志为真时,过程(1400)进行到步骤(S1420)。
在步骤(S1420),在解码和去量化之后重构旋转角度r。当旋转角度r为负时,已经在编码器侧的片Pi,t上应用了反射操作。在解码器侧,以与编码器侧类似的方式将诸如沿着水平轴的反射等的反射操作应用于片Pi,t中的像素p的位置,以更新像素p的位置。
在步骤(S1430),将基于旋转角度r的绝对值的旋转操作应用于像素p的位置(或者在旋转角度为负的情况下像素p的更新位置),经过旋转操作之后的像素的位置被称为旋转后像素位置。
在步骤(S1440),在解码和去量化之后重构空间平移矢量(u,v)。然后将空间平移矢量(u,v)应用于旋转像素位置以确定空间平移的像素位置。空间平移的像素位置是解码的纹理图中针对恢复的纹理图中的像素p的变换位置,并且变换位置由解码的纹理图的变换UV坐标指定。然后,过程(1400)进行到步骤(S1499)并结束。
在确定了解码的纹理图中的变换像素的变换UV坐标之后,可以在解码的纹理图的变换位置为恢复的纹理图的像素p分配纹理值。在一些示例中,当解码的纹理图中的变换UV坐标中的一个或多个坐标不是整数值时,可以使用插值法来导出解码的纹理图的变换位置处的纹理值。插值法可以使用任何合适的插值技术,例如最近邻、双线性、双三次、辛克函数(Sinc)、兰索斯法(Lanczos)、盒采样、贴图细化(mipmap)、基于傅立叶变换、边缘定向、高质量等级(hqx)、矢量化、基于深度卷积神经网络等。
继续参考图12,在步骤(S1230),对片内部的像素进行识别。对于恢复的纹理图中的非片边界顶点的像素p,例如根据边界顶点形成的边界边,可以将像素p识别为在片内部或未被占用。当像素p在片内部或片边界上时,像素p是片内部的像素。
在步骤(S1240),确定恢复的纹理图中的片内部的像素的纹理值。
在一些示例中,像素p位于片Pi,t内部或片Pi,t的边界上,可以执行过程(1300)或过程(1400)以导出解码的纹理图中的对应变换位置,并且可以将解码的纹理图中的对应变换位置的纹理值分配给恢复图中的像素p。在一些示例中,当解码的纹理图中的对应变换位置(变换UV坐标)的一个或多个坐标不是整数值时,可以使用插值法来导出解码的纹理图中的对应变换位置处的纹理值。插值法可以使用任何合适的插值技术,例如最近邻、双线性、双三次、Sinc、Lanczos、盒采样、mipmap、基于傅立叶变换、边缘定向、高质量等级(hqx)、矢量化、基于深度卷积神经网络等。
在步骤(S1250),确定恢复的纹理图中的未被占用像素。对于不在片内部也不在片边界上的像素,该像素是未被占用像素。对于未被占用像素,可以为纹理值分配任意值。在一些示例中,为了提高3D网格渲染质量,可以从占用的空间/时间相邻像素的值导出未被占用像素的纹理值。
在一个实施例中,未被占用像素可以被分配有固定值,并且该固定值可以是所有被占用像素的纹理值或属性值的平均值或中值。
在一些示例中,使用了扩展片的边界值以填充未被占用像素的边界扩展技术。在一些示例中,mipmap技术用于填充未被占用像素。
根据本公开的一个方面,边界扩展技术可以将边界像素的纹理值扩展到相邻的未被占用像素。在一个示例中,边界像素被定义为如下像素:其已被分配纹理值,但其(至少)一个相邻像素尚未被分配纹理值(或具有未分配的纹理值)。
在一些示例中,检查片边界顶点的邻域(相邻像素)、恢复的纹理图中片内部或片边界上的像素,以形成边界像素列表。在一个示例中,像素的邻域由以像素为中心的NxN框定义,N是正整数。在一个示例中,N等于3,像素的3x3邻域给出8个邻居,分别称为左上、中上、右上、左中、右中、左下、中下和右下。如果一个像素至少有一个邻居具有未分配的纹理值,则该像素是边界像素,并且该像素可以被添加到边界像素列表中。
在一些示例中,可以执行边界扩展的一次或多次迭代,以填充恢复的纹理图中的未被占用像素。对于边界扩展的第一次迭代,根据片边界顶点、片内部或片边界上的像素来确定恢复的纹理图中的边界像素,并且可以将边界像素添加到边界像素列表中。对于每个边界像素,不具有纹理值的边界像素的邻居被称为未分配的邻居。对于未分配的邻居(也称为未分配的像素),其纹理值可以通过对未分配的邻居的分配邻域中的已分配的邻居的纹理值进行平均来确定。未分配的邻居的分配邻域可以由以未分配的像素为中心的MxM框来定义,M是位置整数。在一些示例中,M具有与N相同的正整数值。在一些示例中,M具有与N不同的正整数值。
在将纹理值分配给边界像素的未分配的邻居之后,从边界像素列表中去除边界像素,因为边界像素的所有邻居都已被分配了纹理值。
在一些示例中,在第一次迭代中去除边界像素列表中的所有边界像素之后,如果在恢复的纹理图中仍然存在未被分配纹理值的像素(也称为未分配的像素,例如具有未签名纹理图值的未被占用像素),则可以为像素分配固定值。该固定值可以是所有已分配的像素的纹理值的平均值或中值。在一些示例中,mipmap技术用于填充未分配的像素。
在一些实施例中,可以执行边界扩展的第二次迭代以将纹理值分配给未分配的像素。例如,在第一次迭代之后,可以由具有至少一个未分配的邻居的新分配的像素形成新边界像素列表。对于新边界像素列表中的边界像素,每个未分配的邻居的纹理值可以通过对未分配的邻居的分配邻域中的已分配的邻居的纹理值进行平均来确定。在边界像素的邻居都被分配了纹理值之后,从新边界像素列表中去除边界像素。第二次迭代继续进行,直到新边界像素列表为空为止。
需要注意的是,如果恢复的纹理图具有未分配的像素,则可以执行更多边界扩展的迭代。在每次边界扩展的迭代之后,未被分配纹理值的像素数量会减少。最终,迭代将停止,因为已对所有像素分配了纹理值。
图15示出根据本公开的实施例概述的过程(1500)的流程图。过程(1500)可以在对网格帧的网格序列的解码过程期间使用。在各种实施例中,过程(1500)由处理电路执行。在一些实施例中,过程(1500)以软件指令实现,因此,当处理电路执行该软件指令时,处理电路执行过程(1500)。该过程从步骤(S1501)开始,且进行到步骤(S1510)。
在步骤(S1510),从携带3D网格帧的码流中解码2D的纹理图。3D网格帧表示多边形的对象表面,并且被分割为片。纹理图包括具有变换UV坐标的变换片,变换UV坐标是根据与片相关联的重映射变换参数从片的原始UV坐标变换而来的。重映射变换参数指示已经被执行用于生成变换后的片的变换操作。
在步骤(S1520),从码流中解码与片相关联的重映射变换参数。
在步骤(S1530),根据重映射变换参数基于纹理图生成恢复的纹理图。恢复的纹理图中的至少第一恢复像素被分配有纹理图中的第一变换位置处的纹理值。纹理图中的第一变换位置是根据第一恢复像素的像素位置和与第一恢复像素所属的第一片相关联的第一重映射变换参数来确定的。
在步骤(S1540),根据恢复的纹理图来重构3D网格帧。
为了生成恢复的纹理图,在一个实施例中,根据将第一恢复像素的像素位置映射到指示第一片的第一片索引的索引图,来确定第一恢复像素属于第一片。
在一些实施例中,为了生成恢复的纹理图,识别与第一片的边界顶点相对应的第一像素位置。然后,通过在第一像素位置上应用第一重映射变换参数来确定纹理图中分别对应于第一像素位置的第一变换位置。此外,将纹理图的第一变换位置处的第一纹理值分配给恢复的纹理图中的对应的第一像素位置。
此外,在一些示例中,根据第一像素位置来识别位于第一片的片内部的第二像素位置。通过在第二像素位置上应用第一重映射变换参数来确定纹理图中对应于第二像素位置的第二变换位置。将纹理图的第二变换位置处的第二纹理值分配给恢复的纹理图中的对应的第二像素位置。
在一些示例中,如果第一变换位置的一个或多个坐标不是整数,则通过插值法来确定纹理图中第一变换位置处的纹理值。
在一些示例中,第一重映射变换参数包括用于旋转操作的旋转角度、用于空间平移操作的空间平移矢量以及指示是否执行反射操作的反射标志。
在一些示例中,第一重映射变换参数包括旋转角度和空间平移矢量。旋转角度的符号指示是否执行反射操作。旋转角度的绝对值用于旋转操作,而空间平移矢量用于空间平移操作。
在一些示例中,为了生成恢复的纹理图,根据恢复的纹理图中被占用区域中的一个或多个被占用像素,将值分配给恢复的纹理图中的未被占用像素。被占用区域包括属于片的被占用像素,未被占用像素在被占用区域之外。在一些示例中,该值被计算为被占用区域中的被占用像素的平均值和/或中值中的至少一个。
在一些示例中,在恢复的纹理图中确定边界像素。边界像素是在边界像素的第一邻域中具有至少一个未分配的相邻像素的被占用像素。未分配的相邻像素具有未分配的纹理值(例如,未分配有纹理值)。确定未分配的相邻像素的第二邻域中的分配的相邻像素,并且基于第二邻域内的已分配的相邻像素来确定要分配给未分配的相邻像素的导出纹理值。
然后,处理进行到(S1599)并结束。
过程(1500)可以被适当地调整。过程(1500)中的步骤可以被修改和/或省略。可以添加其他步骤。可以使用任何合适的实施顺序。
本公开中公开的技术可以单独使用或以任何顺序组合使用。此外,技术(例如,方法、实施例)、编码器和解码器中的每一个可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。
可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,并且物理存储在一个或多个计算机可读介质中。例如,图16示出适合于实施所公开的主题的某些实施例的计算机系统(1600)。
可以使用任何合适的机器代码或计算机语言来对计算机软件进行编码,任何合适的机器代码或计算机语言可以经过汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码等执行。
指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。
图16所示的计算机系统(1600)的组件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统(1600)的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖性或要求。
计算机系统(1600)可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户例如通过下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘出)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像摄像头获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。
输入人机接口装置可以包括下述中的一项或多项(每种中仅示出一个):键盘(1601)、鼠标(1602)、触控板(1603)、触摸屏(1610)、数据手套(未示出)、操纵杆(1605)、麦克风(1606)、扫描仪(1607)、相机(1608)。
计算机系统(1600)也可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏(1610)的触觉反馈、数据手套(未示出)或操纵杆(1605),但是也可以是不作为输入设备的触觉反馈装置)、音频输出装置(例如:扬声器(1609)、耳机(未示出))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(1610),每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未示出)、全息显示器和烟箱(未示出)以及打印机(未示出)来输出二维视觉输出或超过三维输出。
计算机系统(1600)也可以包括人类可访问存储装置及其关联介质,例如包括具有CD/DVD等介质(1621)的CD/DVD ROM/RW(1620)的光学介质、指状驱动器(1622)、可拆卸硬盘驱动器或固态驱动器(1623)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未示出)等。
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他瞬时信号。
计算机系统(1600)还可以包括到一个或多个通信网络(1655)的接口(1654)。网络可以例如是无线网络、有线网络、光网络。网络可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、耐延迟网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(1649)的外部网络接口适配器(例如计算机系统(1600)的USB端口)。如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统(1600)的内核中(例如,连接PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(1600)可以使用这些网络中的任何一个与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口的每一个上使用某些协议和协议栈。
上述人机接口装置、人类可访问的存储装置和网络接口可以附接到计算机系统(1600)的内核(1640)。
内核(1640)可以包括一个或多个中央处理单元(CPU)(1641)、图形处理单元(GPU)(1642)、现场可编程门阵列(FPGA)(1643)形式的专用可编程处理单元、用于某些任务的硬件加速器(ACCL)(1644)、图形适配器(1650)等。这些装置以及只读存储器(ROM)(1645)、随机存取存储器(1646)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(1647)可以通过系统总线(1648)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1648),以能够通过附加的CPU、GPU等进行扩展。外围装置可以直接连接到内核的系统总线(1648)或通过外围总线(1649)连接到内核的系统总线。在一个示例中,屏幕(1610)可以连接到图形适配器(1650)。外围总线的体系结构包括PCI、USB等。
CPU(1641)、GPU(1642)、FPGA(1643)和加速器(1644)可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在ROM(1645)或RAM(1646)中。过渡数据也可以存储在RAM(1646)中,而永久数据可以例如存储在内部大容量存储器(1647)中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU(1641)、GPU(1642)、大容量存储(1647)、ROM(1645)、RAM(1646)等。
计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
作为非限制性示例,由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件,使得具有架构(1600),特别是内核(1640)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核(1640)的存储器,例如内核内部大容量存储器(1647)或ROM(1645)。可以将实施本公开的各种实施例的软件存储在此类装置中并由内核(1640)执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以引起内核(1640),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1646)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,由于硬连线或以其他方式体现在电路(例如,加速器(1644))中的逻辑中,使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或两者都包括。本公开包括硬件和软件的任何合适的组合。
尽管本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但其体现了本公开的原理,因此落入本公开的其精神和范围内的系统和方法。
Claims (20)
1.一种用于网格解压缩的方法,其特征在于,包括:
从携带三维(3D)网格帧的码流中解码二维(2D)纹理图,所述3D网格帧表示多边形的对象表面并且被分割成片,所述纹理图包括具有变换UV坐标的变换片,所述变换UV坐标是根据重映射变换参数从片的原始UV坐标变换而来的,所述重映射变换参数指示已执行用于生成所述变换片的变换操作;
从所述码流中解码与所述片相关联的所述重映射变换参数;
根据所述重映射变换参数基于所述纹理图生成恢复的纹理图,所述恢复的纹理图中的至少第一恢复像素被分配有在所述纹理图中的第一变换位置处的纹理值,所述纹理图中的所述第一变换位置是根据所述第一恢复像素的像素位置和与所述第一恢复像素所属的第一片相关联的第一重映射变换参数确定的;以及
根据所述恢复的纹理图来重构所述3D网格帧。
2.根据权利要求1所述的方法,其特征在于,所述生成所述恢复的纹理图还包括:
根据将所述第一恢复像素的像素位置映射到指示所述第一片的第一片索引的索引图,来确定所述第一恢复像素属于所述第一片。
3.根据权利要求1所述的方法,其特征在于,所述生成所述恢复的纹理图还包括:
识别与所述第一片的边界顶点相对应的第一像素位置;
通过将所述第一重映射变换参数应用于所述第一像素位置来确定所述纹理图中分别对应于所述第一像素位置的第一变换位置;以及
将所述纹理图的所述第一变换位置处的第一纹理值分配给所述恢复的纹理图中的所述对应的第一像素位置。
4.根据权利要求3所述的方法,其特征在于,还包括:
根据所述第一像素位置来识别所述第一片的片内部的第二像素位置;
通过将所述第一重映射变换参数应用于所述第二像素位置来确定所述纹理图中对应于所述第二像素位置的第二变换位置;以及
将所述纹理图的所述第二变换位置处的第二纹理值分配给所述恢复的纹理图中的所述对应的第二像素位置。
5.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述第一变换位置的一个或多个坐标不是整数,通过插值法来确定所述纹理图中的所述第一变换位置处的所述纹理值。
6.根据权利要求1所述的方法,其特征在于,所述第一重映射变换参数包括旋转角度、空间平移矢量和指示反射操作的反射标志。
7.根据权利要求1所述的方法,其特征在于,所述第一重映射变换参数包括旋转角度和空间平移矢量,并且所述旋转角度的符号指示反射操作。
8.根据权利要求1所述的方法,其特征在于,所述生成所述恢复的纹理图还包括:
根据所述恢复的纹理图中的被占用区域中的一个或多个被占用像素,将值分配给所述恢复的纹理图中的未被占用像素,所述被占用区域包括属于所述片的被占用像素,所述未被占用像素在所述被占用区域之外。
9.根据权利要求8所述的方法,其特征在于,所述将所述值分配给所述未被占用像素还包括:
计算所述值作为所述被占用区域中的被占用像素的平均值和/或中值中的至少一个。
10.根据权利要求8所述的方法,其特征在于,所述将所述值分配给所述未被占用像素还包括:
确定所恢复的纹理图中的边界像素,所述边界像素是在所述边界像素的第一邻域中具有至少未分配的相邻像素的被占用像素,所述未分配的相邻像素未分配纹理值;
确定所述未分配的相邻像素的第二邻域中已分配的相邻像素;以及
基于所述第二邻域中的所述已分配相邻像素来确定要分配给所述未分配的相邻像素的导出纹理值。
11.一种用于网格解压缩的装置,其特征在于,包括处理电路,所述处理电路被配置为:
从携带三维(3D)网格帧的码流中解码二维(2D)纹理图,所述3D网格帧表示多边形的对象表面并且被分割成片,所述纹理图包括具有变换UV坐标的变换片,所述变换UV坐标是根据重映射变换参数从片的原始UV坐标变换而来的,所述重映射变换参数指示已执行用于生成所述变换片的变换操作;
从所述码流中解码与所述片相关联的所述重映射变换参数;
根据所述重映射变换参数基于所述纹理图生成恢复的纹理图,所述恢复的纹理图中的至少第一恢复像素被分配有在所述纹理图中的第一变换位置处的纹理值,所述纹理图中的所述第一变换位置是根据所述第一恢复像素的像素位置和与所述第一恢复像素所属的第一片相关联的第一重映射变换参数确定的;以及
根据所述恢复的纹理图来重构所述3D网格帧。
12.根据权利要求11所述的装置,其特征在于,所述生成所述恢复的纹理图还包括:
根据将所述第一恢复像素的像素位置映射到指示所述第一片的第一片索引的索引图,来确定所述第一恢复像素属于所述第一片。
13.根据权利要求11所述的装置,其特征在于,所述生成所述恢复的纹理图还包括:
识别与所述第一片的边界顶点相对应的第一像素位置;
通过将所述第一重映射变换参数应用于所述第一像素位置来确定所述纹理图中分别对应于所述第一像素位置的第一变换位置;以及
将所述纹理图的所述第一变换位置处的第一纹理值分配给所述恢复的纹理图中的所述对应的第一像素位置。
14.根据权利要求13所述的装置,其特征在于,还包括:
根据所述第一像素位置来识别所述第一片的片内部的第二像素位置;
通过将所述第一重映射变换参数应用于所述第二像素位置来确定所述纹理图中对应于所述第二像素位置的第二变换位置;以及
将所述纹理图的所述第二变换位置处的第二纹理值分配给所述恢复的纹理图中的所述对应的第二像素位置。
15.根据权利要求11所述的装置,其特征在于,还包括:
响应于所述第一变换位置的一个或多个坐标不是整数,通过插值法来确定所述纹理图中的所述第一变换位置处的所述纹理值。
16.根据权利要求11所述的装置,其特征在于,所述第一重映射变换参数包括旋转角度、空间平移矢量和指示反射操作的反射标志。
17.根据权利要求11所述的装置,其特征在于,所述第一重映射变换参数包括旋转角度和空间平移矢量,并且所述旋转角度的符号指示反射操作。
18.根据权利要求11所述的装置,其特征在于,所述生成所述恢复的纹理图还包括:
根据所述恢复的纹理图中的被占用区域中的一个或多个被占用像素,将值分配给所述恢复的纹理图中的未被占用像素,所述被占用区域包括属于所述片的被占用像素,所述未被占用像素在所述被占用区域之外。
19.根据权利要求18所述的装置,其特征在于,所述将所述值分配给所述未被占用像素还包括:
计算所述值作为所述被占用区域中的被占用像素的平均值和/或中值中的至少一个。
20.根据权利要求18所述的装置,其特征在于,所述将所述值分配给所述未被占用像素还包括:
确定所恢复的纹理图中的边界像素,所述边界像素是在所述边界像素的第一邻域中具有至少未分配的相邻像素的被占用像素,所述未分配的相邻像素未分配纹理值;
确定所述未分配的相邻像素的第二邻域中已分配的相邻像素;以及
基于所述第二邻域中的所述已分配相邻像素来确定要分配给所述未分配的相邻像素的导出纹理值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163264417P | 2021-11-22 | 2021-11-22 | |
US63/264,417 | 2021-11-22 | ||
US17/954,961 US20230162404A1 (en) | 2021-11-22 | 2022-09-28 | Decoding of patch temporal alignment for mesh compression |
US17/954,961 | 2022-09-28 | ||
PCT/US2022/077378 WO2023091818A1 (en) | 2021-11-22 | 2022-09-30 | Decoding of patch temporal alignment for mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116940965A true CN116940965A (zh) | 2023-10-24 |
Family
ID=86384083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280017553.0A Pending CN116940965A (zh) | 2021-11-22 | 2022-09-30 | 用于网格压缩的片时间对齐解码 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230162404A1 (zh) |
JP (1) | JP2024509623A (zh) |
KR (1) | KR20230127324A (zh) |
CN (1) | CN116940965A (zh) |
WO (1) | WO2023091818A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023009953A (ja) * | 2021-07-08 | 2023-01-20 | 日本電気株式会社 | 分析装置、コミュニケーションシステム、分析方法、及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10389994B2 (en) * | 2016-11-28 | 2019-08-20 | Sony Corporation | Decoder-centric UV codec for free-viewpoint video streaming |
EP3419286A1 (en) * | 2017-06-23 | 2018-12-26 | Koninklijke Philips N.V. | Processing of 3d image information based on texture maps and meshes |
US11238650B2 (en) * | 2020-03-13 | 2022-02-01 | Nvidia Corporation | Self-supervised single-view 3D reconstruction via semantic consistency |
-
2022
- 2022-09-28 US US17/954,961 patent/US20230162404A1/en active Pending
- 2022-09-30 KR KR1020237026135A patent/KR20230127324A/ko active Search and Examination
- 2022-09-30 JP JP2023555809A patent/JP2024509623A/ja active Pending
- 2022-09-30 CN CN202280017553.0A patent/CN116940965A/zh active Pending
- 2022-09-30 WO PCT/US2022/077378 patent/WO2023091818A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20230162404A1 (en) | 2023-05-25 |
KR20230127324A (ko) | 2023-08-31 |
WO2023091818A1 (en) | 2023-05-25 |
JP2024509623A (ja) | 2024-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116997935A (zh) | 用于网格压缩的块压缩 | |
JP2024516059A (ja) | エンコーダによるメッシュ圧縮のための適応サンプリングの方法および装置 | |
US20230162404A1 (en) | Decoding of patch temporal alignment for mesh compression | |
US20230196663A1 (en) | Checking overlapping-free property for patches in mesh compression | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
US20230245390A1 (en) | Manhattan layout estimation using geometric and semantic information | |
JP2024515984A (ja) | メッシュ圧縮のための境界ジオメトリ情報の予測コーディング | |
US20230162403A1 (en) | Encoding of patch temporal alignment for mesh compression | |
US11967025B2 (en) | Detection of boundary loops in non-manifold meshes | |
US20230222697A1 (en) | Mesh compression with deduced texture coordinates | |
CN116888631A (zh) | 基于点云压缩的动态网格压缩 | |
CN116711305A (zh) | 用于解码器执行网格压缩的自适应采样方法和装置 | |
JP2023552414A (ja) | メッシュ圧縮のための頂点の並べ替え | |
JP2024518767A (ja) | 3次元(3d)メッシュフレームの第1の部分を2次元(2d)占有マップに投影するための方法、デバイスおよびコンピュータプログラム | |
CN116368523A (zh) | Uv坐标编码 | |
JP2024509886A (ja) | メッシュ圧縮のための頂点接続性コーディング | |
CN116746156A (zh) | 3d网格压缩中的2d图谱自适应采样 | |
CN116635904A (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 |