视频编码或解码方法、装置、计算机设备和存储介质与流程

文档序号:24571554发布日期:2021-04-06 12:17阅读:94来源:国知局
视频编码或解码方法、装置、计算机设备和存储介质与流程

本申请要求2019年10月3日提交的第62/910,390号美国临时申请、2019年10月3日提交的第62/910,395号美国临时申请、2020年1月9日提交的第62/958,852号美国临时申请以及2020年9月24日提交的第17/031,114号美国正式申请的优先权,所述申请的公开内容通过引用整体并入本文。

本申请涉及视频编解码技术,特别是涉及视频解码方法、装置、计算机设备和存储介质。



背景技术:

对这个世界的高级三维(3d)表示,使得更多沉浸式的互动和交流形式成为可能,并且也使机器可以理解、解读和导航我们这个世界。3d点云已经成为此类信息的一种表示。目前人们已经确定出与点云数据相关联的多个用例,并且已经开发出点云表示和压缩的相应要求。

点云是3d空间中的一组点,每个点都具有相关联的属性,例如,颜色、材质。点云可以用于将一个对象或一个场景重建为这种点的组合。点云可以用各种设置中的多个相机和深度传感器进行采集,并且可由数千个点甚至数十亿个点组成,以逼真地表示重建的场景。

减少用于表示一个点云的数据量,需要使用压缩技术。因此,需要有对实时通信和六自由度(6dof)虚拟现实中使用的点云的有损压缩的技术。另外,人们也在寻求在自主驾驶应用和文化遗产应用等的动态映射上下文中使用的无损点云压缩的技术。运动图片专家组(movingpictureexpertsgroup,mpeg)已经开始致力于开发标准,用于处理几何结构和属性(例如,颜色和反射率)的压缩、可缩放/渐进式编码、随时间采集的点云序列的编码、以及对点云子集的随机访问。

然而,对于点云数据,在一些情况下,需要从有损到无损或近乎无损的保真度的可缩放的数据重建。



技术实现要素:

本申请实施例提供了一种视频编解码方法,包括:

获取与点云相对应的属性信号;

确定无损提升是否被启用;

基于确定无损提升被启用,修改多个量化权重和多个提升系数中的至少一个;

基于所修改的所述多个量化权重和所述多个提升系数中的至少一个,将所述属性信号分解为多个细节信号和多个近似信号;

基于所述多个细节信号和所述多个近似信号,生成表示所述点云的码流。

本申请实施例提供了一种视频编解码装置,包括:

获取模块,用于获取与点云相对应的属性信号;

确定模块,用于确定无损提升是否被启用;

修改模块,用于基于确定无损提升被启用,修改多个量化权重和多个提升系数中的至少一个;

分解模块,用于基于所修改的所述多个量化权重和所述多个提升系数中的至少一个,将所述属性信号分解为多个细节信号和多个近似信号;

生成模块,用于基于所述多个细节信号和所述多个近似信号,生成表示所述点云的码流。

本申请实施例提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现本申请任一实施例所述的方法。

本申请实施例提供了一种存储指令的非暂时性计算机可读介质,所述指令当由计算机执行时,使得所述计算机执行本申请任一实施例所述的方法。

本申请实施例提供的技术方案提供了在当前的gpcc提升设计下实现属性的可缩放编解码的方法,从而提高了视频解码效率。

附图说明

图1是根据实施例的通信系统的框图。

图2是根据实施例的在环境中的g-pcc压缩器和g-pcc解压缩器的布置的图。

图3是根据实施例的g-pcc压缩器的功能框图。

图4是根据实施例的g-pcc解压缩器的功能框图。

图5是用于g-pcc中的p/u提升的架构的图。

图6是图示根据实施例的用于点云属性编解码的方法的流程图。

图7是根据实施例的用于点云属性编解码的装置的框图。

图8是适合于实施实施例的计算机系统的图。

具体实施方式

本申请的实施例涉及当前的g-pcc提升设计,并且涉及对其进行扩展或修改以实现提升系数的无损编解码的方法。另外,本申请的实施例涉及在当前的g-pcc提升设计下的属性的可缩放的编解码。这些实施例可以应用于为点云设计的类似的编解码器。

图1是根据本申请实施例的通信系统100的框图。通信系统100可以包括经由网络150互连的至少两个终端110和120。对于数据的单向传输,第一终端110可在本地位置对点云数据进行编码,以便将其经由网络150传输到第二终端120。第二终端120可以从网络150接收第一终端110的已编码的点云数据,对已编码的点云数据进行解码并且显示已解码的点云数据。单向数据传输在媒体服务应用等之中可能是常见的。

图1还示出了第二对终端130和140,所述第二对终端130和140被提供来支持例如在视频会议期间可能出现的已编码的点云数据的双向传输。对于数据的双向传输,每个终端130或140可以对在本地位置采集的点云数据进行编码,以便将其经由网络150传输给另一个终端。每个终端130或140还可以接收由另一个终端传输的已编码的点云数据,可以对已编码的点云数据进行解码,并且可在本地显示设备上显示已解码的点云数据。

