KR102013403B1 - 구면 영상 스트리밍 - Google Patents

구면 영상 스트리밍 Download PDF

Info

Publication number
KR102013403B1
KR102013403B1 KR1020177027064A KR20177027064A KR102013403B1 KR 102013403 B1 KR102013403 B1 KR 102013403B1 KR 1020177027064 A KR1020177027064 A KR 1020177027064A KR 20177027064 A KR20177027064 A KR 20177027064A KR 102013403 B1 KR102013403 B1 KR 102013403B1
Authority
KR
South Korea
Prior art keywords
image
frame
video
quality
stream
Prior art date
Application number
KR1020177027064A
Other languages
English (en)
Other versions
KR20170123656A (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 구글 엘엘씨
Publication of KR20170123656A publication Critical patent/KR20170123656A/ko
Application granted granted Critical
Publication of KR102013403B1 publication Critical patent/KR102013403B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • 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
    • H04L65/4069
    • H04L65/604
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • 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/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

본 발명에 따른 방법은, 재생장치에서 제1품질을 갖는 제1영상 스트림을 수신하는 단계; 상기 제1영상 스트림의 일부분에 각각 대응하고, 상기 제1품질보다 상대적으로 높은 제2품질을 갖는 적어도 2개의 제2영상 스트림을 수신하는 단계; 상기 재생 장치에서 제1영상 스트림을 재생하는 단계; 상기 재생장치의 사용자 뷰 시점(view perspective)에 근거하여 상기 적어도 2개의 제2영상 스트림으로부터 제3영상 스트림을 선택하는 단계; 및 상기 재생장치에서 제1영상 스트림과 함께 상기 제3영상 스트림을 재생하는 단계;를 포함한다.

Description

구면 영상 스트리밍
본 출원은 "구면 영상 스트리밍 및 재생"이라는 제목으로, 2015년 5월 27일에 출원된 미국 특허출원 제62/167,260호에 대해 우선권을 주장하고, 상기 미국출원은 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다.
실시예들은 구면 영상 스트리밍(streaming spherical video)에 관한 것이다.
구면 영상 스트리밍(또는 다른 3차원 영상)은 상당한 양의 시스템 자원을 소비할 수 있다. 예를 들어, 인코딩된 구면 영상은 인코더 및 디코더와 관련된 처리 및 메모리뿐만 아니라 상당량의 대역폭을 소비할 수 있는 많은 수의 전송 비트를 포함할 수 있다.
예시적인 실시예들은 영상(video: 이하, '영상' 또는 '비디오' 라함) 스트리밍, 3D영상 스트리밍 및/또는 구면 영상 스트리밍을 최적화하기 위한 시스템 및 방법을 개시한다. 예시적인 실시예들은 영상의 재생, 3D영상의 재생 및/또는 구면 영상의 재생을 최적화하기 위한 시스템 및 방법을 개시한다.
일반적인 양태에서, 방법은 재생장치에서 제1품질을 갖는 제1영상 스트림을 수신하는 단계와, 재생장치에서 상기 제1영상 스트림의 일부분에 각각 대응하고, 상기 제1품질보다 상대적으로 높은 제2품질을 갖는 적어도 2개의 제2영상 스트림을 수신하는 단계와, 상기 재생 장치에서 상기 제1영상 스트림을 재생하는 단계와, 상기 재생장치의 사용자 뷰 시점(view perspective)에 근거하여 상기 적어도 2개의 제2영상 스트림으로부터 제3영상 스트림을 선택하는 단계와, 상기 재생장치에서 제1영상 스트림과 함께 제3영상 스트림을 재생하는 단계;를 포함한다.
구현들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 방법은 재생장치 사용자의 뷰 시점이 변경되었는지 결정하는 단계; 상기 변경된 뷰 시점에 근거하여 적어도 2개의 제2영상 스트림으로부터 제4영상 스트림을 선택하는 단계; 및 상기 재생장치에서 제1영상 스트림과 함께 제4영상 스트림을 재생하는 단계;를 더 포함할 수 있다. 상기 제1품질은 비트율 및 해상도에 근거하고, 상기 비트율은 최소 통신 채널 성능에 기초하고, 상기 해상도는 재생장치와 관련된 최소 픽셀 밀도에 근거한다. 에를 들어, 상기 방법은 제1영상 스트림을 버퍼링하는 단계를 더 포함할 수 있으며, 상기 재생장치에서 제1영상 스트림과 함께 제3영상 스트림을 재생하는 단계는 제1영상 스트림의 대응 부분을 제3영상 스트림으로 교체하는 단계, 상기 재생장치상에 결과를 랜더링 (rendering)하는 단계, 상기 제3영상 스트림에 문제(issue)가 있는지 결정하는 단계, 및 상기 제3영상 스트림에 문제가 있다고 결정되면 상기 버퍼링된 제1영상 스트림을 재생장치상에 랜더링하는 단계를 포함한다.
상기 재생 장치는 헤드 마운트 디스플레이(HMD)이고, 상기 재생 장치에서 제1영상 스트림과 함께 제3영상 스트림을 재생하는 단계는 HMD의 좌안 또는 우안 중 하나에 제1영상 스트림을 렌더링하는 단계와, 제3영상 스트림을 HMD의 좌안 또는 우안의 다른 디스플레이상에 렌더링하는 단계를 포함한다. 상기 적어도 2개의 제2 영상 스트림은 상이한 타임 스탬프로 인코딩된 관련 키 프레임을 갖는다.
예를 들어, 상기 방법은, 상기 적어도 2개의 제2영상 스트림 각각이 재생 장치의 가시 임계치 내에 있는지 결정하는 단계를 더 포함할 수 있으며, 상기 적어도 2개의 제2영상 스트림 각각이 재생의 가시 임계치 내에 있다고 결정하면, 상기 적어도 2개의 제영상 스트림들을 디코딩하고, 상기 적어도 2개의 제2영상 스트림들이 재생 장치의 가시 임계치 내에 있지 않다고 결정하면 상기 적어도 2개의 제2영상 스트림의 디코딩을 스킵한다.
다른 일반적인 양태에서, 방법은 제1품질로 영상 프레임을 인코딩하는 단계와, 영상의 프레임의 적어도 두 부분을 제1품질과 비교하여 더 높은 품질인 제2품질로 인코딩하는 단계와, 상기 영상 프레임을 저장하고, 상기 영상 프레임의 적어도 두 부분을 저장하는 단계를 포함한다.
구현들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 방법은 영상 프레임을 스트리밍하는 단계와 상기 영상 프레임의 적어도 두 부분을 스트리밍하는 단계를 더 포함할 수 있다. 상기 제2품질로 영상 프레임의 적어도 두 부분을 인코딩하는 단계는 상이한 타임 스탬프를 갖는 키 프레임을 사용하여 영상 프레임의 적어도 2개의 부분 각각을 인코딩하는 단계를 포함한다. 예를 들어, 상기 방법은 재생 장치와 관련된 움직임 양의 표시를 수신하는 단계와, 상기 움직임에 기초하여 상기 영상 프레임의 적어도 두 부분과 관련된 사이즈를 조정하는 단계를 더 포함할 수 있다. 영상을 스트리밍하기 위한 요청을 수신하는 단계, 상기 영상 프레임 및 상기 영상 프레임의 적어도 두 개의 부분 중 하나를 사용하여 프레임을 구성하고, 상기 구성된 프레임을 스트리밍하는 단계를 포함한다. 상기 영상 프레임은 구면 영상과 연관되어 있으며, 상기 영상 프레임을 인코딩하는 단계는 큐브맵으로서 영상 프레임을 투사하는 단계와, 등각 샘플링 알고리즘을 사용하여 큐브맵을 인코딩하는 단계를 포함한다.
상기 영상 프레임은 구면 영상과 관련되고, 상기 방법은 영상 프레임을 큐브 맵으로서 투사하는 단계와, 상기 큐브맵의 큐브면을 선택하는 단계를 더 포함한다.상기 영상 프레임을 인코딩하는 단계는 제1품질로 큐브면을 인코딩하는 단계를 포함하고, 상기 영상 프레임의 적어도 두 개의 부분을 인코딩하는 단계는 제2품질로 큐브면의 적어도 두 부분을 인코딩하는 단계를 포함한다. 예를 들어, 상기 방법은 영상 프레임을 스트리밍하는 단계와, 상기 영상 프레임의 적어도 두 부분을 스트리밍하는 단계와, 재생 장치상의 재생이 일시 정지되었다는 표시를 수신하는 단계와, 제2품질로 영상 프레임을 인코딩하는 단계와 상기 제2품질로 인코딩된 영상 프레인을 스트리밍하는 단계를 포함한다. 상기 제1품질은 저 프레임 전송율 고해상도 스트림, 모노 스트림, 감소된 컬러 스트림 및 블랙 및 화이트 스트림 중 적어도 하나에 기초한다. 예를 들어, 상기 방법은 영상 프레임을 복수의 인코딩된 프레임으로 스트리밍하는 단계와 제3품질을 달성하기 위하여 상기 영상의 스트리밍 동안 상기 복수의 인코딩된 프레임 중 적어도 하나를 드롭(drop)하는 단계를 더 포함할 수 있다.
또 다른 일반적인 양상에서, 서버 및/또는 스트리밍 서버는 인코더, 메모리 및 컨트롤러를 포함한다. 상기 인코더는 영상 프레임을 제1품질로 인코딩하고, 상기 영상 프레임의 적어도 두 부분을 제2품질로 인코딩하도록 구성되며, 상기 제2품질은 제1품질과 비교하여 더 높은 품질이다. 상기 메모리는 영상 프레임을 저장하고, 영상 프레임의 적어도 두 부분을 저장하도록 구성된다. 상기 컨트롤러는 인코딩된 프레임 및 영상 프레임의 인코딩된 적어도 두 개의 부분 중 하나 이상을 포함하는 영상을 스트리밍하도록 구성된다.
구현들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 상기 제2품질로 영상 프레임의 적어도 두 개 부분을 인코딩하는 단계는 상이한 타임 스탬프를 갖는 키 프레임을 사용하여 상기 영상 프레임의 적어도 두 개 부분 각각을 인코딩하는 단계를 포함한다. 상기 영상 프레임은 구면 영상와 연관되며, 상기 인코더는 영상 프레임을 큐브맵으로 투사하고, 상기 큐브맵의 큐브면을 선택하도록 또한 구성된다. 상기 영상 프레임을 인코딩하는 단계는 제1품질로 큐브면을 인코딩하는 단계를 포함하고, 상기 영상 프레임의 적어도 두개 부분을 인코딩하는 단계는 제2품질로 큐브면의 적어도 두 부분을 인코딩하는 단계를 포함한다.
예시적인 실시예들은 이하의 상세한 설명 및 첨부된 도면들로부터 더욱 완전히 이해될 것이며, 유사 구성 요소들은 단지 예시적인 방식으로 주어지며 따라서 예시적인 실시예들을 제한하지 않고 동일한 참조 번호들로 표시된다.
도 1 내지도 4는 적어도 하나의 예시적인 실시예에 따른 다양한 방법을 도시한다.
도 5는 적어도 하나의 예시적인 실시예의 타이밍도를 도시한다.
도 6-14는 적어도 하나의 예시적인 실시예에 따른 다양한 방법을 도시한다.
도 15는 3D가상 현실(VR) 환경에서 입체 이미지 및/또는 영상을 캡쳐링 및 랜더링하기 위한 예시적 시스템의 블록도이다.
도 16A는 적어도 하나의 예시적인 실시예에 따른 비디오 인코더 시스템을 도시한다.
도 16B는 적어도 하나의 예시적인 실시예에 따른 비디오 디코더 시스템을 도시한다.
도 17A는 적어도 하나의 예시적인 실시예에 따른 비디오 인코더 시스템에 대한 흐름도이다
도 17B는 적어도 하나의 예시적인 실시예에 따른 비디오 디코더 시스템에 대한 흐름도이다.
도 18은 적어도 하나의 예시적인 실시예에 따른 구의 2차원(2D) 표현을 도시한다.
도 19는 적어도 하나의 예시적인 실시예에 따른 시스템을 도시한다.
도 20은 본 명세서에 기술된 기술을 구현하는데 사용될 수 있는 컴퓨터 장치 및 이동 컴퓨터 장치의 개략적인 블록도이다.
이들 도면들은 소정의 예시적인 실시예들에서 이용되는 방법, 구조 및/또는 재료의 일반적인 특성을 설명하고 아래에 제공된 서면 설명을 보충하기 위한 것이다. 그러나, 이들 도면은 임의의 주어진 실시예의 정확한 구조적 또는 성능 특성을 확장하지 않고 정확하게 반영하지 않을 수 있으며, 예시적인 실시예들에 의해 포함되는 값 또는 특성의 범위를 정의 또는 한정하는 것으로 해석되어서는 안된다. 예를 들어, 구조 요소의 상대적 두께 및 위치 설정은 명료함을 위해 감소되거나 과장될 수 있다. 다양한 도면에서 유사하거나 동일한 참조 번호의 사용은 유사사 또는 동일한 요소 또는 특징의 존재를 나타내기 위한 것이다.
예시적인 실시예는 다양한 수정 및 대안적인 형태를 포함할 수 있지만, 그 실시예는 도면의 예로서 도시되며 본 명세서에서 상세히 설명될 것이다. 그러나, 예시적인 실시예를 개시된 특정 형태로 한정하려는 의도는 없지만, 반대로, 예시적인 실시예는 청구 범위의 범주 내에 속하는 모든 수정, 등가물 및 대안을 포함하는 것으로 이해되어야 한다. 동일한 도면 부호는 도면 전체에 걸쳐 동일한 요소를 나타낸다.
도 1 내지 도 4와 도 6 내지 도 14는 예시적인 실시예들에 따른 방법의 흐름도이다. 도 1 내지 도 4와 도 6 내지 도 14에 대하여 기술된 단계는 장치(예를 들어, 도 16에 도시된)에 관련된 메모리(예를 들어, 적어도 하나의 메모리 1610)에 저장된 소프트웨어 코드의 실행에 의해 수행될 수 있으며, 상기 장치에 관련된 적어도 하나의 프로세서(예를 들어, 적어도 하나의 프로세서 1605)에 의해 실행될 수 있다. 그러나, 특수 목적 프로세서로 구현된 시스템과 같이 대안적인 실시예들이 고려될 수 있다. 후술되는 단계들은 하나의 프로세서에 의해 실행되는 것처럼 설명된다 하더라도 상기 단계들이 반드시 동일한 프로세서에 의해 실행되는 것은 아니다. 다시 말해, 적어도 하나의 프로세서는 도 1 내지 도 4 및 도 6 내지 14에 관련하여 이하에서 설명된 단계들을 실행할 수 있다.
예시적인 구현들에 따르면, 구면 영상(spherical video) 및/또는 구면 영상의 프레임과 관련하여, 구(sphere)의 상이한 부분을 커버하는 복수의 상이한 뷰 시점(view perspective)이 인코딩될 수 있다. 일정 간격으로, 사용자가 보고 있는 것에서 최상의 품질을 제공하는 스트림(구면 영상의)이 선택되거나 스위칭될 수 있다(예를들어, 사용자의 이동에 따라). 예시적인 구현들에 따르면 구면 영상의 전체 구의 저해상도 영상 계층이 스트리밍될 수 있고, 동적으로 스위칭된 고해상도 시점(view point) 영상이 저 해상도 비디오의 상부에 스트리밍되고 합성될 수 있다. 상기 구의 일부를 각각 커버하는 고품질 스트림 및 저품질 스트림은 사용자의 뷰 시점에 기초하여 동적으로 스위칭될 수 있다. 고해상도 영상과 저해상도 영상 사이의 경계는 해상도 변화를 숨기기 위해 (masking) 혼합(블렌딩)될 수 있다(예를 들어, 픽셀들이 교번될 수 있다). 해상도를 증가시켜 렌더링된 영상의 품질을 향상시키기 위해 영상 타일 구조와 같은 풀 쿼드 트리가 조밀하게 채워질 수 있다. 게다가, 상기 구의 시청 부분에 대해 고해상도를 패키징하는 단일 동적 스위칭 스트림과 또한 동일 프레임에서 구의 나머지 부분의 저해상도 표현이 활용될 수 있다. 예시적 구현들은 사용자가 빠르게 도는 경우, 사용자가 보고 있는 고해상도 이미지(들)만은 제공할 수 있도록 전체 구에 대해 표시할 이미지를 가질 수 있다. 예시적 구현들은 클라이언트 측 복잡성(다수의 스트림 동기화/디코딩), 서버 저장 비용 등에서 절충(tradeoff)을 고려할 수 있다.
도 1은 적어도 하나의 예시적인 실시예에 따른 스트리밍 구면 영상의 스트림들 간 스위칭 방법을 나타낸다. 도 1에 도시된 바와 같이, 단계(105)에서, 구면 영상의 프레임은 제1품질로 인코딩된다. 예를 들어, 상기 프레임은 구면 영상이 디스플레이(예를들어, 헤드 마운트 디스플레이(HMD))상에서 재생될 때 최소 사용자 경험을 제공하도록 구성된 구성된 품질(예를 들어, 비트율 및 해상도)로 인코딩될 수 있다. 따라서, 상기 비트율은 최소 통신 채널 성능에 근거할 수 있으며, 상기 해상도는 최소 픽셀 밀도에 근거할 수 있다.
단계(S110)에서, 상기 인코딩된 프레임은 서버장치에 제1영상 스트림의 프레임으로서 저장된다. 예를 들어, 상기 인코딩된 프레임은 차후 재생을 위해 사용자 디바이스의 요청에 근거하여 저장될 수 있다.
단계(S115)에서, 상기 프레임의 복수의 부분(portions)은 제2품질로 뷰 시점에 근거하여 인코딩된다. 예를 들어, 상기 제2품질은 제1품질보다 높은 품질일 수 있다. 상기 제2품질은 재생시 보다 높은 픽셀 밀도를 갖는 해상도에 근거할 수 있고/있거나 상기 제1품질과 관련된 비트율보다 더 높은(예를 들어, 더 많은 데이터) 비트율로 구성될 수 있다. 상기 프레임의 복수의 부분은 예를 들어 HMD 사용자가 볼 것으로 예상되는 부분일 수 있다. 하나의 예시적 구현에서, 전체 프레임은 부분들로 분할되어 프레임의 복수의 부분으로서 인코딩된다.
단계(S120)에서, 상기 프레임의 복수의 부분은 복수의 제2영상 스트림으로서 서버 장치에 저장된다. 예를 들어, 상기 프레임의 인코딩된 복수의 부분은 차후 재생을 위해 사용자 디바이스의 요청에 근거하여 저장될 수 있다.
단계(S125)에서, 상기 제1영상 스트림은 재생 장치로 스트리밍된다. 예를 들어, 상기 제1영상 스트림은 HMD상에서 재생하기 위한 기저(base) 또는 최소 경험 비디오로서 스트리밍될 수 있다.
단계(S130)에서, 상기 복수의 제2영상 스트림 중 적어도 하나가 재생 장치로 스트리밍된다. 예를 들어, 제2스트림은 뷰 시점(또는 구면 영상의 시청자가 현재 주목하는 있는 것)에 근거하여 상기 복수의 제2영상 스트림으로부터 선택될 수 있다.
단계(S135)에서, 재생 장치에서 상기 제1영상 스트림은 재생 장치 상에 재생되거나 렌더링된다(디스플레이 용도으로). 예를 들어, 상기 제1영상 스트림은 HMD상에 렌더링되고 디스플레이될 수 있다. 상기 재생 장치에서의 단계(S40)에서, 상기 복수의 제2영상 스트림 중 2개(또는 그 이상)의 재생은 결정된 뷰 시점에 근거하여 스위칭된다. 예를 들어, HMD 사용자가 뷰 시점(예를 들어, 그녀의 머리 및/또는 눈을 움직이는)를 변경함에 따라, 상이한 제2영상 스트림이 HMD에서의 재생을 위해 선택될 수 있다. 다시 말해, 상기 HMD에서의 재생은 변경된(결정된) 뷰 시점에 근거하여 적어도 2개의 제2영상 스트림 사이에서 스위칭한다.
도 2는 전체 구의 저/중 품질 스트림을 버퍼링하는 방법을 도시한다. 도 2에 도시된 바와 같이, 단계(S205)에서, 구면 영상의 프레임은 제1품질로 인코딩된다. 예를 들어, 상기 프레임은 구면 영상이 디스플레이(예를 들어, 헤드 마운트 디스플레이(HMD))상에서 재생될 때 최소의 사용자 경험을 제공하기 위해 구성된 품질(예를 들어, 비트율 및 해상도)로 인코딩될 수 있다. 따라서, 상기 비트율은 최소 통신 채널 성능에 기초할 수 있고, 상기 해상도는 최소 픽셀 밀도에 기초할 수 있다. 상기 인코딩된 프레임은 재생 장치로 스트리밍된다(S210). 이어서 상기 인코딩된 프레임은 재생 장치에서 버퍼링된다(S215). 예를 들어, 상기 인코딩되고 스트리밍된 프레임들은 재생 장치의 메모리(또는 재생장치와 관련된 메모리)에 버퍼링(또는 큐잉)된다.
단계(S220)에서, 상기 프레임의 복수의 부분은 제2품질로 뷰 시점에 근거하여 인코딩된다. 예를 들어, 상기 제2품질은 제1품질보다 높은 품질 일 수 있다. 상기 제2품질은 재생시 더 높은 픽셀 밀도를 갖는 해상도에 근거할 수 있고/있거나 상기 제1품질과 관련된 비트율보다 더 높은(예를 들어, 더 많은 데이터) 비트율로 구성될 수 있다. 상기 프레임의 복수의 부분은 예를 들어 HMD 사용자에 의해 보여질 것으로 예상되는 부분일 수 있다. 하나의 예시적 구현에서, 상기 전체 프레임은 부분들로 분할되어 프레임의 복수의 부분으로서 인코딩된다. 상기 프레임의 인코딩된 복수의 부분은 재생 장치로 스트리밍된다(S225). 상기 재생 장치는 최소 또는 제1품질로 인코딩된 프레임과 상기 제2품질로 인코딩된 프레임의 복수의 부분(하나 이상)을 결합할 수 있다. 그런 다음 결과가 재생 장치에 렌더링될 수 있다.
단계(S230)에서, 상기 재생 장치는 상기 프레임의 인코딩된 부분에 문제(issue)가 있는지 결정한다. 예를 들어, 상기 스트림이 재생 위치를 포착하는 동안 의도하지 않게 상기 영상의 일시 정지를 초래할 수 있는 지연(latency)(e.g., 스트림 다운로드시에)이 존재할 수 있다. 상기 프레임의 인코딩된 부분에 문제가 있으면(S230), 상기 구면 영상의 재생이 대응되는 버퍼링된 영상으로 스위칭된다. 즉, 문제가 있는 경우 상기 버퍼링된 비디오 스트림이 재생 장치에 렌더링된다. 예를 들어, 상기 재생 장치는 버퍼(또는 큐)에 저장된 상기 버퍼링된(보다 낮은 품질) 구면 영상을 독출, 디코딩, 렌더링 및 디스플레이할 수 있다.
만약 사용자가 최근에 상대적으로 느리게 움직이거나 한 영역에 고정한 경우, 예시적인 구현은 상대적으로 더 높은 품질로 구의 비교적 작은 영역을 스트리밍할 수 있다. 만약 사용자가 머리를 자주 돌리면 예시적인 구현은 중간(moderate) 품질로 구의 더 큰 부분을 스트리밍할 수 있다. 예시적 구현에 따라, 머리 움직임의 평균 레벨(속도, 커버된 구의 양 등)가 일정 기간에 걸쳐 결정(또는 측정) 될 수 있고, 적절한 고품질 영역 사이즈가 선택될 수 있다.
도 3은 머리 움직임 양에 근거하여 고품질 영역의 사이즈를 적응시키는 방법을 도시한다. 도 3에 도시된 바와 같이, 단계(S305)에서, 머리 및/또는 눈 움직임의 양이 결정된다. 예를 들어, 방향 센서는 시청자의 눈(또는 머리)의 방향(또는 방향의 변화)을 검출할 수 있다. 예를 들어, 상기 방향 센서는 움직임을 검출하기 위한 가속도계와 방향을 검출하기 위한 자이로스코프를 포함할 수 있다. 대안으로 또는 추가적으로, 상기 방향 센서는 시청자의 눈 또는 머리의 방향을 결정하기 위하여 시청자의 눈 또는 머리에 초점이 맞추어진 카메라 또는 적외선 센서를 포함할 수 있다. 상기 움직양은 임계값 또는 임계값의 범위에 기반할 수 있다.
만약 상기 움직임의 양이 임계값을 초과하거나 또는 임계 값의 범위 내인 경우(단계 S310), 구면 영상의 일부분의 사이즈가 움직임에 근거하여 적응된다. 예를 들어, 만약 사용자가 머리를 상대적으로 천천히 움직이거나 일 영역에 고정하는 경우, 예시적 구현은 상대적으로 더 높은 품질로 상기 구의 상대적으로 작은 영역을 스트리밍할 수 있다. 만약 사용자가 머리를 자주 돌리면 예시적 구현은 중간 품질로 구의 더 큰 부분을 스트리밍할 수 있다.
만약 구면 영상을 나타내는 구의 사전 인코딩된 부분의 세트가 하나의 품질로 인코딩되면, 상기 구면 영상(또는 그 일부분)은 예를 들어 현재의 뷰 시점에 근거하여, 상기 사전에 인코딩된 부분을 단일 영상 비트스트림으로 스티칭 (stitching)함으로써 상기 사전 인코딩된 부분을 이용하여 재구성될 수 있다. 상기 구면 영상의 재구성은 요구에 따라 수행될 수 있으며 서버에서 수행될 수 있다.
도 4는 요구에 따라 영상 비트 스트림을 구성하는 방법을 도시한다. 도 4에 도시된 바와 같이, 단계(S405)에서, 구면 영상 프레임의 복수의 부분이 프레임 내의 이미지에 기초하여 생성된다. 예를 들어, 상기 복수의 부분은 유사하거나 유사한 인접 경계를 갖도록 생성될 수 있다. 구면 영상 프레임의 복수의 부분(S410), 예를 들어, 부분은 원하는 동일 품질에 근거하여 인코딩될 수 있다.
단계(S415)에서, 구면 영상 프레임의 인코딩된 복수의 부분은 복수의 타일(tile)로서 저장된다. 예를 들어, 상기 복수의 타일은 동일한 수의 픽셀을 나타내는 동일한 크기이다. 단계(S420)에서, 상기 구면 영상을 스트리밍하라는 요청을 수신한다. 예를 들어, 사용자 디바이스(e.g., HMD)는 재생을 위해 구면 영상을 요청한다. 서버는 복수의 타일에 기초하여 영상 프레임을 구성할 수 있다(S425). 예를 들어, 인접한 타일의 픽셀을 나타내는 비트들은, 디코딩될 때 사용자 디바이스상에 렌더링되어 디스플레이될 수 있는 재구성된 프레임을 생성하는 기술을 사용하는 데이터 패킷 내에 저장될 수 있다. 상기 구성된 프레임은 구면 영상의 복수의 프레임 중 하나로서 스트리밍된다(S430).
도 5A는 대응하는 시간(T)(505, 510, 515, 520)에서 생성된 n개의 키 프레임 (525, 530, 535, 540)을 나타낸다. 키 프레임 타이밍은 스위칭 지연(latency)을 줄이기 위하여 뷰 시점을 가로 질러 스태거링(staggered)될 수 있다. 예를 들어, 제1뷰 시점은 타임 스탬프 0, 2, 4 등(e.g., 초, 밀리 및 기타)의 키 프레임을 가질 수 있고, 제2뷰 시점은 1, 3, 5, 7 등(e.g.,초, 밀리 및 기타)의 키 프레임을 가질 수 있다. 타임 스탬프 2에서 제1뷰 시점이 선택될 수 있고, 타임 스탬프 3에서 제2뷰 시점이 선택될 수 있으며, 타임 스탬프 4에서 제1뷰 시점이 선택될 수 있다. 상기 스태거링된(가변적이거나 상이한) 타임 스탬프(들)는 상기 뷰 시점들이 동일한 타임 스탬프 간격으로 생성된 키 프레임들로 인코딩된 경우보다 보다 빠른 뷰 시점간 스위칭을 허용할 수 있다.
일부 연구는 한쪽 눈에는 고해상도 이미지가 표시되고 다른 쪽 눈에는 저해상도 이미지가 표시되면, 두뇌가 "빈칸 채우기" 분류를 수행하여 이미지가 괜찮아 보인다는 것을 보여주고 있다. 따라서, 눈을 가로 질러 키프레임이 스태거링되면(예를 들어, 왼쪽 눈에는 짝수 초마다 그리고 오른쪽 눈에서 홀수 초마다 스트림이 있음), 인지된 스트림 스위칭 시간은 저품질 영상에서 고품질 영상으로 스위칭할 때의 두 배가 될 수 있다.
가변 키 프레임 간격도 사용될 수 있다. 만약 장면의 가장 흥미있는 부분이 큰 이동(movement)을 만들면, 키 프레임 간격은 해당 이동 주위의 움직임(motion) 기간 동안 감소될 수 있다. 게다가, 초점(결상점) 및 평균 이동은 재생 동안 사용자 행동을 로깅(logging)하는 것에 의해 학습될 수 있다. 또는 돌출성(saliency) 이동의 컴퓨터 시각 분석을 사용하면 초기 이동 핫스팟을 제공할 수 있다.
만약 키프레임이 고정 간격(예컨대, 4 초마다)으로 생성되어야 한다면, 더 빠른 스위칭이 수행될 수 있도록 하기 위하여 대체 스트림들이 타임 라인의 다른 지점에 위치한 키 프레임으로 인코딩될 수 있다. 예를 들면 단일 뷰 시점과 연관된 4개의 스트림의 경우 스트림 A는 0, 4, 8 초에서 키 프레임을 가질 수 있고, 스트림 B는 1, 5, 9초에 키 프레임을 가질 수 있으며, 스트림 C는 2, 6, 10초에서 키 프레임을 가질 수 있고, 스트림 D는 3, 7, 11초에서 키 프레임을 가질 수 있다. 따라서, 단일 I- 프레임 헤비(heavy)(예를 들어, 감소된 압축 효율) 스트림을 필요하지 않으면서 0, 1, 2 또는 3초 스위치에서 뷰 시점이 달성될 수 있다.
일 구현에서, 이 클립들은 저장 오버헤드를 줄이기 위하여 서로 다른 길이로 인코딩될 수 있다(예를 들어, 4초마다 키 프레임으로 시작하는 전체 4초 스트림이 있는 경우 1초 키 프레임이 있는 3초 스트림을 해당 타임라인에 초 단위로 오프셋하고, 그런 다음 2초 스트림을 2초로 오프셋하고, 1초 스트림을 3초로 오프셋한다). 예를 들어, 스트림 A는 0초에서 시작하여 지속 시간 4, 스트림 B는 1초에서 시작하여 지속 시간 3, 스트림 C는 2초에서 시작하여 지속 시간 2, 스트림 D는 3초에서 시작하여 지속시간 1을 갖을 수 있다.
도 5B는 복수의 타임 스탬프 키 프레임을 사용하여 구면 영상를 인코딩하는 방법을 도시한다. 도 5B에 도시된 바와 같이, 단계(S505)에서 복수의 키 프레임이 구면 영상 내의 복수의 시간(또는 타임 스탬프들)에서 인코딩된다. 예를 들어 상술한 바와같이, 상기 키 프레임은 뷰 시점 및/또는 입체(좌안/우안) 뷰 또는 이미지를 가로질러 스태거링될 수 있다. 상기 키 프레임들은 고정 간격으로 생성될 수 있다.
단계(S510)에서, 인코딩될 프레임은 복수의 키 프레임 중 하나와 연관된다. 예를 들어, 제1뷰 시점은 제1키 프레임과 연관될 수 있고 제2뷰 시점은 제2키 프레임과 연관될 수 있다. 좌안 프레임은 제1키 프레임과 연관될 수 있고, 우안 프레임은 제2키 프레임과 연관될 수 있다. 그러 다음, 상기 인코딩될 프레임은 상기 연관된 키 프레임에 기초하여 인코딩된다(S515).
사용자가 구면 영상의 저품질 부분을 볼 것으로 기대되지 않는 사용 예에서, 일부 프레임 또는 프레임의 일부분에 대하여 디코딩이 스킵(skip)될 수 있다. 도 6은 구면 영상의 저품질 부분의 디코딩을 스킵하기 위한 방법을 나타낸다. 도 6에 도시된 바와같이, 단계(S605)에서, 스트리밍 구면 영상의 프레임이 수신된다. 상기 프레임은 복수의 인코딩된 부분을 포함한다.
단계(S610)에서, 인코딩된 부분이 가시 임계값(viewable threshold) 내에 있는지 결정된다. 만약 인코딩된 부분이 가시 임계값 내에 있지 않으면, 처리는 단계 (S620)로 진행하고 디코딩은 수행되지 않거나 스킵된다. 그렇지 않으면, 처리는 상기 부분이 디코딩되는 단계(S615)로 진행한다.
정방형 투영(equirectangular projection)은 일부 구면 영상들 및/또는 이미지들에게 비효율적일 수 있다. 예를 들어, 끝(pole) 쪽의 픽셀 밀도에는 원하는 것보다 많은 픽셀이 할당되는 반면 시청자는 일반적으로 중앙(equator) 쪽에 더 관심이 있다. 게다가, 정방형 투영은 직선을 구부려서 인코딩을 더욱 어렵게 만들 수 있다. 각 면(face)이 일반 영상처럼 보이기 때문에 큐브맵을 사용하여 구면 이미지를 인코딩하는 것이 더 효과적 일 수 있다. 따라서, 각 면이 픽셀 밀도를 변화시키기 위한 보상 없이 인코딩될 수 있다. 그러나, 큐브맵들은 구형의 매우 균일하지 않은 샘플링을 생성할 수 있다(면의 에지/코너들에 더 많은 픽셀). 예시적인 실시예에서, 큐브맵은 각 면에 대해 90×90 정도의 각도로 고르게 샘플링될 수 있다. 이것은 균일한(또는 다소 균일한) 샘플링 또는 구형의 등가 샘플링을 제공하는 투영을 가져온다. 따라서 각 면이 기존 코덱을 사용하여 적절히 압축될 수 있다. 예를 들어, 각 큐브면은 약간의 어안(fusheye) 효과가 있는 일반 영상 투영처럼 나타날 수 있다.
도 7은 구면 영상의 인코딩 방법을 나타낸다. 도 7에 도시된 바와 같이, 단계(S705)에서 구면 이미지 또는 프레임은 큐브 맵으로서 투영된다. 단계(S710)에서 상기 큐브맵은 등각 샘플링 알고리즘을 사용하여 인코딩된다. 예를 들어, 큐브맵의 각 면은 면의 가장자리 또는 에지에서 보다 면의 중심에서 더 높은 샘플링 레이트로 샘플링된다.
도 8은 구면 영상를 스트리밍하는 방법을 나타낸다. 도 8에 도시된 바와 같이, 단계(S805)에서, 인코딩을 위해 구면 이미지 또는 프레임의 큐브맵 투영의 큐브면(cubeface)이 선택된다.
단계(S810)에서 큐브면은 제1품질로 인코딩된다. 예를 들어, 상기 프레임은 구면 영상이 디스플레이(예를 들어, 헤드 마운트 디스플레이(HMD)상에서 재생될 때 최소 사용자 경험을 제공하도록 구성된 품질(예를 들어, 비트율 및 해상도)로 인코딩될 수 있다. 따라서, 상기 비트율은 최소 통신 채널 성능에 기초할 수 있고, 상기 해상도는 최소 픽셀 밀도에 기초할 수 있다. 게다가, 상기 큐브면은 등각 샘플링 알고리즘을 사용하여 샘플링될 수 있다.
단계(S815)에서, 상기 인코딩된 큐브면은 제1영상 스트림의 프레임의 일부로서 서버 장치에 저장된다. 예를 들어, 상기 인코딩된 큐브면은 사용자 디바이스로부터의 요청에 근거하여 차후 재생을 위해 저장될 수 있다.
단계(S820)에서, 상기 큐브면의 복수의 부분은 제2품질의 뷰 시점에 기초하여 인코딩된다. 예를 들어, 상기 제2품질은 제1품질보다 높은 품질일 수 있다. 상기 제2품질은 재생시보다 높은 픽셀 밀도를 갖는 해상도에 기초할 수 있고 및/또는 제1품질과 관련된 비트율보다 더 높은(예를 들어, 더 많은 데이터) 비트율로 구성될 수 있다. 상기 큐브면의 복수의 부분은, 예를 들어 HMD 사용자가 보게 될 것으로 예상되는 부분들일 수 있다. 하나의 예시적인 구현에서, 상기 전체 큐브면은 부분들로 분할되어 프레임의 복수의 부분들로서 인코딩된다.
단계(S825)에서, 상기 큐브면의 복수의 부분은 복수의 제2영상 스트림으로서 서버 장치에 저장된다. 예를 들어, 상기 큐브면의 인코딩된 복수의 부분은 사용자 디바이스로부터의 요청에 근거하여 차후 재생을 위해 저장될 수 있다.
단계(S830)에서, 상기 제1영상 스트림은 재생 장치로 스트리밍된다. 예를 들어, 상기 제1영상 스트림은 HMD상에서 재생하기 위한 기저(base) 또는 최소 경험 비디오로서 스트리밍 될 수 있다.
단계(S835)에서, 상기 복수의 제2영상 스트림 중 적어도 하나가 재생 장치로 스트리밍된다. 예를 들어, 제2스트림은 뷰 시점(또는 구면 영상의 시청자가 현재 주목하고 있는 것)에 근거하여 복수의 제2영상 스트림으로부터 선택될 수 있다.
상기 재생 장치에서의 단계(S840)에서, 상기 제1영상 스트림이 재생된다. 예를 들어, 상기 제1영상 스트림은 HMD상에 렌더링되고 디스플레이될 수 있다. 재생 장치에서의 단계(S845)에서, 복수의 제2영상 스트림 중 2개(또는 그 이상)의 재생이 결정된 뷰 시점에 기초하여 스위칭된다. 예를 들어, HMD 사용자가 뷰 시점(예를 들어, 그녀의 머리 및/또는 눈을 움직이는)를 변경함에 따라, 상이한 제2영상 스트림들이 HMD상에서의 재생을 위해 선택될 수 있다.
예시적인 구현들에서, 영상은 프레임 내 및 프레임 사이에서 균일한 품질을 가지지 않고 스트리밍될 수 있다. 만약 사용자가 일시 정지하고 주변을 둘러보면, 구면 이미지의 전체 구에 대해 고품질(예컨대, 고해상도) 컨텐츠가 스트리밍될 수 있다. 이 기술은 기존의 스트림을 사용하여 구현될 수 있는데, 필요한 뷰 관점에서 프레임을 찾아서 디코딩한 다음 고해상도 스틸(still)로 합성한다. 대안으로 또는 부가적으로, 부가 스트림이 선택되거나 다운로드될 수 있다. 하나의 예시적인 구현에서, 최고 비디오 품질보다 높은(예를 들어, 스틸 이미지로) 품질이 사용될 수 있으므로, 상세 세목(fine detail)을 검사하기 위해 일시 정지상태로 만든다.
도 9는 구면 영상를 스트리밍하는 방법을 도시한다. 도 9에 도시된 바와 같이, 단계(S905에서, 구면 영상 스트리밍이 일시 정지(pause)되었는지가 결정된다. 상기 스트리밍 영상은 제1품질로 스트리밍된다. 상기 일시 정지는 재생 장치와의 사용자 상호 작용에 근거할 수 있고/있거나 상기 구면 영상 스트리밍은 일부 타임 스탬프에서 일시 중지하도록 구성될 수 있다. 상기 재생 장치는 일시 정지를 스트리밍 서버에 전달할 수 있다.
단계(S910)에서, 제2품질에서 구면 영상 스트리밍이 트리거된다. 상기 스트리밍은 구면 영상의 전체 구 또는 그 일부를 포함할 수 있다.
단계(S915)에서, 상기 제1품질로 스트리밍된 영상은 제2품질로 스트리밍된 영상과 합성된다. 예를 들어, 상기 제2품질로 스트리밍된 영상은 상기 제1품질로 스트리밍된 영상에서 누락된 픽셀을 채울 수 있다. 예를 들어, 상기 제2품질로 스트리밍된 영상은 상기 제1품질로 스트리밍된 영상의 픽셀을 대체 할 수 있다. 예를 들어, 상기 제2품질로 스트리밍된 영상은 상기 제1품질로 스트리밍된 영상의 픽셀을 중첩(overlay)할 수 있다.
HMD를 포함하는 사용 예에서, 디스플레이의 중간 부분은 고화질 이미지를 표시해야 한다. 따라서, 예시적인 구현들은 디스플레이 중간 부분에 고해상도 컨텐츠를 스트리밍해야 한다. 또한, 시선 추적 기능을 추가하면 눈이 보고 있는 곳에 고해상도 컨텐츠가 제공될 수 있다. 스트리밍 레벨에서, 뷰 시점에서 좁고 높은 품질의 비디오가 스트리밍될 수 있다. 디코딩 레벨에서, 중앙 영역을 전체적으로 디코딩하도록(예컨대, SVC를 사용하여) 코덱이 적용될 수 있다. 렌더링시 중앙 영역만 고품질로 GPU에 업로드될 수 있다(일부 GPU 대역폭 절약 가능).
도 10은 구면 영상을 스트리밍하는 방법을 도시한다. 도 10에 도시된 바와 같이, 단계(S1005)에서, 스트리밍 구면 영상에 대한 뷰 시점은 헤드 마운트 디스플레이(HMD) 위치 및/또는 아이 트래킹(eye tracking)에 기초하여 결정된다. 예를 들어, 방향 센서는 시청자의 눈(또는 머리)의 방향(또는 방향의 변화)을 검출하도록 구성될 수 있다. 예를 들어, 상기 방향 센서는 움직임을 검출하기 위한 가속도계 와 방향을 검출하기 위한 자이로스코프를 포함할 수 있다. 대안으로 또는 추가적으로, 상기 방향 센서는 시청자의 눈 또는 머리의 방향을 결정하기 위해 시청자의 눈 또는 머리에 초점을 맞춘 카메라 또는 적외선 센서를 포함할 수 있다.
단계(S1010)에서, 눈 중심 구조 및 사람의 눈의 중심 위치에 대한 기준을 나타내는 눈 중심 기준(foveal reference)은 뷰 시점에 기초하여 결정된다. 예를 들어, 상기 중심 눈 기준은 아이 트래킹을 사용하여 결정된 뷰 시점과 뷰 심도(view depth)를 고려할 수 있다. 예시적인 구현에서, 뷰 심도는 각 눈 사이의 눈 중심 거리에 기초하여 결정될 수 있다. 환언하면, 사람의 눈이 다양한 깊이로 집중함에 따라, 각 눈의 중심(e.g., 눈동자) 사이의 거리가 변할 수 있다. 구면 영상은 고품질 영상이 눈 중심 기준에서 HMD상에 표시되도록 스트리밍된다(S1015).
도 11은 구면 영상을 스트리밍하는 방법을 도시한다. 도 11에 도시된 바와 같이, 단계(S1105)에서, 스트리밍 구면 영상의 제1부분은 스트리밍 구면 영상의 제2부분과 연관된 제2품질보다 낮은 제1품질로 스트리밍되도록 결정된다. 예를 들어, 스트리밍 구면 영상의 제1부분은 시청자의 뷰 시점 밖에 있다고 결정될 수 있다. 따라서 고화질 영상은 사용자 경험에 중요하지 않을 가능성이 높다.
단계(S1110)에서, 상기 구면 영상의 스트리밍은 상기 스트리밍 구면 영상의 제1부분이 (1) 낮은 프레임 레이트, 고해상도 스트림, (2) 모노 스트림 및/또는 (3) 저감된 색(또는 흑백) 중의 적어도 하나가 되도록 트리거된다. 예를 들어, 저 프레임 레이트, 고해상도 스트림은 이미지로의 변경은 덜 매끄럽지만 이미지 자체가 더 선명하기 때문에 선호될 수 있다. 모노 스트림은 저품질 3D 스트림에 선호될 수 있다. 저감된 색상은 이미지가 선명하지 않을 수 있지만 이미지가 더 명확할 수 있다.
스트림들은 시청자의 예상된 행동에 기초하여 스위칭될 수 있다. 예를 들어, 예시적인 구현은 재생 장치의 사용자가 다음에 보려고 하는 위치를 예측할 수 있다. 사용자의 머리 움직임을 모니터링하면 장면을 탐색할 때 그들은 왼쪽/오른쪽으로 돌리는 경향이 있다. 방향 및 상대적인 움직임을 결정함에 의해 상기 스트림은 다음 키 프레임에서 사용자의 머리가 어디에 있는지 예측함으로써 변경될 수 있다. 이 기능을 사용하여 가능한 한 자주 고해상도 콘텐츠를 볼 수 있다.
도 12는 구면 영상의 스트리밍 방법을 도시한다. 도 12에 도시된 바와 같이, 단계(S1205)에서 헤드 마운트 디스플레이(HMD)의 사용자의 행동이 결정된다. 예를 들어, 방향 센서는 시청자의 눈(또는 머리)의 방향(또는 방향의 변화)을 검출하도록 구성될 수 있다. 예를 들어, 상기 방향 센서는 움직임을 검출하기 위한 가속도계와 방향을 검출하기 위한 자이로스코프를 포함할 수 있다. 대안으로 또는 추가적으로, 상기 방향 센서는 관찰자의 눈 또는 머리의 방향을 결정하기 위해 관찰자의 눈 또는 머리에 초점을 맞춘 카메라 또는 적외선 센서를 포함할 수 있다. 이력적인(historical)(예컨대, 마지막 이동) 방향 변경은 행동 또는 다음 이동을 결정하는데 사용될 수 있다.
단계(S1210)에서, 구면 영상의 스트림은 상기 결정된 행동에 기초하여 HMD로 스트리밍될 것으로 예측된다. 예를 들어, 왼쪽에서 오른쪽으로의 동작(또는 행동)이 결정될 수 있다. 왼쪽에서 오른쪽으로의 동작은 스트리밍될 다음(예컨대, 고품질) 스트림을 예측하는데 사용될 수 있다. 스트리밍될 다음 스트림은 다음 키 프레임 구간에서 인코딩될 수 있다. 그런 다음, 단계(S1215)에서, 구면 영상의 예측된 스트림이 HMD(또는 HMD와 연관된 컴퓨팅 장치)로 스트리밍된다.
SVC(Scalable Video Coding)는 스트림-스위칭보다 빠른 품질 적응을 허용하도록 구성될 수 있다. 또한 스트림 스위칭과 스케일러블(scalable) 스트림의 일부 융합(hybrid)도 선호될 수 있다.
도 13은 구면 영상을 스트리밍하는 방법을 도시한다. 도 13에 도시된 바와 같이, 단계(S1305)에서 구면 영상은 제1품질로 인코딩된다. 단계(S1310)에서, 구면 영상의 스트리밍이 트리거된다. 예를 들어, 재생 장치는 영상이 통신 링크를 통해 스트리밍되도록 요청할 수 있다. 단계(S1315)에서, 상기 구면 영상의 적어도 하나의 프레임은 구면 영상에 대한 제2품질을 달성하기 위해 구면 영상의 스트리밍 동안 드롭(drop)된다. 상기 구면 영상의 제2품질은 구면 영상의 제1품질보다 낮다. 예를 들어, 모든 다른 프레임은 상기 스트림이 저품질 스트림으로 설정된 사용 예에서 드롭될 수 있다. 하나의 예시적인 구현에서, 상기 스트림은 저품질의 설정에서 고품질로 변경될 수 있다. 따라서, 프레임의 드롭핑(dropping)은 종료될 수 있고/있거나 더 적은 프레임이 드롭되어 더 높은 품질의 스트림이 될 수 있다.
모자이크식(tessellated) 메쉬를 사용하고 꼭지점(vertex) 레벨에서 수행된 왜곡 보정을 갖는 것은 왜곡 보정의 조각별 근사를 제공할 수 있다. 예를 들어, 삼각형 크기가 같다고 가정하면 이는 완성된 메쉬에서 왜곡 보정 후 렌더링을 수행하는 것과 같다. 그러나, 추가 렌더링 경로(pass)가 필요하지 않을 수도 있다. 테셀레이션된 메쉬를 사용하면 다음과 같은 이점, (1) 사후 왜곡은 더 큰 크기의 텍스처 메쉬로 렌더링해야 하고, (2) 샘플링이 화면 픽셀 당 수행될 수 있고, (3) 하나의 렌더링 경로를 제거할 수 있고, (4) 비가시(non-visible) 영상을 렌더 시간(render time) 이전에 제거할 수 있으며, (5) 처리되는 기하학(geometry) 양을 3배로 하는 비용으로 색수차를 보정할 수 있다.
도 14는 구면 영상을 스트리밍하는 방법을 나타낸다. 도 14에 도시된 바와 같이, 단계(S1405)에서, 디코딩된 픽셀은 복수의 꼭지점 세트로 그룹화된다. 예를 들어, 인접 픽셀들은 다각형(예를 들어, 삼각형) 형태로 그룹화될 수 있다.
단계(S1410)에서, 상기 복수의 꼭지점 세트는 모자이크식 메쉬로 그룹화된다. 예를 들어, 상기 모자이크식 메쉬는 큐브 형태 일 수 있다.
단계(S1415)에서, 왜곡 보정은 모자이크식 메쉬에 적용된다. 예를 들어, 재생 장치(예를 들어, HMD)는 예를 들면, 렌즈 및/또는 디스플레이와 관련된 알려진 또는 소정의 왜곡을 가질 수 있다. 이 왜곡은 모자이크식 메쉬에 보정을 적용하여 수정할 수 있다. 이어서, 단계(S1420)에서, 상기 왜곡 보정된 모자이크식 메쉬는 HMD에 표시하기 위해 렌더링된다.
도 15는 3D 가상현실(VR) 환경에서 입체 파노라마를 촬영 및 렌더링하기 위한 예시적인 시스템(1500)의 블록도이다. 예시적인 시스템(1500)에서, 카메라 리그(rig)(1502)는 네트워크(1504)를 통해 이미지를 촬영 및 제공하거나 또는 대안으로 분석 및 처리를 위해 이미지를 이미지 처리 시스템(1506)으로 직접 제공할 수 있다. 시스템(1500)의 일부 구현에서, 이동 장치(1508)는 네트워크(1504)를 통해 이미지를 제공하기 위해 카메라 리그(1502)로서의 기능을 할 수 있다. 일단 이미지가 촬영되면, 상기 이미지 처리 시스템(1506)은 이미지에 대한 다수의 계산 및 처리를 수행할 수 있고, 상기 처리된 이미지는 예를 들면 네트워크(1504)를 통해 렌더링하기 위해 헤드 마운트 디스플레이(HMD) 장치(1510)로 제공될 수 있다. 일부 구현들에서, 상기 이미지 처리 시스템(1506)은 렌더링, 저장 또는 추가 처리를 위하여 이동 장치(1508) 및/또는 컴퓨팅 장치(1512)로 상기 처리된 이미지를 제공할 수도 있다.
상기 HMD 장치(1510)는 가상 현실 헤드셋, 안경, 접안 렌즈 또는 가상 현실 콘텐츠를 디스플레이할 수 있는 다른 웨어러블 디바이스를 나타낼 수 있다. 동작 중에, 상기 HMD 장치(1510)는 수신 및/또는 처리된 이미지를 사용자에게 재생할 수 있는 VR어플리케이션(미도시)을 실행할 수 있다. 일부 구현들에서, 상기 VR어플리케이션은 도 15에 도시된 장치(1506, 1508 또는 1512)들 중의 하나 이상에 의해 호스팅(host)될 수 있다. 일 예에서, 상기 HMD 장치(1510)는 카메라 리그(1502)에 의해 촬영된 장면의 영상 재생을 제공할 수 있다. 다른 예에서, 상기 HMD 장치(1510)는 단일 파노라마 장면으로 결합된(stitched) 스틸(still) 이미지의 재생을 제공할 수 있다.
상기 카메라 리그(1502)는 VR환경에서 콘텐츠 렌더링을 위한 이미지 데이터를 수집하기 위해 카메라(또는 캡처 장치) 및/또는 처리 장치로서 사용되도록 구성될 수 있다. 카메라 리그(1502)가 본 명세서에서 특정 기능으로 기술된 블록도로 도시되어 있지만, 리그(1502)는 다른 형태를 가질 수 있으며 추가로 부가 기능을 가질 수 있다. 예를 들어, 시스템(1500)의 기능을 간단하게 설명하기 위해, 도 15는 이미지를 촬영하기 위해 리그 주위에 배치된 카메라가 없는 카메라 리그(1502)를 도시한다. 카메라 리그(1502)의 다른 구현들은 리그(1502)와 같은 원형 카메라 리그의 원주 둘레에 배치될 수 있는 임의의 수의 카메라를 포함할 수 있다.
도 15에 도시된 바와 같이, 상기 카메라 리그(1502)는 다수의 카메라(1530) 및 통신 시스템(1532)을 포함한다. 상기 카메라(1530)는 단일 스틸 카메라 또는 단일 영상 카메라를 포함할 수 있다. 일부 구현들에서, 상기 카메라(1530)는 리그 (1502)의 외주(예를 들어, 링)를 따라 나란히 배치된(예를 들어, 위치된) 다수의 스틸 카메라 또는 다수의 영상 카메라를 포함할 수 있다. 상기 카메라(1530)는 영상 카메라, 이미지 센서, 입체 카메라, 적외선 카메라 및/또는 이동 장치일 수 있다. 상기 통신 시스템(1532)은 이미지, 명령 및/또는 다른 카메라 관련 콘텐츠를 업로드 및 다운로드하는데 사용될 수 있다. 상기 통신은 유선 또는 무선일 수 있으며 사설 또는 공용 네트워크를 통해 인터페이스할 수 있다.
상기 카메라 리그(1502)는 고정 리그 또는 회전 리그 기능을 하도록 구성될 수 있다. 상기 리그 상의 각 카메라는 리그를 위해 회전 중심으로부터 간격을 두고(offset) 배치(예컨대, 위치)된다. 상기 카메라 리그(1502)는 예를 들어, 장면의 360도 뷰의 전부 또는 일부를 스윕(sweep) 및 캡처하기 위해 약 360도 회전하도록 구성될 수 있다. 일부 구현들에서 상기 리그(1502)는 정지 위치에서 작동하도록 구성될 수 있으며, 이러한 구성에서, 장면에 대한 추가적인 외측 각도를 촬영하기 위해 부가적인 카메라들이 리그에 추가될 수 있다.
일부 구현들에서, 상기 카메라 리그(1502)는 주변 장면이나 환경의 다른 부분을 보기 위하여 그들의 렌즈가 방사상으로 바깥 방향을 향하도록 좌우 또는 앞뒤로(back-to-back)으로 배치된 다중 디지털 영상 카메라를 포함한다. 일부 구현들에서, 다중 디지털 영상 카메라는 원형 카메라 리그(1502)에 접하는 시선 방향을 갖는 접선 배열 형태로 배치된다. 예를 들어, 상기 카메라 리그(1502)는 그들의 렌즈가 각각 리그의 기저(베이스)에 접선으로 배열되어 있는 동안 방사상으로 바깥 방향을 가리키도록 배치된 다중 디지털 영상 카메라를 포함한다. 상기 디지털 영상 카메라는 주위 장면의 다른 각진 부분(angled portion)을 보기 위해 다른 방향에서 콘텐츠를 촬영하도록 지시될 수 있다.
일부 구현들에서, 상기 카메라들은 카메라 리그(1502)상의 스테레오 쌍 내에 배치된다. 이러한 구현에서, 각 스테레오 쌍에서 각각의 제1카메라는 카메라 리그베이스의 원형 경로에 접선 방향으로 배치(예컨대, 위치)되어 좌측 방향으로(카메라 렌즈와 함께) 정렬된다. 각 스테레오 쌍에서 각각의 제2카메라는 카메라 리그 베이스의 원형 경로에 접선 방향으로 배치(예컨대, 위치)되어 (카메라 렌즈와 함께) 우측 방향으로 포인팅을 정렬한다.
상기 카메라 리그(1502)상에 사용되는 카메라에 대한 예시적인 설정은 초당 약 60프레임의 순차 주사 모드(예를 들어, 모든 다른 라인이 대부분의 영상 카메라의 표준 녹화 모드이지만, 각 래스터 라인이 영상의 각 프레임을 생성하기 위해 샘플링되는 모드)를 포함한다. 부가적으로, 각 카메라는 동일한(또는 유사한) 설정으로 구성될 수 있다. 각 카메라를 동일한(또는 유사한) 설정으로 구성하는 것은 촬영 후에 바람직한 방식으로 함께 결합될 수 있는 이미지를 촬영할 수 있는 이점이 있다. 예시적인 설정은 하나 이상의 카메라를 동일한 줌, 초점, 노출 및 셔터 속도로 설정하는 것뿐만 아니라 상기 카메라들이 상관 또는 턴오프된 안정화 기능들로 화이트 밸런스되도록 하는 설정을 포함할 수 있다.
일부 구현 예에서, 카메라 장치(1502)는 하나 이상의 이미지 또는 영상을 촬영하는데 사용되기 전에 교정(calibration)될 수 있다. 예를 들어, 카메라 리그 (1502)상의 각 카메라는 파노라마 영상을 촬영하기 위해 교정 및/또는 구성될 수 있다. 상기 설정은 약 360도 스윕(sweep)의 특정 회전 속도, 넓은 시야각 및 시계 방향 또는 반시계방향으로 작동하도록 리그를 구성하는 것을 포함될 수 있다. 일부 구현들에서, 리그(1502)상의 카메라들은, 예를 들어, 장면 주위의 촬영 경로의 360도 스윕 정도마다 하나의 프레임이 캡처되도록 구성될 수 있다. 일부 구현들에서, 리그(1502)상의 카메라들은, 예를 들어 장면 주위의 촬영 경로의 360도(또는 그 이하) 스윕 정도마다 다중 프레임을 캡처하도록 구성될 수 있다. 일부 구현들에서, 리그(1502) 상의 카메라들은, 예를 들어, 각도(degree)마다 특히 측정된 프레임을 촬영하는 것 없이, 장면 주위의 촬영 경로의 스윕 주위에 다수의 프레임을 촬영하도록 구성될 수 있다.
일부 구현들에서, 상기 카메라들은 특정 시점에서 카메라 리그 상의 카메라로부터의 비디오를 촬영하기 위해 동기되어 기능하도록 구성(예컨대, 설정)될 수 있다. 일부 구현들에서, 상기 카메라들은 시간주기 동안 하나 이상의 카메라로부터의 영상의 특정 부분을 캡처하도록 동기되어 기능하도록 구성될 수 있다. 상기 카메라 리그를 교정하는 다른 예는 수신(incoming) 이미지를 저장하는 방법이 포함될 수 있다. 예를 들어, 수신 이미지를 개별 프레임 또는 영상(예컨대, .avi 파일, .mpg 파일)로 저장할 수 있으며, 상기 저장된 이미지는 인터넷, 다른 서버 또는 장치에 업로드되거나 카메라 로그(1502) 상의 각 카메라와 함께 국부적으로 (locally) 저장될 수 있다. 일부 구현들에서, 수신 이미지는 인코딩된 비디오로서 저장될 수 있다.
이미지 처리 시스템(1506)은 보간 모듈(1514), 촬영 보정 모듈(1516) 및 스티칭(stitching) 모듈(1518)을 포함한다. 예를 들어, 상기 보간 모듈(1516)은 디지털 이미지 및 영상의 일부분들을 샘플링하고 상기 카메라 리그(1502)에서 촬영된 인접 이미지간에 발생할 가능성이 있는 다수의 보간된 이미지를 결정하는데 사용될 수 있는 알고리즘을 나타낸다. 일부 구현들에서, 상기 보간 모듈(1514)은 인접 이미지 사이의 보간된 이미지-단편들(fragments), 이미지-부분들 및/또는 수직 또는 수평 이미지-스트립들(strips)을 결정하도록 구성될 수 있다. 일부 구현들에서, 상기 보간 모듈(1514)은 인접 이미지의 관련 픽셀사이의 플로우(flow) 필드(및/또는 플로우 벡터)를 결정하도록 구성될 수 있다. 플로우 필드는 이미지가 받는 변형 및 변형된 이미지를 처리하기 위해 사용될 수 있다. 예를 들어, 플로우 필드는 획득된 이미지의 특정 픽셀 격자(grid)의 변환을 보상하는데 사용될 수 있다. 일부 구현들에서, 상기 보간 모듈(1514)은 주변 이미지의 보간에 의해, 촬영 이미지의 일부가 아닌 하나 이상의 이미지를 생성할 수 있고, 생성된 이미지를 촬영 이미지로 인터리빙하여 장면에 대한 추가적인 가상 현실 컨텐츠를 생성할 수 있다.
상기 촬영 보정 모듈(1516)은 비 이상적인 촬영 설정(setup)을 보상함으로써 촬영 이미지를 보정하도록 구성될 수 있다. 예시적인 촬영 설정은 비 제한적인 예로, 원형 카메라 궤적, 평행 주축(카메라), 카메라 궤적에 수직인 시선 방향, 카메라 궤적에 접하는 시선 방향 및/또는 다른 촬영 조건을 포함할 수 있다. 일부 구현들에서, 상기 촬영 보정 모듈(1516)은 이미지 촬영 동안의 비 원형 카메라 궤적 및/또는 이미지 촬영 동안의 비평행 주축 중 하나 또는 둘 모두를 보상하도록 구성될 수 있다.
상기 촬영 보정 모듈(1516)은 카메라 이격(separation)이 약 30도보다 큰 다수의 카메라를 사용하여 촬영된 컨텐츠를 보상하도록 특정 이미지 세트를 조정하도록 구성될 수 있다. 예를 들어, 카메라들간 거리가 40도인 경우, 촬영 보정 모듈 (1516)은 추가 카메라로부터 컨텐츠를 수집하거나 누락된 컨텐츠를 보간함으로써 너무 작은 카메라 커버리지에 근거하여 특정 장면에서 누락된 컨텐츠를 처리할 수 있다.
일부 구현들에서, 촬영 보정 모듈(1516)은 또한 카메라 포즈 에러에 기인한 카메라 오정렬을 보상하기 위해 이미지 세트를 조정하도록 구성될 수 있다. 예를 들어, 이미지 촬영 동안 카메라 포즈 에러(예컨대, 카메라의 방향과 위치로 인한 에러)가 발생하면, 모듈(1516)은 여러개의 이미지 프레임으로부터의 두 개 이상의 픽셀 열을 혼합하여 열악한 노출(이미지 프레임 간 노출 변화) 및/또는 하나 이상의 카메라의 오정렬로 인한 아티팩트(artifacts)를 제거할 수 있다. 상기 스티칭 모듈 (1518)은 정의된, 획득된 및/또는 보간된 이미지에 근거하여 3D 입체 영상을 생성하도록 구성될 수 있다. 상기 스티칭 모듈(1518)은 다수의 이미지 부분으로부터의 픽셀 및/또는 이미지 스트립을 혼합/결합하도록 구성될 수 있다. 스티칭은, 예를 들어 보간 모듈(1514)에 의해 결정된바 대로 플로우 필드에 기초할 수 있다. 예를 들어, 스티칭 모듈(1518)은 이미지 세트의 일부가 아닌 보간된 이미지 프레임(보간 모듈(1514)로부터) 수신할 수 있고 이미지 프레임을 이미지 세트로 인터리빙할 수 있다. 상기 인터리빙은 보간 모듈(1514)에 의해 생성된 광학적 흐름의 적어도 일부분에 근거하여 이미지 프레임과 이미지 세트를 함께 스티칭하는 모듈(1518)을 포함할 수 있다. 스티칭된 조합은 VR헤드 마운트 디스플레이에 디스플레이하기 위한 옴니 스테레오 파노라마를 생성하는데 사용될 수 있다. 상기 이미지 프레임은 특정 리그에 배치된 다수의 스테레오 카메라 쌍으로부터 수집된 촬영 영상 스트림에 근거할 수 있다. 그러한 리그는 약 6개 내지 약 8개의 스테레오 쌍의 카메라를 포함할 수 있다. 리그의 다른 조합에는 12-16개의 쌍을 이루지 않은 카메라가 포함될 수 있다. 일부 구현들에서, 상기 리그는 하나 또는 두 개의 스테레오 카메라 쌍을 포함할 수 있다. 일부 구현들에서, 상기 리그는 리그 상에 나란히 장착될 수 있는 많은 스테레오 카메라 쌍이 포함될 수 있다. 일부 구현들에서, 상기 스티칭 모듈(1518)은 적어도 하나의 스테레오 쌍과 관련된 포즈 정보를 이용하여 인터리빙을 수행하기 전에 이미지 세트의 일부를 사전에 결합할 수 있다.
상기 이미지 처리 시스템(1506)의 일부 구현들에서, 상기 스티칭 모듈(1518)은 선택적인 구성 요소일 수 있다. 예를 들어, 이미지가 에러 없이 360도 이상의 정확한 스위핑 동작으로 촬영될 때 이미지 스티칭은 장면의 3D 입체 파노라마를 획득하기 위해 필요하지 않을 수 있다.
상기 이미지 처리 시스템(1506)은 또한 프로젝션 모듈(1520) 및 이미지 보정 모듈(1522)을 포함한다. 상기 프로젝션 모듈(1520)은 이미지를 평면 투시면(perpective plane)으로 투영하여 3D 입체 영상을 생성하도록 구성될 수 있다. 예를 들어, 상기 프로젝션 모듈(1520)은 특정 이미지 세트의 투영을 얻을 수 있고, 이미지의 일부를 평면 투시 투영(planar perspective projection)으로부터 구면(예를 들어, 정방형) 투시 투영(spherical perspective projection)으로 변환함으로써 이미지 세트의 일부의 재투영을 구성할 수 있다. 상기 변환은 프로젝션 모델링 기술이 포함된다.
프로젝션 모델링은 투영 중심 및 투영면을 정의하는 것을 포함할 수 있다. 본 명세서에서 설명된 예에서, 상기 투영 중심은 사전 정의된 xyz 좌표 시스템의 원점(0,0,0)에 광학 중심을 나타낼 수 있다. 상기 투영면은 xyz 좌표계에서 z 축을 따라 이미지를 촬영하기 위해 카메라를 향한 상태에서 투영 중심의 앞에 위치할 수 있다. 일반적으로, 투영은 좌표(x, y, z)로부터 투영 중심까지의 특정 이미지 광의 평면 투시면의 교차를 사용하여 계산될 수 있다. 상기 투영의 변환은 예를 들어 행렬 계산을 사용하는 좌표계를 조작하여 수행될 수 있다.
입체 파노라마를 위한 프로젝션 모델링에는 일반적으로 투영의 단일 중심을 갖지 않는 다중 투시(multi-perspective) 이미지를 사용하는 것을 포함한다. 상기 다중 투시는 전형적으로 원형(예를 들어, 구형)으로 도시된다(도 13B 참조). 렌더링은 한 좌표계에서 다른 좌표계로 변환할 때 근사치로 구를 사용할 수 있다.
일반적으로, 구면(즉, 정방형(equirectangular)) 투영은 구의 중심이 투영 중심을 동일하게 둘러싸는 구형의 평면을 제공한다. 투시 투영은 사용자의 실제 시각적 지각을 근사화하기 위해 평면(예를 들어, 2D 표면) 투시면 상의 3D 객체의 이미지를 제공하는 뷰를 제공한다. 일반적으로, 이미지는 평평한 이미지 평면(예를 들어, 컴퓨터 모니터, 모바일 장치 LCD 스크린) 상에 렌더링될 수 있으므로, 상기 투영은 왜곡되지 않은 뷰를 제공하기 위해 평면 투영으로 도시된다. 그러나, 평면 투영은 360도 시야를 허용하지 않으므로, 촬영된 이미지(예를 들어, 비디오)는 정방형(예를들어, 구형) 투시로 저장될 수 있고 렌더링시에 평면 투시로 재투영될 수 있다.
특정 재투영이 완료된 후에, 상기 프로젝션 모듈(1520)은 HMD에서의 렌더링을 위해 이미지의 재투영된 부분을 전송할 수 있다. 예를 들어, 상기 프로젝션 모듈(1520)은 HMD(1510)의 좌안 디스플레이에 재투영하는 부분 및 HMD(1510)의 우안 디스플레이에 재투영하는 부분을 제공할 수 있다. 일부 구현들에서, 상기 프로젝션 모듈(1520)은 평면 투시 투영으로부터 구면 투시 투영으로 재투영함으로써 수직 시차를 계산하고 감소시키도록 구성된다.
상기 이미지 보정 모듈(1522)은 원근 왜곡을 포함하지만 이에 한정되지 않는 왜곡을 보상함으로써 3D 입체 영상을 생성하도록 구성될 수 있다. 일부 구현들에서, 상기 이미지 보정 모듈(1522)은 광 흐름이 3D 스테레오에 대해 유지되는 특정 거리를 결정할 수 있고, 그러한 흐름이 유지되는 장면의 부분만을 보여주기 위해 이미지를 분할할 수 있다. 예를 들어, 상기 이미지 보정 모듈(1522)은 3D 스테레오 이미지의 광 흐름이 원형 카메라 리그(1502)의 외측 에지로부터 약 1 방사상 미터와 예를 들어 카메라의 외측 에지로부터 약 5방사상 미터사이에서 유지되는지 결정할 수 있다. 따라서, 상기 이미지 보정 모듈(1522)은 1미터와 5미터 사이의 견본(swatch)이 왜곡이 없는 투영으로 HMD(1510)에서 렌더링하기 위해 선택되는 한편 적절한 3D 입체 효과가 사용자에게 적절한 시차임을 제공할 수 있다.
일부 구현들에서, 이미지 보정 모듈(1522)은 특정 이미지를 조정함으로써 광 흐름을 추정할 수 있다. 상기 조정은, 예를 들어, 이미지의 일부를 정류하는 것, 이미지의 일부와 연관된 추정된 카메라 포즈를 결정하는 것 및 상기 부분에서 이미지간 흐름을 결정하는 것을 포함할 수 있다. 비 제한적인 예에서, 상기 이미지 보정 모듈(1522)은 흐름이 계산되는 두 개의 특정 이미지들 사이의 회전의 차이를 보상할 수 있다. 이러한 보정은 회전차(즉, 회전 유동)에 의해 야기된 유동 성분을 제거하는 기능을 할 수 있다. 그러한 보정은 결과 이미지를 정확하고 강건하게 하면서 흐름 추정 계산의 복잡성을 감소시킬 수 있는 변환(예를 들어, 시차 흐름)에 의해 야기된 흐름을 초래한다. 일부 구현들에서, 이미지 보정 이외의 프로세스가 렌더링 전에 이미지에 대해 수행될 수 있다. 예를 들어, 렌더링이 수행되기 전에 이미지에서 스티칭, 블렌딩 또는 추가 보정 프로세스가 수행될 수 있다.
일부 구현들에서, 이미지 보정 모듈(1522)은 평면 투시 투영에 기초하지 않은 카메라 구조로 촬영된 이미지 컨텐츠에 의해 야기된 투영 왜곡을 보정할 수 있다. 예를 들어, 보정은 다수의 상이한 시야각으로부터의 이미지를 보간하고, 공통 발신지에서 발신되는 것으로서 이미지와 관련된 시야광(viewing ray)을 조정함으로써 이미지에 적용될 수 있다. 상기 보간된 이미지는 촬영 이미지로 삽입되어 인간의 눈에 대하여 안정적인 레벨의 회전 시차로 인간의 눈에 정확하게 나타나는 가상 컨텐츠를 생성할 수 있다.
예시적인 시스템(1500)에서, 디바이스(1506, 1508 및 1512)들은 랩탑 컴퓨터, 데스크탑 컴퓨터, 이동 컴퓨팅 장치 또는 게임 콘솔일 수 있다. 일부 구현들에서, 상기 장치(1506, 1508 및 1512)들은 HMD 장치(1510) 내에 배열(예를 들어, 위치/배치)될 수 있는 이동 컴퓨팅 장치일 수 있다. 상기 이동 컴퓨팅 장치는 예를 들어, HMD 장치(1510)용 스크린이다. 상기 장치(1506, 1508 및 1512)는 VR어플리케이션을 실행하기 위한 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 또한, 상기 장치(1506, 1508, 및 1512)는 해당 장치가 HMD 장치(1510)의 정면에 위치하거나 HMD 장치(1510)에 상대적인 위치 범위 내에서 유지질 때, HMD 장치(1510)의 3D이동을 인식, 모니터링 및 추적할 수 있는 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 일부 구현들에서, 장치(1506, 1508, 1512)는 네트워크(1504)를 통해 HMD 장치(1510)로 추가 컨텐츠를 제공할 수 있다. 일부 구현들에서 장치(1502, 1506, 1508, 1510 및 1512)는 하나 이상 서로 네트워크(1504)를 통해 쌍을 이루거나 연결될 수 있다. 상기 연결은 유선 또는 무선일 수 있다. 상기 네트워크(1504)는 공중 통신 네트워크 또는 사설 통신 네트워크일 수 있다.
상기 시스템(1500)은 전자 저장 장치를 포함할 수 있다. 상기 전자 저장 장치는 전자적으로 정보를 저장하는 비 일시적 저장 매체를 포함할 수 있다. 상기 전자 저장 장치는 촬영 이미지, 획득된 이미지, 사전 처리된 이미지, 사후 처리된 이미지 등을 저장하도록 구성될 수 있다. 개시된 카메라 리그들 중의 임의의 것으로 촬영된 이미지는 처리되어 비디오의 하나 이상의 스트림으로 저장되거나, 개별 프레임으로 저장될 수 있다. 일부 구현들에서, 저장은 촬영 중에 발생할 수 있으며 랜더링은 촬영 및 처리가 동시에 수행되는 경우보다 빨리 파노라마 스테레오 컨텐츠에 더 빨리 액세스하기 위하여 부분 촬영 이후에 바로 발생될 수 있다.
도 16A의 실시예에서, 비디오 인코더 시스템(1600)은 적어도 하나의 컴퓨팅 장치일 수 있거나 포함할 수 있으며, 본 명세서에 개시된 방법을 수행하기 위해 구성된 임의의 컴퓨팅 장치를 사실상 나타내기 위한 것으로 이해되어야 한다. 이와 같이, 상기 비디오 인코더 시스템(1600)은 본 명세서에 개시된 기술 또는 이의 상이한 버전 또는 차후의 버전을 구현하기 위해 이용될 수 있는 다양한 구성요소를 포함하는 것으로 이해될 수 있다. 예로서, 상기 비디오 인코더 시스템(1600)은 적어도 하나의 프로세서(1605)뿐만 아니라 적어도 하나의 메모리(1610)(예를 들어, 비일시적인 컴퓨터 판독 가능 저장 매체)를 포함하는 것으로 도시되어 있다.
도 16A는 적어도 하나의 예시적인 실시예에 따른 비디오 인코더 시스템을 도시한다. 도 16A에 도시된 바와 같이, 적어도 하나의 프로세서(1605), 적어도 하나의 메모리(1610), 컨트롤러(1620) 및 비디오 인코더(1625)를 포함한다. 상기 적어도 하나의 프로세서(1605) 및 비디오 인코더(1625)는 버스(1615)를 통해 통신 가능하도록 결합된다.
이해될 수 있는 바와 같이, 적어도 하나의 프로세서(1605)는 적어도 하나의 메모리(1610)에 저장된 명령을 실행하여 본 명세서에서 기술된 다양한 특징 및 기능, 또는 부가적인 또는 대안적인 특징 및 기능을 구현하도록 이용될 수 있다. 물론, 적어도 하나의 프로세서(1605) 및 적어도 하나의 메모리(1610)는 다양한 다른 목적을 위해 이용될 수 있다. 특히, 적어도 하나의 메모리(1610)는 본 명세서에 개시된 모듈들 중 임의의 하나를 구현하는데 사용될 수는 다양한 유형의 메모리 및 관련 하드웨어 및 소프트웨어의 예를 나타내는 것으로 이해될 수 있음을 알 수 있을 것이다.
상기 적어도 하나의 메모리(1610)는 비디오 인코더 시스템(1600)과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수있다. 상기 적어도 하나의 메모리 (1610)는 공유 자원일 수 있다. 예를 들어, 상기 비디오 인코더 시스템(1600)은 보다 큰 시스템(예를 들어, 서버, 퍼스널 컴퓨터, 이동 장치 등)의 구성요소일 수 있다. 따라서, 상기 적어도 하나의 메모리(1610)는 더 큰 시스템 내에 다른 구성요소(예를 들어, 이미지/영상 서빙, 웹 브라우징 또는 유무선 통신)들과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수 있다.
상기 컨트롤러(1620)는 다양한 제어 신호를 생성하고 상기 제어 신호를 비디오 인코더 시스템(1600)의 다양한 블록에 전달하도록 구성될 수 있다. 상기 컨트롤러(1620)는 하기에 기술된 기술을 구현하기 위해 제어 신호를 생성하도록 구성될 수 있다. 상기 컨트롤러(1620)는 예시적인 실시예에 따라 이미지, 이미지 시퀀스, 영상 프레임, 영상 시퀀스 등을 인코딩하도록 영상 인코더(1625)를 제어하도록 구성될 수 있다. 예를 들어, 상기 컨트롤러(1620)는 비디오 품질에 대응하는 제어 신호를 생성할 수 있다.
상기 영상 인코더(1625)는 영상 스트림 입력(5)을 수신하여 압축된(예를 들어, 인코딩된) 영상 비트(10)를 출력하도록 구성될 수 있다. 상기 영상 인코더 (1625)는 영상 스트림 입력(5)을 개별 영상 프레임으로 변환할 수 있다. 상기 영상 스트림 입력(5) 또한 이미지일 수 있으므로, 따라서 상기 압축된(예를 들어, 인코딩된) 영상 비트(10) 역시 압축된 이미지 비트일 수 있다. 상기 영상 인코더(1625)는 각각의 개별 영상 프레임(또는 이미지)을 블록들의 행렬(이하, 블록이라고 함)으로 더 변환할 수 있다. 예를 들어, 영상 프레임(또는 이미지)은 각각이 다수의 픽셀을 갖는 블록들의 16x16, 16x8, 8x8, 4x4 또는 2x2 행렬로 변환될 수 있다. 5개의 예시적인 매트릭스가 열거되었지만, 예시적인 실시예들은 이에 한정되지 않는다.
상기 압축 영상 비트(10)는 영상 인코더 시스템(1600)의 출력을 나타낼 수 있다. 예를 들어, 상기 압축 영상 비트(10)는 인코딩된 영상 프레임(또는 인코딩된 이미지)을 나타낼 수 있다. 예를 들어, 상기 압축 영상 비트(10)는 수신 장치(미도시)로의 전송을 위해 준비될 수 있다. 예를 들어, 상기 영상 비트는 수신 장치로의 전송을 위해 시스템 송수신기(도시되지 않음)로 전송될 수 있다.
상기 적어도 하나의 프로세서(1605)는 컨트롤러(1620) 및/또는 영상 인코더(1625)와 관련된 컴퓨터 명령을 실행하도록 구성될 수 있다. 상기 적어도 하나의 프로세서(1605)는 공유 자원일 수 있다. 예를 들어, 상기 영상 인코더 시스템 (1600)은 보다 큰 시스템(예를 들어, 이동 장치)의 구성요소일 수 있다. 따라서, 상기 적어도 하나의 프로세서(1605)는 더 큰 시스템 내에서 다른 구성요소(예를 들어, 이미지/영상 서빙, 웹 브라우징 또는 유무선 통신)들과 관련된 컴퓨터 명령들을 실행하도록 구성될 수 있다.
도 16B의 실시예에서, 영상 디코더 시스템 (1650)은 적어도 하나의 컴퓨팅 장치일 수 있고, 본 명세서에서 설명된 방법을 수행하도록 구성된 임의의 컴퓨팅 장치를 사실상 나타내는 것으로 이해되어야 한다. 이와 같이, 상기 영상 디코더 시스템(1650)은 본 명세서에 개시된 기술, 또는 이의 상이한 버전 또는 미래의 버전을 구현하기 위해 이용될 수 있는 다양한 구성요소를 포함하는 것으로 이해될 수 있다. 예로서, 상기 영상 디코더 시스템(1650)은 적어도 하나의 프로세서(1655)뿐만 아니라 적어도 하나의 메모리(1660)(예를 들어, 컴퓨터 판독 가능 저장 매체)를 포함하는 것으로 도시되어 있다.
따라서, 이해될 수 있는 바와 같이, 상기 적어도 하나의 프로세서(1655)는 적어도 하나의 메모리(1660)에 저장된 명령을 실행하여 본 명세서에 개시된 다양한 특징 및 기능, 또는 부가적인 또는 대안적인 특징 및 기능을 구현하도록 이용될 수있다. 물론, 상기 적어도 하나의 프로세서(1655) 및 적어도 하나의 메모리(1660)는 다양한 다른 목적을 위해 이용될 수 있다. 특히, 상기 적어도 하나의 메모리 (1660)는 본 명세서에 개시된 모듈들 중 임의의 하나를 구현하는데 사용될 수 있는 다양한 유형의 메모리 및 관련 하드웨어 및 소프트웨어의 예를 나타내는 것으로 이해될 수 있음을 알 수 있을 것이다. 예시적인 실시예들에 따르면, 상기 영상 인코더 시스템(1600) 및 영상 디코더 시스템(1650)은 동일한 대형 시스템(예를 들어, 개인용 컴퓨터, 이동 장치 등)에 포함될 수 있다.
상기 적어도 하나의 메모리(1660)는 영상 디코더 시스템(1650)과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수 있다. 상기 적어도 하나의 메모리 (1660)는 공유 자원일 수 있다. 예를 들어, 상기 영상 디코더 시스템(1650)은 보다 대형의 시스템(예를 들어, 퍼스널 컴퓨터, 이동 장치 등)의 구성요소 일 수 있다. 따라서, 상기 적어도 하나의 메모리(1660)는 더 큰 시스템 내에 다른 구성요소(예를 들어, 웹 브라우징 또는 무선 통신)들과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수 있다.
상기 컨트롤러(1670)는 다양한 제어 신호를 생성하여 상기 제어 신호를 영상 디코더 시스템(1650)의 다양한 블록으로 전달하도록 구성될 수 있다. 상기 컨트롤러(1670)는 게시된 영상 인코딩/디코딩 기술을 구현하기 위해 제어 신호를 생성하도록 구성될 수 있다 이하. 컨트롤러(1670)는 예시적인 실시예에 따라 영상 프레임을 디코딩하도록 상기 영상 디코더(1675)를 제어하도록 구성될 수 있다.
상기 영상 디코더(1675)는 상기 압축된(예를 들어, 인코딩된) 영상 비트 (10) 입력을 수신하여 영상 스트림(5)를 출력할 수 있다. 상기 영상 디코더(1675)는 상기 압축된 영상 비트(10)의 개별 영상 프레임을 영상 스트림(5)로 변환할 수 있다. 상기 압축된(예를들어, 인코딩된) 영상 비트(10)는 또한 압축된 이미지 비트일 수 있으므로, 상기 영상 스트림 5는 역시 이미지일 수 있다.
상기 적어도 하나의 프로세서(1655)는 컨트롤러(1670) 및/또는 영상 디코더(1675)와 관련된 컴퓨터 명령을 실행하도록 구성될 수 있다. 상기 적어도 하나의 프로세서(1655)는 공유 자원일 수 있다. 예를 들어, 상기 영상 디코더 시스템 (1650)은 보다 대형의 시스템(예를 들어, 퍼스널 컴퓨터, 이동 장치 등)의 구성요소일 수 있다. 따라서, 상기 적어도 하나의 프로세서(1655)는 더 큰 시스템 내의 다른 구성요소(예를 들어, 웹 브라우징 또는 무선 통신)들과 연관된 컴퓨터 명령들을 실행하도록 구성될 수 있다.
도 17A 및 도 17B는 적어도 하나의 예시적인 실시예에 따른 도 16A에 도시된 영상 인코더와 도 16B에 도시된 영상 디코더 각각의 흐름도이다. 상기 영상 인코더(1625)(위에 개시된)는 구면-2D 표현 블록(spherical to 2D representation)(1705), 예측 블록(1710), 변환 블록(1715), 양자화 블록 (1720), 엔트로피 인코딩 블록(1725), 역 양자화 블록(1730), 역변환 블록(1735), 재구성 블록 (1740) 및 루프 필터 블록(1745)을 포함한다. 상기 영상 인코더(1625)의 다른 구조적 변형은 입력 영상 스트림(5)을 인코딩하는데 사용될 수 있다. 도 17A에 도시된 바와같이, 점선은 몇몇 블록들 간의 재구성 경로를 나타내고 실선은 몇몇 블록들 사이의 순방향 경로를 나타낸다.
전술한 블록들 각각은(예를 들어, 도 16A에 도시된 바와 같이) 영상 인코더 시스템과 관련된 메모리(예를 들어, 적어도 하나의 메모리(1610))에 저장된 소프트웨어 코드로서 실행될 수 있고, 적어도 하나의 프로세서(예를 들어, 적어도 하나의 프로세서(1605))를 포함할 수 있다. 그러나, 특수 목적 프로세서로서 구현된 영상인코더와 같은 대안적인 실시예가 고려될 수 있다. 예를 들어, 전술한 블록들 각각(단독으로 및/또는 조합으로)은 주문형 집적 회로 또는 ASIC일 수 있다. 예를 들어, 상기 ASIC은 변환 블록(1715) 및/또는 양자화 블록(1720)으로 구성될 수 있다.
상기 구면-2D 표현 블록(1705)은 구면 프레임 또는 이미지를 구면 프레임 또는 이미지의 2D 표현으로 매핑하도록 구성될 수 있다. 예를 들면, 도 18은 구 (1800)(예를 들어, 프레임 또는 이미지로서)를 나타낸다. 상기 구(1800)(또는 그의 일부)는 2D 표면에 투영될 수 있다. 상기 투영은 예를 들면, 장방형, 반 장방형 또는 큐빅일 수 있다.
상기 예측 블록(1710)은 영상 프레임 일관성(예를 들어, 이전에 인코딩된 픽셀과 비교하여 변경되지 않은 픽셀)을 사용하도록 구성될 수 있다. 예측은 두 가지 유형을 포함할 수 있다. 예를 들어, 예측은 프레임 내(intra-frame) 예측 및 프레임 간(inter-frame) 예측을 포함할 수 있다. 인트라 프레임 예측은 동일 영상(picture)에 이웃하고 이전에 코딩된 참조 샘플들에 상대적인 영상의 블록에서 픽셀 값들을 예측하는 것에 관한 것이다. 인트라-프레임 예측에서, 샘플은 변환(예를 들어, 엔트로피 인코딩 블록(1725)) 및 엔트로피 코딩 (예를 들어, 엔트로피 인코딩 블록(1725))에 의해 코딩되는 잔류 에러를 줄이기 위해 동일한 프레임 내의 재구성된 픽셀로부터 예측된다. 인터-프레임 예측은 이전에 코딩된 영상의 데이터에 상대적인 영상의 블록에서 픽셀 값을 예측하는 것에 관한 것이다.
상기 변환 블록(1715)은 공간 도메인으로부터의 픽셀 값을 변환 도메인의 변환 계수로 변환하도록 구성될 수 있다. 상기 변환 계수는 일반적으로 원래 블록과 동일한 크기인 계수의 2차원 행렬에 대응할 수 있다. 즉, 원래 블록에 있는 픽셀만큼 많은 변환 계수가 있을 수 있다. 그러나, 상기 변환으로 인해 변환 계수의 일부는 0과 동일한 값을 가질 수 있다.
상기 변환 블록(1715)은 잔류(Residual)(예측 블록(1710)으로부터)를 예를 들어 주파수 도메인의 변환 계수로 변환한다. 일반적으로 변환은 KLT(Karhunen-Loeve Transform), DCT(Discrete Cosine Transform), SVD(Singular Value Decomposition Transform) 및 ADST (Asymmetric Discrete Sine Transform)를 포함한다.
상기 양자화 블록(1720)은 각각의 변환 계수에서 데이터를 감소시키도록 구성될 수 있다. 양자화는 상대적으로 큰 범위 내의 값을 비교적 작은 범위의 값으로 매핑하여, 상기 양자화된 변환 계수를 나타내는데 필요한 데이터의 양을 감소시키는 것을 포함할 수 있다. 상기 양자화 블록(1720)은 변환 계수를 양자화된 변환 계수 또는 양자화 레벨이라 불리는 이산 양자값으로 변환할 수 있다. 예를 들어, 양자화 블록(1720)은 변환 계수와 관련된 데이터에 0을 가산하도록 구성될 수 있다. 예를 들어, 인코딩 표준은 스칼라 양자화 프로세스에서 128개의 양자화 레벨을 정의할 수 있다.
그 다음, 상기 양자화된 변환 계수는 엔트로피 인코딩 블록(1725)에 의해 엔트로피 인코딩된다. 엔트로피-인코딩된 계수는 사용된 예측 유형, 모션 벡터 및 양자화기 값과 같은 블록을 디코딩하는데 필요한 정보와 함께 출력된다. 상기 압축된 영상 비트(10)는 런-렝스 인코딩(run-length encoding : RLE) 및 제로-런(zero-run) 코딩과 같은 다양한 기술을 사용하여 포맷될 수 있다.
도 17A에 도시된 재구성 경로는 압축 영상 비트(10)(또는 압축된 이미지 비트)를 디코딩하기 위해 동일한 기준 프레임을 사용하는 영상 인코더(1625) 및 영상 디코더(1675)를 모두를 보장하기 위해 존재한다. 상기 재구성 경로는 미분 잔차 (redisual) 블록(미분 잔차)을 생성하기 위하여 역 양자화 블록(1730)에서 상기 양자화된 변환 계수를 역 양자화하고 역 변환 블록(1735)에서 상기 역 양자화된 변환 계수를 역변환하는 것을 포함하여, 아래에서보다 상세하게 설명되는 디코딩 프로세스 동안 발생하는 기능들과 유사한 기능들을 수행한다. 상기 재구성 블록(1740)에서, 상기 예측 블록(1710)에서 예측된 예측 블록은 재구성된 블록을 생성하기 위하여 상기 미분 잔차에 추가될 수 있다. 그런 다음 루프 필터(1745)는 블로킹 아티팩트(artifacts)와 같은 왜곡을 감소시키기 위하여 상기 재구성된 블록에 적용될 수 있다.
도 17A와 관련하여 상술한 영상 인코더(1625) 도시된 블록들을 포함한다. 그러나, 예시적인 실시예들은 이에 제한되지 않는다. 추가 블록들이 상이한 영상 인코딩 구성들 및/또는 사용 기술들에 기초하여 추가될 수 있다. 게다가, 도 17A와 관련하여 상술한 영상 인코더(1625)에 도시된 각각의 블록은 상이한 영상 인코딩 구성들 및/또는 사용 기술에 기초한 선택적 블록일 수 있다.
도 17B는 압축된 영상 비트(10)(또는 압축된 이미지 비트)를 디코딩하기 위해 구성된 디코더(1675)의 개략적인 블록도이다. 디코더(1675)는, 이전에 기술한 인코더(1625)의 재구성 경로와 유사하게, 엔트로피 인코딩 블록(1750), 역 양자화 블록(1755), 역변환 블록(1760), 재구성 블록(1765), 루프 필터 블록(1770), 예측 블록(1775), 디블록킹(deblocking) 필터 블록(1780) 및 구면 블록(1785)으로의 2D 표시를 포함한다.
상기 압축된 영상 비트(10)내의 데이터 요소는 양자화된 변환 계수 세트를 생성하기 위하여 엔트로피 디코딩 블록(1750)(예를 들어, 컨텍스트 적응 이진 산술 복호화(Context Adaptive Binary Arithmetic Decoding)를 이용하여)에 의해 디코딩될 수 있다. 역 양자화 블록(1755)은 상기 양자화된 변환 계수를 역 양자화하고, 역 변환블록(1760)은 상기 인코더(1625)에서 재구성 스테이지(stage)에 의해 생성된 것과 동일한 미분 잔차를 생성하기 위해 상기 역 양자화된 변환 계수를 역변환한다(ADST를 사용하여).
상기 압축 영상 비트(10)로부터 디코딩된 헤더 정보를 사용하여, 디코더 (1675)는 인코더(1675)에서 생성된 것과 동일한 예측 블록을 생성하기 위해 예측 블록(1775)을 사용할 수 있다. 상기 예측 블록은 상기 재구성 블록(1765)이 재구성 블록을 생성하도록 미분 잔차에 추가될 수 있다. 상기 루프 필터 블록(1770)은 블로킹 아티팩트를 감소시키기 위해 상기 재구성 블록에 적용될 수 있다. 디블로킹 필터 블록(1780)은 블로킹 왜곡을 감소시키기 위해 상기 재구성 블록에 적용될 수 있고, 그 결과는 영상 스트림(5)으로서 출력된다.
구면 블록(1785)에 대한 상기 2D 표현은 구면 프레임 또는 이미지의 2D 표현을 구면 프레임 또는 이미지로 매핑하도록 구성될 수 있다. 예를 들어, 도 18은 구(1800) (예를 들어, 프레임 또는 이미지로서)를 도시한다. 상기 구(1800)는 미리 2D 표면 상에 투영될 수 있다. 상기 투영은 예를 들어, 장방형, 반 장방형 또는 큐빅일 수 있다. 구면 프레임 또는 이미지의 2D 표현을 구면 프레임 또는 이미지에 매핑하는 것은 이전 매핑의 역일 수 있다.
도 17B과 관련하여 상술한 영상 디코더(1675)는 도시된 블록을 포함한다. 그러나, 예시적인 실시예들은 이에 제한되지 않는다. 추가 블록들이 상이한 영상 인코딩 구성들 및/또는 사용 기술들에 기초하여 추가될 수 있다. 게다가, 도 17B와 관련하여 상술한 영상 디코더(1675)에 도시된 각각의 블록은 상이한 영상 인코딩 구성들 및/또는 사용 기술에 기초한 선택적 블록일 수 있다.
상기 인코더(1625) 및 디코더는 구면 영상 및/또는 이미지를 인코딩하고 구면 영상 및/또는 이미지를 각각 디코딩하도록 구성될 수 있다. 구면 이미지는 구형으로 조직화된 복수의 픽셀을 포함하는 이미지이다. 즉, 구면 이미지는 모든 방향에서 연속적인 이미지이다. 따라서, 구면 이미지의 시청자는 임의의 방향(예를 들어, 상, 하, 좌, 우 또는 이들의 임의의 조합)으로 위치를 변경(예를 들어, 그녀의 머리 또는 눈을 움직임)할 수 있고 이미지의 일부분을 연속적으로 볼 수 있다.
구면 이미지는 시점을 가질 수 있다. 예를 들어 구면 이미지는 지구 이미지일 수 있다. 내부 시점은 바깥쪽을 바라보는 지구의 중심으로부터의 뷰(view)일 수 있다. 또는 내부 시점은 우주(space)를 바라보는 것으로 지구상에 있을 수 있다. 외부 시점은 우주에서 지구를 향해 내려다보는 뷰일 수 있다. 또 다른 예로서, 시점은 가시적인 것을 기반으로 할 수 있다. 즉, 가시(viewable) 시점은 시청자가 볼 수 있는 시점일 수 있다. 상기 가시 시점은 시청자 앞에 있는 구면 이미지의 일부분일 수 있다. 예를 들어, 내부 관점으로 시청할 때, 시청자는 지면(예를 들어, 지구)에 누워서 우주를 바라볼 수 있다. 상기 시청자는 이미지에서 달, 태양 또는 특정 별들을 볼 수 있다. 그러나, 시청자가 누워 있는 지면이 구면 이미지에 포함되어 있지만 지면은 현재 가시 시점 밖에 있다. 이 예에서, 상기 시청자는 그녀의 머리를 돌릴 수 있고 지면은 주변 가시 시점에 포함되어질 것이다. 상기 시청자는 뒤집을 수 있고 지면은 가시 시점내에 있을 수 있는 반면 상기 달, 태양 또는 별들은 그렇지 않을 것이다.
외부 시점으로부터의 가시 시점은 차단되지(예를 들어, 이미지의 다른 부분에 의해) 않은 구면 이미지의 일부분 및/또는 보이지 않게 만곡된 구면 이미지의 일부분일 수 있다. 상기 구면 이미지의 다른 부분은 구면 이미지의 이동(예를 들어, 회전)에 의해 및/또는 구면 이미지의 움직임에 의해 외부 시점으로부터의 가시 시점으로 나타날 것이다. 따라서, 상기 가시 시점은 구면 이미지의 관찰자의 가시 범위내에 있는 구면 이미지의 일 부분이다.
상기 구면 이미지는 시간에 따라 변화하지 않는 이미지이다. 예를 들어, 지구와 관련된 내부 시점의 구면 이미지는 달과 별을 한 위치에 표시할 수 있다. 반면에 구면 영상(또는 이미지의 시퀀스)은 시간에 따라 변할 수 있다. 예를 들어, 지구와 관련된 내부 시점으로부터의 구형 영상은 달과 별이 움직이는 것(예를 들어, 지구 회전 때문에)을 보여줄 수 있고 및/또는 이미지(예를 들어, 하늘)를 가로질러 비행기 줄을 나타낼 수 있다.
도 18은 구의 2차원(2D) 표현이다. 도 18에 도시된 바와 같이, 구(1800)(예를 들어, 구면 이미지)는 내부 시점(1805, 1810), 외부 시점(1815) 및 가시 시점 (1820, 1825, 1830)의 방향을 나타낸다. 상기 가시 시점(1820)은 내부 시점(1805)으로 바라보았을 때 구면 이미지(1835)의 일부분일 수 있다. 상기 가시 시점(1820)은 내부 시점(1805)로 바라보았을 때 구(1800)의 일부분일 수 있다. 상기 가시 시점(1825)은 외부 시점(1815)으로 보았을 때 구(1800)의 일부일 수 있다.
도 19는 적어도 하나의 예시적인 실시예에 따른 시스템(1900)을 나타낸다. 도 19에 도시된 바와 같이, 상기 시스템(1900)은 컨트롤러(1620), 컨트롤러(1670), 엔코더(1625), 뷰 프레임 스토리지(1930) 및 방향 센서(1925)를 포함한다. 상기 컨트롤러(1620)는 뷰 위치 제어 모듈(1905)과 타일 선택 모듈(1910)을 더 포함한다. 상기 컨트롤러(1670)는 뷰 위치 결정 모듈(1915)과 타일 요청 모듈(1920)을 더 포함한다.
예시적인 구현에 따르면, 상기 방향 센서(1925)는 시청자 눈(또는 머리)의 방향(또는 방향 변화)을 검출하고, 상기 뷰 위치 결정 모듈(1915)은 상기 검출된 방향에 기초하여 뷰, 시점 또는 뷰 시점을 결정하고, 상기 요청 모듈(1920)은 타일, 복수의 타일 또는 영상 스트림을 위한 요청의 일부로서 상기 뷰, 시점 또는 뷰 시점을 통신한다. 다른 예시적인 구현에 따르면, 상기 방향 센서(1925)는 디스플레이상에 렌더링된 이미지 패닝(panning) 방향에 기초하여 방향 (또는 방향 변화)를 검출한다. 예를 들어, 사용자는 마우스, 트랙 패드 또는 제스처(예를 들어 터치 감지 디스플레이)를 사용하여, 디스플레이상에 렌더링된 구면 영상 또는 이미지의 일부분을 선택, 이동, 드래그, 확장 및/또는 이와 유사한 방식을 수행할 수 있다.
상기 타일에 대한 요청은 구면 영상의 프레임 요청과 함께 또는 구면 영상의 프레임 요청과 분리되어 통신될 수 있다. 상기 타일 요청은 구면 영상의 프레임 요청과 함께 또는 구면 영상의 프레임 요청과 별도로 통신될 수 있다. 예를 들어, 상기 타일 요청은 변경된 뷰, 시점 또는 뷰 시점에 응답하여 이전에 요청된 및/또는 큐잉된(queues) 타일을 대체할 필요가 있다.
상기 뷰 위치 제어 모듈(1905)은 타일, 복수의 타일 및/또는 스트림에 대한 요청을 수신하고 처리한다. 예를 들어, 상기 뷰 위치 제어 모듈(1905)은 뷰에 기초하여 프레임 내의 타일 또는 복수의 타일의 위치 및 프레임을 결정할 수 있다. 그런 다음, 상기 뷰 위치 제어 모듈(1905)은 타일 선택 모듈(1910)로 타일, 복수의 타일 또는 스트림을 선택하도록 지시할 수 있다. 상기 타일, 복수의 타일을 선택하거나, 파라미터를 인코더(1625)에 전달하는 것을 포함할 수 있다. 상기 파라미터는 구면 영상, 스트림 및/또는 타일의 인코딩 동안에 사용될 수 있다. 대안으로, 상기 타일 또는 복수의 타일을 선택하는 것은 뷰 프레임 저장 장치(1930)로부터 타일 또는 복수의 타일을 선택하는 것을 포함할 수 있다. 그런 다음 상기 선택된 타일 또는 복수의 타일은 인코더(1625)로 전달될 수 있다. 다른 예시적 구현에서, 상기 타일 또는 복수의 타일을 선택하는 것은, 사전 인코딩된(또는 사전 처리된) 타일, 복수의 타일 또는 스트림으로서 상기 뷰 프레임 스토리지(1930)로부터의 타일, 복수의 타일 또는 스트림을 선택하는 것을 포함할 수 있다.
따라서, 상기 방향 센서(1925)는 시청자의 눈(또는 머리)의 방향(또는 방향의 변화)을 검출하도록 구성될 수 있다. 예를 들어, 상기 방향 센서(1925)는 움직임을 검출하기 위한 가속도계와 방향을 검출하기 위한 자이로스코프를 포함할 수 있다. 대안으로 또는 추가적으로, 상기 방향 센서(1925)는 시청자의 눈 또는 머리의 방향을 결정하기 위하여 시청자의 눈 또는 머리에 초점이 맞춰진 카메라 또는 적외선 센서를 포함할 수 있다. 대안으로, 또는 추가적으로, 상기 방향 센서(1925)는 구면 영상 또는 이미지의 방위를 검출하기 위하여, 디스플레이 상에 랜더링된 구면 영상 또는 이미지의 일부분을 결정할 수 있다. 상기 방향 센서(1925)는 방향을 전달하여 뷰 위치 결정 모듈(1915)이 방향 정보를 변경하도록 구성될 수 있다.
상기 뷰 위치 결정 모듈(1915)은 구면 영상에 관련하여 뷰 또는 뷰 시점(예를 들어, 시청자가 현재 보고 있는 구면 영상의 일부분)를 결정하도록 구성될 수 있다. 상기 뷰, 시점 또는 뷰 시점은 구면 영상 상의 위치, 지점 또는 결상점(focal point)으로 결정될 수 있다. 예를 들어, 상기 뷰는 구면 영상에서 위도와 경도 위치일 수 있다. 상기 뷰, 시점 또는 뷰 시점은 구면 영상에 근거하여 큐브의 측면으로 결정될 수 있다. 상기 뷰(예를 들어 위도 및 경도 위치 또는 측면)는 예를 들어 HTTP(Hypertext Transfer Protocol)를 사용하는 뷰 위치 제어 모듈(1905)로 전달될 수 있다.
상기 뷰 위치 제어 모듈(1905)은 구면 영상 내의 타일 또는 복수의 타일의 뷰 위치(예를 들어, 프레임 내의 프레임 및 위치)를 결정하도록 구성될 수 있다. 예를 들어, 상기 뷰 위치 제어 모듈(1905)은 뷰 위치, 지점 또는 초점(예를 들어, 위도 및 경도 위치 또는 측면)에 중심을 둔 직사각형을 선택할 수 있다. 상기 타일 선택 모듈(1910)은 타일 또는 복수의 타일로서 직사각형을 선택하도록 구성될 수 있다. 상기 타일 선택 모듈(1910)은 상기 선택된 타일 또는 복수의 타일을 인코딩하도록 상기 인코더(1625)를 지시하도록 구성될 수 있고 및/또는 상기 타일 선택 모듈(1910)은 상기 뷰 프레임 저장부(1930)로부터 타일 또는 복수의 타일을 선택하도록 구성될 수 있다.
이해될 수 있는 바와 같이, 도 16A 및 도 16B에 도시된 시스템(1600 및 1650)은 도 20과 관련하여 후술되는 일반 컴퓨터 장치(2000) 및/또는 일반 이동 컴퓨터 장치(2050)의 구성요소 및/또는 확장으로 구현될 수 있다. 대안적으로 또는 부가적으로, 도 16A 및 도 16B에 도시된 시스템(1600 및 1650)은 상기 일반 컴퓨터 장치(2000) 및/또는 일반 이동 컴퓨터 장치(2050)에 대하여 후술하는 특징들의 일부 또는 전부를 가지는 일반 컴퓨터 장치(2000) 및/또는 일반 이동 컴퓨터 장치(2050)와 별개의 시스템으로 구현될 수 있다.
도 20은 본 명세서에 기술된 기술 구현에 사용될 수 있는 컴퓨터 장치 및 이동 컴퓨터 장치의 개략적인 블록도이다. 도 20은 일반적인 컴퓨터 장치(2000) 및 일반적인 이동 컴퓨터 장치(2050)의 일 예로서, 본 명세서에 기술된 기술들과 함께 사용될 수 있다. 컴퓨팅 장치(2000)는 랩탑, 데스크탑, 워크스테이션, 개인 정보 단말기, 서버, 블레이드(blade) 서버, 메인 프레임 및 다른 적정 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내기 위한 것이다. 컴퓨팅 장치(2050)는 개인 휴대 정보 단말기, 셀룰러 전화, 스마트폰 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 이동 장치를 나타내기 위한 것이다. 본 명세서에 나타낸 구성 요소, 이들의 접속 및 관계 및 그 기능은 단지 예시적인 것으로 의도되며, 본 명세서에 기재된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 장치(2000)는 프로세서(2002), 메모리(2004), 저장 장치(2006), 메모리(2004)와 고속 확장 포트(2010)에 연결되는 고속 인터페이스(2008) 및 저속 버스 (2014)와 저장 장치(2006)에 연결되는 저속 인터페이스(2012)를 포함한다. 각 구성 요소(2002, 2004, 2006, 2008, 2010 및 2012)는 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드상에 또는 적절하게 다른 방식으로 탑재될 수 있다. 상기 프로세서(2002)는 고속 인터페이스(2008)에 연결된 디스플레이(2016)과 같은 외부 입/출력 장치상의 GUI를 위한 그래픽 정보를 표시하기 위하여, 메모리(2004) 또는 저장 장치(2006)에 저장된 명령을 포함하는 컴퓨팅 장치(2000) 내의 실행 명령을 처리할 수 있다. 다른 구현들에서, 다수의 프로세서 및/또는 다수의 버스가 다수의 메모리 및 메모리 타입과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 장치(2000)는 필요한 동작들의 파티션을 제공하는 각 장치(예를들어 서버 뱅크, 블레이드 서버 그룹, 또는 멀티 프로세서 시스템으로서)와 접속될 수 있다.
메모리(2004)는 컴퓨팅 장치(2000) 내의 정보를 저장한다. 일 구현에서, 상기 메모리(2004)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에서, 상기 메모리(2004)는 비휘발성 메모리 유닛 또는 유닛들이다. 상기 메모리(2004)는 또한 자기(magnetic) 또는 광학 디스크와 같은 컴퓨터 판독 가능 매체의 다른 형태 일 수 있다.
상기 저장 장치(2006)는 컴퓨팅 장치(2000)를 위해 대용량 저장을 제공할 수 있다. 일 구현에서, 상기 저장 장치(2006)는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치 또는 테이프 장치, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 장치, 또는 저장 영역 네트워크 또는 다른 구성에 있는 장치들을 포함하는 장치들의 어레이와 같은 컴퓨터 판독 매체이거나 또는 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 매체 내에 확실하게 구현될 수 있다. 상기 컴퓨터 프로그램 제품은 또한 실행될 때 상술한 바와 같은 하나 이상의 방법을 수행하는 명령들을 포함할 수 있다. 상기 정보 매체는 메모리(2004), 저장 장치(2006) 또는 프로세서 (2002)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
상기 고속 컨트롤러(2008)는 상기 저속 제어기(2012)가 보다 낮은 대역폭-집약 동작을 수행하는 동안 상기 컴퓨팅 장치(2000)에 대한 대역폭-집약 동작을 관리한다. 이러한 기능 할당은 단지 예시적인 것일 뿐이다. 일 구현에서, 상기 고속 컨트롤러(2008)는 메모리(2004), 디스플레이(2016)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(2010)에 결합된다. 상기 구현에서, 상기 저속 컨트롤러(2012)는 저장 장치 (2006) 및 저속 확장 포트(2014)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅(pointing) 장치, 스캐너와 같은 하나 이상의 입/출력장치 또는 스위치 또는 라우터와 같은 네트워킹 장치와, 예를 들어 네트워크 어댑터를 통해 결합될 수 있다.
상기 컴퓨팅 장치(2000)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(2020)로서 또는 그러한 서버들의 그룹에서 여러번 구현될 수 있다. 또한, 이것은 랙(rack) 서버 시스템(2024)의 일부로서 구현될 수도 있다. 또한, 이것은 랩탑 컴퓨터(2022)와 같은 개인용 컴퓨터에서 구현될 수도 있다. 대안적으로, 컴퓨팅 장치(2000)로부터의 구성 요소는 장치(2050)과 같이 이동 장치(미도시)내의 다른 구성 요소들과 결합될 수 있다. 그러한 장치 각각은 컴퓨팅 장치(2000, 2050) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 장치(2000, 2050)로 구성될 수 있다.
컴퓨팅 장치(2050)는 다른 구성 요소들 중에서 프로세서(2052), 메모리 (2064), 디스플레이(2054)와 같은 입/출력 장치, 통신 인터페이스(2066) 및 송수신기(2068)를 포함한다. 상기 장치(2050)는 또한 추가 저장 용량을 제공하기 위해 마이크로 드라이브 또는 다른 장치와 같은 저장 장치를 구비할 수 있다. 구성 요소050, 2052, 2064, 2054, 2066 및 2068)들 각각은 다양한 버스를 사용하여 상호 접속되고, 몇몇 구성 요소는 공통 마더 보드 상에 또는 적절하게 다른 방식으로 탑재될 수 있다.
상기 프프로세서(2052)는 메모리(2064)에 저장된 명령을 포함하는 컴퓨팅 장치(2050) 내의 명령을 실행할 수 있다. 상기 프로세서는 개별 및 다중 아날로그 및 디지털 프로세서를 포함하는 칩의 칩 세트로서 구현될 수 있다. 상기 프로세서는 예를 들어 사용자 인터페이스의 제어, 장치(2050)에 의해 실행되는 어플리케이션 및 장치(2050)에 의한 무선 통신과 같은 상기 장치(2050)의 다른 구성 요소들의 조정을 제공할 수 있다.
상기 프로세서(2052)는 제어 인터페이스 및 디스플레이(2054)에 결합된 디스플레이 인터페이스(2056)를 통해 사용자와 통신할 수 있다. 상기 디스플레이 (2054)는 예를 들어 TFT LCD(Thin-Film -istor Liquid Crystal Display) 또는 OLED (Organic Light Emitting Diode) 디스플레이, 또는 다른 적절한 디스플레이을 포함할 수 있다. 상기 디스플레이 인터페이스(2056)는 그래픽 및 다른 정보를 사용자에게 제공하기 위해 디스플레이(2054)를 구동하기 위한 적절한 회로를 포함할 수 있다. 상기 제어 인터페이스(2058)는 사용자로부터 명령을 수신하여 프로세서(2052)에 제공하기 위해 변환할 수 있다. 또한, 외부 인터페이스(2062)는 다른 장치들과 장치(2050)의 근거리 통신을 가능하게 하기 위해 프로세서(2052)와 통신할 수 있다. 외부 인터페이스(2062)는 예를 들어, 일부 구현들에서 유선 통신용이거나 또는 다른 구현에서는 무선 통신용으로 제공될 수 있으며, 다수의 인터페이스 또한 사용될 수 있다.
상기 메모리(2064)는 컴퓨팅 장치 내의 정보를 저장한다. 상기 메모리(2064)는 컴퓨터-판독 가능 매체 또는 미디어, 휘발성 메모리 유닛 또는 유닛들, 비 휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리 (2074)는 또한 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(2072)를 통해 장치(2050)에 제공되고 연결될 수 있다. 이러한 확장 메모리(2074)는 장치(2050)를 위해 여분의 저장 공간을 제공하거나 장치(2050)를 위한 어플리케이션 또는 다른 정보를 저장할 수도 있다. 특히, 확장 메모리(2074)는 전술한 프로세스를 수행하거나 보충하기 위한 명령을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(2074)는 장치(2050)를 위한 보안 모듈로서 제공될 수 있고, 장치(2050)의 보안 사용을 허용하는 명령들로 프로그램될 수 있다. 또한, 보안 어플리케이션들은 해킹 불가능한 방식으로 SIM카드에 식별 정보를 배치하는 것과 같은 부가정보와 함께 SIM카드를 통해 제공될 수 있다.
상기 메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 명백하게 구현된다. 상기 컴퓨터 프로그램 제품은 실행될 때 상술한 방법과 같은 하나 이상의 방법을 수행하는 명령을 포함한다. 상기 정보 매체는 예를 들어 송수신기(2068) 또는 외부 인터페이스(2062)를 통해 수신될 수 있는 메모리(2064), 확장 메모리(2074) 또는 프로세서(2052)상의 메모리와 같은 컴퓨터- 또는 기계 판독 가능 매체이다.
장치(2050)는 필요한 경우 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(2066)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(2066)는 특히 GSM 음성 호출, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드 또는 프로토콜 하에서 통신용으로 제공할 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(2068)를 통해 발생할 수 있다. 또한, 블루투스, WiFi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System) 수신기 모듈 (2070)은 장치(2050)상에서 실행되는 어플리케이션에 의해 적절하게 사용될 수 있는 부가적인 네비게이션 및 위치 관련 무선 데이터를 장치(2050)로 제공할 수 있다.
장치(2050)는 또한 사용자로부터 음성 정보를 수신하여 그것을 이용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(2060)을 이용하여 청각적으로 통신할 수있다. 오디오 코덱(2060)은 마찬가지로, 예를 들어 장치(2050)의 핸드셋에 있는 스피커를 통하는 것과 같이, 사용자를 위한 가청음을 생성할 수 있다. 이러한 음은음성 전화 호출로부터의 음을 포함할 수 있고, 녹화음(예를 들어, 음성 메시지, 음악 파일)를 포함할 수 있으며 또한 장치(2050)상에서 동작하는 어플리케이션에 의해 생성된 사운드를 포함할 수도 있다.
상기 컴퓨팅 장치(2050)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 셀룰러 전화(2080)로 구현될 수 있다. 또한, 스마트폰(2082), 개인 휴대 정보 단말기(personal digital assistant), 또는 다른 유사한 모바일 장치의 일부로서 구현될 수도 있다.
전술한 예시적인 실시예들 중 일부는 흐름도로서 기술된 프로세스들 또는 방법들로서 개시된다. 상기 흐름도가 동작들을 순차적인 프로세스들로서 설명하지만, 많은 동작들이 병렬로, 병행하여 또는 동시에 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 상기 프로세스는 동작이 완료될 때 종료될 수 있지만 도면에 포함되지 않은 추가 단계를 또한 가질 수 있다. 상기 프로세스는 방법, 함수, 절차, 서브 루틴, 서브 프로그램 등에 대응될 수 있다.
흐름도에 의해 개시된 전술한 방법들의 일부는 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로 코드, 하드웨어 기술 언어 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로 코드로 구현될 때, 필요한 태스크를 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 저장 매체와 같은 기계 또는 컴퓨터 판독 가능 매체에 저장될 수 있다. 프로세서(들)가 필요한 태스크를 수행할 수 있다.
본 명세서에 개시된 특정 구조적 및 기능적 세부 사항은 단지 예시적인 실시예를 기술할 목적을 위한 대표적 예일 뿐이다. 그러나, 예시적인 실시예들은 많은 대안적인 형태로 구체화될 수 있으며, 여기에 설명된 실시예들에만 한정되는 것으로 해석되어서는 안 된다.
비록 제1, 제2 등의 용어가 다양한 구성 요소를 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 구성 요소는 이들 용어에 의해 제한되어서는 안 된다는 것을 이해할 것이다. 이 용어는 한 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 제1구성요소는 제2구성요소로 지칭될 수 있고, 유사하게, 제2구성요소는 예시적인 실시예들의 범위를 벗어나지 않고 제1구성요소로 지칭될 수 있다. 본 명세서에 사용된 바와 같이, 상기 용어는 관련되어 목록화된 항목들 중 하나 이상의 임의의 및 모든 조합을 포함한다.
구성요소가 다른 구성요소에 연결되거나 연결되는 것으로 언급될 때, 구성요소는 다른 구성요소에 직접 연결되거나 연결될 수 있거나 또는 개입(intervening) 구성요소가 존재할 수 있음을 알 수 있다. 반대로, 구성요소가 다른 구성요소에 직접 연결되거나 직접 연결되는 것으로 언급될 때 개입 구성요소는 존재하지 않는다. 구성요소들간의 관계를 기술하기 위해 사용된 다른 단어들은 유사한 방식으로(예를 들어, 사이에 대 직접 사이에, 인접한 대 직접 등) 해석되어야 한다.
본 명세서에 사용된 용어는 단지 특정 실시예를 기술하기 위한 것이며, 예시적인 실시예를 제한하려는 것은 아니다. 본 명세서에서 사용된 단수 형태 a, an 및 the는 문맥상 다르게 나타내지 않는 한, 복수 형태를 포함하는 것으로 여겨진다. 본 명세서에서 사용된 용어는 명시된 특징, 정수, 단계, 동작, 구성 요소 및/또는 구성 요소의 존재를 명시하고 포함하고/포함하는 것을 포함하지만 이들로 한정되는 것은 아니며, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소(elements) 및/또는 구성 요소(components)를 포함할 수 있다.
또한, 일부 대체 구현들에서, 언급된 기능들/동작들은 도면들에 기록된 순서를 벗어날 수 있다는 것을 알아야 한다. 예를 들어 연속적으로 표시된 두 개의 도면은 실제로 동시에 실행될 수도 있고 관련된 기능/작동에 따라 역순으로 실행될 수도 있다.
다르게 정의되지 않는 한, 본 명세서에서 사용된 모든 용어(기술 및 과학 용어 포함)는 예시적인 실시예가 속하는 기술 분야의 당업자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 용어들, 예를 들어 일반적으로 사용되는 사전들에서 정의된 용어들은 관련 기술의 맥락에서 그들의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하고, 이상적이거나 지나치게 형식적인 의미로 해석되지 않는 한 명시적으로 본 명세서에서 정의된다.
전술한 예시적인 실시예의 일부분 및 해당하는 상세한 설명은 소프트웨어, 또는 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 심볼 표현에 관련하여 제공된다. 이러한 설명 및 표현은 당업자가 그들의 작업 내용을 다른 당업자에게 효과적으로 전달하는 것이다. 본 명세서에서 사용된 용어인 알고리즘은 일반적으로 사용되는 것처럼 원하는 결과를 유도하는 단계들의 일관된 순서가 될 수 있음을 내포하고 있다. 이 단계는 물리량의 물리적으로 조작을 요구하는 단계이다. 일반적으로, 반드시 그런 것은 아니지만, 이러한 양은 저장, 전송, 결합, 비교 및 기타 조작이 가능한 광학, 전기 또는 자기 신호의 형태를 취한다. 주로 공통적인 사용을 이유로 이 신호를 비트, 값, 요소, 기호, 문자, 용어, 숫자 등으로 참조하는 것이 편리하다는 것이 입증되었다.
상기 예시적인 실시예에서, 동작의 참조와 프로그램 모듈 또는 기능적 프로세스로서 구현될 수 있는 동작(예를 들어, 흐름도의 형태로)의 심볼적 표현은, 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하며 기존 구조 요소에서 기존 하드웨어를 사용하여 설명 및/또는 구현될 수 있는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 그러한 기존 하드웨어는 하나 이상의 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP), 응용 목적 집적 회로, FPGA(field programmable gate arrays) 컴퓨터 등을 포함할 수 있다.
그러나 이러한 모든 용어와 유사한 용어는 적절한 물리량과 관련되어 있으며 이러한 양에 적용되는 편리한 표시일 뿐이다. 다르게 구체적으로 기술되지 않거나 논의에서 명백한 경우를 제외하고, 프로세싱 또는 컴퓨팅 또는 표시의 계산 또는 결정과 같은 용어는, 컴퓨터 시스템의 레지스터 또는 메모리 내의 물리적, 전자적 양으로 표현된 데이타를 컴퓨터 시스템의 메모리 또는 레지스터 또는 다른 정보 저장 장치, 전송 장치 또는 디스플레이 내의 물리량으로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 프로세스를 참조한다.
또한, 예시적인 실시예의 소프트웨어로 구현된 양태들은 통상적으로 어떤 형태의 비 일시적인 프로그램 저장 매체상에 인코딩되거나 또는 어떤 유형의 전송 매체를 통해 구현된다는 점에 유의해야 한다. 프로그램 저장 매체는 자기(예를 들어, 플로피 디스크 또는 하드 드라이브) 또는 광학(예를 들어,콤팩트 디스크 판독 전용 메모리, 또는 CD ROM) 일 수 있으며, 판독 전용 또는 랜덤 액세스일 수 있다. 유사하게, 전송 매체는 꼬인 전선 쌍, 동축 케이블, 광섬유, 또는 당업계에 공지된 다른 적절한 전송 매체일 수 있다. 예시적인 실시예들은 임의의 주어진 구현의 양상들에 의해 제한되지 않는다.
마지막으로, 첨부된 청구 범위는 본 명세서에 설명된 특징들의 특정 조합을 설명하고 있지만, 본 개시의 범위는 이후에 청구된 특정 조합으로 제한되지 않고, 대신에 특징 또는 특징의 임의의 조합을 포함하도록 확장된다는 것을 주목해야 한다. 이 특정 조합이 현재 첨부된 청구 범위에서 구체적으로 열거되었는 지의 여부와 무관하게 본원의 실시 예가 개시된다.

Claims (20)

  1. 영상(video) 스트리밍 방법으로서,
    제1품질을 갖는 제1영상 스트림을 재생 장치에서 수신하는 단계;
    적어도 2개의 제2영상 스트림을 상기 재생 장치에서 수신하는 단계, 상기 적어도 2개의 제2영상 스트림은 상기 제1영상 스트림의 일부분에 각각 대응하고, 상기 적어도 2개의 제2영상 스트림은 상기 제1품질보다 고품질인 제2품질로 인코딩되고, 상기 일부분의 크기는 재생 장치의 사용자의 머리 및/또는 눈 움직임(motion)의 결정된 양에 기초하고;
    상기 재생 장치에서 제1 계층의 상기 제1영상 스트림을 재생하는 단계;
    상기 재생 장치의 사용자의 뷰 시점(view perspective)에 근거하여 상기 적어도 2개의 제2영상 스트림으로부터 제3영상 스트림을 선택하는 단계; 및
    상기 재생장치에서 상기 제1영상 스트림과 함께 제2 계층의 상기 제3영상 스트림을 재생하는 단계를 포함하는 영상 스트리밍 방법.
  2. 제1항에 있어서,
    상기 재생장치의 사용자의 뷰 시점이 변경되었는지를 결정하는 단계;
    변경된 뷰 시점에 근거하여 상기 적어도 2개의 제2영상 스트림으로부터 제4영상 스트림을 선택하는 단계; 및
    상기 재생장치에서 상기 제1영상 스트림과 함께 상기 제4영상 스트림을 재생하는 단계를 더 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  3. 제1항에 있어서,
    상기 제1품질은 비트율 및 해상도에 기초하고,
    상기 비트율은 통신 채널 성능에 기초하며, 그리고
    상기 해상도는 상기 재생장치에 관련된 픽셀 밀도에 기초하는 것을 특징으로 하는 영상 스트리밍 방법.
  4. 제1항에 있어서,
    상기 제1영상 스트림을 버퍼링하는 단계를 더 포함하고,
    상기 재생장치에서 상기 제1영상 스트림과 함께 상기 제3영상 스트림을 재생하는 단계는,
    상기 제1영상 스트림의 대응 부분을 제3영상 스트림으로 교체하는 단계,
    상기 재생장치에 결과를 랜더링(rendering)하는 단계,
    상기 제3영상 스트림에 문제(issue)가 있는지를 결정하는 단계, 및
    상기 제3영상 스트림에 문제가 있다고 결정되면, 버퍼링된 제1영상 스트림을 재생장치에 랜더링하는 단계를 포함하는 영상 스트리밍 방법.
  5. 제1항에 있어서,
    상기 재생장치는 헤드 마운트 디스플레이(HMD)이고,
    상기 재생장치에서 상기 제1영상 스트림과 함께 상기 제3영상 스트림을 재생하는 단계는,
    상기 HMD의 좌안 또는 우안 디스플레이 중 하나에 상기 제1영상 스트림을 랜더링하는 단계, 및
    상기 HMD의 좌안 또는 우안 디스플레이 중 다른 하나에 상기 제3영상 스트림을 랜더링하는 단계를 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  6. 제1항에 있어서,
    상기 적어도 2개의 제2영상 스트림은 서로 다른 타임스탬프들(timestamps)에서 인코딩된 연관된 키 프레임들(associated key frames)을 갖는 것을 특징으로 하는 영상 스트리밍 방법.
  7. 제1항에 있어서,
    상기 적어도 2개의 제2영상 스트림 각각이 상기 재생장치의 가시 임계값(viewable threshold) 내에 있는지를 결정하는 단계;
    상기 적어도 2개의 제2영상 스트림이 상기 재생장치의 가시 임계값 내에 있다고 결정되면, 상기 적어도 2개의 제2영상 스트림을 디코딩하는 단계; 및
    상기 적어도 2개의 제2영상 스트림이 재생장치의 가시 임계값 내에 있지 않다고 결정되면, 상기 적어도 2개의 제2영상 스트림의 디코딩을 스킵(skip)하는 단계를 더 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  8. 영상 스트리밍 방법으로서,
    재생 장치와 관련된 움직임(motion) 양의 표시를 수신하는 단계;
    제1품질로 영상의 프레임을 인코딩하는 단계;
    상기 제1품질보다 고품질인 제2품질로 상기 영상의 프레임의 적어도 2개 부분을 인코딩하는 단계, 상기 영상의 프레임의 상기 적어도 2개의 부분과 관련된 크기는 상기 움직임에 기초하고;
    상기 영상의 프레임을 저장하는 단계; 및
    상기 영상의 프레임의 상기 적어도 2개 부분을 저장하는 단계를 포함하는 영상 스트리밍 방법.
  9. 제8항에 있어서,
    상기 영상의 프레임을 스트리밍하는 단계; 및
    상기 영상의 프레임의 적어도 2개 부분을 스트리밍하는 단계
    를 더 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  10. 제8항에 있어서,
    상기 제2품질로 상기 영상의 프레임의 적어도 2개 부분을 인코딩하는 단계는, 서로 다른 타임스탬프들을 갖는 키프레임들을 이용하여 상기 영상의 프레임의 적어도 2개 부분 각각을 인코딩하는 단계를 포함하는 영상 스트리밍 방법.
  11. 삭제
  12. 제8항에 있어서,
    영상을 스트리밍하기 위한 요청을 수신하는 단계;
    상기 영상의 프레임과 상기 영상의 프레임의 적어도 2개 부분 중 하나를 이용하여 프레임을 구성하는 단계; 및
    상기 구성된 프레임을 스트리밍하는 단계를 더 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  13. 제8항에 있어서,
    상기 영상의 프레임은 구면 영상과 관련이 있고,
    상기 영상의 프레임을 인코딩하는 단계는,
    상기 영상의 프레임을 큐브맵(cubemap)으로서 투영하는 단계, 및
    등가 샘플링 알고리즘을 이용하여 상기 큐브맵을 인코딩하는 단계를 포함하는 영상 스트리밍 방법.
  14. 제8항에 있어서,
    상기 영상의 프레임은 구면 영상과 관련이 있고, 상기 방법은,
    상기 영상의 프레임을 큐브맵으로서 투사하는 단계, 및
    상기 큐브맵의 큐브면를 선택하는 단계를 더 포함하고,
    상기 영상의 프레임을 인코딩하는 단계는, 상기 제1품질로 상기 큐브면을 인코딩하는 단계를 포함하고, 그리고
    상기 영상의 프레임의 적어도 2개의 부분을 인코딩하는 단계는, 상기 제2품질로 상기 큐브면의 적어도 2개의 부분을 인코딩하는 단계를 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  15. 제8항에 있어서,
    상기 영상의 프레임을 스트리밍하는 단계;
    상기 영상의 프레임의 적어도 2개 부분을 스트리밍하는 단계;
    재생장치에서 재생이 일시정지되었음을 나타내는 표시를 수신하는 단계;
    상기 제2품질로 상기 영상의 프레임을 인코딩하는 단계; 및
    상기 제2품질로 인코딩된 상기 영상의 프레임을 스트리밍하는 단계를 더 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  16. 제8항에 있어서,
    상기 제1품질은 낮은 프레임-전송율 고해상도 스트림, 모노 스트림, 저감된 칼러 스트림 및 블랙 및 화이트 스트림 중의 적어도 하나에 기초하는 것을 특징으로 하는 영상 스트리밍 방법.
  17. 제8항에 있어서,
    복수의 인코딩된 프레임들로서 상기 영상의 프레임을 스트리밍하는 단계; 및
    제3품질을 얻기 위하여, 상기 영상의 스트리밍 동안 상기 복수의 인코딩된 프레임들 중에서 적어도 하나의 프레임을 드롭핑(dropping)하는 단계를 더 포함하는 것을 특징으로 하는 영상 스트리밍 방법.
  18. 스트리밍 서버로서,
    인코더, 상기 인코더는,
    제1품질로 영상의 프레임을 인코딩하고, 그리고
    상기 제1품질보다 고품질인 제2품질로 상기 영상의 프레임의 적어도 2개 부분을 인코딩하도록 구성되고, 상기 영상의 프레임의 상기 적어도 2개의 부분과 관련된 크기는 상기 스트리밍 서버가 영상을 스트리밍하는 재생 장치와 관련된 움직임 양의 표시(indication)에 기초하고;
    메모리, 상기 메모리는,
    상기 영상의 프레임을 저장하고, 그리고
    상기 영상의 프레임의 적어도 2개의 부분을 저장하도록 구성되고; 그리고
    제어기를 포함하며, 상기 제어기는,
    상기 인코딩된 프레임과 상기 영상의 프레임의 인코딩된 적어도 2개 부분 중 하나 이상을 포함하는 영상을 스트리밍하도록 구성되는 것을 특징으로 하는 스트리밍 서버.
  19. 제18항에 있어서,
    상기 제2품질로 상기 영상의 프레임의 적어도 2개 부분을 인코딩하는 것은, 서로 다른 타임스탬프들을 갖는 키 프레임들을 이용하여 상기 영상의 프레임의 적어도 2개 부분 각각을 인코딩하는 것을 포함하는, 스트리밍 서버.
  20. 제18항에 있어서,
    상기 영상 프레임은 구면 영상과 관련이 있고, 상기 인코더는,
    상기 영상의 프레임을 큐브맵으로서 투영하고,
    상기 큐브맵의 큐브면을 선택하도록 더 구성되고,
    상기 영상의 프레임을 인코딩하는 것은 제1품질로 상기 큐브면을 인코딩하는 것을 포함하며,
    상기 영상의 프레임의 적어도 2개 부분을 인코딩하는 것은 상기 제2품질로 상기 큐브면의 적어도 2개 부분을 인코딩하는 것을 포함하는, 스트리밍 서버.
KR1020177027064A 2015-05-27 2016-05-27 구면 영상 스트리밍 KR102013403B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562167260P 2015-05-27 2015-05-27
US62/167,260 2015-05-27
PCT/US2016/034684 WO2016191694A1 (en) 2015-05-27 2016-05-27 Streaming spherical video

Publications (2)

Publication Number Publication Date
KR20170123656A KR20170123656A (ko) 2017-11-08
KR102013403B1 true KR102013403B1 (ko) 2019-08-22

Family

ID=56121202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177027064A KR102013403B1 (ko) 2015-05-27 2016-05-27 구면 영상 스트리밍

Country Status (7)

Country Link
US (1) US10880346B2 (ko)
EP (1) EP3304487A1 (ko)
JP (1) JP6501904B2 (ko)
KR (1) KR102013403B1 (ko)
CN (1) CN107439010B (ko)
DE (1) DE112016002377T5 (ko)
WO (1) WO2016191694A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113545097A (zh) * 2019-11-28 2021-10-22 株式会社阿尔法空间 利用一个流影像来播放多个虚拟现实影像的虚拟现实影像播放装置及方法
US11570486B2 (en) 2020-02-24 2023-01-31 Samsung Electronics Co., Ltd. Method and apparatus for transmitting video content using edge computing service
US11736455B1 (en) * 2020-07-01 2023-08-22 Amazon Technologies, Inc. Techniques for performing video-based verification

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204658B2 (en) 2014-07-14 2019-02-12 Sony Interactive Entertainment Inc. System and method for use in playing back panorama video content
US10652603B2 (en) 2015-07-09 2020-05-12 Triton Us Vp Acquision Co. Transitioning between broadcast and unicast streams
US10096130B2 (en) * 2015-09-22 2018-10-09 Facebook, Inc. Systems and methods for content streaming
US9858706B2 (en) * 2015-09-22 2018-01-02 Facebook, Inc. Systems and methods for content streaming
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US9767363B2 (en) 2015-10-30 2017-09-19 Google Inc. System and method for automatic detection of spherical video content
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10593028B2 (en) * 2015-12-03 2020-03-17 Samsung Electronics Co., Ltd. Method and apparatus for view-dependent tone mapping of virtual reality images
EP3440843A4 (en) 2016-04-08 2019-08-28 Visbit Inc. VIEWED 360 Degree VIDEO STREAMING
US10602191B2 (en) 2016-05-13 2020-03-24 Gopro, Inc. Apparatus and methods for video compression
US10848668B2 (en) 2016-05-19 2020-11-24 Avago Technologies International Sales Pte. Limited 360 degree video recording and playback with object tracking
US11019257B2 (en) 2016-05-19 2021-05-25 Avago Technologies International Sales Pte. Limited 360 degree video capture and playback
US10681326B2 (en) * 2016-05-19 2020-06-09 AVAGO TECHNOLOGlES INTERNATIONAL SALES PTE. LIMITED 360 degree video system with coordinate compression
US10432855B1 (en) * 2016-05-20 2019-10-01 Gopro, Inc. Systems and methods for determining key frame moments to construct spherical images
EP3249928A1 (en) * 2016-05-23 2017-11-29 Thomson Licensing Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices
US11089280B2 (en) 2016-06-30 2021-08-10 Sony Interactive Entertainment Inc. Apparatus and method for capturing and displaying segmented content
US11006135B2 (en) * 2016-08-05 2021-05-11 Sony Corporation Image processing apparatus and image processing method
EP3510744B1 (en) 2016-09-09 2022-05-04 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
KR102545195B1 (ko) * 2016-09-12 2023-06-19 삼성전자주식회사 가상 현실 시스템에서 컨텐트 전송 및 재생 방법 및 장치
KR102598082B1 (ko) * 2016-10-28 2023-11-03 삼성전자주식회사 영상 표시 장치, 모바일 장치 및 그 동작방법
CN108156363A (zh) * 2016-12-05 2018-06-12 贝马体育科技有限公司 360度视频播放器及方法
US10509965B2 (en) * 2016-12-15 2019-12-17 Google Llc Methods, systems, and media for detecting two-dimensional videos placed on a sphere in abusive spherical video content by tiling the sphere
US10999602B2 (en) * 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
EP3571845B1 (en) 2017-01-20 2021-06-30 PCMS Holdings, Inc. Field-of-view prediction method based on contextual information for 360-degree vr video
US10623735B2 (en) 2017-01-21 2020-04-14 OrbViu Inc. Method and system for layer based view optimization encoding of 360-degree video
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
CN108513119A (zh) 2017-02-27 2018-09-07 阿里巴巴集团控股有限公司 图像的映射、处理方法、装置和机器可读介质
US10671852B1 (en) 2017-03-01 2020-06-02 Matroid, Inc. Machine learning in video classification
US11004173B2 (en) * 2017-03-13 2021-05-11 Mediatek Inc. Method for processing projection-based frame that includes at least one projection face packed in 360-degree virtual reality projection layout
US11057643B2 (en) 2017-03-13 2021-07-06 Mediatek Inc. Method and apparatus for generating and encoding projection-based frame that includes at least one padding region and at least one projection face packed in 360-degree virtual reality projection layout
US11184599B2 (en) 2017-03-15 2021-11-23 Pcms Holdings, Inc. Enabling motion parallax with multilayer 360-degree video
US10887600B2 (en) * 2017-03-17 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for packaging and streaming of virtual reality (VR) media content
US11166072B2 (en) * 2017-03-23 2021-11-02 Vid Scale, Inc. Metrics and messages to improve experience for 360-degree adaptive streaming
CN110520903B (zh) * 2017-03-28 2023-11-28 三星电子株式会社 基于用户移动信息显示图像的方法和装置
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
US10819907B2 (en) 2017-03-30 2020-10-27 Mediatek Inc. Method and apparatus for signaling spherical region information in ISOBMFF
CN110506291B (zh) 2017-04-05 2021-05-14 联发科技股份有限公司 一种视频处理方法和装置
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
CN108810636B (zh) * 2017-04-28 2020-04-14 华为技术有限公司 视频播放方法、虚拟现实设备、服务器、系统及存储介质
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10873775B2 (en) * 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
DE112018002432T5 (de) 2017-08-18 2020-01-23 Mediatek Inc. Verfahren und Vorrichtung zum Reduzieren von Artefakten in einem projektionsbasierten Rahmen
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
WO2019073113A1 (en) * 2017-10-09 2019-04-18 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
EP3470974A1 (en) * 2017-10-10 2019-04-17 Thomson Licensing Selection of animated viewing angle in an immersive virtual environment
CN109698949B (zh) * 2017-10-20 2020-08-21 腾讯科技(深圳)有限公司 基于虚拟现实场景的视频处理方法、装置和系统
EP3493552A1 (en) * 2017-11-30 2019-06-05 Thomson Licensing Method for managing a streaming processing of a multimedia video spatially tiled stored on a network equipment, and corresponding terminal
KR101981868B1 (ko) * 2017-12-12 2019-08-28 가천대학교 산학협력단 가상 현실 비디오 품질 제어
US10554953B2 (en) * 2017-12-17 2020-02-04 Google Llc Distortion of video for seek in 360 degree video
CN108366249A (zh) * 2018-01-17 2018-08-03 安徽中骄智能科技有限公司 一种基于wifi模块的虚拟现实vr数据快速处理系统
CN111742530B (zh) 2018-02-22 2022-07-19 索尼公司 流传输数据的方法、提供网络辅助的方法以及用户设备
CN108520492B (zh) * 2018-03-16 2022-04-26 中国传媒大学 全景视频映射方法及系统
EP3769539A1 (en) 2018-03-22 2021-01-27 Vid Scale, Inc. Viewport dependent video streaming events
US10812828B2 (en) 2018-04-10 2020-10-20 At&T Intellectual Property I, L.P. System and method for segmenting immersive video
US11153482B2 (en) * 2018-04-27 2021-10-19 Cubic Corporation Optimizing the content of a digital omnidirectional image
WO2019226632A1 (en) 2018-05-21 2019-11-28 Google Llc Methods, systems, and media for detecting two-dimensional videos placed on a sphere in abusive spherical video content
US10666863B2 (en) * 2018-05-25 2020-05-26 Microsoft Technology Licensing, Llc Adaptive panoramic video streaming using overlapping partitioned sections
US10764494B2 (en) 2018-05-25 2020-09-01 Microsoft Technology Licensing, Llc Adaptive panoramic video streaming using composite pictures
US11917127B2 (en) 2018-05-25 2024-02-27 Interdigital Madison Patent Holdings, Sas Monitoring of video streaming events
US10623791B2 (en) 2018-06-01 2020-04-14 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
US10812774B2 (en) 2018-06-06 2020-10-20 At&T Intellectual Property I, L.P. Methods and devices for adapting the rate of video content streaming
US10616621B2 (en) 2018-06-29 2020-04-07 At&T Intellectual Property I, L.P. Methods and devices for determining multipath routing for panoramic video content
US11695978B2 (en) * 2018-07-05 2023-07-04 Mux, Inc. Methods for generating video-and audience-specific encoding ladders with audio and video just-in-time transcoding
US10708494B2 (en) 2018-08-13 2020-07-07 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic video content
US11019361B2 (en) 2018-08-13 2021-05-25 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic view of a camera for capturing video content
CN109089097A (zh) * 2018-08-28 2018-12-25 恒信东方文化股份有限公司 一种基于vr图像处理的焦点对象选取方法
US11032590B2 (en) 2018-08-31 2021-06-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US10999583B2 (en) * 2018-09-14 2021-05-04 Apple Inc. Scalability of multi-directional video streaming
CN110956583B (zh) * 2018-09-26 2022-05-10 华为技术有限公司 球面图像处理方法、装置及服务器
US11184461B2 (en) 2018-10-23 2021-11-23 At&T Intellectual Property I, L.P. VR video transmission with layered video by re-using existing network infrastructures
CN109413448A (zh) * 2018-11-05 2019-03-01 中山大学 基于深度强化学习的移动设备全景视频播放系统
US10638165B1 (en) * 2018-11-08 2020-04-28 At&T Intellectual Property I, L.P. Adaptive field of view prediction
JP6688367B1 (ja) * 2018-11-12 2020-04-28 Nttテクノクロス株式会社 動画配信装置、端末、動画配信システム、動画配信方法、及びプログラム
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
CN109712222B (zh) * 2018-12-29 2023-12-19 超级魔方(北京)科技有限公司 一种图像处理方法及装置
KR102174795B1 (ko) * 2019-01-31 2020-11-05 주식회사 알파서클 가상현실을 표현하는 분할영상 사이의 전환시점을 제어하여 프레임 동기화를 구현하는 가상현실 영상전환방법 및 가상현실 영상재생장치
KR102174794B1 (ko) * 2019-01-31 2020-11-05 주식회사 알파서클 복수의 분할영상 중 재생되는 영상의 전환시점을 제어하는 가상현실 분할영상 전환방법 및 가상현실 영상재생장치
US11972529B2 (en) 2019-02-01 2024-04-30 Snap Inc. Augmented reality system
CN111935557B (zh) * 2019-05-13 2022-06-28 华为技术有限公司 视频处理方法、装置及系统
US11956295B2 (en) 2019-09-27 2024-04-09 Apple Inc. Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information
WO2021107934A1 (en) * 2019-11-26 2021-06-03 Hewlett-Packard Development Company, L.P. Increase image quality in video streaming sessions
US11284141B2 (en) 2019-12-18 2022-03-22 Yerba Buena Vr, Inc. Methods and apparatuses for producing and consuming synchronized, immersive interactive video-centric experiences
CN112804511B (zh) * 2021-01-04 2022-04-01 烽火通信科技股份有限公司 一种动态渲染全景视频的方法和装置
CN115955580B (zh) * 2023-03-14 2023-06-06 江西财经大学 基于可伸缩编码的全景视频边缘缓存方法及系统

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577981A (en) * 1994-01-19 1996-11-26 Jarvik; Robert Virtual reality exercise machine and computer controlled video system
US7330875B1 (en) * 1999-06-15 2008-02-12 Microsoft Corporation System and method for recording a presentation for on-demand viewing over a computer network
GB2356757B (en) * 1999-11-29 2004-02-04 Seos Displays Ltd Image display apparatus
US6920175B2 (en) * 2001-01-03 2005-07-19 Nokia Corporation Video coding architecture and methods for using same
US7428000B2 (en) * 2003-06-26 2008-09-23 Microsoft Corp. System and method for distributed meetings
KR100596705B1 (ko) * 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
US20060095398A1 (en) * 2004-11-04 2006-05-04 Vasudev Bhaskaran Automatic defocussing of displayed multimedia information on client by monitoring static and dynamic properties of the client
WO2006061801A1 (en) * 2004-12-10 2006-06-15 Koninklijke Philips Electronics, N.V. Wireless video streaming using single layer coding and prioritized streaming
US8458753B2 (en) * 2006-02-27 2013-06-04 Time Warner Cable Enterprises Llc Methods and apparatus for device capabilities discovery and utilization within a content-based network
WO2008142948A1 (ja) * 2007-05-23 2008-11-27 Nec Corporation 動画像配信システム、変換装置および動画像配信方法
US8238420B1 (en) * 2008-01-24 2012-08-07 Adobe Systems Incorporated Video content transcoding for mobile devices
US8319825B1 (en) * 2008-06-16 2012-11-27 Julian Urbach Re-utilization of render assets for video compression
US9294789B2 (en) * 2008-12-09 2016-03-22 Adobe Systems Incorporated Enhanced live multibitrate video encoding
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
US8964008B2 (en) * 2011-06-17 2015-02-24 Microsoft Technology Licensing, Llc Volumetric video presentation
JP5953963B2 (ja) 2012-06-13 2016-07-20 ソニー株式会社 頭部装着型映像表示装置
US9401043B2 (en) * 2013-01-18 2016-07-26 Pixar Photon beam diffusion
US9019337B2 (en) 2013-02-21 2015-04-28 Avaya Inc. System and method for managing a presentation
JP5941000B2 (ja) * 2013-03-12 2016-06-29 日本電信電話株式会社 映像配信装置及び映像配信方法
DE102014207607B4 (de) * 2013-04-25 2019-09-19 Avago Technologies International Sales Pte. Ltd. System und Verfahren zur Verarbeitung von Videodaten
US10137361B2 (en) * 2013-06-07 2018-11-27 Sony Interactive Entertainment America Llc Systems and methods for using reduced hops to generate an augmented virtual reality scene within a head mounted system
JP6178705B2 (ja) * 2013-11-15 2017-08-09 日本電信電話株式会社 映像配信システム、映像配信装置及び映像配信プログラム
KR102257621B1 (ko) * 2014-05-19 2021-05-28 엘지전자 주식회사 썸네일 이미지를 디스플레이 하는 헤드 마운티드 디스플레이 디바이스 및 그 제어 방법
US9661312B2 (en) * 2015-01-22 2017-05-23 Microsoft Technology Licensing, Llc Synthesizing second eye viewport using interleaving
US9955147B2 (en) * 2015-01-28 2018-04-24 Nextvr Inc. Zoom related methods and apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Daisuke Ochi et al., Live streaming system for omnidirectional video, Virtual Reality (VR), IEEE, 2015.03.23.*

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113545097A (zh) * 2019-11-28 2021-10-22 株式会社阿尔法空间 利用一个流影像来播放多个虚拟现实影像的虚拟现实影像播放装置及方法
US11570486B2 (en) 2020-02-24 2023-01-31 Samsung Electronics Co., Ltd. Method and apparatus for transmitting video content using edge computing service
US11736455B1 (en) * 2020-07-01 2023-08-22 Amazon Technologies, Inc. Techniques for performing video-based verification

Also Published As

Publication number Publication date
CN107439010A (zh) 2017-12-05
JP6501904B2 (ja) 2019-04-17
DE112016002377T5 (de) 2018-02-08
CN107439010B (zh) 2022-01-04
US10880346B2 (en) 2020-12-29
US20160352791A1 (en) 2016-12-01
EP3304487A1 (en) 2018-04-11
KR20170123656A (ko) 2017-11-08
WO2016191694A1 (en) 2016-12-01
JP2018525852A (ja) 2018-09-06

Similar Documents

Publication Publication Date Title
KR102013403B1 (ko) 구면 영상 스트리밍
US10567464B2 (en) Video compression with adaptive view-dependent lighting removal
US10341632B2 (en) Spatial random access enabled video system with a three-dimensional viewing volume
US10277914B2 (en) Measuring spherical image quality metrics based on user field of view
US10469873B2 (en) Encoding and decoding virtual reality video
US10419737B2 (en) Data structures and delivery methods for expediting virtual reality playback
US10546424B2 (en) Layered content delivery for virtual and augmented reality experiences
JP6410918B2 (ja) パノラマ映像コンテンツの再生に使用するシステム及び方法
US20160353146A1 (en) Method and apparatus to reduce spherical video bandwidth to user headset
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
JP6672327B2 (ja) ユーザヘッドセットへの球状ビデオ帯域幅を減少させる方法および装置
JP7177034B2 (ja) レガシー及び没入型レンダリングデバイスのために没入型ビデオをフォーマットする方法、装置、及びストリーム
US20240119660A1 (en) Methods for transmitting and rendering a 3d scene, method for generating patches, and corresponding devices and computer programs
GB2551526A (en) Image encoding method and technical equipment for the same
KR102499900B1 (ko) 고해상도 영상의 스트리밍을 위한 영상 전송 장치와 영상 재생 장치 및 그 동작 방법
WO2017220851A1 (en) Image compression method and technical equipment for the same
EP3791592A1 (en) A method and technical equipment for encoding and decoding volumetric video

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right