CN111699684B - 三维数据点的编解码方法和装置 - Google Patents

三维数据点的编解码方法和装置 Download PDF

Info

Publication number
CN111699684B
CN111699684B CN201980012178.9A CN201980012178A CN111699684B CN 111699684 B CN111699684 B CN 111699684B CN 201980012178 A CN201980012178 A CN 201980012178A CN 111699684 B CN111699684 B CN 111699684B
Authority
CN
China
Prior art keywords
node
nodes
depth
mode
coding
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.)
Active
Application number
CN201980012178.9A
Other languages
English (en)
Other versions
CN111699684A (zh
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.)
SZ DJI Technology Co Ltd
Original Assignee
SZ DJI Technology Co Ltd
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 SZ DJI Technology Co Ltd filed Critical SZ DJI Technology Co Ltd
Publication of CN111699684A publication Critical patent/CN111699684A/zh
Application granted granted Critical
Publication of CN111699684B publication Critical patent/CN111699684B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

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

Abstract

一种三维数据点的编解码方法和装置,通过在编码过程中对多叉树的前M层采用广度优先的方式进行编码(S301),对多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码(S303),在切换至深度优先的方式进行编码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行编码(S305)。也就是将部分或者全部节点采用深度优先的方式进行编码,去除了编码过程中节点之间的依赖关系,提供了另一种编码方式,并且,由于去除了编码过程中节点之间的依赖关系,在编码端可以采用并行的编码方式,提高了编码效率。

Description

