CN111479114B - 点云的编解码方法及装置 - Google Patents

点云的编解码方法及装置 Download PDF

Info

Publication number
CN111479114B
CN111479114B CN201910070741.XA CN201910070741A CN111479114B CN 111479114 B CN111479114 B CN 111479114B CN 201910070741 A CN201910070741 A CN 201910070741A CN 111479114 B CN111479114 B CN 111479114B
Authority
CN
China
Prior art keywords
patch
information
matching
decoded
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910070741.XA
Other languages
English (en)
Other versions
CN111479114A (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
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910070741.XA priority Critical patent/CN111479114B/zh
Priority to PCT/CN2020/071022 priority patent/WO2020151496A1/zh
Publication of CN111479114A publication Critical patent/CN111479114A/zh
Application granted granted Critical
Publication of CN111479114B publication Critical patent/CN111479114B/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • 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
    • H04N19/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • 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

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请公开了点云编解码方法及编解码器,涉及编解码技术领域,有利于提高点云数据的编解码效率,减少码流的比特开销。点云的编码方法包括:获取待编码patch的边信息;若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流;该边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引;全局匹配patch标识用于指示待编码patch是否为子组内的全局匹配patch;若待编码patch为所述子组中非首帧点云中的patch,则将待编码patch的边信息编入所述码流,所述边信息包括三维信息和匹配patch索引。

Description

点云的编解码方法及装置
技术领域
本申请涉及编解码技术领域,特别涉及点云(point cloud)的编解码方法及装置。
背景技术
随着3d传感器(例如3d扫描仪)技术的不断发展,采集点云数据越来越便捷,所采集的点云数据的规模也越来越大,因此,如何有效地对点云数据进行编码,成为迫切需要解决的问题。
在将点云组中的多帧点云划分为若干个子组之后,相邻两个子组的点云块(patch)之间如果具有匹配关系,而且这种匹配关系还用来约束匹配patch的旋转角度、法向坐标轴等信息一致时,会导致在对子组中的点云块(patch)进行patch打包时受到一定约束,使得产生的深度图和纹理图尺寸变大。而且即使子组中每帧点云的全局匹配patch的部分边信息相同,但是在编码时将每帧点云的全局匹配patch的所有边信息都编入码流,增大码流的比特开销。
发明内容
本申请实施例提供一种点云的编解码方法及装置,有利于使得产生的深度图和纹理图尺寸较小,减少码流的比特开销,从而提高编解码效率。
第一方面,本申请实施例提供一种点云的编码方法,包括:
获取待编码patch的边信息;若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流;该边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引;全局匹配patch标识用于指示待编码patch是否为子组内的全局匹配patch;若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,该边信息包括三维信息和匹配patch索引。
由上可见,由于对于子组中的非首帧点云中的patch,只将部分边信息编入码流,因此减少了码流的比特开销,进而提高了编码效率。
此外,应当理解的是,将首帧点云中patch(例如patch A)的全局匹配patch标识编入码流中,是为了在解码端,解析出patch A的全局匹配patch标识,一旦patch A作为其它patch(例如非首帧点云中patch B)的参考patch,基于patch A的全局匹配patch标识就可以确定patch B的全局匹配patch标识,进而若patch B的全局匹配patch标识为第一值(例如l或ture),则可以根据patch B的参考patch(即patch A)的二维信息、法向坐标轴信息和旋转变换信息分别推导或确定patch B的二维信息、法向坐标轴信息和旋转变换信息,这样就避免了编码时在码流中编入前述这些信息,从而减少了码流的比特开销,同时也提高了编码效率。
其中,子组的首帧点云是指该子组中的第0帧点云,子组的非首帧点云是指该子组中第i帧点云,i=1,2,…,N-1,N为该子组中点云的帧数。
需要说明的是,待编码patch的全局匹配patch标识可以为第一值(比如ture或1)或者第二值(比如false或0)。其中,第一值用于指示待编码patch为子组内的全局匹配patch,第二值用于指示待编码patch为不是子组内的全局匹配patch。
待编码patch为子组内的全局匹配patch是指在该子组内除了待编码patch所属的点云(亦称为一帧点云或点云帧)之外的点云(其它点云帧)中均能找到与待编码patch相匹配的patch(后文可称为参考patch)。待编码patch不是子组内的全局匹配patch是指待编码patch在该子组内除了待编码patch所属的点云之外的部分点云(即一些点云帧)中能找到与待编码patch相匹配的patch,或者在该子组内除了待编码patch所属的点云之外的点云中找不到与待编码patch相匹配的patch。不是子组内的全局匹配patch也可称为非全局匹配patch。
待编码patch的匹配patch索引为在该待编码patch所属点云的参考帧中与该待编码patch相匹配的patch(后文可称为参考patch)的索引。待编码patch的匹配patch索引可以为非缺省值或者缺省值。其中待匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch,换个角度说,即待编码patch为匹配patch。例如patch[k].matchedPatchIndex不等于-1,-1为缺省值,表示所述待编码patch的参考patch。待匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch,换个角度说,即待编码patch为非匹配patch。例如patch[k].matchedPatchIndex等于-1,-1为缺省值,表示所述待编码patch没有与之相匹配的patch。待编码patch的匹配patch索引所指示的参考帧中的patch为参考patch。
其中,法向坐标轴信息,亦可称为法向轴信息,例如normalAxis,即所述待编码patch的法向轴索引。
其中,待编码patch的旋转变换信息可以为旋转角度信息、坐标轴变换信息或镜像变换信息。其中,待编码patch的旋转角度信息包括具体的旋转角度值或旋转角度索引。比如若待编码patch的旋转角度值为0时,则表示该patch不旋转;若待编码patch的旋转角度值为20,则表示该patch旋转20°;若待编码patch的旋转角度值为80,则表示该patch旋转80°。再比如若待编码patch的旋转角度索引为0,则表示该patch不旋转;若待编码patch的旋转角度索引为1,则表示该patch旋转15°;若待编码patch的旋转角度索引为2,则表示该patch旋转30°;若待编码patch的旋转角度索引为3,则表示该patch旋转45°。
需要说明的是,待编码patch的旋转可以是顺时针旋转,也可以是逆时针旋转,本申请对此不做限定。
待编码patch的坐标轴变换信息可以表示为坐标轴变换索引,比如待编码patch的坐标轴交换标识为0或false时,表示不交换该待编码patch的切线坐标轴和双切线坐标轴;比如待编码patch的坐标轴交换标识为1或ture时,表示交换该待编码patch的切线坐标轴和双切线坐标轴。例如,假设U轴索引为0,V轴索引为1,缺省情况下,待编码patch的切线坐标轴的索引为0,说明待编码patch的切线坐标轴为U轴;待编码patch的双切线坐标轴的索引为1,说明待编码patch的双切线坐标轴为V轴。如果待编码patch的坐标轴交换标识为false,则不交换patch的切线坐标轴的索引和双切线坐标轴的索引;如果待编码patch的坐标轴交换标识为ture,则交换待编码patch的切线坐标轴的索引和双切线坐标轴的索引,即待编码patch的切线坐标轴的索引更新为1,该patch的双切线坐标轴的索引更新为0。
镜像变换信息可以表示为镜像变换索引,比如镜像变换索引为0时,表示将U轴变换为-U轴;比如镜像变换索引为1时,表示将V轴变换为-V轴;比如镜像变换索引为2时,表示将V轴变换为-V轴,且将U轴变换为-U轴。
待编码patch的三维信息包括u1,v1和d1,或者,待编码patch的三维信息包括该待编码patch的u1与其参考patch的u1之间的差值、该待编码patch的v1与其参考patch的v1之间的差值和该待编码patch的d1与其参考patch的d1之间的差值。其中u1(亦称为patch_3d_shift_tangent_axis)为patch中的点沿着切线轴的偏移量,v1(亦称为patch_3d_shift_bitangent_axis)为patch中的点沿着双切线轴的偏移量,d1(亦称为patch_3d_shift_normal_axis)为patch中的点沿着法向轴的偏移量。
待编码patch的二维信息包括u0,v0,sizeU0和sizeV0,或者,待编码patch的二维信息包括该待编码patch的u0与其参考patch的u0之间的差值、该待编码patch的v0与其参考patch的v0之间的差值、该待编码patch的sizeU0与其参考patch的sizeU0之间的差值和该待编码patch的sizeV0与其参考patch的sizeV0之间的差值。其中,u0(亦称为patch_2d_shift_u)为待编码patch的占用图在其所属点云占用图中位置的横坐标值x,v0(亦称为patch_2d_shift_v)为待编码patch的占用图在其所属的点云占用图中位置的纵坐标值y;sizeU0为待编码patch的宽度(例如patch在其所属的点云占用图上的宽度);sizeV0为待编码patch的高度(例如patch在其所属的点云占用图上的高度)。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入所述码流,待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch;待编码patch的全局匹配patch标识为第一值,以指示待编码patch为子组内的全局匹配patch;
若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中非首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流,匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch。例如patch[k].matchedPatchIndex不等于-1,-1为缺省值,表示所述待编码patch的参考patch。
考虑到子组内的全局匹配patch具有相同的二维信息、法向坐标轴信息、旋转变换信息和全局匹配patch标识,因此对于子组内首帧点云中的patch(例如patch A且patch A为全局匹配patch且patch A具有与之相匹配的patch B),将patch A的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引编入码流,对于非首帧中的patch(例如patch B),将patch B的三维信息和匹配patch索引编入码流。在解码端,从码流中解析patch A的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,并从码流中解析patch B的三维信息和匹配patch索引,若一旦根据patch B的匹配patch索引确定patch A为patch B的参考patch,则根据patch A的全局匹配patch标识确定patch B的全局匹配patch标识。若patch B的全局匹配patch标识为第一值(例如l或ture),则根据patch B的参考patch(即patch A)的二维信息、法向坐标轴信息和旋转变换信息分别确定patch B的二维信息、法向坐标轴信息和旋转变换信息,这样就避免了在码流中编入前述这些信息,从而也可减少了码流的比特开销,同时提高了编码效率。需要说明的是,patch A的法向坐标轴信息也不需要编入码流,而是在解码侧,根据patch A的所述匹配patch索引所指示的参考patch的法向坐标轴信息确定patch A的法向坐标轴信息。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:
若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入所述码流,匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch。例如patch[k].matchedPatchIndex等于-1,-1为缺省值,表示待编码patch没有与之相匹配的patch。待编码patch的全局匹配patch标识为第一值,以指示待编码patch为所述子组内的全局匹配patch。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的参考patch,将待编码patch的边信息编入码流;待编码patch的匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch。例如patch[k].matchedPatchIndex不等于-1(例如-1为缺省值),表示所述待编码patch的参考patch。待编码patch的全局匹配patch标识为第二值,以指示所述待编码patch不是所述子组内的全局匹配patch。
若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,待编码patch的边信息还包括二维信息,将待编码patch的边信息编入码流;其中,待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch。例如patch[k].matchedPatchIndex不等于-1(例如-1为缺省值),表示待编码patch的参考patch。
考虑到子组内相互匹配的patch具有相同的法向坐标轴信息和旋转变换信息,因此对于子组内首帧点云中的patch(例如patch A且patch A为非全局匹配patch且patch A具有与之相匹配的patch B),在本实施例中将patch A的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引编入码流,对于非首帧中的patch(例如patch B),将patch B的二维信息、三维信息和匹配patch索引编入码流。在解码端,从码流中解析patch A的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,并从码流中解析patch B的二维信息、三维信息和匹配patch索引,若一旦根据patch B的匹配patch索引确定patch A为patch B的参考patch,根据patch B的参考patch(即patch A)的法向坐标轴信息和旋转变换信息分别确定patch B的法向坐标轴信息和旋转变换信息,这样就避免了在码流中编入前述这些信息,从而也可减少了码流的比特开销,同时提高了编码效率。需要说明的是,patch A的法向坐标轴信息也不需要编入码流,而是在解码侧,根据patch A的所述匹配patch索引所指示的参考patch的法向坐标轴信息确定patch A的法向坐标轴信息。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息(例如normalAxis,即所述待编码patch的法向轴索引),将待编码patch的边信息编入码流;待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch。例如patch[k].matchedPatchIndex等于-1,-1为缺省值,表示待编码patch没有与之相匹配的patch。待编码patch的全局匹配patch标识为第二值,以指示待编码patch不是子组内的全局匹配patch。
若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没具有与之相匹配的patch,待编码patch的边信息还包括二维信息、法向坐标轴信息(例如normalAxis,即待编码patch的法向轴索引)和旋转变换信息,将待编码patch的边信息编入码流,其中待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch。例如patch[k].matchedPatchIndex等于-1,-1为缺省值,表示待编码patch没有与之相匹配的patch。
由上可知,对于首帧点云中的patch(例如patch A),将该patch的全局匹配patch标识编入码流的目的是相互具有匹配关系的patch具有相同的全局匹配patch标识。若patch A是其他patch(例如非首帧中的patch B)的参考patch,在解码端即使没有从码流中解析出patch B的全局匹配patch标识,也能根据patch A的全局匹配patch标识确定patchB的全局匹配patch标识。若patch B没有与之匹配的参考patch,则可确定patch B为非全局匹配patch,其全局匹配patch标识可直接确定为第二值(例如0或false)。可见,对于全局匹配patch标识,在编码端只需将首帧点云中patch的全局匹配patch标识编入码流,不需要将非首帧点云的全局匹配patch标识编入码流,从而减少了码流的比特开销,同时提高了编码效率。
在一个可行的实现方式下,对待编码patch的二维信息和/或三维信息采用差分编码方式编入码流。
需要说明的是,采用差分编码的方式将二维信息编入码流具体是将待编码patch的u0与其参考patch的u0之间的差值,该待编码patch的v0与其参考patch的v0之间的差值,该待编码patch的sizeU0与其参考patch的sizeU0之间的差值和该待编码patch的sizeV0与其参考patch的sizeV0之间的差值编入码流;同理,采用差分编码的方式将三维信息编入码流具体是将该待编码patch的u0与其参考patch的u0之间的差值,该待编码patch的v0与其参考patch的v0之间的差值,该待编码patch的sizeU0与其参考patch的sizeU0之间的差值和该待编码patch的sizeV0与其参考patch的sizeV0之间的差值编入码流。采用差分编码方式可进一步达到减少码流比特开销的目的。
待编码patch的参考patch为在该待编码patch所属的点云中该待编码patch的匹配patch索引所指示的patch。
可以看出,在本申请实施例的方案中,对于全局匹配patch,由于全局匹配patch的部分边信息相同,因此不需对子组内非首帧点云中全局匹配patch的部分边信息编入码流。采用本申请实施例摒弃了子组间的用来约束匹配patch的旋转变换信息一致的匹配关系,使得每个子组的打包更加灵活,使得产生的深度图和纹理图尺寸较小。由于全局匹配patch的部分边信息只进行一次编码,从而达到了提高编码效率的目的,同时减少了码流的比特开销。
第二方面,本申请实施例提供一种点云的解码方法,包括:
从码流中解析出待解码patch的边信息;若所述边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息;若边信息包括三维信息和匹配patch索引,则根据匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息;根据待解码patch的二维信息、三维信息、法向坐标轴信息和旋转变换信息重构待解码patch;其中,全局匹配patch标识用于指示待解码patch是否为子组内的全局匹配patch。
由上可见,在解码端,一方面,假设从码流中解析出patch A的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,即使没有从码流中解析出patchA的法向坐标轴信息,在解码侧也能根据patch A的所述匹配patch索引所指示的参考patch的法向坐标轴信息推导出patch A的法向坐标轴信息。另一方面,假设从码流中解析出patch B的三维信息和匹配patch索引,若一旦根据patch B的匹配patch索引确定patch A为patch B的参考patch,根据patch B的参考patch(即patch A)的二维信息、法向坐标轴信息和旋转变换信息分别推导或确定patch B的法向坐标轴信息和旋转变换信息。可见,即使从码流中仅解析出patch B的部分边信息,也能通过解析出的patch B的部分边信息结合解码端曾经从码流中解析出或推导出的patch A的边信息推导得到patch B的其它边信息,因此在一定程度上减少码流比特开销的前提下,提高了解码的效率。
需要说明的是,待解码patch的全局匹配patch标识可以为第一值(比如ture或1)或者第二值(比如false或0)。其中,待解码patch的全局匹配patch标识的第一值,以指示待解码patch为全局匹配patch,待解码patch的全局匹配patch标识的第二值,以指示待解码patch不是子组内的全局匹配patch。
待解码patch的匹配patch索引为与该待解码patch相匹配的patch的索引。与待解码patch相匹配的patch为待解码patch所属的点云的参考帧中的patch。待解码patch的匹配patch索引可以为非缺省值或者缺省值。其中待解码patch的匹配patch索引为非缺省值,以指示待解码patch的参考patch,即待解码patch为匹配patch,待解码patch的匹配patch索引为缺省值,以指示待解码patch没有与之相匹配的patch,即待解码patch为非匹配patch。
待解码patch的匹配patch索引所指示的参考帧中patch为参考patch。换句话说,参考patch为待解码patch所属的点云的参考帧中该待解码patch的匹配patch索引所指示的patch。
需要说明的是,待解码patch的二维信息、三维信息和旋转变换信息的具体描述可参见第一方面中待编码patch的二维信息、三维信息和旋转变换信息的相关描述,在此不再叙述。
在一个可能的实施例中,所述若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息,包括:
若匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息;
若所述边信息包括三维信息和匹配patch索引,则根据匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:若匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识;若待解码patch的全局匹配patch标识为第一值,则根据参考patch的二维信息、法向坐标轴信息和旋转变换信息分别确定待解码patch的二维信息、法向坐标轴信息和旋转变换信息;
其中,匹配patch索引为非缺省值,以指示待解码patch的参考patch,全局匹配patch标识为第一值,以指示待解码patch为子组内的全局匹配patch。
由上可见,在解码端,一方面,假设从码流中解析patch A的二维信息、三维信息、法向坐标轴信息、旋转变换信息、全局匹配patch标识和匹配patch索引,即使没有从码流中解析出patch A的法向坐标轴信息,在解码侧也能根据patch A的所述匹配patch索引所指示的参考patch的法向坐标轴信息推导出patch A的法向坐标轴信息。另一方面,假设从码流中解析patch B的三维信息和匹配patch索引,若一旦根据patch B的匹配patch索引确定patch A为patch B的参考patch,根据patch A的全局匹配patch标识确定patch B的全局匹配patch标识,若patch B的全局匹配patch标识为第一值,则根据patch B的参考patch(即patch A)的二维信息、法向坐标轴信息和旋转变换信息分别推导或确定patch B的法向坐标轴信息和旋转变换信息。可见,即使从码流中仅解析出patch B的部分边信息,也能通过解析出的patch B的部分边信息结合解码端曾经从码流中解析出或推导出的patch A的边信息推导得到patch B的其它边信息,因此在一定程度上减少码流比特开销的前提下,提高了解码的效率。
在一个可能的实施例中,所述若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息,包括:若匹配patch索引为缺省值,则还从码流中解析待解码patch的法向坐标轴信息;
其中,匹配patch索引为缺省值,以指示待解码patch没有与之相匹配的patch,全局匹配patch标识为第一值,以指示待解码patch为子组内的全局匹配patch。
在一个可能的实施例中,所述若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息,包括:若匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息;
若所述边信息包括三维信息和匹配patch索引,则根据匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:若匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识;若待解码patch的全局匹配patch标识为第二值(例如false或0),则还从码流中解析待解码patch的二维信息,并根据参考patch的法向坐标轴信息和旋转变换信息分别确定待解码patch的法向坐标轴信息和旋转变换信息;
其中,待解码patch的匹配patch索引为非缺省值,以指示待解码patch的参考patch;待解码patch的全局匹配patch标识为第二值,以指示待解码patch不是子组内的全局匹配patch。
由上可见,在解码端,一方面,假设从码流中解析出patch A的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,即使没有从码流中解析出patchA的法向坐标轴信息,在解码侧也能根据patch A的所述匹配patch索引所指示的参考patch的法向坐标轴信息推导出patch A的法向坐标轴信息。另一方面,假设从码流中解析出patch B的三维信息和匹配patch索引,若一旦根据patch B的匹配patch索引确定patch A为patch B的参考patch,根据patch A的全局匹配patch标识确定patch B的全局匹配patch标识,若patch B的全局匹配patch标识为第二值,则还从码流中解析patch B的二维信息,并根据patch B的参考patch(即patch A)的法向坐标轴信息和旋转变换信息分别推导或确定patch B的法向坐标轴信息和旋转变换信息。可见,即使从码流中仅解析出patch B的部分边信息,也能通过解析出的patch B的部分边信息结合解码端曾经从码流中解析出或推导出的patch A的边信息推导得到patch B的其它边信息,因此在一定程度上减少码流比特开销的前提下,提高了解码的效率。
在一个可能的实施例中,所述若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息,包括:若匹配patch索引为缺省值,则还从码流中解析所述待解码patch法向坐标轴信息;
若所述边信息包括三维信息和匹配patch索引,则根据匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:若匹配patch索引为缺省值,则还从码流中解析待解码patch的二维信息、法向坐标轴信息和旋转变换信息,并确定待解码patch的全局匹配patch标识为第二值;
其中,待解码patch的匹配patch索引为缺省值,以指示待解码patch没有与之相匹配的patch,待解码patch的全局匹配patch标识为第二值,以指示待解码patch不是子组内的全局匹配patch。
由上可见,在解码端,将当前patch(比如patch A)的全局匹配patch标识确定为第二值(例如0或false)带来的技术效果是:若patch B的参考patch为patch A,则可根据patch A的全局匹配patch标识确定patch B的全局匹配patch标识,从而确定patch B为非全局匹配patch,进而还从码流中解析patch B的二维信息,并根据patch B的参考patch(即patch A)的法向坐标轴信息和旋转变换信息分别推导或确定patch B的法向坐标轴信息和旋转变换信息。可见,即使从码流中仅解析出patch B的部分边信息,也能通过解析出的patch B的部分边信息结合解码端曾经从码流中解析出或推导出的patch A的边信息推导得到patch B的其它边信息,因此在一定程度上减少码流比特开销的前提下,提高了解码的效率。
在一个可能的实施例中,采用差分解码方式从码流中解析待解码patch的二维信息和/或三维信息。
需要指出的是,在采用差分解码的方式从码流中解析待解码patch的二维信息具体是从码流中解析待解码patch的u0与其参考patch的u0之间的差值,该待解码patch的v0与其参考patch的v0之间的差值,该待解码patch的sizeU0与其参考patch的sizeU0之间的差值和该待解码patch的sizeV0与其参考patch的sizeV0之间的差值;然后再根据待解码patch的u0与其参考patch的u0之间的差值和参考patch的u0获取待解码patch的u0,根据待解码patch的v0与其参考patch的v0之间的差值和参考patch的v0获取待解码patch的v0,根据待解码patch的sizeU0与其参考patch的sizeU0之间的差值和参考patch的sizeU0获取待解码patch的sizeU0,根据待解码patch的sizeV0与其参考patch的sizeV0之间的差值和参考patch的sizeV0获取待解码patch的sizeV0。同理,采用差分解码的方式从码流中解析待解码patch的三维信息具体是从码流中解析待解码patch的u1与其参考patch的u1之间的差值,该待解码patch的v1与其参考patch的v1之间的差值和该待解码patch的d1与其参考patch的d1之间的差值;然后再根据待解码patch的u1与其参考patch的u1之间的差值和参考patch的u1获取待解码patch的u1,根据待解码patch的v1与其参考patch的v1之间的差值和参考patch的v1获取待解码patch的v1,根据待解码patch的d1与其参考patch的d1之间的差值和参考patch的d1获取待解码patch的d1。
可以看出,在本申请实施例的方案中,从码流中解析子组首帧点云中的全局匹配patch的边信息;由于全局匹配patch的部分边信息相同,对于非首帧点中的全局匹配patch的部分边信息可直接根据首帧点云中的全局匹配patch的边信息推导得到,提高了解码效率。
第三方面,本申请实施例提供另一种点云的编码方法,包括:
获取待编码patch的边信息;
将指示信息编入码流,该指示信息用于指示是否按照目标编码方法编码待编码patch的边信息;目标编码方法包括如第一方面所述的点云编码方法的部分或全部。
第四方面,本申请实施例提供另一种点云的解码方法,包括:
解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法解码边信息;当指示信息用于指示按照目标解码方法解码边信息时,按照目标解码方法获得待解码patch的边信息;目标解码方法包括如第二方面所述的点云编码方法的部分或全部;根据待解码patch的边信息重构待解码patch。
第五方面,本申请实施例还提供一种点云的编码装置,包括:
patch信息获取模块,用于获取待编码patch的边信息;
辅助信息编码模块,用于若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流;该边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引;全局匹配patch标识用于指示待编码patch是否为子组内的全局匹配patch;若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,边信息包括三维信息和匹配patch索引。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流;待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch;待编码patch的全局匹配patch标识为第一值,以指示待编码patch为子组内的全局匹配patch;
在若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:若待编码patch为子组中非首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流;,待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入码流;其中,待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch;待编码patch的全局匹配patch标识为第一值,以指示待编码patch为所述子组内的全局匹配patch。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流;,待编码patch的匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch;待编码patch的全局匹配patch标识为第二值,以指示所述待编码patch不是所述子组内的全局匹配patch;
在若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,待编码patch的边信息还包括二维信息,将待编码patch的边信息编入码流;其中,待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入码流;待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch;待编码patch的全局匹配patch标识为第二值,以指示待编码patch不是子组内的全局匹配patch;
在若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块具体用于:
若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没具有与之相匹配的patch,待编码patch的边信息还包括二维信息、法向坐标轴信息和旋转变换信息,将待编码patch的边信息编入码流;其中,待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch。
在一个可能的实施例中,对待编码patch的二维信息和/或三维信息采用差分编码方式编入码流;其中,二维信息包括u0,v0,sizeU0,sizeV0,u0为待编码patch的在其所属的点云占用图中该patch的左上角的横坐标值,v0为待编码patch的在其所属的点云占用图中该patch的左上角的横坐标值;sizeU0为待编码patch在其所属点云占用图上的宽度;sizeV0为待编码patch在其所属点云占用图上的高度;
三维信息包括u1,d1和v1,u1(亦称为patch_3d_shift_tangent_axis)为patch中的点沿着切线轴的偏移量,v1(亦称为patch_3d_shift_bitangent_axis)为patch中的点沿着双切线轴的偏移量,d1(亦称为patch_3d_shift_normal_axis)为patch中的点沿着法向轴的偏移量。
第六方面,本申请实施例还提供一种点云的解码装置,包括:
辅助信息解码模块,用于从码流中解析待解码patch的边信息;
辅助信息解码模块,还用于若边信息包括包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,则根据待解码patch的全局匹配patch和匹配patch索引获得待解码patch的法向坐标轴信息;若边信息包括包括三维信息和匹配patch索引,则根据待解码patch的匹配patch索引确定待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息;
重构模块,用于根据待解码patch的二维信息、三维信息、法向坐标轴信息和旋转变换信息重构待解码patch;其中,全局匹配patch标识用于指示待解码patch是否为子组内的全局匹配patch。
在一个可能的实施例中,在若边信息包括包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引确定待解码patch的法向坐标轴信息的方面,辅助信息解码模块具体用于:
若确定待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息;
在若边信息包括包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引确定待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,辅助信息解码模块具体用于:若确定待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识;若待解码patch的全局匹配patch标识为第一值,则根据参考patch的二维信息、法向坐标轴信息和旋转变换信息分别确定待解码patch的二维信息、法向坐标轴信息和旋转变换信息;其中,待解码patch的匹配patch索引为缺省值,以指示待解码patch的参考patch,待解码patch的全局匹配patch标识为第一值,以指示待解码patch为子组内的全局匹配patch;参考patch为在待解码patch所属点云的参考帧中匹配patch索引所指示的patch。
在一个可能的实施例中,在若边信息包括包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据待匹配patch索引确定待解码patch的法向坐标轴信息的方面,辅助信息解码模块具体用于:
若确定待解码patch的匹配patch索引为缺省值,则还从码流中解析待解码patch的法向坐标轴信息;其中,待解码patch的匹配patch索引为缺省值,以指示待解码patch没有与之相匹配的patch。
在一个可能的实施例中,在若边信息包括包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引确定待解码patch的法向坐标轴信息的方面,辅助信息解码模块具体用于:
若确定待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息;
在若边信息包括包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引确定待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,辅助信息解码模块具体用于:
若确定待解码patch的匹配patch索引为非缺省值;则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识;若确定待解码patch的全局匹配patch标识为第二值;则还从码流中解析待解码patch的二维信息;并且根据匹配patch索引所指示的参考patch的法向坐标轴信息和旋转变换信息分别确定待解码patch的法向坐标轴信息和旋转变换信息;其中,待解码patch的匹配patch索引为非缺省值,以指示待解码patch的参考patch,待解码patch的全局匹配patch标识为第二值,以指示待解码patch不是子组内的全局匹配patch;参考patch为在待解码patch所属点云的参考帧中匹配patch索引所指示的patch。
在一个可能的实施例中,在若边信息包括包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引确定待解码patch的法向坐标轴信息的方面,辅助信息解码模块具体用于:
若确定待解码patch的匹配patch索引为缺省值,则还从码流中解析待解码patch的法向坐标轴信息;
在若边信息包括包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引确定待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,辅助信息解码模块具体用于:若确定待解码patch的匹配patch索引为缺省值,则还从码流中解析二维信息、法向坐标轴信息和旋转变换信息,并确定待解码patch的全局匹配patch标识为第二值;
其中,待解码patch的匹配patch索引为缺省值,以指示待解码patch没有与之相匹配的patch,待解码patch的全局匹配patch标识为第二值,以指示待解码patch不是子组内的全局匹配patch。
在一个可能的实施例中,对待解码patch的二维信息和/或三维信息采用差分解码方式编入码流;其中,二维信息包括u0,v0,sizeU0,sizeV0,u0为待解码patch的在其所属的点云占用图中该patch的左上角的横坐标值,v0为待解码patch的在其所属的点云占用图中该patch的左上角的横坐标值;sizeU0为待解码patch在其所属点云占用图上的宽度;sizeV0为待解码patch在其所属点云占用图上的高度;
三维信息包括u1,d1和v1,u1(亦称为patch_3d_shift_tangent_axis)为patch中的点沿着切线轴的偏移量,v1(亦称为patch_3d_shift_bitangent_axis)为patch中的点沿着双切线轴的偏移量,d1(亦称为patch_3d_shift_normal_axis)为patch中的点沿着法向轴的偏移量。
第七方面,本申请实施例提供另一种点云的编码装置,包括:
patch信息获取模块,用于获取待编码patch的边信息;
辅助信息编码模块,用于将指示信息编入码流,该指示信息用于指示是否按照目标编码方法编码待编码patch的边信息;该目标编码方法包括如权利要求第一方面所述的点云编码方法的部分或全部。
第八方面,本申请实施例提供另一种点云的解码装置,包括:
辅助信息解码模块,用于解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法解码边信息;当该指示信息用于指示按照目标解码方法解码边信息时,按照目标解码方法获得待解码patch的边信息;该目标解码方法包括第二方面的点云解码方法的部分或全部;所述
重构模块,用于根据待解码patch的边信息重构待解码patch。
第九方面,提供一种用于编码点云数据的设备,该设备可以包括:存储器和编码器。存储器用于存储点云数据。编码器用于执行上述第一方面或第一方面的任一种可能的设计提供的点云编码方法。
第十方面,提供一种用于解码点云数据的设备,该设备可以包括:存储器和解码器。存储器用于存储码流形式的点云数据。解码器用于执行上述第二方面或第二方面的任一种可能的设计提供的点云编码方法。
第十一方面,提供一种编码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第一方面提供的点云编码方法。
第十二方面,提供一种解码装置,包括:存储器和处理器;其中,该存储器用于存储程序代码;该处理器用于调用该程序代码,以执行上述第二方面提供的点云解码方法。
本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行如上述第一方面及其可能的设计,或第二方面及其可能的设计提供的任一种点云译码方法。
本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行上述第三方面提供的点云编码方法。
本申请还提供一种计算机可读存储介质,包括程序代码,该程序代码在计算机上运行时,使得该计算机执行上述第四方面提供的点云解码方法。
本申请还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时使得该计算机执行第一方面或第一方面的任一种可能的设计提供的点云编码方法的部分或全部步骤。
本申请还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时使得该计算机执行第二方面或第二方面的任一种可能的设计提供的点云解码方法的部分或全部步骤。
应当理解的是,上述提供的任一种编解码器、装置、编解码装置和计算机可读存储介质的有益效果均可以对应参考上文对应方面提供的方法实施例的有益效果,不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为可用于本申请实施例的一种实例的点云译码***的示意性框图;
图2为可用于本申请实施例的一种实例的编码器的示意性框图;
图3为可用于本申请实施例的一种点云、点云的patch以及点云的占用图的示意图;
图4为可用于本申请实施例的一种实例的解码器的示意性框图;
图5为本申请实施例中的子组的示意图;
图6为本申请实施例提供的一种点云的编码方法的流程示意图;
图7为本申请实施例提供的一种点云的解码方法的流程示意图;
图8为本申请实施例提供的一个具体的点云编解码示意图;
图9为本申请提供的一种点云的编码装置的结构示意图
图10为本申请提供的一种点云的解码装置的结构示意图;
图11为本申请提供的一种点云的编码装置的结构示意图;
图12为本申请提供的一种点云的解码装置的结构示意图;
图13为本申请实施例的译码装置的一种实现方式的示意性框图。
具体实施方式
本申请实施例中的术语“至少一个(种)”包括一个(种)或多个(种)。“多个(种)”是指两个(种)或两个(种)以上。例如,A、B和C中的至少一种,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。本申请实施例中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请实施例中的术语字符“/”,一般表示前后关联对象是一种“或”的关系。在公式中,字符“/”表示除法运算,如A/B表示A除以B。本申请实施例中的术语“第一”、“第二”等是为了区分不同的对象,并不限定该不同对象的顺序。
图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包含数据源110、编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发送器(或称为发射器)。数据源110可包括点云捕获装置(例如,摄像机)、含有先前捕获的点云数据的点云存档、用以从点云内容提供者接收点云数据的点云馈入接口,和/或用于产生点云数据的计算机图形***,或点云数据的这些来源的组合。
编码器100可对来自数据源110的点云数据进行编码。在一些实例中,源装置10经由输出接口140将经编码点云数据直接发送到目的地装置20。在其它实例中,经编码点云数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
在图1的实例中,目的地装置20包含输入接口240、解码器200和显示装置120。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码点云数据。显示装置120可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置120显示经解码点云数据。显示装置120可包括多种显示装置,例如,液晶显示器(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的一部分二维信息(例如sizeU0和sizeV0)、三维信息(例如u1,d1和v1),甚至子组中首帧点云中的patch的全局匹配patch标识(例如patch[k].globalPatchFlag),可以作为辅助信息被发送到辅助信息编码模块108,以进行编码(即压缩编码)。在再一种示例下,该相关信息中的部分,如点云被分割生成的patch的三维信息(例如u1,d1和v1)可以作为辅助信息被发送到辅助信息编码模块108,以进行编码(即压缩编码)。需要说明的是,辅助信息编码模块108可以采用不同的编码方式(例如定长编码或差分方式编码)将边信息编入或写入码流,本申请的下文对此将作详细阐述。
每个patch的占用图可以被发送到打包模块102进行打包,具体的,将该点云的各patch按照特定的顺序进行排列例如按照各patch的占用图的宽/高降序(或升序)排列;然后,按照排列后的各patch的顺序,依次将patch的占用图***该点云占用图的可用区域中,得到该点云的占用图。再一方面,各patch在该点云占用图中的具***置信息和各patch的深度图等可以被发送到深度图生成模块103。在一些实现方式中,以所划分的子组为单位,打包模块102可以分别对该多个子组包含的点云进行打包,以得到待编码点云组中的每个点云的占用图。其中,对一个子组中的点云进行打包时所采用的打包算法通常相同。对不同子组中的点云进行打包时所采用的打包算法可以相同,也可以不相同,本申请实施例对此不进行限定。
打包模块102获得该点云的占用图后,一方面可以将该点云的占用图经第二填充模块111进行填充后发送到占用图编码模块107以进行编码。另一方面可以利用该点云的占用图指导深度图生成模块103生成该点云的深度图和指导纹理图生成模块104生成该点云的纹理图。另一方面,打包模块102还可以获取patch的匹配patch索引(例如patch[k].matchedPatchIndex)、旋转变换信息(例如patch[k].orientationIndex)和另一部分二维信息(例如u0和v0),并将patch的匹配patch索引(例如patch[k].matchedPatchIndex)、旋转变换信息(例如patch[k].orientationIndex)和另外一部分二维信息(例如u0和v0)发送至辅助信息编码模块108以进行编码。
如图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的辅助信息,获得重构的点云几何信息(例如重构点云中的patch)。其中,点云的几何信息是指点云中的点(例如点云中的每个点)在三维空间中的坐标值。
可选的,点云重构模块112还可以将点云的纹理信息和重构的点云几何信息发送到着色模块,着色模块用于对重构点云进行着色,以获得重构点云的纹理信息。
可选的,纹理图生成模块104还可以基于经点云滤波模块110对重构的点云几何信息进行滤波得到的信息,生成该点云的纹理图。
可以理解的,图2所示的编码器100仅为示例,具体实现时,编码器100可以包括比图2中所示的更多或更少的模块。本申请实施例对此不进行限定。
如图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。在一种示例下,辅助信息解码模块204解码得到边信息,如待解码patch的二维信息(例如u0,v0,sizeU0和sizeV0)、三维信息(例如u1,d1和v1)、旋转变换信息(例如patch[k].orientationIndex)、匹配patch索引(例如patch[k].matchedPatchIndex),甚至子组中首帧点云中的patch的全局匹配patch标识(例如patch[k].globalPatchFlag)等;在另一种示例下,辅助信息解码模块204解码得到边信息,如待解码patch的三维信息(例如u1,d1和v1)、匹配patch索引(例如patch[k].matchedPatchIndex)。需要说明的是,辅助信息解码模块204可以采用不同的解码方式(例如定长解码或差分方式解码)从码流中解析或解码出边信息,本申请的下文对此将作详细阐述。
点云的几何信息重构模块205,用于根据接收到的占用图信息、深度图信息和辅助信息对点云的几何信息进行重构(例如重构点云中的patch)。经重构的点云的几何信息经点云滤波模块206滤波之后,被发送到点云的纹理信息重构模块207。
点云的纹理信息重构模块207,用于对点云的纹理信息进行重构,得到经重构的点云。
可以理解的,图4所示的解码器200仅为示例,具体实现时,解码器200可以包括比图4中所示的更多或更少的模块。本申请实施例对此不进行限定。
为了便于理解本申请实施例提供的技术方案,以下对本申请实施例涉及的技术及术语进行说明。
在MPEG点云编码方法中,编码器首先将待编码点云(即当前帧或者当前帧点云)按照一定准则分割成若干个patch,这些patch相互之间没有交叠区域。然后,将每个patch从三维空间投影到二维平面,得到一个二维图像(即patch的占用图)。接着,将所有patch的占用图(或者降低分辨率后的patch的占用图)按照某种规则紧密的排列在一张二维图像上,得到当前帧占用图。这种排列patch的占用图的方法称为打包(packing)。后续,按照打包顺序生成当前帧深度图和当前帧纹理图。其中,当前帧深度图是各patch经过投影得到的深度按照打包顺序产生的一张二维图像。当前帧纹理图是各patch经过投影得到的纹理图按照打包顺序产生的一张二维图像。当前帧占用图是一张2值二维图像,用于表示该二维图像的各像素位置是否被点云中某点占据。通常,为了节约编码比特开销,当前帧占用图的分辨率低于当前帧深度图和当前帧纹理图的分辨率。
待编码点云组包括多帧点云,该多帧点云可以是时间上连续或非连续的多帧点云。例如,待编码点云组可以是一个或多个帧组(group of frame,GOF),一个GOF可以包括32帧点云,当然不限于此。
首先需要说明的是,将一个点云组中的点云分成若干个子组,每个子组中包括一帧或多帧点云。如图5所示,将一个点云组(包括32帧点云)分成多个子组。其中,第0个子组包括点云组中的第01,2,3帧点云,第1个子组包括点云组中的第4和5帧点云,第2个子组包括点云组中的第6,7,8,9,10帧点云,第3个子组包括点云组中的第11,12,13,14,15帧点云。图5中仅是以示例性的给出第0,1,2,3个子组中包括的点云,其他子组中包括的点云不作具体说明。待编码点云所划分成的任意一个子组可以包含一帧或多帧点云。不同子组包含的点云的帧数可以相等,也可以不相等。以及,将待编码点云组划分成多个子组的方法,本申请对此不做限定。
本申请中的匹配patch是指在该patch所属点云的参考帧中找到与之相匹配的patch(亦称为参考patch)的patch。非匹配patch是指在该patch所属的点云的参考帧中未找到与之相匹配的patch的patch。具体如何寻找匹配patch的方法本申请不作限定。
其中,该匹配patch所属的点云与其参考帧可以属于同一个子组(比如第2个子组中的非首帧点云中的patch的参考patch可以为同一子组中的patch),也可以属于不同的子组(比如第2个子组中的首帧(即第6帧)点云中的patch的参考patch可以为第0个子组或第1个子组中点云帧(尾帧)的patch)。
子组内的全局匹配patch是指跨一个子组中(亦称为一个子组内)的所有点云中具有匹配关系的patch。例如,假设一个子组有4帧点云(分别标记为点云1~4),对于点云1中的任意一个patch来说,如果在点云2~4中均能找到与该patch具有匹配关系的patch,如与点云1中的patch11具有匹配关系的patch分别是:点云2中的patch21、点云3中的patch31和点云4中的patch41,那么,patch11、21、31、41均是本子组内的全局匹配patch,且patchq1是当前点云帧q中的全局匹配patch,1≤q≤4,q是整数。
相对地,子组内的非全局匹配patch是指跨一个子组中(亦称为一个子组内)部分点云的具有匹配关系的patch,或者非全局匹配patch为在子组的所有点云中未找到与之相匹配的patch的patch。
patch的全局匹配patch标识用于指示该patch是否为子组内的全局匹配patch。在本申请中,patch的全局匹配patch的标识可以为第一值(比如ture或者1)或第二值(比如false或者0)。其中,第一值用于指示patch为子组内的全局匹配patch;第二值用于指示patch为子组内的非全局匹配patch。
patch的匹配patch索引为在该patch所属点云的参考帧中与该patch相匹配的patch的索引。patch的匹配patch索引所指示的参考帧中的patch为参考patch。
patch的匹配patch索引可以为非缺省值(比如1,2,3等)或缺省值(比如-1)。匹配patch索引为非缺省值,以指示该patch在其所属点云的参考帧中与之相匹配的patch(即参考patch),相应地,该patch为匹配patch;匹配patch索引为缺省值,以指示该patch在其所属的点云的参考帧中没有与之相匹配的patch,相应地,该patch为非匹配patch。
patch的二维信息包括u0,v0,sizeU0,sizeV0,u0为patch的占用图在其所属的点云占用图中位置的横坐标值,v0为patch的占用图在其所属的点云占用图中位置的纵坐标值;sizeU0为patch的占用图的宽度;sizeV0为patch的占用图的高度。
patch的三维信息包括u1,d1和v1,u1(亦称为patch_3d_shift_tangent_axis)为patch中的点沿着切线轴的偏移量,v1(亦称为patch_3d_shift_bitangent_axis)为patch中的点沿着双切线轴的偏移量,d1(亦称为patch_3d_shift_normal_axis)为patch中的点沿着法向轴的偏移量。
patch的旋转变换信息可以为旋转角度信息、坐标轴变换信息或镜像变换信息。其中,旋转角度信息包括具体的旋转角度值或旋转角度索引。比如若patch的旋转角度值为0时,则表示该patch不旋转;若patch的旋转角度值为20,则表示该patch旋转20°;若patch的旋转角度值为80,则表示该patch旋转80°。再比如若patch的旋转角度索引为0,则表示该patch不旋转;若patch的旋转角度索引为1,则表示该patch旋转15°;若patch的旋转角度索引为2,则表示该patch旋转30°;若patch的旋转角度索引为3,则表示该patch旋转45°。
需要说明的是,patch的旋转可以是顺时针旋转,也可以是逆时针旋转。
坐标轴交换信息可以表示为坐标轴交换标识,比如坐标轴交换标识为false时,表示patch的切线坐标轴和patch的双切线坐标轴不交换;比如坐标轴交换标识为ture时,patch的切线坐标轴和patch的双切线坐标轴交换。例如,假设U轴索引为0,V轴索引为1,缺省情况下,patch的切线坐标轴的索引为0,说明patch的切线坐标轴为U轴;patch的双切线坐标轴的索引为1,说明patch的双切线坐标轴为V轴。如果坐标轴交换标识为false,则不交换patch的切线坐标轴的索引和patch的双切线坐标轴的索引;如果坐标轴交换标识为ture,则交换patch的切线坐标轴的索引和patch的双切线坐标轴的索引,即patch的切线坐标轴的索引更新为1,patch的双切线坐标轴的索引更新为0。
镜像变换信息可以表示为镜像变换索引,比如镜像变换索引为0时,表示将U轴变换为-U轴;比如镜像变换索引为1时,表示将V轴变换为-V轴;比如镜像变换索引为2时,表示将V轴变换为-V轴,且将U轴变换为-U轴。
参见图6,图6为本申请实施例提供的一种点云的编码方法的流程示意图。如图6所示,该方法包括:
S601、获取待编码patch的边信息。
S602、若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流;该边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引。
其中,子组的首帧点云是指该子组中的第0帧点云。
S603、若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,该边信息包括三维信息和匹配patch索引。
其中,子组的非首帧点云是指该子组中第i帧点云,i=1,2,…,N-1,N为该子组中点云的帧数。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中首帧点云中的patch,且该待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流,待编码patch的匹配patch索引为非缺省值,全局匹配patch索引为第一值。
其中,待编码patch的匹配patch索引为非缺省值,全局匹配patch标识为第一值。
可选地,可以采用差分编码的方式将待编码patch的二维信息和三维信息编入码流,采用定长编码的方式将待编码patch的旋转变换信息、全局匹配patch标识和匹配patch索引编入码流。
若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中非首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流,待编码patch的匹配patch索引为非缺省值,全局匹配patch索引为第一值。
其中,待编码patch的匹配patch索引为非缺省值,全局匹配patch标识为第一值。
可选地,可采用差分编码的方式将待编码patch的三维信息编入码流。具体可参见上述相关内容描述,在此不再叙述。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入码流。法向轴坐标信息例如normalAxis,即待编码patch的法向轴索引。
其中,待编码patch的匹配patch索引为缺省值,全局匹配patch标识为第一值。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流。
其中,待编码patch的匹配patch索引为非缺省值,全局匹配patch标识为第二值。
可选地,可以采用差分编码的方式将待编码patch的二维信息和三维信息编入码流。
若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,待编码patch的边信息还包括二维信息,将待编码patch的边信息编入码流。
其中,待编码patch的匹配patch索引为非缺省值,全局匹配patch标识为第二值。
可选地,可以采用差分编码的方式将待编码patch的二维信和三维信息编入码流。
在一个可能的实施例中,若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入码流。待编码patch的匹配patch索引为缺省值,全局匹配patch标识为第二值;
若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,包括:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没具有与之相匹配的patch,待编码patch的边信息还包括二维信息、法向坐标轴信息和旋转变换信息,将待编码patch的边信息编入码流。
其中,待编码patch的匹配patch索引为缺省值,全局匹配patch标识为第二值。
需要说明的是,采用差分编码的方式将二维信息编入码流具体是将待编码patch的u0与其参考patch的u0之间的差值,该待编码patch的v0与其参考patch的v0之间的差值,该待编码patch的sizeU0与其参考patch的sizeU0之间的差值和该待编码patch的sizeV0与其参考patch的sizeV0之间的差值编入码流;同理,采用差分编码的方式将三维信息编入码流具体是将该待编码patch的u0与其参考patch的u0之间的差值,该待编码patch的v0与其参考patch的v0之间的差值,该待编码patch的sizeU0与其参考patch的sizeU0之间的差值和该待编码patch的sizeV0与其参考patch的sizeV0之间的差值编入码流。采用差分编码方式可进一步达到减少码流比特开销的目的。
在一个可能的实施例中,若子组中点云的帧数大于1,则将该子组中首帧点云中的待编码patch的全局匹配patch标识编入码流;若子组中点云的帧数等于1,则不将待编码patch的全局匹配patch标识编入码流。
在另一个可能的实施例中,若子组中点云的帧数大于1,则将该子组中首帧点云中的待编码patch的旋转变换信息编入码流;若子组中点云的帧数等于1,且该待编码patch为匹配patch,则不将该待编码patch的旋转变换信息编入码流;若子组中点云的帧数等于1,且该待编码patch为非匹配patch,则将该待编码patch的旋转变换信息编入码流。
在一种可能的实施例中,若待编码patch为匹配patch,则将待编码patch的匹配patch索引编入码流;若待编码patch为非匹配patch,则不将待编码patch的匹配patch索引编入码流。
在一种可能的实施例中,对于子组内全局匹配patch的部分边信息单独进行编码,该部分边信息指的是全局匹配patch所共有的且具有相同值的边信息。该部分边信息指的是二维信息、法向坐标轴信息和旋转变换信息中的部分或全部。在对子组内所有帧的patch的边信息进行编码时,如果子组内一帧点云中的一个patch为全局匹配patch,该patch的部分边信息(即二维信息、法向坐标轴信息和旋转变换信息中的部分或全部)就不需要进行编码。该实施例也达到了提高编码效率的目的,同时减少了码流的比特开销。
可以看出,在本申请实施例的方案中,对于全局匹配patch,由于全局匹配patch的部分边信息相同,因此不需对子组内非首帧点云中全局匹配patch的部分边信息编入码流。采用本申请实施例摒弃了子组间的用来约束匹配patch的旋转变换信息一致的匹配关系,使得每个子组的打包更加灵活,使得产生的深度图和纹理图尺寸较小。由于全局匹配patch的部分边信息只进行一次编码,从而达到了提高编码效率的目的,同时减少了码流的比特开销。
参见图7,图7为本申请实施例提供的一种点云解码方法的流程示意图。如图7所示,该方法包括:
S701、从码流中解析待解码patch的边信息。
S702a、若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,则根据待解码patch的匹配patch索引获得待解码patch的法向坐标轴信息;
S702b、若边信息包括三维信息和匹配patch索引,则根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息。
在一个可能的实施例中,若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的法向坐标轴信息,包括:若待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息。
具体地,将匹配patch索引所指示的参考patch的法向坐标轴信息作为待解码patch的法向坐标轴信息。例如patch[k].normalAxis=reframe.patch[refPatchId].normalAxis。refPatchId=patch[k].matchedPatchIndex。其中patch[k]为待解码patch,reframe为待解码patch所属点云的参考帧,patch[k].matchedPatchIndex为待解码patch的匹配patch索引,refPatchId为参考patch的索引。
可选地,可以采用差分解码的方式从码流中解析待解码patch的二维信息和三维信息。
若边信息包括包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:若待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识。具体地,将匹配patch索引所指示的参考patch的全局匹配patch标识作为待解码patch的全局匹配patch标识。例如patch[k].globalPatchFlag=reframe.patch[refPatchId].globalPatchFlag。globalPatchFlag标识全局匹配patch标识。若待解码patch的全局匹配patch标识为第一值,则根据匹配patch索引所指示的参考patch的二维信息、法向坐标轴信息和旋转变换信息分别确定待解码patch的二维信息、法向坐标轴信息和旋转变换信息。具体地,将匹配patch索引所指示的参考patch的二维信息、法向坐标轴信息和旋转变换信息分别作为待解码patch的二维信息、法向坐标轴信息和旋转变换信息。例如:
patch[k].u0=reframe.patch[refPatchId].u0,
patch[k].v0=reframe.patch[refPatchId].v0,
patch[k].sizeU0=reframe.patch[refPatchId].sizeU0,
patch[k].sizeV0=reframe.patch[refPatchId].sizeV0,
patch[k].normalAxis=reframe.patch[refPatchId].normalAxis,
patch[k].orientationIndex=reframe.patch[refPatchId].orientationIndex。
其中,u0,v0,sizeU0和sizeV0统称为二维信息,normalAxis表示法向坐标轴信息,orientationIndex表示旋转变换信息。
可选地,采用差分解码的方式从码流中解析待解码patch的三维信息。
在一个可能的实施例中,若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的法向坐标轴信息,包括:若待解码patch的匹配patch索引为缺省值,则还从码流中解析待解码patch的法向坐标轴信息。
在一个可能的实施例中,若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的法向坐标轴信息,包括:若待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息。具体地,将匹配patch索引所指示的参考patch的法向坐标轴信息作为待解码patch的法向坐标轴信息。例如:
patch[k].normalAxis=reframe.patch[refPatchId].normalAxis。
refPatchId=patch[k].matchedPatchIndex。
可选地,可以采用差分解码的方式从码流中解析待解码patch的二维信息和三维信息。
若边信息包括包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:若待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识。具体地,将匹配patch索引所指示的参考patch的全局匹配patch标识作为待解码patch的全局匹配patch标识。例如patch[k].globalPatchFlag=reframe.patch[refPatchId].globalPatchFlag。globalPatchFlag标识全局匹配patch标识。若待解码patch的全局匹配patch标识为第二值,则还从码流中解析待解码patch的二维信息,并根据匹配patch索引所指示的参考patch的法向坐标轴信息和旋转变换信息分别确定待解码patch的法向坐标轴信息和旋转变换信息。具体地,将匹配patch索引所指示的参考patch的法向坐标轴信息和旋转变换信息分别作为待解码patch的法向坐标轴信息和旋转变换信息。例如:
patch[k].normalAxis=reframe.patch[refPatchId].normalAxis,
patch[k].orientationIndex=reframe.patch[refPatchId].orientationIndex。
可选地,可采用差分解码的方式从码流中解析待解码patch的二维信息和三维信息。
在一个可能的实施例中,若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的法向坐标轴信息,包括:若待解码patch的匹配patch索引为缺省值,则还从码流中解析待解码patch的法向坐标轴信息。
若边信息包括包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:若待解码patch的匹配patch索引为缺省值,则从码流中解析二维信息、法向坐标轴信息和旋转变换信息,并确定待解码patch的全局匹配patch标识为第二值。将待解码patch的全局匹配patch标识确定为第二值的目的是为了在对以待解码patch为参考patch的patch时,可直接将该patch的全局匹配patch标识确定为待解码patch的全局匹配patch标识,从而根据全局匹配patch标识进行解码。
需要指出的是,在采用差分解码的方式从码流中解析待解码patch的二维信息具体是从码流中解析待解码patch的u0与其参考patch的u0之间的差值,该待解码patch的v0与其参考patch的v0之间的差值,该待解码patch的sizeU0与其参考patch的sizeU0之间的差值和该待解码patch的sizeV0与其参考patch的sizeV0之间的差值;然后再根据待解码patch的u0与其参考patch的u0之间的差值和参考patch的u0获取待解码patch的u0,根据待解码patch的v0与其参考patch的v0之间的差值和参考patch的v0获取待解码patch的v0,根据待解码patch的sizeU0与其参考patch的sizeU0之间的差值和参考patch的sizeU0获取待解码patch的sizeU0,根据待解码patch的sizeV0与其参考patch的sizeV0之间的差值和参考patch的sizeV0获取待解码patch的sizeV0。同理,采用差分解码的方式从码流中解析待解码patch的三维信息具体是从码流中解析待解码patch的u1与其参考patch的u1之间的差值,该待解码patch的v1与其参考patch的v1之间的差值和该待解码patch的d1与其参考patch的d1之间的差值;然后再根据待解码patch的u1与其参考patch的u1之间的差值和参考patch的u1获取待解码patch的u1,根据待解码patch的v1与其参考patch的v1之间的差值和参考patch的v1获取待解码patch的v1,根据待解码patch的d1与其参考patch的d1之间的差值和参考patch的d1获取待解码patch的d1。
在一种可能的实施例中,通过是否从码流中解析待解码patch的匹配patch索引来确定该待解码patch是否为匹配patch。若从码流中解析得到待解码patch的匹配patch索引,则确定待解码patch为匹配patch,若从码流中未解析得到待解码patch的匹配patch索引,则确定待解码patch为非匹配patch。
在一种可能的实施例中,对于子组内全局匹配patch的部分边信息单独进行解码,该部分边信息指的是全局匹配patch所共有的且具有相同值的边信息。该部分边信息指的是二维信息、法向坐标轴信息和旋转变换信息中的部分或全部。在对子组内所有帧的patch的边信息进行解码时,如果子组内一帧点云中的一个patch为全局匹配patch,该patch的部分边信息(即二维信息、法向坐标轴信息和旋转变换信息中的部分或全部)就不需要进行解码。该实施例也达到了提高解码效率的目的。
S703、根据待解码patch的二维信息、三维信息、法向坐标轴信息和旋转变换信息重构待解码patch。
可以看出,在本申请实施例的方案中,从码流中解析子组首帧点云中的全局匹配patch的边信息;由于全局匹配patch的部分边信息相同,对于非首帧点中的全局匹配patch的部分边信息可直接根据首帧点云中的全局匹配patch的边信息推导得到,采用该实施例提高了解码效率。
在一个具体的实施例中,如图8所示,第I个子组的第0帧点云的参考帧为第I-1个子组中的最后一帧点云。第I个子组包括3帧点云,分别为第0帧点云、第1帧点云和第2帧点云;每帧点云包括9个patch。其中,在第I个子组中的第0帧点云的参考帧中,包括分别与第I个子组中第0帧点云中的第0,1,2,3,4,5个patch相匹配的patch,和与第I个子组中第0帧点云的第6,7,8个patch均不相匹配的patch。第I个子组中的第0帧点云的第0,1,2,3,4,5个patch均为匹配patch;第6,7,8个patch均为非匹配patch;相应地,第I个子组中第0帧点云中的第0,1,2,3,4,5个patch的匹配patch索引分别为1,0,3,2,4,5。
第I个子组中的第1帧点云的参考帧为第I个子组中的第0帧点云。在第I个子组中的第1帧点云的参考帧中,包括分别与第I个子组中的第1帧点云中的第0,1,2,3,4,5,6,7个patch相匹配的patch,和与第I个子组中的第1帧点云中的第8个patch均不相匹配的patch。第I个子组中的第1帧点云的第0,1,2,3,4,5,6,7个patch均为匹配patch,第8个patch为非匹配patch。相应地,第I个子组中的第1帧点云中的第0,1,2,3,4,5,6,7个patch的匹配patch索引分别为0,2,1,4,3,5,6,7。
第I个子组中的第2帧点云的参考帧为第I个子组中的第1帧点云。在第I个子组中的第2帧点云的参考帧中,包括分别与第I个子组中的第1帧点云中的第0,1,2,3,4,5个patch相匹配的patch,和与第I个子组中的第2帧点云中的第6,7,8个patch均不相匹配的patch。第I个子组中的第2帧点云的第0,1,2,3,4,5个patch均为匹配patch,第6,7,8个patch为非匹配patch。相应地,第I个子组中的第2帧点云中的第0,1,2,3,4,5,个patch的匹配patch索引分别为2,0,1,4,3,6。如图8所示,灰色方框表示匹配patch,白色方框表示非匹配patch。
第I个子组中的第0帧点云的第0,1,2,3,4,6个patch、第1帧点云中的第0,1,2,3,4,6个patch和第2帧点云中第0,1,2,3,4,5个patch均为全局匹配patch;第I个子组中的第0帧点云的第5,7,8个patch、第1帧点云中的第5,7,8个patch和第2帧点云中第6,7,8个patch均为非全局匹配patch。
在编码时,对于第I个子组中第0帧点云:获取该第0帧点云中的第0,1,2,3,4,5个patch中每个patch的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,并将该第0,1,2,3,4,5个patch中每个patch的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引编入码流。获取该第0帧点云中的第6,7,8个patch中每个patch的二维信息、三维信息、法向坐标轴信息、旋转变换信息和全局匹配patch标识,并将第6,7,8个patch中每个patch的二维信息、三维信息、法向坐标轴信息、旋转变换信息、全局匹配patch标识和匹配patch索引编入码流。
对于第I个子组中第1帧点云:第1帧点云中第0,1,2,3,4,6个patch均为全局匹配patch,获取第1帧点云中第0,1,2,3,4,6个patch中每个patch的三维信息和匹配patch索引,并将第0,1,2,3,4,6个patch中每个patch的三维信息和匹配patch索引编入码流。可选地,采用差分编码的方式将第0,1,2,3,4,6个patch中每个patch的三维信息与其参考patch的三维信息的差值编入码流。第1帧点云中的第5,7个patch均为匹配patch且为非全局匹配patch,获取第1帧点云中的第5,7个patch中每个patch的二维信息和三维信息,并将第5,7个patch中每个patch的二维信息和三维信息编入码流。第1帧点云中第8个patch为非匹配patch,获取第1帧点云中第8个patch的二维信息、三维信息、法向坐标轴信息、旋转变换信息和匹配patch索引,并将第1帧点云中第8个patch的二维信息、三维信息、法向坐标轴信息、旋转变换信息和匹配patch索引编入码流。
对于第I个子组中第2帧点云:第2帧点云中第0,1,2,3,4,5个patch均为全局匹配patch,获取第2帧点云中第0,1,2,3,4,5个patch中每个patch的三维信息和匹配patch索引,并将第0,1,2,3,4,5个patch中每个patch的三维信息和匹配patch索引编入码流。第2帧点云中第6,7,8个patch均为非匹配patch,获取第2帧点云中第6,7,8个patch中每个patch的二维信息、三维信息、法向坐标轴信息、旋转变换信息和匹配patch索引,并将第2帧点云中第6,7,8个patch中每个patch的二维信息、三维信息、法向坐标轴信息、旋转变换信息和匹配patch索引编入码流。
解码时,对于第I个子组中第0帧点云:从码流中解析第0帧点云中每个patch的匹配patch索引,二维信息、三维信息、旋转变换信息和全局匹配patch标识;根据每个patch的匹配patch索引确定第0,1,2,3,4,5个patch均为匹配patch,确定第6,7,8个patach均为非匹配patch,可根据第0,1,2,3,4,5个patch中每个patch的参考patch的法向坐标轴信息确定第0,1,2,3,4,5个patch中每个patch的法向坐标轴信息;并从码流中解析第6,7,8个patch中每个patch的法向坐标轴信息。
对于第I个子组中第1帧点云:从码流中解析第1帧点云中每个patch的三维信息和匹配patch索引;根据每个patch的匹配patch索引确定第1帧点云中第0,1,2,3,4,5,6,7个patch均为匹配patch,确定第8个patch为非匹配patch。根据第1帧点云中第0,1,2,3,4,5,6,7个patch每个patch的参考patch的全局匹配patch标识确定该每个patch的全局匹配patch标识。根据第0,1,2,3,4,5,6,7个patch每个patch的全局匹配patch标识确定第0,1,2,3,4,6个patch均为全局匹配patch,确定第5,7个patch为非全局匹配patch。根据第0,1,2,3,4,6个patch中的每个patch的参考patch的二维信息、法向坐标轴信息和旋转变换信息分别确定该每个patch的二维信息、法向坐标轴信息和旋转变换信息;从码流中解析第5,7个patch中每个patch的二维信息,并根据第5,7个patch中每个patch的参考patch的法向坐标轴信息和旋转变换信息分别确定该每个patch的法向坐标轴信息和旋转变换信息。从码流中解析第8个patch的二维信息、法向坐标轴信息和旋转变换信息,并确定第8个patch的全局匹配patch标识为第二值(比如0或false),该第二值用于指示第8个patch为非全局匹配patch。
对于第I个子组中第2帧点云:从码流中解析第2帧点云中每个patch的三维信息和匹配patch索引;根据每个patch的匹配patch索引确定第2帧点云中第0,1,2,3,4,5个patch均为匹配patch,确定第6,7,8个patch均为非匹配patch。根据第2帧点云中第0,1,2,3,4,5个patch每个patch的参考patch的全局匹配patch标识确定该每个patch的全局匹配patch标识。根据第0,1,2,3,4,5个patch中的每个patch的全局匹配patch标识分别确定第0,1,2,3,4,5个patch均为全局匹配patch。根据第0,1,2,3,4,5个patch中的每个patch的参考patch的二维信息、法向坐标轴信息和旋转变换信息确定该每个patch的二维信息、法向坐标轴信息和旋转变换信息。从码流中解析第6,7,8个patch中每个patch的二维信息、法向坐标轴信息和旋转变换信息,并确定第6,7,8个patch中每个patch的全局匹配patch标识为第二值(比如0或false),该第二值用于指示该patch为非全局匹配patch。
在一个可能的实施例中,本申请实施例还提供一种点云编码方法,包括:获取待编码patch的边信息;将指示信息编入码流,该指示信息用于指示是否按照目标编码方法编码待编码patch的边信息,该目标编码方法参见如图6所示实施例的部分或者全部内容,在此不再叙述。
在一个可能的实施例中,本申请实施例还提供一种点云解码方法,包括:解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法解码边信息;当指示信息用于指示按照目标解码方法解码边信息时,按照目标解码方法获得待解码patch的边信息;该目标解码方法参见图7所示实施例的部分或者全部内容,在此不再叙述;根据待解码patch的边信息重构待解码patch。
在一个可能的实施例中,本申请实施例还提供一种点云编码方法,包括:获取待编码patch的边信息;将指示信息编入码流,该指示信息用于指示是否按照目标编码方法编码待编码patch的边信息,该目标编码方法参见如图6所示实施例的部分或者全部内容,在此不再叙述。
在一个可能的实施例中,本申请实施例还提供一种点云解码方法,包括:解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法解码边信息;当指示信息用于指示按照目标解码方法解码边信息时,按照目标解码方法获得待解码patch的边信息;该目标解码方法参见图7所示实施例的部分或者全部内容,在此不再叙述;根据待解码patch的边信息重构待解码patch。
参见图9,图9为本申请实施例提供的一种点云的编码装置的结构示意图。如图9所示,该编码装置900可以包括:
点云块(patch)信息获取模块901,用于获取待编码patch的边信息;
辅助信息编码模块902,用于若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流;该边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引;全局匹配patch标识用于指示待编码patch是否为子组内的全局匹配patch;
辅助信息编码模块902,还用于若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流,边信息包括三维信息和匹配patch索引。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流。
在若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中非首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流。
其中,待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch。待编码patch的全局匹配patch标识为第一值,以指示待编码patch为子组内的全局匹配patch。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入码流;其中,匹配patch索引用于指示待编码patch没有与之相匹配的patch。待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch;待编码patch的全局匹配patch标识为第一值,以指示待编码patch为子组内的全局匹配patch。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,将待编码patch的边信息编入码流;
在若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch具有与之相匹配的patch,待编码patch的边信息还包括二维信息,将待编码patch的边信息编入码流。
其中,待编码patch的匹配patch索引为非缺省值,以指示与待编码patch相匹配的参考patch;待编码patch的全局匹配patch标识为第二值,以指示待编码patch不是子组内的全局匹配patch。
在一个可能的实施例中,在若待编码patch为子组中首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没有与之相匹配的patch,待编码patch的边信息还包括法向坐标轴信息,将待编码patch的边信息编入码流;
在若待编码patch为子组中非首帧点云中的patch,则将待编码patch的边信息编入码流的方面,辅助信息编码模块902具体用于:若待编码patch为子组中非首帧点云中的patch,且待编码patch为非全局匹配patch且待编码patch没具有与之相匹配的patch,待编码patch的边信息还包括二维信息、法向坐标轴信息和旋转变换信息,将待编码patch的边信息编入码流。
其中,待编码patch的匹配patch索引为缺省值,以指示待编码patch没有与之相匹配的patch;待编码patch的全局匹配patch标识为第二值,以指示待编码patch不是子组内的全局匹配patch。
需要说明的是,patch信息获取模块901用于执行图6所示实施例的步骤S601的相关内容,辅助信息编码模块902用于执行图6所示实施例的步骤S602和S603的相关内容。作为一个示例,patch信息获取模块901可以对应于图2中的patch信息生成模块101和打包模块102的组合,辅助信息编码模块902可以对应于图2中的辅助信息编码模块108,换言之,patch信息获取模块901的功能可以由图2中的patch信息生成模块101和打包模块102实现,辅助信息生成模块902的功能可以由图2中的辅助信息编码模块108来实现。在一个示例中,patch信息生成模块101用于获取待编码patch的三维信息、法向坐标轴信息和全局匹配patch标识和二维信息中的sizeU0和sizeV0等,打包模块102用于获取待编码patch的旋转变换信息、匹配patch索引和二维信息中的u0和v0。当然本申请不限于此。其他细节可以参考现有技术或上文中对图2所示的编码器的原理的解释,此处不再赘述。
参见图10,图10为本申请实施例提供的一种点云的解码装置的结构示意图。如图10所示,该解码装置1000包括:
辅助信息解码模块1001,用于从码流中解析待解码patch的边信息;
若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,则根据匹配patch索引获得待解码patch的法向坐标轴信息;
若边信息包括三维信息和匹配patch索引,则根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息;
重构模块1002,用于根据待解码patch的二维信息、三维信息、法向坐标轴信息和旋转变换信息重构待解码patch;其中,全局匹配patch标识用于指示待解码patch是否为全局匹配patch。
在一个可能的实施例中,在若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息的方面,辅助信息解码模块1001具体用于:
若确定待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息。
在若边信息包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,辅助信息解码模块1001具体用于:若确定待解码patch的匹配patch索引为非缺省值,则根据参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识;若待解码patch的全局匹配patch标识为第一值,则根据参考patch的二维信息、法向坐标轴信息和旋转变换信息确定待解码patch的二维信息、法向坐标轴信息和旋转变换信息。
在一个可能的实施例中,在若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息的方面,辅助信息解码模块1001具体用于:
若确定待解码patch的匹配patch索引为缺省值,则还从码流中解析待解码patch的向坐标轴信息。
在一个可能的实施例中,在若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息的方面,辅助信息解码模块1001具体用于:
若确定待解码patch的匹配patch索引为非缺省值,则根据匹配patch索引所指示的参考patch的法向坐标轴信息确定待解码patch的法向坐标轴信息;
在若边信息包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,辅助信息解码模块1001具体用于:
若确定待解码patch的匹配patch索引为非缺省值;则根据匹配patch索引所指示的参考patch的全局匹配patch标识确定待解码patch的全局匹配patch标识;若确定待解码patch的全局匹配patch标识为第二值;则还从码流中解析待解码patch的二维信息;并且根据匹配patch索引所指示的参考patch的法向坐标轴信息和旋转变换信息分别确定待解码patch的法向坐标轴信息和旋转变换信息。
在一个可能的实施例中,在若边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,根据匹配patch索引获得待解码patch的法向坐标轴信息的方面,辅助信息解码模块1001具体用于:
若确定待解码patch的匹配patch索引为缺省值,则还从码流中解析待解码patch的法向坐标轴信息;
在若边信息包括三维信息和匹配patch索引,根据待解码patch的匹配patch索引获得待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,辅助信息解码模块1001具体用于:若确定待解码patch的匹配patch索引为缺省值,则还从码流中解析二维信息、法向坐标轴信息和旋转变换信息,并确定待解码patch的全局匹配patch标识为第二值。
需要说明的是,辅助信息解码模块1001用于执行图7所示实施例的步骤S701和S702的相关内容,重构模块1002用于执行图7所示实施例的步骤S703的相关内容。作为一个示例,辅助信息解码模块1001对应于图4中的辅助信息解码模块204,重构模块1002对应于图4中的点云的几何信息重构模块205,换言之,辅助信息解码模块1001的功能可以由图4中的辅助信息解码模块204来实现,重构模块1002的功能可以由图4中的点云的几何信息重构模块205来实现。当然本申请不限于此。其他细节可以参考现有技术或上文中对图4所示的解码器的原理的解释,此处不再赘述。
参见图11,图11为本申请实施例提供的一种点云的编码装置的结构示意图。如11所示,该编码装置1100包括:
patch信息获取模块1101,用于获取所述待编码patch的边信息;
辅助信息编码模块1102,用于将指示信息编入码流,该指示信息用于指示是否按照目标编码方法编码边信息;目标编码方法包括如图6所示实施例的点云编码方法的部分或全部。
需要说明的是,作为一个示例,图11中的patch信息获取模块1101对应于图2中的patch信息生成模块101和打包模块102的组合,图11中的辅助信息编码模块1102对应于图2中的辅助信息编码模块108,换言之,patch信息获取模块1101的功能由图2中的patch信息生成模块101和打包模块102来实现,辅助信息编码模块1102的功能可以由图2中的辅助信息编码模块108来实现。当然本申请不限于此。其他细节可以参考现有技术或上文中对图2所示的编码器的原理的解释,此处不再赘述。
参见图12,图12为本申请实施例提供的另一种点云的解码装置的结构示意图。如12所示,该解码装置1200包括:
辅助信息解码模块1201,用于解析码流,以得到指示信息,该指示信息用于指示是否按照目标解码方法解码边信息;当指示信息用于指示按照目标解码方法解码边信息时,按照目标解码方法获得所述待解码patch的边信息;目标解码方法包括如图7所示实施例的点云解码方法的部分或全部;
重构模块1202,用于根据所述待解码patch的边信息重构所述待解码patch。
需要说明的是,作为一个示例,图12中的辅助信息解码模块1201对应于图4中的辅助信息解码模块204,图12中的重构模块1202对应于图4中的点云的几何信息重构模块205,换言之,辅助信息解码模块1201的功能可以由图4中的辅助信息解码模块204来实现,重构模块1202的功能可以由图4中的点云的几何信息重构模块205来实现。当然本申请不限于此。其他细节可以参考现有技术或上文中对图4所示的解码器的原理的解释,此处不再赘述。
图13为用于本申请实施例的译码装置1300的一种实现方式的示意性框图。其中,获取装置1300可以包括处理器1301、存储器1302和总线***1303。其中,处理器1301和存储器1302通过总线***1303相连,该存储器1302用于存储指令,该处理器1301用于执行该存储器1302存储的指令,以执行本申请描述的各种点云编码或解码方法,尤其是基于当前图像块的块尺寸对当前图像块进行滤波的方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1301可以是中央处理单元(central processingunit,CPU),该处理器1301还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1302可以包括ROM设备或者RAM设备。任何其他适宜类型的存储设备也可以用作存储器1302。存储器1302可以包括由处理器1301使用总线1303访问的代码和数据13021。存储器1302可以进一步包括操作***13023和应用程序13022,该应用程序13022包括允许处理器1301执行本申请描述的点云编码或解码方法(尤其是本申请描述的点云的编解码方法)的至少一个程序。例如,应用程序13022可以包括应用1至N,其进一步包括执行在本申请描述的点云编码或解码方法的点云编码或解码应用(简称点云译码应用)。
该总线***1303除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***1303。
可选的,编码装置1300还可以包括一个或多个输出设备,诸如显示器1304。在一个示例中,显示器1304可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1304可以经由总线1303连接到处理器1301。
需要指出的是,译码装置1300可以执行本申请中的点云的编码方法,也可执行本申请中的点云的解码方法。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、DVD和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,编码器100及解码器200中的各种说明性逻辑框、单元、模块可以理解为对应的电路器件或逻辑元件。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (24)

1.一种点云编码方法,其特征在于,包括:
获取待编码点云块patch的边信息;
若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流;所述边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引;所述全局匹配patch标识用于指示所述待编码patch是否为所述子组内的全局匹配patch;
若所述待编码patch为所述子组中非首帧点云中的patch,则将所述待编码patch的边信息编入所述码流,所述边信息包括三维信息和匹配patch索引。
2.根据权利要求1所述的方法,其特征在于,所述若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流,包括:
若所述待编码patch为所述子组中首帧点云中的patch,且所述待编码patch为全局匹配patch且所述待编码patch具有与之相匹配的参考patch,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch,所述全局匹配patch标识为第一值,以指示所述待编码patch为所述子组内的全局匹配patch;
所述若所述待编码patch为所述子组中非首帧点云中的patch,则将所述待编码patch的边信息编入所述码流,包括:
若所述待编码patch为所述子组中非首帧点云中的patch,且所述待编码patch为全局匹配patch且所述待编码patch具有与之相匹配的参考patch,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch。
3.根据权利要求1所述的方法,其特征在于,所述若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流,包括:
若所述待编码patch为所述子组中首帧点云中的patch,且所述待编码patch为全局匹配patch且所述待编码patch没有与之相匹配的参考patch,所述待编码patch的边信息还包括法向坐标轴信息,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为缺省值,以指示所述待编码patch没有与之相匹配的参考patch,所述全局匹配patch标识为第一值,以指示所述待编码patch为所述子组内的全局匹配patch。
4.根据权利要求1所述的方法,其特征在于,所述若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流,包括:
若所述待编码patch为所述子组中首帧点云中的patch,且所述待编码patch为非全局匹配patch且所述待编码patch具有与之相匹配的参考patch,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch,所述全局匹配patch标识为第二值,以指示所述待编码patch不是所述子组内的全局匹配patch;
所述若所述待编码patch为所述子组中非首帧点云中的patch,则将所述待编码patch的边信息编入所述码流,包括:
若所述待编码patch为所述子组中非首帧点云中的patch,且所述待编码patch为非全局匹配patch且所述待编码patch具有与之相匹配的参考patch,所述待编码patch的边信息还包括二维信息,将所述待编码patch的边信息编入所述码流;其中,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch。
5.一种点云解码方法,其特征在于,包括:
从码流中解析待解码点云块patch的边信息;
若所述边信息包括所述待解码patch的二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,则根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息;
若所述边信息包括所述待解码patch的三维信息和匹配patch索引,则根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息;
根据所述待解码patch的二维信息、三维信息、法向坐标轴信息和旋转变换信息重构所述待解码patch;
其中,所述全局匹配patch标识用于指示待解码patch是否为子组内的全局匹配patch。
6.根据权利要求5所述的方法,其特征在于,所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息,包括:
若确定所述匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的法向坐标轴信息确定所述待解码patch的法向坐标轴信息;
所述根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:
若确定所述匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的全局匹配patch标识确定所述待解码patch的全局匹配patch标识;若所述待解码patch的全局匹配patch标识为第一值,则根据所述参考patch的二维信息、法向坐标轴信息和旋转变换信息分别确定所述待解码patch的二维信息、法向坐标轴信息和旋转变换信息;
其中,所述匹配patch索引为非缺省值,以指示与所述待解码patch相匹配的参考patch,所述全局匹配patch标识为第一值,以指示所述待解码patch为所述子组内的全局匹配patch。
7.根据权利要求5所述的方法,其特征在于,所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息,包括:
若确定所述匹配patch索引为缺省值,则还从所述码流中解析所述待解码patch的法向坐标轴信息;
其中,所述匹配patch索引为缺省值,以指示所述待解码patch没有与之相匹配的参考patch。
8.根据权利要求5所述的方法,其特征在于,所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息,包括:
若确定所述匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的法向坐标轴信息确定所述待解码patch的法向坐标轴信息;
所述根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:
若确定所述匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的全局匹配patch标识确定所述待解码patch的全局匹配patch标识;若所述待解码patch的全局匹配patch标识为第二值,则还从所述码流中解析所述待解码patch的二维信息,并根据所述参考patch的法向坐标轴信息和旋转变换信息分别确定所述待解码patch的法向坐标轴信息和旋转变换信息;
其中,所述匹配patch索引为非缺省值,以指示与所述待解码patch相匹配的参考patch,所述全局匹配patch标识为第二值,以指示所述待解码patch不是所述子组内的全局匹配patch。
9.根据权利要求5所述的方法,其特征在于,所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息,包括:
若确定所述匹配patch索引为缺省值,则还从所述码流中解析所述待解码patch的法向坐标轴信息;
所述根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息,包括:
若确定所述匹配patch索引为缺省值,则还从所述码流中解析所述待解码patch的二维信息、法向坐标轴信息和旋转变换信息,并确定所述待解码patch的全局匹配patch标识为第二值;
其中,所述匹配patch索引为缺省值,以指示所述待解码patch没有与之相匹配的参考patch,所述全局匹配patch标识为第二值,以指示所述待解码patch不是所述子组内的全局匹配patch。
10.一种点云编码方法,其特征在于,包括:
获取待编码patch的边信息;
将指示信息编入码流,所述指示信息用于指示是否按照目标编码方法编码所述待编码patch的边信息;所述目标编码方法包括如权利要求1-4任一项所述的点云编码方法。
11.一种点云解码方法,其特征在于,包括:
解析码流,以得到指示信息,所述指示信息用于指示是否按照目标解码方法解码边信息;当所述指示信息用于指示按照所述目标解码方法解码边信息时,按照所述目标解码方法获得所述待解码patch的边信息;所述目标解码方法包括如权利要求5-9任一项所述的点云解码方法;
根据所述待解码patch的边信息重构所述待解码patch。
12.一种点云的编码装置,其特征在于,包括:
patch信息获取模块,用于获取待编码patch的边信息;
辅助信息编码模块,用于若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流;所述边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引;所述全局匹配patch标识用于指示所述待编码patch是否为所述子组内的全局匹配patch;
所述辅助信息编码模块,还用于若所述待编码patch为所述子组中非首帧点云中的patch,则将所述待编码patch的边信息编入所述码流,所述边信息包括三维信息和匹配patch索引。
13.根据权利要求12所述的装置,其特征在于,在所述若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流的方面,所述辅助信息编码模块具体用于:
若所述待编码patch为所述子组中首帧点云中的patch,且所述待编码patch为全局匹配patch且所述待编码patch具有与之相匹配的patch,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch;所述全局匹配patch标识为第一值,以指示所述待编码patch为所述子组内的全局匹配patch;
在所述若所述待编码patch为所述子组中非首帧点云中的patch,则将所述待编码patch的边信息编入所述码流的方面,所述辅助信息编码模块具体用于:
若所述待编码patch为所述子组中非首帧点云中的patch,且所述待编码patch为全局匹配patch且所述待编码patch具有与之相匹配的patch,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch。
14.根据权利要求12所述的装置,其特征在于,在所述若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流的方面,所述辅助信息编码模块具体用于:
若所述待编码patch为所述子组中首帧点云中的patch,且所述待编码patch为全局匹配patch且所述待编码patch没有与之相匹配的patch,所述待编码patch的边信息还包括法向坐标轴信息,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为缺省值,以指示所述待编码patch没有与之相匹配的patch;所述全局匹配patch标识为第一值,以指示所述待编码patch为所述子组内的全局匹配patch。
15.根据权利要求12所述的装置,其特征在于,在所述若所述待编码patch为子组中首帧点云中的patch,则将所述待编码patch的边信息编入码流的方面,所述辅助信息编码模块具体用于:
若所述待编码patch为所述子组中首帧点云中的patch,且所述待编码patch为非全局匹配patch且所述待编码patch具有与之相匹配的patch,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch;所述全局匹配patch标识为第二值,以指示所述待编码patch不是所述子组内的全局匹配patch;
在所述若所述待编码patch为所述子组中非首帧点云中的patch,则将所述待编码patch的边信息编入所述码流的方面,所述辅助信息编码模块具体用于:
若所述待编码patch为所述子组中非首帧点云中的patch,且所述待编码patch为非全局匹配patch且所述待编码patch具有与之相匹配的patch,所述待编码patch的边信息还包括二维信息,将所述待编码patch的边信息编入所述码流,所述匹配patch索引为非缺省值,以指示与所述待编码patch相匹配的参考patch。
16.一种点云解码装置,其特征在于,包括:
辅助信息解码模块,用于从码流中解析待解码点云块patch的边信息;
所述辅助信息解码模块,还用于若所述边信息包括二维信息、三维信息、旋转变换信息、全局匹配patch标识和匹配patch索引,则根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息;若所述边信息包括三维信息和匹配patch索引,则根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息;
重构模块,用于根据所述待解码patch的二维信息、三维信息、法向坐标轴信息和旋转变换信息重构所述待解码patch;
其中,所述全局匹配patch标识用于指示待解码patch是否为子组内的全局匹配patch。
17.根据权利要求16所述的装置,其特征在于,在所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息的方面,所述辅助信息解码模块具体用于:
若确定所述匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的法向坐标轴信息获得所述待解码patch的法向坐标轴信息;
在所述根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,所述辅助信息解码模块具体用于:
若确定所述匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的全局匹配patch标识确定所述待解码patch的全局匹配patch标识;若所述待解码patch的全局匹配patch标识为第一值,则根据所述参考patch的二维信息、法向坐标轴信息和旋转变换信息分别确定所述待解码patch的二维信息、法向坐标轴信息和旋转变换信息;
其中,所述匹配patch索引为缺省值,以指示所述待解码patch的参考patch,所述全局匹配patch标识为第一值,以指示所述待解码patch为所述子组内的全局匹配patch。
18.根据权利要求16所述的装置,其特征在于,在所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息的方面,所述辅助信息解码模块具体用于:
若确定所述匹配patch索引为缺省值,则还从所述码流中解析所述待解码patch的法向坐标轴信息;
其中,所述匹配patch索引为缺省值,以指示所述待解码patch没有与之相匹配的patch,所述全局匹配patch标识为第一值,以指示所述待解码patch为所述子组内的全局匹配patch。
19.根据权利要求16所述的装置,其特征在于,在所述根据所述匹配patch索引获得所述待解码patch的法向坐标轴信息的方面,所述辅助信息解码模块具体用于:
若确定所述待解码patch的匹配patch索引为非缺省值,则根据所述匹配patch索引所指示的参考patch的法向坐标轴信息确定所述待解码patch的法向坐标轴信息;
在所述根据所述匹配patch索引获得所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,所述辅助信息解码模块具体用于:
若确定所述待解码patch的匹配patch索引为非缺省值;则根据所述匹配patch索引所指示的参考patch的全局匹配patch标识确定所述待解码patch的全局匹配patch标识;若确定所述待解码patch的全局匹配patch标识为第二值;则还从所述码流中解析所述待解码patch的二维信息;并且根据所述参考patch的法向坐标轴信息和旋转变换信息分别确定所述待解码patch的法向坐标轴信息和旋转变换信息;
其中,所述匹配patch索引为非缺省值,以指示所述待解码patch的参考patch,所述全局匹配patch标识为第二值,以指示所述待解码patch不是所述子组内的全局匹配patch。
20.根据权利要求16所述的装置,其特征在于,在所述根据所述匹配patch索引确定所述待解码patch的法向坐标轴信息的方面,所述辅助信息解码模块具体用于:
若确定所述匹配patch索引为缺省值,则还从所述码流中解析所述待解码patch的法向坐标轴信息;
在所述根据所述匹配patch索引确定所述待解码patch的全局匹配patch标识、二维信息、法向坐标轴信息和旋转变换信息的方面,所述辅助信息解码模块具体用于:
若确定所述匹配patch索引为缺省值,则还从所述码流中解析所述待解码patch的二维信息、法向坐标轴信息和旋转变换信息,并确定所述待解码patch的全局匹配patch标识为第二值;
其中,所述匹配patch索引为缺省值,以指示所述待解码patch没有与之相匹配的patch,所述全局匹配patch标识为第二值,以指示所述待解码patch不是所述子组内的全局匹配patch。
21.一种点云的编码装置,其特征在于,包括:
patch信息获取模块,用于获取待编码patch的边信息;
辅助信息编码模块,用于将指示信息编入码流,所述指示信息用于指示是否按照目标编码方法编码所述待编码patch的边信息;所述目标编码方法包括如权利要求1~4任一项所述的点云编码方法。
22.一种点云的解码装置,其特征在于,包括:
辅助信息解码模块,用于解析码流,以得到指示信息,所述指示信息用于指示是否按照目标解码方法解码边信息;当所述指示信息用于指示按照目标解码方法解码边信息时,按照所述目标解码方法获得所述待解码patch的边信息;所述目标解码方法包括如权利要求5~9任一项所述的点云解码方法;
重构模块,用于根据所述待解码patch的边信息重构所述待解码patch。
23.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求1至4和10任一项所述的点云编码方法。
24.一种计算机可读存储介质,其特征在于,包括程序代码,所述程序代码在计算机上运行时,使得所述计算机执行如权利要求5至9和11任一项所述的点云解码方法。
CN201910070741.XA 2019-01-23 2019-01-23 点云的编解码方法及装置 Active CN111479114B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910070741.XA CN111479114B (zh) 2019-01-23 2019-01-23 点云的编解码方法及装置
PCT/CN2020/071022 WO2020151496A1 (zh) 2019-01-23 2020-01-08 点云的编解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910070741.XA CN111479114B (zh) 2019-01-23 2019-01-23 点云的编解码方法及装置

Publications (2)

Publication Number Publication Date
CN111479114A CN111479114A (zh) 2020-07-31
CN111479114B true CN111479114B (zh) 2022-07-22

Family

ID=71736101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910070741.XA Active CN111479114B (zh) 2019-01-23 2019-01-23 点云的编解码方法及装置

Country Status (2)

Country Link
CN (1) CN111479114B (zh)
WO (1) WO2020151496A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866484B (zh) * 2019-04-30 2023-06-20 华为技术有限公司 点云编码方法、点云解码方法、装置及存储介质
CN114078191A (zh) * 2020-08-18 2022-02-22 腾讯科技(深圳)有限公司 一种点云媒体的数据处理方法、装置、设备及介质
WO2022141453A1 (zh) * 2020-12-31 2022-07-07 深圳市大疆创新科技有限公司 点云编解码方法、装置及***
EP4160535A1 (en) * 2021-09-30 2023-04-05 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
CN116781674A (zh) * 2022-03-08 2023-09-19 腾讯科技(深圳)有限公司 一种沉浸媒体的数据处理方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1926862A (zh) * 2004-02-23 2007-03-07 诺基亚公司 视频信息传输
WO2009089032A2 (en) * 2008-01-10 2009-07-16 Thomson Licensing Methods and apparatus for illumination compensation of intra-predicted video
CN105430406A (zh) * 2015-12-04 2016-03-23 中国矿业大学 一种分布式视频编码框架
CN106157371A (zh) * 2016-07-11 2016-11-23 南京理工大学 基于自适应周向扩张策略的散乱点云高效网格化方法
CN108053446A (zh) * 2017-12-11 2018-05-18 北京奇虎科技有限公司 基于点云的定位方法、装置及电子设备
CN109196559A (zh) * 2016-05-28 2019-01-11 微软技术许可有限责任公司 动态体素化点云的运动补偿压缩

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1719118A1 (en) * 2004-02-19 2006-11-08 Koninklijke Philips Electronics N.V. Decoding scheme for variable block length signals
US20150334417A1 (en) * 2012-12-18 2015-11-19 Friedrich-Alexander-Universität Erlangen-Nürnberg Coding a Sequence of Digital Images
US20170214943A1 (en) * 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms
US10832471B2 (en) * 2017-03-27 2020-11-10 Mitsubishi Electric Research Laboratories, Inc. Fast T-spline fitting system and method
CN107633539A (zh) * 2017-09-25 2018-01-26 潍坊学院 一种基于四边面片分割的三维点云模型数据压缩方法
CN108833927B (zh) * 2018-05-03 2019-08-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
CN108632607B (zh) * 2018-05-09 2019-06-21 北京大学深圳研究生院 一种基于多角度自适应帧内预测的点云属性压缩方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1926862A (zh) * 2004-02-23 2007-03-07 诺基亚公司 视频信息传输
WO2009089032A2 (en) * 2008-01-10 2009-07-16 Thomson Licensing Methods and apparatus for illumination compensation of intra-predicted video
CN105430406A (zh) * 2015-12-04 2016-03-23 中国矿业大学 一种分布式视频编码框架
WO2017092072A1 (zh) * 2015-12-04 2017-06-08 中国矿业大学 一种分布式视频编码框架
CN109196559A (zh) * 2016-05-28 2019-01-11 微软技术许可有限责任公司 动态体素化点云的运动补偿压缩
CN106157371A (zh) * 2016-07-11 2016-11-23 南京理工大学 基于自适应周向扩张策略的散乱点云高效网格化方法
CN108053446A (zh) * 2017-12-11 2018-05-18 北京奇虎科技有限公司 基于点云的定位方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Simulation of 3D cloud point from disparity map of stereo image;J Shankar,et al.;《 2015 International Conference on Advanced Computing and Communication Systems》;20151112;全文 *
基于坐标增量的点云数据精简压缩分析与实践;孙鹏飞.;《中国优秀硕士学位论文全文数据库(电子期刊)》;20150331;全文 *

Also Published As

Publication number Publication date
WO2020151496A1 (zh) 2020-07-30
CN111479114A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN111479114B (zh) 点云的编解码方法及装置
CN110662087B (zh) 点云编解码方法和编解码器
CN110971912B (zh) 点云编解码方法、编解码器、编解码装置和存储介质
CN110719497B (zh) 点云编解码方法和编解码器
US11961265B2 (en) Point cloud encoding and decoding method and apparatus
CN110944187B (zh) 点云编码方法和编码器
CN110971898B (zh) 点云编解码方法和编解码器
CN111435551B (zh) 点云滤波方法、装置及存储介质
US20220007037A1 (en) Point cloud encoding method and apparatus, point cloud decoding method and apparatus, and storage medium
CN111726615B (zh) 点云编解码方法及编解码器
WO2020015517A1 (en) Point cloud encoding method, point cloud decoding method, encoder and decoder
CN111866484B (zh) 点云编码方法、点云解码方法、装置及存储介质
WO2020187283A1 (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