CN111327897B - 点云编码方法和编码器 - Google Patents

点云编码方法和编码器 Download PDF

Info

Publication number
CN111327897B
CN111327897B CN201811527959.5A CN201811527959A CN111327897B CN 111327897 B CN111327897 B CN 111327897B CN 201811527959 A CN201811527959 A CN 201811527959A CN 111327897 B CN111327897 B CN 111327897B
Authority
CN
China
Prior art keywords
subgroup
divided
ith
group
point cloud
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
CN201811527959.5A
Other languages
English (en)
Other versions
CN111327897A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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
Priority to CN201811527959.5A priority Critical patent/CN111327897B/zh
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to KR1020217021621A priority patent/KR20210094095A/ko
Priority to PCT/CN2019/124615 priority patent/WO2020119725A1/zh
Priority to JP2021533720A priority patent/JP7271671B2/ja
Priority to EP19896273.0A priority patent/EP3890320A4/en
Priority to MX2021007046A priority patent/MX2021007046A/es
Publication of CN111327897A publication Critical patent/CN111327897A/zh
Priority to US17/345,523 priority patent/US11935269B2/en
Application granted granted Critical
Publication of CN111327897B publication Critical patent/CN111327897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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
    • 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/177Methods 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 a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例公开了点云编码方法和编码器,涉及编解码技术领域,有助于提高编码效率。该方法包括:将待编码点云组划分成多个子组,其中,将所述待编码点云组划分成多个子组包括:对待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据该预划分子组的特征信息,确定该预划分子组为多个子组中的一个子组;该特征信息用于表征该预划分子组中的点云的占用图尺寸;对该多个子组包含的点云进行编码。

Description

点云编码方法和编码器
技术领域
本申请涉及编解码技术领域,尤其涉及点云(point cloud)编解码方法和编解码器。
背景技术
随着3d传感器(例如3d扫描仪)技术的不断发展,采集点云数据越来越便捷,所采集的点云数据的规模也越来越大,因此,如何有效地对点云数据进行编码,成为迫切需要解决的问题。
发明内容
本申请实施例提供了点云编码方法和编码器,有助于提高编码效率。
第一方面,提供了一种点云编码方法,包括:将待编码点云组划分成多个子组,其中,将所述待编码点云组划分成多个子组包括:对待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据该预划分子组的特征信息,确定该预划分子组为该多个子组中的一个子组;该特征信息用于表征该预划分子组中的点云的占用图尺寸;然后,对该多个子组包含的点云进行编码。由于点云的占用图尺寸决定了该点云的深度图和纹理图的尺寸,且点云的占用图、深度图和纹理图的尺寸是影响点云编码过程中的视频编解码效率的关键因素;因此,本技术方案中,结合预划分子组中的点云的占用图尺寸,确定待编码点云组所分成的子组,有助于提高视频编码效率,从而提高点云编解码效率。
在一种可能的设计中,通过点云的占用图的面积、高度或宽度来表征点云的占用图尺寸。
在一种可能的设计中,预划分子组的特征信息可以包括以下至少一种:预划分子组的全局占用图尺寸(即信息1)、预划分子组中的点云的占用图尺寸(即信息2)和预划分子组的并集patch占用图的面积(即信息3)。其中,信息1和信息3可以间接表征子组中的点云的占用图尺寸信息。信息2可以直接表征子组中的点云的占用图尺寸信息。
在一种可能的设计中,全局占用图的尺寸可以通过全局占用图的高度来表征。当然本申请实施例不限于此。
在一种可能的设计中,点云的占用图尺寸可以通过点云的占用图的高度来表征。当然本申请实施例不限于此。
在一种可能的设计中,在确定一个子组的过程中,通常需要执行一次或多次预划分(如采用滑动窗口的方法或二分法执行预划分),每一次执行预划分可以确定一个预划分子组。需要说明的是,在一些实施例中,可以重新执行某一次预划分,以重新获得某一预划分子组。
在一种可能的设计中,该方法还包括采用全局匹配打包算法确定预划分子组的特征信息。
在一种可能的设计中,对待编码点云组中的多帧点云进行预划分,以得到预划分子组,包括:以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组;第j帧点云是还未分组的点云中的第一帧点云;i≥1,i是整数;j≥1,j是整数;第i个预划分子组包括从第j帧点云开始的一帧或多帧点云。相应的,根据预划分子组的特征信息,确定预划分子组为该多个子组中的一个子组,包括:根据第i个预划分子组的特征信息,确定第i个预划分子组为该多个子组中的一个子组。可见,本申请实施例支持基于待编码点云组中的点云的顺序,在确定待编码点云组包括的一个子组的情况下,再确定下一个子组的技术方案。
在一种可能的设计中,根据第i个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组,包括:根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组。
在一种可能的设计中,根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组包括:当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组。这样,有助于使得待编码点云组中尽可能多的点云构成一个满足预设条件的子组,当采用全局匹配打包算法对该子组中的点云进行打包时有助于提高编码效率。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组的全局占用图的尺寸;相应的,当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组,包括:当第i个预划分子组的全局占用图的尺寸小于或等于第一阈值,且第i+1个预划分子组的全局占用图的尺寸大于第一阈值时,确定第i个预划分子组为多个子组中的一个子组。
可选的,第一阈值是预定义的值(如固定值);或者,第一阈值是基于候选打包算法获得的待编码点云组中的点云的占用图的最大尺寸所确定的。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组中的点云的占用图尺寸;相应的,当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组,包括:当第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,且第i+1个预划分子组中的大尺寸点云的帧数大于第一预设数量时,确定第i个预划分子组为多个子组中的一个子组;大尺寸点云是占用图尺寸大于或等于第二阈值的点云;或者,当第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值,且第i+1个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值大于第三阈值时,确定第i个预划分子组为多个子组中的一个子组。
可选的,第二阈值是预定义的值(如固定值);或者,大尺寸点云是基于全局匹配打包算法获得的占用图尺寸大于或等于第二阈值的点云,第二阈值是基于候选打包算法获得的待编码点云组中的点云占用图的最大尺寸所确定的,或者是基于候选打包算法获得的本点云的占用图尺寸所确定的。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组中的全局占用图的尺寸;相应的,根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组包括:当第i+1个预划分子组的全局占用图的尺寸,相比第i个预划分子组的全局占用图的尺寸的下降幅度大于或等于第五阈值时,说明相比将第i个预划分子组作为一个子组来说,将第i+1个预划分子组作为一个子组时,采用全局匹配打包算法进行打包时点云编码效率在下降且下降幅度较大,因此,确定第i个预划分子组为多个子组中的一个子组。这是在考虑到存在第i个预划分子组的一组全局匹配patch,在第i+1个预划分子组中不是全局匹配patch的情况而提出的技术方案。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组中的并集patch占用图的面积;相应的,根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组包括:当第i+1个预划分子组的并集patch占用图的总面积,相比第i个预划分子组的并集patch占用图的总面积的下降幅度大于或等于第四阈值时,说明相比将第i个预划分子组作为一个子组来说,将第i+1个预划分子组作为一个子组时,采用全局匹配打包算法进行打包时点云编码效率在下降且下降幅度较大,因此,确定第i个预划分子组为多个子组中的一个子组。这是在考虑到存在第i个预划分子组的一组全局匹配patch,在第i+1个预划分子组中不是全局匹配patch的情况而提出的技术方案。
在一种可能的设计中,以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组,包括:以第j帧点云为起点,对待编码点云组中还未分组的点云执行第i次滑动窗口,以得到第i个预划分子组;或者,以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行二分法,以得到第i个预划分子组。其中,不同次滑动窗口所采用的步长可以是固定不变的,也可以是可变的。可选的,第i1次滑动窗口所采用的步长大于或等于第i2次滑动窗口时采用的步长,1≤i1<i2≤i,i1和i2均是整数。进一步可选的,该方法还包括:根据公式N[i+1]=N[i]*c,获得第i+1次滑动窗口所采用的步长N[i+1];其中,N[i]是第i次滑动窗口所采用的步长,c是基于第i个预划分子组中大尺寸点云的帧数所确定的,大尺寸点云是指占用图尺寸大于或等于第二阈值的点云。例如,c满足如下公式:c=(a-b)/a;其中,a是第一预设数量,b是第i个预划分子组中大尺寸点云的帧数。
在一种可能的设计中,以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组,包括:以第j帧点云为起点,对待编码点云组中还未分组的点云执行第i次滑动窗口,以得到第i个预划分子组;相应的,根据第i个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组,包括:当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,采用第二步长重新获得第i+1个预划分子组,第二步长小于第一步长,第一步长是首次获得第i+1个预划分子组时所采用的步长;如果重新获得的第i+1个预划分子组的特征信息不满足预设条件,则采用第三步长重新获得第i+1个预划分子组,第三步长小于第二步长;以此类推,当重新获得第i+1个预划分子组的次数达到预设次数或者最新一次重新获得的第i+1个预划分子组的步长小于或等于预设步长时,如果最新一次重新获得的第i+1个预划分子组的特征信息不满足预设条件,则确定第i个预划分子组为多个子组中的一个子组。这样,有助于使得待编码点云组中尽可能多的点云构成一个满足预设条件的子组,当采用全局匹配打包算法对该子组中的点云进行打包时,有助于提高编码效率。
基于此可选的,将待编码点云组划分成多个子组还包括:当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,确定本次重新获得的第i+1个预划分子组为一个子组;当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差大于第二预设数量时,采用第四步长获得第i+2个预划分子组,第二步长与第四步长之和小于第一步长;如果第i+2个预划分子组的特征信息满足预设条件,则采用第五步长获得第i+3个预划分子组,第二步长、第四步长与第五步长之和小于第一步长;以此类推,当所获得的第i+k个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,如果i+k个预划分子组的特征信息满足预设条件,则确定第i+k个预划分子组为多个子组中的一个子组,k≥2,k是整数。这样,有助于使得待编码点云组中尽可能多的点云构成一个满足预设条件的子组,当采用全局匹配打包算法对该子组中的点云进行打包时,有助于提高编码效率。
在一种可能的设计中,以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组,包括:以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行二分法,以得到第i个预划分子组;相应的,根据第i个预划分子组的特征信息,确定预划分子组为多个子组中的一个子组,包括:如果第i个预划分子组的特征信息满足预设条件,则确定第i个预划分子组为多个子组中的一个子组。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组的全局占用图的尺寸;相应的,第i个预划分子组的特征信息满足预设条件包括:第i个预划分子组的全局占用图的尺寸小于或等于第一阈值;和/或,第i+1个预划分子组的全局占用图的尺寸,相比第i个预划分子组的全局占用图的尺寸的下降幅度大于或等于第五阈值。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组中的点云的占用图尺寸;相应的,第i个预划分子组的特征信息满足预设条件包括:第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,大尺寸点云是占用图尺寸大于或等于第二阈值的点云;或者,第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值。第二阈值的实现方式可以参考上文。
在一种可能的设计中,第i个预划分子组的特征信息包括第i个预划分子组中的并集patch占用图的面积;相应的,第i个预划分子组的特征信息满足预设条件包括:第i+1个预划分子组的并集patch占用图的总面积,相比第i个预划分子组的并集patch占用图的总面积的下降幅度大于或等于第四阈值。
可以理解的是,上述提供了第i个预划分子组的特征信息满足预设条件的具体实现方式,相应地,可以得到第i个预划分子组的特征信息不满足预设条件的具体实现方式;以及第i+k个预划分子组的特征信息是否满足预设条件的具体实现方式,此处的k≥1,k是整数。
第二方面,提供一种编码器,包括:分组模块和编码模块。其中,分组模块用于将待编码点云组划分成多个子组,其中,将待编码点云组划分成多个子组包括:对待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据该预划分子组的特征信息,确定该预划分子组为多个子组中的一个子组;特征信息用于表征预划分子组中的点云的占用图尺寸。编码模块用于对该多个子组包含的点云进行编码。
关于分组模块所执行的步骤的具体实现方式或相关内容的解释等均可以参考上述第一方面,此处不再赘述。
第三方面,提供一种用于编码点云数据的设备,该设备可以包括:存储器和编码器。存储器用于存储点云数据。编码器用于执行上述第一方面或第一方面的任一种可能的设计提供的点云编码方法。
第四方面,提供一种编码设备,包括:相互耦合的非易失性存储器和处理器,处理器调用存储在存储器中的程序代码以执行第一方面或第一方面的任一种可能的设计提供的点云编码方法的部分或全部步骤。
第五方面,提供一种编码装置,该装置包括存储器和处理器。存储器用于存储程序代码;处理器用于调用所述程序代码,以执行第一方面或第一方面的任一种可能的设计提供的点云编码方法的部分或全部步骤。
第六方面,提供一种计算机可读存储介质,该计算机可读存储介质存储了程序代码,当该程序代码在计算机上运行时,使得第一方面或第一方面的任一种可能的设计提供的点云编码方法的部分或全部步骤被执行。
第七方面,提供一种计算机程序产品,当该计算机程序产品在计算机上运行时使得该计算机执行第一方面或第一方面的任一种可能的设计提供的点云编码方法的部分或全部步骤。
应当理解的是,上述提供的编码器、编码点云数据的设备、编码设备、编码装置、计算机可读存储介质或计算机程序产品的有益效果均可以对应参考第一方面提供的方法实施例的有益效果,此处不再赘述。
附图说明
图1为可用于本申请实施例的一种实例的点云译码系统的示意性框图;
图2为可用于本申请实施例的一种实例的编码器的示意性框图;
图3为可用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图;
图4为可用于本申请实施例的一种实例的解码器的示意性框图;
图5为本申请实施例提供的一种点云编码方法的流程示意图;
图6为本申请实施例提供的一种滑动窗口、步长、预划分子组之间的对应关系的示意图;
图7为本申请实施例提供的一种确定一个子组的方法的流程示意图;
图8A为本申请实施例提供的一种确定子组的过程示意图;
图8B为本申请实施例提供的另一种确定子组的过程示意图;
图9为本申请实施例提供的另一种确定一个子组的方法的流程示意图;
图10为本申请实施例基于图9提供的一种确定一个子组的方法的过程示意图;
图11A为本申请实施例基于图9提供的一种确定一个子组的方法的过程示意图;
图11B为本申请实施例基于图9提供的另一种确定一个子组的方法的过程示意图;
图12为本申请实施例提供的一种二分法和预划分子组之间的关系的示意图;
图13为本申请实施例提供的另一种确定一个子组的方法的流程示意图;
图14为本申请实施例提供的另一种确定一个子组的方法的流程示意图;
图15为本申请实施例提供的一种编码器的示意性框图;
图16为用于本申请实施例的编码设备的一种实现方式的示意性框图。
具体实施方式
图1为可用于本申请实施例的一种实例的点云译码系统1的示意性框图。术语“点云译码”或“译码”可一般地指代点云编码或点云解码。点云译码系统1的编码器100可以根据本申请提出的任一种点云编码方法对待编码点云进行编码。点云译码系统1的解码器200可以根据本申请提出的与编码器使用的点云编码方法相对应的点云解码方法对待解码点云进行解码。
如图1所示,点云译码系统1包含源装置10和目的地装置20。源装置10产生经编码点云数据。因此,源装置10可被称为点云编码装置。目的地装置20可对由源装置10所产生的经编码的点云数据进行解码。因此,目的地装置20可被称为点云解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、带电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置20可经由链路30从源装置10接收经编码点云数据。链路30可包括能够将经编码点云数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码点云数据直接发送到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码点云数据,且可将经调制的点云数据发送到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码点云数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字多功能光盘(digitalversatile disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码点云数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码点云数据的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的点云数据。文件服务器可为任何类型的能够存储经编码的点云数据并且将经编码的点云数据发送到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(networkattached storage,NAS)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码点云数据。这可包含无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线路(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码点云数据的两者的组合。经编码点云数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
图1中所说明的点云译码系统1仅为实例,并且本申请的技术可适用于未必包含点云编码装置与点云解码装置之间的任何数据通信的点云译码(例如,点云编码或点云解码)装置。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。点云编码装置可对数据进行编码并且将数据存储到存储器,和/或点云解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图1的实例中,源装置10包含数据源120、编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发送器(或称为发射器)。数据源120可包括点云捕获装置(例如,摄像机)、含有先前捕获的点云数据的点云存档、用以从点云内容提供者接收点云数据的点云馈入接口,和/或用于产生点云数据的计算机图形系统,或点云数据的这些来源的组合。
编码器100可对来自数据源120的点云数据进行编码。在一些实例中,源装置10经由输出接口140将经编码点云数据直接发送到目的地装置20。在其它实例中,经编码点云数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
在图1的实例中,目的地装置20包含输入接口240、解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码点云数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码点云数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图1中未图示,但在一些方面,编码器100和解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
编码器100和解码器200各自可实施为例如以下各项的多种电路中的任一者:一个或多个微处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。编码器100和解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请可大体上将编码器100称为将某些信息“发信号通知”或“发送”到例如解码器200的另一装置。术语“发信号通知”或“发送”可大体上指代用以对经压缩点云数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
如图2所示,为可用于本申请实施例的一种实例的编码器100的示意性框图。图2是以MPEG(Moving Picture Expert Group)点云压缩(Point Cloud Compression,PCC)编码框架为例进行说明的。在图2的实例中,编码器100可以包括patch信息生成模块101、打包模块102、深度图生成模块103、纹理图生成模块104、第一填充模块105、基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108和复用模块109等。另外,编码器100还可以包括点云滤波模块110、第二填充模块111和点云重构模块112等。其中:
patch信息生成模块101,用于采用某种方法将一帧点云分割产生多个patch,以及获得所生成的patch的相关信息等。其中,patch是指一帧点云中部分点构成的集合,通常一个连通区域对应一个patch。patch的相关信息可以包括但不限于以下信息中的至少一项:点云所分成的patch的个数、每个patch在三维空间中的位置信息、每个patch的法线坐标轴的索引、每个patch从三维空间投影到二维空间产生的深度图、每个patch的深度图大小(例如深度图的宽和高)、每个patch从三维空间投影到二维空间产生的占用图等。该相关信息中的部分,如点云所分成的patch的个数,每个patch的法线坐标轴的索引,每个patch的深度图大小、每个patch在点云中的位置信息、每个patch的占用图尺寸信息等,可以作为辅助信息被发送到辅助信息编码模块108,以进行编码(即压缩编码)。每个patch的占用图可以被发送到打包模块102进行打包。再一方面,各patch在该点云占用图中的具体位置信息和各patch的深度图等可以被发送到深度图生成模块103。
打包模块102获得该点云的占用图后,一方面可以将该点云的占用图经第二填充模块111进行填充后发送到占用图编码模块107以进行编码。另一方面可以利用该点云的占用图指导深度图生成模块103生成该点云的深度图和指导纹理图生成模块104生成该点云的纹理图。
如图3所示,为可用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图。其中,图3中的(a)为一帧点云的示意图,图3中的(b)为基于图3中的(a)获得的点云的patch的示意图,图3中的(c)为图3中的(b)所示的各patch映射到二维平面上所获得的各patch的占用图经打包获得的该点云的占用图的示意图。
深度图生成模块103,用于根据点云的占用图、该点云的各patch的占用图和深度信息,生成该点云的深度图,并将所生成的深度图发送到第一填充模块105,以对深度图中的空白像素进行填充,以得到经填充的深度图。
纹理图生成模块104,用于根据点云的占用图、该点云的各patch的占用图和纹理信息,生成该点云的纹理图,并将所生成的纹理图发送到第一填充模块105,以对纹理图中的空白像素进行填充,以得到经填充的纹理图。
经填充的深度图和经填充的纹理图被第一填充模块105发送到基于图像或视频的编码模块106,以进行基于图像或视频的编码。后续:
一方面,基于图像或视频的编码模块106、占用图编码模块107、辅助信息编码模块108,将所获得的编码结果(即码流)发送到复用模块109,以合并成一个码流,该码流可以被发送到输出接口140。
另一方面,基于图像或视频的编码模块106所获得的编码结果(即码流)发送到点云重构模块112进行点云重构,以获得经重构的点云(即获得重构的点云几何信息)。具体的,对基于图像或视频的编码模块106所获得的经编码的深度图进行视频解码,以得到点云的解码深度图,利用解码深度图、该点云的占用图和各patch的辅助信息,以得到重构的点云几何信息。其中,点云的几何信息是指点云中的点(例如点云中的每个点)在三维空间中的坐标值。
可选的,点云重构模块112还可以将点云的纹理信息和重构的点云几何信息发送到着色模块,着色模块用于对重构点云进行着色,以获得重构点云的纹理信息。
可选的,纹理图生成模块104还可以基于经点云滤波模块110对重构的点云几何信息进行滤波获得的信息,生成该点云的纹理图。
可以理解的,图2所示的编码器100仅为示例,具体实现时,编码器100可以包括比图2中所示的更多或更少的模块。本申请实施例对此不进行限定。
作为一个示例,应用于本申请实施例时,打包模块102可以包括分组子模块(未示意)和打包子模块(未示意)。分组子模块用于对待编码点云组进行预划分,得到预划分子组。打包子模块用于基于预设打包算法(如全局匹配打包算法等)对预划分子组中的点云的patch占用图进行打包,并将打包过程中或打包之后得到的预划分子组的特征信息,发送给分组子模块;由分组子模块根据该特征信息,对待编码点云组进行分组。相应地:
在一个示例中,打包模块102将待编码点云组划分成多个子组,其中在执行对待编码点云组进行分组的过程中,生成所述多个子组中包含的点云的占用图,该点云的占用图被发送到深度图生成模块103、纹理图生成模块104和第二填充模块111。该情况下,接收该点云的占用图的模块以及与其相连接或相通信的模块共同配合完成编码功能。
在另一个示例中,打包模块102中分组和打包的过程是相互较为独立的,相应地,打包模块102可以包括分组子模块(未示意)和打包子模块(未示意)。分组子模块在执行对待编码点云组进行分组之后,将分组结果发送给打包子模块,由打包子模块基于分组结果执行打包操作,得到多个子组包含的点云的占用图,该点云的占用图被发送到的深度图生成模块103、纹理图生成模块104和第二填充模块111。该情况下,打包子模块、接收点云的占用图的模块与其相连接或相通信的模块共同配合完成编码功能。
如图4所示,为可用于本申请实施例的一种实例的解码器200的示意性框图。其中,图4中是以MPEG PCC解码框架为例进行说明的。在图4的实例中,解码器200可以包括解复用模块201、基于图像或视频的解码模块202、占用图解码模块203、辅助信息解码模块204、点云的几何信息重构模块205、点云滤波模块206和点云的纹理信息重构模块207。其中:
解复用模块201用于将输入的码流(即合并的码流)发送到相应解码模块。具体的,将包含经编码的纹理图的码流和经编码的深度图的码流发送给基于图像或视频的解码模块202;将包含经编码的占用图的码流发送给占用图解码模块203,将包含经编码的辅助信息的码流发送给辅助信息解码模块204。
基于图像或视频的解码模块202,用于对接收到的经编码的纹理图和经编码的深度图进行解码;然后,将解码获得的纹理图信息发送给点云的纹理信息重构模块207,将解码获得的深度图信息发送给点云的几何信息重构模块205。占用图解码模块203,用于对接收到的包含经编码的占用图的码流进行解码,并将解码获得的占用图信息发送给点云的几何信息重构模块205。辅助信息解码模块204,用于对接收到的经编码的辅助信息进行解码,并将解码获得的指示辅助信息的信息发送给点云的几何信息重构模块205。
点云的几何信息重构模块205,用于根据接收到的占用图信息和辅助信息对点云的几何信息进行重构。经重构的点云的几何信息经点云滤波模块206滤波之后,被发送到点云的纹理信息重构模块207。
点云的纹理信息重构模块207,用于对点云的纹理信息进行重构,以得到经重构的点云。
可以理解的,图4所示的解码器200仅为示例,具体实现时,解码器200可以包括比图4中所示的更多或更少的模块。本申请实施例对此不进行限定。
为了便于理解本申请实施例提供的技术方案,以下对本申请实施例涉及的技术及术语进行说明。
anchor算法,是一种打包算法。具体的,将一帧点云的各patch按照特定的顺序进行排列例如按照各patch的占用图的宽/高降序(或升序)排列;然后,按照排列后的各patch的顺序,依次将patch的占用图插入该点云占用图的可用区域中,获得该点云的占用图。
全局匹配打包算法,是以多帧点云为单位执行打包的打包算法,可以使得该多帧点云的任意一帧点云中的任意一个全局匹配patch的占用图在该帧点云的占用图中的位置,对应于与该全局匹配patch具有匹配关系的全局匹配patch的占用图在其所在点云的占用图中的位置。具体的,可适用于本申请实施例的一种全局匹配打包算法可以包括如下步骤:
步骤1:获取点云组的全局匹配patch。该点云组包括N帧点云。N≥2,N是整数。
其中,一帧点云的全局匹配patch是指该帧点云中的且在点云组中除该帧点云之外的各帧点云中均能找到具有匹配关系的patch的patch。同时,与该patch具有匹配关系的patch是全局匹配patch。其中,与一个patch具有匹配关系的patch是目标patch的匹配patch,目标patch是该patch或者该patch的匹配patch。可选的,一帧点云中的一个patch在另一帧点云中的匹配patch,可以是该另一帧点云中的与该patch的交并比(intersectionover union,IoU)最大且该IoU大于或等于预设阈值的patch。
对于任一全局匹配patch来说,与该全局匹配patch具有匹配关系的patch的个数是N-1。
步骤2:确定与M个集合对应的M个并集patch占用图(即并集占用图),每个集合包括N个全局匹配patch,该N个全局匹配patch是N帧点云中具有匹配关系的patch(或跨N帧点云中具有匹配关系的patch)。可选的,第m个集合对应的并集patch占用图是第m个集合中的各全局匹配patch的占用图的并集;1≤m≤M,m和M均是整数。
一个集合包括的N个全局匹配patch是跨N帧点云中具有匹配关系的patch,可以理解为:该N个全局匹配patch中的每个全局匹配patch来自于(或所属)一帧点云、不同全局匹配patch来自于不同点云、且该N个全局匹配patch具有匹配关系。
一个全局匹配patch所属的集合对应的并集patch占用图覆盖该全局匹配patch的占用图。
需要说明的是,本申请实施例中,将用于获得一个并集patch占用图的具有匹配关系的全局匹配patch称为是“一组全局匹配patch(或一个全局匹配patch组)”。在此统一说明,下文不再赘述。
步骤3:对上述M个并集patch占用图进行打包,以得到全局占用图(即最终的占用图)。其中,全局占用图用于确定M个并集patch占用图在全局占用图中的位置。其中,打包的过程可以认为是对全局占用图进行更新的过程,如将这M个并集patch占用图按照从上到下,从左到右的顺序排列在全局占用图的可用空间,以得到最终的占用图。
步骤4:对N帧点云中的每帧点云进行打包,以得到N帧点云的占用图。第n帧点云中的第m个全局匹配patch的占用图在第n帧点云的占用图中的位置(即第一位置),对应于M个并集patch占用图中的第m个并集patch占用图在全局占用图中的位置(即第二位置);1≤n≤N,n是整数。
第一位置对应于第二位置可以包括:第一位置的坐标值与第二位置的坐标值相同;或者第一位置的坐标值在其坐标系下与第二位置的坐标值在其坐标系下实质性相同;或者第一位置的坐标值与第二位置的坐标值不相同,但第二位置所在的位置范围覆盖第一位置所在的位置范围。第一位置的坐标值可通过第n帧点云的占用图中的第m个全局匹配patch的占用图在第n帧点云的占用图中的位置坐标来表征。第二位置的坐标值可通过第m个并集patch占用图在全局占用图中的位置坐标来表征。第一位置所在的位置范围是第m个全局匹配patch的占用图所占的区域,第二位置所在的位置范围是第m个并集patch占用图所占的区域。
作为一个示例,上述所描述的全局匹配打包算法中的相关内容的解释以及具体实现方式的说明,可以例如但不限于参考申请人其他的在先申请的专利。
本申请实施例中的术语“至少一个(种)”包括一个(种)或多个(种)。“多个(种)”是指两个(种)或两个(种)以上。例如,A、B和C中的至少一种,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
可以理解的是,相比采用anchor算法,一方面,采用全局匹配打包算法进行打包得到的多个点云中具有匹配关系的patch的占用图在其所在点云占用图中的位置相对应,这有助于提高点云的编解码性能。另一方面,采用全局匹配打包算法得到的点云的占用图的尺寸通常比采用anchor算法得到的尺寸大,这会降低点云的编解码性能。基于此,本申请实施例提供的一些实施例的基本思想是:通过平衡这两方面对点云的编解码性能的影响,使得基于全局打包算法对待编码点云组中包含至少两帧点云的子组进行打包时,以得到的整体性能较高。其中,这里的anchor算法可以替换为其他的打包算法。
本申请的另一些实施例中,不需要对比多种打包算法的编解码性能,而是直接基于一种打包算法实现对待编码点云组进行分组,该打包算法例如但不限于是全局匹配打包算法。
以下,对本申请实施例提供的点云编码方法进行说明。需要说明的是,结合图1所示的点云译码系统,下文中的任一种点云编码方法可以是点云译码系统中的源装置10执行的,更具体的,是由源装置10中的编码器100执行的。
如图5所示,为本申请实施例提供的一种点云编码方法的流程示意图。该方法可以包括:
S101:将待编码点云组划分成多个子组。其中,将待编码点云组划分成多个子组包括:对待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据该预划分子组的特征信息,确定该预划分子组为该多个子组中的一个子组;该特征信息用于表征该预划分子组中的点云的占用图尺寸。
其中,点云的占用图尺寸信息可以是点云的占用图的面积、高度或宽度等,下文中均以点云的占用图尺寸信息是占用图的面积为例进行说明,在此统一说明,下文不再赘述。
待编码点云组包括多帧点云,该多帧点云可以是时间上连续或非连续的多帧点云。例如,待编码点云组可以是一个或多个帧组(group of frame,GOF),一个GOF可以包括32帧点云,当然不限于此。
待编码点云所划分成的任意一个子组可以包含一帧或多帧点云。不同子组包含的点云的帧数可以相等,也可以不相等。
本申请实施例对预划分所采用的方法不进行限定,例如,可以采用滑动窗口的方法或者二分法对待编码点云组中的多帧点云进行预划分。
预划分子组中的点云的占用图尺寸可以是基于全局匹配打包算法或基于其他打包算法例如anchor打包算法等所确定的。
预划分子组的特征信息,可以是直接或间接用于表征该预划分子组中的点云的占用图尺寸的信息。例如,该特征信息可以包括以下信息1至信息3中的至少一种:
信息1:预划分子组的全局占用图尺寸。可选的,预划分子组的全局占用图尺寸可以通过该预划分子组的全局占用图的高度(height)和宽度(weight)的乘积(即面积)来表征。可选的,如果在确定一个子组的过程中,所获得的不同的预划分子组的全局占用图的宽度相等,则预划分子组的全局占用图尺寸可以通过该预划分子组的全局占用图的高度来表征。同理,如果在确定一个子组的过程中,所获得的不同的预划分子组的全局占用图的高度相等,则预划分子组的全局占用图尺寸可以通过该预划分子组的全局占用图的宽度来表征。由于预划分子组的全局占用图尺寸限定了该预划分子组中的每一帧点云的占用图的最小尺寸,因此,可以通过预划分子组的全局占用图尺寸来间接表征预划分子组中的点云的占用图尺寸。
信息2:预划分子组中的点云的占用图尺寸,如预划分子组中的一帧或多帧(如所有帧)点云的占用图尺寸。可选的,预划分子组中的点云的占用图尺寸可以通过该预划分子组中的点云的占用图的高度和宽度的乘积(即面积)来表征。可选的,如果在确定一个子组的过程中,所获得的不同点云的占用图的宽度相等,则预划分子组中的点云的占用图尺寸可以通过该预划分子组中的点云的占用图的高度来表征。同理,如果在确定一个子组的过程中,所获得的不同点云的占用图的高度相等,则预划分子组中的点云的占用图尺寸可以通过该预划分子组中的点云的占用图的宽度来表征。信息2是直接用于表征预划分子组中的点云的占用图尺寸的信息。
信息3:预划分子组的并集patch占用图的面积。根据上文中的描述可知,预划分子组的并集patch占用图可以有多个。预划分子组的并集patch占用图的面积,可以是该预划分子组的一个或多个(如所有)并集patch占用图的面积。由于预划分子组的并集patch占用图的面积(如总面积)可以在一定程度上反映该预划分子组中的点云的占用图的面积,因此,可以通过预划分子组的并集patch占用图的面积(如总面积)来间接表征该预划分子组中的点云的占用图尺寸。
S102:对该多个子组包含的点云进行编码。具体的:
在一些实现方式中,以所划分的子组为单位,分别对该多个子组包含的点云进行打包,以得到待编码点云组中的每个点云的占用图。然后,将各点云的占用图进行填充,以进行视频编码;或者利用点云的占用图指导生成该点云的深度图和该点云的纹理图等。具体过程可参考上文对图2所示的编码器100的工作原理的介绍或参考现有技术,此处不再赘述。
其中,对一个子组中的点云进行打包时所采用的打包算法通常相同。对不同子组中的点云进行打包时所采用的打包算法可以相同,也可以不相同,本申请实施例对此不进行限定。可选的,如果上述预划分子组的特征信息是基于全局匹配打包算法获得的,且一个子组包含多帧点云,则可以基于全局匹配打包算法对该子组中的点云进行打包。
需要说明的是,如果在对待编码点云组进行分组的过程中,已经获得某个或某些子组中的点云的占用图,则执行S102时,可以不再针对这个或这些子组中的点云执行打包步骤。
本申请实施例提供的点云编码方法中,结合预划分子组的特征信息对待编码点云进行分组,该特征信息用于表征预划分子组中的点云的占用图尺寸。由于点云的占用图尺寸决定了该点云的深度图和纹理图的尺寸,且点云的占用图、深度图和纹理图的尺寸是影响点云编码过程中的视频编解码效率的关键因素;因此,结合预划分子组中的点云的占用图尺寸,确定待编码点云组所分成的子组,有助于提高视频编码效率,从而提高点云编解码效率。
可选的,S101可以包括如下步骤S101-1~S101-2:
S101-1:以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组。第j帧点云是该还未分组的点云中的第一帧点云;i≥1,i是整数;j≥1,j是整数;第i个预划分子组包括从第j帧点云开始的一帧或多帧点云。
S101-2:根据第i个预划分子组的特征信息,确定第i个预划分子组为一个子组。
由该可选的方式可知,本申请实施例支持基于待编码点云组中的点云的顺序,在确定待编码点云组包括的一个子组的情况下,再确定下一个子组的技术方案。其中,在确定一个子组的过程中,通常需要执行一次或多次预划分(如一次或多次滑动窗口,或者一次或多次执行二分法),每一次执行预划分可以确定一个预划分子组。
上述S101-1是S101中的“对待编码点云组中的多帧点云进行预划分,以得到预划分子组”的一种具体实现。上述S101-2是S101中的“根据该预划分子组的特征信息,确定该预划分子组为多个子组中的一个子组”的一种具体实现方式。
以下,对采用滑动窗口实现预划分的过程中的一些术语进行简单介绍,以方便读者理解:
一次滑动窗口可以圈定一帧或多帧点云。在本申请实施例中,均是以“在确定一个子组的过程中,当i=1时,第i次滑动窗口所圈定的点云的帧数等于第i次滑动窗口所采用的步长加1;当i≥2时,第i次滑动窗口所圈定的点云的帧数等于第i次滑动窗口所采用的步长”为例进行说明的。本申请实施例不排除“当i≥1时,第i次滑动窗口所圈定的点云的帧数等于第i次滑动窗口所采用的步长”的情况,该情况下,本领域普通技术人员可以基于下文中的术语介绍,在不付出创造性劳动的情况下,合理推断得到可适用于本情况的相应术语。
不同次滑动窗口所采用的步长可以相等,也可以不相等。
第i次滑动窗口,是从待编码点云组的还未分组的点云中的第一帧点云为起点,滑动i个步长的过程,其中,i个步长中的第t个步长是指第t次滑动窗口所采用的步长,1≤t≤i,t是整数。可以理解的是,通常,当i≥2时,第i次滑动窗口,可以认为是:从待编码点云组的已被圈定的最后一帧点云开始,滑动一个步长,该步长是指第i次滑动窗口所采用的步长。
第i个预划分子组,是第1次至第i次滑动窗口所圈定的点云构成的集合。通常,第i个预划分子组中包含的点云的帧数等于第1次至第i次滑动窗口所采用的步长之和加1。
如图6所示,为本申请实施例提供的一种滑动窗口、步长、预划分子组之间的对应关系的示意图。在图6中,待编码点云组包括点云1~32,图6中的一个矩形框表示一帧点云,矩形框中的数字表示点云的编号。每次滑动窗口所采用的步长是3,即滑动一次窗口可以圈定3帧点云;并且,已划分的子组为子组1和子组2,子组1是点云1~4构成的集合,子组2是点云5构成的集合。基于此,在确定子组3的过程中,以点云6为起点执行第1次滑动窗口后所圈定的点云是点云6~9,此时,所获得的第1个预划分子组是点云6~9构成的集合。以点云6为起点执行第2次滑动窗口,是指从第1次滑动窗口所圈定的最后一帧点云(即点云9)开始滑动一个步长,因此,第2次滑动窗口后所圈定的点云是点云10~12,此时,所获得的第2个预划分子组是点云6~12构成的集合。
在确定不同子组的过程中,i的初始值均为1。如果不加说明,本申请实施例中所描述的第i次滑动窗口均是指在确定一个子组的过程中的第i次滑动窗口,同理,第i个预划分子组均是指在确定一个子组的过程中的第i个预划分子组。在此统一说明,下文不再赘述。
以下,通过具体示例说明本申请实施例提供的采用滑动窗口的方法实现预划分时,确定待编码点云组中的一个子组的方法。具体可以参考下述实施例一或实施例二。
实施例一
如图7所示,为本申请实施例提供的一种确定一个子组的方法的流程示意图。图7所示的方法包括如下步骤:
S201:以第j帧点云为起点,第1次滑动窗口,以得到第1个预划分子组。具体的,将第1次滑动窗口所圈定的点云构成的集合作为第1个预划分组。其中,第j帧点云是待编码点云组中还未分组的点云中的第一帧点云。
其中,1≤j≤J,J是待编码点云组中包含的点云的帧数。当图7所示的方法用于确定待编码点云的第1个子组时,j等于1。当图7所示的方法用于确定待编码点云的第2个子组或第2个子组之后的任意一个子组时,j等于第1至第i-1子组所包含的点云的帧数之和加1。
S202:判断第1个预划分子组的特征信息是否满足预设条件。
若否,则执行S203。若是,则执行S204。
S203:将第1个预划分子组中的第一帧点云作为第1子组。
执行S203之后,则结束。
例如,参见图6,根据子组2是由1帧点云构成的集合可知:在确定子组2的过程中,所获得的第1个预划分子组(即由点云5~8构成的集合)不满足预设条件。
S204:第i+1次滑动窗口,以得到第i+1个预划分子组。具体的,将第1至第i+1次滑动窗口所圈定的点云构成的集合作为第i+1个预划分组。
其中,i≥1,i是整数。i的初始值是1。
S205:判断第i+1个预划分子组的特征信息是否满足预设条件。
若是,则执行S206。若否,则执行S207。
S206:将i+2赋值给i+1。执行S206之后,返回执行S204。
S207:确定第i个预划分子组为一个子组。
需要说明的是,本实施例中的S204可以替换为:第i次滑动窗口,以得到第i个预划分子组。i≥2,i是整数。i的初始值是2。该情况下,S205可以替换为:判断第i个预划分子组的特征信息是否满足预设条件;S206可以替换为:将i+1赋值给i;S207可以替换为:确定第i-1个预划分子组为一个子组。
例如,参见图6,在确定子组3的过程中,第j帧点云具体是点云6。如果第2个预划分子组的特征信息满足预设条件,则执行第3次滑动窗口获得第3个预划分子组;如果第3个预划分子组的特征信息不满足预设条件,则将第2个预划分子组(即点云6~12构成的集合)作为子组3。
又如,参见图6,假设每次滑动窗口所采用的步长均是3,那么:根据子组1是由4帧点云构成的集合可知:在确定子组1的过程中,所获得的第1个预划分子组(即由点云1~4构成的集合)满足预设条件,且所获得的第2个预划分子组(即由点云1~7构成的集合)不满足预设条件。
在实施例一中,不同次滑动窗口所采用的步长可以相等,也可以不相等。
可选的,第i1次滑动窗口所采用的步长大于或等于第i2次滑动窗口所采用的步长,1≤i1<i2≤i,i1和i2均是整数。也就是说,本申请实施例支持在确定一个子组的过程中,在后执行滑动窗口所采用的步长大于或等于在前执行滑动窗口所采用的步长的技术方案。具体的:
在一些实现方式中,每次滑动窗口所采用的步长相等,也就是说,以固定步长滑动窗口。可选的,固定步长可以是1,这样基于点云为粒度对待编码点云组进行分组,有助于使分组结果更精准。可选的,该固定步长也可以是大于1的值。由于一个待编码点云组如GOF中连续的多帧点云的特征相似度较高,因此,步长较大时,可以减少分组过程中的计算复杂度。
在另一些实现方式中,至少两次滑动窗口所采用的步长不相等,且在后执行滑动窗口所采用的步长大于或等于在前执行滑动窗口所采用的步长。也就是说,以不固定步长滑动窗口。这样,通过选择合适的步长,有助于平衡分组过程中的计算复杂度和分组结果的精准度,从而有助于提高分组的整体性能,进而有助于提高编码性能。可选的,根据公式N[i+1]=N[i]*c,获得第i+1次滑动窗口所采用的步长N[i+1];其中,N[i]是第i次滑动窗口所采用的步长,c是基于第i个预划分子组中大尺寸点云的帧数所确定的。也就是说,相邻两次滑动窗口的过程中,采用在前执行滑动窗口所采用的步长确定在后执行滑动窗口所采用的步长。进一步可选的,c=(a-b)/a;a是第一预设数量,b是第i个预划分子组中大尺寸点云的帧数。当然本申请实施例不限于此。
可以理解的是,具体实现时,不同次滑动窗口所采用的步长是否是固定步长,以及如果不是固定步长时确定步长的方法等均可以是预定义的。
多次执行上述S201~S207,可以得到待编码点云组所分成的多个子组。S201~S207可以认为是通用的确定待编码点云中的一个子组的方法。实际实现时可能存在如下特殊情况:
情况一:根据S201~S207中的描述可知,当第i个预划分子组的特征信息满足条件时,需要执行第i+1次滑动窗口。然而,此时可能存在待编码点云组中没有剩余的未被圈定的点云的情况,即第i个预划分子组包含的最后一帧点云是待编码点云组中的最后一帧点云。该情况下,可以确定第i个预划分子组为待编码点云的最后一个子组。
例如,参见图8A,假设待编码点云组包括点云1~32,且已划分的子组是子组1~6,那么,在确定子组7的过程中,如果第3个预划分子组的特征信息满足预设条件,则按照上述S201~207中的描述,需要获得第4个预划分子组。此时,由于待编码点云组没有剩余的未被圈定的点云,因此,可以将第3个预划分子组(即点云23~32构成的集合)作为子组7。
情况二:在执行第i+1次滑动窗口的过程中,可能存在第i+1次滑动窗口所采用的步长大于待编码点云组的还未被圈定的点云的帧数,该情况下,可以将第i个预划分子组中包含的点云的帧数与待编码点云组的还未被圈定的点云作为第i+1个预划分子组。
例如,参见图8B,假设待编码点云组包括点云1~32,且已划分的子组是子组1~6,那么,在确定子组7的过程中,如果第3个预划分子组的特征信息满足预设条件,则按照上述S201~207中的描述,需要获得第4个预划分子组。此时,由于第4次滑动窗口所采用的步长(即3)大于待编码点云组没有剩余的未被圈定的点云(即点云31~32)的帧数(即2),因此,可以将点云21~33作为第4个预划分子组。
实施例二
实施例二与实施例一的区别在于,当i≥2时,如果第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件,那么,以更小的步长,重新获得第i+1个预划分组。本实施例应用于获得第i+1个预划分子组时所采用的步长大于1的场景中。本实施例提供的方法的流程图可以如图9所示。具体的,可以将实施例一中的S207替换为如下步骤S207A~S207C。
S207A:采用第二步长重新获得第i+1个预划分子组,第二步长小于第一步长,第一步长是获得第i+1个预划分子组时所采用的步长。
其中,重新获得第i+1个预划分子组的过程,可以理解为:返回(或回退)到第i个预划分子组的最后一帧点云,并以该最后一帧为起点,滑动第二步长的过程。
S207B:如果采用第二步长重新获得的第i+1个预划分子组的特征信息不满足预设条件,则采用第三步长重新获得第i+1个预划分子组,第三步长小于第二步长。也就是说,每次重新获得的第i个预划分子组的步长均小于上一次重新获得的第i个预划分子组的步长。以此类推,当重新获得第i+1个预划分子组的次数达到预设次数或者最新一次重新获得的第i+1个预划分子组的步长小于或等于预设步长(如1等)时,如果最新一次重新获得的第i+1个预划分子组的特征信息不满足预设条件,则确定第i个预划分子组为一个子组。
例如,参见图10,假设在确定子组3的过程中,第1个预划分子组(即由点云9~15构成的集合)的特征信息满足预设条件,且第2个预划分子组(即由点云9~21构成的集合)的特征信息不满足预设条件,第一步长是6,则可能存在点云9~p构成的预划分子组的特征信息满足条件,其中,15<p<21,p是整数,因此,采用第二步长(如3)重新获得第2个预划分子组(即由点云9~18构成的集合)。如果重新获得的第2个预划分子组的特征信息不满足预设条件,则可能存在点云9~q构成的子组的特征信息满足预设条件,其中,15<q<18,q是整数,因此,采用第三步长(如1)再次重新获得第2个预划分子组(即由点云9~16构成的集合)。假设该再次获得第2个预划分子组的特征信息不满足预设条件,且重新获得第2个预划分子组的次数达到预设次数或者最新一次重新获得的第2个预划分子组的步长小于或等于预设步长,则将第1个预划分子组(即由点云9~15构成的集合)作为子组3。
可以理解的是,如果在某一次重新获得的第i+1个预划分子组的特征信息满足预设条件,则可以执行以下步骤S207C。
S207C:如果重新获得的第i+1个预划分子组的特征信息满足预设条件,则:
当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,将重新获得的第i+1个预划分子组确定为一个子组。
例如,参见图11A,假设在确定子组3的过程中,如果重新获得的第2个预划分子组(即由点云9~18构成的集合)的特征信息满足预设条件,则可能存在点云9~d构成的子组的特征信息满足预设条件,其中,18<d<21,d是整数。该情况下,假设第二预设数量是3,那么,由于重新获得的第2个预划分子组与首次获得的第2个预划分子组包含的点云的帧数之差(即3)等于第二预设数量,因此,将重新获得的第2个预划分子组(即由点云9~18构成的集合)作为一个子组。
当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差大于第二预设数量时,采用第四步长获得第i+2个预划分子组,第二步长与第四步长之和小于第一步长;如果第i+2个预划分子组的特征信息满足预设条件,则采用第五步长获得第i+3个预划分子组,第二步长、第四步长与第五步长之和小于第一步长。也就是说,获得第i+k个预划分子组所采用的步长、获得第i+k-1个预划分子组所采用的步长、获得第i+k-2个预划分子组所采用的步长、……、获得第i+2个预划分子组所采用的步长、重新获得第i+1个预划分子组所采用的步长之和,小于首次获得第i+1个预划分子组所采用的步长。以此类推,当所获得的第i+k个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,如果i+k个预划分子组的特征信息满足预设条件,则确定第i+k个预划分子组为一个子组,k≥2,k是整数。
例如,参见图11B,假设在确定子组3的过程中,如果重新获得的第2个预划分子组(即由点云9~18构成的集合)的特征信息满足预设条件,则可能存在点云9~d构成的子组的特征信息满足预设条件,其中,18<d<21的一个整数。该情况下,假设第二预设数量=1,那么,由于第3个预划分子组与首次获得的第2个预划分子组包含的点云的帧数之差(即1)等于第二预设数量,因此,将第3个预划分子组(即点云9~21构成的集合)作为一个子组。
可以理解的是,如果第i+k个预划分子组的特征信息不满足预设条件,则重新获得第i+k个预划分子组,后续所执行的步骤可以参考上述S207B和/或S207C。
可以理解的是,在不冲突的情况下,上述实施例一中相关内容的解释也可以应用于实施例二。例如,实施例一中的情况一和情况二的处理方式可以应用于实施例二。又如,实施例一中的确定步长的方法可以应用于实施例二。
本实施例提供的确定子组的方法,有助于在滑动窗口的步长大于1的情况下,使得待编码点云组中尽可能多的点云构成一个满足预设条件的子组。由于当一个子组中包含至少两帧点云时,使用全局匹配打包算法得到的各点云中具有匹配关系的patch的占用图在其所在点云占用图中的位置相对应,这可以提高编码性能。因此,采用本实施例提供的方案,使尽可能多的点云构成一个满足预设条件的子组,当采用全局匹配打包算法对该子组中的点云进行打包时,有助于提高编码效率。
以下,对采用二分法实现预划分的过程中的一些术语进行简单介绍,以方便读者理解:
子组分割点,是指相邻两个子组的分割点。可以理解的是,对待编码点云组进行分组的本质为寻找待编码点云组中的子组分割点。
二分法的中间点,是二分法所针对的一个序列中的多个对象中的中间对象。例如,假设一个序列包括的对象的编号分别是x~y,1≤x<y,x和y均是整数,则二分法的中间点是编号为
Figure BDA0001904934190000161
的对象,或者是是编号为
Figure BDA0001904934190000162
的对象。其中,
Figure BDA0001904934190000163
表示向下取整,
Figure BDA0001904934190000164
表示向上取整。本次二分法所针对的对象中在中间点之前的对象称为本次二分法得到的前半部分对象,在中间点之后的对象称为本次二分法得到的后半部分对象。
第i个预划分子组,以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行二分法,以得到第i个预划分子组。例如,可以将二分法得到的前半部分点云作为第i预划分子组,本申请实施例中均以此为例进行说明。当然本申请实施例不限于此。其中,第j帧点云是待编码点云组中还未分组的点云中的第一帧点云。
如果第i个预划分子组的特征信息满足预设条件,则第i+1个预划分子组是从第i个预划分子组与第i+1次执行二分法得到的前半部分点云构成的集合。
如果第i个预划分子组的特征信息不满足预设条件,则第i+1个预划分子组是从第i个预划分子组中的前半部分点云构成的集合。
如图12所示,为本申请实施例提供的一种二分法和预划分子组之间的关系的示意图。图12中是以待编码点云组包括点云1~32为例进行说明的。具体的:对点云1~32执行二分法,得到第1个预划分子组(即点云1~16构成的集合)。如果第1个预划分子组的特征信息满足预设条件,则对点云16~32执行二分法,得到第2个预划分子组(即点云1~24构成的集合),如图12中的(a)所示。如果第1个预划分子组的特征信息不满足预设条件,则对点云1~16执行二分法,得到第2个预划分子组(即点云1~7构成的集合),如图12中的(b)。
以下,通过具体示例说明本申请实施例提供的采用二分法实现预划分时,确定待编码点云组中的一个子组的方法。具体可以参考下述实施例三或实施例四。
实施例三
如图13所示,为本申请实施例提供的一种确定一个子组的方法的流程示意图。图13所示的方法包括如下步骤:
S301:以第j帧为起点,第1次执行二分法,以得到第1个预划分子组。其中,1≤j≤J,J是待编码点云组中包含的点云的帧数。
S302:判断第1个预划分子组的特征信息是否满足预设条件。
若是,说明待确定分割点在本次二分法得到的后半部分点云中,则执行S303。
若否,说明待确定分割点在本次二分法得到的前半部分点云中,则执行S304。
S303:第2次执行二分法,以得到第2个预划分子组。如果第2个预划分子组满足预设条件,则第3次执行二分法。也就是说,在本次二分法获得的预划分子组满足预设条件时,执行下一次二分法。以此类推,执行二分法,后续可以有如下实现方式:
实现方式一,如果一直到不能继续执行二分法时,最近一次执行二分法获得的预划分子组仍然满足预设条件,则将待编码点云中还未分组的所有点云作为一个子组。
实现方式二,如果第i+1次执行二分法获得的第i+1个预划分子组的特征信息不满足预设条件,则将第i次执行二分法获得的第i个预划分子组作为一个子组。i≥1,i是整数。
S304:第2次执行二分法,以得到第2个预划分子组。如果第2个预划分子组不满足预设条件,则第3次执行二分法。也就是说,在本次二分法获得的预划分子组不满足预设条件时,执行下一次二分法。以此类推,执行二分法。后续,可能有如下实现方式:
实现方式一:如果一直到不能继续执行二分法时,最近一次执行二分法获得的预划分子组仍然不满足预设条件,则将待编码点云中还未分组的第一帧点云作为一个子组。
实现方式二:如果一直到不能继续执行二分法时,最近一次执行二分法获得的预划分子组满足预设条件,则将最近一次获得的预划分子组作为一个子组。
实现方式三:如果第i+1次执行二分法获得的第i+1个预划分子组的特征信息满足预设条件,则第i+2次执行二分法,如果第i+2次执行二分法获得的第i+1个预划分子组的特征信息满足预设条件,则执行第i+3次二分法。也就是说,在本次满足预设条件时,执行下一次二分法,以此类推,执行二分法。如果一直到不能继续执行二分法时,最近一次执行二分法获得的预划分子组仍然满足预设条件,则将最近一次获得的预划分子组作为一个子组。如果某一次执行二分法获得的预划分子组不满足预设条件,则将本次的上一次执行二分法获得的预划分子组作为一个子组。
本实施例提供的确定子组的方法,有助于使得待编码点云组中尽可能多的点云构成一个满足预设条件的子组,这样,当采用全局匹配打包算法对该子组中的点云进行打包时,有助于提高编码效率。
实施例四
如图14所示,为本申请实施例提供的一种确定一个子组的方法的流程示意图。图14所示的方法包括如下步骤:
S401:以第j帧为起点,第1次执行二分法,以得到第1个预划分子组。其中,1≤j≤J,J是待编码点云组中包含的点云的帧数。
S402:判断第1个预划分子组的特征信息是否满足预设条件。
若是,则执行S403。若否,则执行S404。
S403:将第1个预划分子组作为一个子组。
S404:第2次执行二分法,以得到第2个预划分子组。如果第2个预划分子组的特征信息不满足预设条件,则第3次执行二分法,以得到第3个预划分子组。也就是说,在本次二分法获得的预划分子组不满足预设条件时,执行下一次二分法。以此类推,执行二分法。后续,可能有如下实现方式:
实现方式一:如果一直到不能继续执行二分法时,最近一次执行二分法获得的预划分子组仍然不满足预设条件,则将待编码点云中还未分组的第一帧点云作为一个子组。
实现方式二:如果第i+1次执行二分法获得的第i+1个预划分子组满足预设条件,则将第i+1个预划分子组作为一个子组。i≥1,i是整数。
本实施例提供的确定子组的方法,多次执行二分法得到的多个预划分子组中第一个满足预设条件的预划分子组作为一个子组。与采用滑动窗口的方法进行预划分的方法不同,采用二分法进行预划分得到的预划分子组如果满足预设条件,则可以认为本次预划分子组已经包括了较多的点云,因此,当采用全局匹配打包算法对该子组中的点云进行打包时,有助于提高编码效率。
需要说明的是,上述实施例三和实施例四中描述的任一种“不能继续执行二分法”可以包括:二分法所针对的对象(具体是点云)的个数1时,不能执行二分法;或者是执行二分法的次数达到预设阈值时,不能继续执行二分法。其中,二分法所针对的对象的个数1时,不能执行二分法,可以扩展为:二分法所针对的对象(具体是点云)的数量小于或等于预设阈值时,不能继续执行二分法。
上述实施例一至实施例四中描述的任一个预划分子组是否满足预设条件,均可以参考下文中的描述。其中,下文中是以当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组为例进行说明的。另外,可以理解的是,以下对一个预划分子组是否满足预设条件的描述中所涉及到的“预划分子组”可以例如但不限于是通过滑动窗口的方法或二分法得到的。
可选的,当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组,可以通过以下至少一种方式实现:
方式1、如果第i个预划分子组的特征信息包括第i个预划分子组的全局占用图的尺寸,那么,当第i个预划分子组的全局占用图的尺寸小于或等于第一阈值,且第i+1个预划分子组的全局占用图的尺寸大于第一阈值时,确定第i个预划分子组为一个子组。
考虑到:全局占用图是一个或多个并集patch占用图打包得到的,而并集patch占用图是一个预划分子组中的一组全局匹配patch的并集,因此,随着预划分子组中的点云帧数的增加,会导致一组全局匹配patch中patch的数目增加,从而导致该组全局匹配patch对应的并集patch占用图的面积增大,进而导致全局占用图的尺寸增大;因此提出了该方式。基于该方式,将一个子组的全局占用图限定在第一阈值之内,可以间接反映该子组中点云的占用图的尺寸,从而有助于提高编码效率。
可以理解的是,当使用不同参数表征全局占用图的尺寸时,第一阈值的含义不同。例如,当使用全局占用图的高度和宽度的乘积来表征全局占用图的尺寸时,第一阈值表示允许一个子组的全局占用图的面积的最大值。又如,当使用全局占用图的高度来表征全局占用图的尺寸时,第一阈值表示允许一个子组的全局占用图的高度的最大值。
在一种实现方式中,第一阈值是预定义的值,如预定义的经验值。示例的,当第一阈值表示允许一个子组的全局占用图的高度的最大值时,第一阈值可以是1280个像素。
在另一种实现方式中,第一阈值是基于候选打包算法获得的待编码点云组中的点云(如各点云)的占用图的最大尺寸所确定的。其中,候选打包算法可以是除全局匹配打包算法之外的其他打包算法如anchor打包算法等。示例的,第一阈值为H*w1。H是基于候选算法如anchor打包算法获得的待编码点云组中的点云的占用图的高度的最大值,w1是常数。w1可以是基于全局匹配打包算法和候选打包算法对视频编解码的效率的影响所确定的。可选的,w1∈(0.5,1.5),当然不限于此。
方式2:如果第i个预划分子组的特征信息包括第i个预划分子组中的点云的占用图尺寸,那么,执行以下方式2-1和/或方式2-2:
方式2-1:当第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,且第i+1个预划分子组中的大尺寸点云的帧数大于第一预设数量时,确定第i个预划分子组为一个子组。大尺寸点云是占用图尺寸大于或等于第二阈值的点云。这里的占用图可以是基于任一种打包算法对一帧点云进行打包或获得的该点云的占用图。
第一预设数量可以是预定义的值,如预定义的经验值,如4等。可以理解的,如果第一预设数量是1,则方式2-1可以替换为:当第i个预划分子组不包含大尺寸点云,且第i+1个预划分子组包含大尺寸点云时,确定第i个预划分子组为一个子组。
可以理解的,当使用不同参数表征点云的占用图尺寸时,第二阈值的含义不同。例如,当使用点云占用图的高度和宽度的乘积来表征点云占用图尺寸时,第二阈值表示允许一个子组中的点云的占用图的面积的最大值。又如,当使用点云的占用图的高度表征点云的占用图尺寸时,第二阈值表示允许一个子组中的点云的占用图高度的最大值。
在一种实现方式中,第二阈值是预定义的值,如预定义的经验值。示例的,当使用点云占用图的高度和宽度的乘积来表征点云占用图尺寸时,第二阈值可以是1280个像素。
在另一种实现方式中,大尺寸点云具体是指基于全局匹配打包算法获得的占用图尺寸大于或等于第二阈值的点云,那么:
可选的,第二阈值可以是基于候选打包算法获得的待编码点云组中的点云占用图的最大尺寸所确定的。候选打包算法是除全局匹配打包算法之外的其他打包算法如anchor打包算法等。示例的,当NHi,u≥Hmax*w2时,认为第i个预划分子组中的第u帧点云是大尺寸点云,u≥1,u是整数。其中,NHi,u是基于全局匹配打包算法获得的第i个预划分子组中的第u帧点云的占用图的高度,Hmax是基于候选打包算法如anchor打包算法获得的待编码点云组中的点云的占用图的高度的最大值,w2是常数。可选的,w2∈(0.5,1.5),当然不限于此。由于一帧点云的占用图尺寸大于或等于该帧点云所在的子组的全局占用图,因此,进一步可选的,w1<w2,如w1略小于w2。
可选的,第二阈值可以是基于候选打包算法获得的本点云占用图尺寸所确定的。候选打包算法是除全局匹配打包算法之外的其他打包算法如anchor算法等。示例的,当NHi,u≥Hi,u*w3。其中,NHi,u是基于全局匹配打包算法获得的第i个预划分子组中的第u帧点云的占用图的高度,Hi,u是基于候选打包算法如anchor打包算法获得的第i个预划分子组中的第u帧点云的占用图的高度,w3是常数。可选的,w3∈(0.5,3.0)。进一步可选的,w3大于w2。
方式2-2:当第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值,且第i+1个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值大于第三阈值时,确定第i个预划分子组为一个子组。
候选打包算法可以是除全局匹配打包算法之外的其他打包算法如anchor打包算法等。示例的,当sum(NHi,u/Hi,u)/frameCnti≤第三阈值,且sum(NHi+1,v/Hi+1,v)/frameCnti+1>第三阈值。其中,sun()表示求和运算。NHi,u是基于全局匹配打包算法获得的第i个预划分子组中的第u帧点云占用图的高度,Hi,u是基于全局匹配打包算法获得的第i个预划分子组中的第u帧点云占用图的高度,frameCnti是第i个预划分子组包含的点云的帧数。u≥1,u是整数。NHi+1,v是基于全局匹配打包算法获得的第i+1个预划分子组中的第v帧点云占用图的高度,Hi+1,v是基于全局匹配打包算法获得的第i+1个预划分子组中的第v帧点云占用图的高度,frameCnti+1是第i+1个预划分子组包含的点云的帧数。v≥1,v是整数。
可选的,第三阈值是预定义的值。可选的,第三阈值是大于1的值,如1.2等。
另外可选的,根据第i个预划分子组的特征信息,确定第i个预划分子组为一个子组,可以包括如下方式A或方式B:
方式A:当第i+1个预划分子组的全局占用图的尺寸,相比第i个预划分子组的全局占用图的尺寸的下降幅度大于或等于第五阈值时,说明相比将第i个预划分子组作为一个子组来说,将第i+1个预划分子组作为一个子组时,采用全局匹配打包算法进行打包时点云编码效率在下降且下降幅度较大,因此,确定第i个预划分子组为多个子组中的一个子组。
可以理解的是,假设第i个预划分子组中的全局匹配patch在第i+1个子组中依然是全局匹配patch,则第i+1个预划分子组的全局占用图的尺寸大于或等于第i个预划分子组的全局占用图的尺寸。但是,可能存在第i个预划分子组的一组全局匹配patch,在第i+1个预划分子组中不是全局匹配patch的情况,此时,可能导致第i+1个预划分子组的全局占用图的尺寸小于第i个预划分子组的全局占用图的尺寸,考虑到该原因,提出了该方式。
方式B:第i个预划分子组的特征信息包括第i个预划分子组的并集patch占用图的面积;相应的,当第i+1个预划分子组的并集patch占用图的总面积,相比第i个预划分子组的并集patch占用图的总面积的下降幅度大于或等于第四阈值时,说明相比将第i个预划分子组作为一个子组来说,将第i+1个预划分子组作为一个子组时,采用全局匹配打包算法进行打包时点云编码效率在下降且下降幅度较大,因此,确定第i个预划分子组为一个子组。该方式的相关说明可以参考上述对方式A的相关说明,此处不再赘述。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对编码器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图15为本申请实施例提供的一种编码器150的示意性框图。编码器150包括分组模块1501和编码模块1502。
在一个示例中,分组模块1501可以对应图2中的打包模块102,例如,打包过程可以包括对待编码点云组进行分组的过程,例如,在执行对待编码点云组进行分组的过程中,生成所述多个子组中包含的点云的占用图。相应地,编码模块1502可以对应于图2中的一个或多个模块的组合,例如,编码模块1502可以对应于图2中的接收该点云的占用图的模块(例如深度图生成模块103、纹理图生成模块104、第二填充模块111)以及与其相连接或相通信的模块。
在另一个示例中,分组模块1501可以对应图2中的打包模块102中的分组子模块,例如分组和打包的过程是相互较为独立的,相应地,编码模块1502可以对应于图2中的一个或多个模块的组合,例如,编码模块1502可以对应于图2中的打包模块102中的打包子模块,以及接收子组包含的点云的占用图的模块(例如深度图生成模块103、纹理图生成模块104、第二填充模块111)以及与其相连接或相通信的模块。
其中,具体的编码功能可以参考现有技术或上文中对图2所示的编码器的原理的解释,此处不再赘述。
在一种可行的实施方式中,分组模块1501用于将待编码点云组划分成多个子组,其中,将待编码点云组划分成多个子组包括:对待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据该预划分子组的特征信息,确定该预划分子组为多个子组中的一个子组;该特征信息用于表征该预划分子组中的点云的占用图尺寸。编码模块1502用于对该多个子组包含的点云进行编码。例如,结合图5,分组模块1501可以用于执行S101,编码模块1502可以用于执行S102。
在一种可行的实施方式中,分组模块1501在对待编码点云组中的多帧点云进行预划分,以得到预划分子组的方面,具体用于:以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组;第j帧点云是还未分组的点云中的第一帧点云;i≥1,i是整数;j≥1,j是整数;第i个预划分子组包括从第j帧点云开始的一帧或多帧点云。相应的,分组模块1501在根据预划分子组的特征信息,确定预划分子组为多个子组中的一个子组的方面,具体用于:根据第i个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组。
在一种可行的实施方式中,分组模块1501在根据第i个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组的方面,具体用于:根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组。
在一种可行的实施方式中,分组模块1501在根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组的方面,具体用于:当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组。例如,结合图7,分组模块1501可以用于执行S207。又如,结合图13,分组模块1501可以用于执行S303和S304中的部分步骤。
在一种可行的实施方式中,第一阈值是预定义的值;或者,第一阈值是基于候选打包算法获得的待编码点云组中的点云的占用图的最大尺寸所确定的。
在一种可行的实施方式中,第i个预划分子组的特征信息包括第i个预划分子组中的点云的占用图尺寸;相应的,分组模块1501在当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,确定第i个预划分子组为多个子组中的一个子组的方面,具体用于:当第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,且第i+1个预划分子组中的大尺寸点云的帧数大于第一预设数量时,确定第i个预划分子组为多个子组中的一个子组;大尺寸点云是占用图尺寸大于或等于第二阈值的点云;或者,当第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值,且第i+1个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值大于第三阈值时,确定第i个预划分子组为多个子组中的一个子组。
在一种可行的实施方式中,第二阈值是预定义的值;或者,大尺寸点云是基于全局匹配打包算法获得的占用图尺寸大于或等于第二阈值的点云,第二阈值是基于候选打包算法获得的待编码点云组中的点云占用图的最大尺寸所确定的,或者是基于候选打包算法获得的本点云的占用图尺寸所确定的。
在一种可行的实施方式中,第i个预划分子组的特征信息包括第i个预划分子组的全局占用图的尺寸;相应的,分组模块1501在根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组的方面,具体用于:当第i个预划分子组的全局占用图的尺寸小于或等于第一阈值,且第i+1个预划分子组的全局占用图的尺寸大于第一阈值时,确定第i个预划分子组为多个子组中的一个子组;或者,当第i+1个预划分子组的全局占用图的尺寸,相比第i个预划分子组的全局占用图的尺寸的下降幅度大于或等于第五阈值时,确定第i个预划分子组为多个子组中的一个子组。
在一种可行的实施方式中,第i个预划分子组的特征信息包括第i个预划分子组中的并集点云块patch占用图的面积;分组模块1501在根据第i个预划分子组的特征信息和第i+1个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组的方面,具体用于:当第i+1个预划分子组的并集patch占用图的总面积,相比第i个预划分子组的并集patch占用图的总面积的下降幅度大于或等于第四阈值时,确定第i个预划分子组为多个子组中的一个子组。
在一种可行的实施方式中,分组模块1501在以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组的方面,具体用于:以第j帧点云为起点,对待编码点云组中还未分组的点云执行第i次滑动窗口,以得到第i个预划分子组;或者,以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行二分法,以得到第i个预划分子组。
在一种可行的实施方式中,第i1次滑动窗口所采用的步长大于或等于第i2次滑动窗口时采用的步长,1≤i1<i2≤i,i1和i2均是整数。
在一种可行的实施方式中,分组模块1501还用于:根据公式N[i+1]=N[i]*c,获得第i+1次滑动窗口所采用的步长N[i+1];其中,N[i]是第i次滑动窗口所采用的步长,c是基于第i个预划分子组中大尺寸点云的帧数所确定的,大尺寸点云是指占用图尺寸大于或等于第二阈值的点云。
在一种可行的实施方式中,c满足如下公式:c=(a-b)/a;其中,a是第一预设数量,b是第i个预划分子组中大尺寸点云的帧数。
在一种可行的实施方式中,分组模块1501在以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组的方面,具体用于:以第j帧点云为起点,对待编码点云组中还未分组的点云执行第i次滑动窗口,以得到第i个预划分子组。相应的,分组模块1501在根据第i个预划分子组的特征信息,确定第i个预划分子组为多个子组中的一个子组的方面,具体用于:当第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足预设条件时,采用第二步长重新获得第i+1个预划分子组,第二步长小于第一步长,第一步长是首次获得第i+1个预划分子组时所采用的步长;如果重新获得的第i+1个预划分子组的特征信息不满足预设条件,则采用第三步长重新获得第i+1个预划分子组,第三步长小于第二步长;以此类推,当重新获得第i+1个预划分子组的次数达到预设次数或者最新一次重新获得的第i+1个预划分子组的步长小于或等于预设步长时,如果最新一次重新获得的第i+1个预划分子组的特征信息不满足预设条件,则确定第i个预划分子组为多个子组中的一个子组。例如,结合图9,分组模块1501可以用于执行S207A和S207B。
在一种可行的实施方式中,分组模块1501在将待编码点云组划分成多个子组的方面,具体用于:当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,确定本次重新获得的第i+1个预划分子组为一个子组;当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差大于第二预设数量时,采用第四步长获得第i+2个预划分子组,第二步长与第四步长之和小于第一步长;如果第i+2个预划分子组的特征信息满足预设条件,则采用第五步长获得第i+3个预划分子组,第二步长、第四步长与第五步长之和小于第一步长;以此类推,当所获得的第i+k个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,如果i+k个预划分子组的特征信息满足预设条件,则确定第i+k个预划分子组为多个子组中的一个子组,k≥2,k是整数。例如,结合图9,分组模块1501可以用于执行S207C。
在一种可行的实施方式中,分组模块1501在以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组的方面,具体用于:以第j帧点云为起点,第i次对待编码点云组中还未分组的点云执行二分法,以得到第i个预划分子组。相应的,分组模块1501在根据第i个预划分子组的特征信息,确定预划分子组为多个子组中的一个子组的方面,具体用于:如果第i个预划分子组的特征信息满足预设条件,则确定第i个预划分子组为多个子组中的一个子组。例如,结合图14,分组模块1501可以用于执行S403和S404中的部分步骤。
在一种可行的实施方式中,第i个预划分子组的特征信息包括第i个预划分子组的全局占用图的尺寸;相应的,第i个预划分子组的特征信息满足预设条件包括:第i个预划分子组的全局占用图的尺寸小于或等于第一阈值;和/或,第i+1个预划分子组的全局占用图的尺寸,相比第i个预划分子组的全局占用图的尺寸的下降幅度大于或等于第五阈值。
在一种可行的实施方式中,第i个预划分子组的特征信息包括第i个预划分子组中的点云的占用图尺寸;相应的,第i个预划分子组的特征信息满足预设条件包括:第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,大尺寸点云是占用图尺寸大于或等于第二阈值的点云;或者,第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值。第二阈值的实现方式可以参考上文。
在一种可行的实施方式中,第i个预划分子组的特征信息包括第i个预划分子组中的并集patch占用图的面积;相应的,第i个预划分子组的特征信息满足预设条件包括:第i+1个预划分子组的并集patch占用图的总面积,相比第i个预划分子组的并集patch占用图的总面积的下降幅度大于或等于第四阈值。
可以理解的是,在不冲突的情况下,上述任意多个可行的实施方式中的部分或全部特征信息可以结合使用,从而构成新的技术方案。例如,确定第i个预划分子组是否满足预设条件的方法可以参考上文中相应的可行的实施方式中。
可以理解的,本申请实施例的编码器中的各个模块为实现本申请对应的点云编码方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请对应的点云编码方法中的各个步骤以及这些步骤的扩展及变形的功能主体,为简洁起见,本文将不再赘述。
图16为用于本申请实施例的编码设备160的一种实现方式的示意性框图。其中,编码设备160可以包括处理器1610、存储器1630和总线系统1650。处理器1610和存储器1630通过总线系统1650相连,该存储器1630用于存储指令,该处理器1610用于执行该存储器1630存储的指令,以执行本申请描述的各种点云编码。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1610可以是中央处理单元(central processingunit,CPU),该处理器1610还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1630可以包括ROM设备或者RAM设备。任何其他适宜类型的存储设备也可以用作存储器1630。存储器1630可以包括由处理器1610使用总线1650访问的代码和数据1631。存储器1630可以进一步包括操作系统1633和应用程序1635,该应用程序1635包括允许处理器1610执行本申请描述的点云编码的至少一个程序。例如,应用程序1635可以包括应用1至N,其进一步包括执行在本申请描述的点云编码方法的点云编码应用。
该总线系统1650除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1650。
可选的,编码设备160还可以包括一个或多个输出设备,诸如显示器1670。在一个示例中,显示器1670可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1670可以经由总线1650连接到处理器1610。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、DVD和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,编码器100及解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (30)

1.一种点云编码方法,其特征在于,包括:
将待编码点云组划分成多个子组,其中,所述将所述待编码点云组划分成多个子组包括:对所述待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据所述预划分子组的特征信息,确定所述预划分子组为所述多个子组中的一个子组;所述特征信息用于表征所述预划分子组中的点云的占用图尺寸;
对所述多个子组包含的点云进行编码。
2.根据权利要求1所述的方法,其特征在于,所述对所述待编码点云组中的多帧点云进行预划分,以得到预划分子组,包括:
以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组;所述第j帧点云是所述还未分组的点云中的第一帧点云;i≥1,i是整数;j≥1,j是整数;所述第i个预划分子组包括从所述第j帧点云开始的一帧或多帧点云;
相应的,所述根据预划分子组的特征信息,确定所述预划分子组为所述多个子组中的一个子组,包括:根据所述第i个预划分子组的特征信息,确定所述第i个预划分子组为所述多个子组中的一个子组。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第i个预划分子组的特征信息,确定所述第i个预划分子组为所述多个子组中的一个子组,包括:
当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,确定所述第i个预划分子组为所述多个子组中的一个子组。
4.根据权利要求3所述的方法,其特征在于,所述第i个预划分子组的特征信息包括所述第i个预划分子组的全局占用图的尺寸;
相应的,所述当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,确定所述第i个预划分子组为所述多个子组中的一个子组,包括:
当所述第i个预划分子组的全局占用图的尺寸小于或等于第一阈值,且所述第i+1个预划分子组的全局占用图的尺寸大于所述第一阈值时,确定所述第i个预划分子组为所述多个子组中的一个子组。
5.根据权利要求4所述的方法,其特征在于,
所述第一阈值是预定义的值;
或者,所述第一阈值是基于候选打包算法获得的所述待编码点云组中的点云的占用图的最大尺寸所确定的。
6.根据权利要求3所述的方法,其特征在于,所述第i个预划分子组的特征信息包括所述第i个预划分子组中的点云的占用图尺寸;
相应的,所述当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,确定所述第i个预划分子组为所述多个子组中的一个子组,包括:
当所述第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,且所述第i+1个预划分子组中的大尺寸点云的帧数大于所述第一预设数量时,确定所述第i个预划分子组为所述多个子组中的一个子组;所述大尺寸点云是占用图尺寸大于或等于第二阈值的点云;
或者,当所述第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值,且所述第i+1个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值大于所述第三阈值时,确定所述第i个预划分子组为所述多个子组中的一个子组。
7.根据权利要求6所述的方法,其特征在于,
所述第二阈值是预定义的值;
或者,所述大尺寸点云是基于全局匹配打包算法获得的占用图尺寸大于或等于所述第二阈值的点云,所述第二阈值是基于候选打包算法获得的所述待编码点云组中的点云占用图的最大尺寸所确定的,或者是基于候选打包算法获得的本点云的占用图尺寸所确定的。
8.根据权利要求2至7任一项所述的方法,其特征在于,所述以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组,包括:
以第j帧点云为起点,对所述待编码点云组中还未分组的点云执行第i次滑动窗口,以得到所述第i个预划分子组;
或者,以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行二分法,以得到所述第i个预划分子组。
9.根据权利要求8所述的方法,其特征在于,第i1次滑动窗口所采用的步长大于或等于第i2次滑动窗口时采用的步长,1≤i1<i2≤i,i1和i2均是整数。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
根据公式N[i+1]=N[i]*c,获得第i+1次滑动窗口所采用的步长N[i+1];其中,所述N[i]是第i次滑动窗口所采用的步长,所述c是基于所述第i个预划分子组中大尺寸点云的帧数所确定的,所述大尺寸点云是指占用图尺寸大于或等于第二阈值的点云。
11.根据权利要求10所述的方法,其特征在于,所述c满足如下公式:c=(a-b)/a;其中,所述a是第一预设数量,所述b是所述第i个预划分子组中所述大尺寸点云的帧数。
12.根据权利要求2所述的方法,其特征在于,所述以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组,包括:
以第j帧点云为起点,对所述待编码点云组中还未分组的点云执行第i次滑动窗口,以得到所述第i个预划分子组;
相应的,所述根据所述第i个预划分子组的特征信息,确定所述第i个预划分子组为所述多个子组中的一个子组,包括:
当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,采用第二步长重新获得第i+1个预划分子组,所述第二步长小于第一步长,第一步长是首次获得第i+1个预划分子组时所采用的步长;
如果重新获得的第i+1个预划分子组的特征信息不满足所述预设条件,则采用第三步长重新获得第i+1个预划分子组,所述第三步长小于所述第二步长;以此类推,当重新获得第i+1个预划分子组的次数达到预设次数或者最新一次重新获得的第i+1个预划分子组的步长小于或等于预设步长时,如果最新一次重新获得的第i+1个预划分子组的特征信息不满足所述预设条件,则确定所述第i个预划分子组为所述多个子组中的一个子组。
13.根据权利要求12所述的方法,其特征在于,所述将待编码点云组划分成多个子组还包括:
当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,确定本次重新获得的第i+1个预划分子组为一个子组;
当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差大于所述第二预设数量时,采用第四步长获得第i+2个预划分子组,所述第二步长与所述第四步长之和小于所述第一步长;如果所述第i+2个预划分子组的特征信息满足所述预设条件,则采用第五步长获得第i+3个预划分子组,所述第二步长、所述第四步长与所述第五步长之和小于所述第一步长;以此类推,当所获得的第i+k个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于所述第二预设数量时,如果所述i+k个预划分子组的特征信息满足所述预设条件,则确定所述第i+k个预划分子组为所述多个子组中的一个子组,k≥2,所述k是整数。
14.根据权利要求2所述的方法,其特征在于,所述以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组,包括:
以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行二分法,以得到所述第i个预划分子组;
相应的,所述根据所述第i个预划分子组的特征信息,确定所述预划分子组为所述多个子组中的一个子组,包括:
如果所述第i个预划分子组的特征信息满足预设条件,则确定所述第i个预划分子组为所述多个子组中的一个子组。
15.一种编码器,其特征在于,包括:
分组模块,用于将待编码点云组划分成多个子组,其中,所述将所述待编码点云组划分成多个子组包括:对所述待编码点云组中的多帧点云进行预划分,以得到预划分子组;根据所述预划分子组的特征信息,确定所述预划分子组为所述多个子组中的一个子组;所述特征信息用于表征所述预划分子组中的点云的占用图尺寸;
编码模块,用于对所述多个子组包含的点云进行编码。
16.根据权利要求15所述的编码器,其特征在于,
所述分组模块在所述对所述待编码点云组中的多帧点云进行预划分,以得到预划分子组的方面,具体用于:以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组;所述第j帧点云是所述还未分组的点云中的第一帧点云;i≥1,i是整数;j≥1,j是整数;所述第i个预划分子组包括从所述第j帧点云开始的一帧或多帧点云;
相应的,所述分组模块在所述根据预划分子组的特征信息,确定所述预划分子组为所述多个子组中的一个子组的方面,具体用于:根据所述第i个预划分子组的特征信息,确定所述第i个预划分子组为所述多个子组中的一个子组。
17.根据权利要求16所述的编码器,其特征在于,
所述分组模块在所述根据所述第i个预划分子组的特征信息,确定所述第i个预划分子组为所述多个子组中的一个子组的方面,具体用于:当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,确定所述第i个预划分子组为所述多个子组中的一个子组。
18.根据权利要求17所述的编码器,其特征在于,所述第i个预划分子组的特征信息包括所述第i个预划分子组的全局占用图的尺寸;
相应的,所述分组模块在所述当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,确定所述第i个预划分子组为所述多个子组中的一个子组的方面,具体用于:
当所述第i个预划分子组的全局占用图的尺寸小于或等于第一阈值,且所述第i+1个预划分子组的全局占用图的尺寸大于所述第一阈值时,确定所述第i个预划分子组为所述多个子组中的一个子组。
19.根据权利要求18所述的编码器,其特征在于,
所述第一阈值是预定义的值;
或者,所述第一阈值是基于候选打包算法获得的所述待编码点云组中的点云的占用图的最大尺寸所确定的。
20.根据权利要求17所述的编码器,其特征在于,所述第i个预划分子组的特征信息包括所述第i个预划分子组中的点云的占用图尺寸;
相应的,所述分组模块在所述当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,确定所述第i个预划分子组为所述多个子组中的一个子组的方面,具体用于:
当所述第i个预划分子组中的大尺寸点云的帧数小于或等于第一预设数量,且所述第i+1个预划分子组中的大尺寸点云的帧数大于所述第一预设数量时,确定所述第i个预划分子组为所述多个子组中的一个子组;所述大尺寸点云是占用图尺寸大于或等于第二阈值的点云;
或者,当所述第i个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值小于或等于第三阈值,且所述第i+1个预划分子组中各帧点云基于全局匹配打包算法获得的占用图尺寸与基于候选打包算法获得的占用图尺寸之比的平均值大于所述第三阈值时,确定所述第i个预划分子组为所述多个子组中的一个子组。
21.根据权利要求20所述的编码器,其特征在于,
所述第二阈值是预定义的值;
或者,所述大尺寸点云是基于全局匹配打包算法获得的占用图尺寸大于或等于所述第二阈值的点云,所述第二阈值是基于候选打包算法获得的所述待编码点云组中的点云占用图的最大尺寸所确定的,或者是基于候选打包算法获得的本点云的占用图尺寸所确定的。
22.根据权利要求16至21任一项所述的编码器,其特征在于,所述分组模块在所述以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组的方面,具体用于:
以第j帧点云为起点,对所述待编码点云组中还未分组的点云执行第i次滑动窗口,以得到所述第i个预划分子组;或者,以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行二分法,以得到所述第i个预划分子组。
23.根据权利要求22所述的编码器,其特征在于,第i1次滑动窗口所采用的步长大于或等于第i2次滑动窗口时采用的步长,1≤i1<i2≤i,i1和i2均是整数。
24.根据权利要求23所述的编码器,其特征在于,所述分组模块还用于:
根据公式N[i+1]=N[i]*c,获得第i+1次滑动窗口所采用的步长N[i+1];其中,所述N[i]是第i次滑动窗口所采用的步长,所述c是基于所述第i个预划分子组中大尺寸点云的帧数所确定的,所述大尺寸点云是指占用图尺寸大于或等于第二阈值的点云。
25.根据权利要求24所述的编码器,其特征在于,所述c满足如下公式:c=(a-b)/a;其中,所述a是第一预设数量,所述b是所述第i个预划分子组中所述大尺寸点云的帧数。
26.根据权利要求16所述的编码器,其特征在于,
所述分组模块在所述以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组的方面,具体用于:以第j帧点云为起点,对所述待编码点云组中还未分组的点云执行第i次滑动窗口,以得到所述第i个预划分子组;
相应的,所述分组模块在所述根据所述第i个预划分子组的特征信息,确定所述第i个预划分子组为所述多个子组中的一个子组的方面,具体用于:
当所述第i个预划分子组的特征信息满足预设条件,且第i+1个预划分子组的特征信息不满足所述预设条件时,采用第二步长重新获得第i+1个预划分子组,所述第二步长小于第一步长,第一步长是首次获得第i+1个预划分子组时所采用的步长;
如果重新获得的第i+1个预划分子组的特征信息不满足所述预设条件,则采用第三步长重新获得第i+1个预划分子组,所述第三步长小于所述第二步长;以此类推,当重新获得第i+1个预划分子组的次数达到预设次数或者最新一次重新获得的第i+1个预划分子组的步长小于或等于预设步长时,如果最新一次重新获得的第i+1个预划分子组的特征信息不满足所述预设条件,则确定所述第i个预划分子组为所述多个子组中的一个子组。
27.根据权利要求26所述的编码器,其特征在于,所述分组模块在所述将待编码点云组划分成多个子组的方面,具体用于:
当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于第二预设数量时,确定本次重新获得的第i+1个预划分子组为一个子组;
当重新获得的第i+1个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差大于所述第二预设数量时,采用第四步长获得第i+2个预划分子组,所述第二步长与所述第四步长之和小于所述第一步长;如果所述第i+2个预划分子组的特征信息满足所述预设条件,则采用第五步长获得第i+3个预划分子组,所述第二步长、所述第四步长与所述第五步长之和小于所述第一步长;以此类推,当所获得的第i+k个预划分子组与首次获得的第i+1个预划分子组包含的点云的帧数之差小于或等于所述第二预设数量时,如果所述i+k个预划分子组的特征信息满足所述预设条件,则确定所述第i+k个预划分子组为所述多个子组中的一个子组,k≥2,所述k是整数。
28.根据权利要求16所述的编码器,其特征在于,
所述分组模块在所述以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行预划分,以得到第i个预划分子组的方面,具体用于:以第j帧点云为起点,第i次对所述待编码点云组中还未分组的点云执行二分法,以得到所述第i个预划分子组;
相应的,所述分组模块在所述根据所述第i个预划分子组的特征信息,确定所述预划分子组为所述多个子组中的一个子组的方面,具体用于:如果所述第i个预划分子组的特征信息满足预设条件,则确定所述第i个预划分子组为所述多个子组中的一个子组。
29.一种编码装置,其特征在于,所述装置包括:存储器和处理器;其中,所述存储器用于存储程序代码;所述处理器用于调用所述程序代码,以执行如权利要求1至14任一项所述的点云编码方法。
30.一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在计算机上运行时,使得如权利要求1至14任一项所述的点云编码方法被执行。
CN201811527959.5A 2018-12-13 2018-12-13 点云编码方法和编码器 Active CN111327897B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201811527959.5A CN111327897B (zh) 2018-12-13 2018-12-13 点云编码方法和编码器
PCT/CN2019/124615 WO2020119725A1 (zh) 2018-12-13 2019-12-11 点云编码方法和编码器
JP2021533720A JP7271671B2 (ja) 2018-12-13 2019-12-11 点群符号化方法及びエンコーダ
EP19896273.0A EP3890320A4 (en) 2018-12-13 2019-12-11 POINT CLOUD CODING METHOD AND ENCODER
KR1020217021621A KR20210094095A (ko) 2018-12-13 2019-12-11 포인트 클라우드 인코딩 방법 및 인코더
MX2021007046A MX2021007046A (es) 2018-12-13 2019-12-11 Método de codificación de nube de puntos y codificador.
US17/345,523 US11935269B2 (en) 2018-12-13 2021-06-11 Point cloud encoding method and encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811527959.5A CN111327897B (zh) 2018-12-13 2018-12-13 点云编码方法和编码器

Publications (2)

Publication Number Publication Date
CN111327897A CN111327897A (zh) 2020-06-23
CN111327897B true CN111327897B (zh) 2022-01-14

Family

ID=71075856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811527959.5A Active CN111327897B (zh) 2018-12-13 2018-12-13 点云编码方法和编码器

Country Status (7)

Country Link
US (1) US11935269B2 (zh)
EP (1) EP3890320A4 (zh)
JP (1) JP7271671B2 (zh)
KR (1) KR20210094095A (zh)
CN (1) CN111327897B (zh)
MX (1) MX2021007046A (zh)
WO (1) WO2020119725A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023153758A1 (ko) * 2022-02-08 2023-08-17 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
CN114596196A (zh) * 2022-03-04 2022-06-07 北京百度网讯科技有限公司 点云数据的滤波方法和装置、设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407408A (zh) * 2016-09-22 2017-02-15 北京数字绿土科技有限公司 一种海量点云数据的空间索引构建方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002010259A (ja) 2000-06-21 2002-01-11 Mitsubishi Electric Corp 画像符号化装置及び画像符号化方法及び画像符号化プログラムを記録した記録媒体
US10482196B2 (en) * 2016-02-26 2019-11-19 Nvidia Corporation Modeling point cloud data using hierarchies of Gaussian mixture models
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US11300964B2 (en) * 2016-12-20 2022-04-12 Korea Advanced Institute Of Science And Technology Method and system for updating occupancy map for a robotic system
US11514613B2 (en) * 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10306212B2 (en) * 2017-03-31 2019-05-28 Verizon Patent And Licensing Inc. Methods and systems for capturing a plurality of three-dimensional sub-frames for use in forming a volumetric frame of a real-world scene
EP3399757A1 (en) 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus to encode and decode two-dimension point clouds
US10699444B2 (en) * 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
CN108335335B (zh) 2018-02-11 2019-06-21 北京大学深圳研究生院 一种基于增强图变换的点云属性压缩方法
EP3772853B1 (en) 2018-04-09 2024-06-19 Huawei Technologies Co., Ltd. Method and device for point cloud coding
CN108632621B (zh) * 2018-05-09 2019-07-02 北京大学深圳研究生院 一种基于层次划分的点云属性压缩方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407408A (zh) * 2016-09-22 2017-02-15 北京数字绿土科技有限公司 一种海量点云数据的空间索引构建方法及装置

Also Published As

Publication number Publication date
KR20210094095A (ko) 2021-07-28
JP2022513484A (ja) 2022-02-08
JP7271671B2 (ja) 2023-05-11
CN111327897A (zh) 2020-06-23
US11935269B2 (en) 2024-03-19
EP3890320A1 (en) 2021-10-06
US20210304444A1 (en) 2021-09-30
MX2021007046A (es) 2021-10-22
WO2020119725A1 (zh) 2020-06-18
EP3890320A4 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
EP3772853B1 (en) Method and device for point cloud coding
CN110662087B (zh) 点云编解码方法和编解码器
CN111327902B (zh) 点云的编解码方法及装置
US11282239B2 (en) Device and method of transmitting point cloud data, device and method of processing point cloud data
CN110719497B (zh) 点云编解码方法和编解码器
CN110944187B (zh) 点云编码方法和编码器
CN110971912B (zh) 点云编解码方法、编解码器、编解码装置和存储介质
CN110971898B (zh) 点云编解码方法和编解码器
US20220321912A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN111479114B (zh) 点云的编解码方法及装置
CN111327897B (zh) 点云编码方法和编码器
US20220327744A1 (en) Apparatus and method for processing point cloud data
CN115086658A (zh) 点云数据的处理方法、装置、存储介质及编解码设备
CN111327906B (zh) 点云编解码方法和编解码器
WO2020057338A1 (zh) 点云编码方法和编码器
CN112017292A (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