CN117461059A - 网格压缩中的顶点位置预测 - Google Patents
网格压缩中的顶点位置预测 Download PDFInfo
- Publication number
- CN117461059A CN117461059A CN202380011066.8A CN202380011066A CN117461059A CN 117461059 A CN117461059 A CN 117461059A CN 202380011066 A CN202380011066 A CN 202380011066A CN 117461059 A CN117461059 A CN 117461059A
- Authority
- CN
- China
- Prior art keywords
- prediction
- current vertex
- determined
- triangle
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006835 compression Effects 0.000 title description 31
- 238000007906 compression Methods 0.000 title description 31
- 238000000034 method Methods 0.000 claims abstract description 77
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 description 28
- 230000033001 locomotion Effects 0.000 description 22
- 239000000872 buffer Substances 0.000 description 17
- 239000013598 vector Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 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
- 238000013139 quantization Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- HHJOBSJNFNVLNR-UHFFFAOYSA-N 3-[(4,6-difluoro-1,3,5-triazin-2-yl)amino]-7-methoxychromen-2-one Chemical compound O=C1OC2=CC(OC)=CC=C2C=C1NC1=NC(F)=NC(F)=N1 HHJOBSJNFNVLNR-UHFFFAOYSA-N 0.000 description 1
- 101150114515 CTBS gene Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction 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
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 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
- 238000002360 preparation method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 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
- 238000013403 standard screening design Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
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
在一种网格处理的方法中,网格包括多个顶点中的当前顶点。当前顶点的多个候选预测基于网格中的多个三角形来确定。多个三角形中的每个三角形对应于相应的候选预测。从多个候选预测中确定当前顶点的预测。该预测对应于当前顶点与多个候选预测中的每个候选预测之间的阈值预测差。还基于所确定的预测生成当前顶点的预测信息。
Description
援引并入
本申请要求于2023年3月24日提交的、题为“VERTEX POSITION PREDICTION INMESH COMPRESSION(网格压缩中的顶点位置预测)”的第18/126,152号美国专利申请的优先权权益,该美国专利申请要求于2022年5月20日提交的、题为“Vertex PositionPrediction in Mesh Compression”的第63/344,394号美国临时申请的优先权权益。在先申请的公开内容通过引用整体并入本文中。
技术领域
本公开包括与网格处理相关的实施例。
背景技术
此文所提供的背景技术说明以对本公开的上下文作一般性说明为目的。目前所署名的发明人的某些工作(即已在此背景技术部分中作出描述的工作)以及说明书中关于某些尚未成为申请日之前的现有技术的方面,无论是以明确或隐含的方式均不被视为相对于本公开的现有技术。
三维(three-dimensional,3D)捕捉、建模和渲染的进步促进了3D内容可以普遍存在于各种平台和设备上。如今,能够在一个大陆捕捉婴儿迈出的第一步,使得婴儿的祖父母在另一个大陆能够看到(在一些情况下,进行互动)并与孩子一起享受完全沉浸式的体验。为了实现这种逼真性,模型变得越来越复杂,大量数据与这些模型的创建和消耗相关联。3D网格被广泛用于表示这种沉浸式内容。
发明内容
本公开的各方面提供用于网格处理的方法和装置。在一些示例中,一种用于网格处理的装置包括处理电路。
根据本公开的一方面,提供一种在视频编码器中执行的网格处理的方法。在该方法中,网格包括多个顶点。基于网格中的多个三角形来确定多个顶点中的当前顶点的多个候选预测。多个三角形中的每个三角形对应于相应的候选预测。从多个候选预测中确定当前顶点的预测。该预测对应于当前顶点与多个候选预测中的每个候选预测之间的阈值预测差。还基于所确定的预测生成当前顶点的预测信息。
在一些实施例中,为了确定当前顶点的多个候选预测,针对当前顶点确定多个三角形中的第一三角形。第一三角形与多个三角形中的第二三角形共享一条边,当前顶点包括在第二三角形中且与所共享的边相对。基于所确定的第一三角形,通过平行四边形预测来确定多个候选预测中的第一预测,在该平行四边形预测中,第一预测和第一三角形形成第一平行四边形。
在一些实施例中,为了确定当前顶点的多个候选预测,确定多个候选预测的平均预测。
在一些实施例中,为了确定当前顶点的预测,针对当前顶点确定预测列表。预测列表包括预测器。预测器包括平均预测和预测列表中位于平均预测之后的多个候选预测。预测列表中的多个候选预测的顺序依赖于与多个候选预测对应的多个三角形的顺序。对预测列表中的每个预测器确定相应的预测索引。
在一个示例中,基于Edgebreaker(边缘分割)算法对多个三角形进行排序,在Edgebreaker算法中,以螺旋式三角形生成树顺序来标记多个三角形。
在一个示例中,为了确定当前顶点的预测,在预测列表中的每个预测器与当前顶点之间确定预测差。还从预测列表中的预测器中确定与预测差中的最小预测差对应的预测。
在一个示例中,为了确定当前顶点的预测,在预测列表的预测器子集中确定具有最小预测差的预测。
在一些实施例中,基于固定长度编码、可变长度编码和差分编码之一,对预测列表中的每个预测器确定相应的预测索引。
在一些实施例中,基于差分编码,确定相应的预测索引。在一个示例中,确定预测器的第一预测索引与预测器的第二预测索引之间的差。还基于第一预测索引与第二预测索引之间的差,对第二预测索引进行编码。
在一些实施例中,当前顶点的预测信息包括:指示预测列表中所确定的预测的索引信息;以及指示当前顶点与所确定的预测之间的差的残差信息。
根据本公开的另一方面,提供一种装置。该装置包括处理电路。处理电路可配置成执行任意所描述的用于网格处理的方法。
本公开的各方面还提供一种非暂时性计算机可读介质,该非暂时性计算机可读介质存储有指令,当指令由用于视频解码的计算机执行时,指令使得计算机执行任意所描述的用于网格处理的方法。
附图说明
根据以下详细描述和附图,所公开的主题的进一步的特征、性质和各种优势将更加明显,在附图中:
图1是通信系统(100)的示例性框图的示意图。
图2是解码器的示例性框图的示意图。
图3是编码器的示例性框图的示意图。
图4A是根据本公开的一些实施例的第一示例性平行四边形预测的示意图。
图4B是根据本公开的一些实施例的第二示例性平行四边形预测的示意图。
图5A示出了Edgebreaker算法的五个区块配置的示例。
图5B示出了根据Edgebreaker算法的示例性网格遍历。
图6是基于平行四边形预测来预测顶点的示例的示意图。
图7示出了根据本公开的一些实施例的概述过程的流程图。
图8示出了根据本公开的一些实施例的概述另一过程的流程图。
图9是根据一个实施例的计算机系统的示意图。
具体实施方式
图1示出了一些示例中的视频处理系统(100)的框图。视频处理系统(100)是所公开的主题,视频编码器和视频解码器位于流式传输环境中的的应用示例。所公开的主题可同等地适用于其它支持图像和视频的应用,包括例如视频会议、数字(television,TV)、流媒体服务、在包括光盘(compact disc,CD)、数字视频光盘(digital video disc,DVD)、存储棒等的数字介质上存储压缩视频等等。
视频处理系统(100)包括采集子系统(113),采集子系统(113)可包括视频源(101)。视频源(101)可包括由相机采集和/或由计算机生成的一个或多个图像。例如,数码相机创建未压缩的视频图片流(102)。在一个示例中,视频图片流(102)包括由数码相机记录的样本。相较于已编码视频数据(104)(或已编码视频比特流),视频图片流(102)被描绘为粗线以强调高数据量且可由电子设备(120)处理,该电子设备(120)包括耦接到视频源(101)的视频编码器(103)。视频编码器(103)可包括硬件、软件或软硬件组合,以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于视频图片流(102),已编码视频数据(104)(或已编码视频码流)被描绘为细线以强调较低数据量且可存储在流式传输服务器(105)上以供将来使用。一个或多个流式传输客户端子系统,例如图1中的客户端子系统(106)和客户端子系统(108),可访问流式传输服务器(105)以检索已编码视频数据(104)的副本(107)和副本(109)。客户端子系统(106)可包括例如电子设备(130)中的视频解码器(110)。视频解码器(110)对已编码视频数据的传入副本(107)进行解码,且创建可以在显示器(112)(例如,显示屏)或其它呈现设备(未描绘)上呈现的输出视频图片流(111)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码视频数据(104)、视频数据(107)和视频数据(109)(例如,视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在一个示例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile VideoCoding,VVC)。所公开的主题可用于VVC的上下文中。
应注意,电子装置(120)和电子装置(130)可包括其它组件(未示出)。例如,电子装置(120)可包括视频解码器(未示出),且电子装置(130)还可包括视频编码器(未示出)。
图2示出了视频解码器(210)的示例性框图。视频解码器(210)可包括在电子装置(230)中。电子装置(230)可包括接收器(231)。接收器(231)可包括接收电路,例如网络接口电路。视频解码器(210)可用于代替图1的示例中的视频解码器(110)。
接收器(231)可接收将由视频解码器(210)解码的一个或多个已编码视频序列。在一个实施例中,一次接收一个已编码视频序列,其中,独立于其它已编码视频序列对每个已编码视频序列的解码进行解码。可以从信道(201)接收已编码视频序列,信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器(231)可接收可转发到它们各自的使用实体(未描绘)的已编码视频数据和其它数据,例如已编码音频数据和/或辅助数据流。接收器(231)可以将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(215)可耦接在接收器(231)和熵解码器/解析器(220)(此后称为“解析器(220)”)之间。在某些应用中,缓冲存储器(215)是视频解码器(210)的一部分。在其它应用中,缓冲存储器(215)可位于视频解码器(210)的外部(未描绘)。在另一些其它应用中,在视频解码器(210)的外部可设置缓冲存储器(未描绘)以例如防止网络抖动,此外,在视频解码器(210)的内部可设置另一缓冲存储器(215)以例如处理播放定时。当接收器(231)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可能不需要配置缓冲存储器(215),或可以将缓冲存储器做得较小。为了在诸如互联网等尽力而为分组网络上使用,可能需要缓冲存储器(215),缓冲存储器可相对较大,有利地可具有自适应大小,且可至少部分地在操作系统或视频解码器(210)外部的类似元件(未描绘)中实现。
视频解码器(210)可包括解析器(220),以根据已编码视频序列重建符号(221)。这些符号的类别包括用于管理视频解码器(210)的操作的信息,以及用于控制诸如呈现装置(212)(例如,显示屏)之类的呈现设备的潜在信息,该呈现装置不是电子装置(230)的整体部分,但是可耦接到电子装置(230),如图2所示。用于呈现设备的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI)消息或视频可用性信息(VideoUsability Information,VUI)参数集片段(未描绘)的形式。解析器(220)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼(Huffman)编码、具有或不具有上下文敏感度的算术编码等。解析器(220)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器(220)还可以从已编码视频序列提取信息,例如变换系数,量化器参数值,运动矢量等。
解析器(220)可以对从缓冲存储器(215)接收的视频序列执行熵解码/解析操作,从而创建符号(221)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片,帧间块和帧内块)的类型以及其它因素,符号(221)的重建可涉及多个不同的单元。涉及哪些单元以及涉及方式可由解析器(220)通过从已编码视频序列解析的子群控制信息来控制。为了清楚起见,未描绘解析器(220)与下文的多个单元之间的此类子群控制信息流。
除了已提及的功能块之外,视频解码器(210)可以在概念上细分成如下文所描述的多个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,在概念上细分成下文的功能单元是合适的。
第一单元是缩放器/逆变换单元(251)。缩放器/逆变换单元(251)从解析器(220)接收作为符号(221)的量化变换系数以及控制信息,包括要使用哪种变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(251)可输出包括样本值的块,样本值可输入到聚合器(255)中。
在一些情况下,缩放器/逆变换单元(251)的输出样本可属于帧内编码块。帧内编码块是不使用来自先前重建的图片的预测信息,但是可使用来自当前图片的先前重建部分的预测信息的块。此类预测信息可由帧内图片预测单元(252)提供。在一些情况下,帧内图片预测单元(252)使用从当前图片缓冲器(258)提取的周围已重建信息来生成大小和形状与正在重建的块相同的块。例如,当前图片缓冲器(258)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(255)可基于每个样本,将帧内预测单元(252)生成的预测信息添加到由缩放器/逆变换单元(251)提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元(251)的输出样本可属于帧间编码和潜在运动补偿的块。在这种情况下,运动补偿预测单元(253)可访问参考图片存储器(257)以提取用于预测的样本。在根据属于块的符号(221)对所提取的样本进行运动补偿之后,这些样本可由聚合器(255)添加到缩放器/逆变换单元(251)的输出(在这种情况下,称为残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(253)从参考图片存储器(257)内的地址提取预测样本可受到运动矢量控制,该运动矢量可以以符号(221)的形式提供给运动补偿预测单元(253)使用,符号(221)可具有例如X分量、Y分量和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(257)提取的样本值的内插,运动矢量预测机制等。
聚合器(255)的输出样本可经受环路滤波器单元(256)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(还称为已编码视频比特流)中且可作为来自解析器(220)的符号(221)而用于环路滤波器单元(256)的参数。视频压缩还可响应于在对已编码图片或已编码视频序列的先前(按解码次序)部分进行解码期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元(256)的输出可以是样本流,该样本流可输出到渲染装置(212)以及存储在参考图片存储器(257)中以用于将来的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来的预测。例如,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(220))被识别为参考图片,则当前图片缓冲器(258)可变成参考图片存储器(257)的一部分,且可以在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(210)可根据诸如ITU-T H.265建议书的预定视频压缩技术或标准执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体而言,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。为了合规性,还可能需要已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建采样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(HypotheticalReference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
在一个实施例中,接收器(231)可以连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为已编码视频序列的一部分。附加数据可由视频解码器(210)使用来对数据进行适当解码和/或更准确地重建原始视频数据。附加数据可采用例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图3示出了视频编码器(303)的示例性框图。视频编码器(303)包括在电子装置(320)中。电子装置(320)包括传输器(340)(例如,传输电路)。视频编码器(303)可用于代替图1的示例中的视频编码器(103)。
视频编码器(303)可以从视频源(301)(并非图3的示例中的电子装置(320)的一部分)接收视频样本,视频源(301)可采集将由视频编码器(303)编码的视频图像。在另一示例中,视频源(301)是电子装置(320)的一部分。
视频源(301)可提供将由视频编码器(303)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适的位深度(例如:8位、10位、12位......)、任何色彩空间(例如BT.601Y CrCB,RGB......)和任何合适的采样结构(例如Y CrCb 4:2:0,YCrCb 4:4:4)。在媒体服务系统中,视频源(301)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(301)可以是采集本地图像信息作为视频序列的相机。视频数据可作为多个单独的图片来提供,当按顺序观看时,这些图片被赋予运动。图片本身可组织成空间像素阵列,其中取决于所使用的采样结构、色彩空间等,每个像素可包括一个或多个样本。下文侧重于描述样本。
根据一个实施例,视频编码器(303)可实时地或在所要求的任何其它时间约束下,将源视频序列的图片编码并压缩成已编码视频序列(343)。施行适当的编码速度是控制器(350)的一个功能。在一些实施例中,控制器(350)控制如下文所描述的其它功能单元且在功能上耦接到所述的其它功能单元。为了清楚起见,图中未描绘耦接。由控制器(350)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、GOP布局、最大运动矢量搜索范围等。控制器(350)可配置成具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(303)。
在一些实施例中,视频编码器(303)配置成在编码环路中进行操作。作为非常简化的描述,在一个示例中,编码环路可包括源编码器(330)(例如,负责基于待编码的输入图片和参考图片来创建符号,例如符号流)和嵌入于视频编码器(303)中的(本地)解码器(333)。解码器(333)重建符号以用类似于(远程)解码器也将创建样本数据的方式创建样本数据。重建的样本流(样本数据)输入到参考图片存储器(334)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(334)中的内容在本地编码器和远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)还用于一些相关技术。
“本地”解码器(333)的操作可与诸如已在上文结合图2详细描述的视频解码器(210)的“远程”解码器相同。然而,另外简要参考图2,由于符号可用且熵编码器(345)和解析器(220)可无损地将符号编码/解码成已编码视频序列,因此包括缓冲存储器(215)和解析器(220)的视频解码器(210)的熵解码部分可能无法完全在本地解码器(333)中实现。
在一个实施例中,除了存在于解码器中的解析/熵解码之外的解码器技术以相同或者基本上相同的功能形式存在于对应的编码器中。因此,所公开的主题侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。下文提供了在某些区域中的更详细的描述。
在操作期间,在一些示例中,源编码器(330)可执行运动补偿预测编码,通过参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,该运动补偿预测编码对输入图片进行预测性编码。以这种方式,编码引擎(332)对输入图片的像素块和参考图片的像素块之间的差异进行编码,该参考图片可被选作该输入图片的预测参考。
本地视频解码器(333)可基于源编码器(330)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(332)的操作有利地可以是有损过程。当已编码视频数据可以在视频解码器(图3未示出)处被解码时,已重建视频序列通常可以是带有一些误差的源视频序列的复制品。本地视频解码器(333)复制解码过程,该解码过程可由视频解码器对参考图片执行,且可使已重建参考图片存储在参考图片存储器(334)中。以这种方式,视频编码器(303)可以在本地存储已重建参考图片的副本,该副本与将由远端视频解码器获得的已重建参考图片具有共同内容(不存在传输误差)。
预测器(335)可针对编码引擎(332)执行预测搜索。即,对于待编码的新图片,预测器(335)可以在参考图片存储器(334)中搜索可用作新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(335)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(335)获得的搜索结果所确定的,输入图片可具有从参考图片存储器(334)中存储的多个参考图片取得的预测参考。
控制器(350)可管理源编码器(330)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可以在熵编码器(345)中对所有上述功能单元的输出进行熵编码。熵编码器(345)根据诸如霍夫曼编码、可变长度编码、算术编码等的技术来对各种功能单元生成的符号应用无损压缩,从而将该符号转换成已编码视频序列。
传输器(340)可缓冲由熵编码器(345)创建的已编码视频序列,从而为通过通信信道(360)进行传输做准备,通信信道可以是通向可存储已编码视频数据的存储设备的硬件/软件链路。传输器(340)可以将来自视频编码器(303)的已编码视频数据与待传输的其它数据合并,其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
控制器(350)可管理视频编码器(303)的操作。在编码期间,控制器(350)可以向每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可以将图片分配为以下任一种图片类型:
帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。本领域技术人员了解I图片的这些变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联的元数据来用于重建单个块。
源图片通常可以在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,这些其它块由应用于块的相应图片的编码分配来确定。例如,I图片的块可进行非预测性编码,或者I图片的块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间预测来进行预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测来进行预测性编码。
视频编码器(303)可根据诸如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(303)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。
在一个实施例中,传输器(340)可以在传输已编码视频时传输附加数据。源编码器(330)可包括此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、诸如冗余图片和切片的其它形式的冗余数据、SEI消息、VUI参数集片段等。
所采集的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(通常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在一个示例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片称为当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称为运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,运动矢量可具有识别参考图片的第三个维度。
在一些实施例中,双向预测技术可用于帧间图片预测。根据该双向预测技术,使用两个参考图片,例如按解码次序在视频中的当前图片之前(但是按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量来对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来预测该块。
此外,合并模式技术可用于帧间图片预测以改善编码效率。
根据本公开的一些实施例,诸如帧间图片预测和帧内图片预测的预测以块为单位来执行,该块例如是多边形块或三角形块。例如,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(coding tree unit,CTU)以用于压缩,图片中的CTU具有相同的大小,例如64×64像素、32×32像素或16×16像素。通常,CTU包括三个编码树块(coding treeblock,CTB),这三个编码树块是一个亮度CTB和两个色度CTB。可以将每个CTU递归地以四叉树划分成一个或多个编码单元(CU)。例如,可以将64×64像素的CTU划分成一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在一个示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。根据时间和/或空间可预测性,将CU划分成一个或多个预测单元(PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在一个实施例中,编解码(编码/解码)中的预测操作以预测块为单位来执行。使用亮度预测块作为预测块的示例,预测块包括针对像素的值(例如,亮度值)的矩阵,所述的像素例如是8×8像素、16×16像素、8×16像素、16×8像素等。
应注意,可使用任何合适的技术来实现视频编码器(103)和视频编码器(303)以及视频解码器(110)和视频解码器(210)。在一个实施例中,可使用一个或多个集成电路来实现视频编码器(103)和视频编码器(303)以及视频解码器(110)和视频解码器(210)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实现视频编码器(103)和视频编码器(303)以及视频解码器(110)和视频解码器(210)。
本公开包括与网格压缩中的顶点位置预测的方法和系统相关的实施例。
网格可包括描述体积对象的表面的数个多边形。网格的每个多边形可由三维(3D)空间中对应的多边形的顶点以及顶点如何连接相关的信息来定义,此类信息可称为连接信息。在一些实施例中,顶点属性(例如,颜色、法线等)可与网格顶点相关联。属性(或顶点属性)还可通过利用映射信息来与网格的表面相关联,该映射信息使用二维(two-dimensional,2D)属性图来参数化网格。通常可通过与网格顶点相关联的一组参数坐标(称为UV坐标或纹理坐标)来描述这种映射。2D属性图可用于存储高分辨率属性信息,例如纹理、法线、位移等。此类信息可用于各种目的,例如纹理映射和晕渲。
由于动态网格可包括大量随时间变化的信息,该动态网格序列可能需要大量数据。因此,需要高效的压缩技术来存储和传输此类内容。网格压缩标准(例如IC、MESHGRID和基于框架的动画网格压缩(Frame-based Animated Mesh Compression,FAMC))先前由动态图像专家组(moving pictures experts group,MPEG)开发,以处理具有恒定连接、随时间变化的几何形状的动态网格以及顶点属性。然而,这些标准可能未考虑随时间变化的属性图和连接信息。数字内容创建(digital content creation,DCC)工具通常生成此类动态网格。然而,通过体积采集技术生成恒定连接的动态网格可能是具有挑战性的,尤其是在实时约束的情况下。现有的标准可能不支持这种类型的内容(例如,恒定连接的动态网格)。MPEG计划开发一种新的网格压缩标准,以直接处理具有随时间变化的连接信息和可选地随时间变化的属性图的动态网格。这种新的网格压缩标准针对各种应用(例如,实时通信、存储、自由视点视频、增强现实(augmented reality,AR)和虚拟现实(virtual reality,VR))的有损和无损压缩。还可考虑诸如随机接入和可扩展/渐进式编码之类的功能。
网格几何信息可包括顶点连接信息、3D坐标、2D纹理坐标等。顶点的3D坐标(还可称为顶点位置)的压缩是非常重要的,原因是在许多情况下,顶点3D坐标的压缩会消耗整个几何形状相关数据中的很大一部分数据。
在本公开中,为了简单和清楚起见,使用三角形网格作为示例来描述实施例。然而,其它多边形网格(例如,四边形网格或五边形网格)也可应用于本公开的实施例。在一个示例中,三角形网格是包括一组三角形的一种多边形网格。这一组三角形可通过该组三角形的公共边或公共角连接。公共边或公共角可表示为网格顶点。
可通过平行四边形预测来实现顶点位置压缩。在平行四边形预测中,压缩算法可引入包括在预测三角形中的新顶点。预测三角形可基于与相邻三角形共享的边来形成。在一个示例中,该相邻三角形可以被在先编码。新顶点可指示当前顶点的预测位置。新顶点可以与相邻三角形中包括的三条边形成平行四边形。例如,如图4A所示,网格(400A)可包括多个三角形,例如三角形(412)。每个三角形可包括三个顶点。例如,三角形(412)可包括顶点(406)、顶点(408)和顶点(410)。为了对当前顶点(402)进行编码,可根据平行四边形预测,基于预测三角形(414)来生成当前顶点(402)的预测顶点(或预测)(404)。预测顶点(404)可包括在预测三角形(414)中。预测三角形(414)可与三角形(412)共享边(416)。顶点(406)、顶点(408)、顶点(410)和预测顶点(404)可形成平行四边形。此外,应注意,当前顶点(402)包括在网格(400A)的三角形(418)中,其中,三角形(418)和三角形(412)共享边(416)。
可应用多平行四边形预测来预测当前顶点。例如每当两个或更多个平行四边形预测可用时,该多平行四边形预测可使用由两个或更多个平行四边形预测获得的平均位置。图4B提供两个平行四边形预测的示例。如图4B所示,当前顶点(420)可包括在网格(400B)的第一三角形(434)中。第一三角形(434)可包括顶点(420)、顶点(438)和顶点(442)。第一三角形(434)可与网格(400B)的相邻三角形(428)共享边(444)。当前顶点(420)还可包括在第二三角形(436)中,第二三角形(436)包括顶点(420)、顶点(438)和顶点(440)。第二三角形(436)可与网格(400B)的相邻三角形(426)共享边(446)。基于所共享的边(444),可确定第一预测顶点(或第一预测)(424)。第一预测顶点(424)可与相邻三角形(428)形成第一平行四边形。基于所共享的边(446),可确定第二预测顶点(或第二预测)(422)。第二预测顶点(422)可与相邻三角形(426)形成第二平行四边形。因此,可进一步通过第一预测顶点(424)和第二预测顶点(422)的平均值来预测当前顶点(420)。
在本公开中,提供了用于网格压缩的顶点位置预测方法和/或系统。在一个实施例中,基于平行四边形预测,可以从多个候选位置值(或者候选预测或候选预测顶点)中选择当前顶点的预测位置值(或者预测或预测顶点)。所选择的预测顶点可通过索引进行编码(或者识别)。可进一步对所选择的预测顶点和当前顶点之间的预测残差进行编码。
在本公开中,可提出多种方法和/或系统用于网格压缩中的顶点位置预测。应注意,这些方法和/或系统可单独地应用或通过任何形式的组合来应用。还应注意,这些方法不仅可应用于动态网格,而且可应用于静态网格。静态网格可仅包括一帧,或者静态网格的网格内容可以不随时间变化。此外,所公开的方法和/或系统不限于顶点位置预测。所公开的方法和/或系统还可应用于例如2D纹理坐标预测,或更通用的基于多预测的方案。
可以对三角形网格(或网格)中的三角形进行排序。网格中三角形的顺序可根据Edgebreaker算法或其它分割算法来遍历。此外,在一个示例中,网格中的顶点还可基于三角形的顺序进行排序。在一个示例中,三角形和顶点的顺序或遍历顺序可基于相同的方案或不同的方案来确定。
图5A和图5B示出了基于Edgebreaker算法对网格中的三角形和顶点的示例性排序。图5A示出了Edgebreaker算法的五个示例性区块配置。如图5A所示,V是区块中心顶点,T是当前三角形。每个区块中的活跃门(active gate)(或当前三角形)可表示为T。在区块C中,可提供围绕V呈扇形(或旋转)的完整三角形。在区块L中,活跃门T的左侧可缺失一个或多个三角形。在区块R中,活跃门T的右侧可缺失一个或多个三角形。在区块E中,V仅与T相邻。在区块S中,在除了活跃门T的左侧或右侧之外的位置可缺失一个或多个缺失三角形。图5B示出了网格(500)的示例性遍历,其中,可基于Edgebreaker算法的遍历对网格(500)的三角形进行排序。如图5B所示,可沿着螺旋式三角形生成树来遍历网格(500)中的三角形。例如,可以从类型C(或区块C)的三角形(502)开始遍历。然后,遍历可沿着与三角形(例如(502))的右侧边相邻的分支前进。当到达类型E的三角形(例如(504))时,遍历可以停止。根据Edgebreaker算法,可以以CRSRLECRRRLE序列来遍历(或排序)网格(500)的三角形,如可以在图5B中示出的。网格(500)的每个三角形中的顶点还可基于三角形的顺序进行排序。
在三角形网格中,每个三角形(还可称为面)具有三个顶点。对于共享一条边的两个三角形,可应用平行四边形预测,以使用这两个三角形中两个相对的顶点中的一个顶点作为另一个顶点的预测器。如图6所示,两个三角形ABC和DBC可共享边BC。可应用已编码的顶点A、B、C的坐标,来预测D的坐标。例如,可基于平行四边形预测来确定预测顶点(或预测)D’。预测顶点D’的坐标可以在如下所示的等式(1)中确定:
D’= B + C – A 等式(1)
这样,如图6所示,四个顶点(D’,B,A,C)可形成平行四边形。由于每个顶点具有3D坐标,因此等式(1)可用于计算预测顶点D’的每个坐标分量。例如,假设下标x,y,z表示xyz空间中的3D坐标,那么预测顶点D’在xyz空间的坐标分量可以在等式(2)至(4)中提供:
Dx’= Bx + Cx – Ax 等式(2)
Dy’= By + Cy – Ay 等式(3)
Dz’= Bz + Cz – Az 等式(4)
如果顶点A、B、C的位置值已编码且可用于预测,则三角形ABC可表示为顶点D的预测候选(或预测三角形)。一个顶点可具有零个、一个、两个或更多个预测候选,这取决于现有的已编码顶点和所共享的边的数量。如果当前顶点存在多于一个预测候选,则可基于网格的三角形顺序对预测候选进行排序。例如,可基于Edgebreaker算法等对三角形进行排序。
在本公开中,可确定当前顶点的一个或多个预测(或平行四边形预测)。可进一步确定一个或多个平行四边形预测的平均值。此外,每个平行四边形预测可与当前顶点的顶点位置的真值进行比较。此外,一个或多个平行四边形预测的平均值可与真实位置值进行比较。当前顶点的预测可根据一个或多个平行四边形预测和一个或多个平行四边形预测的平均值来确定。在一个示例中,可基于比较的最小预测误差来确定当前顶点的预测。可存储提供最小预测误差的预测的索引。预测的索引可称为预测索引。预测索引可指示平行四边形预测之一或平行四边形预测的平均值。可进一步对预测索引和相关联的预测误差(还可称为预测残差)进行编码。预测器误差或预测残差可指示当前顶点与预测顶点之间的差。
在本公开中,可以对三角形网格中的所有三角形进行排序。例如,可基于Edgebreaker算法对三角形进行排序。此外,还可以对三角形网格中的所有顶点或顶点的子集进行排序。在一个示例中,可基于三角形的顺序对顶点进行排序。
给定三角形网格中的顶点V,且顶点V包括N个预测候选(或预测三角形)。N个预测候选可产生N个预测值,V1’,V2’,…,VN’。例如,如图4B所示,当前顶点(420)可具有两个预测三角形(430)和(432)。预测三角形(430)和预测三角形(432)中的每一个预测三角形可分别产生相应的预测值(或预测顶点),例如预测值(422)和预测值(424)。当前顶点的预测值可基于网格中对应的预测三角形的顺序来排序。如果确定预测值中存在重复,则可以从预测值列表中去除此类重复。
在一个示例中,如果N=0,则不存在可用于顶点V的预测候选。如果V是网格中待编码的第一个顶点,则该第一个顶点的预测值V’可设置为0,且预测残差R可设置为V。因此,V’=0,R=V。如果V不是待编码的第一个顶点,则V的预测值V’可设置为按顶点顺序在先前编码的顶点的已编码值。因此,先前编码的顶点可以是顶点V的预测器。预测残差R可确定为顶点V与预测值(或预测顶点)V’之间的差,R=V–V’。
在一个示例中,如果N=1,则仅有一个预测候选可用于顶点V。因此,可基于这一个预测候选来确定预测值V’,预测残差R可确定为V与V’之间的差,R=V–V’。
在一个示例中,如果N>=2,则多于一个预测候选可用于顶点V。因此,可基于该多于一个预测候选来确定多个预测值(或预测顶点)。在一个实施例中,预测值的平均值可被视为附加预测器V0’。V0’可以在等式(5)中确定:
V0’ =(V1’+ V2’ +…+ VN’)/N 等式(5)
如果平均预测值V0’等于预测值V1’、V2’、…、VN’之一,则可去除平均预测值V0’或重复的预测值。
在编码器侧,Vi’(其中0<=i<=N)可与V进行比较。可选择预测索引j。所选择的预测索引j指示Vi’中的一个选定预测值,该选定预测值对应于V与每个预测值Vi’之间的最小预测残差。在一些实施例中,最小化误差(或最小预测残差)可通过L0范数、L1范数、L2范数或一些其它范数来测量。例如,L0范数可以在等式(6)中确定,如下:
其中,Vx、Vy和Vz是V在xyz空间中的坐标,V0x’、V0y’和V0z’是V0’在xyz空间中的坐标。
在解码器侧,可以对选择的索引(例如,预测索引)进行解码,且可以从预测器列表中恢复所选择的预测器(或预测值)。例如,解码器可基于诸如平行四边形预测的预测模式来确定当前顶点的一个或多个预测值。此外,可以将一个或多个预测值的平均值作为预测器。可以对平均预测值和一个或多个预测值进行排序,以形成预测列表。在一个示例中,在解码器侧生成的预测列表可与在编码器侧生成的预测列表相同。根据已解码的预测索引,可基于来自预测列表的预测索引来恢复所选择的预测器。
在一个实施例中,可设置上限M。上限M可指示在预测列表中可考虑(或应用)多少个预测候选。在一种情况下,如果N>M,则对于网格中的每个顶点,仅考虑前M个预测候选。因此,应用与前M个预测候选相关联的预测值V1’,V2’,…,VM’。在一个实施例中,前M个预测值的平均值可以在等式(7)中确定:
V0’ =(V1’+ V2’ +…+ VM’)/M 等式(7)
其中,M可以是整数,例如4。因此,可考虑多达M个(例如,4个)预测候选。应注意,平均预测V0’可放置于候选列表中的不同位置。在一个示例中,平均预测V0’可以是预测候选列表中的第一个预测器。在一个示例中,平均预测V0’可以是预测候选列表中的最后一个预测器。在一个示例中,平均预测V0’可位于预测值V1’、V2’、…、VM’中。
在一些实施例中,可以在仅存在多于一个预测候选的情况下,对预测索引进行编码。例如,当两个或更多个预测候选可用于当前顶点时,可以在编码器侧对指示所选择的预测候选的索引进行编码。在解码器侧,解码器可以以与编码器相同的顺序来确定两个或更多个预测候选。解码器可以对已编码的预测索引进行解码,且基于预测索引从两个或更多个预测候选中重建所选择的预测候选。
在一个实施例中,如果未确定预测候选,或者仅确定一个预测候选,则可不需要对预测索引进行编码。因此,预测值可以是当前顶点本身,或者是这一个预测候选。在一个实施例中,无论有多少个预测候选可用,可以总是对预测索引进行编码。当不存在可用的预测时,用信号发送的索引的值不影响解码器侧的解码过程。
当针对当前顶点确定多于一个预测候选时,可使用固定长度编码对预测索引进行编码。例如,如果对当前顶点确定3个预测候选,则可能需要4个的预测索引0、1、2、3(0指示候选1、2、3的平均值)。因此,可应用两位二进制数来表示4个预测索引中的每一个。应注意,三角形网格的不同顶点可使用不同的固定长度。例如,如果另一个顶点具有7个预测候选,则另一个顶点可使用三位二进制数用于表示预测索引。来自固定长度编码的输出还可通过诸如算术编码之类的熵编码来压缩。
可替选地,可使用可变长度编码对预测索引进行编码。例如,如果对当前顶点确定了4个预测候选,则可能需要5个预测索引0、1、2、3、4。可分配可变长度代码0、100、101、110、111来分别表示5个预测索引0、1、2、3、4。可替选地,可应用可变长度代码1、01、001、0001和00001来分别表示5个预测索引0、1、2、3、4。应注意,三角形网格的不同顶点可使用不同的可变长度。来自可变长度编码的输出还可通过诸如算术编码之类的熵编码来压缩。
可替选地,可以对预测索引进行差分编码,其中可根据先前编码的预测索引来预测当前顶点的预测索引,还可以对与预测索引相关联的预测误差进行编码。例如,首先可以对预测器的第一预测索引与预测器的第二预测索引之间的差进行编码。可进一步基于第一预测索引与第二预测索引之间的差对第二预测索引进行编码。
当上限M设置为限制预测候选的最大数量时,如果多于M个预测候选可用于顶点V,则只有前M个预测候选可用于预测顶点V。因此,可以对(M+1)个可能的预测索引进行编码,其中M指示前M个预测候选,1指示前M个预测候选的平均值。如果在预测值中确定存在重复,则可去除此类重复。因此,还可减少预测索引存在的可能性。预测索引可通过固定长度编码、可变长度编码、差分编码等进行编码。
在一个实施例中,可以编码(或确定)位置值(或预测值)的预测残差R。预测残差R可指示当前顶点与当前顶点的预测值之间的差。预测残差R可通过固定长度编码、指数-哥伦布(Golomb)编码、算术编码等进行编码。因此,解码器可基于预测值和预测残差来重建当前顶点,其中,可基于已解码预测索引根据预测列表来确定预测值。
图7示出了根据本公开的一个实施例的概述过程(700)的流程图。过程(700)可用于编码器(例如,视频编码器)。在各种实施例中,过程(700)由处理电路执行,处理电路例如是执行视频编码器(103)的功能的处理电路、执行视频编码器(303)的功能的处理电路等。在一些实施例中,过程(700)在软件指令中实现,因此当处理电路执行软件指令时,处理电路执行过程(700)。该过程在(S701)开始并前进到(S710)。
在步骤(S710)处,网格包括多个顶点。基于网格中的多个三角形来确定多个顶点中的当前顶点的多个候选预测。多个三角形中的每个三角形对应于相应的候选预测。
在步骤(S720)处,从多个候选预测中确定当前顶点的预测。在一个示例中,该预测对应于当前顶点与多个候选预测中的每个候选预测之间的阈值预测差。
在步骤(S730)处,还基于所确定的预测生成当前顶点的预测信息。
在一些实施例中,为了确定当前顶点的多个候选预测,针对当前顶点确定多个三角形中的第一三角形。第一三角形与多个三角形中的第二三角形共享一条边,当前顶点包括在第二三角形中且与所共享的边相对。基于所确定的第一三角形,通过平行四边形预测来确定多个候选预测中的第一预测,其中,第一预测和第一三角形形成第一平行四边形。
在一些实施例中,为了确定当前顶点的多个候选预测,确定多个候选预测的平均预测。
在一些实施例中,为了确定当前顶点的预测,针对当前顶点确定预测列表。预测列表包括预测器。预测器包括平均预测和预测列表中位于平均预测之后的多个候选预测。预测列表中的多个候选预测的顺序依赖于与多个候选预测对应的多个三角形的顺序。对预测列表中的每个预测器确定相应的预测索引。
在一个示例中,基于Edgebreaker算法对多个三角形进行排序,在Edgebreaker算法中,以螺旋式三角形生成树顺序来标记多个三角形。
在一个示例中,为了确定当前顶点的预测,确定预测列表的每个预测器与当前顶点之间的预测差。还从预测列表中的预测器中确定与预测差中的最小预测差对应的预测。
在一个示例中,为了确定当前顶点的预测,在预测列表的预测器子集中确定具有最小预测差的预测。
在一些实施例中,基于固定长度编码、可变长度编码和差分编码之一,对预测列表中的每个预测器确定相应的预测索引。
在一些实施例中,基于差分编码确定相应的预测索引。在一个示例中,确定预测器的第一预测索引与预测器的第二预测索引之间的差。还基于第一预测索引与第二预测索引之间的差,对第二预测索引进行编码。
在一些实施例中,当前顶点的预测信息包括:指示预测列表中所确定的预测的索引信息;以及指示当前顶点与所确定的预测之间的差的残差信息。
然后,过程(700)进行到(S799)并终止。
过程(700)可适当地进行调整。可修改和/或省略过程(700)中的步骤。可添加额外的步骤。可使用任何合适的实现顺序。
图8示出了根据本公开的一个实施例的概述过程(800)的流程图。过程(800)可用于解码器(例如,视频解码器)。在各种实施例中,过程(800)由处理电路执行,处理电路例如是执行视频解码器(110)的功能的处理电路,执行视频解码器(210)的功能的处理电路等。在一些实施例中,过程(800)在软件指令中实现,因此当处理电路执行该软件指令时,处理电路执行过程(800)。该过程在(S801)开始并前进到(S810)。
在步骤(S810)处,接收包括多个三角形和多个顶点的网格的编码信息。编码信息包括多个顶点中的当前顶点的索引信息,索引信息指示当前顶点的预测。
在(S820)处,基于多个三角形来确定当前顶点的多个候选预测,其中多个三角形中的每个三角形对应于相应的候选预测。
在(S830)处,基于索引信息,从多个候选预测中确定当前顶点的预测。所确定的预测对应于当前顶点与多个候选预测中的每个候选预测之间的阈值预测差。
在(S840)处,基于所确定的预测重建当前顶点。
然后,该过程进行到(S899)并终止。
过程(800)可适当地进行调整。可修改和/或省略过程(800)中的步骤。可添加额外的步骤。可使用任何合适的实现顺序。
上述技术可实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质(例如,非暂时性计算机可读存储介质)中。例如,图9示出了适于实施所公开的主题的某些实施例的计算机系统(900)。
可使用任何合适的机器代码或计算机语言对计算机软件进行编码,此类合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,这些指令可由处理电路(例如,一个或多个计算机中央处理单元(central processing unit,CPU)、图形处理单元(graphics processing unit,GPU)等)直接执行,或者通过解释、微代码执行等执行。
指令可以在各种类型的计算机或其组件上执行,计算机或其组件包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图9所示的计算机系统(900)的组件本质上是示例性的,并不旨在对实施本公开的实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应解释为具有与计算机系统(900)的示例性实施例中所示的组件中的任何一个组件或组件的组合相关的任何依赖或要求。
计算机系统(900)可包括某些人机接口输入设备。此类人机接口输入设备可响应一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动、数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口设备还可用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取的拍摄图像)、视频(例如,二维视频、包括立体视频的三维视频)。
人机接口输入设备可包括下述的一项或多项(每种中仅示出一个):键盘(901)、鼠标(902)、触控板(903)、触摸屏(910)、数据手套(未示出)、操纵杆(905)、麦克风(906)、扫描仪(907)、相机(908)。
计算机系统(900)还可包括某些人机接口输出设备。此类人机接口输出设备可通过例如触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出设备可包括触觉输出设备(例如,触摸屏(910)的触觉反馈、数据手套(未示出)或操纵杆(905),但还可以是不作为输入设备的触觉反馈设备)、音频输出设备(例如:扬声器(909)、耳机(未描绘))、视觉输出设备(例如,包括阴极射线管(cathode-ray tube,CRT)屏幕、液晶显示器(liquid crystal display,LCD)屏幕、等离子屏幕、有机发光二极管(organic light-emitting diode,OLED)屏幕的触摸屏(910),每种屏幕具有或没有触摸屏输入功能,每种屏幕具有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)之类的装置来输出二维视觉输出或超过三维的输出。
计算机系统(900)还可包括人机可访问的存储设备及其关联介质,例如包括具有CD/DVD等介质(921)的只读存储器(read-only memory,ROM)/可擦写(read/write,RW)CD/DVD(920)的光学介质、指状驱动器(922)、可拆卸硬盘驱动器或固态驱动器(923)、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用ROM/专用集成电路(application specific integrated circuit,ASIC)/可编程逻辑器件(programmablelogic device,PLD)的设备(未描绘)等。
本领域技术人员还应该理解,结合当前公开的主题所使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。
计算机系统(900)还可包括通向一个或多个通信网络(955)的接口(954)。网络可例如是无线网络、有线网络、光网络。网络还可以是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网(localarea network,LAN)、无线LAN、包括全球移动通信系统(global system for mobile,GSM)、第三代(3rd generation,3G)、第四代(4th generation,4G)、第五代(5th generation,5G)、长期演进(long term evolution,LTE)等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括控制器区域网络总线(controller areanetwork bus,CANbus)的车辆和工业网络等。某些网络通常需要附接到某些通用数据端口或外围总线(949)的外部网络接口适配器(例如,计算机系统(900)的通用串行总线(universal serial bus,USB)端口);如下所述,其它网络接口通常通过附接到系统总线而集成到计算机系统(900)的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(900)可使用这些网络中的任何网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANBus设备的CANBus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上所述,可以在那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口设备、人机可访问的存储设备和网络接口可附接到计算机系统(900)的内核(940)。
内核(940)可包括一个或多个CPU(941)、GPU(942)、现场可编程门区域(fieldprogrammable gate areas,FPGA)(943)形式的专用可编程处理单元、用于某些任务的硬件加速器(944)、图形适配器(950)等。这些设备以及ROM(945)、随机存取存储器(random-access memory,RAM)(946)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(947)可通过系统总线(948)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(948),以能够通过附加的CPU、GPU等进行扩展。外围设备可直接附接到内核的系统总线(948)或通过外围总线(949)附接到内核的系统总线(948)。在一个示例中,屏幕(910)可连接到图形适配器(950)。外围总线的架构包括外围组件互联(peripheral component interconnection,PCI)、USB等。
CPU(941)、GPU(942)、FPGA(943)和加速器(944)可执行某些指令,这些指令可组合来构成上述计算机代码。该计算机代码可存储在ROM(945)或RAM(946)中。过渡数据还可存储在RAM(946)中,而永久数据可例如存储在内部大容量存储器(947)中。可通过使用高速缓存来进行通向任何存储设备的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个CPU(941)、GPU(942)、大容量存储(947)、ROM(945)、RAM(946)等。
计算机可读介质可以在其上具有执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。
作为示例,而非限制方式,可由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行体现在一种或多种有形的计算机可读介质中的软件而使得具有架构,特别是内核(940)的计算机系统(900)提供功能。此类计算机可读介质可以是与如上所介绍的用户可访问的大容量存储相关联的介质,以及某些非暂时性内核(940)的存储器,例如内核内部大容量存储器(947)或ROM(945)。实施本公开的各种实施例的软件可存储在此类设备中并由内核(940)执行。根据特定需要,计算机可读介质可包括一个或多个存储设备或芯片。软件可使得内核(940),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(946)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或作为替代,可由于硬连线或以其它方式体现在电路(例如:加速器(944))中的逻辑而使得计算机系统提供功能,该电路可替代软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如,集成电路(integrated circuit,IC))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。
虽然本公开已描述多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。
Claims (20)
1.一种在视频编码器中执行的网格处理的方法,所述方法包括:
确定当前顶点的多个候选预测,所述当前顶点位于网格的多个顶点中,基于所述网格中的多个三角形来确定所述多个候选预测,所述多个三角形中的每个三角形对应于相应的候选预测;
从所述多个候选预测中确定所述当前顶点的预测,所述当前顶点的预测对应于所述当前顶点与所述多个候选预测中的每个候选预测之间的阈值预测差;以及
基于所确定的预测生成所述当前顶点的预测信息。
2.根据权利要求1所述的方法,其中,所述确定当前顶点的多个候选预测还包括:
针对所述当前顶点确定所述多个三角形中的第一三角形,所述第一三角形与所述多个三角形中的第二三角形共享一条边,所述当前顶点包括在所述第二三角形中且与所共享的边相对;以及
基于所确定的第一三角形,通过平行四边形预测来确定所述多个候选预测中的第一预测,在所述平行四边形预测中,所述第一预测和所述第一三角形形成第一平行四边形。
3.根据权利要求2所述的方法,其中,所述确定当前顶点的多个候选预测还包括:
确定所述多个候选预测的平均预测。
4.根据权利要求3所述的方法,其中,所述确定当前顶点的预测还包括:
针对所述当前顶点确定预测列表,所述预测列表的预测器包括所述平均预测和所述预测列表中位于所述平均预测之后的多个候选预测,所述预测列表中所述多个候选预测的顺序依赖于与所述多个候选预测对应的多个三角形的顺序;以及
对所述预测列表中的每个预测器确定相应的预测索引。
5.根据权利要求4所述的方法,其中,基于Edgebreaker算法对所述多个三角形进行排序,在所述Edgebreaker算法中,以螺旋式三角形生成树顺序来标记所述多个三角形。
6.根据权利要求4所述的方法,其中,所述确定当前顶点的预测还包括:
确定所述预测列表中的每个预测器与所述当前顶点之间的预测差;以及
从所述预测列表的预测器中确定与所述预测差中的最小预测差对应的预测。
7.根据权利要求6所述的方法,其中,所述确定当前顶点的预测还包括:
在所述预测列表的预测器子集中确定具有所述最小预测差的预测。
8.根据权利要求4所述的方法,其中,所述确定相应的预测索引还包括:
基于固定长度编码、可变长度编码和差分编码之一,对所述预测列表中的每个预测器确定相应的预测索引。
9.根据权利要求8所述的方法,其中,
基于所述差分编码确定相应的预测索引,
所述基于所述差分编码确定相应的预测索引还包括:
确定所述预测器的第一预测索引与所述预测器的第二预测索引之间的差;以及
基于所述第一预测索引与所述第二预测索引之间的差,对所述第二预测索引进行编码。
10.根据权利要求4所述的方法,其中,所述当前顶点的预测信息还包括:
指示所述预测列表中所确定的预测的索引信息;以及
指示所述当前顶点与所确定的预测之间的差的残差信息。
11.一种用于网格处理的装置,所述装置包括:
处理电路,配置成:
确定当前顶点的多个候选预测,所述当前顶点位于网格的多个顶点中,基于所述网格中的多个三角形来确定所述多个候选预测,所述多个三角形中的每个三角形对应于相应的候选预测;
从所述多个候选预测中确定所述当前顶点的预测,所述当前顶点的预测对应于所述当前顶点与所述多个候选预测中的每个候选预测之间的阈值预测差;以及
基于所确定的预测生成所述当前顶点的预测信息。
12.根据权利要求11所述的装置,其中,所述处理电路配置成:
针对所述当前顶点确定所述多个三角形中的第一三角形,所述第一三角形与所述多个三角形中的第二三角形共享一条边,所述当前顶点包括在所述第二三角形中且与所共享的边相对;以及
基于所确定的第一三角形,通过平行四边形预测来确定所述多个候选预测中的第一预测,在所述平行四边形预测中,所述第一预测和所述第一三角形形成第一平行四边形。
13.根据权利要求12所述的装置,其中,所述处理电路配置成:
确定所述多个候选预测的平均预测。
14.根据权利要求13所述的装置,其中,所述处理电路配置成:
针对所述当前顶点确定预测列表,所述预测列表的预测器包括所述平均预测和所述预测列表中位于所述平均预测之后的多个候选预测,所述预测列表中所述多个候选预测的顺序依赖于与所述多个候选预测对应的多个三角形的顺序;以及
对所述预测列表中的每个预测器确定相应的预测索引。
15.根据权利要求14所述的装置,其中,基于Edgebreaker算法对所述多个三角形进行排序,在所述Edgebreaker算法中,以螺旋式三角形生成树顺序来标记所述多个三角形。
16.根据权利要求14所述的装置,其中,所述处理电路配置成:
确定所述预测列表中的每个预测器与所述当前顶点之间的预测差;以及
从所述预测列表的预测器中确定与所述预测差中的最小预测差对应的预测。
17.根据权利要求16所述的装置,其中,所述处理电路配置成:
在所述预测列表的预测器子集中确定具有所述最小预测差的预测。
18.根据权利要求14所述的装置,其中,所述处理电路配置成:
基于固定长度编码、可变长度编码和差分编码之一,对所述预测列表中的每个预测器确定相应的预测索引。
19.根据权利要求18所述的装置,其中,
基于所述差分编码确定相应的预测索引,
所述处理电路配置成:
确定所述预测器的第一预测索引与所述预测器的第二预测索引之间的差;以及
基于所述第一预测索引与所述第二预测索引之间的差,对所述第二预测索引进行编码。
20.根据权利要求14所述的装置,其中,所述当前顶点的预测信息还包括:
指示所述预测列表中所确定的预测的索引信息;以及
指示所述当前顶点与所确定的预测之间的差的残差信息。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263344394P | 2022-05-20 | 2022-05-20 | |
US63/344,394 | 2022-05-20 | ||
US18/126,152 | 2023-03-24 | ||
US18/126,152 US20230377205A1 (en) | 2022-05-20 | 2023-03-24 | Vertex position prediction in mesh compression |
PCT/US2023/017372 WO2023224737A1 (en) | 2022-05-20 | 2023-04-04 | Vertex position prediction in mesh compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117461059A true CN117461059A (zh) | 2024-01-26 |
Family
ID=88791848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202380011066.8A Pending CN117461059A (zh) | 2022-05-20 | 2023-04-04 | 网格压缩中的顶点位置预测 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230377205A1 (zh) |
JP (1) | JP2024533471A (zh) |
KR (1) | KR20240132364A (zh) |
CN (1) | CN117461059A (zh) |
WO (1) | WO2023224737A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6262737B1 (en) * | 1998-01-30 | 2001-07-17 | University Of Southern California | 3D mesh compression and coding |
DE10393630B4 (de) * | 2002-10-31 | 2007-10-25 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren und System zur Kodierung der Konnekrivität eines Dreiecknetzes |
US7620106B2 (en) * | 2003-09-07 | 2009-11-17 | Microsoft Corporation | Joint coding and decoding of a reference field selection and differential motion vector information |
EP2216750A1 (en) * | 2009-02-06 | 2010-08-11 | Thomson Licensing | Method and apparatus for encoding 3D mesh models, and method and apparatus for decoding encoded 3D mesh models |
-
2023
- 2023-03-24 US US18/126,152 patent/US20230377205A1/en active Pending
- 2023-04-04 JP JP2024515923A patent/JP2024533471A/ja active Pending
- 2023-04-04 WO PCT/US2023/017372 patent/WO2023224737A1/en active Application Filing
- 2023-04-04 CN CN202380011066.8A patent/CN117461059A/zh active Pending
- 2023-04-04 KR KR1020247026855A patent/KR20240132364A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
WO2023224737A1 (en) | 2023-11-23 |
KR20240132364A (ko) | 2024-09-03 |
US20230377205A1 (en) | 2023-11-23 |
JP2024533471A (ja) | 2024-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113785593B (zh) | 用于视频编解码的方法和装置 | |
CN113994383A (zh) | 点云编解码方法和装置 | |
CN113519163B (zh) | 点云压缩的方法、装置和存储介质 | |
CN111641836B (zh) | 点云压缩的方法、装置、计算机设备和存储介质 | |
CN113796014A (zh) | 对点云编码的属性进行编码的方法 | |
CN111641834B (zh) | 点云编码的方法和装置、计算机设备和存储介质 | |
CN115529464B (zh) | 视频编码、解码的方法、装置、设备和计算机可读介质 | |
CN112399165B (zh) | 解码方法及装置以及计算机设备和存储介质 | |
JP2023551303A (ja) | メッシュ復元のための方法、装置及びコンピュータプログラム | |
CN118400526A (zh) | 视频解码、编码的方法、装置、电子设备及可读介质 | |
CN117461059A (zh) | 网格压缩中的顶点位置预测 | |
US20240022764A1 (en) | Texture coordinate coding in mesh compression | |
US20240015324A1 (en) | Vertex position coding in mesh compression | |
US20240073433A1 (en) | Uv coordinate ranges and texture map size | |
US20240095965A1 (en) | Duplicate vertices merging in mesh compression | |
US20230014820A1 (en) | Methods and apparatuses for dynamic mesh compression | |
CN117678219A (zh) | 基于时间预测的顶点位置压缩 | |
CN118541733A (zh) | 位置压缩中的网格顶点分组 | |
CN118202385A (zh) | 基于重复顶点的位置压缩 | |
KR20240112296A (ko) | 인스턴스 기반 메시 코딩을 위한 적응적 양자화 | |
KR20240074813A (ko) | 메시 코딩에서의 변위 벡터에 대한 로컬 좌표계의 고속 계산 | |
CN118830003A (zh) | 网格运动矢量编解码中重复顶点的自适应合并 | |
CN118525308A (zh) | 网格编码中的位移矢量局部坐标系的快速计算 | |
CN118679740A (zh) | 基于多模板的帧内模板匹配预测 | |
CN118613838A (zh) | 用于网格位移译码的比特流语法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |