KR20200096575A - 3차원 객체들을 나타내는 포인트 클라우드를 인코딩하기 위한 방법 및 장치 - Google Patents
3차원 객체들을 나타내는 포인트 클라우드를 인코딩하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20200096575A KR20200096575A KR1020207019056A KR20207019056A KR20200096575A KR 20200096575 A KR20200096575 A KR 20200096575A KR 1020207019056 A KR1020207019056 A KR 1020207019056A KR 20207019056 A KR20207019056 A KR 20207019056A KR 20200096575 A KR20200096575 A KR 20200096575A
- Authority
- KR
- South Korea
- Prior art keywords
- picture
- image
- projection
- scene
- solid angle
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 75
- 238000013507 mapping Methods 0.000 claims abstract description 40
- 239000007787 solid Substances 0.000 claims description 71
- 230000015654 memory Effects 0.000 claims description 25
- 238000012856 packing Methods 0.000 claims description 17
- 238000006467 substitution reaction Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 208000012886 Vertigo Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 231100000889 vertigo Toxicity 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/698—Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range 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)
- Computer Graphics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Processing Or Creating Images (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
Abstract
컬러화된 3D 장면은 하나 또는 두 개의 패치 아틀라스 이미지들로서 인코딩된다. 시점에 중심을 둔 절단된 구에 따라 정의되고 이 시점으로부터 가시적인, 공간의 일부에 속하는 3D 장면의 포인트들은 프로젝션 맵들 상에 반복적으로 프로젝팅된다. 각각의 반복에서, 프로젝팅된 부분은 3D 장면으로부터 제거되고, 프로젝팅될 장면의 다음 부분을 정의하는 절단된 구는 회전된다. 3D 장면 전체가 프로젝션 맵들의 세트 상에 프로젝팅되고 나면, 픽처들이 이 맵들 내에서 결정된다. 또한 패치라고도 불리는 픽처는 깊이가 일치하는 연결된 픽셀들의 클러스터이다. 패치들은 절단된 구의 회전에 대한 정보를 포함하는 데이터와 연관된 깊이 및 컬러 아틀라스에서 패킹되고, 따라서, 디코더는 프로젝션 매핑을 검색할 수 있고 역 프로젝션으로 진행할 수 있다.
Description
본 개시내용은 볼류메트릭(volumetric) 비디오 콘텐츠의 도메인에 관한 것이다. 본 개시내용은 예를 들어 모바일 디바이스들 또는 헤드-마운트 디스플레이들(Head-Mounted Displays)과 같은 최종 사용자 디바이스들(end-user devices)에서의 몰입형 렌더링(immersive rendering)을 위한, 볼류메트릭 콘텐츠를 나타내는 데이터의 포맷팅(formatting)의 맥락에서 또한 이해된다.
이 섹션은 이하에 설명되고/되거나 청구되는 본 개시내용의 다양한 양태들에 관한 것일 수 있는 기술의 다양한 양태들을 독자에게 소개하도록 의도된다. 이러한 논의는 본 발명의 다양한 양태들의 더 양호한 이해를 돕기 위한 배경 정보를 독자에게 제공하는 데 도움이 될 것으로 여겨진다. 따라서, 이 문장들은 선행 기술의 인정(admissions)으로서가 아닌, 이러한 견지에서 읽혀야 한다는 것이 이해되어야 한다.
360°플랫 비디오(flat video)라고도 불리는 몰입형 비디오는 사용자가 고정된 시점(point of view)에서 자신의 머리의 회전들을 통해 자신의 모든 주위를 볼 수 있도록 한다. 회전들은 오직 3자유도(3 Degrees of Freedom, 3DoF)의 경험만을 허용한다. 3DoF 비디오가 예를 들어 헤드-마운트 디스플레이 디바이스(HMD)를 사용하는 최초의 전방위 비디오(omnidirectional video) 경험에 대해 충분하더라도, 3DoF 비디오는 예를 들어 패럴랙스(parallax)를 경험함으로써 더 많은 자유를 기대하는 시청자가 빠르게 좌절하게 할 수 있다. 추가로, 3DoF는 또한 사용자가 자신의 머리를 회전시킬 뿐만 아니라 3개의 방향들에서 자신의 머리를 병진(translation)시키며, 그러한 병진들은 3DoF 비디오 경험들에서 재생되지 않기 때문에, 현기증을 유발할 수 있다.
볼류메트릭 비디오(또한 6 자유도(6 Degrees of Freedom, 6DoF) 비디오로도 알려짐)는 3DoF 비디오에 대한 대안이다. 6DoF 비디오를 시청할 때, 회전들에 부가하여, 사용자는 또한 시청된 콘텐츠 내부에서 자신의 머리를 병진시키고 패럴랙스를 경험할 수 있다. 이러한 비디오들은 몰입의 느낌 및 장면 깊이(scene depth)의 인지를 상당히 증가시킬 뿐만 아니라 머리의 병진들 동안 일관적인 시각적 피드백을 제공함으로써 현기증을 방지한다. 기본적으로, 연관된 콘텐츠는 관심있는 장면의 컬러와 깊이의 동시 기록을 허용하는 전용 센서들의 수단에 의해 생성된다. 사진측량법 기술들과 결합된 컬러 카메라들의 리그(rig)의 사용은 이러한 기록을 행하는 일반적인 방법이다.
3DoF 비디오들이 텍스처 이미지들(예를 들어, 위도/경도 프로젝션 또는 정방형 프로젝션(equirectangular projection)에 따라 인코딩된 구형(spherical) 이미지들)의 언매핑(un-mapping)으로부터 기인하는 이미지들의 시퀀스를 포함하는 반면, 6DoF 비디오 프레임들은 몇몇 시점들로부터 정보를 임베딩한다. 이들은 3차원 캡처(capture)로부터 기인하는 포인트 클라우드들의 시간적 시리즈로서 보여질 수 있다. 뷰잉 조건들에 따라 두 종류의 볼류메트릭 비디오들이 고려될 수 있다. 첫번째 것(즉, 완전(complete) 6DoF)은 비디오 콘텐츠 내부의 완전한 자유 네비게이션을 허용하는 반면 두번째 것(3DoF+로도 알려짐)은 사용자 뷰잉 공간을 한정된 볼륨으로 제한하여, 한정된 머리의 병진 및 패럴랙스 경험을 허용한다. 이 제2 컨텍스트는 착석한 관객 멤버의 자유 네비게이션과 수동적 뷰잉 조건들 사이의 자연스러운 절충이다.
압축 및 전송 표준들을 이용하는 표준 비디오 파이프라인(예컨대, MPEG)과 유사한, 비디오 프레임 레이트(즉, 초당 적어도 24개의 이미지들/포인트 클라우드들)에서 디코딩을 가능하게 하는 방식으로 프레임들의 시퀀스(즉, 비디오 콘텐츠) 내의 포인트 클라우드들을 인코딩하는 것은 하나의 도전이다. 본 원리들은 이러한 코딩 및 디코딩의 기술적 문제들을 해결하기 위한 방법들, 디바이스들 및 스트림(stream)을 제시한다.
본 명세서에서 "일 실시예(one embodiment)", "실시예(an embodiment)", "예시적인 실시예(an example embodiment)", "특정 실시예(a particular embodiment)"에 대한 언급들은, 기술된 실시예가 특정 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 그런 특정 특징, 구조, 또는 특성을 포함하는 것은 아닐 수 있음을 나타낸다. 더욱이, 그런 문구들은 반드시 같은 실시예를 언급하지는 않는다. 게다가, 특정 특징, 구조, 또는 특성이 한 실시예와 관련하여 기재되어 있을 경우, 명시적으로 기재되었는지와 관계없이, 이는 통상의 기술자가 알고 있는 범위 내에서, 다른 실시예들과 관련되어 이러한 특징, 구조, 또는 특성에 영향을 미칠 수 있음을 진술한다.
본 개시내용은 스트림에서 3차원 장면을 인코딩하는 방법에 관한 것이다. 방법은 다음을 포함한다:
- 복수의 프로젝션 맵들(projection maps)을 다음에 의해 생성하는 단계:
a. 시점에 중심을 둔 입체각에 따라 3차원 장면의 일부를 결정하는 단계 -3차원 장면의 이 일부는 시점으로부터 가시적임-;
b. 프로젝션 매핑에 따라 3차원 장면의 일부를 프로젝션 맵 상에 프로젝팅하고, 이 맵을 복수의 프로젝션 맵들에 추가하는 단계; 및
c. 장면으로부터 3차원 장면의 이 일부를 제거하고; 입체각을 회전시키고; 3차원 장면이 비어있을 때까지 a, b 및 c를 반복하는 단계;
- 복수의 프로젝션 맵들로부터 복수의 픽처들(pictures)을 생성하는 단계 -픽처는 프로젝션 맵의 연결된 픽셀들의 깊이 일치 클러스터(depth consistent cluster)임-;
- 이미지 내의 상기 복수의 픽처들 중 적어도 하나의 픽처를 패킹(packing)하고, 각각의 픽처에 대해 다음을 포함하는 데이터를 결정하는 단계:
- 스트림에서 이미지 및 연관된 데이터를 인코딩하는 단계.
본 개시내용은 또한, 스트림에서 3차원 장면을 인코딩하도록 적응된 디바이스에 관한 것이다. 디바이스는 프로세서와 연관된 메모리를 포함하고, 프로세서는 다음을 수행하도록 구성된다:
- 다음에 의해 복수의 프로젝션 맵들을 생성:
a. 시점에 중심을 둔 입체각에 따라 3차원 장면의 일부를 결정하는 단계 -상기 일부는 상기 시점으로부터 가시적임-;
b. 프로젝션 매핑에 따라, 상기 3차원 장면의 일부를 상기 복수의 프로젝션 맵들 중의 프로젝션 맵 상에 프로젝팅하는 단계; 및
c. 장면으로부터 3차원 장면의 상기 일부를 제거하고; 입체각을 회전시키고; 및 3차원 장면이 비어있을 때까지 a, b 및 c를 반복하는 단계;
- 상기 복수의 프로젝션 맵들로부터 복수의 픽처들을 생성 -픽처는 프로젝션 맵의 연결된 픽셀들의 깊이 일치 클러스터임-;
- 이미지 내의 상기 복수의 픽처들 중 적어도 하나의 픽처를 패킹하고, 상기 적어도 하나의 픽처 각각에 대해 다음을 포함하는 데이터를 결정:
- 상기 스트림에서 상기 이미지 및 상기 데이터를 인코딩.
특정한 특성에 따르면, 입체각을 회전시키는 것은 3차원 공간의 기준 프레임의 축 순서를 치환함으로써 수행된다. 입체각에 관한 정보는 이러한 치환의 식별자이다.
특정한 특성에 따르면, 프로젝션 매핑은 정방형 프로젝션 매핑이다.
특정한 특성에 따르면, 3D 장면의 포인트들은 컬러 속성을 포함하고, 두 개의 이미지들이 연관된 데이터와 함께 스트림에서 생성되고 인코딩된다. 하나의 이미지는 깊이 속성과 함께 적어도 하나의 픽처를 패킹하고, 다른 이미지는 컬러 속성을 갖는 적어도 하나의 픽처를 패킹한다.
특정한 특성에 따르면, 패킹된 픽처들과 연관된 데이터는 픽처가 이미지에서 패킹되는 동안 회전되었는지를 나타내는 정보를 포함한다.
본 개시내용은 또한 스트림으로부터 3차원 장면을 검색하는(retrieving) 방법에 관한 것이다. 방법은 다음을 포함한다:
- 이미지 내에 패킹된 적어도 하나의 픽처 및 상기 적어도 하나의 픽처의 각각에 대해 다음을 포함하는 데이터를 스트림으로부터 디코딩하는 단계:
- 상기 입체각에 관한 정보 및 3차원 공간의 일부의 설명을 사용하는 프로젝션 매핑에 따라 픽처들의 픽셀들의 역(inverse) 프로젝팅에 의해 3차원 장면을 검색하는 단계.
본 개시내용은 또한 스트림으로부터 3차원 장면을 검색하도록 적응된 디바이스에 관한 것이다. 디바이스는 프로세서와 연관된 메모리를 포함하고, 프로세서는 다음을 하도록 구성된다:
- 이미지 내에서 패킹된 적어도 하나의 픽처 및 상기 적어도 하나의 픽처의 각각에 대한 다음을 포함하는 데이터를 스트림으로부터 디코딩:
- 상기 입체각에 관한 정보 및 상기 3차원 공간의 일부의 설명을 사용하는 프로젝션 매핑에 따라 상기 적어도 하나의 픽처의 픽셀들의 역 프로젝팅에 의해 상기 3차원 장면을 검색.
특정한 특성에 따르면, 입체각에 관한 정보는 3차원 공간의 기준 프레임의 축 순서의 치환의 식별자이고, 프로젝션 매핑은 치환을 사용한다.
특정한 특성에 따르면, 프로젝션 매핑은 정방형 프로젝션 매핑이다.
특정한 특성에 따르면, 두 개의 이미지들이 상기 패킹된 픽처들과 연관된 데이터로 디코딩된다. 하나의 이미지는 깊이 속성을 갖는 적어도 하나의 픽처를 패킹하고, 다른 이미지는 컬러 속성을 갖는 적어도 하나의 픽처를 패킹한다.
특정한 특성에 따르면, 픽처들이 패킹되는 이미지들과 연관된 데이터는 픽처가 이미지에서 패킹되는 동안 회전되었는지의 정보 표시를 포함하고, 프로젝션 매핑은 이 정보들을 사용하여 상기 픽처의 픽셀들을 역 프로젝팅한다.
본 개시내용은 또한 적어도 3D 장면을 나타내는 데이터를 운반하는 스트림에 관한 것이다. 스트림은 적어도 하나의 이미지를 포함한다. 이미지들은 패치들(patches)이라고 불리는 패킹된 픽처들의 세트를 포함한다. 스트림은 또한 패치 데이터 항목 목록(patch data item list)을 포함하는 데이터를 포함한다. 패치 데이터 항목은 이미지의 픽처와 연관되고, 다음을 포함한다:
이하의 설명을 읽으면, 본 개시내용이 더 잘 이해될 것이고, 다른 구체적인 특징들 및 이점들이 드러날 것이며, 설명은 첨부된 도면들을 참조한다:
도 1은 본 원리들의 비제한적인 실시예에 따른, 포인트 클라우드 및 포인트 클라우드를 통해 구축된 표면을 도시한다.
도 2는 본 원리들의 비제한적인 실시예에 따른, 지구의 중심에 위치한 시점으로부터의 정방형 프로젝션 매핑에 따라 프로젝팅된 지구의 지도를 도시한다.
도 3은 시점에 중심을 둔 입체각에 따른 3D 장면의 일부의 제1 결정을 도시한다. 도 3의 예시에서, 3D 장면은 본 원리들의 비제한적 실시예에 따른 걷는 사람과 천장 조명을 포함한다.
도 4는 본 원리들의 비제한적인 실시예에 따른, 도 3의 시점에 중심을 둔 입체각에 따른 잔여(residual) 3D 장면의 일부의 제2 결정을 도시한다.
도 5는 본 원리들에 따른, 데이터 스트림에서 3D 장면을 인코딩하기 위한 방법의 프로젝션 단계의 세 개의 반복들을 도시한다.
도 6은 본 원리들의 비제한적인 실시예에 따른, 예를 들어 도 5에서 도시된 필링 프로세스에 따라 생성된 프로젝션 맵들의 목록 중의 프로젝션 맵으로부터, 패치들이라고 불리는 깊이가 일치하는 픽처들의 생성의 도식적인 예시를 도시한다.
도 7은 본 원리들의 비제한적인 실시예에 따른, 패치 상에 프로젝팅되고, 좌측에는 구면 프로젝션에 따라 그리고 우측에는 입방형 프로젝션에 따라 패치 데이터 항목에서 설명된 바와 같은 3D 장면의 포인트들을 포함하는 3D 공간의 영역을 도시한다.
도 8은 본 원리들의 비제한적인 실시예에 따른, 3D 장면의 깊이 정보를 인코딩하는 픽처들(또한 패치들이라고도 불림)을 포함하는 이미지를 도시한다.
도 9는 본 원리들의 비제한적인 실시예에 따른, 도 8의 3D 장면에 대해 결정된 패치 데이터 항목들의 목록의 컬러 패치들을 포함하는 이미지를 도시한다.
도 10은 본 원리들의 비제한적인 실시예에 따른, 도 12 및/또는 도 13과 관련하여 설명된 방법을 구현하도록 구성될 수 있는 디바이스의 예시적인 아키텍처를 도시한다.
도 11은 본 원리들의 비제한적인 실시예에 따른, 데이터가 패킷-기반 전송 프로토콜을 통해 전송될 때 스트림의 신택스의 일 실시예의 예를 도시한다.
도 12는 본 원리들의 비제한적인 실시예에 따른, 도 10에 관하여 설명되고 인코더가 되도록 구성되는 디바이스(100)에서, 스트림에서 포인트 클라우드를 인코딩하기 위한 방법을 도시한다.
도 13은 본 원리들의 비제한적인 실시예에 따른, 도 10에 관하여 설명되고 디코더가 되도록 구성되는 디바이스(100)에서, 스트림으로부터 3D 장면을 디코딩하기 위한 방법을 도시한다.
도 1은 본 원리들의 비제한적인 실시예에 따른, 포인트 클라우드 및 포인트 클라우드를 통해 구축된 표면을 도시한다.
도 2는 본 원리들의 비제한적인 실시예에 따른, 지구의 중심에 위치한 시점으로부터의 정방형 프로젝션 매핑에 따라 프로젝팅된 지구의 지도를 도시한다.
도 3은 시점에 중심을 둔 입체각에 따른 3D 장면의 일부의 제1 결정을 도시한다. 도 3의 예시에서, 3D 장면은 본 원리들의 비제한적 실시예에 따른 걷는 사람과 천장 조명을 포함한다.
도 4는 본 원리들의 비제한적인 실시예에 따른, 도 3의 시점에 중심을 둔 입체각에 따른 잔여(residual) 3D 장면의 일부의 제2 결정을 도시한다.
도 5는 본 원리들에 따른, 데이터 스트림에서 3D 장면을 인코딩하기 위한 방법의 프로젝션 단계의 세 개의 반복들을 도시한다.
도 6은 본 원리들의 비제한적인 실시예에 따른, 예를 들어 도 5에서 도시된 필링 프로세스에 따라 생성된 프로젝션 맵들의 목록 중의 프로젝션 맵으로부터, 패치들이라고 불리는 깊이가 일치하는 픽처들의 생성의 도식적인 예시를 도시한다.
도 7은 본 원리들의 비제한적인 실시예에 따른, 패치 상에 프로젝팅되고, 좌측에는 구면 프로젝션에 따라 그리고 우측에는 입방형 프로젝션에 따라 패치 데이터 항목에서 설명된 바와 같은 3D 장면의 포인트들을 포함하는 3D 공간의 영역을 도시한다.
도 8은 본 원리들의 비제한적인 실시예에 따른, 3D 장면의 깊이 정보를 인코딩하는 픽처들(또한 패치들이라고도 불림)을 포함하는 이미지를 도시한다.
도 9는 본 원리들의 비제한적인 실시예에 따른, 도 8의 3D 장면에 대해 결정된 패치 데이터 항목들의 목록의 컬러 패치들을 포함하는 이미지를 도시한다.
도 10은 본 원리들의 비제한적인 실시예에 따른, 도 12 및/또는 도 13과 관련하여 설명된 방법을 구현하도록 구성될 수 있는 디바이스의 예시적인 아키텍처를 도시한다.
도 11은 본 원리들의 비제한적인 실시예에 따른, 데이터가 패킷-기반 전송 프로토콜을 통해 전송될 때 스트림의 신택스의 일 실시예의 예를 도시한다.
도 12는 본 원리들의 비제한적인 실시예에 따른, 도 10에 관하여 설명되고 인코더가 되도록 구성되는 디바이스(100)에서, 스트림에서 포인트 클라우드를 인코딩하기 위한 방법을 도시한다.
도 13은 본 원리들의 비제한적인 실시예에 따른, 도 10에 관하여 설명되고 디코더가 되도록 구성되는 디바이스(100)에서, 스트림으로부터 3D 장면을 디코딩하기 위한 방법을 도시한다.
이제, 도면들을 참조하여 본 주제가 설명되며, 여기서 유사한 참조 부호들은 전반적으로 유사한 요소들을 참조하도록 사용된다. 이하의 설명에서, 설명의 목적들로, 본 주제에 대한 완전한 이해를 제공하기 위해 수많은 구체적인 상세들이 제시된다. 그러나, 본 주제의 실시예들은 이러한 구체적인 상세들 없이도 실시될 수 있음이 명백할 수 있다.
본 설명은 본 개시내용의 원리들을 예시한다. 따라서, 본 기술분야의 통상의 기술자는 비록 본 명세서에 명시적으로 설명되거나 도시되지 않았지만, 본 개시내용의 원리들을 구현하는 다양한 방식들을 만들어낼 수 있을 것이라는 점이 이해될 것이다.
본 원리들은 스트림에서 3차원(3D) 장면을 인코딩하는 방법의 특정한 실시예를 참조하여 설명될 것이다. 3D 장면의 포인트들은 프로젝션 맵들 상에 반복적으로 프로젝팅된다. 프로젝팅된 포인트들의 깊이 및 임의적으로(optionally) 컬러는 프로젝션 맵들의 픽셀들에서 인코딩된다. 프로세스의 각각의 반복에서 3D 장면의 일부만이 프로젝팅된다. 프로젝팅될 부분은 시점에 중심을 둔 입체각에 따라 결정된다. 입체각에 의해 정의되고 시점으로부터 가시적인 3D 공간의 부분에 속하는 3D 장면의 포인트들은 프로젝션 매핑 함수에 따라 프로젝션 맵 상에 프로젝팅된다. 프로젝팅될 3D 장면의 부분의 이러한 선택은 프로젝션 맵 상의 3D 장면의 이미지의 왜곡을 제한하는 이점을 가지고, 본 원리들의 패킹 단계에서 콤팩트(compact)한 픽처들의 생성을 허용한다.
도 1은 포인트 클라우드(10) 및 포인트 클라우드에 걸쳐 구축된 표면(11)을 도시한다. 포인트 클라우드(10)는 객체 또는 객체들의 그룹의 외부 표면 또는 외부 모양을 나타내는 포인트들의 큰 컬렉션(collection)에 대응한다. 포인트 클라우드는 벡터 기반 구조로서 간주될 수 있고, 여기서 각각의 포인트는 자신의 좌표들을 갖는다. 예를 들어, 벡터는 원점을 중심으로 한 기준 프레임에서의 3차원 좌표들 XYZ에 의해 정의될 수 있다. 다른 예시에서, 벡터들은 방사상 좌표들 (θ,,d)에 의해 정의되고, 여기서 (θ,)는 시점에 관한 3차원 방향을 나타내고 d는 시점과 포인트 사이의 거리(또한 '깊이'라고도 불림)를 나타낸다. 포인트는 또한 임의의 컬러 공간, 예를 들어 RGB(빨강, 초록 및 파랑) 또는 YUV(Y는 루마(luma) 컴포넌트이고 UV는 두 개의 색차(chrominance) 컴포넌트들임)에서 표현될 수 있는 컬러 컴포넌트를 가질 수 있다. 표면(11)은 포인트 클라우드로부터 정의될 수 있다. 표면은 여러 방법들에 따라 획득될 수 있다. 예를 들어, 포인트들은 "스플래팅(splatted)"될 수 있다. 이 스플래팅들은 그 컴포넌트들(예컨대, 컬러)이 통상의(예컨대, 가우시안(Gaussian)) 방식에서 직경 방향으로 변화하는 디스크들로서 표현된다. 플랫 디스크들(flat disks)은 평활화된 표면을 형성한다. 변형에서, 삼각 측량이 포인트들에 대해 수행될 수 있고, 표면은 삼각 측량에 기초하여 평활화된 메쉬(mesh)에 의해 정의될 수 있다. 표면(11)은 그래픽 프로세서에 의해 계산될 수 있다. 이것은 시점으로부터 포인트들의 가시성을 결정하는 데 사용된다. 도 1의 예시에서, 예를 들어, 포인트 클라우드 표현(10) 상에서 가시적인 턱 뒤의 목의 일부 포인트들은 표면 표현(11) 상에서 가시적이지 않은데, 그 이유는 표면이 포인트들 사이의 공간 간격을 채우기 때문이다. 표면 표현을 이용하면, 포인트 클라우드의 포인트가 시점으로부터 가시적인지 여부를 결정할 수 있다.
모델(11)은 3D 메쉬 표현일 수 있고, 포인트 클라우드(10)의 포인트들은 메쉬의 정점들(vertices)일 수 있다. 포인트들(10)은 또한 메쉬의 면들의 표면 상에 퍼져있는 포인트들일 수 있다. 모델(11)은 또한 클라우드(10)의 포인트의 스플래팅된 버전으로서 표현될 수 있고; 모델(11)의 표면은 포인트 클라우드(10)의 포인트를 스플래팅함으로써 생성된다. 모델(11)은 복셀들(voxels) 또는 스플라인들(splines)과 같은 많은 상이한 표현들에 의해 표현될 수 있다. 도 1은 3D 객체의 표면 표현으로부터 포인트 클라우드를 정의하는 것이 항상 가능하다는 사실과, 역으로, 포인트 클라우드로부터 3D 객체의 표면 표현을 생성하는 것이 항상 가능하다는 사실을 도시한다. 본 명세서에서 사용되는 바와 같이, 프로젝션 맵 상에 3D 객체의 포인트들을 프로젝팅하는 것(3D 장면의 확장(extension) 포인트들에 의해)은 프로젝션 맵 상에 이 3D 객체의 임의의 표현을 프로젝팅하는 것과 동등하다.
도 2는 지구의 중심에 위치한 시점으로부터의 정방형 프로젝션 매핑에 따라 프로젝팅된 지구의 지도를 도시한다. 이러한 프로젝션은 특히 극(pole) 영역들 주위의 높은 왜곡들을 수반할 수 있다. 3D 장면의 포인트들이 이 영역들에, 일반적으로는 시점의 위 또는 아래 부분들에 프로젝팅되는 경우, 이 포인트들의 대응하는 이미지는 이 포인트들이 적도 부분에서 프로젝팅되었을 경우보다 크다. 결과적으로, 도 2의 타원 확산에 의해 예시된 바와 같이, 극 영역들에서 프로젝팅된 3D 객체들을 인코딩하는 것은 적도 영역에서 동일한 3D 객체들을 인코딩하는 것보다 더 많은 픽셀들을 요구한다. 각각의 타원은 동일한 구의 프로젝션에 대응한다. 프로젝션의 모양은 그 구가 프로젝팅되는 프로젝션 맵의 영역에 따라 달라진다. 이 영역은 3D 공간 내의 3D 객체의 위치 및 프로젝션에 사용되는 프로젝션 매핑에 의존한다. 도 2는 극 영역들에서 프로젝팅되는 경우의 구의 프로젝션이 적도 영역에서의 동일한 구의 프로젝션보다 인코딩에 더 많은 픽셀들을 요구한다는 것을 보여준다. 이 현상은 도 2에서 도시되는 정방형 프로젝션 매핑과 같은 구면 프로젝션 매핑에 대해 특히 사실이다. 이 현상은 시점에 중심을 둔 다른 프로젝션 매핑들, 예를 들어, 입방형 매핑 또는 피라미드 매핑에 대해 보다 적은 범위로 존재한다.
본 원리들에 따르면, 3D 공간의 일부는 3D 공간의 상기 일부에 속하는 포인트들이 프로젝션 매핑에 따라 프로젝션 맵의 낮은 왜곡 영역들 상에 프로젝팅되는 방식으로 결정된다(예를 들어, 정방형 프로젝션 매핑 또는 입방형 프로젝션 매핑(cubical projection mapping)에 대해, 적도 영역에 프로젝팅된 포인트들). 이러한 선택은 프로젝팅된 이미지의 왜곡을 최소화하고 프로젝팅된 포인트들을 인코딩하는 데 요구되는 픽셀들의 개수를 최소화하는 장점을 갖는다.
도 3은 시점에 중심을 둔 입체각에 따른 3D 장면의 일부의 제1 결정을 도시한다. 도 3의 예시에서, 3D 장면은 걷는 사람(33) 및 천장 조명(34)을 포함한다. 시점(30)은 3D 장면의 인코딩을 위해 결정된다. 몰입형 렌더링 디바이스가 할 수 있는 몰입형 비디오 렌더링의 타입(3DoF, 3DoF+ 또는 6DoF)에 따라 대응하는 시점이 3D 장면의 디코딩을 위해 사용될 것이다. 입체각(31)이 본 원리들을 따르는 3D 공간의 일부를 결정하기 위해 획득된다. 예시를 위해 그리고 명료성을 위해, 이 입체각(31)은 도 3 내지 도 5에서, 또한 절단된 구(truncated sphere)라고도 불리는 구형 링(spherical ring)(32)으로 표현된다. 선택된 프로젝션 매핑에 따라 표면(32)이 결정된다. 도 3의 예시에서, 선택된 정방형 프로젝션 매핑에 따르면, 표면(32)은 구형 링이다. 시점(30)에 중심을 둔 입체각(31)에 따라 결정된 3D 공간의 일부에 속하는 3D 장면의 일부는 프로젝션 맵을 생성하기 위해 프로젝션 표면(32) 상에 프로젝팅되도록 선택된다. 도 3의 예시에서, 객체(33)(즉, 걷는 사람)는 3D 장면의 선택된 일부에 속하지만; 천장 조명(34)은 그렇지 않다. 시점(30)으로부터 가시적인 3D 장면의 선택된 일부의 포인트들만이 프로젝션 맵을 생성하기 위해 프로젝팅된다. 다음으로, 프로젝팅된 포인트들은, 상이한 프로젝션 맵 상에 두번째로 프로젝팅되지 않기 위해, 그리고 그 포인트들이 제거되기 전에 시점(30)으로부터 가시적이지 않았던 포인트들을 가시적으로 만들기 위해 3D 장면으로부터 제거된다. 도 3의 예시에서, 걷는 사람(33)의 앞부분은 3D 장면으로부터 제거된다. 그러면, 그 사람의 뒷부분의 포인트들은 시점(30)으로부터 가시적이고, 다른 프로젝션 맵 상에 프로젝팅될 수 있다. 이러한 반복 동안 생성된 프로젝션 맵은 프로젝션 맵들의 세트에 추가된다.
도 4는 도 3의 시점에 중심을 둔 입체각에 따른 잔여 3D 장면의 일부의 제2 결정을 도시한다. 잔여 3D 장면은 본 원리들의 이전 반복에서 프로젝팅되지 않은 원래의 3D 장면의 포인트들을 포함한다. 도 4의 예시에서, 잔여 3D 장면은 도 3의 천장 조명(34) 및 걷는 사람(33)의 잔여 부분(43)을 포함한다. 본 원리들에 따르면, 시점(30)에 중심을 둔 입체각(41)은 이전 반복의 입체각(31)의 회전으로서 결정된다. 입체각(41)은 입체각(31)과 상이한 값일 수 있거나(즉, 더 넓거나 더 좁음) 동일한 값일 수 있다. 입체각(41)은 포인트들을 포함하는, 아직 프로젝팅되지 않은 잔여 3D 장면의 일부를 포함하는 3D 공간의 새로운 일부를 정의하기 위해 결정된다. 도 4의 예시에서, 입체각(41)은 프로젝팅될 천장 조명(34)을 선택하기 위한 방식으로 입체각(31)을 회전시킴으로써 획득된다. 변형에서, 반복의 입체각(41)은 이전 반복의 시점과 상이한 시점에 중심을 둔다.
본 원리들의 이러한 반복에서, 시점에 중심을 둔 회전된 입체각에 따라 정의된 3D 공간의 일부에 속하고 이 시점으로부터 가시적인 3D 장면의 포인트들은 프로젝션 매핑에 따라 프로젝션 맵 상에 프로젝팅된다. 생성된 프로젝션 맵은 프로젝션 맵들의 세트에 추가된다. 프로젝션 맵들의 세트(또한 목록이라고도 불림)에 추가된 각각의 프로젝션 맵은 프로젝션 맵을 생성하는 데 사용된 입체각에 관한 정보와 연관된다. 입체각은 3D 공간의 기준 프레임에 따라, 예를 들어 정규화된 3D 벡터 및 도(degree) 단위 또는 라디안 단위의 각도 값과 함께 설명된다. 이러한 정보는 본 원리들의 추가 단계에서 이 프로젝션 맵으로부터 클러스터링된 픽처들의 패치 데이터 항목들에 통합될 것이다.
도 5는 본 원리들에 따른, 데이터 스트림에서 3D 장면을 인코딩하기 위한 방법의 프로젝션 단계의 세 개의 반복들을 도시한다. 객체(501)는 원점을 중심으로 하는 직교 기준 프레임에 의해 정의되는 3D 공간 내에 위치된다. 시점은 기준 프레임의 원점에 설정된다. 본 원리에 따르면, 입체각(511)이 결정된다. 도 5의 예시에서, 제1 입체각은 (X, Z) 평면에서(즉, Y축 주위에서) 예를 들어 60°(60도) 또는 75°(75도)의 값으로 설정된다. 입체각은 임의의 값을 가질 수 없다. 입체각들을 60°보다 큰 값으로 설정하는 것은 도 5의 예시의 세 개의 반복들 중 두 개에서 3D 공간의 전체를 포괄하는 것을 허용한다. 예를 들어, 획득되거나 선택된 프로젝션 매핑은 정방형 프로젝션 매핑(equirectangular projection mapping, ERP)이다. 본 원리들에 따르면, 시점으로부터 가시적인 3D 장면의 포인트들은 획득되거나 선택된 프로젝션 매핑에 따라 프레임(521) 상에 프로젝팅된다. 도 5의 예시에서, 객체(501)의 가시적인 포인트들은 프레임(521)의 영역(531) 상에 프로젝팅될 것이다. 입체각(511)이 3D 공간의 고려되는 부분을 제한함에 따라, 오직 프레임(521)의 백색 부분만이 프로젝팅된 포인트들을 저장하기 위해 이용 가능하고, 영역(531)은 이용 가능한 부분의 밖에 있다. 따라서, 이 제1 반복은 빈(empty) 프로젝션 맵을 생성한다. 비어있기 때문에, 이 제1 프로젝션 맵은 폐기될 수 있다. 제2 단계에서, 입체각은 입체각(512)이 되도록 회전된다. 도 5에 도시된 변형에 따르면, 입체각은 회전되지 않지만 기준 프레임의 축들이 한 차례 치환되어 입체각에 대한 회전을 초래한다. 본 원리들의 새로운 반복이 수행되어, 새로운 프로젝션 맵(522)을 생성한다. 프로젝션 맵(522)은 이 반복에 사용되는 입체각에 관한 정보와 연관된다. 도 5에 의해 도시된 변형에서, 이러한 정보는 축들의 치환의 식별자로 감소될 수 있다. 예를 들어, 제1 반복은 제1 식별자 0과 연관될 수 있고, 제2 반복은 1과, 제3 반복은 2와 연관될 수 있다. 이러한 세 개의 반복들이 루프됨에 따라, 동일한 세 개의 입체각들이 반복적으로 사용된다. 입체각(512)에 의해 정의된 3D 공간의 일부에 속하고 시점으로부터 가시적인, 객체(501)의 포인트들은 영역(532)으로서 상기 프로젝션 맵(522) 상에 프로젝팅된다. 영역(532)은 ERP 매핑으로 인한 왜곡된 직사각형이다. 프로젝션 맵(522)은 픽처들을 결정하기 위한 본 원리들의 다음 단계에서 사용될 프로젝션 맵들의 목록에 추가되고, 픽처는 프로젝션 맵의 연결된 픽셀들의 깊이 일치 클러스터다. 프로젝션 맵(522) 상에 프로젝팅된 객체(501)의 포인트들은 3D 장면으로부터 제거되고, 잔여 객체(502)는 잔여 3D 장면의 일부로서 설정된다. 제3 단계에서, 입체각(512)은 도 5에서 예시된 변형의 원리들에 따른 축 치환 수단에 의해 회전된다. 다음으로 제3 반복이 수행된다. 3D 장면의 잔여 포인트들(도 5의 예시에서 객체(502)의 잔여 포인트들로 이루어짐)은, 그들이 입체각(513)에 의해 정의되는 공간에 속하고 시점으로부터 가시적이므로, 프로젝션 맵(523) 상에 프로젝팅된다. 이러한 프로젝션은 영역(533)을 야기한다. 프로젝션 맵(523)은, 비어있지 않기 때문에, 본 원리들의 다음 단계의 입력으로서 사용되는 프로젝션 맵들의 목록에 추가된다.
도 6은, 예를 들어, 도 5에서 예시된 필링(peeling) 프로세스에 따라 생성된 프로젝션 맵들의 목록의 프로젝션 맵(61)으로부터, 패치들(patches)이라고 불리는 깊이가 일치하는 픽처들의 생성의 도식적인 예시를 보여준다. 프로젝션 맵(61)은 제1 객체(또는 제1 객체의 일부)에 대응하는 영역(65)의 픽셀들, 제2 객체의 가시적인 포인트들에 관한 깊이 정보를 저장하는 영역(66)의 픽셀들; 및 예를 들어 제2 객체의 분리된 부분일 수 있는 제3 객체의 가시적인 포인트들에 관한 깊이 정보를 저장하는 영역(67)의 픽셀들을 포함한다. 깊이 정보에 따라 프로젝션 맵(61)의 인접한 픽셀들을 클러스터링하기 위해 픽셀 클러스터링 동작이 수행된다. 픽셀들(65)은 직사각형(62)에 의해 획정(delimit)될 수 있는 인접 픽셀들의 클러스터를 구성한다. 픽셀들(66 및 67)은 프로젝션 맵(61)의 인접 영역을 구성한다. 하지만, 영역(66) 및 영역(67)의 픽셀들은 그들이 저장하는 깊이 값에 대해 상이하다. 픽셀들(66)은 픽셀들(67)의 깊이 값보다 훨씬 작은 깊이 값을 갖는다. 인코딩 방법의 본 원리들에 따르면, 클러스터들은 그들의 연결 및 그들의 깊이 값에 따라 결정된다. 픽셀들(66)의 깊이와 픽셀들(67)의 깊이 사이에 갭이 있기 때문에, 이들은 개별 클러스터들로 그룹화된다. 이러한 두 개의 클러스터들은 직사각형들(63 및 64)로서 표현될 수 있다. 이 두 영역들 사이의 높은 주파수 영역은 클러스터링 동작에 의해 흡수될 수 있고, 직사각형들(63 및 64)은 중첩될 수 있다. 클러스터링 동작에 의해 정의된 직사각형 영역들을 나타내는 데이터는 패치 데이터 항목들로서 메모리에 저장된다. 패치 데이터 항목은 현재 프로젝션 맵과 연관된 입체각에 관한 정보를 포함한다. 예를 들어, 직사각형(64)에 대한 패치 데이터는 프로젝션의 중심에 따른 제3 객체의 가시적인 포인트들의 각도 범위([θmin, θmax], [min, max])를 포함하고; θmin은 프로젝션의 중심에 따른 패치의 포인트들의 방사상 좌표들의 제일 왼쪽 값이고, θmax는 제일 오른쪽 값이고, min은 제일 아래쪽 값이고, max는 제일 위쪽 값이다. 픽셀 영역의 깊이 범위 [ρmin, ρmax] 또한 패치 데이터에 등록되고, 여기서 ρmin은 프로젝션의 중심(40)에 가장 가까운 포인트의 깊이이고, 프로젝션의 중심에서 가장 먼 포인트의 깊이이다. 패치 데이터 항목들의 이 컴포넌트는 깊이 인코딩을 위해 예약된 바이트(byte) 범위의 다이내믹(dynamics)을 증가시키기 위해 인코딩 단계에서 유용하다. 변형에서, 클러스터링 동작은 타원체 영역들을 제공하고, 패치 데이터 항목들은 타원체 영역을 나타내는 데이터를 포함한다. 패치 데이터 항목들은 패치 데이터 항목들의 목록에 추가된다. 각도들에 관하여 패치가 점유하는 영역에 대한 정보를 저장하는 것의 장점은 이 정보가 프로젝션 맵의 해상도 및 패치가 패킹될 이미지의 해상도와 독립적이라는 점이다.
도 7은 좌측에서는 구면 프로젝션에 따라, 그리고 우측에서는 입방형 프로젝션에 따라, 패치 데이터 항목에서 설명된 바와 같이 패치 상에 프로젝팅된 3D 장면의 포인트들을 포함하는 3D 공간의 영역을 도시한다. 도 7의 좌측에서, 구면 프로젝션 방법에 따르면, 각각의 패치 데이터 항목은 프로젝션의 중심(71)에 중심을 둔 동심구들의 두 부분들에 의해 획정된 3D 공간(70)의 영역에 대응하는 데이터를 포함한다. 이 영역은 다음에 의해 특징지어진다: 첫째로, [-π; π]라디안에 속하는 [θmin, θmax] 및 [-π/2; π/2]라디안에 속하는 [min, max]에 의해 정의되는 각도 범위(72) 및, 둘째로, 깊이 범위(73) [ρmin, ρmax]. 동일한 설명이 도 7의 우측에 있는 입방형 프로젝션 방법에 대해 사용된다. 공간(70)의 영역은 프로젝션의 중심(71)을 가리키는 절단된 사면체 피라미드에 의해 획정되고 각도 범위(72) 및 깊이 범위(73)에 의해 특징지어진다. 이러한 프로젝션 방법들(예컨대, 정방형 프로젝션)은 오직 각도-의존적이다. 프로젝션의 중심으로부터 멀리 떨어진 큰 객체는 프로젝션 맵에서 작고 가까운 객체와 동일한 영역을 취할 수 있다. 본 원리들에 따르면, 객체의 중요도에 따라, 프로젝팅된 객체의 고유의 사이즈에 따르지 않고, 패치 사이즈를 프로젝션의 중심으로부터 적응시키는 것이 매우 가능하다. 이러한 특징은 3DoF+ 컨텍스트와 유사하다.
도 8은 3D 장면의 깊이 정보를 인코딩하는 픽처들(또한 패치들이라고도 불림)을 포함하는 이미지를 도시한다. 이 예시에서, 필링 동작이 3D 장면의 포인트들에 대해 수행되었다. 픽처들의 목록 및 연관된 패치 데이터 항목들은 본 원리들에 따라 결정되었다. 패치들은 인코딩의 품질을 정의하는 "아틀라스 해상도(Atlas Resolution)"라고 불리는 해상도를 갖는다. 예를 들어, 도(degree)당 18 내지 25픽셀의 아틀라스 해상도는 다수의 패치들(예컨대, 500 또는 600개의 패치들)을 포함하는 2048 x 2048픽셀 픽처에서 복합 장면(complex scene)의 인코딩을 허용한다. 이러한 해상도가 낮을수록, 최종 품질이 악화된다. 이미지의 그리드 상의 픽처 패치들의 양호한 정렬을 보장하기 위해, 프로젝션 맵 해상도는 아틀라스 해상도의 통합 분배기로서 선택될 수 있다.
패치들의 패킹 동작이 수행된다. 예를 들어 Jukka Jylanki의 "A Thousand Ways to Pack the Bin"에서 설명되는 알고리즘 또는 꽤 낮은 계산 비용에서 양호한 채움비(filling ratio)를 제공하는 "맥스렉츠(MaxRects)" 알고리즘(즉, 단일 빈 - 가장 짧은 변 우선 배치(Best Short Side First configuration))과 같이, 직사각형 셀들을 직사각형 빈(bin)(즉, 생성될 이미지)으로 패킹하는 NP-완전(NP-complete) 문제를 해결하기 위한 수많은 휴리스틱(heuristic) 알고리즘들이 존재한다. 패킹 동작의 끝에서, 이미지 내의 패치의 위치 (x, y)(예컨대, 하부 좌측 코너 포지션) 및, 패킹 알고리즘에 따라, 패치가 회전되었는지를 나타내는 부울(boolean) 값이 패치 데이터 항목 목록의 각각의 패치에 할당된다. 패킹은 디코딩 스테이지를 개선하기 위해 비디오 인코더의 코딩 유닛들(Coding Units)에 패치들을 정렬함으로써 최적화될 수 있다. 도 8은 360°3D 장면에 대해 결정된 패치 데이터 항목들의 목록의 패킹된 패치들인 픽처를 도시한다. 도 8의 이미지의 픽셀들은 깊이 정보(즉, 포인트 클라우드의 포인트들과 프로젝션의 중심 사이의 거리)를 포함한다.
도 9는 본 원리들의 비제한적인 실시예에 따른, 도 8의 3D 장면에 대해 결정된 패치 데이터 항목들의 목록의 컬러 패치들을 포함하는 이미지를 도시한다. 일 실시예에서, 깊이 및 컬러 정보는 고유 픽처의 픽셀들에 인코딩된다. 다른 실시예에서, 깊이 및 컬러 정보는 두 개의 픽처들에 인코딩된다.
본 원리들에 따르면, 3D 장면들의 시퀀스의 3D 장면은 패치 데이터 항목들의 목록을 나타내는 데이터와 연관된 패킹된 패치들을 포함하는 이미지로서 인코딩된다. 데이터와 연관된 이미지로서의 3D 장면의 인코딩은 표준 압축 및 전송 비디오 파이프라인들과 유사할 수 있다는 장점을 갖는다. 압축의 이유로, 픽처들의 그룹(Group of Pictures, GoP) 내의 픽처들의 시리즈를 수집하는 것이 통상적이다. 본 인코딩 방법의 일 실시예에 따르면, 인코딩할 포인트 클라우드들의 시퀀스의 연속적인 포인트 클라우드들은 고유한 포인트 클라우드로서 함께 수집된다. 이 그룹화된 3D 장면들은 필링 동작 및 패킹 동작을 거친다. 패치 데이터 항목들의 고유한 목록은 그룹의 모든 3D 장면에 대해 결정된다. 픽처의 패킹 구조는 전체 GoP에 대해 계산된다. 이 구조는 한 그룹의 픽처들 동안 보존되는데, 그 이유는 이 구조가, 특히 인코더가 오픈-gop 최적화를 할 수 없도록 셋업된 경우 비디오 인코딩 비트레이트(bitrate)를 상당히 감소시키기 때문이다. 컬러 및 깊이 픽처들은 이미지 패치들 상의 각각의 포인트의 스플래팅된 프로젝션의 결과들을 포함한다. 픽처들의 그룹의 픽처들 및 패치 데이터 항목들의 목록을 나타내는 데이터는 스트림에서 인코딩된다.
도 10은 도 12 및/또는 도 13과 관련하여 설명된 방법을 구현하도록 구성될 수 있는 디바이스(100)의 예시적인 아키텍처를 도시한다. 디바이스(100)는 인코더, 디코더 및/또는 렌더러(renderer)가 되도록 구성될 수 있다.
디바이스(100)는 데이터 및 어드레스 버스(101)에 의해 함께 연결되는 다음의 요소들을 포함한다:
- 예를 들어, DSP(또는 디지털 신호 프로세서(Digital Signal Processor))인 마이크로프로세서(102)(또는 CPU);
- ROM(또는 읽기 전용 메모리(Read Only Memory))(103);
- RAM(또는 랜덤 액세스 메모리(Random Access Memory))(104);
- 저장 인터페이스(105);
- 송신할 데이터를 애플리케이션으로부터 수신하기 위한 I/O 인터페이스(106); 및
- 전원(power supply), 예를 들어, 배터리.
예시에 따르면, 전원은 디바이스의 외부에 있다. 각각의 언급된 메모리에서, 명세서에서 사용되는 단어 ≪레지스터(register)≫는 작은 용량의 영역(몇 비트)에 또는 매우 큰 영역(예를 들어, 전체 프로그램 또는 대량의 수신되거나 디코딩된 데이터)에 대응할 수 있다. ROM(103)은 적어도 프로그램 및 파라미터들을 포함한다. ROM(103)은 본 원리들에 따른 기술들을 수행하기 위한 알고리즘들 및 명령어들을 저장할 수 있다. 스위치 온될 때, CPU(102)는 RAM에 프로그램을 업로드하고 대응하는 명령어들을 실행한다.
RAM(104)은, 레지스터 내에, CPU(102)에 의해 실행되고 디바이스(10)의 스위치-온 후에 업로드되는 프로그램, 레지스터 내의 입력 데이터, 레지스터 내의 방법의 상이한 상태들에서의 중간 데이터, 및 레지스터 내의 방법의 실행을 위해 사용되는 다른 변수들을 포함한다.
본 명세서에서 설명된 구현들은 예를 들어 방법 또는 프로세스, 장치, 컴퓨터 프로그램 제품, 데이터 스트림 또는 신호에서 구현될 수 있다. 단일 형태의 구현의 맥락에서만 설명되는 경우에도(예를 들어, 방법 또는 디바이스로서만 설명되는 경우에도), 설명되는 특징들의 구현은 다른 형태들(예컨대, 프로그램)로도 구현될 수 있다. 장치는 예를 들어 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은, 예를 들어 컴퓨터, 마이크로프로세서, 집적 회로(integrated circuit), 또는 프로그래머블 로직 디바이스를 포함하는 프로세싱 디바이스들을 일반적으로 지칭하는, 예를 들어 프로세서와 같은 장치로 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 휴대폰들, PDA(portable/personal digital assistant)들, 및 최종 사용자들 간의 정보의 전달을 용이하게 하는 다른 디바이스들과 같은, 통신 디바이스들을 포함한다.
인코딩 또는 인코더의 예시에 따르면, 3D 장면들의 시퀀스는 소스로부터 획득된다. 예를 들어, 소스는 다음을 포함하는 세트에 속한다:
- 로컬 메모리(103 또는 104), 예를 들어 비디오 메모리 또는 RAM(또는 랜덤 액세스 메모리), 플래시 메모리, ROM(또는 읽기 전용 메모리), 하드디스크;
- 저장 인터페이스(105), 예를 들어 대용량 저장소, RAM, 플래시 메모리, ROM, 광 디스크 또는 자기 서포트와의 인터페이스;
- 통신 인터페이스(106), 예를 들어 유선 인터페이스(예를 들어 버스 인터페이스, 광역 네트워크 인터페이스, 로컬 영역 네트워크 인터페이스) 또는 무선 인터페이스(IEEE 802.11 인터페이스 또는 블루투스® 인터페이스와 같은 것); 및
- 사용자가 데이터를 입력하는 것을 가능하게 하는 그래픽 사용자 인터페이스(Graphical User Interface)와 같은 사용자 인터페이스.
- 도 3의 디코딩 또는 디코더(들)(33)의 예시에 따르면, 스트림은 목적지로 전송되고; 구체적으로, 목적지는 다음을 포함하는 세트에 속한다:
- 로컬 메모리(103 또는 104), 예를 들어 비디오 메모리 또는 RAM, 플래시 메모리, 하드디스크;
- 저장 인터페이스(105), 예를 들어 대용량 저장소, RAM, 플래시 메모리, ROM, 광 디스크 또는 자기 서포트와의 인터페이스; 및
- 통신 인터페이스(106), 예를 들어 유선 인터페이스(예를 들어 버스 인터페이스(예컨대 USB(또는 범용 직렬 버스(Universal Serial Bus))), 광역 네트워크 인터페이스, 로컬 영역 네트워크 인터페이스, HDMI(고선명도 멀티미디어 인터페이스(High Definition Multimedia Interface)) 인터페이스) 또는 무선 인터페이스(IEEE 802.11 인터페이스, WiFi® 또는 블루투스® 인터페이스와 같은 것).
인코딩 또는 인코더의 예시들에 따르면, 볼류메트릭 장면을 나타내는 데이터를 포함하는 비트스트림은 목적지로 전송된다. 예로서, 비트스트림은 로컬 메모리 또는 원격 메모리, 예를 들어 비디오 메모리(104) 또는 RAM(104), 하드디스크(103)에 저장된다. 변형에서, 비트스트림은 저장 인터페이스(105), 예를 들어 대용량 저장소, 플래시 메모리, ROM, 광 디스크 또는 자기 서포트와의 인터페이스에 전송되고/되거나 통신 인터페이스(106), 예를 들어 포인트-대-포인트 링크, 통신 버스, 포인트-대-멀티포인트 링크 또는 방송 네트워크에 대한 인터페이스를 통해 송신된다.
디코딩 또는 디코더 또는 렌더러의 예시들에 따르면, 비트스트림은 소스로부터 획득된다. 예시적으로, 비트스트림은 로컬 메모리, 예를 들어 비디오 메모리(104), RAM(104), ROM(103), 플래시 메모리(103) 또는 하드디스크(103)로부터 판독된다. 변형에서, 비트스트림은 저장 인터페이스(105), 예를 들어 대용량 저장소, RAM, ROM, 플래시 메모리, 광 디스크 또는 자기 서포트와의 인터페이스로부터 수신되고/되거나 통신 인터페이스(105), 예를 들어 포인트-대-포인트 링크, 버스, 포인트-대-멀티포인트 링크 또는 방송 네트워크에 대한 통신 인터페이스(105)로부터 수신된다.
예시들에 따르면, 디바이스(100)는 도 12와 관련하여 설명된 방법을 구현하도록 구성되고, 다음을 포함하는 세트에 속한다:
- 모바일 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 태블릿(또는 태블릿 컴퓨터);
- 랩톱;
- 정지 영상 카메라(still picture camera);
- 비디오 카메라;
- 인코딩 칩(encoding chip);
- 서버(예를 들어 방송 서버, 주문형 비디오 서버 또는 웹 서버).
예시들에 따르면, 디바이스(100)는 도 13과 관련하여 설명된 렌더링 방법을 구현하도록 구성되고, 다음을 포함하는 세트에 속한다:
- 모바일 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 셋톱 박스;
- TV 세트;
- 태블릿(또는 태블릿 컴퓨터);
- 랩톱; 및
- 디스플레이(예컨대 HMD와 같은 것).
도 11은 데이터가 패킷-기반 전송 프로토콜을 통해 전송될 경우의 스트림의 신택스의 일 실시예의 예시를 보여준다. 도 11은 볼류메트릭 비디오 스트림의 예시적인 구조(1100)를 보여준다. 구조는 스트림을 독립적인 신택스 요소들로 조직화하는 컨테이너(container)로 이루어진다. 구조는 스트림의 모든 신택스 요소들에 공통인 데이터의 세트인 헤더 부분(1101)을 포함할 수 있다. 예를 들어, 헤더 부분은 신택스 요소들 각각의 특성 및 역할을 설명하는, 신택스 요소들에 대한 메타데이터를 포함한다. 헤더 부분은 또한 인코딩을 위해 사용되는 프로젝션의 중심들의 좌표들 및 픽처들의 사이즈와 해상도에 대한 정보를 포함할 수 있다. 구조는 신택스 요소들(1102 및 1103)을 포함하는 페이로드(payload)를 포함한다. 제1 신택스 요소(1102)는 패킹된 패치들을 포함하는 이미지들을 나타내는 데이터를 포함한다. 이미지들은 비디오 압축 방법에 따라 압축되었을 수 있다. 이미지는 제2 신택스 요소(1103)의 패치 데이터 항목들의 목록과 연관된다. 일 실시예에서, 제1 신택스 요소는 이미지들의 페어들(pairs)의 시퀀스를 포함하고, 하나의 이미지는 깊이 정보를 인코딩하고, 페어를 이루는 이미지는 컬러 정보를 인코딩한다. 제2 신택스 요소는 제1 신택스 요소(1102)의 이미지들과 연관된 패치 데이터 항목들의 목록을 나타내는 데이터를 포함한다. 패치 데이터 항목들의 목록은 이미지들의 그룹과 연관될 수 있다. 패치 데이터 항목은 이미지 내의 연관된 픽처(즉, 패치)의 위치, 픽처의 프로젝션 맵에 사용된 입체각에 관한 정보, 및 도 7과 관련하여 설명된 바와 같이 픽처 상에 프로젝팅된 3차원 장면의 일부를 포함하는 3차원 공간의 일부의 설명을 포함한다. 패치 데이터 항목은 적어도 이미지와 연관된 패치의 위치(예를 들어, 상부 좌측 코너 좌표들), 패치가 추출되었던 프로젝션 맵을 생성하기 위해 사용된 입체각에 관한 정보(예를 들어, 3D 벡터 및 각도 값 또는 3D 공간의 기준 프레임의 축들의 치환의 식별자) 및 이 패치 상에 프로젝팅된 3D 장면의 포인트들이 속하는 공간의 일부의 설명(예를 들어, 도 6 및 도 7과 관련하여 설명된 바와 같은 각도 및 깊이 범위들)을 포함한다.
설명 목적을 위해, ISOBMFF 파일 포맷 표준의 맥락에서, 컬러 맵, 깊이 맵 및 메타데이터는 mdat 타입의 미디어-데이터 박스에 임베딩된 컬러 맵 및 깊이 맵 데이터 자체를 갖는 MOOV 타입의 박스에서의 ISOBMFF 트랙들에서 전형적으로 참조될 것이다.
도 12는 본 원리들의 비제한적인 실시예에 따른, 인코더가 되도록 구성된 (도 10과 관련하여 설명된) 디바이스(100)에서, 스트림에서 포인트 클라우드를 인코딩하기 위한 방법을 도시한다.
단계(1200)에서, 디바이스(100)의 상이한 파라미터들이 업데이트된다. 특히, 3D 장면들의 시퀀스가 소스로부터 획득되고, 3D 장면들의 3D 공간의 기준 프레임에서 입체각이 결정되고, 프로젝션 방법이 초기화되고, 프로젝션 맵들과 픽처들의 사이즈들 및 해상도들이 결정되고, 패치 데이터 항목들의 빈(empty) 목록이 생성된다.
프로젝션 맵들의 목록 생성 단계(1201)가 수행된다. 이 동작은 단계들(1202, 1203 및 1204)을 포함하는 반복적인 프로세스이다. 단계(1202)에서, 입체각에 의해 정의되는 공간의 일부에 속하고 프로젝션의 중심으로부터 가시적인 3D 장면의 포인트들은 프로젝션 방법에 따라 프로젝션 맵 상에 프로젝팅된다. 이 프로젝션 맵은 프로젝션 맵들의 목록에 추가된다. 클러스터링 단계(1205)가 너무 작은 클러스터들을 생성하고 따라서 과도한 수의 패치 데이터 항목들을 생성하는 것을 방지하기 위해 프로젝션 맵의 해상도는 낮다(예를 들어, 도(degree)당 1픽셀 또는 도당 2픽셀). 변형에서, 단계(1205)는 프로젝션 맵이 생성될 때마다 수행될 수 있다. 단계(1203)에서, 프로젝션 맵의 인접한 픽셀들은 깊이 정보에 따라 클러스터링된다. 클러스터링된 패치와 연관된 패치 데이터 항목들은 구성 중인 패치 데이터 항목들의 목록에 추가된다. 포인트 클라우드가 비어있을 때까지 반복들이 수행된다. 변형에서, 패치 데이터 항목들의 목록이 가득 찰 때까지 동작(1201)이 반복된다. 목록의 패치 데이터 항목들의 이미지 패치들을 인코딩하기 위해 필요한 영역이 빈(bin)(즉, 동작(1205)에서 이미지 패치들이 배열될 픽처)의 영역보다 클 때, 패치 데이터 항목들의 목록이 가득 찼다고 고려된다.
패치 데이터 항목들의 목록이 결정되면, 패킹 동작(1205)이 수행되어 픽처의 생성을 초래한다. 포인트 클라우드의 포인트들은 이미지 패치들에 프로젝팅되고, 이미지 패치들은 픽처와 동일한 해상도를 갖는다. 이미지 패치들은 픽처에서 최적화된 방식으로 배열된다.
단계(1206)에서, 픽처 및 연관된 패치 데이터 항목들의 목록은 도 11에 관하여 설명된 신택스에 따라 스트림에서 인코딩된다. 인코딩 방법은 포인트 클라우드들의 시퀀스의 다른 포인트 클라우드들에 대해 반복될 수 있다. 본 원리들의 일 실시예에서, 고유 포인트 클라우드로서 수집된, 시퀀스의 포인트 클라우드들의 그룹이 인코딩 방법의 엔트리 포인트 클라우드로서 사용된다. 생성된 픽처 그룹의 픽처들에 공통인 패치 데이터 항목들의 목록이 결정되고, 전체 픽처 그룹과 연관된 스트림에서 한 번 인코딩된다.
도 13은 본 원리들의 비제한적인 실시예에 따른, 디코더가 되도록 구성된 (도 10과 관련하여 설명된) 디바이스(100)에서 스트림으로부터 3D 장면을 디코딩하기 위한 방법을 도시한다.
단계(1300)에서, 디바이스(100)의 상이한 파라미터들이 업데이트된다. 특히, 스트림은 소스로부터 획득되고, 시점은 포인트 클라우드의 공간에서 결정되고, 언프로젝션(un-projection) 방법이 초기화된다. 변형에서, 스트림으로부터 시점 및/또는 언프로젝션 방법이 획득된다.
단계(1301)에서, 이미지 및 패치 데이터 항목 목록이 스트림으로부터 디코딩된다. 패치 데이터 항목 목록은 픽처들의 그룹과 연관될 수 있다. 패치 데이터 항목은 이미지 내의 연관된 픽처(즉, 패치)의 위치, 픽처의 프로젝션 맵에 대해 사용되는 입체각에 관한 정보, 및 도 7과 관련하여 설명된 바와 같이 픽처 상에 프로젝팅되는 3차원 장면의 일부를 포함하는 3차원 공간의 일부의 설명을 포함한다. 이미지는 이미지의 픽셀 그리드에 패킹된 픽처들(또한 패치들이라고도 불림)의 세트를 포함한다. 단계(1302)에서, 패치들은 연관된 패치 데이터 항목 내의 위치 정보를 사용하여, 패치 데이터 항목들에 따라 픽처로부터 언패킹된다. 각각의 패치 데이터 항목에 포함된 픽처 내의 영역을 식별하는 정보는 픽처의 픽셀 그리드 내의 이미지 패치의 위치 및 모양을 설명한다.
이러한 정보, 패치 데이터 항목의 각도 범위 및 픽처 해상도는 이미지 패치들을 언패킹하는 데 사용된다. 패치 데이터 항목은 또한 단계(1303)에서 사용되는 깊이 범위를 포함한다. 패치 데이터 항목은 또한 프로젝션 맵 상에 3D 장면의 포인트들을 프로젝팅하는 데 사용되는 입체각에 관한 정보를 포함한다. 이 정보는 픽처의 픽셀들의 언프로젝션을 위한 기준 벡터를 재배향(reorient)하도록 디코더에 의해 사용되고; 상기 언프로젝션은 렌더링 3D 공간에서 포인트들을 생성한다. 각각의 언패킹된 이미지 패치는 대응하는 패치 데이터 항목과 연관된다. 단계(1303)에서, 언패킹된 이미지들의 픽셀들은 연관된 패치 데이터 항목에 따라 언프로젝팅된다. 픽셀에 저장된 깊이 정보는 픽셀의 다이내믹의 최적 사용을 허용하는 깊이 범위에 따라 디코딩되고, 깊이는 예를 들어 10비트 또는 15비트 상에 인코딩된다. 다음으로, 디코딩된 포인트의 공간 내의 위치는 이미지 패치 내의 픽셀의 좌표들, 각도 범위 및 디코딩된 깊이에 따라 계산된다. 시점에 따른 포인트의 방향은, 예를 들어, 이미지 패치의 기준 프레임 내의 픽셀의 좌표들 및 연관된 패치 데이터 항목에 포함된 각도 범위([θmin, θmax], [min, max])에 따라 선형으로 보간된다(interpolated). 포인트는 결정된 깊이에 대응하는 시점으로부터의 거리에서 결정된 방향으로 프로젝팅된다. 픽처의 픽셀들이 컬러 값을 저장하는 경우 또는 컬러 값이 깊이 픽처와 페어를 이루는 픽처 내에 저장되는 경우, 이 컬러 값은 프로젝팅된 포인트에 할당된다.
당연히, 본 개시내용은 앞에서 설명된 실시예들에 제한되지 않는다.
특히, 본 개시내용은 볼류메트릭 장면(즉, 3차원 포인트 클라우드들의 시퀀스)을 나타내는 데이터를 운반하는 스트림을 인코딩/디코딩하기 위한 방법들 및 디바이스들에 제한되는 것이 아니라, 2차원 포인트 클라우드들의 시퀀스를 인코딩/디코딩하는 방법들 및 이러한 방법들을 구현하는 임의의 디바이스들, 및 특히 적어도 하나의 CPU 및/또는 적어도 하나의 GPU를 포함하는 임의의 디바이스들로 확장될 수 있다.
본 개시내용은 또한, 볼류메트릭 장면을 나타내는 정보를 포함하는 데이터 스트림으로부터 렌더링된 이미지들을 디스플레이하기 위한 방법(및 이를 위해 구성된 디바이스) 및 플랫 비디오로 객체를 렌더링하고 디스플레이하기 위한 방법(및 이를 위해 구성된 디바이스)에 관한 것이다.
본 개시내용은 또한 스트림을 전송 및/또는 수신하기 위한 방법(및 이를 위해 구성된 디바이스)에 관한 것이다.
본 명세서에서 설명된 구현들은 예를 들어 방법 또는 프로세스, 장치, 컴퓨터 프로그램 제품, 데이터 스트림 또는 신호에서 구현될 수 있다. 단일 형태의 구현의 맥락에서만 설명되는 경우에도(예를 들어, 방법 또는 디바이스로서만 설명되는 경우에도), 설명되는 특징들의 구현은 다른 형태들(예컨대, 프로그램)로도 구현될 수 있다. 장치는 예를 들어 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 예를 들어, 방법들은, 예를 들어 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래머블 로직 디바이스를 포함하는 프로세싱 디바이스들을 일반적으로 지칭하는, 예를 들어 프로세서와 같은 장치로 구현될 수 있다. 프로세서들은, 예를 들어, 스마트폰들, 태블릿들, 컴퓨터들, 모바일 폰들, PDA(portable/personal digital assistant)들, 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 또한 포함한다.
본 명세서에 설명된 다양한 프로세스들 및 특징들의 구현들은 다양한 상이한 장비 또는 애플리케이션들, 특히 예를 들어 데이터 인코딩, 데이터 디코딩, 뷰 발생, 텍스처 프로세싱, 및 이미지들 및 관련 텍스처 정보 및/또는 깊이 정보의 다른 프로세싱에 연관된 장비 또는 애플리케이션들에 구현될 수 있다. 이러한 장비의 예들은 인코더, 디코더, 디코더로부터의 출력을 처리하는 후처리기(post-processor), 인코더에의 입력을 제공하는 전처리기(pre-processor), 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋톱 박스, 랩톱, 개인용 컴퓨터, 휴대폰, PDA, 및 다른 통신 디바이스들을 포함한다. 명백한 것처럼, 장비는 이동식일 수 있고 심지어 이동식 차량에 설치될 수 있다.
추가적으로, 본 방법들은 프로세서 의해 수행되는 명령어들에 의해 구현될 수 있고, 그러한 명령어들 (및/또는 구현에 의해 생성되는 데이터 값들)은 예를 들어, 집적 회로, 소프트웨어 캐리어, 또는 예컨대 하드 디스크, CD(compact diskette), (예를 들어, 보통 디지털 범용 디스크 또는 디지털 비디오 디스크라고 언급되는 DVD와 같은) 광 디스크, RAM(random access memory), 또는 ROM(read-only memory)과 같은 다른 저장 디바이스와 같은 프로세서 판독 가능 매체 상에 저장될 수 있다. 명령어들은 프로세서 판독 가능 매체 상에 유형으로(tangibly) 구현되는 애플리케이션 프로그램을 형성할 수 있다. 명령어들은 예를 들어 하드웨어, 펌웨어, 소프트웨어 또는 조합일 수 있다. 명령어들은 예를 들어 운영 체제, 개별 애플리케이션 또는 이들의 조합 내에서 발견될 수 있다. 따라서, 프로세서는 예를 들어 프로세스를 수행하도록 구성되는 디바이스 및 프로세스를 수행하기 위한 명령어들을 갖는 프로세서 판독 가능 매체(저장 디바이스와 같은 것)를 포함하는 디바이스 양쪽 모두로서 특징지어질 수 있다. 또한, 프로세서 판독 가능 매체는 명령어들에 더하여 또는 그 대신에, 구현에 의해 생성된 데이터 값들을 저장할 수 있다.
본 기술분야의 통상의 기술자에게 명백한 바와 같이, 구현들은 예컨대 저장되거나 또는 전송될 수 있는 정보를 운반하도록 포맷팅된 다양한 신호들을 생성할 수 있다. 정보는 예를 들어 방법을 수행하기 위한 명령어들, 또는 설명된 구현들 중 하나에 의해 생성되는 데이터를 포함할 수 있다. 예를 들어, 신호는 설명된 실시예의 신택스를 작성 또는 판독하는 것에 대한 규칙들을 데이터로서 담고 있도록, 또는 기술된 실시예에 의해 작성된 실제 신택스-값(syntax-value)들을 데이터로서 담고 있도록 포맷팅될 수 있다. 이러한 신호는 예를 들어 (예컨대, 스펙트럼의 무선 주파수 부분을 사용하여) 전자기파로서 또는 기저대역 신호로서 포맷팅될 수 있다. 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 전달하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는 공지된 바와 같은 다양한 상이한 유선 또는 무선 링크들을 통해 전송될 수 있다. 신호는 프로세서 판독 가능 매체 상에 저장될 수 있다.
다수의 구현들이 설명되었다. 그럼에도 불구하고, 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 예를 들어, 상이한 구현들의 요소들은 다른 구현들을 생성하도록 조합되고, 보충되고, 수정되고, 또는 제거될 수 있다. 추가적으로, 통상의 기술자는 개시된 것들이 다른 구조들 및 프로세스들로 대체될 수 있으며, 결과적인 구현들이 적어도 실질적으로 동일한 방식(들)으로 적어도 실질적으로 동일한 기능(들)을 수행하여 개시된 구현들과 적어도 실질적으로 동일한 결과(들)를 달성할 것이라는 점을 이해할 것이다. 따라서, 이들 및 다른 구현들을 본 출원에 의해 고려된다.
Claims (15)
- 스트림에서 3차원 포인트 클라우드를 인코딩하는 방법으로서,
- a. 시점(point of view)에 중심을 둔 입체각에 따라 결정되고 상기 시점으로부터 가시적인 3D 공간의 영역의 포인트들을 포함하는 상기 3차원 포인트 클라우드의 일부를 결정하는 것;
b. 프로젝션 매핑(projection mapping)에 따라 상기 3차원 장면의 상기 일부를 프로젝션 맵 상에 프로젝팅하는 것; 및
c. 상기 장면으로부터 상기 3차원 장면의 상기 일부를 제거하는 것; 상기 입체각을 회전시키는 것; 및 상기 3차원 장면이 비어있을 때까지 a, b 및 c를 반복하는 것
에 의해 복수의 프로젝션 맵(projection map)들을 생성하는 단계:
- 상기 복수의 프로젝션 맵들로부터 복수의 픽처(picture)들을 생성하는 단계 -픽처는 프로젝션 맵의 인접 픽셀들의 깊이 일치 클러스터(depth consistent cluster)임-;
- 이미지 내에 상기 복수의 픽처들 중의 적어도 하나의 픽처를 패킹하고 각각의 상기 적어도 하나의 픽처에 대해
상기 이미지 내의 상기 픽처의 위치,
상기 픽처의 프로젝션 맵에 대해 사용되는 상기 입체각에 관한 정보, 및
상기 픽처 상에 프로젝팅되는 상기 3차원 장면의 일부를 포함하는 상기 3차원 공간의 일부의 설명
을 포함하는 데이터를 결정하는 단계:
- 상기 스트림에서 상기 이미지 및 상기 데이터를 인코딩하는 단계
를 포함하는, 방법. - 스트림에서 3차원 포인트 클라우드를 인코딩하도록 적응되는 디바이스로서,
상기 디바이스는 프로세서와 연관된 메모리를 포함하고, 상기 프로세서는:
- a. 시점에 중심을 둔 입체각에 따라 결정되고 상기 시점으로부터 가시적인 3D 공간의 영역의 포인트들을 포함하는 상기 3차원 포인트 클라우드의 일부를 결정하는 것;
b. 프로젝션 매핑에 따라 상기 3차원 장면의 상기 일부를 프로젝션 맵 상에 프로젝팅하는 것; 및
c. 상기 장면으로부터 상기 3차원 장면의 상기 일부를 제거하는 것; 상기 입체각을 회전시키는 것; 및 상기 3차원 장면이 비어있을 때까지 a, b 및 c를 반복하는 것
에 의해 복수의 프로젝션 맵들을 생성하고;
- 상기 복수의 프로젝션 맵들로부터 복수의 픽처들을 생성하고 -픽처는 프로젝션 맵의 인접 픽셀들의 깊이 일치 클러스터임-;
- 이미지 내에 상기 복수의 픽처들 중의 적어도 하나의 픽처를 패킹하고 각각의 상기 적어도 하나의 픽처에 대해
상기 이미지 내의 상기 픽처의 위치,
상기 픽처의 프로젝션 맵에 대해 사용되는 상기 입체각에 관한 정보, 및
상기 픽처 상에 프로젝팅되는 상기 3차원 장면의 일부를 포함하는 상기 3차원 공간의 일부의 설명
을 포함하는 데이터를 결정하고;
- 상기 스트림에서 상기 이미지 및 상기 데이터를 인코딩
하도록 구성되는, 디바이스. - 제1항에 따른 방법 또는 제2항에 따른 디바이스에 있어서, 상기 입체각을 회전시키는 것은 상기 3차원 공간의 기준 프레임의 축 순서를 치환(permuting)함으로써 수행되고, 상기 입체각에 관한 정보는 상기 치환의 식별자인, 방법 또는 디바이스.
- 제1항 또는 제3항에 따른 방법 또는 제2항 또는 제3항에 따른 디바이스에 있어서, 상기 프로젝션 매핑은 정방형(equirectangular) 프로젝션 매핑인, 방법 또는 디바이스.
- 제1항, 제3항 또는 제4항 중 어느 한 항에 따른 방법 또는 제2항 내지 제4항 중 어느 한 항에 따른 디바이스에 있어서, 상기 3D 장면의 포인트들은 컬러 속성을 포함하고, 두 개의 이미지들이 생성되고 상기 데이터와 함께 상기 스트림에서 인코딩되고, 하나의 이미지는 깊이 속성을 갖는 적어도 하나의 픽처를 패킹하고 다른 이미지는 컬러 속성을 갖는 적어도 하나의 픽처를 패킹하는, 방법 또는 디바이스.
- 제1항, 제3항 또는 제4항 중 어느 한 항에 따른 방법 또는 제2항 내지 제4항 중 어느 한 항에 따른 디바이스에 있어서, 상기 데이터는 픽처가 상기 이미지 내에서 패킹되는 동안 회전되었는지 여부를 나타내는 정보를 더 포함하는, 방법 또는 디바이스.
- 스트림으로부터 3차원 포인트 클라우드를 검색(retrieving)하는 방법으로서,
- 상기 스트림으로부터, 이미지 내에서 패킹된 적어도 하나의 픽처, 및 각각의 상기 적어도 하나의 픽처에 대해:
상기 이미지 내의 상기 픽처의 위치,
입체각에 관한 정보, 및
3차원 공간의 일부의 설명;
을 포함하는 데이터를 디코딩하는 단계:
- 상기 입체각에 관한 정보 및 상기 3차원 공간의 일부의 설명을 사용하여, 프로젝션 매핑에 따라 상기 적어도 하나의 픽처의 픽셀들을 역 프로젝팅(inverse projecting)함으로써 상기 3차원 포인트 클라우드를 검색하는 단계
를 포함하는, 방법. - 스트림으로부터 3차원 포인트 클라우드를 검색하도록 적응된 디바이스로서,
상기 디바이스는 프로세서와 연관된 메모리를 포함하고, 상기 프로세서는:
- 상기 스트림으로부터, 이미지 내에서 패킹된 적어도 하나의 픽처, 및 각각의 상기 적어도 하나의 픽처에 대해:
상기 이미지 내의 상기 픽처의 위치,
입체각에 관한 정보, 및
3차원 공간의 일부의 설명
을 포함하는 데이터를 디코딩하고:
- 상기 입체각에 관한 정보 및 상기 3차원 공간의 일부의 설명을 사용하여, 프로젝션 매핑에 따라 상기 적어도 하나의 픽처의 픽셀들을 역 프로젝팅함으로써 상기 3차원 포인트 클라우드를 검색
하도록 구성되는, 디바이스. - 제7항에 따른 방법 또는 제8항에 따른 디바이스에 있어서, 상기 입체각에 관한 정보는 상기 3차원 공간의 기준 프레임의 축 순서의 치환의 식별자이고, 상기 프로젝션 매핑은 상기 치환을 사용하는, 방법 또는 디바이스.
- 제7항 또는 제9항에 따른 방법 또는 제8항 또는 제9항에 따른 디바이스에 있어서, 상기 프로젝션 매핑은 정방형 프로젝션 매핑인, 방법 또는 디바이스.
- 제7항, 제9항 또는 제10항 중 어느 한 항에 따른 방법 또는 제8항 내지 제10항 중 어느 한 항에 따른 디바이스에 있어서, 두 개의 이미지들이 상기 데이터와 디코딩되고, 하나의 이미지는 깊이 속성을 갖는 적어도 하나의 픽처를 패킹하고 다른 이미지는 컬러 속성을 갖는 적어도 하나의 픽처를 패킹하는, 방법 또는 디바이스.
- 제6항 또는 제9항 내지 제11항 중 어느 한 항에 따른 방법 또는 제8항 내지 제11항 중 어느 한 항에 따른 디바이스에 있어서, 상기 데이터는 픽처가 이미지 내에서 패킹되는 동안 회전되었는지 여부의 정보표시를 더 포함하고, 상기 프로젝션 매핑은 상기 픽처의 픽셀들을 역 프로젝팅하기 위해 이 정보를 사용하는, 방법 또는 디바이스.
- 제13항에 있어서, 상기 입체각에 관한 정보는 상기 3차원 공간의 기준 프레임의 축 순서의 치환의 식별자인, 스트림.
- 제13항 또는 제14항에 있어서, 상기 이미지는 이미지들의 페어로 구성되고, 하나의 이미지는 깊이 속성을 갖는 적어도 하나의 픽처를 패킹하고 다른 이미지는 컬러 속성을 갖는 적어도 하나의 픽처를 패킹하는, 스트림.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17306705.9 | 2017-12-05 | ||
EP17306705.9A EP3496388A1 (en) | 2017-12-05 | 2017-12-05 | A method and apparatus for encoding a point cloud representing three-dimensional objects |
PCT/EP2018/082954 WO2019110405A1 (en) | 2017-12-05 | 2018-11-29 | A method and apparatus for encoding a point cloud representing three-dimensional objects |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200096575A true KR20200096575A (ko) | 2020-08-12 |
Family
ID=60673427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207019056A KR20200096575A (ko) | 2017-12-05 | 2018-11-29 | 3차원 객체들을 나타내는 포인트 클라우드를 인코딩하기 위한 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11095920B2 (ko) |
EP (2) | EP3496388A1 (ko) |
KR (1) | KR20200096575A (ko) |
CN (1) | CN111656762B (ko) |
WO (1) | WO2019110405A1 (ko) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11818401B2 (en) | 2017-09-14 | 2023-11-14 | Apple Inc. | Point cloud geometry compression using octrees and binary arithmetic encoding with adaptive look-up tables |
US10897269B2 (en) | 2017-09-14 | 2021-01-19 | Apple Inc. | Hierarchical point cloud compression |
US10861196B2 (en) | 2017-09-14 | 2020-12-08 | Apple Inc. | Point cloud compression |
US10909725B2 (en) | 2017-09-18 | 2021-02-02 | Apple Inc. | Point cloud compression |
US11113845B2 (en) | 2017-09-18 | 2021-09-07 | Apple Inc. | Point cloud compression using non-cubic projections and masks |
US10607373B2 (en) | 2017-11-22 | 2020-03-31 | Apple Inc. | Point cloud compression with closed-loop color conversion |
US10699444B2 (en) | 2017-11-22 | 2020-06-30 | Apple Inc | Point cloud occupancy map compression |
US11611774B2 (en) * | 2018-01-17 | 2023-03-21 | Sony Corporation | Image processing apparatus and image processing method for 3D data compression |
US10909727B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Hierarchical point cloud compression with smoothing |
US10939129B2 (en) | 2018-04-10 | 2021-03-02 | Apple Inc. | Point cloud compression |
US11010928B2 (en) | 2018-04-10 | 2021-05-18 | Apple Inc. | Adaptive distance based point cloud compression |
US10909726B2 (en) | 2018-04-10 | 2021-02-02 | Apple Inc. | Point cloud compression |
US11017566B1 (en) | 2018-07-02 | 2021-05-25 | Apple Inc. | Point cloud compression with adaptive filtering |
US11202098B2 (en) | 2018-07-05 | 2021-12-14 | Apple Inc. | Point cloud compression with multi-resolution video encoding |
US11012713B2 (en) | 2018-07-12 | 2021-05-18 | Apple Inc. | Bit stream structure for compressed point cloud data |
US11528509B2 (en) * | 2018-09-07 | 2022-12-13 | Lg Electronics Inc. | Video transmission method, video transmission device, video receiving method and video receiving device |
US11386524B2 (en) | 2018-09-28 | 2022-07-12 | Apple Inc. | Point cloud compression image padding |
CN110971912B (zh) * | 2018-09-30 | 2022-04-29 | 华为技术有限公司 | 点云编解码方法、编解码器、编解码装置和存储介质 |
US11367224B2 (en) | 2018-10-02 | 2022-06-21 | Apple Inc. | Occupancy map block-to-patch information compression |
US11430155B2 (en) | 2018-10-05 | 2022-08-30 | Apple Inc. | Quantized depths for projection point cloud compression |
US11412200B2 (en) * | 2019-01-08 | 2022-08-09 | Samsung Electronics Co., Ltd. | Method of processing and transmitting three-dimensional content |
US11057564B2 (en) | 2019-03-28 | 2021-07-06 | Apple Inc. | Multiple layer flexure for supporting a moving image sensor |
CN111699684B (zh) * | 2019-06-14 | 2022-05-06 | 深圳市大疆创新科技有限公司 | 三维数据点的编解码方法和装置 |
US20220327742A1 (en) * | 2019-06-26 | 2022-10-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 |
WO2020261690A1 (ja) * | 2019-06-28 | 2020-12-30 | ソニー株式会社 | 情報処理装置、情報処理方法、再生処理装置及び再生処理方法 |
US11711544B2 (en) * | 2019-07-02 | 2023-07-25 | Apple Inc. | Point cloud compression with supplemental information messages |
US11432009B2 (en) * | 2019-07-02 | 2022-08-30 | Intel Corporation | Techniques for encoding and decoding immersive video |
EP3793199A1 (en) * | 2019-09-10 | 2021-03-17 | InterDigital VC Holdings, Inc. | A method and apparatus for delivering a volumetric video content |
US20220256132A1 (en) | 2019-09-19 | 2022-08-11 | Interdigital Ce Patent Holdings | Devices and methods for generating and rendering immersive video |
US11627314B2 (en) | 2019-09-27 | 2023-04-11 | Apple Inc. | Video-based point cloud compression with non-normative smoothing |
US11562507B2 (en) | 2019-09-27 | 2023-01-24 | Apple Inc. | Point cloud compression using video encoding with time consistent patches |
US11902540B2 (en) | 2019-10-01 | 2024-02-13 | Intel Corporation | Immersive video coding using object metadata |
WO2021067501A1 (en) * | 2019-10-01 | 2021-04-08 | Intel Corporation | Object-based volumetric video coding |
US11538196B2 (en) | 2019-10-02 | 2022-12-27 | Apple Inc. | Predictive coding for point cloud compression |
US11895307B2 (en) | 2019-10-04 | 2024-02-06 | Apple Inc. | Block-based predictive coding for point cloud compression |
US11798196B2 (en) | 2020-01-08 | 2023-10-24 | Apple Inc. | Video-based point cloud compression with predicted patches |
US11475605B2 (en) | 2020-01-09 | 2022-10-18 | Apple Inc. | Geometry encoding of duplicate points |
US11190771B2 (en) * | 2020-03-16 | 2021-11-30 | At&T Intellectual Property I, L.P. | System and method of enabling adaptive bitrate streaming for volumetric videos |
US11321928B2 (en) * | 2020-05-14 | 2022-05-03 | Qualcomm Incorporated | Methods and apparatus for atlas management of augmented reality content |
US11615557B2 (en) | 2020-06-24 | 2023-03-28 | Apple Inc. | Point cloud compression using octrees with slicing |
US11620768B2 (en) | 2020-06-24 | 2023-04-04 | Apple Inc. | Point cloud geometry compression using octrees with multiple scan orders |
US11948338B1 (en) | 2021-03-29 | 2024-04-02 | Apple Inc. | 3D volumetric content encoding using 2D videos and simplified 3D meshes |
WO2023047021A2 (en) * | 2021-09-27 | 2023-03-30 | Nokia Technologies Oy | A method, an apparatus and a computer program product for video encoding and video decoding |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917715B2 (en) * | 2002-04-19 | 2005-07-12 | International Business Machines Corporation | Foveal priority in stereoscopic remote viewing system |
CN101268945B (zh) | 2007-03-22 | 2010-11-24 | 王靖中 | 现场立体足迹数字化综合处理*** |
CN102138334A (zh) | 2008-08-29 | 2011-07-27 | 汤姆逊许可公司 | 利用启发式视图合并的视图合成 |
CN101488230B (zh) | 2009-02-24 | 2011-04-27 | 南京师范大学 | 面向VirtualEarth的真三维立体显示方法 |
US9600933B2 (en) | 2011-07-01 | 2017-03-21 | Intel Corporation | Mobile augmented reality system |
CN103047943B (zh) | 2012-12-31 | 2016-04-06 | 吉林大学 | 基于单投射编码结构光的车门外板形状尺寸检测方法 |
US9305231B2 (en) * | 2013-08-01 | 2016-04-05 | Cognex Corporation | Associating a code with an object |
US20150278155A1 (en) | 2014-03-27 | 2015-10-01 | Knockout Concepts, Llc | Identifying objects using a 3d scanning device, images, and 3d models |
US10484697B2 (en) | 2014-09-09 | 2019-11-19 | Qualcomm Incorporated | Simultaneous localization and mapping for video coding |
CN104715496B (zh) * | 2015-03-23 | 2017-11-07 | 中国科学技术大学 | 云环境下基于三维点云模型的图像预测方法、***及装置 |
US20170214943A1 (en) * | 2016-01-22 | 2017-07-27 | Mitsubishi Electric Research Laboratories, Inc. | Point Cloud Compression using Prediction and Shape-Adaptive Transforms |
CN105957106B (zh) | 2016-04-26 | 2019-02-22 | 湖南拓视觉信息技术有限公司 | 三维目标跟踪的方法和装置 |
EP3249921A1 (en) | 2016-05-24 | 2017-11-29 | Thomson Licensing | Method, apparatus and stream for immersive video format |
CN107079104B (zh) * | 2016-08-24 | 2019-03-08 | 深圳市大疆灵眸科技有限公司 | 广角照片拍摄方法、装置、云台、无人飞行器及机器人 |
CN109644262A (zh) * | 2016-08-25 | 2019-04-16 | Lg电子株式会社 | 发送全向视频的方法、接收全向视频的方法、发送全向视频的装置和接收全向视频的装置 |
CN106331676B (zh) | 2016-08-31 | 2018-03-27 | 贾岳杭 | 基于虚拟现实环境的三维数据的处理与传输方法 |
CN106940186B (zh) | 2017-02-16 | 2019-09-24 | 华中科技大学 | 一种机器人自主定位与导航方法及*** |
CN107025673B (zh) | 2017-04-11 | 2020-02-21 | 太原科技大学 | 虚拟结构光3d数据压缩算法的局部误差抑制方法 |
US10535161B2 (en) * | 2017-11-09 | 2020-01-14 | Samsung Electronics Co., Ltd. | Point cloud compression using non-orthogonal projection |
-
2017
- 2017-12-05 EP EP17306705.9A patent/EP3496388A1/en not_active Withdrawn
-
2018
- 2018-11-29 US US16/769,807 patent/US11095920B2/en active Active
- 2018-11-29 EP EP18807370.4A patent/EP3721613A1/en active Pending
- 2018-11-29 WO PCT/EP2018/082954 patent/WO2019110405A1/en unknown
- 2018-11-29 KR KR1020207019056A patent/KR20200096575A/ko active IP Right Grant
- 2018-11-29 CN CN201880087794.6A patent/CN111656762B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111656762A (zh) | 2020-09-11 |
WO2019110405A1 (en) | 2019-06-13 |
EP3496388A1 (en) | 2019-06-12 |
US20200374559A1 (en) | 2020-11-26 |
CN111656762B (zh) | 2022-04-12 |
US11095920B2 (en) | 2021-08-17 |
EP3721613A1 (en) | 2020-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11095920B2 (en) | Method and apparatus for encoding a point cloud representing three-dimensional objects | |
US11122294B2 (en) | Methods, devices and stream for encoding and decoding volumetric video | |
US11025955B2 (en) | Methods, devices and stream for encoding and decoding volumetric video | |
US20230351641A1 (en) | Method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream | |
US11647177B2 (en) | Method, apparatus and stream for volumetric video format | |
US11375235B2 (en) | Method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream | |
EP3562159A1 (en) | Method, apparatus and stream for volumetric video format | |
US11798195B2 (en) | Method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream | |
CN115885513A (zh) | 用于对体积视频进行编码和解码的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |