KR102441437B1 - 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치 - Google Patents

콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치 Download PDF

Info

Publication number
KR102441437B1
KR102441437B1 KR1020177008939A KR20177008939A KR102441437B1 KR 102441437 B1 KR102441437 B1 KR 102441437B1 KR 1020177008939 A KR1020177008939 A KR 1020177008939A KR 20177008939 A KR20177008939 A KR 20177008939A KR 102441437 B1 KR102441437 B1 KR 102441437B1
Authority
KR
South Korea
Prior art keywords
image
camera
content
environment
map
Prior art date
Application number
KR1020177008939A
Other languages
English (en)
Other versions
KR20170047385A (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 KR1020227030554A priority Critical patent/KR102632421B1/ko
Publication of KR20170047385A publication Critical patent/KR20170047385A/ko
Application granted granted Critical
Publication of KR102441437B1 publication Critical patent/KR102441437B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/139Format conversion, e.g. of frame-rate or size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/246Calibration of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/398Synchronisation thereof; Control thereof
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Television Signal Processing For Recording (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

입체 영상 콘텐트를 스트리밍하거나 재생하기 위한 방법들 및 장치가 기술된다. 카메라 종속 보정 정보는 재생 디바이스에 전달되고 개별 카메라들의 렌즈들에 의해 도입된 왜곡들에 대한 보상을 위해 재생 디바이스에 적용된다. 재생 디바이스 에지들에서 렌즈 종속 왜곡 보정을 수행함으로써 이는 인코딩이 보존되기 전에 보정이 수행되는 경우 손실된다. 왜곡 보정 정보는 UV 맵 보정 정보의 형태일 수 있다. 보정 정보는 개별적인 카메라들에 특정된 왜곡들에 대해 보상하기 위해, 예를 들면, 렌더링 시간에, UV 맵에서 정보에 대해 수행될 변경들을 나타낼 수 있다. 보정 정보의 상이한 세트들은 동일한 UV 맵을 사용하여 렌더링되는 이미지들을 제공하는 입체 영상 쌍의 상이한 카메라들에 대해 전달 및 사용될 수 있다. 전달된 보정 정보는 그가 메시 관련된 정보를 보정하기 위해 사용되기 때문에 때때로 보정 메시라고 불린다.

Description

콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치{METHODS AND APPARATUS FOR CAPTURING, STREAMING AND/OR PLAYING BACK CONTENT}
본 발명은 콘텐트, 예를 들면, 3D 환경을 시뮬레이션하기 위해 사용될 수 있는 콘탠트를 캡처, 스트리밍 및/또는 재생하기 위한 방법들 및 장치에 관한 것이다.
몰입형 경험을 제공하도록 의도되는 디스플레이 디바이스들은 통상 사용자가 그의 머리를 돌려서 디스플레이되는 장면에서 대응하는 변화를 경험하게 한다. 머리에 장착된 디스플레이들은 때때로 머리에 장착된 디스플레이를 착용하고 몸을 돌릴 수 있는 360도 뷰잉을 지원하고 장면은 사용자가 사용자의 머리 위치가 변경될 때 변하여 디스플레이된다.
이러한 디바이스들에 의해, 사용자는 전방을 바라볼 때 카메라의 위치 앞에 캡처된 장면 및 사용자가 완전히 돌아설 때 카메라 위치 뒤에 캡처된 장면이 나타내져야 한다. 사용자가 후방으로 그의 머리를 돌리는 동안, 임의의 주어진 시간에 사용자의 시야는 통상 임의의 주어진 시간에 제한된 시야를 인식하는 인간의 능력의 특성에 의해 120도 이하로 제한된다.
360도의 뷰를 지원하기 위해, 360도 장면은 뷰잉에 이용가능하게 되는 360도 장면을 생성하기 위해 조합되는 이미지들로 다수의 카메라들을 사용하여 캡처될 수 있다.
360도 뷰는 사용자가 특정 시점에 디스플레이될 이미지를 결정하기 위해 사용된 시야각을 변경하기 위한 기회를 가지지 않는 보통의 텔레비전 및 많은 다른 비디오 애플리케이션들에 대해 통상 캡처되어 인코딩되는, 간단한 전방 뷰보다 아주 많은 이미지 데이터를 포함한다는 것이 이해되어야 한다.
제한들, 예를 들면, 스트리밍되는 콘텐트와 연관된 네트워크 데이터 제한들을 송신하면, 콘텐트를 수신하고 그와 상호 작용하기를 시도하는 모든 고객들에게 풀 고화질 비디오의 완전 360도 뷰를 스트리밍하는 것이 가능하지 않을 수 있다. 이는 특히 콘텐트가 3D 뷰잉 효과를 허용하기 위해 왼쪽 및 오른쪽 눈 뷰들에 대응하도록 의도된 이미지 콘텐트를 포함하는 입체 영상 콘텐트인 경우이다.
입체 영상 카메라 장비들의 경우, 광각 렌즈들, 예를 들면, 어안 카메라 렌즈들은 넓은 뷰잉 영역을 캡처하기 위해 사용될 수 있다. 일반적인 렌즈 기하학 구조가 알려질 수 있지만, 제작 차이들은 상이한 광학 특징들을 갖는 상이한 렌즈들을 초래할 수 있다. 예를 들면, 렌즈들의 단일 배치에서 생성된 두 개의 어안 렌즈들은 상이한 광학 결함들을 가질 수 있다. 입체 영상 이미지 캡처의 경우, 개별적인 왼쪽 및 오른쪽 눈 뷰들은 통상 카메라 쌍의 개별적인 카메라들을 사용하여 캡처된다. 렌즈들이 왼쪽 및 오른쪽 눈 이미지들을 캡처하기 위해 사용된 카메라들의 각각에 대해 다르기 때문에, 카메라 광학계의 특성들의 차이들은 왼쪽 눈과 오른쪽 눈 이미지들 사이에 카메라 간격으로부터 예상된 것들을 넘어 장면의 캡처된 이미지들에서 차이들을 초래할 것이다. 이러한 차이들은, 이미지들이 개별적인 렌즈들의 실제 기하학 구조보다는 오히려 의도된 렌즈 기하학 구조를 고려하여 처리되는 경우, 렌더링 시간에서 이미지들에 남아있을 왼쪽 및 오른쪽 눈 이미지들에서 왜곡들을 초래할 수 있다.
입체 영상 시스템들의 경우에, 왼쪽과 오른쪽 눈 이미지들 사이의 차이들은 제공하는 깊이 정보로서 인간 시청자에 의해 통상 해석된다. 불행히도, 카메라 렌즈 차이들에 의해 왼쪽과 오른쪽 눈 이미지들 사이의 의도되지 않은 차이들은 사용자에게 부적절한 깊이 큐들(depth cues)을 제공하고 및/또는 다른 이미지 왜곡들을 초래한다.
상기 논의의 관점에서, 입체 영상 시스템들 및/또는 다른 형태들의 시스템들에서 사용될 수 있는 카메라 렌즈들에 의해 이미지들로 도입된 왜곡들의, 예를 들면, 재생 시스템의 사용자에 의해 인식될 수 있는, 이미지 품질에 대한 효과를 감소하거나 최소화할 수 있는 방법들 및 장치에 대한 필요가 존재한다는 것이 이해되어야 한다.
카메라 렌즈에 의해 도입된 왜곡들의 효과를 감소 및/또는 최소화하기 위한 방법들 및 장치가 기술된다. 스트리밍 장치가 기술된다. 재생 장치가 또한 기술된다. 방법들 및 장치는, 예를 들면, 렌즈 제작 결함들 또는 일반적인 제작 변동들에 의한, 왜곡들이 장면 영역의 왼쪽 및 오른쪽 눈 뷰들을 캡처하기 위해 사용된 렌즈들 사이에 차이들을 초래할 수 있는 입체 영상 시스템들에서 사용을 위해 특히 적합하다.
다양한 특징들이 360도 뷰잉 영역에 대응하는 비디오 또는 다른 콘텐트의 전달, 예를 들면, 스트리밍을 지원하기에 적합한 방법들 및 장치에 대한 것이지만, 기술들은 전체 360도 뷰를 포함하지 않는 영역들의 입체 영상 이미지들을 캡처하는 시스템에서 사용에 대해 적합하다. 본 발명의 방법들 및 장치는 입체 영상 및/또는 다른 이미지 콘텐트의 스트리밍에 특히 적합하고, 데이터 송신 제한들은 콘텐트의 360도 전달을 최대 지원된 품질 레벨에서, 예를 들면, 최상 품질 코딩 및 가장 높은 지원된 프레임 레이트를 사용하여, 전달하기에 어렵게 한다. 그러나, 이러한 방법은 입체 영상 콘텐트에 국한되지 않는다.
다양한 실시예들에서, 어안 렌즈들을 갖는 카메라들이 사용된다. 어안 렌즈는 넓은 파노라마 또는 반구 이미지를 생성하도록 의도된 강한 시각적 왜곡을 생성하는 광각 또는 초광각 렌즈이다. 불행히도, 어안 렌즈의 사용에 의한 왜곡들은 렌즈 결함들 및 카메라에서 센서에 관해 렌즈들의 위치 사이의 차이들에 의해 렌즈마다 및/또는 카메라마다 변할 수 있다. 어안 렌즈는 구 또는 다른 3D 시뮬레이션 환경에 나중에 맵핑되거나 투사될 수 있는 큰 이미지 영역들을 캡처하기 위해 적합한 반면, 카메라마다 도입된 왜곡들은 어안 렌즈들을 구비한 카메라들에 의해 캡처된 이미지들을 신뢰할 수 있게 사용하기 어렵게 만들 수 있거나 상이한 렌즈들에 의해 캡처된 이미지들을 함께 보이기에 어렵게 만들 수 있다.
개별적인 왼쪽 및 오른쪽 눈 이미지들이 캡처되고 이후 뷰어에게 3D 효과를 생성하기 위해 재생 동안 표현되는 입체 영상 이미지들의 경우, 왼쪽 및 오른쪽 눈 이미지들을 캡처하기 위해 사용된 카메라들 사이의 왜곡들 및 차이들은 문제가 있을 수 있고 및/또는 처리되지 않고 남겨진 경우 입체 영상 이미지 품질을 열화시킬 수 있다.
다양한 실시예들에서, 카메라 왜곡 정보는, 예를 들면, 교정 프로세스의 부분으로서 생성된다. 교정 정보는, 어안 렌즈를 포함하는 카메라마다에 기초할 수 있거나, 통상 그에 기초한다. 이러한 방식으로, 개별적인 카메라 왜곡들은 그들이 카메라 렌즈 또는 센서에 의해 렌즈 위치 지정에 도입되는지의 여부에 관계없이 검출될 수 있다. 때때로 보정 메시라고 불리는, 보정 정보의 세트는 교정 정보에 기초하여 생성되고, 몇몇 실시예들에서 재생 디바이스에 전달된다. 이러한 방식에서, 카메라 왜곡들에 대한 보정들은 이미지들을 인코딩 및/또는 전송 전에 수행될 것과 반대로서 재생 디바이스에서 수행될 수 있다. 재생 디바이스는 보정 정보, 예를 들면, 보정 메시를 사용하여, 개별적인 카메라에 의해 도입된 왜곡들에 대해 보정 및/또는 보상한다. 재생 디바이스에서 수행되는 보정에 의해 보정되지 않은 이미지들의 인코딩 및 송신을 허용함으로써, 왼쪽 및 오른쪽 눈 이미지를 캡처하기 위해 사용된 렌즈들의 차이들 및/또는 의도된 렌즈 기하학 구조로부터의 차이들에 의해 도입된 왜곡들을 제거하거나 감소시키기 위한 시도에서 캡처된 이미지들이 송신 전에 처리되는 경우, 이미지 인코딩 동안 발생하는 이미지 아티팩트들의 의도되지 않은 증폭이 회피된다.
보정 정보의 세트는 그가 렌즈 종속적이기 때문에 카메라마다에 기초하여 재생 디바이스로 전달된다. 보정 정보는, 몇몇 실시예들에서, 때때로 텍스처 맵이라고 불리는 UV 맵을 변경하기 위해 사용되는 정보의 세트의 형태를 취할 수 있고, 상기 텍스처 맵은 동일한 장면 영역에 대응하는 왼쪽 및 오른쪽 눈 이미지들 모두에 대해 사용될 수 있다. UV 맵핑은 3D 객체상에 텍스처 또는 텍스처 맵이라고 때때로 불리는 이미지를 투사하는 프로세스이다. 다양한 실시예들에서, 카메라에 의해 캡처된 디코딩된 이미지는 환경의 3D 모델의 대응하는 부분에 대해 텍스처 맵으로 사용된다. 문자들 "U" 및 "V"는 2D 텍스처의 축들을 표시하는데, 왜냐하면 "X", "Y", "Z"는 이미 모델 공간에서 3D 객체의 축들을 표시하기 위해 사용되기 때문이다. UV 좌표들은 표면, 예를 들면, 적어도 몇몇 실시예들에서 3D 모델의 표면과 1 대 1 대응을 갖는 UV 맵의 표면마다 적용된다.
따라서, 몇몇 실시예들에서, 왼쪽 눈 이미지의 렌더링은 왼쪽 눈 카메라에 의해 도입된 왜곡들을 고려하는 왼쪽 눈 카메라에 대응하는 메시 보정 정보, 왼쪽 및 오른쪽 눈 이미지들 모두에 대해 사용된 UV 맵, 및 렌더링되는 장면 영역에 대응하는 환경의 3D 메시 모듈의 사용을 포함한다. 3D 메시 모듈 및 UV 맵은 왼쪽 및 오른쪽 눈 이미지들의 렌더링에 공통이다. 보정 정보는 렌즈에 종속적이고 따라서 개별적인 왼쪽 및 오른쪽 눈 보정 정보가 제공된다. 보정 정보는 UV 맵에서 노드들의 위치가 보정 정보가 대응하는 카메라에 의해 도입된 왜곡들을 고려하여 변경되는 방법을 표시하는 정보를 포함할 수 있고, 몇몇 실시예들에서 그를 포함한다. 몇몇 실시예들에서, 보정 정보는 공통 UV 맵에서 노드를 식별하는 정보 및 얼마나 많은 노드 위치가 3D 모델상에 2차원 이미지를 맵핑하는 목적을 위해 시프트되어야 하는지를 표시하는 정보를 포함한다. 따라서, 몇몇 실시예들에서, 보정 맵은 개별적인 렌즈 왜곡들을 고려하는 공통 UV 맵과 바람직한 렌즈 종속 UV 맵 사이의 차이를 나타낼 수 있다. 왼쪽 눈 이미지들의 렌더링 동안, 재생 디바이스는 공통 UV 맵 및 보정 정보, 예를 들면, 왼쪽 눈 이미지들에 대응하는 보정 메시를 고려하여 수신된 왼쪽 눈 이미지들을 3D 모델로 맵핑한다. 오른쪽 눈 이미지들의 렌더링 동안, 재생 디바이스는 공통 UV 맵 및 보정 정보, 예를 들면, 오른쪽 눈 이미지들에 대응하는 보정 메시를 고려하여 수신된 오른쪽 눈 이미지들을 3D 모델로 맵핑한다.
이해되는 바와 같이, 렌더링은 다양한 방식들로 보정 정보를 UV 맵의 정보에 적용할 수 있다. 변경된 UV 맵은 왼쪽 및 오른쪽 눈 이미지들 각각에 대해 보정 정보를 사용하여 왼쪽 및 오른쪽 눈 이미지들의 각각에 대해 생성되고, 변경된 UV 맵들을 갖는 공통 UV 맵은 이후 왼쪽 및 오른쪽 눈 이미지들을 렌더링하기 위해 사용되지만, 다른 실시예들에서, 보정들은 필요할 때 렌더러에 의해 수행된다. 예를 들면, 몇몇 실시예들에서, 변경 정보는, 렌더러가 수신된 정보, 및 환경의 어느 부분이 렌더링되는지, UV 맵의 어느 노드들이 수행되는 렌더링에 관련되는지, 및 어느 보정들이 이들 노드들에 적용가능한지에 기초하여 결정할 때 렌더링 프로세스들 동안 공통 UV 맵에서 하나 이상의 노드들에 적용된다. 예를 들면, 3D 모델의 세그먼트가 렌더링되고 있을 때, 렌더링되는 세그먼트에 대응하는 UV 맵의 노드들은 수신된 보정 정보에 기초하여 보정될 수 있고, 이후, 그러한 부분, 예컨대 보정된 UV 노드 정보에 기초하여 식별되는 수신된 이미지의 세그먼트는 이후 렌더링되고 있는 3D 모델의 세그먼트에 적용된다. 다양한 다른 방식들이 보정 정보가 중요하지 않은 재생 동안 적용되는 특정한 방식에 의해 보정 정보를 적용하기 위해 렌더러에 의해 또한 사용될 수 있다.
카메라에, 보정 정보, 예를 들면, 메시 보정 정보를 제공함으로써, 적용될 보정 정보는 UV 맵 또는 3D 모델에서 변경을 요구하지 않고 콘텐트를 공급하는 카메라들에서 변경이 발생할 때마다 변경될 수 있다. 따라서, 카메라 종속적인 보정 정보의 전달은 입체 영상 쌍의 왼쪽 및 오른쪽 눈 이미지들 모두의 렌더링에 공통일 수 있는 UV 맵 및/또는 3D 모델 정보의 전달로부터 분리될 수 있다.
다양한 실시예들에서, 보정 정보는 UV 맵에서 개별적인 노드들 및 노드들에 대응하는 오프셋들을 식별하는 노드 위치들의 세트의 형태로 전달된다. 예를 들면, UV 맵의 노드는 UV 맵의 노드가 얼마나 많이 UV 공간 내에 시프트되어야 하는지를 표시하는 U 및 V 좌표들 각각에 대해 표시되는 오프셋을 통해 그의 (U, V) 좌표들에 의해 식별될 수 있다. 다양한 실시예들에서, 3D 모델의 노드들에 대해 사용되는 UV 맵 또는 맵들의 노드들의 1 대 1 맵핑이 존재하기 때문에, 노드의 U, V 좌표들은 변경할 UV 맵의 노드, 및 동시에 3D 맵의 대응하는 노드를 식별한다.
상이한 이미지들에 대응하는 콘텐트가 3D 모델상에 이미지들을 렌더링하는 프로세스의 일부로서 조합되기 때문에, 마스크들은 어느 디코딩된 이미지들이 디스플레이될 콘텐트를 제공할지를 제어하기 위해 사용될 수 있다. 마스크들은 렌더링된 이미지에 대해 디코딩된 이미지 부분들의 각각의 기여를 제어하는 알파 혼합 계수들의 세트로서 구현될 수 있다. 예를 들면, 3D 모델의 세그먼트에 대응할 보정된 UV 맵에 의해 결정된 세그먼트는 혼합 계수에 의존하는 양만큼 디스플레이된 세그먼트에 기여할 것이다. 상이한 콘텐트 스트림들이 하나의 스트림의 콘텐트가 디스플레이되는지의 여부 또는 다수의 스트림들의 콘텐트가 렌더링 프로세스의 일부로서 혼합될지를 결정하는 혼합 계수에 의해 모델의 동일한 세그먼트에 대응할 수 있다. 제로로 마스킹될 디코딩된 이미지의 일 부분에 대응하여 알파 계수를 설정함으로써, 렌더링 처리의 부분으로서 디스플레이된 이미지에 기여하지 않을 것이다. 몇몇 실시예들에서, 상이한 스트림들의 콘텐트가 중첩할 수 있지만, 마스킹은 어느 콘텐트 스트림들이 3D 환경의 렌더링된 부분들에 기여되는지를 제어하기 위해 사용된다. 따라서, 하나의 장면 영역에 대응하는 콘텐트를 제공하도록 의도된 콘텐트 스트림들은, 그들이 상이한 콘텐트 스트림으로부터 획득된 이미지들로부터 렌더링되는 장면 영역에 중첩하는 콘텐트를 포함할 때, 렌더링 동안 마스킹될 수 있다.
마스킹 또는 블로킹이 몇몇 실시예들에서 사용될 수 있지만, 혼합은 콘텐트에 중첩하는 상이한 방향들에 대응하는 카메라들로부터의 콘텐트가 함께 혼합될 수 있고 몇몇 실시예들에서 함께 혼합되는 하나 이상의 에지들에 따라 사용된다. 이러한 시스템들에서, 왼쪽 눈 이미지 콘텐트는 다른 스트림으로부터 왼쪽 눈 콘텐트와 함께 에지들을 따라 혼합되고, 반면에 오른쪽 눈 이미지 콘텐트는 다른 스트림으로부터 오른쪽 눈 콘텐트와 함께 에지들을 따라 혼합된다. 따라서, 인접한 장면 영역들에 대응하는 이미지 콘텐트를 제공하는 스트림들은 에지들을 따라 함께 혼합될 수 있지만, 다른 부분들은 혼합을 피하기 위해 마스킹될 수 있다.
3D 환경 메시 모델 및 대응하는 UV 맵 또는 맵들은 카메라 메시 보정 정보와 상이한 시간에 전달될 수 있고 때때로 그렇게 전달된다. 카메라 메시 보정 정보는, 예를 들면, 재생 디바이스가 새로운 카메라 쌍으로부터 콘텐트를 공급받기 직전에, 환경의 일 부분에 대응하는 콘텐트를 공급하기 위해 사용되는 카메라 쌍에서 변경에 응답하여 전송될 수 있다. 대안적으로, 복수의 보정 메시들은 어느 보정 정보가 재생 디바이스에 시그널링되는 특정한 시간에서 사용되어야 하는지를 식별하는 정보와 함께 재생 디바이스에 전달되고 저장될 수 있다. 이러한 방식에서, 어느 보정 정보의 세트가 주어진 시간에 적용되어야 하는지를 결정하기 위해 재생 디바이스에 의해 공급 및 사용되는 간단하게는 표시자를 콘텐트에 공급하기 위해 사용된 카메라 쌍에서 변경이 존재할 때마다 보정 메시들이 송신될 필요는 없다.
3D 모델이 다수의 노드들을 포함하는 경우들에, 보정들은 모든 노드들에 대해 요구되지 않을 수 있다. 이러한 경우들에서, 왼쪽 및 오른쪽 눈 이미지들의 각각에 대해 메시 보정 정보의 세트는 UV 맵의 노드들의 서브세트를 식별하는 정보를 포함할 수 있고, 보정들이 수행될 노드들의 서브세트에 대해 노드 위치 보정 정보를 제공할 수 있다. 따라서, 메시 보정 정보는 UV 맵의 노드들의 전체 세트 및 3D 모델의 대응하는 부분보다 적은 노드들에 대한 엔트리들을 포함할 수 있다.
3D 모델은 3D 공간의 환경을 표현한다. 캡처된 프레임들은 렌즈 기하학 구조에 기초하여 왜곡된다. 보정 메시 정보는 렌즈 쌍의 개별적인 렌즈들 사이의 차이를 고려하지 않는 UV 모델에 대응하는 UV 맵을 고려하여 3D 모델의 정점들 상에 수신된 디코딩된 이미지 프레임을 맵핑하는 방법을 렌더러에게 알려줌으로써 각각의 카메라 각도에 대한 렌즈 왜곡을 보정하기 위해 사용된다. 따라서, 보정 정보의 사용은 렌즈 왜곡들이 캡처된 이미지들에 반영될 카메라 캡처 도메인으로부터 3D 모델의 것으로 이미지들의 더 정확한 이동을 용이하게 한다.
전송측상에 렌즈 왜곡들에 대해 보상하기 위해 이미지들을 처리하기보다는 재생 디바이스에서 보정을 수행하는 것은 캡처된 이미지들이 3D 모델에 대응하는 UV 맵이 기초하고 이후 송신을 위해 인코딩되는 2D 정방형 기하학 구조로 먼저 왜곡되는 것을 방지하는 것을 돕는다. 인코딩 전에 캡처된 이미지들의 2D 정방형 기하학 구조로의 전환은 특히 손실되는 이미지 인코딩이 전송 전에 수행되는 경우에 이미지 처리의 부분으로서 재생 디바이스에 의해 수신 전에 에지들 주위의 이미지 데이터의 손실을 야기할 수 있다.
다양한 실시예들에서, 3D 환경은 이미지를 캡처하는 카메라 또는 카메라들이 위치되는 환경을 표현하기 위해 사용되는 삼각형들의 메시를 갖는 구체(sphere)인 것으로 추정된다. 본 발명은 구형 3D 모델의 환경에서 설명되지만, 구형 3D 모델들로 한정되지 않고 다른 형상들의 모델들에 대해서 사용될 수 있다.
예를 들면, 몇몇 실시예들에서, 3D 환경은 재생 디바이스로 전달되고 원래의 이미지들의 캡처되는 음악당, 경기장, 또는 다른 환경의 실제 물리적 형상을 고려하기 위해 재생 동안 이미지들을 렌더링하기 위해 사용된 3D 디폴트 환경 메시를 변경하기 위해 사용된다. 3D 환경 맵은 카메라 장비, 따라서 이미지를 캡처하기 위해 사용된 카메라로부터 이미지들이 캡처될 환경의 벽 또는 다른 주변 표면까지의 거리에 대한 정보를 포함할 수 있다. 거리 정보는 이미지들이 취해지는 실제 환경에 기초하여 환경을 시뮬레이션하고 재생 이미지들을 조정하기 위해 재생 동안 사용된 메시의 그리드 지점에 매칭할 수 있고 때때로 그에 매칭된다.
다양한 실시예들에서, 비디오 콘텐트가 획득되는 환경에 대응하는 3D 모델 및/또는 3D 차원 정보가 생성 및/또는 액세스된다. 환경에서 카메라 위치들이 기록된다. 다수의 별개의 카메라 위치들은 환경 내에 나타내질 수 있다. 예를 들면, 별개의 최종 목표 카메라 위치들 및 하나 이상의 중간 필드 카메라 위치들은 실시간 카메라 피드들을 캡처하기 위해 지원 및 사용될 수 있다.
3D 모듈 및/또는 다른 3D 정보는 한명 이상의 사용자들에게 비디오를 스트리밍하기 위해 사용된 서버 또는 이미지 캡처 디바이스에 저장된다.
3D 모듈은 이미지 렌더링 및 합성 능력을 갖는 사용자 재생 디바이스, 예를 들면, 고객 구내 디바이스에 제공된다. 고객 구내 디바이스는 예를 들면, 머리에 장착된 디스플레이를 통해, 고객 구내 디바이스의 사용자에게 디스플레이되는 환경의 3D 표현을 생성한다.
다양한 실시예들에서, 풀 360도보다 적은 환경이 임의의 주어진 시간에 개별적인 고객 구내 디바이스에 스트리밍된다. 고객 구내 디바이스는, 사용자 입력에 기초하여, 카메라 피드가 스트리밍된 것을 표시한다. 사용자는 고객 구내 디바이스의 일부이거나 그에 부착된 입력 디바이스를 통해 구획(court) 및/또는 카메라 위치를 선택할 수 있다.
몇몇 실시예들에서, 180도 비디오 스트림은 콘텐트를 스트리밍하는 것을 담당하는 서버 및/또는 비디오 카메라들로부터, 예를 들면, 실황, 실시간, 또는 거의 실시간 스트림이 고객 재생 디바이스로 전송된다. 재생 디바이스는 사용자의 머리 위치 및 예상된 재생 디바이스의 사용자가 재생 디바이스에 의해 생성되는 3D 환경 내에서 보고 있는 그와 같은 뷰잉 영역을 모니터링한다. 고객 구내 디바이스는 교체하는 비디오 콘텐트에 의해 뷰잉되거나 또는 비디오 콘텐트의 부재시 나타내지는 시뮬레이션된 3D 환경에 대한 대안으로서 교체되거나 디스플레이되는 비디오 콘텐트를 통해 시청되는 3D 환경의 일 부분에 이용 가능할 때 비디오를 나타낸다. 재생 디바이스의 사용자가 자신의 머리를 돌릴 때, 사용자에게 나타내진 환경의 부분들은 3D 모델로부터 합성하여 생성되는 다른 부분들과 함께 재생 디바이스에 공급된, 예를 들면, 스트리밍된 비디오 콘텐트 및/또는 비디오 콘텐트와 다른 시간에 캡처되는 이전에 공급된 이미지 콘텐트로부터일 수 있다.
따라서, 재생 디바이스는, 예를 들면, 스트리밍을 통해 공급된, 비디오를 디스플레이할 수 있지만, 반면에 게임, 음악 콘서트 또는 다른 이벤트는 전체로 합성하여 또는 다른 시간들에 환경의 측면 또는 후방 영역들의 이미지 콘텐트로부터 생성되는 3D 환경의 후방 및/또는 측면 부분들을 갖는 전방 180도 카메라 뷰에 대응하여 여전히 진행중이다.
사용자가 스트리밍 콘텐트를 제공하는 서버에 위치의 변경을 시그널링함으로써 카메라 위치들 사이에서 선택할 수 있지만, 스트리밍 콘텐트를 제공하는 서버는 스트리밍되지 않은 3D 환경의 부분들에 대한 합성 환경을 생성하기에 유용한 정보를 제공할 수 있다.
예를 들면, 몇몇 실시예들에서, 다수의 후방 및 측면 뷰들은, 예를 들면, 콘텐트의 일 부분을 스트리밍하기 전 또는 더 빠른 시점으로부터 상이한 시간들에 캡처된다. 이미지들은 재생 디바이스에서 버퍼링된다. 콘텐트를 제공하는 서버는 비실시간 장면들의 세트 또는 이미지들 중 어느 것이 비디오 스트림에 공급되지 않은 환경 부분들의 합성을 위해 사용될지를 재생 디바이스에 시그널링할 수 있고, 몇몇 실시예들에서, 시그널링한다. 예를 들면, 앉아 있는 콘서트 참석자들의 이미지 또는 카메라 위치 뒤에 서있는 콘서트 참석자들의 다른 이미지는 재생 디바이스에 공급 및 저장될 수 있다. 서버는 저장된 이미지 데이터의 어느 세트가 특정 시점에서 사용되어야 하는지를 시그널링할 수 있다. 따라서, 관객이 서있을 때, 서버는 서있는 관객에 대응하는 이미지가 이미지 합성 동안 배경 180도 뷰에 대해 사용되어야 한다는 것을 시그널링할 수 있지만, 관객이 앉아있을 때, 서버는 3D 카메라 환경의 측면 또는 후방 부분들을 합성할 때 앉아있는 관객에 대응하는 이미지 또는 이미지 합성 정보를 사용해야 한다는 것을 고객 구내 디바이스에 표시할 수 있다.
적어도 몇몇 실시예들에서, 3D 환경에서 하나 이상의 위치들의 각각에서 카메라들의 배향은 이미지 캡처 동안 추적된다. 환경에서 마커들 및/또는 식별점들은 캡처된 이미지들, 예를 들면, 실황 이미지들을 고객 구내 디바이스에 의해 시뮬레이션될 이전에 모델링되고 및/또는 맵핑된 3D 환경으로의 정렬 및/또는 다른 맵핑을 용이하게 하기 위해 사용될 수 있다.
합성 환경 부분들 및 실시간(스트리밍된 비디오)의 혼합은 몰입형 비디오 경험을 제공한다. 환경들은 비디오가 이용가능하지 않은 때, 예를 들면, 환경이 이전에 모델링되지 않은 경우, 환경을 시뮬레이션하기 위해 사용된 3D 정보를 생성하기 위해 3D 광도 측정을 사용하여 측정되거나 모델링될 수 있고 때때로 측정 또는 모델링된다.
결정된 위치들에서 실제 공간에서 기준 마커의 사용은 이전 생성된 3D 모델에 의해 비디오의 교정 및 정렬을 돕는다.
각각의 카메라의 위치 추적은 비디오가 캡처될 때 수행된다. 예를 들면, X, Y, Z 및 요(yaw)를 맵핑하는 카메라 위치 정보(그래서 각각의 카메라가 지시되는 곳을 안다). 이는 캡처된 이미지가 환경의 어느 부분에 대응하는지를 검출하고, 캡처된 비디오와 함께 재생 디바이스로 전달될 때, 이미지 표현, 예를 들면, 사용자에게 재생 동안 재생 디바이스에 의해 생성된 합성 환경과 우리의 비디오 캡처를 자동으로 오버레이하는 재생을 허용한다. 스트리밍된 콘텐트는 360도보다 작은 뷰, 예를 들면, 카메라 위치의 전방의 영역의 캡처된 180도 뷰로 한정될 수 있다. 뷰어가 주위를 볼 때, 그들은 후방으로 돌 때 시뮬레이션된 배경(블랙 보이드가 아님) 및 전방으로 돌 때 비디오를 볼 것이다.
합성 환경은 상호작용할 수 있고 몇몇 실시예에서 상호작용한다. 몇몇 실시예에서, 다수의 실제 뷰어들, 예를 들면, 상이한 고객 구내 디바이스들의 사용자들은, 사용자가 가상 3D 환경에서 자신의 친구들과 게임을 시청할 수 있도록 시뮬레이션된 환경에 포함되고, 이는 사용자들이 실제로 경기장에 있는 것으로 보인다.
사용자들의 이미지들은 고객 구내 디바이스들에 포함되거나 그에 부착된 카메라들에 의해 캡처되고, 시뮬레이션된 환경을 생성할 때 사용을 위해, 서버에 공급되고 다른 사용자들, 예를 들면, 그룹의 멤버들에게 제공될 수 있고, 몇몇 실시예들에서 상기와 같이 캡처되고, 공급되고, 제공된다. 사용자 이미지들은 실시간 이미지들일 필요는 없지만 실시간 이미지들일 수 있다.
방법들은 실시간 또는 거의 실시간으로 콘텐트를 인코딩 및 제공하기 위해 사용될 수 있지만 이러한 실시간 애플리케이션으로 한정되지 않는다. 다수의 사용자들에 대한 실시간 및 거의 실시간 인코딩 및 스트리밍을 지원하기 위한 능력이 제공되면, 여기에 기술된 방법들 및 장치는 개인들이 이벤트를 보기를 원하고 무대 또는 필드를 관찰할 뿐만 아니라 몸을 돌려서 환경, 예를 들면, 경기장 또는 관객의 뷰들을 인식할 수 있는 스포츠 경기들, 콘서트들, 및/또는 다른 장소들의 장면들을 스트리밍하기에 적합하다. 360도 뷰잉 및 3D를 지원함으로써 본 발명의 방법들 및 장치는 사용자의 머리를 왼쪽, 오른쪽, 또는 후방으로 돌릴 경우일 때 몸을 돌려 상이한 뷰잉각들로부터 장면을 관찰하기 위한 자유도를 갖는 3D 몰입형 경험을 사용자에게 제공하도록 의도된 머리에 장착된 디스플레이들과 함께 사용에 적합하다.
도 1은 합성된 환경에 따라 한명 이상의 사용자들에게 콘텐트를 캡처하고, 스트리밍하고, 콘텐트를 출력하기 위해 사용될 수 있는 본 발명의 몇몇 실시예들에 따라 구현된 일 예시적인 시스템을 도시하는 도면.
도 2a는 일 예시적인 입체 영상 장면, 예를 들면, 분할되지 않는 풀 360도 입체 영상 장면을 도시하는 도면.
도 2b는 일 예시적인 실시예에 따라 3 개의 예시적인 장면들로 분할된 일 예시적인 입체 영상 장면을 도시하는 도면.
도 2c는 일 예시적인 실시예에 따라 4 개의 장면들로 분할되는 일 예시적인 입체 영상 장면을 도시하는 도면.
도 3은 일 예시적인 실시예에 따라 일 예시적인 360도 입체 영상 장면을 인코딩하는 일 예시적인 프로세스를 도시하는 도면.
도 4는 동일한 입력 이미지 부분의 상이한 인코딩된 버전들을 생성하기 위해 다수의 인코더들을 사용하여 입력 이미지 부분이 인코딩되는 방법을 도시하는 일 예를 도시하는 도면.
도 5는 3 개의 부분들로 분할되는 입력 입체 영상 장면의 저장된 인코딩된 부분들을 도시하는 도면.
도 6은 도 1의 시스템을 사용하여 구현된 일 예시적인 실시예에 따라 콘텐트를 스트리밍하는 일 예시적인 방법의 단계들을 도시하는 플로차트.
도 7은 본 발명의 특징들에 따라 콘텐트를 인코딩 및 스트리밍하기 위해 사용될 수 있는 일 예시적인 콘텐트 전달 시스템 인코딩 능력을 도시하는 도면.
도 8은 도 7의 시스템에 의해 스트리밍된 콘텐트를 수신, 디코딩, 및 디스플레이하기 위해 사용될 수 있는 일 예시적인 콘텐트 재생 디바이스를 도시하는 도면.
도 9는 플로차트의 형태이고 도 1에 도시된 시스템에 의해 구현될 수 있는 일 예시적인 실시예에 따라 구현되는 카메라 교정, 이미지 인코딩 및 콘텐트 스트리밍 방법의 제 1 부분을 도시하는 도면.
도 10은 도 9의 플로차트에 의해 호출될 수 있는 카메라 교정 서브루틴을 도시하는 도면.
도 11은 도 9의 플로차트에 의해 호출될 수 있는 이미지 캡처 및 콘텐트 스트리밍 서브루틴을 도시하는 도면.
도 12는 일 예시적인 실시예에 따라 도 1의 시스템에서 사용될 수 있는 재생 디바이스 또는 시스템을 동작시키는 방법을 도시하는 도면.
도 13은 하늘 뷰를 캡처하기 위해 하늘을 향해 지향된 카메라 또는 카메라들과 함께 360도 시야의 상이한 120도 섹터들에 대응하는 왼쪽 및 오른쪽 눈 이미지들을 캡처하기 위해 다수의 카메라 쌍들을 포함하는 카메라 장비를 도시하는 도면.
도 14는 상이한 카메라 뷰들에 대응하는 5 개의 상이한 환경 메시 맵들이 캡처된 이미지들이 재생 동작의 부분으로서 투사될 수 있는 완전한 구형 뷰/환경을 생성하기 위해 조합될 수 있는 방법을 도시하는 도면.
도 15는 구형 시뮬레이션된 환경을 생성하기 위해 도 15에 도시된 5 개의 메시들의 풀 어셈블리를 도시하는 도면.
도 16은 도 13에 도시된 카메라 장비의 섹터에 대응하는 어안 렌즈들을 갖는 왼쪽 및 오른쪽 눈 카메라들에 의해 캡처된 왼쪽 눈 뷰 이미지 및 오른쪽 눈 뷰 이미지를 도시하는 도면.
도 17은 도 16의 왼쪽 및 오른쪽 눈 뷰 이미지들이 하나 이상의 재생 디바이스들로 인코딩 및 전송 전에 크롭될 수 있는 방법을 도시하는 도면.
도 18은 이미지가 사용자에게 나타내지기 위해 3D 시뮬레이션된 메시 환경의 일 부분상에 맵핑 및 디스플레이를 위해 추가로 처리되기 전에 재생 디바이스에 전송된 캡처된 이미지로 왜곡들에 대해 보정할 때 사용될 재생 디바이스에 전달되고 개별 카메라에 대해 생성될 수 있는 일 예시적인 보정 메시를 도시하는 도면.
도 19는 보정 메시가 대응하는 카메라에 의해 캡처된 이미지, 예를 들면, 카메라 장비의 섹터의 왼쪽 및 오른쪽 카메라 쌍 중 하나의 카메라에 대응하는 이미지에 대한 보정 메시의 적용을 도시하는 도면.
도 20은 개별적인 대응하는 보정 맵들에 의한 보정 후 도 13에 도시된 카메라 장비의 섹터에 대응하는 왼쪽 및 오른쪽 눈 이미지 쌍들을 도시하는 도면.
도 21은 적용된, 예를 들면, 환경 메시상에 투사된, 도 20에 도시된 이미지들 중 하나와 함께 카메라 장비의 하나의 섹터에 대응하는 환경 메시 모델을 도시하는 도면.
도 22는 구형의 형태로 완전한 3D 환경을 시뮬레이션하기 위해 카메라 장비의 하늘 및 지상 카메라들뿐만 아니라 섹터들의 각각에 대응하는 카메라들에 의해 캡처된 이미지들의 적용을 도시하는 도면.
도 23a는 일 예시적인 실시예에 따라 이미지 콘텐트를 제공하는 일 예시적인 방법의 단계들을 도시하는 플로차트의 제 1 부분을 도시하는 도면.
도 23b는 일 예시적인 실시예에 따라 이미지 콘텐트를 제공하는 일 예시적인 방법의 단계들을 도시하는 플로차트의 제 2 부분을 도시하는 도면.
도 23은 일 예시적인 실시예에 따라 이미지 콘텐트를 제공하는 방법의 플로차트를 도시하는 도 23a 및 도 23b의 조합을 포함하는 도면.
도 24a는 일 예시적인 실시예에 따라 일 예시적인 콘텐트 재생 방법의 단계들을 도시하는 플로차트의 제 1 부분을 도시하는 도면.
도 24b는 일 예시적인 실시예에 따라 일 예시적인 콘텐트 재생 방법의 단계들을 도시하는 플로차트의 제 2 부분을 도시하는 도면.
도 24는 일 예시적인 실시예에 따라 이미지 콘텐트를 제공하는 콘텐트 재생 방법의 플로차트를 도시하는 도 24a 및 도 24b의 조합을 포함하는 도면.
도 25는 몇몇 실시예들에서 예시적인 콘텐트 재생 방법의 부분으로서 구현될 수 있는 이미지 렌더링 서브루틴의 단계들을 도시하는 플로차트.
도 1은 본 발명의 몇몇 실시예들에 따라 구현된 일 예시적인 시스템(100)을 도시한다. 시스템(900)은 하나 이상의 고객 디바이스들, 예를 들면, 고객 구내에 위치된, 재생 디바이스들/콘텐트 플레이어들에 대한 콘텐트 전달, 예를 들면, 이미징 콘텐트 전달을 지원한다. 시스템(900)은 예시적인 이미지 캡처링 디바이스(102), 콘텐트 전달 시스템(104), 통신 네트워크(105), 및 복수의 고객 구내들(106, ..., 110)을 포함한다. 이미지 캡처링 디바이스(102)는 입체 영상 화상의 캡처링을 지원한다. 이미지 캡처링 디바이스(102)는 본 발명의 특징들에 따라 이미징 콘텐트를 캡처 및 처리한다. 통신 네트워크(105)는, 예를 들면, 하이브리드 광섬유-동축(HFC) 네트워크, 위성 네트워크, 및/또는 인터넷일 수 있다.
콘텐트 전달 시스템(104)은 이미지 처리, 교정 및 인코딩 장치(112) 및 콘텐트 전달 디바이스, 예를 들면, 스트리밍 서버(114)를 포함한다. 이미지 처리, 교정 및 인코딩 장치(112)는 카메라 교정 프로세스 동안 캡처된 하나 이상의 타깃 이미지들 및/또는 그리드 패턴들에 기초하여 카메라 교정을 포함하는 다양한 기능들을 수행, 교정된 카메라에 의해 도입된 왜곡들을 보상하기 위해 재생 디바이스에 의해 사용될 수 있는 왜곡 보정 또는 보상 메시의 생성, 처리, 예를 들면 캡처된 이미지들의 크롭핑 및 인코딩, 및 재생 디바이스에 공급되고 렌더링/이미지 재생 프로세스에서 사용될 수 있는 교정 및/또는 환경 정보를 콘텐트 전달 디바이스(114)에 공급하는 것을 담당한다. 콘텐트 전달 디바이스(114)는 이하에 논의되는 바와 같이 서버로서 구현될 수 있고, 상기 전달 디바이스는 이미지 교정 정보, 선택적인 환경 정보, 및 3D 환경을 시뮬레이션할 때 사용될 수 있는 카메라 장비(102)에 의해 캡처된 하나 이상의 이미지들에 의해 콘텐트에 대한 요청들에 응답한다. 이미지들 및/또는 콘텐트의 스트리밍은 이미지들의 소스가 되는 카메라 장비(102)에 대응하는 이벤트에서 뷰어 머리 위치 및/또는 위치의 사용자 선택과 같은 피드백 정보의 기능일 수 있고 때때로 그러한 기능이다. 예를 들면, 사용자는 중앙선에 위치된 카메라 장비로부터 시뮬레이션된 3D 환경에 의해 필드 목표에 위치된 카메라 장비로의 이미지들과 사용자 선택된 카메라 장비에 대응하는 것들에 대해 변경되는 스트리밍된 이미지들 사이에 선택하거나 스위칭할 수 있다. 따라서, 단일 카메라 장비(102)가 도 1에 도시되고, 다수의 카메라 장비들이 시스템들에 존재할 수 있고 운동 경기 또는 다른 이벤트에서 상이한 물리적 위치들에 위치될 수 있고, 사용자는 상이한 위치들 사이에 스위칭할 수 있고, 사용자 선택들은 재생 디바이스(122)로부터 콘텐트 서버(114)로 전달된다는 것이 이해되어야 한다. 개별적인 디바이스들(112, 114)이 이미지 처리 및 콘텐트 전달 시스템(104)에 도시되지만, 상기 시스템은 상이한 소프트웨어 또는 하드웨어 모듈들에 의해 제어되지만 단일 프로세서에서 또는 단일 프로세서상에 구현되는 다양한 기능들을 수행하거나 상이한 기능들과 함께 수행하기 위해 개별적인 하드웨어를 포함하는 단일 디바이스로서 구현될 수 있다는 것이 이해되어야 한다.
인코딩 장치(112)는 본 발명에 따라 이미지 데이터를 인코딩하기 위해 하나 또는 복수의 인코더들을 포함할 수 있고, 몇몇 실시예들에서 그를 포함한다. 인코더들은 장면의 상이한 부분들을 인코딩하기 위해 및/또는 상이한 데이터 레이트들을 갖는 인코딩된 버전들을 생성하기 위해 장면의 주어진 부분을 인코딩하기 위해 동시에 사용될 수 있다. 다수의 인코더들을 동시에 사용하는 것은 실시간 또는 거의 실시간 스트리밍이 지원될 때 특히 유용할 수 있다.
콘텐트 스트리밍 디바이스(114)는, 예를 들면, 통신 네트워크(105)를 통해, 인코딩된 이미지 콘텐트를 하나 이상의 고객 디바이스들로 전달하기 위해 인코딩된 콘텐트를 스트리밍, 예를 들면, 전송하도록 구성된다. 네트워크(105)를 통해, 콘텐트 전달 시스템(104)은 통신 네트워크(105)를 가로지르는 링크(120)에 의해 도면에 나타내지는 고객 구내들(106, 110)에 위치된 디바이스들과 정보를 전송 및/또는 교환할 수 있다.
인코딩 장치(112) 및 콘텐트 전달 서버는 도 1 예에서 개별적인 물리적 디바이스들로서 도시되지만, 몇몇 실시예들에서, 그들은 콘텐트를 인코딩하고 스트리밍하는 단일 디바이스로서 구현된다. 인코딩 프로세스는 3d, 예를 들면, 입체 영상, 이미지 인코딩 프로세스일 수 있고, 장면 부분의 왼쪽 및 오른쪽 눈 뷰들에 대응하는 정보는 3D 이미지 뷰잉이 지원될 수 있도록 인코딩된 이미지 데이터에 인코딩 및 포함된다. 사용된 특정한 인코딩 방법은 본 출원에 중요하지 않고, 넓은 범위의 인코더들이 인코딩 장치(112)로서 또는 그를 구현하기 위해 사용될 수 있다.
각각의 고객 구내(106, 110)는 콘텐트 스트리밍 디바이스(114)에 의해 스트리밍된 이미징 콘텐트를 디코딩 및 재생/디스플레이하기 위한 복수의 디바이스들/플레이어들, 예를 들면, 디코딩 장치를 포함할 수 있다. 고객 구내1(106)은 디스플레이 디바이스(124)에 결합된 디코딩 장치/재생 디바이스(122)를 포함하지만, 고객 구내N(1190)는 디스플레이 디바이스(128)에 결합된 디코딩 장치/재생 디바이스(126를 포함한다. 몇몇 실시예들에서, 디스플레이 디바이스들(124, 128)은 머리에 장착된 입체 영상 디스플레이 디바이스들이다.
다양한 실시예들에서, 디코딩 장치(122, 126)는 대응하는 디스플레이 디바이스들(124, 128)상에 이미징 콘텐트를 나타낸다. 디코딩 장치/플레이어들(122, 126)은 콘텐트 전달 시스템(104)으로부터 수신된 이미징 콘텐트를 디코딩하고, 디코딩된 콘텐트를 사용하여 이미징 콘텐트를 생성하고, 디스플레이 디바이스들(124, 128)상에 이미징 콘텐트, 예를 들면, 3D 이미지 콘텐트를 렌더링할 수 있는 디바이스들일 수 있다. 디코딩 장치/재생 디바이스들(122, 126) 중 임의의 것은 도 8에 도시된 디코딩 장치/재생 디바이스(800)로서 사용될 수 있다. 도 8에 도시된 것과 같은 시스템/재생 디바이스는 디코딩 장치/재생 디바이스들(122, 126) 중 어느 것으로서 사용될 수 있다.
도 2a는 일 예시적인 입체 영상 장면(200), 예를 들면, 분할되지 않은 풀 360도 입체 영상 장면을 도시한다. 입체 영상 장면은 다수의 카메라들, 예를 들면, 단일 비디오 캡처 플랫폼 또는 카메라 마운트상에 종종 장착된 다수의 카메라들, 예를 들면, 비디오 카메라들로부터 캡처된 이미지 데이터를 조합한 결과일 수 있고 통상 상기 조합한 결과이다.
도 2b는 예시적인 입체 영상 장면(200)의 분할된 버전(250)을 도시하고, 장면은 3(N=3) 개의 예시적인 부분들, 예를 들면, 일 예시적인 실시예에 따라, 정면 180도 부분, 왼쪽 후방 90도 부분, 및 오른쪽 후방 90도 부분으로 분할된다.
도 2c는 일 예시적인 실시예에 따라 4(N=4) 개의 부분들로 분할된 예시적인 입체 영상 장면(200)의 다른 분할된 버전(280)을 도시한다.
도 2b 및 도 2c는 두 개의 예시적인 분할들을 도시하지만, 다른 분할들이 가능한 것이 이해되어야 한다. 예를 들면, 장면(200)은 12 개(n=12)의 30도 부분들로 분할될 수 있다. 하나의 이러한 실시예에서, 각각의 분할의 개별적인 인코딩보다는, 다수의 분할들이 함께 그룹화되고 그룹으로서 인코딩된다. 분할들의 상이한 그룹들은 장면의 총 각도와 동일하지만, 사용자의 머리 위치에 의존하여, 예를 들면, 0 내지 360도의 범위에 대해 측정되는 뷰잉각이 스트리밍될 수 있는 이미지의 상이한 부분들에 대응하는 각각의 그룹의 크기로 사용자에게 부여 및 스트리밍될 수 있다.
도 3은 일 예시적인 실시예에 따라 일 예시적인 360도 입체 영상 장면을 인코딩하는 일 예시적인 프로세스를 도시한다. 도 3에 도시된 방법(300)에 대한 입력은, 예를 들면, 장면의 360도 뷰를 캡처하도록 구성된 복수의 카메라들에 의해 캡처된 360도 입체 영상 이미지 데이터를 포함한다. 입체 영상 이미지 데이터, 예를 들면, 입체 영상 비디오는 다양한 알려진 포맷들 중 어느 하나일 수 있고, 대부분의 실시예들에서, 3D 경험에 대해 허용하기 위해 사용된 왼쪽 및 오른쪽 눈 이미지 데이터를 포함한다. 상기 방법들은 입체 영상 비디오에 특히 적합하지만, 여기에 기술된 기술들 및 방법들은 또한, 예를 들면, 360도 또는 작은 장면 영역의 2D 이미지들에 적용될 수 있다.
단계(304)에서, 장면 데이터(302)는 상이한 장면 영역들, 예를 들면, 상이한 뷰잉 방향들에 대응하는 N 개의 장면 여역들로 분할된다. 예를 들면, 도 2b에 도시된 것과 같은 일 실시예에서, 360도 장면 영역은 세 개의 분할들, 90도 부분에 대응하는 왼쪽 후방 부분, 전방 180도 부분, 및 오른쪽 후방 90도 부분으로 분할된다. 상이한 부분들은 상이한 카메라들에 의해 캡처될 수 있지만 이는 필수적이지는 않고 실제로 360도 장면은 도 2b 및 도 2c에 도시된 바와 같이 N 개의 장면 영역들로 분할하기 전에 다수의 카메라들로부터 캡처된 데이터로부터 구성될 수 있다.
단계(306)에서, 상이한 장면 부분들에 대응하는 데이터가 본 발명에 따라 인코딩된다. 몇몇 실시예들에서, 각각의 장면 부분은 각각의 부분에 대해 다수의 가능한 비트 레이트 스트림들을 지원하기 위해 다수의 인코더들에 의해 독립적으로 인코딩된다. 단계(308)에서, 인코딩된 장면 부분들은, 예를 들면, 고객 재생 디바이스들로 스트리밍을 위해, 콘텐트 전달(104)에서 저장된다.
도 4는 입력 이미지 부분, 예를 들면, 장면의 180도 정면 부분이 동일한 입력 이미지 부분의 상이한 인코딩된 버전들을 생성하기 위해 다수의 인코더들을 사용하여 인코딩되는 방법을 도시하는 일 예를 도시하는 도면(400)이다.
도면(400)에 도시된 바와 같이, 입력 장면 부분(402), 예를 들면, 장면의 180도 정면 부분은 인코딩을 위해 복수의 인코더들로 공급된다. 예에서, 이미지 콘텐트의 상이한 데이터 레이트 스트림들을 지원하기 위해 인코딩된 데이터를 생성하기 위해 상이한 인코딩 기술들을 사용하여 상이한 해상도들을 갖는 입력 데이터를 인코딩하는 K 개의 상이한 인코더들이 존재한다. 복수의 K 개의 인코더들은 고화질(HD) 인코더1(404), 표준 화질(SD) 인코더2(406), 감소된 프레임 레이트 SD 인코더3(408), ..., 및 고압축 감소 프레임 레이트 SD 인코더(410)를 포함한다.
HD 인코더1(404)은 고 비트 레이트 HD 인코딩된 이미지(412)를 생성하기 위해 풀 고화질(HD) 인코딩을 수행하도록 구성된다. SD 인코더2(406)는 입력 이미지의 SD 인코딩된 버전2(414)를 생성하기 위해 저해상도 표준 화질 인코딩을 수행하도록 구성된다. 감소된 프레임 레이트 SD 인코더3(408)은 입력 이미지의 감소된 레이트 SD 인코딩 버전3(416)을 생성하기 위해 감소된 프레임 레이트 저 해상도 SD 인코딩을 수행하도록 구성된다. 감소된 프레임 레이트는, 예를 들면, 인코딩을 위해 SD 인코더2(406)에 의해 사용된 프레임 레이트의 절반일 수 있다. 고압축 감소 프레임 레이트 SD 인코더K(410)는 입력 이미지의 고 압축 감소 레이트 SD 인코딩 버전K(420)를 생성하기 위해 고압축에 의해 감소된 프레임 레이트 저해상도 SD 인코딩을 수행하도록 구성된다.
따라서, 공간적 및/또는 시간적 해상도의 제어가 상이한 데이터 레이트들의 데이터 스트림들을 생성하기 위해 사용될 수 있고 데이터 압축의 레벨과 같은 다른 인코더 설정들의 제어는 또한 하나 이상의 원하는 데이터 레이트들에 의해 장면 부분에 대응하는 데이터 스트림들을 생성하기 위해 공간적 및/또는 시간적 해상도의 제어에 단독으로 또는 추가하여 사용될 수 있다는 것이 이해되어야 한다.
도 5는 3 개의 예시적인 부분들로 분할된 입력 입체 영상 장면의 저장된 인코딩된 부분들(500)을 도시한다. 저장된 인코딩된 부분들은, 예를 들면, 메모리에서 데이터/정보로서, 콘텐트 전달 시스템(104)에 저장될 수 있다. 입체 영상 장면의 저장된 인코딩된 부분들(500)은 인코딩된 부분들의 3 개의 상이한 세트들을 포함하고, 상이한 장면 영역 및 각각의 세트에 대응하는 각각의 부분은 대응하는 장면 부분의 복수의 상이한 인코딩된 버전들을 포함한다. 각각의 인코딩된 버전은 인코딩된 비디오 데이터의 버전이고 따라서 코딩된 다수의 프레임들을 나타낸다. 각각의 인코딩된 버전(510, 512, 516)이 다수의 시간 기간들에 대응하는 비디오이고, 스트리밍할 때, 부분, 예를 들면, 재생된 시간 기간에 대응하는 프레임들이 전송 목적들을 위해 사용될 것이 이해되어야 한다.
도 4에 관하여 상기에 도시되고 논의된 바와 같이, 각각의 장면 부분, 예를 들면, 정면, 후방 장면 부분들은 동일한 장면 부분의 K 개의 상이한 버전들을 생성하기 위해 복수의 상이한 인코더들을 사용하여 인코딩될 수 있다. 주어진 입력 장면에 대응하는 각각의 인코더의 출력들이 세트로서 함께 그룹핑되고 저장된다. 인코딩된 장면 부분들(502)의 제 1 세트는 전방 180도 장면 부분에 대응하고, 전방 180도 장면의 인코딩된 버전 1(510), 인코딩된 버전2(512), ..., 및 인코딩된 버전 K(516)을 포함한다. 인코딩된 장면 부분들(504)의 제 2 세트는 장면 부분 2, 예를 들면, 90도 왼쪽 후방 장면 부분에 대응하고, 90도 왼쪽 후방 장면 부분의 인코딩된 버전1(520), 인코딩된 버전2(522), ..., 및 90도 왼쪽 후방 장면 부분의 인코딩된 버전K(526)를 포함한다. 유사하게, 인코딩된 장면 부분들(506)의 제 3 세트는 장면 부분(3), 예를 들면, 90도 오른쪽 후방 장면 부분에 대응하고, 90도 오른쪽 후방 장면 부분의 인코딩된 버전1(530), 인코딩된 버전2(532), ..., 및 90도 오른쪽 후방 장면 부분의 인코딩된 버전K(536)을 포함한다.
360도 장면의 다양한 상이한 저장된 인코딩된 부분들은 고객 재생 디바이스들로 전송하기 위해 다양한 상이한 비트 레이트 스트림들을 생성하기 위해 사용될 수 있다.
도 6은 일 예시적인 실시예에 따라 이미지 콘텐트를 제공하는 일 예시적인 방법의 단계들을 도시하는 플로차트(600)이다. 플로차트(600)의 방법은 몇몇 실시예들에서 도 1에 도시된 캡처링 시스템을 사용하여 구현된다.
방법은, 예를 들면, 전달 시스템이 전력을 공급받고 초기화되는 것에 의해, 단계(602)에서 시작한다. 방법은 시작 단계(602)로부터 단계들(604)로 진행한다. 단계(604)에서, 콘텐트 전달 시스템(104), 예를 들면, 시스템(104) 내 서버(114)는 콘텐트에 대한 요청, 예를 들면, 이전에 인코딩된 프로그램에 대한 요청을 수신하거나, 몇몇 경우들에서, 실황 이벤트가 실시간 또는 거의 실시간, 예를 들면, 이벤트가 여전히 진행하고 있는 동안, 인코딩되고 스트리밍된다.
요청에 응답하여, 단계(604)에서, 서버(114)는 전달에 이용가능한 데이터 레이트를 결정한다. 데이터 레이트는 지원된 데이터 레이트들을 나타내는 요청에 포함된 정보로부터 및/또는 요청 디바이스에 콘텐트를 전달하기 위해 이용 가능한 최대 대역폭을 나타내는 네트워크 정보와 같은 다른 정보로부터 결정될 수 있다. 이해되어야 하는 바와 같이, 이용 가능한 데이터 레이트는 네트워크 로딩에 의존하여 변할 수 있고, 콘텐트가 스트리밍되고 있는 시간 기간 동안 변할 수 있다. 변경들은 사용자 디바이스에 의해 보고되거나, 패킷들이 드롭되거나 네트워크가 사용되는 데이터 레이트를 지원하는 데 어려움을 갖는 것 및 현재 이용 가능한 데이터 레이트가 사용을 위해 이용가능하다고 결정된 원래의 데이터 레이트보다 낮다는 것을 나타내는 원하는 시간량을 넘어 지연되는 것을 나타내는 메시지들 또는 신호들로부터 검출될 수 있다.
동작은 단계(608)로부터 단계(608)로 진행하고, 콘텐트에 대한 요청이 초기화되는 사용자 디바이스의 현재 머리 위치, 예를 들면, 요청 시간에 현재 머리 위치가 0도 위치가 된다. 0도 또는 전방을 바라보는 위치는 몇몇 실시예들에서 재초기화가 발생하는 것을 시그널링하는 재생 디바이스에 의해 사용자에 의해 재초기화될 수 있다. 시간에 걸쳐 사용자의 머리 위치 및/또는 예를 들면, 원래의 머리 위치에 관하여 사용자의 머리 위치의 변경들은 콘텐트 전달 시스템(104)에 보고되고, 갱신된 위치는 콘텐트 전달 결정들을 수행하기 위해 이하에 논의되는 바와 같이 사용된다.
동작은 단계(608)로부터 단계(610)으로 진행하고, 요청된 콘텐트에 대응하는 360도 장면의 부분들이 재생 디바이스를 초기화하기 위해 전송된다. 적어도 몇몇 실시예들에서, 초기화는 장면 데이터의 풀 360도 세트, 예를 들면, N 개의 부분들(360도 장면이 N 개의 부분들로 분할됨)을 전송하는 것을 포함한다.
단계(610)에서 초기화의 결과로서, 재생 디바이스는 360도 가능한 뷰잉 영역의 상이한 부분들의 각각에 대응하는 장면 데이터를 가질 것이다. 따라서, 재생 디바이스의 사용자가 갑자기 후방으로 몸을 돌리는 경우, 적어도 몇몇 데이터는 심지어 사용자가 그의 머리를 돌리기 전에 보는 부분만큼 최신이 아닐지라도 사용자에게 디스플레이하기 위해 이용 가능할 것이다.
동작은 단계(610)로부터 단계들(612) 및 단계(622)로 진행한다. 단계(622)는 재생 디바이스가 전역 갱신 기간마다 적어도 한번 전체 360도 장면의 갱신된 버전을 수신하는 것을 확인하기 위해 사용되는 전역 장면 갱신 경로에 대응한다. 단계(610)에서 초기화되면, 전역 갱신 프로세스는 사전 결정된 시간 기간 동안 대기 단계(622)에서 지연된다. 이후, 단계(624)에서, 360도 장면 갱신이 수행된다. 대시 화살표(613)는 장면 부분들이 단계(622)에 대응하는 도움 기간 동안 재생 디바이스로 전달되는 정보의 통신을 나타낸다. 단계(624)에서, 전체 360도 장면이 전송될 수 있다. 그러나, 몇몇 실시예들에서, 모든 부분들이 단계(624)에서 전송되는 것은 아니다. 대기 기간(622) 동안 갱신되는 장면의 부부들은, 몇몇 실시예들에서, 그들이 사용자의 머리 위치에 기초하여 장면의 적어도 몇몇 부분들을 전송하는 정규 스트리밍 프로세스들 동안 미리 리프레시되기 때문에 단계(624)에서 수행된 갱신으로부터 생략된다.
동작은 단계(624)로부터 대기 단계(622)로 진행하고, 대기는 다음 전역 갱신 전에 수행된다. 단계(622)에서 사용된 대기 기간을 조정함으로써 상이한 전역 리프레시 레이트들이 지원될 수 있다는 것이 이해되어야 한다. 몇몇 실시예들에서, 콘텐트 서버는 제공되는 장면 콘텐트의 형태에 기초하여 대기 기간 및 그에 따른 전역 기준 기간을 선택한다. 스포츠 경기들의 경우에, 주요 동작은 전방을 향하는 영역에 존재하고, 리프레시를 위한 이유들 중 하나는 옥외 조명 상태들에서 가능한 변경들이고, 대기 기간은 예를 들면, 대략 1분 또는 수분으로 비교적 길 수 있다. 락 콘서트의 경우, 관객의 동작 및 활동은 상이한 노래들이 연주될 때마다 자주 변할 수 있고, 전역 리프레시 레이트는 사용자가 전방 스테이지 뷰잉 영역에서 진행하고 있는 것에 이외에 몸을 돌려서 관객을 보고 관객에게 진행하고 있는 느낌을 얻기를 원할 수 있기 때문에 스포츠 경기들에 대해서보다 높을 수 있고, 때때로 스포츠 경기들에 대해서보다 높다.
몇몇 실시예들에서, 전역 기준 기간은 스트리밍되는 표현의 부분의 함수로서 변경된다. 예를 들면, 스포츠 경기의 게이밍 부분 동안, 전역 리프레시 레이트는 비교적 낮을 수 있지만, 후반 터치 다운 순간 동안 또는 타임 아웃 또는 인터미션 동안, 재생 디바이스를 통해 이벤트에서 또는 이벤트를 시청하는 사람은 그 또는 그녀의 머리를 전방 주요 영역으로부터 돌릴 가능성이 더 많고, 전역 기준 레이트는 단계(622)에서 사용된 대기, 예를 들면, 리프레시 기간 제어를 감소시킴으로써 증가될 수 있고, 몇몇 경우들에서, 증가된다.
전역 리프레시 프로세스가 단계들(622, 624)을 참조하여 기술되었지만, 장면의 부분들의 정규 공급이 기술된다. 이해되는 바와 같이, 장면 또는 장면 부분의 정규 리프레시는 지원된 비디오 프레임 레이트에서 허용하는 데이터 레이트로 적어도 하나의 부분에 대해 발생할 것이다. 따라서, 적어도 하나의 프레임 부분에 관하여, 예를 들면, 그 또는 그녀의 머리가 향해지도록 표시되는 부분은 이용 가능한 데이터 레이트가 충분하다고 가정하면 풀 비디오 스트리밍 프레임 레이트에서 공급될 것이다.
단계(612)에서, 장면 부분들은 사용자의 표시된 머리 위치, 예를 들면, 뷰잉각에 기초하여 제공되도록 선택된다. 선택된 부분들은, 예를 들면, 주기적으로 재생 디바이스로 전송, 예를 들면, 스트리밍된다. 부분들에 대응하는 데이터가 스트리밍되는 레이트는, 몇몇 실시예들에서, 비디오 프레임 레이트에 의존하여 스트리밍된다. 예를 들면, 적어도 하나의 선택된 부분은 지원되는 풀 프레임 레이트에서 스트리밍될 것이다. 적어도 하나의 장면 부분이 단계(612)에서 선택되지만, 통상 다수의 장면 부분들, 예를 들면, 사용자가 마주보고 있는 장면 부분뿐만 아니라 다음의 가장 가까운 장면 부분이 선택된다. 추가의 장면 부분들은 또한, 이용 가능한 데이터 레이트가 다수의 프레임 부분들의 전달을 지원하기에 충분한 경우, 선택 및 지원될 수 있다.
스트리밍될 장면 부분들이 단계(612)에서 선택된 후, 동작은 단계(614)로 진행하고, 선택된 스트림 부분들의 인코딩된 버전은, 예를 들면, 이용 가능한 데이터 레이트 및 사용자의 뷰잉 위치에 기초하여 선택된다. 예를 들면, 현재 보고된 머리 부분에 의해 나타내지는 바와 같이 사용자가 마주보고 있는 장면 부분의 풀 레이트 고해상도 버전이 스트리밍될 수 있고 통상 스트리밍될 것이다. 현재 머리 위치의 왼쪽 및/또는 오른쪽에 대한 하나 이상의 장면 부분들은 더 낮은 해상도, 더 낮은 시간 레이트로서 또는 현재 보이지 않고 있는 장면 영역을 전송하기 위해 요구된 대역폭의 양을 감소시키는 다른 인코딩 방식을 사용하여 스트리밍되도록 선택될 수 있다. 인접한 장면 부분의 인코딩된 버전의 선택은 현재 보여지는 장면 부분의 고품질 버전이 전송되기 전에 넓혀진 대역폭의 양에 의존할 것이다. 현재 보여지지 않는 장면 부분들이 더 낮은 해상도 인코딩된 버전으로서 또는 프레임들 사이의 더 큰 시간적 거리를 갖는 인코딩된 버전으로서 전송될 수 있지만, 풀 해상도 고품질 버전은 이용가능한 충분한 대역폭이 존재하는 경우 주기적으로 또는 자주 전송될 수 있다.
단계(616)에서, 선택된 장면 부분들의 선택된 인코딩된 버전들이 콘텐트를 요청한 재생 디바이스로 전송된다. 따라서, 단계(616)에서, 하나 이상의 부분들에 대응하는 인코딩된 콘텐트, 예를 들면, 다수의 순차적인 프레임들에 대응하는 입체 영상 비디오 콘텐트가 재생 디바이스로 스트리밍된다.
동작은 단계(616)로부터 단계(618)로 진행하고, 사용자의 현재 머리 위치를 나타내는 정보가 수신된다. 이러한 정보는 주기적으로 또는 머리 위치의 변화를 검출하는 것에 응답하여 재생 디바이스로부터 전송될 수 있다. 머리 위치의 변화들 외에, 이용 가능한 데이터 레이트의 변화들은 어떤 콘텐트가 스트리밍되는지에 영향을 끼칠 수 있다. 동작은 단계(618)로부터 단계(620)로 진행하고 재생 디바이스로의 콘텐트 전달을 위해 사용될 수 있는 현재 데이터 레이트가 결정된다. 따라서, 콘텐트 전달 시스템은 요청하는 디바이스로의 스트리밍을 지원하기 위해 이용가능한 대역폭의 양의 변화들을 검출할 수 있다.
동작은 단계(620)로부터 단계(621)로 진행하고, 스트리밍은 콘텐트가 완전히 전달될 때까지, 예를 들면, 프로그램 또는 이벤트가 종료할 때까지, 또는 세션이 종료되었다는 것을 나타내는 콘텐트를 요청하는 신호가 재생 디바이스로부터 수신되거나 또는 재생 디바이스가 콘텐트 서버(114)와 더 이상 통신하지 않는다는 것을 나타내는 머리 위치 갱신과 같은 재생 디바이스로부터 예상된 신호를 수신의 실패가 검출될 때까지, 계속한다.
상기에 기술된 방식으로 전달된 장면 데이터로부터, 재생 디바이스는 사용자가 그 또는 그녀의 머리를 빠르게 돌릴 경우에 디스플레이하기 위해 이용 가능한 각각의 장면 부분에 대응하는 적어도 몇몇 데이터를 가질 것이다. 사용자가 많은 사람들에게 뷰잉 위치에서 불편한 변경이기 때문에 매우 짧은 시간 기간에 그들의 머리를 좀처럼 완전히 돌리지 않는다는 것이 이해되어야 한다. 따라서, 풀 360도 장면은 모든 시간에 송신되지 않을 수 있지만, 임의의 주어진 시간에 보여질 가능성이 가장 큰 장면 부분(들)의 고품질 버전이 사용자에게 스트리밍되고 이용 가능하게 만들어질 수 있다.
인코딩 프로세스가 장면의 N 개의 부분들이 각각의 개별적인 사용자에 대해 개별적으로 콘텐트를 인코딩해야 하지 않고 상이한 사용자들에게 상이하게 전송 및 처리되게 하기 때문에, 콘텐트 전달 시스템(104)은 다수의 동시 사용자들을 지원할 수 있다. 따라서, 다수의 동시 인코더들이 스포츠 또는 다른 이벤트들의 실시간 또는 거의 실시간 스트리밍을 허용하기 위해 실시간 인코딩을 지원하기 위해 사용될 수 있지만, 사용된 인코더들의 수는 콘텐트가 스트리밍되는 재생 디바이스들의 수보다 훨씬 적은 경향이 있다.
콘텐트의 부분들은 360도 뷰에 대응하는 부분들로서 기술되지만, 장면들은 수직 크기를 또한 갖는 공간의 평탄한 버전을 나타낼 수 있고 몇몇 실시예들에서, 그를 나타낸다는 것이 이해되어야 한다. 재생 디바이스는 3D 환경, 예를 들면, 공간의 모델을 사용하여 장면 부분들을 맵핑하고, 수직 뷰잉 위치들에 대해 조정할 수 있다. 따라서, 본 출원에서 논의되는 360도는 사용자가 그의 시선 레벨을 유지하면서 그의 뷰잉각을 왼쪽 또는 오른쪽으로 변경하는 것처럼 수평에 관한 머리 위치를 말한다.
도 7은 본 발명의 특징들에 따라 콘텐트를 인코딩 및 스트리밍하기 위해 사용될 수 있는 인코딩 능력을 갖는 일 예시적인 콘텐트 전달 시스템(700)을 도시한다.
시스템은 본 발명의 특징들에 따라 인코딩, 저장 및 전송 및/또는 콘텐트 출력을 수행하기 위해 사용될 수 있다. 몇몇 실시예들에서, 시스템(700) 또는 그 안의 요소들은 도 6 및 도 23에 도시된 프로세스에 대응하여 동작을 수행한다. 콘텐트 전달 시스템(700)은 도 1의 시스템(104)으로서 사용될 수 있다. 도 7에 도시된 시스템이 콘텐트의 인코딩, 처리, 및 스트리밍을 위해 사용될 수 있지만, 시스템(700)은 처리된 및/또는 인코딩된 이미지 데이터를 디코딩하고 예를 들면, 운영자에게 디스플레이하기 위한 능력을 또한 포함할 수 있다는 것이 이해되어야 한다.
시스템(700)은 디스플레이(702), 입력 데이터(704), 입력/출력(I/O) 인터페이스(706), 프로세서(708), 네트워크 인터페이스(710), 및 메모리(712)를 포함한다. 시스템(700)의 다양한 구성 요소들은 데이터가 시스템(700)의 구성 요소들 사이에 전달되게 하는 버스(709)를 통해 함께 결합된다.
메모리(712)는, 프로세서(708)에 의해 실행될 때, 시스템(700)이 본 발명에 따라 분할, 인코딩, 저장, 및 스트리밍/전송 및/또는 출력 동작들을 수행하도록 제어하는 다양한 모듈들, 예를 들면, 루틴들을 포함한다.
메모리(712)는, 프로세서(707)에 의해 실행될 때, 컴퓨터 시스템(700)이 본 발명에 따라 몰입형 입체 영상 비디오 획득, 인코딩, 저장, 및 전송 및.또는 출력 방법들을 구현하도록 제어하는 다양한 모듈들, 예를 들면 루틴들을 포함한다. 메모리(712)는 제어 루틴들(714), 분할 모듈(706), 인코더(들)(718), 검출 모듈(719), 스트리밍 제어기(720), 수신된 입력 이미지들(732), 예를 들면, 장면의 360도 입체 영상 비디오, 인코딩된 장면 부분들(734), 타이밍 정보(736), 환경 메시 모델(738), UV 맵(들)(740), 및 제 1 보정 메시 정보(742), 제 2 보정 메시 정보(744), 제 3 보정 메시 정보(746), 제 4 보정 메시 정보(748), 제 5 보정 메시 정보(750), 및 제 6 보정 메시 정보(752)를 포함하는 복수의 보정 메시 정보 세트들을 포함한다. 몇몇 실시예들에서, 모듈들은 소프트웨어 모듈들로서 구현된다. 다른 실시예들에서, 모듈들은 하드웨어에서, 예를 들면 개별적인 회로들로서 구현되고, 각각의 모듈은 모듈이 대응하는 기능을 수행하기 위한 회로로서 구현된다. 또 다른 실시예들에서, 모듈들은 소프트웨어 및 하드웨어의 조합을 사용하여 구현된다.
제어 루틴들(714)은 시스템(700)의 동작을 제어하기 위해 디바이스 제어 루틴들 및 통신 루틴들을 포함한다. 분할 모듈(716)은 본 발명의 특징들에 따라 장면의 수신된 입체 영상 360도 버전을 N 개의 장면 부분들로 분할하도록 구성된다.
인코더(들)(718)는 본 발명의 특징들에 따라 수신된 이미지 콘텐트, 예를 들면, 장면의 360도 버전 및/또는 하나 이상의 장면 부분들을 인코딩하도록 구성된 복수의 인코더들을 포함할 수 있고, 몇몇 실시예들에서 포함한다. 몇몇 실시예들에서, 인코더(들)는 다수의 인코더들을 포함하고, 각각의 인코더는 주어진 비트 레이트 스트림을 지원하기 위해 입체 영상 장면 및/또는 분할된 장면 부분들을 인코딩하도록 구성된다. 따라서, 몇몇 실시예들에서, 각각의 장면 부분은 각각의 장면에 대한 다수의 상이한 비트 레이트 스트림들을 지원하기 위해 다수의 인코더들을 사용하여 인코딩될 수 있다. 인코더(들)(718)의 출력은 고객 디바이스들, 예를 들면, 재생 디바이스들로 스트리밍을 위해 메모리에 저장되는 인코딩된 장면 부분들(734)이다. 인코딩된 콘텐트는 네트워크 인터페이스(710)를 통해 하나 또는 다수의 상이한 디바이스들로 스트리밍될 수 있다.
검출 모듈(719)은 현재 카메라 쌍, 예를 들면, 제 1 입체 영상 카메라 쌍을 다른 카메라 쌍, 예를 들면 제 2 또는 제 3 입체 영상 카메라 쌍으로 콘텐트를 스트리밍하는 것으로부터 네트워크 제어된 전환를 검출하도록 구성된다. 즉, 검출 모듈(719)은 시스템(700)이 주어진 입체 영상 카메라 쌍, 예를 들면, 제 1 입체 영상 카메라 쌍에 의해 캡처된 이미지들을 사용하여 생성된 콘텐트 스트림을 스트리밍하는 것으로부터 다른 카메라 쌍에 의해 캡처된 이미지들을 사용하여 생성된 콘텐트 스트림을 스트리밍하는 것으로 스위칭되는지를 검출한다. 몇몇 실시예들에서, 검출 모듈은 제 1 입체 영상 카메라 쌍으로부터의 콘텐트를 포함하는 제 1 콘텐트 스트림을 수신하는 것으로부터 제 2 입체 영상 카메라 쌍으로부터의 콘텐트를 포함하는 제 2 콘텐트 스트림을 수신하는 것으로 사용자 제어된 변경을 검출, 예를 들면, 재생 디바이스가 이전에 첨부된 콘텐트와 상이한 콘텐트 스트림을 첨부한다는 것을 나타내는 신호를 사용자 재생 디바이스로부터 검출하도록 구성된다. 스트리밍 제어기(720)는 예를 들면, 통신 네트워크(105)를 통해 인코딩된 이미지 콘텐트를 하나 이상의 고객 디바이스들로 전달하기 위해 인코딩된 콘텐트의 스트리밍을 제어하도록 구성된다. 다양한 실시예들에서, 플로차트(600) 및/또는 플로차트(2300)의 다양한 단계들은 스트리밍 제어기(720)의 요소들에 의해 구현된다.
스트리밍 제어기(720)는 요청 처리 모듈(722), 데이터 레이트 결정 모듈(724), 현재 머리 위치 결정 모듈(726), 선택 모듈(728), 및 스트리밍 제어 모듈(730)를 포함한다. 요청 처리 모듈(722)은 고객 재생 디바이스로부터 콘텐트를 이미징하기 위해 수신된 요청을 처리하도록 구성된다. 콘텐트에 대한 요청은 네트워크 인터페이스(710)에서 수신기를 통해 다양한 실시예들에서 수신된다. 몇몇 실시예들에서, 콘텐트에 대한 요청은 요청하는 재생 디바이스의 아이덴티티를 나타내는 정보를 포함한다. 몇몇 실시예들에서, 콘텐트에 대한 요청은 고객 재생 디바이스에 의해 지원된 데이터 레이트, 사용자의 현재 머리 위치, 예를 들면, 머리에 장착된 디스플레이의 위치를 포함할 수 있다. 요청 처리 모듈(722)은 수신된 요청을 처리하고 다른 동작들을 취하기 위해 스트리밍 제어기(720)의 다른 요소들에 검색된 정보를 제공한다. 콘텐트에 대한 요청이 데이터 레이트 정보 및 현재 머리 위치 정보를 포함할 수 있지만, 다양한 실시예들에서, 재생 디바이스에 의해 지원된 데이터 레이트는 네트워크 테스트들 및 시스템(700)과 재생 디바이스 사이에 다른 네트워크 정보 교환으로부터 결정될 수 있다.
데이터 레이트 결정 모듈(724)은 고객 디바이스들에 이미징 콘텐트를 스트리밍하기 위해 사용될 수 있는 이용가능한 데이터 레이트들을 결정하도록 구성되고, 예를 들면, 다수의 인코딩된 장면 부분들이 지원되기 때문에, 콘텐트 전달 시스템(700)은 고객 디바이스에 대해 다수의 데이터 레이트들에서 스트리밍 콘텐트를 지원할 수 있다. 데이터 레이트 결정 모듈(724)은 시스템(700)으로부터 콘텐트를 요청하는 재생 디바이스에 의해 지원된 데이터 레이트를 결정하도록 또한 구성된다. 몇몇 실시예들에서, 데이터 레이트 결정 모듈(724)은 네트워크 측정들에 기초하여 이미지 콘텐트의 전달을 위해 이용 가능한 데이터 레이트를 결정하도록 구성된다.
현재 머리 위치 결정 모듈(726)은 재생 디바이스로부터 수신된 정보로부터, 사용자의 현재 뷰잉각 및/또는 현재 머리 위치, 예를 들면, 머리에 장착된 디스플레이의 위치를 결정하도록 구성된다. 몇몇 실시예들에서, 재생 디바이스는 현재 머리 위치 정보를 시스템(700)에 주기적으로 전송하고, 현재 머리 위치 결정 모듈(726)은 현재 뷰잉각 및/또는 현재 머리 위치를 결정하기 위해 정보를 수신 및 처리한다.
선택 모듈(728)은 360도 장면 중 어느 부분들을 사용자의 현재 뷰잉각/머리 위치 정보에 기초하여 재생 디바이스에 스트리밍할지를 결정하도록 구성된다. 선택 모듈(728)은 콘텐트의 스트리밍을 지원하기 위해 이용 가능한 데이터 레이트에 기초하여 결정된 장면 부분들의 인코딩된 버전들을 선택하도록 또한 구성된다.
스트리밍 제어 모듈(730)은 이미지 콘텐트, 예를 들면, 본 발명의 특징들에 따라 다양한 지원된 데이터 레이트들에서 360도 입체 영상 장면의 다수의 부분들의 스트리밍을 제어하도록 구성된다. 몇몇 실시예들에서, 스트리밍 제어 모듈(230)은 재생 디바이스에서 장면 메모리를 초기화하기 위해 콘텐트를 요청하는 재생 디바이스로의 360도 입체 영상 장면의 N 개의 부분들을 스트리밍하는 것을 제어하도록 구성된다. 다양한 실시예들에서, 스트리밍 제어 모듈(730)은, 예를 들면, 결정된 레이트에서, 결정된 장면 부분들의 선택된 인코딩된 버전들을 주기적으로 전송하도록 구성된다. 몇몇 실시예들에서, 스트리밍 제어 모듈(730)은 시간 간격, 예를 들면, 매분에 한번에 따라 재생 디바이스로 360도 장면 갱신을 전송하도록 또한 구성된다. 몇몇 실시예들에서, 360도 장면 갱신을 전송하는 것은 풀 360도 입체 영상 장면의 N 개의 장면 부분들 또는 N-X 개의 장면 부분들을 전송하는 것을 포함하고, N은 풀 360도 입체 영상이 분할되는 부분들의 총 수이고, X는 재생 디바이스로 현재 전송된 선택된 장면 부분들을 나타낸다. 몇몇 실시예들에서, 스트리밍 제어 모듈(730)은 360도 장면 갱신을 전송하기 전에 초기화를 위해 처음에 N 개의 장면 부분들을 전송한 후 사전 결정된 시간 동안 대기한다. 몇몇 실시예들에서, 360도 장면 갱신의 전송을 제어하기 위한 타이밍 정보는 타이밍 정보(736)에 포함된다. 몇몇 실시예들에서, 스트리밍 제어 모듈(730)은 또한, 리프레시 간격 동안 재생 디바이스에 전송되지 않은 장면 부분들을 식별하고; 리프레시 간격 동안 재생 디바이스로 전송되지 않은 식별된 장면 부분들의 갱신된 버전을 전송하도록 구성된다.
다양한 실시예들에서, 스트리밍 제어 모듈(730)은 재생 디바이스가 각각의 리프레시 기간 동안 적어도 한번 상기 장면의 360도 버전을 완전히 리프레시하게 하기 위해 주기적으로 재생 디바이스로 N 개의 부분들 중 적어도 충분한 수를 전달하도록 구성된다.
몇몇 실시예들에서, 스트리밍 제어기(720)는 시스템(700)이, 예를 들면, 네트워크 인터페이스(710)의 송신기를 통해, 하나 이상의 카메라들, 예를 들면 도 13에 도시된 바와 같은 입체 영상 카메라 쌍들의 카메라들에 의해 캡처된 이미지 콘텐트로부터 생성된 인코딩된 이미지들을 포함하는 입체 영상 콘텐트 스트림(예를 들면, 인코딩된 콘텐트 스트림(734))을 전송하게 하도록 구성된다. 몇몇 실시예들에서, 스트리밍 제어기(720)는 렌더링 이미지 콘텐트에 사용될 환경 메시 모델(738)을 하나 이상의 재생 디바이스들로 전송하기 위해 시스템(700)을 제어하도록 구성된다. 몇몇 실시예들에서, 스트리밍 제어기(720)는 또한 이미지 렌더링 동작의 부분으로서 제 1 입체 영상 카메라 쌍에 의해 캡처된 이미지들의 부분들을 환경 메시 모델의 부분에 맵핑하기 위해 사용될 제 1 UV 맵을 재생 디바이스에 전송하도록 구성된다.
다양한 실시예들에서, 스트리밍 제어기(720)는 또한 보정 메시 정보의 하나 이상의 세트들, 예를 들면, 제 1, 제 2, 제 3, 제 4, 제 5, 제 6, 보정 메시 정보를 재생 디바이스에 제공(예를 들면, 네트워크 인터페이스(710)에서 송신기를 통해 전송)하도록 구성된다. 몇몇 실시예들에서, 제 1 보정 메시 정보는 제 1 입체 영상 카메라 쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 2 보정 메시 정보는 제 1 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 3 보정 메시 정보는 제 2 입체 영상 카메라 쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 4 보정 메시 정보는 제 2 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 5 보정 메시 정보는 제 3 입체 영상 카메라 쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 6 보정 메시 정보는 제 3 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다. 몇몇 실시예들에서, 스트리밍 제어기(720)는 또한 제 3 및 제 4 보정 메시 정보가 제 2 입체 영상 카메라 쌍에 의해 캡처된 콘텐트가 제 1 입체 영상 카메라 쌍으로부터의 콘텐트 대신 재생 디바이스에 스트리밍될 때 사용되어야 한다는 것을, 예를 들면, 제어 신호를 전송함으로써, 재생 디바이스에 나타내도록 구성된다. 몇몇 실시예들에서, 스트리밍 제어기(720)는 또한 제 3 및 제 4 보정 메시 정보가, 검출 모듈(719)이 ⅰ) 상기 제 1 입체 영상 카메라 쌍으로부터 상기 제 2 입체 영상 카메라 쌍으로 콘텐트를 스트리밍하는 것으로부터 네트워크 제어된 전환 또는 ⅱ) 상기 제 1 입체 영상 카메라 쌍으로부터 콘텐트를 포함하는 제 1 콘텐트 스트림을 수신하는 것으로부터 제 2 입체 영상 카메라 쌍으로부터 인코딩된 콘텐트를 포함하는 제 2 콘텐트 스트림을 수신하는 것으로 사용자 제어된 변경을 검출하는 것에 응답하여 사용되어야 한다는 것을 재생 디바이스에 나타내도록 구성된다.
메모리(712)는 환경 메시 모델(738), UV 맵(들)(740), 및 제 1 보정 메시 정보(742), 제 2 보정 메시 정보(744), 제 3 보정 메시 정보(746), 제 4 보정 메시 정보(748), 제 5 보정 메시 정보(750), 및 제 6 보정 메시 정보(752)를 포함하는 보정 메시 정보의 세트들을 추가로 포함한다. 시스템은 이미지 콘텐트를 렌더링할 때 사용을 위해 하나 이상의 재생 디바이스들에 환경 메시 모델(738)을 제공한다. UV 맵(들)(740)은 이미지 렌더링 동작의 부분으로서 제 1 입체 영상 카메라 쌍에 의해 캡처된 이미지들의 부분들을 환경 메시 모델(738)의 일 부분에 맵핑하기 위해 사용될 적어도 제 1 UV 맵을 포함한다. 제 1 보정 메시 정보(742)는 제 1 입체 영상 카메라 쌍의 상기 제 1 카메라의 제 1 렌즈의 하나 이상의 광학 특징들의 측정에 기초하여 생성된 정보를 포함하고, 제 2 보정 메시는 제 1 입체 영상 카메라 쌍의 상기 제 2 카메라의 제 2 렌즈의 하나 이상의 광학 특징의 측정에 기초하여 생성된 정보를 포함한다. 몇몇 실시예들에서, 제 1 및 제 2 입체 영상 카메라 쌍들은 콘텐트가 스트리밍하기 위해 캡처되는 영역 또는 이벤트 위치에서 전방 뷰잉 방향이지만 상이한 위치들에 대응한다.
몇몇 실시예들에서, 프로세서(708)는 플르차트들(600 및/또는 2300)에 논의된 단계들에 대응하는 다양한 기능들을 수행하도록 구성된다. 몇몇 실시예들에서, 프로세서는 다양한 기능들을 수행하고 시스템(700)이 본 발명의 방법들에 따라 동작하도록 제어하기 위해 메모리에 저장된 루틴들 및 정보를 사용한다. 일 실시예들에서, 프로세서(708)는 제 1 보정 메시 정보 및 제 2 보정 메시 정보를 재생 디바이스에 제공하도록 시스템을 제어하도록 구성되고, 제 1 보정 메시 정보는 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 2 보정 메시 정보는 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다. 몇몇 실시예들에서, 제 1 입체 영상 카메라 쌍은 제 1 방향에 대응하고, 프로세서는 또한 제 1 및 제 2 카메라들에 의해 캡처된 이미지 콘텐트로부터 생성된 인코딩된 이미지들을 포함하는 입체 영상 콘텐트 스트림을 전송하도록 시스템(700)을 제어하도록 구성된다. 몇몇 실시예들에서, 프로세서(708)는 이미지 콘텐트를 렌더링할 때 사용될 환경 메시 모델을 재생 디바이스로 전송하도록 또한 구성된다. 몇몇 실시예들에서, 프로세서(708)는 이미지 렌더링 동작의 부분으로서 제 1 입체 카메라 쌍에 의해 캡처된 이미지들의 부분들을 환경 메시 모델의 일 부분에 맵핑하기 위해 사용될 제 1 UV 맵을 재생 디바이스로 전송하도록 또한 구성된다. 몇몇 실시예들에서, 프로세서(708)는 또한 제 3 보정 메시 정보 및 제 4 보정 메시 정보를 재생 디바이스에 제공하도록 시스템(700)을 제어하도록 구성되고, 제 3 보정 메시 정보는 제 2 입체 영상 카메라쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 4 보정 메시 정보는 제 2 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다. 몇몇 실시예들에서, 프로세서(708)는 또한, 제 3 및 제 4 보정 메시 정보가 제 2 카메라 쌍에 의해 캡처된 콘텐트가 제 1 카메라 쌍으로부터의 콘텐트 대신에 재생 디바이스로 스트리밍될 때 사용되어야 한다는 것을 재생 디바이스에 나타내도록(예를 들면, 네트워크 인터페이스(710)를 통해 전송하도록) 시스템(700)을 제어하도록 구성된다. 몇몇 실시예들에서, 프로세서(708)는 또한, 제 3 및 제 4 보정 메시 정보가 시스템이 ⅰ) 제 1 입체 영상 카메라 쌍으로부터 제 2 입체 영상 쌍으로 콘텐트를 스트리밍하는 것으로부터 네트워크 제어된 전환 또는 ⅱ) 제 1 입체 영상 카메라 쌍으로부터의 콘텐트를 포함하는 제 1 콘텐트 스트림을 수신하는 것으로부터 제 2 입체 영상 카메라 쌍으로부터 인코딩된 콘텐트를 포함하는 제 2 콘텐트 스트림을 수신하는 것으로 사용자 제어된 변경을 검출하는 것에 응답하여 사용되어야 한다는 것을 재생 디바이스에 나타내도록 시스템(700)을 제어하도록 구성된다. 몇몇 실시예들에서, 프로세서(708)는 또한, 시스템이 제 5 및 제 6 보정 메시 정보를 재생 디바이스에 제공하도록 시스템(700)을 제어하도록 구성되고, 제 5 보정 메시 정보는 제 3 입체 영상 카메라 쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 6 보정 메시 정보는 제 3 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다.
도 8은 도 1 및 도 7에 도시된 것과 같은 콘텐트 전달 시스템으로부터 수신된 이미징 콘텐트를 수신, 디코딩, 저장 및 디스플레이하기 위해 사용될 수 있는 본 발명에 따라 구현된 컴퓨터 시스템/재생 디바이스(800)를 도시한다. 재생 디바이스는 머리에 장착된 디스플레이(805)일 수 있는 OCULUS RIFTTM VR(가상 현실)와 같은 3D 머리에 장착된 디스플레이와 함께 사용될 수 있다. 디바이스(800)는 수신된 인코딩된 이미지 데이터를 디코딩하고 고객에게 디스플레이하기 위한 3D 이미지 콘텐트를 생성하기 위한 능력을 포함한다. 재생 디바이스는 몇몇 실시예들에서 가정 또는 사무실과 같은 고객 구내 위치에 위치되지만, 이미지 캡처 사이트에 또한 위치될 수 있다. 디바이스(800)는 본 발명에 따라 신호 수신, 디코딩, 디스플레이 및/또는 다른 동작들을 수행할 수 있다.
디바이스(800)는 디스플레이(802), 디스플레이 디바이스 인터페이스(803), 입력 디바이스(804), 입력/출력(I/O) 인터페이스(806), 프로세서(808), 네트워크 인터페이스(810) 및 메모리(812)를 포함한다. 재생 디바이스(800)의 다양한 구성 요소들은 데이터가 시스템(800)의 구성 요소들 사이에 전달되게 하는 버스(809)를 통해 함께 결합된다. 몇몇 실시예들에서, 디스플레이(802)가 점선 박스를 사용하여 도시되는 광학 요소로서 포함되지만, 몇몇 실시예들에서, 외부 디스플레이 디바이스(805), 예를 들면, 머리에 장착된 입체 영상 디스플레이 디바이스는 디스플레이 디바이스 인터페이스(803)을 통해 재생 디바이스에 결합될 수 있다.
I/O 인터페이스(806)를 통해, 시스템(800)은 신호들 및/또는 정보를 다른 디바이스들과 교환하기 위해 외부 디바이스들에 결합될 수 있다. 몇몇 실시예들에서, I/O 인터페이스(806)를 통해, 시스템(800)은 외부 디바이스로부터 정보 및/또는 이미지들을 수신하고 외부 디바이스들로 정보 및/또는 이미지들을 출력할 수 있다. 몇몇 실시예들에서, I/O 인터페이스(806)를 통해, 시스템(800)은, 예를 들면, 핸드헬드 제어기와 같은, 외부 제어기에 결합될 수 있다.
프로세서(808), 예를 들면, CPU는 메모리(812) 내 루틴들(814) 및 모듈들을 실행하고, 시스템(800)이 본 발명에 따라 동작하도록 제어하기 위해 저장된 정보를 사용한다. 프로세서(808)는 시스템(800)의 전체 일반적인 동작을 제어하는 것을 담당한다. 다양한 실시예들에서, 프로세서(1108)는 재생 시스템(800)에 의해 수행되는 것으로 논의되는 기능들을 수행하도록 구성된다.
네트워크 인터페이스(810)를 통해, 시스템(800)은, 예를 들면, 통신 네트워크(105)와 같은, 통신 네트워크를 통해 다수의 외부 디바이스들로/로부터 신호들 및/또는 정보(예를 들면, 장면에 대응하는 인코딩된 이미지들 및/또는 비디오 콘텐트를 포함하는)를 전달 및/또는 수신한다. 몇몇 실시예들에서, 시스템은 콘텐트 전달 시스템(700)으로부터 네트워크 인터페이스(810)를 통해 하나 이상의 상이한 카메라들에 의해 캡처된 인코딩된 이미지들을 포함하는 하나 이상의 콘텐트 스트림들을 수신한다. 수신된 콘텐트 스트림은 수신된 인코딩된 데이터, 예를 들면, 인코딩된 이미지들(824)로서 저장될 수 있다. 몇몇 실시예들에서, 인터페이스(810)는 제 1 카메라에 의해 캡처된 이미지 콘텐트를 포함하는 제 1 인코딩된 이미지 및 제 2 카메라에 대응하는 제 2 인코딩된 이미지를 수신하도록 구성된다. 네트워크 인터페이스(810)는 수신 및 전송 동작들이 수행되는 수신기 및 전송기를 포함한다. 몇몇 실시예들에서, 인터페이스(810)는 메모리(812)에 이후 저장되는 제 1 보정 메시 정보(842), 제 2 보정 메시 정보(844), 제 3 보정 메시 정보(846), 제 4 보정 메시 정보(848), 제 5 보정 메시 정보(850), 및 제 6 보정 메시 정보(852)를 포함하는 복수의 상이한 카메라들에 대응하는 보정 메시 정보를 수신하도록 구성된다. 또한, 몇몇 실시예들에서, 인터페이스(810)를 통해, 시스템은 메모리(812)에 이후 저장되는 하나 이상의 마스크(들)(832), 환경 메시 모델(838), UV 맵(들)(840)을 수신한다.
메모리(812)는 프로세서(808)에 의해 실행될 때 본 발명에 따라 동작들을 디코딩 및 출력 동작들에 대해 재생 디바이스(800)를 제어하는 다양한 모듈들, 예를 들면, 루틴들을 포함한다. 메모리(812)는 제어 루틴들(814), 콘텐트 생성 모듈(816)에 대한 요청, 머리 위치 및/또는 시야각 결정 모듈(818), 디코더 모듈(820), 3D 이미지 생성 모듈이라고 또한 불리는 입체 영상 이미지 렌더링 엔진(822), 결정 모듈, 및 수신된 인코딩된 이미지 콘텐트(824), 디코딩된 이미지 콘텐트(826), 360도 디코딩된 장면 버퍼(828), 생성된 입체 영상 콘텐트(830), 마스크(들)(832), 환경 메시 모델(838), UV 맵들(들)(840), 및 제 1 보정 메시 정보(842), 제 2 보정 메시 정보(844), 제 3 보정 메시 정보(846), 제 4 보정 메시 정보(848), 제 5 보정 메시 정보(850), 및 제 6 보정 메시 정보(852)를 포함하는 복수의 수신된 보정 메시 정보 세트들을 포함하는 데이터/정보를 포함한다.
제어 루틴들(814)은 디바이스(800)의 동작을 제어하기 위해 디바이스 제어 루틴들 및 통신 루틴들을 포함한다. 요청 생성 모듈(816)은 콘텐트를 제공하기 위해 콘텐트 전달 시스템에 전송할 콘텐트에 대한 요청을 생성하도록 구성된다. 콘텐트에 대한 요청은 네트워크 인터페이스(810)를 통해 다양한 실시예들에서 전송된다. 머리 위치 및/또는 뷰잉각 결정 모듈(818)은 사용자의 현재 뷰잉각 및/또는 현재 머리 위치, 예를 들면, 머리에 장착된 디스플레이의 위치를 결정하고, 결정된 위치 및/또는 뷰잉각 정보를 콘텐트 전달 시스템(700)에 보고하도록 구성된다. 몇몇 실시예들에서, 재생 디바이스(800)는 현재 머리 위치 정보를 시스템(700)에 주기적으로 전송한다.
디코더 모듈(820)은 디코딩된 이미지 데이터, 예를 들면, 디코딩된 이미지들(826)을 생성하기 위해 콘텐트 전달 시스템(700)으로부터 수신된 인코딩된 이미지 콘텐트(824)를 디코딩하도록 구성된다. 디코딩된 이미지 데이터(826)는 디코딩된 입체 영상 장면 및/또는 디코딩된 장면 부분들을 포함할 수 있다. 몇몇 실시예들에서, 디코더(820)는 제 1 디코딩된 이미지를 생성하기 위해 제 1 인코딩된 이미지를 디코딩하고 제 2 디코딩된 이미지를 생성하기 위해 제 2 수신된 인코딩된 이미지를 디코딩하도록 구성된다. 디코딩된 제 1 및 제 2 이미지들은 저장된 디코딩된 이미지들(826)에 포함된다.
3D 이미지 렌더링 엔진(822)은 렌더링 동작들을 수행하고(예를 들면, 디코딩된 이미지들(826), 환경 메시 모델(838), UV 맵(들)(840), 마스크들(832), 및 메시 보정 정보와 같은 메모리(812)에 수신 및/또는 저장된 콘텐트 및 정보를 사용하여), 디스플레이(802) 및/또는 디스플레이 디바이스(805)상에 사용자에 대한 디스플레이를 위해 본 발명의 특징들에 따라 3D 이미지를 생성한다. 생성된 입체 영상 이미지 콘텐트(830)는 3D 이미지 생성 엔진(822)의 출력이다. 다양한 실시예들에서, 렌더링 엔진(822)은 디스플레이를 위해 제 1 이미지를 생성하기 위해 제 1 보정 정보(842), 제 1 디코딩된 이미지, 및 환경 메시 모델(838)을 사용하여 제 1 렌더링 동작을 수행하도록 구성된다. 다양한 실시예들에서, 렌더링 엔진(822)은 또한 디스플레이를 위해 제 2 이미지를 생성하기 위해 제 2 보정 정보(844), 제 2 디코딩된 이미지, 및 환경 메시 모델(838)을 사용하여 제 2 렌더링 동작을 수행하도록 구성된다. 몇몇 이러한 실시예들에서, 렌더링 엔진(822)은 또한 제 1 및 제 2 렌더링 동작들을 수행하기 위해 제 1 UV 맵(수신된 UV 맵(들)(840)에 포함된)을 사용하도록 구성된다. 제 1 보정 정보는, 제 1 렌더링 동작이 제 1 카메라의 렌즈에 의해 제 1 이미지로 도입된 왜곡들에 대해 보상하기 위해 수행될 때, 제 1 UV 맵에서 노드 위치들에 수행될 보정들에 대한 정보를 제공하고, 제 2 보정 정보는, 제 2 렌더링 동작이 제 2 카메라의 렌즈에 의해 제 2 이미지로 도입된 왜곡들에 대해 보상하도록 수행될 때, 제 1 맵에서 노드 위치들에 수행된 보정들에 대한 정보를 제공한다. 몇몇 실시예들에서, 렌더링 엔진(822)은 또한, 제 1 렌더링 동작의 부분으로서 환경 메시 모델의 표면에 제 1 이미지의 부분들을 적용할 때, 제 1 이미지의 부분들이 제 1 렌더링 동작의 부분으로서 상이한 시야에 대응하는 제 1 이미지의 부분들과 조합되는 방법을 결정하기 위해 제 1 마스크(마스크(들)(832)에 포함된)를 사용하도록 구성된다. 몇몇 실시예들에서, 렌더링 엔진(822)은 또한, 제 2 렌더링 동작의 부분으로서 환경 메시 모델의 표면에 제 2 이미지의 부분들을 적용할 때, 제 2 이미지의 부분들이 제 2 렌더링 동작의 부분으로서 상이한 시야에 대응하는 제 2 이미지의 부분들과 조합되는 방법을 결정하기 위해 제 1 마스크를 사용하도록 구성된다. 생성된 입체 영상 이미지 콘텐트(830)는 제 1 및 제 2 렌더링 동작의 결과로서 생성된 제 1 및 제 2 이미지들(예를 들면, 왼쪽 및 오른쪽 눈 뷰들에 대응하는)을 포함한다. 몇몇 실시예들에서, 상이한 시야에 대응하는 제 1 이미지의 부분들은 하늘 또는 지상 시야에 대응한다. 몇몇 실시예들에서, 제 1 이미지는 전방 시야에 대응하는 왼쪽 눈 이미지이고, 상이한 시야에 대응하는 제 1 이미지는 전방 시야에 인접한 뷰의 측면 필드에 대응하는 제 3 카메라에 의해 캡처된 왼쪽 눈 이미지이다. 몇몇 실시예들에서, 제 2 이미지는 전방 시야에 대응하는 오른쪽 눈 이미지이고, 상이한 시야에 대응하는 제 2 이미지는 전방 시야에 인접한 뷰의 측면 필드에 대응하는 제 4 카메라에 의해 캡처된 오른쪽 눈 이미지이다. 따라서, 렌더링 엔진(822)은 3D 이미지 콘텐트(830)를 디스플레이에 렌더링한다. 몇몇 실시예들에서, 재생 디바이스(800)의 운영자는 입력 디바이스(804)를 통해 하나 이상의 파라미터들을 제어할 수 있고, 및/또는 수행될 동작들을 선택할 수 있고, 예를 들면, 3D 장면을 디스플레이를 선택할 수 있다.
네트워크 인터페이스(810)는 재생 디바이스가 스트리밍 디바이스(114)로부터 콘텐트를 수신하고 및/또는 이벤트에서 특정한 뷰잉 위치의 선택을 나타내는 뷰 머리 위치 및/또는 위치(카메라 장비) 선택과 같은 정보를 전달하게 한다. 몇몇 실시예들에서, 디코더(820)는 모듈로서 구현된다. 이러한 실시예들에서, 실행될 때, 디코더 모듈(820)은 수신된 이미지들이 디코딩되게 하고, 3D 이미지 렌더링 엔진(822)은 본 발명에 따라 이미지들의 다른 처리 및 표시 프로세스의 일부로서 이미지들을 함께 선택적 스티칭을 야기한다.
몇몇 실시예들에서, 인터페이스(810)는 또한, 복수의 상이한 카메라들, 예를 들면, 제 3, 제 4, 제 5, 및 제 6 메시 보정 정보에 대응하는 추가의 메시 보정 정보를 수신하도록 구성된다. 몇몇 실시예들에서, 렌더링 엔진(822)은 또한, 제 4 카메라에 대응하는 이미지를 렌더링할 때, 제 4 카메라에 대응하는 메시 보정 정보(예를 들면, 제 4 메시 보정 정보(848))를 사용하도록 구성되고, 제 4 카메라는 복수의 상이한 카메라들 중 하나이다. 결정 모듈(823)은, 카메라 캡처된 이미지 콘텐트가 렌더링 동작에서 사용되고 있는 것에 기초하거나 또는 수신된 콘텐트에 대응하는 이미지들을 렌더링할 때 어느 메시 보정 정보가 사용되어야 하는지를 나타내는 서버로부터의 표시에 기초하여 렌더링 동작을 수행할 때, 어느 메시 보정 정보가 렌더링 엔진(822)에 의해 사용되는지를 결정하도록 구성된다. 결정 모듈(823)은 몇몇 실시예들에서 렌더링 엔진(822)의 부분으로서 구현될 수 있다.
몇몇 실시예들에서, 도 7의 메모리(712) 및 도 8의 메모리(812)에 도시된 모듈들 및/또는 요소들은 소프트웨어 모듈들로서 구현된다. 다른 실시예들에서, 메모리에 포함되도록 도시되는, 모듈들 및/또는 요소들은, 예를 들면, 요소에 대응하는 기능을 수행하기 위해 회로로서 구현되는 각각의 요소를 갖는 개별적인 회로들로서 하드웨어에서 구현된다. 또 다른 실시예들에서, 모듈들 및/또는 요소들은 소프트웨어 및 하드웨어의 조합을 사용하여 구현된다.
메모리에 포함되도록 도 7 및 도 8에 도시되지만, 시스템(700, 800)에 포함되어 도시된 요소들은, 예를 들면, 콘텐트 전달 시스템의 경우 프로세서(708) 내 및 재생 시스템(800)의 경우에 프로세서(808) 내, 프로세서, 예를 들면, 대응하는 디바이스의 개별적인 회로들로서 하드웨어에서 완전히 구현될 수 있고, 몇몇 실시예들에서, 그렇게 구현된다. 다른 실시예들에서, 요소들의 일부는 예를 들면, 대응하는 프로세서들(708, 808) 내에서 회로들로서 구현되고, 다른 요소들은 예를 들면, 프로세서들의 외부 및 그에 결합된 회로들로서 구현된다. 이해되어야 하는 바와 같이, 프로세서상의 모듈들 및/또는 프로세스의 외부에 있는 몇몇 모듈들을 갖는 통합의 레벨은 설계 선택의 하나일 수 있다. 대안적으로, 회로들로서 구현되기보다는, 요소들의 모두 또는 일부는, 모듈들이 그들의 각각의 프로세서들, 예를 들면, 프로세서들(708, 808)에 의해 실행될 때, 모듈들에 대응하는 기능들을 구현하기 위해 각각의 시스템들(700, 800)의 소프트웨어 모듈 제어 동작에 의해, 소프트웨어로 구현되고 메모리에 저장될 수 있다. 또 다른 실시예들에서, 다양한 요소들은, 예를 들면, 이후 소프트웨어 제어하에서 모듈의 기능 중 일 부분을 수행하도록 동작하는 프로세서에 입력을 제공하는 프로세서 외부의 회로에 의해, 하드웨어 및 소프트웨어의 조합으로서 구현된다.
도 7 및 도 8 실시예들의 각각에 단일 프로세서, 예를 들면, 컴퓨터로서 도시되지만, 프로세서들(708, 808)의 각각이 하나 이상의 프로세서들, 예를 들면, 컴퓨터들로서 구현될 수 있다는 것이 이해되어야 한다. 메모리(712, 812) 내 하나 이상의 요소들이 소프트웨어 모듈들로서 구현될 때, 모듈들은, 대응하는 시스템의 프로세서(예를 들면, 프로세서들(708, 808))에 의해 실행될 때, 프로세서가 모듈에 대응하는 기능을 구현하도록 구성하는 코드를 포함한다. 도 7 및 도 8에 도시된 다양한 모듈들이 메모리에 저장되는 실시예들에서, 메모리는, 코드, 예를 들면, 적어도 하나의 컴퓨터, 예를 들면, 프로세서가 모듈이 대응하는 기능들을 구현하게 하기 위해 각각의 모듈에 대한 개별적인 코드를 포함하는 컴퓨터 판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품이다.
완전히 하드웨어 기반 또는 완전히 소프트웨어 기반 모듈들이 사용될 수 있다. 그러나, 소프트웨어 및 하드웨어의 임의의 조합, 예를 들면, 회로 구현된 모듈들이 기능들을 구현하기 위해 사용될 수 있다는 것이 이해되어야 한다. 이해되어야 하는 바와 같이, 도 7에 도시된 모듈들은 시스템(700) 또는 프로세서(708)와 같은 그 안의 요소들이, 예를 들면, 플로차트들(600, 1100, 2300)에 도시된 및/또는 기술된 것들과 같이, 본 발명의 방법들의 대응하는 단계들의 기능들을 수행하도록 제어 및/또는 구성한다. 유사하게는, 도 8에 도시된 모듈들은 시스템(800) 또는 프로세서(808)와 같은 그 안의 요소들이, 예를 들면, 플로차트들(1200, 2400, 2500)에 도시된 및/또는 기술된 것들과 같이, 본 발명의 방법들의 대응하는 단계들의 기능들을 수행하도록 제어 및/또는 구성한다.
도 9는 플로차트의 형태로 카메라 교정, 이미지 인코딩 및 콘텐트 스트리밍 방법(900)의 제 1 부분을 도시한다. 예시적인 방법은 도 1에 도시된 시스템(104)에 의해 구현될 수 있고, 몇몇 실시예들에서 그렇게 구현된다. 도 9에 도시된 방법은 이미지 처리 교정 및 인코딩 디바이스(112)에 의해 카메라 장비(102)의 각각의 카메라에 대해 수행된다.
방법은, 예를 들면, 카메라가, 예를 들면, 이벤트 사이트에서 제 1 시간 동안 시스템(104)에 연결될 때, 단계(902)에서 시작한다. 단계(904)에서, 카메라 교정 동작은 카메라 교정 서브루틴에 대한 호출에 의해 개시된다. 카메라 교정 서브루틴은 개별적으로 교정되는 입체 영상 쌍의 왼쪽 및 오른쪽 카메라들에 의해 장비(102)의 각각의 카메라에 대해 호출된다.
지금 도 10에 대해 간단하게 참조하면, 단계(904)에서 호출될 수 있는 일 예시적인 교정 서브루틴(1000)이 도시된다. 카메라 교정 루틴은 그것이 호출될 때 단계(1002)에서 시작한다. 동작은 시작 단계(1002)로부터 단계(1004)로 진행하고, 이미지는 하나 이상의 알려진 객체들, 예를 들면, 그리드상 또는 근처의 하나 이상의 알려진 고정된 크기 객체들에 의해 교정될 카메라로부터 고정된 알려진 거리에 위치된 교정 그리드 중에서 취해진다. 동작은 이후 단계(1008)로 진행되고, 교정 그리드 및/또는 객체들에 대응하는 캡처된 이미지 또는 이미지들이 교정된 카메라에 도입된 왜곡들을 검출하도록 처리된다. 이후, 단계(1010)에서, 왜곡 보정 메시는 교정 측정들 및 검출된 이미지 왜곡들로부터 생성된다. 보정 메시는 카메라 및 카메라의 부분으로서 포함된 어안 렌즈에 의해 도입된 하나 이상의 왜곡들을 반전시키거나 감소시키기 위해 이미지 보정 동작의 일부로서 캡처된 이미지들에 적용될 수 있다. 메시는 이미지 캡처 프로세스의 일부로서 도입된 왜곡들 및/또는 만곡을 반전시키기 위해 캡처된 이미지의 "평탄화"가 고려될 수 있는 것에 대해 허용한다. 교정되는 개별적인 카메라에 대해 왜곡 보정 메시가 생성되면, 이는 이후, 이하에 도시된 바와 같이, 이미지들의 부분들을 나타내거나 이미지들을 시뮬레이션된 환경에 적용하기 전에 캡처된 이미지들로 도입된 왜곡들을 보정하기 위해 메시를 사용할 수 있는 재생 디바이스로의 미래의 사용 및/또는 전송을 위해 저장된다.
몇몇 실시예들에서, 보정 메시는 각각의 노드점에 대한 오프셋 정보와 함께 규칙적인 균등한 메시에서 노드들의 노드 위치들을 나타내는 메시 정보의 일 세트로서 구현되고, 보정 메시에서 위치는 규칙적인 메시에서 노드 위치와 상이하다. 이러한 실시예들은 환경의 3D 메시 모델의 대응하는 부분에 적용될 이미지를 맵핑하기 위한 UV 맵이 규칙적인 구조를 갖는 경우 특히 유용하다. 예를 들면, 평탄한 이미지를 3D 메시 모델로 맵핑하기 위해 UV 맵으로서 사용될 수 있는 메시, 예를 들면 구를 도시하는 도 20을 고려하자. 도 19에 도시된 보정 메시는 UV 맵으로서 사용될 수 있는 도 20에 도시된 규칙적인 메시에 대응하는 노드들을 포함한다. UV 맵은 적어도 몇몇 실시예들에서 3D 모델의 노드들에 대응하는 노드들을 갖는 2D 맵을 말한다. UV 맵은 3D 모델의 대응하는 섹션들상에 둘러싸기 위해 텍스처라고 때때로 불리는 2D 이미지의 섹션들을 결정하기 위해 사용될 수 있다.
도 19에 도시된 보정 메시는 노드들의 세트 및 오프셋 정보에 의해 표현될 수 있다. 정보의 보정 메시 세트에서 노드에 대해 포함된, U는 X축인 것에 대응하고 V는 Y축인 것에 대응하는, U 및 V 좌표들은 표시된 U 및 V 좌표들에서 발생하는 도 20의 규칙적인 메시에 대응하는 노드를 식별하기 위한 노드 식별자의 역할을 한다. 따라서, 도 20에 도시된 규칙적인 메시의 노드의 U 좌표 및 V 좌표는 도 20에 도시된 대응하는 얼마나 많은 노드의 U 좌표 및 V 좌표가 도 19의 노드의 위치를 초래하도록 변경되어야 하는지를 나타내는 보정 메시 정보의 세트에 포함된 오프셋 정보와 함께 보정 메시에서 대응하는 노드를 식별하기 위해 사용될 수 있다. 노드에 대한 오프셋 정보는 얼마나 많은 노드 위치가 도 20에 도시된 규칙적인 UV 맵에서 대응하는 노드의 위치에 배치하도록 보정 또는 조정되어야 하는지를 나타내기 때문에, "보정 정보"로서 고려될 수 있다.
도 19는 단일 보정 메시를 도시하지만, 보정 메시는 카메라 종속적이고 따라서 메시 보정 정보의 개별적인 세트들은 입체 영상 카메라 쌍의 왼쪽 카메라 및 오른쪽 카메라의 각각에 대해 생성되는 개별적인 보정 메시들에 의해 이미지들을 캡처하는 각가의 카메라에 대해 제공된다는 것이 이해되어야 한다. 도 20에 도시된 규칙적인 UV 맵이 카메라 렌즈 왜곡들에 종속하지 않기 때문에, 동일한 UV 맵은 입체 영상 이미지 쌍의 왼쪽 및 오른쪽 눈 이미지들 모두에 대해 사용될 수 있고, 몇몇 실시예들에서, 그렇게 사용된다.
왼쪽 또는 오른쪽 눈 카메라에 대응하는 디코딩된 왜곡된 이미지가 이미지를 캡처한 특정한 카메라 렌즈에 의해 도입된 왜곡들을 제거하기 위해 보정되면, 도 21에 나타내진 렌더링 단계의 부분으로서 왼쪽 및 오른쪽 눈 이미지 뷰들에 대해 동일할 수 있고, 몇몇 실시예들에서 동일한 규칙적인 UV 맵을 사용하여 환경의 3D 모델에 적용될 수 있다.
그러나, 몇몇 실시예들에서, 하나 이상의 왜곡 보정된 이미지들의 생성이 디코딩된 왜곡된 카메라 뷰로부터 3D 메시 모델에 직접 맵핑하기 위해 보정 메시 정보의 세트에 포함된 오프셋 정보와 함께 규칙적인 UV 맵의 노드들의 위치에 관한 정보를 사용하여 렌더링 이미지에 의해 스킵된다는 것이 이해되어야 한다. 따라서, 본 발명의 이해를 용이하게 하기 위해 보여지지만 왜곡 보정 이미지의 생성은 본 발명에 중요하지 않고 일 처리 동작에서 수행되는 3D 모듈에 대한 왜곡 보정 및 맵핑에 의해 스킵될 수 있다.
다시 한번 도 10을 참조하면, 교정 정보에 기초하여 카메라에 대해 단계(1004)에서 생성된 보정 정보와 함께, 동작은 리턴 단계인 단계(1012)로 진행한다.
이해되어야 하는 바와 같이, 도 10에 도시된 교정 프로세스는 각각의 카메라에 대해 생성 및 저장되는 보정 메시와 함께 입체 영상 콘텐트의 스트리밍을 지원하기 위해 사용될 수 있는 카메라 장비(102) 및/또는 다른 카메라 장비들의 각각의 카메라에 대해 수행될 것이다. 예를 들면, 경기장에서 다수의 카메라 장비들은 상이한 위치들에 위치 지정될 수 있다. 재생 디바이스에 이미지들을 공급하기 위해 사용된 카메라 장비는 주어진 시간에, 예를 들면, 주요 동작의, 예를 들면, 카메라 위치가 최상의 뷰를 제공하는 것에 관한 에디터들의 결정에 기초하여, 서버측상에 스위칭될 수 있거나 또는 이벤트에서 현재 카메라 장비 뷰로부터 상이한 카메라 장비의 관점으로 동작의 뷰잉으로 스위칭하기 위한 요청을 시그널링하는 재생 디바이스의 사용자에 의해 스위칭될 수 있다. 콘텐트 서버가 재생 디바이스로 콘텐트를 공급하기 위해 사용되는 카메라 장비 및/또는 카메라 쌍을 스위칭할 때의 어느 경우, 콘텐트를 공급하는 카메라 쌍에 대응하는 보정 정보의 세트를 사용하는 것으로부터 스위치가 수행되는 새로운 카메라 위치로부터 콘텐트를 공급할 새로운 카메라 쌍에 대응하는 메시 보정 정보를 사용하는 것으로 스위칭해야한다는 것을 재생 디바이스로 시그널링할 수 있고 종종 그렇게 시그널링한다.
보정 메시가 UV 맵의 모든 노드들에 대한 정보를 포함할 수 있지만, 몇몇 경우들에서, 렌즈 왜곡들은 UV 맵의 하나 이상의 노드들에 관하여 보정들을 요구하지 않을 수 있다. 이러한 경우, 재생 디바이스로 전송된 보정 메시 정보의 세트는 보정 메시 정보가 대응하는 카메라에 의해 캡처된 이미지들에 3D 모델의 부분에 대응하는 UV 맵과 동일한 위치에서 왜곡 보정 메시에서 발생하는 노드들에 대한 정보를 생략할 수 있다.
단계(906)에서, 교정 서브루틴(1000)에 대한 호출 후, 보정 메시, 예를 들면, 프로세스에 의해 생성된, 노드 위치들 및 오프셋 값들의 형태의 보정 메시 정보의 세트는 메모리에 저장되고, 이미지 콘텐트가 특정한 보정 메시 정보가 대응하는 카메라에 의해 캡처되는 것과 함께 또는 캡처되기 전에 스트리밍 디바이스(114)에 이용 가능하게 되어 재생 디바이스에 공급된다.
동작은 단계(906)로부터 선택 단계인 단계(906)로 진행한다. 단계(908)에서, 3D 환경 맵은 카메라 장비의 위치로부터 환경의 거리 측정들을 취함으로써 생성된다. 이러한 거리 측정들은, 예를 들면, LIDAR 및/또는 다른 거리 측정 기술들을 사용하여 수행될 수 있다.
환경 측정치들은 이벤트에 선행하고 미래 사용 및/또는 분배를 위해 메모리에 저장될 수 있다. 예를 들면, 경기장은 한번 측정될 수 있고, 이후 측정들은 동일한 장소, 즉, 경기장에 대해 다수의 상이한 이벤트들에서 캡처된 콘텐트를 스트리밍하거나 공급할 때 사용된다.
이러한 측정치들의 부재시, 환경은 디폴트 크기의 구인 것으로 재생 디바이스에 의해 가정될 수 있고, 몇몇 실시예들에서, 그렇게 가정된다. 환경 측정들은 카메라 장비로부터의 거리에 대한 정보를 제공하고 따라서 카메라는 시뮬레이션하기 위해 사용된 그리드 메시의 지점들에 대응하는 환경에서 다양한 지점들에 대한 장비(102)에 장착된다. 거리 측정들에 기초하여, 시뮬레이션된 메시 환경에서 그리드 지점들은 뷰어의 위치의 역할을 하는 중심점에서 더 멀리 또는 더 가깝게 이동될 수 있다. 따라서, 디폴트 형상으로서 삼각형들 및 구를 사용하여 모델링되는 환경을 반영하기 위해 사용된 메시 그리드는 스트레치되거나 또는 그와 달리 시뮬레이션된 환경의 실제 측정된 형상을 반영하기 위해 변경된다.
단계(908)가 수행될 때 수행되는 단계(910)에서, 단계(908)에서 측정된 환경을 나타내는 정보가 저장된다. 저장된 환경 측정 정보는 카메라 장비(102)로부터 벽들 또는 재생 디바이스로 스트리밍되거나 그와 달리 전달될 이미지들을 캡처하기 위해 사용된 카메라 장비(102)를 둘러싸는 환경 형상을 시뮬레이션하기 위해 사용된 메시의 지점들에 대한 거리들을 조정하기 위해 사용될 수 있는 다른 주변 물체들까지의 거리들을 포함한다.
교정된 카메라의 장비(102) 및 수집된 환경 정보와 함께, 그것이 사용되는 경우, 동작은 이미지 캡처 및 콘텐트 스트리밍 서브루틴, 예를 들면, 단계(912)로 가는 것을 통해 도 11에 도시된 루틴(1100)으로 진행한다. 이미지 캡처는 몇몇 실시예들에서 이벤트 동안 지원되는 실시간 스트리밍 및 이벤트의 완료 후 지원되는 비실시간 콘텐트 분배 및 스트리밍에 의해 캡처되는 이벤트의 지속 기간 동안 진행할 것이다.
도 9에 도시된 플로차트에 의해 호출될 수 있는 이미지 캡처 및 콘텐트 스트리밍 서브루틴을 도시하는 도 11이 지금 상세히 논의될 것이다. 도 11에 도시된 방법(1100)은 루틴이 호출될 때, 예를 들면, 이미지들, 예를 들면, 스포츠 경기 또는 음악 연주와 같은 이벤트에 대응하는 이미지들을 캡처할 때 카메라 교정 후, 단계(1102)에서 시작한다.
시작 단계(1102)로부터 동작은 복수의 경로들을 따라 진행하고, 경로들은 단계들(1114, 1104, 1106, 1108, 1110, 1112)를 갖고, 이는 동시에, 선택적으로, 비동기적으로 수행될 수 있다.
이미지 캡처 프로세서의 이해를 용이하게 하기 위해 도 13에 도시된 예시적인 카메라 장비에 대한 참조가 여기서 수행될 것이다. 카메라 장비(1300)는 도 1 시스템의 장비(102)로서 사용될 수 있고 세 개의 섹터들 중 상이한 것에 각각 대응하는 복수의 입체 영상 카메라 쌍들을 포함한다. 제 1 입체 영상 카메라 쌍(1301)은 제 1 카메라 쌍의 위치에 위치된 사람의 왼쪽 및 오른쪽 눈에 의해 보여지는 것들에 대응하는 이미지들을 캡처하도록 의도되는 왼쪽 눈 카메라(1302)(예를 들면, 제 1 카메라) 및 오른쪽 카메라(1304)(예를 들면, 제 2 카메라)를 포함한다. 제 2 입체 영상 카메라 쌍(1305)은 제 2 섹터에 대응하고, 왼쪽 및 오른쪽 카메라들(1306, 1308)을 포함하고, 제 3 입체 영상 카메라 쌍(1309)은 제 3 섹터에 대응하고, 왼쪽 및 오른쪽 카메라들(1310, 1312)을 포함한다. 각각의 카메라는 지지 구조(1318)의 고정된 위치에 장착된다. 위쪽을 향하는 카메라(1314)가 또한 포함된다. 도 13에 보이지 않는 아래쪽을 향하는 카메라는 카메라(1314) 아래에 포함될 수 있다. 입체 영상 카메라 쌍들은 몇몇 경우들에서 하향 및 상향 이미지들의 쌍들을 캡처하기 위해 사용되지만, 다른 실시예들에서 단일 상향 카메라 및 단일 하향 카메라가 사용된다. 또 다른 실시예들에서, 하향 이미지는 장비 배치 전에 캡처되고 이벤트의 지속 기간 동안 정지 지상 이미지로서 사용된다. 이러한 방식은 지상 뷰가 이벤트 동안 상당히 변하지 않는 경향을 고려하면 많은 애플리케이션들에 대해 적절한 경향이 있다.
카메라의 장비(1300)의 출력은 지금 더 논의될 도 11의 방법에 의해 캡처 및 처리된다. 도 11에 도시된 이미지 캡처 단계들은 보통 스트리밍 요청들에 응답하여 이미지들의 인코딩이 인코더(112)에 의해 수행되고 콘텐트의 스트리밍이 스트리밍 서버(114)에 의해 수행되는 동안 이미지를 캡처하기 위해 카메라 장비(102)의 카메라를 동작시킴으로써 수행된다.
하향 이미지 캡처 및 처리에 관한 도 11의 제 1 경로에서, 단계(1114)에서 이미지는 지상, 예를 들면, 아래쪽 장비(102)에 캡처된다. 이는 장비가 아래를 향하는 카메라를 포함하는 경우 장비 배치 전 또는 이벤트 동안 발생할 수 있다. 단계(1114)로부터 동작은 단계(1144)로 진행하고 캡처된 이미지는 단계(1145)에서 인코딩 전에 크롭된다. 인코딩된 지상 이미지는 이후 단계(1146)에서 하나 이상의 인코딩된 이미지들을 요청하는 디바이스에 공급함으로써 응답될 수 있는 콘텐트에 대한 요청에 의존하여 저장된다.
단계(1104)와 함께 시작하는, 도 11에 도시된 제 2 처리 경로는 콘텐트에 대한 요청들에 대한 처리 및 응답에 관한 것이다. 단계(1104)에서 콘텐트에 대한 요청을 위한 모니터는 예를 들면, 콘텐트 서버(114)에 의해 발생한다. 단계(1128)에서, 콘텐트에 대한 요청은 재생 디바이스, 예를 들면, 고객 구내(106)에 위치된 디바이스(122)로부터 수신된다.
콘텐트 요청에 응답하여, 재생 디바이스는 단계(1130)에서 스트리밍된 이미지들에서 정정한 왜곡들에 대한 정보 및/또는 다른 렌더링 관련 정보가 제공된다. 단계(1130)에서 전송된 왜곡 보정 정보는 하나 이상의 왜곡 보정 메시들, 예를 들면, 콘텐트 스트림의 이미지들을 재생 디바이스로 공급할 수 있는 각각의 카메라에 대한 것일 수 있다. 왜곡 보정 메시 정보는 이미지들을 공급하는 각각의 카메라의 장비(102)에 대해 몇몇 실시예들에서 제공되는 고객 왜곡 메시를 재생 디바이스로 전송된다. 따라서, 카메라의 3개의 섹터 쌍들, 카메라들의 상부 쌍 및 카메라들의 아래쪽을 향하는 쌍을 갖는 장비의 경우에, 총 10 개의 왜곡 보정 메시들은, 예를 들면, 각각의 카메라에 대해 하나의 메시를 갖고, 장비의 카메라들에 의해 캡처된 이미지들에 대한 사용을 위해 재생 디바이스로 전달된다. 왜곡 보정 메시 정보는, 상기에 논의된 바와 같이, 식별되는 노드 위치들에 의해 카메라에 의해 캡처된 영역에 대응하는 UV 맵에 대응하는 정보, 및 왜곡 보정 정보의 세트에 기초한 노드마다 제공되는 오프셋 정보를 포함할 수 있다. 대응하는 UV 맵의 노드 위치에 매칭하는 왜곡 보정 메시의 노드들에 대하여, 노드들이 UV 맵에서와 동일한 위치에 왜곡 보정 메시에서 발생하기 때문에 정보는 지정될 오프셋이 없을 때 생략될 수 있다.
도 18은 어안 렌즈를 갖는 대응하는 카메라에 의해 도입된 왜곡들에 대해 보상하는 사용될 수 있는 일 예시적인 보정 메시(1800)를 도시한다. 왜곡 보정 메시들이 카메라 종속적이고 일반적으로 이벤트의 지속 기간 동안 변경하지 않기 때문에, 그들은 반복적으로 전송될 필요가 없고 버퍼링될 수 있고 및/또는 그와 달리 이벤트와 연관된 콘텐트 스트리밍의 시작 전 또는 시작시 재생 디바이스에 의해 저장될 수 있다. 그러나, 이미지들을 공급하기 위해 사용된 카메라 장비가 이벤트 동안 변할 수 있는 경우들에, 예를 들면, 상이한 카메라 위치들이 주요 동작의 양호한 뷰를 제공하기 때문에, 다수의 상이한 카메라 장비들의 카메라들에 대한 왜곡 보정 정보는 재생 디바이스로 전송될 수 있고, 상기 재생 디바이스는 이미지들이 디코딩되고 주어진 시간에 3D 모델로 맵핑되는 카메라에 대응하는 왜곡 보정 정보를 사용하는 것이 주의되어야 한다. 재생 디바이스는 어느 왜곡 보정 맵을 재생 디바이스에 의해 수신된 특정한 송신된 이미지들에 대해 주어진 시간에 사용할지가 시그널링될 수 있고 및/또는 재생 디바이스는 어느 왜곡 보정 정보의 세트를 사용자 뷰잉 방향에 기초하여 사용할지 및 어느 카메라 장비가 사용자 선택된 카메라 위치로부터 알려질 수 있는 주어진 시간에 콘텐트를 제공하고 있는지를 결정할 수 있다. 예를 들면, 사용자는 중심 필드에서 카메라 장비가 렌더링을 위해 사용될 이미지들을 공급할 경우 중심 필드 위치로부터 이벤트를 뷰잉하기 위해 선택될 수 있다.
단계(1130)로부터 동작은 단계(1132)로 진행하고, 이는 환경 맵이 생성되고 및/또는 사전 결정된 디폴트 설정과 상이할 수 있는 다른 환경 정보가 재생 동안 측정된 3D 환경을 시뮬레이션하기 위해 사용될 재생 디바이스에 공급되는 경우들에 수행된다.
따라서, 단계들(1128, 1130)을 통해, 콘텐트를 요청하는 재생 디바이스는 마스크 정보 및/또는 카메라 피드들 및/또는 이미지 스트림들이 3D 환경 중 어느 부분들이 시뮬레이션될지에 대응하는지를 나타내는 정보와 같은 3D 환경을 시뮬레이션하기 위해 필요한 정보 및/또는 3D 환경을 렌더링 및 시뮬레이션하기 위해 필요할 수 있는 다른 정보를 제공받는다.
보정 메시들 외에 단계(1128)에 전달될 수 있는 정보를 조합하는 마스크 및/또는 이미지는 도 14에 도시되는 이미지 부분들이 되게 하는 정보를 포함한다. 마스크 정보는, 몇몇 실시예들에서, 마스크가 적용되는 이미지의 일 부분이 3D 모델에 디스플레이되는 이미지에 기여할지 아닐지에 대해 제어하기 위해 각각의 이미지 세그먼트에 제공되는 알파값에 의한, 알파값들의 일 세트의 형태일 수 있다.
도 13 카메라 장비가 사용될 때, 섹터들의 각각은 카메라 장비 위치에 관한 알려진 120도 뷰잉 영역에 대응하고, 이미지들에 기초하여 함께 접합되는 상이한 섹터 쌍들로부터 캡처된 이미지들은 시뮬레이션된 3D 환경에 대한 맵핑을 안다. 섹터 카메라에 의해 캡처된 각각의 이미지의 120도 부분이 일반적으로 사용되지만, 카메라들은 대략 180도 뷰잉 영역에 대응하는 더 넓은 이미지를 캡처한다. 따라서, 캡처된 이미지들은 3D 환경 시뮬레이션의 부분으로서 재생 디바이스에서 마스킹의 대상이 될 수 있다. 도 14는 3D 구형 환경이 상이한 카메라 쌍들의 장비(102)에 대응하는 환경 메시 부분들을 사용하여 시뮬레이션될 수 있는 방법을 도시하는 복합도(1400)이다. 하나의 메시 부분은 장비(102)의 섹터들의 각각에 대해 도시되고, 하늘 메시는 상부 카메라 뷰에 관하여 사용되고 지상 메시는 아래를 향한 카메라에 의해 캡처된 지상 이미지에 대해 사용된다는 것을 주의하라. 상부 및 하부 이미지들에 대한 마스크들은 본래 원형이지만, 섹터 이미지들에 적용된 마스크들은 장면 영역의 상부 및 하부 부분들이 상부 및 하부 카메라들 각각에 의해 공급될 것을 반영하기 위해 잘라내진다.
조합될 때 상이한 카메라들에 대응하는 전체 메시들은 도 15에 도시되는 구형 메시를 초래한다. 메시가 단일 눈 이미지에 대해 도시되지만, 이는 입체 영상 이미지 쌍이 캡처되는 경우 왼쪽 및 오른쪽 눈 이미지들 모두에 대해 사용된다는 것을 주의하라.
도 14에 도시된 형태의 메시 및 마스킹 정보는 단계(1130)에서 재생 디바이스로 전달될 수 있고, 몇몇 실시예들에서 그로 전달된다. 전달된 정보는 장비 구성에 의존하여 변할 것이다. 예를 들면, 다수의 섹터들이 사용되는 경우, 섹터들의 각각에 대응하는 마스크들은 120도보다 작은 뷰잉각에 대응하고, 3개보다 많은 환경 그리드들은 구의 직경을 포함하도록 요구된다.
단계(1132)에서 재생 디바이스로 선택적으로 전송되는 환경 맵 정보가 도시된다. 환경 맵 정보는 환경이 이러한 정보가 전달되지 않는 경우 디폴트 크기 구인 것으로 가정될 수 있다는 점에서 선택적인 것이 이해되어야 한다. 다수의 상이한 디폴트 크기 구들이 지원되는 경우들에서, 어떤 크기 구가 사용되는지에 관한 표시가 단계(1132)에서 재생 디바이스로 전달될 수 있고 때때로 그렇게 전달된다.
동작은 단계(1132)로부터 스트리밍 단계(1146)로 진행한다.
이미지 캡처 동작들은 특히 카메라 장비(102)에 의해 캡처될 수 있는 3 개의 섹터들의 각각에 관해 이벤트 동안 정기적으로 수행될 수 있다. 따라서, 카메라 장비의 제 1, 제 2, 및 제 3 섹터들에 대응하는 단계들(1106, 1108, 1110)에 의해 시작하는 처리 경로들은 그들의 콘텐트에 의한 것과 유사하다.
단계(1106)에서, 카메라들의 제 1 섹터 쌍은 이미지들, 예를 들면, 단계(1116)에서 왼쪽 눈 이미지 및 단계(1118)에서 오른쪽 눈 이미지를 캡처하도록 동작된다. 도 16은 단계(1106)에서 캡처될 수 있는 일 예시적인 이미지 쌍을 도시한다. 캡처된 이미지들은 이후 단계(1146)에서 스트리밍을 위해 이용 가능하게 되기 전에 단계(1134)에서 크롭되고 단계(1136)에서 인코딩된다. 도 17은 단계(1134)에서 발생할 수 있는 도 16 이미지들을 크롭핑의 일 예시적인 결과를 도시한다.
이미지 캡처, 크롭핑 및 인코딩은 단계(1136)로부터 다시 단계(1106)로의 화살표로 표시되는 원하는 프레임 레이트에서 정기적으로 반복된다.
단계(1108)에서, 카메라들의 제 2 섹터 쌍은 이미지들, 예를 들면, 단계(1120)에서 왼쪽 눈 이미지 및 단계(1122)에서 오른쪽 눈 이미지를 캡처하도록 동작된다. 캡처된 이미지들은 이후, 단계(1146)에서 스트리밍에 이용 가능하게 되기 전에 단계(1138)에서 크롭핑되고 단계(1139)에서 인코딩된다. 이미지 캡처는 단계(1139)로부터 다시 단계(1108)로의 화살표로 표시되는 바람직한 프레임 레이트에서 정기적으로 반복된다.
단계(1110)에서, 카메라들의 제 3 섹터 쌍은 이미지들, 예를 들면, 단계(1124)에서 왼쪽 눈 이미지 및 단계(1126)에서 오른쪽 눈 이미지를 캡처하도록 동작된다. 캡처된 이미지들은 이후 단계(1146)에서 스트리밍에 이용 가능하게 되기 전에 단계(1140)에서 크롭되고 단계(1141)에서 인코딩된다. 이미지 캡처는 단계(1141)로부터 다시 단계(1110)로의 화살표로 표시되는 바람직한 프레임 레이트에서 정기적으로 반복된다.
단계(1112)에서, 하늘 이미지는 카메라 장비(102)의 상부 카메라에 의해 캡처된다. 이미지는 이후, 단계(1146)에서 스트리밍에 이용가능하게 되기 전에 단계(1142)에서 크롭되고, 단계(1143)에서 인코딩된다. 하늘 및 지상 이미지들의 캡처는 섹터 이미지 캡처와 함께 원하는 경우 정기적으로 수행될 수 있고, 예를 들면, 왼쪽 및 오른쪽 이미지들에 캡처되는, 입체 영상으로 또한 캡처될 수 있다. 도 11에서 하늘 및 지상 뷰의 예시적인 입체 영상 이미지 캡처는 이들 이미지들이 카메라 장비의 전방 120 섹터에 대응할 수 있는 전방 정면 뷰보다 많은 경우들에서 덜 중요한 경향이 있기 때문에 데이터 감소 목적들을 위해 회피된다. 그러나 몇몇 실시예들에서 입체 영상 하늘 및 지상 뷰들이 실시간으로 캡처 및 갱신된다.
다수의 카메라 뷰들이 상이한 섹터들에 대응하여 캡처되지만, 이미지 캡처 레이트가 모든 섹터들에 대해 동일할 필요는 없다는 것을 주의하라. 예를 들면,예컨대 주요 재생 필드에 대응하는 정면을 향하는 섹터는 카메라들이 다른 섹터들 및/또는 상부(하늘) 및 하부(지상) 뷰들에 대응하는 빠른 프레임 레이트에서 이미지들을 캡처할 수 있다.
단계(1146)에서, 요청하는 콘텐트 재생 디바이스는 재생 디바이스가 이후 3D 환경을 시뮬레이션하기 위해 처리 및 사용될 수 있는 하나 이상의 캡처된 이미지들이 공급된다.
몇몇 실시예들에서, 콘텐트가 콘텐트에 대한 요청에 응답하여 공급될 경우, 단계(1146)는 예를 들면, 재생 디바이스가 콘텐트 스트림에 대한 요청을 전송하는 것에 응답하여 요청하는 디바이스마다에 기초하여 수행된다. 결과로서, 상이한 디바이스들은 이벤트에서 뷰어의 머리 위치 또는 선택된 뷰잉 위치에 의존하여 상이한 카메라 섹터들 또는 심지어 상이한 카메라 장비들에 대응하여 상이한 콘텐트가 공급될 수 있다. 이러한 뷰잉 위치 정보는 단계(1148)에서 모니터링되고, 머리 위치의 변경, 또는 사용자 선택된 뷰잉 위치, 예를 들면, 중간 필드 또는 종단 구역 뷰잉 위치의 변경이 존재할 때, 주기적으로 재생 디바이스로부터 수신될 수 있다. 다른 실시예들에서, 예를 들면, 사용자의 현재 머리 위치 때문에 또는 현재 사용자 선택된 카메라 위치 때문에 단독으로 또는 머리 위치 정보와 조합하여, 그들이 주어진 시점에 액세스하기를 원하는 콘텐트를 포함하는 콘텐트 스트림에 부속된 디바이스들에 의해 콘텐트가 브로드캐스트 또는 멀티캐스트된다. 따라서, 머리 위치 및/또는 사용자 선택된 카메라 위치에 관한 정보가 콘텐트 서버에 전달되는 경우에, 콘텐트 서버는 개별적인 사용자의 재생 디바이스로부터의 정보에 기초하여 이미지 콘텐트를 스트리밍할 수 있다. 브로드캐스트 경우에, 서버는 상이한 카메라 쌍들 및/또는 카메라 장비들에 대응하는 콘텐트를 스트리밍할 수 있고, 재생 디바이스는 임의의 주어진 시간에 수신 및 처리할 콘텐트 스트림을 브로드캐스트하거나 멀티캐스트하는 것을 선택할 수 있다. 메시 보정 정보는 콘텐트 스트림에서 또는 재생 디바이스에 이용 가능한 하나 이상의 콘텐트 스트림들에 수신될 수 있는 이미지들의 렌더링에 관한 정보를 수신하기 위해 재생 디바이스들에 의해 사용될 수 있는 제어 또는 다른 채널을 통해 대역외로 전송된 이미지들을 공급하는 카메라들의 콘텐트 스트림에 포함될 수 있다.
단계(1150)에서, 이미지 스트리밍은 요청하는 디바이스가 뷰어 머리 위치 정보의 함수로서 서버에 대한 뷰잉 위치를 제공하는 실시예들에서 제어된다. 예를 들면, 사용자가 환경의 뷰잉 섹터 1로부터 섹터 2로 변경할 경우, 단계(1150)에서 수행된 변화의 결과로서 단계(1146)는 사용자에 대한 섹터 1 대신 섹터 2에 대응하는 콘텐트를 스트리밍하도록 변경될 수 있다. 모든 섹터들에 대응하는 이미지들이 사용자들에게 스트리밍될 수 있지만, 다수의 스트림을 한정하는 대역폭 이용 관점으로부터 지원하기 위해 요구되는 것들까지 표시된 뷰잉각은 대역폭 관리 및 이용 관점으로부터 바람직할 수 있다는 것을 주의하라. 다수의 콘텐트 스트림들이 브로드캐스트 또는 멀티캐스트되고 재생 디바이스가 예를 들면, 어느 스트림이 예를 들면, 수신하기 위해 부착할지를 선택하는 경우, 단계(1150)는 수행될 필요가 없다.
이해되어야 하는 바와 같이, 예를 들면, 실황 이벤트와 연관된 동작의 주요 지점이 하나의 카메라 장비에 대응하는 시야로부터 다른 카메라 장비의 시야로 이동하기 때문에, 특정한 시점에 콘텐트를 공급하기 위해 사용된 카메라 장비가 스위칭될 수 있다. 예를 들면, 축구 동작이 경기장의 하나의 단부로부터 다른 단부로 이동하기 때문에, 방송업자는 최상의 뷰가 게임 전체를 브로드캐스트하도록 상이한 카메라 장비들로부터 콘텐트를 공급할 것을 선택할 수 있다. 이러한 경우들에서, 방송업자들은 어느 카메라 장비가 전송되는 콘텐트 스트림 내 콘텐트를 제공하는지에 관해 스위치를 제어할 수 있다. 콘텐트 스트림 내 콘텐트를 공급하기 위해 사용된 카메라들내 스위치들이 수행될 때, 그들이 주어진 시간에 이미지들을 공급하는 카메라에 대응하는 보정 메시 정보를 사용하도록 콘텐트 스트림을 수신하는 재생 디바이스들에 변화를 시그널링하기에 유용하다. 단계(1151)에서, 재생 디바이스는 사용된 보정 메시들이 스트리밍되는 이미지들을 제공하는 소스 카메라들에 매칭하도록 어느 보정 메시들이 사용되는지를 스위칭해야 하는지를 표시하는 재생 디바이스에 신호가 전송된다. 예를 들면, 서버가 제 1 카메라 쌍에 대응하는 이미지들을 스트리밍하는 것으로부터 제 2 카메라 쌍에 대응하는 재생 디바이스에 이미지들을 스트리밍하는 것으로 스위칭될 때, 재생 디바이스는 제 1 카메라 쌍에 대응하는 보정 메시들을 사용하는 것으로부터 제 2 카메라 쌍에 대응하는 보정 메시들을 사용하는 것으로 스위칭하도록 시그널링된다.
이러한 정보가 서버에 제공되는 실시예들에서, 재생 디바이스로부터 피드백 정보의 수신, 및 이미지들의 스트리밍은 이벤트의 지속 기간 동안, 또는 유니캐스트 콘텐트 전달의 경우에, 재생 디바이스와의 세션의 종료까지 계속할 것이다.
콘텐트를 전달하고 어느 보정 메시들을 사용할지에 관한 정보를 제공하는 진행 프로세스는, 이미지 캡처, 인코딩, 및 스트리밍 단계들이 정기적으로 반복되기 때문에 이미지들이 캡처 및 스트리밍될 때 반복적으로 수행되는 단계들(1146 내지 1151)에 의해 콘텐트 스트리밍이 정기적으로 계속할 수 있다는 것을 나타내기 위해 단계(1151)로부터 단계(1146)로 리턴하는 화살표로 나타내진다.
시스템(104)에 의해 몇몇 실시예들에서 수행되는 이미지 캡처, 인코딩, 및 전송 프로세스를 설명하면, 일 예시적인 재생 디바이스, 예를 들면, 도 8에 도시된 디바이스(122) 또는 디바이스(800)의 동작은 지금 도 12를 참조하여 기술될 것이다.
도 12는 일 예시적인 실시예에 따라 도 1의 시스템에서 사용될 수 있는 재생 디바이스 또는 시스템을 동작시키는 방법(1200)을 도시한다. 방법(1200)은 시작 단계(1202)에서 시작한다. 단계(1204)에서, 재생 디바이스는 콘텐트에 대한 요청을, 예를 들면, 도 1의 스트리밍 서버에 전송한다. 재생 디바이스는 이후 단계(1206)에서 도 11의 단계들(1128, 1130, 1132)에서 전송될 수 있고 때때로 전송되는 정보를 포함하는 다양한 정보를 수신한다. 예를 들면, 단계(1126)에서, 재생 디바이스는 이미지 부분이 수신될 수 있는 각각의 카메라의 각각에 대한 보정 메시를 지정하는 정보를 수신하고, 게다가 카메라 출력에 관해 사용될 이미지 마스크 정보는 시뮬레이션될 환경에 대한 정보와 같은 다른 정보, 예를 들면, 시뮬레이션된 3D 환경을 생성하기 위해 사용되어야 하거나 사용될 수 있는 상이한 카메라 출력들에 대응하는 환경 메시 부분들에 관한 환경 맵 및/또는 정보와 함게 수신될 수 있다. 따라서, 단계(1206)에서, 재생 디바이스는 도 18에 도시된 예시적인 보정 메시와 같은 각각의 카메라에 대한 보정 메시들과 함께 도 14에 도시된 메시 및 마스크 정보를 수신할 수 있다.
단계(1206)에서 수신된 정보는 필요할 때마다 사용을 위해 메모리에 저장될 수 있다.
동작은 단계(1206)로부터 단계(1208)로 진행하고, 뷰어 머리 위치는, 예를 들면, 재생 디바이스에 부착된 머리에 장착된 디스플레이로부터 수신되거나 또는 머리 위치는 가시적으로 재생 디바이스 또는 그와 달리 머리 위치를 추적하여 결정된다. 단계(1209)에서, 뷰어 머리 위치는 뷰어의 머리 위치가 주어지면 스트리밍될 적절한 카메라 이미지들을 선택하기 위해 사용될 수 있는 정보를 제공하기 위해 콘텐트 서버에 전송된다.
단계(1210)에서, 뷰어 선택된 머리 위치는, 예를 들면, 사용자 제어 입력을 통해 재생 디바이스에 의해 수신된다. 이러한 입력은 사용자가 복수의 상이한 이벤트 뷰어 위치들, 예를 들면, 중간 필드 뷰잉 위치와 예를 들면, 카메라 장비들이 위치된 하나 이상의 종료 필드 또는 목표 뷰잉 위치들 사이에 선택하게 되는 실시예들에서 수신된다.
단계(1211)에서, 뷰어 선택 위치는 서버로 전달된다. 단계들(1208, 1209)은 주기적으로 또는 보고할 뷰어 머리 위치의 변화가 존재할 때마다 반복된다. 단계들(1210, 1211)은 주기적으로 수행될 수 있지만, 보통 사용자가 그 또는 그녀가 예를 들면, 스포츠 경기 또는 콘서트에서 상이한 좌석에 대응하는 상이한 위치로 스위칭하기를 원한다고 결정할 때 사용자 제어하에서 수행된다.
단계들(1209, 1211)이 대역폭을 보존하고 모든 카메라 출력들을 재생 디바이스로 전송해야 하는 것을 피하기 위해 재생 디바이스에 공급할 카메라 출력 스트림들의 서브세트를 선택하도록 서버에 의해 사용될 수 있는 정보를 서버에 제공한다는 것이 이해되어야 한다.
정기적으로 수행되는 단계(1213)에서, 장비(102)의 하나 이상의 카메라들에 대응하는 인코딩된 이미지들은 예시적으로 디코딩된 이미지들, 예를 들면, 도 17에 도시된 것들과 같은 섹터의 왼쪽 및 오른쪽 눈 이미지들을 생성하기 위해 수신 및 디코딩된다.
동작은 단계(1214)로부터 단계(1215)로 진행하고, 디코딩된 이미지에 대응하는 마스크가 디코딩된 이미지에 적용된다. 적용될 수 있는 마스크들은 도 14에 도시되고, 마스크는 마스킹이 될 이미지가 대응하는 3D 환경의 부분에 의존하여 적용된다. 단계(1215)에서 마스킹 후, 디코딩된 이미지에 대응하는 보정 메시는 보정된 이미지를 생성하기 위해 적용된다. 도 19는 이미지에 대해 도 18에 도시된 보정 메시의 일 예시적인 적용을 처리된 이미지가 캡처된 카메라에 의해 도입된 왜곡들에 대해 반전 또는 보상하기 위해 사용되는 변환 동작의 부분으로서 도시한다.
도 20은 도 19에 도시된 이미지에 보정 메시를 적용한 결과를 도시한다. 이해되어야 하는 바와 같이, 보정 메시들은 입체 영상 이미지 쌍의 왼쪽 및 오른쪽 눈 이미지들 모두에 적용될 것이다. 따라서, 도 20에서, 한 쌍의 두 이미지들은, 예를 들면, 이미지들을 캡처하기 위해 사용된 왼쪽 및 오른쪽 눈 카메라들 각각에 대응하는 보정 메시들을 사용함으로써 보정되는 것이 도시된다.
디코딩된 이미지들의 보정 후, 몇몇 실시예들에서, 보정된 이미지의 관련 부분은 360도 시뮬레이션된 환경의 대응하는 뷰잉 영역 부분으로 맵핑된다. 맵핑은 3D 뷰잉 경험을 제공하기 위해 디스플레이될 수 있는 개별적인 오른쪽 및 왼쪽 눈 이미지들을 생성하기 위해 왼쪽 눈 이미지 및 오른쪽 눈 이미지에 대해 수행된다. 맵핑은 시뮬레이션된 환경 그리드에 대해 보정된 이미지들의 적용 전에 이미지들이 캡처된 환경을 더 정확하게 반영하기 위해 디폴트 환경 그리드를 왜곡하기 위해 환경 맵 정보를 선택적으로 사용할 수 있다. 단계들(1214, 1215, 1216)이 왼쪽 및 오른쪽 눈 이미지들에 대해 수행되는 개별적인 단계들로서 기술되지만, 그들은 렌더링 엔진이 마스크 정보, 특정 눈 이미지에 대응하는 메시 보정 정보, 및 사용되는 3D 메시 모듈로 이미지를 맵핑하기 위해 사용되는 보정되지 않은 UV 맵에서 노드들의 위치를 표시하는 UV 맵 정보를 사용하는 경우 단일 렌더링 동작으로 조합될 수 있다는 것이 이해되어야 한다. 이러한 방식으로 이용 가능한 다수의 입력들을 사용함으로써, 렌더링 엔진은 디코딩된 왼쪽 및 오른쪽 눈 이미지들의 개별적인 보정된 버전을 생성해야 하지 않고 3D 메시 모듈의 대응하는 부분에 직접 디코딩된 왼쪽 및 오른쪽 눈 이미지 데이터를 맵핑할 수 있다. 이는, 원하는 경우, 이미지들의 부분들에 대하여 순차적으로 처리되고 렌더링되게 한다. 이러한 방식은, 몇몇 실시예들에서, 왼쪽 눈 이미지의 어느 부분이 3D 모델로 맵핑되는지를 결정하기 위해 마스크를 사용하고, 왼쪽 눈 이미지를 공급한 카메라에 대응하는 메시 보정 정보 및 디코딩된 왼쪽 눈 이미지가 출력 왼쪽 눈 이미지를 생성하기 위해 환경의 3D 메시 모델에 맵핑되는 방법을 결정하기 위한 UV 맵의 조합을 사용하여 디코딩된 왼쪽 눈 이미지로부터 디스플레이를 위한 왼쪽 눈 이미지를 생성하는 렌더링 엔진에 의해 사용된다. 동일한 렌더링 방식은 오른쪽 눈 이미지의 어느 부분이 3D 모델에 맵핑되는지를 결정하기 위해 마스크를 사용하고 디스플레이를 위해 오른쪽 눈 출력 이미지를 생성하기 위해 디코딩된 오른쪽 눈 이미지가 환경의 3D 메시 모델로 맵핑되는 방법을 결정하기 위해 오른쪽 눈 이미지에 대한 카메라 종속 메시 보정 정보 및 UV 맵의 조합을 사용하여 디코딩된 오른쪽 눈 이미지로부터 디스플레이를 위한 오른쪽 눈 이미지를 렌더링하기 위해 이러한 실시예들에서 사용된다. 메시 보정 정보가 카메라 종속적이기 때문에, 상이한 메시 보정 정보는 왼쪽 및 오른쪽 눈 이미지들을 렌더링하기 위해 사용된다. 그러나, 렌더링에서 사용된 UV 맵 및 3D 모델이 이미지들을 캡처한 카메라가 렌더링되는지에 의존하지 않기 때문에, 동일한 UV 맵 및 3D 모델은 왼쪽 및 오른쪽 눈 이미지들 모두를 렌더링하기 위해 사용될 수 있고, 몇몇 경우들에서, 그를 위해 사용된다.
단계(1120)에서, 개별적인 왼쪽 및 오른쪽 눈 이미지들이 몇몇 실시예들에서 3D 뷰잉 경험을 갖는 이미지들의 뷰를 초래하는 깊이 정보를 제공하는 왼쪽 및 오른쪽 눈 이미지들에서 차이들을 갖고 출력된다는 것이 이해되어야 한다. 서버가 콘텐트를 스트리밍하기보다 오히려 재생 디바이스에서 렌즈 종속 왜곡들에 대한 보정을 수행함으로써, 이미지들이 이미지들을 캡처하기 위해 사용된 개별적인 렌즈들에 의해 도입된 왜곡들을 제거하기 위한 시도시 인코딩 전에 선처리되는 구현들에 비해 에지들은 더 양호하게 유지되고 인코딩 아티팩트들은 회피된다.
도 21은 3D 뷰잉 환경을 나타내는 구의 대응하는 120도 부분에 대한 제 1 섹터에 대응하는 이미지 부분의 맵핑을 도시한다.
단계(1216)에서, 360도 환경의 상이한 부분들에 대응하는 이미지들은, 예를 들면, 머리 위치에 의존하여, 뷰어에 인접한 뷰잉 영역을 제공하기 위해 요구된 범위로 조합된다. 예를 들면, 단계(1218)에서, 뷰어가 보고 있는 경우, 각각의 섹터에 대응하는 이미지의 두 개의 120도 섹터 부분들의 교차는 시뮬레이션되는 전체 3D 환경에서 각각의 이미지의 알려진 각도 및 위치에 기초하여 뷰어에 함께 보여지고 나타내질 것이다. 이미지의 보여짐 및 생성은 두 개의 개별적인 이미지들이 입체 영상 구현의 경우에 눈마다 생성되도록 왼쪽 및 오른쪽 눈 뷰들의 각각에 대해 수행될 것이다.
도 22는 다수의 디코딩, 보정, 및 크롭된 이미지들이 360도 뷰잉 환경을 생성하기 위해 함께 맵핑되고 보여질 수 있고, 때때로 그렇게 맵핑되고 보여지는 방법을 도시한다.
맵핑된 이미지들은 사용자에 의한 시청을 위해 단계(1220)에서 디스플레이 디바이스로 출력된다. 이해되어야 하는 바와 같이, 디스플레이되는 이미지들은 수신된 이미지들에 기초하여 시간에 걸쳐 변할 것이고 및/또는 머리 위치 및 사용자 선택된 뷰어 위치에서 변화들 때문에, 입체 영상 이미지들의 경우, 개별적인 왼쪽 및 오른쪽 이미지들은 사용자의 왼쪽 및 오른쪽 눈들 각각에 개별적인 디스플레이를 위해 생성된다.
도 23은 일 예시적인 실시예에 따라 이미지 콘텐트를 제공하는 일 예시적인 방법의 단계들을 도시하는 플로차트(2300)이다. 플로차트(2300)의 방법은 카메라 장치(102/1300)에 의해 캡처된 이미지 콘텐트를 수신할 수 있는 콘텐트 전달 시스템(104/700)에 의해 구현된다.
방법은, 예를 들면, 전달 시스템에 전력이 공급되고 초기화되는 것에 의해 단계(2302)에서 시작한다. 방법은 시작 단계(2302)로부터 단계(2304)로 진행한다. 단계(2304)에서, 콘텐트 전달 시스템(700)은 이미지 콘텐트를 캡처하기 위해 사용된 하나 이상의 입체 영상 카메라 쌍들, 예를 들면, 이미지 캡처 장치(102/1300)에서 사용된 카메라 쌍들에 대한 메시 보정 정보를 메모리에 저장한다. 몇몇 실시예들에서, 메시 보정 정보를 저장하는 단계(2304)는 단계들(2306, 2308, 2310, 2312, 2314, 2316) 중 하나 이상을 포함한다. 단계(2306)에서, 제 1 입체 영상 카메라 쌍의 제 1 카메라에 대한 제 1 보정 정보가 저장된다. 단계(2308)에서, 제 1 입체 영상 카메라 쌍의 제 2 카메라에 대한 제 2 보정 메시 정보. 몇몇 실시예들에서, 제 1 입체 영상 카메라 쌍은 이미지 캡처 장치(102/1300)의 부분이고, 제 1 방향에 대응한다. 단계(2310)에서, 제 2 입체 영상 카메라 쌍의 제 1 카메라에 대한 제 3 메시 보정 정보가 저장된다. 단계(2312)에서, 제 2 입체 영상 카메라 쌍의 제 2 카메라에 대한 제 4 보정 메시 정보. 단계(2314)에서, 제 3 입체 영상 카메라 쌍의 제 1 카메라에 대한 제 5 메시 보정 정보가 저장된다. 단계(2316)에서, 제 3 입체 영상 카메라 쌍의 제 2 카메라에 대한 제 5 보정 메시 정보.
동작은 단계(2304)로부터 단계(2318)로 진행한다. 단계(2318)에서, 서버(예를 들면, 시스템(700)의 스트리밍 제어기(720)로서 구현될 수 있는 스트리밍 서버(114))는, 예를 들면, 하나 이상의 콘텐트 렌더링 및 재생 디바이스들로, 이미지 콘텐트를 렌더링할 때 사용될 환경 메시 모델을 전송하도록 동작된다. 동작은 단계(2318)로부터 단계(2320)로 진행한다. 단계(2320)에서, 서버는 이미지 렌더링 동작의 부분으로서 하나 이상의 입체 영상 카메라 쌍들에 의해 캡처된 이미지들의 부분들을 환경 메시 모델의 부분들로 맵핑하기 위해 사용될 하나 이상의 UV 맵들을 재생 디바이스에 전송하도록 동작된다. 몇몇 실시예들에서, 서버는 이미지 렌더링 동작의 부분으로서 제 1 입체 영상 카메라 쌍에 의해 캡처된 이미지들의 부분들을 환경 메시 모델의 일 부분으로 맵핑하기 위해 사용될 제 1 UV 맵을 전송하도록 동작된다.
동작은 단계(2320)로부터 단계(2322)로 진행한다. 단계(2322)에서, 제 1 입체 영상 카메라 쌍의 제 1 및 제 2 카메라들에 의해 캡처된 이미지 콘텐트로부터 생성된 인코딩된 이미지들을 포함하는 입체 영상 콘텐트 스트림이 재생 디바이스로 전송된다. 동작은 단계(2322)로부터 단계(2324)로 진행한다. 단계(2324)에서, 콘텐트 전달 시스템은 제 1 보정 메시 정보 및 제 2 보정 메시 정보를 재생 디바이스에 제공하고, 제 1 보정 메시 정보는 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 2 보정 메시 정보는 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다.
동작은 접속 노드A(2326)를 통해 단계(2324)로부터 단계(2328)로 진행한다. 단계(2328)에서, 콘텐트 전달 시스템은 제 3 보정 메시 정보 및 제 4 보정 메시 정보 세트들을 재생 디바이스에 제공하고, 제 3 보정 메시 정보는 제 2 입체 영상 카메라 쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 4 보정 메시 정보는 제 2 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다. 몇몇 실시예들에서, 제 1 및 제 2 입체 영상 카메라 쌍들은 콘텐트가 스트리밍을 위해 캡처되는 영역 또는 이벤트 위치에서 전방 뷰잉 방향이지만 상이한 위치들에 대응한다. 동작은 단계(2328)로부터 단계(2330)로 진행한다. 단계(2330)에서, 콘텐트 전달 시스템은 제 5 및 제 6 보정 메시 정보를 재생 디바이스에 제공하고, 제 5 보정 메시 정보는 제 3 입체 영상 카메라 쌍의 제 1 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이고, 제 6 보정 메시 정보는 제 3 입체 영상 카메라 쌍의 제 2 카메라에 의해 캡처된 이미지 콘텐트를 렌더링할 때 사용을 위한 것이다.
동작은 단계(2330)로부터 선택적인 단계(2332)로 진행한다. 단계(2332)에서, 시스템(700)은, 제 1 입체 영상 카메라 쌍에 의해 캡처된 콘텐트가 재생 디바이스에 스트리밍될 때, 제 1 및 제 2 보정 메시 정보가 사용되어야 한다는 것을 재생 디바이스에 표시한다. 상기 표시는 재생 디바이스로 전송된 콘텐트 스트림 내에 존재할 수 있거나 시스템(700)으로부터 다른 제어 신호를 통해서일 수 있다. 몇몇 실시예들에서, 제 1 카메라 쌍의 카메라들에 의해 캡처된 이미지 콘텐트를 포함하는 콘텐트 스트림이 하나 이상의 재생 디바이스들로 전송될 디폴트 콘텐트 스트림으로서 사용된다. 그러나, 이는 변경될 수 있고, 다른 입체 영상 카메라 쌍들에 의해 캡처된 이미지 콘텐트를 전달하는 콘텐트 스트림들이 상이한 시간들에 재생 디바이스들로 제공될 수 있다. 몇몇 실시예들에서, 다수의 입체 영상 카메라 쌍들(예를 들면, 제 1, 제 2, 제 3, 입체 영상 카메라 쌍들)에 의해 캡처된 이미지 콘텐트를 전달하는 콘텐트 스트림들은, 이후 주어진 시간에 첨부할 스트림(들)을 선택할 수 있는 재생 디바이스에 제공된다. 동작은 단계(2332)로부터 단계들(2334, 2336)로 진행하고, 이는 동시에 독립적으로 수행된다. 몇몇 실시예들에서, 단계들(2334, 2336)은 두 개의 상이한 대안들이고 두 개의 단계들 중 바로 하나가 수행된다. 단계(2334)에서, 제 1 입체 영상 카메라 쌍으로부터 제 2 입체 영상 쌍으로 콘텐트를 스트리밍하는 것으로부터 네트워크 제어된 전환이 검출되고, 예를 들면, 이는 제 2 입체 영상 카메라 쌍에 대응하는 콘텐트 공급이 이전에 제공되는 제 1 입체 영상 카메라 쌍으로부터보다 재생 디바이스에 제공되는 것을 나타낸다. 동작은 단계(2334)로부터 단계(2338)로 진행한다.
단계(2336)에서, 제 1 입체 영상 카메라 쌍으로부터 콘텐트를 포함하는 제 1 콘텐트 스트림을 수신하는 것으로부터 제 2 입체 영상 카메라 쌍으로부터 인코딩된 콘텐트를 포함하는 제 2 콘텐트 스트림을 수신하는 것으로의 사용자 제어된 변경이 시스템(700)에 의해 검출된다. 동작은 단계(2336)로부터 단계(2338)로 진행한다.
단계(2338)에서, 시스템은 제 2 카메라 쌍에 의해 캡처된 콘텐트가 제 1 카메라 쌍으로부터의 콘텐트 대신 재생 디바이스에 스트리밍될 때 및/또는 제 2 카메라 쌍에 의해 캡처된 콘텐트가 재생 디바이스에 의해 렌더링 및 재생을 위해 사용될 때 제 3 및 제 4 보정 메시 정보가 사용되어야 한다는 것을 재생 디바이스에 표시한다. 몇몇 실시예들에서, 점선 박스로 표시되는 단계(2338)는 선택적이다. 이러한 실시예들에서, 단계(2338)에 관하여 기술되는 이러한 표시가 단계들(2334, 2336)에 관하여 논의된 것들과 같은 스위치를 검출할 때 시스템(700)에 의해 제공된다. 이러한 실시예들에서, 재생 디바이스는 카메라 쌍 콘텐트 스트림을 위해 사용할 보정 메시 정보 세트에 관하여 설명하기 위해 보정 메시 정보와 카메라 쌍들 사이의 맵핑을 안다.
동작은 단계(2338)로부터 단계들(2340, 2342)로 진행한다. 몇몇 실시예들에서, 단계들(2340, 2342)은 두 개의 상이한 대안들이고 두 개의 단계들 중 바로 하나가 수행된다. 단계(2340)에서, 제 2 입체 영상 카메라 쌍으로부터 제 3 입체 영상 쌍으로 콘텐트를 스트리밍하는 것으로부터 네트워크 제어된 전환이 검출되고, 이는, 예를 들면, 이전에 제공된 제 2 입체 영상 카메라 쌍으로부터라기보다는 제 3 입체 영상 카메라 쌍에 대응하는 콘텐트 공급이 재생 디바이스에 제공된다는 것을 나타낸다. 동작은 단계(2340)로부터 단계(2342)로 진행한다.
단계(2342)에서, 제 2 입체 영상 카메라 쌍으로부터의 콘텐트를 포함하는 콘텐트 스트림을 수신하는 것으로부터 제 3 입체 영상 카메라 쌍으로부터의 콘텐트를 포함하는 콘텐트 스트림을 수신하는 것으로의 사용자 제어된 변경이 시스템(700)에 의해 검출된다. 동작은 단계(2342)로부터 단계(2344)로 진행하고, 이는 몇몇 실시예들에서 선택적이다.
단계(2344)에서, 시스템은 제 5 및 제 6 보정 메시 정보가 제 3 카메라 쌍에 의해 캡처된 콘텐트가 재생 디바이스로 스트리밍될 때 및/또는 제 3 카메라 쌍에 의해 캡처된 콘텐트가 재생 디바이스에 의해 렌더링 및 재생을 위해 사용될 때 렌더링을 위해 사용되어야 한다는 것을 재생 디바이스에 표시한다.
도 24는 예를 들면, 입체 영상 재생 방법의 부분으로서 왼쪽 및 오른쪽 눈 이미지들을 렌더링 및 디스플레이하기 위한 콘텐트 재생 디바이스, 예를 들면, 도 8에 도시된 디바이스(800)와 같은 콘텐트 재생 디바이스를 동작시키는 방법(2400)을 도시한다. 입체 영상 재생의 경우, 상이한 왼쪽 및 오른쪽 눈 이미지들이 사용자에게 디스플레이되고, 예를 들면, 디스플레이의 상이한 부분들은 몇몇 경우들에서 사용자의 왼쪽은 왼쪽 눈 이미지를 보고 오른쪽 눈은 오른쪽 눈 이미지를 보는 방식으로 왼쪽 및 오른쪽 눈 이미지들을 나타내기 위해 사용된다. 재생 동안 이미지들이 생성되는 방법의 이해를 용이하게 하기 때문에, 도 14에 대한 참조가 재생 방법의 논의 동안 수행될 것이다.
방법은, 예를 들면, 재생 루틴이 재생 디바이스의 프로세서에 의해 실행될 때 단계(2402)에서 시작한다. 동작은 단계(2402)로부터 단계(2404)로 진행한다. 단계(2404)에서, 재생 디바이스는 환경 모델, 예를 들면, 상이한 시야들에 대응하는 메시들을 포함하는, 3D 메시 모델을 수신한다. 예를 들면, 수신된 메시는 전방 정면 뷰에 대응하는 메시(0 뷰 메시), 왼쪽 후방 뷰에 대응하는 메시(1-뷰 메시), 및 오른쪽 후방 뷰에 대응하는 메시(2-뷰 메시)를 포함할 수 있고, 때때로 그것들을 포함한다. 전방 및 후방 뷰 메시들 외에, 3D 모델은 하늘(상부) 메시 및 하부(지상) 메시 모델을 포함할 수 있다. 텍스처가 예를 들면, 상이한 스트림들에서 개별적으로 전송될 수 있거나 때때로 그렇게 전송되기 때문에, 사용될 메시에 대응하는 이미지 콘텐트가 사용될 수 있다. 단계(2406)에서, 3D 모델이 저장된다. 동작은 단계(2406)로부터 단계(2408)로 진행하고, 하나 이상의 UV 맵들이 재생 디바이스에 의해 수신되고, 예를 들면, 하나의 UV 맵은 3D 모델의 부분을 형성하는 각각의 메시에 대응한다. 예를 들면, 몇몇 실시예들에서, 단계(2408)에서, 복수의 UV 맵들은 이미지들을 환경 모델에 맵핑하기 위해 사용되기 위해 수신된다. UV 맵의 각각의 표면은 3D 메시 모델의 표면에 대응하고, 동일한 시야 및 UV 맵에 대응하는 이미지 콘텐트의 3D 모델의 대응하는 부분에 대한 맵핑을 제어하기 위해 사용된다. 이러한 맵핑은 렌더링 엔진에 의해 구현될 수 있고, 몇몇 실시예들에서 그렇게 구현된다. UV 맵들은 도 14에 도시되지 않지만 각각의 메시 부분에 대응하는 UV 맵이 존재한다. 예를 들면, 단계(2408)에서, 전방 정면 뷰 UV 맵, 오른쪽 후방 뷰 UV 맵, 왼쪽 후방 뷰 UV 맵, 상부 뷰 UV 맵, 및 하부 뷰 UV 맵이 수신된다. UV 맵 및 모델이 입체 영상 쌍의 렌즈들 사이의 렌즈 결함들 또는 제조 허용 오차들에 의해 야기될 수 있는 차이들에 의존하지 않기 때문에, 단일 UV 맵은 뷰잉 방향에 대응하는 왼쪽 및 오른쪽 눈 이미지들 모두에 대해 사용될 수 있다.
단계(2410)에서, 수신된 UV 맵들은, 예를 들면, 텍스처들로서 환경의 3D 모델의 표면상에 수신된 이미지 부분들의 랩핑을 용이하게 하기 위해 이미지 렌더링할 때 사용을 위해 저장된다.
동작은 단계(2410)로부터 단계(2412)로 진행한다. 단계(2412)에서, 하나 이상의 마스크들이 수신된다. 예를 들면, 하나의 마스크가 카메라에 의해 캡처될 수 있는 상이한 시야들의 각각에 대한 것인, 복수의 마스크들은 몇몇 실시예들에서 단계(2408)에서 수신된다. 예를 들면, 캡처될 수 있는 상부, 전방, 하부, 왼쪽 후방 및 오른쪽 후방 시야들의 각각에 대해 개별적인 마스크들을 도시하는 도 14를 고려하자. 마스크들은 수행될 수 있는 렌더링 또는 혼합 동작 동안 이미지 조합을 제어하는 알파값들의 세트들로서 구현될 수 있다. 알파값들은 그들이 랩핑될 텍스처로서 사용되는 프레임의 중심에 이미지 부분들을 갖는 3D 모델의 대응하는 부분들상에 랩핑된 텍스처에 기여하지 않도록 마스킹될 영역들에 대해 0으로 설정될 수 있다.
마스크들은 단계(2414)에서 저장된다. 동작은 단계(2414)로부터 단계(2416)로 진행한다. 단계(2416)에서, 메시 보정 정보의 복수의 세트들이 수신되고, 예를 들면, 메시 보정 정보의 하나의 세트는 환경 모델의 표면에 텍스처로서 적용을 위한 이미지를 공급할 수 있는 각각의 카메라에 대한 것이다. 상기에 설명된 바와 같이, 메시 보정 정보는 카메라 렌즈 종속적이고 개별적인 카메라 렌즈에 의해 도입된 왜곡들을 고려한다. 메시 보정 정보는 적용되는 메시 보정 정보와 동일한 시야에 대응하는 UV 맵의 값들 또는 정보를 조정하도록 적용될 UV 맵 변경 정보를 포함할 수 있고, 몇몇 실시예들에서 그를 포함한다. 따라서, 메시 보정 정보는 UV 맵이 생성될 때 고려되지 않은 왜곡들이 보상될 수 있도록 렌더링 동안 구현되는 카메라에 의해 캡처된 이미지로부터 3D 모델로 맵핑을 맞춤화할 수 있다. 일 실시예에서, 단계(2416)에서 메시 보정 정보. 입체 영상 카메라 쌍들은 정면, 오른쪽 후방, 및 왼쪽 후방 뷰를 캡처하기 위해 사용되어 단계(2416)에서 보정 메시는 사용된 여섯 개의 카메라들의 각각에 대해 수신되고, 두 개의 카메라들은 입체 영상 카메라 쌍마다 사용된다. 상부 및 하부 뷰들은 몇몇 실시예들에서 입체 영상으로 캡처되지 않는다. 상부 및 하부 뷰가 입체 영상인 경우, 개별적인 보정 메시들이 사용된 왼쪽 및 오른쪽 눈 카메라들의 각각에 대해 수신된다. 단계(2416)에서, 상부 뷰 메시 보정 정보의 단 하나의 세트 및 하부 뷰 메시 보정 정보의 하나의 세트는 이러한 특정한 예에서 상부 및 하부 뷰가 입체 영상으로 캡처되지 않는다고 가정하여 언급된다. 따라서, 단계(2416)에서, 제 1 카메라, 예를 들면, 전방을 바라보는 입체 영상 카메라 쌍의 왼쪽 눈 카메라에 대응하는 제 1 보정 정보가 수신된다. 단계(2416)에서, 제 2 메시 보정 정보가 또한 수신되고, 제 2 메시 보정 정보는 몇몇 실시예들에서 전방을 바라보는 입체 영상 카메라 쌍의 오른쪽 눈 카메라에 대응한다. 단계(2416)에서, 복수의 상이한 카메라들에 대응하는 추가의 메시 보정 정보가 수신될 수 있고, 때때로 수신된다.
상이한 카메라 장비들은 이미지들을 공급하기 위해 상이한 시간들에 사용될 수 있다는 것이 이해되어야 한다. 이러한 경우에, 단계(2416)에서, 메시 보정 정보는 상이한 카메라 장비들의 카메라들에 대해 수신된다. 메시 보정 정보의 어느 세트가 렌더링 동안 사용되는지는 어느 카메라가 렌더링을 위해 사용된 콘텐트를 공급했는지에 의존한다. 어느 카메라가 콘텐트 스트림의 이미지 콘텐트를 공급했는지의 정보는 재생 디바이스가 이미지를 캡처한 카메라에 대응하는 보정 메시를 식별할 수 있도록 비디오 콘텐트 스트림에 포함될 수 있다. 몇몇 실시예들에서, 콘텐트를 제공하는 서버는 재생 디바이스에 시그널링하고 주어진 시간에 어느 보정 메시를 사용할지를 그에 지시하고, 서버는 어느 카메라(들)가 콘텐트를 공급하기 위해 사용되는지에 관하여 변화가 행해질 때 재생 디바이스가 보정 정보의 일 세트를 사용하는 것으로부터 보정 정보의 다른 세트로 스위칭해야 한다는 것을 나타낸다.
수신된 보정 메시들은 단계(2418)에서 재생 디바이스에 저장된다. 따라서, 단계(2418)에서 복수의 상이한 카메라들에 대응하는 추가의 메시 보정 정보는 다른 수신된 메시 보정 정보와 함께 저장될 수 있다. 보정 메시들 및 다른 정보가 저장되면, 저장된 정보는 필요에 기초하여 렌더링 엔진에 액세스 및 공급될 수 있다.
동작은 접속 노드(2420)를 통해 단계(2418)로부터 단계(2422)로 진행한다. 단계(2422)에서, 각각의 시야에 대응하는 적어도 하나의 이미지가 수신된다. 이들은 이미지 버퍼들을 처음으로 채우기 위해 및 초기 3D 뷰를 생성하기 위해 사용된 디폴트 이미지들일 수 있다.
단계(2424)에서 수신된 이미지들이 디코딩되고, 이후 단계(2426)에서 이미지들은 예를 들면, 렌더링 동작들에서 사용을 위해 저장된다. 이미지들이 수신될 때, 초기 이미지들이 더 최근의 이미지들로 교체될 수 있다. 이해되어야 하는 바와 같이, 환경의 상이한 섹션들에 대응하는 이미지들이 갱신, 즉, 상이한 레이트들에서 수신될 수 있다.
동작은 단계(2426)로부터 단계(2428)로 진행하고, 사용자의 머리 위치, 예를 들면, 뷰의 방향이, 예를 들면, 머리에 장착된 디스플레이의 센서로부터의 정보에 기초하여 결정된다. 몇몇 실시예들에서, 머리 위치는 단계(2430)에서 표시된 재생 디바이스로 콘텐트를 공급하는 서버에 보고된다. 그러나, 다른 실시예들에서, 머리 위치 정보가 보고되지 않지만, 수신할 콘텐트 스트림을 브로드캐스트할지 또는 멀티캐스트할지를 결정하기 위해 및/또는 3D 환경의 어느 부분이 주어진 시간에 재생 디바이스에 대해 사용자에게 디스플레이되는지를 결정하기 위해 재생 시스템에 의해 사용된다.
동작은 단계(2428) 또는 단계(2430)(수행될 때)로부터 단계(2432)로 진행한다. 단계(2432)에서, 재생 디바이스는 이미지들, 예를 들면, 하나 이상의 콘텐트 스트림들을 수신한다. 예를 들면, 콘텐트 서버로부터 수신된 콘텐트 스트림들은 하나 이상의 시야들에 대응하는 이미지들을 전달한다. 일 실시예에서, 단계(2432)에서, 전방을 보고 있는 입체 영상 쌍의 제 1 카메라, 예를 들면 왼쪽 눈 카메라에 의해 캡처된 이미지 콘텐트를 포함하는 제 1 인코딩된 이미지는 제 1 입체 영상 쌍의 제 2 (오른쪽) 카메라에 의해 캡처된 제 2 이미지와 함께 수신된다. 이러한 일 실시예에서, 단계(2432)에서, 제 1 입체 영상 카메라 쌍의 제 2 카메라, 예를 들면, 오른쪽 눈 카메라에 의해 캡처된 콘텐트를 포함하는 제 2 인코딩된 이미지가 또한 수신된다. 콘텐트 스트림들의 수신은 특정한 콘텐트 스트림들을 요청하고 유니캐스트 전달을 통해 콘텐트를 수신하는 재생 디바이스의 결과일 수 있거나 또는 경기장 또는 3D 환경에서 스포츠 게임과 같은 이벤트에 대응하는 이미지들을 제공하는 하나 이상의 스트림들의 멀티캐스트 또는 브로드캐스트를 수신하는 재생 디바이스의 결과로서 일 수 있다.
동작은 단계(2432)로부터 단계(2434)로 진행한다. 반드시 모든 실시예들은 아닌 일부에서 구현되는 단계(2434)에서, 메시 보정 정보의 어느 세트 또는 어느 세트들이 재생 디바이스에 공급되는 이미지들에 관하여 사용되어야 하는지를 나타내는 정보를 수신한다. 메시 보정 표시 정보는 렌더링 동안 이미지들의 식별된 세트를 사용할 때 메시 보정 정보의 특정한 세트 또는 재생 디바이스가 수신되는 이미지들의 소스인 카메라에 대응하는 메시 보정 정보의 세트를 식별 및 사용할 수 있도록 어느 카메라 캡처된 이미지들이 공급되는지에 관한 표시로서 사용하기 위해 명령 또는 지시의 형태를 취할 수 있다.
동작은 단계(2434)로부터 단계(2436)로 진행하고, 수신된 이미지들은 디코딩된다. 따라서, 제 1 카메라로부터 제 1 인코딩된 이미지가 수신되는 경우, 제 1 인코딩된 이미지는 제 1 디코딩된 이미지를 생성하기 위해 단계(2436)에서 디코딩될 것이다. 입체 영상 이미지 콘텐트의 경우에 이해되어야 하는 바와 같이, 왼쪽 및 오른쪽 눈 이미지들은 각각의 입체 영상 프레임에 대해 수신 및 디코딩될 수 있다. 따라서, 단계(2436)에서, 오른쪽 눈 이미지, 예를 들면, 제 1 입체 영상 쌍의 제 2 카메라로부터의 제 2 이미지가 또한 디코딩된다. 디코딩된 이미지들은 3D 환경 모델의 표면에 적용될 텍스처들로서 사용하기 위해 단계(2438)에서 저장된다.
동작은 단계(2438)로부터 단계(2440)로 진행하고, 예를 들면, 사용자의 검출된 머리 위치에 의해 표시되는 사용자의 시야에 대응하는, 왼쪽 및 오른쪽 눈 이미지들을 렌더링할 때 어느 디코딩된 이미지들 및 보정 맵 정보를 사용할지에 관한 결정이 수행된다. 보통 동일한 시간에 대응하는 이미지들은 렌더링할 때 사용될 것이지만, 상이한 시야들에 대응하는 이미지들이 상이한 시간들에 수신되는 경우들에서, 전체 3D 모델의 일 부분에 대응하는 프레임의 더 오래된 버전, 예를 들면 마지막 수신된 버전이 완전한 이미지가 렌더링될 수 있도록 사용자의 주요 시야에서 더 최근에 수신된 프레임과 조합하여 사용될 수 있다.
왼쪽 및 오른쪽 눈 이미지들은 그들이 이후 렌더링된 왼쪽 눈 이미지를 보는 사용자의 왼쪽 눈 및 렌더링된 오른쪽 눈 이미지를 보는 사용자의 오른쪽 눈에 의한 입체 영상 프레임 쌍으로서 사용자에게 함께 디스플레이될 수 있을지라도 몇몇 실시예들에서 개별적으로 렌더링된다. 단계(2442)에서, 왼쪽 눈 이미지를 렌더링하기 위해, 예를 들면, 도 25에 도시된, 렌더링 루틴에 대해 호출이 수행된다.
왼쪽 눈 이미지를 렌더링하는 부분으로서, 단계(2508)에서, 렌더링 이미지는 디스플레이를 위한 제 1 이미지를 예를 들면 왼쪽 눈 이미지로서 생성하기 위해 제 1 메시 보정 정보, 제 1 디코딩된 이미지, 예를 들면, 전방 왼쪽 눈 이미지, 및 환경 메시 모델을 사용하여 렌더링 동작을 수행할 수 있다. 또한 제 1 마스크는 상기 제 1 이미지의 부분들이 상기 제 1 렌더링 동작으로서 상이한 시야에 대응하는 다른 이미지의 부분들과 조합되는 방법을 결정하기 위해 사용될 수 있다. 예를 들면, 상이한 카메라들로부터 획득된 이미지들은 중첩하고, 마스크는 중첩하는 이미지의 하나 이상의 부분들이 렌더링 동작의 부분으로서 환경 메시 모듈의 표면에 상기 제 1 이미지의 부분들을 적용함으로써 생성되는 이미지에 기여하는 것을 방지하기 위해 사용될 수 있다. 0의 알파값이 메시에 적용되지 않는 이미지의 부분에 대해 배정 및 사용될 수 있어서, 그에 의해 그의 기여 0을 렌더링한다.
렌더링되는 입체 영상 이미지 쌍의 오른쪽 눈 이미지를 렌더링하기 위해, 단계(2444)에서 오른쪽 눈 이미지를 렌더링하기 위해 렌더링 루틴에 대해 호출이 수행된다. 따라서, 단계(2444)에서 제 2 렌더링 동작은 디스플레이를 위한 제 2 이미지를 생성하기 위해 메시 보정 정보의 제 2 세트, 제 2 디코동된 이미지 및 환경 메시 모듈을 사용하여 수행된다. 시야의 왼쪽 눈 이미지에 대해 사용된 동일한 마스크는 동일한 시야에 대응하는 오른쪽 눈 뷰에 대해 렌더링하는 동안 사용될 수 있다. 따라서, 몇몇 실시예들에서, 왼쪽 눈 이미지를 렌더링하기 위해 사용된 제 1 마스크는 상기 제 2 이미지의 부분들이 상이한, 예를 들면, 사용된 제 2 렌더링 동작의 부분이 오른쪽 눈 이미지를 렌더링할 때 중첩하는 시야에 대응하는 제 2 이미지의 부분들과 조합되는 방법을 결정하기 위해 사용된다.
이해되어야 하는 바와 같이, 시간에 걸쳐, 도 24 및 도 25의 단계들은 수회 반복될 것이다. 나중 반복들은 상이한 카메라들, 예를 들면, 제 1 입체 영상 쌍으로서 동일하거나 상이한 카메라 장비상에 존재할 수 있는 상이한 입체 영상 카메라 쌍에 대응하는 제 5 및 제 6 카메라로부터 이미지들의 사용을 포함할 수 있다. 따라서, 단계(2444)는 제 2 또는 이후 시간 동안 수행될 때, 제 4 카메라에 대응하는 이미지를 렌더링할 때 제 4 카메라에 대응하는 메시 보정 정보를 요청하는 것을 포함할 수 있고 때때로 그를 포함하고, 상기 제 4 카메라는 보정 메시 정보가 수신되는 복수의 상이한 카메라들 중 하나일 수 있고 때때로 복수의 상이한 카메라들 중 하나이다.
이후, 단계(2446)에서, 왼쪽 및 오른쪽 눈 이미지들은 왼쪽 눈 이미지를 보는 사용자의 왼쪽 눈 및 오른쪽 눈 이미지를 보는 사용자의 오른쪽 눈을 초래하는 디스플레이를 사용하여 사용자에게 디스플레이된다.
동작은 단계(2446)로부터 단계(2448)로 진행하고, 추가의 이미지들은 예를 들면, 이벤트의 지속 기간 동안, 정기적으로 입체 영상 이미지들이 제공되어 사용자에게 수신 및 처리될 수 있다.
도 25에 도시된 이미지 렌더링 루틴(2500)이 지금 논의될 것이다. 루틴은 왼쪽 눈 이미지들 및 오른쪽 눈 이미지들을 렌더링하기 위해 호출될 수 있다. 렌더링된 왼쪽 및 오른쪽 눈 이미지들의 쌍은, 사용자에 의해 시청될 때, 상이한 왼쪽 및 오른쪽 눈 이미지들을 보는 사용자에 의해 깊이의 감지를 전달하는 입체 영상 프레임을 나타낸다.
렌더링 루틴(2500)은 예를 들면, 루틴(2400)에 의해 이미지를 렌더링할 때 호출되는 단계(2502)에서 시작한다. 단계(2504)에서, 렌더링 엔진, 예를 들면, 렌더링 엔진(822)은 환경 모델, 예를 들면, 상이한 시야들, 상이한 시야들에 대응하는 UV 맵들, 및 상이한 시야들에 대응하는 마스크들에 대응하는 다수의 메시 모델들을 포함하는 3D 메시 모델에 의해 로딩된다. 렌더에 로딩된 정보는 UV 맵들을 제외하고 정보의 다수의 부분들을 도시하는 도 14의 환경에서 쉽게 이해될 수 있다. 상기에 논의된 바와 같이, 이러한 정보는 왼쪽 및 오른쪽 눈 이미지들 모두를 렌더링하기 위해 사용될 수 있고, 입체 영상 카메라들의 쌍의 개별적인 카메라 렌즈에 특정한 왜곡들에 의존하지 않을 수 있다.
로딩된 환경 모델 및 UV 맵들에 의해, 동작은 단계(2506)로 진행한다. 단계(2506)에서, 렌더링 엔진은 카메라 종속적인 환경 메시 보정 정보를 공급받는다. 따라서, 단계(2506)에서, 렌더링 엔진은 렌더링 동작에서 사용되는 이미지 부분들을 캡처하기 위해 사용된 카메라들에 대응하는 보정 메시 정보를 공급받는다. 예를 들면, 왼쪽 눈 이미지가 렌더링되는 경우, 단계(2506)에서, 렌더링 엔진은 환경의 왼쪽 눈 이미지 부분들을 캡처하는 카메라들에 대응하는 메시 보정 정보를 수신할 것이다. 유사하게는, 오른쪽 눈 이미지가 렌더링되는 경우, 단계(2506)에서, 렌더링 엔진은 환경의 오른쪽 눈 이미지 부분들을 캡처하는 카메라들에 대응하는 메시 보정 정보를 수신할 것이다. 단일 카메라가 특정한 시야에 대해 사용되는 경우, 단일 카메라에 대응하는 왜곡 보정 메시는 왼쪽 및 오른쪽 눈 뷰들 모두를 렌더링하기 위해 사용될 것이다.
몇몇 실시예들에서, 단계(2506)는 어느 카메라 캡처된 이미지 콘텐트가 렌더링 동작시 사용되는지 또는 수신된 콘텐트 스트림에 대응하는 이미지들을 렌더링할 때 어느 메시 보정 정보가 사용되어야 하는지의 표시인 서버로부터의 표시에 기초하여 렌더링 동작을 수행할 때 어느 메시 보정 정보를 사용할지를 결정하는 단계를 포함한다.
3D 모델의 상이한 부분들에 대응하는 이미지들이 로딩되면, 단계(2508)에서, 렌더링 엔진은 메시 보정 정보의 수신된 세트들에 포함된 메시 보정 정보에 의해 보정되는 UV 맵 정보에 기초하여 3D 모델의 표면에 이미지들의 부분을 적용함으로써 출력 이미지를 생성하도록 동작된다. 예를 들면, UV 맵에서 꼭지점, 예를 들면, 노드의 위치는 렌더링 프로세스의 일부로서 3D 환경 모델의 표면상에 텍스처를 랩핑하기 위해 사용되기 전에 수신된 보정 정보에 따라 조정될 수 있다. 렌더링 동안, 수신된 마스크들은 수신된 이미지들의 어느 부분들이 랩핑 동작에서 사용될지를 결정하기 위해 사용된다. 게임 시스템들에서 사용된 것들과 같은 렌더링 엔진들은 기술된 입력들 및 보정 정보에 기초하여 렌더링을 수행하기 위해 사용될 수 있다.
단계(2508)에서 수행된 렌더링 동작은 왼쪽 또는 오른쪽 눈 이미지들이 환경의 3D 모델의 표면상에 랩핑되는지의 여부에 의존하여 사용자의 표시된 시야에 대응하는 왼쪽 또는 오른쪽 눈 출력 이미지를 생성하고, 렌더링 동작은 생성되는 입체 영상 이미지 쌍의 왼쪽 및 오른쪽 눈 이미지들의 각각에 대해 수행된다.
단계(2508)에서 생성된 이미지는 디스플레이를 위해 단계(2510)에서 출력된다. 단계(2512)가 정지 단계로서 표시되지만, 이는 단순히 이미지의 렌더링이 완료된 것을 나타내고, 렌더링 루틴(2500)은 예를 들면, 한번에 하나의, 필요한 이미지를 왼쪽 및 오른쪽 눈 이미지들을 렌더링하기 위해 다수 회 호출될 수 있다는 것이 이해되어야 한다.
단계들은 예시적인 순서로 도시되지만, 많은 경우들에서 단계들의 순서는 부정적인 영향을 주는 동작 없이 변경될 수 있다는 것이 이해되어야 한다. 따라서, 단계들의 예시적인 순서가 적절한 동작에 대해 요구되지 않으면, 단계들의 순서는 예시적이고 한정적이지는 않다고 생각될 것이다.
몇몇 실시예들은 컴퓨터 또는 다른 디바이스가 입체 영상 비디오를 인코딩 및 압축하도록 제어하기 위해 소프트웨어 명령들의 세트, 예를 들면, 컴퓨터 실행 가능한 명령들을 구현하는 비일시적 컴퓨터 판독 가능한 매체에 대한 것이다. 다른 실시예들은 컴퓨터 또는 다른 디바이스가 플레이어 단부상의 비디오를 디코딩 및 압축 해제하도록 제어하기 위해 소프트웨어 명령들의 세트, 예를 들면, 컴퓨터 실행 가능한 명령들을 구현하는 컴퓨터 판독 가능한 매체에 관한 것이다. 인코딩 및 압축은 가능한 개별적인 동작들로서 언급되지만, 인코딩은 압축을 수행하기 위해 사용될 수 있고, 따라서 인코딩은 몇몇에서 압축을 포함할 수 있다는 것이 이해되어야 한다. 유사하게는, 디코딩은 압축 해제를 포함할 수 있다.
다양한 실시예들의 기술들은 소프트웨어, 하드웨어, 및/또는 소프트웨어 및 하드웨어의 조합을 사용하여 구현될 수 있다. 다양한 실시예들은 장치, 예를 들면, 이미지 데이터 처리 시스템에 대한 것이다. 다양한 실시예들은 또한 방법들, 예를 들면, 이미지 데이터를 처리하는 방법에 관한 것이다. 다양한 실시예들은 또한, 비일시적 머신, 예를 들면, 기계가 방법의 하나 이상의 단계들을 구현하도록 제어하기 위한 기계 판독 가능한 명령들을 포함하는, 컴퓨터, 판독 가능한 매체, 예를 들면, ROM, RAM, CD들, 하드 디스크들, 등에 관한 것이다.
본 발명의 다양한 특징들은 모듈들을 사용하여 구현된다. 이러한 모듈들은 소프트웨어 모듈들로서 구현될 수 있고, 몇몇 실시예들에서 그렇게 구현된다. 다른 실시예들에서, 모듈들은 하드웨어에서 구현된다. 또 다른 실시예들에서, 모듈들은 소프트웨어 및 하드웨어의 조합을 사용하여 구현된다. 몇몇 실시예들에서, 모듈들은 개별적인 회로들로서 구현되고, 각각의 모듈은 모듈이 대응하는 기능을 수행하기 위한 회로로서 구현된다. 매우 다양한 실시예들은 예를 들면, 일부는 하드웨어에서, 일부는 소프트웨어에서, 및 일부는 하드웨어 및 소프트웨어의 조합을 사용하여 상이한 모듈들이 상이하게 구현되는 몇몇 실시예들을 포함하여 고려된다. 루틴들 및/또는 서브루틴들 또는 이러한 루틴들에 의해 수행된 단계들의 일부가 범용 프로세서상에 실행된 소프트웨어와 반대로 전용 하드웨어에서 수행될 수 있다는 것이 또한 주의되어야 한다. 이러한 실시예들은 본 발명의 범위 내에 유지한다. 상기에 기술된 방법들 또는 방법 단계들의 많은 것들은 기계, 예를 들면, 추가의 하드웨어를 갖거나 그를 갖지 않는 범용 컴퓨터가 상기 기술된 방법들의 모두 또는 일부들을 구현하도록 제어하기 위해 메모리 디바이스, 예를 들면, RAM, 플로피 디스크, 등과 같은 기계 판독 가능한 매체에 포함된 소프트웨어와 같은 기계 실행 가능한 명령들을 사용하여 구현될 수 있다. 따라서, 그 중에서도, 본 발명은 기계, 예를 들면, 프로세서 및 연관된 하드웨어가 상기 기술된 방법(들)의 단계들 중 하나 이상을 수행하게 하기 위한 기계 실행 가능한 명령들을 포함하는 기계 판독 가능한 매체에 관한 것이다.
상기에 기술된 다양한 실시예들의 방법들 및 장치에 대한 다수의 추가의 변동들은 상기 기술의 관점에서 당업자들에게 명백할 것이다. 이러한 변동들은 범위 내에서 고려될 것이다.
700 : 콘텐트 전달 시스템 702 : 디스플레이
704 : 입력 디바이스 706 : I/O 인터페이스
708 : 프로세서 710 : 네트워크 인터페이스
712 : 메모리 714 : 제어 루틴들
716 : 분할 모듈 718 : 인코더(들)
720 : 스트리밍 제어기 722 : 요청 처리 모듈
724 : 데이터 레이트 결정 모듈 726 : 현재 머리 위치 결정 모듈
728 : 선택 모듈 730 : 스트리밍 제어 모듈
738 : 3D 환경 메시 모델 740 : UV 맵(들)

Claims (55)

  1. 콘텐츠 재생 방법으로서,
    콘텐츠 재생 디바이스에 의해, 제1 카메라에 대응하는 제1 보정 정보를 수신하는 단계 -
    상기 제1 보정 정보는 상기 제1 카메라의 렌즈에 의해 도입된 이미지 왜곡들을 보상하기 위한 제1 UV 맵에서의 노드 위치들에 대한 조정들을 나타내고,
    상기 제1 UV 맵에서의 각각의 노드 위치는 환경 고유 모델의 정점에 대응함 -;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제1 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제1 인코딩된 이미지를 수신하는 단계;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제1 인코딩된 이미지를 디코딩하여 제1 디코딩된 이미지를 생성하는 단계; 및
    상기 콘텐츠 재생 디바이스에 의해, 상기 제1 디코딩된 이미지에 대해 제1 렌더링 동작을 수행하여 디스플레이를 위해 제1 이미지를 생성하는 단계를 포함하고, 상기 제1 렌더링 동작은 상기 제1 보정 정보, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하여 수행되는 콘텐츠 재생 방법.
  2. 제1항에 있어서, 상기 환경 고유 모델은 비-구형 객체들을 포함하는 환경의 모델이고, 상기 방법은,
    상기 콘텐츠 재생 디바이스에 의해, 제2 카메라에 대응하는 제2 보정 정보를 수신하는 단계 - 상기 제2 보정 정보는 상기 제2 카메라의 렌즈에 의해 도입된 이미지 왜곡들을 보상하기 위해 상기 제1 UV 맵에서의 노드 위치들에 대한 조정들을 나타냄 -;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제2 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제2 인코딩된 이미지를 수신하는 단계;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제2 인코딩된 이미지를 디코딩하여 제2 디코딩된 이미지를 생성하는 단계; 및
    상기 콘텐츠 재생 디바이스에 의해, 상기 제2 디코딩된 이미지에 대해 제2 렌더링 동작을 수행하여 디스플레이를 위해 제2 이미지를 생성하는 단계를 더 포함하고, 상기 제2 렌더링 동작은 상기 제2 보정 정보, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하여 수행되는 콘텐츠 재생 방법.
  3. 제1항에 있어서, 상기 제1 보정 정보 및 상기 제1 UV 맵은 상기 제1 디코딩된 이미지의 부분들을 상기 환경 고유 모델의 일부에 어떻게 매핑할지를 결정하는 데 사용되고, 상기 환경 고유 모델은 상기 제1 카메라의 환경의 측정들에 기초하여 변경된 디폴트 구 형상을 포함하는 콘텐츠 재생 방법.
  4. 콘텐츠 재생 방법으로서,
    콘텐츠 재생 디바이스에 의해, 제1 카메라에 대응하는 제1 보정 정보를 수신하는 단계 - 상기 제1 보정 정보는 상기 제1 카메라의 렌즈에 의해 도입된 이미지 왜곡들을 보상하기 위한 제1 UV 맵에서의 노드 위치들에 대한 조정들을 나타내고, 상기 제1 UV 맵에서의 각각의 노드 위치는 환경 고유 모델의 정점에 대응함 -;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제1 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제1 인코딩된 이미지를 수신하는 단계;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제1 인코딩된 이미지를 디코딩하여 제1 디코딩된 이미지를 생성하는 단계;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제1 디코딩된 이미지에 대해 제1 렌더링 동작을 수행하여 디스플레이를 위해 제1 이미지를 생성하는 단계 - 상기 제1 렌더링 동작은 상기 제1 보정 정보, 상기 제1 디코딩된 이미지, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하여 수행됨 -;
    상기 콘텐츠 재생 디바이스에 의해, 제2 카메라에 대응하는 제2 보정 정보를 수신하는 단계;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제2 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제2 인코딩된 이미지를 수신하는 단계;
    상기 콘텐츠 재생 디바이스에 의해, 상기 제2 인코딩된 이미지를 디코딩하여 제2 디코딩된 이미지를 생성하는 단계; 및
    상기 콘텐츠 재생 디바이스에 의해, 상기 제2 디코딩된 이미지에 대해 제2 렌더링 동작을 수행하여 디스플레이를 위해 제2 이미지를 생성하는 단계를 포함하고, 상기 제2 렌더링 동작은 상기 제2 보정 정보, 상기 제2 디코딩된 이미지, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하여 수행되고;
    상기 제1 및 제2 카메라들은 제1 입체 카메라 쌍을 포함하고, 상기 제1 인코딩된 이미지는 왼쪽 눈 이미지이고, 상기 제2 인코딩된 이미지는 오른쪽 눈 이미지인 콘텐츠 재생 방법.
  5. 제4항에 있어서,
    상기 환경 고유 모델은 상기 제1 카메라의 환경의 측정들에 기초하여 변경된 디폴트 구 형상을 포함하고;
    상기 환경 고유 모델은 비-구형 객체들을 포함하는 환경의 모델이고;
    상기 환경 고유 모델은 삼각형들을 사용하는 모델이고;
    상기 제1 보정 정보는 상기 제1 UV 맵 내의 특정 노드를 식별하는 정보, 상기 특정 노드에 대한 U 오프셋 및 상기 특정 노드에 대한 V 오프셋을 포함하는 콘텐츠 재생 방법.
  6. 제4항에 있어서, 상기 제2 보정 정보는 상기 제2 카메라의 렌즈에 의해 도입된 이미지 왜곡들을 보상하기 위해 상기 제1 UV 맵에서의 노드 위치들에 대해 행해질 조정들을 나타내는 콘텐츠 재생 방법.
  7. 제6항에 있어서, 상기 제1 렌더링 동작의 일부로서 상기 제1 디코딩된 이미지의 부분들을 상기 환경 고유 모델의 표면에 적용할 때 상기 제1 렌더링 동작의 일부로서 상이한 시야에 대응하는 제1 이미지의 부분들과 상기 제1 이미지의 부분들이 어떻게 결합되는지를 결정하기 위해 제1 마스크를 사용하는 단계를 더 포함하는 콘텐츠 재생 방법.
  8. 제7항에 있어서, 상기 상이한 시야에 대응하는 상기 제1 이미지의 부분들은 하늘 또는 지상 시야에 대응하는 콘텐츠 재생 방법.
  9. 제8항에 있어서, 상기 제2 렌더링 동작의 일부로서 상기 제2 디코딩된 이미지의 부분들을 상기 환경 고유 모델의 표면에 적용할 때 상기 제2 렌더링 동작의 일부로서 상기 상이한 시야에 대응하는 제2 이미지의 부분들과 상기 제2 디코딩된 이미지의 부분들이 어떻게 결합되는지를 결정하기 위해 상기 제1 마스크를 사용하는 단계를 더 포함하는 콘텐츠 재생 방법.
  10. 제8항에 있어서, 상기 제1 이미지는 전방 시야에 대응하는 왼쪽 눈 이미지이고, 상기 상이한 시야에 대응하는 상기 제1 이미지는 상기 전방 시야에 인접한 측면 시야에 대응하는 제3 카메라에 의해 캡처된 왼쪽 눈 이미지인 콘텐츠 재생 방법.
  11. 제10항에 있어서, 상기 제2 이미지는 상기 전방 시야에 대응하는 오른쪽 눈 이미지이고, 상기 상이한 시야에 대응하는 상기 제2 이미지는 상기 전방 시야에 인접한 측면 시야에 대응하는 제4 카메라에 의해 캡처된 오른쪽 눈 이미지인 콘텐츠 재생 방법.
  12. 제1항에 있어서,
    복수의 상이한 카메라에 대응하는 추가적인 메시 보정 정보를 수신하는 단계; 및
    상기 추가적인 메시 보정 정보를 저장하는 단계를 더 포함하는 콘텐츠 재생 방법.
  13. 제12항에 있어서, 제4 카메라에 대응하는 이미지를 렌더링할 때 상기 제4 카메라에 대응하는 메시 보정 정보를 사용하는 단계를 더 포함하고, 상기 제4 카메라는 상기 복수의 상이한 카메라 중 하나인 콘텐츠 재생 방법.
  14. 제1항에 있어서,
    상기 제1 카메라에 의해 캡처되는 이미지 콘텐츠에 기초하거나 상기 제1 보정 정보가 수신된 콘텐츠 스트림에 대응하는 이미지들을 렌더링할 때 사용되어야 한다는 것을 나타내는 서버로부터의 표시에 기초하여 렌더링 동작을 수행할 때 상기 제1 보정 정보를 사용하기로 결정하는 단계를 더 포함하는 콘텐츠 재생 방법.
  15. 콘텐츠 재생 디바이스로서,
    인터페이스 - 상기 인터페이스는,
    제1 카메라에 대응하는 제1 보정 정보를 수신하고 - 상기 제1 보정 정보는 상기 제1 카메라의 렌즈에 의해 도입된 이미지 왜곡들을 보상하기 위한 제1 UV 맵에서의 노드 위치들에 대한 조정들을 나타내고, 상기 제1 UV 맵에서의 각각의 노드 위치는 환경 고유 모델의 정점에 대응함 -;
    상기 제1 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제1 인코딩된 이미지를 수신하도록 구성됨 -;
    상기 제1 인코딩 이미지를 디코딩하여 제1 디코딩된 이미지를 생성하도록 구성된 디코더; 및
    상기 제1 디코딩된 이미지에 대해 제1 렌더링 동작을 수행하여 디스플레이를 위해 제1 이미지를 생성하도록 구성된 렌더링 엔진을 포함하고, 상기 렌더링 엔진은 상기 제1 보정 정보, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하여 상기 제1 렌더링 동작을 수행하도록 구성되는 콘텐츠 재생 디바이스.
  16. 제15항에 있어서,
    상기 환경 고유 모델은 상기 제1 카메라의 환경의 측정들에 기초하여 변경된 디폴트 구 형상을 포함하고;
    상기 환경 고유 모델은 비-구형 객체들을 포함하는 환경의 모델이고;
    상기 인터페이스는,
    제2 카메라에 대응하는 제2 보정 정보를 수신하고;
    상기 제2 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제2 인코딩된 이미지를 수신하도록 더 구성되고;
    상기 디코더는 상기 제2 인코딩된 이미지를 디코딩하여 제2 디코딩된 이미지를 생성하도록 더 구성되고;
    상기 렌더링 엔진은 상기 제2 디코딩된 이미지에 대해 제2 렌더링 동작을 수행하여 디스플레이를 위해 제2 이미지를 생성하도록 더 구성되고, 상기 렌더링 엔진은 상기 제2 보정 정보, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하여 상기 제2 렌더링 동작을 수행하도록 구성되는 콘텐츠 재생 디바이스.
  17. 삭제
  18. 제16항에 있어서, 상기 렌더링 엔진은 상기 제1 렌더링 동작의 일부로서 상기 제1 디코딩된 이미지의 부분들을 상기 환경 고유 모델의 표면에 적용할 때 상기 제1 렌더링 동작의 일부로서 상이한 시야에 대응하는 제1 이미지의 부분들과 상기 제1 디코딩된 이미지의 부분들이 어떻게 결합되는지를 결정하기 위해 제1 마스크를 사용하도록 더 구성되는 콘텐츠 재생 디바이스.
  19. 제18항에 있어서, 상기 렌더링 엔진은 상기 제2 렌더링 동작의 일부로서 상기 제2 디코딩된 이미지의 부분들을 상기 환경 고유 모델의 표면에 적용할 때 상기 제2 렌더링 동작의 일부로서 상기 상이한 시야에 대응하는 제2 이미지의 부분들과 상기 제2 디코딩된 이미지의 부분들이 어떻게 결합되는지를 결정하기 위해 상기 제1 마스크를 사용하도록 더 구성되는 콘텐츠 재생 디바이스.
  20. 프로세서 실행가능 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 프로세서 실행가능 명령어들은 프로세서에 의해 실행될 때 재생 시스템을 제어하여,
    제1 카메라에 대응하는 제1 보정 정보를 수신하고 -
    상기 제1 보정 정보는 상기 제1 카메라의 렌즈에 의해 도입된 이미지 왜곡들을 보상하기 위한 제1 UV 맵에서의 노드 위치들에 대한 조정들을 나타내고,
    상기 제1 UV 맵에서의 각각의 노드 위치는 환경 고유 모델의 정점에 대응함 -;
    상기 제1 카메라에 의해 캡처된 이미지 콘텐츠를 포함하는 제1 인코딩된 이미지를 수신하고;
    상기 제1 인코딩된 이미지를 디코딩하여 제1 디코딩된 이미지를 생성하고;
    상기 제1 디코딩된 이미지에 대해 제1 렌더링 동작을 수행하여 디스플레이를 위해 제1 이미지를 생성하게 하며, 상기 제1 렌더링 동작은 상기 제1 보정 정보, 상기 제1 UV 맵 및 상기 환경 고유 모델에 기초하는 비일시적 컴퓨터 판독가능 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
KR1020177008939A 2014-09-03 2015-09-03 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치 KR102441437B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227030554A KR102632421B1 (ko) 2014-09-03 2015-09-03 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462045004P 2014-09-03 2014-09-03
US62/045,004 2014-09-03
PCT/US2015/048439 WO2016037014A1 (en) 2014-09-03 2015-09-03 Methods and apparatus for capturing, streaming and/or playing back content

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227030554A Division KR102632421B1 (ko) 2014-09-03 2015-09-03 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치

Publications (2)

Publication Number Publication Date
KR20170047385A KR20170047385A (ko) 2017-05-04
KR102441437B1 true KR102441437B1 (ko) 2022-09-08

Family

ID=55404093

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177008939A KR102441437B1 (ko) 2014-09-03 2015-09-03 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치
KR1020227030554A KR102632421B1 (ko) 2014-09-03 2015-09-03 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227030554A KR102632421B1 (ko) 2014-09-03 2015-09-03 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치

Country Status (7)

Country Link
US (3) US11122251B2 (ko)
EP (2) EP4113991A1 (ko)
JP (1) JP2017535985A (ko)
KR (2) KR102441437B1 (ko)
CN (1) CN106605407A (ko)
CA (1) CA2961175A1 (ko)
WO (1) WO2016037014A1 (ko)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10298834B2 (en) 2006-12-01 2019-05-21 Google Llc Video refocusing
CN106464785A (zh) 2014-05-20 2017-02-22 奈克斯特Vr股份有限公司 包括或用于一个或多个照相机的装置和方法
KR102281690B1 (ko) * 2014-12-01 2021-07-26 삼성전자주식회사 3 차원 이미지 생성 방법 및 장치
JP6526051B2 (ja) * 2014-12-12 2019-06-05 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
US10531071B2 (en) 2015-01-21 2020-01-07 Nextvr Inc. Methods and apparatus for environmental measurements and/or stereoscopic image capture
US9832449B2 (en) 2015-01-30 2017-11-28 Nextvr Inc. Methods and apparatus for controlling a viewing position
US10362290B2 (en) 2015-02-17 2019-07-23 Nextvr Inc. Methods and apparatus for processing content based on viewing information and/or communicating content
US9729850B2 (en) 2015-02-17 2017-08-08 Nextvr Inc. Methods and apparatus for receiving and/or using reduced resolution images
US9894350B2 (en) 2015-02-24 2018-02-13 Nextvr Inc. Methods and apparatus related to capturing and/or rendering images
WO2016138043A1 (en) 2015-02-24 2016-09-01 NextVR, Inc. Calibration for immersive content systems
US10033995B2 (en) 2015-03-01 2018-07-24 Nextvr Inc. Methods and apparatus for supporting content generation, transmission and/or playback
US10412373B2 (en) 2015-04-15 2019-09-10 Google Llc Image capture for virtual reality displays
US10546424B2 (en) 2015-04-15 2020-01-28 Google Llc Layered content delivery for virtual and augmented reality experiences
US10419737B2 (en) 2015-04-15 2019-09-17 Google Llc Data structures and delivery methods for expediting virtual reality playback
US10567464B2 (en) 2015-04-15 2020-02-18 Google Llc Video compression with adaptive view-dependent lighting removal
US10540818B2 (en) 2015-04-15 2020-01-21 Google Llc Stereo image generation and interactive playback
US10341632B2 (en) 2015-04-15 2019-07-02 Google Llc. Spatial random access enabled video system with a three-dimensional viewing volume
US10444931B2 (en) 2017-05-09 2019-10-15 Google Llc Vantage generation and interactive playback
US10275898B1 (en) 2015-04-15 2019-04-30 Google Llc Wedge-based light-field video capture
US10469873B2 (en) 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10440407B2 (en) * 2017-05-09 2019-10-08 Google Llc Adaptive control for immersive experience delivery
US9930315B2 (en) * 2015-04-29 2018-03-27 Lucid VR, Inc. Stereoscopic 3D camera for virtual reality experience
US20170006219A1 (en) 2015-06-30 2017-01-05 Gopro, Inc. Image stitching in a multi-camera array
US9836845B2 (en) 2015-08-25 2017-12-05 Nextvr Inc. Methods and apparatus for detecting objects in proximity to a viewer and presenting visual representations of objects in a simulated environment
US10778877B2 (en) 2015-11-30 2020-09-15 Photopotech LLC Image-capture device
US10306156B2 (en) 2015-11-30 2019-05-28 Photopotech LLC Image-capture device
US10114467B2 (en) 2015-11-30 2018-10-30 Photopotech LLC Systems and methods for processing image information
US10706621B2 (en) * 2015-11-30 2020-07-07 Photopotech LLC Systems and methods for processing image information
US11217009B2 (en) 2015-11-30 2022-01-04 Photopotech LLC Methods for collecting and processing image information to produce digital assets
US9992502B2 (en) 2016-01-29 2018-06-05 Gopro, Inc. Apparatus and methods for video compression using multi-resolution scalable coding
US10291910B2 (en) 2016-02-12 2019-05-14 Gopro, Inc. Systems and methods for spatially adaptive video encoding
US10484621B2 (en) 2016-02-29 2019-11-19 Gopro, Inc. Systems and methods for compressing video content
WO2017164798A1 (en) * 2016-03-21 2017-09-28 Voysys Ab Method, device and program storage unit for live broadcasting of spherical video
US9990775B2 (en) * 2016-03-31 2018-06-05 Verizon Patent And Licensing Inc. Methods and systems for point-to-multipoint delivery of independently-controllable interactive media content
US10257501B2 (en) * 2016-04-06 2019-04-09 Facebook, Inc. Efficient canvas view generation from intermediate views
US10645362B2 (en) 2016-04-11 2020-05-05 Gopro, Inc. Systems, methods and apparatus for compressing video content
US10474745B1 (en) 2016-04-27 2019-11-12 Google Llc Systems and methods for a knowledge-based form creation platform
JP6958545B2 (ja) * 2016-04-28 2021-11-02 ソニーグループ株式会社 情報処理装置及び情報処理方法
EP3944202A3 (en) * 2016-05-02 2022-02-09 Samsung Electronics Co., Ltd. Method, apparatus, and recording medium for processing image
KR20170124424A (ko) * 2016-05-02 2017-11-10 삼성전자주식회사 영상을 처리하는 방법, 장치 및 기록매체
US10390007B1 (en) * 2016-05-08 2019-08-20 Scott Zhihao Chen Method and system for panoramic 3D video capture and display
US11039181B1 (en) 2016-05-09 2021-06-15 Google Llc Method and apparatus for secure video manifest/playlist generation and playback
US10785508B2 (en) 2016-05-10 2020-09-22 Google Llc System for measuring video playback events using a server generated manifest/playlist
US11069378B1 (en) 2016-05-10 2021-07-20 Google Llc Method and apparatus for frame accurate high resolution video editing in cloud using live video streams
US10771824B1 (en) 2016-05-10 2020-09-08 Google Llc System for managing video playback using a server generated manifest/playlist
US10595054B2 (en) 2016-05-10 2020-03-17 Google Llc Method and apparatus for a virtual online video channel
US10750248B1 (en) 2016-05-10 2020-08-18 Google Llc Method and apparatus for server-side content delivery network switching
US10750216B1 (en) 2016-05-10 2020-08-18 Google Llc Method and apparatus for providing peer-to-peer content delivery
CN106993126B (zh) 2016-05-11 2023-04-07 深圳市圆周率软件科技有限责任公司 一种将镜头图像展开为全景图像的方法及装置
US11032588B2 (en) * 2016-05-16 2021-06-08 Google Llc Method and apparatus for spatial enhanced adaptive bitrate live streaming for 360 degree video playback
US10163029B2 (en) 2016-05-20 2018-12-25 Gopro, Inc. On-camera image processing based on image luminance data
US10462466B2 (en) 2016-06-20 2019-10-29 Gopro, Inc. Systems and methods for spatially selective video coding
US10979607B2 (en) 2016-07-20 2021-04-13 Apple Inc. Camera apparatus and methods
US10200672B2 (en) 2016-08-17 2019-02-05 Nextvr Inc. Methods and apparatus for capturing images of an environment
US10650590B1 (en) * 2016-09-07 2020-05-12 Fastvdo Llc Method and system for fully immersive virtual reality
EP3533504B1 (en) * 2016-11-14 2023-04-26 Huawei Technologies Co., Ltd. Image rendering method and vr device
GB2556910A (en) * 2016-11-25 2018-06-13 Nokia Technologies Oy Virtual reality display
US10679361B2 (en) 2016-12-05 2020-06-09 Google Llc Multi-view rotoscope contour propagation
US10198862B2 (en) 2017-01-23 2019-02-05 Gopro, Inc. Methods and apparatus for providing rotated spherical viewpoints
US20180225537A1 (en) * 2017-02-08 2018-08-09 Nextvr Inc. Methods and apparatus relating to camera switching and/or making a decision to switch between cameras
JP6378794B1 (ja) * 2017-02-23 2018-08-22 株式会社 ディー・エヌ・エー 画像処理装置、画像処理プログラム、及び、画像処理方法
US10567733B2 (en) 2017-03-06 2020-02-18 Nextvr Inc. Methods and apparatus for communicating and/or using frames including a captured image and/or including additional image content
US11252391B2 (en) 2017-03-06 2022-02-15 Nevermind Capital Llc Methods and apparatus for packing images into a frame and/or including additional content or graphics
US10979663B2 (en) * 2017-03-30 2021-04-13 Yerba Buena Vr, Inc. Methods and apparatuses for image processing to optimize image resolution and for optimizing video streaming bandwidth for VR videos
US10594945B2 (en) 2017-04-03 2020-03-17 Google Llc Generating dolly zoom effect using light field image data
US10742964B2 (en) 2017-04-04 2020-08-11 Nextvr Inc. Methods and apparatus for displaying images
WO2018208698A1 (en) * 2017-05-06 2018-11-15 Owlii Inc. Processing 3d video content
CN108882018B (zh) * 2017-05-09 2020-10-20 阿里巴巴(中国)有限公司 虚拟场景中的视频播放、数据提供方法、客户端及服务器
US10474227B2 (en) 2017-05-09 2019-11-12 Google Llc Generation of virtual reality with 6 degrees of freedom from limited viewer data
US11245849B2 (en) 2017-05-18 2022-02-08 Sony Corporation Information processing apparatus and information processing method
US10354399B2 (en) 2017-05-25 2019-07-16 Google Llc Multi-view back-projection to a light-field
JP2018205988A (ja) * 2017-06-01 2018-12-27 株式会社リコー 画像処理装置、画像処理方法及びプログラム
WO2018227098A1 (en) * 2017-06-09 2018-12-13 Vid Scale, Inc. External camera assisted virtual reality
JP6721631B2 (ja) * 2017-07-07 2020-07-15 ノキア テクノロジーズ オーユー ビデオの符号化・復号の方法、装置、およびコンピュータプログラムプロダクト
US10965862B2 (en) 2018-01-18 2021-03-30 Google Llc Multi-camera navigation interface
US11050998B2 (en) 2018-01-18 2021-06-29 Eys3D Microelectronics, Co. System of camera calibration
US10735709B2 (en) 2018-04-04 2020-08-04 Nextvr Inc. Methods and apparatus for capturing, processing and/or communicating images
US11232532B2 (en) * 2018-05-30 2022-01-25 Sony Interactive Entertainment LLC Multi-server cloud virtual reality (VR) streaming
WO2019245302A1 (en) * 2018-06-22 2019-12-26 Lg Electronics Inc. Method for transmitting 360-degree video, method for providing a user interface for 360-degree video, apparatus for transmitting 360-degree video, and apparatus for providing a user interface for 360-degree video
GB2582251B (en) * 2019-01-31 2023-04-19 Wacey Adam Volumetric communication system
US11050938B2 (en) 2019-07-03 2021-06-29 Gopro, Inc. Apparatus and methods for pre-processing and stabilization of captured image data
CN111629242B (zh) * 2020-05-27 2022-04-08 腾讯科技(深圳)有限公司 一种图像渲染方法、装置、系统、设备及存储介质
US11734789B2 (en) 2020-06-02 2023-08-22 Immersive Tech, Inc. Systems and methods for image distortion correction
EP4246966A3 (en) * 2020-06-09 2024-02-21 Apple Inc. Lenticular image generation
EP4322525A4 (en) * 2021-07-22 2024-09-18 Samsung Electronics Co Ltd ELECTRONIC DEVICE FOR PROVIDING AUGMENTED REALITY OR VIRTUAL REALITY, AND METHOD OF OPERATING ELECTRONIC DEVICE
WO2023084335A1 (en) * 2021-11-09 2023-05-19 Alcon Inc. Stereoscopic imaging apparatus with multiple fixed magnification levels
US20230252714A1 (en) * 2022-02-10 2023-08-10 Disney Enterprises, Inc. Shape and appearance reconstruction with deep geometric refinement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007295559A (ja) * 2006-04-06 2007-11-08 British Broadcasting Corp <Bbc> ビデオ処理および表示
JP2011061511A (ja) * 2009-09-10 2011-03-24 Dainippon Printing Co Ltd 魚眼監視システム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2267656A3 (en) 1998-07-31 2012-09-26 Panasonic Corporation Image displaying apparatus und image displaying method
US6788333B1 (en) * 2000-07-07 2004-09-07 Microsoft Corporation Panoramic video
JP2002203254A (ja) 2000-08-30 2002-07-19 Usc Corp 曲面像変換方法及びこの曲面像変換方法を記録した記録媒体
US8401336B2 (en) * 2001-05-04 2013-03-19 Legend3D, Inc. System and method for rapid image sequence depth enhancement with augmented computer-generated elements
JP4077755B2 (ja) 2003-04-07 2008-04-23 本田技研工業株式会社 位置検出方法、その装置及びそのプログラム、並びに、較正情報生成方法
US20100002070A1 (en) * 2004-04-30 2010-01-07 Grandeye Ltd. Method and System of Simultaneously Displaying Multiple Views for Video Surveillance
JP4095491B2 (ja) 2003-05-19 2008-06-04 本田技研工業株式会社 距離測定装置、距離測定方法、及び距離測定プログラム
US20050185711A1 (en) * 2004-02-20 2005-08-25 Hanspeter Pfister 3D television system and method
US20120182403A1 (en) * 2004-09-30 2012-07-19 Eric Belk Lange Stereoscopic imaging
WO2006062325A1 (en) 2004-12-06 2006-06-15 Electronics And Telecommunications Research Institute Apparatus for correcting image distortion of stereo-camera and method thereof
EP2033164B1 (en) * 2006-06-23 2015-10-07 Imax Corporation Methods and systems for converting 2d motion pictures for stereoscopic 3d exhibition
JP4858263B2 (ja) 2007-03-28 2012-01-18 株式会社日立製作所 3次元計測装置
JP2009139246A (ja) 2007-12-07 2009-06-25 Honda Motor Co Ltd 画像処理装置、画像処理方法、画像処理プログラムおよび位置検出装置並びにそれを備えた移動体
US8564644B2 (en) * 2008-01-18 2013-10-22 Sony Corporation Method and apparatus for displaying and editing 3D imagery
EP2502222B1 (en) * 2009-11-18 2018-08-29 Thomson Licensing Methods and systems for three dimensional content delivery with flexible disparity selection
US9973742B2 (en) * 2010-09-17 2018-05-15 Adobe Systems Incorporated Methods and apparatus for preparation of casual stereoscopic video
US9122053B2 (en) * 2010-10-15 2015-09-01 Microsoft Technology Licensing, Llc Realistic occlusion for a head mounted augmented reality display
US20120154519A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Chassis assembly for 360-degree stereoscopic video capture
US8432435B2 (en) * 2011-08-10 2013-04-30 Seiko Epson Corporation Ray image modeling for fast catadioptric light field rendering
JP5790345B2 (ja) 2011-09-07 2015-10-07 株式会社リコー 画像処理装置、画像処理方法、プログラムおよび画像処理システム
US9113043B1 (en) * 2011-10-24 2015-08-18 Disney Enterprises, Inc. Multi-perspective stereoscopy from light fields
US8736603B2 (en) * 2011-11-02 2014-05-27 Visual Technology Services Limited Compression of texture rendered wire mesh models
JP2013211672A (ja) * 2012-03-30 2013-10-10 Namco Bandai Games Inc 曲面投影立体視装置
JP6044328B2 (ja) 2012-12-26 2016-12-14 株式会社リコー 画像処理システム、画像処理方法およびプログラム
US9536345B2 (en) 2012-12-26 2017-01-03 Intel Corporation Apparatus for enhancement of 3-D images using depth mapping and light source synthesis
JP5843751B2 (ja) * 2012-12-27 2016-01-13 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
US9451162B2 (en) * 2013-08-21 2016-09-20 Jaunt Inc. Camera array including camera modules
US9396585B2 (en) * 2013-12-31 2016-07-19 Nvidia Corporation Generating indirection maps for texture space effects

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007295559A (ja) * 2006-04-06 2007-11-08 British Broadcasting Corp <Bbc> ビデオ処理および表示
JP2011061511A (ja) * 2009-09-10 2011-03-24 Dainippon Printing Co Ltd 魚眼監視システム

Also Published As

Publication number Publication date
KR20220127939A (ko) 2022-09-20
EP3189657A1 (en) 2017-07-12
US10397543B2 (en) 2019-08-27
US12081723B2 (en) 2024-09-03
US11122251B2 (en) 2021-09-14
EP4113991A1 (en) 2023-01-04
JP2017535985A (ja) 2017-11-30
CN106605407A (zh) 2017-04-26
KR20170047385A (ko) 2017-05-04
US20160065946A1 (en) 2016-03-03
US20160065947A1 (en) 2016-03-03
CA2961175A1 (en) 2016-03-10
EP3189657B1 (en) 2022-11-23
EP3189657A4 (en) 2018-04-11
WO2016037014A1 (en) 2016-03-10
US20210409672A1 (en) 2021-12-30
KR102632421B1 (ko) 2024-02-01

Similar Documents

Publication Publication Date Title
KR102441437B1 (ko) 콘텐트를 캡처, 스트리밍, 및/또는 재생하기 위한 방법들 및 장치
US11871085B2 (en) Methods and apparatus for delivering content and/or playing back content
US11381801B2 (en) Methods and apparatus for receiving and/or using reduced resolution images
KR102611448B1 (ko) 콘텐트를 전달 및/또는 콘텐트를 재생하기 위한 방법들 및 장치
KR20170008725A (ko) 콘텐트를 스트리밍하기 위한 방법들 및 장치
JP2018507650A (ja) コンテンツの生成、送信、および/または、再生をサポートするための方法および装置
US11252391B2 (en) Methods and apparatus for packing images into a frame and/or including additional content or graphics
WO2018165223A1 (en) Methods and apparatus for packing images into a frame and/or including additional content or graphics

Legal Events

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