KR102627394B1 - 포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스 - Google Patents

포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스 Download PDF

Info

Publication number
KR102627394B1
KR102627394B1 KR1020207023063A KR20207023063A KR102627394B1 KR 102627394 B1 KR102627394 B1 KR 102627394B1 KR 1020207023063 A KR1020207023063 A KR 1020207023063A KR 20207023063 A KR20207023063 A KR 20207023063A KR 102627394 B1 KR102627394 B1 KR 102627394B1
Authority
KR
South Korea
Prior art keywords
nodes
occupancy
point cloud
current node
sub
Prior art date
Application number
KR1020207023063A
Other languages
English (en)
Other versions
KR20200109334A (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 KR20200109334A publication Critical patent/KR20200109334A/ko
Application granted granted Critical
Publication of KR102627394B1 publication Critical patent/KR102627394B1/ko

Links

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/405Tree adaptation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6011Encoder aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • Operations Research (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Generation (AREA)
  • Complex Calculations (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

포인트 클라우드를 인코딩하기 위한 방법 및 디바이스가 제공된다. 서브-체적과 연관된 현재 노드는 추가 서브-체적으로 분할되고, 각각의 추가 서브-체적은 현재 노드의 자식 노드에 대응하고, 인코더에서 자식 노드의 점유 상태에 기초하여 현재 노드에 대한 점유 패턴이 결정된다. 확률 분포는 현재 노드에 이웃하는 복수의 노드에 대한 점유 데이터에 기초한 복수의 확률 분포 중에서 선택된다. 인코더는 선택된 확률 분포에 기초하여 점유 패턴을 엔트로피 인코딩하여 비트스트림에 대한 인코딩된 데이터를 생성하고, 선택된 확률 분포를 업데이트한다. 디코더는 이웃 노드들에 대한 점유 데이터에 기초하여 동일한 선택을 하고, 비트스트림을 엔트로피는 디코딩하여 점유 패턴을 재구성한다.

Description

포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스
본 출원은 일반적으로 포인트 클라우드 압축에 관한 것으로, 특히 포인트 클라우드의 개선된 엔트로피 코딩을 위한 방법 및 디바이스에 관한 것이다.
데이터 압축은 정보를 효율적으로 저장, 전송 및 재생하기 위하여 통신 및 컴퓨터 네트워킹에 사용된다. 3 차원 물체 또는 공간의 표현에 대한 관심이 증가하고 있는데, 이는 큰 데이터 세트를 포함할 수 있고 효율적이고 효과적인 압축이 매우 유용하고 가치가 있을 것이다. 일부 경우에, 3 차원 물체 또는 공간은 포인트 클라우드를 사용하여 표현될 수 있고, 포인트 클라우드는 각각 3 개의 좌표 위치(X, Y, Z) 및 일부 경우에 컬러 데이터(예를 들어, 휘도 및 색차), 투명도, 반사율, 법선 벡터 등과 같은 다른 속성을 갖는 포인트의 집합이다. 포인트 클라우드는 정적(단일 시점에서 정지된 물체 또는 환경/물체의 스냅샷) 또는 동적(시간 정렬된(time-ordered) 포인트 클라우드의 시퀀스)일 수 있다.
포인트 클라우드를 위한 예시적인 애플리케이션은 지형(topography) 및 매핑 애플리케이션을 포함한다. 자율 주행 차량 및 기타 머신-비전 애플리케이션은 LiDAR 스캐너와 같은 환경의 3D 스캔 형태의 포인트 클라우드 센서 데이터에 의존할 수 있다. 가상 현실 시뮬레이션은 포인트 클라우드에 의존할 수 있다.
포인트 클라우드는 대량의 데이터를 포함할 수 있고 그 데이터를 빠르고 정확하게 압축(인코딩 및 디코딩)하는 것이 중요한 관심사라는 것이 이해될 것이다. 따라서, 포인트 클라우드에 대한 데이터를 보다 효율적으로 및/또는 효과적으로 압축하는 방법 및 디바이스를 제공하는 것이 유리할 것이다.
이제, 예로서, 본 출원의 예시적인 실시 예를 도시하는 첨부 도면을 참조할 것이다.
도 1은 예시적인 포인트 클라우드 인코더의 단순화된 블록도를 도시한다.
도 2는 예시적인 포인트 클라우드 디코더의 단순화된 블록도를 도시한다.
도 3은 코딩을 위한 예시적인 부분 서브-체적 및 관련 트리 구조를 도시한 다.
도 4는 옥트리(octree)의 재귀적 분할(splitting) 및 코딩을 도시한다.
도 5는 옥트리로부터 예시적인 큐브 내의 예시적인 스캔 패턴을 도시한다.
도 6은 예시적인 큐브의 예시적인 점유 패턴을 도시한다.
도 7은 포인트 클라우드를 인코딩하는 하나의 예시적인 방법을 흐름도 형태로 도시한다.
도 8은 예시적인 옥트리의 부분을 도시한다.
도 9는 이웃하는 서브-체적의 예를 도시한다.
도 10은 이웃 노드들 사이의 점유를 도시하는 예시적인 이웃 구성을 도시한다.
도 11은 부모-패턴-의존(parent-pattern-dependent) 컨텍스트를 사용하는 포인트 클라우드 엔트로피 인코딩의 프로세스의 하나의 예시적인 실시 예를 개략적으로 도시한다.
도 12는 이웃-구성-의존(neighbour-configuration-dependent) 컨텍스트를 사용하는 포인트 클라우드 엔트로피 인코딩의 프로세스의 하나의 예시적인 실시 예를 도시한다.
도 13은 압축된 포인트 클라우드 데이터의 비트스트림을 디코딩하기 위한 하나의 예시적인 방법을 흐름도 형태로 도시한다.
도 14는 인코더의 예시적인 단순화된 블록도를 도시한다.
도 15는 디코더의 예시적인 단순화된 블록도를 도시한다.
도 16은 예시적인 직교 좌표계 및 축 주위의 예시적인 회전을 도시한다.
도 17은 Z 축 주위의 회전의 한 번 또는 여러 번의 반복 하에 이웃 구성의 불변성(invariance)의 클래스를 도시한다.
도 18은 수직 회전에 대한 이웃 구성의 불변성의 클래스를 도시한다.
도 19는 회전 및 반사 둘 다에 대한 불변성의 클래스를 도시한다.
도 20은 3 번의 회전 및 반사 하에 대한 불변성의 클래스를 도시한다.
유사한 컴포넌트를 나타내기 위하여 상이한 도면에서 유사한 참조 부호가 사용되었을 수 있다.
본 출원은 포인트 클라우드를 인코딩하고 디코딩하는 방법, 및 포인트 클라우드를 인코딩하고 디코딩하기 위한 인코더 및 디코더를 설명한다. 서브-체적과 연관된 현재 노드는 추가 서브-체적으로 분할되고, 각각의 추가 서브-체적은 현재 노드의 자식 노드에 대응하고, 인코더에서 자식 노드의 점유 상태에 기초하여 현재 노드에 대한 점유 패턴이 결정된다. 확률 분포는 현재 노드에 이웃하는 복수의 노드들에 대한 점유 데이터에 기초하여 복수의 확률 분포 중에서 선택된다. 인코더는 비트스트림에 대한 인코딩된 데이터를 생성하기 위하여 선택된 확률 분포에 기초하여 점유 패턴을 엔트로피 인코딩하고, 선택된 확률 분포를 업데이트한다. 디코더는 이웃 노드들에 대한 점유 데이터에 기초하여 동일한 선택을 하고, 점유 패턴을 재구성하기 위하여 비트스트림을 엔트로피 디코딩한다.
일 양태에서, 본 출원은 압축된 포인트 클라우드 데이터의 비트스트림을 생성하기 위하여 포인트 클라우드를 인코딩하는 방법을 기술하고, 포인트 클라우드는 부모-자식 관계를 갖는 복수의 노드를 갖고 서브-체적으로 재귀적으로 분할되는 체적 공간의 지오메트리를 나타내며, 포인트 클라우드의 포인트들을 포함하는 트리 구조로 정의된다. 방법은 추가 서브-체적 - 각 추가 서브-체적은 현재 노드의 자식 노드에 대응함 - 으로 분할되는 서브-체적과 연관된 현재 노드의 경우, 자식 노드의 점유 상태에 기초하여, 현재 노드에 대한 점유 패턴을 결정하는 단계; 상기 현재 노드에 이웃하는 복수의 노드들에 대한 점유 데이터에 기초하여, 복수의 확률 분포 중에서 확률 분포를 선택하는 단계; 상기 비트스트림에 대한 인코딩된 데이터를 생성하기 위하여 상기 선택된 확률 분포에 기초하여 상기 점유 패턴을 엔트로피 인코딩하는 단계; 및 상기 점유 패턴에 기초하여 상기 선택된 확률 분포를 업데이트하는 단계를 포함한다.
다른 양태에서, 본 출원은 재구성된 포인트 클라우드를 생성하기 위하여 압축된 포인트 클라우드 데이터의 비트스트림을 디코딩하는 방법을 기술하며, 포인트 클라우드는 부모-자식 관계를 갖는 복수의 노드를 갖고 서브-체적으로 재귀적으로 분할되는 체적 공간의 지오메트리를 나타내며, 포인트 클라우드의 포인트들을 포함하는 트리 구조로 정의된다. 방법은 추가 서브-체적 - 각 추가 서브-체적은 현재 노드의 자식 노드에 대응함 - 으로 분할되는 서브-체적과 연관된 현재 노드의 경우, 상기 현재 노드에 이웃하는 복수의 노드들에 대한 점유 데이터에 기초하여, 복수의 확률 분포 중에서 확률 분포를 선택하는 단계; 상기 자식 노드의 점유를 시그널링하는 상기 현재 노드에 대한 재구성된 점유 패턴을 생성하기 위하여 상기 선택된 확률 분포에 기초하여 상기 비트스트림을 엔트로피 디코딩하는 단계; 및 상기 재구성된 점유 패턴에 기초하여 상기 선택된 확률 분포를 업데이트하는 단계를 포함한다.
일부 구현들에서, 상기 점유 데이터는 상기 현재 노드의 부모 노드에 대한 점유 패턴이고, 상기 복수의 노드는 동일한 부모 노드를 공유하는 현재 노드의 형제 노드들을 포함한다.
일부 구현들에서, 상기 이웃 노드들은 상기 현재 노드와 연관된 서브-체적과 적어도 하나의 면을 공유하는 각각의 서브-체적과 연관된 노드들이다. 추가 구현들에서, 상기 이웃 노드들은 상기 현재 노드와 연관된 서브-체적과 적어도 하나의 에지를 공유하는 각각의 서브-체적과 연관된 노드들이다. 또 다른 구현들에서 상기 이웃 노드들은 상기 현재 노드와 연관된 서브-체적과 적어도 하나의 정점을 공유하는 각각의 서브-체적과 연관된 노드들이다.
일부 구현들에서, 상기 복수의 확률 분포는 상기 현재 노드에 이웃하는 상기 복수의 노드들의 복수의 점유 패턴 각각과 연관된 각각의 분포를 포함한다. 일부 경우에, 각각의 분포는 완전 점유(fully occupied), 수평-지향(horizontally-oriented), 수직-지향(vertically-oriented) 및 희소하게 채워진(sparsely populated) 점유 패턴과 연관된 분포를 포함한다.
일부 구현들에서, 인코딩 방법은 상기 현재 노드에 이웃하는 상기 복수의 노드들 중 어느 것도 점유되지 않은 것으로 결정하는 단계, 상기 자식 노드 중 둘 이상이 점유되었다고 결정하는 단계, 및 상기 자식 노드 중 둘 이상이 점유되었다고 표시하는 플래그를 인코딩하는 단계를 더 포함한다.
또 다른 양태에서, 본 출원은 그러한 인코딩 및 디코딩 방법을 구현하도록 구성된 인코더 및 디코더를 기술한다.
또 다른 양태에서, 본 출원은 실행될 때, 하나 이상의 프로세서로 하여금 기술된 인코딩 및/또는 디코딩 방법을 수행하게 하는 컴퓨터 실행 가능 프로그램 명령어들을 저장하는 컴퓨터 판독 가능 비일시적 매체를 기술한다.
또 다른 양태에서, 본 출원은 컴퓨터에 의하여 실행될 때, 컴퓨터로 하여금 기술된 인코딩 및/또는 디코딩 방법을 수행하게 하는 프로그램 명령어들을 포함하는 컴퓨터 판독 가능 신호를 기술한다.
본 출원의 다른 양태 및 특징은 첨부 도면과 함께 하기 실시 예의 설명을 검토함으로써 당업자에게 이해될 것이다.
이하의 설명에서 때때로, 용어 "노드(node)" 및 "서브-체적(sub-volume)"은 상호 교환적으로 사용될 수 있다. 노드가 서브-체적과 연관되어 있음을 이해할 것이다. 노드는 내부(internal) 노드 또는 리프(leaf) 노드일 수 있는 트리 상의 특정 포인트이다. 서브-체적은 노드가 나타내는 경계가 있는(bounded) 물리적 공간이다. "체적(volume)"이라는 용어는 포인트 클라우드를 포함하기 위하여 정의된 경계가 있는 가장 큰 공간을 지칭하는 데 사용될 수 있다. 포인트 클라우드 데이터를 코딩하기 위하여 상호 연결된 노드들의 트리 구조를 구축할 목적으로 체적은 서브-체적으로 재귀적으로 분할된다.
본 출원에서, 용어 "및/또는(and/or)"은 나열된 요소들 중 오직 임의의 하나, 임의의 하위 조합, 또는 모든 요소를 포함하여, 나열된 요소의 모든 가능한 조합 및 하위 조합을 포함하도록 의도되고, 추가 요소를 반드시 배제하는 것은 아니다.
본 출원에서, 문구 "... 또는.. 중 적어도 하나(at least one of ..or..)"는 열거된 요소들 중 오직 임의의 하나, 임의의 하위 조합, 또는 모든 요소를 포함하여, 나열된 요소들 중 임의의 하나 이상을 포함하도록 의도되고, 추가 요소를 반드시 배제하는 것은 아니며, 반드시 모든 요소를 필요로 하는 것은 아니다.
포인트 클라우드는 3 차원 좌표계에서 포인트들의 집합이다. 포인트는 종종 하나 이상의 물체의 외부 표면을 나타내기 위한 것이다. 각 포인트는 3 차원 좌표계에서 장소(location)(위치(position))를 갖는다. 위치는 3 개의 좌표(X, Y, Z)로 표현될 수 있으며, 이는 직교(Cartesian) 또는 임의의 다른 좌표계일 수 있다. 포인트는 색상과 같은 다른 관련 속성을 가질 수 있으며, 이는 또한 경우에 따라 R, G, B 또는 Y, Cb, Cr과 같은 3 가지 성분 값일 수도 있다. 다른 관련 속성은 포인트 클라우드 데이터에 대한 원하는 애플리케이션에 따라 투명도, 반사율, 법선 벡터 등을 포함할 수 있다.
포인트 클라우드는 정적 또는 동적일 수 있다. 예를 들어, 물체 또는 지형의 상세한 스캔 또는 매핑은 정적 포인트 클라우드 데이터일 수 있다. 머신 비전 목적을 위한 환경의 LiDAR 기반 스캔은 (적어도 잠재적으로) 포인트 클라우드가 시간이 지남에 따라, 예를 들어 체적을 연속해서 스캔할 때마다 변한다는 점에서 동적일 수 있다. 따라서, 동적 포인트 클라우드는 포인트 클라우드의 시간 정렬된 시퀀스이다.
포인트 클라우드 데이터는 몇몇 예를 들자면, 보존(역사적 또는 문화적 물체의 스캐닝), 매핑, (자율적 또는 반자율적 자동차와 같은) 머신 비전 및 가상 현실 시스템을 포함하는 다수의 애플리케이션에서 사용될 수 있다. 머신 비전과 같은 애플리케이션에 대한 동적 포인트 클라우드 데이터는 보존 목적을 위한 것과 같은 정적 포인트 클라우드 데이터와는 상당히 상이할 수 있다. 예를 들어, 자동차 비전(automotive vision)에는 일반적으로 캡처 빈도가 높은 LiDAR(또는 유사한) 센서를 통해 얻은 비교적 작은 해상도의 색깔이 없는(non-coloured) 매우 동적인 포인트 클라우드가 포함된다. 이러한 포인트 클라우드의 목적은 사람이 소비하거나 보기 위한 것이 아니라 의사 결정 과정에서 머신 물체 검출/분류를 위한 것이다. 예를 들어 일반적인 LiDAR 프레임에는 대략 수만 개의 포인트가 포함되어 있지만 고품질 가상 현실 애플리케이션에는 수백만 개의 포인트가 필요하다. 계산 속도가 증가하고 새로운 애플리케이션이 발견됨에 따라, 시간이 지남에 따라 더 높은 해상도 데이터에 대한 요구가 있을 것으로 예상될 수 있다.
포인트 클라우드 데이터가 유용할 수 있지만, 효과적이고 효율적인 압축, 즉 인코딩 및 디코딩 프로세스의 부족은 채택(adoption) 및 배치(deployment)를 방해할 수 있다.
포인트 클라우드 데이터를 코딩하기 위한 보다 일반적인 메커니즘 중 하나는 트리 기반 구조를 이용하는 것이다. 트리 기반 구조에서 포인트 클라우드에 대한 경계 3 차원 체적은 서브-체적으로 재귀적으로 분할된다. 트리의 노드는 서브-체적에 해당한다. 서브-체적을 더 분할할지 여부의 결정은 트리의 해상도 및/또는 서브-체적에 포함된 포인트가 있는지 여부에 기초할 수 있다. 리프 노드는 연관된 서브-체적이 포인트를 포함하는지 여부를 표시하는 점유 플래그(occupancy flag)를 가질 수 있다. 분할 플래그(splitting flag)는 노드가 자식 노드를 가지고 있는지 여부(즉, 현재 체적이 서브-체적으로 더 분할되었는지 여부)를 시그널링할 수 있다. 이들 플래그는 경우에 따라 엔트로피 코딩될 수 있고, 경우에 따라 예측 코딩이 사용될 수 있다.
일반적으로 사용되는 트리 구조는 옥트리이다. 이 구조에서, 체적/서브-체적은 모두 큐브이며 서브-체적의 각 분할은 8 개의 추가 서브-체적/서브-큐브를 초래한다. 일반적으로 사용되는 또 다른 트리 구조는 KD 트리이고, 여기서 체적(큐브 또는 직사각형 큐보이드)이 축 중 하나에 직교하는 평면에 의해 2 개로 재귀적으로 나뉜다. 옥트리는 KD 트리의 특수한 경우로서, 체적은 세 개의 평면에 의해 나뉘며 각각은 세 개의 축 중 하나와 직교한다. 이 두 예는 큐브 또는 직사각형 큐보이드와 관련이 있다; 그러나, 본 출원은 그러한 트리 구조로 제한되지 않으며, 체적 및 서브-체적은 일부 애플리케이션에서 다른 형상을 가질 수 있다. 체적의 파티셔닝은 반드시 두 개의 서브-체적(KD-트리) 또는 8 개의 서브-체적(옥트리)으로 나뉠 필요는 없지만, 직사각형이 아닌 형상으로 나누거나 인접하지 않은 서브-체적을 포함하는 다른 파티션을 수반할 수 있다.
본 출원은 설명의 용이함 및 이들이 자동차 애플리케이션을 위한 대중적인 후보 트리 구조이기 때문에 옥트리를 언급할 수 있지만, 본 명세서에 기술된 방법 및 디바이스는 다른 트리 구조를 사용하여 구현될 수 있다는 것이 이해될 것이다.
이제, 본 출원의 양태에 따른 포인트 클라우드 인코더(10)의 단순화된 블록도를 도시한 도 1을 참조한다. 포인트 클라우드 인코더(10)는 포인트 클라우드 데이터를 수신하고, 포인트 클라우드를 포함하는 체적 공간의 지오메트리를 나타내고 그 지오메트리에서 포인트 클라우드로부터 포인트의 장소 또는 위치를 표시하는 트리(이 예에서는 옥트리)를 생성하기 위한 트리 구축 모듈(tree building module)(12)을 포함한다.
포인트 클라우드를 코딩하기 위하여 옥트리를 생성하는 기본 프로세스는 다음을 포함할 수 있다:
1. 좌표계에서 포인트 클라우드를 포함하는 경계 체적(bounding volume)(큐브)에서 시작한다.
2. 체적을 8 개의 서브-체적(8 개의 서브-큐브)으로 분할한다.
3. 각 서브-체적에 대하여, 서브-체적이 비어 있으면 서브-체적을 0으로 마킹하고, 그 안에 적어도 하나의 포인트가 있으면 1로 마킹한다.
4. 1로 마킹된 모든 서브-체적에 대하여, 최대 분할 깊이에 도달할 때까지, 서브-체적을 분할하기 위하여 (2)를 반복한다.
5. 최대 깊이의 모든 리프 서브-체적(서브-큐브)에 대하여, 비어 있지 않으면 리프 큐브를 1로 마킹하고 그렇지 않으면 0으로 마킹한다.
상기 프로세스는 점유-동등-분할(occupancy-equals-splitting) 프로세스로서 설명될 수 있으며, 분할은 점유를 의미하며, 더 이상의 분할이 발생하지 않을 최대 깊이 또는 해상도가 존재한다는 제약이 있다. 이 경우, 단일 플래그는 노드가 분할되어 있는지 여부, 따라서 적어도 하나의 포인트에 의하여 점유되는지 여부를 시그널링하고, 그 반대도 마찬가지이다. 최대 깊이에서 추가적으로 가능한 분할이 없을 때, 플래그는 점유를 시그널링한다.
일부 구현들에서, 분할 및 점유는, 노드가 점유될 수 있고 분할되거나 분할되지 않도록 독립적이다. 이 구현에는 두 가지 변형이 있다:
1. 분할-후-점유(split-then-occupied). 신호 플래그는 노드가 분할되었는지 여부를 표시한다. 분할된 경우, 노드는 포인트를 포함하여야 한다, 즉 분할은 점유를 의미한다. 그렇지 않고, 노드가 분할되지 않으면, 추가 점유 플래그는 노드가 적어도 하나의 포인트를 포함하는지 여부를 시그널링한다. 따라서, 노드가 더 이상 분할되지 않는 경우, 즉 리프 노드인 경우, 리프 노드는 그것이 포인트를 포함하는지 여부를 표시하는 관련 점유 플래그를 가져야 한다.
2. 점유-후-분할(occupied-then-split). 단일 플래그는 노드가 점유되었는지 여부를 표시한다. 점유되지 않으면 분할이 발생하지 않는다. 점유되면, 노드가 추가로 분할되는지 여부를 표시하기 위하여 분할 플래그가 코딩된다.
전술한 프로세스 중 어느 것이 트리를 구축하기 위하여 사용되는지에 관계 없이, 사전 정의된 순서로(폭-우선 또는 깊이-우선, 및 각각의 분할된 서브-체적 내의 스캔 패턴/순서에 따라) 트래버스되어, 플래그(점유 및/또는 분할 플래그)로부터 비트의 시퀀스를 생성할 수 있다. 이것을 트리의 직렬화(serialization) 또는 이진화(binarization)라고 한다. 도 1에 도시된 바와 같이, 이 예에서, 포인트 클라우드 인코더(10)는 트리를 나타내는 이진화된 데이터의 비트스트림을 생성하기 위하여 옥트리를 이진화하기 위한 이진화기(binarizer)(14)를 포함한다.
이 비트 시퀀스는 그 후 엔트로피 인코더(16)를 사용하여 인코딩되어, 압축된 비트스트림을 생성할 수 있다. 엔트로피 인코더(16)는 엔트로피 인코더(16)에 의한 컨텍스트 결정에 기초하여 비트를 코딩하기 위한 확률을 지정하는 컨텍스트 모델(18)을 사용하여 비트의 시퀀스를 인코딩할 수 있다. 컨텍스트 모델(18)은 각각의 비트 또는 정의된 비트 세트의 코딩 후에 적응적으로 업데이트될 수 있다. 엔트로피 인코더(16)는 경우에 따라 이진 산술 인코더일 수 있다. 이진 산술 인코더는 일부 구현들에서 CABAC(context-adaptive binary arithmetic coding)을 이용할 수 있다. 일부 구현들에서, 산술 코더들 이외의 코더들이 사용될 수 있다.
일부 경우에, 엔트로피 인코더(16)는 이진 코더가 아닐 수 있고, 대신에 비-이진(non-binary) 데이터에 대하여 동작할 수 있다. 트리 구축 모듈(12)로부터의 출력 옥트리 데이터는 이진 형태로 평가되지 않고, 대신에 비-이진 데이터로서 인코딩될 수 있다. 예를 들어, 옥트리의 경우, 그들의 스캔 순서로 서브-체적 내의 8 개의 플래그(예를 들어, 점유 플래그)는 28-1 비트 수(이는 예를 들어, 1과 255 사이의 값을 갖는 정수인데 값 0은 분할된 서브-체적에는 가능하지 않기 때문임, 즉, 완전히 점유되지 않았으면 분할되지 않았을 것임)로 간주될 수 있다. 이 수는 일부 구현들에서 다중-심볼 산술 코더를 사용하여 엔트로피 인코더에 의해 인코딩될 수 있다. 서브-체적, 예를 들어 큐브 내에서, 이 정수를 정의하는 플래그의 시퀀스를 "패턴(pattern)"이라고 한다.
비디오 또는 이미지 코딩과 같이, 포인트 클라우드 코딩은 예측 동작을 포함할 수 있고 예측 동작에서는 서브-체적에 대한 패턴을 예측하기 위한 노력이 이루어지고 예측으로부터의 잔차(residual)가 패턴 자체 대신에 코딩된다. 예측은 공간적이거나(동일 포인트 클라우드에서 이전에 코딩된 서브-체적에 의존함) 또는 시간적(포인트 클라우드의 시간 정렬된 시퀀스에서 이전에 코딩된 포인트 클라우드에 의존함)일 수 있다.
인코더(10)에 대응하는 예시적인 포인트 클라우드 디코더(50)의 블록도가 도 2에 도시되어 있다. 포인트 클라우드 디코더(50)는 인코더(10)에 의해 사용된 동일한 컨텍스트 모델(54)을 사용하는 엔트로피 디코더(52)를 포함한다. 엔트로피 디코더(52)는 압축된 데이터의 입력 비트스트림을 수신하고, 데이터를 엔트로피 디코딩하여 압축 해제된 비트의 출력 시퀀스를 생성한다. 이어서, 시퀀스는 트리 재구성기(tree reconstructor)(56)에 의해 재구성된 포인트 클라우드 데이터로 변환된다. 트리 재구성기(56)는 압축 해제된 데이터 및 트리 데이터가 이진화된 스캐닝 순서에 대한 지식으로부터 트리 구조를 재구축한다. 따라서 트리 재구성기(56)는 포인트 클라우드로부터 (트리 코딩의 해상도에 따라) 포인트의 장소를 재구성할 수 있다.
예시적인 부분 서브-체적(100)이 도 3에 도시되어 있다. 이 예에서, 서브-체적(100)의 슬라이스는 예시의 편의를 위하여 2 차원으로 도시되고, 서브-체적(100)의 크기는 16×16이다. 서브-체적은 4 개의 8×8 서브-정사각형으로 나뉘어졌고, 그 중 2 개는 4×4 서브 정사각형으로 더 세분화되었으며, 그 중 3 개는 2×2 서브 정사각형으로 더 나뉘고, 2×2 서브 정사각형 중 하나는 그 후 1×1 정사각형으로 나뉜다는 것을 주목할 것이다. 1×1 정사각형은 트리의 최대 깊이이며 위치 포인트 데이터의 최고(finest) 해상도를 나타낸다. 포인트 클라우드로부터의 포인트는 도면에서 점(dot)으로서 도시되어 있다.
트리(102)의 구조는 서브-체적(100)의 우측에 도시되어 있다. 사전 정의된 폭-우선 스캔 순서로 얻어진 분할 플래그(104)의 시퀀스 및 점유 플래그(106)의 대응하는 시퀀스가 트리(102)의 우측에 도시되어 있다. 이 예시적인 예에서, 분할되지 않은, 즉 연관된 분할 플래그가 0으로 설정된 각각의 서브-체적(노드)에 대한 점유 플래그가 존재함을 관찰할 수 있을 것이다. 이들 시퀀스는 엔트로피 인코딩될 수 있다.
점유≡분할 조건을 사용하는 다른 예가 도 4에 도시되어 있다. 도 4는 옥트리(150)의 재귀적 분할 및 코딩을 도시한다. 옥트리(150)의 일부만이 도면에 도시되어 있다. FIFO(152)는 본 프로세스의 폭-우선 성질을 설명하기 위하여 분할을 위하여 노드를 처리하는 것으로 도시되어 있다. FIFO(152)는 부모 노드(156)의 처리 후 추가 분할을 위하여 FIFO(152)에 큐잉된(queued) 점유된 노드(154)를 출력한다. 트리 구축기(tree builder)는 점유된 노드(154)와 연관된 서브-체적을 8 개의 서브-체적(큐브)으로 분할하고 그들의 점유를 결정한다. 점유는 각각의 서브-체적에 대한 점유 플래그로 표시될 수 있다. 소정의 스캔 순서에서, 플래그는 노드(154)에 대한 점유 패턴으로 지칭될 수 있다. 패턴은 사전 정의된 스캔 순서에서 서브-체적과 연관된 점유 플래그의 시퀀스를 나타내는 정수에 의해 특정될 수 있다. 옥트리의 경우, 패턴은 [1, 255] 범위의 정수이다.
엔트로피 인코더는 그 후 컨텍스트 모델에 의해 지정된 확률에 기초하여 비-이진 산술 인코더를 사용하여 그 패턴을 인코딩한다. 이 예에서, 확률은 초기 분포 모델에 기초하고 적응적으로 업데이트된 패턴 분포일 수 있다. 일 구현에서, 패턴 분포는 효과적으로 코딩 동안 각 패턴(1 내지 255의 정수)이 발생한 횟수의 카운터이다. 각 서브-체적이 코딩된 후에 패턴 분포가 업데이트될 수 있다. 패턴의 상대적 빈도는 절대 카운트가 아니라 확률 평가와 밀접한 관계가 있기 때문에, 필요에 따라 패턴 분포가 정규화될 수 있다.
패턴에 기초하여, 점유된(예를 들어, 플래그 = 1을 갖는) 자식 노드는 이어서 (노드가 트리의 최대 깊이가 아닌 경우) 차례로 추가 분할을 위하여 FIFO(152)로 푸시된다.
이제, 옥트리로부터의 예시적인 큐브(180)를 도시하는 도 5를 참조한다. 큐브(180)는 8 개의 서브 큐브로 세분화된다. 플래그를 읽기 위한 스캔 순서는 8 비트 문자열(string)을 초래하며, 이는 이진수로 정수 [1, 255]로서 판독될 수 있다. 문자열에서 각 서브-큐브의 플래그의 스캔 순서 및 결과적인 비트 위치에 기초하여, 서브-큐브는 도 5에 도시된 값을 갖는다. 인코더 및 디코더가 둘다 동일한 스캔 순서를 사용한다면, 스캔 순서는 서브-큐브의 임의의 시퀀스일 수 있다.
예로서, 도 6은 4 개의 "전방(front)" 서브-큐브가 점유된 큐브(200)를 도시한다. 이것은 점유된 서브-큐브가 큐브 1 + 4 + 16 + 64라는 것에 기초하여 패턴 85에 대응할 것이다. 정수 패턴 수는 서브-큐브에서의 점유 패턴을 지정한다.
트리가 포인트 좌표의 상위(higher order) 비트를 인수화(factorize)하는 경향이 있기 때문에, 옥트리 표현, 또는 보다 일반적으로 임의의 트리 표현은 공간 상관을 갖는 포인트를 표현하는데 효율적이다. 옥트리의 경우, 각 깊이 레벨은 리파인(refine) 당 8 비트의 비용으로 각 컴포넌트에 대하여 서브-체적 내의 포인트의 좌표를 1 비트씩 리파인한다. 각 트리 노드와 연관된 분할 정보, 즉 패턴을 엔트로피 코딩함으로써 추가 압축이 얻어진다. 패턴 분포가 균일하지 않기 때문에 이러한 추가 압축이 가능하고, 불균일성은 상관(correlation)의 또 다른 결과이다.
현재 시스템에서 하나의 잠재적 비효율성은 패턴 분포(예를 들어, 트리의 이전에 코딩된 노드에서 보여지는 패턴 번호의 히스토그램)가 포인트 클라우드를 코딩하는 과정에서 개발된다는 것이다. 일부 경우에, 패턴 분포는 같은 확률로서(equiprobable) 초기화될 수 있거나, 어떤 다른 미리 결정된 분포로 초기화될 수 있지만; 하나의 패턴 분포를 사용한다는 것은 컨텍스트 모델이 로컬 기하 상관을 설명하거나 활용하지 않음을 의미한다.
따라서, 본 출원의 일 양태에 따르면, 인코더 및 디코더는 각각 둘 이상의 패턴 분포(예를 들어, 점유 패턴과 연관된 확률 세트)를 유지하고, 특정 노드 근처에서 이전에 코딩된 노드들로부터의 일부 점유 정보에 기초하여 특정 노드의 점유 패턴을 코딩하는데 사용될 패턴 분포를 선택한다. 하나의 예시적인 구현에서, 점유 정보는 특정 노드의 부모의 점유 패턴으로부터 획득된다. 다른 예시적인 구현에서, 점유 정보는 특정 노드에 이웃하는 하나 이상의 노드로부터 획득된다.
이제 포인트 클라우드를 인코딩하는 하나의 예시적인 방법(200)을 흐름도 형태로 도시하는 도 7을 참조한다. 이 예에서 방법(200)은 점유된 노드(서브-체적)의 재귀적 분할 및 코딩을 위한 트리의 폭-우선(breadth-first) 트래버스를 포함한다.
동작(202)에서, 인코더는 현재 노드에 대한 점유 패턴을 결정한다. 현재 노드는 8개의 자식 노드로 분할되었던 점유된 노드이고, 각각의 자식 노드는 각각의 서브-큐브에 대응한다. 현재 노드에 대한 점유 패턴은 스캔 순서로 8 개의 자식 노드의 점유를 지정한다. 위에서 논의된 바와 같이, 이 점유 패턴은 1 내지 255 사이의 정수를 사용하여, 즉 8 비트 이진 문자열로 표시될 수 있다.
동작(204)에서, 인코더는 확률 분포 세트에서 확률 분포를 선택한다. 확률 분포의 선택은 근처에 미리 코딩된 노드들, 즉 현재 노드의 이웃인 적어도 하나의 노드로부터의 점유 정보에 기초한다. 일부 실시 예에서, 2 개의 노드가 적어도 하나의 면을 공유하는 각각의 서브-체적과 연관되어 있다면, 이웃한다. 더 넓은 정의에서 노드들은 적어도 하나의 에지를 공유하는 경우 이웃한다. 더 넓은 정의에서, 2 개의 노드들이 적어도 하나의 정점을 공유하는 경우, 이웃한다. 현재 노드가 자식 노드인 부모 패턴은 현재 노드 및 현재 노드의 7 개의 형제 노드에 대한 점유 데이터를 제공한다. 일부 구현들에서, 점유 정보는 부모 패턴이다. 일부 구현들에서, 점유 정보는 현재 노드와 동일한 깊이 레벨의 트리에서 노드들을 포함하지만 상이한 부모 노드를 갖는 이웃 노드들의 세트이다. 경우에 따라 이들의 조합이 가능하다. 예를 들어, 이웃 노드들의 세트는 일부 형제 노드 및 일부 비-형제(non-sibling) 노드를 포함할 수 있다.
일단 확률 분포가 선택되었으면, 인코더는 동작(206)에 의해 지시된 바와 같이 선택된 확률 분포를 사용하여 현재 노드에 대한 점유 패턴을 엔트로피 인코딩한다. 그런 다음, 점유 패턴에 기초하여 동작(208)에서 선택된 확률 분포를 업데이트한다. 예를 들어 그것은 그 점유 패턴에 대응하는 카운트를 증가시킬 수 있다. 동작(210)에서, 인코더는 코딩할 노드가 추가로 있는지 평가하고, 있다면, 다음 노드를 코딩하기 위해 동작(202)으로 복귀한다.
동작(204)에서의 확률 분포 선택은 근처에 미리 코딩된 노드들에 대한 점유 데이터에 기초해야 한다. 이를 통해 인코더와 디코더 모두 독립적으로 동일한 선택을 할 수 있다. 확률 분포 선택에 대한 아래의 논의를 위해, 현재 노드(302)를 포함하는 부분적 옥트리(300)를 개략적으로 도시하는 도 8을 참조할 것이다. 현재 노드(302)는 점유된 노드이고, 코딩을 위해 평가되고 있다. 현재 노드(302)는 부모 노드(306)의 8 개의 자식 중 하나이며, 이는 결국 조부모 노드(도시되지 않음)의 자식이다. 현재 노드(302)는 8 개의 자식 노드(304)로 분할된다. 현재 노드(302)에 대한 점유 패턴은 자식 노드(304)의 점유에 기초한다. 예를 들어, 도시된 바와 같이, 검은 점(dot)은 점유된 노드라는 관례를 사용하여, 점유 패턴은 00110010, 즉 패턴 50일 수 있다.
현재 노드(302)는 동일한 부모 노드(306)를 갖는 형제 노드(308)를 가진다. 부모 패턴은 부모 노드(306)에 대한 점유 패턴이며, 도시된 바와 같이 00110000, 즉 패턴 48이 될 것이다. 부모 패턴은 현재 노드에 대한 점유 패턴을 엔트로피 인코딩하기 위한 적절한 확률 분포를 선택하기 위한 기초로서 작용할 수 있다.
도 9는 현재 노드를 둘러싸는 이웃의 세트를 도시하며, 여기서 이웃은 면(face)을 공유하는 노드로서 정의된다. 이 예에서 노드/서브-체적은 큐브이고 이미지 중앙의 큐브에는 각 면당 하나씩 6 개의 이웃이 있다. 옥트리에서, 현재 노드의 이웃은 3 개의 형제 노드를 포함할 것이라는 것이 이해될 것이다. 또한 그것은 동일한 부모 노드를 가지지 않는 3 개의 노드를 포함할 것이다. 따라서, 이웃 노드 중 일부는 형제이기 때문에 사용 가능할 것이지만, 일부 이웃 노드는 해당 노드가 이전에 코딩되었는지 여부에 따라 사용 가능하거나 사용 불가능할 수 있다. 누락된 이웃을 처리하기 위해 특별한 처리가 적용될 수 있다. 일부 구현들에서, 누락된 이웃은 점유된 것으로 추정되거나 점유되지 않은 것으로 추정될 수 있다. 평가에서 추가적인 인접 서브-체적을 포함하기 위해 공유 에지에 기초하거나 공유 정점에 기초하여 이웃 노드를 포함하도록 이웃 정의가 확장될 수 있다는 것이 이해될 것이다.
이웃 노드의 점유 상태에 기초하여 현재 노드(302)의 바로 옆의 주변 이웃을 평가하는 것은 형제의 점유 상태를 평가하는 것보다 더 정확한 고립의 평가일 수 있으며, (옥트리의 경우) 그 중 세 개는 에지만을 공유할 것이고, 그 중 하나는 정점만을 공유할 것이라는 것이 또한 이해될 것이다. 그러나 형제의 점유 상태의 평가는 평가에 대한 모든 관련 데이터가 부모 노드의 일부이므로 모듈식일 수 있다는 장점이 있고, 이는 구현을 위한 더 작은 메모리 풋프린트를 가진다는 것을 의미하는 반면, 이웃 점유 상태의 평가에는 향후 이웃 노드에 대한 적격성 평가를 수행해야 하는 경우 점유 데이터를 버퍼링하는 것을 수반한다.
이웃의 점유는 점유 패턴과 관련하여 전술한 바와 같이, 각 이웃에게 효과적으로 값을 할당하는 스캔 순서로 판독될 수 있다. 도시된 바와 같이, 이웃 노드는 효과적으로 1, 2, 4, 8, 16 또는 32의 값을 취하므로, 64 개(0 내지 63)의 가능한 이웃 점유 구성이 존재한다. 이 값은 본 명세서에서 "이웃 구성(neighbour configuration)"으로 지칭될 수 있다. 예로서, 도 10은 이웃 1, 2, 4 및 8이 점유되고, 이웃 16 및 32가 비어 있는 이웃 구성(15)의 예를 도시한다.
일부 경우에, 상기 2 가지 기준(부모 패턴 및 이웃 구성)이 모두 적용될 수 있거나 사이에서 선택될 수 있다. 예를 들어, 이웃이 이용 가능하면, 확률 분포 선택은 이웃 노드에 기초하여 이루어질 수 있고; 그러나, 하나 이상의 이웃이 아직 코딩되지 않은 노드로부터 왔기 때문에 이용 가능하지 않으면, 확률 분포 선택은 형제 노드(부모 패턴)에 기초한 분석으로 되돌아 갈 수 있다.
또 다른 실시 예에서, 확률 분포 선택은 대안적으로 또는 추가적으로 조부모 패턴에 기초할 수 있다. 다시 말해서, 확률 분포 선택은 부모 노드(306)의 형제인 삼촌 노드의 점유 상태에 기초할 수 있다.
또 다른 구현에서, 추가적인 또는 대안적인 평가가 확률 분포 선택에 고려될 수 있다. 예를 들어, 확률 분포 선택은 부모 노드의 이웃 노드의 점유 상태를 보거나 조부모 노드의 이웃 노드의 점유 상태를 볼 수 있다.
국소 점유 상태를 평가하기 위한 상기 기준 중 임의의 둘 이상이 일부 구현에서 조합되어 사용될 수 있다.
일부 실시 예에서, 확률 분포의 수는 선택 기준에서 가능한 점유 결과의 수와 동일할 수 있다. 다시 말해서, 옥트리에 대한 부모 패턴의 경우, 255 개의 확률 분포가 있을 것이다. 이웃 구성의 경우, 이웃이 면을 공유하는 것으로 정의되면, 64 개의 확률 분포가 있을 것이다. 그러나 분포가 너무 많으면 데이터 부족, 즉 컨텍스트 희석으로 인해 적응이 느려질 수 있다는 것을 이해할 것이다. 따라서, 일부 실시 예에서, 동일한 확률 분포를 사용하도록 유사한 패턴이 그룹화될 수 있다. 예를 들어, 완전히 점유된 경우, 수직 배향된 경우, 수평 배향된 경우, 대부분 비어 있는 경우, 및 모든 다른 경우에 대응하는 패턴에 대해 개별 분포가 사용될 수 있다. 이것은 확률 분포의 수를 약 5로 줄일 수 있다. 상이한 패턴의 그룹화가 형성되어, 상이한 수의 확률 분포를 초래할 수 있다는 것이 이해될 것이다.
이제 부모 패턴 의존 컨텍스트를 사용하는 포인트 클라우드 엔트로피 인코딩의 프로세스(400)의 예시적인 실시 예를 개략적으로 도시하는 도 11을 참조한다. 이 예에서, 현재 노드(402)는 8 개의 자식 노드로 분할되었고, 그 점유 패턴(404)은 비-이진(non-binary) 엔트로피 인코더(406)를 사용하여 인코딩되어야 한다. 비-이진 엔트로피 인코더(406)는 6 개의 가능한 확률 분포(408) 중 하나로부터 선택된 확률 분포를 사용한다. 선택은 부모 패턴에 기초한다 - 즉, 선택은 부모 노드로부터 현재 노드(402)까지의 점유 정보에 기초한다. 부모 패턴은 1과 255 사이의 정수에 의하여 식별된다.
확률 분포의 선택은 패턴이 풀(full) 노드(예를 들어, 패턴 = 255), 수평 구조(예를 들어, 패턴 = 170 또는 85; Z 축이 수직이라고 가정), 수직 구조(예를 들어, 패턴 = 3, 12, 48, 192), 희박하게 채워진 분포(예를 들어, 패턴 = 1, 2, 4, 8, 16, 32, 64 또는 128; 즉, 형제 노드 중 아무 것도 점유되지 않음), 반-희박하게(semi-sparsely) 채워진 분포(현재 노드와 형제 노드 사이에 있는 점유된 노드의 총 수 ≤ 3) 및 기타 모든 경우에 대응하는지 여부를 평가하는 결정 트리일 수 있다. 상이한 카테고리에 대해 표시된 예시적인 패턴은 예일 뿐이다. 예를 들어, "수평" 카테고리는 동일한 수평 레벨에서 2 개 또는 3 개의 점유된 큐브를 포함하는 패턴을 포함할 수 있다. "수직" 카테고리는 벽형(wall-like) 배열로 3 개 또는 4 개의 점유된 큐브를 포함하는 패턴을 포함할 수 있다. 더 미세한 계조(gradation)가 또한 사용될 수 있음을 이해할 것이다. 예를 들어, "수평" 카테고리는 큐브의 상부 부분에서 수평으로 그리고 큐브의 하부 부분에서 수평으로 더 세분화될 수 있으며, 각각에 대한 확률 분포는 상이하다. 일부 상관 관계를 갖는 다른 점유 패턴의 그룹화가 만들어지고 대응 확률 분포에 할당될 수 있다. 이웃 구성의 컨텍스트에서 패턴의 그룹화 및 이웃 구성 사이의 불변성(invariance)에 관한 추가 논의는 아래에 더 설명된다.
도 12는 이웃 구성-의존 컨텍스트를 사용하는 포인트 클라우드 엔트로피 인코딩의 프로세스(500)의 예시적인 실시 예를 도시한다. 이 예에서는 도 9와 관련하여 위에서 사용한 이웃 및 이웃 구성 넘버링의 정의를 가정한다. 이 예에서는 또한 각 이웃 구성에 전용 확률 분포가 있다고 가정하며, 이는 64 개의 상이한 확률 분포가 있다는 것을 의미한다. 현재 노드(502)는 인코딩될 점유 패턴(504)을 갖는다. 확률 분포는 현재 노드(502)의 이웃 노드에 기초하여 선택된다. 즉, [0, 63]의 이웃 구성 NC가 발견되어, 관련 확률 분포를 선택하는데 사용된다.
일부 실시 예에서, 둘 이상의 이웃 구성이 패턴의 유사성에 기초하여 동일한 확률 분포를 사용하도록 이웃 구성이 그룹화될 수 있다는 것이 이해될 것이다. 일부 실시 예에서, 프로세스는 분포의 상황화(contextualisation)(선택)를 위해 이웃의 상이한 배열을 사용할 수 있다. 3 개의 축 모두에 대각선으로 인접한 8 개의 이웃, 또는 2 개의 축에 대각선으로 인접한 12 개의 이웃과 같은 추가 이웃이 추가될 수 있다. 예를 들어, 깊이 우선 스캔에서 추가 의존성을 도입하거나 큰 트리에 대한 코덱 상태를 감소시키기 위해 특정 축에 의존성만을 도입하는 이웃을 사용하는 것을 피하기 위해 특정 이웃을 회피하는 실시 예가 또한 사용될 수도 있다.
이 예에서, NC = 0의 경우는 특정 방식으로 처리된다. 점유된 이웃이 없으면, 그것은 현재 노드(502)가 고립되어 있음을 나타낼 수 있다. 따라서, 프로세스(500)는 현재 노드(502)의 얼마나 많은 자식 노드가 점유되는지를 추가로 확인한다. 하나의 자식 노드만 점유되는 경우, 단일 자식 노드가 점유되고 노드의 인덱스가 3 비트를 사용하여 코딩된다는 것을 표시하는 플래그가 인코딩된다. 둘 이상의 자식 노드가 점유되면, 프로세스(500)는 점유 패턴을 코딩하기 위해 NC = 0 확률 분포를 사용한다.
이제, 인코딩된 포인트 클라우드 데이터의 비트스트림을 디코딩하기 위한 하나의 예시적인 방법(600)을 흐름도 형태로 도시한 도 13을 참조한다.
동작(602)에서, 디코더는 현재 노드 근처의 하나 이상의 노드로부터의 점유 정보에 기초하여 확률 분포 중 하나를 선택한다. 상술한 바와 같이, 점유 정보는 현재 노드의 부모 노드로부터의 부모 패턴, 즉 현재 노드 및 그 형제의 점유일 수 있거나, 현재 노드의 이웃 노드의 점유일 수 있으며, 이는 형제 노드 중 일부를 포함할 수 있다. 다른 또는 추가의 점유 정보가 일부 구현에서 사용될 수 있다.
일단 확률 분포가 선택되었으면, 동작(604)에서 디코더가 선택된 확률 분포를 사용하여 비트스트림의 일부를 엔트로피 디코딩하여, 현재 노드에 대한 점유 패턴을 재구성한다. 이 패턴은 인코딩된 포인트 클라우드 데이터를 복구하기 위해 디코더가 트리를 재구성하는 것의 일부이다. 포인트 클라우드 데이터가 디코딩되면, 뷰 렌더링, 세그먼트화/분류, 또는 다른 애플리케이션과 같은 사용을 위해 디코더로부터 출력될 수 있다.
동작(606)에서, 디코더는 재구성된 점유 패턴에 기초하여 확률 분포를 업데이트한 다음, 디코딩할 추가 노드가 있으면, 버퍼의 다음 노드로 이동하여 동작(602)으로 되돌아간다.
전술한 방법의 예시적인 구현은 코딩 복잡도의 무시할만한 증가로 압축 개선을 제공하는 것으로 입증되었다. 이웃 기반 선택은 계산이 더 복잡하고 메모리 사용량이 크지만 부모 패턴 기반 선택보다 압축 성능이 우수함을 보여준다. 일부 테스트에서 MPEG 포인트 클라우드 테스트 모델(Point Cloud Test Model)에 비해 포인트 당 비트의 상대적 개선은 4 ~ 20 %이다. 테스트 데이터를 가지고 도달한 분포를 기반으로 확률 분포를 초기화하면 균일한 분포로 초기화하는 것과 비교하여 성능이 향상된다는 것이 주목되었다.
상기 예 중 일부는 점유 패턴을 시그널링하기 위해 비-이진 코더를 사용하는 트리 코딩 프로세스에 기초한다. 프로세스는 CABAC를 사용하도록 수정될 수 있다는 것이 이해될 것이다. 점유 패턴은 이진 정보 또는 패턴 인덱스의 캐스케이드(cascade)로서 이진화될 수 있다.
이웃 기반 확률 분포 선택에 대한 일 변형에서, 분포의 수는 이웃의 대칭을 이용함으로써 감소될 수 있다. 이웃을 치환(permute)하거나 패턴 분포를 치환함으로써, 대칭 선을 갖는 구조적으로 유사한 구성이 동일한 분포를 재사용할 수 있다.
일례로서, 각각 코너 이웃 패턴의 대칭을 나타내는 8 개의 코너 패턴 NC ∈ [21, 22, 25, 26, 37, 38, 41, 42]을 고려한다. 이러한 NC 값은 노드의 특정한 그러나 상이한 패턴과 잘 상관될 가능성이 있다. 이들 상관된 패턴은 이웃 패턴과 동일한 대칭을 따르는 것이 또한 가능하다. 예를 들어, 단일 분포를 재사용하여 해당 분포의 확률을 치환함으로써 NC의 다수의 경우를 나타내는 방법이 구현될 수 있다.
인코더는 자식 노드의 점유에 기초하여 노드의 패턴 번호를 도출한다. 자식 노드 0… 7의 경우, 점유에 해당하는 비트 c가 정의된다. 패턴 번호는 pn = \sum_{i=0}^7 2^{i}×c_i로서 도출된다. 인코더는 이웃 구성에 따라 분포 및 치환 함수를 선택한다. 인코더는 치환 함수에 따라 분포 내에 포함된 확률을 재정렬하고, 이어서 치환된 분포를 사용하여 패턴 번호를 산술적으로 인코딩한다. 산술 인코더에 의한 치환된 분포의 확률에 대한 업데이트는 역 치환 함수에 의해 원래 분포에 다시 매핑된다.
대응하는 디코더는 먼저 이웃 구성에 따라 동일한 분포 및 치환 함수를 선택한다. 치환된 분포는 인코더와 동일한 방식으로 생성되며, 치환된 분포는 패턴 번호를 엔트로피 디코딩하기 위해 산술 디코더에 의해 사용된다. 패턴 번호를 포함하는 비트는 그 후 각각 해당 자식에 할당된다(0 <i <8의 경우, \Left\lfloor\ div{pn}{2^i}\Right\rfloor\text{mod}2}).
분포 자체의 데이터를 재정렬하지 않고 동일한 치환이 달성될 수 있지만, 오히려 간접 레벨(level of indirection)을 도입하고 분포에서 주어진 인덱스의 룩업(lookup)을 치환하기 위한 치환 함수를 사용함에 유의해야 한다.
대안적인 실시 예는 분포보다는 패턴 자체의 치환을 고려하여, 엔트로피 인코딩/디코딩 전 또는 후에 각각 셔플링을 허용한다. 이러한 방법은 비트 단위 셔플 연산을 통한 효율적인 구현에 보다 적합할 수 있다. 이 경우, 분포의 재정렬은 인코더 또는 디코더에 의해 수행되지 않으며, 패턴 번호의 계산은 pn = \sum_{i=0}^7 2^i c_{f(i)}로 수정되며, 여기서 f(i)는 치환 함수이다. NC = 22의 경우 단일 분포를 사용할 수 있도록 하는 함수 f(i) =({4,7,6,5,0,3,2,1})[i]의 한 가지 예는 NC = 41의 경우에 대하여 사용된다.
요구되는 치환을 도출하는 방법은 이웃 구성의 회전 대칭에 기초할 수 있거나, 특정 축을 따른 반사에 기초할 수 있다. 또한, 치환이 예를 들어 대칭에 따라 모든 위치를 치환시킬 필요는 없고; 부분 치환이 대신 사용될 수 있다. 예를 들어, NC=22에서 NC=41로 치환할 때, 대칭 축의 위치가 치환되지 않을 수 있어서, 매핑 {0,7,2,5,4,3,6,1}을 초래하고, 여기서 위치 0,2,4,6은 치환되지 않는다. 다른 실시 예들에서, 쌍 1 및 7만이 교환(swap)된다.
회전 대칭 및 반사에 기초한 실시 예의 예는 현재 큐브와 공통 면을 공유하는 6 개의 이웃을 갖는 옥트리의 특정 경우에 대해 이하 제공된다. 일반성을 잃지 않고, 도 16에 도시된 바와 같이, Z 축은 도면을 보는 방향에 대해 수직으로 연장된다. "위의(above)"(resp. "아래의(below)")와 같은 이웃의 상대 위치는 증가하는(resp. 감소하는) Z 방향으로 Z 축을 따라 이해되어야 한다. X 축을 따라 왼쪽/오른쪽으로, Y 축을 따라 앞/뒤로 동일한 설명이 적용된다.
도 16은 각각 Z, Y 및 X 축을 따른 3 개의 회전(2102, 2104 및 2106)을 도시한다. 이 3 개의 회전 각도는 90 도이다. 즉, 각 축을 따라 1/4 회전만큼(by a quarter of a turn) 회전을 수행한다.
도 17은 Z 축을 따른 회전(2102)의 한 번 또는 여러 반복 하에서 이웃 구성의 불변성의 클래스를 도시한다. 이 불변성은 XY 평면에 속하는 임의의 방향을 따라 포인트 클라우드 지오메트리의 동일한 통계학적 행동을 나타낸다. 이는 XY 평면에 의해 로컬로 근사된 지구 표면에서 움직이는 자동차의 사용 사례에 특히 해당된다. 수평 구성은 위의 이웃(2202) 및 아래의 이웃(2204)의 점유와 독립적으로 4 개의 이웃(현재 큐브의 왼쪽, 오른쪽, 앞 및 뒤에 위치)의 주어진 점유이다. 4 개의 수평 구성들(2206, 2208, 2210 및 2212)은 회전(2102) 하에서 동일한 불변성 클래스에 속한다. 유사하게, 2 개의 구성들(2214 및 2216)은 동일한 불변성 클래스에 속한다. 회전(2102) 하에서 (클래스 세트(2218)로 그룹화되는) 6 개의 불변성 클래스만이 있다.
수직 구성은 현재 큐브의 왼쪽, 오른쪽, 앞 및 뒤에 위치한 4 개의 이웃의 점유와 무관하게 2 개의 이웃(2202 및 2204)의 주어진 점유이다. 도 18에 도시된 바와 같이 4 개의 가능한 수직 구성이 있다. 결과적으로, Z 축을 따른 회전(2102)에 대한 불변성을 고려하면, 6×4 = 24의 가능한 구성이 존재한다.
Z 축을 따른 반사(2108)는 도 16에 도시되어 있다. 도 18에 도시된 수직 구성(2302 및 2304)은 반사(2108) 하에서 동일한 불변성 클래스에 속한다. 반사(2108) 하에 (클래스 세트(2306) 하에서 그룹화된) 3 개의 불변성 클래스가 존재한다. 반사(2108) 하의 불변성은 상방 및 하방 방향이 포인트 클라우드 지오메트리 통계의 관점에서 본질적으로 동일하게 행동한다는 것을 의미한다. 그것은 도로에서 움직이는 자동차에 대한 정확한 가정이다.
회전(2102) 및 반사(2108) 모두 하에서 불변성을 가정하면, 두 세트(2218 및 2306)의 곱으로 인해 18 개의 불변성 클래스가 존재한다. 이들 18 개의 클래스는 도 19에 도시되어 있다.
2 개의 다른 회전(2104 및 2106) 하에서 추가 불변을 적용하면, 2 개의 구성(2401 및 2402)은 동일한 불변성 클래스에 속한다. 또한, 2 개의 구성(2411 및 2412), 2 개의 구성(2421 및 2422), 3 개의 구성(2431, 2432 및 2433), 2 개의 구성(2441 및 2442), 2 개의 구성(2451 및 2452), 및 최종적으로 2 개의 구성(2461 및 2462)은 동일한 클래스에 속한다. 결과적으로, 3 개의 회전(2102, 2104 및 2106) 및 반사(2108) 하에서의 불변성은 도 20에 도시된 바와 같이 10 개의 불변성 클래스를 초래한다.
3 개의 회전 및 반사 하에서 불변성을 가정하거나 또는 가정하지 않는, 상기 제공된 예로부터, 효과적인 이웃 구성의 수는 64, 24, 18 또는 10이다. 테스트에서, 개선된 압축 성능은 불변성(Z를 따른 회전 및 반사)에 대한 기본 가정이 실제로 잘 충족되어 업데이트할 분포 수가 더 적어서(18 vs. 64) 더 빠른 분포 수렴을 제공하면서 분포 정확도를 저하시키지 않기 때문에 18 개의 구성의 경우에 주목되었다. 그러나, 한 편에 XY 축, 다른 한편에 Z 축이 통계적으로 상이하게 작동하기 때문에 10 개의(vs. 18) 구성의 성능을 무시할 수 없는 수준으로 떨어뜨리는 것을 관찰한다. 10 개의 구성을 가진 설정은 메모리 풋프린트 및/또는 복잡성 제약 조건을 충족시키기 위해 구성 수를 줄여야하는 애플리케이션에서 흥미로울 수 있다.
엔트로피 코딩 이전에, 이웃 구성이 불변성 클래스 중 하나에 속하기 때문에, 패턴은 동일한 변환, 즉 회전 및 반사를 겪는다. 이는 불변 이웃 구성과 코딩된 패턴 사이의 통계적 일관성을 유지한다.
트리의 트래버스 동안, 자식 노드는 이전에 방문했었고, 의존(dependency)으로서 인과적으로 사용될 수 있는 동일한 트리 깊이에서 특정 이웃 노드를 가질 것임을 또한 이해할 것이다. 이러한 동일한 레벨의 이웃의 경우, 부모의 병치된(collocated) 이웃을 찾아보는(consult) 대신, 동일한 레벨의 이웃이 사용될 수 있다. 동일한 레벨의 이웃은 부모의 절반 치수를 가지기 때문에, 4 개(즉, 현재 노드와 면을 공유하는 4 개)의 직접 인접한 이웃하는 자식 노드 중 임의의 것이 점유된 경우, 하나의 구성은 이웃이 점유된 것으로 간주한다.
이제 인코더(1100)의 예시적인 실시 예의 단순화된 블록도를 도시하는 도 14를 참조한다. 인코더(1100)는 프로세서(1102), 메모리(1104) 및 인코딩 애플리케이션(1106)을 포함할 수 있다. 인코딩 애플리케이션(1106)은 메모리(1104)에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있고, 이들은 실행될 때 프로세서(1102)로 하여금 본 명세서에 설명된 것과 같은 동작을 수행하게 하는 명령어들을 포함한다. 예를 들어, 인코딩 애플리케이션(1106)은 본 명세서에 설명된 프로세스에 따라 인코딩된 비트스트림을 인코딩하고 출력할 수 있다. 인코딩 애플리케이션(1106)은 콤팩트 디스크, 플래시 메모리 디바이스, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독 가능 비일시적 매체에 저장될 수 있다는 것이 이해될 것이다. 명령어들이 실행될 때, 프로세서(1102)는 기술된 프로세스(들)를 구현하는 특수 목적 프로세서로서 동작하기 위하여 명령어들에 명시된 동작들 및 기능들을 수행한다. 이러한 프로세서는 일부 예에서 "프로세서 회로(processor circuit)" 또는 "프로세서 회로(processor circuitry)"로 지칭될 수 있다.
이제, 디코더(1200)의 예시적인 실시 예의 단순화된 블록도를 도시하는 도 15를 또한 참조한다. 디코더(1200)는 프로세서(1202), 메모리(1204) 및 디코딩 애플리케이션(1206)을 포함한다. 디코딩 애플리케이션(1206)은 메모리(1104)에 저장된 컴퓨터 프로그램 또는 애플리케이션을 포함할 수 있고, 이들은 실행될 때 프로세서(1202)로 하여금 본 명세서에 설명된 것과 같은 동작을 수행하게 하는 명령어들을 포함한다. 디코딩 애플리케이션(1206)은 컴팩트 디스크, 플래시 메모리 디바이스, 랜덤 액세스 메모리, 하드 드라이브 등과 같은 컴퓨터 판독 가능 매체에 저장될 수 있다는 것이 이해될 것이다. 명령어들이 실행될 때, 프로세서(1202)는 기술된 프로세스(들)를 구현하는 특수 목적 프로세서로서 동작하기 위하여 명령어들에 명시된 동작들 및 기능들을 수행한다. 이러한 프로세서는 일부 예에서 "프로세서 회로(processor circuit)" 또는 "프로세서 회로(processor circuitry)"로 지칭될 수 있다.
본 출원에 따른 디코더 및/또는 인코더는 서버, 적합하게 프로그래밍된 범용 컴퓨터, 머신 비전 시스템 및 모바일 디바이스를 포함하지만 이에 제한되지 않는 다수의 컴퓨팅 디바이스에서 구현될 수 있음을 이해할 것이다. 디코더 또는 인코더는 본 명세서에 설명된 기능들을 수행하도록 프로세서 또는 프로세서들을 구성하기 위한 명령어들을 포함하는 소프트웨어에 의해 구현될 수 있다. 소프트웨어 명령어들은 CD, RAM, ROM, 플래시 메모리 등을 포함하는 임의의 적절한 컴퓨터 판독 가능비일시적 메모리에 저장될 수 있다.
여기에 설명된 디코더 및/또는 인코더 및 인코더 또는 디코더를 구성하기 위한 설명된 방법/프로세스를 구현하는 모듈, 루틴, 프로세스, 스레드 또는 다른 소프트웨어 컴포넌트는 표준 컴퓨터 프로그래밍 기법 및 언어를 사용하여 실현될 수 있음을 이해할 것이다. 본 출원은 특정 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 규칙, 데이터 구조, 기타 그러한 구현 세부 사항으로 제한되지 않는다. 당업자는 설명된 프로세스가 휘발성 또는 비휘발성 메모리에 저장된 컴퓨터 실행 가능 코드의 일부로서, ASIC(application-specific integrated chip) 등의 일부로서 구현될 수 있음을 인식할 것이다.
본 출원은 또한 본 출원에 따른 인코딩 프로세스의 적용을 통해 생성된 데이터를 인코딩하는 컴퓨터 판독 가능 신호를 제공한다.
설명된 실시 예들의 특정 적응 및 수정이 이루어질 수 있다. 그러므로 위에서 논의된 실시 예들은 예시적인 것이며 한정적이 아닌 것으로 고려되어야 한다.

Claims (14)

  1. 압축된 포인트 클라우드 데이터의 비트스트림을 생성하기 위하여 포인트 클라우드를 인코딩하는 컴퓨터 구현 방법으로서, 상기 포인트 클라우드는 부모-자식 관계를 갖는 복수의 노드들을 갖고, 서브-체적들로 재귀적으로 분할(split)되는 체적 공간의 지오메트리를 나타내고, 상기 포인트 클라우드의 포인트들을 포함하는 트리 구조로 정의되며, 상기 방법은,
    트리의 상기 복수의 노드들을 트래버스(traverse)하는 단계; 및
    추가 서브-체적들 - 각각의 추가 서브-체적은 현재 노드의 자식 노드에 대응함 - 로 분할되는 서브-체적과 연관된, 상기 복수의 노드들로부터의 각각의 현재 노드에 대해,
    자식 노드들의 점유 상태에 기초하여, 상기 현재 노드에 대한 점유 패턴을 결정하는 단계;
    상기 현재 노드에 이웃하는 복수의 노드들에 대해 결정된 점유 데이터 - 상기 점유 데이터는 상기 현재 노드의 부모 노드에 대한 점유의 패턴을 포함하고, 상기 현재 노드에 이웃하는 상기 복수의 노드들은 동일한 부모 노드를 공유하는 상기 현재 노드의 형제 노드들을 포함함 -에 기초하여, 복수의 확률 분포들 중에서 확률 분포를 선택하는 단계;
    상기 비트스트림에 대한 인코딩된 데이터를 생성하기 위하여 상기 선택된 확률 분포에 기초하여 상기 점유 패턴을 엔트로피 인코딩하는 단계; 및
    상기 현재 노드에 대한 상기 결정된 점유 패턴에 기초하여 상기 선택된 확률 분포를 업데이트하는 단계
    를 포함하는 것인, 방법.
  2. 재구성된 포인트 클라우드를 생성하기 위하여 압축된 포인트 클라우드 데이터의 비트스트림을 디코딩하는 컴퓨터 구현 방법으로서, 상기 포인트 클라우드는 부모-자식 관계를 갖는 복수의 노드들을 갖고, 서브-체적들로 재귀적으로 분할되는 체적 공간의 지오메트리를 나타내고, 상기 포인트 클라우드의 포인트들을 포함하는 트리 구조로 정의되며, 상기 방법은,
    트리의 상기 복수의 노드들을 트래버스하는 단계; 및
    추가 서브-체적들 - 각각의 추가 서브-체적은 현재 노드의 자식 노드에 대응함 - 로 분할되는 서브-체적과 연관된, 상기 복수의 노드들로부터의 각각의 현재 노드에 대해,
    상기 현재 노드에 이웃하는 복수의 노드들에 대해 결정된 점유 데이터 - 상기 점유 데이터는 상기 현재 노드의 부모 노드에 대한 점유의 패턴을 포함하고, 상기 현재 노드에 이웃하는 상기 복수의 노드들은 동일한 부모 노드를 공유하는 상기 현재 노드의 형제 노드들을 포함함 - 에 기초하여, 복수의 확률 분포들 중에서 확률 분포를 선택하는 단계;
    자식 노드들의 점유를 시그널링하는 상기 현재 노드에 대한 재구성된 점유 패턴을 생성하기 위하여 상기 선택된 확률 분포에 기초하여 상기 비트스트림을 엔트로피 디코딩하는 단계; 및
    상기 재구성된 점유 패턴에 기초하여 상기 선택된 확률 분포를 업데이트하는 단계
    를 포함하는 것인 방법.
  3. 삭제
  4. 제1항 또는 제2항에 있어서, 상기 이웃하는 노드들은 상기 현재 노드와 연관된 상기 서브-체적과 적어도 하나의 면을 공유하는 각각의 서브-체적들과 연관된 노드들인 것인 방법.
  5. 제1항 또는 제2항에 있어서, 상기 이웃하는 노드들은 상기 현재 노드와 연관된 상기 서브-체적과 적어도 하나의 에지를 공유하는 각각의 서브-체적들과 연관된 노드들인 것인 방법.
  6. 제1항 또는 제2항에 있어서, 상기 이웃하는 노드들은 상기 현재 노드와 연관된 상기 서브-체적과 적어도 하나의 정점을 공유하는 각각의 서브-체적들과 연관된 노드들인 것인 방법.
  7. 제1항 또는 제2항에 있어서, 상기 복수의 확률 분포들은 상기 현재 노드에 이웃하는 상기 복수의 노드들의 복수의 점유의 패턴들 각각과 연관된 각각의 분포를 포함하는 것인 방법.
  8. 제7항에 있어서, 상기 각각의 분포들은 완전 점유형(fully occupied), 수평-지향형(horizontally-oriented), 수직-지향형(vertically-oriented) 및 희소 채워짐형(sparsely populated)을 포함하는 점유의 패턴들과 연관된 분포들을 포함하는 것인 방법.
  9. 제1항에 있어서, 상기 현재 노드에 이웃하는 상기 복수의 노드들 중 어느 것도 점유되지 않은 것으로 결정하는 단계, 상기 자식 노드들 중 둘 이상이 점유되었다고 결정하는 단계, 및 상기 자식 노드들 중 둘 이상이 점유되었다고 표시하는 플래그를 인코딩하는 단계를 더 포함하는 방법.
  10. 압축된 포인트 클라우드 데이터의 비트스트림을 생성하기 위하여 포인트 클라우드를 인코딩하는 인코더로서, 상기 포인트 클라우드는 부모-자식 관계를 갖는 복수의 노드들을 갖고, 서브-체적들로 재귀적으로 분할되는 체적 공간의 지오메트리를 나타내고, 상기 포인트 클라우드의 포인트들을 포함하는 트리 구조로 정의되며,
    상기 인코더는,
    프로세서;
    메모리; 및
    실행될 때, 상기 프로세서로 하여금 제1항 또는 제9항에 기재된 방법을 수행하게 하는, 상기 프로세서에 의해 실행 가능한 명령어들을 포함하는 인코딩 애플리케이션
    을 포함하는 것인 포인트 클라우드를 인코딩하는 인코더.
  11. 제2항에 있어서, 상기 현재 노드에 이웃하는 상기 복수의 노드들 중 어느 것도 점유되지 않은 것으로 결정하는 단계, 및 이에 응답하여, 상기 자식 노드들 중 둘 이상이 점유되었다고 표시하는 플래그를 디코딩하는 단계를 더 포함하는 방법.
  12. 재구성된 포인트 클라우드를 생성하기 위하여 압축된 포인트 클라우드 데이터의 비트스트림을 디코딩하는 디코더로서, 상기 포인트 클라우드는 부모-자식 관계를 갖는 복수의 노드들을 갖고, 서브-체적들로 재귀적으로 분할되는 체적 공간의 지오메트리를 나타내고, 상기 포인트 클라우드의 포인트들을 포함하는 트리 구조로 정의되며,
    상기 디코더는,
    프로세서;
    메모리; 및
    실행될 때, 상기 프로세서로 하여금 제2항 또는 제11항에 기재된 방법을 수행하게 하는, 상기 프로세서에 의해 실행 가능한 명령어들을 포함하는 디코딩 애플리케이션
    을 포함하는 것인 압축된 포인트 클라우드 데이터의 비트스트림을 디코딩하는 디코더.
  13. 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항, 제2항, 제9항, 및 제11항 중 어느 한 항에 기재된 방법을 수행하게 하는 프로세서 실행 가능 명령어들을 저장하는 비일시적 프로세서 판독 가능 매체.
  14. 삭제
KR1020207023063A 2018-01-18 2019-01-10 포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스 KR102627394B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18305037.6 2018-01-18
EP18305037.6A EP3514968B1 (en) 2018-01-18 2018-01-18 Methods and devices for entropy coding point clouds
PCT/CA2019/050039 WO2019140510A1 (en) 2018-01-18 2019-01-10 Methods and devices for entropy coding point clouds

Publications (2)

Publication Number Publication Date
KR20200109334A KR20200109334A (ko) 2020-09-22
KR102627394B1 true KR102627394B1 (ko) 2024-01-18

Family

ID=61094362

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207023063A KR102627394B1 (ko) 2018-01-18 2019-01-10 포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스
KR1020217010901A KR20210068041A (ko) 2018-01-18 2019-10-02 포인트 클라우드의 이진 엔트로피 코딩 방법 및 디바이스
KR1020217010900A KR20210068040A (ko) 2018-01-18 2019-10-02 포인트 클라우드의 이진 엔트로피 코딩 방법 및 디바이스

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020217010901A KR20210068041A (ko) 2018-01-18 2019-10-02 포인트 클라우드의 이진 엔트로피 코딩 방법 및 디바이스
KR1020217010900A KR20210068040A (ko) 2018-01-18 2019-10-02 포인트 클라우드의 이진 엔트로피 코딩 방법 및 디바이스

Country Status (6)

Country Link
US (5) US11455749B2 (ko)
EP (6) EP3514968B1 (ko)
KR (3) KR102627394B1 (ko)
CN (3) CN111615792B (ko)
FI (2) FI3514968T3 (ko)
WO (3) WO2019140510A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI3514968T3 (fi) 2018-01-18 2023-05-25 Blackberry Ltd Menetelmiä ja laitteita pistepilvien entropiakoodausta varten
EP3745355A4 (en) * 2018-01-26 2021-03-24 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE AND TRIDIMENSIONAL DATA DECODING DEVICE
JP7348078B2 (ja) * 2018-02-08 2023-09-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2019182102A1 (ja) * 2018-03-23 2019-09-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CA3104630A1 (en) * 2018-06-27 2020-01-02 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
EP3595180B1 (en) * 2018-07-10 2021-12-08 BlackBerry Limited Methods and devices for neighbourhood-based occupancy prediction in point cloud compression
WO2020032004A1 (ja) * 2018-08-06 2020-02-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ格納方法、三次元データ取得方法、三次元データ格納装置、及び三次元データ取得装置
KR102423498B1 (ko) * 2019-08-14 2022-07-22 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN114270832A (zh) 2019-08-14 2022-04-01 Lg电子株式会社 点云数据发送装置、点云数据发送方法、点云数据接收装置和点云数据接收方法
JP2022172413A (ja) * 2019-09-26 2022-11-16 シャープ株式会社 三次元表現変換装置、および、三次元表現逆変換装置
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
US20230042018A1 (en) * 2020-02-12 2023-02-09 Google Llc Multi-context entropy coding for compression of graphs
KR20220157490A (ko) 2020-03-24 2022-11-29 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 인트라 예측 방법, 장치, 인코더, 디코더 및 저장 매체
WO2021207947A1 (en) * 2020-04-14 2021-10-21 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus for processing a point cloud
CN115606188A (zh) * 2020-05-19 2023-01-13 Oppo广东移动通信有限公司(Cn) 一种点云编解码方法、编码器、解码器及存储介质
US11438628B2 (en) * 2020-06-03 2022-09-06 Tencent America LLC Hash-based accessing of geometry occupancy information for point cloud coding
US11615556B2 (en) 2020-06-03 2023-03-28 Tencent America LLC Context modeling of occupancy coding for point cloud coding
JP7337193B2 (ja) * 2020-06-03 2023-09-01 テンセント・アメリカ・エルエルシー ポイントクラウド符号化のための占有符号化のコンテキストモデリング
US20230239501A1 (en) * 2020-06-05 2023-07-27 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20230224506A1 (en) * 2020-06-24 2023-07-13 Beijing Xiaomi Mobile Software Co., Ltd. Method for encoding and decoding, encoder, and decoder
WO2022073156A1 (en) * 2020-10-06 2022-04-14 Beijing Xiaomi Mobile Software Co., Ltd. Method of encoding and decoding, encoder, decoder and software
WO2022109885A1 (zh) * 2020-11-25 2022-06-02 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器以及计算机存储介质
CN117793350A (zh) * 2020-12-14 2024-03-29 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器以及计算机存储介质
US20240046524A1 (en) * 2020-12-23 2024-02-08 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of entropy encoding/decoding point cloud geometry data captured by a spinning sensors head
KR20230131878A (ko) * 2021-01-11 2023-09-14 인터디지탈 패튼 홀딩스, 인크 포인트 클라우드 프로세싱을 위한 장치 및 방법
CN115086716B (zh) * 2021-03-12 2023-09-08 腾讯科技(深圳)有限公司 点云中邻居点的选择方法、装置及编解码器
EP4071717A1 (en) * 2021-04-08 2022-10-12 Beijing Xiaomi Mobile Software Co., Ltd. Method of encoding point cloud geometry data captured by a spinning sensors head
CN113395603B (zh) * 2021-06-25 2022-04-01 合肥工业大学 一种基于模型预测控制的点云视频流自适应传输方法
WO2023287220A1 (ko) * 2021-07-15 2023-01-19 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
CN113676738B (zh) * 2021-08-19 2024-03-29 上海交通大学 一种三维点云的几何编解码方法及装置
CN118176525A (zh) * 2021-10-05 2024-06-11 交互数字Vc控股公司 用于使用混合深度熵译码进行点云压缩的方法和装置
EP4195158A1 (en) * 2021-12-10 2023-06-14 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus of encoding/encoding a series of data
CN116309896A (zh) * 2021-12-20 2023-06-23 华为技术有限公司 数据编解码方法、装置和设备
WO2023133710A1 (zh) * 2022-01-11 2023-07-20 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器和编解码系统
WO2023136627A1 (ko) * 2022-01-12 2023-07-20 엘지전자 주식회사 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 수신 방법 및 포인트 클라우드 데이터 수신 장치
CN114972551A (zh) * 2022-02-11 2022-08-30 北京大学深圳研究生院 一种点云的压缩和解压缩方法
WO2023211255A1 (ko) * 2022-04-28 2023-11-02 인텔렉추얼디스커버리 주식회사 포인트 클라우드 압축 방법 및 장치
EP4345752A1 (en) * 2022-09-28 2024-04-03 Beijing Xiaomi Mobile Software Co., Ltd. Encoding/decoding positions of points of a point cloud comprised in cuboid volumes
CN115951589B (zh) * 2023-03-15 2023-06-06 中科院南京天文仪器有限公司 基于最大化Kozachenko-Leonenko熵的恒星均匀选取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100446635B1 (ko) * 2001-11-27 2004-09-04 삼성전자주식회사 깊이 이미지 기반 3차원 객체 표현 장치 및 방법
US20170347100A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742892A (en) 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
WO2002001881A2 (en) 2000-06-30 2002-01-03 Koninklijke Philips Electronics N.V. Encoding method for the compression of a video sequence
KR100969764B1 (ko) * 2008-02-13 2010-07-13 삼성전자주식회사 메쉬 모델로 구현된 3차원 데이터의 부호화 및 복호화 방법
EP2362658A1 (en) * 2010-02-26 2011-08-31 Research In Motion Limited Encoding and decoding methods and devices employing dual codesets
US8942282B2 (en) * 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
US8761240B2 (en) * 2010-07-13 2014-06-24 Blackberry Limited Methods and devices for data compression using context-based coding order
KR101924249B1 (ko) * 2011-08-25 2018-11-30 톰슨 라이센싱 계위적 엔트로피 인코딩 및 디코딩
US9525876B2 (en) 2011-11-04 2016-12-20 Sharp Kabushiki Kaisha Arithmetic decoding device, image decoding device, arithmetic coding device, image coding device, and arithmetic decoding method
CN104040592A (zh) * 2011-11-07 2014-09-10 汤姆逊许可公司 预测位置编码
JP2015504545A (ja) * 2011-11-07 2015-02-12 トムソン ライセンシングThomson Licensing 予測位置符号化
US20150010056A1 (en) * 2012-01-19 2015-01-08 Samsung Electronics Co., Ltd. Method and apparatus for video encoding capable of parallel entropy encoding of subregions, method and apparatus for video decoding capable of parallel entropy decoding of subregions
SG10201710903VA (en) 2012-04-15 2018-02-27 Samsung Electronics Co Ltd Parameter update method for entropy coding and decoding of conversion coefficient level, and entropy coding device and entropy decoding device of conversion coefficient level using same
JP6826368B2 (ja) 2016-01-14 2021-02-03 キヤノン株式会社 符号化装置及びその制御方法
US20170214943A1 (en) 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms
US10694210B2 (en) * 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
CN106095968A (zh) * 2016-06-20 2016-11-09 山东理工大学 n维海量点云的R树形位多目标结点分裂方法
EP3301914A1 (en) 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding a large field of view video
US10496336B2 (en) * 2016-11-17 2019-12-03 Google Llc K-D tree encoding for point clouds using deviations
CN107403456B (zh) * 2017-07-28 2019-06-18 北京大学深圳研究生院 一种基于kd树和优化图变换的点云属性压缩方法
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
US10607373B2 (en) * 2017-11-22 2020-03-31 Apple Inc. Point cloud compression with closed-loop color conversion
FI3514968T3 (fi) 2018-01-18 2023-05-25 Blackberry Ltd Menetelmiä ja laitteita pistepilvien entropiakoodausta varten
EP3745355A4 (en) 2018-01-26 2021-03-24 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE AND TRIDIMENSIONAL DATA DECODING DEVICE
WO2019182102A1 (ja) * 2018-03-23 2019-09-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
US11010928B2 (en) 2018-04-10 2021-05-18 Apple Inc. Adaptive distance based point cloud compression
EP3809373A4 (en) 2018-06-13 2021-07-28 Panasonic Intellectual Property Corporation of America THREE-DIMENSIONAL DATA ENCODING PROCESS, THREE-DIMENSIONAL DATA DECODING PROCESS, THREE-DIMENSIONAL DATA ENCODING DEVICE AND TRIDIMENSIONAL DATA DECODING DEVICE
WO2019240285A1 (ja) * 2018-06-15 2019-12-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
CA3104630A1 (en) * 2018-06-27 2020-01-02 Panasonic Intellectual Property Corporation Of America Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device
KR102423499B1 (ko) 2020-01-07 2022-07-22 엘지전자 주식회사 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
US11417030B2 (en) * 2020-02-10 2022-08-16 Tencent America LLC Context modeling of occupancy coding for point cloud coding
US11450031B2 (en) * 2020-04-14 2022-09-20 Apple Inc. Significant coefficient flag encoding for point cloud attribute compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100446635B1 (ko) * 2001-11-27 2004-09-04 삼성전자주식회사 깊이 이미지 기반 3차원 객체 표현 장치 및 방법
US20170347100A1 (en) * 2016-05-28 2017-11-30 Microsoft Technology Licensing, Llc Region-adaptive hierarchical transform and entropy coding for point cloud compression, and corresponding decompression

Also Published As

Publication number Publication date
EP3514968A1 (en) 2019-07-24
US20210343046A1 (en) 2021-11-04
US20210350583A1 (en) 2021-11-11
EP3514968B1 (en) 2023-03-08
WO2020070191A1 (en) 2020-04-09
EP4213096A1 (en) 2023-07-19
US20240078714A1 (en) 2024-03-07
FI3514968T3 (fi) 2023-05-25
US20240185474A1 (en) 2024-06-06
CN112789804A (zh) 2021-05-11
WO2019140510A1 (en) 2019-07-25
EP4231241A1 (en) 2023-08-23
EP3514966B1 (en) 2023-04-26
WO2020070192A1 (en) 2020-04-09
FI3514966T3 (fi) 2023-06-28
CN111615792B (zh) 2024-05-28
CN112789803A (zh) 2021-05-11
KR20200109334A (ko) 2020-09-22
JP2022503986A (ja) 2022-01-12
US20220392118A1 (en) 2022-12-08
EP3514967B1 (en) 2021-09-08
US11900641B2 (en) 2024-02-13
EP3514967A1 (en) 2019-07-24
KR20210068041A (ko) 2021-06-08
US11455749B2 (en) 2022-09-27
KR20210068040A (ko) 2021-06-08
US11741638B2 (en) 2023-08-29
CN111615792A (zh) 2020-09-01
US20210004992A1 (en) 2021-01-07
EP3937140A1 (en) 2022-01-12
EP3514966A1 (en) 2019-07-24
JP2022501744A (ja) 2022-01-06

Similar Documents

Publication Publication Date Title
KR102627394B1 (ko) 포인트 클라우드를 엔트로피 코딩하는 방법 및 디바이스
KR102631110B1 (ko) 포인트 클라우드의 이진 엔트로피 코딩을 위한 방법 및 장치
US11361472B2 (en) Methods and devices for neighbourhood-based occupancy prediction in point cloud compression
KR20200108875A (ko) 포인트 클라우드 압축에서 직접 코딩을 사용하는 방법 및 디바이스
JP7507750B2 (ja) 点群のバイナリエントロピコーディングのための方法およびデバイス
JP7504086B2 (ja) 点群のバイナリエントロピコーディングのための方法およびデバイス
US12020460B2 (en) Methods and devices for binary entropy coding of point clouds

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