CN116569217A - 用于对由编码器进行的网格压缩进行自适应采样的方法和装置 - Google Patents
用于对由编码器进行的网格压缩进行自适应采样的方法和装置 Download PDFInfo
- Publication number
- CN116569217A CN116569217A CN202280007284.XA CN202280007284A CN116569217A CN 116569217 A CN116569217 A CN 116569217A CN 202280007284 A CN202280007284 A CN 202280007284A CN 116569217 A CN116569217 A CN 116569217A
- Authority
- CN
- China
- Prior art keywords
- sampling
- region
- encoded
- atlas
- regions
- 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
- 238000005070 sampling Methods 0.000 title claims description 536
- 238000000034 method Methods 0.000 title claims description 133
- 230000003044 adaptive effect Effects 0.000 title claims description 106
- 230000006835 compression Effects 0.000 title claims description 51
- 238000007906 compression Methods 0.000 title claims description 51
- 238000012545 processing Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 29
- 230000033001 locomotion Effects 0.000 description 22
- 239000013598 vector Substances 0.000 description 20
- 238000013139 quantization Methods 0.000 description 16
- 238000013507 mapping Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 230000006837 decompression Effects 0.000 description 10
- 238000009499 grossing Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 108050005509 3D domains Proteins 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012804 iterative process Methods 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process 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
- 238000011084 recovery Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101150114515 CTBS gene Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction 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
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 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
- 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
- 238000012858 packaging process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000010845 search algorithm Methods 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
- 238000001228 spectrum Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
在一些示例中,用于网格编码的装置包括处理电路。处理电路接收网格帧的数据结构,网格帧具有表示对象的表面的多边形。网格帧的数据结构包括UV图集,UV图集将网格帧的顶点与UV图集中的UV坐标相关联。处理电路根据网格帧的多个区域各自的特性,确定网格帧的多个区域各自的采样率,并在UV图集上应用网格帧的多个区域各自的采样率,以确定UV图集上的多个采样位置。处理电路根据UV图集上的多个采样位置,对网格帧生成一个或多个采样二维图,并将一个或多个采样二维图编码到码流中。
Description
援引并入
本申请要求于2022年9月14日提交的题为“METHOD AND APPARATUS OF ADAPTIVESAMPLING FOR MESH COMPRESSION BY ENCODERS(用于对由编码器进行的网格压缩进行自适应采样的方法和装置)”的第17/944,994号美国专利申请的优先权权益,该美国专利申请要求于2021年10月4日提交的题为“Method and Apparatus of Adaptive Sampling forMesh Compression by Encoders(用于对由编码器进行的网格压缩进行自适应采样的方法和装置)”的第63/252,063号美国临时申请的优先权权益。这些在先申请的公开内容通过引用整体并入本文中。
技术领域
本公开描述了总体上涉及网格编码的实施例。
背景技术
本文所提供的背景描述是出于总体上呈现本公开内容的目的。目前命名的发明人的工作,只要在本背景技术部分中描述的工作范围内,以及在提交时可能不属于现有技术的说明书的方面,既不明示也不暗示地承认为针对本公开的现有技术。
开发了各种技术来在三维(3-dimensional,3D)空间中采集和表示世界,例如世界中的对象、世界中的环境等。世界的3D表示可实现更沉浸形式的交互和通信。在一些示例中,点云和网格可用作世界的3D表示。
发明内容
本公开的各方面提供用于网格编码(例如压缩和解压)的方法和装置。在一些示例中,用于网格编码的装置包括处理电路。处理电路接收网格帧的数据结构,网格帧具有表示对象的表面的多边形。网格帧的数据结构包括UV图集,UV图集将网格帧的顶点与UV图集中的UV坐标相关联。处理电路根据网格帧的多个区域各自的特性,确定网格帧的多个区域各自的采样率,并在UV图集上应用网格帧的多个区域各自的采样率,以确定UV图集上的多个采样位置。处理电路根据UV图集上的多个采样位置,对网格帧生成一个或多个采样二维(two dimensional,2D)图,并将一个或多个采样2D图编码到码流中。
为了确定网格帧的多个区域各自的采样率,在一些示例中,处理电路根据限制网格帧的第一区域中的第一采样位置数的要求,确定第一区域的第一采样率。在一个示例中,处理电路确定第一采样率以实现最接近目标值的过采样率(oversampling ratio,OR)。OR是第一采样位置数与最初位于网格帧的第一区域中的顶点数之比。在另一示例中,处理电路调节第一采样率,直到OR小于第一阈值。在另一示例中,处理电路调节第一采样率,直到OR小于第一阈值且大于第二阈值。
在一些实施例中,一个或多个采样2D图中的采样2D图包括具有与UV图集上的多个采样位置对应的多个采样点的采样区域。处理电路响应于一采样位置位于多边形中,确定该采样位置已占用;以及根据多边形的顶点的属性,确定采样2D图中、对应于该采样位置的采样点的属性。
为了生成一个或多个采样2D图,在一些示例中,处理电路基于网格的多个区域各自的采样率,形成与网格的多个区域对应的多个采样区域,且以非重叠构造布置多个采样区域,以形成采样图。
为了以非重叠构造布置多个采样区域,在一些示例中,在以非重叠构造布置多个采样区域的子集之后,针对当前采样区域,处理电路根据当前采样区域的采样率确定初始布置位置,并确定在初始布置位置处的当前采样区域是否与多个采样区域的子集重叠。在一个示例中,响应于在初始布置位置处的当前采样区域与多个采样区域的子集重叠,处理电路确定初始布置位置的偏移,该偏移允许当前采样区域不与多个采样区域的子集重叠。
在一些实施例中,非重叠构造包括多个采样区域之间的最小距离要求。
在一个示例中,处理电路直接将第一区域的第一采样率的值编码到码流中。在另一示例中,处理电路将第一索引编码到码流中,第一索引指示从采样率集中选择第一采样率。在另一示例中,处理电路对语法进行编码,语法指示预测器从预先建立的采样率集预测第一采样率。在另一示例中,处理电路对语法进行编码,语法指示预测器根据网格帧的已编码区域先前使用的采样率来预测第一采样率。在另一示例中,处理电路对语法进行编码,语法指示预测器根据在网格帧之前编码的另一网格帧中的已编码区域先前使用的采样率来预测第一采样率。
在一些实施例中,处理电路做出用信号表示与第一区域相关联的第一采样率或预测第一采样率的决定,并对指示该决定的第一语法值进行编码。
在一些示例中,响应于该决定是用信号表示第一采样率,处理电路可直接将第一采样率的值编码到码流中,或者可以将索引编码到码流中,索引指示从采样率集中选择第一采样率。
在一些示例中,响应于该决定是预测第一采样率,处理电路可以将第二语法编码到码流中,第二语法指示使用预测器来预测第一采样率。此外,在一个示例中,处理电路将预测残差编码到码流中。预测残差是第一采样率和预测器的采样率之差。
在一些示例中,处理电路将基本采样率编码到码流中。
在一些示例中,处理电路对控制标志进行编码,控制标志指示能够对自适应2D图集采样进行启用或禁用。
在一些示例中,处理电路确定与网格帧的第一区域相关联的至少第一UV偏移。第一UV偏移应用于与第一区域对应的第一采样区域,以避免与其它采样区域重叠。处理电路将指示第一UV偏移的语法编码到码流中。在一个示例中,处理电路将语法编码到码流中,语法具有第一UV偏移的值。在另一示例中,处理电路对语法进行编码,语法指示预测器基于预先建立的UV偏移集来预测第一UV偏移。在另一示例中,处理电路对语法进行编码,语法指示预测器基于网格帧的已编码区域先前使用的UV偏移来预测第一UV偏移。在另一示例中,处理电路对语法进行编码,语法指示预测器基于在网格帧之前编码的另一网格帧中的已编码区域先前使用的UV偏移来预测第一UV偏移。
本公开的各方面还提供一种非暂时性计算机可读介质,非暂时性计算机可读介质存储有指令,当指令由计算机执行时,指令使得计算机执行用于网格编码的方法中的任意一个或其组合。
附图说明
根据以下详细描述和附图,所公开的主题的进一步的特征、性质和各种优点将更加明显,在附图中:
图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空间中多边形的顶点以及顶点如何连接成多边形的信息来限定。顶点如何连接的信息称为连接性信息。在一些示例中,网格还可包括与顶点相关联的属性,例如颜色、法线等。
根据本公开的一些方面,用于点云压缩(PCC)的一些编码工具可用于网格压缩。例如,网格可重新网格化以生成新网格,新网格的连接性信息可推断出来。新网格的顶点以及与新网格的顶点相关联的属性可被认为是点云中的点,且可使用PCC编解码器进行压缩。
点云可用于将对象或场景重建为点的合成。在各种设置中,点可使用多个相机、深度传感器或激光雷达来采集,且可由数千个到数十亿个点组成,以便真实地表示重建的场景或对象。斑块通常可指的是由点云描述的表面的连续子集。在一个示例中,斑块包括其表面法向量相对于彼此的偏差小于阈值量的点。
PCC可根据各种方案来执行,此类方案例如是基于几何形状的方案(称为G-PCC)、基于视频编码的方案(称为V-PCC)等。根据本公开的一些方面,G-PCC直接对3D几何形状进行编码,且是纯粹的基于几何形状的方法,与视频编码没有太多要共享,而V-PCC在很大程度上基于视频编码。例如,V-PCC可以将3D云的点映射到2D网格(图像)的像素。V-PCC方案可利用通用视频编解码器进行点云压缩。在本公开中,PCC编解码器(编码器/解码器)可以是G-PCC编解码器(编码器/解码器)或V-PCC编解码器。
根据本公开的一方面,V-PCC方案可使用现存的视频编解码器将点云的几何形状、占用率和纹理压缩成三个单独的视频序列。对这三个视频序列进行解释所需的额外元数据分别进行压缩。整个码流的一小部分是元数据,在一个示例中,可使用软件实现有效地对元数据进行编码/解码。大部分信息由视频编解码器处理。
图1示出了一些示例中的通信系统(100)的框图。通信系统(100)包括多个终端设备,该多个终端设备可通过例如网络(150)彼此通信。例如,通信系统(100)包括通过网络(150)互连的终端设备对(110)和(120)。在图1的示例中,第一终端设备对(110)和(120)可执行点云数据的单向传输。例如,终端设备(110)可以对点云(例如表示结构的点)进行压缩,点云由与终端设备(110)连接的传感器(105)采集。已压缩点云可例如以码流的形式通过网络(150)传输到另一终端设备(120)。终端设备(120)可以从网络(150)接收已压缩点云,对码流进行解压以重建点云,以及适当地显示已重建点云。单向数据传输可以在媒体服务等应用中是常见的。
在图1的示例中,终端设备(110)和终端设备(120)可示出为服务器和个人计算机,但是本公开的原理可不限于此。本公开的实施例可以应用在膝上型计算机、平板电脑、智能手机、游戏终端、媒体播放器和/或专用三维(3D)设备上。网络(150)表示在终端设备(110)和终端设备(120)之间传送已压缩点云的任何数量的网络。网络(150)可包括例如有线(连线的)和/或无线通信网络。网络(150)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网、互联网等。
图2示出了一些示例中的流式传输系统(200)的框图。流式传输系统(200)是点云的使用应用。所公开的主题可同等地适用于其它支持点云的应用,例如3D远程呈现应用、虚拟现实应用等。
流式传输系统(200)可包括采集子系统(213)。采集子系统(213)可包括点云源(201),例如光检测和测距(light detection and ranging,LIDAR)系统、3D相机、3D扫描仪、在软件中生成未压缩点云的图形生成组件,以及生成例如未压缩点云(202)的类似组件。在一个示例中,点云(202)包括由3D相机采集的点。相较于已压缩点云(204)(已压缩点云的码流),点云(202)被描绘为粗线以强调高数据量。已压缩点云(204)可由电子设备(220)生成,电子设备(220)包括耦接到点云源(201)的编码器(203)。编码器(203)可包括硬件、软件或软硬件组合,以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于点云流(202),被描绘为细线以强调较低数据量的已压缩点云(204)(或已压缩点云(204)的码流)可存储在流式传输服务器(205)上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统(206)和客户端子系统(208)可访问流式传输服务器(205)以检索已压缩点云(204)的副本(207)和副本(209)。客户端子系统(206)可包括例如电子设备(230)中的解码器(210)。解码器(210)对已压缩点云的传入副本(207)进行解码,并创建可以在呈现设备(212)上呈现的已重建点云的输出流(211)。
应注意,电子设备(220)和电子设备(230)可包括其它组件(未示出)。例如,电子设备(220)可包括解码器(未示出),电子设备(230)还可包括编码器(未示出)。
在一些流式传输系统中,可根据某些标准对已压缩点云(204)、(207)和(209)(例如已压缩点云的码流)进行压缩。在一些示例中,在对点云进行压缩时使用视频编码标准。这些标准的示例包括高效视频编码(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图像,其中,对像素填充指示由斑块占用或未占用的值。
斑块生成模块(306)将点云分割成斑块集(例如,斑块定义为由点云描述的表面的连续子集),这些斑块可以重叠或不重叠,使得每个斑块可由针对2D空间中的平面的深度场来描述。在一些实施例中,斑块生成模块(306)旨在将点云分解成具有平滑边界的最小数量的斑块,同时还使重建误差最小化。
在一些示例中,斑块信息模块(304)可收集指示斑块的大小和形状的斑块信息。在一些示例中,斑块信息可打包到图像帧中,然后由辅助斑块信息压缩模块(338)进行编码以生成已压缩辅助斑块信息。
在一些示例中,斑块打包模块(308)配置成将所提取的斑块映射到二维(2D)网格上,同时使未使用的空间最小化,并保证网格的每个M×M(例如16×16)块与唯一斑块相关联。有效的斑块打包可通过使未使用的空间最小化或确保时间一致性来直接影响压缩效率。
几何图像生成模块(310)可生成与给定斑块位置处的点云的几何形状相关联的2D几何图像。纹理图像生成模块(312)可生成与给定斑块位置处的点云的纹理相关联的2D纹理图像。几何图像生成模块(310)和纹理图像生成模块(312)利用打包过程中计算的3D到2D映射,来将点云的几何形状和纹理存储为图像。为了更好地处理多个点投影到同一样本的情况,每个斑块投影到两个图像(称为层)上。在一个示例中,几何图像由YUV 420-8位格式的W×H单色帧表示。为了生成纹理图像,纹理生成过程利用已重建/平滑的几何形状来计算要与重采样的点相关联的颜色。
占用图模块(314)可生成占用图,占用图描述每个单元处的填充信息。例如,占用图像包括二元图,该二元图针对网格的每个单元指示该单元是属于空闲空间还是属于点云。在一个示例中,占用图对每个像素使用二元信息来描述该像素是否被填充。在另一示例中,占用图对每个像素块使用二元信息来描述该像素块是否被填充。
由占用图模块(314)生成的占用图可使用无损编码或有损编码来进行压缩。当使用无损编码时,熵压缩模块(334)用于对占用图进行压缩。当使用有损编码时,视频压缩模块(332)用于对占用图进行压缩。
应注意,斑块打包模块(308)可以在打包在图像帧中的2D斑块之间留下一些空闲空间。图像填充模块(316)和(318)可填充空闲空间(称为填充)以生成可适合于2D视频和图像编解码器的图像帧。图像填充还称为背景填充,其可使用冗余信息填充未使用的空间。在一些示例中,良好的背景填充最低限度地增加码率,同时不会在斑块边界附近引入显著的编码失真。
视频压缩模块(322)、(323)和(332)可基于合适的视频编码标准(例如HEVC、VVC等)对2D图像进行编码,2D图像例如是已填充的几何图像、已填充的纹理图像和占用图。在一个示例中,视频压缩模块(322)、(323)和(332)是单独操作的独立组件。应注意,在另一示例中,视频压缩模块(322)、(323)和(332)可实现为单个组件。
在一些示例中,平滑模块(336)配置成生成已重建几何图像的平滑图像。平滑图像可提供给纹理图像生成(312)。然后,纹理图像生成(312)可基于已重建几何图像来调节纹理图像的生成。例如,当斑块形状(例如几何形状)在编码和解码期间稍微失真时,可以在生成纹理图像时考虑失真,以校正斑块形状中的失真。
在一些实施例中,组扩展(320)配置成使用冗余低频内容来填充对象边界附近的像素,以提高编码增益以及已重建点云的视觉质量。
复用器(324)可以将已压缩几何图像、已压缩纹理图像、已压缩占用图、已压缩辅助斑块信息复用到已压缩码流中。
图4示出了一些示例中的用于对对应于点云帧的已压缩码流进行解码的V-PCC解码器(400)的框图。在一些示例中,V-PCC解码器(400)可以在通信系统(100)和流式传输系统(200)中使用。例如,解码器(210)可配置成以与V-PCC解码器(400)类似的方式操作。V-PCC解码器(400)接收已压缩码流,并基于已压缩码流生成已重建点云。
在图4的示例中,V-PCC解码器(400)包括解复用器(432)、视频解压模块(434)和(436)、占用图解压模块(438)、辅助斑块信息解压模块(442)、几何重建模块(444)、平滑模块(446)、纹理重建模块(448)以及颜色平滑模块(452)。
解复用器(432)可接收已压缩码流并将已压缩码流分离成已压缩纹理图像、已压缩几何图像、已压缩占用图以及已压缩辅助斑块信息。
视频解压模块(434)和(436)可根据合适的标准(例如HEVC、VVC等)对已压缩图像进行解码,并输出已解压图像。例如,视频解压模块(434)对已压缩纹理图像进行解码,并输出已解压纹理图像;以及视频解压模块(436)对已压缩几何图像进行解码,并输出已解压几何图像。
占用图解压模块(438)可根据合适的标准(例如HEVC、VVC等)对已压缩占用图进行解码,并输出已解压占用图。
辅助斑块信息解压模块(442)可根据合适的标准(例如HEVC、VVC等)对已压缩辅助斑块信息进行解码,并输出已解压辅助斑块信息。
几何重建模块(444)可接收已解压几何图像,并基于已解压占用图和已解压辅助斑块信息来生成已重建点云几何形状。
平滑模块(446)可以使斑块边缘处的不一致平滑。平滑过程旨在减轻由于压缩伪影而导致可能在斑块边界处出现的潜在不连续性。在一些实施例中,平滑滤波器可应用于位于斑块边界上的像素,以减轻可能由压缩/解压引起的失真。
纹理重建模块(448)可基于已解压纹理图像和平滑几何形状来确定点云中的点的纹理信息。
颜色平滑模块(452)可以使着色的不一致平滑。3D空间中的不相邻斑块通常在2D视频中被打包的彼此相邻地。在一些示例中,来自不相邻斑块的像素值可由基于块的视频编解码器混合。颜色平滑的目标是减少斑块边界处出现的可见伪影。
图5示出了一些示例中的视频解码器(510)的框图。视频解码器(510)可用于V-PCC解码器(400)。例如,视频解压模块(434)和(436)、占用图解压模块(438)可类似地配置给视频解码器(510)。
视频解码器(510)可包括解析器(520),以根据已压缩图像(例如已编码视频序列)重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息。解析器(520)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼(Huffman)编码、具有或不具有上下文敏感度的算术编码等。解析器(520)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Groups of Picture,GOP)、图片、图块、切片、宏块、编码单元(CodingUnit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器(520)还可以从已编码视频序列提取信息,例如变换系数,量化器参数值,运动矢量等。
解析器(520)可以对从缓冲存储器接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片,帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同的单元。涉及哪些单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息来控制。为了清楚起见,未描绘解析器(520)与下文的多个单元之间的此类子群控制信息流。
除了已提及的功能块之外,视频解码器(510)可以在概念上细分成如下文所描述的多个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,在概念上细分成下文的多个功能单元是合适的。
第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括要使用哪种变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(551)可输出包括样本值的块,样本值可输入到聚合器(555)中。
在一些情况下,缩放器/逆变换(551)的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测信息,但是可使用来自当前图片的先前重建部分的预测信息的块。此类预测信息可由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)使用从当前图片缓冲器(558)提取的周围已重建信息来生成大小和形状与正在重建的块相同的块。例如,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(555)基于每个样本,将帧内预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元(551)的输出样本可属于帧间编码和潜在运动补偿的块。在这种情况下,运动补偿预测单元(553)可访问参考图片存储器(557)以提取用于预测的样本。在根据属于块的符号(521)对所提取的样本进行运动补偿之后,这些样本可由聚合器(555)添加到缩放器/逆变换单元(551)的输出(在这种情况下,称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址提取预测样本可受到运动矢量控制,该运动矢量可以以符号(521)的形式提供给运动补偿预测单元(553)使用,符号(521)可具有例如X分量、Y分量和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的内插,运动矢量预测机制等。
聚合器(555)的输出样本可经受环路滤波器单元(556)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(还称为已编码视频码流)中且可作为来自解析器(520)的符号(521)而用于环路滤波器单元(556)的参数,然而,视频压缩技术还可响应于在对已编码图片或已编码视频序列的先前(按解码次序)部分进行解码期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元(556)的输出可以是样本流,该样本流可输出到呈现设备以及存储在参考图片存储器(557)中以用于将来的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来的预测。例如,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变成参考图片存储器(557)的一部分,且可以在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可根据诸如ITU-T H.265建议书的标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体而言,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。为了合规性,还可能需要已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建采样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
图6示出了根据本公开的一个实施例的视频编码器(603)的框图。视频编码器(603)可用于对点云进行压缩的V-PCC编码器(300)。在一个示例中,视频压缩模块(322)和(323)以及视频压缩模块(332)类似地配置到编码器(603)。
视频编码器(603)可接收图像(例如已填充几何图像、已填充纹理图像等),并生成已压缩图像。
根据一个实施例,视频编码器(603)可实时地或在应用所要求的任何其它时间约束下,将源视频序列(多个图像)的图片编码并压缩成已编码视频序列(多个已压缩图像)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在功能上耦接到所述的其它功能单元。为了清楚起见,图中未描绘耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值......)、图片大小、图片群组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可配置成具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(603)。
在一些实施例中,视频编码器(603)配置成在编码环路中进行操作。作为过于简化的描述,在一个示例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和参考图片来创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)重建符号以用类似于(远程)解码器也可创建样本数据的方式创建样本数据(因为在所公开的主题中考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器和远程编码器之间也是按位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)还用于一些相关技术。
“本地”解码器(633)的操作可与诸如已在上文结合图5详细描述的视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,由于符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码成已编码视频序列,因此包括解析器(520)的视频解码器(510)的熵解码部分可能无法完全在本地解码器(633)中实现。
在操作期间,在一些示例中,源编码器(630)可执行运动补偿预测编码,该运动补偿预测编码通过参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片对输入图片进行预测性编码。以这种方式,编码引擎(632)对输入图片的像素块和参考图片的像素块之间的差异进行编码,该参考图片可被选作该输入图片的预测参考。
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作有利地可以是有损过程。当已编码视频数据可以在视频解码器(图6未示出)处被解码时,已重建视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,该解码过程可由视频解码器对参考图片执行,且可使已重建参考图片存储在参考图片存储器(634)中。以这种方式,视频编码器(603)可以在本地存储已重建参考图片的副本,该副本与将由远端视频解码器获得的已重建参考图片具有共同内容(不存在传输误差)。
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于待编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索可用作新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的,输入图片可具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可以在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据诸如霍夫曼编码、可变长度编码、算术编码等的技术来对各种功能单元生成的符号进行无损压缩,从而将该符号转换成已编码视频序列。
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以向每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可以将图片分配为以下任一种图片类型:
帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(“IDR”)图片。本领域的技术人员了解I图片的这些变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联的元数据来用于重建单个块。
源图片通常可以在空间上细分成多个样本块(例如每块4×4、8×8、4×8或16×16个样本),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,其它(已编码)块由应用于块的相应图片的编码分配来确定。例如,I图片的块可进行非预测性编码,或者I图片的块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间预测来进行预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测来进行预测性编码。
视频编码器(603)可根据诸如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。
视频可处于呈时间序列的多个源图片(图像)形式。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在一个示例中,将正在编码/解码的特定图片分成块,该正在编码/解码的特定图片称为当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称为运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,运动矢量可具有识别参考图片的第三个维度。
在一些实施例中,双向预测技术可用于帧间图片预测。根据该双向预测技术,使用两个参考图片,例如按解码次序在视频中的当前图片之前(但是按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量来对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来预测该块。
此外,合并模式技术可用于帧间图片预测以改善编码效率。
根据本公开的一些实施例,诸如帧间图片预测和帧内图片预测的预测以块为单位来执行。例如,根据HEVC标准,将视频图片序列中的图片分成编码树单元(coding treeunit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。通常,CTU包括三个编码树块(coding tree block,CTB),这三个编码树块是一个亮度CTB和两个色度CTB。可以将每个CTU递归地以四叉树划分成一个或多个编码单元(codingunit,CU)。例如,可以将64×64像素的CTU划分成一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在一个示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。根据时间和/或空间可预测性,将CU划分成一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在一个实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。使用亮度预测块作为预测块的示例,预测块包括针对像素的值(例如亮度值)的矩阵,所述的像素例如是8×8像素、16×16像素、8×16像素、16×8像素等。
图7示出了一些示例中的G-PCC解码器(700)的框图。G-PCC解码器(700)可配置成接收点云数据并对点云数据进行压缩,以生成携带已压缩点云数据的码流。在一个实施例中,G-PCC编码器(700)可包括位置量化模块(710)、重复点去除模块(712)、八叉树编码模块(730)、属性转移模块(720)、细节层次(level of detail,LOD)生成模块(740)、属性预测模块(750)、残差量化模块(760)、算术编码模块(770),逆残差量化模块(780)、加法模块(781)以及用于存储已重建属性值的存储器(790)。
如图所示,可以在G-PCC编码器(700)处接收输入点云(701)。点云(701)的位置(例如3D坐标)提供给量化模块(710)。量化模块(710)配置成对坐标进行量化以生成量化位置。重复点去除模块(712)配置成接收量化位置并执行滤波过程,以识别并去除重复点。八叉树编码模块(730)配置成从重复点去除模块(712)接收滤波后的位置,并执行基于八叉树的编码过程,以生成描述体素的3D网格的占用码序列。占用码提供给算术编码模块(770)。
属性转移模块(720)配置成接收输入点云的属性,且当多个属性值与相应的体素相关联时,执行属性转移过程以确定每个体素的属性值。可以对从八叉树编码模块(730)输出的重新排序的点执行属性转移过程。在转移操作之后的属性提供给属性预测模块(750)。LOD生成模块(740)配置成对从八叉树编码模块(730)输出的重新排序的点进行操作,并将这些点重新组织成不同的LOD。LOD信息提供给属性预测模块(750)。
属性预测模块(750)根据由来自LOD生成模块(740)的LOD信息指示的、基于LOD的顺序来处理点。属性预测模块(750)基于存储在存储器(790)中的当前点的相邻点集的已重建属性来生成当前点的属性预测。随后,可基于从属性转移模块(720)接收的原始属性值和本地生成的属性预测来获得预测残差。当在相应的属性预测过程中使用候选索引时,可与所选择的预测候选对应的索引提供给算术编码模块(770)。
残差量化模块(760)配置成从属性预测模块(750)接收预测残差,并执行量化以生成量化残差。量化残差提供给算术编码模块(770)。
逆残差量化模块(780)配置成从残差量化模块(760)接收量化残差,并通过执行在残差量化模块(760)处执行的量化操作的逆操作来生成已重建预测残差。加法模块(781)配置成从逆残差量化模块(780)接收已重建预测残差,以及从属性预测模块(750)接收相应的属性预测。通过组合已重建预测残差和属性预测,生成已重建属性值并将已重建属性值存储到存储器(790)。
算术编码模块(770)配置成接收占用码、候选索引(如果使用的话)、量化残差(如果生成的话)和其它信息,并执行熵编码以进一步对所接收的值或信息进行压缩。结果,可生成携带已压缩信息的已压缩码流(702)。码流(702)可发送到或以其它方式提供给对已压缩码流进行解码的解码器,或者码流(702)可存储在存储设备中。
图8示出了根据一个实施例的G-PCC解码器(800)的框图。G-PCC解码器(800)可配置成接收已压缩码流并执行点云数据解压,来对码流进行解压而生成已解码点云数据。在一个实施例中,G-PCC解码器(800)可包括算术解码模块(810),逆残差量化模块(820)、八叉树解码模块(830)、LOD生成模块(840)、属性预测模块(850)以及用于存储已重建属性值的存储器(860)。
如图所示,可以在算术解码模块(810)处接收已压缩码流(801)。算术解码模块(810)配置成对已压缩码流(801)进行解码,以获得点云的量化残差(如果生成的话)和占用码。八叉树解码模块(830)配置成根据占用码来确定点云中的点的重建位置。LOD生成模块(840)配置成基于重建位置将这些点重新组织成不同的LOD,并确定基于LOD的顺序。逆残差量化模块(820)配置成基于从算术解码模块(810)接收的量化残差来生成重建残差。
属性预测模块(850)配置成执行属性预测过程,以根据基于LOD的顺序来确定点的属性预测。例如,可基于存储在存储器(860)中的当前点的相邻点的已重建属性值来确定当前点的属性预测。在一些示例中,属性预测可与相应的重建残差组合,以生成当前点的已重建属性。
在一个示例中,从属性预测模块(850)生成的已重建属性序列以及从八叉树解码模块(830)生成的重建位置对应于从G-PCC解码器(800)输出的已解码点云(802)。此外,已重建属性还存储在存储器(860)中,随后可用于导出后续点的属性预测。
在各种实施例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可使用硬件、软件或软硬件组合来实现。例如,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可使用处理电路来实现,该处理电路例如是在使用或不使用软件的情况下操作的一个或多个集成电路(integrated circuit,IC),例如专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,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图像或视频处理技术来进一步处理图。
在一个示例中,UV映射技术以2D方式生成与3D网格的斑块对应的UV图集(还称为UV图)和一个或多个纹理图集(还称为纹理图)。UV图集包括将3D网格的3D顶点分配给2D域(例如矩形)中的2D点。UV图集是3D表面的坐标与2D域的坐标之间的映射。在一个示例中,在UV图集中位于2D坐标(u,v)处的点的值由3D域中顶点的坐标(x,y,z)形成。在一个示例中,纹理图集包括3D网格的颜色信息。例如,在纹理图集中位于2D坐标(u,v)处的点(其在UV图集中具有3D值(x,y,z))的颜色指定在3D域中位于(x,y,z)处的点的颜色属性。在一些示例中,3D域中的坐标(x,y,z)称为3D坐标或xyz坐标,且2D坐标(u,v)称为uv坐标或UV坐标。
根据本公开的一些方面,可通过使用一个或多个2D图(在一些示例中,还称为2D图集)来表示网格,然后使用图像或视频编解码器对2D图进行编码,来执行网格压缩。可使用不同的技术来生成2D图。
图9出了一些示例中的说明3D网格(910)到2D图集(920)的映射的图。在图9的示例中,3D网格(910)包括形成四个斑块A至D的四个顶点1至4。每个斑块具有顶点集和相关联的属性信息。例如,斑块A由连接成三角形的顶点1、2和3形成;斑块B由连接成三角形的顶点1、3和4形成;斑块C由连接成三角形的顶点1、2和4形成;以及斑块D由连接成三角形的顶点2、3和4形成。在一些示例中,顶点1、2、3和4可具有各自的属性,以及由顶点1、2、3和4形成的三角形可具有各自的属性。
在一个示例中,3D形式的斑块A、B、C和D映射到2D域,例如2D图集(920),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)可以是具有几何信息的几何图,或者可以是具有颜色、法线、织物或其它属性信息的纹理图,或者可以是具有占用信息的占用图。
虽然在图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’之外的区域的样本值。在一些情况下,占用图用于存储每个像素的一些额外信息,例如存储用于识别像素是否属于斑块或未进行定义的二进制值。
根据本公开的一方面,动态网格是其至少一个分量(几何信息、连接性信息、映射信息、顶点属性和属性图)随时间变化的网格。动态网格可通过网格序列(还称为网格帧)来描述。动态网格可能需要大量数据,原因是动态网格可包括随时间变化的大量信息。网格的压缩技术可使得媒体内容能够在网格表示中有效地存储和传输。
在一些示例中,动态网格可具有恒定的连接性信息、随时间变化的几何形状以及随时间变化的顶点属性。在一些示例中,动态网格可具有随时间变化的连接性信息。在一个示例中,数字内容创建工具通常生成具有随时间变化的属性图和随时间变化的连接性信息的动态网格。在一些示例中,使用体积采集技术来生成动态网格。体积采集技术可生成具有随时间变化的连接性信息的动态网格,特别是在实时约束的情况下。
一些技术用于网格压缩。在一些示例中,UV图集采样和V-PCC可用于网格压缩。例如,以规则网格对UV图集进行采样,以生成具有规则网格样本的几何图像。可推断规则网格样本的连接性。规则网格样本可被认为是点云中的点,因此可使用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)可执行一系列操作,包括跟踪、重新网格化、参数化和体素化。在图11的示例中,这一系列操作可以仅是编码器的过程,而不是解码过程的一部分。在一些示例中,具有UV图集(1105)的网格包括顶点的3D位置信息、将3D位置信息映射到2D的UV图集以及其它2D属性图(例如2D颜色图等)。
应注意,在一些示例中,输入网格(1101)处于具有UV图集的网格形式,然后预处理模块(1111)可以将输入网格(1011)转成具有UV图集(1105)的网格。
自适应采样模块(1120)接收具有UV图集(1105)的网格,并执行自适应采样以生成自适应采样图(1125)。在一些示例中,自适应采样模块(1120)可使用各种技术来检测图中的特性或者图的不同区域中的特性(例如图中的信息密度),并基于这些特性来确定不同的采样率用于对图或图的不同区域进行采样。然后,可根据不同的采样率对2D图进行采样,以生成自适应采样图(1125)。自适应采样图(1125)可包括几何图(在一些示例中,还称为几何图像)、占用图、其它属性图(例如颜色图)等。
视频编码器(1130)可使用图像编码和/或视频编码技术将自适应采样图(1125)编码到码流(1145)中。
自适应采样模块(1120)还生成辅助数据(1127),辅助数据(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的采样步长指示在竖直方向上的相邻的采样位置之间的两个像素。应注意,在本公开中,采样率等同于采样步长。例如,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行样本。
应注意,在图12中,1:1的采样率应用于水平方向。
在一些示例中,自适应采样图(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网格的码流中。因此,网格解码器和网格编码器可基于相同的自适应采样信息进行操作。网格解码器可以将图恢复到合适的大小。
根据本公开的一方面,诸如网格编码器(1110)的网格编码器可执行2D图集采样(还称为UV图集采样)。例如,自适应采样模块(1120)可接收具有UV图集(1105)的网格。具有UV图集(1105)的网格的每个顶点在UV图集中具有对应点,且对应点在UV图集中的位置由UV坐标指定。在UV图集中,对应点可具有矢量值,该矢量值包括顶点在3D空间中的3D坐标(例如(x,y,z))。此外,具有UV图集(1105)的网格包括一个或多个属性图,这一个或多个属性图将与顶点相关联的属性值存储为这一个或多个属性图中由UV坐标指定的位置处的像素的属性值。例如,颜色图可以将顶点的颜色存储为颜色图中由UV坐标指定的位置处的像素的颜色。
自适应采样模块(1120)可以对具有UV图集(1105)的网格应用自适应采样技术,并输出自适应采样图(1125)(在一些示例中,还称为自适应采样图集),自适应采样图(1125)可包括例如采样几何图(还称为采样UV图或采样UV图集)、一个或多个采样属性图(在一些示例中,还称为纹理图)等。在一些示例中,自适应采样图(1125)包括采样占用图。
根据本公开的一方面,相同的采样率配置可应用于各种图,例如几何图、属性图、占用图等,以生成自适应采样图。在一些示例中,自适应采样模块(1120)可通过(例如基于UV图集上的采样位置)在UV图集上进行采样,而生成自适应采样图(1125)。自适应采样模块(1120)可确定UV图集上的采样位置,然后根据UV图集中的采样位置生成自适应采样图。例如,在例如根据采样率确定UV图集上的采样位置之后,自适应采样模块(1120)确定每个采样图(1125)中的采样点的位置,然后确定采样图(1125)中相应的采样点的值。
在一个示例中,当UV图集上的采样位置位于由网格顶点限定的多边形内时,采样位置已占用,于是采样占用图中对应于采样位置的采样点设置为已占用(例如,采样占用图中的采样点的值为“1”)。然而,当采样位置没有位于由网格顶点限定的任意多边形内时,采样位置未占用,于是采样占用图中对应于采样位置的采样点设置为未占用(例如,采样占用图中的采样点的值为“0”)。
对于UV图集上每个已占用采样位置,自适应采样模块(1120)可确定已占用采样位置处的3D(几何)坐标,并对所确定的3D坐标赋予采样几何图(还称为采样UV图集)中对应的采样点的矢量值。类似地,自适应采样模块(1120)可确定已占用采样位置处的属性值(例如颜色、法线等),并对所确定的属性值赋予采样属性图中对应的采样点的属性值。在一些示例中,自适应采样模块(1120)可通过从相关联的多边形顶点进行插值来确定已占用采样位置的3D坐标和属性。
在一个示例中,网格由三角形形成。采样位置位于由网格的三个顶点限定的三角形内,因此采样位置是已占用采样位置。自适应采样模块(1120)可根据例如三角形的三个顶点的3D坐标的加权平均3D坐标来确定已占用采样位置处的3D(几何)坐标。自适应采样模块(1120)可以对加权平均3D坐标赋予采样几何图中对应的采样点的矢量值。类似地,自适应采样模块(1120)可根据例如三角形的三个顶点的属性的加权平均属性值(例如加权平均颜色、加权平均法线等)来确定已占用采样位置处的属性值。自适应采样模块(1120)可以对加权平均属性值赋予采样属性图中对应的采样点的属性值。
在一些示例中,采样率(SR)可以在整个2D图集(例如几何图、属性图等)上保持一致,但是u轴和v轴的采样率可以不同。在u轴和v轴上使用不同的采样率,使得各向异性重新网格化成为可能。如参考图12和图13所描述的,在一些示例中,2D图集可划分成多个区域,例如切片或图块或斑块,且多个区域可具有各自的采样率。例如,网格由连接三角形形成,网格可划分成数个斑块,每个斑块包括整个网格的一个子集。例如通过自适应采样模块(1120)可以将不同的采样率应用于相应的斑块。
根据本公开的一方面,诸如网格编码器(1110)的网格编码器可以对2D图集中的每个区域确定合适的采样率。
在一些示例中,自适应采样模块(1120)可确定2D图集(例如几何图、属性图等)上的采样率分布。例如,自适应采样模块(1120)可根据区域的特性来确定该区域的特定采样率(SR)。在一个示例中,基于该区域的频谱来确定特定采样率。例如,富纹理区域(或整个2D图集)可以在纹理属性值中具有高空间频率分量,自适应采样模块(1120)可以将适合于高空间频率分量的采样率(例如较低采样率、较低采样步长)分配给富纹理区域。在另一示例中,具有高活跃性的区域(或整个2D图集)可以在坐标(例如3D坐标、UV坐标)中包括高空间频率分量,自适应采样模块(1120)可以将适合于高活跃性的采样率(例如较低采样率、较低采样步长)分配给该区域。在另一示例中,平滑区域(或整个2D图集)可以在纹理属性值中缺少高空间频率分量,自适应采样模块(1120)可分配适合于平滑区域的采样率(例如较高采样率、较高采样步长)。在另一示例中,具有低活跃性的区域(或整个2D图集)可以在坐标(例如3D坐标、UV坐标)中缺少高空间频率分量,自适应采样模块(1120)可分配适合于该区域中的低活跃性的采样率(例如较高采样率、较低采样步长)。
根据本公开的一方面,采样率可由过采样率(OR)参数来表示。OR参数定义为一个区域中采样点的数量与该区域中原始顶点的数量之比。当区域的OR参数大于1时,OR参数指示与原始顶点的数量相比,该区域过采样;当区域的OR参数小于1时,OR参数指示与原始顶点的数量相比,该区域欠采样。例如,网格的区域由1000个顶点组成,当在该区域中应用特定的采样率(SR)时,获得3000个采样点。然后,在SR的情况下,该区域的OR参数等于3,即OR(SR)=3。
在一些实施例中,自适应采样模块(1120)可使用算法来确定区域的最终采样率,以实现最接近预定目标OR参数的OR参数。例如,对于特定区域i(例如,i是用于识别特定区域的区域索引),对特定区域i定义目标OR(由TORi表示)参数。自适应采样模块(1120)可以将特定区域i的最终采样率(由SRi表示)确定为产生最接近目标OR(TORi)参数的OR参数的采样率,例如由等式(1)表示:
SRi=argminSR|OR(SR)-TORi| 等式(1)
在一个示例中,自适应采样模块(1120)可尝试多个采样率,并从多个采样率中选择会产生最接近目标OR参数的OR参数的一个采样率。在另一示例中,自适应采样模块(1120)可使用诸如二元搜寻算法等的算法来在采样率的搜索范围内执行搜索,以确定会产生最接近目标OR参数的OR参数的最终采样率。
在一些实施例中,自适应采样模块(1120)可使用算法来确定特定区域i(例如,i是用于识别特定区域的区域索引)的最终采样率,其可实现小于预定阈值(由Th0表示)的最大OR参数。在一些示例中,该算法从相对较小(例如1:1)的基本采样率(BSR)开始,并使用具有迭代周期的迭代过程来确定最终采样率。在测试当前BSR的每个迭代周期中,确定该区域的OR参数。当OR参数小于阈值Th0时,当前BSR是特定区域的最终采样率;以及当OR参数大于阈值Th0时,基于当前BSR来计算新的BSR。例如,缩放因子F0(例如大于1)应用于当前BSR以确定新的BSR。然后,新的BSR变成当前BSR,迭代过程进入下一个迭代周期。在一些示例中,确定区域(i)的最终采样率的过程被确定为等式(2):
/>
其中,SRi是最终采样率,Th0是OR参数的阈值,F0>1是增加BSR的缩放因子。因此,当具有BSR的OR参数小于阈值Th0时,当前区域将仅使用BSR作为最终采样率,否则最终采样率由缩放因子F0改变。该过程可迭代地进行,直到OR(SRi)小于阈值Th0。
在一些实施例中,自适应采样模块(1120)可使用算法来确定特定区域i(例如,i是用于识别特定区域的区域索引)的最终采样率(SRi),其可实现位于特定范围内(例如小于第一预定阈值(由Th0表示)且大于第二预定阈值(由Th1表示))的OR参数。在一些示例中,该算法从任意基本采样率(BSR)开始,并使用具有迭代周期的迭代过程来确定最终采样率。在测试当前BSR的每个迭代周期中,确定特定区域的OR参数。当OR参数位于特定范围内(例如小于第一预定阈值Th0且大于第二预定阈值Th1)时,当前BSR是特定区域的最终采样率。然而,当OR参数大于第一预定阈值Th0时,第一缩放因子F0(例如大于1)应用于当前BSR以确定新的BSR;当OR参数小于第二预定阈值Th1时,第二缩放因子F1(例如小于1)应用于当前BSR以确定新的BSR。然后,新的BSR变成当前BSR,迭代过程进入下一个迭代周期。
在一些示例中,确定区域i的最终采样步长的过程被确定为等式(3):
其中,BSR表示基本采样率,Th0表示第一预定阈值,Th1表示第二预定阈值,F0>1表示增加BSR的第一缩放因子,0<F1<1表示减小BSR的第二缩放因子。
应注意,对于每个区域,缩放因子F0和F1可以不同。当具有BSR的OR参数在由阈值(例如Th0和Th1)限定的特定范围内时,当前区域可使用BSR作为最终采样率。当具有BSR的OR参数等于或大于Th0时,最终采样率按缩放因子F0增加。当具有BSR的OR参数等于或小于Th1时,最终采样率按缩放因子F1减小。该过程可迭代地进行,直到OR(SRi)位于由Th0和Th1限定的范围内。
根据本公开的一些方面,自适应采样模块(1120)可以将具有不同采样率(或不同采样步长)的区域放置在单个图中。
应注意,当应用自适应采样率时,与原始UV图集相比,或者与使用均匀采样率的情况相比,采样图中的采样区域的大小可以以不同的比率变化。自适应采样模块(1120)可以将具有不同采样率的采样区域放置在采样图中,并保持采样区域彼此不重叠,因此采样图中的每个点与特定区域一一对应。
在一些示例中,自适应采样模块(1120)可以对每个采样区域确定边界框,然后根据边界框放置采样区域。在一个示例中,对于原始UV图集中的特定区域,umin是特定区域中所有顶点的最小u坐标,vmin是特定区域中所有顶点的最小v坐标。基于最小u坐标和最小v坐标,自适应采样模块(1120)可确定对应于特定区域的采样区域的边界框。例如,采样区域的边界框的左上角可放置在采样图中的位置(u0,v0)处,该位置可通过和/>来计算,其中,SR表示当沿着u方向和v方向使用相同的采样率时应用于特定区域的采样率,表示上取整函数,该上取整函数确定大于值C的最小整数。
在一些实施例中,自适应采样模块(1120)可以以特定顺序将采样区域一个接一个地放置在采样图中。为了放置当前采样区域,自适应采样模块(1120)首先可根据位置(u0,v0)(例如当前采样区域的边界框的左上角)放置当前采样区域。当自适应采样模块(1120)检测到当前采样区域与已放置的采样区域重叠时,自适应采样模块(1120)可确定放置当前采样区域的新位置,以避免与先前放置的采样区域重叠。
在一些示例中,可限定特定搜索窗和/或标准,且自适应采样模块(1120)可根据特定搜索窗和/或标准找到用于放置当前采样区域的新位置(由(un,vn)表示)。应注意,在一些示例中,新位置(un,vn)与原始位置(u0,v0)之间的偏移(还称为UV偏移)可以从编码器侧用信号发送到解码器侧,以用于重建。
在一些实施例中,采样区域不仅放置为不重叠,而且在区域之间具有一定量的间隙。例如,每个采样区域可能需要与其它采样区域具有最小10个像素的距离。应注意,采样区域之间的间隔可通过各种技术来限定。在一些示例中,采样区域之间的最小距离可由最小水平距离l0和最小竖直距离l1来限定。
本公开的一些方面还提供用于网格压缩的自适应采样的信令技术。
在一些实施例中,可以在携带网格信息的码流中用信号表示网格的不同区域的采样率。应注意,可以在码流中的不同层级处用信号表示采样率。在一个示例中,可以在包括网格帧序列的整个网格序列的序列报头中用信号表示采样率。在另一示例中,可以在网格帧群组(在概念上与图片群组(GOP)相似)的群组报头中用信号表示采样率。在另一示例中,可以在每个网格帧的帧报头中用信号表示采样率。在另一示例中,在切片的切片报头中用信号表示网格帧中的切片的采样率。在另一示例中,在图块的图块报头中用信号表示网格帧中的图块的采样率。在另一示例中,在斑块的斑块报头中用信号表示网格帧中的斑块的采样率。
具体地,在一些实施例中,可以用信号表示控制标志,以指示是否在码流中的不同层级处应用自适应采样方法。在一个示例中,在整个网格序列的序列报头中用信号表示控制标志。在另一示例中,在网格帧群组的群组报头中用信号表示控制标志。在另一示例中,在每个网格帧的帧报头中用信号表示控制标志。在另一示例中,在切片的切片报头中用信号表示网格帧中的切片的控制标志。在另一示例中,在图块的图块报头中用信号表示网格帧中的图块的控制标志。在另一示例中,在斑块的斑块报头中用信号表示网格帧中的斑块的控制标志。当某一层级处的控制标志为真时,在该层级处启用自适应采样,从而可应用自适应采样率。当某一层级处的控制标志为假时,禁用自适应采样,从而在该层级处应用均匀采样率。
在一些示例中,控制标志包括1位,且可通过各种技术进行编码。在一个示例中,通过具有固定概率或更新概率的熵编码(例如算术编码和霍夫曼编码)对控制标志进行编码。在另一示例中,通过具有较低复杂度的编码技术(称为旁路编码)对控制标志进行编码。
在一些示例中,无论是否启用自适应采样,都可以用信号表示基本采样率。当启用自适应采样时,基本采样率可用作预测器,且每个区域可以用信号表示与基本采样率的差异,以指示该区域的实际采样率。当禁用自适应采样时,基本采样率可用作合适层级的整个内容中的均匀采样率。
基本采样率还可以在码流中的不同层级处用信号表示。在一个示例中,可以在整个网格序列的序列报头中用信号表示基本采样率。在另一示例中,可以在网格帧群组的群组报头中用信号表示基本采样率。在另一示例中,可以在每个网格帧的帧报头中用信号表示基本采样率。在另一示例中,在网格帧中的切片的切片报头中用信号表示切片的基本采样率。在另一示例中,在图块的图块报头中用信号表示网格帧中图块的基本采样率。在另一示例中,在斑块的斑块报头中用信号表示网格帧中斑块的基本采样率。
在一些示例中,基本采样率可通过固定长度或可变长度的表示(例如固定k比特表示和k阶指数哥伦布(k-ordered Exp-Golomb)表示)进行二值化,且可通过具有固定概率或更新概率的熵编码(例如算术编码和霍夫曼编码)对每一位进行编码,或者可通过具有较低复杂度的旁路编码对每一位进行编码。
根据本公开的一方面,当启用自适应采样时,适当地用信号表示网格帧中的区域的采样率。在一些示例中,可以用信号表示或者可导出整个网格帧中的区域的数量(例如作为CTU行的数量、图块的数量、斑块的数量等)。
根据本公开的一方面,可以用信号表示区域的采样率,而不必进行预测。在一个示例中,可直接用信号表示每个区域(或整个2D图集)的采样率,而不必进行预测。在另一示例中,每个区域(或整个2D图集)的采样率可以从编码器和解码器都已知的预先建立的采样率集中选择。特定采样率的信令可通过用信号表示预先建立的率集中的特定采样率的索引来执行。例如,预先建立的采样步长集可包括(每2个像素,每4个像素,每8个像素等)。可以用信号表示索引1,以指示每2个像素的采样率(例如2:1);可以用信号表示索引2,以指示每4个像素的采样率(例如4:1);可以用信号表示索引3,以指示每8个像素的采样率(例如8:1)。
根据本公开的另一方面,可预测区域的采样率。应注意,可使用任何合适的预测技术。
在一个示例中,可根据预先建立的率集来预测网格帧的每个区域(或整个2D图集)的采样率。在另一示例中,可根据同一帧的其它已编码区域中先前使用的采样率来预测网格帧的每个区域(或整个2D图集)的采样率。在另一示例中,可根据其它已编码网格帧中先前使用的采样率来预测网格帧的每个区域(或整个2D图集)的采样率。
根据本公开的另一方面,可以以允许预测和直接用信号表示的方式来确定每个区域(或整个2D图集)的采样率。在一个示例中,语法可构造成指示将预测还是直接用信号表示采样率。当语法指示预测采样率时,例如通过另一语法来进一步用信号表示使用哪个预测器来预测采样率。当语法指示直接用信号表示采样率时,例如通过另一语法来用信号表示采样率的值。
在一些示例中,当直接用信号表示采样率(通过用信号表示采样率或用信号表示指向该采样率的索引)时,采样率或指向该采样率的索引可通过固定长度或可变长度的表示(例如固定k位表示和k阶指数哥伦布表示)进行二值化,且可通过具有固定概率或更新概率的熵编码(例如算术编码和霍夫曼编码)对每一位进行编码,或者可通过具有较低复杂度的旁路编码对每一位进行编码。
在一些示例中,当通过预测用信号表示采样率时,可以用信号表示预测残差。预测残差可通过固定长度或可变长度的表示(例如固定k位表示和k阶指数哥伦布表示)进行二值化,且可通过具有固定概率或更新概率的熵编码(例如算术编码和霍夫曼编码)对每一位进行编码,或者可通过具有较低复杂度的旁路编码对每一位进行编码。例如,可通过旁路编码对预测残差的符号位进行编码,且可通过具有更新概率的熵编码对预测残差的绝对值进行编码。
根据本公开的一些方面,当启用自适应采样时,可以在携带网格帧的码流中对网格帧中的每个区域的UV坐标的偏移(还称为UV偏移(offset),即offsetu=uo-un和offsetv=vo-vn)进行编码。在一些示例中,可以用信号表示或导出整个网格帧中的区域的数量(例如作为CTU行的数量、图块的数量、斑块的数量等)。
根据本公开的一方面,可以用信号表示区域的UV偏移,而不必进行预测。在一个示例中,可直接用信号表示每个区域的UV偏移,而不必进行任何预测。
根据本公开的另一方面,可预测区域的UV偏移。应注意,可使用任何合适的预测技术。在一个示例中,可根据预先建立的UV偏移集来预测每个区域的UV偏移。在另一示例中,可根据同一网格帧的其它已编码区域中先前使用的UV偏移来预测每个区域的UV偏移。在另一示例中,可根据其它已编码网格帧中先前使用的UV偏移来预测每个区域的UV偏移。
根据本公开的另一方面,可以以允许预测和直接用信号表示的方式来用信号表示每个区域的UV偏移。在一些示例中,语法可构造成指示将预测还是直接用信号表示UV偏移。当语法指示预测UV偏移时,通过另一语法来进一步用信号表示使用哪个预测器来预测UV偏移。当语法指示直接用信号表示UV偏移时,通过另一语法来用信号表示UV偏移的值。
在一些示例中,当直接用信号表示UV偏移时,UV偏移的值可通过固定长度或可变长度的表示(例如固定k位表示和k阶指数哥伦布表示)进行二值化,且可通过具有固定概率或更新概率的熵编码(例如算术编码和霍夫曼编码)对每一位进行编码,或者可通过具有较低复杂度的旁路编码对每一位进行编码。在一个示例中,可通过旁路编码对UV偏移的符号位进行编码,且可通过具有更新概率的熵编码对UV偏移的绝对值进行编码。
在一些示例中,可根据采样率的值来推断或预测UV偏移的符号位。例如,当区域的采样率大于基本采样率时,则可推断或预测UV偏移的符号位为正;以及当区域的采样率小于基本采样率时,则可推断或预测UV偏移的符号位为负。如果区域的采样率等于基本采样率,则可推断或预测UV偏移为零。
在一些示例中,可预测UV偏移,可以用信号表示预测残差。例如,预测残差可通过固定长度或可变长度的表示(例如固定k位表示和k阶指数哥伦布表示)进行二值化,且可通过具有固定概率或更新概率的熵编码(例如算术编码和霍夫曼编码)对每一位进行编码,或者可通过具有较低复杂度的旁路编码对每一位进行编码。在一个示例中,可通过旁路编码对预测残差的符号位进行编码,且可通过具有更新概率的熵编码对预测残差的绝对值进行编码。
本公开的一些方面还提供在解码器侧使用的网格重建技术。网格重建技术可用于网格重建模块,例如网格重建模块(1190)。
在一些示例中,已解码图(1165)包括已解码占用图,且网格重建模块(1190)可根据包括已解码占用图、已解码几何图和一个或多个已解码属性图的已解码图(1165)来重建网格帧。应注意,在一些示例中,已解码占用图对应于采样占用图,采样占用图可以是使用与已解码几何图和已解码属性图相同的采样率进行自适应采样的结果,因此已解码占用图包括采样区域。
在一些示例中,已解码图(1165)不包括占用图,码流(1145)包括将每个区域的边界顶点识别为例如由辅助数据编码器(1140)编码的辅助数据的信息。辅助数据解码器(1170)可以对识别区域的边界顶点的信息进行解码。网格重建模块(1190)可基于区域的边界顶点来推断用于已推断占用图的区域。应注意,在一些示例中,已推断占用图未使用自适应采样进行处理。网格重建模块(1190)可根据已推断占用图以及包括已解码几何图和一个或多个已解码属性图的已解码图(1165)来重建网格帧。
根据本公开的一方面,网格重建模块(1190)可基于已解码图(1165)和已解码辅助数据(例如采样率、UV偏移、识别边界顶点的信息等)来确定网格帧中的顶点的UV坐标,并确定网格帧中的顶点的3D坐标和属性值。
在一些实施例中,为了确定区域中的顶点的UV坐标,根据从码流(1145)解码的语法值来确定区域的采样率(SR)。在一些示例中,根据从码流(1145)解码的语法值来确定区域的UV偏移,例如(offsetu,offsetv)。
在一个示例中,已解码图(1165)包括已解码占用图。网格重建模块(1190)可确定与已解码占用图的采样区域中的每个已占用点对应的顶点的UV坐标。例如,对于采样区域中具有坐标(ui,vi)的每个已占用点,网格重建模块(1190)可根据等式(4)和等式(5)确定对应于已占用点的顶点的UV坐标(ui,vi):
Ui=(ui+offsetu)×SR 等式(4)
Vi=(vi+offsetv)×SR 等式(5)
在另一示例中,已解码图(1165)不包括已解码占用图。网格重建模块(1190)可根据已推断占用图中的推断区域的边界顶点来确定推断区域。可通过已推断占用图的区域中已占用点的位置来直接推断与推断区域中的已占用点对应的顶点的UV坐标。例如,已推断占用图中的已占用点具有由特定UV坐标(Us,Vs)限定的位置,特定UV坐标(Us,Vs)是网格帧中的对应顶点的UV坐标。
在一些实施例中,对于占用图(例如已解码占用图、已推断占用图)上的每个已占用点,网格重建模块(1190)可恢复网格帧上的顶点,且可根据已解码几何图和已解码属性图中的对应位置来确定对应的几何值(例如3D坐标)和属性值。
在一些实施例中,为了导出区域中的顶点在几何图和属性图中的对应位置,根据从码流(1145)解码的语法值来确定区域的采样率(SR)。在一些示例中,根据从码流(1145)解码的语法值来确定区域的UV偏移,例如(offsetu,offsetv)。
在一个示例中,已解码图(1165)包括已解码占用图。对于已解码占用图的采样区域中具有坐标(ui,vi)的每个已占用点,可直接从(ui,vi)导出已解码几何图和已解码属性图中的对应位置。例如,应用于占用图以获得采样占用图的采样率与应用于几何图(以获得采样几何图)的采样率和应用于属性图(以获取采样属性图)的采样率一致。已解码占用图对应于采样占用图,已解码几何图对应于采样几何图,以及已解码属性图对应于采样属性图。因此,已解码占用图中的已占用点可具有已解码几何图和已解码属性图中具有相同坐标的对应点。
在另一示例中,已解码图(1165)不包括已解码占用图。网格重建模块(1190)可根据已推断占用图中的推断区域的边界顶点来确定推断区域。对于推断区域中具有坐标(Ui,Vi)的每个已占用点,几何图和属性图中的对应位置可导出为等式(6)和等式(7):
/>
在一些实施例中,网格重建模块(1190)可通过从已占用位置推断来推断顶点之间的连接性信息。在一些实施例中,可以在码流(1145)中显式地用信号表示连接性信息。
图14示出了概述根据本公开的一个实施例的过程(1400)的流程图。过程(1400)可以在网格的编码过程中使用。在各种实施例中,过程(1400)由处理电路执行。在一些实施例中,过程(1400)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行过程(1400)。过程在(S1401)处开始并前进到(S1410)。
在(S1410)处,接收网格帧的数据结构,网格帧具有表示对象的表面的多边形。网格帧的数据结构包括UV图集,UV图集将网格帧的顶点与UV图集中的UV坐标相关联。
在(S1420)处,根据网格帧的多个区域各自的特性,确定网格帧的多个区域各自的采样率。
在(S1430)处,在UV图集上应用网格帧的多个区域各自的采样率,以确定UV图集上的多个采样位置。
在(S1440)处,根据UV图集上的多个采样位置,对网格帧生成一个或多个采样二维(2D)图。
在(S1450)处,将一个或多个采样2D图编码到码流中。
为了确定网格帧的多个区域各自的采样率,在一些示例中,根据限制网格帧的第一区域中的第一采样位置数的要求,确定第一区域的第一采样率。在一个示例中,确定第一采样率以实现最接近目标值的过采样率(oversampling ratio,OR)。OR是第一采样位置数与最初位于网格帧的第一区域中的顶点数之比。
在另一示例中,第一采样率被初始化为相对较小,并调节第一采样率,直到OR小于第一阈值。OR是第一采样位置数与最初位于网格帧的第一区域中的顶点数之比。
在另一示例中,调节第一采样率,直到过采样率(OR)小于第一阈值且大于第二阈值。OR是第一采样位置数与最初位于网格帧的第一区域中的顶点数之比。
在一些示例中,一个或多个采样2D图中的采样2D图包括具有与UV图集上的多个采样位置对应的多个采样点的采样区域。在一个示例中,当一采样位置位于多边形中时,确定该采样位置已占用。然后,根据多边形的顶点的属性,确定采样2D图中、对应于该采样位置的采样点的属性。
在一些示例中,为了形成一个或多个采样2D图,可基于网格的多个区域各自的采样率,确定与网格的多个区域对应的多个采样区域。然后,以非重叠构造布置多个采样区域,以形成采样图。在一个示例中,多个采样区域一个接一个地布置。在一个示例中,确定一采样区域的边界框,并布置该采样区域,以避免边界框的一个或多个角与其它已布置的采样区域重叠。
例如,为了以非重叠构造布置多个采样区域,在以非重叠构造布置多个采样区域的子集之后,针对当前采样区域,根据当前采样区域的采样率确定初始布置位置。然后,确定在初始放置位置处的当前采样区域是否会与多个采样区域的子集重叠。
在一些示例中,响应于在初始放置位置处的当前采样区域与多个采样区域的子集重叠,确定初始布置位置的偏移。该偏移允许当前采样区域不与多个采样区域的子集重叠。
在一些示例中,非重叠构造包括多个采样区域之间的最小距离要求。
在一些实施例中,通过各种技术对分别与多个区域相关联的采样率进行编码。在一个示例中,直接将第一区域的第一采样率的值编码到码流中。在另一示例中,将第一索引编码到码流中,第一索引指示从采样率集中选择第一采样率。在另一示例中,将语法编码到码流中,语法指示预测器从预先建立的采样率集预测第一采样率。在另一示例中,将语法编码到码流中,语法指示预测器根据网格帧的已编码区域先前使用的采样率来预测第一采样率。在另一示例中,将语法编码到码流中,语法指示预测器根据在网格帧之前编码的另一网格帧中的已编码区域先前使用的采样率来预测第一采样率。
在一些实施例中,编码器侧可做出用信号表示与第一区域相关联的第一采样率或预测第一采样率的决定,并对指示该决定的第一语法值进行编码。在一个示例中,响应于该决定是用信号表示第一采样率,直接将第一采样率的值编码到码流中。在另一示例中,响应于该决定是用信号表示第一采样率,将索引编码到码流中,索引指示从采样率集中选择第一采样率。
在一些示例中,响应于该决定是预测第一采样率,将第二语法编码到码流中。第二语法指示使用预测器来预测第一采样率。此外,在一个示例中,将预测残差编码到码流中。预测残差是第一采样率和预测器的采样率之差。
在一些示例中,将基本采样率编码到码流中。无论是否使用自适应采样,基本采样率都可以以任何合适的水平进行编码。在一个示例中,基本采样率可用作预测器。
在一些示例中,对控制标志进行编码,控制标志指示在网格帧上应用自适应2D图集采样何时使用。
在一些示例中,确定与网格帧的第一区域相关联的第一UV偏移。第一UV偏移应用于与第一区域对应的第一采样区域,以避免与其它采样区域重叠。可以将一个或多个语法编码到码流中,这一个或多个语法可指示第一UV偏移。在一个示例中,直接将语法编码到码流中,语法具有第一UV偏移的值。在另一示例中,将语法编码到码流中,语法指示预测器基于预先建立的UV偏移集来预测第一UV偏移。在另一示例中,将语法编码到码流中,语法指示预测器基于网格帧的已编码区域先前使用的UV偏移来预测第一UV偏移。在另一示例中,将语法编码到码流中,语法指示预测器基于在网格帧之前编码的另一网格帧中的已编码区域先前使用的UV偏移来预测第一UV偏移。
在一些示例中,将指示预测器在码流中预测第一UV偏移的语法编码到码流中,且将预测残差编码到码流中,预测残差是第一UV偏移与预测器的UV偏移之差。
然后,过程前进到(S1499)并结束。
过程(1400)可适当地适配。可修改和/或省略过程(1400)中的步骤。可添加附加步骤。可使用任何合适的实现顺序。
图15示出了概述根据本公开的一个实施例的过程(1500)的流程图。过程(1500)可以在网格的解码过程中使用。在各种实施例中,过程(1500)由处理电路执行。在一些实施例中,过程(1500)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行过程(1500)。过程在(S1501)处开始并前进到(S1510)。
在(S1510)处,从携带网格帧的码流中解码2D形式的多个图。网格帧使用多边形表示对象的表面,2D形式的多个图至少包括已解码几何图和已解码属性图,其中,对已解码几何图和已解码属性图应用自适应2D图集采样。
在(S1520)处,根据码流中的语法来至少确定第一采样率和第二采样率。在自适应2D图集采样期间将第一采样率应用于网格帧的第一区域,以及在自适应2D图集采样期间将第二采样率应用于网格帧的第二区域。第一采样率不同于第二采样率。
在(S1530)处,基于多个图,根据第一采样率来至少重建网格帧的第一顶点,以及根据第二采样率来重建网格帧的第二顶点。
在一些示例中,多个图包括应用自适应2D图集采样的已解码占用图。为了根据第一采样率来至少重建第一顶点,确定已解码占用图的第一采样区域中的占用点的初始UV坐标,第一采样区域对应于网格帧的第一区域,占用点对应于第一顶点。然后,基于初始UV坐标和第一采样率来确定第一顶点的恢复UV坐标。在一个示例中,根据来自码流的语法来确定第一采样区域的第一UV偏移。基于初始UV坐标、第一采样率和第一UV偏移来确定第一顶点的恢复UV坐标。此外,在一个示例中,根据已解码几何图中位于初始UV坐标处的像素来确定第一顶点的恢复3D坐标,以及根据已解码属性图中位于初始UV坐标处的像素来确定第一顶点的恢复属性值。
在一些实施例中,多个图缺少占用图。为了根据第一采样率来至少重建第一顶点,从码流中解码指示第一区域的第一边界顶点的信息。根据第一边界顶点来推断占用图中对应于第一区域的第一占用区域。获得第一占用区域中的已占用点的UV坐标,已占用点可对应于第一顶点。至少根据第一采样率将UV坐标转换成采样UV坐标。基于多个图,根据采样UV坐标来重建第一顶点。
在一些示例中,为了重建第一顶点,根据已解码几何图中位于采样UV坐标处的像素来确定第一顶点的恢复3D坐标,以及根据已解码属性图中位于采样UV坐标处的像素来确定第一顶点的恢复属性值。
在一些示例中,为了将UV坐标转换成采样UV坐标,从码流中解码与第一区域相关联的第一UV偏移,并根据第一采样率和第一UV偏移将UV坐标转换成采样UV坐标。
在一些实施例中,可通过各种技术来确定至少第一采样率和第二采样率。在一个示例中,直接从码流中解码至少第一采样率和第二采样率的值。在另一示例中,从码流中解码至少第一索引和第二索引,第一索引指示从采样率集中选择第一采样率,第二索引指示从采样率集中选择第二采样率。在另一示例中,基于预先建立的率集来预测第一采样率。在另一示例中,基于网格帧的已解码区域先前使用的采样率来预测第一采样率。在另一示例中,基于在网格帧之前解码的另一网格帧中的已解码区域先前使用的采样率来预测第一采样率。
在一些实施例中,为了确定第一采样率,从码流中解码第一语法值,第一语法值指示用信号表示还是预测第一采样率。在一个示例中,响应于第一语法值指示用信号表示第一采样率,直接从码流中解码第一采样率的值。在另一示例中,响应于第一语法值指示用信号表示第一采样率,从码流中解码索引。索引指示从采样率集中选择第一采样率。
在一些示例中,响应于第一语法值指示预测第一采样率,从码流中解码第二语法,第二语法指示使用预测器来预测第一采样率。此外,在一个示例中,基于从码流中解码的语法值来确定预测残差,以及基于预测器和预测残差来确定第一采样率。
在一些示例中,从码流中解码基本采样率,且可根据基本采样率来确定至少第一采样率和第二采样率。例如,基本采样率用作预测器。
在一些示例中,从码流中解码控制标志,控制标志指示自适应2D图集采样在网格帧上的应用。然后,例如基于码流中的语法来确定网格帧中的区域的数量以及分别针对这些区域的采样率。
在一些示例中,根据码流确定与第一区域相关联的第一UV偏移,以及基于多个图,根据第一采样率和第一UV偏移来重建网格帧的第一顶点。在一个示例中,为了确定与第一区域相关联的第一UV偏移,直接从码流中解码第一UV偏移的值。在另一示例中,基于预先建立的UV偏移集来预测第一UV偏移。在另一示例中,基于网格帧的已解码区域先前使用的UV偏移来预测第一UV偏移。在另一示例中,基于在网格帧之前解码的另一网格帧中的已解码区域先前使用的UV偏移来预测第一UV偏移。
在一些实施例中,为了确定与第一区域相关联的第一UV偏移,从码流中解码第一语法值,第一语法值指示用信号表示还是根据码流预测第一UV偏移。在一个示例中,响应于第一语法值指示用信号表示第一UV偏移,直接从码流中解码第一UV偏移的值。在一个示例中,基于第一采样率与基本采样率的比较来推断第一UV偏移的符号。
在一些示例,响应于第一语法值指示预测第一UV偏移,从码流中解码第二语法,第二语法指示使用预测器来预测第一UV偏移。此外,基于从码流中解码的语法值来确定预测残差,以及基于预测器和预测残差来确定第一UV偏移。
然后,过程前进到(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)形式的专用可编程处理单元、用于某些任务的硬件加速器(1644)、图形适配器(1650)等。这些设备以及只读存储器(ROM)(1645)、随机存取存储器(1646)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(1647)可通过系统总线(1648)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1648),以能够通过附加的CPU、GPU等进行扩展。外围设备可直接附接到内核的系统总线(1648)或通过外围总线(1649)附接到内核的系统总线(1648)。在一个示例中,屏幕(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.一种用于对网格压缩进行编码的方法,包括:
接收网格帧的数据结构,所述网格帧具有表示对象的表面的多边形,所述网格帧的所述数据结构包括UV图集,所述UV图集将所述网格帧的顶点与所述UV图集中的UV坐标相关联;
根据所述网格帧的多个区域各自的特性,确定所述网格帧的所述多个区域各自的采样率;
在所述UV图集上应用所述网格帧的所述多个区域各自的采样率,以确定所述UV图集上的多个采样位置;
根据所述UV图集上的所述多个采样位置,对所述网格帧生成一个或多个采样二维(twodimensional,2D)图;以及
将所述一个或多个采样2D图编码到码流中。
2.根据权利要求1所述的方法,其中,所述确定所述网格帧的所述多个区域各自的采样率包括:
根据限制所述网格帧的第一区域中的第一采样位置数的要求,确定所述第一区域的第一采样率。
3.根据权利要求2所述的方法,其中,所述确定所述网格帧的所述第一区域的第一采样率包括:
确定所述第一采样率以实现最接近目标值的过采样率(oversampling ratio,OR),所述OR是所述第一采样位置数与最初位于所述网格帧的所述第一区域中的顶点数之比。
4.根据权利要求2所述的方法,其中,所述确定所述网格帧的所述第一区域的第一采样率包括:
调节所述第一采样率,直到OR小于第一阈值,所述OR是所述第一采样位置数与最初位于所述网格帧的所述第一区域中的顶点数之比。
5.根据权利要求2所述的方法,其中,所述确定所述网格帧的所述第一区域的第一采样率包括:
调节所述第一采样率,直到OR小于第一阈值且大于第二阈值,所述OR是所述第一采样位置数与最初位于所述网格帧的所述第一区域中的顶点数之比。
6.根据权利要求1所述的方法,其中,所述一个或多个采样2D图中的采样2D图包括具有与所述UV图集上的所述多个采样位置对应的多个采样点的采样区域,所述方法进一步包括:
响应于一采样位置位于多边形中,确定所述采样位置已占用;以及
根据所述多边形的顶点的属性,确定所述采样2D图中、对应于所述采样位置的采样点的属性。
7.根据权利要求1所述的方法,其中,所述生成一个或多个采样2D图进一步包括:
基于所述网格的所述多个区域各自的采样率,形成与所述网格的所述多个区域对应的多个采样区域;以及
以非重叠构造布置所述多个采样区域,以形成采样图。
8.根据权利要求7所述的方法,其中,所述以非重叠构造布置所述多个采样区域进一步包括:
在以所述非重叠构造布置所述多个采样区域的子集之后,
针对当前采样区域,根据所述当前采样区域的采样率确定初始布置位置;以及
确定在所述初始布置位置处的所述当前采样区域是否与所述多个采样区域的子集重叠。
9.根据权利要求8所述的方法,进一步包括:
响应于在所述初始布置位置处的所述当前采样区域与所述多个采样区域的子集重叠,确定所述初始布置位置的偏移,所述偏移允许所述当前采样区域不与所述多个采样区域的子集重叠。
10.根据权利要求7所述的方法,其中,所述非重叠构造包括所述多个采样区域之间的最小距离要求。
11.根据权利要求1所述的方法,进一步包括以下至少一项:
直接将第一区域的第一采样率的值编码到所述码流中;
将第一索引编码到所述码流中,所述第一索引指示从采样率集中选择所述第一采样率;
对语法进行编码,所述语法指示预测器从预先建立的采样率集预测所述第一采样率;
对语法进行编码,所述语法指示预测器根据所述网格帧的已编码区域先前使用的采样率来预测所述第一采样率;以及
对语法进行编码,所述语法指示预测器根据在所述网格帧之前编码的另一网格帧中的已编码区域先前使用的采样率来预测所述第一采样率。
12.根据权利要求1所述的方法,进一步包括:
做出用信号表示与第一区域相关联的第一采样率或预测所述第一采样率的决定;以及
对指示所述决定的第一语法值进行编码。
13.根据权利要求12所述的方法,其中,响应于所述决定是用信号表示所述第一采样率,所述方法包括以下至少一项:
直接将所述第一采样率的值编码到所述码流中;以及
将索引编码到所述码流中,所述索引指示从采样率集中选择所述第一采样率。
14.根据权利要求12所述的方法,其中,响应于所述决定是预测所述第一采样率,所述方法包括:
将第二语法编码到所述码流中,所述第二语法指示使用预测器来预测所述第一采样率。
15.根据权利要求14所述的方法,进一步包括:
将预测残差编码到所述码流中,所述预测残差是所述第一采样率和所述预测器的采样率之差。
16.根据权利要求1所述的方法,进一步包括:
将基本采样率编码到所述码流中。
17.根据权利要求1所述的方法,进一步包括:
对控制标志进行编码,所述控制标志指示自适应2D图集采样的启用或禁用。
18.根据权利要求1所述的方法,进一步包括:
确定与所述网格帧的第一区域相关联的至少第一UV偏移,所述第一UV偏移应用于与所述第一区域对应的第一采样区域,以避免与其它采样区域重叠;以及
将指示所述第一UV偏移的语法编码到所述码流中。
19.根据权利要求18所述的方法,其中,对所述语法进行编码进一步包括以下至少一项:
将所述语法编码到所述码流中,所述语法具有所述第一UV偏移的值;
对所述语法进行编码,所述语法指示预测器基于预先建立的UV偏移集来预测所述第一UV偏移;
对所述语法进行编码,所述语法指示预测器基于所述网格帧的已编码区域先前使用的UV偏移来预测所述第一UV偏移;以及
对所述语法进行编码,所述语法指示预测器基于在所述网格帧之前编码的另一网格帧中的已编码区域先前使用的UV偏移来预测所述第一UV偏移。
20.一种用于对网格压缩进行编码的装置,包括处理电路,所述处理电路配置成:
接收网格帧的数据结构,所述网格帧具有表示对象的表面的多边形,所述网格帧的所述数据结构包括UV图集,所述UV图集将所述网格帧的顶点与所述UV图集中的UV坐标相关联;
根据所述网格帧的多个区域各自的特性,确定所述网格帧的所述多个区域各自的采样率;
在所述UV图集上应用所述网格帧的所述多个区域各自的采样率,以确定所述UV图集上的多个采样位置;
根据所述UV图集上的所述多个采样位置,对所述网格帧生成一个或多个采样二维(twodimensional,2D)图;以及
将所述一个或多个采样2D图编码到码流中。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163252084P | 2021-10-04 | 2021-10-04 | |
US202163252063P | 2021-10-04 | 2021-10-04 | |
US63/252,084 | 2021-10-04 | ||
US63/252,063 | 2021-10-04 | ||
US17/944,994 | 2022-09-14 | ||
US17/944,994 US20230107834A1 (en) | 2021-10-04 | 2022-09-14 | Method and apparatus of adaptive sampling for mesh compression by encoders |
PCT/US2022/076566 WO2023059976A1 (en) | 2021-10-04 | 2022-09-16 | Method and apparatus of adaptive sampling for mesh compression by encoders |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116569217A true CN116569217A (zh) | 2023-08-08 |
Family
ID=85773866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280007284.XA Pending CN116569217A (zh) | 2021-10-04 | 2022-09-16 | 用于对由编码器进行的网格压缩进行自适应采样的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230107834A1 (zh) |
JP (1) | JP2024516059A (zh) |
KR (1) | KR20230091987A (zh) |
CN (1) | CN116569217A (zh) |
WO (1) | WO2023059976A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974453A (zh) * | 2023-09-25 | 2023-10-31 | 北京灵汐科技有限公司 | 信号处理方法、信号处理装置、信号处理器、设备及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230334712A1 (en) * | 2022-04-15 | 2023-10-19 | Tencent America LLC | Chart based mesh compression |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109478313A (zh) * | 2016-09-09 | 2019-03-15 | 三星电子株式会社 | 处理三维图像的方法和设备 |
CN112218132A (zh) * | 2020-09-07 | 2021-01-12 | 聚好看科技股份有限公司 | 一种全景视频图像显示方法及显示设备 |
WO2021191495A1 (en) * | 2020-03-25 | 2021-09-30 | Nokia Technologies Oy | A method, an apparatus and a computer program product for video encoding and video decoding |
Family Cites Families (2)
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 |
US10417806B2 (en) * | 2018-02-15 | 2019-09-17 | JJK Holdings, LLC | Dynamic local temporal-consistent textured mesh compression |
-
2022
- 2022-09-14 US US17/944,994 patent/US20230107834A1/en active Pending
- 2022-09-16 KR KR1020237017232A patent/KR20230091987A/ko active Search and Examination
- 2022-09-16 CN CN202280007284.XA patent/CN116569217A/zh active Pending
- 2022-09-16 WO PCT/US2022/076566 patent/WO2023059976A1/en active Application Filing
- 2022-09-16 JP JP2023548180A patent/JP2024516059A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109478313A (zh) * | 2016-09-09 | 2019-03-15 | 三星电子株式会社 | 处理三维图像的方法和设备 |
WO2021191495A1 (en) * | 2020-03-25 | 2021-09-30 | Nokia Technologies Oy | A method, an apparatus and a computer program product for video encoding and video decoding |
CN112218132A (zh) * | 2020-09-07 | 2021-01-12 | 聚好看科技股份有限公司 | 一种全景视频图像显示方法及显示设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116974453A (zh) * | 2023-09-25 | 2023-10-31 | 北京灵汐科技有限公司 | 信号处理方法、信号处理装置、信号处理器、设备及介质 |
CN116974453B (zh) * | 2023-09-25 | 2023-12-08 | 北京灵汐科技有限公司 | 信号处理方法、信号处理装置、信号处理器、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20230091987A (ko) | 2023-06-23 |
WO2023059976A1 (en) | 2023-04-13 |
US20230107834A1 (en) | 2023-04-06 |
JP2024516059A (ja) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230090436A1 (en) | Hybrid coding order for point cloud coding | |
US20230107834A1 (en) | Method and apparatus of adaptive sampling for mesh compression by encoders | |
JP7476432B2 (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
US11924434B2 (en) | 2D atlas adaptive sampling in 3D mesh compression | |
US20230177738A1 (en) | Dynamic mesh compression based on point cloud compression | |
CN116917950A (zh) | 在网格压缩中检查补丁的不交叠属性 | |
US11922664B2 (en) | Method and apparatus of adaptive sampling for mesh compression by decoders | |
JP7504298B2 (ja) | 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム | |
US20230074762A1 (en) | Vertex reordering for mesh compression | |
US20230281876A1 (en) | Mesh compression with constrained geometry dynamic range | |
US20230177736A1 (en) | Method and apparatus for chart based mesh compression | |
US20230014820A1 (en) | Methods and apparatuses for dynamic mesh compression | |
CN116635905A (zh) | 非流形网格中边界环的检测 | |
CN117461054A (zh) | 具有推导的纹理坐标的网格压缩 | |
JP2023548236A (ja) | メッシュ圧縮のための頂点並べ替え方法における接続のコーディング | |
CN116982084A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40091791 Country of ref document: HK |