[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102486255B1 - 포인트 클라우드의 하이브리드 기하학적 코딩 - Google Patents

포인트 클라우드의 하이브리드 기하학적 코딩 Download PDF

Info

Publication number
KR102486255B1
KR102486255B1 KR1020217001427A KR20217001427A KR102486255B1 KR 102486255 B1 KR102486255 B1 KR 102486255B1 KR 1020217001427 A KR1020217001427 A KR 1020217001427A KR 20217001427 A KR20217001427 A KR 20217001427A KR 102486255 B1 KR102486255 B1 KR 102486255B1
Authority
KR
South Korea
Prior art keywords
node
encoding
depth
bitstream
octree
Prior art date
Application number
KR1020217001427A
Other languages
English (en)
Other versions
KR20210019555A (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 KR20210019555A publication Critical patent/KR20210019555A/ko
Application granted granted Critical
Publication of KR102486255B1 publication Critical patent/KR102486255B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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/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)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

장치는, 포인트 클라우드를 획득하고, 부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택을 하고, 및 상기 선택에 기초하여 비트스트림 내로 상기 부모 노드를 인코딩하도록 구성되는 프로세서; 및 상기 프로세서에 연결되며, 상기 비트스트림을 전송하도록 구성되는 전송기를 포함한다. 장치는, 비트스트림을 수신하도록 구성되는 수신기; 및 상기 수신기에 연결되며, PCC의 깊이를 지시하는 제1 파라미터를 상기 비트스트림으로부터 파싱하고, 옥트리 디코딩을 사용하여 상기 깊이 이전의 제1 노드를 디코딩하고, 상기 깊이 및 상기 깊이 이후의 제2 노드에 대한 노드 코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림으로부터 파싱하고, 상기 제2 파라미터에 기초하여 상기 제2 노드를 디코딩하도록 구성되는 프로세서를 포함한다.

Description

포인트 클라우드의 하이브리드 기하학적 코딩
개시된 실시예는 일반적으로 PCC에 관한 것이고, 특히 포인트 클라우드의 하이브리드 기하학적 코딩에 관한 것이다.
삭제
포인트 클라우드는 상대적으로 많은 양의 데이터를 사용하고, 따라서 포인트 클라우드의 통신은 상대적으로 많은 양의 대역폭을 사용한다. 그러나, 많은 네트워크는 그들의 대역폭 용량(bandwidth capacity)에서 또는 대역폭 용량 근처에서 동작한다. 그리고, 고객은 높은 포인트 클라우드 품질을 요구하며, 이는 더 많은 데이터를 사용할 것을 요구한다. 따라서, 데이터 포인트 클라우드 사용량을 줄이고 포인트 클라우드 품질을 향상시키는 것 모두에 대한 갈망이 있어왔다. 한가지 솔루션은 인코딩 프로세스 동안 포인트 클라우드를 압축하고, 디코딩 프로세스 동안 포인트 클라우드의 압축을 푸는(decompress) 것이다.
제1 측면은, 포인트 클라우드를 획득하고, 부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택을 하고, 및 상기 선택에 기초하여 비트스트림 내로 상기 부모 노드를 인코딩하도록 구성되는 프로세서; 및 상기 프로세서에 연결되며, 상기 비트스트림을 전송하도록 구성되는 전송기를 포함하는 장치에 관한 것이다.. 이러한 제1 측면에 따른 상기 장치의 제1 구현 형태는, 상기 옥트리 인코딩은 3D다. 이러한 제1 측면에 따르거나 또는 제1 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제2 구현 형태는, 상기 옥트리 인코딩은 8개의 큐브 자식 노드를 사용한다. 이러한 제1 측면에 따르거나 또는 제1 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제3 구현 형태는, 상기 쿼드트리 인코딩은 2D다. 이러한 제1 측면에 따르거나 또는 제1 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제4 구현 형태는, 상기 쿼드트리 인코딩은 4개의 정사각형 자식 노드를 사용한다. 이러한 제1 측면에 따르거나 또는 제1 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제5 구현 형태는, 상기 프로세서는, 평탄성(flatness) 파라미터에 기초하여 상기 선택을 하도록 더 구성된다. 이러한 제1 측면에 따르거나 또는 제1 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제6 구현 형태는, 상기 프로세서는, 레이트(rate) 왜곡에 기초하여 상기 선택을 하도록 더 구성된다. 제2 측면은, 포인트 클라우드를 획득하는 단계; 부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택을 하는 단계; 상기 선택에 기초하여 비트스트림 내로 상기 부모 노드를 인코딩하는 단계; 및 상기 비트스트림을 전송하는 단계를 포함하는 방법에 관한 것이다. 이러한 제2 측면에 따른 상기 방법의 제1 구현 형태는, 상기 옥트리 인코딩은 3D다. 이러한 제2 측면에 따르거나 또는 제2 측면의 전술한 임의의 구현 형태에 따른 상기 방법의 제2 구현 형태는, 상기 옥트리 인코딩은 8개의 큐브 자식 노드를 사용한다. 이러한 제2 측면에 따르거나 또는 제2 측면의 전술한 임의의 구현 형태에 따른 상기 방법의 제3 구현 형태는, 상기 쿼드트리 인코딩은 2D다. 이러한 제2 측면에 따르거나 또는 제2 측면의 전술한 임의의 구현 형태에 따른 상기 방법의 제4 구현 형태는, 상기 쿼드트리 인코딩은 4개의 정사각형 자식 노드를 사용한다. 이러한 제2 측면에 따르거나 또는 제2 측면의 전술한 임의의 구현 형태에 따른 상기 방법의 제5 구현 형태는, 상기 방법은 평탄성 파라미터에 기초하여 상기 선택을 더 한다. 이러한 제2 측면에 따르거나 또는 제2 측면의 전술한 임의의 구현 형태에 따른 상기 방법의 제6 구현 형태는, 상기 방법은 레이트 왜곡에 기초하여 상기 선택을 하는 단계를 더 포함한다. 제3 측면은, 비트스트림을 수신하도록 구성되는 수신기; 및 상기 수신기에 연결되며, PCC의 깊이를 지시하는 제1 파라미터를 상기 비트스트림으로부터 파싱하고, 옥트리 디코딩을 사용하여 상기 깊이 이전의 제1 노드를 디코딩하고, 상기 깊이 및 상기 깊이 이후의 제2 노드에 대한 노드 코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림으로부터 파싱하고, 상기 제2 파라미터에 기초하여 상기 제2 노드를 디코딩하도록 구성되는 프로세서를 포함하는 장치에 관한 것이다. 이러한 제3 측면에 따른 상기 장치의 제1 구현 형태는, 상기 옥트리 디코딩은 3D이고, 8개의 큐브 자식 노드를 사용한다. 이러한 제3 측면에 따르거나 또는 제3 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제2 구현 형태는, 상기 쿼드트리 디코딩은 2D이고, 4개의 정사각형 자식 노드를 사용한다. 이러한 제3 측면에 따르거나 또는 제3 측면의 전술한 임의의 구현 형태에 따른 상기 장치의 제3 구현 형태는, 상기 프로세서는, LoD에 도달할 때까지 상기 제1 노드 및 상기 제2 노드를 디코딩하도록 더 구성된다. 제4 측면은, 비트스트림을 수신하는 단계; PCC의 깊이를 지시하는 제1 파라미터를 상기 비트스트림으로부터 파싱하는 단계; 옥트리 디코딩을 사용하여 상기 깊이 이전의 제1 노드를 디코딩하는 단계; 상기 깊이 및 상기 깊이 이후의 제2 노드에 대한 노드 코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림으로부터 파싱하는 단계; 상기 제2 파라미터에 기초하여 상기 제2 노드를 디코딩하는 단계를 포함하는 방법에 관한 것이다. 제5 측면은, 포인트 클라우드를 획득하고, 부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택을 하고, 및 상기 선택에 기초하여 비트스트림 내로 상기 부모 노드를 인코딩하도록 구성되는 처리 수단; 및 상기 처리 수단에 연결되며, 상기 비트스트림을 전송하도록 구성되는 전송 수단을 포함하는 장치에 관한 것이다. 상기 실시예 중 임의의 것은 새로운 실시예를 생성하기 위해 상기 다른 임의의 실시예와 결합될 수 있다. 이들 및 다른 특징은 첨부된 도면 및 청구 범위와 함께 취해진 다음의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시의 보다 완전한 이해를 위해, 첨부한 도면 및 상세한 설명과 관련하여 취해진 다음의 간단한 설명을 참조하며, 여기서 유사한 도면 부호는 유사한 부분을 나타낸다.
도 1은 코딩 시스템의 개략도이다.
도 2는 단순화된 코딩 방법을 도시하는 흐름도이다.
도 3은 본 개시의 일 실시예에 따라 평탄성 제약에 기초한 하이브리드 기하학적 인코딩 방법을 도시하는 흐름도이다.
도 4A는 평면을 따라, 또는 실질적으로 평면을 따라 포인트를 갖는 부모 노드의 개략도이다.
도 4B는 평면을 따라, 또는 실질적으로 평면을 따라 포인트를 갖지 않는 부모 노드의 개략도이다.
도 5는 본 개시의 일 실시예에 따라, 비용에 기초한 하이브리드 기하학적 인코딩 방법을 도시하는 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 하이브리드 기하학적 디코딩 방법이다.
도 7은 본 개시의 일 실시예에 따라 하이브리드 기하학적 인코딩 방법을 도시하는 흐름도이다.
도 8은 본 개시의 일 실시예에 따라 하이브리드 기하학적 디코딩 방법을 도시하는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 장치의 개략도이다.
도 10은 코딩을 위한 수단의 개략도이다.
하나 이상의 실시예의 예시적인 구현이 아래에 제공되지만, 개시된 시스템 및/또는 방법은 현재 알려져 있거나 존재하는지 여부에 관계없이 임의의 수의 기법을 사용하여 구현될 수 있다는 것을 처음부터 이해해야 한다. 본 개시는 본 명세서에 예시되고 설명된 예시적인 설계 및 구현을 포함하여 아래에 설명되는 예시적인 구현, 도면 및 기술로 제한되지 않아야 하며, 균등물의 전체 범위와 함께 첨부된 청구 범위의 범위 내에서 수정될 수 있다.
다음 약어가 적용된다.
ASIC: 주문형 집적회로(application-specific integrated circuit)
CPU: 중앙 처리 장치(central processing unit)
DSP: 디지털 신호 처리기(digital signal processor)
EO: 전기-to-광학(electrical-to-optical)
FPGA: 필드 프로그램 가능 게이트 어레이(field-programmable gate array)
LoD: 세밀도(level of detail)
OE: 광학-to-전기(optical-to-electrical)
PCC: 포인트 클라우드 코딩(point cloud coding)
RAM: 랜덤 액세스 메모리(random-access memory)
RF: 무선 주파수(radio frequency)
ROM: 판독-전용 메모리(read-only memory)
RX: 수신 유닛(receiver unit)
SRAM: 정적(static RAM)
TCAM: 터너리 내용 주소화 메모리(ternary content-addressable memory)
TX: 전송 유닛(transmitter unit)
2D: 이차원(two-dimensional)
3D: 삼차원(three-dimensional)
도 1은 코딩 시스템(100)의 개략도이다. 코딩 시스템(100)은 소스 장치(110), 매체(150), 및 목적지 장치(160)를 포함한다.
소스 장치(110)는 포인트 클라우드 생성기(120), 인코더(130), 및 출력 인터페이스(140)를 포함한다. 포인트 클라우드 생성기(120)는 포인트 클라우드를 생성하기 구성 요소이다. 인코더(130)는 코덱이라고도 할 수 있다. 인코더(130)는 일련의 규칙에 따라 인코딩을 수행한다. 출력 인터페이스(140)는 목적지 장치(160)에 데이터를 전송하기 위해 적합한 안테나 또는 다른 구성 요소이다. 대안적으로, 포인트 클라우드 생성기(120), 인코더(130), 및 출력 인터페이스(140)는 장치의 조합에 있다.
매체(150)는 로컬 네트워크, 무선 네트워크, 인터넷, 또는 다른 적합한 매체이다. 매체(150)는 소스 장치(110) 및 목적지 장치(160) 사이에서 데이터를 통신한다.
목적지 장치(160)는 입력 인터페이스(170), 디코더(180), 및 프로젝터(190)를 포함한다. 입력 인터페이스(170)는 소스 장치(110)로부터 데이터를 수신하기 위해 적합한 안테나 또는 다른 구성 요소이다. 디코더(180)는 코덱이라고도 할 수 있다. 디코더(180)는 일련의 규칙에 따라 디코딩을 수행한다. 프로젝터(190)는 포인트 클라우드를 투영하기 위해 적합한 구성 요소이다. 대안적으로, 입력 인터페이스(170), 디코더(180), 및 프로젝터(190)는 장치의 조합에 있다.
작동 시, 소스 장치(110)에서, 포인트 클라우드 생성기(120)는 포인트 클라우드를 캡처하고, 인코더(130)는 포인트 클라우드를 인코딩하여 인코딩된 포인트 클라우드를 생성하고, 출력 인터페이스(140)는 인코딩된 포인트 클라우드를 매체(150)를 통해 목적지 장치(160)를 향해 전송한다. 소스 장치(110)는 포인트 클라우드 또는 인코딩된 포인트 클라우드를 로컬적으로 저장하거나, 또는 소스 장치(110)는 포인트 클라우드 또는 인코딩된 포인트 클라우드의 저장을 다른 장치에 명령할 수 있다. 목적지 장치(160)에서, 입력 인터페이스(170)는 인코딩된 포인트 클라우드를 소스 장치(110)로부터 수신하고, 디코더(180)는 인코딩된 포인트 클라우드를 디코딩하여 디코딩된 포인트 클라우드를 획득하고, 프로젝터(190)는 디코딩된 포인트 클라우드를 투영한다. 디코더(180)는, 인코더(130)가 포인트 클라우드를 인코딩하는 방법과 비교하여 반대 방식으로, 인코딩된 포인트 클라우드를 디코딩할 수 있다. 목적지 장치(160)는 인코딩된 포인트 클라우드 또는 디코딩된 포인트 클라우드를 로컬적으로 저장하거나, 또는 목적지 장치(160)는 인코딩된 포인트 클라우드 또는 디코딩된 포인트 클라우드의 저장을 다른 장치에 명령한다.
포인트 클라우드 생성기(120)는 라이다(lidar), 전통적인 카메라, 적외선 카메라, TOF(time-of-flight) 카메라, 레이저 시스템, 스캐너, 또는 대상을 스캔하고 대상을 표현하는 포인트 클라우드를 생성하는 다른 장치일 수 있다. 대상은 차량일 수 있고, 이에 포인트 클라우드는 3D일 수 있다. 포인트 클라우드는 수십만 또는 수백만 포인트를 포함할 수 있다. 따라서, 포인트 클라우드는 인코딩을 위한 상당량의 데이터 및 통신을 위한 상당량의 대역폭을 요구한다. 따라서, 포인트 클라우드를 효율적으로 코딩하여 통신하고자 하는 갈망이 있다.
인코더(130) 및 디코더(180)는 포인트 클라우드의 PCC를 수행한다. PCC는 속성 코딩(attribute coding) 및 기하학적 코딩(geometric coding)을 모두 포함한다. 코딩은 인코딩 및 디코딩을 모두 포함한다. 속성 코딩은 색상, 반사율, 및 투명도와 같은 속성을 코딩한다. 기하학적 코딩은 포인트가 있는 공간(space)을 코딩한다. 옥트리 코딩은 기하학적 코딩의 한 종류이다.
옥트리 코딩은 포인트 클라우드의 모든 포인트를 포함하는 3D 큐브인 부모 노드로 시작하며; 부모 노드를 3D 큐브이기도 한 8개의 자식 노드로 분할하고; 원하는 엔드포인트(endpoint)까지 해당 분할을 반복한다. 각 분할에서, 분할되는 노드는 부모 노드이고, 부모 노드가 분할되어버린 노드는 자식 노드이다. 각각의 부모 노드는 8개의 비트로 코딩되고, 각각의 비트는 대응하는 자식 노드가 포인트를 포함하는지 여부를 지시한다. 몇몇 부모 노드는 그들의 3D 공간으로 분산된 포인트를 갖지 않을 수 있다. 대신, 이러한 부모 노드는 평면을 따라 또는 실질적으로 평면을 따라 포인트를 가질 수 있다. 따라서, 이러한 부모 도르를 8개의 자식 노드로 분할하는 것은 비효율적이다.
여기에 포인트 클라우드의 하이브리드 기하학적 코딩을 위한 실시예가 개시된다. 본 컨텍스트에서, 포인트 클라우드의 하이브리드 기하학적 코딩은 3D 코딩 및 2D 코딩, 예를 들어, 인스턴스 옥트리 코딩 및 쿼드트리 코딩을 모두 포함한다. 쿼드트리 코딩은 3D 큐브인 부모 노드로 시작하고; 2D 평면 상에 부모 노드의 포인트를 투영하고; 평면을 2D 정사각형인 4개의 자식 노드로 분할한다. 부모 노드는 4 비트로 코딩되며, 각각의 비트는 대응하는 자식 노드가 포인트를 포함하는지 여부를 지시한다. 옥트리 코딩 또는 쿼드트리 코딩을 사용할지 여부는 평탄성 파라미터, 레이트(rate) 왜곡, 또는 다른 메트릭(metric)에 기초한다. 옥트리 코딩 및 쿼드트리 코딩 모두와 함께 하이브리드 기하학적 코딩이 논의되었지만, 실시예는 상이한 수의 노드를 갖는 다른 유형의 코딩에 적용된다. 또한, 평탄성 파라미터 및 레이트 왜곡이 논의되었지만, 실시예는 2D 코딩을 보다 효율적으로 만드는 다른 메트릭에 적용되는 동시에 허용 가능한 품질을 유지한다.
도 2는 단순화된 코딩 방법(200)을 도시하는 흐름도이다. 코딩 시스템(100)은 방법(200)을 구현한다. 단순화된 코딩 방법(200)은 코딩 프로세스의 부분을 설명한다. 따라서, 코딩 프로세스는 속성 코딩과 같은 다른 단계를 포함할 수 있다.
단계(210)에서, 인코더(130)는 포인트 클라우드의 기하학적 인코딩을 수행하여 제1 인코딩된 비트스트림을 획득할 수 있다. 단계(210)는 이하에서 도 3 및 도 5를 참조하여 더 기술된다. 단계(220)에서, 인코더(130)는 제1 인코딩된 비트스트림의 산술 인코딩을 수행하여 제2 인코딩된 비트스트림을 획득할 수 있다. 단계(230)에서, 출력 인터페이스(140)는 제2 인코딩된 비트스트림을 전송한다.
단계(240)에서, 입력 인터페이스(170)는 제2 인코딩된 비트스트림을 수신한다. 단계(250)에서, 디코더(180)는 제2 인코딩된 비트스트림의 산술 디코딩을 수행하여 디코딩된 비트스트림을 획득할 수 있다. 최종적으로, 단계(260)에서, 디코더(180)는 제1 디코딩된 비트스트림의 기하학적 디코딩을 수행하여 포인트 클라우드를 획득할 수 있다. 단계(260)는 이하에서 도 6을 참조하여 더 기술된다.
도 3은 본 개시의 일 실시예에 따라 평탄성 제약에 기초한 하이브리드 기하학적 인코딩 방법(300)을 도시하는 흐름도이다. 방법(300)은 도 2의 단계(210)를 구현할 수 있다. 단계(305)에서, 인코더(130)는 부모 노드를 위한 고유값 λ1, λ2, λ3을 계산한다. λ1, λ2, λ3은 세 개의 수직 축인 직교 기저(orthogonal basis)(x', y', z')를 형성한다. (x', y', z')는 전체 좌표계(global coordinate system)(x, y, z)에 대해 회전한다. (x, y, z) 및 (x', y', z') 사이의 각도는 Rx, Ry, 및 Rz다. 단계(310)에서, 인코더(130)는 부모 노드를 위한 평탄성 파라미터 Θ를 계산한다. λ3이 λ1, λ2, λ3 중 가장 작다고 가정하면, Θ는 다음과 같다:
Figure 112021005596327-pct00001
결정(315)에서, 인코더(130)는 λ3 < Θ인지 여부를 결정한다. 맞다면, 부모 노드는 평면을 따라, 또는 실질적으로 평면을 따라 포인트를 갖고, 방법(300)은 단계(320)로 진행한다. 그렇지 않다면, 부모 노드는 평면을 따라, 또는 실질적으로 평면을 따라 포인트를 갖지 않고, 방법(300)은 단계(340)로 진행한다.
도 4A는 평면을 따라, 또는 실질적으로 평면을 따라 포인트를 갖는 부모 노드(410)의 개략도이다. 따라서, 방법(300)은 부모 노드(410)를 위한 단계(320)로 진행할 것이다. 도 4B는 평면을 따라, 또는 실질적으로 평면을 따라 포인트를 갖지 않는 부모 노드(420)의 개략도이다. 따라서, 방법(300)은 부모 노드(420)를 위한 단계(340)로 진행할 것이다.
도 3으로 돌아와서, 단계(320)에서, 인코더(130)는 부모 노드를 쿼드트리 노드로 설정한다. 예를 들어, 인코더(130)는 node_coding_mode = 1을 인코딩한다. 단계(325)에서, 인코더(130)는 평면의 파라미터를 계산한다. 구체적으로, 인코더(130)는 λ3에 대응하는 고유벡터; 고유벡터에 대응하는 법선 벡터(normal vector) n; 부모 노드에 대응하는 법선 벡터 n'를 결정하고, n을 n'에 비교하여 x-방향에 대한 각도 θ, y-방향에 대한 각도 φ, z-방향에 대한 각도 ψ를 획득한다. θ, φ, ψ를 사용하여, 인코더(130)는 다음의 구성 요소로 회전 세트 (Rx, Ry, Rz)를 계산한다:
Figure 112021005596327-pct00002
도심 변형(centroid translation) 구성 요소 tx, ty, 및 tz를 사용하여, 인코더(130)는 변형 매트릭스 T를 다음과 같이 계산한다:
Figure 112021005596327-pct00003
T는 원점(origin)을 부모 노드의 중심으로부터 평면의 중심으로 이동시킨다. 인코더(130)는 평면의 측면의 크기를 2m으로 더 계산하고, 여기서 m = QTNodeSizeLog2 는 다음과 같이 부모 포인트 클라우드의 scale_projection 및 NodeSizeLog2에 기초한다:
Figure 112021005596327-pct00004
단계(330)에서, 인코더(130)는 포인트 클라우드의 포인트를 평면 상에 투영한다. 구체적으로, 인코더(130)는 (Rx, Ry, Rz) 및 T를 사용하여, 3D (x, y, z) 좌표계로부터 2D (u, v) 좌표계로 포인트를 투영한다. 단계(335)에서, 인코더(130)는 부모 노드를 쿼드트리 노드로서 인코딩한다.
포인트를 평면 상에 투영하는 제1 대안으로서, 인코더(130)는 회전을 적용한 이후에, 투영 축 색인 및 거리를 사용한다. 그 경우에, 인코더(130)는 포인트에 세 회전만을 적용할 수 있다. 포인트를 평면 상에 투영하는 제2 대안으로서, 인코더(130)는 자식 노드 표면 중 하나에 회전 없이 사투영(oblique projection)을 사용한다. 그 경우에, 인코더(130)는 법선 벡터 n (x, y, z), 평면의 도심까지의 거리 d, 및 투영 평면 색인을 인코딩한다. 예를 들어, 투영 평면 색인은 xy에 대해 00, xz에 대해 01, 그리고 yz에 대해 10이다. 투영 평면은 다음과 같이 최소 크기의 투영된 법선을 갖는 평면일 수 있다:
Figure 112021005596327-pct00005
법선 투영 크기가 0이면, 평면은 대응하는 좌표 평면에 평행하므로, 인코더(130)는 거리 및 투영 평면 색인만 인코딩할 수 있다. 따라서, 법선 벡터가 없으면, 평면은 대응하는 좌표 평면에 평행하다.
단계(340)에서, 인코더(130)는 부모 노드를 옥트리 노드로서 설정한다. 단계(345)에서, 인코더(130)는 부모 노드를 옥트리 노드로서 인코딩한다. 마지막으로, 단계(350)에서, 인코더(130)는 자식 노드를 생성한다. 부모 노드가 쿼드트리 노드이면, 인코더(130)는 자식 노드의 중심 포인트를 다음과 같이 계산한다:
Figure 112021005596327-pct00006
부모 노드가 옥트리 노드이면, 인코더(130)는 자식 노드의 중심 포인트를 표준 옥트리 인코딩을 사용하여 계산한다.
인코더(130)는 노드 분할(division) 또는 분열(split)의 미리 정의된 최대 횟수를 지시하는 LoD에 도달할 때까지 방법(300)을 반복한다. 일단 인코더(130)가 부모 노드를 쿼드트리 노드로서 설정하면, 인코더(130)는 방법(300)이 LoD에 도달할 때까지 인코딩 각각의 연속적인 자식 노드, 손자 노드, 등을 쿼드트리 노드로서 인코딩한다.
시그널링을 감소시키기 위하여, 인코더(130)는 옥트리 인코딩을 가정하고, minQuadTreeDepth가 지시하는, maxQuadTreeSizeLog2가 지시하는, 또는 부모 노드의 포인트의 수가 임계 미만인 깊이에서 시작하는 방법(300)을 수행할 수 있다. 인코더(130)는 minQuadTreeDepth 또는 maxQuadTreeSizeLog2를 인코딩할 수 있다. 깊이는 노드 분열의 수를 지시한다. minQuadTreeDepth = 0인 경우, 쿼드트리 코딩이 사용되지 않는다. 인코더(130)는 minQuadTreeDepth 또는 maxQuadTreeSizeLog2를 시그널링할 수 있다.
도 5는 본 개시의 일 실시예에 따라, 비용에 기초한 하이브리드 기하학적 인코딩 방법(500)을 도시하는 흐름도이다. 방법(500)은 도 2에서 단계(210)를 구현할 수 있다. 단계(505)에서, 인코더(130)는 부모 노드에 대해 옥트리 코딩의 비용 CO을 계산한다. 단계(510)에서, 인코더(130)는 부모 노드에 대해 쿼드트리 코딩의 비용 CQ을 계산한다. 비용 CO, CQ은 레이트 왜곡, 포인트 클라우드 내 포인트의 평탄성, 또는 다른 메트릭을 지시한다. 결정(515)에서, 인코더(130)는 CQ < CO인지 여부를 결정한다. 맞다면, 쿼드트리 코딩은 상당히 낮은 비용을 갖고, 방법(500)은 단계(520)로 진행한다. 아니라면, 쿼드트리 코딩은 상당히 낮은 비용을 갖지 않고, 방법(500)은 단계(540)로 진행한다. 시그널링을 감소시키기 위하여, 인코더(130)는 옥트리 인코딩을 가정하고, minQuadTreeDepth가 지시하는, maxQuadTreeSizeLog2가 지시하는, 또는 부모 노드의 포인트의 수가 임계 미만인 깊이에서 시작하는 방법(500)을 수행할 수 있다. 인코더(130)는 minQuadTreeDepth 또는 maxQuadTreeSizeLog2를 시그널링할 수 있다. 단계(520) 내지 (550)는 도 3의 단계(320) 내지 (350)와 유사하다.
인코더(130)는 LoD에 도달할 때까지 방법(500)을 반복한다. 일단 인코더(130)가 부모 노드를 쿼드트리 노드로서 설정하면, 인코더(130)는 방법(300)이 LoD에 도달할 때까지 인코딩 각각의 연속적인 자식 노드, 손자 노드, 등을 쿼드트리 노드로서 인코딩한다.
도 3의 방법(300)과 도 5의 방법(500)에 더 설명되어 있는 도 2의 단계(210)를 더 구현하기 위하여, 인코더(130)는 다음의 신택스를 기하 비트스트림 신택스로서 인코딩할 수 있다:
Figure 112021005596327-pct00007
기하 비트스트림 신택스
bitstream_size_in_bytes는 압축된 기하 비트스트림 크기를 바이트로 명시한다. minQuadTreeDepth는 현재 포인트 클라우드에서 쿼드트리 해제를 위한 최소 깊이를 명시한다. minQaudTreeDepth = 0이면, 비트스트림은 쿼드트리 노드를 포함하지 않는다. minQaudTreeDepth가 정의되지 않으면, 이는 0이다.
GeometryNodeOccupancyCnt [ depth ][ xN ][ yN ][ zN ]는, 주어진 깊이에서의 위치 (xN, yN, zN)의 옥트리 노드에 있는 자식 노드의 수를 나타낸다. GeometryNodeOccupancyCnt의 정의되지 않은 값은 0으로 취급된다. GeometryNodeOccupancyCnt [ -1 ][ 0 ][ 0 ][ 0 ] = 8로 초기화된다.
NodeX [ depth ][ nodeIdx ], NodeY [ depth ][ nodeIdx ], 및 NodeZ [ depth ][ nodeIdx ]는, 주어진 깊이에서 디코딩 순서의 idx번째 노드의 x, y, z 좌표를 나타낸다. 그들은 NodeX [ 0 ] = NodeY [ 0 ] = NodeZ [ 0 ] = 0로 초기화된다. NumNodesAtDepth [ depth ]는 주어진 깊이에서 디코딩될 노드의 수를 나타낸다. NumNodesAtDepth[ 0 ] = 1로 초기화된다.
그리고, 인코더(130)는 다음의 신택스를 기하 노드 신택스로서 인코딩할 수 있다:
Figure 112021005596327-pct00008
기하 노드 신택스
깊이 MaxGeometryCodeTreeDepth에서의 노드는, 리프(leaf) 노드라고 일컬어지는 마지막 자식 노드다. 쿼드트리 코딩에 대해, 노드의 위치는 하단 좌측 코너 위치의 좌표 (uN, vN)로서 주어진다. uPn 및 yvn은 노드의 부모 노드의 위치를 다음과 같이 지시한다:
Figure 112021005596327-pct00009
옥트리 코딩에 대해, 노드의 위치는 하단 좌측 코너 위치의 좌표 ( xN, yN, zN)로서 주어진다. xPn, yPn, 및 zPn은 노드의 부모 노드의 위치를 다음과 같이 지시한다:
Figure 112021005596327-pct00010
NodeSizeLog2는 NodeSizeLog2 = MaxGeometryOctreeDepth - depth 와 같이 도출된다. ChildNodeSizeLog2는 ChildNodeSizeLog2 = NodeSizeLog2 - 1 와 같이 도출된다. NeighbourPattern은 다음과 같이 도출된다:
Figure 112021005596327-pct00011
쿼드트리 코딩에 대해, 이웃 패턴은 빈(empty) 노드로서 가정된다. single_occupancy_flag = 1은 노드가 단일 자식 노드를 포함하는 것을 지시한다. single_occupancy_flag = 0은 노드가 다수의 자식 노드를 포함할 수 있다는 것을 지시한다. occupancy_idx는 부모 노드에 있는 단일 자식 노드를 식별한다. 존재하면, OccupancyMap은 1 << occupancy_idx과 같이 설정된다. occupancy_map은 부모 노드에 있는 자식 노드를 식별하는 비트맵이다. 존재하면, NeighbourPattern 및 occupancy_map 을 입력으로 하여 호출될 때, OccupancyMap은 기하 점유 맵 순열 프로세스(geometry occupancy map permutation process)의 출력과 같이 설정된다. 쿼드트리 코딩에 대해, occupancy_map은 최대 4개의 입력 엘리먼트를 갖는다. 옥트리 코딩에 대해, occupancy_map은 최대 8개의 입력 엘리먼트를 갖는다. 어레이 GeometryNodeChildren [ i ]는 부모 노드의 i번째 점유된 자식 노드의 색인을 식별한다. GeometryNodeChildrenCnt는 어레이 GeometryNodeChildren [ ] 에서 자식 노드의 수를 식별한다. 옥트리 코딩에 대해, 부모 노드는 1 내지 8의 자식을 가질 수 있다. 쿼드트리 코딩에 대해, 부모 노드는 1 내지 4의 자식을 가질 수 있다.
occupancy_idx 또는 occupancy_map이 존재하면 다음이 적용된다:
Figure 112021005596327-pct00012
DirectModeFlagPresent는 다음과 같이 도출된다:
Figure 112021005596327-pct00013
num_points_eq_1_flag = 1 은 현재 자식 노드가 단일 포인트를 포함한다는 것을 지시한다. num_points_eq_1_flag = 0 은 자식 노드가 적어도 2개의 포인트를 포함한다는 것을 지시한다. 존재하지 않으면, num_points_eq_1_flag = 1인 것으로 추론된다. num_points_minus2는 자식 노드가 나타내는 포인트의 수를 지시한다. direct_mode_flag = 1은 부모 노드의 단일 자식 노드가 리프 노드이고 하나 이상의 델타(delta) 포인트 좌표를 포함한다는 것을 지시한다. direct_mode_flag = 0은 부모 노드의 단일 자식 노드가 옥트리 노드인 것을 지시한다. 존재하지 않으면, direct_mode_flag = 0인 것으로 추론된다.
direct_mode_flag가 1과 같을 때, 다음이 적용된다: GeometryNodeOccupancyCnt [ depth ][ xN ][ yN ][ zN ] = 0. direct_mode_flag가 0과 같을 때, 다음이 적용된다:
Figure 112021005596327-pct00014
num_direct_points_minus1은 자식 노드의 포인트의 수를 지시한다. point_rem_x [ i ][ j ], point_rem_y [ i ][ j ], 및 point_rem_z [ i ][ j ]은, 색인 GeometryNodeChildren [ 0 ]에 의해 식별되는 자식 노드의 원점에 관하여 현재 자식 노드의 i번째 포인트의 j번째 비트의 x, y, 및 z 좌표를 각각 나타낸다.
도 6은 본 개시의 일 실시예에 따른 하이브리드 기하학적 디코딩 방법(600)이다. 방법(600)은 도 2의 단계(260)를 구현할 수 있다. 결정(610)에서, 디코더(180)는 minQuadTreeDepth = 0 인지 여부를 결정한다. 그렇다면, 방법(600)은 단계(620)로 진행한다. 그렇지 않다면, 방법(600)은 결정(630)으로 진행한다. 대안적으로, 디코더(180)는, 부모 노드의 포인트의 수가 임계 밑인 깊이에 도달하면 바로 단계(620)로 진행한다. 단계(620)에서, 디코더(180)는 현재 노드를 옥트리 노드로서 디코딩한다. 디코더(180)는 LoD에 도달할 때까지 단계(620)를 반복한다.
결정(630)에서, 디코더(180)는 node_coding_mode = 0인지 여부를 결정한다. 그렇다면, 방법(600)은 단계(640)로 진행한다. 그렇지 않다면, 방법은 단계(650)로 진행한다. 단계(640)에서, 디코더(180)는 현재 노드를 옥트리 노드로서 디코딩한다. 또한, 현재 노드가 옥트리 노드이고, 옥트리 노드이기도 한 부모 노드를 갖는 경우, 디코더(180)는 비트스트림으로부터 추가 정보를 판독하지 않을 수 있다. 단계(650)에서, 디코더(180)는 현재 노드를 쿼드트리 노드로서 디코딩한다. 현재 노드가 쿼드트리 노드이고, 옥트리 노드인 부모 노드를 갖는 경우, 디코더(180)는 비트스트림으로부터 스케일(scale) 파라미터, 오프셋 파라미터 (mean_value_x, mean_value_y, mean_value_z), 및 법선 파라미터(projection_rot_x, projection_rot_y, projection_rot_z)를 판독하고, 디코더(180)는 인버스 스케일 파라미터(scale_projection)를 적용하여 포인트를 평면 상에 투영한다. 현재 노드가 쿼드트리 노드이고, 쿼드트리 노드이기도 한 부모 노드를 갖는 경우, 디코더(180)는 비트스트림으로부터 스케일 파라미터, 오프셋 파라미터(mean_value_x, mean_value_y, mean_value_z), 및 법선 파라미터(projection_rot_x, projection_rot_y, projection_rot_z)(부모 노드로부터 기인함)를 판독하고, 디코더(180)는 인버스 스케일 파라미터(scale_projection)를 적용하여 포인트를 평면 상에 투영한다. 디코더(180)는 단계(640)를 위해 결정(630)을 반복하고, LoD에 도달할 때까지 단계(640)-(650)를 반복한다.
도 7은 본 개시의 일 실시예에 따라 하이브리드 기하학적 인코딩 방법(700)을 도시하는 흐름도이다. 소스 장치(110)는 방법(700)을 구현한다. 단계(710)에서, 포인트 클라우드가 획득된다. 예를 들어, 포인트 클라우드 생성기(120)는 포인트 클라우드를 기록한다. 단계(720)에서, 부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택이 행해진다. 예를 들어, 인코더(130)는 도 3에서 결정(315)을 하거나 또는 도 5에서 결정(515)을 한다. 단계(730)에서, 부모 노드는 선택에 기초하여 비트스트림 내로 인코딩된다. 예를 들어, 인코더(130)는 도 3에서 단계(335) 또는 단계(345)를 수행하거나 또는 도 5에서 단계(535) 또는 단계(545)를 수행한다. 마지막으로, 단계(740)에서, 비트스트림이 전송된다. 예를 들어, 출력 인터페이스(140)는 매체(150)를 통해 비트스트림을 목적지 장치(160)에 전송한다.
도 8은 본 개시의 일 실시예에 따라 하이브리드 기하학적 디코딩 방법(800)을 도시하는 흐름도이다. 목적지 장치(160)는 방법(800)을 구현한다. 단계(810)에서, 비트스트림이 수신된다. 예를 들어, 입력 인터페이스(170)는 소스 장치(110)로부터 비트스트림을 수신한다. 단계(820)에서, PCC의 깊이를 지시하는 제1 파라미터는 비트스트림으로부터 파싱된다. 예를 들어, 디코더(180)는 비트스트림으로부터 minQuadTreeDepth를 파싱한다. 단계(830)에서, 깊이 이전의 제1 노드는 옥트리 디코딩을 사용하여 디코딩된다. 예를 들어, 디코더(180)는 도 6에서 결정(610)의 예(yes) 결과 이후에 단계(620)를 수행한다. 단계(840)에서, 깊이에서 또는 깊이 이후의 제2 노드를 위한 노드 코딩 모드를 지시하는 제2 파라미터는 비트스트림으로부터 파싱된다. 예를 들어, 디코더(180)는 비트스트림으로부터 node_coding_mode를 파싱한다. 마지막으로, 단계(850)에서, 제2 노드는 제2 파라미터에 기초하여 디코딩된다. 예를 들어, 디코더(180)는 도 6에서 단계(640) 또는 단계(650)를 수행한다.
도 9는 본 개시의 일 실시예에 따른 장치(900)의 개략도이다. 장치(900)는 개시된 실시예를 구현할 수 있다. 장치(900)는 데이터를 수신하기 위한 입구 포트(910) 및 RX(920); 데이터를 처리하기 위한 프로세서, 논리 유닛, 베이스밴드 유닛, 또는 CPU(930); 데이터를 전송하기 위한 TX(940) 및 출구 포트(950); 및 데이터를 저장하기 위한 메모리(960)를 포함한다. 장치(900)는 또한 입구 포트(910), RX(920), TX(940), 및 출구 포트(950)에 연결되는 OE 구성 요소, EO 구성 요소, 또는 RF 구성 요소(컴포넌트)를 포함하여, 광학 신호, 전기 신호, 또는 RF 신호의 입구 또는 출구를 제공할 수 있다.
프로세서(930)는 하드웨어, 미들웨어, 펌웨어, 또는 소프트웨어의 임의의 조합이다. 프로세서(930)는 CPU 칩, 코어, FPGA, ASIC, 또는 DSP 중 하나 이상의 임의의 조합을 포함한다. 프로세서(930)는 입구 포트(910), RX(920), TX(940), 출구 포트(950), 및 메모리(960)와 통신한다. 프로세서(930)는, 개시된 실시예를 구현하는, 하이브리드 기하학적 코딩 구성 요소(970)를 포함한다. 하이브리드 기하학적 코딩 구성 요소(970)의 포함은 따라서 장치(900)의 기능성에 상당한 향상을 제공하고, 장치(900)의 상이한 상태로의 변환에 영향을 미친다. 대안적으로, 메모리(960)는 하이브리드 기하학적 코딩 구성 요소(970)를 명령어로서 저장하고, 프로세서(930)는 이러한 명령어를 실행한다.
메모리(960)는 디스크, 테이프 드라이브, 또는 고체 상태 드라이브의 임의의 조합을 포함한다. 장치(900)는, 장치(900)가 실행을 위해 이러한 프로그램을 선택할 때 프로그램을 저장하기 위해, 그리고 장치(900)가 이러한 프로그램의 실행 중에 판독하는 명령어 및 데이터를 저장하기 위해, 메모리(960)를 오버플로우(over-flow) 데이터 저장 장치(예를 들어, 컴퓨터 프로그램 제품)로 사용할 수 있다. 메모리(960)는 휘발성 또는 비휘발성일 수 있고, ROM, RAM, TCAM, 또는 SRAM의 임의의 조합일 수 있다.
컴퓨터 프로그램 제품은, 프로세서, 예를 들어, 프로세서(930)에 의해 실행되면 장치로 하여금 임의의 실시예를 수행하도록 하는, 비일시적 매체에 저장되는 컴퓨터-실행 가능한 명령어를 포함할 수 있다.
도 10은 코딩을 위한 수단(1000)의 개략도이다. 일 실시예로서, 코딩을 위한 수단(1000)은 PCC 장치(1002)(예컨대, 인코더(130) 또는 디코더(180))에서 구현된다. PCC 장치(1002)는 수신 수단(1001)을 포함한다. 수신 수단(1001)은 인코딩을 위한 사진을 수신하거나 또는 디코딩을 위한 비트스트림을 수신하도록 구성된다. PCC 장치(1002)는 수신 수단(1001)에 연결되는 전송 수단(1007)을 포함한다. 전송 수단(1007)은 비트스트림을 디코더에 전송하거나, 또는 디코딩된 이미지를 디스플레이 수단에 전송하도록 구성된다.
PCC 장치(1002)는 저장 수단(1003)을 포함한다. 저장 수단(1003)은 수신 수단(1001) 또는 전송 수단(1007) 중 적어도 하나에 연결된다. 저장 수단(1003)은 명령어를 저장하도록 구성된다. PCC 장치(1002)는 또한 처리 수단(1005)을 포함한다. 처리 수단(1005)은 저장 수단(1003)에 연결된다. 처리 수단(1005)은 여기에 개시된 방법을 수행하기 위해 저장 수단(1003)에 저장된 명령어를 실행하도록 구성된다.
본 개시에서 여러 실시예가 제공되었지만, 개시된 시스템 및 방법은 본 개시의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태로 구현 될 수 있음을 이해할 수 있다. 본 예는 제한적이지 않고 예시적인 것으로 간주되어야 하며, 의도는 여기에 제공된 세부 사항에 제한되지 않는다. 예를 들어, 다양한 엘리먼트 또는 구성 요소는 다른 시스템에서 결합 또는 통합될 수 있거나, 특정 기능이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예에서 개별적이거나 별개로 설명되고 예시된 기술, 시스템, 서브시스템, 및 방법은 본 개시의 범위를 벗어나지 않고 다른 시스템, 구성 요소, 기술, 또는 방법과 결합되거나 통합될 수 있다. 결합된 것으로 도시되거나 논의된 다른 항목은 직접 결합될 수 있거나, 간접적으로 결합되거나, 전기적, 기계적으로 또는 다른 방식으로 일부 인터페이스, 장치, 또는 중간 구성 요소를 통해 통신할 수 있다. 변경, 대체, 및 변경의 다른 예는 통상의 기술자에 의해 확인될 수 있으며, 여기에 개시된 사상 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (20)

  1. 장치로서,
    포인트 클라우드를 획득하고,
    부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택을 하고, 및
    상기 선택에 기초하여 비트스트림 내로 상기 부모 노드를 인코딩하도록 구성되는 프로세서; 및
    상기 프로세서에 연결되며, 상기 비트스트림을 전송하도록 구성되는 전송기
    를 포함하고,
    상기 프로세서는,
    포인트 클라우드 코딩 정보의 깊이를 지시하는 제1 파라미터를 상기 비트스트림 내로 인코딩하고 - 상기 포인트 클라우드 코딩 정보의 깊이는 쿼드트리 인코딩이 처음으로 사용되는 깊이이고, 상기 깊이 이전의 제1 노드 세트의 각각은 옥트리 인코딩을 사용하여 디코딩됨 -;
    상기 제1 파라미터에 따른 깊이 및 그 깊이 이후의 제2 노드 세트의 각각에 대해 노드 인코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림 내로 인코딩 - 상기 노드 인코딩 모드는 상기 옥트리 인코딩 또는 상기 쿼드트리 인코딩 중 하나임 -
    하도록 더 구성되는, 장치.
  2. 제1항에 있어서,
    상기 옥트리 인코딩은 3차원(3D)인,
    장치.
  3. 제2항에 있어서,
    상기 옥트리 인코딩은 8개의 큐브(cube) 자식 노드를 사용하는,
    장치.
  4. 제1항에 있어서,
    상기 쿼드트리 인코딩은 이차원(2D)인,
    장치.
  5. 제4항에 있어서,
    상기 쿼드트리 인코딩은 4개의 정사각형 자식 노드를 사용하는,
    장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    평탄성(flatness) 파라미터에 기초하여 상기 선택을 하도록 더 구성되는,
    장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    레이트(rate) 왜곡에 기초하여 상기 선택을 하도록 더 구성되는,
    장치.
  8. 방법으로서,
    포인트 클라우드를 획득하는 단계;
    부모 노드의 옥트리 인코딩 또는 쿼드트리 인코딩 간의 선택을 하는 단계;
    상기 선택에 기초하여 비트스트림 내로 상기 부모 노드를 인코딩하는 단계; 및
    상기 비트스트림을 전송하는 단계
    를 포함하고, 상기 방법은,
    포인트 클라우드 코딩 정보의 깊이를 지시하는 제1 파라미터를 상기 비트스트림 내로 인코딩하는 단계 - 상기 포인트 클라우드 코딩 정보의 깊이는 쿼드트리 인코딩이 처음으로 사용되는 깊이이고, 상기 깊이 이전의 제1 노드 세트의 각각은 옥트리 인코딩을 사용하여 디코딩됨 -; 및
    상기 제1 파라미터에 따른 깊이 및 그 깊이 이후의 제2 노드 세트의 각각에 대해 노드 인코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림 내로 인코딩하는 단계 - 상기 노드 인코딩 모드는 상기 옥트리 인코딩 또는 상기 쿼드트리 인코딩 중 하나임 -
    를 더 포함하는, 방법.
  9. 제8항에 있어서,
    상기 옥트리 인코딩은 3차원(3D)인,
    방법.
  10. 제9항에 있어서,
    상기 옥트리 인코딩은 8개의 큐브 자식 노드를 사용하는,
    방법.
  11. 제8항에 있어서,
    상기 쿼드트리 인코딩은 이차원(2D)인,
    방법.
  12. 제11항에 있어서,
    상기 쿼드트리 인코딩은 4개의 정사각형 자식 노드를 사용하는,
    방법.
  13. 제8항에 있어서,
    평탄성 파라미터에 기초하여 상기 선택을 더 하는 단계; 또는
    레이트 왜곡에 기초하여 상기 선택을 더 하는 단계
    를 더 포함하는 방법.
  14. 장치로서,
    비트스트림을 수신하도록 구성되는 수신기; 및
    상기 수신기에 연결되며,
    포인트 클라우드 코딩(point cloud coding, PCC)의 깊이를 지시하는 제1 파라미터를 상기 비트스트림으로부터 파싱하고,
    옥트리 디코딩을 사용하여 상기 깊이 이전의 제1 노드를 디코딩하고,
    상기 깊이 및 상기 깊이 이후의 제2 노드에 대한 노드 코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림으로부터 파싱하고,
    상기 제2 파라미터를 기초로 상기 옥트리 디코딩 또는 쿼드트리 디코딩을 사용하여 상기 제2 노드를 디코딩
    하도록 구성되는 프로세서
    를 포함하는 장치.
  15. 제14항에 있어서,
    상기 옥트리 디코딩은 3차원(3D)이고, 8개의 큐브 자식 노드를 사용하는,
    장치.
  16. 제14항에 있어서,
    상기 쿼드트리 디코딩은 이차원(2D)이고, 4개의 정사각형 자식 노드를 사용하는,
    장치.
  17. 제14항에 있어서,
    상기 프로세서는,
    세밀도(level of detail, LoD)에 도달할 때까지 상기 제1 노드 및 상기 제2 노드를 디코딩하도록 더 구성되는,
    장치.
  18. 방법으로서,
    비트스트림을 수신하는 단계;
    포인트 클라우드 코딩(point cloud coding, PCC)의 깊이를 지시하는 제1 파라미터를 상기 비트스트림으로부터 파싱하는 단계;
    옥트리 디코딩을 사용하여 상기 깊이 이전의 제1 노드를 디코딩하는 단계;
    상기 깊이 및 상기 깊이 이후의 제2 노드에 대한 노드 코딩 모드를 지시하는 제2 파라미터를 상기 비트스트림으로부터 파싱하는 단계;
    상기 제2 파라미터를 기초로 상기 옥트리 디코딩 또는 쿼드트리 디코딩을 사용하여 상기 제2 노드를 디코딩하는 단계
    를 포함하는 방법.
  19. 삭제
  20. 삭제
KR1020217001427A 2018-06-25 2019-06-25 포인트 클라우드의 하이브리드 기하학적 코딩 KR102486255B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862689666P 2018-06-25 2018-06-25
US62/689,666 2018-06-25
PCT/US2019/039031 WO2020005975A1 (en) 2018-06-25 2019-06-25 Hybrid geometric coding of point clouds

Publications (2)

Publication Number Publication Date
KR20210019555A KR20210019555A (ko) 2021-02-22
KR102486255B1 true KR102486255B1 (ko) 2023-01-06

Family

ID=68987118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217001427A KR102486255B1 (ko) 2018-06-25 2019-06-25 포인트 클라우드의 하이브리드 기하학적 코딩

Country Status (9)

Country Link
US (1) US20210104077A1 (ko)
EP (1) EP3803798B1 (ko)
JP (1) JP7183309B2 (ko)
KR (1) KR102486255B1 (ko)
CN (1) CN112384953B (ko)
BR (1) BR112020026567A2 (ko)
MX (1) MX2020014247A (ko)
SG (1) SG11202012837QA (ko)
WO (1) WO2020005975A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7322020B2 (ja) * 2018-06-27 2023-08-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
WO2020116619A1 (ja) * 2018-12-07 2020-06-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置
AU2020303920B2 (en) * 2019-06-26 2023-02-02 Tencent America LLC Implicit quadtree or binary-tree geometry partition for point cloud coding
US11503870B2 (en) * 2019-09-12 2022-11-22 Adobe Inc. Pattern filling in garment pieces
US11475605B2 (en) 2020-01-09 2022-10-18 Apple Inc. Geometry encoding of duplicate points
WO2021207947A1 (en) * 2020-04-14 2021-10-21 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus for processing a point cloud
CN114241026A (zh) * 2021-12-31 2022-03-25 西安邮电大学 基于平坦度划分的点云精简算法和装置
WO2024044082A2 (en) * 2022-08-23 2024-02-29 Innopeak Technology, Inc. Decoding method, encoding method, decoder and endoder

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005259139A (ja) * 2004-03-08 2005-09-22 Samsung Electronics Co Ltd 適応的2n進ツリーの生成方法、ならびにそれを利用して3次元体積データを符号化/復号化する方法および装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
KR100446635B1 (ko) * 2001-11-27 2004-09-04 삼성전자주식회사 깊이 이미지 기반 3차원 객체 표현 장치 및 방법
CN1261912C (zh) * 2001-11-27 2006-06-28 三星电子株式会社 基于深度图像表示三维物体的装置和方法
KR100519780B1 (ko) * 2004-02-17 2005-10-07 삼성전자주식회사 3차원 체적 데이터 부호화/복호화 방법 및 장치
EP2777018A4 (en) * 2011-11-07 2016-07-06 Thomson Licensing PREDICTIVE POSITION CODING
CN104321970B (zh) * 2012-06-26 2018-01-19 英特尔公司 层间编码单元四叉树模式预测
AU2014201583A1 (en) * 2014-03-14 2015-10-01 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data using a block dictionary
EP2933777A1 (en) * 2014-04-17 2015-10-21 amberMind Three dimensional modeling
CN107993279B (zh) * 2017-11-03 2021-06-29 中国人民解放军陆军工程大学 一种场景精确表达方法
US10535161B2 (en) * 2017-11-09 2020-01-14 Samsung Electronics Co., Ltd. Point cloud compression using non-orthogonal projection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005259139A (ja) * 2004-03-08 2005-09-22 Samsung Electronics Co Ltd 適応的2n進ツリーの生成方法、ならびにそれを利用して3次元体積データを符号化/復号化する方法および装置

Also Published As

Publication number Publication date
EP3803798A4 (en) 2021-08-18
BR112020026567A2 (pt) 2021-03-23
WO2020005975A1 (en) 2020-01-02
US20210104077A1 (en) 2021-04-08
MX2020014247A (es) 2021-05-12
JP7183309B2 (ja) 2022-12-05
KR20210019555A (ko) 2021-02-22
SG11202012837QA (en) 2021-01-28
EP3803798A1 (en) 2021-04-14
JP2021530143A (ja) 2021-11-04
EP3803798B1 (en) 2024-01-24
CN112384953A (zh) 2021-02-19
CN112384953B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
KR102486255B1 (ko) 포인트 클라우드의 하이브리드 기하학적 코딩
US11875541B2 (en) Predictive geometry coding in G-PCC
KR20200108875A (ko) 포인트 클라우드 압축에서 직접 코딩을 사용하는 방법 및 디바이스
US11956470B2 (en) Predictor index signaling for predicting transform in geometry-based point cloud compression
KR20230020418A (ko) G-pcc 에서의 속성 잔차 코딩
WO2022134752A1 (en) Method and apparatus of entropy encoding/decoding point cloud geometry data captured by a spinning sensors head
WO2023040392A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
EP4369716A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US20240233197A9 (en) Enhanced Edge Neighborhood for Coding Vertex Information
WO2024212043A1 (zh) 编解码方法、码流、编码器、解码器以及存储介质
US20240244242A1 (en) Reduced Memory Coding
US20240214600A1 (en) Motion Compensation based Neighborhood Configuration for TriSoup Centroid Information
US20240355005A1 (en) Coding TriSoup Vertex Information
WO2024145933A1 (zh) 点云编解码方法、装置、设备及存储介质
US20240273770A1 (en) Parametrization for Voxelizing Triangles in Point Cloud Coding
US20240377510A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2023142133A1 (zh) 编码方法、解码方法、编码器、解码器及存储介质
EP4152264A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
WO2024031584A1 (en) Method for encoding and decoding a 3d point cloud, encoder, decoder
WO2023050912A1 (en) Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor
EP4113442A1 (en) Method and apparatus of encoding/decoding point cloud captured by a spinning sensors head
WO2024031586A1 (en) Method for encoding and decoding a 3d point cloud, encoder, decoder
WO2024059232A1 (en) Point cloud decoding method, point cloud encoding method, decoder and encoder
CN117223287A (zh) 点云处理方法及装置、编码器、解码器、可读存储介质
CN116997931A (zh) 用于编码及解码trisoup顶点位置的方法

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