在图1中,终端110-140可能是图示为服务器、个人计算机和智能电话,但是本申请实施例的原理不限于此。本申请实施例适用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议装备。网络150表示在终端110-140之间传送已编码的点云数据的任意数量的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换通道和/或分组交换通道中交换数据。代表性网络包括电信网络、局域网、广域网和/或因特网。出于本申请讨论的目的,除非在下文中另有解释,否则网络150的架构和拓扑对于本申请实施例的操作而言,可能是不重要的。

图2是根据本申请实施例的g-pcc压缩器203和g-pcc解压缩器210在环境中的放置示意图。本申请所公开的主题可以同等地适用于其他通过点云实现的应用,包括例如视频会议、数字电视、在数字介质(包括cd、dvd、记忆棒等)上存储压缩的点云数据等。

流系统200可以包括采集子系统213,所述采集子系统213可以包括点云源201,例如,数码相机,用于创建例如未压缩的点云数据202。具有较高数据量的点云数据202可由耦接到点云源201的g-pcc压缩器203处理。g-pcc压缩器203可以包括硬件、软件或其组合,以实施或实现本申请所公开主题的各方面,在下文详细描述。具有较低数据量的已编码的点云数据204可以存储在流服务器205上,以供将来使用。至少一个流客户端206和208可以访问流服务器205来检索已编码的点云数据204的副本207和209。客户端206可以包括g-pcc解压缩器210,所述g-pcc解压缩器210对已编码的点云数据的输入副本207进行解码,并且创建可在显示器212或其他呈现设备(未示出)上呈现的传出点云数据211。在一些流系统中,已编码的点云数据204、207和209可以是根据视频编码/压缩标准进行编码。这些标准的示例包括mpeg针对g-pcc开发的那些标准。

图3是根据本申请实施例的g-pcc压缩器203的功能框图。

如图3中所示,g-pcc压缩器203包括量化器305、点去除模块310、八叉树编码器315、属性传送模块320、lod生成器325、预测模块330、量化器335和算术编码器340。

量化器305接收输入点云中的点的位置。所述位置可以是(x,y,z)坐标。量化器305还使用例如缩放算法和/或移位算法,对接收到的位置进行量化。

点去除模块310从量化器305接收量化的位置,并且从接收到的量化的位置中去除或滤除重复的位置。

八叉树编码器315从点去除模块310接收过滤后的位置,并且使用八叉树编码算法,将接收到的过滤后的位置编码成用于表示输入的点云的八叉树的占用符号。对应于八叉树的输入点云的界定框(boundingbox)可以是任何3d形状,例如,立方体。

八叉树编码器315还基于对过滤后的位置进行编码,来对接收到的过滤后的位置进行重新排序。

属性传送模块320接收输入点云中的点的属性。所述属性可以包括例如每个点的颜色或rgb值和/或反射率。属性传送模块320还从八叉树编码器315接收重新排序的位置。

属性传送模块320还基于接收到的重新排序的位置,更新接收到的属性。例如,属性传送模块320可以对接收到的属性执行预处理算法中的一种或多种预处理算法,所述预处理算法包括例如对接收到的属性进行加权和平均以及对接收到的属性之外其他属性进行插值。属性传送模块320进一步将更新的属性传送到预测模块330。

lod生成器325从八叉树编码器315接收重新排序的位置,并且获得与接收到的重新排序的位置对应的点中的每个点的lod。每个lod都可以认为是一组点,并且可以基于点中的每个点的距离来获得。

预测模块330从属性传送模块320接收传送的属性,并且从lod生成器325接收所获得的所述点中的每个点的lod。预测模块330通过以基于所接收到的所述点中每个点的lod的顺序,对接收到的属性应用预测算法,以相应地获得所接收到的属性的预测残差(值)。所述预测算法可以包括各种预测算法中的任一种,例如,插值、加权平均计算、最近邻算法和rdo等。

量化器335从预测模块330接收所获得的预测残差,并且使用例如缩放算法和/或移位算法,对接收到的预测残差进行量化。

算术编码器340从八叉树编码器315接收占用符号,并且从量化器335接收量化的预测残差。算术编码器340对接收到的占用符号和量化的预测残差执行算术编码,以获得压缩码流。所述算术编码可以包括各种熵编码算法中的任一种,例如,上下文自适应二进制算术编码等。

图4是根据本申请实施例的g-pcc解压缩器210的功能框图。

如图4所示,g-pcc解压缩器210包括算术解码器405、八叉树解码器410、逆量化器415、lod生成器420、逆量化器425和逆预测模块430。

算术解码器405从g-pcc压缩器203接收压缩码流,并且对接收到的压缩码流执行算术解码,以获得占用符号和量化的预测残差。算术解码可以包括各种熵解码算法中的任一种,例如,上下文自适应二进制算术解码等。

八叉树解码器410从算术解码器405接收所获得的占用符号,并且使用八叉树解码算法将接收到的占用符号解码成量化的位置。

逆量化器415从八叉树解码器410接收量化的位置,并且使用例如缩放算法和/或移位算法,对接收到的量化的位置进行逆量化,以获得输入点云中的点的重建的位置。

lod生成器420从八叉树解码器410接收量化的位置,并且获得与接收到的量化的位置对应的点中每个点的lod。

逆量化器425接收所获得的量化的预测残差,并且使用例如缩放算法和/或移位算法,对接收到的量化的预测残差进行逆量化,以获得重建的预测残差。

逆预测模块430从逆量化器425接收所获得的重建的预测残差,并且从lod生成器420接收所获得的所述点中每个点的lod。逆预测模块430通过以基于所接收到的所述点中每个点的lod的顺序,对接收到的重建的预测残差应用预测算法,以相应地获得所接收到的重建的预测残差的重建属性。所述预测算法可以包括各种预测算法中的任一种,例如,插值、加权平均计算、最近邻算法和rdo等。重建的属性是输入点云中的点的重建的属性。

现在将详细描述用于对点云属性进行编解码的通道间预测和变换的方法和装置。这些方法和装置可在上文描述的g-pcc压缩器203(即,预测模块330)中实现。所述方法和装置也可在g-pcc解压缩器210(即,逆预测模块430)中实现。

图5是用于g-pcc中的p/u(预测/更新)提升的架构的图。为了便于提升方案中的预测步骤和更新步骤的执行,必须在分解的每个阶段,将信号拆分成两组高相关性。在g-pcc中的提升方案中,通过利用lod结构来执行拆分,在所述lod结构中,在层次之间预计会有此类高相关性,并且每个层次是通过最近相邻点搜索来构造,以将非均匀的点云组织成结构化数据。在层次n的p/u分解步骤会产生细节信号d(n-1)和近似信号a(n-1),所述近似信号a(n-1)被进一步分解成d(n-2)和a(n-2)。重复应用所述步骤,直到获得基本层近似信号a(1)。

因此,不是对由lod(n)、…、lod(1)组成的输入属性信号本身进行编码,而是对提升方案中的d(n-1)、d(n-2)、…、d(1)、a(1)进行编码。请注意,应用高效的p/u步骤通常会导致d(n-1)、…、d(1)中的子带“系数”稀疏,从而具有变换编解码增益的优势。

目前,上文描述的用于预测变换的基于距离的加权平均预测被用于提升方案中的预测步骤,作为g-pcc中的锚定方法。

g-pcc模型分别压缩几何信息和诸如颜色或反射率的相关属性。是点云的3d坐标的几何信息由它的占用信息的八叉树分解进行编码。另一方面,属性信息由类似差分脉冲编码调制(dpcm)的技术进行编码,该技术在不同层次之间执行lod(细节层次)数据的闭环预测。基于已解码的几何信息,在编码器和解码器处以相同的方式构建lod信息。基本上,lod以这样的方式构建:随着提供更多的lod,以连续的方式获得给定点云的更多详细信息。当对属性编码执行基于样本的预测时,利用基于最近邻居的树搜索来寻找相邻样本以进行加权预测。该权重被计算为相邻样本中的每一个的几何距离的倒数。

提升变换,例如图5所示的p/u提升,可以建立在上述预测变换之上。预测方案和提升方案之间的主要区别是引入了更新算子。

上述基于lod的预测策略使得较低的lod中的点更具影响力,因为它们更常用于预测。设w(p)是与点p相关联的影响权重。然后通过应用以下递归过程计算w(p):

·为所有点设置w(p)=1

·根据由lod结构定义的顺序的倒数遍历点

·对于每个点q(i,j),如下更新其邻居的权重:

w(p)←w(p)+w(q(i,j),j)α(p,q(i,j))。

更新算子使用预测残差d(q(i,j))来更新lod(j)的属性值。更确切地说,设δ(p)是点q(i,j)的集合,使得p的更新操作可以定义如下:

在变换过程期间计算的影响权重被利用,以引导量化过程。更准确地说,与点p相关联的系数乘以因子√(w(p))。在解码器侧的逆量化之后应用相同因子的逆缩放过程。应注意,缩放因子完全由重建的几何确定,并且它们不需要在码流中编码。

在实施例中,可以使用提升和预测方案的定点版本。例如,可以用定点运算代替浮点运算,可以使用平方根函数的近似版本,可以使用基于lut的除法近似来避免计算预测权重、更新权重以及量化/未量化的系数所需的昂贵的除法,并且可以如下对更新操作进行更新,以便减小定点运算所需的比特深度:

g-pcc测试模型tmc13中的提升方案是基于定点实现的,并且引入了用于适当处理整数运算的数值范围的两个缩放因子。第一个是kfixedpointweightshift,其执行上述用于更新步骤的‘权重’的缩放。另一个是kfixedpointattributeshift,其放大提升系数,使得可以保持信号的适当的动态范围。

实施例涉及对该提升方案的两个改变。

涉及quantizationweights的第一种变化如下:

其中,divexp2roundhalfinf(w,s)是执行w除以2^s的整数除法的操作,将中间半值从零取整。并且,isrqt(x)是数字x的平方根的整数近似。

在该步骤中,当lossless_flag被设置为1时,执行量化权重到kfixedpointweightshift/2的倍数的取整。这是必要的,因为提升系数将在量化之前由缩放。

关于kfixedpointattributeshift,可以为预测/更新步骤引入额外的取整,如下所示:

预测-步骤:

更新-步骤:

当经历预测/更新步骤时,所得系数的值不总是(1<<kfixedpointattributeshift)的倍数,而原始缩放系数是(1<<kfixedpointattributeshift)的倍数。在此建议的步骤中,更新/预测步骤的输出被取整到kfixedpointattributeshift的倍数,使得当作为更新/预测步骤的结果的提升系数未经量化而被编码时,在重建的最后阶段,在按相同的量缩放回之后,重建可以是无损的。注意,由于这种截断发生在预测/更新步骤内部,因此仍然保持了整数可逆性。

在实施例中,当kfixedpointattributeshift被设置为0并且在提升过程期间仍然可以保持适当的动态范围时,可以省略该步骤。

下面的表1和表2涉及可以在上述实施例的实施中使用的参数集语法的改变。

表1

表2

等于1的lifting_lessive_enabled_flag可以指定属性解码过程执行无损重建所需的截断步骤。

在实施例中,过程inverseupdate()可以在下文中定义。

该过程的输入可以是:指定属性大小的变量attrcnt;一系列属性系数attributecoefficients[i][j],其中i在0到pointnum-1(包括端值)的范围内,并且j在0到attrcnt-1(包括端值)的范围内;预测阵列predictionweights[i][n],其中i在0到pointnum-1(包括端值)的范围内,并且n在0到numprednearestneighbours-1(包括端值)的范围内。

该过程可以更新属性系数attributecoefficients。其可以如下进行:

在实施例中,过程inverseprediction()可以如下定义。该过程的输入可以是:指定属性大小的变量attrcnt;一系列属性系数attributecoefficients[i][j],其中i在0到pointnum-1(包括端值)的范围内,并且j在0到attrcnt-1(包括端值)的范围内;量化权重阵列quantizationweights[i],其中i在0到pointnum-1(包括端值)的范围内;预测阵列predictionweights[i][n],其中i在0到pointnum-1(包括端值)的范围内,并且n在0到numprednearestneighbours-1(包括端值)的范围内;阵列pointcountperlevelofdetail[l],其中l在0到leveldetailcount-1(包括端值)的范围内;指定用于量化权重的定点表示精度的变量fixedpointweightshift。

该过程可以更新属性系数attributecoefficients。其如下进行:

在实施例中,量化权重导出过程可以如下定义。可以在当前推导步骤结束时添加以下内容。

实施例可以涉及在多个比特平面上从每个提升变换系数的msb(最高有效比特)向下到lsb(最低有效比特)的迭代。

给定每个比特平面层次,计算对应的量化步长,并且将每个系数是否大于所述步长用信号通知为‘有效’比特。一旦确定其是有效的,就立即发送符号比特。对于在先前的比特平面层次中的一个中被确定为有效的系数,发送‘修正’比特以指示在系数值的二进制表示中对应的比特是否为零。

与系数编码的当前g-pcc锚设计一致,如果来自连续系数的上述‘有效’或‘修正’比特是一系列零,则发送zero_cnt,而不对这些比特进行显式编码。当系数中的任意一个恰好在该特定层次具有非零比特时,zero_cnt被设置为0,并且上述比特被逐个显式编码。

在下面的描述中,给出了用于解码过程的c类伪码,其中reflectance是单通道点云信号的代表性类型,并且quantweight是上述的解码器已经可用的量化加权因子。

reflectance可以是解码过程的输出并且在开始时被初始化为零。

numlevel可以是考虑所有系数的reflectance*quantweight的最大绝对值的msb,并且在解码过程开始时被发送到解码器。

lastlevel可以是对应于最终量化层次的reflectance*quantweight的lsb。

signif[predictorindex]可以指示具有等于predictorindex的索引的系数是否已被展示为有效的(即,大于先前的量化层次中的一个)。

sign[predictorindex]可以指示已经有效的系数的符号。

decodezerocnt()可以返回用于正被解码的提升系数的连续集合的二进制表示中的特定比特平面层次处的零的数量。

decodesign()可以返回刚刚在当前比特平面层次处变为有效的系数的符号。

在下面的描述中,给出了用于解码过程的c类伪码,其中color是三通道点云信号的代表性类型,并且quantweight是以上描述的解码器已经可用的量化加权因子。

color可以是解码过程的输出并且在开始时被初始化为零。

numlevel可以是考虑所有系数的color*quantweight的最大绝对值的msb,并且在开始时被发送到解码器。

lastlevel可以是对应于最终量化层次的color*quantweight的lsb。

signif[predictorindex]可以指示具有等于predictorindex的索引的系数是否已被展示为有效的(即,大于先前的量化层次中的一个)

sign[predictorindex]可以指示已经有效的系数的符号。

decodezerocnt()可以返回用于正被解码的提升系数的连续集合的二进制表示中的特定比特平面层次处的零的数量。这里,‘零’对应于系数的所有三个分量都为零的情况。

decodesignificant(d)可以在系数的第d通道在当前比特平面层次处有效时返回1。否则其可以返回0。

decodesign(d)可以返回刚刚在当前比特平面层次处变为有效的系数的第d通道的符号。

decoderefine(d)可以在系数的第d通道在当前比特平面层次处的它的值的二进制表示中具有1时返回1,其中该系数已经在先前的比特平面层次中的一个处变为有效。

否则其返回0。

实施例可以涉及在多个比特平面上从每个提升变换系数的msb(最高有效比特)向下到lsb(最低有效比特)的迭代。

在嵌入式系数编解码中,给定提升系数的二进制表示,可以逐比特平面地检查所有系数(从msb到lsb)。在每个比特平面,检查每个系数是否大于比特平面的对应的量化步长。结果作为‘有效’比特被发送。一旦确定其是有效的,就立即发送符号比特。对于在先前的比特平面层次中的一个中被确定为有效的系数,发送‘修正’比特以指示在系数值的二进制表示中对应的比特是否为零。

在实施例中,可以采用集合划分思想,以便于在g-pcc中的提升方案的上下文中的上述有效性信息的编解码。

在当前的g-pcc提升设计中,作为用于选择预测候选的lod(细节层次)生成的结果,云中的所有点被分类并被分配predictorindex。基于范围是从0到点的最大数量减1的predictorindex来执行提升系数的编解码。

可以基于跨多个lod的点的相关性来定义集合。

如果体素集合s中的至少一个成员或体素具有大于或等于阈值的系数值,则体素集合s或体素可以是有效的。由γn(s)按以下所指示,其中vi表示具有predictorindexi的点(即,体素)的系数值。

无效集合列表(lis)可以包含已被发现具有小于阈值的幅度的变换系数的集合。

无效体素列表(liv)可以包含具有小于阈值的幅度的单个系数。

有效体素列表(lsv)可以包含具有大于或等于阈值的幅度的单个系数。

o(i)可以是具有predictorindexi的点的直接后代的集合,其中当具有predictorindexi的点属于lod(n)时,后代都属于lod(n+1)。

d(i)可以是具有predictorindexi的点的后代的集合,其中,当具有predictorindexi的点属于lod(n)时,后代可以属于lod(n+1)到lod(numoflod_minusl)。

可以是具有predictorindexi的点的后代的集合,其中,当具有predictorindexi的点属于lod(n)时,后代可以属于lod(n+2)到lod(numoflod_minus1)。

解码算法可以如下进行:

1、初始化

-解码nmax,其是最大比特平面数量。设置n为nmax。

-设置lsv为空列表,并将lod(0)中的所有点的predictorindex’s添加到liv,并且作为类型a条目添加到lis中。

2、分拣阶段

-在对包括在该阶段本身期间新创建的条目在内的lis列表中的所有条目进行一次测试之后,该阶段结束。

步骤(a):

-对于liv中的每个predictorindexi,执行:

(i)解码γn(i);

(ii)如果γn(i)=1,则将predictorindexi移动到lsv并且解码predictorindexi的符号;

步骤(b):

-对于lis中的每个条目i,执行:

(i)如果条目是类型a,则

●解码γ(d(i));

●如果γn(d(i))=1,则

○对于每个predictoridxk∈o(i),执行:

■解码γn(k);

■如果γn(k)=1,则将predictorindexk添加到lsv并解码predictorindexk的符号;

■如果γn(k)=0,则将predictorindexk添加到liv的末尾。

○如果则将predictorindexi

作为类型b移动到lis的末尾;否则从lis中移除predictorindexi;

(ii)如果条目是类型b,则

●解码

●如果

○将每个predictorindexk∈o(i)作为类型a添加到lis的末尾;

○从lis中移除predictorindexi;

3、修正阶段

-对于lsv中的每个predictorindexi,除了包括在最后的分拣阶段中的那些(即,具有相同的n),对predictorindexi的第n最高有效比特进行解码。

4、阈值更新

-将n减少1,并转至步骤2(分拣阶段)。

在实施例中,假设predictorindexi属于lod(n),d(i)可以包括lod(n+1)至lod(numoflod_minus1)中的所有“连接的”点,因为这些点直接或间接使用predictorindexi作为多个预测值之一。类似地,o(i)可以包括lod(n+1)中的所有“连接的”点,因为这些点直接使用predictorindexi作为多个预测值之一。

作为示例,当前的g-pcc测试模型采用基于几何距离或类似度量的最近邻居搜索以从较低的lod层选择候选预测值。这个选择过程从顶部lod到底部lod重复,并将根据预测用途直接地或间接地“连接”点。

在实施例中,假设predictorindexi属于lod(n),d(i)可以包括lod(n+1)至lod(numoflod_minus1)中的所有“连接的”点,因为这些点直接地或间接地使用predictorindexi作为所选择的多个预测值之中的最接近的预测值。类似地,o(i)可以包括lod(n+1)中的所有“连接的”点,因为这些点直接使用predictorindexi作为所选择的多个预测值之中的最接近的预测值。

作为示例,当前的g-pcc测试模型采用基于几何距离或类似度量的最近邻居搜索以从较低的lod层选择候选预测值。这个选择过程从顶部lod到底部lod重复,并将根据预测用途直接地或间接地“连接”点。

在实施例中,假设predictorindexi属于lod(n),d(i)可以包括lod(n+1)至lod(numoflod_minus1)中的属于3d坐标的范围的所有点,对于该范围,具有predictorindexi的点是最近的邻居。类似地,o(i)包括lod(n+1)中的属于3d坐标的范围的所有点,对于该范围,具有predictorindexi的点是最近的邻居。

图6是图示根据实施例的点云属性编解码的方法600的流程图。在一些实施方式中,图6的一个或多个处理框可以由g-pcc解压缩器210执行。在一些实施方式中,图6的一个或多个处理框可以由诸如g-pcc压缩器203的与g-pcc解压缩器210分离或包括g-pcc解压缩器210的另一个设备或一组设备执行。

参见图6,在第一方框610中,方法600包括获取与点云相对应的属性信号。

在第二方框620中,方法600包括确定无损提升是否被启用。

基于确定无损提升被启用,方法600继续到第三方框630中。在第三方框630中,方法600包括修改多个量化权重和多个提升系数中的至少一个。然后,在第四方框640中,方法600包括基于所修改的所述多个量化权重和所述多个提升系数中的至少一个,将所述属性信号分解为多个细节信号和多个近似信号。

基于确定无损提升被启用,方法600跳过第三方框630,并且进行到第四方框640。在这种情况下,该方法包括基于未修改的多个量化权重和多个提升系数,将所述属性信号分解为多个细节信号和多个近似信号。

在第五方框650中,方法600包括基于所述多个细节信号和所述多个近似信号,生成表示所述点云的码流。

在第六方框660中,方法600包括发送所述码流。

在实施例中,可以基于无损提升标志来确定启用所述无损提升。

在实施例中,所述修改可以进一步包括:将所述多个量化权重中的每一个取整为预定权重常数的倍数。

在实施例中,所述修改可以进一步包括:将所述多个提升系数中的每一个取整为预定提升常数的倍数。

在实施例中,方法600可以进一步包括:

检查所述多个提升系数中的提升系数的比特平面,以确定所述比特平面是否大于所述比特平面的对应的量化步长,并且基于确定的结果设置有效比特。

在实施例中,基于确定所述比特平面大于所述对应的量化步长,所述有效比特被设置为指示所述比特平面是有效的。

在实施例中,方法600进一步包括:

基于被确定为有效的先前的比特平面,基于表示所述比特平面的比特的值来设置修正比特。

在实施例中,所述属性信号与所述点云的反射率有关。

在实施例中,所述属性信号与所述点云的颜色有关。

尽管图6示出了方法600的示例方框,但是在一些实施方式中,方法600可以包括比图6中所描绘的那些更多的方框、更少的方框、不同的方框或不同地布置的方框。另外地或可替代地,可以并行地执行方法600的两个或更多个方框。

此外,所提出的方法可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)实施。在示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序以执行所提出的方法中的一个或多个。

图7是根据实施例的用于点云属性编解码的装置700的框图。

参见图7,装置700包括获取代码710、确定代码720、修改代码730、分解代码740、生成代码750和发送代码760。

获取代码710被配置为使至少一个处理器获取与点云相对应的属性信号。

确定代码720被配置为使至少一个处理器确定无损提升是否被启用。

修改代码730被配置为使至少一个处理器基于确定无损提升被启用,修改多个量化权重和多个提升系数中的至少一个。

分解代码740被配置为使至少一个处理器基于所修改的所述多个量化权重和所述多个提升系数中的至少一个,将所述属性信号分解为多个细节信号和多个近似信号。

生成代码750被配置为使至少一个处理器基于所述多个细节信号和所述多个近似信号,生成表示所述点云的码流。

