KR20210081182A - 전자 장치 및 그 동작 방법 - Google Patents
전자 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20210081182A KR20210081182A KR1020190173468A KR20190173468A KR20210081182A KR 20210081182 A KR20210081182 A KR 20210081182A KR 1020190173468 A KR1020190173468 A KR 1020190173468A KR 20190173468 A KR20190173468 A KR 20190173468A KR 20210081182 A KR20210081182 A KR 20210081182A
- Authority
- KR
- South Korea
- Prior art keywords
- electronic device
- function
- peer
- content
- peer device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006870 function Effects 0.000 claims abstract description 304
- 238000004891 communication Methods 0.000 claims abstract description 50
- 230000002093 peripheral effect Effects 0.000 claims abstract description 40
- 230000004044 response Effects 0.000 claims description 96
- 238000012545 processing Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 238000002716 delivery method Methods 0.000 description 20
- 238000004590 computer program Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 2
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23103—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring 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/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H04L67/327—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation 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/4316—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/44029—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management 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/462—Content 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/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
- H04N21/4858—End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
실시예들에 따라 전자 장치 및 전자 장치의 동작 방법이 개시된다. 개시된 전자 장치는, 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하고, 상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하고, 상기 피어 장치로부터, 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 미러링을 이용하여 수신하여 표시한다.
Description
다양한 실시예들은 전자 장치 및 그 동작 방법에 관한 것으로, 좀더 구체적으로는, 전자 장치가 요청된 기능을 실행하기 위해 필요한 리소스가 부족한 경우에도 주변으로부터 리소스를 찾아서 기능을 제공할 수 있는 전자 장치 및 그 동작 방법에 관한 것이다.
고해상도, 고화질의 영상에 대한 수요가 점차 증가하고 있다. 스마트폰, TV, 모니터 등 소비자들이 선호하는 디스플레이 사이즈는 점점 커질 뿐만 아니라 사진과 동영상 중심의 개인 미디어가 확산되고 있어 선명하고 고화질 영상을 감상하고자 하는 욕구도 커지고 있다. 이에 따라 FHD(1920X1080), UHD (3840x2160)에 이어 8K(7680X4320) 해상도의 영상에 대한 요구가 증가되고 있다.
또한, 하나의 디바이스에서 여러 개의 화면을 출력하는 멀티 뷰 화면 서비스에서, 멀티 뷰 화면에 포함된 각각의 화면에 고화질 영상을 재생하기 위해서는 화면 수 만큼의 코덱이 필요할 수도 있다.
또한, 기존의 AI 서비스에서, 단말기에서 수집한 정보를 네트워크로 전송하면 대용량 서버가 이를 분석한 뒤 다시 단말기에 결과를 보내는 방식에 의해 동작한다. 이러한 클라우드 기반 AI는 통신 상태가 좋지 않을 경우 효용성이 떨어지고 또한 개인 정보를 서버로 전송하는 과정에서 프라이버시 유출 논란이 일어날 가능성 등으로 인해, 단말기 자체에서 AI 기능을 수행하는 온-디바이스 AI에 대한 요구가 증가하고 있다. 이러한 온-디바이스 AI 의 경우 네트워크 없이 단말기 자체에서 AI 기능을 수행하므로 단말기는 기존의 AI 서비스 보다 훨씬 많은 리소스를 필요로 한다.
이와 같이 근래 고화질 멀티미디어 재생, 온-디바이스 AI, 3D 게임 등, 사용자 단말에서 고성능의 시스템 리소스가 필요한 경우가 증가하고 있다. 이에 따라 특정 기능을 수행하기 위한 리소스가 부족하여 사용자 단말에서 최신의 서비스를 구동하지 못하거나, 멀티태스킹을 지원하지 못하는 사례가 늘어나고 있다.
다양한 실시예들은, 전자 장치에서 특정한 기능을 실행하려고 할 때, 전자 장치가 해당 특정한 기능을 실행할 수 있는 리소스가 부족한 경우에도, 전자 장치의 주변에 있는 장치들의 리소스를 이용하여 특정한 기능을 사용자에게 제공할 수 있는 전자 장치 및 방법을 제공하는 것을 목적으로 한다.
일 실시예에 따른 전자 장치는, 통신 인터페이스; 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하고, 상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하고, 상기 피어 장치로부터, 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 미러링을 이용하여 수신하여 표시할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 컨텐츠를 디스플레이의 제1 윈도우에 표시하고 있는 상태에서 상기 기능 실행의 요청을 수신한 경우, 상기 제 1윈도우에 추가적으로, 상기 미러링을 이용하여 수신된 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 표시할 제2윈도우를 생성하고, 상기 제2윈도우에 상기 결과 컨텐츠를 표시함으로써 멀티 윈도우 화면을 제공할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 제1윈도우 및 상기 제2윈도우 중 어느 하나에 대한 종료 요청에 따라, 종료되지 않는 하나의 윈도우에서 실행되는 기능의 제공을 위해 상기 전자 장치 및 상기 하나 이상의 주변 장치들을 재평가함으로써 종료되지 않는 하나의 윈도우에 실행되는 기능의 제공을 할 장치를 재선정할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 기능 실행의 요청에 따라, 상기 기능 실행의 가능 여부를 상기 하나 이상의 주변 장치들에게 리소스 문의 메시지를 전송하고, 상기 리소스 문의 메시지에 따라 상기 하나 이상의 주변 장치들로부터 리소스 응답 메시지를 수신하고, 상기 리소스 응답 메시지를 보낸 하나 이상의 주변 장치들 중에서 상기 기능 실행을 수행시킬 피어 장치를 선정할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 기능 실행에 요구되는 하나 이상의 리소스들을 포함하는 리소스 리스트, 상기 실행 요청된 기능에 관한 정보, 결과 전달 방법을 포함하는 상기 리소스 문의 메시지를 생성할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 리소스 문의 메시지에 대한 응답으로, 상기 하나 이상의 주변 장치들로부터, 상기 실행 요청된 기능의 실행 가능 여부, 결과 전달 가능 여부, 또는 대응 주변 장치의 비지(busy) 상태 중 적어도 하나를 포함하는 상기 리소스 응답 메시지를 수신할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 리소스 응답 메시지를 전송한 상기 하나 이상의 주변 장치들 중에서, 실행 요청된 기능을 실행 가능하며 결과 전달 가능함을 나타내는 주변 장치들 중에서, 상기 비지 상태를 고려하여 상기 피어 장치를 선정할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 주기적으로 또는 미리 정해진 이벤트 발생에 기초하여, 상기 하나 이상의 주변 장치들을 재평가함으로써 상기 피어 장치를 재선정할 수 있다.
일 실시예에 따라 상기 미리 정해진 이벤트는, 상기 선정된 피어 장치로부터 수신된 미러링 결과의 성능이 임계치 이하로 떨어지는 것을 검출하는 이벤트, 또는 복수의 윈도우를 포함하는 멀티 윈도우 화면에서 하나의 윈도우의 종료를 나타내는 이벤트를 포함할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 미러링 결과의 심리스 재생 보장을 위해 최초 선정된 피어 장치에서 실행된 기능의 진행 정도에 대한 정보를 상기 재선정된 피어 장치에 제공할 수 있다.
일 실시예에 따라 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써, 상기 미러링을 이용하여 수신된 상기 기능 실행의 결과 컨텐츠를 디스플레이에 표시하고, 상기 표시된 컨텐츠를 제어하는 사용자 제어 동작을 수신함에 따라, 상기 수신된 사용자 제어 동작에 대응하는 제어 신호를 상기 피어 장치로 전송하고, 상기 제어 신호에 따라 수행된 제어 결과를 상기 피어 장치로부터 수신할 수 있다.
일 실시예에 따라 전자 장치의 동작 방법은, 기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하는 동작, 상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하는 동작, 및 상기 피어 장치로부터, 상기 기능 실행의 결과를 미러링을 이용하여 수신하여 표시하는 동작을 포함할 수 있다.
일 실시예에 따라 전자 장치의 동작 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능 기록 매체를 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 상기 전자 장치의 동작 방법은, 기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하는 동작, 상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하는 동작, 및 상기 피어 장치로부터, 상기 기능 실행의 결과를 미러링을 이용하여 수신하여 표시하는 동작을 포함할 수 있다.
실시예들에 따르면, 전자 장치에서 특정한 기능을 실행하려고 할 때, 전자 장치가 해당 특정한 기능을 실행할 수 있는 리소스가 부족한 경우, 동적으로 전자 장치의 주변에 있는 장치들로부터 전자 장치가 필요로 하는 리소스를 제공해줄 수 있는 피어 장치를 선정하여 해당 특정 기능을 실행하게 하고, 기능 실행 결과를 제공받음으로써, 전자 장치는 설사 자신이 특정한 기능을 실행하기 위한 리소스가 부족하더라도 주변에 있는 장치들을 이용하여 실행함으로써, 특정한 기능을 사용자에게 제공할 수 있다.
도 1은 다양한 실시예들에 따라 주변 장치의 리소스들을 이용하여 전자 장치에서 기능 실행 결과를 제공하기 위한 방법의 개념을 설명하기 위한 참고도이다.
도 2는 일 실시예에 따라 주변 장치의 리소스들을 이용하여 전자 장치에서 기능 실행 결과를 제공하기 위한 시스템의 일 예를 나타낸다.
도 3은 일 실시예에 따라 전자 장치가 피어 장치로 전송하는 리소스 문의 메시지의 일 예를 나타낸다.
도 4는 일 실시예에 따라 전자 장치가 피어 장치로부터 수신할 수 있는 리소스 응답 메시지의 일 예를 나타낸다.
도 5는 일 예에 따라 전자 장치 100가 수신할 수 있는 리소스 응답 메시지의 예들을 나타낸다.
도 6은 일 실시예에 따라 전자 장치가 선정된 피어 장치로 전송하는 리소스 요청 메시지의 일 예를 나타낸다.
도 7은 일 실시예에 따라 전자 장치 100의 세부적인 블록도이다.
도 8은 일 실시예에 따라 전자 장치의 동작을 나타내는 흐름도이다.
도 9는 일 실시예에 따라 전자 장치 100에서의 세부적인 동작의 흐름도를 나타낸다.
도 10은 일 실시예에 따라 전자 장치에서 싱글 뷰 화면을 제공하다가 피어 장치의 리소스를 이용하여 멀티 뷰 화면을 제공하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 11은 일 실시예에 따라 전자 장치에서 싱글 뷰 화면으로 4K 영상을 제공하다가 피어 장치의 리소스를 이용하여 8K 영상을 제공하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 12는 일 실시예에 따라 전자 장치에서 8K 영상을 제공하다가 4K 영상으로 전환하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 13은 일 실시예에 따라 전자 장치에서 멀티 윈도우 화면으로 두 개의 영상을 제공하다가 하나의 윈도우를 종료하는 경우의 동작의 시나리오를 설명하기 위한 참고도이다.
도 14는 일 실시예에 따라 최초로 선정된 피어 장치로부터 스크린 미러링에 의해 컨텐츠 실행 결과를 수신하다가 특정한 이벤트 발생에 의해 피어 장치들을 재평가하여 기능 실행할 피어 장치를 재선정하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 15는 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 표시되는 컨텐츠를 제어하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 16은 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 피어 장치로부터 컨텐츠를 수신할 때 전자 장치 100의 멀티 뷰 화면 포맷에 적합한 포맷으로 컨텐츠를 수신하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 17은 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 피어 장치로부터 컨텐츠를 수신할 때 전자 장치 100의 멀티 뷰 화면 포맷에 적합한 포맷으로 컨텐츠를 수신하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 2는 일 실시예에 따라 주변 장치의 리소스들을 이용하여 전자 장치에서 기능 실행 결과를 제공하기 위한 시스템의 일 예를 나타낸다.
도 3은 일 실시예에 따라 전자 장치가 피어 장치로 전송하는 리소스 문의 메시지의 일 예를 나타낸다.
도 4는 일 실시예에 따라 전자 장치가 피어 장치로부터 수신할 수 있는 리소스 응답 메시지의 일 예를 나타낸다.
도 5는 일 예에 따라 전자 장치 100가 수신할 수 있는 리소스 응답 메시지의 예들을 나타낸다.
도 6은 일 실시예에 따라 전자 장치가 선정된 피어 장치로 전송하는 리소스 요청 메시지의 일 예를 나타낸다.
도 7은 일 실시예에 따라 전자 장치 100의 세부적인 블록도이다.
도 8은 일 실시예에 따라 전자 장치의 동작을 나타내는 흐름도이다.
도 9는 일 실시예에 따라 전자 장치 100에서의 세부적인 동작의 흐름도를 나타낸다.
도 10은 일 실시예에 따라 전자 장치에서 싱글 뷰 화면을 제공하다가 피어 장치의 리소스를 이용하여 멀티 뷰 화면을 제공하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 11은 일 실시예에 따라 전자 장치에서 싱글 뷰 화면으로 4K 영상을 제공하다가 피어 장치의 리소스를 이용하여 8K 영상을 제공하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 12는 일 실시예에 따라 전자 장치에서 8K 영상을 제공하다가 4K 영상으로 전환하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 13은 일 실시예에 따라 전자 장치에서 멀티 윈도우 화면으로 두 개의 영상을 제공하다가 하나의 윈도우를 종료하는 경우의 동작의 시나리오를 설명하기 위한 참고도이다.
도 14는 일 실시예에 따라 최초로 선정된 피어 장치로부터 스크린 미러링에 의해 컨텐츠 실행 결과를 수신하다가 특정한 이벤트 발생에 의해 피어 장치들을 재평가하여 기능 실행할 피어 장치를 재선정하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 15는 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 표시되는 컨텐츠를 제어하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 16은 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 피어 장치로부터 컨텐츠를 수신할 때 전자 장치 100의 멀티 뷰 화면 포맷에 적합한 포맷으로 컨텐츠를 수신하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 17은 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 피어 장치로부터 컨텐츠를 수신할 때 전자 장치 100의 멀티 뷰 화면 포맷에 적합한 포맷으로 컨텐츠를 수신하는 동작의 시나리오를 설명하기 위한 참고도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서의 실시예에서 "사용자"라는 용어는 제어 장치를 이용하여 영상 표시 장치의 기능 또는 동작을 제어하는 사람을 의미하며, 시청자, 관리자 또는 설치 기사를 포함할 수 있다.
도 1은 다양한 실시예들에 따라 주변 장치의 리소스들을 이용하여 전자 장치에서 기능 실행 결과를 제공하기 위한 방법의 개념을 설명하기 위한 참고도이다.
도 1을 참조하면, 시스템은 전자 장치 100 및 피어 장치 그룹 200을 포함하고, 피어 장치 그룹 200은 하나 이상의 피어 장치, 즉, 제1 피어 장치 210, 제2 피어 장치 220, 제3 피어 장치 230, 제4 피어 장치 240를 포함할 수 있다.
전자 장치 100는 프로세서와 메모리를 포함하고, 하나 이상의 리소스를 이용하여 기능을 실행할 수 있으며, 컴퓨팅 장치로 언급될 수 있다. 전자 장치 100는, 예를 들어, 텔레비전, 셋-톱 박스, 디지털 비디오 레코더(DVR), 수신기 또는 유사한 고객 댁내 장비(CPE: customer premise equipment), 퍼스널 컴퓨터, 개인 휴대 단말기, 스마트 폰, 전자 수첩, 노트북, 웨어러블 장치 등을 포함할 수 있다. 전자 장치 100는 사용자로부터의 기능 실행 요청을 수신한 경우에, 전자 장치 100가 갖고 있는 하나 이상의 리소스들을 이용하여 기능을 실행할 수 있다. 리소스는 예를 들어, 전자 장치 100가 요청된 기능을 실행하기 위한 하드웨어 또는 소프트웨어를 말하는 것으로, 예를 들어, 디코더, 메모리, 프로세서, 디스플레이, 또는 어플리케이션 등을 포함할 수 있다.
각 피어 장치는 프로세서와 메모리를 포함하고, 하나 이상의 리소스를 이용하여 기능을 실행할 수 있으며, 컴퓨팅 장치로 언급될 수 있다. 피어 장치들은, 예를 들어, 텔레비전, 셋-톱 박스, 디지털 비디오 레코더(DVR), 수신기 또는 유사한 고객 댁내 장비(CPE: customer premise equipment), 퍼스널 컴퓨터, 개인 휴대 단말기, 스마트 폰 등을 포함할 수 있다.
피어 장치 그룹에 포함된 각 피어 장치들 210, 220, 230, 240 각각은 자신의 리소스를 이용하여 기능을 실행할 수 있다.
전자 장치 100는 네트워크를 통하여 피어 장치 그룹 200의 각 피어 장치들과 통신할 수 있다. 전자 장치 100과 피어 장치들이 통신하는 네트워크는 5G 망, 와이파이, 와이파이 다이렉트, BLE 등의 다양한 통신 네트워크를 포함할 수 있다.
일 실시예에 따라 전자 장치 100는 기능 실행의 요청을 수신하고, 전자 장치 100이 보유하고 있는 리소스로는 요청된 기능을 실행할 수 없다고 판단된 경우, 하나 이상의 주변 장치들 중에서 기능 실행이 가능한 피어 장치를 선정할 수 있다. 예를 들어, 도 1에 도시된 시스템에서 전자 장치 100는 요청된 기능을 실행할 수 있는지를 문의하는 문의 메시지를 피어 장치들 210,220,230,240로 보내고, 피어 장치들 210,220,230,240로부터 응답 메시지를 수신함으로써, 기능을 실행할 피어 장치를 선정할 수 있다. 피어 장치의 선정이 완료되면 전자 장치 100는 선정된 피어 장치로 기능 실행의 요청을 전송하고, 피어 장치로부터 기능 실행의 결과를 미러링을 이용하여 수신할 수 있다. 따라서, 전자 장치 100는 요청된 기능을 실행할 리소스가 없거나 부족하다 하더라도 주변에 있는 피어 장치와 통신하고, 요청된 기능을 실행할 피어 장치를 선정하여 선정된 피어 장치로 하여금 요청된 기능을 대신 실행하게 하고, 실행 결과를 미러링 통해 수신하여 제공함으로써, 사용자에 의해 요청된 기능을 전자 장치 100를 통하여 제공하는 것이 가능하다. 전자 장치 100는 선정된 피어 장치로부터 컨텐츠를 수신하여 표시하고, 선정된 피어 장치는 전자 장치 100로 표시될 컨텐츠를 제공한다는 측면에서, 전자 장치는 싱크(sink) 장치로, 선정된 피어 장치는 소오스(source) 장치로 언급될 수도 있다.
기능을 실행하는 리소스는 예를 들어, 전자 장치 100가 요청된 기능을 실행하기 위한 하드웨어 또는 소프트웨어를 말하는 것으로, 예를 들어, 디코더, 메모리, 프로세서, 디스플레이, 또는 어플리케이션 등을 포함할 수 있다. 디코더는 비디오 데이터를 디코딩하는 코덱으로서, 예를 들어, H.264, H.265, VP8, VP9, WMV, DivX 등의 코덱이 있고, 오디오 데이터를 디코딩하는 코덱으로서, 예를 들어, AAC, DTS, MP3, EAC3 등의 코덱이 있다. 메모리로는 SDRAM 등이 있으며 다양한 용량의 SDRAM 이 있다. 프로세서로는 CPU, NPU(Neural Processing Unit), GPU(Graphic Processing Unit) 등을 예로 들 수 있다.
예를 들어, 전자 장치 100는 4K 영상을 처리할 수 있는 하나의 코덱을 포함하고, 현재 4K 영상을 처리하여 하나의 화면에 표시하고 있던 중, 또 다른 4K 영상의 실행 요청을 수신한 경우에, 전자 장치 100는 4K 영상을 처리할 수 있는 하나의 코덱을 포함하므로, 전자 장치 100 자체로는 또 다른 4K 영상은 실행할 수 없다. 이 경우, 전자 장치 100는 또 다른 4K 영상의 처리를 대신 실행할 피어 장치를 찾아보고, 찾아진 피어 장치로 하여금 이 또 다른 4K 영상의 처리를 실행하게 하고, 처리된 실행 결과를 미러링을 이용하여 수신함으로써, 전자 장치 100는 현재 표시하는 4K 영상 외에 또 다른 4K 영상을 표시할 수 있게 된다. 이때 전자 장치 100는 현재 표시하던 4K 영상과 또 다른 4K 영상을 동시에 표시하기 위해 멀티 뷰 또는 멀티 윈도우를 이용할 수 있다.
예를 들어, 전자 장치 100는 4K 영상을 처리할 수 있는 하나의 코덱을 포함하는데, 8K 영상의 실행 요청을 수신한 경우에, 전자 장치 100는 8K 영상의 처리를 대신 실행할 피어 장치를 찾아보고, 찾아진 피어 장치로 하여금 이 8K 영상의 처리를 실행하게 하고, 처리된 실행 결과를 미러링을 이용하여 수신함으로써, 전자 장치 100는 8K 영상을 표시할 수 있게 된다.
일 실시예에 따라 전자 장치 100는 기능 실행의 요청에 따라, 기능 실행의 가능 여부를 하나 이상의 피어 장치들에게 문의 메시지를 전송하고, 이러한 문의 메시지에 따라서 하나 이상의 피어 장치들로부터 응답 메시지를 수신하고, 응답 메시지를 보낸 하나 이상의 피어 장치들 중에서 기능 실행이 가능한 피어 장치를 선정할 수 있다.
일 실시예에 따라 전자 장치 100는 요청된 기능의 실행에 요구되는 하나 이상의 리소스들을 확인하고, 기능 실행에 요구되는 하나 이상의 리소스들을 포함하는 리소스 리스트, 실행 요청된 기능에 관한 정보, 결과 전달 방법을 포함하는 문의 메시지를 생성할 수 있다.
일 실시예에 따라 전자 장치 100는, 이러한 문의 메시지에 대한 응답으로, 하나 이상의 피어 장치들로부터, 실행 요청된 기능의 실행 가능 여부, 결과 전달 가능 여부, 또는 해당 피어 장치의 비지(busy) 상태 중 적어도 하나를 포함하는 응답 메시지를 수신할 수 있다.
일 실시예에 따라 전자 장치 100는, 응답 메시지를 전송한 상기 하나 이상의 피어 장치들 중에서, 실행 요청된 기능을 실행 가능하며 결과 전달 가능함을 나타내는 응답 메시지를 보낸 피어 장치들 중에서, 비지 상태를 고려하여 피어 장치를 선정할 수 있다.
일 실시예에 따라 전자 장치 100는, 선정된 피어 장치로 기능 실행의 요청을 보낼 때, 실행할 기능에 관한 정보, 실행할 컨텐츠에 관한 정보 및 전자 장치의 설정 정보를 포함하는 리소스 요청 메시지를 전송할 수 있다.
일 실시예에 따라, 전자 장치 100는, 선정된 피어 장치로부터 미러링을 통하여 수신된 기능 실행 결과의 성능이 저하되는 경우 또는 주기적으로, 하나 이상의 피어 장치들을 재평가함으로써 기능을 대신 실행할 피어 장치를 재선정할 수 있다. 예를 들어, 전자 장치 100는 최초로 선정된 제4 피어 장치 240로부터 미러링을 이용하여 4K 영상 디코딩 결과를 수신하여 표시할 수 있다. 그런데, 제4 피어 장치 240의 사용자가 제4 피어 장치 240를 이용하여 다른 기능을 실행하려고 하거나 실행하는 경우에 제4 피어 장치 240에서의 처리 성능은 저하될 수 있다. 또는 제4피어 장치 240의 사용자가 제4 장치 240를 가지고 어떤 장소를 이탈하는 경우에 거리가 멀어짐에 따라 제4피어 장치 240로부터 데이터 수신 성능이 저하될 수 있다. 따라서, 이러한 점을 고려하여 전자 장치 100는 최초 선정된 제4 피어 장치 240로부터 미러링을 이용하여 수신되는 결과를 모니터링하고 모니터링 결과, 성능 저하가 있다고 판단된 경우, 새로운 피어 장치를 선정하기 위해 피어 장치들을 재평가하여 새로운 피어 장치를 재선정할 수 있다.
일 실시예에 따라, 전자 장치 100는 기능을 대신 실행할 피어 장치가 최초 선정된 피어 장치에서 재선정된 피어 장치로 변경되는 경우, 미러링 결과의 심리스 보장을 위해 최초 선정된 피어 장치에서 실행된 기능의 진행 정도에 대한 정보를 재선정된 피어 장치에 제공할 수 있다. 예를 들어, 최초 선정된 피어 장치에서 영상의 35분 분량까지를 수신하여 표시하는 중, 최초 선정된 피어 장치에서 수신된 영상의 품질이 저하되는 경우 전자 장치 100는 해당 영상을 대신 실행할 피어 장치를 재선정하고, 재선정된 피어 장치로 하여금 해당 영상을 대신 실행하도록 한다. 이때, 최초 선정된 피어 장치에서 디코딩 진행 정도에 대한 정보를 재선정된 피어 장치에 제공함으로써, 재선정된 피어 장치로 하여금 최초 선정된 피어 장치에서 디코딩된 진행 정도를 참조하여 재선정된 피어 장치에서 디코딩 진행 시작하게 함으로써, 영상의 디코딩 주체가 중간에 변경된 경우에도 전자 장치 100에서 영상을 심리스하게 표시되게 할 수 있다.
일 실시예에 따라 전자 장치 100는 미러링을 이용하여 수신된 기능 실행의 결과 컨텐츠를 디스플레이에 표시하고, 표시된 컨텐츠를 제어하는 유저 인터페이스 제어 동작을 수신함에 따라, 수신된 유저 인터페이스 제어 동작에 대응하는 제어 신호를 피어 장치로 전송하고, 제어 신호에 따라 수행된 제어 결과를 상기 피어 장치로부터 수신할 수 있다. 예를 들어, 전자 장치 100가 미러링을 이용하여 제4피어 장치 240로부터 기능 실행 결과를 수신하여 표시하는 경우, 통상 해당 기능의 실행 권한 및 제어 권한은 제4 피어 장치 240에 있고, 전자 장치 100는 단지 결과만을 수신하여 표시한다. 그러나, 통상 사용자는 전자 장치 100를 이용하여 영상 또는 결과를 시청하고 있으므로, 사용자는 전자 장치 100를 이용하여 제어 동작을 하기를 희망할 수 있다. 예를 들어, 전자 장치 100가 제4 피어 장치 240로부터 유투브 실행 화면 결과를 미러링을 통하여 수신하여 표시하는 경우 사용자는 유투브 실행 화면에서 사용자 제어 동작 예를 들어, 해당 영상의 재생을 정지하거나 또는 다른 영상의 재생을 원하는 경우 사용자는 전자 장치 100를 제어하는 사용자 입력을 지시할 수 있다. 이러한 경우 전자 장치 100는 사용자 입력 백 채널 (UIBC) 등을 이용하여 사용자 제어 동작에 대응하는 제어 신호를 피어 장치로 전송함으로써 피어 장치는 수신된 제어 신호에 대응하는 제어 동작을 수행할 수 있다. 또한 미러링 상태 이므로, 제어 동작 수행 결과는 미러링을 통하여 피어 장치로부터 전자 장치 100로 전송될 수 있다.
일 실시예에 따라 전자 장치 100는, 컨텐츠를 디스플레이의 단일의 제1 윈도우에 표시하고 있는 상태에서 기능 실행의 요청을 수신한 경우, 제 1 윈도우에 추가적으로, 미러링을 이용하여 수신된 기능 실행의 결과 컨텐츠를 표시할 제2 윈도우를 생성하고, 제2윈도우에 결과 컨텐츠를 표시함으로써 멀티 윈도우 화면을 제공할 수 있다. 예를 들어, 전자 장치 100는, 싱글 윈도우에서 뉴스 컨텐츠를 표시하던 중, 추가적으로 사용자로부터 요가 컨텐츠의 표시를 요청받은 경우, 전자 장치 100 자체적으로는 요가 컨텐츠를 추가적으로 실행할 수 없을 수 있다. 이때 전자 장치 100는 요가 컨텐츠의 실행을 피어 장치에 위임하고, 전자 장치 100는 원래의 윈도우에 추가적으로 두번째 윈도우를 배치함으로써 멀티 윈도우 화면으로 변환하고, 두번째 윈도우에 피어 장치로부터 미러링을 이용하여 수신된 요가 컨텐츠 실행 결과를 표시할 수 있다.
일 실시예에 따라 전자 장치 100는, 제1 윈도우 및 제2 윈도우 중 어느 하나에 대한 종료 요청에 따라, 종료되지 않는 하나의 윈도우에서 실행되는 기능의 제공을 위해 전자 장치 및 하나 이상의 피어 장치들을 재평가함으로써 종료되지 않는 하나의 윈도우에 대응하는 기능을 실행할 피어 장치를 선정할 수 있다. 예를 들어, 앞서의 예에서, 전자 장치 100는 제1윈도우에서 전자 장치 100가 실행한 뉴스 컨텐츠를 표시하고 있고, 제2윈도우에서 피어 장치가 실행한 요가 컨텐츠를 표시하고 있다. 이때 예를 들어, 제1윈도우에서 표시되고 있던 뉴스 컨텐츠의 종료 요청이 있는 경우, 전자 장치 100는 뉴스 컨텐츠를 표시하는 제1윈도우를 종료하고 제2윈도우의 싱글 화면을 디스플레이에 표시할 수 있다. 그런데 제2윈도우에서는 피어 장치로부터 미러링을 통하여 수신된 요가 컨텐츠를 표시하고 있으므로, 전자 장치 100의 리소스 자체는 이용되지 않고 있다. 그러나, 이 경우 요가 컨텐츠를 미러링을 통하여 수신하는 것보다 전자 장치 100의 자체 리소스를 이용하여 실행하는 것이 보다 성능면에서 우수할 수 있다. 따라서, 이때 전자 장치 100는 요가 컨텐츠의 실행을 전자 장치 100 자체적으로 하는 것이 좋은지, 현재 피어 장치에서 그대로 실행하게 하는 것이 좋은지, 또는 현재 피어 장치로부터 성능이 더 좋은 다른 피어 장치가 있는지를 판단하기 위해, 전자 장치 100는 전자 장치 100 및 하나 이상의 피어 장치들을 재평가함으로써, 종료되지 않는 윈도우에서 표시될 컨텐츠에 대응하는 기능을 실행할 장치, 즉, 전자 장치 또는 피어 장치를 선정할 수 있다.
도 2는 일 실시예에 따라 주변 장치의 리소스들을 이용하여 전자 장치에서 기능 실행 결과를 제공하기 위한 시스템의 일 예를 나타낸다.
도 2를 참조하면, 시스템은 전자 장치 100, 네트워크 50, 피어 장치 그룹 200을 포함할 수 있다.
전자 장치 100와 피어 장치 그룹 200는, 패킷 네트워크에 직접적으로 또는 간접적으로 결합되는 무선 액세스 네트워크를 통해 통신할 수 있다. 전자 장치 100는 무선 통신 예를 들어, 블루투스, 저전력 블루투스 (BLE), 와이파이 (WiFi) 등에 기반하여 피어 장치 그룹의 하나 이상의 피어 장치들과 연결할 수 있다.
일 실시예에 따라 전자 장치 100는 메모리 110, 프로세서 120, 디코더 130, 통신 인터페이스 150을 포함할 수 있다.
일 실시예에 따른 메모리 110는, 프로세서 120의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치 100로 입력되거나 전자 장치 100로부터 출력되는 데이터를 저장할 수 있다. 메모리 110는 플래시 메모리 타입(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
통신 인터페이스 150는 프로세서 120의 제어에 의해 전자 장치 100를 피어 장치 200와 연결할 수 있다.
통신 인터페이스 150는 전자 장치 100의 성능 및 구조에 대응하여 무선 랜 모듈, 블루투스 모듈, 및 유선 이더넷(Ethernet) 모듈 중 하나 또는 하나 이상의 조합을 포함할 수 있다. 통신 인터페이스 150는 블루투스 외에 다른 근거리 통신 모듈(예를 들어, NFC(near field communication), BLE(bluetooth low energy)를 더 포함할 수 있다.
디코더 130는 프로세서 120의 제어에 의해 메모리 110에 저장된 데이터 또는 통신 인터페이스 150를 통해 수신된 데이터를 디코딩할 수 있다. 예를 들어, 디코더 130는 전자 장치 100의 사양에 따라서 MPEG1, MPEG2, H.264, H.265, MOV, WMV/WMA, DivX, Xvid, AAC 중 하나 이상의 리소스를 포함할 수 있다.
도 2에 도시된 예에서 전자 장치 100는 디스플레이 자체를 구비하여 프로세서 120에 의해 처리된 데이터를 디스플레이에 바로 출력할 수 있거나 또는, 전자 장치 100는 프로세서 120에 의해 처리된 데이터를 통신 인터페이스 150를 통해서, 전기적으로 연결된 디스플레이 장치로 전달할 수 있다.
일 실시예에 따른 프로세서 120는 전자 장치 100의 전반적인 동작을 제어한다. 예를 들어, 프로세서 120는, 메모리 110에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 17에 기재된 전자 장치 100의 기능을 수행할 수 있다.
일 실시예에 따라 프로세서 120는 기능 실행의 요청이 있는 경우에, 요청된 기능을 실행할 하나 이상의 리소스를 확인하고, 전자 장치 100가 요청된 기능의 실행에 요구되는 하나 이상의 리소스를 보유하는지를 판단할 수 있다. 예를 들어, 전자 장치 100가 4K 영상을 디코딩하는 하나의 디코더를 포함하는 상황에서, 8K 영상의 재생 요청이 수신된 경우 프로세서 120는 요청된 기능의 실행에 요구되는 리소스가 부족한 것으로 판단할 수 있다. 또는, 전자 장치 100가 4K 영상을 디코딩하는 디코더를 이용하여 4K 영상을 재생하고 있는 중에, 추가적으로 또 다른 4K 영상의 재생 요청이 수신된 경우 프로세서 120는 요청된 기능의 실행에 요구되는 리소스가 부족한 것으로 판단할 수 있다.
일 실시예에 따라 프로세서 120는 요청된 기능의 실행에 요구되는 리소스가 부족한 것으로 판단된 경우에, 이러한 요구되는 리소스를 주변의 피어 장치들이 제공할 수 있는지 확인하기 위해 문의할 수 있다. 예를 들어 프로세서 120는 요청된 기능의 실행에 요구되는 하나 이상의 리소스를 확인하여, 이러한 하나 이상의 리소스들의 리스트를 생성할 수 있다.
일 실시예에 따라 프로세서는 기능 실행의 요청에 따라, 상기 기능 실행의 가능 여부를 하나 이상의 피어 장치들에게 문의하기 위해, 기능 실행에 요구되는 하나 이상의 리소스의 식별자를 포함하는 리소스 리스트, 실행 요청된 기능에 관한 정보, 결과 전달 방법을 포함하는 문의 메시지를 생성하고, 생성된 문의 메시지를 하나 이상의 피어 장치로 전송할 수 있다.
일 실시예에 따라 전자 장치 100가 리소스 문의 메시지를 전송할 수 있는 피어 장치들은 미리 인증 절차가 완료된 피어 장치들로 한정할 수 있다. 이는, 전자 장치 100의 주변에 있는 피어 장치라도 어떤 피어 장치는 자신의 리소스를 전자 장치 100를 위해 공여하는 것을 원치 않을 수도 있기 때문에, 이러한 피어 장치들로는 리소스 문의 메시지가 전송되지 않게 하는 것이 바람직하다. 예를 들어, 전자 장치 100의 주변에 전자 장치 사용자 소유의 다른 장치들 및 사용자의 친구나 손님의 장치들이 있을 수 있는데, 전자 장치 100의 기능 실행을 위해 전자 장치 사용자 소유의 다른 장치들로부터 리소스를 공여받는 것은 적절할 수 있지만, 친구나 손님의 장치들에게 리소스를 요구하는 것은 적절하지 않을 수 있다. 따라서, 이를 위해 전자 장치 100가 리소스 문의 메시지를 전송하는 대상이 되는 피어 장치들은, 이미 리소스를 공여하기로 허용하여 인증절차를 마친 피어 장치들로 한정할 수 있다.
일 실시예에 따라 전자 장치 100가 리소스 문의 메시지를 보내는 대상이 되는 피어 장치들은 전자 장치 100와 동일한 액세스 포인트에 의해 연결된 피어 장치들을 포함할 수 있다.
일 실시예에 따라 전자 장치 100가 리소스 문의 메시지를 보내는 대상이 되는 피어 장치들은 블루투스 통신이나, 와이파이 다이렉트, 근접장 통신에 의해 연결된 피어 장치들을 포함할 수 있다.
도 3은 일 실시예에 따라 전자 장치가 피어 장치로 전송하는 리소스 문의 메시지의 일 예를 나타낸다.
도 3을 참조하면, 리소스 문의 메시지 300는 기능 실행에 요구되는 하나 이상의 리소스의 식별자를 포함하는 리소스 리스트 310, 실행 요청된 기능에 관한 정보 320, 결과 전달 방법 330을 포함할 수 있다.
리소스 리스트 310는 기능 실행에 요구되는 하나 이상의 리소스들의 식별자를 포함할 수 있다. 기능 실행에 요구되는 하나 이상의 리소스들은 요구되는 기능이 무엇인지에 따라서 다양하게 결정될 수 있다. 예를 들어, 요구되는 기능이 4K 영상의 재생 인 경우에 4K 영상을 디코딩할 수 있는 코덱에 대한 식별자가 리소스 리스트에 포함될 수 있다. 예를 들어, 요구되는 기능이 8K 영상의 재생 인 경우에 8K 영상을 디코딩할 수 있는 코덱에 대한 식별자가 리소스 리스트에 포함될 수 있다.
실행 요청된 기능에 관한 정보 320는 실행 요청된 기능에 대한 식별자나 실행 요청된 어플리케이션에 대한 식별자를 포함할 수 있다. 예를 들어 4K 영상을 특정한 어플리케이션을 통해서 재생 요청된 경우, 이러한 특정한 어플리케이션에 대한 식별자가 리소스 리스트에 포함될 수 있다.
결과 전달 방법 330은 피어 장치에 의해 특정 기능을 실행하여 얻은 결과를 전자 장치 100로 전달하는 방법에 대한 정보를 포함할 수 있다. 예를 들어, 결과 전달 방법 330은 피어 장치에 의해 디코딩된 컨텐츠의 실행 화면이 전자 장치 100의 화면에서 표시될 수 있도록 디스플레이 화면 데이터를 전달하는 스크린 미러링을 포함할 수 있다. 결과 전달 방법 330으로는 예를 들어, 스크린 미러링 외에도 미라캐스트, 에어 플레이, WiDi (Wireless Display) 등이나 그 외의 다양한 결과 전달 방법을 포함할 수 있다.
일 실시예에 따라 프로세서는 이와 같이 생성된 리소스 문의 메시지를 하나 이상의 피어 장치로 브로드캐스팅 등의 방식을 이용하여 전송할 수 있다. 이러한 리소스 문의 메시지를 수신하는 하나 이상의 피어 장치는 전자 장치 100의 주변에 있는 이웃 피어 장치들을 포함할 수 있다. 예를 들어, 전자 장치 100는 액세스 포인트를 공유하여 무선 인터넷을 이용하는 하나 이상의 피어 장치들로 리소스 문의 메시지를 전송할 수 있다. 예를 들어 전자 장치 100는 블루투스 방식을 이용하여 블루투스 통신 연결 가능한 하나 이상의 피어 장치들로 리소스 문의 메시지를 전송할 수 있다.
일 실시예에 따라 프로세서 120는, 하나 이상의 피어 장치들로 전송한 리소스 문의 메시지에 대한 응답으로, 상기 하나 이상의 주변 장치들로부터, 리소스 응답 메시지 400를 수신할 수 있다. 리소스 응답 메시지 400는 실행 요청된 기능의 실행 가능 여부, 결과 전달 가능 여부, 기기의 비지(busy) 상태 중 적어도 하나를 포함할 수 있다.
도 4는 일 실시예에 따라 전자 장치가 피어 장치로부터 수신할 수 있는 리소스 응답 메시지의 일 예를 나타낸다.
도 4를 참조하면, 리소스 응답 메시지 400는 실행 요청된 기능의 실행 가능 여부 정보 410, 결과 전달 가능 여부 정보 420, 및 기기의 비지 상태 430을 포함할 수 있다.
실행 요청된 기능의 실행 가능 여부 정보 410는 이 리소스 응답 메시지 400를 보내는 피어 장치가 전자 장치 100에 의해 실행 요청된 기능을 실행할 수 있는지 여부를 나타내는 정보를 포함할 수 있다. 예를 들어, 리소스 응답 메시지 400를 보내는 피어 장치는 리소스 문의 메시지 300에 포함된 리소스 리스트 310의 리소스 식별자들을 확인하고, 확인된 리소스 식별자들에 해당하는 리소스를 피어 장치가 보유하고 있는지를 판단하여, 보유하고 있다면 기능 실행이 가능함을 나타내는 정보를, 확인된 리소스 식별자들에 해당하는 리소스를 피어 장치가 보유하고 있지 않다면, 기능 실행이 가능하지 않음을 나타내는 정보를 포함시켜 리소스 문의 메시지를 보낼 수 있다. 예를 들어, 요구되는 리소스 리스트 310가 4K 코덱을 포함한 경우 피어 장치가 4K 코덱을 보유하고 있다면 피어 장치는 기능 실행 가능함으로 표시할 수 있고, 요구되는 리소스 리스트 310가 8K 코덱을 포함한 경우 피어 장치가 4K 코덱 만을 보유하고 있다면 피어 장치는 기능 실행이 가능하지 않음으로 표시할 수 있다.
결과 전달 가능 여부 정보 420는 이 리소스 응답 메시지 400를 보내는 피어 장치가 전자 장치 100가 원하는 결과 전달 방법으로 결과를 전달하는 것이 가능한지 여부를 나타내는 정보를 포함할 수 있다. 예를 들어, 리소스 응답 메시지 400를 보내는 피어 장치는 리소스 몬의 메시지 300에 포함된 결과 전달 방법 330에 명시된 방법을 확인하고, 확인된 결과 전달 방법으로 결과를 제공하는 것이 가능하면, 결과 전달 가능함을 나타내는 것으로, 확인된 결과 전달 방법으로 결과를 제공하는 것이 가능하지 않다면, 결과 전달이 가능하지 않음을 나타내는 것으로 표시할 수 있다. 예를 들어, 리소스 문의 메시지 300에서는 결과 전달 방법 330으로 스크린 미러링을 표시한 경우, 피어 장치가 스크린 미러링을 이용하여 결과 전달이 가능하면, 결과 전달 가능함을 나타내는 것으로, 피어 장치가 스크린 미러링을 이용하여 결과 전달이 가능하지 않으면, 결과 전달 가능하지 않음을 나타내는 것으로 표시할 수 있다.
기기의 비지 상태 430는 이 리소스 응답 메시지 400를 보내는 피어 장치의 비지(busy) 상태 또는 아이들(idle) 상태 정보를 포함할 수 있다. 기기의 비지 상태 430는 이 리소스 응답 메시지 400를 보내는 피어 장치가 얼마나 바쁜지를 나타내는 정도에 대한 정보를 포함할 수 있다. 예를 들어, 기기의 비지 상태 430는 해당 기기의 CPU 사용률, GPU 사용률, 메모리 사용률 중 하나 이상에 대한 정보를 포함할 수 있다. CPU 사용률, GPU 사용률, 메모리 사용률이 높으면 높을수록 해당 기기는 바쁘다는 것을 나타낼 수 있다.
예를 들어, 도 2를 참조하면, 전자 장치 100는 리소스 문의 메시지를 브로드캐스팅 방식을 통해 하나 이상의 피어 장치, 즉, 피어 장치 210, 220, 230, 240로 전송하고, 각 피어 장치 210, 220, 230, 240로부터 리소스 응답 메시지를 수신할 수 있다.
일 실시예에 따라 전자 장치 100는 리소스 응답 메시지를 전송한 하나 이상의 피어 장치들 중에서, 기능 실행을 위임할 하나의 피어 장치를 선정할 수 있다. 이때 전자 장치 100는 수신된 리소스 응답 메시지를 기초로, 실행 요청된 기능을 실행 가능하며 결과 전달 가능함을 나타내는 리소스 응답 메시지를 보낸 피어 장치들 중에서, 피어 장치의 비지 상태를 고려하여, 제일 바쁘지 않은 피어 장치를 기능 실행을 위임할 피어 장치를 선정할 수 있다.
도 5는 일 예에 따라 전자 장치 100가 수신할 수 있는 리소스 응답 메시지의 예들을 나타낸다.
도 5를 참조하면, 제1피어 장치로부터의 리소스 응답 메시지 510는 기능 실행 가능 여부 정보로서, 기능 실행 가능, 결과 전달 가능 여부 정보로서, 결과 전달 가능, 기기의 비지 상태로서, CPU 사용률 30 %, 메모리 사용률 30% 를 포함하고, 제2피어 장치로부터의 리소스 응답 메시지 520는 기능 실행 가능 여부 정보로서, 기능 실행 가능, 결과 전달 가능 여부 정보로서, 결과 전달 가능, 기기의 비지 상태로서, CPU 사용률 50%, 메모리 사용률 60%를 포함한다. 또한, 제3피어 장치로부터의 리소스 응답 메시지 530는 기능 실행 가능 여부 정보로서, 기능 실행 불가능, 결과 전달 가능 여부 정보로서, 결과 전달 가능, 기기의 비지 상태로서, CPU 사용률 20 %, 메모리 사용률 20% 를 포함하고, 제4피어 장치로부터의 리소스 응답 메시지 540는 기능 실행 가능 여부 정보로서, 기능 실행 가능, 결과 전달 가능 여부 정보로서, 결과 전달 불가능, 기기의 비지 상태로서, CPU 사용률 10%, 메모리 사용률 20%를 포함한다.
전자 장치 100가 도 5에 도시된 바와 같은 리소스 응답 메시지를 수신한 경우에 먼저, 제3 피어 장치로부터의 리소스 응답 메시지는 기능실행이 불가능하고, 제4피어 장치로부터의 리소스 응답 메시지는 결과전달이 불가능하므로, 제3피어 장치와 제4 피어 장치는 일단 기능 실행을 위임할 후보 장치에서 제외시킬 수 있다. 전자 장치 100는 기능실행이 가능하고 결과 전달이 가능함을 나타내는 제1피어 장치 및 제2피어 장치 중에서 기능 실행을 위임할 후보 장치를 선정할 수 있다. 전자 장치 100는 제1 피어 장치와 제2 피어 장치 중에서 기기의 비지 상태를 고려하여 덜 바쁜 피어 장치를 기능 실행을 위임할 후보 장치로 선정할 수 있다. 예를 들어, 전자 장치 100는 제1 피어 장치와 제2피어 장치 중에서 제1장치의 CPU 사용률과 메모리 사용률이 제2장치의 CPU 사용률과 메모리 사용률보다 더 작으므로, 제1장치가 더 한가하다고 판단할 수 있다. 따라서 전자 장치 100는 제1장치를 기능 실행을 위임할 피어 장치로 선정할 수 있다.
일 실시예에 따라 전자 장치 100는 위에서 설명한 바와 같이 피어 장치들로부터 수신된 리소스 응답 메시지의 정보만을 고려하여 기능 실행할 위임할 피어 장치를 선정할 수 있다. 예를 들어, 전자 장치 100는 기능실행 가능하고 결과 전달 가능함을 나타내는 피어 장치들 중에서, 기기의 비지 상태를 고려하여 좀더 한가한 피어 장치를 기능 실행을 위임할 피어 장치로 선정할 수 있다.
다른 실시예에 따라 전자 장치 100는 피어 장치들로부터 수신된 리소스 응답 메시지의 정보 외에 네트워크 속도를 더 고려하여 기능 실행할 위임할 피어 장치를 선정할 수 있다. 예를 들어, 전자 장치 100는 기능실행 가능하고 결과 전달 가능함을 나타내는 피어 장치들 중에서, 기기의 비지 상태 및 네트워크 속도를 고려하여 피어 장치를 기능 실행을 위임할 피어 장치로 선정할 수 있다. 예를 들어, 도 5에 도시된 예에서, 전자 장치 100는 제1피어 장치와 제2피어 장치의 비지 상태가 유의미한 정도의 차이가 아니라고 판단한 경우, 제1피어 장치와 제2피어 장치의 각각의 네트워크 속도를 더 고려하여 네트워크 속도가 더 좋은 피어 장치를 기능 실행을 위임할 피어 장치로 선정할 수 있다. 예를 들어, 전자 장치 100는 제1피어 장치와 제2피어 장치 중에서 기기의 비지 상태로는 제1피어 장치가 좀더 한가함을 나타내지만, 네트워크 속도를 체크한 결과 제1 피어 장치보다 제2 피어 장치의 네트워크 속도가 현저하게 빠른 경우, 전자 장치 100는 제2 피어 장치를 기능 실행을 위임할 피어 장치로 선정할 수 있다. 전자 장치 100는 PING 테스트를 이용하여 피어 장치들의 네트워크 속도를 판단할 수 있다.
전자 장치 100가 기능 실행을 위임할 피어 장치의 선정은 위에서 설명된 예에 한정된 것은 아니며 다양한 인자를 고려하여 선정할 수 있다. 예를 들어, 전자 장치 100는 기기의 비지 상태는 고려하지 않고 기기의 네트워크 속도 만을 고려하여 기능 실행을 위임할 피어 장치를 선정할 수 있다.
일 실시예에 따라 전자 장치 100는 리소스 문의 메시지에 대한 응답으로 리소스 응답 메시지를 보낸 하나 이상의 피어 장치들 중에서 기능 실행을 위임할 하나의 피어 장치를 선정한 경우, 선정된 피어 장치로 리소스 요청 메시지를 전송할 수 있다.
도 6은 일 실시예에 따라 전자 장치가 선정된 피어 장치로 전송하는 리소스 요청 메시지의 일 예를 나타낸다.
도 6을 참조하면, 리소스 요청 메시지 600는, 실행할 기능에 관한 정보 610, 실행할 컨텐츠에 관한 정보 620, 전자 장치의 설정 정보 630을 포함할 수 있다.
실행할 기능에 관한 정보 610는, 전자 장치 100가, 선정된 피어 장치에 실행 요청하는 기능이나 어플리케이션에 관한 정보를 포함할 수 있다. 예를 들어, 특정 컨텐츠를 특정 컨텐츠 제공 어플리케이션을 통해서 실행하려는 기능인 경우, 실행할 기능에 관한 정보 610는 이러한 특정 컨텐츠 제공 어플리케이션 식별자를 포함할 수 있다.
실행할 컨텐츠에 관한 정보 620는 특정 컨텐츠 제공 어플리케이션을 통해서 실행하려는 특정 컨텐츠에 대한 식별자를 포함할 수 있다.
일 예에 따라 실행할 기능에 관한 정보 610과 실행할 컨텐츠에 관한 정보 620는 하나의 URL 주소로 표현될 수 있다.
전자 장치의 설정 정보 630는 피어 장치가 전자 장치 100를 대신하여 기능을 실행하기 위해 필요한 설정 정보나 또는 피어 장치가 기능을 실행한 결과를 전자 장치 100로 전송할 때 전자 장치 100가 디스플레이에 표시하기에 적합한 포맷으로 제공하기 위해 필요한 정보를 포함할 수 있다. 전자 장치의 설정 정보 630는, 예를 들어, 컨텐츠나 기능의 실행을 위해 필요한 계정 정보, 전자 장치에서 컨텐츠가 표시될 윈도우의 해상도 정보, 전자 장치에서 컨텐츠가 표시될 윈도우의 동작 모드 (디스플레이 타입)에 관한 정보, UIBC 정보 등을 포함할 수 있다.
예를 들어, 피어 장치가 전자 장치 100를 대신하여 기능을 실행하기 위해 필요한 설정 정보는, 특정한 어플리케이션의 실행을 위해 필요한 계정 정보나 인증 정보 등을 포함할 수 있다. 예를 들어, 어떤 컨텐츠 제공 어플리케이션은 해당 어플리케이션에서 컨텐츠를 이용하기 위해 계정 정보나 인증 정보를 요구할 수 있다. 따라서, 이와 같은 계정 정보나 인증 정보를 리소스 요청 메시지에 제공함으로써 피어 장치는 전자 장치를 위해 해당 기능을 실행할 때 이러한 계정 정보나 인증 정보를 이용하여 해당 컨텐츠 어플리케이션에 접속할 수 있다.
예를 들어, 피어 장치가 전자 장치 100를 대신하여 기능을 실행하기 위해 필요한 설정 정보는, 전자 장치에서 컨텐츠가 표시될 윈도우의 해상도 정보 등을 포함할 수 있다. 따라서 피어 장치는 이와 같은 해상도 정보를 이용하여, 컨텐츠를 포함하는 스크린 데이터를 전자 장치로 스크린 미러링을 이용하여 보낼 때, 전자 장치의 윈도우의 해상도에 맞게 변환하거나 조정하여 보낼 수 있다.
예를 들어, 피어 장치가 전자 장치 100를 대신하여 기능을 실행하기 위해 필요한 설정 정보는, 전자 장치에서 컨텐츠가 표시될 윈도우의 동작 모드 (디스플레이 타입)에 관한 정보를 포함할 수 있다. 즉, 전자 장치의 설정 정보 630은 피어 장치가 기능을 실행한 결과를 전자 장치 100로 전송할 때 전자 장치 100가 디스플레이에 표시하기에 적합한 포맷으로 제공하기 위해 필요한 정보를 포함할 수 있다. 이러한 전자 장치의 설정 정보 630은, 전자 장치에서 컨텐츠가 표시될 윈도우의 동작 모드 정보 (가로 모드/세로 모드) 또는 디스플레이의 타입(가로형, 세로형) 등을 포함할 수 있다. 전자 장치 100가 멀티 뷰 화면으로 이용되는 경우, 동작 모드 정보 또는 디스플레이의 타입 정보는, 예를 들어, 멀티 뷰 화면중 스크린 미러링에 의해 컨텐츠 실행 결과가 출력될 윈도우의 동작 모드를 나타낼 수 있다. 예를 들어, 전자 장치 100는 일반적으로 가로 모드로 사용되는 텔레비전인 경우에, 이러한 텔레비전의 디스플레이에 표시되는 화면의 포맷은, 예를 들어, 스마트폰에서 통상 표시되는 화면의 포맷과 다를 수 있다. 예를 들어, 전자 장치 100는 텔레비전이고, 기능 실행을 위임받은 피어 장치는 스마트폰 인 경우, 동일한 컨텐츠 라도 통상 스마트폰에서 보여지는 화면 포맷 (모바일 버전 컨텐츠)은 텔레비전에서 보여지는 화면 포맷 (PC 버전 컨텐츠)과 다를 수 있다. 따라서, 실제 컨텐츠의 실행이 스마트폰에서 수행된다고 하더라도 사용자가 실제로 시청하고 싶은 디바이스는 전자 장치이므로, 스마트폰에서 기능 실행시 텔레비전 화면 포맷에 맞게 기능을 실행하고 기능 실행 결과를 텔레비전으로 미러링해주는 것이 바람직할 수 있다. 따라서, 전자 장치 100는 리소스 요청 메시지 600에 이러한 전자 장치 100의 포맷에 관한 정보(PC 버전임을 나타내는 정보)를 제공함으로써, 피어 장치는 이러한 전자 장치 100의 포맷에 관한 정보를 참조하여 컨텐츠를 액세스 하여 기능을 실행함으로써, 전자 장치 100의 화면에 표시되기 적합한 포맷의 실행 결과를 전자 장치 100로 전달해줄 수 있다.
전자 장치의 설정 정보 630은 또한 사용자 입력 백 채널 (UIBC) 정보를 더 포함할 수 있다. 사용자 입력 백 채널 정보는, 전자 장치 100가 미러링에 의해 전자 장치에 표시된 컨텐츠의 제어를 위한 신호를 수신한 경우, 이 컨텐츠 제어 신호를 피어 장치로 전송하는 데 이용되는 정보이다.
일 실시예에 따라 프로세서 120는 기능실행을 위임한 피어 장치로부터 기능 실행 결과를 스크린 미러링을 이용하여 수신할 수 있다.
일 실시예에 따라 프로세서 120는 피어 장치로부터 스크린 미러링을 통해 수신한 기능 실행 결과를 전자 장치 100 내부의 디스플레이 또는 전자 장치 100 외부의 디스플레이에 표시될 있도록 디스플레이로 출력할 수 있다.
도 2를 참조하면, 예를 들어, 디스플레이 130는 전자 장치 100의 디코더에 의해 디코딩된 컨텐츠를 제1윈도우 131에 표시하고, 기능 실행을 제1피어 장치 210에 위임하여 제1 피어 장치 210로부터 스크린 미러링을 통해 수신된 기능 실행 결과 컨텐츠는 제2윈도우 132에 표시할 수 있다. 따라서, 전자 장치 100는 하나의 디코더만을 포함하고 있음에도 불구하고, 피어 장치에 기능 실행을 위임시켜 결과를 수신함으로서, 두개의 디코더가 있는 것과 같이 디스플레이에 두 개의 컨텐츠를 디스플레이할 수 있다.
일 실시예에 따라 프로세서 120는 주기적으로 또는 특정한 이벤트가 발생하는 경우, 하나 이상의 피어 장치들을 재평가함으로써 기능을 실행할 피어 장치를 재선정할 수 있다. 예를 들어 특정한 이벤트는, 최초로 선정된 피어 장치로부터 수신된 미러링 결과의 성능이 저하됨을 감지하는 이벤트를 포함할 수 있다. 위와 같이 기능을 실행하도록 최초로 선정된 피어 장치로부터 수신된 미러링 결과의 성능이 저하될 수 있다. 예를 들어, 전자 장치를 위해 기능을 대신 실행하던 피어 장치 210가 전자 장치 100의 주변에서부터 멀어져서 네트워크 속도가 저하되어 미러링 결과의 성능이 저하된다거나 또는 전자 장치를 위해 기능을 대신 실행하던 피어 장치 210의 사용자가 피어 장치 210에 새로운 작업을 하게 함으로써 피어 장치 210의 메모리 사용률이나 CPU 사용률이 증가되어 미러링 결과의 성능이 저하될 수 있다. 이러한 경우에 미러링 결과의 성능이 저하됨을 방지하기 위해 전자 장치 100는 미러링 결과의 성능이 저하되는지 여부를 모니터링하고, 모니터링 결과 미러링 결과의 성능이 임계값 이하로 떨어지는 것을 검출하면 이를 이벤트로 하여, 기능을 실행할 피어 장치를 재선정할 수 있다. 또는, 프로세서 120는 이와 같은 특정한 이벤트가 아니라, 주기적으로 미러링 결과의 성능을 모니터링하다가 미러링 결과의 성능이 임계값 이하로 떨어지면, 기능을 실행할 피어 장치를 재선정할 수 있다. 기능할 실행할 피어 장치의 재선정은 앞서 기능을 실행할 피어 장치를 최초로 선정하는 경우와 동일한 방법에 의해 수행될 수 있다.
일 실시예에 따라 프로세서 120는 기능을 실행할 피어 장치를 재선정한 경우, 미러링 결과의 심리스 보장을 위해 최초 선정된 피어 장치에서 실행된 기능의 진행 정도에 대한 정보를 재선정된 피어 장치에 제공할 수 있다.
일 실시예에 따라 프로세서 120는 미러링을 이용하여 수신된 기능 실행의 결과 컨텐츠를 디스플레이에 표시하고, 표시된 컨텐츠를 제어하는 사용자 제어 동작을 수신함에 따라, 수신된 사용자 제어 동작에 대응하는 제어 신호를 피어 장치 210로 전송하고, 피어 장치 210에서 제어 신호에 따라 수행된 제어 결과를 피어 장치로부터 수신할 수 있다.
이제, 도 2에 도시된 피어 장치 210을 설명한다.
일 실시예에 따라 피어 장치 210는 메모리 211, 프로세서 212, 디코더 213, 통신 인터페이스 214를 포함할 수 있다.
일 실시예에 따른 메모리 211는, 프로세서 212의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 피어 장치 210로 입력되거나 피어 장치 210로부터 출력되는 데이터를 저장할 수 있다. 메모리 211는 플래시 메모리 타입(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), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
통신 인터페이스 214는 프로세서 212의 제어에 의해 피어 장치 210를 전자 장치 100와 연결할 수 있다.
통신 인터페이스 214는 전자 장치 100의 성능 및 구조에 대응하여 무선 랜 모듈, 블루투스 모듈, 및 유선 이더넷(Ethernet) 모듈 중 하나 또는 하나 이상의 조합을 포함할 수 있다. 통신 인터페이스 150는 블루투스 외에 다른 근거리 통신 모듈(예를 들어, NFC(near field communication), BLE(bluetooth low energy)를 더 포함할 수 있다.
디코더 213는 프로세서 212의 제어에 의해 메모리 211에 저장된 데이터 또는 통신 인터페이스 214를 통해 수신된 데이터를 디코딩할 수 있다. 예를 들어, 디코더 213는 전자 장치 100의 사양에 따라서 MPEG1, MPEG2, H.264, H.265, MOV, WMV/WMA, DivX, Xvid, AAC 중 하나 이상의 리소스를 포함할 수 있다.
도 2에 도시된 예에서 피어 장치 210는 디스플레이 자체를 구비하여 프로세서 212에 의해 처리된 데이터를 디스플레이에 바로 출력할 수 있거나 또는, 피어 장치 210는 프로세서 212에 의해 처리된 데이터를 통신 인터페이스 214를 통해서, 전기적으로 연결된 디스플레이 장치로 전달할 수 있다.
일 실시예에 따른 프로세서 212는 피어 장치 210의 전반적인 동작을 제어한다. 예를 들어, 프로세서 212는, 메모리 211에 저장된 하나 이상의 인스트럭션을 실행함으로써, 도 1 내지 도 17에 기재된 피어 장치 210의 기능을 수행할 수 있다.
일 실시예에 따라 프로세서 212는 전자 장치 100로부터 리소스 문의 메시지를 수신하면, 리소스 문의 메시지에 들어있는 정보에 따라서 전자 장치 100로부터 요구되는 리소스들을 피어 장치 200 내에서 제공가능한지를 판단하고, 리소스 응답 메시지를 전자 장치 100로 전송할 수 있다. 예를 들어, 피어 장치 200가 수신하는 리소스 문의 메시지는 도 3에 도시된 바와 같은 예가 될 수 있다.
일 예에 따라 프로세서 212는 리소스 문의 메시지 300에 포함된 기능 실행에 요구되는 하나 이상의 리소스의 식별자를 포함하는 리소스 리스트 310에 따라서, 피어 장치 200 가 이러한 기능 실행에 요구되는 리소스를 포함하는지를 판단할 수 있다. 예를 들어, 기능 실행에 요구되는 리소스는 전자 장치 100가 요청된 기능을 실행하기 위한 하드웨어 또는 소프트웨어를 말하는 것으로, 예를 들어, 디코더, 메모리, 프로세서, 디스플레이, 또는 어플리케이션 등을 포함할 수 있다. 따라서, 프로세서 212는 전자 장치에 의해 요청되는 리소스들, 즉, 특정 사양의 디코더, 특정 사양의 메모리, 특정 사양의 프로세서, 특정 사양의 디스플레이, 또는 어플리케이션을 제공가능한지를 판단할 수 있다.
일 예에 따라 프로세서 212는 리소스 문의 메시지 300에 포함된, 실행 요청된 기능에 관한 정보 320에 따라서, 전자 장치 100에 의해 실행 요청된 기능을 실행할 수 있는지를 판단할 수 있다. 예를 들어, 전자 장치 100에 의해 실행 요청된 기능에 관한 정보 320가 특정한 어플리케이션을 포함하는 경우, 프로세서 212는 피어 장치 100에 이러한 특정한 어플리케이션이 설치되어 있는지를 판단할 수 있다. 일 예에 따라서, 만약 피어 장치 100에 이러한 특정한 어플리케이션이 설치되어 있지 않다고 하더라도, 기능 위임에 따라서 이러한 특정한 어플리케이션 설치를 자동적으로 수행할 수 있는 것으로 판단하면, 프로세서 212는 이러한 특정한 어플리케이션이 이용가능한 것으로 판단할 수도 있다.
일 예에 따라 프로세서 212는 리소스 문의 메시지 300에 포함된, 결과 전달 방법 330에 따라서 피어 장치 200가 전자 장치 100에 의해 요구되는 결과 전달 방법을 이용가능한지를 판단할 수 있다. 예를 들어, 전자 장치 100에 의해 요구되는 결과 전달 방법 330이 스크린 미러링을 포함하는 경우, 프로세서 212는 피어 장치 200가 스크린 미러링 기술을 이용가능한지를 판단할 수 있다.
일 실시예에 따라 프로세서 212는 전자 장치 100로부터 리소스 문의 메시지 수신에 응답해서 위와 같이 전자 장치 100로부터 요구되는 리소스들을 피어 장치 200 내에서 제공가능한지를 판단하고, 리소스 응답 메시지를 생성할 수 있다. 예를 들어, 피어 장치 200가 생성하는 리소스 응답 메시지는 도 4에 도시된 바와 같은 예가 될 수 있다. 일 예에 따라 리소스 응답 메시지 400는 실행 요청된 기능의 실행 가능 여부 정보 410, 결과 전달 가능 여부 정보 420, 및 기기의 비지 상태 430을 포함할 수 있다.
예를 들어, 리소스 응답 메시지 400를 보내는 피어 장치는 리소스 문의 메시지 300에 포함된 리소스 리스트 310의 리소스 식별자들을 확인하고, 확인된 리소스 식별자들에 해당하는 리소스를 피어 장치가 보유하고 있는지를 판단하여, 보유하고 있다면 기능 실행이 가능함을 나타내는 정보를, 확인된 리소스 식별자들에 해당하는 리소스를 피어 장치가 보유하고 있지 않다면, 기능 실행이 가능하지 않음을 나타내는 정보를 포함시켜 리소스 문의 메시지를 보낼 수 있다.
예를 들어, 리소스 응답 메시지 400를 보내는 피어 장치는 리소스 문의 메시지 300에 포함된 결과 전달 방법 330에 명시된 방법을 확인하고, 확인된 결과 전달 방법으로 결과를 제공하는 것이 가능하면, 결과 전달 가능함을 나타내는 것으로, 확인된 결과 전달 방법으로 결과를 제공하는 것이 가능하지 않다면, 결과 전달이 가능하지 않음을 나타내는 것으로 표시할 수 있다.
예를 들어, 기기의 비지 상태 430는 해당 기기의 CPU 사용률, GPU 사용률, 메모리 사용률 중 하나 이상에 대한 정보를 포함할 수 있다. CPU 사용률, GPU 사용률, 메모리 사용률이 높으면 높을수록 해당 기기는 바쁘다는 것을 나타낼 수 있다.
일 실시예에 따라 프로세서 212는 전자 장치 100로부터 리소스 요청 메시지를 수신하고, 수신된 리소스 요청 메시지에 대응하는 동작을 수행할 수 있다. 예를 들어, 리소스 요청 메시지는 도 6에 도시된 바와 같은 리소스 요청 메시지 600를 포함할 수 있다. 도 6에 도시된 바와 같은 리소스 요청 메시지 600는 실행할 기능에 관한 정보 610, 실행할 컨텐츠에 관한 정보 620, 전자 장치의 설정 정보 630을 포함할 수 있다.
일 실시예에 따라 프로세서 212는 리소스 요청 메시지 600에 포함된 내용에 대응하여, 실행할 기능에 관한 정보 610를 참조하여 해당 실행할 기능을 수행하기 위한 어플리케이션 등을 활성화시키고, 실행할 컨텐츠에 관한 정보 620를 참조하여, 활성화된 어플리케이션 등을 이용하여 실행할 컨텐츠를 접근할 수 있다. 또한, 리소스 요청 메시지 600에 포함된 전자 장치의 설정 정보 630에 따라서 프로세서 212는 컨텐츠의 접근 시 또는 컨텐츠의 실행시 해당 전자 장치의 설정 정보 630을 이용할 수 있다. 예를 들어, 전자 장치 100가 컨텐츠를 디스플레이할 때 특정한 포맷을 원하는 경우, 전자 장치의 설정 정보 630는 해당 특정 포맷에 대한 정보를 포함할 수 있고, 프로세서 212는 예를 들어 어플리케이션 서버에 컨텐츠를 요청할 때, 해당 특정 포맷에 대한 정보를 함께 전달할 수 있다. 이와 같이 함으로써, 프로세서 212는 어플리케이션 서버로부터 컨텐츠 수신시 특정 포맷으로 생성된 컨텐츠를 수신하여 실행할 수 있다.
일 실시예에 따라 프로세서 212는 전자 장치 100의 디스플레이 타입에 대응하여, 가로 방향 또는 세로 방향의 가상 디스플레이를 생성하고, 가상 디스플레이를 전자 장치 100의 해상도에 대응하는 해상도로 생성할 수 있다. 따라서 다양한 실시 예들에 따르면, 피어 장치 210에서 생성되어 전자 장치 100과 공유될 공유 데이터(컨텐츠 또는 실행 화면)는, 예를 들면, 전자 장치 100의 해당 방향의 디스플레이에 직접 표시하는 것과 효과를 제공할 수 있고, 이에 따라 이미지 열화 등을 방지할 수 있다.
일 실시예에 따라 프로세서 212는 수신된 리소스 요청 메시지에 대응하는 기능을 실행하고, 기능 실행 결과를 전자 장치 100로, 전자 장치 100가 원하는 결과 전달 방법을 이용하여 전달할 수 있다. 일 예에 따라 프로세서 212는 리소스 요청 메시지에 정의된 바에 따른 컨텐츠를 실행하고, 컨텐츠 실행 결과를 전자 장치 100가 원하는 결과 전달 방법, 예를 들어, 스크린 미러링을 통해 전자 장치 100로 전달할 수 있다.
일 실시예에 따라 프로세서 212는, 전자 장치 100가 미러링을 이용하여 수신된 기능 실행의 결과 컨텐츠를 디스플레이에 표시하던 중, 표시된 컨텐츠를 제어하는 유저 인터페이스 제어 동작을 수신함에 따라, 수신된 유저 인터페이스 제어 동작에 대응하는 제어 신호를 전자 장치 100으로부터 수신할 수 있다. 예를 들어, 이러한 유저 인터페이스 제어 동작에 대응하는 제어 신호를 UIBC를 이용하여 전자 장치 100로부터 수신할 수 있다.
이와 같이 유저 인터페이스 제어 동작에 대응하는 제어 신호를 수신하면, 피어 장치 200는 수신된 제어 신호에 대응하는 동작을 수행할 수 있다. 또한, 미러링 상태이므로, 제어 신호에 따라 동작을 수행한 결과는 미러링을 통해 실시간으로 전자 장치 100으로 전송될 수 있다.
도 7은 일 실시예에 따라 전자 장치 100의 세부적인 블록도이다.
도 7에 있어서, 도 2의 전자 장치 100 에서와 동일한 구성은 동일한 도면 기호를 이용하여 도시하였다. 따라서, 전자 장치 100를 설명하는데 있어서 도 2 에서와 중복되는 설명은 생략한다.
도 7을 참조하면, 전자 장치 100는, 메모리 110 및 프로세서 120 이외에, 디스플레이 130, 안테나 155, 감지부 160, 입/출력부 180, 비디오 처리부 135, 오디오 처리부 145, 오디오 출력부 140, 및 사용자 입력부 190를 더 포함할 수 있다.
메모리 110 및 프로세서 120에 대하여, 도 2에서 설명한 내용과 동일한 내용은 도 7에서 생략한다.
디스플레이 130는 프로세서 120의 제어에 의해 이미지를 화면에 표시할 수 있다. 화면에 표시되는 이미지는 통신부 150, 입/출력부 180, 메모리 110로부터 수신될 수 있다. 스크린 미러링에 의해 피어 장치 200로부터 수신되는 기능 실행 결과 화면을 디스플레이 130에 표시될 수 있다.
송/수신 안테나 155은 다른 디바이스들이 전송한 신호를 수신하거나, 상기 다른 디바이스들로 신호를 전송하는 역할을 한다. 송/수신 안테나 155은 하나로 도시되어 있지만, 복수개의 안테나를 구비할 수 있다..
통신 인터페이스 150는 전자 장치 100과 무선 통신 시스템 사이 또는 전자 장치 100과 다른 전자 장치가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 통신 인터페이스 150는 방송 수신 모듈 151, 이동통신 모듈 152, 무선 인터넷 모듈 153 및 근거리 통신 모듈 154을 포함할 수 있다. 통신 인터페이스 150는 송/수신부로 호칭될 수 있다.
방송 수신 모듈 151은 방송 채널을 통하여 외부의 방송 관리 서버로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 신호는, TV 방송 신호, 라디오 방송 신호, 데이터 방송 신호를 포함할 뿐만 아니라, TV 방송 신호 또는 라디오 방송 신호에 데이터 방송 신호가 결합된 형태의 방송 신호도 포함할 수 있다.
이동통신 모듈 152는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 상기 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
무선 인터넷 모듈 153은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 디바이스에 내장되거나 외장될 수 있다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(WiFi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 등이 이용될 수 있다. 상기 무선 인터넷 모듈 153을 통해서 상기 디바이스는 다른 디바이스와 와이 파이(Wi-Fi) P2P(Peer to Peer)연결을 할 수 있다. 이러한 와이 파이(Wi-Fi) P2P 연결을 통하여 디바이스간 스트리밍 서비스를 제공할 수 있으며, 데이터 송/수신 또는 프린터와 연결되어 프린팅 서비스를 제공할 수 있다.
근거리 통신 모듈 154은 근거리 통신을 위한 모듈을 말한다. 근거리 통신 기술로 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다.
일 실시예에 따른 통신 인터페이스 150는 무선 인터넷 모듈 153 또는 근거리 통신 모듈 154을 이용하여 피어 장치 200에 연결하거나 또는 비디오/오디오 데이터의 송수신을 가능하게 할 수 있다.
일 실시예에 따른 통신 인터페이스 150는 방송 수신 모듈 151이나 무선 인터넷 모듈 153을 이용하여 컨텐츠를 수신할 수 있다.
일 실시예에 따른 통신 인터페이스 150는 무선 인터넷 모듈 153 이나 근거리 통신 모듈 154를 이용하여 하나 이상의 피어 장치들에게 리소스 문의 메시지를 전송하고, 리소스 응답 메시지를 수신하며, 또한 기능을 실행할 것으로 선정된 피어 장치로 리소스 요청 메시지를 전송할 수 있다.
일 실시예에 따른 통신 인터페이스 150는 무선 인터넷 모듈 153 이나 근거리 통신 모듈 154를 이용하여 피어 장치 200로부터 수신된 기능 실행 결과를 미러링 기술을 통해서 수신할 수 있다.
감지부 160는 사용자의 음성, 사용자의 영상, 또는 사용자의 인터랙션을 감지하며, 마이크 161, 카메라부 162, 및 광 수신부 163를 포함할 수 있다.
마이크 161는 사용자의 발화(utterance)된 음성을 수신한다. 마이크 161는 수신된 음성을 전기 신호로 변환하여 프로세서 120로 출력할 수 있다.
카메라부 162는 카메라 인식 범위에서 제스처를 포함하는 사용자의 모션에 대응되는 영상(예를 들어, 연속되는 프레임)을 수신할 수 있다.
광 수신부 163는, 원격 제어 장치에서부터 수신되는 광 신호(제어 신호를 포함)를 수신한다. 광 수신부 163는 원격 제어 장치로부터 사용자 입력(예를 들어, 터치, 눌림, 터치 제스처, 음성, 또는 모션)에 대응되는 광 신호를 수신할 수 있다. 수신된 광 신호로부터 프로세서 120의 제어에 의해 제어 신호가 추출될 수 있다.
입/출력부 180는 프로세서 120의 제어에 의해 전자 장치 100의 외부에서부터 비디오(예를 들어, 동영상 등), 오디오(예를 들어, 음성, 음악 등) 및 부가 정보(예를 들어, EPG 등) 등을 송수신 할 수 있다. 입/출력부 180는 HDMI 포트(High-Definition Multimedia Interface port, 181, 컴포넌트 잭(component jack, 182), PC 포트(PC port, 183), 및 USB 포트(USB port, 184) 중 하나를 포함할 수 있다. 입/출력부 180는 HDMI 포트 181, 컴포넌트 잭 182, PC 포트 183), 및 USB 포트 184)의 조합을 포함할 수 있다.
일 실시예에 따른 메모리 110는, 프로세서 120의 처리 및 제어를 위한 프로그램을 저장할 수 있고, 전자 장치 100로 입력되거나 전자 장치 100로부터 출력되는 데이터를 저장할 수 있다. 또한, 메모리 110는 전자 장치 100의 동작에 필요한 데이터들을 저장할 수 있다.
메모리 110에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있다.
일 실시예에 따라 메모리 110는 리소스 리스트 111, 리소스 관리 모듈 112, 스크린 미러링 모듈 113 등을 포함할 수 있다.
리소스 리스트 111는 전자 장치 100가 보유하고 있는 하나 이상의 리소스들에 대한 정보를 포함한다. 예를 들어 리소스 리스트는 프로세서 (CPU, GPU, NPU)의 성능에 대한 정보, 메모리의 종류나 메모리의 용량에 대한 정보, 디스플레이의 사이즈나 사양에 대한 정보, 비디오 처리부 및 오디오 처리부의 성능에 대한 정보, 통신부가 포함하는 통신 모듈의 종류나 사양에 대한 정보 등을 포함할 수 있다.
리소스 관리 모듈은 112는 전자 장치 100가 기능 실행 요청을 수신한 경우 해당 기능 실행을 위한 리소스들을 전자 장치 100가 보유하고 있는지를 판단하고, 해당 기능을 실행하기 위한 리소스가 부족하다고 판단되면, 주변의 피어 장치들이 부족한 리소스들을 제공할 수 있는지를 문의하고, 제공가능한 피어 장치로 리소스 요청을 전송하기 위한 하나 이상의 인스트럭션을 포함할 수 있다.
스크린 미러링 모듈 113은, 외부의 피어 장치와 통신 연결을 수행하고, 외부 피어 장치로부터 화면에 표시될 컨텐츠나 실행 화면 데이터를 수신하여 출력하도록 하기 위한 하나 이상의 인스트럭션을 포함할 수 있다.
프로세서 120는 전자 장치 100의 전반적인 동작 및 전자 장치 100의 내부 구성 요소들 사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다. 프로세서 120는 사용자의 입력이 있거나 기설정되어 저장된 조건을 만족하는 경우, 메모리 110에 저장된 OS(Operation System) 및 다양한 애플리케이션을 실행할 수 있다.
또한, 프로세서 120는 내부 메모리를 포함할 수 있을 것이다. 이 경우, 메모리 110에 저장되는 데이터, 프로그램, 및 인스트럭션 중 적어도 하나가 프로세서 120의 내부 메모리에 저장될 수 있다.
프로세서 120는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서를 포함할 수 있다.
비디오 처리부 135는, 디스플레이 130에 의해 표시될 영상 데이터를 처리하며, 영상 데이터에 대한 디코딩, 렌더링, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 및 해상도 변환 등과 같은 다양한 영상 처리 동작을 수행할 수 있다.
오디오 처리부 145는 오디오 데이터에 대한 처리를 수행한다. 오디오 처리부 145에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
오디오 출력부 140는 프로세서 120의 제어에 의해 안테나 155를 통해 수신된 방송 신호에 포함된 오디오, 통신 인터페이스 150 또는 입/출력부 180를 통해 입력되는 오디오, 메모리 110에 저장된 오디오를 출력할 수 있다. 오디오 출력부 140는 스피커 141, 헤드폰 출력 단자 142 또는 S/PDIF(Sony/Philips Digital Interface: 출력 단자 143 중 적어도 하나를 포함할 수 있다.
사용자 입력부 190는, 사용자가 전자 장치 100를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부 190는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드, 조그 휠, 조그 스위치 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
한편, 도 2 내지 도 3에 도시된 전자 장치 100의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 전자 장치 100의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 예를 들어, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분화되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
도 8은 일 실시예에 따라 전자 장치의 동작을 나타내는 흐름도이다.
도 8을 참조하면, 동작 810에서, 전자 장치 100는 기능 실행의 요청에 따라 하나 이상의 피어 장치들 중에서 요청된 기능 실행이 가능한 피어 장치를 선정할 수 있다.
예를 들어, 전자 장치 100는 기능 실행의 요청을 수신하면 요청된 기능을 실행하는데 요구되는 리소스들을 전자 장치 100가 보유하고 있는지를 판단하고, 판단 결과 전자 장치 100가 요청된 기능을 실행하는데 요구되는 리소스들이 부족하다고 판단되면, 전자 장치 100는 기능 실행을 위한 리소스들을 전자 장치 100의 외부에서 찾을 수 있다. 예를 들어, 전자 장치 100는 기능 실행을 위한 리소스들을 보유하는지를 전자 장치 100 주변의 피어 장치들에게 문의할 수 있고, 문의에 대한 응답을 보낸 피어 장치들 중에서, 가장 적합한 피어 장치를 선정할 수 있다. 기능 실행에 적합한 것으로 선정된 피어 장치는, 예를 들어, 해당 기능 실행에 요구되는 리소스들을 보유하고, 전자 장치 100가 원하는 결과 전달 방법으로 기능 실행 결과를 전달할 수 있으며, 또한 결과를 전송하는 속도를 만족시킬 수 있는 피어 장치를 포함할 수 있다.
동작 820에서, 전자 장치 100는 기능을 실행할 것으로 선정된 피어 장치로 기능 실행의 요청을 전송할 수 있다.
전자 장치 100는 하나 이상의 피어 장치들 중에서 선정된 피어 장치로 기능 실행의 요청을 전송할 수 있다. 기능 실행의 요청은 실행할 기능에 관한 정보, 실행할 컨텐츠에 관한 정보 및 전자 장치의 설정 정보를 포함할 수 있다. 예를 들어, 전자 장치의 설정 정보는 컨텐츠나 기능의 실행을 위해 필요한 계정 정보, 전자 장치의 해상도 정보, 전자 장치의 디스플레이 의 동작 모드나 디스플레이 타입에 관한 정보, UIBC 정보 등을 포함할 수 있다.
동작 830에서, 전자 장치 100는 피어 장치로부터 기능 실행의 결과를 스크린 미러링을 이용하여 수신하고, 기능 실행의 결과 컨텐츠를 표시할 수 있다.
전자 장치 100로부터 기능 실행의 요청을 수신한 피어 장치는, 전자 장치 100의 요청에 따라 해당하는 기능을 실행하고, 기능 실행 결과 컨텐츠를 스크린 미러링을 통해서 전자 장치 100로 전송할 수 있다. 전자 장치 100는 스크린 미러링을 통해서 수신된 기능 실행 결과 컨텐츠를 디스플레이 화면에 표시할 수 있다. 전자 장치 100에서 원래 싱글 뷰 화면으로 컨텐츠가 표시되고 있는 상태에서, 이와 같은 기능 실행 결과 컨텐츠를 스크린 미러링을 통해서 수신한 경우, 전자 장치 100는 디스플레이 화면을 싱글 뷰 화면에서 멀티 뷰 화면으로 전환하고, 멀티 뷰 화면 중 하나의 화면에, 피어 장치에 의해 수신된 기능 실행 결과 컨텐츠를 표시할 수 있다.
도 9는 일 실시예에 따라 전자 장치 100에서의 세부적인 동작의 흐름도를 나타낸다.
도 9를 참조하면, 동작 901에서, 전자 장치 100는 기능 실행 요청을 수신할 수 있다. 예를 들어, 기능 실행 요청은 사용자 입력에 따라서 수신될 수 있거나 또는 전자 장치 100 내부의 설정에 의해서도 수신될 수 있다.
동작 902에서, 전자 장치 100는 리소스 문의 메시지를 하나 이상의 피어 장치들, 예를 들어, 제1피어 장치 210, 제2피어 장치 220, 제3피어 장치 230으로 전송할 수 있다.
전자 장치 100는 동작 901에서 요청된 기능 실행을 위해 필요한 리소스들을 확인하고, 필요한 리소스들을 전자 장치 100가 보유하고 있는지를 판단할 수 있다. 판단 결과, 전자 장치 100가 기능 실행을 위해 요구되는 리소스들을 보유하고 있는 경우에는, 보유된 리소스들을 이용하여 기능을 실행할 수 있다. 그러나 판단 결과, 전자 장치 100가 기능 실행을 위해 요구되는 리소스들을 보유하고 있지 않은 경우 또는, 요구되는 리소스들이 부족한 경우, 전자 장치 100는 기능 실행의 완수를 위해 요구되는 리소스들을 외부에서 획득할 수 있는지 문의하는 동작을 수행할 수 있다. 이를 위해 전자 장치 100는 기능 실행에 요구되는 리소스들을 외부 피어 장치들이 갖고 있는지 문의하기 위해 리소스 문의 메시지를 피어 장치들로 전송할 수 있다.
리소스 문의 메시지는 기능을 실행하는데 요구되는 리소스들을 제공할 수 있는지 문의하는 메시지로서, 기능 실행에 요구되는 리소스들의 목록을 나타내는 리소스 리스트, 실행요청된 기능에 관한 정보, 및 전자 장치 100가 피어 장치로부터 기능 실행의 결과를 전달받는 방법을 정의한 결과 전달 방법을 포함할 수 있다. 예를 들어, 리소스 문의 메시지는 도 3에 도시된 바와 같은 구조를 가질 수 있다.
동작 903에서, 전자 장치 100로부터 리소스 문의 메시지를 수신한 피어 장치들은, 리소스 문의 메시지에 정의된 내용에 따라 리소스 제공이 가능한지를 판단하고, 이러한 판단에 따라 리소스 응답 메시지를 생성하여 이를 전자 장치 100으로 전송할 수 있다.
예를 들어, 피어 장치들은 수신된 리소스 문의 메시지에 대응하여, 자신이 요청된 리소스를 제공하여 요청된 기능을 실행할 수 있는지, 요청된 결과 전달 방법으로 전달이 가능한지, 자신이 현재 얼마나 바쁜지 등을 판단하고, 이러한 판단 결과를 담은 리소스 응답 메시지를 생성할 수 있다. 예를 들어, 리소스 응답 메시지는 도 4에 도시된 바와 같은 구조를 가질 수 있다.
동작 904에서, 전자 장치 100는 피어 장치들로부터 리소스 응답 메시지를 수신하면, 리소스 응답 메시지를 보낸 피어 장치들 중에서 기능 실행을 위임할 하나의 피어 장치를 선정할 수 있다.
전자 장치 100는, 리소스 응답 메시지를 보낸 피어 장치들중에서 기본적으로 기능 실행할 리소스를 제공할 수 있는 피어 장치를 선택하겠지만, 기능 실행할 리소스를 제공할 수 있는 피어 장치들 중에서도 덜 바쁜 피어 장치를 선정하는 것이 유리할 수 있다. 또는 기능 실행할 리소스를 제공할 수 있는 피어 장치들중에서 네트워크 전송 속도가 빠른 피어 장치를 선정하는 것이 유리할 수 있다. 이와 같은 인자들을 고려하여 전자 장치 100는 리소스 응답 메시지를 보낸 피어 장치들 중에서 하나의 피어 장치를 선정할 수 있다.
동작 905에서, 전자 장치 100는 선정된 피어 장치 210로 리소스 요청 메시지를 전송할 수 있다.
전자 장치 100는 먼저 선정된 피어 장치 210와 연결 절차를 시작할 수 있다. 예를 들어, 전자 장치 100와 피어 장치 210는 스크린 미러링 연결을 위한 협상 (negotiation) 절차를 수행할 수 있다.
전자 장치 100는 이러한 협상 절차에서, 예를 들어 도 6에 도시된 바와 같이 실행할 기능에 관한 정보, 실행할 컨텐츠에 관한 정보, 및 전자 장치의 설정 정보를 포함하는 리소스 요청 메시지 600를 선정된 피어 장치 210로 전송할 수 있다. 실행할 기능에 관한 정보는 예를 들어, 실행할 어플리케이션 식별자를 포함할 수 있다. 실행할 컨텐츠에 관한 정보는, 어플리케이션에서 실제 실행할 컨텐츠에 대한 식별자를 포함할 수 있다. 전자 장치의 설정 정보는, 전자 장치 100의 해상도에 대한 정보, 전자 장치 100의 디스플레이 타입 (동작 모드)에 대한 정보, 사용자 입력 백 채널 정보 등을 포함할 수 있다. 전자 장치 100의 디스플레이 타입에 대한 정보는 전자 장치 100의 디스플레이가 가로형 디스플레이인지 세로형 디스플레이인지, 또는 가로 모드로 동작하는지 세로 모드로 동작하는지에 대한 정보를 포함할 수 있다. 사용자 입력 백 채널 정보는 전자 장치 100가 사용자 입력에 따른 제어 메시지를 피어 장치로 전송할 때 이용되는 정보이다.
동작 906에서, 리소스 요청 메시지를 수신한 피어 장치 210는 리소스 요청 메시지를 파싱하여 리소스 요청 메시지에 담긴 내용을 파악할 수 있다.
예를 들어, 피어 장치 210는 리소스 요청 메시지를 파싱하여, 어떤 어플리케이션의 실행이 필요한지, 해당 어플리케이션에서 어떤 컨텐츠를 실행해야 하는지, 전자 장치의 설정 정보에 따라 컨텐츠를 어떻게 실행해야 하는지 등을 확인할 수 있다.
예를 들어, 피어 장치 210는 전자 장치 100가 지원할 수 있는 해상도 정보를 확인하여, 각 장치들에서 공통적으로 지원 가능한 해상도를 결정할 수 있다. 또한 피어 장치 210는 전자 장치 100의 디스플레이 타입에 대응하여 이미지의 회전 여부를 결정할 수 있다. 다양한 실시 예들에 따라, 피어 장치 210는 결정된 해상도와 디스플레이 타입에 대응하여 이미지를 변환할 수 있고, 변환된 이미지를 전자 장치 100으로 전송할 수 있다.
동작 907에서, 피어 장치 210는 리소스 요청 메시지에 담긴 내용에 따라서, 컨텐츠를 제공하는 서버 290에 컨텐츠를 요청할 수 있다. 컨텐츠의 요청시 피어 장치 210는 전자 장치의 설정 정보에 따라 컨텐츠를 수신할 수 있도록 하기 위해 전자 장치의 설정 정보 중 적어도 일부를 이용하여 컨텐츠 요청을 전송할 수 있다. 예를 들어, 전자 장치의 설정 정보는 도 6을 참조하여 설명한 바와 같은 전자 장치의 설정 정보 630가 될 수 있다. 예를 들어, 전자 장치의 설정 정보에 PC 버전임을 나타내는 정보가 들어있으면, 피어 장치 210는 PC 버전의 컨텐츠를 컨텐츠 제공 서버 290에 요청할 수 있다.
동작 908에서, 피어 장치 210는 컨텐츠 요청에 대응하여 요청된 컨텐츠를 컨텐츠 제공 서버 290으로부터 수신할 수 있다.
동작 909에서, 피어 장치 210는 컨텐츠 제공 서버 290로부터 수신된 컨텐츠를 실행할 수 수 있다. 컨텐츠의 실행은 예를 들어, 컨텐츠가 4K 영상 인 경우에, 피어 장치 210의 4K 영상을 디코딩할 수 있는 디코더를 이용하여 수신된 4K 영상을 디코딩하는 동작을 포함할 수 있다.
또한, 피어 장치 210는 전자 장치 100의 설정 정보를 참조하여, 전자 장치 100가 지원할 수 있는 해상도 정보를 확인하여, 각 장치들에서 공통적으로 지원 가능한 해상도를 결정할 수 있다. 또한 피어 장치 210는 전자 장치 100의 디스플레이 타입에 대응하여 이미지의 회전 여부를 결정할 수 있다. 다양한 실시 예들에 따라, 피어 장치 210는 결정된 해상도와 디스플레이 타입에 대응하여 이미지를 변환할 수 있다.
예를 들어, 피어 장치 210는 전자 장치 100으로 전송하고자 하는 데이터(예: 화면 데이터)를 판단된 해상도(예: 1920x108에 대응하도록 생성할 수 있다. 예를 들면, 피어 장치 210는 자신의 해상도(2560x1440)에 대응하는 화면 데이터를 전자 장치 100의 해상도(1920x1080)에 대응하도록 변경하여 공유 데이터를 생성할 수 있다.
예를 들어, 피어 장치 210는 전자 장치 100의 디스플레이 타입이 세로형 디스플레이인 것에 기반하여, 세로형 디스플레이를 위한 공유 데이터를 생성할 수 있다. 예를 들면, 피어 장치 210는 공유 데이터를 생성할 때, 공유 데이터를 그리기(drawing)(또는 생성하기) 위한 가상 디스플레이(virtual display)를 회전하여 세로 형태로 변경할 수 있다.
일 실시예에 따라 피어 장치 210는 공유 데이터를 생성할 때, 전자 장치 100의 해상도(1920x1080)에 대응하여 해상도가 1920x1080인 가상 디스플레이를 생성할 수 있다. 다양한 실시 예들에 따라, 피어 장치 210는 세로 형태의 화면 데이터를, 세로 형태의 가상 디스플레이 내에서 가로와 세로 비율(9:16)로 생성할 수 있다. 예를 들면, 소스 장치(400)는 세로 형태의 가상 디스플레이를 이용하여, 전자 장치 100에 표시되는 세로 형태의 화면 데이터의 형태(예: 포트레이트 레이아웃)로 생성할 수 있다. 다양한 실시 예들에 따라, 피어 장치 210는 화면 데이터의 회전 없이 공유 데이터를 생성할 수 있다. 피어 장치 210는 전자 장치 100의 지원 해상도에 대응하는 가상 디스플레이를 이용하여 공유 데이터를 생성할 수 있다.
동작 910에서, 피어 장치 210는 실행된 컨텐츠를 자신의 디스플레이에 표시함과 함께, 디스플레이에 표시되는 컨텐츠가 전자 장치 100에서도 표시되게 하기 위해 디스플레이 화면을 스크린 미러링을 통해 전자 장치 100으로 전송할 수 있다. 다양한 실시 예들에 따라, 피어 장치 210는 주기적으로, 연속적으로 또는 실시간으로 데이터를 전송할 수 있다. 피어 장치 210는 스트리밍으로 전송할 수 있다.
동작 911에서, 전자 장치 100는 스크린 미러링을 통해 피어 장치 210로부터 수신한 컨텐츠 실행 결과, 즉, 컨텐츠 화면을 디스플레이에 표시할 수 있다.
스크린 미러링에 의해 수신된 컨텐츠를 표시할 때, 전자 장치 100에서 이미 다른 컨텐츠를 화면에 표시하고 있다면, 전자 장치 100는 원래 표시되던 컨텐츠에 추가하여 스크린 미러링에 의해 수신된 컨텐츠를 표시하기 위해 화면을 멀티 뷰 화면으로 전환하고, 멀티 뷰 화면 중 하나의 윈도우에, 스크린 미러링에 의해 수신된 컨텐츠를 표시할 수 있다.
다양한 실시 예들에 따라, 전자 장치 100는 피어 장치 210로부터 수신된 이미지 프레임 데이터를 바로 표시할 수 있다. 예를 들면, 피어 장치 210에서 세로형 디스플레이에 대응하도록 맞춰진 이미지 프레임 데이터가 전송됨에 따라, 전자 장치 100는 수신된 이미지에 대한 어떠한 처리(예: 회전(rotation) 및/또는 스케일링(scaling) 등) 없이 수신된 이미지 프레임 데이터를 바로 표시할 수 있다. 예를 들면, 피어 장치 210가 가상 디스플레이를 통해 그려지는 데이터와 동일한 형태의 데이터가 전자 장치 100의 세로형 디스플레이 윈도우를 통해 표시될 수 있다.
동작 912에서, 스크린 미러링에 의해 수신된 컨텐츠를 표시하다가 표시된 컨텐츠에 대해서 컨텐츠 제어 입력을 수신할 수 있다. 예를 들어, 컨텐츠 제어 입력은, 컨텐츠의 재생을 제어하는 입력, 다른 컨텐츠의 재생을 요청하는 입력 등, 컨텐츠를 제어하기 위한 다양한 입력을 포함할 수 있다.
동작 913에서 전자 장치 100는 수신된 컨텐츠 제어 입력을 피어 장치 210로 전달할 수 있다. 이때 전자 장치 100는 UIBC를 이용하여 컨텐츠 제어 입력을 피어 장치 210으로 전달할 수 있다.
동작 914에서, 피어 장치 210는 수신된 컨텐츠 제어 입력에 대응하는 동작을 수행할 수 있다. 컨텐츠 제어 입력에 대응하는 동작은 피어 장치 210 자체적으로 수행될 수도 있고, 필요한 경우 컨텐츠 제공서버 290에 요청하여 동작 수행 결과를 수신할 수도 있다.
동작 915에서, 피어 장치 210는 컨텐츠 제어 입력에 대응하는 동작을 수행한 결과를 스크린 미러링을 통해 전자 장치 100으로 전달할 수 있다.
동작 916에서, 전자 장치 100는 스크린 미러링에 의해 전달된 동작 수행 결과를 디스플레이에 표시할 수 있다.
도 10은 일 실시예에 따라 전자 장치에서 싱글 뷰 화면을 제공하다가 피어 장치의 리소스를 이용하여 멀티 뷰 화면을 제공하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 10을 참조하면, 전자 장치 100는 제1컨텐츠 제공 소오스 1010으로부터 제1컨텐츠를 수신하여 4K 디코더 135a를 이용하여 디코딩하고 디코딩된 제1컨텐츠 1020를 디스플레이 130에 싱글 윈도우 화면으로 표시하고 있다. (1000a)
이와 같이 제1컨텐츠 1020를 싱글 윈도우 화면으로 표시하던 중에, 멀티 윈도우 화면으로 제2컨텐츠의 실행 요청을 수신할 수 있다. 예를 들어, 멀티 윈도우 화면 요청을 위해 전자 장치 100를 제어하는 원격 제어 장치에 특정한 버튼이 마련될 수도 있거나 또는 전자 장치 100는 멀티 윈도우 화면 요청을 위한 그래픽 사용자 인터페이스 1050를 제공할 수 있다.
전자 장치 100는 멀티 윈도우 화면에서의 제2컨텐츠 실행 요청 1060을 수신한 경우에, 이미 실행하고 있는 제1컨텐츠에 추가적으로 제2컨텐츠의 실행을 제공할 리소스들을 보유하고 있는지 판단하고, 판단에 따라서 제2컨텐츠의 실행을 위한 리소스가 부족하다고 결정한 경우에, 전자 장치 100는 하나 이상의 피어 장치들에 리소스 문의 메시지를 보내서 리소스 제공 가능 여부를 문의할 수 있다. 전자 장치 100는 리소스 문의 메시지에 대한 응답으로 리소스 응답 메시지를 보내 온 피어 장치들 중에서, 리소스 제공이 가능한 하나의 피어 장치를 선정하여, 선정된 피어 장치 210로 리소스 요청 메시지를 전송할 수 있다. 이러한 리소스 요청 메시지는 제2컨텐츠의 실행을 위한 정보 등을 포함할 수 있다.
리소스 요청 메시지를 수신한 피어 장치 210는 리소스 요청 메시지에 포함된 정보를 참조하여, 제2컨텐츠 제공 소오스 1030를 액세스 하여 제2컨텐츠를 수신하고, 수신된 제2컨텐츠를 4K 디코더 213a로 디코딩하고, 디코딩된 제2컨텐츠를 피어 장치 210의 디스플레이에 표시함과 함께, 스크린 미러링을 통해 전자 장치 100으로 컨텐츠 실행 화면을 전송할 수 있다.
그러면, 전자 장치 100는 디스플레이 130의 화면을 멀티 윈도우 화면으로 변경하고, 멀티 윈도우 화면의 제1윈도우에는 전자 장치 100의 디코더 135a에 의해 디코딩된 제1컨텐츠 1020를 표시하고, 제2윈도우에는 피어 장치 210의 디코더 213a에 의해 디코딩된 제2컨텐츠 1040를 표시할 수 있다. (1000b)
이와 같은 실시예에 따르면, 전자 장치 100는 하나의 디코더만을 가지고 있는 경우에도 주변에 있는 피어 장치의 리소스들을 이용함으로써 멀티 윈도우 화면을 제공할 수 있다.
도 11은 일 실시예에 따라 전자 장치에서 싱글 뷰 화면으로 4K 영상을 제공하다가 피어 장치의 리소스를 이용하여 8K 영상을 제공하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 11을 참조하면, 전자 장치 100는 제1컨텐츠 제공 소오스 1010으로부터 제1컨텐츠를 수신하여 4K 디코더 135a를 이용하여 디코딩하고 디코딩된 제1컨텐츠 1110를 디스플레이 130에 싱글 윈도우 화면으로 표시하고 있다. (1100a)
이와 같이 제1컨텐츠 1020를 디스플레이에 표시하던 중에, 8K 제2컨텐츠의 실행 요청을 수신할 수 있다.
전자 장치 100는 8K 제2컨텐츠 실행 요청을 수신한 경우에, 전자 장치 100가 8K 영상의 실행을 제공할 리소스들을 보유하고 있는지 판단하고, 판단에 따라서 제2컨텐츠의 실행을 위한 리소스가 부족하다고 결정한 경우에, 전자 장치 100는 하나 이상의 피어 장치들에 리소스 문의 메시지를 보내서 리소스 제공 가능 여부를 문의할 수 있다. 전자 장치 100는 리소스 문의 메시지에 대한 응답으로 리소스 응답 메시지를 보내 온 피어 장치들 중에서, 리소스 제공이 가능한 하나의 피어 장치를 선정하여, 선정된 피어 장치 210로 리소스 요청 메시지를 전송할 수 있다. 이러한 리소스 요청 메시지는 제2컨텐츠의 실행을 위한 정보 등을 포함할 수 있다.
리소스 요청 메시지를 수신한 피어 장치 210는 리소스 요청 메시지에 포함된 정보를 참조하여, 제2컨텐츠 제공 소오스 1030를 액세스 하여 8K 제2컨텐츠를 수신하고, 수신된 제2컨텐츠를 8K 디코더 213b로 디코딩하고, 디코딩된 제2컨텐츠를 피어 장치 210의 디스플레이에 표시함과 함께, 스크린 미러링을 통해 전자 장치 100으로 컨텐츠 실행 화면을 전송할 수 있다.
그러면, 전자 장치 100는 디스플레이 130의 화면에 표시되는 컨텐츠를, 전자 장치 100의 4K 디코더 135a에 의해 디코딩된 제1컨텐츠 1110 로부터, 피어 장치 210의 8K 디코더 213b에 의해 디코딩된 제2컨텐츠 1120으로 전환할 수 있다. (1100b)
이와 같은 실시예에 따르면, 전자 장치 100는 4K 영상을 디코딩하는 하나의 디코더만을 가지고 있는 경우에도, 주변에 있는 피어 장치의 리소스들을 이용함으로써 전자 장치 100 스스로 제공할 수 있는 영상 보다 더 고화질의 영상을 제공할 수 있다.
도 12는 일 실시예에 따라 전자 장치에서 8K 영상을 제공하다가 4K 영상으로 전환하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 12를 참조하면, 전자 장치 100는, 제2컨텐츠 제공 소오스 1030으로부터 제2컨텐츠를 수신하여 8K 디코더 213b를 이용하여 디코딩하고 디코딩된 제2컨텐츠 1120를 스크린 미러링을 통해 피어 장치 210로부터 수신하여 표시하고 있다.
이와 같이 제2컨텐츠 1120를 디스플레이에 표시하던 중에, 4K 제1컨텐츠의 실행 요청을 수신할 수 있다.
전자 장치 100는 4K 제1컨텐츠 실행 요청을 수신한 경우에, 전자 장치 100가 4K 영상의 실행을 제공할 리소스들을 보유하고 있는지 판단하고, 판단에 따라서 제1컨텐츠의 실행을 위한 리소스를 보유한다고 판단한 경우에, 전자 장치 100는 피어 장치 210로부터의 스크린 미러링 수신을 종료할 수 있다.
그리고 전자 장치 100는 요청된 제1컨텐츠를 제1컨텐츠 제공 소오스 1010에 요청하여 수신하고, 수신된 제1컨텐츠를 4K 디코더를 이용하여 디코딩한 다음, 디스플레이에 표시할 수 있다. (1200b)
이와 같은 실시예에 따르면, 전자 장치 100는 8K 영상을 피어 장치로부터 스크린 미러링에 의해 수신하고 있는 경우에도, 4K 영상으로의 전환 요청을 수신하면, 해당 4K 영상을 전자 장치 100가 실행할 수 있는지 판단하고, 실행가능한 경우에는 스크린 미러링을 종료하고, 전자 장치 100의 리소스를 이용하여 요청된 4K 영상을 제공할 수 있다.
도 13은 일 실시예에 따라 전자 장치에서 멀티 윈도우 화면으로 두 개의 영상을 제공하다가 하나의 윈도우를 종료하는 경우의 동작의 시나리오를 설명하기 위한 참고도이다.
도 13을 참조하면, 전자 장치 100는 제1컨텐츠 제공 소오스 1010으로부터 제1컨텐츠를 수신하여 4K 디코더 135a를 이용하여 디코딩하고 디코딩된 제1컨텐츠 1310를 멀티 윈도우 화면의 제1윈도우에, 피어 장치 210의 4K 디코더 213a를 이용하여 디코딩된 제2컨텐츠를 스크린 미러링을 통해 수신하고 수신된 제2컨텐츠 1320를 멀티 윈도우 화면의 제2윈도우에 표시하고 있다. (1300a)
이와 같이 제1컨텐츠 1310과 제2컨텐츠 1320를 멀티 윈도우 화면으로 표시하던 중, 제1컨텐츠를 표시하는 제1윈도우의 종료 요청을 수신할 수 있다. 종료 요청은 예를 들어 제1윈도우의 가장 자리에 배열된 종료 아이템 1330을 선택함으로써 수신될 수 있다.
이와 같이 제1윈도우 1310의 종료 요청이 수신된 경우에, 전자 장치 100는 제1컨텐츠 제공 소오스 1010으로부터 제1컨텐츠를 수신하고 수신된 제1컨텐츠의 디코딩 동작은 종료시키고, 제2윈도우에 표시되던 제2컨텐츠 1320을 싱글 뷰 화면으로 제공할 수 있다. 그런데, 이와 같은 경우에, 즉, 싱글 뷰 화면으로 제공하는 경우에, 전자 장치 100가 보유한 디코더 135a는 유휴 상태임에도 불구하고, 전자 장치 100는 싱글 뷰 화면에 표시되는 컨텐츠를 스크린 미러링을 통해 피어 장치 210로부터 계속적으로 수신하게 된다. 즉, 전자 장치 100가 멀티 뷰 화면에서 싱글 뷰 화면으로 전환하는 경우 스크린 미러링으로 수신하는 제2컨텐츠를 전자 장치 100의 디코더 135a가 디코딩할 수 있는 영상이라면, 스크린 미러링에 의해 수신하는 것보다 전자 장치 100가 직접 제2컨텐츠를 수신하여 디코딩하는 것이 더 성능이 좋을 수 있다. 따라서, 전자 장치 100는 멀티 뷰 화면에서 싱글 뷰 화면으로 전환하는 경우에, 싱글 뷰 화면에서 표시되는 컨텐츠를 전자 장치 100 자체의 리소스를 이용하여 실행가능한지 판단할 수 있다. 전자 장치 100의 리소스를 이용가능한 것으로 판단한 경우에, 전자 장치 100는 피어 장치 210로부터의 스크린 미러링 수신을 종료하고, 싱글 뷰 화면에 표시되는 제2컨텐츠를 직접 제2컨텐츠 제공 소오스 1030을 액세스하여 수신하고, 수신된 제2컨텐츠를 디코더 135a를 통해 디코딩한 다음, 디스플레이의 싱글 뷰 화면에 표시할 수 있다. (1300b)
이와 같은 실시예에 따르면, 전자 장치 100가 멀티 뷰 화면을 제공하기 위해 제1윈도우에서는 전자 장치 100의 내부 디코더에 의해 디코딩된 컨텐츠를 표시하고 제2윈도우에서는 전자 장치 100의 외부에 있는 피어 장치의 디코더에 의해 디코딩된 컨텐츠를 수신하여 표시하다가, 제1윈도우를 종료하게 되는 경우, 멀티 뷰 화면은 싱글 뷰 화면으로 전환될 수 있다. 이때 제1윈도우는 그대로 종료하고 제2윈도우를 통해서는 피어 장치로부터 스크린 미러링을 통해 수신된 컨텐츠를 표시하게 되는 경우, 전자 장치 100 내부의 디코더를 이용할 수 있음에도 불구하고 스크린 미러링에 의해 외부로부터 컨텐츠를 수신하는 동작을 해야 하므로 효율적이지 않을 수 있다. 따라서, 이때 전자 장치 100는 일정한 평가를 함으로써, 싱글 뷰 화면에서 출력되는 컨텐츠를 전자 장치 내부의 디코더를 이용하여 디코딩하는 것이 더 효율적이라고 판단되는 경우, 스크린 미러링 연결을 끊고, 해당 컨텐츠를 직접 액세스하여 수신하고 전자 장치 100 내부의 디코더에 의해 디코딩하여 표시하게 할 수 있다.
도 14는 일 실시예에 따라 최초로 선정된 피어 장치로부터 스크린 미러링에 의해 컨텐츠 실행 결과를 수신하다가 특정한 이벤트 발생에 의해 피어 장치들을 재평가하여 기능 실행할 피어 장치를 재선정하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 14를 참조하면, 전자 장치 100는 전자 장치 100의 내부 디코더를 이용하여 디코딩된 제1컨텐츠를 표시하는 제1윈도우와 피어 장치 210의 디코더를 이용하여 디코딩된 제2컨텐츠를 표시하는 제2윈도우를 포함하는 멀티 뷰 화면을 제공하고 있다.
이와 같이 전자 장치 100가 외부 피어 장치의 리소스를 이용하여 멀티 뷰 화면을 제공하는 동안, 전자 장치 100는 피어 장치 210로부터의 스크린 미러링 성능을 평가할 수 있다. 예를 들어, 스크린 미러링 성능은 피어 장치 210로부터 수신되는 컨텐츠의 전송 속도 등을 포함할 수 있다. 전자 장치 100가 피어 장치 210로부터 스크린 미러링을 이용하여 수신되는 컨텐츠의 전송 속도를 모니터링하다가 컨텐츠의 전송 속도가 일정한 임계치 이하로 떨어지면, 전자 장치 100는 피어 장치 210로부터 수신되는 컨텐츠의 표시의 품질에 문제가 발생할 것을 예측할 수 있다. 따라서, 이 경우 전자 장치 100는 컨텐츠를 실행하고 스크린 미러링에 의해 컨텐츠 실행 결과를 전송할 피어 장치를 다시 선정할 수 있다. 전자 장치 100는 피어 장치 210를 최초로 선정할 때와 마찬가지 방법에 의해 피어 장치들을 재평하여 기능을 실행할 피어 장치를 재선정할 수 있다. 예를 들어, 전자 장치 100는 주변의 피어 장치들 즉, 피어 장치 210, 220, 230 으로 리소스 문의 메시지를 전송하고, 이에 대한 응답으로 리소스 응답 메시지를 보낸 피어 장치들 210, 220, 230 중에서, 리소스 제공이 가능하며, 피어 장치의 비지 상태가 바쁘지 않음을 나타내는 장치를 재선정할 수 있다. 이때 전자 장치 100는 각 피어 장치의 네트워크 속도를 더 고려할 수 있다.
이와 같은 방법으로 전자 장치 100가 기능을 실행할 장치로서 피어 장치 220을 재선정한 경우에, 전자 장치 100는 재선정된 피어 장치 220으로 리소스 요청 메시지를 전송할 수 있다. 한편, 피어 장치를 재선정하는 경우에는, 최초 선정된 피어 장치 210에서 이미 제2컨텐츠의 일부를 실행하고 있었으므로, 최초 선정된 피어 장치 210에서 컨텐츠가 실행된 진행 정도에 대한 정보를 재선정된 피어 장치 220으로 제공함으로써, 재선정된 피어 장치 220는 컨텐츠를 심리스하게 실행하여 스크린 미러링을 이용하여 전자 장치 100으로 제공할 수 있다. 예를 들어, 제2컨텐츠가 유투브 어플리케이션에서 실행되는 특정한 뮤직 비디오이고, 최초 선정된 피어 장치 210에서 5분 분량까지 실행이 되었다면, 전자 장치 100는 <유투브 어플리케이션, 뮤직 비디오 이름, 진행 정도 5분> 이라는 정보를 리소스 요청 메시지에 담아서 재선정된 피어 장치 220으로 제공함으로써, 재선정된 피어 장치 220는 유투브 어플리케이션을 실행해서 해당 뮤직 비디오를 요청하고 이 뮤직 비디오의 5분 경과 시점부터 재생하여 스크린 미러링을 통해 전자 장치 100으로 전송함으로써 끊김없는 컨텐츠 재생을 실현할 수 있다.
도 14에 도시된 예에서, 전자 장치 100나 피어 장치를 재선정하는 것은, 컨텐츠의 전송 속도가 저하되는 등, 스크린 미러링의 성능이 저하되는 이벤트 등을 트리거로 하여 개시되는 것으로 설명되었지만, 특정한 이벤트는 반드시 이러한 예에 한정되지는 않는다.
일 실시예에 따라, 전자 장치 100는 멀티 뷰 화면에서 하나의 윈도우가 종료되는 경우에 피어 장치를 재선정할 지 여부를 결정할 수 있다.
일 실시예에 따라, 전자 장치 100는 주기적으로 스크린 미러링 성능을 모니터링하여, 피어 장치를 재선정할 지 여부를 결정할 수 있다. 예를 들어, 전자 장치 100는 5 분 간격으로 스크린 미러링 성능을 모니터링하여 피어 장치를 재선정할 지 여부를 결정할 수 있다.
도 15는 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 표시되는 컨텐츠를 제어하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 15를 참조하면, 전자 장치 100는 전자 장치 100의 내부 디코더를 이용하여 디코딩된 제1컨텐츠 1510를 표시하는 제1윈도우와 피어 장치 210의 디코더를 이용하여 디코딩된 제2컨텐츠 1520를 표시하는 제2윈도우를 포함하는 멀티 뷰 화면을 제공하고 있다.
전자 장치 100가 표시하는 제2 윈도우의 제2컨텐츠는 피어 장치 210에 의해 실행되고, 전자 장치 100는 단지 피어 장치 210의 디스플레이에 표시되는 데이터를 그대로 수신하여 디스플레이에 출력만 할 뿐이므로, 전자 장치 100는 제2윈도우에 표시되는 제2컨텐츠에 대한 제어 권한은 없다. 그러나, 사용자는 전자 장치 100를 통해서 제2컨텐츠를 시청하고 있는 것이므로 사용자는 전자 장치 100를 통해 제2컨텐츠를 제어하고 싶을 수 있으므로, 사용자로 하여금 전자 장치 100를 통해 제2컨텐츠를 제어할 수 있도록 하는 메커니즘을 제공하는 것이 바람직하다.
이를 위해, 전자 장치 100에 표시되는 제2컨텐츠 1520를 제어하는 사용자 입력을 수신한 경우, 전자 장치 100는 사용자 입력 백 채널 (User Input Back Channel:UIBC)을 이용하여 전자 장치 100로 수신된 사용자 입력을 피어 장치 210로 전달할 수 있다. 그러면, 피어 장치 210는 UIBC를 통해서 수신한 사용자 입력에 대응하는 컨텐츠 제어 동작을 수행할 수 있다. 피어 장치 210는 스크린 미러링을 이용하여 전자 장치 100로 컨텐츠를 전송하는 상태이므로, 피어 장치 210에서 수행된 컨텐츠 제어 동작에 대응하는 결과는 실시간으로 미러링에 의해 전자 장치 100으로 전달될 수 있다.
예를 들어, 사용자가 전자 장치 100를 시청하다가 원격 제어 장치 1500를 이용하여 제2컨텐츠의 재생 정지 버튼 1550를 선택한 경우, 전자 장치 100는 사용자에 의해 선택된 재생 정지 버튼 1550에 대응하는 좌표 정보를 피어 장치 210으로 UIBC를 이용하여 전달할 수 있다. 피어 장치 210는 수신된 좌표 정보를 해당 피어 장치 210에서 표시되는 컨텐츠의 좌표 정보로 변환함으로써 수신된 좌표 정보에 대응하는 메뉴 버튼 확인할 수 있다. 선택된 메뉴 버튼이 확인되면 피어 장치 210는 확인된 버튼에 대응하는 제어 동작을 수행할 수 있다.
예를 들어, 전자 장치 100는 스크린 미러링으로 표시되는 화면에서 사용자 입력을 감지하면, 사용자 입력 백 채널(UIBC, user input back channel)을 통해 사용자 입력(예: 제어 메시지)를 피어 장치 210으로 전송할 수 있다. 다양한 실시 예들에 따라, 전자 장치 100는 사용자 입력에 대해 별도의 입력 처리(예: 좌표 변환 등) 과정 없이, 전자 장치 100에서의 사용자 입력에 대응하여 피어 장치 210를 제어하기 위한 터치된 좌표 값을 전달할 수 있다. 피어 장치 210는 전자 장치 100로부터 사용자 입력에 대응하는 좌표값을 수신하면, 수신된 좌표값에 대응하는 메뉴나 아이템에 대응하는 동작을 처리할 수 있다.
도 16은 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 피어 장치로부터 컨텐츠를 수신할 때 전자 장치 100의 멀티 뷰 화면 포맷에 적합한 포맷으로 컨텐츠를 수신하는 동작의 시나리오를 설명하기 위한 참고도이다.
전자 장치 100가 멀티 뷰 화면을 제공하는 경우 멀티 뷰 화면은 2개 이상의 윈도우를 포함할 수 있는데, 각 윈도우는 가로 모드 또는 세로 모드로 제공될 수 있다.
전자 장치 100가 싱글 뷰 화면에서 멀티 뷰 화면으로 전환되고, 멀티 뷰 화면에서 하나의 윈도우에 표시되는 컨텐츠를 외부 피어 장치에서 스크린 미러링을 이용하여 수신하는 경우, 피어 장치로부터 수신되는 컨텐츠는 해당 컨텐츠가 표시될 윈도우의 포맷에 적합한 형태를 가질 필요가 있다. 예를 들어, 스크린 미러링에 의해 컨텐츠가 표시될 윈도우가 가로 모드인 경우, 피어 장치로부터 스크린 미러링에 의해 수신되는 컨텐츠는 가로 포맷을 가지는 것이 바람직하다. 예를 들어, 스크린 미러링에 의해 컨텐츠가 표시될 윈도우가 세로 모드인 경우, 피어 장치로부터 스크린 미러링에 의해 수신되는 컨텐츠는 세로 포맷을 가지는 것이 바람직하다.
이와 같이 전자 장치 100가 자신이 원하는 포맷의 컨텐츠를 수신하기 위해서는 전자 장치 100의 설정 정보를 포함시켜 리소스 요청 메시지를 전송할 필요가 있다. 예를 들어, 도 6에 도시된 바와 같은 리소스 요청 메시지 600는 전자 장치의 설정 정보 630를 포함할 수 있고, 이러한 전자 장치의 설정 정보 630은 수신될 컨텐츠의 표시 포맷에 대한 정보를 포함할 수 있다. 예를 들어, 전자 장치의 설정 정보 630은 가로 포맷인지 또는 세로 포맷인지에 대한 정보를 포함할 수 있다. 이와 같은 리소스 요청 메시지 600를 수신한 피어 장치 210는 컨텐츠를 액세스할 때, 전자 장치의 설정 정보 630에 포함된 포맷에 대한 정보를 고려하여 컨텐츠를 액세스할 수 있다. 일 예에 따라 피어 장치 210는 해당 컨텐츠를 컨텐츠 제공 서버에 요청할 때, 컨텐츠의 포맷 정보를 전송함으로써, 컨텐츠 제공 서버로부터, 전송된 포맷 정보에 따라 생성된 컨텐츠를 수신할 수 있다. 예를 들어, 어플리케이션 화면은 그 화면이 PC 타입의 가로로 긴 화면에서 제공될 때와 그 화면이 모바일 디바이스처럼 세로로 긴 화면에서 제공될 때 구별이 될 수 있다. PC 타입 버전의 어플리케이션 화면은 좀더 넓은 화면 사이즈를 고려하여 좀더 많은 수의 아이템들이 포함될 수 있다. 모바일 타입 버전의 어플리케이션 화면은 좀더 좁은 화면 사이즈를 고려하여 좀더 적은 개수의 아이템들이 포함될 수 있다. 피어 장치가 모바일 장치라면 원칙적으로 모바일인 피어 장치가 어플리케이션 컨텐츠를 액세스할 때 모바일 버전의 컨텐츠를 액세스할 것이지만, 본 개시서에 개시된 실시예들의 경우, 피어 장치는 예를 들어 텔레비전과 같은 PC 타입의 전자 장치로부터의 요청에 따라 컨텐츠를 액세스하는 경우, 이러한 컨텐츠는 피어 장치에서의 소비를 위한 것이 아니라 PC 타입의 전자 장치에서의 소비를 위한 것이므로, 피어 장치는 전자 장치의 포맷에 맞는 화면을 제공하는 것이 바람직하다. 따라서, 전자 장치가 텔레비전과 같은 PC 타입 장치이고, 피어 장치가 스마트폰과 같은 모바일 타입 장치인 경우에, 피어 장치는 전자 장치를 위해 PC 버전의 어플리케이션 화면을 제공하는 것이 바람직할 수 있다.
도 16을 참조하면, 전자 장치 100의 멀티 뷰 화면의 포맷 1600은 윈도우가 2개 일 때, 제1윈도우 및 제2윈도우 모두 가로 모드일 수 있다.
전자 장치 100가 제1컨텐츠 1610를 싱글 뷰 화면에서 표시하다가 제2컨텐츠 실행의 요청을 추가적으로 수신하여 멀티 뷰 화면으로 제공하고자 할 때, 스크린 미러링에 의해 수신될 제2컨텐츠가 표시될 제2윈도우도 가로 포맷이므로, 전자 장치 100는 제2컨텐츠를 실행할 피어 장치로 리소스 요청 메시지를 전송할 때 제2컨텐츠를 가로 포맷으로 전송해달라는 요청을 포함시킬 수 있다. 가로 포맷은 예를 들어, 어플리케이션 화면의 PC 버전임을 나타내는 정보를 포함할 수 있다. 이와 같인 리소스 요청 메시지를 수신한 피어 장치 210는 해당 제2컨텐츠를 액세스 할 때, 가로 포맷 즉, PC 버전의 제2컨텐츠를 서버에 요청하여 수신하고 실행할 수 있다. 그리고 피어 장치 210는 실행된 PC 버전의 제2컨텐츠를 스크린 미러링에 의해 전자 장치 100으로 전송하면 전자 장치 100는 PC 버전의 제2컨텐츠 1620를 제1컨텐츠 1610과 함께 표시할 수 있다.
도 17은 일 실시예에 따라 전자 장치 100에서 스크린 미러링에 의해 피어 장치로부터 컨텐츠를 수신할 때 전자 장치 100의 멀티 뷰 화면 포맷에 적합한 포맷으로 컨텐츠를 수신하는 동작의 시나리오를 설명하기 위한 참고도이다.
도 17을 참조하면, 전자 장치 100의 멀티 뷰 화면의 포맷 1700은 윈도우가 2개 일 때, 가로 모드의 제1윈도우 및 세로 모드의 제2윈도우를 포함할 수 있다.
전자 장치 100가 제1컨텐츠 1710를 싱글 뷰 화면에서 표시하다가 제2컨텐츠 실행의 요청을 추가적으로 수신하여 멀티 뷰 화면으로 제공하고자 할 때, 스크린 미러링에 의해 수신될 제2컨텐츠가 표시될 제2윈도우는 세로 포맷이므로, 전자 장치 100는 제2컨텐츠를 실행할 피어 장치로 리소스 요청 메시지를 전송할 때 제2컨텐츠를 세로 모드로 전송해달라는 요청을 포함시킬 수 있다. 세로 모드를 나타내는 정보는, 모바일 버전의 컨텐츠를 요청함을 나타내는 정보를 포함할 수 있다. 이와 같인 리소스 요청 메시지를 수신한 피어 장치 210는 해당 제2컨텐츠를 액세스 할 때, 세로 포맷의 제2컨텐츠(예를 들어, 모바일 버전의 제2컨텐츠)를 제2컨텐츠를 제공하는 서버에 요청하여 수신하고 실행할 수 있다. 그리고 피어 장치 210는 실행된 세로 포맷의 제2컨텐츠를 스크린 미러링에 의해 전자 장치 100으로 전송하면 전자 장치 100는 세로 포맷의 제2컨텐츠 1720를 제1컨텐츠 1710과 함께 표시할 수 있다.
본 개시서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛(unit)을 포함하며, 예를 들면, 로직(logic), 논리 블록(logic block), 부품(component), 또는 회로(circuit) 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. 다양한 실시 예들에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독가능한 저장 매체(예: 메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서 (120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
개시된 실시예들은 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 S/W 프로그램으로 구현될 수 있다. 컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치를 포함할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 개시된 실시예들에 따른 제어 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제 3 장치로 전송되거나, 제 3 장치로부터 디바이스로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 디바이스 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제 3 장치가 컴퓨터 프로그램 제품을 실행하여, 제 3 장치와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 제 3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제 3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드 된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제 3 장치는 프리로드 된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
또한, 본 명세서에서, "부"는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.
Claims (20)
- 전자 장치에 있어서,
통신 인터페이스;
하나 이상의 인스트럭션을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션을 실행하는 프로세서를 포함하고, 상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하고,
상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하고,
상기 피어 장치로부터, 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 미러링을 이용하여 수신하여 표시하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
컨텐츠를 디스플레이의 제1 윈도우에 표시하고 있는 상태에서 상기 기능 실행의 요청을 수신한 경우, 상기 제 1윈도우에 추가적으로, 상기 미러링을 이용하여 수신된 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 표시할 제2윈도우를 생성하고, 상기 제2윈도우에 상기 결과 컨텐츠를 표시함으로써 멀티 윈도우 화면을 제공하는, 전자 장치. - 제2항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 제1윈도우 및 상기 제2윈도우 중 어느 하나에 대한 종료 요청에 따라, 종료되지 않는 하나의 윈도우에서 실행되는 기능의 제공을 위해 상기 전자 장치 및 상기 하나 이상의 주변 장치들을 재평가함으로써 종료되지 않는 하나의 윈도우에 실행되는 기능의 제공을 할 장치를 재선정하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 기능 실행의 요청에 따라, 상기 기능 실행의 가능 여부를 상기 하나 이상의 주변 장치들에게 리소스 문의 메시지를 전송하고,
상기 리소스 문의 메시지에 따라 상기 하나 이상의 주변 장치들로부터 리소스 응답 메시지를 수신하고,
상기 리소스 응답 메시지를 보낸 하나 이상의 주변 장치들 중에서 상기 기능 실행을 수행시킬 피어 장치를 선정하는, 전자 장치. - 제4항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 기능 실행에 요구되는 하나 이상의 리소스들을 포함하는 리소스 리스트, 상기 실행 요청된 기능에 관한 정보, 결과 전달 방법을 포함하는 상기 리소스 문의 메시지를 생성하는, 전자 장치. - 제5항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 리소스 문의 메시지에 대한 응답으로, 상기 하나 이상의 주변 장치들로부터, 상기 실행 요청된 기능의 실행 가능 여부, 결과 전달 가능 여부, 또는 대응 주변 장치의 비지(busy) 상태 중 적어도 하나를 포함하는 상기 리소스 응답 메시지를 수신하는, 전자 장치. - 제6항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 리소스 응답 메시지를 전송한 상기 하나 이상의 주변 장치들 중에서, 실행 요청된 기능을 실행 가능하며 결과 전달 가능함을 나타내는 주변 장치들 중에서, 상기 비지 상태를 고려하여 상기 피어 장치를 선정하는, 전자 장치. - 제7항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
주기적으로 또는 미리 정해진 이벤트 발생에 기초하여, 상기 하나 이상의 주변 장치들을 재평가함으로써 상기 피어 장치를 재선정하는, 전자 장치. - 제8항에 있어서,
상기 미리 정해진 이벤트는, 상기 선정된 피어 장치로부터 수신된 미러링 결과의 성능이 임계치 이하로 떨어지는 것을 검출하는 이벤트, 또는 복수의 윈도우를 포함하는 멀티 윈도우 화면에서 하나의 윈도우의 종료를 나타내는 이벤트를 포함하는, 전자 장치. - 제1항에 있어서,
상기 기능 실행의 요청은, 실행할 기능에 관한 정보, 실행할 컨텐츠에 관한 정보 및 전자 장치의 설정 정보를 포함하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는, 상기 하나 이상의 인스트럭션을 실행함으로써,
상기 미러링을 이용하여 수신된 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 디스플레이에 표시하고,
상기 표시된 컨텐츠를 제어하는 사용자 제어 동작을 수신함에 따라, 상기 수신된 사용자 제어 동작에 대응하는 제어 신호를 상기 피어 장치로 전송하고,
상기 제어 신호에 따라 수행된 제어 결과를 상기 피어 장치로부터 수신하는, 전자 장치. - 전자 장치의 동작 방법에 있어서,
기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하는 동작,
상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하는 동작, 및
상기 피어 장치로부터, 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 미러링을 이용하여 수신하여 표시하는 동작을 포함하는, 전자 장치의 동작 방법. - 제12항에 있어서,
컨텐츠를 디스플레이의 제1 윈도우에 표시하고 있는 상태에서 상기 기능 실행의 요청을 수신한 경우, 상기 제 1윈도우에 추가적으로, 상기 미러링을 이용하여 수신된 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 표시할 제2윈도우를 생성하고, 상기 제2윈도우에 상기 결과 컨텐츠를 표시함으로써 멀티 윈도우 화면을 제공하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 제13항에 있어서,
상기 제1윈도우 및 상기 제2윈도우 중 어느 하나에 대한 종료 요청에 따라, 종료되지 않는 하나의 윈도우에서 실행되는 기능의 제공을 위해 상기 전자 장치 및 상기 하나 이상의 주변 장치들을 재평가함으로써 종료되지 않는 하나의 윈도우에 실행되는 기능의 제공을 할 장치를 재선정하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 제12항에 있어서,
상기 기능 실행의 요청에 따라, 상기 기능 실행의 가능 여부를 상기 하나 이상의 주변 장치들에게 리소스 문의 메시지를 전송하는 동작,
상기 리소스 문의 메시지에 따라 상기 하나 이상의 주변 장치들로부터 리소스 응답 메시지를 수신하는 동작, 및
상기 리소스 응답 메시지를 보낸 하나 이상의 주변 장치들 중에서 상기 기능 실행을 수행시킬 피어 장치를 선정하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 제15항에 있어서,
상기 기능 실행에 요구되는 하나 이상의 리소스들을 포함하는 리소스 리스트, 상기 실행 요청된 기능에 관한 정보, 결과 전달 방법을 포함하는 상기 리소스 문의 메시지를 생성하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 제16항에 있어서,
상기 리소스 문의 메시지에 대한 응답으로, 상기 하나 이상의 주변 장치들로부터, 상기 실행 요청된 기능의 실행 가능 여부, 결과 전달 가능 여부, 또는 대응 주변 장치의 비지(busy) 상태 중 적어도 하나를 포함하는 상기 리소스 응답 메시지를 수신하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 제17항에 있어서,
상기 리소스 응답 메시지를 전송한 상기 하나 이상의 주변 장치들 중에서, 실행 요청된 기능을 실행 가능하며 결과 전달 가능함을 나타내는 주변 장치들 중에서, 상기 비지 상태를 고려하여 상기 피어 장치를 선정하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 제18항에 있어서,
주기적으로 또는 미리 정해진 이벤트 발생에 기초하여, 상기 하나 이상의 주변 장치들을 재평가함으로써 상기 피어 장치를 재선정하는 동작을 더 포함하는, 전자 장치의 동작 방법. - 전자 장치의 동작 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능 기록 매체를 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 상기 전자 장치의 동작 방법은,
기능 실행의 요청에 따라, 하나 이상의 주변 장치들 중에서 상기 기능 실행이 가능한 피어 장치를 선정하는 동작,
상기 결정된 피어 장치로, 상기 기능 실행의 요청을 전송하는 동작, 및
상기 피어 장치로부터, 상기 기능 실행의 결과에 대응하는 결과 컨텐츠를 미러링을 이용하여 수신하여 표시하는 동작을 포함하는, 컴퓨터 판독가능 기록 매체.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190173468A KR20210081182A (ko) | 2019-12-23 | 2019-12-23 | 전자 장치 및 그 동작 방법 |
EP20216625.2A EP3843408A1 (en) | 2019-12-23 | 2020-12-22 | Electronic device and method of operating the same |
PCT/KR2020/018942 WO2021133042A1 (en) | 2019-12-23 | 2020-12-22 | Electronic device and method of operating the same |
US17/133,117 US11570514B2 (en) | 2019-12-23 | 2020-12-23 | Electronic device and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190173468A KR20210081182A (ko) | 2019-12-23 | 2019-12-23 | 전자 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210081182A true KR20210081182A (ko) | 2021-07-01 |
Family
ID=73856882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190173468A KR20210081182A (ko) | 2019-12-23 | 2019-12-23 | 전자 장치 및 그 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11570514B2 (ko) |
EP (1) | EP3843408A1 (ko) |
KR (1) | KR20210081182A (ko) |
WO (1) | WO2021133042A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023149645A1 (ko) * | 2022-02-07 | 2023-08-10 | 삼성전자 주식회사 | 외부 디스플레이 장치를 제어하기 위한 전자 장치 및 그 동작 방법 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210319281A1 (en) * | 2020-04-13 | 2021-10-14 | Motorola Mobility Llc | Subtask Assignment for an Artificial Intelligence Task |
US20240276063A1 (en) * | 2021-06-29 | 2024-08-15 | Lg Electronics Inc. | Wireless device |
US20230370424A1 (en) * | 2022-05-13 | 2023-11-16 | Cisco Technology, Inc. | Optimal data plane security & connectivity for secured connections |
CN115002521B (zh) * | 2022-05-25 | 2024-05-03 | 三星电子(中国)研发中心 | 多视图资源分配方法和装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133408B1 (en) * | 2000-10-13 | 2006-11-07 | Sun Microsystems, Inc. | Shared decoder |
US7191215B2 (en) * | 2005-03-09 | 2007-03-13 | Marquee, Inc. | Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines |
KR101264318B1 (ko) | 2006-07-07 | 2013-05-22 | 삼성전자주식회사 | 네트워크 환경에서의 서비스 메뉴 및 서비스 제공방법 및그 서비스 제공장치 |
US9288539B2 (en) * | 2007-12-12 | 2016-03-15 | Intel Corporation | System and method for a user interface to manage the recording, downloading and sharing of content from multiple sources |
US20090254600A1 (en) * | 2008-04-02 | 2009-10-08 | Lee Sean S | Method and system of using idle receiving unit resources for receiving content and communicating the content to other receiving units in the network |
US20110119719A1 (en) * | 2009-11-13 | 2011-05-19 | Echostar Technologies L.L.C. | Mosaic Application for Generating Output Utilizing Content from Multiple Television Receivers |
TWI491255B (zh) * | 2011-10-05 | 2015-07-01 | Amtran Technology Co Ltd | 電視節目分享方法 |
US9723354B2 (en) * | 2013-09-20 | 2017-08-01 | Echostar Technologies L.L.C. | Wireless tuner sharing |
MX358866B (es) * | 2014-01-06 | 2018-09-06 | Dish Tech Llc | Integración de dispositivo sintonizador múltiple. |
CN106201161B (zh) * | 2014-09-23 | 2021-09-03 | 北京三星通信技术研究有限公司 | 电子设备的显示方法及系统 |
US11012756B2 (en) * | 2015-07-30 | 2021-05-18 | Roku, Inc. | Capture and sharing of broadcast media |
KR102450840B1 (ko) * | 2015-11-19 | 2022-10-05 | 엘지전자 주식회사 | 전자 기기 및 전자 기기의 제어 방법 |
AU2016390177A1 (en) * | 2016-01-29 | 2018-07-05 | Sony Corporation | Server device, communication device and method |
US10237624B2 (en) * | 2016-03-11 | 2019-03-19 | DISH Technologies L.L.C. | Television receiver communication and resource sharing |
US10642526B2 (en) * | 2017-08-28 | 2020-05-05 | Vmware, Inc. | Seamless fault tolerance via block remapping and efficient reconciliation |
US11477516B2 (en) * | 2018-04-13 | 2022-10-18 | Koji Yoden | Services over wireless communication with high flexibility and efficiency |
US10673939B2 (en) * | 2018-05-04 | 2020-06-02 | Citrix Systems, Inc. | WebRTC API redirection with window monitoring/overlay detection |
US11930244B2 (en) * | 2019-11-23 | 2024-03-12 | Dish Network Technologies India Private Limited | Method and apparatus for preview decoding for joint video production |
-
2019
- 2019-12-23 KR KR1020190173468A patent/KR20210081182A/ko unknown
-
2020
- 2020-12-22 EP EP20216625.2A patent/EP3843408A1/en active Pending
- 2020-12-22 WO PCT/KR2020/018942 patent/WO2021133042A1/en active Application Filing
- 2020-12-23 US US17/133,117 patent/US11570514B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023149645A1 (ko) * | 2022-02-07 | 2023-08-10 | 삼성전자 주식회사 | 외부 디스플레이 장치를 제어하기 위한 전자 장치 및 그 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2021133042A1 (en) | 2021-07-01 |
US20210195285A1 (en) | 2021-06-24 |
EP3843408A1 (en) | 2021-06-30 |
US11570514B2 (en) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11888914B2 (en) | Multiple flinging devices in a media fling system | |
US11570514B2 (en) | Electronic device and method of operating the same | |
US10880408B2 (en) | Streaming policy management system and method | |
US10637894B2 (en) | Real-time placeshifting of media content to paired devices | |
KR102023609B1 (ko) | 컨텐트 공유 방법 및 그를 이용한 영상 표시 장치 | |
US10469893B2 (en) | Integrated cast and sling system and method of its operation in an interoperable multiple display device environment | |
US9992805B2 (en) | Apparatus for displaying images and driving method thereof, mobile terminal and driving method thereof | |
US10785826B2 (en) | Method of establishing a direct connection between a mobile device, and an image display apparatus, and method thereof | |
WO2017018042A1 (ja) | 情報処理装置及び情報処理方法、並びにソース機器 | |
KR20210073280A (ko) | 전자장치 및 그 제어방법 | |
US20230262285A1 (en) | Electronic device and operation method therefor | |
US20170127120A1 (en) | User terminal and control method therefor | |
US20210281801A1 (en) | Mediation method and computer readable recording medium | |
KR102633594B1 (ko) | 디스플레이장치, 그 제어방법 및 기록매체 | |
US9544350B2 (en) | RUI system, RUI server, RUI terminal apparatus and controlling method thereof | |
US12101513B2 (en) | Electronic device and method for operating same | |
KR20220032938A (ko) | 전자 장치 및 그 동작 방법 | |
KR20240140328A (ko) | 전자 장치 및 그 동작 방법 | |
US20160192018A1 (en) | Previewing content available at local media sources | |
KR20150042356A (ko) | 콘텐츠 제공 방법 및 시스템 |