三维数据点的编解码方法和装置
技术领域
本发明实施例涉及图像处理技术领域,尤其涉及一种三维数据点的编码方法和装置。
背景技术
点云是三维物体或场景的一种表现形式,是由空间中一组无规则分布、表达三维物体或场景空间结构和表面属性的离散三维数据点集所构成。为了准确反映空间中的信息,所需离散三维数据点的数目是巨大的。为了减少三维数据点存储所占空间和传输时所占用的带宽,需要对三维数据点进行编码压缩处理。
现有技术中,利用八叉树划分压缩三维数据点的位置坐标,在对三维数据点的位置坐标进行编码时,按照八叉树的广度优先顺序逐层编码八叉树的划分情况,然而,采用现有技术的编码方法,编码效率不高。
发明内容
本发明实施例提供一种三维数据点的编解码方法和装置,以提高编解码效率。
第一方面,本发明提供一种三维数据点的编码方法,所述三维数据点采用多叉树的方式进行划分,所述方法包括:
对所述多叉树的前M层采用广度优先的方式进行编码,所述M为大于等于2的整数;
对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,其中,对切换至深度优先的方式编码的节点的子节点采用广度优先的方式进行编码,所述节点的子节点包括对所述节点进行至少一次多叉树划分直到划分得到叶子节点过程中得到的所有子节点。
第二方面,本发明提供一种三维数据点的解码方法,所述三维数据点采用多叉树的方式进行划分,所述方法包括:
对所述多叉树的前M层采用广度优先的方式进行解码,所述M为大于等于2的整数;
对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,其中,对切换至深度优先的方式解码的节点的子节点采用广度优先的方式进行解码。
第三方面,本发明提供一种三维数据点的编码装置,所述三维数据点采用多叉树的方式进行划分,所述装置包括:处理器和存储器,其中,所述存储器上存储有可在所述处理器上运行的程序,所述处理器运行所述程序执行如下步骤:
对所述多叉树的前M层采用广度优先的方式进行编码,所述M为大于等于2的整数;对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,其中,对切换至深度优先的方式编码的节点的子节点采用广度优先的方式进行编码,所述节点的子节点包括对所述节点进行至少一次多叉树划分直到划分得到叶子节点过程中得到的所有子节点。
第四方面,本发明提供一种三维数据点的解码装置,所述三维数据点采用多叉树的方式进行划分,所述装置包括:处理器和存储器,其中,所述存储器上存储有可在所述处理器上运行的程序,所述处理器运行所述程序执行如下步骤:
对所述多叉树的前M层采用广度优先的方式进行解码,所述M为大于等于2的整数;对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,其中,对切换至深度优先的方式解码的节点的子节点采用广度优先的方式进行解码。
本发明实施例提供的三维数据点的编解码方法和装置,通过在编码过程中对多叉树的前M层采用广度优先的方式进行编码,对多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,也就是将部分或者全部节点采用深度优先的方式进行编码,去除了编码过程中节点之间的依赖关系,提供了另一种编码方式,并且,由于去除了编码过程中节点之间的依赖关系,在编码端可以采用并行的编码方式,提高了编码效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种八叉树划分的示意图;
图2为本发明实施例提供的一种八叉树划分结果的示意图;
图3为本发明实施例提供的一种三维数据点的编码方法的流程示意图;
图4为本发明实施例提供的一种三维数据点的解码方法的流程示意图;
图5为本发明实施例提供的一种三维数据点的编码装置的结构示意图;
图6为本发明实施例提供的一种三维数据点的解码装置的结构示意图;
图7为本发明实施例提供的测距装置的结构示意图;
图8为本发明的测距装置采用同轴光路的一种实施例的示意图;
图9为测距装置200的一种扫描图案的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明实施例通过三维数据点的信息来反映三维物体或场景空间结构在空间中的信息,具体地,可以通过三维数据点的位置信息反映三维物体或者场景空间结构在空间中的位置信息和/或形状信息等;可以通过三维数据点的属性信息反映三维物体或者场景空间结构在空间中的属性信息,属性信息例如可以是:颜色或者反射率等。
在三维数据点的编码过程和解码过程中,位置信息和属性信息可以分开进行,本发明实施例主要针对三维数据点的位置信息的编码过程和解码过程进行描述。
其中,三维数据点的位置信息可以通过三维数据点的位置坐标信息进行表征,其中,位置坐标信息可以是基于三维空间中的直角坐标系、球坐标系或者圆柱坐标系等确定的,对此,本发明实施例不做限制。
本发明实施例所描述的三维数据点可以通过采集设备得到,其中,采集设备包括但不限于测距装置。测距装置包括但不限于:基于光的测距装置、基于声波的测距装置或者基于电磁波的测距装置等。基于光的测距装置包括但不限于:光电雷达、激光雷达或者激光扫描仪等。
本发明实施例所描述的技术方案可以应用于三维数据点的编码设备和解码设备,其中,编码设备和解码设备可以独立设置,也可以集成于上述采集设备中,对此,本发明实施例不做限制。
本发明实施例在对三维数据点的位置坐标信息进行编码过程和解码过程中,对三维数据点采用多叉树划分的方式,其中,多叉树可以是二叉树、四叉树或者八叉树,多叉树划分过程中可以采用二叉树、四叉树或者八叉树中的任意一种划分方式,也可以采用任意两种划分方式的混合,也可以采用三种划分方式的混合,对此,本发明实施例不做限制。
通过多叉树划分的方式将对三维数据点的编码过程转化成多叉树的层次编码过程,每次多叉树的划分可以通过当前节点的中心点的坐标将当前节点划分为多个子节点。以基于三维空间中的直角坐标系进行八叉树划分为例,如图1所示,图1为本发明实施例提供的一种八叉树划分的示意图,对当前节点进行一次八叉树划分将当前节点划分为八个子节点。然后,判断每个子节点内是否存在三维数据点,对存在三维数据点的子节点再进行划分,直至子节点划分至预设大小停止划分,例如:可以划分到边长为1个计量单位的子节点时停止划分。图2为本发明实施例提供的一种八叉树划分结果的示意图,图2中仅示出第M层、第M+1层和第M+2层,其余层未示出,其中,对同一层节点划分得到的子节点处于同一子层,如图2所示,对第M层中的节点B和节点F进行八叉树划分的子节点均处于第M+1层,其中,节点B、节点F、子节点B1、子节点B2、子节点F1、子节点B12、子节点B21、子节点B22、子节点F11和子节点F12中包含三维数据点。
可选地,本发明实施例在对三维数据点进行多叉树划分之前,还包括:对三维数据点的位置坐标信息进行预处理,其中,一种可能的预处理的方式如下:
根据三维数据点的位置坐标在三个方向的最大值、最小值之间的差值,以及根据输入参数确定的量化精度,对每个三维数据点的位置坐标进行量化,将输入的三维数据点的位置坐标转换为大于等于零的整数坐标。可选地,还可以在此基础上进行去除重复坐标的操作。
本发明实施例在采用深度优先与广度优先混合的方式进行三维数据点的编码和解码。
其中,广度优先是指:编码或者解码完该层的指定范围内的多个节点的划分情况后,再逐层遍历编码或者解码该多个节点的该层之下的一层或多层子节点的划分情况,其中,指定范围内的多个节点可以是指多叉树划分过程中的该层的全部或者部分需要进一步划分的节点。
结合图2举例来说,假设该指定范围内的多个节点包括:第M层的节点B和节点F,则采用广度优先的方式编码,则先编码第M层节点B和节点F的划分情况;再编码节点B和节点F在第M+1层的子节点B1、子节点B2和子节点F1的划分情况;再编码节点B和节点F在第M+2层的子节点B11、子节点B12、子节点B21、子节点B22、子节点F11和子节点F12的划分情况,依次类推,逐层编码节点B和节点F在第M+3到最后一层的划分情况。假设,节点内包含三维数据点用二进制比特值为1表示,节点内未包含三维数据点用二进制比特值0表示,节点B的划分情况表示为:00100001;节点F的划分情况表示为:00100000;子节点B1的划分情况表示为:10010000;子节点B2的划分情况表示为:01000001;子节点F1的划分情况表示为:00100001;采用广度优先的方式依次编码节点B、节点F、子节点B1、子节点B2、子节点F1、子节点B12、子节点B21、子节点B22、子节点F11和子节点F12的划分情况,即:“……0010000100100000100100000100000100100001……”。
深度优先是指:编码或者解码完某一节点在该层的划分情况后,继续编码该节点在该层之下层的划分情况。也就是在编码或者解码该节点在该层之下一层或多层的划分情况前不考虑编码或者解码该层的其他节点的划分情况。
结合图2举例来说,假设该节点为节点B,则采用深度优先的方式编码,则先编码第M层节点B的划分情况;再编码节点B在第M+1层的子节点B1和子节点B2的划分情况;再编码节点B在第M+2层的子节点B11、子节点B12、子节点B21和子节点B22的划分情况,依次类推,编码节点B在第M+3层到最后一层的划分情况。假设,节点内包含三维数据点用二进制比特值为1表示,节点内未包含三维数据点用二进制比特值0表示,节点B的划分情况表示为:00100001;子节点B1的划分情况表示为:10010000;子节点B2的划分情况表示为:01000001;采用深度优先的方式依次编码节点B、子节点B1、子节点B2、子节点B12、子节点B21、子节点B22的划分情况,即:“……00100001001000001000001……”。
本发明实施例采用广度优先方式和深度优先方式混合进行三维数据点的编码和解码。
应理解,本申请实施例中提到的广度优先或深度优先也可以具有其他的名称,例如,广度或深度等。
下面结合附图,对本发明的一些实施方式作说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图3为本发明实施例提供的一种三维数据点的编码方法的流程示意图,本实施例的三维数据点采用多叉树的方式进行划分,如图3所示,本实施例的方法如下:
S301:对多叉树的前M层采用广度优先的方式进行编码。
其中,M为大于等于2的整数。
例如:假设多叉树的根节点为第1层,前M层是指第1层到第M层,本步骤是指从第1层开始,按照广度优先的方式,逐层遍历每层的所有节点进行编码,直至遍历完第M层的节点,结合图2,第M层的编码结果为01000100,则前M层的编码结果为“……01000100”。
S303:对多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码。
其中,对切换至深度优先的方式编码的节点的子节点采用广度优先的方式进行编码,所述节点的子节点包括对所述节点进行至少一次多叉树划分直到划分得到叶子节点过程中得到的所有子节点。
其中,S303的一种可能的实现方式:对多叉树的第M层中的所有节点采用深度优先的方式进行编码。
这里所描述的第M层中的所有节点均是指第M层中需要进一步划分的所有节点,也就是,第M层中包含三维数据点的节点。
可选地,对多叉树的第M层中的所有节点采用深度优先的方式进行编码可以是按照所有节点在第M层的位置顺序,依次对每个节点分别采用深度优先的方式进行编码。表1为编码结果的码流示意图。
表1编码结果的码流示意图
Figure BDA0002621369400000071
结合图2,即先对节点B采用深度优先的方式进行编码结束后,再对节点F采用深度优先的方式进行编码;进一步地,即先对节点B的所有子节点采用广度优先的方式进行编码结束后,再对节点F的所有子节点采用广度优先的方式进行编码,也就是,对节点B从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点,再对节点F从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点。表2为编码结果的码流示意图:
表2编码结果的码流示意图
Figure BDA0002621369400000072
可选地,对多叉树第M层中的所有节点采用深度优先的方式进行编码也可以是并行进行的,一种实现方式为:可以采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行编码,每个线程对应至少一个节点,例如:可以是一个线程对应一个节点,也可以是一个线程对应多个节点,多个线程并行运行,从而,提高编码效率。
可选地,当对第M层的所有节点采用深度优先的方式并行编码时,还包括:按照预设规则对并行编码结果进行拼接处理。例如:对采用深度优先的方式编码的所有节点按照节点在第M层中的顺序,依次拼接各节点对应的编码结果,编码结果的码流的示意图如表1所示。
结合图2,可以用线程1对节点B采用深度优先的方式进行编码,用线程2对节点F采用深度优先的方式进行编码,线程1和线程2进行并行编码。也就是,线程1对节点B从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点;线程2对节点F从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点;两个线程的编码过程并行进行。依次拼接节点B和节点F的编码结果,编码结果的码流示意图与表2相同。
其中,S303的另一种可能的实现方式:对多叉树的第M层中的至少一个节点采用深度优先的方式进行第一编码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二编码。
也就是,对多叉树的第M层的部分节点采用深度优先的方式进行编码,对其余节点采用广度优先的方式进行编码。
这里所描述的第M层中的至少一个节点以及其余节点均是指第M层中需要进一步划分的所有节点,也就是,第M层中包含三维数据点的节点。
可选地,可以按照节点在第M层中的位置顺序,当编码到需要采用深度优先的方式编码的节点时,对该节点采用深度优先的方式进行编码,编码结束后,若接下来的R个节点不是采用深度优先的方式进行编码,则采用广度优先的方式对接下来的R个节点进行编码,编码结束后,若R后的下一个节点采用深度优先的方式进行编码,则继续采用深度优先的方式进行编码,编码结束后,对第M层接下来的节点继续进行判断是采用深度优先的方式进行编码还是采用广度优先的方式进行编码,并采用相应的编码方式进行编码,直到第M层的所有节点编码结束。其中,R为大于等于1的整数,编码结果的码流示意图如表3所示。
表3编码结果的码流示意图
Figure BDA0002621369400000081
Figure BDA0002621369400000091
结合图2,假设节点B采用深度优先的方式进行编码,其余节点采用广度优先的方式进行编码;即先对节点B采用深度优先的方式进行编码结束后,确定节点F不采用深度优先的方式,则对节点F采用广度优先的方式进行编码;进一步地,即先对节点B的所有子节点采用广度优先的方式进行编码结束后,再对节点F的所有子节点采用广度优先的方式进行编码,也就是,对节点B从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点,再对节点F从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点。编码结果的码流示意图如表4所示。
表4编码结果的码流示意图
Figure BDA0002621369400000092
可选地,上述第一编码可以并行进行,第一编码与所述第二编码可以并行进行,一种实现方式为:可以采用至少一个线程对多叉树的第M层中的至少一个节点以深度优先的方式进行并行第一编码,每个线程对应至少一个节点,例如:可以是一个线程对应一个节点,也可以是一个线程对应多个节点,多个线程并行运行;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二编码,该其余节点共用一个线程。
可选地,当第M层的节点并行编码时,还包括:按照预设规则对并行编码结果进行拼接处理。例如:按照节点在第M层***顺序依次拼接采用广度优先方式的编码结果和采用深度优先方式的编码结果。,编码的码流的示意图如表3所示。
结合图2,即用线程1对节点B采用深度优先的方式进行编码,同时,用线程2对节点F采用广度优先的方式进行编码;进一步地,即用线程1对节点B的所有子节点采用广度优先的方式进行编码,同时,用线程2对节点F的所有子节点采用广度优先的方式进行编码,也就是,用线程1对节点B从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点,同时,用线程2对节点F从第M+1层至叶子节点层的所有子节点采用逐层编码每层的所有子节点。依次拼接节点B和节点F的编码结果,编码的码流示意图如表4所示。
本步骤中,将上述码流依次送入算术编码引擎中进一步编码,可选地,以深度优先的方式进行编码的每个节点对应一个概率模型;以广度优先的方式进行编码的所有节点对应一个概率模型,结合图2,例如:节点B和节点F采用并行的方式进行编码,则节点B采用一个概率模型,节点F采用另一个概率模型。如果还有其他节点以广度优先的方式进行编码,则其他节点共用一个概率模型。。
可选地,在上述实施例中,采用深度优先的方式编码的节点中包含的三维数据点的数目均大于预设阈值。
可选地,在S303之后还可以包括:
S305:在切换至深度优先的方式进行编码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行编码。
可选地,在对每个采用深度优先的方式进行编码的节点编码结束后,接着对该节点的叶子节点所包含的三维数据点的数量进行编码。
其中,对叶子节点所包含的三维数据点的数量进行编码的一种可能的实现方式为:
在叶子节点中包含1个三维数据点的情况下,用二进制比特值编码0;
在叶子节点中包含N个三维数据点的情况下,用二进制比特值依次编码1和N-1,其中,所述N为大于等于2的整数。
可选地,为了使得解码端能够获知编码端对哪些节点采用了深度优先的方式进行编码,编码端还包括编码标识符,以指示解码端编码端对哪些节点采用了深度优先的方式进行编码,具体地,包括但不限于如下两种可能的实现方式:
其中,第一种可能的实现方式为:
在对第M层中的至少一个节点切换至深度优先的方式进行编码之前,还包括:编码第一标识符,所述第一标识符用于指示对所述第M层中的至少一个节点切换至深度优先的方式进行编码。
可选地,一种情况为:第M层的部分节点采用深度优先的方式进行编码,则在编码至需要采用深度优先的方式进行编码的节点时,先编码一个第一标识符,再编码该节点对应的码流。另一种情况为:第M层的所有节点均采用深度优先的方式进行编码,则在编码第M层的每个节点时,先编码一个第一标识符,再编码该节点对应的码流。
其中,所述多叉树为N叉树,可选地,所述第一标识符可以为N比特0或者N比特1,其中,所述N为二、四或者八。具体地,若用二进制比特值为0表示节点中未包含三维数据点,则第一标识符用N比特0表示;若用二进制比特值1表示节点中未包含三维数据点,则第一标识符用N比特1表示。
第二种可能的实现方式:
在对第M层中的至少一个节点切换至深度优先的方式进行编码之前,还包括:编码第二标识符,第二标识符用于指示第M层中的所有节点采用深度优先的方式进行编码。可以在编码第M层的第一个节点时,编码第二标识符,再依次采用深度优先的方式编码第M层的所有节点的码流。在这种实现方式中,只需要编码一个第二标识符,即可指示第M层中的所有节点采用深度优先的方式进行编码,无需在编码第M层的每个节点时,都编码标识符。也可以是在对该多叉树的节点进行编码之前,先编码第二标识符,再编码到第M层时,直接采用深度优先的方式编码第M层的所有节点的码流即可,无需再编码其他标识符。
可选地,在上述实施例中,第M层可以是根据经验值确定的,也可以是根据预设条件确定的,对此,本发明实施例不做限制。
其中,第M层根据经验值确定的,可以是根据经验值确定的固定的某一层,例如:根据经验值确定第M层一般为第3层。也可以是根据经验值确定的从某一层开始之后满足预设条件的一层为第M层,例如:根据经验值确定从第3层开始,其中,满足至少一个节点包含的三维数据点的数目均大于预设阈值的一层为第M层。这里所描述的从某一层开始之后满足预设条件的一层,是指按照从根节点到叶子节点的顺序,从某一层开始最先满足预设条件的一层。可选地,至少一个可以是一个或者多个。
其中,第M层根据预设条件确定的,例如:确定满足至少一个节点包含的三维数据点的数目均大于预设阈值的一层为第M层。这里所描述的满足预设条件的一层,是指按照从根节点到叶子节点的层级的顺序,最先满足预设条件的一层。可选地,至少一个可以是一个或者多个。
可选地,在上述实施例中,对第M层的哪个节点采用深度优先的方式进行编码,可以根据第M层中的节点包含的三维数据点的数目确定,例如:确定第M层中包含的三维数据点的数目大于预设阈值的节点采用深度优先的方式进行编码。
本发明实施例的编码端在进行多叉树的编码过程中,对多叉树的前M层采用广度优先的方式进行编码,对多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,也就是将部分或者全部节点采用深度优先的方式进行编码,去除了编码过程中节点之间的依赖关系,提供了另一种编码方式,并且,由于去除了编码过程中节点之间的依赖关系,在编码端可以采用并行的编码方式,提高了编码效率。
图4为本发明实施例提供的一种三维数据点的解码方法的流程示意图,该实施例中,所述三维数据点采用多叉树的方式进行划分,所述方法包括:
S401:对多叉树的前M层采用广度优先的方式进行解码。
其中,M为大于等于2的整数。
按照广度优先的方式对前M层的码流进行解码。
S403:对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码。
其中,对切换至深度优先的方式解码的节点的子节点采用广度优先的方式进行解码。
其中,一种可能的实现方式为:
对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行解码。
可选地,可以采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行解码,其中,每个线程对应至少一个节点,例如:可以是一个线程对应一个节点,也可以是一个线程对应多个节点,多个线程并行运行。
另一种可能的实现方式为:可以对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行第一解码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二解码,所述第一解码与所述第二解码并行进行。
可选地,可以采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行并行的第一解码,每个线程对应至少一个节点,例如:可以是一个线程对应一个节点,也可以是一个线程对应多个节点,多个线程并行运行;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二解码,所述其余节点共用一个线程。
可选地,以深度优先的方式进行解码的每个节点对应一个概率模型;以广度优先的方式进行解码的所有节点对应一个概率模型,结合图2,例如:节点B和节点F采用并行的方式进行解码,则节点B采用一个概率模型,节点F采用另一个概率模型。如果还有其他节点以广度优先的方式进行解码,则其他节点共用一个概率模型。
可选地,S403之后,还包括:
S405:在切换至深度优先的方式进行解码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行解码。
可选地,当解码出一个0时,表示叶子节点块内仅含有一个三维数据点。当解码出一个1时,表示叶子节点块内含有不止一个三维数据点,接着会解码数值(N-1),表示叶子节点块内含有N个三维数据点,N为大于等于2的整数。
可选地,解码端可以根据编码端编码的标识符获知哪些节点在编码端采用了深度优先的方式进行编码,相应地,在解码端这些节点采用深度优先的方式进行解码,包括但不限于如下两种可能的实现方式:
其中,第一种可能的实现方式为:
若解码端在解码到第一标识符,第一标识符用于指示对第M层中的至少一个节点切换至深度优先的方式进行解码,则对第M层中的至少一个节点切换至深度优先的方式进行解码。可选地,当解码端将解码某个节点的码流时,先解码到了第一标识符,则采用深度优先的方式对该节点的码流进行解码。
其中,所述多叉树为N叉树,所述第一标识符为N比特0或者N比特1,其中,所述N为二、四或者八。具体地,若用二进制比特值为0表示节点中未包含三维数据点,则第一标识符用N比特0表示;若用二进制比特值1表示节点中未包含三维数据点,则第一标识符用N比特1表示。
其中,第二种可能的实现方式为:
解码端解码到第二标识符,第二标识符用于指示第M层中的所有节点采用深度优先的方式进行解码,第二标识符可能是在将解码的第M层的第一个节点时,先解码到了第二标识符;也可以是在解码端解码八叉树的码流的最开始解码到第二标识符;解码到第二标识符后,对第M层的所有节点采用深度优先的方式进行解码。
可选地,上述第M层可是编码端和解码端预先配置一致的,也可以是根据编码端在码流中携带的第一标识符或者第二标识符确定的,对此,本发明实施例不做限制。
可选地,通过上述方式可实现对位置坐标的多叉树解码。通过多叉树解码,逆量化,得到重建的三维数据点的位置坐标。
本发明实施例的解码端在进行多叉树的解码过程中,对多叉树的前M层采用广度优先的方式进行解码,对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,也就是,将部分或者全部节点采用深度优先的方式进行解码,去除了解码过程中节点之间的依赖关系,提供了另一种解码方式,并且,由于去除了解码过程中节点之间的依赖关系,在解码端可以采用并行的编码方式,提高了解码效率。
图5为本发明实施例提供的一种三维数据点的编码装置的结构示意图,本实施例的三维数据点采用多叉树的方式进行划分,本实施例的装置包括:处理器501和存储器502,其中,所述存储器上存储有可在所述处理器上运行的程序,所述处理器运行所述程序执行如下步骤:
对所述多叉树的前M层采用广度优先的方式进行编码,所述M为大于等于2的整数;对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,其中,对切换至深度优先的方式编码的节点的子节点采用广度优先的方式进行编码,所述节点的子节点包括对所述节点进行至少一次多叉树划分直到划分得到叶子节点过程中得到的所有子节点。
可选地,所述处理器501还用于在切换至深度优先的方式进行编码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行编码。
可选地,所述处理器501具体用于在所述叶子节点中包含1个三维数据点的情况下,编码0;在所述叶子节点中包含N个三维数据点的情况下,依次编码1和N-1,其中,所述N为大于等于2的整数。
可选地,所述处理器501具体用于对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行编码。
可选地,所述处理器501具体用于采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行编码,每个线程对应至少一个节点。
可选地,所述处理器501具体用于对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行并行第一编码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二编码,所述第一编码与所述第二编码并行进行。
可选地,所述处理器501具体用于采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行第一编码,每个线程对应至少一个节点;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二编码,所述其余节点共用一个线程。
可选地,以深度优先的方式进行编码的每个节点对应一个概率模型;以广度优先的方式进行编码的所有节点对应一个概率模型。
可选地,所述处理器501还用于编码第一标识符,所述第一标识符用于指示对所述第M层中的至少一个节点切换至深度优先的方式进行编码。
可选地,所述多叉树为N叉树,所述标识符为N比特0或者N比特1,其中,所述N为二、四或者八。
可选地,所述处理器501还用于确定对第M层中包含的三维数据点的数目大于预设阈值的节点切换至深度优先的方式进行编码。
可选地,所述第M层为根据经验值确定的层级。
可选地,所述处理器501还用于按照预设规则对并行编码结果进行拼接处理。
可选地,所述处理器501具体用于采用深度优先的方式编码的所有节点按照在所述第M层中的顺序,依次拼接各节点对应的编码结果。
可选地,所述处理器501具体用于按照节点在第M层中的顺序依次拼接采用广度优先方式的编码结果和采用深度优先方式的编码结果。
可选地,所述处理器501还用于编码第二标识符,所述第二标识符用于指示所述第M层中的所有节点采用深度优先的方式进行编码。
本实施例的装置,对应地可用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明实施例提供的一种三维数据点的解码装置的结构示意图,本实施例的三维数据点采用多叉树的方式进行划分,所述装置包括:处理器601和存储器602,其中,所述存储器上存储有可在所述处理器上运行的程序,所述处理器运行所述程序执行如下步骤:
对所述多叉树的前M层采用广度优先的方式进行解码,所述M为大于等于2的整数;对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,其中,对切换至深度优先的方式解码的节点的子节点采用广度优先的方式进行解码。
可选地,所述处理器601还用于在切换至深度优先的方式进行解码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行解码。
可选地,所述处理器601具体用于对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行解码。
可选地,所述处理器601具体用于采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行解码,每个线程对应至少一个节点。
可选地,所述处理器601具体用于对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行并行第一解码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二解码,所述第一解码与所述第二解码并行进行。
可选地,所述处理器601具体用于采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行第一解码,每个线程对应至少一个节点;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二解码,所述其余节点共用一个线程。
可选地,以深度优先的方式进行解码的每个节点对应一个概率模型;以广度优先的方式进行解码的所有节点对应一个概率模型。
可选地,所述处理器601还用于解码第一标识符,所述第一标识符用于指示采用深度优先的方式对所述第M层中的至少一个节点进行解码。
可选地,所述多叉树为N叉树,所述第一标识符为N比特0或者N比特1,其中,所述N为二、四或者八。
可选地,所述第M层为根据经验值确定的层级。
可选地,所述处理器601还用于解码第二标识符,所述第二标识符用于指示所述第M层中的所有节点采用深度优先的方式进行解码。
本实施例的装置,对应地可用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
一些示例中,上文中的三维数据点可以是测距装置所获取到的点云数据中的任意一个三维数据点。其中,该测距装置可以是激光雷达、激光测距设备等电子设备。在一种实施方式中,测距装置用于感测外部环境信息,例如,环境目标的距离信息、方位信息、反射强度信息、速度信息等。一个三维数据点可以包括测距装置所测到的外部环境信息中的至少一种。
一种实现方式中,测距装置可以通过测量测距装置和探测物之间光传播的时间,即光飞行时间(Time-of-Flight,TOF),来探测探测物到测距装置的距离。或者,测距装置也可以通过其他技术来探测探测物到测距装置的距离,例如基于相位移动(phase shift)测量的测距方法,或者基于频率移动(frequency shift)测量的测距方法,在此不做限制。
为了便于理解,以下将结合图7所示的测距装置100对产生本文中提到的三维数据点的测距装置举例描述。
如图7所示,测距装置100可以包括发射电路110、接收电路120、采样电路130和运算电路140。
发射电路110可以发射光脉冲序列(例如激光脉冲序列)。接收电路120可以接收经过被探测物反射的光脉冲序列,并对该光脉冲序列进行光电转换,以得到电信号,再对电信号进行处理之后可以输出给采样电路130。采样电路130可以对电信号进行采样,以获取采样结果。运算电路140可以基于采样电路130的采样结果,以确定测距装置100与被探测物之间的距离。
可选地,该测距装置100还可以包括控制电路150,该控制电路150可以实现对其他电路的控制,例如,可以控制各个电路的工作时间和/或对各个电路进行参数设置等。
应理解,虽然图7示出的测距装置中包括一个发射电路、一个接收电路、一个采样电路和一个运算电路,用于出射一路光束进行探测,但是本申请实施例并不限于此,发射电路、接收电路、采样电路、运算电路中的任一种电路的数量也可以是至少两个,用于沿相同方向或分别沿不同方向出射至少两路光束;其中,该至少两束光路可以是同时出射,也可以是分别在不同时刻出射。一个示例中,该至少两个发射电路中的发光芯片封装在同一个模块中。例如,每个发射电路包括一个激光发射芯片,该至少两个发射电路中的激光发射芯片中的die封装到一起,容置在同一个封装空间中。
一些实现方式中,除了图7所示的电路,测距装置100还可以包括扫描模块,用于将发射电路出射的至少一路激光脉冲序列改变传播方向出射。
其中,可以将包括发射电路110、接收电路120、采样电路130和运算电路140的模块,或者,包括发射电路110、接收电路120、采样电路130、运算电路140和控制电路150的模块称为测距模块,该测距模块可以独立于其他模块,例如,扫描模块。
测距装置中可以采用同轴光路,也即测距装置出射的光束和经反射回来的光束在测距装置内共用至少部分光路。例如,发射电路出射的至少一路激光脉冲序列经扫描模块改变传播方向出射后,经探测物反射回来的激光脉冲序列经过扫描模块后入射至接收电路。或者,测距装置也可以采用异轴光路,也即测距装置出射的光束和经反射回来的光束在测距装置内分别沿不同的光路传输。图8示出了本发明的测距装置采用同轴光路的一种实施例的示意图。
测距装置200包括测距模块201,测距模块201包括发射器203(可以包括上述的发射电路)、准直元件204、探测器205(可以包括上述的接收电路、采样电路和运算电路)和光路改变元件206。测距模块201用于发射光束,且接收回光,将回光转换为电信号。其中,发射器203可以用于发射光脉冲序列。在一个实施例中,发射器203可以发射激光脉冲序列。可选的,发射器203发射出的激光束为波长在可见光范围之外的窄带宽光束。准直元件204设置于发射器的出射光路上,用于准直从发射器203发出的光束,将发射器203发出的光束准直为平行光出射至扫描模块。准直元件还用于会聚经探测物反射的回光的至少一部分。该准直元件204可以是准直透镜或者是其他能够准直光束的元件。
在图8所示实施例中,通过光路改变元件206来将测距装置内的发射光路和接收光路在准直元件204之前合并,使得发射光路和接收光路可以共用同一个准直元件,使得光路更加紧凑。在其他的一些实现方式中,也可以是发射器203和探测器205分别使用各自的准直元件,将光路改变元件206设置在准直元件之后的光路上。
在图8所示实施例中,由于发射器203出射的光束的光束孔径较小,测距装置所接收到的回光的光束孔径较大,所以光路改变元件可以采用小面积的反射镜来将发射光路和接收光路合并。在其他的一些实现方式中,光路改变元件也可以采用带通孔的反射镜,其中该通孔用于透射发射器203的出射光,反射镜用于将回光反射至探测器205。这样可以减小采用小反射镜的情况中小反射镜的支架会对回光的遮挡。
在图8所示实施例中,光路改变元件偏离了准直元件204的光轴。在其他的一些实现方式中,光路改变元件也可以位于准直元件204的光轴上。
测距装置200还包括扫描模块202。扫描模块202放置于测距模块201的出射光路上,扫描模块202用于改变经准直元件204出射的准直光束219的传输方向并投射至外界环境,并将回光投射至准直元件204。回光经准直元件204汇聚到探测器205上。
在一个实施例中,扫描模块202可以包括至少一个光学元件,用于改变光束的传播路径,其中,该光学元件可以通过对光束进行反射、折射、衍射等等方式来改变光束传播路径。例如,扫描模块202包括透镜、反射镜、棱镜、振镜、光栅、液晶、光学相控阵(OpticalPhased Array)或上述光学元件的任意组合。一个示例中,至少部分光学元件是运动的,例如通过驱动模块来驱动该至少部分光学元件进行运动,该运动的光学元件可以在不同时刻将光束反射、折射或衍射至不同的方向。在一些实施例中,扫描模块202的多个光学元件可以绕共同的轴209旋转或振动,每个旋转或振动的光学元件用于不断改变入射光束的传播方向。在一个实施例中,扫描模块202的多个光学元件可以以不同的转速旋转,或以不同的速度振动。在另一个实施例中,扫描模块202的至少部分光学元件可以以基本相同的转速旋转。在一些实施例中,扫描模块的多个光学元件也可以是绕不同的轴旋转。在一些实施例中,扫描模块的多个光学元件也可以是以相同的方向旋转,或以不同的方向旋转;或者沿相同的方向振动,或者沿不同的方向振动,在此不作限制。
在一个实施例中,扫描模块202包括第一光学元件214和与第一光学元件214连接的驱动器216,驱动器216用于驱动第一光学元件214绕转动轴209转动,使第一光学元件214改变准直光束219的方向。第一光学元件214将准直光束219投射至不同的方向。在一个实施例中,准直光束219经第一光学元件改变后的方向与转动轴209的夹角随着第一光学元件214的转动而变化。在一个实施例中,第一光学元件214包括相对的非平行的一对表面,准直光束219穿过该对表面。在一个实施例中,第一光学元件214包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第一光学元件214包括楔角棱镜,对准直光束219进行折射。
在一个实施例中,扫描模块202还包括第二光学元件215,第二光学元件215绕转动轴209转动,第二光学元件215的转动速度与第一光学元件214的转动速度不同。第二光学元件215用于改变第一光学元件214投射的光束的方向。在一个实施例中,第二光学元件215与另一驱动器217连接,驱动器217驱动第二光学元件215转动。第一光学元件214和第二光学元件215可以由相同或不同的驱动器驱动,使第一光学元件214和第二光学元件215的转速和/或转向不同,从而将准直光束219投射至外界空间不同的方向,可以扫描较大的空间范围。在一个实施例中,控制器218控制驱动器216和217,分别驱动第一光学元件214和第二光学元件215。第一光学元件214和第二光学元件215的转速可以根据实际应用中预期扫描的区域和样式确定。驱动器216和217可以包括电机或其他驱动器。
在一个实施例中,第二光学元件215包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第二光学元件215包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第二光学元件215包括楔角棱镜。
一个实施例中,扫描模块202还包括第三光学元件(图未示)和用于驱动第三光学元件运动的驱动器。可选地,该第三光学元件包括相对的非平行的一对表面,光束穿过该对表面。在一个实施例中,第三光学元件包括厚度沿至少一个径向变化的棱镜。在一个实施例中,第三光学元件包括楔角棱镜。第一、第二和第三光学元件中的至少两个光学元件以不同的转速和/或转向转动。
扫描模块202中的各光学元件旋转可以将光投射至不同的方向,例如方向211和213,如此对测距装置200周围的空间进行扫描。如图9所示,图9为测距装置200的一种扫描图案的示意图。可以理解的是,扫描模块内的光学元件的速度变化时,扫描图案也会随之变化。
当扫描模块202投射出的光211打到探测物208时,一部分光被探测物208沿与投射的光211相反的方向反射至测距装置200。探测物208反射的回光212经过扫描模块202后入射至准直元件204。
探测器205与发射器203放置于准直元件204的同一侧,探测器205用于将穿过准直元件204的至少部分回光转换为电信号。
一个实施例中,各光学元件上镀有增透膜。可选的,增透膜的厚度与发射器203发射出的光束的波长相等或接近,能够增加透射光束的强度。
一个实施例中,测距装置中位于光束传播路径上的一个元件表面上镀有滤光层,或者在光束传播路径上设置有滤光器,用于至少透射发射器所出射的光束所在波段,反射其他波段,以减少环境光给接收器带来的噪音。
在一些实施例中,发射器203可以包括激光二极管,通过激光二极管发射纳秒级别的激光脉冲。进一步地,可以确定激光脉冲接收时间,例如,通过探测电信号脉冲的上升沿时间和/或下降沿时间确定激光脉冲接收时间。如此,测距装置200可以利用脉冲接收时间信息和脉冲发出时间信息计算TOF,从而确定探测物208到测距装置200的距离。
测距装置200探测到的距离和方位可以用于遥感、避障、测绘、建模、导航等。在一种实施方式中,本发明实施方式的测距装置可应用于移动平台,测距装置可安装在移动平台的平台本体。具有测距装置的移动平台可对外部环境进行测量,例如,测量移动平台与障碍物的距离用于避障等用途,和对外部环境进行二维或三维的测绘。在某些实施方式中,移动平台包括无人飞行器、汽车、遥控车、机器人、相机中的至少一种。当测距装置应用于无人飞行器时,平台本体为无人飞行器的机身。当测距装置应用于汽车时,平台本体为汽车的车身。该汽车可以是自动驾驶汽车或者半自动驾驶汽车,在此不做限制。当测距装置应用于遥控车时,平台本体为遥控车的车身。当测距装置应用于机器人时,平台本体为机器人。当测距装置应用于相机时,平台本体为相机本身。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (54)

