CN116635904A - 用于动态网格压缩的方法和装置 - Google Patents

用于动态网格压缩的方法和装置 Download PDF

Info

Publication number
CN116635904A
CN116635904A CN202280008479.6A CN202280008479A CN116635904A CN 116635904 A CN116635904 A CN 116635904A CN 202280008479 A CN202280008479 A CN 202280008479A CN 116635904 A CN116635904 A CN 116635904A
Authority
CN
China
Prior art keywords
mesh
connectivity
frame
information
point cloud
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
Application number
CN202280008479.6A
Other languages
English (en)
Inventor
张翔
黄超
刘杉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent America LLC
Original Assignee
Tencent America LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent America LLC filed Critical Tencent America LLC
Publication of CN116635904A publication Critical patent/CN116635904A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开的各方面提供了用于网格编码(例如,压缩和解压缩)的方法和装置。在一些示例中,一种用于网格编码的装置包括处理电路。处理电路使用点云压缩PCC解码器从比特流中解码点云,该点云包括与网格中的顶点或网格中的多边形的采样点中的至少一个对应的点。处理电路基于点云确定网格中的顶点的估计的连接性信息,并基于点云和估计的连接性信息生成重构的网格帧。

Description

用于动态网格压缩的方法和装置
相关申请
本申请要求2022年7月11日提交的题为“用于动态网格压缩的方法和装置”的美国专利申请号17/862,066的优先权权益,该申请要求2021年7月19日提交的题为“用于动态网格压缩的方法”的美国临时申请号63/223,431的优先权权益。在先申请的公开内容在此全部通过引用结合于此。
技术领域
本公开描述了总体上涉及网格编码(mesh coding)的实施例。
背景技术
本文提供的背景描述是为了总体呈现本公开的上下文。在该背景技术部分中描述的程度上,目前署名的发明人的工作以及该描述的在提交时可能不符合现有技术的方面既不明确也不隐含地被认为是本公开的现有技术。
开发了各种技术来捕捉和表示世界,例如,三维(3D)空间中的世界中的物体、世界中的环境等。世界的3D表示可以实现更具沉浸感的交互和通信形式。在一些示例中,点云和网格可以用作世界的3D表示。
发明内容
本公开的各方面提供了用于网格编码(例如,压缩和解压缩)的方法和装置。在一些示例中,一种用于网格编码的装置包括处理电路。处理电路使用点云压缩PCC解码器从比特流中解码点云,该点云包括与网格中的顶点或网格中的多边形的采样点中的至少一个对应的点。处理电路基于点云确定网格中顶点的估计的连接性信息(connectivityinformation),并基于点云和估计的连接性信息生成重构的网格帧(mesh frame)。
在一些示例中,处理电路使用视频解码器从比特流中解码二维2D图像,2D图像对应于与网格的表面相关联的属性的纹理图,并且基于点云、估计的连接性信息和纹理图对应的2D图像来生成重构的网格帧。
在一些示例中,处理电路使用属性解码器从比特流中解码与网格的映射信息对应的纹理坐标,并且基于点云、估计的连接性信息、纹理图对应的2D图像和映射信息对应的纹理坐标来生成重构的网格帧。
在一些示例中,处理电路从比特流中解码连接性差异(connectivitydifference,或称为连接性差异信息),并将估计的连接性信息与连接性差异组合,以生成组合的连接性信息。处理电路基于点云和组合的连接性信息生成重构的网格帧。
在一些示例中,点云中的点对应于体素化网格(voxelized mesh)的顶点。
在一些实施例中,重构的网格帧是动态网格中的网格帧,动态网格包括网格帧序列。处理电路基于已经重构的参考网格帧的参考连接性信息,使用帧间连接性预测(interframe connectivity prediction)来预测当前网格帧的当前连接性信息;并且基于当前连接性信息来重构当前网格帧,其中,当前连接性信息是根据参考网格帧的参考连接性信息预测得到的信息。
在一些实施例中,处理电路从比特流中解码帧间连接性差异,并且基于帧间连接性差异和参考网格帧的参考连接性信息的组合来确定当前连接性信息。
在一些实施例中,处理电路解码与动态网格的范围相关联的语法中的标记。该标记指示在动态网格的范围中使用帧间连接性预测。处理电路基于参考网格帧的参考连接性信息,使用帧间连接性预测来预测与动态网格的范围内的网格部分相关联的当前连接性信息。
在一些示例中,处理电路基于索引或运动矢量中的至少一个,为当前网格帧中的当前编码单元确定参考网格帧中的参考编码单元(reference coding unit);并且使用帧间连接性预测,基于参考网格帧中的参考编码单元的参考连接性信息,确定当前网格帧中的当前编码单元的当前连接性信息。
本公开的各方面还提供了一种存储指令的非暂时性计算机可读存储介质,该指令在由计算机执行时,使计算机执行用于网格编码的方法中的任一种或其组合。
附图说明
从以下详细描述和附图中,所公开主题的进一步特征、性质和各种优点将变得更加明显,其中:
图1是根据一个实施例的通信***的简化框图的示意图;
图2是根据一个实施例的流***的简化框图的示意图;
图3示出了根据一些实施例的用于编码点云帧的编码器的框图;
图4示出了根据一些实施例的用于解码对应于点云帧的压缩比特流的解码器的框图;
图5是根据一个实施例的视频解码器的简化框图的示意图;
图6是根据一个实施例的视频编码器的简化框图的示意图;
图7示出了根据一些实施例的用于编码点云帧的编码器的框图;
图8示出了根据一些实施例的用于解码对应于点云帧的压缩比特流的解码器的框图;
图9示出了根据本公开一些实施例的网格压缩框架的示图;
图10示出了根据本公开一些实施例的网格压缩框架的另一示图;
图11示出了根据本公开一些实施例的网格压缩框架的另一示图;
图12示出了概述根据一些实施例的工艺示例的流程图;
图13示出了概述根据一些实施例的工艺示例的流程图;
图14是根据一个实施例的计算机***的示意图。
具体实施方式
本公开的各方面提供了三维(3D)媒体处理领域的用于网格压缩的技术。
3D媒体处理的技术发展(例如,三维(3D)捕捉、3D建模和3D渲染等方面的进步)促进了3D内容普遍存在于几个平台和设备上。在一个示例中,可以在一个大陆捕捉婴儿的第一步,媒体技术可以允许祖父母在另一个大陆观看(并且可能交互)并享受与婴儿的沉浸式体验。根据本公开的一个方面,为了改善沉浸式体验,3D模型正变得越来越复杂,并且3D模型的创建和消费占用了大量的数据资源,例如,数据存储、数据传输资源。
根据本公开的一些方面,网格可用作3D模型的类型来表示沉浸式内容。物体的网格(也称为网格模型)可以包括描述物体表面的多边形。每个多边形可以由3D空间中多边形的顶点以及顶点如何连接到多边形中的信息来定义。顶点如何连接的信息被称为连接性信息。在一些示例中,网格还可以包括与顶点相关联的属性,例如,颜色、法线等。通过利用用2D属性图来参数化网格的映射信息,可以将属性与网格的表面相关联。映射信息通常由与网格顶点相关联的一组参数坐标描述,称为UV坐标或纹理坐标。2D属性图(在一些示例中称为纹理图)用于存储高分辨率属性信息,例如,纹理、法线、位移等。这种信息可以用于各种目的,例如,纹理映射和着色。
在一些实施例中,网格可以包括被称为几何信息、连接性信息、映射信息、顶点属性和属性图的组件。在一些示例中,几何信息由与网格顶点相关联的一组3D位置来描述。在一个示例中,可以使用(x,y,z)坐标来描述顶点的3D位置。在一些示例中,连接性信息包括描述如何连接顶点以创建3D表面的一组顶点索引。在一些示例中,映射信息描述了如何将网格表面映射到平面的2D区域。在一个示例中,映射信息由与网格顶点相关联的一组UV参数/纹理坐标(u,v)以及连接性信息来描述。在一些示例中,顶点属性包括与网格顶点相关联的标量或矢量属性值。在一些示例中,属性图包括与网格表面相关联的属性,并且被存储为2D图像/视频。在一个示例中,视频(例如,2D图像/视频)和网格表面之间的映射由映射信息定义。
根据本公开的一个方面,动态网格是其中至少一个组件(几何信息、连接性信息、映射信息、顶点属性和属性图)随时间变化的网格。动态网格可以由一系列网格(也称为网格帧)来描述。动态网格可能需要大量数据,因为动态网格可能包括随时间变化的大量信息。网格的压缩技术可以允许在网格表示中高效存储和传输媒体内容。
在一些示例中,动态网格可以具有恒定的连接性信息、时变几何形状和时变顶点属性。在一些示例中,动态网格可以具有时变连接性信息。在一个示例中,数字内容创建工具通常生成具有时变属性图和时变连接性信息的动态网格。在一些示例中,使用体积采集技术来生成动态网格。体积采集技术可以生成具有时变连接性信息的动态网格,尤其是在实时约束下。
本公开的各方面提供了网格压缩技术。该技术可用于各种网格压缩、静态网格压缩、动态网格压缩、具有恒定连接性信息的动态网格压缩、具有时变连接性信息的动态网格压缩、具有时变属性图的动态网格压缩等。这些技术可用于各种应用的有损和无损压缩,例如,实时通信、存储、自由视点视频、增强现实(AR)、虚拟现实(VR)等。这些应用可以包括诸如随机访问和可伸缩/渐进编码等功能。
本公开的一些方面提供了使用点云压缩(PCC)编解码器(例如,现有的PCC编码器和PCC解码器)进行网格压缩的框架,例如,动态网格压缩。
点云是另一种表示沉浸式内容的3D模型。点云通常可指3D空间中的一组点,每个点具有相关属性,例如,颜色、材料属性、纹理信息、强度属性、反射率属性、运动相关属性、模态属性和各种其他属性。点云可用于将物体或场景重构为这些点的组合。这些点可以在各种设置中使用多个相机、深度传感器或激光雷达来捕捉,并且可以由数千到数十亿个点组成,以便逼真地表示重构的场景或物体。贴片通常可以指由点云描述的表面的连续子集。在一个示例中,贴片包括表面法向量彼此偏离小于阈值量的点。
可以根据各种方案执行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)可以在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于当前讨论的目的,网络(150)的架构和拓扑对于本公开的操作可能是不重要的,除非在下文中解释。
图2示出了根据一个实施例的流***(200)的简化框图。图2的示例是点云的公开的主题的应用。所公开的主题可以同样适用于其他点云使能的应用程序,例如,3D远程呈现应用程序、虚拟现实应用程序等。
流***(200)可以包括捕捉子***(213)。捕捉子***(213)可以包括点云源(201),例如,光探测和测距(LIDAR)***、3D相机、3D扫描仪、在软件中生成未压缩的点云的图形生成组件等,其生成例如未压缩的点云(202)。在一个示例中,点云(202)包括由3D相机捕捉的点。点云(202)被描绘为粗线,以强调与压缩的点云(204)(压缩的点云的比特流)相比的高数据量。压缩的点云(204)可以由电子设备(220)生成,该电子设备包括耦合到点云源(201)的编码器(203)。编码器(203)可以包括硬件、软件或其组合,以激活或实现所公开主题的各方面,如下面更详细描述的。压缩的点云(204)(或压缩的点云的比特流(204))被描绘为细线,以强调与点云的流(202)相比较低的数据量,可以被存储在流服务器(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映射来将点云的几何和纹理存储为图像。为了更好地处理多个点被投影到同一样本的情况,每个贴片被投影到两个图像上,称为层。在一个示例中,几何图像由YUV420-8位格式的WxH的单色帧表示。为了生成纹理图像,纹理生成过程利用重构/平滑的几何形状来计算与重采样点相关联的颜色。
占用图模块(314)可以生成描述每个单元的填充信息的占用图。例如,占用图像包括二进制图,该二进制图为网格的每个单元指示该单元属于空白空间还是属于点云。在一个示例中,占用图使用二进制信息,该二进制信息为每个像素描述是否填充该像素。在另一示例中,占用图使用二进制信息,该二进制信息为每个像素描述是否填充像素块。
可以使用无损编码或有损编码来压缩由占用图模块(314)生成的占用图。当使用无损编码时,熵压缩模块(334)用于压缩占用图。当使用有损编码时,视频压缩模块(332)用于压缩占用图。
注意,贴片打包模块(308)可以在图像帧中打包的2D贴片之间留下一些空白空间。图像填充模块(316)和(318)可以填充空白空间(称为填充),以便生成可以适用于2D视频和图像编解码器的图像帧。图像填充也称为背景填充,该填充可以用冗余信息填充未使用的空间。在一些示例中,良好的背景填充最低限度地增加了比特率,同时不会在贴片边界周围引入显著的编码失真。
视频压缩模块(322)、(323)和(332)可以基于合适的视频编码标准,例如,HEVC、VVC等,对2D图像(例如,填充的几何图像、填充的纹理图像和占用图)进行编码。在一个示例中,视频压缩模块(322)、(323)和(332)是分开操作的独立组件。注意,在另一示例中,视频压缩模块(322)、(323)和(332)可以被实现为单个组件。
在一些示例中,平滑模块(336)被配置为生成重构的几何图像的平滑图像。平滑图像可以被提供给纹理图像生成(312)。然后,纹理图像生成(312)可以基于重构的几何图像来调整纹理图像的生成。例如,当贴片形状(例如,几何形状)在编码和解码期间轻微失真时,在生成纹理图像以校正贴片形状的失真时,可以考虑该失真。
在一些实施例中,组膨胀(320)被配置为用冗余低频内容填充物体边界周围的像素,以便提高编码增益和重构的点云的视觉质量。
多路复用器(324)可以将压缩的几何图像、压缩的纹理图像、压缩的占用图、压缩的辅助贴片信息多路复用到压缩的比特流中。
图4示出了根据一些实施例的用于解码对应于点云帧的压缩比特流的V-PCC解码器(400)的框图。在一些示例中,V-PCC解码器(400)可以用在通信***(100)和流***(200)中。例如,解码器(210)可以被配置为以与V-PCC解码器(400)类似的方式操作。V-PCC解码器(400)接收压缩的比特流,并基于压缩的比特流生成重构的点云。
在图4的示例中,V-PCC解码器(400)包括多路分解器(432)、视频解压缩模块(434)和(436)、占用图解压缩模块(438)、辅助贴片信息解压缩模块(442)、几何重构模块(444)、平滑模块(446)、纹理重构模块(448)和颜色平滑模块(452)。
多路分解器(432)可以接收压缩的比特流,并将其分离为压缩的纹理图像、压缩的几何图像、压缩的占用图和压缩的辅助贴片信息。
视频解压缩模块(434)和(436)可以根据合适的标准(例如,HEVC、VVC等)解码压缩的图像并输出解压缩的图像。例如,视频解压缩模块(434)解码压缩的纹理图像并输出解压缩的纹理图像;并且视频解压缩模块(436)解码压缩的几何图像并输出解压缩的几何图像。
占用图解压缩模块(438)可以根据合适的标准(例如,HEVC、VVC等)解码压缩的占用图并输出解压缩的占用图。
辅助贴片信息解压缩模块(442)可以根据合适的标准(例如,HEVC、VVC等)解码压缩的辅助贴片信息并输出解压缩的辅助贴片信息。
几何重构模块(444)可以接收解压缩的几何图像,并基于解压缩的占用图和解压缩的辅助贴片信息生成重构的点云几何。
平滑模块(446)可平滑贴片边缘的不一致。平滑过程旨在减轻由于压缩伪影而可能在贴片边界出现的潜在不连续性。在一些实施例中,平滑滤波器可以应用于位于贴片边界上的像素,以减轻可能由压缩/解压缩引起的失真。
纹理重构模块(448)可以基于解压缩的纹理图像和平滑几何形状确定点云中的点的纹理信息。
颜色平滑模块(452)可平滑着色的不一致。在2D视频中,3D空间中不相邻的贴片经常彼此紧挨着打包。在一些示例中,来自非相邻贴片的像素值可能被基于块的视频编解码器混合。颜色平滑的目标是减少出现在贴片边界的可见伪像。
图5示出了根据本公开的一个实施例的视频解码器(510)的框图。视频解码器(510)可以用在V-PCC解码器(400)中。例如,视频解压缩模块(434)和(436)、占用图解压缩模块(438)可以被类似地配置为视频解码器(510)。
视频解码器(510)可以包括解析器(520),以从压缩的图像(例如,编码的视频序列)中重构符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息。解析器(520)可以对接收到的编码视频序列进行解析/熵解码。编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循各种原理,包括可变长度编码、Huffman编码、具有或不具有上下文敏感性的算术编码等。解析器(520)可以基于对应于该组的至少一个参数,从编码视频序列中提取视频解码器中的至少一个像素子组的一组子组参数。子组可以包括图片组(GOP)、图片、图块、切片、宏块、编码单元(Cu)、块、变换单元(TU)、预测单元(PU)等。解析器(520)还可以从编码的视频序列中提取信息,例如,变换系数、量化器参数值、运动矢量等。
解析器(520)可以对从缓冲存储器接收的视频序列执行熵解码/解析操作,以便创建符号(521)。
根据编码视频图片或其部分的类型(例如:帧间和帧内图片、帧间和帧内块)以及其他因素,符号(521)的重构可以涉及多个不同的单元。可以通过由解析器(520)从编码视频序列中解析的子组控制信息来控制涉及哪些单元以及如何涉及。为了清楚起见,没有描述解析器(520)和下面的多个单元之间的这种子组控制信息流。
除了已经提到的功能块之外,视频解码器(510)可以在概念上细分成如下所述的多个功能单元。在商业限制下操作的实际实现中,许多这些单元彼此紧密交互,并且可以至少部分地彼此集成。然而,为了描述所公开的主题,在概念上细分成以下功能单元是合适的。
第一单元是定标器/逆变换单元(551)。定标器/逆变换单元(551)接收量化的变换系数以及控制信息,包括使用哪个变换、块大小、量化因子、量化缩放矩阵等,作为来自解析器(520)的符号(521)。定标器/逆变换单元(551)可以输出包括样本值的块,这些块可以被输入到聚集器(555)中。
在一些情况下,定标器/逆变换单元(551)的输出样本可以属于帧内编码块;即,没有使用来自先前重构图像的预测信息但是可以使用来自当前图片的先前重构部分的预测信息的块。这种预测信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)使用从当前图片缓冲器(558)获取的周围已经重构的信息,生成与重构中的块具有相同大小和形状的块。当前图片缓冲器(558)缓冲例如部分重构的当前图片和/或完全重构的当前图片。在一些情况下,聚集器(555)基于每个样本将帧内预测单元(552)已经生成的预测信息添加到由定标器/逆变换单元(551)提供的输出样本信息。
在其他情况下,定标器/逆变换单元(551)的输出样本可以属于帧间编码的并且可能是运动补偿的块。在这种情况下,运动补偿预测单元(553)可以访问参考图片存储器(557),以获取用于预测的样本。在根据与该块有关的符号(521)对提取的样本进行运动补偿之后,这些样本可以由聚集器(555)添加到定标器/逆变换单元(551)的输出(在这种情况下称为残差样本或残差信号),以便生成输出样本信息。运动补偿预测单元(553)从中获取预测样本的参考图片存储器(557)内的地址可以由运动矢量来控制,运动补偿预测单元(553)可以符号(521)的形式获得这些地址,这些符号可以具有例如X、Y和参考图片组件。当使用子采样精确运动矢量时,运动补偿还可以包括从参考图片存储器(557)获取的采样值的插值、运动矢量预测机制等。
聚集器(555)的输出样本可以在环路滤波器单元(556)中经受各种环路滤波技术。视频压缩技术可以包括环路滤波技术,这些技术由编码视频序列(也称为编码视频比特流)中包含的参数控制,并且作为来自解析器(520)的符号(521)可用于环路滤波单元(556),但是也可以响应于在编码图像或编码视频序列的先前(按照解码顺序)部分的解码期间获得的元信息以及响应于先前重构的和环路滤波的样本值。
环路滤波器单元(556)的输出可以是样本流,该样本流可以输出到呈现设备以及存储在参考图片存储器(557)中,以用于将来的帧间图片预测。
一旦完全重构,某些编码图像可以用作未来预测的参考图片。例如,一旦完全重构对应于当前图片的编码图像,并且该编码的图片已经被识别为参考图片(例如,通过解析器(520)),则当前图片缓冲器(558)可以成为参考图片存储器(557)的一部分,并且在开始下一个编码图像的重构之前,可以重新分配新的当前图片缓冲器。
视频解码器(510)可以根据诸如ITU-T Rec.H.265等标准中的预定视频压缩技术来执行解码操作。在编码视频序列符合视频压缩技术或标准的语法以及视频压缩技术或标准中记载的简档的意义上,编码视频序列可以符合由所使用的视频压缩技术或标准规定的语法。具体地,简档可以从视频压缩技术或标准中可用的所有工具中选择某些工具,作为在该简档下可用的唯一工具。符合标准还需要编码视频序列的复杂度在视频压缩技术或标准的水平所定义的范围内。在某些情况下,级别限制了最大图片大小、最大帧速率、最大重构采样率(例如,以每秒兆样本为单位测量)、最大参考图片大小等。在某些情况下,由级别设置的限制可以通过假设参考解码器(HRD)规范和编码视频序列中信令的HRD缓冲管理的元数据来进一步限制。
图6示出了根据本公开的实施例的视频编码器(603)的框图。视频编码器(603)可以用在压缩点云的V-PCC编码器(300)中。在一个示例中,视频压缩模块(322)和(323)以及视频压缩模块(332)被配置为类似于编码器(603)。
视频编码器(603)可以接收图像,例如,填充的几何图像、填充的纹理图像等,并生成压缩的图像。
根据一个实施例,视频编码器(603)可以实时地或者在应用需要的任何其他时间约束下,将源视频序列(图像)的图片编码和压缩成编码的视频序列(压缩的图像)。实施适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下所述的其他功能单元,并且在功能上耦合到其他功能单元。为了清楚起见,没有描述耦合。控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值、…)、图片大小、图片组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可以被配置为具有针对特定***设计而优化的与视频编码器(603)相关的其他合适的功能。
在一些实施例中,视频编码器(603)被配置为在编码循环中操作。作为过于简化的描述,在一个示例中,编码环路可以包括源编码器(630)(例如,负责基于要编码的输入图片和参考图片来创建符号,例如,符号流)以及嵌入在视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器也将创建的方式重构符号,以创建样本数据(因为在所公开主题中考虑的视频压缩技术中,符号和编码的视频比特流之间的任何压缩都是无损的)。重构的样本流(样本数据)被输入到参考图片存储器(634)。由于符号流的解码导致独立于解码器位置(本地或远程)的位精确结果,所以参考图片存储器(634)中的内容在本地编码器和远程编码器之间也是位精确的。换言之,当在解码期间使用预测时,编码器的预测部分作为参考图片样本“看到”与解码器“看到”的样本值完全相同的样本值。也在一些相关技术中使用参考图片同步性(以及由此产生的漂移,如果不能保持同步性,例如,由于信道误差)的该基本原理。
“本地”解码器(633)的操作可以与诸如视频解码器(510)之类的“远程”解码器的操作相同,上面已经结合图5对其进行了详细描述。然而,简要地参考图5,由于符号是可用的,并且熵编码器(645)和解析器(520)对编码视频序列的符号编码/解码可以是无损的,所以可以不完全在本地解码器(633)中实现视频解码器(510)的熵解码部分,包括解析器(520)。
在这一点上可以观察到,解码器中存在的除解析/熵解码之外的任何解码器技术也必须以基本相同的功能形式存在于相应的编码器中。为此,所公开的主题集中于解码器操作。编码器技术的描述可以简化,因为这些技术是全面描述的解码器技术的逆。仅在某些领域需要更详细的描述,并在下面提供。
在操作期间,在一些示例中,源编码器(630)可以执行运动补偿预测编码,其参考来自视频序列的被指定为“参考图片”的一个或多个先前编码的图片来预测性地编码输入图片。以这种方式,编码引擎(632)对输入图片的像素块和可以被选为输入图片的预测参考的参考图片的像素块之间的差异进行编码。
本地视频解码器(633)可以基于由源编码器(630)创建的符号,对可以被指定为参考图片的图片的编码视频数据进行解码。编码引擎(632)的操作可以有利地是有损工艺。当编码的视频数据可以在视频解码器(图6中未示出)处被解码时,重构的视频序列通常可以是具有一些误差的源视频序列的副本。本地视频解码器(633)复制可以由视频解码器对参考图片执行的解码工艺,并且可以使得重构的参考图片存储在参考图片高速缓存(634)中。以这种方式,视频编码器(603)可以本地存储重构的参考图片的副本,这些副本具有与将由远端视频解码器获得的重构的参考图片相同的内容(不存在传输误差)。
预测器(635)可以对编码引擎(632)执行预测搜索。也就是说,对于要编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索样本数据(作为候选参考像素块)或某些元数据,例如,参考图片运动矢量、块形状等,其可以用作新图片的适当预测参考。预测器(635)可以在逐个样本块-像素块的基础上操作,以找到合适的预测参考。在一些情况下,如由预测器(635)获得的搜索结果所确定的,输入图片可以具有从存储在参考图片存储器(634)中的多个参考图片中提取的预测参考。
控制器(650)可以管理源编码器(630)的编码操作,包括例如用于编码视频数据的参数和子组参数的设置。
所有前述功能单元的输出可以在熵编码器中经历熵编码(645)。熵编码器(645)通过根据诸如Huffman编码、可变长度编码、算术编码等技术无损压缩符号,将由各种功能单元生成的符号转换成编码的视频序列。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以向每个编码图片分配特定的编码图片类型,这可以影响可以应用于相应图片的编码技术。例如,图片通常可以被指定为以下图片类型之一:
帧内图片(I图片)可以是不使用序列中的任何其他图片作为预测源而被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(“IDR”)图片。本领域技术人员知道I图片的那些变体以及其相应的应用和特征。
预测图片(P图片)可以是使用最多一个运动矢量和参考索引来预测每个块的样本值,使用帧内预测或帧间预测来编码和解码的图片。
双向预测图片(B图片)可以是使用最多两个运动矢量和参考索引来预测每个块的样本值,使用帧内预测或帧间预测来编码和解码的图片。类似地,多预测图片可以使用两个以上的参考图片和相关元数据来重构单个块。
源图片通常可以在空间上被细分成多个样本块(例如,每个样本块为4×4、8×8、4×8或16×16个样本块),并且在分块的基础上编码。可以参考由应用于块的相应图片的编码分配所确定的其他(已经编码的)块来预测性地编码块。例如,I图片的块可以被非预测性地编码,或者可以参考同一图片的已经编码的块被预测性地编码(空间预测或帧内预测)。参考一个先前编码的参考图片,经由空间预测或经由时间预测,P图片的像素块可以预测性地编码。参考一个或两个先前编码的参考图片,经由空间预测或经由时间预测,可以预测性地编码B图片的块。
视频编码器(603)可以根据预定的视频编码技术或标准(例如,ITU-T Rec.H.265)来执行编码操作。在其操作中,视频编码器(603)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,编码的视频数据可以符合由正在使用的视频编码技术或标准指定的语法。
视频可以具有时间序列中的多个源图片(图像)的形式。帧内图片预测(通常缩写为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的(时间或其他)相关性。在一个示例中,被称为当前图片的编码/解码中的特定图片被分割成块。在当前图片中的块类似于视频中先前编码且仍被缓冲的参考图片中的参考块时,当前图片中的块可以通过称为运动矢量的矢量来编码。在使用多个参考图片的情况下,运动矢量指向参考图片中的参考块,并且可以具有识别参考图片的第三维。
在一些实施例中,可以在帧间图片预测中使用双向预测技术。根据双向预测技术,使用两个参考图片,例如,第一参考图片和第二参考图片,这两个参考图片在解码顺序上都在视频中的当前图片之前(但是在显示顺序上可以分别在过去和未来)。当前图片中的块可以由指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量来编码。可以通过第一参考块和第二参考块的组合来预测该块。
此外,可以在帧间图片预测中使用合并模式技术来提高编码效率。
根据本公开的一些实施例,以块为单位执行预测,例如,帧间图片预测和帧内图片预测。例如,根据HEVC标准,视频图片序列中的图片被分割成编码树单元(CTU),用于压缩,图片中的CTU具有相同的大小,例如,64×64像素、32×32像素或16×16像素。通常,CTU包括三个编码树块(CTB),即一个亮度CTB和两个色度CTB。每个CTU可以被递归地四叉树分割成一个或多个编码单元(CU)。例如,64×64像素的CTU可以被分割成一个64×64像素的CU,或者4个32×32像素的CU,或者16个16×16像素的CU。在一个示例中,分析每个CU,以确定CU的预测类型,例如,帧间预测类型或帧内预测类型。根据时间和/或空间可预测性,CU被分成一个或多个预测单元(PU)。通常,每个PU包括一个亮度预测块(PB)和两个色度PB。在实施例中,以预测块为单位执行编码(编码/解码)中的预测操作。使用亮度预测块作为预测块的示例,预测块包含像素的值(例如,亮度值)的矩阵,例如,8×8像素、16×16像素、8×16像素、16×8像素等。
图7示出了根据一些实施例的G-PCC编码器(700)的框图。编码器(700)可以被配置为接收点云数据并压缩点云数据,以生成携带压缩的点云数据的比特流。在一个实施例中,编码器(700)可以包括位置量化模块(710)、重复点去除模块(712)、八叉树编码模块(730)、属性传递模块(720)、细节层次(LOD)生成模块(740)、属性预测模块(750)、残差量化模块(760)、算术编码模块(770)、逆残差量化模块(780)、加法模块(781)和用于存储重构的属性值的存储器(790)
如图7所示,可以在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)的框图。解码器(800)可以被配置为接收压缩的比特流并执行点云数据解压缩,以解压缩比特流,来生成解码的点云数据。在一个实施例中,解码器(800)可以包括算术解码模块(810)、逆残差量化模块(820)、八叉树解码模块(830)、LOD生成模块(840)、属性预测模块(850)和用于存储重构的属性值的存储器(860)。
如图8所示,可以在算术解码模块(810)处接收压缩的比特流(801)。算术解码模块(810)被配置为解码压缩的比特流(801),以获得点云的量化残差(如果生成)和占用码。八叉树解码模块(830)被配置为根据占用码确定点云中的点的重构位置。LOD生成模块(840)被配置为基于重构的位置将点重新组织成不同的LOD,并确定基于LOD的顺序。逆残差量化模块(820)被配置为基于从算术解码模块(810)接收的量化残差来生成重构残差。
属性预测模块(850)被配置为执行属性预测工艺,以根据基于LOD的顺序确定点的属性预测。例如,可以基于存储在存储器中的当前点的相邻点的重构属性值来确定当前点的属性预测(860)。在一些示例中,属性预测可以与相应的重构残差组合,以生成当前点的重构属性。
在一个示例中,从属性预测模块(850)生成的重构属性序列以及从八叉树解码模块(830)生成的重构位置对应于从G-PCC解码器(800)输出的解码的点云(802)。此外,重构的属性也存储到存储器(860)中,并且可以随后用于导出后续点的属性预测。
在各种实施例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以通过硬件、软件或其组合实现。例如,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以用处理电路(例如,一个或多个集成电路(IC))来实现,这些集成电路在有或没有软件的情况下操作,例如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在另一示例中,编码器(300)、解码器(400)、编码器(700)和/或解码器(800)可以实现为软件或固件,包括存储在非易失性(或非暂时性)计算机可读存储介质中的指令。当由处理电路(例如,一个或多个处理器)执行时,这些指令使得处理电路执行编码器(300)、解码器(400)、编码器(700)和/或解码器(800)的功能。
注意,被配置为实现本文公开的属性预测技术的属性预测模块(750)和(850)可以包括在其他解码器或编码器中,这些解码器或编码器可以具有与图7和图8所示的类似或不同的结构。此外,在各种示例中,编码器(700)和解码器(800)可以包括在同一设备中,或者包括在分开的设备中。
根据本公开的一些方面,上述PCC(例如,G-PCC、V-PCC)编码器和解码器可用于网格压缩框架。本公开的一些方面提供了使用PCC编码器和解码器进行网格压缩的框架,例如,静态网格压缩、动态网格压缩、具有恒定连接性信息的动态网格压缩、具有时变连接性信息的动态网格压缩、具有时变属性图的动态网格压缩等。
图9示出了根据本公开的一些实施例的用于网格压缩的框架(900)的示意图。框架(900)包括网格编码器(910)和网格解码器(950)。网格编码器(910)将输入网格(905)(动态网格情况下的网格帧)编码成比特流(945),网格解码器(950)解码比特流(945),以生成重构网格(995)(动态网格情况下的网格帧)。
网格编码器(910)可以是任何合适的设备,例如,计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能手机、游戏设备、AR设备、VR设备等。网格解码器(950)可以是任何合适的设备,例如,计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(945)可以经由任何合适的通信网络(未示出)从网格编码器(910)传输到网格解码器(950)。
在图9的示例中,网格编码器(910)包括耦合在一起的转换器(920)和PCC编码器(940)。
转换器(920)被配置为将输入网格(905)转换为点云。在一个示例中,转换器(920)包括采样模块(925)。采样模块(925)可以从输入网格(905)的多边形中采样点,以生成点云(935)。
在另一示例中,转换器(920)包括体素化模块(928)。体素化模块(928)可以将输入网格(905)转换成体素化网格(voxelized mesh)。在一个示例中,体素化模块(928)可以将输入网格(905)转换成包括3D网格上大小相等的块的集合的体素化网格。体素化网格可以保存关于体积和连接性的信息。注意,在一些示例中,体素化网格中的顶点可以具有单个连接表示,并且可以基于顶点的几何信息来推断体素化网格中顶点的连接性信息。在一些示例中,体素化网格的顶点作为点云(938)被提供给PCC编码器940。
在另一示例中,转换器(920)以混合方式配置。例如,输入网格(905)包括(或被分割成)第一部分和第二部分。采样模块(925)将第一部分转换成点云(935)(称为第一点云(935)),并且体素化模块(928)将第二部分转换成点云(938)(称为第二点云(938))。第一点云(935)和第二点云(938)被适当地组合并提供给PCC编码器(940)。
根据本公开的一个方面,可从输入网格(905)中推导出生成的点云中每个点的属性,例如,第一点云(935)和/或第二点云(938)。例如,生成的点云中每个点的颜色(例如,第一点云(935)和/或第二点云(938))可以通过在给定纹理坐标(u,v)的纹理图上插值,从与输入网格(905)相关联的纹理图中导出。与生成的点(在第一点云(935)和/或第二点云(938)中)相关联的属性(例如,法线、颜色、反射率等)可以与点(在第一点云(935)和/或第二点云(938)中)一起提供给PCC编码器(940)用于编码。
然后,PCC编码器(940)对生成的点云进行编码,例如,第一点云(935)和/或第二点云(938),以生成携带编码输入网格的比特流(945)。PCC编码器(940)可以是任何合适的PCC编码器,例如,V-PCC编码器、G-PCC编码器等。
在图9的示例中,比特流(945)被提供给网格解码器(950)。网格解码器(950)包括PCC解码器(960)、连接性生成模块(970)和网格重构模块(980)。在一个示例中,PCC解码器(960)对应于PCC编码器(940),并且可以解码由PCC编码器(940)编码的比特流(945)。PCC解码器(960)可以生成具有作为网格顶点的点的点云(965)。
连接性生成模块(970)可以根据点云(965)中的解码点(网格环境中的顶点)估计连接性(拓扑)。注意,连接性生成模块(970)可以使用任何合适的算法来估计顶点的连接性信息(975)。
在图9的示例中,解码点(965)和连接性信息(975)被提供给网格重构模块(980)。网格重构模块(980)基于对应于顶点的解码点(965)和连接性信息(975)生成重构网格(995)。
注意,网格编码器(910)中的组件(例如,采样模块(925)、体素化模块(928)、PCC编码器(940))可以分别通过各种技术实现。在一个示例中,组件由集成电路实现。在另一个示例中,使用可以由一个或多个处理器执行的软件来实现组件。
注意,网格解码器(950)中的组件(例如,PCC解码器(960)、连接性生成模块(970)、网格重构模块(980))可以分别通过各种技术实现。在一个示例中,组件由集成电路实现。在另一个示例中,使用可以由一个或多个处理器执行的软件来实现组件。
图10示出了根据本公开的一些实施例的用于网格压缩的框架(1000)的示意图。框架(1000)包括网格编码器(1010)和网格解码器(1050)。网格编码器(1010)将输入网格(1005)(动态网格情况下的网格帧)编码成比特流(1045),网格解码器(1050)解码比特流(1045),以生成重构网格(1095)(动态网格情况下的网格帧)。
网格编码器(1010)可以是任何合适的设备,例如,计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能手机、游戏设备、AR设备、VR设备等。网格解码器(1050)可以是任何合适的设备,例如,计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(945)可以经由网络(未示出)从网格编码器(1010)传输到网格解码器(1050)。
在图10的示例中,网格编码器(1010)包括转换器(1020)和多个编码器,例如,PCC编码器(1040)、视频编码器(1041)、属性编码器(1042)等。
转换器(1020)被配置为将输入网格(1005)转换为合适的中间数据,中间数据具有用于由多个编码器编码的多个部分。在一个示例中,转换器(1020)包括体素化模块(1028)。体素化模块(1028)可以将输入网格(1005)转换成体素化网格。在一个示例中,体素化模块(1028)可以将输入网格(1005)转换成包括3D网格上大小相等的块的集合的体素化网格。体素化网格可以保存关于体积和连接性的信息。
在一个示例中,体素化网格的信息可以转换为顶点(1021)、纹理图(1022)和其他属性(1023)。顶点(1021)可以包括顶点的几何信息,例如,描述顶点位置的(x,y,z)坐标。顶点(1021)还可以包括顶点属性,例如,法线、颜色反射率等。纹理图(1022)(在一些示例中也称为属性图)是与网格表面相关联的属性。在一些示例中,网格帧序列的纹理图(1022)可以形成视频序列。其他属性(1023)可以包括不能被PCC编码器编码的属性。在一些示例中,其他属性(1023)包括映射信息,例如,纹理坐标(u,v)。
根据本公开的一个方面,顶点(1021)可以被视为点云,并且可以由PCC编码器(1040)进行编码。PCC编码器(1040)可以是任何合适的PCC编码器,例如,V-PCC编码器、G-PCC等。注意,顶点属性(与顶点相关联的属性)(例如,法线、颜色、反射率等)可以由PCC编码器(1040)编码。
纹理图(1022)可以被视为视频序列,并且可以由视频编码器(1041)编码。在一些示例中,纹理图(1022)可以不同于输入网格(1005)中的原始纹理图。纹理图(1022)可以由任何合适的算法生成。
可能无法由PCC编码器(1040)和视频编码器(1041)编码的其他属性(1023)可以由属性编码器(1042)编码。属性编码器(1042)可以用适于编码其他属性(1023)的任何其他属性编码技术来实现。例如,其他属性(1023)包括纹理坐标(u,v),并且属性编码器(1042)被配置为对纹理坐标(u,v)进行编码。
在图10的示例中,来自PCC编码器1040、视频编码器(1041)和属性编码器(1042)的编码输出混合(例如,多路复用)到携带输入网格(1005)的编码网格的比特流(1045)中。
在图10的示例中,网格解码器(1050)可以将比特流(1045)多路分解为多个部分,以分别由多个解码器进行解码,例如,PCC解码器(1060)、视频解码器(1061)和属性解码器(1062)。
在一个示例中,PCC解码器(1060)对应于PCC编码器(1040),并且可以解码由PCC编码器(1040)编码的比特流(1045)的一部分。PCC解码器(1060)可以生成具有作为网格顶点的点的点云(1065)。
连接性生成模块(1070)可以根据点云(1065)中的解码点(网格环境中的顶点)估计连接性信息(1075)(也称为拓扑)。注意,连接性生成模块(1070)可以使用任何合适的算法来估计顶点的连接性信息。
在图10的示例中,点云(1065)和连接性信息(1075)被提供给网格重构模块(1080)。
在一个示例中,视频解码器(1061)对应于视频编码器(1041),并且可以解码由视频编码器(1041)编码的比特流(1045)的一部分。视频解码器(1061)可以生成解码的纹理图(1066)。解码的纹理图(1066)被提供给网格重构模块(1080)。
在一个示例中,属性解码器(1062)对应于属性编码器(1042),并且可以解码由属性编码器(1042)编码的比特流(1045)的一部分。属性解码器(1062)可以生成解码的属性(1067)。解码的属性(1067)被提供给网格重构模块(1080)。
网格重构模块(1080)接收点云(1065)、连接性信息(1075)、解码纹理图(1066)和解码属性(1067),并相应地生成重构网格(1095)。例如,来自PCC解码器(1060)的点云(1065)可以为重构网格(1095)的重构提供顶点的几何信息和顶点属性;由连接性生成模块(1070)确定的连接性信息(1075)可以为重构网格(1095)的重构提供连接性信息;解码的纹理图(1066)可以为重构的网格(1095)的重构提供纹理图,解码的属性(1067)可以为重构的网格(1095)的重构提供其他属性。
注意,网格编码器(1010)中的组件(例如,转换器(1020)、体素化模块(1028)、PCC编码器(1040)、视频编码器(1041)和属性编码器(1042))可以分别通过各种技术实现。在一个示例中,组件由集成电路实现。在另一个示例中,使用可以由一个或多个处理器执行的软件来实现组件。
注意,网格解码器(1050)中的组件(例如,PCC解码器(1060)、连接性生成模块(1070)、网格重构模块(1080)、视频解码器(1061)、属性解码器(1062))可以分别通过各种技术实现。在一个示例中,组件由集成电路实现。在另一个示例中,使用可以由一个或多个处理器执行的软件来实现组件。
图11示出了根据本公开的一些实施例的用于网格压缩的框架(1100)的示意图。框架(1100)包括网格编码器(1110)和网格解码器(1150)。网格编码器(1110)将输入网格(1105)(动态网格情况下的网格帧)编码成比特流(1145),网格解码器(1150)解码比特流(1145),以生成重构的网格(1195)(动态网格情况下的网格帧)。
网格编码器(1110)可以是任何合适的设备,例如,计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、智能手机、游戏设备、AR设备、VR设备等。网格解码器(1150)可以是任何合适的设备,例如,计算机、客户端计算机、台式计算机、膝上型计算机、平板计算机、智能电话、游戏设备、AR设备、VR设备等。比特流(945)可以经由网络(未示出)从网格编码器(1110)传输到网格解码器(1150)。
在图11的示例中,网格编码器(1110)包括转换器(1120)和多个编码器,例如,PCC编码器(1140)、视频编码器(1141)、属性编码器(1142)、连接性编码器(1144)等。此外,网格编码器包括PCC解码器(1130)和连接性生成模块(1131)。
转换器(1120)被配置为将输入网格(1105)转换为合适的中间数据,中间数据具有用于由多个编码器编码的多个部分。在一个示例中,转换器(1120)包括体素化模块(1128)。体素化模块(1128)可以将输入网格(1105)转换成体素化网格。在一个示例中,体素化模块(1128)可以将输入网格(1105)转换成包括3D网格上大小相等的块的集合的体素化网格。体素化网格可以保存关于体积和连接性的信息。
在一个示例中,体素化网格的信息可以转换为顶点(1121)、连接性信息(1124)、纹理图(1122)、其他属性(1123)。顶点(1121)可以包括顶点的几何信息,例如,描述顶点位置的(x,y,z)坐标。顶点(1121)还可以包括顶点属性,例如,法线、颜色反射率等。连接性信息(1124)(在一些示例中也称为拓扑)包括体素化网格的连接性信息。纹理图(1122)(在一些示例中也称为属性图)是与网格表面相关联的属性,并且纹理图(1122)可以是视频序列。其他属性(1123)可以包括不能被PCC编码器(1140)和视频编码器(1141)编码的属性。在一些示例中,其他属性(1123)包括映射信息,例如,纹理坐标(u,v)。
根据本公开的一个方面,顶点(1121)可以被视为点云,并且可以由PCC编码器(1140)进行编码。PCC编码器(1140)可以是任何合适的PCC编码器,例如,V-PCC编码器、G-PCC等。注意,顶点属性(与顶点相关联的属性)(例如,法线、颜色、反射率等)可以由PCC编码器(1140)编码。
根据本公开的一个方面,连接性编码器(1144)被配置为对连接性信息(1124)(也称为原始连接性信息)和估计的连接性信息(1134)之间的连接性差异进行编码。在图11的示例中,网格编码器(1100)包括PCC解码器(1130)和连接性生成模块(1131),以生成估计的连接性信息(1134)。在一个示例中,PCC解码器(1130)对应于PCC编码器(1140)。PCC解码器(1130)可以解码由PCC编码器(1140)编码的内容。PCC解码器(1130)可以接收编码点云的副本(1132),并且生成具有作为网格顶点的点的点云(1133)。
连接性生成模块(1131)可以根据点云(1133)中的解码点(网格环境中的顶点)生成估计的连接性信息(1134)。连接性生成模块(1131)可以通过任何合适的算法来估计和生成估计的连接性信息(1134)。连接性编码器(1144)接收原始连接性信息(1124)和估计的连接性信息(1134),并编码比特流中估计的连接性信息(1134)和原始连接性信息(1124)之间的差异(1145)。
纹理图(1122)可以被视为视频序列,并且可以由视频编码器(1141)编码。在一些示例中,纹理图(1122)可以不同于输入网格(1105)中的原始纹理图。纹理图(1122)可以由任何合适的算法生成。
可能无法由PCC编码器(1140)和视频编码器(1141)编码的其他属性(1123)可以由属性编码器(1142)编码。属性编码器(1142)可以用适于编码其他属性(1123)的任何其他属性编码技术来实现。例如,其他属性(1123)包括纹理坐标(u,v),并且属性编码器(1142)被配置为对纹理坐标(u,v)进行编码。
在图11的示例中,来自PCC编码器(1140)、连接性编码器(1144)、视频编码器(1141)和属性编码器(1142)的编码输出混合(例如,多路复用)到携带与输入网格(1105)对应的编码网格的比特流(1145)中。
在图11的示例中,网格解码器(1150)可以将比特流(1145)多路分解为多个部分,以分别由多个解码器进行解码,例如,PCC解码器(1160)、连接性解码器(1164)、视频解码器(1161)和属性解码器(1162)。
在一个示例中,PCC解码器(1160)对应于PCC编码器(1140),并且可以解码由PCC编码器(1140)编码的比特流(1145)的一部分。PCC解码器(1160)可以生成具有作为网格顶点的点的点云(1165)。
连接性生成模块(1170)可以根据点云(1165)中的解码点(网格环境中的顶点)估计连接性(拓扑),并输出估计的连接性信息(1175)。注意,连接性生成模块(1170)可以使用任何合适的算法来确定顶点的估计的连接性信息(1175)。
在图11的示例中,解码的点云(1165)和估计的连接性信息(1175)被提供给网格重构模块(1180)。估计的连接性信息(1175)也被提供给连接性解码器(1164)。
连接性解码器(1164)对应于连接性编码器(1144),并且可以解码由连接性编码器(1144)编码的比特流(1145)的一部分,这是连接性差异。连接性解码器(1164)可以将连接性差异与估计的连接性信息组合(1175),并输出组合的连接性信息(1168)。可以将组合的连接性信息提供给网格重构模块(1180)。
根据本公开的一个方面,PCC解码器(1130)和PCC解码器(1160)可以使用相同的解码算法。此外,连接性生成模块(1131)和连接性生成模块(1170)可以使用相同的连接性估计算法。
在一个示例中,视频解码器(1161)对应于视频编码器(1141),并且可以解码由视频编码器(1141)编码的比特流(1145)的一部分。视频解码器(1161)可以生成解码的纹理图(1166)。解码的纹理图(1166)被提供给网格重构模块(1180)。
在一个示例中,属性解码器(1162)对应于属性编码器(1142),并且可以解码由属性编码器(1142)编码的比特流(1145)的一部分。属性解码器(1162)可以生成解码的属性(1167)。解码的属性(1167)被提供给网格重构模块(1180)。
网格重构模块(1180)接收解码的点云(1165)、组合的连接性信息(1168)、解码的纹理图(1166)和解码的属性(1167),并相应地生成重构的网格(1195)。例如,来自PCC解码器(1160)的解码点可以为重构网格的重构提供顶点的几何信息和顶点属性(1195);由连接性解码器(1164)确定的组合的连接性信息(1168)可以为重构网格(1195)的重构提供连接性信息;解码的纹理图(1166)可以为重构的网格(1195)的重构提供纹理图,解码的属性(1167)可以为重构的网格(1195)的重构提供其他属性。
注意,网格编码器(1110)中的组件(例如,转换器(1120)、体素化模块(1128)、PCC编码器(1140)、视频编码器(1141)、属性编码器(1142)、PCC解码器(1130)、连接性生成模块(1131)、连接性编码器(1144))可以分别通过各种技术实现。在一个示例中,组件由集成电路实现。在另一个示例中,使用可以由一个或多个处理器执行的软件来实现组件。
注意,网格解码器(1150)中的组件(例如,PCC解码器(1160)、连接性生成模块(1170)、网格重构模块(1180)、视频解码器(1161)、属性解码器(1162)、连接性解码器(1164))可以分别通过各种技术实现。在一个示例中,组件由集成电路实现。在另一个示例中,使用可以由一个或多个处理器执行的软件来实现组件。
根据本公开的一些方面,动态网格可具有时变连接性信息,帧间预测(帧间连接性预测)可用于编码时变连接性信息。
在一些示例中,动态网格包括网格帧序列。对于网格帧序列,可以通过帧间连接性预测对连接性信息进行编码,并且在比特流中对当前帧和参考帧之间的拓扑差异(连接性信息)进行编码。在一个示例中,当连续网格帧之间的连接性信息变化不大时,对差异进行编码并使用帧间连接性预测可以实现对连接性信息进行编码的高度压缩。
在一些实施例中,例如,使用框架(900)、框架(1000)、框架(1100)中的技术,在比特流中编码网格帧序列中的第一网格帧的连接性信息。对于后续网格帧中的每一个,在比特流中编码当前网格帧和先前网格帧之间的连接性差异。
在解码器侧,例如,使用框架(900)、框架(1000)、框架(1100)中的技术,从比特流中解码网格帧序列中的第一网格帧的连接性信息。然后,对于每个其他网格帧,从比特流中解码当前网格帧和先前网格帧之间的连接性差异。连接性差异与先前网格帧的连接性信息组合,以获得当前网格帧的连接性信息。
在一些实施例中,一个或多个标记可用于指示帧间连接性预测是应用于动态网格还是动态网格的一部分。
在一些示例中,可以在高级语法中信令标记。在一个示例中,可以在网格帧序列的序列报头中信令标记,以指示帧间连接性预测被应用于动态网格中的网格帧序列。在另一个示例中,可以在网格帧中的切片的切片报头中信令标记,以指示帧间连接性预测被应用于网格帧中的切片。
在一些示例中,可以在比特流中信令标记,以指示两个网格帧之间的连接性信息未改变。
在一些实施例中,可以将网格帧划分为可以分别编码的多个编码单元。对于当前网格帧的每个编码单元,可以首先对标记进行编码,以指示编码单元的连接性在两个网格帧之间(当前网格帧和参考网格帧之间)是否改变。还可对索引或运动矢量进行编码,以指示参考网格帧中的参考编码单元。如果连接性信息随时间改变,则可以信令当前编码单元和参考编码单元之间的连接性信息的差异。否则,可以从参考网格帧中的参考编码单元中的连接性信息来推断当前编码单元的连接性信息。
图12示出了概述根据本公开的一个实施例的工艺(1200)的流程图。可以在网格的编码过程中使用工艺(1200)。在各种实施例中,工艺(1200)由处理电路执行。在一些实施例中,工艺(1200)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行工艺(1200)。该工艺开始于(S1201)并进行到(S1210)。
在(S1210)处,将网格转换为具有基于网格生成的点的点云。
在一些示例中,对网格中的多边形进行采样,以生成采样点,作为点云中的点。在一些示例中,网格被体素化,以生成体素化网格。体素化网格的顶点可以形成点云中的点。在一些示例中,点云中的一些点是基于多边形的采样生成的,并且点云中的一些点是体素化网格的顶点。
在(S1220),使用PCC编码器将点云编码成比特流。比特流携带网格的信息。
在一些实施例中,网格被转换为由单独的编码器编码的多个部分,编码结果混合(例如,多路复用)到比特流中。
在一个示例中,多个部分中的一个包括纹理图(也称为属性图)。纹理图包括与网格表面相关联的属性,并且可以由视频编码器编码为二维(2D)图像序列。
在另一示例中,多个部分中的一个包括其他属性,例如,对应于网格映射信息的纹理坐标。可以使用适于编码其他属性的属性编码器来编码其他属性。
在一些示例中,多个部分中的一个包括网格的连接性信息。在一个示例中,可以基于解码的点云来生成估计的连接性信息。然后,确定网格的连接性信息和估计的连接性信息之间的连接性差异。连接性差异被编码到比特流中。
在一些实施例中,帧间连接性预测用于对动态网格的连接性信息进行编码。动态网格包括网格帧序列。在一个示例中,基于在当前网格帧之前已经重构的参考网格帧的参考连接性信息,确定帧间连接性预测,用于对当前网格帧的当前连接性信息进行编码。在一个示例中,确定并在比特流中编码当前连接性信息和参考网格帧的参考连接性信息之间的帧间连接性差异。
在一些实施例中,可以将一个或多个标记编码到比特流中,以指示帧间连接性预测是应用于动态网格还是动态网格的一部分。
在一些示例中,可以在高级语法中信令标记。在一个示例中,可以在网格帧序列的序列报头中信令标记,以指示帧间连接性预测被应用于动态网格中的网格帧序列。在另一个示例中,可以在网格帧中的切片的切片报头中信令标记,以指示帧间连接性预测被应用于网格帧中的切片。
在一些示例中,当当前网格帧的当前连接性信息与参考网格帧的参考连接性信息无差异时,可以在比特流中信令标记,以指示当前网格帧和参考网格帧之间的连接性信息未改变。
在一些实施例中,可以将网格帧划分为多个编码单元。对于当前网格帧的每个编码单元,可以将标记编码到比特流中,以指示编码单元的连接性在当前网格帧和参考网格帧中的参考编码单元之间是否改变。在一些示例中,可对索引或运动矢量进行编码,以指示参考网格帧中的参考编码单元。当连接性信息随时间改变时,可以在比特流中信令当前编码单元和参考编码单元之间的连接性信息的差异。否则,可以从参考网格帧中的参考编码单元推断当前编码单元的连接性。
然后,该工艺进行到(S1299)并终止。
可以适当调整工艺(1200)。可以修改和/或省略工艺(1200)中的步骤。可以添加额外的步骤。可以使用任何合适的实现顺序。
图13示出了概述根据本公开的实施例的工艺(1300)的流程图。可以在网格的解码过程中使用工艺(1300)。在各种实施例中,工艺(1300)由处理电路执行。在一些实施例中,工艺(1300)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行工艺(1300)。该工艺开始于(S1301)并进行到(S1310)。
在(S1310),PCC解码器用于从比特流中解码点云,该点云包括与网格中的顶点或网格中的多边形的采样点中的至少一个对应的点。在一些示例中,点云中的点对应于体素化网格的顶点。在一些示例中,点云中的点对应于体素化网格中多边形的采样点。在一些示例中,点云中的一些点对应于体素化网格的顶点,点云中的一些点对应于体素化网格中多边形的采样点。
在(S1320),基于点云,确定(估计)网格中顶点的估计的连接性信息。注意,可以使用任何合适的算法来基于点云确定估计的连接性信息。
在(S1330),基于点云和估计的连接性信息生成重构的网格帧。
在一些示例中,视频解码器用于从比特流中解码双向(2D)图像,该2D图像对应于与网格的表面相关联的属性的纹理图。可以基于点云、估计的连接性信息和纹理图对应的2D图像来生成重构的网格帧。
在一些示例中,属性解码器用于从比特流中解码与网格的映射信息对应的纹理坐标。可以基于点云、估计的连接性信息、纹理图对应的2D图像以及映射信息对应的纹理坐标来生成重构的网格帧。
在一些示例中,从比特流中解码连接性差异。估计的连接性信息与连接性差异组合,以生成组合的连接性信息。可以基于点云和组合的连接性信息来生成重构的网格帧。
在一个示例中,从比特流中解码连接性差异。将估计的连接性信息与连接性差异组合,以生成组合的连接性信息。视频解码器用于从比特流中解码2D图像,该2D图像对应于与网格的表面相关联的属性的纹理图。属性解码器用于从比特流中解码与网格映射信息对应的纹理坐标。基于点云、纹理图对应的2D图像、映射信息对应的纹理坐标和组合的连接性信息来生成重构的网格帧。
根据本公开的一些实施例,重构的网格帧是动态网格中的网格帧,动态网格包括网格帧序列。帧间连接性预测用于基于已经重构的参考网格帧的参考连接性信息来预测当前网格帧的当前连接性信息。基于当前连接性信息来重构当前网格帧,其中,当前连接性信息是根据参考网格帧的参考连接性信息预测得到的信息。
在一些示例中,从比特流中解码帧间连接性差异。基于帧间连接性差异和参考网格帧的参考连接性信息的组合来确定当前连接性信息。
在一些示例中,从比特流中解码与动态网格范围相关联的语法中的标记。该标记指示在动态网格的范围内使用帧间连接性预测。帧间连接性预测用于基于参考网格帧的参考连接性信息来确定与动态网格范围内的网格部分相关联的当前连接性信息。
在一些示例中,对于当前网格帧中的当前编码单元,基于索引或运动矢量中的至少一个确定参考网格帧中的参考编码单元。帧间连接性预测用于基于参考网格帧中的参考编码单元的参考连接性信息来确定当前网格帧中的当前编码单元的当前连接性信息。然后,可以相应地重构当前网格帧中的当前编码单元。
然后,该工艺进行到(S1399)并终止。
可以适当调整工艺(1300)。可以修改和/或省略工艺(1300)中的步骤。可以添加额外的步骤。可以使用任何合适的实现顺序。
本公开中公开的技术可单独使用或以任何顺序组合使用。此外,技术(例如,方法、实施例)、编码器和解码器中的每一个可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。
上述技术可以被实现为使用计算机可读指令的计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图14示出了适于实现所公开主题的某些实施例的计算机***(1400)。
计算机软件可以使用任何合适的机器代码或计算机语言来编码,其可以经受汇编、编译、链接或类似机制来创建包括指令的代码,这些指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行,或者通过解释、微代码执行等来执行。
指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。
图14中所示的计算机***(1400)的组件本质上是示例性的,并且不旨在对实现本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为对计算机***(1400)的示例性实施例中所示的任何一个组件或组件组合有任何依赖性或要求。
计算机***(1400)可以包括某些人机接口输入设备。这种人机接口输入设备可以响应一个或多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、鼓掌)、视觉输入(例如:手势)、嗅觉输入(未示出)进行的输入。人机接口设备还可以用于捕捉不一定与人的有意识输入直接相关的某些媒体,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止图像相机获得的照片图像)、视频(例如,二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下一个或多个(每个仅描绘了一个):键盘(1401)、鼠标(1402)、轨迹板(1403)、触摸屏(1410)、数据手套(未示出)、操纵杆(1405)、麦克风(1406)、扫描仪(1407)、相机(1408)。
计算机***(1400)还可以包括某些人机接口输出设备。这种人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感觉。这种人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏(1410)、数据手套(未示出)或操纵杆(1405)的触觉反馈,但是也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(1409)、耳机(未示出))、视觉输出设备(例如,屏幕(1410),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个都具有或不具有触摸屏输入能力,每个都具有或不具有触觉反馈能力——其中一些能够通过诸如立体输出之类的方式输出二维视觉输出或多于三维的输出;虚拟现实眼镜(未示出)、全息显示器和烟雾箱(未示出))以及打印机(未示出)。
计算机***(1400)还可以包括人类可访问的存储设备及其相关联的介质,例如,包括具有CD/DVD或类似介质(1421)的CD/DVD ROM/RW(1420)的光学介质、拇指驱动器(1422)、可移动硬盘驱动器或固态驱动器(1423)、诸如磁带和软盘(未示出)之类的传统磁介质、诸如安全加密狗(未示出)之类的专用ROM/ASIC/PLD设备等。
本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其他瞬时信号。
计算机***(1400)还可以包括到一个或多个通信网络(1455)的接口(1454)。网络例如可以是无线的、有线的、光学的。网络还可以是局域的、广域的、大都市的、车辆的和工业的、实时的、延迟容忍的等。网络的示例包括诸如以太网、无线LAN之类的局域网、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、***和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业网络等。某些网络通常需要连接到某些通用数据端口或***总线(1449)(例如,计算机***(1400)的USB端口)的外部网络接口适配器;其他的通常通过连接到如下所述的***总线而集成到计算机***(1400)的核心中(例如,PC计算机***中的以太网接口或智能电话计算机***中的蜂窝网络接口)。使用这些网络中的任何一个,计算机***(1400)可以与其他实体通信。这种通信可以是单向的、只接收的(例如,广播电视)、单向的、只发送的(例如,到某些CANbus设备的CANbus),或者是双向的,例如,到使用局域或广域数字网络的其他计算机***。如上所述,某些协议和协议栈可以用在这些网络和网络接口的每一个上。
前述人机接口设备、人类可访问的存储设备和网络接口可以附接到计算机***(1400)的核心(1440)。
核心(1440)可以包括一个或多个中央处理单元(CPU)(1441)、图形处理单元(GPU)(1442)、现场可编程门区域(FPGA)(1443)形式的专用可编程处理单元、用于特定任务的硬件加速器(1444)、图形适配器(1450)等。这些设备连同只读存储器(ROM)(1445)、随机存取存储器(1446)、诸如内部非用户可访问硬盘驱动器、SSD之类的内部大容量存储器(1447)可以通过***总线(1448)连接。在一些计算机***中,***总线(1448)可以以一个或多个物理插头的形式访问,以允许额外CPU、GPU等的扩展。***设备可以直接或者通过***总线(1449)连接到核心的***总线(1448)。在一个示例中,屏幕(1410)可以连接到图形适配器(1450)。***总线的架构包括PCI、USB等。
CPU(1441)、GPU(1442)、FPGA(1443)和加速器(1444)可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM(1445)或RAM(1446)中。过渡数据可以存储在RAM(1446)中,而永久数据可以存储在例如内部大容量存储器(1447)中。可以通过使用高速缓冲存储器来实现对任何存储设备的快速存储和检索,高速缓冲存储器可以与一个或多个CPU(1441)、GPU(1442)、大容量存储器(1447)、ROM(1445)、RAM(1446)等紧密关联。
计算机可读介质上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是为了本公开的目的而专门设计和构造的,或者可以是计算机软件领域的技术人员公知和可获得的类型。
作为示例而非限制,具有架构(1400)的计算机***,特别是核心(1440)可以提供作为处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一个或多个有形的计算机可读介质中的软件的结果的功能。这种计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质以及具有非暂时性的核心(1440)的某些存储器,例如,核心内部大容量存储器(1447)或ROM(1445)。实现本公开的各种实施例的软件可以存储在这样的设备中并由核心执行(1440)。根据特定需要,计算机可读介质可以包括一个或多个存储设备或芯片。该软件可以使核心(1440)并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1446)中的数据结构并且根据软件定义的过程修改这样的数据结构。此外或作为替代,计算机***可以作为硬连线或以其他方式包含在电路中的逻辑(例如:加速器(1444))的结果来提供功能,其可以代替软件或与软件一起操作来执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(例如,集成电路(IC))、包含用于执行的逻辑的电路或者这两者。本公开包含硬件和软件的任何合适的组合。
虽然本公开已经描述了几个示例性实施例,但是存在落入本公开范围内的变更、置换和各种替代等同物。因此,应当理解,本领域技术人员将能够设计出许多***和方法,尽管在此没有明确示出或描述,但是这些***和方法体现了本公开的原理,并且因此在本公开的精神和范围内。

Claims (20)

1.一种用于网格压缩的方法,其特征在于,包括:
使用点云压缩PCC解码器从比特流中解码点云,所述点云包括与网格中的顶点或所述网格中的多边形的采样点中的至少一个对应的点;
基于所述点云,确定所述网格中的所述顶点的估计的连接性信息;以及
基于所述点云和所述估计的连接性信息生成重构的网格帧。
2.根据权利要求1所述的方法,其特征在于,还包括:
使用视频解码器从所述比特流中解码二维2D图像,所述2D图像对应于与所述网格的表面相关联的属性的纹理图;以及
基于所述点云、所述估计的连接性信息和所述纹理图对应的所述2D图像来生成所述重构的网格帧。
3.根据权利要求2所述的方法,其特征在于,还包括:
使用属性解码器从所述比特流中解码与所述网格的映射信息对应的纹理坐标;以及
基于所述点云、所述估计的连接性信息、所述纹理图对应的所述2D图像和所述映射信息对应的所述纹理坐标来生成所述重构的网格帧。
4.根据权利要求1所述的方法,其特征在于,还包括:
从所述比特流中解码连接性差异;
将所述估计的连接性信息与所述连接性差异组合,以生成组合的连接性信息;以及
基于所述点云和所述组合的连接性信息生成所述重构的网格帧。
5.根据权利要求1所述的方法,其特征在于,还包括:
从所述比特流中解码连接性差异;
将所述估计的连接性信息与所述连接性差异组合,以生成组合的连接性信息;
使用视频解码器从所述比特流中解码2D图像,所述2D图像对应于与所述网格的表面相关联的属性的纹理图;
使用属性解码器从所述比特流中解码与所述网格的映射信息对应的纹理坐标;以及
基于所述点云、所述纹理图对应的所述2D图像、所述映射信息对应的所述纹理坐标和所述组合的连接性信息来生成所述重构的网格帧。
6.根据权利要求1所述的方法,其特征在于,所述点云中的所述点对应于体素化网格的顶点。
7.根据权利要求1所述的方法,其特征在于,所述重构的网格帧是动态网格中的网格帧,所述动态网格包括网格帧序列,所述方法包括:
基于已经重构的参考网格帧的参考连接性信息,使用帧间连接性预测来预测当前网格帧的当前连接性信息;以及
基于所述当前连接性信息来重构所述当前网格帧,其中,所述当前连接性信息是根据所述参考网格帧的所述参考连接性信息预测得到的信息。
8.根据权利要求7所述的方法,其特征在于,还包括:
从所述比特流中解码帧间连接性差异;以及
基于所述帧间连接性差异和所述参考网格帧的所述参考连接性信息的组合来确定所述当前连接性信息。
9.根据权利要求7所述的方法,其特征在于,还包括:
解码与所述动态网格的范围相关联的语法中的标记,所述标记指示在所述动态网格的所述范围中使用所述帧间连接性预测;以及
基于所述参考网格帧的所述参考连接性信息,使用所述帧间连接性预测来预测与所述动态网格的所述范围内的网格部分相关联的所述当前连接性信息。
10.根据权利要求7所述的方法,其特征在于,还包括:
基于索引或运动矢量中的至少一个,为所述当前网格帧中的当前编码单元确定所述参考网格帧中的参考编码单元;以及
使用所述帧间连接性预测,基于所述参考网格帧中的所述参考编码单元的所述参考连接性信息,确定所述当前网格帧中的所述当前编码单元的所述当前连接性信息。
11.一种用于网格压缩的装置,其特征在于,包括处理电路,所述处理电路被配置为:
使用点云压缩PCC解码器从比特流中解码点云,所述点云包括与网格中的顶点或所述网格中的多边形的采样点中的至少一个对应的点;
基于所述点云,确定所述网格中的所述顶点的估计的连接性信息;以及
基于所述点云和所述估计的连接性信息生成重构的网格帧。
12.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
使用视频解码器从所述比特流中解码2D图像,所述2D图像对应于与所述网格的表面相关联的属性的纹理图;以及
基于所述点云、所述估计的连接性信息和所述纹理图对应的所述2D图像来生成所述重构的网格帧。
13.根据权利要求12所述的装置,其特征在于,所述处理电路被配置为:
使用属性解码器从所述比特流中解码与所述网格的映射信息对应的纹理坐标;以及
基于所述点云、所述估计的连接性信息、所述纹理图对应的所述2D图像和所述映射信息对应的所述纹理坐标来生成所述重构的网格帧。
14.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
从所述比特流中解码连接性差异;
将所述估计的连接性信息与所述连接性差异组合,以生成组合的连接性信息;以及
基于所述点云和所述组合的连接性信息生成所述重构的网格帧。
15.根据权利要求11所述的装置,其特征在于,所述处理电路被配置为:
从所述比特流中解码连接性差异;
将所述估计的连接性信息与所述连接性差异组合,以生成组合的连接性信息;
使用视频解码器从所述比特流中解码2D图像,所述2D图像对应于与所述网格表面相关联的属性的纹理图;
使用属性解码器从所述比特流中解码与所述网格的映射信息对应的纹理坐标;以及
基于所述点云、所述纹理图对应的所述2D图像、所述映射信息对应的所述纹理坐标和所述组合的连接性信息来生成所述重构的网格帧。
16.根据权利要求11所述的装置,其特征在于,所述点云中的所述点对应于体素化网格的顶点。
17.根据权利要求11所述的装置,其特征在于,所述重构的网格帧是动态网格中的网格帧,所述动态网格包括网格帧序列,所述处理电路被配置为:
基于已经重构的参考网格帧的参考连接性信息,使用帧间连接性预测来预测当前网格帧的当前连接性信息;以及
基于所述当前连接性信息来重构所述当前网格帧,其中,所述当前连接性信息是根据所述参考网格帧的所述参考连接性信息预测得到的信息。
18.根据权利要求17所述的装置,其特征在于,所述处理电路被配置为:
从所述比特流中解码帧间连接性差异;以及
基于所述帧间连接性差异和所述参考网格帧的所述参考连接性信息的组合来确定所述当前连接性信息。
19.根据权利要求17所述的装置,其特征在于,所述处理电路被配置为:
解码与所述动态网格的范围相关联的语法中的标记,所述标记指示在所述动态网格的所述范围中使用所述帧间连接性预测;以及
基于所述参考网格帧的所述参考连接性信息,使用所述帧间连接性预测来预测与所述动态网格的所述范围内的网格部分相关联的所述当前连接性信息。
20.根据权利要求17所述的装置,其特征在于,所述处理电路被配置为:
基于索引或运动矢量中的至少一个,为所述当前网格帧中的当前编码单元确定所述参考网格帧中的参考编码单元;以及
使用所述帧间连接性预测,基于所述参考网格帧中的所述参考编码单元的所述参考连接性信息,确定所述当前网格帧中的所述当前编码单元的所述当前连接性信息。
CN202280008479.6A 2021-07-19 2022-07-13 用于动态网格压缩的方法和装置 Pending CN116635904A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163223431P 2021-07-19 2021-07-19
US63/223,431 2021-07-19
US17/862,066 2022-07-11
US17/862,066 US20230014820A1 (en) 2021-07-19 2022-07-11 Methods and apparatuses for dynamic mesh compression
PCT/US2022/073670 WO2023004241A1 (en) 2021-07-19 2022-07-13 Methods and apparatuses for dynamic mesh compression

Publications (1)

Publication Number Publication Date
CN116635904A true CN116635904A (zh) 2023-08-22

Family

ID=84891840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280008479.6A Pending CN116635904A (zh) 2021-07-19 2022-07-13 用于动态网格压缩的方法和装置

Country Status (6)

Country Link
US (1) US20230014820A1 (zh)
EP (1) EP4182890A1 (zh)
JP (1) JP2023547173A (zh)
KR (1) KR20230043929A (zh)
CN (1) CN116635904A (zh)
WO (1) WO2023004241A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4384813B2 (ja) * 1998-06-08 2009-12-16 マイクロソフト コーポレーション 時間依存ジオメトリの圧縮
US9734595B2 (en) * 2014-09-24 2017-08-15 University of Maribor Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US11109071B2 (en) * 2019-01-09 2021-08-31 Tencent America LLC Method and apparatus for dynamic point cloud partition packing
US11450030B2 (en) * 2019-09-24 2022-09-20 Apple Inc. Three-dimensional mesh compression using a video encoder
US20220164994A1 (en) * 2020-11-24 2022-05-26 Samsung Electronics Co., Ltd. Overlapped patches for mesh coding for video based point cloud compression

Also Published As

Publication number Publication date
US20230014820A1 (en) 2023-01-19
EP4182890A1 (en) 2023-05-24
JP2023547173A (ja) 2023-11-09
KR20230043929A (ko) 2023-03-31
WO2023004241A1 (en) 2023-01-26

