CN117980965A - 用于编码的网格表示的连接信息编码方法及装置 - Google Patents

用于编码的网格表示的连接信息编码方法及装置 Download PDF

Info

Publication number
CN117980965A
CN117980965A CN202280059929.4A CN202280059929A CN117980965A CN 117980965 A CN117980965 A CN 117980965A CN 202280059929 A CN202280059929 A CN 202280059929A CN 117980965 A CN117980965 A CN 117980965A
Authority
CN
China
Prior art keywords
face
connection information
vertex
idx
ordered
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
CN202280059929.4A
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.)
Innopeak Technology Inc
Original Assignee
Innopeak Technology Inc
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 Innopeak Technology Inc filed Critical Innopeak Technology Inc
Publication of CN117980965A publication Critical patent/CN117980965A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • 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/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开的系统和方法提供了解决与3D内容相关的技术挑战的方案,这些方案包括用于编码三维3D内容的计算机实现的方法,该方法包括:将3D内容处理成片段,每个片段包括代表3D内容的面和顶点索引的集合;处理每个片段,以对每个片段中的面和顶点索引的相应集合进行排序;分组3D内容的每个片段以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集;以及编码连接信息帧。

Description

用于编码的网格表示的连接信息编码方法及装置
相关申请的交叉引用
本申请要求于2021年9月10日提交的题为“CONNECTIVITY INFORMATION CODINGMETHOD AND APPARATUS FOR CODED MESH REPRESENTATION”的第63/243,019号美国临时申请的优先权,其公开内容全部通过引用并入本文。
背景技术
三维(3D)图形技术的发展已经导致3D图形结合在各种应用中。例如,3D图形被用于各种娱乐应用中,例如交互式3D环境或3D视频。交互式3D环境提供身临其境的六自由度表示,这为用户提供了改进的功能。此外,3D图形被用于各种工程应用,例如3D模拟和3D分析。进一步地,3D图形被用于各种制造和建筑应用,例如3D建模。由于3D图形技术的发展已经导致3D图形结合在各种应用中,这些发展也导致与处理(例如,编码、解码、压缩、解压缩)3D图形相关联的复杂性增加。国际标准化组织/国际电工委员会(ISO/IEC)的动态图像专家组(Motion Pictures Experts Group,MPEG)已经发布了关于3D图形的编码/解码和压缩/解压缩的标准。这些标准包括用于基于视频的点云压缩(Video-Based Point CloudCompression,V-PCC)的视觉化体积视频编码(Visual Volumetric Video-Based Coding,V3C)标准。
附图说明
根据一个或多个不同实施例,参考下面的附图详细描述本公开。附图仅用于说明的目的而提供,并且仅描述典型的或示例性的实施例。
图1A-图1B示出了根据本公开的各种实施例的与编码和解码连接信息(connectivity information)关联的各种示例。
图1C-图1D示出了根据本公开的各种实施例的与编码和解码连接信息关联的各种示例系统。
图1E-图1I示出了根据本公开的各种实施例的与编码和解码连接信息关联的各种示例。
图2A-图2B示出了根据本公开的各种实施例的与编码和解码连接信息关联的各种示例系统。
图3A-图3C示出了根据本公开的各种实施例的与编码和解码连接信息关联的各种示例流程。
图4示出了根据本公开的各种实施例的计算组件,该计算组件包括一个或多个硬件处理器和存储有机器可读/机器可执行指令集的机器可读存储介质,该机器可读/机器可执行指令集在被执行时,使得一个或多个硬件处理器执行用于编码和解码连接信息的说明性的方法。
图5示出了在其中可以实现本公开的各种实施例的示例计算系统的框图。
这些附图并不详尽,不将本公开限制于所公开的精确形式。
发明内容
本公开的各种实施例提供了计算机实现的方法,包括将所述3D内容处理成片段,每个片段包括代表3D内容的面和顶点索引的集合;处理每个片段,以对每个片段中的面和顶点索引的相应集合进行排序;分组3D内容的每个片段以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集;以及编码连接信息帧。
在该计算机实现的方法的一些实施例中,面的集合中的每个面与由排序的顶点索引指示的三个排序的顶点关联。
在该计算机实现的方法的一些实施例中,每个块被映射到连接信息帧的特定切片。
在该计算机实现的方法的一些实施例中,面按照降序排序,而对于每个面,顶点索引按照升序排序。
在该计算机实现的方法的一些实施例中,每个块包括被编码为像素的连接编码样本。
在该计算机实现的方法的一些实施例中,每个块包括连接编码样本,连接编码样本指示排序的顶点索引的差分值,其中,面是基于差分值而被编码的。
在该计算机实现的方法的一些实施例中,基于每个连接信息帧中的面的数量,连接信息帧与一个或多个分辨率关联。
在该计算机实现的方法的一些实施例中,编码连接信息帧是基于视频编码器的,视频编码器是在与编码的连接信息帧关联的序列参数集、图片参数集或补充增强信息中指示的。
本公开的各种实施例提供了编码器,包括至少一个处理器;以及存储有指令的存储器,该指令在被至少一个处理器执行时,使编码器执行:将3D内容处理成片段,每个片段包括代表3D内容的面和顶点索引的集合;处理每个片段,以对每个片段中的面和顶点索引的相应集合进行排序;分组所述3D内容的每个片段以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集;确定排序的顶点索引的差分值和基于用于编码连接信息帧的视频编码位深的常数值,其中,差分值被编码为块中的连接编码样本;以及编码连接信息帧。
在该编码器的一些实施例中,面的集合中的每个面与由排序的顶点索引指示的三个排序的顶点关联。
在该编码器的一些实施例中,每个块被映射到连接信息帧的特定切片。
在该编码器的一些实施例中,面按照降序排序,而对于每个面,顶点索引按照升序排序。
在该编码器的一些实施例中,每个块包括被编码为像素的连接编码样本。
在该编码器的一些实施例中,基于每个连接信息帧中的面的数量,连接信息帧与一个或多个分辨率关联。
本公开的各个实施例提供了包括指令的非暂态计算机可读存储介质,指令在被编码器的至少一个处理器执行时,使编码器执行:将3D内容处理成片段,每个片段包括代表3D内容的面和顶点索引的集合;处理每个片段,以对每个片段中的面和顶点索引的相应集合进行排序,以生成相应的面列表;分组3D内容的每个片段以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集;确定排序的顶点索引的差分值和基于用于编码所述连接信息帧的视频编码位深的常数值,其中,差分值被编码为块中的连接编码样本;以及编码连接信息帧。
在该非暂态计算机可读存储介质的一些实施例中,面的集合中的每个面与由排序的顶点索引指示的三个排序的顶点关联。
在该非暂态计算机可读存储介质的一些实施例中,每个块被映射到连接信息帧的特定切片。
在该非暂态计算机可读存储介质的一些实施例中,面按照降序排序,而对于每个面,顶点索引按照升序排序。
在该非暂态计算机可读存储介质的一些实施例中,每个块包括被编码为像素的连接编码样本。
在该非暂态计算机可读存储介质的一些实施例中,编码连接信息帧是基于视频编码器的,视频编码器是在与所述编码的连接信息帧关联的序列参数集、图片参数集或补充增强信息中指示的。
提及这些说明性的实施例不为限制或限定本公开,而是为了提供有助于理解本公开的示例。在具体实施方式中讨论了附加的实施例,并在具体实施方式中提供了进一步的描述。
具体实施方式
如上所述,3D图形技术被结合在各种应用中,例如娱乐应用、工程应用、制造应用和建筑应用。在这些不同的应用中,3D图形可用于生成具有难以置信的细节和复杂性的3D模型。考虑到3D模型的细节和复杂性,与3D模型关联的数据集可以非常大。此外,这些非常大的数据集可以例如通过互联网进行转移。因此,大数据集的转移,例如与详细和复杂的3D模型关联的数据集的转移,可能成为各种应用中的瓶颈。如本示例所示,3D图形技术的发展为各种应用提供了改进的实用性,但也带来了技术挑战。因此,对3D图形技术的改进代表了对应用3D图形技术的各种技术应用的改进。因此,需要技术改进来解决这些和其他与3D图形技术相关的技术问题。
因此,本公开提供了通过对3D图形的压缩/解压缩和编码/解码的改进方法来解决上述技术挑战的方案。在各种实施例中,通过将排序的网格连接信息分组到网格连接帧中,可以有效地编码3D网格内容中的连接信息。诸如3D图形的3D内容可以表示为网格(例如,3D网格内容)。网格可以包括描述3D内容的形状或拓扑的顶点、边和面。网格可以被分段成块(例如,片段、瓦片)。对于每个块,与每个面关联的顶点信息可以按顺序排列(例如,降序)。随着与每个面相关联的顶点信息按顺序排列,面按顺序排列(例如,升序)。每个块中的排序的面可以被分组到二维(2D)帧。对顶点信息进行排序可以保证顶点索引的递增顺序,有利于改进对网格的处理。在各种实施例中,3D网格内容中的连接信息可以被有效地分组到连接信息帧中,该连接信息帧被进一步划分为编码块。3D网格内容中的连接信息的分量可以从一维(1D)连接分量(例如,列表、面列表)转换为2D连接图像(例如,连接编码样本阵列)。通过将3D网格内容中的连接信息转换为2D连接图像,可以将视频编码处理应用于2D连接图像(例如,作为视频连接帧)。这样,通过利用视频编码方案,3D网格内容可以被有效地压缩和解压缩。根据这些方法编码的3D网格内容可以被有效地解码。可以从编码的动态网格比特流中提取连接分量,并将连接分量解码为帧(例如,图像)。提取了与帧中的像素对应的连接编码样本。可以根据提取的连接信息重建3D网格内容。因此,本公开提供了解决3D图形技术中出现的技术挑战的方案。在本文和待审的国际申请代理人案号No.75EP-356118-WO中进一步详细讨论了方案的各种特征,通过引用将其全部并入。
本文提供的各种实施例的描述可以包括下面列出的一个或多个术语。出于说明性的目的而非限制本公开,本文提供了这些术语的示例性描述。
网格:可以定义多面体对象的形状/拓扑的顶点、边和面的集合。面可以包括三角形(例如,三角形网格)。
动态网格:具有随时间变化的各种可能的分量(例如,连接、几何图形、映射、顶点属性和属性映射)中的至少一个的网格。
动画网格:具有恒定连接的动态网格。
连接:描述如何连接网格顶点以创建3D表面的一组顶点索引(例如,几何图形和所有属性可以共享相同的唯一连接信息)。
几何图形:描述与网格顶点关联的位置的一组顶点3D(例如,x、y、z)坐标。表示位置的坐标(例如,x、y、z)可以具有有限的精度和动态范围。
映射:描述如何将网格表面映射到平面的2D区域。这种映射可以由与网格顶点关联的一组UV参数/纹理(例如,映射)坐标连同连接信息来描述。
顶点属性:与网格顶点关联的向量属性值的标量。
属性映射:与网格表面关联且存储为2D图像/视频的属性。视频(例如,参数空间)和表面之间的映射可以由映射信息来定义。
顶点:带有其他信息的位置(例如,在3D空间中),其他信息例如为颜色、法向量和纹理坐标。
边:两个顶点之间的连接。
面:一组封闭的边,其中三角形面具有由三个顶点定义的三个边。面的方向可以使用“右手”坐标系来确定。
表面:将三维对象与环境分开的面的集合。
连接编码单元(CCU):携带连接信息的大小为N×N个连接编码样本的方形单元。
连接编码样本:连接信息的编码元素,连接信息被计算为当前面和预测面之间的元素差。
块:网格片段作为连接编码样本的集合的表示,表示为三个属性通道。块可以由CCU组成。
每点比特(bits per point,bpp):描述网格中的一个点可能需要的以比特形式的信息量。
在详细描述本公开的各种实施例之前,描述对网格的连接信息进行编码的示例性方法可能是有帮助的。图1A-图1B示出了根据本公开的各种实施例的与编码和解码三角形网格的连接信息关联的各种示例。编码3D内容的各种方法包括使用三角形网格来表示3D内容。三角形网格提供被表示的3D内容的形状和拓扑。在编码和解码3D内容的各种方法中,以确定的、螺旋状方式从初始面(例如,初始角处的三角形)开始遍历三角形网格。初始面可以位于栈的顶部或位于3D内容中的随机角落。通过以确定的、螺旋状的方式遍历三角形网格,可以根据五种可能的情况(例如,“C”、“L”、“E”、“R”、“S”)之一来标记每个三角形。对三角形网格的编码可以基于遍历三角形网格时遇到这些情况的顺序来执行。
图1A示出了根据本公开的各种实施例的三角形网格的连接信息的顶点符号编码的示例100。顶点符号编码与对三角形网格的遍历可能遇到的情况对应。情况“C”102a是这样的情况,其中被访问面(例如,被访问的三角形)具有对该被访问面、左相邻面和右相邻面共用的顶点,并且该顶点先前在三角形网格的遍历中还没有被访问过。因为该顶点先前没有被访问过,所以左相邻面和右相邻面之前也没有被访问过。换句话说,在情况“C”102a下,该顶点以及邻近该被访问面的面先前没有被访问过。在情况“L”102b、情况“E”102c、情况“R”102d和情况“S”102e中,对被访问面、左相邻面和右相邻面共用的顶点先前已经被访问过。这些情况,即情况“L”102b、情况“E”102c、情况“R”102d和情况“S”102e,描述了与先前已经访问过的顶点关联的不同的可能情况。在情况“L”102b下,被访问面的左相邻面先前已经被访问过,而被访问面的右相邻面先前没有被访问过。在情况“E”102c下,被访问面的左相邻面和被访问面的右相邻面先前已经被访问过。在情况“R”102d下,被访问面的左相邻面先前没有被访问过,而被访问面的右相邻面先前已经被访问过。在情况“S”102e下,被访问面的左相邻面和被访问面的右相邻面没有被访问过。情况“S”102e与情况“C”102a的不同之处在于,在情况“S”102e中,对被访问面、左相邻面和右相邻面共用的顶点先前已经被访问过。这可以指示与被访问面相对的面可能先前被访问过。
如上所述,对三角形网格的遍历会遇到这五种可能的情况。对连接信息的顶点符号编码可以基于在遍历三角形网格时遇到的情况。因此,当对三角形网格的遍历遇到与情况“C”102a对应的面时,则可以将该面的连接信息编码为“C”。类似地,当对三角形网格的遍历遇到与情况“L”102b、情况“E”102c、情况“R”102d或情况“S”102e对应的面时,则可以将该面的连接信息相应地编码为“L”、“E”、“R”或“S”。
图1B示出了根据本公开的各种实施例的基于在图1A中示出的顶点符号编码的连接数据的示例110。在图1B中示出的示例中,对三角形网格的遍历可以从初始面112开始。由于对三角形网格的遍历刚刚开始,初始面112与图1A中的情况“C”102a对应。按照图1B中所示的箭头继续对三角形网格的遍历。在对三角形网格的遍历中遇到的下一个面与图1A中的情况“C”102a对应。继续遍历,遇到与图1A中的情况“R”102d对应的面,然后遇到与图1A中的情况“R”102d对应的另一个面,然后遇到与图1A中的情况“R”102d对应的另一个面,然后遇到与图1A中的情况“S”102e对应的面114。在与图1A中的情况“S”102e对应的面114处,对三角形网格的遍历跟随沿着左相邻面和右相邻面的两条路径,如图1B所示。通常,对三角形网格的遍历在返回跟随沿着左相邻面的路径之前跟随沿着右相邻面的路径。因此,如图1B所示,遍历首先跟随沿着右相邻面的路径,分别遇到与图1A中的情况“L”102b、情况“C”102a、情况“R”102d和情况“S”102e对应的面。由于已经遇到过与图1A中的情况“S”102e对应的另一个面,因此对三角形网格的遍历跟随沿左相邻面和右相邻面的两条路径。再次,对三角形网格的遍历首先跟随沿着右相邻面的路径,其在与图1A中的情况“E”102c对应的面终止。对沿着左相邻面的路径的遍历分别遇到与图1A中的情况“R”102d和情况“R”102d对应的面,并在与图1A中的情况“E”102c对应的面终止。返回到面114,然后跟随沿着左相邻面的路径,对三角形网格的遍历分别遇到与图1A中的情况“L”102b、情况“C”102a、情况“R”102d、情况“R”102d、情况“R”102d、情况“C”102a、情况“R”102d、情况“R”102d、情况“R”102d和最后的情况“E”102c对应的面。跟随沿着左相邻面的路径对三角形网格的遍历在与图1A中的情况“E”102c的对应的面终止。这样,图1B中所示的对三角形网格的遍历是以确定的、螺旋状的方式进行的。根据三角形网格被遍历的顺序,三角形网格的连接数据的编码结果提供了编码“CCRRRSLCRSERRELCRRRCRRRE”。Jarek Rossignac.1999.Edgebreaker:ConnectivityCompression for Triangle Meshes.IEEE Transactions on Visualization andComputer Graphics 5,1(January 1999),47–61.https://doi.org/10.1109/2945.764870中提供了关于顶点符号编码和对三角形网格的遍历的更多信息,其通过引用并入本文。
在图1A-图1B中示出的编码3D内容的各种方法中,以确定的、螺旋状的方式遍历三角形网格确保每个面(除了初始面之外)靠近已经编码的面。这使得能够有效压缩顶点坐标和与每个面关联的其他属性。可以使用各种预测算法,例如平行四边形预测,从相邻面预测诸如顶点的坐标和法线的属性。这使得能够使用预测值和原始值之间的差异来进行有效压缩。通过使用“C”、“L”、“E”、“R”和“S”配置符号对面的每个顶点进行编码,可以通过将三角形网格的网格连接编码为三角形网格的面被编码的序列来最小化用于重建三角形网格的信息。然而,虽然这些编码3D内容的各种方法提供了对连接信息的有效编码,但是可以进一步改进这些各种方法,如本文所进一步描述的。
图1C-图1D示出了根据本公开的各种实施例的与编码和解码网格的连接信息关联的示例系统。在编码3D内容的各种方法中,使用点云编码框架(例如,V-PCC点云编码框架)对网格信息进行编码,并进行修改以编码连接信息和可选的关联属性图。在点云编码框架中,对网格信息进行编码涉及使用默认的小片生成和分组操作。点被分段成规则小片(patch),而未被分段成规则小片(例如,未由默认小片生成过程处理)的点被分组到原始小片。在一些情况下,这可能导致重建顶点的顺序(例如,来自解码网格信息)不同于输入网格信息中的顺序(例如,来自编码网格信息)。为了解决这个潜在的问题,在编码连接信息之前,可以更新顶点索引以遵循重建顶点的顺序。
根据上述遍历方法对更新的顶点索引进行编码。在编码3D内容的各种方法中,连接信息是按照更新的顶点索引的遍历顺序进行无损编码的。由于更新的顶点索引的顺序与输入网格信息的顺序不同,更新的顶点索引的遍历顺序与连接信息一起被编码。更新的顶点索引的遍历顺序可以被称为重排序信息或顶点映射。重排序信息或顶点映射可以根据各种编码方法例如差分编码或熵编码进行编码。编码的重新排序信息或编码的顶点映射可以与从更新的顶点索引中导出的编码的连接信息一起添加到编码的比特流中。可以对得到的编码的比特流进行解码,并且可以从中提取编码的连接信息和编码的顶点映射。将顶点映射应用于连接信息,以使连接信息和重建的顶点对齐。
图1C示出了根据本公开的各种实施例的用于解码网格的连接信息的示例系统120。如上所述,示例系统120可以解码包括编码的连接信息和编码的顶点映射的编码的比特流。如图1C所示,压缩的比特流(例如,编码的比特流)被解复用器接收。解复用器可以将压缩的比特流分离成各种子流,包括属性子流、几何子流、占用映射子流、小片子流、连接子流和顶点映射子流。对于连接子流(例如,包含编码的连接信息)和顶点映射子流(例如,包含编码的顶点映射),连接子流由连接解码器120处理,顶点映射子流由顶点映射解码器122处理。连接解码器120可以解码连接子流中的编码的连接信息,以导出网格的连接信息。顶点映射解码器122可以解码顶点映射子流中的编码的顶点映射。如上所述,由连接解码器120导出的网格的连接信息是基于重新排序的顶点索引。因此,来自连接解码器120的连接信息和来自顶点映射解码器122的顶点映射用于更新连接信息中的顶点索引124。连接信息和更新的顶点索引可以用来从压缩的比特流中重建网格。类似地,顶点映射也可以应用于重建的几何属性和颜色属性,以将它们与连接信息对齐。
在一些编码3D内容的方法中,顶点映射不是单独编码的。在这种方法中(例如,每顶点颜色),连接信息在网格编码中以绝对值和关联的顶点索引来表示。使用例如熵编码顺序编码连接信息。图1D示出了根据本公开的各种实施例的用于解码其中的顶点映射没有被单独编码的网格的连接信息的示例系统130。如图1D所示,压缩的比特流(例如,编码的比特流)被解复用器接收。解复用器可以将压缩的比特流分离成各种子流,包括属性子流、几何子流、占用映射子流、小片子流和连接子流。由于在压缩的比特流中没有编码的顶点映射,因此解复用器不产生顶点映射子流。连接子流(例如,包含具有关联的顶点索引的连接信息)由连接解码器132处理。连接解码器132对编码的连接信息进行解码,以导出网格的连接信息和关联的顶点索引。由于连接信息已经与其各自的顶点索引关联,所以示例系统130不更新连接信息的顶点索引。因此,来自连接解码器132的连接信息用于从压缩的比特流中重建网格。
如图1C-图1D所示,在编码3D内容的一些方法(例如,每顶点颜色)中将连接信息与各自的顶点索引关联,提供了与使用顶点映射的编码3D内容的其他方法相比简化的处理。然而,这种简化处理伴随着对于信息编码的有限灵活性和效率的折衷。由于连接信息和顶点索引是混合的,编码时熵会显著增加。此外,连接信息使用唯一的顶点索引组合方法来表示网格的地形,这增加了数据的大小。例如,连接信息的数据大小可以是每个索引大约16比特到20比特,这意味着面由大约48比特到60比特表示。使用每顶点颜色方法的网格内容中的信息的典型数据速率可以是170bpp,其中60bpp分配给连接信息。因此,尽管这些编码3D内容的各种方法在简单性和数据大小之间提供了折衷,这些各种方法可以在简单性和数据大小方面进一步改进,如本文进一步描述的。
图1E-图1I示出了根据本公开的各种实施例的与编码和解码网格的连接信息关联的示例。在编码3D内容的各种方法中,连接信息被编码在网格帧中。例如,如上所述,在每顶点颜色方法中,连接信息存储在具有关联的顶点索引的网格帧中。图1E示出了根据本公开的各种实施例的与每顶点颜色方法关联的示例网格帧140。如图1E所示,几何信息和属性信息142可以作为顶点坐标信息的有序列表存储在网格帧中。每个顶点坐标与相应的几何信息和属性信息一起存储。连接信息144可以作为面信息的有序列表存储在网格帧中,每个面包括相应的顶点索引和纹理索引。
图1F示出了根据本公开的各种实施例的与每顶点颜色方法和相应的3D内容154关联的网格帧152a、152b的示例150。如网格帧152a所示,几何信息和属性信息以及连接信息被存储在网格帧中,其中几何信息和属性信息存储为顶点坐标信息的有序列表,连接信息存储为具有相应顶点索引和纹理索引的面信息的有序列表。网格帧152a中示出的几何信息和属性信息包括四个顶点。顶点的位置由X、Y、Z坐标指示,颜色属性由R、G、B值指示。网格帧152a中所示的连接信息包括三个面。每个面包括在几何信息和属性信息中列出的、用于形成三角形面的三个顶点索引。如与网格帧152a相同的网格帧152b所示,通过使用每个对应面的顶点索引来指向为每个顶点坐标存储的几何信息和属性信息,可以基于网格帧152a、152b对3D内容154(例如,3D三角形)进行解码。
图1G示出了根据本公开的各种实施例的与使用顶点映射的3D编码方法关联的示例网格帧160。如图1G所示,几何信息162可以作为顶点坐标信息的有序列表存储在网格帧中。每个顶点坐标与相应的几何信息一起存储。属性信息164可以作为投影顶点属性坐标信息的有序列表存储在网格帧中,且与几何信息162是分开的。投影顶点属性坐标信息存储为具有相应的属性信息的2D坐标信息。连接信息166可以作为面信息的有序列表存储在网格帧中,其中每个面包括相应的顶点索引和纹理索引。
图1H示出了根据本公开的各种实施例的与使用顶点映射的3D编码方法关联的网格帧172、相应的3D内容174和相应的顶点映射176的示例170。如图1H所示,几何信息、映射信息(例如,属性信息)和连接信息存储在网格帧172中。网格帧172中示出的几何信息包括四个顶点。顶点的位置由X,Y,Z坐标指示。在网格帧172中示出的映射信息包括五个纹理顶点。纹理顶点的位置由U、V坐标指示。网格帧172中的连接信息包括三个面。每个面包括三对顶点索引和纹理顶点坐标。如图1H所示,通过对每个面使用顶点索引和纹理顶点坐标对,可以基于网格帧172解码3D内容174(例如,3D三角形)和顶点映射176。与顶点映射176关联的属性信息可以应用于3D内容174,以将属性信息应用于3D内容174。
图1I示出了根据本公开的各种实施例的与在各种3D编码方法中确定面方向关联的示例180。如图1I所示,面的方向可以使用右手坐标系来确定。示例180中所示的每个面包括三个顶点,形成三个边。每个面由三个顶点来描述。在流形网格182中,每个边最多属于两个不同的面。在非流形网格184中,边可以属于两个或更多个不同的面。在流形网格182和非流形网格184两种情况下,均可以应用右手坐标系来确定面的面方向。
将动态网格的编码的比特流表示为分量的集合,其由网格比特流头部和数据载荷组成。网格比特流头部由序列参数集、图片参数集、适配参数、瓦片信息参数和补充增强信息等组成。网格比特流载荷由编码的图集信息分量、编码的属性信息分量、编码的几何(位置)信息分量、编码的映射信息分量和编码的连接信息分量组成。
图2A示出了根据本公开的各种实施例的用于网格编码的示例编码器系统200。如图2A所示,可以将未压缩的网格帧序列202输入到编码器系统200,示例编码器系统200可以基于未压缩的网格帧序列202生成编码的网格帧序列224。通常,网格帧序列由多个网格帧组成。网格帧是一种数据格式,该数据格式将数字表示中的3D内容(例如,3D对象)描述为几何信息、连接信息、属性信息和属性映射信息的集合。每个网格帧由呈现时间和持续时间来表征。网格帧序列(例如,一系列网格帧)形成动态网格视频。
如图2A所示,编码器系统200可以基于未压缩的网格帧序列202生成编码的网格序列信息206。编码的网格序列信息206可以包括诸如序列参数集(SPS)、图片参数集(PPS)和补充增强信息(SEI)的图像头部信息。网格比特流头部可以包括编码的网格序列信息206。未压缩的网格帧序列202可以被输入到网格分段204。网格分段204将未压缩的网格帧序列202分段成块数据和分段的网格数据。网格比特流载荷可以包括块数据和分段的网格数据。多路复用器222可以将网格比特流头部和网格比特流载荷多路复用在一起,以生成编码的网格帧序列224。编码器系统200可以基于块数据生成块分段信息208(例如,图集信息(altas information))。基于分段的网格数据,编码器系统200可以生成属性图像组成210、几何图像组成212、连接图像组成214和映射图像组成216。如图2A所示,连接图像组成和映射图像组成216也可以是基于块分段信息208。作为所生成信息的示例,块分段信息208可以包括二进制图集信息。属性图像组成210可以包括RGB和YUV分量信息(例如,RGB 4:4:4,YUV4:2:0)。几何图像组成212可以包括XYZ顶点信息(例如,XYZ 4:4:4,XYZ 4:2:0)。连接图像组成214可以包括顶点索引和纹理顶点信息(例如,dv0、dv1、dv2 4:4:4)。这可以表示为排序的顶点之间的差,如下文进一步描述的。映射图像组成216可以包括纹理顶点信息(例如,UV 4:4:X)。可以将块分段信息208提供给二进制熵编码器218以生成图集组成。二进制熵编码器218可以是无损编码器。可以将属性图像组成210提供给视频编码器220a以生成属性组成。视频编码器220a可以是有损编码器。可以将几何图像组成212提供给视频编码器220b以生成几何组成。视频编码器220b可以是有损的。可以将连接图像组成提供给视频编码器220c以生成连接组成。视频编码器220c可以是无损的。可以将映射图像组成216提供给视频编码器220d以生成映射组成。视频编码器220d可以是无损的。网格比特流载荷可以包括图集组成、属性组成、几何组成、连接组成和映射组成。多路复用器222将网格比特流载荷和网格比特流头部多路复用在一起,以生成编码的网格帧序列224。
通常,将用于动态网格(例如,网格帧序列)的编码的比特流表示为分量的集合,其由网格比特流头部和数据载荷(例如,网格比特流载荷)组成。网格比特流头部包括序列参数集、图片参数集、适配参数、瓦片信息参数和补充增强信息等。网格比特流载荷可以包括编码的图集信息分量、编码的属性信息分量、编码的几何(位置)信息分量、编码的映射信息分量和编码的连接信息分量。
图2B示出了根据本公开的各种实施例的用于生成具有每顶点颜色编码的编码的网格的示例流水线250。如流水线250所示,可以将网格帧252提供给网格分段处理254。网格帧252可以包括几何信息、连接信息和属性信息。网格帧252可以是具有相应的属性信息和连接信息的顶点坐标的有序列表。例如,网状帧252可以包括:
v_idx_0:v(x,y,z,a_1,a_2,a_3)
v_idx_1:v(x,y,z,a_1,a_2,a_3)
f_idx_0:f(v_idx_1,v_idx_2,v_idx_3)
f_idx_1:f(v_idx_1,v_idx_2,v_idx_3)
其中,v_idx_0、v_idx_1、v_idx_2和v_idx_3是顶点索引,x、y和z是顶点坐标,a_1、a_2和a_3是属性信息,f_idx_0和f_idx_1是面。网格由阵列形式的顶点表示。顶点的索引(例如,顶点索引)是阵列内元素的索引。网格分段处理254可以是非规范性的。在网格分段处理254之后是网格块分组256。本文,块可以是属于网格中特定片段的顶点的集合。每个块可以通过相对于网格原点的块偏移、块宽度和块高度来表征。块中顶点的3D几何坐标可以在本地坐标系中表示,该本地坐标系可以是相对于网格原点的差分坐标系。在网格块分组256之后,将连接信息258提供给连接信息编码264。将位置信息260提供给位置信息编码266。将属性信息262提供给属性信息编码268。连接信息258可以包括针对每个块的、具有相应的顶点索引和纹理索引的面信息的有序列表。例如,连接信息258可以包括:
Block_1:f_idx_0:f(v_idx_1,v_idx_2,v_idx_3)
Block_1:f_idx_1:f(v_idx_1,v_idx_2,v_idx_3)
Block_1:f_idx_n:f(v_idx_1,v_idx_2,v_idx_3)
Block_2:f_idx_0:f(v_idx_1,v_idx_2,v_idx_3)
Block_2:f_idx_1:f(v_idx_1,v_idx_2,v_idx_3)
Block_2:f_idx_n:f(v_idx_1,v_idx_2,v_idx_3)
其中,Block_1和Block_2是网格块,f_idx_0、f_idx_1和f_idx_n是面,v_idx_1、v_idx_2和v_idx_3是顶点索引。位置信息260可以包括针对每个块的、具有相应的顶点索引坐标的顶点位置信息的有序列表。例如,位置信息260可以包括:
Block_1:v_idx_0:v(x_l,y_l,z_l)
Block_1:v_idx_1:v(x_l,y_l,z_l)
Block_1:v_idx_i:v(x_l,y_l,z_l)
Block_2:v_idx_0:v(x_l,y_l,z_l)
Block_2:v_idx_1:v(x_l,y_l,z_l)
Block_2:v_idx_i:v(x_l,y_l,z_l)
其中,Block_1和Block_2是网格块,v_idx_0、v_idx_1和v_idx_i是顶点索引,x_l、y_l和z_l是顶点位置信息。属性信息262可以包括针对每个块的、具有相应的顶点索引属性的顶点属性信息的有序列表。例如,属性信息262可以包括:
Block_1:v_idx_0:v(R,G,B)/v(Y,U,V)
Block_1:v_idx_1:v(R,G,B)/v(Y,U,V)
Block_1:v_idx_i:v(R,G,B)/v(Y,U,V)
Block_2:v_idx_0:v(R,G,B)/v(Y,U,V)
Block_2:v_idx_1:v(R,G,B)/v(Y,U,V)
Block_2:v_idx_i:v(R,G,B)/v(Y,U,V)
其中,Block_1和Block_2是网格块,v_idx_0、v_idx_1和v_idx_i是顶点索引,R、G、B是红色分量、绿色分量和蓝色分量,Y、U、V是亮度分量和色度分量。在向连接信息编码264提供连接信息258、向位置信息编码266提供位置信息260以及向属性信息编码268提供属性信息262之后,将多路复用编码的信息以生成多路复用的网格编码的比特流270。
为了处理网格帧,对全局网格帧应用分段处理,所有信息以三维块的形式编码,而每个块具有本地坐标系。将块的本地坐标系转换为网格帧的全局坐标系所需的信息携带在编码的网格比特流的块辅助信息分量(图集分量)中。
在深入研究本公开的各种实施例的细节之前,描述根据本公开的各种实施例的用于有效编码网格内容中的连接信息的示例方法的概述可能是有帮助的。示例方法可以包括四个阶段。为了说明性的目的,本文提供的示例包括以具有索引j的块分组的顶点和具有索引k的连接编码单元(CCU)。
在示例方法的第一阶段,网格分段可以创建表示各个对象或各个关注区域的网格内容的片段或块、体积瓦片、语义块等。
在示例方法的第二阶段,面排序和正规化(normalization)可以提供网格或片段内的数据操作处理,其中首先以使得对于具有索引i的面,关联的顶点以降序排列的方式处理每个面。
在示例方法的第三阶段,用于连接信息编码的视频帧的组成可以提供将网格帧(例如,面列表)的一维连接分量转换为二维连接图像(例如,连接编码样本阵列)的处理。
在示例方法的第四阶段,编码可以提供这样的处理,在该处理中由视频编码器对分组的连接信息帧或序列进行编码,该视频编码器是在SPS/PPS或诸如SEI信息的外部方法中指示。
图3A示出了根据本公开的各种实施例的用于网格连接信息的示例顶点重排序处理300。在各种实施例中,示例顶点重排序处理300可以与上述示例方法的第二阶段关联。如图3A所示,示例顶点重排序处理300在步骤302以网格帧连接信息开始。在步骤304,选择面i,选择了具有索引i的面。例如,所选择的面可以描述为:
f[i]:(v_idx[i,0],v_idx[i,1],v_idx[i,2])
其中,f[i]是面i,v_idx[i,0]、v_idx[i,1]和v_idx[i,2]是与面i关联的顶点索引。在步骤306,确定顶点索引是否被排序。例如,步骤306可以通过以下方式确定:
v_idx[i,0]<v_idx[i,1]
其中,v_idx[i,0]和v_idx[i,1]是与面i关联的顶点索引。如果在步骤306中确定为是,则在步骤308,确定后续顶点索引是否被排序。例如,步骤308可以通过以下方式确定:
v_idx[i,1]<v_idx[i,2]
其中,v_idx[i,1]和v_idx[i,2]是与面i关联的顶点索引。如果在步骤306中确定为否,则在步骤310,确定下一个顶点索引是否相对于在步骤306评估的那些顶点索引而被排序。例如,步骤310可以通过以下方式确定:
v_idx[i,0]<v_idx[i,2]
其中,v_idx[i,0]和v_idx[i,2]是与面i关联的顶点索引。基于在步骤308和步骤310中做出的确定,可以相应地重新排序面顶点索引。如果在步骤308中的确定为否,则在步骤312,相应地重新排序面顶点索引。例如,可以通过以下方式执行步骤312:
f[i]:(v_idx[i,1],v_idx[i,2],v_idx[i,0])
其中,f[i]是面i,v_idx[i,0]、v_idx[i,1]和v_idx[i,2]是与面i关联的顶点索引。如果在步骤308或步骤310处的确定为是,则在步骤312,相应地重新排序面顶点索引。例如,可以通过以下方式执行步骤314:
f[i]:(v_idx[i,2],v_idx[i,0],v_idx[i,1])
其中,f[i]是面i,v_idx[i,0]、v_idx[i,1]和v_idx[i,2]是与面i关联的顶点索引。如果在步骤310中的确定为否,则在步骤316,不重新排序面顶点索引。例如,步骤316可以通过保持下式来执行:
f[i]:(v_idx[i,0],v_idx[i,1],v_idx[i,2])
其中,f[i]是面i,v_idx[i,0]、v_idx[i,1]和v_idx[i,2]是与面i关联的顶点索引。在步骤318,在来自网格帧连接信息302的所有面已经被排序之后,可以将帧分割成块和连接编码单元(CCU)。在步骤320,执行对已处理的连接信息的编码。
在各种实施例中,面排序和正规化可以涉及顶点旋转。如上所述,在面排序和正规化中,面的顶点可以按降序排列:
v_idx[i,0]>v_idx[i,1]||v_idx[i,0]>v_idx[i,2]
其中,v_idx[i,0]、v_idx[i,1]和v_idx[i,2]是与面i关联的顶点索引。顶点可以由顶点索引的2D阵列表示:
v_idx[i,w]
其中,v_idx[i,w]是与面i以及面内的索引w关联的顶点索引。顶点旋转可以实现顶点索引排列,同时保持面的法线朝向与原始面相同的方向。如上所述,面的法线可以由右手规则或右手坐标系来确定。例如,有效的旋转可以包括:
f[i](0,1,2)=f[i](1,2,0)
f[i](0,1,2)=f[i](2,0,1)
其中,f[i](0,1,2)、f[i](1,2,0)和f[i](2,0,1)是具有顶点索引0、1和2的面。作为无效旋转的示例:
f[i](0,1,2)≠f[i](0,2,1)
f[i](0,1,2)≠f[i](1,0,2)
f[i](0,1,2)≠f[i](2,1,0)
其中,f[i](0,1,2)、f[i](1,2,0)和f[i](2,0,1)是具有顶点索引为0、1和2的面。可以按升序对面进行排序,从而保证第一面的第一顶点索引小于或等于第二面的第一索引:
v_idx[i,0]>v_idx[i-1,0]if v_idx[i,0]==v_idx[i-1,0]
其中,v_idx[i,0]是与面i关联的顶点索引,v_idx[i-1,0]是与面i之前的面关联的顶点索引。然后对面进行排序,使得:
v_idx[i,1]>v_idx[i-1,1]if v_idx[i,1]==v_idx[i-1,1]
其中,v_idx[i,1]是与面i关联的顶点索引,v_idx[i-1,1]是与面i之前的面关联的顶点索引。然后可以对面进行排序,使得:
v_idx[i,2]>v_idx[i-1,2]
其中,v_idx[i,2]是与面i关联的顶点索引,v_idx[i-1,2]是与面i之前的面关联的顶点索引。这样,所有面的顶点索引可以按降序排序,并且所有面可以按升序排序,而不会损害存储在其中的信息。
图3B示出了根据本公开的各种实施例的连接视频帧的示例330。在各种实施例中,示例330可以与上述示例方法的第三阶段关联。在用于连接信息编码的视频帧的组成中,可以将网格帧的一维(1D)连接分量(例如,面列表)转换成二维(2D)连接图像(例如,连接编码样本阵列)。在2D连接图像中,原始顶点列表(例如,v_idx[i,w])中的每个顶点索引可以由排序的顶点索引列表(例如,v_idx_s[j,i,w])中的排序的顶点索引来表示。在2D连接图像中,块j的每个面(例如,f[j,i])可以由三个排序的顶点(例如,v_idx_s[j,i,0],v_idx_s[j,i,1],v_idx_s[j,i,2])来定义。
可以基于可被称为分组的变换处理将网格帧的1D连接分量(例如,面列表、网格连接分量帧)转换成2D连接图像(例如,视频连接帧)。通过将1D连接分量分组到2D连接图像中,可以利用视频编码器进行连接信息编码。视频连接帧的分辨率,例如宽度和高度,可以由网格帧中面的总数来定义。每个面信息可以由3个顶点索引来表示,该顶点索引可以被转换成连接编码单元(CCU)并映射到视频帧的像素。网格编码器可以选择连接视频分辨率,以组成合适的视频帧。例如,连接信息分组策略可以生成纵横比接近1:1的视频帧(例如,2D图像),其约束是保持视频帧的分辨率是32、64、128或256个样本的倍数。这种连接信息分组策略将生成合适的视频帧,其可以利用各种视频编码方案进行编码。
作为分组处理的一部分,属于相同块的面首先被分组。块可以被映射到视频连接帧的特定切片。这样做可以促进网格帧的空间随机存取和部分重建。视频连接帧中的每个块可以由索引(例如,j)来表示。连接视频帧中的像素可以被称为连接编码样本(例如,f_c[j,i])。连接编码样本可以由表示一个面顶点索引(例如,v{idx[j,i])和另一个面顶点索引(例如,v_idx[j,i-1])之间的差分值的元素组成。例如,
f_c[j,i]=f[j,i]-f[j,i-1]
其中,f_c[j,i]是连接编码样本,f[j,i]和f[j,i-1]是顶点索引的值。连接编码样本可以包括三个分量(例如,差分值)。例如,
f_c[j,i]:(dv_idx[j,i,0]-C,dv_idx[j,i,1]-C,dv_idx[j,i,2]-C)
其中,f_c[j,i]是连接编码样本,dv_idx[j,i,0]、dv_idx[j,i,1]和dv_idx[j,i,0]是两个顶点的顶点索引的差分值,C是基于视频编码器位深的常数值。通常,dv_idx[j,i,w]可以表示两个顶点的顶点索引的差分值。v_idx_s[j,i,w]可以表示三维(3D)阵列,该三维阵列表示网格帧的块j中的连接分量的顶点v_idx[i,w]。可以依赖于视频编码器位深的常数值C可以被定义为:
C=(2^bitDepth-1)>>1
其中,bitDepth是视频编码器位深。由此,构成连接编码样本的顶点索引的差分值可以是:
dv_idx[j,i,0]=C+(v_idx_s[j,i,0]-v_idx_s[j,i-1,0])
dv_idx[j,i,1]=C+(v_idx_s[j,i,1]-v_idx_s[j,i-1,1])
dv_idx[j,i,2]=C+(v_idx_s[j,i,2]-v_idx_s[j,i-1,2])
其中,dv_idx[j,i,0]、dv_idx[j,i,1]和dv_idx[j,i,2]是顶点索引的差分值,v_idx_s[j,i,0]、v_idx_s[j,i,1]、v_idx_s[j,i,2]、v_idx_s[j,i-1,0]、v_idx_s[j,i-1,1]和v_idx_s[j,i-1,2]是表示顶点的3D阵列,C是与视频编码器位深对应的常数。在各种实施例中,可以在块信息的数据集中发信令通知关于块中顶点数量的信息。所执行的分组可以按光栅扫描顺序。
如图3B所示,连接视频帧332a可以具有连接视频帧原点[0,0]322b。连接视频帧332a可以具有连接视频帧宽度332c和连接视频高度332d。如上所述,可以将连接分量分组成连接视频帧322a内的块。在连接视频帧322a中,块BLK[j]334包括几个连接编码样本338a和338b。连接视频帧332a中的块BLK[j]334原点(例如,原点样本索引)可以导出为:
BLK[j]Y=∑N[j]÷ccf_width
BLK[j]X=∑N[j]%ccf_height
其中,BLK[j]Y和BLK[j]X分别是BLK[j]334原点的垂直坐标和水平坐标。N[j]是BLK[j]334中的连接编码样本的数量,ccf_width和ccf_height分别是连接视频帧332a的宽度和高度。如块BLK[j+1]336所示,根据连接编码样本分组顺序340(例如,光栅扫描顺序)来分组连接编码样本。
图3C示出了根据本公开的各种实施例的与连接信息编码关联的示例工作流350。出于说明性的目的,示例工作流350可以说明用于编码3D内容的完整工作流的示例。如图3C所示,在步骤352,工作流350从连接信息编码开始。在步骤354,接收网格帧i。例如,可以从接收器或其他输入设备接收网格帧。在步骤356,预处理连接帧中的顶点。预处理可以例如通过以下方式执行:
1.通过旋转面i内的顶点索引进行排序使得
v_idx[i,0]>v_idx[i,1]||v_idx[i,0]>v_idx[i,2]
2.对所有面[0…L-1]进行排序使得
v_idx[i,0]>v_idx[i-1,0]
对于面f(0,1,2)
有效的旋转是:(1,2,0),(2,0,1)
无效的旋转是:(0,2,1),(1,0,2),(2,1,0)
其中,v_idx[i,0]、v_idx[i-1,0]、v_idx[i,1]和v_idx[i,2]是顶点索引,face f(0,1,2)是面。在步骤358,将网格帧i分段成块。例如,可以将网格帧i分段成块[0…J-1]。在步骤360,将连接信息分段成块。步骤360可以包括将2D顶点列表转换成3D顶点列表。例如,可以通过以下方式执行步骤360:
v_idx[i,0]=v_idx[j,i,0]
v_idx[i,1]=v_idx[j,i,1]
v_idx[i,2]=v_idx[j,i,2]
其中,v_idx[i,0]、v_idx[j,i,0]、v_idx[i,1]、v_idx[j,i,1]、v_idx[i,2]、v_idx[j,i,2]是顶点索引。在步骤362,按光栅扫描顺序排列连接编码样本。例如,可以通过以下方式执行步骤362:
f_c[j,i]:
dv_idx[j,i,0]=C+v_idx_s[j,i,0]-v_idx_s[j,i-1,0]
dv_idx[j,i,1]=C+v_idx_s[j,i,1]-v_idx_s[j,i-1,1]
dv_idx[j,i,2]=C+v_idx_s[j,i,2]-v_idx_s[j,i-1,2]
并且
dv_idx[j,i,0]对应于channel_0(Y)
dv_idx[j,i,1]对应于channel_1(U)
dv_idx[j,i,2]对应于channel_2(V)
其中,f_c[j,i]是连接编码样本,dv_idx[j,i,0]、dv_idx[j,i,1]和dv_idx[j,i,2]是顶点之间的差分索引值,v_idx_s[j,i,0]、v_idx_s[j,i-1,0]、v_idx_s[j,i,1]、v_idx_s[j,i-1,1]、v_idx_s[j,i,2]和v_idx_s[j,i-1,2]是表示相应的顶点索引的3D阵列。如上所述,顶点之间的差分索引值可以与不同的通道(例如,YUV通道)对应。在步骤364,无损视频编码器可用于压缩所构造的帧。在步骤366,生成了编码的连接帧比特流。
图4示出了计算部件400,其包括一个或多个硬件处理器402和存储机器可读/机器可执行指令集的机器可读存储介质404,该机器可读/机器可执行指令集当被执行时,使一个或多个硬件处理器402执行根据本公开的各种实施例的用于编码和解码连接信息的说明性方法。例如,计算部件400可以执行关于图1A-图1I、图2A-图2B和图3A-图3C描述的功能。计算部件400可以是例如图5的计算系统500。硬件处理器402可以包括例如图5的处理器504或本文描述的任何其他处理单元。机器可读存储介质404可以包括图5的主存储器506、只读存储器(ROM)508、存储设备510和/或本文描述的任何其他合适的机器可读存储介质。
在块406,硬件处理器402可以执行存储在机器可读存储介质404中的机器可读/机器可执行指令,以将3D内容处理成片段,每个片段包括代表3D内容的面和顶点索引的集合。
在块408,硬件处理器402可以执行存储在机器可读存储介质404中的机器可读/机器可执行指令,以处理每个片段,从而对每个片段中的面和顶点索引的相应集合进行排序。
在块410,硬件处理器402可以执行存储在机器可读存储介质404中的机器可读/机器可执行指令,以分组3D内容的每个片段,以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集。
在框412,硬件处理器402可以执行存储在机器可读存储介质404中的机器可读/机器可执行指令,以编码连接信息帧。
图5示出了示例计算系统500的框图,在示例计算系统500中可以实现本公开的各种实施例。计算系统500可以包括总线502或用于传递信息的其他通信机制、与总线502耦接的用于处理信息的一个或多个硬件处理器504。硬件处理器504可以是例如一个或多个通用微处理器。计算系统500可以是视频编码模块、视频解码模块、视频编码器、视频解码器或类似设备的实施例。
计算系统500还可以包括主存储器506,例如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备,主存储器506耦接到总线502,用于存储将由硬件处理器504执行的信息和指令。主存储器506还可用于在硬件处理器504执行指令期间存储临时变量或其他中间信息。当这种指令存储在硬件处理器504可访问的存储介质中时,将计算系统500渲染成可以被定制以执行指令中指定的操作的专用机器。
计算系统500还可以包括耦接到总线502的只读存储器(ROM)508或其他静态存储设备,用于存储用于硬件处理器504的静态信息和指令。可以提供存储设备510,例如磁盘、光盘或USB拇指驱动器(闪存驱动器)等,并将存储设备510耦接到总线502,用于存储信息和指令。
计算系统500还可以包括至少一个网络接口512,例如网络接口控制器(networkinterface controller,NIC)模块、网络适配器等或他们的组合,网络接口512耦接到总线502用于将计算系统700连接到至少一个网络。
通常,本文使用的单词“组件”、“模块”、“引擎”、“系统”、“数据库”等可以指体现在硬件或固件中的逻辑,或者指用编程语言,例如Java、C或C++编写的可能具有入口点和出口点的软件指令的集合。软件组件或模块可以被编译并链接到可执行程序中,安装在动态链接库中,或者可以用解释型编程语言编写,例如BASIC、Perl或Python。应当理解的是,软件组件可以从其他组件或自身调用,和/或可以响应于检测到的事件或中断被调用。被配置用于在诸如计算系统500的计算设备上执行的软件组件可以被提供至诸如光盘、数字视频光盘、闪存驱动器、磁盘或任何其他有形介质的计算机可读介质上,或者作为数字下载(可以最初以压缩格式或可安装格式存储,该压缩格式或可安装格式在执行之前需要安装、解压缩或解密)。这种软件代码可以部分或全部存储在执行计算设备的存储设备上,以供计算设备执行。软件指令可以嵌入固件中,该固件例如为EPROM。还将理解的是,硬件组件可以包括连接的逻辑单元,例如门和触发器,和/或可以包括可编程单元,例如可编程门阵列或处理器。
计算系统500可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术或工艺,该程序逻辑与计算系统700相结合,使计算系统500成为专用机器或对将计算系统500编程为专用机器。根据一个或多个实施例,响应于硬件处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列,本文描述的技术由计算系统700执行。这种指令可以从另一存储介质(例如存储设备510)读入主存储器506。包含在主存储器506中的指令的序列的执行可以是硬件处理器504执行本文描述的处理步骤。在替代的实施例中,硬连线电路可以用来代替软件指令或与软件指令结合使用。
本文使用的术语“非暂态介质”以及类似的术语是指存储数据和/或指令的任何介质,该数据和/或指令使机器以特定方式运行。这种非暂态介质可以包括非易失性介质和/或易失性介质。非易失性介质可以包括例如光盘或磁盘,例如存储设备510。易失性介质可以包括动态存储器,例如主存储器506。非暂态介质的常见形式包括,例如,软盘、弹性磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式存储器,以及他们的网络版本。
非暂态介质不同于传输介质,但可以与传输介质结合使用。传输介质可以参与在非暂态介质之间传输信息。例如,传输介质可以包括同轴电缆、铜线和光纤,包括线,该线包括总线502。传输介质也可以采取声波或光波的形式,例如在无线电波和红外线数据通信期间产生的声波或光波。
计算系统500还包括耦接到总线502的网络接口518。网络接口518提供了耦接到一个或多个网络链路的双向数据通信,该一个或多个网络链路连接到一个或多个本地网络。例如,网络接口518可以是综合业务数字网(Integrated Services Digital Network,ISDN)卡、电缆调制解调器、卫星调制解调器或提供数据通信连接到相应类型的电话线的调制解调器。作为另一个示例,网络接口518可以是提供数据通信连接到兼容的LAN(或与WAN通信的WAN组件)的局域网(LAN)卡。无线链路也可以实现。在任何这样的实现方式中,网络接口518发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
网络链路通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路可以通过本地网络提供到主机或由互联网服务提供商(Internet Service Provider,ISP)运行的数据设备的连接。ISP反过来通过现在通常称为“互联网”的全球分组数据通信网络提供数据通信服务。局域网和互联网都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号、网络链路上的信号以及通过网络接口518的信号是传输介质的示例形式,这些信号将数字数据传送到计算系统500或从计算系统500传送出来。
计算系统500可以通过网络、网络链路和网络接口518发送消息和接收数据,消息和数据包括程序代码。在互联网示例中,服务器可以通过互联网、ISP、本地网络和网络接口518传输用于应用程序的请求代码。
接收到的代码可以在接收时由处理器504执行,和/或存储在存储设备510或其他非易失性存储器中以供以后执行。
前述部分中描述的每个处理、方法和算法可以体现在由一个或多个计算系统或包括计算机硬件的计算机处理器执行的代码组件中,并且完全或部分自动化。一个或多个计算系统或计算机处理器还可以操作以支持在“云计算”环境中或作为“软件即服务”(software as a service,SaaS)的相关操作的性能。处理和算法可以部分或全部在专用电路中实现。上述各种特征和处理可以彼此独立使用,或者可以以各种方式组合。不同的组合和子组合旨在落入本公开的范围内,并且在一些实现方式中可以省略某些方法或处理块。本文描述的方法和处理也不限于任何特定的序列,并且与其相关的块或状态可以在适当的其他序列中执行,或者可以并行执行,或者以一些其他方式执行。块或状态可以被添加到所公开的示例实施例中或从所公开的示例实施例中移除。某些操作或处理的性能可以分布在计算系统或计算机处理器之间,不仅驻留在单个机器内,而且部署在多个机器上。
如本文所用,可以利用任何形式的硬件、软件或其组合来实现电路。例如,可以实现一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑组件、软件例程或其他机制来构成电路。在实现方式中,本文描述的各种电路可以实现为离散电路,或者所描述的功能和特征可以在一个或多个电路之间部分或全部共享。即使功能的各种特征或元素可以被单独描述或被要求为单独的电路,这些特征和功能可以在一个或多个公共电路之间共享,并且这种描述不应要求或暗示需要单独的电路来实现这些特征或功能。在使用软件全部或部分地实现电路的情况下,可以将这种软件实现为与能够执行对其描述的功能的计算或处理系统例如计算系统500一起操作。
如本文所使用的,术语“或”可以被解释为包含或排斥的意义。此外,单数形式的资源、操作或结构的描述不应被解读为排除复数形式。条件语言,例如,除其他外,“可”、“可以”、“可能”或“可”,除非另有明确说明,或者在所使用的上下文中以其他方式理解,通常旨在传达某些实施例包括某些特征、元素和/或步骤,而其他实施例不包括这些特征、元素和/或步骤。
除非另有明确说明,本文件中使用的术语和短语及其变体应被解释为开放式的,而非限制性的。诸如“常规的”、“传统的”、“正常的”、“标准的”、“已知的”等形容词,以及具有类似含义的术语不应被解释为将所描述的项目限制在给定的时间段或限制为给定的时间内可用的项目,而是应被理解为包括现在或将来任何时候可能可用或已知的常规的、传统的、正常的或标准的技术。在某些情况下,诸如“一个或多个”、“至少”、“但不限于”或其他类似短语等的扩展词和语句的存在不应被理解为意味着在可能不存在此类扩展语句的情况下,有意或需要较窄范围的情况。

Claims (20)

1.一种用于编码三维3D内容的计算机实现的方法,包括:
将所述3D内容处理成片段,每个片段包括代表所述3D内容的面和顶点索引的集合;
处理每个片段,以对每个片段中的面和顶点索引的相应集合进行排序;
分组3D内容的每个片段以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集;以及
编码所述连接信息帧。
2.根据权利要求1所述的计算机实现的方法,其中,所述面的集合中的每个面与由所述排序的顶点索引指示的三个排序的顶点关联。
3.根据权利要求1所述的计算机实现的方法,其中,每个块被映射到连接信息帧的特定切片。
4.根据权利要求1所述的计算机实现的方法,其中,所述面按照降序排序,而对于每个面,所述顶点索引按照升序排序。
5.根据权利要求1所述的计算机实现的方法,其中,每个块包括被编码为像素的连接编码样本。
6.根据权利要求1所述的计算机实现的方法,其中,每个块包括连接编码样本,所述连接编码样本指示所述排序的顶点索引的差分值,其中,所述面是基于所述差分值而被编码。
7.根据权利要求1所述的计算机实现的方法,其中,基于每个连接信息帧中的面的数量,所述连接信息帧与一个或多个分辨率关联。
8.根据权利要求1所述的计算机实现的方法,其中,编码所述连接信息帧是基于视频编码器的,所述视频编码器是在与所述编码的连接信息帧关联的序列参数集、图片参数集或补充增强信息中指示的。
9.一种用于编码三维3D内容的编码器,包括:
至少一个处理器;以及
存储有指令的存储器,所述指令在被所述至少一个处理器执行时,使所述编码器执行:
将所述3D内容处理成片段,每个片段包括代表所述3D内容的面和顶点索引的集合;
处理每个片段,以对每个片段中的面和顶点索引的相应集合进行排序;
分组3D内容的每个片段以生成块的连接信息帧,每个块包括排序的面和顶点索引的子集;
确定所述排序的顶点索引的差分值和基于用于编码所述连接信息帧的视频编码位深的常数值,其中,所述差分值被编码为所述块中的连接编码样本;以及
编码所述连接信息帧。
10.根据权利要求9所述的编码器,其中,所述面的集合中的每个面与由所述排序的顶点索引指示的三个排序的顶点关联。
11.根据权利要求9所述的编码器,其中,每个块被映射到连接信息帧的特定切片。
12.根据权利要求9所述的编码器,其中,所述面按照降序排序,而对于每个面,所述顶点索引按照升序排序。
13.根据权利要求9所述的编码器,其中,每个块包括被编码为像素的连接编码样本。
14.根据权利要求9所述的编码器,其中,基于每个连接信息帧中的面的数量,所述连接信息帧与一个或多个分辨率关联。
15.一种包括指令的非暂态计算机可读存储介质,所述指令在被编码器的至少一个处理器执行时,使所述解码器执行:
将3D内容处理成片段,每个片段包括代表所述3D内容的面和顶点索引的集合;
处理每个片段,对每个片段中的面和顶点索引的相应集合进行排序,以生成相应的面列表;
分组3D内容的每个片段的所述相应的面列表以生成连接信息的二维阵列,所述连接信息是被编码为块的连接信息帧的,每个块包括排序的面和顶点索引的子集;以及
编码所述连接信息帧。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中,所述面的集合中的每个面与由所述排序的顶点索引指示的三个排序的顶点关联。
17.根据权利要求15所述的非暂态计算机可读存储介质,其中,每个块被映射到连接信息帧的特定切片。
18.根据权利要求15所述的非暂态计算机可读存储介质,其中,所述面按照降序排序,而对于每个面,所述顶点索引按照升序排序。
19.根据权利要求15所述的非暂态计算机可读存储介质,其中,每个块包括被编码为像素的连接编码样本。
20.根据权利要求15所述的非暂态计算机可读存储介质,其中,编码所述连接信息帧是基于视频编码器的,所述视频编码器是在与所述编码的连接信息帧关联的序列参数集、图片参数集或补充增强信息中指示的。
CN202280059929.4A 2021-09-10 2022-09-09 用于编码的网格表示的连接信息编码方法及装置 Pending CN117980965A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163243019P 2021-09-10 2021-09-10
US63/243,019 2021-09-10
PCT/US2022/043144 WO2023019031A1 (en) 2021-09-10 2022-09-09 Connectivity information coding method and apparatus for coded mesh representation

Publications (1)

Publication Number Publication Date
CN117980965A true CN117980965A (zh) 2024-05-03

Family

ID=85200323

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202280059929.4A Pending CN117980965A (zh) 2021-09-10 2022-09-09 用于编码的网格表示的连接信息编码方法及装置
CN202280059967.XA Pending CN117917069A (zh) 2021-09-10 2022-09-09 用于编码网格表示的连接信息的解码方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202280059967.XA Pending CN117917069A (zh) 2021-09-10 2022-09-09 用于编码网格表示的连接信息的解码方法及装置

Country Status (2)

Country Link
CN (2) CN117980965A (zh)
WO (2) WO2023028382A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131660A1 (en) * 2002-09-06 2005-06-16 Joseph Yadegar Method for content driven image compression
KR100955201B1 (ko) * 2008-02-25 2010-04-29 주식회사 마크애니 3 차원 메쉬 모델의 워터마킹 방법 및 그 장치
WO2009128660A2 (en) * 2008-04-18 2009-10-22 Electronics And Telecommunications Research Institute Method and apparatus for real time 3d mesh compression, based on quanitzation
CN104380749A (zh) * 2012-04-16 2015-02-25 诺基亚公司 用于视频编码的方法和装置
US10368097B2 (en) * 2014-01-07 2019-07-30 Nokia Technologies Oy Apparatus, a method and a computer program product for coding and decoding chroma components of texture pictures for sample prediction of depth pictures
WO2020013484A1 (ko) * 2018-07-11 2020-01-16 엘지전자 주식회사 360 비디오 시스템에서 오버레이 처리 방법 및 그 장치
US11393132B2 (en) * 2019-03-07 2022-07-19 Samsung Electronics Co., Ltd. Mesh compression

Also Published As

Publication number Publication date
WO2023028382A1 (en) 2023-03-02
CN117917069A (zh) 2024-04-19
WO2023019031A1 (en) 2023-02-16

Similar Documents

Publication Publication Date Title
AU2020397870B2 (en) Method and apparatus for point cloud coding
US11417029B2 (en) Method and apparatus for point cloud coding
EP4075804A1 (en) Point cloud data transmission device, transmission method, processing device and processing method
US11451802B2 (en) Method and apparatus for point cloud coding
US20230245390A1 (en) Manhattan layout estimation using geometric and semantic information
US20230162404A1 (en) Decoding of patch temporal alignment for mesh compression
US11395004B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN117980965A (zh) 用于编码的网格表示的连接信息编码方法及装置
CN117897728A (zh) 用于编码网格表示的连接性信息编码方法和装置
US20220392114A1 (en) Method and apparatus for calculating distance based weighted average for point cloud coding
US11611775B2 (en) Method and apparatus for point cloud coding
US20240020885A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US20230412837A1 (en) Point cloud data transmission method, point cloud data transmission device, point cloud data reception method, and point cloud data reception device
US12003769B2 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11922664B2 (en) Method and apparatus of adaptive sampling for mesh compression by decoders
US20230162403A1 (en) Encoding of patch temporal alignment for mesh compression
US20240064332A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20230281878A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
US20220383553A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
JP2024512915A (ja) 非マニホールドメッシュにおける境界ループの検出のための方法、装置、およびコンピュータプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication