KR20220039114A - 전자 장치 및 그 동작 방법 - Google Patents

전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20220039114A
KR20220039114A KR1020200121799A KR20200121799A KR20220039114A KR 20220039114 A KR20220039114 A KR 20220039114A KR 1020200121799 A KR1020200121799 A KR 1020200121799A KR 20200121799 A KR20200121799 A KR 20200121799A KR 20220039114 A KR20220039114 A KR 20220039114A
Authority
KR
South Korea
Prior art keywords
stream
priority
streams
electronic device
content
Prior art date
Application number
KR1020200121799A
Other languages
English (en)
Inventor
이종인
김세현
최길수
박지원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200121799A priority Critical patent/KR20220039114A/ko
Priority to PCT/KR2021/012321 priority patent/WO2022060013A1/ko
Publication of KR20220039114A publication Critical patent/KR20220039114A/ko
Priority to US18/124,188 priority patent/US20230224521A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

멀티스트림들을 수신하고, 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하고, 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하는 것을 포함하고, 멀티스트림들을 수신하는 것은 멀티스트림들 간의 우선 순위에 따라, 멀티스트림들 각각의 비트레이트를 결정하고, 결정된 비트레이트로 각 스트림을 버퍼링하는 것을 포함하고, 멀티스트림들은 우선 순위가 높은 메인 스트림, 및 메인 스트림보다 우선 순위가 낮은 서브 스트림을 하나 이상 포함하는, 전자 장치의 동작 방법이 개시된다.

Description

전자 장치 및 그 동작 방법{An electronic apparatus and a method of operating the electronic apparatus}
개시된 다양한 실시 예들은 전자 장치 및 그 동작 방법에 관한 것으로, 보다 구체적으로는 멀티스트림들 간의 관계를 고려하여 멀티스트림들을 스트리밍하는 전자 장치 및 그 동작 방법에 관한 것이다.
멀티 스트리밍 기술이 개발되고 있다. 멀티 스트리밍 기술은 멀티스트림들로부터 획득된 멀티 컨텐츠들을 디스플레이 장치의 화면에 함께 출력하는 기술을 의미할 수 있다.
멀티 스트리밍 기술을 구현하기 위해서는, 디스플레이 장치가 서버로부터 멀티스트림들을 수신해야 한다. 상황에 따라 디스플레이 장치의 네트워크 대역폭이 멀티스트림들을 모두 스트리밍할 만큼 크지 않은 경우, 멀티스트림들 모두의 버퍼링이 늦어지는 문제가 발생할 수 있다.
다양한 실시 예들은 멀티스트림들 간의 우선 순위를 고려하여 멀티스트림들을 스트리밍하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
다양한 실시 예들은 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
다양한 실시 예들은 멀티스트림들 중 우선 순위가 높은 스트림의 버퍼링 상태에 따라 우선 순위가 낮은 스트림의 버퍼링 수행 여부를 결정하는 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
실시 예에 따른 전자 장치의 동작 방법은, 멀티스트림들을 수신하는 단계, 상기 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하는 단계 및 상기 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하는 단계를 포함하고, 상기 멀티스트림들을 수신하는 단계는 상기 멀티스트림들 간의 우선 순위를 고려하여, 상기 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하는 단계를 포함하고, 상기 멀티스트림들은 상기 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함할 수 있다.
실시 예에서, 상기 방법은 각 스트림에 대한 부가 정보를 획득하는 단계를 더 포함하고, 상기 부가 정보는 상기 멀티스트림들 간의 우선 순위를 나타내는 우선 순위 식별 정보를 포함할 수 있다.
실시 예에서, 상기 방법은 사용자 인터페이스를 통해 우선 순위 식별 정보를 입력 받는 단계를 더 포함할 수 있다.
실시 예에서, 상기 어댑티브 스트리밍하는 단계는 상기 네트워크 대역폭의 상태, 각 스트림을 수신하는 버퍼의 공간, 및 상기 각 스트림의 비트레이트에 기초하여, 상기 각 스트림을 버퍼링하는 단계를 포함하고, 상기 버퍼링하는 단계는 상기 우선 순위가 높은 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 것에 기초하여, 다음 우선 순위를 갖는 스트림을 버퍼링하는 단계를 포함할 수 있다.
실시 예에서, 상기 버퍼링하는 단계는 상기 우선 순위가 높은 스트림을 먼저 버퍼링하는 단계 및 상기 우선 순위가 높은 스트림의 버퍼링이 완료된 이후, 상기 다음 우선 순위를 갖는 스트림을 순차적으로 버퍼링하는 단계를 포함할 수 있다.
실시 예에서, 상기 버퍼링을 수행하는 단계는 상기 제1 스트림부터 제K(K는 2 이상이고 N보다 작은 자연수) 스트림까지를 각각 수신하는 버퍼에서 언더플로우 발생이 예측되지 않고, K+1번째 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되는 경우, 상기 제1 스트림부터 상기 제K 스트림까지를 동시에 버퍼링하는 단계를 포함할 수 있다.
실시 예에서, 상기 어댑티브 스트리밍하는 단계는 상기 우선 순위가 높은 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되는 것에 기초하여, 상기 다음 우선 순위를 갖는 스트림부터 버퍼링을 수행하지 않는 단계를 더 포함할 수 있다.
실시 예에서, 상기 어댑티브 스트리밍하는 단계는 상기 우선 순위가 높은 스트림을 수신하는 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 것에 기초하여, 상기 다음 우선 순위를 갖는 스트림을 다시 버퍼링하는 단계를 더 포함할 수 있다.
실시 예에서, 상기 다음 우선 순위를 갖는 스트림을 버퍼링하는 단계는 상기 다음 우선 순위를 갖는 스트림의 버퍼링이 완료될 시점을 예측하는 단계 및 상기 제1 스트림의 패킷들 중, 상기 예측된 시점에 재생될 패킷을 식별하는 단계 및 상기 식별된 패킷과 동기화하여 출력될, 상기 다음 우선 순위를 갖는 스트림의 패킷부터 버퍼링하는 단계를 포함할 수 있다.
실시 예에서, 상기 멀티 뷰로 출력하는 단계는 상기 멀티 컨텐츠가 동기가 맞추어져 재생될 시점을 획득하는 단계 및 상기 다음 우선 순위를 갖는 스트림으로부터 획득되는 컨텐츠의 재생 속도를 조절하여, 상기 재생될 시점부터, 상기 제1 스트림으로부터 획득되는 컨텐츠와 동기화하여 재생하는 단계를 포함하고, 상기 동기화하여 재생하는 단계는 상기 다음 우선 순위를 갖는 스트림의 재생 속도가 상기 제1 스트림의 재생 속도보다 느린 경우, 상기 느린 스트림의 패킷 또는 상기 제1 스트림으로부터 획득된 컨텐츠의 프레임을 드랍하면서 버퍼링하는 단계 및 상기 다음 우선 순위를 갖는 스트림의 재생 속도가 상기 제1 스트림의 재생 속도보다 빠른 경우, 상기 빠른 스트림의 패킷을 버퍼로부터 느리게 독출하는 단계를 포함할 수 있다.
실시 예에 따른 전자 장치는 스트리밍부, 디스플레이, 하나 이상의 인스트럭션을 저장하는 메모리 및 상기 메모리에 저장된 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 스트리밍부를 통해 수신한 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하고, 상기 디스플레이를 제어하여 상기 멀티 컨텐츠가 복수개의 부분 화면들을 이용한 멀티 뷰로 출력되도록 하고, 상기 스트리밍부는 상기 멀티스트림들 간의 우선 순위를 고려하여, 상기 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하고, 상기 멀티스트림들은 상기 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함할 수 있다.
실시 예에 따른 컴퓨터로 판독 가능한 기록 매체는 멀티스트림들을 수신하는 단계, 상기 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하는 단계 및 상기 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하는 단계를 포함하고, 상기 멀티스트림들을 수신하는 단계는 상기 멀티스트림들 간의 우선 순위를 고려하여, 상기 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하는 단계를 포함하고, 상기 멀티스트림들은 상기 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함하는, 전자 장치의 동작 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체일 수 있다.
일 실시 예에 따른 전자 장치 및 그 동작 방법은 멀티스트림들 간의 우선 순위를 고려하여 멀티스트림들을 처리할 수 있다.
일 실시 예에 따른 전자 장치 및 그 동작 방법은 우선 순위가 높은 스트림부터 네트워크 대역폭을 할당하여 어댑티브 스트리밍할 수 있다.
일 실시 예에 따른 전자 장치 및 그 동작 방법은 멀티스트림들 중 우선 순위가 높은 스트림의 버퍼링 상태에 따라 우선 순위가 낮은 스트림의 버퍼링 수행 여부를 결정할 수 있다.
도 1은 실시 예에 따라, 전자 장치가 멀티 뷰 모드로 동작하는 것을 설명하기 위한 도면이다.
도 2는 실시 예에 따라, 전자 장치가 서버로부터 우선 순위를 고려하여 멀티스트림을 수신하는 동작을 설명하기 위한 도면이다.
도 3은 실시 예에 따라, 전자 장치가 서버로부터 우선 순위를 고려하여 멀티스트림을 수신하는 동작을 설명하기 위한 도면이다.
도 4는 실시 예에 따른, 스트리밍부의 내부 블록도이다.
도 5는 실시 예에 따른, 스트리밍 엔진부의 내부 블록도이다.
도 6는 실시 예에 따른, 멀티스트림들에 우선 순위 식별 정보를 설명하기 위한 도면이다.
도 7은 실시 예에 따라, 사용자로부터 우선 순위 식별 정보를 입력 받는 것을 설명하기 위한 도면이다.
도 8은 실시 예에 따른, 전자 장치의 내부 블록도이다.
도 9는 실시 예에 따른, 전자 장치(900)의 내부 블록도이다.
도 10은 실시 예에 따라, 전자 장치가 멀티스트림들의 버퍼링을 관리하는 것을 설명하기 위한 도면이다.
도 11은 실시 예에 따라, 전자 장치가 멀티스트림들의 버퍼링을 관리하는 것을 설명하기 위한 도면이다.
도 12는 실시 예에 따라, 멀티뷰로 컨텐츠를 재생할 때 컨텐츠들을 동기화하여 재생하는 방법을 설명하기 위한 도면이다.
도 13은 실시 예에 따라, 우선 순위를 고려하여 멀티스트림들을 버퍼링하는 동작을 설명하기 위한 순서도이다.
도 14는 실시 예에 따라, 전자 장치가 우선 순위가 높은 스트림부터 버퍼링을 수행하는 것을 설명하기 위한 순서도이다.
도 15는 실시 예에 따라, 전자 장치가 멀티 뷰 재생 중 멀티스트림의 버퍼링을 조절하는 것을 설명하기 위한 순서도이다.
도 16은 도 15의 단계 1550을 보다 구체적으로 설명하기 위한 순서도이다.
도 17은 실시 예에 따라, 전자 장치가 멀티 뷰로 컨텐츠를 재생할 때 동기를 맞추어 재생하는 것을 설명하기 위한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시 예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 본 개시에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것이며, 본 개시를 한정하려는 의도로 사용되는 것이 아니다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
본 명세서, 특히, 특허 청구 범위에서 사용된 “상기” 및 이와 유사한 지시어는 단수 및 복수 모두를 지시하는 것일 수 있다. 또한, 본 개시에 따른 방법을 설명하는 단계들의 순서를 명백하게 지정하는 기재가 없다면, 기재된 단계들은 적당한 순서로 행해질 수 있다. 기재된 단계들의 기재 순서에 따라 본 개시가 한정되는 것은 아니다.
본 명세서에서 다양한 곳에 등장하는 "일부 실시 예에서" 또는 "일 실시 예에서" 등의 어구는 반드시 모두 동일한 실시 예를 가리키는 것은 아니다.
본 개시의 일부 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 명세서에서 “사용자”라는 용어는 전자 장치를 이용하여 전자 장치의 기능 또는 동작을 제어하는 사람을 의미하며, 시청자, 소비자, 관리자 또는 설치 기사를 포함할 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 실시 예에 따라, 전자 장치가 멀티 뷰 모드로 동작하는 것을 설명하기 위한 도면이다.
도 1을 참조하면, 전자 장치(100)는 컨텐츠를 출력할 수 있다. 실시 예에서, 전자 장치(100)는 컨텐츠를 화면에 출력할 수 있는 텔레비전 등의 디스플레이 장치일 수 있다.
실시 예에서, 전자 장치(100)는 사용자들에게 보다 다양한 컨텐츠 경험을 제공하기 위해 멀티스트리밍 서비스를 제공할 수 있다. 멀티스트리밍 서비스는 전자 장치(100)가 멀티스트림들을 수신하고 수신된 멀티스트림들을 각각 처리하여 디스플레이 화면의 복수개의 영역에서 서로 다른 컨텐츠를 제공하는 서비스를 의미할 수 있다. 멀티스트리밍 서비스는 멀티 뷰 서비스 또는 멀티 스크린 서비스로 언급될 수도 있다.
전자 장치(100)는 디스플레이를 복수개의 화면으로 분할하고, 분할된 화면에 각각 서로 다른 컨텐츠를 표시하여 컨텐츠를 멀티 뷰 모드로 제공할 수 있다. 멀티 뷰 모드에서 디스플레이의 각 분할된 화면은 부분 화면으로도 언급될 수 있다.
멀티 뷰 모드에서 표시되는 컨텐츠는 방송국으로부터 직접 RF 신호로 수신된 방송 컨텐츠, 외부 소스(source)를 통해서 수신된 방송 컨텐츠, 인터넷을 통해 컨텐츠 제공 서버로부터 수신되는 컨텐츠 중 하나 이상을 포함할 수 있다.
멀티 뷰 모드에서 복수의 화면에 제공되는 컨텐츠 신호들은 IP 스트리밍 신호(50)에 포함된 멀티스트림들로부터 획득될 수 있다. 이 때 복수의 멀티스트림들은 동일한 서버로부터 전송될 수도 있고, 일부만 동일한 서버에서 전송되고 나머지는 별개의 서버로부터 전송될 수도 있다.
OTT 서비스 제공자나 IPTV 서비스 제공자는 광대역 연결 상에서 인터넷 프로토콜을 사용하여 소비자에게 각종 컨텐츠를 제공할 수 있다. 이들 서비스 제공자는 스트리밍 서비스를 제공하여 실시간으로 소비자가 라이브 방송을 이용할 수 있도록 하거나, VOD(Video on demand) 서비스를 제공하여 소비자가 원하는 시간에 원하는 컨텐츠에 대응하는 스트림을 스트리밍 혹은 다운로드 방식으로 수신하여 이용하도록 할 수 있다. 이하, 소비자에게 컨텐츠를 제공하는 지상파 방송국이나 케이블 방송국, 또는 OTT 서비스 제공자, IPTV 서비스 제공자를 컨텐츠 프로바이더라고 부르기로 한다.
전자 장치(100)는 컨텐츠 프로바이더가 제공하는 복수 컨텐츠를 멀티스트림 형태로 받아 이를 처리하여 화면에 출력할 수 있다. 실시 예에서, 컨텐츠는, 컨텐츠 프로바이더들이 스트리밍 서버나 VOD(Video on demand) 서버를 통해 제공하는 각종 영화나 드라마 등의 아이템을 포함할 수 있으며, 비디오 신호, 오디오 신호, 텍스트 신호 중 하나 이상을 포함할 수 있다.
컨텐츠 프로바이더는 멀티 뷰 모드로 출력되도록 복수의 컨텐츠들 각각에 대응하는 멀티스트림들을 생성할 수 있다.
복수의 컨텐츠들이 라이브 신호인 경우, 컨텐츠 프로바이더는 컨텐츠에 대응하는 스트림들을 라이브로 스트리밍 서버에 전송할 수 있다. 스트리밍 서버는 라이브 신호를 실시간으로 저장하면서 동시에 이를 전자 장치(100)로 전송할 수 있다. 실시간으로 멀티 뷰 시청을 위해, 전자 장치(100)가 스트리밍 서버에 컨텐츠를 요청하는 경우, 스트리밍 서버는 복수의 컨텐츠들에 대응하는 멀티스트림들을 전자 장치(100)로 전송할 수 있다.
컨텐츠 프로바이더는 복수 컨텐츠를 VOD 서버에 저장할 수 있다. VOD 서버는 기 생성된 스트림들을 저장하다가 사용자의 요청에 따라 전자 장치(100)로 전송할 수 있다.
멀티 뷰 모드에서 제공되는 복수의 화면은 다양한 개수로 결정될 수 있다. 멀티 뷰 모드에서 제공되는 부분 화면의 개수는 두 개, 세 개, 네 개 또는 그 이상이 될 수 있다. 도 1에서는 예시적으로 네 개의 부분 화면이 구성된 것을 표시하였다. 도 1을 참조하면, 멀티 뷰 모드는 제1 화면(10), 제2 화면(20), 제3 화면(30), 제4 화면(40)으로 구성될 수 있다.
도 1에서, 멀티스트림들은 스트림 1 내지 스트림 4를 포함할 수 있다. 스트림 1로부터 제1 컨텐츠가 획득되고 제1 컨텐츠는 제1화면(10)을 통해서 표시될 수 있다. 유사하게, 스트림 2로부터 획득된 제2 컨텐츠가 제2화면(20)을 통해서, 스트림 3으로부터 획득된 제3 컨텐츠가 제3화면(30)을 통해서, 스트림 4로부터 획득된 제4 컨텐츠가 제4화면(40)을 통해 표시될 수 있다.
멀티 뷰 모드에서 제공되는 복수의 화면의 배치는 다양하게 결정될 수 있다. 도 1에서는 예시적으로 하나의 화면을 디스플레이의 위쪽 중앙에 배치하고 세개의 화면을 디스플레이의 아래쪽에 나란히 배열한 것을 표시하였다.
멀티 뷰 모드에서 제공되는 복수의 화면의 크기는 다양하게 결정될 수 있다. 복수의 부분 화면의 크기는 모두 동일하거나, 서로 다른 크기를 가질 수 있다.
멀티 뷰로 함께 출력되는 복수개의 컨텐츠들은 서로 연관된 컨텐츠들일 수 있다. 복수개의 컨텐츠들은 하나의 이벤트를 서로 다른 각도나 방향, 서로 다른 장소 등에서 촬영하여 생성된 것일 수 있다.
예를 들어, 야구 등의 스포츠 경기가 전자 장치(100)의 화면에 출력되는 경우, 멀티 뷰 모드에서 복수의 부분 화면에 표시되는 컨텐츠는 해당 스포츠 경기에서 포착될 수 있는 복수의 장면에 대응하는 컨텐츠가 될 수 있다. 예를 들어, 멀티 뷰 모드의 각 부분 화면은 타자를 중심으로 보여주는 컨텐츠, 포수를 중심으로 보여주는 컨텐츠, 감독을 중심으로 보여주는 컨텐츠, 관중을 중심으로 보여주는 컨텐츠를 표시할 수 있다. 또 다른 예로, 공연을 중계하는 컨텐츠의 경우, 멀티 뷰 모드의 각 부분 화면은 해당 공연에서 연기를 하거나 연주를 하는 각 공연자를 중심으로 보여주는 컨텐츠를 표시할 수 있다.
실시 예에서, 컨텐츠 프로바이더는 복수의 컨텐츠들 중, 가장 중요하게 여겨지는 컨텐츠를 메인 컨텐츠로 설정할 수 있다. 메인 컨텐츠는 복수의 컨텐츠들 중 끊김 없이 재생될 것이 제일 많이 요구되는 컨텐츠일 수 있다. 예컨대, 컨텐츠 프로바이더는 스포츠 경기에 대해 복수의 컨텐츠를 생성할 때, 경기 장면의 컨텐츠가 감독이나 관객에 대한 장면의 컨텐츠보다 더 중요하다고 판단할 수 있다. 이 경우, 컨텐츠 프로바이더는 경기 장면에 대한 컨텐츠를 메인 컨텐츠로 설정할 수 있다.
또는 컨텐츠 프로바이더는 복수의 컨텐츠들 중, 다른 컨텐츠들을 동기화하는 데 기준이 되는 컨텐츠를 메인 컨텐츠로 설정할 수 있다. 컨텐츠 프로바이더는 메인 컨텐츠와 동기화되어 재생될 컨텐츠를 서브 컨텐츠로 설정할 수 있다. 예컨대, 컨텐츠 프로바이더는 연주회 장면 중 지휘자에 대한 장면의 컨텐츠가 연주자들에 대한 장면의 컨텐츠 재생 시 동기화되는 기준이 되어야 한다고 판단할 수 있다. 이 경우, 컨텐츠 프로바이더는 지휘자에 대한 컨텐츠를 메인 컨텐츠로 설정할 수 있다.
메인 컨텐츠는 가장 중요하게 여겨지는 컨텐츠 내지는 다른 컨텐츠들을 동기화하는 데 있어 기준이 되는 컨텐츠라는 점에서, 컨텐츠들 간의 관계에서 우선 순위가 가장 높게 설정될 수 있다.
경우에 따라, 메인 컨텐츠는 복수 개 있을 수 있다. 예컨대, 컨텐츠 프로바이더는 야구 경기에 대해 컨텐츠를 생성할 때, 타자를 중심으로 보여주는 컨텐츠와 포수를 중심으로 보여주는 컨텐츠가 모두 중요하다고 판단하고, 둘을 메인 컨텐츠로 설정할 수 있다. 이 경우, 컨텐츠 프로바이더는 복수 개의 메인 컨텐츠들 간에도 우선 순위를 설정할 수 있다. 예컨대, 컨텐츠 프로바이더는 타자 중심의 컨텐츠를 포수 중심의 컨텐츠보다 더 우선 순위가 높은 메인 컨텐츠로 설정할 수 있다.
컨텐츠 프로바이더는 메인 컨텐츠 외의 컨텐츠를 서브 컨텐츠로 설정할 수 있다. 예컨대, 위 예에서, 서브 컨텐츠는 감독석에 대한 컨텐츠나 해설자, 관중석에 대한 컨텐츠 등을 포함할 수 있다.
또는 서브 컨텐츠는 메인 컨텐츠에 대한 추가적인 정보를 제공하는 컨텐츠를 포함할 수 있다. 예를 들어, 서브 컨텐츠는 야구 경기 방송에서 야구 경기의 점수나, 팀에 대한 정보, 야구 선수들에 대한 정보를 포함할 수 있고, 공연 중계 방송에서 공연자들에 대한 정보, 공연물에 대한 정보를 포함할 수도 있다.
서브 컨텐츠는 메인 컨텐츠보다 우선 순위가 낮게 설정될 수 있다. 컨텐츠 프로바이더는 서브 컨텐츠가 복수개인 경우, 복수의 서브 컨텐츠들 간에도 우선 순위를 설정할 수 있다. 예컨대, 컨텐츠 프로바이더는 서브 컨텐츠들 중, 감독석에 대한 컨텐츠, 해설자에 대한 컨텐츠, 관중석에 대한 컨텐츠 순으로 중요하다고 판단하는 경우, 감독석에 대한 컨텐츠에 제2 우선 순위를 할당하고, 해설자에 대한 컨텐츠에 제3 우선 순위를 할당하고, 관중석에 대한 컨텐츠에 제4 우선 순위를 할당할 수 있다.
실시 예에서, 멀티스트림들을 생성하는 컨텐츠 프로바이더는 멀티스트림들에 대한 속성 정보를 포함하는 컨텐츠 정보를 생성할 수 있다. 컨텐츠 정보는 멀티스트림들에 대한 서지사항을 포함하는 일종의 메타데이터일 수 있다. 컨텐츠 정보는 컨텐츠 이용가능성, 컨텐츠 타입, 시간, 해상도, 최소 및 최대 대역폭, 서버(200) 상에서의 스트림의 URL 등의 경로, 액세스 특징, DRM(Digital Rights Management)과 같은 컨텐츠 속성에 관한 정보를 포함할 수 있다. 또한, 실시 예에서, 컨텐츠 정보는 멀티스트림들의 개수, 각 스트림의 식별 번호, 각 스트림 간의 관계 중 적어도 하나를 포함할 수 있다. 각 스트림 간의 관계는 각 스트림이 메인인지 서브인지를 표시하는 식별자, 서브 스트림이 동기화를 맞추어야 할 대상이 되는 스트림을 표시하는 식별자, 각 스트림 별 우선 순위를 나타내는 정보 중 적어도 하나를 포함할 수 있다.
이하, 멀티스트림들 간의 관계를 나타내는 정보를 우선 순위 식별 정보라고 부르기로 한다. 컨텐츠는 스트림이 복호화되어 생성된다는 점에서, 우선 순위 식별 정보는 멀티스트림들 간의 우선 순위뿐 아니라 멀티 컨텐츠들 간의 우선 순위도 동일하게 나타낼 수 있다.
컨텐츠 프로바이더는 복수 컨텐츠들/스트림들 각각에 대해 우선 순위를 결정하고 이를 우선 순위 식별 정보로 생성할 수 있다. 우선 순위 식별 정보는 복수의 컨텐츠 별/스트림 별 우선 순위를 나타내는 정보를 포함할 수 있다.
실시 예에서, 컨텐츠 프로바이더는 우선 순위 식별 정보를 컨텐츠 정보에 포함시켜 이를 전자 장치(100)로 전송할 수 있다.
또는 실시 예에서, 컨텐츠 프로바이더는 멀티스트림들간의 우선 순위를 나타내는 우선 순위 식별 정보를 컨텐츠 정보와는 별개의 메타데이터로 생성하고, 이를 멀티스트림과 별개로, 또는 멀티스트림에 포함시켜 전자 장치(100)로 전송할 수 있다.
예컨대, 우선 순위 식별 정보는 트랜스포트 스트림의 헤더에 포함되어 전자 장치(100)로 전송될 수 있다. 또는, 우선 순위 식별 정보는 멀티스트림들 중 메인 스트림의 헤더에 포함되어 전자 장치(100)로 전송될 수도 있다.
전자 장치(100)는 컨텐츠 정보를 획득하고 이로부터 우선 순위 식별 정보를 획득하거나, 또는 컨텐츠 정보와는 별개로 생성된 우선 순위 식별자를 멀티스트림이나 메인 스트림의 헤더로부터 획득하고 이로부터 각 스트림 별 우선 순위를 식별할 수 있다.
다른 실시 예에서, 우선 순위 식별 정보는 전자 장치(100)를 이용하여 멀티 뷰 모드로 컨텐츠를 시청하는 사용자에 의해 직접 설정될 수도 있다. 예컨대, 전자 장치(100)는 사용자의 요청에 따라 인터페이스 화면을 출력하고 이를 통해 사용자로부터 복수의 스트림들 간의 우선 순위를 직접 설정 받을 수도 있다.
전자 장치(100)는 어댑티브(adaptive) 스트리밍 기술을 이용하여 멀티스트림들을 수신할 수 있다. 어댑티브 스트리밍 기술은 네트워크 대역폭에 따라 컨텐츠의 비트레이트를 조절하여 데이터를 스트리밍하는 것을 의미할 수 있다. 컨텐츠 프로바이더는 동일한 영상에 대해 480p, 720p, 1080p 등과 같이 다양한 해상도로 인코딩된 스트림을 준비하고 있다가, 네트워크 상태에 따라 전자 장치(800)가 요청하는 해상도의 스트림을 전자 장치(800)로 전송할 수 있다.
네트워크 대역폭이 멀티스트림들을 모두를 어댑티브 스트리밍할 만큼 충분하지 않은 경우, 멀티스트림들 모두의 스트리밍이 지연되거나 끊어져 화면 재생이 늦어지거나 저화질로만 재생될 수 있다.
실시 예에 의하면, 전자 장치(100)는 멀티 뷰 출력을 위해 멀티스트림들을 수신할 때, 각 스트림 별 우선 순위를 고려하여 멀티스트림들을 스트리밍할 수 있다.
실시 예에서, 전자 장치(100)는 우선 순위가 높은 메인 스트림부터 네트워크 대역폭을 할당하여 어댑티브 스트리밍을 하여, 우선 순위가 높은 컨텐츠가 끊김 없이 출력되도록 할 수 있다.
도 2는 실시 예에 따라, 전자 장치가 서버로부터 우선 순위를 고려하여 멀티스트림을 수신하는 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 전자 장치(100)는 멀티뷰 모드에 따라서 복수의 화면, 제 1화면(10), 제2 화면(20), 제3 화면(30), 제4 화면(40)을 통해 각각 제1 컨텐츠, 제2 컨텐츠, 제3 컨텐츠, 제4 컨텐츠를 표시할 수 있다.
전자 장치(100)는 멀티스트림들을 수신하는 기능을 수행하는 스트리밍부(101)를 포함할 수 있다. 스트리밍부(101)는 복수의 인스턴스들(121, 122, 123, 124)를 포함하는 스트리밍 모듈(120) 및 스트리밍 모듈(120)을 제어하는 스트리밍 매니저(110)를 포함할 수 있다.
스트리밍 매니저(110)는 서버(200)로부터 서버(200)가 제공하는 컨텐츠 정보를 획득할 수 있다. 컨텐츠 정보는 컨텐츠 이용가능성, 컨텐츠 타입, 시간, 해상도, 최소 및 최대 대역폭, 서버(200) 상에서의 스트림의 URL 등의 경로, 액세스 특징, DRM(Digital Rights Management)과 같은 컨텐츠 속성에 관한 정보를 포함할 수 있다. 실시 예에서, 컨텐츠 정보는 서버(200)가 제공하는 멀티스트림들의 개수, 각 스트림의 식별 번호, 각 스트림 간의 관계 중 적어도 하나를 더 포함할 수 있다. 각 스트림 간의 관계는 우선 순위 식별 정보를 의미할 수 있다. 즉, 우선 순위 식별 정보는 각 스트림이 메인인지 서브인지를 표시하는 식별자, 서브 스트림이 동기화를 맞추어야 할 대상이 되는 스트림을 표시하는 식별자, 각 스트림 별 우선 순위를 나타내는 우선 순위 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 스트리밍 매니저(110)는 컨텐츠 정보와는 별개로, 우선 순위 식별 정보를 서버(200)로부터 획득할 수도 있다. 스트리밍 매니저(110)는 우선 순위 식별 정보를 메타데이터 형태로 획득하거나 멀티스트림의 헤더, 메인 스트림의 헤더 등으로부터 획득할 수도 있다.
스트리밍 매니저(110)는 이와 같은 정보에 기초해서 적절한 해상도를 갖는 스트림을 선택할 수 있다. 즉, 스트리밍 매니저(110)는 네트워크 대역폭의 상태, 각 스트림을 수신하는 인스턴스(121, 122, 123, 124)의 버퍼 공간, 및 각 스트림의 비트레이트에 기초하여 각 인스턴스(121, 122, 123, 124)에 적절한 스트림을 선택할 수 있다. 스트리밍 매니저(110)는 선택한 스트림을 전송하도록 서버(200)에 요청할 수 있다.
또한, 스트리밍 매니저(110)는 컨텐츠가 재생되는 동안에도 전자 장치(100)의 환경이나 네트워크 대역폭 환경의 변화에 따라 컨텐츠에 대응하는 스트림을 더 높은 비트레이트나 더 낮은 비트레이트의 스트림으로 전송할 것을 서버에 요청할 수 있다.
실시 예에서, 스트리밍 매니저(110)가 아닌, 각각의 인스턴스(121, 122, 123, 124)가 직접 서버(200)에 적절한 스트림을 요청할 수도 있다. 각 인스턴스(121, 122, 123, 124)는 각 인스턴스(121, 122, 123, 124)가 처리할 스트림의 주소를 스트리밍 매니저(110)로부터 받고, 이를 이용하여 서버(200)에 접속하여 각 인스턴스(121, 122, 123, 124)에 맞는, 적절한 해상도를 갖는 스트림을 전송해 줄 것을 요청할 수 있다.
서버(200)는 복수의 컨텐츠에 대응하는 스트림들을 저장할 수 있다. 서버(200)는 각 컨텐츠마다 서로 다른 해상도의 스트림을 저장할 수 있다. 예를 들어 서버(200)는 제1 컨텐츠에 대응하는 제1 스트림(210)에 대해서 각각 8K, 4K, 2K의 스트림을 저장하고, 제2 컨텐츠 내지 제4컨텐츠에 대해서도 마찬가지로 다양한 해상도의 스트림을 저장할 수 있다. 서버(200)는 전자 장치(100)로부터 특정한 해상도의 컨텐츠 요청을 수신하면, 요청된 해상도의 스트림을 전자 장치 (100)로 제공할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 스트리밍 모듈(120)을 제어할 수 있다. 스트리밍 매니저(110)는 각 스트림 별 우선 순위를 나타내는 우선 순위 식별 정보를 획득하고, 이를 이용하여, 스트리밍 모듈(120)에 포함된 각각의 인스턴스(121, 122, 123, 124)를 제어할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 멀티스트림들 간의 우선 순위를 고려하여, 멀티스트림들 중 우선 순위가 높은 스트림부터 네트워크 대역폭이 할당되도록 각각의 인스턴스(121, 122, 123, 124)를 제어할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 각 인스턴스(121, 122, 123, 124)에 포함된 버퍼 용량과 현재 버퍼에 채워진 데이터 량, 버퍼에서 언더플로우가 발생하는 기준이 되는 소정 임계 값, 버퍼의 데이터 량이 소정 값 이상이 되어 일정 수준 이상 데이터량이 확보될 것이 예측되는 값, 각 스트림의 비트레이트 등을 고려하여 각 인스턴스(121, 122, 123, 124)에서의 버퍼 상황을 계산할 수 있다. 스트리밍 매니저(110)는 각 인스턴스(121, 122, 123, 124)에 포함된 버퍼에 언더플로우가 발생할지, 또는 버퍼의 데이터 량이 소정 값 이상일 지 여부를 예측할 수 있다.
예컨대, 멀티 뷰로 출력할 컨텐츠의 개수가 네 개이고, 네 개의 멀티스트림들이, 제1 스트림(210), 제2 스트림(220), 제3 스트림(230), 제4 스트림(240) 순서대로 우선 순위가 높다고 가정한다. 스트리밍 매니저(110)는 우선 순위 식별 정보를 이용하여 제1 스트림(210)이 가장 우선 순위가 높다는 것을 식별하고, 제1 스트림(210)에 네트워크 대역폭을 먼저 할당하여, 제1 스트림(210)부터 어댑티브 스트리밍이 되도록 스트리밍 모듈(120)을 제어할 수 있다.
스트리밍 매니저(110)는 전자 장치(100)의 가용 네트워크 상태, 제1 스트림(210)을 수신하는 제1 인스턴스(121)의 버퍼 공간, 제1 스트림(210)의 비트레이트에 기초하여 적절한 해상도를 갖는 제1 스트림(210)을 선택할 수 있다. 스트리밍 매니저(110)는 서버(200)에 선택한 해상도를 갖는 제1 스트림(210)을 전송해 줄 것을 요청할 수 있다. 서버(200)는 스트리밍 매니저(110)가 요청한 해상도의 제1 스트림(210)을 전자 장치(100)로 전송할 수 있다.
제1 인스턴스(121)는 서버(200)로부터 제1 스트림(210)을 수신하고 이로부터 제1 컨텐츠를 획득할 수 있다. 제1 인스턴스(121)는 제1 스트림(210)을 스트리밍하여 이를 디코딩하고, 디코딩된 결과를 렌더링함으로써 제1 컨텐츠를 획득할 수 있다. 제1 인스턴스(121)에 의해 획득된 제1 컨텐츠는 제1 화면(10)을 통해 출력될 수 있다.
유사하게, 스트리밍 매니저(110)는 전자 장치(100)의 가용 네트워크 상태, 제2 스트림(220)을 수신하는 제2 인스턴스(122)의 버퍼 공간, 제2 스트림(220)의 비트레이트에 기초하여 적절한 해상도를 갖는 제2 스트림(220)을 선택할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 멀티스트림들 중 우선 순위가 낮은 스트림들, 예컨대, 제2 스트림(220) 내지 제4 스트림(240)에 대해서는 우선 순위가 높은 스트림, 예컨대, 제1 스트림(210)을 수신하는 버퍼에서 언더플로우가 발생하지 않을 것이 예측되는 경우에만 스트리밍을 수행하도록 스트리밍 모듈(120)을 제어할 수 있다. 즉, 스트리밍 매니저(110)는 네트워크 대역폭을 제1 스트림(210)을 스트리밍하는데 먼저 할당하고, 제1 스트림(210)의 스트리밍 상황에 따라 제1 스트림(210)을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 경우에만 제2 스트림(220)에 대해 버퍼링을 수행하도록 스트리밍 모듈(120)을 제어할 수 있다.
또한, 마찬가지로, 스트리밍 매니저(110)는 제1 스트림(210)과 제2 스트림(220)을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 경우에만 제3 스트림(230)에 대해 버퍼링을 수행하도록 스트리밍 모듈(120)을 제어할 수 있다. 스트리밍 매니저(110)는 제2 스트림(220)을 수신하는 버퍼에서 언더플로우 발생이 예측되는 경우, 제3 스트림(230) 및 제4 스트림(240)에 대해서는 버퍼링을 수행하지 않도록 스트리밍 모듈(120)을 제어할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 제1 스트림(210)과 제2 스트림(220)을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 경우, 제1 스트림(210)과 제2 스트림(220)이 동시에 버퍼링되도록 스트리밍 모듈(120)을 제어할 수 있다.
또는 다른 실시 예에서, 스트리밍 매니저(110)는 우선 순위가 높은 스트림에 대한 버퍼링이 완료된 이후에 다음 우선 순위를 갖는 스트림의 버퍼링이 시작되도록 스트리밍 모듈(120)을 제어할 수도 있다.
스트리밍 매니저(110)는 멀티 뷰로 컨텐츠가 재생되는 동안에도 계속하여 전자 장치(100)의 환경이나 네트워크 대역폭 환경의 변화를 고려하여 각 스트림들의 버퍼링 수행 여부를 결정할 수 있다. 네 개의 스트림 모두가 각 인스턴스(121, 122, 123, 124)에 의해 버퍼링되어 멀티 뷰로 출력되는 중에, 네트워크 대역폭의 상태가 변경되는 경우, 스트리밍 매니저(110)는 각 스트림을 수신하는 버퍼에서 언더플로우가 발생할 지 여부를 결정할 수 있다.
예컨대, 우선 순위가 높은 제1 스트림(210)과 제2 스트림(220)을 수신하는 버퍼에서는 언더플로우 발생이 예측되지 않고, 그 다음 우선 순위를 갖는 제3 스트림(230)을 수신하는 버퍼에서 소정 시간 후에 언더플로우가 발생할 것이 예측되는 경우, 스트리밍 매니저(110)는 제4 스트림(240)을 처리하는 제4 인스턴스(124)를 제어하여 더 이상 제4 스트림(240)을 기존의 비트레이트로 버퍼링하지 못하도록 할 수 있다. 이 경우, 이미 버퍼에 다운로드되어 있는 제4 스트림(240)의 패킷들까지는 모두 독출되어 재생될 수 있으나, 그 이후의 패킷부터는 재생되지 못하게 된다. 전자 장치(100)는 제4 화면(40)을 통해 마지막으로 재생했던 화면을 계속 출력하거나 또는 해당 화면을 검게 표시할 수도 있다.
또는, 스트리밍 매니저(110)는 제4 스트림(240)이 이전보다 낮은 비트레이트로 재생되도록 서버(200)에 더 낮은 해상도의 스트림을 요청할 수 있다.
또는, 스트리밍 매니저(110)는 제4 스트림(240) 중에, 데이터 용량이 적은 오디오 스트림만을 서버(200)에 요청하고, 서버(200)로부터 오디오 스트림만을 받아 스트리밍할 수도 있다.
위 예에서, 제1 스트림(210) 내지 제3 스트림(230)은 계속하여 버퍼링이 수행되므로 이에 대응하는 제1 컨텐츠 내지 제3 컨텐츠는 계속하여 화면에 출력되는 반면, 제4 스트림(240)은 다운로드가 정지되었으므로 제4 컨텐츠는 어느 시점부터는 더 이상 화면에 출력되지 못하게 된다. 실시 예에서, 스트리밍 매니저(110)는 제4 스트림(240)의 버퍼링이 중지된 상태에서 제1 스트림(210) 내지 제3 스트림(230)을 처리하는 제1 인스턴스(121) 내지 제3 인스턴스(123)를 계속 모니터링하여, 해당 인스턴스에 속한 버퍼의 데이터 량이 소정 값 이상일 것인지를 예측할 수 있다. 버퍼의 데이터 량이 소정 값 이상이 된다는 것은 해당 버퍼에 데이터가 기준 값 이상 확보되었다는 것을 의미할 수 있다.
스트리밍 매니저(110)는 제1 스트림(210) 내지 제3 스트림(230)을 수신하는 버퍼 중 어느 하나 이상에서 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 경우, 다시 남은 네트워크 대역폭을 제4 스트림(240)을 스트리밍하는 데 할애할 수 있다. 즉, 스트리밍 매니저(110)는 제4 인스턴스(124)를 제어하여 제4 스트림(240)에 대한 버퍼링이 다시 시작되도록 할 수 있다.
제4 인스턴스(124)가 제4 스트림에 대해 버퍼링을 멈춘 지점부터 다시 버퍼링을 시작할 경우, 제1 스트림(210) 내지 제3 스트림(230)으로부터 획득되는 컨텐츠와 제4 스트림(240)으로부터 획득되는 컨텐츠는 서로 동기가 맞지 않게 된다.
컨텐츠 간의 동기화를 위해, 스트리밍 매니저(110)는 제4 스트림(240)의 버퍼링이 완료될 시점을 예측할 수 있다. 스트리밍 매니저(110)는 가장 우선 순위가 높은 제1 스트림(210)을 기준으로, 제1 스트림(210)의 패킷들 중, 예측된 시점에 재생될 패킷을 식별할 수 있다. 스트리밍 매니저(110)는 식별된 제1 스트림(210)의 패킷과 동기화하여 출력될, 제4 스트림(240)의 패킷부터 버퍼링하도록 제4 인스턴스(124)를 제어할 수 있다.
전술한 바와 같이 스트리밍 매니저(110)는 각 인스턴스(121, 122, 123, 124)에 포함된 버퍼 용량과 현재 버퍼에 채워진 데이터 량, 버퍼에서 언더플로우나 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 기준 값, 각 스트림의 비트레이트 등을 고려하여 각 인스턴스(121, 122, 123, 124)에 포함된 버퍼에 언더플로우가 발생할지, 또는 데이터가 어느 정도 확보 될 것을 예측하고 각 인스턴스(121, 122, 123, 124)를 제어할 수 있다.
또는 다른 실시 예에서, 스트리밍 매니저(110)가 아닌, 각각의 인스턴스(121, 122, 123, 124)가 각각의 인스턴스(121, 122, 123, 124)에 포함된 버퍼의 데이터 량 등을 계산하여 향후 언더플로우가 발생할지, 버퍼의 데이터 량이 소정 값 이상일지를 예측하고 그 결과를 스트리밍 매니저(110)에게 이벤트로 알려줄 수도 있다. 스트리밍 매니저(110)는 각 인스턴스(121, 122, 123, 124)로부터 이벤트를 받고 그에 따라 어느 인스턴스에서 버퍼링이 수행되도록 할 것인지, 또는 버퍼링이 수행되지 않도록 할 것인지 여부를 결정하고, 각 인스턴스(121, 122, 123, 124)를 제어할 수 있다.
이와 같이, 실시 예에 의하면, 전자 장치(100)는 각 스트림의 우선 순위를 고려하여, 우선 순위가 높은 순서대로 네트워크 대역폭을 할당하여 스트리밍을 함으로써 우선 순위가 높은 스트림의 재생이 보장되도록 할 수 있다.
도 3은 실시 예에 따라, 전자 장치가 서버로부터 우선 순위를 고려하여 멀티스트림을 수신하는 동작을 설명하기 위한 도면이다.
도 3를 참조하면, 도 2와 마찬가지로 전자 장치(100)는 멀티스트림들을 스트리밍하는 스트리밍부(101)를 포함할 수 있다. 스트리밍부(101)는 복수의 인스턴스(121, 122, 123, 124)를 포함하는 스트리밍 모듈(120) 및 스트리밍 모듈(120)을 제어하는 스트리밍 매니저(110)를 포함할 수 있다. 전자 장치(100)는 멀티뷰 모드에 따라서 복수의 화면, 제 1화면(10), 제2 화면(20), 제3 화면(30), 제4 화면(40)을 통해 복수의 컨텐츠를 각각 표시할 수 있다.
이하, 도 2에 대한 설명에서 설명한 내용과 중복되는 부분에 대해서는 설명을 생략한다.
도 2와 달리, 도 3에서는 멀티 뷰 제공을 위한 스트림들이 서로 다른 서버로부터 전송될 수 있다. 도 3은, 제1 서버(310)가 제1 컨텐츠 및 제2 컨텐츠에 대응하는 제1 스트림(311) 및 제2 스트림(312)을 저장하고, 제2 서버(320)가 제3 컨텐츠 및 제4 컨텐츠에 대응하는 제3 스트림(321) 및 제4 스트림(322)을 저장하고 있는 것을 도시한다.
제1 서버(310)는 컨텐츠 정보를 전자 장치(100)로 전송할 수 있다. 전자 장치(100)는 컨텐츠 정보에 기초하여 적절한 해상도를 갖는 스트림을 선택할 수 있다. 제1 서버(310)는 제1 컨텐츠 및 제2 컨텐츠를 서로 다른 해상도의 스트림으로 저장하고 있다. 예를 들어 제1 서버(310)는 제1 컨텐츠에 대응하는 제1 스트림(311)에 대해서 각각 8K. 4K, 2K의 스트림을 저장하고, 제2 컨텐츠에 대해서도 마찬가지로 다양한 해상도의 스트림을 저장할 수 있다. 제1 서버(310)는 전자 장치(100)로부터 특정한 해상도의 제1 컨텐츠 및 제2 컨텐츠 요청을 수신하고, 요청된 해상도의 제1 스트림(311) 및 제2 스트림(312)을 전자 장치 (100)로 제공할 수 있다.
유사하게, 제2 서버(320)도 컨텐츠 정보를 전자 장치(100)로 전송할 수 있다. 전자 장치(100)는 제2 서버(320)로부터 컨텐츠 정보를 수신하고 이에 기반하여 적절한 해상도를 갖는 제3 스트림(321) 및 제4 스트림(322)을 제2 서버(320)에 요청할 수 있다. 제2 서버(320)는 전자 장치(100)가 요청한 해상도를 가진 제3 스트림(321) 및 제4 스트림(322)을 전자 장치(100)로 제공할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 제1 서버(310) 및 제2 서버(320)로부터 받은 컨텐츠 정보를 통해 제1 서버(310)와 제2 서버(320)의 IP 어드레스를 식별하여 두 서버(310, 320)의 분리 여부를 결정할 수 있다.
스트리밍 매니저(110)는 두 서버(310, 320)의 IP 어드레스가 다른 경우, 두 서버(310, 320)가 분리되었다고 판단할 수 있다. 스트리밍 매니저(110)는 두 서버(310, 320)가 분리되었다고 판단하는 경우, 동일 서버로부터 제공되는 스트림들 간에만 우선 순위를 고려할 수 있다. 스트리밍 매니저(110)는 각 서버(310, 320)로부터 전송된 컨텐츠 정보를 통해 동일 서버로부터 전송되는 스트림들 간의 우선 순위를 식별하고, 우선 순위에 따라 멀티스트림들 중 우선 순위가 높은 스트림부터 스트리밍하도록 각각의 인스턴스(121, 122, 123, 124)를 제어할 수 있다.
네트워크 대역폭은 각 서버(310, 320)와 전자 장치(100) 사이에서 정해지므로, 도 3과 같이, 멀티스트림들을 제공하는 서버가 분리되어 있는 경우 제1 서버(310)와 전자 장치(100) 간의 네트워크 대역폭과 제2 서버(320)와 전자 장치(100) 간의 네트워크 대역폭은 서로 독립적일 수 있다.
실시 예에서, 스트리밍 매니저(110)는 동일한 서버로부터 전송되는 스트림들 간의 우선 순위를 고려하여 우선 순위가 높은 스트림이 먼저 스트리밍되도록 스트리밍 모듈(120)을 제어할 수 있다. 즉, 스트리밍 매니저(110)는 제1 서버(310)로부터 전송되는 제1 스트림(311) 및 제2 스트림(312) 간의 우선 순위를 고려하여, 우선 순위가 더 높은 제1 스트림(311)부터 네트워크 대역폭이 할당되도록 할 수 있다. 스트리밍 매니저(110)는 제1 스트림(311)의 버퍼링 상태를 고려하여 제2 스트림(312)의 버퍼링 여부를 결정할 수 있다.
스트리밍 매니저(110)는 전자 장치(100)의 가용 네트워크 상태, 제1 스트림(311)을 수신하는 제1 인스턴스(121)의 버퍼 공간, 제1 스트림(311)의 비트레이트에 기초하여 적절한 해상도를 갖는 제1 스트림(311)을 제1 서버(310)에 요청하고, 제1 서버(310)로부터 선택한 해상도를 갖는 제1 스트림(311)을 수신할 수 있다. 제1 인스턴스(121)는 서버(311)로부터 제1 스트림(311)을 수신하고 이로부터 제1 컨텐츠를 획득할 수 있다.
스트리밍 매니저(110)는 전자 장치(100)의 가용 네트워크 상태, 제2 스트림(312)을 수신하는 제2 인스턴스(122)의 버퍼 공간, 제2 스트림(312)의 비트레이트에 기초하여 적절한 해상도를 갖는 제2 스트림(312)을 선택할 수 있다. 실시 예에서, 스트리밍 매니저(110)는 제1 스트림(311)을 수신하는 버퍼에서 언더플로우가 발생하지 않을 것이 예측되는 경우에만 제2 스트림(312)이 스트리밍되도록 제2 인스턴스(122)를 제어할 수 있다.
마찬가지로, 스트리밍 매니저(110)는 제3 스트림(321)과 제4 스트림(322)을 제2 서버(320)로부터 수신할 때에도 우선 순위가 높은 제3 스트림(321)을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 경우에만 제4 스트림(322)에 대해 버퍼링을 수행하도록 제4 인스턴스(124)를 제어할 수 있다.
실시 예에서, 스트리밍 매니저(110)는 제1 스트림(311)과 제2 스트림(312)을 수신하는 각각의 버퍼에서 언더플로우 발생이 예측되지 않는 경우, 제1 스트림(311)과 제2 스트림(312)이 동시에 버퍼링되도록 스트리밍 모듈(120)을 제어할 수 있다. 또는 다른 실시 예에서, 스트리밍 매니저(110)는 우선 순위가 높은 제1 스트림(311)에 대한 버퍼링이 완료된 이후에 제2 스트림(312)의 버퍼링이 시작되도록 스트리밍 모듈(120)을 제어할 수도 있다.
스트리밍 매니저(110)는 멀티 뷰로 컨텐츠가 재생되는 동안에도 네트워크 대역폭의 상태나 버퍼의 상태를 계속 모니터링하여, 제1 스트림(311)을 수신하는 버퍼에서 언더플로우가 발생할 지 여부를 결정할 수 있다. 스트리밍 매니저(110)는 제1 스트림(311)을 수신하는 버퍼에서 언더플로우 발생이 예측되는 경우, 제2 스트림(312)의 다운로드가 수행되지 않도록 제2 인스턴스(122)를 제어할 수 있다.
이 경우, 이미 버퍼에 다운로드되어 있는 제2 스트림(312)의 패킷들까지는 모두 독출되어 제2 컨텐츠로 제2 화면(20)을 통해 재생될 수 있으나, 그 이후의 패킷부터는 재생되지 못하게 된다. 실시 예에서, 스트리밍 매니저(110)는 계속하여 제1 스트림(311)을 수신하는 것이 예측되는지 버퍼의 데이터 량이 소정 값 이상일지를 예측하고, 버퍼의 데이터 량이 소정 값 이상 확보될 것이 예측되는 경우, 제2 스트림(312)이 다시 버퍼링되도록 제2 인스턴스(122)를 제어할 수 있다. 이 때, 스트리밍 매니저(110)는 제2 스트림(312)으로부터 획득되는 제2 컨텐츠가 제1 스트림(311)으로부터 획득되는 제1 컨텐츠와 동기화되어 재생되도록 하기 위해, 제2 스트림(312) 중 어느 패킷부터 버퍼링을 시작할지를 결정할 수 있다. 스트리밍 매니저(110)는 제2 스트림(312)의 패킷들의 버퍼링 완료 시점을 예측하고, 제1 스트림(311)의 패킷들 중 예측된 시점에 재생될 패킷을 식별할 수 있다. 스트리밍 매니저(110)는 식별된 제1 스트림(311)의 패킷과 동기화하여 출력될, 제2 스트림(312)의 패킷부터 버퍼링하도록 제2 인스턴스(122)를 제어할 수 있다.
이와 같이, 실시 예에 의하면, 전자 장치(100)는 스트림들을 전송하는 서버의 분리 여부를 고려하여, 동일한 서버로부터 전송되는 스트림들 간의 우선 순위에 따라 스트림을 스트리밍할 수 있다.
도 4는 실시 예에 따른, 스트리밍부의 내부 블록도이다.
도 4를 참조하면, 스트리밍부(400)는 각 멀티스트림 별로 생성된 인스턴스(410 내지 440)를 포함하는 스트리밍 모듈(401) 및 스트리밍 모듈(401)을 제어하는 스트리밍 매니저(450)를 포함할 수 있다.
전자 장치는 멀티스트림들을 처리할 비디오 플레이어, 즉, 인스턴스를 생성할 수 있다. 인스턴스는 하나의 컨텍스트를 가지는 독립된 개체를 의미할 수 있다. 인스턴스는 어떤 집합에 대해서, 그 집합의 개별적인 요소를 의미할 수 있다. 즉, 인스턴스는 실행 중인 임의의 프로세스, 클래스의 현재 생성된 오브젝트를 가리킬 수 있다.
인스턴스는 비디오 플레이어가 수행해야 할 기능을 정의해 놓은 소프트웨어 구현 레벨에서의 코드를 의미할 수 있다. 인스턴스는 런타임에 메모리에 적재될 수 있다.
비디오 플레이어, 즉, 인스턴스는 각 스트림마다 하나씩 생성될 수 있다. 즉, 멀티 뷰 모드에서 부분 화면으로 출력할 컨텐츠가 네 개인 경우, 네 개의 스트림 각각에 대해 네 개의 인스턴스가 각각 생성될 수 있다.
인스턴스는 비디오 플레이어가 처리할 기능을 수행하는 복수의 모듈들을 내부에 가지고 있을 수 있다. 도 4에서와 같이, 제1 인스턴스 내지 제4 인스턴스(410 내지 440)는 스트리밍 엔진부(411, 421, 431, 441), 디코더(413, 423, 433, 443) 및 렌더러(415, 425, 435, 445)를 포함할 수 있다.
제1 인스턴스(410)는 제1 스트림을 처리할 수 있다. 제1 인스턴스(410)는 서버로부터 전송된 컨텐츠 정보로부터 제1 스트림의 서버 상의 주소를 획득하고, 이를 이용하여, 서버에 제1 스트림 전송을 요청할 수 있다.
제1 인스턴스(410)에 포함된 스트리밍 엔진부(411)는 패킷화된 데이터를 소정 비트율의 입력 신호(IN1)로 수신하고, 수신된 데이터를 역패킷화할 수 있다. 스트리밍 엔진부(411)는 입력 신호(IN1)로 수신한 패킷화된 데이터의 크기와 간격을 이용하여 수신한 크기와 간격에 따라 비트레이트를 결정할 수 있다.
스트리밍 엔진부(411)에 대해서는 도 5를 참조하여 보다 구체적으로 설명하기로 한다.
도 5는 실시 예에 따른, 스트리밍 엔진부의 내부 블록도이다.
도 5를 참조하면, 스트리밍 엔진부(411)는 버퍼(511) 및 제어 신호 처리부(513)를 포함할 수 있다. 버퍼(511)는 스트리밍 경로를 통해 수신된 패킷화된 데이터가 역패킷화되어 액세스 유닛으로 생성되어 버퍼링되는 공간일 수 있다. 버퍼(511)에는 버퍼(511)의 점유 상태를 알기 위해, 데이터를 수신하는 버퍼링의 하한선(Low Buffer Limit: LBL)과 상한선(Upper Buffer Limit: UBL)이 설정될 수 있다. 하한선과 상한선은 같을 수도 있고 하한선이 상한선보다 더 낮은 값을 가질 수도 있다.
각 인스턴스(410, 420, 430, 440)에 포함된 스트리밍 엔진부(411, 421, 431, 441) 내의 버퍼는 각 인스턴스(410, 420, 430, 440) 별로, 버퍼의 공간이 서로 독립적일 수 있다. 즉, 각 인스턴스(410, 420, 430, 440)에 포함된 버퍼 별로 버퍼의 용량, 상한선, 하한선이 서로 독립적일 수 있다.
스트리밍 엔진부(411) 또는 스트리밍 매니저(450)는 계속하여 버퍼(511)의 공간 상태를 체크할 수 있다. 버퍼에 데이터가 하한선 이하로 저장되어 있는 경우 언더플로우가 발생된 것을 의미할 수 있다. 언더플로우가 발생했다는 것은 버퍼로부터 독출할 데이터가 부족하다는 것을 의미할 수 있다. 따라서, 버퍼에 언더플로우가 발생할 경우, 뒤로 전송할 데이터가 부족하기 때문에 다운로드 속도가 늦어지거나 재생이 끊어질 수 있다.
버퍼에 데이터가 상한선 이상 저장되어 있는 경우 버퍼의 데이터 량이 끊어짐 없이 재생될 만큼 소정 값 이상 확보된 것을 의미할 수 있다.
실시 예에서, 버퍼(511)는 서버로부터 전송된 제1 스트림을 패킷화된 데이터로 입력 받을 수 있다. 버퍼(511)는 소정 비트율의 패킷화된 데이터를 입력 신호(IN1)로 수신하고, 수신된 데이터를 역패킷화하여 저장할 수 있다.
버퍼(511)는 입력 신호(IN1)로 수신한 패킷화된 데이터의 크기와 간격을 제어 신호 처리부(513)에 알려줄 수 있다.
제어 신호 처리부(513)는 버퍼(511)로부터 패킷화된 데이터의 크기와 간격을 받고, 이에 따라 비트레이트를 결정할 수 있다. 또한, 제어 신호 처리부(513)는 버퍼(511)의 버퍼링 상태를 체크하고, 버퍼(511)의 버퍼링 상태 및 비트레이트를 이용하여 제어 신호를 생성할 수 있다. 제어 신호 처리부(513)는 제어 신호를 출력 신호(OUT1)로 하여 서버로 전송할 수 있다.
서버는 제어 신호를 수신하고 제어 신호에 따른 비트레이트로 데이터를 생성하고 이를 전자 장치로 전송할 수 있다.
다시, 도 4로 돌아와서, 스트리밍 엔진부(411)는 버퍼(511)에 저장되어 있는 역패킷화된 데이터를 출력 신호(OUT5)로 디코더(413)로 보낼 수 있다. 디코더(413)는 스트리밍 엔진부(411)에서 역 패킷화된 결과를 받고 이를 디코딩하여 그 결과를 렌더러(415)로 보낸다. 렌더러(415)는 디코딩된 결과를 렌더링하고 렌더링된 결과를 출력 신호(OUT1’)로 출력할 수 있다.
실시 예에서, 스트리밍 매니저(450)는 제1 인스턴스 내지 제4 인스턴스(410 내지 440)를 제어하여, 어느 스트림에 대해 버퍼링이 수행되도록 할지를 결정할 수 있다. 스트리밍 매니저(450)는 어느 스트림에 대해 버퍼링이 수행되도록 할 것인지를 결정하는 데 있어, 서버로부터 수신하거나, 또는 사용자로부터 설정 받은, 각 스트림의 우선 순위 식별 정보를 고려할 수 있다. 실시 예에서, 스트리밍 매니저(450)는 우선 순위가 높은 스트림부터 어댑티브 스트리밍을 수행하도록 각 인스턴스(410, 420, 430, 440)를 제어할 수 있다.
스트리밍 매니저(450)는 우선 순위에 따라 우선 순위가 높은 스트림의 버퍼링이 완료된 이후 순차적으로 다음 우선 순위를 갖는 스트림이 버퍼링되도록 각 인스턴스들(410, 420, 430, 440)를 제어할 수 있다. 스트리밍 매니저(450)는 제1 스트림의 우선 순위가 가장 높다는 것을 식별하고, 제1 인스턴스(410)를 제어하여 제1 스트림이 버퍼링되도록 할 수 있다. 이 때, 스트리밍 매니저(450)는 다른 인스턴스들(420, 430, 440)은 버퍼링을 수행하지 않도록 제어할 수 있다. 스트리밍 매니저(450)는 제1 스트림의 버퍼링이 완료된 경우, 다음 우선 순위를 갖는 스트림, 즉, 제2 스트림의 버퍼링이 수행되도록 제2 인스턴스(420)를 제어할 수 있다.
실시 예에서, 스트리밍 매니저(450)는 제2 스트림 이후에 대해서는 버퍼링을 수행하기 전에 해당 스트림을 버퍼링할 것인지 여부를 먼저 결정할 수 있다. 스트리밍 매니저(450)는 네트워크 대역폭의 상태, 인스턴스(410, 420, 430, 440)에서 각각의 스트림을 수신하는 스트리밍 엔진부(411, 421, 431, 441)의 버퍼 상태, 각 스트림의 비트레이트 중 적어도 하나에 기초하여, 각 스트림의 버퍼링 수행 여부를 결정할 수 있다. 예컨대, 스트리밍 매니저(450)는 제1 스트림을 수신하는 스트리밍 엔진부(411)의 버퍼(511)에서 소정 시점 이후 언더플로우가 발생할지 여부를 예측할 수 있다. 스트리밍 매니저(450)는 스트리밍 엔진부(121)의 버퍼에서 언더플로우가 발생하지 않을 것이 예측되면, 제2 인스턴스(420)에 포함된 스트리밍 엔진부(421)가 제2 스트림을 버퍼링하도록 제어할 수 있다.
유사한 방법으로, 스트리밍 매니저(450)는 제2 인스턴스(420)에 포함된 스트리밍 엔진부(421)의 버퍼에서 언더플로우가 발생할 지 여부를 결정할 수 있다. 스트리밍 매니저(450)는 스트리밍 엔진부(421)의 버퍼에서 언더플로우가 발생할 것이 예측되면, 제3 인스턴스(430)에 포함된 스트리밍 엔진부(431)가 제3 스트림을 버퍼링하지 못하도록 제어할 수 있다.
도 6는 실시 예에 따른, 멀티스트림들에 우선 순위 식별 정보를 설명하기 위한 도면이다.
컨텐츠 프로바이더는 멀티스트림들을 생성할 때, 컨텐츠 속성을 표시하는 컨텐츠 정보를 생성할 수 있다. 컨텐츠 정보는 멀티스트림들에 대한 서지사항을 포함하는 일종의 메타데이터일 수 있다. 컨텐츠 정보는 멀티스트림들과 별도로 서버로부터 전송될 수 있다. 또는 컨텐츠 정보는 멀티스트림들과 함께 전송될 수도 있다.
컨텐츠 정보는 멀티스트림들 간의 관계를 나타내는 우선 순위 식별 정보를 포함할 수 있다.
도 6은, 우선 순위 식별 정보(600)의 일 예로, 우선 순위 식별 정보(600)가 json 포맷으로 작성된 것을 도시한다. 그러나 이는 하나의 실시 예로, 우선 순위 식별 정보는 XML, HTML, 기타 다른 포맷으로 작성될 수도 있음은 물론이다.
도 6에서와 같이, 우선 순위 식별 정보(600)는 각 스트림이 메인인지 서브인지를 표시하는 식별자, 서브 스트림이 동기화를 맞추어야 할 대상이 되는 스트림을 표시하는 식별자, 각 스트림 별 우선 순위를 나타내는 정보 중 적어도 하나를 포함할 수 있다.
도 7은 실시 예에 따라, 사용자로부터 우선 순위 식별 정보를 입력 받는 것을 설명하기 위한 도면이다.
실시 예에서, 컨텐츠 프로바이더가 우선 순위 식별 정보를 생성하지 않은 경우, 전자 장치(700)는 임의로 멀티스트림들 간의 우선 순위를 설정할 수도 있다. 또는 전자 장치(700)는 멀티스트림들 간의 우선 순위를 사용자에게 묻고, 사용자로부터 우선 순위를 설정 받을 수 있다.
실시 예에서, 컨텐츠 프로바이더가 우선 순위 식별 정보를 생성한 경우에도, 사용자는 본인의 취향 등에 따라 멀티스트림들 간의 우선 순위를 바꾸고자 할 수 있다. 예컨대, 컨텐츠가 피아노와 바이올린, 첼로를 각각 연주하는 각각의 공연자들에 대한 컨텐츠라고 가정한다. 전자 장치(700)는 멀티 뷰 모드의 각 부분 화면을 통해 해당 공연에서 각 악기를 연주하는 공연자를 표시할 수 있다. 이 때 사용자는 컨텐츠 프로바이더가 미리 설정한 우선 순위와는 달리, 본인이 좋아하는 악기 순서에 따라 각 스트림의 우선 순위를 설정하고 싶을 수 있다. 이 경우, 사용자는 전자 장치(700)를 제어하여 우선 순위를 직접 설정할 수도 있다.
도 7을 참조하면, 전자 장치(700)는 멀티 뷰를 출력할 때 사용자에게 멀티 뷰로 출력되는 컨텐츠들 간에 우선 순위를 설정할 것인지를 묻는 제1 인터페이스 화면(710)을 디스플레이할 수 있다. 도 7에서와 같이, 제1 인터페이스 화면(710)은 전자 장치(700)의 화면의 일 부분 영역 상에 텍스트 창 형태로 디스플레이 될 수 있다. 인터페이스 화면(710)의 크기, 출력 위치, 투명도, 및/또는 형태는 다양하게 변형될 수 있다.
전자 장치(700)는 제1 인터페이스 화면(710)을 통하여 ‘네’ 메뉴를 선택하는 사용자 입력이 수신되면, 멀티스트림들 간에 우선 순위 설정을 위한 제2 인터페이스 화면(720) 및 제3 인터페이스 화면(720)을 출력할 수 있다.
제2 인터페이스 화면(720)은 멀티스트림들 중 메인으로 설정할 스트림을 선택하라는 것을 지시하는 내용을 포함하는 텍스트 창 형태의 화면일 수 있다. 제3 인터페이스 화면(730)은 현재 전자 장치(700)가 멀티 뷰 모드에서 제공하는 복수의 부분 화면 및 그 부분 화면들의 배치와 동일한 형상을 축소하여 표시한 화면일 수 있다. 사용자는 제3 인터페이스 화면(730)에서 각 부분 화면에서 출력되는 스트림들 중 메인 스트림으로 설정할 스트림을 선택할 수 있다.
유사한 방법으로, 전자 장치(700)는 우선 순위가 높은 순서대로 제1 스트림부터 제4 스트림까지를 사용자로부터 선택 받을 수 있다.
전자 장치(700)는 사용자로부터 선택 받은 우선 순위에 대한 정보를 메모리 등에 저장할 수 있다. 전자 장치(700)는 멀티 뷰를 재생할 때, 사용자로부터 선택 받은 우선 순위를 고려하여, 우선 순위가 높은 스트림부터 버퍼링을 수행할 수 있다.
도 8은 실시 예에 따른, 전자 장치의 내부 블록도이다.
도 8을 참조하면, 전자 장치(800)는 프로세서(810), 메모리(820), 스트리밍부(830) 및 디스플레이(840)를 포함할 수 있다.
실시 예에서, 전자 장치(800)는 영상 표시 장치일 수 있다. 영상 표시 장치는 디지털 방송 수신이 가능한 디지털 TV일 수 있으나, 이에 한정되지 않으며, 디스플레이를 포함하여 멀티스트림들을 멀티 뷰로 출력할 수 있는 다양한 형태의 전자 장치로 구현될 수 있다.
예를 들어, 전자 장치(800)는, 데스크탑, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 디지털 카메라, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 캠코더, 네비게이션, 웨어러블 장치(wearable device), 스마트 와치(smart watch), 홈네트워크 시스템, 보안 시스템, 의료 장치 중 적어도 하나를 포함할 수 있다.
전자 장치(800) 고정형 또는 이동형일 수 있다. 전자 장치(800) 소스 장치(미도시)와 연결될 수 있다. 소스 장치는 PC(personal computer), DVD 플레이어, 비디오 게임기, 셋탑박스(set-top box), AV 리시버, 케이블 수신 장치나 위성 방송 수신 장치, OTT(Over The Top) 서비스 제공자나 IPTV(Internet Protocol Television) 서비스 제공자로부터 컨텐츠를 받는 인터넷 수신 장치 중 적어도 하나를 포함할 수 있다.
실시 예에서, 디스플레이(840)는 컨텐츠 프로바이더들이 제공하는 컨텐츠를 화면에 표시할 수 있다. 디스플레이(840)는 실시간으로 수신되는 방송 프로그램을 화면에 출력하거나 또는 서버로부터 스트리밍하거나 다운로드 한 컨텐츠를 화면에 출력할 수 있다.
실시 예에서, 디스플레이(840)는 멀티 뷰 모드로 컨텐츠를 출력할 수 있다. 디스플레이(840)는 화면을 복수개의 부분 화면으로 분할하고, 분할된 부분 화면에 각각 서로 다른 컨텐츠를 표시하여 컨텐츠를 멀티 뷰 모드로 제공할 수 있다. 디스플레이(840)는 각각의 부분 화면에 각각의 컨텐츠를 출력할 수 있다.
디스플레이(840)가 터치 스크린으로 구현되는 경우, 디스플레이(840)는 출력 장치 이외에 사용자 인터페이스와 같은 입력 장치로 사용될 수 있다. 예를 들어, 디스플레이(840)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉서블 디스플레이(flexible display), 3차원 디스플레이(8D display), 전기 영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고, 디스플레이(840)의 구현 형태에 따라, 디스플레이(840)는 둘 이상 포함될 수 있다.
실시 예에 따른 메모리(820)는, 적어도 하나의 인스트럭션을 저장할 수 있다. 메모리(820)는 프로세서(810)가 실행하는 적어도 하나의 프로그램을 저장하고 있을 수 있다. 메모리(820)에는 기 정의된 동작 규칙이나 프로그램이 저장될 수 있다. 또한 메모리(820)는 전자 장치(800)로 입력되거나 전자 장치(800)로부터 출력되는 데이터를 저장할 수 있다.
메모리(820)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
실시 예에서, 스트리밍부(830)는 서버로부터 멀티스트림을 수신할 수 있다. 스트리밍부(830)는 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치(800)에 탑재되거나, 또는 소프트웨어 모듈로 구현될 수 있다.
스트리밍부(830)는 서버로부터 멀티스트림을 어댑티브 스트리밍할 수 있다.
실시 예에서, 스트리밍부(830)는 컨텐츠 정보를 수신할 수 있다. 컨텐츠 정보는 각 스트림을 스트리밍할 수 있는 서버 상의 주소, 예컨대 URL을 포함할 수 있다. 스트리밍부(830)는 컨텐츠 정보를 기반으로 각 스트림이 저장되어 있는 서버 상의 주소를 식별하고, 식별된 주소에 접속하여 각 스트림들을 수신할 수 있다.
실시 예에서, 컨텐츠 정보는 우선 순위 식별 정보를 포함할 수 있다. 또는 우선 순위 식별 정보가 컨텐츠 정보에 포함되어 있지 않은 경우, 스트리밍부(830)는 컨텐츠 정보와는 별도로 우선 순위 식별 정보를 획득할 수 있다.
실시 예에서, 스트리밍부(830)는 멀티스트림들 중 메인 스트림의 헤더로부터 우선 순위 식별 정보를 획득하거나, 또는 멀티스트림들과는 별개로 전송된 메타데이터로부터 우선 순위 식별 정보를 획득할 수 있다.
실시 예에서, 우선 순위 식별 정보는 서브 스트림이 동기화되어야 할 대상이 되는 스트림을 식별하는 정보를 포함할 수 있다.
실시 예에서, 스트리밍부(830)는 우선 순위 식별 정보로부터 우선 순위가 가장 높은 제1 스트림을 식별할 수 있다. 스트리밍부(830)는 우선 순위가 가장 높은 제1 스트림을 제일 먼저 버퍼링할 수 있다. 즉, 스트리밍부(830)는 가용 네트워크 대역폭이 우선 순위가 가장 높은 제1 스트림을 스트리밍하는 데 할당되도록 함으로써, 제1 스트림이 끊어짐 없이 고 화질로 재생되도록 할 수 있다.
스트리밍부(830)는 제2 스트림 이후의 스트림에 대해서는 우선 순위를 고려하여 버퍼링 수행 여부를 결정할 수 있다. 스트리밍부(830)는 가용 네트워크 대역폭의 상태와, 각 스트림을 수신하는 버퍼의 공간, 각 스트림의 비트레이트 등에 기초하여, 각 스트림을 버퍼링할 수 있는지를 결정할 수 있다.
실시 예에서, 스트리밍부(830)는 각각의 스트림을 수신하는 버퍼에서 언더플로우가 발생할 것이 예측되면 그 다음 우선 순위를 갖는 스트림에 대해서는 버퍼링을 수행하지 않을 수 있다. 예컨대, 제1 스트림과 제2 스트림을 각각 수신하는 버퍼에서는 언더플로우 발생이 예측되지 않고, 제3 스트림을 수신하는 버퍼에서는 언더플로우 발생이 예측되는 경우, 스트리밍부(830)는 제1 스트림부터 제3 스트림까지는 버퍼링하고, 제4 스트림에 대해서는 버퍼링을 수행하지 않음으로써, 제1 내지 제3 스트림이 끊어짐 없이 재생되도록 할 수 있다.
실시 예에서, 스트리밍부(830)는 각 스트림을 우선 순위에 따라 순차적으로 버퍼링할 수도 있다. 즉, 스트리밍부(830)는 제1 스트림의 버퍼링이 완료된 경우, 제2 스트림의 버퍼링을 시작할 수 있다. 스트림의 버퍼링이 완료되었다는 것은, 스트림을 수신하는 버퍼에 데이터가 소정 기준치 이상 채워진 경우를 의미할 수 있다. 전자 장치(800)는 메인 스트림을 최대한 빨리 화면을 통해 출력하기 위해, 메인 스트림에 대한 버퍼링을 먼저 수행한 이후에 다음 우선 순위를 갖는 스트림을 버퍼링할 수 있다.
다른 실시 예에서, 스트리밍부(830)는 언더플로우 발생이 예측되지 않는 스트림들을 동시에 버퍼링할 수 있다. 즉, 위 예에서, 스트리밍부(830)는 제1 스트림부터 제3 스트림까지를 동시에 버퍼링할 수 있다.
실시 예에서, 스트림들이 이미 버퍼링되어 디스플레이(840)를 통해 각 컨텐츠가 멀티 뷰로 출력되고 있는 상태에서, 스트리밍부(830)는 메인 스트림을 수신하는 버퍼에 데이터가 부족하다고 판단할 수 있다. 즉, 스트리밍부(830)는 메인 스트림을 수신하는 버퍼의 공간과 임계치를 고려하여, 메인 스트림의 비트 레이트가 임계치 이하로 떨어져 언더플로우가 발생될 지 여부를 판단할 수 있다. 언더플로우가 발생하면 스트림의 영상이 끊어지거나 화질이 떨어지게 되므로, 실시 예에서, 스트리밍부(830)는 우선 순위가 낮은 스트림들의 버퍼링을 일시 정지할 수 있다. 즉, 스트리밍부(830)는 가용 네트워크의 대역폭이 전부 메인 스트림의 버퍼링에 할당되도록 함으로써 우선 순위가 높은 스트림의 재생 품질 저하를 막을 수 있다.
실시 예에서, 스트리밍부(830)는 디스플레이(840)가 멀티 뷰로 컨텐츠를 출력하는 중, 제1 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되면, 제2 스트림 이후의 스트림들의 버퍼링을 정지시킬 수 있다.
실시 예에서, 스트리밍부(830)는 제2 스트림 이후의 스트림들의 버퍼링이 정지된 이후, 제1 스트림을 수신하는 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 경우, 다시 제2 스트림 이후의 스트림들을 버퍼링할 수 있다.
실시 예에서, 스트리밍부(830)는 멀티스트림들 중 제1 스트림을 먼저 버퍼링하여 제2 스트림 이후의 스트림들의 버퍼링이 아직 완료되지 않았거나, 또는 제2 스트림 이후의 스트림들의 버퍼링이 일시 정지된 상태에서, 메인 스트림의 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 경우 서브 컨텐츠들도 메인 컨텐츠와 함께 동기화되어 재생되도록 상태를 전환할 수 있다. 즉, 스트리밍부(830)는 네트워크 대역폭의 상태를 고려하여 서브 스트림들이 버퍼에서 임계치 이상 확보될 수 있는 시점, 즉, 서브 스트림들의 버퍼링이 완료될 시점을 예상할 수 있다. 스트리밍부(830)는 제1 스트림의 패킷들 중, 그 예상 시점에 재생될 패킷을 식별할 수 있다. 스트리밍부(830)는 그 예상 시점에 서브 스트림들의 컨텐츠가 메인 스트림의 컨텐츠와 동기화되어 재생되도록 하기 위해, 서브 스트림의 데이터 중 그 예상 시점 이후에 재생될 데이터들부터 버퍼링을 수행할 수 있다.
프로세서(810)는 전자 장치(800)의 전반적인 동작을 제어한다. 프로세서(810)는 메모리(820)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치(800)가 기능하도록 제어할 수 있다.
실시 예에서, 프로세서(810)는 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득할 수 있다. 프로세서(810)는 디스플레이(840)를 제어하여, 디스플레이(840)가 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하도록 할 수 있다.
실시 예에서, 스트리밍부(830)가 수행하는 기능을 프로세서(810)가 직접 수행할 수도 있다. 즉, 프로세서(810)는 각 스트림에 대한 우선 순위 식별 정보를 획득하고, 이를 이용하여 우선 순위가 높은 제1 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍할 수 있다. 프로세서(810)는 제2 스트림 이후의 스트림에 대해서는, 네트워크 대역폭의 상태, 스트림을 수신하는 버퍼의 공간, 스트림의 비트레이트에 기초하여 버퍼링 수행 여부를 결정할 수 있다. 프로세서(810)는 제1 스트림을 수신하는 버퍼에서 언더플로우가 발생할지 또는 버퍼의 데이터 량이 소정 값 이상일 것인지를 예측할 수 있다. 프로세서(810)는 제1 스트림을 수신하는 버퍼에서 언더플로우가 발생할 것이 예측되면, 다른 스트림들의 버퍼링을 정지할 수 있다.
프로세서(810)는 제1 스트림을 수신하는 버퍼의 데이터 량이 소정 값 이상일 것이 예측되면, 버퍼링을 정지했던 스트림들을 다시 버퍼링할 수 있다. 프로세서(810)는 버퍼링을 정지했던 스트림들을 다시 버퍼링할 때, 제1 스트림과 다른 스트림들을 동기화하여 재생하기 위해 다른 스트림들의 버퍼링 완료 시점을 예측하고 그 예측된 시점에 재생될 제1 스트림의 패킷을 식별하고, 식별된 패킷과 동기화하여 출력될 다른 스트림들의 패킷들부터 버퍼링할 수 있다.
실시 예에서, 프로세서(810)는 멀티 컨텐츠들의 동기를 맞추기 위해, 각 컨텐츠의 재생 속도를 조절할 수 있다. 프로세서(810)는 멀티 컨텐츠가 동기가 맞추어져 재생될 시점을 획득할 수 있다. 프로세서(810)는 제2 스트림 이후의 스트림들로부터 획득되는 컨텐츠들의 재생 속도를 조절하여, 그 재생 시점부터 제1 스트림으로부터 획득되는 컨텐츠와 제2 스트림 이후의 스트림들로부터 획득되는 컨텐츠들이 동기화하여 재생되도록 디스플레이(840)를 제어할 수 있다.
보다 구체적으로, 프로세서(810)는 제2 스트림 이후의 스트림들 중 재생 속도가 제1 스트림의 재생 속도보다 느린 스트림이 있는 경우, 전자 장치(800)가 느린 스트림의 패킷 또는 느린 스트림으로부터 획득된 컨텐츠의 프레임을 드랍하면서 버퍼링하도록 전자 장치(800)를 제어할 수 있다.
또는 프로세서(810)는 제2 스트림 이후의 스트림들 중 재생 속도가 제1 스트림의 재생 속도보다 빠른 스트림이 있는 경우, 빠른 스트림의 패킷을 버퍼로부터 느리게 독출하도록 전자 장치(800)를 제어함으로써 컨텐츠들을 동기화할 수 있다.
도 9는 실시 예에 따른, 전자 장치(900)의 내부 블록도이다.
도 9를 참조하면, 전자 장치(900)는 프로세서(810), 메모리(820), 스트리밍부(830), 디스플레이(840) 외에, 튜너부(910), 통신부(920), 감지부(930), 입/출력부(940), 비디오 처리부(950), 오디오 처리부(960), 오디오 출력부(970), 및 사용자 인터페이스(980)를 더 포함할 수 있다.
도 9의 전자 장치(900)는 도 8의 전자 장치(800)의 구성 요소를 포함할 수 있다. 따라서, 프로세서(810), 메모리(820), 스트리밍부(830) 및 디스플레이(840)에 대하여, 도 8에서 설명한 내용과 중복되는 설명은 생략한다.
도 9의 전자 장치(900)는 멀티 뷰로 컨텐츠를 출력할 수 있는 영상 표시 장치일 수 있다. 예를 들어, 전자 장치(900)는 디지털 TV, 데스크탑, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 디지털 카메라, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 캠코더, 네비게이션, 웨어러블 장치(wearable device), 스마트 와치(smart watch), 홈네트워크 시스템, 보안 시스템, 의료 장치 중 적어도 하나를 포함할 수 있다.
프로세서(810)는 전자 장치(900)의 전반적인 동작을 제어한다. 프로세서(810)는 메모리(820)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 전자 장치(900)가 기능하도록 제어할 수 있다.
튜너부(910)는 유선 또는 무선으로 수신되는 방송 컨텐츠 등을 증폭(amplification), 혼합(mixing), 공진(resonance)등을 통하여 많은 전파 성분 중에서 전자 장치(900)에서 수신하고자 하는 채널의 주파수만을 튜닝(tuning)시켜 선택할 수 있다. 튜너부(910)를 통해 수신된 컨텐츠는 디코딩(decoding, 예를 들어, 오디오 디코딩, 비디오 디코딩 또는 부가 정보 디코딩)되어 오디오, 비디오 및/또는 부가 정보로 분리된다. 분리된 오디오, 비디오 및/또는 부가 정보는 프로세서(810)의 제어에 의해 메모리(830)에 저장될 수 있다. 실시 예에서 부가 정보는 비디오 내에 포함되어 전송될 수도 있다.
통신부(920)는 프로세서(810)의 제어에 의해 전자 장치(900)를 외부 장치나 서버와 연결할 수 있다. 전자 장치(900)는 통신부(920)를 통해 외부 장치나 서버 등으로부터 전자 장치(900)가 필요로 하는 프로그램이나 어플리케이션(application)을 다운로드하거나 또는 웹 브라우징을 할 수 있다.
통신부(920)는 전자 장치(900)의 성능 및 구조에 대응하여 무선 랜(921), 블루투스(922), 및 유선 이더넷(Ethernet)(923) 중 하나를 포함할 수 있다. 또한, 통신부(920)는 무선랜(921), 블루투스(922), 및 유선 이더넷(Ethernet)(923)의 조합을 포함할 수 있다. 통신부(920)는 프로세서(810)의 제어에 의해 리모컨 등과 같은 제어 장치(미도시)를 통한 제어 신호를 수신할 수 있다. 제어 신호는 블루투스 타입, RF 신호 타입 또는 와이파이 타입으로 구현될 수 있다. 통신부(920)는 블루투스(922) 외에 다른 근거리 통신(예를 들어, NFC(near field communication, 미도시), BLE(bluetooth low energy, 미도시)를 더 포함할 수 있다. 실시 예에 따라, 통신부(920)는 블루투스(922)나 BLE와 같은 근거리 통신을 통하여 외부 장치 등과 연결 신호를 송수신할 수도 있다.
감지부(930)는 사용자의 음성, 사용자의 영상, 또는 사용자의 인터랙션을 감지하며, 마이크(931), 카메라부(932), 및 광 수신부(933)를 포함할 수 있다. 마이크(931)는 사용자의 발화(utterance)된 음성을 수신할 수 있고 수신된 음성을 전기 신호로 변환하여 프로세서(810)로 출력할 수 있다.
카메라부(932)는 센서(미도시) 및 렌즈(미도시)를 포함하고, 화면에 맺힌 이미지를 촬영할 수 있다.
광 수신부(933)는, 광 신호(제어 신호를 포함)를 수신할 수 있다. 광 수신부(933)는 리모컨이나 핸드폰 등과 같은 제어 장치(미도시)로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다. 수신된 광 신호로부터 프로세서(810)의 제어에 의해 제어 신호가 추출될 수 있다.
입/출력부(940)는 프로세서(810)의 제어에 의해 컨텐츠 프로바이더들이 제공하는 외부의 데이터베이스나 서버 등으로부터 비디오(예를 들어, 동영상 신호나 정지 영상 신호 등), 오디오(예를 들어, 음성 신호나, 음악 신호 등) 및 부가 정보(예를 들어, 컨텐츠에 대한 설명이나 컨텐츠 타이틀, 컨텐츠 저장 위치) 등을 수신할 수 있다. 여기서 부가 정보는 컨텐츠에 대한 메타데이터를 포함할 수 있다.
입/출력부(940)는 HDMI 포트(High-Definition Multimedia Interface port, 941), 컴포넌트 잭(component jack, 942), PC 포트(PC port, 943), 및 USB 포트(USB port, 944) 중 하나를 포함할 수 있다. 입/출력부(940)는 HDMI 포트(941), 컴포넌트 잭(942), PC 포트(943), 및 USB 포트(944)의 조합을 포함할 수 있다.
비디오 처리부(950)는, 디스플레이(840)에 의해 표시될 영상 데이터를 처리하며, 영상 데이터에 대한 디코딩, 렌더링, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 및 해상도 변환 등과 같은 다양한 영상 처리 동작을 수행할 수 있다. 비디오 처리부(950)는 멀티 뷰 출력을 요청 받으면, 복수의 컨텐츠 각각을 처리할 수 있다.
오디오 처리부(960)는 오디오 데이터에 대한 처리를 수행한다. 오디오 처리부(960)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
오디오 출력부(970)는 프로세서(810)의 제어에 의해 튜너부(910)를 통해 수신된 컨텐츠에 포함된 오디오, 통신부(920) 또는 입/출력부(940)를 통해 입력되는 오디오, 메모리(820)에 저장된 오디오를 출력할 수 있다. 오디오 출력부(970)는 스피커(971), 헤드폰 출력 단자(972) 또는 S/PDIF(Sony/Philips Digital Interface: 출력 단자(973) 중 적어도 하나를 포함할 수 있다.
실시 예에서, 스트리밍부(830)는 본 개시서에 개시된 멀티스트리밍 서비스 기능을 수행하도록 동작될 수 있는 적절한 소프트웨어, 로직, 회로, 인터페이스, 및/또는 코드의 조합으로 구현될 수 있다.
실시 예에서, 스트리밍부(830)는 멀티스트림들을 수신할 때 멀티스트림들 간의 관계를 고려하여, 멀티스트림들 중 우선 순위가 높은 스트림에 먼저 네트워크 대역폭을 할당하여 스트리밍할 수 있다.
실시 예에서, 스트리밍부(830)는 각 스트림에 대한 우선 순위 식별 정보를 획득하고 우선 순위가 가장 높은 제1 스트림을 먼저 버퍼링하고, 그 다음 우선 순위를 갖는 스트림들의 버퍼링은 제1 스트림의 버퍼링이 완료된 이후에 수행할 수 있다.
실시 예에서, 스트리밍부(830)는 각 스트림 별 비트레이트 등을 고려하여 버퍼링 수행 여부를 결정할 수 있다. 스트리밍부(830)는 제1 스트림을 수신하는 버퍼에 언더플로우가 발생할지 또는 버퍼의 데이터 량이 소정 값 이상일 것일지를 예측하고, 그에 따라 제2 스트림 이후의 스트림들의 버퍼링 수행 여부를 결정할 수 있다.
도 9에는 스트리밍부(830)가 별개의 구성 요소인 것으로 도시되어 있으나, 이는 하나의 실시 예로, 스트리밍부(830)가 수행하는 기능은 프로세서(810)에 의해 수행될 수도 있다.
사용자 인터페이스(980)는 전자 장치(900)를 제어하기 위한 사용자 입력을 수신할 수 있다. 사용자 인터페이스(980)는 사용자의 터치를 감지하는 터치 패널, 사용자의 푸시 조작을 수신하는 버튼, 사용자의 회전 조작을 수신하는 휠, 키보드(key board), 및 돔 스위치 (dome switch), 음성 인식을 위한 마이크, 모션을 센싱하는 모션 감지 센서 등을 포함하는 다양한 형태의 사용자 입력 디바이스를 포함할 수 있으나 이에 제한되지 않는다.
또한, 전자 장치(900)가 원격 제어 장치(remote controller)(미도시)에 의해서 조작되는 경우, 사용자 인터페이스(980)는 원격 제어 장치로부터 수신되는 제어 신호를 수신할 수도 있다. 원격 제어 장치는 적외선(infrared) 또는 블루투스(bluetooth)를 포함하는 근거리 통신을 이용하여 전자 장치(800)를 제어할 수 있다. 원격 제어 장치는 구비된 키나 버튼, 터치 패드(touchpad), 사용자의 음성 수신이 가능한 마이크(미도시), 및 제어 장치의 모션 인식이 가능한 센서(미도시) 중 적어도 하나를 이용하여 사용자 인터페이스(980)를 통해 전자 장치(900)의 기능을 제어할 수 있다.
실시 예에 따라, 사용자는 사용자 인터페이스(980)를 통하여 전자 장치(900)를 제어하여 전자 장치(900)의 여러 기능들이 수행되도록 할 수 있다. 사용자는 사용자 인터페이스(980)를 이용하여 전자 장치(900)를 제어함으로써, 멀티 뷰로 출력되는 컨텐츠들 간의 우선 순위를 직접 설정할 수도 있다.
도 10은 실시 예에 따라, 전자 장치가 멀티스트림들의 버퍼링을 관리하는 것을 설명하기 위한 도면이다.
도 10을 참조하면, 전자 장치는 서버로부터 멀티스트림들을 수신하여 버퍼링할 수 있다. 도 10에 도시된 것은 각 스트림 별 버퍼를 나타낸 것으로, 각 스트림은 패킷화된 데이터 형태로 버퍼로 입력될 수 있다.
전자 장치는 서버에 멀티스트림들을 요청하고, 서버로부터 멀티스트림들을 수신하여 각 스트림 별 버퍼에 패킷화된 데이터를 입력 받을 수 있다.
전자 장치는 우선 순위 식별 정보를 이용하여 스트림 별 우선 순위를 식별할 수 있다. 도 10에서, 전자 장치는 서버로부터 제1 스트림, 제2 스트림, 제3 스트림, 및 제4 스트림을 수신하고, 우선 순위 식별 정보를 이용하여 제1 스트림은 메인 스트림이고, 제2 내지 제4 스트림은 서브 스트림임을 식별할 수 있다. 또한, 우선 순위 식별 정보를 이용하여 제2 내지 제4 스트림의 우선 순위를 식별할 수 있다.
전자 장치는 각 패킷들을 디먹싱하고 디코딩하여 컨텐츠를 획득하고 이를 멀티 뷰로 출력할 수 있다. 도 10에서, 전자 장치는 네 개의 컨텐츠를 멀티 뷰로 재생하면서 계속하여 전자 장치의 환경이나 네트워크 대역폭 환경의 변화를 모니터링할 수 있다. 즉, 전자 장치는 네트워크 대역폭의 상태 및 각 스트림을 수신하는 버퍼의 공간 상태를 계속하여 체크하고, 이러한 환경의 변화에 따라, 더 높은 비트레이트나 더 낮은 비트레이트의 스트림을 전송해 줄 것을 서버에 요청할 수 있다.
실시 예에서, 전자 장치는 우선 순위가 가장 높은 스트림부터 재생이 보장되도록 하기 위해 제1 스트림의 버퍼 공간을 계속하여 체크할 수 있다.
도 10에서, 전자 장치는 제1 스트림의 버퍼에 언더플로우가 발생하여 버퍼로부터 독출할 데이터가 부족하게 될 것을 예측할 수 있다. 즉, 전자 장치는 현재 시점(T0)을 기준으로 소정 시간이 지난 시점(Tk)에 언더플로우가 발생하여, 제1 스트림이 끊어지거나 또는 다운로드 속도가 늦어지거나, 저화질로 재생될 것을 예측할 수 있다. 이 경우, 전자 장치는, 우선 순위가 낮은 다른 스트림들의 다운로드를 일시 정지하는 상태로 전환할 수 있다.
예컨대, 현재 제1 스트림을 스트리밍하는 데 할애된 네트워크 대역폭이 900KBPS이고, 제1 스트림이 끊김 없이 재생되기 위한 데이터가 1메가 BPS이고, 제1 스트림의 버퍼에 현재 3메가의 데이터가 저장되어 있다고 가정한다. 또한, 제1 스트림의 버퍼에 언더플로우가 발생하게 되는 하한선이 2메가라고 가정한다. 이 경우, 전자 장치는, 초당 100KB가 부족하기 때문에 현재 시점부터 10초 후에는 버퍼에 저장된 데이터 중 1메가의 데이터가 부족해져서 언더플로우가 발생하게 될 것을 예측할 수 있다. 실시 예에서, 전자 장치는 10초 후인 Tk 시점에 제1 스트림의 다운로드 속도가 저하되는 것을 막기 위해, 현재 시점(T0)에, 다른 후순위 스트림들, 즉, 제2 스트림부터 제4 스트림까지의 다운로드를 정지시킬 수 있다. 전자 장치는 현재 시점(T0)부터 제1 스트림만을 버퍼링하고 제2 스트림 내지 제4 스트림에 대해서는 버퍼링을 중단할 수 있다. 전자 장치가 제2 스트림 내지 제4 스트림의 버퍼링을 중단할 경우, 가용 네트워크 대역폭이 모두 제1 스트림을 스트리밍하는 데 할당되므로 제1 스트림은 끊김 없이 버퍼링할 수 있게 된다.
이 경우, 전자 장치는 제2 스트림부터 제4 스트림까지를 수신하는 버퍼에 이미 버퍼링되어 저장되어 있는 데이터들은 남아있는 데이터, 즉, 도 10 도시된 바와 같이 패킷 #114번까지는 계속하여 독출하여 컨텐츠를 재생할 수 있다. 전자 장치는 제2 내지 제4 스트림의 버퍼에 남아있는 데이터를 모두 재생한 후에는 제2 내지 제4 컨텐츠의 재생을 일시 정지할 수 있다. 예컨대, 전자 장치는 제2 화면을 통해 마지막으로 재생하던 제2 컨텐츠를 계속하여 출력하거나, 또는 미리 정해진 영상, 예컨대 블랙 영상을 제2 화면에 출력할 수 있다.
다른 실시 예에서, 전자 장치는 우선 순위가 낮은 모든 스트림들의 버퍼링을 정지하는 대신, 우선 순위가 가장 낮은 스트림 순서대로 버퍼링을 정지할 수도 있다. 예컨대, 전자 장치는 가용 네트워크 대역폭이 100KBPS이고, 제1 스트림이 필요로 하는 네트워크 대역폭이 60KBPS, 제2 내지 제4 스트림이 필요로 하는 네트워크 대역폭이 각각 30KBPS인 경우, 제1 스트림과 제2 스트림은 계속하여 버퍼링하고, 제3 스트림 및 제4 스트림은 다운로드가 정지되도록 하거나, 또는 저화질로 재생되도록 할 수 있다. 또는 전자 장치는 제3 스트림과 제4 스트림은 비디오 데이터 버퍼링은 중지하고 데이터 용량이 적은 오디오 데이터만을 버퍼링하여 오디오 신호 재생되도록 할 수도 있다.
도 11은 실시 예에 따라, 전자 장치가 멀티스트림들의 버퍼링을 관리하는 것을 설명하기 위한 도면이다.
도 11을 참조하면, 전자 장치는 서버로부터 멀티스트림들을 수신하여 버퍼링할 수 있다. 도 11에 도시된 것은 각 스트림 별 버퍼를 나타낸 것으로, 각 스트림은 패킷화된 데이터 형태로 버퍼로 입력될 수 있다.
전자 장치는 도 10에서 설명한 바와 같이 서버로부터 멀티스트림들을 수신하여 멀티 뷰로 컨텐츠를 재생하다가, 환경 변화에 따라 제1 스트림만을 계속 버퍼링하고 나머지 제2 내지 제4 스트림들은 다운로드를 일시 정지한 상태라고 가정한다.
전자 장치는 현재 시점(T0)을 기준으로 제1 스트림의 버퍼에 데이터가 일정한 수준 이상 있다거나 또는 일정한 시간 이상 재생할 만큼 있다고 판단하면, 버퍼링을 정지했던, 우선 순위가 낮은 다른 스트림들을 다시 버퍼링하기 시작할 수 있다.
예컨대, 현재 제1 스트림을 스트리밍하는 데 할애된 네트워크 대역폭이 1.5메가 BPS이고, 제1 스트림이 끊김 없이 재생되기 위한 데이터가 1메가 BPS, 제1 스트림의 버퍼에 현재 2메가의 데이터가 저장되어 있다고 가정한다. 또한, 제1 스트림의 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 기준 값을 4메가라고 가정한다. 이 경우, 전자 장치는 초당 0.5 메가 BPS씩 데이터가 남기 때문에 4초가 지나면 2메가의 데이터가 더해져서 제1 스트림의 버퍼의 데이터 량이 소정 값 이상일 것을 예측할 수 있다.
이 경우, 전자 장치는 우선 순위가 낮은 제2 스트림부터 다시 버퍼링을 시작할 수 있다. 또한, 전자 장치는 제2 스트림의 버퍼의 데이터 량이 소정 값 이상일 것이 예측되면, 그 다음 우선 순위를 갖는 제3 스트림도 버퍼링할 수 있다.
전자 장치는 가용한 네트워크 대역폭 및 제2 내지 제4 스트림이 필요로 하는 네트워크 대역폭을 고려하여 제2 내지 제4 스트림 중 어느 스트림까지 버퍼링할 수 있는지를 결정할 수 있다. 전자 장치는 네트워크 대역폭이 허용할 수 있는 범위까지의 스트림들을 다시 버퍼링할 수 있다.
전자 장치는 버퍼링을 일시 정지했던 스트림들을 다시 버퍼링할 때, 그 스트림들의 버퍼링이 완료될 시점을 먼저 예측할 수 있다. 예를 들어, 전자 장치가 T0 시점에 버퍼링이 중단된 제2 스트림의 버퍼링을 다시 시작해야겠다고 결정한 경우, 전자 장치는 T0 시점의 제2 스트림의 패킷#222부터 다시 버퍼링을 시작하는 것이 아니고, 다시 버퍼링할 스트림이 다운로드되는 데 걸리는 시간을 고려하여 재생 가능 수준의 버퍼가 확보될 것이 예상되는 시점(Tk)을 예측할 수 있다.
즉, 전자 장치는 제2 스트림의 버퍼에 데이터가 저장되기 시작해서 제2 스트림의 버퍼에서 소정 임계치, 즉, 하한선까지 데이터가 저장될 때까지 소요되는 시간을 고려하여 그 시점을 제2 스트림의 재생 준비가 완료될 시점으로 계산할 수 있다. 전자 장치는 제2 스트림의 재생 준비가 완료될 시점인 Tk에 재생될 제2 스트림의 패킷이 패킷 #225라는 것을 식별하고, 제2 스트림의 패킷 #225부터 버퍼링을 시작할 수 있다.
실시 예에서, 전자 장치는 인공지능(Artificial Intelligence, AI) 기술을 이용하여 Tk 시점을 예측할 수도 있다. AI 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성될 수 있다. AI 기술은 알고리즘을 활용하여 구현될 수 있다. 여기서, AI 기술을 구현하기 위한 알고리즘 또는 알고리즘의 집합을 신경망(Neural Network, 뉴럴 네트워크)이라 한다.
전자 장치는, 기 정의된 동작 규칙 또는 AI 모델에 따라, 입력 데이터를 처리할 수 있다. 기 정의된 동작 규칙 또는 AI 모델은 특정한 알고리즘을 이용하여 만들어진 것일 수 있다. 또한 AI 모델은 특정한 알고리즘이 학습된 것일 수 있다. 전자 장치는 AI 모델을 통하여 입력 데이터에 대응되는 출력 데이터를 생성할 수 있다.
실시 예에서, 전자 장치가 이용하는 신경망, 즉, 뉴럴 네트워크는 입력 데이터로부터 비디오의 해상도나 비트레이트를 예상하도록 학습된 뉴럴 네트워크일 수 있다. 예컨대, 전자 장치는 지난 N개의 데이터 수신량, 지난 N개의 데이터 수신에 소요된 시간, 다음 1개의 데이터의 크기, 현재 스트림의 버퍼 크기, 앞으로 받아야할 데이터의 개수, 마지막으로 받았던 데이터의 비트레이트를 입력 받고, 이로부터 비디오의 비트레이트를 예상하거나 Tk 시점을 예측할 수 있다.
예컨대, 전자 장치는 Pensieve와 같은 강화 학습을 사용하여 ABR 알고리즘을 생성하는 뉴럴 네트워크를 이용하여 향후 비디오 패킷의 비트 레이트를 예측하거나 Tk 시점을 예측할 수도 있다.
도 12는 실시 예에 따라, 멀티뷰로 컨텐츠를 재생할 때 컨텐츠들을 동기화하여 재생하는 방법을 설명하기 위한 도면이다.
전자 장치는 멀티 뷰로 복수의 컨텐츠들을 함께 동기화하여 재생할 것이 요구된다. 그러나, 도 10이나 도 11에 대한 설명에서 살펴본 바와 같이, 일부 스트림의 버퍼링이 정지되었다가 다시 버퍼링을 시작하여 컨텐츠를 재생하는 경우, 다시 버퍼링되어 재생되는 컨텐츠는 제1 스트림으로부터 획득되는 제1 컨텐츠와는 서로 동기가 맞지 않을 수 있다.
실시 예에서, 전자 장치는 멀티 컨텐츠가 동기가 맞추어져 재생될 시점을 정하고, 그 시점을 기준으로, 제1 컨텐츠의 재생 속도에 맞게 나머지 컨텐츠들의 재생 속도를 조절할 수 있다. 즉, 전자 장치는 제2 내지 제4 스트림으로부터 획득되는 제2 내지 제4 컨텐츠의 재생 속도를 제1 스트림으로부터 획득되는 제1 컨텐츠의 재생 속도에 맞출 수 있다.
도 12에서, 제1 컨텐츠의 현재 재생 시점을 Tm이라고 할 때, 제2 컨텐츠와 제3 컨텐츠의 현재 재생 시점은 각각 Tm-5, Tm-2로 Tm보다 느린 것을 알 수 있다.
전자 장치는 컨텐츠들을 동기화할 타겟 시점 Tt를 설정할 수 있다. 전자 장치는 제1 컨텐츠는 계속하여 원래의 재생 속도로 재생하면서, 제1 컨텐츠보다 재생 속도가 느린 제2 컨텐츠와 제3 컨텐츠를 더 빠르게 재생하여 목표 시점인 Tk에 제1 컨텐츠와 동기가 맞추어지도록 할 수 있다.
예컨대, 전자 장치는 제3 컨텐츠를 1.2배로 재생하기 위해, 버퍼링 단계부터 렌더링 단계까지 중 어느 임의의 단계에서, 10개의 패킷 중 약 1.7개의 패킷을 버리면서 제3 컨텐츠를 보다 빨리 재생할 수 있다. 전자 장치는 데이터를 버퍼링한 후 몇 개씩 드랍하면서 다음 단계로 데이터를 보내거나, 이미 디코딩까지 마친 데이터를 렌더링하는 단계에서 하나씩을 버리면서 데이터를 렌더링할 수도 있다. 전자 장치는 소정 간격마다 점프하면서 일부 데이터를 드랍하는 등 다양한 방법을 이용하여 제3 컨텐츠의 재생 속도를 조절하고, Tt 시점부터는 제1 컨텐츠와 제3 컨텐츠가 동기화되어 제1 컨텐츠와 같은 속도로 재생되도록 할 수 있다.
도 12에는, 전자 장치가 제2 컨텐츠도 제3 컨텐츠처럼 1.2배로 배속 재생한 경우, 목표 시점인 Tt 시점에서, 제2 컨텐츠는 아직 제1 컨텐츠보다 델타 t만큼 느리게 재생되는 것을 도시한다. 이는, 전자 장치는 제2 컨텐츠에 대해서는 제3 컨텐츠보다 더 빠르게 배속 재생하여 목표 시점인 Tt 시점에서 제1 컨텐츠와 동기화되도록 해야 하는 것을 의미할 수 있다.
도 12에서, 제4 컨텐츠의 현재 재생 시점은 Tm+2로 제1 컨텐츠의 재생 시점보다 빠르다. 전자 장치는 제1 컨텐츠는 계속하여 원래의 재생 속도로 재생하면서, 제1 컨텐츠보다 재생 속도가 빠른 제4 컨텐츠를 더 느리게 재생하여 목표 시점인 Tt에 제1 컨텐츠와 동기가 맞추어지도록 할 수 있다.
예컨대, 전자 장치는 제4 컨텐츠를 0.8배로 느리게 재생하기 위해, 버퍼에서 데이터를 독출하는 시간을 원래보다 1.25배만큼 증가된 시간 동안 천천히 독출할 수 있다. 전자 장치는 Tt 시점까지 제4 컨텐츠의 재생 속도를 늦추고, Tt 시점부터는 제1 컨텐츠와 같은 속도로 제4 컨텐츠를 재생할 수 있다.
전자 장치는 복수의 컨텐츠들을 동기화하여 재생하는 중에, 또 다시 제1 스트림의 버퍼링에 언더플로우가 발생할 것이 예측되는 경우, 도 10에서 설명한 내용대로 다른 스트림의 버퍼링을 일시 중단할 수 있다. 그 이후, 제1 스트림의 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 경우, 전자 장치는 도 11에서 설명한 내용대로 일시 중단된 스트림의 버퍼링을 다시 시작하여 스트림들을 동기화하여 재생할 수 있다. 또한, 일시 중단된 스트림의 버퍼링을 다시 시작하는 경우, 도 12에서 설명한 내용과 같이, 재생 속도를 추가로 조절함으로써 컨텐츠들의 동기화를 보장할 수 있다. 동기화하여 출력할 수 있다.
도 13은 실시 예에 따라, 우선 순위를 고려하여 멀티스트림들을 버퍼링하는 동작을 설명하기 위한 순서도이다.
도 13을 참조하면, 전자 장치는 멀티스트림들을 이용하여 멀티 뷰 재생을 처음 시작하는 경우, 우선 순위 식별 정보를 획득하여 각 스트림의 우선 순위를 식별할 수 있다(단계 1310). 전자 장치는 우선 순위가 가장 높은 제1 스트림을 어댑티브 스트리밍할 수 있다(단계 1320).
전자 장치는 네트워크 대역폭 상태나 제1 스트림을 수신하는 버퍼 공간 등을 고려하여, 제1 스트림을 수신하는 버퍼에서 언더플로우가 발생할지 여부를 결정할 수 있다(단계 1330). 전자 장치는 제1 스트림을 수신하는 버퍼에서 언더플로우가 발생할 것이 예측되는 경우, 제2 스트림부터는 버퍼링을 수행하지 않을 수 있다(단계 1350).
전자 장치는 제1 스트림을 수신하는 버퍼에서 언더플로우가 발생할 것이 예측되지 않는 경우, 그 다음 우선 순위를 갖는 제2 스트림을 어댑티브 스트리밍할 수 있다(단계 1340).
도 14는 실시 예에 따라, 전자 장치가 우선 순위가 높은 스트림부터 버퍼링을 수행하는 것을 설명하기 위한 순서도이다.
도 14를 참조하면, 전자 장치는 N번째 우선 순위를 갖는 스트림을 버퍼링할 수 있다(단계 1410). 전자 장치는 네트워크 대역폭의 상태, N번째 스트림을 수신하는 버퍼의 공간, N번째 스트림의 비트레이트에 기초하여 버퍼링이 가능한 지 여부를 먼저 판단할 수 있다. 여기서 버퍼의 공간은 버퍼의 현재 데이터 량 및 언더플로우나 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 지점인, 하한선, 상한선 등의 임계치를 고려하여 결정될 수 있다. 전자 장치는 N번째 스트림의 버퍼링이 가능하다고 판단되는 경우, N번째 스트림을 버퍼링할 수 있다.
전자 장치는 N번째 스트림의 버퍼링이 완료되었는지를 판단하고(단계 1420), N번째 스트림의 버퍼링이 완료된 이후에 그 다음 우선 순위를 갖는 N+1번째 스트림을 버퍼링할 수 있다(단계 1430). 전자 장치는 N번째 스트림의 버퍼링이 완료되고, 언더플로우가 발생하지 않을 것이 예측되는 경우, N+1번째 스트림을 버퍼링할 수 있다.
도 15는 실시 예에 따라, 전자 장치가 멀티 뷰 재생 중 멀티스트림의 버퍼링을 조절하는 것을 설명하기 위한 순서도이다.
도 15를 참조하면, 전자 장치는 멀티스트림을 이용하여 멀티 컨텐츠를 획득하고 이를 멀티 뷰로 디스플레이에 출력할 수 있다(단계 1510). 전자 장치는 각 스트림 별 우선 순위 식별 정보를 이미 획득하여 알고 있으므로, 멀티스트림 중 어떤 스트림이 메인 스트림이고 어떤 스트림이 서브 스트림인지를 식별할 수 있다.
전자 장치는 메인 스트림을 수신하는 버퍼의 데이터 량이 임계치보다 낮아질 것이 예측되는지를 결정할 수 있다(단계 1520). 즉, 전자 장치는 메인 스트림을 수신하는 버퍼에서 언더플로우가 발생할 것이 예측되는 경우, 메인 스트림보다 우선 순위가 낮은 서브 스트림들에 대해서 버퍼링을 정지할 수 있다(단계 1530).
전자 장치는 메인 스트림을 수신하는 버퍼에서 언더플로우가 발생할 것이 예측되어 서브 스트림의 버퍼링을 정지한 이후, 메인 스트림을 수신하는 버퍼의 데이터 양이 임계치보다 높아질 것이 예측되는지를 결정할 수 있다(단계 1540). 즉, 전자 장치는 네트워크 대역폭의 상황이나 메인 스트림을 수신하는 버퍼의 상황에 따라, 메인 스트림을 수신하는 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 경우, 버퍼링을 정지했던 서브스트림을 다시 버퍼링할 수 있다(단계 1550).
도 16은 도 15의 단계 1550을 보다 구체적으로 설명하기 위한 순서도이다.
도 16을 참조하면, 전자 장치는 버퍼링을 정지했던 서브 스트림 중 제2 스트림을 다시 버퍼링하고자 하는 경우를 도시한다.
전자 장치는 제2 스트림의 버퍼링이 완료될 시점을 예측할 수 있다(단계 1610). 즉, 전자 장치는 제2 스트림의 버퍼에 제2 스트림의 패킷들이 소정 기준치 이상 다운로드되어 데이터 독출이 가능할 때까지 걸리는 시간을 고려하여 제2 스트림의 버퍼링 완료 시점을 예측할 수 있다.
전자 장치는 제1 스트림 패킷 중 예측된 시점에 재생될 패킷을 식별할 수 있다(단계 1620). 전자 장치는 식별된 제1 스트림 패킷과 동기화하여 출력될, 제2 스트림의 패킷을 식별하고, 제2 스트림의 패킷부터 버퍼링을 수행할 수 있다(단계 1630). 전자 장치는 이와 같이 제2 스트림을 버퍼링함으로써, 예측된 시점부터 제1 컨텐츠와 제2 컨텐츠가 동기화되어 재생되도록 할 수 있다.
도 17은 실시 예에 따라, 전자 장치가 멀티 뷰로 컨텐츠를 재생할 때 동기를 맞추어 재생하는 것을 설명하기 위한 순서도이다.
도 17을 참조하면, 전자 장치는 제2 컨텐츠의 재생 속도가 제1 컨텐츠의 재생 속도와 같은지를 판단할 수 있다(단계 1710). 전자 장치는 현재의 시점을 기준을 제2 컨텐츠가 제1 컨텐츠보다 느린 시점의 컨텐츠를 재생하고 있는지, 또는 제1 컨텐츠보다 빠른 시점의 컨텐츠를 재생하고 있는지를 기준으로, 제2 컨텐츠의 재생 속도를 판단할 수 있다.
전자 장치는 제2 컨텐츠의 재생 속도가 제1 컨텐츠의 재생 속도와 다르고, 제2 컨텐츠의 재생 속도가 제1 컨텐츠 재생 속도보다 느리다고 판단하는 경우(단계 1720), 제2 컨텐츠를 더 빠른 속도로 재생할 수 있다(단계 1740). 전자 장치는 제2 컨텐츠를 버퍼에서 독출하거나 디코더로부터 독출할 때, 또는 렌더링할 때 중 어느 임의의 단계 또는 복수개의 단계에서, 중간 중간, 패킷이나 프레임을 드랍하여 컨텐츠의 재생 속도가 빨라지도록 할 수 있다.
전자 장치는 제2 컨텐츠의 재생 속도가 제1 컨텐츠 재생 속도보다 빠르다고 판단하는 경우(1720), 제2 컨텐츠의 재생 속도를 늦추어 재생할 수 있다(단계 1730). 전자 장치는 버퍼로부터 제2 스트림의 패킷들을 독출할 때, 원래보다 더 느린 속도로 패킷을 독출함으로써, 제2 컨텐츠가 느리게 재생되도록 할 수 있다.
전자 장치는 제2 컨텐츠와 제1 컨텐츠의 재생 속도가 같은 경우, 또는 제2 컨텐츠의 재생 속도를 조절하여 제1 컨텐츠의 재생 속도와 같도록 한 경우, 제1 컨텐츠와 제2 컨텐츠를 동기화하여 재생할 수 있다(단계 1750).
일부 실시 예에 따른 전자 장치 및 그 동작 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
또한, 본 명세서에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
또한, 전술한 본 개시의 실시 예에 따른 전자 장치의 동작 방법은 멀티스트림들을 수신하는 단계, 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하는 단계 및 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하는 단계를 포함하고, 멀티스트림들을 수신하는 단계는 멀티스트림들 간의 우선 순위를 고려하여, 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하는 단계를 포함하고, 멀티스트림들은 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함하는, 전자 장치의 동작 방법을 수행하는 컴퓨터 프로그램이 저장된 기록 매체를 포함하는 컴퓨터 프로그램 제품으로 구현될 수 있다.
전술한 설명은 예시를 위한 것이며, 발명이 속하는 기술분야의 통상의 지식을 가진 자는 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.

Claims (20)

  1. 전자 장치의 동작 방법에 있어서,
    멀티스트림들을 수신하는 단계;
    상기 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하는 단계; 및
    상기 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하는 단계를 포함하고,
    상기 멀티스트림들을 수신하는 단계는
    상기 멀티스트림들 간의 우선 순위를 고려하여, 상기 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하는 단계를 포함하고,
    상기 멀티스트림들은 상기 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함하는, 전자 장치의 동작 방법.
  2. 제1 항에 있어서, 각 스트림에 대한 부가 정보를 획득하는 단계를 더 포함하고,
    상기 부가 정보는 상기 멀티스트림들 간의 우선 순위를 나타내는 우선 순위 식별 정보를 포함하는, 전자 장치의 동작 방법.
  3. 제1 항에 있어서, 사용자 인터페이스를 통해 우선 순위 식별 정보를 입력 받는 단계를 더 포함하는, 전자 장치의 동작 방법.
  4. 제1 항에 있어서, 상기 어댑티브 스트리밍하는 단계는
    상기 네트워크 대역폭의 상태, 각 스트림을 수신하는 버퍼의 공간, 및 상기 각 스트림의 비트레이트에 기초하여, 상기 각 스트림을 버퍼링하는 단계를 포함하고,
    상기 버퍼링하는 단계는 상기 우선 순위가 높은 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 것에 기초하여, 다음 우선 순위를 갖는 스트림을 버퍼링하는 단계를 포함하는, 전자 장치의 동작 방법.
  5. 제4 항에 있어서, 상기 버퍼링하는 단계는
    상기 우선 순위가 높은 스트림을 먼저 버퍼링하는 단계; 및
    상기 우선 순위가 높은 스트림의 버퍼링이 완료된 이후, 상기 다음 우선 순위를 갖는 스트림을 순차적으로 버퍼링하는 단계를 포함하는, 전자 장치의 동작 방법.
  6. 제4 항에 있어서, 상기 버퍼링을 수행하는 단계는
    상기 제1 스트림부터 제K(K는 2 이상이고 N보다 작은 자연수) 스트림까지를 각각 수신하는 버퍼에서 언더플로우 발생이 예측되지 않고, K+1번째 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되는 경우, 상기 제1 스트림부터 상기 제K 스트림까지를 동시에 버퍼링하는 단계를 포함하는, 전자 장치의 동작 방법.
  7. 제4 항에 있어서, 상기 어댑티브 스트리밍하는 단계는 상기 우선 순위가 높은 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되는 것에 기초하여, 상기 다음 우선 순위를 갖는 스트림부터 버퍼링을 수행하지 않는 단계를 더 포함하는, 전자 장치의 동작 방법.
  8. 제7 항에 있어서, 상기 어댑티브 스트리밍하는 단계는 상기 우선 순위가 높은 스트림을 수신하는 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 것에 기초하여, 상기 다음 우선 순위를 갖는 스트림을 다시 버퍼링하는 단계를 더 포함하는, 전자 장치의 동작 방법.
  9. 제5항 또는 제8 항에 있어서, 상기 다음 우선 순위를 갖는 스트림을 버퍼링하는 단계는
    상기 다음 우선 순위를 갖는 스트림의 버퍼링이 완료될 시점을 예측하는 단계; 및
    상기 제1 스트림의 패킷들 중, 상기 예측된 시점에 재생될 패킷을 식별하는 단계; 및
    상기 식별된 패킷과 동기화하여 출력될, 상기 다음 우선 순위를 갖는 스트림의 패킷부터 버퍼링하는 단계를 포함하는, 전자 장치의 동작 방법.
  10. 제1 항에 있어서, 상기 멀티 뷰로 출력하는 단계는
    상기 멀티 컨텐츠가 동기가 맞추어져 재생될 시점을 획득하는 단계; 및
    상기 다음 우선 순위를 갖는 스트림으로부터 획득되는 컨텐츠의 재생 속도를 조절하여, 상기 재생될 시점부터, 상기 제1 스트림으로부터 획득되는 컨텐츠와 동기화하여 재생하는 단계를 포함하고,
    상기 동기화하여 재생하는 단계는
    상기 다음 우선 순위를 갖는 스트림의 재생 속도가 상기 제1 스트림의 재생 속도보다 느린 경우, 상기 느린 스트림의 패킷 또는 상기 제1 스트림으로부터 획득된 컨텐츠의 프레임을 드랍하면서 버퍼링하는 단계; 및
    상기 다음 우선 순위를 갖는 스트림의 재생 속도가 상기 제1 스트림의 재생 속도보다 빠른 경우, 상기 빠른 스트림의 패킷을 버퍼로부터 느리게 독출하는 단계를 포함하는, 전자 장치의 동작 방법.
  11. 전자 장치에 있어서,
    스트리밍부;
    디스플레이;
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 메모리에 저장된 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 스트리밍부를 통해 수신한 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하고, 상기 디스플레이를 제어하여 상기 멀티 컨텐츠가 복수개의 부분 화면들을 이용한 멀티 뷰로 출력되도록 하고,
    상기 스트리밍부는 상기 멀티스트림들 간의 우선 순위를 고려하여, 상기 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하고,
    상기 멀티스트림들은 상기 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함하는, 전자 장치.
  12. 제11 항에 있어서, 상기 스트리밍부는 각 스트림에 대한 부가 정보를 획득하고,
    상기 부가 정보는 상기 멀티스트림들 간의 우선 순위를 나타내는 우선 순위 식별 정보를 포함하는, 전자 장치.
  13. 제11 항에 있어서, 사용자 인터페이스를 더 포함하고,
    상기 사용자 인터페이스를 통해 상기 멀티스트림들 간의 우선 순위를 나타내는 우선 순위 식별 정보를 입력 받는, 전자 장치.
  14. 제11 항에 있어서, 상기 스트리밍부는
    상기 네트워크 대역폭의 상태, 각 스트림을 수신하는 버퍼의 공간, 및 상기 각 스트림의 비트레이트에 기초하여, 상기 각 스트림을 버퍼링하고,
    상기 우선 순위가 높은 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되지 않는 것에 기초하여, 다음 우선 순위를 갖는 스트림을 버퍼링하는, 전자 장치.
  15. 제14 항에 있어서, 상기 스트리밍부는
    상기 우선 순위가 높은 스트림을 먼저 버퍼링하고, 상기 우선 순위가 높은 스트림의 버퍼링이 완료된 이후, 상기 다음 우선 순위를 갖는 스트림을 순차적으로 버퍼링하는, 전자 장치.
  16. 제14 항에 있어서, 상기 스트리밍부는
    상기 제1 스트림부터 제K(K는 2 이상이고 N보다 작은 자연수) 스트림까지를 각각 수신하는 버퍼에서 언더플로우 발생이 예측되지 않고, K+1번째 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되는 경우, 상기 제1 스트림부터 상기 제K 스트림까지를 동시에 버퍼링하는, 전자 장치.
  17. 제14 항에 있어서, 상기 스트리밍부는 상기 우선 순위가 높은 스트림을 수신하는 버퍼에서 언더플로우 발생이 예측되는 것에 기초하여, 상기 다음 우선 순위를 갖는 스트림부터 버퍼링을 수행하지 않는, 전자 장치.
  18. 제17 항에 있어서, 상기 스트리밍부는 상기 우선 순위가 높은 스트림을 수신하는 버퍼의 데이터 량이 소정 값 이상일 것이 예측되는 것에 기초하여, 상기 다음 우선 순위를 갖는 스트림을 다시 버퍼링하는, 전자 장치.
  19. 제15항 또는 제18 항에 있어서, 상기 스트리밍부는
    상기 다음 우선 순위를 갖는 스트림의 버퍼링이 완료될 시점을 예측하고,
    상기 제1 스트림의 패킷들 중, 상기 예측된 시점에 재생될 패킷을 식별하고,
    상기 식별된 패킷과 동기화하여 출력될, 상기 다음 우선 순위를 갖는 스트림의 패킷부터 버퍼링하는, 전자 장치.
  20. 멀티스트림들을 수신하는 단계;
    상기 멀티스트림들 각각으로부터 멀티 컨텐츠를 획득하는 단계; 및
    상기 멀티 컨텐츠를 복수개의 부분 화면들을 이용하여 멀티 뷰로 출력하는 단계를 포함하고,
    상기 멀티스트림들을 수신하는 단계는
    상기 멀티스트림들 간의 우선 순위를 고려하여, 상기 멀티스트림들 중 상기 우선 순위가 높은 스트림 순서대로 네트워크 대역폭을 할당하여 어댑티브 스트리밍하는 단계를 포함하고,
    상기 멀티스트림들은 상기 우선 순위가 높은 순서대로, 제1 스트림부터 제 N(N은 2 이상의 자연수) 스트림을 포함하는, 전자 장치의 동작 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020200121799A 2020-09-21 2020-09-21 전자 장치 및 그 동작 방법 KR20220039114A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200121799A KR20220039114A (ko) 2020-09-21 2020-09-21 전자 장치 및 그 동작 방법
PCT/KR2021/012321 WO2022060013A1 (ko) 2020-09-21 2021-09-10 전자 장치 및 그 동작 방법
US18/124,188 US20230224521A1 (en) 2020-09-21 2023-03-21 Electronic device and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200121799A KR20220039114A (ko) 2020-09-21 2020-09-21 전자 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20220039114A true KR20220039114A (ko) 2022-03-29

Family

ID=80777106

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200121799A KR20220039114A (ko) 2020-09-21 2020-09-21 전자 장치 및 그 동작 방법

Country Status (3)

Country Link
US (1) US20230224521A1 (ko)
KR (1) KR20220039114A (ko)
WO (1) WO2022060013A1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9294526B2 (en) * 2009-12-28 2016-03-22 Microsoft Technology Licensing, Llc Managing multiple dynamic media streams
US9020039B2 (en) * 2011-01-06 2015-04-28 Sonic Ip, Inc. Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming
US20120183040A1 (en) * 2011-01-19 2012-07-19 Qualcomm Incorporated Dynamic Video Switching
KR101905638B1 (ko) * 2012-05-15 2018-12-05 삼성전자주식회사 동영상 재생 장치 및 방법
WO2015062808A1 (en) * 2013-10-29 2015-05-07 Thomson Licensing Method and device for reserving bandwidth for an adaptive streaming client
EP3245792A1 (en) * 2014-12-25 2017-11-22 Echostar Ukraine, L.L.C. Simultaneously viewing multiple camera angles
EP3482569A4 (en) * 2016-07-05 2020-01-15 Vishare Technology Limited CONTINUOUS VIDEO BROADCASTING METHODS AND SYSTEMS
KR102569032B1 (ko) * 2019-01-22 2023-08-23 삼성전자주식회사 전자 장치 및 그의 컨텐트 제공 방법

Also Published As

Publication number Publication date
US20230224521A1 (en) 2023-07-13
WO2022060013A1 (ko) 2022-03-24

Similar Documents

Publication Publication Date Title
US11366632B2 (en) User interface for screencast applications
US11651794B2 (en) Variable speed playback
US11081143B2 (en) Providing enhanced content
US8862763B2 (en) Downloading video using excess bandwidth
US10237319B2 (en) Capture, recording, and streaming of media content
WO2013008867A1 (ja) 送信装置、送信装置の制御方法、制御プログラム、及び記録媒体
JP2016220229A (ja) コンテンツ再生装置、コンテンツ再生方法、およびプログラム
US20230362223A1 (en) Adaptive bitrate optimization upon video streaming initialization
EP2773107A1 (en) Broadcast receiver, playback device, broadcast communication system, broadcast receiving method, playback method and program
US11611788B2 (en) Adaptive switching in a whole home entertainment system
RU2652789C2 (ru) Устройство обработки информации, способ запроса содержания и компьютерная программа
US20130028576A1 (en) Reproduction control device and reproduction control method
CN110679153B (zh) 用于提供重新缓冲事件的时间放置的方法
US20180338170A1 (en) Contiguous Streaming Of Media Stream
WO2023018436A1 (en) Methods and systems for synchronizing playback of media content items
US20200162779A1 (en) Non-television experience triggers
KR20220039114A (ko) 전자 장치 및 그 동작 방법
KR20200089507A (ko) 디스플레이장치 및 그 제어방법
US20230209102A1 (en) Electronic device and operating method therefor