KR20210138097A - 포인트 클라우드의 누락 포인트 프로세싱 - Google Patents

포인트 클라우드의 누락 포인트 프로세싱 Download PDF

Info

Publication number
KR20210138097A
KR20210138097A KR1020217033810A KR20217033810A KR20210138097A KR 20210138097 A KR20210138097 A KR 20210138097A KR 1020217033810 A KR1020217033810 A KR 1020217033810A KR 20217033810 A KR20217033810 A KR 20217033810A KR 20210138097 A KR20210138097 A KR 20210138097A
Authority
KR
South Korea
Prior art keywords
depth
codeword
sample
point cloud
samples
Prior art date
Application number
KR1020217033810A
Other languages
English (en)
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
Priority claimed from EP19305344.4A external-priority patent/EP3713240A1/en
Priority claimed from EP19305343.6A external-priority patent/EP3713239A1/en
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Publication of KR20210138097A publication Critical patent/KR20210138097A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/008Cut plane or projection plane definition

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Generation (AREA)

Abstract

적어도 하나의 실시예는, 동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 계층의 픽셀 값으로서 저장되거나 또는 상기 투사 라인을 따라 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 고정 길이 코드워드와 동일함을 표시하는 점유 맵의 픽셀 값을 할당하는 방법에 관한 것이다.

Description

포인트 클라우드의 누락 포인트 프로세싱
본 실시예들 중 적어도 하나는 일반적으로 포인트 클라우드의 프로세싱에 관한 것이다.
본 섹션은, 아래에서 설명되고 그리고/또는 청구되는 본 실시예들 중 적어도 하나의 다양한 양태들과 관련될 수 있는 본 기술분야의 다양한 양태들을 독자에게 소개하도록 의도된다. 이러한 논의는 적어도 하나의 실시예의 다양한 양태들의 더 양호한 이해를 돕기 위한 배경 정보를 독자에게 제공하는데 도움이 될 것으로 여겨진다.
포인트 클라우드들은 객체의 공간 구성을 전송하거나 이를 방문하지 않고 이를 공유하기 위해, 동상들 또는 건물들과 같은 객체들이 3D로 스캐닝되는 문화 유산/건물들과 같은 다양한 목적들로 사용될 수 있다. 또한, 이는 객체가 파괴될 수 있는 경우; 예를 들어, 지진에 의한 사원의 경우 객체의 지식을 보존하는 것을 보장하기 위한 방법이다. 그러한 포인트 클라우드들은 전형적으로 정적이고, 착색되고, 거대하다.
다른 사용 사례는 3D 표현들을 사용하는 것이 평면으로 제한되지 않고 릴리프를 포함할 수 있는 맵들을 허용하는 지형 및 지도 제작이다. 구글 맵은 이제 3D 맵의 좋은 예이지만 포인트 클라우드들 대신 메시들을 사용한다. 그럼에도 불구하고, 포인트 클라우드들은 3D 맵들에 적합한 데이터 포맷일 수 있으며, 그러한 포인트 클라우드들은 전형적으로 정적이고, 착색되며, 거대하다.
자동차 산업 및 자율 주행 자동차는 또한 포인트 클라우드들이 사용될 수 있는 도메인들이다. 자율 주행 자동차들은 그들의 직접적인 이웃들의 현실에 기초하여 양호한 운전 판정들을 내리기 위해 자신들의 환경을 "프로브"할 수 있어야 한다. LIDAR(LIght Detection and Ranging)들과 같은 전형적인 센서들은 판정 엔진에 의해 사용되는 동적 포인트 클라우드들을 생성한다. 이러한 포인트 클라우드들은 인간이 볼 수 있도록 의도되지 않으며, 전형적으로 작고, 반드시 착색되지는 않으며, 높은 캡처 빈도로 동적이다. 이러한 포인트 클라우드들은 LIDAR에 의해 제공되는 반사율과 같은 다른 속성들을 가질 수 있는데, 이는 이러한 속성이 감지된 객체의 재료에 대한 양호한 정보를 제공하고 판정들을 내리는 데 도움이 될 수 있기 때문이다.
가상 현실 및 몰입형 세계들은 최근에 핫 토픽이 되었으며, 많은 사람들에 의해 2D 플랫 비디오의 미래로 예상된다. 기본적인 아이디어는, 뷰어가 뷰어 앞의 가상 세계만을 볼 수 있는 표준 TV와 대조적으로, 뷰어를 둘러싸는 환경에 뷰어를 몰입시키는 것이다. 환경에서 뷰어의 자유도에 따라 몰입도에서 몇몇 그라데이션들이 있다. 포인트 클라우드는 VR(Virtual Reality) 세계들을 분배하기 위한 양호한 포맷 후보이다.
많은 애플리케이션들에서, 허용가능한(또는 바람직하게는 매우 양호한) 경험 품질을 유지하면서 합리적인 양의 비트레이트(또는 저장 애플리케이션들을 위한 저장 공간)만을 소비함으로써 최종-사용자에게 동적 포인트 클라우드들을 분배(또는 이들을 서버에 저장)할 수 있는 것이 중요하다. 이러한 동적 포인트 클라우드들의 효율적인 압축은 많은 몰입형 세계들의 분배 체인을 실용적으로 만들기 위한 핵심 포인트이다.
적어도 하나의 실시예는 전술한 바를 염두에 두고 고안되었다.
다음은 본 개시내용의 일부 양태들의 기본적인 이해를 제공하기 위해 본 실시예들 중 적어도 하나의 간략화된 요약을 제시한다. 이러한 요약은 실시예의 광범위한 개요가 아니다. 이는 실시예의 핵심적이거나 중요한 요소들을 식별하는 것으로 의도되지 않는다. 다음의 요약은 단지 본 실시예들 중 적어도 하나의 일부 양태들을, 본 문헌의 다른 곳에서 제공되는 더 상세한 설명에 대한 서론으로서 간략화된 형태로 제시한다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값으로서 저장되거나 또는 상기 투사 라인을 따라 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 고정 길이 코드워드와 동일함을 표시하기 위해 점유 이미지의 픽셀 값을 할당하는 단계를 포함하는 방법이 제공된다.
일 실시예에 따르면, 방법은, 코드워드의 비트로서 투사 라인을 따라 투사된 적어도 하나의 3D 샘플을 인코딩하고, 상기 깊이 값이 이미 깊이 이미지의 값으로서 인코딩될 때 코드워드의 비트로서 투사 라인을 따라 투사된 3D 샘플의 깊이 값의 인코딩을 스킵하는 단계를 더 포함한다.
일 실시예에 따르면, 방법은 고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 시그널링하는 단계를 더 포함한다.
일 실시예에 따르면, 방법은 코드워드의 길이를 표현하는 제2 정보를 시그널링하는 단계를 더 포함한다.
일 실시예에 따르면, 상기 제1 및/또는 제2 정보는 포인트 클라우드 프레임들의 시퀀스에 대해 시그널링된다.
일 실시예에 따르면, 상기 제1 및/또는 제2 정보는 프레임 단위로 또는 패치 단위로 시그널링된다.
적어도 하나의 실시예의 다른 일반적인 양태에 따르면, 동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값으로서 저장되거나 또는 상기 투사 라인을 따라 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 고정 길이 코드워드와 동일함을 표시하기 위해 점유 이미지의 픽셀 값을 표현하는 이미지 데이터를 포함하는 신호가 제공된다.
일 실시예에 따르면, 신호는 고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 더 포함한다.
일 실시예에 따르면, 신호는 코드워드의 길이를 표현하는 제2 정보를 포함한다.
적어도 하나의 실시예의 다른 일반적인 양태에 따르면, 고정 길이 코드워드가 포인트 클라우드의 적어도 하나의 3D 샘플의 깊이 값을 유도하기 위해 사용되는지 여부를 표시하는 제1 정보를 비트스트림으로부터 획득하는 단계; 및 고정 길이 코드워드들이 사용되는 것으로 상기 제1 정보가 표시하면, 투사 라인을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값을 표현하는 고정 길이 코드워드들로부터 상기 깊이 값을 유도하는 단계; 그렇지 않으면, 상이한 길이들을 갖는 코드워드들로부터 상기 깊이 값을 유도하는 단계를 포함하는 방법이 제공된다.
일 실시예에 따르면, 방법은 코드워드의 길이를 표현하는 비트스트림으로부터 제2 정보를 획득하는 단계를 더 포함한다.
적어도 하나의 실시예 중 하나 이상은 또한 디바이스, 컴퓨터 프로그램 제품 및 비일시적 컴퓨터 판독가능 매체를 제공한다.
본 실시예들 중 적어도 하나의 특정 성질 뿐만 아니라 본 실시예들 중 상기 적어도 하나의 다른 목적들, 이점들, 특징들 및 용도들은 첨부된 도면들과 관련하여 취해진 예들에 대한 다음의 설명으로부터 명백해질 것이다.
도면들에서, 몇몇 실시예들의 예들이 예시된다. 도면들은 다음을 보여준다:
도 1은 본 실시예들 중 적어도 하나에 따른 2-계층-기반 포인트 클라우드 인코딩 구조의 예의 개략적인 블록도를 예시한다.
도 2는 본 실시예들 중 적어도 하나에 따른 2-계층-기반 포인트 클라우드 디코딩 구조의 예의 개략적인 블록도를 예시한다.
도 3은 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 인코더의 예의 개략적인 블록도를 예시한다.
도 3a는 2개의 패치들 및 이들의 2D 바운딩 박스들을 포함하는 캔버스의 예를 예시한다.
도 3b는 투사 라인을 따라 2개의 3D 샘플들 사이에 위치된 2개의 중간 3D 샘플들의 예를 예시한다.
도 4는 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 디코더의 예의 개략적인 블록도를 예시한다.
도 5는 본 실시예들 중 적어도 하나에 따른 기본 계층 BL을 표현하는 비트스트림의 신택스의 예를 개략적으로 예시한다.
도 6은 다양한 양태들 및 실시예들이 구현되는 시스템의 예의 개략 블록도를 예시한다.
도 7은 V-PCC를 사용하는 그러한 3D 대 2D 투사의 예를 예시한다.
도 8은 적어도 하나의 실시예에 따라 동일한 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 코딩하기 위한 방법의 예의 개략적인 블록도를 예시한다.
도 9는 적어도 하나의 실시예에 따라 동일한 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 디코딩하기 위한 방법의 예의 개략적인 블록도를 예시한다.
도 10은 적어도 하나의 실시예에 따라 점유 맵의 픽셀 값들을 결정하는 예를 예시한다.
도 11은 상기 변형에 따라 점유 맵 OM(u,v)의 픽셀 값들을 결정하는 예를 예시한다.
도 12는 적어도 하나의 실시예에 따라 점유 맵 OM(u,v)의 픽셀 값들을 결정하는 예를 예시한다.
도 13은 적어도 하나의 실시예에 따라 정보 INFO1 및 INFO2를 시그널링하기 위해 사용되는 신택스 요소의 예를 예시한다.
도 14는 적어도 하나의 실시예에 따라 정보 INFO1 및 INFO2를 시그널링하기 위해 사용되는 신택스 요소의 예를 예시한다.
본 실시예들 중 적어도 하나는 본 실시예들 중 적어도 하나의 예들이 도시된 첨부 도면들을 참조하여 이하에서 더 완전히 설명된다. 그러나, 실시예는 많은 대안적 형태들로 구체화될 수 있으며, 여기에 설명된 예들로 제한되는 것으로 해석되어서는 안 된다. 따라서, 개시된 특정 형태들로 실시예들을 제한하려는 의도가 없다는 것이 이해되어야 한다. 반대로, 본 개시내용은 본 출원의 사상 및 범위 내에 있는 모든 수정들, 등가물들 및 대안들을 커버하도록 의도된다.
도면이 흐름도로서 제시될 때, 이는 또한 대응하는 장치의 블록도를 제공함을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 이는 또한 대응하는 방법/프로세스의 흐름도를 제공함을 이해해야 한다.
도면들의 유사하거나 동일한 요소들은 동일한 참조 부호들로 참조된다.
일부 도면들은 V-PCC를 준수하는 비트스트림의 구조를 정의하기 위해 V-PCC에서 널리 사용되는 신택스 표들을 표현한다. 그러한 신택스 표들에서, 용어 '...'은 V-PCC에서 주어지고 판독을 용이하게 하기 위해 도면들에서 제거된 오리지널 정의에 대해 신택스의 불변 부분들을 나타낸다. 도면들에서 굵은 항목들은 비트스트림을 파싱함으로써 이러한 용어에 대한 값이 획득됨을 표시한다. 신택스 테이블들의 우측 열은 신택스 요소의 데이터를 인코딩하기 위한 비트들의 수를 표현한다. 예를 들어, u(4)는 데이터를 인코딩하기 위해 4 비트가 사용됨을 표시하고, u(8)은 8 비트를 표시하고, ae(v)는 콘텍스트 적응형 산술 엔트로피 코딩된 신택스 요소를 표시한다.
아래에서 설명되고 고려되는 양태들은 많은 상이한 형태들로 구현될 수 있다. 아래의 도 1 내지 도 14는 일부 실시예들을 제공하지만, 다른 실시예들이 고려되고, 도 1 내지 도 14의 논의는 구현들의 폭을 제한하지 않는다.
양상들 중 적어도 하나는 일반적으로 포인트 클라우드 인코딩 및 디코딩에 관한 것이고, 적어도 하나의 다른 양상은 일반적으로 생성되거나 인코딩된 비트스트림을 송신하는 것에 관한 것이다.
더 정확하게는, 본원에서 설명된 다양한 방법들 및 다른 양태들은 모듈들, 예를 들어, 도 1 내지 도 14에 도시된 바와 같이 모듈 PGM(단계 3100), 인코더 OMENC(단계 3600), 기하구조 생성 모듈 GGM(단계 4300), 점유 맵 디코더 OMDEC(단계 4400)를 수정하는 데 사용될 수 있다.
또한, 본 양태들은 포인트 클라우드 압축과 관련된 MPEG-I 파트 5와 같은 MPEG 표준들로 제한되지 않으며, 예를 들어, 이미 존재하는지 또는 장래에 개발되는지와 관계없이, 다른 표준들 및 추천들, 및 임의의 이러한 표준들 및 추천들(MPEG-I 파트 5를 포함)의 확장들에 적용될 수 있다. 달리 표시되거나 기술적으로 배제되지 않는 한, 본 출원에서 설명된 양상들은 개별적으로 또는 조합하여 사용될 수 있다.
다음에서, 이미지 데이터는 데이터, 예를 들어, 특정 이미지/비디오 포맷의 2D 샘플들의 하나의 또는 몇몇 어레이들을 지칭한다. 특정 이미지/비디오 포맷은 이미지(또는 비디오)의 픽셀 값들과 관련된 정보를 특정할 수 있다. 특정 이미지/비디오 포맷은 또한, 예를 들어 이미지(또는 비디오)를 시각화 및/또는 디코딩하기 위해 디스플레이 및/또는 임의의 다른 장치에 의해 사용될 수 있는 정보를 특정할 수 있다. 이미지는 통상적으로, 이미지의 휘도(또는 루마)를 표현하는 샘플들의 제1 2D 어레이의 형상인 제1 성분을 포함한다. 이미지는 또한, 일반적으로 이미지의 색차(또는 크로마)를 표현하는 샘플들의 다른 2D 어레이들의 형상인 제2 성분 및 제3 성분을 포함할 수 있다. 일부 실시예들은 종래의 삼색성(tri-chromatic) RGB 표현과 같은 컬러 샘플들의 2D 어레이들의 세트를 사용하여 동일한 정보를 표현한다.
픽셀 값은 하나 이상의 실시예들에서 C 값들의 벡터로 표현되고, 여기서 C는 성분들의 수이다. 벡터의 각각의 값은 통상적으로, 픽셀 값들의 동적 범위를 정의할 수 있는 비트들의 수로 표현된다.
이미지 블록은 이미지에 속하는 픽셀들의 세트를 의미한다. 이미지 블록(또는 이미지 블록 데이터)의 픽셀 값들은 이러한 이미지 블록에 속하는 픽셀들의 값들을 지칭한다. 이미지 블록은 임의의 형상을 가질 수 있지만, 직사각형들이 일반적이다.
포인트 클라우드는, 고유한 좌표를 갖고 또한 하나 이상의 속성들을 가질 수 있는 3D 체적 공간 내의 3D 샘플들의 데이터세트에 의해 표현될 수 있다.
이 데이터 세트의 3D 샘플은 자신의 공간 위치(3D 공간에서의 X, Y 및 Z 좌표)에 의해 그리고 가능하게는 RGB 또는 YUV 컬러 공간에서 표현되는 컬러와 같은 하나 이상의 연관된 속성들, 예를 들어, 투명도, 반사율, 2-성분 법선 벡터, 또는 이러한 샘플의 특징부를 표현하는 임의의 특징부에 의해 정의될 수 있다. 예를 들어, 3D 샘플은 6개의 성분들 (X, Y, Z, R, G, B) 또는 동등하게 (X, Y, Z, y, U, V)에 의해 정의될 수 있으며, 여기서 (X, Y, Z)는 3D 공간 내의 포인트의 좌표를 정의하고 (R, G, B) 또는 (y, U, V)는 이러한 3D 샘플의 컬러를 정의한다. 동일한 유형의 속성이 여러번 존재할 수 있다. 예를 들어, 다수의 컬러 속성들은 상이한 관점들로부터 컬러 정보를 제공할 수 있다.
포인트 클라우드는 시간에 대해 클라우드가 변하는지 여부에 따라 정적이거나 동적일 수 있다. 정적 포인트 클라우드 또는 동적 포인트 클라우드의 인스턴스는 일반적으로 포인트 클라우드 프레임으로 표시된다. 동적 포인트 클라우드의 경우, 포인트들의 수는 일반적으로 일정하지 않지만, 반대로, 일반적으로 시간에 따라 변한다는 것이 주목되어야 한다. 더 일반적으로, 포인트 클라우드는, 예를 들어, 포인트들의 수, 하나 이상의 포인트들의 포지션, 또는 임의의 포인트의 임의의 속성과 같이, 시간에 따라 변화되는 것이 있다면, 동적인 것으로 간주될 수 있다.
예로서, 2D 샘플은 6개의 성분들 (u, v, Z, R, G, B) 또는 동등하게 (u, v, Z, y, U, V)에 의해 정의될 수 있다. (u, v)는 투사 평면의 2D 공간에서 2D 샘플의 좌표를 정의한다. Z는 이러한 투사 평면 상에 투사된 3D 샘플의 깊이 값이다. (R, G, B) 또는 (y, U, V)는 이러한 3D 샘플의 컬러를 정의한다.
도 1은 본 실시예들 중 적어도 하나에 따른 2-계층-기반 포인트 클라우드 인코딩 구조(1000)의 예의 개략적인 블록도를 예시한다.
2-계층-기반 포인트 클라우드 인코딩 구조(1000)는 입력 포인트 클라우드 프레임 IPCF를 표현하는 비트스트림 B를 제공할 수 있다. 가능하게는, 상기 입력 포인트 클라우드 프레임 IPCF는 동적 포인트 클라우드의 프레임을 표현한다. 이어서, 상기 동적 포인트 클라우드의 프레임은 다른 프레임과 독립적으로 2-계층-기반 포인트 클라우드 인코딩 구조(1000)에 의해 인코딩될 수 있다.
기본적으로, 2-계층-기반 포인트 클라우드 인코딩 구조(1000)는 베이스 계층 BL 및 향상 계층 EL로서 비트스트림 B를 구조화하는 능력을 제공할 수 있다. 베이스 계층 BL은 입력 포인트 클라우드 프레임 IPCF의 손실 표현을 제공할 수 있고, 향상 계층 EL은 베이스 계층 BL에 의해 표현되지 않는 격리된 포인트들을 인코딩함으로써 더 높은 품질(가능하게는 무손실) 표현을 제공할 수 있다.
베이스 계층 BL은 도 3에 예시된 바와 같이 이미지-기반 인코더(3000)에 의해 제공될 수 있다. 상기 이미지-기반 인코더(3000)는 입력 포인트 클라우드 프레임 IPCF의 3D 샘플들의 기하구조/속성들을 표현하는 기하구조/텍스처 이미지들을 제공할 수 있다. 이는 격리된 3D 샘플들이 폐기될 수 있게 할 수 있다. 베이스 계층 BL은 중간 재구성된 포인트 클라우드 프레임 IRPCF를 제공할 수 있는 도 4에 예시된 바와 같이 이미지-기반 디코더(4000)에 의해 디코딩될 수 있다.
이어서, 도 1의 2-계층-기반 포인트 클라우드 인코딩(1000)으로 돌아가서, 비교기 COMP는 누락된/격리된 3D 샘플들을 검출/위치설정하기 위해 입력 포인트 클라우드 프레임 IPCF의 3D 샘플들을 중간 재구성된 포인트 클라우드 프레임 IRPCF의 3D 샘플들과 비교할 수 있다. 다음으로, 인코더 ENC는 누락된 3D 샘플들을 인코딩할 수 있고, 향상 계층 EL을 제공할 수 있다. 마지막으로, 베이스 계층 BL 및 향상 계층 EL은 비트스트림 B를 생성하기 위해 멀티플렉서 MUX에 의해 함께 멀티플렉싱될 수 있다.
실시예에 따르면, 인코더 ENC는 중간 재구성된 포인트 클라우드 프레임 IRPCF의 3D 기준 샘플 R을 검출하고 누락된 3D 샘플들 M과 연관시킬 수 있는 검출기를 포함할 수 있다.
예를 들어, 누락된 3D 샘플 M과 연관된 3D 기준 샘플 R은 주어진 메트릭에 따라 M의 가장 가까운 이웃일 수 있다.
일 실시예에 따르면, 인코더 ENC는 이어서, 누락된 3D 샘플들 M의 공간 위치들 및 이들의 속성들을 상기 3D 기준 샘플들 R의 공간 위치들 및 속성들에 따라 결정된 차이들로서 인코딩할 수 있다.
변형에서, 그러한 차이들은 개별적으로 인코딩될 수 있다.
예를 들어, 공간 좌표 x(M), y(M) 및 z(M)를 갖는 누락된 3D 샘플 M에 대해, x-좌표 포지션 차이 Dx(M), y-좌표 포지션 차이 Dy(M), z-좌표 포지션 차이 Dz(M), R-속성 성분 차이 Dr(M), G-속성 성분 차이 Dg(M) 및 B-속성 성분 차이 Db(M)는 다음과 같이 계산될 수 있고:
Dx(M)=x(M)-x(R),
여기서, x(M)은 도 3에 의해 제공된 기하구조 이미지에서 각각 3D 샘플 M, R의 x 좌표이고,
Dy(M) = y(M)-y(R)
여기서, y(M)은 도 3에 의해 제공된 기하구조 이미지에서 각각 3D 샘플 M, R의 y 좌표이고,
Dz(M)=z(M)-z(R)
여기서, z(M)은 도 3에 의해 제공된 기하구조 이미지에서 각각 3D 샘플 M, R의 z 좌표이고,
Dr(M)=R(M)-R(R).
여기서, 각각 R(M), R(R)은 각각 3D 샘플 M, R의 컬러 속성의 r-컬러 성분이고,
Dg(M)=G(M)-G(R).
여기서, 각각 G(M), G(R)은 각각 3D 샘플 M, R의 컬러 속성의 g-컬러 성분이고,
Db(M)=B(M)-B(R).
여기서, 각각 B(M), B(R)은 각각 3D 샘플 M, R의 컬러 속성의 b-컬러 성분이다.
도 2는 본 실시예들 중 적어도 하나에 따른 2-계층-기반 포인트 클라우드 디코딩 구조(2000)의 예의 개략적인 블록도를 예시한다.
2-계층-기반 포인트 클라우드 디코딩 구조(2000)의 거동은 그의 능력들에 의존한다.
제한된 능력들을 갖는 2-계층-기반 포인트 클라우드 디코딩 구조(2000)는 디-멀티플렉서 DMUX를 사용함으로써 비트스트림 B로부터의 베이스 계층 BL에만 액세스할 수 있고, 이어서 도 4에 예시된 바와 같이 포인트 클라우드 디코더(4000)에 의해 베이스 계층 BL을 디코딩함으로써 입력 포인트 클라우드 프레임 IPCF의 충실(그러나 손실이 있는) 버전 IRPCF를 제공할 수 있다.
전체 능력들을 갖는 2-계층-기반 포인트 클라우드 디코딩 구조(2000)는 디-멀티플렉서 DMUX를 사용함으로써 비트스트림 B로부터 기본 계층 BL 및 향상 계층 EL 둘 모두에 액세스할 수 있다. 도 4에 예시된 바와 같이, 포인트 클라우드 디코더(4000)는 베이스 계층 BL로부터 중간 재구성된 포인트 클라우드 프레임 IRPCF를 결정할 수 있다. 디코더(DEC)는 향상 계층 EL로부터 상보적 포인트 클라우드 프레임 CPCF를 결정할 수 있다. 이어서, 결합기 COM은, 중간 재구성된 포인트 클라우드 프레임 IRPCF 및 상보적 포인트 클라우드 프레임 CPCF를 함께 조합하여, 입력 포인트 클라우드 프레임 IPCF의 더 높은 품질(가능하게는 무손실) 표현(재구성) CRPCF를 제공할 수 있다.
도 3은 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 인코더(3000)의 예의 개략적인 블록도를 예시한다.
이미지-기반 포인트 클라우드 인코더(3000)는 동적 포인트 클라우드의 기하구조 및 텍스처(속성) 정보를 압축하기 위해 기존의 비디오 코덱들을 레버리지한다. 이는 본질적으로 포인트 클라우드 데이터를 상이한 비디오 시퀀스들의 세트로 변환함으로써 달성된다.
특정 실시예들에서, 2개의 비디오들(하나는 포인트 클라우드 데이터의 기하구조 정보를 캡처하기 위한 것이고 다른 하나는 텍스처 정보를 캡처하기 위한 것임)이 기존의 비디오 코덱들을 사용하여 생성 및 압축될 수 있다. 기존의 비디오 코덱의 예는 HEVC 메인 프로파일 인코더/디코더(ITU-T H.265 Telecommunication standardization sector of ITU (02/2018), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265)이다.
2개의 비디오들을 해석하는 데 사용되는 추가적인 메타데이터가 전형적으로 또한 생성되고 별개로 압축된다. 그러한 추가적인 메타데이터는, 예를 들어 점유 맵 OM 및/또는 보조 패치 정보 PI를 포함한다.
이어서, 생성된 비디오 비트스트림들 및 메타데이터는 조합된 비트스트림을 생성하기 위해 함께 멀티플렉싱될 수 있다.
메타데이터는 통상적으로 소량의 전체 정보를 표현한다는 것이 주목되어야 한다. 정보의 대부분은 비디오 비트스트림들에 있다.
그러한 포인트 클라우드 코딩/디코딩 프로세스의 예는 ISO/IEC JTC1/SC29/WG11 MPEG2019/w18180 (January 2019, Marrakesh)에서 정의된 바와 같은 MPEG 드래프트 표준을 구현하는 테스트 모델 카테고리 2 알고리즘(또한 V-PCC로 표시됨)에 의해 주어진다.
단계(3100)에서, 모듈 PGM은 최상의 압축을 제공하는 전략을 사용하여 투사 평면 상의 2D 샘플들로 입력 포인트 클라우드 프레임 IPCF를 표현하는 데이터 세트의 3D 샘플들을 분해함으로써 적어도 하나의 패치를 생성할 수 있다.
패치는 2D 샘플들의 세트로서 정의될 수 있다.
예를 들어, V-PCC에서, 모든 3D 샘플에서의 법선은 먼저, 예를 들어, Hoppe 등(Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, Werner Stuetzle. Surface reconstruction from unorganized points. ACM SIGGRAPH 1992 Proceedings, 71-78)에서 설명된 바와 같이 추정된다. 다음으로, 입력 포인트 클라우드 프레임 IPCF의 3D 샘플들을 둘러싸는 3D 바운딩 박스의 6개의 배향된 평면들 중 하나와 각각의 3D 샘플을 연관시킴으로써, 입력 포인트 클라우드 프레임 IPCF의 초기 클러스터링이 획득된다. 더 정확하게는, 각각의 3D 샘플은 클러스터링되고, 가장 가까운 법선(즉, 점 법선과 평면 법선의 내적을 최대화함)을 갖는 배향된 평면과 연관된다. 이어서, 3D 샘플들은 이들의 연관된 평면들에 투사된다. 평면에서 연결된 영역을 형성하는 3D 샘플들의 세트는 연결된 성분으로 지칭된다. 연결된 성분은 유사한 법선 및 동일한 연관된 배향된 평면을 갖는 적어도 하나의 3D 샘플의 세트이다. 이어서, 초기 클러스터링은, 그의 법선 및 그의 가장 가까운 이웃 샘플들의 클러스터들에 기초하여 각각의 3D 샘플과 연관된 클러스터를 반복적으로 업데이트함으로써 개선된다. 최종 단계는 각각의 연결된 성분으로부터 하나의 패치를 생성하는 것으로 구성되며, 이는 각각의 연결된 성분의 3D 샘플들을 상기 연결된 성분과 연관된 배향된 평면 상에 투사함으로써 수행된다. 패치는, 기하구조 및/또는 속성 정보에 대응하는 투사된 2D 샘플들을 해석하기 위해 각각의 패치에 대해 정의된 보조 패치 정보를 표현하는 보조 패치 정보 PI와 연관된다.
V-PCC에서, 예를 들어, 보조 패치 정보 PI는 1) 연결된 성분의 3D 샘플들을 둘러싸는 3D 바운딩 박스의 6개의 배향된 평면들 중 하나를 표시하는 정보; 2) 평면 법선에 대한 정보; 3) 깊이, 접선방향 시프트 및 양-접선방향 시프트의 관점에서 표현된 패치에 대한 연결된 성분의 3D 위치를 결정하는 정보; 및 4) 패치를 둘러싸는 2D 바운딩 박스를 정의하는 투사 평면 내의 좌표 (u0, v0, u1, v1)과 같은 정보를 포함한다.
단계(3200)에서, 패치 패킹 모듈 PPM은 통상적으로 미사용 공간을 최소화하는 방식으로 임의의 중첩 없이 2D 그리드(캔버스로 또한 지칭됨) 상에 적어도 하나의 생성된 패치를 맵핑(배치)할 수 있고, 2D 그리드의 모든 TxT(예를 들어, 16x16) 블록이 고유한 패치와 연관되는 것을 보장할 수 있다. 2D 그리드의 주어진 최소 블록 크기 TxT는 이러한 2D 그리드 상에 배치된 별개의 패치들 사이의 최소 거리를 특정할 수 있다. 2D 그리드 해상도는 입력 포인트 클라우드 크기에 의존할 수 있고, 그의 폭 W 및 높이 H 및 블록 크기 T는 메타데이터로서 디코더에 송신될 수 있다.
보조 패치 정보 PI는 2D 그리드의 블록과 패치 사이의 연관에 대한 정보를 더 포함할 수 있다.
V-PCC에서, 보조 정보 PI는 2D 그리드의 블록과 패치 인덱스 사이의 연관성을 결정하는 블록 대 패치 인덱스 정보(BlockToPatch)를 포함할 수 있다.
도 3a는 2개의 패치들 P1 및 P2 및 이들과 연관된 2D 바운딩 박스들 B1 및 B2를 포함하는 캔버스 C의 예를 예시한다. 도 3a에 예시된 바와 같이, 2개의 바운딩 박스들이 캔버스 C에서 중첩될 수 있음을 주목한다. 2D 그리드(캔버스의 분할)는 바운딩 박스 내부에서만 표현되지만, 캔버스의 분할은 또한 그러한 바운딩 박스들 외부에서 발생한다. 패치와 연관된 바운딩 박스는 TxT 블록들(통상적으로 T = 16)로 분할될 수 있다.
패치에 속하는 2D 샘플들을 포함하는 TxT 블록들은 점유된 블록들로 간주될 수 있다. 캔버스의 각각의 점유된 블록은 점유 맵 OM에서 특정 픽셀 값(예를 들어, 1)에 의해 표현되고, 캔버스의 각각의 점유되지 않은 블록은 다른 특정 값, 예를 들어 0에 의해 표현된다. 이어서, 점유 맵 OM의 픽셀 값은 캔버스의 TxT 블록이 점유되는지 여부, 즉 패치에 속하는 2D 샘플들을 포함하는지 여부를 표시할 수 있다.
도 3a에서, 점유 블록은 백색 블록으로 표현되고, 밝은 회색 블록들은 점유되지 않은 블록들을 표현한다. 이미지 생성 프로세스들(단계들(3300 및 3400))은, 입력 포인트 클라우드 프레임 IPCF의 기하구조 및 텍스처를 이미지들로서 저장하기 위해, 단계(3200) 동안 컴퓨팅된 2D 그리드 상으로의 적어도 하나의 생성된 패치의 맵핑을 이용한다.
단계(3300)에서, 기하구조 이미지 생성기 GIG는 입력 포인트 클라우드 프레임 IPCF, 점유 맵 OM 및 보조 패치 정보 PI로부터 적어도 하나의 기하구조 이미지 GI를 생성할 수 있다. 기하구조 이미지 생성기 GIG는 점유된 블록들 및 그에 따라 기하구조 이미지 GI에서 비어 있지 않은 픽셀들을 검출(위치설정)하기 위해 점유 맵 정보를 이용할 수 있다.
기하구조 이미지 GI는 입력 포인트 클라우드 프레임 IPCF의 기하구조를 표현할 수 있고, 예를 들어 YUV420-8비트 포맷으로 표현된 WxH 픽셀들의 모노크로매틱(monochromatic) 이미지일 수 있다.
다수의 3D 샘플들이 (동일한 투사 방향(라인)을 따라) 투사 평면의 동일한 2D 샘플에 투사(맵핑)되는 경우를 더 양호하게 처리하기 위해, 계층들로 지칭되는 다수의 이미지들이 생성될 수 있다. 따라서, 상이한 깊이 값들 D1, ..., Dn이 패치의 2D 샘플과 연관될 수 있고, 이어서, 다수의 기하구조 이미지들이 생성될 수 있다.
V-PCC에서, 패치의 2D 샘플들은 2개의 계층들 상에 투사된다. 근거리 계층으로 또한 지칭되는 제1 계층은, 예를 들어 더 작은 깊이들을 갖는 2D 샘플들과 연관된 깊이 값들 D0을 저장할 수 있다. 원거리 계층으로 지칭되는 제2 계층은, 예를 들어 더 큰 깊이들을 갖는 2D 샘플들과 연관된 깊이 값들 D1을 저장할 수 있다. 예를 들어, 제2 깊이 이미지에 의해 저장된 정보는 범위 [D0, D0+Δ]의 깊이 값들에 대응하는 구간 [0, Δ] 내에 있을 수 있으며, 여기서 Δ는 표면 두께를 설명하는 사용자-정의 파라미터이다.
이러한 방식으로, 제2 계층은 상당한 윤곽-형 고주파 특징부들을 포함할 수 있다. 따라서, 제2 깊이 이미지는 레거시 비디오 코더를 사용함으로써 코딩하기 어려울 수 있고, 따라서 깊이 값들은 상기 디코딩된 제2 깊이 이미지로부터 불량하게 재구성될 수 있으며, 이는 재구성된 포인트 클라우드 프레임의 기하구조의 불량한 품질을 초래할 수 있음이 명백해 보인다.
일 실시예에 따르면, 기하구조 이미지 생성 모듈 GIG는 보조 패치 정보 PI를 사용함으로써 제1 및 제2 계층들의 2D 샘플들과 연관된 깊이 값들을 코딩(유도)할 수 있다.
V-PCC에서, 대응하는 연결된 성분을 갖는 패치 내의 3D 샘플의 위치는 다음과 같이 깊이 δ(u, v), 접선방향 시프트 s(u, v) 및 양-접선방향 시프트 r(u, v)로 표현될 수 있다:
δ(u, v) = δ0 + g(u, v)
s(u, v) = s0 - u0 + u
r(u, v) = r0 - v0 + v
여기서, g(u, v)는 기하구조 이미지의 루마 성분이고, (u, v)는 투사 평면 상의 3D 샘플과 연관된 픽셀이고, (δ0, s0, r0)은 3D 샘플이 속하는 연결된 성분의 대응하는 패치의 3D 위치이며, (u0, v0, u1, v1)은 상기 연결된 성분과 연관된 패치의 투사를 둘러싸는 2D 바운딩 박스를 정의하는 상기 투사 평면 내의 좌표이다.
따라서, 기하구조 이미지 생성 모듈 GIG는 다음과 같이 주어진 루마 성분 g(u, v)로서 계층(제1 또는 제2 또는 둘 모두)의 2D 샘플들과 연관된 깊이 값들을 코딩(유도)할 수 있다: g(u,v)=d(u, v) - δ0. 이러한 관계는, 수반되는 보조 패치 정보 PI를 이용하여 재구성된 기하구조 이미지 g(u, v)로부터 3D 샘플 위치들 (δ0, s0, r0)을 재구성하기 위해 이용될 수 있다는 것이 주목된다.
일 실시예에 따르면, 제1 기하구조 이미지 GI0이 제1 또는 제2 계층의 2D 샘플들의 깊이 값들을 저장할 수 있는지 여부를 표시하기 위해 투사 모드가 사용될 수 있고, 제2 기하구조 이미지 GI1은 제2 또는 제1 계층의 2D 샘플들과 연관된 깊이 값들을 저장할 수 있다.
예를 들어, 투사 모드가 0과 동일할 때, 제1 기하구조 이미지 GI0은 제1 계층의 2D 샘플들의 깊이 값들을 저장할 수 있고, 제2 기하구조 이미지 GI1은 제2 계층의 2D 샘플들과 연관된 깊이 값들을 저장할 수 있다. 역으로, 투사 모드가 1과 동일할 때, 제1 기하구조 이미지 GI0은 제2 계층의 2D 샘플들의 깊이 값들을 저장할 수 있고, 제2 기하구조 이미지 GI1은 제1 계층의 2D 샘플들과 연관된 깊이 값들을 저장할 수 있다.
실시예에 따르면, 프레임 투사 모드는 고정 투사 모드가 모든 패치들에 대해 사용되는지 여부 또는 각각의 패치가 상이한 투사 모드를 사용할 수 있는 가변 투사 모드가 사용되는지 여부를 표시하는 데 사용될 수 있다.
투사 모드 및/또는 프레임 투사 모드는 메타데이터로서 송신될 수 있다.
프레임 투사 모드 판정 알고리즘은 예를 들어, V-PCC의 섹션 2.2.1.3.1에서 제공될 수 있다.
일 실시예에 따르면, 가변 투사 모드가 사용될 수 있음을 프레임 투사가 표시할 때, 패치 투사 모드는 패치를 (디-)투사하기 위해 사용할 적절한 모드를 표시하는 데 사용될 수 있다.
패치 투사 모드는 메타데이터로서 송신될 수 있고, 가능하게는 보조 패치 정보 PI에 포함된 정보일 수 있다.
패치 투사 모드 판정 알고리즘은, 예를 들어 V-PCC의 섹션 2.2.1.3.2에서 제공된다.
단계(3300)의 실시예에 따르면, 패치의 2D 샘플 (u, v)에 대응하는 제1 기하구조 이미지의 픽셀 값, 예를 들어 GI0은 상기 2D 샘플 (u, v)에 대응하는 투사 라인을 따라 정의된 적어도 하나의 중간 3D 샘플의 깊이 값을 표현할 수 있다. 더 정확하게는, 상기 중간 3D 샘플들은 투사 라인을 따라 상주하며, 깊이 값 D1이 제2 기하구조 이미지, 예를 들어 GI1에 코딩되는 2D 샘플 (u, v)의 동일한 좌표를 공유한다. 추가로, 상기 중간 3D 샘플들은 깊이 값 D0과 깊이 값 D1 사이의 깊이 값들을 가질 수 있다. 지정된 비트는 각각의 상기 중간 3D 샘플들과 연관될 수 있으며, 이는 중간 3D 샘플이 존재하면 1로 설정되고 그렇지 않으면 0으로 설정된다.
도 3b는 투사 라인 PL을 따라 2개의 3D 샘플들 P0 및 P1 사이에 위치된 2개의 중간 3D 샘플들 Pi1 및 Pi2의 예를 예시한다. 3D 샘플들 P0 및 P1은 각각 D0 및 D1과 동일한 깊이 값들을 갖는다. 2개의 중간 3D 샘플들 Pi1 및 Pi2의 깊이 값들 Di1 및 Di2는 D0보다 크고 D1보다 낮다.
이어서, 상기 투사 라인을 따라 상기 지정된 모든 비트들은 연쇄되어 이후 EOM(Enhanced-Occupancy map) 코드워드로 표기되는 코드워드를 형성할 수 있다. 도 3b에 예시된 바와 같이, 8비트 길이의 EOM 코드워드를 가정하면, 2비트는 1과 동일하여 2개의 3D 샘플들 Pi1 및 Pi2의 위치를 표시한다. 마지막으로, 모든 EOM 코드워드들은 이미지, 예를 들어 점유 맵 OM에 패킹될 수 있다. 그 경우, 캔버스의 적어도 하나의 패치는 적어도 하나의 EOM 코드워드를 포함할 수 있다. 그러한 패치는 기준 패치로 표기되고, 참조 패치의 블록은 EOM 기준 블록으로 표기된다. 따라서, 점유 맵 OM의 픽셀 값은, 캔버스의 점유되지 않은 블록을 표시하기 위한 제1 값, 예를 들어 0, 또는 점유된 블록 또는 캔버스의 EOM 기준 블록을 표시하기 위한 다른 값, 예를 들어 0 초과의 값과 동일할 수 있다.
일례에 따르면, D1-D0<= 1인 경우, 점유 맵 OM의 픽셀 값은 점유된 블록을 표시할 수 있고, D1-D0> 1인 경우, 픽셀 값 맵 OM은 캔버스의 EOM 기준 블록을 표시할 수 있다.
EOM 기준 블록들을 표시하는 점유 맵 OM 내의 픽셀들의 위치들 및 이들 픽셀들의 값들로부터 획득된 EOM 코드워드의 비트들의 값들은 중간 3D 샘플들의 3D 좌표를 표시한다.
단계(3400)에서, 텍스처 이미지 생성기 TIG는 입력 포인트 클라우드 프레임 IPCF, 점유 맵 OM, 보조 패치 정보 PI, 및 비디오 디코더 VDEC(도 4의 단계(4200))의 출력인 적어도 하나의 디코딩된 기하구조 이미지 DGI로부터 유도된 재구성된 포인트 클라우드 프레임의 기하구조로부터 적어도 하나의 텍스처 이미지 TI를 생성할 수 있다.
텍스처 이미지 TI는 입력 포인트 클라우드 프레임 IPCF의 텍스처를 표현할 수 있고, 예를 들어 YUV420-8비트 포맷으로 표현된 WxH 픽셀들의 이미지일 수 있다.
텍스처 이미지 생성기 TG는 점유된 블록들 및 그에 따라 텍스처 이미지에서 비어 있지 않은 픽셀들을 검출(위치설정)하기 위해 점유 맵 정보를 이용할 수 있다.
텍스처 이미지 생성기 TIG는 텍스처 이미지 TI를 생성하고 각각의 기하구조 이미지/계층 DGI와 연관시키도록 적응될 수 있다.
일 실시예에 따르면, 텍스처 이미지 생성기 TIG는 제1 계층의 2D 샘플들과 연관된 텍스처(속성) 값들 T0을 제1 텍스처 이미지 TI0의 픽셀 값들로서 그리고 제2 계층의 2D 샘플들과 연관된 텍스처 값들 T1을 제2 텍스처 이미지 TI1의 픽셀 값들로서 코딩(저장)할 수 있다.
대안적으로, 텍스처 이미지 생성 모듈 TIG는 제2 계층의 2D 샘플들과 연관된 텍스처 값들 T1을 제1 텍스처 이미지 TI0의 픽셀 값들로서 그리고 제1 계층의 2D 샘플들과 연관된 텍스처 값들 D0을 제2 기하구조 이미지 GI1의 픽셀 값들로서 코딩(저장)할 수 있다.
예를 들어, 3D 샘플들의 컬러들은 V-PCC의 섹션 2.2.3, 2.2.4, 2.2.5, 2.2.8 또는 2.5에서 설명된 바와 같이 획득될 수 있다.
2개의 3D 샘플들의 텍스처 값들은 제1 또는 제2 텍스처 이미지들에 저장된다. 그러나, 이러한 제1 텍스처 이미지 TI0 또는 제2 텍스처 이미지 TI1 어느 것에도 중간 3D 샘플들의 텍스처 값들이 저장될 수 없는데, 이는, 도 3b에 예시된 바와 같이, 투사된 중간 3D 샘플들의 위치들이 다른 3D 샘플(P0 또는 P1)의 텍스처 값을 저장하기 이미 사용된 점유된 블록들에 대응하기 때문이다. 따라서, 중간 3D 샘플들의 텍스처 값들은 절차적으로 정의된 위치들에서 제1 또는 제2 텍스처 이미지의 다른 곳에 위치된 EOM 텍스처 블록들에 저장된다(V-PCC의 섹션 9.4.5). 간단히 말해서, 이러한 프로세스는 텍스처 이미지에서 점유되지 않은 블록들의 위치들을 결정하고, 중간 3D 샘플들과 연관된 텍스처 값들을 EOM 텍스처 블록들로 표시된 텍스처 이미지의 상기 점유되지 않은 블록들의 픽셀 값들로서 저장한다.
일 실시예에 따르면, 패딩 프로세스가 기하구조 및/또는 텍스처 이미지에 적용될 수 있다. 패딩 프로세스는 비디오 압축에 적합한 구분적 평활 이미지를 생성하기 위해 패치들 사이의 빈 공간을 채우는 데 사용될 수 있다.
이미지 패딩 예는 V-PCC의 섹션들 2.2.6 및 2.2.7에서 제공된다.
단계(3500)에서, 비디오 인코더 VENC는 생성된 이미지들/계층들 TI 및 GI를 인코딩할 수 있다.
단계(3600)에서, 인코더 OMENC는 예를 들어, V-PCC의 섹션 2.2.2에서 상세히 설명된 바와 같이 점유 맵을 이미지로서 인코딩할 수 있다. 손실 또는 무손실 인코딩이 사용될 수 있다.
일 실시예에 따르면, 비디오 인코더 ENC 및/또는 OMENC는 HEVC-기반 인코더일 수 있다.
단계(3700)에서, 인코더 PIENC는 보조 패치 정보 PI 및 가능하게는 추가적인 메타데이터, 예를 들어, 기하구조/텍스처 이미지들의 블록 크기 T, 폭 W 및 높이 H를 인코딩할 수 있다.
일 실시예에 따르면, 보조 패치 정보는 (예를 들어, V-PCC의 섹션 2.4.1에서 정의된 바와 같이) 차등적으로 인코딩될 수 있다.
단계(3800)에서, 멀티플렉서가 단계들(3500, 3600 및 3700)의 생성된 출력들에 적용될 수 있고, 결과적으로 이러한 출력들은 베이스 계층 BL을 표현하는 비트스트림을 생성하도록 함께 멀티플렉싱될 수 있다. 메타데이터 정보는 전체 비트스트림의 작은 부분을 표현한다는 것이 주목되어야 한다. 정보의 대부분은 비디오 코덱들을 사용하여 압축된다.
도 4는 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 디코더(4000)의 예의 개략적인 블록도를 예시한다.
단계(4100)에서, 디-멀티플렉서 DMUX는 베이스 계층 BL을 표현하는 비트스트림의 인코딩된 정보를 디멀티플렉싱하기 위해 적용될 수 있다.
단계(4200)에서, 비디오 디코더 VDEC는 적어도 하나의 디코딩된 기하구조 이미지 DGI 및 적어도 하나의 디코딩된 텍스처 이미지 DTI를 유도하기 위해 인코딩된 정보를 디코딩할 수 있다.
단계(4300)에서, 디코더 OMDEC는 디코딩된 점유 맵 DOM을 유도하기 위해 인코딩된 정보를 디코딩할 수 있다.
일 실시예에 따르면, 비디오 디코더 VDEC 및/또는 OMDEC는 HEVC-기반 디코더일 수 있다.
단계(4400)에서, 디코더 PIDEC는 보조 패치 정보 DPI를 유도하기 위해 인코딩된 정보를 디코딩할 수 있다.
가능하게는, 메타데이터는 또한 비트스트림 BL로부터 유도될 수 있다.
단계(4500)에서, 기하구조 생성 모듈(GGM)은 적어도 하나의 디코딩된 기하구조 이미지 DGI, 디코딩된 점유 맵 DOM, 디코딩된 보조 패치 정보 DPI 및 가능한 추가 메타데이터로부터 재구성된 포인트 클라우드 프레임 IRPCF의 기하구조 RG를 유도할 수 있다.
기하구조 생성 모듈 GGM은 적어도 하나의 디코딩된 기하구조 이미지 DGI에서 비어 있지 않은 픽셀들을 위치식별하기 위해 디코딩된 점유 맵 정보 DOM을 이용할 수 있다.
위에서 설명된 바와 같이, 상기 비어 있지 않은 픽셀들은 디코딩된 점유 정보 DOM의 픽셀 값들 및 D1-D0의 값에 따라 점유된 블록들 또는 EOM 기준 블록들에 속한다.
단계(4500)의 실시예에 따르면, 기하구조 생성 모듈 GGM은 비어 있지 않은 픽셀들의 좌표로부터 중간 3D 샘플들의 3D 좌표 중 2개를 유도할 수 있다.
단계(4500)의 실시예에 따르면, 상기 비어 있지 않은 픽셀들이 상기 EOM 기준 블록에 속할 때, 기하구조 생성 모듈 GGM은 EOM 코드워드들의 비트 값들로부터 중간 3D 샘플들의 제3 3D 좌표를 유도할 수 있다.
예를 들어, 도 3b의 예에 따르면, EOM 코드워드 EOMC는 중간 3D 샘플들 Pi1 및 Pi2의 3D 좌표를 결정하는 데 사용된다. 중간 3D 샘플 Pi1의 제3 좌표는 예를 들어, Di1= D0+3에 의해 D0로부터 유도될 수 있고, 재구성된 3D 샘플 Pi2의 제3 좌표는 예를 들어, Di2=D0+5에 의해 D0으로부터 유도될 수 있다. 오프셋 값(3 또는 5)은 투사 라인을 따른 D0과 D1 사이의 구간들의 수이다.
일 실시예에 따르면, 상기 비어 있지 않은 픽셀들이 점유된 블록에 속할 때, 기하구조 생성 모듈 GGM은 비어 있지 않은 픽셀들의 좌표, 적어도 하나의 디코딩된 기하구조 이미지 DGI 중 하나의 상기 비어 있지 않은 픽셀들의 값들, 디코딩된 보조 패치 정보로부터, 그리고 가능하게는 추가적인 메타데이터로부터 재구성된 3D 샘플들의 3D 좌표를 유도할 수 있다.
비어 있지 않은 픽셀들의 사용은 3D 샘플들과의 2D 픽셀 관계에 기초한다. 예를 들어, V-PCC에서의 상기 투사를 이용하여, 재구성된 3D 샘플들의 3D 좌표는 다음과 같이 깊이 δ(u, v), 접선방향 시프트 s(u, v) 및 양-접선방향 시프트 r(u, v)로 표현될 수 있다:
δ(u, v) = δ0 + g(u, v)
s(u, v) = s0 - u0 + u
r(u, v) = r0 - v0 + v
여기서, g(u, v)는 디코딩된 기하구조 이미지 DGI의 루마 성분이고, (u, v)는 재구성된 3D 샘플과 연관된 픽셀이고, (δ0, s0, r0)은 재구성된 3D 샘플이 속하는 연결된 성분의 대응하는 3D 위치이며, (u0, v0, u1, v1)은 상기 연결된 성분과 연관된 패치의 투사를 둘러싸는 2D 바운딩 박스를 정의하는 투사 평면 내의 좌표이다.
단계(4600)에서, 텍스처 생성 모듈 TTM은 기하구조 RG및 적어도 하나의 디코딩된 텍스처 이미지 DTI로부터 재구성된 포인트 클라우드 프레임 IRPCF의 텍스처를 유도할 수 있다.
단계(4600)의 실시예에 따르면, 텍스처 생성 모듈 TTM은 대응하는 EOM 텍스처 블록으로부터 EOM 기준 블록에 속하는 비어 있지 않은 픽셀들의 텍스처를 유도할 수 있다. 텍스처 이미지에서 EOM 텍스처 블록들의 위치들은 절차적으로 정의된다(V-PCC의 섹션 9.4.5).
단계(4600)의 실시예에 따르면, 텍스처 생성 모듈 TTM은 제1 또는 제2 텍스처 이미지의 픽셀 값들로서 직접 점유된 블록에 속하는 비어 있지 않은 픽셀들의 텍스처를 유도할 수 있다.
도 5는 본 실시예들 중 적어도 하나에 따른 기본 계층 BL을 표현하는 비트스트림의 예시적인 신택스를 개략적으로 예시한다.
비트스트림은 비트스트림 헤더 SH 및 적어도 하나의 프레임 스트림 그룹 GOFS를 포함한다.
프레임 스트림 그룹 GOFS는 헤더 HS, 점유 맵 OM을 표현하는 적어도 하나의 신택스 요소 OMS, 적어도 하나의 기하구조 이미지(또는 비디오)를 표현하는 적어도 하나의 신택스 요소 GVS, 적어도 하나의 텍스처 이미지(또는 비디오)를 표현하는 적어도 하나의 신택스 요소 TVS 및 보조 패치 정보 및 다른 추가적인 메타데이터를 표현하는 적어도 하나의 신택스 요소 PIS를 포함한다.
변형에서, 프레임 스트림 그룹 GOFS는 적어도 하나의 프레임 스트림을 포함한다.
도 6은 다양한 양태들 및 실시예들이 구현되는 시스템의 예를 예시하는 개략 블록도를 도시한다.
시스템(6000)은 아래에서 설명되는 다양한 컴포넌트들을 포함하는 하나 이상의 디바이스들로서 구현될 수 있고, 본 문헌에서 설명되는 양상들 중 하나 이상을 수행하도록 구성된다. 시스템(6000)의 전부 또는 일부를 형성할 수 있는 장비의 예들은 개인용 컴퓨터들, 랩톱들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 레코딩 시스템들, 연결된 가전 제품들, 연결된 차량들 및 이들의 연관된 프로세싱 시스템들, 머리 장착 디스플레이 디바이스들(HMD, 시스루 안경), 프로젝터들(비머들), "케이브들"(다수의 디스플레이들을 포함하는 시스템), 서버들, 비디오 인코더들, 비디오 디코더들, 비디오 디코더로부터의 출력을 프로세싱하는 포스트-프로세서들, 비디오 인코더에 입력을 제공하는 프리-프로세서들, 웹 서버들, 셋톱 박스들, 포인트 클라우드를 프로세싱하기 위한 임의의 다른 디바이스, 비디오 또는 이미지 또는 다른 통신 디바이스들을 포함한다. 시스템(6000)의 요소들은 단독으로 또는 조합하여 단일 집적 회로, 다수의 IC들 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(6000)의 프로세싱 및 인코더/디코더 요소들은 다수의 IC들 및/또는 개별 컴포넌트들에 걸쳐 분산될 수 있다. 다양한 실시예들에서, 시스템(6000)은, 예를 들어 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 다른 유사한 시스템들에 또는 다른 전자 디바이스들에 통신가능하게 결합될 수 있다. 다양한 실시예들에서, 시스템(6000)은 본 문헌에 설명된 양상들 중 하나 이상을 구현하도록 구성될 수 있다.
시스템(6000)은 예를 들어, 본 문헌에서 설명된 다양한 양상들을 구현하기 위해 로딩된 명령어들을 실행하도록 구성되는 적어도 하나의 프로세서(6010)를 포함할 수 있다. 프로세서(6010)는 본 기술분야에 공지된 바와 같이 내장 메모리, 입력 출력 인터페이스 및 다양한 다른 회로들을 포함할 수 있다. 시스템(6000)은 적어도 하나의 메모리(6020)(예를 들어, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함할 수 있다. 시스템(6000)은 EEPROM(Electrically Erasable Programmable Read-Only Memory), ROM(Read-Only Memory), PROM(Programmable Read-Only Memory), RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 플래시, 자기 디스크 드라이브 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(6040)를 포함할 수 있다. 저장 디바이스(6040)는 비제한적 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스 및/또는 네트워크 액세스가능한 저장 디바이스를 포함할 수 있다.
시스템(6000)은 예를 들어 데이터를 프로세싱하여 인코딩된 데이터 또는 디코딩된 데이터를 제공하도록 구성된 인코더/디코더 모듈(6030)을 포함할 수 있고, 인코더/디코더 모듈(6030)은 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(6030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 표현할 수 있다. 공지된 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(6030)은 시스템(6000)의 개별 요소로서 구현될 수 있거나 또는 본 기술분야의 통상의 기술자들에게 공지된 바와 같이 하드웨어 및 소프트웨어의 조합으로서 프로세서(6010) 내에 통합될 수 있다.
본 문헌에 설명된 다양한 양상들을 수행하기 위해 프로세서(6010) 또는 인코더/디코더(6030) 상에 로딩될 프로그램 코드는 저장 디바이스(6040)에 저장될 수 있고, 후속적으로 프로세서(6010)에 의한 실행을 위해 메모리(6020) 상에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(6010), 메모리(6020), 저장 디바이스(6040) 및 인코더/디코더 모듈(6030) 중 하나 이상은 본 문헌에 설명된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 아이템들은 포인트 클라우드 프레임, 인코딩된/디코딩된 기하구조/텍스처 비디오/이미지들 또는 인코딩된/디코딩된 기하구조/텍스처 비디오/이미지들의 부분들, 비트스트림, 행렬들, 변수들, 및 방정식들, 공식들, 연산들 및 연산 로직의 프로세싱으로부터의 중간 또는 최종 결과들을 포함할 수 있지만 이에 제한되지 않는다.
몇몇 실시예들에서, 프로세서(6010) 및/또는 인코더/디코더 모듈(6030) 내부의 메모리는 명령어들을 저장하고 인코딩 또는 디코딩 동안 수행될 수 있는 프로세싱을 위한 동작 메모리를 제공하기 위해 사용될 수 있다.
그러나, 다른 실시예들에서, 프로세싱 디바이스(예를 들어, 프로세싱 디바이스는 프로세서(6010) 또는 인코더/디코더 모듈(6030)일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상에 사용될 수 있다. 외부 메모리는 메모리(6020) 및/또는 저장 디바이스(6040), 예를 들어 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 몇몇 실시예들에서, 외부 비휘발성 플래시 메모리는 텔레비전의 운영 체제를 저장하기 위해 사용될 수 있다. 적어도 하나의 실시예에서, RAM과 같은 고속-외부 동적 휘발성 메모리는, 예를 들어 MPEG-2 파트 2(MPEG-2 비디오로 또한 알려진 ITU-T 추천 H.262 및 ISO/IEC 13818-2로 또한 알려짐), HEVC(High Efficiency Video coding) 또는 VVC(Versatile Video Coding)에 대한 비디오 코딩 및 디코딩 동작들을 위한 작동 메모리로서 사용될 수 있다.
시스템(6000)의 요소들에 대한 입력은 블록(6130)에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은, (i) 예를 들어, 브로드캐스터에 의해 무선으로 송신된 RF 신호를 수신할 수 있는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만 이에 제한되지 않는다.
다양한 실시예들에서, 블록(6130)의 입력 디바이스들은 당업계에 공지된 바와 같이 연관된 각각의 입력 프로세싱 요소들을 가질 수 있다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(또한 신호를 선택하는 것 또는 신호를 주파수들의 대역으로 대역 제한하는 것으로 지칭됨), (ii) 선택된 신호를 하향변환하는 것, (iii) (예를 들어) 특정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역 제한하는 것, (iv) 하향변환되고 대역 제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 디멀티플렉싱하는 것에 필요한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어, 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 하향변환기들, 복조기들, 에러 정정기들 및 디멀티플렉서들을 포함할 수 있다. RF 부분은 예를 들어 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 근-기저대역 주파수) 또는 기저대역으로 하향변환하는 것을 포함하는 이러한 다양한 기능들을 수행하는 튜너를 포함할 수 있다.
하나의 셋톱 박스 실시예에서, RF 부분 및 그의 연관된 입력 프로세싱 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신할 수 있다. 이어서, RF 부분은 원하는 주파수 대역으로 필터링, 하향변환 및 다시 필터링함으로써 주파수 선택을 수행할 수 있다.
다양한 실시예들은 전술된(및 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고, 그리고/또는 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다.
요소들을 추가하는 것은 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함할 수 있다.
추가로, USB 및/또는 HDMI 단자들은 시스템(6000)을 USB 및/또는 HDMI 연결부들을 통해 다른 전자 디바이스들에 연결하기 위한 각각의 인터페이스 프로세서들을 포함할 수 있다. 예를 들어, 리드-솔로몬(Reed-Solomon) 에러 정정과 같은 입력 프로세싱의 다양한 양상들은 예를 들어 별도의 입력 프로세싱 IC 내에서 또는 필요에 따라 프로세서(6010) 내에서 구현될 수 있음을 이해해야 한다. 유사하게, USB 또는 HDMI 인터페이스 프로세싱의 양상들은 별도의 인터페이스 IC 내에서 또는 필요에 따라 프로세서(6010) 내에서 구현될 수 있다. 복조, 오류 정정 및 디멀티플렉싱된 스트림은 예를 들어, 출력 디바이스 상에의 제시를 위해 필요에 따라 데이터 스트림을 프로세싱하기 위해 메모리 및 저장 요소들과 조합하여 동작하는 프로세서(6010) 및 인코더/디코더(6030)를 포함하는 다양한 프로세싱 요소들에 제공될 수 있다.
시스템(6000)의 다양한 요소들은 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소들은 상호연결될 수 있으며, 예를 들어 I2C 버스, 배선 및 인쇄 회로 보드들을 포함하는 당업계에 공지된 내부 버스와 같은 적합한 연결 배열(6140)을 사용하여 그 사이에서 데이터를 송신할 수 있다.
시스템(6000)은 통신 채널(6060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(6050)를 포함할 수 있다. 통신 인터페이스(6050)는 통신 채널(6060)을 통해 데이터를 송신 및 수신하도록 구성된 트랜시버를 포함할 수 있지만, 이에 제한되는 것은 아니다. 통신 인터페이스(6050)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 제한되는 것은 아니며, 통신 채널(6060)은 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, IEEE 802.11과 같은 Wi-Fi 네트워크를 사용하여 시스템(6000)에 스트리밍될 수 있다. 이들 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 적응된 통신 채널(6060) 및 통신 인터페이스(6050)를 통해 수신될 수 있다. 이러한 실시예들의 통신 채널(6060)은 통상적으로 스트리밍 애플리케이션들 및 다른 OTA(over-the-top) 통신들을 허용하기 위해 인터넷을 포함한 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 연결될 수 있다.
다른 실시예들은 입력 블록(6130)의 HDMI 연결을 통해 데이터를 전달하는 셋톱 박스를 사용하여 시스템(6000)에 스트리밍된 데이터를 제공할 수 있다.
또 다른 실시예들은 입력 블록(6130)의 RF 연결을 사용하여 시스템(6000)에 스트리밍된 데이터를 제공할 수 있다.
시그널링은 다양한 방식들로 달성될 수 있음을 이해해야 한다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등은 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하기 위해 사용될 수 있다.
시스템(6000)은 디스플레이(6100), 스피커(6110) 및 다른 주변 디바이스들(6120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(6120)은 실시예들의 다양한 예들에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(3000)의 출력에 기초한 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함할 수 있다.
다양한 실시예들에서, 제어 신호들은, 사용자 개입으로 또는 개입없이 디바이스-대-디바이스 제어를 가능하게 하는 AV.Link(Audio/Video Link), CEC(Consumer Electronics Control) 또는 다른 통신 프로토콜들과 같은 시그널링을 사용하여 시스템(6000)과 디스플레이(6100), 스피커들(6110) 또는 다른 주변 디바이스들(6120) 사이에서 통신될 수 있다.
출력 디바이스들은 각각의 인터페이스들(6070, 6080 및 6090)을 통한 전용 연결들을 통해 시스템(6000)에 통신가능하게 결합될 수 있다.
대안적으로, 출력 디바이스들은 통신 인터페이스(6050)를 통해 통신 채널(6060)을 사용하여 시스템(6000)에 연결될 수 있다. 디스플레이(6100) 및 스피커들(6110)은 예를 들어 텔레비전과 같은 전자 디바이스에서 시스템(6000)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다.
다양한 실시예들에서, 디스플레이 인터페이스(6070)는 예를 들어 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함할 수 있다.
예를 들어, 입력(6130)의 RF 부분이 별도의 셋톱 박스의 일부인 경우, 디스플레이(6100) 및 스피커(6110)는 대안적으로 다른 컴포넌트들 중 하나 이상과 별개일 수 있다. 디스플레이(6100) 및 스피커들(6110)이 외부 컴포넌트들일 수 있는 다양한 실시예들에서, 출력 신호는 예를 들어 HDMI 포트들, USB 포트들 또는 COMP 출력들을 포함하는 전용 출력 연결들을 통해 제공될 수 있다.
위에서 설명된 바와 같이, V-PCC에서, 포인트 클라우드 프레임의 3D 샘플들은 2개의 계층들 상에 투사된다(3D 대 2D 투사): 근거리 계층으로 또한 지칭되는 제1 계층은, 예를 들어 더 작은 깊이들을 갖는 3D 샘플들과 연관된 깊이 값들 D0을 저장할 수 있다. 먼 계층으로 지칭되는 제2 계층은, 예를 들어 더 큰 깊이들을 갖는 3D 샘플들과 연관된 깊이 값들 D1을 저장할 수 있다.
도 7은 V-PCC를 사용하는 그러한 3D 대 2D 투사의 예를 예시한다.
표현의 단순화를 위해, 도면은 2D 샘플 클라우드 프레임 및 1D 투사 평면을 사용하여 행해진다. 3D 샘플들(실선 정사각형들)은 하향으로 투사되며, 따라서 동일한 열의 모든 흑색 3D 샘플들은 투사 평면의 동일한 위치에 투사된다. 투사된 3D 샘플들의 깊이 값들을 저장하기 위해 2개의 계층들: 근거리 계층 D0 및 원거리 계층 D1이 사용된다.
2개의 계층들이 사용되기 때문에, 열당 2개의 3D 샘플들만이 투사될 수 있다: 근거리, 원거리 계층으로 각각 투사된 3D 샘플들은 각각 '0', '1'로 마킹된다. 각각의 계층 값은 투사 평면으로부터 3D 샘플들까지의 거리 값들을 표현한다. 더욱이, V-PCC에서, (2개의 계층들 사이에 위치된) 중간 3D 샘플들의 깊이 값들은 위에서 설명된 바와 같이 EOM 코드워드를 사용하여 코딩된다. 이러한 중간 3D 샘플들은 도 7에서 'I'로 마킹된다.
근거리 계층 D0(제1 깊이 이미지) 및 원거리 계층 D1(제2 깊이 이미지)은 투사 평면으로부터 투사된 3D 샘플들의 위치들을 저장한다. 점유 맵(이미지)은 값 '0'(캔버스의 점유되지 않은 블록), '1'(캔버스의 점유된 블록) 또는 'c'(EOM 코드워드의 값)를 저장한다.
도 8은 적어도 하나의 실시예에 따라 동일한 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 코딩하기 위한 방법의 예의 개략적인 블록도를 예시한다.
단계(8100)에서, 모듈은, 좌표 (u, v)에 의해 정의된 점유 맵 OM 내의 위치에 대응하는 투사 라인 PL을 따라 적어도 하나의 3D 샘플이 투사되는지 여부를 결정한다.
투사 라인 PL을 따라 어떠한 3D 샘플도 투사되지 않으면, 단계(8200)에서, 점유 맵의 좌표 (u, v)에 위치된 픽셀의 값은 캔버스에서 점유되지 않은 블록을 표시하는 제1 값과 동일하다. 예를 들어, 상기 제1 값은 0과 동일하다.
단계(8200) 다음에, 점유 맵 내의 다른 위치를 고려하는 단계(8300)가 이어진다. 프로세스는 모든 위치들이 고려되었을 때 종료된다.
투사 라인 PL을 따라 적어도 하나의 3D 샘플이 투사되면, 단계(8400)에서, 점유 맵의 좌표 (u, v)에 위치된 픽셀의 값은 캔버스에서 점유된 블록을 표시하는 제2 값과 동일하다. 예를 들어, 상기 제2 값은 1과 동일하다.
단계(8500)에서, 모듈은 적어도 하나의 추가적인 3D 샘플이 투사 라인 PL을 따라 투사되는지 여부를 체크한다.
V-PCC에서, 제1 추가적인 3D 샘플은 투사 라인 PL 상에 투사되는 제3 3D 샘플이라는 것을 주목해야 하는데, 이는 2개의 제1 투사된 3D 샘플들의 깊이 값들이 근거리 및 원거리 계층들에 저장되기 때문이다.
V-PCC에서, 단계(8500)에서, 모듈은 3D 샘플의 위치가 D0(u, v)보다 크고 D1(u, v)보다 작은지, 그리고 두번째로, D1(u,v)-D0(u,v)>1인지 여부를 체크한다.
투사 라인 PL을 따라 어떠한 추가적인 3D 샘플도 투사되지 않으면, 단계(8500) 다음에 단계(8300)가 이어진다.
적어도 하나의 추가적인 3D 샘플이 투사 라인 PL을 따라 투사되면, 단계(8600)에서, 모듈은 상기 적어도 하나의 추가적인 3D 샘플의 깊이 값을 인코딩하기 위해 사용된 (N-1)-비트 길이 PCM 코드 PCM(u,v)의 길이 N(u, v)를 초기화한다.
V-PCC에서, N(u,v)=D1(u,v)-D0(u,v)이다.
단계(8700)에서, 모듈은 투사 라인 PL을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값을 인코딩하기 위해 (N-1)-비트 길이 PCM 코드 PCM(u, v)를 생성한다.
V-PCC에서, PCM(u, v)의 i-번째 비트는 위치 D0(u,v)+i가 투사된 3D 샘플에 의해 점유되는지 여부를 표시하기 위해 1과 동일하고, 점유되지 않은 위치를 표시하기 위해 0과 동일하다.
단계(8800)에서, 모듈은 다음과 같이 PCM(u, v)로부터 EOM 코드워드 C(u, v)를 컴퓨팅한다:
Figure pct00001
단계(8900)에서, 모듈은 좌표 (u,v): OM(u,v)=C(u,v)에 위치된 점유 맵 OM의 픽셀의 값에 EOM 코드워드를 할당한다.
단계(8900) 다음에 단계(8300)가 이어진다.
도 9는 적어도 하나의 실시예에 따라 동일한 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 디코딩하기 위한 방법의 예의 개략적인 블록도를 예시한다.
단계(9100)에서, 모듈은 좌표 (u, v)에서 점유 맵(OM 또는 DOM)의 위치를 고려한다. 점유 맵의 모든 위치들이 고려되었을 때, 프로세스는 종료된다.
단계(9200)에서, 모듈은, 점유 맵 내의 좌표 (u, v)에 위치된 픽셀의 값 OM(u, v)가 어떠한 3D 샘플도 투사 라인 PL을 따라 이 위치에 투사되지 않음을 표시하는지 여부를 결정한다. OM(u, v)은 또한 캔버스에서 점유된 블록을 표시하는 다른 값과 동일할 수 있다. 다른 용어들에서, 상기 다른 값은, 상기 투사 라인 PL을 따라 적어도 하나의 투사된 3D 샘플의 깊이 값이 계층(근거리 및/또는 원거리 계층)에 픽셀 값으로서 저장되고, 가능하게는, 추가적인 3D 샘플들의 깊이 값들을 표현하는 EOM 코드워드 C(u,v)가 위치(u, v)에서 점유 맵에 저장되는 것을 표시한다.
V-PCC에서, 단계(9200)에서, OM(u, v) = 0은 어떤 3D 샘플도 (u, v) 위치에 투사되지 않고 단계(9100)에서 다른 위치가 고려된다는 것을 표시한다. OM(u, v) = 1은 캔버스 내의 점유된 블록을 표시하고, D1(u, v)-D0(u, v)> 1은 적어도 하나의 추가적인 3D 샘플의 깊이 값이 저장될 수 있는 것을 표시한다.
점유 맵 내의 좌표 (u, v)에 위치된 픽셀의 값(OM(u, v))이 어떠한 3D 샘플도 상기 투사 라인 PL을 따라 투사되지 않음을 표시하면, 단계(9200) 다음에 점유 맵 내의 다른 위치를 고려하는 단계(9100)가 이어진다.
그렇지 않으면, 단계(9300)에서, 모듈은 상기 적어도 하나의 추가적인 3D 샘플의 깊이 값을 디코딩하기 위해 사용된 (N-1)-비트 길이 PCM 코드 PCM(u,v)의 길이 N(u, v)를 초기화한다.
V-PCC에서, N(u,v)=D1(u,v)-D0(u,v)이다.
단계(9400)에서, 모듈은 좌표 (u,v)에서 점유 맵 OM(u,v)의 픽셀 값으로부터 투사 라인 PL을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값을 디코딩하기 위해 (N-1)-비트 길이 PCM 코드 PCM(u, v)를 생성한다.
V-PCC에서, PCM 코드 PCM(u, v)은 다음에 의해 EOM 코드워드 C(u, v)로부터 획득된다:
Figure pct00002
단계(9500)에서, 모듈은 PCM 코드 PCM(u, v)로부터 적어도 하나의 추가적인 3D 샘플의 깊이 값을 유도한다.
V-PCC에서, 투사 라인 PL을 따라 D0으로부터 투사된 i번째 3D 샘플의 깊이 값은 D0(u, v) + i와 동일하다.
도 8 및 도 9에 도시된 바와 같이, V-PCC에서, PCM 코드의 길이가 근거리 및 원거리 계층들에 의존하기 때문에, 단일 계층이 사용되면 EOM 코드워드들이 컴퓨팅될 수 없다. 또한, 도 7에 도시된 바와 같이, EOM 코드워드들을 사용하는 것은, '0' 및 '1'로 마킹된 투사된 3D 샘플들과 동일한 투사 라인 상에 있지만 이들 사이에 있지 않은 3D 샘플들을 코딩하는 것을 허용하지 않는데, 즉, 투사된 3D 샘플들은 D1-D0보다 큰 D0으로부터의 위치에 위치된다. D1-D0에 대해 허용되는 최대 값은 통상적으로 '표면 두께'로 명명되며, 따라서 중간 포인트들에 대해 D0으로부터 가능한 최대 거리를 제한한다(E, F 및 H 열들의 예들 참조).
적어도 하나의 실시예의 일반적인 양태에 따르면, 점유 맵(이미지)의 픽셀 값은, 동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 계층(깊이 이미지)의 픽셀 값으로서 저장되는지 또는 상기 투사 라인을 따라 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 고정 길이 코드워드와 동일한지를 표시한다.
동일한 투사 라인을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값들을 표현하기 위해 고정 길이 코드워드들을 사용하는 것은 단일 계층을 사용하는 것을 허용하는데, 이는 PCM 코드 길이가 이제 근거리 및 원거리 계층들에 의존하지 않는 고정 값이기 때문이다. 더욱이, 나중에 추가로 상세히 설명되는 바와 같이, 고정 길이 코드워드들을 사용하는 것은, 3D 샘플들 사이에 있지 않은 투사된 3D 샘플들, 즉 원거리 계층에 저장된 깊이 값들보다 더 큰 깊이 값들을 갖는 3D 샘플들의 깊이 값들의 코딩을 허용한다.
적어도 하나의 실시예에 따르면, 단계들(8600 및 9300)에서, 모듈들은 (N-1)-비트 길이 PCM 코드 PCM(u,v)의 길이 N(u, v)를 고정 PCM 코드 길이 PCML로서 초기화할 수 있다.
단계(8500)의 실시예에 따르면, 2개의 계층들 D0 및 D1이 사용될 때, 모듈은 추가적인 3D 샘플의 위치가 D0(u, v)보다 크고 D0(u, v) + PCML보다 낮은지 여부를 체크할 수 있다.
도 10은 적어도 하나의 실시예에 따라 점유 맵 OM(u,v)의 픽셀 값들을 결정하는 예를 예시한다.
이 예에서, 2개의 계층들(깊이 이미지들), 계층 0 및 계층 1이 사용된다. PCM 코드 길이 PCML은 9와 동일하며, 이는 3D 샘플들의 8개의 위치들이 PCM 코드(EOM 코드워드)마다 인코딩될 수 있음을 의미한다. 해시된 사각형들은 8개의 위치들을 표시한다. 8개의 위치들 중 하나가 블록 정사각형을 커버할 때, 정사각형은 흑색으로 유지됨을 주목한다. 예를 들어, 열 A에서, 근거리 계층에 저장된 깊이 값은 2('0'을 갖는 흑색 정사각형)와 동일하고, 원거리 계층에 저장된 깊이 값은 7('1'을 갖는 흑색 정사각형)과 동일하고, EOM 코드워드로서 저장된 깊이 값들은 c와 동일하다. 이러한 흑색 정사각형으로부터, 위치 3 내지 10으로부터 열 A를 따라 8개의 해시된 정사각형들이 시작된다. 위치들 4, 5는 표현의 명확성을 위해 블록 사각형들로 남아있다. 위치들 4 및 5를 포함하는 위치들 3 내지 10은, 깊이 값들이 PCM 코드로 인코딩되는 투사된 3D 샘플들에 대응한다.
근거리 계층 D0과 D0+PCML 사이에 위치된 투사된 3D 샘플들의 기하구조는 열 E, F 및 G에 예시된 바와 같이 중간 3D 샘플들에 있지 않은 3D 샘플들에 대해서도 캡처될 수 있다.
결과적으로, 고정 길이 PCM 코드들을 사용하는 것은 포인트 클라우드 프레임의 기하구조의 코딩 효율을 개선시킨다.
단계(8700)의 실시예에 따르면, 모듈은, 상기 깊이 값이 이미 계층 값(깊이 이미지의 값)으로서 인코딩된 경우, PCM 코드 PCM(u, v)의 비트로서 투사 라인 PL을 따라 투사된 3D 샘플의 깊이 값의 인코딩을 스킵할 수 있다.
예를 들어, 모듈은 PCM(u, v)의 각각의 i번째 비트에 대해 현재 위치 D0(u, v)+i를 계산할 수 있고, 근거리 및 원거리 계층(깊이 이미지들)의 픽셀이 그러한 깊이 값을 투사된 3D 샘플로서 저장하는지 여부를 체크할 수 있다. 그 경우, PCM(u, v)의 i번째 비트는 0으로 설정된다. 그렇지 않으면, 1로 설정된다.
단계(8700)의 이러한 실시예는, 고정 길이 PCM 코드 FLPCM이 근거리 계층과 원거리 계층 사이의 최대 거리(최대 표면 두께)보다 큰 경우, 도 10에서 '1'로 마킹된 흑색 정사각형들에 대한 열들 A, B, C, E, F 및 H에 예시된 바와 같이, EOM 코드워드의 비트 및 원거리 계층을 사용함으로써 동일한 투사된 3D의 깊이 값을 두번 인코딩하는 것을 회피한다.
단계(8700)의 이러한 실시예는 또한, 도 11과 관련하여 추가로 설명되는 바와 같이 커버된 영역을 연장할 수 있기 때문에 유리하다.
도 11은 상기 변형에 따라 점유 맵 OM(u,v)의 픽셀 값들을 결정하는 예를 예시한다.
PCM 코드 길이 PCML은 9와 동일하다. 예를 들어, 열 A에서, 비트들 b0..b7은 이러한 열 A에 대한 PCM 코드의 위치들 3..10을 각각 지칭한다. 이 예에서, 열 A의 위치 7의 깊이 값은 원거리 계층에서 이미 인코딩되고 EOM 코드워드로서 인코딩되지 않는다. 따라서, PCM 코드의 비트 b4, ..., b7은 이제, 위치 2(근거리 계층)로부터 11개의 위치들로 영역을 연장하는 위치들 8, ..., 11을 지칭할 수 있다.
위치 3 열 E, 위치 2 열 F 및 위치 2 열 H에 대해 유사한 상황이 발생한다.
다수의 포인트들로 채워지고 '1'로 마킹된 백색 정사각형들은 깊이 값들이 이미 계층에 저장된 3D 샘플의 위치들을 지칭한다는 점에 주목한다. 예를 들어, 열 H의 위치 2는 원거리 계층에 저장된 3D 샘플의 깊이 값을 지칭한다.
단계(9200)의 실시예에 따르면, 단일 계층 D0이 사용될 때, 모듈은, 점유 맵 내의 좌표 (u, v)에 위치된 픽셀의 값 OM(u, v)가 어떠한 3D 샘플도 투사 라인 PL을 따라 이 위치(예를 들어, OM(u,v)=0)에 투사되지 않음을 표시하는지 여부를 결정할 수 있다. OM(u, v)은 또한 캔버스에서 점유된 블록을 표시하는 다른 값과 동일할 수 있다. 다른 용어들에서, 상기 다른 값은, 상기 투사 라인 PL을 따라 적어도 하나의 투사된 3D 샘플의 깊이 값이 계층 D0에 픽셀 값으로서 저장되고, 가능하게는, 추가적인 3D 샘플들의 깊이 값들을 표현하는 EOM 코드워드 C(u,v)가 위치(u, v)에서 점유 맵에 저장되는 것을 표시한다.
도 12는 적어도 하나의 실시예에 따라 점유 맵 OM(u,v)의 픽셀 값들을 결정하는 예를 예시한다.
이 예에서, 단일 계층, 계층 0이 사용된다. PCM 코드 길이 PCML은 9와 동일하다. 예를 들어, 열 A에서, 단일 계층에 저장된 깊이 값은 2('0'을 갖는 흑색 정사각형)와 동일하다. 이러한 흑색 정사각형으로부터, 위치 3 내지 10으로부터 열 A를 따라 8개의 해시된 정사각형들이 시작된다. 위치들 4, 5 및 7은, 깊이 값들이 PCM 코드로 인코딩되는 투사된 3D 샘플들에 대응하는 흑색 정사각형들을 유지한다.
도 8 및 도 9에 예시된 방법의 일 실시예에 따르면, 고정 길이 PCM 코드가 사용되는지 여부를 표시하는 정보 INFO1이 시그널링될 수 있다.
이 실시예에 따르면, 상기 정보 INFO1은 비트스트림에 추가되어, 가능하게는 네트워크를 통해 송신될 수 있고, 상기 정보는 가능하게는 통신 수단으로부터 수신되는 비트스트림으로부터 추출(취득)될 수 있다.
이 실시예에 따르면, 모듈은 고정 길이 코드워드가 사용되는지 여부를 표시하는 비트스트림으로부터 상기 정보 INFO1을 획득할 수 있고; 고정 길이 PCM 코드가 사용되지 않음을 상기 정보 INFO1이 표시하면, PCM 코드의 길이는 도 8의 단계(8600) 및 도 9의 단계(9300) 둘 모두에서 V-PCC에서와 같이 2개의 계층들로부터 유도될 수 있다. 이어서, 상이한 길이들을 가질 수 있는 PCM 코드들로부터 깊이 값들이 유도된다. 고정 길이 PCM 코드가 사용됨을 상기 정보 INFO1이 표시하면, PCM 코드의 길이는 인코딩 및 디코딩 측에서 공지될 수 있는 PCM 코드 길이 PCML과 동일할 수 있다. 이어서, 고정 길이 코드워드들로부터 깊이 값들이 유도된다.
변형에서, PCM 코드 길이 PCML은 점유 맵의 비트 깊이와 동일한 것으로 가정될 수 있다. 예를 들어, 점유 맵이 컬러 성분 당 8 비트를 사용하여 인코딩되면, PCM 코드 길이 PCML은 자동으로 8로 설정되며, 이는 PCM 코드에 7 비트가 있음을 의미한다.
이 변형은 EOM 코드워드의 길이를 최적화하기 위한 최소의 유연성을 제공하지만, 또한 가장 간단한 접근법이다.
일 실시예에 따르면, 상기 PCM 코드 길이 PCML을 표현하는 정보 INFO2가 시그널링될 수 있다.
이 실시예에 따르면, 상기 정보 INFO2는 비트스트림에 추가되어, 가능하게는 네트워크를 통해 송신될 수 있고, 이어서 상기 정보는 가능하게는 통신 수단으로부터 수신되는 비트스트림으로부터 추출될 수 있다.
실시예에 따르면, 정보 INFO1 및/또는 INFO2는 시퀀스 레벨에서 시그널링될 수 있다. 따라서, 정보 INFO1의 단일 값 및 정보 INFO2의 단일 값은 포인트 클라우드 프레임의 시퀀스를 인코딩하기 위해 시그널링될 수 있다.
도 13은 적어도 하나의 실시예에 따라 정보 INFO1 및 INFO2를 시그널링하기 위해 사용되는 신택스 요소의 예를 예시한다.
이 예에서, 정보 INFO1은 신택스 요소 'sps_enhanced_occupancy_map_code_fixed_bit_count_flag'이고, 정보 INFO2는 신택스 요소 "sequence_parameter_set"에서 시그널링되는 신택스 요소 'sps_enhanced_occupancy_map_code_fixed_bit_count'이다.
실시예에 따르면, 정보 INFO1 및/또는 INFO2는 점유 파라미터 세트에서 시그널링될 수 있다.
도 14는 적어도 하나의 실시예에 따라 정보 INFO1 및 INFO2를 시그널링하기 위해 사용되는 신택스 요소의 예를 예시한다.
이 예에서, 정보 INFO1은 신택스 요소 'ops_occupancy_code_fixed_bit_count_flag'이고, 정보 INFO2는 신택스 요소 "ops_parameter_set"에서 시그널링되는 신택스 요소 'ops_occupancy_code__bit_count_minus1'이다.
상기 실시예의 변형에 따르면, 정보 INFO1 및/또는 INFO2는 기하구조 파라미터 세트의 신택스 요소로서 시그널링될 수 있다.
방법의 실시예에 따르면, 정보 INFO1 및/또는 INFO2는 프레임 단위로 시그널링될 수 있다.
이 실시예는, 정보 INFO1 및/또는 INFO2가 더 자주 전송되기 때문에 더 높은 비트 레이트를 요구하지만, 각각의 프레임에 대한 인코딩/디코딩 방법들을 더 양호하게 조정한다.
상기 실시예의 변형에서, 정보 INFO1 및/또는 INFO2는 geometry_frame_params 유닛(V-PCC의 섹션 7.3.18)의 신택스 요소로서 시그널링될 수 있다.
상기 실시예의 변형에서, 정보 INFO1 및/또는 INFO2는, 대응하는 occupancy_frame_parameter_set unit 유닛 및 대응하는 패치 시퀀스 유닛 유형(예를 들어, PSD_OFPS, 점유 프레임 파라미터 세트; V-PCC의 표 7-4 참조)를 갖는 기하구조 프레임 파라미터 유닛과 유사한 occupancy_frame_params 유닛의 신택스 요소로서 시그널링될 수 있다.
방법의 실시예에 따르면, 정보 INFO1 및/또는 INFO2는 패치 단위로 시그널링될 수 있다.
이 실시예는, 정보 INFO1 및/또는 INFO2가 더 자주 전송되기 때문에 더 높은 비트 레이트를 요구하지만, 각각의 패치에 대한 인코딩/디코딩 방법들을 더 양호하게 조정한다.
상기 실시예의 변형에 따르면, 정보 INFO1 및/또는 INFO2는 patch_data 유닛 및 delta_patch_data 유닛의 신택스 요소로서 시그널링될 수 있다.
상기 실시예의 변형에 따르면, 정보 INFO1 및/또는 INFO2는 geometry_frame_params 유닛(V-PCC의 섹션 7.3.22)의 신택스 요소로서 시그널링될 수 있다.
상기 실시예의 변형에 따르면, 정보 INFO1 및/또는 INFO2는 대응하는 occupancy_patch_parameter_set 유닛을 갖는 occupancy_patch_params 유닛의 신택스 요소로서 시그널링될 수 있다.
도 1 내지 도 14에서, 다양한 방법들이 본 명세서에 설명되고, 방법들 각각은 설명된 방법을 달성하기 위한 하나 이상의 단계들 또는 동작들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 동작들의 특정 순서가 요구되지 않으면, 특정 단계들 및/또는 동작들의 순서 및/또는 사용은 수정되거나 결합될 수 있다.
일부 예들은 블록도들 및 동작 흐름도들과 관련하여 설명된다. 각각의 블록은 특정된 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어들을 포함하는 회로 요소, 모듈, 또는 코드의 일부를 표시한다. 또한, 다른 구현들에서, 블록들에 언급된 기능(들)은 표시된 순서를 벗어나 발생할 수 있음을 주목해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록들은 사실상, 실질적으로 동시에 실행될 수 있거나 또는 블록들은 수반되는 기능에 따라 때때로 역순으로 실행될 수 있다.
본 명세서에서 설명되는 구현들 및 양상들은, 예를 들어, 방법 또는 프로세스, 장치, 컴퓨터 프로그램, 데이터 스트림, 비트스트림 또는 신호에서 구현될 수 있다. 오직 단일 형태의 구현의 상황에서 논의되는(예를 들어, 오직 방법으로서만 논의되는) 경우에도, 논의되는 특징들의 구현은 또한 다른 형태들(예를 들어, 장치 또는 컴퓨터 프로그램)로 구현될 수 있다.
방법들은, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍가능 로직 디바이스를 포함하는 일반적인 프로세싱 디바이스들을 지칭하는, 예를 들어, 프로세서로 구현될 수 있다. 프로세서들은 또한 통신 디바이스들을 포함한다.
추가적으로, 방법들은 프로세서에 의해 수행되는 명령어들에 의해 구현될 수 있고, 이러한 명령어들(및/또는 구현에 의해 생성된 데이터 값들)은 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다. 컴퓨터 판독가능 저장 매체는 하나 이상의 컴퓨터 판독가능 매체(들)로 구현되고 컴퓨터에 의해 실행가능한 컴퓨터 판독가능 프로그램 코드가 구현된 컴퓨터 판독가능 프로그램 제품의 형태를 취할 수 있다. 본 명세서에서 사용된 컴퓨터 판독가능 저장 매체는 그 내부에 정보를 저장하는 고유의 능력 뿐만 아니라 그로부터 정보의 조회를 제공하는 고유의 능력이 주어지면 비일시적 저장 매체로 간주될 수 있다. 컴퓨터 판독가능 저장 매체는 예를 들어, 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 전술한 것의 임의의 적절한 조합일 수 있지만 이에 제한되는 것은 아닐 수 있다. 다음은 본 실시예들이 적용될 수 있는 컴퓨터 판독가능 저장 매체들의 보다 구체적인 예들을 제공하는 한편, 단지 본 기술분야의 통상의 기술자에 의해 용이하게 인식되는 것, 즉, 휴대용 컴퓨터 디스켓; 하드 디스크; 판독 전용 메모리(ROM); 소거가능 프로그래머블 판독 전용 메모리(EPROM 또는 플래시 메모리); 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM); 광학 저장 디바이스; 자기 저장 디바이스; 또는 상기한 것의 임의의 적절한 조합과 같이 예시적이며 총망라하는 것이 아님을 인식해야 한다.
명령어들은 프로세서 판독가능 매체 상에 유형으로 구현된 애플리케이션 프로그램을 형성할 수 있다.
명령어들은 예를 들어 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합일 수 있다. 명령어들은 예를 들어 운영 시스템, 별개의 애플리케이션 또는 이 둘의 조합에서 발견될 수 있다. 따라서, 프로세서는 프로세스를 수행하도록 구성된 디바이스, 및 프로세스를 수행하기 위한 명령어들을 갖는 프로세서-판독가능 매체(예를 들어, 저장 디바이스)를 포함하는 디바이스 둘 모두로서 특징화될 수 있다. 추가로, 프로세서-판독가능 매체는 명령어들에 추가하여 또는 명령어들 대신에, 구현에 의해 생성된 데이터 값들을 저장할 수 있다.
장치는 예를 들어, 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 이러한 장치의 예들은 개인용 컴퓨터들, 랩톱들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 레코딩 시스템들, 연결된 가전 제품들, 머리 장착 디스플레이 디바이스들(HMD, 시스루 안경), 프로젝터들(비머들), "케이브들"(다수의 디스플레이들을 포함하는 시스템), 서버들, 비디오 인코더들, 비디오 디코더들, 비디오 디코더로부터의 출력을 프로세싱하는 포스트-프로세서들, 비디오 인코더에 입력을 제공하는 프리-프로세서들, 웹 서버들, 셋톱 박스들, 포인트 클라우드를 프로세싱하기 위한 임의의 다른 디바이스, 비디오 또는 이미지 또는 다른 통신 디바이스들을 포함한다. 명확해야 할 바와 같이, 장치는 모바일일 수 있고, 심지어 모바일 차량에 설치될 수 있다.
컴퓨터 소프트웨어는 프로세서(6010)에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 비제한적인 예로서, 실시예들은 또한 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(6020)는 기술적인 환경에 적합한 임의의 유형일 수 있고, 임의의 적합한 데이터 저장 기술, 예를 들어, 비제한적인 예들로서, 광 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정 메모리 및 착탈식 메모리를 사용하여 구현될 수 있다. 프로세서(6010)는 기술적인 환경에 적합한 임의의 유형일 수 있고, 비제한적 예들로서 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들 및 멀티-코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다.
본 기술분야의 통상의 기술자에게 자명할 바와 같이, 구현들은, 예를 들어, 저장 또는 송신될 수 있는 정보를 반송하도록 포맷된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성되는 데이터를 포함할 수 있다. 예를 들어, 신호는, 설명된 실시예의 비트스트림을 반송하도록 포맷될 수 있다. 이러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 무선 주파수 부분을 사용하는) 전자기 파로서 또는 기저대역 신호로서 포맷될 수 있다. 포맷은, 예를 들어, 데이터 스트림을 인코딩하는 것 및 인코딩된 데이터 스트림과 캐리어를 변조하는 것을 포함할 수 있다. 신호가 반송하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 공지된 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서-판독가능 매체 상에 저장될 수 있다.
본원에서 사용되는 용어는 오직 특정 실시예들을 설명하기 위한 목적이고, 제한하는 것으로 의도되지 않는다. 본원에서 사용되는 바와 같이, 단수형 형태들("a", "an" 및 "the")은, 문맥상 명시적으로 달리 표시하지 않으면, 복수형 형태들을 또한 포함하는 것으로 의도될 수 있다. 본 명세서에서 사용되는 경우, 용어들 "포함하다(includes/comprises)" 및/또는 "포함하는(including/comprising)"은, 예를 들어, 언급된 특징들, 정수들, 단계들, 오퍼레이션들, 요소들 및/또는 컴포넌트들의 존재를 특정할 수 있지만, 다른 특징들, 정수들, 단계들, 오퍼레이션들, 요소들, 컴포넌트들 및/또는 이들의 그룹들 중 하나 이상의 존재 또는 추가를 배제하지는 않음을 추가로 이해할 것이다. 또한, 요소가 다른 요소에 "응답하는" 또는 "연결된" 것으로 언급되는 경우, 요소는 다른 요소에 직접 응답하거나 연결될 수 있거나, 또는 개재된 요소들이 존재할 수 있다. 대조적으로, 요소가 다른 요소에 "직접 응답하는" 또는 "직접 연결된" 것으로 언급되는 경우, 어떠한 개재 요소도 존재하지 않는다.
예를 들어, "A/B", "A 및/또는 B", 및 "A 및 B 중 적어도 하나"의 경우들에서, 심볼/용어 "/", "및/또는" 및 "~ 중 적어도 하나" 중 임의의 것을 사용하는 것은 제1 나열된 옵션(A)만을 선택하는 것, 또는 제2 나열된 옵션(B)만을 선택하는 것, 또는 옵션들 둘 모두(A 및 B)를 선택하는 것을 포함하도록 의도될 수 있다. 추가 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우들에서, 이러한 문구는 제1 나열된 옵션(A)만을 선택하는 것, 또는 제2 나열된 옵션(B)만을 선택하는 것, 또는 제3 나열된 옵션(C)만을 선택하는 것, 또는 제1 및 제2 나열된 옵션들(A 및 B)만을 선택하는 것, 또는 제1 및 제3 나열된 옵션들(A 및 C)만을 선택하는 것, 또는 제2 및 제3 나열된 옵션들(B 및 C)만을 선택하는 것, 또는 모든 3개의 옵션들(A 및 B 및 C)을 선택하는 것을 포함하도록 의도된다. 이것은, 본 기술분야 및 관련 기술분야의 당업자에게 자명한 바와 같이, 많은 항목들이 나열되는 만큼 확장될 수 있다.
예를 들어, 본 출원에서 다양한 수치 값들이 사용될 수 있다. 특정 값들은 예시를 위한 것일 수 있고 설명된 양상들은 이러한 특정 값들로 제한되지 않는다.
제1, 제2 등의 용어들이 본 명세서에서 다양한 요소들을 설명하기 위해 사용될 수 있지만, 이러한 요소들은 이러한 용어들에 의해 제한되지 않음을 이해할 것이다. 이러한 용어들은 하나의 요소를 다른 요소로부터 구별하기 위해서만 사용된다. 예를 들어, 본 출원의 교시들을 벗어남이 없이, 제1 요소는 제2 요소로 지칭될 수 있고, 유사하게, 제2 요소는 제1 요소로 지칭될 수 있다. 제1 요소와 제2 요소 사이에 어떠한 순서도 내포되지 않는다.
"일 실시예" 또는 "실시예" 또는 "일 구현" 또는 "구현" 뿐만 아니라 이들의 다른 변형들에 대한 참조는, (실시예/구현과 관련하여 설명되는) 특정한 특징, 구조, 특성 등이 적어도 하나의 실시예/구현에 포함되는 것을 전달하기 위해 빈번하게 사용된다. 따라서, 본 명세서 전반에 걸친 다양한 위치들에서 등장하는 구 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서" 뿐만 아니라 다른 변화예들은, 반드시 동일한 실시예 전부를 참조할 필요는 없다.
유사하게, 본 명세서에서 "실시예/예/구현에 따라" 또는 "실시예/예/구현에서" 뿐만 아니라 이들의 다른 변형들에 대한 참조는 (실시예/예/구현과 관련하여 설명되는) 특정한 특징, 구조, 특성이 적어도 하나의 실시예/예/구현에 포함될 수 있는 것을 전달하기 위해 빈번하게 사용된다. 따라서, 본 명세서의 다양한 위치들에서의 "실시예/예/구현에 따른" 또는 "실시예/예/구현에서"라는 표현의 출현들은 반드시 모두가 동일한 실시예/예/구현을 지칭하는 것은 아니며, 별개의 또는 대안적인 실시예/예들/구현이 반드시 다른 실시예들/예들/구현과 상호 배타적인 것을 지칭하는 것도 아니다.
청구항들에 나타나는 참조 부호들은 단지 설명을 위한 것이며, 청구항들의 범위에 대한 어떠한 제한적인 효과도 갖지 않을 것이다. 명시적으로 설명되지는 않았지만, 본 실시예들/예들 및 변형들은 임의의 조합 또는 서브-조합으로 이용될 수 있다.
도면이 흐름도로서 제시될 때, 이는 또한 대응하는 장치의 블록도를 제공함을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 이는 또한 대응하는 방법/프로세스의 흐름도를 제공함을 이해해야 한다.
일부 도면들은 통신의 주 방향을 도시하기 위해 통신 경로들 상의 화살표들을 포함하지만, 통신은 도시된 화살표들에 대한 반대 방향으로 발생할 수 있음을 이해해야 한다.
다양한 구현들은 디코딩을 수반한다. 본 출원에서 사용되는 바와 같은 "디코딩"은, 재구성된 포인트 클라우드 도메인에서 디스플레이 또는 추가적인 프로세싱에 적합한 최종 출력을 생성하기 위해, 예를 들어 (가능하게는 하나 이상의 포인트 클라우드 프레임들을 인코딩하는 수신된 비트스트림을 포함함) 수신된 포인트 클라우드 프레임 상에서 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 이미지-기반 디코더에 의해 통상적으로 수행되는 프로세스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 이러한 프로세스들은 또한 또는 대안적으로 본 출원에서 설명된 다양한 구현들의 디코더에 의해 수행되는 프로세스들, 예를 들어,
추가 예들로서, 일 실시예에서 "디코딩"은 엔트로피 디코딩만을 지칭할 수 있고, 다른 실시예에서 "디코딩"은 차등 디코딩만을 지칭할 수 있고, 다른 실시예에서 "디코딩"은 엔트로피 디코딩 및 차등 디코딩의 조합을 지칭할 수 있다. 어구 "디코딩 프로세스"가 구체적으로 동작들의 서브세트를 지칭하는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도될 수 있는지 여부는 특정 설명들의 맥락에 기초하여 명백할 것이고, 본 기술분야의 통상의 기술자들에 의해 잘 이해될 것으로 여겨진다.
다양한 구현들은 인코딩을 수반한다. "디코딩"에 대한 상기 논의와 유사한 방식으로, 본 출원에서 사용된 바와 같은 "인코딩"은 예를 들어 인코딩된 비트스트림을 생성하기 위해 입력 포인트 클라우드 프레임 상에서 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 이미지-기반 디코더에 의해 통상적으로 수행되는 프로세스들 중 하나 이상을 포함한다.
추가 예들로서, 일 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭할 수 있고, 다른 실시예에서 "인코딩"은 차등 인코딩만을 지칭할 수 있고, 다른 실시예에서 "인코딩"은 차등 인코딩 및 엔트로피 인코딩의 조합을 지칭할 수 있다. 어구 "인코딩 프로세스"가 구체적으로 동작들의 서브세트를 지칭하는지 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도될 수 있는지 여부는 특정 설명들의 맥락에 기초하여 명백할 것이고, 본 기술분야의 통상의 기술자들에 의해 잘 이해될 것으로 여겨진다.
본 명세서에서 사용되는 바와 같은 신택스 요소들, 예를 들어, sps_enhanced_occupancy_map_code_fixed_bit_count_flag, sps_enhanced_occupancy_map_code_fixed_bit_count, ops_occupancy_code_fixed_bit_count_flag, ops_occupancy_code__bit_count_minus1, ops_parameter_set, occupancy_frame_params unit, patch_data unit, occupancy_patch_params unit은 설명적 용어들이다. 따라서, 이들은 다른 신택스 요소 이름들의 사용을 배제하지 않는다.
다양한 실시예들은 레이트 왜곡 최적화를 나타낸다. 특히, 인코딩 프로세스 동안, 종종 계산 복잡도의 제약들이 주어지면, 통상적으로 레이트와 왜곡 사이의 밸런스 또는 절충이 고려된다. 레이트 왜곡 최적화는 통상적으로 레이트와 왜곡의 가중된 합인 레이트 왜곡 함수를 최소화하는 것으로서 공식화될 수 있다. 레이트 왜곡 최적화 문제를 해결하는 상이한 접근법들이 있다. 예를 들어, 접근법들은, 코딩 및 디코딩 이후 재구성된 신호의 코딩 비용 및 관련된 왜곡의 완전한 평가와 함께 모든 고려되는 모드들 또는 코딩 파라미터 값들을 포함하는 모든 인코딩 옵션들의 광범위한 테스트에 기초할 수 있다. 특히 재구성된 것이 아니라 예측 또는 예측 잔차 신호에 기초한 근사화된 왜곡의 계산과 함께 인코딩 복잡도를 절감하기 위해 더 빠른 접근법들이 또한 사용될 수 있다. 예를 들어, 가능한 인코딩 옵션들 중 오직 일부에 대한 근사화된 왜곡 및 다른 인코딩 옵션들에 대한 완전한 왜곡을 사용함으로써 이러한 두 가지 접근법들의 혼합이 또한 사용될 수 있다. 다른 접근법들은 또한 가능한 인코딩 옵션들의 서브세트를 평가한다. 더 일반적으로, 많은 접근법들은 최적화를 수행하기 위해 다양한 기술들 중 임의의 것을 이용하지만, 최적화가 반드시 코딩 비용 및 관련된 왜곡을 둘 모두의 완전한 평가인 것은 아니다.
추가적으로, 본 출원은, 정보의 다양한 조각들을 "결정"하는 것을 참조할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것 또는 메모리로부터 정보를 조회하는 것 중 하나 이상을 포함할 수 있다.
추가로, 본 출원은, 정보의 다양한 조각들에 "액세스"하는 것을 참조할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 조회하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 카피하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
추가적으로, 본 출원은, 정보의 다양한 조각들을 "수신"하는 것을 참조할 수 있다. 수신하는 것은, "액세스하는 것"에서와 같이 광의의 용어로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것 또는 (예를 들어, 메모리로부터) 정보를 조회하는 것 중 하나 이상을 포함할 수 있다. 추가적으로, "수신하는 것"은 통상적으로, 예를 들어, 정보를 저장하는 것, 정보를 프로세싱하는 것, 정보를 송신하는 것, 정보를 이동시키는 것, 정보를 카피하는 것, 정보를 소거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것 또는 정보를 추정하는 것과 같은 동작들 동안 하나의 방식 또는 다른 방식으로 수반된다.
또한, 본 명세서에서 사용되는 바와 같이, "신호"라는 단어는 무엇보다도, 대응하는 디코더에 대한 무언가를 표시하는 것을 의미한다. 예를 들어, 특정 실시예들에서, 인코더는 특정 정보 INFO1 및/또는 INFO2를 시그널링한다. 이러한 방식으로, 일 실시예에서 동일한 파라미터가 인코더 측 및 디코더 측 둘 모두에서 사용될 수 있다. 따라서, 예를 들어, 인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 디코더에 특정 파라미터를 송신할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터들뿐만 아니라 다른 것들을 가진 경우, 디코더가 특정 파라미터를 알고 선택하도록 간단히 허용하기 위해 송신없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 송신을 피함으로써, 다양한 실시예들에서 비트 절감이 실현된다. 시그널링은 다양한 방식들로 달성될 수 있음을 이해해야 한다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등은 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하기 위해 사용된다. 상기 내용이 "신호"라는 단어의 동사 형태에 관한 것이지만, "신호"라는 단어는 본 명세서에서 또한 명사로 사용될 수 있다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 다양한 수정들이 행해질 수 있음을 이해할 것이다. 예를 들어, 상이한 구현들의 요소들은 다른 구현들을 생성하기 위해 결합, 보충, 수정 또는 제거될 수 있다. 추가적으로, 통상의 기술자는, 다른 구조체들 및 프로세스들이 개시된 것들을 대체할 수 있고 결과적인 구현들이 적어도 실질적으로 동일한 방식(들)으로 적어도 실질적으로 동일한 기능(들)을 수행하여, 개시된 구현들과 적어도 실질적으로 동일한 결과(들)를 달성할 것임을 이해할 것이다. 따라서, 이러한 및 다른 구현들이 본 출원에 의해 고려된다.

Claims (35)

  1. 방법에 있어서,
    깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 투사 라인을 따른 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 코드워드로부터 유도된 것임을 표시하는 점유 맵의 상기 픽셀 값에 기초하여 상기 투사 라인을 따라 투사된 포인트 클라우드 프레임의 하나의 3D 샘플의 깊이 값을 디코딩하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 점유 맵의 픽셀 값에 기초하여, 상기 코드워드의 비트로부터 상기 투사 라인을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값을 디코딩하거나, 또는 상기 코드워드의 비트로부터 상기 투사 라인을 따라 투사된 3D 샘플의 깊이 값의 디코딩을 스킵하는 단계를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 수신하는 단계를 더 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 코드워드의 길이를 표현하는 제2 정보를 수신하는 단계를 더 포함하는, 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 제1 및/또는 제2 정보는 프레임 단위로 또는 패치 단위로 포인트 클라우드 프레임들의 시퀀스에 대해 시그널링되고, 패치는 상기 포인트 클라우드 프레임의 3D 샘플들의 투사를 표현하는 2D 샘플들의 세트인 것인, 방법.
  6. 제1항에 있어서,
    상기 점유 맵을 디코딩하는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 적어도 하나의 깊이 이미지를 디코딩하는 단계를 더 포함하는, 방법.
  8. 방법에 있어서,
    동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 상기 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 표현하는 코드워드로부터 유도된 것임을 표시하기 위해 점유 이미지의 픽셀 값을 할당하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 점유 이미지의 픽셀 값에 기초하여, 코드워드의 비트로서 상기 투사 라인을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값을 인코딩하고, 상기 코드워드의 비트로서 상기 투사 라인을 따라 투사된 3D 샘플의 깊이 값의 인코딩을 스킵하는 단계를 더 포함하는, 방법.
  10. 제8항 또는 제9항에 있어서,
    고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 송신하는 단계를 더 포함하는, 방법.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 코드워드의 길이를 표현하는 제2 정보를 송신하는 단계를 더 포함하는, 방법.
  12. 제10항 또는 제11항에 있어서,
    상기 제1 및/또는 제2 정보는 프레임 단위로 또는 패치 단위로 포인트 클라우드 프레임들의 시퀀스에 대해 시그널링되고, 패치는 상기 포인트 클라우드 프레임의 3D 샘플들의 투사를 표현하는 2D 샘플들의 세트인 것인, 방법.
  13. 제8항에 있어서,
    상기 점유 맵을 인코딩하는 단계를 더 포함하는, 방법.
  14. 제8항에 있어서,
    상기 적어도 하나의 깊이 이미지를 인코딩하는 단계를 더 포함하는, 방법.
  15. 장치에 있어서,
    깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 투사 라인을 따른 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 코드워드로부터 유도된 것임을 표시하는 점유 맵의 상기 픽셀 값에 기초하여 상기 투사 라인을 따라 투사된 포인트 클라우드 프레임의 하나의 3D 샘플의 깊이 값을 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는, 장치.
  16. 제15항에 있어서,
    상기 하나 이상의 프로세서는 또한, 상기 점유 맵의 픽셀 값에 기초하여, 상기 코드워드의 비트로부터 상기 투사 라인을 따라 투사된 적어도 하나의 3D 샘플의 깊이 값을 디코딩하거나, 또는 상기 코드워드의 비트로부터 상기 투사 라인을 따라 투사된 3D 샘플의 깊이 값의 디코딩을 스킵하도록 구성되는 것인, 장치.
  17. 제15항 또는 제16항에 있어서,
    상기 하나 이상의 프로세서는 또한, 고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 수신하도록 구성되는 것인, 장치.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서,
    상기 코드워드의 길이를 표현하는 제2 정보를 수신하는 것을 더 포함하는 것인, 장치.
  19. 제17항 또는 제18항에 있어서,
    상기 제1 및/또는 제2 정보는 프레임 단위로 또는 패치 단위로 포인트 클라우드 프레임들의 시퀀스에 대해 시그널링되고, 패치는 상기 포인트 클라우드 프레임의 3D 샘플들의 투사를 표현하는 2D 샘플들의 세트인 것인, 장치.
  20. 제15항에 있어서,
    상기 하나 이상의 프로세서는 또한 상기 점유 맵을 디코딩하도록 구성되는 것인, 장치.
  21. 제15항에 있어서,
    상기 하나 이상의 프로세서는 또한 상기 적어도 하나의 깊이 이미지를 디코딩하도록 구성되는 것인, 장치.
  22. 장치에 있어서,
    동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 상기 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 표현하는 코드워드로부터 유도된 것임을 표시하기 위해 점유 이미지의 픽셀 값을 할당하도록 구성된 하나 이상의 프로세서를 포함하는, 장치.
  23. 제22항에 있어서,
    상기 하나 이상의 프로세서는 또한, 상기 점유 이미지의 픽셀 값에 기초하여, 코드워드의 비트로서 상기 투사 라인을 따라 투사된 적어도 하나의 3D 샘플의 상기 깊이 값을 인코딩하고, 상기 코드워드의 비트로서 상기 투사 라인을 따라 투사된 3D 샘플의 깊이 값의 인코딩을 스킵하도록 구성되는 것인, 장치.
  24. 제22항 또는 제23항에 있어서,
    상기 하나 이상의 프로세서는 또한, 고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 송신하도록 구성되는 것인, 장치.
  25. 제22항 내지 제24항 중 어느 한 항에 있어서,
    상기 하나 이상의 프로세서는 또한, 상기 코드워드의 길이를 표현하는 제2 정보를 송신하도록 구성되는 것인, 장치.
  26. 제24항 또는 제25항에 있어서,
    상기 제1 및/또는 제2 정보는 프레임 단위로 또는 패치 단위로 포인트 클라우드 프레임들의 시퀀스에 대해 시그널링되고, 패치는 상기 포인트 클라우드 프레임의 3D 샘플들의 투사를 표현하는 2D 샘플들의 세트인 것인, 장치.
  27. 제22항에 있어서,
    상기 하나 이상의 프로세서는 또한 상기 점유 맵을 인코딩하도록 구성되는 것인, 장치.
  28. 제22항에 있어서,
    상기 하나 이상의 프로세서는 또한 상기 적어도 하나의 깊이 이미지를 인코딩하도록 구성되는 것인, 장치.
  29. 비트스트림에 있어서,
    동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 상기 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 표현하는 코드워드로부터 유도된 것임을 표시하기 위해 점유 이미지의 픽셀 값을 표현하는 이미지 데이터를 포함하는, 비트스트림.
  30. 제29항에 있어서,
    고정 길이 코드워드가 사용되는지 여부를 표시하는 제1 정보를 더 포함하는, 비트스트림.
  31. 제29항 또는 제30항에 있어서,
    상기 신호는 상기 코드워드의 길이를 표현하는 제2 정보를 더 포함하는 것인, 비트스트림.
  32. 명령어들을 포함하는 컴퓨터 프로그램 제품에 있어서,
    상기 명령어들은, 하나 이상의 프로세서에 의해 상기 프로그램이 실행될 때, 상기 하나 이상의 프로세서로 하여금, 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 투사 라인을 따른 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 코드워드로부터 유도된 것임을 표시하는 점유 맵의 상기 픽셀 값에 기초하여 상기 투사 라인을 따라 투사된 포인트 클라우드 프레임의 하나의 3D 샘플의 깊이 값을 디코딩하는 것을 포함하는 방법을 수행하게 하는 것인, 컴퓨터 프로그램 제품.
  33. 비일시적 컴퓨터 판독가능 매체에 있어서,
    하나 이상의 프로세서로 하여금, 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 투사 라인을 따른 적어도 하나의 3D 샘플 투사의 깊이 값을 표현하는 코드워드로부터 유도된 것임을 표시하는 점유 맵의 상기 픽셀 값에 기초하여 상기 투사 라인을 따라 투사된 포인트 클라우드 프레임의 하나의 3D 샘플의 깊이 값을 디코딩하는 것을 수행하게 하기 위한 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  34. 명령어들을 포함하는 컴퓨터 프로그램 제품에 있어서,
    상기 명령어들은, 하나 이상의 프로세서에 의해 상기 프로그램이 실행될 때, 상기 하나 이상의 프로세서로 하여금, 동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 상기 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 표현하는 코드워드로부터 유도된 것임을 표시하기 위해 점유 이미지의 픽셀 값을 할당하는 것을 포함하는 방법을 수행하게 하는 것인, 컴퓨터 프로그램 제품.
  35. 비일시적 컴퓨터 판독가능 매체에 있어서,
    하나 이상의 프로세서로 하여금, 동일한 투사 라인을 따라 투사된 포인트 클라우드 프레임의 적어도 하나의 3D 샘플의 깊이 값이 적어도 하나의 깊이 이미지의 픽셀 값이거나 상기 투사 라인을 따라 투사된 3D 샘플들의 깊이 값들을 표현하는 코드워드로부터 유도된 것임을 표시하기 위해 점유 이미지의 픽셀 값을 할당하는 것을 수행하게 하기 위한 명령어들을 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020217033810A 2019-03-20 2020-01-27 포인트 클라우드의 누락 포인트 프로세싱 KR20210138097A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP19305344.4 2019-03-20
EP19305344.4A EP3713240A1 (en) 2019-03-20 2019-03-20 Processing a point cloud
EP19305343.6 2019-03-20
EP19305343.6A EP3713239A1 (en) 2019-03-20 2019-03-20 Processing a point cloud
PCT/US2020/015184 WO2020190375A1 (en) 2019-03-20 2020-01-27 Processing missing points of a point cloud

Publications (1)

Publication Number Publication Date
KR20210138097A true KR20210138097A (ko) 2021-11-18

Family

ID=69582161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033810A KR20210138097A (ko) 2019-03-20 2020-01-27 포인트 클라우드의 누락 포인트 프로세싱

Country Status (8)

Country Link
US (1) US20220164993A1 (ko)
EP (1) EP3942827A1 (ko)
JP (1) JP2022527883A (ko)
KR (1) KR20210138097A (ko)
CN (1) CN113615199A (ko)
AU (1) AU2020241106A1 (ko)
MX (1) MX2021011260A (ko)
WO (2) WO2020190375A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11915390B2 (en) * 2019-01-07 2024-02-27 Sony Group Corporation Image processing device and method
EP4221230A4 (en) * 2020-09-25 2023-08-30 Guangdong Oppo Mobile Telecommunications Corp., Ltd. POINT CLOUD CODING METHOD AND RELATED APPARATUS

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2014202682A1 (en) * 2014-05-16 2015-12-03 Canon Kabushiki Kaisha Method, apparatus and system for copying a block of video samples
GB2563019B (en) * 2017-05-29 2021-07-28 Canon Kk Improved valence-based encoding and decoding of connectivity data in a 3D model
JP2022003716A (ja) * 2018-10-01 2022-01-11 ソニーグループ株式会社 画像処理装置および方法

Also Published As

Publication number Publication date
EP3942827A1 (en) 2022-01-26
CN113615199A (zh) 2021-11-05
MX2021011260A (es) 2021-10-01
US20220164993A1 (en) 2022-05-26
WO2020190375A1 (en) 2020-09-24
AU2020241106A1 (en) 2021-10-14
WO2020190413A1 (en) 2020-09-24
JP2022527883A (ja) 2022-06-07

Similar Documents

Publication Publication Date Title
KR102640992B1 (ko) 포인트 클라우드 프로세싱
EP3741118A1 (en) Processing a point cloud
US20240114143A1 (en) Encoding and decoding a point cloud using patches for in-between samples
US20220164993A1 (en) Processing missing points of a point cloud
US20220385928A1 (en) Processing a point cloud
US20220164992A1 (en) Processing a point cloud
US20220191519A1 (en) Processing the in-between points of a point cloud
WO2021048050A1 (en) Processing a point cloud
WO2021001193A1 (en) Processing a point cloud
US20220405975A1 (en) Transporting format of a coded point cloud
US20220109882A1 (en) Processing a point cloud
EP3713240A1 (en) Processing a point cloud
EP3713239A1 (en) Processing a point cloud

Legal Events

Date Code Title Description
A201 Request for examination