WO2020189876A1 - 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 - Google Patents

포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 Download PDF

Info

Publication number
WO2020189876A1
WO2020189876A1 PCT/KR2019/016375 KR2019016375W WO2020189876A1 WO 2020189876 A1 WO2020189876 A1 WO 2020189876A1 KR 2019016375 W KR2019016375 W KR 2019016375W WO 2020189876 A1 WO2020189876 A1 WO 2020189876A1
Authority
WO
WIPO (PCT)
Prior art keywords
point cloud
information
cloud data
attribute
unit
Prior art date
Application number
PCT/KR2019/016375
Other languages
English (en)
French (fr)
Inventor
허혜정
오세진
심동규
변주형
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Publication of WO2020189876A1 publication Critical patent/WO2020189876A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

실시예들에 따른 포인트 클라우드 데이터 송신 방법은 포인트 클라우드 데이터를 획득하는 단계; 상기 포인트 클라우드 데이터를 인코딩하는 단계; 및/또는 상기 포인트 클라우드 데이터를 전송하는 단계; 를 포함할 수 있다. 실시예들에 따른 포인트 클라우드 데이터 수신 방법은 포인트 클라우드 데이터를 수신하는 단계; 상기 포인트 클라우드 데이터를 디코딩하는 단계; 및/또는 상기 포인트 클라우드 데이터를 렌더링하는 단계; 를 포함할 수 있다.

Description

포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
실시예들은 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 서비스 등의 다양한 서비스를 제공하기 위하여 Point Cloud 콘텐츠를 제공하는 방안을 제공한다.
포인트 클라우드는 3D공간 상의 포인트들의 집합이다. 3D공간 상의 포인트들의 양이 많아서 포인트 클라우드 데이터를 생성하기 어려운 문제점이 있다.
포인트 클라우드의 데이터를 전송하고 수신하기 위해서 많은 처리량이 요구되는 문제점이 있다.
실시예들에 따른 기술적 과제는, 전술한 문제점 등을 해결하기 위해서, 포인트 클라우드를 효율적으로 송수신하기 위한 포인트 클라우드 데이터 전송 장치, 전송 방법, 포인트 클라우드 데이터 수신 장치 및 수신 방법을 제공하는데 있다.
실시예들에 따른 기술적 과제는, 지연시간(latency) 및 인코딩/디코딩 복잡도를 해결하기 위한 포인트 클라우드 데이터 전송 장치, 전송 방법, 포인트 클라우드 데이터 수신 장치 및 수신 방법을 제공하는데 있다.
다만, 전술한 기술적 과제만으로 제한되는 것은 아니고, 본 문서 전체 내용에 기초하여 당업자가 유추할 수 있는 다른 기술적 과제로 실시예들의 권리범위가 확장될 수 있다.
상술한 목적 및 다른 이점을 달성하기 위해서 실시예들에 따른 포인트 클라우드 데이터 송신 방법은 포인트 클라우드 데이터를 획득하는 단계; 상기 포인트 클라우드 데이터를 인코딩하는 단계; 및/또는 상기 포인트 클라우드 데이터를 전송하는 단계; 를 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 방법은 포인트 클라우드 데이터를 수신하는 단계; 상기 포인트 클라우드 데이터를 디코딩하는 단계; 및/또는 상기 포인트 클라우드 데이터를 렌더링하는 단계; 를 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 퀄리티 있는 포인트 클라우드 서비스를 제공할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 다양한 비디오 코덱 방식을 달성할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법, 송신 장치, 포인트 클라우드 데이터 수신 방법, 수신 장치는 자율주행 서비스 등 범용적인 포인트 클라우드 콘텐츠를 제공할 수 있다.
도면은 실시예들을 더욱 이해하기 위해서 포함되며, 도면은 실시예들에 관련된 설명과 함께 실시예들을 나타낸다.
도1은 실시예들에 따른 포인트 클라우드(Point Cloud) 콘텐츠 제공을 위한 시스템을 나타낸다.
도2는 실시예들에 따른 Point Cloud 콘텐츠 제공을 위한 과정을 나타낸다.
도3은 실시예들에 따른 Point Cloud 캡처 장비 배열 구성을 나타낸다.
도4는 실시예들에 따른 포인트 클라우드 인코더(Point Cloud Encoder)를 나타낸다.
도5는 실시예들에 따른 3차원 공간상의 복셀을 나타낸다.
도6은 실시예들에 따른 옥트리와 occupancy 코드의 예시를 나타낸다.
도7은 실시예들에 따른 이웃 노드 패턴의 예시를 나타낸다.
도8은 실시예들에 따른 LOD별 Point Cloud 콘텐츠의 Point 구성의 예시를 나타낸다.
도9는 실시예들에 따른 LOD별 Point Cloud 콘텐츠의 Point 구성의 예시를 나타낸다.
도10은 실시예들에 따른 포인트 클라우드 디코더(Point Cloud Decoder)의 블록 다이어그램(block diagram) 예시를 나타낸다.
도11은 실시예들에 따른 포인트 클라우드 디코더(Point Cloud Decoder) 예시를 나타낸다.
도12는 실시예들에 따른 송신기의 Point Cloud 비디오 인코딩을 위한 구성요소를 나타낸다.
도13은 실시예들에 따른 수신기의 Point Cloud 비디오 디코딩을 위한 구성요소를 나타낸다.
도14는 실시예들에 따른 G-PCC 기반 point cloud 데이터 저장 및 스트리밍을 위한 아키텍쳐를 나타낸다.
도15는 실시예들에 따른 point cloud 데이터 저장 및 전송을 나타낸다.
도16은 실시예들에 따른 point cloud 데이터 수신 장치를 나타낸다.
도17은 실시예들에 따른 포인트 클라우드 데이터 송수신 방법/장치와 연동 가능한 구조의 예시를 나타낸다.
도18은 실시예들에 따른 G-PCC의 지오메트리 손실 압축의 예시를 나타낸다.
도19는 실시예들에 따른 포인트 클라우드 컴프레션(PCC) 부호화기의 동작을 나타낸다.
도20은 실시예들에 따른 기하 정보 부호화기를 나타낸다.
도21은 실시예들에 따른 속성정보 부호화기를 나타낸다.
도22는 실시예들에 따른 PCC복호화기를 나타낸다.
도23은 실시예들에 따른 기하정보 복호화기를 나타낸다.
도24는 실시예들에 따른 속성정보 복호화기를 나타낸다.
도25는 실시예들에 따른 필터링부를 나타낸다.
도26은 실시예들에 따른 인코딩된 포인트 클라우드 데이터의 구성을 나타낸다.
도27은 실시예들에 따른 SPS의 필터링 정보를 나타낸다.
도28은 실시예들에 따른 GPS의 필터링 정보를 나타낸다.
도29는 실시예들에 따른 APS의 필터링 정보를 나타낸다.
도30은 실시예들에 따른 TPS의 필터링 정보를 나타낸다.
도31은 실시예들에 따른 Geom의 필터링 정보를 나타낸다.
도32는 실시예들에 따른 Attr의 필터링 정보를 나타낸다.
도33은 실시예들에 따른 필터링부를 나타낸다.
도34는 실시예들에 따른 포인트 클라우드 데이터 송신 방법을 나타낸다.
도35는 실시예들에 따른 포인트 클라우드 데이터 수신 방법을 나타낸다.
실시예들의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 실시예들의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 실시예들의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 실시예들에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 실시예들이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
실시예들에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 실시예들은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
도1은 실시예들에 따른 포인트 클라우드(Point Cloud) 콘텐츠 제공을 위한 시스템의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 전송 장치(Transmission device, 10000)는 포인트 클라우드 비디오 획득부(Point Cloud Video Acquisition, 10001), 포인트 클라우드 비디오 인코더(Point Cloud Video Encoder, 10002) 및/또는 트랜스미터(Transmitter (or Communication module), 10003)를 포함한다.
실시예들에 따른 포인트 클라우드 비디오 획득부(Point Cloud Video Acquisition, 10001)는 Point Cloud 비디오의 캡처, 합성 또는 생성 과정 등을 통한 Point Cloud 비디오를 획득한다.
실시예들에 따른 포인트 클라우드 비디오 인코더(Point Cloud Video Encoder, 10002)는 포인트 클라우드 비디오 데이터를 인코딩한다.
실시예들에 따른 트랜스미터(Transmitter (or Communication module), 10003)는 인코딩된 포인트 클라우드 비디오 데이터를 비트스트림의 형태로 전송한다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치(Reception device, 10004)는 리시버(Receiver, 10005), 포인트 클라우드 비디오 디코더(Point Cloud Decoder, 10006) 및/또는 렌더러(Renderer, 10007)를 포함한다.
실시예들에 따른 리시버(Receiver, 10005)는 포인트 클라우드 비디오 데이터를 포함하는 비트스트림을 수신한다. 실시예들에 따라 리시버(10005)는 피드백 정보(Feedback Information)을 포인트 클라우드 데이터 전송 장치(10000)에 전송할 수 있다.
포인트 클라우드 비디오 디코더(Point Cloud Decoder, 10006)는 수신된 포인트 클라우드 비디오 데이터를 디코딩한다.
렌더러(Renderer, 10007)는 디코딩된 포인트 클라우드 비디오 데이터를 렌더링한다. 실시예들에 따라 렌더러(10007)는 수신단 측에서 획득된 피드백 정보를 포인트 클라우드 비디오 디코더(10006)에 전송할 수 있다. 실시예들에 따른 포인트 클라우드 비디오 데이터는 피드백 정보를 리시버에 전송할 수 있다. 실시예들에 따라 포인트 클라우드 전송 장치가 수신한 피드백 정보는 포인트 클라우드 비디오 인코더에 제공될 수 있다.
실시예들은 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 서비스 등 다양한 서비스를 제공하기 위하여 포인트 클라우드(Point Cloud) 콘텐츠를 제공할 수 있다.
Point Cloud 콘텐츠 서비스를 제공하기 위하여, 먼저 Point Cloud 비디오가 획득될 수 있다. 획득된 Point Cloud 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터를 다시 원래의 Point Cloud 비디오로 가공하여 렌더링 할 수 있다. 이를 통해 Point Cloud 비디오가 사용자에게 제공될 수 있다. 실시예들은 이러한 일련의 과정을 효과적으로 수행하기 위해 필요한 방안을 제공한다.
Point Cloud 콘텐츠 서비스를 제공하기 위한 전체의 과정(포인트 클라우드 데이터 전송 방법 및/또는 포인트 클라우드 데이터 수신 방법)은 획득 과정, 인코딩 과정, 전송 과정, 디코딩 과정, 렌더링 과정 및/또는 피드백 과정을 포함할 수 있다.
실시예들에 따라 포인트 클라우드 콘텐츠 (또는 포인트 클라우드 데이터)를 제공하는 과정은 포인트 클라우드 컴프레션(Point Cloud Compression) 과정이라고 호칭할 수 있다. 실시예들에 따라 포인트 클라우드 컴프레션 과정은 지오메트리 기반 포인트 클라우드 컴프레션(Geometry-based Point Cloud Compression) 과정을 의미할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 전송 장치 및 포인트 클라우드 데이터 수신 장치의 각 엘리먼트는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 결합 등을 의미할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치는 포인트 클라우드 데이터를 획득하는 획득부; 상기 포인트 클라우드 데이터를 인코딩하는 인코더; 및/또는 상기 포인트 클라우드 데이터를 전송하는 트랜스미터; 를 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치는 포인트 클라우드 데이터를 수신하는 수신부; 상기 포인트 클라우드 데이터를 디코딩하는 디코더; 및/또는 상기 포인트 클라우드 데이터를 렌더링하는 렌더러; 를 포함할 수 있다.
실시예들에 따른 방법/장치는 포인트 클라우드 데이터의 화질 향상시켜서 고화질의 포인트 클라우드 데이터를 제공할 수 있다.
도2는 실시예들에 따른 Point Cloud 콘텐츠 제공을 위한 과정을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 전송 방법 및 포인트 클라우드 데이터 수신 방법은 획득(20000), 인코딩(20001), 전송(20002), 디코딩(20003), 렌더링(20004) 및/또는 피드백(20005)을 포함한다.
실시예들에 따른 획득(20000)은 포인트 클라우드 데이터를 획득하는 단계이다. 실시예들에 따른 포인트 클라우드 데이터는 Ply (Polygon File format or the Stanford Triangle format) 파일일 수 있다. 실시예들에 따른 Ply 파일은 지오메트리(Geometry) 및/또는 어트리뷰트(Attribute)를 포함한다. 실시예들에 따른 지오메트리는 3차원 공간 상의 점들을 나타낸다. 실시예들에 따른 어트리뷰트는 지오메트리에 따른 3차원 공간 상의 각 점에 대한 색상, 반사 등의 속성을 나타낸다.
실시예들에 따른 인코딩(20001)은 지오메트리 및/또는 어트리뷰트를 포함하는 포인트 클라우드 데이터를 인코딩하는 단계이다. 실시예들에 따른 인코딩된 데이터는 비트스트림의 형태일 수 있다.
실시예들에 따른 전송(20002)은 인코딩된 데이터를 전송하는 단계이다. 실시예들에 따른 전송 장치는 실시예들에 따른 실시예들에 따른 수신 장치로부터 피드백 정보를 수신한다. 수신된 피드백 정보는 실시예들에 따른 인코딩에 전달될 수 있다.
실시예들에 따른 디코딩(20003)은 비트스트림을 수신하고, 비트스트림에 포함된 포인트 클라우드 데이터를 디코딩하는 단계이다. 디코딩하는 단계는 실시예들에 따라 사용자에 관한 피드백 정보를 획득할 수 있다.
실시예들에 따른 렌더링(20004)은 지오메트리 및/또는 어트리뷰트를 포함하는 디코딩된 데이터를 렌더링하는 단계이다.
실시예들에 따른 피드백(20005)은 수신단 및/또는 사용자로부터 피드백 정보를 획득하고, 실시예들에 따른 포인트 클라우드 데이터 전송 방법 및 포인트 클라우드 데이터 수신 방법에 획득된 피드백 정보를 제공하는 단계이다. 실시예들에 따른 피드백 정보는 사용자에 관한 정보를 포함한다. 예를 들어, 피드백 정보는 사용자에 관련된 헤드 오리엔테이션 정보, 사용자에 관련된 뷰포트 정보 등을 포함한다. 실시예들에 따른 피드백 정보는 실시예들에 따른 수신기의 디코더 및/또는 전송기에 제공될 수 있다. 사용자의 헤드 오리엔테이션 및/또는 뷰포트에 대응하는 포인트 클라우드 데이터를 인코딩/디코딩할 수 있다. 모든 시점에 대한 데이터를 인코딩/디코딩할 필요 없이, 사용자에 관련된 데이터를 효율적으로 인코딩/디코딩할 수 있는 효과가 있다.
실시예에 따른 Point Cloud 콘텐츠 서비스 제공을 위한 과정은 다음과 같다.
포인트 클라우드 컴프레션(Point Cloud Compression) 처리는 지오메트리 기반 포인트 클라우드 컴프레션(Geometry-based Point Cloud Compression) 과정을 포함할 수 있다.
Point Cloud Compression 시스템은 실시예들에 따른 전송 디바이스 및 수신 디바이스를 포함할 수 있다. 실시예들에 따라 전송 디바이스는 인코더, 전송 장치, 전송기 등으로 호칭될 수 있다. 실시예들에 따라 수신 디바이스는 디코더, 수신 장치, 수신기 등으로 호칭될 수 있다. 전송 디바이스는 Point Cloud 비디오를 인코딩하여 비트스트림을 출력할 수 있으며, 이를 파일 또는 스트리밍 (스트리밍 세그먼트) 형태로 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스로 전달할 수 있다. 예를 들어, 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다.
전송 디바이스는 개략적으로 Point Cloud 비디오 획득부, Point Cloud 비디오 인코더, 전송부를 포함할 수 있다. 수신 디바이스는 개략적으로 수신부, Point Cloud 비디오 디코더 및 렌더러를 포함할 수 있다. 인코더는 Point Cloud 비디오/영상/픽처/프레임 인코딩 장치라고 불릴 수 있고, 디코더는 Point Cloud 비디오/영상/픽처/프레임 디코딩 장치라고 불릴 수 있다. 송신기는 Point Cloud 비디오 인코더에 포함될 수 있다. 수신기는 Point Cloud 비디오 디코더에 포함될 수 있다. 렌더러는 디스플레이부를 포함할 수도 있고, 렌더러 및/또는 디스플레이부는 별개의 디바이스 또는 외부 컴포넌트로 구성될 수도 있다. 상기 전송 디바이스 및 상기 수신 디바이스는 피드백 과정을 위한 별도의 내부 또는 외부의 모듈/유닛/컴포넌트를 더 포함할 수도 있다. 실시예들에 따른 전송 디바이스 및 수신 디바이스에 포함된 각 엘리먼트는 하드웨어, 소프트웨어 및/또는 프로세서로 구성될 수 있다.
Point Cloud 비디오 획득부는 Point Cloud 비디오의 캡처, 합성 또는 생성 과정 등을 통한 Point Cloud 비디오를 획득하는 과정을 수행할 수 있다. 획득 과정에 의해 다수의 Point들에 대한 3D 위치(x, y, z)/속성 (color, reflectance, transparency 등) 데이터, 예를 들어, PLY(Polygon File format or the Stanford Triangle format) 파일 등이 생성 될 수 있다. 여러 개의 프레임을 갖는 비디오의 경우 하나 이상의 파일들이 획득될 수 있다. 캡처 과정에서 point cloud 관련 메타데이터 (예를 들어 캡처와 관련된 메타데이터 등)가 생성될 수 있다.
Point Cloud 비디오 인코더는 입력 Point Cloud 비디오를 인코딩할 수 있다. 하나의 비디오는 다수의 프레임을 포함할 수 있으며, 하나의 프레임은 정지 영상/픽처에 대응될 수 있다. 본 문서에서, Point Cloud 비디오라 함은 Point Cloud 영상/프레임/픽처를 포함할 수 있으며, Point Cloud 비디오는 Point Cloud 영상/프레임/픽처와 혼용되어 사용될 수 있다. Point Cloud 비디오 인코더는 Geometry-based Point Cloud Compression (G-PCC) 절차를 수행할 수 있다. Point Cloud 비디오 인코더는 압축 및 코딩 효율을 위하여 예측, 변환, 양자화, 엔트로피 코딩 등의 일련의 절차를 수행할 수 있다. 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다. G-PCC 절차에 기반하는 경우 Point Cloud 비디오 인코더는 Point Cloud 비디오를 후술하는 바와 같이 지오메트리 및 어트리뷰트(attribute)로 나누어 인코딩할 수 있다. 이 경우 출력 비트스트림은 지오메트리 비트스트림 및/또는 어트리뷰트 비트스트림을 포함할 수 있다. 상기 어트리뷰트는 (컬러) 텍스쳐 정보를 포함할 수 있다.
인캡슐레이션부는 비트스트림 형태로 출력된 인코딩된 비디오/영상 정보 또는 데이터를 파일 또는 스트리밍 형태로 인캡슐레이션 할 수 있다. 전송부는 point cloud 비트스트림 혹은 해당 비트스트림을 포함하는 파일/세그먼트를 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 수신부는 상기 비트스트림을 추출하여 디코딩 장치로 전달할 수 있다.
Point Cloud 비디오 디코더는 상기 비트스트림을 입력받아 상기 Point Cloud 비디오 인코더의 동작에 대응하는 동작을 수행하여 비디오/영상을 디코딩할 수 있다. 이 경우 Point Cloud 비디오 디코더는 Point Cloud 비디오를 후술하는 바와 같이 지오메트리 및 어트리뷰트(attribute)로 나누어 디코딩할 수 있다. 예를 들어, Point Cloud 비디오 디코더는 입력 비트스트림 내 포함된 지오메트리 비트스트림으로부터 지오메트리를 복원(디코딩)할 수 있고, 상기 입력 비트스트림 내 포함된 어트리뷰트 비트스트림 및 상기 복원된 지오메트리를 기반으로 어트리뷰트를 복원(디코딩)할 수 있다. 상기 복원된 지오메트리에 따른 위치 정보 및 상기 디코딩된 어트리뷰트에 따른 (컬러) 텍스처 어트리뷰트를 기반으로 3차원의 Point Cloud 비디오/영상을 복원할 수 있다. 상술한 바와 같이 상기 어트리뷰트는 (컬러) 텍스쳐 정보를 포함할 수 있다.
렌더러는 디코딩된 Point Cloud 비디오/영상을 렌더링할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다. 사용자는 VR/AR 디스플레이 또는 일반 디스플레이 등을 통하여 렌더링 된 결과의 전부 또는 일부 영역을 볼 수 있다.
피드백 과정은 렌더링/디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하거나 수신측의 디코더에 전달하는 과정을 포함할 수 있다. 피드백 과정을 통해 Point Cloud 비디오 소비에 있어 인터랙티비티(interactivity)가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션(Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트(Viewport) 정보 등이 전달될 수 있다. 실시예에 따라, 사용자는 VR/AR/MR/자율주행 환경 상에 구현된 것들과 상호작용 할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
실시예들은 상술한 바와 같이 Point Cloud 비디오 압축에 관한 것이다. 예를 들어, 실시예들이 설명하는 방법은 MPEG (Moving Picture Experts Group)의 PCC (point cloud compression or point cloud coding) 표준 (ex. G-PCC or V-PCC 표준) 또는 차세대 비디오/이미지 코딩 표준에 적용될 수 있다.
도3은 실시예들에 따른 Point Cloud 캡처 장비 배열 구성을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터는 카메라 등에 의해 획득될 수 있다. 실시예들에 따른 캡쳐 방법은 예를 들어 인워드-페이싱 및/또는 아웃워드-페이싱이 있을 수 있다.
실시예들에 따른 인워드-페이싱은 포인트 클라우드 데이터의 오브젝트(Object)를 하나 또는 하나 이상의 카메라들이 오브젝트의 바깥에서 안쪽 방향으로 촬영할 수 있다.
실시예들에 따른 아웃워드-페이싱은 포인트 클라우드 데이터의 오브젝트를 하나 또는 하나 이상의 카메라들이 오브젝트의 안쪽에서 바깥 방향으로 촬영할 수 있다. 예를 들어, 실시예들에 따라 카메라는 4개일 수 있다.
실시예들에 따른 포인트 클라우드 데이터 또는 포인트 클라우드 콘텐츠는 다양한 형태의 3D 공간상에 표현되는 객체/환경의 비디오 또는 정지 영상일 수 있다.
1. 실시예들에 따른 Point Cloud 콘텐츠 획득 과정:
Point Cloud 비디오의 캡처, 합성 또는 생성 과정 등을 통한 Point Cloud 비디오를 획득하는 과정을 의미한다. 획득 과정에 의해 다수의 Point들에 대한 3D 위치(x, y, z)/속성 (color, reflectance, transparency 등) 데이터, 예를 들어, PLY(Polygon File format or the Stanford Triangle format) 파일 등이 생성 될 수 있다. 여러 개의 프레임을 갖는 비디오의 경우 하나 이상의 파일들이 획득될 수 있다. 캡처 과정에서 캡처와 관련된 메타데이터가 생성될 수 있다.
1.1 실시예들에 따른 장비를 통한 Point Cloud 비디오 캡처:
Point Cloud 콘텐츠 캡처를 위해서 깊이(depth)를 획득 할 수 있는 카메라 장비(적외선 패턴 프로젝터와 적외선 카메라의 조합)와 깊이 정보에 대응되는 색상 정보를 추출 할 수 있는 RGB 카메라들의 조합으로 구성될 수 있다. 또는 레이저 펄스를 쏘고 반사되어 돌아오는 시간을 측정하여 반사체의 위치 좌표를 측정하는 레이더 시스템을 이용하는 라이다(LiDAR)를 통해 깊이 정보를 추출할 수 있다. 깊이 정보로부터 3차원 공간상의 점들로 구성된 지오메트리(geometry)의 형태를 추출하고, RGB 정보로부터 각 점의 색상/반사를 표현하는 속성(attribute)을 추출할 수 있다. Point Cloud 콘텐츠는 점들에 대한 위치(x, y, z)와 색상(YCbCr 또는 RGB) 또는 반사율(r) 정보로 구성될 수 있다.
Point Cloud 콘텐츠는 외부 환경을 캡처하는 아웃워드-페이싱(outward-facing) 방식과, 중심 객체를 캡처하는 인워드-페이싱(inward-facing) 방식이 있을 수 있다. VR/AR 환경에서 객체(예-캐릭터, 선수, 물건, 배우 등 핵심이 되는 객체)를 360도로 사용자가 자유롭게 볼 수 있는 Point Cloud 콘텐츠로 구성할 경우, 캡처 카메라의 구성은 인워드-페이싱 방식을 사용하게 될 수 있다. 자율 주행과 같이 자동차에서 현재 주변 환경을 Point Cloud 콘텐츠로 구성할 경우, 캡처 카메라의 구성은 아웃워드-페이싱 방식을 사용하게 될 수 있다. 여러대의 카메라를 통해 Point Cloud 콘텐츠가 캡처 될 수 있기 때문에, 카메라들 사이의 글로벌 공간 좌표계(global coordinate system)를 설정하기 위해 콘텐츠를 캡처 하기 전에 카메라의 캘리브레이션 과정이 필요할 수도 있다.
1.2 실시예들에 따른 장비 외 Point Cloud 비디오 합성:
실시예들에 따른 Point Cloud 콘텐츠는 다양한 형태의 3D 공간상에 나타내어지는 객체/환경의 비디오 또는 정지 영상일 수 있다.
그 외에 Point Cloud 콘텐츠의 획득 방법은 캡처 된 Point Cloud 비디오를 기반으로 임의의 Point Cloud 비디오가 합성 될 수 있다.
또는 컴퓨터로 생성된 가상의 공간에 대한 Point Cloud 비디오를 제공하고자 하는 경우, 실제 카메라를 통한 캡처가 수행되지 않을 수 있다. 이 경우 단순히 관련 데이터가 생성되는 과정으로 해당 캡처 과정이 갈음될 수 있다.
1.3 실시예들에 따른 Point Cloud 비디오 후처리:
캡처된 Point Cloud 비디오는 콘텐츠의 질을 향상시키기 위한 후처리가 필요할 수 있다.
영상 캡처 과정에서 카메라 장비가 제공하는 범위에서 최대/최소 깊이 값을 조정할 수 있지만 그 이후에도 원하지 않는 영역의 points 데이터들이 포함될 수 있어서 원하지 않는 영역(예, 배경)을 제거 한다거나, 또는 연결된 공간을 인식하고 구멍(spatial hole)을 메우는 후처리를 수행할 수 있다.
또한 공간 좌표계를 공유하는 카메라들로부터 추출된 Point Cloud는 캘리브레이션 과정을 통해 획득된 각 카메라의 위치 좌표를 기준으로 각 point들에 대한 글로벌 좌표계로의 변환 과정을 통해 하나의 콘텐츠로 통합될 수 있다. 이를 통해 하나의 넓은 범위의 Point Cloud 콘텐츠를 생성할 수도 있고, 또는 point들의 밀도가 높은 Point Cloud 콘텐츠를 획득할 수도 있다.
도4는 실시예들에 따른 포인트 클라우드 인코더(Point Cloud Encoder)를 나타낸다.
실시예들에 따른 포인트 클라우드 인코더는 좌표계 변환부(Transformation Coordinates, 40000), 양자화(Quantize and Remove Points (Voxelize), 40001), 옥트리 분석부(Analyze Octree, 40002), 서페이스 어프록시메이션 분석부(Analyze Surface Approximation, 40003), 아리스메틱 인코더(Arithmetic Encode, 40004), 지오메트리 리컨스럭션부(Reconstruct Geometry, 40005), 컬러 변환부(Transform Colors, 40006), 속성 변환부(Transfer Attributes, 40007), RATH 변환부(40008), LOD생성부(Generated LOD, 40009), Lifting 변환부(40010), 계수 양자화부(Quantize Coefficients, 40011) 및/또는 아리스메틱 인코딩부(Arithmetic Encode, 40012)를 포함한다.
실시예들에 따른 좌표계 변환부(Transformation Coordinates, 40000)는 포지션들(positions)을 수신하여 좌표계(coordinate)로 변환한다. 예를 들어, 포지션들이 3차원 (XYZ) 위치 정보로 변환될 수 있다. 실시예들에 따른 3차원 공간 상의 위치 정보는 지오메트리 정보로 지칭될 수 있다.
실시예들에 따른 양자화(Quantize and Remove Points (Voxelize), 40001)는 지오메트리 정보를 양자화한다. 예를 들어, 포인트들의 최소 위치 값을 기준으로 포인트들의 위치 값을 조정하여 양자화할 수 있다. 실시예들에 따른 양자화(40001)는 포인트들을 복셀화(voxelization)할 수 있다. 복셀화는 3차원 공간 상의 위치정보를 표현하는 최소한의 유닛을 의미한다.
실시예들에 따른 옥트리 분석부(Analyze Octree, 40002)는 복셀을 옥트리(octree) 구조로 나타낸다. 실시예들에 따른 옥트리는 복셀 공간을 팔진 트리 구조에 기반하여 포인트들을 표현한다.
실시예들에 따른 서페이스 어프록시메이션 분석부(Analyze Surfacce Approximation, 40003)는 옥트리를 분석하고, 근사화할 수 있다. 실시예들에 따른 옥트리 분석 및 근사화는 효율적으로 옥트리 및 복셀화를 제공하기 위해서 다수의 포인트들을 포함하는 영역에 대해 복셀화하기 위해 분석하는 과정이다.
실시예들에 따른 아리스메틱 인코더(Arithmetic Encode, 40004)는 옥트리 및/또는 근사화된 옥트리를 인코딩한다. 예를 들어, 인코딩 방식은 Arithmetic 인코딩 방법을 포함한다. 인코딩의 결과로 지오메트리 비트스트림(Geometry bitstream)이 생성된다.
실시예들에 따른 지오메트리 리컨스럭션부(Reconstruct Geometry, 40005)는 옥트리 및/또는 근사화된 옥트리를 재구성한다. 지오메트리 리컨스럭션부(40005)는 포인트들의 분포를 분석한 결과에 기반하여 옥트리/복셀을 재구성한다.
실시예들에 따른 컬러 변환부(Transform Colors, 40006)는 속성들(Attribute)에 포함된 컬러 값(또는 텍스쳐)을 변환한다. 예를 들어, 색상 정보의 포맷이 변환될 수 있다. 실시예들에 따른 컬러 변환부(번호)는 컬러 값에 따라 옵셔널할 수 있다. 실시예들에 따른 컬러 변환(40006)은 포인트 클라우드 속성 코딩 방식 중의 하나이다.
실시예들에 따른 속성 변환부(Transfer Attributes, 40007)는 포지션들 및/또는 재구성된 지오메트리 정보에 기반하여 속성 정보를 변환한다. 예를 들어, 속성 변환부(번호)는 복셀에 포함된 포인트의 위치 값을 기반으로 그 위치의 포인트가 가지는 속성값을 변환할 수 있다. 실시예들에 따른 속성 변환(40007)은 포인트 클라우드 속성 코딩 방식 중의 하나이다.
실시예들에 따른 RATH 변환부(40008)는 재구성된 지오메트리 정보에 기반하여 속성 정보를 예측하는 인코딩 방식이다. 예를 들어, RATH 변환부(40008)는 옥트리의 하위 레벨에 있는 노드와 연관된 속성 정보에 기반하여 옥트리의 상위 레벨에 있는 노드의 속성 정보를 예측할 수 있다. 실시예들에 따른 RATH 변환(40008)은 포인트 클라우드 속성 코딩 방식 중의 하나이다.
실시예들에 따른 LOD생성부(Generated LOD, 40009)는 포인트들에 대한 LOD(Level of Detail)을 생성한다. 실시예들에 따른 LOD는 포인트들을 구별하는 그룹의 유닛이다. 포인트들은 LOD 별로 분류될 수 있다. 실시예들에 따른 LOD 방식을 사용한 속성 코딩 방식을 예측 변환(Prediction Transformation)이라고 지칭할 수 있다.
실시예들에 따른 Lifting 변환부(40010)는 포인트들을 LOD별로 구성하고, 포인트 클라우드의 속성값을 가중치에 기반하여 변환하는 방법을 말한다. 실시예들에 따른 Lifting 변환(40010)은 포인트 클라우드 속성 코딩 방식 중의 하나이다.
실시예들에 따른 포인트 클라우드 속성 코딩 방식은 RAHT변환을 사용하거나, LOD생성 및 리프팅 변환을 사용하거나, RAHT/LOD/Lifting 조합에 따른 방식을 사용할 수 있다.
실시예들에 따른 계수 양자화부(Quantize Coefficients, 40011)은 속성 코딩된 포인트 클라우드 데이터를 계수에 기반하여 양자화한다.
실시예들에 따른 아리스메틱 인코딩부(Arithmetic Encode, 40012)는 양자화된 포인트 클라우드 데이터를 아리스메틱 코딩 스킴에 기반하여 인코딩한다.
실시예들에 따른 포인트 클라우드 인코더의 각 구성요소는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 조합 등에 의해 수행될 수 있다. 실시예들에 따른 포인트 클라우드 인코더의 각 구성요소의 상세 동작은 이하에서 설명한다.
2. 실시예들에 따른 Point Cloud 데이터 인코딩 과정:
획득된 Point Cloud 데이터는 네트워크의 상황 혹은 애플리케이션 등에 따라 Point Cloud 콘텐츠의 질(예를 들어 무손실-lossless, 손실-lossy, near-lossless)을 조절하기 위하여 점들을 위치/색상 정보를 재구성하여 인코딩 과정 등을 거칠 수 있다.
Point들의 위치 정보 재구성/인코딩 과정을 지오메트리 코딩이라고 하고, 각 point 들과 연관된 속성 (예를 들어 색상) 정보 재구성/인코딩 과정을 속성(attribute) 코딩이라고 지칭할 수 있다.
2.1 실시예들에 따른 Point Cloud 지오메트리 코딩:
획득된 전체 Point Cloud의 각 point들을 손실 없이 전송할 수도 있지만, 그럴 경우 콘텐츠 데이터 크기가 크기 때문에 리얼타임 스트리밍이 가능하지 않다. 사례중에 30 fps의 경우 60 Gbps인 Point Cloud 콘텐츠가 있다. 콘텐츠 데이터 사이즈는 캡처 장비에 따라 다를 수 있다. Point Cloud 콘텐츠 서비스를 제공하기 위해서는 최대 타깃 비트율(bitrate)에 맞추어 콘텐츠를 재구성 하는 과정이 필요하다.
2.1.1 실시예들에 따른 Point들의 위치에 대한 양자화(quantization):
획득된 전체 Point Cloud의 각 point들의 위치 정보를 재구성하는 첫번째 단계는 위치 정보에 대한 양자화 과정이다. 전체 point들의 최소 x, y, z 위치 값을 찾아서 각 point들의 위치 값에서 빼주고, 설정된 양자 스케일(quantization scale)값을 곱해준 후, 가까운 정수(integer) 값으로 내리거나 올려준다.
2.1.2 실시예들에 따른 Point들의 복셀화(voxelization):
양자화 과정이 적용된 Point Cloud의 각 point들을 재구성하기 위해서 point들의 위치 정보를 기반으로 옥트리(octree)기반 복셀화(voxelization)를 수행한다.
2차원 이미지/비디오의 정보를 가지고 있는 최소 단위인 픽셀(pixel)과 마찬가지로 3차원에 존재하는 Point들의 정보를 저장하기 위하여 3차원 공간을 각각의 축(x, y, z축)을 기반으로 유닛(unit=1.0)이 되도록 나누어 생기는 3차원 큐빅(cubic) 공간을 복셀(voxel)이라고 하며 3차원 공간 상에 존재하는 point을 특정 복셀로 매칭하는 과정을 복셀화 한다고 한다. 복셀은 볼륨(volume)과 픽셀(pixel)을 조합한 혼성어이다. 복셀은 복셀군(voxel group)과의 위치 관계에서 공간 좌표를 추정 할 수 있으며, 픽셀과 마찬가지로 색상 또는 반사율 정보를 가지고 있을 수 있다.
도5는 실시예들에 따른 3차원 공간상의 복셀을 나타낸다.
하나의 복셀에 하나의 point만 존재하지 않을 수 있다. 하나의 복셀에 여러 개의 point 관련 정보를 가지고 있을 수 있다. 또는 하나의 복셀에 하나의 포인트 정보로 통합해서 가지고 있게 할 수도 있다. 이러한 조절은 선택적으로 수행될 수 있다. 하나의 복셀에 하나의 포인트로 표현되는 경우, 복셀 내에 존재하는 point들에 대한 위치 값을 기반으로 복셀의 중앙점의 위치값이 설정될 수 있으며 이와 연관된 속성 변환 (attribute transform) 과정을 수행할 필요가 있다. 예를 들어 속성 변환 과정은 복셀에 포함된 포인트들 또는 복셀의 중앙 위치 값과 특정 반경 내에 이웃하고 있는 포인트들의 색상 또는 반사율의 평균값으로 조정할 수도 있다(2.2.2절 참조).
도6은 실시예들에 따른 옥트리와 occupancy 코드의 예시를 나타낸다.
2.1.3 실시예들에 따른 Occupied 복셀 관리를 위한 옥트리(octree):
이러한 복셀의 영역/위치를 효율적으로 관리하기 위해서 Point Cloud 콘텐츠는 옥트리를 사용한다.
2차원 이미지의 공간을 효율적으로 관리하기 위해서 전체 공간을 x축, y축 기반으로 나누면 4개의 공간이 생기고, 4개의 각각의 공간을 다시 x축, y축 기반으로 나누면 다시 각각의 작은 공간에 대해서 4개의 공간이 생기게 된다. 리프 노드(leaf node)가 픽셀이 될 때까지 영역을 나눠주고, 영역의 크기 및 위치 별로 효율적으로 관리하기 위해 쿼드트리(quadtree)를 자료구조를 사용할 수 있다. 이와 마찬가지로 3차원 공간을 공간의 위치 및 크기 별로 효율적으로 관리하기 위해 같은 방식을 적용한다. 단, z축이 추가 되기 때문에, x축, y축, z축 기반으로 나누면 8개의 공간이 생기고, 8개의 각각의 공간을 다시 x축, y축, z축 기반으로 나누면 다시 각각의 작은 공간에 대해서 8개의 공간이 생기게 된다. 리프 노드가 복셀이 될 때까지 영역을 나눠주고, 영역의 크기 및 위치 별로 효율적으로 관리하기 위해 8개의 자식 노드(children node) 영역을 관리할 수 있는 옥트리(octree) 자료구조를 사용할 수 있다.
옥트리를 사용하여 point들의 위치가 반영된 복셀을 관리하기 때문에 옥트리의 전체 볼륨은(0,0,0) ~ (2d, 2d,2d)로 설정 되어야 한다. 2d는 Point Cloud 비디오의 전체 포인트를 감싸는 가장 작은 바운딩 박스를 구성하는 값으로 설정되고, d는 옥트리의 깊이(depth)가 된다. d값을 구하는 식은 다음과 같을 수 있다. (x_n^int,y_n^int,z_n^int )는 양자화 과정이 적용된 point들의 위치 값이다.
Figure PCTKR2019016375-appb-img-000001
옥트리는 occupancy 코드로 표현될 수 있다. 각 노드 내에 point가 포함되어 있으면 1로, point가 없으면 0으로 표현 된다. 각 노드는 8개의 자식 노드에 대한 occupancy 여부를 나타내는 8bit의 비트맵(bitmap)을 가지고 있다. occupancy 코드를 arithmetic 코더를 통해 엔트로피 코딩을 수행한다. 생성된 occupancy 코드를 바로 인코딩 할 수도 있고, 압축 효율을 높이기 위해 인트라/인터 코딩과정을 통해서 인코딩 될 수도 있다. 수신기에서는 occupancy 코드를 통해서 옥트리를 재구성 할 수 있다.
2.1.4 실시예들에 따른 Sparse 옥트리(octree)를 위한 처리 방안:
Point Cloud 비디오의 point들에 대한 위치 정보 저장을 위해 복셀화 및 옥트리를 사용하지만 point들이 많은 없는 특정 영역의 경우, 모든 영역을 복셀화 시키는 것이 비효율적일 수도 있다. 예를 들어, 특정 영역에는 point들이 거의 존재하지 않아서 전체 옥트리를 구성할 필요가 없을 수 있다. 이러한 경우는 조기 종료(early termination) 방안이 필요하다. 이러한 경우에 대비해서, 특정 영역의 경우, 즉 옥트리의 특정 노드의 경우(그러나 노드가 리프 노드가 아닌 경우), 노드를 8개의 서브 노드(자식 노드)로 나누는 대신 해당 영역에 대해서만 직접 point들의 위치를 전송할 수도 있고, 또는 표면 모델(surface model)을 사용해서 노드 영역 내의 포인트의 위치를 복셀 기반으로 재구성할 수 있다.
특정 노드에 대해서 직접 각 point들의 위치를 전송하는 직접 모드(direct mode)의 경우를 가능하게 하기 위해서 조건 만족 여부를 체크할 수 있다. 직접 모드 사용 옵션이 활성화 되어 있어야 하며, 해당 노드는 리프 노드여서는 안 되고, 특정 노드 내에 한계치(threshold) 이하의 points들이 존재하는 경우이어야만 하며, 그리고 전체적으로 포인트의 위치를 직접 전송할 수 있는 총 points개수의 한계를 넘으면 안 된다. 이 모든 경우는 만족하는 경우, 해당 노드에 대해서 직접적으로 point의 위치 값을 arithmetic 코더로 엔트로피 코딩하여 전송할 수 있다.
2.1.5 실시예들에 따른 지오메트리 트라이숩 적용 방안:
옥트리의 특정 레벨(레벨은 옥트리의 깊이 d보다는 작은 경우)을 정하고, 그 레벨부터는 표면 모델(surface model)을 사용하여 노드 영역내의 point의 위치를 복셀 기반으로 재구성할 수 있는 트라이숩 모드(trisoup mode)를 선택적으로 적용할 수도 있다. 트라이숩 모드 사용시, 트라이숩 방법이 적용될 레벨을 지정한다. 예를 들어, 지정된 레벨이 옥트리의 깊이와 같으면 트라이숩 모드는 적용되지 않는다. 지정된 레벨은 옥트리의 깊이값 보다 작아야 트라이숩 방법이 적용된다. 지정된 레벨의 노드들의 3차원 정육면체 영역을 블록(block)이라고 한다. 하나의 블록은 하나 이상의 복셀을 포함할 수 있다. 상기 블록 또는 복셀은 브릭(brick)에 대응될 수도 있다. 각 블록은 12개의 엣지(edge)를 가지고 있을 수 있으며, 각 엣지가 point를 가진 복셀(occupied voxel)과 인접했는지 여부에 체크한다. 각 엣지는 여러 개의 occupied 복셀들과 인접할 수 있다. 복셀과 인접한 edge의 특정 위치를 vertex라고 하며, 하나의 엣지에 여러 개의 occupied 복셀들과 인접한 경우에는 해당 위치들의 평균 위치를 vertex로 정할 수 있다. Vertex 가 존재하는 경우 엣지의 시작점(x, y, z), 엣지의 방향벡터(ΔΔΔvertex 위치 값 (엣지 내의 상대적 위치 값)들을 arithmetic 코더로 엔트로피(entropy) 코딩할 수 있다.
이와 같은 방법을 적용하는 경우, 삼각형 재구성(triangle reconstruction), 업-샘플링(up-sampling), 복셀화 과정을 통하여 지오메트리 복원 과정을 수행할 수 있다.
엣지의 시작점, 엣지의 방향 벡터와 vertex의 위치값을 기반으로 삼각형을 재구성하기 위해서는, 우선 ①각 vertex들의 중심(centroid)값을 계산하고, ②각 vertex 값에서 중심 값을 뺀 값들에 ③자승을 수행하고 그 값을 모두 더한 값을 구한다.
Figure PCTKR2019016375-appb-img-000002
더해진 값의 최소값을 구하고, 최소값이 있는 축에 따라서 프로젝션 과정을 수행한다. 예를 들어 x 요소(element)가 최소인 경우, 각 vertex를 블록의 중심으로 기준으로 x축으로 프로젝션 시키고, (y, z) 평면으로 프로젝션 시킨다. (y, z)평면으로 프로젝션 시키면 나오는 값이 (ai, bi)라면 atan2(bi, ai)를 통해 θ값을 구하고, θ값을 기준으로 vertex들을 정렬한다. Vertex의 수에 따라서 삼각형을 구성하는 방식은 정렬된 순서에 맞춰서 다음 테이블과 같이 조합하여 삼각형들을 생성한다. 예를 들어, 4개의 vertices가 존재한다면, 두 개의 삼각형을 구성할 수 있다. 첫번째 삼각형은 정렬된 vertices로부터 첫번째, 두번째, 세번째 vertex로 구성되며, 두번째 삼각형은 세번째, 네번째, 첫번째 vertex로 구성된다.
Figure PCTKR2019016375-appb-img-000003
업샘플링 과정은 삼각형의 엣지를 따라서 중간에 점들을 추가하여 복셀화 하기 위해서 수행된다. 업샘플링 요소 값(upsampling factor)과 블록의 너비를 기준으로 추가 점들을 생성한다. 이러한 점들을 refined vertices라고 한다. Refined vertices들을 복셀화 하고, 속성 코딩 시 이렇게 복셀화 된 위치 값을 기준으로 이후 속성 (예, 색상) 코딩한다.
실시예들에 따라 트라이 숩 과정은 선택적(optional) 과정이다.
도7은 실시예들에 따른 이웃 노드 패턴의 예시를 나타낸다.
2.1.6 실시예들에 따른 지오메트리 코딩:
Point cloud 콘텐츠의 point의 위치/색상 데이터는 재구성되어 arithmetic 코더를 사용하여 엔트로피 코딩을 수행할 수 있다. Point Cloud 비디오의 데이터 크기가 크기 때문에, 압축 효율은 중요한 요소가 될 수 있다. 따라서 context adaptive arithmetic 코딩을 적용을 통해 압축 효율을 높이는 방안이 적용될 수 있다.
지오메트리 코딩은 옥트리 각 노드의 occupancy 코드를 인코딩 한다. Occupancy 코드를 바로 arithmetic 코드를 사용하여 엔트로피 코딩을 할 수 있지만, 주변 이웃 노드들의 occupancy 여부를 기반(인트라 기반)으로 또는 이전 프레임의 occupancy 코드를 기반(인터 기반)으로 adaptive하게 인코딩 될 수도 있다. 여기에서 프레임은 같은 시간에 생성된 point cloud 데이터의 집합을 지칭할 수 있다. 몇 개의 이웃 노드들를 참조하는지에 따라 압축 효율이 달라질 수 있다.비트가 커지면 복잡해지지만 한쪽으로 치우치게 만들어서 압축 효율이 높아질 수 있다. 예를 들어 3-bit context를 가지면, 23 = 8가지로 나누어 코딩 해야 한다. 나누어 코딩을 하는 부분은 구현의 복잡도에 영향을 준다. 따라서 압축의 효율과 복잡도의 적정 수준을 맞출 필요가 있다.
옥트리의 각 노드에서 이웃 노드들의 occupancy 여부를 통해 adaptive하게 코딩을 수행할 수 있다. 이를 위해, 우선, 이웃 노드의 occupancy 여부로 이웃 노드 패턴(neighbor pattern) 값을 구한다. 이웃 노드의 위치별 bit 순서는 도면과 같다. 예를 들어, 1, 2, 4, 8에 해당하는 이웃 노드가 occupied되어 있다면, 1, 2, 4, 8을 더한값인 15가 해당 노드의 이웃 노드 패턴 값이 된다. 일반적으로 노드를 중심으로 면을 공유하는 6개의 이웃 노드를 참조한다. 6개의 이웃 노드들의 occupancy 여부에 따라 구해진 이웃 노드 패턴은 26=64값으로 구성되어 64가지 서로 다른 코딩을 수행할 수도 있다. 또는 내부적으로 64를 10 또는 6으로 변경하는 테이블을 통해서 이웃노드 패턴 값을 변경하여 복잡도를 줄여서 인코딩 할 수 있다. 현재 노드의 occupied 코드와 이웃 노드 패턴 값을 통해 인코딩을 수행하여 압축 효율을 높일 수 있다.
실시예들에 따라 인트라/인터 코딩 과정은 선택적(optional) 과정으로써, 생략될 수 있다.
2.2 실시예들에 따른 Point Cloud 속성 코딩:
복셀화가 적용되고, 직접 모드 시에는 Point Cloud 데이터의 앞쪽으로 재배치하고, 트라이숩 모드 시에는 삼각형으로 재구성, 업샘플링, 복셀화 과정이 추가되어 재구성된 지오메트리를 기반으로 연관된 속성 정보에 대한 인코딩 과정을 수행할 수 있다. 속성 정보는 지오메트리에 종속적이기 때문에, 재구성된 지오메트리 기반으로 속성 정보를 코딩 하는 과정이 필요할 수 있다.
Point Cloud 속성 데이터는 색상(YCbCr 또는 RGB) 또는 반사율(r) 정보 등으로 구성될 수 있다. 두 가지 모두 같은 방법의 코딩이 적용될 수 있다. 단지, 색상은 3 요소(elements)를 가지고 반사율은 1개의 요소를 가진다는 차이이며, 각 요소마다 독립적으로 처리 될 수 있다.
속성 코딩 방법은 예측 변환(prediction transform), 리프팅 변환(lifting transform), RAHT(Region Adaptive Hierarchical transform) 방법이 있으며, 선택적으로 적용할수 있다.
2.2.1 실시예들에 따른 색상 변환 (Transform Color):
색상을 RGB에서 YCbCr로 변경하여 코딩 작업을 수행할 수 있다. 색상 변환이란 이와 같은 색상 포맷의 변환 과정을 의미한다.
2.2.2 실시예들에 따른 속성 변환 (Attribute Transform):
하나의 복셀에 하나의 point만 존재하는 경우, 하나의 복셀에 하나의 point 정보로 통합하여 나타내기 위해 복셀 내에 존재하는 point들에 대한 위치 값은 복셀의 중앙점으로 설정되고, 그에 따라 연관된 속성 값을 변환하는 과정이 필요할 수 있다. 또한 트라이숩 모드로 수행된 경우도 속성 변환 과정을 수행한다.
속성 변환 과정은 복셀의 중앙 위치 값과 특정 반경 내에 이웃하고 있는 point들의 색상 또는 반사율 등 속성 값들의 평균값 또는 중앙 위치와의 거리에 따른 가중치가 적용된 평균값으로 계산 될 수도 있다. 이 경우, 각 복셀은 위치와 계산된 속성값을 갖게 된다.
특정 위치/반경 내에 존재하는 이웃 point들을 탐색 시, K-D 트리 또는 몰톤 코드를 활용할 수 있다. K-D 트리는 이진 탐색 트리(binary search tree)로 빠르게 최단 이웃점 탐색(Nearest Neighbor Search-NNS)이 가능하도록 point들을 위치 기반으로 관리할 수 있는 자료 구조를 지원한다. 몰튼 코드는 모든 point들에 대한 3차원 위치 정보(x, y, z) 의 bit들 믹싱하여 생성할 수 있다. 예를 들어 (x, y, z)값이 (5, 9, 1)일 경우 bit로 나타내면 (0101, 1001, 0001)이 되고, 이 값을 z, y, x 순서로 bit를 bit 인덱스에 맞춰 믹싱하면 010001000111이 되고, 이 값은 1095이다. 1095가 (5, 9, 1)의 몰톤 코드 값이 된다. 몰튼 코드 기준으로 point들을 정렬하고 depth-first traversal 과정을 통해 최단 이웃점 탐색(NNS)이 가능하다.
속성 변환 과정 이후, 속성 코딩을 위한 다른 변환 과정에서도 최단 이웃점 탐색(NNS)이 요구되는 경우가 있으며, 이를 위해 K-D 트리 또는 몰톤 코드를 활용할 수 있다.
도8은 실시예들에 따른 LOD별 Point Cloud 콘텐츠의 Point 구성의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드는 상세 정도 LOD(Level Of Detail)에 따라서 그룹 별로 분류될 수 있다. 도면과 같이 좌측에서 우측으로 갈수록 상세 정도가 증가한다. 다시 말해, 포인트들 간의 거리가 좌측에 가까울수록 스파스(sparse)하고, 우측으로 갈수록 포인트들 간의 거리가 가까워진다.
2.2.2.1실시예들에 따른 예측 변환:
예측 변환은 LOD(Level Of Detail) 기법이 적용된 방법이다. 각 point는 설정된 LOD 거리값을 기준으로 LOD 값을 계산하여 설정한다. 예를 들어, LOD 값에 따른 Point들의 구성은 다음 그림과 같을 수 있다.
도9는 실시예들에 따른 LOD별 Point Cloud 콘텐츠의 Point 구성의 예시를 나타낸다.
실시예들에 따른 포인트 클라우드가 분포되어 있는 경우, Original order는 예를 들어 포인트들 P0 내지 P9의 순서를 나타낸다.
실시예들에 따라 LOD생성에 의해 LOD별로 포인트 클라우드를 분리하면, 예를 들어, P0, P5, P4, P1를 포함하는 그룹은 LOD0에 속하고, P1, P6, P3까지 포함하는 그룹은 LOD1에 속하고, P9, P8, P7까지 포함하는 그룹은 LOD2에 속할 수 있다. LOD-based order는 LOD그룹의 순서를 나타낸다.
Point Cloud 내에 있는 각 point들은 LOD 별로 분리될 수 있고, LOD별 Point들의 구성은 해당 LOD 값 보다 더 낮은 LOD에 속한 point들도 함께 포함한다. 예를 들어 LOD 레벨 2이면, LOD 레벨1과 2에 속하는 모든 point들에 해당한다.
예측 변환을 위해, Point Cloud의 각 point들에 대한 예측기(predictor)를 생성한다. 따라서 N개의 point들이 있다면, N개의 예측기가 생성될 수 있다. 예측기는 각 point들에 대한 LOD 값과 LOD별 설정된 거리 내에 존재하는 이웃 point들에 대한 인덱싱 정보와 이웃 point들과의 거리 값을 기반으로 가중치(=1/거리) 값을 계산하여 설정할 수 있다.
각 point의 예측기에 설정된 이웃 point들의 속성(색상 또는 반사율) 값들에 각 이웃 point들의 거리 기반으로 계산된 가중치 값을 곱한다. 이웃 point들의 가중치가 곱해진 색상 또는 반사율 값을 평균하여 해당 point의 예측된 속성 값으로 설정한다. 각 point의 색상 또는 반사율 값에서 예측된 속성값을 뺀 잔여(residual) 속성 값에 대한 양자화 과정을 수행한다. 속성에 대한 양자화 과정은 다음과 같다.
Figure PCTKR2019016375-appb-img-000004
Figure PCTKR2019016375-appb-img-000005
각 point의 예측기에 이웃 point들이 없으면, 현재 point의 색상/반사율 값을 직접 arithmetic 코더를 사용하여 엔트로피 코딩을 수행하고, 이웃 point들이 존재하면 point의 색상 또는 반사율 값에서 이웃 point들을 통해 예측된 속성값을 뺀 잔여 속성 값에 양자화 과정을 수행한 값을 arithmetic 코더를 사용하여 엔트로피 코딩 한다.
2.2.2.2 실시예들에 따른 리프팅 변환:
예측 변환과 리프팅 변환 과정은 LOD(Level of detail) 생성 과정을 통해 point들을 디테일 레벨의 집합으로 재구성한다. 재구성 방법은 앞서 설명하였다.
리프팅 변환은 각 point에 대한 예측기를 생성하고, 예측기에 계산된 LOD 설정하고, 이웃 point 등록하고, 이웃 point들과의 거리에 따른 가중치 설정하는 과정은 모두 수행한다. 예측 변환과의 차이점은 속성값에 가중치를 누적 적용하는 방법이다. 방법은 다음과 같다.
1) 각 point들에 대한 가중치 값을 저장하는 배열 QW(QuantizationWieght)가 별도로 존재한다. QW의 모든 요소들의 초기값은 1.0이다. 예측기에 등록된 이웃 노드의 예측기 인덱스의 QW 값에 현재 point의 예측기의 가중치를 곱한 값을 더한다.
2) 예측된 속성 값을 계산하기 위하여 point의 속성값에 가중치를 곱한 값을 기존 속성값에서 뺀다. 이 과정이 리프트 예측(lift prediction) 과정이다.
3) updateweight와 update라는 임시 배열을 생성하고 0으로 초기화한다.
4) 모든 예측기에 대해서 계산된 가중치에 예측기 인덱스에 해당하는 QW에 저장된 가중치를 추가로 곱해서 나온 가중치를 updateweight에 이웃 노드의 인덱스로 누적으로 합산하고, update에는 이웃 노드의 인덱스의 속성값에 곱한 값을 누적 합산한다.
5) 모든 예측기에 대해서 예측기 인덱스의 updateweight의 가중치 값으로 update의 속성 값을 나누고, 다시 기존 속성값에 더한다. 이 과정이 리프트 업데이트(lift update) 과정이다.
6) 모든 예측기에 대해서, 리프트 업데이트 과정을 통해 업데이트된 속성값에 리프트 예측 과정을 통해 업데이트 된(QW에 저장된) 가중치를 추가로 곱해서 나온 값을 양자화 하고, 양자화 수행한 값을 arithmetic 코더를 사용하여 엔트로피 코딩 한다.
2.2.2.3 실시예들에 따른 RAHT 변환:
RAHT 변환은 옥트리의 lower 레벨에 있는 노드와 연관된 속성 정보를 사용해서 상위 레벨에 있는 노드들의 속성 정보를 예측하는 방법으로 옥트리 백워드 스캔을 통한 속성 정보 인트라 코딩 방법이다. 복셀에서 전체 영역으로 스캔하며 각 스텝에서 복셀을 더 큰 블록으로 합치면서 루트 노드까지 수행한다. Occupied 노드에 대해서만 병합 과정을 수행하기 때문에 occupied되지 않은 empty 노드의 경우 바로 상위 레벨의 노드를 가지고 병합을 수행한다.
Figure PCTKR2019016375-appb-img-000006
3. 실시예들에 따른 전송 과정:
전송 과정은 인코딩 과정을 거친 Point Cloud 콘텐츠의 인코딩 된 지오메트리 및 속성 데이터와 메타데이터들을 처리하여 전송하는 과정일 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있다.생성된 point cloud 콘텐츠의 지오메트리 및 속성 데이터, 관련 메타데이터 비트스트림들은 하나 이상의 트랙 데이터로 파일이 생성되거나 세그먼트로 인캡슐레이션될 수 있다. 전송을 위한 처리를 마친 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있다. 이 데이터들은 온 디맨드(On Demand) 방식으로 수신측으로 전달될 수도 있다. 수신측에서는 다양한 경로를 통해 해당 데이터를 수신할 수 있다. 한편, 인코딩 과정을 거친 Point Cloud 콘텐츠의 인코딩 된 지오메트리 및 속성 데이터와 메타데이터들은 미디어 파일 형태로 디지털 저장매체에 저장되어 수신측으로 전달될 수도 있다.
도10은 실시예들에 따른 포인트 클라우드 디코더(Point Cloud Decoder)의 블록 다이어그램(block diagram) 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 디코더는 포인트 클라우드 데이터에 대한 지오메트리 및/또는 어트리뷰트를 포함하는 비트스트림을 수신한다. 실시예들에 따른 지오메트리 디코더는 지오메트리를 디코딩하고, 실시예들에 따른 어트리뷰트 디코더는 어트리뷰트를 디코딩한다. 어트리뷰트 디코더는 디코딩된 지오메트리에 기반하여 어트리뷰트를 디코딩한다. 디코더는 디코딩된 지오메트리 및/또는 디코딩된 어트리뷰트에 기반하여 포인트 클라우드를 생성할 수 있다.
4. 실시예들에 따른 디코딩 과정:
디코딩 과정은 비트스트림을 입력받아 인코딩 동작에 대응하는 동작을 수행하여 Point Cloud 비디오/영상을 복원(디코딩)하는 과정을 포함할 수 있다.
도11은 실시예들에 따른 포인트 클라우드 디코더(Point Cloud Decoder) 예시를 나타낸다.
실시예들에 따른 포인트 클라우드 디코더는 실시예들에 따른 포인트 클라우드 인코더의 역과정을 수행할 수 있다.
실시예들에 따른 포인트 클라우드 디코더는 아리스메틱 디코더(arithmetic decode, 11000), 옥트리 합성부(synthesize octree, 11001), 서페이스 오프록시메이션 합성부(synthesize surface approximation, 11002), 지오메트리 리컨스럭션부(reconstruct geometry, 11003), 좌표계 역변환부(inverse transform coordinates, 11004), 아리스메틱 디코더(arithmetic decode, 11005), 역양자화부(inverse quantize, 11006), RAHT(11007), LOD생성부(generate LOD, 11008), 인버스 리프팅부(Inverse lifting, 11009), 및/또는 컬러 역변환부(inverse transform colors, 11010)를 포함한다.
실시예들에 따른 아리스메틱 디코더(arithmetic decode, 11000)는 수신한 비트스트림에 포함된 지오메트리를 아리스메틱 방식에 기반하여 디코딩한다.
실시예들에 따른 옥트리 합성부(synthesize octree, 11001)는 지오메트리로부터 옥트리를 생성할 수 있다.
실시예들에 따른 서페이스 오프록시메이션 합성부(synthesize surface approximation, 11002)는 디코딩된 지오메트리 및/또는 옥트리에 기반하여 서페이스를 합성할 수 있다.
실시예들에 따른 지오메트리 리컨스럭션부(reconstruct geometry, 11003)는 서페이스 및/또는 디코딩된 지오메트리에 기반하여 지오메트리를 재생성할 수 있다.
실시예들에 따른 좌표계 역변환부(inverse transform coordinates, 11004)는 지오메트리에 기반하여 좌표계를 인버스 변환하여 위치(포지션들, positions)를 획득할 수 있다.
실시예들에 따른 아리스메틱 디코더(arithmetic decode, 11005)는 수신한 비트스트림에 포함된 어트리뷰트를 아리스메틱 방식에 기반하여 디코딩한다.
실시예들에 따른 역양자화부(inverse quantize, 11006)는 디코딩된 어트리뷰트를 인버스 양자화를 한다.
실시예들에 따른 RAHT(11007), 실시예들에 따른 LOD생성부(generate LOD, 11008) 및/또는 실시예들에 따른 인버스 리프팅부(Inverse lifting, 11009)는 실시예들에 따른 인코더의 대응하는 동작의 역과정을 수행할 수 있다.
실시예들에 따른 컬러 역변환부(inverse transform colors, 11010)는 컬러를 역변환하여 어트리뷰트(얘를 들어, 컬러값 등)을 획득할 수 있다.
디코딩 과정은 지오메트리 디코딩 과정 및 속성 디코딩 과정을 포함할 수 있다. 디코더는 입력 비트스트림 내 포함된 지오메트리 비트스트림으로부터 지오메트리를 복원(디코딩)할 수 있고, 상기 입력 비트스트림 내 포함된 어트리뷰트 비트스트림 및 상기 복원된 지오메트리를 기반으로 어트리뷰트를 복원(디코딩)할 수 있다. 상기 복원된 지오메트리에 따른 위치 정보 및 상기 디코딩된 어트리뷰트에 따른 (컬러) 텍스처 어트리뷰트를 기반으로 3차원의 Point Cloud 비디오/영상을 복원할 수 있다.
구체적으로, 디코더는 geometry bitstream을 arithmetic 코더로 디코딩 하여 지오메트리에 관한 정보를 획득하고, 지오메트리에 관한 정보를 기반으로 획득한 occupancy 코드를 통해 옥트리를 생성하고, 지오메트리를 재구성한다. 직접 모드가 적용된 경우, point의 위치 정보 값을 직접 가져와서 추가하고, 트라이숩 모드가 적용된 경우는 삼각형 재구성(triangle reconstruction), 업-샘플링(up-sampling), 복셀화 과정을 거쳐서 지오메트리를 복원한다(상세 내용은 2.1.3절 참고). 상기 복원된 지오메트리는 복원된(디코딩된) point cloud picture/frame without (any) attributes를 포함할 수 있다.
또한, 디코더는 수신한 attribute bitstream을 arithmetic 코더로 디코딩하여 속성(attribute)에 관한 정보를 획득하고, 상기 획득한 속성에 관한 정보 및 상기 지오메트리 코딩 과정에서 도출한 연관 위치(associated location) 정보를 기반으로 복원된(디코딩된) point cloud picture/frame with attributes를 생성할 수 있다. 속성 디코딩 과정에서 필요한 경우 inverse 양자화 과정을 수행하고, 예측/리프팅/RAHT에 대한 역변환 과정을 인코딩시 적용된 방법에 따라서 선택적으로 수행한 후, 필요한 경우 색상 변환을 수행하여 attributes를 복원할 수 있다.
5. 실시예들에 따른 렌더링 과정:
렌더링 과정은 3D 공간상에 Point Cloud 콘텐츠 데이터를 렌더링하고 디스플레이 하는 과정을 의미한다. 디코딩 과정을 통해 디코딩 된 point들의 위치 및 속성 정보를 가지고 원하는 렌더링 방식에 따라 렌더링 될 수 있다. Point Cloud 콘텐츠의 point들은 일정 두께를 갖는 정점, 해당 정점 위치를 중앙으로 하는 특정 최소 크기를 갖는 정육면체, 또는 정점 위치를 중앙으로 하는 원 등으로 렌더링 될 수도 있다. 사용자는 VR/AR 디스플레이 또는 일반 디스플레이 등을 통하여 렌더링 된 결과의 전부 또는 일부 영역을 볼 수 있다.
6. 실시예들에 따른 피드백 과정:
피드백 과정은 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하거나 수신측의 디코딩에 전달하는 과정을 포함할 수 있다. 피드백 과정을 통해 Point Cloud 비디오 소비에 있어 인터랙티비티(interactivity) 가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션(Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트(Viewport) 정보 등이 전달될 수 있다. 실시예에 따라, 사용자는 VR/AR/MR/자율주행 환경 상에 구현된 것들과 상호작용 할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
헤드 오리엔테이션 정보는 사용자의 머리 위치, 각도, 움직임 등에 대한 정보를 의미할 수 있다. 이 정보를 기반으로 사용자가 현재 Point Cloud 비디오 내에서 보고 있는 영역에 대한 정보, 즉 뷰포트 정보가 계산될 수 있다.
뷰포트 정보는 현재 사용자가 Point Cloud 비디오에서 보고 있는 영역에 대한 정보일 수 있다. 이를 통해 게이즈 분석(Gaze Analysis) 이 수행되어, 사용자가 어떠한 방식으로 Point Cloud 비디오를 소비하는지, Point Cloud 비디오의 어느 영역을 얼마나 응시하는지 등을 확인할 수도 있다. 게이즈 분석은 수신측에서 수행되어 송신측으로 피드백 채널을 통해 전달될 수도 있다. VR/AR/MR 디스플레이 등의 장치는 사용자의 머리 위치/방향, 장치가 지원하는 수직(vertical) 혹은 수평(horizontal) FOV 등에 근거하여 뷰포트 영역을 추출할 수 있다.
실시예에 따라, 전술한 피드백 정보는 송신측으로 전달되는 것 뿐 아니라, 수신측에서 소비될 수도 있다. 즉, 전술한 피드백 정보를 이용하여 수신측의 디코딩, 렌더링 과정 등이 수행될 수 있다. 예를 들어, 헤드 오리엔테이션 정보 및/또는 뷰포트 정보를 이용하여 현재 사용자가 보고 있는 영역에 대한 Point Cloud 비디오만 우선적으로 디코딩 및 렌더링 될 수도 있다.
여기서 뷰포트(viewport) 내지 뷰포트 영역이란, 사용자가 Point Cloud 비디오에서 보고 있는 영역을 의미할 수 있다. 시점(viewpoint) 는 사용자가 Point Cloud 비디오에서 보고 있는 지점으로서, 뷰포트 영역의 정중앙 지점을 의미할 수 있다. 즉, 뷰포트는 시점을 중심으로 한 영역인데, 그 영역이 차지하는 크기 형태 등은 FOV(Field Of View) 에 의해 결정될 수 있다.
도12는 실시예들에 따른 송신기의 Point Cloud 비디오 인코딩을 위한 구성요소를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터의 비디오 인코딩을 위한 구성요소는 데이터 입력부(12000), 양자화 처리부(12001), 복셀화 처리부(12002), 옥트리 Occupancy 코드 생성부(12003), 포면 모델 처리부(12004), 인트라/인터 코딩 처리부(12005), Arithmetic 코더(12006), 메타데이터 처리부(12007), 색상 변환 처리부(12008), 속성 변환 처리부(12009), 예측/리프팅/RAHT 변환 처리부(12010), Arithmetic 코더(12011) 및/또는 전송 처리부(12012)를 포함할 수 있다.
실시예들에 따른 데이터 입력부(12000)는 포인트 클라우드 데이터를 수신 또는 획득한다. 데이터 입력부(12000)는 실시예들에 따른 도1의 포인트 클라우드 획득부(10001)에 대응될 수 있다.
실시예들에 따른 양자화 처리부(12001)는 포인트 클라우드 데이터의 지오메트리, 예를 들어, 포인트들의 위치값 정보를 양자화한다.
실시예들에 따른 복셀화 처리부(12002)는 양자화된 포인트들의 위치값 정보를 복셀화한다.
실시예들에 따른 옥트리 Occupancy 코드 생성부(12003)는 복셀화된 포인트들의 위차값 정보를 옥트리 어큐판시 코드에 기반하여 옥트리로 나타낼 수 있다.
실시예들에 따른 포면 모델 처리부(12004)는 포인트 클라우드의 포인트들의 위치값 정보에 대한 옥트리를 표면 모델 방식에 기반하여 표현 처리할 수 있다
실시예들에 따른 인트라/인터 코딩 처리부(12005)는 포인트 클라우드 데이터를 인트라/인터 코딩할 수 있다.
실시예들에 따른 Arithmetic 코더(12006)는 포인트 클라우드 데이터를 아리스메틱 코딩 방식에 기반하여 인코딩할 수 있다.
실시예들에 따른 메타데이터 처리부(12007)는 포인트 클라우드 데이터에 관한 메타데이터, 예를 들어 설정 값 등을 처리하여 지오메트리 인코딩 프로세스 및/또는 어트리뷰트 인코딩 프로세스 등 필요한 과정에 제공한다.
실시예들에 따른 색상 변환 처리부(12008)는 포인트 클라우드 데이터의 어트리뷰트, 예를 들어, 포인트들의 속성값 정보 및/또는 재구성된 위치값에 기반하여 포인트 클라우드 데이터의 컬러를 변환할 수 있다.
실시예들에 따른 속성 변환 처리부(12009)는 포인트 클라우드 데이터의 속성값을 변환할 수 있다.
실시예들에 따른 예측/리프팅/RAHT 변환 처리부(12010)는 포인트 클라우드 데이터를 예측 방법, 리프팅 방법 및/또는 RAHT 방법 등의 조합 등에 기반하여 속성 코딩할 수 있다.
실시예들에 따른 Arithmetic 코더(12011)는 포인트 클라우드 데이터를 아리스메틱 코딩 방식에 기반하여 인코딩할 수 있다.
위 과정들은 실시예들에 따른 도1의 포인트 클라우드 인코더(10002)에 대응될 수 있다.
실시예들에 따른 전송 처리부(12012)는 인코딩된 지오메트리 및/또는 인코딩된 어트리뷰트를 전송할 수 있다.
실시예들에 따라, 포인트들의 위치값에 대한 프로세스 및 포인트들의 속성값에 대한 프로세스는 서로의 데이터/정보를 공유하여 각 과정을 수행할 수 있다.
도12는 실시예들의 Point Cloud 콘텐츠 서비스를 제공하기 위한 송신기 장비를 도시한 도면이다.
송신측에서의 본 발명은 Point Cloud 콘텐츠 전송 장치와 관련될 수 있다. Point Cloud 콘텐츠 전송 장치는 데이터 입력부, Point 위치 값들에 대해 양자화 처리부, 복셀화 처리부, 옥트리 occupancy 코드 생성부, 표면 모델 처리부, 인트라/인터 코딩 처리부, arithmetic 코더, 메타데이터 처리부, 또한 재구성된 위치 값을 기반으로 point 위치/복셀 값에 대한 속성 값들을 처리하기 위해 색상 변환 처리부, 속성 변환 처리부, 사용된 속성 인코딩 방식에 따라서 예측 변환 처리부, 리프팅 변환 처리부, RAHT 변환 처리부, arithmetic 코더를 거쳐서 인코딩된 지오메트리 비트스트림과 속성 비트스트림을 전송 처리부를 통해 수신측에 전송한다. 각 컴포넌트의 기능은 2장 인코딩 과정, 3장 전송과정에 설명되어 있다.
도13은 실시예들에 따른 수신기의 Point Cloud 비디오 디코딩을 위한 구성요소를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터의 비디오 디코딩을 위한 구성요소는 수신부(13000), 수신 처리부(13001), Arithmetic 디코더(13002), Occupancy코드 기반 옥트리 재구성 처리부(13003), 표면 모델 처리부(삼각형 재구성, 업-샘플링, 복셀화)( 13004), inverse 양자화 처리부(13005), 메타데이터 파서(13006), arithmetic 디코더(13007), inverse양자화 처리부(13008), 예측/리프팅/RAHT 역변환 처리부(13009), 색상 역변환 처리부(13010) 및/또는 렌더러(13011)를 포함할 수 있다. 실시예들에 따른 디코딩의 각 구성요소는 실시예들에 따른 인코딩의 구성요소의 역과정을 수행할 수 있다.
실시예들에 따른 수신부(13000)는 포인트 클라우드 데이터를 수신한다. 수신부(13000)는 실시예들에 따른 도1의 리시버(10007)에 대응될 수 있다.
실시예들에 따른 수신 처리부(13001)는 수신한 포인트 클라우드 데이터에 포함된 지오메트리 비트스트림 및/또는 속성 비트스트림을 획득할 수 있다.
실시예들에 따른 Arithmetic 디코더(13002)는 지오메트리 비트스트림을 아리스메틱 방식에 기반하여 디코딩할 수 있다.
실시예들에 따른 Occupancy코드 기반 옥트리 재구성 처리부(13003)는 디코딩된 지오메트리를 Occupancy 코드에 기반하여 옥트리로 재구성할 수 있다.
실시예들에 따른 표면 모델 처리부(삼각형 재구성, 업-샘플링, 복셀화)(13004)는 표면 모델 방식에 기반하여 포인트 클라우드 데이터에 대해 삼각형 재구성, 업-샘플링, 복셀화 및/또는 그것들의 조합에 따른 처리를 수행할 수 있다.
실시예들에 따른 inverse 양자화 처리부(13005)는 포인트 클라우드 데이터를 인버스 양자화할 수 있다.
실시예들에 따른 메타데이터 파서(13006)는 수신한 포인트 클라우드 데이터에 포함된 메타데이터, 예를 들어 설정 값 등을 파싱할 수 있다. 메타데이터 파서(13006)는 메타데이터를 지오메트리 디코딩 프로세스 및/또는 속성 디코딩 프로세스의 각 과정에 전달할 수 있다. 실시예들에 따른 각 프로세스는 필요한 메타데이터에 기반하여 수행될 수 있다.
실시예들에 따른 arithmetic 디코더(13007)는 포인트 클라우드 데이터의 속성 비트스트림을 재구성된 위치값에 기반하여 아리스메틱 방식에 기반하여 디코딩할 수 있다.
실시예들에 따른 inverse양자화 처리부(13008)는 포인트 클라우드 데이터를 인버스 양자화할 수 있다.
실시예들에 따른 예측/리프팅/RAHT 역변환 처리부(13009)는 포인트 클라우드 데이터를 예측/리프팅/RAHT 방식 및/또는 그것들의 조합에 따른 방식에 기반하여 처리할 수 있다.
실시예들에 따른 색상 역변환 처리부(13010)는 포인트 클라우드 데이터의 색상 값을 역변환할 수 있다.
상술한 과정들은 실시예들에 따른 도1의 포인트 클라우드 디코더(10006)에 대응될 수 있다.
실시예들에 따른 렌더러(13011)는 포인트 클라우드 데이터를 렌더링할 수 있다.
도면은 본 발명의 Point Cloud 콘텐츠 서비스를 제공하기 위한 수신기 장비를 도시한 도면이다.
수신측에서의 본 발명은 Point Cloud 콘텐츠 수신 장치와 관련될 수 있다. Point Cloud 콘텐츠 수신 장치는 수신부, 수신 처리부, 메타데이터 파서, Point의 지오메트리 비트스트림에 대해 arithmetic 디코더, occupancy 코드 기반 옥트리 재구성 처리부, 표면 모델 처리부, inverse 양자화 처리부, 또한 재구성된 위치 값을 기반으로 point 위치/복셀 값에 대한 속성 값들을 디코딩하기 위해 arithmetic 디코더, inverse 양자화 처리부, 사용된 속성 인코딩 방식에 따라서 예측 역변환 처리부, 리프팅 역변환 처리부, RAHT 역변환 처리부를 거쳐서 색상 역변환 처리부를 통해 렌더러에게 전달되어 렌더링되어 유저에게 VR/AR/MR/자율주행과 같은 경험을 제공한다. 각 컴포넌트의 기능은 3장 전송과정, 4장 디코딩 과정, 5장 렌더링 과정에 설명되어 있다.
전술한 Point Cloud 비디오 제공을 위한 전체 아키텍처 내에서, 획득/인코딩/전송/디코딩/렌더링의 일련의 과정을 거치게 되는 Point Cloud 데이터들을 Point Cloud 콘텐츠 데이터 또는 Point Cloud 비디오 데이터라고 부를 수 있다. Point Cloud 콘텐츠 데이터라는 용어는 또한 이러한 Point Cloud 데이터들과 관련되는 메타데이터 내지 시그널링 정보를 포함하는 개념으로 쓰일 수도 있다.
도14는 실시예들에 따른 G-PCC 기반 point cloud 데이터 저장 및 스트리밍을 위한 아키텍쳐를 나타낸다.
실시예들은 사용자에게 VR (Virtual Reality, 가상현실), AR (Augmented Reality, 증강현실), MR (Mixed Reality, 혼합현실), 및 자율 주행 등 다양한 서비스를 지원하는Point Cloud 데이터를 저장 및 스트리밍 방안을 제공한다.
도14는 Geometry-based Point Cloud Compression(이하 G-PCC) 를 기반으로 압축되는 point cloud 데이터를 저장 혹은 스트리밍을 위한 전체 아키텍쳐를 도시한 도면이다. Point cloud 데이터 저장 및 스트리밍의 과정은 획득 과정, 인코딩 과정, 전송 과정, 디코딩 과정, 랜더링 과정 및/또는 피드백 과정을 포함할 수 있다.
본 발명은 point cloud 미디어/콘텐츠/데이터를 효과적으로 제공하는 방안을 제안한다. Point cloud 미디어/콘텐츠/데이터를 효과적으로 제공하기 위하여 먼저, point cloud 가 획득될 수 있다. 예를 들어 하나 이상의 카메라를 통하여 Point Cloud의 캡처, 합성 또는 생성 과정 등을 통한 Point Cloud 데이터를 획득할 수 있다. 이러한 획득 과정에 의해 각 포인트의 3D 위치(x, y, z 위치 값 등으로 나타낼 수 있다. 이하 이를 지오메트리라고 일컫는다), 각 포인트의 속성 (color, reflectance, transparency 등)을 포함하는 point cloud 데이터를 획득할 수 있으며 이를 포함하는, 예를 들어, PLY(Polygon File format or the Stanford Triangle format) 파일 등으로 생성 될 수 있다. 여러 개의 프레임을 갖는 point cloud 데이터의 경우 하나 이상의 파일들이 획득될 수 있다. 이러한 과정에서 point cloud 관련 메타데이터 (예를 들어 캡처 등과 관련된 메타데이터 등)가 생성될 수 있다.
Point Cloud인코더는 Geometry-based Point Cloud Compression (G-PCC) 절차를 수행하며 이는 예측, 변환, 양자화, 엔트로피 코딩 등의 일련의 절차를 수행하고 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다. 이는 후술하는 바와 같이 지오메트리 및 속성(attribute) 로 나누어 인코딩 할 수 있으며 비트 스트림 상에 포인트 클라우드 관련 메타데이터가 포함될 수 있다. 이 경우 출력 비트 스트림은 지오메트리 비트스트림 및/또는 어트리뷰트 비트스트림 을 포함할 수 있다.
인캡슐레이션(file/segment encapsulation)는 인코딩된 Point cloud데이터 및/또는 Point cloud관련 메타데이터를 파일 또는 스트리밍을 위한 세그먼트 등의 형태로 인캡슐레이션할 수 있다. 여기서 Point cloud 관련 메타데이터는 메타데이터 처리부 등으로부터 전달받은 것일 수 있다. 메타데이터 처리부는 상기 point cloud 비디오 인코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 인캡슐레이션 처리부는 해당 데이터들을 ISOBMFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인캡슐레이션 처리부는 실시 예에 따라 Point cloud관련 메타데이터를 파일 포맷 상에 포함시킬 수 있다. Point cloud 메타데이터는 예를 들어 ISOBMFF 파일 포맷 상의 다양한 레벨의 박스(box)에 포함되거나 파일 내에서 별도의 트랙내의 데이터로 포함될 수 있다. 실시 예에 따라, 인캡슐레이션 처리부는 Point cloud관련 메타데이터 자체를 파일로 인캡슐레이션할 수 있다.
전송 처리부는 파일 포맷에 따라 인캡슐레이션된 Point cloud데이터에 전송을 위한 처리를 가할 수 있다. 전송 처리부는 전송부에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송 처리부는 임의의 전송 프로토콜에 따라 Point cloud데이터를 처리할 수 있다. 전송을 위한 처리에는 방송망을 통한 전달을 위한 처리, 브로드밴드를 통한 전달을 위한 처리를 포함할 수 있다. 실시 예에 따라 전송 처리부는 Point cloud 데이터 뿐 아니라, 메타데이터 처리부로부터 Point cloud 관련 메타데이터를 전달받아, 이 것에 전송을 위한 처리를 가할 수도 있다.
전송부는 point cloud 비트스트림 혹은 해당 비트스트림을 포함하는 파일/세그먼트를 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있다. 전송을 위한 처리를 마친 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있다. 이 데이터들은 온 디맨드(On Demand) 방식으로 수신측으로 전달될 수도 있다.디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 전송부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 수신부는 상기 비트스트림을 추출하여 디코딩 장치로 전달할 수 있다.
수신부는 본 발명에 따른 point cloud 데이터 전송 장치가 전송한 point cloud 데이터를 수신할 수 있다. 전송되는 채널에 따라 수신부는 방송망을 통하여 point cloud데이터를 수신할 수도 있고, 브로드밴드를 통하여 point cloud데이터를 수신할 수도 있다. 혹은 디지털 저장 매체를 통하여 point cloud 비디오 데이터를 수신할 수도 있다. 수신부는 수신한 데이터를 디코딩 하고 이를 사용자의 뷰포트 등에 따라 랜더링하는 과정을 포함할 수 있다.
수신 처리부는 수신된 point cloud데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 수신 처리부는 수신부에 포함될 수 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송측에서 전송을 위한 처리가 수행된 것에 대응되도록, 수신 처리부는 전술한 전송 처리부의 역과정을 수행할 수 있다. 수신 처리부는 획득한 point cloud 데이터는 디캡슐레이션 처리부로 전달하고, 획득한 point cloud 관련 메타데이터는 메타데이터 파서로 전달할 수 있다.
디캡슐레이션 처리부(file/segment decapsulation)는 수신 처리부로부터 전달받은 파일 형태의 point cloud데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 ISOBMFF 등에 따른 파일들을 디캡슐레이션하여, point cloud비트스트림 내지 point cloud 관련 메타데이터(혹은 별도의 메타데이터 비트스트림)를 획득할 수 있다. 획득된 point cloud비트스트림은 상기 point cloud디코더로, 획득된 point cloud관련 메타데이터(혹은 메타데이터 비트스트림)는 메타데이터 처리부로 전달할 수 있다. 상기 point cloud비트스트림은 상기 메타데이터(메타데이터 비트스트림)를 포함할 수도 있다. 상기 메타데이터 처리부는 상기 point cloud 비디오 디코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 디캡슐레이션 처리부가 획득하는 point cloud관련 메타데이터는 파일 포맷 내의 박스 혹은 트랙 형태일 수 있다. 디캡슐레이션 처리부는 필요한 경우 메타데이터 처리부로부터 디캡슐레이션에 필요한 메타데이터를 전달받을 수도 있다. 상기 point cloud관련 메타데이터는 상기 point cloud디코더에 전달되어 point cloud디코딩 절차에 사용될 수도 있고, 또는 렌더러에 전달되어 point cloud렌더링 절차에 사용될 수도 있다.
Point Cloud디코더는 상기 비트스트림을 입력 받아 상기 Point Cloud인코더의 동작에 대응하는 동작을 수행하여 데이터를 디코딩할 수 있다. 이 경우 Point Cloud디코더는 Point Cloud데이터를 후술하는 바와 같이 지오메트리 및 속성(attribute)로 나누어 디코딩할 수 있다. 예를 들어, Point Cloud디코더는 입력 비트스트림 내 포함된 지오메트리 비트스트림으로부터 지오메트리를 복원(디코딩)할 수 있고, 상기 입력 비트스트림 내 포함된 속성 비트스트림 및 상기 복원된 지오메트리를 기반으로 속성값을 복원(디코딩)할 수 있다. 상기 복원된 지오메트리에 따른 위치 정보 및 상기 디코딩된 속성값에 따른 (컬러) 텍스처 어트리뷰트를 기반으로 3차원의 각 포인트의 위치와 각 포인트의 속성정보를 복원하여 point cloud을 복원할 수 있다.
센싱/트랙킹부(Sensing/Tracking)는 사용자 또는 수신측로부터 오리엔테이션 정보 및/또는 사용자 뷰포트 정보를 획득하여 수신부 및/또는 송신부에 전달한다.오리엔테이션 정보는 사용자의 머리 위치, 각도, 움직임 등에 대한 정보를 나타내거나 혹은 사용자가 보고 있는 장치의 위치, 각도, 움직임 등에 대한 정보를 나타낼 수 있다. 이 정보를 기반으로 사용자가 현재 3차원 공간 상에서 보고 있는 영역에 대한 정보, 즉 사용자 뷰포트 정보가 계산될 수 있다.
사용자 뷰포트 정보는 현재 사용자가 3차원 공간 상에서 디바이스 혹은 HMD 등을 통하여 보고 있는 영역에 대한 정보일 수 있다. 디스플레이 등의 장치는 오리엔테이션 정보, 장치가 지원하는 수직(vertical) 혹은 수평(horizontal) FOV 등에 근거하여 뷰포트 영역을 추출할 수 있다. 오리엔테이션 혹은 뷰포트 정보는 수신측에서 추출 혹은 계산될 수 있다. 수신측에서 분석된 오리엔테이션 혹은 뷰포트 정보는 송신측으로 피드백 채널을 통해 전달될 수도 있다.
수신부는 센싱/트랙킹부에 의해 획득된 오리엔테이션 정보 및/또는 사용자가 현재 보고 있는 영역을 나타내는 뷰포트 정보를 사용하여 특정 영역, 즉 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 영역의 미디어 데이터만 효율적으로 파일에서 추출하거나 디코딩할 수 있다. 또한, 송신부는 센싱/트랙부에 의해 획득된 오리엔테이션 정보 및/또는 뷰포트 정보를 사용하여 특정 영역, 즉 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 영역의 미디어 데이터만 효율적으로 인코딩하거나 파일 생성 및 전송할 수 있다.
렌더러는 3차원 공간 상에 디코딩된 Point Cloud 데이터를 렌더링 할 수 있다. 렌더링된 비디오/영상은 디스플레이부를 통하여 디스플레이될 수 있다. 사용자는 VR/AR 디스플레이 또는 일반 디스플레이 등을 통하여 렌더링 된 결과의 전부 또는 일부 영역을 볼 수 있다.
피드백 과정은 렌더링/디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하거나 수신측의 디코더에 전달하는 과정을 포함할 수 있다. 피드백 과정을 통해 Point Cloud 데이터 소비에 있어 인터랙티비티(interactivity)가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션(Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트(Viewport) 정보 등이 전달될 수 있다. 실시 예에 따라, 사용자는 VR/AR/MR/자율주행 환경 상에 구현된 것들과 상호작용 할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시 예에 따라 피드백 과정은 수행되지 않을 수도 있다.
실시예에 따라 전술한 피드백 정보는 송신측으로 전달되는 것 뿐아니라, 수신측에서 소비될 수도 있다. 즉, 전술한 피드백 정보를 이용하여 수신측의 디캡슐레이션 처리, 디코딩, 렌더링 과정 등이 수행될 수 있다. 예를 들어, 오리엔테이션 정보 및/또는 뷰포트 정보를 이용하여 현재 사용자가 보고 있는 영역에 대한 point cloud 데이터가 우선적으로 디캡슐레이션, 디코딩 및 렌더링될 수도 있다.
도15는 실시예들에 따른 point cloud 데이터 저장 및 전송을 나타낸다.
도면은 실시예들에 따른 point cloud 데이터 전송 장치를 나타낸다.
실시예들에 따른 Point Cloud 데이터 저장 및 전송 장치는 Point Cloud 획득부(Point Cloud Acquisition), Point Cloud 인코딩부(Point Cloud Encoding), 파일/세그먼트 인캡슐레이션부(File/Segment Encapsulation),및/또는 딜리버리부(Delivery)를 포함한다. 전송 장치의 각 구성은 모듈/유닛/컴포넌트/하드웨어/소프트웨어/프로세서 등일 수 있다.
Point cloud 의 geometry, attribute, auxiliary data, mesh data 등은 각각 별도의 스트림으로 구성되거나 혹은 파일 내 각각 다른 트랙에 저장될 수 있다. 더 나아가 별도의 세그먼트에 포함될 수 있다.
Point Cloud 획득부(Point Cloud Acquisition)은 point cloud 를 획득한다. 예를 들어 하나 이상의 카메라를 통하여 Point Cloud의 캡쳐, 합성 또는 생성 과정 등을 통한 Point Cloud 데이터를 획득할 수 있다. 이러한 획득 과정에 의해 각 포인트의 3D 위치(x, y, z 위치 값 등으로 나타낼 수 있다. 이하 이를 지오메트리라고 일컫는다), 각 포인트의 속성 (color, reflectance, transparency 등)을 포함하는 point cloud 데이터를 획득할 수 있으며 이를 포함하는, 예를 들어, PLY(Polygon File format or the Stanford Triangle format) 파일 등으로 생성 될 수 있다. 여러 개의 프레임을 갖는 point cloud 데이터의 경우 하나 이상의 파일들이 획득될 수 있다. 이러한 과정에서 point cloud 관련 메타데이터 (예를 들어 캡처 등과 관련된 메타데이터 등)가 생성될 수 있다.
Point Cloud 인코딩부(Point Cloud Encoding)는 Point Cloud인코더는 Geometry-based Point Cloud Compression (G-PCC) 절차를 수행하며 이는 예측, 변환, 양자화, 엔트로피 코딩 등의 일련의 절차를 수행하고 인코딩된 데이터(인코딩된 비디오/영상 정보)는 비트스트림(bitstream) 형태로 출력될 수 있다. 이는 후술하는 바와 같이 지오메트리 및 속성(attribute) 로 나누어 인코딩 할 수 있으며 비트 스트림 상에 포인트 클라우드 관련 메타데이터가 포함될 수 있다. 이 경우 출력 비트 스트림은 지오메트리 비트스트림 및/또는 어트리뷰트 비트스트림 을 포함할 수 있다. Point Cloud 인코딩부는 메타데이터(Metadata)를 수신할 수 있다. 메타데이터는 Point Cloud를 위한 콘텐츠에 관련된 메타데이터를 나타낸다. 예를 들어 이니셜 뷰잉 오리엔테이션 메타데이터(Initial viewing orientation metadata)가 있을 수 있다. 메타데이터는 포인트 클라우드 데이터가 앞을 나타내는 데이터인지 뒤를 나타내는 데이터인지 등을 나타낸다. Point Cloud 인코딩부는 오리엔테이션 정보 및/또는 뷰포트 정보를 수신할 수 있다. Point Cloud 인코딩부 메타데이터, 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여 인코딩을 수행할 수 있다.
구체적으로, Point Cloud 인코딩부(Point Cloud Encoding)는 지오메트리 컴프레션(Geometry compression), 어트리뷰트 컴프레션(Attribute compression), Auxiliary 데이터 컴프레션(Auxiliary data compression), Mesh 데이터 컴프레션(Mesh data compression)을 수행한다.
지오메트리 컴프레션(Geometry compression)은 point cloud 지오메트리 정보를 인코딩한다. 지오메트리는 3차원 공간상의 포인트를 나타낸다.
어트리뷰트 컴프레션(Attribute compression)은 point cloud 의 어트리뷰트를 인코딩한다. 어트리뷰트는 하나 또는 하나 이상의 어트리뷰트를 나타낸다. 예를 들어, color, reflectance 등의 속성을 포함하는N개의 어트리뷰트가 있을 수 있다.
Auxiliary 데이터 컴프레션(Auxiliary data compression)은, point cloud 와 연관된 Auxiliary 데이터를 인코딩한다. Auxiliary 데이터는 Point Cloud에 관한 메타데이터를 나타낸다.
Mesh 데이터 컴프레션(Mesh data compression)은 Mesh 데이터를 인코딩한다. Mesh 는 Point Cloud간의 연결 정보를 나타낸다. 예를 들어, 삼각형 형태의 데이터일 수 있다.
Point Cloud 인코딩부는 포인트를 렌더링하기 위해 필요한 정보들인 포인트에 관한 지오메트리, 어트리뷰트, Auxiliary 데이터, Mesh데이터를 인코딩한다. Point Cloud 인코딩부는 지오메트리, 어트리뷰트, Auxiliary 데이터, Mesh 데이터를 인코딩하여 하나의 비트스트림으로 전달할 수 있다. 또는, Point Cloud 인코딩부는 지오메트리, 어트리뷰트, Auxiliary 데이터, Mesh 데이터를 인코딩하여 복수의 비트스트림으로 전달할 수 있다. 포인트 클라우드 인코딩부의 각 동작은 병렬적으로 수행될 수 있다.
파일/세그먼트 인캡슐레이션부(File/Segment Encapsulation)는 미디어 트랙 인캡슐레이션(Media track encapsulation) 및/또는 메타데이터 트랙 인캡슐레이션(metadata track encapsulation)을 수행한다. 파일/세그먼트 인캡슐레이션부는 인코딩된 지오메트리, 인코딩된 어트리뷰트, 인코딩된 Auxiliary 데이터, 인코딩된 Mesh데이터를 파일 형태로 전달하기 위한 트랙을 생성한다. 인코딩된 지오메트리를 포함하는 비트스트림, 인코딩된 어트리뷰트를 포함하는 비트스트림, 인코딩된 Auxiliary데이터를 포함하는 비트스트림, 인코딩된 Mesh데이터를 포함하는 비트스트림을 하나 또는 하나 이상의 복수의 트랙에 포함시킬 수 있다. 파일/세그먼트 인캡슐레이션부는 지오메트리, 어트리뷰트, Auxiliary 데이터, Mesh 데이터를 하나 또는 하나 이상의 미디어 트랙으로 인캡슐레이션한다. 또한, 파일/세그먼트 인캡슐레이션부는 메타데이터를 미디어 트랙에 포함하거나 별도의 메타데이터 트랙으로 인캡슐레이션한다. 파일/세그먼트 인캡슐레이션부는 포인트 클라우드 스트림(들)을 파일 및/또는 세그먼트의 형태로 인캡슐레이션한다. 포인트 클라우드 스트림(들)을 세그먼트(들) 형태로 인캡슐레이션하여 전달하는 경우 DASH포맷으로 딜리버리한다. 파일/세그먼트 인캡슐레이션부는 포인트 클라우드 스트림(들)을 파일 형태로 인캡슐레이션하는 경우 파일을 딜리버리한다.
딜리버리부(Delivery)는 point cloud 비트스트림 혹은 해당 비트스트림을 포함하는 파일/세그먼트를 디지털 저장매체 또는 네트워크를 통하여 수신 디바이스의 수신부로 전달할 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있다. 전송을 위한 처리를 마친 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있다. 이 데이터들은 온 디맨드(On Demand) 방식으로 수신측으로 전달될 수도 있다.디지털 저장 매체는 USB, SD, CD, DVD, 블루레이, HDD, SSD 등 다양한 저장 매체를 포함할 수 있다. 딜리버리부는 미리 정해진 파일 포멧을 통하여 미디어 파일을 생성하기 위한 엘리먼트를 포함할 수 있고, 방송/통신 네트워크를 통한 전송을 위한 엘레멘트를 포함할 수 있다. 딜리버리부는 수신부로부터 오리엔테이션 정보 및/또는 뷰포트 정보를 수신한다. 딜리버리부는 획득한 오리엔테이션 정보 및/또는 뷰포트 정보(또는 사용자가 선택한 정보)를 파일/세그먼트 인캡슐레이션부 및/또는 포인트 클라우드 인코딩부에 전달할 수 있다. 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여, 포인트 클라우드 인코딩부는 모든 포인트 클라우드 데이터를 인코딩하거나 또는 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 포인트 클라우드 데이터를 인코딩할 수 있다. 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여, 파일/세그먼트 인캡슐레이션부는 모든 포인트 클라우드 데이터를 인캡슐레이션하거나 또는 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 포인트 클라우드 데이터를 인캡슐레이션할 수 있다. 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여, 딜리버리부는 모든 포인트 클라우드 데이터를 딜리버리하거나 또는 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 포인트 클라우드 데이터를 딜리버리할 수 있다.
도16은 실시예들에 따른 point cloud 데이터 수신 장치를 나타낸다.
도면은 point cloud 데이터 수신 장치를 나타낸다.
실시예들에 따른 Point Cloud 데이터 수신 장치는 딜리버리 클라이언트(Delivery Client), 센싱/트랙킹부(Sensing/Tracking), 파일/세그먼트 디캡슐레이션부(File/Segment decapsulation), Point Cloud 디코딩부(Point Cloud Decoding) 및/또는 Point Cloud 렌더링부(Point Cloud Rendering), 디스플레이를 포함한다. 수신 장치의 각 구성은 모듈/유닛/컴포넌트/하드웨어/소프트웨어/프로세서 등일 수 있다.
딜리버리 클라이언트(Delivery Client)는 실시예들에 따른 point cloud 데이터 전송 장치가 전송한 point cloud 데이터, point cloud 비트스트림 혹은 해당 비트스트림을 포함하는 파일/세그먼트를 수신할 수 있다. 전송되는 채널에 따라 수신부는 방송망을 통하여 point cloud데이터를 수신할 수도 있고, 브로드밴드를 통하여 point cloud데이터를 수신할 수도 있다. 혹은 디지털 저장 매체를 통하여 point cloud 비디오 데이터를 수신할 수도 있다. 수신부는 수신한 데이터를 디코딩 하고 이를 사용자의 뷰포트 등에 따라 랜더링하는 과정을 포함할 수 있다. 수신 처리부는 수신된 point cloud데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 수신 처리부는 수신부에 포함될 수 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 전송측에서 전송을 위한 처리가 수행된 것에 대응되도록, 수신 처리부는 전술한 전송 처리부의 역과정을 수행할 수 있다. 수신 처리부는 획득한 point cloud 데이터는 디캡슐레이션 처리부로 전달하고, 획득한 point cloud 관련 메타데이터는 메타데이터 파서로 전달할 수 있다.
센싱/트랙킹부(Sensing/Tracking)는 오리엔테이션 정보 및/또는 뷰포트 정보를 획득한다. 센싱/트랙킹부는 획득한 오리엔테이션 정보 및/또는 뷰포트 정보를 딜리버리 클라이언트, 파일/세그먼트 디캡슐레이션부, 포인트 클라우드 디코딩부에 전달할 수 있다.
딜리버리 클라이언트는 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여, 모든 포인트 클라우드 데이터를 수신하거나 또는 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 포인트 클라우드 데이터를 수신할 수 있다. 파일/세그먼트 디캡슐레이션부는 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여, 모든 포인트 클라우드 데이터를 디캡슐레이션하거나 또는 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 포인트 클라우드 데이터를 디캡슐레이션할 수 있다. 포인트 클라우드 디코딩부는 오리엔테이션 정보 및/또는 뷰포트 정보에 기반하여, 모든 포인트 클라우드 데이터를 디코딩하거나 또는 오리엔테이션 정보 및/또는 뷰포트 정보가 나타내는 포인트 클라우드 데이터를 디코딩할 수 있다.
파일/세그먼트 디캡슐레이션부(File/Segment decapsulation)는 미디어 트랙 디캡슐레이션(Media track decapsulation) 및/또는 메타데이터 트랙 디캡슐레이션(Metadata track decapsulation)을 수행한다. 디캡슐레이션 처리부(file/segment decapsulation)는 수신 처리부로부터 전달받은 파일 형태의 point cloud데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 ISOBMFF 등에 따른 파일 혹은 세그먼트들을 디캡슐레이션하여, point cloud비트스트림 내지 point cloud 관련 메타데이터(혹은 별도의 메타데이터 비트스트림)를 획득할 수 있다. 획득된 point cloud비트스트림은 상기 point cloud디코더로, 획득된 point cloud관련 메타데이터(혹은 메타데이터 비트스트림)는 메타데이터 처리부로 전달할 수 있다. 상기 point cloud비트스트림은 상기 메타데이터(메타데이터 비트스트림)를 포함할 수도 있다. 상기 메타데이터 처리부는 상기 point cloud 비디오 디코더에 포함될 수도 있고, 또는 별도의 컴포넌트/모듈로 구성될 수도 있다. 디캡슐레이션 처리부가 획득하는 point cloud관련 메타데이터는 파일 포맷 내의 박스 혹은 트랙 형태일 수 있다. 디캡슐레이션 처리부는 필요한 경우 메타데이터 처리부로부터 디캡슐레이션에 필요한 메타데이터를 전달받을 수도 있다. 상기 point cloud관련 메타데이터는 상기 point cloud디코더에 전달되어 point cloud디코딩 절차에 사용될 수도 있고, 또는 렌더러에 전달되어 point cloud렌더링 절차에 사용될 수도 있다.
Point Cloud 디코딩부(Point Cloud Decoding)는 지오메트리 디컴프레션(Geometry decompression), 어트리뷰트 디컴프레션(Attribute decompression), Auxiliary 데이터 디컴프레션(Auxiliary data decompression) 및/또는 Mesh 데이터 디컴프레션(Mesh data decompression)을 수행한다. Point Cloud디코더는 상기 비트스트림을 입력 받아 상기 Point Cloud인코더의 동작에 대응하는 동작을 수행하여 데이터를 디코딩할 수 있다. 이 경우 Point Cloud디코더는 Point Cloud데이터를 후술하는 바와 같이 지오메트리 및 속성(attribute)로 나누어 디코딩할 수 있다. 예를 들어, Point Cloud디코더는 입력 비트스트림 내 포함된 지오메트리 비트스트림으로부터 지오메트리를 복원(디코딩)할 수 있고, 상기 입력 비트스트림 내 포함된 속성 비트스트림 및 상기 복원된 지오메트리를 기반으로 속성값을 복원(디코딩)할 수 있다. 상기 입력 비트스트림 내 포함된 메쉬 비트스트림 및 상기 복원된 지오메트리를 기반으로 메쉬를 복원(디코딩)할 수 있다.상기 복원된 지오메트리에 따른 위치 정보 및 상기 디코딩된 속성값에 따른 (컬러) 텍스처 어트리뷰트를 기반으로 3차원의 각 포인트의 위치와 각 포인트의 속성정보를 복원하여 point cloud을 복원할 수 있다. 포인트 클라우드 디코딩부의 각 동작은 병렬적으로 수행될 수 있다.
지오메트리 디컴프레션은 포인트 클라우드 스트림(들)으로부터 지오메트리 데이터를 디코딩한다. 어트리뷰트 디컴프레션은 포인트 클라우드 스트림(들)으로부터 어트리뷰트 데이터를 디코딩한다. Auxiliary 데이터 디컴프레션은 포인트 클라우드 스트림(들)으로부터 Auxiliary 데이터를 디코딩한다. Mesh데이터 디컴프레션은 포인트 클라우드 스트림(들) 으로부터 Mesh 데이터를 디코딩한다.
Point Cloud 렌더링부(Point Cloud Rendering)는 디코딩된 지오메트리, 에투리뷰트, auxiliary 데이터, 메쉬데이터를 기반으로 포인트 클라우드의 각 포인트의 위치 및 해당 포인트의 에트리뷰티를 복원하고 해당 포인트 클라우드 데이터를 렌더링한다. 포인트 클라우드 렌더링부는 복원된 지오메트리, 복원된어트리뷰트, 복원된Auxiliary데이터 및/또는복원된Mesh데이터에 기초하여 포인트 클라우드 간의 메쉬(연결) 데이터를 생성하고 렌더링한다. 포인트 클라우드 렌더링부는 파일/세그먼트 인캡슐레이션부 및/또는 포인트 클라우드 디코딩부로부터 메타데이터를 수신한다. 포인트 클라우드 렌더링부는 오리엔테이션 혹은 뷰포트에 따라 메타데이터에 기반하여 포인트 클라우드 데이터를 렌더링할 수 있다.
디스플레이는 랜더링된 결과를 실제 디스플레이 장치 상에 디스플레이한다.
도17은 실시예들에 따른 포인트 클라우드 데이터 송수신 방법/장치와 연동 가능한 구조의 예시를 나타낸다.
도 17를 참조하면, 실시예들에 따른 구조는 서버(1760), 로봇(1710), 자율 주행 차량(1720), XR 장치(1730), 스마트폰(1740), 가전(1750) 및/또는 HMD(1770) 중에서 적어도 하나 이상이 클라우드 네트워크(1710)와 연결된다. 여기서, 로봇(1710), 자율 주행 차량(1720), XR 장치(1730), 스마트폰(1740) 또는 가전(1750) 등을 장치라 칭할 수 있다. 또한, XR 장치(1730)는 실시예들에 따른 포인트 클라우드 데이터 (PCC) 장치에 대응되거나 PCC장치와 연동될 수 있다.
클라우드 네트워크(1700)는 클라우드 컴퓨팅 인프라의 일부를 구성하거나 클라우드 컴퓨팅 인프라 안에 존재하는 네트워크를 의미할 수 있다. 여기서, 클라우드 네트워크(1700)는 3G 네트워크, 4G 또는 LTE(Long Term Evolution) 네트워크 또는 5G 네트워크 등을 이용하여 구성될 수 있다.
서버(1760)는 로봇(1710), 자율 주행 차량(1720), XR 장치(1730), 스마트폰(1740), 가전(1750) 및/또는 HMD(1770) 중에서 적어도 하나 이상과 클라우드 네트워크(1700)을 통하여 연결되고, 연결된 장치들(1710 내지 1770)의 프로세싱을 적어도 일부를 도울 수 있다.
HMD (Head-Mount Display)(1770)는 실시예들에 따른 XR 디바이스 및/또는 PCC 디바이스가 구현될 수 있는 타입 중 하나를 나타낸다. 실시예들에 따른HMD 타입의 디바이스는, 커뮤니케이션 유닛, 컨트롤 유닛, 메모리 유닛, I/O 유닛, 센서 유닛, 그리고 파워 공급 유닛 등을 포함한다.
이하에서는, 상술한 기술이 적용되는 장치(1710 내지 1750)의 다양한 실시 예들을 설명한다. 여기서, 도 17에 도시된 장치(1710 내지 1750)는 상술한 실시예들에 따른 포인트 클라우드 데이터 송수신 장치와 연동/결합될 수 있다.
<PCC+XR>
XR/PCC 장치(1730)는 PCC 및/또는 XR(AR+VR) 기술이 적용되어, HMD(Head-Mount Display), 차량에 구비된 HUD(Head-Up Display), 텔레비전, 휴대폰, 스마트 폰, 컴퓨터, 웨어러블 디바이스, 가전 기기, 디지털 사이니지, 차량, 고정형 로봇이나 이동형 로봇 등으로 구현될 수도 있다.
XR/PCC 장치(1730)는 다양한 센서들을 통해 또는 외부 장치로부터 획득한 3차원 포인트 클라우드 데이터 또는 이미지 데이터를 분석하여 3차원 포인트들에 대한 위치 데이터 및 속성 데이터를 생성함으로써 주변 공간 또는 현실 객체에 대한 정보를 획득하고, 출력할 XR 객체를 렌더링하여 출력할 수 있다. 예컨대, XR/PCC 장치(1730)는 인식된 물체에 대한 추가 정보를 포함하는 XR 객체를 해당 인식된 물체에 대응시켜 출력할 수 있다.
<PCC+자율주행+XR>
자율 주행 차량(1720)은 PCC 기술 및 XR 기술이 적용되어, 이동형 로봇, 차량, 무인 비행체 등으로 구현될 수 있다.
XR/PCC 기술이 적용된 자율 주행 차량(1720)은 XR 영상을 제공하는 수단을 구비한 자율 주행 차량이나, XR 영상 내에서의 제어/상호작용의 대상이 되는 자율 주행 차량 등을 의미할 수 있다. 특히, XR 영상 내에서의 제어/상호작용의 대상이 되는 자율 주행 차량(1720)은 XR 장치(1730)와 구분되며 서로 연동될 수 있다.
XR/PCC영상을 제공하는 수단을 구비한 자율 주행 차량(1720)은 카메라를 포함하는 센서들로부터 센서 정보를 획득하고, 획득한 센서 정보에 기초하여 생성된 XR/PCC 영상을 출력할 수 있다. 예컨대, 자율 주행 차량(1720)은 HUD를 구비하여 XR/PCC 영상을 출력함으로써, 탑승자에게 현실 객체 또는 화면 속의 객체에 대응되는 XR/PCC 객체를 제공할 수 있다.
이때, XR/PCC 객체가 HUD에 출력되는 경우에는 XR/PCC 객체의 적어도 일부가 탑승자의 시선이 향하는 실제 객체에 오버랩되도록 출력될 수 있다. 반면, XR/PCC 객체가 자율 주행 차량의 내부에 구비되는 디스플레이에 출력되는 경우에는 XR/PCC 객체의 적어도 일부가 화면 속의 객체에 오버랩되도록 출력될 수 있다. 예컨대, 자율 주행 차량(1220)은 차로, 타 차량, 신호등, 교통 표지판, 이륜차, 보행자, 건물 등과 같은 객체와 대응되는 XR/PCC 객체들을 출력할 수 있다.
실시예들에 의한 VR (Virtual Reality) 기술, AR (Augmented Reality) 기술, MR (Mixed Reality) 기술 및/또는 PCC(Point Cloud Compression)기술은, 다양한 디바이스에 적용 가능하다.
즉, VR 기술은, 현실 세계의 객체나 배경 등을 CG 영상으로만 제공하는 디스플레이 기술이다. 반면, AR 기술은, 실제 사물 영상 위에 가상으로 만들어진 CG 영상을 함께 보여 주는 기술을 의미한다. 나아가, MR 기술은, 현실세계에 가상 객체들을 섞고 결합시켜서 보여준다는 점에서 전술한 AR 기술과 유사하다. 그러나, AR 기술에서는 현실 객체와 CG 영상으로 만들어진 가상 객체의 구별이 뚜렷하고, 현실 객체를 보완하는 형태로 가상 객체를 사용하는 반면, MR 기술에서는 가상 객체가 현실 객체와 동등한 성격으로 간주된다는 점에서 AR 기술과는 구별이 된다. 보다 구체적으로 예를 들면, 전술한 MR 기술이 적용된 것이 홀로그램 서비스 이다.
다만, 최근에는 VR, AR, MR 기술을 명확히 구별하기 보다는 XR (extended Reality) 기술로 부르기도 한다. 따라서, 본 발명의 실시예들은 VR, AR, MR, XR 기술 모두에 적용 가능하다. 이런 한 기술은 PCC, V-PCC, G-PCC 기술 기반 인코딩/디코딩이 적용될 수 있다.
실시예들에 따른 PCC방법/장치는 자율 주행 서비스를 제공하는 차량에 적용될 수 있다.
자율 주행 서비스를 제공하는 차량은 PCC 디바이스와 유/무선 통신이 가능하도록 연결된다.
실시예들에 따른 포인트 클라우드 데이터 (PCC) 송수신 장치는 차량과 유/무선 통신이 가능하도록 연결된 경우, 자율 주행 서비스와 함께 제공할 수 있는 AR/VR/PCC 서비스 관련 콘텐트 데이터를 수신/처리하여 차량에 전송할 수 있다. 또한 포인트 클라우드 데이터 송수신 장치 차량에 탑재된 경우, 포인트 클라우드 송수신 장치는 사용자 인터페이스 장치를 통해 입력된 사용자 입력 신호에 따라 AR/VR/PCC 서비스 관련 콘텐트 데이터를 수신/처리하여 사용자에게 제공할 수 있다. 실시예들에 따른 차량 또는 사용자 인터페이스 장치는 사용자 입력 신호를 수신할 수 있다. 실시예들에 따른 사용자 입력 신호는 자율 주행 서비스를 지시하는 신호를 포함할 수 있다.
도18은 실시예들에 따른 G-PCC의 지오메트리 손실 압축의 예시를 나타낸다.
도면은 실시예들에 따른 장치가 포인트 클라우드 데이터를 획득하고 인코딩하는 과정에서 데이터의 열화 현상이 나타나는 예시이다. 포인트 클라우드 데이터의 오브젝트가 표현되는 과정에서, 오브젝트 및 배경 간에 해상도 또는 프리퀀시 차이로 인한 에러가 발생할 수 있다. 예를 들어, 오브젝트를 표현하는 직선 또는 곡선이 왜곡되어서 표현될 수 있다. 실시예들에 따른 장치 및/또는 동작은 이러한 왜곡을 제거하는 방법을 제안한다. 예를 들어, 실시예들에 따른 스무딩 필터는 이러한 왜곡을 제거할 수 있다. 실시예들에 따른 스무딩 동작은 실시예들에 따른 송신 방법 및/또는 수신 방법에 모두 적용될 수 있다. 실시예들에 따른 장치 또는 디코더는 포인트 클라우드 데이터를 포함하는 비트 스트림을 수신하고, 비트 스트림의 사이즈에 따라서 필터링을 비트 스트림에 대해 수행할 수 있고, 필터링 이후 속성 정보를 복원할 수 있다.
본 문서에서 실시예들에 따른 장치는 포인트 클라우드 데이터 송신 장치 또는 포인트 클라우드 수신 장치 등에 대응할 수 있다.
실시예들은 3차원 포인트 클라우드(point cloud) 데이터 압축을 위한 Geometry-based Point Cloud Compression (G-PCC)의 시각적 화질(quality) 향상을 위한 방안에 관한 것이다.
포인트 클라우드는 포인트(point)들의 집합으로 구성되며, 각 포인트는 지오메트리(geometry) 정보와 속성(attributes) 정보를 가질 수 있다. 지오메트리 정보는 3차원 위치(XYZ) 정보이며, 속성 정보는 색상 (RGB, YUV 등) 및/또는 반사(Reflectance) 값이다. G-PCC 부호화(encoding) 과정은 지오메트리를 압축하고, 압축을 통해 변경된 위치 정보들로 재구성 된 지오메트리(reconstructed geometry=복호화된 지오메트리)를 바탕으로 속성 정보를 압축하는 과정으로 구성될 수 있다. G-PCC 복호화(decoding) 과정은 부호화된 지오메트리 비트스트림(bitstream)과 속성 비트스트림을 전송 받아서 지오메트리를 복호화하고 복호화 과정을 통해 재구성된 지오메트리를 기반으로 속성 정보를 복호화하는 과정으로 구성될 수 있다.
도면과 같이, G-PCC의 지오메트리 손실 압축(lossy geometry compression)시 지오메트리 양자화 과정에서 화질 열화(degradation) 현상이 발생할 수 있다.
실시예들은 이러한 화질 열화 현상으로 발생하는 시각적 화질 문제를 해결하는 방안을 다루고자 한다.
실시예들의 화질 열화 현상을 보완 방안을 통하여 사용자에게 보다 고화질의 포인트 클라우드 콘텐츠를 제공하기 위함이다.
실시예들은 G-PCC 부호화/복호화 과정에 지오메트리 필터링 부를 추가하고 필터링 정보를 시그널링 하는 방안을 제안한다.
실시예들에 따른 지오메트리 필터링부는 재구성된 지오메트리에 필터를 적용하여 지오메트리를 위치 값을 보간하고, 보간된 위치를 기반으로 속성 변환(Transfer attributes) 과정을 수행하여 속성값을 보간된 위치값을 기반으로 압축하거나 보간된 위치를 기반으로 속성 정보를 복호화할 수 있다.
실시예들에 따른 지오메트리 필터링부를 통해 지오메트리 양자화 과정에서 발생할 수 있는 화질 열화 현상 보완할 수 있다.
이하에서, 실시예들에 따른 방법/장치는 포인트 클라우드 데이터 송신 방법, 수신 방법, 송신 장치, 수신 장치 등을 나타낸다. 실시예들에 따른 방법/장치는 상술한 문제점을 해결하는 효과를 제공할 수 있다.
도19는 실시예들에 따른 포인트 클라우드 컴프레션(PCC) 부호화기의 동작을 나타낸다.
실시예들에 따른 PCC부호화기 또는 송신 장치는 공간분할부(1900), 기하정보 부호화부(1901) 및/또는 속성정보 부호화부(1902)를 포함할 수 있다.
실시예들에 따른 공간분할부(1900)는 PCC데이터를 수신한다. 공간분할부는 PCC데이터를 3차원 블록으로 공간분할할 수 있다.
실시예들에 따른 기하정보 부호화부(1901)는 지오메트리 정보(또는 기하 정보)를 인코딩할 수 있다. 부호화부는 인코딩된 지오메트리 정보를 포함하는 비트스트림을 생성할 수 있다. 부호화부는 복원(리컨스럭션)된 지오메트리 정보를 생성할 수 있다.
실시예들에 따른 속성정보 부호화부(1902)는 공간분할된 PCC데이터 및 복원된 기하정보를 수신할 수 있다. 부호화부는 수신된 데이터를 인코딩하여 어트리뷰트 정보(또는 속성 정보)를 포함하는 비트스트림을 생성할 수 있다.
실시예들에 따라, 공간분할부, 기하정보 부호화부, 속성정보 부호화부는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 조합에 대응할 수 있다.
실시예들에 따른 인코더가 위치(X, Y, Z) 지오메트리 정보를 지오메트리 코딩하면, 위치가 양자화될 수 있다. 예를 들어, 위치 정보가 복셀화되면 로시의 위치가 변경될 수 있다. 변경된 위치에 따라 변경된 위치의 칼라를 실시예들에 따른 인코더가 컬러링할 수 있다. 변경된 위치에 해당하는 컬러를 가까운 위치의 칼라로 리칼라링(re-coloring) 또는 할당(assign)할 수 있다. 인코더는 리컨스트럭션된 지오메트리 값을 속성 정보 인코딩할 수 있다.
실시예들에 따른 필터링부(또는 필터)는 기하정보 부호화부(인코더) 또는 기하정보 부호화 단계에 포함되거나 또는 속성정보 부호화부(또는 속성정보 부호화 단계) 이전에 위치할 수 있다.
실시예들에 따른 PCC 부호화기는 기하정보 부호화기 및/또는 속성정보 부호화기로 구성될 수 있다. 실시예들에 따른 PCC 부호화기는 PCC 인코더, 송신 장치 및/또는 포인트 클라우드 데이터 송신 장치 등으로 지칭될 수 있다.
실시예들에 따른 지오메트리 코딩은 실시예들에 따른 기하정보 부호화기에 해당하며 실시예들에 따른 속성 코딩은 실시예들에 따른 속성 정보 부호화기에 해당한다.
이하 지오메트리와 기하정보를 모두 기하정보로 지칭한다.
실시예들에 따른 PCC 데이터는 포인트의 기하정보 또는/그리고 속성정보로 구성될 수 있다.
Figure PCTKR2019016375-appb-img-000007
실시예들에 따른 속성정보는 포인트의 색을 나타내는 벡터 (R,G,B) 및/또는 밝기 값 또는/그리고 라이다의 반사계수 또는/그리고 열화상 카메라로 부터 얻은 온도 값과 같이 하나 또는 다수개의 센서로 부터 획득한 값의 벡터일 수 있다.
실시예들에 따른 공간 분할부는 입력된 PCC 데이터를 적어도 하나의 3차원 블록으로 분할 할 수 있다. 이때, 블록은 타일 그룹(Tile Group) 또는 타일(Tile) 또는 슬라이스(Slice) 또는 부호화 단위(CU), 예측 단위(PU) 또는 변환 단위(TU)를 의미할 수 있다. 상기 분할은 옥트리(Octree), 쿼드 트리(Quadtree), 바이너리 트리(Biniary tree), 트리플 트리(Triple tree), k-d 트리 중 적어도 하나에 기반하여 수행될 수 있다. 또는 미리 정해놓은 가로 세로 높이의 블록단위로 분할 될 수 있다. 또는 블록의 다양한 위치 및 크기를 선택적으로 결정하여 분할 될 수 있다. 해당 정보를 엔트로피 부호화하여 복호화기로 전송할 수 있다.
실시예들에 따른 기하정보 부호화부는 입력받은 기하정보를 부호화 기하정보 비트스트림과 복원기하정보를 생성한다. 생성된 비트스트림은 PCC 복호화기로 전송될 수 있다. 또한, 생성된 복원기하정보는 속성정보 부호화부로 입력될 수 있다.
실시예들에 따른 속성정보 부호화부는 입력 받은 속성정보를 입력 받아 속성정보 비트스트림을 생성한다. 생성된 속성정보 비트스트림은 PCC 복호화기로 전송될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치의 인코더는 포인트 클라우드 데이터의 기하정보를 인코딩하는 기하정보 인코더, 및 포인트 클라우드 데이터의 속성정보를 인코딩하는 속성정보 인코더를 포함할 수 있다.
따라서, 실시예들에 따른 방법/장치는 기하정보 및 속성정보를 효율적으로 부호화하여 비트스트림의 형태로 전송할 수 있다.
도20은 실시예들에 따른 기하 정보 부호화기를 나타낸다.
실시예들에 따른 기하정보 부호화부(기하정보 인코더)는 좌표계 변환부(2001), 기하정보 변환양자화부(2002), 메모리부(2003), 기하정보 예측부(2004), 잔차기하정보 양자화부(2005), 기하정보 엔트로피 부호화부(2006), 잔차기하정보 역양자화부(2007) 및/또는 필터링부(2008)를 포함할 수 있다.
실시예들에 따른 좌표계 변환부(2001)는 위치정보에 해당하는 기하정보를 수신하고, 기하정보의 좌표계를 변환할 수 있다.
실시예들에 따른 기하정보 변환양자화부(2002)는 기하정보를 양자화할 수 있다.
실시예들에 따른 잔차기하정보 양자화부(2003)는 양자화된 기하정보 및/또는 예측된 기하정보에 기반하여 생성된 잔차 기하정보를 양자화할 수 있다. 예를 들어, 잔차 값은 기하정보에서 예측된 기하정보를 감산함으로써 생성될 수 있다.
실시예들에 따른 기하정보 엔트로피 부호화부(2004)는 기하정보를 엔트로피 인코딩 방식에 기반하여 인코딩할 수 있다. 기하정보 엔트로피 부호화부는 기하정보를 포함하는 비트스트림을 생성할 수 잇다.
실시예들에 따른 잔차기하정보 역양자화부(2005)는 잔차 기하정보를 역으로 양자화할 수 있다.
실시예들에 따른 필터링부(2006)는 역양자화된 기하정보 및 예측된 기하정보에 기반하여 필터링을 수행할 수 있다. 예를 들어, 예측된 기하정보 및 잔차 기하정보를 합산함으로써 생성된 데이터를 필터링할 수 있다
실시예들에 따른 메모리부(2007)는 필터링된 데이터에 기반하여 기하정보를 저장할 수 있다. 메모리부는 저장된 기하정보에 기반하여 복원된 기하정보를 생성할 수 있다.
실시예들에 따른 기하정보 예측부(2008)는 메모리에 저장된 기하정보에 기반하여 기하정보를 예측할 수 있다. 기하정보 예측부는 예측 데이터를 잔차기하정보 양자화부 및/또는 전차기하정보 역양자화부에 전달할 수 있다.
실시예들에 따른 기하정보 부호화기의 각 엘리먼트는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 조합 등에 대응될 수 있다.
실시예들에 따른 PCC 부호화기는 기하정보 부호화기와 속성정보 부호화기로 구성될 수 있다. 기하정보 부호화기는 다음 다이어그램과 같은 과정을 수행하여 기하정보 비트스트림과 복원된(재구성된=reconstructed) 기하정보를 생성할 수 있다.
실시예들에 따른 기하정보 부호화부는 좌표계 변환부, 기하정보 변환양자화부, 잔차기하정보 양자화부, 기하정보 엔트로피 부호화부, 잔차기하정보 역양자화부, 메모리, 기하정보 예측부를 포함할 수 있다.
실시예들에 따른 좌표변환부는 본 명세서의 기하정보 부호화기의 좌표계 변환부에 해당하며, 양자화 처리부, 복셀화 처리부, 옥트리 코드 생성부, 표면 모델 처리부가 합쳐져서 본 명세서의 기하정보 변환양자화부에 해당한다. 실시예들에 따른 인트라/인터 코딩 처리부가 본 명세서의 기하정보 예측부에 해당하며 Arithmetic 코더는 실시예들에 따른 기하정보 엔트로피 부호화부에 해당한다. (상세내용은 다른 실시예들에서 구체적으로 설명한다.)
실시예들에 따른 좌표계 변환부는 기하정보를 입력으로 받아 기존 좌표계와 다른 좌표계로 변환할 수 있다. 또는 좌표계 변환을 수행하지 않을 수 있다. 좌표계 변환된 기하정보는 기하정보 변환양자화부로 입력될 수 있다.
실시예들에 따른 좌표계 변환 여부 및 좌표계 정보는 시퀀스, 프레임, 타일, 슬라이스, 블록 등의 단위로 시그널링 될 수 있고 또는 주변 블록의 좌표계 변환여부 블록의 크기, 포인트의 개수, 양자화 값, 블록 분할 깊이, 단위의 위치, 단위와 원점과의 거리 등을 사용하여 유도될 수 있다.
실시예들에 따른 변환 하고자 하는 좌표계 정보는 좌표계 변환 여부를 확인 한 후 좌표계 변환 한다면 좌표계 정보는 시퀀스, 프레임, 타일, 슬라이스, 블록 등의 단위로 시그널링 될 수 있고 또는 주변 블록의 좌표계 변환여부 블록의 크기, 포인트의 개수, 양자화 값, 블록 분할 깊이, 단위의 위치, 단위와 원점과의 거리 등을 사용하여 유도될 수 있다.
실시예들에 따른 기하정보 변환양자화부는 기하정보를 입력으로 받아 위치 변환 또는/그리고 회전 변환과 같이 하나 또는 다수개의 변환을 적용하고 양자화 값으로 기하정보를 나누어 양자화 하여 변환양자화된 기하정보를 생성한다. 변환양자화된 기하정보는 기하정보 엔트로피 부호화부와 잔차기하정보 양자화부로 입력될 수 있다.
실시예들에 따른 기하정보 예측부는 메모리의 포인트들의 기하정보를 통해 기하정보를 예측 하여 예측된 기하정보를 생성한다. 예측에 사용된 예측 정보는 엔트로피 부호화를 수행하여 예측 정보를 부호화 할 수 있다.
실시예들에 따른 잔차기하정보 양자화부는 변환양자화된 기하정보와 예측된 기하정보를 차분한 잔차 기하정보를 입력 받아 양자화 값으로 양자화 하여 양자화된 잔차기하정보를 생성한다. 양자화된 잔차기하정보는 기하정보 엔트로피 부호화부와 잔차기하정보 역양자화부로 입력 될 수 있다.
실시예들에 따른 기하정보 엔트로피 부호화부는 양자화된 잔차기하정보를 입력 받아 엔트로피 부호화를 수행 할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
실시예들에 따른 잔차기하정보 역양자화부는 양자화된 잔차기하정보를 입력받아 양자화 값으로 스케일링 하여 잔차기하정보를 복원한다. 복원된 잔차기하정보는 상기 예측된 기하정보와 더하여 기하정보로 복원되어 메모리에 저장 될 수 있다.
실시예들에 따른 필터링부에서는 복원된 기하정보에 필터링을 수행할 수 있다. 필터링부는 디블록킹 필터, 오프셋 보정부, ALF 등을 포함할 수 있다.
실시예들에 따른 메모리는 필터링부를 통해 산출된 기하정보를 저장할 수 있다. 저장된 기하정보는 예측을 수행 시 기하정보 예측부에 제공될 수 있다.
실시예들에 따른 기하정보 부호화기는 실시예들에 따른 필터링부와 결합될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치의 기하정보 인코더는 기하정보를 필터링하는 필터를 포함할 수 있다.
실시예들에 따른 방법/장치는 실시예들에 따른 필터링하는 필터로 인하여 포인트 클라우드 데이터를 고화질로 제공할 수 있다.
도21은 실시예들에 따른 속성정보 부호화기를 나타낸다.
실시예들에 따른 속성정보 부호화기는 속성특성 변환부(2100), 기하정보 맵핑부(2101). 잔차속성정보 변환부(2102), 전차속성정보 양자화부(2103), 속성정보 엔트로피 부호화부(2004), 잔차속성정보 역양자화부(2105), 잔차속성정보 역변환부(2106), 필터링부(2107), 메모리(2108) 및/또는 속성정보 예측부(2109)를 포함할 수 있다.
실시예들에 따른 속성특성 변환부(2100)는 포인트 클라우드 데이터의 속성정보(또는 어트리뷰트 정보)의 속성특성을 변환할 수 있다.
실시예들에 따른 기하정보 맵핑부(2101)는 속성이 변환된 속성정보 및 복원된 기하정보에 기반하여 기하정보를 맵핑할 수 있다.
실시예들에 따른 잔차속성정보 변환부(2102)는 맵핑된 기하정보 및 예측된 속성 정보에 기반하여 생성된 잔차 속성정보를 변환할 수 있다. 예를 들어, 매핑된 기하정보로부터 예측된 속성정보를 감산함으로써 잔차 속성정보가 부호화기에 의해 생성될 수 있다.
실시예들에 따른 전차속성정보 양자화부(2103)는 잔차 속성 정보를 양자화할 수 있다.
실시예들에 따른 속성정보 엔트로피 부호화부(2104)는 속성정보를 엔트로피 방식에 기반하여 인코딩할 수 있다. 속성정보 엔트로피 부호화부는 속성정보를 포함하는 비트스트림을 생성할 수 있다.
실시예들에 따른 잔차속성정보 역양자화부(2105)는 잔차 속성정보를 역으로 양자화할 수 있다.
실시예들에 따른 잔차속성정보 역변환부(2106)는 잔차 속성정보를 역으로 변환할 수 있다.
실시예들에 따른 필터링부(2107)는 역변환된 잔차 속성정보 및 예측된 속성정보에 기반하여 생성된 데이터를 필터링할 수 있다. 예를 들어, 예측된 속성정보 및 역변환된 잔차 속성정보를 합산함으로써 데이터가 부호화기에 의해 생성될 수 있다.
실시예들에 따른 메모리(2108)는 필터링된 데이터를 저장할 수 있다.
실시예들에 따른 속성정보 예측부(2109)는 메모리에 저장된 데이터에 기반하여 속성정보를 예측할 수 있다. 속성정보 예측부는 예측된 속성정보를 잔차 속성정보 변환부 및/도는 잔차 속성정보 역변환부에 전달할 수 있다.
실시예들에 따른 속성정보 부호화기는 속성특성 변환부(2110), 기하정보 맵핑부(2111), 속성정보 변환부(2112), 속성정보 양자화부(2113), 및/또는 속성정보 엔트로피 부호화부(2114)를 포함할 수 있다.
실시예들에 따른 속성특성 변환부(2110)는 포인트 클라우드 데이터의 속성정보의 속성 특성을 변환할 수 있다.
실시예들에 따른 기하정보 맵핑부(2111)는 복원된 기하정보 및 변환된 속성정보에 기반하여 기하정보를 맵핑할 수 있다.
실시예들에 따른 속성정보 변환부(2112)는 속성정보를 변환할 수 있다.
실시예들에 따른 속성정보 양자화부(2113)는 속성정보를 양자화할 수 있다.
실시예들에 따른 속성정보 엔트로피 부호화부(2114)는 속성정보를 엔트로피 방식에 기반하여 인코딩할 수 있다. 속성정보 엔트로피 부호화부는 속성정보를 포함하는 비트스트림을 생성할 수 있다.
실시예들에 따른 속성정보 부호화기의 각 엘리먼트는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 조합에 대응될 수 있다.
실시예들에 따른 PCC 부호화기는 기하정보 부호화기와 속성정보 부호화기로 구성될 수 있다. 속성정보 부호화기는 다음 다이어그램과 같은 과정을 수행하여 속성정보 비트스트림을 생성할 수 있다.
실시예들에 따른 속성정보 부호화기는 속성특성 변환부, 기하정보 맵핑부, 변환부, 양자화부, 엔트로피 부호화부, 역양자화부, 역변환부, 메모리, 속성정보 예측부 등을 포함할 수 있다.
실시예들에 따른 색상변환처리부는 본 명세서의 속성정보 부호화기의 속성정보 변환부에 해당하며, 속성 변환 처리부는 본 명세서의 기하정보 맵핑부에 해당한다. 실시예들에 따른 예측/리프팅/RAHT 변환 처리부가 본 명세서의 속성정보 예측부, 전차속성정보 변환부, 잔차속성정보 양자화부로 분리되어 표현한다. 실시예들에 따른 Arithmetic 코더는 본 명세서의 속성정보 엔트로피 부호화부에 해당한다. (상세내용은 다른 실시예들에서 구체적으로 설명한다)
실시예들에 따른 속성특성 변환부는 입력 받은 속성정보의 특성을 변환할 수 있다. 예를들어 속성 정보가 색상 정보를 포함하고 있다면 속성 특성 변환부에서는 속성정보의 색공간을 변환 할 수 있다. 변환된 속성정보는 기하정보 맵핑부로 입력 될 수 있다. 또는 변환하지 않고 기하정보 맵핑부로 입력될 수 있다.
실시예들에 따른 기하정보 맵핑부는 속성정보 변환부로부터 입력 받은 속성 정보와 입력 받은 복원된 기하정보를 맵핑을 수행하여 속성 정보를 재구성한다. 속성정보 재구성은 복원된 기하정보를 기준으로 하나 또는 다수개의 포인트의 속성정보를 기초로 속성 값을 유도 할 수 있다. 재구성된 속성정보는 속성정보 예측부에서 생성된 예측된 속성정보와 차분하여 잔차속성정보 변환부로 입력될 수 있다.
실시예들에 따른 잔차속성정보 변환부는 입력 받은 잔차속성정보를 포함한 잔차 3차원 블록을 DCT, DST, DST, SADCT, RAHT 등과 같은 변환 타입을 사용하여 변환시킬 수있다. 변환된 잔차속성정보는 잔차속성정보 양자화부로 입력 될 수 있다. 또는 변환을 수행하지 않고 잔차속성정보 양자화부로 입력 될 수 있다. 변환 타입은 엔트로피 부호화부에서 엔트로피 부호화를 수행하여 복호화기로 전송 할 수 있다.
실시예들에 따른 잔차속성정보 양자화부는 입력 받은 변환된 잔차속성정보를 양자화 값을 기초로 변환양자화된 잔차속성정보를 생성한다. 변환양자화된 잔차속성정보는 속성정보 엔트로피 부호화부와 잔차속성 역양자화부로 입력될 수 있다.
실시예들에 따른 속성정보 엔트로피 부호화부는 변환양자화된 잔차속성정보를 입력 받아 엔트로피 부호화를 수행 할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
실시예들에 따른 잔차속성 역양자화부는 입력받은 변환양자화된 잔차속성정보를 입력받아 양자화 값을 기초로 변환 잔차속성정보를 생성한다. 생성된 변환 잔차속성정보는 잔차속성 역변환부로 입력될 수 있다.
실시예들에 따른 잔차속성 역변환부는 입력받은 변환 잔차속성정보를 포함한 잔차 3차원 블록을 DCT, DST, DST, SADCT, RAHT 등과 같은 변환 타입을 사용하여 역변환시킬 수 있다. 역변환된 잔차속성 정보는 속성정보 예측부로 부터 입력 받은 예측 속성정보와 합하여 복원된 속성정보를 생성할 수 있다. 또는 역변환를 하지 않고 바로 예측 속성정보와 합하여 복원된 속성정보를 생성 할 수 있다.
실시예들에 따른 필터링부는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter) 등을 포함할 수 있다. 필터링부는 복원된 속성정보에 필터링을 수행할 수 있다. 필터링은 속성정보(RGB 등)대신 기하정보 (XYZ)에 대한 필터링으로 필터링 알고리즘은 입력만 다를 뿐 그대로 사용할 수 있다.
실시예들에 따른 메모리는 필터링부를 통해 산출된 속성정보를 저장할 수 있다. 저장된 속성정보는 예측을 수행 시 속성정보 예측부에 제공될 수 있다.
실시예들에 따른 속성정보 예측부는 메모리의 포인트들의 속성정보를 기초로 예측 속성정보를 생성한다. 예측 정보는 엔트로피 부호화를 수행하여 예측 정보를 부호화 할 수 있다.
실시예들에 따른 방법/장치는 실시예들에 따른 속성정보 인코더의 동작에 기반하여 고화질의 포인트 클라우드 데이터를 제공할 수 있다.
도22는 실시예들에 따른 PCC복호화기를 나타낸다.
실시예들에 따른 PCC복호화기는 실시예들에 따라 디코더, 수신 장치, 포인트 클라우드 데이터 수신 장치 등으로 지칭될 수 있다.
실시예들에 따른 장치는 기하정보 복호화부(2200) 및/또는 속성정보 복호화부(2201)를 포함할 수 있다.
실시예들에 따른 기하정보 복호화부(2200)는 기하정보를 포함하는 비트스트림을 수신하고, 기하정보를 복호화하여 복원된 기하정보를 생성할 수 있다.
실시예들에 따른 속성정보 복호화부(2201)는 복원된 기하정보 및/또는 기하정보를 포함하는 비트스트림에 기반하여 속성정보를 복호화할 수 있다. 예를 들어, 기하정보를 포함하는 비트스트림을 수신하여, 포인트 클라우드 데이터의 속성정보를 기하정보 및/또는 복원된 기하정보에 기반하여 복호화할 수 있다. 실시예들에 따른 장치는 복호화된 기하정보 및/또는 복호화된 속성정보에 기반하여 복원된 PCC 데이터를 생성할 수 있다.
실시예들에 따른 장치의 각 엘리먼트는 하드웨어, 소프트웨어, 프로세서 및/또는 그것들의 조합에 대응될 수 있다.
실시예들에 따른 PCC 복호화기는 기하정보 복호화기, 속성정보 복호화기를 포함 할 수 있다.
실시예들에 따른 공간 분할부는 부호화기로부터 제공된 또는 복호화기에서 유도된 분할 정보를 기초로 공간을 분할할 수 있다.
실시예들에 따른 기하정보 복호화기는 입력 받은 기하정보 비트스트림을 복호화하여 기하정보를 복원한다. 복원된 기하정보는 속성정보 복호화기로 입력 될 수 있다.
실시예들에 따른 속성정보 복호화기는 입력받은 속성정보 비트스트림과 기하정보 복호화기로부터 입력 받은 복원된 기하정보를 입력 받아 속성정보를 복원한다. 복원된 속성정보는 복원된 기하정보와 함께 복원된 PCC 데이터로 구성 될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치의 디코더는 포인트 클라우드 데이터의 기하정보를 디코딩하는 기하정보 디코더, 및 포인트 클라우드 데이터의 속성정보를 디코딩하는 속성정보 디코더를 포함할 수 있다.
실시예들에 따른 방법/장치는 상술한 디코딩 동작을 통해 화질 열화 없는 포인트 클라우드 데이터를 복호화할 수 있는 효과를 제공할 수 있다.
도23은 실시예들에 따른 기하정보 복호화기를 나타낸다.
실시예들에 따른 기하정보 복호화기는 기하정보 엔트로피 복호화부(2300), 잔차 기하정보 역양자화부(2301), 기하정보 예측부(2302), 필터링부(2303), 메모리부(2304) 및/또는 좌표계 역변환부(2305)를 포함할 수 있다.
실시예들에 따른 기하정보 엔트로피 복호화부(2300)는 기하정보를 포함하는 비트스트림을 수신하여, 기하정보를 복호화할 수 있다. 예를 들어, 엔트로피 방식에 기반하여 복호화할 수 있다.
실시예들에 따른 잔차 기하정보 역양자화부(2301)는 잔차 기하정보를 역으로 양자화할 수 있다.
실시예들에 따른 기하정보 예측부(2302)는 기하정보를 예측할 수 있다. 예를 들어, 기하정보 예측부는 메모리에 저장된 기하정보에 기바낳여 기하정보를 예측할 수 있다.
실시예들에 따른 필터링부(2303)는 역양자화된 잔차 기하정보 및/또는 예측된 기하정보에 기반하여 생성된 데이터를 필터링할 수 있다. 예를 들어, 역양자화된 잔차 기하정보 및/또는 예측된 기하정보를 합산함으로써 데이터가 실시예들에 따른 장치에 의해 생성될 수 있다.
실시예들에 따른 메모리부(2304)는 필터링된 데이터를 저장할 수 있다.
실시예들에 따른 좌표계 역변환부(2305)는 메모리에 저장된 기하정보를 수신하여 기하정보의 좌표계를 역으로 변환할 수 있다. 좌표계 역변환부는 기하정보를 생성할 수 있다.
실시예들에 따른 PCC 복호화기는 기하정보 복호화기와 속성정보 복호화기로 구성될 수 있다. 기하정보 복호화기는 부호화된 기하정보 비트스트림을 입력 받아서 다음 다이어그램과 같은 과정을 수행하여 기하정보로 복원할 수 있다
실시예들에 따른 기하정보 복호화기는 기하정보 엔트로피 복호화부, 잔차 기하정보 역양자화부, 기하정보 예측부, 좌표계 역변환부가 포함될 수 있다.
실시예들에 따른 Arithmetic 디코더는 본 명세서의 기하정보 복호화기 기하정보 엔트로피 복호화부에 해당하며, Occupancy 코드 기반 옥트기 재구성 처리부와 표면 모델 처리부, Inverse 양자화 처리부는 본 명세서의 잔차 기하정보 역양자화부에 해당한다.
실시예들에 따른 기하정보 엔트로피 복호화부는 입력 비트스트림에 대해 엔트로피 복호화를 수행할 수 있다. 예를 들어, 엔트로피 복호화를 위해, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다. 기하정보 엔트로피 복호화부에서는 부호화 장치에서 수행된 기하정보 예측에 관련된 정보를 복호화할 수 있다. 엔트로피 복호화를 통해 생성된 양자화된 잔차 기하정보는 잔차기하정보 역양자화부로 입력 될 수 있다.
실시예들에 따른 잔차 기하정보 역양자화부는 양자화 파라미터와 입력 받은 양자화된 잔차 기하정보를 기초로 역양자화를 수행하여 잔차 기하정보를 생성 할 수 있다.
실시예들에 따른 기하정보 예측부는 기하정보 엔트로피 복호화부에서 제공된 예측 기하정보 생성 관련 정보와 메모리에서 제공된 이전에 복호화된 기하정보를 기초로 예측 기하정보를 생성할 수 있다. 기하정보 예측부는 인터 예측부 및 인트라 예측부를 포함할 수 있다. 인터 예측부는 부호화 장치에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용하여, 현재 예측 단위가 포함된 현재 공간의 이전 공간 또는 이후 공간 중 적어도 하나의 공간에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인트라 예측부는 현재 공간 내의 포인트의 기하정보를 기초로 예측 기하정보를 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 경우, 부호화 장치에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로, 인트라 예측을 수행할 수 있다. 예측 기하정보에 복원 잔차 기하정보를 더하여 복원 기하정보를 생성할 수 있다.
실시예들에 따른 복원 기하정보는 필터링부로 제공될 수 있다. 필터링부는 복호화부에서 제공된 필터링 관련 정보 또는 복호화기에서 유도된 복원 기하정보의 특성을 기초로 필터링을 수행할 수 있다.
실시예들에 따른 메모리는 필터링부를 통해 산출된 복원 기하정보를 저장할 수 있다.
실시예들에 따른 좌표계 역변환부는 기하정보 엔트로피 복호화부에서 제공된 좌표계 변환 관련 정보와 메모리에 저장된 복원된 기하정보를 기초로 좌표계 역변환을 수행 할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치의 기하정보 디코더는 기하정보를 필터링하는 필터를 포함할 수 있다.
실시예들에 따른 디코더의 필터링 동작은 포인트 클라우드 데이터를 고화질로 디코딩할 수 있는 효과를 제공할 수 있다.
도24는 실시예들에 따른 속성정보 복호화기를 나타낸다.
실시예들에 따른 속성정보 복호화기(또는 속성정보 디코더)는 속성정보 엔트로피 복호부(2400), 기하정보 맵핑부(2401), 잔차 속성정보 역양자화부(2402), 잔차 속성정보 역변환부(2403), 속성정보 예측부(2404), 메모리(2405) 및/또는 속성정보 역변환부(2406) 를 포함한다.
실시예들에 따른 속성정보 엔트로피 복호화부(2400)는 속성정보를 포함하는 비트스트림을 수신한다. 속성정보 엔트로피 복호화부(2400)는 수신한 속성정보를 디코딩할 수 있다. 예를 들어, 속성정보 엔트로피 복호부(2400)는 엔트로피 방식에 기반하여 속성정보를 디코딩할 수 있다.
실시예들에 따른 기하정보 맵핑부(2401)는 복호화된 속성정보 및/또는 복원된 기하정보에 기반하여 기하정보를 맵핑할 수 있다.
실시예들에 따른 잔차 속성정보 역양자화부(2402)는 잔차 속성정보를 역으로 양자화할 수 있다.
실시예들에 따른 잔차 속성정보 역변환부(2403)는 잔차 속성정보를 역으로 변환할 수 있다.
실시예들에 따른 속성정보 예측부(2404)는 메모리에 저장된 정보, 예를 들어 속성정보에 기반하여 속성정보를 예측할 수 있다.
실시예들에 따른 메모리(2405)는 예측된 속성정보 및 역변환된 잔차 속성정보를 합산한 데이터를 저장할 수 있다.
실시예들에 따른 속성정보 역변환부(2406)는 메모리에 저장된 데이터에 기반하여 속성정보를 역으로 변환할 수 있다. 속성정보 역변환부(2406)는 속성정보를 생성할 수 있다.
실시예들에 따른 PCC 복호화기는 기하정보 복호화기와 속성정보 복호화기로 구성될 수 있다. 속성정보 복호화기는 부호화된 속성정보 비트스트림을 입력 받아서 다음 다이어그램과 같은 과정을 수행하여 속성정보로 복원할 수 있다.
실시예들에 따른 속성정보 복호화기는 속성정보 엔트로피 복호화부, 기하정보 맵핑부, 잔차 속성정보 역양자화부, 잔차 속성정보 역변환부, 속성정보 예측부, 메모리, 속성정보 역변환부를 포함 할 수 있다.
실시예들에 따른 Arithmetic 디코더는 본 명세서의 속성정보 복호화기 속성정보 엔트로피 복호화부에 해당하며, Inverse 양자화 처리부는 본 명세서의 잔차 속성정보 역양자화부에 해당한다. 실시예들에 따른 예측/리프팅/RAHT 역변환 처리부는 잔차 속성 정보 역변환부와 속성 정보 예측부로 분할 표기 되었으며, 색상 역변환 처리부는 본 명세서의 속성정보 역변환부에 해당한다.
실시예들에 따른 속성정보 엔트로피 복호화 부는 입력 받은 속성 정보 비트스트림을 엔트로피 복호화 하여 변환양자화된 속성정보를 생성할 수 있다. 생성된 변환양자화된 속성정보는 기하정보 맵핑부로 입력 될 수 있다.
실시예들에 따른 기하정보 맵핑부는 속성정보 엔트로피 복호화부로부터 입력 받은 변환양자화된 속성정보와 입력 받은 복원된 기하정보를 맵핑한다. 기하정보에 맵핑된 속성정보는 잔차 속성정보 역양자화부로 입력될 수 있다.
실시예들에 따른 잔차속성정보 역양자화부는 입력 받은 변환양자화된 속성정보를 양자화 값을 기초로 역양자화를수행한다. 역양자화된 변환 잔차속성정보는 잔차 속성정보 역변환부로 입력될 수 있다. 
실시예들에 따른 잔차 속성정보 역변환부는 입력 받은 변환 잔차속성정보를 포함한 잔차 3차원 블록을 DCT, DST, DST, SADCT, RAHT 등과 같은 변환 타입을 사용하여 역변환시킬 수있다. 역변환된 잔차속성정보는 속성정보 예측 부로부터 생성된 예측 속성정보와 합하여 메모리에 저장될 수 있다. 또는 역변환을 수행하지 않고 예측 속성정보와 합하여 메모리에 저장될 수 있다.
실시예들에 따른 속성정보 예측부는 메모리의 포인트들의 속성정보를 기초로 예측 속성정보를 생성한다. 예측 정보는 엔트로피 복호화를 수행하여 얻을 수 있다.
실시예들에 따른 속성정보 역변환부는 엔트로피 복호화부로부터 속성 정보의 유형과 변환 정보를 제공받아 RGB-YUV, RGB-YUV등 다양한 색공간 역변환을 수행할 수 있다.
도25는 실시예들에 따른 필터링부를 나타낸다.
실시예들에 따른 필터링 부(2500)는 위치정보 필터링 수행여부 확인부(2501), 위치정보 필터링 선택부(2502), 위치정보 필터링 부(2503)를 포함할 수 있다.
실시예들에 따른 위치 정보 유닛:
위치 정보 유닛은 필터링을 수행할 단위를 의미하며 공간h5 분할부를 통해 분할된 하나의 3차원 블록 혹은 두개 이상의 3차원 블록의 묶음이 될 수 있다.
실시예들에 따라, 공간분할부는 슬라이스를 포함하는 타일을 생성할 수 있고, 타일은 실시예들에 따른 공간 분류의 단위일 수 있다.
실시예들에 따라, 하나의 위치 정보 유닛의 일부 혹은 전체에 대하여 필터링이 수행될 수 있으며 여기서 위치 정보는 Tri-soup의 각 면에 포함되는 Point, Tri-soup의 point를 생성하는 vertex와 edge 혹은 Octree의 leaf node(voxel), Octree의 split 정보 가 될 수 있고 이러한 데이터의 묶음(tile, slice, 프레임 전체)이 될 수 있다. 따라서 위치 정보는 point의 실제 위치 정보 혹은 point를 생성하기 위한 정보가 될 수 있다.
실시예들에 따라, 지오메트리의 종류는 옥트리 및/또는 트라이솝을 포함한다. 트라이솝도 복셀화를 하기 때문에 최종적으로 트라이솝도 포인트로 표현될 수 있다. 옥트리 및 트라이솝 간의 구분은 실시예들에 따라서 차이가 없을 수도 있다. 실시예들에 따른 위치 정보 유닛과 관련하여, 출력 데이터는 복셀기반으로 복원된 포인트들일 수 있고, 실시예들에 따른 장치는 포인트들에 필터링을 수행할 수 있다.
실시예들에 따른 필터는 포인트 기준으로 포인트에 대해 필터링 동작을 수행할 수 있다.
위치 정보 유닛은 G-PCC 부호화기와 복호화기의 설정에 따라 유동적으로(예, tile, slice, frame 단위) 변경될 수 있으며, 필터링 단위를 알려주기 위한 위치 정보 유닛의 크기 (예를들어 geometry_filtering_unit_size)등과 같은 정보가 복호화기로 전송될 수 있다.
실시예들에 따른 위치 정보 필터링 수행 여부 확인:
실시예들에 따른 위치 정보 유닛의 단위가 결정 되면 각 단위마다 위치 정보 필터링을 수행 여부를 확인한다. 부/복호화기에서 위치 정보 필터링 유닛에 대하여 위치 정보 필터링 수행 여부에 대한 정보가(geometry_filtering_flag) 전송된다면 해당 정보를 확인하는 단계가 된다. 혹은 위치 정보 필터링 수행 시 해당 유닛의 크기, 유닛 내부의 값, 주변 유닛과의 관계, 유닛의 위치(depth, fame(tile/slice) boundary 여부), qp등과 같은 정보를 이용하여 특정 값을 계산한 뒤 해당 값에 따라 필터링 수행 여부를 결정하는 단계이다.
실시예들에 따라, 예를 들어 부호화기에서 leaf 노드 단위로 geometry_filtering_flag가 전송되고 복호화기에서 해당 flag를 이용하여 각 leaf 노드마다 필터링을 수행할지 안 할지 알 수 있다.
실시예들에 따라, 예를 들어 현재 유닛의 위치 정보가 4로 양자화 된 경우 depth 3미만의 유닛에 대해서만 필터링을 수행할 수 있다.
실시예들에 따른 위치 정보 필터 선택:
실시예들에 따라, 위치 정보 필터링 수행 여부를 확인한 후 필터링을 수행하는 경우 어떤 필터를 사용하여 필터링을 수행할지 결정한다.
실시예들에 따라, 사용되는 필터는 디블록킹 필터, 오프셋 보정, ALF 등과 같은 필터가 될 수 있다. 또한, 실시예들에 따른 필터는 데이터를 모두 스무딩하게 만들 수 있다. 실시예들의 목적에 따라서, 데이터를 샤프하게 만드는 필터일 수도 있다.
실시예들에 따라, 위치 정보 필터링을 수행하는 유닛의 특징 (예를 들어 유닛의 depth, 크기, 주변 유닛의 존재 여부, qp, frame(혹은 tile 혹은 slice) boundary 여부 등)에 따라 사용되는 필터를 선택 할 수 있다.
실시예들에 따라, 선택 된 필터의 정보를 전송하기 위해 부호화기에서 어떤 필터를 사용했는지에 대한 정보(geometry_filter_index)가 복호화기로 전송될 수 있으며, 적응적으로 필터링을 수행하는 유닛의 특징(상동)에 따라 특정 필터가 고정적으로 사용될 수 있다.
실시예들에 따라, 예를 들어 현재 유닛과 인접한 유닛이 없는 경우 오프셋 보정을 통해 필터링을 수행하고 현재 유닛과 인접한 유닛이 존재하는 경우 디블록킹 필터를 수행할 수 있다.
실시예들에 따른 위치 정보 필터링:
실시예들에 따라, 어떤 필터를 사용하여 위치정보 필터링을 수행할지 결정이 되면 위치 정보 유닛에 대하여 필터링을 수행한다.
실시예들에 따라, 이때, 필터링을 수행하게 되면 필터링을 수행하기 전에 존재하던 point가 없어지거나 필터링을 수행하기 전에 존재하지 않던 point가 생성될 수 있다.
실시예들에 따라, 예를 들어 하나의 유닛(voxel)에 대하여 {{{1,1,1},{1,1,1},{1,1,1}}, {{1,1,1},{1,1,1},{1,1,1}}, {{1,1,1},{1,1,1},{1,1,1}} }의 3차원 필터를 수행한 뒤 해당 값이 7이상인 경우에 1, 아닌 경우 0으로 하여 필터링을 수행하면 아래 그림과 같이 voxel의 모서리에 존재하는 point들이 사라지게 된다.
실시예들에 따라, 위치 정보를 생성하기 위한 특정 평면(이하 평면)에 포함되는 point에 위치 정보 필터링을 수행할 경우, 특정 평면 위에 존재하던 위치 정보들이 평면 밖의 다른 point에 맵핑 될 수 있다.
실시예들에 따라, 하나 이상의 평면에 포함되는 point에 위치 정보 필터링을 수행하는 경우, 위치 정보 필터링이 수행된 평면들 사이의 연결을 부드럽게 만들어 줄 수 있다
실시예들에 따라, 평면을 구성하는 정보(예를 들면 꼭지점과 모서리)에 대하여(하나 혹은 여러 개) 위치 정보 필터링을 수행하는 경우, 평면의 위치가 변경되어 필터링을 수행하지 않은 경우의 위치 정보와 다른 위치 정보들이 생성될 수 있다
실시예들에 따라, 3차원 블록에 대하여 위치 정보 필터링을 수행 경우, 3차원 블록에 포함되는 point 들의 일부가 없어지거나 생성될 수 있다
실시예들에 따른 포인트 클라우드 데이터 송신 장치의 필터는 포인트 클라우드 데이터의 제1시그널링 정보에 기초하여 기하정보의 위치정보 유닛에 대해 위치 정보 필터링 수행 여부를 확인하고, 포인트 클라우드 데이터의 제2 시그널링 정보에 기초하여 위치정보 유닛에 대한 필터를 선택하고, 선택된 필터에 기초하여 위치정보 유닛을 필터링할 수 있다. 실시예들에 따른 제1시그널링 정보 및/또는 제2시그널링 정보는 실시예들에 따른 필터링 동작에 관련된 시그널링 정보 등을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치의 필터는 포인트 클라우드 데이터의 제1시그널링 정보에 기초하여 기하정보의 위치정보 유닛에 대해 위치 정보 필터링 수행 여부를 확인하고, 포인트 클라우드 데이터의 제2 시그널링 정보에 기초하여 위치정보 유닛에 대한 필터를 선택하고, 선택된 필터에 기초하여 위치정보 유닛을 필터링할 수 있다.
실시예들은 G-PCC의 지오메트리 손실 압축시 지오메트리 양자화 과정에서 발생할 수 있는 화질 열화 현상을 보완하기 위한 방법으로, 지오메트리 필터링부(필터)를 송신단(송싡장치 또는 인코더)/수신단(수신 장치 또는 디코더)에 추가하고, 지오메트리 필터링을 수행하기 위해 필요한 데이터를 시그널링함으로써 지오메트리 양자화 과정에서 발생하는 화질 열화 현상을 줄여 사용자에게 보다 고화질의 포인트 클라우드 콘텐츠를 제공할 수 있다
실시예들에 따른 필터링은 포인트 클라우드 데이터를 자연스럽고 부드럽게 표현되도록 포인트들 설정값 등을 변경할 수 있다.
실시예들에 따라서, 필터링은 Bilateral Filter이 적용될 수 있다.
Bilateral Filter는 어트리뷰트 Ix 를 갖는 포지션 Px 에서 샘플 x의 필터링일 수 있고, 이하의 수식처럼 표현될 수 있다.
Figure PCTKR2019016375-appb-img-000008
Wg 및Wa 각각 디크리싱 지오메트릭의 웨이팅 펑션들 및 샘플들의 인텐시티 디스턴스에 대응할 수 있다.
파라미터 NN 는 LOD빌딩 프로세스 내 니어스트 네이버 서치로부터 네이버 샘플들의 개수이다. 샘플들의 리컨스럭션된 값들은 프레딕션 타임에서 이용가능하다. 또한, 인덱스 n=0는 필터링되는 샘플x에 대응한다. 필터는 프레딕티브-트랜스폼 내 각 픽셀을 위한 리컨스트럭션 이후 바로 적용된다. 필터링된 값은 오리지날 리컨스트럭션을 대체한다. 이들은 후속하는 픽셀들의 프레딕션을 위해 사용될 수 있다.
필터링 스트렝스는 이하의 변수에 의해 제어될 수 있다.
Figure PCTKR2019016375-appb-img-000009
도26은 실시예들에 따른 인코딩된 포인트 클라우드 데이터의 구성을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터는 도면과 같은 비트스트림의 형태를 가질 수 있다. 포인트 클라우드 데이터는 실시예들에 따른 시그널링정보 등을 포함하는 SPS(Sequence Parameter Set), GPS(Geometry Parameter Set), APS(Attribute Parameter Set), TPS(Tile Parameter Set)를 포함할 수 있다. 포인트 클라우드 데이터는 하나 또는 하나 이상의 지오메트리 및/또는 어트리뷰트를 포함할 수 있다. 포인트 클라우드 데이터는 지오메트리 및/또는 어트리뷰트는 하나 또는 하나 이상의 슬라이스 단위로 포함할 수 있다. 지오메트리는 지오메트리 슬라이스 헤더 및 지오메트리 슬라이스 데이터의 구조를 가질 수 있다. 예를 들어, 시그널링 정보를 포함하는 TPS는 Tile(0). tile_bounding_box_xyz0, Tile(0)_tile_bounding_box_whd 등을 포함할 수 있다. 지오메트리는 geom_geom_parameter_set_id, geom_tile_id, geom_slice_id, geomBoxOrigin, geom_box_log2_scale, geom_max_node_size_log2, geom_num_points 등을 포함할 수 있다.
실시예들에 따른 포인트 클라우드 데이터의 구성에 기반하여, 실시예들에 따른 필터링부는 필터링에 관련된 시그널링 정보를 시그널링할 수 있다.
실시예들에 따른 약자 용어의 의미는 다음과 같다: SPS: Sequence Parameter Set, GPS: Geometry Parameter Set, APS: Attribute Parameter Set, TPS: Tile Parameter Set, Geom: Geometry bitstream = geometry slice header+ geometry slice data, Attr: Attrobite bitstream = attribute blick header + attribute brick data.
실시예들에 따른 필터링 정보는 SPS, GPS, 또는 APS에 추가되어 시그널링 할 수 있다.
실시예들에 따라, 포인트 클라우드를 영역별로 나누어 처리할 수 있도록 타일(tile), 또는 슬라이스(slice)를 제공한다.
실시예들에 따라, 영역별로 나눌때 각각의 영역은 서로 다른 중요도를 가질 수 있다.
실시예들에 따라, 그 중요도에 따라서 다른 필터, 다른 필터 유닛을 적용할 수 있게 제공함으로써 복잡도(complexity)는 높으나 결과 품질(quality)가 좋은 필터링 방법을 중요한 영역에 사용할 수 있는 방안을 제공할 수 있다.
실시예들에 따라, 수신기의 처리능력(capacity)에 따라서 포인트 클라우드 전체에 복잡한 필터링 방법을 사용하는 대신 영역별로 (타일로 나누어지거나 슬라이스로 나누어진 영역) 서로 다른 필터링을 적용할 수 있게 함으로서 사용자에게 중요한 영역에 더 좋은 화질과 시스템 상으로 적절한 레이턴시(latency)을 보장할 수 있다.
실시예들에 따라, 포인트 클라우드는 타일로 나누어지는 경우, 각 타일별로 다른 필터, 다른 필터 유닛을 적용할 수 있다.
실시예들에 따라, 포인트 클라우드는 슬라이스로 나누어지는 경우, 각 슬라이스별로 다른 필터, 다른 필터 유닛을 적용할 수 있다.
실시예들에 따라, 필터링 정보는 TPS 또는 각 Slice별 Geom 또는 Slice별 Attr에 추가되어 시그널링 할 수 있다.
실시예들에 따른 포인트 클라우드 데이터의 구조는 시그널링 정보를 포함하는 파라미터 세트(들), 지오메트리(들), 어트리뷰트(들)을 인코딩/디코딩/데이터 어세스 관점에서 효율적인 효과를 제공할 수 있다.
실시예들에 따른 포인트 클라우드 데이터 송신/수신 장치에 관련된 포인트 클라우드 데이터는 시퀀스 파라미터, 지오메트리 파라미터, 어트리뷰트 파라미터, 타일 파라미터, 지오메트리 비트스트림 또는 어트리뷰트 비트스트림 중 적어도 하나를 포함할 수 있다.
도27은 실시예들에 따른 SPS의 필터링 정보를 나타낸다.
실시예들에 따른 장치 및/또는 방법은 실시예들에 따른 필터링 정보를 SPS에 포함시켜서 시그널링할 수 있다.
실시예들에 따른 필터링 관련 정보의 설명은 다음과 같다.
실시예들에 따른 geometry_filtering_flag : 위치 정보 필터링 수행 여부
실시예들에 따른 geometry_filtering_unit_size : 위치 필터링 단위를 알려주기 위한 위치 정보 유닛의 크기
실시예들에 따른 geometry_filter_index : 사용된 필터 정보, 1=디블록킹 필터, 2=오프셋 보정, 3=ALF, 4~=reserved
1=디블록팅 필터 : 블록 부호화 기술이 사용될 때 매크로블록 사이에 형성되는 날카로운 모서리를 부드럽게 만들어 영상 품질과 예측 성능을 향상시키기 위해 디코딩된 영상 속 블록에 적용되는 영상 필터이다. 디블로킹 필터는 디코딩된 화상의 질을 향상시킬 수 있다.
2=오프셋 보정: 오차 패턴을 보상 해 줄 수 있도록 적응적 샘플 오프셋을 수행하여 복원 기하정보를 보상하는 처리하여 기하정보의 왜곡 현상을 감소시킬 수 있다.
3= ALF(Adaptive Loop Filter): 통계적인 특성을 이용한 필터 계수를 추출하여 필터링을 수행하여 화질을 향상시킬 수 있다.
실시예들에 따른 profile_idc 은 Annex A 에서 기술된 바와 같이 비트스트림이 따르는 프로파일을 나타낸다. 비트스트림은 Annex A 에서 다르게 기술된 profile_idc의 값을 포함하지 않는다. profile_idc의 다른 값들은 ISO/IEC에 의해 미래 사용을 위해 예약된다(indicates a profile to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of profile_idc other than those specified in Annex A. Other values of profile_idc are reserved for future use by ISO/IEC).
실시예들에 따른 profile_compatibility_flags 이 1이면, 비트스트림이 Annex A 에서 기술된 바와 같이 j와 같은 profile_idc에 의해 표현되는 프로파일을 따르는 것을 나타낸다. profile_compatibility_flag[ j ]의 값은 Annex A 내의 profile_idc의 허락된 값으로 기술되지 않는 j의 값을 위한 0과 같을 수 있다(equal to 1, indicates that the bitstream conforms to the profile indicated by profile_idc equal to j as specified in Annex A. The value of profile_compatibility_flag[ j ] shall be equal to 0 for any value of j that is not specified as an allowed value of profile_idc in Annex A).
실시예들에 따른 level_idc 은 Annex A 내 기술된 바와 같이 비트 스트림이 따르는 레벨을 나타낸다. 비트스트림은 Annex A 내 기술된 것과 다른 level_idc의 값들을 포함하지 않는다. level_idc의 다른 값들은 ISO/IEC에 의한 미래 사용을 위해 예약된다(indicates a level to which the bitstream conforms as specified in Annex A. Bitstreams shall not contain values of level_idc other than those specified in Annex A. Other values of level_idc are reserved for future use by ISO/IEC).
실시예들에 따른 sps_bounding_box_present_flag 이 1이면, 바운딩 박스 오프셋을 나타내고, 사이즈 인포메이션이 시그널링된다(equal to 1 specifies the bounding box offset and size information is signalled. sps_bounding_box_present_flag equal to 0 specifies)
실시예들에 따른 sps_bounding_box_offset_x 은 cartesian coordinates 내 소스 바운딩 박스의 x 오프셋을 나타낸다. 이 값이 존재하지 않는 경우, sps_bounding_box_offset_x의 값은 0으로 추론된다(indicates the x offset of the source bounding box in the cartesian coordinates… . When not present, the value of sps_bounding_box_offset_x is inferred to be 0).
실시예들에 따른 sps_bounding_box_offset_y 은 cartesian coordinates 내 소스 바운딩 박스의 y 오프셋을 나타낸다. 존재하지 않는 경우, sps_bounding_box_offset_y의 값은 0으로 추론된다(indicates indicates the y offset of the source bounding box in the cartesian coordinates. When not present, the value of sps_bounding_box_offset_y is inferred to be 0.… When not present, the value of sps_bounding_box_offset_y is inferred to be 0).
실시예들에 따른 sps_bounding_box_offset_z 은 Cartesian coordinates 내 소스 바운딩 박스의 z 오프셋을 나타낸다. 존재하지 않는 경우, sps_bounding_box_offset_z의 값은 0으로 추론된다(indicates indicates the z offset of the source bounding box in the Cartesian coordinates. When not present, the value of sps_bounding_box_offset_z is inferred to be 0.… When not present, the value of sps_bounding_box_offset_z is inferred to be 0).
실시예들에 따른 sps_bounding_box_scale_factor 는 Cartesian coordinates 내 소스 바운딩 박스의 스케일 팩터를 나타낸다. 존재하지 않는 경우, sps_bounding_box_scale_factor의 값은 1로 추론된다. 실시예들에 따라, 존재하지 않는 경우 sps_bounding_box_scale_factor의 값은 0으로 추론될 수 있다(indicates the scale factor the source bounding box in the Cartesian coordinates. When not present, the value of sps_bounding_box_scale_factor is inferred to be 1. indicates … When not present, the value of sps_bounding_box_scale_factor is inferred to be 0).
실시예들에 따른 sps_bounding_box_size_width 는 Cartesian coordinates 내 소스 바운딩 박스의 너비를 나타낸다. 존재하지 않는 경우, sps_bounding_box_size_width의 값은 10으로 추론된다(indicates the width of the source bounding box in the Cartesian coordinates. … When not present, the value of sps_bounding_box_size_width is inferred to be 10).
실시예들에 따른 sps_bounding_box_size_height 은 Cartesian coordinates 내 소스 바운딩 박스의 높이를 나타낸다. 존재하지 않는 경우, sps_bounding_box_size_height의 값은 1로 추론된다. 실시예들에 따라 존재하지 않는 경우, sps_bounding_box_size_height의 값은 0으로 추론된다(indicates the height of the source bounding box in the Cartesian coordinates. When not present, the value of sps_bounding_box_size_height is inferred to be 1.indicates … When not present, the value of sps_bounding_box_size_hieght is inferred to be 0).
실시예들에 따른 sps_bounding_box_size_depth 은 Cartesian coordinates 내 소스 바운딩 박스의 뎁스를 나타낸다. 존재하지 않는 경우, sps_bounding_box_size_depth의값은 1로 추론된다. 실시예들에 따라 존재하지 않는 경우, sps_bounding_box_size_depth의 값은 0으로 추론된다(indicates the depth of the source bounding box in the Cartesian coordinates. When not present, the value of sps_bounding_box_size_depth is inferred to be 1.indicates … When not present, the value of sps_bounding_box_size_depth is inferred to be 0).
실시예들에 따른 sps_source_scale_factor 는 소스 포인트 클라우드의 스케일 팩터를 나타낸다(indicates the scale factor of the source point cloud.… )
실시예들에 따른 sps_seq_parameter_set_id 는 다른 신택스 엘리먼트들에 의한 레퍼런스를 위한 SPS에 대한 식별자를 제공한다. sps_seq_parameter_set_id의 값은 본 문서의 버전을 따르는 비트스트림 내 0 내지 15(포함)의 범위 내에 있을 수 있다. sps_seq_parameter_set_id을 위한 0과 다른 값은 ISO/IEC에 의한 미래 사용을 위해 예약된다(provides an identifier for the SPS for reference by other syntax elements. In The value of sps_seq_parameter_set_id shall be in the range of 0 to 15, inclusive0 in bitstreams conforming to this version of this Specification.. The value other than 0 for sps_seq_parameter_set_id is reserved for future use by ISO/IEC).
실시예들에 따른 sps_num_attribute_sets 는 비트스트림 내 코딩된 어트리뷰트들의 개수를 나타낸다. sps_num_attribute_sets의 값은 0 내지 64의 범위 내에 있을 수 있다(indicates the number of coded attributes in the bitstream. The value of sps_num_attribute_sets shall be in the range of 0 to 64).
실시예들에 따른 attribute_dimension[ i ] 는 i번째 어트리뷰트의 컴포넌트들의 개수를 나타낸다(specifies the number of components of the i-th attribute).
실시예들에 따른 attribute_instance_id[ i ] 는 어트리뷰트 인스턴스 id를 나타낸다(specifies attribute instance id).
실시예들에 따른 attribute_bitdepth[ i ] 는 i번째 어트리뷰트 시그널(들)의 비트뎁스를 나타낸다(specifies the bitdepth of the i-th attribute signal(s)).
실시예들에 따른 attribute_cicp_colour_primaries[ i ] 는 컬러 어트리뷰트 소스 프라이머리들의 chromaticity coordinates를 나타낸다(indicates the chromaticity coordinates of the colour attribute source primaries).
실시예들에 따른 attribute_cicp_transfer_characteristics[ i ] 는 0 내지 1의 노미널 리얼-밸류 범위를 갖는 소스 인풋 리니어 옵티컬 인텐시티 Lc의 펑션으로서의 컬러 어트리뷰트의 reference opto-electronic transfer characteristic function을 나타내거나, 또는 0 내지 1의 노미널 리얼-밸류 범위를 갖는 아웃풋 리니어 옵티걸 인텐시티 Lo의 펑션으로서의 reference electro-optical transfer characteristic function의 인버스를 나타낸다(either indicates the reference opto-electronic transfer characteristic function of the colour attribute as a function of a source input linear optical intensity Lc with a nominal real-valued range of 0 to 1 or indicates the inverse of the reference electro-optical transfer characteristic function as a function of an output linear optical intensity Lo with a nominal real-valued range of 0 to 1).
실시예들에 따른 attribute_cicp_matrix_coeffs[ i ] 는 그린, 블루, 레드 또는 X, Y, Z 프라이머리들로부터 루마, 크로마 시그널들을 유도하는데 사용되는 메트릭스 코이피션트들을 나타낸다(describes the matrix coefficients used in deriving luma and chroma signals from the green, blue, and red, or Y, Z, and X primaries).
실시예들에 따른 attribute_cicp_video_full_range_flag[ i ] 는 ′Y, E′PB, 및E′PR 또는 E′R, E′G, 및E′B 리얼-밸류 컴포넌트 시그널들로부터 유도된 루마 및 크로마 시그널들의 블랙 레벨 및 범위를 나타낸다(specifies indicates the black level and range of the luma and chroma signals as derived from E′Y, E′PB, and E′PR or E′R, E′G, and E′B real-valued component signals).
실시예들에 따른 known_attribute_label_flag[ i ] 이 1이면, know_attribute_label이 i번째 어트리뷰트를 위해 시그널링된다. known_attribute_label_flag[ i ]이 0이면, attribute_label_four_bytes가 i번째 어트리뷰트를 위해 시그널링된다(equal to 1 specifies know_attribute_label is signalled for the i-th attribute. known_attribute_label_flag[ i ] equal to 0 specifies attribute_label_four_bytes is signalled for the i-th attribute).
실시예들에 따른 known_attribute_label[ i ] 이 0이면, 어트리뷰트가 컬러임을 나타낸다. known_attribute_label[ i ]이 1이면, 어트리뷰트가 리플렉턴스임을 나타낸다. known_attribute_label[ i ]이 2이면, 어트리뷰트가 프레임 인덱스임을 나타낸다(equal to 0 specifies the attribute is colour. known_attribute_label[ i ] equal to 1 specifies the attribute is reflectance. known_attribute_label[ i ] equal to 2 specifies the attribute is farme index).
실시예들에 따른 attribute_label_four_bytes[ i ] 은 i번째 어트리뷰트를 위한 어트리뷰트의 라벨을 나타낸다.
실시예들에 따른 sps_extension_present_flag 이 1이면, sps_extension_data 신택스가 SPS RBSP 신택스 구조 내 존재함을 나타낸다. sps_extension_present_flag이 0이면, 이 신택스 구조는 존재하지 않음을 나타낸다. 존재하지 않는 경우, sps_extension_present_flag의 값은 0으로 추론된다(equal to 1 specifies that the sps_extension_data syntax structure is present in the SPS RBSP syntax structure. sps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present, the value of sps_extension_present_flag is inferred to be equal to 0).
실시예들에 따른 sps_extension_data_flag 은 어느 값이든 가질 수 있다. 그것의 존재 및 값은 Annex A내 기술된 프로파일들을 따르는 디코더에 영향을 주지 않는다. 디코더는 Annex A내 기술된 프로파일을 따른다(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A Decoders conforming to a profile specified in Annex A).
실시예들에 따른 방법/장치는 실시예들에 따른 필터링 관련 정보인 필터링 수행 여부, 필터링 유닛 및 종류 등을 시그널링할 수 있다. 포인트 클라우드 데이터의 종류 또는 타입에 따라서 필터링 동작을 결합하여 최적의 데이터를 제공할 수 있는 효과가 있다.
도28은 실시예들에 따른 GPS의 필터링 정보를 나타낸다.
실시예들에 따른 장치 및/또는 방법은 실시예들에 따른 필터링 정보를 GPS에 포함시켜서 시그널링할 수 있다.
실시예들에 따른 GPS는 필터링에 관련된 정보를 포함할 수 있다.
실시예들에 따른 gps_geom_parameter_set_id 는 다른 신택스 엘리먼트들에 의한 레퍼런스를 위한 GPS를 위한 식별자를 제공한다. gps_seq_parameter_set_id의 값은 0내지15(포함)의 범위 내에 있을 수 있다(provides an identifier for the GPS for reference by other syntax elements. The value of gps_seq_parameter_set_id shall be in the range of 0 to 15, inclusive).
실시예들에 따른 gps_seq_parameter_set_id 는 액티브 SPS를 위한 sps_seq_parameter_set_id의 값을 나타낸다. gps_seq_parameter_set_id의 값은 0내지15(포함)의 범위 내에 있을 수 있다(specifies the value of sps_seq_parameter_set_id for the active SPS. The value of gps_seq_parameter_set_id shall be in the range of 0 to 15, inclusive).
실시예들에 따른 geometry_coding_type 는 지오메트리를 위한 코딩 타입을 나타낸다. geometry _coding_type의 값은 비트스트림 내에서 0 또는 1일 수 있다. geometry_coding_type의 다른 값들은 ISO/IEC에 의한 미래 사용을 위해 예약될 수 있다. 디코더들은 geometry_coding_type의 예약된 값들을 무시할 수 있다. 예를 들어, = Octree, 1=Triangle Soup (Trisoup) 을 나타낼 수 있다(indicates that the coding type for the geometry in Table 7 1Table 7 1 for the given value of geometry_coding_type. The value of geometry _coding_type shall be equal to 0 or 1 in bitstreams conforming to this version of this Specification. Other values of geometry_coding_type are reserved for future use by ISO/IEC. Decoders conforming to this version of this Specification shall ignore reserved values of geometry_coding_type. 0= Octree, 1=Triangle Soup (Trisoup))
실시예들에 따른 gps_box_present_flag 가 1이면, 현재 GPS를 참조하는 지오메트리 헤더 내 additional bounding box information가 제공됨을 나타낼 수 있다. gps_bounding_box_present_flag이 0이면, 지오메트리 헤더 내 additional bounding box information가 시그널링되지 않음을 나타낼 수 있다(equal to 1 specifies an additional bounding box information is provided in a geometry header that references the current GPS. gps_bounding_box_present_flag equal to 0 specifies that additional bounding box information is not signalled in the geometry header).
실시예들에 따른 unique_geometry_points_flag 가 1이면, 모든 아웃풋 포인트들이 유니크한 포지션들을 가짐을 나타낸다. unique_geometry_points_flag이 0이면, 아웃풋 포인트들이 같은 포지션들을 가짐을 나타낸다(equal to 1 indicates that all output points have unique positions. unique_geometry_points_flag equal to 0 indicates that the output points may have same positions).
실시예들에 따른 neighbour_context_restriction_flag 이 0이면, 옥트리 어큐판시 코딩이 여섯 개의 이웃 부모 노드들로부터 결정된 컨택스트들을 사용함을 나타낸다. neighbour_context_restriction_flag이 1이면, 옥트리 코딩이 시블링 노드들로부터 결정된 컨텍스트들을 사용함을 나타낸다(equal to 0 indicates that octree occupancy coding uses contexts determined from six neighbouring parent nodes. neighbour_context_restriction_flag equal to 1 indicates that octree coding uses contexts determined from sibling nodes only).
실시예들에 따른 inferred_direct_coding_mode_enabled_flag 이 0이면, 옥트리 코딩이 inferred_direct_coding_mode를 사용함을 나타낸다. inferred_direct_coding_mode_enabled_flag이 1이면, 옥트리 코딩이 시블링 이웃 노드들로부터 결정된 멀티플 컨텍스트들을 사용함을 나타낸다(equal to 0 indicates the octree coding uses inferred_direct_coding_mode. inferred_direct_coding_mode_enabled_flag equal to 1 indicates the octree coding uses multiple context determined from sibling neighbouring nodes).
실시예들에 따른 bitwise_occupancy_coding_flag 이 0이면, 비트와이즈 어큐판시 코딩이 사용되지 않음을 나타내고, 1이면 비트와이 어큐판시 코딩이 사용됨을 나타낸다(또는 그 반대).
실시예들에 따른 child_neighbours_enabled_flagfalse_neighbour_removal_enabled_flag 에 대해, child_neighbours_enabled_flag가 0이면, 자식 이웃들의 활성화여부를 나타내고, false_neighbour_removal_enabled_flag은 이웃의 리무벌의 활성화 여부를 나타낸다.
실시예들에 따른 adjacent_child_contextualisation_enabled_flag equal to 0 indicates…
실시예들에 따른 geom_occupancy_ctx_reduction_factor 은 지오메트리 어큐판시 컨텍스트 관련 리덕션의 팩터를 나타낸다.
실시예들에 따른 log2_neighbour_avail_boundary 는 변수 NeighbAvailBoundary의 값을 나타낸다. 변수 NeighbAvailBoundary는 다음과 같은 디코딩 프로세스에서 사용된다: NeighbAvailBoundary = 2 log2_neighbour_avail_boundary
(specifies the value of the variable NeighbAvailBoundary that is used in the decoding process as follows:
NeighbAvailBoundary = 2 log2_neighbour_avail_boundary )
neighbour_context_restriction_flag이 1이면, NeighbAvailabilityMask는 13과 같다. 반면에, neighbour_context_restriction_flag이 0이면, NeighbAvailabilityMask이 1 << log2_neighbour_avail_boundary으로 세팅된다(When neighbour_context_restriction_flag is equal to 1, NeighbAvailabilityMask is set equal to 13. Otherwise, neighbour_context_restriction_flag equal to 0, NeighbAvailabilityMask is set equal to (1 << log2_neighbour_avail_boundary)).
log2_intra_pred_max_node_size 는 로그2 인트라 프레딕션 맥시멈 노드 사이즈를 나타낸다.
log2_trisoup_node_size 는 다음과 같은 트라이앵글 노드들의 사이즈와 같은 변수 TrisoupNodeSize를 나타낸다: TrisoupNodeSize = 2 log2_trisoup_node_size
(specifies the variable TrisoupNodeSize as the size of the triangle nodes as follows.
TrisoupNodeSize = 2 log2_trisoup_node_size )
log2_trisoup_node_size의 값은 0보다 같거나 클 수 있다.
log2_trisoup_node_size이 0이면, 지오메트리 비트스트림은 오직 옥트리 코딩 신택스를 포함할 수 있다(The value of log2_trisoup_node_size shall be equal to or greater than 0. When log2_trisoup_node_size is equal to 0, the geometry bitstream includes only the octree coding syntax).
trisoup_depth 는 포인트 코디네이트의 각 컴포넌트를 나타내기 위해서 사용되는 비트들의 개수를 나타낸다. trisoup_depth의 값은 2 내지 21의 범위 내에 있을 수 있다(specifies the number of bits used to represent each component of a point coordinate. The value of trisoup_depth shall be in the range of 2 to 21. [Ed(df): 21 should perhaps be a level limit].
trisoup_triangle_level 는 옥트리가 프루닝되는 레벨을 나타낸다. of trisoup_triangle_level의 값은 1 내지 trisoup_depth-1의 범위 내에 있을 수 있다(specifies the level at which the octree is pruned. The value of trisoup_triangle_level shall be in the range of 1 to trisoup_depth-1).
gps_extension_present_flag 이 1이면, gps_extension_data 신택스 스트럭쳐가 GPS RBSP 신택스 스트럭쳐 내 있을 수 있음을 나타낼 수 있다. gps_extension_present_flag가 0이면, 이 신택스 스트럭쳐가 존재하지 않음을 나타낼 수 있다. 존재하지 않는 경우, gps_ extension_present_flag의 값은 0과 같다고 해석될 수 있다(equal to 1 specifies that the gps_extension_data syntax structure is present in the GPS RBSP syntax structure. gps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present, the value of gps_ extension_present_flag is inferred to be equal to 0).
gps_extension_data_flag 는 어떠한 값도 가질 수 있다. 이 값의 존재 및 값은 디코더에 영향을 주지 않을 수 있다(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A. Decoders conforming to a profile specified in Annex A).
실시예들에 따른 방법/장치는 실시예들에 따른 필터링 관련 정보인 필터링 수행 여부, 필터링 유닛 및 종류 등을 시그널링할 수 있다. 포인트 클라우드 데이터의 종류 또는 타입에 따라서 필터링 동작을 결합하여 최적의 데이터를 제공할 수 있는 효과가 있다.
도29는 실시예들에 따른 APS의 필터링 정보를 나타낸다.
실시예들에 따른 필터링 관련 정보는 APS에 추가되어 시그널링될 수 있다.
실시예들에 따른 aps_attr_parameter_set_id provides an identifier for the APS for reference by other syntax elements. The value of aps_attr_parameter_set_id shall be in the range of 0 to 15, inclusive.
실시예들에 따른 aps_seq_parameter_set_id specifies the value of sps_seq_parameter_set_id for the active SPS. The value of aps_seq_parameter_set_id shall be in the range of 0 to 15, inclusive.
실시예들에 따른 attr_coding_type indicates that the coding type for the attribute in Table 7 2Table 7 2 for the given value of attr_coding_type. The value of attr_coding_type shall be equal to 0, 1, or 2 in bitstreams conforming to this version of this Specification. Other values of attr_coding_type are reserved for future use by ISO/IEC. Decoders conforming to this version of this Specification shall ignore reserved values of attr_coding_type. 0 = Predicting weight lifting, 1 = Region Adaptive Hierarchical Transferm (RAHT), 2= Fixed weight lifting
실시예들에 따른 num_pred_nearest_neighbours specifies the maximum number of nearest neighbours to be used for prediction. The value of numberOfNearestNeighboursInPrediction shall be in the range of 1 to xx.
실시예들에 따른 max_num_direct_predictors specifies the maximum number of predictor to be used for direct prediction. The value of max_num_direct_predictors shall be range of 0 to num_pred_nearest_neighbours. The value of the variable MaxNumPredictors that is used in the decoding process as follows: MaxNumPredictors = max_num_direct_predicots + 1
실시예들에 따른 lifting_search_range 는 리프팅을 위한 서치 범위를 나타내다(specifies search range for the lifting).
실시예들에 따른 lifting_quant_step_size 어트리뷰트의 1 st 컴포넌트를 위한 양자화 스텝 사이즈를 나타낸다. 이 값은 1 내지 xx의 범위를 가질 수 있다(specifies the quantization step size for the 1st component of the attribute. The value of quant_step_size shall be in the range of 1 to xx).
실시예들에 따른 lifting_quant_step_size_chroma 어트리뷰트가 컬러인 경우 어트리뷰트의 크로마 컴포넌트를 위한 양자화 스텝 사이즈를 나타낸다(specifies the quantization step size for the chroma component of the attribute when the attribute is colour. The value of quant_step_size_chroma shall be in the range of 1 to xx).
실시예들에 따른 lod_binary_tree_enabled_flag 는 로그 제너레이션을 위해 바이너트 트리가 인에이블한지 여부를 나타낸다(specifies whether binary tree is enable or not for the log generation).
실시예들에 따른 num_detail_levels_minus1 는 어트리뷰트 코딩을 위한 디테일의 레벨들의 개수를 나타낸다. 이 값은 0 내지 xx의 범위를 가질 수 있다(specifies the number of levels of detail for the attribute coding. The value of num_detail_levels_minus1 shall be in the range of 0 to xx).
실시예들에 따른 sampling_distance_squared [ idx ] idx를 위한 샘플링 디스턴스의 스퀘어를 나나탠다. 이 값은 0 내지 xx의 범위를 가질 수 있다(specifies the square of the sampling distance for idx. The value of sampling_distance_squared[] shall be in the range of 0 to xx).
실시예들에 따른 adaptive_prediction_threshold 프레딕션의 스레드홀드를 나타낸다(specifies the threshold of prediction).
실시예들에 따른 raht_depth RAHT를 위한 디테일의 레벨들의 개수를 나타낸다. 이 값은 1 내지 xx의 범위를 가질 수 있다(specifies the number of levels of detail for RAHT. The value of depthRAHT shall be in the range of 1 to xx).
실시예들에 따른 raht_binarylevel_threshold 는 RAHT 코이피션트를 컷 아웃하기 위한 디테일의 레벨들을 나타낸다. 이 값은 0 내지 xx의 범위를 가실 수 있다(specifies the levels of detail to cut out the RAHT coefficient. The value of binaryLevelThresholdRAHT shall be in the range of 0 to xx).
실시예들에 따른 raht_quant_step_size 는 어트리뷰트의 1 st 컴포넌트를 위한 양자화 스텝 사이즈를 나타낸다. 이 값은 1 내지 xx의 범위를 가질 수 있다(specifies the quantization step size for the 1st component of the attribute. The value of quant_step_size shall be in the range of 1to xx).
실시예들에 따른 aps_extension_present_flag 이 1이면, aps_extension_data 신택스 구조는 APS RBSP 신택스 구조 내에 존재함을 나타낸다. 이 갓이 0이면, 이 신택스 구조는 존재하지 않음을 나타낸다. 존재하지 않는 경우, aps_ extension_present_flag의 값은 0으로 해석될 수 있다(equal to 1 specifies that the aps_extension_data syntax structure is present in the APS RBSP syntax structure. aps_extension_present_flag equal to 0 specifies that this syntax structure is not present. When not present, the value of aps_ extension_present_flag is inferred to be equal to 0).
실시예들에 따른 aps_extension_data_flag 는 어떠한 값도 가질 수 있다. 그것의 존재 및 값은 본 문서의 프로파일을 따르는 디코더에 영향을 주지 않는다(may have any value. Its presence and value do not affect decoder conformance to profiles specified in Annex A. Decoders conforming to a profile specified in Annex A).
실시예들에 따른 방법/장치는 실시예들에 따른 필터링 관련 정보인 필터링 수행 여부, 필터링 유닛 및 종류 등을 시그널링할 수 있다. 포인트 클라우드 데이터의 종류 또는 타입에 따라서 필터링 동작을 결합하여 최적의 데이터를 제공할 수 있는 효과가 있다.
도30은 실시예들에 따른 TPS의 필터링 정보를 나타낸다.
실시예들에 따른 필터링 정보는 TPS에 추가되어 시그널링될 수 있다.
실시예들에 따른 num_tiles 은 비트스트림을 위해 시그널링되는 타일들의 개수를 나타낸다. 존재하지 않는 경우, 이 값은 0으로 해석될 수 있다(specifies the number of tiles signalled for the bitstream. When not present, num_tiles is inferred to be 0).
실시예들에 따른 tile_bounding_box_offset_x[ i ] 은 카테시안 코디네이트 내의 i번째 타일의 x 오프셋을 나타낸다. 존재하지 않는 경우, tile_bounding_box_offset_x[ 0 ]의 값은 sps_bounding_box_offset_x.으로 해석되 수 있다(indicates the x offset of the i-th tile in the cartesian coordi - num_tiles specifies the number of tiles signalled for the bitstream. When not present, num_tiles is inferred to be 0.
실시예들에 따른 tile_bounding_box_offset_y[ i ] 은 카테시안 코디네이트 내 i번째 타일의 y오프셋을 나타낸다. 존재하지 않는 경우, tile_bounding_box_offset_y[ 0 ]의 값은 sps_bounding_box_offset_y으로 해석될 수 있다(indicates indicates the y offset of the i-th tile in the cartesian coordinates. When not present, the value of tile_bounding_box_offset_y[ 0 ] is inferred to be sps_bounding_box_offset_y).
실시예들에 따른 tile_bounding_box_offset_z[ i ] 은 카테시안 코디네이트 내 i번째 타일의 z 오프셋을 나타낸다. 존재하지 않는 경우, tile_bounding_box_offset_z[ 0 ]의 값은 sps_bounding_box_offset_z으로 해석될 수 있다(indicates indicates the z offset of the i-th tile in the Cartesian coordinates. When not present, the value of tile_bounding_box_offset_z[ 0 ] is inferred to be sps_bounding_box_offset_z).
실시예들에 따른 tile_bounding_box_scale_factor[ i ] 은 카데시안 코디네이트 내 i번째 타일의 스케일 팩터를 나타낸다. 존재하지 않는 경우, tile_bounding_box_scale_factor[ 0 ]의 값은 sps_bounding_box_scale_factor 으로 해석될 수 있다(indicates the scale factor the i-th tile in the Cartesian coordinates. When not present, the value of tile_bounding_box_scale_factor[ 0 ] is inferred to be sps_bounding_box_scale_factor).
실시예들에 따른 tile_bounding_box_size_width[ i ] 은 카테시안 코디네이트 내 i번째 타일의 너비를 나타낸다. 존재하지 않는 경우, tile_bounding_box_size_width[ 0 ]은 sps_bounding_box_size_width 으로 해석될 수 있다(indicates the width of the i-th tile in the Cartesian coordinates. When not present, the value of tile_bounding_box_size_width[ 0 ] is inferred to be sps_bounding_box_size_width).
실시예들에 따른 tile_bounding_box_size_height[ i ] 은 카테시안 코디네이트 내 i번째 타일의 높이를 나타낸다. 존재하지 않는 경우, tile_bounding_box_size_height[ 0 ]의 값은 sps_bounding_box_size_height으로 해석될 수 있다(indicates the height of the i-th tile in the Cartesian coordinates. When not present, the value of tile_bounding_box_size_height[ 0 ] is inferred to be sps_bounding_box_size_height).
실시예들에 따른 tile_bounding_box_size_depth[ i ] 는 카테시안 코디네이트 내 i번째 타일의 깊이를 나타낸다. 존재하지 않는 경우, tile_bounding_box_size_depth[ 0 ]의 값은 sps_bounding_box_size_depth 으로 해석될 수 있다(indicates the depth of the i-th tile in the Cartesian coordinates. When not present, the value of tile_bounding_box_size_depth[ 0 ] is inferred to be sps_bounding_box_size_depth).
실시예들에 따른 방법/장치는 실시예들에 따른 필터링 관련 정보인 필터링 수행 여부, 필터링 유닛 및 종류 등을 시그널링할 수 있다. 포인트 클라우드 데이터의 종류 또는 타입에 따라서 필터링 동작을 결합하여 최적의 데이터를 제공할 수 있는 효과가 있다.
도31은 실시예들에 따른 Geom의 필터링 정보를 나타낸다.
실시예들에 따른 필터링 정보는 Geom의 Slice header에 추가되어 시그널링될 수 있다.
실시예들에 따른 gsh_geometry_parameter_set_id 는 액티스 GPS의 gps_geom_parameter_set_id의 값을 나타낸다(specifies the value of the gps_geom_parameter_set_id of the active GPS).
실시예들에 따른 gsh_tile_id 은 타일의 id를 나타낸다(specifies id of tile).
실시예들에 따른 gsh_slice_id 는 슬라이스의 id를 나타낸다(specifies id of slice).
실시예들에 따른 gsh_box_log2_scale 스케일 값을 나타낸다(specifies scale value).
실시예들에 따른 gsh_box_origin_x 는 카테시안 코디네이트 내 소스 바운딩 박스의 x를 나타낸다(specifies the x of the source bounding box in the cartesian coordinates).
실시예들에 따른 gsh_box_origin_y 는 카테시안 코디네이트 내 소스 바운딩 박스의 y를 나타낸다(specifies the y of the source bounding box in the cartesian coordinates).
실시예들에 따른 gsh_box_origin_z 는 카테시안 코디네이트 내 소스 바운딩 박스의 z를 나타낸다(specifies the z of the source bounding box in the cartesian coordinates)
실시예들에 따른 gsh_log2_max_nodesize 은 변수 MaxNodeSize를 나타낸다. 이 변수는 다음과 같이 디코딩 프로세스에 사용된다: MaxNodeSize = 2( gbh_log2_max_nodesize )(specifies the value of the variable MaxNodeSize that is used in the decoding process as follows: MaxNodeSize = 2( gbh_log2_max_nodesize )).
실시예들에 따른 gbh_points_number 는 슬라이스 내 코딩된 포인트들의 개수를 나타낸다(specifies the number of coded points in the slice).
실시예들에 따른 방법/장치는 실시예들에 따른 필터링 관련 정보인 필터링 수행 여부, 필터링 유닛 및 종류 등을 시그널링할 수 있다. 포인트 클라우드 데이터의 종류 또는 타입에 따라서 필터링 동작을 결합하여 최적의 데이터를 제공할 수 있는 효과가 있다.
도32는 실시예들에 따른 Attr의 필터링 정보를 나타낸다.
실시예들에 따른 필터링 정보는 Attr의 slice header에 추가되어 시그널링될 수 있다.
실시예들에 따른 abh_attr_parameter_set_id 는 액티브 APS의 aps_attr_parameter_set_id의 값을 나타낸다(specifies the value of the aps_attr_parameter_set_id of the active APS).
실시예들에 따른 abh_attr_sps_attr_idx 는 액티브 SPS 내 어트리뷰트 세트를 나타낸다. abh_attr_sps_attr_idx의 값은 액티브 SPS 내의 0 내지 sps_num_attribute_sets의 범위를 가질 수 있다(specifies the attribute set in the active SPS. The value of abh_attr_sps_attr_idx shall be in the range of 0 to sps_num_attribute_sets in the active SPS).
실시예들에 따른 abh_attr_geom_slice_id 는 geom slice id의 값을 나타낸다(specifies the value of geom slice id).
실시예들에 따른 방법/장치는 실시예들에 따른 필터링 관련 정보인 필터링 수행 여부, 필터링 유닛 및 종류 등을 시그널링할 수 있다. 포인트 클라우드 데이터의 종류 또는 타입에 따라서 필터링 동작을 결합하여 최적의 데이터를 제공할 수 있는 효과가 있다.
실시예들에 따른 Annex A는 본 문서에서 설명하는 포인트 클라우드 데이터에 관련된 프로파일(profiles), 티어(tiers) 및/또는 레벨(levels)에 관한 설명으로 참조될 수 있다.
실시예들에 따른 필터링 정보는 실시예들에 따른 포인트 클라우드 데이터의 구조에 따라 다양한 파라미터 세트에 제공될 수 있다. 실시예들에 따른 방법/장치는 필터링을 수행하는 조건에 맞게 적절한 하나 또는 하나 이상의 파라미터 세트에 필터링 정보를 시그널링함으로써 실시예들에 따른 방법/장치가 포인트 클라우드 데이터를 효율적으로 인코딩/디코딩할 수 있게 하는 효과를 제공한다.
도33은 실시예들에 따른 필터링부를 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 송신 장치/방법의 예시를 설명한다. 포인트 클라우드 데이터 송신 장치/방법은 도1, 도4, 도12, 도14, 도15, 도18, 도19, 도20실시예들에 따른 구성요소 엘리먼트(들)에 대응되거나 상호보완적으로 결합되어 해석될 수 있다. 각 실시예들에 따른 엘리먼트들을 설명한다.
데이터입력부(33000)는 포인트 클라우드 데이터를 수신할 수 있다. 실시예들에 따른 포인트 클라우드 데이터를 생성하기 위한 데이터가 데이터입력부에 입력될 수 있다. 입력된 데이터는 포인트들의 위치값 및/또는 포인트들의 속성값을 포함함할 수 있다.
좌표변환부(33001)는 포인트들의 위치값을 수신하여 데이터에 관한 좌표를 변환할 수 있다. 데이터가 좌표 정보에 기반하여 표현될 수 있다.
양자화/복셀화 처리부(33002)는 좌표 정보에 기반하여 표현된 데이터를 양자화/복셀화(또는 포인트 제거 포함)할 수 있다.
옥트리 occupancy코드 생성부(33003)는 양자화/복셀화된 데이터를 옥트리 occupancy코드에 기반하여 표현할 수 있다. 예를 들어, 포인트들의 위치값(기하정보) 데이터는 옥트리 구조에 기반하여 생성될 수 있다. 옥트리 구조의 데이터는 하나 또는 하나 이상의 노드를 포함할 수 있다.
표면모델 처리부(33004)는 옥트리 코드에 기반하여 생성된 데이터의 표면 모델을 처리할 수 있다. 표면모델 처리부는 옥트리에 관련된 노드 영역 내 포인트들의 위치를 복셀 기반으로 재구성할 수 있다.
arithmetic코더(33005)는 옥트리에 기반한 기하정보 데이터 및/또는 표면모델에 기반하여 처리된 기하정보 데이터를 arithmetic 방식에 기반하여 인코딩할 수 있다. 지오메트리를 포함하는 지오메트리 비트스트림이 생성될 수 있다.
지오메트리 재구성부(33006)는 옥트리에 기반한 기하정보 데이터, 표면모델에 기반하여 처리된 기하정보 데이터를 통해 지오메트리(기하정보) 데이터를 재구성할 수 있다. 실시예들에 따른 방법/장치는 기하정보 및 속성정보를 인코딩/디코딩하고, 속성정보를 인코딩/디코딩하는 프로세스는 기하정보에 기반하여 수행될 수 있다. 실시예들에 따라, 기하정보의 인코딩 과정은 무손실/손실/근접무손실 등이 가능하다. 실시예들에 따른 속성정보 인코딩/디코딩을 위해서, 실시예들에 따른 지오메트리 재구성부는 인코딩/디코딩된 기하정보를 재구성하여 속성정보 인코딩/디코딩 과정에 제공할 수 있다.
필터링부(33007)는 재구성된 기하정보를 필터링(스무딩하게 및/또는 샤프하게 등등)하여 속성정보 인코딩과정에 제공할 수 있다. 실시예들에 따른 방법/장치는 실시예들에 따른 필터링에 관련된 시그널링 정보(메타데이터, 파라미터 세트 등)를 시그널링할 수 있다.
색상변환 처리부(33008)는 입력된 데이터(어트리뷰트), 예를 들어, 포인트들의 속성값에 관련된 색상을 변환할 수 있다.
속성 변환 처리부(33009)는 포인트들의 위치값 및/또는 필터링된 기하정보를 수신하여 기하정보에 기반한 어트리뷰트의 속성을 변환할 수 있다.
예측/리프팅/RAHT변환 처리부(32010)는 속성정보를 예측/리프팅/RAHT 중 적어도 하나의 방식에 기반하여 인코딩할 수 있다. 실시예들에 따라, 속성정보의 인코딩 방식은 선택적으로 한 가지 방식을 선택하여 수행될 수 있다.
coefficient양자화 처리부(33011)는 속성정보에 관련된 coefficient 를 양자화할 수 있다.
arithmetic코더(33012)는 속성정보를 arithmetic 기반에 기반하여 인코딩할 수 있다. 속성 정보를 포함하는 속성 비트스트림이 생성될 수 있다.
실시예들에 따른 포인트 클라우드 데이터 수신 장치/방법의 예시는 다음과 같다.
수신 처리부(33101)는 실시예들에 따른 포인트 클라우드 데이터 송신 장치/방법이 전송한 포인트 클라우드 데이터를 수신할 수 있다. 수신된 데이터는 지오메트리 비트스트림 및/또는 속성 비트스트림을 포함할 수 있다.
arithmetic디코더(33102)는 지오메트리 비트스트림을arithmetic 기반 디코딩할 수 있다.
occupancy코드기반 옥트리 재구성 처리부(33103)는 디코딩된 지오메트리를 occupancy코드기반하여 옥트리를 재구성할 수 있다.
표면모델 처리부(33104)는 재구성된 옥트리를 표면모델에 기반하여 지오메트리 데이터의 표면을 처리할 수 있다. 예를 들어, 표면모델은 삼각형 재구성, 업-샘플링, 복셀화 방식을 포함할 수 있다. 지오메트리 데이터의 표면이 재구성될 수 있다.
지오메트리 재구성부(33105)는 지오메트리를 재구성할 수 있다.
좌표 역변환부(33106)는 지오메트리의 좌표를 역변환할 수 있다.
필터링부(33107)는 재구성된 지오메트리를 필터링할 수 있다. 필터링부는 실시예들에 따른 필터링 동작을 수행할 수 있다.
arithmetic디코더(33108)는 속성비트스트림을 arithmetic기반 디코딩할 수 있다.
inverse양자화 처리부(33109)는 속성정보를 역으로 양자화할 수 있다.
예측/리프팅/RAHT역변환 처리부(33110)는 양자화된 속성정보를 예측/리프팅/RAHT 역변환 중 적어도 하나의 방식에 기반하여 처리할 수 있다.
색상 역변환 처리부(33111)는 속성정보의 색상을 역변환할 수 있다.
실시예들에 따른 필터링부(또는 필터)는 실시예들에 따른 송신단(인코더 또는 송신 장치)/수신단(디코더 또는 수신 장치)에 모두 포함될 수 있다.
송신단에서는 지오메트리 재구성 부 처리 후, geometry_filtering_flag가 켜져 있을 경우, 지오메트리 필터링 부가 수행될 수 있다. 필터링된 결과는 속성 변환 처리부에 전달되고, 데이터 입력부로 전달 받아서 색상변환 처리가 수행된 속성 정보와 재구성되고 필터링된 위치 정보를 맵핑하고, 맵핑된 정보를 기반으로 속성 부호화 과정을 수행할 수 있다.
실시예들에 따른 방법/장치는 복원된 지오메트리에 기반하여 속성을 인코딩할 수 있다. 지오메트리 코딩에 기반하여 어트리뷰트 코딩이 수행되기 때문에, 양자화 등에 따라 위치값이 변경되고, 칼라를 가장 가까운 값으로 부여(칼라링)할 수 있다.
실시예들에 따른 필터링은 속성 코딩을 하기 이전에 지오메트리, 예를 들어 위치값 정보를 필터링하여 정확한 속성 인코딩/디코딩이 가능하게 하는 효과를 제공할 수 있다.
실시예들에 따른 필터링은 스무딩과 같은 효과를 제공하고, 포인트 클라우드 데이터의 형태가 좀 더 자연스럽게 표현이 될 수 있다.
따라서, 실시예들에 따른 방법/장치는 향상된 시각적 효과를 제공할 수 있다.
실시예들에 따른 필터링은 송신 장치 및 수신 장치 모두 포함될 수 있다.
수신단에서도 지오메트리 재구성 부 수행 후, 전송 받은 Geometry parameter set RBSP의 geometry_filtering_flag가 켜져 있을 경우, 지오메트리 필터링 부가 수행될 수 있다.
필터링된 결과를 기반으로 속성 복호화 과정을 수행할 수 있다.
도34는 실시예들에 따른 포인트 클라우드 데이터 송신 방법을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 송신 방법은 (S3401) 포인트 클라우드 데이터를 획득하는 단계, (S3402) 포인트 클라우드 데이터를 인코딩하는 단계 및/또는 (S3403) 포인트 클라우드 데이터를 전송하는 단계를 포함할 수 있다.
S3401관련하여, 실시예들에 따른 방법은 포인트 클라우드 데이터로 표현하고자 하는 객체에 관련된 데이터를 획득할 수 있다. 도1, 도2, 도4, 도12, 도14, 도15, 도33 등에 도시된 데이터 획득과정을 포함할 수 있다. 실시예들에 따른 데이터는 객체를 포인트들로 나타내고, 포인트들의 위치값(지오메트리), 포인트들의 속성값(어트리뷰트)를 포함할 수 있다. 데이터의 획득 방식은 도3과 같을 수 있다.
S3402관련하여, 실시예들에 따른 방법은 포인트 클라우드 데이터를 인코딩할 수 있다. 포인트 클라우드 데이터의 인코딩 과정은 도1, 도2, 도4, 도11, 도12, 도14, 도15, 도19, 도20, 도21, 도33 등에 도시된 과정을 포함할 수 있다.
S3403관련하여, 실시예들에 따른 방법은 포인트 클라우드 데이터를 전송할 수 있다. 전송되는 데이터는 도26와 같은 비트스트림 형태일 수 있다.
각 단계는 실시예들에 따른 장치, 장치의 구성요소(소프트웨어, 하드뒈어, 프로세서 및/또는 그것들의 조합) 등에 의해 수행될 수 있다.
각 단계는 객체를 포인트들로 표현할 수 있고, 고화질의 포인트 클라우드 데이터를 전송할 수 있는 효과를 제공할 수 있다.
도35는 실시예들에 따른 포인트 클라우드 데이터 수신 방법을 나타낸다.
실시예들에 따른 포인트 클라우드 데이터 수신 방법은 (S3501) 포인트 클라우드 데이터를 수신하는 단계, (S3502) 포인트 클라우드 데이터를 디코딩하는 단계 및/또는 (S3503) 포인트 클라우드 데이터를 렌더링하는 단계를 포함할 수 있다.
S3501관련하여, 실시예들에 따른 방법은 포인트 클라우드 데이터를 수신할 수 있다. 수신되는 데이터는 도26와 같은 비트스트릠의 형태일 수 있다.
S3502관련하여, 실시예들에 따른 방법은 포인트 클라우드 데이터를 디코딩할 수 있다. 디코딩 과정은 도1, 도2, 도11, 도13, 도14, 도16, 도22, 도23, 도24, 도33 등의 과정을 포함할 수 있다.
S3503관련하여, 실시예들에 따른 방법은 포인트 클라우드 데이터를 렌더링할 수 있다.
각 단계는 실시예들에 따른 장치, 장치의 구성요소(소프트웨어, 하드뒈어, 프로세서 및/또는 그것들의 조합) 등에 의해 수행될 수 있다.
각 단계는 객체를 포인트들로 표현할 수 있고, 고화질의 포인트 클라우드 데이터를 수신하고, 사용자에게 제공할 수 있는 효과를 제공할 수 있다.
이 문서에서 “/”와 “,”는 “및/또는”으로 해석된다. 예를 들어, “A/B”는 “및/또는 B”로 해석되고, “A, B”는 “및/또는 B”로 해석된다. 추가적으로, “A/B/C”는 “B 및/또는 C 중 적어도 하나”를 의미한다. 또한, “A, B, C”도 “B 및/또는 C 중 적어도 하나”를 의미한다. (In this document, the term “/”and “,”should be interprete3d to indicate "and/or". For instance, the expression "A/B" may mean “A and/or B.”Further, "A,B" may mean "A and/or B". Further, "A/B/C" may mean "at least one of A, B, and/or C". Also, "A/B/C" may mean "at least one of A, B, and/or C".
추가적으로, 이 문서에서 “또는”는 “및/또는”으로 해석된다. 예를 들어, “A 또는 B”은, 1) “A”만을 의미하고, 2) “B”만을 의미하거나, 3) “A및 B”를 의미할 수 있다. 달리 표현하면, 본 문서의 “또는”은 “추가적으로 또는 대체적으로(additionally or alternatively)”를 의미할 수 있다. (Further, in the document, the term “or”should be interpreted to indicate “and/or.” For instance, the expression "A or B" may comprise 1) only A, 2) only B, and/or 3) both A and B. In other words, the term "or" in this document should be interpreted to indicate "additionaly or alternatively".)
실시예들의 다양한 엘리먼트들은 하드웨어, 소프트웨어, 펌웨어 또는 그것들의 조합에 의해 수행될 수 있다. 실시예들의 다양한 엘리먼트는 하드웨어 회로와 같은 싱글 칩 상에서 수행될 수 있다. 실시예들에 따라, 실시예들은 선택적으로 개별적인 침들 상에서 수행될 수 있다. 실시예들에 따라, 실시예들의 엘리먼트들 중 적어도 하나는 실시예들에 따른 동작을 수행하는 인스트럭션들을 포함하는 하나 또는 하나 이상의 프로세서 내에서 수행될 수 있다.
제1, 제2 등과 같은 용어는 실시예들의 다양한 엘리먼트들을 설명하기 위해서 사용된다. 이러한 용어는 실시예들의 엘리먼트들의 해석을 제한하지 않는다. 이러한 용어는 하나의 엘리먼트 및 다른 엘리먼트 간의 구별을 위해서 사용된다. 예를 들어, 제1 사용자 인풋 시그널은 제2사용자 인풋 시그널로 지칭될 수 있다. 이와 유사하게, 제2사용자 인풋 시그널은 제1사용자 인풋시그널로 지칭될 수 있다. 이러한 용어는 실시예들의 범위 내에서 해석될 수 있다. 제1사용자 인풋 시그널 및 제2사용자 인풋 시그널은 모두 사용자 인풋 시그널들이고, 문맥 상 명확하게 지칭하지 않는 한 같은 사용자 인풋 시그널들을 의미하지 않는다.
실시예들을 설명하기 위해 사용된 용어는 특정 실시예들을 설명하기 위한 목적으로 사용되고, 실시예들을 제한하기 위해서 의도되지 않는다. 실시예들의 설명 및 청구항에서 사용된 바와 같이, 문맥 상 명확하게 지칭하지 않는 한 단수는 복수를 포함하는 것으로 의도된다. 및/또는 표현은 용어 간의 모든 가능한 결합을 포함하는 의미로 사용된다. 포함한다 표현은 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들이 존재하는 것을 설명하고, 추가적인 특징들, 수들, 단계들, 엘리먼트들, 및/또는 컴포넌트들을 포함하지 않는 것을 의미하지 않는다.
실시예들을 설명하기 위해 사용되는, ~인 경우, ~때 등의 조건 표현은 선택적인 경우로만 제한 해석되지 않는다. 특정 조건을 만족하는 때, 특정 조건에 대응하여 관련 동작을 수행하거나, 관련 정의가 해석되도록 의도되었다.
본 문서의 실시예들은 실시를 위한 최선의 형태에서 설명되었다.
상술한 바와 같이, 실시예들은 포인트 클라우드 데이터 송수신 장치 및 시스템에 전체적 또는 부분적으로 적용될 수 있다.
당업자는 실시예들의 범위 내에서 실시예들을 다양하게 변경 또는 변형할 수 있다.
실시예들은 변경/변형들을 포함할 수 있고, 변경/변형은 청구항들 및 그 와 동일한 것들의 범위를 벗어나지 않는다.

Claims (20)

  1. 포인트 클라우드 데이터를 획득하는 획득부;
    상기 포인트 클라우드 데이터를 인코딩하는 인코더; 및
    상기 포인트 클라우드 데이터를 전송하는 트랜스미터; 를 포함하는,
    포인트 클라우드 데이터 송신 장치.
  2. 제1항에 있어서,
    상기 인코더는 상기 포인트 클라우드 데이터의 기하정보를 인코딩하는 기하정보 인코더, 및
    상기 포인트 클라우드 데이터의 속성정보를 인코딩하는 속성정보 인코더를 포함하는,
    포인트 클라우드 데이터 송신 장치.
  3. 제2항에 있어서,
    상기 기하정보 인코더는 상기 기하정보를 필터링하는 필터를 포함하는,
    포인트 클라우드 데이터 송신 장치.
  4. 제3항에 있어서,
    상기 필터는 상기 포인트 클라우드 데이터의 제1시그널링 정보에 기초하여 상기 기하정보의 위치정보 유닛에 대해 위치 정보 필터링 수행 여부를 확인하고,
    상기 포인트 클라우드 데이터의 제2 시그널링 정보에 기초하여 상기 위치정보 유닛에 대한 필터를 선택하고,
    상기 선택된 필터에 기초하여 상기 위치정보 유닛을 필터링하는,
    포인트 클라우드 데이터 송신 장치.
  5. 제1항에 있어서,
    상기 포인트 클라우드 데이터는 시퀀스 파라미터, 지오메트리 파라미터, 어트리뷰트 파라미터, 타일 파라미터, 지오메트리 비트스트림 또는 어트리뷰트 비트스트림 중 적어도 하나를 포함하는,
    포인트 클라우드 데이터 송신 장치.
  6. 포인트 클라우드 데이터를 획득하는 단계;
    상기 포인트 클라우드 데이터를 인코딩하는 단계; 및
    상기 포인트 클라우드 데이터를 전송하는 단계; 를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  7. 제6항에 있어서,
    상기 인코딩하는 단계는 상기 포인트 클라우드 데이터의 기하정보를 인코딩하는 단계; 및
    상기 포인트 클라우드 데이터의 속성정보를 인코딩하는 단계를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  8. 제7항에 있어서,
    상기 기하정보 인코딩하는 단계는 상기 기하정보를 필터링하는 단계를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  9. 제8항에 있어서,
    상기 필터링하는 단계는 상기 포인트 클라우드 데이터의 제1시그널링 정보에 기초하여 상기 기하정보의 위치정보 유닛에 대해 위치 정보 필터링 수행 여부를 확인하고,
    상기 포인트 클라우드 데이터의 제2 시그널링 정보에 기초하여 상기 위치정보 유닛에 대한 필터를 선택하고,
    상기 선택된 필터에 기초하여 상기 위치정보 유닛을 필터링하는,
    포인트 클라우드 데이터 송신 방법.
  10. 제6항에 있어서,
    상기 포인트 클라우드 데이터는 시퀀스 파라미터, 지오메트리 파라미터, 어트리뷰트 파라미터, 타일 파라미터, 지오메트리 비트스트림 또는 어트리뷰트 비트스트림 중 적어도 하나를 포함하는,
    포인트 클라우드 데이터 송신 방법.
  11. 포인트 클라우드 데이터를 수신하는 수신부;
    상기 포인트 클라우드 데이터를 디코딩하는 디코더; 및
    상기 포인트 클라우드 데이터를 렌더링하는 렌더러; 를 포함하는,
    포인트 클라우드 데이터 수신 장치.
  12. 제11항에 있어서,
    상기 디코더는 상기 포인트 클라우드 데이터의 기하정보를 디코딩하는 기하정보 디코더, 및
    상기 포인트 클라우드 데이터의 속성정보를 디코딩하는 속성정보 디코더를 포함하는,
    포인트 클라우드 데이터 수신 장치.
  13. 제12항에 있어서,
    상기 기하정보 디코더는 상기 기하정보를 필터링하는 필터를 포함하는,
    포인트 클라우드 데이터 수신 장치.
  14. 제13항에 있어서,
    상기 필터는 상기 포인트 클라우드 데이터의 제1시그널링 정보에 기초하여 상기 기하정보의 위치정보 유닛에 대해 위치 정보 필터링 수행 여부를 확인하고,
    상기 포인트 클라우드 데이터의 제2 시그널링 정보에 기초하여 상기 위치정보 유닛에 대한 필터를 선택하고,
    상기 선택된 필터에 기초하여 상기 위치정보 유닛을 필터링하는,
    포인트 클라우드 데이터 수신 장치.
  15. 제11항에 있어서,
    상기 포인트 클라우드 데이터는 시퀀스 파라미터, 지오메트리 파라미터, 어트리뷰트 파라미터, 타일 파라미터, 지오메트리 비트스트림 또는 어트리뷰트 비트스트림 중 적어도 하나를 포함하는,
    포인트 클라우드 데이터 수신 장치.
  16. 포인트 클라우드 데이터를 수신하는 단계;
    상기 포인트 클라우드 데이터를 디코딩하는 단계; 및
    상기 포인트 클라우드 데이터를 렌더링하는 단계; 를 포함하는,
    포인트 클라우드 데이터 수신 방법.
  17. 제15항에 있어서,
    상기 디코딩하는 단계는 상기 포인트 클라우드 데이터의 기하정보를 디코딩하는 단계,
    상기 포인트 클라우드 데이터의 속성정보를 디코딩하는 단계를 포함하는,
    포인트 클라우드 데이터 수신 방법.
  18. 제17항에 있어서,
    상기 기하정보 디코딩하는 단계는 상기 기하정보를 필터링하는 단계를 포함하는,
    포인트 클라우드 데이터 수신 방법.
  19. 제18항에 있어서,
    상기 필터링하는 단계는 상기 포인트 클라우드 데이터의 제1시그널링 정보에 기초하여 상기 기하정보의 위치정보 유닛에 대해 위치 정보 필터링 수행 여부를 확인하고,
    상기 포인트 클라우드 데이터의 제2 시그널링 정보에 기초하여 상기 위치정보 유닛에 대한 필터를 선택하고,
    상기 선택된 필터에 기초하여 상기 위치정보 유닛을 필터링하는,
    포인트 클라우드 데이터 수신 방법.
  20. 제16항에 있어서,
    상기 포인트 클라우드 데이터는 시퀀스 파라미터, 지오메트리 파라미터, 어트리뷰트 파라미터, 타일 파라미터, 지오메트리 비트스트림 또는 어트리뷰트 비트스트림 중 적어도 하나를 포함하는,
    포인트 클라우드 데이터 수신 방법.
PCT/KR2019/016375 2019-03-15 2019-11-26 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법 WO2020189876A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0029846 2019-03-15
KR20190029846 2019-03-15

Publications (1)

Publication Number Publication Date
WO2020189876A1 true WO2020189876A1 (ko) 2020-09-24

Family

ID=72520971

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/016375 WO2020189876A1 (ko) 2019-03-15 2019-11-26 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Country Status (1)

Country Link
WO (1) WO2020189876A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022141461A1 (zh) * 2020-12-31 2022-07-07 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器以及计算机存储介质
WO2023123467A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质
WO2023123471A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质
WO2024077548A1 (zh) * 2022-10-13 2024-04-18 Oppo广东移动通信有限公司 点云解码方法、点云编码方法、解码器和编码器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056546A (ko) * 2014-08-15 2017-05-23 에이아이, 아이엔씨. 레이더 전송을 위한 방법 및 시스템
WO2017209961A1 (en) * 2016-05-28 2017-12-07 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
WO2018009746A1 (en) * 2016-07-08 2018-01-11 Vid Scale, Inc. 360-degree video coding using geometry projection
US10229533B2 (en) * 2016-11-03 2019-03-12 Mitsubishi Electric Research Laboratories, Inc. Methods and systems for fast resampling method and apparatus for point cloud data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056546A (ko) * 2014-08-15 2017-05-23 에이아이, 아이엔씨. 레이더 전송을 위한 방법 및 시스템
WO2017209961A1 (en) * 2016-05-28 2017-12-07 Microsoft Technology Licensing, Llc Motion-compensated compression of dynamic voxelized point clouds
WO2018009746A1 (en) * 2016-07-08 2018-01-11 Vid Scale, Inc. 360-degree video coding using geometry projection
US10229533B2 (en) * 2016-11-03 2019-03-12 Mitsubishi Electric Research Laboratories, Inc. Methods and systems for fast resampling method and apparatus for point cloud data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KHALED MAMMOU; ISO; CHOU PHILIP A; FLYNN DAVID; KRIVOKUĆA MAJA; NAKAGAMI OHJI; SUGIO TOSHIYASU: "G-PCC codec description v2- ISO/IEC JTC1/SC29/WG11- ISO/IEC JTC1/SC29/WG11 N18189", INTERNATIONAL ORGANISATION FOR STANDARDISATION ORGANISATION INTERNATIONALE DE NORMALISATION ISO/IEC JTCI/SC29/WG1 1 CODING OF MOVING PICTURES AND AUDIO. ISO/IEC JTCI/SC29AVG11. N18189, 14 January 2019 (2019-01-14), pages 1 - 39, XP055686871 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022141461A1 (zh) * 2020-12-31 2022-07-07 Oppo广东移动通信有限公司 点云编解码方法、编码器、解码器以及计算机存储介质
WO2023123467A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质
WO2023123471A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 编解码方法、码流、编码器、解码器以及存储介质
WO2024077548A1 (zh) * 2022-10-13 2024-04-18 Oppo广东移动通信有限公司 点云解码方法、点云编码方法、解码器和编码器

Similar Documents

Publication Publication Date Title
WO2021066615A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2020190075A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002730A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021066312A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021025251A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189976A1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
WO2021187839A1 (ko) 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법
WO2021049758A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189943A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020197086A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020189876A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020262831A1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
WO2021060850A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002594A1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
WO2021002592A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021045603A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021242064A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021246843A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021002558A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법.
WO2021141218A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2022098152A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021201384A1 (ko) 포인트 클라우드 데이터 처리 장치 및 방법
WO2022019713A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2021206291A1 (ko) 포인트 클라우드 데이터 전송 장치, 전송 방법, 처리 장치 및 처리 방법
WO2022015006A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19919990

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19919990

Country of ref document: EP

Kind code of ref document: A1