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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network 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
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.
웹앱(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
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
5 is a diagram for explaining various examples of the content type.
6 is a configuration diagram of an example of the
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
도 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
본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버(10)는 웹엔진(100), 인코더(200), 메모리(300)를 포함한다. 각 구성은 서로 연결되어 데이터를 송수신할 수 있고, 이들 구성에 대한 상세한 설명은 도 2 및 도 6을 참고하여 후술하기로 한다. 덧붙여, 클라이언트 단말(30)과 네트워크(20)를 통해 통신하기 위한 통신부 및 관리자로부터 특정 명령 내지 정보를 입력받기 위한 관리자 인터페이스 등의 구성을 더 포함할 수 있다. 이 경우, 관리자 인터페이스는 일반적으로 키보드, 마우스 등과 같은 입력 장치가 될 수도 있으나, 영상 표시 장치에 표현되는 그래픽 유저 인터페이스(GUI, Graphical User interface)가 될 수도 있다. The
본 발명의 다양한 실시예들에 따르면 복수의 클라이언트 단말(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
이하에서는 도 1의 가상화 서버(10)에 포함된 각각의 구성요소의 동작에 대해 보다 구체적으로 설명한다. Hereinafter, the operation of each component included in the
도 2는 도 1에 도시된 웹엔진(100)의 일 예에 대한 구성도이다. 도 2를 참조하면, 웹엔진(100)는 영역 구분부(110), 인코딩 맵 생성부(120) 및 콘텐츠 타입 분류부(130)를 포함한다. 다만, 도 2에 도시된 웹엔진(100)은 본 발명의 하나의 구현 예에 불과하며, 도 2에 도시된 구성요소들을 기초로 하여 다양한 변형이 가능하다. FIG. 2 is a configuration diagram of an example of the
영역 구분부(110)는 복수의 프레임을 포함하는 웹앱에 대해 렌더링(Rendering)을 수행하고, 렌더링 과정을 통해 프레임에 포함된 각 매크로 블록(Macro Block)을 업데이트 영역 또는 비업데이트 영역으로 구분한다. 즉, 영역 구분부(110)는 렌더링 과정을 통해 후술할 인코딩에 필요한 렌더링 데이터를 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터가 포함되어 있다. The
이때, 렌더링 작업은 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
아울러, 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 것과 관련하여 도 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
아울러, 후술할 인코더(200)에 필요한 인코딩 맵과 관련하여 도 4를 참고하여 설명한다. 도 4는 도 2의 인코딩 맵 생성부(120)에 의해 생성된 인코딩 맵의 일 예를 도시한 도면이다. The encoding map required for the
도 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
또한, 콘텐츠 타입 분류부(130)는 웹엔진(100)의 일 구성으로서 상술한 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류한다. 상술한 인코딩 맵 생성부(120)는 콘텐츠 타입 분류부(130)와 연동하여 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성할 수 있다. In addition, the content
특히, 콘텐츠 타입 분류부(130)는 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류할 수 있는데, 이에 대해 도 5를 참고하여 설명한다. 도 5는 콘텐츠 타입에 대한 다양한 예를 설명하기 위한 도면이다. In particular, the content
도 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
나아가, 웹엔진(100)은 도 2에 도시된 구성 이외에 QP 조절부(미도시)를 더 포함할 수 있다. QP 조절부는 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 조절한다. Furthermore, the
일 예에 따른 양자화 파라미터 값은 콘텐츠 타입 분류부(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
다른 예에 따른 양자화 파라미터 값은 콘텐츠 타입 분류부(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
다시 도 1을 참고하면, 가상화 서버(10)는 인코더(200)를 포함하는데 인코더(200)에 대해서는 도 6을 참고하여 설명한다. 도 6은 도 1에 도시된 인코더(200)의 일 예에 대한 구성도이다. Referring again to FIG. 1, the
인코더(200)는 상술한 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성한다. 인코더(200)의 인코딩 동작은 예를 들면 H.264/AVC 코덱 표준 방식과 같은 종래에 공지된 방식에 의해 이루어질 수 있다. 도 6을 참조하면, 인코더(200)는 인트라 예측기(Intra Predictor, 210), 인터 예측기(Inter Predictor, 220), 선택기(230), 변환기(Transformer, 240) 및 양자화기(Quantizer, 250)를 포함한다. 다만, 도 6에 도시된 인코더(200)는 본 발명의 하나의 구현 예에 불과하며, 도 6에 도시된 구성요소들을 기초로 하여 다양한 변형이 가능하다. The
인트라 예측기(210)는 인트라 예측을 수행하고, 인터 예측기(220)는 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(MV)를 기초로 인터 예측을 수행한다. The
선택기(230)는 인트라 예측기(210)로부터 생성되는 예측 데이터와 인터 예측기(220)로부터 생성되는 예측 데이터 중 어느 하나를 선택할 수 있다. The
변환기(240)는 인트라 예측기(210) 또는 인터 예측기(220)로부터 생성되는 예측 데이터를 기초로 하다마드 변환(Hadamard Transform), DCT(Discrete Cosine Transform) 등의 방식을 통해 주파수 변환을 수행한다. The
양자화기(250)는 변환기(240)로부터 변환된 변환 데이터 및 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하고, 양자화 동작을 위해 DZUTQ (Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix), RDOQ (Rate-Distortion Optimized Quantization) 등의 방식이 사용될 수 있다. The
이러한 구성을 포함하는 인코더(200)는 상술한 인코딩 맵을 기초로 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인지 판단하여, 해당 매크로 블록이 업데이트 영역으로 구분된 매크로인 경우에만 동작하는 특징이 있을 수 있다. 인코더(200)가 특정 매크로 블록이 업데이트 영역으로 구분된 매크로인 경우에만 동작함으로써, 인코더(200)에는 적응적 프레임 율(Adaptive Frame Rate)이 적용되어 가상화 서버(10)의 부하를 감소시킬 수 있다. 즉, 종래의 인코더처럼 고정된 프레임 율(예를 들어, 30fps)에 의해 인코딩이 이루어지지 않는다. The
아울러, 영역 구분부(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
다시 도 1을 참고하면, 가상화 서버(10)는 메모리(300)를 포함한다. 메모리(300)는 픽셀 데이터, 상술한 업데이트 영역으로 구분된 매크로 블록에 대한 데이터(움직임 벡터, 조절한 양자화 파라미터 값 및 콘텐츠 타입의 분류 결과 등) 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터 등을 저장할 수 있다. 이러한 메모리(300)의 일 예에는 가상화 서버(10) 내부 또는 외부에 존재하는 하드디스크드라이브, ROM(Read Only Memory), RAM(Random Access Memory), 플래쉬 메모리 및 메모리카드 등이 포함된다. Referring again to FIG. 1, the
지금까지 상술한 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 생성된 인코딩 맵을 이용하여 인코딩 동작을 수행함으로써, 가상화 서버의 자원을 보다 효율적으로 사용하고 트래픽 발생량을 획기적으로 감소시킬 수 있다. 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
최종적으로 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송한다(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)
복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진; 및
상기 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
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.
상기 렌더링 데이터는 상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(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.
상기 웹엔진은 상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하고, 상기 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
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.
상기 웹엔진은 상기 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
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.
상기 웹엔진은 상기 분류 결과 및 관심 영역(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.
상기 웹엔진은 상기 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 상기 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
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.
인트라 예측을 수행하는 인트라 예측기(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.
상기 인코딩 맵을 기초로 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인지 판단하여 상기 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로인 경우에만 동작하는
웹앱 가상화 서비스를 제공하는 가상화 서버.
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.
상기 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(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.
복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계;
상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계;
상기 인코딩 맵을 통해 인코딩을 수행하는 단계; 및
상기 인코딩에 의해 생성된 부호화 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
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.
상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하는 단계; 및
상기 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
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.
상기 분류 결과 및 관심 영역(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.
상기 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 상기 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
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.
인트라 예측을 통해 생성된 예측 데이터와 상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(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.
상기 예측 데이터를 생성하기 이전에 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인지 판단하는 단계;
상기 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인 경우에만 상기 인트라 예측 및 상기 인터 예측을 통해 예측 데이터를 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
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.
상기 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(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.
복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계;
상기 업데이트 영역으로 구분된 매크로 블록 및 상기 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계;
상기 업데이트 영역으로 구분된 매크로 블록에 대해서 상기 인코딩 맵을 통해 인코딩을 수행하는 단계;
상기 비업데이트 영역으로 구분된 매크로 블록에 대해서 상기 인코딩을 스킵하는 단계; 및
상기 인코딩에 의해 생성된 부호화 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
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.
상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하는 단계; 및
상기 콘텐츠 타입에 대한 분류 결과에 따라 양자화 파라미터 값을 조절하고,상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는 단계를 더 포함하는
웹앱 가상화 서비스 제공을 위한 데이터 전송방법.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.
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)
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)
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)
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 |
-
2012
- 2012-11-05 KR KR20120124402A patent/KR101491591B1/en active IP Right Grant
-
2013
- 2013-11-05 US US14/072,214 patent/US20140129923A1/en not_active Abandoned
Cited By (12)
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 |