KR20200039757A - 포인트 클라우드 압축 - Google Patents

포인트 클라우드 압축 Download PDF

Info

Publication number
KR20200039757A
KR20200039757A KR1020207007212A KR20207007212A KR20200039757A KR 20200039757 A KR20200039757 A KR 20200039757A KR 1020207007212 A KR1020207007212 A KR 1020207007212A KR 20207007212 A KR20207007212 A KR 20207007212A KR 20200039757 A KR20200039757 A KR 20200039757A
Authority
KR
South Korea
Prior art keywords
points
attribute
point
point cloud
values
Prior art date
Application number
KR1020207007212A
Other languages
English (en)
Other versions
KR102317576B1 (ko
Inventor
칼레드 마모우
파브리스 에이. 로비넷
Original Assignee
애플 인크.
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 애플 인크. filed Critical 애플 인크.
Publication of KR20200039757A publication Critical patent/KR20200039757A/ko
Application granted granted Critical
Publication of KR102317576B1 publication Critical patent/KR102317576B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • 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
    • 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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/186Methods 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 colour or a chrominance component
    • 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
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

시스템은 포인트 클라우드에 대한 속성 정보를 압축하도록 구성된 인코더 및/또는 포인트 클라우드에 대한 압축된 속성 정보를 압축해제하도록 구성된 디코더를 포함한다. 적어도 하나의 시작 포인트에 대한 속성 값들이 압축된 속성 정보 파일 내에 포함되고, 예측된 속성 값들을 정정하는 데 사용되는 속성 정정 값들이 압축된 속성 정보 파일 내에 포함된다. 속성 값들은 이웃 포인트들의 속성 값들 및 속성 값이 예측 중인 특정 포인트와 이웃 포인트들 사이의 거리들에 적어도 부분적으로 기초하여 예측된다. 예측된 속성 값들은 속성 정정 값들을 결정하기 위해 압축 이전의 포인트 클라우드의 속성 값들과 비교된다. 디코더는 인코더와 유사한 예측 프로세스를 따르고, 압축된 속성 정보 파일 내에 포함된 속성 정정 값들을 사용하여 예측된 값들을 정정한다.

Description

포인트 클라우드 압축
본 발명은 일반적으로 각각이 연관된 속성 정보를 갖는, 복수의 포인트들을 포함하는 포인트 클라우드들의 압축 및 압축해제에 관한 것이다.
라이다(LIDAR: light detection and ranging; 광 검출 및 거리 측정) 시스템들, 3-D 카메라들, 3-D 스캐너들 등과 같은 다양한 유형들의 센서들이 3차원 공간 내의 포인트들의 위치들, 예를 들어 X, Y 및 Z 평면들 내의 위치들을 나타내는 데이터를 캡처할 수 있다. 또한, 그러한 시스템들은 각자의 포인트들에 대한 공간 정보에 더하여, 색상 정보(예를 들어, RGB 값들), 강도 속성들, 반사율 속성들, 모션 관련 속성들, 양상 속성들, 또는 다양한 다른 속성들과 같은 속성 정보를 추가로 캡처할 수 있다. 일부 상황들에서, 포인트가 캡처되었을 때의 타임 스탬프와 같은 추가 속성들이 각자의 포인트들에 할당될 수 있다. 이러한 센서들에 의해 캡처된 포인트들은 각각 연관된 공간 정보 및 하나 이상의 연관된 속성들을 갖는, 포인트들의 세트를 포함하는 "포인트 클라우드(point cloud)"를 구성할 수 있다. 일부 상황들에서, 포인트 클라우드는 수천 개의 포인트들, 수십만 개의 포인트들, 수백만 개의 포인트들, 또는 심지어 더 많은 포인트들을 포함할 수 있다. 또한, 일부 상황들에서, 포인트 클라우드들은 하나 이상의 센서들에 의해 캡처되는 것과는 대조적으로, 예를 들어 소프트웨어에서 생성될 수 있다. 어느 경우든, 그러한 포인트 클라우드들은 다량의 데이터를 포함할 수 있고, 저장 및 송신에 많은 비용과 시간이 소요될 수 있다.
일부 실시예들에서, 시스템은 포인트 클라우드를 집합적으로 구성하는 포인트들을 캡처하도록 구성된 하나 이상의 센서들을 포함하며, 포인트들 각각은 각자의 포인트의 공간적 위치를 식별하는 공간 정보 및 각자의 포인트와 연관된 하나 이상의 속성들을 정의하는 속성 정보를 포함한다. 시스템은 또한 포인트들에 대한 속성 정보를 압축하도록 구성된 인코더를 포함한다. 속성 정보를 압축하기 위해, 인코더는 포인트 클라우드의 적어도 하나의 포인트에게, 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하도록 구성된다. 추가적으로, 인코더는, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해, 이웃 포인트들의 세트를 식별하고, 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 각자의 포인트에 대한 예측된 속성 값을 결정하고, 각자의 포인트에 대한 예측된 속성 값을 캡처된 포인트 클라우드 내에 포함된 포인트에 대한 속성 정보와 비교하는 것에 적어도 부분적으로 기초하여 포인트에 대한 속성 정정 값을 결정하도록 구성된다. 인코더는 포인트 클라우드에 대한 압축된 속성 정보를 인코딩하도록 추가로 구성되고, 압축된 속성 정보는 적어도 하나의 포인트에 대한 할당된 속성 값, 및 포인트들 중의 각자의 다른 포인트들에 대해, 각자의 결정된 속성 정정 값들을 나타내는 데이터를 포함한다.
일부 실시예들에서, 포인트 클라우드에 대한 속성 정보를 압축하기 위한 방법은 포인트 클라우드의 적어도 하나의 포인트에게, 포인트 클라우드 내에 포함된 적어도 하나의 포인트에 대한 속성 정보에 적어도 부분적으로 기초하여 속성 값을 할당하는 단계를 포함하며, 포인트 클라우드는 복수의 포인트들에 대한 공간 정보 및 복수의 포인트들 중의 각자의 포인트들에 대한 하나 이상의 속성들을 특정하는 속성 정보를 포함한다. 방법은, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해, 이웃 포인트들의 세트를 식별하는 단계, 및 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 포인트에 대한 예측된 속성 값을 결정하는 단계를 더 포함한다. 방법은, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해, 포인트에 대한 예측된 속성 값을 포인트에 대한 속성 정보와 비교하는 것에 적어도 부분적으로 기초하여, 포인트에 대한 속성 정정 값을 결정하는 단계를 더 포함한다. 방법은 또한 포인트 클라우드에 대한 압축된 속성 정보를 인코딩하는 단계를 포함하며, 압축된 속성 정보는 적어도 하나의 포인트에 대한 할당된 속성 값, 및 포인트들 중의 각자의 다른 포인트들에 대해, 결정된 속성 정정 값들을 나타내는 데이터를 포함한다.
일부 실시예들에서, 하나 이상의 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 디코더를 구현하게 하며, 디코더는: 포인트 클라우드에 대한 압축된 속성 정보를 수신하도록 구성되며, 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및, 포인트 클라우드의 다른 포인트들에 대해, 다른 포인트들의 각자의 속성들에 대한 각자의 속성 정정 값들을 나타내는 데이터를 포함한다. 프로그램 명령어들은, 실행될 때, 추가로, 디코더로 하여금, 적어도 하나의 포인트를 제외한, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해, 평가 중인 포인트에게 이웃 포인트들의 세트를 식별하고, 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 결정하고, 압축된 속성 정보에 포함된 포인트에 대한 속성 정정 값에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 조정하게 한다. 프로그램 명령어들은, 실행될 때, 추가로, 디코더로 하여금, 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하게 하며, 속성 정보는 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트들 중의 다른 포인트들에 대한 조정된 예측된 속성 값들을 포함한다.
일부 실시예들에서, 속성 정보를 압축하기 위해, 인코더는 계층적 상세 레벨(level of detail, LOD) 구조를 구축하도록 구성된다. 예를 들어, 인코더는 포인트 클라우드의 속성 정보에 대한 제1 상세 레벨을 결정하고, 포인트 클라우드의 속성 정보에 대한 하나 이상의 추가 상세 레벨들을 결정하도록 구성될 수 있다. 제1 상세 레벨 또는 하나 이상의 추가 상세 레벨들을 결정하기 위해, 인코더는 포인트 클라우드의 적어도 하나의 포인트에게, 포인트에 대한 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하고, 이전에 결정된 상세 레벨에 포함되지 않은 포인트 클라우드의 포인트들 중의 각자의 포인트들의 서브세트에 대해: 포인트로부터 제1 거리보다 더 먼 이웃 포인트들의 세트를 식별하고, 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 각자의 포인트에 대한 예측된 속성 값을 결정하고, 각자의 포인트에 대한 예측된 속성 값을 캡처된 포인트 클라우드 내에 포함된 포인트에 대한 속성 정보와 비교하는 것에 기초하여 포인트에 대한 속성 정정 값을 결정하도록 구성된다. 인코더는 제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 값 및 결정된 속성 정정 값들을 인코딩하도록 추가로 구성된다.
일부 실시예들에서, 인코더는 제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 정정 값 및 결정된 속성 정정 값들을 인코딩하기 전에 업데이트 동작을 수행하도록 추가로 구성된다. 일부 실시예들에서, 업데이트 동작은 계층적 상세 레벨 구조의 상위 상세 레벨들의 다른 포인트들 상의 결정된 속성 정정 값들 중 특정한 속성 정정 값의 상대적 중요도를 결정할 수 있다. 예를 들어, 일부 상황들에서, 하나 이상의 하위 상세 레벨들의 일부 포인트들에 대한 속성 정정 값들의 약간의 오차들이 상위 상세 레벨들의 포인트들의 속성들에 대한 예측된 속성 값들에 더 큰 영향을 미칠 수 있다. 그러한 상황들에서, 다른 포인트들에 대한 예측된 속성 값들에 대해 더 적은 영향을 갖는 다른 포인트들에 대한 결정된 속성 정정 값들에 할당되는 것보다, 다른 포인트들의 예측된 속성 값들에 대해 더 큰 영향을 갖는 포인트들에 대한 결정된 속성 정정 값들에 더 많은 비트들이 할당될 수 있다(예를 들어, 더 적은 양자화가 적용됨). 추가적으로, 일부 실시예들에서, 업데이트 동작을 수행하기 전에 변환이 속성 값들에 적용될 수 있고, 변환 동작의 효과들은 상위 상세 레벨들에 대한 예측된 속성 값들에 대한 결정된 속성 정정 값들의 상대적 영향들을 결정할 때 고려될 수 있다.
일부 실시예들에서, 인코더는 평가 중인 포인트에 이웃한 포인트들에 대한 속성들의 가변성에 기초하여, 예측 전략, 또는 예측 전략에서 사용되는 최근접 이웃들의 수를 적응적으로 변경하도록 추가로 구성될 수 있다.
일부 실시예들에서, 디코더는 포인트 클라우드에 대한 압축된 속성 정보를 수신하도록 구성되며, 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함한다. 일부 실시예들에서, 속성 정정 값들은 포인트 클라우드의 포인트들의 복수의 서브세트들에 대한 복수의 상세 레벨들로 순서화될 수 있다. 예를 들어, 디코더는 전술된 바와 같이 인코더에 의해 압축된 압축된 포인트 클라우드를 수신할 수 있다. 디코더는 제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하고, 복수의 상세 레벨들 중 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하도록 추가로 구성될 수 있다.
업데이트 동작이 인코더에서 수행되는 일부 실시예들에서, 디코더는 압축된 결정된 속성 정정 값들을 수신할 시에 업데이트 동작을 추가로 "실행취소(undo)"할 수 있다. 예를 들어, 결정된 속성 정정 값을 예측된 속성 값에 적용하기 전에, 디코더는 결정된 속성 정정 값에 대해 수행된 업데이트 동작을 고려할 수 있다.
일부 실시예들에서, 디코더는 평가 중인 포인트에 이웃한 포인트들에 대한 속성들의 가변성에 기초하여, 예측 전략, 또는 예측 전략에서 사용되는 최근접 이웃들의 수를 적응적으로 변경하도록 추가로 구성될 수 있다.
일부 실시예들에서, 방법은 포인트 클라우드에 대한 압축된 속성 정보를 수신하는 단계를 포함하며, 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함한다. 일부 실시예들에서, 속성 정정 값들은 포인트 클라우드의 다른 포인트들의 복수의 서브세트들에 대한 복수의 상세 레벨들로 순서화될 수 있다. 본 방법은 제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하는 단계, 및 복수의 상세 레벨들 중 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하는 단계를 더 포함할 수 있다. 일부 실시예들에서, 방법은 압축해제된 포인트 클라우드에 속성 정정 값들을 적용하기 전에 하위 상세 레벨들에 대한 속성 정정 값들에 대해 수행되는 업데이트 동작을 고려하는 단계를 더 포함할 수 있다.
일부 실시예들에서, 하나 이상의 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 포인트 클라우드의 속성 정보를 압축하기 위해, 본 명세서에 설명된 바와 같은 계층적 상세 레벨(LOD) 구조를 생성하게 한다. 일부 실시예들에서, 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 추가로 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 추가로, 하나 이상의 프로세서들로 하여금, 속성 정정 값들을 인코딩하기 전에 속성 정정 값들에 업데이트 동작을 적용하게 하고, 업데이트 동작은 본 명세서에 설명된 바와 같이 수행된다.
일부 실시예들에서, 하나 이상의 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 포인트 클라우드의 속성 정보를 압축해제하기 위해, 본 명세서에 설명된 바와 같이 계층적 LOD 구조를 디코딩하게 한다. 일부 실시예들에서, 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 추가로 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 추가로, 하나 이상의 프로세서들로 하여금, 재구성된 포인트 클라우드에 압축해제 속성 정정 값들을 적용하기 전에, 인코더에서 속성 정정 값들에 적용된 업데이트 동작을 고려하게 하고, 업데이트 동작을 고려하는 것은 본 명세서에 설명된 바와 같이 수행된다.
일부 실시예들에서, 시스템은 포인트 클라우드 내에 포함된 포인트들의 양자화를 수행하고, 중복 포인트들을 제거하고, 옥트리(octree) 인코딩을 수행하도록 구성된 기하학적 인코더를 포함한다. 옥트리 인코딩을 수행하기 위해, 기하학적 인코더는 최대 256개의 점유 심볼(occupancy symbol)들을 인코딩하기 위해 이진 산술 인코더를 사용하도록 구성된다. 점유 심볼들은 큐브의 8개의 서브큐브들 각각이 포인트들에 의해 점유 또는 비점유되는지 여부를 나타낸다. 8개의 서브큐브들 및 2개의 가능성들(점유 또는 비점유)이 있기 때문에, 가능한 점유 심볼들의 수는 2^8 또는 256이다. 기하학적 인코더는 또한 점유 심볼들을 인코딩하기 위한 컨텍스트들을 예측하기 위해 이웃 큐브들 또는 서브큐브들, 및 룩어헤드(look-ahead) 테이블을 사용하는 룩어헤드 절차를 이용하도록 구성될 수 있다. 예를 들어, 이웃 큐브들이 빈(empty) 경우, 인코딩 중인 큐브는 빈 서브큐브들을 포함할 가능성이 더 크고, 그 반대도 마찬가지이다.
또한, 인코딩 컨텍스트들의 가능한 수는 최고 확률(most probable) 이웃 구성들에 별개의 컨텍스트들을 할당하고, 더 낮은 확률 이웃 구성들을 동일한 컨텍스트들에 할당함으로써 감소될 수 있어서, 더 낮은 확률 이웃 구성들 중 일부는 동일한 컨텍스트들을 공유한다. 시스템은 또한 포인트들에 대한 속성 정보를 압축하도록 구성된 속성 인코더를 포함한다. 속성 정보를 압축하기 위해, 속성 인코더는 계층적 상세 레벨(LOD) 구조를 구축하도록 구성된다. 예를 들어, 속성 인코더는 포인트 클라우드의 속성 정보에 대한 제1 상세 레벨을 결정하고, 포인트 클라우드의 속성 정보에 대한 하나 이상의 추가 상세 레벨들을 결정하도록 구성될 수 있다. 제1 상세 레벨 또는 하나 이상의 추가 상세 레벨들을 결정하기 위해, 속성 인코더는 포인트 클라우드의 적어도 하나의 포인트에게, 포인트에 대한 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하고, 이전에 결정된 상세 레벨에 포함되지 않은 포인트 클라우드의 포인트들 중의 각자의 포인트들의 서브세트에 대해: 포인트로부터 제1 거리보다 더 먼 이웃 포인트들의 세트를 식별하고, 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 각자의 포인트에 대한 예측된 속성 값을 결정하고, 각자의 포인트에 대한 예측된 속성 값을 캡처된 포인트 클라우드 내에 포함된 포인트에 대한 속성 정보와 비교하는 것에 기초하여 포인트에 대한 속성 정정 값을 결정하도록 구성될 수 있다. 속성 인코더는 제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 값 및 결정된 속성 정정 값들을 인코딩하도록 추가로 구성된다. 일부 실시예들에서, 속성 인코더는 평가 중인 포인트에 이웃한 포인트들에 대한 속성들의 가변성에 기초하여, 예측 전략, 또는 예측 전략에서 사용되는 최근접 이웃들의 수를 적응적으로 변경하도록 추가로 구성된다.
일부 실시예들에서, 디코더는 포인트 클라우드에 대한 인코딩된 기하학적 정보를 수신하고, 점유 심볼들을 생성하기 위해 산술 디코더를 적용하도록 구성된다(디코더는 전술된 바와 같이 인코더에 의해, 또한 이진 산술 디코더 및 룩어헤드 테이블들을 사용하여, 인코딩된 기하학적 정보를 디코딩한다). 이어서, 점유 심볼들은, 압축해제 중인 포인트 클라우드의 포인트 클라우드 기하학적 구조를 재생성하기 위해 옥트리 디코딩 요소에 의해 사용된다. 디코더는 또한 포인트 클라우드에 대한 압축된 속성 정보를 수신하도록 구성되며, 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함하고, 속성 정정 값들은 포인트 클라우드의 다른 포인트들의 복수의 서브세트들에 대한 복수의 상세 레벨들로 순서화된다. 예를 들어, 디코더는 전술된 바와 같이 인코더에 의해 압축된 압축된 포인트 클라우드를 수신할 수 있다. 디코더는 제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하고, 복수의 상세 레벨들 중 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하도록 추가로 구성될 수 있다.
일부 실시예들에서, 디코더는 평가 중인 포인트에 이웃한 포인트들에 대한 속성들의 가변성에 기초하여, 예측 전략, 또는 예측 전략에서 사용되는 최근접 이웃들의 수를 적응적으로 변경하도록 추가로 구성될 수 있다.
일부 실시예들에서, 방법은 포인트 클라우드에 대한 인코딩된 기하학적 정보를 수신하는 단계, 및 점유 심볼들을 생성하기 위해 산술 디코더를 적용하는 단계를 포함한다(디코더는 전술된 바와 같이 인코더에 의해, 또한 이진 산술 디코더 및 룩어헤드 테이블들을 사용하여, 인코딩된 기하학적 정보를 디코딩한다). 이어서, 점유 심볼들은, 압축해제 중인 포인트 클라우드의 포인트 클라우드 기하학적 구조를 재생성하기 위해 옥트리 디코딩 요소에 의해 사용된다. 일부 실시예들에서, 방법은 포인트 클라우드에 대한 압축된 속성 정보를 수신하는 단계를 더 포함하며, 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함하고, 속성 정정 값들은 포인트 클라우드의 다른 포인트들의 복수의 서브세트들에 대한 복수의 상세 레벨들로 순서화된다. 방법은 제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하는 단계, 및 복수의 상세 레벨들 중 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하는 단계를 더 포함한다. 일부 실시예들에서, 방법은 평가 중인 포인트에 이웃한 포인트들에 대한 속성들의 가변성에 기초하여, 예측 전략, 또는 예측 전략에서 사용되는 최근접 이웃들의 수를 적응적으로 변경하는 단계를 더 포함한다.
일부 실시예들에서, 하나 이상의 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 본 명세서에 설명된 바와 같은 룩어헤드 테이블들을 갖는 옥트리 및 이진 산술 인코더를 사용하여 압축된 기하학적 정보를 생성하게 한다. 일부 실시예들에서, 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 포인트 클라우드의 속성 정보를 압축하기 위해, 본 명세서에 설명된 바와 같이 계층적 상세 레벨(LOD) 구조를 수신하게 한다.
일부 실시예들에서, 하나 이상의 비일시적 컴퓨터 판독가능 매체는 프로그램 명령어들을 저장하며, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 포인트 클라우드에 대한 기하학적 인코딩된 정보를 디코딩하고, 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하기 위해 본 명세서에 설명된 바와 같이 계층적 LOD 구조를 압축해제하게 한다.
도 1a는 일부 실시예들에 따른, 포인트 클라우드의 포인트들에 대한 정보를 캡처하는 센서 및 포인트 클라우드의 속성 정보 및/또는 공간 정보를 압축하는 인코더를 포함하는 시스템을 예시하며, 압축된 포인트 클라우드 정보는 디코더에 전송된다.
도 1b는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 인코딩하기 위한 프로세스를 예시한다.
도 1c는 일부 실시예들에 따른, 인코딩 프로세스의 상이한 스테이지들에서의 포인트 클라우드 정보의 대표도들을 예시한다.
도 2a는 일부 실시예들에 따른, 인코더의 컴포넌트들을 예시한다.
도 2b는 일부 실시예들에 따른, 디코더의 컴포넌트들을 예시한다.
도 3은 일부 실시예들에 따른, 예시적인 압축된 속성 파일을 예시한다.
도 4는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 압축하기 위한 프로세스를 예시한다.
도 5는 일부 실시예들에 따른, 속성 정정 값들을 인코딩하기 위한 프로세스를 예시한다.
도 6a 및 도 6b는 일부 실시예들에 따른, 포인트 클라우드의 공간 정보를 압축하기 위한 예시적인 프로세스를 예시한다.
도 7은 일부 실시예들에 따른, 포인트 클라우드의 공간 정보를 압축하기 위한 다른 예시적인 프로세스를 예시한다.
도 8은 일부 실시예들에 따른, 포인트 클라우드의 압축된 속성 정보를 압축해제하기 위한 예시적인 프로세스를 예시한다.
도 9는 일부 실시예들에 따른, 계층적 상세 레벨(LOD) 구조를 생성하는 예시적인 인코더의 컴포넌트들을 예시한다.
도 10은 일부 실시예들에 따른, 상세 레벨(LOD) 구조의 상이한 정제(refinement) 층들에 포함될 포인트들을 결정하기 위한 예시적인 프로세스를 예시한다.
도 11a는 일부 실시예들에 따른, 예시적인 상세 레벨(LOD) 구조를 예시한다.
도 11b는 일부 실시예들에 따른, 포인트 클라우드들에 대한 상세 레벨(LOD)을 포함하는 예시적인 압축된 포인트 클라우드 파일을 예시한다.
도 12a는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 인코딩하는 방법을 예시한다.
도 12b는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 디코딩하는 방법을 예시한다.
도 12c는 일부 실시예들에 따른, 옥트리의 큐브들의 예시적인 이웃 구성들을 예시한다.
도 12d는 일부 실시예들에 따른, 예시적인 룩어헤드 큐브를 예시한다.
도 12e는 일부 실시예들에 따른, 이진 산술 인코더를 사용하여 심볼(S)의 인덱스 값을 적응적으로 인코딩하기 위해 사용될 수 있는 31개의 컨텍스트들의 예를 예시한다.
도 12f는 일부 실시예들에 따른, 이진 산술 인코더, 캐시, 및 룩어헤드 테이블을 사용하는 예시적인 옥트리 압축 기법을 예시한다.
도 13a는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 인코딩하기 위해 인코더에 적용될 수 있는 직접 변환을 예시한다.
도 13b는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 디코딩하기 위해 디코더에 적용될 수 있는 역 변환을 예시한다.
도 14는 일부 실시예들에 따른, 3-D 원격현실(telepresence) 애플리케이션에서 사용되는 압축된 포인트 클라우드 정보를 예시한다.
도 15는 일부 실시예들에 따른, 가상 현실 애플리케이션에서 사용되는 압축된 포인트 클라우드 정보를 예시한다.
도 16은 일부 실시예들에 따른, 인코더 또는 디코더를 구현할 수 있는 예시적인 컴퓨터 시스템을 예시한다.
본 명세서는 "하나의 실시예" 또는 "일 실시예"에 대한 언급을 포함한다. "하나의 실시예에서" 또는 "일 실시예에서"라는 문구들의 등장들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
"포함하는(Comprising)". 이 용어는 확장가능(open-ended)하다. 첨부된 청구범위에서 사용되는 바와 같이, 이러한 용어는 부가적인 구조 또는 단계들을 배제(foreclose)하지 않는다. "... 하나 이상의 프로세서 유닛들을 포함하는 장치"를 언급하는 청구항을 고려한다. 그러한 청구항은 장치가 부가적인 컴포넌트들(예를 들어, 네트워크 인터페이스 유닛, 그래픽 회로부 등)을 포함하는 것을 배제하지 않는다.
"~하도록 구성되는(configured to)". 다양한 유닛들, 회로들 또는 다른 컴포넌트들이 태스크 또는 태스크들을 수행"하도록 구성"되는 것으로 설명되거나 청구될 수 있다. 그러한 문맥들에서, "~하도록 구성되는"은 유닛들/회로들/컴포넌트들이 동작 동안에 그들 태스크 또는 태스크들을 수행하는 구조(예를 들어, 회로부)를 포함한다는 것을 나타냄으로써 구조를 내포하는 데 사용된다. 이와 같이, 유닛/회로/컴포넌트는, 특정된 유닛/회로/컴포넌트가 현재 동작 중이지 않은 경우(예를 들어, 켜진 상태가 아닌 경우)에도 태스크를 수행하도록 구성되는 것으로 칭해질 수 있다. "~하도록 구성되는"이라는 문구와 함께 사용되는 유닛들/회로들/컴포넌트들은 하드웨어 - 예를 들어, 회로들, 동작을 구현하도록 실행가능한 프로그램 명령어들을 저장하는 메모리 등 -를 포함한다. 유닛/회로/컴포넌트가 하나 이상의 태스크들을 수행"하도록 구성"됨을 언급하는 것은 그 유닛/회로/컴포넌트에 대해 미국 특허법 35 U.S.C. § 112(f), 규정이 적용되지 않도록 하기 위한 의도의 명시이다. 추가적으로, "~하도록 구성되는"은 사안이 되는 태스크(들)를 수행할 수 있는 방식으로 동작하도록 소프트웨어 및/또는 펌웨어(예를 들어, FPGA 또는 소프트웨어를 실행하는 범용 프로세서)에 의해 조작되는 일반적인 구조(예를 들어, 일반적인 회로부)를 포함할 수 있다. "~하도록 구성되는"은 또한 하나 이상의 태스크들을 구현하거나 수행하도록 적응된 디바이스들(예를 들어, 집적 회로들)을 제조하도록 제조 프로세스(예를 들어, 반도체 제조 설비)를 적응하는 것을 포함할 수 있다.
"제1", "제2", 등. 본 명세서에서 사용되는 바와 같이, 이러한 용어들은 이들이 선행하고 있는 명사들에 대한 라벨들로서 사용되고, 임의의 유형의(예를 들어, 공간적, 시간적, 논리적 등) 순서를 암시하는 것은 아니다. 예를 들어, 버퍼 회로는 "제1" 및 "제2" 값들에 대한 기입 동작들을 수행하는 것으로서 본 명세서에서 설명될 수 있다. 용어들 "제1" 및 "제2"는 반드시 제1 값이 제2 값 전에 기입되어야 한다는 것을 암시하지는 않는다.
"~에 기초하여(Based on)". 본 명세서에서 사용되는 바와 같이, 이 용어는 결정에 영향을 주는 하나 이상의 인자들을 설명하기 위해 사용된다. 이 용어는 결정에 영향을 줄 수 있는 부가적인 인자들을 배제하지 않는다. 즉, 결정은 오직 그들 인자들에만 기초하거나 또는 그들 인자들에 적어도 부분적으로 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이 경우에, B가 A의 결정에 영향을 주는 인자이기는 하지만, 그러한 문구는 A의 결정이 또한 C에도 기초하는 것임을 배제하지 않는다. 다른 예시들에서, A는 오직 B에만 기초하여 결정될 수 있다.
데이터 획득 및 디스플레이 기술들이 더 진보됨에 따라, 예컨대 LIDAR 시스템들을 통해 2-D 또는 3-D 공간 내의 수천 또는 수백만 개의 포인트들을 포함하는 포인트 클라우드들을 캡처하는 능력이 증가하였다. 또한, 가상 현실 또는 증강 현실 시스템들과 같은 진보된 디스플레이 기술들의 개발은 포인트 클라우드들에 대한 잠재적 사용들을 증가시켰다. 그러나, 포인트 클라우드 파일들은 종종 매우 크고, 저장 및 송신에 많은 비용과 시간이 소요될 수 있다. 예를 들어, 인터넷과 같은 사설 또는 공중 네트워크들을 통한 포인트 클라우드들의 통신은 상당한 양의 시간 및/또는 네트워크 자원을 필요로 하여, 실시간 사용들과 같은 포인트 클라우드 데이터의 일부 사용들이 제한될 수 있다. 또한, 포인트 클라우드 파일들의 저장 요구량들이 포인트 클라우드 파일들을 저장하는 디바이스들의 상당한 양의 저장 용량을 소비할 수 있으며, 이는 또한 포인트 클라우드 데이터를 사용하기 위한 잠재적인 애플리케이션들을 제한할 수 있다.
일부 실시예들에서, 인코더는 큰 포인트 클라우드 파일들을 저장하고 송신하는 것과 연관된 비용 및 시간을 감소시키기 위해 압축된 포인트 클라우드를 생성하는 데 사용될 수 있다. 일부 실시예들에서, 시스템은 포인트 클라우드 파일이 비압축된 포인트 클라우드들보다 더 신속하게 저장되고 송신될 수 있도록, 그리고 포인트 클라우드 파일이 비압축된 포인트 클라우드들보다 적은 저장 공간을 점유할 수 있는 방식으로 포인트 클라우드 파일의 속성 정보 및/또는 공간 정보(본 명세서에서 기하학적 정보로도 지칭됨)를 압축하는 인코더를 포함할 수 있다. 일부 실시예들에서, 포인트 클라우드 내의 공간 정보 및/또는 포인트들의 속성들의 압축은 포인트 클라우드가 네트워크를 통해 실시간으로 또는 거의 실시간으로 통신될 수 있게 할 수 있다. 예를 들어, 시스템은 센서가 위치되는 환경 내의 포인트들에 관한 공간 정보 및/또는 속성 정보를 캡처하는 센서를 포함할 수 있으며, 캡처된 포인트들 및 대응하는 속성들이 포인트 클라우드를 구성한다. 시스템은 또한 캡처된 포인트 클라우드 속성 정보를 압축하는 인코더를 포함할 수 있다. 포인트 클라우드의 압축된 속성 정보는 포인트 클라우드의 압축된 속성 정보를 압축해제하는 디코더에 실시간으로 또는 거의 실시간으로 네트워크를 통해 전송될 수 있다. 압축해제된 포인트 클라우드는, 예를 들어, 센서의 위치에서의 주위 환경에 기초하여 제어 결정을 내리도록 추가로 프로세싱될 수 있다. 이어서, 제어 결정은 센서의 위치 또는 그 근처의 디바이스로 다시 통신될 수 있으며, 제어 결정을 수신하는 디바이스는 실시간 또는 거의 실시간으로 제어 결정을 구현한다. 일부 실시예들에서, 디코더는 증강 현실 시스템과 연관될 수 있고, 압축해제된 속성 정보는 증강 현실 시스템에 의해 디스플레이되거나 달리 사용될 수 있다. 일부 실시예들에서, 포인트 클라우드에 대한 압축된 속성 정보는 포인트 클라우드의 포인트들에 대한 압축된 공간 정보와 함께 전송될 수 있다. 다른 실시예들에서, 공간 정보 및 속성 정보는 개별적으로 인코딩되고/되거나 개별적으로 디코더로 송신될 수 있다.
일부 실시예들에서, 시스템은 원격 서버 또는 하나 이상의 포인트 클라우드 파일들을 저장하는 다른 저장 디바이스로부터 네트워크를 통해 압축된 속성 정보를 포함하는 하나 이상의 포인트 클라우드 파일들을 수신하는 디코더를 포함할 수 있다. 예를 들어, 3-D 디스플레이, 홀로그래픽 디스플레이, 또는 헤드 마운트 디스플레이는 포인트 클라우드들에 의해 표현되는 가상 세계의 상이한 부분들을 보여주기 위해 실시간으로 또는 거의 실시간으로 조작될 수 있다. 3-D 디스플레이, 홀로그래픽 디스플레이, 또는 헤드 마운트 디스플레이를 업데이트하기 위해, 디코더와 연관된 시스템은 디스플레이들의 사용자 조작들에 기초하여 원격 서버로부터 포인트 클라우드 파일들을 요청할 수 있고, 포인트 클라우드 파일들은 원격 서버로부터 디코더로 송신되고 디코더에 의해 실시간 또는 거의 실시간으로 디코딩될 수 있다. 이어서, 디스플레이들은 업데이트된 포인트 속성들과 같은 사용자 조작들에 응답하여, 업데이트된 포인트 클라우드 데이터로 업데이트될 수 있다.
일부 실시예들에서, 시스템들은 하나 이상의 LIDAR 시스템들, 3-D 카메라들, 3-D 스캐너들 등을 포함할 수 있고, 그러한 센서 디바이스들은 센서 디바이스들의 뷰 내의 포인트들에 대한 X, Y, 및 Z 좌표들과 같은 공간 정보를 캡처할 수 있다. 일부 실시예들에서, 공간 정보는 지역 좌표계(local coordinate system)에 대한 것일 수 있거나, 전역 좌표계(global coordinate system)에 대한 것일 수 있다(예를 들어, 데카르트 좌표계는 지구 상의 고정 점과 같은 고정된 기준점을 가질 수 있거나, 또는 센서 위치와 같은 비-고정 지역 기준점을 가질 수 있음).
일부 실시예들에서, 그러한 센서들은 또한 색상 속성들, 반사율 속성들, 속도 속성들, 가속도 속성들, 시간 속성들, 양상들, 및/또는 다양한 다른 속성들과 같은, 하나 이상의 포인트들에 대한 속성 정보를 캡처할 수 있다. 일부 실시예들에서, LIDAR 시스템들, 3-D 카메라들, 3-D 스캐너들 등에 더하여, 다른 센서들이 포인트 클라우드 내에 포함될 속성 정보를 캡처할 수 있다. 예를 들어, 일부 실시예들에서, 자이로스코프 또는 가속도계는 포인트 클라우드 내에 포함될 모션 정보를 포인트 클라우드의 하나 이상의 포인트들과 연관된 속성으로 캡처할 수 있다. 예를 들어, LIDAR 시스템, 3-D 카메라, 또는 3-D 스캐너가 장착된 차량은 LIDAR 시스템, 3-D 카메라, 또는 3-D 스캐너에 의해 캡처된 포인트 클라우드 내에 차량의 방향 및 속력을 포함할 수 있다. 예를 들어, 차량의 뷰 내의 포인트들이 캡처되는 경우, 포인트들은 포인트 클라우드 내에 포함될 수 있고, 포인트 클라우드는 캡처된 포인트들 및 포인트들이 캡처된 때의 차량의 상태에 대응하는 연관된 모션 정보를 포함한다.
일부 실시예들에서, 속성 정보는 상이한 양상들과 같은 문자열 값들을 포함할 수 있다. 예를 들어, 속성 정보는 "걷기", "달리기", "운전" 등과 같은 양상을 나타내는 문자열 값들을 포함할 수 있다. 일부 실시예들에서, 인코더는 소정 스트링들이 소정의 대응하는 정수 값들과 연관되는 "문자열 값" 대 정수 인덱스("string-value" to integer index)를 포함할 수 있다. 일부 실시예들에서, 포인트 클라우드는 문자열 값과 연관된 정수를 포인트의 속성으로 포함함으로써 포인트에 대한 문자열 값을 나타낼 수 있다. 인코더와 디코더는 둘 모두 공통의 문자열 값 대 정수 인덱스를 저장할 수 있어서, 디코더는 인코더의 문자열 값 대 정수 인덱스와 일치하거나 유사한 디코더의 문자열 값 대 정수 인덱스에서의 포인트의 문자열 속성의 정수 값을 검색하는 것에 기초하여 포인트들에 대한 문자열 값들을 결정할 수 있다.
일부 실시예들에서, 인코더는 포인트 클라우드의 포인트들의 속성들에 대한 속성 정보를 압축하는 것에 더하여 공간 정보를 압축하기 위해 포인트 클라우드의 공간 정보를 압축하고 인코딩한다. 예를 들어, 공간 정보를 압축하기 위해, K-D 트리가 생성될 수 있으며, K-D 트리의 셀들 각각에 포함된 포인트들의 각자의 수들이 인코딩된다. 인코딩된 포인트 카운트들의 이러한 시퀀스는 포인트 클라우드의 포인트들에 대한 공간 정보를 인코딩할 수 있다. 또한, 일부 실시예들에서, 서브샘플링 및 예측 방법이 포인트 클라우드에 대한 공간 정보를 압축하고 인코딩하기 위해 사용될 수 있다. 일부 실시예들에서, 공간 정보는 압축되고 인코딩되기 전에 양자화될 수 있다. 또한, 일부 실시예들에서, 공간 정보의 압축은 무손실(lossless)일 수 있다. 따라서, 디코더는 인코더와 동일한 공간 정보의 뷰를 결정하는 것이 가능할 수 있다. 또한, 인코더는, 일단 압축된 공간 정보가 디코딩되면 디코더가 직면할(encounter) 공간 정보의 뷰를 결정하는 것이 가능할 수 있다. 인코더와 디코더 둘 모두가 포인트 클라우드에 대한 동일한 공간 정보를 가질 수 있거나 또는 이를 재생성하는 것이 가능할 수 있기 때문에, 포인트 클라우드에 대한 속성 정보를 압축하기 위해 공간적 관계들이 사용될 수 있다.
예를 들어, 많은 포인트 클라우드들에서, 인접한 포인트들 또는 서로 상대적으로 짧은 거리들에 위치되는 포인트들 사이의 속성 정보는 속성들 사이의 높은 레벨들의 상관관계를 가질 수 있고, 따라서 포인트 속성 값들의 비교적 작은 차이들을 가질 수 있다. 예를 들어, 포인트 클라우드 내의 근접한 포인트들은, 더 멀리 떨어져 있는 포인트 클라우드 내의 포인트들에 비해 고려될 때, 상대적으로 작은 색상 차이들을 가질 수 있다.
일부 실시예들에서, 인코더는 포인트 클라우드 내의 이웃 포인트들의 유사한 속성들에 대한 속성 값들에 기초하여, 그리고 평가 중인 포인트와 이웃 포인트들 사이의 각자의 거리들에 기초하여, 포인트 클라우드 내의 포인트의 속성의 예측된 속성 값을 결정하는 예측기를 포함할 수 있다. 일부 실시예들에서, 평가 중인 포인트에 더 가까운 이웃 포인트들의 속성들의 속성 값들에는 평가 중인 포인트로부터 더 멀리 떨어진 이웃 포인트들의 속성들의 속성 값들보다 더 높은 가중치가 주어질 수 있다. 또한, 인코더는 예측된 속성 값을, 압축 이전의 원래 포인트 클라우드 내의 포인트의 속성에 대한 실제 속성 값과 비교할 수 있다. 본 명세서에서 "속성 정정 값"으로 또한 지칭되는 잔류 차이가 이러한 비교에 기초하여 결정될 수 있다. 속성 정정 값은 인코딩되고 포인트 클라우드에 대한 압축된 속성 정보 내에 포함될 수 있으며, 디코더는 인코딩된 속성 정정 값을 사용하여 포인트에 대한 예측된 속성 값을 정정하고, 속성 값은 디코더에서 동일하거나 유사한 예측 방법 - 인코더에서 사용된 예측 방법과 동일하거나 유사함 - 을 사용하여 예측된다.
일부 실시예들에서, 속성 값들을 인코딩하기 위해, 인코더는 포인트 클라우드의 포인트들에 대한 공간 정보에 기초하여 포인트 클라우드의 포인트들에 대한 최소 신장 트리(minimum spanning tree)를 생성할 수 있다. 인코더는 시작 포인트로서 제1 포인트를 선택할 수 있고, 시작 포인트로부터 최근접 이웃 포인트까지의 최소 거리들 및 그 이웃 포인트로부터 다음의 최근접 이웃 포인트까지의 후속 최소 거리, 등에 기초하여 포인트 클라우드의 포인트들 중의 다른 포인트들에 대한 평가 순서를 결정할 수 있다. 이러한 방식으로, 포인트 클라우드의 포인트들의 예측된 속성 값들을 결정하기 위한 평가 순서가 결정될 수 있다. 디코더는 인코더에 의해 사용된 공간 정보와 동일한 공간 정보를 수신 또는 재생성할 수 있기 때문에, 디코더는 포인트 클라우드에 대해 동일한 최소 신장 트리를 생성할 수 있고, 포인트 클라우드의 포인트들에 대해 동일한 평가 순서를 결정할 수 있다.
일부 실시예들에서, 인코더는 최소 신장 트리를 생성하기 위해 사용될 포인트 클라우드의 시작 포인트에 대한 속성 값을 할당할 수 있다. 인코더는 시작 포인트의 속성 값 및 시작 포인트와 다음의 최근접 포인트 사이의 거리에 기초하여 시작 포인트에 대한 다음의 최근접 포인트에 대한 속성 값을 예측할 수 있다. 이어서, 인코더는 다음의 최근접 포인트에 대한 예측된 속성 값과 비압축된 원래의 포인트 클라우드 내에 포함된 다음의 최근접 포인트에 대한 실제 속성 값 사이의 차이를 결정할 수 있다. 이러한 차이는 압축된 속성 정보 파일 내에, 다음의 최근접 포인트에 대한 속성 정정 값으로서 인코딩될 수 있다. 이어서 인코더는 평가 순서 내의 각각의 포인트에 대해 유사한 프로세스를 반복할 수 있다. 후속 포인트들에 대한 속성 값을 평가 순서에 따라 예측하기 위해, 인코더는 평가 중인 특정 포인트에 대한 K-최근접 이웃 포인트를 식별할 수 있고, 식별된 K-최근접 이웃 포인트들은 할당되거나 예측된 속성 값들을 갖는다. 일부 실시예들에서, "K"는 인코더로부터 디코더로 통신되는 구성가능한 파라미터일 수 있다.
인코더는 평가 중인 포인트와 식별된 이웃 포인트들 각각 사이의 X, Y, 및 Z 공간 내의 거리를 결정할 수 있다. 예를 들어, 인코더는 평가 중인 포인트로부터 이웃 포인트들 각각까지의 각자의 유클리드 거리들을 결정할 수 있다. 이어서, 인코더는 이웃 포인트들의 속성 값들에 기초하여 평가 중인 포인트의 속성에 대한 속성 값을 예측할 수 있으며, 이웃 포인트들의 속성 값들은 평가 중인 포인트로부터 이웃 포인트들 중의 각자의 포인트들까지의 거리들의 역수에 따라 가중된다. 예를 들어, 평가 중인 포인트에 더 가까운 이웃 포인트들의 속성 값들에는 평가 중인 포인트로부터 더 멀리 떨어진 이웃 포인트들의 속성 값들보다 더 큰 가중치가 주어질 수 있다.
제1 이웃 포인트에 대해 설명된 것과 유사한 방식으로, 인코더는 포인트 클라우드의 다른 포인트들 각각에 대한 예측된 값을 원래의 비압축된 포인트 클라우드, 예를 들어, 캡처된 포인트 클라우드의 실제 속성 값과 비교할 수 있다. 차이는 평가 중인 다른 포인트들 중의 하나의 포인트의 속성에 대한 속성 정정 값으로서 인코딩될 수 있다. 일부 실시예들에서, 속성 정정 값들은 최소 신장 트리에 기초하여 결정된 평가 순서에 따라, 압축된 속성 정보 파일 내에 순서대로 인코딩될 수 있다. 인코더와 디코더는 포인트 클라우드에 대한 공간 정보에 기초하여 동일한 평가 순서를 결정할 수 있기 때문에, 디코더는 속성 정정 값들이 압축된 속성 정보 파일 내에 인코딩되는 순서에 기초하여 어느 속성 정정 값이 어느 포인트의 어떤 속성에 대응하는지를 결정할 수 있다. 추가적으로, 시작 포인트 및 시작 포인트의 하나 이상의 속성 값(들)은 압축된 속성 정보 파일 내에 명시적으로 인코딩될 수 있어서, 디코더는 인코더에서 평가 순서를 시작하는 데 사용된 것과 동일한 포인트로 시작하는 평가 순서를 결정할 수 있다. 추가적으로, 시작 포인트의 하나 이상의 속성 값(들)은 평가 중인 포인트 - 시작 포인트에 대해 이웃 포인트임 - 에 대한 예측된 속성 값을 결정하는 데 디코더가 사용하는 이웃 포인트의 값을 제공할 수 있다.
일부 실시예들에서, 인코더는 시간적 고려사항들에 기초하여 포인트의 속성에 대한 예측된 값을 결정할 수 있다. 예를 들어, 평가 중인 포인트와 동일한 "프레임"에서의 이웃 포인트들, 예를 들어 시간에서의 포인트에 기초하여 예측된 값을 결정하는 것에 더하여 또는 그 대신에, 인코더는 인접 및 후속 시간 프레임들에서의 포인트의 속성 값들을 고려할 수 있다.
도 1a는 일부 실시예들에 따른, 포인트 클라우드의 포인트들에 대한 정보를 캡처하는 센서 및 포인트 클라우드의 속성 정보를 압축하는 인코더를 포함하는 시스템을 예시하며, 압축된 속성 정보는 디코더에 전송된다.
시스템(100)은 센서(102) 및 인코더(104)를 포함한다. 센서(102)는 센서(102)의 뷰(108) 내의 구조(106)를 나타내는 포인트들을 포함하는 포인트 클라우드(110)를 캡처한다. 예를 들어, 일부 실시예들에서, 구조체(106)는 산맥, 건물, 표지판, 거리 주위의 환경, 또는 임의의 다른 유형의 구조체일 수 있다. 일부 실시예들에서, 캡처된 포인트 클라우드(110)와 같은 캡처된 포인트 클라우드는 포인트 클라우드 내에 포함된 포인트들에 대한 공간 및 속성 정보를 포함할 수 있다. 예를 들어, 캡처된 포인트 클라우드(110)의 포인트(A)는 X, Y, Z 좌표들 및 속성 1, 속성 2, 속성 3을 포함한다. 일부 실시예들에서, 포인트의 속성들은 R, G, B 색상 값들, 포인트에서의 속도, 포인트에서의 가속도, 포인트에서의 구조체의 반사율, 포인트가 캡처되었을 때를 나타내는 타임 스탬프, 포인트가 캡처되었을 때의 양상, 예를 들어 "걷기", 또는 다른 속성들을 나타내는 문자열 값과 같은 속성들을 포함할 수 있다. 캡처된 포인트 클라우드(110)는 인코더(104)에 제공될 수 있으며, 인코더(104)는 네트워크(114)를 통해 디코더(116)로 송신되는 포인트 클라우드의 압축된 버전(압축된 속성 정보(112))을 생성한다. 일부 실시예들에서, 압축된 속성 정보(112)와 같은 포인트 클라우드의 압축된 버전은 포인트 클라우드의 포인트들에 대한 압축된 공간 정보를 또한 포함하는 공통의 압축된 포인트 클라우드 내에 포함될 수 있거나, 일부 실시예들에서, 압축된 공간 정보 및 압축된 속성 정보는 별개의 파일들로서 통신될 수 있다.
일부 실시예들에서, 인코더(104)는 센서(102)와 통합될 수 있다. 예를 들어, 인코더(104)는 센서(102)와 같은 센서 디바이스에 포함된 하드웨어 또는 소프트웨어로 구현될 수 있다. 다른 실시예들에서, 인코더(104)는 센서(102)에 근접한 별개의 컴퓨팅 디바이스 상에서 구현될 수 있다.
도 1b는 일부 실시예들에 따른, 포인트 클라우드의 압축된 속성 정보를 인코딩하기 위한 프로세스를 예시한다. 또한, 도 1c는 일부 실시예들에 따른, 인코딩 프로세스의 상이한 스테이지들에서의 포인트 클라우드 정보의 대표도들을 예시한다.
152에서, 인코더(104)와 같은 인코더는 캡처된 포인트 클라우드 또는 생성된 포인트 클라우드를 수신한다. 예를 들어, 일부 실시예들에서, 포인트 클라우드는 센서(102)와 같은 하나 이상의 센서들을 통해 캡처될 수 있거나, 또는 가상 현실 또는 증강 현실 시스템과 같은 소프트웨어에서 생성될 수 있다. 예를 들어, 164는 예시적인 캡처 또는 생성된 포인트 클라우드를 예시한다. 164에 도시된 포인트 클라우드의 각각의 포인트는 포인트와 연관된 하나 이상의 속성들을 가질 수 있다. 설명의 용이함을 위해 포인트 클라우드(164)는 2차원(2D)으로 예시되어 있지만, 3차원(3D) 공간 내의 포인트들을 포함할 수 있음에 주목한다.
154에서, 152에서 인코더에 의해 수신된 포인트 클라우드의 공간 정보에 기초하여 최소 신장 트리가 결정된다. 최소 신장 트리를 결정하기 위해, 인코더의 최소 신장 트리 생성기가 최소 신장 트리에 대한 시작 포인트를 선택할 수 있다. 이어서, 최소 신장 트리 생성기는 시작 포인트에 인접한 포인트들을 식별할 수 있다. 이어서, 인접 포인트들은 각자의 식별된 인접 포인트들과 시작 포인트 사이의 각자의 거리들에 기초하여 분류될 수 있다. 시작 포인트로부터의 최단 거리에 있는 인접 포인트는 방문될 다음 포인트로서 선택될 수 있다. "에지(edge)"의 "가중치", 예를 들어, 포인트 클라우드 내의 포인트들 사이의 거리는 시작 포인트와 다음 방문되도록 선택된 인접 포인트 사이의 에지에 대해 결정될 수 있으며, 더 짧은 거리들보다 더 긴 거리들에 더 큰 가중치들이 주어진다. 시작 포인트에 대한 최근접 인접 포인트가 최소 신장 트리에 추가된 후에, 이어서 인접 포인트가 평가될 수 있고, 현재 평가 중인 포인트(예를 들어, 다음 방문되도록 이전에 선택되었던 포인트)에 인접한 포인트들이 식별될 수 있다. 식별된 인접 포인트들은 현재 평가 중인 포인트와 식별된 인접 포인트들 사이의 각자의 거리들에 기초하여 분류될 수 있다. 현재 평가 중인 포인트로부터의 최단 거리, 예를 들어, "에지"에서의 인접 포인트는 최소 신장 트리 내에 포함될 다음 포인트로서 선택될 수 있다. 현재 평가 중인 포인트와 다음 선택된 인접 포인트 사이의 에지에 대한 가중치가 결정되고 최소 신장 트리에 추가될 수 있다. 포인트 클라우드에 대한 최소 신장 트리를 생성하기 위해 포인트 클라우드의 다른 포인트들 각각에 대해 유사한 프로세스가 반복될 수 있다.
예를 들어, 166은 최소 신장 트리의 예시를 예시한다. 166에 도시된 최소 신장 트리에서, 각각의 정점은 포인트 클라우드 내의 포인트를 나타낼 수 있고, 정점들 사이의 에지 가중치들, 예를 들어 1, 2, 3, 4, 7, 8 등이 포인트 클라우드 내의 포인트들 사이의 거리들을 나타낼 수 있다. 예를 들어, 정점(172)과 정점(174)사이의 거리는 7의 가중치를 가질 수 있는 한편, 정점들(172, 176) 사이의 거리는 8의 가중치를 가질 수 있다. 이는 정점(172)에 대응하는 포인트와 정점(176)에 대응하는 포인트 사이의 포인트 클라우드 내의 거리가 정점(172)에 대응하는 포인트와 정점(174)에 대응하는 포인트 사이의 포인트 클라우드 내의 거리보다 크다는 것을 나타낼 수 있다. 일부 실시예들에서, 최소 신장 트리에 도시된 가중치들은 유클리드 거리들과 같은 3-D 공간에서의 벡터 거리들에 기초할 수 있다.
156에서, 최소 신장 트리를 생성하는 데 사용되는 시작 포인트와 같은 시작 포인트의 하나 이상의 속성들에 대한 속성 값이 포인트 클라우드에 대한 압축된 속성 정보 내에 인코딩 및 포함되도록 할당될 수 있다. 위에서 논의된 바와 같이, 포인트 클라우드의 포인트들에 대한 예측된 속성 값들은 이웃 포인트들의 속성 값들에 기초하여 결정될 수 있다. 그러나, 적어도 하나의 포인트에 대한 초기 속성 값은, 디코더가 적어도 초기 속성 값 및 초기 속성 값에 기초하여 예측되는 예측된 속성 값들을 정정하기 위한 속성 정정 값들을 사용하여 다른 포인트들에 대한 속성 값들을 결정할 수 있도록 디코더에 제공된다. 따라서, 적어도 하나의 시작 포인트에 대한 하나 이상의 속성 값들이 압축된 속성 정보 파일 내에 명시적으로 인코딩된다. 추가적으로, 시작 포인트에 대한 공간 정보는, 디코더의 최소 신장 트리 생성기가 포인트 클라우드의 포인트들의 어느 포인트가 최소 신장 트리를 생성하기 위한 시작 포인트로서 사용되어야 하는지를 결정할 수 있도록 명시적으로 인코딩될 수 있다. 일부 실시예들에서, 시작 포인트는 시작 포인트를 플래깅하는 것 또는 포인트 식별의 다른 방법들과 같은, 시작 포인트에 대한 공간 정보를 명시적으로 인코딩하는 것 이외의 다른 방식들로 표시될 수 있다.
디코더는 시작 포인트의 표시를 수신할 것이고 포인트 클라우드의 포인트들에 대해 인코더와 동일하거나 유사한 공간 정보를 직면할 것이기 때문에, 디코더는 인코더에 의해 결정된 바와 같은 동일한 시작 포인트로부터 동일한 최소 신장 트리를 결정할 수 있다. 추가적으로, 디코더는 디코더에 의해 결정된 동일한 최소 신장 트리에 기초하여 인코더와 동일한 프로세싱 순서를 결정할 수 있다.
158에서, 평가 중인 현재 포인트에 대해, 인코더의 예측/정정 평가자가 현재 평가 중인 포인트의 속성에 대한 예측된 속성 값을 결정한다. 일부 실시예들에서, 현재 평가 중인 포인트는 하나 초과의 속성을 가질 수 있다. 따라서, 인코더의 예측/정정 평가자는 포인트에 대해 하나 초과의 속성 값을 예측할 수 있다. 평가 중인 각각의 포인트에 대해, 예측/정정 평가자는 할당 또는 예측된 속성 값들을 갖는 최근접 이웃 포인트들의 세트를 식별할 수 있다. 일부 실시예들에서, 식별하기 위한 이웃 포인트들의 수, "K"는 인코더의 구성가능한 파라미터일 수 있으며, 디코더가 속성 예측을 수행할 때 동일한 수의 이웃 포인트들을 식별할 수 있도록 인코더는 파라미터 "K"를 나타내는 압축된 속성 정보 파일 내의 구성 정보를 포함할 수 있다. 이어서, 예측/정정 평가자는 최소 신장 트리로부터의 가중치를 사용할 수 있거나, 또는 달리 평가 중인 포인트와 식별된 이웃 포인트들 중의 각자의 포인트들 사이의 거리들을 결정할 수 있다. 예측/정정 평가자는 평가 중인 포인트의 각각의 속성에 대한 속성 값을 예측하기 위해 역 거리 보간 방법을 사용할 수 있다. 예측/정정 평가자는 이어서 식별된 이웃 포인트들의 역 거리 가중된 속성 값들의 평균에 기초하여 평가 중인 포인트의 속성 값을 예측할 수 있다.
예를 들어, 168은 평가 중인 포인트(X, Y, Z)를 예시하며, 속성 A1은 8개의 식별된 이웃 포인트들의 역 거리 가중된 속성 값들에 기초하여 결정된다.
160에서, 속성 정정 값이 각각의 포인트에 대해 결정된다. 속성 정정 값은, 포인트의 각각의 속성에 대한 예측된 속성 값을, 캡처된 포인트 클라우드와 같은 원래의 비압축된 포인트 클라우드 내의 포인트의 대응하는 속성 값들과 비교하는 것에 기초하여 결정된다. 예를 들어, 170은 속성 정정 값들을 결정하기 위한 식을 예시하며, 속성 정정 값을 결정하기 위해, 캡처된 값이 예측된 값으로부터 감산된다. 도 1b는 158에서 예측 중인 속성 값들, 및 160에서 결정 중인 속성 정정 값들을 도시하지만, 일부 실시예들에서, 속성 정정 값들은 포인트에 대한 속성 값을 예측하는 것에 후속하여 포인트에 대해 결정될 수 있음에 주목한다. 이어서, 다음 포인트가 평가될 수 있으며, 포인트에 대해 예측된 속성 값이 결정되고, 포인트에 대해 속성 정정 값이 결정된다. 따라서, 평가 중인 각각의 포인트에 대해 158 및 160이 반복될 수 있다. 다른 실시예들에서, 다수의 포인트들에 대해 예측된 값들이 결정될 수 있고, 이어서 속성 정정 값들이 결정될 수 있다. 일부 실시예들에서, 평가 중인 후속 포인트들에 대한 예측들은 예측된 속성 값들에 기초할 수 있거나, 또는 정정된 속성 값들 또는 둘 모두에 기초할 수 있다. 일부 실시예들에서, 인코더와 디코더 둘 모두는, 후속 포인트들에 대한 예측된 값들이 예측 또는 정정된 속성 값들에 기초하여 결정되어야 할지 여부에 대한 동일한 규칙들을 따를 수 있다.
162에서, 포인트 클라우드의 포인트들에 대한 결정된 속성 정정 값들, 시작 포인트에 대한 하나 이상의 할당된 속성 값들, 시작 포인트의 공간 정보 또는 다른 표지들, 및 압축된 속성 정보 파일 내에 포함될 임의의 구성 정보가 인코딩된다. 도 5에서 더 상세히 논의되는 바와 같이, 산술 인코딩 및/또는 골룸(Golomb) 인코딩과 같은 다양한 인코딩 방법들이 속성 정정 값들, 할당된 속성 값들, 및 구성 정보를 인코딩하기 위해 사용될 수 있다.
도 2a는 일부 실시예들에 따른, 인코더의 컴포넌트들을 예시한다.
인코더(202)는 도 1a에 예시된 인코더(104)와 유사한 인코더일 수 있다. 인코더(202)는 공간 인코더(204), 최소 신장 트리 생성기(210), 예측/정정 평가자(206), 인입 데이터 인터페이스(214), 및 인출 데이터 인터페이스(208)를 포함한다. 인코더(202)는 또한 컨텍스트 저장소(216) 및 구성 저장소(218)를 포함한다.
일부 실시예들에서, 공간 인코더(204)와 같은 공간 인코더는 포인트 클라우드의 포인트들과 연관된 공간 정보를 압축할 수 있어서, 공간 정보가 압축 포맷으로 저장 또는 송신될 수 있다. 일부 실시예들에서, 공간 인코더는 도 7에 관하여 더 상세히 논의되는 바와 같이 포인트 클라우드의 포인트들에 대한 공간 정보를 압축하기 위해 K-D 트리들을 이용할 수 있다. 또한, 일부 실시예들에서, 공간 인코더(204)와 같은 공간 인코더는 도 6a 및 도 6b에 관하여 더 상세히 논의되는 바와 같이 서브샘플링 및 예측 기법을 이용할 수 있다. 일부 실시예들에서, 공간 인코더(204)와 같은 공간 인코더는 도 11d에 관하여 더 상세히 논의되는 바와 같이 포인트 클라우드의 포인트들에 대한 공간 정보를 압축하기 위해 옥트리들을 이용할 수 있다.
일부 실시예들에서, 압축된 공간 정보는 압축된 속성 정보와 함께 저장 또는 송신될 수 있거나, 별개로 저장 또는 송신될 수 있다. 어느 경우든, 포인트 클라우드의 포인트들에 대한 압축된 속성 정보를 수신하는 디코더는 또한 포인트 클라우드의 포인트들에 대한 압축된 공간 정보를 수신할 수 있거나, 또는 달리 포인트 클라우드의 포인트들에 대한 공간 정보를 획득할 수 있다.
최소 신장 트리 생성기(210)와 같은 최소 신장 트리 생성기는 포인트 클라우드의 포인트들 사이의 최소 거리들을 나타내는 최소 신장 트리를 생성하기 위해 포인트 클라우드의 포인트들에 대한 공간 정보를 이용할 수 있다. 포인트 클라우드의 포인트들에 대해 인코더에서 이용가능한 것과 동일한 공간 정보가 디코더에 제공되거나 디코더가 달리 이를 획득하기 때문에, 인코더의 최소 신장 트리 생성기, 예컨대, 인코더(202)의 최소 신장 트리 생성기(210)에 의해 결정된 최소 신장 트리는, 디코더의 최소 신장 트리 생성기, 예컨대, 디코더(220)의 최소 신장 트리 생성기(228)에 의해 생성된 최소 신장 트리와 동일하거나 유사할 수 있다.
인코더(202)의 예측/정정 평가자(206)와 같은 예측/정정 평가자는, 그에 대한 속성 값이 예측 중인 포인트의 K-최근접 이웃 포인트들의 속성 값들을 사용하는 역 거리 보간 방법에 기초하여 포인트 클라우드의 포인트들에 대한 예측된 속성 값들을 결정할 수 있다. 예측/정정 평가자는 또한 평가 중인 포인트의 예측된 속성 값을 비압축된 포인트 클라우드 내의 포인트의 원래 속성 값과 비교하여 속성 정정 값을 결정할 수 있다.
인코더(202)의 인출 데이터 인코더(208)와 같은 인출 데이터 인코더는 포인트 클라우드에 대한 압축된 속성 정보 파일 내에 포함된 속성 정정 값들 및 할당된 속성 값들을 인코딩할 수 있다. 일부 실시예들에서, 인출 데이터 인코더(208)와 같은 인출 데이터 인코더는 값에 포함된 심볼들의 수에 기초하여, 할당된 속성 값 또는 속성 정정 값과 같은 값을 인코딩하기 위한 인코딩 컨텍스트를 선택할 수 있다. 일부 실시예들에서, 더 많은 심볼들을 갖는 값들은 골룸 지수 인코딩을 포함하는 인코딩 컨텍스트를 사용하여 인코딩될 수 있는 반면, 더 적은 심볼들을 갖는 값들은 산술 인코딩을 사용하여 인코딩될 수 있다. 일부 실시예들에서, 인코딩 컨텍스트들은 하나 초과의 인코딩 기법을 포함할 수 있다. 예를 들어, 값의 일부분은 산술 인코딩을 사용하여 인코딩될 수 있는 한편, 값의 다른 부분은 골룸 지수 인코딩을 사용하여 인코딩될 수 있다. 일부 실시예들에서, 인코더(202)와 같은 인코더는, 속성 정정 값들 및 할당된 속성 값들을 인코딩하기 위해, 인출 데이터 인코더(208)와 같은 인출 데이터 인코더에 의해 사용되는 인코딩 컨텍스트들을 저장하는 컨텍스트 저장소(216)와 같은 컨텍스트 저장소를 포함할 수 있다.
일부 실시예들에서, 인코더(202)와 같은 인코더는 또한 인입 데이터 인터페이스(214)와 같은 인입 데이터 인터페이스를 포함할 수 있다. 일부 실시예들에서, 인코더는 포인트 클라우드의 포인트들을 캡처하거나 또는 포인트 클라우드의 포인트들과 연관되기 위한 속성 정보를 캡처하는 하나 이상의 센서들로부터 인입 데이터를 수신할 수 있다. 예를 들어, 일부 실시예들에서, 인코더는 LIDAR 시스템, 3-D 카메라, 3-D 스캐너 등으로부터 데이터를 수신할 수 있고, 또한 자이로스코프, 가속도계 등과 같은 다른 센서들로부터 데이터를 수신할 수 있다. 추가적으로, 인코더는 시스템 클럭으로부터 현재 시간과 같은 다른 데이터를 수신할 수 있다. 일부 실시예들에서, 그러한 상이한 유형들의 데이터는 인코더(202)의 인입 데이터 인터페이스(214)와 같은 인입 데이터 인터페이스를 통해 인코더에 의해 수신될 수 있다.
일부 실시예들에서, 인코더(202)와 같은 인코더는 구성 인터페이스(212)와 같은 구성 인터페이스를 더 포함할 수 있으며, 포인트 클라우드를 압축하기 위해 인코더에 의해 사용되는 하나 이상의 파라미터들은 구성 인터페이스를 통해 조정될 수 있다. 일부 실시예들에서, 구성 인터페이스(212)와 같은 구성 인터페이스는 API와 같은 프로그램 인터페이스일 수 있다. 인코더(202)와 같은 인코더에 의해 사용되는 구성들은 구성 저장소(218)와 같은 구성 저장소에 저장될 수 있다.
일부 실시예들에서, 인코더(202)와 같은 인코더는 도 2a에 도시된 것보다 더 많거나 적은 컴포넌트들을 포함할 수 있다.
도 2b는 일부 실시예들에 따른, 디코더의 컴포넌트들을 예시한다.
디코더(220)는 도 1a에 예시된 디코더(116)와 유사한 디코더일 수 있다. 디코더(220)는 인코딩된 데이터 인터페이스(226), 공간 디코더(222), 최소 신장 트리 생성기(228), 예측 평가자(224), 컨텍스트 저장소(232), 구성 저장소(234), 및 디코딩된 데이터 인터페이스(220)를 포함한다.
디코더(220)와 같은 디코더는 포인트 클라우드의 포인트들에 대한 인코딩된 압축된 포인트 클라우드 및/또는 인코딩된 압축된 속성 정보 파일을 수신할 수 있다. 예를 들어, 디코더(220)와 같은 디코더는 도 1a에 예시된 압축된 속성 정보(112) 또는 도 3에 예시된 압축된 속성 정보 파일(300)과 같은 압축된 속성 정보 파일을 수신할 수 있다. 압축된 속성 정보 파일은 인코딩된 데이터 인터페이스(226)와 같은 인코딩된 데이터 인터페이스를 통해 디코더에 의해 수신될 수 있다. 인코딩된 압축된 포인트 클라우드는 포인트 클라우드의 포인트들에 대한 공간 정보를 결정하기 위해 디코더에 의해 사용될 수 있다. 예를 들어, 압축된 포인트 클라우드 내에 포함된 포인트 클라우드의 포인트들의 공간 정보는 공간 정보 생성기(222)와 같은 공간 정보 생성기에 의해 생성될 수 있다. 일부 실시예들에서, 압축된 포인트 클라우드가 인코딩된 데이터 인터페이스(226)와 같은 인코딩된 데이터 인터페이스를 통해 저장 디바이스 또는 다른 중개 소스로부터 수신될 수 있으며, 압축된 포인트 클라우드는 인코더(104)와 같은 인코더에 의해 이전에 인코딩된 것이다. 일부 실시예들에서, 인코딩된 데이터 인터페이스(226)와 같은 인코딩된 데이터 인터페이스는 공간 정보를 디코딩할 수 있다. 예를 들어, 공간 정보는 산술 인코딩, 골룸 인코딩 등과 같은 다양한 인코딩 기법들을 사용하여 인코딩되었을 수 있다. 공간 정보 생성기(222)와 같은 공간 정보 생성기는 인코딩된 데이터 인터페이스(226)와 같은 인코딩된 데이터 인터페이스로부터 디코딩된 공간 정보를 수신할 수 있고, 디코딩된 공간 정보를 사용하여, 압축해제 중인 포인트 클라우드의 기하학적 구조의 표현을 생성할 수 있다. 예를 들어, 디코딩된 공간 정보는 압축해제될 포인트 클라우드의 기하학적 구조를 재생성하기 위해 서브샘플링된 예측 방법에 사용될 잔차 값들로서 포맷화될 수 있다. 그러한 상황들에서, 공간 정보 생성기(222)는 인코딩된 데이터 인터페이스(226)로부터의 디코딩된 공간 정보를 사용하여 압축해제 중인 포인트 클라우드의 기하학적 구조를 재생성할 수 있으며, 최소 신장 트리 생성기(228)는 공간 정보 생성기(222)에 의해 생성된 압축해제 중인 포인트 클라우드에 대한 재생성된 기하학적 구조에 기초하여 압축해제 중인 포인트 클라우드에 대해 최소 신장 트리를 결정할 수 있다.
포인트 클라우드에 대한 공간 정보가 결정되면, 최소 신장 트리 생성기(228)와 같은 최소 신장 트리 생성기가 포인트 클라우드에 대한 공간 정보에 기초하여 최소 신장 트리를 생성할 수 있다. 최소 신장 트리는 포인트 클라우드의 포인트들의 속성 값들을 결정하기 위한 평가 순서를 결정하기 위해, 디코더(220)의 예측 평가자(224)와 같은 디코더의 예측 평가자에 의해 사용될 수 있다. 추가적으로, 최소 신장 트리는 예측 평가자(224)와 같은 예측 평가자에 의해 사용되어, 평가 중인 포인트에 대한 최근접 이웃 포인트들을 식별할 수 있다.
예측 평가자(224)와 같은 디코더의 예측 평가자는 압축된 속성 정보 파일 내에 포함된 할당된 시작 포인트에 기초하여 최소 신장 트리의 시작 포인트를 선택할 수 있다. 일부 실시예들에서, 압축된 속성 정보 파일은 시작 포인트의 하나 이상의 대응하는 속성들에 대한 하나 이상의 할당된 값들을 포함할 수 있다. 일부 실시예들에서, 예측 평가자(224)와 같은 예측 평가자는 압축된 속성 정보 파일 내에 포함된 시작 포인트에 대한 할당된 값들에 기초하여, 압축해제 중인 포인트 클라우드의 압축해제 모델 내의 시작 포인트의 하나 이상의 속성들에 값들을 할당할 수 있다. 예측 평가자(224)와 같은 예측 평가자는 이웃 포인트들의 속성 값들을 결정하기 위해 시작 포인트의 속성들의 할당된 값들을 추가로 이용할 수 있다. 예를 들어, 예측 평가자는 평가할 다음 포인트로서 시작 포인트에 대한 다음의 최근접 이웃 포인트를 선택할 수 있는데, 다음의 최근접 이웃 포인트는 최소 신장 트리 내의 시작 포인트로부터 이웃 포인트까지의 최단 거리에 기초하여 선택된다. 디코더에서 최소 신장 트리는 인코더에서 최소 신장 트리를 생성하기 위해 사용된 것과 동일하거나 유사한 공간 정보에 기초하여 생성되기 때문에, 디코더는 압축해제 중인 포인트 클라우드의 포인트들을 평가하기 위한 평가 순서를 인코더에서 최소 신장 트리 내의 다음의 최근접 이웃들을 식별함으로써 결정된 것과 동일하게 결정할 수 있음에 주목한다.
예측 평가자가 평가 중인 포인트에 대해 "K" 최근접 이웃 포인트들을 식별하면, 예측 평가자는 "K" 최근접 이웃 포인트들의 대응하는 속성들의 속성 값들에 기초하여 평가 중인 포인트의 하나 이상의 속성들에 대한 하나 이상의 속성 값들을 예측할 수 있다. 일부 실시예들에서, 이웃 포인트들의 속성 값들에 기초하여 평가 중인 포인트의 속성 값을 예측하기 위해 역 거리 보간 기법이 사용될 수 있으며, 평가 중인 포인트에 더 가까운 거리에 있는 이웃 포인트들의 속성 값들은 평가 중인 포인트로부터 더 먼 거리들에 있는 이웃 포인트들의 속성 값들보다 더 크게 가중된다.
예측 평가자(224)와 같은 예측 평가자는 압축해제된 포인트 클라우드 내의 포인트에 대해 포함하기 위한 속성 값을 결정하기 위해, 예측된 속성 값에 속성 정정 값을 적용할 수 있다. 일부 실시예들에서, 포인트의 속성에 대한 속성 정정 값이 압축된 속성 정보 파일 내에 포함될 수 있다. 일부 실시예들에서, 속성 정정 값들은 복수의 지원된 코딩 컨텍스트들 중 하나를 사용하여 인코딩될 수 있으며, 상이한 코딩 컨텍스트들은 속성 정정 값에 포함된 심볼들의 수에 기초하여 상이한 속성 정정 값들을 인코딩하도록 선택된다. 일부 실시예들에서, 디코더(220)와 같은 디코더는 컨텍스트 저장소(232)와 같은 컨텍스트 저장소를 포함할 수 있으며, 컨텍스트 저장소는 인코더에서 대응하는 인코딩 컨텍스트들을 사용하여 인코딩되었던 할당된 속성 값들 또는 속성 정정 값들을 디코딩하기 위해 사용될 수 있는 복수의 인코딩 컨텍스트들을 저장한다.
디코더(220)와 같은 디코더는 디코딩된 데이터 인터페이스(230)와 같은 디코딩된 데이터 인터페이스를 통해 수신 디바이스 또는 애플리케이션으로 수신된 압축된 포인트 클라우드 및/또는 수신된 압축된 속성 정보 파일에 기초하여 생성된 압축해제된 포인트 클라우드를 제공할 수 있다. 압축해제된 포인트 클라우드는 포인트 클라우드의 포인트들 및 포인트 클라우드의 포인트들의 속성들에 대한 속성 값들을 포함할 수 있다. 일부 실시예들에서, 디코더는 포인트 클라우드의 다른 속성들에 대한 다른 속성 값들을 디코딩하지 않으면서 포인트 클라우드의 속성들에 대한 일부 속성 값들을 디코딩할 수 있다. 예를 들어, 포인트 클라우드는 포인트 클라우드의 포인트들에 대한 색상 속성들을 포함할 수 있고, 또한 예를 들어 속도와 같은, 포인트 클라우드의 포인트들에 대한 다른 속성들을 포함할 수 있다. 그러한 상황에서, 디코더는 색상 속성들과 같은 포인트 클라우드의 포인트들의 다른 속성들을 디코딩하지 않으면서, 속도 속성들과 같은 포인트 클라우드의 포인트들의 하나 이상의 속성들을 디코딩할 수 있다.
일부 실시예들에서, 압축해제된 포인트 클라우드 및/또는 압축해제된 속성 정보 파일은 헤드 마운트 디스플레이를 위한 것과 같은 시각적 디스플레이를 생성하기 위해 사용될 수 있다. 또한, 일부 실시예들에서, 압축해제된 포인트 클라우드 및/또는 압축해제된 속성 정보 파일은 하나 이상의 제어 결정들을 내리기 위해 압축해제된 포인트 클라우드 및/또는 압축해제된 속성 정보 파일을 사용하는 의사 결정 엔진에 제공될 수 있다. 일부 실시예들에서, 압축해제된 포인트 클라우드 및/또는 압축해제된 속성 정보 파일은 다양한 다른 애플리케이션들에서 또는 다양한 다른 목적들을 위해 사용될 수 있다.
도 3은 일부 실시예들에 따른, 예시적인 압축된 속성 정보 파일을 예시한다. 속성 정보 파일(300)은 구성 정보(302), 포인트 클라우드 데이터(304), 및 포인트 속성 정정 값들(306)을 포함한다. 일부 실시예들에서, 포인트 클라우드 파일(300)은 다수의 패킷들을 통해 부분적으로 통신될 수 있다. 일부 실시예들에서, 속성 정보 파일(300)에 도시된 모든 섹션들이 압축된 속성 정보를 송신하는 각각의 패킷에 포함될 수 있는 것은 아니다. 일부 실시예들에서, 속성 정보 파일(300)과 같은 속성 정보 파일은, 인코더 또는 디코더를 구현하는 서버, 또는 다른 컴퓨팅 디바이스와 같은 저장 디바이스에 저장될 수 있다.
도 4는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 압축하기 위한 프로세스를 예시한다.
402에서, 인코더는 포인트 클라우드의 포인트들 중 적어도 일부에 대한 속성 정보를 포함하는 포인트 클라우드를 수신한다. 포인트 클라우드는 포인트 클라우드를 캡처하는 하나 이상의 센서들로부터 수신될 수 있거나, 포인트 클라우드는 소프트웨어에서 생성될 수 있다. 예를 들어, 가상 현실 또는 증강 현실 시스템이 포인트 클라우드를 생성했을 수 있다.
404에서 포인트 클라우드의 공간 정보, 예를 들어 포인트 클라우드의 포인트들에 대한 X, Y, 및 Z 좌표들이 양자화될 수 있다. 일부 실시예들에서, 좌표들은 미터, 센티미터, 밀리미터 등과 같은 최근접 측정 단위로 반올림될 수 있다.
406에서, 양자화된 공간 정보가 압축된다. 일부 실시예들에서, 공간 정보는 도 6a 및 도 6b와 관련하여 더 상세히 논의된 바와 같이 서브샘플링 및 세부분할 예측 기법을 사용하여 압축될 수 있다. 또한, 일부 실시예들에서, 공간 정보는 도 7과 관련하여 더 상세히 논의된 바와 같이 K-D 트리 압축 기법을 사용하여 압축될 수 있거나, 도 11c 및 도 11d와 관련하여 더 상세히 논의된 바와 같이 옥트리 압축 기법을 사용하여 압축될 수 있다. 일부 실시예들에서, 포인트 클라우드의 공간 정보를 압축하기 위해 다른 적절한 압축 기법들이 사용될 수 있다.
408에서, 포인트 클라우드에 대한 압축된 공간 정보는 압축된 포인트 클라우드 파일 또는 압축된 포인트 클라우드 파일의 일부분으로서 인코딩된다. 일부 실시예들에서, 압축된 공간 정보 및 압축된 속성 정보는 공통의 압축된 포인트 클라우드 파일 내에 포함될 수 있거나, 별개의 파일들로서 통신되거나 저장될 수 있다.
412에서, 포인트 클라우드의 수신된 공간 정보는 최소 신장 트리를 생성하는 데 사용된다. 일부 실시예들에서, 포인트 클라우드의 공간 정보는 최소 신장 트리를 생성하기 전에 양자화될 수 있다. 추가적으로, 손실 압축(lossy compression) 기법이 포인트 클라우드의 공간 정보를 압축하기 위해 사용되는 일부 실시예들에서, 공간 정보는 최소 신장 트리를 생성하기 전에 손실 인코딩 및 손실 디코딩될 수 있다. 공간 정보에 대한 손실 압축을 이용하는 실시예들에서, 인코더에서 공간 정보를 인코딩 및 디코딩하는 것은, 인코더에서 생성된 최소 신장 트리가 이전에 손실 인코딩된 디코딩된 공간 정보를 사용하여 디코더에서 생성될 최소 신장 트리와 매칭될 것을 보장할 수 있다.
추가적으로, 일부 실시예들에서, 410에서, 포인트 클라우드의 포인트들에 대한 속성 정보가 양자화될 수 있다. 예를 들어, 속성 값들은 정수들로 또는 특정 측정 증분들로 반올림될 수 있다. "걷기", "달리기", "운전" 등과 같은 문자열 값들을 통신하기 위해 정수들이 사용되는 경우와 같이 속성 값들이 정수들인 일부 실시예들에서, 410에서의 양자화는 생략될 수 있다.
414에서, 시작 포인트에 대한 속성 값들이 할당된다. 시작 포인트에 대한 할당된 속성 값들은 속성 정정 값들과 함께 압축된 속성 정보 파일 내에 인코딩된다. 디코더가 이웃 포인트들까지의 거리들 및 이웃 포인트들의 속성 값들에 기초하여 속성 값들을 예측하기 때문에, 적어도 하나의 포인트에 대한 적어도 하나의 속성 값이 압축된 속성 파일 내에 명시적으로 인코딩된다. 일부 실시예들에서, 포인트 클라우드의 포인트들은 다수의 속성들을 포함할 수 있고, 이러한 실시예들에서, 각각의 유형의 속성에 대한 적어도 하나의 속성 값은 포인트 클라우드의 적어도 하나의 포인트에 대해 인코딩될 수 있다. 일부 실시예들에서, 시작 포인트는 412에서 최소 신장 트리를 결정할 때 평가된 제1 포인트일 수 있다. 일부 실시예들에서, 인코더는 시작 포인트에 대한 공간 정보를 나타내는 데이터 및/또는 포인트 클라우드의 어느 포인트가 시작 포인트 또는 시작 포인트들인지에 대한 다른 표지들을 인코딩할 수 있다. 추가적으로, 인코더는 시작 포인트의 하나 이상의 속성들에 대한 속성 값들을 인코딩할 수 있다.
416에서, 인코더는 시작 포인트 이외의 포인트 클라우드의 다른 포인트들에 대한 속성 값들을 예측하기 위한 평가 순서를 결정하며, 속성 정정 값들을 예측하고 결정하는 것은 본 명세서에서 포인트의 속성들을 "평가하는" 것으로 지칭될 수 있다. 평가 순서는 시작 포인트로부터 인접한 이웃 포인트까지의 최단 거리에 기초하여 결정될 수 있으며, 최근접 이웃 포인트는 평가 순서에서 다음 포인트로서 선택된다. 일부 실시예들에서, 평가 순서는 평가할 다음 포인트에 대해서만 결정될 수 있다. 다른 실시예들에서, 포인트 클라우드의 포인트들 중의 전부 또는 다수의 포인트들에 대한 평가 순서가 416에서 결정될 수 있다. 일부 실시예들에서, 평가 순서는 즉각적으로(on the fly), 예를 들어, 포인트들이 평가될 때 한 번에 하나의 포인트씩 결정될 수 있다.
418에서, 시작 포인트 또는 평가 중인 후속 포인트의 이웃 포인트가 선택된다. 일부 실시예들에서, 다음으로 평가될 이웃 포인트는, 마지막으로 평가된 포인트의 다른 이웃 포인트들과 비교하여, 마지막으로 평가된 포인트로부터의 최단 거리에 있는 이웃 포인트에 기초하여 선택될 수 있다. 일부 실시예들에서, 418에서 선택된 포인트는 416에서 결정된 평가 순서에 기초하여 선택될 수 있다. 일부 실시예들에서, 평가 순서는 즉각적으로, 예를 들어, 포인트들이 평가될 때 한 번에 하나의 포인트씩 결정될 수 있다. 예를 들어, 평가 순서에서 다음 포인트는 평가될 다음 포인트가 418에서 선택될 때마다 결정될 수 있다. 이러한 실시예들에서, 416은 생략될 수 있다. 평가될 각각의 다음 포인트가 마지막으로 평가된 포인트로부터 최단 거리에 있는 순서로 포인트들이 평가되기 때문에, 평가 중인 포인트들의 속성 값들 사이의 엔트로피가 최소화될 수 있다. 이는 서로 인접한 포인트들이 유사한 속성들을 가질 가능성이 가장 높기 때문이다. 그러나 일부 상황들에서, 인접 포인트들은 속성들 사이에서 다양한 레벨들의 유사성을 가질 수 있다.
420에서, 현재 평가 중인 포인트에 대한 "K" 최근접 이웃 포인트들이 결정된다. 파라미터 "K"는 인코더에 의해 선택되는 구성가능한 파라미터이거나 사용자 구성가능한 파라미터로서 인코더에 제공될 수 있다. "K" 최근접 이웃 포인트들을 선택하기 위해, 인코더는 평가 중인 포인트에 대한 첫 번째 "K" 최근접 포인트들을 412에서 결정된 최소 신장 트리에 따라 식별할 수 있다. 일부 실시예들에서, 할당된 속성 값들을 갖거나 예측된 속성 값들이 이미 결정된 포인트들만이 "K" 최근접 이웃 포인트들 내에 포함될 수 있다. 일부 실시예들에서, 다양한 수의 포인트들이 식별될 수 있다. 예를 들어, 일부 실시예들에서, "K"는 5개의 포인트들, 10개의 포인트들, 16개의 포인트들 등일 수 있다. 포인트 클라우드가 3-D 공간 내의 포인트들을 포함하기 때문에, 특정 포인트가 다수의 평면들의 다수의 이웃 포인트들을 가질 수 있다. 일부 실시예들에서, 인코더 및 디코더는, 포인트에 대해 값이 이미 예측되었는지 여부에 상관없이, 포인트들을 "K" 최근접 이웃 포인트들로서 식별하도록 구성될 수 있다. 또한, 일부 실시예들에서, 예측에 사용된 포인트들에 대한 속성 값들은 이전에 예측된 속성 값들 또는 속성 정정 값을 적용하는 것에 기초하여 정정되었던 정정된 예측된 속성 값들일 수 있다. 어느 경우든, 인코더 및 디코더는 "K" 최근접 이웃 포인트들을 식별할 때 그리고 "K" 최근접 이웃 포인트들의 속성 값들에 기초하여 포인트의 속성 값을 예측할 때 동일한 규칙들을 적용하도록 구성될 수 있다.
422에서, 현재 평가 중인 포인트의 각각의 속성에 대해 하나 이상의 속성 값들이 결정된다. 속성 값들은 역 거리 보간에 기초하여 결정될 수 있다. 역 거리 보간은 "K" 최근접 이웃 포인트들의 속성 값들에 기초하여 예측된 속성 값을 보간할 수 있다. "K" 최근접 이웃 포인트들의 속성 값들은 "K" 최근접 이웃 포인트들 중의 각자의 포인트들과 평가 중인 포인트 사이의 각자의 거리들에 기초하여 가중될 수 있다. 현재 평가 중인 포인트로부터 더 짧은 거리들에 있는 이웃 포인트들의 속성 값들은 현재 평가 중인 포인트로부터 더 먼 거리들에 있는 이웃 포인트들의 속성 값들보다 더 크게 가중될 수 있다.
424에서, 속성 정정 값들은 현재 평가 중인 포인트에 대한 하나 이상의 예측된 속성 값들에 대해 결정된다. 속성 정정 값들은, 속성 정보 압축 이전에, 예측된 속성 값들을 포인트 클라우드 내의 동일한 포인트(또는 유사한 포인트)에 대한 대응하는 속성 값들과 비교하는 것에 기초하여 결정될 수 있다. 일부 실시예들에서, 410에서 생성된 양자화된 속성 정보와 같은 양자화된 속성 정보는 속성 정정 값들을 결정하는 데 사용될 수 있다. 일부 실시예들에서, 속성 정정 값은 또한 "잔류 오차(residual error)"로 지칭될 수 있으며, 잔류 오차는 예측된 속성 값과 실제 속성 값 사이의 차이를 나타낸다.
426에서, 속성 정정 값들이 결정될 포인트 클라우드 내에 추가 포인트들이 있는지 결정된다. 평가할 추가 포인트들이 있는 경우, 프로세스는 418로 되돌아가고, 평가 순서에서의 다음 포인트가 평가되도록 선택된다. 위에서 논의된 바와 같이, 일부 실시예들에서, 평가 순서는 즉각적으로, 예를 들어, 포인트들이 평가될 때 한 번에 하나의 포인트씩 결정될 수 있다. 따라서, 그러한 실시예들에서, 최소 신장 트리는 평가할 다음 포인트를, 다음 포인트와 마지막으로 평가된 포인트가 최단 거리에 있는 것에 기초하여 선택하기 위해 참고될 수 있다. 프로세스는, 예측된 속성 값들 및 예측된 속성 값들에 대한 속성 정정 값들을 결정하기 위해 포인트 클라우드의 모든 포인트들의 전부 또는 일부가 평가될 때까지 단계들(418 내지 426)을 반복할 수 있다.
428에서, 결정된 속성 정정 값들, 할당된 속성 값들, 및 압축된 속성 정보 파일을 디코딩하기 위한, 파라미터 "K"와 같은 임의의 구성 정보가 인코딩된다.
속성 정정 값들, 할당된 속성 값들, 및 임의의 구성 정보는 다양한 인코딩 기법들을 사용하여 인코딩될 수 있다.
예를 들어, 도 5는 일부 실시예들에 따른, 속성 정정 값들을 인코딩하기 위한 프로세스를 예시한다. 502에서, 그 값들(예를 들어, 속성 정정 값들)이 인코딩 중인 포인트에 대한 속성 정정 값이 부호 없는(unsigned) 값으로 변환된다. 예를 들어, 일부 실시예들에서, 음의 값들인 속성 정정 값들은 홀수들에 할당될 수 있고, 양의 값들인 속성 정정 값들이 짝수들에 할당될 수 있다. 따라서, 속성 정정 값의 값이 짝수인지 홀수인지 여부에 기초하여, 속성 정정 값이 양수인지 음수인지 여부가 암시될 수 있다. 일부 실시예들에서, 할당된 속성 값들이 또한 부호 없는 값들로 변환될 수 있다. 일부 실시예들에서, 속성 값들은 모두, 예를 들어 "걷기", "달리기", "운전" 등과 같은 문자열 값들을 나타내도록 할당된 정수들의 경우에, 양의 값들일 수 있다. 그러한 경우들에서, 502는 생략될 수 있다.
504에서, 포인트에 대한 제1 값을 인코딩하기 위한 인코딩 컨텍스트가 선택된다. 값은, 예를 들어, 할당된 속성 값일 수 있거나, 속성 정정 값일 수 있다. 인코딩 컨텍스트는 복수의 지원되는 인코딩 컨텍스트들로부터 선택될 수 있다. 예를 들어, 도 2a에 예시된 바와 같이, 인코더(202)와 같은 인코더의 컨텍스트 저장소(216)와 같은 컨텍스트 저장소는 포인트 클라우드의 포인트들에 대한 속성 값들 또는 속성 정정 값들을 인코딩하기 위한 복수의 지원되는 인코딩 컨텍스트를 저장할 수 있다. 일부 실시예들에서, 인코딩 컨텍스트는 인코딩될 값의 특성들에 기초하여 선택될 수 있다. 예를 들어, 일부 인코딩 컨텍스트들은 소정 특성들을 갖는 값들을 인코딩하기 위해 최적화될 수 있는 한편, 다른 인코딩 컨텍스트들은 다른 특성들을 갖는 값들을 인코딩하기 위해 최적화될 수 있다.
일부 실시예들에서, 인코딩 컨텍스트는 인코딩될 값에 포함된 다량의(a quantity of) 또는 다양한 심볼들에 기초하여 선택될 수 있다. 예를 들어, 더 적은 또는 덜 다양한 심볼들을 갖는 값들은 산술 인코딩 기법들을 사용하여 인코딩될 수 있는 한편, 더 많은 또는 더 다양한 심볼들을 갖는 값들은 지수 골룸 인코딩 기법들을 사용하여 인코딩될 수 있다. 일부 실시예들에서, 인코딩 컨텍스트는 하나 초과의 인코딩 기법을 사용하여 값의 일부분들을 인코딩할 수 있다. 예를 들어, 일부 실시예들에서, 인코딩 컨텍스트는 값의 일부분이 산술 인코딩 기법을 사용하여 인코딩되고, 값의 다른 부분이 골룸 인코딩 기법을 사용하여 인코딩될 것을 나타낼 수 있다. 일부 실시예들에서, 인코딩 컨텍스트는 임계치 미만인 값의 일부분은 산술 인코딩과 같은 제1 인코딩 기법을 사용하여 인코딩될 것인 반면, 임계치를 초과하는 값의 다른 부분은 지수 골룸 인코딩과 같은 다른 인코딩 기법을 사용하여 인코딩될 것을 나타낼 수 있다. 일부 실시예들에서, 컨텍스트 저장소는 다수의 인코딩 컨텍스트들을 저장할 수 있으며, 각각의 인코딩 컨텍스트는 특정 특성들을 갖는 값들에 적합하다.
506에서, 포인트에 대한 제1 값(또는 추가 값)이 504에서 선택된 인코딩 컨텍스트를 사용하여 인코딩될 수 있다. 508에서, 포인트에 대한 인코딩될 추가 값들이 있는지 결정된다. 포인트에 대한 인코딩될 추가 값들이 있는 경우, 506에서, 504에서 선택된 동일한 선택된 인코딩 기법을 사용하여 추가 값들이 인코딩될 수 있다. 예를 들어, 포인트는 "적색(Red)", "녹색(Green)", "청색(Blue)" 색상 속성을 가질 수 있다. R, G, B 색 공간 내의 인접 포인트들 사이의 차이들이 유사할 수 있기 때문에, 적색 속성, 녹색 속성, 및 청색 속성에 대한 속성 정정 값들은 유사할 수 있다. 따라서, 일부 실시예들에서, 인코더는 색상 속성들 중 제1 색상 속성, 예를 들어, 적색 속성들에 대한 속성 정정 값들을 인코딩하기 위한 인코딩 컨텍스트를 선택할 수 있으며, 녹색 속성 및 청색 속성과 같은 다른 색상 속성들에 대한 속성 정정 값들을 인코딩하기 위해 동일한 인코딩 컨텍스트를 사용할 수 있다.
510에서, 인코딩된 값들, 예컨대 인코딩된 할당된 속성 값들 및 인코딩된 속성 정정 값들이 압축된 속성 정보 파일 내에 포함될 수 있다. 일부 실시예들에서, 인코딩된 값들은, 최소 신장 트리에 기초하여 포인트 클라우드에 대해 결정된 평가 순서에 따라 압축된 속성 정보 파일 내에 포함될 수 있다. 따라서, 디코더는 압축된 속성 정보 파일 내에 인코딩된 값들이 포함되는 순서에 기초하여, 어느 인코딩된 값이 어느 포인트의 속성과 함께 될지를 결정할 수 있다. 추가적으로, 일부 실시예들에서, 압축된 속성 정보 파일 내에 데이터가 포함되어, 포인트들에 대한 값들 중의 각자의 값들을 인코딩하도록 선택된 인코딩 컨텍스트들 중의 각자의 컨텍스트들을 나타낼 수 있다.
도 6a 및 도 6b는 일부 실시예들에 따른, 포인트 클라우드의 공간 정보를 압축하기 위한 예시적인 프로세스를 예시한다.
602에서, 인코더는 포인트 클라우드를 수신한다. 포인트 클라우드는 하나 이상의 센서들로부터의 캡처된 포인트 클라우드일 수 있거나, 그래픽 애플리케이션에 의해 생성되는 포인트 클라우드와 같은 생성된 포인트 클라우드일 수 있다. 예를 들어, 604는 비압축된 포인트 클라우드의 포인트들을 예시한다.
606에서, 인코더는 수신된 포인트 클라우드를 서브샘플링하여 서브샘플링된 포인트 클라우드를 생성한다. 서브샘플링된 포인트 클라우드는 수신된 포인트 클라우드보다 더 적은 포인트들을 포함할 수 있다. 예를 들어, 수신된 포인트 클라우드는 수백 개의 포인트들, 수천 개의 포인트들, 또는 수백만 개의 포인트들을 포함할 수 있고, 서브샘플링된 포인트 클라우드는 수십 개의 포인트들, 수백 개의 포인트들 또는 수천 개의 포인트들을 포함할 수 있다. 예를 들어, 608은 602에서 수신된 포인트 클라우드의 서브샘플링된 포인트들, 예를 들어, 604에서의 포인트 클라우드의 포인트들의 서브샘플링을 예시한다.
일부 실시예들에서, 인코더는 서브샘플링된 포인트 클라우드를 인코딩 및 디코딩하여, 압축된 포인트 클라우드를 디코딩할 때 디코더가 직면할 대표적인 서브샘플링된 포인트 클라우드를 생성할 수 있다. 일부 실시예들에서, 인코더 및 디코더는 대표적인 서브샘플링된 포인트 클라우드를 생성하기 위해 손실 압축/압축해제 알고리즘을 실행할 수 있다. 일부 실시예들에서, 대표적인 서브샘플링된 포인트 클라우드를 생성하는 것의 일부로서, 서브샘플링된 포인트 클라우드의 포인트들에 대한 공간 정보는 양자화될 수 있다. 일부 실시예들에서, 인코더는 무손실 압축 기법들을 이용할 수 있고, 서브샘플링된 포인트 클라우드의 인코딩 및 디코딩이 생략될 수 있다. 예를 들어, 무손실 압축 기법들을 사용하는 경우, 원래의 서브샘플링된 포인트 클라우드가 디코더가 직면할 서브샘플링된 포인트 클라우드의 대표가 될 수 있는데, 왜냐하면 무손실 압축에서는 압축 및 압축해제 동안 데이터가 손실되지 않을 수 있기 때문이다.
610에서, 인코더는 포인트 클라우드의 압축을 위해 선택된 구성 파라미터들에 따라 또는 고정된 구성 파라미터들에 따라, 서브샘플링된 포인트 클라우드의 포인트들 사이의 세부분할 위치들을 식별한다. 인코더에 의해 사용되고 고정 구성 파라미터들이 아닌 구성 파라미터들은 압축된 포인트 클라우드에 구성 파라미터들에 대한 값들을 포함함으로써 인코더로 통신된다. 따라서, 디코더는 압축된 포인트 클라우드 내에 포함된 세부분할 구성 파라미터들에 기초하여 평가된 인코더와 동일한 세부분할 위치들을 결정할 수 있다. 예를 들어, 612는 서브샘플링된 포인트 클라우드의 이웃 포인트들 사이의 식별된 세분분할 위치들을 예시한다.
614에서, 인코더는, 세부분할 위치들 중의 각자의 위치들에 대해, 압축해제된 포인트 클라우드 내의 세부분할 위치에 포인트가 포함될 것인지 아니면 포함되지 않을 것인지를 결정한다. 이러한 결정을 나타내는 데이터는 압축된 포인트 클라우드에 인코딩된다. 일부 실시예들에서, 이러한 결정을 나타내는 데이터는 "참"이 포인트가 포함될 것임을 의미하고, "거짓"이 포인트가 포함되지 않을 것임을 의미하는 단일 비트일 수 있다. 추가적으로, 인코더는 압축해제된 포인트 클라우드 내에 포함될 포인트가 압축해제된 포인트 클라우드 내의 세부분할 위치에 대해 재위치되어야 한다고 결정할 수 있다. 예를 들어, 616은 세부분할 위치에 대해 재위치되어야 하는 일부 포인트들을 도시한다. 그러한 포인트들에 대해, 인코더는 세부분할 위치에 대해 포인트를 재위치시키는 방식을 나타내는 데이터를 추가로 인코딩할 수 있다. 일부 실시예들에서, 위치 정정 정보가 양자화되고 엔트로피 인코딩될 수 있다. 일부 실시예들에서, 위치 정정 정보는 포인트가 세부분할 위치에 대해 재위치되는 방식을 나타내는 델타 X, 델타 Y, 및/또는 델타 Z 값들을 포함할 수 있다. 다른 실시예들에서, 위치 정정 정보는 다음과 같이 계산된 위치 정정 정보의 법선 성분에 대응하는 단일 스칼라 값을 포함할 수 있다:
Figure pct00001
상기 식에서, ΔN은 세부분할 위치에 대한 재배치 또는 조정된 포인트 위치(예를 들어,
Figure pct00002
)와 원래의 세부분할 위치(예를 들어,
Figure pct00003
) 사이의 차이인 위치 정정 정보를 나타내는 스칼라 값이다. 이러한 벡터 차이 및 세부분할 위치에서의 법선 벡터의 교차 곱은 스칼라 값 ΔN을 생성한다. 디코더는 세부분할 위치에서의 법선 벡터를 결정할 수 있고, 세부분할 위치의 좌표들, 예를 들어,
Figure pct00004
를 결정할 수 있기 때문에, 디코더는 또한 세부분할 위치에 대한 포인트에 대한 재배치된 위치를 표현하는 조정된 위치에 대한 상기 식을 해결함으로써 조정된 위치의 좌표들, 예를 들어,
Figure pct00005
를 결정할 수 있다. 일부 실시예들에서, 위치 정정 정보는 법선 성분 및 하나 이상의 추가 접선 성분들로 추가로 분해될 수 있다. 그러한 실시예에서, 법선 성분, 예컨대 ΔN, 및 접선 성분(들)은 압축된 포인트 클라우드 내로의 포함을 위해 양자화 및 인코딩될 수 있다.
일부 실시예들에서, 인코더는 (세부분할 위치들에 포함된 포인트들, 또는 세부분할 위치들에 대해 재위치된 위치들에 포함된 포인트들에 더하여) 하나 이상의 추가 포인트들이 압축해제된 포인트 클라우드 내에 포함될 것인지 여부를 결정할 수 있다. 예를 들어, 원래의 포인트 클라우드가 불규칙적인 표면 또는 형상을 가져서, 서브샘플링된 포인트 클라우드 내의 포인트들 사이의 세부분할 위치들이 불규칙한 표면 또는 형상을 적절히 표현하지 않는 경우에, 인코더는, 세부분할 위치들에 포함되거나 압축해제된 포인트 클라우드 내의 세부분할 위치들에 대해 재위치되도록 결정된 포인트들에 더하여 하나 이상의 추가 포인트들을 포함하도록 결정할 수 있다. 추가적으로, 인코더는, 타겟 비트레이트, 타겟 압축비, 품질 타겟 메트릭 등과 같은 시스템 제약들에 기초하여, 압축해제된 포인트 클라우드 내에 하나 이상의 추가 포인트들이 포함될 것인지 여부를 결정할 수 있다. 일부 실시예들에서, 비트 예산은 네트워크 조건들, 프로세서 부하 등과 같은 변화하는 조건들로 인해 변경될 수 있다. 이러한 실시예들에서, 인코더는 변화하는 비트 예산에 기초하여 압축해제된 포인트 클라우드 내에 포함되기 위해 인코딩되는 추가 포인트들의 수량을 조정할 수 있다. 일부 실시예들에서, 인코더는 비트 예산이 초과되지 않게 소비되도록 추가 포인트들을 포함할 수 있다. 예를 들어, 비트 예산이 더 높을 때, 인코더는 비트 예산을 소비할(그리고 품질을 향상시킬) 더 많은 추가 포인트들을 포함할 수 있고, 비트 예산이 더 적은 경우, 인코더는 비트 예산이 소비되지만 초과되지 않도록 더 적은 추가 포인트들을 포함할 수 있다.
일부 실시예들에서, 인코더는 추가의 세부분할 반복들이 수행되어야 하는지 여부를 추가로 결정할 수 있다. 그러한 경우, 압축해제된 포인트 클라우드 내에 포함되거나, 재위치되거나, 추가적으로 포함될 것으로 결정된 포인트들이 고려되고, 프로세스는 압축해제된 포인트 클라우드 내에 포함되고, 재위치되고, 추가적으로 포함될 것으로 결정되는 포인트들을 포함하는 업데이트된 서브샘플링된 포인트 클라우드의 새로운 세부분할 위치들을 식별하기 위해 610으로 되돌아간다. 일부 실시예들에서, 수행될 세부분할 반복들의 횟수(N)는 인코더의 고정 파라미터 또는 구성가능한 파라미터일 수 있다. 일부 실시예들에서, 상이한 세부분할 반복 값들이 포인트 클라우드의 상이한 부분들에 할당될 수 있다. 예를 들어, 인코더는 포인트 클라우드가 뷰잉되는(viewed) 시점(point of view)을 고려할 수 있고, 그 시점에서 뷰잉되는 포인트 클라우드의 전경(foreground) 내의 포인트 클라우드의 포인트들에 대해 더 많은 세부분할 반복들을, 그리고 그 시점에서 뷰잉되는 포인트 클라우드의 배경(background) 내의 포인트들에 대해 더 적은 세부분할 반복들을 수행할 수 있다.
618에서, 포인트 클라우드의 서브샘플링된 포인트들에 대한 공간 정보가 인코딩된다. 추가적으로, 세부분할 위치 포함 및 재위치 데이터가 인코딩된다. 추가적으로, 인코더에 의해 선택되거나 사용자로부터 인코더에 제공되는 임의의 구성가능한 파라미터들이 인코딩된다. 이어서, 압축된 포인트 클라우드는 압축된 포인트 클라우드 파일, 다수의 압축된 포인트 클라우드 파일들로서 수신 엔티티에 전송될 수 있거나, 패킷화되고 다수의 패킷들을 통해 디코더 또는 저장 디바이스와 같은 수신 엔티티로 통신될 수 있다. 일부 실시예들에서, 압축된 포인트 클라우드는 압축된 공간 정보 및 압축된 속성 정보 둘 모두를 포함할 수 있다. 다른 실시예들에서, 압축된 공간 정보 및 압축된 속성 정보는 별개의 압축된 포인트 클라우드 파일들 내에 포함될 수 있다.
도 7은 일부 실시예들에 따른, 포인트 클라우드의 공간 정보를 압축하기 위한 다른 예시적인 프로세스를 예시한다.
일부 실시예들에서, 도 6a 및 도 6b에 설명된 서브샘플링 및 예측 공간 정보 기법 이외의 다른 공간 정보 압축 기법들이 사용될 수 있다. 예를 들어, 공간 인코더(204)와 같은 공간 인코더, 또는 공간 디코더(222)와 같은 공간 디코더는 K-D 트리 공간 정보 압축 기법과 같은 다른 공간 정보 압축 기법들을 이용할 수 있다. 예를 들어, 도 4의 406에서 공간 정보를 압축하는 것은 도 6a 및 도 6b에 설명된 것과 유사한 서브샘플링 및 예측 기법을 이용하여 수행될 수 있거나, 도 7에 설명된 것과 유사한 K-D 트리 공간 정보 압축 기법을 이용하여 수행될 수 있거나, 다른 적합한 공간 정보 압축 기법을 이용하여 수행될 수 있다.
K-D 트리 공간 정보 압축 기법에서, 공간 정보를 포함하는 포인트 클라우드가 702에서 수신될 수 있다. 일부 실시예들에서, 공간 정보는 이전에 양자화되었을 수 있거나, 수신된 후에 추가로 양자화될 수 있다. 예를 들어, 718은 702에서 수신될 수 있는 캡처된 포인트 클라우드를 예시한다. 단순화를 위해, 718은 2차원의 포인트 클라우드를 예시한다. 그러나, 일부 실시예들에서, 수신된 포인트 클라우드는 3-D 공간 내의 포인트들을 포함할 수 있다.
704에서, 수신된 포인트 클라우드의 공간 정보를 사용하여 K-차원 트리 또는 K-D 트리가 구축된다. 일부 실시예들에서, K-D 트리는 포인트 클라우드의 1-D, 2-D, 또는 3-D 공간과 같은 공간을 미리 결정된 순서로 이분할함으로써 구축될 수 있다. 예를 들어, 포인트 클라우드의 포인트들을 포함하는 3-D 공간은 초기에, 3개의 축 중 하나의 축, 예컨대 X-축과 교차하는 평면을 통해 이분할될 수 있다. 이어서, 후속 분할은 생성된 공간을 3개의 축 중 다른 하나의 축, 예컨대 Y-축을 따라 분할할 수 있다. 이어서, 다른 분할은 생성된 공간을 축의 다른 하나의 축, 예컨대, Z-축을 따라 분할할 수 있다. 분할이 수행될 때마다, 분할에 의해 생성된 자식 셀(child cell)에 포함된 포인트들의 수가 기록될 수 있다. 일부 실시예들에서, 분할으로부터 생성된 2개의 자식 셀들 중 하나의 자식 셀 내의 포인트들의 수만 기록될 수 있다. 이는, 다른 자식 셀 내에 포함된 포인트들의 수는 기록된 자식 셀 내의 포인트들의 수를 분할 이전의 부모 셀(parent cell) 내의 포인트들의 총수에서 감산함으로써 결정될 수 있기 때문이다.
K-D 트리는 포인트 클라우드의 포인트들을 포함하는 공간의 순차적인 분할들로부터 생성되는 셀들 내에 포함된 포인트들의 수의 시퀀스를 포함할 수 있다. 일부 실시예들에서, K-D 트리를 구축하는 것은 각각의 최하위 레벨 자식 셀 내에 단일 포인트만이 포함될 때까지 공간을 계속해서 세부분할하는 것을 포함할 수 있다. K-D 트리는 순차적인 분할들로부터 생성되는 순차적인 셀들 내의 포인트들의 수의 시퀀스로서 통신될 수 있다. 디코더는 인코더가 따르는 세부분할 시퀀스를 나타내는 정보로 구성될 수 있다. 예를 들어, 인코더는 각각의 최하위 레벨 자식 셀 내에 단일 포인트만이 남을 때까지 미리 정의된 분할 시퀀스를 따를 수 있다. 디코더는 K-D 트리를 구축하기 위해 따른 분할 시퀀스 및 각각의 세부분할으로부터 생성된 포인트들의 수(이는 압축된 공간 정보로서 디코더에 통신됨)를 알 수 있기 때문에, 디코더는 포인트 클라우드를 재구성하는 것이 가능할 수 있다.
예를 들어, 720은 2차원 공간에서의 K-D 압축의 단순화된 예를 예시한다. 초기 공간은 7개의 포인트들을 포함한다. 이것은 제1 부모 셀로 간주될 수 있고, K-D 트리는 K-D 트리의 제1 개수로서 포인트들의 수인 "7"로 인코딩될 수 있으며, 이는 K-D 트리 내에 총 7개의 포인트들이 존재함을 나타낸다. 다음 단계는 공간을 X-축을 따라 분할하여 2개의 자식 셀들, 즉, 3개의 포인트들을 갖는 좌측 자식 셀 및 4개의 포인트들을 갖는 우측 자식 셀을 생성하는 것일 수 있다. K-D 트리는 좌측 자식 셀 내의 포인트들의 수, 예를 들어 "3"을 다음의 K-D 트리의 수로서 포함할 수 있다. 우측 자식 셀 내의 포인트들의 수는 부모 셀 내의 포인트들의 수로부터 좌측 자식 셀 내의 포인트들의 수를 감산하는 것에 기초하여 결정될 수 있다는 것을 상기한다. 추가의 단계는 좌측 및 우측 자식 셀들 각각이 더 하위 레벨의 자식 셀들로 이분할되도록, 추가 횟수로 공간을 Y-축을 따라 분할하는 것일 수 있다. 다시, 좌측 하위 레벨 자식 셀들 내에 포함된 포인트들의 수는 K-D 트리 내에, 예를 들어 "0" 및 "1"로 포함될 수 있다. 이어서, 다음 단계는 0이 아닌 하위 레벨의 자식 셀들을 X-축을 따라 분할하고, K-D 트리 내의 하위 레벨의 좌측 자식 셀들 각각 내의 포인트들의 수를 기록하는 것일 수 있다. 이러한 프로세스는 최하위 레벨의 자식 셀 내에 단지 단일 포인트만이 남아 있을 때까지 계속될 수 있다. 디코더는 K-D 트리의 각각의 좌측 자식 셀에 대한 포인트 전체수(totals)의 시퀀스를 수신하는 것에 기초하여 포인트 클라우드를 재생성하기 위해 역방향 프로세스를 이용할 수 있다.
706에서, K-D 트리의 제1 셀에 대한 포인트들의 수, 예를 들어, 7개의 포인트들을 포함하는 부모 셀을 인코딩하기 위한 인코딩 컨텍스트가 선택된다. 일부 실시예들에서, 컨텍스트 저장소는 수백 또는 수천 개의 인코딩 컨텍스트들을 저장할 수 있다. 일부 실시예들에서, 포인트들의 최고 수보다 더 많은 포인트들을 포함하는 셀들 인코딩 컨텍스트는 최고 수 포인트 인코딩 컨텍스트를 사용하여 인코딩될 수 있다. 일부 실시예들에서, 인코딩 컨텍스트는 산술 인코딩, 골룸 지수 인코딩, 또는 이 둘의 조합을 포함할 수 있다. 일부 실시예들에서, 다른 인코딩 기법들이 이용될 수도 있다. 일부 실시예들에서, 산술 인코딩 컨텍스트는 특정 심볼들에 대한 확률들을 포함할 수 있으며, 상이한 산술 인코딩 컨텍스트들이 상이한 심볼 확률들을 포함한다.
708에서, 제1 셀에 대한 포인트들의 수는 선택된 인코딩 컨텍스트에 따라 인코딩된다.
710에서, 자식 셀을 인코딩하기 위한 인코딩 컨텍스트는 부모 셀 내에 포함된 포인트들의 수에 기초하여 선택된다. 자식 셀에 대한 인코딩 컨텍스트는 706에서 부모 셀에 대한 것과 유사한 방식으로 선택될 수 있다.
712에서, 자식 셀 내에 포함된 포인트들의 수는, 710에서 선택된, 선택된 인코딩 컨텍스트에 따라 인코딩된다. 714에서, K-D 트리에 인코딩하기 위한 추가의 하위 레벨 자식 셀들이 있는지 결정한다. 그러한 경우, 프로세스는 710으로 되돌아간다. 그렇지 않은 경우, 716에서, 부모 셀 및 자식 셀들에서의 인코딩된 포인트들의 수는 압축된 포인트 클라우드와 같은 압축된 공간 정보 파일 내에 포함된다. 인코딩된 값들은 압축된 공간 정보 파일 내에 순서화되어, 디코더는 각자의 부모 셀 및 자식 셀의 포인트들의 수 및 각자의 셀들의 포인트들의 수가 압축된 공간 정보 파일 내에 포함되는 순서에 기초하여 포인트 클라우드를 재구성할 수 있다.
일부 실시예들에서, 각각의 셀 내의 포인트들의 수는 결정되고 이어서 716에서 그룹으로서 인코딩될 수 있다. 또는, 일부 실시예들에서, 셀 내의 포인트들의 수는 모든 자식 셀 포인트 전체수가 결정되기를 기다리지 않고 결정된 후 인코딩될 수 있다.
도 8은 일부 실시예들에 따른, 포인트 클라우드의 압축된 속성 정보를 압축해제하기 위한 예시적인 프로세스를 예시한다.
802에서, 디코더는 포인트 클라우드에 대한 압축된 속성 정보를 수신하고, 804에서, 디코더는 포인트 클라우드에 대한 압축된 공간 정보를 수신한다. 일부 실시예들에서, 압축된 속성 정보 및 압축된 공간 정보는 하나 이상의 공통의 파일들 또는 별개의 파일들 내에 포함될 수 있다.
806에서, 디코더는 압축된 공간 정보를 압축해제한다. 압축된 공간 정보는 서브샘플링 및 예측 기법에 따라 압축되었을 수 있고, 디코더는 인코더에서 수행되었던 것과 유사한 서브샘플링, 예측, 및 예측 정정 동작들을 수행하고, 예측된 포인트 위치들에 정정 값들을 추가로 적용하여, 압축된 공간 정보로부터 비압축된 포인트 클라우드를 생성할 수 있다. 일부 실시예들에서, 압축된 공간 정보는 K-D 트리 포맷으로 압축될 수 있고, 디코더는 수신된 공간 정보 내에 포함된 인코딩된 K-D 트리에 기초하여 압축해제된 포인트 클라우드를 생성할 수 있다. 일부 실시예들에서, 압축된 공간 정보는 옥트리 기법을 사용하여 압축되었을 수 있고, 옥트리 디코딩 기법이 포인트 클라우드에 대한 압축해제된 공간 정보를 생성하는 데 사용될 수 있다. 일부 실시예들에서, 다른 공간 정보 압축 기법들이 사용되었을 수 있고, 디코더를 통해 압축해제될 수 있다.
808에서, 디코더는 압축해제된 공간 정보에 기초하여 최소 신장 트리를 생성할 수 있다. 예를 들어, 압축된 공간 정보 및/또는 압축된 속성 정보는 디코더의 인코딩된 데이터 인터페이스, 예컨대 도 2b에 예시된 디코더(220)의 인코딩된 데이터 인터페이스(226)를 통해 수신될 수 있다. 공간 디코더(222)와 같은 공간 디코더는 압축된 공간 정보를 압축해제할 수 있고, 최소 신장 트리 생성기(228)와 같은 최소 신장 트리 생성기는 압축해제된 공간 정보에 기초하여 최소 신장 트리를 생성할 수 있다.
810에서, 디코더(220)의 예측 평가자(224)와 같은 디코더의 예측 평가자는 압축된 속성 정보에 포함된 할당된 속성 값에 기초하여 시작 포인트에게 속성 값을 할당할 수 있다. 일부 실시예들에서, 압축된 속성 정보는 최소 신장 트리를 생성하기 위해, 그리고 최소 신장 트리에 기초하여 평가 순서에 따라 포인트들의 속성 값들을 예측하기 위해 사용될 시작 포인트로서 포인트를 식별할 수 있다. 시작 포인트에 대한 할당된 속성 값 또는 값들은 압축해제된 포인트 클라우드에 대한 압축해제된 속성 정보 내에 포함될 수 있다.
812에서, 디코더 또는 다른 디코더 컴포넌트의 예측 평가자는 평가될 시작 포인트에 후속하는 적어도 다음 포인트에 대한 평가 순서를 결정한다. 일부 실시예들에서, 평가 순서는 포인트들 중의 전부 또는 다수의 포인트들에 대해 결정될 수 있거나, 또는 다른 실시예들에서, 평가 순서는 포인트들에 대해 속성 값들이 결정됨에 따라 포인트 하나하나 결정될 수 있다. 포인트들은 평가 중인 연속적인 포인트들 사이의 최소 거리들에 기초한 순서로 평가될 수 있다. 예를 들어, 다른 이웃 포인트들과 비교하여 시작 포인트로부터 최단 거리에서 있는 이웃 포인트가 시작 포인트에 후속하여 평가할 다음 포인트로서 선택될 수 있다. 이어서, 유사한 방식으로, 가장 최근에 평가된 포인트로부터의 최단 거리에 기초하여 다른 포인트들이 평가되도록 선택될 수 있다. 814에서, 평가할 다음 포인트가 선택된다. 일부 실시예들에서, 812 및 814는 함께 수행될 수 있다.
816에서, 디코더의 예측 평가자는 평가 중인 포인트에 대한 "K" 최근접 이웃 포인트들을 결정한다. 일부 실시예들에서, 이웃 포인트들은 그들이 이미 할당되거나 예측된 속성 값들을 갖는 경우에만 "K" 최근접 이웃 포인트들 내에 포함될 수 있다. 다른 실시예들에서, 이웃 포인트들은 그들이 할당되거나 이미 예측된 속성 값들을 갖는지 여부에 관계없이 "K" 최근접 이웃 포인트들 내에 포함될 수 있다. 이러한 실시예들에서, 인코더는 "K" 최근접 이웃 포인트들을 식별할 때, 예측된 값들이 없는 포인트들을 이웃 포인트들로서 포함할지 여부에 대해 디코더와 유사한 규칙을 따를 수 있다.
818에서, 예측된 속성 값들은, "K" 최근접 이웃 포인트들의 속성 값들 및 평가 중인 포인트와 "K" 최근접 이웃 포인트들 중의 각자의 포인트들 사이의 거리들에 기초하여 평가 중인 포인트의 하나 이상의 속성들에 대해 결정된다. 일부 실시예들에서, 역 거리 보간 기법이 속성 값들을 예측하는 데 사용될 수 있는데, 평가 중인 포인트에 더 가까운 포인트들의 속성 값들은 평가 중인 포인트로부터 더 멀리 떨어진 포인트들의 속성 값들보다 더 크게 가중된다. 디코더에 의해 사용되는 속성 예측 기법은 속성 정보를 압축했던 인코더에 의해 사용된 속성 예측 기법과 동일할 수 있다.
820에서, 디코더의 예측 평가자가 속성 값을 정정하기 위해 포인트의 예측된 속성 값에 속성 정정 값을 적용할 수 있다. 속성 정정 값은 속성 값이 압축 이전의 원래의 포인트 클라우드의 속성 값과 일치하거나 거의 일치하게 할 수 있다. 포인트가 하나 초과의 속성을 갖는 일부 실시예들에서, 818 및 820은 포인트의 각각의 속성에 대해 반복될 수 있다. 일부 실시예들에서, 포인트 클라우드 또는 포인트에 대한 모든 속성 정보를 압축해제하지 않고, 일부 속성 정보가 압축해제될 수 있다. 예를 들어, 포인트는 속도 속성 정보 및 색상 속성 정보를 포함할 수 있다. 속도 속성 정보는 색상 속성 정보를 디코딩하지 않고 디코딩될 수 있고, 그 역도 마찬가지이다. 일부 실시예들에서, 압축된 속성 정보를 이용하는 애플리케이션은 포인트 클라우드에 대해 어떤 속성들이 압축될 것인지를 나타낼 수 있다.
822에서, 평가할 추가 포인트들이 있는지 결정된다. 그러한 경우, 프로세스는 814으로 되돌아가고, 평가할 다음 포인트가 선택된다. 평가할 추가 포인트들이 없는 경우, 824에서, 압축해제된 속성 정보가, 예를 들어, 압축해제된 포인트 클라우드로서 제공되며, 각각의 포인트는 공간 정보 및 하나 이상의 속성들을 포함한다.
상세 레벨 속성 압축
일부 상황들에서, 포인트 클라우드에 대한 속성 정보를 인코딩하기 위해 필요한 비트들의 수는 포인트 클라우드에 대한 비트 스트림의 상당한 부분을 구성할 수 있다. 예를 들어, 속성 정보는 포인트 클라우드에 대한 압축된 공간 정보를 송신하기 위해 사용되는 것보다 더 많은 부분의 비트 스트림을 구성할 수 있다.
일부 실시예들에서, 공간 정보는 계층적 상세 레벨(LOD) 구조를 구축하는 데 사용될 수 있다. LOD 구조는 포인트 클라우드와 연관된 속성들을 압축하는 데 사용될 수 있다. LOD 구조는 또한 진행성/뷰-종속 스트리밍 및 스케일링가능 렌더링(scalable rendering)과 같은 진보된 기능들을 가능하게 할 수 있다. 예를 들어, 일부 실시예들에서, 압축된 속성 정보는 전체 포인트 클라우드에 대한 속성 정보의 전부를 전송(또는 디코딩)하지 않고 포인트 클라우드의 일부분(예를 들어, 상세 레벨)만에 대해 전송(또는 디코딩)될 수 있다.
도 9는 일부 실시예들에 따른, 계층적 LOD 구조를 생성하는 예시적인 인코딩 프로세스를 예시한다. 예를 들어, 일부 실시예들에서, 인코더(202)와 같은 인코더는 도 9에 도시된 것과 유사한 프로세스를 사용하여 LOD 구조의 압축된 속성 정보를 생성할 수 있다.
일부 실시예들에서, 기하학적 정보(본 명세서에서 "공간 정보"로도 지칭됨)가 속성 정보를 효율적으로 예측하는 데 사용될 수 있다. 예를 들어, 도 9에서, 색상 정보의 압축이 예시되어 있다. 그러나, LOD 구조는 포인트 클라우드의 포인트들과 연관된 임의의 유형의 속성(예를 들어, 반사율, 텍스처, 양상 등)의 압축에 적용될 수 있다. 압축될 속성에 따라, 데이터를 압축에 더 적합하게 만들도록 색 공간 변환을 적용하거나 데이터를 업데이트하는 사전-인코딩 단계가 수행될 수 있다는 것에 주목한다.
일부 실시예들에서, LOD 프로세스에 따른 속성 정보 압축은 후술되는 바와 같이 진행한다.
예를 들어, 기하학적 구조(G)={포인트-P(0), P(1),... P(N-1)}를, 재구성된 포인트 클라우드 위치들 - 이는 인코더에 포함된 공간 인코더(204)와 같은 기하학적 인코더(기하학적 인코더 GE(914))에 의해 생성된 압축된 기하학적 비트 스트림을, 그 또한 인코더에 포함된 공간 디코더(기하학적 디코더 GE(902))에 의해 디코딩한 후에 생성됨 -로 한다. 예를 들어, 일부 실시예들에서, 인코더(202)와 같은 인코더는 기하학적 인코더(914)와 같은 기하학적 인코더, 및 기하학적 디코더(914)와 같은 기하학적 디코더를 둘 다 포함할 수 있다. 일부 실시예들에서, 기하학적 인코더는 공간 인코더(214)의 일부일 수 있고, 기하학적 디코더는 예측/정정 평가자(206)의 일부일 수 있다. 일부 실시예들에서, 최소 신장 트리 생성기(210)와 같은 최소 신장 트리 생성기가 생략될 수 있다.
일부 실시예들에서, 압축해제된 공간 정보는 머그컵(900)을 구성하는 포인트들의 X, Y, 및 Z 좌표들과 같은 3D 공간 내의 포인트들의 위치들을 설명할 수 있다. 공간 정보는 인코더(202)와 같은 인코더 및 디코더(220)와 같은 디코더 둘 모두에 이용가능할 수 있다는 점에 주목한다. 예를 들어, K-D 트리 압축, 옥트리 압축, 최근접 이웃 예측 등과 같은 다양한 기법들이 머그컵(900)에 대한 공간 정보를 압축 및/또는 인코딩하기 위해 사용될 수 있고, 공간 정보는 머그컵(900)에 대한 포인트 클라우드를 구성하는 포인트들의 속성들에 대한 압축된 속성 정보와 함께 또는 이에 추가로 디코더에 전송될 수 있다.
일부 실시예들에서, 상세 레벨(LOD)들의 세트에서, 머그컵(900)을 표현하는 포인트들과 같은 포인트 클라우드의 포인트들을 구성하기 위해, 인코더 측(예컨대, 인코더(202)) 및 디코더 측(예컨대, 디코더(220)) 둘 모두에 결정론적 재정렬 프로세스가 적용될 수 있다. 예를 들어, 상세 레벨들은 인코더(202)의 예측/정정 평가자(206)와 같은 인코더의 예측/정정 평가자에 포함될 수 있는 상세 레벨 생성기(904)에 의해 생성될 수 있다. 일부 실시예들에서, 상세 레벨 생성기(904)는 인코더(202)와 같은 인코더의 별개의 컴포넌트일 수 있다. 예를 들어, 상세 레벨 생성기(904)는 인코더(202)의 별개의 컴포넌트일 수 있다. LOD 생성 알고리즘의 파라미터들을 제외하고는, 이러한 LOD 구조들을 생성하기 위해 비트 스트림 내에 추가 정보를 포함할 필요는 없음에 주목한다, 예를 들어, LOD 생성기 알고리즘의 파라미터들로서 비트 스트림에 포함될 수 있는 파라미터들은 다음과 같다:
i. 생성될 LOD들의 최대 수, "N"으로 표기됨(예를 들어, N=6),
ii. 초기 샘플링 거리 "D0"(예를 들어, D0=64), 및
iii. 샘플링 거리 업데이트 인자 "f"(예를 들어, 1/2).
일부 실시예들에서, 파라미터들(N, D0, f)은 압축 프로세스를 구성하는 엔지니어와 같은 사용자에 의해 제공될 수 있다. 일부 실시예들에서, 파라미터들(N, D0, f)은 예를 들어 최적화 절차를 사용하여 인코더 및/또는 디코더에 의해 자동으로 결정될 수 있다. 이들 파라미터들은 고정적 또는 적응적일 수 있다.
일부 실시예들에서, LOD 생성은 다음과 같이 진행할 수 있다:
a. 머그컵(900)의 포인트들과 같은 기하학적 구조(G)의 포인트들(예를 들어, 공간 정보에 따라 조직화된 포인트 클라우드의 포인트들)은 비-방문된(non-visited) 것으로 마킹되고, 방문된 포인트들(V)은 빈 것으로 설정된다.
b. 이어서, LOD 생성 프로세스는 반복적으로 진행할 수 있다. 각각의 반복 j에서, 그러한 정제 레벨에 대한 상세 레벨, 예를 들어 LOD(j)는 다음과 같이 생성될 수 있다:
1. 현재 LOD에 대한 샘플링 거리 - D(j)로 표시됨 -는 다음과 같이 설정될 수 있다:
a. j =0이면, D(j)=D0이다.
b. j > 0이고 j < N이면, D(j) = D(j-1) * f이다.
c. j= N이면, D(j)= 0이다.
2. LOD 생성 프로세스는 G의 모든 포인트들에 걸쳐 반복된다.
a. 포인트 평가 반복(i)에서, 포인트 P(i)가 평가되고,
i. 포인트 P(i)가 방문된 경우, 그것은 무시되고, 알고리즘은 다음 반복 (i+1)로 점프하여, 예를 들어, 다음 포인트 P(i+1)가 평가된다.
ii. 그렇지 않으면, V의 모든 포인트들에 걸친 P(i)로부터의 최소 거리로서 정의되는 거리 D(i, V)가 계산된다. V가 이미 방문된 포인트들의 리스트라는 것에 주목한다. V가 빈 경우, 거리 D(i, V)는 0으로 설정되는데, 이는 세트 V 내에 임의의 방문된 포인트들이 없기 때문에, 포인트 P(i)로부터 방문된 포인트들까지의 거리가 0임을 의미한다. 포인트 P(i)로부터 임의의 이미 방문된 포인트까지의 최단 거리 D(i, V)가 파라미터 D0보다 확실히 더 높으면, 그 포인트는 무시되고, LoD 생성은 반복 (i+1)로 점프하고, 다음 포인트 P(i+1)을 평가한다. 그렇지 않으면, P(i)는 방문된 포인트로 마킹되고, 포인트 P(i)는 방문된 포인트들의 세트 V에 추가된다.
b. 이러한 프로세스는 기하학적 구조(G)의 모든 포인트들이 순회될(traversed) 때까지 반복될 수 있다.
3. 반복 j동안 V에 추가되는 포인트들의 세트는 정제 레벨 R(j)을 설명한다.
4. LOD(j)는 모든 정제 레벨들 R(0), R(1), ..., R(j)의 합집합(union)을 취함으로써 얻어질 수 있다.
일부 실시예들에서, 전술된 프로세스는 모든 LOD들이 생성되거나 모든 정점들이 방문될 때까지 반복될 수 있다.
일부 실시예들에서, 전술된 바와 같은 인코더는 "기하학적 인코더(914)에 제공 중인 위치들(x,y,z)"에 포함된 기하학적 정보를 양자화하는 양자화 모듈(도시되지 않음)을 더 포함할 수 있다. 또한, 일부 실시예들에서, 전술된 바와 같은 인코더는 양자화 후에 그리고 기하학적 인코더(914) 이전에, 복제된 포인트들을 제거하는 모듈을 추가적으로 포함할 수 있다.
일부 실시예들에서, 양자화는 속성 정정 값들 및/또는 하나 이상의 속성 값 시작 포인트들과 같은 압축된 속성 정보에 추가로 적용될 수 있다. 예를 들어, 910에서, 양자화는 보간 기반 예측 모듈(908)에 의해 결정된 속성 정정 값들에 대해 수행된다. 양자화 기법들은 균일한 양자화, 데드 존(dead zone)을 갖는 균일한 양자화, 비균일/비-선형 양자화, 트렐리스 양자화(trellis quantization), 또는 다른 적합한 양자화 기법들을 포함할 수 있다.
도 10은 일부 실시예들에 따른, 상세 레벨(LOD) 구조의 상이한 정제 층들에 포함될 포인트들을 결정하기 위한 예시적인 프로세스를 예시한다.
1002에서, 인코더(또는 디코더)는 포인트 클라우드에 대한 상세 레벨 계층구조를 결정하는 데 사용하기 위한 상세 레벨 파라미터들을 수신하거나 결정한다. 상세 레벨 파라미터들을 수신하는 것과 동시에, 또는 그 이전에 혹은 이후에, 1004에서, 인코더(또는 디코더)는 포인트 클라우드에 대한 압축된 공간 정보를 수신할 수 있고, 1006에서, 인코더(또는 디코더)는 포인트 클라우드의 포인트들에 대한 압축해제된 공간 정보를 결정할 수 있다. 공간 정보의 압축을 위해 손실 압축 기법들을 이용하는 실시예들에서, 압축해제된 공간 정보는 인코더에서 압축될 수 있고, 또한 1006에서 인코더에서 압축해제되어 디코더에서 직면하게 될 기하학적 정보의 대표적인 샘플을 생성할 수 있다. 공간 정보의 무손실 압축을 이용하는 일부 실시예들에서, 1004 및 1106은 인코더 측에서 생략될 수 있다.
1008에서, (인코더 측 또는 디코더 측에 있을 수 있는) 상세 레벨 구조 생성기는 포인트 클라우드의 모든 포인트들을 "비-방문된 포인트들"로서 마킹한다.
1010에서, 상세 레벨 구조 생성기는 또한 방문된 포인트 "V"의 디렉토리를 비어 있는 것으로 설정한다.
1012에서, 평가 중인 현재 정제 레벨 R(j)에 대해 샘플링 거리 D(j)가 결정된다. 정제 레벨이 가장 조악한 정제 레벨인 경우(여기서, j=0), 샘플링 거리 D(j)는 D0, 예를 들어, 1002에서 수신 또는 결정된 초기 샘플링 거리와 동일하게 설정된다. j가 0보다 크고 N보다 작은 경우, D(j)는 D(j-1)*f와 동일하게 설정된다. "N"은 결정될 상세 레벨들의 총수임에 주목한다. 또한, "f"는 1 미만(예를 들어, 1/2)으로 설정되는 샘플링 업데이트 거리 인자라는 것에 주목한다. 또한, D(j-1)는 선행 정제 레벨에 사용된 샘플링 거리라는 것에 주목한다. 예를 들어, f가 1/2일 때, 샘플링 거리 D(j-1)는 후속 정제 레벨에 대해 이분할됨으로써, D(j)는 D(j-1)의 길이의 절반이 된다. 또한, 상세 레벨(LOD(j))은 현재 정제 레벨과 모든 하위의 정제 레벨들의 합집합인 것에 주목한다. 따라서, 제1 상세 레벨(LOD(0))은 정제 레벨 R(0)에 포함된 모든 포인트들을 포함할 수 있다. 후속 상세 레벨(LOD(1))은 이전의 상세 레벨에 포함된 모든 포인트들, 및 추가적으로 후속 정제 레벨 R(1)에 포함된 모든 포인트들을 포함할 수 있다. 이러한 방식으로, 포인트 클라우드의 모든 포인트들을 포함하는 상세 레벨 "N"에 도달할 때까지, 각각의 후속 상세 레벨에 대한 이전의 상세 레벨에 포인트들이 추가될 수 있다.
결정 중인 현재 상세 레벨에 포함될 포인트 클라우드의 포인트들을 결정하기 위해, 1014에서, 포인트 P(i)가 평가되도록 선택되며, 여기서 "i"는 현재 평가 중인 포인트 클라우드의 포인트들 중 하나의 포인트이다. 예를 들어 포인트 클라우드가 백만 개의 포인트들을 포함하는 경우, "i"는 0 내지 1,000,000의 범위일 수 있다.
1016에서, 현재 평가 중인 포인트 P(i)가 이미 방문된 포인트로서 마킹되어 있는지 결정한다. P(i)가 이미 방문된 것으로 마킹되면, 1018에서, P(i)는 무시되고, 프로세스는 평가하기 위해 다음 포인트 P(i+1)로 이동하며, 이는 이어서 현재 평가 중인 포인트 P(i)가 된다. 이어서 프로세스는 다시 1014로 되돌아간다.
1016에서 포인트 P(i)가 이미 방문된 포인트로서 마킹되지 않은 것으로 결정되면, 1020에서, 포인트 P(i)에 대해 거리 D(i)가 계산되며, 여기서 D(i)는 포인트 P(i)와 디렉토리 V에 포함된 임의의 이미 방문된 포인트들 사이의 최단 거리이다. 디렉토리 V에 포함된 임의의 포인트들이 없는 경우, 예를 들어, 디렉토리 V가 비어 있으면, D(i)는 0으로 설정된다.
1022에서, 포인트 P(i)에 대한 거리 D(i)가 초기 샘플링 거리 D0보다 큰지 여부가 결정된다. 그러한 경우, 1018에서, 포인트 P(i)는 무시되고, 프로세스는 다음 포인트 P(i+1)로 이동하고 1014로 되돌아간다.
포인트 P(i)가 이미 방문된 것으로 마킹되어 있지 않고, 포인트 P(i)와 V에 포함된 포인트들의 세트 사이의 최소 거리인 거리 D(i)가 초기 샘플링 거리 D0보다 작으면, 1024에서, 포인트 P(i)는 방문된 것으로 마킹되고, 현재 정제 레벨 R(j)에 대한 방문된 포인트들의 세트 V에 추가된다.
1026에서, 포인트 클라우드에 대해 결정하기 위한 추가 정제 레벨들이 있는지 결정한다. 예를 들어, j<N인 경우, 결정할 추가 정제 레벨들이 있으며, 여기서 N은 인코더와 디코더 사이에서 통신될 수 있는 LOD 파라미터이다. 결정할 추가 정제 레벨들이 없는 경우, 프로세스는 1028에서 중지한다. 결정할 추가 정제 레벨들이 있으면, 1030에서, 프로세스는 다음 정제 레벨로 이동하고, 이어서 1012에서 다음 정제 레벨에 대해 포인트 클라우드를 평가하기 위해 진행한다.
일단 정제 레벨들이 결정되면, 정제 레벨들은 LOD 구조를 생성하는 데 사용될 수 있으며, 여기서 각각의 후속 LOD 레벨은 이전의 LOD 레벨의 모든 포인트들 + 추가 정제 레벨에 포함될 것으로 결정된 임의의 포인트들을 포함한다. LOD 구조를 결정하는 프로세스가 인코더 및 디코더에 의해 알려져 있기 때문에, 디코더는 인코더에서 사용된 것과 동일한 LOD 파라미터들을 고려하여, 인코더에서 생성된 것과 동일한 LOD 구조를 디코더에서 재생성할 수 있다.
상세 레벨 계층구조의 예
도 11a는 일부 실시예들에 따른, 예시적인 LOD를 예시한다. LOD 생성 프로세스는 더 많은 포인트들이 포함될수록 정제되는, 원래의 포인트 클라우드의 균일하게 샘플링된 근사치들(또는 상세 레벨들)을 생성할 수 있다는 것에 주목한다. 그러한 특징은 그것이 점진적/뷰-종속 송신 및 스케일링가능 렌더링에 특히 적응되게 한다. 예를 들어, 1104는 1102보다 더 많은 상세사항을 포함할 수 있고, 1106은 1104보다 더 많은 상세사항을 포함할 수 있다. 또한, 1108은 1102, 1104, 및 1106보다 더 많은 상세사항을 포함할 수 있다.
계층적 LOD 구조는 속성 예측 전략을 구축하는 데 사용될 수 있다. 예를 들어, 일부 실시예들에서, 포인트들은 LOD 생성 단계 동안 그들이 방문된 것과 동일한 순서로 인코딩될 수 있다. 각각의 포인트의 속성들은 이전에 인코딩되었던 K-최근접 이웃들을 사용함으로써 예측될 수 있다. 일부 실시예들에서, "K"는 사용자에 의해 정의될 수 있거나 최적화 전략을 사용함으로써 결정될 수 있는 파라미터이다. "K"는 정적이거나 또는 적응적일 수 있다. "K"가 적응적인 후자의 경우에, 파라미터를 설명하는 추가 정보가 비트 스트림에 포함될 수 있다.
일부 실시예들에서, 상이한 예측 전략들이 사용될 수 있다. 예를 들어, 하기의 보간 전략들 중 하나뿐만 아니라 하기의 보간 전략들의 조합들이 사용될 수 있거나, 인코더/디코더가 상이한 보간 전략들 간에서 적응적으로 전환할 수 있다. 상이한 보간 전략들은 역-거리 보간, 무게중심 보간, 자연 이웃 보간, 이동 최소 제곱 보간, 또는 다른 적합한 보간 기법들과 같은 보간 전략들을 포함할 수 있다. 예를 들어, 보간 기반 예측은 인코더(202)의 예측/정정 값 평가자(206)와 같은 인코더의 예측/정정 값 평가자에 포함된 보간 기반 예측 모듈(908)에서 수행될 수 있다. 또한, 보간 기반 예측은 디코더(220)의 예측 평가자(224)와 같은 디코더의 예측 평가자에 포함된 보간 기반 예측 모듈(908)에서 수행될 수 있다. 일부 실시예들에서, 색 공간은 또한 보간 기반 예측을 수행하기 전에 색 공간 변환 모듈(906)에서 변환될 수 있다. 일부 실시예들에서, 색 공간 변환 모듈(906)은 인코더(202)와 같은 인코더에 포함될 수 있다. 일부 실시예들에서, 디코더는 변환된 색 공간을 다시 원래의 색 공간으로 변환하는 모듈을 더 포함할 수 있다.
일부 실시예들에서, 양자화는 속성 정보에 추가로 적용될 수 있다. 예를 들어 양자화는 양자화 모듈(910)에서 수행될 수 있다. 일부 실시예들에서, 인코더(202)와 같은 인코더는 양자화 모듈(910)을 더 포함할 수 있다. 양자화 모듈(910)에 의해 채용되는 양자화 기법들은 균일한 양자화, 데드 존을 갖는 균일한 양자화, 비균일/비-선형 양자화, 트렐리스 양자화, 또는 다른 적합한 양자화 기법들을 포함할 수 있다.
일부 실시예들에서, LOD 속성 압축은 다음과 같이 동적 포인트 클라우드들을 압축하기 위해 사용될 수 있다:
a. FC를 현재 포인트 클라우드 프레임으로 하고, RF를 기준 포인트 클라우드로 한다.
b. M을 FC의 형상을 취하도록 RF를 변형시키는 모션 필드로 한다.
i. M은 디코더 측에서 계산될 수 있고, 이 경우에, 정보는 비트 스트림에 인코딩되지 않을 수 있다.
ii. M은 인코더에 의해 계산되고, 비트 스트림 내에 명시적으로 인코딩될 수 있다.
1. M은 본 명세서에 설명된 바와 같이 계층적 압축 기법을 RF의 각각의 포인트와 연관된 모션 벡터들에 적용함으로써 인코딩될 수 있다(예를 들어, RF의 모션은 추가 속성으로 간주될 수 있음).
2. M은 연관된 지역 및 전역 변환들을 갖는 스켈레톤/스킨-기반 모델(skeleton/skinning-based model)로서 인코딩될 수 있다.
3. M은 옥트리 구조에 기초하여 정의되는 모션 필드로서 인코딩될 수 있으며, 이는 모션 필드 복잡도에 적응하도록 적응적으로 정제된다.
4. M은 키-프레임-기반 애니메이션(key-frame-based animation)들, 모핑(morphing) 기법들, 자유 형식 변형(free-form deformation)들, 키-포인트-기반 변형(key-point-based deformation) 등과 같은 임의의 적합한 애니메이션 기법을 사용함으로써 설명될 수 있다.
iii. RF'를 RF에 모션 필드(M)를 적용한 후에 획득된 포인트 클라우드로 한다. 이어서, RF'의 포인트들은 FC의 "K" 최근접 이웃 포인트들은 물론, RF의 포인트들도 고려함으로써 속성 예측 전략에서 사용될 수 있다.
또한, 속성 정정 값들은 보간 기반 예측 모듈(908)에서 결정된 보간 기반 예측 값들을 원래의 비압축된 속성 값들과 비교하는 것에 기초하여 결정될 수 있다. 속성 정정 값들은 양자화 모듈(910)에서 추가로 양자화될 수 있고, 양자화된 속성 정정 값들, 인코딩된 공간 정보(기하학적 인코더(902)로부터 출력됨) 및 예측에 사용된 임의의 구성 파라미터들은 산술 인코딩 모듈(912)에서 인코딩될 수 있다. 일부 실시예들에서, 산술 인코딩 모듈은 컨텍스트 적응적 산술 인코딩 기법을 사용할 수 있다. 이어서, 압축된 포인트 클라우드는 디코더(220)와 같은 디코더에 제공될 수 있고, 디코더는, 양자화된 속성 정정 값들, 인코딩된 공간 정보(기하학적 인코더(902)로부터 출력됨) 및 인코더에서 예측에 사용된 구성 파라미터들에 기초하여 유사한 상세 레벨들을 결정하고 보간 기반 예측을 수행하여 원래의 포인트 클라우드를 재생성할 수 있다.
도 11b는 일부 실시예들에 따른, LOD들을 포함하는 예시적인 압축된 포인트 클라우드 파일을 예시한다. 상세 레벨 속성 정보 파일(1150)은 구성 정보(1152), 포인트 클라우드 데이터(1154), 및 상세 레벨 포인트 속성 정정 값들(1156)을 포함한다. 일부 실시예들에서, 상세 레벨 속성 정보 파일(1150)은 부분적으로 다수의 패킷들을 통해 통신될 수 있다. 일부 실시예들에서, 상세 레벨 속성 정보 파일(1150)에 도시된 모든 섹션들이 압축된 속성 정보를 송신하는 각각의 패킷에 포함될 수 있는 것은 아니다. 일부 실시예들에서, 상세 레벨 속성 정보 파일(1150)과 같은 상세 레벨 속성 정보 파일은, 인코더 또는 디코더를 구현하는 서버, 또는 다른 컴퓨팅 디바이스와 같은 저장 디바이스에 저장될 수 있다.
도 12a는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 인코딩하는 방법을 예시한다.
1202에서, 포인트 클라우드가 인코더에 의해 수신된다. 포인트 클라우드는 예를 들어 하나 이상의 센서들에 의해 캡처될 수 있거나, 예를 들어 소프트웨어에서 생성될 수 있다.
1204에서, 포인트 클라우드의 공간 정보 또는 기하학적 정보가 본 명세서에 설명된 바와 같이 인코딩된다. 예를 들어, 공간 정보는 K-D 트리들, 옥트리들, 이웃 예측 전략, 또는 공간 정보를 인코딩하기 위한 다른 적합한 기법을 사용하여 인코딩될 수 있다.
1206에서, 본 명세서에 설명된 바와 같이, 하나 이상의 상세 레벨들이 생성된다. 예를 들어, 상세 레벨들은 도 10에 도시된 것과 유사한 프로세스를 사용하여 생성될 수 있다. 일부 실시예들에서, 1204에서 인코딩되거나 압축된 공간 정보는 디코더가 직면할 대표적인 압축해제된 포인트 클라우드 기하학적 구조를 생성하기 위해 디코딩되거나 압축해제될 수 있음에 주목한다. 이어서, 이러한 대표적인 압축해제된 포인트 클라우드 기하학적 구조는 도 10에 추가로 설명된 바와 같이 LOD 구조를 생성하는 데 사용될 수 있다.
1208에서, 포인트 클라우드의 포인트들의 속성들에 대한 속성 값들을 예측하기 위해 보간 기반 예측이 수행된다. 1210에서, 예측된 속성 값들을 원래의 속성 값들과 비교하는 것에 기초하여 속성 정정 값들이 결정된다. 예를 들어, 일부 실시예들에서, 각자의 상세 레벨들에 포함된 포인트들에 대한 예측된 속성 값들을 결정하기 위해 각각의 상세 레벨에 대해 보간 기반 예측이 수행될 수 있다. 이어서, 이들 예측된 속성 값들은 압축 이전의 원래의 포인트 클라우드의 속성 값들과 비교되어 각자의 상세 레벨들의 포인트들에 대한 속성 정정 값들을 결정할 수 있다. 예를 들어, 도 1b, 도 4, 도 5, 및 도 8에 설명된 바와 같은 보간 기반 예측 프로세스가 다양한 상세 레벨들에 대한 예측된 속성 값들을 결정하는 데 사용될 수 있다. 일부 실시예들에서, 속성 정정 값들은 LOD 구조의 다수의 상세 레벨들에 대해 결정될 수 있다. 예를 들어, 속성 정정 값들의 제1 세트가 제1 상세 레벨에 포함된 포인트들에 대해 결정될 수 있고, 속성 정정 값들의 추가 세트들이 다른 상세 레벨들에 포함된 포인트들에 대해 결정될 수 있다.
1212에서, 1210에서 결정된 속성 정정 값들에 영향을 주는 업데이트 동작이 옵션적으로 적용될 수 있다. 업데이트 동작의 성능이 아래에서 도 12c를 참조하여 더 상세히 논의된다.
1214에서, 본 명세서에 설명된 바와 같이, 속성 정정 값들, LOD 파라미터들, 인코딩된 공간 정보(기하학적 인코더로부터 출력됨) 및 예측에 사용된 임의의 구성 파라미터들이 인코딩된다.
일부 실시예들에서, 1214에서 인코딩된 속성 정보는 포인트 클라우드의 다수의 상세 레벨들 또는 모든 상세 레벨들에 대한 속성 정보를 포함할 수 있거나, 또는 포인트 클라우드의 단일 상세 레벨 또는 모든 상세 레벨들보다 적은 수의 상세 레벨에 대한 속성 정보를 포함할 수 있다. 일부 실시예들에서, 상세 레벨 속성 정보는 인코더에 의해 순차적으로 인코딩될 수 있다. 예를 들어, 인코더는 하나 이상의 추가 상세 레벨들에 대한 속성 정보를 인코딩하기 전에 제1 상세 레벨을 이용가능하게 할 수 있다.
일부 실시예들에서, 인코더는 추가로, 압축된 속성 정보 파일(1150)의 구성 정보(1152)에 도시된 구성 파라미터들 중 임의의 파라미터와 같은, 디코더에 송신될 하나 이상의 구성 파라미터들을 추가로 인코딩할 수 있다. 예를 들어, 일부 실시예들에서, 인코더는 포인트 클라우드에 대해 인코딩될 다수의 상세 레벨들을 인코딩할 수 있다. 인코더는 또한 샘플링 거리 업데이트 인자를 인코딩할 수 있으며, 샘플링 거리는 주어진 상세 레벨에 어느 포인트들이 포함될 것인지를 결정하는 데 사용된다.
도 12b는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 디코딩하는 방법을 예시한다.
1252에서, 포인트 클라우드에 대한 압축된 속성 정보가 디코더에서 수신된다. 또한, 1254에서 포인트 클라우드에 대한 공간 정보가 디코더에서 수신된다. 일부 실시예들에서, 공간 정보는 K-D 트리, 옥트리, 이웃 예측 등과 같은 다양한 기법들을 사용하여 압축되거나 인코딩될 수 있고, 디코더는 1254에서 수신된 공간 정보를 압축해제 및/또는 디코딩할 수 있다.
1256에서, 디코더는 다수의 상세 레벨들 중 어느 상세 레벨 레벨을 압축해제/디코딩할지를 결정한다. 압축해제/디코딩할 선택된 상세 레벨은 포인트 클라우드의 뷰잉 모드에 기초하여 결정될 수 있다. 예를 들어, 미리보기 모드에서 뷰잉 중인 포인트 클라우드는 전체 뷰 모드에서 뷰잉 중인 포인트 클라우드보다 더 하위의 상세 레벨이 결정될 것을 요구할 수 있다. 또한, 렌더링 중인 뷰 내의 포인트 클라우드의 위치가 압축해제/디코딩할 상세 레벨을 결정하는 데 사용될 수 있다. 예를 들어, 포인트 클라우드는 도 9a에 도시된 커피 머그잔과 같은 물체를 표현할 수 있다. 커피 머그잔이 렌더링 중인 뷰의 전경에 있는 경우, 커피 머그잔에 대해 상위의 상세 레벨이 결정될 수 있다. 그러나, 커피 머그잔이 렌더링 중인 뷰의 배경에 있는 경우, 커피 머그잔에 대해 더 하위의 상세 레벨이 결정될 수 있다. 일부 실시예들에서, 포인트 클라우드에 대해 결정할 상세 레벨은 포인트 클라우드에 대해 할당된 데이터 예산에 기초하여 결정될 수 있다.
1258에서, 결정 중인 제1 상세 레벨(또는 다음의 상세 레벨)에 포함된 포인트들이 본 명세서에 설명된 바와 같이 결정될 수 있다. 평가 중인 상세 레벨의 포인트들에 대해, 포인트들의 속성 값들은 평가 중인 각각의 포인트에 대한 k-최근접 이웃들에 기초한 역 거리 가중 보간법에 기초하여 예측될 수 있으며, 여기서 k는 고정되거나 조정가능한 파라미터일 수 있다.
1260에서, 일부 실시예들에서, 도 12f에서 더 상세히 설명되는 바와 같이, 예측된 속성 값들에 대해 업데이트 동작이 수행될 수 있다.
1262에서, 포인트 클라우드에 대한 압축된 속성 정보에 포함된 속성 정정 값들은 평가 중인 현재 상세 레벨에 대해 디코딩될 수 있고, 1258에서 예측된 속성 값들 또는 1260에서 결정된 업데이트된 예측된 속성 값들을 정정하기 위해 적용될 수 있다.
1264에서, 1262에서 결정된 정정된 속성 값들은 제1 상세 레벨(또는 평가 중인 현재 상세 레벨)의 포인트들에게 속성들로서 할당될 수 있다. 일부 실시예들에서, 후속 상세 레벨들에 대해 결정된 속성 값들은 후속 상세 레벨들에 포함된 포인트들에 할당될 수 있는 한편, 이전의 상세 레벨들에 대해 이미 결정된 속성 값들은 이전의 상세 레벨(들)의 각자의 포인트들에 의해 유지된다. 일부 실시예들에서, 새로운 속성 값들이 순차적인 상세 레벨들에 대해 결정될 수 있다.
일부 실시예들에서, 1254에서 수신된 공간 정보는 포인트 클라우드의 다수의 상세 레벨들 또는 모든 상세 레벨들에 대한 공간 정보를 포함할 수 있거나, 또는 포인트 클라우드의 단일 상세 레벨 또는 모든 상세 레벨들보다 적은 수의 상세 레벨에 대한 공간 정보를 포함할 수 있다. 일부 실시예들에서, 상세 레벨 속성 정보는 디코더에 의해 순차적으로 수신될 수 있다. 예를 들어, 디코더는 하나 이상의 추가 상세 레벨들에 대한 속성 정보를 수신하기 전에 제1 상세 레벨을 수신하고 제1 상세 레벨의 포인트들에 대한 속성 값들을 생성할 수 있다.
1266에서, 디코딩할 추가의 상세 레벨들이 있는지 결정된다. 그러한 경우, 프로세스는 1258로 복귀하고, 디코딩할 다음의 상세 레벨에 대해 반복된다. 그렇지 않은 경우, 프로세스는 1267에서 중지되지만, 결정할 상세 레벨들의 수에 영향을 미치는 입력, 예컨대, 결정할 상세 레벨들에 영향을 미치는 입력의 몇 가지 예들을 들자면, 뷰잉 중인 포인트 클라우드에 적용 중인 포인트 클라우드의 시점 변화 또는 줌 동작에 응답하여, 1256에서 프로세스가 재개될 수 있다.
일부 실시예들에서, 전술된 공간 정보는 도 2에 관하여 전술된 기하학적 인코더(202) 및 산술 인코더(212)와 같은 기하학적 인코더 및 산술 인코더를 통해 인코딩되거나 디코딩될 수 있다. 일부 실시예들에서, 기하학적 인코더(202)와 같은 기하학적 인코더는 옥트리 압축 기법을 이용할 수 있고, 산술 인코더(212)는 이하에서 더 상세히 설명되는 바와 같이 이진 산술 인코더일 수 있다.
후술하는 바와 같이 이진 산술 인코더의 사용은 256개의 심볼들(예를 들어, 큐브 당 8개의 서브큐브들이고 각각의 서브큐브가 점유 또는 비점유로, 2^8=256)의 알파벳을 갖는 다중 심볼 코덱과 비교하여, 옥트리 점유 심볼들을 인코딩하는 계산 복잡성을 감소시킨다. 또한, 최고 확률 이웃 구성들에 기초한 컨텍스트 선택의 사용은 모든 가능한 이웃 구성들을 검색하는 것과 비교하여 이웃 구성들에 대한 검색을 감소시킬 수 있다. 예를 들어, 인코더는 모든 가능한 이웃 구성들과는 대조적으로, 도 12c에 도시된 10개의 이웃 구성들(1268, 1270, 1272, 12712, 1276, 1278, 1280, 1282, 1284, 1286)에 대응하는 10개의 인코딩 컨텍스트들을 추적할 수 있다.
일부 실시예들에서, 산술 인코더(212)와 같은 산술 인코더는 256-값 점유 심볼들을 인코딩하기 위해 이진 산술 코덱을 사용할 수 있다. 이는 다중-심볼 산술 코덱과 비교하여 구현의 관점에서 덜 복잡하고 더 하드웨어 친화적일 수 있다. 추가적으로, 산술 인코더(212) 및/또는 기하학적 인코더(202)는 산술 컨텍스트 선택을 위해 사용되는 6개 이웃들을 계산하기 위해 룩어헤드 절차를 이용할 수 있고, 이는 선형 검색보다 덜 복잡할 수 있고, (변하는 연산들의 수들을 수반할 수 있는 선형 검색과 비교하여) 일정한 수의 연산들을 포함할 수 있다. 추가적으로, 산술 인코더(212) 및/또는 기하학적 인코더(202)는 컨텍스트 선택 절차를 이용할 수 있으며, 이는 인코딩 컨텍스트들의 수를 감소시킨다. 일부 실시예들에서, 이진 산술 코덱, 룩어헤드 절차, 및 컨텍스트 선택 절차는 함께 또는 독립적으로 구현될 수 있다.
이진 산술 인코딩
일부 실시예들에서, 공간 정보를 인코딩하기 위해, 큐브 당 점유 정보는 0 내지 255의 값을 가질 수 있는 8-비트 값으로 인코딩된다. 그러한 비-이진 값들의 효율적인 인코딩/디코딩을 수행하기 위해, 전형적으로 다중 심볼 산술 인코더/디코더가 사용될 것이며, 이는 이진 산술 인코더/디코더에 비해 계산이 복잡하고 구현하기에는 덜 하드웨어 친화적이다. 그러나, 한편, 이러한 값에 대한 종래의 이진 산술 인코더/디코더의 직접적인 사용, 예를 들어 각각의 비트를 독립적으로 인코딩하는 것은 효율적이지 않을 수 있다. 그러나, 이진 산술 인코더로 비-이진 점유 값들을 효율적으로 인코딩하기 위해, N(예를 들어, 32) 최고 빈도 점유 심볼들을 추적하는 적응적 룩업 테이블(adaptive look up table, A-LUT)은 마지막으로 관찰된 상이한 M(예를 들어, 16) 점유 심볼들을 추적하는 캐시와 함께 사용될 수 있다.
추적할 마지막으로 관찰된 상이한 점유 심볼들의 수(M) 및 추적할 최고 빈도 점유 심볼들의 수(N)에 대한 값들은 사용자, 예컨대 특정 애플리케이션에 대한 인코딩 기법을 커스터마이징(customizing)하는 엔지니어에 의해 정의될 수 있거나, 인코딩 세션들의 오프라인 통계 분석에 기초하여 선택될 수 있다. M 및 N의 값들의 선택은 하기의 인자들 사이의 절충에 기초할 수 있다:
Figure pct00006
Figure pct00007
인코딩 효율,
Figure pct00008
계산 복잡도, 및
Figure pct00009
메모리 요구 사항들.
일부 실시예들에서, 알고리즘은 다음과 같이 진행한다:
Figure pct00010
적응적 룩업 테이블(A-LUT)은 사용자(예를 들어, 엔지니어)에 의해 제공되는 N 심볼들로 초기화되거나, 유사한 부류의 포인트 클라우드들의 통계에 기초하여 오프라인으로 계산된다.
Figure pct00011
캐시는 사용자(예를 들어, 엔지니어)에 의해 제공되는 M 심볼들로 초기화되거나, 유사한 부류의 포인트 클라우드들의 통계에 기초하여 오프라인으로 계산된다.
Figure pct00012
점유 심볼(S)이 인코딩될 때마다 하기의 단계들이 적용된다
1. S가 A-LUT 내에 있는지 여부를 나타내는 이진 정보가 인코딩된다.
2. S가 A-LUT 내에 있는 경우, A-LUT 내의 S의 인덱스는 이진 산술 인코더를 사용하여 인코딩된다.
Figure pct00013
(b1, b2, b3, b4, b5)를 A-LUT 내의 S의 인덱스의 이진 표현의 5 비트로 한다. b1을 최하위 비트로 하고 b5를 최상위 비트로 한다.
Figure pct00014
S의 인덱스를 인코딩하기 위한 후술되는 바와 같은 3개의 접근법들은, 예를 들어, 하기에 도시된 바와 같은 31개, 9개, 또는 5개의 적응적 이진 산술 컨텍스트들을 사용하여 사용될 수 있다.
o 31개 컨텍스트들
먼저, 제1 컨텍스트(이를 컨텍스트 0으로 칭함)로 S의 인덱스의 b5를 인코딩하는데, 최상위 비트(인코딩될 첫번째 비트)를 인코딩할 때, 다른 비트들의 인코딩으로부터 사용될 수 있는 어떠한 정보도 없어서, 그 이유로 인해 컨텍스트는 컨텍스트 0으로 지칭된다. 이어서, b4(인코딩될 두번째 비트)를 인코딩할 때, 2개의 추가적인 컨텍스트들이 사용될 수 있고, 이들을 컨텍스트 1(b5=0인 경우)과 컨텍스트 2(b5=1인 경우)로 칭한다. 이러한 접근법이 b1까지 완전히 적용되면, 아래 다이어그램에 도시된 바와 같이, 컨텍스트 0 내지 컨텍스트 30의 31개의 결과적인 컨텍스트들이 있다. 이 접근법은 다음 비트를 인코딩하기 위한 적응적 컨텍스트를 선택하기 위해 인코딩되는 각각의 비트를 철저하게(exhaustively) 사용한다. 예를 들어, 도 12e를 참조한다.
o 9개 컨텍스트들
적응적 룩업 테이블(ALUT)의 인덱스 값들이 심볼(S)이 얼마나 자주 나타났는지에 기초하여 할당된다는 것을 염두에 둔다. 따라서, ALUT 내의 최고 빈도 심볼(S)은 0의 인덱스 값을 가질 것인데, 이는 최고 빈도 심볼(S)에 대한 인덱스 값의 모든 비트들이 0임을 의미한다. 예를 들어, 이진 값이 작을수록, 심볼이 더 빈번하게 나타났다. 9개의 컨텍스트들을 인코딩하기 위해, 최상위 비트들인 b4 및 b5에 대해, 이들이 1인 경우, 인덱스 값은 비교적 커야 한다. 예를 들어, b5=1이면, 인덱스 값은 적어도 16 이상이거나, b4=1이면, 인덱스 값은 적어도 8 이상이다. 따라서 9개의 컨텍스트들을 인코딩할 때, 처음 7개의 인덱스 엔트리들, 예를 들어 1 내지 7에 초점이 맞춰진다. 이들 7개의 인덱스 엔트리들에 대해, 적응적 인코딩 컨텍스트들이 사용된다. 그러나, 7 초과의 값들을 갖는 인덱스 엔트리들에 대해 동일한 컨텍스트가 사용되는데, 예를 들어 정적 이진 인코더가 사용된다. 따라서, b5=1 또는 b4=1이면, 인덱스 값을 인코딩하기 위해 동일한 컨텍스트가 사용된다. 그렇지 않은 경우, 적응적 컨텍스트들(1 내지 7) 중 하나가 사용된다. b5에 대한 컨텍스트 0, 7개의 적응적 컨텍스트들, 및 8보다 확실히 더 큰 엔트리들에 대한 공통의 컨텍스트가 있기 때문에, 총 9개의 컨텍스트들이 있다. 이는 전술된 바와 같이 모든 31개의 컨텍스트를 사용하는 것과 비교하여, 인코딩을 단순화하고 통신될 컨텍스트들의 수를 감소시킨다.
o 5개 컨텍스트들
5개의 컨텍스트들을 사용하여 인덱스 값을 인코딩하기 위해, b5=1인지 결정한다. b5=1이면, 정적 이진 컨텍스트를 사용하여 b4로부터 b1까지의 인덱스 값의 모든 비트들을 인코딩한다. b5가 1이 아니면, 인덱스 값의 b4를 인코딩하고, b4가 1 또는 0인지 검토한다. b4=1인 경우 - 이는 인덱스 값이 8보다 높다는 것을 의미한다 -, 비트들(b3 내지 b1)을 인코딩하기 위해 정적 이진 컨텍스트를 다시 사용한다. 이어서, 이러한 추론은 반복되어, b3=1인 경우, 정적 이진 컨텍스트가 비트들(b2, b1)을 인코딩하도록 사용되고, b2=1이면 정적 이진 컨텍스트가 비트 1을 인코딩하도록 사용된다. 그러나, 비트들(b5, b4, b3)이 0인 경우, 적응적 이진 컨텍스트가 인덱스 값의 비트 2 및 비트 1을 인코딩하도록 선택된다.
3. S가 A-LUT 내에 있지 않은 경우,
Figure pct00015
S가 캐시 내에 있는지 여부를 나타내는 이진 정보가 인코딩된다.
Figure pct00016
S가 캐시 내에 있는 경우, 그의 인덱스의 이진 표현은 이진 산술 인코더를 사용하여 인코딩된다.
o 일부 실시예들에서, 인덱스의 이진 표현은 각각의 비트를 하나씩(bit by bit) 인코딩하기 위해 단일 정적 이진 컨텍스트를 사용하여 인코딩된다. 이어서, 비트 값들은 1만큼 시프트되고, 여기서 최하위 비트는 차상위 비트가 된다.
Figure pct00017
달리, S가 캐시 내에 있지 않은 경우, S의 이진 표현은 이진 산술 인코더를 사용하여 인코딩된다
일부 실시예들에서, S의 이진 표현은 단일 적응적 이진 컨텍스트를 사용하여 인코딩된다. 인덱스는 0 내지 255의 값을 갖는 것으로 알려져 있으며, 이는 그것이 8 비트들에서 인코딩됨을 의미한다. 비트들은 시프트되어 최하위 비트가 차상위 비트가 되고, 동일한 적응적 컨텍스트는 나머지 비트들 모두를 인코딩하기 위해 사용된다.
Figure pct00018
심볼(S)은 캐시에 추가되고, 캐시 내의 가장 오래된 심볼이 축출된다.
4. A-LUT 내의 심볼(S)의 발생 횟수는 1만큼 증분된다.
5. A-LUT 내의 N 최고 빈도 심볼들의 리스트는 주기적으로 재계산된다
Figure pct00019
접근법 1: 지금까지 인코딩된 심볼들의 수가 사용자 정의 임계치(예를 들어, 64 또는 128)에 도달하면, A-LUT 내의 N 최고 빈도 심볼들의 리스트가 재계산된다.
Figure pct00020
접근법 2: 인코딩된 심볼들의 수에 업데이트 주기를 맞춘다. 본 발상은 시작 시에 확률을 빠르게 업데이트하고, 심볼들의 수를 이용하여 업데이트 주기를 기하급수적으로 증가시키기 위함이다:
o 업데이트 주기 _updateCycle는 적은 수 N0(예를 들어, 16)로 초기화된다.
o 심볼들의 수가 업데이트 주기에 도달할 때마다
Figure pct00021
A-LUT 내의 N 최고 빈도 심볼들의 리스트가 재계산된다
Figure pct00022
업데이트 주기는 다음과 같이 업데이트된다:
_updateCycle = min(_alpha * _updateCycle, _maxUpdateCycle)
Figure pct00023
_alpha(예를 들어, 5/4) 및 maxUpdateCycle(예를 들어, 1024)은 2개의 사용자 정의 파라미터들이며, 이는 지수 성장의 속력 및 최대 업데이트 주기 값을 제어할 수 있다.
6. 옥트리 세부분할의 각각의 레벨의 시작에서, 모든 심볼들의 발생들은 0으로 리셋된다. N 최고 빈도 심볼들의 발생은 1로 설정된다.
7. 심볼의 발생이 사용자 정의 최대 수(예를 들어, _maxOccurence=1024)에 도달할 때, 모든 심볼들의 발생들은 2로 나누어져 발생들을 사용자 정의 범위 내에 유지한다.
일부 실시예들에서, 링-버퍼(ring-buffer)가 캐시 내의 요소들을 추적하기 위해 사용된다. 캐시로부터 축출될 요소는 위치 index0 = (_last++) % CacheSize에 대응하며, 여기서, _last는 0으로 초기화되고, 심볼이 캐시에 추가될 때마다 증분되는 카운터이다. 일부 실시예들에서, 캐시는 또한 순서화된 리스트로 구현될 수 있는데, 이는 매번 가장 오래된 심볼이 축출되는 것을 보장할 것이다.
2. 이웃들을 결정하기 위한 룩어헤드
일부 실시예들에서, 옥트리의 세부분할의 각각의 레벨에서, 동일한 크기의 큐브들이 세부분할되고, 각각의 큐브에 대한 점유 코드가 인코딩된다.
Figure pct00024
세부분할 레벨 0의 경우, 임의의 이웃들이 없는 (2C,2C,2C)의 단일 큐브가 있을 수 있다.
Figure pct00025
세부분할 레벨 1의 경우, 각각 치수 (2C-1,2C-1,2C-1)의 최대 8개의 큐브들이 있을 수 있다.
Figure pct00026
Figure pct00027
세부분할 레벨 L의 경우, 각각 치수 (2C-L,2C-L,2C-L)의 최대 8L개의 큐브들이 있을 수 있다.
일부 실시예들에서, 각각의 레벨 L에서, 치수 (2H-C+L,2H-C+L,2H-C+L)의 중첩되지 않는 룩어헤드 큐브들의 세트는 각각 도 12d에 도시된 바와 같이 정의될 수 있다. 룩어헤드 큐브는 크기 (2C-L,2C-L,2C-L)의 23xH개의 큐브들에 적합할 수 있음에 주목한다.
Figure pct00028
각각의 레벨 L에서, 각각의 룩어헤드 큐브 내에 포함된 큐브들은 다른 룩어헤드 큐브들 내의 큐브들을 참고하지 않고 인코딩된다.
o 룩어헤드 단계 동안, 현재 룩어헤드 큐브 내의 치수 (2C-L,2C-L,2C-L)의 큐브들이 FIFO로부터 추출되고, 현재 룩어헤드 큐브의 각각의 (2C-L,2C-L,2C-L) 영역에 대해 이것이 점유되는지 또는 비었는지를 설명하는 룩업 테이블이 채워진다.
o 일단 룩업 테이블이 채워지면, 추출된 큐브들에 대한 인코딩 단계가 시작된다. 여기서, 6개의 이웃들에 대한 점유 정보는 룩업 테이블로부터 직접 정보를 페칭(fetching)함으로써 얻어진다.
룩어헤드 큐브의 경계 상의 큐브들의 경우, 외부에 위치된 이웃들은 빈 것으로 가정된다.
Figure pct00029
다른 대안은 외삽(extrapolation) 방법들에 기초하여 외부 이웃들의 값들을 채우는 것으로 구성될 수 있다.
o 효율적인 구현은
Figure pct00030
하나의 바이트 상에 8개의 이웃 (2C-L,2C-L,2C-L) 영역들의 각각의 그룹의 점유 정보를 저장하고
Figure pct00031
메모리 캐시 히트(hit)들을 최대화하기 위해 Z-순서로 점유 바이트들을 저장함으로써 달성될 수 있다.
3. 컨텍스트 선택
일부 실시예들에서, 인코딩 컨텍스트들의 수(NC)를 더 낮은 컨텍스트들의 수로 감소시키기 위해(예를 들어, 10으로부터 6으로 감소됨), 별개의 컨텍스트가 (NC-1)개의 최고 확률 이웃 구성들의 각각에 할당되고, 최저 확률(least probable) 이웃 구성들에 대응하는 컨텍스트들은 동일한 컨텍스트(들)를 공유하도록 구성된다. 이는 하기와 같이 수행된다:
o 인코딩 프로세스를 시작하기 전에, 10개의 이웃 구성들(예를 들어, 도 12c에 도시된 10개의 구성들)의 발생들을 초기화한다:
Figure pct00032
모든 10개의 발생들을 0으로 설정한다
Figure pct00033
오프라인/온라인 통계에 기초하여 또는 사용자 제공 정보에 기초하여 발생들을 설정한다.
o 옥트리의 각각의 세부분할 레벨의 시작에서:
Figure pct00034
이전 세부분할 레벨의 인코딩 동안 수집된 통계에 기초하여 (NC-1)개의 최고 확률 이웃 구성들을 결정한다.
Figure pct00035
(NC-1)개의 최고 확률 이웃 구성들의 인덱스들을 숫자 0, 1, ..., (NC-2)에 맵핑하고 나머지 구성들의 인덱스들을 NC-1에 매핑하는 룩업 테이블(NLUT)을 계산한다.
Figure pct00036
10개의 이웃 구성들의 발생들을 0으로 초기화한다.
o 인코딩 동안:
Figure pct00037
그러한 구성이 직면될 때마다 이웃 구성의 발생을 1씩 증분한다.
Figure pct00038
이웃 구성 인덱스에 기초하여 현재 점유 값들을 인코딩하기 위해 사용할 컨텍스트를 결정하기 위해 룩업 테이블(NLUT[])을 사용한다.
도 12f는 일부 실시예들에 따른, 이진 산술 인코더, 캐시, 및 룩어헤드 테이블을 사용하는 예시적인 옥트리 압축 기법을 예시한다. 예를 들어, 도 12f는 전술된 바와 같은 프로세스들의 예를 예시한다. 1288에서 포인트 클라우드의 옥트리의 레벨에 대한 점유 심볼들이 결정된다. 1290에서, "N"개의 심볼들을 갖는 적응적 룩어헤드 테이블이 초기화된다. 1292에서, "M"개의 심볼들을 갖는 캐시가 초기화된다. 1294에서, 현재 옥트리 레벨에 대한 심볼들이 전술된 기법들을 사용하여 인코딩된다. 1296에서, 추가의 옥트리 레벨들이 인코딩될 것인지 결정된다. 그러한 경우, 프로세스는 1288에서 다음 옥트리 레벨에 대해 계속된다. 그렇지 않은 경우, 프로세스는 1298에서 종료하고, 포인트 클라우드에 대한 인코딩된 공간 정보는 수신자에게 송신되거나 저장되는 것과 같이 사용을 위해 이용가능하게 된다.
상세 레벨 압축 및 압축해제를 위한 리프팅 스킴들
일부 실시예들에서, 리프팅 스킴들은 포인트 클라우드들에 적용될 수 있다. 예를 들어, 후술하는 바와 같이, 리프팅 스킴이 불규칙적 포인트들에 적용될 수 있다. 이는 평면 내의 규칙적 포인트들을 갖는 이미지들에 적용될 수 있는 다른 유형들의 리프팅 스킴들과는 대조적이다. 리프팅 스킴에서, 현재 상세 레벨의 포인트들에 대해, 하위 상세 레벨의 최근접 포인트들이 발견된다. 하위 상세 레벨의 이들 최근접 포인트들은 상위 상세 레벨의 포인트들에 대한 속성 값들을 예측하는 데 사용된다. 개념적으로, 하위 상세 레벨들의 포인트들이 상위 상세 레벨들의 포인트들의 속성 값들을 결정하기 위해 사용되는 방식을 보여주는 그래프가 작성될 수 있다. 그러한 개념적인 뷰에서, 상세 레벨들 사이의 그래프에 에지들이 할당될 수 있으며, 에지는 상위 상세 레벨의 포인트와, 상위 상세 레벨의 포인트의 속성의 예측을 위한 기초를 형성하는 하위 상세 레벨의 각각의 포인트 사이에 있다. 더 상세히 후술되는 바와 같이, 이러한 에지들 각각에 가중치가 할당되어 상대적 영향을 나타낼 수 있다. 가중치는 하위 상세 레벨의 포인트의 속성 값이 상위 상세 레벨의 포인트들의 속성 값에 대해 갖는 영향을 나타낼 수 있다. 또한, 다수의 에지들이 상세 레벨을 통해 경로를 만들 수 있고, 가중치들이 경로들에 할당될 수 있다. 일부 실시예들에서, 경로의 영향은 경로의 에지들의 가중치들의 합에 의해 정의될 수 있다. 예를 들어, 아래의 식 1은 경로의 그러한 가중치를 나타낸다.
리프팅 스킴에서, 낮은 영향 포인트들은 고도로 정량화될 수 있고 높은 영향 포인트들은 덜 정량화될 수 있다. 일부 실시예들에서, 재구성된 포인트 클라우드의 품질과 효율성 사이에서 균형이 이루어질 수 있으며, 더 많은 양자화는 압축 효율을 증가시키고, 더 적은 양자화는 품질을 증가시킨다. 일부 실시예들에서, 모든 경로들이 평가되는 것은 아닐 수 있다. 예를 들어, 영향이 거의 없는 일부 경로들이 평가되지 않을 수 있다. 또한, 잔류 차이들을 평활화할 때, 업데이트 연산자는 포인트들의 상대적 영향 또는 중요성을 고려하면서 압축 효율을 증가시키기 위해 잔류 차이들, 예를 들어 속성 정정 값들을 평활화할 수 있다.
도 13a는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 인코딩하기 위해 인코더에 적용될 수 있는 직접 변환을 예시한다.
일부 실시예들에서, 인코더는 압축된 포인트 클라우드의 일부로서 인코딩되는 속성 정정 값들을 결정하기 위해, 도 13a에 예시된 바와 같이 직접 변환을 이용할 수 있다. 예를 들어, 일부 실시예들에서, 직접 변환은 1208에서 도 12a에 설명된 바와 같이 속성 값들을 결정하기 위해, 1212에서 도 12a에 설명된 바와 같이 업데이트 동작을 적용하는 데 이용될 수 있다.
일부 실시예들에서, 직접 변환은 압축될 포인트 클라우드의 포인트들과 연관된 속성들에 대한 속성들 신호들을 수신할 수 있다. 예를 들어, 속성들은, RGB 색상들과 같은 색상 값들, 또는 압축될 포인트 클라우드 내의 포인트들의 다른 속성 값들을 포함할 수 있다. 압축될 포인트 클라우드의 포인트들의 기하학적 구조는 속성 신호들을 수신하는 직접 변환으로도 알려질 수 있다. 1302에서, 직접 변환은 첫 번째(또는 그 다음) 상세 레벨에 대해 속성 신호들(1310)을 분할하는 분할 연산자를 포함할 수 있다. 예를 들어, X개의 포인트들을 포함하는 LOD(N)와 같은 특정 상세 레벨에 대해, Y개의 포인트들을 포함하는 샘플과 같은 포인트들의 속성들의 서브샘플은 X보다 더 적은 수의 포인트들에 대한 속성 값들을 포함할 수 있다. 달리 말하면, 분할 연산자는 특정 상세 레벨과 연관된 속성들을 입력으로 취하고 저해상도 샘플(1304) 및 고해상도 샘플(1306)을 생성할 수 있다. LOD 구조는 세분화 레벨들로 구분될 수 있으며, 후속 정제 레벨들은 하위 정제 레벨들보다 더 많은 포인트들에 대한 속성들을 포함하는 것에 주목하여야 한다. 하기에 기재된 바와 같은 특정 상세 레벨은 모든 하위 정제 상세 레벨들의 합집합을 취함으로써 얻어진다. 예를 들어, 상세 레벨 j는 모든 정제 레벨들(R(0), R(1), ..., R(j))의 합집합을 취함으로써 얻어진다. 전술된 바와 같이, 압축된 포인트 클라우드는 상세 레벨들의 총수(N)를 가질 수 있으며, 압축된 포인트 클라우드에 대해, R(0)은 최소 정제 상세 레벨이고, R(N)은 최고 정제 상세 레벨인 것에 또한 주목하여야 한다.
1308에서, 저해상도 샘플(1304)에 포함되지 않은 포인트들의 속성 값들에 대한 예측은 저해상도 샘플에 포함된 포인트들에 기초하여 예측된다. 예를 들어, 역 거리 보간 예측 기법 또는 전술된 다른 예측 기법들 중 임의의 것에 기초. 1312에서, 저해상도 샘플(1304)에서 남은 포인트들에 대한 예측된 속성 값들 사이의 차이가 저해상도 샘플(1304)에서 남은 포인트들의 실제 속성 값들과 비교된다. 비교는 예측된 속성 값과 실제 속성 값 사이의 각자의 포인트들에 대한 차이들을 결정한다. 이어서, 이들 차이들 D(N)은 저해상도 샘플에 인코딩되지 않은 특정 상세 레벨에 포함된 포인트들의 속성들에 대한 속성 정정 값들로서 인코딩된다. 예를 들어, 최상위 상세 레벨 N에 대해, 속성 정정 값들 D(N)은, LOD(N)의 저해상도 샘플에 포함되지 않은 속성 값들이 속성 정정 값들 D(N)을 사용하여 예측되고 정정될 수 있도록 인코딩될 수 있다. 최상위 상세 레벨에서 속성 정정 값들은 다른 보다 상위 상세 레벨들의 속성 값들을 결정하는 데 사용되지 않기 때문에(왜냐하면 최상위 상세 레벨 N의 경우, 임의의 상위 상세 레벨들이 없기 때문임), 이들 속성 정정 값들의 상대적 중요성을 고려하기 위한 업데이트 동작이 수행되지 않을 수 있다. 이와 같이, 차이들 D(N)은 LOD(N)에 대한 속성 정정 값들을 인코딩하기 위해 사용될 수 있다.
또한, 직접 변환은 LOD(N-1)와 같은 후속 하위 상세 레벨들에 대해 적용될 수 있다. 그러나, 후속 상세 레벨에 대한 직접 변환을 적용하기 전에, 하나 이상의 상위 상세 레벨들의 속성 값들에 대한 하위 상세 레벨의 포인트들에 대한 속성 값들의 상대적 중요성을 결정하기 위해 업데이트 동작이 수행될 수 있다. 예를 들어, 업데이트 동작(1314)은, L(N)에 포함된 포인트들의 속성들에 대해서와 같이, 하위 상세 레벨들에 포함된 포인트들에 대한 속성들의 속성 값들의 상위 상세 레벨들에 대한 상대적 중요성을 결정할 수 있다. 업데이트 연산자는 또한 속성 값들을 평활화하여, 각자의 속성 값들의 상대적 중요성을 고려하여 후속 상세 레벨들에 대한 속성 정정 값들의 압축 효율을 개선할 수 있으며, 평활화 동작은 후속 상세 레벨들에 더 큰 영향을 갖는 속성 값들이 후속 상세 레벨들에 더 적은 영향을 갖는 포인트들보다 덜 정정되도록 수행된다. 업데이트 동작을 수행하기 위한 여러 접근법들이 아래에서 더 상세히 설명된다. 이어서, 상세 레벨 L'(N)의 업데이트된 보다 저해상도 샘플은 다른 분할 연산자에게 공급되고, 프로세스는 후속 상세 레벨 LOD(N-1)에 대해 반복된다. 하위 상세 레벨 LOD(N-1)에 대한 속성 신호들이 또한 두번째(또는 후속) 분할 연산자들에서 수신될 수 있음에 주목한다.
도 13b는 일부 실시예들에 따른, 포인트 클라우드의 속성 정보를 디코딩하기 위해 디코더에 적용될 수 있는 역 변환을 예시한다.
일부 실시예들에서, 디코더는 압축된 포인트 클라우드로부터 포인트 클라우드를 재구성하기 위해 도 13b에 도시된 바와 같은 역 변환 프로세스를 이용할 수 있다. 예를 들어, 일부 실시예들에서, 1258에서 도 12b에 설명된 바와 같은 예측을 수행하는 것, 1260에서 도 12b에 설명된 바와 같은 업데이트 연산자를 적용하는 것, 1262에서 도 12b에 설명된 바와 같은 속성 정정 값들을 적용하는 것, 및 1264에서 도 12b에 설명된 바와 같은 상세 레벨의 포인트들에 속성들을 할당하는 것이 도 13b에 설명된 바와 같은 역 변환 프로세스에 따라 수행될 수 있다.
일부 실시예들에서, 역 변환 프로세스는 LOD 구조의 최하위 상세 레벨에 대한 업데이트된 저레벨 해상도 샘플 L'(0)을 수신할 수 있다. 역 변환 프로세스는 또한 업데이트된 저해상도 샘플 L'(0)에 포함되지 않은 포인트들에 대한 속성 정정 값들을 수신할 수 있다. 예를 들어, 특정 LOD에 대해, L'(0)는 LOD에 포함된 포인트들의 서브샘플링을 포함할 수 있고, 예측 기법은 LOD의 고해상도 샘플에 포함될 것과 같은 LOD의 다른 포인트들을 결정하는 데 사용될 수 있다. 속성 정정 값들은 1306에 나타낸 바와 같이, D(0)으로 수신될 수 있다. 1318에서, 인코더에서 수행되는 속성 정정 값들의 평활화를 고려하기 위해 업데이트 동작이 수행될 수 있다. 예를 들어, 업데이트 동작(1318)은 1314에서 수행된 업데이트 동작을 "실행취소"할 수 있으며, 1314에서 수행되는 업데이트 동작은 속성 값들의 상대적 중요성을 고려하여 속성 값들을 평활화함으로써 압축 효율을 개선하기 위해 수행되었다. 업데이트 동작은 업데이트된 저해상도 샘플 L'(0)에 적용되어 "비-평활화된" 또는 비-업데이트된 저해상도 샘플 L(0)을 생성할 수 있다. 1320에서, 저해상도 샘플 L(0)은 저해상도 샘플에 포함되지 않은 포인트들의 속성 값들을 결정하기 위해 예측 기법에 의해 사용될 수 있다. 예측된 속성 값들은, LOD(0)의 고해상도 샘플의 포인트들에 대한 속성 값들을 결정하기 위해 속성 정정 값들 D(0)을 사용하여 정정될 수 있다. 저해상도 샘플 및 고해상도 샘플은 병합 연산자(1322)에서 조합될 수 있고, 다음 상세 레벨 L'(1)에 대한 새로운 업데이트된 저해상도 샘플이 결정될 수 있다. LOD(0)에 대해 설명되었던 바와 같이 다음 상세 레벨 LOD(1)에 대해 유사한 프로세스가 반복될 수 있다. 일부 실시예들에서, 도 13a에 설명된 바와 같은 인코더 및 도 13b에 설명된 바와 같은 디코더는 포인트 클라우드의 N개의 상세 레벨들에 대해 그들 각자의 프로세스들을 반복할 수 있다.
LOD들의 더 상세한 예시적인 정의들 및 업데이트 동작들을 결정하기 위한 방법들이 아래에 설명된다.
일부 실시예들에서, LOD들은 하기와 같이 정의된다:
Figure pct00039
LOD(0) = R(0)
Figure pct00040
LOD(1) = LOD(0) U R(1)
Figure pct00041
Figure pct00042
LOD(j) = LOD(j-1) U R(j)
Figure pct00043
Figure pct00044
LOD(N+1) = LOD(N) U R(N) = 전체 포인트 클라우드
일부 실시예들에서, A를 포인트 클라우드와 연관된 속성들의 세트로 한다. 보다 정확하게는, A(P)를 포인트 클라우드의 포인트 P와 연관된 스칼라/벡터 속성으로 한다. 속성의 예는 RGB 값들에 의해 설명된 색상일 것이다.
L(j)를 LOD(j)와 연관된 속성들의 세트로 하고 H(j)를 R(j)와 연관된 속성들의 세트로 한다. 상세 레벨 LOD(j), L(j) 및 H(j)의 정의에 기초하여, 하기의 특성들을 검증한다:
Figure pct00045
L(N+1) = A 및 H(N+1) = {}
Figure pct00046
L(j) = L(j-1) U H(j)
Figure pct00047
L(j)와 H(j)는 분리된다.
일부 실시예들에서, 분할 연산자(1302)와 같은 분할 연산자는 L(j+1)을 입력으로 취하고, 2개의 출력들, 즉, (1) 저해상도 샘플들 L(j) 및 (2) 고해상도 샘플들 H(j)를 생성한다.
일부 실시예들에서, 병합 연산자(1322)와 같은 병합 연산자는 L(j) 및 H(j)를 입력으로 취하고, L(j+1)을 생성한다.
위에서 더 상세히 설명된 바와 같이, 예측 연산자는 LOD 구조의 상부에 정의될 수 있다. (P(i,j))_i를 R(j)에 속하는 LOD(j) 및 (Q(i,j))_i의 설정포인트들로 하고, (A(P(i,j)))_i 및 (A(Q(i,j)))_i를 각각 LOD(j) 및 R(j)와 연관된 속성 값들로 한다.
일부 실시예들에서, 예측 연산자는
Figure pct00048
로 표시된, LOD(j-1) 내의 k 최근접 이웃들의 속성 값들을 사용하여, 속성 값
Figure pct00049
을 예측한다:
Figure pct00050
여기서,
Figure pct00051
는 보간 가중치들이다. 예를 들어, 역 거리 가중 보간 전략이 보간 가중치들을 계산하기 위해 이용될 수 있다.
예측 잔차들, 예를 들어 속성 정정 값들,
Figure pct00052
는 다음과 같이 정의된다:
Figure pct00053
예측 계층구조가 다음과 같이 정의된 배향 그래프 G에 의해 설명될 수 있음에 주목한다:
Figure pct00054
포인트 클라우드 내의 모든 포인트 Q는 그래프 G의 정점 V(Q)에 대응한다.
Figure pct00055
하기의 식을 만족하는 i 및 j가 존재하는 경우, 그래프 G의 두 정점들, V(P) 및 V(Q)가 에지 E(P, Q)에 의해 연결되어
o
Figure pct00056
o
Figure pct00057
Figure pct00058
에지 E(Q, P)는 가중치
Figure pct00059
를 갖는다.
전술된 바와 같은 그러한 예측 전략에서, 하위 상세 레벨들의 포인트들은 그들이 예측을 위해 더 자주 사용되기 때문에 영향력이 더 크다.
Figure pct00060
를 포인트
Figure pct00061
와 연관된 영향 가중치로 한다.
Figure pct00062
는 다양한 방식들로 정의될 수 있다.
Figure pct00063
접근법 1
o G의 2개의 정점들 V(P) 및 V(Q)는 그들을 연결하는 G의 에지들의 경로
Figure pct00064
가 있다면 연결된다 하겠다. 경로
Figure pct00065
의 가중치
Figure pct00066
는 다음과 같이 정의된다:
Figure pct00067
o
Figure pct00068
를 목적지로서
Figure pct00069
를 갖는 경로들의 세트로 한다.
Figure pct00070
는 하기와 같이 정의된다:
Figure pct00071
[EQ. 1]
o 이전 정의는 다음과 같이 해석될 수 있다. 속성 A(P)가
Figure pct00072
의 양만큼 수정되는 것으로 가정하면, P에 연결된 포인트들과 연관된 모든 속성들이 섭동(perturb)된다. 그러한 섭동과 연관된 제곱 오차들의 합 -
Figure pct00073
로 표시됨 -은 다음과 같이 주어진다:
Figure pct00074
Figure pct00075
접근법 2
o 모든 경로들이 평가될 필요가 있기 때문에, 전술된 바와 같은 영향 가중치들을 계산하는 것은 계산적으로 복잡할 수 있다. 그러나, 가중치들
Figure pct00076
이 보통 0과 1 사이에서 정규화되기 때문에, 경로 x의 가중치
Figure pct00077
는 그의 에지들의 수로 급속히 감쇠한다. 따라서, 계산될 최종 영향 가중치에 크게 영향을 주지 않으면서 긴 경로들이 무시될 수 있다.
이전 속성에 기초하여, [식 1]에서의 정의는 제한된 길이를 갖는 경로들만을 고려하거나 사용자 정의 임계치가 더 낮을 것으로 알려진 가중치들을 갖는 경로들을 폐기하도록 수정될 수 있다. 이러한 임계치는 인코더와 디코더 둘 모두에서 고정되고 알려질 수 있거나, 또는 인코딩 프로세스의 상이한 스테이지들에서, 예를 들어 모든 프레임 LOD마다 한 번씩, 또는 심지어 시그널링된 포인트들의 소정 개수 후에 명시적으로 시그널링될 수 있거나 또는 그에 대해 명시적으로 미리 정의될 수 있다.
Figure pct00078
접근법 3
o
Figure pct00079
는 하기의 순환 절차에 의해 근사화될 수 있다:
Figure pct00080
모든 포인트들에 대해
Figure pct00081
를 설정한다
Figure pct00082
LOD 구조에 의해 정의된 순서의 역에 따라 포인트들을 순회한다
Figure pct00083
모든 포인트
Figure pct00084
에 대해, 그의 이웃들
Figure pct00085
의 가중치를 하기와 같이 업데이트한다:
Figure pct00086
여기서,
Figure pct00087
는 통상 1 또는 2로 설정된 파라미터이다.
Figure pct00088
접근법 4
o
Figure pct00089
는 하기의 순환 절차에 의해 근사화될 수 있다:
Figure pct00090
모든 포인트들에 대해
Figure pct00091
를 설정한다
Figure pct00092
LOD 구조에 의해 정의된 순서의 역에 따라 포인트들을 순회한다
Figure pct00093
모든 포인트
Figure pct00094
에 대해, 그의 이웃들
Figure pct00095
의 가중치를 하기와 같이 업데이트한다:
Figure pct00096
여기서, f
Figure pct00097
는 [0, 1] 범위의 결과 값들을 가진 소정 함수이다.
일부 실시예들에서, 업데이트 연산자(1314 또는 1318)와 같은 업데이트 연산자는 예측 잔차 D(Q(i,j))를 사용하여 LOD(j)의 속성 값들을 업데이트한다. 업데이트 연산자는 다음과 같은 상이한 방식들로 정의될 수 있다:
Figure pct00098
접근법 1
1.
Figure pct00099
Figure pct00100
가 되도록 포인트들의 세트
Figure pct00101
로 한다.
2. P에 대한 업데이트 동작은 다음과 같이 정의된다:
Figure pct00102
여기서,
Figure pct00103
는 통상 1 또는 2로 설정된 파라미터이다.
Figure pct00104
접근법 2
1.
Figure pct00105
Figure pct00106
가 되도록 포인트들의 세트
Figure pct00107
로 한다.
2. P에 대한 업데이트 동작은 다음과 같이 정의된다:
Figure pct00108
여기서, g(x)는 [0, 1]의 범위의 결과 값들을 가진 소정 함수이다.
Figure pct00109
접근법 3
o 다음과 같이 반복적으로
Figure pct00110
를 계산한다:
1. 먼저,
Figure pct00111
을 설정한다
2. LOD 구조에 의해 정의된 순서의 역에 따라 포인트들을 순회한다
3. 모든 포인트
Figure pct00112
에 대해, 그의 이웃들
Figure pct00113
과 연관된 로컬 업데이트들
Figure pct00114
을 하기 최소화 문제에 대한 해로서 계산한다:
Figure pct00115
4.
Figure pct00116
를 업데이트한다:
Figure pct00117
Figure pct00118
접근법 4
o 다음과 같이 반복적으로
Figure pct00119
를 계산한다:
1. 먼저,
Figure pct00120
을 설정한다
2. LOD 구조에 의해 정의된 순서의 역에 따라 포인트들을 순회한다
3. 모든 포인트
Figure pct00121
에 대해, 그의 이웃들
Figure pct00122
과 연관된 로컬 업데이트들
Figure pct00123
을 하기 최소화 문제에 대한 해로서 계산한다:
Figure pct00124
여기서, h는 임의의 함수일 수 있다.
4.
Figure pct00125
를 업데이트한다:
Figure pct00126
일부 실시예들에서, 전술된 바와 같은 리프팅 스킴을 레버리징하는 경우, 계산된 웨이블릿 계수들에 양자화 단계가 적용될 수 있다. 그러한 프로세스는 잡음을 도입할 수 있고, 재구성된 포인트 클라우드의 품질은 선택된 양자화 단계에 의존할 수 있다. 또한, 위에서 논의된 바와 같이, 하위 LOD들의 포인트들의 속성들을 섭동하는 것은 상위 LOD들의 포인트들의 속성들을 섭동하는 것보다 재구성된 포인트 클라우드의 품질에 더 많은 영향을 미칠 수 있다.
일부 실시예들에서, 전술된 바와 같이 계산된 영향 가중치들은 양자화 프로세스를 안내하기 위해 변환 프로세스 동안 추가로 레버리지될 수 있다. 예를 들어, 포인트 P와 연관된 계수들은 인자
Figure pct00127
와 곱해질 수 있으며, 여기서,
Figure pct00128
는 보통
Figure pct00129
로 설정되는 파라미터이다. 동일한 인자에 의한 역 스케일링 프로세스가 디코더 측에서 역 양자화 후에 적용된다.
일부 실시예들에서,
Figure pct00130
파라미터들의 값들은 전체 포인트 클라우드에 대해 고정될 수 있고, 인코더 및 디코더 둘 모두에 알려질 수 있거나, 또는 인코딩 프로세스의 상이한 스테이지들에서, 예를 들어 모든 포인트 클라우드 프레임 LOD마다 한번씩, 또는 심지어 시그널링된 포인트들의 소정 개수 후에 명시적으로 시그널링될 수 있거나 또는 그에 대해 미리 정의될 수 있다.
일부 실시예들에서, 전술된 리프팅 스킴의 하드웨어-친화적 구현은 비-선형 동작들에 대한 가중치들 및 룩업 테이블들의 고정된 포인트 표현을 레버리지할 수 있다.
일부 실시예들에서, 본 명세서에 설명된 바와 같은 리프팅 스킴은 잡음제거/필터링, 워터마킹, 세그먼트화/검출과 같은 압축 외의 다른 애플리케이션들뿐만 아니라 다양한 다른 애플리케이션들에 대해 레버리지될 수 있다.
일부 실시예들에서, 디코더는 전술된 바와 같이 옥트리 압축 기법 및 이진 산술 인코더를 사용하여 압축된 압축된 포인트 클라우드를 디코딩하기 위해 전술된 바와 같은 상보적인 프로세스를 채용할 수 있다.
일부 실시예들에서, 전술된 바와 같은 리프팅 스킴은 상세 레벨(LOD)을 구축하기 위한 상향식(bottom-up) 접근법을 추가로 구현할 수 있다. 예를 들어, 포인트들에 대한 예측된 값들을 결정하고 이어서 포인트들을 상이한 상세 레벨들에 할당하는 대신에, 어느 포인트들이 어느 상세 레벨에 포함될 것인지를 결정하는 동안 예측된 값들이 결정될 수 있다. 또한, 일부 실시예들에서, 잔차 값들은 예측된 값들을 원래 포인트 클라우드의 실제 값들과 비교함으로써 결정될 수 있다. 이것 역시 어느 포인트들이 어느 상세 레벨들에 포함되어야 하는지를 결정하는 동안 수행될 수 있다. 또한, 일부 실시예들에서, 상세 레벨 생성 및 예측 계산들을 가속화하기 위해, 정밀 최근접 이웃 검색 대신에 근사(approximate) 최근접 이웃 검색이 사용될 수 있다. 일부 실시예들에서, 이진/산술 인코더/디코더가 양자화된 계산된 웨이블릿 계수들을 압축/압축해제하는 데 사용될 수 있다.
위에서 논의된 바와 같이, 상향식 접근법은 상세 레벨(LOD)들을 구축하고 예측된 속성 값들을 동시에 계산할 수 있다. 일부 실시예들에서, 이러한 접근법은 다음과 같이 진행될 수 있다:
Figure pct00131
Figure pct00132
를 포인트 클라우드 포인트들과 연관된 위치들의 세트로 하고,
Figure pct00133
Figure pct00134
와 연관된 모턴 코드(Morton code)들로 한다. ,
Figure pct00135
를 각각 초기 샘플링 거리 및 LOD들 사이의 거리 비를 특정하는 2개의 사용자 정의 파라미터들로 한다. 모턴 코드는 1차원에서의 다차원 데이터를 표현하는 데 사용될 수 있으며, 여기서 "Z-순서(Z-Order) 함수"는 다차원 데이터에 적용되어 1차원 표현을 생성한다.
Figure pct00136
임을 주목한다.
Figure pct00137
먼저, 포인트들이 오름차순으로 그들의 연관된 모턴 코드들에 따라 정렬된다.
Figure pct00138
를 이 프로세스에 따라 순서화된 포인트 인덱스들의 어레이로 한다.
Figure pct00139
알고리즘은 반복적으로 진행된다. 각각의 반복
Figure pct00140
에서, LOD
Figure pct00141
에 속하는 포인트들이 추출되고, 모든 포인트들이 LOD에 할당될 때까지
Figure pct00142
=0으로부터 시작하여 그들의 예측자(predictor)들이 구축된다.
Figure pct00143
샘플링 거리
Figure pct00144
Figure pct00145
으로 초기화된다.
Figure pct00146
각각의 반복
Figure pct00147
에 대해, 여기서
Figure pct00148
=0…LOD들의 수
o
Figure pct00149
Figure pct00150
-번째 LOD에 속하는 포인트들의 인덱스들의 세트로 하고
Figure pct00151
Figure pct00152
보다 상위의 LOD들에 속하는 포인트들의 세트로 한다.
Figure pct00153
Figure pct00154
는 다음과 같이 계산된다.
o 먼저,
Figure pct00155
Figure pct00156
가 초기화된다
Figure pct00157
k=0인 경우,
Figure pct00158
그렇지 않은 경우,
Figure pct00159
Figure pct00160
Figure pct00161
o 어레이
Figure pct00162
내에 저장된 포인트 인덱스들은 순서대로 순회된다. 인덱스
Figure pct00163
가 선택될 때마다, 가장 최근의 포인트들 SR1까지의 거리(예를 들어, 유클리드 또는 다른 거리)가
Figure pct00164
에 추가된 것이 계산된다. SR1은 최근접 이웃 검색의 정확도를 제어하는 사용자 정의 파라미터이다. 예를 들어, SR1은 8 또는 16 또는 64 등으로 선택될 수 있다. SR1의 값이 작을수록, 최근접 이웃 검색의 계산 복잡도 및 정확도가 낮아진다. 파라미터 SR1은 비트 스트림에 포함된다. SR1 거리들 중 임의의 거리가
Figure pct00165
보다 낮으면
Figure pct00166
가 어레이
Figure pct00167
에 부가된다. 그렇지 않으면
Figure pct00168
는 어레이
Figure pct00169
에 부가된다.
Figure pct00170
파라미터 SR1은 LOD 또는/및 순회된 포인트들의 수에 기초하여 적응적으로 변경될 수 있다.
Figure pct00171
일부 실시예들에서, 근사 최근접 이웃을 계산하는 대신에, 정밀 최근접 이웃 검색 기법이 적용될 수 있다.
Figure pct00172
일부 실시예들에서, 정밀 이웃 검색 방법과 근사 이웃 검색 방법들이 조합될 수 있다. 특히, LOD 및/또는
Figure pct00173
의 포인트들의 수에 따라, 방법은 정밀 검색 방법과 근사 검색 방법 사이에서 전환할 수 있다. 다른 기준들로서, 포인트 클라우드 밀도, 현재 포인트와 이전의 포인트 사이의 거리, 또는 포인트 클라우드 분포에 관련된 임의의 다른 기준을 포함할 수 있다.
o 이러한 프로세스는
Figure pct00174
의 모든 인덱스들이 순회될 때까지 반복된다.
이 단계에서,
Figure pct00175
Figure pct00176
가 계산되고,
Figure pct00177
의 포인트들과 연관된 예측자들을 구축하기 위해 다음 단계들에서 사용될 것이다.
o 더욱 정확하게는,
Figure pct00178
\
Figure pct00179
(여기서 \는 차이 연산자임)을 LOD(k)를 얻기 위해 LOD(k-1)에 더해질 필요가 있는 포인트들의 세트로 한다.
Figure pct00180
의 각각의 포인트
Figure pct00181
에 대해,
Figure pct00182
Figure pct00183
Figure pct00184
-개의 최근접 이웃들(
Figure pct00185
는 예측에 사용되는 최대 이웃들의 수를 제어하는 사용자 정의 파라미터들임)을 찾고,
Figure pct00186
와 연관된 예측 가중치들
Figure pct00187
을 계산할 필요가 있다. 알고리즘은 다음과 같이 진행한다.
o 카운터를 초기화한다(
Figure pct00188
)
o
Figure pct00189
의 각각의 포인트
Figure pct00190
에 대해
Figure pct00191
Figure pct00192
Figure pct00193
와 연관된 모턴 코드로 하고,
Figure pct00194
를 어레이
Figure pct00195
의 j 번째 요소와 연관된 모턴 코드로 한다
Figure pct00196
(
Figure pct00197
인 동안, 카운터 j를 1씩 증분한다(
Figure pct00198
Figure pct00199
어레이의 [j-SR2, j+SR2] 범위에 있는
Figure pct00200
의 인덱스들과 연관된 포인트들까지의
Figure pct00201
의 거리들을 계산하고,
Figure pct00202
-개의 최근접 이웃들
Figure pct00203
및 그들의 연관된 제곱 거리들
Figure pct00204
을 추적한다. SR2는 최근접 이웃 검색의 정확도를 제어하는 사용자 정의 파라미터이다. SR2에 대한 가능한 값들은 8, 16, 32, 및 64이다. SR2의 값이 작을수록, 최근접 이웃 검색의 계산 복잡도 및 계산 정확도가 낮아진다. 파라미터 SR2는 비트 스트림에 포함된다. 속성 예측에 사용된 예측 가중치들의 계산은 전술된 바와 동일할 수 있다.
o 파라미터 SR2는 LOD 또는/및 순회된 포인트들의 수에 기초하여 적응적으로 변경될 수 있다.
o 일부 실시예들에서, 근사 최근접 이웃을 계산하는 대신에, 정밀 최근접 이웃 검색 기법이 사용될 수 있다.
o 일부 실시예들에서, 정밀 이웃 검색 방법과 근사 이웃 검색 방법이 조합될 수 있다. 특히, LOD 및/또는
Figure pct00205
의 포인트들의 수에 따라, 방법은 정밀 검색 방법과 근사 검색 방법 사이에서 전환할 수 있다. 다른 기준들로서, 포인트 클라우드 밀도, 현재 포인트와 이전의 포인트 사이의 거리, 또는 포인트 클라우드 분포에 관련된 임의의 다른 기준을 포함할 수 있다.
o 현재 포인트와 마지막 처리된 포인트 사이의 거리가 임계치보다 낮다면, 마지막 포인트의 이웃들을 초기 추측으로 사용하고 이들을 검색한다. 임계치는 전술된 것과 유사한 기준들에 기초하여 적응적으로 선택될 수 있다. 임계치는 비트 스트림에서 시그널링될 수 있거나, 또는 인코더 및 디코더 둘 모두로 알려질 수 있다.
o 이전의 발상은 n=1,2,3,4... 마지막 포인트들로 일반화될 수 있다.
o 사용자 정의 임계치보다 높은 거리를 갖는 포인트들을 배제한다. 임계치는 전술된 것과 유사한 기준들에 기초하여 적응적으로 선택될 수 있다. 임계치는 비트스트림에서 시그널링될 수 있거나, 또는 인코더 및 디코더 둘 모두로 알려질 수 있다.
o
Figure pct00206
o
Figure pct00207
o 전술된 접근법은 임의의 메트릭들(예를 들어, L2, L1, Lp) 또는 이들 메트릭들의 임의의 근사치와 함께 사용될 수 있다. 예를 들어, 일부 실시예들에서, 거리 비교들은 유클리드 거리 비교 근사, 예컨대 택시캡/맨해튼/L1 근사(Taxicab/Manhattan/L1 approximation), 또는 팔각(Octagonal) 근사를 사용할 수 있다.
일부 실시예들에서, 리프팅 스킴은 레벨들의 계층구조를 결정하지 않고 적용될 수 있다. 그러한 실시예들에서, 기법은 다음과 같이 진행할 수 있다:
Figure pct00208
입력 포인트들을 그들의 좌표들과 연관된 모턴 코드들에 따라 분류한다
Figure pct00209
모턴 순서에 따라 포인트 속성들을 인코드/디코딩한다
Figure pct00210
각각의 포인트
Figure pct00211
에 대해, 이미 처리된
Figure pct00212
개의 최근접 이웃들
Figure pct00213
을 찾는다(
Figure pct00214
)
Figure pct00215
전술된 바와 같이 예측 가중치들을 계산한다.
Figure pct00216
예측 전략을 조정하기 위해 전술된 적응적 스킴을 적용한다.
Figure pct00217
후술되는 바와 같이 속성들을 예측하고 이들을 엔트로피 인코딩한다.
양자화된 리프팅 계수들의 이진 산술 코딩
일부 실시예들에서, 리프팅 스킴 계수들은 비-이진 값들일 수 있다. 일부 실시예들에서, 도 2b에 예시된 인코딩(202)의 컴포넌트로서 전술되었고 256-값 점유 심볼들을 인코딩하기 위해 이진 산술 코덱을 사용하는, 산술 인코더(212)와 같은 산술 인코더가 또한 리프팅 스킴 계수들을 인코딩하기 위해 사용될 수 있다. 또는, 일부 실시예들에서, 유사한 산술 인코더가 사용될 수 있다. 예를 들어, 기법은 다음과 같이 진행할 수 있다:
Figure pct00218
일차원(mono-dimensional) 속성
o C를 인코딩될 양자화된 계수로 한다. 먼저, C는 양수들을 짝수들로 맵핑하고 음수들을 홀수들로 맵핑하는 함수를 사용하여 양수로 맵핑된다.
o M(C)를 맵핑된 값으로 한다.
o 이어서, 이진 값은 C가 0인지 여부를 나타내도록 인코딩된다.
o C가 0이 아니면, 두 경우들이 구별된다
Figure pct00219
M(C)가 알파벳 크기(alphabetSize)(예를 들어, 도 12c 내지 도 12f에 관하여 전술된 이진 산술 인코딩 기법에 의해 지원되는 심볼들의 수)보다 더 높거나 동일하면, 값 알파벳 크기는 전술된 방법을 사용하여 인코딩된다. M(C)와 알파벳 크기 사이의 차이는 지수 골룸 코딩을 사용하여 인코딩된다.
Figure pct00220
그렇지 않으면, M(C)의 값은 N에 대해서 도 12c 내지 도 12f와 관련하여 전술한 방법을 사용하여 인코딩된다.
Figure pct00221
3차원 신호
o C1, C2, C3을 인코딩될 양자화된 계수들로 한다. K1 및 K2를, 양자화된 계수들 C1, C2 및 C3을 인코딩하는 데 사용되는 컨텍스트들에 대한 2개의 인덱스들로 한다.
o 먼저, C1, C2 및 C3은 도 12c 내지 도 12f에 관하여 전술된 바와 같이 양수로 맵핑된다. M(C1), M(C2) 및 M(C3)을 C1, C2, 및 C3의 매핑된 값들로 한다.
o M(C1)이 인코딩된다.
o C1이 0인지 여부의 조건에 기초하여 상이한 컨텍스트들(즉, 도 12c 내지 도 12f에 관하여 위에서 정의된 이진 산술 컨텍스트들 및 이진화 컨텍스트)을 선택하는 동안 M(C2)가 인코딩된다.
o 조건들 C1이 0인지 여부 및 C2가 0인지 여부에 기초하여 상이한 컨텍스트들을 선택하는 동안 M(C3)이 인코딩된다. C1이 0인 경우, 값은 16 이상인 것으로 알려진다. 조건 C1이 0인 경우, 이진 컨텍스트 K1을 사용하고, 값이 0이 아닌 경우, 값을 1만큼 감소시키고(값은 적어도 1 이상인 것으로 알려짐), 이어서, 그 값이 알파벳 크기 미만인지 확인하여, 그렇다면 값을 직접 인코딩한다. 그렇지 않으면, 알파벳 크기에 대한 최대 가능한 값을 인코딩한다. 이어서, 알파벳 크기에 대한 최대 가능한 값과 M(C3)의 값 사이의 차이는 지수 골룸 인코딩을 사용하여 인코딩될 것이다.
Figure pct00222
다차원 신호
o 전술된 동일한 접근법이 d-차원 신호로 일반화될 수 있다. 여기서, k번째 계수를 인코딩할 컨텍스트들은 이전 계수들(예를 들어, 마지막 0, 1, 2, 3, ..., k-1 계수들)의 값들에 따름.
o 고려할 이전 계수들의 수는 SR1 및 SR2의 선택을 위해 이전 섹션에 설명된 기준들 중 임의의 기준에 따라 적응적으로 선택될 수 있다.
다음은 포인트 클라우드 전달 알고리즘이 원래의 포인트 클라우드와 재구성된 포인트 클라우드 사이의 왜곡을 최소화하는 데 어떻게 이용되는지에 대한 보다 상세한 논의이다.
속성 전달 문제는 다음과 같이 정의될 수 있다:
a.
Figure pct00223
을 그의 기하학적 구조(즉, 3D 위치들)
Figure pct00224
및 속성들(예를 들어. RGB 색상 또는 반사율)의 세트
Figure pct00225
에 의해 정의된 포인트 클라우드로 한다.
b.
Figure pct00226
Figure pct00227
의 재샘플링 된 버전으로 하고,
Figure pct00228
를 그의 기하학적 구조로 한다.
c. 이어서, 텍스처 왜곡이 최소화되도록
Figure pct00229
의 포인트와 연관된
Figure pct00230
의 속성의 세트를 계산한다.
속성 전달 알고리즘을 사용하여 텍스처 왜곡 최소화 문제를 해결하기 위해:
Figure pct00231
Figure pct00232
Figure pct00233
Figure pct00234
의 최근접 이웃으로 하고,
Figure pct00235
를 그의 속성 값으로 한다.
Figure pct00236
Figure pct00237
Figure pct00238
Figure pct00239
의 최근접 이웃으로 하고,
Figure pct00240
를 그의 속성 값으로 한다.
Figure pct00241
Figure pct00242
=
Figure pct00243
를 포인트
Figure pct00244
를 그들의 최근접 이웃으로 공유하는
Figure pct00245
의 포인트들의 세트로 하고,
Figure pct00246
를 그들의 속성 값들로 한다
Figure pct00247
Figure pct00248
Figure pct00249
로부터
Figure pct00250
로 계산된 비대칭 오차로 한다:
Figure pct00251
Figure pct00252
Figure pct00253
Figure pct00254
Figure pct00255
로부터
Figure pct00256
로 계산된 비대칭 오차로 한다:
Figure pct00257
Figure pct00258
Figure pct00259
Figure pct00260
Figure pct00261
Figure pct00262
사이의 속성 왜곡을 측정하는 대칭 오차로 한다:
Figure pct00263
Figure pct00264
이어서, 하기와 같이 속성들
Figure pct00265
의 세트를 결정한다:
a.
Figure pct00266
Figure pct00267
를 초기화한다
b.
Figure pct00268
의 모든 포인트에 걸쳐 반복한다(loop)
1) 각각의 포인트
Figure pct00269
에 대해
Figure pct00270
Figure pct00271
를 계산한다
2) If (
Figure pct00272
또는
Figure pct00273
Figure pct00274
Figure pct00275
3) Else
Figure pct00276
Figure pct00277
4) EndIf
5)
Figure pct00278
6)
Figure pct00279
적응적 속성 예측
일부 실시예들에서, 전술된 바와 같은 인코더는, 추가로, 예측 전략 및/또는 이웃 포인트들의 속성 값들에 기초한 주어진 예측 전략에서 사용되는 포인트들의 수를 적응적으로 변경할 수 있다. 또한, 디코더는, 유사하게, 예측 전략 및/또는 이웃 포인트들의 재구성된 속성 값들에 기초하여 주어진 예측 전략에서 사용되는 포인트들의 수를 적응적으로 변경할 수 있다.
예를 들어, 포인트 클라우드는 도로를 표현하는 포인트들을 포함할 수 있으며, 여기서 도로는 흑색이고 도로 상에 백색 스트라이프를 갖는다. 디폴트 최근접 이웃 예측 전략은 백색 라인 및 흑색 도로를 표현하는 포인트들에 대한 속성 값들의 가변성을 고려하도록 적응적으로 변경될 수 있다. 이들 포인트들이 속성 값들에서 큰 차이를 갖기 때문에, 디폴트 최근접 이웃 예측 전략은 백색 라인의 블러링 및/또는 높은 잔차 값들을 초래할 수 있으며, 이들은 압축 효율을 감소시킨다. 그러나, 업데이트된 예측 전략은 더 적합한 예측 전략을 선택함으로써 그리고/또는 K 최근접 이웃 예측에서 더 적은 포인트들을 사용함으로써 이러한 가변성을 고려할 수 있다. 예를 들어, 흑색 도로에 대해, K 최근접 이웃 예측에서 백색 라인 포인트들을 사용하지 않는다.
일부 실시예들에서, 포인트 P에 대한 속성 값을 예측하기 전에, 인코더 또는 디코더는 포인트 P의 근처에 있는(in a neighborhood of) 포인트들, 예를 들어 K-개의 최근접 이웃 포인트들의 속성 값들의 가변성을 계산할 수 있다. 일부 실시예들에서, 가변성은 포인트 P에 이웃한 포인트들의 임의의 두 개의 속성 값들(또는 재구성된 속성 값들) 사이의 최대 차이인 변동(variance)에 기초하여 계산될 수 있다. 일부 실시예들에서, 가변성은 이웃 포인트들의 가중 평균에 기초하여 계산될 수 있으며, 가중 평균은 포인트 P에 대한 이웃 포인트들의 거리를 고려한다. 일부 실시예들에서, 이웃 포인트들의 그룹에 대한 가변성은 이웃 포인트들에 대한 속성들에 대한 가중 평균들에 기초하여, 그리고 이웃 포인트들까지의 거리들을 고려하여 계산될 수 있다. 예를 들어,
Figure pct00280
상기 식에서, E는 거리 X의 평균값(mean value)이고, weighted mean(X)은 포인트 P로부터 이웃 포인트들의 거리들인 X를 고려하는, 포인트 P의 근처에 있는 포인트들의 속성들의 가중 평균이다. 일부 실시예들에서, 가변성은 속성들의 평균값인 E(X), 속성들의 가중 평균인 weighted mean(X), 또는 속성들의 중간값인 median(X)에 비해 최대 차이로서 계산될 수 있다. 일부 실시예들에서, 가변성은 속성들의 평균값인 E(X), 속성들의 가중 평균인 weighted mean(X), 또는 속성들의 중간값인 median(X)에 비해 가장 큰 차이를 갖는 x 퍼센트, 예를 들어 x=10에 대응하는 값들의 평균을 사용하여 계산될 수 있다.
일부 실시예들에서, 포인트 P의 근처에 있는 포인트들의 속성들의 계산된 가변성이 임계치보다 큰 경우, 비율 왜곡 최적화(rate-distortion optimization)가 적용될 수 있다. 예를 들어, 비율 왜곡 최적화는 예측에 사용되는 이웃 포인트들의 수를 감소시키거나, 상이한 예측 기법으로 전환할 수 있다. 일부 실시예들에서, 임계치는 비트스트림 내에 명시적으로 기록될 수 있다. 또한, 일부 실시예들에서, 임계치는 포인트 클라우드마다, 또는 포인트 클라우드의 서브블록마다 또는 인코딩될 포인트들의 수에 대해 적응적으로 조정될 수 있다. 예를 들어, 도 11b에 관하여 후술되는 바와 같이, 임계치는 구성 정보(1152)로서 압축된 속성 정보 파일(1150) 내에 포함될 수 있다.
일부 실시예들에서, 상이한 왜곡 측정들이 제곱오차의 합산, 제곱오차의 가중 합산, 절대차들의 합산, 또는 절대차들의 가중 합산과 같은 비율 왜곡 최적화 절차에서 사용될 수 있다.
일부 실시예들에서, 왜곡은 각각의 속성에 대해 독립적으로 계산될 수 있거나, 동일한 샘플에 대응하는 다수의 속성들이 고려될 수 있고, 적절히 가중될 수 있다. 예를 들어, R, G, B 또는 Y, U, V에 대한 왜곡 값들이 계산될 수 있고, 이어서 선형적으로 또는 비선형적으로 함께 조합되어 전체 왜곡 값을 생성할 수 있다.
일부 실시예들에서, 트렐리스 기반 양자화와 같은 비율 왜곡 양자화에 대한 진보된 기법들이 또한 고려될 수 있는데, 단일 포인트를 별개로(in isolation) 고려하는 대신에, 다수의 포인트들이 공동으로 코딩된다. 예를 들어, 코딩 프로세스는 J = D + lambda * Rate 형태의 비용 함수를 최소화하는 방법을 사용하여 이러한 다수의 포인트를 모두 인코딩하도록 선택할 수 있으며, 여기서 D는 모든 이들 포인트들에 대한 전체 왜곡이고, Rate은 이들 포인트들을 코딩하기 위한 전체 비율 비용이다.
일부 실시예들에서, 인코더(202)와 같은 인코더는 포인트 클라우드, 포인트 클라우드의 상세 레벨, 또는 포인트 클라우드의 상세 레벨의 포인트들의 그룹에 대한 선택된 예측 전략의 인덱스 값을 명시적으로 인코딩할 수 있으며, 디코더는 인덱스의 인스턴스에 액세스할 수 있고, 수신된 인덱스 값에 기초하여 선택된 예측 전략을 결정할 수 있다. 디코더는 비율 왜곡 최적화 절차가 적용되고 있는 포인트들의 세트에 대해 선택된 예측 전략을 적용할 수 있다. 일부 실시예들에서, 디폴트 예측 전략이 있을 수 있고, 디코더는, 인코딩된 비트 스트림에서 비율 왜곡 최적화 절차가 특정되지 않은 경우, 디폴트 예측 전략을 적용할 수 있다.
포인트 클라우드 속성 전달 알고리즘
일부 실시예들에서, 포인트 클라우드 전달 알고리즘은 원래의 포인트 클라우드와 원래의 포인트 클라우드의 재구성된 버전 사이의 왜곡을 최소화하는 데 사용될 수 있다. 전달 알고리즘은 원래의 포인트 클라우드와 재구성된 포인트 클라우드가 약간 상이한 위치들에 있는 포인트들을 갖는 것에 기인한 왜곡을 평가하는 데 사용될 수 있다. 예를 들어, 재구성된 포인트 클라우드는 원래의 포인트 클라우드와 유사한 형상을 가질 수 있지만, a.) 상이한 수의 총 포인트들 및/또는 b) 원래의 포인트 클라우드 내의 대응하는 포인트와 비교하여 약간 시프트된 포인트들을 가질 수 있다. 일부 실시예들에서, 포인트 클라우드 전달 알고리즘은 재구성된 포인트 클라우드에 대한 속성 값들이 원래의 포인트 클라우드와 그 원래의 포인트 클라우드의 재구성된 버전 사이의 왜곡이 최소화되도록 선택되게 할 수 있다. 예를 들어, 원래의 포인트 클라우드에 대해, 포인트들의 위치들 및 포인트들의 속성 값들 둘 모두가 알려진다. 그러나, 재구성된 포인트 클라우드의 경우, 위치 값들은 (예를 들어, 전술된 바와 같은 서브샘플링 프로세스, K-D 트리 프로세스, 또는 패치 이미지 프로세스에 기초하여) 알려질 수 있다. 그러나, 재구성된 포인트 클라우드에 대한 속성 값들은 여전히 결정될 필요가 있을 수 있다. 따라서, 포인트 클라우드 전달 알고리즘은 왜곡을 최소화하는 재구성된 포인트 클라우드에 대한 속성 값들을 선택함으로써 왜곡을 최소화하는 데 사용될 수 있다.
원래의 포인트 클라우드로부터 재구성된 포인트 클라우드로의 왜곡은 선택된 속성 값에 대해 결정될 수 있다. 마찬가지로, 재구성된 포인트 클라우드로부터 원래의 포인트 클라우드로의 왜곡은 재구성된 포인트 클라우드에 대한 선택된 속성 값에 대해 결정될 수 있다. 많은 상황들에서, 이러한 왜곡들은 대칭이 아니다. 포인트 클라우드 전달 알고리즘은 2개의 오차들 (E21) 및 (E12)로 초기화되며, E21은 제2 포인트 클라우드 또는 재구성된 포인트 클라우드로부터 원래의 포인트 클라우드 또는 제1 포인트 클라우드로의 오차이고, E12는 제1 포인트 클라우드 또는 원래의 포인트 클라우드로부터 제2 포인트 클라우드 또는 재구성된 포인트 클라우드로의 오차이다. 제2 포인트 클라우드 내의 각각의 포인트에 대해, 포인트가 원래의 포인트 클라우드 내의 대응하는 포인트의 속성 값을 할당 받아야 하는지, 아니면 원래의 포인트 클라우드 내의 대응하는 포인트에 대한 최근접 이웃들의 평균 속성 값을 할당 받아야 하는지 여부가 결정된다. 속성 값은 최소 오차에 기초하여 선택된다.
포인트 클라우드 압축 및 압축해제를 위한 예시적인 애플리케이션들
도 14는 일부 실시예들에 따른, 3-D 원격현실 애플리케이션에서 사용되는 압축된 포인트 클라우드들을 예시한다.
일부 실시예들에서, 센서(102)와 같은 센서, 인코더(104) 또는 인코더(202)와 같은 인코더, 및 디코더(116) 또는 디코더(220)와 같은 디코더는 3-D 원격현실 애플리케이션에서 포인트 클라우드들을 통신하기 위해 사용될 수 있다. 예를 들어, 센서(102)와 같은 센서는 1402에서 3D 이미지를 캡처할 수 있고, 1404에서, 센서 또는 센서와 연관된 프로세서는 감지된 데이터에 기초하여 3D 재구성을 수행하여 포인트 클라우드를 생성할 수 있다.
1406에서, 인코더(104 또는 202)와 같은 인코더는 포인트 클라우드를 압축할 수 있고, 1408에서, 인코더 또는 포스트 프로세서는 압축된 포인트 클라우드를 패킷화하고 네트워크(1410)를 통해 송신할 수 있다. 1412에서, 패킷들은 디코더(116) 또는 디코더(220)와 같은 디코더를 포함하는 목적지 위치에서 수신될 수 있다. 디코더는 1414에서 포인트 클라우드를 압축해제할 수 있고, 압축해제된 포인트 클라우드는 1416에서 렌더링될 수 있다. 일부 실시예들에서, 3-D 원격현실 애플리케이션은 1416에서의 디스플레이가, 1402에서 관찰되고 있는 이미지들을 표현하도록, 포인트 클라우드 데이터를 실시간으로 송신할 수 있다. 예를 들어, 협곡(canyon) 내의 카메라는 원격 사용자가 1416에서 가상 협곡을 통한 걷기를 경험하게 할 수 있다.
도 15는 일부 실시예들에 따른, 가상 현실(VR) 또는 증강 현실(AR) 애플리케이션에서 사용 중인 압축된 포인트 클라우드들을 예시한다.
일부 실시예들에서, 포인트 클라우드들은 (예를 들어, 센서에 의해 캡처되고 있는 것과는 대조적으로) 소프트웨어에서 생성될 수 있다. 예를 들어, 1502에서, 가상 현실 또는 증강 현실 콘텐츠가 생성된다. 가상 현실 또는 증강 현실 콘텐츠는 포인트 클라우드 데이터 및 비-포인트 클라우드 데이터를 포함할 수 있다. 예를 들어, 비-포인트 클라우드 문자가, 일 예로서, 포인트 클라우드들에 의해 표현되는 풍경(landscape)을 순회할 수 있다. 1504에서, 포인트 클라우드 데이터가 압축될 수 있고, 1506에서, 압축된 포인트 클라우드 데이터 및 비-포인트 클라우드 데이터가 패킷화되고 네트워크(1508)를 통해 송신될 수 있다. 예를 들어, 1502에서 생성된 가상 현실 또는 증강 현실 콘텐츠는 원격 서버에서 생성되고 네트워크(1508)를 통해 VR 또는 AR 콘텐츠 소비자에게 통신될 수 있다. 1510에서, 패킷들은 VR 또는 AR 소비자의 디바이스에서 수신되고 동기화될 수 있다. VR 또는 AR 소비자의 디바이스에서 동작하는 디코더는 1512에서, 압축된 포인트 클라우드를 압축해제할 수 있고, 포인트 클라우드 및 비-포인트 클라우드 데이터는 예를 들어 VR 또는 AR 소비자의 디바이스의 헤드 마운트 디스플레이에서 실시간으로 렌더링될 수 있다. 일부 실시예들에서, 포인트 클라우드 데이터는 상이한 방향들로 보기 위해 헤드 마운트 디스플레이를 조작하는 VR 또는 AR 소비자에 응답하여 생성, 압축, 압축해제 및 렌더링될 수 있다.
일부 실시예들에서, 본 명세서에 설명된 바와 같은 포인트 클라우드 압축은 지리적 정보 시스템들, 스포츠들 재생 방송, 박물관 디스플레이들, 자율 네비게이션 등과 같은 다양한 다른 애플리케이션들에서 사용될 수 있다.
예시적인 컴퓨터 시스템
도 16은 일부 실시예들에 따른, 본 명세서에 설명된 인코더 또는 디코더 또는 컴포넌트들 중 임의의 다른 컴포넌트(예를 들어, 도 1 내지 도 15를 참조하여 전술된 컴포넌트들 중 임의의 것)를 구현할 수 있는 예시적인 컴퓨터 시스템(1600)을 예시한다. 컴퓨터 시스템(1600)은 전술한 실시예들 중 임의의 것 또는 모두를 실행하도록 구성될 수 있다. 상이한 실시예들에서, 컴퓨터 시스템(1600)은 개인용 컴퓨터 시스템, 데스크톱 컴퓨터, 랩톱, 노트북, 태블릿, 슬레이트, 패드, 또는 넷북 컴퓨터, 메인프레임 컴퓨터 시스템, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 카메라, 셋톱 박스, 모바일 디바이스, 소비자 디바이스, 비디오 게임 콘솔, 핸드헬드 비디오 게임 디바이스, 애플리케이션 서버, 저장 디바이스, 텔레비전, 비디오 녹화 디바이스, 주변기기 디바이스, 예컨대 스위치, 모뎀, 라우터, 또는 대체로 임의의 유형의 컴퓨팅 또는 전자 디바이스를 포함하지만 이들로 제한되지 않는, 다양한 유형의 디바이스들 중 임의의 것일 수 있다.
본 명세서에서 설명된 바와 같은 포인트 클라우드 인코더 또는 디코더의 다양한 실시예들은, 다양한 다른 디바이스들과 상호작용할 수 있는 하나 이상의 컴퓨터 시스템들(1600)에서 실행될 수 있다. 도 1 내지 도 15에 관하여 전술한 임의의 컴포넌트, 동작, 및 기능이, 다양한 실시예들에 따라, 도 16의 컴퓨터 시스템(1600)으로서 구성되는 하나 이상의 컴퓨터 상에서 구현될 수 있다는 것에 주목한다. 예시된 실시예에서, 컴퓨터 시스템(1600)은 입력/출력(I/O) 인터페이스(1630)를 통해 시스템 메모리(1620)에 커플링된 하나 이상의 프로세서들(1610)을 포함한다. 컴퓨터 시스템(1600)은 I/O 인터페이스(1630)에 결합된 네트워크 인터페이스(1640), 및 하나 이상의 입력/출력 디바이스들(1650), 예컨대 커서 제어 디바이스(1660), 키보드(1670), 및 디스플레이(들)(1680)를 더 포함한다. 일부 경우들에 있어서, 실시예들이 컴퓨터 시스템(1600)의 단일 사례를 이용하여 구현될 수 있지만, 다른 실시예들에서는 다수의 그러한 시스템들, 또는 컴퓨터 시스템(1600)을 구성하는 다수의 노드들이 실시예들의 상이한 부분들 또는 사례들을 호스팅하도록 구성될 수 있다는 점을 고려한다. 예를 들어, 하나의 실시예에서, 일부 요소들은 다른 요소들을 구현하는 그들 노드들과는 별개인 컴퓨터 시스템(1600)의 하나 이상의 노드들을 통해 구현될 수 있다.
다양한 실시예들에서, 컴퓨터 시스템(1600)은 하나의 프로세서(1610)를 포함하는 단일프로세서 시스템, 또는 여러개(예를 들어, 2개, 4개, 8개, 또는 다른 적합한 개수)의 프로세서들(1610)을 포함하는 멀티프로세서 시스템일 수 있다. 프로세서들(1610)은 명령어들을 실행할 수 있는 임의의 적합한 프로세서일 수 있다. 예를 들어, 다양한 실시예들에서, 프로세서들(1610)은 다양한 명령어 세트 아키텍처(instruction set architecture, ISA)들, 예컨대 x86, PowerPC, SPARC 또는 MIPS ISA들, 또는 임의의 다른 적합한 ISA 중 임의의 것을 구현하는 범용 또는 임베디드 프로세서들일 수 있다. 멀티프로세서 시스템들에서, 프로세서들(1610) 각각은 일반적으로 동일한 ISA를 구현할 수 있지만 반드시 그러한 것은 아니다.
시스템 메모리(1620)는 프로세서(1610)에 의해 액세스가능한 포인트 클라우드 압축 또는 포인트 클라우드 압축해제 프로그램 명령어들(1622) 및/또는 센서 데이터를 저장하도록 구성될 수 있다. 다양한 실시예들에서, 시스템 메모리(1620)는 SRAM, SDRAM, 비휘발성/플래시 유형 메모리, 또는 임의의 다른 유형의 메모리와 같은 임의의 적합한 메모리 기술을 이용하여 구현될 수 있다. 예시된 실시예에서, 프로그램 명령어들(1622)은 전술된 기능 중 임의의 것을 통합하는 이미지 센서 제어 애플리케이션을 구현하도록 구성될 수 있다. 일부 실시예들에서, 프로그램 명령어들 및/또는 데이터는 시스템 메모리(1620) 또는 컴퓨터 시스템(1600)과는 별개인 상이한 유형들의 컴퓨터 액세스가능 매체들 또는 유사한 매체들에서 수신, 전송, 또는 저장될 수 있다. 컴퓨터 시스템(1600)은 이전 도면들의 기능 블록들의 기능을 구현하는 것으로서 설명되지만, 본 명세서에서 설명된 기능 중 임의의 것이 그러한 컴퓨터 시스템을 통해 구현될 수 있다.
하나의 실시예에서, I/O 인터페이스(1630)는 프로세서(1610), 시스템 메모리(1620), 및 네트워크 인터페이스(1640) 또는 기타 주변기기 인터페이스들, 예컨대 입력/출력 디바이스들(1650)을 포함한 디바이스 내의 임의의 주변기기 디바이스들 사이에서 I/O 트래픽을 조정하도록 구성될 수 있다. 일부 실시예들에서, I/O 인터페이스(1630)는 하나의 컴포넌트(예를 들어, 시스템 메모리(1620))로부터의 데이터 신호들을 다른 컴포넌트(예를 들어, 프로세서(1610))에 의한 사용에 적합한 포맷으로 변환하기 위해 임의의 필수적인 프로토콜, 타이밍, 또는 다른 데이터 변환들을 수행할 수 있다. 일부 실시예들에서, I/O 인터페이스(1630)는, 예를 들어, PCI(Peripheral Component Interconnect) 버스 표준 또는 USB(Universal Serial Bus) 표준의 변형물과 같은 다양한 유형들의 주변기기 버스들을 통해 부착되는 디바이스들을 위한 지원부를 포함할 수 있다. 일부 실시예들에서, I/O 인터페이스(1630)의 기능은, 예를 들어, 2개 이상의 별개의 컴포넌트들, 예컨대 노스 브리지 및 사우스 브리지로 분할될 수 있다. 또한, 일부 실시예들에서, 시스템 메모리(1620)에 대한 인터페이스와 같은 I/O 인터페이스(1630)의 기능 중 일부 또는 전부가 프로세서(1610) 내에 직접 통합될 수 있다.
네트워크 인터페이스(1640)는, 컴퓨터 시스템(1600)과, 네트워크(1685)에 부착된 다른 디바이스들(예를 들어, 캐리어 또는 에이전트 디바이스들) 사이에서, 또는 컴퓨터 시스템(1600)의 노드들 사이에서 데이터가 교환되게 하도록 구성될 수 있다. 네트워크(1685)는, 다양한 실시예들에서, 로컬 영역 네트워크(Local Area Network, LAN)(예를 들어, 이더넷(Ethernet) 또는 회사 네트워크), 광역 네트워크(WAN)(예를 들어, 인터넷), 무선 데이터 네트워크, 일부 다른 전자 데이터 네트워크, 또는 이들의 일부 조합을 포함하지만 이로 제한되지 않는 하나 이상의 네트워크들을 포함할 수 있다. 다양한 실시예들에서, 네트워크 인터페이스(1640)는, 예를 들어 유선 또는 무선의 일반 데이터 네트워크들, 예컨대 임의의 적합한 유형의 이더넷 네트워크를 통해; 원격통신/전화 네트워크들, 예컨대 아날로그 음성 네트워크들 또는 디지털 광섬유 통신 네트워크들을 통해; 저장 영역 네트워크(storage area network)들, 예컨대 광섬유 채널 SAN(Fibre Channel SAN)들을 통해; 또는 임의의 다른 적합한 유형의 네트워크 및/또는 프로토콜을 통해 통신을 지원할 수 있다.
입력/출력 디바이스들(1650)은, 일부 실시예들에서, 하나 이상의 디스플레이 단말기들, 키보드들, 키패드들, 터치패드들, 스캐닝 디바이스들, 음성 또는 광 인식 디바이스들, 또는 하나 이상의 컴퓨터 시스템들(1600)에 의해 데이터를 입력하거나 그에 액세스하는 데 적합한 임의의 다른 디바이스들을 포함할 수 있다. 다수의 입력/출력 디바이스들(1650)은 컴퓨터 시스템(1600)에 존재할 수 있거나, 또는 컴퓨터 시스템(1600)의 다양한 노드들 상에 분산될 수 있다. 일부 실시예들에서, 유사한 입력/출력 디바이스들은 컴퓨터 시스템(1600)으로부터 분리될 수 있고, 유선 또는 무선 연결을 통해, 예컨대 네트워크 인터페이스(1640)를 통해, 컴퓨터 시스템(1600)의 하나 이상의 노드들과 상호작용할 수 있다.
도 16에 도시된 바와 같이, 메모리(1620)는 전술한 임의의 요소 또는 동작을 구현하도록 프로세서-실행가능할 수 있는 프로그램 명령어들(1622)을 포함할 수 있다. 하나의 실시예에서, 프로그램 명령어들은 전술된 방법들을 구현할 수 있다. 다른 실시예들에서, 상이한 요소들 및 데이터가 포함될 수 있다. 데이터가 전술된 임의의 데이터 또는 정보를 포함할 수 있다는 점에 주목한다.
당업자들은, 컴퓨터 시스템(1600)이 단지 예시적인 것이고, 실시예들의 범주를 제한하는 것으로 의도되지는 않음을 인식할 것이다. 특히, 컴퓨터 시스템 및 디바이스들은 컴퓨터, 네트워크 디바이스, 인터넷 어플라이언스, PDA, 무선 전화기, 호출기 등을 비롯한, 나타낸 기능들을 수행할 수 있는 하드웨어 또는 소프트웨어의 임의의 조합을 포함할 수 있다. 컴퓨터 시스템(1600)은, 또한, 예시되지 않은 다른 디바이스들에 연결될 수 있거나, 또는 대신에 독립형 시스템으로서 동작할 수 있다. 부가적으로, 도시된 컴포넌트들에 의해 제공되는 기능은, 일부 실시예들에서, 더 적은 수의 컴포넌트들로 조합될 수 있거나 또는 부가적인 컴포넌트들에 분산될 수 있다. 유사하게, 일부 실시예들에서, 도시된 컴포넌트들 중 일부 컴포넌트들의 기능이 제공되지 않을 수 있고/있거나 다른 부가적인 기능이 이용가능할 수 있다.
본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 또한, 다양한 아이템들이 메모리에 저장되어 있는 것으로 또는 사용 중에 저장소 상에 저장되는 것으로 도시되어 있지만, 이들 아이템들 또는 이들의 부분들은 메모리 관리 및 데이터 무결성의 목적을 위해 메모리와 다른 저장 디바이스들 사이에서 전달될 수 있다는 것을 이해할 것이다. 대안적으로, 다른 실시예들에서, 소프트웨어 컴포넌트들 중 일부 또는 모두는 다른 디바이스 상의 메모리에서 실행될 수 있고, 컴퓨터간 통신을 통해 도시된 컴퓨터 시스템과 통신할 수 있다. 시스템 컴포넌트들 또는 데이터 구조들 중 일부 또는 전부는, 또한, 적절한 드라이브에 의해 판독될 컴퓨터 액세스가능 매체 또는 휴대용 물품 상에 (예를 들어, 명령어들 또는 구조화된 데이터로서) 저장될 수 있으며, 그의 다양한 예들이 위에 설명되어 있다. 일부 실시예들에서, 컴퓨터 시스템(1600)으로부터 분리된 컴퓨터 액세스가능 매체 상에 저장된 명령어들은, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는 전기, 전자기, 또는 디지털 신호들과 같은 송신 매체들 또는 신호들을 통해 컴퓨터 시스템(1600)으로 송신될 수 있다. 다양한 실시예들이 컴퓨터 액세스가능 매체에 관한 전술된 설명에 따라 구현된 명령어들 및/또는 데이터를 수신, 전송, 또는 저장하는 것을 더 포함할 수 있다. 일반적으로 말하면, 컴퓨터 액세스가능 매체는 자기적 또는 광학 매체들과 같은 비일시적 컴퓨터 판독가능 저장 매체 또는 메모리 매체, 예를 들어 디스크 또는 DVD/CD-ROM, 휘발성 또는 비휘발성 매체들, 예컨대 RAM(예를 들어, SDRAM, DDR, RDRAM, SRAM 등), ROM 등을 포함할 수 있다. 일부 실시예들에서, 컴퓨터 액세스가능 매체는, 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 전달되는 전기, 전자기, 또는 디지털 신호들과 같은 송신 매체들 또는 신호들을 포함할 수 있다.
본 명세서에 설명된 방법들은, 상이한 실시예들에서, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 부가적으로, 방법들의 블록들의 순서는 변경될 수 있고, 다양한 요소들이 부가, 재순서화, 조합, 생략, 수정, 기타 등등될 수 있다. 본 개시내용의 이익을 가진 당업자에게 명백한 바와 같이 다양한 수정들 및 변화들이 이루어질 수 있다. 본 명세서에 설명된 다양한 실시예들은 예시적인 것이며 제한하려는 것으로 의도되지 않는다. 많은 변형들, 수정들, 부가들 및 개선들이 가능하다. 따라서, 복수의 예시들이 본 명세서에 설명된 컴포넌트들에 대해 단일 예시로서 제공될 수 있다. 다양한 컴포넌트들, 동작들, 및 데이터 저장들 사이의 경계들은 다소 임의적이고, 특정 동작들은 특정 예시 구성들의 맥락에서 예시된다. 기능의 다른 할당들이 계획되고, 다음의 청구범위의 범주 내에 속할 수 있다. 마지막으로, 예시적인 구성들에서 별개의 컴포넌트들로서 제시된 구조들 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 이들 및 다른 변형들, 수정들, 부가들 및 개선들은 다음의 청구범위에 정의된 바와 같은 실시예들의 범주 내에 속할 수 있다.
다양한 실시예들은 하기의 항목들의 관점에서 설명될 수 있다:
1. 시스템으로서,
포인트 클라우드를 구성하는 복수의 포인트들을 캡처하도록 구성된 하나 이상의 센서들 - 포인트들 중의 각자의 포인트들은 포인트에 대한 공간 정보 및 포인트에 대한 속성 정보를 포함함 -; 및
인코더를 포함하고, 인코더는:
포인트 클라우드의 속성 정보에 대한 제1 상세 레벨을 결정하고;
포인트 클라우드의 속성 정보에 대한 하나 이상의 추가 상세 레벨들을 결정하도록 구성되며,
제1 상세 레벨 또는 하나 이상의 추가 상세 레벨들을 결정하기 위해, 인코더는:
포인트 클라우드의 적어도 하나의 포인트에게, 포인트에 대한 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하고;
이전에 결정된 상세 레벨에 포함되지 않은 포인트 클라우드의 포인트들 중의 각자의 포인트들의 서브세트에 대해:
포인트로부터 제1 거리보다 더 먼 이웃 포인트들의 세트를 식별하고;
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 각자의 포인트에 대한 예측된 속성 값을 결정하고;
각자의 포인트에 대한 예측된 속성 값을 캡처된 포인트 클라우드 내에 포함된 포인트에 대한 속성 정보와 비교하는 것에 기초하여 포인트에 대한 속성 정정 값을 결정하고;
제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 값 및 결정된 속성 정정 값들을 인코딩하도록 구성되는, 시스템.
2. 항목 1에 있어서, 인코더는:
제1 상세 레벨 및 하나 이상의 추가 상세 레벨들을 수신자 디바이스에 순차적으로 제공하도록 구성되는, 시스템.
3. 항목 2에 있어서, 인코더는 포인트 클라우드에 대한 공간 정보를 K-D 트리로서 추가로 인코딩하는, 시스템.
4. 항목 2에 있어서, 인코더는 포인트들의 각자의 서브세트들에 대응하는 각자의 상세 레벨들의 포인트들의 각자의 서브세트들에 대한 공간 정보를 포함하도록 구성되는, 시스템.
5. 항목 1에 있어서, 인코더는:
포인트 클라우드에 대해 인코딩된 상세 레벨들의 수를 나타내는 정보를 인코딩하도록 추가로 구성되는, 시스템.
6. 항목 1에 있어서, 인코더는:
제1 상세 레벨에 포함된 포인트들을 식별하기 위한 초기 샘플링 거리; 및
하나 이상의 추가 상세 레벨들에 대한 추가 샘플링 거리들을 결정하기 위한 샘플링 거리 업데이트 인자를 인코딩하도록 추가로 구성되며, 추가 샘플링 거리들은 하나 이상의 추가 상세 레벨들에 포함된 포인트들을 식별하기 위한 것이고,
초기 샘플링 거리 및 샘플링 거리 업데이트 인자는, 인코딩된 할당된 속성 값 및 제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 인코딩된 결정된 속성 정정 값들에 추가되어 디코더에 제공되는, 시스템.
7. 항목 1에 있어서, 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 각자의 포인트에 대한 예측된 속성 값을 결정하기 위해, 인코더는:
포인트와, 이웃 포인트들의 세트의 이웃 포인트들 중의 각자의 이웃 포인트들 사이의 각자의 거리들을 결정하도록 구성되며,
포인트에 대한 속성 값은 역 거리 보간 방법에 기초하여 결정되고, 포인트에 더 가까운 이웃 포인트들의 속성 값들은 포인트로부터 더 멀리 떨어진 이웃 포인트들의 속성 값들보다 더 크게 가중되는, 시스템.
8. 디코더로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함하고, 속성 정정 값들은 포인트 클라우드의 다른 포인트들의 복수의 서브세트들에 대한 복수의 상세 레벨들로 순서화됨 -;
제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하고;
복수의 상세 레벨들 중의 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하도록 구성되는, 디코더.
9. 항목 8에 있어서, 압축해제된 포인트 클라우드를 업데이트하기 위해, 디코더는 포인트들의 추가 서브세트들에 속성 정보를 할당하도록 구성되며, 할당된 속성 정보는 상세 레벨들 중의 다른 상세 레벨들에 포함된 포인트들의 서브세트들에 대해 이전에 할당된 속성 정보에 추가되는, 디코더.
10. 항목 8에 있어서, 제1 상세 레벨에 포함된 포인트들의 서브세트 또는 상세 레벨들 중의 하나 이상의 다른 상세 레벨들에 포함된 포인트들의 추가 서브세트들에 대한 속성 정보를 결정하기 위해, 디코더는:
주어진 상세 레벨에 대응하는 주어진 포인트들의 서브세트의 포인트들 각각에 대해:
평가 중인 포인트에게 이웃 포인트들의 세트를 식별하고;
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 결정하고;
압축된 속성 정보에 포함된 포인트에 대한 속성 정정 값에 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 조정하도록 구성되는, 디코더.
11. 항목 8에 있어서, 예측된 속성 값들은 평가 중인 포인트와 이웃 포인트들 사이의 역 거리 관계들에 기초하여 결정되는, 디코더.
12. 항목 8에 있어서, 디코더는 압축해제된 포인트 클라우드에 대해 할당된 데이터 예산에 적어도 부분적으로 기초하여 디코딩할 상세 레벨들의 수를 결정하도록 구성되는, 디코더.
13. 항목 8에 있어서, 디코더는 압축해제된 포인트 클라우드를 뷰잉하는 데 사용되는 뷰잉 모드에 적어도 부분적으로 기초하여 디코딩할 상세 레벨들의 수를 결정하도록 구성되는, 디코더.
14. 방법으로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하는 단계 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함하고, 속성 정정 값들은 포인트 클라우드의 다른 포인트들의 복수의 서브세트들에 대한 복수의 상세 레벨들로 순서화됨 -;
제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하는 단계; 및
복수의 상세 레벨들 중의 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하는 단계를 포함하는, 방법.
15. 항목 14에 있어서, 제1 상세 레벨에 대한 속성 정보를 제공하는 단계 및 복수의 상세 레벨들 중의 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하는 단계는, 각각:
주어진 상세 레벨에 대응하는 주어진 포인트들의 서브세트의 포인트들 각각에 대해:
평가 중인 포인트에게 이웃 포인트들의 세트를 식별하는 단계;
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 결정하는 단계; 및
압축된 속성 정보에 포함된 포인트에 대한 속성 정정 값에 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 조정하는 단계를 포함하는, 방법.
16. 항목 15에 있어서,
제1 상세 레벨의 포인트들에 대한 공간 정보를 수신하는 단계; 및
제2 상세 레벨의 포인트들에 대한 공간 정보를 별도로 수신하는 단계를 더 포함하는, 방법.
17. 항목 15에 있어서,
포인트 클라우드의 하나 초과의 상세 레벨의 포인트들에 대한 인코딩된 공간 정보를 수신하는 단계; 및
제1 상세 레벨에 대한 속성 정보를 제공하기 전에 인코딩된 공간 정보를 디코딩하는 단계를 더 포함하는, 방법.
18. 항목 15에 있어서, 상기 압축해제된 포인트 클라우드를 업데이트하는 단계는:
포인트들의 추가 서브세트들에 속성 정보를 할당하는 단계를 포함하며, 할당된 속성 정보는 상세 레벨들 중의 다른 상세 레벨들에 포함된 포인트들의 서브세트들에 대해 이전에 할당된 속성 정보에 추가되는, 방법.
19. 항목 15에 있어서,
압축해제된 포인트 클라우드에 대해 할당된 데이터 예산에 적어도 부분적으로 기초하여 디코딩할 상세 레벨들의 수를 결정하는 단계를 더 포함하는, 방법.
20. 항목 15에 있어서,
압축해제된 포인트 클라우드를 뷰잉하는 데 사용되는 뷰잉 모드에 적어도 부분적으로 기초하여 디코딩할 상세 레벨들의 수를 결정하는 단계를 더 포함하는, 방법.
21. 시스템으로서,
포인트 클라우드를 구성하는 복수의 포인트들을 캡처하도록 구성된 하나 이상의 센서들 - 포인트들 중의 각자의 포인트들은 포인트에 대한 공간 정보 및 포인트에 대한 속성 정보를 포함함 -; 및
인코더를 포함하고, 인코더는:
포인트 클라우드의 적어도 하나의 포인트에게, 포인트에 대한 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하고;
이전에 결정된 상세 레벨에 포함되지 않은 포인트 클라우드의 포인트들 중의 각자의 포인트들의 서브세트에 대해:
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 각자의 포인트에 대한 예측된 속성 값을 결정하고;
각자의 포인트에 대한 예측된 속성 값을 캡처된 포인트 클라우드 내에 포함된 포인트에 대한 속성 정보와 비교하는 것에 기초하여 포인트에 대한 속성 정정 값을 결정하고;
결정된 속성 정정 값들을 평활화 하기 위해 업데이트 동작을 적용하고 - 업데이트 동작은 다른 상세 레벨들에 대한 각자의 포인트들의 속성들의 상대적 영향을 고려함 -;
제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 값 및 업데이트된 속성 정정 값들을 인코딩하도록 구성되는, 시스템.
22. 디코더로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함함 -;
제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하고 - 상기 속성 정보를 제공하는 것은 인코더에서 적용되는 속성 값 평활화를 제거하기 위해 업데이트 동작을 수행하는 것을 포함함 -;
복수의 상세 레벨들 중의 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하도록 구성되는, 디코더.
23. 방법으로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하는 단계 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함함 -;
제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하는 단계 - 상기 속성 정보를 제공하는 것은 인코더에서 적용되는 속성 값 평활화를 제거하기 위해 업데이트 동작을 수행하는 것을 포함함 -; 및
복수의 상세 레벨들 중의 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하는 단계를 포함하는, 방법.
24. 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금:
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트 클라우드의 다른 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터를 포함함 -;
제1 상세 레벨을 갖는 압축해제된 포인트 클라우드에 대한 속성 정보를 제공하고 - 상기 속성 정보를 제공하는 것은 인코더에서 적용되는 속성 값 평활화를 제거하기 위해 업데이트 동작을 수행하는 것을 포함함 -;
복수의 상세 레벨들 중의 하나 이상의 다른 상세 레벨들의 포인트들의 추가 서브세트들에 대한 속성 정보를 포함하기 위해, 압축해제된 포인트 클라우드를 업데이트하게 하는, 비일시적 컴퓨터 판독가능 매체.
25. 방법으로서,
포인트 클라우드의 적어도 하나의 포인트에게, 포인트에 대한 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하는 단계;
이전에 결정된 상세 레벨에 포함되지 않은 포인트 클라우드의 각자의 포인트들의 서브세트의 다수의 포인트들에 대해:
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 포인트들의 서브세트의 각자의 포인트들에 대한 예측된 속성 값을 결정하는 단계;
각자의 포인트들에 대한 예측된 속성 값들을 캡처된 포인트 클라우드 내에 포함된 포인트들에 대한 속성 정보와 비교하는 것에 기초하여, 다수의 포인트들에 대한 각자의 속성 정정 값들을 결정하는 단계;
결정된 속성 정정 값들을 평활화 하기 위해 업데이트 동작을 적용하는 단계 - 업데이트 동작은 다른 상세 레벨들에 대한 각자의 포인트들의 속성들의 상대적 영향을 고려함 -; 및
제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 값 및 업데이트된 속성 정정 값들을 인코딩하는 단계를 포함하는, 방법.
26. 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금:
포인트 클라우드의 적어도 하나의 포인트에게, 포인트에 대한 캡처된 포인트 클라우드 내에 포함된 속성 정보에 기초하여 속성 값을 할당하고;
이전에 결정된 상세 레벨에 포함되지 않은 포인트 클라우드의 각자의 포인트들의 서브세트의 다수의 포인트들에 대해:
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 포인트들의 서브세트의 각자의 포인트들에 대한 예측된 속성 값을 결정하고;
각자의 포인트들에 대한 예측된 속성 값들을 캡처된 포인트 클라우드 내에 포함된 포인트들에 대한 속성 정보와 비교하는 것에 기초하여, 다수의 포인트들에 대한 각자의 속성 정정 값들을 결정하고;
결정된 속성 정정 값들을 평활화 하기 위해 업데이트 동작을 적용하고 - 업데이트 동작은 다른 상세 레벨들에 대한 각자의 포인트들의 속성들의 상대적 영향을 고려함 -;
제1 상세 레벨 및 하나 이상의 추가 상세 레벨들에 대한 할당된 속성 값 및 업데이트된 속성 정정 값들을 인코딩하게 하는, 비일시적 컴퓨터 판독가능 매체.
27. 시스템으로서,
포인트 클라우드를 구성하는 복수의 포인트들을 캡처하도록 구성된 하나 이상의 센서들 - 포인트들 중의 각자의 포인트들은 포인트에 대한 공간 정보 및 포인트에 대한 속성 정보를 포함함 -; 및
인코더를 포함하고, 인코더는:
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 기초하여 포인트들 중의 각자의 포인트들에 대한 예측된 속성 값들을 결정하고 - 결정된 예측된 속성 값들은 각자의 포인트들 및 이웃 포인트들에 대해 상세 레벨 할당들이 결정되기 전에 또는 그 동안에 결정됨 -;
각자의 포인트들에 대한 예측된 속성 값들을 캡처된 포인트 클라우드 내에 포함된 각자의 포인트들에 대한 속성 정보와 비교하는 것에 기초하여, 각자의 포인트들에 대한 각자의 속성 정정 값들을 결정하도록 구성되는, 시스템.
28. 시스템으로서,
포인트 클라우드를 구성하는 복수의 포인트들을 캡처하도록 구성된 하나 이상의 센서들 - 포인트들 중의 각자의 포인트들은 포인트에 대한 공간 정보 및 포인트에 대한 속성 정보를 포함함 -; 및
인코더를 포함하고, 인코더는:
포인트 클라우드의 포인트들 중의 각자의 포인트들의 서브세트에 대해:
포인트로부터 제1 거리보다 더 먼 이웃 포인트들의 세트를 식별하고;
이웃 포인트들의 가변성이 가변성 임계치를 초과하는지 여부를 결정하고;
이웃 포인트들의 가변성이 임계치 미만인 경우 제1 예측 절차에 따라 각자의 포인트들의 서브세트의 하나 이상의 포인트들에 대한 각자의 예측된 속성 값들을 결정하고, 이웃 포인트들의 가변성이 임계치를 초과하는 경우 다른 예측 절차에 따라 하나 이상의 포인트에 대한 각자의 예측된 속성 값들을 결정하고;
하나 이상의 포인트들 중의 각자의 포인트들에 대한 각자의 예측된 속성 값들을 캡처된 포인트 클라우드 내에 포함된 대응하는 각자의 포인트들에 대한 속성 정보와 비교하는 것에 기초하여, 하나 이상의 포인트들에 대한 각자의 속성 정정 값들을 결정하고;
할당된 속성 값 및 결정된 속성 정정 값들을 인코딩하도록 구성되는, 시스템.
29. 디코더로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터 및 압축된 속성 정보를 압축해제하기 위해 적용될 선택된 예측 전략의 표시를 포함하고, 선택된 예측 전략은 디코더에 의해 지원되는 복수의 예측 전략들 중의 하나임 -;
선택된 예측 전략에 기초하여 포인트 클라우드의 포인트들에 대한 속성 값들을 예측하고;
압축해제된 포인트 클라우드에 대한 속성 정보를 결정하기 위해 하나 이상의 속성 정정 값들을 예측된 속성 값들에 적용하도록 구성되는, 디코더.
30. 방법으로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하는 단계 - 압축된 속성 정보는 포인트 클라우드의 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터 및 압축된 속성 정보를 압축해제하기 위해 적용될 선택된 예측 전략의 표시를 포함하고, 선택된 예측 전략은 디코더에 의해 지원되는 복수의 예측 전략들 중의 하나임 -;
선택된 예측 전략에 기초하여 포인트 클라우드의 포인트들에 대한 속성 값들을 예측하는 단계; 및
압축해제된 포인트 클라우드에 대한 속성 정보를 결정하기 위해 하나 이상의 속성 정정 값들을 예측된 속성 값들에 적용하는 단계를 포함하는, 방법.
31. 방법으로서,
포인트 클라우드의 포인트로부터 제1 거리보다 더 먼 이웃 포인트들의 세트를 식별하는 단계;
이웃 포인트들의 가변성이 가변성 임계치를 초과하는지 여부를 결정하는 단계;
이웃 포인트들의 가변성이 임계치 미만인 경우 제1 예측 절차에 따라 각자의 포인트들의 서브세트의 하나 이상의 포인트들에 대한 각자의 예측된 속성 값들을 결정하고, 이웃 포인트들의 가변성이 임계치를 초과하는 경우 다른 예측 절차에 따라 하나 이상의 포인트에 대한 각자의 예측된 속성 값들을 결정하는 단계;
하나 이상의 포인트들 중의 각자의 포인트들에 대한 각자의 예측된 속성 값들을 캡처된 포인트 클라우드 내에 포함된 대응하는 각자의 포인트들에 대한 속성 정보와 비교하는 것에 기초하여, 하나 이상의 포인트들에 대한 각자의 속성 정정 값들을 결정하는 단계; 및
할당된 속성 값 및 결정된 속성 정정 값들을 인코딩하는 단계를 포함하는, 방법.
32 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금:
포인트 클라우드의 포인트로부터 제1 거리보다 더 먼 이웃 포인트들의 세트를 식별하고;
이웃 포인트들의 가변성이 가변성 임계치를 초과하는지 여부를 결정하고;
이웃 포인트들의 가변성이 임계치 미만인 경우 제1 예측 절차에 따라 각자의 포인트들의 서브세트의 하나 이상의 포인트들에 대한 각자의 예측된 속성 값들을 결정하고, 이웃 포인트들의 가변성이 임계치를 초과하는 경우 다른 예측 절차에 따라 하나 이상의 포인트에 대한 각자의 예측된 속성 값들을 결정하고;
하나 이상의 포인트들 중의 각자의 포인트들에 대한 각자의 예측된 속성 값들을 캡처된 포인트 클라우드 내에 포함된 대응하는 각자의 포인트들에 대한 속성 정보와 비교하는 것에 기초하여, 하나 이상의 포인트들에 대한 각자의 속성 정정 값들을 결정하고;
할당된 속성 값 및 결정된 속성 정정 값들을 인코딩하게 하는, 비일시적 컴퓨터 판독가능 매체.
33. 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금:
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 포인트들의 속성들에 대한 속성 정정 값들을 나타내는 데이터 및 압축된 속성 정보를 압축해제하기 위해 적용될 선택된 예측 전략의 표시를 포함하고, 선택된 예측 전략은 디코더에 의해 지원되는 복수의 예측 전략들 중의 하나임 -;
선택된 예측 전략에 기초하여 포인트 클라우드의 포인트들에 대한 속성 값들을 예측하고;
압축해제된 포인트 클라우드에 대한 속성 정보를 결정하기 위해 하나 이상의 속성 정정 값들을 예측된 속성 값들에 적용하게 하는, 비일시적 컴퓨터 판독가능 매체.
34. 시스템으로서,
디코더를 포함하며, 디코더는:
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및, 포인트 클라우드의 다른 포인트들에 대해, 다른 포인트들의 각자의 속성들에 대한 각자의 속성 정정 값들을 나타내는 데이터를 포함함 -;
적어도 하나의 포인트를 제외한, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해:
평가 중인 포인트에게 이웃 포인트들의 세트를 식별하고;
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 결정하고;
압축된 속성 정보에 포함된 포인트에 대한 속성 정정 값에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 조정하고;
압축해제된 포인트 클라우드에 대한 속성 정보 - 속성 정보는 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트들 중의 다른 포인트들에 대한 조정된 예측된 속성 값들을 포함함 -를 제공하도록 구성되는, 시스템.
35. 항목 34에 있어서, 디코더는:
포인트 클라우드의 포인트들에 대한 공간 정보에 적어도 부분적으로 기초하여 포인트 클라우드에 대한 최소 신장 트리를 결정하고;
최소 신장 트리에 적어도 부분적으로 기초하여 포인트들 중의 각자의 다른 포인트들을 평가하기 위한 프로세싱 순서를 결정하도록 추가로 구성되며, 프로세싱 순서는 평가 중인 연속적인 포인트들 사이의 최소 거리들에 적어도 부분적으로 기초하여 결정되는, 시스템.
36. 항목 35에 있어서, 이웃 포인트들의 세트를 식별하기 위해, 디코더는 최소 신장 트리에 따라 최근접 이웃 포인트들의 세트를 식별하도록 구성되는, 시스템.
37. 항목 36에 있어서, 디코더는 평가 중인 포인트와 이웃 포인트들 사이의 역 거리 관계들에 적어도 부분적으로 기초하여 속성 예측들을 결정하도록 구성되는, 시스템.
38. 항목 37에 있어서, 하나 초과의 속성을 포함하는 포인트들에 대해, 디코더는 주어진 포인트의 하나 이상의 다른 속성들에 대한 압축된 속성 정정 값들을 압축해제할 때, 주어진 포인트의 제1 예측된 속성 값에 대한 압축된 속성 정정 값을 압축해제하는 데 사용되는 것과 동일한 컨텍스트를 적용하도록 구성되는, 시스템.
39. 포인트 클라우드에 대한 속성 정보를 압축하는 방법으로서,
포인트 클라우드에 대한 압축된 속성 정보를 수신하는 단계 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및, 포인트 클라우드의 다른 포인트들에 대해, 다른 포인트들의 각자의 속성들에 대한 각자의 속성 정정 값들을 나타내는 데이터를 포함함 -;
적어도 하나의 포인트를 제외한, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해:
평가 중인 포인트에게 이웃 포인트들의 세트를 식별하는 단계;
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 결정하는 단계;
압축된 속성 정보에 포함된 포인트에 대한 속성 정정 값에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 조정하는 단계; 및
압축해제된 포인트 클라우드에 대한 속성 정보 - 속성 정보는 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트들 중의 다른 포인트들에 대한 조정된 예측된 속성 값들을 포함함 -를 제공하는 단계를 포함하는, 방법.
40. 항목 39에 있어서,
포인트 클라우드의 포인트들에 대한 공간 정보에 적어도 부분적으로 기초하여 포인트 클라우드에 대한 최소 신장 트리를 결정하는 단계; 및
최소 신장 트리에 적어도 부분적으로 기초하여 포인트들 중의 각자의 다른 포인트들을 평가하기 위한 프로세싱 순서를 결정하는 단계를 더 포함하며, 프로세싱 순서는 평가 중인 연속적인 포인트들 사이의 최소 거리들에 적어도 부분적으로 기초하여 결정되는, 방법.
41. 항목 40에 있어서,
최소 신장 트리에 따라 최근접 이웃 포인트들의 세트를 식별하는 단계를 더 포함하는, 방법.
42. 항목 41에 있어서, 속성 예측들은 평가 중인 포인트와 이웃 포인트들 사이의 역 거리 관계들에 적어도 부분적으로 기초하여 결정되는, 방법.
43. 항목 42에 있어서, 하나 초과의 속성을 포함하는 포인트들에 대해, 주어진 포인트의 하나 이상의 다른 속성들에 대한 압축된 속성 정정 값들을 압축해제할 때, 주어진 포인트의 제1 예측된 속성 값에 대한 압축된 속성 정정 값을 압축해제하는 데 사용되는 것과 동일한 컨텍스트가 적용되는, 방법.
44. 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금 디코더를 구현하게 하며, 디코더는:
포인트 클라우드에 대한 압축된 속성 정보를 수신하고 - 압축된 속성 정보는 포인트 클라우드의 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및, 포인트 클라우드의 다른 포인트들에 대해, 다른 포인트들의 각자의 속성들에 대한 각자의 속성 정정 값들을 나타내는 데이터를 포함함 -;
적어도 하나의 포인트를 제외한, 포인트 클라우드의 포인트들 중의 각자의 다른 포인트들 각각에 대해:
평가 중인 포인트에게 이웃 포인트들의 세트를 식별하고;
이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 결정하고;
압축된 속성 정보에 포함된 포인트에 대한 속성 정정 값에 적어도 부분적으로 기초하여 평가 중인 포인트에 대한 예측된 속성 값을 조정하고;
압축해제된 포인트 클라우드에 대한 속성 정보 - 속성 정보는 적어도 하나의 포인트에 대한 적어도 하나의 할당된 속성 값 및 포인트들 중의 다른 포인트들에 대한 조정된 예측된 속성 값들을 포함함 -를 제공하도록 구성되는, 비일시적 컴퓨터 판독가능 매체.
45. 항목 44에 있어서, 디코더는:
포인트 클라우드의 포인트들에 대한 공간 정보에 적어도 부분적으로 기초하여 포인트 클라우드에 대한 최소 신장 트리를 결정하고;
최소 신장 트리에 적어도 부분적으로 기초하여 포인트들 중의 각자의 다른 포인트들을 평가하기 위한 프로세싱 순서를 결정하도록 추가로 구성되며, 프로세싱 순서는 평가 중인 연속적인 포인트들 사이의 최소 거리들에 적어도 부분적으로 기초하여 결정되는, 비일시적 컴퓨터 판독가능 매체.
46. 항목 45에 있어서, 이웃 포인트들의 세트를 식별하기 위해, 디코더는 최소 신장 트리에 따라 최근접 이웃 포인트들의 세트를 식별하도록 구성되는, 비일시적 컴퓨터 판독가능 매체.
47. 항목 46에 있어서, 속성 예측들은 평가 중인 포인트와 이웃 포인트들 사이의 역 거리 관계들에 적어도 부분적으로 기초하여 결정되는, 비일시적 컴퓨터 판독가능 매체.
48. 항목 47에 있어서, 하나 초과의 속성을 포함하는 포인트들에 대해, 디코더는 주어진 포인트의 하나 이상의 다른 속성들에 대한 압축된 속성 정정 값들을 압축해제할 때, 주어진 포인트의 제1 예측된 속성 값에 대한 압축된 속성 정정 값을 압축해제하는 데 사용되는 것과 동일한 컨텍스트를 적용하도록 구성되는, 비일시적 컴퓨터 판독가능 매체.

Claims (20)

  1. 시스템으로서,
    포인트 클라우드를 구성하는 복수의 포인트들을 캡처하도록 구성된 하나 이상의 센서들 - 상기 포인트들 중의 각자의 포인트들은 상기 포인트에 대한 공간 정보 및 상기 포인트에 대한 속성 정보를 포함함 -; 및
    상기 포인트들에 대한 상기 속성 정보를 압축하도록 구성된 인코더를 포함하며, 상기 속성 정보를 압축하기 위해, 상기 인코더는:
    상기 포인트 클라우드의 적어도 하나의 포인트에게, 상기 포인트에 대한 상기 캡처된 포인트 클라우드 내에 포함된 상기 속성 정보에 적어도 부분적으로 기초하여 속성 값을 할당하고;
    상기 포인트 클라우드의 상기 포인트들 중의 각자의 다른 포인트들 각각에 대해:
    이웃 포인트들의 세트를 식별하고;
    상기 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 상기 각자의 포인트에 대한 예측된 속성 값을 결정하고;
    상기 각자의 포인트에 대한 상기 예측된 속성 값을 상기 캡처된 포인트 클라우드 내에 포함된 상기 포인트에 대한 상기 속성 정보와 비교하는 것에 적어도 부분적으로 기초하여 상기 포인트에 대한 속성 정정 값을 결정하고;
    상기 압축된 속성 정보를 인코딩하도록 구성되며, 상기 압축된 속성 정보는:
    상기 적어도 하나의 포인트에 대한 상기 할당된 속성 값; 및
    상기 포인트들 중의 각자의 다른 포인트들에 대해, 상기 결정된 속성 정정 값들을 나타내는 데이터를 포함하는, 시스템.
  2. 제1항에 있어서, 상기 포인트들 중의 상기 각자의 다른 포인트들 각각에 대해, 상기 예측된 속성 값을 결정하기 위해, 상기 인코더는:
    상기 포인트들 중의 상기 각자의 다른 포인트들 각각에 대해, 상기 포인트와 상기 이웃 포인트들 중의 각자의 포인트들 사이의 각자의 거리들에 적어도 부분적으로 기초하여 상기 예측된 속성 값을 결정하도록 추가로 구성되며, 상기 포인트에 더 가까운 이웃 포인트들의 속성 값들은 상기 포인트로부터 더 멀리 떨어진 이웃 포인트들의 속성 값들보다 더 크게 가중되는, 시스템.
  3. 제2항에 있어서, 상기 인코더는:
    상기 포인트 클라우드의 상기 포인트들에 대한 최소 신장 트리(minimum spanning tree)를 결정하도록 추가로 구성되며,
    상기 이웃 포인트들의 세트를 식별하기 위해, 상기 인코더는 상기 최소 신장 트리에 따라 최근접 이웃 포인트들의 세트를 식별하도록 구성되는, 시스템.
  4. 제3항에 있어서, 상기 인코더는:
    상기 최소 신장 트리에 적어도 부분적으로 기초하여 결정된 순서에 따라 상기 포인트 클라우드의 포인트들 중의 상기 각자의 다른 포인트들을 평가하고;
    상기 순서에 따라 상기 포인트들 중의 상기 각자의 다른 포인트들에 대한 상기 결정된 속성 정정 값을 인코딩하도록 구성되는, 시스템.
  5. 제1항에 있어서, 상기 인코더는 상기 포인트들 중의 상기 각자의 다른 포인트들에 대해, 산술 압축 알고리즘에 따라 상기 속성 정정 값을 나타내는 데이터를 인코딩하도록 구성되는, 시스템.
  6. 제1항에 있어서, 상기 인코더는 상기 포인트들 중의 상기 각자의 다른 포인트들에 대해, 골룸(Golomb) 압축 알고리즘에 따라 상기 속성 정정 값을 나타내는 데이터를 인코딩하도록 구성되는, 시스템.
  7. 제1항에 있어서, 상기 인코더는 복수의 속성 정정 값 인코딩 컨텍스트들을 저장하며, 속성 정정 값을 인코딩하기 위해 상기 속성 정정 값 인코딩 컨텍스트들 중의 상이한 속성 정정 값 인코딩 컨텍스트들이 상기 속성 정정 값에 포함된 심볼들의 수에 적어도 부분적으로 기초하여 선택되는, 시스템.
  8. 포인트 클라우드에 대한 속성 정보를 압축하는 방법으로서,
    상기 포인트 클라우드의 적어도 하나의 포인트에게, 상기 포인트 클라우드 내에 포함된 상기 적어도 하나의 포인트에 대한 속성 정보에 적어도 부분적으로 기초하여 속성 값을 할당하는 단계 - 상기 포인트 클라우드는 복수의 포인트들에 대한 공간 정보 및 상기 복수의 포인트들 중의 각자의 포인트들에 대한 하나 이상의 속성들을 특정하는 속성 정보를 포함함 -;
    상기 포인트 클라우드의 상기 포인트들 중의 각자의 다른 포인트들 각각에 대해:
    이웃 포인트들의 세트를 식별하는 단계;
    상기 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 상기 포인트에 대한 예측된 속성 값을 결정하는 단계;
    상기 포인트에 대한 상기 예측된 속성 값을 상기 포인트에 대한 상기 속성 정보와 비교하는 것에 적어도 부분적으로 기초하여, 상기 포인트에 대한 속성 정정 값을 결정하는 단계; 및
    상기 포인트 클라우드에 대한 압축된 속성 정보를 인코딩하는 단계를 포함하며, 상기 압축된 속성 정보는:
    상기 적어도 하나의 포인트에 대한 상기 할당된 속성 값; 및
    상기 포인트들 중의 각자의 다른 포인트들에 대해, 상기 결정된 속성 정정 값들을 나타내는 데이터를 포함하는, 방법.
  9. 제8항에 있어서, 상기 최근접 이웃 포인트들의 세트에 대해, 식별하기 위한 이웃 포인트들의 수는 구성가능한 파라미터이고,
    상기 압축된 포인트 클라우드에 대한 상기 압축된 속성 정보를 인코딩하는 단계는 상기 식별된 최근접 이웃 포인트들의 세트에 포함시키기 위한 상기 최근접 이웃 포인트들의 수를 나타내는 구성 정보를 인코딩하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서, 상기 포인트에 대한 상기 예측된 속성 값을 결정하는 단계는:
    상기 포인트와, 상기 최근접 이웃 포인트들의 세트의 상기 이웃 포인트들 중의 각자의 이웃 포인트들 사이의 각자의 거리들을 결정하는 단계를 포함하며,
    상기 포인트에 대한 상기 속성 값은 역 거리 보간 방법에 적어도 부분적으로 기초하여 결정되고, 상기 포인트에 더 가까운 이웃 포인트들의 속성 값들은 상기 포인트로부터 더 멀리 떨어진 이웃 포인트들의 속성 값들보다 더 크게 가중되는, 방법.
  11. 제10항에 있어서,
    상기 포인트 클라우드의 상기 포인트들에 대한 최소 신장 트리를 결정하는 단계를 더 포함하며,
    상기 이웃 포인트들의 세트를 식별하는 단계는 상기 최소 신장 트리에 따라 최근접 이웃 포인트들의 세트를 식별하는 단계를 포함하는, 방법.
  12. 제11항에 있어서, 상기 포인트 클라우드의 상기 포인트들 중의 상기 각자의 다른 포인트들에 대해, 상기 각자의 포인트들은 상기 최소 신장 트리에 적어도 부분적으로 기초하여 결정된 프로세싱 순서에 따라 평가되며, 상기 최소 신장 트리는 평가 중인 연속적인 포인트들 사이의 최소 거리들에 따라 순회되는(traversed), 방법.
  13. 제11항에 있어서,
    상기 포인트 클라우드의 공간 정보를 압축하기 위해 K-D 트리를 인코딩하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서, 상기 포인트 클라우드의 상기 포인트들 중의 적어도 일부는 하나 초과의 속성을 특정하는 속성 정보를 포함하며, 상기 압축된 속성 정보를 인코딩하는 단계는:
    상기 제1 속성에 대한 상기 속성 정정 값에 포함된 심볼들의 수에 적어도 부분적으로 기초하여 선택된 인코딩 컨텍스트에 따라 상기 포인트의 제1 속성에 대한 속성 정정 값을 나타내는 데이터를 인코딩하는 단계; 및
    상기 선택된 인코딩 컨텍스트에 따라 상기 포인트의 하나 이상의 추가 속성들을 나타내는 데이터를 인코딩하는 단계를 더 포함하는, 방법.
  15. 제8항에 있어서, 상기 압축된 속성 정보를 인코딩하는 단계는:
    짝수들 또는 홀수들로서 양의 값들을 인코딩하는 단계; 및
    짝수들 또는 홀수들로서 음의 값들을 인코딩하는 단계를 포함하며,
    양의 값들 및 음의 값들 둘 모두가 짝수 값들 또는 홀수 값들로서 인코딩되지는 않는, 방법.
  16. 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 프로그램 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 인코더를 구현하게 하며, 상기 인코더는:
    상기 포인트 클라우드의 적어도 하나의 포인트에게, 상기 포인트 클라우드 내에 포함된 상기 적어도 하나의 포인트에 대한 속성 정보에 적어도 부분적으로 기초하여 속성 값을 할당하고 - 상기 포인트 클라우드는 복수의 포인트들에 대한 공간 정보 및 상기 복수의 포인트들 중의 각자의 포인트들에 대한 하나 이상의 속성들을 특정하는 속성 정보를 포함함 -;
    상기 포인트 클라우드의 상기 포인트들 중의 각자의 다른 포인트들 각각에 대해:
    이웃 포인트들의 세트를 식별하고;
    상기 이웃 포인트들에 대한 예측되거나 할당된 속성 값들에 적어도 부분적으로 기초하여 상기 포인트에 대한 예측된 속성 값을 결정하고;
    상기 포인트에 대한 상기 예측된 속성 값을 상기 포인트에 대한 상기 속성 정보와 비교하는 것에 적어도 부분적으로 기초하여, 상기 포인트에 대한 속성 정정 값을 결정하고;
    상기 포인트 클라우드에 대한 압축된 속성 정보 - 상기 압축된 속성 정보는:
    상기 적어도 하나의 포인트에 대한 상기 할당된 속성 값; 및
    상기 포인트들 중의 각자의 다른 포인트들에 대해, 상기 결정된 속성 정정 값들을 나타내는 데이터를 포함함 -를 인코딩하도록 구성되는, 비일시적 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 상기 최근접 이웃 포인트들의 세트에 대해, 식별하기 위한 이웃 포인트들의 수는 구성가능한 파라미터이고,
    상기 압축된 포인트 클라우드에 대한 상기 압축된 속성 정보를 인코딩하는 것은 상기 식별된 최근접 이웃 포인트들의 세트에 포함시키기 위한 상기 최근접 이웃 포인트들의 수를 나타내는 구성 정보를 인코딩하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  18. 제17항에 있어서, 상기 포인트에 대한 상기 예측된 속성 값을 결정하는 것은:
    상기 포인트와, 상기 최근접 이웃 포인트들의 세트의 상기 이웃 포인트들 중의 각자의 이웃 포인트들 사이의 각자의 거리들을 결정하는 것을 포함하며,
    상기 포인트에 대한 상기 속성 값은 역 거리 보간 방법에 적어도 부분적으로 기초하여 결정되고, 상기 포인트에 더 가까운 이웃 포인트들의 속성 값들은 상기 포인트로부터 더 멀리 떨어진 이웃 포인트들의 속성 값들보다 더 크게 가중되는, 비일시적 컴퓨터 판독가능 매체.
  19. 제18항에 있어서, 상기 인코더는:
    상기 포인트 클라우드의 상기 포인트들에 대한 최소 신장 트리를 결정하도록 추가로 구성되며,
    상기 이웃 포인트들의 세트를 식별하는 것은 상기 최소 신장 트리에 따라 최근접 이웃 포인트들의 세트를 식별하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서, 상기 포인트 클라우드의 상기 포인트들 중의 상기 각자의 다른 포인트들에 대해, 상기 각자의 포인트들은 상기 최소 신장 트리에 적어도 부분적으로 기초하여 결정된 프로세싱 순서에 따라 평가되며, 상기 최소 신장 트리는 평가 중인 연속적인 포인트들 사이의 최소 거리들에 따라 순회되는, 비일시적 컴퓨터 판독가능 매체.
KR1020207007212A 2017-09-14 2018-09-14 포인트 클라우드 압축 KR102317576B1 (ko)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US201762558795P 2017-09-14 2017-09-14
US62/558,795 2017-09-14
US201762560164P 2017-09-18 2017-09-18
US62/560,164 2017-09-18
US201762569602P 2017-10-08 2017-10-08
US62/569,602 2017-10-08
US201862655764P 2018-04-10 2018-04-10
US201862655768P 2018-04-10 2018-04-10
US201862655759P 2018-04-10 2018-04-10
US62/655,759 2018-04-10
US62/655,764 2018-04-10
US62/655,768 2018-04-10
US201862696295P 2018-07-10 2018-07-10
US62/696,295 2018-07-10
US16/130,949 US10861196B2 (en) 2017-09-14 2018-09-13 Point cloud compression
US16/130,949 2018-09-13
PCT/US2018/051062 WO2019055772A1 (en) 2017-09-14 2018-09-14 COMPRESSION OF CLOUD OF POINTS

Publications (2)

Publication Number Publication Date
KR20200039757A true KR20200039757A (ko) 2020-04-16
KR102317576B1 KR102317576B1 (ko) 2021-10-25

Family

ID=65631280

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207007212A KR102317576B1 (ko) 2017-09-14 2018-09-14 포인트 클라우드 압축

Country Status (5)

Country Link
US (3) US10861196B2 (ko)
KR (1) KR102317576B1 (ko)
CN (2) CN117319682A (ko)
DE (1) DE112018005149T5 (ko)
WO (1) WO2019055772A1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021215811A1 (ko) * 2020-04-24 2021-10-28 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021246839A1 (ko) * 2020-06-05 2021-12-09 엘지전자 주식회사 포인트 클라우드 데이터 처리 디바이스 및 처리 방법
WO2021246796A1 (ko) * 2020-06-05 2021-12-09 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021256887A1 (ko) * 2020-06-18 2021-12-23 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021256885A1 (ko) * 2020-06-18 2021-12-23 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022050688A1 (ko) * 2020-09-01 2022-03-10 엘지전자 주식회사 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법
WO2022050612A1 (ko) * 2020-09-07 2022-03-10 엘지전자 주식회사 포인트 클라우드 데이터 전송장치, 포인트 클라우드 데이터 전송방법, 포인트 클라우드 데이터 수신장치 및 포인트 클라우드 데이터 수신방법
WO2022075753A1 (ko) * 2020-10-06 2022-04-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022119304A1 (ko) * 2020-12-01 2022-06-09 현대자동차주식회사 적응적 데드존 양자화를 이용하는 포인트 클라우드 코딩 장치 및 방법
WO2022119303A1 (ko) * 2020-12-01 2022-06-09 현대자동차주식회사 매핑 함수를 이용하는 포인트 클라우드 코딩 장치 및 방법

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
EP3474233A1 (en) * 2017-10-19 2019-04-24 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
EP4213096A1 (en) 2018-01-18 2023-07-19 BlackBerry Limited Methods and devices for entropy coding point clouds
WO2019142834A1 (ja) * 2018-01-19 2019-07-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019146691A1 (ja) * 2018-01-26 2019-08-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019182102A1 (ja) * 2018-03-23 2019-09-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
EP3553745B1 (en) * 2018-04-09 2021-09-01 BlackBerry Limited Methods and devices for binary entropy coding of point clouds
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
CN108833927B (zh) * 2018-05-03 2019-08-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
EP3579194A1 (en) * 2018-06-08 2019-12-11 My Virtual Reality Software AS Indexation of massive point cloud data for efficient visualization
MX2020013271A (es) * 2018-06-13 2021-02-18 Panasonic Ip Corp America Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo codificador de datos tridimensionales y dispositivo decodificador de datos tridimensionales.
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US11940978B2 (en) * 2018-09-19 2024-03-26 International Business Machines Corporation Distributed platform for computation and trusted validation
US11032063B2 (en) 2018-09-19 2021-06-08 International Business Machines Corporation Distributed platform for computation and trusted validation
EP3859679A4 (en) * 2018-09-28 2022-11-02 Sony Group Corporation IMAGE PROCESSING DEVICE AND IMAGE PROCESSING METHOD
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US20220038517A1 (en) * 2018-10-02 2022-02-03 Sony Corporation Information processing apparatus, information processing method, and program
WO2020071416A1 (ja) * 2018-10-02 2020-04-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020075862A1 (ja) * 2018-10-12 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11676005B2 (en) * 2018-11-14 2023-06-13 Huawei Technologies Co., Ltd. Method and system for deep neural networks using dynamically selected feature-relevant points from a point cloud
WO2020130134A1 (ja) * 2018-12-21 2020-06-25 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
BR112021010602A2 (pt) * 2018-12-26 2021-08-24 Panasonic Intellectual Property Corporation Of America Método de codificação de dados tridimensionais, método de decodificação de dados tridimensionais, dispositivo de codificação de dados tridimensionais, e dispositivo de decodificação de dados tridimensionais
CN113261297A (zh) 2019-01-07 2021-08-13 索尼集团公司 图像处理装置和方法
WO2020175708A1 (ja) * 2019-02-28 2020-09-03 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US20220130075A1 (en) * 2019-03-15 2022-04-28 Lg Electronics Inc. Device and method for processing point cloud data
WO2020189943A1 (ko) * 2019-03-15 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
EP3926962A4 (en) * 2019-03-16 2022-04-20 LG Electronics Inc. DEVICE AND METHOD FOR PROCESSING POINT CLOUD DATA
US10964068B2 (en) * 2019-03-18 2021-03-30 Blackberry Limited Methods and devices for predictive point cloud attribute coding
US11943457B2 (en) 2019-03-19 2024-03-26 Sony Group Corporation Information processing apparatus and method
US11403784B2 (en) 2019-03-19 2022-08-02 Tencent America LLC Method and apparatus for tree-based point cloud compression (PCC) media stream using moving picture experts group (MPEG)-dynamic adaptive streaming over HTTP (DASH)
EP3713235B1 (en) * 2019-03-19 2023-08-02 Axis AB Methods and devices for encoding a video stream using a first and a second encoder
US11503367B2 (en) * 2019-03-20 2022-11-15 Tencent America LLC Techniques and apparatus for weighted-median prediction for point-cloud attribute coding
WO2020190090A1 (ko) * 2019-03-20 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
KR20210134049A (ko) * 2019-03-20 2021-11-08 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020190075A1 (ko) * 2019-03-20 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN112262578B (zh) * 2019-03-21 2023-07-25 深圳市大疆创新科技有限公司 点云属性编码方法和装置以及点云属性解码方法和装置
US11729406B2 (en) * 2019-03-21 2023-08-15 Qualcomm Incorporated Video compression using deep generative models
US20220159310A1 (en) * 2019-03-22 2022-05-19 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
CN113646807A (zh) * 2019-03-25 2021-11-12 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US11475604B2 (en) * 2019-03-26 2022-10-18 Tencent America LLC Method and apparatus for adaptive point cloud attribute coding
US11057564B2 (en) 2019-03-28 2021-07-06 Apple Inc. Multiple layer flexure for supporting a moving image sensor
CN110211040B (zh) * 2019-04-30 2022-10-21 国网河南省电力公司电力科学研究院 一种基于权值的点云压缩方法和装置
CN112019845B (zh) * 2019-05-30 2024-04-26 腾讯美国有限责任公司 对点云进行编码的方法、装置以及存储介质
US11979607B2 (en) 2019-05-30 2024-05-07 Lg Electronics Inc. Apparatus and method for processing point cloud data
CN114175100A (zh) * 2019-05-30 2022-03-11 Lg电子株式会社 用于处理点云数据的方法和装置
CN111684808A (zh) * 2019-05-31 2020-09-18 深圳市大疆创新科技有限公司 点云数据的编码方法、编码装置、解码方法与解码装置
WO2020246689A1 (ko) * 2019-06-05 2020-12-10 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020248177A1 (zh) * 2019-06-12 2020-12-17 浙江大学 点云的编解码方法及装置
US20220417557A1 (en) * 2019-06-21 2022-12-29 Lg Electronics Inc. Device and method for processing point cloud data
US11991348B2 (en) * 2019-06-25 2024-05-21 Sony Group Corporation Information processing device and method
US20220327742A1 (en) * 2019-06-26 2022-10-13 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device and point cloud data reception method
JP2022539762A (ja) * 2019-06-28 2022-09-13 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ処理装置及び方法
JP7440546B2 (ja) * 2019-07-01 2024-02-28 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ処理装置及び方法
CN113875248A (zh) * 2019-07-02 2021-12-31 索尼集团公司 信息处理装置和方法
US11711544B2 (en) 2019-07-02 2023-07-25 Apple Inc. Point cloud compression with supplemental information messages
EP3996044A4 (en) * 2019-07-02 2023-05-10 LG Electronics Inc. METHOD AND APPARATUS FOR PROCESSING POINT CLOUD DATA
US20220368751A1 (en) * 2019-07-03 2022-11-17 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11122102B2 (en) * 2019-07-03 2021-09-14 Lg Electronics Inc. Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method
US11451836B2 (en) * 2019-07-03 2022-09-20 Tencent America LLC Techniques and apparatus for PCM patch creation using Morton codes
CN112188199B (zh) * 2019-07-03 2024-05-10 腾讯美国有限责任公司 自适应点云属性编码的方法、装置、电子设备和存储介质
US20220256190A1 (en) * 2019-07-04 2022-08-11 Lg Electronics Inc. Point cloud data processing apparatus and method
WO2021002562A1 (ko) * 2019-07-04 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN114097247A (zh) * 2019-07-04 2022-02-25 Lg 电子株式会社 点云数据发送设备、点云数据发送方法、点云数据接收设备、以及点云数据接收方法
KR102292195B1 (ko) 2019-07-04 2021-08-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
JP7392304B2 (ja) * 2019-07-05 2023-12-06 富士通株式会社 予測プログラム、予測方法および予測装置
US11593969B2 (en) * 2019-07-12 2023-02-28 Tencent America LLC Method and apparatus for geometry merge mode for point cloud coding
KR20220035041A (ko) * 2019-07-17 2022-03-21 소니그룹주식회사 정보 처리 장치 및 방법
CN110418135B (zh) * 2019-08-05 2022-05-27 北京大学深圳研究生院 一种基于邻居的权重优化的点云帧内预测方法及设备
WO2021023206A1 (zh) * 2019-08-05 2021-02-11 北京大学深圳研究生院 基于邻居权重优化的点云属性预测、编码和解码方法及设备
WO2021025546A1 (ko) * 2019-08-08 2021-02-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021029511A1 (ko) * 2019-08-09 2021-02-18 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11790602B2 (en) 2019-08-13 2023-10-17 Sony Group Corporation Information processing device and method
WO2021029575A1 (ko) * 2019-08-14 2021-02-18 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021045536A1 (en) * 2019-09-04 2021-03-11 Wilus Institute Of Standards And Technology Inc. Video encoding and decoding acceleration utilizing imu sensor data for cloud virtual reality
US20220383552A1 (en) * 2019-09-05 2022-12-01 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2021045603A1 (ko) * 2019-09-06 2021-03-11 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021049758A1 (ko) * 2019-09-11 2021-03-18 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN113906681B (zh) * 2019-09-12 2022-10-18 深圳市大疆创新科技有限公司 点云数据的编解码方法、系统和存储介质
WO2021060850A1 (ko) * 2019-09-24 2021-04-01 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11627314B2 (en) * 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11562507B2 (en) 2019-09-27 2023-01-24 Apple Inc. Point cloud compression using video encoding with time consistent patches
CN114820831A (zh) * 2019-09-30 2022-07-29 Oppo广东移动通信有限公司 划分方法、编码器、解码器以及计算机存储介质
CN112352431B (zh) * 2019-09-30 2023-01-10 浙江大学 一种数据编码、解码方法、设备及存储介质
EP4040790A4 (en) 2019-09-30 2022-10-19 Guangdong Oppo Mobile Telecommunications Corp., Ltd. PREDICTION METHOD, ENCODER, DECODER AND COMPUTER STORAGE MEDIUM
US11409998B2 (en) 2019-10-02 2022-08-09 Apple Inc. Trimming search space for nearest neighbor determinations in point cloud compression
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
CN114747219A (zh) * 2019-10-02 2022-07-12 诺基亚技术有限公司 用于存储和信令传送子样本条目描述的方法和装置
JP2022550877A (ja) * 2019-10-03 2022-12-05 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。
CN112616058A (zh) * 2019-10-03 2021-04-06 腾讯美国有限责任公司 视频编码或解码方法、装置、计算机设备和存储介质
CN114503586A (zh) * 2019-10-03 2022-05-13 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
WO2021066626A1 (en) * 2019-10-03 2021-04-08 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
JPWO2021070952A1 (ko) * 2019-10-09 2021-04-15
WO2021075681A1 (ko) * 2019-10-17 2021-04-22 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021080152A1 (ko) * 2019-10-24 2021-04-29 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN111179394A (zh) * 2019-11-25 2020-05-19 苏州智加科技有限公司 点云场景渲染方法、装置和设备
EP3828704B1 (en) 2019-11-29 2023-06-28 My Virtual Reality Software AS Real-time data acquisition and visualization for point-cloud recording
WO2021108969A1 (zh) * 2019-12-02 2021-06-10 Oppo广东移动通信有限公司 属性信息的预测方法、编码器、解码器、及存储介质
WO2021138786A1 (zh) * 2020-01-06 2021-07-15 Oppo广东移动通信有限公司 一种最近邻搜索方法及装置、设备、存储介质
KR20220123655A (ko) * 2020-01-06 2022-09-08 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 분할 방법, 인코더, 디코더 및 컴퓨터 저장 매체
CN114930860A (zh) * 2020-01-07 2022-08-19 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
WO2021141346A1 (ko) * 2020-01-07 2021-07-15 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법
CN114762334A (zh) * 2020-01-07 2022-07-15 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US20230023219A1 (en) * 2020-01-07 2023-01-26 Sony Group Corporation Information processing device and method
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
WO2021139796A1 (zh) * 2020-01-08 2021-07-15 Oppo广东移动通信有限公司 莫顿码的构建方法、编码器、解码器、及存储介质
CN113115019B (zh) * 2020-01-09 2022-08-12 腾讯美国有限责任公司 视频编解码方法、装置、计算机设备及存储介质
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11551334B2 (en) * 2020-01-09 2023-01-10 Tencent America LLC Techniques and apparatus for coarse granularity scalable lifting for point-cloud attribute coding
US11373276B2 (en) * 2020-01-09 2022-06-28 Tencent America LLC Techniques and apparatus for alphabet-partition coding of transform coefficients for point cloud compression
WO2021145573A1 (ko) * 2020-01-16 2021-07-22 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
US20230051704A1 (en) * 2020-01-31 2023-02-16 Hewlett-Packard Development Company, L.P. Object deformations
WO2021182937A1 (ko) * 2020-03-11 2021-09-16 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021187737A1 (ko) 2020-03-18 2021-09-23 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021194065A1 (ko) * 2020-03-23 2021-09-30 엘지전자 주식회사 포인트 클라우드 데이터 처리 장치 및 방법
CN113473127B (zh) * 2020-03-30 2022-09-23 鹏城实验室 一种点云几何编码方法、解码方法、编码设备及解码设备
US20230111994A1 (en) * 2020-04-03 2023-04-13 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
EP4133732A1 (en) * 2020-04-07 2023-02-15 Apple Inc. Improved predictive coding for point cloud compression
EP4092625A4 (en) * 2020-04-08 2023-04-19 LG Electronics, Inc. POINT CLOUD DATA TRANSMISSION DEVICE, TRANSMISSION METHOD, PROCESSING DEVICE AND PROCESSING METHOD
WO2021206282A1 (ko) * 2020-04-11 2021-10-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021210837A1 (ko) * 2020-04-13 2021-10-21 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN117834863A (zh) * 2020-04-14 2024-04-05 Lg电子株式会社 点云数据发送设备和方法、点云数据接收设备和方法
CN111614749B (zh) * 2020-05-19 2021-11-02 深圳华锐金融技术股份有限公司 数据发送方法、装置、计算机设备和存储介质
EP4161073A1 (en) * 2020-05-29 2023-04-05 LG Electronics, Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11615556B2 (en) 2020-06-03 2023-03-28 Tencent America LLC Context modeling of occupancy coding for point cloud coding
EP3966785A4 (en) * 2020-06-03 2022-08-31 Tencent America Llc CONTEXT MODELING FROM OCCUPANCY CODING TO POINT CLOUD CODING
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
CN111866518B (zh) * 2020-07-29 2022-05-27 西安邮电大学 基于特征提取的自适应三维点云压缩方法
WO2022035250A1 (ko) * 2020-08-12 2022-02-17 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11941856B2 (en) 2020-08-18 2024-03-26 Tencent America LLC Predictive tree-based geometry coding for a point cloud
WO2022059697A1 (ja) * 2020-09-18 2022-03-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
JP2023549019A (ja) * 2020-09-25 2023-11-22 オッポ広東移動通信有限公司 点群符号化方法及び関連装置
CN116325732A (zh) * 2020-09-30 2023-06-23 Oppo广东移动通信有限公司 点云的解码、编码方法、解码器、编码器和编解码系统
CN116097650A (zh) * 2020-09-30 2023-05-09 Oppo广东移动通信有限公司 一种点云数据的层次划分方法、编码器及存储介质
US20220108488A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Angular mode and in-tree quantization in geometry point cloud compression
WO2022116122A1 (zh) * 2020-12-03 2022-06-09 Oppo广东移动通信有限公司 帧内预测方法及装置、编解码器、设备、存储介质
CN116472556A (zh) * 2020-12-03 2023-07-21 Oppo广东移动通信有限公司 预测方法、编码器、解码器以及存储介质
CN116547968A (zh) * 2020-12-03 2023-08-04 Oppo广东移动通信有限公司 预测方法、编码器、解码器以及计算机存储介质
CN112581552B (zh) * 2020-12-14 2023-04-07 深圳大学 自适应分块的基于体素的点云压缩方法及装置
CN116601947A (zh) * 2020-12-22 2023-08-15 Oppo广东移动通信有限公司 点云的解码方法、编码方法、解码器以及编码器
JP2024505798A (ja) * 2020-12-22 2024-02-08 オッポ広東移動通信有限公司 点群符号化・復号化方法及びシステム、点群符号器並びに点群復号器
US20230050535A1 (en) * 2021-01-11 2023-02-16 Tetavi Ltd. Volumetric video from an image source
WO2022170521A1 (zh) * 2021-02-09 2022-08-18 Oppo广东移动通信有限公司 几何重构方法、解码器以及计算机存储介质
CN115086658B (zh) * 2021-03-12 2023-07-25 腾讯科技(深圳)有限公司 点云数据的处理方法、装置、存储介质及编解码设备
CN117097898A (zh) * 2021-03-12 2023-11-21 腾讯科技(深圳)有限公司 基于点云属性预测的解码、编码方法、解码器及编码器
US11948338B1 (en) 2021-03-29 2024-04-02 Apple Inc. 3D volumetric content encoding using 2D videos and simplified 3D meshes
WO2022217611A1 (zh) * 2021-04-16 2022-10-20 Oppo广东移动通信有限公司 编解码方法及相关设备、存储介质
EP4349019A1 (en) * 2021-05-25 2024-04-10 Yoom.Com Ltd. Volumetric video in web browser
US11762811B2 (en) * 2021-06-03 2023-09-19 Avalara, Inc. Computation module configured to estimate resource for target point from known resources of dots near the target point
US11915373B1 (en) * 2021-06-04 2024-02-27 Apple Inc. Attribute value compression for a three-dimensional mesh using geometry information to guide prediction
WO2022259944A1 (ja) * 2021-06-08 2022-12-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2022257150A1 (zh) * 2021-06-11 2022-12-15 Oppo广东移动通信有限公司 点云编解码方法、装置、点云编解码器及存储介质
CN115474041B (zh) * 2021-06-11 2023-05-26 腾讯科技(深圳)有限公司 点云属性的预测方法、装置及相关设备
CN115470259A (zh) * 2021-06-11 2022-12-13 鹏城实验室 一种点云属性预测方法、装置、终端及存储介质
US11544419B1 (en) 2021-07-26 2023-01-03 Pointlab, Inc. Subsampling method for converting 3D scan data of an object for marine, civil, and architectural works into smaller densities for processing without CAD processing
CN113840150B (zh) * 2021-09-17 2023-09-26 中山大学 一种点云反射率属性熵编解码方法
CN114549752A (zh) * 2022-02-21 2022-05-27 北京百度网讯科技有限公司 三维图形数据处理方法、装置、设备、存储介质及产品
WO2024085936A1 (en) * 2022-10-21 2024-04-25 Innopeak Technology, Inc. System and method for geometry point cloud coding
US11710258B1 (en) 2023-01-25 2023-07-25 Illuscio, Inc. Systems and methods for compressing three-dimensional image data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170214943A1 (en) * 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms

Family Cites Families (337)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842004A (en) 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US6018353A (en) 1995-08-04 2000-01-25 Sun Microsystems, Inc. Three-dimensional graphics accelerator with an improved vertex buffer for more efficient vertex processing
US6256041B1 (en) 1995-08-04 2001-07-03 Sun Microsystems, Inc. Decompression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US6215500B1 (en) 1995-08-04 2001-04-10 Sun Microsystems, Inc. Compression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US5793371A (en) 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US6747644B1 (en) 1995-08-04 2004-06-08 Sun Microsystems, Inc. Decompression of surface normals in three-dimensional graphics data
US6525722B1 (en) 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
CN1165179C (zh) 1996-05-17 2004-09-01 松下电器产业株式会社 图像解码装置
US6858826B2 (en) 1996-10-25 2005-02-22 Waveworx Inc. Method and apparatus for scanning three-dimensional objects
US7098435B2 (en) 1996-10-25 2006-08-29 Frederick E. Mueller Method and apparatus for scanning three-dimensional objects
US6230112B1 (en) 1996-12-27 2001-05-08 Bridgestone Corporation Pneumatic tire designing method
AU1941797A (en) 1997-03-17 1998-10-12 Mitsubishi Denki Kabushiki Kaisha Image encoder, image decoder, image encoding method, image decoding method and image encoding/decoding system
US6459428B1 (en) 1998-02-17 2002-10-01 Sun Microsystems, Inc. Programmable sample filtering for image rendering
US6563499B1 (en) 1998-07-20 2003-05-13 Geometrix, Inc. Method and apparatus for generating a 3D region from a surrounding imagery
US6429867B1 (en) 1999-03-15 2002-08-06 Sun Microsystems, Inc. System and method for generating and playback of three-dimensional movies
US6459429B1 (en) 1999-06-14 2002-10-01 Sun Microsystems, Inc. Segmenting compressed graphics data for parallel decompression and rendering
US6628277B1 (en) 1999-06-14 2003-09-30 Sun Microsystems, Inc. Decompression of three-dimensional graphics data using mesh buffer references to reduce redundancy of processing
US6476803B1 (en) 2000-01-06 2002-11-05 Microsoft Corporation Object modeling system and process employing noise elimination and robust surface extraction techniques
US6525725B1 (en) 2000-03-15 2003-02-25 Sun Microsystems, Inc. Morphing decompression in a graphics system
US6959120B1 (en) 2000-10-27 2005-10-25 Microsoft Corporation Rebinning methods and arrangements for use in compressing image-based rendering (IBR) data
EP1204073B1 (en) 2000-10-27 2007-01-31 Canon Kabushiki Kaisha Image generation method and apparatus
JP3790126B2 (ja) 2001-05-30 2006-06-28 株式会社東芝 時空間領域情報処理方法及び時空間領域情報処理システム
KR100446635B1 (ko) 2001-11-27 2004-09-04 삼성전자주식회사 깊이 이미지 기반 3차원 객체 표현 장치 및 방법
US20040217956A1 (en) 2002-02-28 2004-11-04 Paul Besl Method and system for processing, compressing, streaming, and interactive rendering of 3D color image data
WO2004011601A2 (en) 2002-07-29 2004-02-05 Monsanto Technology, Llc Corn event pv-zmir13 (mon863) plants and compositions and methods for detection thereof
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US7215810B2 (en) 2003-07-23 2007-05-08 Orametrix, Inc. Method for creating single 3D surface model from a point cloud
US8468772B2 (en) 2003-08-11 2013-06-25 Interface, Inc. Carpet tiles and carpet tile installations
US20050080849A1 (en) 2003-10-09 2005-04-14 Wee Susie J. Management system for rich media environments
JP4162095B2 (ja) 2003-12-11 2008-10-08 ストライダー ラブス,インコーポレイテッド 遮蔽された部分の表面を対称性の算出により見込み復元するための技術
CA2556896A1 (en) 2004-02-18 2005-09-01 Laurence Marzell Adaptive 3d image modelling system and apparatus and method therefor
US7373473B2 (en) 2004-03-10 2008-05-13 Leica Geosystems Hds Llc System and method for efficient storage and manipulation of extremely large amounts of scan data
JP4613313B2 (ja) 2005-04-01 2011-01-19 国立大学法人 東京大学 画像処理システムおよび画像処理プログラム
CN101313578B (zh) 2005-09-26 2011-10-19 韩国电子通信研究院 用于在可伸缩视频编码中定义和重构感兴趣区域的方法和装置
KR100723505B1 (ko) 2005-10-06 2007-05-30 삼성전자주식회사 하이브리드 방식의 영상 데이터 처리 시스템 및 영상데이터 처리 방법
JP4643453B2 (ja) 2006-01-10 2011-03-02 株式会社東芝 情報処理装置及び情報処理装置の動画像復号方法
WO2007116551A1 (ja) 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US7881544B2 (en) 2006-08-24 2011-02-01 Dell Products L.P. Methods and apparatus for reducing storage size
US7885988B2 (en) 2006-08-24 2011-02-08 Dell Products L.P. Methods and apparatus for reducing storage size
US7737985B2 (en) 2006-11-09 2010-06-15 Qualcomm Incorporated Pixel cache for 3D graphics circuitry
WO2008075359A2 (en) 2006-12-21 2008-06-26 Yeda Research And Development Co. Ltd. Method and apparatus for matching local self-similarities
DE102006061325B4 (de) 2006-12-22 2008-11-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zur computergestützten Identifikation der von einem Richtstrahl durchschnittenen Kinderoktanten eines Elternoktants in einer Octree-Datenstruktur mittels Look-up-Tabellen
US8055070B2 (en) 2007-01-05 2011-11-08 Geo Semiconductor Inc. Color and geometry distortion correction system and method
ATE554601T1 (de) 2007-04-18 2012-05-15 Univ Hannover Skalierbare komprimierung zeitkonsistenter 3d- netzwerksequenzen
EP1993072A1 (en) 2007-05-18 2008-11-19 Siemens Aktiengesellschaft Method for comparison of 3D computer model and as-built situation of an industrial plant
US8040355B2 (en) 2007-07-23 2011-10-18 Disney Enterprises, Inc. Three-dimensional location-based texture transfers
US8051108B2 (en) 2008-04-01 2011-11-01 Trimble Navigation Limited Synchronization of data on survey devices
JP4506875B2 (ja) 2008-05-19 2010-07-21 ソニー株式会社 画像処理装置および画像処理方法
TW201005673A (en) 2008-07-18 2010-02-01 Ind Tech Res Inst Example-based two-dimensional to three-dimensional image conversion method, computer readable medium therefor, and system
US8706910B2 (en) 2008-10-28 2014-04-22 Panzura, Inc. Dynamically adaptive network-based data processing system and method
US8131046B2 (en) 2008-10-29 2012-03-06 Allegheny-Singer Research Institute Magnetic resonance imager using cylindrical offset region of excitation, and method
US8566736B1 (en) 2009-01-19 2013-10-22 Pixar Visualization of value resolution for multidimensional parameterized data
EP2216750A1 (en) 2009-02-06 2010-08-11 Thomson Licensing Method and apparatus for encoding 3D mesh models, and method and apparatus for decoding encoded 3D mesh models
EP2222086A1 (de) 2009-02-18 2010-08-25 EcoDisc Technology AG Verfahren und Vorrichtung zur Vermeidung von Rundungsfehlern nach Durchführung einer inversen diskreten orthogonalen Transformation
JP2010245938A (ja) 2009-04-08 2010-10-28 Sony Corp 信号処理装置、信号処理方法、プログラム
US20100296579A1 (en) 2009-05-22 2010-11-25 Qualcomm Incorporated Adaptive picture type decision for video coding
US9753124B2 (en) 2009-07-13 2017-09-05 Celartem, Inc. LIDAR point cloud compression
KR101669873B1 (ko) 2009-10-16 2016-10-27 삼성전자주식회사 삼차원 메쉬 압축장치 및 방법
US9317965B2 (en) 2009-11-16 2016-04-19 Autodesk, Inc. Uniform point cloud decimation
TW201121332A (en) 2009-12-11 2011-06-16 Acer Inc Device for decoding audio and video data
US8345930B2 (en) 2010-01-22 2013-01-01 Sri International Method for computing food volume in a method for analyzing food
WO2011088595A1 (en) 2010-01-25 2011-07-28 Thomson Licensing Method for encoding normals of a 3d mesh model, method for decoding normals of a 3d mesh model, encoder and decoder
JP5297403B2 (ja) 2010-02-26 2013-09-25 キヤノン株式会社 位置姿勢計測装置、位置姿勢計測方法、プログラムおよび記憶媒体
US9237366B2 (en) 2010-04-16 2016-01-12 Google Technology Holdings LLC Method and apparatus for distribution of 3D television program materials
WO2011153624A2 (en) * 2010-06-11 2011-12-15 Ambercore Software Inc. System and method for manipulating data having spatial coordinates
FR2961930B1 (fr) 2010-06-29 2013-01-04 Fittingbox Procede de compression / decompression de maillage tridimensionnel
KR101654777B1 (ko) 2010-07-19 2016-09-06 삼성전자주식회사 3차원 메쉬 가변 부호화 장치 및 방법, 그리고 3차원 메쉬 가변 복호화 장치 및 방법
US8520740B2 (en) 2010-09-02 2013-08-27 International Business Machines Corporation Arithmetic decoding acceleration
US20140125671A1 (en) 2010-09-16 2014-05-08 Borys Vorobyov System and Method for Detailed Automated Feature Extraction from Data Having Spatial Coordinates
US9300321B2 (en) 2010-11-05 2016-03-29 University of Maribor Light detection and ranging (LiDAR)data compression and decompression methods and apparatus
JP5909704B2 (ja) 2011-01-13 2016-04-27 パナソニックIpマネジメント株式会社 立体画像処理装置、立体画像処理方法およびプログラム
JP5447695B2 (ja) 2011-01-18 2014-03-19 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US8908013B2 (en) 2011-01-20 2014-12-09 Canon Kabushiki Kaisha Systems and methods for collaborative image capturing
US8923613B2 (en) 2011-04-15 2014-12-30 Panasonic Corporation Image compression device, image compression method, integrated circuit, program, and picture display apparatus
WO2012147622A1 (ja) 2011-04-28 2012-11-01 ソニー株式会社 画像処理装置、及び、画像処理方法
US10123053B2 (en) 2011-05-23 2018-11-06 Texas Instruments Incorporated Acceleration of bypass binary symbol processing in video coding
US8780112B2 (en) 2011-06-08 2014-07-15 Pacific Data Images Llc Coherent out-of-core point-based global illumination
US9521434B2 (en) 2011-06-09 2016-12-13 Qualcomm Incorporated Internal bit depth increase in video coding
JP5936687B2 (ja) 2011-07-18 2016-06-22 トムソン ライセンシングThomson Licensing ツリー構造の適応的エントロピー符号化方法
US9014496B2 (en) 2011-08-04 2015-04-21 Arm Limited Methods of and apparatus for encoding and decoding data in data processing systems
US20130034150A1 (en) 2011-08-05 2013-02-07 Texas Instruments Incorporated Systems and methods for multimedia data encoding and decoding
US9288505B2 (en) 2011-08-11 2016-03-15 Qualcomm Incorporated Three-dimensional video with asymmetric spatial resolution
WO2013055148A2 (ko) 2011-10-12 2013-04-18 엘지전자 주식회사 영상 인코딩 방법 및 디코딩 방법
US8643515B2 (en) 2011-10-28 2014-02-04 International Business Machines Corporation Compressing data using an encoding table
JP5961985B2 (ja) 2011-11-30 2016-08-03 株式会社リコー 撮像装置、測色装置および画像形成装置
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
CN102592136B (zh) 2011-12-21 2013-10-16 东南大学 基于几何图像中中频信息的三维人脸识别方法
US9191670B2 (en) 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
EP2805491B1 (en) 2012-01-20 2021-05-12 GE Video Compression, LLC Coding concept allowing parallel processing, transport demultiplexer and video bitstream
JP2015512072A (ja) 2012-01-21 2015-04-23 トムソン ライセンシングThomson Licensing 3次元(3d)モデルのテクスチャ情報を圧縮する方法及び装置
US11263823B2 (en) * 2012-02-24 2022-03-01 Matterport, Inc. Employing three-dimensional (3D) data predicted from two-dimensional (2D) images using neural networks for 3D modeling applications and other applications
US10089312B2 (en) 2012-03-01 2018-10-02 Trimble Ab Methods and apparatus for point cloud data management
CN102630011A (zh) 2012-03-31 2012-08-08 浙江师范大学 一种视频传感器网络中的压缩感知编解码方法及系统
US9846960B2 (en) * 2012-05-31 2017-12-19 Microsoft Technology Licensing, Llc Automated camera array calibration
KR101957873B1 (ko) 2012-06-04 2019-03-13 삼성전자주식회사 3차원 영상을 위한 영상 처리 장치 및 방법
US9269178B2 (en) 2012-06-05 2016-02-23 Apple Inc. Virtual camera for 3D maps
US9219916B2 (en) 2012-06-12 2015-12-22 Dolby Laboratories Licensing Corporation Joint base layer and enhancement layer quantizer adaptation in EDR video coding
US9836483B1 (en) 2012-08-29 2017-12-05 Google Llc Using a mobile device for coarse shape matching against cloud-based 3D model database
US8996228B1 (en) 2012-09-05 2015-03-31 Google Inc. Construction zone object detection using light detection and ranging
US9234618B1 (en) * 2012-09-27 2016-01-12 Google Inc. Characterizing optically reflective features via hyper-spectral sensor
US9210432B2 (en) 2012-10-08 2015-12-08 Google Inc. Lossless inter-frame video coding
US9864184B2 (en) 2012-10-30 2018-01-09 California Institute Of Technology Embedded pupil function recovery for fourier ptychographic imaging devices
US9299152B2 (en) 2012-12-20 2016-03-29 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for image depth map generation
US20140198097A1 (en) 2013-01-16 2014-07-17 Microsoft Corporation Continuous and dynamic level of detail for efficient point cloud object rendering
US20140204088A1 (en) 2013-01-18 2014-07-24 Microsoft Corporation Surface codec using reprojection onto depth maps
US9530225B1 (en) 2013-03-11 2016-12-27 Exelis, Inc. Point cloud data processing for scalable compression
US8756085B1 (en) 2013-03-15 2014-06-17 State Farm Mutual Automobile Insurance Company Systems and methods for assessing property damage
GB2513110A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US9098773B2 (en) * 2013-06-27 2015-08-04 Chevron U.S.A. Inc. System and method of detecting objects in scene point cloud
WO2015005753A1 (ko) 2013-07-12 2015-01-15 삼성전자 주식회사 깊이 기반 디스패리티 벡터를 이용하는 인터 레이어 비디오 복호화 방법 및 그 장치, 깊이 기반 디스패리티 벡터를 이용하는 인터 레이어 비디오 부호화 방법 및 장치
CN103366006B (zh) * 2013-07-19 2016-06-22 武汉睿数信息技术有限公司 一种基于三维激光点云建立地理空间索引的方法
EP3047639B1 (en) 2013-09-20 2018-07-18 VID SCALE, Inc. Video encoder and methods providing 3d look-up table coding for color gamut scalability
US9351003B2 (en) 2013-09-27 2016-05-24 Apple Inc. Context re-mapping in CABAC encoder
US9223765B1 (en) 2013-10-09 2015-12-29 Google Inc. Encoding and decoding data using context model grouping
US9424672B2 (en) 2013-11-07 2016-08-23 Here Global B.V. Method and apparatus for processing and aligning data point clouds
US9445115B2 (en) 2013-11-21 2016-09-13 Bae Systems Information And Electronic Systems Integration Inc. Coded image system and method thereof
US9412040B2 (en) 2013-12-04 2016-08-09 Mitsubishi Electric Research Laboratories, Inc. Method for extracting planes from 3D point cloud sensor data
US9386303B2 (en) 2013-12-31 2016-07-05 Personify, Inc. Transmitting video and sharing content via a network using multiple encoding techniques
US9613388B2 (en) * 2014-01-24 2017-04-04 Here Global B.V. Methods, apparatuses and computer program products for three dimensional segmentation and textured modeling of photogrammetry surface meshes
GB2523348B (en) 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US9476730B2 (en) 2014-03-18 2016-10-25 Sri International Real-time system for multi-modal 3D geospatial mapping, object recognition, scene annotation and analytics
CN103944580B (zh) 2014-04-14 2017-07-04 天津普仁万合信息技术有限公司 一种生理体征传感器持续采集信号的无损压缩方法
US9098754B1 (en) 2014-04-25 2015-08-04 Google Inc. Methods and systems for object detection using laser point clouds
US9996976B2 (en) 2014-05-05 2018-06-12 Avigilon Fortress Corporation System and method for real-time overlay of map features onto a video feed
KR101663668B1 (ko) 2014-06-27 2016-10-07 삼성전자주식회사 영상 패딩영역의 비디오 복호화 및 부호화 장치 및 방법
GB2527607B (en) 2014-06-27 2016-10-05 Gurulogic Microsystems Oy Encoder, decoder and method
CN104156972B (zh) 2014-08-25 2017-01-25 西北工业大学 基于激光扫描测距仪与多相机融合的透视成像方法
US9292961B1 (en) 2014-08-26 2016-03-22 The Boeing Company System and method for detecting a structural opening in a three dimensional point cloud
US10235338B2 (en) 2014-09-04 2019-03-19 Nvidia Corporation Short stack traversal of tree data structures
US9734595B2 (en) * 2014-09-24 2017-08-15 University of Maribor Method and apparatus for near-lossless compression and decompression of 3D meshes and point clouds
EP3216219A1 (fr) 2014-11-05 2017-09-13 Colin, Jean-Claude Procédé pour réaliser des images animées
US10104361B2 (en) 2014-11-14 2018-10-16 Samsung Electronics Co., Ltd. Coding of 360 degree videos using region adaptive smoothing
CN104408689B (zh) 2014-12-10 2017-10-24 武汉大学 基于全景影像的街景面片优化方法
US9616569B2 (en) 2015-01-22 2017-04-11 GM Global Technology Operations LLC Method for calibrating an articulated end effector employing a remote digital camera
CN104715496B (zh) * 2015-03-23 2017-11-07 中国科学技术大学 云环境下基于三维点云模型的图像预测方法、系统及装置
US10257344B2 (en) 2016-04-20 2019-04-09 Stephen Rhyne System, device, and method for tracking and monitoring mobile phone usage while operating a vehicle in order to deter and prevent such usage
US11373272B2 (en) 2015-06-05 2022-06-28 MindAptiv, LLC Digital gradient signal processing system and method for signals comprising at least three dimensions
US10277248B2 (en) 2015-07-07 2019-04-30 Tidal Systems, Inc. Compression engine with consistent throughput
CN105261060A (zh) 2015-07-23 2016-01-20 东华大学 基于点云压缩和惯性导航的移动场景实时三维重构方法
ES2946807T3 (es) 2015-09-01 2023-07-26 Dream It Get It Ltd Recuperación de unidad de medios y procesos relacionados
US10887430B2 (en) 2015-10-21 2021-01-05 Dragonwave-X, Llc Compression in communications
EP3163536B1 (en) 2015-10-30 2021-12-08 Dassault Systèmes Compression of a three-dimensional modeled object
JP6300119B2 (ja) 2015-11-05 2018-03-28 コニカミノルタ株式会社 測色値取得方法及び画像形成装置並びに測色値取得制御プログラム
US10416667B2 (en) 2016-02-03 2019-09-17 Sony Corporation System and method for utilization of multiple-camera network to capture static and/or motion scenes
KR20180111839A (ko) 2016-02-11 2018-10-11 톰슨 라이센싱 휘도 채널 및 적어도 하나의 색차 채널에 의해 표현되는 이미지 데이터를 포함하는 이미지 유닛을 인코딩/디코딩하기 위한 방법 및 디바이스
US10319101B2 (en) 2016-02-24 2019-06-11 Quantum Spatial, Inc. Systems and methods for deriving spatial attributes for imaged objects utilizing three-dimensional information
US10482196B2 (en) 2016-02-26 2019-11-19 Nvidia Corporation Modeling point cloud data using hierarchies of Gaussian mixture models
US10040578B2 (en) 2016-02-26 2018-08-07 Skycatch, Inc. Battery arm sensor assembly
KR102520957B1 (ko) 2016-04-15 2023-04-12 삼성전자주식회사 인코딩 장치, 디코딩 장치 및 이의 제어 방법
TWI629892B (zh) 2016-05-09 2018-07-11 國立成功大學 景深包裝及解包裝之rgb格式與yuv格式的轉換與反轉換的方法及電路
US10694210B2 (en) 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US11297346B2 (en) * 2016-05-28 2022-04-05 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
US10223810B2 (en) 2016-05-28 2019-03-05 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression
US9959604B2 (en) 2016-06-13 2018-05-01 Gopro, Inc. Dynamic global tone mapping with integrated 3D color look-up table
US10259164B2 (en) 2016-06-22 2019-04-16 Massachusetts Institute Of Technology Methods and apparatus for 3D printing of point cloud data
KR102529120B1 (ko) 2016-07-15 2023-05-08 삼성전자주식회사 영상을 획득하는 방법, 디바이스 및 기록매체
CN113452999B (zh) 2016-07-22 2023-12-05 夏普株式会社 使用自适应分量缩放对视频数据进行编码的系统和方法
US20180053324A1 (en) 2016-08-19 2018-02-22 Mitsubishi Electric Research Laboratories, Inc. Method for Predictive Coding of Point Cloud Geometries
US10724848B2 (en) 2016-08-29 2020-07-28 Beijing Qingying Machine Visual Technology Co., Ltd. Method and apparatus for processing three-dimensional vision measurement data
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
KR102352933B1 (ko) 2016-09-09 2022-01-20 삼성전자주식회사 3차원 이미지를 프로세싱하기 위한 방법 및 장치
EP3293702B1 (en) 2016-09-13 2020-04-29 Dassault Systèmes Compressing a signal that represents a physical attribute
US10372728B2 (en) 2016-09-16 2019-08-06 Oracle International Corporation System and method providing a scalable and efficient space filling curve approach to point cloud feature generation
CN114359487A (zh) 2016-09-16 2022-04-15 松下电器(美国)知识产权公司 三维数据制作方法以及三维数据制作装置
CN109792528A (zh) 2016-09-19 2019-05-21 交互数字Vc控股公司 使用光场数据重构表示场景的点云的方法和设备
CN106651942B (zh) 2016-09-29 2019-09-17 苏州中科广视文化科技有限公司 基于特征点的三维旋转运动检测与旋转轴定位方法
US9787321B1 (en) 2016-11-17 2017-10-10 Google Inc. Point cloud data compression using a space-filling curve
US10715618B2 (en) 2016-12-12 2020-07-14 Hughes Network Systems, Llc Compressibility estimation for lossless data compression
US10785279B2 (en) 2016-12-29 2020-09-22 Facebook, Inc. Video encoding using starve mode
GB2558314B (en) 2017-01-02 2020-07-29 Canon Kk Improved attribute mapping to encode and decode 3D models
CN106846425B (zh) 2017-01-11 2020-05-19 东南大学 一种基于八叉树的散乱点云压缩方法
EP3349182A1 (en) 2017-01-13 2018-07-18 Thomson Licensing Method, apparatus and stream for immersive video format
GB2560319B (en) 2017-03-06 2020-09-02 Canon Kk Improved encoding and decoding of texture mapping data in textured 3D mesh models
US11514613B2 (en) 2017-03-16 2022-11-29 Samsung Electronics Co., Ltd. Point cloud and mesh compression using image/video codecs
US10242458B2 (en) 2017-04-21 2019-03-26 Qualcomm Incorporated Registration of range images using virtual gimbal information
US20190340306A1 (en) 2017-04-27 2019-11-07 Ecosense Lighting Inc. Methods and systems for an automated design, fulfillment, deployment and operation platform for lighting installations
US10359513B2 (en) 2017-05-03 2019-07-23 Elwha Llc Dynamic-metamaterial coded-aperture imaging
US10615395B2 (en) 2017-05-10 2020-04-07 Apple Inc. Battery cap with cut-out sections
US10467756B2 (en) 2017-05-14 2019-11-05 International Business Machines Corporation Systems and methods for determining a camera pose of an image
US10511696B2 (en) 2017-05-17 2019-12-17 CodeShop, B.V. System and method for aggregation, archiving and compression of internet of things wireless sensor data
GB2563019B (en) 2017-05-29 2021-07-28 Canon Kk Improved valence-based encoding and decoding of connectivity data in a 3D model
US10325409B2 (en) 2017-06-16 2019-06-18 Microsoft Technology Licensing, Llc Object holographic augmentation
US10893256B2 (en) 2017-06-26 2021-01-12 Nokia Technologies Oy Apparatus, a method and a computer program for omnidirectional video
EP3649776A4 (en) 2017-07-03 2020-11-04 Nokia Technologies Oy APPARATUS, METHOD, AND COMPUTER PROGRAM FOR OMNIDIRECTIONAL VIDEO
EP3642800A4 (en) 2017-07-10 2020-05-20 Samsung Electronics Co., Ltd. POINT CLOUD AND NETWORK COMPRESSION WITH IMAGE / VIDEO CODECS
US10474524B2 (en) 2017-07-12 2019-11-12 Topcon Positioning Systems, Inc. Point cloud filter method and apparatus
EP3429212A1 (en) 2017-07-13 2019-01-16 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
EP3429210A1 (en) 2017-07-13 2019-01-16 Thomson Licensing Methods, devices and stream for encoding and decoding volumetric video
US10587883B2 (en) 2017-07-14 2020-03-10 Qualcomm Incorporated Region-wise packing, content coverage, and signaling frame packing for media content
EP3432581A1 (en) 2017-07-21 2019-01-23 Thomson Licensing Methods, devices and stream for encoding and decoding volumetric video
US20190041481A1 (en) 2017-08-04 2019-02-07 Muralidhara Subbarao Massively parallel magnetic resonance imaging wherein numerous off-surface coils are used to acquire partially under-sampled magnetic resonance signal data
US10395419B1 (en) 2017-08-04 2019-08-27 Bentley Systems, Incorporated Non-destructive multi-resolution surface clipping
US11024078B2 (en) 2017-08-07 2021-06-01 Verizon Patent And Licensing Inc. Systems and methods compression, transfer, and reconstruction of three-dimensional (3D) data meshes
EP3669333B1 (en) 2017-08-15 2024-05-01 Nokia Technologies Oy Sequential encoding and decoding of volymetric video
US11109066B2 (en) 2017-08-15 2021-08-31 Nokia Technologies Oy Encoding and decoding of volumetric video
US10462485B2 (en) 2017-09-06 2019-10-29 Apple Inc. Point cloud geometry compression
US10861196B2 (en) 2017-09-14 2020-12-08 Apple Inc. Point cloud compression
US10805646B2 (en) 2018-06-22 2020-10-13 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US11818401B2 (en) 2017-09-14 2023-11-14 Apple Inc. Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables
US10897269B2 (en) 2017-09-14 2021-01-19 Apple Inc. Hierarchical point cloud compression
KR102119300B1 (ko) 2017-09-15 2020-06-04 서울과학기술대학교 산학협력단 360도 영상 부호화 장치 및 방법, 이를 수행하기 위한 기록 매체
US10909725B2 (en) 2017-09-18 2021-02-02 Apple Inc. Point cloud compression
US11113845B2 (en) 2017-09-18 2021-09-07 Apple Inc. Point cloud compression using non-cubic projections and masks
WO2019065587A1 (en) 2017-09-29 2019-04-04 Sharp Kabushiki Kaisha SYSTEMS AND METHODS FOR SIGNALING INFORMATION ASSOCIATED WITH A CONSTITUTIVE IMAGE
EP3462415A1 (en) 2017-09-29 2019-04-03 Thomson Licensing Method and device for modifying attributes of points of a 3d scene
CN111133478A (zh) 2017-09-29 2020-05-08 索尼公司 信息处理装置和方法
JP7268601B2 (ja) 2017-10-05 2023-05-08 ソニーグループ株式会社 情報処理装置および方法
EP3468182A1 (en) 2017-10-06 2019-04-10 InterDigital VC Holdings, Inc. A method and apparatus for encoding a point cloud representing three-dimensional objects
US11599968B2 (en) 2017-10-11 2023-03-07 Nokia Technologies Oy Apparatus, a method and a computer program for volumetric video
US11270470B2 (en) 2017-10-12 2022-03-08 Sony Group Corporation Color leaking suppression in anchor point cloud compression
US10499054B2 (en) 2017-10-12 2019-12-03 Mitsubishi Electric Research Laboratories, Inc. System and method for inter-frame predictive compression for point clouds
US10726299B2 (en) 2017-10-12 2020-07-28 Sony Corporation Sorted geometry with color clustering (SGCC) for point cloud compression
US10559126B2 (en) 2017-10-13 2020-02-11 Samsung Electronics Co., Ltd. 6DoF media consumption architecture using 2D video decoder
GB201717012D0 (en) 2017-10-17 2017-11-29 Nokia Technologies Oy An apparatus a method and a computer program for coding volumetric video
EP3474233A1 (en) 2017-10-19 2019-04-24 Thomson Licensing A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object
US10424083B2 (en) 2017-10-21 2019-09-24 Samsung Electronics Co., Ltd. Point cloud compression using hybrid transforms
WO2019093834A1 (en) 2017-11-09 2019-05-16 Samsung Electronics Co., Ltd. Point cloud compression using non-orthogonal projection
US10535161B2 (en) 2017-11-09 2020-01-14 Samsung Electronics Co., Ltd. Point cloud compression using non-orthogonal projection
US10789733B2 (en) 2017-11-22 2020-09-29 Apple Inc. Point cloud compression with multi-layer projection
US10607373B2 (en) 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
US10699444B2 (en) 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
EP3489900A1 (en) 2017-11-23 2019-05-29 Thomson Licensing Method, apparatus and stream for encoding/decoding volumetric video
EP3496388A1 (en) 2017-12-05 2019-06-12 Thomson Licensing A method and apparatus for encoding a point cloud representing three-dimensional objects
US10510148B2 (en) 2017-12-18 2019-12-17 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for block based edgel detection with false edge elimination
US10783668B2 (en) 2017-12-22 2020-09-22 Samsung Electronics Co., Ltd. Handling duplicate points in point cloud compression
WO2019129923A1 (en) 2017-12-29 2019-07-04 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
WO2019135024A1 (en) 2018-01-02 2019-07-11 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US11611774B2 (en) 2018-01-17 2023-03-21 Sony Corporation Image processing apparatus and image processing method for 3D data compression
EP3514969B1 (en) 2018-01-18 2021-08-04 BlackBerry Limited Methods and devices using direct coding in point cloud compression
EP3515068A1 (en) 2018-01-19 2019-07-24 Thomson Licensing A method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream
MX2020007663A (es) 2018-01-19 2020-09-14 Interdigital Vc Holdings Inc Procesamiento de una nube de puntos.
CN112041889A (zh) * 2018-02-08 2020-12-04 松下电器(美国)知识产权公司 三维数据编码方法、三维数据解码方法、三维数据编码装置、以及三维数据解码装置
US11044495B1 (en) 2018-02-13 2021-06-22 Cyborg Inc. Systems and methods for variable length codeword based data encoding and decoding using dynamic memory allocation
GB2571306A (en) 2018-02-23 2019-08-28 Sony Interactive Entertainment Europe Ltd Video recording and playback systems and methods
US10916041B2 (en) 2018-03-30 2021-02-09 Samsung Electronics Co., Ltd. Method for depth image di coding
KR20190117287A (ko) 2018-04-06 2019-10-16 삼성전자주식회사 중복 포인트 처리 방법 및 장치
WO2019197708A1 (en) 2018-04-09 2019-10-17 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
EP3772853A4 (en) 2018-04-09 2021-06-02 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DETECTING A GLOBAL MATCHING PATCH
EP3553746B1 (en) 2018-04-09 2021-08-25 BlackBerry Limited Methods and devices for predictive coding of point clouds
US10909727B2 (en) 2018-04-10 2021-02-02 Apple Inc. Hierarchical point cloud compression with smoothing
US10909726B2 (en) 2018-04-10 2021-02-02 Apple Inc. Point cloud compression
US10939129B2 (en) 2018-04-10 2021-03-02 Apple Inc. Point cloud compression
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
CA3096184A1 (en) 2018-04-10 2019-10-17 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, tree-dimensional data encoding device, and three-dimensional data decoding device
US10867414B2 (en) 2018-04-10 2020-12-15 Apple Inc. Point cloud attribute transfer algorithm
CN111937402A (zh) 2018-04-11 2020-11-13 索尼公司 图像处理装置和方法
EP3780626A1 (en) 2018-04-11 2021-02-17 Samsung Electronics Co., Ltd. Device and method for processing data in multimedia system
US10984541B2 (en) 2018-04-12 2021-04-20 Samsung Electronics Co., Ltd. 3D point cloud compression systems for delivery and access of a subset of a compressed 3D point cloud
US10657689B2 (en) 2018-04-13 2020-05-19 Sony Corporation Method and apparatus for point cloud color processing
WO2019199415A1 (en) 2018-04-13 2019-10-17 Futurewei Technologies, Inc. Differential coding method for patch side information
WO2019203297A1 (ja) 2018-04-19 2019-10-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CN108833927B (zh) 2018-05-03 2019-08-16 北京大学深圳研究生院 一种基于删除量化矩阵中0元素的点云属性压缩方法
US11146284B2 (en) 2018-05-03 2021-10-12 Sap Se Space-filling curve dictionary-based compression
CN108632607B (zh) 2018-05-09 2019-06-21 北京大学深圳研究生院 一种基于多角度自适应帧内预测的点云属性压缩方法
EP3579194A1 (en) 2018-06-08 2019-12-11 My Virtual Reality Software AS Indexation of massive point cloud data for efficient visualization
US11501507B2 (en) 2018-06-26 2022-11-15 Sony Group Corporation Motion compensation of geometry information
CN112438047B (zh) 2018-06-26 2022-08-09 华为技术有限公司 用于点云译码的高级语法设计
US11010955B2 (en) 2018-06-27 2021-05-18 Sony Group Corporation Point cloud mapping
US11017566B1 (en) 2018-07-02 2021-05-25 Apple Inc. Point cloud compression with adaptive filtering
US11044478B2 (en) 2018-07-02 2021-06-22 Apple Inc. Compression with multi-level encoding
EP3591975A1 (en) 2018-07-03 2020-01-08 Industrial Technology Research Institute Method and apparatus for processing patches of a point cloud
US11202098B2 (en) 2018-07-05 2021-12-14 Apple Inc. Point cloud compression with multi-resolution video encoding
US10911787B2 (en) 2018-07-10 2021-02-02 Apple Inc. Hierarchical point cloud compression
US11348283B2 (en) 2018-07-10 2022-05-31 Samsung Electronics Co., Ltd. Point cloud compression via color smoothing of point cloud prior to texture video generation
EP3821608A4 (en) 2018-07-11 2022-04-13 Nokia Technologies Oy METHOD AND DEVICE FOR STORAGE AND SIGNALING OF COMPRESSED POINT CLOUDS
WO2020012967A1 (ja) 2018-07-11 2020-01-16 ソニー株式会社 画像処理装置および方法
US11138762B2 (en) 2018-07-11 2021-10-05 Samsung Electronics Co., Ltd. Visual quality of video based point cloud compression using one or more additional patches
EP3595181B1 (en) 2018-07-11 2023-09-06 BlackBerry Limited Predictor-copy coding mode for coding of point clouds
US11012713B2 (en) 2018-07-12 2021-05-18 Apple Inc. Bit stream structure for compressed point cloud data
US20200045344A1 (en) 2018-07-31 2020-02-06 Intel Corporation Video processing mechanism
US10783698B2 (en) 2018-07-31 2020-09-22 Intel Corporation Point cloud operations
EP3614674A1 (en) 2018-08-23 2020-02-26 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
US11509933B2 (en) 2018-09-13 2022-11-22 Nokia Technologies Oy Method, an apparatus and a computer program product for volumetric video
BR112021004798A2 (pt) 2018-09-14 2021-06-08 Huawei Technologies Co., Ltd. suporte de atributo melhorado em codificação de nuvem de pontos
US20210398352A1 (en) 2018-09-28 2021-12-23 Sharp Kabushiki Kaisha 3d data generation apparatus, 3d data reconstruction apparatus, control program, and recording medium
US11386524B2 (en) 2018-09-28 2022-07-12 Apple Inc. Point cloud compression image padding
US11132818B2 (en) 2018-09-28 2021-09-28 Apple Inc. Predicting attributes for point cloud compression according to a space filling curve
EP3859679A4 (en) 2018-09-28 2022-11-02 Sony Group Corporation IMAGE PROCESSING DEVICE AND IMAGE PROCESSING METHOD
WO2020071703A1 (ko) 2018-10-01 2020-04-09 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및/또는 포인트 클라우드 데이터 수신 방법
US11166048B2 (en) 2018-10-02 2021-11-02 Tencent America LLC Method and apparatus for video coding
WO2020071416A1 (ja) 2018-10-02 2020-04-09 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11367224B2 (en) 2018-10-02 2022-06-21 Apple Inc. Occupancy map block-to-patch information compression
US10853973B2 (en) 2018-10-03 2020-12-01 Apple Inc. Point cloud compression using fixed-point numbers
US11430155B2 (en) 2018-10-05 2022-08-30 Apple Inc. Quantized depths for projection point cloud compression
EP3861752A1 (en) 2018-10-05 2021-08-11 InterDigital VC Holdings, Inc. A method and device for encoding and reconstructing missing points of a point cloud
WO2020075780A1 (ja) 2018-10-09 2020-04-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
MX2021005074A (es) 2018-11-16 2021-06-15 Panasonic Ip Corp America Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo de codificacion de datos tridimensionales y dispositivo de decodificacion de datos tridimensionales.
US10867430B2 (en) 2018-11-19 2020-12-15 Intel Corporation Method and system of 3D reconstruction with volume-based filtering for image processing
US11010907B1 (en) 2018-11-27 2021-05-18 Zoox, Inc. Bounding box selection
US10762667B2 (en) 2018-11-30 2020-09-01 Point Cloud Compression, B.V. Method and apparatus for compression of point cloud data
JPWO2020116563A1 (ja) 2018-12-06 2021-10-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11631218B2 (en) 2018-12-11 2023-04-18 Google Llc Efficient compression of data representing triangular mesh attributes
US10812818B2 (en) 2018-12-14 2020-10-20 Tencent America LLC Network abstraction unit layer type classes in network abstraction layer unit header
US11095900B2 (en) 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
US11288843B2 (en) 2019-01-04 2022-03-29 Samsung Electronics Co., Ltd. Lossy compression of point cloud occupancy maps
US11348284B2 (en) 2019-01-08 2022-05-31 Apple Inc. Auxiliary information signaling and reference management for projection-based point cloud compression
US11454710B2 (en) 2019-01-08 2022-09-27 Apple Inc. Point cloud compression using a space filling curve for level of detail generation
US11284091B2 (en) 2019-03-25 2022-03-22 Apple Inc. Video based point cloud compression-patch alignment and size determination in bounding box
US11373338B2 (en) 2019-01-09 2022-06-28 Samsung Electronics Co., Ltd. Image padding in video-based point-cloud compression CODEC
US11393132B2 (en) 2019-03-07 2022-07-19 Samsung Electronics Co., Ltd. Mesh compression
US11823421B2 (en) 2019-03-14 2023-11-21 Nokia Technologies Oy Signalling of metadata for volumetric video
CN110097639B (zh) 2019-03-18 2023-04-18 北京工业大学 一种三维人体姿态估计方法
US10587286B1 (en) 2019-03-18 2020-03-10 Blackberry Limited Methods and devices for handling equiprobable symbols in entropy coding
US10964068B2 (en) 2019-03-18 2021-03-30 Blackberry Limited Methods and devices for predictive point cloud attribute coding
US11334969B2 (en) 2019-03-19 2022-05-17 Sony Group Corporation Point cloud geometry padding
WO2020190075A1 (ko) 2019-03-20 2020-09-24 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11503367B2 (en) 2019-03-20 2022-11-15 Tencent America LLC Techniques and apparatus for weighted-median prediction for point-cloud attribute coding
EP3751857A1 (en) 2019-06-14 2020-12-16 Nokia Technologies Oy A method, an apparatus and a computer program product for volumetric video encoding and decoding
SG11202110395VA (en) 2019-06-26 2021-10-28 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
WO2021002657A1 (ko) 2019-07-04 2021-01-07 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11368717B2 (en) 2019-09-16 2022-06-21 Tencent America LLC Method and apparatus for point cloud compression
US11450030B2 (en) 2019-09-24 2022-09-20 Apple Inc. Three-dimensional mesh compression using a video encoder
US11202078B2 (en) 2019-09-27 2021-12-14 Apple Inc. Dynamic point cloud compression using inter-prediction
US11627314B2 (en) 2019-09-27 2023-04-11 Apple Inc. Video-based point cloud compression with non-normative smoothing
US11409998B2 (en) 2019-10-02 2022-08-09 Apple Inc. Trimming search space for nearest neighbor determinations in point cloud compression
US11398833B2 (en) 2019-10-02 2022-07-26 Apple Inc. Low-latency encoding using a bypass sub-stream and an entropy encoded sub-stream
US11538196B2 (en) 2019-10-02 2022-12-27 Apple Inc. Predictive coding for point cloud compression
US11568571B2 (en) 2019-10-03 2023-01-31 Tencent America LLC Techniques and apparatus for lossless lifting for attribute coding
JP2022550877A (ja) 2019-10-03 2022-12-05 エルジー エレクトロニクス インコーポレイティド ポイントクラウドデータ送信装置、ポイントクラウドデータ送信方法、ポイントクラウドデータ受信装置及びポイントクラウドデータ受信方法。
CN114503586A (zh) 2019-10-03 2022-05-13 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
US11895307B2 (en) 2019-10-04 2024-02-06 Apple Inc. Block-based predictive coding for point cloud compression
US11676310B2 (en) 2019-11-16 2023-06-13 Uatc, Llc System and methods for encoding octree structured point cloud data using an entropy model
US11223836B2 (en) 2019-12-02 2022-01-11 Tencent America LLC Method and apparatus for point cloud coding
US11417029B2 (en) 2019-12-02 2022-08-16 Tencent America LLC Method and apparatus for point cloud coding
US11477483B2 (en) 2020-01-08 2022-10-18 Apple Inc. Video-based point cloud compression with variable patch scaling
US11798196B2 (en) 2020-01-08 2023-10-24 Apple Inc. Video-based point cloud compression with predicted patches
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
US11710259B2 (en) 2020-02-10 2023-07-25 Tencent America LLC Predictive tree coding for point cloud coding
US11741637B2 (en) 2020-02-10 2023-08-29 Tencent America LLC Node-based geometry and attribute coding for a point cloud
US11450031B2 (en) 2020-04-14 2022-09-20 Apple Inc. Significant coefficient flag encoding for point cloud attribute compression
US11375208B2 (en) 2020-06-23 2022-06-28 Sony Group Corporation Trisoup node size per slice
US11620768B2 (en) 2020-06-24 2023-04-04 Apple Inc. Point cloud geometry compression using octrees with multiple scan orders
US11615557B2 (en) 2020-06-24 2023-03-28 Apple Inc. Point cloud compression using octrees with slicing
US20220101555A1 (en) 2020-09-29 2022-03-31 Samsung Electronics Co., Ltd. Method, apparatus, electronic device and storage medium for estimating object pose
GB202100316D0 (en) 2021-01-11 2021-02-24 Samsung Electronics Co Ltd Hybrid image retargeting
US20230169658A1 (en) * 2021-11-29 2023-06-01 Adobe Inc. Instant masks with polarized light

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170214943A1 (en) * 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021215811A1 (ko) * 2020-04-24 2021-10-28 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021246839A1 (ko) * 2020-06-05 2021-12-09 엘지전자 주식회사 포인트 클라우드 데이터 처리 디바이스 및 처리 방법
WO2021246796A1 (ko) * 2020-06-05 2021-12-09 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021256887A1 (ko) * 2020-06-18 2021-12-23 엘지전자 주식회사 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021256885A1 (ko) * 2020-06-18 2021-12-23 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022050688A1 (ko) * 2020-09-01 2022-03-10 엘지전자 주식회사 3d 데이터 송신 장치, 3d 데이터 송신 방법, 3d 데이터 수신 장치 및 3d 데이터 수신 방법
WO2022050612A1 (ko) * 2020-09-07 2022-03-10 엘지전자 주식회사 포인트 클라우드 데이터 전송장치, 포인트 클라우드 데이터 전송방법, 포인트 클라우드 데이터 수신장치 및 포인트 클라우드 데이터 수신방법
WO2022075753A1 (ko) * 2020-10-06 2022-04-14 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022119304A1 (ko) * 2020-12-01 2022-06-09 현대자동차주식회사 적응적 데드존 양자화를 이용하는 포인트 클라우드 코딩 장치 및 방법
WO2022119303A1 (ko) * 2020-12-01 2022-06-09 현대자동차주식회사 매핑 함수를 이용하는 포인트 클라우드 코딩 장치 및 방법

Also Published As

Publication number Publication date
US20230099049A1 (en) 2023-03-30
US11461935B2 (en) 2022-10-04
CN111095929A (zh) 2020-05-01
DE112018005149T5 (de) 2020-09-10
WO2019055772A1 (en) 2019-03-21
US10861196B2 (en) 2020-12-08
CN111095929B (zh) 2023-07-21
US11935272B2 (en) 2024-03-19
CN117319682A (zh) 2023-12-29
US20210118190A1 (en) 2021-04-22
KR102317576B1 (ko) 2021-10-25
US20190080483A1 (en) 2019-03-14

Similar Documents

Publication Publication Date Title
KR102317576B1 (ko) 포인트 클라우드 압축
US11727603B2 (en) Adaptive distance based point cloud compression
US11552651B2 (en) Hierarchical point cloud compression
US11508095B2 (en) Hierarchical point cloud compression with smoothing
US11409998B2 (en) Trimming search space for nearest neighbor determinations in point cloud compression
US11252441B2 (en) Hierarchical point cloud compression
US11450031B2 (en) Significant coefficient flag encoding for point cloud attribute compression
US11276203B2 (en) Point cloud compression using fixed-point numbers
US11754685B2 (en) Point cloud compression using a space filling curve for level of detail generation
US11202078B2 (en) Dynamic point cloud compression using inter-prediction

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant