KR20220127246A - 보조 패치들을 갖는 볼류메트릭 비디오 - Google Patents

보조 패치들을 갖는 볼류메트릭 비디오 Download PDF

Info

Publication number
KR20220127246A
KR20220127246A KR1020227023499A KR20227023499A KR20220127246A KR 20220127246 A KR20220127246 A KR 20220127246A KR 1020227023499 A KR1020227023499 A KR 1020227023499A KR 20227023499 A KR20227023499 A KR 20227023499A KR 20220127246 A KR20220127246 A KR 20220127246A
Authority
KR
South Korea
Prior art keywords
patch
atlas
patches
mvd
scene
Prior art date
Application number
KR1020227023499A
Other languages
English (en)
Inventor
레나우드 도레
베르트란드 추퓨
프랭크 투도르
줄리엔 플레르
Original Assignee
인터디지털 브이씨 홀딩스 프랑스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 브이씨 홀딩스 프랑스 filed Critical 인터디지털 브이씨 홀딩스 프랑스
Publication of KR20220127246A publication Critical patent/KR20220127246A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Library & Information Science (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Filling Or Discharging Of Gas Storage Vessels (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3D 장면을 나타내는 데이터를 인코딩 및 디코딩하기 위한 방법들 및 디바이스들이 개시된다. 한 세트의 제1 패치들은 3D 장면의 제1 영역으로부터 획득된 제1 MVD 콘텐츠로부터 생성된다. 패치는 MVD 콘텐츠의 뷰들 중 하나의 뷰의 일부이다. 한 세트의 제2 패치들은 3D 장면의 제2 영역으로부터 획득된 제2 MVD 콘텐츠로부터 생성된다. 제1 패치 및 제2 패치를 패킹하는 아틀라스가 생성되고, 아틀라스의 패치에 대하여, 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 메타데이터와 연관된다. 디코딩 측에서, 제1 패치들은 뷰포트 이미지를 렌더링하는 데 사용되고, 제2 패치들은 뷰포트 이미지를 사전-프로세싱 또는 사후-프로세싱하는 데 사용된다.

Description

보조 패치들을 갖는 볼류메트릭 비디오
본 발명의 원리들은 대체적으로 3차원(3D) 장면 및 볼류메트릭 비디오 콘텐츠(volumetric video content)의 분야에 관한 것이다. 본 문서는 또한, 모바일 디바이스들 또는 헤드 마운트 디스플레이(Head-Mounted Display, HMD)들과 같은 최종 사용자 디바이스들 상의 볼류메트릭 콘텐츠의 렌더링을 위해 3D 장면의 텍스처 및 기하구조를 나타내는 데이터의 인코딩, 포맷팅, 및 디코딩의 맥락에서 이해된다.
본 섹션은 독자에게 하기에서 기술되고/되거나 청구되는 본 발명의 원리들의 다양한 태양들과 관련될 수 있는 기술의 다양한 태양들을 소개하도록 의도된다. 이러한 논의는 본 발명의 원리들의 다양한 태양들의 더 양호한 이해를 용이하게 하기 위해 독자에게 배경 정보를 제공하는 것에 도움이 되는 것으로 여겨진다. 따라서, 이들 진술들은 이러한 관점에서 읽혀야 하고, 선행 기술의 인정들로서 읽혀서는 안 된다는 것이 이해되어야 한다.
최근, 이용가능한 넓은 시야 콘텐츠(최대 360°)가 성장해 왔다. 그러한 콘텐츠는, 헤드 마운트 디스플레이, 스마트글래스, PC 스크린, 태블릿, 스마트폰 등과 같은 몰입형 디스플레이 디바이스들 상의 콘텐츠를 주시하는 사용자에게 완전히 가시적이지 않을 수 있다. 이는, 주어진 순간에, 사용자가 콘텐츠의 일부만을 보는 중일 수 있음을 의미한다. 그러나, 사용자는 전형적으로, 머리 움직임, 마우스 움직임, 터치 스크린, 음성 등과 같은 다양한 수단에 의해 콘텐츠 내에서 내비게이팅할 수 있다. 전형적으로, 이러한 콘텐츠를 인코딩하고 디코딩하는 것이 바람직하다.
360° 플랫 비디오로도 불리는 몰입형 비디오는 사용자가 정지 시점을 중심으로 하는 자신의 머리의 회전을 통해 그 자신 주변의 전부를 주시할 수 있게 한다. 회전은 3 자유도(3 Degrees of Freedom, 3DoF) 경험만을 허용한다. 3DoF 비디오가, 예를 들어 헤드 마운트 디스플레이 디바이스(HMD)를 사용한, 전방향 비디오의 첫 경험에 충분하더라도, 3DoF 비디오는, 예를 들어 시차를 경험함으로써, 더 큰 자유도를 예상하는 뷰어에게 빠르게 실망감을 주게 될 수 있다. 덧붙여, 3DoF는 또한, 사용자가 자신의 머리를 회전시킬 뿐만 아니라 그의 머리를 3개 방향들로도 변환하기 때문에 어지러움을 유발할 수 있는데, 이러한 변환들은 3DoF 비디오 경험들에서 재현되지 않는다.
넓은 시야 콘텐츠는, 특히, 3차원 컴퓨터 그래픽 이미지 장면(3D CGI 장면), 포인트 클라우드(point cloud) 또는 몰입형 비디오일 수 있다. 그러한 몰입형 비디오들을 설계하기 위해 많은 용어들이 사용될 수 있다: 예를 들어, 가상 현실(Virtual Reality, VR), 360, 파노라마, 4π 스테라디안, 몰입형, 전방향 또는 넓은 시야.
볼류메트릭 비디오(6 자유도(6DoF) 비디오로도 알려짐)는 3DoF 비디오에 대한 대안이다. 6DoF 비디오를 주시할 때, 회전들에 더하여, 사용자는 또한, 주시된 콘텐츠 내에서 자신의 머리, 및 심지어 자신의 신체를 변환할 수 있고, 시차 및 심지어 볼륨들을 경험할 수 있다. 그러한 비디오들은 몰입감 및 장면 깊이의 인지를 현저히 증가시키고, 머리 변환들 동안 일관된 시각적 피드백을 제공함으로써 어지러움을 방지한다. 콘텐츠는 관심 장면의 색상 및 깊이의 동시 기록을 허용하는 전용 센서들의 수단에 의해 생성된다. 사진측량 기법들과 조합된 컬러 카메라의 리그(rig)의 사용은, 기술적 어려움들이 남아 있더라도, 그러한 기록을 수행하는 방식이다.
3DoF 비디오들이 텍스처 이미지들(예컨대, 위도/경도 투영 맵핑(mapping) 또는 정방형 투영 맵핑에 따라 인코딩된 구형 이미지들)의 비-맵핑으로부터 기인하는 이미지들의 시퀀스를 포함하지만, 6DoF 비디오 프레임들은 여러 시점들로부터의 정보를 임베드한다. 그들은 3차원 캡처로부터 기인한 일시적인 일련의 포인트 클라우드들로서 보일 수 있다. 뷰잉 조건들에 따라 2개 종류들의 볼류메트릭 비디오들이 고려될 수 있다. 제1 종류(즉, 완전한 6DoF)는 비디오 콘텐츠 내에서 완전한 자유 내비게이션을 허용하는 반면, 제2 종류(3DoF+로도 알려짐)는 사용자 뷰잉 공간을 뷰잉 구속 상자(viewing bounding box)로 불리는 제한적 볼륨으로 한정하여, 머리 및 시차 경험의 제한적 변환을 허용한다. 이러한 제2 맥락은 자리에 앉은 청중 구성원의 자유 내비게이션 조건과 수동 뷰잉 조건 사이의 유용한 절충안이다.
3DoF+ 시나리오에서, 일 접근법은 뷰잉 구속 상자의 임의의 포인트로부터 3D 장면을 주시하는 데 필요한 정보만을 전송하는 것에 있다. 다른 접근법은 뷰잉 구속 상자로부터 가시적이지는 않지만, 재조명, 충돌 검출 또는 촉각 상호작용들과 같은, 디코더 측에서의 다른 프로세스를 수행하는 데 유용한, 추가적인 기하구조 및/또는 색상 정보를 전송하는 것을 고려한다. 이러한 추가적인 정보는 가시적인 포인트들과 동일한 포맷으로 전달될 수 있다. 그러나, 정보의 일부는 렌더링을 위해 사용될 것이고 정보의 다른 일부는 다른 프로세싱을 위해 사용될 것임을 디코더에 나타내기 위한 포맷 및 방법들이 필요하다.
하기는 본 발명의 원리들의 일부 태양들에 대한 기본적인 이해를 제공하기 위해 본 발명의 원리들의 단순화된 요약을 제시한다. 이러한 발명의 내용은 본 발명의 원리들의 광범위한 개요가 아니다. 그것은 본 발명의 원리들의 핵심 또는 중요한 요소들을 식별하려고 의도되지 않는다. 하기의 발명의 내용은, 본 발명의 원리들의 일부 태양들을 하기에 제공되는 더 상세한 설명에 대한 서두로서 단순화된 형태로 제시할 뿐이다.
본 발명의 원리들은 3D 장면을 나타내는 데이터를 데이터 스트림에 인코딩하기 위한 방법에 관한 것이다. 본 방법은 다음의 단계들을 포함한다:
- 3D 장면의 렌더링을 위해 획득된 제1 멀티뷰+깊이(multi-view-plus-depth, MVD) 콘텐츠로부터 한 세트의 제1 패치들을 생성하는 단계. 제1 MVD는 3D 장면의 제1 영역으로부터 획득됨. 패치는 MVD 콘텐츠의 뷰들 중 하나의 뷰의 일부임.
- 사전-프로세싱 또는 사후-프로세싱 사용을 위해 획득된 제2 MVD 콘텐츠로부터 한 세트의 제2 패치들을 생성하는 단계. 제2 MVD는 3D 장면의 제2 영역으로부터 획득됨. 제2 영역은 제1 영역과 중첩되거나 분리될 수 있음.
- 제1 패치 및 제2 패치를 갖는 아틀라스(atlas)를 생성하는 단계. 아틀라스는 아틀라스 레이아웃에 따라 패치들을 패킹(packing)하는 이미지이고, 아틀라스의 패치에 대하여, 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 메타데이터와 연관됨; 및
- 상기 아틀라스를 상기 데이터 스트림에 인코딩하는 단계.
본 발명의 원리들은 또한, 데이터 스트림으로부터 3D 장면을 나타내는 데이터를 디코딩하기 위한 방법에 관한 것이다. 본 방법은 다음의 단계들을 포함한다:
- 아틀라스 및 연관된 메타데이터를 취출(retrieving)하기 위해 데이터 스트림을 디코딩하는 단계. 아틀라스는 아틀라스 레이아웃에 따라 패치들을 패킹하는 이미지임. 패치는 3D 장면의 영역으로부터 획득된 MVD 콘텐츠의 하나의 뷰의 일부임. 메타데이터는, 아틀라스의 패치에 대하여, 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 데이터를 포함함. 제1 패치는 3D 장면의 제1 영역으로부터 획득된 MVD 콘텐츠의 일부이고, 제2 패치는 3D 장면의 제2 영역으로부터 획득된 MVD의 일부임. 제1 영역 및 제2 영역은 중첩되거나 분리될 수 있음.
- 메타데이터에서 제1 패치들로서 표시된 패치들을 사용하여, 3D 장면 내의 시점으로부터의 뷰포트 이미지(viewport image)를 렌더링하는 단계; 및
- 상기 뷰포트 이미지를 사전-프로세싱 및/또는 사후-프로세싱하기 위해, 메타데이터에서 제2 패치들로 표시된 패치들을 사용하는 단계.
본 발명의 원리들은 또한, 상기 인코딩 방법을 구현하도록 구성된 프로세서를 포함하는 디바이스, 및 상기 디코딩 방법을 구현하도록 구성된 프로세서를 포함하는 디바이스에 관한 것이다.
본 발명의 원리들은 또한, 3D 장면을 나타내는 데이터를 운반하는 비일시적 매체 및/또는 데이터 스트림에 관한 것이다. 데이터 스트림 또는 비일시적 매체는 다음을 포함한다:
- 아틀라스 레이아웃에 따라 제1 패치 및 제2 패치를 패킹하는 아틀라스 이미지 - 제1 패치는 3D 장면의 렌더링을 위해 획득된 MVD 콘텐츠의 하나의 뷰의 일부이고, 제2 패치는 사전-프로세싱 또는 사후-프로세싱 사용을 위해 획득된 MVD 콘텐츠의 하나의 뷰의 일부임 -; 및
- 상기 아틀라스와 연관된 메타데이터 - 메타데이터는, 아틀라스의 패치에 대하여, 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 데이터를 포함함 -.
첨부 도면을 참조하는 하기의 설명을 읽을 시에, 본 발명이 더 잘 이해될 것이고, 다른 특정 특징들 및 이점들이 드러날 것이다.
- 도 1은 본 발명의 원리들의 비제한적인 실시예에 따른, 객체의 3차원(3D) 모델 및 3D 모델에 대응하는 포인트 클라우드의 포인트들을 도시한다.
- 도 2는 본 발명의 원리들의 비제한적인 실시예에 따른, 3D 장면들의 시퀀스를 표현하는 데이터의 인코딩, 송신, 및 디코딩의 비제한적인 예를 도시한다.
- 도 3은 본 발명의 원리들의 비제한적인 실시예에 따른, 도 8 및 도 9와 관련하여 기술된 방법을 구현하도록 구성될 수 있는 디바이스의 예시적인 아키텍처를 도시한다.
- 도 4는 본 발명의 원리들의 비제한적인 실시예에 따른, 데이터가 패킷 기반 송신 프로토콜을 통해 송신될 때의 스트림의 신택스(syntax)의 일 실시예의 일례를 도시한다.
- 도 5는 본 발명의 원리들의 비제한적인 실시예에 따른, 중심 시점으로부터의 구형 투영을 예시한다.
- 도 6은 본 발명의 원리들의 비제한적인 실시예에 따른, 인코더에 의한 아틀라스들(60, 61)의 생성의 일례를 도시한다.
- 도 7은 본 발명의 원리들의 비제한적인 실시예에 따른, 보조 패치들을 위한 3DoF+ 렌더링 플러스 추가 뷰(3DoF+ rendering plus additional view)들에 대한 뷰들의 획득을 예시한다.
- 도 8은 본 발명의 원리들의 비제한적인 실시예에 따른, 보조 정보를 포함하는 볼류메트릭 비디오 콘텐츠를 인코딩하기 위한 방법(80)을 예시한다.
- 도 9는 본 발명의 원리들의 비제한적인 실시예에 따른, 보조 정보를 포함하는 볼류메트릭 비디오 콘텐츠를 디코딩하기 위한 방법(90)을 예시한다.
본 발명의 원리들은 첨부 도면들을 참조하여 이하에서 더욱 완전히 기술될 것이며, 도면들에는 본 발명의 원리들의 예들이 도시되어 있다. 그러나, 본 발명의 원리들은 많은 대안적인 형태들로 구현될 수 있고, 본 명세서에 제시된 예들로 제한되는 것으로 해석되어서는 안 된다. 따라서, 본 발명의 원리들이 다양한 수정들 및 대안적인 형태들을 허용하지만, 이들의 특정 예들은 도면에서 예들로서 도시되어 있고, 본 명세서에서 상세히 기술될 것이다. 그러나, 본 발명의 원리들을 개시된 특정 형태들로 제한하려는 의도는 없지만, 반대로, 본 발명은 청구범위에 의해 정의된 바와 같은 본 발명의 원리들의 사상 및 범주 내에 속하는 모든 수정들, 등가물들 및 대안들을 포괄할 것이라는 것이 이해되어야 한다.
본 명세서에 사용된 용어는 단지 특정 예들을 설명하는 목적을 위한 것이고, 본 발명의 원리들을 제한하는 것으로 의도되지 않는다. 본 명세서에 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the")은, 문맥상 명백히 달리 나타내지 않는 한, 복수의 형태들도 또한 포함하도록 의도된다. 본 명세서에서 사용될 때, 용어들 "포함하다(comprises)", "포함하는(comprising)", "포함하다(includes)" 및/또는 "포함하는(including)"은 언급된 특징부, 정수, 단계, 동작, 요소, 및/또는 컴포넌트의 존재를 명시하지만, 하나 이상의 다른 특징부, 정수, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다. 게다가, 한 요소가 다른 요소에 "응답"하거나 "접속"되는 것으로 언급될 때, 그것은 또 다른 요소에 직접 응답하거나 접속될 수 있거나, 또는 개재 요소들이 존재할 수 있다. 대조적으로, 한 요소가 다른 요소에 "직접 응답"하거나 "직접 접속"되는 것으로 언급될 때, 어떠한 개재 요소들도 존재하지 않는다. 본 명세서에 사용된 바와 같이, 용어 "및/또는"은 연관된 열거된 항목들 중 하나 이상의 항목들 중 임의의 것 및 그의 모든 조합들을 포함하고, "/"로 약칭될 수 있다.
다양한 요소들을 기술하기 위해 용어들 "제1", "제2" 등이 본 명세서에 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 본 발명의 원리들의 교시로부터 벗어나지 않고서, 제1 요소는 제2 요소로 칭해질 수 있고, 유사하게, 제2 요소는 제1 요소로 칭해질 수 있다.
주요 통신 방향을 보여주기 위해 도면들 중 일부가 통신 경로들 상에 화살표들을 포함하지만, 통신은 묘사된 화살표들과는 반대 방향으로 발생할 수 있다는 것이 이해되어야 한다.
일부 예들은, 각각의 블록이 회로 요소, 모듈, 또는 특정 로직 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령어들을 포함하는 코드의 일부분을 표현하는 블록도들 및 동작 흐름도들과 관련하여 기술된다. 또한, 다른 구현예들에서, 블록들에서 언급된 기능(들)은 언급된 순서를 벗어나 발생할 수 있다는 것에 유의해야 한다. 예를 들어, 연속으로 도시된 2개의 블록들은 실제로, 실질적으로 동시에 실행될 수 있거나, 또는 블록들은 때때로, 관여된 기능에 따라 역순으로 실행될 수 있다.
본 명세서에서 "일례에 따른" 또는 "일례에서"라는 언급은, 그 예와 관련하여 기술되는 특정 특징부, 구조물, 또는 특성이 본 발명의 원리들의 적어도 하나의 구현예에 포함될 수 있음을 의미한다. 본 명세서 내의 다양한 곳들에서 문구 "일례에 따른" 또는 "일례에서"의 출현은 반드시 모두 동일한 예를 지칭하는 것은 아니며, 또는 다른 예들과 반드시 상호 배타적인 별개의 또는 대안적인 예들을 지칭하는 것도 아니다.
청구범위에 나타나는 참조 번호들은 단지 예시를 위한 것이고, 청구범위의 범주에 대해 제한하는 효과를 갖지 않을 것이다. 명시적으로 기술되어 있지 않지만, 본 예들 및 변형예들은 임의의 조합 또는 하위조합에서 채용될 수 있다.
도 1은 객체의 3차원(3D) 모델(10) 및 3D 모델(10)에 대응하는 포인트 클라우드(11)의 포인트들을 도시한다. 3D 모델(10) 및 포인트 클라우드(11)는, 예를 들어, 다른 객체들을 포함하는 3D 장면의 객체의 가능한 3D 표현에 대응할 수 있다. 모델(10)은 3D 메시 표현일 수 있고, 포인트 클라우드(11)의 포인트들은 메시의 정점들일 수 있다. 포인트 클라우드(11)의 포인트들은 또한, 메시의 면들의 표면 상에 펼쳐진 포인트들일 수 있다. 모델(10)은 또한, 포인트 클라우드(11)의 스플랫 버전(splatted version)으로서 표현될 수 있으며, 모델(10)의 표면은 포인트 클라우드(11)의 포인트들을 스플랫함으로써 생성된다. 모델(10)은 복셀(voxel)들 또는 스플라인(spline)들과 같은 많은 상이한 표현들에 의해 표현될 수 있다. 도 1은, 포인트 클라우드가 3D 객체의 표면 표현으로 정의될 수 있고 3D 객체의 표면 표현이 클라우드의 포인트로부터 생성될 수 있다는 사실을 도시한다. 본 명세서에 사용된 바와 같이, 이미지 상에 (3D 장면의 확장 포인트들에 의한) 3D 객체의 포인트들을 투영하는 것은 이러한 3D 객체의 임의의 표현, 예를 들어 포인트 클라우드, 메시, 스플라인 모델 또는 복셀 모델을 투영하는 것과 동등하다.
포인트 클라우드는 메모리에, 예를 들어 벡터 기반 구조로서 표현될 수 있으며, 여기서 각각의 포인트는 뷰포인트의 기준의 프레임 내의 그 자신의 좌표들(예컨대, 3차원 좌표들 XYZ, 또는 뷰포인트로부터의/으로의 입체각(solid angle) 및 거리(깊이로도 불림)) 및 구성요소로도 불리는 하나 이상의 속성들을 갖는다. 구성요소의 일례는 다양한 색 공간들에서 표현될 수 있는 색상 구성요소, 예를 들어 RGB(적색, 녹색, 청색) 또는 YUV(Y는 루마 구성요소이고 UV는 2개의 색차 구성요소들임)이다. 포인트 클라우드는 객체들을 포함하는 3D 장면의 표현이다. 3D 장면은 주어진 뷰포인트 또는 뷰포인트들의 범위로부터 보일 수 있다. 포인트 클라우드는 다수의 방식들에 의해, 예컨대:
Figure pct00001
깊이 활성 감지 디바이스에 의해 선택적으로 보완되는, 카메라들의 리그에 의한 실제 객체 샷의 캡처로부터;
Figure pct00002
모델링 툴에서 가상 카메라들의 리그에 의한 가상/합성(synthetic) 객체 샷의 캡처로부터;
Figure pct00003
실제 객체 및 가상 객체 둘 모두의 혼합으로부터 획득될 수 있다.
도 2는 3D 장면들의 시퀀스를 나타내는 데이터의 인코딩, 송신, 및 디코딩의 비제한적인 예를 도시한다. 인코딩 포맷은, 예를 들어 그리고 동시에, 3DoF, 3DoF+ 및 6DoF 디코딩에 호환가능할 수 있다.
3D 장면들(20)의 시퀀스가 획득된다. 픽처들의 시퀀스가 2D 비디오이므로, 3D 장면들의 시퀀스는 3D(볼류메트릭으로도 불림) 비디오이다. 3D 장면들의 시퀀스는 3DoF, 3DoF+ 또는 6DoF 렌더링 및 디스플레이를 위한 볼류메트릭 비디오 렌더링 디바이스에 제공될 수 있다.
3D 장면들(20)의 시퀀스가 인코더(21)에 제공된다. 인코더(21)는 입력으로서 하나의 3D 장면들 또는 3D 장면들의 시퀀스를 취하고, 입력을 나타내는 비트 스트림을 제공한다. 비트 스트림은 메모리(22) 내에 그리고/또는 전자 데이터 매체 상에 저장될 수 있고, 네트워크(22)를 통해 송신될 수 있다. 3D 장면들의 시퀀스를 나타내는 비트 스트림은 메모리(22)로부터 판독될 수 있고/있거나 디코더(23)에 의해 네트워크(22)로부터 수신될 수 있다. 디코더(23)는 상기 비트 스트림에 의해 입력되고, 예를 들어 포인트 클라우드 포맷으로, 3D 장면들의 시퀀스를 제공한다.
인코더(21)는 여러 단계들을 구현하는 여러 회로들을 포함할 수 있다. 제1 단계에서, 인코더(21)는 각각의 3D 장면을 적어도 하나의 2D 픽처 상에 투영한다. 3D 투영은 3차원 포인트들을 2차원 평면에 맵핑하는 임의의 방법이다. 그래픽 데이터를 디스플레이하기 위한 대부분의 현재 방법들은 평면(여러 비트 평면들로부터의 픽셀 정보) 2차원 매체들에 기초하므로, 이러한 유형의 투영의 사용은, 특히 컴퓨터 그래픽, 엔지니어링 및 드래프팅에서 광범위하다. 투영 회로(211)는 시퀀스(20)의 3D 장면에 대한 적어도 하나의 2차원 프레임(2111)을 제공한다. 프레임(2111)은 프레임(2111) 상에 투영된 3D 장면을 나타내는 색상 정보 및 깊이 정보를 포함한다. 변형예에서, 색상 정보 및 깊이 정보는 2개의 별개의 프레임들(2111, 2112)에 인코딩된다.
메타데이터(212)는 투영 회로(211)에 의해 사용되고 업데이트된다. 메타데이터(212)는 투영 동작에 관한, 그리고 도 5 내지 도 7과 관련하여 기술된 바와 같이 색상 및 깊이 정보가 프레임들(2111, 2112) 내에 조직되는 방식에 관한 정보(예컨대, 투영 파라미터들)를 포함한다.
비디오 인코딩 회로(213)는 프레임들(2111, 2112)의 시퀀스를 비디오로서 인코딩한다. 3D 장면(2111, 2112)의 픽처들(또는 3D 장면의 픽처들의 시퀀스)은 비디오 인코더(213)에 의해 스트림에 인코딩된다. 이어서, 비디오 데이터 및 메타데이터(212)는 데이터 캡슐화 회로(214)에 의해 데이터 스트림에 캡슐화된다.
인코더(213)는, 예를 들어, 하기와 같은 인코더와 호환된다:
- JPEG, 규격 ISO/CEI 10918-1 UIT-T Recommendation T.81, https://www.itu.int/rec/T-REC-T.81/en;
- MPEG-4 AVC 또는 h264로도 명명된 AVC. UIT-T H.264 및 ISO/CEI MPEG-4 파트 10(ISO/CEI 14496-10) 둘 모두에 명시됨, http://www.itu.int/rec/T-REC-H.264/en, HEVC(그의 규격은 ITU website, T recommendation, H series, h265, http://www.itu.int/rec/T-REC-H.265-201612-I/en에 기반함);
- 3D-HEVC(규격이 ITU website, T recommendation, H series, h265, http://www.itu.int/rec/T-REC-H.265-201612-I/en annex G and I에 기반하는 HEVC의 확장판);
- Google에 의해 개발된 VP9; 또는
- Alliance for Open Media에 의해 개발된 AV1(AOMedia Video 1).
데이터 스트림은 디코더(23)에 의해, 예를 들어 네트워크(22)를 통해 액세스가능한 메모리에 저장된다. 디코더(23)는 디코딩의 상이한 단계들을 구현하는 상이한 회로들을 포함한다. 디코더(23)는 입력으로서 인코더(21)에 의해 생성된 데이터 스트림을 취하고, 헤드 마운트 디바이스(HMD)와 같은 볼류메트릭 비디오 디스플레이 디바이스에 의해 렌더링되고 디스플레이될 3D 장면들(24)의 시퀀스를 제공한다. 디코더(23)는 소스(22)로부터 스트림을 획득한다. 예를 들어, 소스(22)는 하기를 포함하는 세트에 속한다:
- 로컬 메모리, 예컨대, 비디오 메모리 또는 RAM(또는 랜덤 액세스 메모리), 플래시 메모리, ROM(또는 판독 전용 메모리), 하드 디스크;
- 저장소 인터페이스, 예컨대, 대용량 저장소, RAM, 플래시 메모리, ROM, 광학 디스크 또는 자기 지지체를 갖는 인터페이스;
- 통신 인터페이스, 예컨대, 유선 인터페이스(예를 들어, 버스 인터페이스, 광역 네트워크 인터페이스, 근거리 통신망 인터페이스) 또는 무선 인터페이스(예컨대, IEEE 802.11 인터페이스 또는 Bluetooth® 인터페이스); 및
- 사용자가 데이터를 입력할 수 있게 하는 그래픽 사용자 인터페이스와 같은 사용자 인터페이스.
디코더(23)는 데이터 스트림에 인코딩된 데이터를 추출하기 위한 회로(234)를 포함한다. 회로(234)는 입력으로서 데이터 스트림을 취하고, 2차원 비디오 및 스트림에 인코딩된 메타데이터(212)에 대응하는 메타데이터(232)를 제공한다. 비디오는 프레임들의 시퀀스를 제공하는 비디오 디코더(233)에 의해 디코딩된다. 디코딩된 프레임들은 색상 및 깊이 정보를 포함한다. 변형예에서, 비디오 디코더(233)는 프레임들의 2개의 시퀀스들을 제공하는데, 하나의 시퀀스는 색상 정보를 포함하고, 다른 시퀀스는 깊이 정보를 포함한다. 회로(231)는 메타데이터(232)를 사용하여, 3D 장면들(24)의 시퀀스를 제공하기 위해 디코딩된 프레임들로부터의 색상 및 깊이 정보를 비투영(un-project)한다. 3D 장면들(24)의 시퀀스는 3D 장면들(20)의 시퀀스에 대응하며, 이때 정밀도의 가능한 손실은 2D 비디오로서의 인코딩 및 비디오 압축과 관련된다.
예를 들어, 회로(231)에 의한 비투영 단계 전에 또는 비투영 이후의 사후-프로세싱 단계에서, 다른 회로들 및 기능성들이 추가될 수 있다. 예를 들어, 회로들은 장면 내의 임의의 곳에 위치된 다른 광으로부터의 장면의 재조명을 위해 추가될 수 있다. 충돌 검출은, 일관된 현실적인 방식으로 또는 경로 계획을 위해 새로운 객체를 3DoF+ 장면에 추가하는 것과 같이, 깊이 합성(depth compositing)을 위해 수행될 수 있다. 그러한 회로는 3DoF+ 렌더링 자체에 대해서는 사용되지 않는 3D 장면에 대한 기하구조 및/또는 색상 정보를 요구할 수 있다. 상이한 종류의 정보의 시맨틱스(semantics)가 3DoF+ 장면을 나타내는 비트 스트림을 나타내야 한다.
도 3은 도 8 및 도 9와 관련하여 기술된 방법을 구현하도록 구성될 수 있는 디바이스(30)의 예시적인 아키텍처를 도시한다. 도 2의 인코더(21) 및/또는 디코더(23)는 이러한 아키텍처를 구현할 수 있다. 대안적으로, 인코더(21) 및/또는 디코더(23)의 각각의 회로는, 예를 들어, 그들의 버스(31)를 통해 그리고/또는 I/O 인터페이스(36)를 통해 함께 연결된, 도 3의 아키텍처에 따른 디바이스일 수 있다.
디바이스(30)는 데이터 및 어드레스 버스(31)에 의해 함께 연결되는 하기의 요소들을 포함한다:
- 예를 들어, DSP(또는 디지털 신호 프로세서)인 마이크로프로세서(32)(또는 CPU);
- ROM(또는 판독 전용 메모리)(33);
- RAM(또는 랜덤 액세스 메모리)(34);
- 저장소 인터페이스(35);
- 애플리케이션으로부터의, 송신할 데이터의 수신을 위한 I/O 인터페이스(36); 및
- 전력 공급부, 예컨대 배터리.
일례에 따르면, 전력 공급부는 디바이스의 외부에 있다. 언급된 메모리 각각에서, 본 명세서에서 사용되는 단어 ≪레지스터≫는 작은 용량(약간의 비트들)의 영역 또는 매우 큰 영역(예컨대, 전체 프로그램 또는 다량의 수신되거나 디코딩된 데이터)에 대응할 수 있다. ROM(33)은 적어도 프로그램 및 파라미터들을 포함한다. ROM(33)은 본 발명의 원리들에 따른 기법들을 수행하기 위한 알고리즘들 및 명령어들을 저장할 수 있다. 스위치-온될 때, CPU(32)는 RAM에 프로그램을 업로드하고, 대응하는 명령어들을 실행한다.
RAM(34)은, 레지스터 내의, CPU(32)에 의해 실행되고 디바이스(30)의 스위치-온 후에 업로드된 프로그램, 레지스터 내의 입력 데이터, 레지스터 내의 방법의 상이한 상태들의 중간 데이터, 및 레지스터 내의 방법의 실행을 위해 사용되는 다른 변수들을 포함한다.
본 명세서에 기술된 구현예들은, 예를 들어, 방법 또는 프로세스, 장치, 컴퓨터 프로그램 제품, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현예의 맥락에서만 논의되더라도(예를 들어, 방법 또는 디바이스로서만 논의됨), 논의된 특징들의 구현예는 또한 다른 형태들(예를 들어, 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 예컨대 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 대체적으로 프로세싱 디바이스들로 지칭되는, 예를 들어, 프로세서와 같은 장치에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터, 셀룰러폰, 휴대용/개인 디지털 어시스턴트("PDA"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스와 같은 통신 디바이스들을 포함한다.
예들에 따르면, 디바이스(30)는 도 8 및 도 9와 관련하여 기술된 방법을 구현하도록 구성되고, 하기를 포함하는 세트에 속한다:
- 모바일 디바이스;
- 통신 디바이스;
- 게임 디바이스;
- 태블릿(또는 태블릿 컴퓨터);
- 랩톱;
- 정지 픽처 카메라;
- 비디오 카메라;
- 인코딩 칩;
- 서버(예컨대, 브로드캐스트 서버, 주문형 비디오 서버 또는 웹 서버).
도 4는 데이터가 패킷 기반 송신 프로토콜을 통해 송신될 때의 스트림의 신택스의 일 실시예의 일례를 도시한다. 도 4는 볼류메트릭 비디오 스트림의 예시적인 구조물(4)을 도시한다. 구조물은 신택스의 독립적인 요소들로 스트림을 조직하는 컨테이너에 있다. 구조물은 스트림의 모든 신택스 요소들에 공통인 데이터의 세트인 헤더 부분(41)을 포함할 수 있다. 예를 들어, 헤더 부분은 신택스 요소들에 관한 메타데이터의 일부를 포함하며, 이는 그들 각각의 특성 및 역할을 설명한다. 헤더 부분은 또한, 도 2의 메타데이터(212)의 일부, 예를 들어, 프레임들(2111, 2112) 상으로 3D 장면의 포인트들을 투영하기 위해 사용되는 중심 시점의 좌표들을 포함할 수 있다. 구조물은 신택스의 요소(42) 및 신택스의 적어도 하나의 요소(43)를 포함하는 페이로드를 포함한다. 신택스 요소(42)는 색상 및 깊이 프레임들을 나타내는 데이터를 포함한다. 이미지들은 비디오 압축 방법에 따라 압축되었을 수 있다.
신택스의 요소(43)는 데이터 스트림의 페이로드의 일부이고, 신택스의 요소(42)의 프레임들이 어떻게 인코딩되는지에 관한 메타데이터, 예를 들어 프레임들 상에 3D 장면의 포인트들을 투영하고 패킹하기 위해 사용되는 파라미터들을 포함할 수 있다. 그러한 메타데이터는 비디오의 각각의 프레임과 또는 프레임들의 그룹(비디오 압축 표준들에서 픽처들의 그룹(Group of Pictures, GoP)으로도 알려짐)에 연관될 수 있다.
도 5는 4개의 투영 중심들의 일례를 갖는 패치 아틀라스 접근법을 도시한다. 3D 장면(50)은 캐릭터를 포함한다. 예를 들어, 투영의 중심(51)은 투시 카메라(perspective camera)이고, 카메라(53)는 정사영 카메라(orthographic camera)이다. 카메라는 또한, 예를 들어, 구형 맵핑(예컨대, 정방형 맵핑) 또는 큐브 맵핑을 갖는 전방향 카메라일 수 있다. 3D 장면의 3D 포인트들은 메타데이터의 투영 데이터에 설명된 투영 동작에 따라, 투영 중심들에 위치된 가상 카메라들과 연관된 2D 평면들 상에 투영된다. 도 5의 예에서, 카메라(51)에 의해 캡처된 포인트들의 투영은 원근 맵핑(perspective mapping)에 따라 패치(52) 상에 맵핑되고, 카메라(53)에 의해 캡처된 포인트들의 투영은 정사영 맵핑에 따라 패치(54) 상에 맵핑된다.
투영된 픽셀들의 클러스터링은 직사각형 아틀라스(55)에 패킹된 다수의 2D 패치들을 산출한다. 아틀라스 내의 패치들의 조직은 아틀라스 레이아웃을 정의한다. 일 실시예에서, 동일한 레이아웃을 갖는 2개의 아틀라스들: 텍스처(즉, 색상) 정보에 대한 하나의 아틀라스 및 깊이 정보에 대한 하나의 아틀라스. 동일한 카메라에 의해 또는 2개의 별개의 카메라들에 의해 캡처된 2개의 패치들은, 예를 들어 패치들(54, 56)과 같은 3D 장면의 동일한 부분을 나타내는 정보를 포함할 수 있다.
패킹 동작은 각각의 생성된 패치에 대한 패치 데이터를 생성한다. 패치 데이터는 투영 데이터에 대한 참조(예를 들어, 투영 데이터에 대한 포인터(즉, 데이터 스트림 내의 또는 메모리 내의 어드레스) 또는 투영 데이터의 테이블 내의 인덱스) 및 아틀라스 내의 패치의 크기 및 위치를 설명하는 정보(예컨대, 상단 좌측 코너 좌표들, 픽셀들의 크기 및 폭)를 포함한다. 하나 또는 2개의 아틀라스들의 압축 데이터와 연관되어 데이터 스트림에 캡슐화될 메타데이터에 패치 데이터 항목들이 추가된다.
도 6은 인코더에 의한 아틀라스들(60, 61)의 생성의 일례를 도시한다. 아틀라스들(60, 61)은 본 발명의 원리들의 비제한적인 실시예에 따른, 3D 장면의 포인트들의 텍스처 정보(예컨대, RGB 데이터 또는 YUV 데이터)를 포함한다. 도 5와 관련하여 설명된 바와 같이, 아틀라스는 패치들을 패킹하는 이미지이다. 예를 들어, 인코더는 도 6의 예에서의 3개의 뷰들(62, 63, 64)을 포함하는 멀티뷰+깊이 비디오를 입력으로서 취한다. 인코더는 뷰들간 중복성을 제거하고(프루닝(pruning) 단계), 텍스처 및 깊이의 선택된 패치들을 하나 이상의 아틀라스들 내로 패킹한다. 따라서, 비트스트림은 텍스처 및 깊이 패치들의 아틀라스들을 전달하는 다수의 비디오 스트림들(예컨대, HEVC 비디오 스트림들)로 이루어지며, 이들은 입력 뷰들의 카메라 파라미터들 및 아틀라스들 레이아웃들을 설명하는 메타데이터를 동반한다.
패치 아틀라스들은 텍스처 및 깊이에 대해 동일한 픽처 크기 및 동일한 레이아웃(동일한 패킹)을 갖는, 텍스처 및 깊이 아틀라스 구성요소들의 쌍들로 이루어진다. 일 접근법에서, 아틀라스들은 뷰잉 구속 상자 내의 임의의 포인트로부터의 장면의 3DoF+ 렌더링에 필요한 정보만을 전달한다. 다른 접근법에서, 아틀라스들은 장면 재조명 또는 충돌 검출과 같은 다른 프로세싱에 유용한 추가적인 기하구조 및/또는 색상 정보를 전달할 수 있다. 예를 들어, 이러한 추가적인 정보는 3D 장면의 객체들의 후면의 기하구조일 수 있다. 그러한 패치들은 보조 패치들로 불린다. 그들은 디코더에 의해 렌더링되도록 의도되는 것이 아니라, 디코더의 사전-프로세싱 또는 사후-프로세싱 회로에 의해 사용된다.
도 7은 보조 패치들을 위한 3DoF+ 렌더링 플러스 추가 뷰들을 위한 뷰들의 획득을 예시한다. 인코더 측에서, 보조 패치들의 생성은 상이한 수단에 의해 수행될 수 있다. 예를 들어, 장면(70)의 획득을 위해, 제1 그룹의 실제 또는 가상 카메라들(71)이 장면(70)의 전면을 향해 배치될 수 있다. 제2 그룹의 실제 또는 가상 카메라들(72)은 볼류메트릭 장면의 후면 및 측면들을 보도록 배치된다. 일 실시예에서, 카메라들(72)은 카메라들(71) 보다 더 낮은 해상도로 뷰들을 캡처한다. 카메라들(72)은 객체들의 숨겨진 부분의 기하구조 및/또는 색상을 얻는다. 카메라들(71)에 의해 캡처된 뷰들로부터 획득된 패치들은 3DoF+ 렌더링을 위한 패치들인 반면, 카메라들(72)에 의해 캡처된 뷰들로부터 획득된 패치들은 사전-프로세싱 또는 사후-프로세싱 사용을 위한 기하구조 및/또는 색상 정보에 대한 설명을 완성하기 위한 보조 패치들이다. 아틀라스의 패치들과 연관된 메타데이터는 각각의 패치의 시맨틱스를 시그널링하도록 포맷화될 수 있다. 디코더 측에서, 뷰포트 렌더러는 렌더링에 무효한 패치들을 건너뛰어야 한다. 메타데이터는 또한, 디코더의 어떤 모듈(들)이 이러한 렌더링 무효 패치들을 사용할 수 있는지를 나타낸다. 예를 들어, 재조명기 회로는 이러한 보조 정보를 사용하여, 광의 시점으로부터의 그것의 기하구조 맵(geometry map)을 업데이트하고, 전체 장면의 조명된 텍스처를 변경하여, 그에 따라 적절한 그림자들을 생성할 것이다.
전형적으로 더 낮은 해상도에서, 객체들의 후면 부분들의 기하구조를 나타내는, 후방 및 측방들로부터 촬영하는 카메라들(72)과 연관된, 보조 패치들을 생성하기 위한 수단이 인코더에 추가된다. 후방 및 측방으로부터의 추가적인 깊이 뷰들이 먼저 획득되어야 하며, 이는 다양한 방식들로 행해질 수 있다. 합성적으로 생성된 객체들의 경우, 임의의 곳에 배치된 가상 카메라들과 연관된 깊이 이미지들은 3D 모델로부터 직접 획득된다. 자연스러운 3D 캡처들을 위해, 추가적인 색상 및/또는 활성 깊이 카메라들이 촬영 스테이지에 추가될 수 있으며: 깊이 카메라들은 깊이 뷰들을 직접 제공하는 반면, 사진측량 알고리즘은 색상 뷰들로부터 깊이를 추정한다. 3D 모델도 추가적인 캡처도 이용가능하지 않을 때, 볼록 형상 완성 알고리즘들을 사용하여, 전방 카메라들로부터 회수된 개방 형태 기하구조로부터 그럴듯한 폐쇄 형상들을 생성할 수 있다. 이어서, 카메라들(71)로부터의 뷰들 상에서 수행된 것과 유사한 방식으로, 뷰간 중복성이 프루닝에 의해 제거된다. 일 실시예에서, 프루닝은 2개의 그룹들의 뷰들에 대해 독립적으로 수행된다. 따라서, 정규 패치와 여분의 패치 사이의 가능한 중복성이 제거되지 않는다. 생성된 보조 깊이 패치들은 깊이 패치 아틀라스(들) 내에 정규 패치들과 함께 패킹된다.
다른 실시예에서, 보조 패치들이 깊이만을 위해 정의되면, 텍스처 및 깊이 아틀라스들에 대해 동일한 레이아웃이 사용되는 경우, 아틀라스 상의 텍스처 부분은 빈 상태로 유지될 것이다. 이러한 보조 패치들이 더 낮은 해상도로 정의되는 것으로 가정되더라도, 이것은 텍스처 아틀라스에서의 공간 손실을 초래할 것이다. 그러한 실시예에서, 깊이 및 텍스처 아틀라스들에 대해 상이한 레이아웃들이 사용될 수 있으며, 이러한 차이점은 아틀라스들과 연관된 메타데이터에 표시된다.
아틀라스들을 설명하는 메타데이터에 대한 가능한 신택스는 'entity_id'라고 불리는 고레벨 개념을 포함할 수 있으며: 이러한 entity_id는 객체 필터링 또는 합성과 같은 고레벨 시맨틱 프로세싱에 대한 인덱스에 패치들의 그룹을 연관시킬 수 있게 한다. 아틀라스 파라미터들 메타데이터에 대한 가능한 신택스 a가 하기의 테이블에 나타나 있다.
Figure pct00004
본 발명의 원리들의 일 실시예에 따르면, 보조 패치들은 보조 엔티티들로 불리는 특정 엔티티들로서 식별된다. 이어서, 엔티티들의 수 및 그들의 기능(즉, 그들이 보조 엔티티들인지 여부)이 하기의 테이블에 나타낸 바와 같이 메타데이터에 설명된다:
Figure pct00005
1과 동일한 auxiliary_flag는, 각각의 엔티티 구조에 대해 보조 설명이 존재함을 나타낸다.
1과 동일한 auxiliary_entity_flag[ e ]는, 엔티티 e와 관련된 패치들이 뷰포트 렌더링을 위한 것이 아님을 나타낸다.
본 발명의 원리들의 다른 실시예에 따르면, 보조 패치들은 하기의 테이블에 나타낸 바와 같이 아틀라스 파라미터들 신택스를 수정함으로써 패치 레벨에서 시그널링된다:
Figure pct00006
1과 동일한 auxiliary_flag는, 각각의 패치 구조에 대해 보조 설명이 존재함을 나타낸다.
1과 동일한 auxiliary_patch_flag[ a ][ p ]는, 아틀라스 a의 패치 p가 뷰포트 렌더링을 위한 것이 아님을 나타낸다.
다른 실시예에서, 패치 정보 데이터 신택스는 하기의 테이블에 나타낸 바와 같이 보조 패치 플래그를 정의한다:
Figure pct00007
디코딩 측에서, auxiliary_patch_flag는 패치가 렌더링을 위한 정보를 포함하는지 그리고/또는 다른 모듈을 위한 정보를 포함하는지를 결정하는 데 사용된다.
도 8은 본 발명의 원리들의 비제한적인 실시예에 따른, 보조 정보를 포함하는 볼류메트릭 비디오 콘텐츠를 인코딩하기 위한 방법(80)을 예시한다. 단계(81)에서, 3DoF+ 렌더링에 사용되도록 의도된 패치들이, 예를 들어, 제1 그룹의 카메라들에 의해 획득된 멀티뷰+깊이 콘텐츠로부터의 중복되는 정보를 프루닝함으로써 생성된다. 단계(82)에서, 렌더링되도록 의도되지 않은 장면의 부분들을 촬영하는 카메라들에 의해 캡처된 뷰들로부터, 보조 패치들이 생성된다. 단계(81) 및 단계(82)는 병렬로 또는 차례로 실행될 수 있다. 보조 패치들을 생성하는 데 사용되는 뷰들은, 예를 들어, 3D 장면의 후방 및 측방에 위치된 제2 그룹의 카메라들에 의해 캡처된다. 보조 패치들은, 예를 들어, 제1 그룹 및 제2 그룹의 카메라들에 의해 캡처된 뷰들에 포함된 중복되는 정보를 프루닝함으로써 생성된다. 다른 실시예에서, 보조 패치들은, 예를 들어, 단지 제2 그룹의 카메라들에 의해 캡처된 뷰들에 포함된 중복되는 정보를 프루닝함으로써 생성된다. 이러한 실시예에서는, 3DoF+ 패치들과 보조 패치들 사이에 중복성이 존재할 수 있다. 단계(83)에서, 3DoF+ 및 보조 패치들을 동일한 이미지에 패킹함으로써 아틀라스들이 생성된다. 일 구현예에서, 패킹 레이아웃은 아틀라스의 깊이 및 색상 구성요소들에 대해 상이하다. 아틀라스 파라미터들 및 패치 파라미터들을 설명하는 메타데이터는 상기 테이블들에 나타낸 바와 같은 신택스에 따라 생성된다. 메타데이터는, 각각의 패치에 대해, 패치가 렌더링되도록 의도된 3DoF+ 패치인지 또는 사전-프로세싱 및/또는 사후-프로세싱에 사용되도록 의도된 보조 패치인지를 나타내는 정보를 포함한다. 단계(84)에서, 생성된 아틀라스들 및 연관된 메타데이터가 데이터 스트림에 인코딩된다.
도 9는 본 발명의 원리들의 비제한적인 실시예에 따른, 보조 정보를 포함하는 볼류메트릭 비디오 콘텐츠를 디코딩하기 위한 방법(90)을 예시한다. 단계(91)에서, 볼류메트릭 콘텐츠를 나타내는 데이터 스트림이 스트림으로부터 획득된다. 데이터 스트림은 아틀라스들 및 연관된 메타데이터를 취출하기 위해 디코딩된다. 아틀라스는 패킹 레이아웃에 따라 적어도 하나의 패치를 패킹하는 이미지이다. 패치는 3D 장면의 일부를 나타내는 깊이 및/또는 색상 정보를 포함하는 픽처이다. 메타데이터는 패치를 역투영(de-project)하고 3D 장면을 취출하기 위한 정보를 포함한다. 단계(92)에서, 아틀라스들로부터 패치들이 언패킹(unpacking)되고, 메타데이터에 포함된 정보에 따른 특성이 각각의 패치에 귀속된다. 패치는, 단계(93)에서 뷰포트 이미지를 렌더링하는 데 사용되도록 의도된 3DoF+ 패치, 또는 단계(94)에서 사전-프로세싱 또는 사후-프로세싱 동작에 사용되도록 의도된 보조 패치일 수 있다. 단계(93) 및 단계(94)는 병렬로 또는 차례로 실행될 수 있다.
본 명세서에 기술된 구현예들은, 예를 들어, 방법 또는 프로세스, 장치, 컴퓨터 프로그램 제품, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현예의 맥락에서만 논의되더라도(예를 들어, 방법 또는 디바이스로서만 논의됨), 논의된 특징들의 구현예는 또한 다른 형태들(예를 들어, 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 예컨대 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 대체적으로 프로세싱 디바이스들로 지칭되는, 예를 들어, 프로세서와 같은 장치에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 스마트폰, 태블릿, 컴퓨터, 모바일 폰, 휴대용/개인 디지털 어시스턴트("PDA"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스와 같은 통신 디바이스들을 포함한다.
본 명세서에 기술된 다양한 프로세스들 및 특징들의 구현예들은 여러 가지 상이한 장비 또는 애플리케이션들, 특히, 예를 들어, 데이터 인코딩, 데이터 디코딩, 뷰 생성, 텍스처 프로세싱, 및 이미지들 및 관련 텍스처 정보 및/또는 깊이 정보의 다른 프로세싱과 연관된 장비 또는 애플리케이션들에서 구현될 수 있다. 그러한 장비의 예들은, 인코더, 디코더, 디코더로부터의 출력을 프로세싱하는 후처리-프로세서, 인코더에 입력을 제공하는 전처리-프로세서, 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋톱 박스, 랩톱, 개인용 컴퓨터, 휴대폰, PDA, 및 다른 통신 디바이스를 포함한다. 분명히 알 수 있는 바와 같이, 장비는 모바일일 수 있고, 심지어 모바일 차량에 설치될 수 있다.
추가적으로, 방법들은 프로세서에 의해 수행되는 명령어들에 의해 구현될 수 있고, 그러한 명령어들(및/또는 구현에 의해 생성된 데이터 값들)은, 예를 들어 집적 회로, 소프트웨어 캐리어, 또는 예를 들어, 하드 디스크, 컴팩트 디스켓("CD"), (예를 들어, 종종 디지털 범용 디스크 또는 디지털 비디오 디스크로 지칭되는 DVD와 같은) 광학 디스크, 랜덤 액세스 메모리("RAM"), 또는 판독 전용 메모리("ROM")와 같은 다른 저장 디바이스와 같은 프로세서 판독가능 매체 상에 저장될 수 있다. 명령어들은 프로세서 판독가능 매체 상에 유형적으로 구현된 애플리케이션 프로그램을 형성할 수 있다. 명령어들은, 예를 들어, 하드웨어, 펌웨어, 소프트웨어, 또는 조합으로 있을 수 있다. 명령어들은, 예를 들어, 운영 체제, 별도의 애플리케이션, 또는 그 둘의 조합에서 찾을 수 있다. 따라서, 프로세서는, 예를 들어, 프로세스를 수행하도록 구성된 디바이스, 및 프로세스를 수행하기 위한 명령어들을 갖는 프로세서 판독가능 매체(예컨대, 저장 디바이스)를 포함하는 디바이스 둘 모두로서 특징지어질 수 있다. 또한, 프로세서 판독가능 매체는 구현에 의해 생성된 데이터 값들을, 명령어들에 더하여 또는 이들 대신에, 저장할 수 있다.
당업자에게 명백한 바와 같이, 구현예들은, 예를 들어 저장되거나 송신될 수 있는 정보를 전달하도록 포맷화된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 신택스를 기록하거나 판독하기 위한 규칙들을 데이터로서 전달하기 위해, 또는 기술된 실시예에 의해 기록된 실제 신택스 값들을 데이터로서 전달하기 위해 포맷화될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 전달하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.
다수의 구현예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 이루어질 수 있음이 이해될 것이다. 예를 들어, 다른 구현예들을 생성하기 위해 상이한 구현예들의 요소들이 조합되거나, 보충되거나, 수정되거나, 또는 제거될 수 있다. 추가적으로, 당업자는, 다른 구조들 및 프로세스들이 개시된 것들을 대체할 수 있고, 생성된 구현예들이, 개시된 구현예들과 적어도 실질적으로 동일한 결과(들)를 달성하기 위해, 적어도 실질적으로 동일한 기능(들)을 적어도 실질적으로 동일한 방식(들)으로 수행할 것임을 이해할 것이다. 따라서, 이들 및 다른 구현예들이 본 출원에 의해 고려된다.

Claims (12)

  1. 3D 장면을 데이터 스트림에 인코딩하기 위한 방법으로서,
    - 상기 3D 장면의 렌더링을 위해 획득된 제1 멀티뷰+깊이(multi-view-plus-depth, MVD) 콘텐츠로부터 한 세트의 제1 패치들을 생성하는 단계 - 패치는 상기 MVD 콘텐츠의 뷰들 중 하나의 뷰의 일부임 -;
    - 사전-프로세싱 또는 사후-프로세싱 사용을 위해 획득된 제2 MVD 콘텐츠로부터 한 세트의 제2 패치들을 생성하는 단계;
    - 상기 제1 패치 및 상기 제2 패치의 아틀라스(atlas)를 생성하는 단계 - 아틀라스는 아틀라스 레이아웃에 따라 패치들을 패킹(packing)하는 이미지이고, 상기 아틀라스의 패치에 대하여, 상기 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 메타데이터와 연관됨 -; 및
    - 상기 아틀라스를 상기 데이터 스트림에 인코딩하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제2 MVD는 상기 제1 MVD의 해상도보다 더 낮은 해상도로 획득되는, 방법.
  3. 제1항 또는 제2항에 있어서, 패치는 상기 MVD의 뷰들 사이의 정보 중복성을 제거함으로써 획득되는 MVD의 하나의 뷰의 일부인, 방법.
  4. 데이터 스트림으로부터 3D 장면을 디코딩하기 위한 방법으로서,
    - 아틀라스 및 연관된 메타데이터를 취출(retrieving)하기 위해 상기 데이터 스트림을 디코딩하는 단계 - 아틀라스는 아틀라스 레이아웃에 따라 패치들을 패킹하는 이미지이고, 패치는 상기 3D 장면의 영역으로부터 획득된 MVD 콘텐츠의 하나의 뷰의 일부이고, 상기 메타데이터는, 상기 아틀라스의 패치에 대하여, 상기 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 데이터를 포함함 -;
    - 상기 메타데이터에서 제1 패치들로서 표시된 패치들을 사용하여, 상기 3D 장면 내의 시점으로부터의 뷰포트 이미지(viewport image)를 렌더링하는 단계; 및
    - 상기 뷰포트 이미지를 사전-프로세싱 및/또는 사후-프로세싱하기 위해, 상기 메타데이터에서 제2 패치들로서 표시된 패치들을 사용하는 단계를 포함하는, 방법.
  5. 제4항에 있어서, 상기 제2 MVD는 상기 제1 MVD의 해상도보다 더 낮은 해상도를 갖는, 방법.
  6. 3D 장면을 데이터 스트림에 인코딩하기 위한 디바이스로서, 상기 디바이스는 프로세서와 연관된 메모리를 포함하고, 상기 프로세서는,
    - 상기 3D 장면의 렌더링을 위해 획득된 제1 멀티뷰+깊이(MVD) 콘텐츠로부터 한 세트의 제1 패치들을 생성하도록 - 패치는 상기 MVD 콘텐츠의 뷰들 중 하나의 뷰의 일부임 -;
    - 사전-프로세싱 또는 사후-프로세싱 사용을 위해 획득된 제2 MVD 콘텐츠로부터 한 세트의 제2 패치들을 생성하도록;
    - 상기 제1 패치 및 상기 제2 패치의 아틀라스를 생성하도록 - 아틀라스는 아틀라스 레이아웃에 따라 패치들을 패킹하는 이미지이고, 상기 아틀라스의 패치에 대하여, 상기 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 메타데이터와 연관됨 -; 그리고
    - 상기 아틀라스를 상기 데이터 스트림에 인코딩하도록 구성되는, 디바이스.
  7. 제6항에 있어서, 상기 제2 MVD는 상기 제1 MVD의 해상도보다 더 낮은 해상도로 획득되는, 디바이스.
  8. 제6항 또는 제7항에 있어서, 패치는 상기 MVD의 뷰들 사이의 정보 중복성을 제거함으로써 획득되는 MVD의 하나의 뷰의 일부인, 디바이스.
  9. 데이터 스트림으로부터 3D 장면을 디코딩하기 위한 디바이스로서, 상기 디바이스는 프로세서를 포함하고, 상기 프로세서는,
    - 아틀라스 및 연관된 메타데이터를 취출하기 위해 상기 데이터 스트림을 디코딩하도록 - 아틀라스는 아틀라스 레이아웃에 따라 패치들을 패킹하는 이미지이고, 패치는 상기 3D 장면의 영역으로부터 획득된 MVD 콘텐츠의 하나의 뷰의 일부이고, 상기 메타데이터는, 상기 아틀라스의 패치에 대하여, 상기 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 데이터를 포함함 -;
    - 상기 메타데이터에서 제1 패치들로서 표시된 패치들을 사용하여, 상기 3D 장면 내의 시점으로부터의 뷰포트 이미지를 렌더링하도록; 그리고
    - 상기 뷰포트 이미지를 사전-프로세싱 및/또는 사후-프로세싱하기 위해, 상기 메타데이터에서 제2 패치들로서 표시된 패치들을 사용하도록 구성되는, 디바이스.
  10. 제9항에 있어서, 상기 제2 MVD는 상기 제1 MVD의 해상도보다 더 낮은 해상도를 갖는, 디바이스.
  11. 3D 장면을 나타내는 데이터 스트림으로서,
    - 아틀라스 레이아웃에 따라 제1 패치 및 제2 패치를 패킹하는 아틀라스 이미지 - 제1 패치는 상기 3D 장면의 렌더링을 위해 획득된 MVD 콘텐츠의 하나의 뷰의 일부이고, 제2 패치는 사전-프로세싱 또는 사후-프로세싱 사용을 위해 획득된 MVD 콘텐츠의 하나의 뷰의 일부임 -; 및
    - 상기 아틀라스와 연관된 메타데이터 - 상기 메타데이터는, 상기 아틀라스의 패치에 대하여, 상기 패치가 제1 패치인지 또는 제2 패치인지를 나타내는 데이터를 포함함 - 를 포함하는, 데이터 스트림.
  12. 제11항에 있어서, 상기 제2 MVD는 상기 제1 MVD의 해상도보다 더 낮은 해상도를 갖는, 데이터 스트림.
KR1020227023499A 2019-12-19 2020-12-17 보조 패치들을 갖는 볼류메트릭 비디오 KR20220127246A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19306697 2019-12-19
EP19306697.4 2019-12-19
PCT/EP2020/086623 WO2021122881A1 (en) 2019-12-19 2020-12-17 Volumetric video with auxiliary patches

Publications (1)

Publication Number Publication Date
KR20220127246A true KR20220127246A (ko) 2022-09-19

Family

ID=69185206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227023499A KR20220127246A (ko) 2019-12-19 2020-12-17 보조 패치들을 갖는 볼류메트릭 비디오

Country Status (9)

Country Link
US (1) US20230042874A1 (ko)
EP (1) EP4078531A1 (ko)
JP (1) JP2023506832A (ko)
KR (1) KR20220127246A (ko)
CN (1) CN114945946A (ko)
AU (1) AU2020409674A1 (ko)
MX (1) MX2022007297A (ko)
TW (1) TW202126036A (ko)
WO (1) WO2021122881A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230129875A1 (en) * 2020-03-19 2023-04-27 Nokia Technologies Oy A method, an apparatus and a computer program product for volumetric video encoding and video decoding
WO2023208808A1 (en) * 2022-04-27 2023-11-02 Interdigital Ce Patent Holdings, Sas Providing segmentation information for immersive video

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3349182A1 (en) * 2017-01-13 2018-07-18 Thomson Licensing Method, apparatus and stream for immersive video format
EP3474562A1 (en) * 2017-10-20 2019-04-24 Thomson Licensing Method, apparatus and stream for volumetric video format
GB2572996A (en) * 2018-04-19 2019-10-23 Nokia Technologies Oy Processing video patches for three-dimensional content

Also Published As

Publication number Publication date
EP4078531A1 (en) 2022-10-26
MX2022007297A (es) 2022-08-25
CN114945946A (zh) 2022-08-26
TW202126036A (zh) 2021-07-01
US20230042874A1 (en) 2023-02-09
AU2020409674A1 (en) 2022-06-30
WO2021122881A1 (en) 2021-06-24
JP2023506832A (ja) 2023-02-20

Similar Documents

Publication Publication Date Title
EP3562159A1 (en) Method, apparatus and stream for volumetric video format
US11979546B2 (en) Method and apparatus for encoding and rendering a 3D scene with inpainting patches
US11968349B2 (en) Method and apparatus for encoding and decoding of multiple-viewpoint 3DoF+ content
US20220343549A1 (en) A method and apparatus for encoding, transmitting and decoding volumetric video
KR20220127246A (ko) 보조 패치들을 갖는 볼류메트릭 비디오
EP4005202B1 (en) A method and apparatus for delivering a volumetric video content
US20220377302A1 (en) A method and apparatus for coding and decoding volumetric video with view-driven specularity
KR20220066328A (ko) 볼류메트릭 비디오를 인코딩, 송신 및 디코딩하기 위한 방법 및 장치
EP3709659A1 (en) A method and apparatus for encoding and decoding volumetric video
US20230239451A1 (en) A method and apparatus for encoding and decoding volumetric content in and from a data stream
US20230224501A1 (en) Different atlas packings for volumetric video
RU2809180C2 (ru) Способ и аппаратура для кодирования и декодирования глубины
US20220343546A1 (en) Haptic atlas coding and decoding format
KR20220069040A (ko) 볼류메트릭 비디오를 인코딩, 송신 및 디코딩하기 위한 방법 및 장치