Similar Documents

Publication Publication Date Title
US20230090436A1 (en) Hybrid coding order for point cloud coding
CN113519163B (zh) 点云压缩的方法、装置和存储介质
US20230063575A1 (en) Patch zippering for mesh compression
JP7476432B2 (ja) メッシュ復元のための方法、装置及びコンピュータプログラム
JP2024515984A (ja) メッシュ圧縮のための境界ジオメトリ情報の予測コーディング
US20230177738A1 (en) Dynamic mesh compression based on point cloud compression
US11924434B2 (en) 2D atlas adaptive sampling in 3D mesh compression
CN116711305A (zh) 用于解码器执行网格压缩的自适应采样方法和装置
CN115152225A (zh) 用于点云译码的方法和设备
US20230014820A1 (en) Methods and apparatuses for dynamic mesh compression
JP7504298B2 (ja) 3次元(3d)メッシュのuv座標を処理するための方法、装置及びコンピュータプログラム
US20230090677A1 (en) Coding connectivity in vertex reordering methods for mesh compression
US20230281876A1 (en) Mesh compression with constrained geometry dynamic range
CN117461054A (zh) 具有推导的纹理坐标的网格压缩
JP2024509988A (ja) チャートベースのメッシュ圧縮の方法、装置およびコンピュータプログラム
CN116324912A (zh) 用于网格压缩的顶点重新排列
KR20230118981A (ko) 비다양체 메시에서의 경계 루프의 검출
CN117083636A (zh) 用于网格压缩的边界几何信息的预测编码

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40093987

Country of ref document: HK