CN116982083A - 编码/解码点云几何数据的方法和装置 - Google Patents
编码/解码点云几何数据的方法和装置 Download PDFInfo
- Publication number
- CN116982083A CN116982083A CN202180094369.1A CN202180094369A CN116982083A CN 116982083 A CN116982083 A CN 116982083A CN 202180094369 A CN202180094369 A CN 202180094369A CN 116982083 A CN116982083 A CN 116982083A
- Authority
- CN
- China
- Prior art keywords
- radius
- context
- point
- point cloud
- residual
- 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
- 238000000034 method Methods 0.000 title claims abstract description 96
- 238000003860 storage Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 21
- 230000006835 compression Effects 0.000 description 18
- 238000007906 compression Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000011664 signaling Effects 0.000 description 8
- 238000013139 quantization Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 206010012812 Diffuse cutaneous mastocytosis Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 235000019994 cava Nutrition 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001541 differential confocal microscopy Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 238000012800 visualization Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
提供了将点云编码到编码的点云数据的比特流中/从编码的点云数据的比特流中解码点云的方法和装置。该方法基于用于预测与点云的点相关联的半径的预测数据来选择上下文,并且通过使用所选择的上下文来对与点云的点相关联的残差半径进行熵编码/解码。
Description
技术领域
本申请一般而言涉及点云压缩,特别地涉及将点云几何数据编码/解码成比特流的方法和装置。
背景技术
本节旨在向读者介绍本领域的各个方面,这些方面可以与下面描述和/或要求保护的本申请的至少一个示例性实施例的各个方面有关。本讨论被认为有助于向读者提供背景信息以促进对本申请的各个方面的更好理解。
作为3D数据的表示的一种格式,点云最近获得了关注,因为它们在表示所有类型的物理对象或场景方面具有多种能力。点云可以被用于各种目的,诸如文化遗产/建筑物,其中以3D方式扫描如雕像或建筑物之类的物体,以便在不发送或不访问物体的情况下共享物体的空间配置。而且,它是确保在物体可能被破坏的情况下保存物体的知识的方式;例如,被地震破坏的寺庙。此类点云通常是静态的、彩色的和巨大的。
另一个用例是在拓扑学和制图学中,其中使用3D表示允许地图不限于平面并且可以包括地貌。谷歌地图现在是3D地图的良好示例,但使用网格而不是点云。不过,点云可以是3D地图的合适数据格式,并且此类点云通常是静态的、彩色的且巨大的。
虚拟现实(VR)、增强现实(AR)和沉浸式世界最近成为热门话题,并被许多人预见为2D平面视频的未来。其基本理念是让观众沉浸在周围环境中,而标准电视只允许观众观看他/她眼前的虚拟世界。根据观众在环境中的自由度,沉浸感有几个层次。点云是分发VR/AR世界的良好格式候选。
汽车行业,尤其是可预见的自动驾驶汽车,也是可以大量使用点云的领域。自动驾驶汽车应当能够“探测”它们的环境,以基于检测到的它们的最接近的附近物体的存在和性质以及道路配置做出良好的驾驶决策。
点云是位于三维(3D)空间中的点集合,可选地为每个点附加有附加值。这些附加值通常被称为属性。属性可以是例如三分量颜色、材料特性(如反射率)和/或与点相关联的表面的双分量法向量。
因此,点云是几何(3D空间中点的位置,通常由3D笛卡尔坐标x、y和z表示)和属性的组合。
点云可以由各种类型的设备捕获,如相机的阵列、深度传感器、激光器(光检测和测距,也称为激光雷达)、雷达,或者可以由计算机生成(例如,在电影后期制作中)。取决于用例,点云可以有数千到数十亿个点用于制图学应用。点云的原始表示要求每个点的比特数非常多,每个笛卡尔坐标x、y或z至少有十几个比特,并且可选地为(一个或多个)属性提供更多比特,例如10比特的三倍以用于颜色。
在许多应用中,通过仅消耗合理数量的比特率或存储空间同时维持可接受的(或优选地非常好的)体验质量,能够向最终用户分发点云或将它们存储在服务器中,是非常重要的。这些点云的高效压缩是使许多沉浸式世界的分发链实用的关键点。
对于由最终用户进行的分发和可视化,例如在AR/VR眼镜或任何其他支持3D的设备上,压缩可以是有损的(如在视频压缩中)。其他用例确实要求无损压缩,如医疗应用或自动驾驶,以避免更改从压缩和传输的点云的后续分析中获得的决策的结果。
直到最近,大众市场还没有解决点云压缩(又名PCC)问题,也没有可用的标准化的点云编解码器。2017年,标准化工作组ISO/JCT1/SC29/WG11,也称为运动图像专家组或MPEG,发起了关于点云压缩的工作项目。这带来了两个标准,即
·MPEG-I第5部分(ISO/IEC 23090-5)或基于视频的点云压缩(V-PCC)
·MPEG-I第9部分(ISO/IEC 23090-9)或基于几何的点云压缩(G-PCC)
V-PCC编码方法通过对3D对象执行多次投影来压缩点云,以获得打包到图像(或处理动态点云时的视频)中的2D图块。然后使用现有的图像/视频编解码器压缩获得的图像或视频,从而允许充分利用已经部署的图像和视频解决方案。就其本质而言,V-PCC仅在密集和连续的点云上是高效的,因为图像/视频编解码器无法压缩非平滑的图块,例如从激光雷达捕获的稀疏几何数据的投影中获得的非平滑的图块。
G-PCC编码方法有两种用于压缩捕获的几何数据的方案。
第一种方案基于占用树,在本地是八叉树、四叉树或二叉树中的任何类型的树,表示点云几何形状。被占用的节点被拆分直到达到一定尺寸,并且被占用的叶节点提供点的3D位置,通常在这些节点的中心处。占用信息通过占用标志携带,占用标志发信号通知节点的每个子节点的占用状态。通过使用基于邻居的预测技术,可以获得密集点云的占用标志的高水平压缩。稀疏点云也可以通过直接编码节点内非最小尺寸的点的位置来解决,当节点中仅存在孤立点时停止树构造;这种技术被称为直接编码模式(DCM)。
第二种方案基于预测树,其中每个节点表示一个点的3D位置,并且节点之间的父/子关系表示从父到子的空间预测。这种方法只能解决稀疏点云,并提供比占用树更低时延和更简单解码的优势。但是,相对于第一种基于占用的方法,压缩性能仅稍微好一点,并且编码也是复杂的,因为编码器在构造预测树时必须(在潜在预测器的长列表中)集中寻找最佳预测器。
在这两种方案中,属性(解码)编码是在完成几何(解码)编码之后执行的,实际上导致了两次编码。因此,联合几何/属性低延迟是通过使用将3D空间分解成独立编码的子体积的切片获得的,而无需在子体积之间进行预测。当使用许多切片时,这会严重影响压缩性能。
将对编码器和解码器简单性、低时延和压缩性能的要求结合在一起仍然是现有点云编解码器尚未令人满意解决的问题。
重要的用例是传输由安装在移动车辆上的自旋传感器头(例如,自旋激光雷达头)捕获的稀疏几何数据。这通常要求简单且低时延的嵌入式编码器。要求简单性,因为编码器可能部署在并行执行其他处理(诸如(半)自动驾驶)的计算单元上,从而限制了点云编码器可用的处理能力。还要求低时延以允许从汽车到云端的快速传输,以便基于多车辆采集实时查看本地交通,并基于交通信息做出足够快速的决策。虽然通过使用5G可以使传输时延足够低,但编码器本身不应因编码而引入太多时延。而且,压缩性能极其重要,因为从数百万辆汽车到云端的数据流预计将非常庞大。
与由自旋传感器头捕获的稀疏几何数据相关的特定先验已经被用来获得非常高效的编码/解码方法。
例如,G-PCC利用来自自旋传感器头的捕获仰角(相对于水平地面),如图1和图2中所示。自旋传感器头10包括传感器11(例如,激光器)的集合,这里表示了五个传感器。自旋传感器头10可以围绕竖直轴z自旋以捕获物理对象的几何数据,即点云的点的3D位置。由自旋传感器头捕获的几何数据然后用球坐标(r3D,φ,θ)表示,其中r3D是点P与自旋传感器头的中心的距离,φ是传感器头相对于参考的自旋的方位角,并且θ是自旋传感器头的传感器的仰角索引k相对于水平参考平面(这里是y轴)的仰角。例如,仰角索引k可以是传感器k的仰角,或者在单个传感器连续探测连续仰角中的每个仰角的情况下的第k个传感器位置。
在由自旋传感器头捕获的几何数据上观察到沿着方位角的规则分布,如图3上所描绘的。这种规律性在G-PCC中用于获得点云的准1D表示,其中,直到噪声,只有半径r3D属于连续值范围,而角度φ和θ仅采用离散数量的值,至I-1,其中I是用于捕获点的方位角的数量,/>至K-1,其中K是自旋传感器头10的传感器数量。基本上,G-PCC表示由自旋传感器头在2D离散角平面(φ,θ)上捕获的稀疏几何数据,如图3上所描绘的,以及每个点的半径值r3D。
通过在球坐标空间中通过使用角度的离散性质基于已经编码的点预测当前点的位置,这种准1D特性已在G-PCC中的占用树和预测树两者中得到利用。
更精确地说,占用树大量使用DCM,并通过使用上下文自适应熵编码器对节点内的点的直接位置进行熵编码。然后从点位置到坐标(φ,θ)的本地转换以及这些坐标相对于从已经编码的点获得的离散坐标(φi,θk)的位置获得上下文。
使用这个坐标空间的准1D性质(r,φi,θk),预测树直接编码球坐标(r,φ,θ)中的当前点的位置的第一版本,其中r是水平xy平面上的投影半径,如图4上由r2D所描绘的。然后,将球坐标(r,φ,θ)转换成3D笛卡尔坐标(x,y,z),并对xyz残差进行编码以解决坐标转换的误差、仰角和方位角的近似以及潜在噪声。
图5示出了类似于基于G-PCC预测树的编码器的点云编码器。
首先,通过(r,φ,θ)=C2A(x,y,z)将点云的点的笛卡尔坐标(x,y,z)转换成球坐标(r,φ,θ)。
变换函数C2A(.)部分由下式给出:
r=round(sqrt(x*x+y*y)/ΔIr)
φ=round(atan2(y,x)/ΔIφ)
其中round()是舍入到最接近的整数值的舍入运算,sqrt()是平方根函数,atan2(y,x)是应用于y/x的反正切。
ΔIr和ΔIφ分别是半径和方位角的内部精度。它们通常与它们各自的量化步长相同,即,ΔIφ=Δφ,和ΔIr=Δr与
和
Δr=2M*elementary quantization step
其中M和N是编码器的两个参数,例如,其可以在几何参数集中的比特流中发信号通知,并且elementary quantization step通常等于1。通常,对于无损编码,N可以为17,M可以为0。
编码器可以通过最小化对笛卡尔空间中的球坐标表示和xyz残差进行编码的成本(例如,比特数)来得到Δφ和Δr。
为了简单起见,在下文中,Δφ=ΔIφ和Δr=ΔIr。
此外,为了清楚和简单起见,在下文中,θ被用作仰角值,该仰角值例如使用而获得,
其中atan(.)是反正切函数。但是,在G-PCC中,例如,θ是表示θk的仰角索引k(即,第k个仰角的索引)的整数值,因此,在下文中呈现的对θ执行的操作(预测、残差(解码)编码等)将改为应用于仰角索引。点云压缩中的技术人员很容易理解使用索引k的优势,以及如何使用仰角索引k而不是θ。此外,点云压缩中的技术人员将容易理解,这种细微性不影响本发明的原理。
然后在球坐标(r,φ,θ)和从预测器PRn中获得的预测的球坐标之间的残差球坐标(rres,φres,θres)由下式给出:
(rres,φres,θres)=(r,φ,θ)-(rpred,φpred,θpred)=(r,φ,θ)-PRn-(0,m*φstep,0) (1)
其中PRn是选自候选预测器PR0,...,PRN-1的列表的预测器,n是指向候选预测器列表的所选择的预测器的预测器索引,m是待加到方位角的预测上的基本方位角步长φstep的整数数量。
基本方位角步长φstep可以由编码器从自旋传感器头在不同仰角处执行捕获的频率和转速中导出,例如从NP中导出每头转动的探测次数:
并且在几何参数集中的比特流中发信号通知。可选地,NP是编码器的参数,其可以在几何参数集中的比特流中发信号通知,并且φstep类似地在编码器和解码器两者中导出。
残差球坐标(rres,φres,θres)可以在比特流B中编码。
残差球坐标(rres,φres,θres)可以在量化的残差球坐标Q(rres,φres,θres)中被量化(Q)。量化的残差球坐标Q(rres,φres,θres)可以在比特流B中编码。
对于预测树的每个节点,预测索引n和数量m被发信号通知到比特流B中,而具有某个定点精度的基本方位步长φstep由同一预测树的所有节点共享。
预测器列表的预测器可以是用于预测与点云的点相关联的半径、方位角和仰角的任何预测器。
例如,候选预测器PR0可以等于(rmin,φ0,θ0),其中rmin是最小半径值(例如,在几何参数集中提供),并且如果当前节点(与点云的点P相关联)没有父节点或者等于与父节点相关联的点的方位角和仰角,则φ0和θ0等于0。
另一个候选预测器PR1可以等于(r0,φ0,θ0),其中r0,φ0和θ0分别是与当前节点的父节点相关联的点的半径、方位角和仰角。
另一个候选预测器PR2可以等于使用与当前节点的父节点相关联的点的半径、方位角和仰角(r0,φ0,θ0)以及与祖父节点相关联的点的半径、方位角和仰角(r1,φ1,θ1)的半径、方位角和仰角的线性预测。
例如,PR2=2*(r0,φ0,θ0)-(r1,φ1,θ1)。
另一个候选预测器PR3可以等于使用与当前节点的父节点相关联的点的半径、方位角和仰角(r0,φ0,θ0)、与祖父节点相关联的点的半径、方位角和仰角(r1,φ1,θ1)以及与曾祖父节点相关联的点的半径、方位角和仰角(r2,φ2,θ2)的半径、方位角和仰角的线性预测。
例如,PR3=(r0,φ0,θ0)+(r1,φ1,θ1)-(r2,φ2,θ2)。
另一个候选预测器PR4也可以等于:
PR4=(rdec,φdec,θ0)
其中如果与点云的点P相关联的预测树的节点没有父节点,则θ0等于0,或者等于与父节点相关联的点的仰角,或者等于预定的最小仰角,并且其中rdec和φdec是例如与父节点相关联的先前解码的半径和先前解码的方位角。
预测的笛卡尔坐标(xpred,ypred,zpred)是通过下式对解码的球坐标(rdec,φdec,θdec)进行逆变换而获得的:
(xpred,ypred,zpred)=A2C(rdec,φdec,θdec) (2)
其中解码的球坐标(rdec,φdec,θdec)可以由下式给出,如通过解码器给出:
(rdec,φdec,θdec)=(rres,dec,φres,dec,θres,dec)+PRn+(0,m*φstep,0), (3)
其中(rres,dec,φres,dec,θres,dec)是解码的残差球坐标,如通过解码器的解码的残差球坐标。
解码的残差球坐标(rres,dec,φres,dec,θres,dec)可以为量化的残差球坐标Q(rres,φres,θres的去量化(IQ)的结果。
在G-PCC中,残差球坐标没有量化,解码的球坐标(rres,dec,φres,dec,θres,dec)等于残差球坐标(rres,φres,θres)。然后,解码的球坐标(rdec,φdec,θdec)等于球坐标(r,φ,θ)。
逆变换解码的球坐标(rdec,φdec,θdec)可以由下式给出:
r=rdec*Δr
xpred=round(r*cos(φdec*Δφ))
ypred=round(r*sin(φdec*Δφ)
zpred=round(tan(θdec)*r)
其中sin()和cos()是正弦和余弦函数。这两个函数可以通过基于定点精度的运算来近似。值tan(θdec)也可以存储为定点精度值。因此,解码器中不使用浮点运算。避免浮点运算通常是简化编解码器的硬件实施方式的强烈要求。
在原始点和预测的笛卡尔坐标(xpred,ypred,zpred)之间的残差笛卡尔坐标(xres,yres,zres)由下式给出:
(xres,yres,zres)=(x,y,z)-(xpred,ypred,zpred)
残差笛卡尔坐标(xres,yres,zres)被量化(Q),并且量化的残差笛卡尔坐标Q(xres,yres,zres)被编码到比特流中。
当x、y、z量化步长等于原始点精度(通常为1)时,残差笛卡尔坐标可以被无损编码,或者当量化步长大于原始点精度(通常量化步长大于1)时,残差笛卡尔坐标可以被有损编码。
解码的笛卡尔坐标(xdec,ydec,zdec)由下式给出,如由解码器给出的:
(xdec,ydec,zdec)=(xpred,ypred,zpred)+IQ(Q(xres,yres,zres)) (4)
其中IQ(Q(xres,yres,zres))表示去量化的量化的残差笛卡尔坐标。
这些解码的笛卡尔坐标(xdec,ydec,zdec)可以被编码器用于例如在属性编码之前对(解码的)点进行排序。
图6示出了类似于用于预测树的基于G-PCC预测树的解码器的点云解码器。
对于预测树的每个节点,从比特流B中访问预测索引n和数量m,而从比特流B的参数集中访问基本方位角步长φstep,并且由同一预测树的所有节点共享该基本方位角步长。
解码的残差球坐标rres,dec,φres,dec,θres,dec)可以通过从比特流B中解码残差球坐标(rres,φres,θres)来获得。
量化的残差球坐标Q(rres,φres,θres)可以从比特流B中解码。对量化的残差球坐标Q(rres,φres,θres)进行去量化,以获得解码的残差球坐标(rres,dec,φres,dec,θres,dec)。
解码的球坐标(rdec,φdec,θdec)是通过根据等式(3)将解码的残差球坐标(rres,dec,φres,dec,θres,dec和预测的球坐标(rpred,φpred,θpred)相加而得到的。
预测的笛卡尔坐标(xpred,ypred,zpred)通过根据等式(2)对解码的球坐标(rdec,φdec,θdec)进行逆变换来获得。
量化的残差笛卡尔坐标Q(xres,yres,zres)从比特流B中被解码并被去量化以获得去量化的笛卡尔坐标IQ(Q(xres,yres,zres))。解码的笛卡尔坐标(xdec,ydec,zdec)由等式(4)给出。
图7示出了根据现有技术将点云的点P的残差球坐标(rres,φres,θres)的残差半径rres编码到比特流B中的方法100的步骤的框图。
图7还可以应用于编码量化的残差半径。
在步骤110中,从预测数据PD中获得预测半径rpred。预测半径rpred表示点P的半径的预测。预测数据PD被编码到比特流B中。
例如,通过选择预测器列表的预测器来获得预测半径。例如,可以通过使用基于速率代价函数或速率失真代价函数(在有损编码的情况下)的优化过程来进行选择,该优化过程从使该代价函数最小化的候选预测半径列表中选择预测半径。
在步骤120中,在所述点的半径r和预测半径rpred之间获得点P的残差半径rres(等式1)。
在步骤130中,第一二进制数据(标志)f0被熵编码到比特流B中。二进制数据f0等于第一值,例如0,以指示残差半径rres等于0,并且等于第二值,例如1,以指示残差半径rres不等于0。如果二进制数据f0等于第一值,则该方法结束。否则,通过下式获得用于对残差半径rres的量值(绝对值|rres|)(减1)进行编码的比特数Nbits:
Nbits=log2(|rres|-1)
在步骤140中,从最低比特开始到最高比特,将表示比特数Nbits的比特序列中的每个比特迭代地熵编码到比特流B中。注意,表示残差半径rres的量值的比特序列的最高比特总是等于1,因此不需要对最高比特进行编码。
在步骤150中,从最低比特开始到最高比特,将表示残差半径rres的量值的比特序列的最低(Nbits-1)比特中的每一个旁路编码到比特流B中。
在步骤160中,将残差半径rres的符号比特sb熵编码到比特流B中。
图8示出了根据现有技术的从比特流B中解码点云的点P的残差球坐标(rres,φres,θres)的残差半径rres的方法200的步骤的框图。
图8还可以应用于解码量化的残差半径。
在步骤210中,从比特流B中对第一二进制数据(标志)f0进行熵解码。如果二进制数据f0等于第一值,则该方法结束。
否则,在步骤220中,从最低比特开始到最高比特,从比特流B中迭代地熵解码表示比特数Nbits的比特序列。
在步骤230中,从最低比特开始到最高比特,从比特流B中旁路解码表示残差半径rres的量值的比特序列的每个最低(Nbits-1)比特。
在步骤240中,从比特流B中熵解码残差半径rres的符号比特sb。
在步骤250中,从解码的残差半径rres的量值和解码的符号sb中获得解码的残差半径rres。
在步骤260中,通过将解码的残差半径rres与在步骤110中提供的来自预测D的预测半径rpred相加来获得解码的半径r,该预测D可能是从比特流B中解码的。
由于不利用任何先验信息的二进制数据f0的熵编码/解码的弱点,并且由于表示残差半径rres的量值的Nbits序列被旁路编码/解码,所以残差半径rres的编码/解码不是有效的。因此,传输或存储点云所允许的大部分比特率是由表示残差半径的数据构成的。发明人观察到残差数据构成比特流B的70%以上。
考虑到前述内容设计了本申请的至少一个示例性实施例。
发明内容
下一节呈现了至少一个示例性实施例的简化概要以便提供对本申请的一些方面的基本理解。本概要不是示例性实施例的详尽概述。它不旨在识别实施例的关键或重要元素。以下概要仅以简化形式呈现示例性实施例中的至少一个的一些方面作为在文档中其他地方提供的更详细描述的前序。
根据本申请的第一方面,提供了一种将点云编码成编码的点云数据的比特流的方法,该点云的每个点与响应于该点距捕获该点的传感器的距离的半径相关联,该方法包括:
-从预测数据(PD)中获得表示该点云的点的半径的预测的预测半径;
-获得在该点的该半径和该预测半径之间的该点云的点的残差半径;
-基于该预测数据(PD)选择上下文;和
-基于所选择的上下文对该残差半径的量值进行基于上下文的熵编码。
根据本申请的第二方面,提供了一种从编码的点云数据的比特流中解码点云的方法,该点云的每个点与响应于该点距捕获该点的传感器的距离的半径相关联,该方法包括:
-从预测数据(PD)中获得表示该点云的点的半径的预测的预测半径;
-基于该预测数据(PD)选择上下文;和
-基于所选择的上下文对该残差半径的量值进行基于上下文的熵解码。
在一个示例性实施例中,该方法还包括基于所选择的上下文将指示残差半径的量值是否等于0的二进制数据基于上下文地熵编码到比特流中/从比特流中进行基于上下文的熵解码。
在一个示例性实施例中,基于所选择的上下文对残差半径rres的量值减1进行基于上下文的熵编码/解码。
在一个示例性实施例中,该方法还包括将指示残差半径的量值是否等于或大于1的二进制数据基于上下文地熵编码到比特流中/从比特流中进行基于上下文的熵解码。
在一个示例性实施例中,基于所选择的上下文对残差半径rres的量值减2进行基于上下文的熵编码/解码。
在一个示例性实施例中,预测半径是从预测器中获得的,该预测器选自各自包括预测半径的至少一个预测器的列表,其中预测数据包括预测器索引,该预测器索引指向该至少一个预测器的列表中的预测器。
在一个示例性实施例中,点云的每个点还与响应于传感器的捕获角的方位角相关联,通过将从预测数据中获得的方位角与方位角移位相加来获得预测方位角,该方位角移位被定义为整数与基本方位角步长的乘积,其中该预测数据包括该整数。
在一个示例性实施例中,预测数据被编码到该比特流中/从该比特流中解码。
在一个示例性实施例中,表示该残差半径的量值的比特序列被编码/解码为一元码,并且该一元码是基于所选择的上下文进行基于上下文的熵编码/解码的。
在一个示例性实施例中,表示该残差半径的量值的比特序列被编码/解码为指数-哥伦布代码(Exponential-Golomb code),该指数-哥伦布代码基于所选择的上下文进行基于上下文的熵编码/解码。
根据本申请的第三方面,提供了由根据本申请的第一方面的方法生成的编码的点云数据的比特流。
根据本申请的第四方面,提供了一种包括用于执行根据本申请的第一或第二方面的方法的一个或多个处理器的装置。
根据本申请的第五方面,提供了一种包括指令的计算机程序产品,当该程序由一个或多个处理器执行时,指令使一个或多个处理器执行根据本申请的第一方面或第二方面的方法。
根据本申请的第六方面,提供了一种非暂态存储介质,该非暂态存储介质携带用于执行根据本申请的第一方面或第二方面的方法的程序代码的指令。
示例性实施例中的至少一个的具体性质以及该示例性实施例中的至少一个的其他目的、优点、特征和用途将从以下结合附图对示例的描述中变得明显。
附图说明
现在将以示例的方式参考示出本申请的示例性实施例的附图,并且其中:
图1示出了根据现有技术的传感器头及其一些参数的侧视图;
图2示出了根据现有技术的传感器头及其一些参数的俯视图;
图3示出了根据现有技术的由自旋传感器头捕获的数据的规则分布;
图4示出了根据现有技术的3D空间中的点的表示;
图5示出了根据现有技术的类似于基于G-PCC预测树的编码器的点云编码器;
图6示出了根据现有技术的类似于基于G-PCC预测树的解码器的点云解码器;
图7示出了根据现有技术的将点云的点的残差球坐标的残差半径编码到比特流中的方法100的步骤的框图;
图8示出了根据现有技术的从比特流中解码点云的点的残差球坐标的残差半径的方法200的步骤的框图;
图9示出了根据至少一个示例性实施例的将点云的点的残差球坐标的残差半径编码到比特流中的方法300的步骤的框图;
图10示出了根据至少一个示例性实施例的从比特流中解码点云的点的残差球坐标的残差半径的方法400的步骤的框图;
图11示出了根据至少一个示例性实施例的上下文自适应二进制算术编码器的步骤的示意性框图;和
图12示出了其中实现各个方面和示例性实施例的系统的示例的示意性框图。
在不同的图中可以已经使用类似的附图标记来表示类似的组件。
具体实施方式
下文将参考附图更全面地描述示例性实施例中的至少一个,其中图示了示例性实施例中的至少一个的示例。但是,示例性实施例可以以许多替代形式来实施并且不应当被解释为限于本文阐述的示例。因而,应当理解的是,无意将示例性实施例限制于所公开的特定形式。相反,本公开旨在覆盖落入本申请的精神和范围内的所有修改、等同物和替代方案。
当附图以流程图的形式呈现时,应当理解的是,它还提供了对应装置的框图。类似地,当附图以框图的形式呈现时,应当理解的是,它还提供对应方法/过程的流程图。
这些方面中的至少一个一般而言涉及点云编码和解码,并且至少一个其他方面一般而言涉及传输生成或编码的比特流。
本方面不限于诸如与点云压缩相关的MPEG-I第5部分或第9部分之类的MPEG标准,并且可以应用于例如其他标准和推荐,无论是预先存在的还是未来开发的,以及任何此类标准和推荐的扩展(包括MPEG-I第5部分和第9部分)。除非另有指示,或技术上排除,否则本申请中描述的方面可以被单独或组合使用。
本发明涉及一种将点云编码到编码的点云数据的比特流中/从编码的点云数据的比特流中解码点云的方法,该点云的每个点与响应于该点距捕获该点的传感器的距离的半径相关联。基于用于预测点的半径的预测数据来选择上下文,并且通过使用所选择的上下文来编码/解码与点云熵的点相关联的残差半径。
根据本发明,用于获得与点云的点相关联的半径的预测的预测数据还被用于确定得到表示残差半径的比特值的准确概率的上下文。
当预测数据与预测器的动态列表中的预测器相关时,尤其如此。
在激光束已经从具有第一距离的第一物体移动到具有不同距离的另一个物体、已经越过另一个物体并且正传回到第一物体之后,预测器的动态列表对于获得/导出更好的预测特别有用(但不仅仅如此)。例如,当一个物体在另一个物体前面(例如,像一辆汽车在一堵墙前面)时,或者当物体有洞(例如,开着门或窗的墙,或者入口墙)时,可能会发生这种情况。
基本上,可以如下更新预测器的动态列表:获得预测器索引,根据该预测器索引确定预测半径。从预测器的动态列表中选择预测器索引,以最小化在点云的当前点的半径和预测半径之间的残差半径的比特成本。然后,获得残差半径,并将其与残差半径阈值进行比较。如果所获得的残差半径大于所获得的残差半径阈值,则认为当前点可以是新物体的一部分(具有不同的距离),因此新元素将被添加到预测器的动态列表,使得能够获得/导出更适合于该物体的新预测器。由于最好限制动态列表的存储器的大小,如果列表已经满了(例如,达到了列表中元素的最大数量),则丢弃预测器的动态列表中的最后一个元素(即,将其从列表中移除),并且在预测器的动态列表的顶部上插入新元素(即,将其插入以成为列表中的第一个元素)。如果所获得的残差半径不大于所获得的残差半径阈值,则认为当前点是与从其获得存储在预测器的动态列表的第i个元素中的预测数据的物体相同的物体的一部分,因此使用当前编码/解码的点来更新第i个元素。因为从第i个元素获得/导出的预测器刚刚被使用,所以它有更多的机会被再次用于接下来的点。然后,预测器的动态列表被更新,使得第i个元素被移动到列表的顶部上,从而提高了所述第一个元素再次被选择的概率。
从统计上看,在点云数据集中,获得的残差半径大于残差半径阈值的情况很少出现,即点云中的大多数点属于同一个物体。这些点中的每一个的最佳预测器更有可能是所述物体的最后一个已经编码/解码的点。因此,这个最佳预测器通常是如上所述的动态预测器列表的第一个元素。因此,这些点的所选择的预测器的预测器索引n更有可能是0(n=0),这可以用于改善残差半径的量值的熵编码/解码。
在一个示例性实施例中,预测数据包括指向所述至少一个预测器的列表中的预测器的预测器索引。
出于以下原因,该示例性实施例提高了点云的熵编码/解码效率。所获得的残差半径大于残差半径阈值的情况仅在点处于不同深度(离传感器的距离)的物体的边缘处时发生,并且最后一个已经编码/解码的点自然不是当前编码点的最近点,因为它来自不同深度的物体。编码器可以从预测器的动态列表中的其他元素(不是第一个元素)中进行搜索,以得到最佳预测器,然后得到i>0。
因此,如果预测器索引等于0,则当前点更有可能与和预测半径相关联的预测点属于同一物体,因此残差半径的量值更有可能更小。如果预测器索引不等于0,则当前点更有可能与预测点不属于同一物体,因此残差半径的量值更有可能大于当预测器索引等于0时残差半径的量值。因此,当预测器索引等于0时,残差半径的量值的统计不同于当预测器索引不等于0时残差半径的量值的统计。基于从预测数据(诸如,预测器索引)中选择的上下文对残差半径的量值进行熵编码/解码提供了非常高的熵编码性能。
在一个示例性实施例中,点云的每个点还与响应于传感器的捕获角的方位角相关联。然后,通过将从预测数据中获得的方位角与方位角移位相加来获得预测的方位角,方位角移位被定义为整数与基本方位角步长的乘积(等式1)。预测数据包括所述整数。
如果整数m等于0,则当前点以与和预测半径相关联的预测点相同或类似的方位角被感测(捕获),并且这两个点在空间上接近,因此在它们之间的残差半径自然非常小,并且几乎接近于0。如果整数m不等于0,则预测点很有可能不靠近当前点,因此残差半径的量值要大得多。因此,当整数m等于0时残差半径的量值的统计不同于当整数m不等于0时残差半径的量值的统计。至少由预测器索引n和整数m组成的与预测数据相关的残差半径量值的不同统计可以用作先验信息,以提高残差半径的量值的压缩效率。
图9示出了根据至少一个示例性实施例的将点云的点P的残差球坐标(rres,φres,θres)的残差半径rres编码到比特流B中的方法300的步骤的框图。
在步骤310中,从预测数据PD中选择上下文ctx。预测数据被编码到比特流PD中。
在步骤320中,基于所选择的上下文ctx,对二进制数据(标志)f0进行了基于上下文的熵编码。如果二进制数据f0等于第一值,例如0,则该方法结束。
否则,在步骤330中,基于所选择的上下文ctx,对表示残差半径rres的量值(减1)的比特序列中的每个比特进行迭代的基于上下文的熵编码。
任选地,在步骤340中,基于所选择的上下文ctx,对二进制数据(标志)f1进行基于上下文的熵编码。
二进制数据f1等于第一值,例如0,以指示残差半径rres的量值等于1,并且等于第二值,例如1,以指示残差半径rres的量值大于1。如果二进制数据f1等于第一值,则编码残差半径的量值的方法结束。否则,
在步骤330中,基于所选择的上下文ctx,对表示残差半径rres的绝对值|rres|减2的比特序列中的每个比特进行基于上下文的熵编码。
任选地,在步骤350中,基于所选择的上下文ctx,对二进制数据(标志)f2进行基于上下文的熵编码。
二进制数据f2等于第一值,例如0,以指示残差半径rres的量值等于2,并且等于第二值,例如1,以指示残差半径rres的量值大于2。如果二进制数据f2等于第一值,则编码残差半径的量值的方法结束。否则,在步骤330中,基于所选择的上下文ctx,对表示残差半径rres的绝对值|rres|减3的比特序列中的每个比特进行基于上下文的熵编码。
图10示出了根据至少一个示例性实施例的从比特流中解码点云的点的残差球坐标的残差半径的方法400的步骤的框图。
在步骤310中,从可能从比特流B中解码的预测数据PD中选择上下文ctx。
在步骤410中,基于所选择的上下文ctx,对二进制数据(标志)f0进行基于上下文的熵解码。如果二进制数据f0等于第一值,则该方法结束。
否则,在步骤420中,基于所选择的上下文ctx,对表示残差半径rres的量值(减1)的比特序列中的每个比特进行基于上下文的熵解码。
任选地,在步骤430中,基于所选择的上下文ctx,对二进制数据(标志)f1进行基于上下文的熵解码。
如果二进制数据f1等于第一值,例如0,则解码残差半径的量值的方法结束。否则,在步骤420中,基于所选择的上下文ctx,对表示残差半径rres的绝对值|rres|(减2)的比特序列中的每个比特进行基于上下文的熵解码。
任选地,在步骤440中,基于所选择的上下文ctx,对二进制数据(标志)f2进行基于上下文的熵解码。
如果二进制数据f2等于第一值,例如0,则解码残差半径的量值的方法结束。否则,基于所选择的上下文ctx,对表示残差半径rres的绝对值|rres|(减3)的比特序列中的每个比特进行基于上下文的熵解码。
在步骤310的一个示例性实施例中,预测数据PD可以包括指向从各自包括预测半径的至少一个预测器的列表中选择的预测器PRn的预测器索引n,并且上下文ctx选自预测器索引n。
例如,一维上下文表ctxTable_T的上下文索引ctxIdx是预测器索引n,并且上下文ctx选自上下文表ctxTable_T的条目:
ctx=ctxTable_T[ctxIdx]
该示例性实施例是有利的,因为如果至少一个预测器的列表中的预测器索引n等于不同的值,则残差半径的统计可能不同。因此,根据不同的预测器索引分离残差半径的量值的统计优化了上下文选择,从而优化了残差数据的量值和二进制标志f0的编码。
在一个示例性实施例310中,预测数据PD可以包括整数m(等式1),并且上下文ctx选自整数m。
在步骤310的一个示例性实施例中,预测数据PD可以包括预测器索引n和整数m二者,并且上下文ctx选自预测器索引n和整数m。
在步骤310的一个示例性实施例中,基于预测器索引n和整数m选择上下文ctx包括从预测器索引n和整数m中确定上下文索引ctxIdx,和从一维上下文表ctxTable_T的条目中选择上下文ctx:
ctx=ctxTable_T[ctxIdx]
在步骤310的一个示例性实施例中,如下获得上下文索引ctxIdx:
其中上下文表ctxTable_T特定于待熵编码的数据。不同的上下文表用于对二进制数据f0和残差半径rres的量值进行基于上下文的熵编码/解码。
在步骤310的一个示例性实施例中,如下获得上下文索引ctxIdx:
或者用类似C语言的代码来简化它
ctxIdx=n+N*(m≠0)
其中N是预测器索引的数量。
在一个变体中,从二维上下文表ctxTable_T的条目中选择上下文ctx:
ctx=ctxTable_T[ctxIdx1][ctxIdx2]
其中上下文索引ctxIdx1响应于预测器索引n,而上下文索引ctxIdx2响应于整数m。
在一个实施例中,比特序列被编码/解码为一元码,该一元码基于所选择的上下文ctx进行基于上下文的熵编码。
在一个实施例中,比特序列被编码为指数-哥伦布代码,该指数-哥伦布代码基于所选择的上下文ctx进行基于上下文的熵编码/解码。
在一个示例性实施例中,由上下文自适应二进制算术编码器/解码器(CABAC)对二进制数据f0和/或表示残差半径rres的量值的比特序列进行基于上下文的熵编码/解码。
图11示出了根据至少一个示例性实施例的上下文自适应二进制算术编码器的步骤的示意框图。
在步骤310中,基于预测数据PD获得上下文索引ctxIdx,如前所述。
具有Nctx条目的上下文表ctxTable_T存储与上下文ctx相关联的概率pctxIdx。获得概率pctxIdx作为上下文表的第ctxIdx个条目。因此,通过以下公式基于预测数据PD选择上下文ctx
ctx=ctxTable_T[ctxIdx]。
在步骤320、330和/或340中,使用概率pctxIdx在比特流B中熵编码二进制数据d,即二进制数据f0和/或表示残差半径的量值的比特序列中的一个比特。
熵编码器通常是算术编码器,但也可以是任何其他类型的熵编码器,如非对称数字系统。在任何情况下,最佳编码器在比特流B中添加-log2(pctxIdx)比特以编码二进制数据d=1,或者在比特流B中添加-log2(1-pctxIdx)比特以编码d=0。当二进制数据d被编码时,通过使用以编码的二进制数据d和概率pctxIdx为条目的更新器来更新概率pctxIdx;更新器通常通过使用更新的表来执行。更新的概率替换上下文表ctxTable_T的第ctxIdx个条目。然后,可以编码另一个二进制数据d,等等。
除了由熵解码器使用概率pctxIdx从比特流B中解码编码的二进制数据d,上下文自适应二进制算术解码器执行与上下文自适应二进制算术编码器基本相同的操作。
图12示出了图示其中实现各个方面和示例性实施例的系统的示例的示意性框图。
系统500可以被嵌入为一个或多个设备,包括下面描述的各种组件。在各种实施例中,系统500可以被配置为实现本申请中描述的一个或多个方面。
可以构成系统500的全部或部分的装备的示例包括个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收器、个人视频记录系统、连接的家用电器、连接的车辆及其相关联的处理系统、头戴式显示设备(HMD、透视眼镜)、投影仪(投影机)、“洞穴(cave)”(包括多个显示器的系统)、服务器、视频编码器、视频解码器、处理来自视频解码器的输出的后处理器、向视频编码器提供输入的预处理器、web服务器、机顶盒,以及用于处理点云、视频或图像的任何其他设备,或其他通信设备。
应当清楚的是,装备可以是移动的并且甚至安装在移动车辆中。
系统500的元件可以单独地或组合地实施在单个集成电路(IC)、多个IC和/或分立组件中。例如,在至少一个实施例中,系统500的处理和编码器/解码器元件可以跨多个IC和/或分立组件分布。在各种实施例中,系统500可以经由例如通信总线或通过专用输入和/或输出端口通信地耦合到其他类似系统或其他电子设备。
系统500可以包括至少一个处理器510,该至少一个处理器510被配置为执行其中加载的指令,以用于实现例如本申请中描述的各个方面。处理器510可以包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统500可以包括至少一个存储器520(例如,易失性存储器设备和/或非易失性存储器设备)。系统500可以包括存储设备540,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备540可以包括内部存储设备、附接存储设备和/或网络可访问存储设备。
系统500可以包括编码器/解码器模块530,其被配置为例如处理数据以提供编码/解码的点云几何数据,并且编码器/解码器模块530可以包括其自已的处理器和存储器。编码器/解码器模块530可以表示可以被包括在设备中以执行编码和/或解码功能的(一个或多个)模块。如已知的,设备可以包括编码和解码模块中的一者或两者。此外,编码器/解码器模块530可以被实现为系统500的分开的元件,或者可以作为本领域技术人员已知的硬件和软件的组合结合到处理器510内。
要被加载到处理器510或编码器/解码器530上以执行本申请中描述的各个方面的程序代码可以被存储在存储设备540中,并且随后被加载到存储器520上以由处理器510执行。根据各种实施例,在执行本申请中描述的过程期间,处理器510、存储器520、存储设备540和编码器/解码器模块530中的一个或多个可以存储各种项目中的一个或多个。此类存储的项目可以包括但不限于点云帧、编码/解码的几何/属性视频/图像或编码/解码的几何/属性视频/图像的部分、比特流、矩阵、变量,以及等式、公式、运算和运算逻辑处理的中间或最终结果。
在几个实施例中,处理器510和/或编码器/解码器模块530内部的存储器可以被用于存储指令并为可以在编码或解码期间执行的处理提供工作存储器。
但是,在其他实施例中,处理设备外部的存储器(例如,处理设备可以是处理器510或者编码器/解码器模块530)被用于这些功能中的一个或多个。外部存储器可以是存储器520和/或存储设备540,例如,动态易失性存储器和/或非易失性闪存。在几个实施例中,外部非易失性闪存被用于存储电视的操作系统。在至少一个实施例中,诸如RAM之类的快速外部动态易失性存储器可以被用作用于视频编码和解码操作的工作存储器,例如对于MPEG-2第2部分(也称为ITU-T Recommendation H.262和ISO/IEC 13818-2,也称为MPEG-2视频)、HEVC(高效视频编码)、VVC(通用视频编码)或MPEG-I第5部分或第9部分。
如方框590中所指示的,可以通过各种输入设备提供对系统500的元件的输入。此类输入设备包括但不限于(i)可以接收例如由广播设备通过空中传输的RF信号的RF部分,(ii)复合输入端子,(iii)USB输入端子,和/或(iv)HDMI输入端子。
在各种实施例中,方框590的输入设备具有相关联的相应输入处理元件,如本领域中已知的。例如,RF部分可以与对于以下各项必要的元件相关联:(i)选择期望的频率(也称为选择信号,或将信号频带限制到频带内),(ii)下变频所选择的信号,(iii)将频带再次限制到较窄的频带,以选择(例如)在某些实施例中可以被称为信道的信号频带,(iv)解调下变频和频带受限的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据包流。各种实施例的RF部分可以包括一个或多个执行这些功能的元件,例如,频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。RF部分可以包括执行这些功能中的各种功能的调谐器,这些功能包括例如将接收到的信号下变频为更低频率(例如,中频或近基带频率)或基带。
在一个机顶盒实施例中,RF部分及其相关联的输入处理元件可以接收在有线(例如,电缆)介质上传输的RF信号。然后,RF部分可以通过滤波、下变频和再次滤波到期望的频带来执行频率选择。
各种实施例重新布置上述(和其他)元件的次序、移除这些元件中的一些、和/或添加执行类似或不同功能的其他元件。
添加元件可以包括在现有元件之间插入元件,诸如例如插入放大器和模数转换器。在各种实施例中,RF部分可以包括天线。
此外,USB和/或HDMI端子可以包括相应的接口处理器,用于通过USB和/或HDMI连接将系统500连接到其他电子设备。应该理解的是,在必要时输入处理的各个方面(例如,Reed-Solomon纠错)可以例如在分开的输入处理IC内或在处理器510内实现。类似地,在必要时可以在分开的接口IC内或处理器510内实现USB或HDMI接口处理的各个方面。经解调、纠错和解复用的流可以被提供给各种处理元件,包括例如处理器510以及编码器/解码器530,它们与存储器和存储元件结合操作,以在必要时处理数据流以在输出设备上呈现。
可以在集成壳体内提供系统500的各种元件。在集成壳体内,可以使用合适的连接布置590,例如,本领域已知的内部总线(包括12C总线)、布线和印刷电路板,来互连各种元件并在它们之间传输数据。
系统500可以包括通信接口550,其使得能够经由通信信道900与其他设备通信。通信接口550可以包括但不限于被配置为在通信信道900上发送和接收数据的收发器。通信接口550可以包括但不限于调制解调器或网卡,并且通信信道900可以例如在有线和/或无线介质内实现。
在各种实施例中,可以使用诸如IEEE 802.11之类的Wi-Fi网络将数据流式传输到系统500。这些实施例的Wi-Fi信号可以通过适于Wi-Fi通信的通信信道900和通信接口550被接收。这些实施例的通信信道900通常可以连接到接入点或路由器,该接入点或路由器提供对包括互联网在内的外部网络的接入,以允许流式传输应用和其他云上(Over-the-top)通信。
其他实施例可以使用机顶盒向系统500提供流式传输的数据,该机顶盒通过输入方框590的HDMI连接来递送数据。
还有其他实施例可以使用输入方框590的RF连接将流式传输的数据提供给系统500。
流式传输的数据可以被用作系统500使用的信令信息的方式。信令信息可以包括比特流B和/或信息,诸如预测数据PD、点云的点数、二进制数据f0和f1、表示点云的点的残差半径的Nbits序列的比特和/或传感器设置参数,诸如与自旋传感器头10的传感器相关联的基本方位角步长φstep或仰角θk。
应该认识到的是,可以以多种方式实现信令。例如,在各种实施例中,一个或多个语法元素、标志等可以被用于向对应的解码器发信号通知信息。
系统500可以向各种输出设备,包括显示器600、扬声器700和其他外围设备800,提供输出信号。在实施例的各种示例中,其他外围设备800可以包括独立DVR、盘播放器、立体声系统、照明系统和基于系统500的输出提供功能的其他设备中的一个或多个。
在各种实施例中,控制信号可以使用诸如AV.Link(音频/视频链路)、CEC(消费电子控制)或在有或没有用户干预的情况下启用设备到设备控制的其他通信协议的信令在系统500和显示器600、扬声器700或其他外围设备800之间通信。
输出设备可以通过相应的接口560、570和580经由专用连接通信地耦合到系统500。
可选地,可以经由通信接口550使用通信信道900将输出设备连接到系统500。显示器600和扬声器700可以与电子设备(诸如例如电视)中的系统500的其他组件集成在单个单元中。
在各种实施例中,显示接口560可以包括显示驱动器,诸如例如定时控制器(TCon)芯片。
例如,如果输入端590的RF部分是分开的机顶盒的一部分,那么显示器600和扬声器700可以可替代地与其他组件中的一个或多个分开。在显示器600和扬声器700可以是外部组件的各种实施例中,可以经由专用的输出连接(包括例如HDMI端口、USB端口或COMP输出端)来提供输出信号。
在图1至12中,本文描述了各种方法,并且每种方法包括一个或多个步骤或动作,以实现所描述的方法。除非方法的正确操作需要特定的步骤或动作次序,否则可以修改或组合特定步骤和/或动作的次序和/或使用。
关于框图和/或操作流程图描述了一些示例。每个方框表示电路元件、模块或代码的部分,其包括用于实现(一个或多个)指定逻辑功能的一个或多个可执行指令。还应当注意的是,在其他实施方式中,方框中标注的(一个或多个)功能可以不按指示的次序发生。例如,根据所涉及的功能,相继示出的两个方框实际上可以基本上并发地执行,或者有时可以以相反的次序执行这些方框。
可以在例如方法或过程、装置、计算机程序、数据流、比特流或信号中实现本文描述的实施方式和方面。即使仅在单一形式的实施方式的上下文中讨论(例如,仅作为方法讨论),所讨论的特征的实施方式也可以以其他形式(例如,装置或计算机程序)来实现。
方法可以在例如处理器中实现,处理器一般是指处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备。
此外,方法可以通过由处理器执行的指令来实现,并且此类指令(和/或由实施方式产生的数据值)可以存储在计算机可读存储介质上。计算机可读存储介质可以采用实施在一个或多个计算机可读介质中并且具有实施在其上的可由计算机执行的计算机可读程序代码的计算机可读程序产品的形式。考虑到在其中存储信息的固有能力以及从其提供信息的检索的固有能力,如本文使用的计算机可读存储介质可以被认为是非暂态存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光学、电磁、红外或半导体系统、装置或设备,或前述的任何合适组合。应该认识到的是,以下虽然提供了可以对其应用本实施例的计算机可读存储介质的更具体示例,但是如本领域普通技术人员容易认识到的那样,仅仅是说明性的而非详尽列表:便携式计算机软盘;硬盘;只读存储器(ROM);可擦除可编程只读存储器(EPROM或闪存);便携式光盘只读存储器(CD-ROM);光学存储设备;磁存储设备;或前述的任何合适组合。
指令可以形成有形地实施在处理器可读介质上的应用程序。
例如,指令可以在硬件、固件、软件或组合中。例如,可以在操作系统、单独的应用或两者的组合中找到指令。因此,处理器可以被表征为例如被配置为执行过程的设备和包括具有用于执行过程的指令的处理器可读介质(诸如存储设备)的设备。另外,除了指令之外或代替指令,处理器可读介质可以存储由实施方式产生的数据值。
计算机软件可以由处理器510或由硬件、或由硬件和软件的组合实现。作为非限制性示例,还可以通过一个或多个集成电路来实现实施例。存储器520可以是适合于技术环境的任何类型并且可以使用任何适当的数据存储技术(诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器,作为非限制性示例)来实现。处理器510可以是适合于技术环境的任何类型,并且可以涵盖微处理器、通用计算机、专用计算机和基于多核体系架构的处理器中的一种或多种,作为非限制性示例。
如对于本领域普通技术人员来说显而易见的,实施方式可以产生各种被格式化为携带例如可以被存储或传输的信息的信号。信息可以包括例如用于执行方法的指令或由所描述的实施方式之一产生的数据。例如,信号可以被格式化为携带所描述的实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并用编码的数据流对载波进行调制。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路被传输。信号可以存储在处理器可读介质上。
本文使用的术语仅用于描述特定实施例的目的并且不旨在进行限制。如本文所使用的,单数形式“一个”、“一种”和“该”也可以旨在包括复数形式,除非上下文另有明确指示。将进一步理解的是,当在本说明书中使用时,术语“包括/包含(include/comprise)”和/或“包括/包含(including/comprising)”可以指定所陈述的例如特征、整数、步骤、操作、元素和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或它们的组的存在或添加。而且,当一个元素被称为“响应”或“连接”到另一个元素时,它可以直接响应或连接到另一个元素,或者可以存在中间元素。相反,当一个元素被称为“直接响应”或“直接连接”到另一个元素时,不存在中间元素。
应该认识到的是,例如在“A/B”、“A和/或B”和“A和B中的至少一个”的情况下,符号/术语“/”、“和/或”和“至少一个”中的任何一个的使用可以旨在涵盖仅第一个列出的选项(A)的选择,或仅第二个列出的选项(B)的选择,或两个选项(A和B)的选择。作为进一步的示例,在“A、B和/或C”和“A、B和C中的至少一个”的情况下,这样的措辞旨在涵盖仅第一个列出的选项(A)的选择,或仅第二个列出的选项(B)的选择,或仅第三个列出的选项(C)的选择,或仅第一个和第二个列出的选项(A和B)的选择,或仅第一个和第三个列出的选项(A和C)的选择,或仅第二个和第三个列出的选项(B和C)的选择,或所有三个选项(A和B和C)的选择。如本领域和相关领域的普通技术人员清楚的那样,这可以扩展到与列出的一样多的项目。
在本申请中可以使用各种数值。特定值可以用于示例目的并且所描述的各方面不限于这些特定值。
将理解的是,虽然术语第一、第二等在本文中可以被用于描述各种元素,但这些元素不受这些术语的限制。这些术语仅用于将一个元素与另一个元素区分开来。例如,在不脱离本申请的教导的情况下,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素。第一元素和第二元素之间不暗示排序。
对“一个示例性实施例”或“示例性实施例”或“一个实施方式”或“实施方式”及其其他变化的引用频繁地被用于传达特定特征、结构、特点等(结合实施例/实施方式描述的)包括在至少一个实施例/实施方式中。因此,出现在本申请中各处的短语“在一个示例性实施例中”或“在示例性实施例中”或“在一个实施方式中”或“在实施方式中”以及任何其他变化的出现不一定都指同一实施例。
类似地,本文对“根据示例性实施例/示例/实施方式”或“在示例性实施例/示例/实施方式中”及其其他变化的引用频繁地被用于传达特定特征、结构或特点(结合示例性实施例/示例/实施方式描述的)可以包括在至少一个示例性实施例/示例/实施方式中。因此,出现在说明书中各处的表述“根据示例性实施例/示例/实施方式”或“在示例性实施例/示例/实施方式中”不一定都指同一示例性实施例/示例/实施方式,也不是单独或替代的示例性实施例/示例/实施方式必须与其他示例性实施例/示例/实施方式相互排斥。
权利要求中出现的附图标记仅用于说明并且对权利要求的范围没有限制作用。虽然没有明确描述,但是可以以任何组合或子组合来采用本实施例/示例和变型例。
当图作为流程图呈现时,应当理解的是,它也提供对应装置的框图。类似地,当图作为框图呈现时,应当理解的是,它也提供对应方法/过程的流程图。
虽然一些图包括通信路径上的箭头以示出通信的主要方向,但应该理解的是,通信可以发生在与所描绘的箭头相反的方向上。
各种实施方式涉及解码。如本申请中使用的,“解码”可以涵盖例如对接收到的点云帧(可能包括对一个或多个点云帧进行编码的接收到的比特流)执行以便产生适合显示或在重构的点云域中进一步处理的最终输出的过程的全部或部分。在各种实施例中,此类过程包括通常由解码器执行的过程中的一个或多个。在各种实施例中,例如,此类过程还或者可替代地包括由本申请中描述的各种实施方式的解码器执行的过程。
作为进一步的示例,在一个实施例中“解码”可以指熵解码,在另一个实施例中,“解码”可以仅指差分解码,而在另一个实施例中,“解码”可以指熵解码和差分解码的组合。基于具体描述的上下文,短语“解码过程”可以旨在具体地指操作的子集还是一般地指更广泛的解码过程将是清楚的,并且相信是本领域技术人员能够很好理解的。
各种实施方式都涉及编码。以与以上关于“解码”的讨论类似的方式,本申请中使用的“编码”可以涵盖例如对输入点云帧执行以便产生编码的比特流的过程的全部或部分。在各种实施例中,此类过程包括通常由编码器执行的过程中的一个或多个。在各种实施例中,此类过程还或者可替代地包括由本申请中描述的各种实施方式的编码器执行的过程。
作为进一步的示例,在一个实施例中“编码”可以仅指熵编码,在另一个实施例中,“编码”可以仅指差分编码,而在另一个实施例中,“编码”可以指差分编码和熵编码的组合。基于特定描述的上下文,短语“编码过程”可以是旨在具体地指操作的子集还是一般地指更广泛的编码过程将是清楚的,并且相信是本领域技术人员能够很好理解的。
此外,本申请可以提到“确定”各种信息。确定信息可以包括例如以下各项中的一项或多项:估计信息、计算信息、预测信息或从存储器中检索信息。
另外,本申请可以提到“访问”各种信息。访问信息可以包括例如以下各项中的一项或多项:接收信息、(例如,从存储器或比特流中)检索信息、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息。
此外,本申请可以提到“接收”各种信息。与“访问”一样,接收旨在是广义的术语。接收信息可以包括以下各项中的一项或多项:例如,访问信息或(例如,从存储器或比特流中)检索信息。另外,以一种或另一种方式,在诸如例如以下操作期间:存储信息、处理信息、传输信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息,通常涉及“接收”。
而且,如本文所使用的,词语“信号”尤其是指向对应的解码器指示某事等。例如,在某些实施例中,编码器发信号通知特定信息,诸如预测数据PD、点云的点数、二进制数据f0和f1、表示点云的点的残差半径的Nbits序列的比特、或者传感器设置参数,诸如与传感器k相关联的基本方位角步长φstep或仰角θk。以这种方式,在实施例中,可以在编码器侧和解码器侧使用同一参数。因此,例如,编码器可以向解码器传输(显式信令)特定参数,使得解码器可以使用同一特定参数。相反,如果解码器已经具有特定参数以及其他参数,那么可以使用信令而无需传输(隐式信令)以简单地允许解码器知道并选择特定参数。通过避免传输任何实际功能,在各种实施例中实现了比特节省。应该认识到的是,可以以多种方式来完成信令。例如,在各种实施例中,一个或多个语法元素、标志等被用于将信息发信号通知给对应的解码器。虽然前面涉及词语“信号(signal)”的动词形式,但词语“信号”在本文中也可以用作名词。
已经描述了多个实施方式。不过,应该理解的是,可以进行各种修改。例如,可以组合、补充、修改或移除不同实施方式的元素以产生其他实施方式。此外,普通技术人员将理解的是,其他结构和过程可以替代所公开的结构和过程,并且由此产生的实施方式将以至少基本上相同的(一种或多种)方式执行至少基本上相同的(一个或多个)功能,以实现至少与所公开的实施方式基本相同的(一个或多个)结果。因而,本申请设想了这些和其他实施方式。
Claims (15)
1.一种将点云编码成编码的点云数据的比特流的方法,所述点云的每个点与响应于所述点距捕获所述点的传感器的距离的半径相关联,所述方法包括:
-从预测数据(PD)中获得(110)表示所述点云的点的半径的预测的预测半径;
-获得(120)在所述点的所述半径和所述预测半径之间的所述点云的点的残差半径;
-基于所述预测数据(PD)选择(310)上下文;和
-基于所选择的上下文对所述残差半径的幅值进行基于上下文的熵编码(330,340,350)。
2.一种从编码的点云数据的比特流中解码点云的方法,所述点云的每个点与响应于所述点距捕获所述点的传感器的距离的半径相关联,所述方法包括:
-从预测数据(PD)中获得(110)表示所述点云的点的半径的预测的预测半径;
-基于所述预测数据(PD)选择(310)上下文;和
-基于所选择的上下文对所述残差半径的幅值进行基于上下文的熵解码(420,430,440)。
3.根据权利要求1或2所述的方法,其中所述方法还包括基于所选择的上下文将指示所述残差半径的幅值是否等于0的二进制数据(f0)基于上下文地熵编码(320)到所述比特流中/从所述比特流中进行基于上下文的熵解码(410)。
4.根据权利要求3所述的方法,其中基于所选择的上下文对所述残差半径rres的幅值减1进行基于上下文的熵编码/解码。
5.根据权利要求1至4中的一项所述的方法,其中所述方法还包括将指示所述残差半径的幅值是否等于或大于1的二进制数据(f1)基于上下文地熵编码(340)到所述比特流中/从所述比特流中进行基于上下文的熵解码(430)。
6.根据权利要求5所述的方法,其中基于所选择的上下文对所述残差半径rres的幅值减2进行基于上下文的熵编码/解码。
7.根据权利要求1至6中的一项所述的方法,其中所述预测半径是从预测器中获得的,所述预测器选自各自包括预测半径的至少一个预测器的列表,其中预测数据包括预测器索引,所述预测器索引指向所述至少一个预测器的所述列表中的所述预测器。
8.根据权利要求1至7中的一项所述的方法,其中所述点云的每个点还与响应于所述传感器的捕获角的方位角相关联,通过将从所述预测数据(PD)中获得的方位角与方位角移位相加来获得预测方位角,所述方位角移位被定义为整数(m)与基本方位角步长(φstep)的乘积,其中所述预测数据包括所述整数(m)。
9.根据权利要求1至8中的一项所述的方法,其中所述预测数据(PD)被编码到所述比特流中/从所述比特流中解码。
10.根据权利要求1至9中的一项所述的方法,其中表示所述残差半径的幅值的比特序列被编码/解码为一元码,并且所述一元码是基于所选择的上下文进行基于上下文的熵编码/解码的。
11.根据权利要求1至9中的一项所述的方法,其中表示所述残差半径的幅值的比特序列被编码/解码为指数-哥伦布代码,所述指数-哥伦布代码基于所选择的上下文进行基于上下文的熵编码/解码。
12.通过符合权利要求1、3至11中的一项的编码方法生成的编码的点云数据的比特流。
13.一种包括用于执行如权利要求1至11中的任一项所述的方法中的一种的部件的装置。
14.一种包括指令的计算机程序产品,当所述程序由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行如权利要求1至11中的任一项所述的方法中的一种。
15.一种非暂态存储介质,携带用于执行如权利要求1至11中的任一项所述方法中的一种的程序代码的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/143296 WO2023123261A1 (en) | 2021-12-30 | 2021-12-30 | Method and apparatus of encoding/decoding point cloud geometry data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116982083A true CN116982083A (zh) | 2023-10-31 |
Family
ID=79730393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180094369.1A Pending CN116982083A (zh) | 2021-12-30 | 2021-12-30 | 编码/解码点云几何数据的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116982083A (zh) |
WO (1) | WO2023123261A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220358686A1 (en) * | 2019-10-31 | 2022-11-10 | Blackberry Limited | Angular priors for improved prediction in point-predictive trees |
US11887345B2 (en) * | 2020-04-07 | 2024-01-30 | Apple Inc. | Predictive coding for point cloud compression |
-
2021
- 2021-12-30 CN CN202180094369.1A patent/CN116982083A/zh active Pending
- 2021-12-30 WO PCT/CN2021/143296 patent/WO2023123261A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023123261A1 (en) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116724212A (zh) | 熵编码/解码自旋传感器头捕获的点云几何数据的方法和装置 | |
US20240185472A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head | |
CN116982083A (zh) | 编码/解码点云几何数据的方法和装置 | |
WO2022213569A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head | |
WO2023273551A1 (en) | Method and apparatus of encoding/decoding point cloud captured by a spinning sensors head | |
WO2022134753A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head | |
WO2022134761A1 (en) | Method and apparatus of quantizing spherical coorinates used for encoding/decoding point cloud geometry data | |
EP4141794A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor | |
EP4142290A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor | |
WO2022213572A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head | |
WO2023050951A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor | |
WO2023050953A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor | |
WO2023050950A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor | |
WO2022213570A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data captured by a spinning sensors head | |
CN118077205A (zh) | 对由至少一个传感器感测到的点云几何数据进行编码/解码的方法和装置 | |
CN117957572A (zh) | 对由至少一个传感器感测到的点云几何数据进行编码/解码的方法和装置 | |
CN117693769A (zh) | 编码/解码由旋转传感器头捕获的点云的方法和装置 | |
CN117981321A (zh) | 对由至少一个传感器感测到的点云几何数据进行编码/解码的方法和装置 | |
CN118043849A (zh) | 编码/解码由至少一个传感器感测的点云几何数据的方法和装置 | |
KR20230162719A (ko) | 방위각 코딩 모드를 사용하여 포인트 클라우드 지오메트리 데이터를 인코딩/디코딩하는 방법 및 장치(method and apparatus of encoding/decoding point cloud geometry data using azimuthal coding mode) | |
CN115462082A (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 |