KR20150002766A - 프로세싱 로드 분배 - Google Patents

프로세싱 로드 분배 Download PDF

Info

Publication number
KR20150002766A
KR20150002766A KR1020147031051A KR20147031051A KR20150002766A KR 20150002766 A KR20150002766 A KR 20150002766A KR 1020147031051 A KR1020147031051 A KR 1020147031051A KR 20147031051 A KR20147031051 A KR 20147031051A KR 20150002766 A KR20150002766 A KR 20150002766A
Authority
KR
South Korea
Prior art keywords
frame
terminal device
server
processing
information
Prior art date
Application number
KR1020147031051A
Other languages
English (en)
Other versions
KR101609812B1 (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 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20150002766A publication Critical patent/KR20150002766A/ko
Application granted granted Critical
Publication of KR101609812B1 publication Critical patent/KR101609812B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring 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
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

프로세싱 로드를 동적으로 분배하기 위한 기술이 일반적으로 설명된다. 일부 예시에서, 서버의 제어 하에서 수행되는 방법은 단말 장치로부터 로드 분배에 관한 정보를 수신하는 단계 및 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하는 단계를 포함할 수 있다.

Description

프로세싱 로드 분배{PROCESSING LOAD DISTRIBUTION}
그래픽 처리 유닛(graphics processing unit; GPU)은 디스플레이로의 출력을 위한 것으로 의도된 프레임 버퍼 내 이미지의 빌딩을 가속화하기 위하여 메모리를 빠르게 조작하고 변경하도록 설계된 전용 전자 회로이다. GPU는 임베디드 시스템, 모바일 폰, 개인용 컴퓨터, 워크스테이션, 게임 서버, 게임 콘솔 등에서 사용될 수 있다. 렌더링 및 인코딩 프로세스는 모바일 폰, 개인용 컴퓨터 또는 게임 코솔과 같은 GPU가 탑재된 서버 및/또는 단말 장치 상에서 수행될 수 있다.
예시에서, 서버의 제어 하에서 수행되는 방법은 단말 장치로부터, 로드 분배에 관한 정보를 수신하는 단계 및 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하는 단계를 포함할 수 있다.
예시에서, 서버의 제어 하에서 수행되는 방법은 제1 프로세스 그룹의 적어도 하나의 프레임을 처리하는 단계 및 제2 프로세스 그룹의 적어도 하나의 프레임을 처리하라는 적어도 하나의 명령어를 단말 장치에게 제공하는 단계를 포함할 수 있다.
예시에서, 서버는 로드 분배에 관한 정보를 획득하도록 구성된 정보 획득 유닛 및 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하도록 구성된 결정 유닛을 포함할 수 있다.
예시에서, 컴퓨터 판독가능 저장 매체는, 실행에 응답하여, 서버로 하여금, 단말 장치로부터 로드 분배에 관한 정보를 수신하는 것 및 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하는 것을 포함하는 동작을 수행하게 하는 컴퓨터 실행가능 명령어를 저장할 수 있다.
예시에서, 컴퓨터 판독가능 저장 매체는, 실행에 응답하여, 서버로 하여금, 제1 프로세스 그룹의 적어도 하나의 프레임을 처리하는 것 및 제2 프로세스 그룹의 적어도 하나의 프레임을 처리하라는 적어도 하나의 명령어를 단말 장치에게 제공하는 것을 포함하는 동작을 수행하게 하는 컴퓨터 실행가능 명령어를 저장할 수 있다.
이상의 요약은 단순히 예시적인 것으로서 어떠한 방식으로든 제한적으로 의도된 것이 아니다. 이하의 상세한 설명과 도면을 참조함으로써, 상기 설명된 예시적인 양태, 실시예, 그리고 특징에 더하여, 추가적인 양태, 실시예, 그리고 특징 또한 명확해질 것이다.
본 개시의 전술한 특징 및 다른 특징은 첨부 도면과 결합하여, 다음의 설명 및 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시에 따른 단지 몇 개의 예시를 묘사할 뿐이고, 따라서, 본 개시의 범위를 제한하는 것으로 고려되어서는 안 될 것임을 이해하면서, 본 개시는 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
도 1은, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 단말 장치가 네트워크를 통해 서버로 연결되는 환경의 예시를 개략적으로 도시하고,
도 2는, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 서버와 단말 장치 사이의 네트워크의 상태에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드의 분배를 나타내기 위한 그래프를 개략적으로 도시하고,
도 3은, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 분배된 프로세싱 로드를 처리하기 위한 서버와 단말 장치의 예시를 개략적으로 도시하고,
도 4는, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 서버를 위한 예시적인 아키텍처를 나타내는 개략적인 블록도를 도시하고,
도 5는, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하기 위한 서버의 프로세스의 예시적인 흐름도를 도시하고,
도 6은, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 서버와 단말 장치 사이에서 동적으로 분배될 수 있는 비디오 데이터 프레임을 개략적으로 도시하고,
도 7은, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하기 위한 서버의 프로세스의 다른 예시적인 흐름도를 도시하고,
도 8은, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하도록 이용될 수 있는 컴퓨터 프로그램 제품을 도시하고,
도 9는, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하도록 이용될 수 있는 예시적인 컴퓨팅 장치를 도시하는 블록도이다.
이하의 상세한 설명에서 본 개시의 일부를 이루는 첨부된 도면이 참조된다. 문맥에서 달리 지시하고 있지 않은 한, 통상적으로, 도면에서 유사한 부호는 유사한 컴포넌트를 나타낸다. 상세한 설명, 도면, 그리고 청구범위에 설명되는 예시적인 실시예는 제한적으로 여겨지지 않는다. 본 개시에서 제시되는 대상의 범위 또는 사상에서 벗어나지 않으면서도 다른 실시예가 이용되거나, 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고, 도면에 도시되는 본 개시의 양태는 다양한 다른 구성으로 배열, 대체, 조합, 분리 및 설계될 수 있음과 이 모두가 여기에서 명시적으로 고려됨이 기꺼이 이해될 것이다.
본 개시는, 그 중에서도, 프로세싱 로드의 분배에 관련된 방법, 장치, 시스템, 기기 및 컴퓨터 프로그램 제품에 일반적으로 관련된다.
서버와 단말 장치 사이에서 프로세싱 로드를 분배하기 위한 방법을 위한 기술이 일반적으로 설명된다.
일부 예시에서, 서버는 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 제한이 아닌 예시로써, 로드 분배에 관한 정보는 단말 장치와 서버의 계산 능력, 서버와 단말 장치 사이의 네트워크 상태, 단말 장치와 서버 사이의 네트워크를 사용하기 위한 비용 정보, 단말 장치의 배터리 상태 등을 포함할 수 있다. 서버 및 단말 장치 둘은 동적으로 분배된 프로세싱 로드를 처리할 수 있다. 일부 실시예에서, 서버는 분배된 프로세싱 로드의 적어도 하나의 프로세스를 처리할 수 있고, 분배된 프로세싱 로드로서 이후 지칭될 수 있는, 프로세싱 로드의 적어도 하나의 다른 프로세스를 처리하라는 적어도 하나의 명령어를 단말 장치에게 제공할 수 있다. 적어도 하나의 명령어를 수신하는 경우, 단말 장치는 분배된 프로세싱 로드의 적어도 하나의 다른 프로세스를 처리할 수 있다.
도 1은, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 단말 장치가 네트워크를 통해 서버로 연결되는 환경의 예시를 개략적으로 도시한다. 도 1에 도시된 바와 같이, 단말 장치(200)는 네트워크(300)를 통해 서버(100)로 연결될 수 있다. 일부 실시예에서, 서버(100)는 클라우드 서버 또는 클라우드 시스템의 컴포넌트를 포함할 수 있고, 단말 장치(200)는 네트워크(300)를 통해 클라우드 서버 또는 클라우드 시스템의 컴포넌트에 연결될 수 있다. 예시로써, 단말 장치(200)는 클라우드 서버 또는 클라우드 시스템에 의해 제공되는 그래픽 게임을 작동 또는 실행할 수 있다. 서버(100) 및 단말 장치(200)는 그래픽 처리 유닛(GPU)을 각각 가질 수 있다.
예시로써, 단말 장치(200)는 데스크탑 컴퓨터, 노트북 컴퓨터, 랩탑 컴퓨터, 개인용 포터블 터미널(personal portable terminal), 게임 콘솔 등을 포함할 수 있으나 이에 제한되는 것은 아니다. 개인용 포터블 터미널로서, 단말 장치(200)는 PCS(Personal Communication System), GMS(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant) 등과 같은 모든 종류의 소형 무선 통신 기기를 포함할 수 있다.
예시로써, 네트워크(300)는 LAN(Local Area Network), WAN(Wide Area Network), VAN(Value Added Network) 등과 같은 유선 네트워크 또는 모바일 무선 통신 네트워크, 위성 네트워크, 블루투스, WiBro(Wireless Broadband Internet), Mobile WiMAX, HSDPA(High Speed Downlink Packet Access)과 같은 모든 종류의 무선 네트워크를 포함할 수 있으나, 이에 제한되는 것은 아니다.
서버(100)는 단말 장치(200)로부터 로드 분배에 관한 정보를 수신하도록 구성될 수 있다. 나아가, 서버(100)는 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 단말 장치(200)와 서버(100) 사이에서 프로세싱 로드를 동적으로 분배하도록 구성될 수 있다. 프로세싱 로드는 그래픽 프로세스를 포함할 수 있다.
제한이 아닌 예시로써, 로드 분배에 관한 정보는 서버(100)와 단말 장치(200) 사이의 네트워크(300)의 상태, 단말 장치(200)의 배터리 상태, 서버(100)의 용량, 단말 장치(200)의 용량, 네트워크(300)의 비용 정보 및 단말 장치(200)를 통해 제출된 사용자 선호도 중 적어도 하나를 포함할 수 있다.
도 2는, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 서버와 단말 장치 사이의 네트워크의 상태에 적어도 부분적으로 기초하여 서버와 단말 장치 사이에서 프로세싱 로드의 분배를 나타내기 위한 그래프를 개략적으로 도시한다. 서버(100)와 단말 장치(200) 사이의 네트워크(300)의 상태는 네트워크(300)의 대역폭에 의존할 수 있다. 예시로써, 네트워크(300)가 서버(100)에 의해 처리된 모든 데이터를 전송할 충분한 대역폭을 가지면(즉, 도 2의 그래프에 나타난 "네트워크 컨디션 좋음"), 서버(100)는 모든 프로세싱 로드를 거기에서 할당, 즉 보유할 수 있다. 그러나, 네트워크(300)의 대역폭이 (도 2의 그래프에 나타난 "네트워크 컨디션 나쁨"의 지점 아래로)감소함에 따라, 서버(100)는 거기에서 모두를 보유하는 것과 반대로, 단말 장치(200)로 더 많은 프로세싱 로드를 거기에서 할당할 수 있다.
서버(100)는 서버(100)와 단말 장치(200) 사이의 네트워크(300)의 상태를 주기적으로 모니터할 수 있다. 제한이 아닌 예시로써, 서버(100)는 미리 결정된 시간(예컨대, 매 시간당 한번, 매 시간당 두 번 등)에서 네트워크(300)의 상태를 모니터할 수 있다. 제한이 아닌 예시로써, 서버(100)는 UDP(User Datagram Protocol) 방법 또는 TCP(Transmission Control Protocol) 방법에 기초하여 주기적으로 네트워크(300) 상태를 모니터할 수 있다. 단말 장치(200) 또한 서버(100)와 단말 장치(200) 사이의 네트워크(300)의 상태를 주기적으로 모니터할 수 있다. 제한이 아닌 예시로써, 단말 장치(200)는 UDP(User Datagram Protocol) 방법 또는 TCP(Transmission Control Protocol) 방법에 기초하여 네트워크(300)의 상태를 주기적으로 모니터할 수 있다.
서버(100)는 주기적으로 단말 장치(200)에 의해 모니터되어 획득될 수 있는 로드 분배에 관한 정보를 단말 장치(200)로부터 요청할 수 있고, 단말 장치(200)로부터 수신된 정보에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다.
일부 실시예에서, 서버(100)는 서버(100)의 용량에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 서버(100)의 용량(데이터 프로세싱의 함수일 수 있음)은 네트워크(300)를 통한 서버(100)로 연결된 단말 장치의 수에 의존할 수 있다. 제한이 아닌 예시로써, 서버(100)에 연결된 단말 장치의 수가 서버(100)의 용량의 기준 높은 레벨보다 더 큰 경우, 서버(100)는 서버(100)의 프로세싱 로드를 줄이고 단말 장치(200)의 프로세싱 로드를 늘일 수 있다.
일부 실시예에서, 서버(100)는 단말 장치(200)의 배터리의 상태에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 제한이 아닌 예시로써, 단말 장치(200)의 예측된 남은 배터리 수명이 예측된 프로세싱 수요에 대해 충분하면, 서버(100)는 단말 장치(200)의 프로세싱 로드를 늘일 수 있으나, 단말 장치(200)의 예측된 배터리 수명이 예측된 프로세싱 수요에 대해 충분하지 않으면, 서버(100)는 단말 장치(200)의 프로세싱 로드를 줄일 수 있다.
일부 실시예에서, 서버(100)는 단말 장치(200)의 용량(데이터 프로세싱의 함수일 수 있음)에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 제한이 아닌 예시로써, 단말 장치(200)의 프로세스가 이미 다른 프로세스에 의해 점유되고 있는 경우, 서버(100)는 단말 장치(200)의 프로세싱 로드를 줄일 수 있다.
일부 실시예에서, 서버(100)는 네트워크(300)의 비용 정보에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 제한이 아닌 예시로써, 네트워크(300)를 사용하는 것의 비용은 네트워크 제공자, 단말 장치(200)의 위치, 단말 장치(200)가 네트워크(300)에 연결된 시간 영역에 따라 변화할 수 있다. 제한이 아닌 예시로써, 네트워크(300)를 사용하는 것의 비용이 비교적 높은 경우, 서버(100)는 서버(100)의 프로세싱 로드를 줄일 수 있고, 네트워크(300)를 사용하는 것의 비용이 비교적 낮으면, 서버(100)는 서버(100)의 프로세싱 로드를 늘일 수 있다.
일부 실시예에서, 서버(100)는 단말 장치(200)를 통해 제출된 사용자 선호도에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 예시로써, 단말 장치(200)의 사용자가 서버가 모든 프로세스를 처리하기를 원하면, 서버(100)는 프로세싱을 위한 프로세싱 로드 모두를 거기에서 보유할 수 있다.
서버(100)는 스스로 로드 분배에 관한 정보를 획득할 수 있거나 단말 장치(200)로부터 로드 분배에 관한 정보를 요청할 수 있다. 예시로써, 서버(100)는 스스로 로드 분배에 관한 정보를 주기적으로 획득할 수 있다. 나아가, 서버(100)는 단말 장치(200)로부터 로드 분배에 관한 정보를 주기적으로 요청할 수 있다.
일부 실시예에서, 특별한 이벤트가 서버(100) 또는 단말 장치(200) 중 어느 하나에서 발생하면, 서버(100) 또는 단말 장치(200)는 그러한 특별한 이벤트를 상대방에게 알릴 수 있다. 그러므로, 단말 장치(200)는 서버(100)에게 단말 장치(200) 상의 이벤트를 알릴 수 있거나 또는 서버(100)는 단말 장치(200)에게 서버(100) 상의 이벤트를 알릴 수 있다. 제한이 아닌 예시로써, 단말 장치(200)의 배터리가 완전히 방전되거나 기준 낮은 레벨에서 또는 그 아래에 있는 경우, 단말 장치(200)는 서버(100)에게 배터리 상태를 알릴 수 있다. 따라서, 그러한 제한적이지 않은 예시에 의해, 서버(100)는 배터리 상태에 관한 정보에 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 분배할 수 있다.
도 3은, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 분배된 프로세싱 로드를 처리하기 위한 서버와 단말 장치의 예시를 개략적으로 도시한다. 서버(100)는 로드 분배에 관한 정보에 기초하여 분배될 수 있는, 프로세싱 로드의 적어도 하나의 프로세스를 처리할 수 있다. 나아가, 서버(100)는 분배된 프로세싱 로드의 적어도 하나의 다른 프로세스를 처리하라는 적어도 하나의 명령어를 단말 장치(200)에게 제공할 수 있다. 적어도 하나의 프로세스 및 적어도 하나의 다른 프로세스 각각은 그래픽 오브젝트(graphical object)일 수 있다.
일부 실시예에서, 서버(100)는 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드에 따라 서버(100)에 의해 렌더링될 그래픽적 오브젝프의 수를 결정할 수 있다. 예시로써, 서버(100)는 서버(100)의 프로세싱 로드 비율에 대응하는 그래픽 오프젝트(예컨대, Obj_1 내지 Obj_m)을 렌더링할 수 있다. 그 예시에 따라, 서버(100)는 데이터 스트림으로 렌더링된 그래픽 오브젝트를 인코딩할 수 있고 단말 장치(200)로 데이터 스트림을 전송할 수 있다. 나아가, 서버(100)는, 그래픽 오브젝트(예컨대, Obj_m+1 내지 Obj_n)를 렌더링하기보다 단말 장치(200)의 프로세싱 로드 비율에 대응하는 그래픽 오브젝트(즉, Obj_m+1 내지 Obj_n)를 단말 장치(200)로 전송할 수 있다.
일부 실시예에서, 단말 장치(200)는 렌더링된 그래픽 오브젝트(즉, Obj_1 내지 Obj_m)를 획득하기 위하여 서버(100)로부터 수신된 데이터 스트림을 디코딩할 수 있다. 나아가, 단말 장치(200)는 그래픽 오브젝트(즉, Obj_m+1 내지 Obj_n)를 수신하여 렌더링할 수 있다. 단말 장치(200)는 이후 서버(100)에 의해 렌더링된 그래픽 오브젝트(즉, Obj_1 내지 Obj_m)를 단말 장치(200)에 의해 렌더링된 그래픽 오브젝트(즉, Obj_m+1 내지 Obj_n)와 조합/중첩할 수 있고, 조합/중첩된 그래픽 오브젝트(즉, Obj_1 내지 Obj_n)를 디스플레이할 수 있다. 나아가, 서버(100)가 그래픽 오브젝트(즉, Obj_1 내지 Obj_m)를 인코딩하고 단말 장치(200)가 인코딩된 그래픽 오브젝트를 디코딩하는 것은 필수적이므로, 단말 장치(200)가 그래픽 오브젝트(즉, Obj_m+1 내지 Obj_n)을 렌더링한 후 딜레이 단계(delay step)가 필요할 수 있다.
일부 실시예에서, 서버(100)가 전체 프로세싱 로드의 50%를 보유하고 단말 장치(200)로 전체 프로세싱 로드의 50%를 분배하는 경우, 서버(100)는 예컨대, 비디오 데이터의 홀수 프레임을 렌더링하고 인코딩하여 단말 장치(200)로 인코딩된 비디오 데이터의 스트림을 전송할 수 있고, 서버(100)는 비디오 데이터의 짝수 프레임을 렌더링하기보다 단말 장치(200)로 비디오 데이터의 짝수 프레임을 전송할 수 있다.
일부 실시예에서, 서버(100)는 비디오 장면(video scene)의 전경 오브젝트(foreground object)를 렌더링하고 인코딩하여 비디오 장면의 인코딩된 전경 오브젝트를 단말 장치(200)로 전송할 수 있고, 서버(100)는 비디오 장면의 배경 오브젝트를 렌더링하기보다 비디오 장면의 배경 오브젝트를 단말 장치로 더 전송할 수 있다. 그러나, 서버(100)는 비디오 장면의 배경 오브젝트를 또한 렌더링하고 인코딩할 수 있으며 단말 장치(200)로 비디오 장면의 인코딩된 배경 오브젝트를 전송할 수 있다. 나아가, 서버(100)는 비디오 장면의 전경 오브젝트를 렌더링하기보다 단말 장치(200)로 비디오 장면의 전경 오브젝트를 전송할 수 있다.
도 4는, 여기에서 기술된 적어도 일부 실시예에 따라 배열되는, 서버를 위한 예시적인 아키텍저를 나타내는 개략적인 블록도를 도시한다. 도 4에 도시된 바와 같이, 서버(100)는 정보 획득 유닛(410), 결정 유닛(420), 그래픽 처리 유닛(430) 및 명령 유닛(440)을 포함할 수 있다. 그래픽 처리 유닛(430)은 렌더링 유닛(432), 인코딩 유닛(434) 및 전송 유닛(436)을 포함할 수 있다. 분리된 컴포넌트로 도시되지만, 개시된 대상의 범위 내에서 이해되는 한 다양한 컴포넌트가 추가적인 컴포넌트로 분할되거나, 더 적은 수의 컴포넌트로 결합되거나, 또는 함께 제거될 수 있다.
정보 획득 유닛(410)은 단말 장치(200)로부터 로드 분배에 관한 정보를 수신하도록 구성될 수 있다. 제한이 아닌 예시로써, 로드 분배에 관한 정보는 서버(100)와 단말 장치(200) 사이의 네트워크 상태, 단말 장치(200)의 배터리 상태, 서버(100)의 용량, 단말 장치(200)의 용량, 네트워크의 비용 정보 및 단말 장치(200)를 통해 제출된 사용자 선호도 중 적어도 하나를 포함할 수 있다. 정보 획득 유닛(410)은 단말 장치(200)로부터 로드 분배에 관한 정보를 주기적으로 획득할 수 있다.
결정 유닛(420)은 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배하도록 구성될 수 있다. 동적으로 분배된 프로세싱 로드는 비디오 데이터의 프레임 유형 및 그래픽 오브젝트 중 적어도 하나와 연관될 수 있다.
그래픽 처리 유닛(430)은 서버(100)에서 보유되는 동적으로 분배된 프로세싱 로드의 적어도 일부를 처리할 수 있다. 제한이 아닌 예시로써, 동적으로 분배된 프로세싱 로드는 그래픽 오브젝트와 연관된다. 일부 실시예에서, 렌더링 유닛(432)은 서버(10)에서 렌더링하기 위해 보유되는 적어도 하나의 그래픽 오브젝트를 렌더링할 수 있다. 인코딩 유닛(434)은 데이터 스트림으로 렌더링된 그래픽 오브젝트를 인코딩할 수 있다. 전송 유닛(436)은 데이터 스트림을 단말 장치(200)로 전송할 수 있다.
명령 유닛(440)은 단말 장치(200)에게 단말 장치(200)로 동적으로 분배된 프로세싱 로드의 적어도 다른 일부를 처리하라고 명령할 수 있다. 서버(100)의 명령 유닛(400)의 명령에 따라, 단말 장치(200)는 단말 장치(200)로 분배된 적어도 하나의 그래픽 오브젝트를 렌더링할 수 있다. 이후, 단말 장치(200)는 스스로 렌더링한 적어도 하나의 그래픽 오브젝트와 서버(100)에 의해 렌더링된 적어도 하나의 그래픽 오브젝트를 조합하여 조합된 데이터로 디스플레이할 수 있다.
도 5는, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하기 위한 서버의 프로세스의 예시적인 흐름도를 도시한다. 도 5의 프로세스는 전술된 정보 획득 유닛(410); 결정 유닛(420); 렌더링 유닛(432), 인코딩 유닛(434) 및 전송 유닛(436)을 포함한 그래픽 처리 유닛(430); 및 명령 유닛(440)을 포함하는 서버(100)에서 구현될 수 있다. 예시적인 프로세스는 하나 이상의 블록(510, 520, 530, 540 및/또는 550)에 의해 도시되는 하나 이상의 동작, 작동 또는 기능을 포함할 수 있다. 분리된 블록으로 도시되었으나, 요구되는 구현예에 따라, 다양한 블록이 추가적인 블록으로 분할될 수 있거나 더 적은 블록으로 조합될 수 있거나 또는 제거될 수 있다. 프로세싱은 블록(510)에서 시작할 수 있다.
블록(510)에서, 서버(100)는 단말 장치(200)로부터 로드 분배에 관한 정보를 요청할 수 있다. 제한이 아닌 예시로써, 서버(100)는 단말 장치(200)로 정보에 대한 요청을 주기적으로 발송할 수 있다. 분배될 프로세싱 로드는 그래픽 프로세스를 포함할 수 있다. 로드 분배에 관한 요청된 정보는 서버(100)와 단말 장치(200) 사이의 네트워크의 상태, 단말 장치(200)의 배터리 상태, 서버(100)의 용량, 단말 장치(200)의 용량, 네트워크의 비용 정보, 단말 장치(200)를 통해 제출된 사용자 선호도 중 적어도 하나를 포함할 수 있다. 프로세싱은 블록(510)에서 블록(520)으로 계속할 수 있다.
블록(520)에서, 서버(100)는 단말 장치(200)로부터 로드 분배에 관한 정보를 수신할 수 있다. 프로세싱은 블록(520)에서 블록(530)으로 계속할 수 있다.
블록(530)에서, 서버(100)는 블록(520)에서 수신된 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버(100)와 단말 장치(200) 사이에서 프로세싱 로드를 동적으로 분배할 수 있다. 제한이 아닌 예시로써, 서버(100)는 서버(100)와 단말 장치(200) 사이의 프로세싱 로드 비율에 따라 서버(100)에 의해 렌더링될 그래픽 오브젝트의 수를 결정할 수 있다. 일부 실시예에서, 서버(100)는 서버(100)와 단말 장치(200) 사이의 프로세싱 로드 비율에 따라 서버(100)에 의해 렌더링될 비디오 데이터의 프레임의 수를 결정할 수 있다. 프로세싱은 블록(530)에서 블록(540)으로 계속할 수 있다.
블록(540)에서, 서버(100)는 분배된 프로세싱 로드의 적어도 하나의 프로세스를 처리할 수 있다. 일부 실시예에서, 서버(100)는 서버(100)로 분배된 그래픽 오브젝트를 렌더링하고, 렌더링된 그래픽 오브젝트를 데이터 스트림으로 인코딩하여 이후 단말 장치(200)로 데이터 스트림을 전송할 수 있다. 프로세싱은 블록(540)에서 블록(550)으로 계속할 수 있다.
블록(550)에서, 서버(100)는 분배된 프로세싱 로드의 적어도 하나의 다른 프로세스를 처리하라는 적어도 하나의 명령어를 단말 장치(200)에게 제공할 수 있다. 제한이 아닌 예시로써, 서버(100)는 서버(100)에 의해 렌더링되지 않은 다른 그래픽 오브젝트를 렌더링하라는 명령어를 단말 장치(200)에게 제공할 수 있다.
당업자는, 여기에서 개시된 이러한 그리고 다른 프로세스 및 방법에 대해, 프로세스 및 방법에서 수행되는 기능이 다른 순서로 구현될 수 있음을 이해할 것이다. 나아가, 개략화된 단계 및 동작은 예시로 단지 제공되며, 개시된 실시예의 본질을 벗어나지 않으면서, 단계 및 동작 중 일부는 선택적이거나 더 적은 단계 및 동작으로 조합되거나 또는 추가적인 단계 및 동작으로 확장될 수 있다.
도 6은, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 서버와 단말 장치 사이에서 동적으로 분배될 수 있는 비디오 데이터 프레임을 개략적으로 도시한다. 비디오 데이터(600)는 제(2n-1) 프레임(610), 제(2n) 프레임(620) 및 제(2n+ l) 프레임(630)을 포함하는 복수의 프레임으로 구성될 수 있다.
일부 실시예에서, 비디오 데이터(600)의 복수의 프레임은 제1 프로세스 그룹 및 제2 프로세스 그룹으로 분할될 수 있다. 제한이 아닌 예시로써, 제1 프로세스 그룹은 제(2n-1) 프레임(610) 및 제(2n+1) 프레임(630)을 포함하는 홀수 프레임을 포함할 수 있고 제2 프로세스 그룹은 제(2n) 프레임(620)을 포함하는 짝수 프레임을 포함할 수 있다. 나아가, 제1 프로세스 그룹은 제(2n) 프레임(620)을 포함하는 짝수 프레임을 포함할 수 있고 제2 프로세스 그룹은 제(2n-1) 프레임(610) 및 제(2n+1) 프레임(630)을 포함하는 홀수 프레임을 포함할 수 있다. 서버(100)는 제1 프로세스 그룹을 처리할 수 있고 단말 장치(200)는 제2 프로세스 그룹을 처리할 수 있다.
도 6에 도시된 바와 같이, 서버(100)는 제(2n-1) 프레임 및 제(2n) 프레임에 대응하는 주기(640) 동안 제(2n-1) 프레임(610)을 처리할 수 있다. 유사하게, 단말 장치(200)는 제(2n) 프레임 및 제(2n+1) 프레임에 대응하는 주기(650) 동안 제(2n) 프레임(620)을 처리할 수 있다. 더 구체적으로, 서버(100)는 주기(640) 동안 제(2n-1) 프레임(610)을 렌더링하고, 데이터 스트림으로 렌더링된 프레임을 인코딩하여 단말 장치(200)로 데이터 스트림을 전송할 수 있고, 단말 장치(200)는 주기(650) 동안 서버로부터 제(2n) 프레임(620)을 수신하여 제(2n) 프레임(620)을 렌더링할 수 있다. 서버(100)에 의해 렌더링된 프레임은 두 프레임 동안 전송될 수 있으므로, 네트워크 대역폭의 피크 로드는 반으로 낮아질 수 있다. 나아가, 단말 장치(200)가 두 프레임 동안 서버(100)로부터 수신된 프레임을 렌더링할 수 있으므로, 단말 장치(200)의 용량의 피크 로드는 반으로 낮아질 수 있다.
다만, 서버(100)가 홀수 프레임 또는 짝수 프레임을 처리하고 단말 장치(200)가 짝수 프레임 또는 홀수 프레임을 처리하는 것으로 기술되었으나, 당업자에게 서버(100) 및 단말 장치(200)에 의해 처리되는 프레임의 유형 또는 수는 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 변경될 수 있음이 명백하다. 제한이 아닌 예시로써, 서버(100)는 제(2n-1) 프레임(610) 및 제(2n) 프레임(620)을 처리할 수 있고 단말 장치(200)는 제(2n+1) 프레임(630)을 처리할 수 있다.
일부 실시예에서, 비디오 데이터(600)의 복수의 프레임은 프레임의 둘 이상의 유형을 포함할 수 있다. 제한이 아닌 예시로써, 복수의 프레임은, 제1 처리 유닛 상에서 처리하기에 적합할 수 있는 제1 유형의 적어도 하나의 프레임 및 제2 처리 유닛 상에서 처리하기에 적합할 수 있는 제2 유형의 적어도 하나의 다른 프레임을 포함할 수 있다. 제한이 아닌 예시로써, 제1 유형의 적어도 하나의 프레임은 인트라코딩된 프레임(intracoded frame) (I 프레임)을 포함하는 독립적인 프레임을 포함할 수 있고 제2 유형의 적어도 하나의 다른 프레임은 예측된 프레임(predicted frame)(P 프레임) 및 양방향성 프레임(bidirectional frame)(B 프레임) 중 적어도 하나를 포함하는 의존적인 프레임을 포함할 수 있다. 제1 처리 유닛은 그래픽 처리 유닛(GPU)일 수 있고 제2 처리 유닛은 중앙 처리 유닛(CPU)일 수 있다. 일부 실시예에서, 서버(100) 및 단말 장치(200) 각각은 제1 처리 유닛 및 제2 처리 유닛 중 적어도 하나를 포함할 수 있다. 제한이 아닌 예시로써, 서버(100)가 제1 처리 유닛만을 가지고 단말 장치가 제2 처리 유닛만을 가지는 경우, 제1 유형의 적어도 하나의 프레임의 프로세싱은 서버(100)로 할당될 수 있고 제2 유형의 적어도 하나의 다른 프레임의 프로세싱은 단말 장치(200)로 할당될 수 있다. 서버(100) 및 단말 장치(200) 각각이 제1 처리 유닛 및 제2 처리 유닛 둘 모두 가지는 경우, 제1 유형의 적어도 하나의 프레임 및 제2 유형의 적어도 하나의 다른 프레임은 도 2를 참조하여 전술된 바와 같이, 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 서버(100)와 단말 장치(200) 사이에서 분배될 수 있다.
도 7은, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하기 위한 서버의 프로세스의 다른 예시적인 흐름도를 도시한다. 도 7의 프로세스는 전술된 정보 획득 유닛(410); 결정 유닛(420); 렌더링 유닛(432), 인코딩 유닛(434) 및 전송 유닛(436)을 포함한 그래픽 처리 유닛(430); 및 명령 유닛(440)을 포함하는 서버(100)에서 구현될 수 있다. 분리된 블록으로 도시되었으나, 요구되는 구현예에 따라, 다양한 블록이 추가적인 블록으로 분할될 수 있거나 더 적은 블록으로 조합될 수 있거나 또는 제거될 수 있다. 프로세싱은 블록(710)에서 시작할 수 있다.
블록(710)에서, 서버(100)는 제1 프로세스 그룹의 적어도 하나의 프레임을 처리할 수 있다. 일부 실시예에서, 제1 프로세스 그룹은 비디오 데이터의 적어도 하나의 홀수 프레임을 포함할 수 있다. 나아가, 일부 다른 실시예에서, 제1 프로세스 그룹은, 그래픽 처리 유닛(GPU)일 수 있는 제1 처리 유닛 상에서의 처리에 적합할 수 있는 제1 유형의 적어도 하나의 프레임을 포함할 수 있다. 예컨대, 제1 유형의 적어도 하나의 프레임은 I 프레임을 포함하는 독립적인 프레임을 포함할 수 있다. 예시로써, 서버(100)가 제1 처리 유닛을 가지면, 제1 유형의 적어도 하나의 프레임의 프로세싱은 서버(100)로 할당될 수 있고, 서버(100)는 제1 프로세스 그룹의 적어도 하나의 프로세스를 프로세스할 수 있다. 프로세싱은 블록(710)에서 블록(720)으로 계속할 수 있다.
블록(720)에서, 서버(100)는 제2 프로세스 그룹의 적어도 하나의 프레임을 처리하라는 적어도 하나의 명령어를 단말 장치(200)에게 제공할 수 있다. 일부 실시예에서, 제2 프로세스 그룹은 비디오 데이터의 적어도 하나의 짝수 프레임을 포함할 수 있다. 나아가, 일부 다른 실시예에서, 제2 프로세스 그룹은, 중안 처리 유닛(CPU)일 수 있는 제2 처리 유닛 상에서의 처리에 적합할 수 있는 제2 유형의 적어도 하나의 다른 프레임을 포함할 수 있다. 예컨대, 제2 유형의 적어도 하나의 다른 프레임은 P 프레임 및 B 프레임 중 적어도 하나를 포함하는 의존적인 프레임을 포함할 수 있다. 예시로써, 단말 장치(200)가 제2 처리 유닛을 가지면, 제2 유형의 적어도 하나의 다른 프레임의 프로세싱은 단말 장치(200)로 할당될 수 있다. 서버(100)는 단말 장치(200)에게 제2 프로세스 그룹의 적어도 하나의 프레임을 처리하라는 적어도 하나의 명령어를 제공할 수 있다.
일부 실시예에서, 적어도 하나의 홀수 프레임은 제1 프레임 및 제3 프레임을 포함할 수 있고 적어도 하나의 짝수 프레임은 제2 프레임을 포함할 수 있다. 그러한 경우에, 서버(100)는 제1 프레임을 렌더링하고, 제1 프레임 및 제2 프레임의 주기 동안 데이터 스트림으로 렌더링된 제1 프레임을 인코딩하여 단말 장치(200)로 데이터 스트림을 전송할 수 있다. 나아가, 단말 장치(200)는 제2 프레임 및 제3 프레임의 주기 동안 제2 프레임을 수신하고 렌더링할 수 있다.
당업자는, 여기에서 개시된 이러한 그리고 다른 프로세스 및 방법에 대해, 프로세스 및 방법에서 수행되는 기능이 다른 순서로 구현될 수 있음을 이해할 것이다. 나아가, 개략화된 단계 및 동작은 예시로 단지 제공되며, 개시된 실시예의 본질을 벗어나지 않으면서, 단계 및 동작 중 일부는 선택적이거나 더 적은 단계 및 동작으로 조합되거나 또는 추가적인 단계 및 동작으로 확장될 수 있다.
도 8은, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하도록 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다. 프로그램 제품(800)은 신호 베어링 매체(810)를 포함할 수 있다. 신호 베어링 매체(810)는, 예컨대, 프로세서에 의해 실행되는 경우, 도 1-7에 관해 전술된 기능을 제공할 수 있는 하나 이상의 명령어(820)를 포함할 수 있다. 예시로써, 명령어(820)는 단말 장치로부터 로드 분배에 관한 정보를 수신하기 위한 하나 이상의 명령어 및 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 단말 장치와 서버 사이에서 프로세싱 로드를 동적으로 분배하기 위한 하나 이상의 명령어를 포함할 수 있다. 그러므로, 예컨대, 도 4를 참조하여, 서버(100)는 명령어(820)에 응답하여 도 5에 도시된 블록 중 하나 이상을 수행할 수 있다.
일부 구현예에서, 신호 베어링 매체(810)는 하드 디스크 드라이브, CD, DVD, 디지털 테이프, 메모리 등과 같은 컴퓨터 판독 가능 매체(830)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(810)는 메모리, 읽기/쓰기(R/W) CD, R/W DVD 등과 같은 기록 가능 매체(840)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(810)는 디지털 및/또는 아날로그 통신 매체(예컨대, 광섬유 케이블, 도파관(waveguide), 유선 통신 링크, 무선 통신 링크 등)와 같은 통신 매체(850)를 포함할 수 있으나, 이에 제한되지는 않는다. 따라서, 예컨대, 프로그램 제품(800)은, 신호 베어링 매체(820)가 무선 통신 매체(850)(예컨대, IEEE 802.11 표준에 따르는 무선 통신 매체)에 의해 전달되는 RF 신호 베어링 매체(820)에 의하여 서버(100)의 하나 이상의 모듈로 전달될 수 있다.
도 9는, 여기에서 기술되는 적어도 일부 실시예에 따라 배열되는, 프로세싱 로드를 동적으로 분배하도록 이용될 수 있는 예시적인 컴퓨팅 장치를 도시하는 블록도이다. 매우 기본적인 구성(902)에서, 컴퓨팅 장치(900)는 전형적으로 하나 이상의 프로세서(904) 및 시스템 메모리(906)를 포함한다. 메모리 버스(908)가 프로세서(904)와 시스템 메모리(906) 사이의 통신을 위해 사용될 수 있다.
요구되는 구성에 따라, 프로세서(904)는 마이크로프로세서(μP), 마이크로컨트롤러(μC), 디지털 신호 프로세서(DSP) 또는 그 임의의 조합을 포함하는 임의의 유형일 수 있지만, 이에 한정되는 것은 아니다. 프로세서(904)는 레벨 1 캐시(910) 및 레벨 2 캐시(912)와 같은 하나 이상의 레벨의 캐싱, 프로세서 코어(914) 및 레지스터(916)를 포함할 수 있다. 예시적인 프로세서 코어(914)는 ALU(arithmetic logic unit), FPU(floating point unit), DSP 코어(digital signal processing core), 또는 그 임의의 조합을 포함할 수 있다. 예시적인 메모리 컨트롤러(918)는 또한 프로세서(904)와 사용될 수 있거나, 또는 몇몇 구현예에서, 메모리 컨트롤러(918)는 프로세서(904)의 내부 부품일 수 있다.
요구되는 구성에 따라, 시스템 메모리(906)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그 임의의 조합을 포함할 수 있지만, 이에 한정되지 않는 임의의 유형일 수 있다. 시스템 메모리(906)는 운영 체제(920), 하나 이상의 애플리케이션(922), 및 프로그램 데이터(924)를 포함할 수 있다.
컴퓨팅 장치(900)는 추가적인 특징 또는 기능, 및 기본 구성(902)과 임의의 요구되는 장치와 인터페이스 간 통신을 용이하게 하기 위한 추가적인 인터페이스를 가질 수 있다. 예를 들면, 버스/인터페이스 컨트롤러(930)는 저장 인터페이스 버스(934)를 통한 기본 구성(902)과 하나 이상의 데이터 저장 장치(932) 간의 통신을 용이하게 하는데 사용될 수 있다. 데이터 저장 장치(932)는 분리형 저장 장치(936), 비분리형 저장 장치(938), 또는 그들의 조합일 수 있다. 분리형 저장 장치 및 비분리형 저장 장치의 예로는, 몇 가지 말하자면, 플렉서블 디스크 드라이브 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다기능 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(solid state drive; SSD), 및 테이프 드라이브가 포함된다. 예시적인 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성의, 분리형 및 비분리형 매체를 포함할 수 있다.
시스템 메모리(906), 분리형 저장 장치(936) 및 비분리형 저장 장치(938)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 장치(900)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되는 것은 아니다. 그러한 임의의 컴퓨터 저장 매체는 컴퓨팅 장치(900)의 일부일 수 있다.
컴퓨팅 장치(900)는 버스/인터페이스 컨트롤러(930)를 통한 다양한 인터페이스 장치(예를 들면, 출력 장치(942), 주변 인터페이스(944) 및 통신 장치(946))로부터 기본 구성(902)으로의 통신을 용이하게 하기 위한 인터페이스 버스(940)도 포함할 수 있다. 예시적인 출력 장치(942)는 그래픽 처리 유닛(948) 및 오디오 처리 유닛(950)을 포함하며, 이는 하나 이상의 A/V 포트(952)를 통해 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(944)는 직렬 인터페이스 컨트롤러(954) 또는 병렬 인터페이스 컨트롤러(956)를 포함하며, 이는 하나 이상의 I/O 포트(958)를 통해 입력 장치(예를 들면, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 다른 주변 장치(예를 들면, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(946)는 네트워크 컨트롤러(960)를 포함하며, 이는 하나 이상의 통신 포트(964)를 통해 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(962)와의 통신을 용이하게 하도록 배치될 수 있다.
네트워크 통신 링크는 통신 매체의 일 예시일 수 있다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘 같은 변조된 데이터 신호 내의 다른 데이터에 의해 구현될 수 있고, 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호"는 신호 내에 정보를 인코딩하기 위한 방식으로 설정되거나 변경된 특성 중 하나 이상을 갖는 신호일 수 있다. 제한적인지 않은 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음파, 무선 주파수(RF), 마이크로웨이브, 적외선(IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다. 여기서 사용되는 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 둘 다를 포함할 수 있다.
컴퓨팅 장치(900)는, 휴대 전화, PDA(personal data assistant), 개인용 미디어 플레이어 장치, 무선 웹-워치(web-watch) 장치, 개인용 헤드셋 장치, 특수 용도 장치, 또는 위 기능 중 임의의 것을 포함하는 하이브리드 장치 같은 소형 폼 팩터(small-form factor)의 휴대용(또는 모바일) 전자 장치의 일부로서 구현될 수 있다. 컴퓨팅 장치(900)는 또한 랩톱 컴퓨터 및 랩톱이 아닌 컴퓨터 구성을 모두 포함하는 개인용 컴퓨터로서 구현될 수 있다.
본 개시는 다양한 태양의 예시로서 의도된 본 출원에 기술된 특정 실시예들에 제한되지 않을 것이다. 당업자에게 명백할 바와 같이, 많은 수정과 변형이 그 사상과 범위를 벗어나지 않으면서 이루어질 수 있다. 여기에 열거된 것들에 더하여, 본 개시의 범위 안에서 기능적으로 균등한 방법과 장치가 위의 설명으로부터 당업자에게 명백할 것이다. 그러한 수정과 변형은 첨부된 청구항의 범위에 들어가도록 의도된 것이다. 본 개시는 첨부된 청구항의 용어에 의해서만, 그러한 청구항에 부여된 균등물의 전 범위와 함께, 제한될 것이다. 본 개시가 물론 다양할 수 있는 특정 방법, 시약, 합성 구성 또는 생물학적 시스템에 제한되지 않는 것으로 이해될 것이다. 또한, 여기에서 사용된 용어는 단지 특정 실시예들을 기술하기 위한 목적이고, 제한하는 것으로 의도되지 않음이 이해될 것이다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 실시예들로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). "A, B 또는 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 임의의 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
추가적으로, 개시의 특징 또는 양태가 마쿠시(Markush) 그룹으로 기술되는 경우, 개시는 마쿠시 그룹의 임의의 개별 요소 또는 요소들의 하위 그룹 역시 포함하고 있다는 것을 당업자는 인식할 것이다.
당업자에게 이해될 것과 같이, 임의의 그리고 모든 목적에서든, 기술 내용을 제공하는 것 등에 있어서, 여기에 개시되어 있는 모든 범위는 임의의 그리고 모든 가능한 하위범위와 그러한 하위범위의 조합을 또한 포함한다. 임의의 열거된 범위는 적어도 1/2, 1/3, 1/4, 1/5, 1/10 등으로 나누어지는 동일한 범위를 충분히 설명하고 실시가능하게 하는 것으로서 쉽게 인식될 수 있다. 제한하지 않는 예시로서, 여기서 논의되는 각각의 범위는 하위 1/3, 중앙 1/3, 상위 1/3 등으로 나누어질 수 있다. 또한, "까지", "적어도" 등과 같은 언어는 기재된 수를 포함하며, 전술한 하위범위로 후속적으로 나누어질 수 있는 범위를 지칭함이 당업자에게 이해되어야 한다. 마지막으로, 범위는 각각의 개별 요소를 포함함이 이해되어야 한다. 따라서, 예를 들어, 1-3개의 셀을 갖는 그룹은 1, 2 또는 3개의 셀을 갖는 그룹들을 의미한다. 유사하게, 1-5개의 셀을 갖는 그룹은 1, 2, 3, 4 또는 5개의 셀을 갖는 그룹을 의미한다.
앞서 말한 바로부터, 본 개시의 다양한 실시예가 예시의 목적을 위해 여기에서 기술되었고, 다양한 수정이 본 개시의 사상과 범위를 벗어나지 않으면서 이루어질 수 있음이 이해될 것이다. 따라서, 여기에서 개시된 다양한 실시예는 제한하려고 의도된 것이 아니며, 진정한 범위와 사상은 이하 청구범위에서 나타난다.

Claims (51)

  1. 서버의 제어 하에서 수행되는 방법으로서,
    단말 장치(end device)로부터, 로드 분배(load distribution)에 관한 정보를 수신하는 단계; 및
    상기 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 상기 서버와 상기 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 분배된 프로세싱 로드는 그래픽 프로세스(graphical process)를 포함하는 것인, 방법.
  3. 제2항에 있어서,
    상기 서버와 상기 단말 장치는 중앙 처리 유닛(central processing unit; CPU) 및 그래픽 처리 유닛(graphics processing unit; GPU) 중 적어도 하나를 가지는 것인, 방법.
  4. 제1항에 있어서,
    상기 로드 분배에 관한 정보는 상기 서버와 상기 단말 장치 사이의 네트워크의 상태, 상기 단말 장치의 배터리 상태, 상기 서버의 용량, 상기 단말 장치의 용량, 상기 네트워크의 비용 정보 및 상기 단말 장치를 통해 제출된 사용자 선호도 중 적어도 하나를 포함하는 것인, 방법.
  5. 제4항에 있어서,
    상기 서버의 용량은 상기 서버에 연결된 단말 장치의 수와 연관되는 것인, 방법.
  6. 제1항에 있어서,
    상기 로드 분배에 관한 정보를 수신하는 상기 단계에 앞서 상기 단말 장치로부터 상기 로드 분배에 관한 정보를 요청하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 요청하는 단계는 주기적으로 수행되는 것인, 방법.
  8. 제1항에 있어서,
    상기 분배된 프로세싱 로드의 적어도 하나의 프로세스를 처리하는 단계; 및
    상기 분배된 프로세싱 로드의 적어도 하나의 다른 프로세스를 처리하라는 적어도 하나의 명령어를 상기 단말 장치에게 제공하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 적어도 하나의 프로세스 및 상기 적어도 하나의 다른 프로세스 각각은 그래픽 오브젝트(graphical object)와 연관되는 것인, 방법.
  10. 제9항에 있어서,
    상기 적어도 하나의 프로세스를 처리하는 단계 및 상기 적어도 하나의 다른 프로세스를 처리하는 단계는 상기 그래픽 오브젝트를 렌더링하는 단계를 포함하는 것이고,
    상기 적어도 하나의 프로세스를 처리하는 단계는 상기 렌더링된 그래픽 오브젝트를 데이터 스트림으로 인코딩하여 상기 단말 장치로 상기 데이터 스트림을 전송하는 단계를 더 포함하는 것인, 방법.
  11. 제8항에 있어서,
    상기 적어도 하나의 프로세스 각각은 비디오 장면(video scene)의 전경 오브젝트(foreground object)와 연관되고, 상기 적어도 하나의 다른 프로세스 각각은 상기 비디오 장면의 배경 오브젝트(background object)와 연관되는 것인, 방법.
  12. 제8항에 있어서,
    상기 적어도 하나의 프로세스 각각은 비디오 장면의 배경 오브젝트와 연관되고, 상기 적어도 하나의 다른 프로세스 각각은 상기 비디오 장면의 전경 오브젝트와 연관되는 것인, 방법.
  13. 서버의 제어 하에서 수행되는 방법으로서,
    제1 프로세스 그룹의 적어도 하나의 프레임을 처리하는 단계; 및
    제2 프로세스 그룹의 적어도 하나의 프레임을 처리하라는 적어도 하나의 명령어를 단말 장치로 제공하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 제1 프로세스 그룹은 비디오 데이터의 적어도 하나의 짝수 프레임(odd frame)을 포함하고, 상기 제2 프로세스 그룹은 상기 비디오 데이터의 적어도 하나의 홀수 프레임(even frame)을 포함하는 것인, 방법.
  15. 제14항에 있어서,
    상기 적어도 하나의 홀수 프레임은 제1 프레임을 포함하고 상기 적어도 하나의 짝수 프레임은 제2 프레임을 포함하는 것이고,
    상기 처리하는 단계는 상기 제1 프레임 및 상기 제2 프레임의 주기 동안 상기 제1 프레임을 렌더링하여 상기 렌더링된 제1 프레임을 전송하는 단계를 포함하는 것인, 방법.
  16. 제15항에 있어서,
    상기 적어도 하나의 홀수 프레임은 제3 프레임을 더 포함하는 것이고,
    상기 제공하는 단계는 상기 제2 프레임 및 상기 제3 프레임의 주기 동안 상기 제2 프레임을 렌더링하라는 명령어를 상기 단말 장치에게 제공하는 단계를 포함하는 것인, 방법.
  17. 제13항에 있어서,
    로드 분배에 관한 정보를 상기 단말 장치로부터 수신하는 단계; 및
    상기 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 상기 제1 프로세스 그룹 및 상기 제2 프로세스 그룹 사이에서 프로세싱 로드를 동적으로 분배하는 단계
    를 더 포함하는 방법.
  18. 제17항에 있어서,
    상기 분배된 프로세싱 로드는 그래픽 프로세스를 포함하는 것인, 방법.
  19. 제17항에 있어서,
    상기 로드 분배에 관한 정보는 상기 서버와 상기 단말 장치 사이의 네트워크의 상태, 상기 단말 장치의 배터리 상태, 상기 서버의 용량, 상기 단말 장치의 용량, 상기 네트워크의 비용 정보 및 상기 단말 장치를 통해 제출된 사용자 선호도 중 적어도 하나를 포함하는 것인, 방법.
  20. 제13항에 있어서,
    상기 서버는 상기 제1 프로세스 그룹의 상기 적어도 하나의 프레임을 처리하는 제1 처리 유닛을 포함하는 것이고,
    상기 단말 장치는 상기 제2 프로세스 그룹의 상기 적어도 하나의 프레임을 처리하는 제2 처리 유닛을 포함하는 것인, 방법.
  21. 제20항에 있어서,
    상기 제1 프로세스 그룹의 상기 적어도 하나의 프레임은 독립적인 프레임(independent frame)을 포함하는 것이고,
    상기 제2 프로세스 그룹의 상기 적어도 하나의 프레임은 의존적인 프레임(dependent frame)을 포함하는 것인, 방법.
  22. 제21항에 있어서,
    상기 독립적인 프레임은 인트라코딩된 프레임(intracoded frame)(I 프레임)을 포함하고, 상기 의존적인 프레임은 예측된 프레임(predicted frame)(P 프레임) 및 양방향성 프레임(bidirectional frame)(B 프레임) 중 적어도 하나를 포함하는 것인, 방법.
  23. 제20항에 있어서,
    상기 제1 프로세스 그룹의 상기 적어도 하나의 프레임은 의존적인 프레임을 포함하는 것이고,
    상기 제2 프로세스 그룹의 상기 적어도 하나의 프레임은 독립적인 프레임을 포함하는 것인, 방법.
  24. 제23항에 있어서,
    상기 독립적인 프레임은 인트라코딩된 프레임(I 프레임)을 포함하고, 상기 의존적인 프레임은 예측된 프레임(P 프레임) 및 양방향성 프레임(B 프레임) 중 적어도 하나를 포함하는 것인, 방법.
  25. 제20항에 있어서,
    상기 제1 처리 유닛 및 상기 제2 처리 유닛에 적어도 부분적으로 기초하여 상기 제1 프로세스 그룹 및 상기 제2 프로세스 그룹 사이에서 프로세스 로드를 동적으로 분배하는 단계를 더 포함하는 방법.
  26. 제20항에 있어서,
    상기 서버는 상기 제1 프로세스 그룹의 적어도 하나의 다른 프레임을 처리하는 상기 제2 처리 유닛을 더 포함하는 것인, 방법.
  27. 제20항에 있어서,
    상기 단말 장치는 상기 제2 프로세스 그룹의 적어도 하나의 다른 프레임을 처리하는 상기 제1 처리 유닛을 더 포함하는 것인, 방법.
  28. 서버로서,
    로드 분배에 관한 정보를 획득하도록 구성되는 정보 획득 유닛; 및
    상기 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 상기 서버와 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하도록 구성되는 결정 유닛
    을 포함하는 서버.
  29. 제28항에 있어서,
    상기 동적으로 분배된 프로세싱 로드의 적어도 일부를 처리하도록 구성되는 그래픽 처리 유닛(GPU)을 더 포함하는 서버.
  30. 제29항에 있어서,
    상기 동적으로 분배된 프로세싱 로드는 그래픽 오브젝트와 연관된 것인, 서버.
  31. 제30항에 있어서,
    상기 그래픽 처리 유닛은 상기 상기 그래픽 오브젝트를 렌더링하도록 구성되는 렌더링 유닛을 포함하는 것인, 서버.
  32. 제31항에 있어서,
    상기 그래픽 처리 유닛은,
    상기 렌더링된 그래픽 오브젝트를 데이터스트림으로 인코딩하도록 구성되는 인코딩 유닛; 및
    상기 데이터 스트림을 상기 단말 장치로 전송하도록 구성되는 전송 유닛을 포함하는 것인, 서버.
  33. 제29항에 있어서,
    상기 단말 장치에게 상기 동적으로 분배된 프로세싱 로드의 적어도 다른 일부를 처리하라고 명령하도록 구성되는 명령 유닛
    을 더 포함하는 서버.
  34. 제28항에 있어서,
    상기 정보 획득 유닛은 상기 로드 분배에 관한 정보를 주기적으로 획득하도록 더 구성되는 것인, 서버.
  35. 제35항에 있어서,
    상기 정보 획득 유닛은 상기 단말 장치로부터 상기 로드 분배에 관한 정보를 수신하도록 더 구성되는 것인, 서버.
  36. 제28항에 있어서,
    상기 로드 분배에 관한 정보는 상기 서버와 상기 단말 장치 사이의 네트워크의 상태, 상기 단말 장치의 배터리 상태, 상기 서버의 용량, 상기 단말 장치의 용량, 상기 네트워크의 비용 정보 및 상기 단말 장치를 통해 제출된 사용자 선호도 중 적어도 하나를 포함하는 것인, 서버.
  37. 제36항에 있어서,
    상기 서버의 상기 용량은 상기 서버에 연결된 단말 장치의 수와 연관된 것인, 서버.
  38. 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령어는, 실행에 응답하여, 서버로 하여금,
    단말 장치로부터, 로드 분배에 관한 정보를 수신하는 것; 및
    상기 로드 분배에 관한 정보에 적어도 부분적으로 기초하여 상기 서버와 상기 단말 장치 사이에서 프로세싱 로드를 동적으로 분배하는 것
    을 포함하는 동작을 수행하게 하는 것인, 컴퓨터 판독가능 저장 매체.
  39. 제38항에 있어서,
    상기 로드 분배에 관한 정보는 상기 서버와 상기 단말 장치 사이의 네트워크의 상태, 상기 단말 장치의 배터리 상태, 상기 서버의 용량, 상기 단말 장치의 용량, 상기 네트워크의 비용 정보 및 상기 단말 장치를 통해 제출된 사용자 선호도 중 적어도 하나를 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  40. 제38항에 있어서,
    상기 동작은,
    상기 분배된 프로세싱 로드의 적어도 하나의 프로세스를 처리하는 것; 및
    상기 분배된 프로세싱 로드의 적어도 하나의 다른 프로세스를 처리하라는 적어도 하나의 명령어를 상기 단말 장치에게 제공하는 것을 더 포함하는 것
    을 더 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  41. 제40항에 있어서,
    상기 적어도 하나의 프로세스 및 상기 적어도 하나의 다른 프로세스 각각은 그래픽 오브젝트와 연관되는 것인, 컴퓨터 판독가능 저장 매체.
  42. 제41항에 있어서,
    상기 적어도 하나의 프로세스를 처리하는 것 및 상기 적어도 하나의 다른 프로세스를 처리하는 것은 상기 그래픽 오브젝트를 렌더링하는 것를 포함하는 것이고,
    상기 적어도 하나의 프로세스를 처리하는 것은 상기 렌더링된 그래픽 오브젝트를 데이터 스트림으로 인코딩하여 상기 단말 장치로 상기 데이터 스트림을 전송하는 것을 더 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  43. 제41항에 있어서,
    상기 적어도 하나의 프로세스 각각은 비디오 장면의 전경 오브젝트와 연관되고, 상기 적어도 하나의 다른 프로세스 각각은 상기 비디오 장면의 배경 오브젝트와 연관되는 것인, 컴퓨터 판독가능 저장 매체.
  44. 제41항에 있어서,
    상기 적어도 하나의 프로세스 각각은 비디오 장면의 배경 오브젝트와 연관되고, 상기 적어도 하나의 다른 프로세스 각각은 상기 비디오 장면의 전경 오브젝트와 연관되는 것인, 컴퓨터 판독가능 저장 매체.
  45. 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 저장 매체로서, 상기 명령어는, 실행에 응답하여, 서버로 하여금,
    제1 프로세스 그룹의 적어도 하나의 프레임을 처리하는 것; 및
    제2 프로세스 그룹의 적어도 하나의 프레임을 처리하라는 적어도 하나의 명령어를 단말 장치로 제공하는 것
    을 포함하는 동작을 수행하게 하는 것인, 컴퓨터 판독가능 저장 매체.
  46. 제45항에 있어서,
    상기 제1 프로세스 그룹은 비디오 데이터의 적어도 하나의 짝수 프레임을 포함하고, 상기 제2 프로세스 그룹은 상기 비디오 데이터의 적어도 하나의 홀수 프레임을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  47. 제46항에 있어서,
    상기 적어도 하나의 홀수 프레임은 제1 프레임을 포함하고 상기 적어도 하나의 짝수 프레임은 제2 프레임을 포함하는 것이고,
    상기 처리하는 것은 상기 제1 프레임 및 상기 제2 프레임의 주기 동안 상기 제1 프레임을 렌더링하여 상기 렌더링된 제1 프레임을 전송하는 것을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  48. 제47항에 있어서,
    상기 적어도 하나의 홀수 프레임은 제3 프레임을 더 포함하는 것이고,
    상기 제공하는 것은 상기 제2 프레임 및 상기 제3 프레임의 주기 동안 상기 제2 프레임을 렌더링하라는 명령어를 상기 단말 장치에게 제공하는 것을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  49. 제45항에 있어서,
    상기 서버는 상기 제1 프로세스 그룹의 상기 적어도 하나의 프레임을 처리하는 제1 처리 유닛을 포함하는 것이고,
    상기 단말 장치는 상기 제2 프로세스 그룹의 상기 적어도 하나의 프레임을 처리하는 제2 처리 유닛을 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  50. 제49항에 있어서,
    상기 서버는 상기 제1 프로세스 그룹의 적어도 하나의 다른 프레임을 처리하는 상기 제2 처리 유닛을 더 포함하는 것인, 컴퓨터 판독가능 저장 매체.
  51. 제49항에 있어서,
    상기 단말 장치는 상기 제2 프로세스 그룹의 적어도 하나의 다른 프레임을 처리하는 상기 제1 처리 유닛을 더 포함하는 것인, 컴퓨터 판독가능 저장 매체.
KR1020147031051A 2012-04-09 2012-04-09 프로세싱 로드 분배 KR101609812B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/032740 WO2013154522A2 (en) 2012-04-09 2012-04-09 Processing load distribution

Publications (2)

Publication Number Publication Date
KR20150002766A true KR20150002766A (ko) 2015-01-07
KR101609812B1 KR101609812B1 (ko) 2016-04-20

Family

ID=49293180

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147031051A KR101609812B1 (ko) 2012-04-09 2012-04-09 프로세싱 로드 분배

Country Status (3)

Country Link
US (2) US9294335B2 (ko)
KR (1) KR101609812B1 (ko)
WO (1) WO2013154522A2 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101609812B1 (ko) * 2012-04-09 2016-04-20 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 프로세싱 로드 분배
US9264749B2 (en) 2012-12-13 2016-02-16 Microsoft Technology Licensing, Llc Server GPU assistance for mobile GPU applications
US20140237017A1 (en) * 2013-02-15 2014-08-21 mParallelo Inc. Extending distributed computing systems to legacy programs
US9307021B2 (en) * 2013-02-27 2016-04-05 Comcast Cable Communications, Llc Adaptive media transmission processing
CN107438132A (zh) * 2016-05-25 2017-12-05 上海惠民益贷互联网金融信息服务有限公司 无核化智能手机、云处理终端、及无核化智能手机系统
US10699364B2 (en) * 2017-07-12 2020-06-30 Citrix Systems, Inc. Graphical rendering using multiple graphics processors
US11032345B2 (en) 2018-05-10 2021-06-08 Microsoft Technology Licensing, Llc Client side data stream processing
US11232532B2 (en) * 2018-05-30 2022-01-25 Sony Interactive Entertainment LLC Multi-server cloud virtual reality (VR) streaming
US10924525B2 (en) 2018-10-01 2021-02-16 Microsoft Technology Licensing, Llc Inducing higher input latency in multiplayer programs
US11711571B2 (en) * 2020-03-06 2023-07-25 Advanced Micro Devices, Inc. Client-side offload of graphics effects processing
US11836212B2 (en) * 2021-12-03 2023-12-05 Atlassian Pty Ltd. Systems and methods for rendering interactive web pages

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
JPH09179820A (ja) * 1995-12-26 1997-07-11 Mitsubishi Electric Corp 負荷分散方式及び方法
US6003065A (en) * 1997-04-24 1999-12-14 Sun Microsystems, Inc. Method and system for distributed processing of applications on host and peripheral devices
US6397244B1 (en) * 1998-02-05 2002-05-28 Hitachi, Ltd. Distributed data processing system and error analysis information saving method appropriate therefor
TW434636B (en) 1998-07-13 2001-05-16 Applied Komatsu Technology Inc RF matching network with distributed outputs
US6912532B2 (en) * 2000-05-22 2005-06-28 Benjamin H. Andersen Multi-level multiplexor system for networked browser
WO2002054708A2 (en) * 2001-01-02 2002-07-11 Tranz-Send Broadcasting Network, Inc. System and method for providing load balanced secure media content and data delivery in a distributed computed environment
JP4512964B2 (ja) * 2001-02-13 2010-07-28 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US20030154271A1 (en) * 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US7624047B1 (en) * 2002-07-31 2009-11-24 Amazon Technologies, Inc. Managing server load by varying responses to requests for dynamically-generated web pages
US7149826B2 (en) * 2002-08-05 2006-12-12 Hewlett-Packard Development Company, L.P. Peripheral device output job routing
US20110122063A1 (en) * 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
US8366552B2 (en) * 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
CN100416542C (zh) * 2003-05-26 2008-09-03 株式会社东芝 负载分配系统和方法
US20080211816A1 (en) * 2003-07-15 2008-09-04 Alienware Labs. Corp. Multiple parallel processor computer graphics system
US7119808B2 (en) * 2003-07-15 2006-10-10 Alienware Labs Corp. Multiple parallel processor computer graphics system
US7395126B2 (en) * 2003-07-29 2008-07-01 Far Touch, Inc. Remote control of wireless electromechanical device using a web browser
JP2005062927A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 負荷制御方法および装置並びにその処理プログラム
JP4383216B2 (ja) * 2004-03-24 2009-12-16 富士通株式会社 通信端末
US8266406B2 (en) * 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
US20060123081A1 (en) * 2004-12-03 2006-06-08 Motorola, Inc. Method and system for seamless portability by profile sharing
JP4413965B2 (ja) * 2005-03-17 2010-02-10 富士通株式会社 負荷分散用通信装置及び負荷分散管理装置
US7747983B2 (en) * 2005-04-18 2010-06-29 Research In Motion Limited System and method for generating a web service definition and database schema from wireless application definition
EP1768383B1 (en) 2005-07-15 2016-02-24 Barco N.V. Network displays and method of their operation
JP4616159B2 (ja) * 2005-11-30 2011-01-19 富士通株式会社 クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム
US7647329B1 (en) * 2005-12-29 2010-01-12 Amazon Technologies, Inc. Keymap service architecture for a distributed storage system
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
CN101026615B (zh) * 2006-02-18 2011-09-14 华为技术有限公司 一种基于ims的流媒体网络系统
US8375086B2 (en) * 2007-05-31 2013-02-12 International Business Machines Corporation Shared state manager and system and method for collaboration
EP2223541A4 (en) * 2007-12-17 2012-08-15 Play Megaphone SYSTEM AND METHOD FOR INTERACTION MANAGEMENT BETWEEN A USER AND AN INTERACTIVE SYSTEM
JP5326308B2 (ja) * 2008-03-13 2013-10-30 日本電気株式会社 コンピュータリンク方法及びシステム
US8375357B2 (en) * 2009-05-18 2013-02-12 National Instruments Corporation Graphical data flow web application repository with version control
US8489774B2 (en) * 2009-05-27 2013-07-16 Spot411 Technologies, Inc. Synchronized delivery of interactive content
JP5512215B2 (ja) * 2009-09-30 2014-06-04 株式会社日立システムズ ジョブ処理システム及びその方法、そのプログラム
EP2502153A4 (en) 2009-11-16 2015-12-16 Citrix Systems Inc SYSTEMS AND METHODS FOR SELECTIVE IMPLEMENTATION OF PROGRESSIVE DISPLAY TECHNIQUES
JP5660049B2 (ja) * 2009-12-17 2015-01-28 日本電気株式会社 負荷分散システム、負荷分散方法、負荷分散システムを構成する装置およびプログラム
US9998749B2 (en) 2010-10-19 2018-06-12 Otoy, Inc. Composite video streaming using stateless compression
US9104497B2 (en) * 2012-11-07 2015-08-11 Yahoo! Inc. Method and system for work load balancing
US9195684B2 (en) * 2012-03-02 2015-11-24 Cleversafe, Inc. Redundant task execution in a distributed storage and task network
KR101609812B1 (ko) * 2012-04-09 2016-04-20 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 프로세싱 로드 분배
US9137165B2 (en) * 2013-06-17 2015-09-15 Telefonaktiebolaget L M Ericsson (Publ) Methods of load balancing using primary and stand-by addresses and related load balancers and servers
US9749148B2 (en) * 2013-07-31 2017-08-29 Citrix Systems, Inc. Systems and methods for load balancing non-IP devices
US9160791B2 (en) * 2013-08-13 2015-10-13 International Business Machines Corporation Managing connection failover in a load balancer

Also Published As

Publication number Publication date
WO2013154522A3 (en) 2014-05-08
US9961146B2 (en) 2018-05-01
WO2013154522A2 (en) 2013-10-17
US20130268573A1 (en) 2013-10-10
KR101609812B1 (ko) 2016-04-20
US20160105495A1 (en) 2016-04-14
US9294335B2 (en) 2016-03-22

Similar Documents

Publication Publication Date Title
KR101609812B1 (ko) 프로세싱 로드 분배
KR101595075B1 (ko) 클라우드 기반 게임 시스템에서의 부하 균형
US9455931B2 (en) Load balancing between processors
US8887169B2 (en) Task assignment in cloud computing environment
US9158593B2 (en) Load balancing scheme
US9906587B2 (en) Data transmission in cloud-based system
WO2012131156A1 (en) Method and apparatus for low-power browsing
US8885570B2 (en) Schemes for providing private wireless network
US9047700B2 (en) Virtual and augmented reality
US20120229518A1 (en) Output of video content
US9358467B2 (en) Game load management
CN109951737B (zh) 视频处理方法、装置、电子设备和计算机可读存储介质
WO2014193383A1 (en) Schemes for providing wireless communication
US20170041438A1 (en) Online data management
WO2013001151A1 (en) Methods, apparatuses and computer program products for improving network transmission by reducing memory copy overhead by providing direct access to data
US10412742B2 (en) Schemes for providing wireless network
US20130246553A1 (en) Data migration
US10021211B2 (en) Estimation of missed information
KR20160084214A (ko) 클라우드 스트리밍 서비스 시스템, 선택적 스트리밍 파이프라인 방식에 기반한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4