KR20140057983A - Virtualization server providing virtualization service of web application and method for transmitting data for providing the same - Google Patents

Virtualization server providing virtualization service of web application and method for transmitting data for providing the same Download PDF

Info

Publication number
KR20140057983A
KR20140057983A KR1020120124402A KR20120124402A KR20140057983A KR 20140057983 A KR20140057983 A KR 20140057983A KR 1020120124402 A KR1020120124402 A KR 1020120124402A KR 20120124402 A KR20120124402 A KR 20120124402A KR 20140057983 A KR20140057983 A KR 20140057983A
Authority
KR
South Korea
Prior art keywords
data
update area
virtualization
webapp
encoding
Prior art date
Application number
KR1020120124402A
Other languages
Korean (ko)
Other versions
KR101491591B1 (en
Inventor
유영일
강찬휘
김동훈
김미점
김이길
백규태
하지훈
허윤범
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR20120124402A priority Critical patent/KR101491591B1/en
Priority to US14/072,214 priority patent/US20140129923A1/en
Publication of KR20140057983A publication Critical patent/KR20140057983A/en
Application granted granted Critical
Publication of KR101491591B1 publication Critical patent/KR101491591B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Development Economics (AREA)
  • Artificial Intelligence (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are a virtualization server providing web application virtualization service by transmitting data to a client terminal, and a method for transmitting the data for providing the web application virtualization service. More specifically, the virtualization server for providing web application virtualization service includes a web engine which divides each macro block included in a frame into an update area or a non-updated region by a process of rendering the web application containing a plurality of frames, and generates an encoding map on the basis of the rendering data containing the data of the macro block divided into update region; and an encoder generating coded data by performing encoding via the encoding map.

Description

웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법{VIRTUALIZATION SERVER PROVIDING VIRTUALIZATION SERVICE OF WEB APPLICATION AND METHOD FOR TRANSMITTING DATA FOR PROVIDING THE SAME} TECHNICAL FIELD [0001] The present invention relates to a virtualization server and a web application virtualization service providing web application virtualization service, and a data transmission method for providing a virtualization server and a web application virtualization service.

웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법{VIRTUALIZATION SERVER PROVIDING VIRTUALIZATION SERVICE OF WEB APPLICATION AND METHOD FOR TRANSMITTING DATA FOR PROVIDING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a virtualization server and a web application virtualization service providing web application virtualization service, and a data transmission method for providing a virtualization server and a web application virtualization service.

웹앱(Web Application)은 다른 환경의 운영체제(OS)에서 공통으로 사용할 수 있는 크로스 플랫폼(Cross-Platform) 및 각종 콘텐츠와 서비스를 융합하는 매쉬업(Mash up)에 용이하다. 또한, 웹앱은 IPTV, 스마트TV 등을 위한 서비스를 개발하는 데에 적합하고, 웹앱을 위한 서비스 개발 환경도 개발자에게 친숙하다. Web application is easy to cross-platform that can be commonly used by operating system (OS) of other environment and mash up that fuses various contents and services. Also, WebApp is suitable for developing services for IPTV and smart TV, and service development environment for web application is also familiar to developers.

이러한 웹앱은 HTML, JavaScript, CSS와 같은 인터프리터 언어로 개발되므로, 웹앱을 실행하기 위해서는 웹브라우져(웹엔진)가 클라이언트 단말에 탑재되어야 할 뿐만 아니라, 네이티브 방식으로 개발된 앱보다 고사양의 클라이언트 단말이 요구된다. 따라서 저사양 단말 또는 제로 클라이언트(Zero Client)로 웹앱 서비스를 제공하기 위해서는 클라우드를 기반으로 웹앱을 가상화하는 기술이 필요하다. Since webapps are developed in interpreter languages such as HTML, JavaScript, and CSS, not only web browsers (web engines) have to be installed in client terminals in order to execute webapps, but also high-end client terminals do. Therefore, in order to provide Web application service with low-end terminal or zero client, technology for virtualizing web application based on cloud is needed.

한편, 클라우드 기반 가상화 서비스는 일반적으로 원격서버에서 실행된 서비스에 대한 최종 결과 화면이 캡쳐되어 클라이언트 단말로 전달된다. 또한, 클라이언트 단말에서 발생된 사용자 인터렉션 데이터는 원격서버로 전달된다. 종래에 원격서버에서 클라이언트 단말로 데이터를 전송하는 방식은 이미지 전송방식(RDP/VNC 등) 및 동영상 스트리밍 방식이 있다. Meanwhile, the cloud-based virtualization service generally captures the final result screen of the service executed on the remote server and transmits the result screen to the client terminal. Also, the user interaction data generated at the client terminal is transmitted to the remote server. Conventionally, a method of transmitting data from a remote server to a client terminal includes an image transmission method (RDP / VNC) and a video streaming method.

RDP/VNC 방식의 경우 원격서버에서 클라이언트 단말로 이미지 데이터를 전송하기 위해 과도한 트래픽이 발생하는 문제점과, 수신된 이미지 데이터를 처리하기 위한 RDP/VNC 클라이언트를 클라이언트 단말에 설치해야 하므로 클라이언트 단말의 복잡도가 상승한다는 문제점이 있다. 다시 말하자면, 종래 RDP/VNC 방식을 통해 게임 등과 같은 동적인 웹앱을 위한 데이터를 전송하는 것은 비경제적이고 서비스 품질(frame rate) 감소를 감수해야 한다. 특히, 클라이언트 단말이 저사양인 경우 종래 RDP/VNC 방식을 통해 데이터 전송하는 것은 현실적으로 어렵다는 문제점이 있다. In case of the RDP / VNC method, excessive traffic occurs in order to transmit image data from the remote server to the client terminal, and the RDP / VNC client for processing the received image data must be installed in the client terminal, . In other words, it is uneconomical to transfer data for a dynamic Web application such as a game through the conventional RDP / VNC method, and the reduction of the frame rate is required. Particularly, when the client terminal is at a low level, it is practically difficult to transmit data through the conventional RDP / VNC method.

또한, 동영상 스트리밍 방식의 경우 원격서버에서 데이터를 전송하기 전에 화면 캡쳐, 동영상 인코딩, 스트리밍 등의 추가 과정을 거쳐야 하므로, 원격서버에 부하가 과도하게 발생한다는 문제점이 있다. 이와 관련하여, 선행기술인 한국 특허공개번호 제2012-0072904호에는 클라우드 컴퓨팅 서버에서 실행되는 게임의 AV(Audio-Video) 데이터를 캡쳐하고, 이를 인코딩하여 하나 이상의 사용자 단말로 동영상 스트리밍하는 기술에 대해 개시하고 있다.In addition, in the case of the video streaming method, since the remote server has to undergo additional processes such as screen capture, video encoding, and streaming before data is transmitted from the remote server, the load on the remote server is excessively increased. In this regard, Korean Unexamined Patent Publication No. 2008-0072904 discloses a technology for capturing AV (Audio-Video) data of a game executed in a cloud computing server and encoding the captured AV stream data to one or more user terminals .

종래의 RDP/VNC 방식이나 동영상 스트리밍 방식과 전혀 다른 가상화 기법을 통해 저사양 단말 또는 제로 클라이언트로 게임과 같은 동적인 웹앱 서비스를 경제성 있게 제공하고자 한다. 또한, 가상화 서버에서 발생하는 트래픽을 줄이면서 클라이언트 단말에서 구현되는 서비스 품질도 유지시킬 수 있도록 데이터를 전송하고자 한다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다. Through a virtualization technique that is completely different from the conventional RDP / VNC method and video streaming method, a dynamic web application service such as a game can be economically provided to a low-end terminal or a zero client. Also, we want to reduce the traffic generated by the virtualization server and transmit the data to maintain the quality of service implemented in the client terminal. It is to be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진 및 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하는 웹앱 가상화 서비스를 제공하는 가상화 서버를 제공할 수 있다. According to an aspect of the present invention, there is provided a method for rendering a WebApp including a plurality of frames by dividing each macroblock included in the frame into an update area or a non-update area, A Web engine for generating an encoding map based on rendering data including data for a macro block separated by an update area, and an encoder for performing encoding through an encoding map to generate encoded data, Server can be provided.

또한, 본 발명의 다른 실시예는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계, 인코딩 맵을 통해 인코딩을 수행하는 단계, 및 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송하는 단계를 포함하는 웹앱 가상화 서비스 제공을 위한 데이터 전송방법을 제공할 수 있다. According to another embodiment of the present invention, there is provided a method for rendering a macro-block divided into an update area or a non-update area by dividing each macroblock included in a frame into a plurality of update areas, A method for providing a WebApp virtualization service, the method comprising: generating an encoding map based on rendering data including data; performing encoding through an encoding map; and transmitting encoded data generated by encoding to a client terminal A data transmission method can be provided.

또한, 본 발명의 또 다른 실시예는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계, 업데이트 영역으로 구분된 매크로 블록 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계, 업데이트 영역으로 구분된 매크로 블록에 대해서 인코딩 맵을 통해 인코딩을 수행하는 단계, 비업데이트 영역으로 구분된 매크로 블록에 대해서 인코딩을 스킵하는 단계, 및 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송하는 단계를 포함하는 웹앱 가상화 서비스 제공을 위한 데이터 전송방법을 제공할 수 있다. According to still another embodiment of the present invention, there is provided a method for rendering a web application, the method comprising: dividing each macroblock included in a frame into an update area or a non-update area through a process of rendering a web application including a plurality of frames; Generating an encoding map based on rendering data including data on macroblocks classified as non-update areas, performing encoding on a macroblock classified as an update area through an encoding map, And transmitting the encoded data generated by the encoding to the client terminal. The present invention also provides a data transmission method for providing a WebApp virtualization service.

웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성함으로써, 각 프레임에서 업데이트 영역으로 구분된 매크로 블록에 대해서만 인코딩 프로세싱이 수행되므로 가상화 서버의 자원을 보다 효율적으로 사용할 수 있다. 또한, 상술한 데이터 전송방법을 통해 트래픽 발생량 및 클라이언트 단말의 복잡도는 종래의 스트리밍 방식과 동일한 수준으로 감소시킬 수 있고, 가상화 서버에 가해지는 부하도 종래의 이미지 전송 방식인 RDP/VNC과 유사한 수준으로 감소시킬 수 있어, 동적인 웹앱 가상화 서비스를 현실적인 비용으로 구현할 수 있게 된다. The rendering method of the web application is divided into the update area or the non-update area, and the encoding map is generated based on the rendering data including the data for the macro block divided into the update areas. Encoding processing is performed only on the macroblocks separated by the update area in the frame, so that the resources of the virtualization server can be used more efficiently. Also, through the above-described data transmission method, the amount of traffic generated and the complexity of the client terminal can be reduced to the same level as that of the conventional streaming method, and the load applied to the virtualization server is similar to that of the RDP / VNC , Enabling dynamic WebApp virtualization services to be implemented at a real cost.

도 1은 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버의 구성도이다.
도 2는 도 1에 도시된 웹엔진(100)의 일 예에 대한 구성도이다.
도 3은 업데이트 영역 및 비업데이트 영역에 대해 설명하기 위한 도면이다.
도 4는 도 2의 인코딩 맵 생성부(120)에 의해 생성된 인코딩 맵의 일 예를 도시한 도면이다.
도 5는 콘텐츠 타입에 대한 다양한 예를 설명하기 위한 도면이다.
도 6은 도 1에 도시된 인코더(200)의 일 예에 대한 구성도이다.
도 7은 본 발명이 일 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다.
도 8은 본 발명이 다른 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다.
도 9는 도 7 및 도 8의 동작 과정 중에서 인코딩 맵을 생성하는 단계와 인코딩을 수행하는 단계에 대해 컴퓨터 프로그램으로 구현해낸 소스 코드이다.
1 is a block diagram of a virtualization server providing a WebApp virtualization service according to an embodiment of the present invention.
FIG. 2 is a configuration diagram of an example of the web engine 100 shown in FIG.
3 is a diagram for explaining an update area and a non-update area.
FIG. 4 is a diagram illustrating an example of an encoding map generated by the encoding map generator 120 of FIG.
5 is a diagram for explaining various examples of the content type.
6 is a configuration diagram of an example of the encoder 200 shown in FIG.
7 is a flowchart illustrating an example of a data transmission method for providing a WebApp virtualization service according to an embodiment of the present invention.
8 is a flowchart illustrating an example of a data transmission method for providing a WebApp virtualization service according to another embodiment of the present invention.
FIG. 9 is a source code implemented by a computer program for the steps of generating an encoding map and performing encoding in the operation procedures of FIGS. 7 and 8. FIG.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

도 1은 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버의 구성도이다. 도 1을 참조하면, 웹앱 가상화 서비스 제공 시스템은 가상화 서버(10), 복수의 클라이언트 단말(30)을 포함한다. 다만, 이러한 도 1의 웹앱 가상화 서비스 제공 시스템은 본 발명의 일 실시예에 불과하므로 도 1을 통해 본 발명이 한정 해석되는 것은 아니다. 1 is a block diagram of a virtualization server providing a WebApp virtualization service according to an embodiment of the present invention. Referring to FIG. 1, a WebApp virtualization service providing system includes a virtualization server 10 and a plurality of client terminals 30. However, the web application virtualization service provision system of FIG. 1 is only one embodiment of the present invention, and thus the present invention is not limited to FIG.

도 1에 도시된 가상화 서버(10)와 클라이언트 단말(30)은 일반적으로 네트워크(network, 20)를 통해 연결된다. 네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(network)의 일 예에는 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network) 등이 포함되나 이에 한정되지는 않는다. The virtualization server 10 and the client terminal 30 shown in FIG. 1 are generally connected via a network 20. An example of such a network is a satellite broadcasting network, an analog broadcasting network, a DMB (Digital Multimedia Broadcasting) network, a satellite broadcasting network, and the like. But are not limited to, the Internet, a LAN (Local Area Network), a Wireless LAN (Local Area Network), a WAN (Wide Area Network), a PAN (Personal Area Network)

본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버(10)는 웹엔진(100), 인코더(200), 메모리(300)를 포함한다. 각 구성은 서로 연결되어 데이터를 송수신할 수 있고, 이들 구성에 대한 상세한 설명은 도 2 및 도 6을 참고하여 후술하기로 한다. 덧붙여, 클라이언트 단말(30)과 네트워크(20)를 통해 통신하기 위한 통신부 및 관리자로부터 특정 명령 내지 정보를 입력받기 위한 관리자 인터페이스 등의 구성을 더 포함할 수 있다. 이 경우, 관리자 인터페이스는 일반적으로 키보드, 마우스 등과 같은 입력 장치가 될 수도 있으나, 영상 표시 장치에 표현되는 그래픽 유저 인터페이스(GUI, Graphical User interface)가 될 수도 있다. The virtualization server 10 for providing the WebApp virtualization service according to an embodiment of the present invention includes a web engine 100, an encoder 200, and a memory 300. Each configuration is connected to each other to transmit and receive data, and a detailed description of these configurations will be given later with reference to FIG. 2 and FIG. In addition, it may further include a communication unit for communicating with the client terminal 30 via the network 20, and a manager interface for receiving a specific command or information from the manager. In this case, the manager interface may be an input device such as a keyboard, a mouse, or the like, but may be a graphical user interface (GUI) represented on a video display device.

본 발명의 다양한 실시예들에 따르면 복수의 클라이언트 단말(30) 각각은 다양한 형태의 단말이다. 예를 들어, 클라이언트 단말(30)은 네트워크(20)를 통해 원격지의 서버에 접속할 수 있는 TV 장치, 컴퓨터 또는 휴대용 단말일 수 있다. 여기서, TV 장치의 일 예에는 스마트TV, IPTV 셋톱박스 등이 포함되고, 컴퓨터의 일 예에는 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등이 포함되고, 휴대용 단말의 일 예에는 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), WiBro(Wireless Broadband Internet) 단말, 스마트폰(Smartphone), 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치가 포함될 수 있다. According to various embodiments of the present invention, each of the plurality of client terminals 30 is various types of terminals. For example, the client terminal 30 may be a TV device, a computer, or a portable terminal capable of connecting to a remote server via the network 20. [ Here, an example of the TV apparatus includes a smart TV, an IPTV set-top box, and the like. Examples of the computer include a notebook computer, a desktop computer, a laptop computer, One example of the terminal includes a Personal Communication System (PCS), a Global System for Mobile Communications (GSM), a Personal Digital Cellular (PDC), a Personal Handyphone System (PHS) Assistant, IMT (International Mobile Telecommunication) -2000, Code Division Multiple Access (CDMA) -2000, W-Code Division Multiple Access (W-CDMA), WiBro (Wireless Broadband Internet) terminals, smart phones, And the like may be included in the present invention.

이하에서는 도 1의 가상화 서버(10)에 포함된 각각의 구성요소의 동작에 대해 보다 구체적으로 설명한다. Hereinafter, the operation of each component included in the virtualization server 10 of FIG. 1 will be described in more detail.

도 2는 도 1에 도시된 웹엔진(100)의 일 예에 대한 구성도이다. 도 2를 참조하면, 웹엔진(100)는 영역 구분부(110), 인코딩 맵 생성부(120) 및 콘텐츠 타입 분류부(130)를 포함한다. 다만, 도 2에 도시된 웹엔진(100)은 본 발명의 하나의 구현 예에 불과하며, 도 2에 도시된 구성요소들을 기초로 하여 다양한 변형이 가능하다. FIG. 2 is a configuration diagram of an example of the web engine 100 shown in FIG. Referring to FIG. 2, the web engine 100 includes an area division unit 110, an encoding map generation unit 120, and a content type classification unit 130. However, the web engine 100 shown in FIG. 2 is only one embodiment of the present invention, and various modifications are possible based on the components shown in FIG.

영역 구분부(110)는 복수의 프레임을 포함하는 웹앱에 대해 렌더링(Rendering)을 수행하고, 렌더링 과정을 통해 프레임에 포함된 각 매크로 블록(Macro Block)을 업데이트 영역 또는 비업데이트 영역으로 구분한다. 즉, 영역 구분부(110)는 렌더링 과정을 통해 후술할 인코딩에 필요한 렌더링 데이터를 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터가 포함되어 있다. The region dividing unit 110 performs rendering on a WebApp including a plurality of frames, and divides each macroblock included in the frame into an update region or a non-update region through a rendering process. That is, the region dividing unit 110 generates rendering data required for encoding through a rendering process, and the rendering data includes data on macroblocks classified as update regions.

이때, 렌더링 작업은 Webcore, JavaScript Engine 등에 의해 오프 스크린에 대해 이루어질 수 있고, 렌더링 작업의 결과물은 도 1에 도시된 것과 같은 공유된 메모리(300)에 저장될 수 있다. 또한, 프레임은 일정 개수의 픽셀로 이루어진 복수의 매크로 블록 단위로 나누어 질 수 있고, 영역 구분부(110)는 이렇게 나누어진 각 매크로 블록을 업데이트 영역에 해당하는지 또는 비업데이트 영역에 해당하는지 판별할 수 있다. At this time, the rendering operation may be performed on the off-screen by Webcore, JavaScript Engine, etc., and the result of the rendering operation may be stored in the shared memory 300 as shown in FIG. In addition, the frame may be divided into a plurality of macroblock units each having a predetermined number of pixels, and the area dividing unit 110 may determine whether each of the divided macroblocks corresponds to an update area or a non- have.

아울러, 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 것과 관련하여 도 3을 참고하여 설명한다. 도 3은 업데이트 영역 및 비업데이트 영역에 대해 설명하기 위한 도면이다. In addition, with reference to FIG. 3, description will be made of dividing each macroblock into an update area or a non-update area. 3 is a diagram for explaining an update area and a non-update area.

도 3은 게임 플레이가 이루어지고 있는 동적인 웹앱에 대한 특정 프레임을 나타낸다. 'A'라고 표시되어 있는 부분이 주로 업데이트가 발생하는 영역으로서, 도 4에 도시된 특정 프레임 상에서는 업데이트 영역에 해당할 수 있다. 'B'라고 표시되어 있는 부분은 게임 실행과 관계없는 외곽 영역으로서, 도 3에 도시된 특정 프레임 상에서는 비업데이트 영역에 해당할 수 있다. 다만, 이들 영역은 프레임이 시간의 흐름에 의해 변화함에 따라 프레임 상에서의 위치, 크기 등이 달라질 수 있고, 이들 영역을 구분하는 기준은 특별히 제한되지 않는다. Figure 3 shows a specific frame for a dynamic WebApp in which game play is being performed. The area marked 'A' is mainly the area where the update occurs, and may correspond to the update area on the specific frame shown in FIG. The portion indicated by 'B' is an outer area irrelevant to game execution, and may correspond to a non-update area on the specific frame shown in FIG. However, the position, size, and the like on the frame may vary in these areas as the frame changes with the passage of time, and the criteria for distinguishing these areas are not particularly limited.

인코딩 맵 생성부(120)는 렌더링 데이터를 기초로 인코딩 맵을 생성하고, 렌더링 데이터는 상술한 영역 구분부(110)에서 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함한다. 이때, 렌더링 데이터는 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 더 포함할 수 있고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터는 후술할 움직임 벡터(Motion Vector; MV), 양자화 파라미터(Quantization Parameter; QP) 값 및 콘텐츠 타입에 대한 분류 결과를 포함할 수 있다. 이와 같이 인코딩을 위한 인코딩 맵을 생성하기 위해 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 이용함으로써, 가상화 서버(10)에서 클라이언트 단말(30)로 웹앱 가상화 서비스 제공을 위한 데이터를 전송할 때 트래픽 발생을 최소화할 수 있다. 즉, 복수의 매크로 블록을 포함하는 프레임을 처리하기 때문에 해상도 등의 포맷은 유지되나, 실질적으로 인코딩하는 대상은 업데이트 영역으로 구분된 매크로 블록으로 한정시킬 수 있어 계산량 및 트래픽 발생을 최소화시킬 수 있다. The encoding map generating unit 120 generates an encoding map based on the rendering data, and the rendering data includes data on the macro blocks divided into the update area in the area dividing unit 110 described above. In this case, the rendering data may further include data for a macroblock classified as a non-update area, and the data for a macroblock classified as an update area may include a motion vector (MV), a quantization parameter ; QP) value and a classification result for the content type. When the data for providing the WebApp virtualization service is transmitted from the virtualization server 10 to the client terminal 30 by using the data for the macro blocks separated in the update area in order to generate the encoding map for encoding, Can be minimized. That is, since a frame including a plurality of macroblocks is processed, a format such as a resolution is maintained, but a target to be encoded can be limited to a macroblock classified as an update area, thereby minimizing the amount of calculation and traffic.

아울러, 후술할 인코더(200)에 필요한 인코딩 맵과 관련하여 도 4를 참고하여 설명한다. 도 4는 도 2의 인코딩 맵 생성부(120)에 의해 생성된 인코딩 맵의 일 예를 도시한 도면이다. The encoding map required for the encoder 200 will be described with reference to FIG. FIG. 4 is a diagram illustrating an example of an encoding map generated by the encoding map generator 120 of FIG.

도 4는 복수의 매크로 블록(MB1 내지 MBn)으로 이루어진 인코딩 맵을 나타내고, 이러한 매크로 블록을 합하면 도 3과 같은 웹앱에 포함된 특정 프레임이 될 수 있다. 전체 매크로 블록의 개수는 가로 방향의 매크로 블록의 수 및 세로 방향의 매크로 블록의 수를 알면 알 수 있는데, 특정 프레임의 가로 및 세로를 일정 개수의 픽셀로 (예를 들어, 16개) 나누어 구해낼 수 있다. 이들 매크로 블록 중 일부는 업데이트 영역(A)으로 구분된 것이고, 나머지는 비업데이트 영역(B)으로 구분된 것이다. 인코딩 맵 생성부(120)는 업데이트 영역(A)으로 구분된 매크로 블록에 플래그(Flag)를 '1'로 설정해두고, 비업데이트 영역(B)으로 구분된 매크로 블록에 플래그를 '0'으로 설정해둘 수 있다. 덧붙여, 인코딩 맵 생성부(120)는 업데이트 영역(A)으로 구분된 매크로 블록마다 그에 해당되는 움직임 벡터(MV) 및 양자화 파라미터(QP) 값을 설정해둘 수 있다. FIG. 4 shows an encoding map composed of a plurality of macroblocks MB 1 to MB n . When these macroblocks are summed together, they can be a specific frame included in the webapp as shown in FIG. The total number of macroblocks can be known by knowing the number of macroblocks in the horizontal direction and the number of macroblocks in the vertical direction. The horizontal and vertical lengths of a specific frame can be divided into a certain number of pixels (for example, 16) have. Some of these macroblocks are divided into the update area A and the rest are divided into the non-update area B. The encoding map generation unit 120 sets the flag to '1' in the macro block divided into the update area A and sets the flag to '0' in the macro block divided into the non-update area B I can do it. In addition, the encoding map generator 120 may set a motion vector (MV) and a quantization parameter (QP) value for each macroblock divided into the update area (A).

또한, 콘텐츠 타입 분류부(130)는 웹엔진(100)의 일 구성으로서 상술한 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류한다. 상술한 인코딩 맵 생성부(120)는 콘텐츠 타입 분류부(130)와 연동하여 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성할 수 있다. In addition, the content type classification unit 130 classifies the content type of the macro block classified as the update area as one configuration of the web engine 100. The encoding map generation unit 120 may generate an encoding map based on rendering data that further includes a classification result for a content type in cooperation with the content type classification unit 130. [

특히, 콘텐츠 타입 분류부(130)는 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류할 수 있는데, 이에 대해 도 5를 참고하여 설명한다. 도 5는 콘텐츠 타입에 대한 다양한 예를 설명하기 위한 도면이다. In particular, the content type classification unit 130 may classify the content type of a macroblock into at least one of text, video, and moving image, which will be described with reference to FIG. 5 is a diagram for explaining various examples of the content type.

도 5는 웹앱에 포함된 복수의 프레임 중 특정 프레임을 나타내고, 특정 프레임은 텍스트, 영상, 동영상 중 적어도 어느 하나의 콘텐츠 타입에 해당된다. (a) 프레임의 콘텐츠 타입은 동영상이고, (b) 프레임의 콘텐츠 타입은 텍스트이며, (c) 프레임의 콘텐츠 타입은 영상 및 텍스트이다. (b) 프레임의 경우 각 매크로 블록의 콘텐츠 타입이 텍스트로 콘텐츠 타입 분류부(130)에 의해 동일하게 결정될 수 있고, (c) 프레임의 경우 어디에 위치한 매크로 블록인가에 따라 콘텐츠 타입이 콘텐츠 타입 분류부(130)에 의해 상이하게 분류될 수 있다. FIG. 5 shows a specific frame among a plurality of frames included in the WebApp, and the specific frame corresponds to at least one content type of text, image, and moving image. (a) the content type of the frame is moving picture, (b) the content type of the frame is text, and (c) the content type of the frame is video and text. (b) frame, the content type of each macroblock can be determined by the content type classification unit 130 as text, and (c) in the case of a frame, (130). ≪ / RTI >

나아가, 웹엔진(100)은 도 2에 도시된 구성 이외에 QP 조절부(미도시)를 더 포함할 수 있다. QP 조절부는 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 조절한다. Furthermore, the web engine 100 may further include a QP control unit (not shown) in addition to the configuration shown in FIG. The QP adjuster adjusts the quantization parameter values for the macroblocks classified as the update area.

일 예에 따른 양자화 파라미터 값은 콘텐츠 타입 분류부(130)에 의한 분류 결과 및 관심 영역(Region of Interest; ROI)에 따라 이루어지는 비트(Bit) 할당을 기초로 조절될 수 있다. 이렇게 비트 할당을 기초로 양자화 파라미터 값을 조절함으로써, 주관적 화질을 향상시킬 수 있다. 이때, 상술한 인코딩 맵 생성부(120)는 렌더링 데이터를 기초로 인코딩 맵을 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터인 조절한 양자화 파라미터 값 및 콘텐츠 타입에 대한 분류 결과가 포함될 수 있다. The quantization parameter value according to an example may be adjusted based on a classification result by the content type classification unit 130 and a bit allocation according to a region of interest (ROI). By adjusting the quantization parameter values based on the bit allocation in this manner, the subjective image quality can be improved. At this time, the encoding map generation unit 120 generates an encoding map based on the rendering data. The rendering data includes a quantization parameter value, which is data for a macroblock classified as an update area, and a classification result for the content type .

다른 예에 따른 양자화 파라미터 값은 콘텐츠 타입 분류부(130)에 의한 분류 결과를 기초로 조절될 수 있다. 특히, 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 QP 조절부는 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절할 수 있다. 예를 들어, QP 조절부는 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값을 10으로 조절하고, 최소 양자화 파라미터 값을 1로 조절할 수 있다. 이와 동시에 QP 조절부는 분류 결과가 동영상인 경우의 최대 양자화 파라미터 값을 51로 조절하고, 최소 양자화 파라미터 값을 30으로 조절할 수 있다. 이때, 상술한 인코딩 맵 생성부(120)는 렌더링 데이터를 기초로 인코딩 맵을 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터인 조절한 양자화 파라미터 값 및 콘텐츠 타입에 대한 분류 결과가 포함될 수 있다. The quantization parameter value according to another example can be adjusted based on the classification result by the content type classification unit 130. [ In particular, the QP controller may adjust a quantization parameter value of a macroblock classified as an update area such that the maximum quantization parameter value when the classification result is text is set to be smaller than the minimum quantization parameter value when the classification result is video or moving image. For example, the QP controller may adjust the maximum quantization parameter value to 10 and adjust the minimum quantization parameter value to 1 when the classification result is text. At the same time, the QP controller can adjust the maximum quantization parameter value to 51 and the minimum quantization parameter value to 30 when the classification result is a moving image. At this time, the encoding map generation unit 120 generates an encoding map based on the rendering data. The rendering data includes a quantization parameter value, which is data for a macroblock classified as an update area, and a classification result for the content type .

다시 도 1을 참고하면, 가상화 서버(10)는 인코더(200)를 포함하는데 인코더(200)에 대해서는 도 6을 참고하여 설명한다. 도 6은 도 1에 도시된 인코더(200)의 일 예에 대한 구성도이다. Referring again to FIG. 1, the virtualization server 10 includes an encoder 200, which will be described with reference to FIG. 6 is a configuration diagram of an example of the encoder 200 shown in FIG.

인코더(200)는 상술한 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성한다. 인코더(200)의 인코딩 동작은 예를 들면 H.264/AVC 코덱 표준 방식과 같은 종래에 공지된 방식에 의해 이루어질 수 있다. 도 6을 참조하면, 인코더(200)는 인트라 예측기(Intra Predictor, 210), 인터 예측기(Inter Predictor, 220), 선택기(230), 변환기(Transformer, 240) 및 양자화기(Quantizer, 250)를 포함한다. 다만, 도 6에 도시된 인코더(200)는 본 발명의 하나의 구현 예에 불과하며, 도 6에 도시된 구성요소들을 기초로 하여 다양한 변형이 가능하다. The encoder 200 performs encoding through the above-described encoding map to generate encoded data. The encoding operation of the encoder 200 may be performed by a conventionally known method such as, for example, the H.264 / AVC codec standard method. Referring to FIG. 6, the encoder 200 includes an intra predictor 210, an inter predictor 220, a selector 230, a transformer 240, and a quantizer 250. do. However, the encoder 200 shown in FIG. 6 is only one embodiment of the present invention, and various modifications are possible based on the components shown in FIG.

인트라 예측기(210)는 인트라 예측을 수행하고, 인터 예측기(220)는 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(MV)를 기초로 인터 예측을 수행한다. The intra predictor 210 performs intraprediction, and the inter predictor 220 performs inter prediction based on a motion vector (MV) for a macroblock classified as an update area.

선택기(230)는 인트라 예측기(210)로부터 생성되는 예측 데이터와 인터 예측기(220)로부터 생성되는 예측 데이터 중 어느 하나를 선택할 수 있다. The selector 230 may select one of the prediction data generated from the intra predictor 210 and the prediction data generated from the inter predictor 220.

변환기(240)는 인트라 예측기(210) 또는 인터 예측기(220)로부터 생성되는 예측 데이터를 기초로 하다마드 변환(Hadamard Transform), DCT(Discrete Cosine Transform) 등의 방식을 통해 주파수 변환을 수행한다. The converter 240 performs frequency conversion through a Hadamard Transform (DCT) or a Discrete Cosine Transform (DCT) based on prediction data generated from the intra predictor 210 or the inter predictor 220.

양자화기(250)는 변환기(240)로부터 변환된 변환 데이터 및 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하고, 양자화 동작을 위해 DZUTQ (Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix), RDOQ (Rate-Distortion Optimized Quantization) 등의 방식이 사용될 수 있다. The quantizer 250 performs a quantization operation on the basis of the transformed data converted from the transformer 240 and the quantization parameter values for the macroblocks classified into the update area, and performs a quantization operation using the dead zone uniform threshold quantization (DZUTQ) A Quantization Weighted Matrix, and a Rate-Distortion Optimized Quantization (RDOQ) scheme.

이러한 구성을 포함하는 인코더(200)는 상술한 인코딩 맵을 기초로 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인지 판단하여, 해당 매크로 블록이 업데이트 영역으로 구분된 매크로인 경우에만 동작하는 특징이 있을 수 있다. 인코더(200)가 특정 매크로 블록이 업데이트 영역으로 구분된 매크로인 경우에만 동작함으로써, 인코더(200)에는 적응적 프레임 율(Adaptive Frame Rate)이 적용되어 가상화 서버(10)의 부하를 감소시킬 수 있다. 즉, 종래의 인코더처럼 고정된 프레임 율(예를 들어, 30fps)에 의해 인코딩이 이루어지지 않는다. The encoder 200 having such a configuration is characterized in that it is determined that the corresponding macroblock is a macroblock classified as an update area on the basis of the encoding map described above and is operated only when the macroblock is classified as an update area . The encoder 200 operates only when the macro block is a macro classified as the update area so that the adaptive frame rate is applied to the encoder 200 to reduce the load of the virtualization server 10 . That is, the encoding is not performed by a fixed frame rate (for example, 30 fps) as in the conventional encoder.

아울러, 영역 구분부(110)에서 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프(Presentation Time Stamp) 방식을 이용하여 패킷화된 엘리멘트리 스트림(Packetizing Elementary Stream; PES)을 생성하는 구성을 인코더(200)는 더 포함할 수 있다. 이렇게 생성되는 스트림을 포함하는 부호화 데이터는 클라이언트 단말(30)로 전송된다. In addition, a Packetizing Elementary Stream (PES) is generated using the presentation time stamp scheme at the time when the process of rendering each frame included in the WebApp is completed in the region division unit 110, The encoder 200 may further include a configuration for generating a signal. The encoded data including the stream thus generated is transmitted to the client terminal 30. [

다시 도 1을 참고하면, 가상화 서버(10)는 메모리(300)를 포함한다. 메모리(300)는 픽셀 데이터, 상술한 업데이트 영역으로 구분된 매크로 블록에 대한 데이터(움직임 벡터, 조절한 양자화 파라미터 값 및 콘텐츠 타입의 분류 결과 등) 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터 등을 저장할 수 있다. 이러한 메모리(300)의 일 예에는 가상화 서버(10) 내부 또는 외부에 존재하는 하드디스크드라이브, ROM(Read Only Memory), RAM(Random Access Memory), 플래쉬 메모리 및 메모리카드 등이 포함된다. Referring again to FIG. 1, the virtualization server 10 includes a memory 300. The memory 300 stores pixel data, data (a motion vector, an adjusted quantization parameter value, and a classification result of a content type) for the macroblocks classified by the update area, and data on macroblocks classified into the non-update areas Lt; / RTI > One example of such a memory 300 includes a hard disk drive, a ROM (Read Only Memory), a RAM (Random Access Memory), a flash memory, a memory card, and the like existing inside or outside the virtualization server 10.

지금까지 상술한 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 생성된 인코딩 맵을 이용하여 인코딩 동작을 수행함으로써, 가상화 서버의 자원을 보다 효율적으로 사용하고 트래픽 발생량을 획기적으로 감소시킬 수 있다. The virtualization server that provides the WebApp virtualization service according to the above-described embodiment of the present invention performs an encoding operation using an encoding map generated based on rendering data including data on macroblocks classified as update areas Thus, resources of the virtualization server can be used more efficiently, and traffic volume can be greatly reduced.

한편, 본 발명의 각 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법에 대해 도 7 내지 도 9를 참조하여 설명한다. A data transmission method for providing a WebApp virtualization service according to each embodiment of the present invention will be described with reference to FIGS. 7 to 9. FIG.

도 7은 본 발명이 일 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다. 즉, 웹앱(Web Application) 가상화 서비스 제공을 위한 가상화 서버에서 클라이언트 단말로 데이터를 전송하는 과정에 대해 도시한 것이다. 7 is a flowchart illustrating an example of a data transmission method for providing a WebApp virtualization service according to an embodiment of the present invention. That is, a process of transmitting data from a virtualization server to a client terminal for providing a web application virtualization service is shown.

우선 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분한다(S710). 이렇게 렌더링 과정을 통해 획득된 메타데이터는 인코딩 맵 생성에 기초 자료로 사용된다. First, in step S710, each macro block included in a frame is divided into an update area or a non-update area through a process of rendering a WebApp including a plurality of frames. The metadata obtained through the rendering process is used as a basis for encoding map generation.

S710단계에서 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류한다(S720). In step S710, the content type of the macro block classified as the update area is classified into at least one of text, video, and moving image (S720).

업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성한다(S730). 이때, 렌더링 데이터는 S720단계에서 분류된 콘텐츠 타입에 대한 분류 결과를 포함하고, 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터 및 양자화 파라미터 값도 포함할 수 있다. An encoding map is generated based on rendering data including data on macroblocks classified into update areas (S730). At this time, the rendering data includes a classification result for the content type classified in step S720, and may include a motion vector and a quantization parameter value for a macroblock classified as an update area.

S730단계에서 생성된 인코딩 맵을 통해 인코더는 인코딩을 수행하고(S740), 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송한다(S750).The encoder performs encoding through the encoding map generated in step S730 (S740), and transmits the encoded data generated by the encoding to the client terminal (S750).

또한, 도 8은 본 발명이 다른 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다. 8 is a flowchart illustrating an example of a data transmission method for providing a WebApp virtualization service according to another embodiment of the present invention.

우선 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분한다(S810). 이렇게 렌더링 과정을 통해 획득된 메타데이터는 인코딩 맵 생성에 기초 자료로 사용된다. First, in step S810, each macro block included in a frame is divided into an update area or a non-update area through a process of rendering a WebApp including a plurality of frames. The metadata obtained through the rendering process is used as a basis for encoding map generation.

S810단계에서 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류한다(S820). In step S810, the content type of the macro block classified as the update area is classified into at least one of text, video, and moving image (S820).

이어서 콘텐츠 타입에 대한 분류 결과에 따라 양자화 파라미터 값을 조절하는데(S830), 이에 대해 구체적으로 설명하면 다음과 같다. 일 예로 콘텐츠 타입에 대한 분류 결과 및 관심 영역(ROI)에 따라 비트(Bit) 할당이 이루어지도록 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절할 수 있다. 다른 예로 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절할 수 있다. Next, the quantization parameter value is adjusted according to the result of classification for the content type (S830). This will be described in detail as follows. For example, a quantization parameter value of a macroblock classified as an update area may be adjusted so that a bit allocation is performed according to a classification result for a content type and a ROI. As another example, the quantization parameter value of the macro block classified as the update area can be adjusted so that the maximum quantization parameter value when the classification result is text is set to be smaller than the minimum quantization parameter value when the classification result is video or moving image.

업데이트 영역으로 구분된 매크로 블록에 대한 데이터 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성한다(S840). 이때, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터는 S820단계에서 분류된 콘텐츠 타입에 대한 분류 결과 및 S830단계에서 조절한 양자화 파라미터 값을 포함하고, 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터도 포함할 수 있다. In operation S840, an encoding map is generated based on rendering data including data on macroblocks classified as update areas and data on macroblocks classified as non-updating areas. At this time, the data for the macroblock classified as the update area includes the classification result for the content type classified in step S820 and the quantization parameter value adjusted in step S830, and also includes the motion vector for the macroblock classified as the update area can do.

이후에 S840단계에서 생성된 인코딩 맵을 통해 인코더는 업데이트 영역으로 구분된 매크로 블록에 대해 인코딩을 수행하고(S850), 비업데이트 영역으로 구분된 매크로 블록에 대해서 인코딩을 스킵한다(S860). 이와 같이 업데이트 영역으로 구분된 매크로 블록에 대해서만 인코딩을 수행하고, 나머지 매크로 블록에 대해서는 인코딩을 스킵함으로써, 가상화 서버(10)에서 클라이언트 단말(30)로 웹앱 가상화 서비스 제공을 위한 데이터를 전송할 때 트래픽 발생을 최소화할 수 있다. In operation S850, the encoder performs encoding on the macro block classified as the update area through the encoding map generated in operation S840, and skips the encoding on the macro block classified as the non-update area in operation S860. When data for providing a WebApp virtualization service is transmitted from the virtualization server 10 to the client terminal 30 by encoding only the macro blocks classified as the update area and skipping the encoding for the remaining macro blocks, Can be minimized.

최종적으로 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송한다(S870).Finally, the encoded data generated by the encoding is transmitted to the client terminal (S870).

나아가, 도 9는 도 7 및 도 8의 동작 과정 중에서 인코딩 맵을 생성하는 단계와 인코딩을 수행하는 단계에 대해 컴퓨터 프로그램으로 구현해낸 소스 코드이다. 9 is a source code embodied in a computer program for the step of generating an encoding map and the step of performing encoding in the operation procedures of FIGS. 7 and 8. FIG.

특정 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 렌더링 과정이 완료되면, Update_Event_Handler 함수가 동작을 시작한다(S910). When the rendering process of dividing each macroblock included in a specific frame into an update area and a non-update area is completed, the Update_Event_Handler function starts its operation (S910).

렌더링 과정을 통해 획득된 렌더링 데이터(메타데이터)를 받아 인코딩 맵을 생성하고(S920), 생성한 인코딩 맵 및 픽셀 데이터를 기초로 하나의 특정 프레임에 대한 인코딩을 수행한다(S930). 특정 프레임에 복수의 매크로 블록이 포함되므로, 매크로 블록의 전체 개수를 기초로 아래 과정들을 반복 수행한다(S940). In operation S920, an encoding map is generated by receiving the rendering data (metadata) obtained through the rendering process, and encoding is performed for one specific frame based on the generated encoding map and pixel data (S930). Since a plurality of macroblocks are included in a specific frame, the following processes are repeated based on the total number of macroblocks (S940).

후술할 예측 데이터를 생성하기 이전에 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인지 플래그 값을 통해 판단한다(S950). 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인 경우에만 인트라 예측 및 인터 예측을 통해 예측 데이터를 생성한다(S960). 즉, 해당 매크로 블록이 비업데이트 영역으로 구분된 매크로 블록인 경우, 실질적인 인코딩 수행이 이루어지지 않으며 건너뜀 혹은 스킵 처리된다. Before generating the predictive data to be described later, it is determined whether the corresponding macroblock is a macroblock classified as an update area through a flag value (S950). Prediction data is generated through intraprediction and inter-prediction only when the corresponding macroblock is a macroblock divided into update regions (S960). That is, if the corresponding macroblock is a macroblock classified as a non-update area, actual encoding is not performed and skipped or skipped.

S960 단계에서 인트라 예측을 통해 생성된 예측 데이터와 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터를 기초로 수행한 인터 예측을 통해 생성된 예측 데이터 중 어느 하나를 선택한다. 이때, 선택한 예측 데이터를 기초로 주파수 변환을 수행하여 변환 데이터를 생성하고, 변환 데이터 및 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행한다(S970).In step S960, one of the prediction data generated through the intra prediction and the prediction data generated through the inter prediction performed on the basis of the motion vector for the macro block separated by the update area is selected. At this time, frequency conversion is performed based on the selected prediction data to generate transform data, and a quantization operation is performed based on the quantization parameter values of the macroblocks classified into the transform data and the update area (S970).

업데이트 영역으로 구분된 모든 매크로 블록에 대해 S970 단계를 수행한 이후에 엔트로피 코딩이 이루어진다(S980). 엔트로피 코딩까지 마치면 하나의 특정 프레임에 대한 인코딩 과정이 완료된 것으로 판단할 수 있다. Entropy coding is performed after performing step S970 for all macroblocks classified as the update area (S980). When the entropy coding is completed, it can be determined that the encoding process for one specific frame is completed.

웹앱은 복수의 프레임을 포함하므로, 모든 프레임에 대하여 상술한 과정이 수행된 이후에 이들 프레임을 묶어주는 후처리 과정이 필요하다. 이때, S910 단계에서 각 프레임에 대한 렌더링 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(PES)을 생성할 수 있다(S990). Since the WebApp includes a plurality of frames, there is a need for a post-processing process for grouping these frames after all the frames are processed. At this time, the packetized elementary stream (PES) may be generated using the time at which the rendering process for each frame is completed and the presentation time stamp scheme at step S910 (S990).

도 9를 통해 설명된 실시예에 따른 인코딩 과정은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. The encoding process according to the embodiment described with reference to FIG. 9 may also be implemented in the form of a recording medium including instructions executable by a computer such as a program module executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

지금까지 상술한 본 발명의 각 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법은 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터, 양자화 파라미터 값 및 콘텐츠 타입에 대한 분류 결과를 포함하는 렌더링 데이터를 기초로 생성된 인코딩 맵을 이용하여 인코딩 동작을 수행함으로써, 가상화 서버에서는 자원 효율을 향상시키면서 트래픽 발생량 및 가해지는 부하를 감소시킬 수 있다. 또한, 본 발명에 따른 데이터 전송방법을 이용하면 클라이언트 단말의 사양과 상관없이 전송이 가능하고, 복잡도를 감소시킬 수 있다. The data transmission method for providing the WebApp virtualization service according to each of the above embodiments of the present invention includes rendering data including a motion vector for a macroblock classified as an update area, a quantization parameter value, and a classification result for a content type By performing the encoding operation using the generated encoding map based on the base, the traffic generation amount and the load to be applied can be reduced while improving resource efficiency in the virtualization server. Further, by using the data transmission method according to the present invention, transmission can be performed irrespective of the specification of the client terminal, and the complexity can be reduced.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10: 가상화 서버
100: 웹엔진
200: 인코더
10: Virtualization server
100: Web engine
200: Encoder

Claims (18)

클라이언트 단말로 데이터를 전송하여 웹앱(Web Application) 가상화 서비스를 제공하는 가상화 서버에 있어서,
복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진; 및
상기 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
1. A virtualization server for providing data to a client terminal to provide a web application virtualization service,
The rendering method of the present invention includes dividing each macroblock included in the frame into an update area or a non-update area by rendering a web application including a plurality of frames, A web engine for generating an encoding map with the encoding engine; And
And an encoder for performing encoding through the encoding map to generate encoded data
A virtualization server that provides WebApp virtualization services.
제 1 항에 있어서,
상기 렌더링 데이터는 상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(Motion Vector)와, 최대 및 최소 양자화 파라미터 값을 더 포함하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
The method according to claim 1,
The rendering data may further include a motion vector for a macroblock divided into the update area and a maximum and minimum quantization parameter value
A virtualization server that provides WebApp virtualization services.
제 1 항에 있어서,
상기 웹엔진은 상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하고, 상기 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
The method according to claim 1,
The web engine classifies the content type of the macro block divided into the update area and generates the encoding map based on the rendering data further including the classification result for the content type
A virtualization server that provides WebApp virtualization services.
제 3 항에 있어서,
상기 웹엔진은 상기 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
The method of claim 3,
The web engine classifies the content type into at least one of text, video, and moving image
A virtualization server that provides WebApp virtualization services.
제 3 항에 있어서,
상기 웹엔진은 상기 분류 결과 및 관심 영역(ROI)에 따라 비트(Bit) 할당이 이루어지도록 상기 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 조절하고, 상기 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
The method of claim 3,
Wherein the web engine adjusts a quantization parameter value for a macroblock classified as the update area so that a bit allocation is performed according to the classification result and ROI and outputs the encoding map based on the rendering data Generating
A virtualization server that provides WebApp virtualization services.
제 3 항에 있어서,
상기 웹엔진은 상기 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 상기 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
The method of claim 3,
The web engine adjusts a quantization parameter value of the macro block divided into the update area so that the maximum quantization parameter value when the classification result is text is set to be smaller than the minimum quantization parameter value when the classification result is video or moving image , And generates the encoding map based on the rendering data
A virtualization server that provides WebApp virtualization services.
제 1 항에 있어서, 상기 인코더는
인트라 예측을 수행하는 인트라 예측기(Intra Predictor);
상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(Motion Vector)를 기초로 인터 예측을 수행하는 인터 예측기(Inter Predictor);
상기 인트라 예측기 또는 인터 예측기로부터 생성되는 예측 데이터를 기초로 주파수 변환을 수행하는 변환기(Transformer); 및
상기 변환기로부터 변환된 변환 데이터 및 상기 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하는 양자화기(Quantizer)를 포함하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
2. The apparatus of claim 1, wherein the encoder
An intra predictor for performing intra prediction;
An Inter Predictor for performing inter-prediction based on a motion vector of a macroblock divided into the update regions;
A transformer for performing frequency conversion based on prediction data generated from the intra predictor or the inter predictor; And
And a quantizer for performing a quantization operation based on the transformed data converted from the transformer and the quantization parameter values of the macroblocks separated by the update area,
A virtualization server that provides WebApp virtualization services.
제 1 항에 있어서, 상기 인코더는
상기 인코딩 맵을 기초로 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인지 판단하여 상기 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로인 경우에만 동작하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
2. The apparatus of claim 1, wherein the encoder
Determining whether the corresponding macroblock is a macroblock classified as the update area based on the encoding map and operating only when the corresponding macroblock is a macro classified as the update area
A virtualization server that provides WebApp virtualization services.
제 1 항에 있어서, 상기 인코더는
상기 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(PES)을 생성하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
2. The apparatus of claim 1, wherein the encoder
A packetized elementary stream (PES) is generated using a time at which the rendering of each frame included in the webapp is completed and a presentation time stamp scheme
A virtualization server that provides WebApp virtualization services.
웹앱(Web Application) 가상화 서비스 제공을 위한 가상화 서버에서 클라이언트 단말로 데이터를 전송하는 방법에 있어서,
복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계;
상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계;
상기 인코딩 맵을 통해 인코딩을 수행하는 단계; 및
상기 인코딩에 의해 생성된 부호화 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
A method for transmitting data from a virtualization server to a client terminal for providing a virtualization service,
Dividing each macroblock included in the frame into an update area or a non-update area through a process of rendering a web application including a plurality of frames;
Generating an encoding map based on rendering data including data for macroblocks separated by the update area;
Performing encoding through the encoding map; And
And transmitting the encoded data generated by the encoding to the client terminal
Data transmission method for providing WebApp virtualization service.
제 10 항에 있어서, 상기 생성하는 단계는
상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하는 단계; 및
상기 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
11. The method of claim 10, wherein the generating comprises:
Classifying the content type of the macro block divided into the update area; And
And generating the encoding map based on rendering data further including a classification result for the content type
Data transmission method for providing WebApp virtualization service.
제 11 항에 있어서, 상기 인코딩 맵을 생성하는 단계는
상기 분류 결과 및 관심 영역(ROI)에 따라 비트(Bit) 할당이 이루어지도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
12. The method of claim 11, wherein generating the encoding map comprises:
The quantization parameter value of the macro block divided into the update area is adjusted so that a bit allocation is performed according to the classification result and the ROI, and based on the rendering data further including the adjusted quantization parameter value, doing
Data transmission method for providing WebApp virtualization service.
제 11 항에 있어서, 상기 인코딩 맵을 생성하는 단계는
상기 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 상기 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
12. The method of claim 11, wherein generating the encoding map comprises:
Adjusting a quantization parameter value of a macroblock divided into the update area so that a maximum quantization parameter value when the classification result is text is set to be smaller than a minimum quantization parameter value when the classification result is an image or a moving image, Based on rendering data that further includes quantization parameter values
Data transmission method for providing WebApp virtualization service.
제 10 항에 있어서, 상기 인코딩을 수행하는 단계는
인트라 예측을 통해 생성된 예측 데이터와 상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(Motion Vector)를 기초로 수행한 인터 예측을 통해 생성된 예측 데이터 중 어느 하나를 선택하는 단계;
상기 선택한 예측 데이터를 기초로 주파수 변환을 수행하여 변환 데이터를 생성하는 단계; 및
상기 변환 데이터 및 상기 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하는 단계를 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
11. The method of claim 10, wherein performing the encoding further comprises:
Selecting one of predictive data generated through intra prediction and predictive data generated through inter-prediction based on a motion vector for a macroblock divided by the update area;
Performing frequency conversion on the basis of the selected prediction data to generate transformed data; And
And performing a quantization operation on the basis of the transformed data and a quantization parameter value for a macroblock divided into the update area
Data transmission method for providing WebApp virtualization service.
제 14 항에 있어서,
상기 예측 데이터를 생성하기 이전에 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인지 판단하는 단계;
상기 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인 경우에만 상기 인트라 예측 및 상기 인터 예측을 통해 예측 데이터를 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
15. The method of claim 14,
Determining whether the macroblock is a macroblock divided into the update area before generating the prediction data;
And generating prediction data through the intra prediction and the inter prediction only when the corresponding macroblock is a macroblock divided into the update area
Data transmission method for providing WebApp virtualization service.
제 10 항에 있어서,
상기 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(PES)을 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
11. The method of claim 10,
Further comprising generating a packetized elementary stream (PES) using a time at which the rendering of each frame included in the WebApp is completed and a presentation time stamp scheme
Data transmission method for providing WebApp virtualization service.
웹앱(Web Application) 가상화 서비스 제공을 위한 가상화 서버에서 클라이언트 단말로 데이터를 전송하는 방법에 있어서,
복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계;
상기 업데이트 영역으로 구분된 매크로 블록 및 상기 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계;
상기 업데이트 영역으로 구분된 매크로 블록에 대해서 상기 인코딩 맵을 통해 인코딩을 수행하는 단계;
상기 비업데이트 영역으로 구분된 매크로 블록에 대해서 상기 인코딩을 스킵하는 단계; 및
상기 인코딩에 의해 생성된 부호화 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
A method for transmitting data from a virtualization server to a client terminal for providing a virtualization service,
Dividing each macroblock included in the frame into an update area or a non-update area through a process of rendering a web application including a plurality of frames;
Generating an encoding map based on rendering data including data on macroblocks classified as the update area and macroblocks classified as the non-update area;
Encoding the macroblocks classified as the update area through the encoding map;
Skipping the encoding for macroblocks separated into the non-update areas; And
And transmitting the encoded data generated by the encoding to the client terminal
Data transmission method for providing WebApp virtualization service.
제 17 항에 있어서, 상기 생성하는 단계는
상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하는 단계; 및
상기 콘텐츠 타입에 대한 분류 결과에 따라 양자화 파라미터 값을 조절하고,상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
18. The method of claim 17, wherein the generating comprises:
Classifying the content type of the macro block divided into the update area; And
Adjusting a quantization parameter value according to a classification result for the content type, and generating the encoding map based on rendering data further including the adjusted quantization parameter value
Data transmission method for providing WebApp virtualization service.
KR20120124402A 2012-11-05 2012-11-05 Virtualization server providing virtualization service of web application and method for transmitting data for providing the same KR101491591B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20120124402A KR101491591B1 (en) 2012-11-05 2012-11-05 Virtualization server providing virtualization service of web application and method for transmitting data for providing the same
US14/072,214 US20140129923A1 (en) 2012-11-05 2013-11-05 Server hosting web-based applications on behalf of device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20120124402A KR101491591B1 (en) 2012-11-05 2012-11-05 Virtualization server providing virtualization service of web application and method for transmitting data for providing the same

Publications (2)

Publication Number Publication Date
KR20140057983A true KR20140057983A (en) 2014-05-14
KR101491591B1 KR101491591B1 (en) 2015-02-09

Family

ID=50623546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20120124402A KR101491591B1 (en) 2012-11-05 2012-11-05 Virtualization server providing virtualization service of web application and method for transmitting data for providing the same

Country Status (2)

Country Link
US (1) US20140129923A1 (en)
KR (1) KR101491591B1 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160066274A (en) * 2014-12-02 2016-06-10 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using application code and apparatus for the same
KR20160087256A (en) * 2015-01-13 2016-07-21 엔트릭스 주식회사 System for cloud streaming service, method of message-based image cloud streaming service and apparatus for the same
KR20160087255A (en) * 2015-01-13 2016-07-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service considering full screen transition and apparatus for the same
KR20160087227A (en) * 2015-01-13 2016-07-21 에스케이플래닛 주식회사 System for cloud streaming service, method of image cloud streaming service using animation message and apparatus for the same
KR20160087129A (en) * 2015-01-13 2016-07-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using application code conversion and apparatus for the same
KR20160109805A (en) * 2015-03-13 2016-09-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using split of changed image and apparatus for the same
KR20160132607A (en) * 2015-05-11 2016-11-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using data substitution and apparatus for the same
KR20170022599A (en) * 2015-08-21 2017-03-02 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using reduction of color bit and apparatus for the same
KR20170025140A (en) * 2015-08-27 2017-03-08 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service based on detection of change area using operating system massage and apparatus for the same
KR20210027341A (en) * 2015-01-13 2021-03-10 에스케이플래닛 주식회사 System for cloud streaming service, method of image cloud streaming service considering full screen transition and apparatus for the same
KR20210027342A (en) * 2015-01-13 2021-03-10 에스케이플래닛 주식회사 System for cloud streaming service, method of message-based image cloud streaming service and apparatus for the same
KR20210027340A (en) * 2015-01-13 2021-03-10 에스케이플래닛 주식회사 System for cloud streaming service, method of image cloud streaming service using animation message and apparatus for the same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150062745A (en) * 2013-11-29 2015-06-08 한국전자통신연구원 Apparatus and methdo for virtualization service
KR20150099891A (en) * 2014-02-23 2015-09-02 삼성전자주식회사 Data Transition Processing Method and Electronic Device supporting the same
CN110110075A (en) * 2017-12-25 2019-08-09 中国电信股份有限公司 Web page classification method, device and computer readable storage medium

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266369B1 (en) * 1998-06-09 2001-07-24 Worldgate Service, Inc. MPEG encoding technique for encoding web pages
US7254824B1 (en) * 1999-04-15 2007-08-07 Sedna Patent Services, Llc Encoding optimization techniques for encoding program grid section of server-centric interactive programming guide
US8595308B1 (en) * 1999-09-10 2013-11-26 Ianywhere Solutions, Inc. System, method, and computer program product for server side processing in a mobile device environment
US6606525B1 (en) * 1999-12-27 2003-08-12 Motorola, Inc. System and method of merging static data in web pages
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7139814B2 (en) * 2000-12-01 2006-11-21 Intel Corporation Dynamic content delivery to static page in non-application capable environment
AU2002258769A1 (en) * 2001-04-09 2002-10-21 America Online Incorporated Server-based browser system
US20030004984A1 (en) * 2001-07-02 2003-01-02 Iscreen Corporation Methods for transcoding webpage and creating personal profile
EP2202989B1 (en) * 2002-04-26 2014-04-16 NTT DoCoMo, Inc. Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method, image encoding program, and image decoding program
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
CN1910934B (en) * 2004-01-30 2011-07-06 汤姆森许可贸易公司 Encoder with adaptive rate control
US20050201470A1 (en) * 2004-03-12 2005-09-15 John Sievers Intra block walk around refresh for H.264
JP4514203B2 (en) * 2004-06-11 2010-07-28 キヤノン株式会社 Motion vector detection apparatus and method
US7760956B2 (en) * 2005-05-12 2010-07-20 Hewlett-Packard Development Company, L.P. System and method for producing a page using frames of a video stream
TWI279143B (en) * 2005-07-11 2007-04-11 Softfoundry Internat Ptd Ltd Integrated compensation method of video code flow
SG10201402464XA (en) * 2005-12-07 2014-10-30 3Dlabs Inc Ltd Methods for manipulating web pages
US7995649B2 (en) * 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8270490B2 (en) * 2006-07-06 2012-09-18 Canon Kabushiki Kaisha Motion vector detection apparatus, motion vector detection method, image encoding apparatus, image encoding method, and computer program
JP4993676B2 (en) * 2006-09-01 2012-08-08 キヤノン株式会社 Image coding apparatus and image coding method
US7614003B2 (en) * 2006-10-23 2009-11-03 Adobe Systems Incorporated Rendering hypertext markup language content
JP2008234148A (en) * 2007-03-19 2008-10-02 Ricoh Co Ltd Document display, document display method, and document display program
US20090024916A1 (en) * 2007-07-20 2009-01-22 Burckart Erik J Seamless Asynchronous Updates of Dynamic Content
US8897359B2 (en) * 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US20120151408A1 (en) * 2008-11-26 2012-06-14 Lila Aps (AHead) Dynamic network browser
US8468130B2 (en) * 2010-04-02 2013-06-18 Skyfire Labs, Inc. Assisted hybrid mobile browser
US9003455B2 (en) * 2010-07-30 2015-04-07 Guest Tek Interactive Entertainment Ltd. Hospitality media system employing virtual set top boxes
KR20120039237A (en) * 2010-10-15 2012-04-25 삼성전자주식회사 Method and apparatus for updating user interface
US8966359B2 (en) * 2012-01-26 2015-02-24 International Business Machines Corporation Web application content mapping
KR101340588B1 (en) * 2012-02-29 2013-12-11 주식회사 팬택 Method and apparatus for comprising webpage

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160066274A (en) * 2014-12-02 2016-06-10 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using application code and apparatus for the same
KR20160087256A (en) * 2015-01-13 2016-07-21 엔트릭스 주식회사 System for cloud streaming service, method of message-based image cloud streaming service and apparatus for the same
KR20160087255A (en) * 2015-01-13 2016-07-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service considering full screen transition and apparatus for the same
KR20160087227A (en) * 2015-01-13 2016-07-21 에스케이플래닛 주식회사 System for cloud streaming service, method of image cloud streaming service using animation message and apparatus for the same
KR20160087129A (en) * 2015-01-13 2016-07-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using application code conversion and apparatus for the same
KR20210027341A (en) * 2015-01-13 2021-03-10 에스케이플래닛 주식회사 System for cloud streaming service, method of image cloud streaming service considering full screen transition and apparatus for the same
KR20210027342A (en) * 2015-01-13 2021-03-10 에스케이플래닛 주식회사 System for cloud streaming service, method of message-based image cloud streaming service and apparatus for the same
KR20210027340A (en) * 2015-01-13 2021-03-10 에스케이플래닛 주식회사 System for cloud streaming service, method of image cloud streaming service using animation message and apparatus for the same
KR20160109805A (en) * 2015-03-13 2016-09-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using split of changed image and apparatus for the same
KR20160132607A (en) * 2015-05-11 2016-11-21 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using data substitution and apparatus for the same
KR20170022599A (en) * 2015-08-21 2017-03-02 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service using reduction of color bit and apparatus for the same
KR20170025140A (en) * 2015-08-27 2017-03-08 엔트릭스 주식회사 System for cloud streaming service, method of image cloud streaming service based on detection of change area using operating system massage and apparatus for the same

Also Published As

Publication number Publication date
US20140129923A1 (en) 2014-05-08
KR101491591B1 (en) 2015-02-09

Similar Documents

Publication Publication Date Title
KR101491591B1 (en) Virtualization server providing virtualization service of web application and method for transmitting data for providing the same
CN111741309B (en) Method and apparatus for encoding/decoding motion vector
US11206405B2 (en) Video encoding method and apparatus, video decoding method and apparatus, computer device, and storage medium
US10506239B2 (en) Method and device for intra prediction video
US20190158866A1 (en) Motion vector prediction method and apparatus for encoding or decoding video
US9800877B2 (en) Method and apparatus for video encoding for each spatial sub-area, and method and apparatus for video decoding for each spatial sub-area
CN108307196B (en) Video encoding method and video encoding apparatus
US11412229B2 (en) Method and apparatus for video encoding and decoding
EP2568709B1 (en) Image processing apparatus, image processing method, and image processing system
US11172220B2 (en) Video encoding method, and storage medium thereof
US20150229967A1 (en) Inter-layer video coding method and device for predictive information based on tree structure coding unit, and inter-layer video decoding method and device for predictive informationbased on tree structure coding unit
CN103974060B (en) Video quality method of adjustment and device
KR20190061073A (en) Code rate allocation method for intra frame coded frames, computer equipment, and storage medium
US20150010056A1 (en) Method and apparatus for video encoding capable of parallel entropy encoding of subregions, method and apparatus for video decoding capable of parallel entropy decoding of subregions
WO2021238540A1 (en) Image encoding method, image decoding method, and related apparatuses
KR20120082994A (en) Motion vector coding and decoding method and apparatus
CN107079159B (en) Method and device for parallel video decoding based on multi-core system
CN106717005B (en) Video encoding/decoding method and apparatus for controlling reference picture data according to reference frequency
US20140286410A1 (en) System and method for non-uniform video coding
Miao et al. A high-fidelity and low-interaction-delay screen sharing system
JP2005341093A (en) Contents adaptating apparatus, contents adaptation system, and contents adaptation method
JP2021535685A (en) Methods, inter-prediction methods, and devices for building motion information candidate lists
CN112740276A (en) Method and apparatus for intra reference sample interpolation filter switching
WO2023221599A1 (en) Image filtering method and apparatus and device
CN114640849B (en) Live video encoding method, device, computer equipment and readable storage medium

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
GRNT Written decision to grant