KR20220113783A - 포인트 클라우드 코딩을 위한 방법 및 장치 - Google Patents

포인트 클라우드 코딩을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220113783A
KR20220113783A KR1020227023936A KR20227023936A KR20220113783A KR 20220113783 A KR20220113783 A KR 20220113783A KR 1020227023936 A KR1020227023936 A KR 1020227023936A KR 20227023936 A KR20227023936 A KR 20227023936A KR 20220113783 A KR20220113783 A KR 20220113783A
Authority
KR
South Korea
Prior art keywords
lcu
geometry
coding
point cloud
coding mode
Prior art date
Application number
KR1020227023936A
Other languages
English (en)
Other versions
KR102650334B1 (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 KR20220113783A publication Critical patent/KR20220113783A/ko
Application granted granted Critical
Publication of KR102650334B1 publication Critical patent/KR102650334B1/ko

Links

Images

Classifications

    • 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
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06K9/62
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 개시내용의 양태에 따르면, 포인트 클라우드 인코더에서의 포인트 클라우드 지오메트리 인코딩의 방법이 제공된다. 이 방법에서는, 제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩이 수행된다. 또한, 포인트 클라우드의 복수의 최대 코딩 유닛(LCU)은 제2 파티션 깊이에서 결정된다. 포인트 클라우드의 복수의 LCU 중의 LCU의 코딩 상태는 제2 파티션 깊이에서 설정된다. 제2 파티션 깊이에서의 LCU의 코딩 상태에 기초하여 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU에 대해 지오메트리 코딩이 수행된다.

Description

포인트 클라우드 코딩을 위한 방법 및 장치
본 출원은 2020년 12월 4일자로 출원된 미국 가출원 제63/121,835호, "UPDATE ON NODE-BASED GEOMETRY AND ATTRIBUTE CODING FOR A POINT CLOUD"에 대한 우선권의 이익을 주장하는, 2021년 9월 3일자로 출원된 미국 특허 출원 제17/466,729호, "METHOD AND APPARATUS FOR POINT CLOUD CODING"에 대한 우선권의 이익을 주장한다. 앞의 출원들의 전체 개시내용들은 그 전체가 참조로서 포함된다.
본 개시내용은 일반적으로 포인트 클라우드에 대한 노드-기반 지오메트리 및 속성 코딩을 포함하는 포인트 클라우드 코딩에 관한 실시예들을 설명한다.
본 명세서에 제공된 배경 설명은 본 개시내용의 맥락을 일반적으로 제시하기 위한 것이다. 본 배경기술 부분에 설명되어 있는 현재 등록된 발명자들의 연구 및 출원 시점에 종래 기술로서 달리 간주되지 않을 수 있는 설명의 양태는 명시적으로도 암시적으로도 본 개시내용에 대한 종래 기술로 인정되지 않는다.
3D(3-dimensional) 공간으로, 세계에 있는 객체들, 세계에 있는 환경들 등과 같은, 세계를 캡처하고 표현하기 위해 다양한 기술들이 개발된다. 세계의 3D 표현들은 상호작용 및 통신의 더 몰입적인 형태들을 가능하게 할 수 있다. 포인트 클라우드들은 세계의 3D 표현으로서 사용될 수 있다. 포인트 클라우드는 3D 공간에서의 포인트들의 세트이고, 각각은 연관된 속성들, 예를 들어, 컬러, 재료 특성들, 텍스처 정보, 강도 속성들, 반사율 속성들, 모션 관련 속성들, 모달리티 속성들, 및/또는 다양한 다른 속성들을 갖는다. 이러한 포인트 클라우드들은 많은 양의 데이터를 포함할 수 있고, 저장 및 송신하는 데 비용이 많이 들고 시간 소모적일 수 있다.
본 개시내용의 양태들은 포인트 클라우드 압축 및 압축해제를 위한 방법들 및 장치들을 제공한다. 본 개시내용의 양태에 따르면, 포인트 클라우드 인코더에서의 포인트 클라우드 지오메트리 인코딩의 방법이 제공된다. 이 방법에서, 제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩이 수행될 수 있다. 또한, 포인트 클라우드의 복수의 최대 코딩 유닛(LCU)은 제2 파티션 깊이에서 결정될 수 있다. 포인트 클라우드의 복수의 LCU 중의 LCU의 코딩 상태는 제2 파티션 깊이에서 설정될 수 있다. 제2 파티션 깊이에서의 LCU의 코딩 상태에 기초하여 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU에 대해 지오메트리 코딩이 수행될 수 있다.
일부 실시예들에서, 지오메트리 코딩은 옥트리-기반 지오메트리 코딩 및 예측 트리-기반 코딩 중 하나를 포함할 수 있다.
실시예에서, LCU의 코딩 상태는 포인트 클라우드의 초기 상태로 설정될 수 있으며, 여기서 포인트 클라우드의 초기 상태는 포인트 클라우드가 지오메트리 코딩에 기초하여 코딩되기 전에 획득될 수 있다.
다른 실시예에서, LCU가 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU 중 제1 LCU일 때, 코딩 상태는 포인트 클라우드가 제1 파티션 깊이에서의 지오메트리 코딩에 기초하여 코딩된 후에 획득되고 저장될 수 있다.
또 다른 실시예에서, LCU가 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU 중 제1 LCU가 아닐 때, LCU의 코딩 상태는 저장된 코딩 상태로 설정될 수 있다. 저장된 코딩 상태는 (i) 포인트 클라우드가 제1 파티션 깊이에서의 지오메트리 코딩에 기초하여 코딩된 후에 획득되거나 또는 (ii) 포인트 클라우드의 복수의 LCU 중 제1 LCU가 제2 파티션 깊이에서의 지오메트리 코딩에 기초하여 코딩되기 전에 저장될 수 있다.
일부 실시예들에서, 코딩 상태는 LCU와 연관된 엔트로피 코딩에 대한 컨텍스트 또는 LCU와 연관된 지오메트리 점유 이력 정보 중 적어도 하나를 포함할 수 있다.
일부 실시예들에서, 복수의 LCU 각각은 제2 파티션 깊이에서 각자의 노드를 포함할 수 있다.
본 개시내용의 다른 양태에 따르면, 포인트 클라우드 인코더에서의 포인트 클라우드 지오메트리 인코딩의 방법이 제공된다. 이 방법에서, 포인트 클라우드의 최대 코딩 유닛(LCU)의 밀도가 결정될 수 있다. LCU의 밀도는 LCU 내의 포인트들의 수와 LCU의 볼륨의 비율일 수 있다. LCU의 지오메트리 코딩 모드는 LCU의 밀도 및 제1 임계값에 기초하여 결정될 수 있다. 지오메트리 코딩 모드 정보는 비트스트림에서 추가로 시그널링될 수 있고, 여기서 지오메트리 코딩 모드 정보는 LCU의 밀도 및 제1 임계값에 기초하는 LCU의 결정된 지오메트리 코딩 모드를 표시할 수 있다.
예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값 이하인 것에 기초하여 예측 트리 지오메트리 코딩이라고 결정될 수 있다. 다른 예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값보다 큰 것에 기초하여 옥트리-기반 지오메트리 코딩이라고 결정될 수 있다.
예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값 이상이고 제2 임계값 이하인 것에 기초하여 예측 트리 지오메트리 코딩이라고 결정될 수 있고, 여기서 제2 임계값은 제1 임계값보다 클 수 있다. 또 다른 예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값보다 작거나 또는 제2 임계값보다 큰 것에 기초하여 옥트리-기반 지오메트리 코딩이라고 결정될 수 있다.
예에서, LCU의 지오메트리 코딩 모드는 (i) LCU의 밀도가 제1 임계값 이상이고 제2 임계값 이하이고, (ii) LCU 내의 포인트들의 수가 포인트 수 임계값 이상인 것에 기초하여 예측 트리 지오메트리 코딩이라고 결정될 수 있다. 다른 예에서, LCU의 지오메트리 코딩 모드는 (i) LCU의 밀도가 제1 임계값보다 작거나 또는 제2 임계값보다 큰 것, 및 (ii) LCU 내의 포인트들의 수가 포인트 수 임계값보다 작은 것 중 하나에 기초하여 옥트리-기반 지오메트리 코딩이라고 결정될 수 있다.
일부 실시예들에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제1 지오메트리 코딩 모드인 것에 기초하여 제1 값으로 시그널링될 수 있다. 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제2 지오메트리 코딩 모드인 것에 기초하여 제2 값으로 시그널링될 수 있다.
이 방법에서, 지오메트리 코딩 모드 정보는 컨텍스트로 엔트로피 코딩될 수 있거나 또는 바이패스 코딩으로 코딩될 수 있다.
실시예에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제1 지오메트리 코딩 모드인 것에 기초하여 제1 값으로 시그널링될 수 있다. 다른 실시예에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제2 지오메트리 코딩 모드인 것에 기초하여 제2 값으로 시그널링될 수 있다. 또 다른 예에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제3 지오메트리 코딩 모드인 것에 기초하여 제3 값으로 시그널링될 수 있다.
일부 실시예들에서, 이진화 정보는 제1 빈에서만 제1 값으로 시그널링될 수 있으며, 여기서 제1 값을 갖는 이진화 정보는 제1 지오메트리 코딩 모드를 표시할 수 있다. 일부 실시예들에서, 이진화 정보는 제1 빈에서 제2 값으로 그리고 후속 제2 빈에서 제1 값으로 시그널링될 수 있으며, 여기서 제1 빈에서 제2 값 및 제2 빈에서 제1 값을 갖는 이진화 정보는 제2 지오메트리 코딩 모드를 표시할 수 있다. 일부 실시예들에서, 이진화 정보는 제1 빈에서 제2 값으로 그리고 제2 빈에서 제2 값으로 시그널링될 수 있으며, 여기서 제1 빈 및 제2 빈에서 제2 값을 갖는 이진화 정보는 제3 지오메트리 코딩 모드를 표시할 수 있다.
일부 실시예들에서, 제1 빈에서의 이진화 정보는 제1 컨텍스트로 엔트로피 코딩될 수 있고, 제2 빈에서의 이진화 정보는 제2 컨텍스트로 엔트로피 코딩될 수 있다.
일부 예들에서, 포인트 클라우드 데이터를 처리하기 위한 장치는 위에 설명된 방법들 중 하나 이상을 수행하도록 구성되는 처리 회로를 포함한다. 예를 들어, 장치는 제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩을 수행하도록 구성된 처리 회로를 포함할 수 있다. 처리 회로는 또한 제2 파티션 깊이에서 포인트 클라우드의 복수의 최대 코딩 유닛(LCU)을 결정하도록 구성될 수 있다. 처리 회로는 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU 중의 LCU의 코딩 상태를 설정하도록 구성될 수 있다. 처리 회로는 제2 파티션 깊이에서의 LCU의 코딩 상태에 기초하여 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU에 대해 지오메트리 코딩을 수행하도록 구성될 수 있다.
다른 예에서, 처리 회로는 포인트 클라우드의 최대 코딩 유닛(LCU)의 밀도를 결정하도록 구성될 수 있다. LCU의 밀도는 LCU 내의 포인트들의 수와 LCU의 볼륨의 비율일 수 있다. 처리 회로는 LCU의 밀도 및 제1 임계값에 기초하여 LCU의 지오메트리 코딩 모드를 결정하도록 구성될 수 있다. 처리 회로는 비트스트림에서 지오메트리 코딩 모드 정보를 시그널링하도록 추가로 구성될 수 있고, 여기서 지오메트리 코딩 모드 정보는 LCU의 밀도 및 제1 임계값에 기초하는 LCU의 결정된 지오메트리 코딩 모드를 표시할 수 있다.
본 개시내용의 또 다른 양태에 따르면, 비일시적 컴퓨터 판독가능 저장 매체가 제공된다. 비일시적 컴퓨터 판독가능 저장 매체는 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 프로세서로 하여금 전술한 방법들 중 하나 이상을 수행하게 하는 명령어들을 저장한다. 예를 들어, 이 방법에서, 제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩이 수행될 수 있다. 또한, 포인트 클라우드의 복수의 최대 코딩 유닛(LCU)은 제2 파티션 깊이에서 결정될 수 있다. 포인트 클라우드의 복수의 LCU 중의 LCU의 코딩 상태는 제2 파티션 깊이에서 설정될 수 있다. 제2 파티션 깊이에서의 LCU의 코딩 상태에 기초하여 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU에 대해 지오메트리 코딩이 수행될 수 있다.
다른 예에서는, 이 방법에서, 포인트 클라우드의 최대 코딩 유닛(LCU)의 밀도가 결정될 수 있다. LCU의 밀도는 LCU 내의 포인트들의 수와 LCU의 볼륨의 비율일 수 있다. LCU의 지오메트리 코딩 모드는 LCU의 밀도 및 제1 임계값에 기초하여 결정될 수 있다. 지오메트리 코딩 모드 정보는 비트스트림에서 추가로 시그널링될 수 있고, 여기서 지오메트리 코딩 모드 정보는 LCU의 밀도 및 제1 임계값에 기초하는 LCU의 결정된 지오메트리 코딩 모드를 표시할 수 있다.
개시된 주제의 추가의 특징들, 본질 및 다양한 이점들이 다음의 상세한 설명 및 첨부 도면들로부터 더 명백할 것이다.
도 1은 실시예에 따른 통신 시스템의 단순화된 블록도의 개략적 예시이고;
도 2는 실시예에 따른 스트리밍 시스템의 단순화된 블록도의 개략적 예시이고;
도 3은 일부 실시예들에 따른, 포인트 클라우드 프레임들을 인코딩하기 위한 인코더의 블록도를 도시하고;
도 4는 일부 실시예들에 따른 포인트 클라우드 프레임들에 대응하는 압축된 비트스트림을 디코딩하기 위한 디코더의 블록도를 도시하고;
도 5는 일부 실시예들에 따른, 포인트 클라우드 프레임들을 인코딩하기 위한 인코더의 블록도를 도시하고;
도 6은 일부 실시예들에 따른 포인트 클라우드 프레임들에 대응하는 압축된 비트스트림을 디코딩하기 위한 디코더의 블록도를 도시하고;
도 7은 본 개시내용의 일부 실시예들에 따른 옥트리 파티션 기법(octree partition technique)에 기초한 큐브의 파티션을 예시하는 도면을 도시한다.
도 8은 본 개시내용의 일부 실시예들에 따른, x-y, x-z, 및 y-z 축들을 따른 쿼드트리 파티션 기법에 기초하여 큐브의 파티션들을 예시하는 도면을 도시한다.
도 9는 본 개시내용의 일부 실시예들에 따른, x, y, 및 z 축들을 따른 바이너리 트리 파티션 기법에 기초하여 큐브의 파티션들을 예시하는 도면을 도시한다.
도 10a는 본 개시내용의 일부 실시예들에 따른 옥트리 파티션 기법에서의 폭-우선 순회 순서(breadth-first traversal order)를 예시하는 도면을 도시한다.
도 10b는 본 개시내용의 일부 실시예들에 따른 옥트리 파티션 기법에서의 깊이-우선 순회 순서(depth-first traversal order)를 예시하는 도면을 도시한다.
도 11은 본 개시내용의 일부 실시예들에 따른 예측 트리-기반 지오메트리 코딩의 개략적 예시이다.
도 12는 일부 실시예들에 따른 리프팅 기반 속성 코딩(lifting based attribute coding)에서의 순방향 변환의 블록도를 도시하고;
도 13은 일부 실시예들에 따른 리프팅 기반 속성 코딩에서의 역방향 변환의 블록도를 도시하고;
도 14a는 본 개시내용의 일부 실시예들에 따른 RAHT(region adaptive hierarchical transform) 기반 속성 코딩에서의 순방향 변환의 도면을 도시한다.
도 14b는 본 개시내용의 일부 실시예들에 따른 RAHT(region adaptive hierarchical transform) 기반 속성 코딩에서의 역방향 변환의 도면을 도시한다.
도 15는 본 개시내용의 일부 실시예들에 따른 옥트리 파티션 및 옥트리 파티션에 대응하는 옥트리 구조의 예를 도시한다.
도 16은 본 개시내용의 일부 실시예들에 따른 노드-기반(LCU-기반) 지오메트리 및 속성 코딩의 도면을 도시한다.
도 17은 본 개시내용의 일부 실시예에 따른 병렬 노드-기반(LCU-기반) 코딩을 약술하는 흐름도를 도시한다.
도 18은 일부 실시예들에 따른 제1 예시적인 디코딩 프로세스를 약술하는 흐름도를 도시한다.
도 19는 일부 실시예들에 따른 제2 예시적인 디코딩 프로세스를 약술하는 흐름도를 도시한다
도 20은 일 실시예에 따른 컴퓨터 시스템의 개략적 예시이다.
포인트 클라우드는 최근 수년간 더 널리 사용되고 있다. 예를 들어, 포인트 클라우드는 객체 검출 및 로컬리제이션(localization)을 위해 자율 주행 차량들(autonomous driving vehicles)에서 이용될 수 있다. 포인트 클라우드는 또한 매핑을 위해 GIS(geographic information systems)에서 사용될 수 있고, 문화 유산 객체 및 수집품 등을 시각화하고 보관하기 위해 문화 유산에 사용될 수 있다.
포인트 클라우드는 통상적으로 3차원(3D)의 고차원 포인트들의 세트를 포함할 수 있다. 각각의 고차원 포인트들은 3D 포지션 정보 및 색상, 반사율 등과 같은 부가의 속성들을 포함할 수 있다. 고차원 포인트들은 다양한 셋업들에서 다수의 카메라 및 깊이 센서들, 또는 Lidar를 사용하여 캡처될 수 있고, 원래의 장면들을 현실적으로 표현하기 위해 수천 내지 수십억 개의 포인트들로 구성될 수 있다.
따라서, 압축 기술들은 더 빠른 송신 또는 저장의 감소를 위해 포인트 클라우드를 표현하도록 요구되는 데이터의 양을 감소시킬 필요가 있다. ISO/IEC MPEG(JTC 1/SC 29/WG 11)은 정적 또는 동적 포인트 클라우드들에 대한 압축 기술들을 표준화하기 위해 애드혹 그룹(ad-hoc group)(MPEG-PCC)을 만들었다. 또한, 중국의 오디오 비디오 코딩 표준 워크그룹은 또한 포인트 클라우드들의 압축을 표준화하기 위해 애드-혹 그룹(AVS-PCC)을 만들었다.
도 1은 본 개시내용의 일 실시예에 따른 통신 시스템(100)의 단순화된 블록도를 예시한다. 통신 시스템(100)은, 예를 들어, 네트워크(150)를 통해, 서로 통신할 수 있는 복수의 단말 디바이스를 포함한다. 예를 들어, 통신 시스템(100)은 네트워크(150)를 통해 상호접속되는 한 쌍의 단말 디바이스들(110 및 120)을 포함한다. 도 1의 예에서, 제1 단말 디바이스 쌍(110 및 120)은 포인트 클라우드 데이터의 단방향 송신을 수행할 수 있다. 예를 들어, 단말 디바이스(110)는 단말 디바이스(110)와 접속된 센서(105)에 의해 캡처되는 포인트 클라우드(예를 들어, 구조를 나타내는 포인트들)를 압축할 수 있다. 압축된 포인트 클라우드는 예를 들어, 비트스트림의 형태로 네트워크(150)를 통해 다른 단말 디바이스(120)에 송신될 수 있다. 단말 디바이스(120)는 네트워크(150)로부터 압축된 포인트 클라우드를 수신하고, 포인트 클라우드를 재구성하기 위해 비트스트림을 압축해제하고, 재구성된 포인트 클라우드를 적절히 디스플레이할 수 있다. 단방향 데이터 송신은 미디어 서빙 응용들(media serving applications) 등에서 일반적일 수 있다.
도 1의 예에서, 단말 디바이스들(110 및 120)은 서버들 및 개인용 컴퓨터들로서 예시될 수 있지만, 본 개시내용의 원리들은 그렇게 제한되지 않을 수 있다. 본 개시내용의 실시예들은 랩톱 컴퓨터들, 태블릿 컴퓨터들, 스마트폰들, 게이밍 단말들, 미디어 플레이어들, 및/또는 전용 3D(three-dimensional) 장비와의 애플리케이션을 발견한다. 네트워크(150)는 단말 디바이스들(110 및 120) 사이에서 압축된 포인트 클라우드를 송신하는 임의의 수의 네트워크들을 표현한다. 네트워크(150)는 예를 들어, 유선(wired) 및/또는 무선 통신 네트워크들을 포함할 수 있다. 네트워크(150)는 회선 교환(circuit-switched) 및/또는 패킷 교환(packet-switched) 채널들에서 데이터를 교환할 수 있다. 대표적인 네트워크들은 원거리통신(telecommunications) 네트워크들, 근거리 통신망들(local area networks), 광역 통신망들(wide area networks) 및/또는 인터넷을 포함한다. 본 논의의 목적을 위해, 네트워크(150)의 아키텍처 및 토폴로지는 아래에서 본 명세서에서 설명되지 않는 한 본 개시내용의 동작에 중요하지 않을 수 있다.
도 2는 실시예에 따른 스트리밍 시스템(200)의 단순화된 블록도를 도시한다. 도 2의 예는 포인트 클라우드에 대한 개시된 주제에 대한 응용이다. 개시된 주제는, 3D 텔레프레즌스 애플리케이션, 가상 현실 애플리케이션 등과 같은, 다른 포인트 클라우드 인에이블형 애플리케이션들에 동등하게 적용가능할 수 있다.
스트리밍 시스템(200)은 캡처 서브시스템(213)을 포함할 수 있다. 캡처 서브시스템(213)은 포인트 클라우드 소스(201), 예를 들어, LIDAR(light detection and ranging) 시스템들, 3D 카메라들, 3D 스캐너들, 예를 들어, 압축되지 않은 포인트 클라우드들(202)을 생성하는 소프트웨어로 압축되지 않은 포인트 클라우드를 생성하는 그래픽 생성 컴포넌트 등을 포함할 수 있다. 일 예에서, 포인트 클라우드들(202)은 3D 카메라들에 의해 캡처되는 포인트들을 포함한다. 포인트 클라우드들(202)은 압축된 포인트 클라우드들(204)(압축된 포인트 클라우드들의 비트스트림)과 비교할 때 많은 데이터 볼륨을 강조하기 위해 굵은 선으로 도시된다. 압축된 포인트 클라우드들(204)은 포인트 클라우드 소스(201)에 결합된 인코더(203)를 포함하는 전자 디바이스(220)에 의해 생성될 수 있다. 인코더(203)는 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 양태들을 가능하게 하거나 구현하기 위해 하드웨어, 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 포인트 클라우드들(202)의 스트림과 비교할 때 더 적은 데이터 볼륨을 강조하기 위해 가는 선으로 도시된 압축된 포인트 클라우드들(204)(또는 압축된 포인트 클라우드들(204)의 비트스트림)은 미래의 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 도 2에서의 클라이언트 서브시스템들(206 및 208)과 같은 하나 이상의 스트리밍 클라이언트 서브시스템은 스트리밍 서버(205)에 액세스하여 압축된 포인트 클라우드(204)의 카피들(207 및 209)을 검색할 수 있다. 클라이언트 서브시스템(206)은, 예를 들어, 전자 디바이스(230) 내에 디코더(210)를 포함할 수 있다. 디코더(210)는 압축된 포인트 클라우드들의 착신 카피(207)를 디코딩하고 렌더링 디바이스(212) 상에 렌더링될 수 있는 재구성된 포인트 클라우드들(211)의 발신 스트림을 생성한다.
전자 디바이스들(220 및 230)은 다른 컴포넌트들(도시되지 않음)을 포함할 수 있다는 점에 유의한다. 예를 들어, 전자 디바이스(220)는 디코더(도시되지 않음)도 포함할 수 있고 전자 디바이스(230)는 인코더(도시되지 않음)도 포함할 수 있다.
일부 스트리밍 시스템들에서, 압축된 포인트 클라우드들(204, 207 및 209)(예를 들어, 압축된 포인트 클라우드들의 비트스트림들)은 특정 표준들에 따라 압축될 수 있다. 일부 예들에서, 비디오 코딩 표준들은 포인트 클라우드들의 압축에 사용된다. 이러한 표준들의 예들은 HEVC(High Efficiency Video Coding), VVC(Versatile Video Coding) 등을 포함한다.
도 3은 일부 실시예들에 따른, 포인트 클라우드 프레임들을 인코딩하기 위한 V-PCC 인코더(300)의 블록도를 도시한다. 일부 실시예들에서, V-PCC 인코더(300)는 통신 시스템(100) 및 스트리밍 시스템(200)에서 사용될 수 있다. 예를 들어, 인코더(203)는 V-PCC 인코더(300)와 유사한 방식으로 구성되고 동작할 수 있다.
V-PCC 인코더(300)는 비압축된 입력들로서 포인트 클라우드 프레임들을 수신하고 압축된 포인트 클라우드 프레임들에 대응하는 비트스트림을 생성한다. 일부 실시예들에서, V-PCC 인코더(300)는 포인트 클라우드 소스(201) 등과 같은 포인트 클라우드 소스로부터 포인트 클라우드 프레임들을 수신할 수 있다.
도 3의 예에서, V-PCC 인코더(300)는 패치 생성 모듈(306), 패치 패킹 모듈(308), 지오메트리 이미지 생성 모듈(310), 텍스처 이미지 생성 모듈(312), 패치 정보 모듈(304), 점유 맵 모듈(314), 평활화 모듈(336), 이미지 패딩 모듈들(316 및 318), 그룹 확장 모듈(320), 비디오 압축 모듈들(322, 323 및 332), 보조 패치 정보 압축 모듈(338), 엔트로피 압축 모듈(334), 및 멀티플렉서(324)를 포함한다.
본 개시내용의 한 양태에 따르면, V-PCC 인코더(300)는, 3D 포인트 클라우드 프레임들을, 압축된 포인트 클라우드를 압축해제된 포인트 클라우드로 다시 변환하기 위해 사용되는 일부 메타 데이터(예를 들어, 점유 맵 및 패치 정보)와 함께 이미지-기반 표현으로 변환한다. 일부 예들에서, V-PCC 인코더(300)는 3D 포인트 클라우드 프레임들을 지오메트리 이미지들, 텍스처 이미지들 및 점유 맵들로 변환한 다음, 비디오 코딩 기법들을 사용하여 지오메트리 이미지들, 텍스처 이미지들 및 점유 맵들을 비트스트림으로 인코딩할 수 있다. 일반적으로, 지오메트리 이미지는 픽셀들에 투영된 포인트들과 연관된 지오메트리 값들로 채워진 픽셀들을 갖는 2D 이미지이고, 지오메트리 값으로 채워진 픽셀은 지오메트리 샘플로서 지칭될 수 있다. 텍스처 이미지는 픽셀들에 투영된 포인트들과 연관된 텍스처 값들로 채워진 픽셀들을 갖는 2D 이미지이고, 텍스처 값으로 채워진 픽셀은 텍스처 샘플로 지칭될 수 있다. 점유 맵은 패치들에 의해 점유되거나 점유되지 않았음을 표시하는 값들로 채워진 픽셀들을 갖는 2D 이미지이다.
패치는 일반적으로 포인트 클라우드에 의해 설명되는 표면의 연속적인 서브세트를 지칭할 수 있다. 일 예에서, 패치는 임계량보다 더 적게 서로로부터 벗어난 표면 법선 벡터들을 갖는 포인트들을 포함한다. 패치 생성 모듈(306)은 포인트 클라우드를, 중첩되거나 또는 그렇지 않을 수 있는, 패치들의 세트로 세그먼트화하여, 각각의 패치가 2D 공간에서의 평면에 대한 깊이 필드에 의해 설명될 수 있다. 일부 실시예들에서, 패치 생성 모듈(306)은 포인트 클라우드를 평활한 경계들을 갖는 최소 수의 패치들로 분해하면서, 또한 재구성 오류를 최소화하는 것을 목표로 한다.
패치 정보 모듈(304)은 패치들의 크기들 및 형상들을 표시하는 패치 정보를 수집할 수 있다. 일부 예들에서, 패치 정보는 이미지 프레임 내에 패킹된 다음 보조 패치 정보 압축 모듈(338)에 의해 인코딩되어 압축된 보조 패치 정보를 생성할 수 있다.
패치 패킹 모듈(308)은 미사용 공간을 최소화하면서 추출된 패치들을 2D(2 dimensional) 그리드 상에 매핑하도록 그리고 그리드의 모든 MxM(예를 들어, 16x16) 블록이 고유 패치와 연관되는 것을 보장하도록 구성된다. 효율적인 패치 패킹은 미사용 공간을 최소화하거나 시간적 일관성을 보장함으로써 압축 효율에 직접 영향을 줄 수 있다.
지오메트리 이미지 생성 모듈(310)은 주어진 패치 위치들에서 포인트 클라우드의 지오메트리와 연관된 2D 지오메트리 이미지들을 생성할 수 있다. 텍스처 이미지 생성 모듈(312)은 주어진 패치 위치들에서 포인트 클라우드의 텍스처와 연관된 2D 텍스처 이미지들을 생성할 수 있다. 지오메트리 이미지 생성 모듈(310) 및 텍스처 이미지 생성 모듈(312)은 패킹 프로세스 동안 계산된 3D 대 2D 매핑을 활용하여 포인트 클라우드의 지오메트리 및 텍스처를 이미지들로서 저장한다. 다수의 포인트가 동일한 샘플에 투영되는 경우를 더 잘 처리하기 위해, 각각의 패치는 레이어들로 지칭되는 2개의 이미지 상에 투영된다. 예에서, 지오메트리 이미지는 YUV420-8bit 포맷으로 WxH의 단색 프레임에 의해 표현된다. 텍스처 이미지를 생성하기 위해, 텍스처 생성 절차는 리-샘플링된(re-sampled) 포인트들과 연관될 컬러들을 계산하기 위해 재구성/평활화된 지오메트리를 활용한다.
점유 맵 모듈(314)은 각각의 유닛에서 패딩 정보를 설명하는 점유 맵을 생성할 수 있다. 예를 들어, 점유 이미지는 그리드의 각각의 셀에 대해 셀이 빈 공간에 속하는지 또는 포인트 클라우드에 속하는지를 표시하는 이진 맵을 포함한다. 일 예에서, 점유 맵은 픽셀이 패딩되었는지 여부를 각각의 픽셀에 대해 설명하는 이진 정보를 사용한다. 다른 예에서, 점유 맵은 픽셀들의 블록이 패딩되는지 여부를 픽셀들의 각각의 블록에 대해 설명하는 이진 정보를 사용한다.
점유 맵 모듈(314)에 의해 생성된 점유 맵은 무손실 코딩 또는 손실 코딩을 사용하여 압축될 수 있다. 무손실 코딩이 사용될 때, 엔트로피 압축 모듈(334)은 점유 맵을 압축하기 위해 사용된다. 손실 코딩이 사용될 때, 비디오 압축 모듈(332)은 점유 맵을 압축하기 위해 사용된다.
패치 패킹 모듈(308)은 이미지 프레임에 패킹된 2D 패치들 사이에 일부 빈 공간들을 남길 수 있다는 점에 유의한다. 이미지 패딩 모듈들(316 및 318)은 2D 비디오 및 이미지 코덱들에 적절할 수 있는 이미지 프레임을 생성하기 위해 빈 공간들(패딩이라고 지칭됨)을 채울 수 있다. 이미지 패딩은 미사용 공간을 중복 정보로 채울 수 있는 배경 채움이라고도 지칭된다. 일부 예들에서, 양호한 배경 채움은 비트 레이트를 최소로 증가시키고 패치 경계들 주위에 상당한 코딩 왜곡을 도입하지 않는다.
비디오 압축 모듈들(322, 323, 및 332)은, HEVC, VVC 등의 적절한 비디오 코딩 표준에 기초하여, 패딩된 지오메트리 이미지들, 패딩된 텍스처 이미지들, 및 점유 맵들 등의 2D 이미지들을 인코딩할 수 있다. 일 예에서, 비디오 압축 모듈들(322, 323, 및 332)은 개별적으로 동작하는 개별 컴포넌트들이다. 비디오 압축 모듈들(322, 323, 및 332)은 다른 예에서 단일 컴포넌트로서 구현될 수 있다는 점에 유의한다.
일부 예들에서, 평활화 모듈(336)은 재구성된 지오메트리 이미지의 평활화된 이미지를 생성하도록 구성된다. 평활화된 이미지는 텍스처 이미지 생성(312)에 제공될 수 있다. 그 다음, 텍스처 이미지 생성(312)은 재구성된 지오메트리 이미지에 기초하여 텍스처 이미지의 생성을 조정할 수 있다. 예를 들어, 패치 형상(예를 들어, 지오메트리)이 인코딩 및 디코딩 동안 약간 왜곡될 때, 패치 형상에서의 왜곡을 보정하기 위해 텍스처 이미지들을 생성할 때 왜곡이 고려될 수 있다.
일부 실시예들에서, 그룹 확장(320)은 재구성된 포인트 클라우드의 시각적 품질뿐만 아니라 코딩 이득을 개선하기 위해 중복 저주파수 콘텐츠로 객체 경계들 주위의 픽셀들을 패딩하도록 구성된다.
멀티플렉서(324)는 압축된 지오메트리 이미지, 압축된 텍스처 이미지, 압축된 점유 맵, 및/또는 압축된 보조 패치 정보를 압축된 비트스트림으로 멀티플렉싱할 수 있다.
도 4는 일부 실시예들에 따른, 포인트 클라우드 프레임들에 대응하는 압축된 비트스트림을 디코딩하기 위한 V-PCC 디코더(400)의 블록도를 도시한다. 일부 실시예들에서, V-PCC 디코더(400)는 통신 시스템(100) 및 스트리밍 시스템(200)에서 사용될 수 있다. 예를 들어, 디코더(210)는 V-PCC 디코더(400)와 유사한 방식으로 동작하도록 구성될 수 있다. V-PCC 디코더(400)는 압축된 비트스트림을 수신하고, 압축된 비트스트림에 기초하여 재구성된 포인트 클라우드를 생성한다.
도 4의 예에서, V-PCC 디코더(400)는 디멀티플렉서(432), 비디오 압축해제 모듈들(434 및 436), 점유 맵 압축해제 모듈(438), 보조 패치 정보 압축해제 모듈(442), 지오메트리 재구성 모듈(444), 평활화 모듈(446), 텍스처 재구성 모듈(448) 및 컬러 평활화 모듈(452)을 포함한다.
디멀티플렉서(432)는 압축된 비트스트림을 수신하고 이를 압축된 텍스처 이미지, 압축된 지오메트리 이미지, 압축된 점유 맵, 및 압축된 보조 패치 정보로 분리할 수 있다.
비디오 압축해제 모듈들(434 및 436)은 적절한 표준(예를 들어, HEVC, VVC 등)에 따라 압축된 이미지들을 디코딩하고 압축해제된 이미지들을 출력할 수 있다. 예를 들어, 비디오 압축해제 모듈(434)은 압축된 텍스처 이미지들을 디코딩하고 압축해제된 텍스처 이미지들을 출력하고; 비디오 압축해제 모듈(436)은 압축된 지오메트리 이미지들을 디코딩하고 압축해제된 지오메트리 이미지들을 출력한다.
점유 맵 압축해제 모듈(438)은 적절한 표준(예를 들어, HEVC, VVC 등)에 따라 압축된 점유 맵들을 디코딩하고 압축해제된 점유 맵들을 출력할 수 있다.
보조 패치 정보 압축해제 모듈(442)은 적절한 표준(예를 들어, HEVC, VVC 등)에 따라 압축된 보조 패치 정보를 디코딩하고 압축해제된 보조 패치 정보를 출력할 수 있다.
지오메트리 재구성 모듈(444)은 압축해제된 지오메트리 이미지들을 수신하고, 압축해제된 점유 맵 및 압축해제된 보조 패치 정보에 기초하여 재구성된 포인트 클라우드 지오메트리를 생성할 수 있다.
평활화 모듈(446)은 패치들의 에지들에서 부조화들을 평활화할 수 있다. 평활화 절차는 압축 아티팩트들로 인해 패치 경계들에서 발생할 수 있는 잠재적인 불연속성들을 완화하는 것을 목표로 한다. 일부 실시예들에서, 평활화 필터는 압축/압축해제에 의해 야기될 수 있는 왜곡들을 완화하기 위해 패치 경계들 상에 위치된 픽셀들에 적용될 수 있다.
텍스처 재구성 모듈(448)은 압축해제된 텍스처 이미지들 및 평활화 지오메트리에 기초하여 포인트 클라우드에서의 포인트들에 대한 텍스처 정보를 결정할 수 있다.
컬러 평활화 모듈(452)은 컬러링의 부조화들을 평활화할 수 있다. 3D 공간 내의 이웃하지 않는 패치들은 종종 2D 비디오들에서 서로 옆에 패킹된다. 일부 예들에서, 비-이웃 패치들로부터의 픽셀 값들은 블록-기반 비디오 코덱에 의해 혼합될 수 있다. 컬러 평활화의 목적은 패치 경계들에서 나타나는 가시적인 아티팩트들을 감소시키는 것이다.
도 5는 일부 실시예들에 따른 G-PPC 인코더(500)의 블록도를 도시한다. 인코더(500)는 포인트 클라우드 데이터를 수신하고 포인트 클라우드 데이터를 압축하여 압축된 포인트 클라우드 데이터를 반송하는 비트 스트림을 생성하도록 구성될 수 있다. 실시예에서, 인코더(500)는 포지션 양자화 모듈(510), 복제된 포인트들 제거 모듈(512), 옥트리 인코딩 모듈(530), 속성 전이 모듈(520), LOD(level of detail) 생성 모듈(540), 속성 예측 모듈(550), 잔차 양자화 모듈(560), 산술 코딩 모듈(570), 역 잔차 양자화 모듈(580), 가산 모듈(581), 및 재구성된 속성 값들을 저장하는 메모리(590)를 포함할 수 있다.
도시된 바와 같이, 입력 포인트 클라우드(501)는 인코더(500)에서 수신될 수 있다. 포인트 클라우드(501)의 포지션들(예를 들어, 3D 좌표)은 양자화 모듈(510)에 제공된다. 양자화 모듈(510)은 좌표들을 양자화하여 양자화된 포지션들을 생성하도록 구성된다. 복제된 포인트들 제거 모듈(512)은 양자화된 포지션들을 수신하고 필터 프로세스를 수행하여 복제된 포인트들을 식별하고 제거하도록 구성된다. 옥트리 인코딩 모듈(530)은 복제 포인트들 제거 모듈(512)로부터 필터링된 포지션들을 수신하도록, 그리고 옥트리-기반 인코딩 프로세스를 수행하여 복셀들(voxels)의 3D 그리드를 설명하는 점유 코드들의 시퀀스를 생성하도록 구성된다. 점유 코드들은 산술 코딩 모듈(570)에 제공된다.
속성 전이 모듈(520)은 입력 포인트 클라우드의 속성들을 수신하고, 다수의 속성 값이 각각의 복셀과 연관될 때 각각의 복셀에 대한 속성 값을 결정하기 위해 속성 전이 프로세스를 수행하도록 구성된다. 속성 전이 프로세스는 옥트리 인코딩 모듈(530)로부터 출력된 재정렬된 포인트들에 대해 수행될 수 있다. 전이 동작들 후의 속성들은 속성 예측 모듈(550)에 제공된다. LOD 생성 모듈(540)은 옥트리 인코딩 모듈(530)로부터 출력된 재정렬된 포인트들에 대해 동작하고, 포인트들을 상이한 LOD들로 재편성하도록 구성된다. LOD 정보는 속성 예측 모듈(550)에 공급된다.
속성 예측 모듈(550)은 LOD 생성 모듈(540)로부터의 LOD 정보에 의해 표시된 LOD-기반 순서에 따라 포인트들을 처리한다. 속성 예측 모듈(550)은 메모리(590)에 저장된 현재 포인트의 이웃 포인트들의 세트의 재구성된 속성들에 기초하여 현재 포인트에 대한 속성 예측을 생성한다. 이어서, 속성 전이 모듈(520)로부터 수신된 원래 속성 값들 및 국부적으로 생성된 속성 예측들에 기초하여 예측 잔차들이 획득될 수 있다. 후보 인덱스들이 각각의 속성 예측 프로세스에서 사용될 때, 선택된 예측 후보에 대응하는 인덱스가 산술 코딩 모듈(570)에 제공될 수 있다.
잔차 양자화 모듈(560)은 속성 예측 모듈(550)로부터 예측 잔차들을 수신하고, 양자화를 수행하여 양자화된 잔차들을 생성하도록 구성된다. 양자화된 잔차들은 산술 코딩 모듈(570)에 제공된다.
역 잔차 양자화 모듈(580)은 잔차 양자화 모듈(560)로부터 양자화된 잔차들을 수신하고, 잔차 양자화 모듈(560)에서 수행된 양자화 동작들의 역을 수행함으로써 재구성된 예측 잔차들을 생성하도록 구성된다. 가산 모듈(581)은 역 잔차 양자화 모듈(580)로부터 재구성된 예측 잔차들을 수신하고, 속성 예측 모듈(550)로부터 각각의 속성 예측들을 수신하도록 구성된다. 재구성된 예측 잔차들과 속성 예측들을 조합함으로써, 재구성된 속성 값들이 생성되고 메모리(590)에 저장된다.
산술 코딩 모듈(570)은, 점유 코드들, 후보 인덱스들(사용된다면), 양자화된 잔차들(생성된다면), 및 기타의 정보를 수신하고, 수신된 값들 또는 정보를 추가로 압축하기 위해 엔트로피 인코딩을 수행하도록 구성된다. 그 결과, 압축된 정보를 반송하는 압축된 비트스트림(502)이 생성될 수 있다. 비트스트림(502)은 압축된 비트스트림을 디코딩하는 디코더에 송신되거나, 다른 방식으로 제공될 수 있거나, 저장 디바이스에 저장될 수 있다.
도 6은 실시예에 따른 G-PCC 디코더(600)의 블록도를 도시한다. 디코더(600)는 압축된 비트스트림을 수신하고 포인트 클라우드 데이터 압축해제를 수행하여 비트스트림을 압축해제하여 디코딩된 포인트 클라우드 데이터를 생성하도록 구성될 수 있다. 실시예에서, 디코더(600)는 산술 디코딩 모듈(610), 역 잔차 양자화 모듈(620), 옥트리 디코딩 모듈(630), LOD 생성 모듈(640), 속성 예측 모듈(650), 및 재구성된 속성 값들을 저장하는 메모리(660)를 포함할 수 있다.
도시된 바와 같이, 압축된 비트스트림(601)은 산술 디코딩 모듈(610)에서 수신될 수 있다. 산술 디코딩 모듈(610)은 압축된 비트스트림(601)을 디코딩하여 포인트 클라우드의 점유 코드들 및 양자화된 잔차들(생성된다면)을 획득하도록 구성된다. 옥트리 디코딩 모듈(630)은 점유 코드들에 따라 포인트 클라우드에서의 포인트들의 재구성된 포지션들을 결정하도록 구성된다. LOD 생성 모듈(640)은 재구성된 포지션들에 기초하여 포인트들을 상이한 LOD들로 재편성하고, LOD-기반 순서를 결정하도록 구성된다. 역 잔차 양자화 모듈(620)은 산술 디코딩 모듈(610)로부터 수신된 양자화된 잔차들에 기초하여 재구성된 잔차들을 생성하도록 구성된다.
속성 예측 모듈(650)은 속성 예측 프로세스를 수행하여 LOD-기반 순서에 따라 포인트들에 대한 속성 예측들을 결정하도록 구성된다. 예를 들어, 현재 포인트의 속성 예측은 메모리(660)에 저장된 현재 포인트의 이웃 포인트들의 재구성된 속성 값들에 기초하여 결정될 수 있다. 일부 예들에서, 속성 예측은 현재 포인트에 대한 재구성된 속성을 생성하기 위해 각각의 재구성된 잔차와 결합될 수 있다.
옥트리 디코딩 모듈(630)로부터 생성된 재구성된 포지션들과 함께 속성 예측 모듈(650)로부터 생성된 재구성된 속성들의 시퀀스는 일 예에서 디코더(600)로부터 출력되는 디코딩된 포인트 클라우드(602)에 대응한다. 또한, 재구성된 속성들은 또한 메모리(660)에 저장되고, 후속 포인트들에 대한 속성 예측들을 도출하기 위해 후속하여 사용될 수 있다.
다양한 실시예들에서, 인코더(300), 디코더(400), 인코더(500), 및/또는 디코더(600)는 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 인코더(300), 디코더(400), 인코더(500), 및/또는 디코더(600)는, ASIC(application specific integrated circuit), FPGA(field programmable gate array) 등과 같은, 소프트웨어와 함께 또는 소프트웨어 없이 동작하는 하나 이상의 IC(integrated circuits) 등과 같은, 처리 회로로 구현될 수 있다. 다른 예에서, 인코더(300), 디코더(400), 인코더(500), 및/또는 디코더(600)는 비휘발성(또는 비일시적) 컴퓨터 판독가능 저장 매체에 저장된 명령어들을 포함하는 소프트웨어 또는 펌웨어로서 구현될 수 있다. 명령어들은, 하나 이상의 프로세서와 같은 처리 회로에 의해 실행될 때, 처리 회로로 하여금 인코더(300), 디코더(400), 인코더(500), 및/또는 디코더(600)의 기능들을 수행하게 한다.
본 명세서에 개시된 속성 예측 기법들을 구현하도록 구성된 속성 예측 모듈들(550 및 650)은 도 5 및 도 6에 도시된 것과 유사하거나 상이한 구조들을 가질 수 있는 다른 디코더들 또는 인코더들에 포함될 수 있다는 점에 유의한다. 또한, 인코더(500) 및 디코더(600)는 다양한 예들에서 동일한 디바이스 또는 별개의 디바이스들에 포함될 수 있다.
MPEG 지오메트리-기반 포인트 클라우드 코딩(G-PCC) 소프트웨어 테스트 모델, 즉, TMC13에서, 컬러 또는 반사율 등의 포인트 클라우드의 지오메트리 정보 및 연관된 속성들은 별개로 압축될 수 있다. 포인트 클라우드의 3D 좌표인 지오메트리 정보는, 포인트 클라우드들의 점유 정보를 갖는 옥트리-파티션, 쿼드트리-파티션, 및 바이너리 파티션에 의해 코딩될 수 있다. 지오메트리 정보가 코딩된 후에, 포인트 클라우드들의 속성들은 예측, 리프팅, 및 영역 적응적 계층적 변환 기법들을 사용하여 재구성된 지오메트리에 기초하여 압축될 수 있다. 지오메트리 코딩의 경우, 2개의 접근법이 적용될 수 있다. 첫 번째 접근법은 옥트리-기반 접근법(또는 옥트리-기반 지오메트리 코딩)일 수 있고, 두 번째 접근법은 예측 트리-기반 접근법(또는 예측 트리-기반 지오메트리 코딩)일 수 있다.
옥트리-기반 지오메트리 코딩에서, 포인트 클라우드는 옥트리, 쿼드트리, 또는 바이너리 파티션에 의해 파티셔닝될 수 있고, 이는 다음과 같이 설명될 수 있다.
포인트 클라우드의 경우, 포인트 클라우드의 경계 박스 B는 모든 방향에서 동일한 크기를 갖도록 제한되지 않을 수 있다. 대신에, 경계 박스 B는 3D 장면들 또는 객체들의 형상에 더 잘 맞도록 임의의 크기의 직사각형 직육면체일 수 있다. 예에서, 경계 박스 B의 크기는
Figure pct00001
과 같은 2의 거듭제곱으로 표현될 수 있다.
Figure pct00002
는 동일하지 않을 수 있다는 점에 유의한다,
경계 박스 B를 파티셔닝하기 위해, 옥트리 파티션, 쿼드트리 파티션, 또는 바이너리 파티션이 이용될 수 있다. 도 7은 경계 박스(700)를 파티셔닝하기 위한 옥트리-파티션을 도시하고, 여기서 경계 박스(700)의 x, y, 및 z 차원들은 절반으로 분할될 수 있고, 그 결과 8개의 서브-박스는 동일한 크기를 가질 수 있다. 도 8은 경계 박스를 파티셔닝하기 위한 쿼드트리-파티션을 도시하고, 여기서 x, y, 및 z 차원들과 같은, 경계 박스의 3차원 중 2개가 절반으로 분할될 수 있고, 그 결과 4개의 서브-박스가 동일한 크기를 가질 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 경계 박스(801)는 x-y 축을 따라 4개의 서브-박스로 파티셔닝될 수 있고, 경계 박스(802)는 x-z 축을 따라 4개의 서브-박스로 파티셔닝될 수 있고, 경계 박스(803)는 y-z 축을 따라 4개의 서브-박스로 파티셔닝될 수 있다.
도 9는 경계 박스를 파티셔닝하는 바이너리-트리 파티션을 도시하고, 여기서 3차원(예를 들어, x, y, 및 z 차원) 중 하나만이 절반으로 분할될 수 있고, 그 결과 2개의 서브-박스가 동일한 크기를 가질 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 경계 박스(901)는 x축을 따라 2개의 서브-박스로 파티셔닝될 수 있고, 경계 박스(902)는 y축을 따라 2개의 서브-박스로 파티셔닝될 수 있고, 경계 박스(903)는 z축을 따라 2개의 서브-박스로 파티셔닝될 수 있다.
따라서, 포인트 클라우드는 옥트리 파티션, 쿼드트리 파티션, 및 바이너리 트리 파티션을 각각 갖는 일반적인 트리 구조에 의해 표현될 수 있다. 이러한 트리를 트래버스하기 위해, 폭-우선 접근법이 MPEG TMC13 모델에서 채택될 수 있다. 한편, 도 10a 및 도 10b에 예시될 수 있는 깊이-우선 접근법이 또한 이용될 수 있다.
도 10a 및 도 10b에서, 음영 처리된 원은 트리에서의 점유된 노드를 나타내는 반면, 빈 원은 점유되지 않은 노드를 나타낸다. 원 안의 숫자는 순회 순서를 나타낸다. 도 10a는 노드들이 깊이 0부터 시작하여 깊이 1, 2 등이 뒤따라서 방문/처리되는 폭-우선 순회 순서를 도시한다. 도 10b는 노드들이 루트 노드(예를 들어, 노드 0)로부터 시작하여, 루트 노드의 첫 번째 점유된 자식 노드(예를 들어, 노드 1)가 뒤따르고, 그 다음, 루트 노드의 첫 번째 점유된 자식 노드의 점유된 자식 노드들(예를 들어, 노드들 3, 4 및 5)까지, 리프 노드들에 도달할 때까지, 방문/처리되는 깊이-우선 순회 순서를 도시한다. 그 다음, 방문/처리는, 루트 노드의 두번째 점유된 자식 노드(예를 들어, 노드 2)로부터 시작하여, 그 다음, 루트 노드의 두번째 점유된 자식 노드의 점유된 자식 노드들(예를 들어, 노드들 6, 7, 및 8)까지, 리프 노드들에 도달할 때까지이다.
예측 트리-기반 지오메트리 코딩에서, 포인트 클라우드에서의 모든 포인트에 걸친 스패닝 트리와 같은 예측 트리가 구성될 수 있다. 포인트의 예측을 위해, 포인트의 모든 조상이 사용될 수 있다. 예를 들어, 포인트의 포지션은 그의 부모 포인트의 포지션으로부터, 또는 그의 부모 및 그의 조부모 포인트의 포지션들로부터 예측될 수 있다. 도 11은 토끼의 표면을 제시하는 포인트 클라우드 내의 모든 포인트에 걸쳐 있는 예측 트리(1100)를 도시하고, 여기서 확대된 블록(1102)은 예측 트리의 일부를 도시한다.
트리수프(trisoup) 기반 지오메트리 코딩은 물체 표면을 일련의 삼각형 메시로서 나타낼 수 있는 다른 지오메트리 코딩 접근법이다. 트리수프 기반 지오메트리 코딩은 조밀한 표면 포인트 클라우드에 적용가능할 수 있다. 트리수프 디코더는 재구성된 포인트 클라우드의 밀도가 보장될 수 있도록 특정된 복셀 입도로 메시 표면으로부터 포인트 클라우드를 생성할 수 있다. 일반적으로, 트리수프 기반 지오메트리 코딩은 감소된 비트스트림 크기의 이점으로 원래의 포인트 클라우드에 왜곡을 도입할 수 있다.
포인트 클라우드에 대한 예측 기반 속성 코딩은 다음과 같이 설명될 수 있다. 단순성을 위해, 예측 기반 속성 코딩에서 하나의 LoD(level of detail)가 가정될 수 있다.
(Pi)i=1...N을 포인트 클라우드의 포인트들과 연관된 포지션들의 세트라고 하고 (Mi)i=1...N을 (Pi)i=1...N과 연관된 모턴 코드(Morton code)들이라고 하자. 먼저, 포인트들은 포인트들의 관련 모턴 코드들에 따라 오름차순으로 정렬될 수 있다. I를 오름차순에 따라 순서화된 포인트 인덱스들의 어레이라고 하자. 인코더/디코더는 I에 의해 정의된 순서에 따라 포인트들을 각각 압축/압축해제할 수 있다. 각각의 반복 i에서, 포인트 Pi가 선택될 수 있다. Pi에서 s(예를 들어, s=64)개의 이전 포인트들까지의 거리들이 분석될 수 있고, Pi의 k(예를 들어, k=3)개의 가장 가까운 이웃들이 예측을 위해 사용되도록 선택될 수 있다. 보다 정확하게는, 속성 값들 (ai)i∈1...N은 포인트 i의 가장 가까운 이웃들의 거리들에 기초하여 선형 보간 프로세스를 사용함으로써 예측될 수 있다.
Figure pct00003
가 현재 포인트 i의 k-최근접 이웃들의 세트라고 하고,
Figure pct00004
가 k-최근접 이웃들의 세트의 디코딩된/재구성된 속성 값들이라고 하고,
Figure pct00005
가 현재 포인트 i에 대한 k-최근접 이웃들의 세트의 거리들이라고 하자. 예측된 속성 값
Figure pct00006
는 다음과 같이 수학식 (1)에 의해 주어질 수 있다:
Figure pct00007
수학식 (1)
리프팅 기반 속성 코딩은 예측 기반 속성 코딩에 따라 구축될 수 있다. 예측 기반 속성 코딩과 비교하여, 리프팅 기반 속성 코딩에는 (a) 갱신 연산자의 도입; 및 (b) 적응적 양자화 전략의 사용의 2개의 추가 단계가 도입된다.
예시를 위해, 리프팅 기반 속성 코딩의 연산은 도 12 및 도 13에 도시될 수 있다. 도 12는 리프팅 기반 속성 코딩에서의 순방향 변환(1200)의 블록도를 도시하고, 도 13은 리프팅 기반 속성 코딩에서의 역방향 변환(1300)의 블록도를 도시한다.
도 12에 도시한 바와 같이, 레벨 N의 속성 신호는 하이-패스 신호 H(N)와 로우-패스 신호 L(N)로 분할될 수 있다. L(N)은 예측 프로세스(1202)에 기초하여 예측 신호 P(N)를 생성할 수 있다. 차이 신호 D(N)는 H(N)와 L(N) 사이의 차이에 기초하여 생성될 수 있다. 차이 신호 D(N)는 갱신된 신호 U(N)를 생성하도록 추가로 갱신될 수 있다. U(N)와 L(N)의 합은 갱신된 로우-패스 신호 L'(N)을 생성할 수 있다. L'(N)은 후속 레벨(N-1)에서 하이-패스 신호 H(N-1)와 로우-패스 신호 L(N-1)로 추가로 분할될 수 있다. L(N-1)은 레벨 N-1에서 예측 신호 P(N-1)를 생성할 수 있다. 레벨 N-1에서의 차이 신호 D(N-1)는 H(N-1)와 L(N-1) 사이의 차이에 기초하여 생성될 수 있다. 차이 신호 D(N-1)는 레벨 N-1에서 갱신된 신호 U(N-1)를 생성하도록 추가로 갱신될 수 있다. U(N-1)와 L(N-1)의 합은 레벨 N-1에서 갱신된 로우-패스 신호 L'(N-1)을 생성할 수 있다.
갱신된 로우-패스 신호 L'(N-1)는 D(N-2)와 L'(N-2)로 추가로 분해될 수 있다. 분할 단계는 기본 계층의 갱신된 로우-패스 신호 L'(0)이 획득될 때까지 반복적으로 적용될 수 있다.
도 13에서, 리프팅 기반 속성 코딩의 역방향 변환(1300)이 제공된다. 도 13에 도시된 바와 같이, 레벨 0에서의 로우-패스 신호 L(0)은 갱신된 로우-패스 신호 L'(0)과 갱신된 신호 U(0)의 차이에 기초하여 생성될 수 있다. 갱신된 신호 U(0)는 차이 신호 D(0)를 갱신함으로써 획득된다. L(0)은 예측 프로세스(1302)에 기초하여 예측 신호 P(0)를 추가로 생성할 수 있다. P(0)에는 D(0)가 추가로 가산되어 하이-패스 신호 H(0)가 생성된다. H(0) 및 L(0)은 병합되어 레벨 1에서 갱신된 로우-패스 L'(1)을 생성할 수 있다. 병합 단계는 하이-패스 신호 H(N) 및 로우-패스 신호 L(N)이 레벨 N에서 생성될 때까지 반복적으로 적용될 수 있다. H(N) 및 L(N)은 추가로 병합되어 재구성된 속성 신호를 형성할 수 있다.
도 14a는 RAHT 기반 속성 코딩을 위한 순방향 변환(1400A)을 예시하고, 도 14b는 RAHT 기반 속성 코딩을 위한 역방향 변환(1400B)을 예시한다. 도 14a 및 도 14b에서,
Figure pct00008
Figure pct00009
이고, w0는 입력 계수 Fl+1,2n의 가중치의 표기이고, w1은 입력 계수 Fl+1,2n+1의 가중치의 표기이다.
포인트 클라우드에 대한 노드 기반 지오메트리 및 속성 코딩은 트리-기반 지오메트리 및 속성 코딩일 수 있고, 여기서 포인트 클라우드는 옥트리 파티션뿐만 아니라 쿼드-트리 및 바이너리 트리 파티션들을 포함하는 일반적인 트리 구조로서 표현된다. 트리의 루트는 포인트 클라우드의 전체 볼륨을 포함하는 반면, 트리의 중간 노드들은 포인트 클라우드의 서브-볼륨들(또는 서브-트리들)을 포함한다.
단순성 및 명료성을 위해, 다음의 표기법들이 노드 기반 지오메트리 및 속성 코딩에 적용될 수 있다: (a) 루트 노드는 트리의 깊이 0에 있을 수 있고; (b) 파티션의 하나의 레벨 후에, 결과적인 노드들은 트리의 깊이 1에 있고; (c) 파티션의 k개의 레벨 후에, 3차원 모두에서의 노드들의 크기가 1인 것과 같이, 모든 노드가 단위 노드일 때까지, 결과적인 노드들은 트리의 깊이 k에 있다.
도 15는 본 개시내용의 일부 실시예들에 따른 옥트리 파티션(1510) 및 옥트리 파티션(1510)에 대응하는 옥트리 구조(1520)의 예를 도시한다. 도 15는 옥트리 파티션(1510) 내의 파티션들의 2개의 레벨을 도시한다. 옥트리 구조(1520)는 옥트리 파티션(1510)을 위한 큐빅 박스에 대응하는 노드(N0)를 포함한다. 제1 레벨에서, 큐빅 박스는 도 7에 도시된 넘버링 기법에 따라 0-7로 넘버링된 8개의 서브 큐빅 박스로 파티셔닝된다. 노드 N0의 파티션에 대한 점유 코드는 이진수로 "10000001"이고, 이는 노드 N0-0에 의해 표현되는 제1 서브 큐빅 박스 및 노드 N0-7에 의해 표현되는 제8 서브 큐빅 박스가 포인트 클라우드에서의 포인트들을 포함하고 다른 서브 큐빅 박스들이 비어 있음을 표시한다.
그 후, 파티션의 제2 레벨에서, 제1 서브 큐빅 박스(노드 N0-0으로 표현됨) 및 제8 서브 큐빅 박스(노드 N0-7로 표현됨)는 8개의 옥턴트로 각각 추가로 세분된다. 예를 들어, 제1 서브 큐빅 박스(노드 N0-0으로 표현됨)는 도 7에 도시된 넘버링 기법에 따라 0-7로 넘버링된 8개의 더 작은 서브 큐빅 박스로 파티셔닝된다. 노드 N0-0의 파티션에 대한 점유 코드는 이진수 "00011000"이며, 이는 제4 더 작은 서브 큐빅 박스(노드 N0-0-3으로 표현됨) 및 제5 더 작은 서브 큐빅 박스(노드 N0-0-4로 표현됨)가 포인트 클라우드에서의 포인트들을 포함하고 다른 더 작은 서브 큐빅 박스들이 비어 있음을 표시한다. 제2 레벨에서, 제7 서브 큐빅 박스(노드 N0-7로 표현됨)는 도 15에 도시된 바와 같이 8개의 더 작은 서브 큐빅 박스로 유사하게 파티셔닝된다.
본 개시내용에서, 지오메트리 코딩이 완료된 후에 속성들을 코딩하는 것 대신에, 포인트 클라우드의 지오메트리는 먼저 깊이 k에 도달할 때까지 인코딩될 수 있고, 여기서 k는 인코더에 의해 특정되어 비트스트림에서 송신될 수 있다. 포인트 클라우드의 서브-볼륨(또는 서브트리)으로서 볼 수 있는 깊이 k에서 각각의 점유된 노드에 대해, 지오메트리 정보는 노드(서브트리) 내의 모든 포인트에 대해 먼저 인코딩되고, 노드 내의 모든 포인트의 속성 코딩이 후속될 수 있다. 다른 실시예에서, 노드(서브트리) 내의 모든 포인트에 대한 지오메트리 코딩 및 속성 코딩은 인터리빙 방식으로 인코딩될 수 있다. 어느 접근법에서든, 깊이 k에서의 노드들(서브트리)은 최상위 레벨 코딩 유닛으로서 취급될 수 있다. 이러한 개념은 HEVC 비디오 코딩 표준에서 사용되는 LCU와 유사할 수 있다. 포인트 클라우드 코딩 개념에서, 깊이 k에 있는 각각의 노드는 별개의 트리를 형성할 수 있고, 도 16에 도시될 수 있는 LCU로 볼 수 있다.
도 16에 도시된 바와 같이, 깊이 k=0에 있는 루트 노드는 쿼드트리 파티션에 의해 깊이 k=1에 있는 4개의 노드로 파티셔닝될 수 있고, 여기서 깊이 k=1에 있는 4개의 노드 중 2개의 노드(예를 들어, 노드 "1" 및 노드 "6")가 점유된 노드일 수 있다. 깊이 k=1에서 2개의 점유된 노드는, 각각 깊이 k=2 및 깊이 k=3 등의 후속 깊이에서 추가로 파티셔닝되고, 각각 별개의 트리를 형성할 수 있다. 따라서, 깊이 k=1에서 점유된 노드들 각각은 개별 LCU로서 취급될 수 있다. 예를 들어, 깊이 k=1에서의 노드 "1"은 제1 LCU(1602)로서 취급될 수 있고, 깊이 k=1에서의 노드 "6"은 제2 LCU(1604)로서 취급될 수 있다. 단순성 및 명료성을 위해, 깊이 k에서의 노드는 LCU라고 할 수 있다. 따라서, 노드 및 LCU는 본 개시내용에 적용되는 상호교환가능한 용어들일 수 있다.
각각의 노드의 지오메트리 및 속성 둘 다에 대해 생성된 비트스트림은 전체 포인트 클라우드의 지오메트리 코딩의 완료를 기다리지 않고 송신될 수 있다. 한편, 디코더는 전체 포인트 클라우드의 지오메트리의 디코딩의 완료를 기다리지 않고 노드의 모든 포인트를 디코딩하고 노드의 모든 포인트를 디스플레이할 수 있다. 이러한 방식으로, 낮은 레이턴시 인코딩 및 디코딩이 달성될 수 있다.
일 실시예에서, 깊이 k(또는 LCU)에서 점유된 노드들은 모턴 순서로 코딩될 수 있다. 다른 실시예에서, 깊이 k에서 점유된 노드들은 모턴 코드(또는 모턴 순서) 이외의 다른 공간-채움 순서들로 코딩될 수 있다.
LCU의 지오메트리 정보 및 속성 정보의 코딩은 LCU의 이웃들의 정보에 의존할 수 있다. 일 실시예에서, LCU의 지오메트리 정보 및 속성 정보의 코딩은 LCU의 이웃하는 LCU들의 정보에 의존하지 않을 수 있다. 따라서, LCU 경계들에 걸친 예측들/참조들이 디스에이블될 수 있고, 컨텍스트 및 이력 정보가 각각의 LCU에 대해서도 재초기화될 필요가 있을 수 있다. 따라서, 최대 병렬성은 LCU 레벨 병렬 인코딩 및 디코딩과 같은 깊이 k에서 인에이블될 수 있다.
다른 실시예에서, LCU의 지오메트리 정보 및 속성 정보의 코딩은 LCU의 이미 코딩된 이웃 노드들 및 이미 코딩된 이웃 노드들의 코딩된 자식 노드들의 정보에 의존할 수 있다. 따라서, 더 양호한 압축 효율이 얻어질 수 있다.
본 개시내용에서, 병렬 노드-기반 코딩 및 각각의 노드 레벨에서 지오메트리 코딩 모드를 결정하는 방법을 비롯한 노드 기반 지오메트리 코딩에 대한 갱신이 제공된다.
앞서 언급한 바와 같이, 병렬 노드 기반(또는 LCU 기반) 코딩을 달성하기 위해, LCU의 지오메트리 정보 및 속성 정보의 코딩이 LCU의 이웃하는 LCU들의 정보에 의존하지 않을 수 있다. 따라서, LCU 경계들에 걸친 예측들/참조들은 디스에이블될 수 있고, 컨텍스트 및 이력 정보는 각각의 LCU에 대해서도 재초기화될 필요가 있을 수 있다.
본 개시내용의 일 실시예에서, 각각의 LCU에서, 엔트로피 코딩을 위한 컨텍스트 및 지오메트리 점유 이력 정보와 같은 코딩 상태, 및/또는 LCU 기반 코딩(또는 노드 기반 코딩)의 다른 필요한 상태 정보는 포인트 클라우드의 코딩이 시작할 때의 상태일 수 있는 초기 상태로서 설정될 수 있다.
다른 실시예에서, 초기 상태를 사용하는 대신에, 옥트리 깊이 k-1에서의 포인트 클라우드의 인코딩이 완료될 때와 같이, 엔트로피 코딩을 위한 컨텍스트 및 지오메트리 점유 이력 정보 등과 같은 코딩 상태가 옥트리 깊이 K에서의 제1 LCU에 도달하기 직전에 저장될 수 있으며, 여기서 옥트리 깊이 k에서의 노드들은 LCU들로서 취급될 수 있다. 옥트리 깊이 k에서 LCU들의 각각의 LCU를 인코딩할 때, 코딩 상태는 위에서 언급된 저장된 인코딩 상태(또는 저장된 코딩 상태)로 설정될 수 있다. 이러한 방식으로, 병렬 노드 기반(또는 LCU 기반) 코딩이 달성될 수 있다. 또한, 저장된 코딩 상태는 코딩 프로세스가 시작되기 전에 획득되는 초기 코딩 상태에 비해 코딩 성능을 개선하는 것을 도울 수 있다.
도 17은 저장된 코딩 상태를 사용하는 예시적인 병렬 노드 기반(LCU 기반) 코딩을 예시하는 흐름도를 도시한다. 도 17에서, N개의 LCU(노드)가 옥트리 깊이 k에서 제공될 수 있고, 여기서 N은 양의 정수이다. 관련된 예들과 비교하여, 옥트리 깊이 k에서 N개의 LCU 중 임의의 것을 인코딩하기 전에 코딩 상태가 저장될 수 있다. 옥트리 깊이 k에서의 LCU의 코딩의 시작에서, 코드 상태는 저장된 상태를 사용하여 복원되거나 설정될 수 있다.
도 17에 도시된 바와 같이, 노드-기반 코딩 프로세스(1700)(또는 프로세스(1700))는 포인트 클라우드가 옥트리 깊이 k-1에서 인코딩될 수 있는 (S1710)으로 시작할 수 있다. 프로세스(1700)는 이어서 옥트리 깊이 K에서 (S1720)로 진행할 수 있고, 여기서 복수의 LCU가 옥트리 깊이 k에서 결정될 수 있다. 일부 실시예들에서, 복수의 LCU는 예를 들어, 모턴 순서 또는 다른 공간-채움 순서들에 기초하여 추가로 정렬될 수 있다. 옥트리 깊이 k에서의 복수의 LCU의 수는 양의 정수 N일 수 있다. 또한, 옥트리 깊이 K에서 복수의 LCU의 정렬된 순서들을 표시하는 인덱스 i가 적용될 수 있다. 인덱스 i는 0 내지 N-1의 범위에 있을 수 있다. (S1720)에서, 인덱스 i는 옥트리 깊이 k에서의 복수의 LCU 중 제1 LCU를 표시하는 0으로 설정될 수 있다.
(S1730)에서, 인덱스 i가 N보다 작은지를 결정하기 위해 제1 결정 프로세스가 이루어질 수 있다. 인덱스 i가 N 이상인 것으로 결정된 것에 응답하여, 프로세스(1700)는 옥트리 깊이 k에 있는 모든 LCU가 코딩된다는 것을 표시하는 (S1790)으로 진행할 수 있고, 프로세스(1700)가 완료된다. 인덱스 i가 N보다 작은 것으로 결정되는 것에 응답하여, 프로세스(1700)는 (S1740)으로 진행할 수 있고, 여기서 인덱스 i가 0인지를 결정하기 위해 제2 결정 프로세스가 이루어질 수 있다. 인덱스 i가 0일 때, 이는 복수의 LCU 중 제1 LCU가 코딩될 것임을 표시한다. 인덱스 i가 0이 아닐 때, 이는 제1 LCU 이외의 복수의 LCU 중 하나의 LCU가 코딩될 것임을 표시한다.
(S1740)에서 인덱스 i가 0인 것으로 결정될 때, 프로세스(1700)는 코딩 상태가 저장될 수 있는 (S1750)으로 진행할 수 있다. 전술한 바와 같이, 코딩 상태는 포인트 클라우드가 옥트리 깊이 k-1에서 코딩된 후에 획득되고, 포인트 클라우드의 복수의 LCU 중 제1 LCU가 코딩되기 전에 저장될 수 있다. 프로세스(1700)는 이어서 제1 LCU가 코딩될 수 있는 (S1770)으로 진행할 수 있다. 프로세스(1700)는 추가로 (S1780)으로 진행할 수 있고, 여기서 인덱스 i는 1씩 증분될 수 있다. 따라서, (S1770)에서 방금 코딩된 LCU에 후속하는 LCU(예를 들어, 제1 LCU)가 코딩을 위해 선택될 수 있다. 프로세스(1700)는 이어서 제1 결정 프로세스를 다시 수행하기 위해 (S1730)으로 진행할 수 있다.
여전히 (S1740)을 참조하면, 인덱스 i가 0이 아닌 것으로 결정될 때, 프로세스(1700)는 (S1760)으로 진행할 수 있다. (S1760)에서, 코딩 상태는 (S1750)에서 전술한 저장된 코딩 상태로 설정되거나, 또는 다른 방식으로 결정될 수 있다. 프로세스(1700)는 이어서 인덱스 i를 갖는 LCU가 (S1760)에서 저장된 코딩 상태로 설정되어 있는 코딩 상태에 기초하여 코딩될 수 있는 (1770)으로 진행할 수 있다. 따라서, 복수의 LCU 각각이 코딩될 때, 코딩 상태는 먼저 저장된 코딩 상태로 설정될 수 있다. 따라서, 병렬 노드 기반(LCU 기반) 코딩이 달성될 수 있다.
상기 논의에서, 복수의 LCU는 옥트리-기반 지오메트리 코딩에 기초하여 코딩될 수 있다. 그러나, 프로세스(1700)에서 다른 지오메트리 코딩 방법들이 또한 적용될 수 있다. 예를 들어, 예측 트리-기반 코딩은 또한 복수의 LCU를 코딩하기 위해 적용될 수 있다.
관련된 예들에서, LCU에 대해, 지오메트리 코딩 모드는 휴리스틱들에 기초하여 결정될 수 있다. 예를 들어, 옥트리-기반 지오메트리 코딩은 비교적 조밀한 포인트 클라우드를 코딩하기 위해 적용될 수 있는 반면, 예측 트리-기반 지오메트리 코딩은 자율 주행 차량들로부터의 Lidar에 의해 생성될 수 있는 희소 포인트 클라우드를 코딩하기 위해 적용될 수 있다.
일 실시예에서, LCU의 밀도는 지오메트리 코딩 모드를 결정하기 위해 사용될 수 있다. 일반성을 잃지 않고, 옥트리-기반 지오메트리 코딩 및 예측 트리-기반 지오메트리 코딩이 예시를 위한 예로서 사용될 수 있다. 물론, 다른 타입의 지오메트리 코딩 모드들이 적용될 수 있다.
지오메트리 코딩 모드를 결정하기 위해, LCU의 밀도가 먼저 수학식 (2)에서 다음과 같이 계산될 수 있다:
LCU_density = LCU 내의 포인트들의 수/LCU의 볼륨 수학식 (2)
LCU의 볼륨을 계산하기 위해, LCU의 공칭 경계 박스가 적용될 수 있다. LCU의 공칭 경계 박스는 옥트리 파티션 깊이, 옥트리 파티션 타입, 및 포인트 클라우드의 경계 박스에 기초하여 결정될 수 있다. 예를 들어, 포인트 클라우드의 경계 박스가
Figure pct00010
이고 옥트리 파티션 깊이 k에 있다고 가정하면, 옥트리 파티션 깊이 k에서의 각각의 노드(LCU)의 공칭 경계 박스는
Figure pct00011
으로 감소될 수 있고, 여기서 옥트리 파티션 타입(옥트리, 쿼드러처 트리 또는 바이너리 트리 파티션)에 기초하여
Figure pct00012
이다. 따라서, LCU의 볼륨은 수학식 (3)에서 다음과 같이 계산될 수 있다:
LCU의 볼륨 =
Figure pct00013
수학식 (3)
다른 실시예에서, LCU의 실제 경계 박스는 LCU 내부의 포인트들에 기초하여 계산될 수 있다. LCU 내의 모든 포인트의 3D 좌표들은 i=0, 1, ..., N-1에 대해 (xi, yi, zi)로서 표시될 수 있고, 여기서 N은 LCU 내의 포인트들의 수이다. x, y 및 z 차원을 따른 최소 및 최대 값은 수학식 (4) 내지 수학식 (9)에서 계산될 수 있다:
Figure pct00014
수학식 (4)
Figure pct00015
수학식 (5)
Figure pct00016
수학식 (6)
Figure pct00017
수학식 (7)
Figure pct00018
수학식 (8)
Figure pct00019
수학식 (9)
LCU의 볼륨은 수학식 (10)에서 다음과 같이 계산될 수 있다:
LCU의 볼륨=
Figure pct00020
수학식 (10)
LCU의 밀도, 및 하나의 임계값, Dth가 주어지면, 지오메트리 코딩 모드는 다음과 같이 결정될 수 있다:
LCU_Density≤Dth인 경우, 예측 트리-기반 지오메트리 코딩이 LCU에 대해 사용될 수 있다.
그렇지 않고, LCU_Density≥Dth인 경우, 옥트리-기반 지오메트리 코딩은 LCU에 대해 사용될 수 있다.
다른 실시예에서, 2개의 임계값, Dth_low 및 Dth_high가 정의될 수 있고, 여기서 Dth_low<Dth_high이다. 이어서, 지오메트리 코딩 모드는 다음과 같이 결정될 수 있다.
Dth_low≤LCU_Density≤Dth_high인 경우, 예측 트리-기반 지오메트리 코딩은 LCU에 대해 사용될 수 있고;
그렇지 않고, Dth_low>LCUDensity 또는 LCUDensity>Dth_high인 경우, 옥트리-기반 지오메트리 코딩이 LCU에 대해 사용될 수 있다.
또 다른 실시예에서, 2개의 밀도 임계값 Dth_low 및 Dth_high, 및 다른 포인트 수 임계값 Nth가 정의될 수 있다. 지오메트리 코딩 모드는 다음과 같이 결정될 수 있다:
Dth_low≤LCU_Density≤Dth_high이고 N≥Nth인 경우, 예측 트리-기반 지오메트리 코딩은 LCU에 대해 사용될 수 있다.
그렇지 않고, Dth_low>LCU_Density, 또는 LCUDensity>Dth_high, 또는 N<Nth인 경우, 옥트리 코딩이 LCU에 대해 사용될 수 있다.
유사하게, 다수의 밀도 임계값 및 포인트 수 임계값이 정의되어 2개 이상의 후보 중에서 지오메트리 코딩 모드를 결정하는데 사용될 수 있다. 2개 이상의 후보 중에서 속성 코딩 모드를 결정하기 위해 유사한 방법들이 사용될 수 있다.
LCU들에 대한 지오메트리 코딩 모드들이 상이할 수 있기 때문에, 어느 지오메트리 코딩 모드가 사용되는지를 디코더에 표시하기 위해 시그널링 정보가 비트스트림에서 전송될 필요가 있다. 대응하는 신택스는 다음과 같이 표 1에 특정될 수 있다:
표 1: 지오메트리 코딩 모드를 특정하는 신택스 표
Figure pct00021
표 1에 나타낸 바와 같이, 지오메트리 코딩 모드 플래그(예를 들어, geometry_coding_mode)는 LCU를 코딩하기 위해 사용되는 지오메트리 코딩 모드를 특정할 수 있다. 지오메트리 코딩 모드 플래그가 0으로 설정될 때, 옥트리-기반 지오메트리 코딩이 적용될 수 있다. 지오메트리 코딩 모드 플래그가 1로 설정될 때, 예측 트리-기반 지오메트리 코딩이 사용될 수 있다. 따라서, 제1 시그널링 정보(예를 들어, octree_lcu_coding())는 지오메트리 코딩 모드 플래그가 0일 때 옥트리 기반 지오메트리 코딩의 사용을 특정하기 위해 표 1에 기초하여 시그널링될 수 있다. 제2 시그널링 정보(예를 들어, preditive_tree_lcu_coding())는 지오메트리 코딩 모드 플래그가 1일 때 예측 트리-기반 지오메트리 코딩의 사용을 특정하기 위해 표 1에 기초하여 시그널링될 수 있다. 지오메트리 코딩 모드 플래그는 컨텍스트로 엔트로피 코딩될 수 있다는 점에 유의한다. 다른 실시예에서, 지오메트리 코딩 모드 플래그는 바이패스 코딩으로 코딩될 수 있다.
다른 실시예에서, 3개의 모드가 사용될 수 있다. 일반성을 잃지 않고, 3개의 지오메트리 코딩 모드는 first_mode, second_mode, 및 third_mode로서 표시될 수 있다. 대응하는 신택스 표는 다음과 같이 표 2에 특정될 수 있다:
표 2: 3개의 지오메트리 코딩 모드를 특정하는 신택스 표
Figure pct00022
표 2에 나타낸 바와 같이, 지오메트리 코딩 모드 플래그(예를 들어, geometry_coding_mode)는 LCU에 대해 사용되는 지오메트리 코딩 모드를 특정할 수 있다. 지오메트리 코딩 모드 플래그가 0으로 설정될 때, first_mode 지오메트리 코딩이 사용될 수 있다. 지오메트리 코딩 모드 플래그가 1로 설정될 때, second_mode 지오메트리 코딩이 사용될 수 있다. 그렇지 않고, 지오메트리 코딩 모드 플래그가 0도 1도 아닌 것으로 설정될 때, third_mode 지오메트리 코딩이 사용될 수 있다. 따라서, 제1 시그널링 정보(예를 들어, first_mode_lcu_coding())는 지오메트리 코딩 모드 플래그가 0일 때 first_mode 지오메트리 코딩의 사용을 특정하기 위해 표 2에 기초하여 시그널링될 수 있다. 제2 시그널링 정보(예를 들어, second_mode_lcu_coding())는 지오메트리 코딩 모드 플래그가 1로 설정될 때 second_mode 지오메트리 코딩의 사용을 특정하기 위해 표 2에 기초하여 시그널링될 수 있다. 제3 시그널링 정보(예를 들어, third_mode_lcu_coding())는 지오메트리 코딩 모드 플래그가 0 또는 1 이외의 값으로 설정될 때 third_mode 지오메트리 코딩의 사용을 특정하기 위해 표 2에 기초하여 시그널링된다.
일반성을 잃지 않고, 제1 모드가 가장 빈번하게 적용될 수 있다. 따라서, 지오메트리 코딩 모드 플래그(예를 들어, geometry_coding_mode)는 다음과 같이 이진화될 수 있다: (a) Bin0=1은 first_mode를 표시할 수 있고; (2) Bin0=0 및 Bin1=1은 second_mode를 표시할 수 있고; (c) Bin0=0 및 Bin1=0은 third_mode를 표시할 수 있으며, 여기서 Bin0 및 Bin1은 별개의 컨텍스트들로 엔트로피 코딩될 수 있다.
제안된 방법들은 개별적으로 사용되거나 임의의 순서로 조합될 수 있다. 또한, 방법들(또는 실시예들), 인코더, 및 디코더 각각은 처리 회로(예를 들어, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비일시적 컴퓨터 판독가능 매체에 저장되는 프로그램을 실행할 수 있다.
본 개시내용은 TMC13 소프트웨어, MPEG-PCC, 또는 AVS-PCC 표준에 제한되지 않는다는 점에 유의해야 한다. 본 개시내용은 PCC 시스템들과 같은 다른 시스템들에 대한 일반적인 솔루션을 제공한다.
도 18 및 도 19는 본 개시내용의 실시예들에 따른 프로세스(1800) 및 프로세스(1900)를 약술하는 흐름도를 도시한다. 프로세스(1800) 및 프로세스(1900)는 포인트 클라우드에 대한 인코딩 및/또는 디코딩 프로세스 동안에 사용될 수 있다. 다양한 실시예들에서, 프로세스들(1800 및 1900)은, 단말 디바이스들(110)에서의 처리 회로, 인코더(203) 및/또는 디코더(201)의 기능들을 수행하는 처리 회로, 인코더(300), 디코더(400), 인코더(500), 및/또는 디코더(600)의 기능들을 수행하는 처리 회로 등과 같은, 처리 회로에 의해 실행될 수 있다. 일부 실시예들에서, 프로세스들(1800 및 1900)은 소프트웨어 명령어들로 구현될 수 있고, 따라서 처리 회로가 소프트웨어 명령어들을 실행할 때, 처리 회로는 프로세스들(1800 및 1900)을 각각 수행한다.
도 18에 도시되는 바와 같이, 프로세스(1800)는 (S1801)에서 시작하고 (S1810)로 진행한다.
(S1810)에서, 제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩이 수행될 수 있다.
(S1820)에서, 포인트 클라우드의 복수의 LCU가 제2 파티션 깊이에서 결정될 수 있다.
(S1830)에서, 포인트 클라우드의 복수의 LCU 중의 LCU의 코딩 상태는 제2 파티션 깊이에서 설정될 수 있다.
(S1840)에서, 제2 파티션 깊이에서의 LCU의 코딩 상태에 기초하여 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU에 대해 지오메트리 코딩이 수행될 수 있다.
일부 실시예들에서, 지오메트리 코딩은 옥트리-기반 지오메트리 코딩 및 예측 트리-기반 코딩 중 하나를 포함할 수 있다.
실시예에서, LCU의 코딩 상태는 포인트 클라우드의 초기 상태로 설정될 수 있으며, 여기서 포인트 클라우드의 초기 상태는 포인트 클라우드가 지오메트리 코딩에 기초하여 포인트 클라우드로부터 파티셔닝된 루트 노드에서 코딩되기 전에 획득될 수 있다.
다른 실시예에서, LCU가 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU 중 제1 LCU일 때, 코딩 상태는 포인트 클라우드가 제1 파티션 깊이에서의 지오메트리 코딩에 기초하여 코딩된 후에 획득되고 저장될 수 있다.
또 다른 실시예에서, LCU가 제2 파티션 깊이에서 포인트 클라우드의 복수의 LCU 중 제1 LCU가 아닐 때, LCU의 코딩 상태는 저장된 코딩 상태로 설정될 수 있다. 저장된 코딩 상태는 (i) 포인트 클라우드가 제1 파티션 깊이에서의 지오메트리 코딩에 기초하여 코딩된 후에 획득되거나 또는 (ii) 포인트 클라우드의 복수의 LCU 중 제1 LCU가 제2 파티션 깊이에서의 지오메트리 코딩에 기초하여 코딩되기 전에 저장될 수 있다.
일부 실시예들에서, 코딩 상태는 LCU와 연관된 엔트로피 코딩에 대한 컨텍스트 또는 LCU와 연관된 지오메트리 점유 이력 정보 중 적어도 하나를 포함할 수 있다.
일부 실시예들에서, 복수의 LCU 각각은 제2 파티션 깊이에서 각자의 노드를 포함할 수 있다.
도 19에 도시되는 바와 같이, 프로세스(1900)는 (S1901)에서 시작하고 (S1910)로 진행한다.
(S1910)에서, 포인트 클라우드의 LCU의 밀도가 결정될 수 있다. LCU의 밀도는 LCU 내의 포인트들의 수와 LCU의 볼륨의 비율일 수 있다.
(S1920)에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도 및 제1 임계값에 기초하여 결정될 수 있다.
(S1930)에서, 지오메트리 코딩 모드 정보가 비트스트림에서 추가로 시그널링될 수 있다. 지오메트리 코딩 모드 정보는 LCU의 밀도 및 제1 임계값에 기초하는 LCU의 결정된 지오메트리 코딩 모드를 표시할 수 있다.
예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값 이하인 것에 기초하여 예측 트리 지오메트리 코딩이라고 결정될 수 있다. 다른 예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값보다 큰 것에 기초하여 옥트리-기반 지오메트리 코딩이라고 결정될 수 있다.
예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값 이상이고 제2 임계값 이하인 것에 기초하여 예측 트리 지오메트리 코딩이라고 결정될 수 있고, 여기서 제2 임계값은 제1 임계값보다 클 수 있다. 또 다른 예에서, LCU의 지오메트리 코딩 모드는 LCU의 밀도가 제1 임계값보다 작거나 또는 제2 임계값보다 큰 것에 기초하여 옥트리-기반 지오메트리 코딩이라고 결정될 수 있다.
예에서, LCU의 지오메트리 코딩 모드는 (i) LCU의 밀도가 제1 임계값 이상이고 제2 임계값 이하이고, (ii) LCU 내의 포인트들의 수가 포인트 수 임계값 이상인 것에 기초하여 예측 트리 지오메트리 코딩이라고 결정될 수 있다. 다른 예에서, LCU의 지오메트리 코딩 모드는 (i) LCU의 밀도가 제1 임계값보다 작거나 또는 제2 임계값보다 큰 것, 및 (ii) LCU 내의 포인트들의 수가 포인트 수 임계값보다 작은 것 중 하나에 기초하여 옥트리-기반 지오메트리 코딩이라고 결정될 수 있다.
일부 실시예들에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제1 지오메트리 코딩 모드인 것에 기초하여 제1 값으로 시그널링될 수 있다. 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제2 지오메트리 코딩 모드인 것에 기초하여 제2 값으로 시그널링될 수 있다.
프로세스(1900)에서, 지오메트리 코딩 모드 정보는 컨텍스트로 엔트로피 코딩될 수 있거나 또는 바이패스 코딩으로 코딩될 수 있다.
실시예에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제1 지오메트리 코딩 모드인 것에 기초하여 제1 값으로 시그널링될 수 있다. 다른 실시예에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제2 지오메트리 코딩 모드인 것에 기초하여 제2 값으로 시그널링될 수 있다. 또 다른 예에서, 지오메트리 코딩 모드 정보는 지오메트리 코딩 모드가 제3 지오메트리 코딩 모드인 것에 기초하여 제3 값으로 시그널링될 수 있다.
일부 실시예들에서, 이진화 정보는 제1 빈에서만 제1 값으로 시그널링될 수 있으며, 여기서 제1 값을 갖는 이진화 정보는 제1 지오메트리 코딩 모드를 표시할 수 있다. 일부 실시예들에서, 이진화 정보는 제1 빈에서 제2 값으로 그리고 후속 제2 빈에서 제1 값으로 시그널링될 수 있으며, 여기서 제1 빈에서 제2 값 및 제2 빈에서 제1 값을 갖는 이진화 정보는 제2 지오메트리 코딩 모드를 표시할 수 있다. 일부 실시예들에서, 이진화 정보는 제1 빈에서 제2 값으로 그리고 제2 빈에서 제2 값으로 시그널링될 수 있으며, 여기서 제1 빈 및 제2 빈에서 제2 값을 갖는 이진화 정보는 제3 지오메트리 코딩 모드를 표시할 수 있다.
일부 실시예들에서, 제1 빈에서의 이진화 정보는 제1 컨텍스트로 엔트로피 코딩될 수 있고, 제2 빈에서의 이진화 정보는 제2 컨텍스트로 엔트로피 코딩될 수 있다.
위에 주목된 바와 같이, 위에 설명된 기법들은 컴퓨터 판독가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현되고, 하나 이상의 컴퓨터 판독가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 20은 개시된 주제의 특정 실시예들을 구현하기에 적합한 컴퓨터 시스템(2000)을 도시한다.
컴퓨터 소프트웨어는 하나 이상의 컴퓨터 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU) 등에 의해 직접 또는 인터프리테이션(interpretation), 마이크로 코드 실행 등을 통해 실행될 수 있는 명령어들을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일, 링킹 또는 유사한 메커니즘들을 거칠 수 있는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어들은, 예를 들어, 개인용 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게이밍 디바이스들, 사물 인터넷(internet of things) 디바이스들 등을 포함하여, 다양한 타입의 컴퓨터들 또는 그것의 컴포넌트들 상에서 실행될 수 있다.
컴퓨터 시스템(2000)에 대한 도 20에 도시된 컴포넌트들은 사실상 예시적인 것이고, 본 개시내용의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 임의의 제한을 암시하도록 의도되지 않는다. 컴포넌트들의 구성은 컴퓨터 시스템(2000)의 예시적 실시예에 예시된 컴포넌트들 중 어느 하나 또는 조합에 관한 임의의 의존 또는 요건을 갖는 것으로서 해석되지 않아야 한다.
컴퓨터 시스템(2000)은 특정 인간 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각 입력(예를 들어: 키스트로크들(keystrokes), 스와이프들(swipes), 데이터 글러브 움직임들(data glove movements)), 오디오 입력(예를 들어: 음성, 손뼉), 시각적 입력(예를 들어: 제스처들), 후각적 입력(묘사되지 않음)을 통한 하나 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스들은, 오디오(음성, 음악, 주변 소리 등), 이미지들(스캔된 이미지들, 스틸 이미지 카메라로부터 획득된 사진 이미지들 등), 비디오(2차원 비디오, 입체 비디오를 포함하는 3차원 비디오 등) 등의, 인간에 의한 의식적 입력에 반드시 직접 관련될 필요는 없는 소정의 미디어를 캡처하는데에도 이용될 수 있다.
입력 인간 인터페이스 디바이스들은: 키보드(2001), 마우스(2002), 트랙패드(2003), 터치 스크린(2010), 데이터-글러브(도시되지 않음), 조이스틱(2005), 마이크로폰(2006), 스캐너(2007), 카메라(2008) 중 하나 이상(각각의 하나만이 묘사됨)을 포함할 수 있다.
컴퓨터 시스템(2000)은 특정 인간 인터페이스 출력 디바이스들을 또한 포함할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은, 예를 들어, 촉각 출력, 사운드, 광, 및 냄새/맛을 통해 하나 이상의 인간 사용자의 감각들을 자극하고 있을 수 있다. 이러한 인간 인터페이스 출력 디바이스들은 촉각 출력 디바이스들(예를 들어, 터치-스크린(2010), 데이터-글러브(도시되지 않음), 또는 조이스틱(2005)에 의한 촉각 피드백이지만, 입력 디바이스들로서 역할을 하지 않는 촉각 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예를 들어, 스피커들(2009), 헤드폰들(묘사되지 않음)), 시각적 출력 디바이스들(예를 들어, CRT 스크린들, LCD 스크린들, 플라즈마 스크린들, OLED 스크린들을 포함하는 스크린들(2010)) - 각각은 터치-스크린 입력 능력이 있거나 없고, 각각은 촉각 피드백 능력이 있거나 없고, 이들 중 일부는 스테레오그래픽 출력과 같은 수단을 통해 2차원 시각적 출력 또는 3보다 많은차원의 출력을 출력할 수 있음 -; 가상 현실 안경(묘사되지 않음), 홀로그래픽 디스플레이들 및 스모크 탱크들(smoke tanks)(묘사되지 않음)), 및 프린터들(묘사되지 않음)을 포함할 수 있다.
컴퓨터 시스템(2000)은 인간 액세스가능한 저장 디바이스들 및 그의 연관된 매체들, 예컨대 CD/DVD 등의 매체(2021)를 갖는 CD/DVD ROM/RW(2020)를 포함하는 광학 매체, 썸-드라이브(thumb-drive)(2022), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(2023), 테이프 및 플로피 디스크(묘사되지 않음)와 같은 레거시 자기 매체, 보안 동글(묘사되지 않음)과 같은 특수화된 ROM/ASIC/PLD 기반 디바이스들 등을 또한 포함할 수 있다.
본 기술분야의 통상의 기술자들은 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터 판독가능 매체(computer readable media)"가 송신 매체들, 반송파들(carrier waves), 또는 다른 일시적 신호들을 포함하지 않는다는 점을 또한 이해할 것이다.
컴퓨터 시스템(2000)은 하나 이상의 통신 네트워크에 대한 인터페이스를 또한 포함할 수 있다. 네트워크들은, 예를 들어, 무선(wireless), 유선(wireline), 광학(optical)일 수 있다. 네트워크들은 추가로 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연-허용(delay-tolerant) 등일 수 있다. 네트워크들의 예들은 로컬 영역 네트워크들, 예컨대 이더넷, 무선 LAN들, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크들, 케이블 TV, 위성 TV 및 지상파 브로드캐스트 TV를 포함하는 TV 와이어라인 또는 무선 광역 디지털 네트워크들, CANBus를 포함하는 차량 및 산업 등을 포함한다. 특정 네트워크들은 일반적으로 특정 범용 데이터 포트들 또는 주변 버스들(2049)(예를 들어, 예를 들어, 컴퓨터 시스템(2000)의 범용 직렬 버스(USB) 포트들)에 부착된 외부 네트워크 인터페이스 어댑터들을 요구하고; 다른 것들은 일반적으로 아래에 설명되는 바와 같은 시스템 버스로의 부착에 의해 컴퓨터 시스템(2000)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템으로의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템으로의 셀룰러 네트워크 인터페이스). 이들 네트워크들 중 임의의 것을 사용하여, 컴퓨터 시스템(2000)은 다른 엔티티들과 통신할 수 있다. 그러한 통신은 단방향 수신 전용(예를 들어, 브로드캐스트 TV), 단방향 전송 전용(예를 들어, 특정 CANbus 디바이스들에 대한 CANbus), 또는 예컨대 로컬 또는 광역 디지털 네트워크들을 사용한 다른 컴퓨터 시스템들에 대한 양방향성일 수 있다. 어떤 프로토콜들 및 프로토콜 스택(protocol stack)들은 위에서 설명된 바와 같은 그 네트워크들 및 네트워크 인터페이스들의 각각 상에서 이용될 수 있다.
전술한 인간 인터페이스 디바이스들, 인간-액세스 가능한 저장 디바이스들, 및 네트워크 인터페이스들은 컴퓨터 시스템(2000)의 코어(2040)에 부착될 수 있다.
코어(2040)는 하나 이상의 CPU(Central Processing Units)(2041), GPU(Graphics Processing Units)(2042), FPGA(Field Programmable Gate Areas)(2043) 형태의 특수화된 프로그램가능 처리 유닛, 특정 태스크들을 위한 하드웨어 가속기(2044) 등을 포함할 수 있다. 이들 디바이스들은, 판독 전용 메모리(ROM)(2045), 랜덤 액세스 메모리(2046), 내부 비-사용자 액세스가능 하드 드라이브들, SSD들 등과 같은 내부 대용량 스토리지(2047)와 함께, 시스템 버스(2048)를 통해 접속될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(2048)는 추가적인 CPU들, GPU들 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스들은 코어의 시스템 버스(2048)에 직접, 또는 주변 버스(2049)를 통해 부착될 수 있다. 주변 버스를 위한 아키텍처들은 PCI, USB 등을 포함한다.
CPU(2041), GPU(2042), FPGA(2043) 및 가속기(2044)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어들을 실행할 수 있다. 해당 컴퓨터 코드는 ROM(2045) 또는 RAM(2046)에 저장될 수 있다. 과도적인 데이터(transitional data)는 또한 RAM(2046)에 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 스토리지(2047)에 저장될 수 있다. 메모리 디바이스들 중 임의의 것에 대한 고속 저장 및 검색은, 하나 이상의 CPU(2041), GPU(2042), 대용량 스토리지(2047), ROM(2045), RAM(2046) 등과 밀접하게 연관될 수 있는, 캐시 메모리의 사용을 통해 가능하게 될 수 있다.
컴퓨터 판독가능 매체는 다양한 컴퓨터 구현된 동작들(computer-implemented operations)을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시내용의 목적을 위해 특별히 설계되고 구성된 것들일 수 있거나, 또는 그것들은 컴퓨터 소프트웨어 기술분야의 기술자들에게 잘 알려져 있고 이용가능한 종류의 것일 수 있다.
제한이 아니라 예로서, 아키텍처를 갖는 컴퓨터 시스템(2000), 및 구체적으로 코어(2040)는 프로세서(들)(CPU들, GPU들, FPGA, 가속기들 등을 포함함)가 하나 이상의 유형의(tangible) 컴퓨터 판독가능 매체에 구현된 소프트웨어를 실행하는 결과로서 기능성을 제공할 수 있다. 그러한 컴퓨터 판독가능 매체는 위에 소개된 바와 같은 사용자-액세스가능(user-accessible) 대용량 스토리지뿐만 아니라, 코어 내부 대용량 스토리지(2047) 또는 ROM(2045)과 같은 비일시적인 본질의 것인 코어(2040)의 특정 스토리지와 연관된 매체일 수 있다. 본 개시내용의 다양한 실시예들을 구현하는 소프트웨어가 그러한 디바이스들에 저장되고 코어(2040)에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 특정 필요에 따라 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(2040) 및 구체적으로 그 내부의 프로세서들(CPU, GPU, FPGA 등을 포함함)로 하여금, RAM(2046)에 저장된 데이터 구조들을 정의하는 것 및 소프트웨어에 의해 정의된 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에 설명된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하기 위해 소프트웨어 대신에 또는 그와 함께 동작할 수 있는, 회로(예를 들어: 가속기(2044))에 하드와이어링되거나 다른 방식으로 구현된 로직의 결과로서 기능성을 제공할 수 있다. 소프트웨어에 대한 참조는, 적절한 경우, 로직을 포함할 수 있고, 그 반대도 가능하다. 컴퓨터 판독가능 매체에 대한 참조는, 적절한 경우, 실행을 위한 소프트웨어를 저장하는(IC(integrated circuit)와 같은) 회로, 실행을 위한 로직을 구현하는 회로, 또는 둘 다를 포괄할 수 있다. 본 개시내용은 하드웨어 및 소프트웨어의 임의의 적합한 조합을 포함한다.
본 개시내용이 여러 예시적인 실시예들을 기술하였지만, 본 개시내용의 범위 내에 속하는 변경, 치환, 및 다양한 대체 등가물이 있다. 따라서, 본 기술 분야의 통상의 기술자가, 본 명세서에서 명시적으로 도시되거나 기술되지는 않았지만, 본 개시내용의 원리들을 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템들 및 방법들을 고안할 수 있다는 것을 이해할 것이다.

Claims (20)

  1. 포인트 클라우드 인코더에서의 포인트 클라우드 지오메트리 인코딩의 방법으로서,
    제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩을 수행하는 단계;
    제2 파티션 깊이에서 상기 포인트 클라우드의 복수의 최대 코딩 유닛(LCU)을 결정하는 단계;
    상기 제2 파티션 깊이에서 상기 포인트 클라우드의 복수의 LCU 중의 LCU의 코딩 상태를 설정하는 단계; 및
    상기 제2 파티션 깊이에서의 상기 LCU의 코딩 상태에 기초하여 상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU에 대해 지오메트리 코딩을 수행하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 지오메트리 코딩은 옥트리-기반 지오메트리 코딩(octree-based geometry coding) 및 예측 트리-기반 코딩(predictive tree-based coding) 중 하나를 포함하는 방법.
  3. 제1항에 있어서,
    상기 LCU의 코딩 상태를 설정하는 단계는:
    상기 LCU의 코딩 상태를 상기 포인트 클라우드의 초기 상태로 설정하는 단계를 포함하고, 상기 포인트 클라우드의 초기 상태는 상기 지오메트리 코딩에 기초하여 상기 포인트 클라우드가 코딩되기 전에 획득되는 방법.
  4. 제1항에 있어서,
    상기 LCU의 코딩 상태를 설정하는 단계는:
    상기 LCU가 상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU 중 제1 LCU인 것에 기초하여,
    상기 제1 파티션 깊이에서의 상기 지오메트리 코딩에 기초하여 상기 포인트 클라우드가 코딩된 후에 획득되는 상기 코딩 상태를 저장하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 LCU의 코딩 상태를 설정하는 단계는:
    상기 LCU가 상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU 중 제1 LCU가 아닌 것에 기초하여,
    상기 LCU의 코딩 상태를, (i) 상기 포인트 클라우드가 상기 제1 파티션 깊이에서의 상기 지오메트리 코딩에 기초하여 코딩된 후에 획득되거나 또는 (ii) 상기 포인트 클라우드의 상기 복수의 LCU 중 상기 제1 LCU가 상기 제2 파티션 깊이에서의 상기 지오메트리 코딩에 기초하여 코딩되기 전에 저장되는 저장된 코딩 상태로 설정하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 코딩 상태는 상기 LCU와 연관된 엔트로피 코딩에 대한 컨텍스트 또는 상기 LCU와 연관된 지오메트리 점유 이력 정보 중 적어도 하나를 포함하는 방법.
  7. 제1항에 있어서,
    상기 복수의 LCU 각각은 상기 제2 파티션 깊이에서 각자의 노드를 포함하는 방법.
  8. 포인트 클라우드 인코더에서의 포인트 클라우드 지오메트리 인코딩의 방법으로서,
    포인트 클라우드의 최대 코딩 유닛(LCU)의 밀도를 결정하는 단계- 상기 LCU의 밀도는 상기 LCU 내의 포인트들의 수와 상기 LCU의 볼륨의 비율임 -;
    상기 LCU의 밀도 및 제1 임계값에 기초하여 상기 LCU의 지오메트리 코딩 모드를 결정하는 단계; 및
    비트스트림에서 지오메트리 코딩 모드 정보를 시그널링하는 단계- 상기 지오메트리 코딩 모드 정보는 상기 LCU의 밀도 및 상기 제1 임계값에 기초하는 상기 LCU의 결정된 지오메트리 코딩 모드를 표시함 -를 포함하는 방법.
  9. 제8항에 있어서,
    상기 LCU의 지오메트리 코딩 모드를 결정하는 단계는:
    상기 LCU의 밀도가 상기 제1 임계값 이하인 것에 기초하여 상기 LCU의 상기 지오메트리 코딩 모드가 예측 트리 지오메트리 코딩이라고 결정하는 단계; 및
    상기 LCU의 밀도가 상기 제1 임계값보다 큰 것에 기초하여 상기 LCU의 상기 지오메트리 코딩 모드가 옥트리-기반 지오메트리 코딩이라고 결정하는 단계를 추가로 포함하는 방법.
  10. 제8항에 있어서,
    상기 LCU의 지오메트리 코딩 모드를 결정하는 단계는:
    상기 LCU의 밀도가 상기 제1 임계값 이상이고 제2 임계값 이하인 것에 기초하여 상기 LCU의 상기 지오메트리 코딩 모드가 예측 트리 지오메트리 코딩이라고 결정하는 단계- 상기 제2 임계값은 상기 제1 임계값보다 큼-; 및
    상기 LCU의 밀도가 상기 제1 임계값보다 작거나 또는 상기 제2 임계값보다 큰 것에 기초하여 상기 LCU의 상기 지오메트리 코딩 모드가 옥트리-기반 지오메트리 코딩이라고 결정하는 단계를 추가로 포함하는 방법.
  11. 제8항에 있어서,
    상기 LCU의 지오메트리 코딩 모드를 결정하는 단계는:
    (i) 상기 LCU의 밀도가 상기 제1 임계값 이상이고 제2 임계값 이하이고, (ii) 상기 LCU 내의 포인트들의 수가 포인트 수 임계값 이상인 것에 기초하여 상기 LCU의 상기 지오메트리 코딩 모드가 예측 트리 지오메트리 코딩이라고 결정하는 단계; 및
    (i) 상기 LCU의 밀도가 상기 제1 임계값보다 작거나 또는 상기 제2 임계값보다 큰 것, 및 (ii) 상기 LCU 내의 포인트들의 수가 상기 포인트 수 임계값보다 작은 것 중 하나에 기초하여 상기 LCU의 상기 지오메트리 코딩 모드가 옥트리-기반 지오메트리 코딩이라고 결정하는 단계를 추가로 포함하는 방법.
  12. 제8항에 있어서,
    상기 지오메트리 코딩 모드 정보를 시그널링하는 단계는:
    상기 지오메트리 코딩 모드가 제1 지오메트리 코딩 모드인 것에 기초하여 상기 지오메트리 코딩 모드 정보를 제1 값으로 시그널링하는 단계; 및
    상기 지오메트리 코딩 모드가 제2 지오메트리 코딩 모드인 것에 기초하여 상기 지오메트리 코딩 모드 정보를 제2 값으로 시그널링하는 단계를 추가로 포함하는 방법.
  13. 제8항에 있어서,
    상기 지오메트리 코딩 모드 정보는 컨텍스트로 엔트로피 코딩되거나 또는 바이패스 코딩으로 코딩되는 방법.
  14. 제8항에 있어서,
    상기 지오메트리 코딩 모드 정보를 시그널링하는 단계는:
    상기 지오메트리 코딩 모드가 제1 지오메트리 코딩 모드인 것에 기초하여 상기 지오메트리 코딩 모드 정보를 제1 값으로 시그널링하는 단계;
    상기 지오메트리 코딩 모드가 제2 지오메트리 코딩 모드인 것에 기초하여 상기 지오메트리 코딩 모드 정보를 제2 값으로 시그널링하는 단계; 및
    상기 지오메트리 코딩 모드가 제3 지오메트리 코딩 모드인 것에 기초하여 상기 지오메트리 코딩 모드 정보를 제3 값으로 시그널링하는 단계를 추가로 포함하는 방법.
  15. 제14항에 있어서,
    상기 지오메트리 코딩 모드 정보를 시그널링하는 단계는:
    제1 지오메트리 코딩 모드를 표시하는 제1 값을 갖는 이진화 정보에 기초하여 제1 빈에서만 제1 값으로 상기 이진화 정보를 시그널링하는 단계;
    제2 지오메트리 코딩 모드를 표시하는 상기 제1 빈에서 제2 값 및 후속 제2 빈에서 제1 값을 갖는 상기 이진화 정보에 기초하여 상기 제1 빈에서 제2 값으로 그리고 상기 제2 빈에서 제1 값으로 상기 이진화 정보를 시그널링하는 단계; 및
    제3 지오메트리 코딩 모드를 표시하는 상기 제1 빈 및 상기 제2 빈에서 제2 값을 갖는 상기 이진화 정보에 기초하여 상기 제1 빈에서 상기 제2 값으로 그리고 상기 제2 빈에서 상기 제2 값으로 상기 이진화 정보를 시그널링하는 단계를 추가로 포함하는 방법.
  16. 제15항에 있어서,
    상기 제1 빈에서 상기 이진화 정보는 제1 컨텍스트로 엔트로피 코딩되고, 상기 제2 빈에서 상기 이진화 정보는 제2 컨텍스트로 엔트로피 코딩되는 방법.
  17. 포인트 클라우드 데이터를 처리하기 위한 장치로서,
    처리 회로를 포함하고, 상기 처리 회로는:
    제1 파티션 깊이에서 포인트 클라우드에 대해 지오메트리 코딩을 수행하고;
    제2 파티션 깊이에서 상기 포인트 클라우드의 복수의 최대 코딩 유닛(LCU)을 결정하고;
    상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU 중의 LCU의 코딩 상태를 설정하고;
    상기 제2 파티션 깊이에서의 상기 LCU의 코딩 상태에 기초하여 상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU에 대해 지오메트리 코딩을 수행하도록 구성되는 장치.
  18. 제17항에 있어서,
    상기 처리 회로는:
    상기 LCU의 코딩 상태를 상기 포인트 클라우드의 초기 상태로 설정하도록 추가로 구성되고, 상기 포인트 클라우드의 초기 상태는 상기 지오메트리 코딩에 기초하여 상기 포인트 클라우드가 코딩되기 전에 획득되는 장치.
  19. 제17항에 있어서,
    상기 처리 회로는:
    상기 LCU가 상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU 중 제1 LCU인 것에 기초하여,
    상기 제1 파티션 깊이에서의 상기 지오메트리 코딩에 기초하여 상기 포인트 클라우드가 코딩된 후에 획득되는 상기 코딩 상태를 저장하도록 추가로 구성되는 장치.
  20. 제17항에 있어서,
    상기 처리 회로는:
    상기 LCU가 상기 제2 파티션 깊이에서 상기 포인트 클라우드의 상기 복수의 LCU 중 제1 LCU가 아닌 것에 기초하여,
    상기 LCU의 코딩 상태를, (i) 상기 포인트 클라우드가 상기 제1 파티션 깊이에서의 상기 지오메트리 코딩에 기초하여 코딩된 후에 획득되거나 또는 (ii) 상기 포인트 클라우드의 상기 복수의 LCU 중 상기 제1 LCU가 상기 제2 파티션 깊이에서의 상기 지오메트리 코딩에 기초하여 코딩되기 전에 저장되는 저장된 코딩 상태로 설정하도록 추가로 구성되는 장치.
