KR20240105394A - 바이너리 복셀 그리드 코딩에 대한 상태 요약 - Google Patents
바이너리 복셀 그리드 코딩에 대한 상태 요약 Download PDFInfo
- Publication number
- KR20240105394A KR20240105394A KR1020247016615A KR20247016615A KR20240105394A KR 20240105394 A KR20240105394 A KR 20240105394A KR 1020247016615 A KR1020247016615 A KR 1020247016615A KR 20247016615 A KR20247016615 A KR 20247016615A KR 20240105394 A KR20240105394 A KR 20240105394A
- Authority
- KR
- South Korea
- Prior art keywords
- current voxel
- states
- probability
- voxel
- state
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 12
- 238000013528 artificial neural network Methods 0.000 claims description 11
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000001052 transient effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 20
- 230000015654 memory Effects 0.000 description 20
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
Images
Classifications
-
- 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/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- 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/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
일 구현예에서, 컨텍스트 모델링을 위한 상태 요약 모듈 제안을 통해 바이너리 복셀 기반 옥트리 코딩 방법을 개선한다. 인코딩 또는 디코딩될 현재 복셀이 주어지면, 연관된 바이너리 점유 컨텍스트에 기초하여 점유 확률을 직접 예측하는 대신에, 제안된 상태 요약 모듈이 적용되어 원래의 바이너리 컨텍스트를 요약된 표현으로 변환한다. 요약된 표현 아래에서, 점유 확률의 예측은 더 저렴하고 효과적이 된다. 특히, 밀도 기반 상태 요약, 패턴 기반, 학습 기반 상태 요약, 학습 기반 상태 요약 방법이 제공된다.
Description
본 구현예는 일반적으로 포인트 클라우드 압축 및 프로세싱하기 위한 방법 및 장치에 관한 것이다.
포인트 클라우드(PC) 데이터 포맷은 자율 주행, 로봇 공학, 증강 현실/가상 현실(AR/VR), 토목 공학, 컴퓨터 그래픽, 애니메이션/영화 산업 등 여러 비즈니스 영역에 걸친 범용 데이터 포맷이다. 3D LiDAR(빛 감지 및 거리 측정) 센서가 자율주행 차에 배치되었으며, Velodyne Velabit, Apple iPad Pro 2020 및 Intel RealSense LiDAR 카메라 L515에서 저렴한 LiDAR 센서가 출시되었다. 감지 기술의 발전으로 3D 포인트 클라우드 데이터는 그 어느 때보다 실용적이게 되었으며 본원에서 설명된 응용 분야의 궁극적인 원동력이 될 것으로 예상된다.
일 구현예에 따르면, 포인트 클라우드 데이터를 인코딩하기 위한 장치가 제공되고, 장치는 적어도 하나의 프로세서를 포함하며, 프로세서는, 현재 복셀에 인접하는 복수의 인코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하도록(현재 복셀과 복수의 인접하는 인코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음); 제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하도록; 제2 상태 세트를 기초로, 현재 복셀에 대한 점유 상태에 대한 확률을 예측하도록; 그리고 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여, 현재 복셀에 대한 점유 상태를 인코딩하도록 구성된다.
다른 구현예에 따르면, 포인트 클라우드 데이터를 인코딩하기 위한 방법이 제공되고, 방법은, 현재 복셀에 인접하는 복수의 인코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하는 단계(현재 복셀과 복수의 인접하는 인코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음); 제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하는 단계; 제2 상태 세트를 기초로, 현재 복셀에 대한 점유 상태에 대한 확률을 예측하는 단계; 및 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여, 현재 복셀에 대한 점유 상태를 인코딩하는 단계를 포함한다.
다른 구현예에 따르면, 포인트 클라우드 데이터를 디코딩하기 위한 장치가 제공되고, 장치는 적어도 하나의 프로세서를 포함하며, 프로세서는, 현재 복셀에 인접하는 복수의 디코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하도록 구성되고(현재 복셀과 복수의 인접하는 디코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음); 제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하도록 구성되고; 제2 상태 세트를 기초로, 현재 복셀에 대한 점유 상태에 대한 확률을 예측하도록 구성되고; 그리고 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여, 현재 복셀에 대한 점유 상태를 디코딩하도록 구성된다.
다른 구현예에 따르면, 포인트 클라우드 데이터를 디코딩하기 위한 방법이 제공되고, 방법은, 현재 복셀에 인접하는 복수의 디코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하는 단계(현재 복셀과 복수의 인접하는 디코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음); 제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하는 단계; 제2 상태 세트를 기초로, 현재 복셀에 대한 점유 상태에 대한 확률을 예측하는 단계; 및 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여, 현재 복셀에 대한 점유 상태를 디코딩하는 단계를 포함한다.
하나 이상의 구현예는 또한, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 전술된 구현예 중 임의의 것에 따른 인코딩 방법 또는 디코딩 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램을 제공한다. 본 구현예 중 하나 이상은 또한, 전술한 방법에 따라 포인트 클라우드 데이터를 인코딩 또는 디코딩하기 위한 명령어가 저장된 컴퓨터 판독가능 저장 매체를 제공한다.
하나 이상의 구현예는 또한, 전술된 방법에 따라 생성된 비디오 데이터가 저장된 컴퓨터 판독 가능 저장 매체를 제공한다. 하나 이상의 구현예는 또한, 전술된 방법에 따라 생성된 비디오 데이터를 송신하거나 또는 수신하기 위한 방법 및 장치를 제공한다.
도 1은 본 구현예의 양태가 구현될 수 있는 시스템의 블록도를 나타낸다.
도 2는 포인트 클라우드의 LoD 구성 일례를 나타낸다.
도 3은 포인트 클라우드 PCi의 i번째 LoD를 인코딩하기 위한 인코더 도면을 나타낸다.
도 4는 포인트 클라우드 PCi의 i번째 LoD를 디코딩하기 위한 디코더 도면을 나타낸다.
도 5는 현재 LoD와 이전 LoD의 컨텍스트 일례를 나타낸다.
도 6은 Morton 순서를 나타낸다.
도 7은 인접한 복셀 그리드로부터의 컨텍스트를 나타낸다.
도 8은 일 구현예에 따른 상태 요약을 이용한 컨텍스트 모델링을 나타낸다.
도 9는 일 구현예에 따른 상태 요약 및 LUT를 이용한 컨텍스트 모델링을 나타낸다.
도 10은 일 구현예에 따른 밀도 기반 상태 요약의 흐름도를 나타낸다.
도 11은 일 구현예에 따른 패턴 기반 상태 요약을 나타낸다.
도 12a, 도 12b, 도 12c 및 도 12d는 일 구현예에 따른 희소 포인트 클라우드에 대한 컨텍스트 모델링을 나타낸다.
도 13은 일 구현예에 따른 3D CNN 및 LUT에 기초하여 학습 기반 상태 요약을 나타낸다.
도 14는 일 구현예에 따른 MLP 및 LUT에 기초하여 학습 기반 상태 요약을 나타낸다.
도 15는 일 구현예에 따른 3D CNN + MLP 및 LUT에 기초하여 학습 기반 상태 요약을 나타낸다.
도 2는 포인트 클라우드의 LoD 구성 일례를 나타낸다.
도 3은 포인트 클라우드 PCi의 i번째 LoD를 인코딩하기 위한 인코더 도면을 나타낸다.
도 4는 포인트 클라우드 PCi의 i번째 LoD를 디코딩하기 위한 디코더 도면을 나타낸다.
도 5는 현재 LoD와 이전 LoD의 컨텍스트 일례를 나타낸다.
도 6은 Morton 순서를 나타낸다.
도 7은 인접한 복셀 그리드로부터의 컨텍스트를 나타낸다.
도 8은 일 구현예에 따른 상태 요약을 이용한 컨텍스트 모델링을 나타낸다.
도 9는 일 구현예에 따른 상태 요약 및 LUT를 이용한 컨텍스트 모델링을 나타낸다.
도 10은 일 구현예에 따른 밀도 기반 상태 요약의 흐름도를 나타낸다.
도 11은 일 구현예에 따른 패턴 기반 상태 요약을 나타낸다.
도 12a, 도 12b, 도 12c 및 도 12d는 일 구현예에 따른 희소 포인트 클라우드에 대한 컨텍스트 모델링을 나타낸다.
도 13은 일 구현예에 따른 3D CNN 및 LUT에 기초하여 학습 기반 상태 요약을 나타낸다.
도 14는 일 구현예에 따른 MLP 및 LUT에 기초하여 학습 기반 상태 요약을 나타낸다.
도 15는 일 구현예에 따른 3D CNN + MLP 및 LUT에 기초하여 학습 기반 상태 요약을 나타낸다.
도 1은 다양한 양태 및 구현예가 구현될 수 있는 시스템 일례의 블록도를 나타낸다. 시스템(100)은 아래에서 설명되는 다양한 구성 요소를 포함하는 디바이스로서 구현될 수 있고, 본 출원에서 설명되는 양태 중 하나 이상을 수행하도록 구성된다. 그와 같은 디바이스의 예는 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 텔레비전 수신기, 개인용 비디오 녹화 시스템, 연결형 가전 제품, 및 서버와 같은 다양한 전자 디바이스를 포함하지만, 이들로 제한되지 않는다. 시스템(100)의 요소는, 단독으로 또는 조합하여, 단일 집적 회로, 다수의 IC, 및/또는 별개의 구성 요소로 구현될 수 있다. 예를 들어, 적어도 하나의 구현예에서, 시스템(100)의 프로세싱 및 인코더/디코더 요소는 다수의 IC 및/또는 별개의 구성 요소에 걸쳐 분산된다. 다양한 구현예에서, 시스템(100)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트를 통해, 다른 시스템, 또는 다른 전자 디바이스에 통신가능하게 결합된다. 다양한 구현예에서, 시스템(100)은 본 출원에서 설명된 양태 중 하나 이상을 구현하도록 구성된다.
시스템(100)은, 예를 들어, 본 출원에서 설명된 다양한 양태를 구현하기 위해 내부에 로딩된 명령어를 실행하도록 구성된 적어도 하나의 프로세서(110)를 포함한다. 프로세서(110)는 당업계에 공지된 내장형 메모리, 입력 출력 인터페이스, 및 다양한 다른 회로부를 포함할 수 있다. 시스템(100)은 적어도 하나의 메모리(120)(예, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(100)은 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(140)를 포함한다. 저장 디바이스(140)는 비제한적인 예로서, 내부 저장 디바이스, 부착 저장 디바이스, 및/또는 네트워크 액세스 가능 저장 디바이스를 포함할 수 있다.
시스템(100)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 프로세싱하도록 구성된 인코더/디코더 모듈(130)을 포함하고, 인코더/디코더 모듈(130)은 그 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(130)은 인코딩 및/또는 디코딩 기능을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈 중 하나 또는 둘 모두를 포함할 수 있다. 또는, 인코더/디코더 모듈(130)은 시스템(100)의 별도의 요소로서 구현될 수 있거나, 또는 당업자에게 알려진 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(110) 내에 통합될 수 있다.
본 출원에 설명된 다양한 양태를 수행하기 위해 프로세서(110) 또는 인코더/디코더(130) 상에 로딩될 프로그램 코드는 저장 디바이스(140)에 저장되고, 이어서 프로세서(110)에 의한 실행을 위해 메모리(120) 상에 로딩될 수 있다. 다양한 구현예에 따르면, 프로세서(110), 메모리(120), 저장 디바이스(140), 및 인코더/디코더 모듈(130) 중 하나 이상은 본 출원에 설명된 프로세스의 수행 동안 다양한 항목 중 하나 이상을 저장할 수 있다. 이와 같이 저장된 항목은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부, 비트스트림, 행렬, 변수, 및 식, 공식, 연산 및 연산 로직의 프로세싱으로부터의 중간 또는 최종 결과를 포함할 수 있지만, 이들로 제한되지 않는다.
여러 구현예에서, 프로세서(110) 및/또는 인코더/디코더 모듈(130) 내부의 메모리는 명령어를 저장하고 인코딩 또는 디코딩 동안 필요한 프로세싱을 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 구현예에서, 프로세싱 디바이스(예, 프로세싱 디바이스는 프로세서(110) 또는 인코더/디코더 모듈(130) 중 어느 하나일 수 있음) 외부의 메모리가 이러한 기능 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(120) 및/또는 저장 디바이스(140)일 수 있으며, 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 여러 구현예에서, 외부 비휘발성 플래시 메모리는 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 구현예에서, RAM과 같은 고속, 외부 동적 휘발성 메모리는 MPEG-2, JPEG Pleno, MPEG-I, HEVC, 또는 VVC를 위한 것과 같은 비디오 코딩 및 디코딩 동작을 위한 작업 메모리로서 사용된다.
시스템(100)의 요소에 대한 입력은 블록(105)에 표시된 바와 같이 다양한 입력 디바이스를 통해 제공될 수 있다. 그와 같은 입력 디바이스는 (i) 예를 들어, 브로드캐스터에 의해 무선으로 송신되는 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만, 이들로 제한되지 않는다.
다양한 구현예에서, 블록(105)의 입력 디바이스는 당업계에 알려진 바와 같은 연관된 각자의 입력 프로세싱 요소를 갖는다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 또는 신호를 주파수의 대역으로 대역-제한하는 것으로 또한 지칭됨), (ii) 선택된 신호를 하향 변환하는 것, (iii) (예를 들어) 특정 구현예에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 더 좁은 주파수의 대역으로 다시 대역-제한하는 것, (iv) 하향 변환되고 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷의 원하는 스트림을 선택하기 위해 디멀티플렉싱하는 것에 적합한 요소와 연관될 수 있다. 다양한 구현예의 RF 부분은 이들 기능을 수행하기 위한 하나 이상의 요소, 예를 들어 주파수 선택기, 신호 선택기, 대역-제한기, 채널 선택기, 필터, 하향변환기, 복조기, 에러 정정기, 및 디멀티플렉서를 포함한다. RF 부분은 예를 들어, 수신된 신호를 더 낮은 주파수(예, 중간 주파수 또는 근-기저대역 주파수) 또는 기저대역으로 하향 변환하는 것을 포함하는 다양한 이런 기능을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 구현예에서, RF 부분 및 연관된 입력 프로세싱 요소는 유선(예, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링, 하향 변환, 및 원하는 주파수 대역으로 다시 필터링함으로써 주파수 선택을 수행한다. 다양한 구현예는 전술한(및 다른) 요소의 순서를 재배열하고, 이들 요소 중 일부를 제거하고/하거나 유사하거나 상이한 기능을 수행하는 다른 요소를 추가한다. 요소를 추가하는 것은 기존 요소 사이에 요소를 삽입하는 것, 예를 들어, 증폭기 및 아날로그-디지털 변환기를 삽입하는 것을 포함할 수 있다. 다양한 구현예에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자는 USB 및/또는 HDMI 연결을 통해 시스템(100)을 다른 전자 디바이스에 연결하기 위한 각자의 인터페이스 프로세서를 포함할 수 있다. 입력 프로세싱의 다양한 양태, 예를 들어, 리드-솔로몬 에러 정정(Reed-Solomon error correction)은, 예를 들어, 필요에 따라 별도의 입력 프로세싱 IC 내에 또는 프로세서(110) 내에 구현될 수 있다는 것이 이해되어야 한다. 유사하게, USB 또는 HDMI 인터페이스 프로세싱의 양태는 필요에 따라 별도의 인터페이스 IC 내에서 또는 프로세서(110) 내에서 구현될 수 있다. 복조되고 오차 정정되고 역다중화된 스트림은, 예를 들어 프로세서(110), 및 출력 장치에서의 표현이 필요함에 따라 데이터스트림을 프로세싱하기 위해 메모리 및 저장 요소와 조합하여 작동하는 인코더/디코더(130)를 포함하는 다양한 프로세싱 요소에 제공된다.
시스템(100)의 다양한 요소가 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소는 적합한 접속 배열(115), 예를 들어, I2C 버스, 배선, 및 인쇄 회로 보드를 포함하는, 본 기술분야에 알려진 바와 같은 내부 버스를 사용하여 상호접속되고, 그 사이에서 데이터를 송신할 수 있다.
시스템(100)은 통신 채널(190)을 통해 다른 디바이스와의 통신을 가능하게 하는 통신 인터페이스(150)를 포함한다. 통신 인터페이스(150)는 통신 채널(190)을 통해 데이터를 송신 및 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(150)는 모뎀 또는 네트워크 카드를 포함할 수 있지만, 이에 제한되지 않고, 통신 채널(190)은, 예를 들어 유선 및/또는 무선 매체 내에 구현될 수 있다.
데이터는 다양한 구현예에서, IEEE 802. 11과 같은 Wi-Fi 네트워크를 사용하여 시스템(100)에 스트리밍된다. 이러한 구현예의 Wi-Fi 신호는 Wi-Fi 통신에 대해 조정되는 통신 채널(190) 및 통신 인터페이스(150)를 통해 수신된다. 이러한 구현예의 통신 채널(190)은 전형적으로 스트리밍 애플리케이션 및 다른 오버-더-탑(over-the-top) 통신을 허용하기 위해 인터넷을 포함하는 외부 네트워크에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 연결된다. 다른 구현예는 입력 블록(105)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(100)에 제공한다. 또 다른 구현예는 입력 블록(105)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(100)에 제공한다.
시스템(100)은 디스플레이(165), 스피커(175), 및 다른 주변 디바이스(185)를 포함하는 다양한 출력 디바이스에 출력 신호를 제공할 수 있다. 다른 주변 디바이스(185)는, 다양한 구현예에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(100)의 출력에 기초하여 기능을 제공하는 다른 디바이스 중 하나 이상을 포함한다. 다양한 구현예에서, 제어 신호는, 사용자 개입 유무에 관계없이 장치 간 제어를 가능하게 하는 다음과 같은 시그널링을 사용하여 시스템(100)과 디스플레이(165), 스피커(175), 또는 다른 주변 디바이스(185) 사이에서 통신된다: AV. Link, CEC 또는 기타 통신 프로토콜. 출력 디바이스는 각자의 인터페이스(160, 170 및 180)를 통한 전용 연결을 통해 시스템(100)에 통신 가능하게 결합될 수 있다. 대안적으로, 출력 디바이스는 통신 인터페이스(150)를 통해 통신 채널(190)을 사용하여 시스템(100)에 연결될 수 있다. 디스플레이(165) 및 스피커(175)는 전자 디바이스, 예를 들어 텔레비전에서, 시스템(100)의 다른 구성 요소로 단일 유닛에 통합될 수 있다. 다양한 구현예에서, 디스플레이 인터페이스(160)는 디스플레이 드라이버, 예를 들어 타이밍 컨트롤러(T Con) 칩을 포함할 수 있다.
디스플레이(165) 및 스피커(175)는 대안적으로, 예를 들어 입력(105)의 RF 부분이 별도의 셋톱 박스의 부분인 경우, 다른 구성 요소 중 하나 이상으로부터 분리될 수 있다. 디스플레이(165) 및 스피커(175)가 외부 구성 요소인 다양한 구현예에서, 출력 신호는, 예를 들어 HDMI 포트, USB 포트, 또는 COMP 출력을 포함하는 전용 출력 연결을 통해 제공될 수 있다.
포인트 클라우드 데이터는, 예를 들어 5G 네트워크를 통해 연결된 자동차 및 몰입형 통신(VR/AR) 사이에서 네트워크 트래픽의 많은 부분을 소비할 수 있는 것이 고려된다. 효율적인 표현 포맷은 포인트 클라우드 이해 및 통신에 필요하다. 특히, 원시 포인트 클라우드 데이터는 세계 모델링 및 감지의 목적을 위해 적절히 조직화되고 프로세싱될 필요가 있다. 원시 포인트 클라우드에 대한 압축은, 관련 시나리오에서 데이터의 저장 및 송신이 요구될 때 필수적이다.
더욱이, 포인트 클라우드는, 다수의 이동 객체를 포함하는 동일한 장면의 순차적 스캔을 표현할 수 있다. 그들은 정적 장면 또는 정적 객체로부터 캡처된 정적 포인트 클라우드에 비교되는 동적 포인트 클라우드로 불린다. 동적 포인트 클라우드는 전형적으로 프레임으로 조직화되며, 이때 상이한 프레임은 상이한 시간에 캡처된다. 동적 포인트 클라우드는 프로세싱 및 압축이 실시간으로 또는 낮은 지연을 갖도록 요구할 수 있다.
자동차 산업 및 자율주행 자동차는 포인트 클라우드가 사용될 수 있는 영역이다. 자율주행 자동차는 그들의 환경을 "탐색"하여 그들의 인접 환경의 현실에 기초하여 양호한 주행 결정을 하게 할 수 있어야 한다. LiDAR와 같은 전형적인 센서는 퍼셉션 엔진(perception engine)에 의해 사용되는 (동적) 포인트 클라우드를 생성한다. 이러한 포인트 클라우드는 인간의 눈으로 볼 수 있도록 의도된 것이 아니고, 그들은 전형적으로 희소하고, 반드시 컬러화될 필요는 없으며, 높은 캡처 빈도로 인해 동적이다. 그들은 LiDAR에 의해 제공되는 반사율과 같은 다른 속성을 가질 수 있는데, 그 이유는 이러한 속성이 감지된 객체의 재료를 나타내고 결정을 하는 데 도움을 줄 수 있기 때문이다.
가상 현실(VR) 및 몰입형 세계가 많은 사람에 의해, 2D 평면 비디오의 미래로서 예견된다. VR 및 몰입형 세계의 경우, 뷰어가 뷰어의 전방에서 가상 세계만을 볼 수 있는 표준 TV와는 대조적으로, 뷰어가 뷰어 주위의 모든 환경에 몰입된다. 환경에서의 뷰어의 자유도에 따라 몰입감에는 몇 가지 그라데이션이 있다. 포인트 클라우드는 VR 세계를 배포하기에 양호한 포맷 후보이다. VR에 사용되는 포인트 클라우드는 정적이거나 동적일 수 있으며 일반적으로 평균 크기(예, 한 번에 수백만 포인트 이하)이다.
포인트 클라우드는 또한 문화 유산/건물과 같은 다양한 목적을 위해 사용될 수 있는데, 여기에서 조각상 또는 건물과 같은 객체는, 객체를 보내거나 또는 객체를 방문하지 않고서 객체의 공간 구성을 공유하기 위해 3D로 스캐닝된다. 또한 포인트 클라우드는 지진으로 인해 사원과 같이 객체가 파괴될 경우 객체에 대한 지식을 보존하는 데 사용될 수도 있다. 그러한 포인트 클라우드는 전형적으로, 정적이고, 컬러화되고 거대하다.
또 다른 사용 사례는 3D 표현을 사용하는 지형 및 지도 제작 분야로, 지도는 평면에만 국한되지 않고 부조를 포함할 수 있다. 구글 맵은 3D 맵의 좋은 예이지만, 포인트 클라우드 대신에 메시를 사용한다. 그럼에도 불구하고, 포인트 클라우드는 3D 맵에 대한 적합한 데이터 포맷일 수 있고, 이러한 포인트 클라우드는 전형적으로 정적이고, 컬러화되고, 거대하다.
포인트 클라우드를 통한 세계 모델링 및 감지는, 기계로 하여금 본원에서 논설명된 응용 분야에 대해 주변의 3D 세계에 대한 지식을 얻을 수 있도록 하는 유용한 기술이 될 수 있다.
3D 포인트 클라우드 데이터는 객체 또는 장면의 표면 상의 본질적으로 별개의 샘플이다. 포인트 샘플로 실제 세계를 완벽하게 표현하려면 실제로는 엄청난 수의 포인트가 필요하다. 예를 들어, 전형적인 VR 몰입형 장면은 수백만 개의 포인트를 포함하는 한편, 포인트 클라우드는 전형적으로 수억 개의 포인트를 포함한다. 따라서, 그러한 대규모 포인트 클라우드의 프로세싱은, 특히, 제한된 계산 능력을 갖는 소비자 디바이스, 예컨대, 스마트폰, 태블릿, 및 자동차 내비게이션 시스템의 경우, 계산 비용이 많이 든다.
포인트 클라우드에 대한 프로세싱 또는 추론을 수행하기 위해, 효율적인 저장 방법론이 필요하다. 입력 포인트 클라우드를 적당한 계산 비용으로 저장하고 프로세싱하기 위해, 하나의 솔루션은 포인트 클라우드를 먼저 다운샘플링하는 것이며, 여기서 다운샘플링된 포인트 클라우드는 훨씬 더 적은 포인트를 가지면서 입력 포인트 클라우드의 기하구조를 요약한다. 다운샘플링된 포인트 클라우드는 이어서, 추가 소비를 위해 후속 기계 태스크에 공급된다. 그러나, 저장 공간의 추가 감소는, 무손실 압축을 위해 엔트로피 코딩 기법을 통해 (원래 또는 다운샘플링된) 원시 포인트 클라우드 데이터를 비트스트림으로 변환함으로써 달성될 수 있다. 더 양호한 엔트로피 모델은 더 작은 비트스트림을 초래하고, 따라서 더 효율적인 압축을 초래한다. 추가적으로, 엔트로피 모델은 또한, 엔트로피 인코더가 압축하는 동안 태스크 특정 정보를 유지할 수 있게 하는 다운스트림 태스크와 페어링될 수 있다.
무손실 코딩에 더하여, 많은 시나리오는 특정 품질 레벨 하에서 유도된 왜곡을 유지하면서 유의하게 개선된 압축비에 대해 손실 코딩을 찾는다.
옥트리 코딩을 통한 포인트 클라우드 압축
포인트 클라우드는 옥트리 분해 트리를 통해 표현될 수 있다. 루트 노드는 경계 상자의 전체 공간을 커버한다. 공간은 모든 방향, 즉 x-, y- 및 z- 방향으로 균등하게 분할되어 8개의 복셀로 이어진다. 각 복셀에 대해, 적어도 하나의 포인트가 있는 경우 복셀은 점유되고 '1'로 표시된다. 그렇지 않으면 '비어 있고 '0'으로 표시된다. 그 다음 복셀 분할은 미리 지정된 조건이 충족될 때까지 계속된다.
옥탄트 기반 옥트리 코딩
옥트리를 인코딩하는 인기 방식은, 개별 옥탄트의 점유를 표시하는 8 비트 값으로 점유된 각 복셀을 인코딩하는 것이다. 이런 식으로 먼저 루트 복셀 노드를 8 비트 값으로 인코딩한다. 그 다음 다음 레벨에서 점유된 각 복셀에 대해, 8 비트 점유 기호를 인코딩한 다음 다음 레벨로 이동한다. 8 비트 점유 기호를 인코딩하는 이러한 유형의 옥트리 코딩 알고리즘을 옥탄트 기반 방법이라고 한다.
바이너리 복셀 기반 옥트리 코딩
옥트리를 인코딩하는 다른 관점은 바이너리 점유 비트를 직접 인코딩하는 것인데, 여기서 점유 비트는 해당 복셀의 점유 상태(해당 복셀이 점유되어 있는지 여부)를 표시한다. 각 세부 수준(LoD)에서 현재 LoD에서의 복셀을 나타내는 점유 비트 시퀀스를 인코딩하고 그 이후 다음 LoD로 이동한다. 이러한 유형의 접근 방식을 바이너리 복셀 기반 방법이라고 한다. 본 개시에서 당사가 제안하는 방법은 이러한 유형의 접근법을 기초로 한다.
두 가지 유형의 코딩 방법을 비교하면, 옥탄트 기반 방법에서 현재 복셀의 코딩이 실제로 자식 복셀의 점유 기호를 코딩하고 있음을 안다. 다르게, 바이너리 복셀 기반 방법에서, 현재 복셀의 코딩은 실제로 그 자체의 바이너리 점유 비트를 코딩하는 것이다. 다음에서는 이러한 두 가지 유형의 접근 방식을 자세히 검토한다.
옥탄트 기반 옥트리 코딩
포인트 클라우드용 학습 기반 옥트리 코딩
심층 엔트로피 모델은, 8 비트 점유 기호의 확률 분포를 예측하기 위해 신경망 모듈을 사용하여 컨텍스트 모델을 공식화하려고 시도하는 학습 기반 접근 방식의 범주를 지칭한다.
심층 엔트로피 모델 중 하나는 OctSqueeze로 알려져 있다. 부모 노드, 조부모 노드 등을 포함한 조상 노드를 계층적 방식으로 활용한다. 현재 옥트리 노드의 점유 기호의 확률 분포를 예측하기 위해 세 개의 MLP 기반 모듈이 사용되고 있다. 또 다른 심층 엔트로피 모델은 VoxelContextNet으로 알려져 있다. 조상 노드를 사용하는 OctSqueeze와 달리, VoxelContextNet은 공간 이웃 복셀을 사용하여 먼저 로컬 표면 형상을 분석한 다음 확률 분포를 예측하는 접근 방식을 사용한다.
이전 연구에서, 트리 구조의 조건부 엔트로피 모델에서 작동하는 적응 엔트로피 코더로 구성된 자기 감독 압축을 제안했다. 글로벌 토폴로지뿐만 아니라 로컬 이웃으로부터의 정보가 옥트리 구조로부터 활용되고 있다. 또한 주어진 포인트 클라우드를 이해하고 확률 분포를 예측하는 두 개의 분기 하이브리드 접근 방식을 제안했는데, 여기서 분기 하나는 VoxelContextNet에서 유사하게 수행된 3D 컨볼루션을 기초로 하고 다른 하나의 분기는 PointNet++과 같은 포인트 기반 연산자를 사용한다.
포인트 클라우드용 비학습 기반 옥트리 코딩
가장 대표적인 비학습 기반 옥탄트 코딩 방식은 MPEG G-PCC이다. 인코딩될 점유 기호를 갖는 현재 노드의 경우, 이웃의 점유 패턴, 예컨대 26개의 면/변/정점-인접 이웃, 세 개의 이미 코딩된 면과 인접한 자식 이웃 등과의 점유 패턴을 사용하여 현재 점유 코딩의 컨텍스트로 기능하도록 노력한다. 이는 회전 불변성, 평면 감지, 각도 평면 감지 등과 같은 원리를 기초로 매우 복잡한 수작업 구성 및 컨텍스트 병합 메커니즘을 포함한다. 이러한 방식으로 산술 코딩에 가장 적합한 확률 모델을 획득한다. G-PCC에서 압축 성능을 높이기 위해 쿼드 및 바이너리 트리(QTBT)와 같이 보다 유연한 트리 구조도 사용할 수 있다.
바이너리 복셀 기반 옥트리 코딩
옥트리 노드에 대한 8 비트 점유 기호를 코딩하는 대신, 옥트리를 인코딩하는 대안적인 뷰는, 각 지점(특정 비트 깊이에서)을 복셀 그리드로 직접 본 다음, 해당 복셀 그리드의 점유를 바이너리 기호로 인코딩하는 것이다.
NNOC라는 관련 작업에서, 동일한 LoD에 있는 인접한 복셀의 점유 비트를 컨텍스트로 사용하여 현재 복셀의 점유 확률(현재 복셀이 점유될 확률)을 예측한다. 그 다음, 신경망 모듈을 통해 확률을 예측한 다음, 적응형 산술 코더를 사용하여 점유 비트를 인코딩한다. 신경망을 적용하면 더 높은 계산 비용이 수반될 수 있으며 GPU(그래픽 프로세싱 장치)와 같은 하드웨어에 특별한 요구 사항이 부여될 수 있다.
일 구현예에서, 본 출원은 확률을 예측하기 위한 컨텍스트 모델로서 (비학습 기반) 결정론적 모듈을 사용하는 것에 초점을 맞추며, 이는 상이한 플랫폼에 보다 일반적으로 적용될 수 있다. 특히, 바이너리 복셀 기반 옥트리 코딩 체계에서 컨텍스트 모델링을 위한 방법을 제공한다. 먼저 바이너리 복셀 기반 옥트리 코딩에 대한 시스템 개요를 제공한 다음 제안된 컨텍스트 모델링 방법을 자세히 설명한다.
시스템 개요 - 바이너리 복셀 기반 옥트리 코딩
계층적 코딩 구조
복셀의 바이너리 점유를 직접 인코딩하여 옥트리를 계층적으로 압축하려고 한다. 비트 심도가 n인 입력 포인트 클라우드가 주어지면, 우리는 도 2에 나타낸 바와 같이 계층적 방식으로 이를 인코딩 및 디코딩한다. 도 2에서, 검은색은 복셀이 점유되어 있음을 나타내고(값 "1"이 그 복셀에 배치됨), 회색 및 흰색은 복셀이 비어 있음을 나타낸다(값 "0"이 그 복셀에 배치됨).
인코더 측에서는, 먼저 가장 거친 복셀 표현 PC1을 구성하고 PC1을 먼저 인코딩하여 제1 비트스트림 BS1로 전송한다. 그 다음 다음 세부 수준(LoD)인 PC2가 구성된다. PC2 와 PC1을 비교함으로써, PC2를 인코딩하기 위해 PC1을 보면 흰색 복셀이 비어 있기 때문에 검은색과 회색 복셀만 인코딩될 필요가 있음을 안다. 따라서, PC2의 흑색 및 회색 복셀은 인코딩되어 제2 비트스트림 BS2로서 전송된다. 다음으로 더 미세한 LoD인 PC3을 구성한다. 다시 PC3과 PC2를 비교함으로써, PC3을 표현하기 위해 검은색과 회색 복셀만 인코딩하여 제3 비트스트림 BS3을 만든다. 이 절차는 포인트 클라우드의 가장 미세한 비트 심도에 도달할 때까지 반복된다. 비트스트림 BS1, BS2, BS3 ... 모두 또는 일부는 함께 멀티플렉싱할 수 있다.
마찬가지로, 디코더 측에서는, 먼저 제1 비트스트림 BS1을 디코딩함으로써, 포인트 클라우드인 PC1의 가장 거친 LoD를 재구성한다. 이미 디코딩된 PC1을 참조함으로써, PC2의 흑색 및 회색 복셀만이 제2 비트스트림 BS2에 포함됨을 안다. 따라서, BS2를 디코딩하고 디코딩된 비트를 PC2의 검은색과 회색 복셀에 넣어 재구성한다. 유사하게, 제3 비트스트림 BS3도 디코딩되고, 디코딩된 비트는 재구성을 위해 PC3의 흑색 및 회색 복셀에 할당된다. 이 절차는 포인트 클라우드의 가장 미세한 비트 심도에 도달할 때까지 반복된다.
컨텍스트 기반 복셀 그리드 코딩
각 LoD 내에서 복셀의 점유 비트를 인코딩한다. 이를 위해, 컨텍스트 모델을 채택하여 현재 복셀의 점유 확률을 예측한 다음 인코딩/디코딩을 위한 적응 산술 코더를 사용한다.
도 3은 포인트 클라우드 PCi의 i번째 LoD를 인코딩하기 위한 인코더 도면을 나타낸다. 먼저, (이미 인코딩된) PCi-1과 PCi를 비교함으로써, 직렬화 모듈(310)은 순차적으로 인코딩되어야 하는 복셀을 순회하고, 예를 들어 도 2의 LoD의 검은색 및 회색 복셀에 대응하는 일련의 점유 비트 Oi를 출력한다. Oi를 사용하면, 현재 LoD의 포인트 클라우드, PCi를 완전히 표현할 수 있다. 다음으로, Oi의 각 비트/복셀은 컨텍스트 모델링 모듈(320)에 의해 프로세싱되고, 이어서 인코딩을 위한 적응적 산술 인코더 모듈(330)에 의해 프로세싱된다.
현재 복셀에 대하여, 컨텍스트 모델링 모듈(320)은 먼저 이미 인코딩된 인접하는 복셀의 컨텍스트에 기초하여 점유 중인 확률(p로 표시)을 예측한다. 특히, 컨텍스트는 도 5에 나타낸 바와 같이, 현재 LoD 및/또는 이전 LoD에서 인접한 복셀의 n개의 바이너리 점유 비트일 수 있다. 그 다음, 산술 코더(330)는 예측된 확률 p에 기초하여 현재 점유 비트를 인코딩한다. Oi의 각 비트에 대해 이 절차를 반복하면, i번째 비트스트림 BSi가 생성된다.
디코더는 유사한 이론적 근거를 적용하지만, 도 4에 나타낸 바와 같이 반대 방향으로 동작한다. 특히, 적응 연산 디코더 모듈(420)은 수신된 비트스트림 BSi으로부터 각 점유 비트를 디코딩하여, Oi를 획득한다. 점유 비트를 디코딩하기 위해, 산술 디코더(420)는 BSi뿐만 아니라 컨텍스트 모델링(410)에 의해 예측된 점유 확률 p도 입력으로 취한다. 인코더의 경우와 유사하게, 컨텍스트 모델링 모듈(410)은 또한 (현재 LoD 및/또는 이전 LoD(들)로부터) 이미 디코딩된 복셀의 컨텍스트를 입력으로 취하고, 확률 p를 출력한다. 다음에, 점유 비트 Oi는 이미 디코딩된 LoD PCi-1를 체크함으로써 이 할당을 수행하는 역직렬화 모듈(430)에 의해 현재 LoD에서의 복셀 그리드에 할당된다. 결국 역직렬화 모듈은 i번째 LoD, PCi에서 디코딩된 포인트 클라우드를 출력한다.
컨텍스트 모델링의 일례
직렬화 모듈이 도 6에 나타낸 바와 같이 Morton 순서(또는 Z-순서)에 따라 인코딩될 복셀을 정렬한다고 가정한다. Morton 순서에 의한 직렬화에 의해, 위치 (x, y, z)에서 복셀을 인코딩/디코딩할 때, 도 7에 나타낸 바와 같이, 23-1=7개의 바로 이웃, 즉 (x-1, y-1, z-1), (x-1, y-1, z), (x, y-1, z-1), (x-1, y, z-1), (x-1, y, z), (x, y-1, z), 및 (x, y, z-1)이 이미 인코딩/디코딩되어 있음을 보장한다. 따라서, 이들 인접하는 복셀 그리드의 7 비트 점유 비트는, 컨텍스트 모델링 모듈에 대한 컨텍스트 정보로서 수집될 수 있다.
점유 비트의 조합이 27 = 128개이므로, 컨텍스트 모델링을 위해 128개의 항목이 있는 룩업 테이블(LUT)을 구성한다. LUT의 각 항목은 점유 확률 p를 제공하며 특정 점유 조합에 의해 인덱싱된다. 예를 들어, 처음에는 점유 확률 p가 모두 0.5로 초기화된다. 그 다음 하나의 점유 비트를 인코딩/디코딩한 후 관련 항목의 확률 p는 다음 이동 평균 메커니즘에 의해 업데이트된다:
여기서, f는 [0,1]의 상수이다.
이 예시에서는 컨텍스트 정보에 대해 7개의 인접한 복셀만 계산되고 LUT에는 27 = 128개의 항목이 있다. 그러나 더 많은 복셀이 포함된 고급 설정에서는 LUT의 크기가 매우 빠르게 확장된다(예, n개의 복셀에 대해 2n개의 항목). 메모리 비용은 결국 알고리즘을 감당할 수 없게 만든다. 반면에 더 많은 복셀이 포함된다는 것은 이웃의 본질적인 규칙성을 포착하기가 더 어렵다는 것을 의미한다. 따라서, 보다 효율적이고 효과적인 컨텍스트 모델링 방법이 필요하며, 이것이 우리가 여기서 해결하고자 하는 문제이다. 이 예시에서 Morton 순서는 현재 LoD의 7개의 바로 이웃을 사용할 수 있도록 보장하는 것으로 간주된다. 그러나 다른 스캔 순서를 사용하는 것을 막지는 않는다. 예를 들어, 관련 작업 NNOC와 동일한 스캔 순서를 채택할 수 있는데, 이는 z 방향에 따른 래스터 스캔 순서이다.
우리의 제안 - 상태 요약을 통한 컨텍스트 모델링
컨텍스트 모델링 문제는 다음과 같이 진술될 수 있다: n (인코딩/디코딩) 인접하는 복셀 세트로부터 바이너리 점유 비트가 주어지면, 현재 복셀의 점유 확률을 예측하는 방법은 무엇입니까?
n개의 인접하는 복셀의 경우, 2n개의 가능한 구성/상태가 있다. 일 구현예에서, 도 8에 나타낸 바와 같이, 상태의 개수를 감소시키려는 상태 요약 모듈을 제안한다.
n-비트 바이너리 상태 Sb가 주어지면, 상태 요약 모듈(810)은 먼저 Sb를 새로운 상태 공간에서의 표현으로 변환한다. 이하, 새로운 상태 공간을 요약된 상태 공간이라고 지칭하며, 변환된 상태는 Sd로 표시한다. 가능한 요약 상태의 총 수(m으로 표시)는 2n보다 훨씬 미만, 즉 m << 2n이어야 한다. 그 후, 점유 확률 p를 출력하는 확률 예측 모듈(820)이 추가된다.
일 구현예에서, 확률 예측은 도 9에 나타낸 바와 같이, LUT(930)에 이어 확률 변환 모듈(940)로 구성된다. LUT는 인코딩/디코딩 중에 요약된 각 상태의 통계를 추적하기 위한 m개 항목을 포함한다. 요약된 상태 Sd와 연관된 LUT 항목에 액세스함으로써, T(Sd)로 표시된 Sd 관련 통계가 검색되어 확률 변환 모듈(940)에 공급된다. 그 다음 통계량 T(S,d)를 점유 확률 p로 변환한다. 이전 예제와 마찬가지로, 하나의 점유 비트를 인코딩/디코딩한 후 LUT의 통계 T(Sd)를 그에 따라 업데이트할 필요가 있다.
상태 요약 및 확률 예측의 설계에 대한 더 많은 구현예가 이하에 제공된다.
밀도 기반 상태 요약
도 9의 기본 설계에 이어, 일 구현예에서, 상태 요약 모듈은 도 10에 나타낸 바와 같이, 인접하는 복셀에서 점유된 복셀("1"들)의 밀도를 고려하여 동작한다.
NE에 의해 컨텍스트 정보로 선택된 인접하는 복셀 세트를 나타내며, 이는 현재 및/또는 이전 LoD의 복셀로 구성된다. 일 구현예에서, 세트 NE의 복셀을 인접하는 복셀과 현재 복셀 사이의 거리, 예를 들어 인접하는 복셀의 중심과 현재 복셀의 중심 사이의 거리로 분류(1010)하고, 이는 상이한 거리, d0, d1, …, dk-1를 갖는 이웃의 k 클래스로 유도한다. d0 클래스에 속하는 n0 개의 복셀, d1 클래스에 속하는 n1 개의 복셀 등이 있다고 가정하면, n0 + n1 + ... + nk-1 = n이다. 도 7을 일례로 들면, d0 = 1, d1 = sqrt(2), d2 = sqrt(3), 및 n0 = 3, n1 = 3, n2 = 1인 세 개의 복셀 클래스로 끝난다.
그 다음, 현재 복셀의 n-비트 바이너리 상태 Sb를 검색한 후(1020), 상태 요약 모듈은 k 클래스 각각에 대해 점유된 인접하는 복셀의 수를 계수(1030)한다. 거리 di 곱하기 ti 를 갖는 점유 이웃의 수를 나타내면, 원래 n 비트 상태 Sb는 요약된 상태, Sd = (t0, t1, ..., tk-1)로 변환(1040)되며, 여기서 0 ≤ ti ≤ ni이다. 따라서 (n0+1) × (n1+1) × ... × (nk-1+1)이 있는 LUT를 구성하여 요약 상태 각각의 통계를 추적할 수 있다. 도 7의 예에서, 4 × 4 × 2 = 32개의 항목이 있는 LUT가 만들어질 것이며, 이는 128개의 항목이 있는 원래 LUT보다 훨씬 작다.
일 구현예에서, LUT는 식 (1)의 동일한 이동 평균 메카니즘을 사용하여 각각의 요약된 상태에 대한 확률 p를 직접 추적한다. 이 경우 T(Sd) = p이고 확률 변환 모듈은 단순히 항등 함수이다.
일 구현예에서, LUT는 두 개의 항목을 추적한다: 관찰되는 특정 상태 Sd의 총 수, A(Sd)로 표시; 및 상태 Sd를 갖는 현재 복셀이 점유되는 횟수의 총 수, O(Sd)로 표시. 이 경우 통계량 T(Sd) = (A(Sd), O(Sd)) 및 O(Sd) ≤ A(Sd)이다.
그 다음, LUT 통계(1050)에 기초하여 확률 변환 모듈(PC)을 적용한다. 일 구현예에서, 점유 확률 p는 단순히 경험적 확률 pem = O(Sd) / A(Sd)로서 계산된다. 보다 발전된 구현예에서, 확률 예측 모듈은 다음과 같이 이전 확률 ppri에 기초하여 점유 확률 p를 예측한다:
여기서 α는 양의 상수이다. 일 구현예에서, ppri는 0.5로 설정된다. A(Sd), 즉 관찰되는 특정 상태가 더 커지는 시간이 더 커질 경우, 경험적 확률 pem이 더 신뢰할 수 있게 되고, p는 pem쪽으로 더 향하는 것을 안다. 그렇지 않으면 이전 확률 ppri 가 더 우세한다.
산술 인코딩/디코딩(1060) 후, T(Sd)와 연결된 LUT 항목이 업데이트된다(1070). 특히, A(Sd)는 1씩 증가할 것이다; 현재 복셀이 점유되면 O(Sd)가 1씩 증가할 것이고, 그렇지 않으면 변경되지 않을 것이다. 이 프로세스는 마지막 복셀이 프로세싱된 후에 종료된다(1080).
패턴 기반 상태 요약
일 구현예에서, 상태 요약 모듈은, 도 11에 나타낸 바와 같이, 미리 정의된 패턴 세트가 복셀 이웃에 나타나는지 여부를 감지함으로써 동작한다.
이 구현예에서, 현재 LoD에서 d3개의 이미 인코딩/디코딩된 인접하는 복셀 세트를 사용하여 n-비트 점유 Sb를 형성하는데, 여기서 n = d3이다. d의 수는 상이한 구현에 따라 달라질 수 있다. 그러나, 특정 구현예에서 일단 선택되면, 인코더와 디코더 모두에 대해 상수로 유지된다. 도 7을 예로 들면 d는 2와 같다. 그 다음, 상태 요약 모듈은, d3 큐브로부터 라인, 평면과 같은 n' < n개의 미리 정의된 패턴 세트를 감지한다. 감지는 감지 모듈 세트(1110, 1120, 1130), D1, D2, …, Dn에 의해 수행된다. 일 구현예에서, 감지 모듈 Di는 미리 정의된 3D 필터를 d3 이웃에 적용하고, 타겟 패턴이 나타났는지 여부를 확인하기 위해 필터 응답을 확인한다. 각 Di 모듈은 바이너리 비트를 출력하며, "1"은 패턴이 존재함을 의미하고 "0"은 패턴이 존재하지 않음을 의미한다. 따라서, 상태 요약 모듈 출력 Sd도 Sb와 유사한 바이너리 시퀀스이다. 그러나, n' < n이므로, 요약 상태 공간은 2n' 상태를 가지며, 이는 2n보다 적어도 2배 작다.
일 구현예에서, LUT는 요약된 상태 Sd의 통계를 추적하기 위해 구성되고, 그 후, 도 9에 제시된 바와 같이, 확률 변환 모듈 Pc가 출력 p에 적용된다.
다른 구현예에서, 점유 확률 p는 확률 예측 모듈(도 8)에 의해 Sb에 기초하여 직접 출력된다. 구체적으로, 각 n' 패턴에 미리 정의된 점수, w1, w2, ..., wn'을 할당한다. 그 다음 점유 확률은 다음과 같이 계산할 수 있다
,
여기서 분모는 p의 범위를 0에서 1 사이로 보장하는 정규화기이다.
희소 포인트 클라우드용 컨텍스트 모델링
일 구현예에서, 상태 요약 모듈은 포인트 클라우드 데이터에서의 희소성을 고려하는 방식으로 확률 예측 모듈과 함께 동작한다. 더 구체적으로 말하자면, 마지막 몇 개의 LoD의 경우, 점유된 각 바이너리 복셀은 높은 확률로 하나의 점유된 바이너리 자식 복셀만 갖게 된다.
이 현상은 확률 예측 모듈에 의해 계수될 수 있다. 일 구현예에서, 도 9의 설계를 이용하고, 식 (2)로 확률 p를 계산한다. 이 구현예에서, 마지막 몇 개의 LoD를 코딩할 때 이전 확률 ppri를 적응적으로 수정한다. 이러한 이전 확률 ppri는 동일한 부모로부터 이미 디코딩된 형제 복셀이 없는 경우 더 높은 값을 갖는다. 점유되는 모든 추가 동일한 부모 형제 복셀에 대해, 이전 확률 ppri는 0 < ε < 1 인 ε 계수에 의해 값이 축소되고, ε는 동일한 부모의 점유 된 형제 노드 수에 따라 달라지거나 단순히 상수로 선택될 수 있다. 이런 식으로, 모델은 마지막 몇 개의 LoD를 인코딩할 때 희소성 점유된 복셀을 생성하는 쪽으로 향한다.
도 12는, ε=0.9에 대한 일례를 나타낸 것으로서, 회색 복셀은 인코딩/디코딩될 현재 복셀이고, 흑색 및 백색 복셀은 각각 점유된 복셀과 빈 복셀을 의미한다. 점유된 복셀이 더 많이 관찰될수록, 이전 확률 ppri는 더 작아진다. 이 예에서, 도 12a에 나타낸 바와 같이, 형제 복셀이 점유되지 않은 경우, ppri = 0.5이다. 도 12b, 도 12c 및 도 12d에 나타낸 바와 같이 1개, 2개 또는 3개의 형제 복셀이 점유될 경우, ppri는 각각 0.5×0.9=0.45, 0.5×0.92=0.405, 0.5×0.93=0.3645가 된다.
다른 구현예에서, 동일한 부모로부터의 복셀을 단순히 계수하는 대신에, 상이한 부모로부터의 복셀도 설명될 수 있다. 이는, 현재 부모 노드와 다른 부모의 인접하는 복셀이 점유되면, 점유 중인 현재 부모 노드의 확률이 줄어들기 때문이다. 이 경우, 이전 확률 ppri는 0 < β < 1인 계수 β로 값이 조정된다. β의 값은 서로 다른 부모의 점유된 형제 노드 수에 따라 달라질 수 있지만 동일한 수준이다. 상수로 선택할 수도 있다.
학습 기반 상태 요약
상기에서, 손으로 설계한 상태 요약 모듈을 제안했다. 그러나, 이들 종류의 모듈을 사용하면 최상의 성능에 제한이 있을 수 있고, 또한 이러한 모듈은 적응성이 거의 없이 모듈이 설계된 데이터 유형에만 도움이 될 수 있다. 반면에 이들 모듈을 설계하는 접근 방식은, 범용 함수 예측기이며 학습에 사용되는 모든 종류의 데이터에 적응할 수 있는, 학습 기반 신경망 아키텍처를 사용하는 것이다.
이와 관련하여, 도 9에 나타낸 바와 같은 기본 설계에 이어, 일 구현예에서, 상태 요약 모듈은, 도 13에 나타낸 바와 같이 n개의 바이너리 인접하는 복셀을 입력으로 받아 m차원 상태 Sd를 출력하는, 3D CNN(컨볼루션 신경망) 아키텍처로 구성된다. 이 아키텍처는 여러 3D 컨벌루션 계층(1310, 1320, 1330, 1340)으로 구성되며, 각 계층은 ReLU 비선형성(1315, 1325, 1335, 1345)으로 구성된다. m차원 상태 Sd는 잠재 공간 표현에 있으며, 손으로 만든 상태 요약 모듈보다 훨씬 더 많은 표현 용량을 가질 수 있다. 그 다음 이 상태 Sd는 여러 개의 완전 연결 계층(1350, 1360, 1370)으로 구성된 학습 기반 신경망 아키텍처이기도 한 LUT에 입력되고, FC(완전 연결) 계층 간의 ReLU 비선형성(1355, 1365)이 뒤따르고, 마지막으로 마지막에 시그모이드(1375)가 있다. 이 LUT는 현재 복셀의 점유 확률을 직접 출력한다. 상태 요약 모듈에 사용되는 3D 컨볼루션은 규칙성, 희소성 또는 희소 다양체 컨볼루션일 수 있다. LUT와 조합된 상태 요약 학습의 경우, 바이너리 교차 엔트로피 손실을 표준 신경망 학습 도구 및 관심 있는 필수 응용 프로그램에 특이적인 충분한 학습 데이터와 함께 사용할 수 있다.
한 가지 주의할 점은, LUT가 이제 학습 기반 모듈이기 때문에 m차원 잠재 상태 Sd의 크기가 n차원 입력 상태 Sb의 크기보다 작거나 같거나 클 수 있다는 것이다. 이는, 학습 기반 상태 요약이 장면에 대한 훨씬 더 풍부한 정보를 추출할 수 있는 잠재력을 이제 가짐을 의미하며, 특히 m > n일 때 더욱 그렇다.
우리가 3D 데이터를 다루고 있기 때문에, 다른 구현예에서, 상태 요약 모듈은, 도 14에 나타낸 바와 같이, 네이티브 3D 포인트 기반 MLP(multilayer perceptron) 아키텍처로 구성된다. 이 아키텍처는, 여러 MLP 계층(1410, 1420, 1430, 1440)으로 구성되며, 계층 간의 ReLU 비선형성(1415, 1425, 1435), 마지막으로 최대 풀링 계층(1445)으로 구성된다. 이웃에 있는 비어 있지 않은 복셀의 3D 위치는, 이 포인트 기반 상태 요약 모듈에서 쉽게 얻을 수 있다. 기본 MLP 대신 고급 MLP 아키텍처(예, PointNet++, MRG-PointNet++)를 사용할 수도 있다. LUT의 아키텍처는 동일하게 유지되며 완전히 연결된 여러 계층과 시그모이드로 구성된다.
또 다른 구현예에서, 상태 요약 모듈은 다음 두 개의 분기로 구성된 하이브리드 아키텍처이다: 복셀-기반 컨볼루션 아키텍처를 갖는 하나의 분기와 포인트 기반 MLP 아키텍처를 갖는 제2 분기. 그 다음 두 분기의 출력이 연결되고(1510) 점유 확률 예측을 위해 LUT에 공급된다. 이것의 일례가 도 15에 나타나 있다. 이러한 아키텍처는 두 가지 장점을 모두 활용하여 탁월하다: MLP는 장면에서 더 미세한 디테일을 추출할 수 있는 반면 3D-CNN은 장면 내에서 더 매끄럽고 균일한 영역에 더 적합하다. LUT 모듈은 이전과 동일한 아키텍처를 유지한다.
여기서 유의해야 할 것은, 첨부된 도 13 내지 도 15에 제공된 아키텍처는 제안된 방법론의 예시일 뿐이라는 것이다. 더 적거나 더 많은 3D 컨볼루션 또는 완전 연결 계층을 사용하여 다른 구현이 가능한다. 더욱이, 계층의 크기는 또한 어플리케이션의 유형에 적응하기 위해 변경될 수 있는데, 즉, 더 복잡한 데이터를 갖는 더 복잡한 어플리케이션의 경우 계층의 크기와 개수를 증가시킬 수 있고, 더 간단한 어플리케이션의 경우 그 반대의 경우도 마찬가지이다.
도 16은 일 구현예에 따른 포인트 클라우드 데이터를 인코딩하기 위한 방법을 나타낸다. 이 구현예에서, 인코더는 복수의 인코딩된 인접 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하며(1610), 현재 복셀과 인코딩된 복수의 인접하는 복셀은 포인트 클라우드 내에 있다. 제1 상태 세트를 프로세싱하여(1620) 제2 개수의 상태의 제2 세트를 획득한다. 일반적으로 제2 개수는 제1 개수보다 작다. 그러나 제2 개수는 제1 개수 이상일 수 있다. 제2 상태 세트에 기초하여, 현재 복셀에 대한 점유 상태에 대한 확률이 예측된다(1630). 그 다음, 인코더는 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여, 현재 복셀에 대한 점유 상태를 인코딩한다(1640).
도 17은 일 구현예에 따른 포인트 클라우드 데이터를 디코딩하기 위한 방법을 나타낸다. 이 구현예에서, 디코더는, 복수의 디코딩된 인접 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하되(1710), 현재 복셀과 복수의 디코딩된 인접하는 복셀은 포인트 클라우드 내에 있다. 제1 상태 세트를 프로세싱하여(1720) 제2 개수의 상태의 제2 세트를 획득한다. 일반적으로 제2 개수는 제1 개수보다 작다. 그러나 제2 개수는 제1 개수 이상일 수 있다. 제2 상태 세트에 기초하여, 현재 복셀에 대한 점유 상태에 대한 확률이 예측된다(1730). 그 다음, 디코더는 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여, 현재 복셀에 대한 점유 상태를 디코딩한다(1740).
다양한 수치 값이 본 출원에서 사용된다. 특정 값은 예시적인 목적을 위한 것이고, 설명된 양태는 이러한 특정 값으로 제한되지 않는다.
본 명세서에서 설명된 구현예 및 양태는, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현예의 컨텍스트에서만 논의되더라도(예를 들어, 방법으로만 논의됨), 논의된 특징의 구현예는 또한 다른 형태(예를 들어, 장치 또는 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법은, 예를 들어, 장치, 예를 들어, 프로세서에 구현될 수 있고, 이는 일반적으로, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그램가능 로직 디바이스를 포함하는 프로세싱 디바이스를 지칭한다. 프로세서는 또한 통신 디바이스, 예를 들어, 컴퓨터, 휴대폰, 휴대용/개인 휴대 정보 단말기("PDA"), 및 최종 사용자 사이의 정보의 통신을 가능하게 하는 다른 디바이스를 포함한다.
"하나의 구현예" 또는 "일 구현예" 또는 "하나의 구현예" 또는 "일 구현예"뿐만 아니라 그의 다른 변형예에 대한 언급은, 구현예와 관련하여 설명된 특정 특징, 구조, 특성 등이 적어도 하나의 구현예에 포함됨을 의미한다. 따라서, 본 출원 전반에 걸친 다양한 곳에서 나타나는 어구 "하나의 구현예에서" 또는 "일 구현예에서" 또는 "하나의 구현예에서" 또는 "일 구현예에서"뿐만 아니라 임의의 다른 변형예의 출현이 반드시 모두 동일한 구현예를 언급하는 것은 아니다.
또한, 본 출원은 여러 가지의 정보를 "결정하는 것"을 언급할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 예측하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 여러 가지의 정보에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 예측하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 여러 가지의 정보를 "수신하는 것"을 지칭할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 통상적으로, 하나의 방식 또는 다른 방식으로, 동작들 동안, 예를 들어, 정보를 저장하는 것, 정보를 프로세싱하는 것, 정보를 송신하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 소거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 예측하는 것을 수반한다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 두 옵션(A 및 B)의 선택을 포함하도록 의도됨을 이해해야 한다. 또 다른 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우에서, 이러한 어구는 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 제3 열거된 옵션(C) 단독의 선택, 또는 제1 및 제2 열거된 옵션(A 및 B) 단독의 선택, 또는 제1 및 제3 열거된 옵션(A 및 C) 단독의 선택, 또는 제2 및 제3 열거된 옵션(B 및 C) 단독의 선택, 또는 3개의 모든 옵션(A, B 및 C)의 선택을 포함하도록 의도된다. 이는, 본 명세서에 기술된 바와 같은 많은 항목에 대해, 본 명세서 및 관련 분야의 당업자에게 명백한 바와 같이 확장될 수 있다.
당업자에게 명백한 바와 같이, 구현예는, 예를 들어, 저장되거나 송신될 수도 있는 정보를 반송하도록 포맷팅된 다양한 신호를 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어, 또는 설명된 구현예 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 구현예의 비트스트림을 반송하도록 포맷될 수 있다. 이러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용하여) 또는 기저대역 신호로서 포맷될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하는 것 및 인코딩된 데이터 스트림으로 반송파를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 알려진 바와 같이 다양한 상이한 유선 또는 무선 링크를 통해 송신될 수 있다. 신호는 프로세서 판독 가능 매체 상에 저장될 수 있다.
Claims (30)
- 포인트 클라우드 데이터를 인코딩하기 위한 장치로서,
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
현재 복셀에 인접하는 복수의 인코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하도록(상기 현재 복셀과 복수의 인접하는 인코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 상기 포인트 클라우드 내에 있음);
제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하도록;
제2 상태 세트에 기초하여, 상기 현재 복셀에 대한 점유 상태에 대한 확률을 예측하도록; 그리고
상기 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여 상기 현재 복셀에 대한 점유 상태를 인코딩하도록 구성되는, 장치. - 포인트 클라우드 데이터를 인코딩하기 위한 방법으로서,
현재 복셀에 인접하는 복수의 인코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하는 단계(상기 현재 복셀과 복수의 인접하는 인코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음);
제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하는 단계;
제2 상태 세트에 기초하여, 상기 현재 복셀에 대한 점유 상태에 대한 확률을 예측하는 단계; 및
상기 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여 상기 현재 복셀에 대한 점유 상태를 인코딩하는 단계를 포함하는, 방법. - 포인트 클라우드 데이터를 디코딩하기 위한 장치로서,
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
현재 복셀에 인접하는 복수의 디코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하도록(상기 현재 복셀과 복수의 인접하는 디코딩된 복셀은 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음);
제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하도록;
제2 상태 세트에 기초하여, 상기 현재 복셀에 대한 점유 상태에 대한 확률을 예측하도록; 그리고
상기 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여 상기 현재 복셀에 대한 점유 상태를 디코딩하도록 구성되는, 장치. - 포인트 클라우드 데이터를 디코딩하기 위한 방법으로서,
현재 복셀에 인접하는 복수의 디코딩된 복셀 각각에 대한 점유 상태와 연관된 제1 개수의 상태의 제1 세트를 결정하는 단계(상기 현재 복셀과 복수의 인접하는 디코딩된 복셀은 상기 포인트 클라우드 데이터에 의해 표현되는 포인트 클라우드 내에 있음);
제1 상태 세트를 프로세싱하여 제2 개수의 상태의 제2 세트를 획득하는 단계;
제2 상태 세트에 기초하여, 상기 현재 복셀에 대한 점유 상태에 대한 확률을 예측하는 단계; 및
상기 현재 복셀에 대한 점유 상태에 대한 상기 예측된 확률에 기초하여 상기 현재 복셀에 대한 점유 상태를 디코딩하는 단계를 포함하는, 방법. - 제1항 또는 제3항의 장치에 있어서, 또는 제2항 또는 제4항의 방법에 있어서, 상기 제1 상태 세트를 프로세싱하는 단계는, 상기 제1 상태 세트를 상기 제2 개수의 상태를 갖는 요약된 상태 공간으로 변환하는 단계를 포함하는, 장치 또는 방법.
- 제1항, 제3항 및 제5항 중 어느 한 항의 장치, 또는 제2항, 제4항 및 제5항 중 어느 한 항의 방법으로서, 상기 현재 복셀에 대한 점유 상태를 예측하는 단계는, 점유 중인 상기 현재 복셀의 확률을 예측하는 단계를 포함하는, 장치 또는 방법.
- 제6항에 있어서, 상기 현재 복셀의 확률을 예측하는 단계는,
요약된 상태 공간에 포함된 상태 중 하나 이상의 통계를 획득하는 단계; 및
상기 통계를 점유 중인 상기 현재 복셀의 확률로 변환하는 단계를 포함하는, 장치 또는 방법. - 제5항 또는 제7항에 있어서, 상기 제1 상태 세트를 요약된 상태 공간으로 변환하는 단계는, 상기 현재 복셀에 인접하는 복수의 복셀에서 점유된 복셀의 밀도를 결정하는 단계를 포함하는, 장치 또는 방법.
- 제8항에 있어서, 상기 점유된 복셀의 밀도를 결정하는 단계는,
상기 현재 복셀에 인접하는 복셀을, 각각의 인접하는 복셀로부터 상기 현재 복셀까지의 거리에 기초하여, 인접하는 복셀의 하나 이상의 클래스로 분류하는 단계; 및
인접하는 복셀의 하나 이상의 클래스 각각에 포함된 점유 인접 복셀의 수를 결정하는 단계를 포함하는, 장치 또는 방법. - 제8항 또는 제9항에 있어서,
상기 통계를 획득하는 단계는, 다음을 포함하는 이동 평균 메커니즘에 기초하여 각 요약된 상태가 점유될 확률을 추적하는 단계
;
및
상기 통계를, 항등 함수에 기초하여 점유 중인 상기 현재 복셀의 확률로 변환하는 단계를 포함하는, 장치 또는 방법. - 제8항 또는 제9항에 있어서,
상기 통계를 획득하는 단계는, 특정 상태가 관찰되는 횟수와 상기 특정 상태를 갖는 현재 복셀이 점유되는 횟수 둘 모두를 추적하는 단계; 및
상기 통계를, 상기 특정 상태를 갖는 상기 현재 복셀이 점유되는 횟수 대 상기 특정 상태가 관찰되는 횟수의 비율에 기초하여, 점유 중인 상기 현재 복셀의 확률로 변환하는 단계를 포함하는, 장치 또는 방법. - 제11항에 있어서,
상기 비율은 경험적 확률 p em 을 나타내고;
상기 통계를, 다음과 같은 이전 확률 p pri 에 기초하여, 점유 중인 상기 현재 복셀의 확률 p로 변환하고
여기서 A(S d )는 상기 특정 상태가 관찰되는 횟수이고 α는 양의 상수인, 장치 또는 방법. - 제12항에 있어서, p pri 는 0.5와 같은, 장치 또는 방법.
- 제12항에 있어서, p pri 는 동일한 부모로부터 점유된 형제 노드의 개수에 기초하여 조정되는, 장치 또는 방법.
- 제14항에 있어서, p pri 는 동일한 부모로부터의 추가적인 형제 노드가 점유될 때 축소되는, 장치 또는 방법.
- 제15항에 있어서, p pri 는 스케일링 팩터에 의해 축소되는, 장치 또는 방법.
- 제11항 또는 제12항에 있어서, 상기 현재 복셀의 점유 상태의 인코딩 또는 디코딩 다음에, 상기 특정 상태가 관찰되는 횟수를 하나씩 증가시키는 단계를 포함하는 상기 통계의 업데이트가 이어지고, 상기 현재 복셀의 점유 상태가 상기 현재 복셀이 점유됨을 표시하는 경우, 상기 특정 상태를 갖는 상기 현재 복셀이 점유되는 횟수를 하나씩 증가시키는, 장치 또는 방법.
- 제5항 또는 제7항에 있어서, 상기 제1 상태 세트를 상기 요약된 상태 공간으로 변환하는 단계는, 상기 복수의 인접하는 복셀을 포함하는 복셀 이웃에 패턴 세트 중 하나 이상이 존재함을 결정하는 단계를 포함하는, 장치 또는 방법.
- 제18항에 있어서, 상기 현재 복셀에 대한 점유 확률은, 상기 요약된 상태 공간 내 상태의 가중 평균에 기초하여 예측되는, 장치 또는 방법.
- 제18항에 있어서, 상기 하나 이상의 패턴이 존재함을 결정하는 단계는, 상기 하나 이상의 패턴에 대응하는 하나 이상의 필터를 상기 복셀 이웃에 적용하는 단계, 및 상기 하나 이상의 필터의 응답을 평가하는 단계를 포함하는, 장치 또는 방법.
- 제20항에 있어서, 상기 하나 이상의 필터의 응답은 상기 요약된 상태 공간을 나타내는, 장치 또는 방법.
- 제1항 내지 제21항 중 어느 한 항에 있어서, 상기 현재 복셀에 대한 점유 상태를 예측하는 단계는, 점유 중인 상기 현재 복셀의 확률을 예측하는 단계를 포함하는, 장치 또는 방법.
- 제1항, 제3항, 제5항, 제6항 및 제22항 중 어느 한 항의 장치, 또는 제2항, 제4항 내지 제6항, 및 제22항 중 어느 한 항의 방법으로서, 상기 제1 상태 세트를 프로세싱하는 단계는, 복수의 컨볼루션 계층을 포함하는 신경망을 적용하는 단계를 포함하는, 장치 또는 방법.
- 제1항, 제3항, 제5항, 제6항 및 제22항 중 어느 한 항의 장치, 또는 제2항, 제4항 내지 제6항, 및 제22항 중 어느 한 항의 방법으로서, 상기 제1 상태 세트를 프로세싱하는 단계는, 복수의 포인트 기반 MLP 계층을 포함하는 신경망을 적용하는 단계를 포함하는, 장치 또는 방법.
- 제1항, 제3항, 제5항, 제6항 및 제22항 중 어느 한 항의 장치, 또는 제2항, 제4항 내지 제6항, 및 제22항 중 어느 한 항의 방법으로서, 상기 제1 상태 세트를 프로세싱하는 단계는, 복수의 컨볼루션 계층을 포함하는 제1 신경망 및 복수의 포인트 기반 MLP 계층을 포함하는 제2 신경망을 적용하는 단계를 포함하되, 상기 제1 및 제2 신경망으로부터의 출력이 연결되는, 장치 또는 방법.
- 제22항 내지 제25항 중 어느 한 항의 장치, 또는 제22항 내지 제25항 중 어느 한 항의 방법으로서, 상기 확률은, 복수의 완전 연결 계층 다음 시그모이드를 포함하는 신경망에 기초하여, 상기 제2 상태 세트로부터 예측되는, 장치 또는 방법.
- 명령어를 포함하는 컴퓨터 프로그램 제품으로서, 상기 명령어는, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 이전 청구항 중 어느 한 항에 따른 방법을 수행시키는, 컴퓨터 프로그램 제품.
- 실행가능 프로그램 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는, 상기 명령어를 실행하는 컴퓨터로 하여금 제2항 및 제4항 내지 제26항 중 어느 한 항에 따른 방법을 수행시키는, 비일시적 컴퓨터 판독가능 매체.
- 제2항 및 제5항 내지 제26항 중 어느 한 항의 방법에 따라 압축된 포인트 클라우드를 나타내는 비디오 데이터를 포함하는 신호.
- 제2항 및 제5항 내지 제26항 중 어느 한 항의 방법에 따라 압축된 포인트 클라우드를 나타내는 비디오 데이터를 포함하도록 포맷된 신호.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163275511P | 2021-11-04 | 2021-11-04 | |
US63/275,511 | 2021-11-04 | ||
US202263332375P | 2022-04-19 | 2022-04-19 | |
US63/332,375 | 2022-04-19 | ||
PCT/US2022/046957 WO2023081009A1 (en) | 2021-11-04 | 2022-10-18 | State summarization for binary voxel grid coding |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240105394A true KR20240105394A (ko) | 2024-07-05 |
Family
ID=84357969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020247016615A KR20240105394A (ko) | 2021-11-04 | 2022-10-18 | 바이너리 복셀 그리드 코딩에 대한 상태 요약 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240105394A (ko) |
WO (1) | WO2023081009A1 (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3553745B1 (en) * | 2018-04-09 | 2021-09-01 | BlackBerry Limited | Methods and devices for binary entropy coding of point clouds |
-
2022
- 2022-10-18 WO PCT/US2022/046957 patent/WO2023081009A1/en active Application Filing
- 2022-10-18 KR KR1020247016615A patent/KR20240105394A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023081009A1 (en) | 2023-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20180122947A (ko) | 2차원 포인트 클라우드들을 인코딩 및 디코딩하기 위한 방법 및 장치 | |
US20240078715A1 (en) | Apparatus and method for point cloud processing | |
EP3467778A1 (en) | A method and apparatus for encoding/decoding the geometry of a point cloud representing a 3d object | |
WO2023132919A1 (en) | Scalable framework for point cloud compression | |
US20180184096A1 (en) | Method and apparatus for encoding and decoding lists of pixels | |
Shao et al. | Point cloud in the air | |
KR20240105394A (ko) | 바이너리 복셀 그리드 코딩에 대한 상태 요약 | |
CN118355408A (zh) | 二进制体素网格译码的状态汇总 | |
US20240193819A1 (en) | Learning-based point cloud compression via tearing transform | |
WO2023113917A1 (en) | Hybrid framework for point cloud compression | |
WO2024081133A1 (en) | Sparse tensor-based bitwise deep octree coding | |
CN118176525A (zh) | 用于使用混合深度熵译码进行点云压缩的方法和装置 | |
EP4395321A1 (en) | Point cloud encoding/decoding method, apparatus and device, and storage medium | |
KR20240115237A (ko) | 아웃라이어 그룹핑 기반 포인트 클라우드 압축 | |
US20240087174A1 (en) | Coding and decoding point cloud attribute information | |
EP4152264A1 (en) | Method and apparatus of encoding/decoding point cloud geometry data sensed by at least one sensor | |
CN118402234A (en) | Hybrid framework for point cloud compression | |
CN118303023A (zh) | 基于离群值分组的点云压缩 | |
WO2024086154A1 (en) | Tree-based deep entropy model for point cloud compression | |
KR20240107131A (ko) | 적응적 포인트 생성을 통한 학습 기반 포인트 클라우드 압축 | |
EP4360053A1 (en) | Learning-based point cloud compression via unfolding of 3d point clouds | |
WO2023177431A1 (en) | Unsupervised 3d point cloud distillation and segmentation | |
CN117061770A (zh) | 一种点云处理方法、装置、设备、存储介质及产品 | |
WO2024146903A1 (en) | Intra-frame prediction in point cloud attribute compression | |
CN115917601A (zh) | 信息处理装置和方法 |