发送代码760被配置为使至少一个处理器发送所述码流。

在实施例中,可以基于无损提升标志来确定启用所述无损提升。

在实施例中,所述修改代码被进一步配置为使至少一个处理器将所述多个量化权重中的每一个取整为预定权重常数的倍数。

在实施例中,所述修改代码被进一步配置为使至少一个处理器将所述多个提升系数中的每一个取整为预定提升常数的倍数。

在实施例中,装置700进一步包括被配置为使至少一个处理器检查所述多个提升系数中的提升系数的比特平面,以确定所述比特平面是否大于所述比特平面的对应的量化步长的检查代码,和被配置为使至少一个处理器基于确定的结果设置有效比特的第一设置代码。

在实施例中,基于确定所述比特平面大于所述对应的量化步长,所述有效比特可以被设置为指示所述比特平面是有效的。

在实施例中,装置700进一步包括被配置为使至少一个处理器基于被确定为有效的先前的比特平面,基于表示所述比特平面的比特的值来设置修正比特的第二设置代码。

在实施例中,所述属性信号与所述点云的反射率有关。

在实施例中,所述属性信号与所述点云的颜色有关。

在本申请实施例中,多个指两个及两个以上。

本申请实施例提供了一种视频编解码方法,包括:

获取与点云相对应的属性信号;

确定无损提升是否被启用;

基于确定无损提升被启用,修改多个量化权重和多个提升系数中的至少一个;

基于所修改的所述多个量化权重和所述多个提升系数中的至少一个,将所述属性信号分解为多个细节信号和多个近似信号;

基于所述多个细节信号和所述多个近似信号,生成表示所述点云的码流。

本申请实施例提供了一种视频编解码装置,包括:

获取模块,用于获取与点云相对应的属性信号;

确定模块,用于确定无损提升是否被启用;

修改模块,用于基于确定无损提升被启用,修改多个量化权重和多个提升系数中的至少一个;

分解模块,用于基于所修改的所述多个量化权重和所述多个提升系数中的至少一个,将所述属性信号分解为多个细节信号和多个近似信号;

生成模块,用于基于所述多个细节信号和所述多个近似信号,生成表示所述点云的码流。

本申请实施例提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现本申请任一实施例所述的方法。

本申请实施例提供了一种存储指令的非暂时性计算机可读介质,所述指令当由计算机执行时,使得所述计算机执行本申请任一实施例所述的方法。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请任一实施例所述的方法。

图8是适于实施本申请的实施例的计算机系统800的图。

可使用任何合适的机器代码或计算机语言来编码所述计算机软件,所述机器代码或计算机语言可经受汇编、编译、链接或类似机制以创建包括指令的代码,所述指令可直接或通过解译、微码执行等而由计算机中央处理单元(centralprocessingunit,cpu)、图形处理单元(graphicsprocessingunit,gpu)等执行。

可在各种类型的计算机或计算机组件上执行所述指令,所述计算机或计算机组件包括例如个人计算机、平板电脑、服务器、智能电话、游戏装置、物联网装置等。

图8中所示的用于计算机系统800的组件是示范性的,并非旨在暗示关于实施本申请的实施例的计算机软件的使用或功能的范围的任何限制。也不应将组件的配置解释为对计算机系统800的实施例中所示的组件中的任一个组件或组件组合有任何依赖或需求。

计算机系统800可包括某些人机接口输入装置。此类人机接口输入装置可响应于至少一个人类用户通过例如触觉输入(例如:按键、滑动、数据手套移动)、音频输入(例如:语音、拍击)、视觉输入(例如:手势)、嗅觉输入(未描绘)进行的输入。人机接口装置还可用于捕获未必与人的有意识输入直接相关的某些媒体,例如音频(例如:话语、音乐、环境声)、图像(例如:扫描图像、从静态图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

输入人机接口装置可包括以下至少一个(每种仅描绘一个):键盘801、鼠标802、轨迹垫803、触摸屏810、操纵杆805、麦克风806、扫描仪807、相机808。

计算机系统800还可包括某些人机接口输出装置。此类人机接口输出装置可通过例如触觉输出、声音、光和气味/味道刺激至少一个人类用户的感觉。此类人机接口输出装置可包括触觉输出装置(例如触摸屏810或操纵杆805的触觉反馈,但还可存在不充当输入装置的触觉反馈装置)、音频输出装置(例如:扬声器809、头戴式耳机(未描绘))、视觉输出装置(例如屏幕810,包括阴极射线管(crt)屏幕、液晶显示器(lcd)屏幕、等离子体屏幕、有机发光二极管(oled)屏幕,各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力--其中的一些能够通过例如立体平画输出的方式输出二维视觉输出或大于三维的输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾箱(未描绘)),以及打印机(未描绘)。图形适配器850生成图像并将其输出到触摸屏810。

计算机系统800还可包括人类可访问的存储装置和存储装置的相关联介质,例如光学介质,包括具有cd/dvd等介质821的cd/dvdrom/rw驱动器820、拇指驱动器822、可移动硬盘驱动器或固态驱动器823、磁带和软盘(未描绘)等旧版磁性媒体、基于rom/asic/pld的专用装置,例如安全保护装置(未描绘),等等。

所属领域的技术人员还应理解,结合当前公开的主题使用的术语“计算机可读介质”并未涵盖传输介质、载波或其它瞬时信号。

计算机系统800还可包括到至少一个通信网络855的接口。通信网络855可例如是无线的、有线的、光学的。网络855还可以是本地的、广域的、城域的、车载和工业的、实时的、容忍延迟的等等。网络855的示例包括例如以太网、无线lan的局域网、包括全球移动通信系统(gsm)、第三代(3g)、第四代(4g)、第五代(5g)、长期演进(lte)等的蜂窝网络、包括有线tv、卫星tv和地面广播tv的tv有线或无线广域数字网络、包括can总线的车载网络和工业网络等。网络855通常需要附接到某些通用数据端口或外围总线849(例如,计算机系统800的通用串行总线(usb)端口)的外部网络接口适配器;其它网络通常通过附接到如下文所描述的系统总线而集成到计算机系统800的核心中,例如,网络接口854包括到pc计算机系统的以太网接口,和/或到智能电话计算机系统的蜂窝网络接口。通过使用这些网络855中的任一网络,计算机系统800可与其它实体通信。此类通信可以是仅单向接收(例如广播tv)、仅单向发送(例如连到某些can总线装置的can总线)或是双向的,例如使用局域数字网络或广域数字网络连接到其它计算机系统。可在如上文所描述的那些网络855和网络接口854中的每一个上使用某些协议和协议栈。

上述人机接口装置、人类可访问存储装置和网络接口854可附接到计算机系统800的核心840。

核心840可包括至少一个中央处理单元(centralprocessingunit,cpu)841、图形处理单元(graphicsprocessingunit,gpu)842、现场可编程门区域(fieldprogrammablegateareas,fpga)形式的专用可编程处理单元843、用于某些任务的硬件加速器844等等。这些装置连同只读存储器(read-onlymemory,rom)845、随机存取存储器(ram)846、例如内部非用户可访问的硬盘驱动器、固体驱动(solid-statedrive,ssd)等内部大容量存储装置847可通过系统总线848连接。在一些计算机系统中,系统总线848可通过至少一个物理插头形式访问以实现通过额外cpu、gpu等来扩展。外围装置可直接或通过外围总线849附接到核心的系统总线848。用于外围总线的架构包括外围部件互连(pci)、usb等等。

cpu841、gpu842、fpga843和加速器844可执行某些指令,所述指令组合起来可构成上述计算机代码。计算机代码可存储在rom845或ram846中。过渡数据也可存储在ram846中,而永久性数据可例如存储在内部大容量存储装置847中。可通过使用高速缓冲存储器来实现对任一存储器装置的快速存储和检索,所述高速缓冲存储器可与至少一个cpu841、gpu842、大容量存储装置847、rom845、ram846等紧密关联。

计算机可读介质上可具有用于执行各种计算机实施的操作的计算机代码。所述介质和计算机代码可以是专为本申请的目的设计和构建的介质和计算机代码,或可属于计算机软件领域中的技术人员众所周知且可用的种类。

作为示例但不作为限制,具有架构且尤其是核心840的计算机系统800可提供因处理器(包括cpu、gpu、fpga、加速器等)执行以至少一个有形计算机可读介质体现的软件而产生的功能。此类计算机可读介质可以是与上文所介绍的用户可访问大容量存储装置以及核心840的非暂时性质的某些存储装置(例如核心内部大容量存储装置847或rom845)相关联的介质。实施本申请的各种实施例的软件可存储在此类装置中且由核心840执行。根据特定需求,计算机可读介质可包括至少一个存储器装置或芯片。软件可使核心840且具体地说使其中的处理器(包括cpu、gpu、fpga等等)执行本文中所描述的特定过程或特定过程的特定部分,包括限定存储在ram846中的数据结构以及根据由软件限定的过程修改此类数据结构。另外或作为替代方案,计算机系统可提供由硬连线的或以其它方式体现于电路(例如:硬件加速器844)中的逻辑所产生的功能,所述逻辑可代替或连同软件一起操作以执行本文描述的特定过程或特定过程的特定部分。适当时,对软件的引用可涵盖逻辑,且反之亦然。适当时,对计算机可读介质的引用可涵盖存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或这两种电路。本申请实施例涵盖硬件与软件的任何合适的组合。

尽管本申请描述了若干实施例,但在本申请的范围内,可以有各种改动、排列组合方式以及各种替代等同物。因此,应该理解,在申请的精神和范围内,本领域技术人员能够设计出各种虽未在本文明确示出或描述、但可以体现本申请的原理的系统和方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1