KR1020227023936A 2020-12-04 2021-09-22 포인트 클라우드 코딩을 위한 방법 및 장치 KR102650334B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063121835P 2020-12-04 2020-12-04
US63/121,835 2020-12-04
US17/466,729 2021-09-03
US17/466,729 US20220180567A1 (en) 2020-12-04 2021-09-03 Method and apparatus for point cloud coding
PCT/US2021/051430 WO2022119616A1 (en) 2020-12-04 2021-09-22 Method and apparatus for point cloud coding

Publications (2)

Publication Number Publication Date
KR20220113783A true KR20220113783A (ko) 2022-08-16
KR102650334B1 KR102650334B1 (ko) 2024-03-25

Family

ID=81849337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227023936A KR102650334B1 (ko) 2020-12-04 2021-09-22 포인트 클라우드 코딩을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US20220180567A1 (ko)
EP (1) EP4066161A4 (ko)
JP (1) JP7383171B2 (ko)
KR (1) KR102650334B1 (ko)
CN (1) CN115176279A (ko)
WO (1) WO2022119616A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611775B2 (en) * 2021-01-19 2023-03-21 Tencent America LLC Method and apparatus for point cloud coding
WO2024094278A1 (en) * 2022-10-31 2024-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding a point cloud with density values

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5615354B2 (ja) * 2009-06-23 2014-10-29 トムソン ライセンシングThomson Licensing 繰り返しパターンを用いた3dメッシュの圧縮方法
BR112012025407B1 (pt) * 2010-04-13 2022-03-22 Samsung Electronics Co, Ltd Método de decodificação de vídeo baseado em unidades de codificação determinadas de acordo com uma estrutura de árvore
EP2663075B1 (en) * 2011-01-06 2020-05-06 Samsung Electronics Co., Ltd Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
CN108881921B (zh) * 2012-09-26 2021-01-12 太阳专利托管公司 图像编码方法、图像编码装置
US10148977B2 (en) * 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
SG11202012937WA (en) 2018-06-26 2021-01-28 Huawei Tech Co Ltd High-level syntax designs for point cloud coding
US10904564B2 (en) * 2018-07-10 2021-01-26 Tencent America LLC Method and apparatus for video coding
WO2020072665A1 (en) 2018-10-02 2020-04-09 Futurewei Technologies, Inc. Hierarchical tree attribute coding in point cloud coding

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAVID FLYNN ET AL, "[G-PCC][New proposal] Predictive Geometry Coding", 128. MPEG MEETING* *
DAVID FLYNN ET AL, "PReview of parallel octree sub-streams", 130. MPEG MEETING* *
XIANG ZHANG ET AL, "[G-PCC][CE13.22] Report on Parallel Octree Coding for Point Cloud Compression", 129. MPEG MEETING, no. m52397, XP030225047, 2020.01.16. 1부.* *

