WO2013180348A1 - 화면 가상화 기반 애플리케이션 구동 시스템 및 방법 - Google Patents
화면 가상화 기반 애플리케이션 구동 시스템 및 방법 Download PDFInfo
- Publication number
- WO2013180348A1 WO2013180348A1 PCT/KR2012/009004 KR2012009004W WO2013180348A1 WO 2013180348 A1 WO2013180348 A1 WO 2013180348A1 KR 2012009004 W KR2012009004 W KR 2012009004W WO 2013180348 A1 WO2013180348 A1 WO 2013180348A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- encoder
- mode
- rate
- connection rate
- application
- Prior art date
Links
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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File 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/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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
Definitions
- the number of video encoders that can be driven is the most influential on the number of users that can be processed in the service providing apparatus.
- the encoding system that can encode multiple videos by utilizing the parallel computation power of GPU, how to use H / W video encoder in service providing device, and how to use optimized CPU-based s / w video encoder Although used, the maximum possible number of encodings in each system is limited.
- a method for running a screen virtualization-based application in the service providing device (a) when the application driving request signal is received from the user terminal, obtaining a connection rate using the current number of accessors, (b) determining whether the connection rate is out of a predetermined range, (c) adjusting the maximum number of accessible connections by adjusting a frame rate of a mode B encoder when the connection rate is out of the range, ( and d) encoding a driving screen of the driving requested application through a mode B encoder or a mode A encoder and transmitting the encoded screen to the user terminal.
- FIG. 5 is a diagram illustrating a method of driving a screen virtualization based application according to the present invention.
- the presentation virtualization is a service that runs an application in the service providing apparatus 100, encodes an application driving screen and audio according to the driving, and provides the application to the user terminal 200.
- the user terminal 200 accesses the service providing apparatus 100 to request driving of an application selected by a user, and decodes and outputs an application driving screen and audio from the service providing apparatus 100.
- connection rate K is greater than or equal to the second threshold
- the maximum connection capacity is changed from Equation 2 to Equation 4, and the final maximum accessibility is increased as shown in Equation 4. .
- connection rate is less than or equal to the first threshold, it means that the number of current users is less than the preset threshold number of users. Therefore, the encoding control unit 150 needs to reduce the maximum number of available connections to increase the compression rate.
- the encoder mode allocator 340 allocates the returned encoder to the mode B encoder when the connection rate is greater than or equal to a predetermined reference value K2 with respect to the encoder returned after use, and returns when the encoder is not greater than or equal to the reference value. Assign the previous encoder mode as it is.
- the frame rate of the mode B encoder is determined by equations (2) and (3) when the connection rate (K) is greater than or equal to the second threshold value. If it is less than the first threshold, it is determined by equations (3) and (5).
- the device for providing a service determines whether the obtained connection rate is within a preset range (S406).
- the range may be K1 ⁇ K ⁇ K3.
- the service providing apparatus extracts and drives the corresponding application from the provided application database (S408).
- the user terminal decodes and outputs the application driving screen (S414).
- FIG. 6 is a diagram illustrating a method for adjusting a maximum number of accessible services by a device for providing a service according to the present invention.
- the initial mode A encoder may be Na0
- the initial mode B encoder may be Nb0
- the total number N of encoders may be (Na0 + Nb0).
- the service providing apparatus may adjust the maximum number of accessible connections.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
본 발명은 화면 가상화 기반 애플리케이션 구동 시스템 및 방법에 관한 것으로서, 사용자 단말과의 통신을 위한 통신부, 애플리케이션들이 저장된 애플리케이션 데이터베이스, 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더, 상기 통신부를 통해 사용자 단말이 접속된 경우, 복수의 애플리케이션에 대한 구동버튼들이 상기 사용자 단말에 표시되도록 제어하는 접속 제어부, 상기 사용자 단말로부터 애플리케이션 구동 요청 신호가 수신된 경우, 현재 접속자 수를 이용하여 접속률을 구하고, 상기 구해진 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트(frame rate) 조절을 통해 최대 접속 가능 수를 조절한 후, 상기 애플리케이션 데이터베이스로부터 해당 애플리케이션을 추출 및 구동하고, 그 애플리케이션 구동 화면을 모드 A 인코더 또는 모드 B 인코더를 통해 인코딩하도록 제어하는 인코딩 제어부, 상기 인코딩된 애플리케이션 구동 화면을 상기 사용자 단말로 전송하는 애플리케이션 구동 화면 제공부를 포함한다.
Description
본 발명은 화면 가상화 기반 애플리케이션 구동 시스템 및 방법에 관한 것으로, 더욱 상세하게는 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더가 구비된 서비스 제공 장치가 사용자 단말로부터 애플리케이션 구동 요청 수신 시, 현재 접속자 수를 이용하여 접속률을 구하고, 상기 접속률이 기 설정된 범위범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트(frame rate) 조절을 통해 최대 접속 가능 수를 조절한 후, 상기 구동 요청된 애플리케이션의 구동 화면을 인코딩하여 상기 사용자 단말로 전송하는 화면 가상화 기반 애플리케이션 구동 시스템 및 방법에 관한 것이다.
최근에 클라우드(Cloud) 기반 서비스가 활성화됨에 따라, 서비스나 애플리케이션(application)이 클라우드 장치에서 구동되고 그 결과를 단말을 통해 서비스하는 기술이 요구되고 있다. 특히 서비스 화면과 오디오만을 단말기에서 구동하는 화면 가상화(Presentation Virtualization) 기술이 핵심기술로 요구된다.
화면 가상화 기술은 서비스 제공 장치에서 애플리케이션을 구동하고, 애플리케이션 구동 화면을 단말로 전송하여 단말에서는 화면에 대한 rendering 처리와 사용자 입력만을 처리하도록 함으로써 단말의 성능에 관계없이 복잡한 애플리케이션을 구동 가능하도록 하는 기술이다.
또한, 애플리케이션을 서비스 제공 장치에서 구동시키고 구동화면을 video encoding을 통해 압축하여 단말에 전송하고, 단말은 전송된 비디오를 재생하여 마치 자신의 단말에서 애플리케이션이 구동되는 것과 같은 효과를 내는 화면 가상화 기반 N screen 서비스가 각광받고 있다.
이러한 cloud streaming 기반 서비스는 동시에 많은 사용자를 처리해야 하고, 접속하고 있는 사용자 수만큼의 애플리케이션이 서비스 제공 장치에서 구동되고 있어야 하며, 그 화면을 video encoder로 실시간으로 인코딩할 수 있어야 한다.
이때 서비스 제공 장치에서 처리할 수 있는 사용자 수에 가장 큰 영향을 미치는 것이 구동할 수 있는 video encoder의 개수이다. 현재 GPU의 parallel computation 능력을 활용하여 다수의 video를 인코딩할 수 있는 encoding system과 H/W video 인코더를 서비스 제공 장치에서 활용하는 방법, 최적화된 CPU 기반의 s/w video 인코더를 활용하는 방법 등이 사용되고 있으나, 각 시스템에서 최대로 가능한 인코딩 수는 제한되어 있다.
본 발명은 상기한 문제점을 해결하기 위하여 안출한 것으로, 복수 개의 영상(video) 인코더가 구비된 서비스 제공 장치에서, 일부 인코더를 all intra 모드로 인코딩하도록 설정하고, all intra 모드 인코더의 수와 all intra 모드 인코더의 프레임 레이트(frame rate)를 조절하여 서비스 제공 장치가 처리해야 할 영상 인코딩(video encoding) 수를 scalable하게 조절할 수 있는 화면 가상화 기반 애플리케이션 구동 시스템 및 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 하나의 인코더를 여러 사용자가 공유하도록 함으로써 서비스 제공 장치에서 사용할 수 있는 인코더 수를 증가시킬 수 있는 화면 가상화 기반 애플리케이션 구동 시스템 및 방법을 제공하는데 있다.
상기 목적들을 달성하기 위하여 본 발명의 일 측면에 따르면, 사용자 단말과의 통신을 위한 통신부, 애플리케이션들이 저장된 애플리케이션 데이터베이스, 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더, 상기 통신부를 통해 사용자 단말이 접속된 경우, 복수의 애플리케이션에 대한 구동버튼들이 상기 사용자 단말에 표시되도록 제어하는 접속 제어부, 상기 사용자 단말로부터 애플리케이션 구동 요청 신호가 수신된 경우, 현재 접속자 수를 이용하여 접속률을 구하고, 상기 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트(frame rate) 조절을 통해 최대 접속 가능 수를 조절한 후, 상기 애플리케이션 데이터베이스로부터 해당 애플리케이션을 추출하여 구동시키고, 그 애플리케이션 구동 화면을 모드 A 인코더 또는 모드 B 인코더를 통해 인코딩하도록 제어하는 인코딩 제어부, 상기 인코딩된 애플리케이션 구동 화면을 상기 사용자 단말로 전송하는 애플리케이션 구동 화면 제공부를 포함하는 서비스 제공 장치가 제공된다.
상기 인코딩 제어부는 하기의 수학식을 이용하여 접속률을 구할 수 있다.
[수학식]
접속률(K) =현재 접속자 수/최대 접속 가능 수(capacity)
또한, 상기 인코딩 제어부는 상기 접속률이 제2 임계치 이상인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 감소시켜 최대 접속 가능 수(capacity)를 증가시키고, 상기 접속률이 제1 임계치 이하인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 증가시켜 최대 접속 가능 수(capacity)를 감소시킬 수 있다.
또한, 상기 인코딩 제어부는 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당할 수 있다.
본 발명의 다른 측면에 따르면, 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더, 현재 접속자 수, 모드 A 인코더 수, 모드 B 인코더 수 중 적어도 하나를 포함하는 부하 정보를 수집하는 부하 정보 수집부, 상기 수집된 현재 접속자 수를 이용하여 접속률을 구하고, 상기 구해진 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수를 조절하는 인코딩 용량 조절부, 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 인코더 모드 할당부를 포함하는 인코딩 장치가 제공된다.
상기 인코딩 용량 조절부는 하기의 수학식을 이용하여 접속률을 구할 수 있다.
[수학식]
접속률(K) =현재 접속자 수/최대 접속 가능 수(capacity)
상기 임계 범위는 제1임계치 초과 제2 임계치 미만이고, 상기 인코딩 용량 조절부는 상기 접속률이 상기 범위를 벗어나는 경우, 하기의 수학식을 이용하여 모드 B 인코더의 프레임 레이트(frame rate)를 감소시키거나 증가시킬 수 있다.
[수학식]
Fbt+1=min{max{ INT[Fa/( (Lt+1-Nat)/(N-Nat) + 0.5)], 1 }, Fa}
또한, 상기 인코딩 용량 조절부는 상기 구해진 모드 B 인코더의 프레임 레이트를 이용한 하기의 수학식을 이용하여 최대 접속 가능 수를 증가 또는 감소시킬 수 있다.
[수학식]
Lt+1 = Nat + (N-Nat)*Fa/Fbt+1
상기 인코더 모드 할당부는, 접속률이 미리 정해진 기준치 이상인 경우 상기 반환된 인코더를 모드 B 인코더로 할당하고, 상기 기준치 이상이 아닌 경우 반환 전의 인코더의 모드 그대로 사용할 수 있다.
본 발명의 또 다른 측면에 따르면, 서비스 제공 장치가 화면 가상화 기반 애플리케이션을 구동하는 방법에 있어서, (a) 사용자 단말로부터 애플리케이션 구동 요청 신호가 수신된 경우, 현재 접속자 수를 이용하여 접속률을 구하는 단계, (b) 상기 접속률이 기 설정된 범위를 벗어나는지의 여부를 판단하는 단계, (c) 상기 접속률이 상기 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수를 조절하는 단계, (d) 상기 구동 요청된 애플리케이션의 구동 화면을 모드 B 인코더 또는 모드 A 인코더를 통해 인코딩하여 상기 사용자 단말로 전송하는 단계를 포함하는 화면 가상화 기반 애플리케이션 구동 방법이 제공된다.
상기 (c) 단계는, 상기 접속률이 제2 임계치 이상인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 감소시켜 최대 접속 가능 수(capacity)를 증가시키고, 상기 접속률이 제1 임계치 이하인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 증가시켜 최대 접속 가능 수(capacity)를 감소시킬 수 있다.
상기 화면 가상화 기반 애플리케이션 구동 방법은 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더가 구비된 인코딩 장치가 화면 가상화 기반 애플리케이션을 구동시키기 위해 최대 접속 가능 수를 조절하는 방법에 있어서, 현재 접속자 수, 모드 A 인코더 수, 모드 B인코더 수 중 적어도 하나를 포함하는 부하 정보를 수집하는 단계, 상기 수집된 현재 접속자 수를 이용하여 접속률을 구하는 단계, 상기 접속률이 기 설정된 범위를 벗어나는지의 여부를 판단하는 단계, 상기 접속률이 상기 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수를 조절하는 단계를 포함하는 화면 가상화 기반 애플리케이션 구동 방법이 제공된다.
상기 화면 가상화 기반 애플리케이션 구동 방법은 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 단계를 더 포함할 수 있다.
상술한 바와 같이 본 발명에 따르면, 복수 개의 영상(video) 인코더가 구비된 서비스 제공 장치에서, 일부 인코더를 all intra 모드로 인코딩하도록 설정하고, all intra 모드 인코더의 수와 all intra 모드 인코더의 프레임 레이트(frame rate)를 조절하여 서비스 제공 장치가 처리해야 할 영상 인코딩(video encoding) 수를 scalable하게 조절할 수 있다.
또한, 하나의 인코더를 여러 사용자가 공유하도록 함으로써 서비스 제공 장치에서 사용할 수 있는 인코더 수를 증가시킬 수 있다.
또한, 본 발명의 서비스 제공 장치는 처리 용량을 scalable하게 처리할 수 있어, 많은 video encoding을 요청하더라고 처리할 수 있다.
도 1은 본 발명에 따른 화면 가상화 기반 애플리케이션 구동 시스템을 나타낸 도면.
도 2는 본 발명에 따른 서비스 제공 장치의 구성을 개략적으로 나타낸 블럭도.
도 3은 본 발명에 따른 인코딩 장치의 구성을 개략적으로 나타낸 블럭도.
도 4는 본 발명에 따른 사용자 단말의 구성을 개략적으로 나타낸 블럭도.
도 5는 본 발명에 따른 화면 가상화 기반 애플리케이션 구동 방법을 나타낸 도면.
도 6은 본 발명에 따른 서비스 제공 장치가 최대 접속 가능 수를 조절하는 방법을 나타낸 도면.
도 1은 본 발명에 따른 화면 가상화 기반 애플리케이션 구동 시스템을 나타낸 도면이다.
도 1을 참조하면, 화면 가상화 기반 애플리케이션 구동 시스템은 사용자 단말(200)로부터의 애플리케이션 구동 요청에 따라 해당 애플리케이션을 구동하고, 화면 가상화 기술을 이용하여 애플리케이션 구동 화면을 상기 사용자 단말(200)에 제공하는 서비스 제공 장치(100)를 포함한다.
상기 화면 가상화(Presentation Virtualization)는 서비스 제공 장치(100)에서 애플리케이션을 구동하고, 그 구동에 따른 애플리케이션 구동 화면과 오디오를 인코딩하여 상기 사용자 단말(200)로 제공하는 서비스이다.
상기 사용자 단말(200)은 상기 서비스 제공 장치(100)에 접속하여 사용자에 의해 선택된 애플리케이션의 구동을 요청하고, 상기 서비스 제공 장치(100)로부터의 애플리케이션 구동 화면 및 오디오를 디코딩하여 출력한다.
즉, 상기 사용자 단말(200)은 서비스 제공 장치(100)로부터 다수의 애플리케이션에 대한 각각의 구동버튼을 제공받아 화면상에 디스플레이하고, 다수의 애플리케이션 중 하나가 선택되면, 상기 선택된 애플리케이션의 구동에 따른 애플리케이션 구동 화면을 서비스 제공 장치(100)로부터 수신하여 출력한다. 여기서, 사용자 단말(200)은 애플리케이션의 구동 요청을 입력할 수 있는 입력 기능과, 디지털 미디어를 재생할 수 있는 미디어 재생기능을 구비한 노트북, 이동통신 단말, TV, LCD 모니터, 프로젝션 TV, 빔 프로젝트 장치, 모바일 장치 등을 포함한다.
상기와 같은 사용자 단말(200)에 대한 상세한 설명은 도 4를 참조하기로 한다.
상기 사용자 단말(200)과 서비스 제공 장치(100)는 통신망을 통해 연결되고, 통신망은 근거리 통신망, 유선 통신망, 무선 통신망 등을 포함하는 것으로서, 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access), 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 다양한 통신 방식을 이용한다.
상기 서비스 제공 장치(100)는 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더가 구비되어, 상기 사용자 단말(200)로부터 애플리케이션 구동 요청이 수신된 경우, 현재 접속자 수를 이용하여 접속률을 구하고, 상기 구해진 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트(frame rate) 조절을 통해 인코더로 인코딩할 수 있는 최대 접속 가능 수(capacity)를 조절한 후, 상기 구동 요청된 애플리케이션의 구동 화면을 인코딩하여 상기 사용자 단말(200)로 전송한다. 여기서, 상기 최대 접속 가능 수(capacity)는 인코딩할 수 있는 영상의 수, 장치 최대 접속자 수, 인코딩 처리 용량 등과 같은 의미일 수 있다.
이때, 상기 서비스 제공 장치(100)는 모드 A 인코더들과 모드 B 인코더들 중에서 애플리케이션 구동화면을 인코딩할 여유가 있는 인코더를 임의로 선택하여 인코딩할 수 있다.
또한, 서비스 제공 장치(100)는 다수의 애플리케이션에 대한 각각의 구동버튼을 상기 사용자 단말(200)로 전송하고, 사용자 단말(200)로부터 구동 요청된 애플리케이션을 구동하여 발생되는 오디오 및 비디오를 인코딩하여 상기 사용자 단말(200)로 전송한다.
또한, 상기 서비스 제공 장치(100)는 오디오 및 비디오로 구성된 멀티미디어 데이터를 재생하거나 편집, 수정, 제어할 수 있는 애플리케이션을 비롯해 다수 개의 애플리케이션을 구비하고, 애플리케이션을 구동하는 장치로서, 데스크탑(Desktop) PC, 노트북(Notebook) PC, 고성능 모바일 단말기 등을 포함한다.
또한, 상기 서비스 제공 장치(100)는 클라우드 컴퓨팅 기반으로 동작될 수 있다.
도 2는 본 발명에 따른 서비스 제공 장치의 구성을 개략적으로 나타낸 블럭도이다.
도 2를 참조하면, 서비스 제공 장치(100)는 사용자 단말과의 통신을 위한 통신부(120), 애플리케이션들이 저장된 애플리케이션 데이터베이스(110), 애플리케이션 구동 화면을 인코딩하는 복수 개의 인코더(140), 접속 제어부(130), 인코딩 제어부(150), 애플리케이션 구동 화면 제공부(160)를 포함한다.
상기 인코더(140)는 intra/inter coding을 모두 사용하는 복수 개의 모드 A 인코더, all intra coding만 수행하는 복수 개의 모드 B 인코더를 포함한다.
상기 모드 A 인코더는 움직임 예측(motion estimation) 및 이전 영상에 대한 부호화 정보를 활용하여 영상을 인코딩하는 인코더로, 이전 영상에 대한 부호화 정보를 필요로 하기 때문에 하나의 인코더를 두 개 이상의 영상을 압축하는 데 공유할 수 없다. 이 문제는 각 영상을 intra picture로 인코딩하여 이전 영상 정보와는 독립적으로 부호화(all intra coding) 함으로써 해결이 가능하다. 상기 모드 B 인코더는 다른 영상을 참조하지 않고 독립적으로 인코딩이 가능한 인코더로서, 모드 B 인코더의 frame rate을 낮추어 한 개의 모드 B 인코더를 여러 사용자가 공유할 수 있다.
intra picture coding만을 사용하여 인코딩을 하면 압축률이 낮아지므로, 인코더(140)는 intra/inter coding을 모두 사용하는 복수 개의 모드 A 인코더, all intra coding만 수행하는 복수 개의 모드 B 인코더로 구성된다.
또한, 상기 인코더(140)는 상기 인코더 제어부(150)의 제어에 의해 애플리케이션 구동 화면을 각각 인코딩한다.
상기 접속 제어부(130)는 상기 통신부(120)를 통해 사용자 단말이 접속된 경우, 상기 사용자 단말에 다수의 애플리케이션에 대한 각각의 구동버튼이 표시되도록 제어한다.
상기 인코딩 제어부(150)는 상기 사용자 단말로부터 애플리케이션 구동 요청 신호가 수신된 경우, 현재 접속자 수를 이용하여 접속률(K)을 구하고, 상기 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수(capacity, 인코딩 가능 수)를 조절한 후, 상기 애플리케이션 데이터베이스로부터 해당 애플리케이션을 추출하여 구동하고, 그 애플리케이션 구동 화면을 모드 A 인코더 또는 모드 B 인코더를 통해 인코딩되도록 제어한다. 여기서, 상기 애플리케이션 구동 요청 신호는 사용자 단말 식별정보, 애플리케이션 식별정보 등을 포함한다. 상기 범위는 제1임계치(K1)<K<제2임계치(K3)일 수 있고, K1, K, K3는 상수 값으로, 예를 들면, K1은 20, K3는 80일 수 있다.
상기 인코딩 제어부(150)는 수학식 1을 이용하여 접속률(K)를 구한다.
그런 다음 상기 인코딩 제어부(150)는 상기 접속률을 임계치들과비교하고, 상기 비교결과 상기 접속률이 제2 임계치 이상인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 감소시켜 최대 접속 가능 수(capacity)를 증가시킨다. 즉, 접속률이 제2 임계치(K3)이상으로 증가하면, 상기 인코딩 제어부(150)는 모드 B 인코더의 프레임 레이트를 감소시켜 한 개의 모드 B 인코더를 여러 사용자가 공유할 수 있도록 최대 접속 가능 수(capacity)를 증가시킨다. 예를 들면, 모드 B 인코더의 frame rate가 절반으로 줄어들면, even/odd로 나누어 두 명이 하나의 인코더를 쓸 수 있고, frame rate가 1/3로 줄어들면 3명이 하나의 인코더를 쓸 수 있다.
상기 접속률이 제2 임계치(K3) 이상인 경우, 인코더(140)는 수학식 2와 같은 최대 접속 가능 수(capacity, Lt+1)를 갖는다.
여기서, 상기 Lt는 현재 최대 접속 가능 수(capacity), K2는 접속률 기준값일 수 있다.
접속률이 제2 임계치 이상이면, 현재 접속자 수가 미리 설정된 임계 접속자수보다 많다는 것을 의미하므로, 상기 인코딩 제어부(150)는 현재 접속자를 모두 수용할 수 있도록 최대 접속 가능 수를 증가시킬 필요가 있다.
상기 인코딩 제어부(150)는 최대 접속 가능 수를 증가시키기 위해 수학식 2에 의해 구해진 최대 접속 가능 수를 수학식 3에 대입하여 모드 B 인코더의 프레임 레이트(Fbt+1)를 구한다.
여기서, INT[a]는 실수값 a와 같거나 작은 정수들 중에서 가장 큰 정수를 return하는 함수, Lt+1는 접속률이 K3이상인 경우의 최대 접속 가능 수(capacity), Nat는 모드 A 인코더 수, Fa는 모드 A 인코더의 프레임 레이트(frame rate), Fbt는 모드 B 인코더의 현재 프레임 레이트일 수 있다.
상기 수학식 3에 의해서 구해진 모드 B 인코더의 프레임 레이트는 감소된 값일 수 있다.
상기와 같이 모드 B 인코드의 프레임 레이트(Fbt+1)가 구해지면, 상기 인코딩 제어부(150)는 상기 구해진 모드 B 인코드의 프레임 레이트(Fbt+1)를 이용한 수학식 4를 이용하여 최종 최대 접속 가능 수(capacity)(최종 Lt+1)를 구한다.
즉, 접속률(K)이 제2 임계치 이상인 경우는 최대 접속 가능 수(capacity)가 수학식 2에서 수학식 4로 변경되어, 최종 최대 접속 가능 수(capaciry)는 수학식 4의 결과와 같이 증가된다.
또한, 상기 인코딩 제어부(150)는 상기 접속률을 상기 임계치들과 비교하고, 비교결과 접속률이 제1 임계치(K1) 이하인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 증가시켜 최대 접속 가능 수(capacity)를 감소시킨다.
즉, 접속률이 제1 임계치(K1) 이하인 경우, 인코더(140)는 수학식 5와 같은 최대 접속 가능 수(capacity, Lt+1)를 갖는다.
접속률이 제1 임계치 이하이면, 현재 접속자 수가 미리 설정된 임계 접속자수보다 적다는 것을 의미하므로, 인코딩 제어부(150)는 압축률을 높이기 위해 최대 접속 가능 수를 감소시킬 필요가 있다.
상기 인코딩 제어부(150)는 최대 접속 가능 수를 감소시키기 위해 수학식 5로 계산한 Lt+1을 수학식 3에 대입하여 모드 B 인코더의 frame rate을 구하고, 이를 기반으로 수학식 4를 이용하여 최종 최대 접속 가능 수(최종 Lt+1)를 구한다.
즉, 접속률(K)이 K1이하인 경우는 최대 접속 가능 수(capacity)가 수학식 5에서 수학식 4로 변경되어 최종 최대 접속 가능 수(capaciry)는 수학식 4와 같은 결과가 된다.
또한, 상기 인코딩 제어부(150)는 접속률이 상기 범위를 벗어나지 않은 경우, 상기 애플리케이션 데이터베이스(110)로부터 해당 애플리케이션을 추출하여 구동시키고, 그 애플리케이션 구동 화면을 모드 A 인코더 또는 모드 B 인코더를 통해 인코딩하도록 제어한다.
또한, 상기 인코딩 제어부(150)는 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당할 수 있다.
상기 애플리케이션 구동 화면 제공부(160)는 인코딩된 애플리케이션 구동 화면을 사용자 단말로 전송한다.
도 3은 본 발명에 따른 인코딩 장치의 구성을 개략적으로 나타낸 블럭도이다.
도 3을 참조하면, 인코딩 장치(300)는 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더(310a, 310b,..,310n, 이하 310이라 칭함), 부하 정보 수집부(320), 인코딩 용량 조절부(330), 인코더 모드 할당부(340)를 포함한다.
상기 인코더(310)에 대한 상세한 설명은 도 2를 참조하기로 한다.
상기 부하 정보 수집부(320)는 현재 접속자 수, 모드 A 인코더 수, 모드 B 인코더 수 등을 포함하는 부하 정보를 실시간으로 수집한다.
상기 인코딩 용량 조절부(330)는 수집된 현재 접속자 수를 이용하여 접속률을 구하고, 구해진 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수(capacity)를 조절한다.
상기 인코딩 용량 조절부(330)는 도 2에 도시된 인코딩 제어부와 그 동작이 동일하므로, 그 상세한 설명은 생략하기로 한다.
상기 인코더 모드 할당부(340)는 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당한다. 즉, 모드 A 인코더 또는 모드 B 인코더로 동작하여 영상의 인코딩이 종료되면, 그 인코더는 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 모드가 변경된다.
다시 말하면, 상기 인코더 모드 할당부(340)는 사용 후 반환된 인코더 관련하여, 접속률이 미리 정해진 기준치(K2) 이상인 경우, 상기 반환된 인코더는 모드 B 인코더로 할당하고, 상기 기준치 이상이 아닌 경우 반환 전의 인코더 모드를 그대로 할당한다. 이때의 모드 B 인코더의 프레임 레이트(frame rate)는 접속률(K)이 제2임계치 이상인 경우 수학식 2, 3으로 결정되고, 제1 임계치 초과 제2 임계치 미만인 경우 현재 모드 B 인코더의 프레임 레이트를 그대로 사용하며, 제1 임계치 이하인 경우, 수학식 3, 5로 결정된다.
도 4는 본 발명에 따른 사용자 단말의 구성을 개략적으로 나타낸 블럭도이다.
도 4를 참조하면, 사용자 단말(200)은 서비스 제공 장치와의 통신을 위한 통신부(210), 출력부(220), 애플리케이션 구동요청부(230), 화면 제어부(240), 디코딩부(250)를 포함한다.
상기 출력부(220)는 상기 통신부(210)를 통해 서비스 제공 장치로부터 제공받은 다수의 애플리케이션에 대한 구동버튼들과 애플리케이션 구동 화면을 출력한다. 여기서, 상기 다수의 애플리케이션에 대한 구동버튼들은 애플리케이션 목록 형태일 수 있다.
상기 화면 제어부(240)는 상기 서비스 제공 장치로부터 화면 가상화 기술을 통해 다수의 애플리케이션에 대한 각각의 구동버튼을 제공받아 상기 출력부(220)의 화면상에 표시되도록 제어한다.
상기 애플리케이션 구동 요청부(230)는 상기 출력부(220)에 출력된 다수의 애플리케이션 목록 중에서 사용자에 의해 하나가 선택되면, 상기 선택된 애플리케이션의 구동을 요청하는 애플리케이션 구동 요청 신호를 상기 서비스 제공 장치로 전송한다. 상기 애플리케이션 구동 요청 신호는 사용자 단말 식별정보, 애플리케이션 식별정보, 사용자 단말 사양정보(예를 들면, 코덱 정보, 해상도, 사이즈 정보 등을 포함함) 등을 포함한다.
상기 디코딩부(250)는 상기 서비스 제공 장치로부터 전송된 애플리케이션 구동 화면과 오디오를 디코딩하여 상기 출력부(220)를 통해 출력한다.
도 5는 본 발명에 따른 화면 가상화 기반 애플리케이션 구동 방법을 나타낸 도면이다.
도 5를 참조하면, 사용자 단말은 서비스 제공 장치에 접속하여 애플리케이션 구동 요청 신호를 전송한다(S402). 즉, 사용자 단말이 서비스 제공 장치에 접속하면, 서비스 제공 장치는 애플리케이션 목록이 표시된 애플리케이션 구동 버튼들을 사용자 단말에 제공한다. 사용자 단말은애플리케이션 구동 버튼들을 화면상에 출력하고, 사용자는 구동을 원하는 애플리케이션 구동 버튼을 선택한다. 그러면, 사용자 단말은 선택된 애플리케이션 목록을 포함하는 애플리케이션 구동 요청 신호를 서비스 제공 장치로 전송한다.
상기 S402가 수행되면, 서비스 제공 장치는 현재 접속자 수를 이용하여 접속률을 구한다(S404). 서비스 제공 장치는 수학식 1을 이용하여 접속률(K)를 구한다.
상기 S404의 수행 후, 서비스 제공 장치는 구해진 접속률이 기 설정된 범위 내인지의 여부를 판단한다(S406). 여기서, 상기 범위는 K1<K<K3일 수 있다.
상기 S406의 판단결과 접속률이 범위 내인 경우, 서비스 제공 장치는 구비된 애플리케이션 데이터베이스로부터 해당 애플리케이션을 추출하여 구동한다(S408).
서비스 제공 장치는 이후 구동된 애플리케이션 구동 화면을 모드 A 인코더 또는 모드 B 인코더를 이용하여 인코딩하고(S410), 인코딩된 애플리케이션 구동 화면을 사용자 단말로 전송한다(S412).
그러면, 사용자 단말은 애플리케이션 구동 화면을 디코딩하여 출력한다(S414).
만약, 상기 S406의 판단결과 접속률이 범위 내가 아니면,서비스 제공 장치는 모드 B 인코더의 프레임 레이트(frame rate)를 조절하여(S416), 최대 접속 가능 수(capacity)를 조절한 후(S418) 상기 S408을 수행한다.
서비스 제공 장치가 최대 접속 가능 수를 조절하는 방법에 대한 상세한 설명은 도 6을 참조하기로 한다.
도 6은 본 발명에 따른 서비스 제공 장치가 최대 접속 가능 수를 조절하는 방법을 나타낸 도면이다.
이하에서는 서비스 제공 장치가 최대 접속 가능 수를 조절하는 것으로 설명하였으나, 인코딩 장치도 동일한 방법으로 최대 접속 가능 수를 조절한다.
도 6을 참조하면, 서비스 제공 장치는 현재 접속자 수를 이용하여 현재 접속률을 구한다(S502). 서비스 제공 장치는 수학식 1을 이용하여 접속률(K)를 구한다.
서비스 제공 장치는 intra/inter coding을 모두 사용하는 모드 A 인코더, all intra coding만 수행하는 모드 B 인코더를 포함한다.
서비스 제공 장치가 N개의 인코더를 구비한 경우, 초기 모드 A 인코더는 Na0개, 초기 모드 B 인코더는 Nb0개로 하며, 전체 인코더의 수(N)은 (Na0+Nb0)일 수 있다.
또한 모드 A 인코더의 프레임 레이트(frame rate)가 Fa, 모드 B 인코더의 frame rate가 Fb이면, 초기값은 Fa0, Fb0로 둔다. 이때, 서비스 제공 장치의 최대 접속 가능 수(L)(capacity)는 L= Na0+Nb0*Fa0/Fb0이다.
이와 같은 상태에서 서비스 제공 장치는 상기 S502에서 구한 접속률이 기 설정된 제2 임계치(K3) 이상인지의 여부를 판단한다(S504).
상기 S504의 판단결과 제2 임계치 이상인 경우, 서비스 제공 장치는 모드 B 인코더의 프레임 레이트(frame rate)를 감소시켜(S506) 최대 접속 가능 수(capacity)를 증가시킨다(S508). 즉, 서비스 제공 장치의 접속률이 K3이상으로 증가하면, 서비스 제공 장치는 Mode B encoder의 frame rate을 낮추어 한 개의 Mode B encoder를 여러 사용자가 공유할 수 있도록 하여 최대 접속 가능 수(capacity)를 증가시킨다.
다시 말하면, 서비스 제공 장치는 접속률(K)이 제2임계치(K3) 이상인 경우, 수학식 2에 의해 구해진 최대 접속 가능 수를 수학식 3에 대입하여 모드 B 인코더의 frame rate을 구하고, 이를 기반으로 수학식 4를 이용하여 최종 최대 접속 가능 수(최종 Lt+1)를 구한다.
그렇게 구해진 모드 B 인코더의 프레임 레이트는 현재 프레임 레이트보다 감소된 값이고, 최종 접속 가능 수는 현재 최종 접속 가능 수보다 증가된 값일 수 있다.
만약, 상기 S504의 판단결과 접속률이 제1 임계치(K1) 이하이면(S510), 서비스 제공 장치는 모드 B 인코더의 프레임 레이트(frame rate)를 증가시켜(S512) 최대 접속 가능 수(capacity)를 감소시킨다(S514).
즉, 서비스 제공 장치는 접속률(K)이 제1임계치(K3) 이하인 경우, 수학식 5에 의해 구해진 최대 접속 가능 수를 수학식 3에 대입하여 모드 B 인코더의 frame rate을 구하고, 이를 기반으로 수학식 4를 이용하여 최종 최대 접속 가능 수(최종 Lt+1)를 구한다.
그렇게 구해진 모드 B 인코더의 프레임 레이트는 현재 프레임 레이트보다 증가된 값이고, 상기 최종 접속 가능 수는 현재 최종 접속 가능 수보다 감소된 값일 수 있다.
상기와 같은 과정을 통해 서비스 제공 장치는 최대 접속 가능 수를 조절할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명의 기술적 사상이나 특징을 변경하지 않고서 다른 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모두 예시적인 것이며, 본 발명은 앞서 언급한 실시예들로만 한정되지 않는다.
서비스 제공 장치(100)나 사용자 단말(200)은 예컨대 이더넷 카드와 같은 하나 이상의 네트워크 인터페이스 장치, 예컨대 RS-232 포트와 같은 직렬 통신 장치 및/또는 예컨대 802.11 카드와 같은 무선 인터페이스 장치를 외부 입출력 장치로서 포함할 수 있다. 다른 구현예에서, 이러한 입출력 장치는 다른 입출력 장치로 출력 데이터를 전송하고 입력 데이터를 수신하도록 구성된 드라이버 장치, 예컨대 키보드, 프린터 및 디스플레이 장치 등을 포함할 수 있다.
서비스 제공 장치(100)는 실행 시 하나 이상의 처리 장치로 하여금 전술한 기능과 프로세스를 수행하도록 하는 명령에 의하여 실현될 수 있다. 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다.
본 발명에 따른 서비스 제공 장치(100)는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현되거나 혹은 단일의 컴퓨터 장치로 구현될 수 있다.
본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.
컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
본 명세서에서 ”시스템이나 장치"라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.
또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
이상과 같이 본 발명의 화면 가상화 기반 애플리케이션 구동 시스템 및 방법은 서비스 제공 장치가 처리해야 할 영상 인코딩(video encoding) 수를 scalable하게 조절할 수 필요가 있는 경우에 적합하다.
[부호의 설명]
100 : 서비스 제공 장치 110 : 애플리케이션 DB
120 : 통신부 130 : 접속 제어부
140 : 인코더 150 : 인코딩 제어부
160 : 애플리케이션 구동 화면 제공부
200 : 사용자 단말 220 : 출력부
230 : 애플리케이션 구동 요청부 240 : 화면 제어부
250 : 디코딩부 300 : 인코딩 장치
320 : 부하 정보 수집부 330 : 인코딩 용량 조절부
340 : 인코더 모드 할당부
Claims (14)
- 사용자 단말과의 통신을 위한 통신부;애플리케이션들이 저장된 애플리케이션 데이터베이스;모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더;상기 통신부를 통해 사용자 단말이 접속된 경우, 복수의 애플리케이션에 대한 구동버튼들이 상기 사용자 단말에 표시되도록 제어하는 접속 제어부;상기 사용자 단말로부터 애플리케이션 구동 요청 신호가 수신된 경우, 현재 접속자 수를 이용하여 접속률을 구하고, 상기 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트(frame rate) 조절을 통해 최대 접속 가능 수를 조절한 후, 상기 애플리케이션 데이터베이스로부터 해당 애플리케이션을 추출하여 구동시키고, 그 애플리케이션 구동 화면을 모드 A 인코더 또는 모드 B 인코더를 통해 인코딩하도록 제어하는 인코딩 제어부; 및인코딩된 애플리케이션 구동 화면을 상기 사용자 단말로 전송하는 애플리케이션 구동 화면 제공부;를 포함하는 서비스 제공 장치.
- 제1항에 있어서,상기 인코딩 제어부는 하기의 수학식을 이용하여 접속률을 구하는 것을 특징으로 하는 서비스 제공 장치.[수학식]접속률(K) =현재 접속자 수/최대 접속 가능 수(capacity)
- 제1항에 있어서,상기 인코딩 제어부는 상기 접속률이 제2 임계치 이상인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 감소시켜, 최대 접속 가능 수(capacity)를 증가시키고, 상기 접속률이 제1 임계치 이하인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 증가시켜, 최대 접속 가능 수(capacity)를 감소시키는 것을 특징으로 하는 서비스 제공 장치.
- 제1항에 있어서,상기 인코딩 제어부는 사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 것을 특징으로 하는 서비스 제공 장치.
- 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더;현재 접속자 수, 모드 A 인코더 수, 모드 B 인코더 수 중 적어도 하나를 포함하는 부하 정보를 수집하는 부하 정보 수집부;상기 수집된 현재 접속자 수를 이용하여 접속률을 구하고, 상기 접속률이 기 설정된 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수를 조절하는 인코딩 용량 조절부; 및사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 인코더 모드 할당부;를 포함하는 인코딩 장치.
- 제5항에 있어서,상기 인코딩 용량 조절부는 하기의 수학식을 이용하여 접속률을 구하는 것을 특징으로 하는 인코딩 장치.[수학식]접속률(K) =현재 접속자 수/최대 접속 가능 수(capacity)
- 제5항에 있어서,상기 범위는 제1임계치 초과 제2 임계치 미만이고,상기 인코딩 용량 조절부는 상기 접속률이 상기 범위를 벗어나는 경우, 하기의 수학식을 이용하여 모드 B 인코더의 프레임 레이트(frame rate)(Fbt+1)를 감소시키거나 증가시키는 것을 특징으로 하는 인코딩 장치.[수학식]Fbt+1=min{max{ INT[Fa/( (Lt+1-Nat)/(N-Nat) + 0.5)], 1 }, Fa}여기서, INT[a]는 실수값 a와 같거나 작은 정수들 중에서 가장 큰 정수를 return하는 함수, Lt+1는 접속률이 K3이상인 경우의 최대 접속 가능 수(capacity), Nat는 모드 A 인코더 수, Fa는 모드 A 인코더의 프레임 레이트(frame rate), Fbt는 모드 B 인코더의 현재 프레임 레이트임.
- 제7항에 있어서,상기 인코딩 용량 조절부는 상기 모드 B 인코더의 프레임 레이트를 이용한 하기의 수학식을 이용하여 최대 접속 가능 수를 증가 또는 감소시키는 것을 특징으로 하는 인코딩 장치.[수학식]Lt+1 = Nat + (N-Nat)*Fa/Fbt+1
- 제5항에 있어서,상기 인코더 모드 할당부는, 접속률이 미리 정해진 기준치 이상인 경우 상기 반환된 인코더를 모드 B 인코더로 할당하고, 상기 기준치 이상이 아닌 경우 반환 전의 인코더의 모드 그대로 사용하는 것을 특징으로 하는 인코딩 장치.
- 서비스 제공 장치가 화면 가상화 기반 애플리케이션을 구동하는 방법에 있어서,(a) 사용자 단말로부터 애플리케이션 구동 요청 신호가 수신된 경우, 현재 접속자 수를 이용하여 접속률을 구하는 단계;(b) 상기 접속률이 기 설정된 범위를 벗어나는지의 여부를 판단하는 단계;(c) 상기 접속률이 상기 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수를 조절하는 단계; 및(d) 상기 구동 요청된 애플리케이션의 구동 화면을 모드 B 인코더 또는 모드 A 인코더를 통해 인코딩하여 상기 사용자 단말로 전송하는 단계;를 포함하는 화면 가상화 기반 애플리케이션 구동 방법.
- 제10항에 있어서,상기 (c) 단계는,상기 접속률이 제2 임계치 이상인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 감소시켜 최대 접속 가능 수(capacity)를 증가시키고, 상기 접속률이 제1 임계치 이하인 경우 모드 B 인코더의 프레임 레이트(frame rate)를 증가시켜 최대 접속 가능 수(capacity)를 감소시키는 것을 특징으로 하는 화면 가상화 기반 애플리케이션 구동 방법.
- 제10항에 있어서,사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 단계를 더 포함하는 것을 특징으로 하는 화면 가상화 기반 애플리케이션 구동 방법.
- 모드 A 인코더 또는 모드 B 인코더로 동작하는 복수 개의 인코더가 구비된 인코딩 장치가 화면 가상화 기반 애플리케이션을 구동시키기 위해 최대 접속 가능 수를 조절하는 방법에 있어서,현재 접속자 수, 모드 A 인코더 수, 모드 B인코더 수 중 적어도 하나를 포함하는 부하 정보를 수집하는 단계;상기 수집된 현재 접속자 수를 이용하여 접속률을 구하는 단계;상기 접속률이 기 설정된 범위를 벗어나는지의 여부를 판단하는 단계; 및상기 접속률이 상기 범위를 벗어나는 경우, 모드 B 인코더의 프레임 레이트 조절을 통해 최대 접속 가능 수를 조절하는 단계;를 포함하는 화면 가상화 기반 애플리케이션 구동 방법.
- 제13항에 있어서,사용 후 반환된 인코더를 접속률에 따라 모드 A 인코더 또는 모드 B 인코더로 할당하는 단계를 더 포함하는 것을 특징으로 하는 화면 가상화 기반 애플리케이션 구동 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2012-0057397 | 2012-05-30 | ||
KR1020120057397A KR101671310B1 (ko) | 2012-05-30 | 2012-05-30 | 화면 가상화 기반 어플리케이션 구동 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013180348A1 true WO2013180348A1 (ko) | 2013-12-05 |
Family
ID=49673514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2012/009004 WO2013180348A1 (ko) | 2012-05-30 | 2012-10-30 | 화면 가상화 기반 애플리케이션 구동 시스템 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101671310B1 (ko) |
WO (1) | WO2013180348A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016052845A1 (ko) * | 2014-10-02 | 2016-04-07 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101892952B1 (ko) * | 2014-01-21 | 2018-08-30 | 에스케이테크엑스 주식회사 | 클라우드 스트리밍 서비스 시스템, 이벤트 기반 프레임 레이트 조절 방법 및 이를 위한 장치 |
KR102111612B1 (ko) * | 2014-05-22 | 2020-06-08 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버 |
KR102346749B1 (ko) * | 2015-01-05 | 2022-01-03 | 에스케이플래닛 주식회사 | 클라우드 스트리밍 서비스 시스템, 서비스 품질 조절을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
KR102552753B1 (ko) * | 2018-10-24 | 2023-07-05 | 에스케이텔레콤 주식회사 | 딜레이 절감을 위한 vmi 화면 표시 방법 및 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11331818A (ja) * | 1998-05-08 | 1999-11-30 | Matsushita Electric Ind Co Ltd | 監視システム |
KR20050045667A (ko) * | 2003-11-12 | 2005-05-17 | 엘지전자 주식회사 | 인코딩 레이트 동적 스위칭 장치 및 방법 |
JP2009081753A (ja) * | 2007-09-27 | 2009-04-16 | Hitachi Ltd | 無線通信システム、送信機及び受信機 |
KR20090039583A (ko) * | 2007-10-17 | 2009-04-22 | 삼성테크윈 주식회사 | 인터넷 네트워크 장치 및 이의 데이터 전송 방법 |
KR20120033450A (ko) * | 2010-09-30 | 2012-04-09 | 에스케이플래닛 주식회사 | 단말기에 따른 적응적 화면 가상화 방법 및 시스템 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020021460A (ko) * | 2000-09-15 | 2002-03-21 | 김영남 | 인터넷 원격교육을 위한 멀티미디어 동기화 및 최적화방법 |
US8893207B2 (en) * | 2002-12-10 | 2014-11-18 | Ol2, Inc. | System and method for compressing streaming interactive video |
KR100623710B1 (ko) | 2006-05-19 | 2006-09-13 | 윈포시스(주) | 하드웨어 리소스를 공유하여 복수의 동영상 콘텐츠를처리하는 방법 |
-
2012
- 2012-05-30 KR KR1020120057397A patent/KR101671310B1/ko active IP Right Grant
- 2012-10-30 WO PCT/KR2012/009004 patent/WO2013180348A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11331818A (ja) * | 1998-05-08 | 1999-11-30 | Matsushita Electric Ind Co Ltd | 監視システム |
KR20050045667A (ko) * | 2003-11-12 | 2005-05-17 | 엘지전자 주식회사 | 인코딩 레이트 동적 스위칭 장치 및 방법 |
JP2009081753A (ja) * | 2007-09-27 | 2009-04-16 | Hitachi Ltd | 無線通信システム、送信機及び受信機 |
KR20090039583A (ko) * | 2007-10-17 | 2009-04-22 | 삼성테크윈 주식회사 | 인터넷 네트워크 장치 및 이의 데이터 전송 방법 |
KR20120033450A (ko) * | 2010-09-30 | 2012-04-09 | 에스케이플래닛 주식회사 | 단말기에 따른 적응적 화면 가상화 방법 및 시스템 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016052845A1 (ko) * | 2014-10-02 | 2016-04-07 | 엔트릭스 주식회사 | 클라우드 스트리밍 서비스 시스템, 최적 gpu를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
US10601891B2 (en) | 2014-10-02 | 2020-03-24 | Sk Planet Co., Ltd. | Cloud streaming service system and cloud streaming service method for utilizing an optimal GPU for video decoding based on resource conditions, and apparatus for the same |
Also Published As
Publication number | Publication date |
---|---|
KR20130134117A (ko) | 2013-12-10 |
KR101671310B1 (ko) | 2016-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017138776A1 (ko) | 통신 시스템에서 vr 컨텐트 디스플레이를 지원하는 기법 | |
WO2018128472A1 (en) | Virtual reality experience sharing | |
WO2013180348A1 (ko) | 화면 가상화 기반 애플리케이션 구동 시스템 및 방법 | |
WO2013118988A1 (en) | Method and apparatus for interoperably performing services and system supporting the same | |
WO2014157889A1 (en) | Method and apparatus for improving quality of experience in sharing screen among devices, and recording medium thereof | |
WO2018169367A1 (en) | Method and apparatus for packaging and streaming of virtual reality media content | |
WO2016129963A1 (ko) | 멀티뷰 스트리밍 서비스 지원 방법 및 이를 지원하는 장치 | |
WO2013077525A1 (ko) | 제어 방법 및 그를 이용한 장치 | |
WO2014027773A1 (ko) | 반응형 사용자 인터페이스 제공 장치, 방법, 및 그에 대한 전자장치에서 판독 가능한 기록매체 | |
WO2021029756A1 (ko) | 응용 프로그램의 스트리밍 영상 제공 장치 및 방법 | |
WO2018131806A1 (en) | Electronic apparatus and method of operating the same | |
WO2016010319A2 (ko) | 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치 | |
WO2014021627A1 (en) | Apparatus and method for providing n-screen service in broadcast system | |
WO2020046041A1 (en) | Electronic device for high-speed compression processing of feature map of cnn utilizing system and controlling method thereof | |
WO2017052072A1 (ko) | 영상 표시 장치 및 그 동작 방법 | |
WO2018088784A1 (en) | Electronic apparatus and operating method thereof | |
WO2015009064A1 (en) | Electronic device for storing image and image storage method thereof | |
WO2016052908A1 (en) | Transmitter, receiver, and control method thereof | |
WO2012157887A2 (en) | Apparatus and method for providing 3d content | |
WO2019107955A1 (ko) | 분산 트랜스코딩의 시간 단축을 위한 최적화 방법 및 그 시스템 | |
WO2021137575A1 (en) | A device and a method for storage of video decoder configuration information | |
WO2016080585A1 (en) | System and method for providing cloud based user interfaces | |
WO2015012632A1 (ko) | 다시점 비디오 스트리밍 시스템 및 그 제공방법 | |
WO2013154364A1 (ko) | 스트리밍 재생 방법 및 이를 이용한 컴퓨팅 장치 | |
WO2019050067A1 (ko) | 비디오 품질 제어 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12877759 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12877759 Country of ref document: EP Kind code of ref document: A1 |