KR20150006771A - 비디오의 선택된 부분들을 고해상도로 렌더링하는 방법 및 장치 - Google Patents
비디오의 선택된 부분들을 고해상도로 렌더링하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20150006771A KR20150006771A KR20140069132A KR20140069132A KR20150006771A KR 20150006771 A KR20150006771 A KR 20150006771A KR 20140069132 A KR20140069132 A KR 20140069132A KR 20140069132 A KR20140069132 A KR 20140069132A KR 20150006771 A KR20150006771 A KR 20150006771A
- Authority
- KR
- South Korea
- Prior art keywords
- video
- resolution
- tile
- selected portion
- frame
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000009877 rendering Methods 0.000 title claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000003993 interaction Effects 0.000 abstract description 36
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000000386 athletic effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234363—Processing 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 by altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4347—Demultiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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
- H04N21/440263—Processing 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 by altering the spatial resolution, e.g. for displaying on a connected PDA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4728—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6175—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Systems (AREA)
Abstract
본 발명의 다양한 실시 예는 풀 기반 스트리밍에서 디스플레이되는 비디오의 선택된 부분을 높은 해상도로 렌더링하는 방법 및 장치에 관한 것이다. 상기 방법은 제1 해상도로 재생되는 상기 비디오의 상기 선택된 부분을 얻는 단계; 상기 얻은 선택된 부분과 관련된 적어도 하나의 타일을 제2 해상도에서 식별하는 단계; 및 상기 식별한 적어도 하나의 타일을 수신하여 상기 선택된 부분을 제2 해상도로 렌더링하는 단계를 포함할 수 있다. 따라서 본 발명에 따르면, 풀 기반 스트리밍에서 가장 높은 해상도로 멀티미디어 콘텐츠에 대한 사용자 인터렉션을 효율적으로 수행할 수 있도록 한다.
Description
본 발명의 다양한 실시 예는 풀 기반 스트리밍(pull-based streaming)에서 선택된 관심 영역을 고해상도로 표시하는 방법 및 장치에 관한 것이다.
HTTP를 통한 동적 적응형 스트리밍(Dynamic Adapative Streaming HTTP, DASH)의 발전에 따라, 고선명(HD) 비디오를 캡처할 수 있는 카메라의 능력이 증가하고 있다.
4096x2304와 같은 고해상도 비디오는 네트워크 대역폭 요구를 현저히 증가시킨다. 현재, 모든 전자 장치들이 고해상도 비디오를 지원하지 않는다. 전자 장치에서, 사용자는 일반적으로 대역폭 제한 및 디스플레이 해상도 제한으로 인해 낮은 해상도로 비디오를 시청한다. 사용자가 줌(zoom) 동작을 위해 비디오의 일부 부분을 선택할 경우, 줌인(zoom-in)된 부분이 흐리게 나타날 수 있다.
기존의 방법에서는, 사용자가 높은 대역폭 소비의 부담을 감수해야만 그러한 고품질의 줌을 경험할 수 있게 된다. 예컨대, 그러한 비디오는 4096x2304 해상도이다. 현재의 전자 장치는 대부분 1080p 해상도이다. 사용자가 4096x2304 해상도 비디오를 스트리밍하고 있다면, 사용자는 단지 1080p 해상도 만을 수신하여 경험하게 될 것이다. 사용자가 1080p로 렌더링되는 비디오 상에 줌을 수행하면, 비디오 품질이 더욱 저하된다.
다른 기존의 방법에서는, 전자 장치의 디코더가 고해상도로 디코딩된 프레임 버퍼(예컨대, 4096x2304 크기의)를 저장하였다가, 그 고해상도로 디코딩된 버퍼로부터 사용자가 선택한 부분을 잘라내어(크롭; crop) 비디오 품질 저하를 회피한다. 그것은 사용자가 그 비디오의 전체 부분을 보고 싶어 하는지 여부와 상관없이 장치가 고해상도 프레임(본 예에서는, 4096x2304)의 전체를 디코딩할 것을 요구한다. 줌의 경우, 사용자는 단지 선택된 부분만을 보고, 다른 부분들은 비록 디코딩되어도 렌더링되지 않는다. 그 결과, 장치의 계산 자원 및 CPU 전력의 낭비가 발생한다.
다른 기존의 방법에서는, 사용자가 관심 있는 부분을 선택할 경우, 서버가 동적으로 타일(tile)들을 생성하여 재인코딩(re-encode)한다. 그것은 서버의 CPU 사용을 증가시킨다. 사용자의 비디오의 일부 부분을 선택할 때마다, 비디오를 렌더링하는 장치가 선택된 부분과 관련된 타일을 제공할 것을 서버에 요청하게 된다. 그것은 서버가 타일들을 생성하고 관련 타일을 재인코딩하여 렌더링 장치에 전달하는 것을 필요로 하기 때문에 서버에서의 계산을 증가시킨다.
전술한 기존의 방법에 따른 장치는 비디오의 선택된 부분을 렌더링하고 그 선택된 부분을 더 좋은 해상도로 표시할 수 있다. 그러나, 해상도, 증가하는 대역폭 소비, 증가하는 계산 부하, 증가하는 저장 요구 및 사용자가 선택한 비디오의 부분을 끊김 없이 다른 디스플레이 장치에 공유 및 전달에 있어 문제점이 존재할 수 있다.
이에 따라, 본 발명의 다양한 실시예들은 풀 기반 스트리밍(pull-based streaming)에서 가장 높은 해상도로 멀티미디어 콘텐츠에 대한 사용자 인터랙션(user interaction)을 가능하게 하는 방법 및 장치를 제공한다.
또한, 본 발명의 다양한 실시 예들은 사용자가 대역폭을 덜 써서 멀티미디어 콘텐츠를 줌 앤 팬(zoom and pan)할 수 있게 하는 방법 및 장치를 제공한다.
다양한 실시 예에 따른 장치에서 디스플레이되는 비디오의 선택된 부분을 렌더링하는 방법으로서, 제1 해상도로 재생되는 비디오의 선택된 부분을 얻는 단계; 상기 얻은 선택된 부분과 관련된 적어도 하나의 타일(tile)을 제2 해상도에서 식별하는 단계; 상기 식별한 적어도 하나의 타일을 수신하여 선택된 부분을 제2 해상도로 렌더링하는 단계를 포함할 수 있다.
다양한 실시 예에 따른 비디오의 적어도 하나의 타일을 인코딩하는 방법으로서, 비디오의 적어도 하나의 프레임을 적어도 하나의 타일로 분할하는 단계; 적어도 하나의 타일을 인코딩하고 인코딩된 타일에 레퍼런스(reference)를 할당하는 단계를 포함할 수 있다.
다양한 실시 예에 따른 비디오의 선택된 부분을 렌더링하는 장치로서, 적어도 하나의 프로세서 및 상기 프로세서 내의 컴퓨터 프로그램 코드를 갖는 적어도 하나의 메모리를 포함하고, 상기 프로세서는, 제1 해상도로 재생되는 상기 비디오의 상기 선택된 부분을 얻게 하고, 상기 얻은 선택된 부분과 관련된 적어도 하나의 타일을 제2 해상도에서 식별하게 하며, 상기 식별한 적어도 하나의 타일을 수신하여 선택된 부분을 제2 해상도로 렌더링할 수 있다.
본 발명의 실시 예들에 따른 비디오의 선택된 부분들을 고해상도로 렌더링하는 방법 및 장치는, 풀 기반 스트리밍에서 가장 높은 해상도로 멀티미디어 콘텐츠에 대한 사용자 인터렉션을 효율적으로 수행할 수 있도록 한다.
도 1은 본 발명에서 개시하는 실시예들에 따른 시스템의 하이 레벨 구조를 나타낸 도면이다.
도 2는 본 발명에서 개시하는 실시예들에 따른, 비디오 인코딩 과정에서 타일 인코딩들을 생성하는데 사용되는 컴포넌트들을 나타낸 블록도이다.
도 3A, 도 3B, 및 도 3C는 본 발명에서 개시하는 실시예들에 따른, 타일들로 분할된 비디오 프레임의 예시들을 각각 나타낸 도면들이다.
도 4는 본 발명에서 개시하는 실시예들에 따른, 상이한 해상도 레벨에서의 디스플레이 좌표들의 스케일링의 예시를 나타낸 도면이다.
도 5는 본 발명에서 개시하는 실시예들에 따른, 비디오를 인코딩하는 방법을 나타낸 흐름도이다.
도 6은 본 발명에서 개시하는 실시예들에 따른, 선택된 부분을 제2 해상도로 렌더링하는 방법을 나타낸 흐름도이다.
도 7은 본 발명에서 개시하는 실시예들에 따른, 비디오와의 사용자 인터랙션을 식별하는 방법을 나타낸 흐름도이다.
도 8은 본 발명에서 개시하는 실시예들에 따른, 장치에서 비디오와의 줌인(zoom-in) 인터랙션을 처리하는 방법을 나타낸 흐름도이다.
도 9는 본 발명에서 개시하는 실시예들에 따른, 장치에서 비디오와의 줌아웃(zoom-out) 인터랙션을 처리하는 방법을 나타낸 흐름도이다.
도 10은 본 발명에서 개시하는 실시예들에 따른, 장치에서 비디오와의 팬(pan) 인터랙션을 처리하는 방법을 나타낸 흐름도이다.
도 11은 본 발명에서 개시하는 실시예들에 따른, 다수의 개별 카메라들로부터의 멀티뷰 비디오(multiview video)의 일례를 나타낸 도면이다.
도 12는 본 발명에서 개시하는 실시예들에 따른, 장치에서 카메라 뷰(camera view)들의 변화를 처리하는 방법을 나타낸 흐름도이다.
도 13은 본 발명에서 개시하는 실시예들에 따른, 비디오의 선택된 부분을 렌더링하는 컴퓨팅 환경을 나타낸 도면이다.
도 2는 본 발명에서 개시하는 실시예들에 따른, 비디오 인코딩 과정에서 타일 인코딩들을 생성하는데 사용되는 컴포넌트들을 나타낸 블록도이다.
도 3A, 도 3B, 및 도 3C는 본 발명에서 개시하는 실시예들에 따른, 타일들로 분할된 비디오 프레임의 예시들을 각각 나타낸 도면들이다.
도 4는 본 발명에서 개시하는 실시예들에 따른, 상이한 해상도 레벨에서의 디스플레이 좌표들의 스케일링의 예시를 나타낸 도면이다.
도 5는 본 발명에서 개시하는 실시예들에 따른, 비디오를 인코딩하는 방법을 나타낸 흐름도이다.
도 6은 본 발명에서 개시하는 실시예들에 따른, 선택된 부분을 제2 해상도로 렌더링하는 방법을 나타낸 흐름도이다.
도 7은 본 발명에서 개시하는 실시예들에 따른, 비디오와의 사용자 인터랙션을 식별하는 방법을 나타낸 흐름도이다.
도 8은 본 발명에서 개시하는 실시예들에 따른, 장치에서 비디오와의 줌인(zoom-in) 인터랙션을 처리하는 방법을 나타낸 흐름도이다.
도 9는 본 발명에서 개시하는 실시예들에 따른, 장치에서 비디오와의 줌아웃(zoom-out) 인터랙션을 처리하는 방법을 나타낸 흐름도이다.
도 10은 본 발명에서 개시하는 실시예들에 따른, 장치에서 비디오와의 팬(pan) 인터랙션을 처리하는 방법을 나타낸 흐름도이다.
도 11은 본 발명에서 개시하는 실시예들에 따른, 다수의 개별 카메라들로부터의 멀티뷰 비디오(multiview video)의 일례를 나타낸 도면이다.
도 12는 본 발명에서 개시하는 실시예들에 따른, 장치에서 카메라 뷰(camera view)들의 변화를 처리하는 방법을 나타낸 흐름도이다.
도 13은 본 발명에서 개시하는 실시예들에 따른, 비디오의 선택된 부분을 렌더링하는 컴퓨팅 환경을 나타낸 도면이다.
본 발명의 실시예들과 그 다양한 특징들 및 유리한 명세들을 첨부 도면들에 도시되고 이후의 설명에서 상술하는 비한정적 실시예들을 참조하여 더욱 충분히 설명하기로 한다. 불필요하게 본 발명의 실시예들을 알기 어렵게 만들지 않도록 공지의 구성 요소들 및 처리 기법들의 설명을 생략하기로 한다. 본 발명에서 사용하는 예들은 단지 본 발명의 실시예들을 실시할 수 있는 방식들의 이해를 쉽게 하고 또한 당업자가 본 발명의 실시예들을 실시할 수 있게 하려고 의도된 것에 지나지 않는다. 따라서 그러한 예들은 본 발명의 실시예들을 한정하는 것으로 해석되어서는 안 된다.
본 발명을 상세히 설명하기에 앞서, 본 발명에서 사용하는 중요한 용어들 및 개념들에 대한 정의를 내리는 것이 유용할 것이다. 달리 정의하지 않는 한, 본 발명에서 사용하는 모든 기술 용어들과 과학 용어들은 당해 기술 분야의 통상의 지식을 가진 자가 일반적으로 이해하는 바와 동일한 의미를 지닌다.
플레이어: 플레이어는 전자 장치에서 수신된 비디오 파일을 재생하는데 사용된다. 플레이어는 독립된 플레이어 또는 웹 브라우저의 플러그인 케이스(plug in case)일 수 있다. 플레이어는 수신한 파일을 디코딩하여 사용자에게 렌더링할 수 있다.
비디오의 부분: 비디오의 부분이란 용어는 비디오에 존재하는 사용자의 어떤 임의의 관심 영역/섹션/물체를 지칭한다. 사용자는 비디오의 부분을 선택하면서 동시에 그와 인터랙션(interaction)을 할 수 있다. 비디오의 부분에 대한 사용자 인터랙션이 사용자에 의해 선택된 비디오 부분을 지정한다.
본 명세서의 전체에 걸쳐, 장치와 전자 장치란 용어는 서로 바꾸어 사용할 수 있게 쓰이고 있다.
비디오의 부분, 선택된 부분, 및 관심 영역(region of interest; ROI)이란 용어들도 서로 바꾸어 사용할 수 있게 쓰이고 있다.
레벨 1, 해상도 레벨 1, 제1 해상도, 및 전환 레벨(transition level) 1이란 용어들도 서로 바꾸어 사용할 수 있게 쓰이고 있다.
레벨 2, 해상도 레벨 2, 제2 해상도, 및 전환 레벨 2란 용어들도 서로 바꾸어 사용할 수 있게 쓰이고 있다.
디스크립터 파일(descriptor file), 파일, 및 미디어 디스크립터 파일(media descriptor file; MDF)이란 용어들도 서로 바꾸어 사용할 수 있게 쓰이고 있다.
일 실시예에 있어서, 프레임의 각각의 레벨은 비디오의 비디오 프레임의 해상도에 해당한다.
타깃 장치란 용어는 다른 전자 장치로부터 공유되는 파일을 수신할 수 있는 임의의 전자 장치를 지칭한다.
전자 장치의 예들은 그에 한정되는 것은 아니지만 이동 전화, 태블릿, 랩톱, 디스플레이 장치, 개인 디지털 보조 장치(PDA) 등을 포함할 수 있다.
일 실시예에 있어서, 사용자는 줌, 팬, 틸트(tilt) 등에 의해 비디오의 선택된 부분과 인터랙션을 할 수 있다.
풀 기반 스트리밍(pull-based streaming): 서버가 타일 정보를 포함하는 파일을 미디어 플레이어에 전송한다. 사용자가 선택된 부분에서 인터랙션을 할 때마다, 그 파일을 사용하는 미디어 플레이어가 선택된 부분에 해당하는 타일을 식별하여 그 타일을 얻을 것을 서버에 요청한다.
본 발명의 실시예들은 전자 장치에서 디스플레이되는 비디오의 선택된 부분을 렌더링하는 방법 및 장치를 제공한다. 사용자가 제1 해상도의 비디오의 일부 부분을 선택할 경우, 전자 장치는 제1 해상도로 재생되는 비디오와 관련된 디스플레이 좌표들을 식별한다. 비디오와 관련된 식별된 디스플레이 좌표들은 비디오 프레임의 제2 해상도로 스케일링(scaling)된다. 장치는 디스플레이 좌표들이 비디오의 제2 해상도에 따라 스케일링되고 나면 선택된 부분과 관련된 적어도 하나의 타일을 식별하도록 구성된다. 장치는 선택된 부분과 관련된 타일을 식별한 후에 비디오의 선택된 부분을 수신하여 그 선택된 부분을 전자 장치상에 렌더링한다.
이제, 첨부 도면들, 구체적으로 유사한 도면 부호들이 도면들의 전체에 걸쳐 상응하는 특징들을 일관적으로 지시하고 있는 도 1 내지 도 13을 참조하면, 바람직한 실시예들이 도시되어 있다.
도 1은 본 발명에서 개시하는 실시예들에 따른 시스템의 하이 레벨 구조(high level architecture)를 도시하고 있다. 본 도면은 HTTP 서버(101), 통신 네트워크(102), 및 장치(103)를 나타내고 있다. HTTP 서버(101)는 로우 비디오(raw video)를 수신하고, 자동 타일링된 비디오 스트림 생성기(automatic tiled video stram generator)를 사용하여 비디오 인코딩을 수행하도록 구성된다. 인코딩된 비디오는 디스크립터 파일과 함께 장치(103)로 전송된다. 후술하는 도 2는 로우 비디오와 디스크립터 파일로 전송하는 정보를 인코딩하는 과정을 설명할 것이다. 인코딩된 비디오는 HTTP를 통한 동적 적응형 스트리밍(dynamic adaptive streaming over HTTP) 프레임웍 기반의 HTTP를 사용하여 장치(103)에서 스트리밍될 수 있다. 장치(103)에 탑재된 플레이어는 인코딩된 비디오를 수신하면 장치(103)가 지원하는 해상도로 비디오를 재생한다. 인코딩된 비디오는 사용자가 선택한 부분의 디스플레이 좌표들을 식별하기 위한 섬네일 비디오(thumbnail video)를 포함하고 있다. 사용자는 제2 해상도로 렌더링할 비디오의 부분을 선택할 수 있다. 디스플레이 좌표들은 비디오의 선택된 부분에 대응하는 장치(103)에 의해 식별된다. 비디오의 제1 해상도에서 식별된 디스플레이 좌표들은 비디오의 제2 해상도에서 비디오 좌표들로 스케일링된다. 제2 해상도에서 식별된 비디오 좌표들을 기반으로 하여, 관심 부분과 관련된 하나 이상의 타일을 식별한다. 일 실시예에 있어서, HTTP 서버(101)는 타일을 생성하여 비디오에 인코딩하도록 구성될 수 있다. 일 실시예에 있어서, HTTP 서버(101)는 비디오의 하나 이상의 프레임들을 하나 이상의 타일들로 분할(segment)하도록 구성될 수 있다. 그러한 하나 이상의 프레임들은 하나 이상의 해상도들과 관련된다. 또한, HTTP 서버(101)는 하나 이상의 타일들을 인코딩하여 그 하나 이상의 인코딩된 타일들에 레퍼런스(reference)를 할당하도록 구성될 수 있다. 일 실시예에 있어서, 레퍼런스는 URL(Uniform Resource Locator)일 수 있다. 그러한 레퍼런스는 선택된 부분과 관련된 타일을 페치(fetch)하는데 사용될 수 있다. 본 방법은 공간-각도-시간 관심 영역(spatio-angular-temporal region-of-interest)을 지원한다. 본 방법은 비디오의 선택된 부분의 디스플레이 좌표들을 비디오 좌표들로 변경한다.
도 2는 본 발명에서 개시하는 실시예들에 따른, 비디오 인코딩 과정에서 타일 인코딩들을 생성하는데 사용되는 컴포넌트들을 포함하는 블록도를 도시하고 있다. HTTP 서버(101)가 비디오 스트림을 다수의 타일 인코딩들로 트랜스코딩(transcoding)하는데 자동 타일링된 비디오 스트림 생성기(automatic tiled video stream generator)가 사용된다. 고해상도 또는 초고해상도의 입력 비디오가 인코딩에 사용된다. 그러한 입력 비디오는 로우 비디오 또는 인코딩된 비디오일 수 있다. 역다중화기(201)는 비디오를 짧은 타임 세그먼트들의 다수의 비디오 프레임들로 분할하도록 구성된다. 스케일러(scaler)(202)는 각각의 비디오 프레임에 대한 다중 해상도를 생성하도록 구성될 수 있다. 각각의 비디오 프레임에 대해 생성된 다중 해상도 표현이 도 2에 도시되어 있다. 스케일러(202)는 입력 비디오를 그 입력 비디오보다 작은 "n"개의 레벨들로 다운(down) 스케일링하도록 구성될 수 있다. 예컨대, 4096x2304의 해상도를 갖는 입력 비디오는 1920x1080, 1280x720, 640x360, 및 160x120과 같은 4개의 상이한 해상도 레벨들로 다운 스케일링될 수 있다. 비디오로부터 세그멘테이션된 각각의 프레임이 상이한 해상도 레벨들로 다운 스케일링된다. 도 2에 도시된 레벨 1, 레벨 2, 및 레벨 n은 해상도 레벨 1, 해상도 레벨 2, 및 해상도 레벨 n(가장 높은 해상도 레벨)에 각각 해당한다. 해상도 레벨 n은 비디오 프레임의 가장 높은 해상도에 해당하고, 해상도 1은 비디오의 가장 낮은 해상도에 해당한다. 비디오 프레임의 가장 높은 해상도 레벨과 가장 낮은 해상도 레벨은 구성 파라미터로서 스케일러(202)에 고려될 수 있다. 스케일러(202)는 가장 낮은/가장 작은 해상도(예컨대, 160x120)에 해당하는 섬네일 해상도를 생성하도록 구성될 수 있다. 일 실시예에 있어서, 섬네일 해상도는 입력 비디오로부터 분리된 오디오 스트림과 다중화기(203)를 사용하여 다중화되어 섬네일 스트림(204)을 형성할 수 있다. 섬네일 스트림(204)은 비디오가 장치(103)상에 재생될 때에 섬네일 비디오로서 나타난다.
타일러(tiler)들(206a, 206b, 206c)은 각각의 프레임을 타일들의 격자로 분해하도록 구성될 수 있다. 타일들의 구성과 관련된 규칙(205)이 타일러(206a), 타일러(206b), 및 타일러(206c)에 입력으로 주어진다. 도 2에 도시된 바와 같이, 각각의 타일러는 상이한 레벨들의 해상도와 관련되어 있다. 휴리스틱 기법에 의해(heuristically) 생성된 규칙과 계산에 의해 생성된 규칙이 비디오 프레임들의 다중 해상도 표현에서의 타일 크기 및 타일 좌표를 결정하는데 사용된다. 도면들에서의 레벨 1, 레벨 2, 및 레벨 n은 비디오 프레임의 다중 해상도를 나타낸다.
각각의 생성된 타일은 고정된 크기 또는 가변 크기의 것일 수 있다. 일 실시예에 있어서, 생성된 타일들은 임의의 크기의 것일 수 있고, 겹쳐질 수 있으며, 비디오 프레임에서 순차적으로 배열될 수 있다. 예컨대, 비디오의 가장 낮은 해상도가 640x360의 해상도이면, 각각의 타일은 640x360 크기의 것일 수 있다. 비디오 프레임의 제1 해상도 레벨은 640x360 크기의 단 하나의 타일만을 가질 수 있다. 비디오 프레임의 제2 해상도 레벨은 (0, 0), (0, 640), (360, 0), 및 (360, 640) 좌표들에서 640x360의 4개의 타일들을 가질 수 있다. 각각의 타일은 비디오 스트림으로서 인코딩되고, 디스크립터 파일이 각각의 타일에 대한 타일러에 의해 생성된다. 타일들을 생성하는 그러한 과정은 각각의 카메라로부터의 비디오 스트림들에 대해 반복될 수 있다(각각의 카메라는 상이한 입력 비디오를 제공할 수 있음). 도 2는 비디오 프레임의 각각의 해상도에 대해 생성된 타일들을 나타내고 있다. 비디오 프레임의 제1 해상도 레벨에서는, 전체 프레임에 대해 단 하나의 타일만이 존재한다. 제2 해상도 레벨에서는, 4개의 타일들이 존재하고, 해상도 레벨 "n"에서는, 12개의 타일들이 존재한다.
일 실시예에 있어서, 디스크립터 파일은 해상도 레벨, 비디오 프레임의 세그먼트 번호, 입력 비디오의 카메라 뷰, 타일 세그먼트들의 파일명, 및 각각의 타일과 관련된 레퍼런스와 관련된 정보를 포함한다. 자동 타일링된 비디오 스트림 생성기에 의해 생성된 각각의 타일은 비디오의 해상도 레벨, 비디오를 캡처한 카메라 앵글 뷰(camera angle view), 세그먼트 번호 등과 관련된다. 각각의 타일은 레퍼런스(예컨대, URL)와 관련된다. 각각의 타일에 대해 생성된 디스크립터 파일들의 결합은 곧 전체 비디오에 대한 단일의 디스크립터 파일을 생성하는 것이다. 그러한 디스크립터 파일은 미디어 디스크립터 파일(MDF)일 수 있다. 미디어 디스크립터 파일은 각각의 해상도 레벨에서의 타일들의 리스트 및 관련 비디오 스트립에 대한 해당 레퍼런스를 포함한다.
비디오와 관련된 MDF 파일은 비디오 파일의 타입, 비디오의 카메라 뷰, 각각의 프레임의 세그먼트 번호, 비디오와 관련된 레퍼런스, 및 장치(103)에 전송된 비디오의 해상도와 관련된 정보, 전환 정보(transitional information) 등을 포함할 수 있다. 전환 정보는 각각의 전환 레벨(해상도 레벨)에 대한 프레임 폭과 프레임 높이, 각각의 전환 레벨과 관련된 타일 리스트, 및 각각의 타일과 관련된 레퍼런스를 포함한다. MDF에는 각각의 타일의 좌표도 또한 존재한다.
일 실시예에 있어서, 인코딩된 타일과 관련된 MDF 파일은 HTTP 서버(101)에서 암호화된다.
일 실시예에 있어서, MDF 파일은 멀티뷰 카메라 앵글(multi-view camera angle)을 포함한다.
일 실시예에 있어서, 고해상도(제2 해상도)로부터의 타일은 저해상도(제1 해상도)로부터의 타일보다 큰 크기를 갖는다.
일 실시예에 있어서, 프레임의 고해상도(제2 해상도) 레벨로부터의 타일은 저해상도(제1 해상도)의 크기와 동일한 크기이다.
비디오와 관련 디스크립터 파일이 장치(103)에 수신되는 예를 살펴보기로 한다. 장치(103)의 플레이어는 비디오를 디코딩하고, 비디오 스트림과 섬네일 스트림으로부터의 오디오를 렌더링하도록 구성될 수 있다. 사용자가 스트리밍된 비디오를 플레이어를 사용하여 시청하면서 제1 해상도로 스트리밍되는 비디오의 일부 부분을 선택하는 경우, 전자 장치는 제1 해상도로 재생되는 비디오와 관련된 디스플레이 좌표들을 식별하도록 구성될 수 있다. 제1 해상도로 스트리밍되는 비디오와 관련된 식별한 디스플레이 좌표들은 비디오의 비디오 프레임의 제2 해상도로 스케일링된다. 디스플레이 좌표들이 비디오의 제2 해상도에 따라 스케일링되고 나면, 장치(103)는 사용자가 선택한 부분의 비디오의 프레임을 식별하고, 선택된 부분과 관련된 하나 이상의 타일들을 제2 해상도에서 식별하도록 구성될 수 있다. 선택된 부분과 관련된 하나 이상의 타일들을 식별한 후, 장치(103)는 식별된 타일과 관련된 레퍼런스를 타일의 디스크립터 파일로부터 식별하도록 구성될 수 있다. 그러한 레퍼런스는 제2 해상도에서 타일과 관련된 비디오 스트림으로의 링크를 제공한다. 일 실시예에 있어서, 장치(103)는 식별된 하나 이상의 타일들과 관련된 비디오에 대해 하나 이상의 URL들을 HTTP 서버(101)에 요청하도록 구성될 수 있다. 장치(103)가 하나 이상의 타일들을 수신하고 나면, 장치(103)는 그 하나 이상의 타일들과 관련된 비디오 스트림을 렌더링한다. 이를 통하여, 사용자는 비디오의 선택된 부분을 더 높은 해상도 및 더 나은 선명도로 볼 수 있다.
일 실시예에 있어서, 장치(103)는 프레임 버퍼에 있는 비디오의 이후의 프레임(future frame)들에서 선택된 부분과 관련된 이후의 타일(future tile)들을 프리페치(pre-fetch)하도록 구성될 수 있다. 객체 추적 알고리즘이 비디오 프레임의 선택된 부분을 섬네일 스트림으로 옮기도록 구성될 수 있다. 장치(103)는 섬네일 스트림의 선택된 부분에서의 객체의 이동을 추적하여 섬네일 스트림에서의 객체의 이후의 위치들을 식별하도록 구성될 수 있다. 장치(103)는 객체의 식별된 이후의 위치들을 비디오의 현재의 해상도로 이동시킨다. 장치(103)는 비디오의 선택된 부분과 관련된 이후의 타일들을 프리페치하도록 구성될 수 있다. 사용자가 비디오의 이후의 프레임들에서 해당 부분을 수동으로 선택할 필요가 없다.
도 3A, 도 3B, 및 도 3C는 본 발명에서 개시하는 실시예들에 따른, 타일들로 분할된 비디오 프레임의 예시들을 각각 도시하고 있다. 도 3A에서는, 비디오 프레임이 8개의 타일들로 분할되어 있다. 번호 6의 타일이 나머지보다 큰 크기를 갖고 있다.
일 실시예에 있어서, 타일의 크기는 비디오 프레임에 있는 객체를 기반으로 할 수 있다. 예컨대, 타일 6은 사용자에게 관심의 대상일 수 있는 비디오의 부분을 포함할 수 있다. 도 3B는 동일한 크기의 6개의 타일들로 분할된 비디오 프레임을 나타내고 있다. 도 3C는 5개의 타일들로 분할된 비디오 프레임을 나타내고 있는데, 각각의 타일의 크기가 상이하다. 타일 5는 모든 타일들이 공유하는 비디오 프레임의 영역에 걸쳐 있는 중첩 타일이다.
일 실시예에 있어서, 사용자가 비디오의 일부분을 선택하는 경우, 선택된 부분과 관련된 타일이 사용자에게 디스플레이된다.
일 실시예에 있어서, 타일과 관련된 레퍼런스가 임의의 다른 비디오에 삽입될 수 있다. 예컨대, 비디오에서 자주 선택되는 부분을 기반으로 하여, 선택된 부분과 관련된 타일이 임의의 다른 비디오에 광고로 포함될 수 있다.
일 실시예에 있어서, 장치(103)는 타일과 관련된 디스크립터 파일 및 타일의 레퍼런스를 임의의 다른 타깃 장치와 공유한다.
타일들의 공유는 사용자들이 비디오의 선택된 부분만을 공유할 수 있게끔 한다. 과목 내용을 토론하고 있는 1시간 길이의 교실 비디오의 예를 살펴보기로 한다. 그러한 비디오는 과목 내용을 기술하는 화이트보드에 적힌 수학 계산을 갖고 있을 수 있다. 사용자가 선택한 부분이 화이트보드에 나타난 수학 계산을 포함할 수 있다. 사용자가 선택하여 줌을 수행하면, 사용자는 그 수학 계산을 고해상도로 볼 수 있다. 고해상도에서 화이트보드의 수학 계산 영역과 관련된 타일은 사용자에 의해 공유될 수 있다. 타일들의 공유는 콘텐츠 제공자가 비디오의 핫 영역들(비디오의 선택, 표시, 공유하는 부분)을 식별하는데 도움을 줄 수 있다. 예컨대, 자주 액세스되는 타일들은 사용자들이 특정의 타일과 관련된 비디오의 특정의 부분에 흥미를 보이고 있다는 것을 나타낸다.
일 실시예에 있어서, 콘텐츠의 동적 삽입(dynamic insertion)을 위해 동적 레퍼런스(dynamic reference)들이 생성될 수 있다. 예컨대, 광고들이 타일로서 인코딩되어 전자 장치에서 비디오가 스트리밍될 때에 비디오에 게재될 수 있다. 광고는 사용자 선호도 및 광고의 인기를 기반으로 하여 동적으로 변경될 수 있다. 비디오 프레임에서의 광고의 위치가 또한 서버(101)에 의해 제어될 수 있다.
도 4는 본 발명에서 개시하는 실시예들에 따른, 상이한 해상도 레벨에서의 디스플레이 좌표들의 스케일링의 예시를 도시하고 있다. 사용자는 비디오의 일 부분을 선택하면서 비디오의 부분과 인터랙션을 할 수 있다. 사용자는 비디오의 일 부분을 줌 앤 팬(zoom and pan)할 수 있다. 장치(103)는 사용자 인터랙션을 검출하여 사용자 인터랙션 중에 선택된 영역의 디스플레이 좌표를 식별하도록 구성될 수 있다.
일 실시예에 있어서, 사용자는 비디오에서 관심 영역을 선택한 후에, 비디오와 인터랙션(줌/팬/틸트)을 할 수 있다.
처음에, 사용자는 제1 해상도(가장 낮은 해상도)로 비디오를 본다. 제1 해상도에서의 "X" 위치가 401에 표시되어 있다. 사용자가 줌인하기 위한 "X" 영역을 선택한다. 그러한 "X"는 비디오 해상도 공간에서 동일하다. 사용자가 제2 해상도(다음으로 높은 해상도 레벨)에서 "X" 주위의 영역을 줌인한다. 제2 해상도 레벨에서의 "X" 위치가 402로서 표시되어 있다. 제2 해상도에서의 점선 사각형의 크기는 제1 해상도 프레임과 동일하다. 이후, 사용자가 제2 해상도에서 "X" 위치로부터 "Y" 위치로 다시 줌인을 한다. 그러한 지점 "Y"는 디스플레이 좌표 공간에서의 디스플레이 프레임 위치에 대해 상대적이다. 비디오 좌표 공간에서, "Y"는 "X"로부터 오프셋(offset)을 두고 있다. 따라서 비디오 좌표 공간에서 줌인할 영역이 "X+Y"의 오프셋을 두고 있게 된다. 장치(103)는 좌표 공간 이동(coordinate space translation)을 수행하여 비디오 공간의 어느 영역을 페치하는 것이 필요한지 식별하도록 구성될 수 있다. 또한, 다음 제2 해상도 레벨에서의 "X" 위치로부터 "Y" 위치로의 사용자 줌인이 403과 같이 표시되어 있다. 403에서의 "Y" 주의의 사각형은 다음 제2 해상도에서의 "Y" 위치를 식별한다.
도 5는 본 발명에서 개시하는 실시예들에 따른, 비디오를 인코딩하는 방법을 나타낸 흐름도를 도시하고 있다. 장치(103)은 501 단계에서, 각각의 프레임에 대한 다중 해상도를 생성할 수 있다. 각각의 비디오 프레임이 상이한 해상도 레벨들로 표현된다. 프레임을 다중 해상도로 표현하는 것은 사용자들이 관심 영역(ROI; region-of-interest)을 상이한 해상도 레벨들로 줌인할 수 있도록 한다. 장치(103)은 502 단계에서, 비디오의 하나 이상의 프레임들을 하나 이상의 타일들로 분할할 수 있다. HTTP 서버(101)에 있는 타일러는 비디오 프레임에 하나 이상의 타일들을 생성하도록 구성될 수 있고, 각각의 해상도에 대응하는 프레임은 상이한 타일들을 포함한다. 장치(103)은 503 단계에서, 하나 이상의 타일들을 하나 이상의 레퍼런스들로 인코딩할 수 있다. 일 실시예에 있어서, 자동 타일링된 비디오 스트림 생성기에 의해 생성된 각각의 타일은 하나의 레퍼런스와 관련된다. 레퍼런스와 관련된 하나 이상의 타일들과 관련되어 있는 하나 이상의 레퍼런스들은 디스크립터 파일로 장치(103)에 전송된다. 상술한 도 5에서의 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 5에 올려진 일부 동작들은 생략될 수도 있다.
도 6은 본 발명에서 개시하는 실시예들에 따른, 선택된 부분을 제2 해상도로 렌더링하는 방법을 나타낸 흐름도를 도시하고 있다. 비디오 및 관련 디스크립터 파일을 수신하면, 장치(103)는 플레이어를 사용하여 비디오를 렌더링하도록 구성될 수 있다. 장치(103)은 601 단계에서, 제1 해상도로 재생되는 비디오에서 선택된 부분을 얻을 수 있다.. 비디오의 선택된 부분은 비디오와의 사용자 인터랙션을 기반으로 하여 식별된다. 사용자 인터랙션은 줌, 팬, 및 뷰 앵글(view angle)의 변경을 포함할 수 있다. 뷰 앵글의 변경은 사용자 얼굴과 관련된 틸트(tilt)의 검출을 기반으로 하여 결정될 수 있다. 장치(103)은 602 단계에서, 비디오의 프레임에서 선택된 부분과 관련된 디스플레이 좌표들을 식별할 수 있다. 장치(103)에 디스플레이된 비디오에서의 사용자 인터랙션은 디스플레이 좌표들과 관련된다. 장치(103)는 비디오 프레임의 제1 해상도에 대응하는 디스플레이 좌표들을 식별하도록 구성될 수 있다. 장치(103)은 603 단계에서, 식별된 디스플레이 좌표들을 프레임의 제2 해상도로 스케일링할 수 있다. 장치(103)는 식별된 디스플레이 좌표들을 비디오 프레임의 제2 해상도에서의 디스플레이 좌표들로 이동시키도록 구성될 수 있다. 비디오의 선택된 부분은 비디오 프레임의 상이한 해상도들에서 상이한 위치들에 있을 수 있다. 장치(103)은 604 단계에서, 얻은 선택된 부분과 관련된 하나 이상의 타일들을 제2 해상도에서 식별하는 단계를 포함한다. 장치(103)는 선택된 부분과 관련된 하나 이상의 타일들을 식별하도록 구성될 수 있다. 비디오 프레임의 각각의 해상도는 상이한 타일 구성을 갖는다. 장치(103)는 선택된 부분에 대응하는 하나 이상의 타일들을 제2 해상도에서 식별하도록 구성될 수 있다. 비디오 프레임의 각각의 해상도는 다른 타일 구성을 가진다. 장치(103)은 제2 해상도에서 선택된 부분과 관련된 하나 이상의 타일을 식별하기 위해 구성될 수 있다. 각각의 타일은 레퍼런스와 관련된다. 일 실시예에 있어서, 레퍼런스는 URL 또는 임의의 다른 선택된 부분과 관련된 타일을 식별하는 식별자일 수 있다. 장치(103)는 식별된 타일과 관련된 레퍼런스를 디스크립터 파일로부터 결정하도록 구성될 수 있다. 선택된 타일의 비디오 스트림을 포함하는 레퍼런스는 HTTP 서버(101)에 존재할 수 있다. 장치(103)은 605 단계에서, 하나 이상의 식별된 타일들을 수신하여 선택된 부분을 제2 해상도로 렌더링하는 단계를 포함한다. 플레이어는 타일(선택된 부분과 관련된)과 관련된 레퍼런스(비디오 스트림)를 장치(103)에서 스트리밍한다. 장치(103)는 디스크립터 파일로부터 선택된 부분과 관련된 타일을 식별하도록 구성될 수 있고, 장치(103)는 서버(101)로부터 찾아서 가져오려는 적절한 타일을 포함하는 요청을 보내도록 구성될 수 있다. 상술한 도 6에서의 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 6에 올려진 일부 동작들은 생략될 수도 있다.
도 7은 본 발명에서 개시하는 실시예들에 따른, 비디오와의 사용자 인터랙션을 식별하는 방법을 나타낸 흐름도를 도시하고 있다.
비디오 및 디스크립터 파일을 수신하면, 장치(103)는 플레이어를 사용하여 비디오를 렌더링하도록 구성될 수 있다. 장치(103)는 701 단계에서, 사용자로부터 선택된 부분을 얻을 수 있다. 사용자는 비디오의 디스플레이 상에서 줌 또는 팬을 수행하여 인터랙션을 할 수 있다. 선택된 부분은 장치(103)와의 사용자 인터랙션을 기반으로 하여 식별될 수 있다. 일 실시예에 있어서, 사용자 틸트(user tilt)가 사용자에 의해 요청된 카메라 앵글과 관련될 수 있다. 장치(103)는 702 단계에서, 얻은 선택된 부분과 관련된 제1 해상도에서의 디스플레이 좌표들을 제2 해상도에서의 비디오 좌표들로 이동시킬 수 있다. 장치(103)은 703 단계에서, 사용자 인터랙션이 드래그(drag)인지 여부를 확인하는 단계를 포함한다. 장치(103)는 비디오를 보는 중의 디스플레이 상에서의 이동이 드래그인지 식별하도록 구성될 수 있다. 사용자 인터랙션이 드래그로 식별되면, 장치(103)는 704 단계에서,팬 요청(pan request)을 처리하도록 구성될 수 있다. 705 단계에서, 사용자 인터랙션이 드래그로 식별되지 않으면, 장치(103)는 사용자 인터랙션이 줌인인지 여부를 확인하도록 구성될 수 있다. 사용자 인터랙션이 줌인으로 식별되면, 장치(103)는 706 단계에서, 줌인 요청을 처리하도록 구성될 수 있다. 사용자 인터랙션이 줌인으로 식별되지 않으면, 장치(103)는 707 단계에서, 사용자 인터랙션이 줌아웃인지 여부를 확인하도록 구성될 수 있다. 사용자 인터랙션이 줌아웃으로 식별되면, 장치(103)는 708 단계에서, 줌아웃 요청을 처리하도록 구성될 수 있다. 사용자 인터랙션이 줌아웃으로 식별되지 않으면, 장치(103)는 709 단계에서, 사용자 인터랙션이 틸트인지 여부를 확인하도록 구성될 수 있다. 사용자 인터랙션이 틸트로 식별되면, 장치(103)는 710 단계에서, 틸트에 정의된 앵글을 처리하도록 구성될 수 있다. 사용자 인터랙션이 틸트로 식별되지 않으면, 장치(103)은 711 단계에서 아무런 처리를 수행하지 않는다. 그 경우, 장치(103)는 사용자 인터랙션을 어느 과정과도 결부시키지 않는다.
일 실시예에 있어서, 사용자 인터랙션(줌인, 줌아웃, 및 팬)을 처리하기 이전에 다수의 사용자 인터랙션들을 허용하는 시간 구간이 장치에 정의된다. 예컨대, 사용자가 자신의 손가락을 떼지 않고서 비디오에서 연속적으로 줌인을 수행하는 경우, 장치(103)는 줌인의 처리를 시작하도록 설정된 시간임을 판단하도록 구성될 수 있다.
상술한 도 7에서의 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 7에 올려진 일부 동작들은 생략될 수도 있다.
도 8은 본 발명에서 개시하는 실시예들에 따른, 장치(103)에서 비디오와의 줌인 인터랙션을 처리하는 방법을 나타낸 흐름도를 도시하고 있다. 장치(103)은 801 단계에서, 제1 해상도로 재생되는 비디오에서의 줌인과 관련하여 선택된 부분을 얻는 단계를 포함한다. 장치(103)는 얻은 선택된 부분과 관련된 제1 해상도에서의 디스플레이 좌표들을 식별하도록 구성될 수 있다. 장치(103)는 802 단계에서, 줌인 레벨이 최대인지 여부를 확인할 수 있다. 장치(103)는 비디오가 이미 최대 해상도로 줌인되어 있는지 여부를 확인하도록 구성될 수 있다. 줌인된 비디오가 이미 최대 레벨에 있으면, 장치(103)은 803 단계에서, 더 이상의 줌인 처리를 수행하지 않는다. 장치(103)은 804 단계에서, 사용자가 요청한 줌 레벨을 식별하여 제2 해상도로 줌 레벨을 증가시킬 수 있다. 장치(103)는 비디오의 프레임의 현재 줌 레벨(현재 해상도)을 식별하여 줌 레벨을 증가시키도록 구성될 수 있다. 장치(103)는 805 단계에서, 선택된 부분과 관련된 디스플레이 좌표들을 비디오의 프레임에서 식별할 수 있다. 그러한 디스플레이 좌표들은 섬네일 비디오를 사용하여 식별된다. 장치(103)은 806 단계에서, 줌의 지점을 제2 해상도 레벨(증가한 줌 레벨)의 프레임과 높이로 스케일링할 수 있다. 장치(103)는 식별된 디스플레이 좌표들을 제2 해상도(증가한 줌 레벨에 대응하는)에서의 비디오 좌표들로 이동시키도록 구성될 수 있다. 비디오의 선택된 부분은 비디오 프레임의 상이한 해상도들에서 상이한 위치들에 있을 수 있다. 장치(103)은 807 단계에서, 선택된 부분을 중심에 갖는 디스플레이 뷰포트(display viewport)와 같은 크기의 사각형을 선택할 수 있다. 선택된 부분을 둘러 있는 그러한 사각형은 제2 해상도에서의 선택된 부분의 위치를 식별한다. 장치(1030)은 808 단계에서, 제2 해상도에서 선택된 사각형의 영역 내에 존재하는 모든 타일들을 찾을 수 있다. 장치(103)는 선택된 부분과 관련된 하나 이상의 타일들을 증가한 줌 레벨을 갖는 제2 해상도에서 식별하도록 구성될 수 있다. 비디오 프레임의 각각의 해상도는 상이한 타일 구성을 갖는다. 장치(103)는 제2 해상도에서 선택된 부분에 걸쳐 있는 모든 타일들을 식별하도록 구성될 수 있다.
장치(103)은 809 단계에서, 선택된 줌인 부분에 대응하는 타일을 식별하는 단계를 포함한다. 그러한 타일은 사각형에 존재하는 모든 타일들로부터 식별된다. 그러한 타일은 디스플레이 좌표들에 의해 식별되는 선택된 부분을 포함한다.
장치(103)은 810 단계에서, 선택된 타일과 관련된 레퍼런스를 추출하여 HTTP 서버(101)로부터 레퍼런스를 다운로드할 수 있다. 각각의 타일은 레퍼런스(예컨대, URL)와 관련된다. 장치(103)는 식별된 타일과 관련된 레퍼런스를 디스크립터 파일로부터 결정하도록 구성될 수 있다. 선택된 타일의 비디오 스트림을 포함하는 레퍼런스가 HTTP 서버(101)에 존재할 수 있다. 식별된 타일을 수신하여 선택된 부분(줌인된 부분)을 제2 해상도로 렌더링한다. 식별된 타일과 관련된 URL이 HTTP 서버(101)로부터 스트리밍된다. 플레이어는 타일(선택된 부분과 관련된)과 관련된 레퍼런스(비디오 스트림)를 장치(103)에서 스트리밍한다. 일 실시예에 있어서, 장치(103)는 선택된 부분을 고해상도(제2 해상도)로 렌더링하기 이전에 선택된 부분을 섬네일 비디오로부터 렌더링하도록 구성될 수 있다. 그것은 사용자 인터랙션(줌인)이 처리되고 있고 선택된 부분이 고해상도로 렌더링될 것이라는 것을 사용자가 인식할 수 있게끔 한다.
상술한 도 8에서의 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 8에 올려진 일부 동작들은 생략될 수도 있다.
도 9는 본 발명에서 개시하는 실시예들에 따른, 장치(103)에서 비디오와의 줌아웃 인터랙션을 처리하는 방법(900)을 나타낸 흐름도를 도시하고 있다. 장치(103)은 901 단계에서, 제2 해상도로 재생되는 비디오에서의 줌아웃과 관련하여 선택된 부분을 얻을 수 있다. 장치(103)는 얻은 선택된 부분과 관련된 제2 해상도에서의 디스플레이 좌표들을 식별하도록 구성될 수 있다. 장치(103)은 902 단계에서, 줌아웃 레벨이 최대인지 여부를 확인할 수 있다. 장치(103)는 비디오가 이미 최소 해상도로 줌아웃되어 있는지 여부를 확인하도록 구성될 수 있다. 비디오가 줌아웃되어 이미 최소 레벨에 있다는 것을 본 방법이 식별하면, 장치(1030)은 903 단계에서, 더 이상의 줌아웃 처리를 하지 않는다.
장치(103)은 904 단계에서, 사용자가 요청한 줌 레벨을 식별하여 제1 해상도로 줌 레벨을 감소시킬 수 있다. 장치(103)는 비디오의 프레임의 현재 줌 레벨(현재 해상도)을 식별하여 줌 레벨을 감소시키도록 구성될 수 있다. 장치(103)은 905 단계에서, 선택된 부분과 관련된 디스플레이 좌표들을 비디오의 프레임에서 식별할 수 있다. 그러한 디스플레이 좌표들은 섬네일 비디오를 사용하여 식별된다.
장치(103)은 906 단계에서, 줌의 지점을 제1 해상도 레벨(감소한 줌 레벨)의 프레임과 높이로 스케일링할 수 있다. 장치(103)는 식별된 디스플레이 좌표들을 제1 해상도(감소한 줌 레벨에 대응하는)에서의 비디오 좌표들로 이동시키도록 구성될 수 있다. 비디오의 선택된 부분은 비디오 프레임의 상이한 해상도들에서 상이한 위치들에 있을 수 있다. 장치(103)은 907 단계에서, 선택된 부분을 중심에 갖는 디스플레이 뷰포트와 같은 크기의 사각형을 선택할 수 있다. 선택된 부분을 둘러 있는 그러한 사각형은 제1 해상도에서의 선택된 부분의 위치를 식별한다. 장치(103)은 908 단계에서, 제1 해상도에서 선택된 사각형의 영역 내에 존재하는 모든 타일들을 찾을 수 있다. 장치(103)는 선택된 부분과 관련된 하나 이상의 타일들을 감소한 줌 레벨을 갖는 제1 해상도에서 식별하도록 구성될 수 있다. 비디오 프레임의 각각의 해상도는 상이한 타일 구성을 갖는다. 장치(103)는 제1 해상도에서 선택된 부분에 걸쳐 있는 모든 타일들을 식별하도록 구성될 수 있다.
장치(103)은 909 단계에서, 줌아웃에 의해 선택된 부분에 대응하는 타일을 식별할 수 있다. 그러한 타일은 사각형에 존재하는 모든 타일들로부터 식별된다. 그러한 타일은 디스플레이 좌표들에 의해 식별되는 선택된 부분을 포함한다.
장치(103)은 910 단계에서, 선택된 타일과 관련된 레퍼런스를 추출하여 서버로부터 레퍼런스를 다운로드할 수 있다. 식별된 타일은 그와 관련된 레퍼런스를 포함한다. 장치(103)는 식별된 타일과 관련된 레퍼런스를 디스크립터 파일로부터 결정하도록 구성될 수 있다. 선택된 타일의 비디오 스트림을 포함하는 레퍼런스가 HTTP 서버(101)에 존재할 수 있다. 식별된 타일을 수신하여 선택된 부분(줌아웃된 부분)을 제1 해상도로 렌더링한다. 레퍼런스는 URL일 수 있고, 그러한 URL은 HTTP 서버(101)로부터 스트리밍될 수 있다. 플레이어는 타일(선택된 부분과 관련된)과 관련된 레퍼런스(비디오 스트림)를 장치(103)에서 스트리밍한다.
일 실시예에 있어서, 장치(103)는 선택된 부분을 저해상도로 렌더링하기 이전에 선택된 부분을 섬네일 비디오로부터 렌더링하도록 구성될 수 있다. 그것은 사용자 인터랙션이 처리되고 있고 선택된 부분이 저해상도로 렌더링될 것이라는 것을 사용자가 인식할 수 있게끔 한다. 상술한 도 9에서의 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 9에 올려진 일부 동작들은 생략될 수도 있다.
도 10은 본 발명에서 개시하는 실시예들에 따른, 장치(103)에서 비디오와의 팬 인터랙션을 처리하는 방법을 나타낸 흐름도를 도시하고 있다 장치(103)은. 1001 단계에서, 현재 해상도 레벨로 재생되고 있는 비디오에서의 관심 영역(ROI)을 팬(pan)하는 것과 관련하여 선택된 부분을 얻는 단계를 포함한다. 장치(103)는 얻은 선택된 부분과 관련된 제2 해상도에서의 디스플레이 좌표들을 식별하도록 구성될 수 있다. 장치(103)은 1002 단계에서, 팬이 프레임 경계를 넘어서는지 여부를 확인하는 단계를 포함한다. 장치(103)는 팬이 프레임 경계를 넘어서는지 여부를 확인하도록 구성될 수 있다. 팬이 프레임 경계를 넘어서면, 장치(103)은 1003 단계에서, 팬 처리를 수행하지 않는다.
장치(103)은 1004 단계에서, 사용자가 요청한 팬 줌 레벨과 관련된 드래깅 제스처(dragging gesture)의 시작에 의해 특정되는 뷰포트의 중심을 선택할 수 있다. 장치(103)는 비디오의 프레임의 현재 줌 레벨(현재 해상도)을 식별하여 드래깅 제스처의 시작과 관련된 디스플레이 좌표들을 식별하도록 구성될 수 있다. 그러한 디스플레이 좌표들은 섬네일 비디오를 사용하여 식별된다.
장치(103)은 1005 단계에서, 팬과 관련된 드래깅 제스처가 끝나는 지점을 식별할 수 있다. 장치(103)는 드래깅 제스처의 종료와 관련된 디스플레이 좌표들을 식별하도록 구성될 수 있다. 그러한 디스플레이 좌표들은 섬네일 비디오를 사용하여 식별된다.
장치(103)은 1006 단계에서, 드래그 거리를 기반으로 해서 뷰포트 중심을 변경하여 새로운 중심과 그 주위의 뷰포트를 찾을 수 있다. 장치(103)는 드래그 제스처의 시작점과 끝점의 디스플레이 좌표들을 기반으로 하여 뷰포트 중심을 오프셋시키도록 구성될 수 있다. 장치(103)은 1007 단계에서, 선택된 부분을 중심에 갖는 디스플레이 뷰포트와 같은 크기의 사각형을 선택할 수 있다. 선택된 부분(팬 처리된 영역)을 둘러 있는 그러한 사각형은 디스플레이 뷰포트와 동일한 크기의 것이다.
장치(103)은 1008 단계에서, 현재 해상도에서 선택된 사각형의 영역 내에 존재하는 모든 타일들을 찾을 수 있다. 장치(103)는 사각형에 존재하는 팬 처리된(panned) 영역에 걸쳐 있는 모든 타일들을 식별한다. 장치(103)는 팬 처리된 영역과 관련된 하나 이상의 타일들을 현재 해상도에서 식별하도록 구성될 수 있다. 그러한 타일은 디스플레이 좌표들에 의해 식별되는 선택된 부분을 포함한다.
장치(103)은 1009 단계에서, 사용자가 선택한 팬 처리된 영역에 대응하는 타일을 식별할 수 있다. 그러한 타일은 사각형에 존재하는 모든 타일들로부터 식별된다. 그러한 타일은 디스플레이 좌표들에 의해 식별되는 선택된 부분(팬 처리된 영역)을 포함한다.
장치(103)은 1010 단계에서, 선택된 타일과 관련된 레퍼런스를 추출하여 서버로부터 레퍼런스를 다운로드할 수 있다. 식별된 타일은 그와 관련된 레퍼런스를 포함한다. 장치(103)는 식별된 타일과 관련된 레퍼런스를 디스크립터 파일로부터 결정하도록 구성될 수 있다. 선택된 타일의 비디오 스트림을 포함하는 레퍼런스가 HTTP 서버(101)에 존재할 수 있다. 식별된 타일을 수신하여 팬 처리된 부분을 현재 해상도로 렌더링한다. 레퍼런스는 URL일 수 있고, 그러한 URL은 HTTP 서버(101)로부터 스트리밍될 수 있다. 플레이어는 타일(선택된 부분과 관련된)과 관련된 레퍼런스(비디오 스트림)를 장치(103)에서 스트리밍한다. 상술한 도 10에서의 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 10에 올려진 일부 동작들은 생략될 수도 있다.
도 11은 다수의 개별 카메라들로부터의 멀티뷰 비디오(multiview video)의 일례를 도시하고 있다. 본 도면은 상이한 앵글들로 동일한 비디오를 캡처하는 3개의 상이한 카메라들, 즉 센터(centre) 카메라, 라이트(right) 카메라, 및 레프트(left) 카메라를 나타내고 있다. 각각의 카메라는 상이한 앵글로 비디오를 녹화한다. 따라서 다수의 카메라들을 사용하여 프레임(장면)의 다수의 뷰들이 녹화될 수 있다. 전자 장치의 사용자는 뷰 앵글을 선택할 수 있다. 예컨대, 운동 경기 이벤트를 볼 경우, 사용자는 레프트 카메라에 의해 상세하게 캡처된 프레임의 특정 부분을 보기 위해 레프트 카메라를 선택할 수 있다. 뷰 앵글을 선택한 후에, 사용자는 스트리밍되는 비디오와 인터랙션을 할 수 있다. 사용자는 ROI를 줌인, 줌아웃, 및 팬하여 선택된 ROI를 더 높은 해상도로 볼 수 있다. 일 실시예에 있어서, HTTP 서버(101)는 멀티뷰 카메라 앵글의 상세를 디스크립터 파일에 포함시켜 장치(103)에 전송한다. 사용자가 장치(13)를 흔드는/움직이는 정도가 앵글의 변화로 변환된다. 카메라 앵글은 다음의 식을 사용하여 선형 변위를 각운동으로 변환함으로써 계산될 수 있다.
수학식 1에서, L은 변위이고, r은 반지름이다.
예컨대, 1㎝의 단위 원을 살펴보면, L의 최대 범위는 0 내지 2 * pi = 0 내지 6.28이다. L이 2㎝, 뷰 앵글이 114면, MDF 파일로부터 적절한 뷰를 골라낸다.
일 실시예에 있어서, 사용자로부터의 회전 운동 제스처(gyroscopic gesture)가 카메라의 뷰 앵글로 변환될 수 있다.
도 12는 본 발명에서 개시하는 실시예들에 따른, 장치(103)에서 카메라 뷰의 변화를 처리하는 방법을 나타낸 흐름도를 도시하고 있다. 장치(103)은 1201 단계에서, 사용자 틸트를 식별하여 앵글로 변환할 수 있다. 사용자로부터의 회전 운동 제스처가 앵글로 변환될 수 있다. 사용자가 장치를 흔들거나 움직이는 정도가 앵글의 변화로 변환될 수 있다. 장치(103)은 1202 단계에서, 재생되고 있는 뷰의 현재 앵글을 식별할 수 있다. 사용자에게 스트리밍되는 비디오는 일반적으로 센터 카메라로부터 나올 수 있는 디폴트 뷰에 있다. 장치(103)는 사용자로부터의 틸트를 검출하면 장치에서 재생되고 있는 비디오의 현재 앵글 뷰를 식별하도록 구성될 수 있다. 일 실시예에 있어서, 사용자 제스처가 검출되어 그에 상응하게 카메라 앵글이 결정된다. 멀티뷰 카메라와 관련된 앵글들은 디스크립터 파일과 함께 장치(103)에 전송된다.
장치(103)은 1203 단계에서, 틸트를 기반으로 하여 카메라의 현재 뷰 앵글에 변환된 앵글을 더할 수 있다. 비디오의 카메라 뷰의 현재 앵글에 변환된 앵글을 더하여 틸트가 비디오의 현재 뷰 앵글의 오른쪽으로인지 왼쪽으로인지 여부를 식별한다.
장치(103)은 1204 단계에서, 틸트가 현재 뷰의 왼쪽으로 향하는지 여부를 확인할 수 있다. 이전 단계에서의 제스처를 기반으로 하여, 장치(103)는 틸트가 현재 뷰의 왼쪽으로 향하는지 현재 뷰의 오른쪽으로 향하는지 결정하도록 구성될 수 있다.
장치(103)은 1205 단계에서, 틸트가 현재 뷰의 왼쪽으로 향하면 현재 뷰의 왼쪽으로의 앵글을 선택할 수 있다. 장치(103)은 1206 단계에서, 틸트가 현재 뷰의 오른쪽으로 향하면 현재 뷰의 오른쪽으로의 앵글을 선택할 수 있다. 장치(103)은 1207 단계에서, 계산된 앵글과 틸트 방향에 가장 가까운 카메라 뷰를 찾을 수 있다. 장치(103)는 계산된 뷰잉 앵글(viewing angle)(변환된 앵글 + 현재 앵글 뷰)을 기반으로 하여 카메라 뷰를 찾도록 구성될 수 있다.
장치(103)은 1208 단계에서, 카메라 뷰가 변경되는지 여부를 확인할 수 있다. 계산된 뷰잉 앵글을 기반으로 하여, 장치(103)는 현재 뷰가 변경될 필요가 있는지 여부를 판단할 수 있다.
장치(103)은 1209 단계에서, 현재 카메라 뷰로 비디오를 재생할 수 있다. 계산된 앵글이 현재 카메라 뷰의 시야 범위 내에 있으면, 사용자는 현재 카메라 뷰로 계속해서 비디오를 시청할 수 있다.
장치(103)은 1210 단계에서, 계산된 뷰잉 앵글이 현재 카메라의 범위를 벗어나면 틸트와 관련된 뷰로 녹화된 비디오를 수신할 수 있다. 장치(103)는 어느 카메라 앵글 뷰가 사용자의 틸트를 캡처하였는지 식별하도록 구성될 수 있다. 장치(103)는 디스크립터 파일에 저장된 앵글 리스트로부터 카메라 앵글 뷰를 식별할 수 있다. 계산된 뷰잉 앵글을 기반으로 하여, 카메라 앵글 뷰가 선택되어 장치(103)에서 스트리밍될 수 있다.
장치(103)에서 축구와 같은 운동 경기 이벤트를 보는 경우의 예를 살펴보기로 한다. 사용자는 상이한 앵글 뷰에서 비디오를 보고 싶어 할 수 있다. 사용자 틸트를 검출하여 그것을 앵글로 변환하면, 카메라 뷰가 선택된다. 카메라 뷰가 변경되면, 장치는 틸트와 관련된 카메라 뷰로 녹화된 비디오를 수신할 수 있다. 사용자는 렌더링되는 비디오와 인터랙션을 할 수 있다. 상술한 바와 같은 여러 동작들은 제시된 순서대로, 상이한 순서로, 또는 동시에 수행될 수 있다. 또한, 일부 실시예들에 있어서, 도 12에 올려진 일부 동작들은 생략될 수도 있다.
도 13은 본 발명에서 개시하는 실시예들에 따른 컴퓨팅 환경을 도시하고 있다. 도시된 바와 같이, 그러한 컴퓨팅 환경(1301)은 제어부(1302)와 산술 논리 장치(ALU; arithmetic logic unit, 1303)를 구비한 적어도 하나의 처리부(1304), 메모리(1305), 저장부(1306), 다수의 네트워킹 장치들(1308), 및 다수의 입출력(I/O) 장치들(1307)을 포함한다. 처리부(1304)는 알고리즘의 명령어를 처리하는 역할을 담당한다. 처리부(1304)는 그 처리를 수행하기 위해 제어부로부터 명령을 수신한다. 또한, 명령어의 실행에 수반되는 모든 논리 및 산술 연산들이 ALU(1303)에 의해 계산된다.
전체 컴퓨팅 환경(1301)은 다수의 동종 및/또는 이종의 코어들, 상이한 종류의 다수의 CPU들, 특수 매체, 및 기타 가속기로 구성될 수 있다. 처리부(1304)는 알고리즘의 명령어를 처리하는 역할을 담당한다. 또한, 다수의 처리부 (1304)가 단일의 칩에 또는 다수의 칩들에 걸쳐 위치할 수 있다. 구현에 필요한 명령어와 코드를 포함하는 알고리즘은 메모리(1305) 아니면 저장부(1306)에 저장되거나 그 둘에 모두 저장된다. 실행 시에, 명령어는 해당 메모리(1305) 및/또는 저장부(1306)로부터 페치되어 처리부(1304)에 의해 실행된다.
임의의 하드웨어 구현의 경우, 여러 네트워킹 장치들(1308) 또는 외부 I/O 장치들(1307)이 컴퓨팅 환경에 연결되어 네트워킹 장치 및 I/O 장치를 통한 구현을 지원할 수 있다.
본 발명에서 개시하는 실시예들은 적어도 하나의 하드웨어 장치에서 실행되어 구성 요소들의 제어를 위한 네트워크 관리 기능을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1, 도 2, 및 도 13에 도시된 구성 요소들은 하드웨어 장치 및 하드웨어 장치와 소프트웨어 모듈의 조합 중의 적어도 하나일 수 있는 블록들을 포함한다.
특정의 실시예들에 관한 전술한 설명은 다른 사람들이 현재의 지식을 적용하여 일반적인 개념을 벗어남이 없이 다양한 적용들을 위한 변경 및/또는 개조를 손쉽게 할 수 있을 정도로 충분하게 본 발명의 실시예들의 전반적인 특성을 나타내고 있을 것이고, 따라서 그러한 개조들 및 변경들은 개시된 실시예들의 균등물의 의미 및 범위 내에 포함되어야 하고 또한 그렇게 하고자 한다. 본 명세서에서 채용한 문구들 및 용어들은 설명의 목적을 위한 것이지 한정을 위한 것이 아님을 알아야 할 것이다. 따라서 본 발명의 실시예들을 바람직한 실시예들에 의해 설명하였지만, 당업자라면 본 발명의 실시예들이 본 명세서에서 설명된 실시예들의 사상 및 범위 내에서 변경되어 실시될 수 있다는 것을 인정할 것이다.
101: HTTP 서버
102: 통신 네트워크
103: 장치
102: 통신 네트워크
103: 장치
Claims (22)
- 비디오의 선택된 부분들을 고해상도로 렌더링하는 방법에 있어서,
제1 해상도로 재생되는 상기 비디오의 상기 선택된 부분을 얻는 단계;
상기 얻은 선택된 부분과 관련된 적어도 하나의 타일을 제2 해상도에서 식별하는 단계; 및
상기 식별한 적어도 하나의 타일을 수신하여 상기 선택된 부분을 제2 해상도로 렌더링하는 단계를 포함하는 방법. - 제 1 항에 있어서, 상기 얻은 선택된 부분과 관련된 디스플레이 좌표들을 상기 비디오의 적어도 하나의 프레임에서 식별하는 단계; 및
상기 식별한 디스플레이 좌표들을 상기 적어도 하나의 프레임의 상기 제2 해상도로 스케일링하는 단계를 더 포함하는 방법. - 제 1 항에 있어서, 상기 선택된 부분을 렌더링하기 전에, 상기 식별한 적어도 하나의 타일을 얻는 단계를 더 포함하는 방법.
- 제 1 항에 있어서, 상기 적어도 하나의 타일은 상기 비디오의 상기 적어도 하나의 프레임과 관련된 오디오를 포함하는 방법.
- 제 1 항에 있어서, 상기 선택된 부분을 상기 제2 해상도로 렌더링하기 전에, 상기 선택된 부분을 섬네일 비디오로부터 상기 제1 해상도로 렌더링하는 단계를 더 포함하는 방법.
- 제 5 항에 있어서, 상기 선택된 부분을 상기 섬네일 비디오로부터 수신된 오디오와 함께 렌더링하는 단계를 더 포함하는 방법.
- 제 1 항에 있어서, 상기 적어도 하나의 타일에 대응하는 적어도 하나의 레퍼런스를 식별하는 것을 포함하는 방법.
- 제 1 항에 있어서, 상기 장치가 상기 적어도 하나의 레퍼런스를 타깃 장치에 공유시키는 단계; 및
상기 적어도 하나의 선택된 부분을 상기 타깃 장치에서 렌더링하는 단계를 더 포함하는 방법. - 제 1 항에 있어서, 상기 선택된 부분을 상기 비디오의 적어도 하나의 이후 프레임에서 추적하는 단계;
상기 적어도 하나의 이후 프레임에서 상기 추적한 선택된 부분과 관련된 적어도 하나의 타일을 식별하는 단계; 및
상기 선택된 부분과 관련된 상기 식별한 적어도 하나의 타일을 상기 비디오에서 얻는 단계를 포함하는 방법. - 비디오의 선택된 부분들을 고해상도로 렌더링하는 방법에 있어서,
상기 비디오의 적어도 하나의 프레임을 적어도 하나의 타일로 분할하는 단계;
상기 적어도 하나의 타일을 인코딩하는 단계; 및
상기 인코딩된 타일에 레퍼런스(reference)를 할당하는 단계를 포함하고,
상기 적어도 하나의 프레임은 적어도 하나의 해상도와 관련된 방법. - 제 10 항에 있어서,
상기 인코딩된 적어도 하나의 타일과 관련된 정보를 포함하는 파일을 생성하는 단계; 및
상기 생성된 파일을 상기 장치에 전송하는 단계를 더 포함하고,
상기 파일은 암호화된 방법. - 제 10 항에 있어서,
상기 인코딩 단계는 상기 적어도 하나의 타일에 오디오를 결합시키는 단계를 포함하는 방법. - 제 10 항에 있어서,
상기 비디오와 함께 섬네일 스트림을 상기 장치에 전송하는 단계를 포함하고,
상기 섬네일 비디오의 해상도가 상기 제1 해상도에 비해 낮고 더 낮은 프레임 레이트(frame rate)로 렌더링되며, 상기 섬네일 비디오가 상기 오디오를 포함하는 방법. - 비디오의 선택된 부분들을 고해상도로 렌더링하는 장치에 있어서,
적어도 하나의 프로세서; 및
상기 프로세서 내의 컴퓨터 프로그램 코드를 갖는 적어도 하나의 메모리;를 포함하며;
상기 프로세서는,
제1 해상도로 재생되는 상기 비디오의 상기 선택된 부분을 얻게 하고,상기 얻은 선택된 부분과 관련된 적어도 하나의 타일을 제2 해상도에서 식별하게 하며,상기 식별한 적어도 하나의 타일을 수신하여 상기 선택된 부분을 상기 제2 해상도로 렌더링하게 제어하는 장치. - 제 14 항에 있어서,
상기 프로세서는,
상기 얻은 선택된 부분과 관련된 디스플레이 좌표들을 상기 비디오의 적어도 하나의 프레임에서 식별하고,상기 식별한 디스플레이 좌표들을 상기 적어도 하나의 프레임의 상기 제2 해상도로 스케일링하도록 제어하는 장치. - 제 14 항에 있어서,
상기 프로세서는,
상기 선택된 부분을 렌더링하기 전에, 상기 식별한 적어도 하나의 타일을 얻도록 제어하는 장치. - 제 14 항에 있어서,
상기 프로세서는,
상기 적어도 하나의 타일은 상기 비디오의 상기 적어도 하나의 프레임과 관련된 오디오를 포함하도록 제어하는 장치. - 제 14 항에 있어서,
상기 프로세서는,
상기 선택된 부분을 상기 제2 해상도로 렌더링하기 전에, 상기 선택된 부분을 섬네일 비디오로부터 상기 제1 해상도로 렌더링하도록 제어하는 장치. - 제 18 항에 있어서,
상기 프로세서는,
상기 선택된 부분을 상기 섬네일 비디오로부터 수신된 오디오와 함께 렌더링하도록 제어하는 장치. - 제 14 항에 있어서,
상기 프로세서는,
상기 적어도 하나의 타일에 대응하는 적어도 하나의 레퍼런스를 식별하도록 제어하는 장치. - 제 20 항에 있어서,
상기 프로세서는,
상기 선택된 부분의 상기 적어도 하나의 레퍼런스를 타깃 장치에 공유시키고;
상기 적어도 하나의 선택된 부분을 상기 타깃 장치에서 렌더링하도록 제어하는 장치. - 제 14 항에 있어서,
상기 프로세서는,
상기 선택된 부분을 상기 비디오의 적어도 하나의 이후 프레임에서 추적하고;
상기 적어도 하나의 이후 프레임에서 상기 추적한 선택된 부분과 관련된 적어도 하나의 타일을 식별하며;
상기 선택된 부분과 관련된 상기 식별한 적어도 하나의 타일을 상기 비디오에서 얻도록 제어하는 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN3069CH2013 IN2013CH03069A (ko) | 2013-07-09 | 2013-07-09 | |
IN3069/CHE/2013??? | 2014-01-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150006771A true KR20150006771A (ko) | 2015-01-19 |
Family
ID=52276818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20140069132A KR20150006771A (ko) | 2013-07-09 | 2014-06-09 | 비디오의 선택된 부분들을 고해상도로 렌더링하는 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150015789A1 (ko) |
KR (1) | KR20150006771A (ko) |
IN (1) | IN2013CH03069A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170141249A (ko) * | 2015-05-05 | 2017-12-22 | 페이스북, 인크. | 임베디드 비디오를 열람하기 위한 방법 및 시스템 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9190110B2 (en) | 2009-05-12 | 2015-11-17 | JBF Interlude 2009 LTD | System and method for assembling a recorded composition |
US11232458B2 (en) | 2010-02-17 | 2022-01-25 | JBF Interlude 2009 LTD | System and method for data mining within interactive multimedia |
US9009619B2 (en) | 2012-09-19 | 2015-04-14 | JBF Interlude 2009 Ltd—Israel | Progress bar for branched videos |
US9257148B2 (en) | 2013-03-15 | 2016-02-09 | JBF Interlude 2009 LTD | System and method for synchronization of selectably presentable media streams |
US10448119B2 (en) | 2013-08-30 | 2019-10-15 | JBF Interlude 2009 LTD | Methods and systems for unfolding video pre-roll |
GB2520310A (en) * | 2013-11-15 | 2015-05-20 | Sony Corp | A method, server, client and software |
US9653115B2 (en) | 2014-04-10 | 2017-05-16 | JBF Interlude 2009 LTD | Systems and methods for creating linear video from branched video |
US9792957B2 (en) | 2014-10-08 | 2017-10-17 | JBF Interlude 2009 LTD | Systems and methods for dynamic video bookmarking |
US11412276B2 (en) | 2014-10-10 | 2022-08-09 | JBF Interlude 2009 LTD | Systems and methods for parallel track transitions |
US10726593B2 (en) * | 2015-09-22 | 2020-07-28 | Fyusion, Inc. | Artificially rendering images using viewpoint interpolation and extrapolation |
GB2532063A (en) * | 2014-11-07 | 2016-05-11 | Sony Corp | A method, server, client and software |
KR102313485B1 (ko) * | 2015-04-22 | 2021-10-15 | 삼성전자주식회사 | 가상현실 스트리밍 서비스를 위한 영상 데이터를 송수신하는 방법 및 장치 |
US10582265B2 (en) | 2015-04-30 | 2020-03-03 | JBF Interlude 2009 LTD | Systems and methods for nonlinear video playback using linear real-time video players |
EP3091748B1 (en) * | 2015-05-05 | 2018-09-12 | Facebook, Inc. | Methods and systems for viewing embedded videos |
US10042532B2 (en) * | 2015-05-05 | 2018-08-07 | Facebook, Inc. | Methods and systems for viewing embedded content |
US10685471B2 (en) | 2015-05-11 | 2020-06-16 | Facebook, Inc. | Methods and systems for playing video while transitioning from a content-item preview to the content item |
US10460765B2 (en) * | 2015-08-26 | 2019-10-29 | JBF Interlude 2009 LTD | Systems and methods for adaptive and responsive video |
US11128853B2 (en) | 2015-12-22 | 2021-09-21 | JBF Interlude 2009 LTD | Seamless transitions in large-scale video |
US10462202B2 (en) | 2016-03-30 | 2019-10-29 | JBF Interlude 2009 LTD | Media stream rate synchronization |
US11856271B2 (en) | 2016-04-12 | 2023-12-26 | JBF Interlude 2009 LTD | Symbiotic interactive video |
US10313417B2 (en) * | 2016-04-18 | 2019-06-04 | Qualcomm Incorporated | Methods and systems for auto-zoom based adaptive video streaming |
FR3050895A1 (fr) | 2016-04-29 | 2017-11-03 | Orange | Procede de composition contextuelle d'une representation video intermediaire |
US10218760B2 (en) | 2016-06-22 | 2019-02-26 | JBF Interlude 2009 LTD | Dynamic summary generation for real-time switchable videos |
US11197040B2 (en) * | 2016-10-17 | 2021-12-07 | Mediatek Inc. | Deriving and signaling a region or viewport in streaming media |
US11050809B2 (en) | 2016-12-30 | 2021-06-29 | JBF Interlude 2009 LTD | Systems and methods for dynamic weighting of branched video paths |
US10547704B2 (en) | 2017-04-06 | 2020-01-28 | Sony Interactive Entertainment Inc. | Predictive bitrate selection for 360 video streaming |
US10574995B2 (en) * | 2017-04-10 | 2020-02-25 | Intel Corporation | Technology to accelerate scene change detection and achieve adaptive content display |
CN111373446A (zh) * | 2017-11-02 | 2020-07-03 | 马克斯·普朗克科学促进学会 | 用于流式渲染的实时潜在可见集合 |
US10257578B1 (en) | 2018-01-05 | 2019-04-09 | JBF Interlude 2009 LTD | Dynamic library display for interactive videos |
CN110351607B (zh) | 2018-04-04 | 2022-01-14 | 阿里巴巴(中国)有限公司 | 一种全景视频场景切换的方法、计算机存储介质及客户端 |
US11601721B2 (en) | 2018-06-04 | 2023-03-07 | JBF Interlude 2009 LTD | Interactive video dynamic adaptation and user profiling |
US11490047B2 (en) | 2019-10-02 | 2022-11-01 | JBF Interlude 2009 LTD | Systems and methods for dynamically adjusting video aspect ratios |
US11245961B2 (en) | 2020-02-18 | 2022-02-08 | JBF Interlude 2009 LTD | System and methods for detecting anomalous activities for interactive videos |
US12047637B2 (en) | 2020-07-07 | 2024-07-23 | JBF Interlude 2009 LTD | Systems and methods for seamless audio and video endpoint transitions |
US11882337B2 (en) | 2021-05-28 | 2024-01-23 | JBF Interlude 2009 LTD | Automated platform for generating interactive videos |
US11934477B2 (en) | 2021-09-24 | 2024-03-19 | JBF Interlude 2009 LTD | Video player integration within websites |
CN114900731B (zh) * | 2022-03-31 | 2024-04-09 | 咪咕文化科技有限公司 | 视频清晰度切换方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8615383B2 (en) * | 2008-01-18 | 2013-12-24 | Lockheed Martin Corporation | Immersive collaborative environment using motion capture, head mounted display, and cave |
US9342212B2 (en) * | 2010-12-02 | 2016-05-17 | Instavid Llc | Systems, devices and methods for streaming multiple different media content in a digital container |
US9053632B2 (en) * | 2012-06-29 | 2015-06-09 | International Business Machines Corporation | Real-time traffic prediction and/or estimation using GPS data with low sampling rates |
US9313242B2 (en) * | 2012-08-21 | 2016-04-12 | Skybox Imaging, Inc. | Multi-resolution pyramid for georeferenced video |
-
2013
- 2013-07-09 IN IN3069CH2013 patent/IN2013CH03069A/en unknown
-
2014
- 2014-06-09 KR KR20140069132A patent/KR20150006771A/ko not_active Application Discontinuation
- 2014-07-07 US US14/324,747 patent/US20150015789A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170141249A (ko) * | 2015-05-05 | 2017-12-22 | 페이스북, 인크. | 임베디드 비디오를 열람하기 위한 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
IN2013CH03069A (ko) | 2015-08-28 |
US20150015789A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150006771A (ko) | 비디오의 선택된 부분들을 고해상도로 렌더링하는 방법 및 장치 | |
US11303881B2 (en) | Method and client for playing back panoramic video | |
JP7029562B2 (ja) | コンテンツを提供及び表示するための装置及び方法 | |
Fan et al. | A survey on 360 video streaming: Acquisition, transmission, and display | |
EP3459252B1 (en) | Method and apparatus for spatial enhanced adaptive bitrate live streaming for 360 degree video playback | |
EP3466091B1 (en) | Method, device, and computer program for improving streaming of virtual reality media content | |
EP3804349B1 (en) | Adaptive panoramic video streaming using composite pictures | |
US10666863B2 (en) | Adaptive panoramic video streaming using overlapping partitioned sections | |
US20170171274A1 (en) | Method and electronic device for synchronously playing multiple-cameras video | |
US20150208103A1 (en) | System and Method for Enabling User Control of Live Video Stream(s) | |
JP7129517B2 (ja) | 360ビデオストリーミングのための予測ビットレート選択 | |
US10601889B1 (en) | Broadcasting panoramic videos from one server to multiple endpoints | |
WO2018103384A1 (zh) | 一种360度全景视频的播放方法、装置及*** | |
US10638029B2 (en) | Shared experiences in panoramic video | |
JP2013255210A (ja) | 映像表示方法、映像表示装置および映像表示プログラム | |
KR102118334B1 (ko) | 분할 영상 기반의 vr 컨텐츠 라이브 스트리밍 서비스를 지원하는 전자 장치 | |
US20140082208A1 (en) | Method and apparatus for multi-user content rendering | |
WO2018004936A1 (en) | Apparatus and method for providing and displaying content | |
CA3238641A1 (en) | Eye gaze as a proxy of attention for video streaming services | |
Shafiei et al. | Jiku live: a live zoomable video streaming system | |
Wijnants et al. | An optimized adaptive streaming framework for interactive immersive video experiences | |
Seo et al. | Immersive panorama TV service system | |
EP4221234A1 (en) | Information processing device, information processing method, and information processing system | |
CN111200759B (zh) | 一种全景视频的播放控制方法、装置、终端及存储介质 | |
CN115589496A (zh) | 媒体数据处理方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |