KR101969943B1 - Method and apparatus for reducing spherical image bandwidth to a user headset - Google Patents

Method and apparatus for reducing spherical image bandwidth to a user headset Download PDF

Info

Publication number
KR101969943B1
KR101969943B1 KR1020177027231A KR20177027231A KR101969943B1 KR 101969943 B1 KR101969943 B1 KR 101969943B1 KR 1020177027231 A KR1020177027231 A KR 1020177027231A KR 20177027231 A KR20177027231 A KR 20177027231A KR 101969943 B1 KR101969943 B1 KR 101969943B1
Authority
KR
South Korea
Prior art keywords
image
view
frame
viewpoint
representation
Prior art date
Application number
KR1020177027231A
Other languages
Korean (ko)
Other versions
KR20170122791A (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 KR20170122791A publication Critical patent/KR20170122791A/en
Application granted granted Critical
Publication of KR101969943B1 publication Critical patent/KR101969943B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • 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/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

방법은 3차원(3D) 영상과 연관된 적어도 하나의 선호 뷰 시점을 결정하는 단계; 제1품질로 적어도 하나의 바람직한 시점 투시도에 대응하는 3D 영상의 제1부분을 인코딩하는 단계; 제2품질로 3D 영상의 제2부분을 인코딩하는 단계를 포함하고, 상기 제1품질은 제2품질과 비교하여 더 높은 품질인 것을 특징으로 한다.The method includes determining at least one preferred view viewpoint associated with a three-dimensional (3D) image; Encoding a first portion of the 3D image corresponding to the at least one preferred view perspective with a first quality; And encoding a second portion of the 3D image with a second quality, wherein the first quality is higher quality than the second quality.

Description

사용자 헤드셋으로의 구면 영상 대역폭을 감소시키는 방법 및 장치Method and apparatus for reducing spherical image bandwidth to a user headset

본 출원은 2015년 5월 27일자로 미국 특허 출원된 제62/167,121호의 "사용자 헤드셋으로의 구면 영상 대역폭을 감소시키는 방법 및 장치"의 이익을 주장하며, 이 출원은 그 전체로서 본원에 참조로 통합되어 있다. This application claims the benefit of “Methods and Apparatus for Reducing Spherical Image Bandwidth to a User Headset” of US Patent Application No. 62 / 167,121, filed May 27, 2015, which is incorporated herein by reference in its entirety. It is integrated.

실시예들은 구면 영상 스트리밍에 관한 것이다.Embodiments relate to spherical video streaming.

구면 영상(또는 다른 3차원 영상) 스트리밍은 상당한 양의 시스템 자원을 소비할 수 있다. 예를 들어, 인코딩된 구면 영상은 인코더 및 디코더와 관련된 처리 및 메모리뿐만 아니라 상당량의 대역폭을 소비할 수 있는 많은 수의 전송 비트를 포함할 수 있다.Spherical video (or other three-dimensional video) streaming can consume a significant amount of system resources. For example, an encoded spherical image may include a large number of transmission bits that may consume a significant amount of bandwidth as well as processing and memory associated with the encoder and decoder.

예시적인 실시예들은 영상 스트리밍, 3D 영상 스트리밍 및/또는 구면 영상 스트리밍을 최적화하기 위한 시스템 및 방법을 개시한다. Example embodiments disclose a system and method for optimizing video streaming, 3D video streaming and / or spherical video streaming.

일반적인 양태에서, 방법은 3차원(3D) 영상과 관련된 적어도 하나의 선호 뷰 시점을 결정하는 단계, 제1품질로 적어도 하나의 선호 뷰 시점에 해당하는 3D영상의 제1부분을 인코딩하는 단계, 및 제2품질로 3D영상의 제2부분을 인코딩하는 단계를 포함하고, 상기 제1품질은 제2품질에 비해 더 높은 품질이다.In a general aspect, a method includes determining at least one preferred view viewpoint associated with a three dimensional (3D) image, encoding a first portion of the 3D image corresponding to the at least one preferred view viewpoint with a first quality, and Encoding a second portion of the 3D image with a second quality, wherein the first quality is higher quality than the second quality.

다른 일반적인 양태에서, 서버 및/또는 스트리밍 서버는 3차원(3D) 영상과 연관된 적어도 하나의 선호 뷰 시점을 결정하는 컨트롤러, 및 제1품질로 적어도 하나의 선호 뷰 시점에 해당하는 3D 영상의 제1부분을 인코딩하고, 제2품질로 3D영상의 제2부분을 인코딩하는 인코더를 포함하고, 상기 제1품질은 제2품질과 비교하여 더 높은 품질이다.In another general aspect, a server and / or a streaming server includes a controller that determines at least one preferred view viewpoint associated with a three-dimensional (3D) image, and a first quality of the 3D image corresponding to the at least one preferred view viewpoint with a first quality. And an encoder for encoding the portion and encoding the second portion of the 3D image at a second quality, wherein the first quality is higher quality compared to the second quality.

또 다른 일반적인 양태에서, 방법은 스트리밍 영상을 위한 요청을 수신하는 단계를 포함하며, 상기 요청은 3차원(3D) 영상과 연관된 사용자 뷰 시점의 표시를 포함하고; 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있는지 결정하는 단계; 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있다고 결정되면, 사용자 뷰 시점과 연관된 카운터를 증가시키는 단계; 및 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있지 않다고 결정되면, 사용자 뷰 시점을 뷰 시점 데이터 저장장치에 추가하고 사용자 뷰 시점과 관련된 카운터를 1로 설정하는 단계를 포함한다. In another general aspect, a method includes receiving a request for a streaming video, the request including an indication of a user view viewpoint associated with the three-dimensional (3D) video; Determining whether a user view viewpoint is stored in the view viewpoint data storage; Incrementing a counter associated with the user view viewpoint if it is determined that the user view viewpoint is stored in the view viewpoint data storage; And if it is determined that the user view viewpoint is not stored in the view viewpoint data storage, adding the user view viewpoint to the view viewpoint data storage and setting a counter related to the user view viewpoint to one.

구현들은 다음 기능 중 하나 이상이 포함될 수 있습니다. 예를 들어, 상기 방법(또는 서버상의 구현)은 3D 영상의 제1부분을 데이터 저장장치에 저장하는 단계; 3D 영상의 제2부분을 데이터 저장장치에 저장하는 단계; 스트리밍 영상에 대한 요청을 수신하는 단계; 스트리밍 스트리밍 영상로서 데이터 저장장치로부터의 3D영상의 제1부분 및 3D 영상의 제2부분을 스트리밍하는 단계;를 더 포함할 수 있다. 상기 방법(또는 서버에서의 구현)은 스트리밍 영상을 위한 요청을 수신하는 단계, 상기 요청은 사용자 뷰 시점의 표시를 포함하고; 3D 영상의 인코딩된 제1부분으로서 사용자 뷰 시점에 대응하는 3D 영상을 선택하는 단계; 및 스트리밍 영상으로서 상기 3D 영상의 선택된 제1부분 및 상기 3D 영상의 제2부분을 스트리밍하는 단계를 더 포함할 수 있다. Implementations can include one or more of the following features: For example, the method (or implementation on a server) may comprise storing a first portion of a 3D image in a data storage device; Storing a second portion of the 3D image in a data storage device; Receiving a request for streaming video; Streaming the first portion of the 3D image and the second portion of the 3D image from the data storage device as a streaming streaming image. The method (or implementation at a server) comprises receiving a request for streaming video, the request comprising an indication of a user view point of view; Selecting a 3D image corresponding to the user view viewpoint as the encoded first portion of the 3D image; And streaming the selected first portion of the 3D image and the second portion of the 3D image as a streaming image.

상기 방법(또는 서버에서의 구현)은 스트리밍 영상을 위한 요청을 수신하는 단계, 상기 요청은 3D 영상과 관련된 사용자 뷰 시점의 표시를 포함하고; 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있는지 결정하는 단계; 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있다고 결정되면, 사용자 뷰 시점과 관련된 카운터를 증가시키는 단계; 및 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있지 않다고 결정되면, 사용자 뷰 시점을 뷰 시점 데이터 저장장치에 추가하고 사용자 뷰 시점과 관련된 카운터를 1로 설정하는 단계를 더 포함할 수 있다. 상기 방법(또는 서버에서의 구현)은, 상기 3D 영상의 제2부분을 인코딩하는 단계는 제1패스 인코딩 동작에서 적어도 하나의 제1서비스 품질 QoS 파라미터를 사용하는 단계를 포함하고, 상기 3D 영상의 제1부분을 인코딩하는 단계는 제2패스 인코딩 동작에서 적어도 하나의 제2서비스 품질 QoS 파라미터를 이용하는 단계를 더 포함할 수 있다. The method (or implementation at a server) receives a request for streaming video, the request including an indication of a user view viewpoint associated with the 3D video; Determining whether a user view viewpoint is stored in the view viewpoint data storage; If it is determined that the user view viewpoint is stored in the view viewpoint data storage, incrementing a counter associated with the user view viewpoint; And if it is determined that the user view viewpoint is not stored in the view viewpoint data storage, adding the user view viewpoint to the view viewpoint data storage and setting a counter related to the user view viewpoint to one. The method (or implementation at a server) wherein the encoding of the second portion of the 3D video comprises using at least one first quality of service QoS parameter in a first pass encoding operation. Encoding the first portion may further comprise using at least one second quality of service QoS parameter in a second pass encoding operation.

예를 들어, 3D 영상과 연관된 적어도 하나의 선호 뷰 시점의 결정하는 단계는 이력 시청된 기준점 및 이력 시청된 뷰 시점 중 적어도 하나에 기초한다. 3D 영상과 관련된 적어도 하나의 선호 뷰 시점은 3D 영상의 뷰어의 방향, 3D 영상의 뷰어의 위치, 3D 영상의 뷰어의 포인트 및 초점 3D 영상 뷰어의 결상점 중 적어도 하나에 기초한다. 상기 3D 영상과 관련된 적어도 하나의 선호 뷰 시점의 결정하는 단계는 디폴트 뷰 시점에 기초하고, 상기 디폴트 뷰 시점은 디스플레이 디바이스의 사용자의 특성, 연관된 그룹의 특성 디스플레이 장치의 사용자, 디렉터스 컷 및 3D 영상의 특성에 따라 결정된다. 예를 들어, 상기 방법 (또는 서버상의 구현)은 상기 제1품질의 3D 영상의 제2부분의 적어도 하나의 부분을 반복적으로 인코딩하고, 상기 제2부분의 적어도 하나의 부분을 스트리밍하는 단계를 더 포함 할 수 있다.For example, determining the at least one preferred view viewpoint associated with the 3D image is based on at least one of a historical viewed reference point and a historical viewed view viewpoint. The at least one preferred view viewpoint associated with the 3D image is based on at least one of a direction of the viewer of the 3D image, a position of the viewer of the 3D image, a point of the viewer of the 3D image, and an imaging point of the focus 3D image viewer. Determining at least one preferred view viewpoint associated with the 3D image is based on a default view viewpoint, wherein the default view viewpoint is a characteristic of a user of the display device, a user of the associated display device, a director's cut, and a 3D image. It depends on the property. For example, the method (or implementation on a server) may further include repeatedly encoding at least one portion of the second portion of the first quality 3D image and streaming at least one portion of the second portion. May contain

본 명세서에 개시된 예시적인 실시예들은 영상 스트리밍, 3D 영상 스트리밍 및/또는 구면 영상 스트리밍을 최적화하기 위한 시스템 및 방법을 개시할 수 있다.Exemplary embodiments disclosed herein may disclose a system and method for optimizing video streaming, 3D video streaming, and / or spherical video streaming.

예시적인 실시예들은 이하의 상세한 설명 및 첨부된 도면들로부터 더욱 완전히 이해될 것이며, 동일한 요소들은 동일한 참조 번호들로 표시되며, 단지 예시적인 방식으로 주어지며 따라서 예시적인 실시예를 제한하지 않는다.
도 1A는 적어도 하나의 예시적인 실시예에 따른 구의 2차원(2D) 표현을 도시한다.
도 1B는 2D 직사각형 표현으로서 구의 2D 표현의 미포장 상태의 원통형 표현을 도시한다.
도 2 내지 도 5는 적어도 하나의 예시적인 실시예에 따라 스트리밍 구면 영상을 인코딩하는 방법을 도시한다.
도 6A는 적어도 하나의 예시적인 실시예에 따른 영상 인코더 시스템을 도시한다.
도 6B는 적어도 하나의 예시적인 실시예에 따른 영상 디코더 시스템을 도시한다.
도 7A는 적어도 하나의 예시적인 실시예에 따른 영상 인코더 시스템에 대한 흐름도를 도시한다.
도 7B는 적어도 하나의 예시적인 실시 예에 따른 영상 디코더 시스템에 대한 흐름도를 도시한다.
도 8은 적어도 하나의 예시적인 실시예에 따른 시스템을 도시한다.
도 9는 본 명세서에 기술된 기술을 구현하는데 사용될 수 있는 컴퓨터 장치 및 이동 컴퓨터 장치의 개략적인 블록도이다.
이들 도면은 소정의 예시적인 실시예들에서 이용되는 방법, 구조 및/또는 재료의 일반적인 특성을 설명하고 아래에 제공된 서면 설명을 보충하기 위한 것이다. 그러나, 이들 도면은 임의의 주어진 실시예의 정확한 구조적 또는 성능 특성을 확장하지 않고 정확하게 반영하지 않을 수 있으며, 예시적인 실시예들에 의해 포함되는 값 또는 특성의 범위를 정의 또는 한정하는 것으로 해석되어서는 안된다. 예를 들어, 구조 요소의 상대적 두께 및 위치 설정은 명료함을 위해 감소되거나 과장될 수 있다. 다양한 도면에서 유사하거나 동일한 참조 번호의 사용은 유사사 또는 동일한 요소 또는 특징의 존재를 나타내기 위한 것이다.
Exemplary embodiments will be more fully understood from the following detailed description and the accompanying drawings, in which like elements are denoted by like reference numerals and are given only in an illustrative manner and thus do not limit the exemplary embodiment.
1A shows a two-dimensional (2D) representation of a sphere in accordance with at least one exemplary embodiment.
1B shows an unpackaged cylindrical representation of a 2D representation of a sphere as a 2D rectangular representation.
2-5 illustrate a method of encoding a streaming spherical image in accordance with at least one exemplary embodiment.
6A illustrates an image encoder system according to at least one example embodiment.
6B illustrates an image decoder system according to at least one example embodiment.
7A shows a flow diagram for a video encoder system according to at least one example embodiment.
7B is a flowchart of an image decoder system according to at least one exemplary embodiment.
8 illustrates a system according to at least one example embodiment.
9 is a schematic block diagram of a computer device and a mobile computer device that may be used to implement the techniques described herein.
These drawings are intended to explain the general characteristics of the methods, structures and / or materials used in certain exemplary embodiments and to supplement the written description provided below. However, these drawings may not accurately reflect and do not extend the exact structural or performance characteristics of any given embodiment and should not be construed as defining or limiting the range of values or characteristics encompassed by the exemplary embodiments. . For example, the relative thickness and positioning of the structural elements may be reduced or exaggerated for clarity. The use of similar or identical reference numerals in the various figures is intended to indicate the presence of similar or identical elements or features.

예시적인 실시 예는 다양한 수정 및 대안적인 형태를 포함할 수 있지만, 그 실시 예는 도면의 예로서 도시되며 여기에 상세히 설명될 것이다. 그러나, 예시적인 실시 예를 개시된 특정 형태로 한정하려는 의도는 없지만, 반대로, 예시적인 실시 예는 청구 범위의 범주 내에 속하는 모든 변경, 등가물 및 대안을 포함하는 것으로 이해되어야 한다. 동일한 도면 부호는 도면 전체에 걸쳐 동일한 요소를 나타낸다.The example embodiments may include various modifications and alternative forms, but the embodiments are shown by way of example in the drawings and will be described in detail herein. However, although there is no intention to limit the example embodiments to the specific forms disclosed, on the contrary, the example embodiments should be understood to include all modifications, equivalents, and alternatives falling within the scope of the claims. Like reference numerals denote like elements throughout the drawings.

예시적인 실시예는 영상의 스트리밍, 3D영상의 스트리밍, 구면 영상의 일부분을 시청한(영상의 뷰어에 의해) 우선도(예를 들어, 디렉터스 컷, 이력 시청 (historical viewing 등)에 기초하여 구면 영상(및/또는 다른 3차원 영상)의 스트리밍을 최적화하도록 구성된 시스템 및 방법을 개시한다. 예를 들어, 디렉터스 컷은 감독 또는 영상 제작자가 선택한 뷰 시점일 수 있다. 상기 디렉터스 컷은 영상의 감독 또는 제작자가 선택하거나 보았던 카메라(복수의 카메라 중의) 뷰를 기반으로 할 수 있다. Exemplary embodiments include spherical images based on priorities (eg, director's cut, historical viewing, etc.) for viewing video (streaming), streaming 3D video, and viewing a portion of the spherical video (by the viewer of the video). A system and method configured to optimize the streaming of (and / or other three-dimensional images), for example, a director's cut may be a view viewpoint selected by the director or the image producer, wherein the director's cut is the director or producer of the image. Can be based on the camera (of multiple cameras) view you have selected or viewed.

구면 영상, 구면 영상 및/또는 구면 이미지의 프레임은 시점(perspective)을 가질 수 있다. 예를 들어 구면 이미지는 지구본 이미지 일 수 있다. 내부 시점은 바깥을 바라보는 지구의 중심으로부터의 뷰일 수 있다. 또는 내부 시점은 지구상에서 우주를 바라보는 것일 수 있다. 외부 시점은 우주에서 지구를 내려다보는 뷰일 수 있다. 다른 예로서, 시점은 볼 수 있는 이미지의 일부분에 기초할 수 있다. 즉, 가시 시점(viewable perspective)은 뷰어(착용자)가 볼 수 있는 시점일 수 있다. 가시 시점은 뷰어 앞에 있는 구면 이미지의 일부일 수 있다. 예를 들어, 내부 시점에서 볼 때, 뷰어는 지면(예를 들어, 지구)에 누워서 우주를 바라볼 수 있다. 뷰어는 이미지에서 달, 태양 또는 특정 별을 볼 수 있다. 그러나, 뷰어가 누워 있는 지면은 구면 이미지에 포함되어 있지만 현재의 가시 시점 밖에 있다. 이 예에서, 뷰어는 그녀의 머리를 돌릴 수 있고 상기 지면은 주변의 가시 시점에 포함될 것이다. 뷰어는 뒤집을 수 있고 지면은 가시 시점 내에 있게 되지만 달, 태양 또는 별들은 그렇지 않았다.The spherical image, the spherical image and / or the frame of the spherical image may have a perspective. For example, the spherical image may be a globe image. The internal viewpoint may be a view from the center of the earth looking outward. Or the internal view may be a view of the universe on Earth. The outer view can be a view of the earth from space. As another example, the viewpoint may be based on a portion of the image that is visible. That is, the viewable perspective may be a viewpoint that the viewer (wearer) can see. The view point of view may be part of the spherical image in front of the viewer. For example, when viewed from an internal point of view, the viewer may lie on the ground (eg, Earth) to look at the universe. The viewer can see the moon, sun or a specific star in the image. However, the ground on which the viewer lays is included in the spherical image but outside the current viewing point. In this example, the viewer can turn her head and the ground will be included at the point of view of the surroundings. The viewer could flip and the ground would be in view, but the moon, sun or stars would not.

외부 시점으로부터의 가시 시점은 차단되지 않은(예를 들어, 이미지의 다른 부분에 의해) 구면 이미지의 일부분 및/또는 보이지 않게 절곡되지 않은 구면 이미지의 일부분일 수 있다. 구면 이미지의 다른 부분은 구면 이미지의 움직임(예를 들어, 회전) 및/또는 구면 이미지의 이동에 의해 외부 시점으로부터 가시 시점을 가져올 수 있다. 따라서, 가시 시점은 구면 이미지 뷰어의 가시 범위 내에 있는 구면 이미지의 일부분이다.The view point from the external point of view may be a portion of the spherical image that is not blocked (eg, by another portion of the image) and / or a portion of the spherical image that is not invisibly bent. Other portions of the spherical image may result in a visible point of view from an external point of view by movement (eg, rotation) of the spherical image and / or movement of the spherical image. Thus, the view point of view is a portion of the spherical image that is within the visible range of the spherical image viewer.

구면 이미지는 시간에 대해 변하지 않는 이미지이다. 예를 들어, 지구와 관련된 내부 시점으로부터의 구면 이미지는 달과 별을 한 위치에 표시할 수 있다. 반면에 구면 영상(또는 일련의 이미지)은 시간에 따라 변할 수 있다. 예를 들어, 지구와 관련된 내부 시점으로부터의 구면 영상은 움직이는 달과 별(예를 들어, 지구 회전으로 인해) 및/또는 이미지(예를 들어, 하늘)를 가로지르는 비행기 줄무늬를 나타낼 수 있다.Spherical images are images that do not change with time. For example, a spherical image from an internal viewpoint with respect to the earth can display the moon and stars in one location. Spherical images (or series of images), on the other hand, can change over time. For example, spherical images from internal viewpoints associated with the earth can represent plane stripes across moving moons and stars (eg, due to earth rotation) and / or images (eg, the sky).

도 1A는 구의 2차원(2D) 표현이다. 도 1A에 도시된 바와 같이, 구(100)(예를 들어, 구면 이미지 또는 구면 영상의 프레임으로서)는 내부 시점(105, 110), 외부 시점(115) 및 가시 시점(120,125,130)의 방향을 나타낸다. 상기 가시 시점(120)은 내부 시점(105)으로부터 볼 수 있는 것처럼 구(100)의 일부분일 수 있다. 상기 가시 시점(125)은 외부 시점으로부터 볼 수 있는 것처럼 구(100)의 일부분일 수 있다.1A is a two-dimensional (2D) representation of a sphere. As shown in FIG. 1A, the sphere 100 (eg, as a frame of a spherical image or spherical image) represents the directions of the internal viewpoints 105, 110, the external viewpoint 115, and the visible viewpoints 120, 125, 130. . The view point 120 may be part of the sphere 100 as can be seen from the inner view point 105. The view point 125 may be part of the sphere 100 as seen from an external view point.

도 1B는 2D 직사각형 표현으로서 구(100)의 2D 표현인 미포장된 원통형 표현(150)을 도시한다. 미포장된 원통형 표현(150)으로 도시된 이미지의 등각 투영은 점 A와 점 B 사이의 중간선으로부터 수직으로(도 1B에 도시된 바와 같이 위아래로) 진행함에 따라 신장된 이미지로 나타날 수 있다. 상기 2D 직사각형 표현은 N×N 블록의 CxR 행렬로서 분해될 수 있다. 예를 들어, 도 1B에 도시된 바와같이, 미포장된 원통형 표현(150)은 N×N 블록의 30x16 행렬이다. 그러나, 다른 CxR 차원은 본 개시의 범위 내에 있다. 상기 블록들은 2x2, 2x4, 4x4, 4x8, 8x8, 8x16, 16x16 등의 블록(또는 픽셀 블록)일 수 있다.1B shows an unpacked cylindrical representation 150 that is a 2D representation of sphere 100 as a 2D rectangular representation. The isometric projection of the image shown by the unpacked cylindrical representation 150 may appear as an image that is stretched as it runs vertically (up and down as shown in FIG. 1B) from the midline between points A and B. The 2D rectangular representation may be decomposed as a C × R matrix of N × N blocks. For example, as shown in FIG. 1B, the unpacked cylindrical representation 150 is a 30 × 16 matrix of N × N blocks. However, other CxR dimensions are within the scope of this disclosure. The blocks may be blocks (or pixel blocks) such as 2x2, 2x4, 4x4, 4x8, 8x8, 8x16, 16x16, and the like.

구면 이미지는 모든 방향으로 연속적인 이미지이다. 따라서, 구면 이미지가 복수의 블록으로 분해된다면, 상기 복수의 블록은 구면 이미지에 걸쳐 연속될 것이다. 즉, 2D이미지에서처럼 모서리나 경계가 없다. 예시적 구현들에서, 인접 말단 블록은 2D 표현의 경계에 인접할 수 있다. 부가적으로, 인접 말단 블록은 2D 표현의 경계에 있는 블록에 연속적인 블록일 수 있다. 예를 들어, 상기 인접 말단 블록은 2차원 표현의 둘 이상의 경계와 관련된다. 다시 말해, 구면 이미지는 모든 방향에서 연속적인 이미지이기 때문에, 인접 말단은 이미지 또는 프레임에서 상부 경계(예를 들어, 블록열의) 및 하부 경계와 연관될 수 있고 및/또는 이미지 또는 프레임에서 좌측 경계(예를들어, 블록행의) 및 우측 경계와 연관될 수 있다. Spherical images are continuous images in all directions. Thus, if the spherical image is decomposed into a plurality of blocks, the plurality of blocks will continue over the spherical image. That is, there are no edges or boundaries as in 2D images. In example implementations, adjacent terminal blocks can be adjacent to the boundary of the 2D representation. In addition, the adjacent end block may be a block contiguous to the block at the boundary of the 2D representation. For example, the adjacent end blocks are associated with two or more boundaries of the two-dimensional representation. In other words, since the spherical image is a continuous image in all directions, the adjacent ends may be associated with the upper boundary (eg, of the row of blocks) and the lower boundary in the image or frame and / or the left boundary (in the image or frame). For example, in a block row) and to the right boundary.

예를 들어, 등각 투영이 사용되면, 인접 말단 블록은 열이나 행의 다른 끝에 있는 블록일 수 있다. 예를 들어, 도 1B에 도시된 바와같이, 블럭(160 및 170)은 서로에 대해 각각의 인접 단부 블록(열을 기준으로)일 수 있다. 게다가, 블록(180 및 185)은 서로에 대해 각각의 인접 단부 블록(열을 기준으로)일 수 있다. 이에 더하여, 블록(165 및 175)은 서로에 대해 각각의 인접 단부 블록(행을 기준으로)일 수 있다. 뷰 시점(192)는 적어도 하나의 블록을 포함(및/또는 중첩)할 수 있다. 블록들은 이미지의 영역, 프레임의 영역, 이미지 또는 프레임의 부분 또는 서브 세트, 블록들의 그룹 등으로서 인코딩될 수 있다. 이하, 이 블록 그룹은 타일 또는 타일 그룹으로 참조될 수 있다. 예를 들어, 타일(190 및 195)들은 도 1B에서 4개 블록의 그룹으로 도시된다. 타일(195)은 뷰 시점(192) 내에 있는 것으로 도시되어 있다.For example, if isometric is used, adjacent end blocks may be blocks at the other end of the column or row. For example, as shown in FIG. 1B, blocks 160 and 170 may be respective adjacent end blocks (relative to columns) relative to one another. In addition, blocks 180 and 185 may be respective adjacent end blocks (based on columns) relative to one another. In addition, blocks 165 and 175 may be respective adjacent end blocks (relative to rows) with respect to each other. The view point 192 may include (and / or overlap) at least one block. Blocks may be encoded as an area of an image, an area of a frame, a portion or subset of an image or frame, a group of blocks, or the like. Hereinafter, this block group may be referred to as a tile or a tile group. For example, tiles 190 and 195 are shown in groups of four blocks in FIG. 1B. Tile 195 is shown to be within view point 192.

예시적인 실시예들에서, 인코딩된 구면 영상의 프레임을 스트리밍하는 것에 더하여, 뷰어(적어도 하나의 이력 시청된 기준점 또는 뷰 시점들에서)가 자주 본 적어도 하나의 기준점에 근거하여 선택된 타일(또는 타일 그룹)로서 뷰 시점은 예를 들어, 보다 고품질(예를 들어, 고해상도 및/또는 저왜곡)로 인코딩될 수 있고, 구면 영상의 인코딩된 프레임과 함께(또는 그 일부로서) 스트리밍될 수 있다. 따라서, 재생 중에 뷰어는 전체 구면 영상이 재생되는 동안에 디코딩된(더 높은 품질로) 타일을 볼 수 있고, 뷰어의 뷰 시점이 빈번하게 시청된 뷰 시점으로 변경되는 경우 전체 구면 영상 역시 이용 가능하다. 뷰어는 또한 뷰 위치를 변경하거나 다른 뷰 시점으로 전환할 수 있다. 만약 다른 뷰 시점이 뷰어가 자주 보는 적어도 하나의 기준 포인트에 포함되는 경우, 재생된 영상은 다른 뷰 시점(예를 들어, 뷰어가 자주 보는 적어도 하나의 기준점 중의 하나가 아닌)보다 높은 품질(예를 들어, 더 높은 해상도)일 수 있다. 보다 높은 품질에서 이미지 또는 프레임의 선택 부분 또는 서브세트만을 인코딩 및 스트리밍하는 하나의 이점은, 구면 영상의 선택된 이미지 또는 프레임이 반드시 인코딩, 스트리밍 또는 디코딩 없이 더 높은 품질로 디코딩되고 재생될 수 있다는 이점이 있으며, 보다 높은 품질로 구면 영상 전체를 디코딩함으로써 인코더 및 디코더와 관련된 대역폭 사용 및 처리 및 메모리 자원들의 효율성을 증가시킬 수 있다.In exemplary embodiments, in addition to streaming a frame of encoded spherical image, a tile (or tile group) selected based on at least one reference point that the viewer (at least at one historically watched reference point or view viewpoints) often viewed The view viewpoint can be encoded, for example, at higher quality (eg, high resolution and / or low distortion) and can be streamed with (or as part of) an encoded frame of the spherical image. Thus, during playback, the viewer can see the decoded (higher quality) tiles while the full spherical image is playing, and the full spherical image is also available if the viewer's view point changes to a frequently viewed view point. The viewer can also change the view position or switch to a different view point. If another view point is included in at least one reference point that the viewer frequently sees, the reproduced image is of higher quality (e.g., not one of the at least one reference point that the viewer often sees). For example, higher resolution). One advantage of encoding and streaming only selected portions or subsets of images or frames at higher quality is that the selected images or frames of the spherical image can be decoded and played back at higher quality without necessarily encoding, streaming or decoding. In addition, by decoding the entire spherical image with higher quality, it is possible to increase the efficiency of bandwidth usage and processing and memory resources associated with the encoder and decoder.

헤드 마운트 디스플레이(HMD)에서, 뷰어는 인식된 3차원(3D) 영상을 투영하는 좌측(예를 들어, 좌안) 디스플레이 및 우측 (예를 들어, 우안) 디스플레이의 사용을 통해 시각적 가상 현실을 경험한다. 예시적인 구현들에 따르면, 구면(예를 들어, 3D) 영상 또는 이미지는 서버에 저장된다. 영상 또는 이미지는 인코딩되어 서버로부터 HMD로 스트리밍될 수 있다. 상기 구면 영상 또는 이미지는 좌측 이미지 및 우측 이미지에 대한 메타 데이터와 함께 패키징된(예를 들어, 데이터 패킷 내에) 좌측 이미지 및 우측 이미지로서 인코딩될 수 있다. 이어서 상기 좌측 이미지 및 우측 이미지는 좌측(예를 들어, 좌안) 디스플레이 및 우측(예를 들어, 우안) 디스플레이에 의해 디코딩되고 디스플레이된다.In a head mounted display (HMD), the viewer experiences visual virtual reality through the use of a left (eg, left eye) display and a right (eg, right eye) display that projects a recognized three-dimensional (3D) image. . According to example implementations, spherical (eg, 3D) images or images are stored on a server. The video or image may be encoded and streamed from the server to the HMD. The spherical image or image may be encoded as a left image and a right image packaged with metadata for the left image and the right image (eg, in a data packet). The left image and the right image are then decoded and displayed by the left (eg left eye) display and right (eg right eye) display.

본 명세서에서 설명된 시스템(들) 및 방법(들)은 좌측 이미지 및 우측 이미지 모두에 적용 가능하고, 본 명세서 전반에 걸쳐 이미지, 프레임, 이미지의 일부, 프레임의 일부, 타일 및/또는 기타 등등을 포함할 수 있다. 즉, 서버(예를들어, 스트리밍 서버)에서 사용자 장치(예를들어, HMD)로 전달된 다음 디스플레이를 위해 위해 디코딩된 인코딩된 데이터는 3D영상 또는 이미지와 관련된 왼쪽 이미지 및/또는 오른쪽 이미지일 수 있다. The system (s) and method (s) described herein are applicable to both left and right images and refer to images, frames, portions of images, portions of frames, tiles, and / or the like throughout the specification. It may include. That is, the encoded data that is passed from the server (eg streaming server) to the user device (eg HMD) and then decoded for display may be a left image and / or right image associated with the 3D image or image. have.

도 2 내지 도 5는 예시적인 실시예에 따른 방법의 흐름도이다. 도 2 내지 5에 관련하여 기술된 단계들은, 장치(예를 들어, 후술될 도 6A, 도 6B, 도 7A, 도 7B 및 도 8C에 도시된 바와 같은)와 연관된 메모리(예를 들어, 적어도 하나의 메모리(610))에 저장된 소프트웨어 코드의 실행으로 인해 수행될 수 있고, 상기 장치와 관련된 적어도 하나의 프로세서(예를 들어, 적어도 하나의 프로세서(605))에 의해 실행될 수 있다. 그러나, 특수 목적 프로세서로서 구현된 시스템과 같은 대안적인 실시예가 고려될 수 있다. 후술되는 단계들은 프로세서에 의해 실행되는 것으로 설명되지만, 상기 단계들은 반드시 동일한 프로세서에 의해 실행되는 것은 아니다. 다시 말해서, 적어도 하나의 프로세서는 도 2 내지 도 5와 관련하여 아래에 설명된 단계들을 실행할 수 있다. 2-5 are flowcharts of a method according to an exemplary embodiment. The steps described in connection with FIGS. 2-5 may include, but are not limited to, memory (eg, at least one associated with an apparatus (eg, as shown in FIGS. 6A, 6B, 7A, 7B, and 8C, described below). May be executed due to the execution of software code stored in the memory 610 of the memory 610, and may be executed by at least one processor (eg, at least one processor 605) associated with the apparatus. However, alternative embodiments such as systems implemented as special purpose processors may be considered. The steps described below are described as being executed by a processor, but the steps are not necessarily executed by the same processor. In other words, at least one processor may execute the steps described below with respect to FIGS.

도 2는 이력 뷰 시점을 저장하는 방법을 도시하며, 여기서 이력 (historical)은 사용자들이 이전에 요청했던 뷰 시점을 지칭한다. 예를 들어, 도 2는 구면 영상 스트림에서 일반적으로 시청된 뷰 시점의 데이터베이스 구축을 도시할 수 있다. 도 2에 도시된 바와 같이, 단계 S205에서 뷰 시점의 표시가 수신된다. 예를 들어, 타일은 디코더를 포함하는 장치에 의해 요구될 수 있다. 상기 타일 요청은 구면 영상 상의 뷰어의 방향, 위치, 포인트 또는 초점과 관련된 시점 또는 뷰 시점에 기초한 정보를 포함할 수 있다. 시점 또는 뷰 시점은 사용자 뷰 시점 또는 HMD 사용자의 뷰 시점일 수 있다. 예를 들어, 상기 뷰 시점(예를 들어, 사용자 뷰 시점)은 구면 영상 상의 위도 및 경도 위치 일 수 있다(예를 들어, 내부 시점 또는 외부 시점으로서). 뷰(view), 시점(perspective) 또는 뷰 시점(view perspective)은 구면 영상에 근거하여 큐브의 측면으로 결정될 수 있다. 상기 뷰 시점의 표시는 또한 구면 영상 정보를 포함할 수 있다. 예시적인 구현에서, 뷰 시점의 표시는 뷰 시점과 연관된 프레임(예를 들어, 프레임 시퀀스)에 관한 정보를 포함할 수 있다. 예를 들어, 뷰(예를 들어, 위도 및 경도 위치 또는 측면)는 예를 들어 HTTP (Hypertext Transfer Protocol)를 사용하여 HMD가 포함된 사용자 디바이스로부터 스트리밍 서버로 전송될 수 있다.2 illustrates a method of storing a historical view viewpoint, where the historical refers to a view viewpoint that users have previously requested. For example, FIG. 2 may illustrate building a database of view points of view generally viewed in spherical video streams. As shown in FIG. 2, an indication of the view viewpoint is received in step S205. For example, a tile may be required by an apparatus that includes a decoder. The tile request may include information based on a viewpoint or view viewpoint related to the direction, position, point, or focus of the viewer on the spherical image. The viewpoint or view viewpoint may be a user viewpoint viewpoint or a view viewpoint of the HMD user. For example, the view viewpoint (eg, user view viewpoint) may be a latitude and longitude position on the spherical image (eg, as an internal viewpoint or an external viewpoint). The view, perspective or view perspective may be determined from the side of the cube based on the spherical image. The display of the view viewpoint may also include spherical image information. In an example implementation, the indication of the view viewpoint can include information regarding a frame (eg, a frame sequence) associated with the view viewpoint. For example, the view (eg, latitude and longitude location or side) may be transmitted from the user device with the HMD to the streaming server using, for example, Hypertext Transfer Protocol (HTTP).

단계(S210)에서, 뷰 시점(예를 들어, 사용자 뷰 시점)이 뷰 시점 데이터 저장장치(datastore)에 저장되어 있는지 결정된다. 예를 들어, 데이터 저장장치(예를 들어, 뷰 시점 데이터 저장장치(815))는 뷰 시점 또는 사용자 뷰 시점과 관련된 정보에 기초하여 질의(query)되거나 필터링될 수 있다. 예를 들어, 데이터 저장장치는 뷰 시점이 보여지는 구면 영상 내의 타임 스탬프뿐만 아니라 뷰 시점의 구면 영상 상의 위도와 경도 위치에 기초하여 질의되거나 필터링될 수 있다. 상기 타임 스탬프는 구면 영상의 재생과 관련된 시간 및/또는 시간의 범위일 수 있다. 상기 쿼리 또는 필터는 공간상의 근접성(예를 들어, 현재의 뷰 시점이 주어진 저장 뷰 시점과 얼마나 가까운지) 및/또는 시간적 근접성(예 : 주어진 저장 타임 스탬프와 현재의 타임 스탬프가 얼마나 가까운지)을 기반으로 할 수 있다. 만약 쿼리 또는 필터가 결과를 반환하면 뷰 시점은 데이터 저장장치에 저장된다. 그렇지 않다면 뷰 시점은 데이터 저장장치에 저장되지 않는다. 뷰 시점이 뷰 시점 데이터 저장장치에 저장되면, 처리는 단계(S215)에서 단계(S220)로 계속된다. 그렇지 않으면, 처리는 단계(S225)에서 계속된다.In step S210, it is determined whether a view viewpoint (eg, a user view viewpoint) is stored in the view viewpoint data store. For example, data storage (eg, view viewpoint data storage 815) may be queried or filtered based on information associated with the view viewpoint or the user view viewpoint. For example, the data storage device may be queried or filtered based on the latitude and longitude position on the spherical image of the view viewpoint as well as the time stamp in the spherical image where the view viewpoint is viewed. The time stamp may be a time and / or a range of time associated with playing a spherical image. The query or filter may be used to determine spatial proximity (e.g., how close the current view point is to a given storage view point in time) and / or temporal proximity (e.g., how close the given storage time stamp is to the current time stamp). Can be based If the query or filter returns a result, the view point is stored in the data store. Otherwise, the view point is not stored in the data store. If the view viewpoint is stored in the view viewpoint data storage, processing continues from step S215 to step S220. Otherwise, processing continues at step S225.

단계(S220)에서, 상기 수신된 뷰 시점과 관련된 카운터 또는 순위(ranking) (또는 순위값)가 증가된다. 예를 들어, 데이터 저장장치는 이력 뷰 시점을 포함하는 데이터 테이블(예를 들어, 데이터 저장장치는 복수의 데이터 테이블을 포함하는 데이터베이스 일 수 있음)을 포함할 수 있다. 상기 데이터 테이블은 뷰 시점에 대해 억세스될 수 있다(예를 들어, 각각 고유하게). 상기 데이터 테이블은 뷰 시점의 식별 정보, 뷰 시점과 관련된 정보 및 뷰 시점이 요청된 횟수를 나타내는 카운터를 포함할 수 있다. 상기 카운터는 뷰 시점이 요청될 때마다 증가될 수 있다. 상기 데이터 테이블에 저장된 데이터는 익명으로 처리될 수 있다. 즉, 사용자, 장치, 세션 등에 대한 참조(또는 식별)가 없도록 데이터가 저장될 수 있다. 따라서, 데이터 테이블에 저장된 데이터는 영상의 사용자 또는 뷰어에 기초하여 구별할 수 없다. 예시적인 구현, 데이터 테이블에 저장된 데이터는 사용자를 식별하지 않고 사용자에 기초하여 분류될 수 있다. 예를 들어, 데이터는 사용자 및/또는 기타의 연령, 연령 범위, 성별, 유형 또는 역할(예를 들어, 음악가 또는 군중)을 포함할 수 있다.In step S220, a counter or ranking (or rank value) associated with the received view viewpoint is incremented. For example, the data storage device may include a data table including a history view viewpoint (eg, the data storage device may be a database including a plurality of data tables). The data table can be accessed (eg, each uniquely) for the view point of view. The data table may include identification information of the view viewpoint, information related to the view viewpoint, and a counter indicating the number of times the view viewpoint is requested. The counter may be incremented each time a view point is requested. Data stored in the data table may be anonymously processed. That is, data may be stored such that there is no reference (or identification) to a user, device, session, or the like. Therefore, data stored in the data table cannot be distinguished based on the user or viewer of the image. In an example implementation, data stored in a data table may be classified based on the user without identifying the user. For example, the data may include a user and / or other age, age range, gender, type or role (eg musician or crowd).

단계(S225)에서, 뷰 시점은 뷰 시점 데이터 저장장치에 추가된다. 예를 들어, 뷰 시점의 식별, 뷰 시점과 관련된 정보 및 1로 설정된 카운터(또는 순위값)는 뷰 시점 이력을 포함하는 데이터 테이블에 저장될 수 있다.In step S225, the view viewpoint is added to the view viewpoint data storage. For example, identification of the view viewpoint, information related to the view viewpoint, and a counter (or rank value) set to 1 may be stored in a data table including the view viewpoint history.

예시적인 실시예에서, 적어도 하나의 선호 뷰 시점과 연관된 타일은 보다 높은 QoS로 인코딩될 수 있다. 상기 QoS는 위에서 논의된 품질의 구현(예를 들어, 품질을 정의하는 인코더 변수 입력)일 수 있다. 예를 들어, 인코더(예를들어, 영상 인코더(625))는 3D영상과 관련된 타일을 개별적으로 인코딩할 수 있다. 적어도 하나의 선호 뷰 시점과 연관된 타일은 3D영상의 나머지 부분과 연관된 타일보다 높은 QoS로 인코딩될 수 있다. 예시적인 구현에서, 상기 3D영상은 제1QoS 파라미터(들) (예를 들어, 제1패스에서) 또는 제1인코딩 패스에서 사용된 적어도 하나의 제1QoS 파라미터를 사용하여 인코딩될 수 있다. 게다가, 인코딩될 수 있는 적어도 하나의 선호 뷰 시점과 관련된 타일은 제2QoS 파라미터(들)(예를 들어, 제2패스에서) 또는 제2 인코딩 패스에서 사용된 적어도 하나의 제2QoS 파라미터를 사용하여 인코딩될 수 있다. 이 예시적 구현에서, 상기 제2QoS는 제1QoS보다 높은 QoS이다. 다른 예시적 구현에서, 상기 3D 영상은 3D영상을 나타내는 복수의 타일로서 인코딩될 수 있다. 상기 적어도 하나의 선호 뷰 시점과 연관된 타일들은 제2QoS 파라미터(들)를 사용하여 인코딩될 수 있다. 나머지 타일들은 제1QoS 파라미터(들)를 사용하여 인코딩될 수 있다.In an example embodiment, tiles associated with at least one preferred view viewpoint may be encoded with higher QoS. The QoS may be an implementation of the quality discussed above (eg, an encoder variable input defining the quality). For example, an encoder (eg, image encoder 625) may individually encode tiles associated with the 3D image. Tiles associated with at least one preferred view viewpoint may be encoded with a higher QoS than tiles associated with the rest of the 3D image. In an example implementation, the 3D image may be encoded using a first QoS parameter (s) (eg, in the first pass) or at least one first QoS parameter used in the first encoding pass. In addition, the tile associated with the at least one preferred view viewpoint that can be encoded is encoded using the second QoS parameter (s) (eg, in the second pass) or at least one second QoS parameter used in the second encoding pass. Can be. In this example implementation, the second QoS is higher QoS than the first QoS. In another example implementation, the 3D image may be encoded as a plurality of tiles representing the 3D image. Tiles associated with the at least one preferred view viewpoint may be encoded using the second QoS parameter (s). The remaining tiles may be encoded using the first QoS parameter (s).

다른 대안적 구현(및/또는 추가 구현)에서, 상기 인코더는 3D 영상 프레임의 나머지의 2D 표현을 생성하는데 사용된 것과 다른 투영 기술 또는 알고리즘을 사용하여 상기 적어도 하나의 선호 뷰 시점과 연관된 타일을 투영할 수 있다. 일부 투영에는 프레임의 특정 영역에 왜곡이 생길 수 있다. 따라서, 구면 프레임과 다른 방식으로 타일을 투영하는 것은 최종 이미지의 품질을 향상시킬 수 있고 및/또는 보다 효율적으로 픽셀을 사용할 수 있다(예를 들어, 컴퓨터 계산을 줄이거나 사용자 눈에 적은 부담을 줌). 하나의 예시적 구현에서, 구면 이미지는 투영 알고리즘에 기초하여 최소로 왜곡된 위치로 타일을 향하게 하기 위해 타일을 순서대로 투영하기 전에 회전될 수 있다. 다른 예시적 구현에서, 타일은 타일의 위치에 기초한 투영 알고리즘을 사용할 수 있다(및/또는 수정한다). 예를 들어, 구면 영상 프레임을 2D 표현으로 투영하는 것은 등각 투영을 사용할 수 있는 반면, 구면 영상 프레임을 타일로 선택될 부분을 포함하는 표현으로 투영하는 것은 큐빅 투영을 사용할 수 있다.In another alternative implementation (and / or further implementation), the encoder projects a tile associated with the at least one preferred view viewpoint using a projection technique or algorithm other than that used to generate the 2D representation of the rest of the 3D image frame. can do. Some projections may introduce distortion in certain areas of the frame. Thus, projecting tiles differently from spherical frames can improve the quality of the final image and / or use pixels more efficiently (e.g., reduce computer computation or place less strain on the user's eyes). ). In one example implementation, the spherical image can be rotated before projecting the tiles in order to direct the tiles to the least distorted position based on the projection algorithm. In another example implementation, a tile may use (and / or modify) a projection algorithm based on the tile's position. For example, projecting a spherical image frame into a 2D representation may use isometric projection, while projecting a spherical image frame into a representation comprising a portion to be selected as a tile may use cubic projection.

도 3은 3D 영상을 스트리밍하는 방법을 도시한다. 도 3은 스트리밍 3D 영상이 라이브(live) 스트리밍 이벤트 동안 요구에 따라 인코딩되는 시나리오를 기술한다. 도 3에 도시된 바와 같이, 단계(S305)에서 3D영상을 스트리밍 하기 위한 요청이 수신된다. 예를 들어, 디코더(예를들어, 미디어 애플리케이션과의 사용자 상호 작용을 통해)를 포함하는 장치에 의해 스트림 가능한 3D 영상, 3D 영상 일부 또는 타일의 일부가 요청될 수 있다. 상기 요청은 구면 영상 위의 뷰어의 방향, 위치, 포인트 또는 결상점(focal point)과 관련된 시점 또는 뷰 시점에 기초한 정보를 포함할 수 있다. 시점 또는 뷰 시점에 기초한 정보는 현재의 방향 또는 디폴트(예를 들어, 초기화) 방향에 기초할 수 있다. 디폴트 방향은 예를 들어 3D 영상에 대한 디텍터스 컷일 수 있다.3 illustrates a method of streaming 3D video. 3 describes a scenario in which streaming 3D video is encoded on demand during a live streaming event. As shown in FIG. 3, in step S305, a request for streaming a 3D image is received. For example, a streamable 3D image, part of 3D image, or part of a tile may be requested by a device that includes a decoder (eg, through user interaction with a media application). The request may include information based on a viewpoint or view viewpoint associated with the viewer's direction, position, point or focal point on the spherical image. Information based on the viewpoint or view viewpoint may be based on the current direction or the default (eg, initialization) direction. The default direction may be, for example, a detector cut for the 3D image.

단계(S310)에서, 적어도 하나의 선호 뷰 시점이 결정된다. 예를 들어, 데이터 저장장치(예를 들어, 뷰 시점 데이터 저장장치(815))는 뷰 시점과 관련된 정보에 기초하여 질의되거나 필터링될 수 있다. 상기 데이터 저장장치는 뷰 시점의 구면 영상 상의 위도 및 경도 위치를 기반으로 질의되거나 필터링될 수 있다. 예시적인 구현에서 적어도 하나의 선호 뷰 시점은 뷰 시점 이력을 기초할 수 있다. 따라서, 상기 데이터 저장장치는 뷰 시점 내역을 포함하는 데이터 테이블이 포함할 수 있다. 선호도는 요청된 뷰 시점의 횟수로 나타낼 수 있다. 따라서, 상기 질의 또는 필터는 임계값 카운터 값 이하로 결과를 필터링하는 것을 포함할 수 있다. 즉, 이력 뷰 시점을 포함하는 데이터 테이블의 질의를 위해 설정된 파라미터는 질의 결과가 카운터의 임계값 이상이어야 하는 카운터 또는 순위에 대한 값을 포함할 수 있다. 상기 이력 뷰 시점을 포함하는 데이터 테이블의 질의 결과는 적어도 하나의 선호 뷰 시점으로서 설정될 수 있다.In step S310, at least one preferred view viewpoint is determined. For example, data storage (eg, view viewpoint data storage 815) may be queried or filtered based on information associated with the view viewpoint. The data storage device may be queried or filtered based on the latitude and longitude positions on the spherical image of the view point of view. In an example implementation at least one preferred view viewpoint may be based on the view viewpoint history. Therefore, the data storage device may include a data table including view viewpoint details. The preference may be represented by the number of requested view viewpoints. Thus, the query or filter may include filtering the results below a threshold counter value. That is, the parameter set for the query of the data table including the history view viewpoint may include a value for the counter or rank that the query result should be equal to or greater than the threshold of the counter. The query result of the data table including the history view viewpoint may be set as at least one preferred view viewpoint.

또한, 디폴트의 선호 뷰 시점(또는 뷰 시점들)은 3D 영상과 연관될 수 있다. 상기 디폴트 선호 뷰 시점은 디렉터스 컷, 관심 지점(예를 들어, 수평선, 이동 객체, 우선 순위 객체) 및/또는 유사물일 수 있다. 예를 들어, 게임의 목적은 객체 (예를 들어, 건물 또는 차량)를 파괴하는 것일 수 있다. 이 객체는 우선 순위 객체로 인식(labled)될 수 있다. 우선 순위 객체를 포함하는 뷰 시점은 선호 뷰 시점으로 표시될 수 있다. 상기 디폴트 선호 뷰 시점은 이력 뷰 시점 또는 이력 뷰 시점의 대안에 부가적으로 포함될 수 있다. 디폴트 방향은, 예를 들어, 자동화된 컴퓨터 비전 알고리즘에 기초하여, 예를들어, 선호 뷰 시점의 초기 세트(예를 들어, 영상이 처음 업로드될 때 이력 데이터의 부족을 위한)일 수 있다. 비전 알고리즘은 다른 이력 영상의 선호 뷰에 존재했던 관심사 및/또는 특징이 무엇인지 추론하기 위하여 움직임 또는 복잡한 세부사항(detail)을 갖는 영상의 선호 뷰 시점 부분 또는 스테레오내의 인근 객체를 결정할 수 있다. In addition, the default preferred view viewpoint (or view viewpoints) may be associated with the 3D image. The default preference view viewpoint may be a director cut, a point of interest (eg, a horizontal line, a moving object, a priority object), and / or the like. For example, the purpose of the game may be to destroy an object (eg, a building or a vehicle). This object may be labled as a priority object. The view viewpoint including the priority object may be displayed as the preferred view viewpoint. The default preference view viewpoint may additionally be included in the history view viewpoint or an alternative to the history view viewpoint. The default direction may be, for example, an initial set of preferred view viewpoints (eg, for lack of historical data when the image is first uploaded) based on an automated computer vision algorithm. The vision algorithm may determine a preferred view viewpoint portion of the image with motion or complex details or a nearby object in stereo to infer what interests and / or features were present in the preferred view of the other historical image.

적어도 하나의 선호 뷰 시점을 결정할 때 다른 인자들이 사용될 수 있다. 예를 들어, 상기 적어도 하나의 선호 뷰 시점은 현재 뷰 시점의 범위 내(예를 들어, 근접한)에 있는 이력 뷰 시점일 수 있다. 예를 들어, 적어도 하나의 선호 뷰 시점은 현재 사용자가 속하는 현재 사용자 또는 현재 사용자가 속하는 그룹 (유형 또는 카테고리)의 이력 뷰 시점의 범위(예를 들어, 근접한)내에 있는 이력 뷰 시점일 수 있다. 즉, 적어도 하나의 선호 뷰 시점은 저장된 이력 뷰 시점에 거리상 가까운 및/또는 시간상으로 가까운 뷰 시점들(또는 타일들)을 포함할 수 있다. 디폴트 선호 뷰 시점(들)은 이력 뷰 시점을 포함하는 데이터 저장장치(815)에 저장되거나 도시되지 않은 별도의(예를 들어, 추가의) 데이터 저장장치에 저장될 수 있다.Other factors may be used when determining at least one preferred view viewpoint. For example, the at least one preferred view viewpoint may be a historical view viewpoint within (eg, close to) a range of the current view viewpoint. For example, the at least one preference view viewpoint may be a history view viewpoint that is within the range (eg, proximate) of the history view viewpoint of the current user to which the current user belongs or the group (type or category) to which the current user belongs. That is, the at least one preferred view viewpoint may include view viewpoints (or tiles) that are close in distance and / or close in time to the stored historical view viewpoint. The default preferred view viewpoint (s) may be stored in the data storage 815 including the historical view viewpoint or in a separate (eg, additional) data storage not shown.

단계(S315)에서, 3D 영상은 적어도 하나의 선호 뷰 시점에 기초하여 적어도 하나의 인코딩 파라미터로 인코딩된다. 예를 들어, 상기 3D 영상(또는 그 일부)은 적어도 하나의 선호 뷰 시점을 포함하는 부분들이 3D 영상의 나머지 부분과 다르게 인코딩되도록 인코딩될 수 있다. 이와 같이, 적어도 하나의 선호 뷰 시점을 포함하는 부분들은 3D 영상의 나머지 부분보다 더 높은 QoS로 인코딩될 수 있다. 결과적으로, HMD 상에 렌더링될 때, 적어도 하나의 선호 뷰 시점을 포함하는 부분들은 3D 영상의 나머지 부분보다 더 높은 해상도를 가질 수 있다.In step S315, the 3D image is encoded with at least one encoding parameter based on at least one preferred view viewpoint. For example, the 3D image (or part thereof) may be encoded such that portions including at least one preferred view viewpoint are encoded differently from the rest of the 3D image. As such, the portions including at least one preferred view viewpoint may be encoded with higher QoS than the rest of the 3D image. As a result, when rendered on the HMD, the portions including at least one preferred view viewpoint may have a higher resolution than the rest of the 3D image.

단계(S320)에서, 인코딩된 3D 영상은 스트리밍된다. 예를 들어, 타일들은 전송을 위해 패킷에 포함될 수 있다. 상기 패킷은 압축 영상 비트(10A)를 포함할 수 있다. 상기 패킷은 구면 영상 프레임 및 인코딩된 타일(또는 복수의 타일)의 인코딩된 2D 표현을 포함할 수 있다. 상기 패킷은 전송을 위해 헤더를 포함할 수 있다. 상기 헤더는 다른 것들 중에서, 인코더에 의한 인트라(intra)-프레임 코딩시 사용되는 모드 또는 기법을 나타내는 정보를 포함할 수 있다. 상기 헤더는 구면 영상 프레임의 프레임을 2D 직사각형 표현으로 변환할 때 사용된 파라미터들을 나타내는 정보를 포함할 수 있다. 상기 헤더는 상기 인코딩된 2D 직사각형 표현 및 상기 인코딩된 타일의 QoS를 달성하는데 사용된 파라미터들을 나타내는 정보를 포함할 수 있다. 전술한 바와 같이, 적어도 하나의 선호 뷰 시점과 연관된 타일들의 QoS는 적어도 하나의 선호 뷰 시점과 관련되지 않은 타일들과는 상이(예를들어, 더 높을)할 수 있다.In step S320, the encoded 3D video is streamed. For example, tiles can be included in a packet for transmission. The packet may include a compressed video bit 10A. The packet may comprise a spherical image frame and an encoded 2D representation of an encoded tile (or a plurality of tiles). The packet may include a header for transmission. The header may include, among other things, information indicating the mode or technique used in intra-frame coding by the encoder. The header may include information indicating parameters used when converting a frame of a spherical image frame into a 2D rectangular representation. The header may include information representing the encoded 2D rectangular representation and parameters used to achieve QoS of the encoded tile. As described above, the QoS of tiles associated with at least one preferred view viewpoint may be different (eg, higher) than tiles not associated with at least one preferred view viewpoint.

3D 영상 스트리밍은 우선 순위 단계들을 사용하여 구현될 수 있다. 예를 들어, 제1우선 순위 단계에서 낮은(또는 최소 표준) QoS 인코딩된 영상 데이터가 스트리밍될 수 있다. 이는 HMD의 사용자가 가상 현실 체험을 시작할 수 있게 한다. 이어서, 보다 높은 QoS영상이 HMD로 스트리밍되어 이전의 스트리밍된 로우(또는 최소 표준) QoS 인코딩된 영상 데이터를 대체할 수 있다(예를 들어, 버퍼 (830)에 저장된 데이터). 일 예로, 제2단계에서, 현재의 뷰 시점에 기초하여 보다 고품질의 영상 또는 이미지 데이터가 스트리밍될 수 있다. 후속 단계에서, 보다 높은 QoS 영상 또는 이미지 데이터는 하나 이상의 선호 뷰 시점에 기초하여 스트리밍될 수 있다. 이것은 HMD 버퍼가 실질적으로 높은 QoS 영상 또는 이미지 데이터만을 포함할 때까지 계속 될 수 있다. 게다가, 이러한 단계적 스트리밍은 점진적으로 높은 QoS 영상 또는 이미지 데이터로 계속하여 순환시킬 수 있다. 즉, 첫 번째 반복 후 HMD는 제1QoS에서 인코딩된 영상 또는 이미지 데이터를 포함하고, 두 번째 반복 후 HMD는 제2QoS에서 인코딩된 영상 또는 이미지 데이터를 포함하며, 세 번째 반복 후 HMD는 제3QoS에서 인코딩된 영상 또는 이미지 데이터를 포함한다. 예시적 구현에서, 상기 제2QoS는 제1QoS보다 높고, 상기 제3QoS는 제2QoS보다 높다.3D video streaming can be implemented using priority steps. For example, low (or minimum standard) QoS encoded video data may be streamed in the first priority step. This allows the user of the HMD to start a virtual reality experience. Higher QoS video can then be streamed to the HMD to replace the previously streamed low (or minimum standard) QoS encoded video data (eg, data stored in buffer 830). For example, in the second step, higher quality image or image data may be streamed based on the current view viewpoint. In subsequent steps, higher QoS image or image data may be streamed based on one or more preferred view viewpoints. This may continue until the HMD buffer contains only substantially high QoS video or image data. In addition, this staged streaming can continue to cycle with progressively higher QoS video or image data. That is, after the first iteration, the HMD includes video or image data encoded in the first QoS, after the second iteration, the HMD includes video or image data encoded in the second QoS, and after the third iteration, the HMD is encoded in the third QoS. Included image or image data. In an exemplary implementation, the second QoS is higher than the first QoS and the third QoS is higher than the second QoS.

인코더(625)는 구면 영상을 스트리밍에 이용할 수 있게 하는 설정 절차의 일부로서 오프-라인으로 동작할 수 있다. 복수의 타일 각각은 뷰 프레임 저장 장치 (795)에 저장될 수 있다. 복수의 타일 각각은 다수의 타일 각각이 프레임(예를들어, 시간 의존성)에 대한 참조(예를 들어, 시간 의존성) 및 시야(예를들어, 뷰 의존성)와 함께 저장될 수 있도록 색인된다. 따라서, 복수의 타일 각각은 시간 및 뷰, 시점 또는 뷰 시점에 의존하고 시간 및 뷰 의존성에 기초하여 불러올 수 있다.The encoder 625 may operate off-line as part of the setup procedure to make the spherical image available for streaming. Each of the plurality of tiles may be stored in the view frame storage device 795. Each of the plurality of tiles is indexed such that each of the plurality of tiles can be stored with a reference (eg, time dependent) to a frame (eg, time dependent) and a field of view (eg, view dependent). Thus, each of the plurality of tiles depends on time and view, view or view viewpoint and can be called up based on time and view dependencies.

이와 같이, 예시적인 구현에서, 상기 인코더(625)는 프레임이 선택되어 상기 프레임의 일부분이 뷰 시점에 기초하여 타일로서 선택되는 루프를 실행하도록 구성될 수 있다. 그런 다음 타일이 인코딩되어 저장된다. 상기 루프는 계속해서 복수의 뷰 시점을 순환한다. 원하는 수의 뷰 시점, 예를 들어, 구면 이미지의 수직으로 5도마다 및 수평으로 5도마다, 타일로서 저장될 때 새로운 프레임이 선택되며, 상기 프로세스는 구면 영상의 모드 프레임이 원하는 수의 타일을 가질 때까지 반복된다. 예시적 구현에서, 적어도 하나의 선호 뷰 시점과 연관된 타일은 적어도 하나의 선호 뷰 시점과 연관된 타일이 아닌 타일보다 높은 QoS로 인코딩될 수 있다. 그러나, 이는 타일을 인코딩하고 저장하는 하나의 예시적 구현에 불과하다.As such, in an example implementation, the encoder 625 may be configured to execute a loop in which a frame is selected such that a portion of the frame is selected as a tile based on the view point of view. The tile is then encoded and stored. The loop continues to cycle through the plurality of view viewpoints. When a desired number of view points, for example, every 5 degrees vertically and every 5 degrees horizontally of the spherical image, are stored as tiles, a new frame is selected, and the process requires that the mode frames of the spherical image select the desired number of tiles. Repeat until you have it. In an example implementation, a tile associated with at least one preferred view viewpoint may be encoded with a higher QoS than a tile that is not a tile associated with at least one preferred view viewpoint. However, this is only one example implementation of encoding and storing tiles.

도 4는 인코딩된 3D 영상을 저장하는 방법을 나타낸다. 도 4는 스트리밍 3D 영상이 차후의 스트리밍을 위해 미리 인코딩되어 저장되는 시나리오를 기술한다. 도 4에 도시된 바와같이, 단계(S405)에서, 3D영상을 위한 적어도 하나의 선호 뷰 시점이 결정된다. 예를 들어, 데이터 저장장치(예를 들어, 뷰 시점 데이터 저장장치(815))는 뷰 시점과 관련된 정보에 기초하여 질의되거나 필터링될 수 있다. 데이터 저장장치는 뷰 시점의 구면 영상 상의 위도 및 경도 위치에 기초하여 질의되거나 필터링될 수 있다. 예시적인 구현에서 상기 적어도 하나의 선호 뷰 시점은 이력 뷰 시점에 기초할 수 있다. 이와 같이, 데이터 테이블은 이력 뷰 시점들을 포함할 수 있다. 선호도는 얼마나 자주 뷰 시점이 요청되었는지를 나타낼 수 있다. 따라서, 상기 질의 또는 필터는 임계값 카운터 값 이하로 결과를 필터링하는 것을 포함할 수 있다. 즉, 이력 뷰 시점을 포함하는 데이터 테이블의 질의를 위해 설정된 파라미터들은 질의 결과가 카운터의 임계값 이상이어야 하는 카운터 값을 포함할 수 있다. 상기 이력 뷰 시점을 포함하는 데이터 테이블의 질의 결과는 적어도 하나의 선호 뷰 시점으로서 설정될 수 있다. 4 shows a method of storing an encoded 3D image. 4 illustrates a scenario in which streaming 3D video is pre-encoded and stored for later streaming. As shown in FIG. 4, at step S405, at least one preferred view viewpoint for the 3D image is determined. For example, data storage (eg, view viewpoint data storage 815) may be queried or filtered based on information associated with the view viewpoint. The data storage device may be queried or filtered based on the latitude and longitude locations on the spherical image at the view point of view. In at least one example implementation, the at least one preferred view viewpoint may be based on a history view viewpoint. As such, the data table may include historical view viewpoints. The preference may indicate how often the view point was requested. Thus, the query or filter may include filtering the results below a threshold counter value. That is, the parameters set for the query of the data table including the history view viewpoint may include a counter value for which the query result should be greater than or equal to the threshold of the counter. The query result of the data table including the history view viewpoint may be set as at least one preferred view viewpoint.

또한, 디폴트의 선호 뷰 시점(또는 뷰 시점)은 3D영상과 연관될 수 있다. 디폴트 선호 뷰 시점은 디렉터스 컷, 관심 지점(예를 들어, 수평선, 움직이는 객체, 우선 순위 객체) 및/또는 유사물일 수 있다. Also, the default preferred view viewpoint (or view viewpoint) may be associated with the 3D image. Default preference view viewpoints may be director cuts, points of interest (eg, horizontal lines, moving objects, priority objects), and / or the like.

예를 들어, 게임의 목적은 객체 (예를 들어, 건물 또는 차량)를 파괴하는 것일 수 있다. 이 객체는 우선 순위 객체로 인식(labled)될 수 있다. 우선 순위 객체를 포함하는 뷰 시점은 선호 뷰 시점으로 표시될 수 있다. 디폴트 선호 뷰 시점은 이력 뷰 시점 또는 이력 뷰 시점의 대안에 부가적으로 포함될 수 있다. 적어도 하나의 선호 뷰 시점을 결정할 때 다른 인자들이 사용될 수 있다. 예를 들어, 적어도 하나의 선호 뷰 시점은 현재 뷰 시점의 범위 내(예를 들어, 근접한)에 있는 이력 뷰 시점일 수 있다. 예를 들어, 적어도 하나의 선호 뷰 시점은 현재의 사용자 또는 현재의 사용자가 속하는 그룹(유형 또는 카테고리)의 이력 뷰 시점의 범위(예를 들어, 근접한)내에 있는 이력 뷰 시점일 수 있다. 상기 디폴트 선호 뷰 시점(들)은 이력 뷰 시점을 포함하는 데이터 테이블 또는 별도의(예를 들어, 추가의) 데이터 테이블에 저장될 수 있다.For example, the purpose of the game may be to destroy an object (eg, a building or a vehicle). This object may be labled as a priority object. The view viewpoint including the priority object may be displayed as the preferred view viewpoint. The default preference view viewpoint may additionally be included in the history view viewpoint or an alternative to the history view viewpoint. Other factors may be used when determining at least one preferred view viewpoint. For example, the at least one preferred view viewpoint can be a historical view viewpoint that is within (eg, proximate) the range of the current view viewpoint. For example, the at least one preferred view viewpoint may be a history view viewpoint that is within (eg, close to) a history view viewpoint of the current user or a group (type or category) to which the current user belongs. The default preference view viewpoint (s) may be stored in a data table that includes a historical view viewpoint or in a separate (eg, additional) data table.

단계(S410)에서, 3D 영상은 적어도 하나의 선호 뷰 시점에 기초하여 적어도 하나의 인코딩 파라미터로 인코딩된다. 예를 들어, 3D 영상의 프레임이 선택될 수 있고 상기 프레임의 일부가 뷰 시점에 기초하여 타일로서 선택될 수 있다. 그런 다음 타일이 인코딩된다. 일 실시예에서, 적어도 하나의 선호 뷰 시점과 연관된 타일들은 보다 높은 QoS로 인코딩될 수 있다. 적어도 하나의 선호 뷰 시점과 연관된 타일들은 나머지 3D 영상과 연관된 타일들보다 높은 QoS로 인코딩될 수 있다.In step S410, the 3D image is encoded with at least one encoding parameter based on at least one preferred view viewpoint. For example, a frame of the 3D image may be selected and a portion of the frame may be selected as a tile based on the view viewpoint. The tile is then encoded. In one embodiment, tiles associated with at least one preferred view viewpoint may be encoded with higher QoS. Tiles associated with at least one preferred view viewpoint may be encoded with higher QoS than tiles associated with the remaining 3D image.

대안적인 구현(및/또는 추가 구현)에서, 상기 인코더는 3D영상 프레임의 나머지의 2D 표현을 생성할 때 사용된 것과 다른 투영 기법 또는 알고리즘을 사용하여 적어도 하나의 선호 뷰 시점과 연관된 타일을 투영할 수 있다. 일부 투영은 프레임의 특정 영역에서 왜곡이 생길 수 있다. 따라서, 구면 프레임과 다르게 타일을 투영하는 것은 최종 이미지의 품질을 향상시킬 수 있고 및/또는 픽셀을 보다 효율적으로 사용할 수 있다. 하나의 예시적 구현에서, 구면 이미지는 투영 알고리즘에 기초하여 최소로 왜곡된 위치로 타일을 향하게 하기 위해 타일을 투영하기 전에 회전될 수 있다. 다른 예시적 구현에서, 타일은 타일의 위치에 기초하는 투영 알고리즘을 사용할 수 있다(및/또는 수정한다). 예를 들어, 구면 영상 프레임을 2D 표현으로 투영하는 것은 등각 투영을 사용할 수 있는 반면, 구면 영상 프레임을 타일로 선택될 부분을 포함하는 표현으로 투영하는 것은 큐빅 투영을 사용할 수 있다.In an alternative implementation (and / or further implementation), the encoder may project a tile associated with at least one preferred view point of view using a projection technique or algorithm different from that used when generating the 2D representation of the remainder of the 3D image frame. Can be. Some projections may cause distortion in certain areas of the frame. Thus, projecting tiles differently from spherical frames can improve the quality of the final image and / or use pixels more efficiently. In one example implementation, the spherical image can be rotated before projecting the tile to direct the tile to the least distorted position based on the projection algorithm. In another example implementation, a tile may use (and / or modify) a projection algorithm based on the position of the tile. For example, projecting a spherical image frame into a 2D representation may use isometric projection, while projecting a spherical image frame into a representation comprising a portion to be selected as a tile may use cubic projection.

단계(S415)에서, 상기 인코딩된 3D 영상이 저장된다. 예를 들어, 복수의 타일 각각은 뷰 프레임 저장부(795)에 저장될 수 있다. 3D 영상과 관련된 복수의 타일 각각은 복수의 타일 각각이 프레임(예를 들어, 시간 의존성) 및 뷰(예를 들어, 시간 의존성)에 대한 참조로 저장되도록 되도록 색인될 수 있다. 따라서, 복수의 타일 각각은 시간 및 뷰, 시점 또는 뷰 시점에에 의존하며 시간 및 뷰 의존성에 기초하여 불러올 수 있다.In step S415, the encoded 3D image is stored. For example, each of the plurality of tiles may be stored in the view frame storage 795. Each of the plurality of tiles associated with the 3D image may be indexed such that each of the plurality of tiles is stored as a reference to a frame (eg, time dependent) and a view (eg, time dependent). Thus, each of the plurality of tiles depends on time and view, view or view viewpoint and can be called up based on time and view dependencies.

예시적인 구현들에서, 3D 영상(예를 들어, 관련 타일들)은 다양한 인코딩 파라미터들로 인코딩되고 저장될 수 있다. 따라서, 3D 영상은 상이한 인코딩 상태들로 저장될 수 있다. 상기 상태들은 QoS에 따라 다를 수 있다. 예를 들어, 3D 영상은 각각 동일한 QoS로 인코딩된 복수의 타일로서 저장될 수 있다. 예를 들어, 3D 영상은 상이한 QoS로 각각 인코딩된 복수의 타일로서 저장될 수있다. 예를 들어, 3D 영상은 인코딩된 적어도 하나의 선호 뷰 시점에 기초하여 QoS로 인코딩된 복수의 타일로서 저장될 수 있다.In example implementations, the 3D image (eg, related tiles) can be encoded and stored with various encoding parameters. Thus, the 3D image can be stored in different encoding states. The states may vary depending on QoS. For example, the 3D video may be stored as a plurality of tiles, each encoded with the same QoS. For example, the 3D image may be stored as a plurality of tiles each encoded with different QoS. For example, the 3D image may be stored as a plurality of tiles encoded with QoS based on the encoded at least one preferred view viewpoint.

도 5는 3D 영상을 위한 선호 뷰 시점을 결정하는 방법을 도시한다. 3D 영상의 선호 뷰 시점은 3D 영상의 이력 뷰에 근거한 선호 뷰 시점 추가될 수 있다. 도 6에 도시된 바와 같이, 단계 (S505)에서, 적어도 하나의 디폴트 뷰 시점이 결정된다. 예를 들어, 디폴트 선호 뷰 시점(들)은 데이터 저장장치(예를 들어, 뷰 시점 데이터 저장장치(815))에 포함된 데이터 테이블에 저장될 수 있다. 데이터 저장장치는 3D 영상에 대한 디폴트 표시를 기반으로 질의되거나 필터링될 수 있다. 상기 질의 또는 필터가 결과를 반환하면 상기 3D 영상은 연관된 디폴트 뷰 시점(들)을 갖는다. 그렇지 않으면, 3D 영상은 연관된 디폴트 뷰 시점을 갖지 않는다. 디폴트 선호 뷰 시점은 디렉터스 컷, 관심 지점(예를 들어, 수평선, 움직이는 물체, 우선 순위 객체) 및/또는 유사물일 수 있다. 예를 들어, 게임의 목적은 객체(예를 들어, 건물 또는 차량)를 파괴하는 것일 수 있다. 이 객체는 우선 순위 객체로 인식블 될 수 있다. 우선 순위 객체를 포함하는 뷰 시점은 선호 뷰 시점으로서 표시될 수 있다.5 illustrates a method of determining a preferred view viewpoint for a 3D image. The preferred view viewpoint of the 3D image may be added to the preferred view viewpoint based on the history view of the 3D image. As shown in FIG. 6, at step S505, at least one default view viewpoint is determined. For example, the default preferred view viewpoint (s) may be stored in a data table included in data storage (eg, view viewpoint data storage 815). The data storage device may be queried or filtered based on the default display for the 3D image. If the query or filter returns a result, the 3D image has an associated default view viewpoint (s). Otherwise, the 3D image does not have an associated default view viewpoint. Default preference view viewpoints may be director cuts, points of interest (eg, horizontal lines, moving objects, priority objects), and / or the like. For example, the purpose of the game may be to destroy an object (eg, a building or a vehicle). This object can be recognized as a priority object. The view viewpoint including the priority object may be displayed as the preferred view viewpoint.

단계(S510)에서, 사용자 특성/선호도/카테고리에 기초한 적어도 하나의 뷰 시점이 결정된다. 예를 들어, HMD의 사용자는 HMD의 이전 사용에 기초한 특성을 가질 수 있다. 상기 특성은 통계적 시청 선호도(예를 들어, 멀리 있는 객체와 반대로 객체들을 가까이에서 보는 선호도)에 기초할 수 있다. 예를 들어, HMD의 사용자는 HMD와 연관된 사용자 선호도를 저장할 수 있다. 선호도는 일반적인(예 : 움직임에 끌리는) 또는 영상 특정(예를들어, 음악 연주에 대하여 기타 리스트에 초점을 두는 것을 선호)일 수 있다. 예를 들어, HMD 사용자는 그룹 또는 카테고리(예를 들어, 15세에서 22세 사이의 남성)에 속할 수 있다. 예를 들어, 상기 사용자 특성/선호도/카테고리는 데이터 저장장치에 포함된 데이터 테이블에 저장될 수 있다(예를 들어, 뷰 시점 데이터 저장장치 815). 데이터 저장장치는 3D 영상를 위한 디폴트 표시에 기초하여 질의되거나 필터링될 수 있다. 상기 질의 또는 필터가 결과를 반환하면 상기 3D 영상은 사용자에 대한 관련 특성/선호도/카테고리에 기초한 적어도 하나의 연관된 선호 뷰 시점(들)을 갖는다 그렇지 않으면, 3D 영상은 사용자에 기초한 연관된 뷰 시점을 갖지 않는다.In step S510, at least one view viewpoint is determined based on user characteristics / preferences / categories. For example, a user of an HMD may have characteristics based on previous use of the HMD. The characteristic may be based on statistical viewing preferences (eg, preferences for viewing objects up close as opposed to distant objects). For example, a user of the HMD can store user preferences associated with the HMD. The preference may be general (eg, attracted to movement) or image specific (eg, preferring to focus on a guitar list for music performance). For example, an HMD user can belong to a group or category (eg, males between 15 and 22 years old). For example, the user characteristic / preference / category may be stored in a data table included in the data storage device (eg, view viewpoint data storage device 815). The data storage device may be queried or filtered based on the default display for the 3D image. If the query or filter returns a result, the 3D image has at least one associated preferred view viewpoint (s) based on relevant characteristics / preferences / categories for the user; otherwise, the 3D image does not have an associated view viewpoint based on the user. Do not.

단계(S515)에서, 관심 영역에 근거한 적어도 하나의 뷰 시점이 결정된다. 예를 들어, 관심 영역은 현재의 뷰 시점일 수 있다. 예를 들어, 적어도 하나의 선호 뷰 시점은 현재의 뷰 시점의 범위(예를 들어, 근접한) 내에 있는 이력 뷰 시점 일 수 있다. 예를 들어, 적어도 하나의 선호 뷰 시점은 현재의 사용자 또는 현재의 사용자가 속하는 그룹(유형 또는 카테고리)의 이력 뷰 시점의 범위 (예를 들어, 근접한) 내에 있는 이력 뷰 시점일 수 있다.In step S515, at least one view viewpoint based on the region of interest is determined. For example, the region of interest may be a current view viewpoint. For example, the at least one preferred view viewpoint may be a historical view viewpoint within a range (eg, proximate) of the current view viewpoint. For example, the at least one preferred view viewpoint may be a history view viewpoint that is within (eg, close to) a history view viewpoint of the current user or a group (type or category) to which the current user belongs.

단계(S520)에서, 적어도 하나의 시스템 특성에 기초한 적어도 하나의 뷰 시점이 결정된다. 예를 들어, HMD는 사용자 경험을 향상시킬 수 있는 기능을 가질 수 있다. 하나의 기능은 향상된 오디오일 수 있다. 따라서, 가상 현실 환경에서, 사용자는 특정 사운드(예를 들어, 게임 사용자는 폭발에 끌릴 수 있음)에 이끌릴 수 있다. 선호 뷰 시점은 이들 가청 큐를 포함하는 뷰 시점에 기초할 수 있다. 단계(S525)에서, 전술한 뷰 시점 결정들 및/또는 그것들의 조합/서브 조합들 각각에 기초한 3D 영상에 대한 적어도 하나의 선호 뷰 시점이 결정된다. 예를 들어, 적어도 하나의 선호 뷰 시점은 전술한 질의의 결과를 병합 또는 결합함으로써 생성될 수 있다. In step S520, at least one view viewpoint based on at least one system characteristic is determined. For example, the HMD may have a function to enhance the user experience. One feature may be enhanced audio. Thus, in a virtual reality environment, a user may be attracted to certain sounds (eg, a game user may be attracted to an explosion). The preferred view viewpoint can be based on the view viewpoint containing these audible queues. In step S525, at least one preferred view viewpoint for the 3D image based on each of the above-described view viewpoint determinations and / or combination / sub combinations thereof is determined. For example, the at least one preferred view viewpoint can be generated by merging or combining the results of the query described above.

도 6A의 예에서, 영상 인코더 시스템(600)은 적어도 하나의 컴퓨팅 장치일 수 있거나 포함할 수 있고, 본 명세서에서 설명된 방법들을 수행하도록 구성된 임의의 컴퓨팅 장치를 가상으로 나타낼 수 있다. 이와 같이, 영상 인코더 시스템 (600)은 본 명세서에 설명된 기술 또는 이의 상이한 버전 또는 미래의 버전을 구현하기 위해 이용될 수 있는 다양한 구성 요소를 포함할 수 있다. 예로서, 영상 인코더 시스템(600)은 적어도 하나의 프로세서(605)뿐만 아니라 적어도 하나의 메모리(610)(예를 들어, 비 일시적인 컴퓨터 판독 가능 저장 매체)를 포함하는 것으로 도시되어있다.In the example of FIG. 6A, image encoder system 600 may be or include at least one computing device and may virtually represent any computing device configured to perform the methods described herein. As such, image encoder system 600 may include various components that may be used to implement the techniques described herein, or different or future versions thereof. By way of example, image encoder system 600 is shown to include at least one processor 605 as well as at least one memory 610 (eg, non-transitory computer readable storage medium).

도 6A는 적어도 하나의 예시적인 실시예에 따른 영상 인코더 시스템을 도시한다. 도 6A에 도시된 바와 같이, 적어도 하나의 프로세서(605), 적어도 하나의 메모리(610), 컨트롤러(620) 및 영상 인코더(625)를 포함한다. 상기 적어도 하나의 프로세서(605), 적어도 하나의 메모리(610), 컨트롤러(620) 및 영상 인코더(625)는 버스(615)를 통해 통신 가능하게 결합 된다.6A illustrates an image encoder system according to at least one example embodiment. As shown in FIG. 6A, at least one processor 605, at least one memory 610, a controller 620, and an image encoder 625 are included. The at least one processor 605, at least one memory 610, the controller 620, and the image encoder 625 are communicatively coupled via the bus 615.

적어도 하나의 프로세서(605)는 적어도 하나의 메모리(610) 상에 저장된 명령들을 실행하여 본 명세서에서 기술된 다양한 특징 및 기능, 또는 부가적인 또는 대안적인 특징 및 기능을 구현하도록 이용될 수 있다. 상기 적어도 하나의 프로세서(605) 및 적어도 하나의 메모리(610)는 다양한 다른 목적을 위해 이용될 수 있다. 특히, 적어도 하나의 메모리(610)는 본 명세서에 설명된 모듈들 중 임의의 하나를 구현하는데 사용될 수 있는 다양한 유형의 메모리 및 관련 하드웨어 및 소프트웨어의 예를 나타낼 수 있다.At least one processor 605 may be used to execute instructions stored on at least one memory 610 to implement various features and functions described herein, or additional or alternative features and functions. The at least one processor 605 and at least one memory 610 may be used for a variety of other purposes. In particular, at least one memory 610 may represent an example of various types of memory and associated hardware and software that may be used to implement any one of the modules described herein.

적어도 하나의 메모리(610)는 영상 인코더 시스템(600)과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수 있다. 예를 들어, 적어도 하나의 메모리(610)는 구면 영상을 인코딩하는 것과 관련된 코덱을 저장하도록 구성될 수 있다. 예를 들어, 적어도 하나의 메모리는 구면 영상의 프레임의 일부분을 구면 영상의 인코딩과는 별도로 인코딩될 타일로서 선택하는 것과 관련된 코드를 저장하도록 구성될 수 있다. 적어도 하나의 메모리(610)는 공유 자원 일 수 있다. 이하에서보다 상세히 설명되는 바와 같이, 타일은 구면 뷰어(예를 들어, HMD)의 재생 동안 뷰어의 뷰 시점에 기초하여 선택된 다수의 픽셀일 수 있다. 복수의 픽셀은 사용자가 볼 수 있는 구면 이미지의 일부를 포함할 수 있는 블록, 복수의 블록 또는 매크로 블록일 수 있다. 예를 들어, 영상 인코더 시스템(600)은 보다 큰 시스템(예를 들어, 서버, 퍼스널 컴퓨터, 이동 장치 등)의 요소일 수 있다. 따라서, 적어도 하나의 메모리(610)는 더 큰 시스템 내에 다른 요소들(예를 들어, 이미지 / 영상 서빙, 웹 브라우징 또는 유/무선 통신)과 관련된 데이터 및/또는 정보를 저장하도록 구성 될 수 있다.At least one memory 610 may be configured to store data and / or information associated with the image encoder system 600. For example, at least one memory 610 may be configured to store a codec associated with encoding spherical images. For example, the at least one memory may be configured to store code associated with selecting a portion of a frame of the spherical image as a tile to be encoded separately from the encoding of the spherical image. At least one memory 610 may be a shared resource. As described in more detail below, the tile may be a plurality of pixels selected based on the viewer's viewing point of view during playback of a spherical viewer (eg, an HMD). The plurality of pixels may be a block, a plurality of blocks, or a macro block that may include a portion of a spherical image visible to the user. For example, video encoder system 600 may be an element of a larger system (eg, server, personal computer, mobile device, etc.). Thus, at least one memory 610 may be configured to store data and / or information related to other elements (eg, image / video serving, web browsing or wired / wireless communication) within a larger system.

컨트롤러(620)는 다양한 제어 신호를 생성하고 영상 인코더 시스템(600)의 다양한 블록으로 제어 신호를 전달하도록 구성될 수 있다. 컨트롤러(620)는 아래에 기술된 기술을 구현하기 위해 제어 신호를 생성하도록 구성될 수 있다. 컨트롤러(620)는 예시적인 실시예에 따라 이미지, 이미지 시퀀스, 영상 프레임, 영상 시퀀스 등을 인코딩하도록 영상 인코더(625)를 제어하도록 구성될 수 있다. 예를 들어, 컨트롤러(620)는 구면 영상을 인코딩하기 위한 파라미터들에 대응하는 제어 신호들을 생성할 수 있다. 영상 인코더(625) 및 컨트롤러(620)의 기능들 및 동작에 관련된 보다 상세한 설명은 적어도 도 7A, 4A, 5A 및 도 6-9과 관련하여 후술될 것이다. The controller 620 may be configured to generate various control signals and to transmit control signals to various blocks of the image encoder system 600. Controller 620 may be configured to generate control signals to implement the techniques described below. The controller 620 may be configured to control the image encoder 625 to encode an image, an image sequence, an image frame, an image sequence, etc. according to an example embodiment. For example, the controller 620 may generate control signals corresponding to parameters for encoding the spherical image. More details related to the functions and operation of the image encoder 625 and the controller 620 will be described below with reference to at least FIGS. 7A, 4A, 5A and 6-9.

영상 인코더(625)는 영상 스트림 입력(5)을 수신하여 압축된(예를 들어, 인코딩된) 영상 비트(10)를 출력하도록 구성될 수 있다. 영상 인코더(625)는 영상 스트림 입력(5)을 개별 영상 프레임으로 변환할 수 있다. 영상 스트림 입력(5)은 또한 이미지일 수 있으므로, 압축된(예를 들어, 인코딩된) 영상 비트(10)또한 압축된 이미지 비트일 수 있다. 영상 인코더(625)는 각각의 개별 영상 프레임 (또는 이미지)을 블록들의 행렬(이하, 블록이라 칭함)로 추가로 변환할 수 있다. 예를 들어, 영상 프레임(또는 이미지)은 각각이 다수의 픽셀을 갖는 블록의 16x16, 16x8, 8x8, 8x4, 4x4, 4x2, 2x2 또는 그와 유사한 행렬로 변환될 수 있다. 이들 예시 행렬들이 열거되었지만, 예시적인 실시예들은 이에 제한되지 않는다.The video encoder 625 may be configured to receive the video stream input 5 and output the compressed (eg, encoded) video bits 10. The video encoder 625 may convert the video stream input 5 into individual video frames. The video stream input 5 may also be an image, so that the compressed (eg, encoded) video bit 10 may also be a compressed image bit. The image encoder 625 may further convert each individual image frame (or image) into a matrix of blocks (hereinafter referred to as blocks). For example, an image frame (or image) may be converted into a 16x16, 16x8, 8x8, 8x4, 4x4, 4x2, 2x2 or similar matrix of blocks each having multiple pixels. Although these example matrices are listed, the example embodiments are not so limited.

압축 영상 비트(10)는 영상 인코더 시스템(600)의 출력을 나타낼 수 있다. 예를 들어, 압축 영상 비트(10)는 인코딩된 영상 프레임(또는 인코딩된 이미지)을 나타낼 수 있다. 예를 들어, 압축 영상 비트(10)는 수신 장치(미도시)로 전송할 준비가 될 수 있다. 예를 들어, 영상 비트는 수신 장치로의 전송을 위해 시스템 송수신기(도시되지 않음)로 전송될 수 있다.The compressed video bit 10 may represent the output of the video encoder system 600. For example, the compressed image bit 10 may represent an encoded image frame (or encoded image). For example, the compressed image bit 10 may be ready for transmission to a receiving device (not shown). For example, the image bits may be sent to a system transceiver (not shown) for transmission to the receiving device.

적어도 하나의 프로세서(605)는 컨트롤러(620) 및/또는 영상 인코더(625)와 연관된 컴퓨터 명령을 실행하도록 구성될 수 있다. 적어도 하나의 프로세서(605)는 공유 자원일 수 있다. 예를 들어, 영상 인코더 시스템(600)은 보다 큰 시스템(예를 들어, 이동 장치)의 요소일 수 있다. 따라서, 적어도 하나의 프로세서(605)는 큰 시스템 내에서 다른 요소들(예를 들어, 이미지/영상 서빙, 웹 브라우징 또는 유무선 통신)과 연관된 컴퓨터 명령들을 실행하도록 구성될 수 있다.At least one processor 605 may be configured to execute computer instructions associated with controller 620 and / or image encoder 625. At least one processor 605 may be a shared resource. For example, image encoder system 600 may be an element of a larger system (eg, a mobile device). Thus, at least one processor 605 may be configured to execute computer instructions associated with other elements (eg, image / video serving, web browsing or wired or wireless communication) within a large system.

도 6B의 예에서는, 영상 디코더 시스템(650)은 적어도 하나의 컴퓨팅 장치 일 수 있으며, 본 명세서에서 설명된 방법을 수행하도록 구성된 임의의 컴퓨팅 장치를 가상으로 나타낼 수 있다. 이와 같이, 영상 디코더 시스템(650)은 본 명세서에 설명된 기술, 또는 이의 상이한 버전 또는 미래의 버전을 구현하기 위해 이용될 수있는 다양한 컴포넌트를 포함할 수 있다. 예로서, 영상 디코더 시스템(650)은 적어도 하나의 프로세서(655)뿐만 아니라 적어도 하나의 메모리(660)(예를 들어, 컴퓨터 판독 가능 저장 매체)를 포함하는 것으로 도시되어 있다.In the example of FIG. 6B, image decoder system 650 may be at least one computing device, and may virtually represent any computing device configured to perform the methods described herein. As such, image decoder system 650 may include various components that may be used to implement the techniques described herein, or different versions or future versions thereof. By way of example, image decoder system 650 is shown to include at least one processor 655 as well as at least one memory 660 (eg, a computer readable storage medium).

따라서, 적어도 하나의 프로세서(655)는 적어도 하나의 메모리(660) 상에 저장된 명령들을 실행하여 본 명세서에 기술된 다양한 특징 및 기능, 또는 부가적인 또는 대안적인 특징 및 기능을 구현할 수 있다. 적어도 하나의 프로세서(655) 및 적어도 하나의 메모리(660)는 다양한 다른 목적을 위해 이용될 수 있다. 특히, 적어도 하나의 메모리(660)는 본 명세서에 설명된 모듈들 중 임의의 하나를 구현하는데 사용될 수 있는 다양한 유형의 메모리 및 관련 하드웨어 및 소프트웨어의 예를 나타낼 수 있다. 예시적인 실시예들에 따르면, 영상 인코더 시스템(600) 및 영상 디코더 시스템(650)은 동일한 대형 시스템(예를 들어, 퍼스널 컴퓨터, 이동 장치 등)에 포함될 수 있다. 예시적인 실시 예에 따르면, 영상 디코더 시스템(650)은 영상 인코더 시스템(600)과 관련하여 설명된 역 또는 반대 기술을 구현하도록 구성될 수 있다.Thus, at least one processor 655 may execute instructions stored on at least one memory 660 to implement the various features and functions described herein, or additional or alternative features and functions. At least one processor 655 and at least one memory 660 may be used for a variety of other purposes. In particular, at least one memory 660 may represent an example of various types of memory and associated hardware and software that may be used to implement any one of the modules described herein. According to example embodiments, video encoder system 600 and video decoder system 650 may be included in the same large system (eg, personal computer, mobile device, etc.). According to an example embodiment, the video decoder system 650 may be configured to implement the inverse or reverse technique described with respect to the video encoder system 600.

적어도 하나의 메모리(660)는 영상 디코더 시스템(650)과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수 있다. 예를 들어, 적어도 하나의 메모리(610)는 인코딩된 구면 영상 데이터를 디코딩하는 것과 관련된 코덱을 저장하도록 구성될 수 있다. 예를 들어, 적어도 하나의 메모리는 인코딩된 타일 및 별도로 인코딩된 구면 영상 프레임을 디코딩하는 것과 관련된 코드와 디코딩된 구면 영상 프레임의 픽셀을 디코딩된 타일로 대체하기 위한 코드를 저장하도록 구성될 수 있다. 적어도 하나의 메모리(660)는 공유 자원일 수 있다. 예를 들어, 영상 디코더 시스템(650)은 보다 큰 시스템(예를 들어, 퍼스널 컴퓨터, 이동 장치 등)의 요소 일 수 있다. 따라서, 적어도 하나의 메모리(660)는 더 큰 시스템 내에 다른 요소들(예를 들어, 웹 브라우징 또는 무선 통신)과 관련된 데이터 및/또는 정보를 저장하도록 구성될 수 있다. At least one memory 660 may be configured to store data and / or information associated with the image decoder system 650. For example, at least one memory 610 may be configured to store a codec associated with decoding the encoded spherical image data. For example, the at least one memory may be configured to store code associated with decoding the encoded tile and the separately encoded spherical image frame and code for replacing the pixels of the decoded spherical image frame with the decoded tile. At least one memory 660 may be a shared resource. For example, video decoder system 650 may be an element of a larger system (eg, a personal computer, mobile device, etc.). Thus, at least one memory 660 may be configured to store data and / or information related to other elements (eg, web browsing or wireless communication) within a larger system.

컨트롤러(670)는 다양한 제어 신호를 생성하고 영상 디코더 시스템(650)의 다양한 블록으로 제어 신호를 전달하도록 구성될 수 있다. 컨트롤러(670)는 후술하는 영상 디코딩 기술을 구현하기 위해 제어 신호를 생성하도록 구성될 수 있다. 컨트롤러(670)는 예시적인 실시예에 따라 영상 프레임을 디코딩하도록 영상 디코더(675)를 제어하도록 구성될 수 있다. 컨트롤러(670)는 디코딩 영상에 대응하는 제어 신호를 생성하도록 구성될 수 있다. 영상 디코더(675) 및 컨트롤러(670)의 기능 및 동작과 관련된 더 상세한 설명은 이하에서 설명될 것이다.The controller 670 may be configured to generate various control signals and to pass the control signals to various blocks of the image decoder system 650. The controller 670 may be configured to generate a control signal to implement the image decoding technique described below. The controller 670 may be configured to control the image decoder 675 to decode the image frame according to an example embodiment. The controller 670 may be configured to generate a control signal corresponding to the decoded image. Further details related to the function and operation of the image decoder 675 and controller 670 will be described below.

영상 디코더(675)는 압축된(예를 들어, 인코딩된) 영상 비트(10)를 수신하여 영상 스트림(5)을 출력하도록 구성될 수 있다. 영상 디코더(675)는 압축된 영상 비트(10)의 개별 영상 프레임을 영상 스트림(5)으로 변환할 수 있다. 상기 압축된(예를들어, 인코딩된) 영상 비트(10)는 또한 압축된 이미지 비트 일 수 있으므로, 상기 영상 스트림(5) 또한 이미지일 수 있다.The video decoder 675 may be configured to receive the compressed (eg, encoded) video bit 10 and output the video stream 5. The image decoder 675 may convert the individual image frames of the compressed image bits 10 into the image stream 5. The compressed (eg, encoded) image bit 10 may also be a compressed image bit, so that the image stream 5 may also be an image.

적어도 하나의 프로세서(655)는 컨트롤러(670) 및/또는 영상 디코더(675)와 관련된 컴퓨터 명령을 실행하도록 구성될 수 있다. 적어도 하나의 프로세서(655)는 공유 자원 일 수 있다. 예를 들어, 영상 디코더 시스템(650)은 보다 큰 시스템(예를 들어, 퍼스널 컴퓨터, 이동 장치 등)의 요소일 수 있다. 따라서, 적어도 하나의 프로세서(655)는 더 큰 시스템 내의 다른 요소들(예를 들어, 웹 브라우징 또는 무선 통신)과 연관된 컴퓨터 명령들을 실행하도록 구성될 수 있다.At least one processor 655 may be configured to execute computer instructions associated with controller 670 and / or image decoder 675. At least one processor 655 may be a shared resource. For example, video decoder system 650 may be an element of a larger system (eg, a personal computer, mobile device, etc.). Thus, at least one processor 655 may be configured to execute computer instructions associated with other elements (eg, web browsing or wireless communication) within a larger system.

도 7A 및 도 7B는 각각 하나의 예시적인 실시에 따른 도 6A에 도시된 영상 인코더(625) 및 도 6B에 도시된 영상 디코더에 대한 흐름도를 도시한다. 영상 인코더(625)(위에 개시된)는 구면-2D 표현 블록(705), 예측 블록(710), 변환 블록 (715), 양자화 블록(720), 엔트로피 인코딩 블록(725), 역 양자화 블록(730)(740), 역 변환블록(735), 재구성 블록(740), 루프 필터 블록(745), 타일 표현 블록(790) 및 뷰 프레임 저장 장치(795)를 포함한다. 영상 인코더(625)의 다른 구조적 변형은 입력 영상 스트림(5)을 인코딩하는데 사용될 수 있다. 도 7A에 도시된 바와같이, 점선은 몇몇 블록들 사이의 재구성 경로를 나타내고 실선은 몇몇 블록들 사이의 순방향 경로를 나타낸다. 전술한 블록들 각각(예를 들어, 도 6A에 도시된 바와 같이) 영상 인코더 시스템과 관련된 메모리(예를 들어, 적어도 하나의 메모리(610))에 저장된 소프트웨어 코드로서 실행될 수 있으며, 비디오 인코더 시스템과 관련된 적어도 하나의 프로세서(예를 들어, 적어도 하나의 프로세서(605))에 의해 실행될 수 있다. 그러나, 특수 목적 프로세서로서 구현된 영상 인코더와 같은 대안적인 실시 예가 고려될 수 있다. 예를 들어, 전술한 블록들 각각(단독으로 및/또는 조합으로)은 주문형 집적 회로 또는 ASIC일 수 있다. 예를 들어, ASIC은 변환 블록(715) 및/또는 양자화 블록(720)으로서 구성될 수 있다.7A and 7B show flowcharts for the video encoder 625 shown in FIG. 6A and the video decoder shown in FIG. 6B, respectively, according to one exemplary embodiment. The image encoder 625 (disclosed above) is a spherical-2D representation block 705, a prediction block 710, a transform block 715, a quantization block 720, an entropy encoding block 725, an inverse quantization block 730. 740, inverse transform block 735, reconstruction block 740, loop filter block 745, tile representation block 790, and view frame storage 795. Other structural variations of the video encoder 625 may be used to encode the input video stream 5. As shown in FIG. 7A, the dotted line represents the reconstruction path between some blocks and the solid line represents the forward path between some blocks. Each of the aforementioned blocks (e.g., as shown in Figure 6A) may be executed as software code stored in a memory (e.g., at least one memory 610) associated with the image encoder system; It may be executed by at least one associated processor (eg, at least one processor 605). However, alternative embodiments may be contemplated, such as an image encoder implemented as a special purpose processor. For example, each of the aforementioned blocks (alone and / or in combination) may be an application specific integrated circuit or ASIC. For example, the ASIC may be configured as a transform block 715 and / or a quantization block 720.

구면-2D 표현 블록(705)은 구면 프레임 또는 이미지를 구면 프레임 또는 이미지의 2D 표현으로 매핑하도록 구성될 수 있다. 예를 들어, 구를 다른 모양(예를 들어, 정사각형, 직사각형, 원통 및/또는 큐브)의 표면에 투영할 수 있다. 투영은, 예를 들어, 등각 또는 반 이방성일 수 있다.Spherical-2D representation block 705 may be configured to map a spherical frame or image to a 2D representation of a spherical frame or image. For example, the spheres can be projected onto surfaces of different shapes (eg, squares, rectangles, cylinders and / or cubes). The projection can be, for example, conformal or semi anisotropic.

예측 블록(710)은 영상 프레임 일관성(예를 들어, 이전에 인코딩된 픽셀과 비교하여 변경되지 않은 픽셀)을 이용하도록 구성될 수 있다. 예측에는 두 가지 유형이 포함될 수 있다. 예를 들어, 예측은 프레임 내(intra-frame) 예측 및 프레임 간(inter-frame) 예측을 포함할 수 있다. 인트라 프레임 예측은 동일 영상(picture)에 이웃하고 이전에 코딩된 참조 샘플들에 상대적인 영상의 블록에서 픽셀 값들을 예측하는 것에 관한 것이다. 인트라-프레임 예측에서, 샘플은 변환(예를 들어, 엔트로피 인코딩 블록(725)) 및 엔트로피 코딩(예를 들어, 엔트로피 인코딩 블록(725))에 의해 코딩되는 잔류 에러를 줄이기 위해 동일한 프레임 내의 재구성된 픽셀로부터 예측된다. 인터-프레임 예측은 이전에 코딩된 영상의 데이터에 상대적인 영상의 블록에서 픽셀 값을 예측하는 것에 관한 것이다.Prediction block 710 may be configured to use image frame consistency (eg, pixels that have not changed compared to previously encoded pixels). Predictions can include two types. For example, the prediction may include intra-frame prediction and inter-frame prediction. Intra frame prediction relates to predicting pixel values in a block of a picture neighboring the same picture and relative to previously coded reference samples. In intra-frame prediction, samples are reconstructed within the same frame to reduce residual errors that are coded by transforms (e.g., entropy encoding block 725) and entropy coding (e.g., entropy encoding block 725). It is predicted from pixels. Inter-frame prediction relates to predicting pixel values in blocks of an image relative to data of previously coded images.

변환 블록(715)은 공간 도메인으로부터의 픽셀 값을 변환 도메인의 변환 계수로 변환하도록 구성될 수 있다. 변환 계수는 일반적으로 원래 블록과 동일한 크기인 계수의 2차원 행렬에 대응할 수 있다. 즉, 원래 블록에 있는 픽셀만큼 많은 변환 계수가 있을 수 있다. 그러나, 상기 변환으로 인해 변환 계수의 일부는 0과 동일한 값을 가질 수 있다.The transform block 715 can be configured to transform pixel values from the spatial domain into transform coefficients of the transform domain. The transform coefficients may correspond to a two-dimensional matrix of coefficients that are generally the same size as the original block. That is, there may be as many transform coefficients as the pixels in the original block. However, due to the transformation, some of the transformation coefficients may have a value equal to zero.

변환 블록(715)은 잔류(Residual)(예측 블록(710)으로부터)를, 예를 들어, 주파수 도메인의 변환 계수로 변환한다. 일반적으로 변환은 KLT(Karhunen-Loeve Transform), DCT(Discrete Cosine Transform), SVD(Singular Value Decomposition Transform) 및 ADST (Asymmetric Discrete Sine Transform)를 포함한다. The transform block 715 transforms the residual (from the prediction block 710) into, for example, transform coefficients in the frequency domain. Generally, transformations include Karhunen-Loeve Transform (KLT), Discrete Cosine Transform (DCT), Singular Value Decomposition Transform (SVD), and Asymmetric Discrete Sine Transform (ADST).

양자화 블록(720)은 각각의 변환 계수에서 데이터를 감소시키도록 구성될 수 있다. 양자화는 상대적으로 큰 범위 내의 값을 비교적 작은 범위의 값으로 매핑하여 양자화된 변환 계수를 나타내는데 필요한 데이터의 양을 감소시키는 것을 포함할 수 있다. 양자화 블록(720)은 변환 계수를 양자화된 변환 계수 또는 양자화 레벨이라 불리는 이산 양자값으로 변환할 수 있다. 예를 들어, 양자화 블록(720)은 변환 계수와 관련된 데이터에 0을 가산하도록 구성될 수 있다. 예를 들어, 인코딩 표준은 스칼라 양자화 프로세스에서 128개의 양자화 레벨을 정의할 수 있다.Quantization block 720 may be configured to reduce the data in each transform coefficient. Quantization may include mapping values in a relatively large range to values in a relatively small range to reduce the amount of data needed to represent the quantized transform coefficients. Quantization block 720 may transform the transform coefficients into discrete quantum values called quantized transform coefficients or quantization levels. For example, quantization block 720 may be configured to add zero to data associated with the transform coefficients. For example, the encoding standard can define 128 quantization levels in a scalar quantization process.

그런 다음 양자화된 변환 계수는 엔트로피 인코딩 블록(725)에 의해 엔트로피 인코딩된다. 엔트로피-인코딩된 계수는 사용된 예측 유형, 모션 벡터 및 양자화기 값과 같은 블록을 디코딩하는데 필요한 정보와 함께 출력된다. 압축된 영상 비트(10)는 런-렝스 인코딩(run-length encoding : RLE) 및 제로-런(zero-run) 코딩과 같은 다양한 방식을 사용하여 포맷될 수 있다.The quantized transform coefficients are then entropy encoded by entropy encoding block 725. The entropy-encoded coefficients are output along with the information needed to decode the block, such as the prediction type used, motion vector, and quantizer values. The compressed image bit 10 may be formatted using various schemes such as run-length encoding (RLE) and zero-run coding.

도 17A에 도시된 재구성 경로는 압축 영상 비트(10)(또는 압축된 이미지 비트)를 디코딩하기 위해 동일한 기준 프레임을 사용하는 영상 인코더(625) 및 영상 디코더(675)를 모두를 보장하기 위해 존재한다. 재구성 경로는 미분 잔차 (redisual) 블록(미분 잔차)을 생성하기 위하여 역 양자화 블록(730)에서 상기 양자화된 변환 계수를 역 양자화하고 역 변환 블록(735)에서 역 양자화된 변환 계수를 역변환하는 것을 포함하여, 아래에서보다 상세하게 설명되는 디코딩 프로세스 동안 발생하는 기능들과 유사한 기능들을 수행한다. 재구성 블록(740)에서, 상기 예측 블록(710)에서 예측된 예측 블록은 재구성된 블록을 생성하기 위하여 미분 잔차에 가산될 수 있다. 그런 다음 루프 필터(745)는 블로킹 아티팩트(artifacts)와 같은 왜곡을 감소시키기 위하여 상기 재구성된 블록에 적용될 수 있다.The reconstruction path shown in FIG. 17A exists to ensure both image encoder 625 and image decoder 675 using the same reference frame to decode compressed image bit 10 (or compressed image bit). . The reconstruction path includes inverse quantizing the quantized transform coefficients in inverse quantization block 730 and inverse transforming the inverse quantized transform coefficients in inverse transform block 735 to produce a differential residual (differential residual). To perform functions similar to those occurring during the decoding process described in more detail below. In reconstruction block 740, the predictive block predicted in the prediction block 710 may be added to the differential residual to generate the reconstructed block. Loop filter 745 may then be applied to the reconstructed block to reduce distortion, such as blocking artifacts.

타일 표현 블록(790)은 이미지 및/또는 프레임을 복수의 타일로 변환하도록 구성될 수 있다. 타일은 픽셀의 그룹 일수 있다. 타일은 뷰 또는 뷰 시점에 기초하여 선택된 다수의 픽셀일 수 있다. 복수의 픽셀은 사용자가 볼 수 있는(또는 볼 것으로 예상되는) 구면 이미지의 부분을 포함할 수 있는 블록, 복수의 블록 또는 매크로 블록일 수 있다. 타일 처럼 구면 이미지의 부분은 길이와 폭을 가질 수 있다. 구면 이미지의 부분은 2차원 또는 실질적으로 2차원일 수 있다. 타일은 가변 크기 (예를 들어, 타일이 커버하는 구의 얼마나 많은 부분)를 가질 수 있다. 예를 들어, 타일의 크기는, 예를 들어 뷰어의 시야가 얼마나 넓은지, 얼마나 다른 타일에 근접한 지, 및/또는 얼마나 빨리 사용자가 그들의 머리를 돌리고 있는지에 기초하여 인코딩되고 스트리밍 될 수 있다. 예를 들어 뷰어가 계속 주변을 둘러보는 경우 더 크고 품질이 낮은 타일이 선택될 수 있다. 그러나 뷰어가 하나의 시점에 초점을 맞추고 있다면 더 작은 더 자세한 타일이 선택될 수 있다.Tile representation block 790 may be configured to convert an image and / or frame into a plurality of tiles. A tile can be a group of pixels. The tile may be a number of pixels selected based on the view or view point of view. The plurality of pixels may be blocks, plurality of blocks, or macro blocks that may include portions of a spherical image that are visible to (or expected to see) the user. Like tiles, parts of a spherical image can have length and width. Portions of the spherical image can be two-dimensional or substantially two-dimensional. The tiles can have varying sizes (eg, how many parts of the sphere the tiles cover). For example, the size of the tiles may be encoded and streamed based on, for example, how wide the viewer's field of view is, how close to other tiles, and / or how fast the user is turning their head. For example, if the viewer continues to look around, larger, lower quality tiles may be selected. However, if the viewer is focusing on one point of view, a smaller, more detailed tile can be selected.

하나의 구현에서, 타일 표현 블록(790)은 구면-2D 표현 블록(705)으로 하여금 타일을 생성하게 하는 명령을 개시한다. 다른 구현에서, 타일 표현 블록(790)은 타일을 생성한다. 두 구현 중 하나에서 각 타일은 개별적으로 인코딩된다. 또 다른 구현에서, 타일 표현 블록(790)은 뷰 프레임 저장 장치(795)에 명령을 개시하여 뷰 프레임 저장 장치(795)가 인코딩된 이미지 및/또는 영상 프레임을 타일로서 저장하도록 한다. 타일 표현 블록(790)은 뷰 프레임 저장 장치(795)에 명령을 개시하여 뷰 프레임 저장 장치(795)가 타일에 관한 정보 또는 메타 데이터를 갖는 타일을 저장하게 할 수 있다. 예를 들어, 타일에 관한 정보 또는 메타 데이터는 이미지 또는 프레임 내의 타일 위치의 표시, 타일 인코딩(예를 들어, 해상도, 대역폭 및/또는 3D-2D 투영 알고리즘)과 관련된 정보, 하나 이상의 관심 영역 및/또는 기타 등등을 포함할 수 있다.In one implementation, tile representation block 790 initiates an instruction to cause spherical-2D representation block 705 to generate a tile. In another implementation, tile representation block 790 generates a tile. In either implementation, each tile is encoded separately. In another implementation, tile representation block 790 initiates a command to view frame storage 795 such that view frame storage 795 stores the encoded image and / or video frame as a tile. The tile representation block 790 may initiate a command to the view frame storage 795 to cause the view frame storage 795 to store a tile having information or metadata about the tile. For example, information or metadata about a tile may include an indication of tile location within an image or frame, information related to tile encoding (e.g., resolution, bandwidth and / or 3D-2D projection algorithm), one or more regions of interest and / or Or the like.

예시적 구현에 따르면, 인코더(625)는 프레임, 프레임 및/또는 타일의 일부분을 상이한 품질(또는 서비스 품질(QoS))로 각각 여러번 인코딩할 수 있다. 이와 같이, 타일에 관한 전술한 정보 또는 메타 데이터는 프레임, 프레임 및/또는 타일의 일부가 인코딩된 QoS의 표시를 포함할 수 있다.According to an example implementation, encoder 625 may encode a portion of a frame, frame, and / or tile multiple times each with a different quality (or quality of service). As such, the aforementioned information or metadata about a tile may include an indication of QoS in which a frame, frame and / or a portion of the tile is encoded.

QoS는 압축 알고리즘, 해상도, 전송 속도, 및/또는 인코딩 방식에 기초할 수 있다. 따라서, 인코더 (625)는 각각의 프레임, 프레임 및/또는 타일의 부분에 대해 상이한 압축 알고리즘 및/또는 인코딩 방식을 사용할 수 있다. 예를 들어, 인코딩 된 타일은 인코더(625)에 의해 인코딩된(타일과 연관된) 프레임보다 높은 QoS를 가질 수 있다. 상술 한 바와 같이, 인코더(625)는 구면 영상 프레임의 2D 표현을 인코딩하도록 구성될 수 있다. 따라서, 구면 영상 프레임의 2D 표현보다 높은 QoS로 타일(구면 영상 프레임의 일부를 포함하는 가시 시점으로서)이 인코딩 될 수 있다. 상기 QoS는 디코딩될 때 프레임의 해상도에 영향을 줄 수 있습니다. 따라서, 타일(구면 영상 프레임의 일부를 포함하는 가시 시점으로서)은 구면 영상 프레임의 디코딩된 2D 표현과 비교하여 디코딩될 때, 타일이 프레임의 더 높은 해상도를 갖도록 인코딩될 수 있다. 타일 표현 블록(790)은 타일이 인코딩되어야 하는 QoS를 나타낼 수 있다. 타일 표현 블록(790)은 프레임, 프레임 및/또는 타일의 일부가 시드 영역 및/또는 이와 유사하고 관심 영역 내에 있는 관심 영역인지의 여부에 기초하여 QoS를 선택할 수 있다. 관심 영역 및 시드 영역에 대해서는 아래에서 자세히 설명한다.QoS may be based on a compression algorithm, resolution, transmission rate, and / or encoding scheme. Thus, encoder 625 may use a different compression algorithm and / or encoding scheme for each frame, frame and / or portion of a tile. For example, an encoded tile may have a higher QoS than a frame encoded (associated with the tile) by the encoder 625. As described above, encoder 625 may be configured to encode a 2D representation of a spherical image frame. Thus, a tile (as a view point containing part of a spherical image frame) may be encoded with a higher QoS than the 2D representation of the spherical image frame. The QoS can affect the resolution of the frame as it is decoded. Thus, a tile (as a visible point of view that includes a portion of a spherical image frame) may be encoded such that the tile has a higher resolution of the frame when it is decoded compared to the decoded 2D representation of the spherical image frame. Tile representation block 790 may indicate the QoS to which the tile should be encoded. The tile representation block 790 may select QoS based on whether the frame, frames and / or portions of the tiles are seed regions and / or similar and interested regions that are within the region of interest. The region of interest and the seed region are described in detail below.

도 7A와 관련하여 상술한 영상 인코더(625)는 도시된 블록을 포함한다. 그러나, 예시적인 구현들은 이에 제한되지 않는다. 사용된 상이한 영상 인코딩 구성 및/또는 기술에 기초하여 추가 블록이 추가될 수 있다. 게다가, 도 7A와 관련하여 상술한 영상 인코더(625)에 도시된 각각의 블록은 사용된 상이한 영상 인코딩 및 /또는 기술에 기초한 선택적인 블록일 수 있다.The image encoder 625 described above with respect to FIG. 7A includes the block shown. However, example implementations are not so limited. Additional blocks may be added based on the different image encoding schemes and / or techniques used. In addition, each block shown in video encoder 625 described above with respect to FIG. 7A may be an optional block based on the different video encoding and / or technology used.

도 7B는 압축된 영상 비트(10)(또는 압축된 이미지 비트)를 디코딩하도록 구성된 디코더(675)의 개략적인 블록도이다. 이전에 기술한 인코더(625)의 재구성 경로와 유사하게, 디코더 블록(675)은엔트로피 디코딩 블록(750), 역 양자화 블록 (755), 역변환 블록(760), 재구성 블록(765), 루프 필터 블록(770), 예측 블록 (775), 디 블로킹 필터 블록(780) 및 2D 표현-구면 블록(785)에 대한 2D 표현을 포함한다.7B is a schematic block diagram of a decoder 675 configured to decode the compressed image bit 10 (or the compressed image bit). Similar to the reconstruction path of the encoder 625 described previously, the decoder block 675 includes an entropy decoding block 750, an inverse quantization block 755, an inverse transform block 760, a reconstruction block 765, a loop filter block. 770, prediction block 775, deblocking filter block 780, and 2D representation-spherical block 785.

압축 영상 비트(10) 내의 데이터 요소(예를 들어, 컨텍스트 적응 이진 산술 복호화(Context Adaptive Binary Arithmetic Decoding)를 사용하여)는 양자화된 변환 계수의 세트를 생성하기 위해 엔트로피 디코딩 블록(750)에 의해 디코딩될 수 있다. 역 양자화 블록(755)은 양자화된 변환 계수를 역 양자화하고, 역 변환 블록(760)은 역 양자화된 변환 계수를(ADST를 사용하여) 역변환하여 인코더(625)의 재구성 단계에 의해 생성된 것과 동일한 미분 잔차를 생성한다.Data elements in the compressed image bit 10 (e.g., using Context Adaptive Binary Arithmetic Decoding) are decoded by entropy decoding block 750 to produce a set of quantized transform coefficients. Can be. Inverse quantization block 755 inverse quantizes the quantized transform coefficients, and inverse transform block 760 inverse transforms (using ADST) the inverse quantized transform coefficients to the same as produced by the reconstruction step of encoder 625. Create a differential residual.

압축 영상 비트(10)로부터 디코딩된 헤더 정보를 사용하여, 디코더(675)는 인코더(675)에서 생성된 것과 동일한 예측 블록을 생성하기 위해 예측 블록(775)을 사용할 수 있다. 예측 블록은 재구성 블록(7650에 의한 재구성 블록을 생성하기 위하여 미분 잔차에 가산될 수 있다. 루프 필터 블록(770)은 블로킹 아티팩트를 감소시키기 위하여 상기 재구성된 블록에 적용될 수 있다. 디블로킹 필터 블록(780)은 블로킹 왜곡을 감소시키기 위해 재구성된 블록에 적용될 수 있고, 그 결과는 영상 스트림(5)으로서 출력된다.Using the header information decoded from the compressed video bits 10, the decoder 675 may use the prediction block 775 to generate the same prediction block as generated at the encoder 675. The predictive block may be added to the differential residual to produce a reconstruction block by reconstruction block 7750. Loop filter block 770 may be applied to the reconstructed block to reduce blocking artifacts. 780 may be applied to the reconstructed block to reduce blocking distortion, and the result is output as image stream 5.

구면 블록(785)에 대한 2D 표현은 구면 프레임 또는 이미지의 2D 표현을 구면 프레임 또는 이미지에 매핑하도록 구성될 수 있다. 예를 들어, 구면 프레임 또는 이미지의 2D 표현을 구면 프레임 또는 이미지로 매핑하는 것은 인코더(625)에 의해 수행되는 3D-2D 맵핑의 역 일 수 있다.The 2D representation for spherical block 785 may be configured to map the 2D representation of the spherical frame or image to the spherical frame or image. For example, mapping a 2D representation of a spherical frame or image to a spherical frame or image may be the inverse of the 3D-2D mapping performed by encoder 625.

도 7B에 관하여 전술한 영상 디코더(675)는 도시된 블록을 포함한다. 그러나, 예시적인 실시예들은 이에 제한되지 않는다. 사용되는 상이한 영상 인코딩 구성 및/또는 기술에 기초하여 추가 블록이 추가될 수 있다. 게다가, 도 7B와 관련하여 전술한 영상 디코더(675)에 도시된 블록들 각각은, 상이한 영상 인코딩 구성 및/또는 사용된 기술에 기초한 선택적인 블록일 수 있다.The image decoder 675 described above with respect to FIG. 7B includes the block shown. However, exemplary embodiments are not limited thereto. Additional blocks may be added based on the different video encoding schemes and / or techniques used. In addition, each of the blocks shown in video decoder 675 described above with respect to FIG. 7B may be an optional block based on different video encoding configurations and / or techniques used.

인코더(625) 및 디코더(675)는 구면 영상 및/또는 이미지를 인코딩하고 구면 영상 및/또는 이미지를 각각 디코딩하도록 구성될 수 있다. 구면 이미지는 구면으로 조직화된 복수의 픽셀을 포함하는 이미지이다. 즉, 구면 이미지는 모든 방향에서 연속적인 이미지이다. 따라서, 구면 이미지의 뷰어는 임의의 방향(예를 들어, 상향, 하향, 좌, 우 또는 이들의 임의의 조합)으로 위치를 변경하거나 방향을 바꿀 수 있고(예를 들어, 그녀의 머리 또는 눈을 움직여서) 이미지의 일부분을 연속적으로 볼 수 있다.Encoder 625 and decoder 675 may be configured to encode spherical images and / or images and decode spherical images and / or images, respectively. A spherical image is an image including a plurality of pixels organized into a spherical surface. In other words, the spherical image is a continuous image in all directions. Thus, the viewer of the spherical image can reposition or reorient in any direction (e.g., up, down, left, right, or any combination thereof) and (eg, change her head or eyes). By moving) one part of the image can be viewed continuously.

예시적인 구현에서, 인코더(625)에서 및/또는 인코더(625)에 의해 사용된 파라미터는 인코더(405)의 다른 요소에 의해 사용될 수 있다. 예를 들어, 2D 표현을 인코딩하는데 사용된(예를들어, 예측에서 사용된 것처럼) 움직임 벡터가 타일을 인코딩하는데 사용될 수 있다. 또한, 예측 블록(710), 변환 블록(715), 양자화 블록(720), 엔트로피 인코딩 블록(725), 역 양자화 블록(730), 역변환 블록(735), 재구성 블록(740) 및 루프 필터 블록 (745)에서 사용되고 및/또는 결정된 파마미터들은 인코더(625)와 인코더(405) 사이에서 공유될 수 있다.In an example implementation, the parameters used at and / or by the encoder 625 may be used by other elements of the encoder 405. For example, a motion vector used to encode a 2D representation (eg, as used in prediction) can be used to encode a tile. Further, the prediction block 710, the transform block 715, the quantization block 720, the entropy encoding block 725, the inverse quantization block 730, the inverse transform block 735, the reconstruction block 740, and the loop filter block ( The parameters used and / or determined at 745 may be shared between encoder 625 and encoder 405.

구면 영상 프레임 또는 이미지의 부분은 이미지로서 처리될 수 있다. 따라서, 구면 영상 프레임의 부분은 블록들의 CxR 행렬(이하, 블록들로 언급됨)로 변환 (또는 분해) 될 수 있다. 예를 들어, 구면 영상 프레임의 부분은 각각이 다수의 픽셀을 갖는 블록들의 16x16, 16x8, 8x8, 8x4, 4x4, 4x2, 2x2 또는 유사한 매트릭스의 CxR 행렬로 변환 될 수 있다.A spherical image frame or portion of an image can be treated as an image. Thus, the portion of the spherical image frame can be transformed (or decomposed) into a CxR matrix of blocks (hereinafter referred to as blocks). For example, the portion of the spherical image frame may be converted into a CxR matrix of 16x16, 16x8, 8x8, 8x4, 4x4, 4x2, 2x2 or similar matrix of blocks each having multiple pixels.

도 8은 적어도 하나의 예시적인 실시예에 따른 시스템(800)을 도시한다. 도 8에 도시된 바와 같이, 시스템(700)은 컨트롤러(620), 컨트롤러(670), 영상 인코더(625), 뷰 프레임 저장부(795) 및 방향 센서(들)(835)를 포함한다. 상기 컨트롤러(620)는 뷰 위치 제어 모듈(805), 타일 제어 모듈(810) 및 뷰 시점 데이터 저장장치(815)를 더 포함한다. 상기 컨트롤러(670)는 뷰 위치 결정 모듈(820), 타일 요청 모듈(825) 및 버퍼(830)을 더 포함한다. 8 illustrates a system 800 in accordance with at least one example embodiment. As shown in FIG. 8, the system 700 includes a controller 620, a controller 670, an image encoder 625, a view frame store 795, and a direction sensor (s) 835. The controller 620 further includes a view position control module 805, a tile control module 810, and a view viewpoint data storage 815. The controller 670 further includes a view position determination module 820, a tile request module 825, and a buffer 830.

예시적인 구현에 따르면, 방향 센서(835)는 뷰어의 눈(또는 머리)의 방향 (또는 방향의 변화)을 검출하고, 시청 위치 결정 모듈(820)은 검출된 방향에 기초하여 뷰, 시점 또는 뷰 시점을 결정하고, 타일 요청 모듈(825)은 타일 또는 복수의 타일(구면 영상에 추가하여)에 대한 요청의 일부로서 뷰, 시점 또는 뷰 시점을 전달한다. 다른 예시적 구현에 따르면, 방위 센서(835)는 HMD 또는 디스플레이상에 랜더링된 이미지 패닝 방향에 기초하여 방향(또는 방위의 변화)을 검출한다. 예를 들어, HMD의 사용자는 초점 심도를 변경할 수 있다. 즉, HMD 사용자는 방향이 변경되거나 변경되지 않은 채 멀리있는 물체에 가까운 물체로(또는 그 반대로) 초점을 변경할 수 있습니다. 예를 들어, 사용자는 디스플레이상에 랜더링된 구면 영상 또는 이미지의 일부를 선택, 이동, 드래그, 확장하기 위하여 마우스, 트랙 패드 또는 제스처(예를 들어, 터치 감지 디스플레이)를 사용할 수 있다. According to an example implementation, the direction sensor 835 detects the direction (or change of direction) of the viewer's eye (or head), and the viewing position determination module 820 based on the detected direction, view or point of view Determine the viewpoint, and the tile request module 825 delivers the view, viewpoint or view viewpoint as part of a request for a tile or a plurality of tiles (in addition to the spherical image). According to another example implementation, the orientation sensor 835 detects a direction (or change in orientation) based on the HMD or the image panning direction rendered on the display. For example, a user of the HMD can change the depth of focus. This means that HMD users can change their focus to something close to a distant object (or vice versa), with or without a change in orientation. For example, a user may use a mouse, trackpad, or gesture (eg, a touch sensitive display) to select, move, drag, and expand a portion of a spherical image or image rendered on the display.

타일에 대한 요청은 구면 영상의 프레임에 대한 요청과 함께 전달될 수 있다. 타일에 대한 요청은 구면 영상의 프레임에 대한 요청과 별도로 함께 전달될 수 있다. 예를 들어, 타일에 대한 요청은 이전에 요청된 및/또는 질의된 타일을 대체할 필요가 있을 때 변경된 뷰, 시점 또는 뷰 시점에 대응될 수 있다.The request for the tile may be delivered together with the request for the frame of the spherical image. The request for the tile may be delivered together with the request for the frame of the spherical image. For example, a request for a tile may correspond to a changed view, viewpoint or view viewpoint when it is necessary to replace a previously requested and / or queried tile.

뷰 위치 제어 모듈(805)은 타일에 대한 요청을 수신하여 처리한다. 예를 들어, 뷰 위치 제어 모듈(805)은 뷰에 기초하여 프레임 내의 프레임 내의 하나 이상의 타일 또는 복수의 타일의 위치 및 프레임을 결정할 수 있다. 그 다음, 뷰 위치 제어 모듈(805)은 타일 제어 모듈(810)에게 타일 또는 복수의 타일을 선택하도록 지시 할 수 있다. 타일 또는 복수의 타일을 선택하는 것은 파라미터를 영상 인코더 (625)로 전달하는 것을 포함할 수 있다. 파라미터는 구면 영상 및/또는 타일의 인코딩 동안 영상 인코더(625)에 의해 사용될 수 있다. 대안적으로, 타일 또는 복수의 타일을 선택하는 것은 뷰 프레임 저장부(795)로부터 타일 또는 복수의 타일을 선택하는 것을 포함할 수 있다.The view position control module 805 receives and processes a request for a tile. For example, the view position control module 805 may determine the position and frame of one or more tiles or a plurality of tiles in a frame within the frame based on the view. The view position control module 805 may then instruct the tile control module 810 to select a tile or a plurality of tiles. Selecting a tile or a plurality of tiles may include passing parameters to image encoder 625. The parameter may be used by the image encoder 625 during encoding of spherical images and / or tiles. Alternatively, selecting a tile or a plurality of tiles may include selecting a tile or a plurality of tiles from view frame storage 795.

따라서, 타일 제어 모듈(810)은 구면 영상을 시청하는 사용자의 뷰 또는 시점 또는 뷰 시점에 기초하여 타일(또는 복수의 타일)을 선택하도록 구성될 수 있다. 상기 타일은 뷰에 기초하여 선택된 복수의 픽셀 일 수 있다. 복수의 픽셀은 사용자가 볼 수 있는 구면 이미지의 일부를 포함할 수 있는 블록, 복수의 블록 또는 매크로 블록일 수 있다. 구면 이미지의 부분은 길이 및 폭을 가질 수 있다. 구면 이미지의 부분은 2차원 또는 실질적으로 2차원 일 수 있다. 타일은 가변 크기(예를 들어, 구의 얼마나 많은 부분을 타일이 차지하는지)를 가질 수 있다. 예를 들어, 타일의 크기는, 예를 들어 뷰어의 시야가 얼마나 넓은지 및/또는 얼마나 빨리 사용자가 그들의 머리를 돌리고 있는지에 기초하여 인코딩되고 스트리밍 될 수 있다. 예를 들어 뷰어가 계속 주변을 둘러 보는 경우 더 크고 품질이 낮은 타일이 선택될 수 있다. 그러나, 뷰어가 하나의 시점에 초점을 맞추고 있다면 더 작은 더 자세한 타일이 선택될 수 있다. Accordingly, the tile control module 810 may be configured to select a tile (or a plurality of tiles) based on the view or the viewpoint or the viewpoint of the user viewing the spherical image. The tile may be a plurality of pixels selected based on the view. The plurality of pixels may be a block, a plurality of blocks, or a macro block that may include a portion of a spherical image visible to the user. Portions of the spherical image can have a length and a width. Portions of the spherical image can be two-dimensional or substantially two-dimensional. The tiles may have varying sizes (eg how much of the sphere the tiles occupy). For example, the size of the tiles may be encoded and streamed based on, for example, how wide the viewer's field of view is and / or how fast the user is turning their head. For example, if the viewer keeps looking around, larger and lower quality tiles may be selected. However, if the viewer is focusing on one point of view, a smaller, more detailed tile may be selected.

따라서, 방향 센서(835)는 뷰어(시청자)의 눈(또는 머리)의 방향(또는 방향의 변화)을 검출하도록 구성될 수 있다. 예를 들어, 방위 센서(835)는 움직임을 검출하기 위한 가속도계와 방향을 검출하기 위한 자이로스코프를 포함할 수 있다. 대안으로, 또는 추가적으로, 방향 센서(835)는 뷰어의 눈 또는 머리의 방향을 결정하기 위해 뷰어의 눈 또는 머리에 초점을 맞춘 카메라 또는 적외선 센서를 포함할 수 있다. 대안으로, 또는 추가적으로, 방향 센서(835)는 구면 영상 또는 이미지의 방향을 검출하기 위해 디스플레이상에 랜더링된 구면 영상 또는 이미지의 일부분을 결정할 수 있다. 방향 센서(825)는 방향을 전달하여 뷰 위치 결정 모듈(820)이 방향 정보를 변경하도록 구성될 수 있다.Accordingly, the direction sensor 835 may be configured to detect the direction (or change of direction) of the eye (or head) of the viewer (viewer). For example, the orientation sensor 835 may include an accelerometer for detecting movement and a gyroscope for detecting a direction. Alternatively, or in addition, the orientation sensor 835 may include a camera or infrared sensor focused on the viewer's eyes or head to determine the orientation of the viewer's eyes or head. Alternatively, or in addition, the orientation sensor 835 may determine a portion of the spherical image or image rendered on the display to detect the orientation of the spherical image or image. The direction sensor 825 may be configured to communicate the direction so that the view positioning module 820 changes the direction information.

뷰 위치 결정 모듈(820)은 구면 영상에 관련하여 뷰 또는 뷰 시점(예를 들어, 뷰어가 현재 보고 있는 구면 영상의 일부분)를 결정하도록 구성될 수 있다. 상기 뷰, 시점 또는 뷰 시점은 구면 영상상의 위치, 포인트 또는 초점으로 결정될 수 있다. 예를 들어, 뷰는 구면 영상에서 위도와 경도 위치일 수 있다. 뷰, 시점 또는 뷰 시점은 구면 영상에 근거하여 큐브의 측면으로 결정될 수 있다. 뷰(예를 들어, 위도 및 경도 위치 또는 측면)는 예를 들어 HTTP (Hypertext Transfer Protocol)를 사용하는 뷰 위치 제어 모듈(805로 전달될 수 있다.The view position determining module 820 may be configured to determine a view or view point of view (eg, a portion of the spherical image the viewer is currently viewing) in relation to the spherical image. The view, viewpoint or view viewpoint may be determined as a position, a point or a focus on a spherical image. For example, the view may be a latitude and longitude location in the spherical image. The view, viewpoint or view viewpoint may be determined to the side of the cube based on the spherical image. The view (eg, latitude and longitude location or side) may be passed to the view position control module 805 using, for example, the Hypertext Transfer Protocol (HTTP).

뷰 위치 제어 모듈(805)은 구면 영상 내의 타일 또는 복수의 타일의 뷰 위치(예를 들어, 프레임 내의 프레임 및 위치)를 결정하도록 구성될 수 있다. 예를 들어, 뷰 위치 제어 모듈(805)은 뷰 위치, 포인트 또는 초점(예를 들어, 위도 및 경도 위치 또는 측면)에 중심을 둔 직사각형을 선택할 수 있다. 타일 제어 모듈 (810)은 직사각형을 타일 또는 복수의 타일로서 선택하도록 구성될 수 있다. 타일 제어 모듈(810)은 선택된 타일 또는 복수의 타일을 인코딩하도록 영상 인코더(625)에세 지시하고(예를 들어, 파라미터 또는 구성 설정을 통해) 및/또는 타일 제어 모듈(810)이 상기 뷰 프레임 저장 부(795)로부터의 타일 또는 복수의 타일을 선택하도록 구성될 수 있다.The view position control module 805 may be configured to determine a view position (eg, a frame and a position within a frame) of a tile or a plurality of tiles in the spherical image. For example, the view position control module 805 may select a rectangle centered on the view position, point or focus (eg, latitude and longitude position or side). The tile control module 810 can be configured to select a rectangle as a tile or a plurality of tiles. The tile control module 810 instructs the image encoder 625 to encode the selected tile or a plurality of tiles (eg, via parameters or configuration settings) and / or the tile control module 810 stores the view frame. It may be configured to select a tile from unit 795 or a plurality of tiles.

알 수 있는 바와 같이, 도 6A 및 도 6B에 도시된 시스템(600 및 650)과 도 8에 개시된 시스템(800)은 도 9와 관련하여 후술되는 일반 컴퓨터 장치(900) 및/또는 일반 이동 컴퓨터 장치스(950)의 요소 및/또는 확장으로서 구현될 수 있다. 대안적으로 또는 부가적으로, 도 6A 및 도 6B에 도시된 시스템(600 및 650) 및/또는 도 8에 개시된 시스템(800)은, 일반 컴퓨터 장치(900) 및/또는 일반 이동 컴퓨터 장치(950)와 관련하여 이하에 설명되는 일부 또는 모든 특징을 갖는 일반 컴퓨터 장치(900) 및/또는 일반 이동 컴퓨터 장치(950)와는 별개의 시스템에 구현될 수 있다.As can be seen, the systems 600 and 650 shown in FIGS. 6A and 6B and the system 800 disclosed in FIG. 8 are generic computer devices 900 and / or general mobile computer devices described below in connection with FIG. It may be implemented as an element and / or extension of the switch 950. Alternatively or additionally, the systems 600 and 650 shown in FIGS. 6A and 6B and / or the system 800 disclosed in FIG. 8 may be a generic computer device 900 and / or a generic mobile computer device 950. ) May be implemented in a system separate from general computer device 900 and / or general mobile computer device 950 having some or all of the features described below.

도 9는 본 명세서에서 기술된 기술을 구현하는데 사용될 수 있는 컴퓨터 장치 및 이동 컴퓨터 장치의 개략적인 블록도이다. 도 9는 일반적인 컴퓨터 장치 (900) 및 일반적인 이동 컴퓨터 장치(950)의 예로서, 본 명세서에 기술된 기술과 함께 사용될 수 있다. 컴퓨팅 장치(900)는 랩탑, 데스크탑, 워크 스테이션, PDA, 서버, 블레이드(blade) 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터를 나타내기 위한 것이다. 컴퓨팅 장치(950)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트 폰 및 다른 유사한 컴퓨팅 장치와 같은 다양한 형태의 이동 장치를 나타내기 위한 것이다. 9 is a schematic block diagram of a computer device and a mobile computer device that may be used to implement the techniques described herein. 9 is an example of a generic computer device 900 and a generic mobile computer device 950, which may be used in conjunction with the techniques described herein. Computing device 900 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, PDAs, servers, blade servers, mainframes, and other suitable computers. Computing device 950 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices.

컴퓨팅 장치(900)는 프로세서(902), 메모리 (904), 저장 장치(906), 메모리 (904)와 고속 확장 포트(910)에 연결되는 고속 인터페이스(908) 및 저속 버스 (914)와 저장 장치(906)에 연결되는 저속 인터페이스(912)를 포함한다. 각 구성 요소(902, 904, 906, 908, 910 및 912)는 다양한 버스를 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절하게 다른 방식으로 장착될 수 있다. 상기 프로세서(902)는 고속 인터페이스(908)에 연결된 디스플레이(916)와 같은 외부 입/출력 장치상의 GUI를 위한 그래픽 정보를 표시하기 위하여, 메모리(904) 또는 저장 장치(906)에 저장된 명령을 포함하는 컴퓨팅 장치(900) 내의 실행 명령을 처리할 수 있다. 다른 구현들에서, 다수의 메모리 및 유형의 메모리와 함께, 적절하게는 다수의 프로세서 및/또는 다수의 버스가 사용될 수 있다. 또한, 다수의 컴퓨팅 장치(900)는 필요한 동작들의 파티션을 제공하는 각 장치(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템과 같은)와 접속될 수 있다.The computing device 900 includes a processor 902, a memory 904, a storage device 906, a high speed interface 908 and a low speed bus 914 and storage devices connected to the memory 904 and the fast expansion port 910. A low speed interface 912 coupled to 906. Each component 902, 904, 906, 908, 910 and 912 is interconnected using a variety of buses and may be mounted on a common motherboard or otherwise appropriately. The processor 902 includes instructions stored in memory 904 or storage 906 to display graphical information for a GUI on an external input / output device, such as a display 916 connected to a high speed interface 908. Process the execution command in the computing device 900. In other implementations, multiple processors and / or multiple buses may be used, as appropriate, with multiple memories and types of memory. In addition, multiple computing devices 900 may be connected with each device (eg, a server bank, blade server group, or multiprocessor system) that provides a partition of the required operations.

메모리(904)는 컴퓨팅 장치(900) 내의 정보를 저장한다. 일 구현에서, 메모리(904)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리 (904)는 비 휘발성 메모리 유닛(들)이다. 메모리(904)는 또한 자기(magnetic) 또는 광학 디스크와 같은 컴퓨터 판독 가능 매체의 다른 형태 일 수 있다.Memory 904 stores information within computing device 900. In one implementation, the memory 904 is a volatile memory unit. In another implementation, the memory 904 is a nonvolatile memory unit (s). Memory 904 may also be another form of computer readable media, such as a magnetic or optical disk.

저장 장치(906)는 컴퓨팅 장치(900)를 위한 대용량 저장 용량을 제공할 수 있다. 일 구현에서, 저장 장치(906)는 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치 또는 테이프 장치, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 장치, 또는 저장 영역 네트워크 또는 다른 구성의 장치를 포함하는 장치들의 어레이와 같은 컴퓨터 판독 매체이거나 또는 포함할 수 있다. 상기 컴퓨터 프로그램 제품은 정보 매체에 확실하게 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상술 한 바와 같은 하나 이상의 방법을 수행하는 명령을 포함할 수 있다. 상기 정보 매체는 메모리(904), 저장 장치(906) 또는 프로세서(902)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.The storage device 906 can provide a mass storage capacity for the computing device 900. In one implementation, storage device 906 is an array of devices including a floppy disk device, hard disk device, optical disk device or tape device, flash memory or other similar solid state memory device, or a device in a storage area network or other configuration. Or may be a computer readable medium. The computer program product can be reliably embodied in an information medium. The computer program product may also include instructions that, when executed, perform one or more methods as described above. The information medium is a computer or machine readable medium, such as memory 904, storage 906, or memory on processor 902.

고속 컨트롤러(908)는 컴퓨팅 장치(900)에 대한 대역폭-집약 동작을 관리하고, 저속 컨트롤러(912)는 낮은 대역폭-집약 동작을 관리한다. 이러한 기능 할당은 단지 예시적인 것이다. 일 구현에서, 고속 컨트롤러(908)는 메모리(904), 디스플레이(916)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(910)에 결합된다. 상기 구현에서, 저속 컨트롤러(912)는 저장 장치(906) 및 저속 확장 포트(914)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 장치, 스캐너와 같은 하나 이상의 입/출력장치 또는 스위치 또는 라우터와 같은 네트워킹 장치와, 예를 들어 네트워크 어댑터를 통해 결합될 수 있다.The high speed controller 908 manages bandwidth-intensive operations for the computing device 900, and the low speed controller 912 manages low bandwidth-intensive operations. This function assignment is merely exemplary. In one implementation, high speed controller 908 is a high speed expansion port 910 that can accommodate memory 904, display 916 (eg, via a graphics processor or accelerator), and various expansion cards (not shown). ) Is combined. In this implementation, the low speed controller 912 is coupled to the storage device 906 and the low speed expansion port 914. The low speed expansion ports, which may include various communication ports (eg, USB, Bluetooth, Ethernet, Wireless Ethernet), include one or more input / output devices such as keyboards, pointing devices, scanners, or networking devices such as switches or routers, For example, it can be coupled via a network adapter.

컴퓨팅 장치(900)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 표준 서버(920)로서 구현되거나, 또는 그러한 서버들의 그룹에서 여러 번 구현될 수 있다. 또한, 랩 서버 시스템(924)의 일부로서 구현될 수도 있다. 또한, 랩탑 컴퓨터(922)와 같은 개인용 컴퓨터에서 구현될 수도 있다. 대안적으로, 컴퓨팅 장치(900)로부터의 구성 요소는 이동 장치 내의 다른 구성 요소와 결합 될 수 있다 이러한 장치 각각은 컴퓨팅 장치(900, 950) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 장치(900, 950)로 구성 될 수 있다.Computing device 900 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 920 or may be implemented multiple times in a group of such servers. It may also be implemented as part of the lab server system 924. It may also be implemented in a personal computer, such as laptop computer 922. Alternatively, components from computing device 900 may be combined with other components within a mobile device. Each of these devices may include one or more of computing devices 900 and 950, and the entire system communicates with each other. It may be composed of a plurality of computing devices (900, 950).

컴퓨팅 장치(950)는 다른 구성 요소들 중에서 프로세서(952), 메모리(964), 디스플레이(954)와 같은 입/출력 장치, 통신 인터페이스(966) 및 송수신기(968)를 포함한다. 상기 장치(950)는 추가 저장 용량을 제공하기 위해 마이크로 드라이브 또는 다른 장치와 같은 저장 장치를 구비할 수 있다. 구성 요소들(950, 952, 964, 954, 966 및 968)들 각각은 다양한 버스를 사용하여 상호 접속되며, 몇몇 구성 요소는 공통 마더보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.The computing device 950 includes a processor 952, a memory 964, an input / output device such as a display 954, a communication interface 966, and a transceiver 968, among other components. The device 950 may include a storage device such as a micro drive or other device to provide additional storage capacity. Each of the components 950, 952, 964, 954, 966 and 968 are interconnected using a variety of buses, and some components may be mounted on a common motherboard or in other suitable manners.

프로세서(952)는 컴퓨팅 장치 내에서 명령들을 실행할 수 있다. 상기 프로세서는 메모리(964)에 저장된 명령을 포함하여, 개별 및 다수의 아날로그 및 디지털 프로세서를 포함하는 칩의 칩셋으로서 구현될 수 있다. 상기 프로세서는 예를 들어 사용자 인터페이스의 제어, 장치(950)에 의해 실행되는 어플리케이션 및 장치(950)에 의한 무선 통신과 같은 장치(950)의 다른 구성 요소들의 조정을 제공할 수 있다.The processor 952 can execute instructions within the computing device. The processor may be implemented as a chipset of a chip comprising individual and multiple analog and digital processors, including instructions stored in memory 964. The processor may provide coordination of other components of the device 950 such as, for example, control of the user interface, applications executed by the device 950 and wireless communication by the device 950.

프로세서(952)는 제어 인터페이스(958) 및 디스플레이(956)를 통해 결합된 디스플레이 인터페이스(954)를 통해 사용자와 통신할 수 있다. 상기 디스플레이(954)는 예를 들어, TFT LCD (박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 상기 디스플레이 인터페이스(956)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(954)를 구동하기 위한 적절한 회로를 포함할 수 있다. 상기 제어 인터페이스(958)는 사용자로부터 명령을 수신하여 프로세서(952)로 제출하기 위해 그들을 변환할 수 있다. 또한, 외부 인터페이스(962)는 프로세서(952)와 통신하여 다른 장치와 장치(950)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(962)는 예를 들어, 일부 구현들에서 유선 통신이거나 또는 다른 구현 예에서는 무선 통신용으로 제공될 수 있으며, 다중 인터페이스가 또한 사용될 수 있다. 메모리(964)는 컴퓨팅 장치 내의 정보를 저장한다.The processor 952 may communicate with a user through the display interface 954 coupled via the control interface 958 and the display 956. The display 954 may include, for example, a TFT LCD (thin film transistor liquid crystal display) or an OLED (organic light emitting diode) display, or other suitable display technology. The display interface 956 may include suitable circuitry for driving the display 954 to provide graphics and other information to a user. The control interface 958 can convert commands for receiving commands from a user and submitting to the processor 952. In addition, the external interface 962 can communicate with the processor 952 to enable near field communication of the device 950 with other devices. External interface 962 may be provided, for example, in wired communication in some implementations or for wireless communication in other implementations, and multiple interfaces may also be used. Memory 964 stores information within the computing device.

메모리(964)는 컴퓨터-판독 가능 매체 또는 미디어, 휘발성 메모리 유닛 또는 유닛들, 비 휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리(974)는 또한 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(972)를 통해 장치(950)에 제공되고 접속될 수 있다. 특히 확장 메모리(974)는 전술한 프로세스를 수행하거나 보충하기 위한 명령을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(974)는 장치(950)르 위한 보안 모듈로서 제공될 수 있고, 장치(950)의 안전한 사용을 허용하는 명령들로 프로그램될 수 있다. 또한, 보안 어플리케이션은 해킹 불가능한 방식으로 SIMM 카드를 통해 SIMM 카드에 식별 정보를 배치하는 등의 작업을 할 수 있다.Memory 964 may be implemented as one or more of computer-readable media or media, volatile memory units or units, and non-volatile memory units or units. Expansion memory 974 may also be provided and connected to device 950 via expansion interface 972, which may include, for example, a Single In Line Memory Module (SIMM) card interface. In particular, the expansion memory 974 may include instructions for performing or supplementing the above-described process, and may also include security information. Thus, for example, expansion memory 974 may be provided as a security module for device 950 and may be programmed with instructions to allow secure use of device 950. In addition, the security application may perform tasks such as placing identification information on the SIMM card through the SIMM card in a non-hackable manner.

메모리는 이하에서 논의되는 바와 같이, 예를 들어 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 확실하게 구체화된다. 컴퓨터 프로그램 제품은 실행될 때 상술한 방법과 같은 하나 이상의 방법을 수행하는 명령을 포함한다. 상기 정보 매체는 예를 들어 송수신기(968) 또는 외부 인터페이스(962)를 통해 수신될 수 있는 메모리(964), 확장 메모리(974) 또는 프로세서(952)상의 메모리와 같은 컴퓨터- 또는 기계 판독 가능 매체이다.The memory may include, for example, flash memory and / or NVRAM memory, as discussed below. In one implementation, a computer program product is specifically embodied in an information medium. The computer program product includes instructions which, when executed, perform one or more methods, such as those described above. The information medium is a computer- or machine-readable medium such as, for example, memory 964, expansion memory 974, or memory on processor 952, which can be received via transceiver 968 or external interface 962. .

장치(950)는 필요한 경우 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(966)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(966)는 특히 GSM 음성 호출, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 그러한 통신은, 예를 들면 무선 주파수 송수신기(968)를 통해 발생할 수 있다. 또한, 블루투스, WiFi 또는 다른 송수신기(도시되지 않음)를 사용하는 것과 같은 근거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System) 수신기 모듈(970)은 장치(950)에서 실행되는 어플리케이션에 의해 적절하게 사용될 수 있는 장치(950)에 부가적인 네비게이션 및 위치 관련 무선 데이터를 제공할 수 있다. 오디오 코덱 (960)은 사용자로부터 음성 정보를 수신하여 그것을 이용 가능한 디지털 정보로 변환할 수 있다. 오디오 코덱(960)은 마찬가지로, 예를 들어 장치(950)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청음을 생성할 수 있다. 이러한 음은 음성 전화 호출로부터의 사운드를 포함할 수 있고, 녹화음(예를 들어, 음성 메시지, 음악 파일)을 포함할 수 있으며 또한 장치(950)상에서 동작하는 어플리케이션에 의해 생성된 음을 포함할 수도 있다.Device 950 may communicate wirelessly via communication interface 966, which may include digital signal processing circuitry if desired. The communication interface 966 may provide communication under various modes or protocols, particularly GSM voice calling, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 or GPRS. Such communication may occur via, for example, a radio frequency transceiver 968. In addition, near field communication may occur, such as using Bluetooth, WiFi, or other transceivers (not shown). In addition, the Global Positioning System (GPS) receiver module 970 may provide additional navigation and location related wireless data to the device 950 that may be suitably used by an application running on the device 950. The audio codec 960 may receive voice information from the user and convert it into usable digital information. Audio codec 960 may likewise generate an audible sound for the user, such as through a speaker in handset of device 950. Such sounds may include sounds from voice telephone calls, may include recorded sounds (eg, voice messages, music files) and may also include sounds generated by an application running on device 950. It may be.

컴퓨팅 장치(950)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 셀룰러 전화(980)로서 구현될 수 있다. 또한 스마트폰(982), 개인 휴대 정보 단말기(personal digital assistant), 또는 다른 유사한 이동 장치의 일부로서 구현될 수도 있다.Computing device 950 may be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as a cellular telephone 980. It may also be implemented as part of a smartphone 982, personal digital assistant, or other similar mobile device.

전술한 예시적인 실시예들 중 일부는 흐름도로서 기술된 프로세스들 또는 방법들로서 개시된다. 상기 흐름도가 동작들을 순차적인 프로세스들로서 설명하지만, 많은 동작들이 병렬로, 병행하여 또는 동시에 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 상기 프로세스는 동작이 완료될 때 종료될 수 있지만 도면에 포함되지 않은 추가 단계를 또한 가질 수 있다. 상기 프로세스는 방법, 함수, 절차, 서브 루틴, 서브 프로그램 등에 대응될 수 있다. Some of the example embodiments described above are disclosed as processes or methods described as flow diagrams. Although the flowchart describes the operations as sequential processes, many of the operations can be performed in parallel, in parallel or concurrently. In addition, the order of the operations may be rearranged. The process may end when the operation is completed but may also have additional steps not included in the figures. The process may correspond to a method, a function, a procedure, a subroutine, a subprogram, or the like.

흐름도에 의해 개시된 전술한 방법들의 일부는 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로 코드, 하드웨어 기술 언어 또는 이들의 임의의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로 코드로 구현될 때, 필요한 태스크를 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 저장 매체와 같은 기계 또는 컴퓨터 판독 가능 매체에 저장될 수 있다. 프로세서(들)가 필요한 태스크를 수행할 수 있다.Some of the foregoing methods disclosed by the flowcharts may be implemented by hardware, software, firmware, middleware, microcode, hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, program code or code segments for performing a required task may be stored on a machine or computer readable medium, such as a storage medium. The processor (s) may perform the necessary tasks.

본 명세서에 개시된 특정 구조적 및 기능적 세부 사항은 단지 예시적인 실시예를 기술할 목적을 위한 대표적 예일 뿐이다. 그러나, 예시적인 실시예들은 많은 대안적인 형태로 구체화될 수 있으며, 여기에 설명된 실시예들에만 한정되는 것으로 해석되어서는 안된다.The specific structural and functional details disclosed herein are merely representative examples for the purpose of describing exemplary embodiments. However, example embodiments may be embodied in many alternative forms and should not be construed as limited to the embodiments set forth herein.

제1, 제2등의 용어가 본 명세서에서 다양한 구성 요소를 설명하기 위해 사용될 수 있지만, 이들 구성 요소는 이들 용어에 의해 제한되어서는 안 된다는 것을 이해할 것이다. 이 용어는 한 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 제1구성요소는 제2구성요소로 지칭될 수 있고, 유사하게, 제2구성요소는 예시적인 실시예들의 범위를 벗어나지 않고 제1구성요소로 지칭될 수 있다. 본 명세서에 사용된 바와 같이, 상기 용어는 관련되어 목록화된 항목들 중 하나 이상의 임의의 및 모든 조합을 포함한다.Although the terms first, second, etc. may be used herein to describe various components, it will be understood that these components should not be limited by these terms. This term is only used to distinguish one element from another. For example, the first component may be referred to as the second component, and similarly, the second component may be referred to as the first component without departing from the scope of the exemplary embodiments. As used herein, the term includes any and all combinations of one or more of the items listed in relation thereto.

구성요소가 다른 구성요소에 연결되거나 연결되는 것으로 언급될 때, 구성요소는 다른 구성요소에 직접 연결되거나 연결될 수 있거나 또는 개입(intervening) 구성요소가 존재할 수 있음을 알 수 있다. 반대로, 구성요소가 다른 구성요소에 직접 연결되거나 직접 연결되는 것으로 언급될 때 개입 구성요소는 존재하지 않는다. 구성요소들간의 관계를 기술하기 위해 사용된 다른 단어들은 유사한 방식으로(예를 들어, 사이에 대 직접 사이에, 인접한 대 직접 등) 해석되어야 한다.When a component is referred to as being connected or connected to another component, it may be appreciated that the component may be directly connected or connected to another component or that an intervening component may exist. In contrast, an intervening component does not exist when the component is referred to as being directly connected or directly connected to another component. Other words used to describe the relationships between components should be interpreted in a similar manner (eg, between vs. directly between, adjacent vs. direct, etc.).

본 명세서에 사용된 용어는 단지 특정 실시예를 기술하기 위한 것이며, 예시적인 실시예를 제한하려는 것은 아니다. 본 명세서에서 사용된 단수 형태 a, an 및 the는 문맥상 다르게 나타내지 않는 한, 복수 형태를 포함하는 것으로 여겨진다. 본 명세서에서 사용된 용어는 명시된 특징, 정수, 단계, 동작, 구성 요소 및/또는 구성 요소의 존재를 명시하고 포함하고/포함하는 것을 포함하지만 이들로 한정되는 것은 아니며, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소(elements) 및/또는 구성 요소(components)를 포함할 수 있다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms a, an, and the are intended to include the plural forms unless the context clearly indicates otherwise. The terminology used herein includes, but is not limited to, specifying and including and / or including the specified features, integers, steps, operations, components and / or presence of components, one or more other features, integers, It may include steps, actions, elements and / or components.

또한, 일부 대체 구현들에서, 언급된 기능들/동작들은 도면들에 기록된 순서를 벗어날 수 있다는 것을 알아야 한다. 예를 들어 연속적으로 표시된 두 개의 도면은 실제로 동시에 실행될 수도 있고 관련된 기능/작동에 따라 역순으로 실행될 수도 있다.In addition, it should be appreciated that in some alternative implementations, the functions / acts mentioned may deviate from the order recorded in the figures. For example, two figures shown in succession may actually be executed simultaneously or in reverse order depending on the function / operation involved.

전술한 예시적인 실시예의 일부분 및 해당하는 상세한 설명은 소프트웨어, 또는 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 심볼 표현에 관련하여 제공된다. 이러한 설명 및 표현은 당업자가 그들의 작업 내용을 다른 당업자에게 효과적으로 전달하는 것이다. 본 명세서에서 사용된 용어인 알고리즘은 일반적으로 사용되는 것처럼 원하는 결과를 유도하는 단계들의 일관된 순서가 될 수 있음을 내포하고 있다. 이 단계는 물리량의 물리적으로 조작을 요구하는 단계이다. 일반적으로, 반드시 그런 것은 아니지만, 이러한 양은 저장, 전송, 결합, 비교 및 기타 조작이 가능한 광학, 전기 또는 자기 신호의 형태를 취한다. 주로 공통적인 사용을 이유로 이 신호를 비트, 값, 요소, 기호, 문자, 용어, 숫자 등으로 참조하는 것이 편리하다는 것이 입증되었다.Portions of the foregoing exemplary embodiments and corresponding detailed descriptions are provided in connection with algorithms and symbolic representations of operations on data bits in software, or computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others skilled in the art. The term algorithm, as used herein, implies that there may be a consistent sequence of steps leading to a desired result as is generally used. This step is a step that requires physical manipulation of the physical quantity. Generally, though not necessarily, these quantities take the form of optical, electrical or magnetic signals capable of being stored, transmitted, combined, compared and otherwise manipulated. It is proven to be convenient to refer to this signal as bits, values, elements, symbols, letters, terms, numbers, etc., mainly for common uses.

상기 예시적인 실시예에서, 동작의 참조와 프로그램 모듈 또는 기능적 프로세스로서 구현될 수 있는 동작(예를 들어, 흐름도의 형태로)의 심볼적 표현은, 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하며 기존 구조 요소에서 기존 하드웨어를 사용하여 설명 및/또는 구현될 수 있는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 그러한 기존 하드웨어는 하나 이상의 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP), 응용 목적 집적 회로, FPGA(field programmable gate arrays) 컴퓨터 등을 포함할 수 있다.In the above exemplary embodiment, the reference to the operations and the symbolic representation of the operations (eg in the form of a flowchart), which may be implemented as a program module or a functional process, perform a particular task or implement a particular abstract data type. Existing structural elements include routines, programs, objects, components, data structures, etc. that can be described and / or implemented using existing hardware. Such existing hardware may include one or more central processing units (CPUs), digital signal processors (DSPs), application integrated circuits, field programmable gate arrays (FPGAs) computers, and the like.

그러나 이러한 모든 용어와 유사한 용어는 적절한 물리량과 관련되어 있으며 이러한 양에 적용되는 편리한 표시일 뿐이다. 다르게 구체적으로 기술되지 않거나 논의에서 명백한 경우를 제외하고, 프로세싱 또는 컴퓨팅 또는 표시의 계산 또는 결정과 같은 용어는, 컴퓨터 시스템의 레지스터 또는 메모리 내의 물리적, 전자적 양으로 표현된 데이타를 컴퓨터 시스템의 메모리 또는 레지스터 또는 다른 정보 저장 장치, 전송 장치 또는 디스플레이 내의 물리량으로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 프로세스를 참조한다. However, all of these terms and similar terms are related to the appropriate physical quantities and are merely convenient indications applied to these quantities. Except as otherwise specifically described or otherwise apparent in the discussion, such terms as processing or computing or calculating or determining a representation refer to data expressed in physical or electronic quantities in a register or memory of a computer system or in a memory or register of a computer system. Or operations and processes of a computer system or similar electronic computing device that manipulates and transforms into other information storage devices, transmission devices, or other data similarly represented by physical quantities within a display.

또한, 예시적인 실시예의 소프트웨어로 구현된 양태들은 통상적으로 어떤 형태의 비 일시적인 프로그램 저장 매체상에 인코딩되거나 또는 어떤 유형의 전송 매체를 통해 구현된다는 점에 유의해야 한다. 프로그램 저장 매체는 자기(예를 들어, 플로피 디스크 또는 하드 드라이브) 또는 광학(예를 들어,콤팩트 디스크 판독 전용 메모리, 또는 CD ROM) 일 수 있으며, 판독 전용 또는 랜덤 액세스일 수 있다. 유사하게, 전송 매체는 꼬인 전선 쌍, 동축 케이블, 광섬유, 또는 당업계에 공지된 다른 적절한 전송 매체일 수 있다. 예시적인 실시예들은 임의의 주어진 구현의 양상들에 의해 제한되지 않는다.It should also be noted that software implemented aspects of the exemplary embodiments are typically encoded on some form of non-transitory program storage medium or implemented on some type of transmission medium. The program storage medium may be magnetic (eg, floppy disk or hard drive) or optical (eg, compact disc read-only memory, or CD ROM), and may be read-only or random access. Similarly, the transmission medium may be a twisted wire pair, coaxial cable, optical fiber, or other suitable transmission medium known in the art. Example embodiments are not limited by any given aspect of the implementation.

마지막으로, 첨부된 청구 범위는 본 명세서에 설명된 특징들의 특정 조합을 설명하고 있지만, 본 개시의 범위는 이후에 청구된 특정 조합으로 제한되지 않고, 대신에 특징 또는 특징의 임의의 조합을 포함하도록 확장된다는 것을 주목해야 한다. 이 특정 조합이 현재 첨부된 청구 범위에서 구체적으로 열거되었는 지의 여부와 무관하게 본원의 실시예가 개시된다.Finally, while the appended claims describe particular combinations of features described herein, the scope of the present disclosure is not limited to the specific combinations that are subsequently claimed, but instead include features or any combination of features. Note that it expands. The embodiments herein are disclosed whether or not this particular combination is specifically listed in the appended claims.

Claims (20)

3차원(3D) 영상과 관련된 이력적으로 시청된 뷰 시점에 기초하여 3D영상에 대한 복수의 이력 뷰 시점(historical view perspectives) 중 하나로서 뷰 시점을 저장하는 단계;
상기 복수의 이력 뷰 시점 중 하나와 관련된 순위값이 임계값보다 크고 상기 복수의 이력 뷰 시점의 나머지에 대한 조건을 만족하는지 여부를 결정하는 단계;
상기 순위값이 임계값보다 크고 상기 조건을 만족한다는 결정에 응답하여, 3D 영상과 관련된 적어도 하나의 선호 뷰 시점으로서 상기 복수의 이력 뷰 시점 중 하나를 선택하는 단계;
3D영상의 프레임을 2차원(2D) 표현(representation)으로 매핑하는 단계;
상기 적어도 하나의 선호 뷰 시점에 해당하는 상기 프레임의 2D 표현의 제1부분을 제1품질로 인코딩하는 단계; 및
상기 프레임의 2D표현의 제2부분을 제2품질로 인코딩하는 단계를 포함하고, 상기 제1품질은 제2품질과 비교하여 더 높은 품질인 것을 특징으로 하는 방법.
Storing the view viewpoint as one of a plurality of historical view perspectives for the 3D image based on the historically viewed view viewpoint associated with the three-dimensional (3D) image;
Determining whether a rank value associated with one of the plurality of history view views is greater than a threshold and satisfies a condition for the remainder of the plurality of history view views;
In response to determining that the rank value is greater than a threshold and satisfies the condition, selecting one of the plurality of historical view viewpoints as at least one preferred view viewpoint associated with a 3D image;
Mapping a frame of the 3D image to a two-dimensional (2D) representation;
Encoding a first portion of a 2D representation of the frame corresponding to the at least one preferred view viewpoint with a first quality; And
Encoding a second portion of the 2D representation of the frame with a second quality, wherein the first quality is higher quality compared to the second quality.
제1항에 있어서,
상기 프레임의 2D 표현의 상기 인코딩된 제1부분을 데이터 저장장치에 저장하는 단계;
상기 3D영상의 인코딩된 프로임으로서 상기 프레임의 2D 표현의 상기 인코딩된 제1부분과 관련하여 상기 프레임의 2D 표현의 제2부분을 데이터 저장장치에 저장하는 단계;
스트리밍 영상의 프레임에 대한 요청을 수신하는 단계; 및
상기 스트리밍 영상의 프레임에 대한 요청을 수신하는 것에 응답하여, 상기 3D영상의 상기 인코딩된 프레임의 적어도 일부를 상기 스트리밍 영상의 프레임으로서 데이터 저장장치로부터 스트리밍하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
Storing the encoded first portion of the 2D representation of the frame in a data storage device;
Storing a second portion of the 2D representation of the frame in a data storage device in association with the encoded first portion of the 2D representation of the frame as an encoded profile of the 3D image;
Receiving a request for a frame of a streaming video; And
In response to receiving a request for a frame of the streaming video, streaming at least a portion of the encoded frame of the 3D video from a data storage device as a frame of the streaming video. .
제1항에 있어서,
스트리밍 영상의 프레임에 대한 요청을 수신하는 단계, 상기 요청은 사용자 뷰 시점의 표시를 포함하고;
사용자 뷰 시점에 해당하는 3D영상의 프레임의 상기 2D 표현의 상기 인코딩된 제1 부분을 선택하는 단계; 및
상기 스트리밍 영상의 프레임에 대한 요청을 수신하는 것에 응답하여, 상기 3D영상의 프레임의 상기 2D 표현의 선택된 상기 인코딩된 제1부분과 상기 3D영상의 프레임의 상기 2D 표현의 상기 인코딩된 제2부분을 스트리밍 영상의 프레임으로서 스트리밍하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
Receiving a request for a frame of a streaming video, the request comprising an indication of a user view point of view;
Selecting the encoded first portion of the 2D representation of a frame of 3D image corresponding to a user view viewpoint; And
In response to receiving a request for a frame of the streaming image, select the encoded first portion of the 2D representation of the frame of the 3D image and the encoded second portion of the 2D representation of the frame of the 3D image. And streaming as a frame of the streaming video.
제1항에 있어서,
스트리밍 영상의 프레임에 대한 요청을 수신하는 단계, 상기 요청은 3D 영상과 관련된 사용자 뷰 시점의 표시를 포함하고;
사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있는지 결정하는 단계;
사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있다는 결정에 응답하여, 사용자 뷰 시점과 관련된 카운터를 증가시키는 단계; 및
사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있다는 결정에 응답하여, 사용자 뷰 시점을 뷰 시점 데이터 저장장치에 추가하고 사용자 뷰 시점과 관련된 카운터를 1로 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
Receiving a request for a frame of a streaming video, the request comprising an indication of a user view viewpoint associated with the 3D video;
Determining whether a user view viewpoint is stored in the view viewpoint data storage;
In response to determining that the user view viewpoint is stored in the view viewpoint data storage, incrementing a counter associated with the user view viewpoint; And
In response to determining that the user view viewpoint is stored in the view viewpoint data storage, adding the user view viewpoint to the view viewpoint data storage and setting a counter associated with the user view viewpoint to one. .
제1항에 있어서,
3D영상의 프레임의 상기 2D 표현의 제2부분을 인코딩하는 단계는 제1패스 인코딩 동작에서 적어도 하나의 제1QoS 파라미터를 이용하는 단계를 포함하고,
3D영상의 프레임의 상기 2D 표현의 제1부분을 인코딩하는 단계는 제2패스 인코딩 동작에서 적어도 하나의 제QoS 파라미터를 이용하는 단계를 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
Encoding the second portion of the 2D representation of the frame of the 3D image comprises using at least one first QoS parameter in a first pass encoding operation,
Encoding the first portion of the 2D representation of a frame of a 3D image comprises using at least one QoS parameter in a second pass encoding operation.
제1항에 있어서,
상기 3D 영상과 관련된 적어도 하나의 선호 뷰 시점을 결정하는 단계는 이력 시청된 기준점 및 이력 시청된 뷰 시점 중 적어도 하나에 기초하는 것을 특징으로 하는 방법.
The method of claim 1,
And determining at least one preferred view viewpoint associated with the 3D image is based on at least one of a history viewed reference point and a history viewed view viewpoint.
제1항에 있어서,
상기 3D영상과 관련된 적어도 하나의 선호 뷰 시점은 3D영상의 뷰어 방향, 3D영상의 뷰어 위치, 3D영상의 뷰어 포인트 및 3D 영상의 뷰어 결상점 중 적어도 하나에 근거하는 것을 특징으로 하는 방법.
The method of claim 1,
The at least one preferred view viewpoint associated with the 3D image is based on at least one of a viewer direction of the 3D image, a viewer position of the 3D image, a viewer point of the 3D image, and a viewer imaging point of the 3D image.
제1항에 있어서,
3D영상과 관련된 적어도 하나의 선호 뷰 시점을 결정하는 단계는 디폴트 뷰 시점에 근거하고,
상기 디폴트 뷰 시점은
디스플레이 장치의 사용자 특성,
디스플레이의 사용자와 관련된 그룹의 특성,
디렉터스 컷, 및
3D영상의 특성 중 적어도 하나에 근거하는 것을 특징으로 하는 방법.
The method of claim 1,
Determining at least one preferred view viewpoint associated with the 3D image is based on a default view viewpoint,
The default view point is
User characteristics of the display device,
The characteristics of the group related to the user of the display,
Director's cut, and
And at least one of the characteristics of the 3D image.
제1항에 있어서,
제1품질로 3D영상의 프레임의 상기 2D 표현의 제2부분의 적어도 하나의 부분을 반복적으로 인코딩하는 단계; 및
3D영상의 프레임의 상기 2D 표현의 제2부분의 상기 적어도 하나의 부분을 스트리밍하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
Iteratively encoding at least one portion of the second portion of the 2D representation of the frame of the 3D image with a first quality; And
Streaming said at least one portion of said second portion of said 2D representation of a frame of 3D video.
3차원(3D) 영상과 관련된 이력적으로 시청된 뷰 시점에 기초하여 3D영상에 대한 복수의 이력 뷰 시점을 저장하도록 구성된 메모리와, 상기 복수의 이력 뷰 시점은 상기 3D영상들의 복수의 사용자와 관련되고;
컨트롤러로와, 상기 컨트롤러는,
상기 복수의 이력 뷰 시점 중 하나와 관련된 순위값이 임계값보다 크고 상기 복수의 이력 뷰 시점의 나머지에 대한 조건을 만족하는지 여부를 결정하고; 그리고
상기 순위값이 임계값보다 크고 상기 조건을 만족한다는 결정에 응답하여, 3D영상과 관련된 적어도 하나의 선호 뷰 시점으로서 상기 복수의 이력 뷰 시점 중 하나를 선택하고;
인코더를 포함하고, 상기 인코더는,
상기 적어도 하나의 선호 뷰 시점에 해당하는 상기 3D 영상 프레임의 2D 표현의 제1부분을 제1품질로 인코딩하고; 그리고
상기 프레임의 2D표현의 제2부분을 제2품질로 인코딩하며, 상기 제1품질은 제2품질과 비교하여 더 높은 품질인 것을 특징으로 하는 스트리밍 서버.
A memory configured to store a plurality of historical view viewpoints for the 3D image based on historically viewed view viewpoints associated with three-dimensional (3D) images, wherein the plurality of historical view viewpoints are associated with a plurality of users of the 3D images Become;
As a controller, the controller,
Determine whether a rank value associated with one of the plurality of history view views is greater than a threshold and satisfies a condition for the remainder of the plurality of history view views; And
In response to determining that the rank value is greater than a threshold and satisfies the condition, select one of the plurality of historical view viewpoints as at least one preferred view viewpoint associated with a 3D image;
An encoder, wherein the encoder,
Encode a first portion of a 2D representation of the 3D image frame corresponding to the at least one preferred view viewpoint with a first quality; And
And encoding a second portion of the 2D representation of the frame with a second quality, wherein the first quality is higher quality compared to the second quality.
제10항에 있어서, 상기 컨트롤러는,
데이터 저장장치에 상기 프레임의 2D 표현의 상기 인코딩된 제1부분을 저장하고,
데이터 저장장치에 3D영상의 인코딩된 프로임으로서 상기 프레임의 2D 표현의 상기 인코딩된 제1부분과 관련하여 상기 프레임의 2D 표현의 제2부분을 저장하며,
스트리밍 영상의 프레임에 대한 요청을 수신하여,
상기 스트리밍 영상의 프레임에 대한 요청을 수신하는 것에 응답하여, 데이터 저장장치로부터 3D영상의 상기 인코딩된 프레임의 적어도 일부를 상기 스트리밍 영상의 프레임으로서 스트리밍하도록 하는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10, wherein the controller,
Store the encoded first portion of the 2D representation of the frame in a data storage device,
Storing a second portion of the 2D representation of the frame in relation to the encoded first portion of the 2D representation of the frame as an encoded profile of a 3D image in a data storage device,
By receiving a request for a frame of a streaming video,
And in response to receiving the request for the frame of the streaming video, stream at least a portion of the encoded frame of the 3D video as a frame of the streaming video from a data storage device.
제10항에 있어서, 상기 컨트롤러는,
스트리밍 영상의 프레임에 대한 요청을 수신하고, 상기 요청은 사용자 뷰 시점의 지시를 포함하고,
사용자 뷰 시점에 해당하는 3D영상의 상기 프레임의 2D 표현의 상기 인코딩된 제1부분을 선택하며,
상기 스트리밍 영상의 프레임에 대한 요청을 수신하는 것에 응답하여, 상기 3D영상의 프레임의 상기 2D 표현의 선택된 상기 인코딩된 제1부분과 상기 3D영상의 프레임의 상기 2D 표현의 상기 인코딩된 제2부분을 스트리밍 영상의 프레임으로서 스트리밍하도록 하도록 더 구성되는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10, wherein the controller,
Receiving a request for a frame of the streaming video, the request including an indication of a user view point of view,
Select the encoded first portion of the 2D representation of the frame of the 3D image corresponding to a user view point of view,
In response to receiving a request for a frame of the streaming image, select the encoded first portion of the 2D representation of the frame of the 3D image and the encoded second portion of the 2D representation of the frame of the 3D image. And further configured to stream as a frame of the streaming video.
제10항에 있어서, 상기 컨트롤러는,
3D영상과 관련된 사용자 뷰 시점의 표시를 포함하는 스트리밍 영상의 프레임에 대한 요청을 수신하고,
사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있는지 결정하고,
사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있다고 결정되면, 사용자 뷰 시점과 연관된 카운터를 증가시키고,
사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있지 않다고 결정되면, 사용자 뷰 시점을 뷰 시점 데이터 저장장치에 추가하고 사용자 뷰 시점과 관련된 카운터를 1로 설정하도록 더 구성되는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10, wherein the controller,
Receiving a request for a frame of a streaming video including an indication of a user's view point in relation to the 3D image,
Determine if a user view point is stored in the view point data storage,
If it is determined that the user view viewpoint is stored in the view viewpoint data storage, increment the counter associated with the user view viewpoint,
And if it is determined that the user view viewpoint is not stored in the view viewpoint data storage, the streaming server is further configured to add the user view viewpoint to the view viewpoint data storage and set a counter associated with the user view viewpoint to one.
제10항에 있어서,
3D영상의 프레임의 상기 2D 표현의 제2부분을 인코딩하는 것은 제1패스 인코딩 동작에서 적어도 하나의 제1 QoS 파라미터를 이용하는 것을 포함하고,
3D영상의 프레임의 상기 2D 표현의 제1부분을 인코딩하는 것은 제2패스 인코딩 동작에서 적어도 하나의 제2 QoS 파라미터를 이용하는 것을 포함하는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10,
Encoding the second portion of the 2D representation of a frame of 3D image comprises using at least one first QoS parameter in a first pass encoding operation,
Encoding the first portion of the 2D representation of a frame of 3D video comprises using at least one second QoS parameter in a second pass encoding operation.
삭제delete 제10항에 있어서,
상기 3D영상과 관련된 적어도 하나의 선호 뷰 시점은 3D영상의 뷰어 방향, 3D영상의 뷰어 위치, 3D영상의 뷰어 포인트 및 3D 영상의 뷰어 결상점 중 적어도 하나에 근거하는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10,
The at least one preferred view viewpoint associated with the 3D image is based on at least one of a viewer direction of the 3D image, a viewer position of the 3D image, a viewer point of the 3D image, and a viewer imaging point of the 3D image.
제10항에 있어서,
3D영상과 관련된 적어도 하나의 선호 뷰 시점을 결정하는 것은 디폴트 뷰 시점에 근거하고,
상기 디폴트 뷰 시점은
디스플레이 장치 사용자의 특성,
디스플레이 장치 사용자와 관련된 그룹의 특성,
디렉터스 컷, 및
상기 3D영상의 특성 중 적어도 하나에 근거하는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10,
Determining at least one preferred view viewpoint associated with the 3D image is based on a default view viewpoint,
The default view point is
Characteristics of display device users,
Characteristics of groups related to display device users,
Director's cut, and
Streaming server, characterized in that based on at least one of the characteristics of the 3D image.
제10항에 있어서, 상기 컨트롤러는,
제1품질로 3D영상의 프레임의 상기 2D 표현의 제2부분의 적어도 하나의 부분을 반복적으로 인코딩하고,
3D영상의 프레임의 상기 2D 표현의 제2부분의 상기 적어도 하나의 부분을 스트리밍하도록 더 구성되는 것을 특징으로 하는 스트리밍 서버.
The method of claim 10, wherein the controller,
Iteratively encoding at least one portion of the second portion of the 2D representation of the frame of the 3D image with a first quality,
And the at least one portion of the second portion of the 2D representation of a frame of 3D video.
스트리밍 영상의 프레임에 대한 요청을 수신하는 단계, 상기 요청은 33차원(3D) 영상과 관련된 사용자 뷰 시점의 표시를 포함하고, 상기 사용자 뷰 시점은 상기 33차원(3D) 영상에 대한 복수의 이력 뷰 시점(historical view perspectives) 중의 하나이고, 상기 33차원(3D) 영상의 일부분상의 사용자의 초점(focal point)을 나타내며;
상기 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있는지 결정하는 단계;
상기 사용자 뷰 시점이 상기 뷰 시점 데이터 저장장치에 저장되어 있다는 결정에 응답하여:
상기 사용자 뷰 시점과 연관된 순위값을 증가시키고,
상기 순위값이 임계값보다 크고 상기 복수의 이력 뷰 시점의 나머지에 대한 조건을 만족하는지 여부를 결정하고, 그리고
상기 순위값이 상기 임계값보다 크고 상기 조건을 만족한다는 결정에 응답하여, 상기 사용자 뷰 시점을 상기 3차원(3D) 영상와 관련된 적어도 하나의 선호 뷰 시점으로서 선택하는 단계; 및
상기 사용자 뷰 시점이 뷰 시점 데이터 저장장치에 저장되어 있지 않다는 결정에 응답하여, 상기 사용자 시점을 뷰 시점 데이터 저장장치에 추가하고 사용자 뷰 시점과 연관된 순위값을 1로 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
Receiving a request for a frame of a streaming image, the request includes an indication of a user view viewpoint associated with a 33D (3D) image, wherein the user view viewpoint is a plurality of historical views of the 33D (3D) image One of the historical view perspectives, representing a focal point of the user on a portion of the 33D (3D) image;
Determining whether the user view viewpoint is stored in a view viewpoint data storage;
In response to determining that the user view viewpoint is stored in the view viewpoint data storage:
Increase a rank value associated with the user view point of view,
Determine whether the rank value is greater than a threshold and satisfies a condition for the remainder of the plurality of historical view viewpoints, and
In response to determining that the rank value is greater than the threshold and satisfies the condition, selecting the user view viewpoint as at least one preferred view viewpoint associated with the three-dimensional (3D) image; And
In response to determining that the user view viewpoint is not stored in the view viewpoint data storage, adding the user viewpoint to the view viewpoint data storage and setting a rank value associated with the user view viewpoint to one. How to.
제19항에 있어서,
3D영상의 프레임을 2차원(2D) 표현(representation)으로 매핑하는 단계;
상기 적어도 하나의 선호 뷰 시점에 해당하는 상기 프레임의 2D 표현의 제1부분을 제1품질로 인코딩하는 단계; 및
상기 프레임의 2D표현의 제2부분을 제2품질로 인코딩하는 단계를 더 포함하고, 상기 제1품질은 제2품질에 비하여 더 높은 품질인 것을 특징으로 하는 방법.
The method of claim 19,
Mapping a frame of the 3D image to a two-dimensional (2D) representation;
Encoding a first portion of a 2D representation of the frame corresponding to the at least one preferred view viewpoint with a first quality; And
Encoding a second portion of the 2D representation of the frame with a second quality, wherein the first quality is higher quality than the second quality.
KR1020177027231A 2015-05-27 2016-05-27 Method and apparatus for reducing spherical image bandwidth to a user headset KR101969943B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562167261P 2015-05-27 2015-05-27
US62/167,261 2015-05-27
PCT/US2016/034698 WO2016191702A1 (en) 2015-05-27 2016-05-27 Method and apparatus to reduce spherical video bandwidth to user headset

Publications (2)

Publication Number Publication Date
KR20170122791A KR20170122791A (en) 2017-11-06
KR101969943B1 true KR101969943B1 (en) 2019-08-13

Family

ID=56137532

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177027231A KR101969943B1 (en) 2015-05-27 2016-05-27 Method and apparatus for reducing spherical image bandwidth to a user headset

Country Status (5)

Country Link
EP (1) EP3304895A1 (en)
JP (1) JP6672327B2 (en)
KR (1) KR101969943B1 (en)
CN (1) CN107409203A (en)
WO (1) WO2016191702A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11164606B2 (en) * 2017-06-30 2021-11-02 Qualcomm Incorporated Audio-driven viewport selection
US11290758B2 (en) 2017-08-30 2022-03-29 Samsung Electronics Co., Ltd. Method and apparatus of point-cloud streaming
WO2019068310A1 (en) * 2017-10-02 2019-04-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for improved encoding of immersive video
CN109996069B (en) * 2018-01-03 2021-12-10 华为技术有限公司 Video image coding and decoding method and device
EP3515082B1 (en) * 2018-01-19 2020-05-13 Nokia Technologies Oy Server device for streaming video content and client device for receiving and rendering video content
CN109089097A (en) * 2018-08-28 2018-12-25 恒信东方文化股份有限公司 A kind of object of focus choosing method based on VR image procossing
CN110999377A (en) * 2019-11-22 2020-04-10 北京小米移动软件有限公司 Resource switching method, device and storage medium
WO2023090961A1 (en) * 2021-11-22 2023-05-25 주식회사 컬러버스 System and method for providing plurality of pieces of three-dimensional content by using web browser

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297407A1 (en) * 2009-04-06 2012-11-22 International Business Machines Corporation Content recorder multi-angle viewing and playback
US20130278732A1 (en) * 2012-04-24 2013-10-24 Mobitv, Inc. Control of perspective in multi-dimensional media
US20140270692A1 (en) * 2013-03-18 2014-09-18 Nintendo Co., Ltd. Storage medium storing information processing program, information processing device, information processing system, panoramic video display method, and storage medium storing control data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3579526B2 (en) * 1995-10-31 2004-10-20 エヌ・ティ・ティ・コミュニケーションズ株式会社 Method and system for processing access to storage device
JP2004072694A (en) * 2002-08-09 2004-03-04 Sony Corp Information providing system and method, information providing apparatus and method, recording medium, and program
CN101453639B (en) * 2007-11-29 2012-05-30 展讯通信(上海)有限公司 Encoding, decoding method and system for supporting multi-path video stream of ROI region
US8863204B2 (en) * 2010-12-20 2014-10-14 Comcast Cable Communications, Llc Cache management in a video content distribution network
US9106934B2 (en) * 2013-01-29 2015-08-11 Espial Group Inc. Distribution of adaptive bit rate live streaming video via hyper-text transfer protocol
JP2014157459A (en) * 2013-02-15 2014-08-28 Nippon Telegr & Teleph Corp <Ntt> Cache device, content distribution system, and content distribution method
WO2015009676A1 (en) * 2013-07-15 2015-01-22 Sony Corporation Extensions of motion-constrained tile sets sei message for interactivity

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297407A1 (en) * 2009-04-06 2012-11-22 International Business Machines Corporation Content recorder multi-angle viewing and playback
US20130278732A1 (en) * 2012-04-24 2013-10-24 Mobitv, Inc. Control of perspective in multi-dimensional media
US20140270692A1 (en) * 2013-03-18 2014-09-18 Nintendo Co., Ltd. Storage medium storing information processing program, information processing device, information processing system, panoramic video display method, and storage medium storing control data

Also Published As

Publication number Publication date
EP3304895A1 (en) 2018-04-11
WO2016191702A1 (en) 2016-12-01
KR20170122791A (en) 2017-11-06
JP6672327B2 (en) 2020-03-25
JP2018522430A (en) 2018-08-09
CN107409203A (en) 2017-11-28

Similar Documents

Publication Publication Date Title
KR101969943B1 (en) Method and apparatus for reducing spherical image bandwidth to a user headset
US20160353146A1 (en) Method and apparatus to reduce spherical video bandwidth to user headset
CN107667534B (en) Playing spherical video in a limited bandwidth connection
KR102013403B1 (en) Spherical video streaming
US10681377B2 (en) Streaming the visible parts of a spherical video
US9917877B2 (en) Streaming the visible parts of a spherical video
US10277914B2 (en) Measuring spherical image quality metrics based on user field of view
JP7205485B2 (en) Method and streaming server for image processing that optimizes image resolution for VR video and optimizes video streaming bandwidth
US9918094B2 (en) Compressing and representing multi-view video
CN109792562B (en) Content-based stream segmentation of video data
WO2019202207A1 (en) Processing video patches for three-dimensional content
US20170103577A1 (en) Method and apparatus for optimizing video streaming for virtual reality
US10754242B2 (en) Adaptive resolution and projection format in multi-direction video
US10554953B2 (en) Distortion of video for seek in 360 degree video
Chen et al. Optimized viewport‐adaptive 360‐degree video streaming
US20240119660A1 (en) Methods for transmitting and rendering a 3d scene, method for generating patches, and corresponding devices and computer programs
CN114930812B (en) Method and apparatus for decoding 3D video
US10944971B1 (en) Method and apparatus for frame accurate field of view switching for virtual reality
US20230308625A1 (en) Bitstream structure for immersive teleconferencing and telepresence for remote terminals

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant