KR20190084987A - 구형 이미지 콘텐츠를 위한 배향된 이미지 스티칭 - Google Patents

구형 이미지 콘텐츠를 위한 배향된 이미지 스티칭 Download PDF

Info

Publication number
KR20190084987A
KR20190084987A KR1020197014330A KR20197014330A KR20190084987A KR 20190084987 A KR20190084987 A KR 20190084987A KR 1020197014330 A KR1020197014330 A KR 1020197014330A KR 20197014330 A KR20197014330 A KR 20197014330A KR 20190084987 A KR20190084987 A KR 20190084987A
Authority
KR
South Korea
Prior art keywords
images
orientation
display
gpu
camera device
Prior art date
Application number
KR1020197014330A
Other languages
English (en)
Inventor
비잔 포루탄푸어
피 훙 레 응우옌
닝 비
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20190084987A publication Critical patent/KR20190084987A/ko

Links

Images

Classifications

    • G06T3/047
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/0012Context preserving transformation, e.g. by using an importance map
    • G06T3/0018Fisheye, wide-angle transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • H04N5/23238
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

이미지 콘텐츠를 생성하는 것에 관련된 기법들이 설명된다. 그래픽 프로세싱 유닛 (GPU) 은 제 1 로케이션에서의 제 1 카메라 다비이스로부터 생성된 이미지들의 제 1 세트를 수신하는 것으로서, 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 수신하고, 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하고, 제 2 상이한 로케이션에서의 제 2 상이한 카메라 디바이스로부터 생성된 이미지들의 제 2 상이한 세트를 수신하는 것으로서, 제 2 카메라 디바이스는 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 이미지들의 제 2 상이한 세트를 수신하고, 그리고 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성된다.

Description

