KR102640992B1 - 포인트 클라우드 프로세싱 - Google Patents

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

Info

Publication number
KR102640992B1
KR102640992B1 KR1020207020567A KR20207020567A KR102640992B1 KR 102640992 B1 KR102640992 B1 KR 102640992B1 KR 1020207020567 A KR1020207020567 A KR 1020207020567A KR 20207020567 A KR20207020567 A KR 20207020567A KR 102640992 B1 KR102640992 B1 KR 102640992B1
Authority
KR
South Korea
Prior art keywords
sample
depth
point cloud
current
color
Prior art date
Application number
KR1020207020567A
Other languages
English (en)
Other versions
KR20200110333A (ko
Inventor
줄리앙 히카르
실린느 게드
야닉 올리비에
조안 리악 피스낙
다비드 장드롱
Original Assignee
인터디지털 브이씨 홀딩스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 브이씨 홀딩스 인코포레이티드 filed Critical 인터디지털 브이씨 홀딩스 인코포레이티드
Priority to KR1020247005994A priority Critical patent/KR20240032147A/ko
Publication of KR20200110333A publication Critical patent/KR20200110333A/ko
Application granted granted Critical
Publication of KR102640992B1 publication Critical patent/KR102640992B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

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)
  • Image Generation (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

적어도 하나의 실시예는 포인트 클라우드 프레임에 적어도 하나의 3D 샘플을 추가하기 위한 방법 및 상기 적어도 하나의 3D 샘플에 컬러-코딩 모드를 할당하기 위한 방법에 관한 것이고, 상기 컬러-코딩 모드는, 상기 적어도 하나의 3D 샘플과 연관된 컬러 정보가 비트스트림으로 명시적으로 인코딩되는지 또는 상기 컬러 정보가 암시적인지를 표시한다.

Description

포인트 클라우드 프로세싱
본 실시예들 중 적어도 하나는 일반적으로 포인트 클라우드의 프로세싱에 관한 것이다.
본 섹션은 아래에 설명 및/또는 청구되는 본 실시예들 중 적어도 하나의 다양한 양태들에 관련될 수 있는 본 기술분야의 다양한 양태들을 독자에게 소개하도록 의도된다. 이러한 논의는 적어도 하나의 실시예의 다양한 양태들의 더 나은 이해를 용이하게 하기 위한 배경 정보를 독자에게 제공하는 데 도움이 될 것으로 여겨진다.
포인트 클라우드들은, 대상을 전송하거나 대상에 방문하지 않고 대상의 공간 구성을 공유하기 위해, 조각상들 또는 건물들과 같은 대상들이 있는 문화 유산/건물들이 3D 스캐닝되는 것과 같은 다양한 목적들에 대해 사용될 수 있다. 또한, 이것은 대상이 파괴될 수 있을 경우에, 예를 들어 지진에 의해 절이 파괴될 수 있을 경우에 그 대상의 지식을 보존하는 것을 보장하기 위한 방법이다. 이러한 포인트 클라우드들은 통상적으로 정적이고, 컬러링되고, 거대하다.
다른 사용 사례는, 평면에 제한되지 않고 릴리프(relief)를 포함할 수 있는 지도들을 감안하는 3D 표현들을 사용하는 지형 및 지도 제작에 있다. 구글 맵스(Google Maps)는 현재 3D 지도들의 좋은 예시이지만, 포인트 클라우드들 대신에 메시(mesh)를 사용한다. 그럼에도 불구하고, 포인트 클라우드들은 3D 지도들에 대한 적합한 데이터 포맷일 수 있고, 이러한 포인트 클라우드들은 통상적으로 정적이고, 컬러링되고, 거대하다.
자동차 산업 및 자율주행차 또한 포인트 클라우드들이 사용될 수 있는 분야들이다. 자율주행차들은 그들의 아주 가까운 이웃들의 실상에 기초하여 좋은 운전 결정들을 만들기 위해 그들의 환경을 "탐색(probe)"할 수 있어야 한다. LIDAR(빛 감지 및 범위 지정(Light Detection And Ranging))들과 같은 통상적인 센서들은 결정 엔진에 의해 사용되는 동적 포인트 클라우드들을 생성한다. 이들 포인트 클라우드들은 인간에 의해 보여지도록 의도되지 않으며, 통상적으로 작고, 반드시 컬러링되지는 않으며, 고주파의 캡처(capture)로 동적이다. 이러한 포인트 클라우드들은 LIDAR에 의해 제공되는 반사율과 같은 다른 속성들을 가질 수 있는데, 그 이유는 이 속성이 감지된 대상의 재료에 대한 좋은 정보를 제공하고, 결정을 내리는 데 도움을 줄 수 있기 때문이다.
가상 현실 및 몰입형 세계들은 최근에 뜨거운 주제들이 되었고, 많은 사람들에 의해 2D 플랫 비디오의 미래가 될 것으로 예측되었다. 기본적인 아이디어는, 시청자가 시청자 앞의 가상 세계를 오직 보기만 할 수 있는 표준 TV와 대조적으로, 시청자를 둘러싸는 환경에 시청자가 몰입하도록 하는 것이다. 환경에서의 시청자의 자유에 따라 몰입도에 있어서 몇몇 단계들(gradations)이 있다. 포인트 클라우드는 가상 현실(VR) 세계들을 분배(distributing)하기 위한 좋은 포맷 후보이다.
많은 애플리케이션들에서, 수용 가능한(또는 바람직하게는 매우 좋은) 품질의 경험을 유지하면서 오직 합리적인 양의 비트레이트(bit-rate)(또는 저장 애플리케이션들에 대해 저장 공간)만을 소비하면서 최종 사용자에게 동적 포인트 클라우드들을 분배할 수 있는 것(또는 서버에 그들을 저장하는 것)이 중요하다. 이러한 동적 포인트 클라우드들의 효율적인 압축은 많은 몰입형 세계들의 분배 체인을 실용적으로 만들기 위한 주요 쟁점이다.
적어도 하나의 실시예가 전술한 것을 염두에 두고 고안되었다.
다음은 본 개시내용의 일부 양태들의 기본적인 이해를 제공하기 위해 본 실시예들 중 적어도 하나의 단순화된 요약을 제시한다. 이 요약은 실시예의 광범위한 개요가 아니다. 이것은 실시예의 핵심적인 또는 중요한 요소들을 식별하는 것으로 의도되지 않는다. 이하의 요약은 단지 본 실시예들 중 적어도 하나의 일부 양태들을 문서 내의 다른 곳에 제공된 더 상세한 설명에 대한 서문으로서 단순화된 형태로 제시한다.
적어도 하나의 실시예의 일반적인 양태에 따르면, 적어도 하나의 3D 샘플을 포인트 클라우드에 추가하고, 상기 적어도 하나의 3D 샘플에 컬러-코딩 모드를 할당하고, 상기 컬러-코딩 모드는 상기 적어도 하나의 3D 샘플과 연관된 컬러 정보가 비트스트림에서 명시적으로 인코딩되는지 또는 상기 컬러 정보가 암시적인지를 표시하는 방법이 제공된다.
적어도 하나의 본 실시예 중 하나 이상은 또한 디바이스, 컴퓨터 프로그램, 컴퓨터 판독 가능 저장 매체 및 신호를 제공한다.
본 실시예들 중 적어도 하나의 구체적인 성질뿐만 아니라 상기 본 실시예들 중 적어도 하나의 목적들, 장점들, 특징들 및 사용들은 첨부된 도면들과 함께 취해지는 예시들의 이하의 설명으로부터 명백해질 것이다.
도면들에서, 몇몇 실시예들의 예시들이 도시된다. 도면들은 다음을 보여준다:
도 1은 본 실시예들 중 적어도 하나에 따른 2개-계층-기반(two-layer-based) 포인트 클라우드 인코딩 구조의 예시의 개략적인 블록도를 도시한다.
도 2는 본 실시예들 중 적어도 하나에 따른 2개-계층-기반 포인트 클라우드 디코딩 구조의 예시의 개략적인 블록도를 도시한다.
도 3은 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 인코더의 예시의 개략적인 블록도를 도시한다.
도 3a는 단계(3100)에 따른 예시적인 패치(patch) 생성을 개략적으로 도시한다.
도 4는 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 디코더(4000)의 예시의 개략적인 블록도를 도시한다.
도 5는 본 실시예들 중 적어도 하나에 따른 베이스 계층(BL)을 나타내는 비트스트림의 신택스의 예시를 개략적으로 도시한다.
도 6은 다양한 양태들 및 실시예들이 구현되는 시스템의 예시의 개략적인 블록도를 도시한다.
도 7은 본 실시예들 중 적어도 하나에 따른, 포인트 클라우드 프레임(point cloud frame, PCF)에 적어도 하나의 스터핑(stuffing) 3D 샘플을 추가하기 위한 방법의 예시의 개략적인 블록도를 도시한다.
도 7a는 도 7의 방법의 실시예의 예시의 개략적인 블록도를 도시한다.
도 7b는 본 실시예들 중 적어도 하나에 따른, 포인트 클라우드 프레임(PCF)에 적어도 하나의 스터핑 3D 샘플을 추가하기 위한 방법의 예시의 개략적인 블록도를 도시한다.
도 8은 도 7의 방법의 적어도 하나의 실시예에 따른, 도 3a의 연결된 컴포넌트들의 예시를 개략적으로 도시한다.
도 9는 서브-단계(7110)의 예시를 개략적으로 도시한다.
도 10은 서브-단계(7110)의 예시를 개략적으로 도시한다.
도 11은 단계(7200)의 실시예의 변형의 예시를 개략적으로 도시한다.
도 12는 단계(7200)의 실시예의 변형의 예시를 개략적으로 도시한다.
본 실시예들 중 적어도 하나는 본 실시예들 중 적어도 하나의 예시들이 도시되어 있는 첨부된 도면들을 참조하여 이하에서 더 완전하게 설명된다. 그러나, 실시예는 많은 대안적인 형태들로 구현될 수 있으며, 본 명세서에 설명된 예시들로 제한되어 해석되어서는 안된다. 따라서, 실시예들을 개시된 특정 형태들로 제한하려는 의도는 없다는 것을 이해해야 한다. 반대로, 본 개시내용은 본 출원의 사상 및 범위 내에 있는 모든 수정들, 등가물들, 및 대안들을 포괄하도록 의도된다.
도면이 흐름도로서 제시되면, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시되면, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것을 이해해야 한다. 유사하거나 동일한 요소들은 동일한 참조 번호들로 참조된다.
이하에서 설명되고 고려되는 양태들은 많은 상이한 형태들로 구현될 수 있다. 이하의 도 1 내지 도 12는 일부 실시예들을 제공하지만, 다른 실시예들도 고려되고, 도 1 내지 도 12의 논의는 구현들의 폭을 제한하지 않는다.
양태들 중 적어도 하나는 일반적으로 포인트 클라우드 인코딩 및 디코딩에 관한 것이며, 적어도 하나의 다른 양태는 일반적으로 생성되거나 인코딩된 비트스트림을 전송하는 것에 관한 것이다.
더 정확하게는, 본 명세서에서 설명된 다양한 방법들 및 다른 양태들은 모듈들을 수정하는 데 사용될 수 있다. 이들은 포인트 클라우드의 기하학적 구조를 재구성한 직후에 또는 기하학적 구조를 재구성하고 컬러 정보를 할당한 후에 행해질 수 있다. 패치 생성 모듈(patch generating module, PGM)(도 3의 단계(3100)), 텍스처 이미지 생성기(texture image generator, TIG)(도 3의 단계(3400)) 및 기하학적 구조 생성 모듈(geometry generating module, GGM)(도 4의 단계(4500))은 잠재적으로 수정된 모듈들의 예시이다.
예를 들어, 패치 생성 모듈(PGM)(도 3의 단계(3100))은 적어도 하나의 스터핑 3D 샘플들을 추가하고, 상기 적어도 하나의 스터핑 3D 샘플과 연관된 컬러 정보를 명시적으로 인코딩한다(또는 하지 않는다). 텍스처 이미지 생성기(TIG)(도 3의 단계(3400)) 또는 기하학적 구조 생성 모듈(GGM)(도 4의 단계(4500))은 스터핑 3D 샘플들에 보간된 컬러 정보 또는 디코딩된 컬러 정보를 할당할 수 있다.
더욱이, 본 양태들은 포인트 클라우드 압축에 관한 MPEG-I 파트 5와 같은 MPEG 표준들에 제한되지 않고, 예를 들어, 기존의 또는 향후 개발될 다른 표준들 및 권고들, 및 임의의 그러한 표준들 및 권고들(MPEG-I 파트 5를 포함하여)의 확장들에 적용될 수 있다. 달리 표시되지 않거나, 기술적으로 배제되지 않는 한, 본 출원에서 설명되는 양태들은 개별적으로 또는 조합하여 사용될 수 있다.
이하에서, 이미지 데이터는 데이터, 예를 들어, 특정 이미지/비디오 포맷에서의 2D 샘플들의 하나 또는 몇 개의 어레이들을 지칭한다. 특정 이미지/비디오 포맷은 이미지(또는 비디오)의 픽셀 값들에 관한 정보를 명시할 수 있다. 특정 이미지/비디오 포맷은 또한, 예를 들어 이미지(또는 비디오)를 시각화 및/또는 디코딩하기 위해 디스플레이 및/또는 임의의 다른 장치에 의해 사용될 수 있는 정보를 명시할 수 있다. 이미지는 통상적으로, 일반적으로 이미지의 휘도(또는 루마(luma))를 나타내는, 2D 샘플들의 제1 어레이의 형상의 제1 컴포넌트를 포함한다. 이미지는 또한, 일반적으로 이미지의 색차(또는 크로마(chroma))를 나타내는, 2D 샘플들의 다른 어레이들의 형상의 제2 컴포넌트 및 제3 컴포넌트를 포함할 수 있다. 일부 실시예들은 전통적인 3-색성 RGB 표현과 같은 컬러 샘플들의 2D 어레이들의 세트를 사용하여 동일한 정보를 표현한다.
픽셀 값은 하나 이상의 실시예들에서 C 값들의 벡터에 의해 표현되며, 여기서 C는 컴포넌트들의 개수이다. 벡터의 각각의 값은 통상적으로 픽셀 값들의 동적 범위를 정의할 수 있는 다수의 비트들로 표현된다.
이미지 블록은 이미지에 속하는 픽셀들의 세트를 의미한다. 이미지 블록의 픽셀 값들(또는 이미지 블록 데이터)은 이 이미지 블록에 속하는 픽셀들의 값들을 지칭한다. 이미지 블록은 비록 직사각형이 보통일지라도, 임의의 형상을 가질 수 있다.
포인트 클라우드는, 고유 좌표들을 갖고 또한 하나 이상의 속성들을 가질 수 있는 3D 볼류메트릭(volumetric) 공간 내의 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 샘플의 컬러를 정의한다. 동일한 타입의 속성이 여러 번 존재할 수 있다. 예를 들어, 다수의 컬러 속성들은 상이한 시점들(points of view)로부터 컬러 정보를 제공할 수 있다.
포인트 클라우드는 클라우드가 시간에 따라 변하는지 여부에 따라 정적이거나 동적일 수 있다. 정적 포인트 클라우드 또는 동적 포인트 클라우드의 인스턴스는 대개 포인트 클라우드 프레임으로서 표시된다. 동적 포인트 클라우드의 경우에, 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)는 입력 포인트 클라우드 프레임(input point cloud frame, IPCF)을 나타내는 비트스트림(B)을 제공할 수 있다. 아마도, 상기 입력 포인트 클라우드 프레임(IPCF)은 동적 포인트 클라우드의 프레임을 나타낸다. 다음으로, 상기 동적 포인트 클라우드의 프레임은 다른 프레임으로부터 독립적으로 2개-계층-기반 포인트 클라우드 인코딩 구조(1000)에 의해 인코딩될 수 있다.
기본적으로, 2개-계층-기반 포인트 클라우드 인코딩 구조(1000)는 베이스 계층(Base Layer, BL) 및 향상 계층(Enhancement Layer, EL)으로서 비트스트림(B)을 구조화하는 능력을 제공할 수 있다. 베이스 계층(BL)은 입력 포인트 클라우드 프레임(IPCF)의 손실 표현(lossy representation)을 제공할 수 있고, 향상 계층(EL)은 베이스 계층(BL)에 의해 표현되지 않은 격리된 포인트들을 인코딩함으로써 무손실 표현(lossless representation)을 제공할 수 있다. 가능한 대안으로서, 향상 계층(EL)은 베이스 계층(BL)에 의해 표현되지 않은 추가적인 포인트들을 인코딩함으로써 입력 포인트 클라우드 프레임(IPCF)의 더 높은 품질의(그러나 손실 있는) 표현을 제공할 수 있다.
베이스 계층(BL)은, 입력 포인트 클라우드 프레임(IPCF)의 3D 샘플들의 기하학적 구조/속성들을 나타내는 기하학적 구조/텍스처 이미지들을 제공할 수 있고 격리된 3D 샘플들이 폐기되는 것을 허용할 수 있는, 도 3에 도시된 바와 같은 이미지-기반 인코더(3000)에 의해 제공될 수 있다. 베이스 계층(BL)은 중간 재구성된 포인트 클라우드 프레임(intermediate reconstructed point cloud frame, 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)에 연관시킬 수 있는 검출기를 포함할 수 있다. 인코더(ENC)는 또한 이미지-기반 인코더일 수 있다.
예를 들어, 누락된 3D 샘플(M)과 연관된 3D 참조 샘플(R)은 주어진 메트릭(metric)에 따라 M의 가장 가까운 이웃일 수 있다.
일 실시예에 따르면, 인코더(ENC)는 이어서 상기 3D 참조 샘플들(R)의 공간적 위치들 및 속성들에 따라 결정된 차이들로서, 누락된 3D 샘플들(M)의 공간적 위치들 및 그들의 속성들을 인코딩한다.
변형에서, 이러한 차이들은 개별적으로 인코딩될 수 있다.
예를 들어, 누락된 3D 샘플(M)에 대해, 공간 좌표들 x(M), y(M) 및 z(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)의 충실한(그러나 손실 있는) 버전(RPCF)을 제공할 수 있다.
완전한 능력들을 갖는 2개-계층-기반 포인트 클라우드 디코딩 구조(2000)는 디멀티플렉서(DMUX)를 사용하여 비트스트림(B)으로부터 베이스 계층(BL) 및 향상 계층(EL) 양쪽에 액세스할 수 있다. 도 4에 도시된 바와 같이, 포인트 클라우드 디코더(4000)는 베이스 계층(BL)으로부터 재구성된 포인트 클라우드 프레임(RPCF)을 결정할 수 있다. 디코더(DEC)는 향상 계층(EL)으로부터 상보적 포인트 클라우드 프레임(complementary point cloud frame, CPCF)을 결정할 수 있다. 다음으로, 결합기(COM)는 재구성된 포인트 클라우드 프레임(RPCF)과 상보적 포인트 클라우드 프레임(CPCF)을 함께 결합할 수 있고, 그러므로 입력 포인트 클라우드 프레임(IPCF)의 무손실(또는 더 높은 품질) 표현(재구성) CRPCF를 제공할 수 있다.
도 3은 본 실시예들 중 적어도 하나에 따른 이미지-기반 포인트 클라우드 인코더(3000)의 예시의 개략적인 블록도를 도시한다.
이미지-기반 포인트 클라우드 인코더(3000)는 동적 포인트 클라우드의 기하학적 구조 및 텍스처(속성) 정보를 압축하기 위해 기존의 비디오 코덱들을 활용한다. 이것은 포인트 클라우드 데이터를 상이한 비디오 시퀀스들의 세트로 본질적으로 변환함으로써 달성된다.
특정 실시예들에서, 두 개의 비디오, 즉 포인트 클라우드 데이터의 기하학적 정보를 캡처하기 위한 하나, 및 텍스처 정보를 캡처하기 위한 다른 하나가 기존의 비디오 코덱들을 사용하여 생성되고 압축될 수 있다. 기존의 비디오 코덱의 예는 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, 권고 ITU-T H.265)이다.
두 개의 비디오들을 해석하는 데 사용되는 추가적인 메타데이터 또한 통상적으로 개별적으로 생성되고 압축된다. 이러한 추가적인 메타데이터는, 예를 들어, 점유 맵(occupancy map, OM) 및/또는 보조 패치 정보(PI)를 포함한다.
다음으로, 생성된 비디오 비트스트림들 및 메타데이터는 결합된 비트스트림을 생성하도록 함께 멀티플렉싱될 수 있다.
메타데이터는 전형적으로 전체 정보 중 적은 양을 나타낸다는 점에 유의해야 한다. 대부분의 정보는 비디오 비트스트림들 내에 있다.
이러한 포인트 클라우드 코딩/디코딩 프로세스의 예시는 ISO/IEC JTC1/SC29/WG11 MPEG2018/N18030 및 N17996(2018년 10월, 마카오)에서 정의된 바와 같은 테스트 모델 카테고리 2 알고리즘(또한 V-PCC로 지칭됨)에 의해 주어진다.
단계(3100)에서, 패치 생성 모듈(PGM)은 최상의 압축을 제공하는 전략을 사용하여 입력 포인트 클라우드 프레임(IPCF)을 나타내는 데이터 세트의 3D 샘플들을 주어진 프로젝션 평면 상의 2D 샘플들로 분해함으로써 적어도 하나의 패치를 생성할 수 있다.
패치는 2D 샘플들의 세트로서 정의될 수 있다.
예를 들어, V-PCC에서, 모든 3D 샘플에서의 법선이 예를 들어 Hoppe et al. (Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, Werner Stuetzle. Surface reconstruction from unorganized points. ACM SIGGRAPH 1992 Proceedings, 71-78)에서 설명된 바와 같이 첫째로 추정된다. 다음으로, 입력 포인트 클라우드 프레임(IPCF)의 초기 클러스터링은 입력 포인트 클라우드 프레임(IPCF)의 3D 샘플들을 포함하는(encompassing) 3D 바운딩 박스(bounding box)의 여섯 개의 배향된 평면들 중 하나와 각각의 3D 샘플들을 연관시킴으로써 획득된다. 더 정확하게는, 각각의 3D 샘플은 클러스터링되고 가장 가까운 법선(이는 포인트 법선과 평면 법선의 내적을 최대화함)을 갖는 배향된 평면과 연관된다. 다음으로, 3D 샘플들은 그들의 연관된 평면들로 프로젝팅된다. 그들의 평면에서 연결된 영역을 형성하는 3D 샘플들의 세트는 연결된 컴포넌트라고 지칭된다. 연결된 컴포넌트는 유사한 법선 및 동일한 연관된 배향된 평면을 갖는 적어도 하나의 3D 샘플들의 세트이다. 다음으로, 초기 클러스터링은 3D 샘플의 법선 및 3D 샘플의 가장 가까운 이웃 샘플들의 클러스터들에 기초하여 각각의 3D 샘플과 연관된 클러스터를 반복적으로 업데이트함으로써 개선된다. 마지막 단계는 각각의 연결된 컴포넌트로부터 하나의 패치를 생성하는 것으로 구성되며, 이것은 각각의 연결된 컴포넌트의 3D 샘플들을 상기 연결된 컴포넌트와 연관된 배향된 평면 상에 프로젝팅함으로써 수행된다.
도 3a는 단계(3100)의 일 실시예에 따른 패치 생성의 예시를 개략적으로 도시하고, 포인트 클라우드 프레임(여기서 2D 포인트 클라우드 프레임)은 네 개의 연결된 컴포넌트들로 세그먼트화되어 있다: 제1 연결된 컴포넌트는 밝은 회색 직사각형들(샘플들)을 포함하고, 제2 연결된 컴포넌트는 진한 회색 직사각형들을 포함하고, 제3 연결된 컴포넌트는 빗금 직사각형들을 포함하고, 제4 연결된 컴포넌트는 점 찍힌 직사각형들을 포함한다. 보여지는 바와 같이, 제1 연결된 컴포넌트는 수직 "라인" 상에 프로젝팅되고(보여지는 예에서, 2D 샘플들(3D 샘플들이 아님)은 라인(평면이 아님)을 따라 프로젝팅됨), 이 예에서, 1 초과 3 이하의 깊이 값을 갖는 프로젝션 라인 내의 일부 공간적인 위치들을 초래한다. 다음으로, 세 개의 패치들 #1, #2 및 #3은 제1 연결된 컴포넌트에 관한 모든 프로젝팅 정보(깊이)를 캡처하기 위해 생성된다.
패치는, 기하학적 구조 및/또는 속성 정보에 대응하는 프로젝팅된 2D 샘플들을 해석하기 위해 각각의 패치에 대해 정의되는 보조 패치 정보를 나타내는 보조 패치 정보(PI)와 연관된다.
예를 들어, V-PCC에서, 보조 패치 정보(PI)는 1) 연결된 컴포넌트의 3D 샘플들을 포함하는 3D 바운딩 박스의 여섯 개의 배향된 평면들 중 하나를 표시하는 정보; 2) 평면 법선에 관한 정보; 3) 깊이, 접선 시프트 및 이중-접선 시프트로 표현되는 패치에 관한 연결된 컴포넌트의 3D 위치를 결정하는 정보; 및 4) 패치를 포함하는 2D 바운딩 박스를 정의하는 프로젝션 평면에서의 좌표들 (u0, v0, u1, v1)과 같은 정보를 포함한다.
단계(3200)에서, 패치 패킹 모듈(patch packing module, PPM)은 미사용 공간을 최소화하는 방식으로 적어도 하나의 생성된 패치를 2D 그리드(또한 캔버스로도 불림) 상에 어떠한 중첩도 없이 매핑(배치)할 수 있고, 2D 그리드의 모든 TxT(예컨대, 16x16) 블록이 고유의 패치와 연관되는 것을 보장할 수 있다. 2D 그리드의 주어진 최소 블록 사이즈 TxT는 이 2D 그리드 상에 배치된 별개의 패치들 사이의 최소 거리를 지정할 수 있다. 2D 그리드 해상도는 입력 포인트 클라우드의 사이즈 및 이것의 폭(W) 및 높이(H)에 의존할 수 있고, 블록 사이즈(T)는 메타데이터로서 디코더에 전송될 수 있다.
보조 패치 정보(PI)는 2D 그리드의 블록과 패치 사이의 연관에 대한 정보를 더 포함할 수 있다.
V-PCC에서, 보조 정보(PI)는 2D 그리드의 블록과 패치 인덱스 간의 연관을 결정하는 블록 대 패치 인덱스 정보를 포함한다.
패치에 속하는 2D 샘플들을 포함하는 TxT 블록들은 대응하는 점유 맵(OM) 내의 점유 블록들로서 고려될 수 있다. 다음으로, 점유 맵(OM)의 블록은 블록이 점유되는지, 즉 패치에 속하는 2D 샘플들을 포함하는지 여부를 표시할 수 있다.
이미지 생성 프로세스들(단계들(3300 및 3400))은 입력 포인트 클라우드 프레임(IPCF)의 기하학적 구조 및 텍스처를 이미지들로서 저장하기 위해, 단계(3200)동안 계산된 2D 그리드 상에 적어도 하나의 생성된 패치의 매핑을 이용한다.
단계(3300)에서, 기하학적 이미지 생성기(geometry image generator, GIG)는 입력 포인트 클라우드 프레임(IPCF), 점유 맵(OM) 및 보조 패치 정보(PI)로부터 적어도 하나의 기하학적 이미지(GI)를 생성할 수 있다. 기하학적 이미지 생성기(GIG)는 점유 블록들, 따라서 기하학적 이미지(GI)에서 비어있지 않은 픽셀들을 검출(위치 확인)하기 위해 점유 맵 정보를 이용할 수 있다.
기하학적 이미지(GI)는 입력 포인트 클라우드 프레임(IPCF)의 기하학적 구조를 나타낼 수 있고, 예를 들어 YUV420-8비트 포맷으로 표현된 WxH 픽셀들의 단색 이미지일 수 있다.
다수의 3D 샘플들이 (동일한 프로젝션 방향(라인)을 따라) 프로젝션 평면의 동일한 2D 샘플로 프로젝팅(매핑)되는 경우를 더 잘 처리하기 위해, 계층들이라 지칭되는 다수의 이미지들이 생성될 수 있다. 따라서, 패치의 2D 샘플은 연관된 상이한 깊이 값들 D1,...,Dn을 가질 수 있고, 다수의 기하학적 이미지들이 생성된다.
V-PCC에서, 패치의 2D 샘플들이 두 개의 계층 상에 프로젝팅된다. 가까운 계층(near layer)이라고도 불리는 제1 계층은, 예를 들어, 최저 깊이를 갖는 2D 샘플들과 연관된 깊이 값들(D0)을 저장할 수 있다. 먼 계층(far layer)이라고도 지칭되는 제2 계층은, 예를 들어, 최고 깊이를 갖는 2D 샘플들과 연관된 깊이 값들(D1)과 D0 사이의 차이를 저장할 수 있다. 따라서, 제2 깊이 이미지에 의해 저장된 정보는 범위 [D0, D0+Δ] 내의 깊이 값들에 대응하는 간격 [0, Δ] 내에 있고, 여기서 Δ는 표면 두께를 기술하는 사용자-정의 파라미터이다.
이러한 방식으로, 제2 계층은 상당한 윤곽-같은(contour-like) 고주파수 특징들(features)을 포함할 수 있다. 따라서, 제2 깊이 이미지는 레거시(legacy) 비디오 코더를 사용하여 코딩되기 매우 어렵다는 것이 명백하게 나타나고, 따라서, 깊이 값들은 상기 디코딩된 제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)=δ(u, v)-δ0로 주어지는 루마 컴포넌트 g(u,v)로서 계층(제1 또는 제2 또는 둘 다)의 2D 샘플들과 연관된 깊이 값들을 코딩(유도)할 수 있다. 이 관계는 수반되는 보조 패치 정보(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의 예로서 제공된다.
여러 기하학적 계층들의 사용은 주어진 계층들의 개수가 충분하지 않다면 포인트 클라우드 프레임의 기하학적 구조를 적절히 캡처하는 데 계속 실패할 수 있다. 그러나, 계층들의 개수의 증가는 전체 비트레이트를 증가시키고, 따라서 압축 효율을 감소시킨다.
단계(3400)에서, 텍스처 이미지 생성기(TIG)는 입력 포인트 클라우드 프레임(IPCF), 점유 맵(OM), 보조 패치 정보(PI), 및 비디오 디코더(VDEC)(도 4에서의 단계(4200))의 출력인 적어도 하나의 디코딩된 기하학적 이미지(DGI)로부터 유도된 재구성된 포인트 클라우드 프레임의 기하학적 구조로부터, 적어도 하나의 텍스처 이미지(TI)를 생성할 수 있다.
텍스처 이미지(TI)는 입력 포인트 클라우드 프레임(IPCF)의 텍스처를 나타낼 수 있고, 예를 들어 YUV420-8비트 포맷으로 표현된 WxH 픽셀들의 이미지일 수 있다.
텍스처 이미지 생성기(TG)는 점유된 블록들 및 따라서 텍스처 이미지 내의 비어있지 않은 픽셀들을 검출(위치 확인)하기 위해 점유 맵 정보를 이용할 수 있다.
텍스처 이미지 생성기(TIG)는 텍스처 이미지(TI)를 생성하고 각각의 기하학적 이미지/계층(DGI)과 연관시키도록 적응될 수 있다.
일 실시예에 따르면, 텍스처 이미지 생성기(TIG)는 제1 텍스처 이미지(TI0)의 픽셀 값들로서 제1 계층의 2D 샘플들과 연관된 텍스처(속성) 값들(T0) 및 제2 텍스처 이미지(TI1)의 픽셀 값들로서 제2 계층의 2D 샘플들과 연관된 텍스처 값들(T1)을 코딩(저장)할 수 있다.
대안적으로, 텍스처 이미지 생성 모듈(TIG)은 제1 텍스처 이미지(TI0)의 픽셀 값들로서 제2 계층의 2D 샘플들과 연관된 텍스처 값들(T1) 및 제2 기하학적 이미지(GI1)의 픽셀 값들로서 제1 계층의 2D 샘플들과 연관된 텍스처 값들(D0)을 코딩(저장)할 수 있다.
예를 들어, 3D 샘플들의 컬러들은 V-PCC의 섹션 2.2.3, 2.2.4, 2.2.5, 2.2.8 또는 2.5에서 설명된 바와 같이 획득될 수 있다.
일 실시예에 따르면, 패딩 프로세스(padding process)가 기하학적 이미지 및/또는 텍스처 이미지 상에 적용될 수 있다. 그 목적은 비디오 압축에 적합한 구분적으로 매끄러운(piecewise smooth) 이미지를 생성하기 위해 패치들 사이의 빈 공간을 채우는 것에 있다.
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) 및 가능한 추가적인 메타데이터로부터 재구성된 포인트 클라우드 프레임(RPCF)(또는 IRPCF)의 기하학적 구조(RG)를 유도할 수 있다.
기하학적 구조 생성 모듈(GGM)은 적어도 하나의 디코딩된 기하학적 이미지(DGI)에서 비어있지 않은 픽셀들을 찾아내기 위해 디코딩된 점유 맵 정보(DOM)를 이용할 수 있다. 다음으로, 비어있지 않은 픽셀들과 연관된 재구성된 3D 샘플들의 3D 좌표들은 상기 비어있지 않은 픽셀들의 좌표들 및 상기 재구성된 2D 샘플들의 값들로부터 유도될 수 있다.
일 실시예에 따르면, 기하학적 구조 생성 모듈(GGM)은 비어있지 않은 픽셀들의 좌표들로부터 재구성된 3D 샘플들의 3D 좌표들을 유도할 수 있다.
일 실시예에 따르면, 기하학적 구조 생성 모듈(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)에서, 텍스처 생성 모듈(TGM)은 기하학적 구조(RG) 및 적어도 하나의 디코딩된 텍스처 이미지(DTI)로부터 재구성된 포인트 클라우드 프레임(RPCF)(또는 IRPCF)의 텍스처를 유도할 수 있다.
도 5는 본 실시예들 중 적어도 하나에 따른 베이스 계층(BL)을 나타내는 비트스트림의 예시적인 신택스를 개략적으로 도시한다.
비트스트림은 비트스트림 헤더(BSH) 및 적어도 하나의 프레임 스트림 그룹(Group Of Frame Stream, GOFS)을 포함한다.
프레임 스트림 그룹(GOFS)은 헤더(HS), 점유 맵(OM)을 나타내는 적어도 하나의 신택스 요소(OMS), 적어도 하나의 기하학적 이미지(또는 비디오)를 나타내는 적어도 하나의 신택스 요소(GVS), 적어도 하나의 텍스처 이미지(또는 비디오)를 나타내는 적어도 하나의 신택스 요소(TVS) 및 보조 패치 정보 및 다른 추가적인 메타데이터를 나타내는 적어도 하나의 신택스 요소(PIS)를 포함한다.
변형에서, 프레임 스트림 그룹(GOFS)은 적어도 하나의 프레임 스트림을 포함한다.
도 6은 다양한 양태들 및 실시예들이 구현되는 시스템의 예시를 나타내는 개략적인 블록도를 도시한다.
시스템(6000)은 아래에 설명되는 다양한 컴포넌트들을 포함하는 하나 이상의 디바이스들로서 구현될 수 있고, 본 명세서에서 설명된 양태들 중 하나 이상을 수행하도록 구성된다. 시스템(6000)의 전부 또는 일부를 형성할 수 있는 장비의 예시들은 개인용 컴퓨터들, 랩톱들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 녹화 시스템들, 연결된 가정 기기들, 헤드 마운티드 디스플레이 디바이스들(HMD, 시스루 안경), 프로젝터들(비머들(beamers)), "케이브들(caves)"(다수의 디스플레이들을 포함하는 시스템), 서버들, 비디오 인코더들, 비디오 디코더들, 비디오 디코더로부터의 출력을 프로세싱하는 후처리기들(post-processors), 비디오 인코더에의 입력을 제공하는 전처리기들(pre-processors), 웹 서버들, 셋톱 박스들, 및 포인트 클라우드, 비디오 또는 이미지를 프로세싱하기 위한 임의의 다른 디바이스 또는 다른 통신 디바이스들을 포함한다. 시스템(6000)의 요소들은, 단독으로 또는 조합되어, 단일 집적 회로, 다수의 IC들, 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(6000)의 프로세싱 및 인코더/디코더 요소들은 다수의 IC들 및/또는 개별 컴포넌트들에 걸쳐 분산될 수 있다. 다양한 실시예들에서, 시스템(6000)은, 예를 들어 통신 버스 또는 전용 입력 및/또는 출력 포트들을 통해, 다른 유사한 시스템들 또는 다른 전자 디바이스들에 통신 가능하게 결합될 수 있다. 다양한 실시예들에서, 시스템(6000)은 본 명세서에서 설명된 양태들 중 하나 이상을 구현하도록 구성될 수 있다.
시스템(6000)은, 예를 들어, 본 명세서에서 설명된 다양한 양태들을 구현하기 위해, 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(6010)를 포함할 수 있다. 프로세서(6010)는 임베디드 메모리, 입출력 인터페이스, 및 본 기술분야에서 공지된 다양한 다른 회로들을 포함할 수 있다. 시스템(6000)은 적어도 하나의 메모리(6020)(예를 들어 휘발성 메모리 디바이스 및/또는 비휘발성 메모리 디바이스)를 포함할 수 있다. 시스템(6000)은, 전기적으로 삭제 가능한 프로그래머블 읽기-전용 메모리(EEPROM), 읽기-전용 메모리(ROM), 프로그래머블 읽기-전용 메모리(PROM), 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는, 저장 디바이스(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) 예를 들어, 방송국(broadcaster)에 의해 공중을 통해(over the air) 전송된 RF 신호를 수신할 수 있는 RF 부분(portion), (ii) 컴포지트 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만, 이에 제한되지 않는다.
다양한 실시예들에서, 블록(6130)의 입력 디바이스들은 본 기술분야에서 공지된 바와 같이 연관된 각각의 입력 프로세싱 요소들을 가질 수 있다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(또한 신호를 선택하는 것, 또는 주파수들의 대역에 신호를 대역-제한하는 것으로 지칭됨), (ii) 선택된 신호를 하향-변환하는 것, (iii) (예를 들어) 소정의 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역에 대해 다시 대역-제한하는 것, (iv) 하향-변환된 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 원하는 데이터 패킷들의 스트림을 선택하기 위해 디멀티플렉싱하는 것에 필수적인 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어, 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 에러 정정기들, 및 디멀티플렉서들을 포함할 수 있다. RF 부분은 이러한 다양한 기능들, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 기저대역 근접 주파수) 또는 기저대역으로 하향 변환하는 것을 수행하는 튜너를 포함할 수 있다.
하나의 셋톱 박스 실시예에서, RF 부분 및 이것의 연관된 입력 프로세싱 요소는 유선(예컨대, 케이블) 매체를 통해 전송되는 RF 신호를 수신할 수 있다. 다음으로, RF 부분은 원하는 주파수 대역을 위해 필터링, 하향 변환, 및 재필터링에 의해 주파수 선택을 수행할 수 있다.
다양한 실시예들이 전술된(및 다른) 요소들의 순서를 재배열하고, 이러한 요소들의 일부를 제거하고, 및/또는 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다.
요소들을 추가하는 것은, 예를 들어, 증폭기들 및 아날로그-대-디지털 변환기를 삽입하는 것과 같이, 기존의 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함할 수 있다.
추가적으로, USB 및/또는 HDMI 단말들은 USB 및/또는 HDMI 연결들에 걸쳐 시스템(6000)을 다른 전자 디바이스들에 접속시키기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 프로세싱, 예를 들어, 리드-솔로몬(Reed-Solomon) 에러 정정의 다양한 양태들이, 예를 들어, 필요에 따라 별개의 입력 프로세싱 IC 내에 또는 프로세서(6010) 내에 구현될 수 있다는 것이 이해되어야 한다. 마찬가지로, USB 또는 HDMI 인터페이스 프로세싱의 양태들은 필요에 따라 별개의 입력 프로세싱 IC 내에 또는 프로세서(6010) 내에 구현될 수 있다. 복조된, 에러 정정된, 및 디멀티플렉싱된 스트림은 출력 디바이스 상의 표현에 필요한 만큼 데이터 스트림을 프로세스하기 위해 예를 들어 프로세서(6010), 및 메모리 및 저장 요소들과 결합하여 동작하는 인코더/디코더(6030)를 포함하는 다양한 프로세싱 요소들에 제공될 수 있다.
시스템(6000)의 다양한 요소들은 통합된 하우징 내에 제공될 수 있다. 통합된 하우징 내에서, 다양한 요소들이 상호 연결될 수 있고, 적합한 연결 배열(6140), 예를 들어, I2C 버스, 와이어링, 및 인쇄된 회로 보드들을 포함하는 본 기술분야에서 공지된 내부 버스를 사용하여 그들 사이에 데이터를 전송할 수 있다.
시스템(6000)은 통신 채널(6060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(6050)를 포함할 수 있다. 통신 인터페이스(6050)는 통신 채널(3060)을 통해 데이터를 전송하고 수신하도록 구성되는 트랜시버를 포함할 수 있으나, 이에 제한되는 것은 아니다. 통신 인터페이스(6050)는 모뎀 또는 네트워크 카드를 포함할 수 있으나, 이에 제한되지 않고, 통신 채널(6060)은 예를 들어 유선 및/또는 무선 매체 내에서 구현될 수 있다.
다양한 실시예들에서, 데이터는 IEEE 802.11과 같은 Wi-Fi 네트워크를 사용하여 시스템(6000)으로 스트리밍될 수 있다. 이러한 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들을 위해 적응되는 통신 채널(6060) 및 통신 인터페이스(6050)를 통해 수신될 수 있다. 이러한 실시예들의 통신 채널(6060)은 스트리밍 애플리케이션들 및 다른 오버더톱(over-the-top) 통신들을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에의 액세스를 제공하는 액세스 포인트 또는 라우터에 통상적으로 접속될 수 있다.
다른 실시예들은 입력 블록(6130)의 HDMI 연결을 통해 데이터를 전달하는 셋톱 박스를 사용하여 시스템(6000)에 스트리밍된 데이터를 제공할 수 있다.
또 다른 실시예들은 입력 블록(6130)의 RF 연결을 사용하여 시스템(6000)에 스트리밍된 데이터를 제공할 수 있다.
시그널링이 다양한 방식들로 달성될 수 있다는 것이 이해될 것이다. 예를 들어, 하나 이상의 신택스 요소들, 플래그들 등이 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하는 데 사용될 수 있다.
시스템(6000)은 디스플레이(6100), 스피커들(6110), 및 다른 주변 디바이스들(6120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(6120)은, 실시예들의 다양한 예시들에서, 독립형(stand-alone) DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(3000)의 출력에 기초하여 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함할 수 있다.
다양한 실시예들에서, 제어 신호들은 AV.Link(오디오/비디오 링크), CEC(전자제품 제어(Consumer Electronics Control)), 또는 사용자 개입이 있거나 없이 디바이스-대-디바이스 제어를 가능하게 하는 다른 통신 프로토콜들과 같은 시그널링을 사용하여 시스템(3000)과 디스플레이(6100), 스피커들(6110), 또는 다른 주변 디바이스들(6120) 사이에서 통신될 수 있다.
출력 디바이스들은 각각의 인터페이스들(6070, 6080, 및 6090)을 통한 전용 연결들을 통해 시스템(6000)에 통신 가능하게 결합될 수 있다.
대안적으로, 출력 디바이스들은 통신 인터페이스(6050)를 통해 통신 채널(6060)을 사용하여 시스템(3000)에 접속될 수 있다. 디스플레이(6100) 및 스피커들(6110)은 예를 들어 텔레비전과 같은 전자 디바이스에서 시스템(6000)의 다른 컴포넌트들과 함께 단일 유닛에 통합될 수 있다.
다양한 실시예들에서, 디스플레이 인터페이스(6070)는 예를 들어 타이밍 제어기(timing controller, T Con) 칩과 같은 디스플레이 드라이버를 포함할 수 있다.
디스플레이(6100) 및 스피커(6110)는 대안적으로, 예를 들어, 입력(6130)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상으로부터 분리될 수 있다. 디스플레이(6100) 및 스피커들(6110)이 외부 컴포넌트들일 수 있는 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 연결들을 통해 제공될 수 있다.
도 7은 본 실시예들 중 적어도 하나에 따른, 포인트 클라우드 프레임(PCF)에 적어도 하나의 3D 샘플(스터핑 3D 샘플이라고 표시됨)을 추가하기 위한 방법의 예시의 개략적인 블록도를 도시한다.
상기 포인트 클라우드 프레임(PCF)은, 예를 들어, 적어도 하나의 디코딩된 기하학적 이미지(DGI)로부터 유도된 재구성된 포인트 클라우드 프레임이고, 즉, 예를 들어, 도 3의 적어도 하나의 디코딩된 기하학적 이미지들(DGI)로부터 유도된 중간 재구성된 포인트 클라우드(IRPCF), 재구성된 포인트 클라우드 프레임(RPCF) 또는 재구성된 포인트 클라우드 프레임이다.
단계(7100)에서, 모듈은 적어도 하나의 스터핑 3D 샘플이 포인트 클라우드 프레임(PCF)에 추가되어야 하는지를 결정한다.
단계(7100)의 일 실시예에 따르면, 적어도 하나의 스터핑 3D 샘플은 포인트 클라우드 프레임(PCF)의 현재 3D 샘플로부터, 상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 값과 상기 현재 3D 샘플의 깊이 값 사이의 차이에 따라 추가될 수 있다.
스터핑 3D 샘플이 추가되어야 한다면, 단계(7200)에서, 상기 스터핑 3D 샘플에 컬러-코딩 모드가 할당된다. 상기 컬러-코딩 모드는 상기 3D 샘플과 연관된 컬러 정보가 비트스트림에서 명시적으로 인코딩되는지(명시적 컬러-코딩 모드) 또는 컬러 정보가 암시적인지(암시적 컬러-코딩 모드), 즉 상기 컬러 정보가 포인트 클라우드 프레임(PCT)의 3D 샘플들 및 가능하게는 다른 스터핑 3D 샘플들을 포함하는 다른 3D 샘플들과 연관된 컬러 정보로부터 유도되는지를 표시한다.
스터핑 3D 샘플에 할당된 컬러 정보가 명시적으로 인코딩되는지 여부를 결정하는 것은 품질(명시적으로 인코딩되는 경우)과 비트레이트 감소(암시적인 경우)의 트레이드오프(tradeoff)이다.
단계(7300)에서, 명시적 컬러-코딩 모드가 스터핑 3D 샘플과 연관되는 경우, 상기 스터핑 3D 샘플과 연관된 컬러 정보는 비트스트림으로 인코딩된다.
임의적으로, 단계(7400)에서, 컬러-코딩 모드는 비트스트림으로 인코딩된다.
도 7의 방법은 비트레이트의 관점에서 특히 유리한데, 그 이유는 스터핑 3D 샘플들을 사용하는 것은 도 8에서 도시된 바와 같은 포인트 클라우드 프레임의 기하학적 구조를 적절히 캡처하기 위해 요구되는 기하학적 이미지들(계층들)의 개수를 감소시키기 때문이다. 따라서, 매우 제한된 수의 기하학적 이미지 및 스터핑 3D 샘플들을 인코딩하는 것은 포인트 클라우드 프레임의 기하학적 구조를 캡처하기 위해 기하학적 이미지들만을 사용하는 방법에 비해 전체 비트레이트를 감소시킨다.
도 8은 도 7의 방법의 적어도 하나의 실시예에 따라 프로세싱된 도 3a의 연결된 컴포넌트의 예시를 개략적으로 도시한다.
밝은 회색 직사각형들(도 3a)로 표현된 제1 연결된 컴포넌트에 관련된 모든 프로젝팅된 정보를 캡처하기 위해 세 개(까지)의 패치들을 키핑하는 대신에, 도 7의 방법에 따른 단일 계층(패치 #1), 예를 들어 제1 계층, 즉 가장 작은 깊이를 갖는 2D 샘플들과 연관된 깊이 값들(D0)을 저장하는 계층에 대응하는 패치가 키핑된다. 다음으로, 상기 패치 #1은 역프로젝팅되고, 역프로젝팅된 연결된 컴포넌트는 이후 적어도 하나의 스터핑 3D 샘플에 의해 채워질 잠재적인 홀들을 검출하기 위해 분석된다. 이 예시에 따르면, 세 개의 스터핑 3D 샘플들 P1, P2 및 P3가 추가된다.
도 7a에 도시된 단계(7100)의 일 실시예에 따르면, 스터핑 3D 샘플을 추가하는 것은 다음의 서브-단계들을 포함한다:
서브-단계(7110)에서, 포인트 클라우드(PCF)의 적어도 하나의 현재 3D 샘플(Cur)에 대해, 현재 3D 샘플의 깊이 값 Depth(Cur)과 상기 현재 3D 샘플들의 이웃 3D 샘플들의 깊이 값 Depth(Ni) 사이의 최대 깊이 차이(거리) deltaMax(Cur)이 계산된다:
deltaMax(Cur) = max(Depth(Ni) - Depth(Cur))
여기서 Ni는 현재 3D 샘플(Cur)의 i번째 이웃 3D 샘플을 나타내고, max(a, b)는 두 값들 a와 b 사이의 통상적인 최댓값 함수이다.
서브-단계(7110)의 일 실시예에 따르면, 이웃 3D 샘플(Ni)은 현재 3D 샘플을 중심으로 주위의 NxN 이웃에 속한다.
서브-단계(7110)의 변형에 따르면, 이웃 3D 샘플(Ni)의 기하학적 이미지 평면 상으로의 프로젝션 및 현재 3D 샘플(Cur)의 상기 기하학적 이미지 평면 상으로의 프로젝션은 동일한 기하학적 이미지(동일한 계층)의 동일한 패치에 속한다.
서브-단계(7110)의 변형에 따르면, 이웃 3D 샘플(Ni)의 기하학적 이미지 평면 상으로의 프로젝션 및 현재 3D 샘플(Cur)의 상기 기하학적 이미지 평면 상으로의 프로젝션은 동일한 기하학적 이미지(동일한 계층)의 상이한 패치들에 속한다.
서브-단계(7110)의 변형에 따르면, 이웃 3D 샘플(Ni)의 제1 기하학적 이미지 평면 상으로의 프로젝션 및 현재 3D 샘플(Cur)의 제2 기하학적 이미지 평면 상으로의 프로젝션에서, 상기 제1 및 제2 기하학적 이미지 평면들은 상이한 기하학적 이미지들(상이한 계층들)에 대응한다. 예를 들어, 상기 기하학적 이미지 중 하나는 최저 깊이를 갖는 2D 샘플들(V-PCC에서 소위 제1 계층)과 연관된 깊이 값들(D0)을 저장하고, 상기 기하학적 이미지 중 다른 하나는 최고 깊이를 갖는 2D 샘플들(V-PCC에서 소위 제2 계층)과 연관된 깊이 값들(D1)을 저장한다.
서브-단계(7110)의 변형에 따르면, 현재 3D 샘플의 깊이 값 Depth(Cur)과 이웃 3D 샘플(Ni)의 깊이 값 Depth(Ni) 사이의 차이는, 이것이 하한(LB) 및 상한(UB)에 의해 정의된 주어진 값 범위에 속하지 않을 경우 무시된다.
예를 들어, LB=0이고 UB=4이다.
차이들 중 어느 것도 주어진 값 범위에 속하지 않는 경우, 최대 깊이 차이 deltaMax(current)는 0으로 설정될 수 있다.
서브-단계(7120)에서, 적어도 하나의 스터핑 3D 샘플들이 Depth(Cur)에서 Depth(Cur)+deltaMax(Cur)-1의 범위의 깊이 값들로 추가된다.
서브-단계(7120)의 일 실시예에 따르면, 최대 깊이 차이 deltaMax(Cur)까지, 적어도 하나의 스터핑 3D 샘플이 현재 3D 샘플의 이미지 평면 상으로의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에서 추가된다. 따라서, (deltMax(Cur)-1)개의 스터핑 3D 샘플들이 Depth(Cur)에서 Depth(Cur)+deltaMax(Cur)-1까지의 범위의 깊이 값들로 추가된다.
deltMax(Cur)=0 또는 =1이면, 스터핑 3D 샘플은 또한 상기 2D 위치에서 추가된다.
도 9는 deltaMax(Cur)이 0, 1, 2, 3 및 4와 같은 경우 서브-단계(7110)의 예시를 개략적으로 도시한다.
밝은 회색 직사각형들은 현재 3D 샘플(Cur)을 나타내고, 블록 직사각형은 이웃 3D 샘플(Ni)을 나타내고, 크로스 표시는 추가된 스터핑 3D 샘플에 대한 것이다. 더 쉬운 설명적인 예시들을 위해, 현재 3D 샘플(Cur)이 단일 이웃 3D 샘플(Ni)을 갖는다고 가정된다.
도 9의 제1 예시(EX1)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 5와 같고, 상한 UP(=4)보다 크다. 다음으로, deltMax(Cur)=0이고 단일 스터핑 3D 샘플은 현재 3D 샘플의 프로젝션을 나타내는 2D 샘플의 2D 위치로서 추가된다.
도 9의 제2 예시(EX2)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 4와 같다. 따라서, deltMax(Cur)=4이고 세 개의 스터핑 3D 샘플들은 현재 3D 샘플(Cur)과 동일한 2D 위치에 추가된다(최대 깊이 차이 deltaMax(Cur)-1까지).
도 9의 제3 예시(EX3)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 3과 같다. 따라서, deltMax(Cur)=3이고 두 개의 스터핑 3D 샘플들은 현재 3D 샘플(Cur)과 동일한 2D 위치에 추가된다(최대 깊이 차이 deltaMax(Cur)-1까지).
도 9의 제4 예시(EX4)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 2와 같다. 따라서, deltMax(Cur)=2이고 한 개의 스터핑 3D 샘플은 현재 3D 샘플(Cur)과 동일한 2D 위치에 추가된다(최대 깊이 차이 deltaMax(Cur)-1까지).
도 9의 제5 예시(EX5)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 1과 같다. 따라서, deltMax(Cur)=1이고 단일 스터핑 3D 샘플은 현재 3D 샘플의 프로젝션을 나타내는 2D 샘플의 2D 위치로서 추가된다.
도 9의 제6 예시(EX6)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 0과 같다. 따라서, deltMax(Cur)=0이고 단일 스터핑 3D 샘플은 현재 3D 샘플의 프로젝션을 나타내는 2D 샘플의 2D 위치로서 추가된다.
도 9의 제7 예시(EX7)에서, 하한(LB)은 0과 같고 상한은 4와 같다. 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 -1과 같다. 따라서, deltMax(Cur)=0이고 단일 스터핑 3D 샘플은 현재 3D 샘플의 프로젝션을 나타내는 2D 샘플의 2D 위치로서 추가된다.
서브-단계(7120)의 다른 실시예에 따르면, 최대 깊이 차이 deltaMax(Cur)-1까지, 적어도 하나의 스터핑 3D 샘플이 현재 3D 샘플의 이미지 평면 상으로의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에서 추가되고, 다른 스터핑 3D 샘플이 deltMax(Cur)-1과 같은 깊이 값을 갖는 이웃 3D 샘플의 프로젝션을 나타내는 2D 샘플로서 2D 위치에 추가된다. 따라서, (deltMax(Cur)-1)개의 스터핑 3D 샘플들이 Depth(Cur)에서 Depth(Cur)+deltaMax(Cur)-1까지의 범위의 깊이 값들로 추가된다.
도 10은 deltaMax(Cur)이 0, 1, 2, 3 및 4와 같은 경우 서브-단계(7110)의 예를 개략적으로 도시한다.
밝은 회색 직사각형들은 현재 3D 샘플(Cur)을 나타내고, 블록 직사각형은 이웃 3D 샘플(Ni)을 나타내고, 크로스 표시는 추가된 스터핑 3D 샘플에 대한 것이다. 더 쉬운 설명적인 예시들을 위해, 현재 3D 샘플(Cur)이 단일 이웃 3D 샘플(Ni)을 갖는다고 가정된다.
도 10의 제2 예시(EX2)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 4와 같다. 따라서, deltMax(Cur)=4이고, 두 개의 스터핑 3D 샘플들은 현재 3D 샘플(Cur)과 동일한 2D 위치에 추가되고(최대 깊이 차이 deltaMax(Cur)-2까지), 다른 스터핑 3D 샘플은 deltaMax(Cur)-1을 설정하는 이웃 3D 샘플의 프로젝션을 나타내는 2D 샘플로서 2D 위치에 추가된다.
도 10의 제3 예시(EX3)에서, 깊이 Depth(Cur)과 깊이 Depth(Ni) 사이의 차이는 3과 같다. 따라서, deltMax(Cur)=3이고, 한 개의 스터핑 3D 샘플은 현재 3D 샘플(Cur)과 동일한 2D 위치에 추가되고(최대 깊이 차이 deltaMax(Cur)-2까지), 다른 스터핑 3D 샘플은 deltMax(Cur)-1을 설정하는 이웃 3D 샘플의 프로젝션을 나타내는 2D 샘플로서 2D 위치에 추가된다.
다른 예시들은 도 9에서 설명된 것들과 동일하게 유지된다.
서브-단계(7120)의 변형에 따르면, 최대 깊이 차이 deltaMax(Cur)은 적어도 최솟값 minDepth와 같다:
deltaMax(Cur) = max((Depth(Ni) - Depth(Cur)), minDepth)
예를 들어, minDepth는 1 또는 2와 같을 수 있다.
이 변형은, 필요하다면, 적어도 하나의 스터핑 3D 샘플을 추가함으로써 재구성된 포인트 클라우드 프레임의 최소 두께를 보장한다.
서브-단계(7120)의 변형에 따르면, minDepth의 값은 적어도 하나의 추가된 스터핑 3D 샘플의 인코딩 비용을 추정함으로써 레이트/왜곡 최적화 루프에 의해 정의될 수 있다.
서브-단계(7120)의 일 실시예에 따르면, 최솟값 MinDepth는 비트스트림에서 전송(시그널링)된다.
단계(7300)의 일 실시예에 따르면, 명시적 컬러-코딩 모드가 스터핑 3D 샘플에 할당되는 경우, 상기 컬러 정보는 텍스처 이미지(TI)에 인코딩된다.
이것은 충실도를 최대화하고 디코딩 복잡도를 감소시킨다.
단계(7200)의 일 실시예에 다르면, 컬러-코딩 모드의 값은 스터핑 3D 샘플(Cur)과 연관된 최대 깊이 차이 deltaMax(Cur)에 따라 상기 스터핑 3D 샘플(Cur)에 할당된다.
단계(7200)의 일 실시예에 따르면, 최대 깊이 차이 deltaMax(Cur)이 0 또는 1과 같은 경우, 명시적 컬러-코딩 모드를 추가될 스터핑 3D 샘플에 할당한다. 최대 깊이 차이 deltaMax(Cur)이 1보다 큰 경우, 명시적 컬러-코딩 모드를 최고 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당한다. 최고 깊이 값을 갖는 추가된 스터핑 3D 샘플은 Depth(Cur)+deltaMax(Cur)-1과 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플이다. 다음으로, 암시적 컬러-코딩 모드를 나머지 추가된 스터핑 3D 샘플들(만약 존재한다면)에 할당한다.
도 11은 deltaMax(Cur)이 0, 1, 2, 3 및 4와 같을 경우 단계(7200)의 일 실시예의 예시를 개략적으로 도시한다.
밝은 회색 직사각형들은 현재 3D 샘플(Cur)을 나타내고, 블록 직사각형은 이웃 3D 샘플(Ni)을 나타내고, 크로스 표시는 추가된 스터핑 3D 샘플에 대한 것이고, 해시(hashed) 직사각형들은 명시적으로 설정된 컬러-코딩을 갖는 추가된 스터핑 3D 샘플들을 나타낸다. 더 쉬운 설명적인 예시들을 위해, 현재 3D 샘플(Cur)이 단일 이웃 3D 샘플(Ni)을 갖는 것으로 가정된다.
도 9의 일곱 가지 예시들은 여기에서 비제한적인 예시들에 대해 사용된다.
도 11의 제1, 제6 및 제7 예시들(EX1, EX6 및 EX7)에서, 최대 깊이 차이 deltaMax(Cur)은 0과 같고, 명시적 컬러 코딩 모드가 현재 3D 샘플(Cur)의 프로젝션을 나타내는 2D 샘플의 2D 위치에 위치된 스터핑 3D 샘플에 할당된다.
도 11의 제2 예시(EX2)에서, 최대 깊이 차이 deltaMax(Cur)은 4와 같고, 다음으로 명시적 컬러-코딩 모드는 최고 깊이 값을 갖는 추가된 스터핑 3D 샘플, 즉 Depth(Cur)+3과 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당된다. 암시적 컬러-코딩 모드는 Depth(Cur)+2와 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플, 및 Depth(Cur)+1과 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당된다.
도 11의 제3 예시(EX3)에서, 최대 깊이 차이 deltaMax(Cur)은 3과 같고, 다음으로 명시적 컬러-코딩 모드는 최고 깊이 값을 갖는 추가된 스터핑 3D 샘플, 즉 Depth(Cur)+2와 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당된다. 암시적 컬러-코딩 모드는 Depth(Cur)+1과 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당된다.
도 11의 제4 예시(EX4)에서, 최대 깊이 차이 deltaMax(Cur)은 2와 같고, 다음으로 명시적 컬러-코딩 모드는 최고 깊이 값을 갖는 추가된 스터핑 3D 샘플, 즉 Depth(Cur)+1과 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당된다.
도 11의 제5 예시(EX5)에서, 최대 깊이 차이 deltaMax(Cur)은 1과 같고, 다음으로 명시적 컬러-코딩 모드는 최고 깊이 값을 갖는 추가된 스터핑 3D 샘플, 즉 Depth(Cur)과 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당된다.
도 12에서 예시된 단계(7200)의 변형 실시예에 따르면, 최대 깊이 차이 deltaMax(Cur)이 0 또는 1과 같을 경우, 다음으로 명시적 컬러-코딩 모드는 추가될 스터핑 3D 샘플에 할당된다. 최대 깊이 차이 deltaMax(Cur)이 1보다 클 경우, 다음으로 명시적 컬러-코딩 모드를 중간 깊이 값을 갖는 추가된 스터핑 3D 샘플에 할당한다. 중간 깊이 값을 갖는 추가된 스터핑 3D 샘플은 ceil(Depth(Curr)+deltaMax(Curr)/2)와 같은 깊이 값을 갖는 추가된 스터핑 3D 샘플이다. 다음으로, 암시적 컬러-코딩 모드를 나머지 추가된 스터핑 3D 샘플들(존재한다면)에 할당한다.
단계(7300)의 일 실시예에 따르면, 스터핑 3D 샘플과 연관된 컬러-코딩 모드가 컬러 정보가 상기 스터핑 3D 샘플과 연관된다는 것을 표시하지 않는 경우, 스터핑 3D 샘플과 연관된 컬러 정보는 상기 스터핑 3D 샘플의 이웃 3D 샘플들(Ni)과 연관된 컬러 정보를 보간함으로써 획득된다.
이 실시예는 비트레이트를 낮춘다.
도 7b는 본 실시예들 중 적어도 하나에 따른, 적어도 하나의 3D 샘플(스터핑 3D 샘플이라고 표시됨)을 포인트 클라우드 프레임(PCF)에 추가하기 위한 방법의 예시의 개략적인 블록도를 도시한다.
위에서 설명된 단계(7100)에서, 모듈은 적어도 하나의 스터핑 3D 샘플이 포인트 클라우드 프레임(PCF)에 추가되어야 하는지를 결정한다.
스터핑 3D 샘플이 추가되어야 한다면, 단계(7500)에서, 디코더는 상기 적어도 하나의 스터핑 3D 샘플과 연관된 컬러-코딩 모드를 제공하기 위해 비트스트림을 디코딩한다.
상기 컬러-코딩 모드가 상기 스터핑 3D 샘플과 연관된 컬러 정보가 명시적으로 인코딩되는 것을 표시한다면, 단계(7600)에서, 디코더는 상기 적어도 하나의 스터핑 3D 샘플과 연관된 컬러 정보를 제공하기 위해 비트스트림을 디코딩한다.
상기 컬러-코딩 모드가 암시적이라면, 단계(7700)에서, 모듈은 포인트 클라우드 프레임(PCT)의 3D 샘플들 및 가능하게는 다른 스터핑 3D 샘플들을 포함하는 다른 3D 샘플들과 연관된 컬러 정보로부터 컬러 정보를 유도한다.
도 7a에 도시된 단계(7100)의 실시예들 및 변형들은 도 7b의 방법에 대해 적용된다.
추가적으로, 도 7b의 방법은 최솟값 minDepth를 제공하기 위해 비트스트림을 디코딩하는 단계를 포함한다.
임의의 공지된 보간 함수가 스터핑 3D 샘플들의 이웃 3D 샘플들과 연관된 컬러 정보를 보간하는 데 사용될 수 있다.
예를 들어, 컬러 보간 함수는 이웃 3D 샘플들(Ni)과 연관된 컬러 정보의 최대, 최소, 중앙값 또는 평균일 수 있다. 가중치 평균 또한 이웃 거리로부터 정의된 가중치들과 함께 사용될 수 있다.
컬러 보간 함수의 다른 예시는 다음의 의사 코드에 의해 주어진다:
RefinedColor1 = 재구성된(reconstructed) 프레임으로부터 원본(original) 프레임에서 가장 가까운 3D 샘플(포인트)의 컬러들의 목록(재구성된 3D 샘플 당 1개 컬러)
RefinedColor2 = 원본 프레임으로부터 재구성된 프레임에서 가장 가까운 3D 샘플(포인트)의 컬러들의 목록(재구성된 3D 샘플 당 n개 컬러들의 1개 목록)
알고리즘
//color0 계산
Centroid1 = color1
Centroid2 = ,
D2 = var(Centroid2) =
r = nb_reconstructed_point / nb_original_points
Delta2 = (Centroid1 - Centroid2)2
w = 0;
if(Delta2 != 0){
alpha = D2/delta2;
a = nb_color2 * r - 1;
c = alpha * r - 1;
delta = 1 - a * c;
w = 0
if(delta != 0){
w = (-1 + )/a;
}
}
Color0 = w * Centroid1 + (1-w)Centroid2
//컬러 조정 및 선택
step = s = ,
단계(step)에 걸친 루프(각각의 재구성된 포인트에 대한 5x5x5 조합들)
{
, m = 3 (r,g,b)
, m = 3 (r,g,b), n = 현재 포인트에 대한 C2 컬러들의 개수
error = max(e1, e2)
if(error < min_error){
best_color = color0 + step
}
}
의사 코드로서 위에서 제시된 알고리즘은 컬러 보간을 요구하는 재구성된 포인트 클라우드로부터 각각의 현재 3D 샘플에 대한 다음의 단계들을 수행한다:
- 재구성된 포인트 클라우드 프레임, 예를 들어 IRPCF 내의 가장 가까운, 컬러링된 3D 샘플의 컬러 및 위치를 찾는 단계;
- 원본 포인트 클라우드 프레임, 예를 들어 IPCF 내의 가장 가까운, 컬러링된 3D 샘플의 컬러 및 위치를 찾는 단계;
- 중심(centroid)까지의 거리에 기초하여 모든 3D 샘플들의 컬러들을 평균화하는 단계(상기 3D 샘플들의 기하학적 좌표들을 평균함으로써 계산됨);
- 현재 3D 샘플에 이러한 평균 컬러를 할당하는 단계; 및
- 원본 3D 샘플과의 에러가 최소화되도록 현재 3D 샘플의 컬러를 (컬러 컴포넌트 당 +/- 2 차이 내에서) 수정하는 단계.
도 7(인코딩) 및 도 7b(디코딩)의 방법들은 상이한 사용 사례들에서 사용될 수 있다.
제1 사용 사례에서, 포인트 클라우드 프레임(PCF)의 기하학적 구조를 인코딩하기 위해 단일 기하학적 이미지(계층)가 사용될 수 있다. 예를 들어, 상기 단일 기하학적 이미지는 최저 깊이를 갖는 2D 샘플들과 연관된 깊이 값들(D0)을 저장할 수 있다. 다음으로, 적어도 하나의 스터핑 3D 샘플은 도 7 또는 도 7b의 방법에 따라 추가될 수 있다. 마지막으로, 명시적 컬러-코딩 모드가 상기 적어도 하나의 스터핑 3D 샘플에 할당되는 경우, 포인트 클라우드(PCF)의 3D 샘플들과 연관된 컬러 정보는 제1 텍스처 이미지(TI0)로서 인코딩될 수 있고, 적어도 하나의 스터핑 샘플과 연관된 컬러 정보는 제2 텍스처 이미지(TI1)로 인코딩될 수 있다.
제2 사용 사례에서, 두 개의 기하학적 이미지들 GI0 및 GI1(두 개 계층들)은 포인트 클라우드 프레임(PCF)의 기하학적 구조를 인코딩하기 위해 사용될 수 있다. 예를 들어, 제1 기하학적 이미지는 최저 깊이(제1 계층)를 갖는 2D 샘플들과 연관된 깊이 값들(D0)을 저장할 수 있고, 제2 기하학적 이미지(GI1)는 최고 깊이(제2 계층)를 갖는 2D 샘플들과 연관된 깊이 값들(D1)을 저장할 수 있다. 다음으로, 적어도 하나의 스터핑 3D 샘플이 도 7 또는 도 7b의 방법에 따라 추가될 수 있다. 마지막으로, 포인트 클라우드(PCF)의 3D 샘플들과 연관된 컬러 정보는 두 개의 텍스처 이미지(TI0 및 TI1)로서 인코딩될 수 있다. 제1 텍스처 이미지(TI1)는 제1 기하학적 이미지(GI0)와 관련된 컬러 정보를 인코딩하고, 제2 텍스처 이미지(TI1)는 제2 기하학적 이미지(GI1)와 관련된 컬러 정보를 인코딩한다. 제3 텍스처 이미지(TI2)는, 명시적 컬러 코딩 모드가 적어도 하나의 스터핑 3D 샘플에 할당되는 경우, 상기 적어도 하나의 스터핑 샘플과 연관된 컬러 정보를 인코딩할 수 있다.
도 1 내지 도 12에서, 다양한 방법들이 본 명세서에서 설명되고, 각각의 방법은 설명된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정한 순서가 요구되지 않으면, 특정한 단계들 및/또는 액션들의 순서 및/또는 사용이 수정되거나 결합될 수 있다.
일부 예시들은 블록도들 및 동작 흐름도들과 관련하여 설명된다. 각각의 블록은 회로 요소, 모듈, 또는 명시된 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령어들을 포함하는 코드의 일부를 나타낸다. 다른 구현들에서, 블록들에서 언급된 기능(들)은 표시된 순서와 다르게 발생할 수 있다는 것에 또한 유의해야 한다. 예를 들어, 수반되는 기능에 따라, 순서대로 보여지는 두 개의 블록들은 실제로는 실질적으로 동시에 실행될 수 있거나, 블록들은 때때로 역순으로 실행될 수 있다.
본 명세서에서 설명된 구현들 및 양태들은, 예를 들어, 방법 또는 프로세스, 장치, 컴퓨터 프로그램, 데이터 스트림, 비트스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의되더라도(예컨대, 방법으로서만 논의됨), 논의되는 특징들의 구현은 다른 형태들로(예컨대, 장치 또는 컴퓨터 프로그램) 또한 구현될 수 있다.
방법들은 예를 들어, 예컨대 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래머블 로직 디바이스를 포함하는, 일반적으로 프로세싱 디바이스들을 지칭하는 프로세서에서 구현될 수 있다. 프로세서들은 또한 통신 디바이스들을 포함한다.
추가적으로, 방법들은 프로세서에 의해 수행되는 명령어들에 의해 구현될 수 있고, 그러한 명령어들(및/또는 구현에 의해 생성된 데이터 값들)은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 컴퓨터 판독 가능 저장 매체는, 하나 이상의 컴퓨터 판독 가능 매체(들)에서 구현되고 컴퓨터에 의해 실행 가능한 컴퓨터 판독 가능 코드가 구현된 컴퓨터 판독 가능 프로그램 제품의 형태를 취할 수 있다. 본 명세서에서 사용되는 바와 같은 컴퓨터 판독 가능 저장 매체는 그 내부에 정보를 저장하는 고유 능력뿐만 아니라 그로부터 정보의 검색을 제공하는 고유 능력이 주어진 비일시적 저장 매체로 고려될 수 있다. 컴퓨터 판독 가능 저장 매체는, 예를 들어, 전기적, 자기적, 광학적, 전자기적, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 전술한 것의 임의의 적합한 조합일 수 있지만, 이에 제한되는 것은 아니다. 다음은, 본 실시예들이 적용될 수 있는 컴퓨터 판독 가능 저장 매체들의 더 상세한 예시들을 제공하는 한편, 본 기술분야의 통상의 기술자에 의해 용이하게 이해되는 바와 같이, 단지 예시적이고 완전한 목록이 아님을 이해해야 한다: 휴대용 컴퓨터 디스켓; 하드 디스크; 읽기-전용 메모리(ROM); 삭제 가능 프로그래머블 읽기-전용 메모리(EPROM 또는 플래시 메모리); 휴대용 콤팩트 디스크 읽기-전용 메모리(CD-ROM); 광학 저장 디바이스; 자기 저장 디바이스; 또는 전술한 것의 임의의 적합한 조합.
명령어들은 프로세서 판독 가능 매체 상에 유형적으로(tangibly) 구현되는 애플리케이션 프로그램을 형성할 수 있다.
명령어들은 예를 들어 하드웨어, 펌웨어, 소프트웨어 또는 조합일 수 있다. 명령어들은 예를 들어 운영 체제, 개별 애플리케이션 또는 이들의 조합 내에서 발견될 수 있다. 따라서, 프로세서는 예를 들어 프로세스를 수행하도록 구성되는 디바이스 및 프로세스를 수행하기 위한 명령어들을 갖는 프로세서 판독 가능 매체(저장 디바이스와 같은)를 포함하는 디바이스 양자로서 특화될 수 있다. 또한, 프로세서 판독 가능 매체는 명령어들에 더하여 또는 그 대신에 구현에 의해 생성된 데이터 값들을 저장할 수 있다.
장치는 예를 들어 적절한 하드웨어, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 이러한 장치의 예시들은 개인용 컴퓨터들, 랩톱들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 녹화 시스템들, 연결된 가정용 기기들, 헤드 마운티드 디스플레이 디바이스들(HMD, 시스루 안경), 프로젝터들(비머들), "케이브들(caves)"(다수의 디스플레이들을 포함하는 시스템), 서버들, 비디오 인코더들, 비디오 디코더들, 비디오 디코더로부터의 출력을 프로세싱하는 후처리기들(post-processors), 비디오 인코더에의 입력을 제공하는 전처리기들(pre-processors), 웹 서버들, 셋톱 박스들, 및 포인트 클라우드, 비디오 또는 이미지를 프로세싱하기 위한 임의의 다른 디바이스 또는 다른 통신 디바이스들을 포함한다. 명백한 것처럼, 장비는 이동식일 수 있고 심지어 이동식 차량에 설치될 수 있다.
컴퓨터 소프트웨어는 프로세서(6010)에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 비제한적인 예시로서, 실시예들은 또한 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(6020)는 기술적 환경에 적절한 임의의 타입일 수 있고, 비제한적인 예시들로서, 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체-기반 메모리 디바이스들, 고정 메모리, 및 삭제 가능 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(6010)는 기술적 환경에 적절한 임의의 타입일 수 있고, 비제한적인 예시들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티코어 아키텍처 기반 프로세서들 중 하나 이상을 포함할 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현들은 예를 들어 저장 또는 전송될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는 예를 들어 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 비트스트림을 운반하도록 포맷팅될 수 있다. 이러한 신호는, 예를 들어, 전자기파(예를 들어, 스펙트럼의 무선 주파수 부분을 사용하여)로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하는 것 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 운반하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 바와 같은 다양한 상이한 유선 또는 무선 링크를 통해 전송될 수 있다. 신호는 프로세서 판독 가능 매체 상에 저장될 수 있다.
본 명세서에서 사용되는 용어는 특정한 실시예들을 설명하기 위한 목적일 뿐이며, 제한하려는 의도는 아니다. 본 명세서에서 사용되는 바와 같이, 단수 형태들 "a", "an", 및 "the"는, 문맥이 명확하게 달리 지시하지 않는 한, 복수 형태들도 포함하도록 의도될 수 있다. 본 명세서에서 사용될 때, 용어들 "포함한다(includes/comprises)" 및/또는 "포함하는(including/comprising)"은 언급된, 예를 들어, 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 명시할 수 있지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다. 또한, 요소가 다른 요소에 "응답하는(responsive)" 또는 "연결된/접속된(connected)" 것으로 언급될 때, 요소는 다른 요소에 직접 응답하거나 연결될 수 있거나, 개재(intervening) 요소들이 존재할 수 있다. 대조적으로, 하나의 요소가 다른 요소에 "직접적으로 응답하는(directly responsive)" 또는 "직접적으로 연결된/접속된(directly connected)" 것으로 언급될 때는 개재 요소들이 존재하지 않는다.
심볼/용어 "/", "및/또는(and/or)", 및 "적어도 하나(at least one of)" 중 임의의 것의 사용은, 예를 들어, "A/B", "A 및/또는 B", "A 및 B 중 적어도 하나"의 사례들에서, 오직 첫번째로 열거된 옵션(A)만 선택, 또는 오직 두번째로 열거된 옵션(B)만 선택, 또는 양쪽 옵션들(A 및 B)의 선택을 포괄하도록 의도될 수 있다는 것이 이해되어야 한다. 추가적인 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 사례들에서, 이러한 어구는 오직 첫번째로 열거된 옵션(A)만 선택, 또는 오직 두번째로 열거된 옵션(B)만 선택, 또는 오직 세번째로 열거된 옵션(C)만 선택, 또는 오직 첫번째 및 두번째로 열거된 옵션들(A 및 B)만을 선택, 또는 오직 첫번째 및 세번째로 열거된 옵션들(A 및 C)만을 선택, 또는 오직 두번째 및 세번째로 열거된 옵션들(B 및 C)만을 선택, 또는 세 가지 옵션들 모두(A 및 B 및 C)의 선택을 포괄하도록 의도된다. 본 기술분야 및 관련 기술분야들의 통상의 기술자에게 명백한 바와 같이, 이것은 열거된 바와 같은 많은 항목들에 대해 확장될 수 있다.
본 출원에서 다양한 수치 값들, 예를 들어, minDepth 또는 표면 두께가 사용될 수 있다. 특정 값들은 예시적인 목적들에 대한 것일 수 있고, 설명된 양태들은 이러한 특정 값들에 제한되지 않는다.
제1, 제2 등의 용어들이 다양한 요소들을 설명하기 위해 본 명세서에서 사용될 수 있음에도 불구하고, 이러한 요소들은 이러한 용어들에 의해 제한되지 않는다는 것이 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 것으로부터 구별하기 위해서만 사용된다. 예를 들어, 본 출원의 교시(teachings)로부터 벗어나지 않고, 제1 요소는 제2 요소라고 지칭될 수 있고, 유사하게, 제2 요소는 제1 요소라고 지칭될 수 있다. 제1 요소와 제2 요소 사이에 어떠한 순서도 암시되지 않는다.
"일 실시예" 또는 "실시예" 또는 "하나의 구현" 또는 "구현"뿐만 아니라, 그의 다른 변형들에 대한 언급은, (실시예/구현과 관련하여 설명된) 특정 특징, 구조, 특성 등이 적어도 하나의 실시예/구현에 포함된다는 것을 전달하기 위해 빈번하게 사용된다. 따라서, 본 출원에 걸쳐 다양한 곳들에서 출현하는 문구 "일 실시예에서" 또는 "실시예에서" 또는 "하나의 구현에서" 또는 "구현에서"뿐만 아니라 임의의 다른 변형들의 출현들은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
유사하게, 본 명세서에서 "실시예/예시/구현에 따른" 또는 "실시예/예시/구현에서"뿐만 아니라 이들의 다른 변형들의 언급은 (실시예/예시/구현과 관련하여 설명되는) 특정 특징, 구조, 또는 특성이 적어도 하나의 실시예/예시/구현에 포함될 수 있다는 것을 전달하기 위해 빈번하게 사용된다. 따라서, 본 명세서의 다양한 곳들에서의 표현 "실시예/예시/구현에 따른" 또는 "실시예/예시/구현에서"의 출현들은 반드시 모두 동일한 실시예/예시/구현을 지칭하는 것은 아니며, 별개의 또는 대안적인 실시예/예시/구현은 다른 실시예들/예시들/구현과 반드시 상호 배타적인 것은 아니다.
청구범위에 나타나는 참조 번호들은 오직 예시적인 것이며, 청구항들의 범위를 제한하는 효과는 가지지 않을 것이다. 명시적으로 설명되지는 않았지만, 본 실시예들/예시들 및 변형들은 임의의 조합 또는 하위 조합으로 이용될 수 있다.
도면이 흐름도로서 제시되면, 그것은 또한 대응하는 장치의 블록도를 제공한다는 것이 이해되어야 한다. 유사하게, 도면이 블록도로서 제시되면, 그것은 또한 대응하는 방법/프로세스의 흐름도를 제공한다는 것이 이해되어야 한다.
일부 다이어그램들은 통신의 주요 방향을 보여주기 위해 통신 경로들 상에서 화살표들을 포함할지라도, 통신은 도시된 화살표들과 반대 방향으로 발생할 수 있음이 이해되어야 한다.
다양한 구현들이 디코딩을 수반한다. 본 출원에서 사용되는 바와 같이, "디코딩"은, 예를 들어, 디스플레이에 적합한 최종 출력을 생성하기 위해 수신된 포인트 클라우드 프레임 상에서 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 이미지-기반 디코더에 의해 통상적으로 수행되는 프로세스들 중 하나 이상을 포함한다.
추가적인 예시들로서, 일 실시예에서, "디코딩"은 엔트로피 디코딩만을 지칭할 수 있고, 다른 실시예에서, "디코딩"은 차동 디코딩만을 지칭할 수 있고, 다른 실시예에서, "디코딩"은 엔트로피 디코딩과 차동 디코딩의 조합을 지칭할 수 있다. 구문 "디코딩 프로세스"가 구체적으로 동작들의 부분 집합을 지칭하도록 의도되는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명확해질 것이고, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 여겨진다.
다양한 구현들이 인코딩을 수반한다. "디코딩"에 대한 상기 논의와 유사한 방식으로, 본 출원에서 사용되는 "인코딩"은, 예를 들어, 인코딩된 비트스트림을 생성하기 위해 입력 포인트 클라우드 프레임에 대해 수행되는 프로세스들의 전부 또는 일부를 포괄할 수 있다. 다양한 실시예들에서, 이러한 프로세스들은 이미지-기반 디코더에 의해 통상적으로 수행되는 프로세스들 중 하나 이상을 포함한다.
추가적인 예시들로서, 일 실시예에서, "인코딩"은 엔트로피 인코딩만을 지칭할 수 있고, 다른 실시예에서, "인코딩"은 차동 인코딩만을 지칭할 수 있고, 다른 실시예에서, "인코딩"은 엔트로피 인코딩과 차동 인코딩의 조합을 지칭할 수 있다. 구문 "인코딩 프로세스"가 구체적으로 동작들의 부분 집합을 지칭하도록 의도되는지 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되는지는 특정 설명들의 맥락에 기초하여 명확해질 것이고, 본 기술분야의 통상의 기술자에 의해 잘 이해될 것으로 여겨진다.
추가적으로, 본 출원은 정보의 다양한 조각들을 "결정하는" 것을 언급할 수 있다. 정보를 결정하는 것은 예를 들어 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원은 정보의 다양한 조각들에 "액세스하는" 것을 언급할 수 있다. 정보에 액세스하는 것은 예를 들어 정보를 수신하는 것, 정보를 검색하는 것(예를 들어, 메모리로부터), 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
추가적으로, 용어 "스터핑 3D 샘플을 추가하는 것"은 포인트 클라우드 프레임 내에 3D 샘플을 포함시키는 것을 의미한다. 예를 들어, 포인트 클라우드의 3D 샘플들이 표, 어레이의 요소들로서 저장될 경우, 스터핑 3D 샘플을 추가하는 것은 상기 스터핑 3D 샘플을 정의하는 정보를 상기 표(어레이)의 새로운 요소로 저장하는 것을 의미한다.
추가적으로, 용어 "스터핑"은 본 실시예들 중 적어도 하나에 따라 3D 샘플이 생성되는 것을 나타낸다.
추가적으로, 3D 샘플에 정보(예를 들어 컬러 정보 또는 컬러-코딩 모드)를 "할당하는" 이라는 용어는 상기 3D 샘플과 상기 정보를 연관시키는 것, 즉, 예를 들어, 표(어레이) 또는 임의의 다른 수단으로 연관시키는 것을 의미한다.
추가적으로, 본 출원은 정보의 다양한 조각들을 "수신하는 것"을 언급할 수 있다. 수신하는 것은, "액세스하는 것"과 같이, 광의의 용어로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 정보를 검색하는 것(예를 들어, 메모리로부터) 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 통상적으로, 예를 들어 정보를 저장하는 것, 정보를 프로세싱하는 것, 정보를 전송하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 삭제하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것과 같은 동작들 동안 하나의 방식 또는 다른 방식으로 수반된다.
또한, 본 명세서에서 사용될 때, 단어 "시그널링"은 다른 것들 중에서, 대응하는 디코더에게 무언가를 나타내는 것을 지칭한다. 예를 들어, 특정 실시예들에서, 인코더는 특정 컬러-코딩 모드를 상기 적어도 하나의 스터핑 3D 샘플에 시그널링하고, 상기 컬러-코딩 모드는 상기 적어도 하나의 스터핑 3D 샘플에 할당된 컬러 정보가 비트스트림으로 명시적으로 인코딩되는지 또는 상기 컬러 정보가 암시적이어서 보간되는지를 나타낸다. 이러한 방식에서, 일 실시예에서, 동일한 파라미터는 인코더 측과 디코더 측 모두에서 사용될 수 있다. 따라서, 예를 들어, 인코더는 디코더에 특정 파라미터를 전송하여(명시적 시그널링) 디코더가 동일한 특정 파라미터를 사용할 수 있도록 할 수 있다. 반대로, 디코더가 이미 다른 것들뿐만 아니라 특정 파라미터도 가지고 있다면, 시그널링은 단순히 디코더가 특정 파라미터를 알아채고 선택하는 것을 허용하도록 전송없이(암시적 시그널링) 사용될 수 있다. 임의의 실제 기능들의 전송을 회피함으로써, 다양한 실시예들에서 비트 절감(bit savings)이 실현된다. 시그널링이 다양한 방식들로 달성될 수 있다는 것이 이해될 것이다. 예를 들어, 다양한 실시예들에서, 대응하는 디코더에 정보를 시그널링하기 위해 하나 이상의 신택스 요소들, 플래그들 등이 사용된다. 앞선 내용은 단어 "신호"의 동사 형태와 관련되지만, 단어 "신호"는 본 명세서에서 명사로서 사용될 수도 있다.
다양한 구현들이 설명되었다. 그럼에도 불구하고, 다양한 수정들이 이루어질 수 있다는 것을 이해할 것이다. 예를 들어, 다양한 구현들의 요소들이 다른 구현들을 생성하기 위해 결합, 보충, 수정, 또는 제거될 수 있다. 추가적으로, 통상의 기술자는 다른 구조들 및 프로세스들이 개시된 구현들을 대체할 수 있으며, 결과적인 구현들이 적어도 실질적으로 동일한 방식(들)으로 실질적으로 동일한 기능(들)을 수행하여 개시된 구현들과 적어도 실질적으로 동일한 결과(들)를 달성할 것이라는 점을 이해할 것이다. 따라서, 이들 및 다른 구현들이 본 출원에 의해 고려된다.

Claims (32)

  1. 프로세서에 의해 수행되는 방법으로서,
    포인트 클라우드의 3D 샘플의 깊이 값을 저장하는 적어도 하나의 기하학적 이미지를 사용하여 상기 포인트 클라우드의 적어도 하나의 현재 3D 샘플을 재구성하는 단계,
    제1 깊이 차이를 상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 값과 상기 현재 3D 샘플의 깊이 값 사이의 최대 깊이 차이로 결정하는 단계,
    상기 현재 3D 샘플의 이미지 평면으로의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에서, 상기 현재 3D 샘플의 깊이 값과 제1 깊이 차이의 합까지, 상기 포인트 클라우드에 적어도 하나의 3D 샘플을 추가하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 제1 깊이 차이가 0 또는 1과 같을 경우, 상기 2D 위치에 3D 샘플이 추가되는, 방법.
  3. 제1항에 있어서, 적어도 하나의 3D 샘플은, 상기 포인트 클라우드의 상기 현재 3D 샘플의 이미지 평면으로의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에서, 상기 제1 깊이 차이 마이너스 1까지 추가되고, 다른 3D 샘플은 상기 제1 깊이 차이 마이너스 1과 같은 깊이 값을 갖는 이웃 3D 샘플의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에 추가되는, 방법.
  4. 제1항에 있어서, 상기 제1 깊이 차이는 제1 값과 동일하거나 제1 값보다 큰, 방법.
  5. 제4항에 있어서, 상기 제1 값은 1 또는 2인, 방법.
  6. 제4항에 있어서, 상기 제1 값은 비트스트림으로 전송되는, 방법.
  7. 제4항에 있어서, 상기 제1 값을 제공하기 위해 비트스트림을 디코딩하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서, 상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 값과 상기 현재 3D 샘플의 깊이 값 사이의 최대 깊이 차이를 결정할 때, 상기 포인트 클라우드의 현재 3D 샘플의 깊이 값과 이웃 3D 샘플의 깊이 값 사이의 차이는 제1 값 범위에 속하지 않는 경우 무시되는, 방법.
  9. 제1항에 있어서, 상기 포인트 클라우드의 몇몇 다른 3D 샘플들과 연관된 컬러 정보를 보간함으로써 적어도 하나의 추가된 3D 샘플과 연관된 컬러 정보를 획득하는 단계를 더 포함하는, 방법.
  10. 제1항에 있어서,
    - 적어도 하나의 추가된 3D 샘플에 컬러-코딩 모드를 할당하는 단계 - 상기 컬러-코딩 모드는 상기 적어도 하나의 추가된 3D 샘플과 연관된 컬러 정보가 비트스트림으로 인코딩되거나 상기 컬러 정보가 암시적인 것을 표시함 - ; 및
    - 상기 컬러-코딩 모드에 응답하여, 상기 적어도 하나의 추가된 3D 샘플과 연관된 상기 컬러 정보를 비트스트림으로 인코딩하는 단계
    를 더 포함하는, 방법.
  11. 제10항에 있어서, 상기 컬러-코딩 모드는 상기 추가된 3D 샘플과 연관된 상기 제1 깊이 차이에 따라 상기 추가된 3D 샘플에 할당되는, 방법.
  12. 제1항에 있어서,
    상기 적어도 하나의 추가된 3D 샘플에 컬러-코딩 모드를 할당하는 단계 - 상기 컬러-코딩 모드는 상기 적어도 하나의 추가된 3D 샘플과 연관된 컬러 정보가 비트스트림에서 인코딩되는지 또는 상기 컬러 정보가 암시적인지를 표시함 -를 더 포함하고,
    상기 컬러-코딩 모드는 상기 컬러 정보가 암시적이라고 표시한다는 결정에 응답하여, 상기 적어도 하나의 추가된 3D 샘플과 연관된 컬러 정보는 상기 포인트 클라우드의 적어도 하나의 3D 샘플과 연관된 컬러 정보로부터 유도되는, 방법.
  13. 프로세서에 의해 수행되는, 신호를 생성하는 방법으로서,
    포인트 클라우드의 현재 3D 샘플의 깊이와 상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 사이의 차이와 같은 적어도 하나의 제1 깊이 차이와 관련된 정보 및 상기 제1 깊이 차이의 최소값을 나타내는 정보를 포함하는 포인트 클라우드를 나타내는 코딩된 데이터를 포함하는 상기 신호를 생성하는 방법.
  14. 적어도 하나의 프로세서를 포함하는 디바이스로서,
    상기 적어도 하나의 프로세서는:
    포인트 클라우드의 3D 샘플의 깊이 값을 저장하는 적어도 하나의 기하학적 이미지를 사용하여 상기 포인트 클라우드의 적어도 하나의 현재 3D 샘플을 재구성하고,
    제1 깊이 차이를 상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 값과 상기 현재 3D 샘플의 깊이 값 사이의 최대 깊이 차이로 결정하고,
    상기 현재 3D 샘플의 이미지 평면으로의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에서, 상기 현재 3D 샘플의 깊이 값과 제1 깊이 차이의 합까지, 상기 포인트 클라우드에 적어도 하나의 3D 샘플을 추가하도록 구성되는, 디바이스.
  15. 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 매체로서,
    상기 명령어들은 하나 이상의 프로세서들로 하여금:
    포인트 클라우드의 3D 샘플의 깊이 값을 저장하는 적어도 하나의 기하학적 이미지를 사용하여 상기 포인트 클라우드의 적어도 하나의 현재 3D 샘플을 재구성하는 단계,
    제1 깊이 차이를 상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 값과 상기 현재 3D 샘플의 깊이 값 사이의 최대 깊이 차이로 결정하는 단계,
    상기 현재 3D 샘플의 이미지 평면으로의 프로젝션을 나타내는 2D 샘플과 동일한 2D 위치에서, 상기 현재 3D 샘플의 깊이 값과 제1 깊이 차이의 합까지, 상기 포인트 클라우드에 적어도 하나의 3D 샘플을 추가하는 단계를 수행하도록 야기하는, 비일시적 컴퓨터 판독 가능 매체.
  16. 제14항에 있어서, 상기 제1 깊이 차이는 제1 값과 동일하거나 제1 값보다 큰, 디바이스.
  17. 제16항에 있어서, 상기 제1 값은 비트스트림으로 시그널링되는, 디바이스.
  18. 제14항에 있어서,
    상기 현재 3D 샘플의 이웃 3D 샘플의 깊이 값과 상기 현재 3D 샘플의 깊이 값 사이의 최대 깊이 차이를 결정할 때, 상기 포인트 클라우드의 현재 3D 샘플의 깊이 값과 이웃 3D 샘플의 깊이 값 사이의 차이는 제1 값 범위에 속하지 않는 경우 무시되는, 디바이스.
  19. 제14항에 있어서,
    상기 적어도 하나의 추가된 3D 샘플에 컬러-코딩 모드를 할당하는 것을 포함하고, 상기 컬러-코딩 모드는 상기 적어도 하나의 추가된 3D 샘플과 연관된 컬러 정보가 비트스트림에서 인코딩되는지 또는 상기 컬러 정보가 암시적인지를 표시하며,
    상기 컬러-코딩 모드는 상기 컬러 정보가 암시적이라고 표시한다는 결정에 응답하여, 상기 적어도 하나의 추가된 3D 샘플과 연관된 컬러 정보는 상기 포인트 클라우드의 적어도 하나의 3D 샘플과 연관된 컬러 정보로부터 유도되는, 디바이스.
  20. 제15항에 있어서, 상기 제1 깊이 차이는 제1 값과 동일하거나 제1 값보다 큰, 비일시적 컴퓨터 판독 가능 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR1020207020567A 2018-01-19 2019-01-21 포인트 클라우드 프로세싱 KR102640992B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247005994A KR20240032147A (ko) 2018-01-19 2019-01-21 포인트 클라우드 프로세싱

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
EP18305048 2018-01-19
EP18305048.3 2018-01-19
EP18305420 2018-04-10
EP18305420.4 2018-04-10
EP18305928.6 2018-07-11
EP18305928 2018-07-11
PCT/IB2019/050492 WO2019142164A1 (en) 2018-01-19 2019-01-21 Processing a point cloud

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247005994A Division KR20240032147A (ko) 2018-01-19 2019-01-21 포인트 클라우드 프로세싱

Publications (2)

Publication Number Publication Date
KR20200110333A KR20200110333A (ko) 2020-09-23
KR102640992B1 true KR102640992B1 (ko) 2024-02-27

Family

ID=65496774

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207020567A KR102640992B1 (ko) 2018-01-19 2019-01-21 포인트 클라우드 프로세싱
KR1020247005994A KR20240032147A (ko) 2018-01-19 2019-01-21 포인트 클라우드 프로세싱

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020247005994A KR20240032147A (ko) 2018-01-19 2019-01-21 포인트 클라우드 프로세싱

Country Status (8)

Country Link
US (2) US11900639B2 (ko)
EP (1) EP3740938A1 (ko)
JP (2) JP7448760B2 (ko)
KR (2) KR102640992B1 (ko)
CN (1) CN111630571A (ko)
AU (2) AU2019208552B2 (ko)
MX (1) MX2020007660A (ko)
WO (1) WO2019142164A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112020026618A2 (pt) * 2018-06-26 2021-03-30 Huawei Technologies Co., Ltd. Projetos de sintaxe de alto nível para codificação de nuvem de pontos
CA3106158A1 (en) 2018-07-11 2020-01-16 Interdigital Vc Holdings, Inc. Method for encoding/decoding texture of points of a point cloud
US11625809B2 (en) 2018-07-11 2023-04-11 Interdigital Vc Holdings, Inc. Method and device for encoding/decoding the geometry of a point cloud
US11151748B2 (en) * 2018-07-13 2021-10-19 Electronics And Telecommunications Research Institute 3D point cloud data encoding/decoding method and apparatus
BR112021004798A2 (pt) * 2018-09-14 2021-06-08 Huawei Technologies Co., Ltd. suporte de atributo melhorado em codificação de nuvem de pontos
KR102537087B1 (ko) 2018-10-02 2023-05-26 후아웨이 테크놀러지 컴퍼니 리미티드 3d 보조 데이터를 사용한 모션 추정
US11095900B2 (en) * 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
US11158116B2 (en) * 2019-08-05 2021-10-26 Tencent America LLC Geometry model for point cloud coding
CN112333453A (zh) 2019-08-05 2021-02-05 腾讯美国有限责任公司 解码方法和装置以及计算机系统和存储介质
JP2022172413A (ja) * 2019-09-26 2022-11-16 シャープ株式会社 三次元表現変換装置、および、三次元表現逆変換装置
US11310528B2 (en) * 2020-03-30 2022-04-19 Tencent America LLC Methods of coding duplicate and isolated points for point cloud coding
US20230111994A1 (en) * 2020-04-03 2023-04-13 Lg Electronics Inc. Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US11501470B2 (en) 2020-05-27 2022-11-15 Microsoft Technology Licensing, Llc Geometric encoding of data
US20220394295A1 (en) * 2021-06-04 2022-12-08 Tencent America LLC Fast recolor for video based point cloud coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038933A (ja) * 2002-04-17 2004-02-05 Mitsubishi Electric Research Laboratories Inc 3dの点から3dの表面までの距離を2dの投影距離画像から求める方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823015B2 (en) * 2002-01-23 2004-11-23 International Business Machines Corporation Macroblock coding using luminance date in analyzing temporal redundancy of picture, biased by chrominance data
US7991238B2 (en) * 2004-04-30 2011-08-02 Neiversan Networks Co. Llc Adaptive compression of multi-level images
JP5093604B2 (ja) 2008-06-13 2012-12-12 国立大学法人岩手大学 フィレット面認識方法、フィレット面認識プログラム及び計測情報処理装置
CN103139577B (zh) 2011-11-23 2015-09-30 华为技术有限公司 一种深度图像滤波方法、获取深度图像滤波阈值的方法和装置
KR101874482B1 (ko) 2012-10-16 2018-07-05 삼성전자주식회사 깊이 영상으로부터 고해상도 3차원 영상을 복원하는 장치 및 방법
CN106471805A (zh) 2014-05-09 2017-03-01 诺基亚技术有限公司 用于使用调色板编码进行视频编码和解码的方法和技术设备
US9607388B2 (en) 2014-09-19 2017-03-28 Qualcomm Incorporated System and method of pose estimation
US9716889B2 (en) 2014-12-09 2017-07-25 Sony Corporation Intra and inter-color prediction for Bayer image coding
WO2016172385A1 (en) 2015-04-23 2016-10-27 Ostendo Technologies, Inc. Methods for full parallax compressed light field synthesis utilizing depth information
CN108369639B (zh) * 2015-12-11 2022-06-21 虞晶怡 使用多相机和深度相机阵列的基于图像的图像渲染方法和系统
US20170214943A1 (en) 2016-01-22 2017-07-27 Mitsubishi Electric Research Laboratories, Inc. Point Cloud Compression using Prediction and Shape-Adaptive Transforms
EP3249921A1 (en) * 2016-05-24 2017-11-29 Thomson Licensing Method, apparatus and stream for immersive video format
US10694210B2 (en) 2016-05-28 2020-06-23 Microsoft Technology Licensing, Llc Scalable point cloud compression with transform, and corresponding decompression
US20180053324A1 (en) * 2016-08-19 2018-02-22 Mitsubishi Electric Research Laboratories, Inc. Method for Predictive Coding of Point Cloud Geometries
WO2018125939A1 (en) 2016-12-30 2018-07-05 DeepMap Inc. Visual odometry and pairwise alignment for high definition map creation
CN107230225B (zh) 2017-04-25 2020-06-09 华为技术有限公司 三维重建的方法和装置
CN107590825B (zh) 2017-07-31 2020-10-02 东南大学 一种基于sfm的点云孔洞修补方法
EP3467784A1 (en) * 2017-10-06 2019-04-10 Thomson Licensing Method and device for up-sampling a point cloud
US10708627B2 (en) * 2019-03-04 2020-07-07 Intel Corporation Volumetric video compression with motion history

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038933A (ja) * 2002-04-17 2004-02-05 Mitsubishi Electric Research Laboratories Inc 3dの点から3dの表面までの距離を2dの投影距離画像から求める方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LASSERRE (TECHNICOLOR) S ET AL: "Technicolor's response to the CfP for Point Cloud Compression", 120. MPEG MEETING*
SONG I W ET AL: "Progressive compression and transmission of PointTexture images", JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION, ACADEMIC PRESS, INC, US, vol. 17, no. 5, 1 2006.10.01. 1부.*
YAN HUANG ET AL: "A Generic Scheme for Progressive Point Cloud Coding", IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 14, 2008.03.01. 1부.*

Also Published As

Publication number Publication date
KR20240032147A (ko) 2024-03-08
JP7448760B2 (ja) 2024-03-13
US11900639B2 (en) 2024-02-13
KR20200110333A (ko) 2020-09-23
MX2020007660A (es) 2020-09-18
AU2024203025A1 (en) 2024-05-23
JP2024026293A (ja) 2024-02-28
AU2019208552B2 (en) 2024-02-08
JP2021511563A (ja) 2021-05-06
EP3740938A1 (en) 2020-11-25
WO2019142164A1 (en) 2019-07-25
US20210056730A1 (en) 2021-02-25
CN111630571A (zh) 2020-09-04
US20240169593A1 (en) 2024-05-23
AU2019208552A1 (en) 2020-07-23

Similar Documents

Publication Publication Date Title
KR102640992B1 (ko) 포인트 클라우드 프로세싱
US11949889B2 (en) Processing a point cloud
US20240114143A1 (en) Encoding and decoding a point cloud using patches for in-between samples
KR20210138097A (ko) 포인트 클라우드의 누락 포인트 프로세싱
WO2021048050A1 (en) Processing a point cloud
KR20220034141A (ko) 포인트 클라우드 프로세싱
WO2021001193A1 (en) Processing a point cloud
EP3713238A1 (en) Processing a point cloud
CN113475093B (zh) 用于处理点云的方法和装置
US20220164992A1 (en) Processing a point cloud
US20220405975A1 (en) Transporting format of a coded point cloud
EP3713240A1 (en) Processing a point cloud
EP3713239A1 (en) Processing a point cloud

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant