KR20240097892A - 포인트 클라우드 코딩을 위한 방법, 장치 및 매체 - Google Patents
포인트 클라우드 코딩을 위한 방법, 장치 및 매체 Download PDFInfo
- Publication number
- KR20240097892A KR20240097892A KR1020247017860A KR20247017860A KR20240097892A KR 20240097892 A KR20240097892 A KR 20240097892A KR 1020247017860 A KR1020247017860 A KR 1020247017860A KR 20247017860 A KR20247017860 A KR 20247017860A KR 20240097892 A KR20240097892 A KR 20240097892A
- Authority
- KR
- South Korea
- Prior art keywords
- point
- search
- sample
- points
- point cloud
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 174
- 238000006243 chemical reaction Methods 0.000 claims abstract description 62
- 230000009466 transformation Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 21
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000013139 quantization Methods 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 235000014347 soups Nutrition 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/004—Predictors, e.g. intraframe, interframe coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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 slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시의 실시예는 포인트 클라우드 코딩을 위한 해결책을 제공한다. 포인트 클라우드 코딩 방법은, 현재 포인트 클라우드(PC) 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 적어도 하나의 검색 센터에 기초하여 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계 및 적어도 하나의 인접한 포인트에 기초하여 변환을 수행하는 단계를 포함한다. 제안된 방법은, 종래의 해결책에 비해 최근접 부근 검색과 속성 간 예측의 정확도를 향상시키는 장점이 있다.
Description
본 개시의 실시예는 일반적으로 포인트 클라우드 코딩 기술에 관한 것이며, 특히 최근접 부근 검색에 기초하여 포인트 클라우드 속성 코딩에 대한 최적화된 인터 예측에 관한 것이다.
포인트 클라우드는 3차원(3D) 평면에 있는 개별 데이터 포인트의 집합으로, 각 포인트는 X, Y 및 Z 축에 설정된 좌표를 갖는다. 따라서, 포인트 클라우드는 3차원 공간의 물리적 콘텐츠를 표현하는 데 사용될 수 있다. 포인트 클라우드는 증강 현실에서 자율 주행 자동차에 이르기까지 광범위한 몰입형 애플리케이션에 대해 3D 시각적 데이터를 표현하는 유망한 방법인 것으로 나타났다.
포인트 클라우드 코딩 표준은 주로 잘 알려진 MPEG 조직의 개발을 통해 발전해 왔다. MPEG는 Moving Picture Experts Group의 약자로, 멀티미디어를 다루는 주요 표준화 그룹 중 하나이다. 2017년에 MPEG 3D 그래픽 코딩 그룹(3DG)은 포인트 클라우드 코딩 표준 개발을 시작하기 위해 제안 요청(CFP) 문서를 발표하였다. 최종 표준은 두 가지 클래스의 해결책으로 구성된다. 동영상 기반 포인트 클라우드 압축(V-PCC 또는 VPCC)은 포인트가 상대적으로 균일하게 분포된 포인트 세트에 적합하다. 기하학 기반 포인트 클라우드 압축(G-PCC 또는 GPCC)은 보다 희박한 분포에 적합하다. 그러나, 종래의 포인트 클라우드 코딩 기술의 코딩 효율성은 일반적으로 더욱 향상될 것으로 예상된다.
본 개시의 실시예는 포인트 클라우드 코딩을 위한 해결책을 제공한다.
제1 측면에서, 포인트 클라우드 코딩 방법이 제안된다. 상기 방법은 현재 포인트 클라우드(PC) 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 상기 적어도 하나의 검색 센터에 기초하여 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계 및 상기 적어도 하나의 인접한 포인트에 기초하여 변환을 수행하는 단계를 포함한다.
본 개시의 제1 측면에 따른 방법에 기초하여, 적어도 하나의 검색 센터는 현재 포인트와 포인트의 세트의 기하학적 위치를 고려하여 결정된다. 제안된 방법은, Morton index에 기초하여 검색 센터를 결정하는 종래의 해결책에 비해, 현재 포인트와 기하학적 위치가 유사한 포인트를 선택함으로써 최근접 부근 검색 및 속성 간 예측의 정확도를 향상시킬 수 있다는 장점이 있다.
제2 측면에서, 포인트 클라우드 코딩을 위한 다른 방법이 제안된다. 상기 방법은, 현재 PC 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 포인트 클라우드 서열의 현재 포인트 클라우드 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계 및 적어도 하나의 인접한 포인트에 기초하여 변환을 수행하는 단계를 포함한다.
본 개시의 제2 측면에 따른 방법에 기초하여, 현재 포인트의 인접한 포인트를 검색하기 위해 복수의 검색 범위가 사용된다. 제안된 방법은, 하나의 검색 범위만 사용하는 종래의 해결책에 비해, 서로 다른 검색 범위를 갖는 PC 샘플 세트를 검색될 수 있어 최근접 부근 검색 및 속성 간 예측의 효율성을 향상시키는 장점이 있다.
제3 측면에서, 포인트 클라우드 데이터를 처리하는 장치가 제안된다. 포인트 클라우드 데이터를 처리하는 장치는 프로세서 및 명령이 포함된 비일시적 메모리를 포함한다. 명령은 프로세서에 의해 실행될 때, 프로세서로 하여금 본 개시의 제1 측면 또는 제2 측면에 따른 방법을 수행하도록 한다.
제4 측면에서, 비일시적 컴퓨터 판독 가능 저장 매체를 제안한다. 비일시적 컴퓨터 판독 가능 저장 매체에는, 프로세서로 하여금 본 개시의 제1 또는 제2 측면에 따른 방법을 수행하도록 하는 명령이 저장된다.
제5 측면에서, 비일시적 컴퓨터 판독 가능 기록 매체를 제안한다. 비일시적 컴퓨터 판독 가능 기록 매체는 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성된 포인트 클라우드 서열의 비트스트림을 저장한다. 방법은 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 적어도 하나의 검색 센터에 기초하여 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계 및 적어도 하나의 인접한 포인트에 기초하여 비트스트림을 생성하는 단계를 포함한다.
제6 측면에서, 포인트 클라우드 서열의 비트스트림을 저장하는 방법을 제안한다. 방법은 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 적어도 하나의 검색 센터에 기초하여 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계, 적어도 하나의 인접한 포인트에 기초하여 비트스트림을 생성하는 단계 및 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함한다.
제7 측면에서, 비일시적 컴퓨터 판독 가능 기록 매체를 제안한다. 비일시적 컴퓨터 판독 가능 기록 매체에는 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성된 포인트 클라우드 서열의 비트스트림이 저장된다. 방법은, 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계 및 적어도 하나의 인접한 포인트에 기초하여 비트스트림을 생성하는 단계를 포함한다.
제8 측면에서, 포인트 클라우드 서열의 비트스트림을 저장하는 방법을 제안한다. 방법은, 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계, 적어도 하나의 인접한 포인트에 기초하여 비트스트림을 생성하는 단계 및 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함한다.
본 요약은 아래의 상세한 설명에서 자세히 설명되는 개념의 선택을 간소화된 형태로 설명하기 위해 제공된다. 본 요약은 청구된 주제의 주요 특징 또는 필수적인 특징을 식별하기 위한 것이 아니며, 청구된 주제의 범위를 제한하기 위해 사용하려는 의도도 없다.
첨부된 도면을 참조한 이하의 상세한 설명을 통해, 본 개시의 예시적인 실시예의 상기 목적 및 기타 목적, 특징 및 이점이 더욱 명백해진다. 본 개시의 예시적인 실시예에서, 동일한 참조번호는 일반적으로 동일한 구성요소를 지칭한다.
도 1은 본 개시의 기술을 이용할 수 있는 예시적인 포인트 클라우드 코딩 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일부 실시예에 따른 예시적인 포인트 클라우드 인코더를 나타내는 블록도이다.
도 3은 본 개시의 일부 실시예에 따른 예시적인 포인트 클라우드 디코더를 나타내는 블록도이다.
도 4는 본 개시의 일부 실시예에 따른 포인트 클라우드 코딩 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일부 실시예에 따른 포인트 클라우드 코딩을 위한 다른 방법을 나타내는 흐름도이다.
도 6은 본 개시 내용의 다양한 실시예를 구현할 수 있는 컴퓨팅 디바이스를 나타내는 블록도이다.
도면 전체에서, 동일하거나 유사한 참조 부호는 일반적으로 동일하거나 유사한 요소를 지칭한다.
도 1은 본 개시의 기술을 이용할 수 있는 예시적인 포인트 클라우드 코딩 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일부 실시예에 따른 예시적인 포인트 클라우드 인코더를 나타내는 블록도이다.
도 3은 본 개시의 일부 실시예에 따른 예시적인 포인트 클라우드 디코더를 나타내는 블록도이다.
도 4는 본 개시의 일부 실시예에 따른 포인트 클라우드 코딩 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일부 실시예에 따른 포인트 클라우드 코딩을 위한 다른 방법을 나타내는 흐름도이다.
도 6은 본 개시 내용의 다양한 실시예를 구현할 수 있는 컴퓨팅 디바이스를 나타내는 블록도이다.
도면 전체에서, 동일하거나 유사한 참조 부호는 일반적으로 동일하거나 유사한 요소를 지칭한다.
이하, 일부 실시예를 참조하여 본 개시의 원리에 대해 설명한다. 이러한 실시예는 설명의 목적으로만 기재되며, 본 개시의 범위에 대한 어떠한 제한도 제시하지 않고, 당업자가 본 개시를 이해하고 구현하는 데 도움을 주는 것으로 이해되어야 한다. 본 명세서에 설명되는 개시는 아래에서 설명되는 방법 외에도 다양한 방식으로 구현될 수 있다.
달리 정의되지 않는 한, 아래의 설명 및 청구범위에서 본 명세서에 사용된 모든 기술 용어 및 과학 용어는 본 개시가 속하는 기술분야에서 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다.
본 개시에 있어서, "일 실시예", "실시예", "예시적인 실시예" 등의 언급은 설명된 실시예가 특정 기능, 구조 또는 특성을 포함할 수 있다는 것을 나타내지만, 모든 실시예가 반드시 특정 기능, 구조 또는 특성을 포함해야 하는 것은 아니다. 또한, 이러한 문구는 반드시 동일한 실시예를 언급하는 것은 아니다. 또한, 특정 기능, 구조 또는 특성이 예시적인 실시예와 관련하여 설명되는 경우, 명시적으로 설명되었는지 여부에 관계없이 다른 실시예와 관련하여 이러한 기능, 구조 또는 특성에 영향을 미치는 것은 당업자의 지식 범위 내에 있는 것으로 제출된다.
"제1" 및 "제2" 등의 용어는 본 명세서에서 다양한 요소를 설명하기 위해 사용될 수 있지만, 이러한 요소는 이러한 용어에 의해 제한되어서는 안 된다는 것을 이해해야 한다. 이러한 용어는 한 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 예시적인 실시예의 범위를 벗어나지 않으면서 제1 요소는 제2 요소로 명명될 수 있고, 유사하게 제2 요소가 제1 요소로 명명될 수 있다. 본 명세서에 사용되는 바와 같이, 용어 "및/또는"은 나열된 용어 중 하나 이상의 모든 조합을 포함한다.
본 명세서에 사용되는 용어는 특정한 실시예만을 설명하기 위해 사용되는 것으로, 예시적인 실시예를 한정하려는 의도가 없다. 본 명세서에서 사용되는 단수 형태는 문맥상 명백하게 달리 나타내지 않는 한 복수 형태도 포함하도록 의도된다. 본 명세서에 사용되는 용어 "구성하다", "구성되는", "갖는", "가지는", "포함하는" 및/또는 "포함되는"은 언급된 특징, 요소 및/또는 구성요소 등의 존재를 지정하지만, 하나 이상의 다른 특징, 요소, 구성요소 및/또는 이들의 조합이 존재할 수 있거나 추가되는 것을 배제하지 않는다.
예제 환경
도 1은 본 개시의 기술을 이용할 수 있는 예시적인 포인트 클라우드 코딩 시스템(100)을 나타내는 블록도이다. 도시된 바와 같이, 포인트 클라우드 코딩 시스템(100)은 소스 디바이스(110) 및 대상 디바이스(120)를 포함할 수 있다. 소스 디바이스(110)는 포인트 클라우드 인코딩 디바이스라고도 지칭될 수 있으며, 대상 디바이스(120)는 포인트 클라우드 디코딩 디바이스라고도 지칭될 수 있다. 작동 시, 소스 디바이스(110)는 인코딩된 포인트 클라우드 데이터를 생성하도록 구성될 수 있고, 대상 디바이스(120)는 소스 디바이스(110)에 의해 생성된 인코딩된 포인트 클라우드 데이터를 디코딩하도록 구성될 수 있다. 본 개시의 기술은 일반적으로 포인트 클라우드 데이터를 코딩(인코딩 및/또는 디코딩)하는 것, 즉 포인트 클라우드 압축을 지원하는 것에 관한 것이다. 코딩은 포인트 클라우드 데이터를 압축 및/또는 압축 해제하는 데 효과적일 수 있다.
소스 디바이스(100) 및 대상 디바이스(120)는 데스크탑 컴퓨터, 노트북(즉, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 스마트폰 및 휴대폰과 같은 전화기 핸드셋, 텔레비젼, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스, 차량(예를 들어, 지상 차량 또는 해양 차량, 우주선, 항공기 등), 로봇, LIDAR 디바이스, 위성, 확장 현실 디바이스 등을 포함하는 광범위한 디바이스 중 임의의 것을 포함할 수 있다. 일부 경우에, 소스 디바이스(100) 및 대상 디바이스(120)는 무선 통신용으로 장착될 수 있다.
소스 디바이스(100)는 데이터 소스(112), 메모리(114), GPCC 인코더(116) 및 입력/출력(I/O) 인터페이스(118)를 포함할 수 있다. 대상 디바이스(120)는 입력/출력(I/O) 인터페이스(128), GPCC 디코더(126), 메모리(124) 및 데이터 소비자(122)를 포함할 수 있다. 본 개시에 따르면, 소스 디바이스(100)의 GPCC 인코더(116) 및 대상 디바이스(120)의 GPCC 디코더(126)는 포인트 클라우드 코딩과 관련된 본 개시의 기술을 적용하도록 구성될 수 있다. 따라서, 소스 디바이스(100)는 인코딩 디바이스의 예를 나타내고, 대상 디바이스(120)는 디코딩 디바이스의 예를 나타낸다. 다른 예에서, 소스 디바이스(100) 및 대상 디바이스(120)는 다른 구성요소 또는 배열을 포함할 수 있다. 예를 들어, 소스 디바이스(100)는 내부 소스 또는 외부 소스로부터 데이터(예를 들어, 포인트 클라우드 데이터)를 수신할 수 있다. 마찬가지로, 대상 디바이스(120)는 동일한 디바이스에 데이터 소비자를 포함하기보다는 외부 데이터 소비자와 인터페이싱할 수 있다.
일반적으로, 데이터 소스(112)는 포인트 클라우드 데이터(즉, 인코딩되지 않은 원시 포인트 클라우드 데이터)의 소스를 나타내고, 포인트 클라우드 데이터의 연속적인 일련의 "프레임"을 프레임에 대한 포인트 클라우드 데이터를 인코딩하는 GPCC 인코더(116)에 제공할 수 있다. 일부 예에서, 데이터 소스(112)는 포인트 클라우드 데이터를 생성한다. 소스 디바이스 (100)의 데이터 소스(112)는 다양한 카메라 또는 센서 중 어느 하나, 예를 들어 하나 이상의 비디오 카메라, 이전에 캡처된 포인트 클라우드 데이터를 포함하는 아카이브, 3D 스캐너 또는 광 감지 센서와 레인징(LIDAR) 디바이스, 및/또는 데이터 콘텐츠 제공자로부터 포인트 클라우드 데이터를 수신하기 위한 데이터 피드 인터페이스와 같은 포인트 클라우드 캡처 디바이스를 포함할 수 있다. 따라서, 일부 예에서, 데이터 소스(112)는 LIDAR 장치로부터의 신호에 기초하여 포인트 클라우드 데이터를 생성할 수 있다. 대안적으로 또는 추가적으로, 포인트 클라우드 데이터는 스캐너, 카메라, 센서 또는 기타 데이터에서 컴퓨터에 의해 생성될 수 있다. 예를 들어, 데이터 소스(112)는 포인트 클라우드 데이터를 생성하거나, 실시간 포인트 클라우드 데이터, 보관된 포인트 클라우드 데이터 및 컴퓨터에 의해 생성된 포인트 클라우드 데이터의 조합을 생성할 수 있다. 각 경우에, GPCC 인코더(116)는 캡처된, 사전 캡처된 또는 컴퓨터에 의해 생성된 포인트 클라우드 데이터를 인코딩한다. GPCC 인코더(116)는 포인트 클라우드 데이터의 프레임을 수신된 순서(때로는 "디스플레이 순서"라고도 함)로부터 코딩을 위한 코딩 순서로 재배열할 수 있다. GPCC 인코더(116)는 인코딩된 포인트 클라우드 데이터를 포함하는 하나 이상의 비트스트림을 생성할 수 있다. 소스 디바이스(100)는 예를 들어, 대상 디바이스(120)의 I/O 인터페이스(128)에 의한 수신 및/또는 검색을 위해 I/O 인터페이스(118)를 통해 인코딩된 포인트 클라우드 데이터를 출력할 수 있다. 인코딩된 포인트 클라우드 데이터는 네트워크(130A)를 통해 I/O 인터페이스(118)에 의해 대상 디바이스(120)로 직접 전송될 수 있다. 인코딩된 포인트 클라우드 데이터는 또한 대상 디바이스(120)에 의해 액세스되도록 저장 매체/서버(130B)에 저장될 수 있다.
소스 디바이스(100)의 메모리(114) 및 대상 디바이스(120)의 메모리(124)는 범용 메모리를 나타낼 수 있다. 일부 예에서, 메모리(114) 및 메모리(124)는 원시 포인트 클라우드 데이터, 예를 들어 데이터 소스(112)로부터의 원시 포인트 클라우드 데이터 및 GPCC 디코더(126)로부터의 디코딩된 원시 포인트 클라우드 데이터를 저장할 수 있다. 추가적으로 또는 대안적으로, 메모리(114) 및 메모리(124)는 예를 들어 GPCC 인코더(116) 및 GPCC 디코더(126)에 의해 각각 실행 가능한 소프트웨어 명령을 저장할 수 있다. 본 예에서는, 메모리(114) 및 메모리(124)가 GPCC 인코더(116) 및 GPCC 디코더(126)와 별도로 도시되어 있지만, GPCC 인코더(116) 및 GPCC 디코더(126)는 또한 기능적으로 유사하거나 동등한 목적을 위해 내부 메모리를 포함할 수 있다는 것이 이해되어야 한다. 또한, 메모리(114) 및 메모리(124)는 예를 들어 GPCC 인코더(116)로부터 출력되고 GPCC 디코더(126)에 입력되는 인코딩된 포인트 클라우드 데이터를 저장할 수 있다. 일부 예에서, 메모리(114) 및 메모리(124)의 일부는 예를 들어 원시 데이터, 디코딩된 데이터 및/또는 인코딩된 포인트 클라우드 데이터를 저장하기 위해 하나 이상의 버퍼로서 할당될 수 있다. 예를 들어, 메모리(114) 및 메모리(124)는 포인트 클라우드 데이터를 저장할 수 있다.
I/O 인터페이스(118) 및 I/O 인터페이스(128)는 무선 송신기/수신기, 모뎀, 유선 네트워킹 구성요소(예를 들어, 이더넷 카드), 다양한 IEEE 802.11 표준 중 임의의 표준에 따라 동작하는 무선 통신 구성요소 또는 기타 물리적 구성요소를 나타낼 수 있다. I/O 인터페이스(118) 및 I/O 인터페이스(128)가 무선 구성요소를 포함하는 예에서, I/O 인터페이스(118) 및 I/O 인터페이스(128)는 4G, 4G-LTE(Long-Term Evolution), LTE Advanced, 5G 등과 같은 셀룰러 통신 표준에 따라 인코딩된 포인트 클라우드 데이터와 같은 데이터를 전송하도록 구성될 수 있다. I/O 인터페이스(118)가 무선 송신기를 포함하는 일부 예에서, I/O 인터페이스(118) 및 I/O 인터페이스(128)는 IEEE 802.11 사양과 같은 다른 무선 표준에 따라, 인코딩된 포인트 클라우드 데이터 등 데이터를 전송하도록 구성될 수 있다. 일부 예에서, 소스 디바이스(100) 및/또는 대상 디바이스(120)는 각각의 단일 칩 시스템(SoC) 디바이스를 포함할 수 있다. 예를 들어, 소스 디바이스(100)는 GPCC 인코더(116) 및/또는 I/O 인터페이스(118)에 부여된 기능을 수행하는 SoC 디바이스를 포함할 수 있고, 대상 디바이스(120)는 GPCC 디코더(126) 및/또는 I/O 인터페이스(128)에 부여된 기능을 수행하는 SoC 디바이스를 포함할 수 있다.
본 개시의 기술은 자율 주행 차량 간의 통신, 스캐너, 카메라, 센서 및 로컬 또는 원격 서버와 같은 처리 디바이스 간의 통신, 지리적 매핑 또는 다른 애플리케이션과 같은 임의의 다양한 애플리케이션을 지원하는 인코딩 및 디코딩에 적용될 수 있다.
대상 디바이스(120)의 I/O 인터페이스(128)는 소스 디바이스(110)로부터 인코딩된 비트스트림을 수신한다. 인코딩된 비트스트림은 포인트 클라우드를 나타내는 값을 갖는 구문 요소와 같은 시그널링 정보를 포함할 수 있으며, 해당 시그널링 정보는 GPCC 인코더(116)에 의해 정의되며, GPCC 디코더(126)에서도 사용된다. 데이터 소비자(122)는 디코딩된 데이터를 사용한다. 예를 들어, 데이터 소비자(122)는 물리적 객체의 위치를 결정하기 위해 디코딩된 포인트 클라우드 데이터를 사용할 수 있다. 일부 예에서, 데이터 소비자(122)는 포인트 클라우드 데이터에 기초하여 이미지를 제시하는 디스플레이를 포함할 수 있다.
GPCC 인코더(116) 및 GPCC 디코더(126) 각각은 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합과 같은 다양한 적합한 인코더 및/또는 디코더 회로 중 하나로 구현될 수 있다. 해당 기술이 부분적으로 소프트웨어로 구현될 때, 디바이스는 소프트웨어에 대한 명령을 적합한 비일시적 컴퓨터 판독 가능 매체에 저장할 수 있고, 하나 이상의 프로세서를 사용하여 하드웨어에서 명령을 실행하여 본 개시의 기술을 수행할 수 있다. GPCC 인코더(116) 및 GPCC 디코더(126) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있으며, 이들 중 어느 하나는 각각의 디바이스에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. GPCC 인코더(116) 및/또는 GPCC 디코더(126)를 포함하는 디바이스는 하나 이상의 집적 회로, 마이크로프로세서, 및/또는 다른 유형의 디바이스를 포함할 수 있다.
GPCC 인코더(116) 및 GPCC 디코더(126)는 비디오 포인트 클라우드 압축(VPCC) 표준 또는 기하학 포인트 클라우드 압축(GPCC) 표준과 같은 코딩 표준에 따라 동작할 수 있다. 본 개시는, 일반적으로 데이터를 인코딩 또는 디코딩하는 프로세스를 포함하는 프레임의 코딩(예를 들어, 인코딩 및 디코딩)을 지칭할 수 있다. 인코딩된 비트스트림은 일반적으로 코딩 결정(예를 들어, 코딩 모드)을 나타내는 구문 요소에 대한 일련의 값을 포함한다.
포인트 클라우드는 3D 공간의 포인트 세트를 포함할 수 있으며 포인트와 관련된 속성을 가질 수 있다. 속성은 R, G, B등의 색상 정보 또는 Y, Cb, Cr 또는 반사율 정보 또는 기타 속성일 수 있다. 포인트 클라우드는 LIDAR 센서 및 3D 스캐너와 같은 다양한 카메라나 센서로 캡처할 수 있으며 컴퓨터로 생성될 수도 있다. 포인트 클라우드 데이터는 건설(모델링), 그래픽(시각화 및 애니메이션용 3D 모델) 및 자동차 산업(내비게이션에 사용되는 LIDAR 센서)을 포함하되 이에 국한되지 않는 다양한 애플리케이션에서 사용된다.
도 2는 본 개시의 일부 실시예에 따른, 도 1에 예시된 시스템(100)의 GPCC 인코더(116)의 예일 수 있는 GPCC 인코더(200)의 예를 나타내는 블록도이다. 도 3은 본 개시의 일부 실시예에 따른, 도 1에 예시된 시스템(100)의 GPCC 디코더(126)의 예일 수 있는 GPCC 디코더(300)의 예를나타내는 블록도이다.
GPCC 인코더(200)와 GPCC 디코더(300) 모두에서, 포인트 클라우드 위치가 먼저 코딩된다. 속성 코딩은 디코딩된 기하구조에 따라 달라진다. 도 2 및 도 3에서, 영역 적응형 계층 변환(RAHT) 유닛(218), 표면 근사 분석 유닛(212), RAHT 유닛(314) 및 표면 근사 합성 유닛(310)은 카테고리 1의 데이터에 일반적으로 사용되는 옵션이다. 세부 레벨(LOD) 생성 유닛(220), 리프팅 유닛(222), LOD 생성 유닛(316) 및 역리프팅 유닛(318)은 일반적으로 카테고리 3의 데이터에 사용되는 옵션이다. 다른 모든 유닛은 카테고리 1과 3 사이에 공통으로 적용된다.
카테고리 3의 데이터 경우, 압축된 기하구조는 일반적으로 루트로부터 개별 복셀의 리프 레벨까지 옥트리로 지시된다. 카테고리 1의 데이터 경우, 압축된 기하구조는 일반적으로 가지치기된 옥트리(즉, 루트로부터 리프 레벨까지 복셀보다 큰 블록으로 이루어진 옥트리)와 가지치기된 옥트리의 각 리프 내의 표면을 근사화하는 모델로 표시된다. 이러한 방식으로 카테고리 1과 3의 데이터는 모두 옥트리 코딩 메커니즘을 공유하는 반면, 카테고리 1의 데이터는 표면 모델을 사용하여 각 리프 내의 복셀을 추가로 근사화할 수 있다. 사용된 표면 모델은 블록당 1~10개의 삼각형으로 구성된 삼각 측량이며, 그 결과 삼각형 수프가 생성된다. 따라서 카테고리 1의 기하학 코덱은 트리수프(Trisoup) 기하학 코덱으로 알려져 있고, 카테고리 3의 기하학 코덱은 옥트리(Octree) 기하학 코덱으로 알려져 있다.
도 2의 예에서, GPCC 인코더(200)는 좌표 변환 유닛(202), 색상 변환 유닛(204), 복셀화 유닛(206), 속성 전달 유닛(208), 옥트리 분석 유닛(210), 표면 근사 분석 유닛(212), 연산 인코딩 유닛(214), 기하학 재구성 유닛(216), RAHT 유닛(218), LOD 생성 유닛(220), 리프팅 유닛(222), 계수 양자화 유닛(224) 및 연산 인코딩 유닛(226)을 포함할 수 있다.
도 2의 예에 도시된 바와 같이, GPCC 인코더(200)는 위치 세트 및 속성 세트를 수신할 수 있다. 위치에는 포인트 클라우드의 포인트 좌표가 포함될 수 있다. 속성에는 포인트 클라우드의 포인트와 연관된 색상 등 포인트 클라우드의 포인트에 대한 정보가 포함될 수 있다.
좌표 변환 유닛(202)은 좌표를 초기 도메인에서 변환 도메인으로 변환하기 위해 포인트의 좌표에 변환을 적용할 수 있다. 본 개시는 변환된 좌표를 변환 좌표라고 지칭할 수 있다. 색상 변환 유닛(204)은 속성의 색상 정보를 다른 도메인으로 변환하기 위해 변환을 적용할 수 있다. 예를 들어, 색상 변환 유닛(204)은 색상 정보를 RGB 색상 공간에서 YCbCr 색상 공간으로 변환할 수 있다.
또한, 도 2의 예에서, 복셀화 유닛(206)은 변환 좌표를 복셀화할 수 있다. 변환 좌표의 복셀화는 포인트 클라우드의 일부 포인트를 양자화하고 제거하는 단계를 포함할 수 있다. 즉, 포인트 클라우드의 여러 포인트가 단일 "복셀" 내에 포함될 수 있으며, 이후 일부 측면에서는 하나의 포인트로 처리될 수 있다. 또한, 옥트리 분석 유닛(210)은 복셀화된 변환 좌표에 기초하여 옥트리를 생성할 수 있다. 추가적으로, 도 2의 예에서, 표면 근사 분석 유닛(212)은 포인트 세트의 표면 표현을 잠재적으로 결정하기 위해 포인트를 분석할 수 있다. 연산 인코딩 유닛(214)은 표면 근사 분석 유닛(212)에 의해 결정된 옥트리 및/또는 표면의 정보를 나타내는 구문 요소에 대해 연산 인코딩을 수행할 수 있다. GPCC 인코더(200)는 이러한 구문 요소를 기하학적 비트스트림으로 출력할 수 있다.
기하학 재구성 유닛(216)은 옥트리, 표면 근사 분석 유닛(212)에 의해 결정된 표면을 지시하는 데이터 및/또는 다른 정보에 기초하여 포인트 클라우드 내의 포인트의 변환 좌표를 재구성할 수 있다. 기하학 재구성 유닛(216)에 의해 재구성된 변환 좌표의 수는 복셀화 및 표면 근사화로 인해 포인트 클라우드의 원래 포인트 수와 다를 수 있다. 본 개시는 결과적인 포인트를 재구성된 포인트로 지칭할 수 있다. 속성 전달 유닛(208)은 포인트 클라우드의 원래 포인트의 속성을 포인트 클라우드 데이터의 재구성된 포인트에 전달할 수 있다.
또한, RAHT 유닛(218)은 재구성된 포인트의 속성에 RAHT 코딩을 적용할 수 있다. 대안적으로 또는 추가적으로, LOD 생성 유닛(220) 및 리프팅 유닛(222)은 재구성된 포인트의 속성에 각각 LOD 처리 및 리프팅을 적용할 수 있다. RAHT 유닛(218) 및 리프팅 유닛(222)은 속성에 기초하여 계수를 생성할 수 있다. 계수 양자화 유닛(224)은 RAHT 유닛(218) 또는 리프팅 유닛(222)에 의해 생성된 계수를 양자화할 수 있다. 연산 인코딩 유닛(226)은 양자화된 계수를 나타내는 구문 요소에 연산 코딩을 적용할 수 있다. GPCC 인코더(200)는 이러한 구문 요소를 속성 비트스트림으로 출력할 수 있다.
도 3의 예에서, GPCC 디코더(300)는 기하학 연산 디코딩 유닛(302), 속성 연산 디코딩 유닛(304), 옥트리 합성 유닛(306), 역양자화 유닛(308), 표면 근사 합성 유닛(310), 기하학 재구성 유닛(312), RAHT 유닛(314), LOD 생성 유닛(316), 역리프팅 유닛(318), 좌표 역변환 유닛(320) 및 색상 역변환 유닛(322)을 포함할 수 있다.
GPCC 디코더(300)는 기하학 비트스트림 및 속성 비트스트림을 획득할 수 있다. 디코더(300)의 기하 연산 디코딩 유닛(302)은 기하 비트스트림의 구문 요소에 연산 디코딩(예를 들어, CABAC 또는 다른 유형의 연산 디코딩)을 적용할 수 있다. 유사하게, 속성 연산 디코딩 유닛(304)은 연산 디코딩을 속성 비트스트림의 구문 요소에 적용할 수 있다.
옥트리 합성 유닛(306)은 기하학 비트스트림으로부터 분석된 구문 요소에 기초하여 옥트리를 합성할 수 있다. 표면 근사치가 기하학 비트스트림에서 사용되는 경우, 표면 근사 합성 유닛(310)은 기하학 비트스트림으로부터 분석된 구문 요소 및 옥트리에 기초하여 표면 모델을 결정할 수 있다.
또한, 기하학 재구성 유닛(312)은 포인트 클라우드에서 포인트의 좌표를 결정하기 위해 재구성을 수행할 수 있다. 좌표 역변환 유닛(320)은 재구성된 좌표에 역변환을 적용하여 포인트 클라우드 내 포인트의 재구성된 좌표(위치)를 변환 도메인에서 초기 도메인으로 다시 변환시킬 수 있다.
대안적으로, 도 3의 예에서, 역양자화 유닛(308)은 속성 값을 역양자화할 수 있다. 속성 값은 속성 비트스트림으로부터 획득된 구문 요소(예를 들어, 속성 연산 디코딩 유닛(304)에 의해 디코딩된 구문 요소를 포함)에 기초할 수 있다.
속성 값이 인코딩되는방법에 따라, RAHT 유닛(314)은 역양자화된 속성 값에 기초하여 포인트 클라우드의 포인트에 대한 색상 값을 결정하기 위해 RAHT 코딩을 수행할 수 있다. 대안적으로, LOD 생성 유닛(316) 및 역 리프팅 유닛(318)은 세부 레벨 기반 기술을 사용하여 포인트 클라우드의 포인트에 대한 색상 값을 결정할 수 있다.
또한, 도 3의 예에서, 색상 역변환 유닛(322)은 색상 값에 역색상 변환을 적용할 수 있다. 역색상 변환은 인코더(200)의 색상 변환 유닛(204)에 의해 적용된 색상 변환의 역일 수 있다. 예를 들어, 색상 변환 유닛(204)은 색상 정보를 RGB 색상 공간에서 YCbCr 색상 공간으로 변환시킬 수 있다. 이에 따라, 색상 역변환 유닛(322)은 색상 정보를 YCbCr 색상 공간에서 RGB 색상 공간으로 변환시킬 수 있다.
도 2 및 도 3의 다양한 유닛은 인코더(200) 및 디코더(300)에 의해 수행되는 동작의 이해를 돕기 위해 예시된다. 유닛은 고정 기능 회로, 프로그래밍 가능 회로 또는 이들의 조합으로 구현될 수 있다. 고정 기능 회로는 특정 기능을 제공하고 수행할 수 있는 동작에 대해 미리 설정되어 있는 회로를 의미한다. 프로그래밍 가능 회로는 다양한 동작을 수행하고 수행할 수 있는 동작에 유연한 기능을 제공하도록 프로그래밍할 수 있는 회로를 의미한다. 예를 들어, 프로그래밍 가능 회로는 소프트웨어 또는 펌웨어의 명령에 의해 정의된 방식으로 프로그래밍 가능 회로가 동작하도록 하는 소프트웨어 또는 펌웨어를 실행할 수 있다. 고정 기능 회로는 소프트웨어 명령(예를 들어, 매개변수를 수신 또는 매개변수를 출력)을 실행할 수 있지만 고정 기능 회로에 의해 수행되는 동작 유형은 일반적으로 변경할 수 없다. 일부 예에서, 유닛 중 하나 이상은 개별 회로 블록(고정 기능 또는 프로그래밍 가능)일 수 있으며, 일부 예에서, 유닛 중 하나 이상은 집적 회로일 수 있다.
이하, 본 개시의 일부 예시적인 실시예를 상세히 설명한다. 본 명세서에서는 이해를 쉽게 하기 위해 섹션 표제가 사용되었으며, 섹션에 개시된 실시예가 해당 섹션에만 제한되지 않는다는 점을 이해해야 한다. 또한, 특정 실시예는 GPCC 또는 다른 특정 포인트 클라우드 코덱을 참조하여 설명되지만, 개시된 기술은 다른 포인트 클라우드 코딩 기술에도 적용될 수 있다. 또한, 일부 실시예에서는 포인트 클라우드 코딩 단계를 자세히 설명하지만, 코딩을 취소하는 대응하는 해당 디코딩 단계는 디코더에 의해 구현되는 것으로 이해될 것이다.
요약
본 개시는 포인트 클라우드 코딩 기술에 관한 것이다. 구체적으로는, 인터 예측의 포인트 클라우드 속성 예측에 관한 것이다. 이 아이디어는 개별적으로 또는 다양한 조합으로 모든 포인트 클라우드 코딩 표준 또는 개발 중인 기하학적 기반 포인트 클라우드 압축(G-PCC)과 같은 비표준 포인트 클라우드 코덱에 적용될 수 있다.
약어
G-PCC
기하학적 기반 포인트 클라우드 압축
MPEG
동영상 전문가 그룹
3DG
3D 그래픽 코딩 그룹
CFP
제안 요청
V-PCC
동영상 기반 포인트 클라우드 압축
LOD
세부 레벨
CE
핵심 실험
EE
검색 실험
inter-EM
인터 검색 모텔
PC
포인트 클라우드
RDO
비율 왜곡 최적화
배경
포인트 클라우드 코딩 표준은 주로 잘 알려진 MPEG 조직의 개발을 통해 발전해 왔다. MPEG는 동영상 전문가 그룹의 약칭으로, 멀티미디어를 다루는 주요 표준화 그룹 중 하나이다. 2017년에 MPEG 3D 그래픽 코딩 그룹(3DG)은 포인트 클라우드 코딩 표준 개발을 시작하기 위해 CFP(제안 요청) 문서를 발표하였다. 최종 표준은 두 가지 클래스의 해결책으로 구성된다. 동영상 기반 포인트 클라우드 압축(V-PCC)은 포인트가 상대적으로 균일하게 분포된 포인트 세트에 적합하다. 기하학 기반 포인트 클라우드 압축(G-PCC)은 보다 희박한 분포에 적합하다.
G-PCC의 미래 포인트 클라우드 코딩 기술을 검색하기 위해 코어 실험(CE) 13.5와 검색 실험(EE) 13.2를 구성하여 G-PCC의 인터 예측 기술을 개발하였다. 그 이후로 많은 새로운 인터 예측 방법이 MPEG에 채택되어 인터 검색 모델(inter-EM)이라는 참조 소프트웨어에 적용되었다.
하나의 포인트 클라우드에는 기하학적 정보와 속성 정보가 있을 수 있다. 기하학적 정보는 데이터 포인트의 기하학 위치를 설명하는 데 사용된다. 속성 정보는 텍스처, 법선 벡터 및 반사와 같은 데이터 포인트의 자세한 내용을 기록하는 데 사용된다. 포인트 클라우드 코덱은 다양한 정보를 다양한 방식으로 처리할 수 있다. 일반적으로 코덱에는 기하학적 정보와 속성 정보의 코딩 및 디코딩을 각각 지원하는 많은 선택적 도구가 있다.
3.1 속성 간 예측
G-PCC에서는 기하학적 정보를 이용하여 속성 간 예측을 수행하는 두 가지 속성 코딩 방법이 제안되었다.
3.1.1 변환 예측
변환 예측은 일반적으로 희박한 포인트 클라우드 콘텐츠에 사용되는 보간 기반 계층적 최근접 부근 예측 방법이다. 먼저 세부 레벨(LOD) 구조가 생성된다. 둘째로, LOD 구조에 기초하여 최근접 이웃을 검색한다. 그런 다음 검색 결과에 기초하여 속성 예측을 수행한다.
3.1.1.1 LOD 생성
LOD 생성 프로세스에서는 기하학 정보를 활용하여 "세부 레벨" 세트를 정의하는 포인트 클라우드의 계층 구조를 구축한다. 계층 구조는 속성을 효율적으로 예측하기 위해 활용된다. 또한 점진적인 전송 및 확장 가능한 렌더링과 같은 고급 기능을 제공할 수도 있다. LOD 생성 과정에서는 LOD 번호를 나타내는 사용자 정의 매개변수 L에 따라 포인트 클라우드 포인트를 세분화 레벨(포인트 세트) ,,...,로 재구성한다. 그런 다음, 포인트 클라우드 포인트의 속성이 에서 로 인코딩된다. 세부 레벨 , 은 세분화 레벨 ,,...,의 합집합을 취하여 얻을 수 있다.
(3-1)
3.1.1.2 포인트 분포를 고려한 최근접 부근 검색
G-PCC에서는 현재 포인트의 3 개의 근사 최근접 이웃을 검색하기 위해 두 개의 인접한 목록인 list1과 list2가 구축되었다. List1에는 LOD 기반 근사 최근접 부근 검색 알고리즘을 통해 얻은 3개의 근사 최근접 이웃이 포함되어 있다. List2에는 list1을 업데이트할 때 삭제되는 3개의 포인트가 포함되어 있다.
포인트 분포 정보를 고려하여, 엄밀한 반대와 느슨한 반대의 개념을 정의한다. 현재 포인트 와의 상대 위치에 따라, 모든 최근접 부근 포인트 가 방향 지수 에 할당된다. 방향 지수 에 따라 엄밀한 반대와 느슨한 반대는 표 3-1과 같이 정의된다.
[표 3-1] 방향 지수 dirIdx에 따른 엄밀한 반대와 느슨한 반대에 대한 정의
최종의 인접한 목록은, 엄밀한 반대의 적격성 검사와 느슨한 반대의 적격성 검사를 통해 list2의 포인트를 사용하여 list1을 업데이트하여 생성된다. 참고로, 최종 list1의 포인트 수는 이웃이 충분하지 않아 이웃 가지치기 프로세스가 수행되기 때문에 3보다 작을 수 있다.
3.1.1.3 속성 예측
list1을 획득한 후, list1에 기초하여 여러 예측자 후보가 생성된다. 각 예측자 후보에는 하나의 색인이 할당된다. 그런 다음, list1에 있는 포인트 속성의 변동성이 계산된다. 변동이 임계값보다 작으면 가중 평균 값을 사용하여 현재 포인트의 속성을 예측한다. 그렇지 않으면, 비율 왜곡 최적화(RDO) 절차를 적용하여 최상의 예측 변수가 선택된다.
3.1.2 리프팅 변환
리프팅 변환은 일반적으로 조밀한 포인트 클라우드 콘텐츠에 사용되며 예측 변환 방법에 기초하여 구축된다. 리프팅 변환과 예측 변환의 주요 차이점은 업데이트 연산자와 적응형 양자화 전략이다. 리프팅 변환에서 각 포인트는 영향 가중치 값과 연관된다. 낮은 LOD의 포인트는 더 자주 사용되며 더 높은 가중치 값이 할당된다. 영향 가중치는 양자화 프로세스에 사용된다.
3.2 속성 간 예측
Inter-EM에서는 속성 간 코딩을 수행하기 위한 몇 가지 인터 예측 도구가 제안되었다. 현재 프레임과 이전 프레임의 최근접 이웃을 저장하는 list1이 하나 있다. 목록에 있는 포인트의 프레임 내 코딩과 유사한 방식으로 속성은 예측자 후보를 생성하고 현재 포인트의 예측 값을 얻는 데 사용된다.
먼저, 현재 프레임과 참조 프레임의 포인트는 Morton 코드에 기초하여 재정렬된다. 각 포인트는 Morton 순서를 표시하기 위해 하나의 Morton 지수와 연결된다.
그런 다음 각 포인트에 대해 현재 프레임과 참조 프레임에서 최근접 부근 검색이 수행된다. 검색 범위를 제어하는 하나의 매개변수 Search_Range 가 있다.
현재 프레임에서는 Morton 순서로 현재 포인트의 이전 Search_Range 포인트를 횡단한다.
참조 프레임에서 검색 센터는 참조 프레임에서 동일한 Morton 지수를 갖는 포인트이다. 검색 센터 전의 이전 Search_Range 포인트, 검색 센터 후의 다음 Search_Range 포인트와 검색 센터 포인트를 검색한다.
최근접 부근 검색은 검색된 포인트에서 현재 포인트까지의 유클리드 거리에 기초하여 한다. 3개의 최근접 포인트가 선택되어 목록1에 저장된다. 참조 프레임의 포인트 가중치는 현재 프레임의 포인트보다 낮아야 한다는 점에 유의해야 한다.
마지막으로, list1에 기초하여 복수의 예측자 후보를 생성하고, 인트라 코딩과 유사한 방식으로 예측 속성값을 생성한다.
문제점
포인트 클라우드 속성 간 예측을 위한 종래 설계에는 다음과 같은 문제가 있다.
현재 inter-EM에서는 참조 프레임의 검색 센터가 동일한 Morton index를 갖는 포인트이다. 그러나, 현재 프레임과 참조 프레임의 재정렬된 포인트 사이에는 엄밀한 대응이 없다. 어떤 경우에는, 동일한 Morton 지수를 가진 포인트의 기하학적 위치가 매우 다르기 때문에 검색 및 예측 결과가 부정확할 수 있다.
현재 inter-EM에서, 유클리드 거리에 기초하여 최근접 부근 검색을 수행한다. 유클리드 거리 계산은 매우 복잡하며, 인코딩 및 디코딩의 전체 복잡성에 영향을 미친다.
현재 inter-EM에서, 현재 프레임과 참조 프레임의 검색 범위가 동일하다. 그러나, 현재 프레임의 포인트와 다른 프레임의 포인트는 현재 포인트에 대해 서로 다른 영향을 미친다. 동일한 검색 범위를 사용하면 예측 효율성이 제한된다.
상세한 해결책
상기 문제와 언급되지 않은 일부 다른 문제를 해결하기 위해, 아래에 요약된 방법이 개시된다. 해결책은 일반적인 개념을 설명하기 위한 예시로 간주되어야 하며 협소하게 해석되어서는 안 된다. 또한, 이러한 해결책은 개별적으로 적용되거나 어떠한 방식으로든 조합되어 사용될 수 있다.
아래 설명에서, list1은 최근접 이웃을 저장하는 목록일 수 있다.
속성 간 예측에서는 최근접 부근 검색을 위해 적어도 하나의 검색 센터를 도출할 수 있음을 제안한다.
일 예에서, 최근접 부근 검색은 검색될 주어진 프레임 내에서 수행될 수 있다.
일 예에서, 검색될 주어진 프레임은 현재 프레임일 수 있다.
일 예에서, 검색될 주어진 프레임은 다른 프레임일 수 있다.
일 예에서, 검색될 주어진 프레임은 현재 프레임의 참조 프레임일 수 있다.
일 예에서, 주어진 프레임의 검색될 포인트는 최근접 부근 검색 전에 재정렬될 수 있다.
일 예에서, 재정렬은 Morton 코드, Hilbert 코드 또는 포인트의 다른 변환 코드에 기초하여 수행될 수 있다.
일 예에서, 재정렬은 포인트의 극좌표에 기초하여 수행될 수 있다.
일 예에서, 재정렬은 포인트의 구면 좌표에 기초하여 수행될 수 있다.
일 예에서, 재정렬은 포인트의 원기둥 좌표에 기초하여 수행될 수 있다.
일 예에서, 재정렬은 레이더의 스캐닝 순서에 기초하여 수행될 수 있다.
일 예에서, 검색은 포인트의 순서(재정렬될 수 있음)에 따라 수행된다.
일 예에서, 검색될 주어진 프레임에 대해 검색 센터가 하나 있을 수 있다.
일 예에서, 재정렬된 순서로 검색 센터 전의 이전 포인트와 검색 센터를 검색할 수 있다.
일 예에서, 재정렬된 순서로 검색 센터 후의 다음 포인트와 검색 센터를 검색할 수 있다..
일 예에서, 재정렬된 순서로 검색 센터 전의 이전 포인트, 검색 센터 및 재정렬된 순서로 검색 센터 후의 다음 포인트를 검색할 수 있다.
일 예에서, 검색 센터는 검색될 프레임 내 기하학적 위치에서 근사 최근접 포인트일 수 있다.
일 예에서, 검색 센터는 검색될 프레임 내 전체 포인트 또는 일부 포인트 중에서 선택될 수 있다.
일 예에서, 검색 센터는 현재 포인트로부터 최근접 거리에 있는 포인트일 수 있다.
거리는 유클리드 거리, 맨해튼 거리, 체비쇼프 거리 등이 될 수 있다.
일 예에서, 검색 센터는 현재 포인트로부터 근사 최근접 거리에 있는 포인트일 수 있다.
검색 센터는 검색될 프레임 내의 일부 포인트 중에서 선택될 수 있다.
거리는 유클리드 거리, 맨해튼 거리, 체비쇼프 거리 등이 될 수 있다.
일 예에서, 검색센터는 현재 포인트로부터 변환 코드의 거리가 가장 가까운 거리에 있는 포인트일 수 있다.
거리는 변환 코드에 따라 차이가 있을 수 있다.
변환 코드는 Morton 코드, Hilbert 코드 등이 될 수 있다.
일 예에서, 검색 센터는 현재 포인트로부터 변환 코드에 대해 가장 가까운 거리에 있는 포인트일 수 있다.
검색 센터는 검색될 프레임 내의 일부 포인트 중에서 선택될 수 있다.
일 예에서, 일부 포인트는 현재 포인트 변환 코드보다 변환 코드가 큰 포인트일 수 있다.
일 예에서, 일부 포인트는 현재 포인트 변환 코드보다 변환 코드가 작은 포인트일 수 있다.
거리는 변환 코드에 따라 차이가 있을 수 있다.
변환 코드는 Morton 코드, Hilbert 코드 등이 될 수 있다.
일 예에서, 복수(예를 들어, N)의 검색 센터가 도출될 수 있다.
대안적으로, 검색은 하나 이상의 검색 센터에서 수행될 수도 있다.
일 예에서, N개의 검색 센터는 현재 포인트로부터 N개의 가장 가까운 거리를 갖는 N개의 포인트일 수 있다.
일 예에서, N개의 검색 센터는 현재 포인트로부터 변환 코드 상의 N개의 가장 가까운 거리를 갖는 N개의 포인트일 수 있다.
다른 방향 및/또는 다른 프레임에서 다른 검색 범위를 사용하는 것이 제안된다.
일 예에서, 검색될 하나의 프레임에 대해 적어도 하나의 검색 범위가 있을 수 있다.
일 예에서, 검색해야 할 검색 센터 이전의 포인트 수를 지시하는 하나의 검색 범위가 있을 수 있다.
일 예에서, 검색해야 할 검색 센터 후의 포인트 수를 지시하는 하나의 검색 범위가 있을 수 있다.
일 예에서, 검색해야 할 검색 센터 이전의 포인트 수와 검색 센터 이후의 포인트 수를 모두 지시하는 하나의 검색 범위가 있을 수 있다.
일 예에서, 현재 프레임과 참조 프레임에 대해 서로 다른 검색 범위가 있을 수 있다.
검색 범위를 지시하는 지시를 코딩하여 디코더에 검색 범위를 시그널링하는 것이 제안된다.
일 예에서, 검색 범위를 나타내기 위해 적어도 하나의 지시가 디코더에 시그널링될 수 있다.
일 예에서, 코덱이 모든 포인트에 대해 최근접 부근 검색을 수행할 경우, 지시는 미리 정의된 신호일 수 있다.
일 예에서, 검색 범위가 일부 미리 정의된 검색 범위에서 선택될 경우, 지시는 일부 미리 정의된 신호로부터 선택될 수 있다.
일 예에서, 지시는 검색 범위의 값일 수 있다.
일 예에서, 지시는 검색 범위의 미리 정의된 수학적 변환(예를 들어, 로그, 제곱근 등)일 수 있다.
일 예에서, 지시는 고정 길이 코딩, 단항 코딩, 잘린 단항 코딩 등으로 코딩될 수 있다.
일 예에서, 지시는 예측 방식으로 코딩될 수 있다.
속성 간 예측에서 최근접 부근 검색 및 이웃 가중치 생성을 위해 서로 다른 기하학적 거리가 사용될 수 있다.
일 예에서, 현재 프레임과 참조 프레임에서 최근접 부근 검색을 수행하여 적어도 하나의 포인트가 list1에 저장될 수 있다.
일 예에서, 선택된 포인트는 현재 포인트로부터 가장 가까운 기하학적 거리(예를 들어, 유클리드 거리, 맨해튼 거리, 체비쇼프 거리 등)를 갖는 포인트일 수 있다.
일 예에서, 선택된 포인트는 검색 센터 및 검색 범위에 의해 정의된 검색 포인트 중 하나일 수 있다.
일 예에서, list1의 각 포인트의 기하학적 거리는 이웃 가중치 생성에 사용될 수 있다.
일 예에서, 최근접 부근 검색 및 이웃 가중치 생성 프로세스는 서로 다른 기하학적 거리를 사용할 수 있다.
일 예에서, 검색된 각 포인트의 맨해튼 거리는 최근접 부근 검색에 사용될 수 있으며, list1에 있는 각 포인트의 유클리드 거리가 이웃 가중치 생성에 사용될 수 있다.
속성 간 예측 이전에 참조 프레임에 움직임 보상을 적용하는 것을 제안한다.
일 예에서, 참조 프레임의 모션 보상이 있을 수 있다.
일 예에서, 모션 보상이 속성 간 예측 이전에 참조 프레임에 적용될 수 있다.
일 예에서, 모션 보상이 있는 참조 프레임이 속성 간 예측에 사용될 수 있다.
일 예에서, 움직임 보상이 없는 참조 프레임은 속성 인터 예측에 사용될 수 있다.
일 예에서, 모션 보상이 적용되는지 여부를 나타내는 지시가 디코더에 시그널링될 수 있다.
일 예에서, 지시는 고정 길이 코딩, 단항 코딩, 잘린 단항 코딩 등으로 코딩될 수 있다.
일 예에서, 지시는 예측 방식으로 코딩될 수 있다.
참조 프레임의 서로 다른 LOD에 있는 포인트는 속성 간 예측에서 검색될 수 있다.
일 예에서, 참조 프레임의 포인트는 하나 이상의 LOD로 분할될 수 있다.
일 예에서, 현재 프레임의 포인트는 하나 이상의 LOD로 분할될 수 있다.
일 예에서, 각 포인트의 LOD를 참조하는 하나의 LOD 레벨이 있을 수 있다.
일 예에서, 현재 포인트에 대해 참조 프레임에서 동일한 LOD 레벨을 갖는 포인트를 검색하여 최근접 부근 검색을 수행할 수 있다.
일 예에서, 현재 포인트에 대해 참조 프레임에서 LOD 레벨이 낮은 포인트를 검색하여 최근접 부근 검색을 수행할 수 있다.
일 예에서, 현재 포인트에 대해 참조 프레임에서 LOD 레벨이 높은 포인트를 검색하여 최근접 부근 검색을 수행할 수 있다.
일 예에서, 모든 LOD의 포인트가 검색되는지 여부를 나타내는 지시가 디코더에 시그널링될 수 있다.
일 예에서, 지시는 고정 길이 코딩, 단항 코딩, 잘린 단항 코딩 등으로 코딩될 수 있다.
일 예에서, 지시는 예측 방식으로 코딩될 수 있다.
일 예에서, 동일한 LOD 내의 포인트만 검색되는지 여부를 나타내는 지시가 디코더에 시그널링될 수 있다.
일 예에서, 지시는 예를 들어 모든 LOD의 포인트가 검색되는지 여부에 따라 조건부로 시그널링될 수 있다.
일 예에서, 지시는 고정 길이 코딩, 단항 코딩, 잘린 단항 코딩 등으로 코딩될 수 있다.
일 예에서, 지시는 예측 방식으로 코딩될 수 있다.
여러 목록을 사용하여 검색 결과를 서로 다른 프레임에 저장하고 모든 목록을 결합하여 예측 목록을 생성하는 것을 제안한다.
일 예에서, 현재 프레임에 검색 결과를 저장하기 위한 제1 목록(예를 들어, list1)이 있을 수 있다.
일 예에서, 각 참조 프레임에 검색 결과를 저장하기 위한 제2 목록(예를 들어, list2)이 있을 수 있다.
일 예에서, 현재 프레임의 최근접 부근 검색은 list1만 변경할 수 있다.
일 예에서, 하나의 참조 프레임에서 최근접 부근 검색은 해당 목록만 변경할 수 있다.
일 예에서, 모든 목록의 포인트 정보는 예측자 목록을 생성하는 데 사용될 수 있다.
위에서 언급한 '프레임'은 프레임 내 하위 영역과 같은 다른 처리 유닛으로 대체될 수 있다.
위의 방법은 최근접 부근 검색 방법 외에 G-PCC의 다른 코딩 모듈 또는 다른 검색 방법에도 적용될 수 있다.
실시예
본 실시예에서는 속성 간 예측에서 최근접 부근 검색을 수행하기 위해 맨해튼 거리를 사용하는 방법에 대한 예를 설명한다. 이 예에서는, 참조 프레임의 검색 센터가 최근접 Morton 코드가 있는 포인트로 설정된다. 현재 프레임과 참조 프레임의 검색 범위는 모두 128로 설정된다.
각 프레임에 대해, 참조 프레임은 이전의 한 프레임이고, 속성 간 예측이 인코더와 디코더에서는 수행된다.
먼저, 현재 프레임과 참조 프레임의 포인트가 재정렬된다. 각 포인트의 Morton 코드가 계산되고 일 프레임의 포인트가 Morton 코드 순서에 따라 재정렬된다.
둘째로, 현재 프레임의 각 포인트에 대해, 현재 프레임과 참조 프레임에서 3개의 근사 최근접 이웃을 검색하여 list1에 저장한다. 최근접 이웃이 현재 프레임에 속하는지 여부를 나타내는 3개의 플래그가 있다.
현재 프레임의 검색 센터가 현재 포인트이다. Morton 코드 순서로 검색 센터 이전의 128개의 포인트를 횡단한다. 횡단한 포인트에서 맨해튼과 가장 가까운 거리가 있는 최대 3개의 포인트가 선택된다. list1의 각 포인트의 위치, 플래그 및 색인이 기록된다. 두 개의 포인트 및 의 맨해튼 거리 는 다음 공식으로 계산된다.
, (6-1)
참조 프레임의 검색 센터는 참조 프레임의 현재 포인트에 가장 가까운 Morton 코드를 갖는 포인트이다. Morton 코드 순서로 검색 센터 전의 이전 128 개의 포인트, Morton 코드 순서로 검색 센터 이후의 다음 128 개의 포인트 및 검색 센터를 횡단한다. 횡단한 포인트의 Manhattan 거리가 list1의 포인트보다 가까울 경우, 횡단한 포인트를 list1에 삽입하고 Manhattan 거리가 가장 긴 포인트를 list1에서 제거하여 list1을 업데이트한다. list1의 각 포인트의 위치, 플래그 및 색인이 기록된다.
셋째로, 현재 프레임의 각 포인트에 대해 list1의 포인트 정보에 기초하여 예측 변수를 생성하고 예측 값이 생성된다.
list1의 각 포인트에는 하나의 가중치 값이 있다. list1의 각 포인트의 계산된 거리는 해당 포인트에서 현재 포인트까지의 유클리드 거리에 기초하여 계산된다. 참조 프레임으로부터 계산된 포인트까지의 거리에 1을 더해야 한다. list1의 각 포인트에 대한 가중치 값은 계산된 거리의 역수이다. 두 개의 포인트 및 의 유클리드 거리 는 다음 공식으로 계산된다.
, (6-2)
list1의 각 포인트에 대한 속성은 색인에 기초하여 얻어진다.
list1에 있는 포인트 속성의 가변성이 계산된다.
가변성이 임계값보다 작을 경우 가중 평균 값을 사용하여 현재 포인트의 속성을 예측한다.
그렇지 않으면, RDO 절차를 적용하여 최상의 예측변수를 선택한다. 예측변수의 후보 목록에는 list1에 있는 포인트의 가중 평균 값과 속성 값이 포함된다. 그리고 RDO 프로세스의 결과는 디코더에 시그널링된다. 디코더에서는 시그널링된 RDO 결과에 기초하여 예측 값이 생성된다.
마지막으로, 현재 프레임의 각 포인트에 대해 현재 프레임의 속성과 예측된 속성 값 사이의 잔차가 코딩되어 디코더에 시그널링된다.
본 개시의 실시예의 더 자세한 설명은, 최근접 부근 검색에 기초한 포인트 클라우드 속성 코딩을 위한 최적화된 인터 예측과 관련된 것으로서 아래에 설명될 것이다.
본 명세서에서 사용된 바와 같이, 용어 "포인트 클라우드 서열"은 하나 이상의 포인트 클라우드의 서열을 지칭할 수 있다. 용어 "프레임"은 포인트 클라우드 서열의 포인트 클라우드를 지칭할 수 있다. 용어 "PC 샘플"은 포인트 클라우드 프레임, 포인트 클라우드 프레임 내의 하위 영역, 픽처, 슬라이스, 타일, 서브픽처, 노드, 포인트 또는 하나 이상의 노드 또는 포인트를 포함하는 기타 유닛과 같이 포인트 클라우드 서열 코딩에서 코딩을 수행하는 유닛을 의미할 수 있다.
도 4는 본 개시의 일부 실시예에 따른 포인트 클라우드 코딩 방법(400)을 나타내는 흐름도이다. 방법(400)은 포인트 클라우드 서열의 현재 PC 샘플과 포인트 클라우드 서열의 비트스트림 간의 변환 중에 구현될 수 있다. 도 4에 도시된 바와 같이, 방법(400)은, 포인트 클라우드 서열의 현재 PC 샘플의 현재 포인트에 대해, 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여, 포인트 클라우드 서열의 제1 PC 샘플 중 포인트 세트에서 적어도 하나의 검색 센터를 결정하는 단계 402에서 시작된다. 예를 들어, 메트릭은 현재 포인트의 Morton 코드와 포인트 세트의 각 포인트 사이의 차이일 수 있으며, 현재 포인트와 Morton 코드가 가장 유사한 포인트를 검색 센터로 결정될 수 있다.
단계 404에서, 적어도 하나의 검색 센터에 기초하여 현재 포인트의 적어도 하나의 인접한 포인트를 결정한다. 예를 들어, 적어도 하나의 인접한 포인트는 현재 포인트의 적어도 하나의 최근접 이웃일 수 있다. 최근접 부근 검색은, 하나의 최근접 이웃을 획득하기 위해, 적어도 하나의 검색 센터와 미리 결정된 검색 범위에 의해 정의된 포인트에 대해 수행되될 수 있다. 위의 예는 단지 설명의 목적으로만 기재된 것임을 이해해야 한다. 본 개시의 범위는 이러한 점에 제한되지 않는다.
단계 406에서, 적어도 하나의 인접한 포인트에 기초하여 변환이 수행된다. 예를 들어, 현재 포인트의 속성 값은, 적어도 하나의 인접한 포인트의 속성 값의 가중 평균 값을 계산함으로써 예측될 수 있다. 변환은 예측된 속성 값에 기초하여 수행될 수 있다. 일부 실시예에서, 변환은 현재 PC 샘플을 비트스트림으로 인코딩하는 단계를 포함할 수 있다. 추가적으로 또는 대안적으로, 변환은 현재 PC 샘플을 비트스트림으로부터 디코딩하는 단계를 포함할 수 있다. 위의 예는 단지 설명의 목적으로만 기재된 것임을 이해해야 한다. 본 개시의 범위는 이러한 점에 제한되지 않는다.
위의 관점에서, 적어도 하나의 검색 센터는 현재 포인트와 포인트의 세트의 기하학적 위치를 고려하여 결정될 수 있다. 제안된 방법은, 포인트의 Morton index에 기초하여 검색 센터를 결정하는 종래의 해결책에 비해, 현재 포인트와 기하학적 위치가 유사한 포인트를 선택할 수 있어 최근접 부근 검색 및 속성 간 예측의 정확도를 향상시킬 수 있다는 장점이 있다.
일부 실시예에서, 포인트 세트는 제1 PC 샘플의 모든 포인트를 포함할 수 있다. 즉, 적어도 하나의 검색 센터는 최근접 부근 검색에 기초하여 검색될 PC 샘플 내 모든 포인트 중에서 선택될 수 있다. 추가적으로, 적어도 하나의 검색 센터는 목표 포인트를 포함할 수 있다. 목표 포인트와 현재 포인트의 기하학적 위치 사이의 메트릭은 메트릭 중에서 가장 작다. 일부 예에서, 메트릭은 유클리드 거리, 맨해튼 거리 또는 체비쇼프 거리와 같은 기하학적 거리일 수 있다. 대안적으로, 메트릭은 목표 포인트와 현재 포인트의 변환 코드 사이의 거리일 수도 있다. 예를 들어, 목표 포인트와 현재 포인트의 변환 코드 간의 거리는 목표 포인트와 현재 포인트의 변환 코드 간의 차이일 수 있다. 예를 들어, 변환 코드는 Morton 코드 또는 Hilbert 코드일 수 있다. 위의 예는 단지 설명의 목적으로만 기재된 것임을 이해해야 합니다. 본 개시의 범위는 이러한 점에 제한되지 않는다.
일부 대안적인 실시예에서, 포인트 세트는 제1 PC 샘플의 포인트의 일부를 포함할 수 있다. 즉, 적어도 하나의 검색 센터는 최근접 부근 검색에 기초하여 검색될 PC 샘플의 일부 포인트 중에서 선택될 수 있다. 일 예에서, 포인트의 일부는 현재 포인트의 변환 코드보다 큰 변환 코드를 갖는 포인트일 수 있다. 대안적으로, 포인트의 일부는 현재 포인트의 변환 코드보다 작은 변환 코드를 갖는 포인트일 수 있다.
추가적으로, 적어도 하나의 검색 센터는 목표 포인트를 포함할 수 있다. 목표 포인트와 현재 포인트의 기하학적 위치 사이의 메트릭은 메트릭 중에서 가장 작다. 일부 예에서, 메트릭은 유클리드 거리, 맨해튼 거리 또는 체비쇼프 거리와 같은 기하학적 거리일 수 있다. 대안적으로, 메트릭은 목표 포인트와 현재 포인트의 변환 코드 사이의 거리일 수도 있다. 예를 들어, 변환 코드는 Morton 코드 또는 Hilbert 코드일 수 있다. 위의 예는 단지 설명의 목적으로만 기재된 것임을 이해해야 한다. 본 개시의 범위는 이러한 점에 제한되지 않는다.
일부 실시예에서, 제1 PC 샘플은 현재 PC 샘플일 수 있다. 일부 대안적인 실시예에서, 제1 PC 샘플은 현재 PC 샘플과 다른 PC 샘플일 수 있다. 대안적으로, 제1 PC 샘플은 현재 PC 샘플의 참조 PC 샘플일 수 있다.
일부 실시예에서, 적어도 하나의 인접한 포인트는 제1 PC 샘플에 대해 최근접 부근 검색을 수행함으로써 결정될 수 있다. 제1 PC 샘플의 포인트는 최근접 부근 검색이 수행되기 전에 재정렬될 수 있다. 일 예에서, 제1 PC 샘플의 포인트는 포인트의 변환 코드, 예를 들어 포인트의 Morton 코드 또는 Hilbert 코드에 기초하여 재정렬될 수 있다. 다른 예에서, 제1 PC 샘플의 포인트는 포인트의 극좌표에 기초하여 재정렬될 수 있다. 추가 예에서, 제1 PC 샘플의 포인트는 포인트의 구면 좌표에 기초하여 재정렬될 수 있다. 또 다른 예에서, 제1 PC 샘플의 포인트는 포인트의 원기둥 좌표에 기초하여 재정렬될 수 있다. 대안적으로, 제1 PC 샘플의 포인트는, 포인트 클라우드 서열을 획득하기 위한 레이더의 스캐닝 순서에 기초하여 재정렬될 수 있다. 또한, 재정렬된 포인트의 순서에 따라 최근접 부근 검색을 수행할 수도 있다.
일부 실시예에서, 적어도 하나의 검색 센터는 하나의 검색 센터를 포함할 수 있다. 일 예로서, 최근접 부근 검색은 검색 센터 및 재정렬된 포인트 중 검색 센터 이전의 포인트에 대해 수행될 수 있다. 대안적으로 최근접 부근 검색은, 검색 센터 및 재정렬된 포인트 중 검색 센터 다음의 포인트에 대해 수행될 수 있다. 추가 예에서, 최근접 부근 검색은 검색 센터, 재정렬된 포인트 중 검색 센터 이전의 포인트 및 재정렬된 포인트에서 검색 센터에 뒤따르는 포인트에 대해 수행될 수 있다.
일부 실시예에서, 적어도 하나의 검색 센터는 복수의 검색 센터를 포함할 수 있다. 일 예에서, 최근접 부근 검색은 복수의 검색 센터 중 일부로부터 시작하여 수행될 수 있다. 즉, 최근접 부근 검색은 복수의 검색 센터 중 하나 이상에서 수행될 수 있다.
일부 실시예에서, 메트릭은 현재 포인트와 포인트 세트의 각 포인트 사이의 기하학적 거리를 포함할 수 있다. 복수의 검색 센터는 가장 작은 메트릭을 갖는 복수의 포인트일 수 있다. 예를 들어, 기하학적 거리는 유클리드 거리, 맨해튼 거리, 체비쇼프 거리 등이 될 수 있다.
일부 대안적인 실시예에서, 메트릭은 현재 포인트의 변환 코드와 포인트 세트의 각 포인트 사이의 거리를 포함할 수 있다. 복수의 검색 센터는 가장 작은 메트릭을 갖는 복수의 포인트일 수 있다. 예를 들어, 변환 코드는 Morton 코드, Hilbert 코드 등이 될 수 있다.
본 개시의 실시예에서는 비일시적인 컴퓨터 판독 가능 기록 매체가 제안된다. 비일시적 컴퓨터 판독 가능 기록 매체에는 포인트 클라우드 서열의 비트스트림이 저장된다. 비트스트림은 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성될 수 있다. 방법에 따르면, 현재 PC 샘플의 현재 포인트에 대해, 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 포인트 클라우드 서열의 제1 PC 샘플 중 포인트 세트로부터 적어도 하나의 검색 센터가 결정된다. 현재 포인트의 적어도 하나의 인접한 포인트는 적어도 하나의 검색 센터에 기초하여 결정되고, 적어도 하나의 인접한 포인트에 기초하여 비트스트림이 생성된다.
본 개시의 실시예에서는, 포인트 클라우드 서열의 비트스트림을 저장하는 방법을 제안한다. 이 방법에서는, 현재 PC 샘플의 현재 포인트에 대해 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 포인트 클라우드 서열의 제1 PC 샘플 중 포인트 세트로부터 적어도 하나의 검색 센터가 결정된다. 현재 포인트의 적어도 하나의 인접한 포인트는 적어도 하나의 검색 센터에 기초하여 결정되고, 적어도 하나의 인접한 포인트에 기초하여 비트스트림이 생성된다. 비트스트림은 비일시적 컴퓨터 판독 가능 기록 매체에 저장된다.
도 5는 본 개시의 일부 실시예에 따른 포인트 클라우드 코딩을 위한 다른 방법(500)을 나타내는 흐름도이다. 방법(500)은 포인트 클라우드 서열의 현재 PC 샘플과 포인트 클라우드 서열의 비트스트림 간의 변환 중에 구현될 수 있다. 도 5에 도시된 바와 같이, 방법(500)은, 현재 PC 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 포인트 클라우드 서열의 PC 샘플 세트에서 적어도 하나의 인접한 포인트를 결정하는 단계 502에서 시작된다. 예를 들어, 적어도 하나의 인접한 포인트는 현재 포인트의 적어도 하나의 최근접 이웃일 수 있다. 최근접 부근 검색은 제1 검색 범위에 기초하여 PC 샘플 세트 중 젭 PC 샘플에 대해 수행될 수 있고, 적어도 하나의 최근접 이웃을 얻기 위해, 최근접 부근 검색은 제1 검색 범위와 다른 제2 검색 범위에 기초하여 PC 샘플 세트 중 제2 PC 샘플에 대해 추가로 수행될 수 있다.
단계 504에서, 적어도 하나의 인접한 포인트에 기초하여 변환을 수행한다. 예를 들어, 현재점의 속성 값은 적어도 하나의 인접한 포인트의 속성 값의 가중 평균 값을 계산함으로써 예측될 수 있다. 변환은 예측된 속성값에 기초하여 수행될 수 있다. 일부 실시예에서, 변환은 현재 PC 샘플을 비트스트림으로 인코딩하는 단계를 포함할 수 있다. 추가적으로 또는 대안적으로, 변환은 현재 PC 샘플을 비트스트림으로부터 디코딩하는 단계를 포함할 수 있다.
상술한 관점에서, 현재 포인트의 인접한 포인트를 검색하기 위해, 복수의 검색 범위가 사용될 수 있다. 제안된 방법은, 하나의 검색 범위만 사용하는 종래의 해결책에 비해, 검색 범위가 다른 PC 샘플 세트를 유리하게 검색될 수 있어 최근접 부근 검색 및 속성 간 예측의 효율성을 향상시킬 수 있다.
일부 실시예에서, 적어도 하나의 인접한 포인트는 복수의 검색 범위에 기초하여 PC 샘플 세트에 대해 최근접 부근 검색을 수행함으로써 단계 502에서 결정될 수 있다. 일 예에서, 최근접 부근 검색은 복수의 검색 범위 중 제1 검색 범위에 기초하여 제1 방향으로 PC 샘플 세트 중 제1 PC 샘플에 대해 수행될 수 있다. 또한, 최근접 부근 검색은, 복수의 검색 범위 중 제2 검색 범위에 기초하여 제2 방향으로 제1 PC 샘플에 대해 수행될 수 있다. 제2 방향은 제1 방향과 다르며, 제2 검색 범위는 제1 검색 범위와 다르다. 즉, 서로 다른 방향의 검색을 위해 서로 다른 검색 범위가 사용될 수 있다.
추가적으로 또는 대안적으로, 최근접 부근 검색은 복수의 검색 범위 중 제1 검색 범위에 기초하여 PC 샘플 세트 중 제1 PC 샘플에 대해 수행될 수 있다. 또한, 최근접 부근 검색은 복수의 검색 범위 중 제2 검색 범위에 기초하여 PC 샘플 세트 중 제2 PC 샘플에 대해 수행될 수 있다. 제2 PC 샘플은 제1 PC 샘플과 다를 수 있고, 제2 검색 범위는 제1 검색 범위와 다를 수 있다. 즉, 서로 다른 PC 샘플을 검색하기 위해 서로 다른 검색 범위를 사용할 수 있다. 일 예에서, 제1 PC 샘플은 현재 PC 샘플일 수 있고, 제2 PC 샘플은 현재 PC 샘플의 참조 PC 샘플일 수 있다. 즉, 현재 프레임과 참조 프레임에 대해 서로 다른 검색 범위가 사용될 수 있다.
일부 추가적인 또는 대안적인 실시예에서, 최근접 부근 검색은 복수의 검색 범위 중 적어도 하나의 검색 범위에 기초하여, PC 샘플 세트 중 제3 PC 샘플에 대해 수행될 수 있다. 즉, 검색될 하나의 PC 샘플에 대해 적어도 하나의 검색 범위가 사용될 수 있다.
일부 실시예에서, 적어도 하나의 검색 범위 중 제1 검색 범위는 제1 PC 샘플의 검색 센터 이전에 검색될 포인트의 수를 나타낼 수 있다. 대안적으로, 적어도 하나의 검색 범위 중 제2 검색 범위는 제1 PC 샘플의 검색 센터 이후에 검색될 포인트의 수를 나타낼 수 있다. 일부 추가 실시예에서, 적어도 하나의 검색 범위 중 제3 검색 범위는 제1 PC 샘플의 검색 센터 이전에 검색될 포인트의 수와 검색 센터 이후에 검색될 포인트의 수를 모두 나타낼 수 있다.
일부 실시예에서, 복수의 검색 범위 중 제4 검색 범위를 지시하는 지시가 비트스트림에 포함될 수 있다. 일 예에서, 제4 검색 범위가 PC 샘플 세트 중 하나의 포인트 모두가 검색될 수 있음을 나타내는 경우, 지시는 미리 정의된 신호일 수 있다. 다른 예에서, 제4 검색 범위가 복수의 미리 정의된 검색 범위로부터 선택될 수 있는 경우, 지시는 복수의 미리 정의된 신호로부터 선택될 수 있다. 추가적인 예에서, 지시는 제4 검색 범위의 값일 수 있다. 또 다른 예에서, 지시는 제4 검색 범위의 미리 정의된 수학적 변환에 기초하여 결정될 수 있다.
일부 실시예에서, 지시는 고정 길이 코딩으로 코딩될 수 있다. 대안적으로, 지시는 단항 코딩으로 코딩될 수 있다. 일부 추가 실시예에서, 지시는 잘린 단항 코딩으로 코딩될 수 있다. 일부 대안적인 실시예에서, 지시는 예측 방식으로 코딩될 수 있다.
본 개시의 실시예에 따르면, 비일시적 컴퓨터 판독 가능 기록 매체가 제안된다. 비일시적 컴퓨터 판독 가능 기록 매체에는 포인트 클라우드 서열의 비트스트림이 저장된다. 비트스트림은 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성될 수 있다. 방법에 따르면, 현재 PC 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 포인트 클라우드 서열의 PC 샘플 세트에서 적어도 하나의 인접한 포인트가 결정되고, 적어도 하나의 인접한 포인트에 기초하여 비트스트림이 생성된다.
본 개시의 실시예에 따르면, 포인트 클라우드 서열의 비트스트림을 저장하는 방법이 제안된다. 방법에서, 현재 PC 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 포인트 클라우드 서열의 PC 샘플 세트에서 적어도 하나의 인접한 포인트가 결정되고, 적어도 하나의 인접한 포인트에 기초하여 비트스트림이 생성된다. 비트스트림은 비일시적 컴퓨터 판독 가능 기록 매체에 저장된다.
본 발명의 구현은 다음 조항을 고려하여 설명될 수 있으며, 그 특징은 임의의 합리적인 방식으로 조합될 수 있다.
조항 1. 포인트 클라우드 코딩 방법은, 현재 포인트 클라우드(PC) 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 상기 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여, 상기 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 상기 적어도 하나의 검색 센터에 기초하여 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계 및 상기 적어도 하나의 인접한 포인트에 기초하여 상기 변환을 수행하는 단계를 포함한다.
조항 2. 조항 1의 방법에 있어서, 상기 포인트 세트는 상기 제1 PC 샘플의 모든 포인트를 포함한다.
조항 3. 조항 2의 방법에 있어서, 상기 적어도 하나의 검색 센터는 목표 포인트를 포함하고, 상기 목표 포인트와 상기 현재 포인트의 기하학적 위치 사이의 매트릭이 상기 메트릭 중에서 가장 작다.
조항 4. 조항 3의 방법에 있어서, 상기 메트릭은 유클리드 거리, 맨해튼 거리 또는 체비쇼프 거리 중 하나이다.
조항 5. 조항 1의 방법에 있어서, 상기 포인트 세트는 상기 제1 PC 샘플의 일부 포인트를 포함한다.
조항 6. 조항 5의 방법에 있어서, 상기 적어도 하나의 검색 센터는 목표 포인트를 포함하고, 상기 목표 포인트와 상기 현재 포인트 사이의 기하학적 위치 사이의 메트릭은 상기 메트릭 중에서 가장 작다.
조항 7. 조항 6의 방법에 있어서, 상기 메트릭은 유클리드 거리, 맨해튼 거리 또는 체비쇼프 거리 중 하나이다.
조항 8. 조항 3의 방법에 있어서, 상기 메트릭은 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리이다.
조항 9. 조항 8의 방법에 있어서, 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리는 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 차이이다.
조항 10. 조항 8 내지 9 중 어느 한 조항의 방법에 있어서, 상기 변환 코드는Morton 코드 또는 Hilbert 코드이다.
조항 11. 조항 6의 방법에 있어서, 상기 메트릭은 상기 목표 포인트와 상기 현재 포인트의 변환 코드사이의 거리이다.
조항 12. 조항 5 내지 6 또는 조항 11 중 어느 한 조항의 방법에 있어서, 상기 포인트의 일부는 상기 현재 포인트의 변환 코드보다 큰 변환 코드를 갖는 포인트이다.
조항 13. 조항 5 내지 6 또는 11 중 어느 한 조항의 방법에 있어서, 상기 포인트의 일부는 상기 현재 포인트의 변환 코드보다 작은 변환 코드를 갖는 포인트이다.
조항 14. 조항 11의 방법에 있어서, 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리는, 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 차이이다.
조항 15. 조항 11 또는 14의 방법에 있어서, 상기 변환 코드는 Morton 코드 또는 Hilbert 코드이다.
조항 16. 조항 1 내지 15 중 어느 한 조항의 방법에 있어서, 상기 제1 PC 샘플은 상기 현재 PC 샘플, 상기 현재 PC 샘플과 다른 PC 샘플 또는 상기 현재 PC 샘플의 참조 PC 샘플 중 하나이다.
조항 17. 조항 1 내지 16 중 어느 한 조항의 방법에 있어서, 상기 적어도 하나 인접한 포인트는 상기 제1 PC 샘플에 대해 최근접 부근 검색을 수행함으로써 결정되고, 상기 제1 PC 샘플의 포인트는 상기 최근접 부근 검색이 수행되기 전에 재정렬된다.
조항 18. 조항 17의 방법에 있어서, 상기 제1 PC 샘플의 포인트는, 상기 포인트의 변환 코드에 기초하여 재정렬된다.
조항 19. 조항 18의 방법에 있어서, 상기 변환 코드는 Morton 코드 또는 Hilbert 코드이다.
조항 20. 조항 17의 방법에 있어서, 상기 제1 PC 샘플의 포인트는 상기 포인트의 극좌표에 기초하여 재정렬된다.
조항 21. 조항 17의 방법에 있어서, 상기 제1 PC 샘플의 포인트는 상기 포인트의 구면 좌표에 기초하여 재정렬된다.
조항 22. 조항 17의 방법에 있어서, 상기 제1 PC 샘플의 포인트는 상기 포인트의 원기둥 좌표에 기초하여 재정렬된다.
조항 23. 조항 17의 방법에 있어서, 상기 제1 PC 샘플의 포인트는 상기 포인트 클라우드 서열을 획득하기 위한 레이더의 스캐닝 순서에 기초하여 재정렬된다.
조항 24. 조항 17 내지 23 중 어느 한 조항의 방법에 있어서, 상기 최근접 부근 검색은 상기 재정렬된 포인트의 순서에 기초하여 수행된다.
조항 25. 조항 17 내지 24 중 어느 한 조항의 방법에 있어서, 상기 적어도 하나의 검색 센터는 하나의 검색 센터를 포함한다.
조항 26. 조항 25의 방법에 있어서, 상기 최근접 부근 검색은 상기 검색 센터 및 상기 재정렬된 포인트 중 상기 검색 센터 이전의 포인트에 대해 수행된다.
조항 27. 조항 25의 방법에 있어서, 상기 최근접 부근 검색은, 상기 검색 센터 및 상기 재정렬된 포인트 중 상기 검색 센터에 뒤따르는 포인트에 대해 수행된다.
조항 28. 조항 25의 방법에 있어서, 상기 최근접 부근 검색은 상기 검색 센터, 상기 재정렬된 포인트 중 상기 검색 센터 이전의 포인트 및 상기 재정렬된 포인트 중 상기 검색 센터에 뒤따르는 포인트에 대해 수행된다.
조항 29. 조항 1 내지 24 중 어느 한 조항의 방법에 있어서, 상기 적어도 하나의 검색 센터는 복수의 검색 센터를 포함한다.
조항 30. 조항 29의 방법에 있어서, 상기 최근접 부근 검색은 상기 복수의 검색 센터 중 일부로부터 시작하여 수행된다.
조항 31. 조항 29의 방법에 있어서, 상기 메트릭은 상기 현재 포인트와 상기 포인트 세트의 각 포인트 사이의 기하학적 거리를 포함하고, 상기 복수의 검색 센터는 상기 가장 작은 메트릭을 갖는 복수의 포인트이다.
조항 32. 조항 29의 방법에 있어서, 상기 메트릭은 상기 현재 포인트의 변환 코드와 상기 포인트 세트의 각 포인트 사이의 거리를 포함하고, 상기 복수의 검색 센터는 상기 가장 작은 메트릭을 갖는 복수의 포인트이다.
조항 33. 포인트 클라우드 코딩 방법은, 현재 PC 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 상기 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계 및 상기 적어도 하나의 인접한 포인트에 기초하여 상기 변환을 수행하는 단계를 포함한다.
조항 34. 조항 33의 방법에 있어서, 상기 적어도 하나의 인접한 포인트를 결정하는 단계는, 상기 복수의 검색 범위에 기초하여 상기 PC 샘플 세트에 대해 최근접 부근 검색을 수행함으로써, 적어도 하나의 인접한 포인트를 결정하는 단계를 포함한다.
조항 35. 조항 34의 방법에 있어서, 상기 최근접 부근 검색은 상기 복수의 검색 범위 중 제1 검색 범위에 기초하여 제1 방향으로 상기 PC 샘플 세트 중 제1 PC 샘플에 대해 수행되며, 상기 복수의 검색 범위 중 제2 검색 범위에 기초하여 제2 방향으로 상기 제1 PC 샘플에 대해 상기 최근접 부근 검색이 추가로 수행되고, 상기 제2 방향은 상기 제1 방향과 다르며, 상기 제2 검색 범위는 상기 제1 검색 범위와 다르다.
조항 36. 조항 34의 방법에 있어서, 상기 최근접 부근 검색은 상기 복수의 검색 범위 중 제1 검색 범위에 기초하여 상기 PC 샘플 세트 중 제1 PC 샘플에 대해 수행되고, 상기 복수의 검색 범위 중 제2 검색 범위에 기초하여 상기 PC 샘플 세트 중 제2 PC 샘플에 대해 상기 최근접 부근 검색이 추가로 수행되며, 상기 제2 PC 샘플은 상기 제1 PC 샘플과 다르고, 상기 제2 검색 범위는 상기 제1 검색 범위와 다르다.
조항 37. 조항 34 내지 36 중 어느 한 조항의 방법에 있어서, 상기 최근접 부근 검색은 상기 복수의 검색 범위 중 적어도 하나의 검색 범위에 기초하여 상기 PC 샘플 세트 중 제3 PC 샘플에 대해 수행된다.
조항 38. 조항 37의 방법에 있어서, 상기 적어도 하나의 검색 범위 중 제1 검색 범위는 상기 제1 PC 샘플의 검색 센터 전에 검색될 포인트의 수를 나타낸다.
조항 39. 조항 37의 방법에 있어서, 상기 적어도 하나의 검색 범위 중 제2 검색 범위는 상기 제1 PC 샘플의 검색 센터 후에 검색될 포인트의 수를 나타낸다.
조항 40. 조항 37의 방법에 있어서, 상기 적어도 하나의 검색 범위 중 제3 검색 범위는 상기 제1 PC 샘플의 검색 센터 전에 검색될 포인트의 수와 상기 검색 센터 후에 검색될 포인트의 수 모두를 나타낸다.
조항 41. 조항 36의 방법에 있어서, 상기 제1 PC 샘플은 상기 현재 PC 샘플이고, 상기 제2 PC 샘플은 상기 현재 PC 샘플의 참조 PC 샘플이다.
조항 42. 조항 33 내지 41 중 어느 한 조항의 방법에 있어서, 상기 복수의 검색 범위 중 제4 검색 범위를 지시하는 지시는 상기 비트스트림에 포함된다.
조항 43. 조항 42의 방법에 있어서, 제4 검색 범위가 상기 PC 샘플 세트 중 하나의 포인트 모두가 검색되어야 함을 지시하는 경우, 상기 지시는 미리 정의된 신호이다.
조항 44. 조항 42의 방법에 있어서, 상기 제4 검색 범위가 복수의 미리 정의된 검색 범위로부터 선택되는 경우, 상기 지시는 복수의 미리 정의된 신호로부터 선택된다.
조항 45. 조항 42의 방법에 있어서, 상기 지시는 상기 제4 검색 범위의 값이다.
조항 46. 조항 42의 방법에 있어서, 상기 지시는 상기 제4 검색 범위의 미리 정의된 수학적 변환에 기초하여 결정된다.
조항 47. 조항 42 내지 46 중 어느 한 조항의 방법에 있어서, 상기 지시는 고정 길이 코딩, 단항 코딩 또는 잘린 단항 코딩 중 하나로 코딩된다.
조항 48. 조항 42 내지 46 중 어느 한 조항의 방법에 있어서, 상기 지시는 예측 방식으로 코딩된다.
조항 49. 조항 1 내지 48 중 어느 한 조항의 방법에 있어서, 상기 현재 PC 샘플은 상기 포인트 클라우드 서열의 포인트 클라우드 프레임 또는 상기 포인트 클라우드 서열의 포인트 클라우드 프레임 내의 하위 영역이다.
조항 50. 조항 1-49 중 어느 한 조항의 방법에 있어서, 상기 적어도 하나의 인접한 포인트는 상기 현재 포인트의 적어도 하나의 최근접 이웃을 포함한다.
조항 51. 조항 1 내지 50 중 어느 한 조항의 방법에 있어서, 상기 변환은 상기 현재 PC 샘플을 상기 비트스트림으로 인코딩하는 단계를 포함한다.
조항 52. 조항 1 내지 50 중 어느 한 조항에 있어서, 상기 변환은 상기 비트스트림으로부터 상기 현재 PC 샘플을 디코딩하는 단계를 포함한다.
조항 53. 프로세서 및 명령이 포함된 비일시적 메모리를 포함하는 포인트 클라우드 데이터를 처리하는 장치는, 상기 명령이 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 조항 1 내지 52항 중 어느 한 조항에 따른 방법을 수행하도록 한다.
조항 54. 비일시적 컴퓨터 판독 가능 저장 매체에는 프로세서로 하여금 조항 1항 내지 52항 중 어느 한 조항에 따른 방법을 수행하도록 하는 명령이 저장된다.
조항 55. 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성된 포인트 클라우드 서열의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 상기 방법은, 상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 상기 현재 포인트와 상기 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 상기 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 상기 적어도 하나의 검색 센터에 기초하여 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계 및 상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계를 포함한다.
조항 56. 포인트 클라우드 서열의 비트스트림을 저장하는 방법은, 상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 상기 현재 포인트와 상기 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 상기 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계, 상기 적어도 하나의 검색 센터에 기초하여 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계, 상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계 및 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함한다.
조항 57. 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성된 포인트 클라우드 서열의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서, 상기 방법은, 상기 포인트 클라우드 서열의 상기 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 상기 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계 및 상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계를 포함한다.
조항 58. 포인트 클라우드 서열의 비트스트림을 저장하는 방법은, 상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 상기 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계, 상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계 및 상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함한다.
예시 디바이스
도 6은 본 개시의 다양한 실시예가 구현될 수 있는 컴퓨팅 디바이스(600)를 나타내는 블록도이다. 컴퓨팅 디바이스(600)는 소스 디바이스(110)(또는 GPCC 인코더(116 또는 200)) 또는 대상 디바이스(120)(또는 GPCC 디코더(126 또는 300))로서 구현되거나 그 내에 포함될 수 있다.
도 6에 도시된 컴퓨팅 디바이스(600)는 단지 예시를 위한 것이며, 어떠한 방식으로도 본 개시의 실시예의 기능 및 범위에 대한 제한을 시사하지 않는다는 것이 이해될 것이다.
도 6에 도시된 바와 같이, 컴퓨팅 디바이스(600)는 범용 컴퓨팅 디바이스(600)를 포함한다. 컴퓨팅 디바이스(600)는 적어도 하나 이상의 프로세서 또는 처리 유닛(610), 메모리(620), 저장 유닛(630), 하나 이상의 통신 유닛(640), 하나 이상의 입력 디바이스(1050) 및 하나 이상의 출력 디바이스(660)를 포함할 수 있다.
일부 실시예에서, 컴퓨팅 디바이스(600)는 컴퓨팅 기능이 있는 임의의 사용자 단말기 또는 서버 단말기로서 구현될 수 있다. 서버 단말기는 서비스 제공자가 제공하는 서버, 대규모 컴퓨팅 디바이스 등이 될 수 있다. 사용자 단말기에는 휴대 전화, 방송국, 유닛, 장치, 멀티미디어 컴퓨터, 멀티미디어 태블릿, 인터넷 노드, 커뮤니케이터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 넷북 컴퓨터, 태블릿 컴퓨터, 개인 통신 시스템(PCS) 장치, 개인 내비게이션 장치, 개인 정보 단말기(PDA), 오디오/동영상 플레이어, 디지털 카메라/동영상 카메라, 위치 확인 장치, 텔레비전 수신기, 라디오 방송 수신기, 전자책 디바이스, 게임 디바이스 또는 이러한 디바이스의 액세서리 및 주변 장치 또는 이들의 조합을 포함한 임의의 유형의 이동 단말기, 고정 단말기 또는 휴대용 단말기일 수 있다. 컴퓨팅 디바이스(600)는 사용자에 대한 임의의 유형의 인터페이스(예를 들어, "웨어러블" 회로 등)를 지원할 수 있는 것으로 고려된다.
처리 유닛(610)은 물리적 또는 가상의 프로세서일 수 있으며, 메모리(620)에 저장된 프로그램에 기초하여, 다양한 프로세스를 구현할 수 있다. 다중 프로세서 시스템에서, 다중 처리 유닛은 컴퓨팅 디바이스(600)의 병렬 처리 기능을 향상시키기 위해 컴퓨터 실행 가능 명령을 병렬로 수행한다. 처리 유닛(610)은 중앙 처리 유닛(CPU), 마이크로프로세서, 컨트롤러 또는 마이크로컨트롤러라고도 지칭될 수 있다.
컴퓨팅 디바이스(600)는 일반적으로 다양한 컴퓨터 저장 매체를 포함한다. 이러한 매체는 휘발성 및 비휘발성 매체, 또는 분리 가능형 및 분리 불가능형 매체를 포함하지만 이에 제한되지 않는 컴퓨팅 디바이스(600)에 의해 액세스 가능한 임의의 매체일 수 있다. 메모리(620)는 휘발성 메모리(예를 들어, 레지스터, 캐시, 랜덤 액세스 메모리 (RAM)), 비휘발성 메모리(예를 들어, 읽기 전용 메모리(ROM)), 전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리(EEPROM) 또는 플래시 메모리) 또는 이들의 임의의 조합일 수 있다. 저장 유닛(630)은 임의의 분리 가능형 또는 분리 불가능형 매체일 수 있으며, 정보 및/또는 데이터를 저장하는 데 사용될 수 있고, 컴퓨팅 디바이스(600)에서 액세스될 수 있는 메모리, 플래시 메모리 드라이브, 자기 디스크 또는 다른 매체와 같은 기계 판독 가능 매체를 포함할 수 있다.
컴퓨팅 디바이스(600)는 추가적인 분리 가능형/분리 불가능형, 휘발성/비휘발성 메모리 매체를 추가로 포함할 수 있다. 도 6에는 도시되지 않았지만, 분리 가능형 비휘발성 자기 디스크에서 읽거나 쓰기 위한 자기 디스크 드라이브와, 분리 가능형 비휘발성 광 디스크에서 읽거나 쓰기 위한 광 디스크 드라이브가 제공될 수 있다. 이러한 경우 각 드라이브는 하나 이상의 데이터 매체 인터페이스를 통해 버스(미도시)에 연결될 수 있다.
통신 유닛(640)은 통신 매체를 통해 추가 컴퓨팅 디바이스와 통신한다. 또한, 컴퓨팅 디바이스(600)의 구성요소 기능은 단일 컴퓨팅 클러스터 또는 통신 연결을 통해 통신할 수 있는 복수의 컴퓨팅 기계에 의해 구현될 수 있다. 따라서, 컴퓨팅 디바이스(600)는 하나 이상의 다른 서버, 네트워크에 연결된 개인용 컴퓨터(PC) 또는 추가적인 일반 네트워크 노드와의 논리적 연결을 사용하여 네트워크 환경에서 작동할 수 있다.
입력 디바이스(650)는 마우스, 키보드, 트래킹 볼, 음성 입력 디바이스 등과 같은 다양한 입력 디바이스 중 하나 이상일 수 있다. 출력 디바이스(660)는 디스플레이, 확성기, 프린터 등과 같은 다양한 출력 디바이스 중 하나 이상일 수 있다. 통신 유닛(640)을 통해, 컴퓨팅 디바이스(600)는 저장 디바이스 및 디스플레이 디바이스와 같은 하나 이상의 외부 디바이스(미도시), 사용자가 컴퓨팅 디바이스(600)와 상호 작용할 수 있도록 하는 하나 이상의 디바이스, 또는 필요한 경우, 컴퓨팅 디바이스(600)가 하나 이상의 다른 컴퓨팅 디바이스와 통신할 수 있도록 하는 임의의 디바이스(네트워크 카드, 모뎀 등과 같은)와 추가로 통신할 수 있다. 이러한 통신은 입력/출력(I/O) 인터페이스(미도시)를 통해 수행될 수 있다.
일부 실시예에서, 단일 디바이스에 통합되는 대신, 컴퓨팅 디바이스(600)의 일부 또는 모든 구성요소는 클라우드 컴퓨팅 아키텍처로 배열될 수도 있다. 클라우드 컴퓨팅 아키텍처에서, 구성요소는 원격으로 제공될 수 있으며 함께 작동하여 본 개시에 설명된 기능을 구현할 수 있다. 일부 실시예에서, 클라우드 컴퓨팅은 컴퓨팅, 소프트웨어, 데이터 액세스 및 저장 서비스를 제공하며, 이러한 서비스를 제공하는 시스템 또는 하드웨어의 물리적 위치 또는 구성을 최종 사용자는 알 필요가 없다. 다양한 실시예에서, 클라우드 컴퓨팅은 적합한 프로토콜을 사용하여 광역 네트워크(인터넷 등)를 통해 서비스를 제공한다. 예를 들어, 클라우드 컴퓨팅 공급자는 웹 브라우저나 기타 컴퓨팅 구성요소를 통해 액세스할 수 있는 광역 네트워크를 통해 애플리케이션을 제공한다. 클라우드 컴퓨팅 아키텍처의 소프트웨어 또는 구성요소와 대응하는 데이터는, 원격 위치에 있는 서버에 저장될 수 있다. 클라우드 컴퓨팅 환경의 컴퓨팅 자원은 원격 데이터 센터의 위치에 병합되거나 분산될 수 있다. 클라우드 컴퓨팅 인프라는 사용자를 위한 단일 액세스 포인트로 작동하지만 공유 데이터 센터를 통해 서비스를 제공할 수 있다. 따라서 클라우드 컴퓨팅 아키텍처는, 본 명세서에 설명된 구성요소 및 기능을 원격 위치에 있는 서비스 제공업체로부터 제공하는 데 사용될 수 있다. 대안적으로, 이들은 종래의 서버로부터 제공될 수도 있고, 또한 클라이언트 디바이스에 직접 또는 다른 방식으로 설치될 수도 있다.
컴퓨팅 디바이스(600)는 본 개시의 실시예에 있어서, 포인트 클라우드 인코딩/디코딩을 구현하는 데 사용될 수 있다. 메모리(620)는 하나 이상의 프로그램 명령을 갖는 하나 이상의 포인트 클라우드 코딩 모듈(625)을 포함할 수 있다. 이러한 모듈은 본 명세서에 설명된 다양한 실시예의 기능을 수행하기 위해 처리 유닛(610)에 의해 액세스 가능하고 실행 가능하다.
포인트 클라우드 인코딩을 수행하는 예시적인 실시예에서, 입력 디바이스(650)는 인코딩될 포인트 클라우드 데이터를 입력(670)으로 수신할 수 있다. 포인트 클라우드 데이터는 예를 들어, 포인트 클라우드 코딩 모듈(625)에 의해 처리되어 인코딩된 비트스트림을 생성할 수 있다. 인코딩된 비트스트림은 출력 디바이스(660)를 통해 출력(680)으로 제공될 수 있다.
포인트 클라우드 디코딩을 수행하는 예시적인 실시예에서, 입력 디바이스(650)는 인코딩된 비트스트림을 입력(670)으로 수신할 수 있다. 인코딩된 비트스트림은 예를 들어, 포인트 클라우드 코딩 모듈(625)에 의해 처리되어 디코딩된 포인트 클라우드 데이터를 생성할 수 있다. 디코딩된 동영상 데이터는 출력 디바이스(660)를 통해 출력(680)으로 제공될 수 있다.
본 개시는 바람직한 실시예를 참조하여 특별히 도시되고 설명되었지만, 당업자는 첨부된 청구범위를 통해 정의된 바와 같은 본 출원의 사상 및 범위를 벗어나지 않으면서 형태 및 세부 사항의 다양한 변경이 이루어질 수 있음을 이해할 것이다. 이러한 변형은 본 출원의 범위에 포함되도록 의도된다. 따라서, 본 출원의 실시예에 대한 전술한 설명은 제한하려고 하는 의도가 없다.
Claims (58)
- 포인트 클라우드 코딩 방법으로서,
현재 포인트 클라우드(PC) 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 상기 현재 포인트와 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여, 상기 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계;
상기 적어도 하나의 검색 센터에 기초하여, 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계; 및
상기 적어도 하나의 인접한 포인트에 기초하여, 상기 변환을 수행하는 단계를 포함하는, 방법.
- 제1항에 있어서,
상기 포인트 세트는 상기 제1 PC 샘플의 모든 포인트를 포함하는, 방법.
- 제2항에 있어서,
상기 적어도 하나의 검색 센터는 목표 포인트를 포함하고, 상기 목표 포인트와 상기 현재 포인트의 기하학적 위치 사이의 매트릭이 상기 메트릭 중에서 가장 작은, 방법.
- 제3항에 있어서,
상기 메트릭은
유클리드 거리,
맨해튼 거리 또는
체비쇼프 거리 중 하나인, 방법.
- 제1항에 있어서,
상기 포인트 세트는 상기 제1 PC 샘플의 일부 포인트를 포함하는, 방법.
- 제5항에 있어서,
상기 적어도 하나의 검색 센터는 목표 포인트를 포함하고, 상기 목표 포인트와 상기 현재 포인트 사이의 기하학적 위치 사이의 메트릭은 상기 메트릭 중에서 가장 작은, 방법.
- 제6항에 있어서,
상기 메트릭은,
유클리드 거리,
맨해튼 거리 또는
체비쇼프 거리 중 하나인, 방법.
- 제3항에 있어서,
상기 메트릭은 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리인, 방법.
- 제8항에 있어서,
상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리는, 상기 목표 포인트와 상기 현재 포인트 사이의 변환 코드 사이의 차이인, 방법.
- 제8항 내지 제9항 중 어느 한 항에 있어서,
상기 변환 코드는Morton 코드 또는 Hilbert 코드인 방법.
- 제6항에 있어서,
상기 메트릭은 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리인, 방법.
- 제5항 내지 제6항 또는 제11항 중 어느 한 항에 있어서,
상기 포인트의 일부는 상기 현재 포인트의 변환 코드보다 큰 변환 코드를 갖는 포인트인, 방법.
- 제5항 내지 제6항 또는 제11항 중 어느 한 항에 있어서,
상기 포인트의 일부는 상기 현재 포인트의 변환 코드보다 작은 변환 코드를 갖는 포인트인, 방법.
- 제11항에 있어서,
상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 거리는, 상기 목표 포인트와 상기 현재 포인트의 변환 코드 사이의 차이인, 방법.
- 제11항 또는 제14항에 있어서,
상기 변환 코드는 Morton 코드 또는 Hilbert 코드인, 방법.
- 제1항 내지 제15항 중 어느 한 항에 있어서,
상기 제1 PC 샘플은
상기 현재 PC 샘플,
상기 현재 PC 샘플과 다른 PC 샘플 또는
상기 현재 PC 샘플의 참조 PC 샘플 중 하나인, 방법.
- 제1항 내지 제16항 중 어느 한 항에 있어서,
상기 적어도 하나의 인접한 포인트는 상기 제1 PC 샘플에 대해 최근접 부근 검색을 수행함으로써 결정되고, 상기 제1 PC 샘플의 포인트는 상기 최근접 부근 검색이 수행되기 전에 재정렬되는, 방법.
- 제17항에 있어서,
상기 제1 PC 샘플의 포인트는, 상기 포인트의 변환 코드에 기초하여 재정렬되는, 방법.
- 제18항에 있어서,
상기 변환 코드는 Morton 코드 또는 Hilbert 코드인, 방법.
- 제17항에 있어서,
상기 제1 PC 샘플의 포인트는 상기 포인트의 극좌표에 기초하여 재정렬되는, 방법.
- 제17항에 있어서,
상기 제1 PC 샘플의 포인트는 상기 포인트의 구면 좌표에 기초하여 재정렬되는, 방법.
- 제17항에 있어서,
상기 제1 PC 샘플의 포인트는 상기 포인트의 원기둥 좌표에 기초하여 재정렬되는, 방법.
- 제17항에 있어서,
상기 제1 PC 샘플의 포인트는 상기 포인트 클라우드 서열을 획득하기 위한 레이더의 스캐닝 순서에 기초하여 재정렬되는, 방법.
- 제17항 내지 제23항 중 어느 한 항에 있어서,
상기 최근접 부근 검색은 상기 재정렬된 포인트의 순서에 기초하여 수행되는, 방법.
- 제17항 내지 제24항 중 어느 한 항에 있어서,
상기 적어도 하나의 검색 센터는 하나의 검색 센터를 포함하는, 방법.
- 제25항에 있어서,
상기 최근접 부근 검색은 상기 검색 센터 및 상기 재정렬된 포인트 중 상기 검색 센터 이전의 포인트에 대해 수행되는, 방법.
- 제25항에 있어서,
상기 최근접 부근 검색은, 상기 검색 센터 및 상기 재정렬된 포인트 중 상기 검색 센터에 뒤따르는 포인트에 대해 수행되는, 방법.
- 제25항에 있어서,
상기 최근접 부근 검색은 상기 검색 센터, 상기 재정렬된 포인트 중 상기 검색 센터 이전의 포인트 및 상기 재정렬된 포인트 중 상기 검색 센터에 뒤따르는 포인트에 대해 수행되는, 방법.
- 제1항 내지 제24항 중 어느 한 항에 있어서,
상기 적어도 하나의 검색 센터는 복수의 검색 센터를 포함하는, 방법.
- 제29항에 있어서,
상기 최근접 부근 검색은 상기 복수의 검색 센터 중 일부로부터 시작하여 수행되는, 방법.
- 제29항에 있어서,
상기 메트릭은 상기 현재 포인트와 상기 포인트 세트의 각 포인트 사이의 기하학적 거리를 포함하고, 상기 복수의 검색 센터는 상기 가장 작은 메트릭을 갖는 복수의 포인트인, 방법.
- 제29항에 있어서,
상기 메트릭은 상기 현재 포인트의 변환 코드와 상기 포인트 세트의 각 포인트 사이의 거리를 포함하고, 상기 복수의 검색 센터는 상기 가장 작은 메트릭을 갖는 복수의 포인트인, 방법.
- 포인트 클라우드 코딩 방법으로서,
현재 포인트 클라우드(PC) 샘플과 포인트 클라우드 서열의 비트스트림 사이의 변환 중에, 상기 포인트 클라우드 서열의 현재 PC 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 상기 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계; 및
상기 적어도 하나의 인접한 포인트에 기초하여 상기 변환을 수행하는 단계를 포함하는, 방법.
- 제33항에 있어서,
상기 적어도 하나의 인접한 포인트를 결정하는 단계는,
상기 복수의 검색 범위에 기초하여 상기 PC 샘플 세트에 대해 최근접 부근 검색을 수행함으로써, 적어도 하나의 인접한 포인트를 결정하는 단계를 포함하는, 방법.
- 제34항에 있어서,
상기 최근접 부근 검색은 상기 복수의 검색 범위 중 제1 검색 범위에 기초하여 제1 방향으로 상기 PC 샘플 세트 중 제1 PC 샘플에 대해 수행되고, 상기 복수의 검색 범위 중 제2 검색 범위에 기초하여 제2 방향으로 상기 제1 PC 샘플에 대해 상기 최근접 부근 검색이 추가로 수행되고, 상기 제2 방향은 상기 제1 방향과 다르며, 상기 제2 검색 범위는 상기 제1 검색 범위와 다른, 방법.
- 제34항에 있어서,
상기 최근접 부근 검색은 상기 복수의 검색 범위 중 제1 검색 범위에 기초하여 상기 PC 샘플 세트 중 제1 PC 샘플에 대해 수행되고, 상기 복수의 검색 범위 중 제2 검색 범위에 기초하여 상기 PC 샘플 세트 중 제2 PC 샘플에 대해 상기 최근접 부근 검색이 추가로 수행되며, 상기 제2 PC 샘플은 상기 제1 PC 샘플과 다르고, 상기 제2 검색 범위는 상기 제1 검색 범위와 다른, 방법.
- 제34항 내지 제36항 중 어느 한 항에 있어서,
상기 최근접 부근 검색은 상기 복수의 검색 범위 중 적어도 하나의 검색 범위에 기초하여 상기 PC 샘플 세트 중 제3 PC 샘플에 대해 수행되는, 방법.
- 제37항에 있어서,
상기 적어도 하나의 검색 범위 중 제1 검색 범위는 상기 제1 PC 샘플의 검색 센터 전에 검색될 포인트의 수를 지시하는, 방법.
- 제37항에 있어서,
상기 적어도 하나의 검색 범위 중 제2 검색 범위는 상기 제1 PC 샘플의 검색 센터 후에 검색될 포인트의 수를 지시하는, 방법.
- 제37항에 있어서,
상기 적어도 하나의 검색 범위 중 제3 검색 범위는 상기 제1 PC 샘플의 검색 센터 전에 검색될 포인트의 수와 상기 검색 센터 후에 검색될 포인트의 수 모두를 지시하는, 방법.
- 제36항에 있어서,
상기 제1 PC 샘플은 상기 현재 PC 샘플이고, 상기 제2 PC 샘플은 상기 현재 PC 샘플의 참조 PC 샘플인, 방법.
- 제33항 내지 제41항 중 어느 한 항에 있어서,
상기 복수의 검색 범위 중 제4 검색 범위를 지시하는 지시는 상기 비트스트림에 포함되는, 방법.
- 제42항에 있어서,
제4 검색 범위가 상기 PC 샘플 세트 중 하나의 포인트 모두가 검색되어야 함을 지시하는 경우, 상기 지시는 미리 정의된 신호인, 방법.
- 제42항에 있어서,
상기 제4 검색 범위가 복수의 미리 정의된 검색 범위로부터 선택되는 경우, 상기 지시는 복수의 미리 정의된 신호로부터 선택되는, 방법.
- 제42항에 있어서,
상기 지시는 상기 제4 검색 범위의 값인, 방법.
- 제42항에 있어서,
상기 지시는 상기 제4 검색 범위의 미리 정의된 수학적 변환에 기초하여 결정되는, 방법.
- 제42항 내지 제46항 중 어느 한 항에 있어서,
상기 지시는
고정 길이 코딩,
단항 코딩 또는
잘린 단항 코딩 중 하나로 코딩되는, 방법.
- 제42항 내지 제46항 중 어느 한 항에 있어서,
상기 지시는 예측 방식으로 코딩되는, 방법.
- 제1항 내지 제48항 중 어느 한 항에 있어서,
상기 현재 PC 샘플은 상기 포인트 클라우드 서열의 포인트 클라우드 프레임 또는 상기 포인트 클라우드 서열의 포인트 클라우드 프레임 내의 하위 영역인, 방법.
- 제1항 내지 제49항 중 어느 한 항에 있어서,
상기 적어도 하나의 인접한 포인트는 상기 현재 포인트의 적어도 하나의 최근접 이웃을 포함하는, 방법.
- 제1항 내지 제50항 중 어느 한 항에 있어서,
상기 변환은 상기 현재 PC 샘플을 상기 비트스트림으로 인코딩하는 단계를 포함하는, 방법.
- 제1항 내지 제50항 중 어느 한 항에 있어서,
상기 변환은 상기 비트스트림으로부터 상기 현재 PC 샘플을 디코딩하는 단계를 포함하는, 방법.
- 프로세서 및 명령이 포함된 비일시적 메모리를 포함하는, 포인트 클라우드 데이터를 처리하는 장치로서,
상기 명령은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제52항 중 어느 한 항에 따른 방법을 수행하도록 하는, 장치.
- 프로세서로 하여금 제1항 내지 제52항 중 어느 한 항에 따른 방법을 수행하도록 하는 명령을 저장하는, 비일시적 컴퓨터 판독 가능 저장 매체.
- 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성된 포인트 클라우드 서열의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서,
상기 방법은
상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 상기 현재 포인트와 상기 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 상기 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계;
상기 적어도 하나의 검색 센터에 기초하여 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계; 및
상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능 기록 매체.
- 포인트 클라우드 서열의 비트스트림을 저장하는 방법으로서,
상기 방법은
상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 상기 현재 포인트와 상기 포인트 세트의 기하학적 위치와 관련된 메트릭에 기초하여 상기 포인트 클라우드 서열의 제1 PC 샘플의 포인트 세트로부터 적어도 하나의 검색 센터를 결정하는 단계;
상기 적어도 하나의 검색 센터에 기초하여 상기 현재 포인트의 적어도 하나의 인접한 포인트를 결정하는 단계;
상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계; 및
상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함하는, 방법.
- 포인트 클라우드 처리 장치에 의해 수행되는 방법을 통해 생성된 포인트 클라우드 서열의 비트스트림을 저장하는 비일시적 컴퓨터 판독 가능 기록 매체로서,
상기 방법은
상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 상기 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계; 및
상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능 기록 매체.
- 포인트 클라우드 서열의 비트스트림을 저장하는 방법으로서,
상기 방법은,
상기 포인트 클라우드 서열의 현재 포인트 클라우드(PC) 샘플의 현재 포인트에 대해, 복수의 검색 범위에 기초하여 상기 포인트 클라우드 서열의 PC 샘플 세트 중 적어도 하나의 인접한 포인트를 결정하는 단계;
상기 적어도 하나의 인접한 포인트에 기초하여 상기 비트스트림을 생성하는 단계; 및
상기 비트스트림을 비일시적 컴퓨터 판독 가능 기록 매체에 저장하는 단계를 포함하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNPCT/CN2021/133689 | 2021-11-26 | ||
CN2021133689 | 2021-11-26 | ||
PCT/CN2022/134474 WO2023093865A1 (en) | 2021-11-26 | 2022-11-25 | Method, apparatus, and medium for point cloud coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240097892A true KR20240097892A (ko) | 2024-06-27 |
Family
ID=86538882
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247017866A KR20240091150A (ko) | 2021-11-26 | 2022-11-25 | 포인트 클라우드 코딩 방법, 장치 및 매체 |
KR1020247017860A KR20240097892A (ko) | 2021-11-26 | 2022-11-25 | 포인트 클라우드 코딩을 위한 방법, 장치 및 매체 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247017866A KR20240091150A (ko) | 2021-11-26 | 2022-11-25 | 포인트 클라우드 코딩 방법, 장치 및 매체 |
Country Status (5)
Country | Link |
---|---|
US (2) | US20240314359A1 (ko) |
EP (2) | EP4437720A1 (ko) |
KR (2) | KR20240091150A (ko) |
CN (2) | CN118661415A (ko) |
WO (2) | WO2023093866A1 (ko) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10904564B2 (en) * | 2018-07-10 | 2021-01-26 | Tencent America LLC | Method and apparatus for video coding |
US11166048B2 (en) * | 2018-10-02 | 2021-11-02 | Tencent America LLC | Method and apparatus for video coding |
US10979730B2 (en) * | 2019-03-20 | 2021-04-13 | Tencent America LLC | Techniques and apparatus for interframe point cloud attribute coding |
US11475604B2 (en) * | 2019-03-26 | 2022-10-18 | Tencent America LLC | Method and apparatus for adaptive point cloud attribute coding |
WO2021003726A1 (zh) * | 2019-07-10 | 2021-01-14 | 深圳市大疆创新科技有限公司 | 一种数据编码、数据解码方法、设备及存储介质 |
EP4131975A4 (en) * | 2020-04-14 | 2023-11-22 | LG Electronics, Inc. | POINT CLOUD DATA TRANSMITTING APPARATUS, POINT CLOUD DATA TRANSMITTING METHOD, POINT CLOUD DATA RECEIVING APPARATUS, AND POINT CLOUD DATA RECEIVING METHOD |
CN113395506A (zh) * | 2021-06-16 | 2021-09-14 | 北京大学深圳研究生院 | 一种基于分段的点云邻居搜索方法、编码方法、解码方法及设备 |
-
2022
- 2022-11-25 KR KR1020247017866A patent/KR20240091150A/ko active Search and Examination
- 2022-11-25 EP EP22897946.4A patent/EP4437720A1/en active Pending
- 2022-11-25 WO PCT/CN2022/134478 patent/WO2023093866A1/en active Application Filing
- 2022-11-25 KR KR1020247017860A patent/KR20240097892A/ko unknown
- 2022-11-25 CN CN202280078037.9A patent/CN118661415A/zh active Pending
- 2022-11-25 WO PCT/CN2022/134474 patent/WO2023093865A1/en active Application Filing
- 2022-11-25 EP EP22897947.2A patent/EP4437505A1/en active Pending
- 2022-11-25 CN CN202280078038.3A patent/CN118679495A/zh active Pending
-
2024
- 2024-05-24 US US18/674,700 patent/US20240314359A1/en active Pending
- 2024-05-24 US US18/674,677 patent/US20240320866A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20240091150A (ko) | 2024-06-21 |
EP4437720A1 (en) | 2024-10-02 |
CN118661415A (zh) | 2024-09-17 |
US20240314359A1 (en) | 2024-09-19 |
EP4437505A1 (en) | 2024-10-02 |
WO2023093866A1 (en) | 2023-06-01 |
US20240320866A1 (en) | 2024-09-26 |
WO2023093865A1 (en) | 2023-06-01 |
CN118679495A (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240135592A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023093865A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023131132A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024008019A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023202538A1 (en) | Method, apparatus, and medium for point cloud coding | |
US20240357172A1 (en) | Method, apparatus and medium for point cloud coding | |
US20240357174A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023093785A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024149203A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024074122A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023198168A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023131126A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024012381A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023116897A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024213148A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024074123A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024074121A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024149309A1 (en) | Method, apparatus, and medium for point cloud coding | |
US20240242393A1 (en) | Method, apparatus and medium for point cloud coding | |
WO2023131131A1 (en) | Method, apparatus, and medium for point cloud coding | |
US20240249441A1 (en) | Method, apparatus and medium for point cloud coding | |
WO2023051551A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024193613A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2024149258A1 (en) | Method, apparatus, and medium for point cloud coding | |
WO2023280129A1 (en) | Method, apparatus, and medium for point cloud coding |