KR102515269B1 - 전자장치에서의 비디오 스트리밍 장치 및 방법 - Google Patents

전자장치에서의 비디오 스트리밍 장치 및 방법 Download PDF

Info

Publication number
KR102515269B1
KR102515269B1 KR1020160026696A KR20160026696A KR102515269B1 KR 102515269 B1 KR102515269 B1 KR 102515269B1 KR 1020160026696 A KR1020160026696 A KR 1020160026696A KR 20160026696 A KR20160026696 A KR 20160026696A KR 102515269 B1 KR102515269 B1 KR 102515269B1
Authority
KR
South Korea
Prior art keywords
communication
video
communication path
video streaming
mode
Prior art date
Application number
KR1020160026696A
Other languages
English (en)
Other versions
KR20170103582A (ko
Inventor
정하경
이현주
김진형
지앙웨이 쉬
이진호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160026696A priority Critical patent/KR102515269B1/ko
Priority to US16/082,523 priority patent/US10771854B2/en
Priority to PCT/KR2017/002350 priority patent/WO2017155251A1/ko
Publication of KR20170103582A publication Critical patent/KR20170103582A/ko
Application granted granted Critical
Publication of KR102515269B1 publication Critical patent/KR102515269B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6131Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • 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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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
    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised 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
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0205Traffic management, e.g. flow control or congestion control at the air interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0231Traffic management, e.g. flow control or congestion control based on communication conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0231Traffic management, e.g. flow control or congestion control based on communication conditions
    • H04W28/0236Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/12Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/248Connectivity information update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시는 LTE와 같은 4G 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G 또는 pre-5G 통신 시스템에 관련된 것이다.
이를 위한, 전자장치는 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로 각각을 통해 요청 메시지를 서버로 전송하고, 상기 요청 메시지에 따라 상기 다수의 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신한다. 상기 전자장치는 미리 설정된 적어도 하나의 조건을 만족하는 임의의 무선 탐색 시점에서 상기 다수의 통신 경로 별로 수신한 비디오 세그먼트를 기반으로 각 통신 경로에서의 전송 품질을 추정한다. 상기 전자장치는 상기 다수의 통신 경로 중 상기 비디오 스트리밍을 지원할 적어도 하나의 통신 경로를 지정하는 다수의 통신 모드 중 하나의 통신 모드를 상기 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 결정할 수 있다.

Description

전자장치에서의 비디오 스트리밍 장치 및 방법{APPARATUS AND METHOD FOR STREAMING VIDEO IN AN ELECTRONIC DEVICE}
본 개시의 다양한 실시 예들은 다중 무선 접속 기술 (multi-RAT: multi radio access technology)을 지원하는 전자장치에서 비디오 스트리밍을 수행하는 장치 및 방법에 관한 것이다.
4G (4th-generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G (5th-generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (beyond 4G network) 통신 시스템 또는 LTE 시스템 이후 (post LTE)의 시스템이라 불리고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파 (mmWave) 대역 (예를 들어, 60기가 (60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서 전파의 경로 손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍 (beamforming), 거대 배열 다중 입출력 (massive multi-input multi-output: massive MIMO), 전차원 다중입출력 (full dimensional MIMO: FD-MIMO), 어레이 안테나 (array antenna), 아날로그 빔형성 (analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다.
또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (device to device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (coordinated multi-points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조 (advanced coding modulation: ACM) 방식인 FQAM (hybrid FSK and QAM modulation) 및 SWSC (sliding window superposition coding)과, 진보된 접속 기술인 FBMC (filter bank multi carrier), NOMA (non-orthogonal multiple access), 및 SCMA (sparse code multiple access) 등이 개발되고 있다.
최근 다양한 종류의 멀티미디어 서비스를 지원하는 방송 서비스는 통신 기술과의 융합이 이루어지고 있다. 이러한 영상 통신 서비스는 빠른 정보 처리가 가능한 전자장치와 더불어 고속의 정보 전달을 지원하는 광대역 네트워크를 기반으로 하고 있다.
상기 영상 통신 서비스를 지원하는 전자장치는 이미지 처리로 인한 많은 전력 소모가 발생할 수 있다. 특히 처리할 이미지의 해상도는 디스플레이 시에 전자장치의 소비 전력을 결정하는 주요한 요인이 될 수 있다. 예컨대, 휴대 가능한 전자장치 (이하 '휴대 단말'이라 칭함)에서 디스플레이 시의 소비 전력은 처리할 이미지의 해상도에 비례하여 증가할 수 있다.
상기 이미지 해상도의 증가는 처리할 이미지에 관한 정보를 전달할 링크 상에서의 대역폭을 증가시키거나 저장 공간의 증가시키는 원인이 될 수 있다. 일 예로 하나의 전자장치 내에서 애플리케이션 프로세서 (AP: Application Processor)가 디스플레이 디바이스로 프레임을 전송하기 위한 대역폭 또는 하나의 전자장치가 다른 전자장치로 멀티미디어 데이터를 전달하기 위한 대역폭은 디스플레이 해상도 또는 전달할 멀티미디어 데이터의 크기에 비례하여 증가할 수 있다.
더 향상된 화질에 대한 사용자의 요구에 따라, 휴대 단말 등의 전자장치는 고화질/대화면 (4K UHD 급, 수십 Mbps 급)의 동영상을 스트리밍 서비스를 통해 시청하는 것이 가능하게 되었다.
하지만, 데이터 무제한 요금제 출현 등과 같은 무선 통신 서비스 환경의 변화는 셀룰러 네트워크 (LTE 네트워크 등)의 부하를 가중시키거나 사용자 경험 (QoE: quality of experience) 향상 기회의 상실뿐만 아니라 전자장치의 전력 소모를 증가시키는 원인이 될 수 있었다.
따라서, 전자장치에서는 다양한 멀티미디어 서비스를 위한 비디오 스트리밍에 따른 부하를 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로를 통해 효율적으로 분산하기 위한 방안을 마련하는 것이 필요하였다.
본 개시의 다양한 실시 예에 따르면, 전자장치에서 전송 효율을 고려하여 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로의 조합을 통해 비디오 스트리밍을 연결하는 장치 및 방법을 제공할 수 있다.
본 개시의 다양한 실시 예에 따르면, 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로를 지원하는 전자장치에서 비디오 스트리밍을 위한 기준 다운로드 속도를 고려하여 최적의 통신 경로 조합을 구성하는 장치 및 방법을 제공할 수 있다.
본 개시의 다양한 실시 예에 따르면, 다중 무선 접속 기술을 지원하는 전자장치에서 상기 다중 무선 접속 기술이 적용된 통신 경로 조합에 의해 미리 정의된 통신 모드들 중 하나의 통신 모드를 통신 경로 별 전송 품질을 고려하여 결정하는 장치 및 방법을 제공할 수 있다.
본 개시의 다양한 실시 예에 따르면, 다중 무선 접속 기술을 지원하는 전자장치에서 상기 다중 무선 접속 기술이 적용된 통신 경로 조합에 의해 미리 정의된 통신 모드들 중 하나의 통신 모드를 통신 경로 별 전송 품질 및 비디오 버퍼 잔여량을 고려하여 결정하는 장치 및 방법을 제공할 수 있다.
본 개시의 다양한 실시 예에 따른 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로를 지원하는 전자장치에서의 비디오 스트리밍 방법은, 상기 다수의 통신 경로 각각을 통해 요청 메시지를 서버로 전송하고, 상기 요청 메시지에 따라 상기 다수의 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신하는 과정과, 미리 설정된 적어도 하나의 조건을 만족하는 임의의 무선 탐색 시점에서 상기 다수의 통신 경로 별로 수신한 비디오 세그먼트를 기반으로 각 통신 경로에서의 전송 품질을 추정하는 과정과, 상기 다수의 통신 경로 중 상기 비디오 스트리밍을 지원할 적어도 하나의 통신 경로를 지정하는 다수의 통신 모드 중 하나의 통신 모드를 상기 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 결정하는 과정을 포함할 수 있다.
본 개시의 다양한 실시 예에 따른 전자장치는, 비디오 스트리밍 서비스를 위해, 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로를 통해 서버와의 무선 통신을 수행하는 통신 인터페이스와, 상기 비디오 스트리밍 서비스에 따라 상기 서버로부터 수신한 비디오 세그먼트를 지정된 영역에 기록하는 메모리 및 상기 다수의 통신 경로의 조합을 지정하는 다수의 통신 모드를 이용하여 상기 비디오 스트리밍 서비스를 제어하는 프로세서를 포함하고,
여기서, 상기 프로세서는, 상기 통신 인터페이스를 통해, 상기 서버로 상기 다수의 통신 경로 각각에서 요청 메시지를 전송하고, 상기 요청 메시지에 따라 상기 다수의 통신 경로 각각에서 상기 서버로부터 비디오 세그먼트를 수신하고, 미리 설정된 적어도 하나의 조건을 만족하는 임의의 무선 탐색 시점에서 상기 다수의 통신 경로 별로 수신한 비디오 세그먼트를 기반으로 각 통신 경로에서의 전송 품질을 추정하고, 상기 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 미리 설정된 다수의 통신 모드 중 하나의 통신 모드를 결정하도록 설정될 수 있다.
본 개시의 다양한 실시 예에 따른 전자장치의 컴퓨터 판독 가능한 기록 매체는, 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로 각각을 통해 요청 메시지를 서버로 전송하고, 상기 요청 메시지에 따라 상기 다수의 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신하는 동작과, 미리 설정된 적어도 하나의 조건을 만족하는 임의의 무선 탐색 시점에서 상기 다수의 통신 경로 별로 수신한 비디오 세그먼트를 기반으로 각 통신 경로에서의 전송 품질을 추정하는 동작 및 상기 다수의 통신 경로 중 상기 비디오 스트리밍을 지원할 적어도 하나의 통신 경로를 지정하는 다수의 통신 모드 중 하나의 통신 모드를 상기 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 결정하는 동작을 실행시키기 위한 프로그램을 기록할 수 있다.
본 개시에서 제안된 다양한 실시 예는, 전자장치에서 비디오 스트리밍을 지원하는 장치 및 방법은, 사업자 네트워크 부하의 절감, 사용자 경험의 향상 및 전력 소모의 감소시킬 수 있도록 한다.
도 1은 제안된 다양한 실시 예에 따른, 무선 터미널을 포함하는 네트워크 환경을 도시한 도면이다.
도 2는 제안된 다양한 실시 예에 따른, 전자장치에 대한 블록 구성을 도시한 도면이다.
도 3은 제안된 다양한 실시 예에 따른, 프로그램 모듈에 대한 블록 구성을 도시한 도면이다.
도 4는 본 개시에서 제안된 다양한 실시 예에 따른, 전자장치에서 다수의 통신 모드를 기반으로 비디오 스트리밍 서비스를 지원하기 위한 상태 천이를 도시한 도면이다.
도 5는 본 개시에서 제안된 다양한 실시 예에 따라, 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로를 지원하는 전자장치에서 수행하는 제어 흐름을 도시한 도면이다.
도 6은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 단일 전송모드에서 수행하는 제어 흐름을 도시한 도면이다.
도 7은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 메인/백업 전송모드에서 수행하는 제어 흐름을 도시한 도면이다.
도 8은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 병합 전송모드에서 수행하는 제어 흐름을 도시한 도면이다.
도 9 내지 도 11은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치에 의해 수행되는 프리패칭의 시나리오들을 도시한 도면이다.
도 12와 도 13은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 비디오 버퍼 량을 추정하기 위한 예들을 도시한 도면이다.
이하, 본 개시의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 이는 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시예의 다양한 변경 (modifications), 균등물 (equivalents), 및/또는 대체물 (alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다", "가질 수 있다", "포함한다", 또는 "포함할 수 있다" 등의 표현은 해당 특징 (예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제 1", "제 2", "첫 째", 또는 "둘 째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제 1 사용자 기기와 제 2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 개시에 기재된 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소 (예: 제 1 구성요소)가 다른 구성요소 (예: 제 2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어 ((operatively or communicatively) coupled with/to)" 있다거나 "접속되어 (connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 또 다른 구성요소 (예: 제 3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소 (예: 제 1 구성요소)가 다른 구성요소 (예: 제 2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 또 다른 구성요소 (예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된 (또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한 (suitable for)", "~하는 능력을 가지는 (having the capacity to)", "~하도록 설계된 (designed to)", "~하도록 변경된 (adapted to)", "~하도록 만들어진 (made to)", 또는 "~를 할 수 있는 (capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된 (또는 설정된)"은 하드웨어적으로 "특별히 설계된 (specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된 (또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서 (예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서 (generic-purpose processor) (예: CPU 또는 application processor)를 의미할 수 있다.
본 개시에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
본 개시의 다양한 실시 예들에 따른 전자장치는, 예를 들면, 스마트폰 (smartphone), 태블릿 PC (tablet personal computer), 이동 전화기 (mobile phone), 영상 전화기, 전자책 리더기 (e-book reader), 데스크탑 PC (desktop personal computer), 랩탑 PC (laptop personal computer), 넷북 컴퓨터 (netbook computer), 워크스테이션 (workstation), 서버, PDA (personal digital assistant), PMP (portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라 (camera), 또는 웨어러블 장치 (wearable device) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에 따르면, 웨어러블 장치는 액세서리형 (예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치 (head-mounted-device(HMD)), 직물 또는 의류 일체형 (예: 전자 의복), 신체 부착형 (예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형 (예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예들에서, 전자장치는 가전 제품(home appliance)일 수 있다. 가전 제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스 (set-top box), 홈 오토매이션 컨트롤 패널 (home automation control panel), 보안 컨트롤 패널 (security control panel), TV 박스 (예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔 (예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더 (camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시 예에서, 전자장치는, 각종 의료기기 (예: 각종 휴대용 의료측정기기 (혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA (magnetic resonance angiography), MRI (magnetic resonance imaging), CT (computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 (navigation) 장치, GPS 수신기 (global positioning system receiver), EDR (event data recorder), FDR (flight data recorder), 자동차 인포테인먼트 (infotainment) 장치, 선박용 전자 장비 (예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기 (avionics), 보안 기기, 차량용 헤드 유닛 (head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM (automatic teller's machine), 상점의 POS (point of sales), 또는 사물 인터넷 장치 (internet of things) (예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기 (thermostat), 가로등, 토스터 (toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자장치는 가구 (furniture) 또는 건물/구조물의 일부, 전자 보드 (electronic board), 전자 사인 수신 장치 (electronic signature receiving device), 프로젝터 (projector), 또는 각종 계측 기기 (예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자장치는 플렉서블 전자장치일 수 있다. 또한, 본 개시의 실시 예에 따른 전자장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자장치를 포함할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시 예에 따른 전자장치가 설명된다. 본 개시에서, 사용자라는 용어는 전자장치를 사용하는 사람 또는 전자장치를 사용하는 장치 (예: 인공지능 전자장치)를 지칭할 수 있다.
도 1은 본 개시에서 제안된 다양한 실시 예에 따른 네트워크 환경의 일 예를 도시한 도면이다.
도 1을 참조하면, 네트워크 환경 내의 전자장치(101)는 버스(110), 프로세서(120), 메모리(130), 영상 처리 모듈(140), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시 예에서, 전자장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.
버스(110)는, 예를 들면, 구성요소들(120-170)을 서로 연결하고, 구성요소들(120-170) 간의 통신 (예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
프로세서(120)는, 중앙처리장치 (central processing unit (CPU)), 어플리케이션 프로세서 (application processor (AP)), 커뮤니케이션 프로세서 (communication processor (CP)), 또는 이미지 신호 프로세서 (image signal processor (ISP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자장치(101)의 적어도 하나의 다른 구성요소들의 제어, 이미지 신호 처리 (image signal processing) 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 상기 이미지 신호 처리는 비디오 스트리밍 서비스에 따른 비디오 신호 처리를 포함할 수 있다.
상기 ISP가 프로세서(120)에 포함되는 경우, 상기 프로세서(120)는 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로의 조합을 지정하는 다수의 통신 모드를 이용하여 비디오 스트리밍 서비스를 위한 전반적인 동작을 제어하도록 설정될 수 있다.
일 실시 예에 따르면, 상기 프로세서(120)는, 서버(106)로 다수의 통신 경로 각각을 통해 요청 메시지를 전송하고, 상기 다수의 통신 경로 각각을 통해 상기 서버(106)로부터 비디오 세그먼트를 수신하도록 상기 통신 인터페이스(170)를 제어할 수 있다.
상기 다수의 통신 경로 각각을 통해 전송되는 요청 메시지는 동일한 멀티미디어 콘텐트를 구성하는 비디오를 요청하는 메시지일 수 있다. 하지만, 상기 다수의 통신 경로 각각을 통해 전송되는 요청 메시지는 하나의 대상 비디오를 구성하는 동일한 비디오 세그먼트를 요청할 필요는 없다.
상기 프로세서(120)는, 예를 들면, 제 1 통신 경로로 대상 비디오의 m번째 비디오 세그먼트 (또는 제 1 구간의 비디오 데이터)를 요청하고, 제 2 통신 경로로 대상 비디오의 n번째 비디오 세그먼트 (또는 제 2 구간의 비디오 데이터)를 요청할 수 있다. 상기 프로세서(120)는, 현재 사용 중인 통신 모드를 기반으로 m번째 비디오 세그먼트 (또는 제 1 구간의 비디오 데이터)와 n번째 비디오 세그먼트 (또는 제 2 구간의 비디오 데이터)를 결정할 수 있다.
상기 제 1 통신 경로는 셀룰러 네트워크를 기반으로 하는 통신 경로가 될 수 있고, 상기 제 2 통신 경로는 무선 근거리 네트워크 (WLAN)를 기반으로 하는 통신 경로가 될 수 있다. 이 경우, 상기 프로세서(120)는 제 1 통신 경로를 통해 대상 비디오의 m번째 비디오 세그먼트 (또는 제 1 구간의 비디오 데이터)를 수신할 수 있고, 제 2 통신 경로를 통해 대상 비디오의 n번째 비디오 세그먼트 (또는 제 2 구간의 비디오 데이터)를 수신할 수 있다.
상기 프로세서(120)는, 미리 설정된 적어도 하나의 조건을 만족하는 임의의 무선 탐색 시점에서 상기 다수의 통신 경로 별로 수신한 비디오 세그먼트를 기반으로 각 통신 경로에서의 전송 품질을 추정할 수 있다. 상기 프로세서(120)는, 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 미리 설정된 다수의 통신 모드 중 하나의 통신 모드를 결정하도록 설정될 수 있다.
상기 현재 사용 중인 통신 모드는 단일 전송모드와 멀티 전송모드 중 하나가 될 수 있다. 상기 멀티 전송모드는 메인/백업 전송모드와 병합 전송모드를 구분할 수 있다. 이 경우, 상기 현재 사용 중인 통신 모드는 멀티 전송모드가 아닌 좀더 구체적으로 메인/백업 전송모드와 병합 전송모드 중 하나가 될 수 있다.
상기 단말 전송모드는 다수의 통신 경로 중 하나의 통신 경로를 통해 비디오 스트리밍을 지원하는 전송모드이고, 상기 메인/백업 전송모드는 다수의 통신 경로 중 하나의 메인 통신 경로와 하나의 백업 통신 경로를 통해 비디오 스트리밍을 지원하는 전송모드이며, 상기 병합 전송모드는 다수의 통신 경로 중 복수의 통신 경로를 통해 비디오 스트리밍을 지원하는 전송모드가 될 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시 예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(180)을 저장할 수 있다. 프로그램(180)은, 예를 들면, 커널(181), 미들웨어(183), 어플리케이션 프로그래밍 인터페이스 (application programming interface (API))(185), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(187) 등을 포함할 수 있다. 커널(181), 미들웨어(183), 또는 API(185)의 적어도 일부는, 운영 시스템 (operating system (OS))으로 지칭될 수 있다.
일 실시 예에 따르면, 메모리(130)는 상기 프로세서(120)에 의해 지정된 영역에 메타 데이터 및/또는 압축 또는 압축되지 않은 영상 데이터를 저장할 수 있다. 예컨대, 상기 메모리(130)는 대상 영상의 적어도 일부로 메타 데이터를 저장할 수 있다.
상기 메모리(130)는 상기 프로세서(120)의 요청에 응답하여 지정된 영역에 저장된 영상 및/또는 메타 데이터를 읽고, 이를 상기 프로세서(120)로 제공할 수 있다. 상기 메모리(130)는 상기 프로세서(120)에 의해 재 압축된 영상을 기존에 기록된 영상을 대신하여 기록할 수도 있다.
상기 전자장치(101)는 프로세서(120)가 ISP를 포함하지 않을 경우, 영상 처리 모듈(140)을 별도로 구비할 수도 있다. 이런 경우, 상기 영상 처리 모듈(140)은 상기 프로세서(120)에 의한 이미지 신호 처리 동작을 대신하여 수행할 수 있다.
도 1에서는 영상 처리 모듈(140)을 프로세서(120) 및 메모리(130)와 독립된 구성으로 나타내고 있지만, 다양한 실시 예들은 이에 한정되지 않는다. 영상 처리 모듈(140)은, 예를 들면, 프로세서(120)와 통합되어 (integrated with) 구현될 수 있고, 메모리(130)에 소프트웨어 형태로 저장되어 프로세서(120)에서 실행될 수 있는 형태로 구현될 수 있다. 또한, 영상 처리 모듈(140)은, 예를 들면, 프로세서(120) 및 메모리(130)에 분산되어 구현될 수 있다. 이런 경우, 이미지 신호 처리를 위한 메타 데이터를 생성하는 동작을 영상 처리 모듈(140)이 수행하도록 하고, 상기 생성된 메타 데이터에 적어도 기반하여 대상 영상을 압축하는 동작을 프로세서(120)사 수행하도록 구현할 수 있다.
커널(181)은, 예를 들면, 다른 프로그램들 (예: 미들웨어(183), API(185), 또는 어플리케이션 프로그램(187))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들 (예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(181)은 미들웨어(183), API(185), 또는 어플리케이션 프로그램(187)에서 전자장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(183)는, 예를 들면, API(185) 또는 어플리케이션 프로그램(187)이 커널(181)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다.
또한, 미들웨어(183)는 어플리케이션 프로그램(187)으로부터 수신된 하나 이상의 작업 요청을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(183)는 어플리케이션 프로그램(187) 중 적어도 하나에 전자장치(101)의 시스템 리소스 (예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여할 수 있다. 예컨대, 미들웨어(183)는 적어도 하나의 어플리케이션 프로그램에 부여된 우선 순위에 따라 하나 이상의 작업 요청을 처리함으로써, 상기 하나 이상의 작업 요청에 대한 스케줄링 또는 로드 밸런싱 등을 수행할 수 있다.
API(185)는, 예를 들면, 어플리케이션 프로그램(187)이 커널(181) 또는 미들웨어(183)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자장치(101)의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 입출력 인터페이스(150)은 전자장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다. 예컨대, 입출력 인터페이스(150)은 서로 다른 특성을 가지는 다수의 이미지 센서를 포함할 수 있다. 상기 입출력 인터페이스(150)은 다수의 이미지 센서에 의해 촬영된 이미지들을 버스(110)을 통해 영상 처리 모듈(140), 메모리(130), 디스플레이(160), 통신 인터페이스(170) 등으로 전달할 수 있다. 상기 촬영된 이미지들은 서로 다른 이미지 특성을 가질 수 있다. 이는 이미지 센서의 특성, 촬영을 위해 설정된 조건 등의 차이에 따른 것일 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이 (liquid crystal display(LCD)), 발광 다이오드 (light-emitting diode(LED)) 디스플레이, 유기 발광 다이오드 (organic light-emitting diode (OLED)) 디스플레이, 또는 마이크로 전자기계 시스템 (microelectromechanical systems (MEMS)) 디스플레이, 또는 전자종이 (electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 각종 콘텐츠 (예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)를 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
통신 인터페이스(170)는, 예를 들면, 전자장치(101)와 외부 장치 (예: 제 1 외부 전자장치(102), 제 2 외부 전자장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치 (예: 제 2 외부 전자장치(104) 또는 서버(106))와 통신할 수 있다.
무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE (long-term evolution), LTE-A (LTE Advance), CDMA (code division multiple access), WCDMA (wideband CDMA), UMTS (universal mobile telecommunications system), WiBro (wireless broadband), 또는 GSM (global system for mobile communications) 등 중 적어도 하나를 사용할 수 있다. 또한, 무선 통신은, 예를 들면, 근거리 통신(164)을 포함할 수 있다. 근거리 통신(164)은, 예를 들면, WiFi (wireless fidelity), 블루투스 (bluetooth), NFC (near field communication), MST (magnetic stripe transmission), 또는 지그비 (Zigbe) 등에서 적어도 하나를 포함할 수 있다. 무선 통신은 예들 들면, GPS (global positioning system), 또는 GNSS (global navigation satellite system)를 이용할 수 있다. 유선 통신은, 예를 들면, USB (universal serial bus), HDMI (high definition multimedia interface), RS-232 (recommended standard232), 또는 POTS (plain old telephone service) 등에서 적어도 하나를 포함할 수 있다. 네트워크(162)는 통신 네트워크 (telecommunications network), 예를 들면, 컴퓨터 네트워크 (computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망 (telephone network) 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 통신 인터페이스(170)는 프로세서(120)로부터의 제어에 응답하여 외부 전자장치(102, 104) 또는 서버(106)으로 대상 영상의 압축을 요청할 수 있다. 이를 위해, 상기 통신 인터페이스(170)는 대상 영상 및/또는 상기 대상 영상에 대응한 메타 데이터를 상기 외부 전자장치로 제공할 수 있다. 상기 통신 인터페이스(170)는 외부 전자장치(102, 104) 또는 서버(106)로부터 제공되는 압축 영상을 수신하고, 상기 수신한 압축 영상을 상기 프로세서(120)로 전달할 수 있다.
제 1 및 제 2 외부 전자장치(102, 104) 각각은 전자장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 한 실시 예에 따르면, 서버(106)는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시 예에 따르면, 전자장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자장치 (예: 전자장치(102,104), 또는 서버(106))에서 실행될 수 있다. 한 실시 예에 따르면, 전자장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치 (예: 전자장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 다른 전자장치 (예: 전자장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자장치(101)로 전달할 수 있다. 전자장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 본 개시에서 제안된 다양한 실시 예에 따른 전자장치(201)의 구성을 도시한 도면이다.
도 2를 참조하면, 전자장치(201)는, 예를 들면, 도 1에 도시된 전자장치(101)의 전체 또는 일부를 포함할 수 있다. 전자장치(201)는 하나 이상의 프로세서 (예: AP (application processor))(210), 통신 모듈(220), 가입자 식별 모듈(224), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 인디케이터(297), 및 모터(298) 를 포함할 수 있다.
프로세서(210)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(210)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(210)는, 예를 들면, SoC (system on chip) 로 구현될 수 있다. 한 실시 예에 따르면, 프로세서(210)는 GPU (graphic processing unit) 및/또는 이미지 신호 프로세서 (image signal processor)를 더 포함할 수 있다. 프로세서(210)는 도 2에 도시된 구성요소들 중 적어도 일부 (예: 셀룰러 모듈(221))를 포함할 수도 있다. 프로세서(210) 는 다른 구성요소들 (예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
본 개시에서 제안된 다양한 실시 예에 따르면, 프로세서(210)는 도 1을 참조하여 설명된 프로세서(120) 및/또는 영상 처리 모듈(140)에 의해 수행되는 동작들이 모두 수행될 수 있도록 설정될 수 있다. 이에 대한 구체적인 설명은 도 1을 참조하여 이루어진 바와 동일하므로, 중복 설명은 생략하도록 한다.
통신 모듈(220)은, 도 1의 통신 인터페이스(170)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(220)은, 예를 들면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GPS 모듈(227), NFC 모듈(228) 및 RF (radio frequency) 모듈(229)를 포함할 수 있다.
셀룰러 모듈(221)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈(221)은 가입자 식별 모듈 (예: SIM 카드)(224)을 이용하여 통신 네트워크 내에서 전자장치(201)의 구별 및 인증을 수행할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈(221)은 프로세서(210)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시 예에 따르면, 셀룰러 모듈(221)은 CP를 포함할 수 있다.
WiFi 모듈(223), 블루투스 모듈(225), GPS 모듈(227) 또는 NFC 모듈(228) 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시 예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GPS 모듈(227) 또는 NFC 모듈(228) 중 적어도 일부 (예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다.
RF 모듈(229)은, 예를 들면, 통신 신호 (예: RF 신호)를 송수신할 수 있다. RF 모듈(229)은, 예를 들면, 트랜시버 (transceiver), PAM (power amp module), 주파수 필터 (frequency filter), LNA (low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시 예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GPS 모듈(227) 또는 NFC 모듈(228) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
일 실시 예에 따르면, 통신 모듈(220)는 도 1에서의 통신 인터페이스(170)에 의해 수행되는 동작이 동일하게 수행될 수 있도록 설정될 수 있다. 즉, 상기 통신 모듈(220)은 프로세서(210)로부터의 제어에 응답하여 외부 전자장치로 대상 영상의 압축을 요청할 수 있다. 이를 위해, 상기 통신 모듈(220)은 대상 영상 및/또는 상기 대상 영상에 대응한 메타 데이터를 상기 외부 전자장치로 제공할 수 있다. 상기 통신 모듈(220)은 외부 전자장치로부터 제공되는 압축 영상을 수신하고, 상기 수신한 압축 영상을 상기 프로세서(210)로 전달할 수 있다.
가입자 식별 모듈(224)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM (embedded SIM)을 포함할 수 있으며, 고유한 식별 정보 (예: ICCID (integrated circuit card identifier)) 또는 가입자 정보 (예: IMSI (international mobile subscriber identity))를 포함할 수 있다.
메모리(230) (예: 메모리(130))는, 예를 들면, 내장 메모리(232) 또는 외장 메모리(234)를 포함할 수 있다. 상기 메모리(230)는 상기 프로세서(210)의 제어에 응답하여 대상 영상 및/또는 상기 대상 영상에 대응한 메타 데이터를 지정된 영역에 기록할 수 있다. 상기 메모리(230)는 상기 프로세서(210)의 제어에 응답하여 특정 대상 영상 및/또는 상기 특정 대상 영상에 대응한 메타 데이터를 읽고, 상기 읽은 특정 대상 영상 및/또는 상기 특정 대상 영상에 대응한 메타 데이터를 상기 프로세서(210)로 제공할 수 있다.
내장 메모리(232)는, 예를 들면, 휘발성 메모리 (예: DRAM (dynamic RAM), SRAM (static RAM), 또는 SDRAM (synchronous dynamic RAM) 등), 비휘발성 메모리 (non-volatile Memory) (예: OTPROM(one time programmable ROM), PROM (programmable ROM), EPROM (erasable and programmable ROM), EEPROM (electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리 (예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브 (solid state drive(SSD)) 중 적어도 하나를 포함할 수 있다.
외장 메모리(234)는 플래시 드라이브 (flash drive), 예를 들면, CF (compact flash), SD (secure digital), Micro-SD (micro secure digital), Mini-SD (mini secure digital), xD (extreme digital), MMC (multi-media card) 또는 메모리 스틱 (memory stick) 등을 더 포함할 수 있다. 외장 메모리(234)는 다양한 인터페이스를 통하여 전자장치(201)와 기능적 및/또는 물리적으로 연결될 수 있다.
센서 모듈(240)은, 예를 들면, 물리량을 계측하거나 전자장치(201)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(240)은, 예를 들면, 제스처 센서(240A), 자이로 센서(240B), 기압 센서(240C), 마그네틱 센서(240D), 가속도 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러 센서(240H) (예: RGB (red, green, blue) 센서), 생체 센서(240I), 온/습도 센서(240J), 조도 센서(240K), 또는 UV (ultra violet) 센서(240M) 중에서 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로 (additionally or alternatively), 센서 모듈(240)은, 예를 들면, 후각 센서 (E-nose sensor), EMG 센서 (electromyography sensor), EEG 센서 (electroencephalogram sensor), ECG 센서 (electrocardiogram sensor), IR (infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 그 안에 속한 적어도 하나 이상의 센서를 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시 예에서, 전자장치(201)는 프로세서(210)의 일부 또는 별도로, 센서 모듈(240)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(210)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)은, 예를 들면, 터치 패널 (touch panel)(252), (디지털) 펜 센서 (pen sensor)(254), 키(256), 또는 초음파 (ultrasonic) 입력 장치(258)를 포함할 수 있다. 터치 패널(252)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(252)은 제어 회로를 더 포함할 수도 있다. 터치 패널(252)은 택타일 레이어 (tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
(디지털) 펜 센서(254)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트 (sheet)를 포함할 수 있다. 키(256)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키 패드를 포함할 수 있다. 초음파 입력 장치(258)는 마이크(288)를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(260)는 패널(262), 홀로그램 장치(264), 또는 프로젝터(266)를 포함할 수 있다.
패널(262)은, 도 1의 디스플레이(160)와 동일 또는 유사한 구성을 포함할 수 있다. 패널(262)은, 예를 들면, 유연하게 (flexible), 투명하게 (transparent), 또는 착용할 수 있게 (wearable) 구현될 수 있다. 패널(262)은 터치 패널(252)과 하나의 모듈로 구성될 수도 있다.
한 실시 예에 따르면, 패널(262)은 적어도 하나의 센서를 포함할 수 있다. 예컨대, 패널(262)은 압력 센서 (또는 포스 센서 (interchangeably used hereinafter))를 포함할 수 있다. 상기 압력 센서는 사용자의 터치에 대한 압력의 세기를 측정할 수 있는 센서일 수 있다. 상기 압력 센서는 상기 터치 패널(252)와 일체형으로 구현되거나, 또는 상기 터치 패널(252)과 별도로 하나 이상의 센서로 구현될 수도 있다.
홀로그램 장치(264)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(266)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자장치(201)의 내부 또는 외부에 위치할 수 있다. 한 실시 예에 따르면, 디스플레이(260)는 패널(262), 홀로그램 장치(264), 또는 프로젝터(266)를 제어하기 위한 제어 회로를 더 포함할 수 있다.
인터페이스(270)는, 예를 들면, HDMI (high-definition multimedia interface)(272), USB (universal serial bus)(274), 광 인터페이스 (optical interface)(276), 또는 D-sub (D-subminiature)(278)를 포함할 수 있다. 인터페이스(270)는, 예를 들면, 도 1에 도시된 통신 인터페이스(170)에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스(270)는, 예를 들면, MHL (mobile high-definition link) 인터페이스, SD (secure digital) 카드/MMC (multi-media card) 인터페이스, 또는 IrDA (infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(280)은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(280)의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스(150)에 포함될 수 있다. 오디오 모듈(280)은, 예를 들면, 스피커(282), 리시버(284), 이어폰(286), 또는 마이크(288) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
카메라 모듈(291)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시 예에 따르면, 하나 이상의 이미지 센서 (예: 전면 센서 또는 후면 센서), 렌즈, ISP (image signal processor), 또는 플래시 (flash) (예: LED 또는 xenon lamp 등) 등을 포함할 수 있다. 즉, 카메라 모듈(291)은 서로 다른 특성을 가지는 다수의 이미지 센서들을 포함할 수 있다. 상기 서로 다른 특성은 촬영된 이미지의 특성을 결정하는 요건으로써, 이미지의 종류 (흑백, 컬러 등), 해상도, 화각 등에 관한 특성이 될 수 있다.
전력 관리 모듈(295)은, 예를 들면, 전자장치(201)의 전력을 관리할 수 있다. 한 실시 예에 따르면, 전력 관리 모듈(295)은 PMIC (power management integrated circuit), 충전 IC (charger integrated circuit), 또는 배터리(296) 또는 연료 게이지 (battery or fuel gauge) 등을 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(296)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(296)는, 예를 들면, 충전식 전지 (rechargeable battery) 및/또는 태양 전지 (solar battery)를 포함할 수 있다.
인디케이터(297)는 전자장치(201) 또는 그 일부 (예: 프로세서(210))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(298)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동 (vibration), 또는 햅틱 (haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 전자장치(201)는 모바일 TV 지원을 위한 처리 장치 (예: GPU)를 포함할 수 있다. 모바일 TV 지원을 위한 처리 장치는, 예를 들면, DMB (digital multimedia broadcasting), DVB (digital video broadcasting), 또는 미디어플로 (mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
본 개시에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품 (component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자장치의 종류에 따라서 달라질 수 있다. 다양한 실시 예에서, 전자장치는 본 개시에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시 예에 따른 전자장치의 구성요소들 중 일부가 결합되어 하나의 개체 (entity)로 구성됨으로써, 결합되기 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 3은 본 개시에서 제안된 다양한 실시 예에 따른 프로그램 모듈의 구성을 도시한 도면이다.
도 3을 참조하면, 프로그램 모듈(310) (예: 프로그램(180))은 전자장치에 관련된 자원을 제어하는 운영 체제 (operating system(OS)) 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션 (예: 어플리케이션 프로그램(187))을 포함할 수 있다. 운영 체제는, 예를 들면, 안드로이드 (android), iOS, 윈도우 (windows), 심비안 (symbian), 타이젠 (tizen), 또는 바다 (bada) 등이 될 수 있다.
프로그램 모듈(310)은 커널(320), 미들웨어(330), 어플리케이션 프로그래밍 인터페이스 (application programming interface (API))(360), 및/또는 어플리케이션(370)을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 전자장치 상에 프리로드 (preload) 되거나, 외부 전자장치 (예: 전자장치(102, 104), 서버(106) 등)로부터 다운로드 가능하다.
상기 프로그램 모듈(310)에 포함된 커널(320), 미들웨어(330), API(360) 및 어플리케이션 (370) 각각의 예로써, 도 1의 프로그램(180)에 포함된 커널(181), 미들웨어(183), API(185) 및 어플리케이션(187)이 될 수 있다.
커널(320)은, 예를 들면, 시스템 리소스 매니저(321) 및/또는 디바이스 드라이버(323)를 포함할 수 있다. 시스템 리소스 매니저(321)는 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시 예에 따르면, 시스템 리소스 매니저(321)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 디바이스 드라이버(323)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC (inter-process communication) 드라이버 등을 포함할 수 있다.
미들웨어(330)는, 예를 들면, 어플리케이션(370)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(370)이 전자장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 API(360)를 통해 다양한 기능들을 어플리케이션(370)으로 제공할 수 있다. 상기 미들웨어(330)는 소프트웨어 모듈에 의해 구성될 수 있다. 상기 미들웨어(330)는 프록시 형태로 구현되거나 소프트웨어 라이브러리 형태로 구현될 수도 있다.
한 실시 예에 따르면, 미들웨어(330)는 런타임 라이브러리(335), 어플리케이션 매니저 (application manager)(341), 윈도우 매니저 (window manager)(342), 멀티미디어 매니저 (multimedia manager)(343), 리소스 매니저 (resource manager)(344), 파워 매니저 (power manager)(345), 데이터베이스 매니저 (database manager)(346), 패키지 매니저 (package manager)(347), 연결 매니저 (connectivity manager)(348), 통지 매니저 (notification manager)(349), 위치 매니저 (location manager)(350), 그래픽 매니저 (graphic manager)(351), 또는 보안 매니저 (security manager)(352) 중 적어도 하나를 포함할 수 있다. 상기 다양한 매니저들에 의해 수행되는 동작은 미들웨어(330)에서 수행되는 동작으로 이해될 수 있다. 즉, 본 개시에서 정의하는 미들웨어(330)의 하위 구성들 (매니저들)은 설명의 편의를 위한 것이며, 각 매니저에 의한 동작이 미들웨어(330)에 의해 수행될 수 있는 것으로 충분하고, 각 매니저의 명칭에 의해 미들웨어(330)의 구성 또는 구현 방식이 제한되는 것은 아니다.
런타임 라이브러리(335)는, 예를 들면, 어플리케이션(370)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 또는 산술 함수에 대한 기능 등을 수행할 수 있다.
어플리케이션 매니저(341)는, 예를 들면, 어플리케이션(370) 중 적어도 하나의 어플리케이션의 생명 주기를 관리할 수 있다. 윈도우 매니저(342)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(343)는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(344)는 어플리케이션(370) 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.
파워 매니저(345)는, 예를 들면, 바이오스 (BIOS: basic input/output system) 등과 함께 동작하여 배터리 또는 전원을 관리하고, 전자장치의 동작에 필요한 전력 정보 등을 제공할 수 있다. 데이터베이스 매니저(346)는 어플리케이션(370) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(347)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.
연결 매니저(348)는, 예를 들면, 셀룰러 (LTE 등), WiFi 또는 블루투스 등의 통신 접속 방식을 지원하는 다중 무선 접속 기술에 적어도 기반하는 다수의 무선 연결 (통신 경로)을 관리할 수 있다. 통지 매니저(349)는 도착 메시지, 약속, 근접성 알림 등의 사건 (event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 위치 매니저(350)는 전자장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(351)는 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(352)는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다.
일 실시 예에 따르면, 전자장치가 비디오 스트리밍 서비스를 지원하는 경우, 미들웨어(330)는 다수의 통신 모드 중 하나의 통신 모드를 선택하기 위한 조건 정보를 추정하는 정보 수집 매니저 (information gathering manager)를 더 포함할 수 있다.
상기 정보 수집 매니저는, 예를 들면, 다수의 비디오 어플리케이션(385, 386, 387, 388) 중에서 현재 사용 중인 비디오 어플리케이션에서의 비디오 화질 및/또는 각 통신 접속 방식에 의해 획득할 수 있을 것으로 기대되는 비디오 화질을 추정할 수 있다. 상기 정보 수집 매니저는, 예를 들면, 다수의 비디오 어플리케이션(385, 386, 387, 388) 각각으로 제공되는 비디오 데이터 량 (비디오 세그먼트 개수 등)을 검사하고, 상기 검사된 결과를 기반으로 해당 비디오 어플리케이션에 대응한 잔여 버퍼 량을 추정할 수도 있다. 상기 정보 수집 매니저는 추정한 비디오 화질 및/또는 잔여 버퍼 량을 연결 매니저(348)로 전달할 수 있다.
상기 연결 매니저(348)는 상기 정보 수집 매니저로부터 제공받은 추정 비디오 화질 및/또는 추정 잔여 버퍼 량을 고려하여 비디오 스트리밍 서비스를 위한 통신 모드를 결정할 수 있다. 즉, 상기 연결 매니저(348)는 미리 설정된 다수의 통신 모드 중 하나의 통신 모드를 추정 비디오 화질 및/또는 추정 잔여 버퍼 량에 의해 선택할 수 있다. 그리고, 상기 연결 매니저(348)는 선택한 통신 모드를 고려하여 통신 모듈 (LTE 모듈 또는 Wi-Fi 모듈)에 대한 온 또는 오프를 수행할 수 있다.
상기 연결 매니저(348)은, 예를 들면, 전체 통신모듈 중 하나의 통신 모듈만을 활성화하여 통신 경로 (통신 세션)를 유지하거나, 복수의 통신 모듈을 동시에 활성화하여 복수의 통신 경로 (복수의 통신 세션)를 유지할 수도 있다.
상술한 바에 따르면, 소정의 통신 모드에 의해 지정된 적어도 하나의 통신 경로를 통해 서버로부터 수신한 비디오 데이터 (일 예로 비디오 세그먼트)는 미들웨어(330)를 거쳐 비디오 어플리케이션으로 전달될 수 있다. 그리고, 비디오 어플리케이션으로부터 제공되는 비디오 세그먼트를 요청하는 요청 메시지는 미들웨어(330)를 거쳐 소정의 통신 모드에 의해 지정된 적어도 하나의 통신 경로를 통해 서버로 전달될 수 있다. 상기 적어도 하나의 통신 경로는 통신 모듈 (LTE 모듈 또는 Wi-Fi 모듈)의 선택에 의해 지정되거나 통신 모드 (단밀 전송모드, 메인/백업 전송모드 또는 병합 전송모드)의 선택에 의해 지정될 수 있다.
미들웨어(330)는 전술한 구성요소들의 다양한 기능의 조합을 형성하는 미들웨어 모듈을 포함할 수 있다. 미들웨어(330)는 차별화된 기능을 제공하기 위해 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 또한, 미들웨어(330)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다.
API(360)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(370)은, 예를 들면, 홈(371), 다이얼러(372), SMS/MMS(373), IM(instant message)(374), 브라우저(375), 카메라(376), 알람(377), 컨택트(378), 음성 다이얼(379), 이메일(380), 달력(381), 미디어 플레이어(382), 앨범(383), 시계(384), 또는 다수의 비디오(385, 386, 387, 388) 등의 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다. 상기 어플리케이션(370)은 건강 관리 (health care) (예: 운동량 또는 혈당 등을 측정), 또는 환경 정보 제공 (예: 기압, 습도, 또는 온도 정보 등을 제공) 등의 기능을 수행할 수 있는 어플리케이션을 포함할 수도 있다.
한 실시 예에 따르면, 어플리케이션(370)은 전자장치 (예: 전자장치(101))와 외부 전자장치 사이의 정보 교환을 지원하는 어플리케이션 (이하, 설명의 편의 상, "정보 교환 어플리케이션"이라 칭함)을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자장치에 특정 정보를 전달하기 위한 알림 전달 (notification relay) 어플리케이션, 또는 외부 전자장치를 관리하기 위한 장치 관리 (device management) 어플리케이션을 포함할 수 있다. 상기 정보 교환 어플리케이션의 하나의 예로써, 다수의 비디오 어플리케이션(385, 386, 387, 388)이 도시되고 있다.
예를 들면, 알림 전달 어플리케이션은 전자장치의 다른 어플리케이션 (예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션, 또는 환경 정보 어플리케이션 등)에서 발생된 알림 정보를 외부 전자장치로 전달하는 기능을 포함할 수 있다. 또한, 알림 전달 어플리케이션은, 예를 들면, 외부 전자장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다.
장치 관리 어플리케이션은, 예를 들면, 전자장치와 통신하는 외부 전자장치의 적어도 하나의 기능 (예: 외부 전자장치 자체 (또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기 (또는, 해상도) 조절), 외부 전자장치에서 동작하는 어플리케이션 또는 외부 전자장치에서 제공되는 서비스 (예: 통화 서비스 또는 메시지 서비스 등)를 관리 (예: 설치, 삭제, 또는 업데이트)할 수 있다.
한 실시 예에 따르면, 어플리케이션(370)은 외부 전자장치의 속성에 따라 지정된 어플리케이션 (예: 모바일 의료 기기의 건강 관리 어플리케이션 등)을 포함할 수 있다. 한 실시 예에 따르면, 어플리케이션(370)은 외부 전자장치로부터 수신된 어플리케이션을 포함할 수 있다. 한 실시 예에 따르면, 어플리케이션(370)은 프리로드 어플리케이션 (preloaded application) 또는 서버로부터 다운로드 가능한 제3자 어플리케이션 (third party application)을 포함할 수 있다. 도시된 실시 예에 따른 프로그램 모듈(310)의 구성요소들의 명칭은 운영 체제의 종류에 따라서 달라질 수 있다.
다양한 실시 예에 따르면, 프로그램 모듈(310)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 프로그램 모듈(310)의 적어도 일부는, 예를 들면, 프로세서 (예: 프로세서(210))에 의해 구현 (implement)(예: 실행)될 수 있다. 프로그램 모듈(310)의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트 (sets of instructions) 또는 프로세스 등을 포함할 수 있다.
본 개시에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어 (firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위를 의미할 수 있다. "모듈"은, 예를 들면, 유닛, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 바꾸어 사용 (interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면,"모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC (application-specific integrated circuit) 칩, FPGAs (field-programmable gate arrays) 또는 프로그램 가능 논리 장치 (programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따른 장치 (예: 모듈들 또는 그 기능들) 또는 방법 (예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체 (computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서 (예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(130)가 될 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체 (magnetic media)(예: 자기테이프), 광기록 매체 (optical media)(예: CD-ROM (compact disc read only memory), DVD (digital versatile disc), 자기-광 매체 (magneto-optical media)(예: 플롭티컬 디스크 (floptical disk)), 하드웨어 장치 (예: ROM (read only memory), RAM (random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시 예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시 예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱 (heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다. 그리고 본 개시에 개시된 실시 예는 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 개시에서 기재된 기술의 범위를 한정하는 것은 아니다. 따라서, 본 개시의 범위는, 본 개시의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시 예를 포함하는 것으로 해석되어야 한다.
도 9는 본 개시에서 제안된 다양한 실시 예에 따른, 전자장치에 구현된 소프트웨어 모듈의 구성을 도시한 도면이다. 도 9에서는 본 개시에서 제안된 다양한 실시 예와 밀접하게 연관된 하드웨어 및 소프트웨어 모듈 (혹은 기능 블록)만을 도시한 것이다. 따라서, 도면 상에서 스마트 폰 등과 같은 전자장치에 통상적으로 포함되는 모듈이라 할지라도 제안된 실시 예와 직접적인 관련이 없는 구성들이 생략되었음에 유념하여야 할 것이다.
도 9를 참조하면, 전자장치는 비디오 데이터를 처리하는 다수의 비디오 어플리케이션 (비디오 어플리케이션 1, 비디오 어플리케이션 2 ...... 비디오 어플리케이션 N)과, 오프로더라 호칭하는 소프트웨어 모듈을 갖고 있다. 상기 오프로더 내에는 트래픽 처리부, 통신모드 결정부, 라디오 연결 제어부, 비디오 화질 추정부, 비디오 버퍼 추정부 등이 하위 구성들로 포함될 수 있다. 하기에서 설명될 하위 구성들에 대한 동작 설명은 오프로더에 의해 수행되는 동작을 이해할 수 있도록 할 것이다. 한편, 상기 오프로더는 도 3에 도시된 바와 같이 미들웨어에 포함될 수도 있으나 어플리케이션 레벨에서 구현될 수도 있다. 일 예로써, 비디오 어플리케이션이 커널로 메시지를 보내는 경우, 커널이 비디오 어플리케이션으로부터 받은 메시지를 어플리케이션 레벨로 구현된 오프로더로 전달할 것이다.
일반적으로 전자장치에서 비디오 어플리케이션은 LTE 혹은 Wi-Fi와 같은 통신 모듈을 거쳐 외부 비디오 스트리밍 서버에 직접 연결될 수 있다. 이 경우, 비디오 어플리케이션이 비디오 스트리밍 서버로 전송하는 비디오 세그먼트 요청 메시지는, 비디오 어플리케이션에서 운영체제의 TCP/IP 스택을 거쳐 LTE 혹은 Wi-Fi와 같은 통신 모듈로 전달될 것이다. 그리고, 비디오 스트리밍 서버가 비디오 어플리케이션으로 전송하고자 하는 비디오 세그먼트는, LTE 혹은 Wi-Fi와 같은 통신 모듈에 의해 수신된 후 운영체제의 TCP/IP 스택을 거쳐 비디오 어플리케이션으로 전달될 것이다.
하지만 본 개시에서 제안된 실시 예에 따르면, 비디오 어플리케이션의 트래픽이 오프로더를 거쳐 비디오 스트리밍 서버로 전달되거나 상기 비디오 스트리밍 서버로의 트래픽이 오프로더를 거쳐 비디오 어플리케이션에 전달되도록 구현하였다.
상기 오프로더는 프록시 (proxy)의 형태로 구현될 수 있으며, 소프트웨어 라이브러리의 형태로 구현될 수도 있다. 상기 프록시 (proxy)의 형태로 구현될 시, 오프로더는 독립적인 프로세서로 존재할 수 있고, 소프트웨어 라이브러리의 형태로 구현될 시, 오프로더는 비디오 어플리케이션과 같은 프로세스로 존재할 수 있다.
상기 오프로더는, 예를 들면, 비디오 어플리케이션에 의해 전송된 비디오 세그먼트 요청 메시지를 제공받고, 최적의 통신 모듈 (LTE 혹은 Wi-Fi) 혹은 통신모드 (단일 전송모드 혹은 멀티 전송모드에 포함되는 메인/백업 전송모드 또는 병합 전송모드 등)를 결정할 수 있다. 일 예로, 상기 최적의 통신 모듈 또는 최적의 통신모드의 결정은 상기 오프로더를 구성하는 통신모드 결정부에 의해 수행될 수 있다. 상기 오프로더는 앞서 결정된 최적의 통신 모듈 또는 통신모드를 기반으로 비디오 세그먼트 요청 메시지를 비디오 스트리밍 서버로 전달할 것이다.
상기 오프로더는, 예를 들면, 비디오 스트리밍 서버가 비디오 어플리케이션으로 전달하고자 하는 비디오 세그먼트를 최적의 통신 모듈 또는 최적의 통신모드를 기반으로 수신하고, 상기 수신한 비디오 세그먼트를 운영체제의 TCP/IP 스택을 통해 전달받으며, 이를 비디오 어플리케이션에 제공할 수 있다.
상기 오프로더는 기능 블록으로, 라디오 연결 제어부, 비디오 화질 추정부, 비디오 버퍼 추정부, 통신모드 결정부 등을 포함할 수 있다.
상기 라디오 연결 제어부는 트래픽 처리부에 의해 메시지를 송/수신할 통신 모듈의 활성화 (on) 또는 비활성화 (off)를 위한 제어 기능을 수행할 수 있다.
상기 비디오 화질 추정부는 현재 활성화 상태에 있는 비디오 어플리케이션이 이용 중인 비디오 화질을 추정하거나, 각 통신 모듈을 통해 획득할 수 있을 것으로 기대되는 비디오 데이터 (비디오 세그먼트 등)의 화질을 추정하는 기능을 수행할 수 있다. 상기 비디오 화질 추정부에 의해 추정된 화질에 대한 정보는 상기 통신모드 결정부로 전달되어 트래픽 처리부의 최적 통신 모드를 판단하는데 이용될 수 있다.
상기 비디오 버퍼 추정부는 오프로더를 거쳐 비디오 어플리케이션에 전달되는 비디오 세그먼트를 조사하여 비디오 어플리케이션에 대한 잔여 버퍼 량을 추정하는 기능을 수행할 수 있다. 상기 비디오 버퍼 추정부에 의해 추정된 특정 비디오 어플리케이션의 잔여 버퍼 량은 상기 통신모드 결정부로 전달되어 상기 트래픽 처리부의 최적 통신 모드를 판단하는데 이용될 수 있다.
상기 통신모드 결정부는 비디오 화질 추정부와 비디오 버퍼 추정부로부터 획득한 비디오 화질 및/또는 잔여 버퍼 량에 관한 정보 등을 고려하여 최적의 통신 모듈 혹은 통신모드를 결정할 수 있다.
상기 오프로더는 단말의 전체 통신모듈 중 하나의 통신모듈만 활성화하여 통신 세션을 유지하거나 복수의 통신모듈을 동시에 활성화하여 복수의 통신 세션을 유지하는 방식을 기반으로 비디오 스트리밍 서비스를 운영할 수 있다.
상술한 설명에서는 오프로더에 포함된 각각의 하위 구성들에 대해 설명하였으며, 상기 하위 구성들 각각에 의해 수행되는 동작이 상기 오프로더에 의해 수행되는 전체 동작으로 이해될 수 있을 것이다. 다시 말해, 본 개시에서 제안된 다양한 실시 예를 위해 정의한 오프로더의 하위 구성들은 설명의 편의를 위한 것이며, 상기 하위 구성들 각각에 의한 동작이 오프로더에 의해 수행될 수 있음은 물론이다. 그리고, 하위 구성들을 지칭하는 명칭이 오프로더의 구성 또는 구현 방식에 제한되는 것은 아니다.
도 4는 본 개시에서 제안된 다양한 실시 예에 따른, 전자장치에서 다수의 통신 모드를 기반으로 비디오 스트리밍 서비스를 지원하기 위한 상태 천이를 도시한 도면이다.
도 4를 참조하면, 전자장치에서 천이가 이루어지는 상태들은 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로의 조합을 정의하는 다수의 통신 모드 각각에 대응할 수 있다. 상기 다수의 통신 모드는, 예를 들면, 단일 전송모드, 메인/백업 전송모드, 병합 전송모드를 포함하므로, 상기 다수의 통신 모드 각각에 대응하여 단일 전송 상태(210), 메인/백업 전송 상태(220), 병합 전송 상태(230)로 구성될 수 있다.
상기 전자장치에서의 상태 천이는 다수의 통신 경로 별로 추정한 전송 품질이 미리 설정된 기준 전송 품질을 만족하는지를 검토하고, 상기 검토 결과를 기반으로 이루어질 수 있다.
현재 동작 상태가 단일 전송 상태(210)인 경우, 상기 전자장치는, 단일 전송 상태(210)를 유지 (ⓐ)하거나 메인/백업 전송 상태(220)로 천이 (ⓑ)하거나 병합 전송 상태(230)로 천이 (ⓒ)할 수 있다.
현재 동작 상태가 메인/백업 전송 상태(220)인 경우, 상기 전자장치는, 메인/백업 전송 상태(220)를 유지 (ⓓ)하거나 병합 전송 상태(230)로 천이 (ⓔ)하거나 단일 전송 상태(210)로 천이 (ⓕ)할 수 있다.
현재 동작 상태가 병합 전송 상태(230)인 경우, 상기 전자장치는, 병합 전송 상태(230)를 유지 (ⓖ)하거나 메인/백업 전송 상태(220)로 천이 (ⓗ)하거나 단일 전송 상태(210)로 천이 (ⓘ)할 수 있다.
상기 전자장치는 동작 상태로의 천이를 위한 조건을 미리 설정하고, 상기 미리 설정한 조건을 만족하는 상황이 발생할 시, 상기 발생한 상황에 따른 동작 상태로의 천이를 수행할 수 있다.
상기 단일 전송 상태(210)를 유지 (ⓐ)하거나 상기 단일 전송 상태(210)로 천이 (ⓕ, ⓘ)하기 위한 조건은, 예를 들면, 하나의 통신 경로가 연결된 상태에서 추가 통신 경로를 연결할 수 없거나 연결 상태에 있는 두 개의 통신 경로 중 하나의 연결이 해제된 경우에 해당할 수 있다.
상기 메인/백업 전송 상태(220)를 유지 (ⓓ)하거나 상기 메인/백업 전송 상태(220)로 천이 (ⓑ, ⓗ)하기 위한 조건은, 예를 들면, 연결 상태에 있는 두 개의 통신 경로들 중 적어도 하나의 통신 경로에 대해 측정한 전송 품질이 미리 설정된 기준 전송 품질을 만족하는 경우에 해당할 수 있다.
상기 병합 전송 상태(230)를 유지 (ⓖ)하거나 상기 병합 전송 상태(230)로 천이 (ⓒ, ⓔ)하기 위한 조건은, 예를 들면, 연결 상태에 있는 두 개의 통신 경로들 각각에 대해 측정한 전송 품질 모두가 미리 설정된 기준 전송 품질을 만족하지 않을 경우에 해당할 수 있다.
도 5는 본 개시에서 제안된 다양한 실시 예에 따라, 다중 무선 접속 기술에 적어도 기반하는 다수의 통신 경로를 지원하는 전자장치에서 수행하는 제어 흐름을 도시한 도면이다.
도 5를 참조하면, 전자장치는 510단계에서 초기 또는 변경된 통신 모드에 따른 비디오 스트리밍 서비스를 수행할 수 있다. 상기 전자장치는, 예를 들면, 하나의 통신 경로 또는 다수의 통신 경로 각각을 통해 요청 메시지를 서버로 전송할 수 있다. 상기 전자장치는 다수의 통신 경로 각각으로 전송한 요청 메시지에 대응하여 상기 다수의 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신할 수 있다. 상기 전자장치는 요청 메시지를 전송할 하나 또는 다수의 통신 경로를 초기 또는 변경된 통신 모드를 기반으로 선택할 수 있다.
상기 초기 또는 변경된 통신 모드는 미리 정의된 다수의 통신 모드 중 하나로 설정될 수 있다. 상기 다수의 통신 모드는, 예를 들면, 단일 전송모드와 멀티 전송모드를 포함하고, 상기 멀티 전송모드는 메인/백업 전송모드와 병합 전송모드를 포함할 수 있다. 상기 단말 전송모드는 다수의 통신 경로 중 하나의 통신 경로를 통해 비디오 스트리밍 서비스를 지원하고, 상기 메인/백업 전송모드는 다수의 통신 경로 중 하나의 메인 통신 경로와 하나의 백업 통신 경로를 통해 비디오 스트리밍 서비스를 지원하며, 상기 병합 전송모드는 다수의 통신 경로 중 복수의 통신 경로를 통해 비디오 스트리밍 서비스를 지원한다.
상기 전자장치는, 예를 들면, 다수의 통신 경로가 제 1 통신 경로와 제 2 통신 경로를 포함하는 경우, 상기 제 1 통신 경로를 사용한 단일 전송모드에 의해 비디오 스트리밍을 서비스하는 중에 상기 제 2 통신 경로의 연결이 가능하거나 상기 제 2 통신 경로를 사용한 단일 전송모드에 의해 비디오 스트리밍을 서비스하는 중에 상기 제 1 통신 경로의 연결이 가능한 경우, 상기 제 1 통신 경로와 상기 제 2 통신 경로 각각을 통해 요청 메시지를 서버로 전송하고, 상기 요청 메시지에 따라 상기 제1 및 제 2 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신할 수 있다.
상기 전자장치가 510단계에서 통신모드에 따라 비디오 스트리밍 서비스를 수행하는 세분화된 절차는 하기에서 도 6a, 도 6b 내지 도 8을 참조하여 구체적으로 개시할 것이다. 예컨대, 510단계는 오프로더가 비디오 어플리케이션으로부터 제공된 요청 메시지를 비디오 스트리밍 서버로 전송하는 단계와, 상기 전송한 요청 메시지에 대한 응답으로 상기 오프로더가 상기 비디오 스트리밍 서버로부터 비디오 데이터 (비디오 세그먼트)를 수신하는 단계와, 상기 오프로더가 상기 수신한 비디오 세그먼트를 상기 비디오 어플리케이션으로 전달하는 단계, 상기 수신한 비디오 세그먼트에 의해 하나 또는 다수의 통신 경로에 대한 전송 품질을 추정하는 단계, 및 상기 추정한 전송 품질을 기반으로 현재 통신 모드의 변경이 필요한지를 검토하는 단계 등으로 세분화될 수 있을 것이다.
상기 전자장치는 512단계에서 통신 모드의 변경이 필요한지를 판단한다. 상기 전자장치는 각 통신 경로에서의 전송 품질을 추정하고, 상기 통신 경로 별로 추정한 전송 품질이 미리 설정된 기준 전송 품질을 만족하는지에 의해 판단하며, 상기 판단 결과에 의해 통신 모드의 변경이 필요한지를 결정할 수 있다.
상기 전자장치는, 예를 들면, 미리 설정된 적어도 하나의 조건을 만족하는 임의의 무선 탐색 시점에서 상기 다수의 통신 경로 별로 수신한 비디오 세그먼트를 기반으로 각 통신 경로에서의 전송 품질을 추정할 수 있다. 상기 전자장치는 다수의 통신 경로의 조합을 지정하는 다수의 통신 모드 중 상기 비디오 스트리밍을 지원할 적어도 하나의 통신 경로를 지정하는 하나의 통신 모드를 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 결정할 수 있다.
일 실시 예에 따르면, 전자장치는 다수의 통신 경로가 제 1 통신 경로와 제 2 통신 경로를 포함하는 경우, 상기 제 1 통신 경로에 대해 추정한 제 1 전송 품질이 미리 설정된 제 1 기준 전송 품질을 만족하지 않고, 상기 제 2 통신 경로에 대해 추정한 제 2 전송 품질이 미리 설정된 제 2 기준 전송 품질을 만족하지 않으면, 병합 전송모드를 비디오 스트리밍 서비스를 지원할 통신 모드로 결정할 수 있다.
상기 전자장치는 상기 제 1 전송 품질이 상기 미리 설정된 제 1 기준 전송 품질을 만족하면, 상기 제 1 통신 경로를 메인 통신 경로로 사용하고, 상기 제 2 통신 경로를 백업 통신 경로로 사용하는 메인/백업 전송모드를 비디오 스트리밍 서비스를 지원할 통신 모드로 결정할 수 있다.
상기 전자장치는 상기 제 2 전송 품질이 상기 미리 설정된 제 2 기준 전송 품질을 만족하면, 상기 제 2 통신 경로를 메인 통신 경로로 사용하고, 상기 제 1 통신 경로를 백업 통신 경로로 사용하는 메인/백업 전송모드를 비디오 스트리밍 서비스를 지원할 통신 모드로 결정할 수 있다.
상기 전자장치는, 예를 들면, 다수의 통신 경로가 제 1 통신 경로와 제 2 통신 경로를 포함하는 경우, 병합 전송모드 또는 메인/백업 전송모드에 의해 비디오 스트리밍을 서비스하는 중에 상기 제 2 통신 경로의 연결이 차단되면, 통신 모드를 병합 전송모드 또는 메인/백업 전송모드에서 제 1 통신 경로를 사용하는 단일 전송모드로 변경할 수 있다.
상기 전자장치는 514단계에서 기존 통신 모드를 새로 결정한 통신 모드로 변경할 수 있다. 상기 전자장치는 통신 모드의 변경이 이루어지면, 510단계로 진행하여 변경된 통신 모드에 따른 비디오 스트리밍 서비스를 수행할 수 있다.
하기에서는 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 각 통신 모드에 따라 수행할 동작을 구체적으로 설명할 것이다. 이때, 설명의 편의를 위해 모든 동작 수행의 주체를 비디오 어플리케이션 및 오프로더로 한정하여 설명할 것이다. 하지만 개시될 설명에 따른 동작은 오프로더가 어플리케이션 레벨에 위치하거나 미들웨어에 위치하더라도 동일하게 수행될 수 있음은 물론일 것이다.
도 6은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 단일 전송모드에서 수행하는 제어 흐름을 도시한 도면이다.
도 6을 참조하면, 전자장치의 오프로더는 601 단계에서 비디오 어플리케이션으로부터 비디오 스트리밍 서버로 전송할 비디오 세그먼트 요청 메시지를 수신한다. 상기 오프로더는 602 단계에서 비디오 어플리케이션으로부터 제공받은 비디오 세그먼트 요청 메시지를 현재 연결 상태에 있는 통신모듈을 통해 비디오 서버로 전송한다. 상기 비디오 서버는 요청에 상응하는 비디오 세그먼트를 전자장치로 전송할 것이다. 상기 비디오 서버에 의해 전송된 비디오 세그먼트는 603 단계에서 전자장치에 구비된 통신모듈을 거쳐 오프로더에 의해 수신된다. 상기 오프로더는 604 단계에서 필요 시 비디오 어플리케이션의 버퍼 잔량을 예측하는 등의 작업을 수행한 후, 상기 수신한 비디오 세그먼트를 해당 비디오 어플리케이션으로 전달할 수 있다.
상기 오프로더는 605단계에서 무선 탐색을 수행할 시점인지 여부를 판단한다. 상기 무선 탐색을 수행할 시점인지에 대한 판단은 미리 정의된 조건들 중 하나 이상 혹은 하나 이상의 조합에 의해 구성된 기준을 따른다. 상기 미리 정의된 조건들은 비디오 세그먼트의 요청이 발생한 경우, 특정 이벤트가 발생한 경우, 무선 탐색 타이머가 만료된 경우를 포함할 수 있다
상기 첫 번째 판단 조건은 첫 번째 비디오 세그먼트인 경우에는 항상 무선 탐색을 수행하도록 설정하기 위함이다. 상기 두 번째 판단 조건인 특정 이벤트의 발생 여부는 일정 시간 구간마다 확인을 하도록 구현될 수 있다. 상기 특정 이벤트의 종류는 하기 이벤트 중 하나 이상 혹은 하나 이상의 조합으로 구성될 수 있다.
첫 번째로 현재 무선 경로가 아닌 다른 무선 경로를 이용하면 더 고화질의 비디오 시청이 가능한 상황일 때
두 번째로 현재 무선 경로의 성능 (예: Throughput, QoE)이 기준치 이하일 때
세 번째로 예상되는 비디오 버퍼 잔량이 제1 임계 값보다 작을 때
네 번째로 접속 가능한 새로운 Wi-Fi AP가 있을 때
다섯 번째로 Wi-Fi 신호 (예: RSSI)가 기준치 이상 좋아지거나 나빠질 때
여섯 번째로 LTE 신호 (예: RSRP, RSRQ)가 기준치 이상 좋아지거나 나빠질 때
일곱 번째로 LTE를 사용 중이며, 예상 비디오 버퍼 잔량이 제2 임계 값보다 클 때
상기 세 번째 판단 조건인 무선 탐색 타이머가 만료된 경우는 특정한 이벤트가 발생하지 않았더라도 일정 시간 간격마다 한 번씩 무선 탐색이 수행될 수 있도록 하기 위함이다. 이를 위한, 무선 탐색 타이머는 최초 스트리밍 시작에 의해 설정 (setting)되며, 무선 탐색을 수행할 때마다 재 설정 (resetting)될 수 있다.
만약 무선 탐색 시점이라 판단되면 606 단계로 진행하고, 무선 탐색 시점이 아니라고 판단되면 601 단계로 진행한다.
상기 오프로더는 606단계에서 현재 연결 상태에 있는 통신 모듈이 Wi-Fi 인 것으로 판단하면, 607 단계에서 Wi-Fi의 성능이 기준 성능보다 나은지를 확인할 수 있다. 여기서 성능은 처리율 (throughput, Mbps)이 될 수 있으며, 상기 처리율로 비디오 어플리케이션에서 시청할 수 있는 비디오 해상도가 결정될 수 있다.
또한, 기준 성능은 현재 사용자가 이용중인 통신 네트워크나 서비스에 따라서 오프로더가 미리 설정된 값에 의해 자동으로 설정하거나 사용자가 지정한 값에 의해 설정될 수 있다.
만약, Wi-Fi의 성능이 기준 성능 보다 나은 경우에는 601 단계로 진행하며, 그렇지 않은 경우 608 단계로 진행하여 LTE 연결을 추가할 수 있다. 이 때, LTE 연결을 추가하면서 Wi-Fi 연결이 해지되는 것은 아님에 유의한다.
한편, 606 단계에서 현재 메인 통신모듈이 LTE인 것으로 판단되면, 상기 오프로더는 609 단계에서 Wi-Fi의 연결이 가능한지 확인한다. 만약, 불가한 경우 601 단계로 진행하고, 가능한 경우 610 단계로 진행하여 상기 오프로더는 Wi-Fi 연결을 추가할 수 있다. 이 때, Wi-Fi 연결을 추가하면서 기존의 LTE 연결이 해지되지 않음에 유의한다.
상기 오프로더는 611 단계에서 비디오 어플리케이션으로부터 또 다른 비디오 요청 메시지를 수신할 수 있다. 상기 오프로더는 612 단계에서 LTE와 Wi-Fi 통신 모듈 양쪽 모두를 통하여 개별적으로 비디오 세그먼트 요청을 비디오 스트리밍 서버에 전달할 수 있다. 상기 비디오 스트리밍 서버는 개별적인 비디오 세그먼트 요청에 대하여 비디오 세그먼트를 전자장치로 전송할 수 있다. 상기 전자장치는 각 비디오 세그먼트를 이동 통신 망 (셀룰러 망)과 Wi-Fi 망을 통하여 수신할 수 있다. 상기 수신한 비디오 세그먼트는 613 단계에서 비디오 어플리케이션으로 전달되기 이전에 오프로더에 의해 수신될 수 있다. 상기 오프로더는 수신한 비디오 세그먼트를 관찰함으로써 각 통신 링크의 성능 (예: throughput)을 알 수 있게 된다. 상기 오프로더는 각 통신 링크의 성능을 참조하여 이후 단계에서 최적의 무선 모드를 결정할 수 있다. 한편, 상기 오프로더는 614 단계에서 수신된 비디오 세그먼트를 상기 비디오 어플리케이션으로 전달한다.
상기 오프로더는 615단계에서 측정된 Wi-Fi의 성능과 기준 성능을 비교한다. 만약, Wi-Fi 성능이 기준 성능 이상인 경우, 상기 오프로더는 619 단계로 진행할 수 있다. 상기 오프로더는 619 단계에서 메인/백업 전송 상태로 상태 천이를 수행할 수 있다. 이 경우, 복수 무선 경로에서 Wi-Fi가 메인 통신모듈, 셀룰러 (일 예로 LTE)가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
상기 오프로더는 615 단계에서 Wi-Fi 성능이 기준 성능 이하인 것으로 판단되는 경우, 616 단계로 진행하여 LTE 성능과 기준 성능을 비교한다. 만약, LTE 성능이 기준 성능 이하인 경우, 상기 오프로더는 617 단계로 진행할 수 있다. 상기 617 단계는 병합 전송 상태로의 천이에 해당할 수 있다.
상기 오프로더는 616 단계에서 LTE 성능이 기준 성능보다 좋은 경우, 618 단계로 진행하여 추정한 비디오 버퍼 잔량을 기준치와 비교한다. 만약, 추정 비디오 버퍼 잔량이 기준치보다 크거나 같은 경우, 상기 오프로더는 619 단계로 진행할 수 있다. 상기 오프로더는 619 단계에서 메인/백업 전송 상태로 천이할 수 있다. 이 때, 복수 무선 경로에서 Wi-Fi가 메인 통신모듈, 셀룰러 (일 예로 LTE)가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
하지만 추정 비디오 버퍼 잔량이 기준치보다 작은 경우, 상기 오프로더는 620 단계로 진행할 수 있다. 상기 오프로더는 620 단계에서 메인/백업 전송 상태로 천이할 수 있다. 이 때, 복수 무선 경로에서 셀룰러 (일 예로 LTE)가 메인 통신모듈, Wi-Fi가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
상기 비디오 버퍼 잔량에 대한 추정은 기본적으로 오프로더가 비디오 세그먼트를 중개하면서 파악한 다운로드된 재생 가능 시간 (Downloaded time)과 비디오 어플리케이션의 비디오 요청 메시지를 통해 파악된 재생 경과 시간 (Elapsed time)의 차이를 통해 파악할 수 있다.
상기 비디오 버퍼 잔량은 하기 <수학식 1>에 의해 정의될 수 있다.
Figure 112016021544726-pat00001
상기 <수학식 1>에서 비디오 버퍼 잔량을 추정하기 위해 사용되는 다운로드된 재생 가능 시간 (Downloaded time)은 전체 다운로드된 세그먼트 크기의 합 (Total received bits)을 기준 비트 레이트 (Base bit rate)로 나누어 근사치를 추정할 수 있다. 이는 하기 <수학식 2>에 의해 정의될 수 있다.
Figure 112016021544726-pat00002
다른 방안으로, 비디오 스트리밍의 세그먼트가 주기적으로 전송되는 특성을 이용하여 하기 <수학식 3>에 의해 다운로드된 재생 가능 시간의 근사치를 추정할 수 있다.
Figure 112016021544726-pat00003
상기 <수학식 3>에서, 분자는 재생 시작 후 혹은 탐색재생 시작 후 수신된 세그먼트 크기의 총합을 의미하며, 분모는 각 세그먼트 당 비트 레이트의 평균값을 의미한다.
상기 <수학식 3>에 의해 정의된 방안에 대한 예시는 도 12에 도시된 바와 같다.
다른 방안으로, 비디오 스트리밍 세그먼트의 크기가 비디오의 비트 레이트와 상관 관계를 갖는 특성을 이용하여 하기 <수학식 4>에 의해 다운로드된 재생 가능 시간의 근사치를 추정할 수 있다.
Figure 112016021544726-pat00004
상기 <수학식 4>에서 분자는 재생 시작 후 혹은 탐색재생 시작 후 수신된 세그먼트 크기의 총합을 의미하며, 분모는 각 세그먼트의 비디오 비트 레이트를 의미한다.
상기 <수학식 4>에 의해 정의된 방안에 대한 예시는 도 13에 도시된 바와 같다.
도 7은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 메인/백업 전송모드에서 수행하는 제어 흐름을 도시한 도면이다.
도 7을 참조하면, 전자장치의 오프로더는 701 단계에서 비디오 어플리케이션으로부터 비디오 스트리밍 서버로 전송할 비디오 세그먼트 요청 메시지를 수신한다. 상기 오프로더는 702 단계에서 프리패칭된 비디오 세그먼트가 존재하는지를 판단한다. 상기 프리패칭된 비디오 세그먼트는 메인/백업 전송모드에 따라 메인 통신 경로를 통해 수신한 비디오 세그먼트 외에 백업 통신 경로를 통해 별로도 수신한 비디오 세그먼트가 될 수 있다.
상기 오프로더는 캐싱 (cashing)된 비디오 세그먼트를 가지고 있는 경우에 705 단계로 진행하고, 캐싱 (cashing)된 비디오 세그먼트를 가지고 있지 않는 경우에 703 단계로 진행할 수 있다.
상기 수신한 비디오 세그먼트 요청 메시지가 비디오 어플리케이션에 의해 최초로 제공된 것이라면, 프리패칭된 비디오 세그먼트가 존재하지 않음이 자명할 것이다. 이 경우, 상기 오프로더는 703 단계로 진행하여 메인 통신 경로 (메인 통신 모듈)를 통해 비디오 요청 메시지를 전송하고, 백업 통신 경로 (백업 통신 모듈)을 이용하여 보조 동작을 수행할 수 있다.
상기 보조 동작은, 예를 들면, 아이들 상태로의 동작, 프리패칭 (pre-fetching)을 위한 동작, 부하 분산을 위한 동작 중 하나에 해당할 수 있다.
상기 아이들 상태로의 동작은 메인 통신 경로를 대신하기 위해 대기 (단순히 세션을 유지하고 있는 상태)하고 있는 동작에 해당할 수 있다. 이 경우, 오프로더는 통신 세션의 유지를 위해 주기적으로 서버와 Keep-alive 류의 메시지를 송신하거나 수신하는 동작을 포함할 수 있다.
상기 프리패칭을 위한 동작은 앞서 설명된 바와 같이 비디오 어플리케이션에 의해 요청된 비디오 세그먼트를 수신하기 위한 동작에 해당한다. 이 경우, 오프로더는 비디오 어플리케이션의 요청 메시지에 의해 메인 통신모듈로 전달된 비디오 세그먼트 이후에 추가로 요청될 것으로 예상되는 비디오 세그먼트를 백업 통신모듈을 통해 미리 요청하는 프리패칭 동작을 포함할 수 있다.
상기 부하 분산을 위한 동작은 비디오 어플리케이션에 의해 메인 통신 경로를 통해 수신할 것이 요청된 비디오 세그먼트 중 일부를 메인 통신 경로를 대신하여 백업 통신 경로를 통해 수신하는 동작에 해당한다. 이 경우, 오프로더는 메인 통신 경로를 통해 수신할 데이터 량과 백업 통신 경로를 통해 수신할 데이터 량의 비율을 통신 환경을 고려하여 조정할 수 있다. 예컨대, 상기 메인 통신 경로의 전송 품질이 상기 백업 통신 경로의 전송 품질에 비해 상대적으로 양호하다면, 상기 오프로더는 메인 통신 경로를 통해 수신할 데이터 량을 백업 통신 경로를 통해 수신할 데이터 량에 비해 상대적으로 많도록 설정할 수 있다.
상기 오프로더는 704 단계에서 비디오 스트리밍 서버로부터 메인 통신 경로와 백업 통신 경로 각각을 통해, 요청한 비디오 세그먼트를 수신할 수 있다. 하지만, 상기 백업 통신 경로 (백업 통신 모듈)가 보조 동작으로 아이들 동작을 수행하는 경우, 상기 백업 통신 경로를 통해서는 비디오 세그먼트가 수신되지 않을 것이다.
상기 오프로더는 보조 동작으로 프리패칭 동작이 설정된 경우, 상기 백업 통신 경로를 통해 수신한 비디오 세그먼트를 임시로 저장할 수 있다. 상기 오프로더는 보조 동작으로 부하 분산 동작이 설정된 경우, 상기 백업 통신 경로를 통해 수신한 비디오 세그먼트를 수신할 수 있다.
일 실시 예에 따르면, 오프로더는 704 단계에서 자신이 메인 통신 경로를 통해 전달한 요청 메시지를 응답하여 비디오 스트리밍 서버로부터 요청에 상응하는 비디오 세그먼트를 해당 통신 모듈 (메인 통신 모듈)을 통해 수신할 것이다. 만약, 백업 통신 모듈의 보조 동작이 프리패칭이었다면, 상기 오프로더는 백업 통신 경로를 통해서도 요청 메시지를 상기 비디오 스트리밍 서버로 전달하였을 것이며, 이에 대한 응답으로 상기 백업 통신 경로를 통해서도 상기 비디오 스트리밍 서버로부터 요청에 상응하는 비디오 세그먼트를 수신할 것이다. 이 경우, 상기 오프로더는 프리패칭을 위해 상기 백업 통신 경로를 통해 수신한 비디오 세그먼트를 향후 비디오 어플리케이션의 요청에 대비하여 캐싱할 수 있다.
상기 오프로더는 보조 동작으로 부하 분산을 위한 동작이 설정된 경우, 상기 메인 통신 경로를 통한 수신이 백업 통신 경로를 통한 수신보다 먼저 완료되었을 때, 백업 통신 경로를 통해 아직 수신되지 않은 비디오 세그먼트를 메인 통신 경로를 통해 다시 비디오 서버에 요청하도록 동작할 수 있다.
상기 오프로더는 메인 통신 경로와 백업 통신 경로로 수신한 비디오 세그먼트를 관찰함으로써, 각 통신 링크의 성능 (예: throughput)을 추정할 수 있게 된다. 상기 오프로더는 메인 통신 링크와 백업 통신 링크의 성능을 참조하여 이후 단계에서 최적의 통신 모듈 또는 통신모드를 결정할 수 있다.
상기 오프로더는 705 단계에서 프리패칭에 따라 캐싱된 비디오 세그먼트 또는 수신된 비디오 세그먼트를 비디오 어플리케이션으로 전달한다. 상기 오프로더는 필요에 따라 705 단계에서 비디오 어플리케이션의 버퍼 잔량을 예측하는 등의 작업을 수행한 후, 수신 또는 캐싱된 비디오 세그먼트를 비디오 어플리케이션에게 전달할 수 있다.
상기 오프로더는 706 단계에서 Wi-Fi 연결이 유효한지 확인한다. 상기 Wi-Fi 연결이 유효하다는 것은 비디오 세그먼트를 수신하는 것이 가능하다는 것을 의미할 수 있다. 예컨대, 상기 오프로더는 Wi-Fi 연결이 끊긴 경우와 Wi-Fi 연결이 유지되고 있으나 일정 시간 동안 비디오 세그먼트를 수신하지 못하는 두 가지 경우에 대해, Wi-Fi 연결이 더 이상 유효하지 않는 것으로 판단할 수 있다.
만약, Wi-Fi 연결이 더 이상 유효하지 않은 경우, 상기 오프로더는 707 단계로 진행하여 단일 전송모드, 즉 일반 전송 상태로 천이할 수 있다. 이 경우, LTE 통신 모듈만이 활성화될 수 있다.
상기 오프로더는 706 단계가 아니라 임의의 시점에서 Wi-Fi 연결이 갑자기 끊기는 경우, 언제라도 일반 전송 상태로 천이함으로써, 안정적인 비디오 스트리밍 서비스가 유지될 수 있도록 할 수 있다.
상기 상기 오프로더는 Wi-Fi 연결이 유효하지 않아 Wi-Fi로 할당된 비디오 세그먼트를 완전히 수신하지 못하면, 수신하지 못한 부분 (비디오 세그먼트)에 대해 LTE로 요청 메시지를 보내고, 이에 대응하여 원하는 비디오 세그먼트를 수신할 수 있다. 그 뿐만 아니라, 상기 오프로더는 LTE로 할당된 비디오 세그먼트를 완전히 수신하지 못한 경우에도, 수신하지 못한 부분 (비디오 세그먼트)에 대해 Wi-Fi로 요청 메시지를 보내고, 이에 대응하여 원하는 비디오 세그먼트를 수신할 수 있다.
그렇지 않고, Wi-Fi 연결이 유효한 경우, 상기 오프로더는 708 단계에서 무선 탐색을 수행할 시점인지를 판단할 수 있다. 상기 무선 탐색을 수행할 시점인지에 대한 판단은 도 6에서의 601 단계에서 이루어진 방안과 동일할 수 있다. 하지만 메인/백업 전송모드에서는 무선 탐색 시점에 대한 판단을 반드시 수행할 필요는 없다. 즉, 메인/백업 전송모드에서 무선 탐색 시점에 대한 판단은 선택적 (optional)으로 적용할 수 있다. 그 이유는 메인/백업 전송모드에서는 복수의 무선 링크가 항상 사용되고 있기 때문이다.
상기 오프로더는 무선 탐색 시점이라 판단하면 709 단계로 진행하고, 무선 탐색 시점이 아니라고 판단하면 701 단계로 진행할 수 있다.
상기 오프로더는 709 단계에서 측정된 Wi-Fi의 성능과 기준 성능을 비교한다. 만약, Wi-Fi 성능이 기준 성능 이상인 경우, 상기 오프로더는 714 단계로 진행할 수 있다. 상기 오프로더는 714 단계에서 메인/백업 전송 상태로 상태 천이를 수행할 수 있다. 이 경우, 복수 무선 경로에서 Wi-Fi가 메인 통신모듈, 셀룰러 (일 예로 LTE)가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
상기 오프로더는 709 단계에서 Wi-Fi 성능이 기준 성능 이하인 것으로 판단되는 경우, 710 단계로 진행하여 LTE 성능과 기준 성능을 비교한다. 만약, LTE 성능이 기준 성능 이하인 경우, 상기 오프로더는 711 단계로 진행할 수 있다. 상기 711 단계는 병합 전송 상태로의 천이에 해당할 수 있다.
상기 오프로더는 710 단계에서 LTE 성능이 기준 성능보다 좋은 경우, 712 단계로 진행하여 추정한 비디오 버퍼 잔량을 기준치와 비교한다. 만약, 추정 비디오 버퍼 잔량이 기준치보다 크거나 같은 경우, 상기 오프로더는 714 단계로 진행할 수 있다. 상기 오프로더는 714 단계에서 메인/백업 전송 상태로 천이할 수 있다. 이 때, 복수 무선 경로에서 Wi-Fi가 메인 통신모듈, 셀룰러 (일 예로 LTE)가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
하지만 추정 비디오 버퍼 잔량이 기준치보다 작은 경우, 상기 오프로더는 713 단계로 진행할 수 있다. 상기 오프로더는 713 단계에서 메인/백업 전송 상태로 천이할 수 있다. 이 때, 복수 무선 경로에서 셀룰러 (일 예로 LTE)가 메인 통신모듈, Wi-Fi가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
상술한 바와 달리, 712 단계에서의 비디오 버퍼 잔량에 의한 동작이 생략될 수도 있다. 이 경우, 오프로더는 LTE 성능이 기준 성능보다 좋은 경우, 714 단계로 직접 진행할 수도 있다.
상기 오프로더는 715 단계에서 Wi-Fi 타이머가 만료되었는지를 확인한다. 일 예로, 오프로더는 Wi-Fi가 메인 통신모듈로 정상적으로 유지되고 있는 시간을 확인하기 위해, Wi-Fi 타이머를 이용할 수 있다. 이 경우, Wi-Fi 타이머는 Wi-Fi가 최초로 메인 통신모듈로 설정된 시점에 설정될 수 있다. 만약, Wi-Fi 타이머가 만료된 경우, 상기 오프로더는 Wi-Fi 만으로 비디오 스트리밍 서비스를 원활하게 지원할 수 있는 것으로 간주하여 LTE 연결을 해제할 수 있다 (716 단계).
상기 오프로더는 LTE 연결이 해지되면, Wi-Fi를 메인 통신모듈로 하는 일반 전송 상태로 천이할 수 있다 (717 단계). 만약, Wi-Fi 타이머가 만료되지 않은 경우, 상기 오프로더는 701 단계로 진행할 수 있다.
도 8은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치가 병합 전송모드에서 수행하는 제어 흐름을 도시한 도면이다.
도 8을 참조하면, 전자장치의 오프로더는 801 단계에서 비디오 어플리케이션으로부터 비디오 스트리밍 서버로 전송할 비디오 세그먼트 요청 메시지를 수신한다.
상기 오프로더는 802 단계에서 두 개의 통신 모듈 (Wi-Fi 통신모듈, LTE 통신모듈)을 모두 이용하여 비디오 어플리케이션으로 전송할 비디오 세그먼트 요청 메시지를 분석 후, 이를 두 개의 바이트 범위로 나누어 두 개의 요청 메시지를 생성하고, 상기 생성한 두 개의 요청 메시지를 두 개의 통신모듈 각각을 통해 비디오 스트리밍 서버로 전송한다.
상기 오프로더는 803 단계에서 비디오 스트리밍 서버로부터 두 개의 통신 경로들을 통해, 요청한 비디오 세그먼트를 수신할 수 있다. 즉, 오프로더에 의해 두 개의 바이트 범위로 나뉘어 전달된 비디오 어플리케이션 요청 메시지를 수신한 비디오 스트리밍 서버는 요청에 상응하는 두 개의 비디오 세그먼트를 전자장치로 전송할 것이다. 상기 오프로더는 상기 비디오 스트리밍 서버에 의해 전송된 두 개의 비디오 세그먼트를 두 개의 통신모듈을 통해 순차적으로 수신할 수 있다. 상기 오프로더는 두 개의 비디오 세그먼트가 모두 수신될 때까지 기다린 후, 두 세그먼트를 병합하여 비디오 어플리케이션에 의해 요청된 비디오 세그먼트를 만들 수 있다.
상기 오프로더는 두 개의 통신 경로들로 수신된 비디오 세그먼트를 관찰함으로써, 각 통신 링크의 성능 (예: throughput)을 추정할 수 있게 된다. 상기 오프로더는 두 개의 통신 링크들 각각의 성능을 참조하여 이후 단계에서 최적의 통신 모듈 또는 통신모드를 결정할 수 있다.
상기 오프로더는 804 단계에서 두 개의 통신 경로들을 통해 수신하여 병합이 이루어진 비디오 세그먼트를 비디오 어플리케이션으로 전달한다. 상기 오프로더는 필요에 따라 804 단계에서 비디오 어플리케이션의 버퍼 잔량을 예측하는 등의 작업을 수행한 후, 병합된 비디오 세그먼트를 비디오 어플리케이션에게 전달할 수도 있다.
상기 오프로더는 805 단계에서 Wi-Fi 연결이 유효한지 확인한다. 상기 Wi-Fi 연결이 유효하다는 것은 비디오 세그먼트를 수신하는 것이 가능하다는 것을 의미할 수 있다. 예컨대, 상기 오프로더는 Wi-Fi 연결이 끊긴 경우와 Wi-Fi 연결이 유지되고 있으나 일정 시간 동안 비디오 세그먼트를 수신하지 못하는 두 가지 경우에 대해, Wi-Fi 연결이 더 이상 유효하지 않는 것으로 판단할 수 있다.
만약, Wi-Fi 연결이 더 이상 유효하지 않은 경우, 상기 오프로더는 806 단계로 진행하여 단일 전송모드, 즉 일반 전송 상태로 천이할 수 있다. 이 경우, LTE 통신 모듈만이 활성화될 수 있다.
상기 오프로더는 706 단계가 아니라 임의의 시점에서 Wi-Fi 연결이 갑자기 끊기는 경우, 언제라도 일반 전송 상태로 천이함으로써, 안정적인 비디오 스트리밍 서비스가 유지될 수 있도록 할 수 있다.
상기 상기 오프로더는 Wi-Fi 연결이 유효하지 않아 Wi-Fi로 할당된 비디오 세그먼트를 완전히 수신하지 못하면, 수신하지 못한 부분 (비디오 세그먼트)에 대해 LTE로 요청 메시지를 보내고, 이에 대응하여 원하는 비디오 세그먼트를 수신할 수 있다. 그 뿐만 아니라, 상기 오프로더는 LTE로 할당된 비디오 세그먼트를 완전히 수신하지 못한 경우에도, 수신하지 못한 부분 (비디오 세그먼트)에 대해 Wi-Fi로 요청 메시지를 보내고, 이에 대응하여 원하는 비디오 세그먼트를 수신할 수 있다.
그렇지 않고, Wi-Fi 연결이 유효한 경우, 상기 오프로더는 807 단계에서 무선 탐색을 수행할 시점인지를 판단할 수 있다. 상기 무선 탐색을 수행할 시점인지에 대한 판단은 도 6에서의 601 단계에서 이루어진 방안과 동일할 수 있다. 하지만 메인/백업 전송모드에서는 무선 탐색 시점에 대한 판단을 반드시 수행할 필요는 없다. 즉, 메인/백업 전송모드에서 무선 탐색 시점에 대한 판단은 선택적 (optional)으로 적용할 수 있다. 그 이유는 메인/백업 전송모드에서는 복수의 무선 링크가 항상 사용되고 있기 때문이다.
상기 오프로더는 무선 탐색 시점이라 판단하면 807 단계로 진행하고, 무선 탐색 시점이 아니라고 판단하면 801 단계로 진행할 수 있다.
상기 오프로더는 808 단계에서 측정된 Wi-Fi의 성능과 기준 성능을 비교한다. 만약, Wi-Fi 성능이 기준 성능 이상인 경우, 상기 오프로더는 811 단계로 진행할 수 있다. 상기 오프로더는 811 단계에서 메인/백업 전송 상태로 상태 천이를 수행할 수 있다. 이 경우, 복수 무선 경로에서 Wi-Fi가 메인 통신모듈, 셀룰러 (일 예로 LTE)가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
상기 오프로더는 808 단계에서 Wi-Fi 성능이 기준 성능 이하인 것으로 판단되는 경우, 809 단계로 진행하여 LTE 성능과 기준 성능을 비교한다. 만약, LTE 성능이 기준 성능 이하인 경우, 상기 오프로더는 801 단계로 진행하여 병합 전송 상태에 따른 동작을 계속하여 수행할 수 있다.
상기 오프로더는 809 단계에서 LTE 성능이 기준 성능보다 좋은 경우, 810 단계로 진행하여 추정한 비디오 버퍼 잔량을 기준치와 비교한다. 만약, 추정 비디오 버퍼 잔량이 기준치보다 크거나 같은 경우, 상기 오프로더는 811 단계로 진행할 수 있다. 상기 오프로더는 811 단계에서 메인/백업 전송 상태로 천이할 수 있다. 이 때, 복수 무선 경로에서 Wi-Fi가 메인 통신모듈, 셀룰러 (일 예로 LTE)가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
하지만 추정 비디오 버퍼 잔량이 기준치보다 작은 경우, 상기 오프로더는 812 단계로 진행할 수 있다. 상기 오프로더는 812 단계에서 메인/백업 전송 상태로 천이할 수 있다. 이 때, 복수 무선 경로에서 셀룰러 (일 예로 LTE)가 메인 통신모듈, Wi-Fi가 백업 통신모듈인 상태로 메인/백업 전송 상태가 시작될 것이다.
상술한 바와 달리, 810 단계에서의 비디오 버퍼 잔량에 의한 동작이 생략될 수도 있다. 이 경우, 오프로더는 LTE 성능이 기준 성능보다 좋은 경우, 812 단계로 직접 진행할 수도 있다.
도 9 내지 도 11은 본 개시에서 제안된 다양한 실시 예에 따라, 전자장치에 의해 수행되는 프리패칭의 시나리오들을 도시한 도면이다.
도 9를 참조하면, 비디오 콘텐트가 비디오 스트리밍 서버에 세그먼트 단위로 나뉘어 저장된 경우, 전자장치가 적응적 비디오 스트리밍 서비스를 위한 프리패칭 요청을 전송하는 예를 보이고 있다. 이는 HLS (Http Live Streaming)과 같은 규격이 한 예가 될 수 있다.
일반적으로 이러한 스트리밍 방식은 비디오 해상도 별로 별도의 비디오 파일을 만들고, 각 해상도 별 파일을 다시 여러 세그먼트 단위로 나누어 별도의 파일로 저장할 것이다. 이때, 저장된 각 파일의 이름은 일련번호로 구분될 수 있다. 상기 비디오 세그먼트 각각의 파일명 정보는 스트리밍 초기에 별도의 메타 데이터 파일 (예: m3u8)로 전달될 수 있다.
오프로더는 메타 데이터 정보의 내용을 파악하여 비디오 어플리케이션이 아직 요청하지 않은 비디오 세그먼트를 백업 통신모듈을 통해 미리 요청함으로써, 사용자 경험을 향상시킬 수 있다.
도 9의 우측 상단에 음영으로 표시된 세그먼트들은 이미 오프로더가 수신하여 비디오 어플리케이션으로 전달한 비디오 세그먼트들을 의미한다. 세그먼트 m은 현재 비디오 어플리케이션의 요청에 따라, 오프로더가 메인 통신모듈을 통해 비디오 스트리밍 서버로 전달이 요청된 또는 요청될 비디오 세그먼트를 의미한다. 세그먼트 n은 세그먼트 m 보다 일련번호가 큰 비디오 세그먼트로써, 백업 통신모듈을 통해 비디오 스트리밍 서버로 전달이 요청된 비디오 세그먼트를 의미한다.
도 9의 좌측에 도시된 세그먼트 m에 대한 요청과 세그먼트 n에 대한 프리패칭 요청을 비교하면, 오프로더의 프리패칭 요청을 위한 구성 방법을 이해할 수 있다.
도 10을 참조하면, 비디오 콘텐트가 비디오 스트리밍 서버에 하나의 파일로 저장된 경우, 적응적 비디오 스트리밍 서비스를 위한 프리패칭 요청이 전송되는 예를 보이고 있다. 이 경우, DASH (dynamic adaptive streaming over HTTP)와 같은 규격이 한 예가 될 수 있다.
일반적으로 이러한 스트리밍 방식은 비디오 해상도 별로 별도의 비디오 파일을 서버에 저장하고, 이 파일을 분할하지는 않는다. 비디오 어플리케이션은 요청 메시지 (예: HTTP 형식)에 요청하는 세그먼트의 바이트 범위를 명시하여 다운로드를 요청한다. 오프로더는 메인 통신모듈을 통해 아직 요청되지 않은 바이트 범위를 백업 통신모듈을 통해 요청하는 메시지를 생성하여 비디오 스트리밍 서버에 보냄으로써, 사용자 경험을 향상시킬 수 있다.
도 10의 우측 상단에 음영으로 표시된 바이트 범위는 오프로더가 비디오 스트리밍 서버로부터 수신하여 비디오 어플리케이션으로 전달한 비디오 세그먼트들이다. 바이트 범위 m0~m1으로 표시된 세그먼트(세그먼트 m)는 현재 비디오 어플리케이션의 요청에 의해 메인 통신모듈을 통해 요청이 비디오 스트리밍 서버로 전달되었거나 전달될 예정인 비디오 세그먼트를 의미한다. 바이트 범위 n0~n1으로 표시된 세그먼트(세그먼트 n)는 오프로더에 의해 백업 통신모듈로 요청이 서버에 전달될 세그먼트를 의미한다.
도 10에서 좌측에 도시된 세그먼트 m에 대한 요청과 세그먼트 n에 대한 프리패칭 요청을 비교하면 오프로더의 프리패칭 요청을 구성하는 방법에 대해 이해할 수 있다.
도 11을 참조하면, 프로그레시브 다운로드 방식을 기반으로 비디오 스트리밍 서비스에 따른 프리패칭 요청이 전송되는 예를 보이고 있다.
일반적으로 이러한 스트리밍 방식은 비디오가 단일 해상도로 하나의 파일로 비디오 서버에 저장되어 있으며, 비디오 어플리케이션은 통상 초기에는 전체 비디오를 요청하다가 상황에 따라 연결을 끊고 바이트 범위가 지정된 요청을 다시 보내는 방식으로 운영된다. 오프로더는 메인 통신모듈을 통해 아직 수신되지 않은 바이트 범위를 백업 통신모듈을 통해 요청하는 메시지를 생성하여 백업 통신모듈을 통해 서버에 보냄으로써, 사용자 경험을 향상시킬 수 있다.
도 11의 우측 상단에 음영으로 표시된 바이트 범위는 메인 통신모듈을 통해 오프로더에 수신된 비디오 바이트 영역이며, 세로 빗금으로 표시된 바이트 영역은 프리패칭으로 요청할 바이트 영역이다.
도 11에서 좌측에 도시된 비디오 요청과 세그먼트 n에 대한 프리패칭 요청을 비교하면, 오프로더의 프리패칭 요청을 구성하는 방법을 이해할 수 있다.
한편, 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시에서 제안한 다양한 실시 예에 따른 범위에서 벗어나지 않는 한도 내에서 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 여러 가지 변형에 의한 실시할 수 있음은 물론이다. 그러므로 본 개시에 따른 범위는 설명된 실시 예에 국한되어 정해져서는 안 되며, 후술하는 특허 청구의 범위뿐만 아니라, 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다. 그뿐만 아니라, 이러한 변형 실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.

Claims (15)

  1. 다수의 통신 경로를 지원하는 전자장치에서의 비디오 스트리밍 방법에 있어서,
    서로 다른 무선 접속 기술에 기반하는 상기 다수의 통신 경로 각각을 통해 요청 메시지를 서버로 전송하고, 상기 요청 메시지에 따라 상기 다수의 통신 경로 각각을 통해 상기 서버로부터 제1 비디오 세그먼트들을 수신하는 과정;
    상기 다수의 통신 경로 별로 수신한 상기 제1 비디오 세그먼트들을 기반으로 각 통신 경로에서의 전송 품질을 추정하는 과정;
    상기 다수의 통신 모드 중 상기 비디오 스트리밍을 지원할 적어도 하나의 통신 경로를 지정하는 하나의 통신 모드를 상기 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 결정하는 과정; 및
    여기서 상기 다수의 통신 모드는, 상기 다수의 통신 경로 중 하나의 통신 경로를 통해 상기 비디오 스트리밍을 지원하는 단일 전송모드, 메인 통신 경로로 사용되는 제1 통신 경로와 백업 통신 경로로 사용되는 제2 통신 경로를 통해 상기 비디오 스트리밍을 지원하는 메인/백업 전송모드, 및 상기 다수의 통신 경로 중 두 개 이상의 통신 경로를 통해 상기 비디오 스트리밍을 지원하는 병합 전송모드를 포함하며,
    상기 메인/백업 전송모드의 상기 메인 통신 경로를 통해 상기 비디오 스트리밍의 제2 비디오 세그먼트들을 수신하도록 결정된 경우, 상기 비디오 스트리밍과 관련된 메타데이터 정보에 근거하여 상기 백업 통신 경로를 사용하여 상기 비디오 스트리밍 중 상기 제2 비디오 세그먼트들 이후의 제3 비디오 세그먼트들에 대한 프리패치(prefetching)를 수행하는 과정을 포함하는 비디오 스트리밍 방법.
  2. 제1항에 있어서,
    현재 통신 모드가 상기 결정한 통신 모드와 상이할 경우, 상기 현재 통신 모드를 상기 결정한 통신 모드로 변경하는 과정을 더 포함하는 비디오 스트리밍 방법.
  3. 삭제
  4. 제1항에 있어서, 상기 하나의 통신 모드를 결정하는 과정은,
    상기 제 1 통신 경로에 대해 추정한 제 1 전송 품질이 미리 설정된 제 1 기준 전송 품질을 만족하지 않고, 상기 제 2 통신 경로에 대해 추정한 제 2 전송 품질이 미리 설정된 제 2 기준 전송 품질을 만족하지 않으면, 상기 병합 전송모드를 상기 비디오 스트리밍을 지원할 통신 모드로 결정하는 과정과,
    상기 제 1 전송 품질이 상기 미리 설정된 제 1 기준 전송 품질을 만족하면, 상기 제 1 통신 경로를 메인 통신 경로로 사용하고, 상기 제 2 통신 경로를 백업 통신 경로로 사용하는 메인/백업 전송모드를 상기 비디오 스트리밍을 지원할 통신 모드로 결정하는 과정을 포함하는 비디오 스트리밍 방법.
  5. 제1항에 있어서,
    상기 병합 전송모드 또는 상기 메인/백업 전송모드에 의해 상기 비디오 스트리밍을 서비스하는 중에 상기 제 2 통신 경로의 연결이 차단되면, 상기 통신 모드를 상기 병합 전송모드 또는 상기 메인/백업 전송모드에서 상기 제 1 통신 경로를 사용하는 단일 전송모드로 변경하는 과정을 더 포함하는 비디오 스트리밍 방법.
  6. 제1항에 있어서, 상기 비디오 세그먼트를 수신하는 과정은,
    상기 제 1 통신 경로를 사용한 단일 전송모드에 의해 상기 비디오 스트리밍을 서비스하는 중에 상기 제 2 통신 경로의 연결이 가능하거나 상기 제 2 통신 경로를 사용한 단일 전송모드에 의해 상기 비디오 스트리밍을 서비스하는 중에 상기 제 1 통신 경로의 연결이 가능한 경우, 상기 제 1 통신 경로와 상기 제 2 통신 경로 각각을 통해 요청 메시지를 상기 서버로 전송하고, 상기 요청 메시지에 따라 상기 제1 및 제 2 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신하는 과정임을 특징으로 하는 비디오 스트리밍 방법.
  7. 삭제
  8. 비디오 스트리밍 서비스를 위해 다수의 통신 경로를 통해 서버와의 무선 통신을 수행하는 통신 인터페이스;
    상기 비디오 스트리밍 서비스에 따라 상기 서버로부터 수신한 비디오 세그먼트들을 지정된 영역에 기록하는 메모리; 및
    서로 다른 무선 접속 기술에 기반하는 상기 다수의 통신 모드를 이용하여 상기 비디오 스트리밍 서비스를 제어하는 프로세서를 포함하고,
    여기서, 상기 프로세서는,
    상기 통신 인터페이스를 통해, 상기 서버로 상기 다수의 통신 경로 각각에서 요청 메시지를 전송하고,
    상기 요청 메시지에 따라 상기 다수의 통신 경로 각각에서 상기 서버로부터 제1 비디오 세그먼트들을 수신하고,
    상기 다수의 통신 경로 별로 수신한 상기 제1 비디오 세그먼트들을 기반으로 각 통신 경로에서의 전송 품질을 추정하고,
    상기 다수의 통신 경로 별로 추정한 전송 품질과 미리 설정된 기준 전송 품질에 의해 상기 다수의 통신 모드 중 하나의 통신 모드를 결정하고,
    여기서 상기 다수의 통신 모드는, 상기 다수의 통신 경로 중 하나의 통신 경로를 통해 상기 비디오 스트리밍을 지원하는 단일 전송모드, 메인 통신 경로로 사용되는 제1 통신 경로와 백업 통신 경로로 사용되는 제2 통신 경로를 통해 상기 비디오 스트리밍을 지원하는 메인/백업 전송모드, 및 상기 다수의 통신 경로 중 두 개 이상의 통신 경로를 통해 상기 비디오 스트리밍을 지원하는 병합 전송모드를 포함하며,
    상기 메인/백업 전송모드의 상기 메인 통신 경로를 통해 상기 비디오 스트리밍의 제2 비디오 세그먼트들을 수신하도록 결정된 경우, 상기 비디오 스트리밍과 관련된 메타데이터 정보에 근거하여 상기 백업 통신 경로를 사용하여 상기 비디오 스트리밍 중 상기 제2 비디오 세그먼트들 이후의 제3 비디오 세그먼트들에 대한 프리패치(prefetching)를 수행하도록 설정된 전자장치.
  9. 제8항에 있어서, 상기 프로세서는,
    현재 통신 모드가 상기 결정한 통신 모드와 상이할 경우, 상기 현재 통신 모드를 상기 결정한 통신 모드로 변경하도록 설정된 전자장치.
  10. 삭제
  11. 제8항에 있어서, 상기 프로세서는,
    상기 제 1 통신 경로에 대해 추정한 제 1 전송 품질이 미리 설정된 제 1 기준 전송 품질을 만족하지 않고, 상기 제 2 통신 경로에 대해 추정한 제 2 전송 품질이 미리 설정된 제 2 기준 전송 품질을 만족하지 않으면, 상기 병합 전송모드를 상기 비디오 스트리밍을 지원할 통신 모드로 결정하고,
    상기 제 1 전송 품질이 상기 미리 설정된 제 1 기준 전송 품질을 만족하면, 상기 제 1 통신 경로를 메인 통신 경로로 사용하고, 상기 제 2 통신 경로를 백업 통신 경로로 사용하는 메인/백업 전송모드를 상기 비디오 스트리밍을 지원할 통신 모드로 결정하도록 설정된 전자장치.
  12. 제8항에 있어서, 상기 프로세서는,
    상기 병합 전송모드 또는 상기 메인/백업 전송모드에 의해 상기 비디오 스트리밍을 서비스하는 중에 상기 제 2 통신 경로의 연결이 차단되면, 상기 통신 모드를 상기 병합 전송모드 또는 상기 메인/백업 전송모드에서 상기 제 1 통신 경로를 사용하는 단일 전송모드로 변경하도록 설정된 전자장치.
  13. 제8항에 있어서, 상기 프로세서는,
    상기 제 1 통신 경로를 사용한 단일 전송모드에 의해 상기 비디오 스트리밍을 서비스하는 중에 상기 제 2 통신 경로의 연결이 가능하거나 상기 제 2 통신 경로를 사용한 단일 전송모드에 의해 상기 비디오 스트리밍을 서비스하는 중에 상기 제 1 통신 경로의 연결이 가능한 경우, 상기 제 1 통신 경로와 상기 제 2 통신 경로 각각을 통해 요청 메시지를 상기 서버로 전송하고, 상기 요청 메시지에 따라 상기 제1 및 제 2 통신 경로 각각을 통해 상기 서버로부터 비디오 세그먼트를 수신하도록 상기 통신 인터페이스를 제어하도록 설정된 전자장치.
  14. 삭제
  15. 삭제
KR1020160026696A 2016-03-05 2016-03-05 전자장치에서의 비디오 스트리밍 장치 및 방법 KR102515269B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160026696A KR102515269B1 (ko) 2016-03-05 2016-03-05 전자장치에서의 비디오 스트리밍 장치 및 방법
US16/082,523 US10771854B2 (en) 2016-03-05 2017-03-03 Video streaming apparatus and method in electronic device
PCT/KR2017/002350 WO2017155251A1 (ko) 2016-03-05 2017-03-03 전자장치에서의 비디오 스트리밍 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160026696A KR102515269B1 (ko) 2016-03-05 2016-03-05 전자장치에서의 비디오 스트리밍 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170103582A KR20170103582A (ko) 2017-09-13
KR102515269B1 true KR102515269B1 (ko) 2023-03-30

Family

ID=59790652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026696A KR102515269B1 (ko) 2016-03-05 2016-03-05 전자장치에서의 비디오 스트리밍 장치 및 방법

Country Status (3)

Country Link
US (1) US10771854B2 (ko)
KR (1) KR102515269B1 (ko)
WO (1) WO2017155251A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105898625B (zh) * 2016-04-29 2020-03-17 腾讯科技(深圳)有限公司 一种播放处理方法及终端设备
US10887385B2 (en) * 2017-09-20 2021-01-05 Akamai Technologies, Inc. Marker based reporting system for hybrid content delivery network and peer to peer network
CN115334146A (zh) 2018-12-11 2022-11-11 Oppo广东移动通信有限公司 物联网的资源发布方法、装置、设备及存储介质
US11294702B2 (en) 2019-05-01 2022-04-05 EMC IP Holding Company LLC Method and system for processing data using a processing pipeline and processing units
US11119803B2 (en) * 2019-05-01 2021-09-14 EMC IP Holding Company LLC Method and system for offloading parity processing
WO2022026481A1 (en) * 2020-07-28 2022-02-03 Sonical Sound Solutions Fully customizable ear worn devices and associated development platform
CN112272398B (zh) * 2020-11-13 2024-01-19 Oppo广东移动通信有限公司 一种数据传输方法、装置、电子设备及存储介质
WO2022159849A1 (en) * 2021-01-22 2022-07-28 No On Ion Llc Systems and methods for network-connected image and video capture
CN113572836B (zh) * 2021-07-21 2022-07-15 腾讯科技(深圳)有限公司 一种数据传输方法、装置、服务器及存储介质
CN113765886B (zh) * 2021-08-04 2023-07-25 深圳Tcl新技术有限公司 多媒体播放方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110319072A1 (en) * 2010-06-28 2011-12-29 Research In Motion Limited Method And System for Radio Access Technology Selection
US20150319214A1 (en) * 2014-04-30 2015-11-05 Futurewei Technologies, Inc. Enhancing dash-like content streaming for content-centric networks
US20150381455A1 (en) * 2014-06-27 2015-12-31 Cisco Technology, Inc. Multipath Data Stream Optimization

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8873560B2 (en) * 2009-07-08 2014-10-28 Dejero Labs Inc. Multipath video streaming over a wireless network
US20110014892A1 (en) * 2009-07-17 2011-01-20 Peter Hedman Network-Assisted Initiation of Emergency Calls from a Multi-Mode Wireless Communication Device
US8417849B2 (en) * 2009-10-07 2013-04-09 International Business Machines Corporation Apparatus and method to adjust a multi-path device reservation
KR101587003B1 (ko) 2010-09-07 2016-01-20 삼성전자주식회사 무선 통신 시스템에서 와이 파이 연결 확인을 위한 장치 및 방법
US8670326B1 (en) 2011-03-31 2014-03-11 Cisco Technology, Inc. System and method for probing multiple paths in a network environment
KR101243737B1 (ko) 2011-09-15 2013-03-13 주식회사에어플러그 버퍼링된 데이터량에 따라 이종망(異種網)들간에 사용망을 선택적으로 전환하면서 스트리밍 데이터를 수신하는 방법과 그 방법을 위한 장치
KR101297411B1 (ko) 2011-10-06 2013-08-19 주식회사에어플러그 스트리밍 데이터의 미처리 상태에 따른 이종망(異種網)들의 선택적 사용을 제어하는 장치와 방법
US8897753B2 (en) * 2011-10-12 2014-11-25 Motorola Mobility Llc Method for retrieving content by a wireless communication device having first and second radio access interfaces, wireless communication device and communication system
US9439234B2 (en) * 2012-12-19 2016-09-06 Apple Inc. System and method for intelligently selecting a network interface
KR101468155B1 (ko) 2013-05-30 2014-12-05 주식회사에어플러그 원격지 컨텐트에 대한 수신상태에 근거하여 무선 통신망의 접속점과의 접속을 제어하는 방법과 장치
US9326208B2 (en) 2013-12-17 2016-04-26 Google Technology Holdings LLC Method and apparatus for determining when to handover communications from a first to a second access network
US20150257166A1 (en) * 2014-03-04 2015-09-10 Samsung Electronics Co., Ltd. Method and apparatus for optimizing local wireless connectivity for point-to-point media streaming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110319072A1 (en) * 2010-06-28 2011-12-29 Research In Motion Limited Method And System for Radio Access Technology Selection
US20150319214A1 (en) * 2014-04-30 2015-11-05 Futurewei Technologies, Inc. Enhancing dash-like content streaming for content-centric networks
US20150381455A1 (en) * 2014-06-27 2015-12-31 Cisco Technology, Inc. Multipath Data Stream Optimization

Also Published As

Publication number Publication date
US10771854B2 (en) 2020-09-08
KR20170103582A (ko) 2017-09-13
WO2017155251A1 (ko) 2017-09-14
US20190098367A1 (en) 2019-03-28

Similar Documents

Publication Publication Date Title
KR102515269B1 (ko) 전자장치에서의 비디오 스트리밍 장치 및 방법
US11228970B2 (en) Method for transmitting and receiving signals in proximity network and electronic device thereof
US20200304917A1 (en) Method and electronic device for transmitting audio data to multiple external devices
KR102673368B1 (ko) 네트워크 선택 방법 및 그 장치
KR102341301B1 (ko) 전자 장치 및 전자 장치의 화면 공유 방법
KR102360067B1 (ko) 전자 장치 및 전자 장치의 정보 공유 방법
KR102412283B1 (ko) 전자 장치 및 전자 장치의 영상 공유 제어 방법
US9900917B2 (en) Electronic device for performing a communication connection and method for establishing a communication connection
KR102349262B1 (ko) 테더링 서비스를 제공하기 위한 방법 및 이를 지원하는 전자 장치
KR102516019B1 (ko) 외부 전자 장치와 통신하는 전자 장치 및 방법
KR102607647B1 (ko) 전자 장치 및 전자 장치의 테더링 연결 방법
KR102449179B1 (ko) 무선통신시스템에서 전자 장치의 성능 관리 방법 및 장치
US20160150582A1 (en) Electronic device for establishing communication by electronic device
KR102462427B1 (ko) 메시지 통합 관리 방법 및 이를 구현한 전자 장치
KR20170017643A (ko) 콘텐츠 전송 제어 방법 및 이를 지원하는 전자 장치
KR20170043324A (ko) 전자 장치 및 전자 장치의 영상 인코딩 방법
KR102531285B1 (ko) 통신 기능을 제공하는 방법 및 이를 위한 전자 장치
KR20160089079A (ko) 데이터 송수신 방법 및 장치
KR102318055B1 (ko) 전자 장치 및 전자 장치의 근거리 통신 커버리지 보상 방법
KR102317051B1 (ko) 채널 리스트를 이용하여 무선 통신을 수행하는 방법 및 전자 장치
KR20170087350A (ko) 전자 장치 및 전자 장치의 동작 방법
KR102599479B1 (ko) 근거리통신 연결을 위한 전자장치, 시스템 및 방법
KR20170029244A (ko) 전자 장치 및 전자 장치의 이미지 관리 방법
KR102378373B1 (ko) 복수의 충전 회로를 활용하는 전자 장치 및 방법
KR20170008573A (ko) 전자 장치의 동작 방법 및 전자 장치

Legal Events

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