Also Published As

Publication number Publication date
EP4066161A4 (en) 2023-06-07
JP2023515602A (ja) 2023-04-13
WO2022119616A1 (en) 2022-06-09
JP7383171B2 (ja) 2023-11-17
US20220180567A1 (en) 2022-06-09
EP4066161A1 (en) 2022-10-05
KR102650334B1 (ko) 2024-03-25
CN115176279A (zh) 2022-10-11

Similar Documents

Publication Publication Date Title
JP7141543B2 (ja) ポイントクラウドのジオメトリ復号及び符号化のための暗示的な四分木又は二分木ジオメトリ分割
JP7252372B2 (ja) 点群コーディングのための方法及び装置
KR20210114508A (ko) 포인트 클라우드 압축을 위한 방법 및 장치
KR102645508B1 (ko) Haar 기반 포인트 클라우드 코딩을 위한 방법 및 장치
WO2021003173A1 (en) Method and apparatus for point cloud compression
KR102650334B1 (ko) 포인트 클라우드 코딩을 위한 방법 및 장치
JP2024516244A (ja) メッシュ圧縮におけるパッチの重複のないプロパティのチェック
JP2024509623A (ja) メッシュ展開のための方法、装置、およびコンピュータプログラム
JP2024509605A (ja) ポイントクラウド圧縮に基づく動的メッシュ圧縮
RU2778864C1 (ru) Неявное геометрическое разделение на основе квадродерева или бинарного дерева для кодирования облака точек
JP7470211B2 (ja) ポイントクラウドコーディングのための距離ベースの加重平均を計算する方法および装置
US11611775B2 (en) Method and apparatus for point cloud coding
JP7434667B2 (ja) ビデオベースの点群コーディングのためのグループオブピクチャベースのパッチパッキング
JP2024509886A (ja) メッシュ圧縮のための頂点接続性コーディング
JP2024512915A (ja) 非マニホールドメッシュにおける境界ループの検出のための方法、装置、およびコンピュータプログラム
JP2023548236A (ja) メッシュ圧縮のための頂点並べ替え方法における接続のコーディング
CN115152225A (zh) 用于点云译码的方法和设备

Legal Events

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