1.一种三维数据点的编码方法,其特征在于,所述三维数据点采用多叉树的方式进行划分,所述方法包括:
对所述多叉树的前M层采用广度优先的方式进行编码,所述M为大于等于2的整数;
对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,其中,对切换至深度优先的方式编码的节点的子节点采用广度优先的方式进行编码,所述节点的子节点包括对所述节点进行至少一次多叉树划分直到划分得到叶子节点过程中得到的所有子节点。
2.根据权利要求1所述的方法,其特征在于,还包括:
在切换至深度优先的方式进行编码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行编码。
3.根据权利要求2所述的方法,其特征在于,所述对所述节点的叶子节点所包含的三维数据点的数量进行编码,包括:
在所述叶子节点中包含1个三维数据点的情况下,编码0;
在所述叶子节点中包含N个三维数据点的情况下,依次编码1和N-1,其中,所述N为大于等于2的整数。
4.根据权利要求1所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,包括:
对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行编码。
5.根据权利要求4所述的方法,其特征在于,所述对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行编码,包括:
采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行编码,其中,每个线程对应至少一个节点。
6.根据权利要求1所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,包括:
对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行并行的第一编码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二编码,所述第一编码与所述第二编码并行进行。
7.根据权利要求6所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行第一编码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二编码,包括:
采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行第一编码,其中,每个线程对应至少一个节点;
采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二编码,所述其余节点共用一个线程。
8.根据权利要求5所述的方法,其特征在于,以深度优先的方式进行编码的每个节点对应一个概率模型;以广度优先的方式进行编码的所有节点对应一个概率模型。
9.根据权利要求1所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码之前,还包括:
编码第一标识符,所述第一标识符用于指示对所述第M层中的至少一个节点切换至深度优先的方式进行编码。
10.根据权利要求9所述的方法,其特征在于,所述多叉树为N叉树,所述标识符为N比特0或者N比特1,其中,所述N为二、四或者八。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码之前,还包括:
确定对第M层中包含的三维数据点的数目大于预设阈值的节点切换至深度优先的方式进行编码。
12.根据权利要求1-10任一项所述的方法,其特征在于,所述第M层为根据经验值确定的层级。
13.根据权利要求4-8任一项所述的方法,其特征在于,还包括:
按照预设规则对并行编码结果进行拼接处理。
14.根据权利要求13所述的方法,其特征在于,所述按照预设规则对所述并行编码结果进行拼接处理,包括:
采用深度优先的方式编码的所有节点按照在所述第M层中的顺序,依次拼接各节点对应的编码结果。
15.根据权利要求13所述的方法,其特征在于,所述按照预设规则对所述并行编码结果进行拼接处理,包括:
按照节点在第M层中的顺序依次拼接采用广度优先方式的编码结果和采用深度优先方式的编码结果。
16.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
编码第二标识符,所述第二标识符用于指示所述第M层中的所有节点采用深度优先的方式进行编码。
17.一种三维数据点的解码方法,其特征在于,所述三维数据点采用多叉树的方式进行划分,所述方法包括:
对所述多叉树的前M层采用广度优先的方式进行解码,所述M为大于等于2的整数;
对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,其中,对切换至深度优先的方式解码的节点的子节点采用广度优先的方式进行解码。
18.根据权利要求17所述的方法,其特征在于,还包括:
在切换至深度优先的方式进行解码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行解码。
19.根据权利要求17所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,包括:
对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行解码。
20.根据权利要求19所述的方法,其特征在于,所述对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行解码,包括:
采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行解码,每个线程对应至少一个节点。
21.根据权利要求17所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,包括:
对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行第一解码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二解码,所述第一解码与所述第二解码并行进行。
22.根据权利要求21所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行第一解码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二解码,包括:
采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行并行第一解码,每个线程对应至少一个节点;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二解码,所述其余节点共用一个线程。
23.根据权利要求20所述的方法,其特征在于,以深度优先的方式进行解码的每个节点对应一个概率模型;以广度优先的方式进行解码的所有节点对应一个概率模型。
24.根据权利要求17所述的方法,其特征在于,所述对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码之前,还包括:
解码第一标识符,所述第一标识符用于指示采用深度优先的方式对所述第M层中的至少一个节点进行解码。
25.根据权利要求24所述的方法,其特征在于,所述多叉树为N叉树,所述第一标识符为N比特0或者N比特1,其中,所述N为二、四或者八。
26.根据权利要求17-25任一项所述的方法,其特征在于,所述第M层为根据经验值确定的层级。
27.根据权利要求17-20任一项所述的方法,其特征在于,还包括:
解码第二标识符,所述第二标识符用于指示所述第M层中的所有节点采用深度优先的方式进行解码。
28.一种三维数据点的编码装置,其特征在于,所述三维数据点采用多叉树的方式进行划分,所述装置包括:处理器和存储器,其中,所述存储器上存储有可在所述处理器上运行的程序,所述处理器运行所述程序执行如下步骤:
对所述多叉树的前M层采用广度优先的方式进行编码,所述M为大于等于2的整数;对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行编码,其中,对切换至深度优先的方式编码的节点的子节点采用广度优先的方式进行编码,所述节点的子节点包括对所述节点进行至少一次多叉树划分直到划分得到叶子节点过程中得到的所有子节点。
29.根据权利要求28所述的装置,其特征在于,所述处理器还用于在切换至深度优先的方式进行编码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行编码。
30.根据权利要求29所述的装置,其特征在于,所述处理器具体用于在所述叶子节点中包含1个三维数据点的情况下,编码0;在所述叶子节点中包含N个三维数据点的情况下,依次编码1和N-1,其中,所述N为大于等于2的整数。
31.根据权利要求28所述的装置,其特征在于,所述处理器具体用于对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行编码。
32.根据权利要求31所述的装置,其特征在于,所述处理器具体用于采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行编码,每个线程对应至少一个节点。
33.根据权利要求28所述的装置,其特征在于,所述处理器具体用于对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行并行第一编码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二编码,所述第一编码与所述第二编码并行进行。
34.根据权利要求33所述的装置,其特征在于,所述处理器具体用于采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行第一编码,每个线程对应至少一个节点;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二编码,所述其余节点共用一个线程。
35.根据权利要求32所述的装置,其特征在于,以深度优先的方式进行编码的每个节点对应一个概率模型;以广度优先的方式进行编码的所有节点对应一个概率模型。
36.根据权利要求28所述的装置,其特征在于,所述处理器还用于编码第一标识符,所述第一标识符用于指示对所述第M层中的至少一个节点切换至深度优先的方式进行编码。
37.根据权利要求36所述的装置,其特征在于,所述多叉树为N叉树,所述标识符为N比特0或者N比特1,其中,所述N为二、四或者八。
38.根据权利要求28-37任一项所述的装置,其特征在于,所述处理器还用于确定对第M层中包含的三维数据点的数目大于预设阈值的节点切换至深度优先的方式进行编码。
39.根据权利要求28-37任一项所述的装置,其特征在于,所述第M层为根据经验值确定的层级。
40.根据权利要求31-34任一项所述的装置,其特征在于,所述处理器还用于按照预设规则对并行编码结果进行拼接处理。
41.根据权利要求40所述的装置,其特征在于,所述处理器具体用于采用深度优先的方式编码的所有节点按照在所述第M层中的顺序,依次拼接各节点对应的编码结果。
42.根据权利要求40所述的装置,其特征在于,所述处理器具体用于按照节点在第M层中的顺序依次拼接采用广度优先方式的编码结果和采用深度优先方式的编码结果。
43.根据权利要求28-32任一项所述的装置,其特征在于,所述处理器还用于编码第二标识符,所述第二标识符用于指示所述第M层中的所有节点采用深度优先的方式进行编码。
44.一种三维数据点的解码装置,其特征在于,所述三维数据点采用多叉树的方式进行划分,所述装置包括:处理器和存储器,其中,所述存储器上存储有可在所述处理器上运行的程序,所述处理器运行所述程序执行如下步骤:
对所述多叉树的前M层采用广度优先的方式进行解码,所述M为大于等于2的整数;对所述多叉树的第M层中的至少一个节点切换至深度优先的方式进行解码,其中,对切换至深度优先的方式解码的节点的子节点采用广度优先的方式进行解码。
45.根据权利要求44所述的装置,其特征在于,所述处理器还用于在切换至深度优先的方式进行解码的节点中,对所述节点的叶子节点所包含的三维数据点的数量进行解码。
46.根据权利要求44或45所述的装置,其特征在于,所述处理器具体用于对所述多叉树的第M层中的所有节点采用深度优先的方式进行并行解码。
47.根据权利要求46所述的装置,其特征在于,所述处理器具体用于采用多个线程对所述多叉树的第M层中的所有节点以深度优先的方式进行并行解码,每个线程对应至少一个节点。
48.根据权利要求44所述的装置,其特征在于,所述处理器具体用于对所述多叉树的第M层中的至少一个节点采用深度优先的方式进行并行第一解码,对所述多叉树的第M层中的其余节点采用广度优先的方式进行第二解码,所述第一解码与所述第二解码并行进行。
49.根据权利要求48所述的装置,其特征在于,所述处理器具体用于采用至少一个线程对所述多叉树的第M层中的至少一个节点以深度优先的方式进行第一解码,每个线程对应至少一个节点;采用另一线程对所述多叉树的第M层中的其余节点以广度优先的方式进行第二解码,所述其余节点共用一个线程。
50.根据权利要求47所述的装置,其特征在于,以深度优先的方式进行解码的每个节点对应一个概率模型;以广度优先的方式进行解码的所有节点对应一个概率模型。
51.根据权利要求47所述的装置,其特征在于,所述处理器还用于解码第一标识符,所述第一标识符用于指示采用深度优先的方式对所述第M层中的至少一个节点进行解码。
52.根据权利要求51所述的装置,其特征在于,所述多叉树为N叉树,所述第一标识符为N比特0或者N比特1,其中,所述N为二、四或者八。
53.根据权利要求47-52任一项所述的装置,其特征在于,所述第M层为根据经验值确定的层级。
54.根据权利要求47-50任一项所述的装置,其特征在于,所述处理器还用于解码第二标识符,所述第二标识符用于指示所述第M层中的所有节点采用深度优先的方式进行解码。
CN201980012178.9A 2019-06-14 2019-06-14 三维数据点的编解码方法和装置 Active CN111699684B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/091351 WO2020248243A1 (zh) 2019-06-14 2019-06-14 三维数据点的编解码方法和装置

Publications (2)

Publication Number Publication Date
CN111699684A CN111699684A (zh) 2020-09-22
CN111699684B true CN111699684B (zh) 2022-05-06

Family

ID=72476451

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980012178.9A Active CN111699684B (zh) 2019-06-14 2019-06-14 三维数据点的编解码方法和装置

Country Status (3)

Country Link
US (1) US20220108493A1 (zh)
CN (1) CN111699684B (zh)
WO (1) WO2020248243A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022025275A1 (ja) * 2020-07-31 2022-02-03 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN115714864A (zh) * 2021-08-23 2023-02-24 鹏城实验室 点云属性编码方法、装置、解码方法以及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1321894A2 (en) * 2001-11-27 2003-06-25 Samsung Electronics Co., Ltd. Apparatus and method for representing 3-dimensional objects unsing depth images
CN1681330A (zh) * 2004-03-08 2005-10-12 三星电子株式会社 自适应2n叉树生成方法及3D体数据编码和解码方法和设备
CN1684109A (zh) * 2004-02-17 2005-10-19 三星电子株式会社 用于编码和解码三维数据的方法和装置
CN104809760A (zh) * 2015-05-07 2015-07-29 武汉大学 基于深度优先策略的地理空间三维外轮廓自动构建方法
CN106846425A (zh) * 2017-01-11 2017-06-13 东南大学 一种基于八叉树的散乱点云压缩方法
CN108322742A (zh) * 2018-02-11 2018-07-24 北京大学深圳研究生院 一种基于帧内预测的点云属性压缩方法
CN108335335A (zh) * 2018-02-11 2018-07-27 北京大学深圳研究生院 一种基于增强图变换的点云属性压缩方法
CN108632621A (zh) * 2018-05-09 2018-10-09 北京大学深圳研究生院 一种基于层次划分的点云属性压缩方法
WO2019110405A1 (en) * 2017-12-05 2019-06-13 Interdigital Ce Patent Holdings A method and apparatus for encoding a point cloud representing three-dimensional objects

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041818A1 (en) * 2004-08-23 2006-02-23 Texas Instruments Inc Method and apparatus for mitigating fading in a communication system
CN1946180B (zh) * 2006-10-27 2010-05-12 北京航空航天大学 一种基于Octree的三维模型压缩编码方法
ES2752227T3 (es) * 2010-04-13 2020-04-03 Ge Video Compression Llc Codificación de vídeo que usa subdivisiones multi-árbol de imágenes
CN108833927B (zh) * 2018-05-03 2019-08-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1321894A2 (en) * 2001-11-27 2003-06-25 Samsung Electronics Co., Ltd. Apparatus and method for representing 3-dimensional objects unsing depth images
CN1684109A (zh) * 2004-02-17 2005-10-19 三星电子株式会社 用于编码和解码三维数据的方法和装置
CN1681330A (zh) * 2004-03-08 2005-10-12 三星电子株式会社 自适应2n叉树生成方法及3D体数据编码和解码方法和设备
CN104809760A (zh) * 2015-05-07 2015-07-29 武汉大学 基于深度优先策略的地理空间三维外轮廓自动构建方法
CN106846425A (zh) * 2017-01-11 2017-06-13 东南大学 一种基于八叉树的散乱点云压缩方法
WO2019110405A1 (en) * 2017-12-05 2019-06-13 Interdigital Ce Patent Holdings A method and apparatus for encoding a point cloud representing three-dimensional objects
CN108322742A (zh) * 2018-02-11 2018-07-24 北京大学深圳研究生院 一种基于帧内预测的点云属性压缩方法
CN108335335A (zh) * 2018-02-11 2018-07-27 北京大学深圳研究生院 一种基于增强图变换的点云属性压缩方法
CN108632621A (zh) * 2018-05-09 2018-10-09 北京大学深圳研究生院 一种基于层次划分的点云属性压缩方法

Also Published As

Publication number Publication date
CN111699684A (zh) 2020-09-22
WO2020248243A1 (zh) 2020-12-17
US20220108493A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
CN111247802B (zh) 用于三维数据点集处理的方法和设备
CN111247798B (zh) 对三维数据点集进行编码或解码的方法和设备
US20210343047A1 (en) Three-dimensional data point encoding and decoding method and device
WO2020243874A1 (zh) 点云数据的位置坐标的编解码方法、***和存储介质
US20210293928A1 (en) Ranging apparatus, balance method of scan field thereof, and mobile platform
US20220108493A1 (en) Encoding/decoding method and device for three-dimensional data points
CN210038146U (zh) 测距模组、测距装置及可移动平台
CN111771136A (zh) 异常检测方法、报警方法、测距装置及可移动平台
US20210335015A1 (en) Three-dimensional data point encoding and decoding method and device
CN112204568A (zh) 路面标识识别方法及装置
CN210199305U (zh) 一种扫描模组、测距装置及可移动平台
WO2020124318A1 (zh) 调整扫描元件运动速度的方法及测距装置、移动平台
CN209979845U (zh) 一种测距装置及移动平台
US20220082665A1 (en) Ranging apparatus and method for controlling scanning field of view thereof
US20210341588A1 (en) Ranging device and mobile platform
US20230258769A1 (en) System of sensor-specific reflective surfaces for long-range sensor calibration
US20210333399A1 (en) Detection method, detection device, and lidar
CN111670380A (zh) 测距装置的异常记录方法、测距装置及可移动平台
WO2021248390A1 (zh) 点云的排序方法和装置
CN112654893A (zh) 扫描模块的电机转速控制方法、装置和测距装置
CN111587383A (zh) 应用于测距装置的反射率校正方法、测距装置
CN111712733A (zh) 一种测距装置及移动平台
WO2022040937A1 (zh) 激光扫描装置和激光扫描***
WO2020150961A1 (zh) 探测装置、可移动平台
CN111670385A (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
GR01 Patent grant
GR01 Patent grant