구형 이미지 콘텐츠를 위한 배향된 이미지 스티칭
본 개시는 구형 이미지 렌더링에 관한 것이다.
360-도 비디오를 위해 이미지들을 렌더링하는 것과 같은 이미지 렌더링의 소정의 타입들에서, 뷰어는 이미지 콘텐츠의 다중 상이한 뷰들을 인지할 수 있다. 예를 들어, 뷰어가 디스플레이로 이미지 콘텐츠를 뷰잉하고 있는 동안에, 뷰어는 콘텐츠를 뷰잉할 상이한 뷰를 선택할 수 있다.
일반적으로, 본 개시는 공통 배향 기준 (orientation reference) 으로 2 개의 상이한 카메라 디바이스들로부터의 이미지 콘텐츠를 제시하기 위한 기법들을 설명한다. 2 개의 카메라 디바이스들은 각각 개별의 어안 (fisheye) 카메라들을 포함할 수도 있고, 각각의 카메라 디바이스는 개별의 360-도 이미지 콘텐츠를 캡처한다. 뷰어는 카메라 디바이스들 중 하나의 카메라 디바이스에 의해 캡처된 이미지 콘텐츠를 뷰잉하고, 그 후 (예를 들어, 뷰어 또는 이미지 콘텐츠를 출력하는 서버에 의해 선택될 때) 다른 카메라 디바이스에 의해 캡처된 이미지 콘텐츠로 스위칭할 수도 있다. 상이한 카메라 디바이스들로부터의 제시된 이미지 콘텐츠가 공통 배향 기준으로 배향되지 않으면, 하나의 카메라 디바이스로부터의 이미지 콘텐츠로부터 다른 카메라의 이미지 콘텐츠로의 트랜지션이 뷰어에 의한 재배향 (reorientation) (예를 들어, 뷰어가 뷰잉하고 있는 곳의 시프트) 을 요구할 수도 있다. 공통 배향 기준으로 배향된 상이한 카메라 디바이스들로부터의 이미지 콘텐츠를 제시함으로써, 상이한 카메라 디바이스들로부터의 이미지 콘텐츠로부터의 트랜지션은 뷰어에 의한 재배향을 필요로 하지 않을 수도 있다. 따라서, 하나의 카메라로부터 캡처된 이미지 콘텐츠를 제시하는데 있어서 다른 카메라에 의해 캡처된 이미지 콘텐츠로의 트랜지션은 비교적 매끄러워, 뷰어가 재배향하는 예들과 비교하여 더 몰입적이고 개선된 경험을 제공할 수도 있다.
하나의 예에서, 본 개시는 이미지 콘텐츠를 생성하기 위한 방법을 설명하고, 방법은, 제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 수신하는 단계로서, 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 수신하는 단계, 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계, 제 2 상이한 로케이션에서의 제 2 상이한 카메라 디바이스로부터 생성된 이미지들의 제 2 상이한 세트를 수신하는 단계로서, 제 2 카메라 디바이스는 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 이미지들의 제 2 상이한 세트를 수신하는 단계, 및 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계를 포함한다.
다른 예에서, 본 개시는 이미지 콘텐츠를 생성하기 위한 디바이스를 설명하고, 디바이스는, 메모리 디바이스로서, 제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 저장하는 것으로서, 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 저장하고, 그리고 제 2 상이한 로케이션에서의 제 2 상이한 카메라 디바이스로부터 생성된 이미지들의 제 2 상이한 세트를 저장하는 것으로서, 제 2 카메라 디바이스는 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 이미지들의 제 2 상이한 세트를 저장하도록 구성된, 상기 메모리 디바이스, 및 고정-기능 (fixed-function) 또는 프로그래밍가능 회로부 중 적어도 하나를 포함하는 그래픽 프로세싱 유닛 (GPU) 으로서, 그 GPU 는, 메모리 디바이스로부터 이미지들의 제 1 세트를 수신하고, 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하고, 메모리 디바이스로부터 이미지들의 제 2 세트를 수신하고, 그리고 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성된, 상기 GPU 를 포함한다.
다른 예에서, 본 개시는 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체를 설명하고, 그 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금, 제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 수신하게 하는 것으로서, 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 수신하게 하고, 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하게 하고, 제 2 상이한 로케이션에서의 제 2 상이한 카메라 디바이스로부터 생성된 이미지들의 제 2 상이한 세트를 수신하게 하는 것으로서, 제 2 카메라 디바이스는 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 이미지들의 제 2 상이한 세트를 수신하게 하고, 그리고 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하게 한다.
다른 예에서, 본 개시는 이미지 콘텐츠를 생성하기 위한 디바이스를 설명하고, 디바이스는, 제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 수신하기 위한 수단으로서, 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 수신하기 위한 수단, 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하기 위한 수단, 제 2 상이한 로케이션에서의 제 2 상이한 카메라 디바이스로부터 생성된 이미지들의 제 2 상이한 세트를 수신하기 위한 수단으로서, 제 2 카메라 디바이스는 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 이미지들의 제 2 상이한 세트를 수신하기 위한 수단, 및 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위한 수단을 포함한다.
하나 이상의 예들의 상세들은 첨부 도면들 및 이하의 설명에서 제시된다. 다른 피처들, 목적들, 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시에서 설명된 하나 이상의 예의 기법들에 따른 멀티-카메라 이미지 캡처 시스템을 예시하는 블록 다이어그램이다.
도 2a 및 도 2b 는 도 1 의 멀티-카메라 이미지 캡처 시스템을 예시하는 개념적 다이어그램들이다.
도 3 은 본 개시에서 설명된 하나 이상의 예의 기법들에 따른 360-도 비디오 또는 이미지를 캡처하기 위한 일 예의 카메라 디바이스를 예시하는 블록 다이어그램이다.
도 4 의 (A) 및 (B) 는 도 3 의 디바이스로부터 캡처된 이미지들을 예시하는 회화적 (pictorial) 다이어그램들이다.
도 5a 는 배향 기준으로의 배향 없이 생성된 이미지를 예시하는 회화적 다이어그램이다.
도 5b 는 배향 기준으로의 배향으로 생성된 이미지를 예시하는 회화적 다이어그램이다.
도 6 의 (A) 및 (B) 는 도 1 의 디바이스로부터 캡처된 이미지들을 예시하는 회화적 다이어그램들이다.
도 6 의 (C) 는 배향 기준으로의 배향으로 배향된 도 6 의 (A) 및 (B) 의 이미지들로부터 생성된 이미지를 예시하는 회화적 다이어그램이다.
도 7 은 본 개시에서 설명된 예의 기법들 중 하나 이상을 수행하도록 구성된 디바이스의 블록 다이어그램이다.
도 8 은 도 7 의 디바이스의 CPU, GPU 및 메모리를 더 상세히 예시하는 블록 다이어그램이다.
도 9 는 본 개시에서 설명된 하나 이상의 예의 기법들에 따른 일 예의 동작 방법을 예시하는 플로우차트이다.
본 개시에서 설명된 예의 기법들은 360-도 비디오 또는 이미지를 제시하는 것과 관련된다. 360-도 비디오 또는 이미지에서, 비디오/이미지 콘텐츠는 뷰어 주위에 개념적 구를 형성한다. 뷰어는 다양한 관점들에서 (예를 들어, 앞에서, 뒤에서, 위에서, 그리고 사방에서) 이미지 콘텐츠를 뷰잉할 수 있고, 이러한 이미지 콘텐츠는 360-도 이미지로 불린다.
본 개시에서, 360-도의 이미지 콘텐츠 또는 뷰어블 콘텐츠를 포함하는 이미지는, 그 이미지가 모든 관점들을 위한 콘텐츠 (예를 들어, 위, 아래, 뒤, 앞, 및 각각의 측면들의 콘텐츠) 를 포함한다는 것을 의미한다. 예를 들어, 종래의 이미지들은 180-도보다 약간 작은 이미지 콘텐츠를 캡처하고, 카메라의 측면들의 콘텐츠를 캡처하지 않는다.
일반적으로, 360-도 비디오는 360-도 이미지들의 시퀀스로 형성된다. 이에 따라, 본 개시에서 설명된 예의 기법들은 360-도 이미지들을 생성하는 것에 대하여 설명된다. 그 후, 360-도 비디오 콘텐츠의 경우, 이들 360-도 이미지들이 순차적으로 디스플레이될 수 있다. 일부 예들에서, 사용자는 360-도 이미지만을 (예를 들어, 사용자의 전체 360-도 주위의 스냅샷으로서) 촬영하길 원할 수도 있고, 본 개시에서 설명된 기법들은 이러한 예의 경우들에도 물론 적용가능하다.
기법들은 캡처된 비디오 콘텐츠, 가상 현실에, 및 일반적으로는 비디오 및 이미지 디스플레이에 적용가능할 수도 있다. 기법들은 모바일 디바이스들에서 사용될 수도 있지만, 그 기법들은 모바일 애플리케이션들에 한정되는 것으로 간주되어서는 안 된다. 일반적으로, 기법들은 가상 현실 애플리케이션들, 비디오 게임 애플리케이션들, 또는 360-도 구형 비디오/이미지 환경이 요망되는 다른 애플리케이션들을 위한 것일 수도 있다.
360-도 이미지 콘텐츠는, (예를 들어, 이미지 콘텐츠의 구의 부분들을 캡처하도록 포지셔닝된) 복수의 어안 렌즈들을 포함하는 카메라 디바이스로 캡처될 수도 있다. 어안 렌즈들은 360-도 비디오의 전체 구의 개별의 부분들을 캡처한다. 캡처된 부분들에 의해 생성된 이미지들은 원형 이미지들일 수도 있다 (예를 들어, 하나의 이미지 프레임은 개별의 어안 렌즈들로부터의 복수의 원형 이미지들을 포함한다). 이미지들을 캡처한 카메라 디바이스, 이미지들이 디스플레이될 프로세싱 디바이스, 또는 일부 다른 디바이스는 원형 이미지들을, 그래픽 프로세싱 및/또는 송신에 보다 적합한 이미지 타입으로 컨버팅한다. 그래픽 프로세싱 및/또는 송신에 보다 적합한 이미지 타입은 프로젝션 이미지로 지칭되며, 그 예들은 등정방형 프로젝션 (equirectangular projection), 큐빅 프로젝션 (cubic projection), 원통형 프로젝션 (cylindrical projection), 구형 프로젝션 (spherical projection), peirce-quincuncial 프로젝션 등을 포함한다.
상기 설명된 바와 같이, 카메라 디바이스는 복수의 어안 렌즈들을 포함한다. 일부 예의 카메라 디바이스들은 2 개의 어안 렌즈들을 포함하지만, 예의 기법들은 2 개의 어안 렌즈들에 한정되지 않는다. 하나의 예의 카메라 디바이스는 16 개의 렌즈들 (예를 들어, 3D VR 콘텐츠를 촬영하기 위한 16-카메라 어레이) 을 포함할 수도 있다. 다른 예의 카메라 디바이스는 각각 195-도 시각 (angle of view) 을 가진 8 개의 렌즈들을 포함할 수도 있다 (예를 들어, 각각의 렌즈는 360 도 중 195 도의 이미지 콘텐츠를 캡처한다). 다른 예의 카메라 디바이스들은 3 개 또는 4 개의 렌즈들을 포함한다. 일부 예들은 360-도의 이미지 콘텐츠를 캡처하는 360-도 렌즈를 포함할 수도 있다.
본 개시에서 설명된 예의 기법들은 일반적으로 2 개의 어안 렌즈들이 360-도 이미지/비디오를 캡처하는 것에 대하여 설명된다. 그러나, 예의 기법들은 그렇게 한정되지는 않는다. 예의 기법들은 단일의 360-도 렌즈, 렌즈들이 어안 렌즈들은 아니지만 복수의 렌즈들 (예를 들어, 2 개 이상), 및 복수의 어안 렌즈들을 포함하는 예의 카메라 디바이스들에 적용가능할 수도 있다.
예를 들어, 더 상세히 설명된 바와 같이, 예의 기법들은 하나의 카메라 디바이스에 의해 캡처된 콘텐츠를 뷰잉하는데 있어서 다른 카메라 디바이스에 의해 캡처된 디바이스로의 심리스 트랜지션을 생성하기 위한 방식들을 설명한다. 이러한 기법들은 상기 설명된 것들과 같은 매우 다양한 상이한 카메라 타입들에 적용가능할 수도 있다. 예의 기법들은 2 개의 어안 렌즈들에 대하여 설명되지만, 예의 기법들은 그렇게 한정되지는 않고, 360-도 이미지들/비디오들을 캡처하기 위해 사용되는 다양한 카메라 타입들에 적용가능하다.
멀티-카메라 환경에서, 개별의 이미지 콘텐츠를 각각 캡처하는 상이한 로케이션들에 로케이트된 복수의 이들 예의 카메라 디바이스들이 존재할 수도 있다. 뷰어는 카메라 디바이스들 중 하나의 카메라 디바이스에 의해 캡처된 이미지 콘텐츠를 뷰잉하고 있고, 그 후 카메라 디바이스들 중 다른 카메라 디바이스로부터의 이미지 콘텐츠를 뷰잉하는 것으로 스위칭할 수도 있다. 일부 경우들에서, 하나의 카메라 디바이스로부터의 이미지 콘텐츠에서 다른 카메라 디바이스로의 스위치가 뷰어의 신경에 거슬릴 수도 있다.
프로젝션 이미지를 생성하는데 있어서, 프로젝션 이미지를 생성하는 디바이스 (예를 들어, 카메라 디바이스, 서버, 또는 프로세싱 디바이스) 는 카메라 디바이스들의 각각에 대해 상이할 수도 있는 임의 배향으로 프로젝션 이미지를 배향시킬 수도 있다. 예를 들어, 일부 경우들에서, 제 1 카메라 디바이스로부터의 이미지들의 제 1 세트의 배향, 및 제 2 카메라 디바이스로부터의 이미지들의 제 2 세트의 배향은 상이할 수도 있다 (예를 들어, 이미지들의 제 1 세트에서의 이미지들을 생성하기 위해 사용되는 카메라 디바이스의 렌즈들은 제 1 방향 또는 배향으로 있을 수도 있고, 이미지들의 제 2 세트에서의 이미지들을 생성하기 위해 사용되는 카메라 디바이스의 렌즈들은 제 2 방향 또는 배향으로 있을 수도 있다). 따라서, 하나의 카메라 디바이스로부터 캡처된 이미지들로부터 다른 카메라 디바이스로 스위칭할 때, 뷰어가 방향을 잃게 될 수도 있을 가능성이 있다 (예를 들어, 관심 영역이 더 이상 뷰어의 바로 앞이 아니라, 일부 다른 각도로 벗어나 있다). 뷰어가 재배향 (예를 들어, 머리 또는 몸을 물리적으로 이동시키거나, 디스플레이를 재배향시키거나, 또는 디스플레이되는 이미지를 재배향시키기 위해 인터페이스를 제어) 한 후, 그러면 이미지들은 정확하게 나타날 것이지만, 이러한 재배향을 필요로 하는 것이 뷰어에게 달갑지 않을 수도 있다.
본 개시에서 설명된 예의 기법들에서, 상이한 카메라 디바이스들로부터의 이미지들을 디스플레이하는 디바이스는, 상이한 카메라 디바이스들로부터의 이미지들이 상이한 기준들을 따라 동일한 배향을 갖도록 이미지들을 제시할 수도 있다. 일 예로서, 각각의 카메라 디바이스는 지리적 방향 (예를 들어, 북, 서, 동, 또는 남) 의 지시를 표시하는 센서 (예를 들어, 자력계 센서 또는 나침반) 를 포함할 수도 있다. 이 예에서, 지리적 방향은 배향 기준이다. 프로젝션 이미지를 생성하는데 있어서, 프로젝션 이미지를 생성하는 디바이스는 지리적 방향이 설정 점에 있도록 프로젝션 이미지를 배향시키기 위해 지리적 방향 정보를 활용할 수도 있다. 예를 들어, 프로젝션 이미지를 생성하는 디바이스는 카메라 디바이스에 대하여 북쪽 방향이 이미지의 상부-중심에 있도록 이미지를 배향시킬 수도 있다. 프로젝션 이미지들을 생성하는 디바이스가, 개별의 카메라 디바이스들에 대하여 북쪽 방향이 이미지의 상부-중심에 있도록 이미지들이 항상 배향됨을 보장하면, 하나의 카메라로부터의 이미지들을 다른 카메라로 스위칭하는 것이 뷰어의 신경에 거슬리지 않거나 또는 뷰어에게 재배향할 것을 요구하지 않을 수도 있다.
카메라 디바이스들의 각각이 프로젝션 이미지들을 생성하면, 카메라 디바이스들의 각각은 그들 자신의 프로젝션 이미지들을 공통 배향 기준으로 배향시키도록 구성될 수도 있다. 가능하지만, 카메라 디바이스들이 공통 배향 기준으로 이미지들을 배향시키기 위해 반드시 서로 통신할 필요는 없지만, 각각의 카메라 디바이스들에 공통인 특정한 배향 기준으로 프로젝션 이미지들을 배향시키도록 각각 구성될 수도 있다.
360-도 이미지들을 제시하는 서버 또는 프로세싱 디바이스가 프로젝션 이미지들을 생성하면, 서버 또는 프로세싱 디바이스는 이미지들의 개별의 세트들을 위해 개별의 카메라 디바이스들로부터 배향 기준을 나타내는 정보를 수신할 수도 있다. 예를 들어, 서버 또는 프로세싱 디바이스는 제 1 카메라 디바이스로부터의 이미지들의 제 1 세트에 대한 북쪽의 방향을 표시하는 정보를 제 1 카메라 디바이스로부터 수신하고, 제 2 카메라 디바이스로부터의 이미지들의 제 2 세트에 대한 북쪽의 방향을 표시하는 정보를 제 2 카메라 디바이스로부터 수신하며 등등일 수도 있다. 서버 또는 프로세싱 디바이스는 그 후, 이미지들이 동일한 배향 기준으로 배향되도록 (예를 들어, 북쪽이 픽처들의 각각의 세트들에서 동일한 로케이션에 있음) 배향 기준을 나타내는 정보에 기초하여 이미지들의 제 1 및 제 2 세트들을 조정 (예를 들어, 시프트, 회전, 전단, 또는 왜곡) 할 수도 있다.
상기 예의 기법들에서, 서버 또는 프로세싱 디바이스는 하나의 평면 (예를 들어, 북쪽의 방향) 에 공통인 상이한 카메라 디바이스들로부터의 이미지들을 배향시킬 수도 있다. 예를 들어, 서버 또는 프로세싱 디바이스는 공통 방위각으로 상이한 카메라 디바이스들로부터의 이미지들을 배향시킨다. 일부 예들에서, 서버 또는 프로세싱 디바이스는 다른 공통 평면들로 상이한 카메라 디바이스들로부터의 이미지들을 배향시킬 수도 있다. 예를 들어, 서버 또는 프로세싱 디바이스는 공통 기울기 (tilt) (예를 들어, 공통 고도 기준) 로 상이한 카메라 디바이스들로부터의 이미지들을 배향시킬 수도 있다.
공통 기울기로 이미지들을 배향시키는 것은, 상이한 카메라 디바이스들로 트랜지션할 때 뷰어가 그/그녀의 눈을 위 또는 아래로 틸팅할 필요가 없게 할 수도 있다. 예를 들어, 2 개의 프로젝션 이미지들은 북쪽이 상부 방향에 있도록 자연스럽게 형성되는 것이 가능할 수도 있다. 그러나, 이미지들의 기울기는 상이할 수도 있다. 일 예로서, 다른 카메라 디바이스로부터의 이미지들과 비교하여 하나의 카메라 디바이스로부터의 이미지들에 있어서, 이미지들의 상부는 더 가깝게 보이고 이미지들의 하부는 더 멀리 보이거나, 또는 그 반대일 수도 있다. 공통 기울기 (예를 들어, 고도) 로 배향함으로써, 뷰어는 하나의 카메라 디바이스로부터 다른 카메라 디바이스로의 트랜지션 동안 기울기를 재배향할 필요가 없을 수도 있다.
일부 예들에서, 서버 또는 프로세싱 디바이스는 상이한 카메라 디바이스들로부터의 이미지들을 광학 축을 따라 공통 회전 각도로 배향시킬 수도 있다. 예를 들어, 각각의 카메라 디바이스에 있어서 각각의 렌즈에 대해 광학 축이 존재하며, 여기서 광학 축은 렌즈의 중심으로부터 외측으로 연장되는 가상 축이다. 카메라 디바이스들의 상이한 배향들 때문에, 광학 렌즈들의 각각의 광학 축은 공통 기준으로 배향되지 않을 수도 있다.
광학 축을 따라 상이한 회전 각도들을 가지면, 다른 카메라 디바이스로부터의 이미지들과 비교하여 하나의 카메라 디바이스로부터의 이미지들에 있어서, 이미지들의 우측 단부가 더 가깝게 보이고 이미지들의 좌측 단부가 더 멀리 보이게 될 수도 있거나, 또는 그 반대일 수도 있다. 공통 회전 각도로 배향시킴으로써, 뷰어는 하나의 카메라 디바이스로부터의 렌더링된 이미지들로부터 다른 카메라 디바이스로의 트랜지션에 있어서 이러한 변화들을 경험하지 않을 수도 있다.
이렇게 하여, 서버 또는 프로세싱 디바이스는 방위각 (예를 들어, 방향), 고도 (예를 들어, 기울기), 및 회전에 기초하여 공통 기준으로 이미지들을 배향시킬 수도 있다. 서버 또는 프로세싱 디바이스는 방향, 기울기, 및 회전 중 하나 이상에 기초하여 이미지들을 배향시킬 수도 있는 것으로 이해되어야 한다. 예를 들어, 서버 또는 프로세싱 디바이스는 제 1 배향 기준 (예를 들어, 방향, 기울기, 또는 회전 중 하나), 제 1 배향 기준 및 제 2 배향 기준 (예를 들어, 방향, 기울기, 또는 회전 중 다른 하나), 또는 제 1 배향 기준, 제 2 배향 기준, 및 제 3 배향 기준 (예를 들어, 방향, 기울기, 및 회전) 에 기초하여 이미지들을 배향시킬 수도 있다.
상기 예들에서, 예의 배향 기준들은 카메라 디바이스들의 배향들의 글로벌 위치들에 기초하였다. 일부 예들에서, 상기 배향 기준들에 더하여 또는 그 대신에, 서버 또는 프로세싱 디바이스는 뷰어의 시선 및/또는 장면 콘텐츠에 기초하여 상이한 카메라들로부터의 이미지들을 배향시킨다. 예를 들어, 배향 기준은 뷰어의 머리 위치, 시선 (예를 들어, 눈 위치), 또는 장면에 기초하여 선택될 수도 있다. 일 예로서, 공통 기준은 하나의 카메라 디바이스에 의해 캡처된 이미지들 및 뷰어가 트랜지션하고 있는 다른 카메라 디바이스에 의해 캡처된 이미지들에서의 이미지 콘텐츠에서 공통 부분들일 수도 있다. 다른 예로서, 공통 기준은 (예를 들어, 뷰어의 머리 위치 또는 시선에 기초하여) 뷰어가 보고 있는 영역들일 수도 있다. 이러한 예들에서, 서버 또는 프로세싱 디바이스는 뷰어가 동일한 시선 또는 머리 위치를 유지할 수 있도록 상이한 카메라들로부터의 이미지들을 배향시킬 수도 있다. 예를 들어, 서버 또는 프로세싱 디바이스는 뷰어의 머리 위치 또는 시선에 기초하여 배향 기준을 선택할 수도 있다.
도 1 은 본 개시에서 설명된 하나 이상의 예의 기법들에 따른 멀티-카메라 이미지 캡처 시스템을 예시하는 블록 다이어그램이다. 예를 들어, 도 1 은 복수의 카메라 디바이스들 (12A 내지 12N) (집합적으로 "카메라 디바이스들 (12)" 로 지칭됨) 을 포함하는 멀티-카메라 이미지 캡처 시스템 (10) 을 예시한다. 도 1 에 예시된 예는 레코딩을 협력하기 위한 다중 카메라 리그 (rig) 들이 유용한 경우들에 적용가능할 수도 있다.
카메라 디바이스들 (12) 은 설정 시에 상이한 로케이션들에 배치된 독립형 카메라 디바이스들일 수도 있다. 예를 들어, 결혼식 동안, 카메라 디바이스들 (12) 은 결혼식 내내 삼각대 상에서 다양한 로케이션들에 배치될 수도 있다. 다른 예로서, 하우스 투어를 위한 상이한 이미지들을 캡처하기 위해, 카메라 디바이스들 (12) 은 하우스 전체에 걸쳐 상이한 로케이션들에 배치될 수도 있다. 카메라 디바이스들 (12) 은 반드시 여전히 설정 중인 상태로 유지될 필요는 없고, 물론 이동가능할 수 있다.
카메라 디바이스들 (12) 은 뷰어 경험을 향상시키기 위해 360-도 구형 환경을 레코딩하도록 구성될 수도 있다. 카메라 렌즈 앞에 있는 것만의 이미지를 캡처하는 독립형 카메라들과는 달리, 카메라 디바이스들 (12) 은 모든 방향들에서의 이미지 콘텐츠를 포함하는 훨씬 더 큰 영역을 캡처하도록 구성될 수도 있다. 예시된 바와 같이, 카메라 디바이스들 (12) 의 각각은 각각 이미지 콘텐츠 (14A 내지 14N) (집합적으로 이미지 콘텐츠들 (14)) 를 캡처한다. 예시되지는 않았지만, 이미지 콘텐츠들 (14) 사이에 오버랩이 존재할 수도 있다.
카메라 디바이스들 (12) 의 각각은 그들 개별의 캡처된 이미지 콘텐츠들 (14) 을 서버 (16) 에 송신할 수도 있다. 서버 (16) 는 카메라 디바이스들 (12) 에 의해 캡처된 이미지 콘텐츠들 (14) 을 저장할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 프로세싱 디바이스 (18) 는 스트리밍 또는 다운로드를 통해 서버 (16) 로부터 저장된 캡처된 이미지 콘텐츠 (14) 에 액세스할 수도 있다. 서버 (16) 는 이미지 콘텐츠들 (14) 을 프로세싱 디바이스 (18) 에 저장 및 송신 가능한 임의의 타입의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예를 들어, 웹사이트용), FTP 서버, NAS (network attached storage) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다.
카메라 디바이스들 (12) 및 프로세싱 디바이스 (18) 는 다양한 방식들로 서버 (16) 에 데이터를 송신하고 서버 (16) 로부터 데이터를 수신할 수도 있다. 하나의 예로서, 카메라 디바이스들 (12) 은 각각 개별의 이미지 콘텐츠들 (14) 을 캡처하고 이미지 콘텐츠들 (14) 을 로컬로 저장할 수도 있다. 이벤트의 종결 시에, 기술자 (예를 들어, 결혼 사진 회사로부터의 기술자 또는 하우스 판매 대리인으로부터의 기술자) 는 로컬 컴퓨팅 디바이스 (예시되지 않음) 로의 유선 접속을 통해 이미지 콘텐츠들 (14) 을 다운로드하고, 무선 채널 (예를 들어, Wi-Fi 접속) 또는 유선 접속 (예를 들어, DSL, 케이블 모뎀 등), 또는 양자의 조합을 통해 이미지 콘텐츠들 (14) 을 업로드할 수도 있다. 다른 예로서, 카메라 디바이스들 (12) 은 각각 무선으로 또는 유선 접속을 통해 이미지 콘텐츠들 (14) 을 서버 (16) 에 송신할 수도 있다. 프로세싱 디바이스 (18) 는 무선 또는 유선 접속을 통해 서버 (16) 로부터 이미지 콘텐츠들 (14) 을 다운로드할 수도 있다. 프로세싱 디바이스 (18) 및 카메라 디바이스들 (12) 은 인터넷 접속을 포함한 임의의 데이터 접속을 통해 서버 (16) 와 통신할 수도 있다.
일부 예들에서, 서버 (16) 는 실시간으로 캡처된 이미지 콘텐츠들 (14) 을 수신할 수도 있고, 프로세싱 디바이스 (18) 는 이를 테면 스포츠 경기 또는 콘서트를 위해 실시간으로 캡처된 이미지 콘텐츠들 (14) 을 다운로드할 수도 있다. 다른 치환들 및 조합들이 가능하며, 본 개시에서 설명된 기법들은 이들 특정 예들 중 임의의 것으로 한정되는 것으로 간주되어서는 안 된다.
서버 (16) 는 다양한 포맷들로 캡처된 이미지 콘텐츠들 (14) 을 수신할 수도 있다. 하나의 예로서, 서버 (16) 는 그들 캡처된 이미지 포맷으로 캡처된 이미지 콘텐츠들 (14) 을 수신할 수도 있다. 이하에 더 상세히 설명된 바와 같이, 카메라 디바이스들 (12) 은 360-도 이미지 콘텐츠들 (14) 을 캡처하는 렌즈들을 포함하며, 360-도 이미지 콘텐츠들 (14) 을 캡처하는데 사용되는 렌즈들의 하나의 예는 어안 렌즈들이지만, 다른 렌즈 타입들이 가능하다. 설명의 용이함을 위해, 예들은 어안 렌즈들에 대하여 설명된다.
캡처된 이미지 포맷은 어안 렌즈들에 의해 캡처된 이미지 콘텐츠들 (14) 로부터 발생하는 원형 이미지들일 수도 있고, 어안 렌즈들이 사용되지 않는 다른 예들의 경우, 이미지 포맷은 원형 이미지들과는 상이할 수도 있다. 일부 예들에서, 서버 (16) 는 캡처된 이미지들이 추가 프로세싱되는 포맷으로 캡처된 이미지 콘텐츠들 (14) 을 수신할 수도 있다. 예를 들어, 카메라 디바이스들 (12) 은 프로젝션 이미지를 생성하기 위해 이미지들을 프로세싱하는 그래픽 프로세싱 유닛 (GPU) 을 포함할 수도 있고, 여기서 프로젝션 이미지는, 후에 2 차원 또는 3 차원 구조에 맵핑되는 단일의 이미지로의 이미지들의 블렌딩의 일부 형태이다. 블렌딩은 일반적으로 오버랩하는 이미지들의 컬러 값들을 혼합하는 것을 지칭한다. 카메라 디바이스들 (12) 은 개별의 프로젝션 이미지들을 서버 (16) 에 송신할 수도 있고, 여기서 카메라 디바이스들 (12) 중 개별의 카메라 디바이스들로부터의 각각의 프로젝션 이미지는 개별의 이미지 콘텐츠들 (14) 을 포함한다.
프로세싱 디바이스 (18) 는 서버 (16) 가 카메라 디바이스들 (12) 로부터 수신된 이미지들을 저장하는 예들에서 서버 (16) 로부터 이미지들을 수신하고, 및/또는 서버 (16) 가 프로젝션 이미지들을 저장하는 예들에서 서버 (16) 로부터 프로젝션 이미지들을 수신한다. 프로세싱 디바이스 (18) 는 수신된 이미지들 (예를 들어, 원형 이미지들 및/또는 프로젝션 이미지들) 에 대해 추가적인 프로세싱을 수행하고, 결과의 이미지들을 뷰어에게의 디스플레이를 위해 제시할 수도 있다.
일부 예들에서, 프로세싱 디바이스 (18) 는 카메라 디바이스들 (12) 중 하나의 카메라 디바이스 (예를 들어, 카메라 디바이스 (12A)) 로부터 이미지들의 세트를 제시하고 있을 수도 있다. 예를 들어, 카메라 디바이스 (12A) 는 집 안의 복도에 배치되는 것을 가정한다. 이 예에서, 뷰어는 이미지 콘텐츠 (14A) 모두를 뷰잉 가능하다. 예를 들어, 뷰어는, 뷰어가 뷰잉 각도를 변화시키고 임의의 뷰잉 각도로부터 이미지 콘텐츠 (14) 를 뷰잉할 수 있도록 프로세싱 디바이스 (18) 와 상호작용할 수도 있다.
뷰어는 그 후, 뷰어가 이미지 콘텐츠 (14A) 를 지나 이미지 콘텐츠들 (14B 내지 14N) 중 하나를 향하여 이동하고 있음을 뷰어가 인지하도록 프로세싱 디바이스 (18) 와 상호작용할 수도 있다. 예를 들어, 카메라 디바이스 (12A) 가 복도에 있으면, 카메라 디바이스 (12B) 는 침실의 문간에 있을 수도 있다. 이 예에서, 뷰어는, 뷰어가 복도를 지나 문간을 향해 걸어가고 있음을 인지하도록 프로세싱 디바이스 (18) 와 상호작용할 수도 있다. 뷰어가 카메라 디바이스 (12B) 에 가까워짐에 따라, 프로세싱 디바이스 (18) 는 이미지 콘텐츠 (14A) 를 제시하는 것으로부터 이미지 콘텐츠 (14B) 로 스위칭할 수도 있다.
예를 들어, 서버 (16) 는 카메라 디바이스들 (12) 에 의해 캡처된 설정 내의 뷰어의 인지된 로케이션에 기초하여 이미지 콘텐츠 (14A) 에 대한 이미지들 또는 프로젝션 이미지들을 프로세싱 디바이스 (18) 에 업로드할 수도 있다. 예를 들어, 프로세싱 디바이스 (18) 는 뷰어의 상대적 로케이션을 표시하는 정보를 서버 (16) 로 출력할 수도 있다. 상대적 로케이션에 기초하여, 서버 (16) 는 이미지 콘텐츠들 (14) 중 하나에 대한 이미지들을 프로세싱 디바이스 (18) 로 출력할 수도 있다. 다른 예로서, 서버 (16) 는 복수의 이미지 콘텐츠들 (14) (가능하게는 이미지 콘텐츠들 (14) 모두를 포함함) 을 브로드캐스트하고 개별의 이미지 콘텐츠들 (14) 에 의해 커버된 영역들의 정보를 포함할 수도 있다. 이러한 예들에서, 프로세싱 디바이스 (18) 는 이미지 콘텐츠들 (14) 중 어느 이미지 콘텐츠를 뷰어에게 제시할지를 결정할 수도 있다. 서버 (16) 및/또는 프로세싱 디바이스 (18) 가 이미지 콘텐츠들 (14) 중 어느 이미지 콘텐츠를 송신/제시할지를 결정하기 위한 다른 방식들이 가능할 수도 있다.
일부 경우들에서, 카메라 디바이스들 (12) 의 각각의 하나는 카메라 디바이스들 (12) 에 걸쳐서 공통 배향 기준이 존재함 없이 개별의 프로젝션 이미지들을 생성할 수도 있다. 예를 들어, 카메라 디바이스들 (12) 의 각각의 하나는 그 렌즈들의 각도들에 기초하여 그 프로젝션 이미지를 생성할 수도 있다. 카메라 디바이스들 (12) 의 각각의 렌즈들이 상이한 각도들에 있을 수도 있기 때문에, 프로젝션 이미지들에는 어떤 공통 배향 기준도 없다. 예를 들어, 카메라 디바이스들 (12) 의 렌즈들은 상이한 방향들을 향하고 있거나 또는 상이한 배향들을 가질 수도 있고, 따라서, 카메라 디바이스들 (12) 의 각각의 렌즈들은 상이한 각도들에 있을 수도 있다.
카메라 디바이스들 (12) 이 이미지들을 송신하고, 서버 (16) 가 프로젝션 이미지들을 생성하는 예들에서, 서버 (16) 는, 프로젝션 이미지들에 어떤 공통 배향 기준도 없도록, 렌즈들의 각도들에 기초하여 프로젝션 이미지들을 유사하게 생성할 수도 있다. 유사하게, 프로세싱 디바이스 (18) 가 프로젝션 이미지들 (예를 들어, 어안 렌즈들에 대한 원형 이미지들) 로 아직 컨버팅되지 않은 이미지들을 수신하는 예들에서, 프로세싱 디바이스 (18) 는, 프로젝션 이미지들에 어떤 공통 배향 기준도 없도록, (예를 들어, 고정 기준에 대한) 렌즈들의 각도들에 기초하여 프로젝션 이미지들을 생성할 수도 있다.
상이한 프로젝션 이미지들에 공통 배향 기준이 없는 것으로 인한 하나의 가능한 이슈는, 카메라 디바이스들 (12) 중 하나의 카메라 디바이스로부터의 이미지 콘텐츠들 (14) 중 하나로부터 카메라 디바이스들 (12) 중 다른 하나의 카메라 디바이스로부터의 이미지 콘텐츠들 (14) 중 다른 하나로의 스위칭이 사용자에게 불쾌한 경험일 수 있다는 것이다. 예를 들어, 어느 디바이스가 프로젝션 이미지들을 생성했는지에 상관없이, 프로세싱 디바이스 (18) 는 디스플레이를 위해 이미지 콘텐츠들 (14) 중 하나 (예를 들어, 이미지 콘텐츠 (14A)) 로부터의 프로젝션 이미지들을 렌더링한다. 이미지 콘텐츠 (14A) 를 제시하는 동안, 뷰어는, 콘텐츠가 정확하게 제시되도록 (예를 들어, 관심 영역에 초점을 맞추어, 보통 콘텐츠를 어떻게 인지하는지), 프로세싱 디바이스 (18) 로 이미지 콘텐츠 (14A) 를 초기에 배향시킬 수도 있다. 그 후, 프로세싱 디바이스 (18) 가 이미지 콘텐츠 (14A) 로부터 이미지 콘텐츠 (14B) 로 스위칭할 때, 이미지 콘텐츠 (14B) 는 정확하게 나타나지 않고, 방향을 잃은 것으로 나타날 수도 있다. 이것은, 프로세싱 디바이스 (18) 가 이미지 콘텐츠들 (14) 중 하나로부터 이미지 콘텐츠들 (14) 중 다른 하나로 스위칭할 때 배향의 시프트를 초래하는 이미지 콘텐츠 (14A) 및 이미지 콘텐츠 (14B) 에 대한 프로젝션 이미지들에 어떤 공통 배향도 없기 때문이다.
예를 들어, 카메라 디바이스들 (12) 은 360-도 시야를 수평으로 (및 일부 경우들에 있어서 수직으로) 캡처 및 레코딩하고, "방향을 레코딩하는 것" 의 의미는 없다. 이것은 뷰어가 그 스스로를 또는 그녀 스스로를 360-도 뷰잉 구에서 배향시키는 것을 초래한다.
본 개시는 동일한 배향 기준으로 배향된 상이한 로케이션들에 로케이트된 상이한 카메라 디바이스들 (12) 로부터의 이미지를 제시하기 위한 예의 기법들을 설명한다. 이 공통 배향으로, 프로세싱 디바이스 (18) 가 이미지 콘텐츠들 (14) 중 하나를 제시하는 것으로부터 이미지 콘텐츠들 (14) 중 다른 하나로 스위칭할 때, 뷰어는 재배향할 필요가 없을 수도 있다.
프로젝션 이미지들을 배향시키기 위한 하나의 예의 방식은 카메라 디바이스들 (12) 이 모든 카메라 디바이스들 (12) 에 대해 동일한 배향 기준에 기초하여 그들 프로젝션 이미지들을 각각 배향시키는 것이다. 예를 들어, 지리적 방향 (예를 들어, 북, 서, 동, 남) 은 그들 특정 렌즈 각도들에 상관없이 (예를 들어, 렌즈가 포인팅하는 방법에 상관없이) 모든 카메라 디바이스들 (12) 에 대해 동일할 것이다. 일부 예들에서, 카메라 디바이스들 (12) 은, 지리적 방향이 프로젝션 이미지들의 각각에서 동일한 좌표 점에 로케이트되도록 그들 개별의 프로젝션 이미지들을 배향시키도록 구성될 수도 있다. 예를 들어, 카메라 디바이스들 (12) 의 각각의 하나는, 진북 (예를 들어, 북극) 이 동일한 좌표 점에 로케이트되도록 (예를 들어, 진북에 로케이트되는 콘텐츠는 프로젝션 이미지의 상부-중심에 로케이트된다) 그들 개별의 프로젝션 이미지들을 생성할 수도 있다.
카메라 디바이스들 (12) 의 각각의 하나는 360-도의 이미지 콘텐츠들 (14) 을 캡처하고 있음을 거듭 강조해야 한다. 따라서, 원형 이미지들의 각각에는, 카메라 디바이스들 (12) 에 대하여 정북으로 로케이트되는 콘텐츠가 있다. 달리 말하면, 카메라 디바이스 (12A) 를 잡고 있는 개인은 스냅샷을 촬영할 수도 있다. 스냅샷은 전체 360-도의 뷰어블 영역의 것이기 때문에, 진북으로부터의 콘텐츠가 캡처된다는 보장이 있다. 따라서, 원형 이미지들 중 적어도 하나에는, 진북으로부터의 콘텐츠가 있다. 원형 이미지들에 기초하여 프로젝션 이미지를 생성하는데 있어서, 카메라 디바이스들 (12) 의 각각의 하나는, 프로젝션 이미지에서, 진북에 대한 콘텐츠가 프로젝션 이미지의 상부-중심에 로케이트되도록 프로젝션 이미지를 생성할 수도 있다. 이 예에서, 카메라 디바이스들 (12) 로부터의 프로젝션 이미지들은 프로젝션 이미지를 진북으로 센터링하고 있는 배향 기준으로 각각 배향된다. 진북과 같은 방향으로 프로젝션 이미지를 센터링하는 것은 하나의 예이며, 기법들이 그렇게 한정되지는 않는다.
카메라 디바이스들 (12) 의 각각의 하나가 그러한 공통 배향 기준을 가진 프로젝션 이미지들을 생성하게 하기 위해, 카메라 디바이스들 (12) 은 배향 기준의 정보를 생성하기 위한 센서들을 포함할 수도 있다. 예를 들어, 카메라 디바이스들 (12) 은 지리적 방향을 표시할 수 있는 자력계 센서들 (또한 나침반들로 지칭됨) 을 포함할 수도 있다. 카메라 디바이스들 (12) 은, 특정한 지리적 방향이 프로젝션 이미지들의 각각에서의 동일한 좌표 점에서 정렬되도록 프로젝션 이미지들을 정렬하기 위해 특정한 지리적 방향의 지시를 활용할 수도 있다. 그 후, 프로세싱 디바이스 (18) 가 디스플레이를 위해 프로젝션 이미지들을 렌더링하는 경우, 이미지 콘텐츠들 (14) 을 스위칭할 때 뷰어가 재배향할 필요가 없을 수도 있다.
나침반 및 특정한 지리적 방향을 사용하는 것은 하나의 예이며, 한정하는 것으로 간주되어서는 안 된다. 일부 예들에서, 카메라 디바이스들 (12) 은 공통 배향 기준을 제공하기 위한 방식으로서 관성-측정 유닛 (IMU) 및/또는 자이로스코프를 포함할 수도 있다. 일부 예들에서, 카메라 디바이스들 (12) 은 나침반, IMU, 및/또는 자이로스코프를 사용할 수도 있다. 예를 들어, 카메라 디바이스들 (12) 은 특정한 지리적 방향으로 배향시키기 위해 나침반을 사용할 수도 있고, 다른 차원으로 배향을 제어 (예를 들어, 공통 배향 기준 등으로 기울기를 배향) 하기 위해 IMU 및/또는 자이로스코프를 사용할 수도 있다.
프로젝션 이미지들을 특정한 방향 (예를 들어, 여기서 북쪽은 각각의 이미지에서 상부-중심에 로케이트된다) 으로 배향시키는 것은 상이한 카메라 디바이스들 (12) 로부터의 이미지들을 공통 방위각 기준으로 배향시키는 일 예이다. 프로젝션 이미지들을 특정한 기울기로 배향시키는 것은 상이한 카메라 디바이스들 (12) 로부터의 이미지들을 공통 고도 기준으로 배향시키는 일 예이다. 이미지들을 배향시키는 다른 예들이 존재할 수도 있다.
하나의 예로서, 카메라 디바이스들 (12) 의 각각은, 카메라 디바이스들 (12) 의 렌즈들의 중심으로부터 외측으로 연장되는 가상 축인 광학 축과 연관된다. 카메라 디바이스들 (12) 의 포지셔닝 때문에, 카메라 디바이스들 (12) 로부터의 이미지들은 광학 축을 따라 공통 회전 각도로 배향되지 않을 수도 있다. 일부 예들에서, 카메라 디바이스들 (12) 은 하나 이상의 IMU들 및/또는 자이로스코프들을 포함할 수도 있다. IMU들 및/또는 자이로스코프들 중 하나는 기울기를 결정하기 위해 사용될 수도 있다. IMU들 및/또는 자이로스코프들 중 다른 하나는 회전 각도 (예를 들어, 개별의 카메라 디바이스들 (12) 이 광학 축들에 대하여 시프트되는 양) 를 결정하기 위해 사용될 수도 있다.
방향 기준, 기울기 기준, 또는 회전 각도 기준을 따라 프로젝션 이미지들을 배향시키는 것은 배향 기준들의 다양한 예들이다. 본 개시에서 설명된 기법들은 하나 이상의 이들 예의 배향 기준들 (예를 들어, 배향 기준, 배향 기준들 중 일부, 또는 모든 배향 기준들 중 하나) 에 대하여 프로젝션 이미지들을 배향시킬 수도 있다.
카메라 디바이스들 (12) 중 상이한 것들로부터의 프로젝션 이미지들을 카메라 디바이스들 (12) 의 방향 또는 배향에 기초하는 공통 배향 기준으로 배향시키는 것은 카메라 디바이스들 (12) 의 상이한 카메라 디바이스들로부터의 프로젝션 이미지들을 공통 배향으로 배향시키는 하나의 예이다. 그러나, 본 개시에서 설명된 예들은 뷰어의 시선 및/또는 머리 위치 및 장면 콘텐츠와 같은 컴퓨터 비전-기반 접근법들에 기초하여 배향 기준들과 같은 다른 타입들의 배향 기준들에 대해 적용가능할 수도 있다.
일 예로서, 뷰어는 카메라 디바이스들 (12) 중 제 1 카메라 디바이스 (예를 들어, 카메라 디바이스 (12A)) 로부터의 이미지들로부터 특정한 장면 콘텐츠 (예를 들어, 관심 영역) 를 뷰잉하고 있을 수도 있다. 카메라 디바이스들 (12) 중 다른 카메라 디바이스 (예를 들어, 카메라 디바이스 (12B)) 로부터의 이미지들에 있어서 장면 콘텐츠에 약간의 오버랩이 있을 수도 있다. 이러한 예들에서, 프로세싱 디바이스 (18) 는, 카메라 디바이스 (12A) 로부터의 이미지들과 카메라 디바이스 (12B) 로부터의 이미지들 양자 모두에 공통인 장면 콘텐츠가 실질적으로 동일한 로케이션에서 디스플레이되고 있도록 카메라 디바이스 (12B) 로부터의 이미지들을 렌더링할 수도 있다. 예를 들어, 프로세싱 디바이스 (18) 는, 공통 장면 콘텐츠가 카메라 디바이스 (12A) 로부터의 렌더링된 이미지들에서의 공통 장면 콘텐츠의 로케이션과 동일한 로케이션에서의 카메라 디바이스 (12B) 로부터의 렌더링된 이미지들에서 디스플레이되도록 카메라 디바이스 (12A) 로부터의 이미지들과 카메라 디바이스 (12B) 로부터의 이미지들 양자 모두에 공통인 장면 콘텐츠를 렌더링할 수도 있다.
예시로서, 카메라 디바이스들 (12) 이 홈 투어를 위한 홈에 배치되는 예에서, 카메라 디바이스 (12A) 는 복도에 배치될 수도 있고 카메라 디바이스 (12B) 는 침실에 배치될 수도 있다. 뷰어가 복도를 지나 침실로 들어가는 문간을 향하여 걸어가고 있도록 뷰어가 프로세싱 디바이스 (18) 와 상호작용할 때, 프로세싱 디바이스 (18) 는 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠를 디스플레이하고 있을 수도 있다. 그 후, 뷰어가 침실로 들어가기 위해 상호작용할 때, 프로세싱 디바이스 (18) 는 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠를 디스플레이하기 시작할 수도 있다. 이 예에서, 뷰어가 문간을 향할 때 초기에 뷰잉하는 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠는 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠 (예를 들어, 카메라 디바이스 (12B) 는 또한 침실의 복도에서 이미지 콘텐츠를 캡처할 수도 있다) 와 오버랩할 수도 있다. 프로세싱 디바이스 (18) 는 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠로부터 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠로의 트랜지션의 인스턴스에서, 이 예에서 공통 장면 콘텐츠인 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠의 렌더링된 이미지들의 것으로서 공통 배향으로 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠를 렌더링할 수도 있다. 공통 장면 콘텐츠로 배향함으로써, 뷰어는 보다 매끄러운 트랜지션을 인지할 수도 있다.
다른 예로서, 뷰어는 카메라 디바이스들 (12) 중 제 1 카메라 디바이스 (예를 들어, 카메라 디바이스 (12A)) 에 의해 캡처된 이미지 콘텐츠를 뷰잉할 때 그/그녀의 시선 또는 머리를 특정한 각도에 포커싱함으로써 특정한 장면 콘텐츠 (예를 들어, 관심 영역) 를 뷰잉하고 있을 수도 있다. 카메라 디바이스들 (12A) 에 의해 캡처된 이미지 콘텐츠를 카메라 디바이스들 (12) 중 제 2 카메라 디바이스 (예를 들어, 카메라 디바이스 (12B)) 로 트랜지션할 때, 프로세싱 디바이스 (18) 는 뷰어가 카메라 디바이스 (12A) 에 의해 캡처된 이미지들을 뷰잉하고 있었을 때 뷰어 시선 또는 머리의 위치에 기초하여 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠를 렌더링할 수도 있다. 예를 들어, 프로세싱 디바이스 (18) 는, 뷰어가 그/그녀의 시선 또는 머리 위치를 변화시킬 필요가 없도록 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠를 렌더링할 수도 있다. 예를 들어, 뷰어 시선 또는 머리 위치에 기초하는, 뷰어에 대한 관심 영역인 이미지 콘텐츠는, 카메라 디바이스들 (12) 중 제 1 카메라 디바이스에 의해 캡처된 이미지 콘텐츠로부터 카메라 디바이스들 (12) 중 제 2 카메라 디바이스로 트랜지션할 때 동일한 로케이션에 보존된다. 이 예에서, 프로세싱 디바이스 (18) 는 뷰어의 결정된 시선 또는 머리 위치에 기초하여 배향 기준을 선택할 수도 있다.
상기 예들에서, 카메라 디바이스들 (12) 은 프로젝션 이미지들을 생성했다. 그러나, 기법들은 그렇게 한정되지는 않는다. 서버 (16), 프로세싱 디바이스 (18), 또는 일부 다른 디바이스가 프로젝션 이미지들을 생성하는 예들에서, 카메라 디바이스들 (12) 은 (IMU 또는 자이로스코프의 예에서) 특정한 디멘젼 및/또는 기울기 및/또는 회전 각도의 정렬을 표시하는 정보를 서버 (16), 프로세싱 디바이스 (18) 또는 이 다른 디바이스에, 원형 이미지들과 함께 송신할 수도 있다. 서버 (16), 프로세싱 디바이스 (18), 또는 가능하게는 이 다른 디바이스는 프로젝션 이미지들을 공통 배향 기준으로 배향시키기 위해 상기 설명된 예의 기법들을 수행할 수도 있다.
도 2a 및 도 2b 는 도 1 의 멀티-카메라 이미지 캡처 시스템을 예시하는 개념적 다이어그램들이다. 도 1 과 같이, 도 2a 및 도 2b 는 카메라 디바이스들 (12) 중 각각의 카메라 디바이스가 개별의 이미지 콘텐츠들 (14) 을 캡처하는 예들을 예시한다. 도 1 과 달리, 이미지 콘텐츠들 (14) 은 오버랩하는 것으로서 예시된다. 일 예로서, 이미지 콘텐츠 (14A, 14C, 및 14E) 는 오버랩한다.
도 2a 에서, 카메라 디바이스들 (12A) 은 상이한 배향들로 예시된다. 따라서, 카메라 디바이스들 (12) 중 하나의 카메라 디바이스로부터 생성된 이미지들을 뷰잉하는 것을 카메라 디바이스들 (12) 중 다른 카메라 디바이스로 스위칭하는 뷰어는, 뷰어가 스위칭하고 있는 카메라 디바이스들 (12) 중 그 하나의 카메라 디바이스에서의 배향으로 재배향할 필요가 있을 수도 있다.
도 2b 는 본 개시에서 설명된 기법들의 효과적인 결과의 개념적 예시를 제공한다. 도 2b 는 각각 동일한 배향을 갖는 카메라 디바이스들 (12) 을 예시하지만, 카메라 디바이스들 (12) 은 모두 동일한 방향으로 배향될 필요는 없는 것으로 이해되어야 한다. 오히려, 도 2b 는 본 개시에서 설명된 기법들이 구현될 때, 결과가 상이한 카메라 디바이스들 (12) 로부터의 캡처된 이미지들이 모두 공통 기준으로 배향되는 것일 수도 있음을 예시하고 있다.
예를 들어, 멀티-카메라 환경에서, 카메라 디바이스들 (12) 에 의해 생성된 이미지들은 카메라 디바이스들 (12) 의 그들의 물리적 배향에 의존할 수도 있다. 개별의 카메라 디바이스들 (12) 로부터의 이미지 콘텐츠들 (14) 을 트랜지션할 때, 뷰어는 방향을 잃는 효과를 경험할 수도 있다. 본 개시에서 설명된 기법들은 카메라 디바이스들 (12) 을 스위칭할 때 편안한 트랜지션이 존재하도록 360-도 이미지들을 생성하는 것을 초래할 수도 있다. 예를 들어, 그 결과는 도 2b 에 개념적으로 예시된 바와 같이 카메라 디바이스들 (12) 이 모두 공통 기준으로 배향된 경우와 유사할 수도 있다.
도 3 은 본 개시에서 설명된 하나 이상의 예의 기법들에 따른 360-도 비디오를 캡처하기 위한 예의 카메라 디바이스를 예시하는 블록 다이어그램이다. 예시된 바와 같이, 카메라 디바이스 (12A) 는 완전 360-도 비디오/이미지를 캡처하기 위해 카메라 디바이스 (12A) 의 대향 측들에 로케이트된 어안 렌즈 (20A) 및 어안 렌즈 (20B) 를 포함하는 비디오 캡처 디바이스이다. 어안 렌즈들 (20A 및 20B) 의 다른 배향들이 가능할 수도 있다. 예를 들어, 카메라 디바이스 (12A) 는 2 개 초과의 어안 렌즈들, 또는 단일의 360-도 렌즈를 포함할 수도 있다. 또한, 어안 렌즈들은 하나의 예로서만 제공될 뿐이며 다른 렌즈 타입들이 가능하다.
카메라 디바이스 (12A) 의 하나의 예는 16 개의 렌즈들 (예를 들어, 3D VR 콘텐츠를 촬영하기 위한 16-카메라 어레이) 을 포함할 수도 있다. 카메라 디바이스 (12A) 의 다른 예는, 195-도 시야를 각각 가진, 8 개의 렌즈들을 포함할 수도 있다 (예를 들어, 각각의 렌즈는 360 도 중 195 도의 이미지 콘텐츠를 캡처한다). 카메라 디바이스 (12A) 의 다른 예는 4 개 또는 3 개의 렌즈들을 포함한다. 일부 예들은 360-도의 이미지 콘텐츠를 캡처하는 360-도 렌즈를 포함할 수도 있다.
본 개시에서 설명된 예의 기법들은 일반적으로 카메라 디바이스들 (12A) 이 360-도 이미지/비디오를 캡처하는 2 개의 어안 렌즈들을 포함하는 것에 대하여 설명된다. 그러나, 예의 기법들은 그렇게 한정되지는 않는다. 예의 기법들은 단일의 360-도 렌즈들, 렌즈들이 어안 렌즈들은 아니지만 복수의 렌즈들 (예를 들어, 2 개 이상), 및 복수의 어안 렌즈들을 포함하는 카메라 디바이스 (12A) 의 예들에 적용가능할 수도 있다.
상기 설명된 바와 같이, 360-도 비디오 콘텐츠는 360-도 이미지들의 시퀀스 (예를 들어, 비디오의 프레임들) 로서 간주될 수도 있다. 본 개시에서 설명된 예의 기법들은 스틸 이미지들 (예를 들어, 360-도 스냅샷) 또는 비디오 (예를 들어, 360-도 비디오) 를 형성하는 이미지들의 목적들을 위해 사용될 수 있는 이미지들에 관련된 기법들을 설명한다.
사용자는 360-도 비디오/이미지를 캡처하기 위해 카메라 디바이스 (12A) 와 상호작용할 수도 있고, 여기서 어안 렌즈 (20A 및 20B) 의 각각의 어안 렌즈는 360-도 비디오/이미지의 부분을 캡처하고, 어안 렌즈 (20A 및 20B) 로부터의 2 개의 비디오/이미지 스트림들은 360-도 비디오/이미지를 생성하기 위해 함께 블렌딩된다.
사용자가 카메라 디바이스 (12A) 와 상호작용하는 다양한 방식들이 존재할 수도 있다. 하나의 예로서, 사용자는 카메라 디바이스 (12A) 상에 로케이트된 푸시 버튼을 가진 카메라 디바이스 (12A) 와 상호작용할 수도 있다. 다른 예로서, 사용자는 디스플레이된 인터페이스 (예를 들어, 그래픽 사용자 인터페이스 (GUI)) 를 통해 카메라 디바이스 (12A) 와 상호작용할 수도 있다.
일부 예들에서, 카메라 디바이스 (12A) 는 디스플레이를 제공하지 않을 수도 있다. 오히려, 카메라 디바이스 (12A) 는, 후에 디스플레이되는 캡처된 이미지를 다른 디바이스 (예를 들어, 프로세싱 디바이스 (18)) 로 출력한다.
예시된 바와 같이, 카메라 디바이스 (12A) 는 카메라 프로세서 (22), 그래픽 프로세싱 유닛 (GPU) (24), 하나 이상의 센서들 (26), 및 송신기 (28) 를 포함한다. 다양한 컴포넌트들이 별도의 컴포넌트들로서 예시되지만, 일부 예들에서 컴포넌트들은 시스템 온 칩 (SoC) 을 형성하기 위해 결합될 수도 있다. 일 예로서, 카메라 프로세서 (22) 및 GPU (24) 는 공통 집적 회로 (IC) 칩 상에, 또는 별도의 IC 칩들에 형성될 수도 있다. 다양한 다른 치환들 및 조합들이 가능하며, 기법들은 도 3 에 예시된 예에 한정되는 것으로 간주되어서는 안 된다. 카메라 프로세서 (22) 및 GPU (24) 는 하나 이상의 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 디지털 신호 프로세서들 (DSP들), 또는 다른 등가의 통합된 또는 별개의 로직 회로부에서와 같이 고정-기능 및/또는 프로그래밍가능 회로부로서 형성될 수도 있다.
카메라 디바이스 (12A) 는 도 3 에 예시되지만, 카메라 디바이스들 (12B 내지 12N) 은 유사한 컴포넌트들을 포함할 수도 있다. 또한, 카메라 디바이스 (12A) 는 반드시 모든 예들에서 GPU (24) 를 포함할 필요는 없다. 예를 들어, 카메라 디바이스 (12A) 가 어안 렌즈들 (20A 및 20B) 에 의해 캡처된 원형 이미지들을 송신하는 예들에서, 카메라 디바이스 (12A) 는 GPU (24) 를 포함하지 않을 수도 있다. 그러나, 카메라 디바이스 (12A) 가 원형 이미지들을 송신하는 예들에서도 카메라 디바이스 (12A) 가 GPU (24) 를 포함하는 것이 가능할 수도 있다.
송신기 (28) 는 카메라 디바이스 (12A) 에 의해 캡처된 이미지 데이터를 송신하도록 구성될 수도 있다. 예를 들어, 송신기 (28) 는 원형 이미지들 및/또는 프로젝션 이미지들을 서버 (16) 에, 다른 컴퓨팅 디바이스에, 또는 프로세싱 디바이스 (18) 에, 무선으로 또는 유선 접속을 통해 송신하기 위한 회로부를 포함할 수도 있다.
카메라 프로세서 (22) 는 렌즈 (20A 및 20B) 의 개별의 픽셀들로부터 센서 신호들로서 전류들을 수신하고 전류들을 프로세싱하여 픽셀 데이터, 예를 들어, 개별의 어안 이미지들 (예를 들어, 도 4 의 (A) 및 (B) 에 예시된 것들과 같은 원형 이미지들) 의 R, G, B 데이터, 루마 및 크로마 데이터 등을 생성하도록 구성된다. 하나의 카메라 프로세서 (22) 가 설명되지만, 일부 예들에서, 복수의 카메라 프로세서들 (예를 들어, 렌즈 (20A) 를 위한 하나 그리고 렌즈 (20B) 를 위한 하나) 이 존재할 수도 있다.
일부 예들에서, 카메라 프로세서 (22) 는 단일-입력-다중-데이터 (single-input-multiple-data; SIMD) 아키텍처로서 구성될 수도 있다. 카메라 프로세서 (22) 는 렌즈 (20A 및 20B) 의 각각 상에서 픽셀들의 각각으로부터 수신된 전류에 대해 동일한 동작들을 수행할 수도 있다. SIMD 아키텍처의 각각의 레인은 이미지 파이프라인을 포함할 수도 있다. 이미지 파이프라인은 픽셀들의 출력을 프로세싱하기 위한 하드와이어 회로부 및/또는 프로그래밍가능한 회로부를 포함한다.
예를 들어, 카메라 프로세서 (22) 의 각각의 이미지 파이프라인은 전류를 전압으로 컨버팅하기 위한 개별의 트랜스-임피던스 증폭기들 (TIA들) 및 아날로그 전압 출력을 디지털 값으로 컨버팅하는 개별의 아날로그-디지털 컨버터들 (ADC들) 을 포함할 수도 있다. 각각의 픽셀에 의해 출력된 전류는 적색, 녹색, 또는 청색 컴포넌트의 강도를 표시한다.
아날로그 전류 출력들을 디지털 값들로 컨버팅하는 것에 더하여, 카메라 프로세서 (22) 는 최종 이미지의 품질을 증가시키기 위해 일부 추가적인 포스트-프로세싱을 수행할 수도 있다. 예를 들어, 카메라 프로세서 (22) 는 이웃하는 이미지 픽셀들의 컬러 및 밝기 데이터를 평가하고 이미지 픽셀의 컬러 및 밝기를 업데이트하기 위해 디모자이킹을 수행할 수도 있다. 카메라 프로세서 (22) 는 또한, 추가적인 예들로서, 노이즈 감소 및 이미지 샤프닝을 수행할 수도 있다.
카메라 프로세서 (22) 는 GPU (24) 에 대한 결과의 이미지들 (예를 들어, 이미지 픽셀들의 각각에 대한 픽셀 값들) 을 프로세서로 출력한다. 예를 들어, GPU (24) 는 프로젝션 이미지를 생성하기 위해 픽셀 값들을 블렌딩할 수도 있다. 설명의 용이함을 위해, 예들은 GPU (24) 가 동작들을 수행하는 것에 대하여 설명된다. 그러나, 프로세싱 디바이스 (18), 서버 (16), 또는 일부 다른 디바이스 상의 카메라 프로세서 (22) 또는 GPU 는 캡처된 이미지들을 블렌딩하도록 구성될 수도 있다.
도 4 의 (A) 및 (B) 는 도 3 의 디바이스로부터 캡처된 이미지를 예시하는 회화적 다이어그램들이다. 예시된 바와 같이, 렌즈들 (20A 및 20B) 에 의해 캡처된 2 개의 이미지들의 출력은 원형 이미지들 (예를 들어, 둥근 이미지들) 이다. 예를 들어, 도 4 의 (A) 는 렌즈 (20A) 에 의해 캡처된 이미지를 표현하고, 도 4 의 (B) 는 렌즈 (20B) 에 의해 캡처된 이미지를 표현한다. 카메라 프로세서 (22) 는 렌즈 (20A 및 20B) 에 의해 캡처된 이미지 콘텐츠를 수신하고 이미지 콘텐츠를 프로세싱하여 도 4 의 (A) 및 (B) 를 생성한다. 일부 예들에서, 도 4 의 (A) 및 (B) 는 공통 이미지 프레임의 일부일 수도 있다.
예시된 바와 같이, 도 4 의 (A) 및 (B) 는 버블-형으로 나타나는 이미지 콘텐츠를 예시하는 원형 이미지들이다. 2 개의 원형 이미지들이 함께 스티칭되면, 결과의 이미지 콘텐츠는 전체 구의 이미지 콘텐츠 (예를 들어, 360-도의 뷰어블 콘텐츠) 에 대한 것일 것이다.
다시 도 3 을 참조하면, GPU (24) 는 카메라 프로세서 (22) 에 의해 생성된 원형 이미지들로부터 프로젝션 이미지들을 생성하도록 구성될 수도 있다. 프로젝션 이미지들의 예들은 등정방형, 큐빅, 원통형, 구형, peirce-quincuncial 등을 포함한다. 프로젝션 이미지들을 생성하기 위해, GPU (24) 는 각각의 원형 이미지 (예를 들어, 도 4 의 (A) 및 (B) 에 예시된 이미지들의 각각의 하나) 를 프로젝션 (예를 들어, 등정방형 프로젝션, 큐빅 프로젝션, 원통형 프로젝션, 구형 프로젝션, 또는 peirce-quincuncial 프로젝션) 에 텍스처 맵핑할 수도 있다.
예를 들어, 등정방형 프로젝션의 경우, 2-차원 직사각형 구조가 존재한다. GPU (24) 는 원형 이미지로부터 하나의 픽셀을 취하고 그 픽셀에 대한 픽셀 값들을 직사각형 구조 상의 로케이션에 맵핑한다. GPU (24) 는 원형 이미지에서 각각의 픽셀에 대해 이들 단계들을 반복하고, 텍스처 맵핑으로 지칭된 프로세스에서, 그 픽셀을 직사각형 구조에 맵핑한다. 원형 이미지는 컬러 텍스처인 것으로 간주되고, 원형 이미지의 픽셀들은 텍스처 맵핑에서 텍셀들로 지칭된다.
제 1 원형 이미지의, 제 1 직사각형 구조에 대한 텍스처 맵핑의 결과는 제 1 중간 이미지이다. GPU (24) 는 이 프로세서를, 그러나 제 2 중간 이미지를 생성하기 위해 제 2 원형 이미지에 대하여, 반복할 수도 있다 (예를 들어, 제 2 원형 이미지를 직사각형 구조에 텍스처 맵핑). GPU (24) 는 그 후 프로젝션 이미지를 생성하기 위해 2 개의 중간 이미지들을 함께 스티칭할 수도 있다. 일 예로서, GPU (24) 의 블렌더 회로는 제 1 중간 이미지의 하부 경계 상의 픽셀들의 픽셀 값들을 제 2 중간 이미지의 상부 경계 상의 픽셀들과 블렌딩하여, 등정방형 이미지를 초래할 수도 있다.
GPU (24) 는 렌즈들 (20A 및 20B) 에 의해 캡처된 복수의 원형 이미지들에 대해 이들 동작들을 반복하여 이미지들의 세트 (예를 들어, 등정방형 이미지들의 세트) 를 생성할 수도 있다. 이 예에서, 등정방형 이미지들의 세트는 이미지 콘텐츠 (14A) 의 콘텐츠를 포함한다.
peirce-quincuncial 의 경우, GPU (24) 는 유사한 동작들을 수행할 수도 있다. 예를 들어, peirce-quincuncial 의 경우, GPU (24) 가 원형 이미지들을 텍스처 맵핑하는 2-차원 직사각형 구조가 또한 존재할 수도 있다. 그러나, GPU (24) 가 peirce-quincuncial 이미지들에 대한 원형 이미지의 픽셀을 맵핑할 2-차원 구조 상의 로케이션은 GPU (24) 가 등정방형 이미지들에 대한 원형 이미지의 픽셀을 맵핑할 2-차원 구조의 로케이션과는 상이하다. 큐빅, 원통형, 및 구형 프로젝션들의 경우, GPU (24) 는 유사한 동작들을 수행하지만, 3-차원 구조 (예를 들어, 큐브, 원통, 및 구) 에 텍스처 맵핑할 수도 있다.
상기 설명된 바와 같이, 하나의 가능한 이슈는, 카메라 디바이스들 (12) 중 상이한 카메라 디바이스들로부터의 프로젝션 이미지들 (예를 들어, 등정방형 이미지들 또는 peirce-quincuncial 이미지들) 의 각각이 동일한 배향 기준 (예를 들어, 뷰어 시선/머리 또는 장면의 위치 또는 방위각, 진폭, 또는 회전 각도에 대한 위치) 으로 배향되지 않을 수도 있다는 것일 수도 있다. 그 후, 프로세싱 디바이스 (18) 가 이미지 콘텐츠들 (14) (예를 들어, 이미지 콘텐츠들 (14A 내지 14B)) 간에 스위칭할 때, 뷰어는 이미지 콘텐츠 (14B) 가, 이미지 콘텐츠 (14A) 가 어떻게 배향되었는지와 동일하게 배향되도록 재배향할 필요가 있을 수도 있다.
본 개시에서 설명된 예들에서, 카메라 디바이스 (12A) 는 공통 배향 기준으로 프로젝션 이미지들을 배향시키기 위해 하나 이상의 센서들 (26) (예를 들어, 자력계 센서, 관성-측정 유닛 (IMU), 또는 자이로스코프) 을 포함한다. 다른 카메라 디바이스들 (12) 은 유사한 하나 이상의 센서들 (26) 을 포함할 수도 있다.
일 예로서, GPU (24) 가 프로젝션 이미지를 생성한 후에, GPU (24) 는 특정한 지리적 방향의 정렬을 표시하는 정보를 수신할 수도 있다. GPU (24) 는 그 후 지리적 방향 정렬이 프로젝션 이미지 상의 특정한 좌표 점에 대한 것이도록 프로젝션 이미지를 조정할 수도 있다.
일반적으로, GPU (24) 는 특정한 지리적 방향으로의 정렬로 프로젝션 이미지를 조정하기 위해 프로젝션 이미지를 시프트, 회전, 전단, 또는 왜곡할 수도 있다. 예를 들어, 프로젝션 이미지를 90-도 회전시키기 위해, GPU (24) 는 프로젝션 이미지 상의 픽셀의 x-좌표 값을 조정된 프로젝션 이미지 상의 y-좌표로 설정하고, 프로젝션 이미지 상의 픽셀의 y-좌 표 값을 조정된 프로젝션 이미지 상의 x-좌표로 설정할 수도 있다.
다른 예로서, GPU (24) 는 다른 텍스처 맵핑 패스를 수행할 수도 있다. 이 텍스처 맵핑 패스에서, 프로젝션 이미지는 텍스처를 형성하고, GPU (24) 는 프로젝션 이미지로부터의 픽셀을 프로젝션 이미지와 유사한 형상을 갖는 구조에 텍스처 맵핑하지만, 상이한 로케이션들에서 이 구조에 텍스처 맵핑한다 (예를 들어, 45-도 회전되는 조정된 프로젝션 이미지를 생성하기 위해 이 구조로 45-도만큼 프로젝션 이미지의 각각의 픽셀을 시프트함).
프로젝션 이미지를 조정하기 위한 다른 방식들이 가능하며 상기 기법들은 한정하는 것으로 간주되어서는 안 된다. 예를 들어, 프로젝션 이미지를 생성한 후 프로젝션 이미지를 조정하는 것보다는, GPU (24) 는 원형 이미지들의 픽셀들을, 프로젝션 이미지가 텍스처 맵핑의 일부로서 공통 배향 기준으로 배향 (예를 들어, 지리적 방향에 기초하여 정렬) 되도록 그들 최종의, 정확한 로케이션들에 텍스처 맵핑할 수도 있다.
등정방형 및 원통형 프로젝션들의 경우, GPU (24) 는 공통 배향 기준에 정렬하기 위하여 랩-어라운드로 픽셀들의 수평 시프트를 수행할 수도 있다. 구형 변환 및 회전이 또한 GPU (24) 에 의해 수행될 수도 있다. 큐빅 프로젝션의 경우, GPU (24) 는 큐브의 6 개의 변들을 렌더링하기 위해 하나 이상의 센서들 (26) 로부터의 정보를 사용할 수도 있다. peirce-quincuncial 의 경우, GPU (24) 는, 내용이 전부 참조로 통합되는, Puentes 등에 의한 "Elucidating Peirce Quincuncial Projection" 에서 설명된 Peirce/pierpont 공식에 하나 이상의 센서들 (26) 로부터의 정보를 통합할 수도 있다.
도 5a 는 배향 기준으로의 배향 없이 생성된 이미지를 예시하는 회화적 다이어그램이다. 예를 들어, 도 5a 는 GPU (24) 가 렌즈들 (20A 및 20B) 의 각도에 기초하여 등정방형 이미지를 생성한 예를 예시한다. 카메라 디바이스들 (12) 중 각각의 하나가 유사한 등정방형 이미지들을 생성한 경우, 이미지 콘텐츠들 (14) 중 하나의 이미지 콘텐츠로부터 이미지 콘텐츠들 (14) 중 다른 이미지 콘텐츠로의 스위칭은 디스플레이된 360-도 뷰 볼륨 내의 재배향을 뷰어에 요구하는 것을 초래할 수도 있다.
도 5b 는 배향 기준으로의 배향으로 생성된 이미지를 예시하는 회화적 다이어그램이다. 도 5b 에서, GPU (24) 는 도 5a 에 예시된 프로젝션 이미지를 조정하여, 조정된 프로젝션 이미지에서의 상부-중심 좌표는 북쪽으로 정렬된다. 하나 이상의 센서들 (26) 로부터의 측정치들에 기초하여, GPU (24) 는 도 5a 에 예시된 프로젝션 이미지에서 북쪽이 로케이트되는 곳을 결정할 수도 있다. GPU (24) 는 그 후 도 5a 의 프로젝션 이미지를 조정할 수도 있어, 북쪽은 도 5b 에 예시된 바와 같이 상부-중심 좌표에 정렬된다.
일부 예들에서, 지리적 방향에 정렬하는 것은 (예를 들어, 제 1 차원에서) 조정의 제 1 레벨을 제공할 수도 있다. GPU (24) 는 다른 조정된 프로젝션 이미지를 생성하기 위해 조정된 프로젝션 이미지에 대해 조정의 제 2 레벨을 수행할 수도 있다. 하나 이상의 센서들 (26) 은 자이로스코프 또는 IMU 를 포함할 수도 있다. GPU (24) 는 기울기를 공통 배향 기준으로 추가 조정하기 위해 자이로스코프 또는 IMU 로부터 생성된 정보를 사용할 수도 있다. 또한, 하나 이상의 센서들 (26) 이 공통 배향 기준으로 회전 각도를 추가 조정하는데 사용될 수도 있다.
도 6 의 (A) 및 (B) 는 도 1 의 디바이스로부터 캡처된 이미지들을 예시하는 회화적 다이어그램들이다. 예를 들어, 도 6 의 (A) 및 (B) 는 도 4 의 (A) 및 (B) 의 것들과 유사하지만, 콘텐츠는 상이하다. 도 6 의 (C) 는 배향 기준으로의 배향으로 배향된 도 6 의 (A) 및 (B) 의 이미지들로부터 생성된 이미지를 예시하는 회화적 다이어그램이다. 예를 들어, 도 6 의 (C) 는 peirce-quincuncial 프로젝션 이미지의 예를 예시한다. 이 예에서, 북쪽을 프로젝션 이미지의 상부-중심에 정렬하는 것보다는, GPU (24) 는 프로젝션 이미지의 상부-우측 코너에 북쪽을 정렬할 수도 있다.
상기 예들은 카메라 디바이스 (12A) 의 GPU (24) 가 예의 기법들을 수행하는 것에 대하여 설명되지만, 본 개시의 양태들은 그렇게 한정되지는 않는다. 예를 들어, 송신기 (28) 는 원형 이미지들 (예를 들어, 도 4 의 (A), 도 4 의 (B), 도 6 의 (A), 및 도 6 의 (B) 의 이미지들과 같은 이미지들) 에 대한 이미지 데이터를 서버 (16), 일부 다른 컴퓨팅 디바이스, 또는 프로세싱 디바이스 (18) 에 송신할 수도 있다. 추가로, 송신기 (28) 는 방향 정보, 기울기 정보, 및/또는 회전 각도 정보를 이들 다른 디바이스들로 출력할 수도 있다. 이들 다른 디바이스들 상의 GPU 는 그 후 도 5b 및 도 6 의 (C) 에 예시된 것들과 같이, 배향 기준으로 배향되는 프로젝션 이미지를 생성하고, 그 후 일 예로서, 그것을 다시 일부 다른 디바이스에 송신할 수도 있다.
도 7 은 본 개시에서 설명된 예의 기법들 중 하나 이상을 수행하도록 구성된 도 1 의 프로세싱 디바이스의 블록 다이어그램이다. 도 7 의 프로세싱 디바이스 (18) 의 예들은 개인 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 컴퓨터 워크스테이션, 비디오 게임 플랫폼 또는 콘솔, 무선 통신 디바이스 (이를 테면, 예를 들어, 모바일 전화기, 셀룰러 전화기, 위성 전화기, 및/또는 모바일 전화기 핸드셋), 랜드라인 전화기, 인터넷 전화기, 핸드헬드 디바이스, 이를 테면 휴대용 비디오 게임 디바이스 또는 개인 휴대 정보 단말기 (PDA), 개인 뮤직 플레이어, 비디오 플레이어, 디스플레이 디바이스, 카메라, 텔레비전, 텔레비전 셋-톱 박스, 서버, 중간 네트워크 디바이스, 메인프레임 컴퓨터 또는 그래픽 데이터를 프로세싱 및/또는 디스플레이하는 임의의 다른 타입의 디바이스를 포함한다.
도 7 의 예에 예시된 바와 같이, 프로세싱 디바이스 (18) 는 트랜시버 (30), 위치 추적기 (31), 중앙 프로세싱 유닛 (CPU) (32), 그래픽 프로세싱 유닛 (GPU) (34) 및 GPU (34) 의 로컬 메모리 (36), 사용자 인터페이스 (38), 시스템 메모리 (46) 에 대한 액세스를 제공하는 메모리 제어기 (40), 및 그래픽 데이터가 디스플레이 (44) 상에 디스플레이되게 하는 신호들을 출력하는 디스플레이 프로세서 (42) 를 포함한다.
또한, 다양한 컴포넌트들이 별도의 컴포넌트들로서 예시되지만, 일부 예들에서 그 컴포넌트들은 시스템 온 칩 (SoC) 을 형성하기 위해 결합될 수도 있다. 일 예로서, CPU (32), GPU (34), 및 디스플레이 프로세서 (42) 는 공통 집적 회로 (IC) 칩 상에 형성될 수도 있다. 일부 예들에서, CPU (32), GPU (34), 및 디스플레이 프로세서 (42) 중 하나 이상은 별도의 IC 칩들에 있을 수도 있다. 다양한 다른 치환들 및 조합들이 가능하며, 기법들은 도 7 에 예시된 예들에 한정되는 것으로 간주되어서는 안 된다.
(하나의 디바이스 상에 형성되든 상이한 디바이스들 상에 형성되든) 도 7 에 예시된 다양한 컴포넌트들은 하나 이상의 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 디지털 신호 프로세서들 (DSP들), 또는 다른 등가의 통합된 또는 별개의 로직 회로부에서와 같이, 고정-기능 및/또는 프로그래밍가능 회로부, 또는 이러한 회로부의 조합으로서 형성될 수도 있다. 로컬 메모리 (36) 의 예들은 하나 이상의 휘발성 또는 비휘발성 메모리들 또는 저장 디바이스들, 이를 테면, 예를 들어, 랜덤 액세스 메모리 (RAM), 정적 RAM (SRAM), 동적 RAM (DRAM), 소거가능한 프로그래밍가능 ROM (EPROM), 전기적으로 소거가능한 프로그래밍가능 ROM (EEPROM), 플래시 메모리, 자기 데이터 매체들 또는 광학 저장 매체들을 포함한다.
도 7 에 예시된 다양한 유닛들은 버스 (47) 를 사용하여 서로 통신한다. 버스 (47) 는 제 3 세대 버스 (예를 들어, HyperTransport 버스 또는 InfiniBand 버스), 제 2 세대 버스 (예를 들어, 어드밴스드 그래픽 포트 버스, 주변 컴포넌트 인터커넥트 (PCI) 익스프레스 버스, 또는 AXI (Advanced eXtensible Interface) 버스) 또는 다른 타입의 버스 또는 디바이스 인터커넥트와 같은 다양한 버스 구조들 중 임의의 것일 수도 있다. 도 7 에 도시된 상이한 컴포넌트들 간의 버스들 및 통신 인터페이스들의 특정 구성은 예시적일 뿐이며, 동일한 또는 상이한 컴포넌트들을 가진 컴퓨팅 디바이스들 및/또는 다른 이미지 프로세싱 시스템들의 다른 구성들이 본 개시의 기법들을 구현하는데 사용될 수도 있음에 유의해야 한다.
CPU (32) 는 프로세싱 디바이스 (18) 의 동작을 제어하는 범용 또는 특수-목적 프로세서를 포함할 수도 있다. 사용자는 CPU (32) 로 하여금 하나 이상의 소프트웨어 애플리케이션들을 실행하게 하기 위해 프로세싱 디바이스 (18) 에 입력을 제공할 수도 있다. CPU (32) 상에서 실행되는 소프트웨어 애플리케이션들은, 예를 들어, 워드 프로세서 애플리케이션, 웹 브라우저 애플리케이션, 이메일 애플리케이션, 포토 뷰잉 애플리케이션, 포토 편집 애플리케이션, 그래픽 편집 애플리케이션, 스프레드 시트 애플리케이션, 미디어 플레이어 애플리케이션, 비디오 게임 애플리케이션, 그래픽 사용자 인터페이스 애플리케이션 또는 다른 프로그램을 포함할 수도 있다. 사용자는 키보드, 마우스, 마이크로폰, 터치 패드 또는 사용자 입력 인터페이스 (38) 를 통해 프로세싱 디바이스 (18) 에 커플링되는 다른 입력 디바이스와 같은 하나 이상의 입력 디바이스들 (미도시) 을 통해 프로세싱 디바이스 (18) 에 입력을 제공할 수도 있다.
소프트웨어 애플리케이션의 하나의 예는 뷰잉 애플리케이션이다. CPU (32) 는 카메라 디바이스들 (12) 에 의해 캡처된 이미지 콘텐츠들 (14) 을 뷰잉하기 위해 뷰잉 애플리케이션을 실행한다. 예를 들어, 뷰잉 애플리케이션을 실행하는 것에 응답하여, CPU (32) 는 서버 (16) 또는 카메라 디바이스들 (12) 로부터 원형 이미지들, 프로젝션 이미지들, 또는 양자를 취출하기 위해 커맨드를 트랜시버 (30) 로 출력할 수도 있다. 트랜시버 (30) 는 응답으로 서버 (16) 와의 무선 또는 유선 접속을 형성하고 서버 (16) 로부터 이미지 콘텐츠들 (14) 에 대한 원형 이미지들 및/또는 프로젝션 이미지들을 다운로드할 수도 있다.
일부 예들에서, CPU (32) 는 트랜시버 (30) 로 하여금 이미지 콘텐츠들 (14) 중 특정한 하나의 이미지 콘텐츠에 대한 원형 이미지들 및/또는 프로젝션 이미지들을 다운로드하게 할 수도 있다. 일부 예들에서, CPU (32) 는 트랜시버 (30) 로 하여금 복수의 또는 모든 이미지 콘텐츠들 (14) 에 대한 원형 이미지들 및/또는 프로젝션 이미지들을 다운로드하게 할 수도 있다. 응답으로, 트랜시버 (30) 는 이미지 콘텐츠들 (14) 중 지시받은 이미지 콘텐츠들로부터의 원형 이미지들 및/또는 프로젝션 이미지들을 다운로드하고, 원형 이미지들 및/또는 프로젝션 이미지들을 메모리 제어기 (40) 통해 시스템 메모리 (46) 에 카메라 디바이스들 (12) 중 개별의 카메라 디바이스들로부터의 이미지들의 세트들로서 저장할 수도 있다.
CPU (32) 상에서 실행되는 뷰잉 애플리케이션은 디스플레이 (44) 에의 그래픽 데이터의 렌더링을 야기할 것을 CPU (32) 에 지시하는 하나 이상의 그래픽 렌더링 명령들을 포함할 수도 있다. 일부 예들에서, 뷰잉 애플리케이션의 명령들은 그래픽 애플리케이션 프로그래밍 인터페이스 (API), 이를 테면, 예를 들어, 오픈 그래픽 라이브러리 (OpenGL®) API, 오픈 그래픽 라이브러리 임베디드 시스템들 (OpenGL ES) API, OpenCL API, Direct3D API, X3D API, RenderMan API, WebGL API, 또는 임의의 다른 공공 또는 독점 표준 그래픽 API 에 따를 수도 있다. 기법들은 특정한 API 를 요구하는 것으로 한정되는 것으로 간주되어서는 안 된다.
하나의 예로서, 사용자는 시스템 메모리 (46) 에의 저장을 위해 트랜시버가 원형 이미지들 및/또는 프로젝션 이미지들을 다운로드하게 하기 위해 뷰잉 애플리케이션을 실행할 수도 있다. 저장 후에, 뷰잉 애플리케이션은, CPU (32) 로 하여금 원형 이미지들 및/또는 프로젝션 이미지들을 디스플레이를 위해 렌더링할 것을 GPU 에 지시하게 할 수도 있다. 뷰잉 애플리케이션은 이미지들 (예를 들어, 원형 이미지들 및/또는 프로젝션 이미지들) 을 디스플레이를 위해 렌더링할 것을 GPU (34) 에 지시하기 위해, 일 예의 API, 이를 테면 OpenGL API 에 따르는 소프트웨어 명령들을 사용할 수도 있다.
수신된 명령들에 응답하여, GPU (34) 는 원형 이미지들 및/또는 프로젝션 이미지들의 이미지 콘텐츠를 수신하고 이미지들을 렌더링하여 360-도 비디오를 생성할 수도 있다. 디스플레이 (44) 는 360-도 비디오를 디스플레이한다. 사용자는 뷰어가 완전 360-도 비디오를 뷰잉 (위, 뒤, 앞, 및 360 구의 모든 각도들을 뷰잉) 할 수 있도록 뷰잉 관점을 수정하기 위해 사용자 인터페이스 (38) 와 상호작용할 수도 있다.
뷰어는 또한, 360-도 비디오의 뷰잉 볼륨을 거쳐 이동하기 위해 사용자 인터페이스 (38) 와 상호작용할 수도 있다. 예를 들어, 뷰어는 360-도 비디오의 뷰잉 볼륨에서 앞으로, 뒤로, 좌측으로, 우측으로, 상류로, 또는 하류로 이동하기 위해 사용자 인터페이스 (38) 와 상호작용할 수도 있다. 일 예로서, 하우스 설정에서, 뷰어는 마치 그 또는 그녀가 하우스 내의 복도를 거쳐 이동하고 있는 것처럼 인지할 수도 있다. 결혼 설정에서, 뷰어는 마치 그 또는 그녀가 하나의 테이블로부터 접수처에 있는 다른 테이블로 이동하고 있는 것처럼 인지할 수도 있다.
메모리 제어기 (40) 는 시스템 메모리 (46) 안밖으로 가는 데이터의 전송을 용이하게 한다. 예를 들어, 메모리 제어기 (40) 는 메모리 판독 및 기입 커맨드들을 수신하고, 이러한 커맨드들을 메모리 (46) 에 대하여 서비스하여 프로세싱 디바이스 (18) 내의 컴포넌트들에 대해 메모리 서비스들을 제공할 수도 있다. 메모리 제어기 (40) 는 시스템 메모리 (46) 에 통신가능하게 커플링된다. 메모리 제어기 (40) 는 도 7 의 프로세싱 디바이스 (18) 의 예에 CPU (32) 와 시스템 메모리 (46) 양자 모두와는 별개인 프로세싱 회로인 것으로서 예시되지만, 다른 예들에서, 메모리 제어기 (40) 의 기능성의 일부 또는 전부가 CPU (32) 와 시스템 메모리 (46) 중 하나 또는 양자 모두 상에서 구현될 수도 있다.
시스템 메모리 (46) 는 CPU (32) 및 GPU (34) 에 의해 액세스가능한 프로그램 모듈들 및/또는 명령들 및/또는 데이터를 저장할 수도 있다. 예를 들어, 시스템 메모리 (46) 는 사용자 애플리케이션들 (예를 들어, 뷰잉 애플리케이션에 대한 명령들) 을 저장하여, 카메라 디바이스들 (12) 등으로부터 이미지들을 발생시킬 수도 있다. 시스템 메모리 (46) 는 프로세싱 디바이스 (18) 의 다른 컴포넌트들에 의한 사용을 위한 및/또는 프로세싱 디바이스 (18) 의 다른 컴포넌트들에 의해 생성된 정보를 추가적으로 저장할 수도 있다. 시스템 메모리 (46) 는 하나 이상의 휘발성 또는 비휘발성 메모리들 또는 저장 디바이스들, 이를 테면, 예를 들어, 랜덤 액세스 메모리 (RAM), 정적 RAM (SRAM), 동적 RAM (DRAM), 판독 전용 메모리 (ROM), 소거가능한 프로그래밍가능 ROM (EPROM), 전기적으로 소거가능한 프로그래밍가능한 ROM (EEPROM), 플래시 메모리, 자기 데이터 매체들 또는 광학 저장 매체들을 포함할 수도 있다.
일부 양태들에서, 시스템 메모리 (46) 는 CPU (32) 및 GPU (34), 및 디스플레이 프로세서 (42) 로 하여금 본 개시에서 이들 컴포넌트들에 대해 설명된 기능들을 수행하게 하는 명령들을 포함할 수도 있다. 이에 따라, 시스템 메모리 (46) 는 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체일 수도 있고, 명령들은, 실행될 때, 하나 이상의 프로세서들 (예를 들어, CPU (32), GPU (34), 및 디스플레이 프로세서 (42)) 로 하여금, 다양한 기능들을 수행하게 한다.
일부 예들에서, 시스템 메모리 (46) 는 비일시적 저장 매체이다. 용어 "비일시적" 은 저장 매체가 캐리어 파 또는 전파 신호에서 구현되지 않는다는 것을 표시한다. 그러나, 용어 "비일시적" 은 시스템 메모리 (46) 가 이동가능하지 않거나 또는 그 콘텐츠들이 정적임을 의미하는 것으로 해석되어서는 안 된다. 하나의 예로서, 시스템 메모리 (46) 는 디바이스 (18) 로부터 제거되고, 다른 디바이스로 이동될 수도 있다. 다른 예로서, 시스템 메모리 (46) 와 실질적으로 유사한 메모리는 디바이스 (18) 에 삽입될 수도 있다. 소정의 예들에서, 비일시적 저장 매체는 (예를 들어, RAM 에서) 시간의 경과에 따라 변화할 수 있는 데이터를 저장할 수도 있다.
CPU (32) 및 GPU (34) 는 시스템 메모리 (46) 내에 할당되는 개별의 버퍼들에 이미지 데이터 등을 저장할 수도 있다. 디스플레이 프로세서 (42) 는 시스템 메모리 (46) 로부터 데이터를 취출하고 생성된 이미지 데이터에 의해 표현된 이미지를 디스플레이하도록 디스플레이 (44) 를 구성할 수도 있다. 일부 예들에서, 디스플레이 프로세서 (42) 는 시스템 메모리 (46) 로부터 취출된 디지털 값들을 디스플레이 (44) 에 의해 소비가능한 아날로그 신호로 컨버팅하도록 구성되는 디지털-아날로그 컨버터 (DAC) 를 포함할 수도 있다. 다른 예들에서, 디스플레이 프로세서 (42) 는 디지털 값들을 프로세싱을 위해 바로 디스플레이 (44) 에 전달할 수도 있다.
디스플레이 (44) 는 모니터, 텔레비전, 프로젝션 디바이스, 액정 디스플레이 (LCD), 플라즈마 디스플레이 패널, 발광 다이오드 (LED) 어레이, 이를 테면 유기 발광 다이오드 (OLED) 디스플레이, 음극선관 (CRT) 디스플레이, 전자 페이퍼, SED (surface-conduction electron-emitted display), 레이저 텔레비전 디스플레이, 나노결정 디스플레이 또는 다른 타입의 디스플레이 유닛을 포함할 수도 있다. 디스플레이 (44) 는 프로세싱 디바이스 (18) 내에 통합될 수도 있다. 예를 들어, 디스플레이 (44) 는 모바일 전화기 핸드셋 또는 태블릿 컴퓨터의 스크린일 수도 있다. 대안적으로, 디스플레이 (44) 는 유선 또는 무선 통신 링크를 통해 프로세싱 디바이스 (18) 에 커플링된 독립형 디바이스일 수도 있다. 예를 들어, 디스플레이 (44) 는 케이블 또는 무선 링크를 통해 개인 컴퓨터에 접속된 컴퓨터 모니터 또는 플랫 패널 디스플레이일 수도 있다.
프로세싱 디바이스 (18) 가 원형 이미지들을 수신하는 예들에서, GPU (34) 는 GPU (24) 에 대하여 상기 설명된 것들과 유사한 동작들에 기초하여 프로젝션 이미지들을 생성하도록 구성될 수도 있다. 예를 들어, GPU (34) 는, 등정방형 프로젝션 이미지 또는 peirce-quincuncial 프로젝션 이미지를 생성하기 위해 원형 이미지들을 텍스처 맵핑하고, 큐빅, 원통형, 또는 구형 프로젝션 이미지들에 대해 유사한 동작들을 행할 수도 있다.
예를 들어, GPU (34) 는 제 1 로케이션에 있는 카메라 디바이스 (12A) 로부터 생성된 이미지들의 제 1 세트를 (예를 들어, 시스템 메모리 (46) 로부터) 수신할 수도 있다. 이들 이미지들의 제 1 세트는 원형 이미지들 및/또는 프로젝션 이미지들일 수도 있다. 이미지들의 제 1 세트가 원형 이미지들인 예들에서, GPU (34) 는 GPU (24) 에 대하여 상기 설명된 것들과 유사한 동작들을 수행하여 프로젝션 이미지들을 생성하고, 프로젝션 이미지들을 시스템 메모리 (46) 에 저장할 수도 있다. 추가로, GPU (34) 는 하나 이상의 센서들 (26) 로부터 수집된 정보를 수신할 수도 있다. 카메라 디바이스들 (12) 은 개별의 하나 이상의 센서들 (26) 로부터 수집된 정보를 트랜시버 (30) 가 시스템 메모리 (46) 에의 저장을 위해 수집된 정보를 수신하는 서버 (16) 에 송신할 수도 있고, GPU (34) 는 수집된 정보를 시스템 메모리 (46) 로부터 수신한다. GPU (34) 는 프로젝션 이미지의 배향을 조정하기 위해 하나 이상의 센서들 (26) 로부터 수집된 정보를 사용할 수도 있다.
일부 예들에서, 위치 추적기 (31) 는 뷰어 눈 (예를 들어, 시선) 또는 머리의 위치를 추적하고, 뷰어 눈 또는 머리의 위치를 나타내는 정보를 CPU (32) 로 출력하도록 구성될 수도 있다. 차례로, CPU (32) 는, 이미지 콘텐츠들 (14) 을 렌더링하라는 명령들을 GPU (34) 에 제공하는데 있어서, 뷰어 눈 또는 머리의 위치를 표시하는 정보를 제공할 수도 있다. 이미지 콘텐츠 (14B) 를 렌더링하는데 있어서, GPU (34) 는 뷰어가 그 또는 그녀의 눈의 위치 또는 머리 위치를 변화시키지 않도록 이미지 콘텐츠 (14B) 를 포지셔닝할 수도 있다. 예를 들어, 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠 (14A) 로부터의 이미지들의 렌더링된 제 1 세트로부터 카메라 디바이스들 (12B) 에 의해 캡처된 이미지 콘텐츠 (14B) 로부터의 이미지들의 제 2 세트로 트랜지션할 때, GPU (34) 는 이미지들의 렌더링된 제 1 세트로서 공통 기준 (예를 들어, 뷰어 눈 또는 머리의 위치) 으로 이미지들의 제 2 세트를 렌더링할 수도 있다.
일부 예들에서, CPU (32) 는 이미지 콘텐츠 (14A) 와 이미지 콘텐츠 (14B) 간의 공통성을 결정할 수도 있다. CPU (32) 는 공통 콘텐츠가 디스플레이 (44) 상의 동일한 로케이션에 디스플레이되도록 이미지 콘텐츠 (14B) 를 렌더링할 것을 GPU (34) 에 지시할 수도 있다. 예를 들어, 이미지 콘텐츠 (14B) 를 렌더링하기 위해, CPU (32) 는 공통 장면 콘텐츠가 이미지 콘텐츠 (14A) 에 대한 이미지들의 렌더링된 제 1 세트에서의 공통 장면 콘텐츠의 로케이션과 동일한 로케이션에서의 이미지 콘텐츠 (14B) 에 대한 이미지들의 렌더링된 제 2 세트에서 디스플레이되도록 이미지들의 제 1 세트에서의 이미지 콘텐츠 (14A) 와 이미지들의 제 2 세트에서의 이미지 콘텐츠 (14B) 양자 모두에 공통인 장면 콘텐츠를 렌더링할 것을 GPU (34) 에 지시할 수도 있다. 이렇게 하여, 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠 (14A) 로부터의 이미지들의 렌더링된 제 1 세트로부터 카메라 디바이스들 (12B) 에 의해 캡처된 이미지 콘텐츠 (14B) 로부터의 이미지들의 제 2 세트로 트랜지션하는데 있어서, GPU (34) 는 이미지들의 렌더링된 제 1 세트로서 공통 기준 (예를 들어, 공통 장면) 으로 이미지들의 제 2 세트를 렌더링할 수도 있다.
이미지들의 제 1 세트가 프로젝션 이미지들인 예들에서, 프로젝션 이미지들은 배향 기준으로 이미 배향되었을 수도 있다. 이러한 경우들에서, GPU (34) 는 추가 조정할 필요가 없을 수도 있다. 그러나, 일부 예들에서, 이미지들의 제 1 세트는 프로젝션 이미지일 수도 있지만, 프로젝션 이미지는 배향 기준으로 배향되지 않을 수도 있다. 이러한 예들에서, GPU (34) 는 프로젝션 이미지들의 배향을 공통 배향 기준으로 조정할 수도 있다.
유사하게, GPU (34) 는 제 2 상이한 로케이션에 있는 카메라 디바이스 (12B) 로부터 생성된 이미지들의 제 2 상이한 세트를 (예를 들어, 시스템 메모리 (46) 로부터) 수신할 수도 있다. 이들 이미지들의 제 2 세트는 원형 이미지들 및/또는 프로젝션 이미지들일 수도 있다. GPU (34) 는 배향 기준 (예를 들어, 이미지들의 렌더링된 제 1 세트에 대한 배향 기준과 동일한 배향) 을 갖는 프로젝션 이미지들을 생성하기 위해 이미지들의 제 1 세트에 대하여 상기 설명된 것과 유사한 동작들을 수행할 수도 있다.
GPU (34) 는 동시에 이미지들의 제 1 세트와 이미지들의 제 2 세트 양자 모두에 대한 배향을 조정하고 있지 않을 수도 있다; 그렇지만 배향의 이러한 병렬 조정은 가능하다. CPU (32) 는 이미지 콘텐츠들 (14) 중 어느 이미지 콘텐츠가 디스플레이를 위해 렌더링될 것인지를 GPU (34) 에 지시할 수도 있다. 일 예로서, CPU (32) 는 카메라 디바이스 (12A) 에 의해 캡처된 이미지 콘텐츠 (14A) 로부터의 원형 이미지들 및/또는 프로젝션 이미지들이 디스플레이를 위해 렌더링되어야 하는 것을 GPU (34) 에 지시할 수도 있다. 이 예에서, GPU (34) 는 (필요하다면) 이미지들의 제 1 세트에 대한 배향을 배향 기준으로 조정할 수도 있다.
그 후, CPU (32) 가 카메라 디바이스 (12B) 에 의해 캡처된 이미지 콘텐츠 (14B) 로부터의 원형 이미지들 및/또는 프로젝션 이미지들이 디스플레이를 위해 렌더링되어야 한다는 것을 GPU (34) 에 지시하면, GPU (34) 는 (필요하다면) 이미지들의 제 2 세트에 대한 배향을 배향 기준 (예를 들어, 이미지들의 렌더링된 제 1 세트와 동일한 배향 기준) 으로 조정할 수도 있다. 예를 들어, GPU (34) 는 이미지들의 렌더링된 제 1 세트가 배향 기준을 갖도록 이미지들의 제 1 세트의 배향을 조정하고, 이미지들의 렌더링된 제 2 세트가 배향 기준 (예를 들어, 이미지들의 렌더링된 제 1 세트와 동일한 배향 기준) 을 갖도록 이미지들의 제 2 세트의 배향을 조정할 수도 있다. 상기 설명된 바와 같이, GPU (34) 는 이미지 콘텐츠 (14A 및 14B) 에 대한 수신된 프로젝션 이미지들이 (예를 들어, 카메라 디바이스들 (12A 및 12B), 서버 (16), 또는 일부 다른 디바이스에 의해) 공통 배향 기준으로 이미 배향된 경우들에서와 같이 이미지들의 제 1 및 제 2 세트들의 배향을 조정할 필요가 없을 수도 있다.
어떠한 경우에도, 일단 시스템 메모리 (46) 가 이미지들의 제 1 세트에 대한 프로젝션 이미지들을 저장하면, GPU (34) 는 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링할 수도 있다. 그 후, (예를 들어, 뷰어가 이미지 콘텐츠들 (14B) 에 의해 커버된 영역에 들어가기 위해 사용자 인터페이스 (38) 와 상호작용했기 때문에) GPU (34) 가 이미지들의 제 2 세트로 스위칭하면, GPU (34) 는 배향 기준 (예를 들어, 이미지들의 렌더링된 제 1 세트에 대한 배향 기준과 동일한 배향 기준) 으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다. 이렇게 하여, 뷰어는 이미지 콘텐츠 (14A) 로부터 이미지 콘텐츠 (14B) 로 스위칭하는데 있어서 불쾌한 경험을 인지하지 못할 수도 있다. 예를 들어, 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 것은 이미지들의 렌더링된 제 1 세트의 디스플레이를 위해 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 것으로 스위칭하는 것을 포함한다.
본 개시에서 설명된 예의 기법들에서, GPU (34) 는 카메라 디바이스들 (12) 의 상이한 카메라 디바이스들로부터의 이미지들의 상이한 세트들을 디스플레이를 위해 렌더링하기 위해 프로세싱 회로부 (예를 들어, 프로그래밍가능 회로부 및/또는 고정-기능 회로부) 를 포함하는 그래픽 프로세싱 파이프라인을 포함한다. 예를 들어, GPU (34) 는 예의 기법들의 동작들을 수행하기 위해 사용되는 텍스처 하드웨어 회로부를 포함할 수도 있다. GPU (34) 는 또한 예의 기법들의 동작들을 수행하기 위한 블렌딩을 위한 프로세싱 회로부를 포함할 수도 있다.
예를 들어, GPU (34) 는 프로젝션 이미지들을 구형 메시 모델에 맵핑하기 위해 텍스처 맵핑을 사용할 수도 있다. 구형 메시 모델은 복수의 프리미티브들 (예를 들어, 점들, 선들, 삼각형들, 정사각형들, 또는 다른 다각형들) 을 포함할 수도 있고, 각각의 프리미티브는 하나 이상의 버텍스들을 갖는다. 프리미티브들의 인터커넥션은 구의 메시 모델을 형성한다. GPU (34) 는 이미지들 중 제 1 이미지에 대한 프로젝션 이미지들을 구형 메시 모델에 맵핑하기 위해 텍스처 맵핑을 사용하고, 구형 메시 모델을 렌더링하여 뷰어블 360-도 이미지 콘텐츠를 생성할 수도 있다.
텍스처 맵핑을 수행하기 위해, GPU (34) 는 프로젝션 이미지로부터의 픽셀을 구형 메시 모델의 3-차원 버텍스들 (예를 들어, 각각의 버텍스는 x, y, 및 z 좌표를 갖는다) 에 맵핑할 수도 있다. 결과는 프로젝션 이미지의 콘텐츠를 갖는 구일 수도 있다. 예시로서, 2-차원 세계 지도가 지구본을 형성하기 위해 구에 맵핑되는 것을 생각해본다. GPU (34) 는 그 후 뷰어블 360-도 이미지들을 생성하기 위해 이 구를 렌더링할 수도 있다.
GPU (34) 는 렌더링의 결과를 시스템 메모리 (46) 로 출력할 수도 있다. 디스플레이 프로세서 (42) 는 시스템 메모리 (46) 로부터 이미지 콘텐츠를 취출하고 결과의 360-도 이미지를 디스플레이 (44) 상에 디스플레이할 수도 있다. 일부 예들에서, 디스플레이 (44) 는 전체 구의 부분을 디스플레이할 수도 있고, 뷰어는 구의 어느 부분을 뷰잉할지를 선택하기 위해 (예를 들어, 디스플레이 (44) 또는 사용자 인터페이스 (38) 를 통해) 디바이스 (18) 와 인터페이스할 수도 있다.
이렇게 하여, GPU (34) 는 배향 기준으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하고, 이미지들의 렌더링된 제 1 세트에 대한 배향 기준과 동일한 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다. 상기 설명된 바와 같이, GPU (34) 는 동시에 이미지들의 제 1 세트 및 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 필요가 없지만, 이미지들의 렌더링된 제 1 세트의 디스플레이로부터 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 것으로 스위칭할 수도 있다. 그러나, 이미지들의 제 1 세트 및 이미지들의 제 2 세트는 카메라 디바이스들 (12) 중 상이한 카메라 디바이스들로부터 동시에 생성될 수도 있다.
일부 예들에서, 배향 기준은 지리적 방향이며, 여기서 지리적 방향은 (예를 들어, 하나 이상의 센서들 (26) 로부터의) 나침반 측정에 기초한다. 예를 들어, GPU (34) 는 카메라 디바이스 (12A) 에 대하여 제 1 지리적 방향에 로케이트된 이미지 콘텐츠가 이미지들의 제 1 세트의 렌더링된 이미지들 내의 제 1 좌표에 로케이트되도록 (예를 들어, 북쪽은 상부-중심 좌표에 정렬된다) 이미지들의 제 1 세트를 디스플레이를 위해 렌더링할 수도 있다. GPU (34) 는 카메라 디바이스 (12A) 에 대하여 제 2 지리적 방향에 로케이트된 이미지 콘텐츠가 이미지들의 제 2 세트의 렌더링된 이미지들 내의 제 2 좌표에 로케이트되도록 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다. 이 예에서, 제 1 지리적 방향과 제 2 지리적 방향은 (예를 들어, 북쪽으로 정렬된) 동일한 지리적 방향이며, 제 1 좌표와 제 2 좌표는 동일한 좌표 (예를 들어, 도 5b 에 예시된 바와 같은 상부-중심 좌표 또는 도 6 의 (C) 에 예시된 바와 같은 상부-우측 좌표) 이다.
GPU (34) 는 이미 동일한 배향 기준으로 배향된 이미지들의 제 1 세트 및 이미지들의 제 2 세트를 수신할 수도 있다. 일부 예들에서, GPU (34) 는 이미지들의 제 1 세트에 대한 배향 기준을 나타내는 정보를 수신하고, 이미지들의 제 2 세트에 대한 배향 기준을 나타내는 정보를 수신할 수도 있다. GPU (34) 는 이미지들의 제 1 및 제 2 세트들에 대한 배향 기준을 나타내는 정보에 기초하여 이미지들의 제 1 및 제 2 세트들의 배향을 조정할 수도 있다. 이러한 예들에서, GPU (34) 는 조정된 배향을 갖는 이미지들의 제 1 및 제 2 세트들을 디스플레이를 위해 렌더링할 수도 있다.
더욱이, 일부 예들에서, GPU (34) 는 2 개의 상이한 배향 기준들 (예를 들어, 지리적 방향 정렬 및 기울기 정렬) 또는 3 개의 상이한 배향 기준들 (예를 들어, 지리적 방향 정렬 (방위각), 기울기 정렬 (고도), 및 회전 각도) 로의 이미지들의 제 1 및 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다. 예를 들어, GPU (34) 는 제 1 배향 기준 (예를 들어, 지리적 방향 정렬) 및 제 2 배향 기준 (예를 들어, 기울기 정렬), 및/또는 제 3 배향 (예를 들어, 회전 각도) 으로 배향된 이미지들의 제 1 세트를 디스플레이를 위해 렌더링할 수도 있다. GPU (34) 는 또한 제 1 배향 기준 및 이미지들의 제 1 세트에 대한 제 2 배향 기준과 동일한 제 2 배향 기준, 및 이미지들의 제 1 세트에 대한 제 3 배향 기준과 동일한 제 3 배향 기준으로 배향된 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다.
일부 예들에서, GPU (34) 는 실질적으로 동일한 로케이션에서 디스플레이되는 이미지들의 제 1 세트와 이미지들의 제 2 세트 양자 모두에 공통인 장면 콘텐츠에 대한 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다. 예를 들어, GPU (34) 는, 공통 장면 콘텐츠가 이미지들의 렌더링된 제 1 세트에서의 공통 장면 콘텐츠의 로케이션과 동일한 로케이션에서의 이미지들의 렌더링된 제 2 세트에서 디스플레이되도록 이미지들의 제 1 세트와 이미지들의 제 2 세트 양자 모두에 공통인 장면 콘텐츠를 렌더링할 수도 있다. 일부 예들에서, GPU (34) 는 뷰어가 이미지들의 제 1 세트를 뷰잉하고 있을 때 (예를 들어, 뷰어 시선 또는 머리 위치에 기초하여 배향 기준을 선택함) 뷰어의 시선 또는 머리의 위치에 기초하여 이미지들의 제 2 세트를 디스플레이를 위해 렌더링할 수도 있다.
도 8 은 도 6 의 프로세싱 디바이스 (18) 의 CPU (32), GPU (34), 및 시스템 메모리 (46) 를 더 상세히 예시하는 블록 다이어그램이다. 도 8 에 도시된 바와 같이, CPU (32) 는 GPU (34) 및 메모리 (46) 에 통신가능하게 커플링되고, GPU (34) 는 CPU (32) 및 메모리 (46) 에 통신가능하게 커플링된다. GPU (34) 는, 일부 예들에서, CPU (32) 와 마더보드에 통합될 수도 있다. 추가적인 예들에서, GPU (34) 는 CPU (32) 를 포함하는 마더보드의 포트에 설치되는 그래픽 카드 상에 구현될 수도 있다. 추가 예들에서, GPU (34) 는 CPU (32) 와 상호동작하도록 구성되는 주변 디바이스 내에 통합될 수도 있다. 추가적인 예들에서, GPU (34) 는 시스템 온 칩 (SoC) 을 형성하는 CPU (32) 와 동일한 프로세싱 회로부 상에 로케이트될 수도 있다.
CPU (32) 는 애플리케이션 (48), 그래픽 API (50), GPU 드라이버 (52), 및 오퍼레이팅 시스템 (54) 을 실행하도록 구성된다. GPU (34) 는 제어기 (56), 셰이더 코어 (58), 및 하나 이상의 고정-기능 유닛들 (60) 을 포함한다.
뷰잉 애플리케이션 (48) 은 그래픽 콘텐츠를 디스플레이되게 하는 하나 이상의 명령들 또는 비-그래픽 태스크 (예를 들어, 범용 컴퓨팅 태스크) 를 GPU (34) 상에서 수행되게 하는 하나 이상의 명령들 중 적어도 일부를 포함할 수도 있다. 일 예로서, 뷰잉 애플리케이션 (48) 은 CPU (32) 때문에 GPU (34) 가 디스플레이를 위해 360-도 비디오 또는 이미지들을 렌더링하게 할 수도 있다. 뷰잉 애플리케이션 (48) 은 그래픽 API (50) 에 명령들을 이슈할 수도 있다. 그래픽 API (50) 는 소프트웨어 애플리케이션 (48) 으로부터 수신된 명령들을 GPU 드라이버 (52) 에 의해 소비가능한 포맷으로 트랜슬레이트하는 런타임 서비스일 수도 있다. 일부 예들에서, 그래픽 API (50) 및 GPU 드라이버 (52) 는 동일한 소프트웨어 서비스의 일부일 수도 있다.
GPU 드라이버 (52) 는 그래픽 API (50) 를 통해 뷰잉 애플리케이션 (48) 으로부터 명령들을 수신하고, GPU (34) 의 동작을 제어하여 명령들을 서비스한다. 예를 들어, GPU 드라이버 (52) 는 하나 이상의 커맨드 스트림들을 공식화하고, 커맨드 스트림들을 메모리 (46) 에 배치하고, 커맨드 스트림들을 실행할 것을 GPU (34) 에 지시할 수도 있다. GPU 드라이버 (52) 는 커맨드 스트림들을 메모리 (46) 에 배치하고 (예를 들어, 하나 이상의 시스템 호출들을 통해) 오퍼레이팅 시스템 (54) 을 통해 GPU (34) 와 통신할 수도 있다.
GPU (34) 의 제어기 (56) 는 커맨드 스트림들에 저장된 커맨드들을 취출하고, 셰이더 코어 (58) 및 하나 이상의 고정-기능 유닛들 (60) 상에서의 실행을 위해 커맨드들을 디스패치하도록 구성된다. 제어기 (56) 는 하나 이상의 고정-기능 유닛들 (60) 또는 셰이더 코어 (58) 및 하나 이상의 고정-기능 유닛들 (60) 의 서브세트 상에서의 실행을 위해 커맨드 스트림으로부터 커맨드들을 디스패치할 수도 있다. 제어기 (56) 는 GPU (34) 의 하드웨어, 고정-기능 회로부일 수도 있거나, 소프트웨어 또는 펌웨어를 실행하기 위한 GPU (34) 의 프로그래밍가능 회로부일 수도 있거나, 또는 양자의 조합일 수도 있다.
셰이더 코어 (58) 는 프로그래밍가능 회로부 (예를 들어, 소프트웨어가 실행되는 프로세싱 코어들) 를 포함한다. 하나 이상의 고정-기능 유닛들 (60) 은 최소의 기능적 유연성으로 제한된 동작들을 수행하도록 구성된 고정 기능 회로부를 포함한다. 셰이더 코어 (58) 및 하나 이상의 고정-기능 유닛들 (60) 은 그래픽 프로세싱을 수행하도록 구성된 그래픽 파이프라인을 함께 형성한다.
셰이더 코어 (58) 는 CPU (32) 로부터 GPU (34) 로 다운로드되는 하나 이상의 셰이더 프로그램들을 실행하도록 구성될 수도 있다. 셰이더 프로그램은, 일부 예들에서, 하이-레벨 셰이딩 언어 (예를 들어, OpenGL 셰이딩 언어 (GLSL), 하이 레벨 셰이딩 언어 (HLSL), Cg (C for Graphics) 셰이딩 언어 등) 로 기입된 프로그램의 컴파일링된 버전일 수도 있다. 일부 예들에서, 셰이더 코어 (58) 는 병렬로 동작하도록 구성 (예를 들어, SIMD 파이프라인) 되는 복수의 프로세싱 유닛들을 포함할 수도 있다. 셰이더 코어 (58) 는 셰이더 프로그램 명령들을 저장하는 프로그램 메모리 및 프로그램 메모리에서의 현재 명령이 실행되고 있는지 또는 다음 명령이 페치되어야 하는지를 표시하는 실행 상태 레지스터 (예를 들어, 프로그램 카운터 레지스터) 를 가질 수도 있다. 셰이더 코어 (58) 상에서 실행되는 셰이더 프로그램들의 예들은, 예를 들어, 버텍스 셰이더들, 픽셀 셰이더들 (또한 프래그먼트 셰이더들로 지칭됨), 지오메트리 셰이더들, 헐 (hull) 셰이더들, 도메인 셰이더들, 컴퓨트 셰이더들, 및/또는 통합된 셰이더들을 포함한다.
고정-기능 유닛들 (60) 은 소정의 기능들을 수행하기 위해 하드-와이어되는 하드웨어를 포함할 수도 있다. 고정 기능 하드웨어가, 예를 들어, 하나 이상의 제어 신호들을 통해, 상이한 기능들을 수행하도록 구성가능할 수도 있지만, 고정 기능 하드웨어는 통상적으로는 사용자-컴파일링된 프로그램들을 수신 가능한 프로그램 메모리를 포함하지 않는다. 일부 예들에서, 하나 이상의 고정-기능 유닛들 (60) 은, 예를 들어, 래스터 동작들 (예를 들어, 심도 테스팅, 시저 (scissors) 테스팅, 알파 블렌딩 등) 을 수행하는 프로세싱 유닛들을 포함할 수도 있다.
CPU (32) 의 GPU 드라이버 (52) 는 커맨드 스트림들을 메모리 (46) 에 기입하도록 구성될 수도 있고, GPU (34) 의 제어기 (56) 는 메모리 (46) 로부터 커맨드 스트림들의 하나 이상의 커맨드들을 판독하도록 구성될 수도 있다. 일부 예들에서, 커맨드 스트림들 중 하나 또는 양자 모두는 메모리 (46) 에 링 버퍼로서 저장될 수도 있다. 링 버퍼는 CPU (32) 및 GPU (34) 가 링 버퍼로의 데이터의 기입 및 링 버퍼로부터의 데이터의 판독과 연관된 동기화된 상태 변수들을 유지하는 순환 어드레싱 스킴을 가진 버퍼일 수도 있다. 예를 들어, 제 1 커맨드 스트림이 링 버퍼이면, CPU (32) 및 GPU (34) 의 각각은 링 버퍼에서 기입될 다음 어드레스를 표시하는 기입 포인터, 및 링 버퍼에서 판독될 다음 어드레스를 표시하는 판독 포인터를 저장할 수도 있다.
CPU (32) 가 새로운 커맨드를 링 버퍼에 기입할 때, CPU (32) 는 CPU (32) 내의 기입 포인터를 업데이트하고 GPU (34) 내의 기입 포인터를 업데이트할 것을 GPU (34) 에 지시한다. 유사하게, GPU (34) 가 링 버퍼로부터 새로운 커맨드를 판독할 때, GPU (34) 는 GPU (34) 내의 판독 포인터를 업데이트하고 CPU (32) 내의 판독 포인터를 업데이트할 것을 CPU (32) 에 지시할 수도 있다. 다른 동기화 메커니즘들이 가능하다. 판독 및/또는 기입 포인터들이 링 버퍼를 위해 할당된 어드레스들의 범위에서의 가장 높은 어드레스에 도달할 때, 판독 및/또는 기입 포인터들은 순환 어드레싱 스킴을 구현하기 위해 가장 낮은 어드레스로 랩 어라운드할 수도 있다.
예의 GPU 드라이버 (52) 및 예의 GPU 제어기 (56) 의 예의 동작이 이제 도 8 에 대하여 설명된다. GPU 드라이버 (52) 는 GPU (34) 에 의해 수행될 범용 컴퓨팅 동작들 및/또는 그래픽 동작들을 특정하는 하나 이상의 명령들을 뷰잉 애플리케이션 (48) 으로부터 수신한다. GPU 드라이버 (52) 는 GPU 제어기 (56) 에 의해 액세스가능한 메모리 (46) 에 출력 커맨드 스트림을 배치한다. GPU 드라이버 (52) 는 뷰잉 애플리케이션 (48) 에 대응하는 커맨드 스트림이 프로세싱에 이용가능하다는 것을 GPU 제어기 (56) 에 통지한다. 예를 들어, GPU 드라이버 (52) 는 커맨드 스트림이 실행할 준비가 되었음을 표시하는 하나 이상의 값들을 GPU 레지스터 (예를 들어, GPU (34) 에 의해 폴링된 GPU 하드웨어 레지스터 및/또는 GPU (34) 에 의해 폴링된 GPU 메모리-맵핑된 레지스터) 에 기입할 수도 있다.
커맨드 스트림이 실행할 준비가 되었다는 통지 시에, GPU (34) 의 제어기 (56) 는 커맨드 스트림을 실행하는 것을 시작하기 위해 리소스들이 현재 GPU (34) 상에서 이용가능한지를 결정할 수도 있다. 리소스들이 이용가능하면, 제어기 (56) 는 커맨드 스트림에서 커맨드들을 디스패치하기 시작한다.
그래픽 프로세싱의 일부로서, CPU (32) 는 소정의 그래픽 프로세싱 태스크들을 GPU (34) 로 오프로드할 수도 있다. 예를 들어, 애플리케이션 (48) 은 구형 메시 모델의 프리미티브들에 대한 버텍스 좌표들을 생성하고, 그 좌표들을 메모리 (46) 에 구형 메시 모델 좌표들 (64) 로서 저장할 수도 있다. 추가적으로, 애플리케이션 (48) 은 프로세싱 디바이스 (18) 가 서버 (16) 로부터 수신하는 이미지들의 세트들을 저장할 수도 있다. 예를 들어, 애플리케이션 (48) 은, 카메라 디바이스들 (12) 중 개별의 카메라 디바이스들로부터 생성된 이미지 콘텐츠들 (14) 에 대해 각각, 이미지들의 세트들 (62A 내지 62N) 을 저장할 수도 있다. 일부 예들에서, 애플리케이션 (48) 은 동시에 이미지들의 세트들 (62A 내지 62N) 모두를 저장할 필요는 없다; 그렇지만 이러한 저장은 가능하다. 애플리케이션 (48) 은 GPU (34) 가 디스플레이를 위해 렌더링할 이미지 콘텐츠들 (14) 에 대한 이미지들의 세트들을 저장할 수도 있다.
GPU 드라이버 (52) 는 디스플레이를 위해 렌더링하기 위해 이미지들의 세트들 (62A 내지 62N) 중 하나를 취출할 것을 제어기 (56) 에 지시할 수도 있다. GPU (34) 가 프로젝션 이미지들을 생성하거나 또는 프로젝션 이미지들의 배향들을 조정하는 예들에서, GPU 드라이버 (52) 는 프로젝션 이미지들의 생성 및/또는 공통 배향 기준으로의 프로젝션 이미지들의 배향의 조정을 위해 이미지들의 세트들 (62A 내지 62N) 중 하나를 취출할 것을 제어기 (56) 에 지시할 수도 있다.
필요하다면, GPU 드라이버 (52) 는, 고정-기능 유닛들 (60) 의 일 예인 텍스처 맵핑 하드웨어로 하여금, 상기 설명된 동작들에 기초하여 원형 이미지들로부터 프로젝션 이미지들을 생성하기 위해 텍스처 맵핑을 수행하게 할 것을 제어기 (56) 에 지시할 수도 있다. 또한, 필요하다면, GPU 드라이버 (52) 는, 셰이더 코어 (58) 로 하여금, 공통 배향 기준으로 프로젝션 이미지들을 조정하기 위해 개발된 버텍스 셰이더 및/또는 픽셀 셰이더를 실행하게 할 것을 제어기 (56) 에 지시할 수도 있다.
예를 들어, 뷰잉 애플리케이션 (48) 은 프로젝션 이미지를 복수의 프리미티브들로 분할할 수도 있다. 셰이더 코어 (58) 상에서 실행되는 버텍스 셰이더는, 공통 배향 기준으로 프로젝션 이미지의 배향을 조정하기 위해 프리미티브들의 버텍스 좌표들을 조정할 수도 있다. 예를 들어, 버텍스 셰이더는 뷰잉 애플리케이션 (48) 에 의해 정의된, 곱셈 행렬, 즉 공통 배향 기준에 프로젝션 이미지를 정렬하는 새로운 버텍스들을 생성하기 위해 프로젝션 이미지의 각각의 버텍스에 곱해질 그 값들을 수신할 수도 있다. 프로젝션 이미지들이 공통 배향 기준으로 이미 적절히 배향되는 예들에서, 버텍스 셰이더에 의한 이 동작은 필요하지 않을 수도 있다.
GPU 드라이버 (52) 는 프로젝션 이미지들을 구형 메시 모델에 맵핑하기 위해 텍스처 맵핑을 수행하도록 고정-기능 유닛들 (60) 의 텍스처 맵핑 하드웨어에 커맨드들을 디스패치할 것을 제어기 (56) 에 지시할 수도 있다. 텍스처 맵핑을 수행하기 위해, GPU 드라이버 (52) 는 프로젝션 이미지들의 어느 좌표들이 구형 메시 모델 좌표들 (64) 중 어느 구형 메시 모델 좌표들에 대응하는지를 GPU (34) 에 표시할 수도 있다. 이러한 대응성을 표시하기 위한 하나의 예의 방식은 셰이더 코어 (58) 의 회로부 상에서 실행할 버텍스 셰이더를 통한 것이다. 버텍스 셰이더의 기능은 구형 메시 모델의 버텍스들에 대해 프로세싱을 수행하는 것이다. 이러한 프로세싱을 수행하기 위해, 그래픽 API (50) 및 GPU 드라이버 (52) 를 통한 애플리케이션 (48) 은 메모리 (46) 로부터 버텍스 좌표들 (예를 들어, 구형 메시 모델 좌표들 (64) 로서 저장된 구형 메시 모델의 프리미티브들에 대한 버텍스 좌표들) 의 배치들 (batches) 을 취출할 것을 제어기 (56) 에 지시한다. 추가로, 그래픽 API (50) 및 GPU 드라이버 (52) 를 통한 애플리케이션 (48) 은 프로젝션 이미지들 (예를 들어, 이미지들의 세트들 (62A 내지 62N) 중 하나) 에 대한 좌표들을 취출할 것을 제어기 (56) 에 지시할 수도 있다.
제어기 (56) 는 구형 메시 모델의 프리미티브에 대한 버텍스 좌표들의 x, y, z 좌표들 및 대응하는 프리미티브에 대한 프로젝션 이미지의 좌표들의 s, t 좌표들을 프로세싱을 위한 입력으로서 버텍스 셰이더에 제공할 수도 있다. 추가로, 그래픽 API (50) 및 GPU 드라이버 (52) 를 통한 애플리케이션 (48) 은, 프로젝션 이미지의 프리미티브를 취출하고 프리미티브를 로컬 메모리 (36) (로컬 메모리 (36) 는 도 7 에 예시된다) 에 저장할 것을, 고정-기능 유닛들 (60) 의 일 예인 텍스처 하드웨어 회로에 지시한다.
그래픽 API (50) 및 GPU 드라이버 (52) 를 통한 애플리케이션 (48) 은 프로젝션 이미지의 프리미티브를 구형 메시 모델 프리미티브에 오버레이할 것을 텍스처 하드웨어 회로에 지시하는 커맨드들을 텍스처 하드웨어 회로에 이슈할 수도 있다. 텍스처 하드웨어 회로는 애플리케이션 (48) 에 의해 지시된 대로, 프로젝션 이미지의 프리미티브를 스트레치 또는 다르게는 리사이징할 수도 있어, 프로젝션 이미지의 프리미티브는 (예를 들어, 보간, 필터링, 및 텍스처 프리미티브를 스케일링하기 위한 다른 수학적 연산들을 통해) 구형 메시 모델의 프리미티브 내에 들어간다. 텍스처 하드웨어 회로는 프로젝션 이미지의 프리미티브들의 버텍스 속성들에 기초하여 구형 메시 모델의 버텍스들에 버텍스 속성들 (예를 들어, 컬러 및 불투명도 값들) 을 할당할 수도 있다.
GPU (34) 의 고정-기능 유닛들 (60) 은 버텍스 셰이더로부터의 출력을 래스터화하고, 래스터화된 프리미티브를 픽셀 셰이더로 출력할 수도 있다. 그래픽 API (50) 및 GPU 드라이버 (52) 를 통한 애플리케이션 (48) 은 GPU (34) 의 제어기 (56) 가 셰이더 코어 (58) 의 회로부 상에서 픽셀 셰이더 (또한 프래그먼트 셰이더로 불림) 를 실행하게 할 수도 있다. 픽셀 셰이더는 360-도 이미지 콘텐츠를 디스플레이를 위해 렌더링하기 위해 래스터화된 프리미티브에서의 대응하는 픽셀들에 프로젝션 이미지의 프리미티브로부터의 픽셀 값들을 할당할 수도 있다. CPU (32) 및 GPU (34) 는 구형 메시 모델의 프리미티브들 및 프로젝션 이미지의 프리미티브들 모두에 대해 이들 단계들을 반복할 수도 있다.
프로젝션 이미지들을 디스플레이를 위해 렌더링하는 것으로부터의 결과는 GPU (34) 가 메모리 (46) 에 저장하는 이미지들의 스트림 (66) 이다. 디스플레이 프로세서 (42) 는 이미지들의 스트림 (66) 을 취출하고 디스플레이 (44) 가 소비하도록 이미지들의 스트림을 프로세싱한다. 뷰어가 360-도 이미지 콘텐츠에서 이동하기 위해 사용자 인터페이스 (38) 와 상호작용할 때, CPU (32) 는 GPU (34) 로 하여금 이미지들의 세트 (62A 내지 62N) 중 하나의 렌더링을 멈추고 이미지들의 세트 (62A 내지 62N) 중 다른 하나의 렌더링을 시작하게 할 수도 있다. CPU (32) 및 GPU (34) 는 새로운 이미지들의 세트 (62A 내지 62N) 에 대해 상기 예의 동작들을 반복할 수도 있다. GPU (34) 는 그 후, 이미지 콘텐츠들 (14) 중 하나의 이미지 콘텐츠로부터 이미지 콘텐츠들 (14) 중 다른 하나의 이미지 콘텐츠로의 심리스 트랜지션을 위해 새로운 이미지들의 세트 (62A 내지 62N) 로부터의 결과의 360-도 이미지 콘텐츠를 이미지들의 스트림 (66) 에 추가할 수도 있다.
도 9 는 본 개시에서 설명된 하나 이상의 예의 기법들에 따른 일 예의 동작 방법을 예시하는 플로우차트이다. GPU (34) 는 제 1 로케이션에 로케이트되는 카메라 디바이스들 (12) 중 제 1 카메라 디바이스로부터 이미지들의 제 1 세트를 수신한다 (68). 이미지들의 제 1 세트는 이미 공통 배향 기준으로 배향된 프로젝션 이미지들의 제 1 세트일 수도 있거나, 아직 공통 배향 기준으로 배향되지 않은 프로젝션 이미지들의 제 1 세트일 수도 있거나, 또는 렌즈들 (20A 또는 20B) 에 의해 캡처된 원형 이미지들의 제 1 세트일 수도 있다. 프로젝션 이미지들이 공통 배향 기준으로 배향되지 않았다면, GPU (34) 는 이미지들을 공통 배향 기준으로 배향시킬 수도 있다. 원형 이미지들의 경우, GPU (34) 는 프로젝션 이미지들을 생성하기 위해 원형 이미지들을 텍스처 맵핑하고, 그 후 프로젝션 이미지들을 공통 배향 기준으로 배향시킬 수도 있다.
GPU (34) 는 배향 기준으로 배향된 제 1 이미지들을 디스플레이를 위해 렌더링할 수도 있다 (70). 예를 들어, GPU (34) 는 프로젝션 이미지들을 구형 메시 모델에 텍스처 맵핑하고, 구형 메시 모델을 디스플레이를 위해 이미지 콘텐츠의 구로 렌더링할 수도 있다. GPU (34) 는 이미지 콘텐츠의 구의 이미지 콘텐츠를 이미지들의 스트림 (66) 으로서 저장할 수도 있다.
GPU (34) 가 카메라 디바이스들 (12) 중 제 2 상이한 카메라 디바이스에 의해 캡처된 이미지 콘텐츠를 디스플레이를 위해 렌더링 (예를 들어, 상이한 이미지 콘텐츠를 디스플레이를 위해 렌더링하는 것으로 스위칭) 할 것이라고 CPU (32) 가 결정하면, GPU (34) 는 제 2 상이한 로케이션에 있는 카메라 디바이스들 (12) 중 제 2 상이한 카메라 디바이스로부터 이미지들의 제 2 세트를 수신한다 (72). 이미지들의 제 1 세트와 같이, GPU (34) 는 프로젝션 이미지들을 생성하고 이미지들의 렌더링된 제 1 세트와 동일한 배향 기준인 공통 배향 기준으로 프로젝션 이미지들을 배향시킬 수도 있다.
GPU (34) 는 이미지들의 렌더링된 제 1 세트와 동일한 배향 기준으로 배향된 제 2 이미지들을 디스플레이를 위해 렌더링할 수도 있다 (74). 예를 들어, GPU (34) 는 이미지들의 제 2 세트의 프로젝션 이미지들을 구형 메시 모델에 텍스처 맵핑하고, 구형 메시 모델을 디스플레이를 위해 이미지 콘텐츠의 구로 렌더링할 수도 있다. GPU (34) 는 이미지 콘텐츠의 구의 이미지 콘텐츠를 이미지들의 스트림 (66) 으로서 저장할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되면, 그 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 또는 이를 통해 송신되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들을 포함할 수도 있다. 이러한 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 비일시적인 유형의 컴퓨터 판독가능 저장 매체들에 대응할 수도 있다. 데이터 저장 매체들은 본 개시에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 일 예로, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은, 캐리어 파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고, 그 대신 비일시적 유형의 저장 매체들과 관련되는 것으로 이해되어야 한다. 디스크 (disk) 및 디스크 (disc) 는, 본 명세서에서 사용된 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하는 한편, 디스크 (disc) 들은 레이저들로 데이터를 광학적으로 재생한다. 상기의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 등가의 통합된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는, 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 추가로, 일부 양태들에서, 본 명세서에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되거나, 또는 결합된 코덱에 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC 들의 세트 (예를 들면, 칩 세트) 를 포함하는, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시에 설명되지만, 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하는 것은 아니다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에서 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호동작가능한 하드웨어 유닛들의 콜렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (28)

  1. 이미지 콘텐츠를 생성하기 위한 방법으로서,
    제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 수신하는 단계로서, 상기 제 1 카메라 디바이스는 제 1 배향 (orientation) 을 갖는, 상기 이미지들의 제 1 세트를 수신하는 단계;
    배향 기준 (reference) 으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계;
    상이한 제 2 로케이션에서의 상이한 제 2 카메라 디바이스로부터 생성된 상이한 이미지들의 제 2 세트를 수신하는 단계로서, 상기 제 2 카메라 디바이스는 상기 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 상이한 이미지들의 제 2 세트를 수신하는 단계; 및
    상기 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 이미지들의 제 1 세트가 디스플레이를 위해 렌더링될 때 뷰어의 시선 (gaze) 또는 머리 위치 (head position) 를 결정하는 단계를 더 포함하고,
    상기 배향 기준은 상기 뷰어의 결정된 상기 시선 또는 머리 위치에 기초하여 선택되는, 이미지 콘텐츠를 생성하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 배향 기준은 지리적 방향을 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계는, 상기 제 1 카메라 디바이스에 대하여 제 1 지리적 방향에 로케이트된 이미지 콘텐츠가 상기 이미지의 제 1 세트의 렌더링된 이미지들 내의 제 1 좌표에 로케이트되도록 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계를 포함하고, 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계는, 상기 제 2 카메라 디바이스에 대하여 제 2 지리적 방향에 로케이트된 이미지 콘텐츠가 상기 이미지들의 제 2 세트의 렌더링된 이미지들 내의 제 2 좌표에 로케이트되도록 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계를 포함하고, 그리고 상기 제 1 지리적 방향과 상기 제 2 지리적 방향은 동일한 지리적 방향이고, 그리고 상기 제 1 좌표와 상기 제 2 좌표는 동일한 좌표인, 이미지 콘텐츠를 생성하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계는 렌더링된 상기 이미지들의 제 1 세트의 디스플레이로부터 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 것으로 스위칭하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 이미지들의 제 1 세트에 대한 상기 배향 기준을 나타내는 정보를 수신하는 단계;
    상기 이미지들의 제 2 세트에 대한 상기 배향 기준을 나타내는 정보를 수신하는 단계;
    상기 이미지들의 제 1 세트에 대한 상기 배향 기준을 나타내는 상기 정보에 기초하여 상기 이미지들의 제 1 세트의 배향을 조정하는 단계; 및
    상기 이미지들의 제 2 세트에 대한 상기 배향 기준을 나타내는 상기 정보에 기초하여 상기 이미지들의 제 2 세트의 배향을 조정하는 단계를 더 포함하고,
    상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계는 조정된 상기 배향을 갖는 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계를 포함하고, 그리고
    상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계는 조정된 상기 배향을 갖는 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 이미지들의 제 1 세트를 수신하는 단계는 상기 배향 기준으로 배향된 상기 이미지들의 제 1 세트를 수신하는 단계를 포함하고, 그리고 상기 이미지들의 제 2 세트를 수신하는 단계는 상기 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 수신하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 배향 기준은 제 1 배향 기준을 포함하고, 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계는 상기 제 1 배향 기준 및 제 2 배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계를 포함하고, 그리고 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계는 상기 제 1 배향 및 상기 제 2 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계는 상기 제 1 배향 기준, 상기 제 2 배향 기준, 및 제 3 배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하는 단계를 포함하고, 그리고 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계는 상기 제 1 배향 기준, 상기 제 2 배향 기준, 및 상기 제 3 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  10. 제 1 항에 있어서,
    상기 제 1 카메라 디바이스는 복수의 렌즈들을 포함하고, 그리고 상기 제 2 카메라 디바이스는 복수의 렌즈들을 포함하고, 상기 이미지들의 제 1 세트를 수신하는 단계는 상기 제 1 카메라 디바이스의 상기 복수의 렌즈들 중 적어도 2 개의 렌즈들에 의해 캡처된 이미지 콘텐츠로부터 생성된 상기 이미지들의 제 1 세트를 수신하는 단계를 포함하고, 그리고 상기 이미지들의 제 2 세트를 수신하는 단계는 상기 제 2 카메라 디바이스의 상기 복수의 렌즈들 중 적어도 2 개의 렌즈들에 의해 캡처된 이미지 콘텐츠로부터 생성된 상기 이미지들의 제 2 세트를 수신하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  11. 제 1 항에 있어서,
    상기 이미지들의 제 1 세트를 수신하는 단계는 상기 제 1 카메라 디바이스의 어안 (fisheye) 렌즈들에 의해 캡처된 복수의 등정방형 이미지들을 수신하는 단계를 포함하고, 그리고 상기 이미지들의 제 2 세트를 수신하는 단계는 상기 제 2 카메라 디바이스의 어안 렌즈들에 의해 캡처된 복수의 등정방형 이미지들을 수신하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  12. 제 1 항에 있어서,
    상기 이미지들의 제 1 세트와 상기 이미지들의 제 2 세트는 동시에 생성되는, 이미지 콘텐츠를 생성하기 위한 방법.
  13. 제 1 항에 있어서,
    상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 단계는, 공통 장면 콘텐츠가 렌더링된 상기 이미지들의 제 1 세트에서의 공통 장면 콘텐츠의 로케이션과 동일한 로케이션에서의 렌더링된 상기 이미지들의 제 2 세트에서 디스플레이되도록 상기 이미지들의 제 1 세트와 상기 이미지들의 제 2 세트 양자 모두에 공통인 장면 콘텐츠를 렌더링하는 단계를 포함하는, 이미지 콘텐츠를 생성하기 위한 방법.
  14. 이미지 콘텐츠를 생성하기 위한 디바이스로서,
    메모리 디바이스로서,
    제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 저장하는 것으로서, 상기 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 저장하고; 그리고
    상이한 제 2 로케이션에서의 상이한 제 2 카메라 디바이스로부터 생성된 상이한 이미지들의 제 2 세트를 저장하는 것으로서, 상기 제 2 카메라 디바이스는 상기 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 상이한 이미지들의 제 2 세트를 저장하도록 구성된, 상기 메모리 디바이스; 및
    고정-기능 (fixed-function) 또는 프로그래밍가능 회로부 중 적어도 하나를 포함하는 그래픽 프로세싱 유닛 (GPU) 으로서, 상기 GPU 는,
    상기 메모리 디바이스로부터 상기 이미지들의 제 1 세트를 수신하고;
    배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하고;
    상기 메모리 디바이스로부터 상기 이미지들의 제 2 세트를 수신하고; 그리고
    상기 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성된, 상기 GPU 를 포함하는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  15. 제 14 항에 있어서,
    상기 이미지들의 제 1 세트가 디스플레이를 위해 렌더링될 때 뷰어의 시선 또는 머리 위치를 결정하도록 구성된 추적기 회로 (tracker circuit) 를 더 포함하고,
    상기 배향 기준은 상기 뷰어의 결정된 상기 시선 또는 머리 위치에 기초하여 선택되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  16. 제 14 항에 있어서,
    상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는, 상기 제 1 카메라 디바이스에 대하여 제 1 지리적 방향에 로케이트된 이미지 콘텐츠가 상기 이미지의 제 1 세트의 렌더링된 이미지들 내의 제 1 좌표에 로케이트되도록 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하도록 구성되고, 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는, 상기 제 2 카메라 디바이스에 대하여 제 2 지리적 방향에 로케이트된 이미지 콘텐츠가 상기 이미지들의 제 2 세트의 렌더링된 이미지들 내의 제 2 좌표에 로케이트되도록 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성되고, 그리고 상기 제 1 지리적 방향과 상기 제 2 지리적 방향은 동일한 지리적 방향이고, 그리고 상기 제 1 좌표와 상기 제 2 좌표는 동일한 좌표인, 이미지 콘텐츠를 생성하기 위한 디바이스.
  17. 제 14 항에 있어서,
    상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 상기 이미지들의 제 1 세트의 디스플레이를 위해 렌더링하는 것으로부터 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하는 것으로 스위칭하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  18. 제 14 항에 있어서,
    상기 GPU 는,
    상기 이미지들의 제 1 세트에 대한 상기 배향 기준을 나타내는 정보를 수신하고;
    상기 이미지들의 제 2 세트에 대한 상기 배향 기준을 나타내는 정보를 수신하고;
    상기 이미지들의 제 1 세트에 대한 상기 배향 기준을 나타내는 상기 정보에 기초하여 상기 이미지들의 제 1 세트의 배향을 조정하고; 그리고
    상기 이미지들의 제 2 세트에 대한 상기 배향 기준을 나타내는 상기 정보에 기초하여 상기 이미지들의 제 2 세트의 배향을 조정하도록 구성되고,
    상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 조정된 상기 배향을 갖는 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하도록 구성되고, 그리고
    상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 조정된 상기 배향을 갖는 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  19. 제 14 항에 있어서,
    상기 GPU 는, 상기 배향 기준으로 배향된 상기 이미지들의 제 1 세트를 수신하고, 그리고 상기 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 수신하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  20. 제 14 항에 있어서,
    상기 배향 기준은 제 1 배향 기준을 포함하고, 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 상기 제 1 배향 기준 및 제 2 배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하도록 구성되고, 그리고 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 상기 제 1 배향 및 상기 제 2 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  21. 제 20 항에 있어서,
    상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 상기 제 1 배향 기준, 상기 제 2 배향 기준, 및 제 3 배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하도록 구성되고, 그리고 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는 상기 제 1 배향 기준, 상기 제 2 배향 기준, 및 상기 제 3 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  22. 제 14 항에 있어서,
    상기 제 1 카메라 디바이스는 복수의 렌즈들을 포함하고, 그리고 상기 제 2 카메라 디바이스는 복수의 렌즈들을 포함하고, 상기 이미지들의 제 1 세트를 수신하기 위해, 상기 GPU 는 상기 제 1 카메라 디바이스의 상기 복수의 렌즈들 중 적어도 2 개의 렌즈들에 의해 캡처된 이미지 콘텐츠로부터 생성된 상기 이미지들의 제 1 세트를 수신하도록 구성되고, 그리고 상기 이미지들의 제 2 세트를 수신하기 위해, 상기 GPU 는 상기 제 2 카메라 디바이스의 상기 복수의 렌즈들 중 적어도 2 개의 렌즈들에 의해 캡처된 이미지 콘텐츠로부터 생성된 상기 이미지들의 제 2 세트를 수신하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  23. 제 14 항에 있어서,
    상기 이미지들의 제 1 세트를 수신하기 위해, 상기 GPU 는 상기 제 1 카메라 디바이스의 어안 렌즈들에 의해 캡처된 복수의 등정방형 이미지들을 수신하도록 구성되고, 그리고 상기 이미지들의 제 2 세트를 수신하기 위해, 상기 GPU 는 상기 제 2 카메라 디바이스의 어안 렌즈들에 의해 캡처된 복수의 등정방형 이미지들을 수신하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  24. 제 14 항에 있어서,
    상기 이미지들의 제 1 세트와 상기 이미지들의 제 2 세트는 동시에 생성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  25. 제 14 항에 있어서,
    상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위해, 상기 GPU 는, 공통 장면 콘텐츠가 렌더링된 상기 이미지들의 제 1 세트에서의 공통 장면 콘텐츠의 로케이션과 동일한 로케이션에서의 렌더링된 상기 이미지들의 제 2 세트에서 디스플레이되도록 상기 이미지들의 제 1 세트와 상기 이미지들의 제 2 세트 양자 모두에 공통인 장면 콘텐츠를 렌더링하도록 구성되는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  26. 제 14 항에 있어서,
    상기 디바이스는 마이크로프로세서, 집적 회로, 무선 통신 디바이스, 또는 핸드헬드 디바이스 중 하나를 포함하는, 이미지 콘텐츠를 생성하기 위한 디바이스.
  27. 명령들을 저장하고 있는 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 때, 하나 이상의 프로세서들로 하여금,
    제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 수신하게 하는 것으로서, 상기 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 수신하게 하고;
    배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하게 하고;
    상이한 제 2 로케이션에서의 상이한 제 2 카메라 디바이스로부터 생성된 상이한 이미지들의 제 2 세트를 수신하게 하는 것으로서, 상기 제 2 카메라 디바이스는 상기 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 상이한 이미지들의 제 2 세트를 수신하게 하고; 그리고
    상기 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하게 하는, 컴퓨터 판독가능 저장 매체.
  28. 이미지 콘텐츠를 생성하기 위한 디바이스로서,
    제 1 로케이션에서의 제 1 카메라 디바이스로부터 생성된 이미지들의 제 1 세트를 수신하기 위한 수단으로서, 상기 제 1 카메라 디바이스는 제 1 배향을 갖는, 상기 이미지들의 제 1 세트를 수신하기 위한 수단;
    배향 기준으로 배향된 상기 이미지들의 제 1 세트를 디스플레이를 위해 렌더링하기 위한 수단;
    상이한 제 2 로케이션에서의 상이한 제 2 카메라 디바이스로부터 생성된 상이한 이미지들의 제 2 세트를 수신하기 위한 수단으로서, 상기 제 2 카메라 디바이스는 상기 제 1 배향과는 상이한 제 2 배향을 갖는, 상기 상이한 이미지들의 제 2 세트를 수신하기 위한 수단; 및
    상기 배향 기준으로 배향된 상기 이미지들의 제 2 세트를 디스플레이를 위해 렌더링하기 위한 수단을 포함하는, 이미지 콘텐츠를 생성하기 위한 디바이스.
KR1020197014330A 2016-11-21 2017-10-10 구형 이미지 콘텐츠를 위한 배향된 이미지 스티칭 KR20190084987A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/357,486 2016-11-21
US15/357,486 US10325391B2 (en) 2016-11-21 2016-11-21 Oriented image stitching for spherical image content
PCT/US2017/055932 WO2018093483A1 (en) 2016-11-21 2017-10-10 Oriented image stitching for spherical image content

Publications (1)

Publication Number Publication Date
KR20190084987A true KR20190084987A (ko) 2019-07-17

Family

ID=60245191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014330A KR20190084987A (ko) 2016-11-21 2017-10-10 구형 이미지 콘텐츠를 위한 배향된 이미지 스티칭

Country Status (10)

Country Link
US (1) US10325391B2 (ko)
EP (1) EP3542345A1 (ko)
JP (1) JP2020502893A (ko)
KR (1) KR20190084987A (ko)
CN (1) CN109997167B (ko)
AU (1) AU2017360364A1 (ko)
BR (1) BR112019010099A2 (ko)
CA (1) CA3040874A1 (ko)
TW (1) TW201820862A (ko)
WO (1) WO2018093483A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10861359B2 (en) * 2017-05-16 2020-12-08 Texas Instruments Incorporated Surround-view with seamless transition to 3D view system and method
US10687119B2 (en) * 2017-06-27 2020-06-16 Samsung Electronics Co., Ltd System for providing multiple virtual reality views
US10725536B2 (en) * 2018-08-21 2020-07-28 Disney Enterprises, Inc. Virtual indicium display system for gaze direction in an image capture environment
US11323754B2 (en) * 2018-11-20 2022-05-03 At&T Intellectual Property I, L.P. Methods, devices, and systems for updating streaming panoramic video content due to a change in user viewpoint
US10917565B1 (en) * 2019-03-08 2021-02-09 Gopro, Inc. Image capture device with a spherical capture mode and a non-spherical capture mode
US10999527B1 (en) * 2020-02-14 2021-05-04 Gopro, Inc. Generation of enhanced panoramic visual content
US10845943B1 (en) 2020-02-14 2020-11-24 Carmax Business Services, Llc Systems and methods for generating a 360-degree viewing experience
US11429112B2 (en) * 2020-12-31 2022-08-30 Ubtech North America Research And Development Center Corp Mobile robot control method, computer-implemented storage medium and mobile robot
US11671551B2 (en) * 2021-05-24 2023-06-06 Sony Group Corporation Synchronization of multi-device image data using multimodal sensor data

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0852732A1 (en) 1995-09-21 1998-07-15 Omniplanar, Inc. Method and apparatus for determining position and orientation
US7085409B2 (en) * 2000-10-18 2006-08-01 Sarnoff Corporation Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery
JP3965560B2 (ja) 2002-03-26 2007-08-29 ソニー株式会社 画像処理装置および方法、撮像装置および方法、並びにプログラム
US20120092348A1 (en) 2010-10-14 2012-04-19 Immersive Media Company Semi-automatic navigation with an immersive image
DE102010051206A1 (de) * 2010-11-12 2012-05-16 Valeo Schalter Und Sensoren Gmbh Verfahren zum Erzeugen eines Bilds einer Fahrzeugumgebung und Abbildungsvorrichtung
KR101732076B1 (ko) * 2010-12-22 2017-05-02 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US9418475B2 (en) * 2012-04-25 2016-08-16 University Of Southern California 3D body modeling from one or more depth cameras in the presence of articulated motion
JP5828039B2 (ja) 2012-06-11 2015-12-02 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
KR102089432B1 (ko) 2013-06-20 2020-04-14 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US20150036016A1 (en) * 2013-07-30 2015-02-05 Qualcomm Incorporated Methods and apparatus for determining the orientation of a mobile phone in an indoor environment
GB2525232A (en) 2014-04-17 2015-10-21 Nokia Technologies Oy A device orientation correction method for panorama images
US20150312468A1 (en) 2014-04-23 2015-10-29 Narvaro Inc. Multi-camera system controlled by head rotation
US9934122B2 (en) * 2014-07-09 2018-04-03 Microsoft Technology Licensing, Llc Extracting rich performance analysis from simple time measurements
US20160119551A1 (en) * 2014-10-22 2016-04-28 Sentry360 Optimized 360 Degree De-Warping with Virtual Cameras
WO2016077057A2 (en) 2014-10-24 2016-05-19 Bounce Imaging, Inc. Imaging systems and methods
WO2016140986A1 (en) * 2015-03-01 2016-09-09 Nextvr Inc. Methods and apparatus for supporting content generation, transmission and/or playback
JP5920507B1 (ja) 2015-03-10 2016-05-18 株式会社リコー 画像処理システム、画像処理方法およびプログラム
TWM523004U (zh) * 2015-07-16 2016-06-01 鋐寶科技股份有限公司 風扇承載裝置
US9445081B1 (en) * 2015-09-25 2016-09-13 Intel Corporation Method and system of 3D image capture with dynamic cameras
US9573062B1 (en) * 2015-12-06 2017-02-21 Silver VR Technologies, Inc. Methods and systems for virtual reality streaming and replay of computer video games
US20170200315A1 (en) * 2016-01-07 2017-07-13 Brendan Lockhart Live stereoscopic panoramic virtual reality streaming system
US10657701B2 (en) * 2016-06-30 2020-05-19 Sony Interactive Entertainment Inc. Dynamic entering and leaving of virtual-reality environments navigated by different HMD users
US20180000542A1 (en) * 2016-07-02 2018-01-04 St. Jude Medical, Cardiology Division, Inc. Flexible electrode
GB2556910A (en) * 2016-11-25 2018-06-13 Nokia Technologies Oy Virtual reality display
US10212406B2 (en) * 2016-12-15 2019-02-19 Nvidia Corporation Image generation of a three-dimensional scene using multiple focal lengths

Also Published As

Publication number Publication date
JP2020502893A (ja) 2020-01-23
CN109997167A (zh) 2019-07-09
US20180144520A1 (en) 2018-05-24
EP3542345A1 (en) 2019-09-25
AU2017360364A1 (en) 2019-05-02
WO2018093483A1 (en) 2018-05-24
TW201820862A (zh) 2018-06-01
BR112019010099A2 (pt) 2019-10-01
CN109997167B (zh) 2023-08-22
CA3040874A1 (en) 2018-05-24
US10325391B2 (en) 2019-06-18

Similar Documents

Publication Publication Date Title
US10325391B2 (en) Oriented image stitching for spherical image content
US10636220B2 (en) Methods and systems for generating a merged reality scene based on a real-world object and a virtual object
JP6643357B2 (ja) 全球状取込方法
US10102610B2 (en) Dual fisheye images stitching for spherical video
US6963348B2 (en) Method and apparatus for display image adjustment
US10321109B1 (en) Large volume video data transfer over limited capacity bus
TWI637355B (zh) 紋理貼圖之壓縮方法及其相關圖像資料處理系統與產生360度全景視頻之方法
US10397481B2 (en) Stabilization and rolling shutter correction for omnidirectional image content
US10891796B2 (en) Systems and methods for augmented reality applications
US11272153B2 (en) Information processing apparatus, method for controlling the same, and recording medium
GB2566006A (en) Three-dimensional video processing
Santos et al. Supporting outdoor mixed reality applications for architecture and cultural heritage
EP3322186A1 (en) Method and device for transmitting data representative of an image
Liao et al. Gpu parallel computing of spherical panorama video stitching
CN111970504A (zh) 利用虚拟投影反向模拟三维球体的展示方法、装置和系统
EP3330839A1 (en) Method and device for adapting an immersive content to the field of view of a user
US11948257B2 (en) Systems and methods for augmented reality video generation
CN117173378B (zh) 基于CAVE环境的WebVR全景数据展现方法、装置、设备及介质
US20240096035A1 (en) Latency reduction for immersive content production systems
US20220321778A1 (en) Camera positioning to minimize artifacts
CN115512087A (zh) 使用在预定距离处的遮挡表面生成和修改人工现实环境