KR101491591B1 - 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법 - Google Patents

웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법 Download PDF

Info

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

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)
  • Development Economics (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (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

클라이언트 단말로 데이터를 전송하여 웹앱(Web Application) 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법이 개시된다. 보다 상세하게는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진; 및 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하는 웹앱 가상화 서비스를 제공하는 가상화 서버가 제공된다.

Description

웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법{VIRTUALIZATION SERVER PROVIDING VIRTUALIZATION SERVICE OF WEB APPLICATION AND METHOD FOR TRANSMITTING DATA FOR PROVIDING THE SAME}
웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법{VIRTUALIZATION SERVER PROVIDING VIRTUALIZATION SERVICE OF WEB APPLICATION AND METHOD FOR TRANSMITTING DATA FOR PROVIDING THE SAME}
웹앱(Web Application)은 다른 환경의 운영체제(OS)에서 공통으로 사용할 수 있는 크로스 플랫폼(Cross-Platform) 및 각종 콘텐츠와 서비스를 융합하는 매쉬업(Mash up)에 용이하다. 또한, 웹앱은 IPTV, 스마트TV 등을 위한 서비스를 개발하는 데에 적합하고, 웹앱을 위한 서비스 개발 환경도 개발자에게 친숙하다.
이러한 웹앱은 HTML, JavaScript, CSS와 같은 인터프리터 언어로 개발되므로, 웹앱을 실행하기 위해서는 웹브라우져(웹엔진)가 클라이언트 단말에 탑재되어야 할 뿐만 아니라, 네이티브 방식으로 개발된 앱보다 고사양의 클라이언트 단말이 요구된다. 따라서 저사양 단말 또는 제로 클라이언트(Zero Client)로 웹앱 서비스를 제공하기 위해서는 클라우드를 기반으로 웹앱을 가상화하는 기술이 필요하다.
한편, 클라우드 기반 가상화 서비스는 일반적으로 원격서버에서 실행된 서비스에 대한 최종 결과 화면이 캡쳐되어 클라이언트 단말로 전달된다. 또한, 클라이언트 단말에서 발생된 사용자 인터렉션 데이터는 원격서버로 전달된다. 종래에 원격서버에서 클라이언트 단말로 데이터를 전송하는 방식은 이미지 전송방식(RDP/VNC 등) 및 동영상 스트리밍 방식이 있다.
RDP/VNC 방식의 경우 원격서버에서 클라이언트 단말로 이미지 데이터를 전송하기 위해 과도한 트래픽이 발생하는 문제점과, 수신된 이미지 데이터를 처리하기 위한 RDP/VNC 클라이언트를 클라이언트 단말에 설치해야 하므로 클라이언트 단말의 복잡도가 상승한다는 문제점이 있다. 다시 말하자면, 종래 RDP/VNC 방식을 통해 게임 등과 같은 동적인 웹앱을 위한 데이터를 전송하는 것은 비경제적이고 서비스 품질(frame rate) 감소를 감수해야 한다. 특히, 클라이언트 단말이 저사양인 경우 종래 RDP/VNC 방식을 통해 데이터 전송하는 것은 현실적으로 어렵다는 문제점이 있다.
또한, 동영상 스트리밍 방식의 경우 원격서버에서 데이터를 전송하기 전에 화면 캡쳐, 동영상 인코딩, 스트리밍 등의 추가 과정을 거쳐야 하므로, 원격서버에 부하가 과도하게 발생한다는 문제점이 있다. 이와 관련하여, 선행기술인 한국 특허공개번호 제2012-0072904호에는 클라우드 컴퓨팅 서버에서 실행되는 게임의 AV(Audio-Video) 데이터를 캡쳐하고, 이를 인코딩하여 하나 이상의 사용자 단말로 동영상 스트리밍하는 기술에 대해 개시하고 있다.
종래의 RDP/VNC 방식이나 동영상 스트리밍 방식과 전혀 다른 가상화 기법을 통해 저사양 단말 또는 제로 클라이언트로 게임과 같은 동적인 웹앱 서비스를 경제성 있게 제공하고자 한다. 또한, 가상화 서버에서 발생하는 트래픽을 줄이면서 클라이언트 단말에서 구현되는 서비스 품질도 유지시킬 수 있도록 데이터를 전송하고자 한다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진 및 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하는 웹앱 가상화 서비스를 제공하는 가상화 서버를 제공할 수 있다.
또한, 본 발명의 다른 실시예는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계, 인코딩 맵을 통해 인코딩을 수행하는 단계, 및 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송하는 단계를 포함하는 웹앱 가상화 서비스 제공을 위한 데이터 전송방법을 제공할 수 있다.
또한, 본 발명의 또 다른 실시예는 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계, 업데이트 영역으로 구분된 매크로 블록 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계, 업데이트 영역으로 구분된 매크로 블록에 대해서 인코딩 맵을 통해 인코딩을 수행하는 단계, 비업데이트 영역으로 구분된 매크로 블록에 대해서 인코딩을 스킵하는 단계, 및 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송하는 단계를 포함하는 웹앱 가상화 서비스 제공을 위한 데이터 전송방법을 제공할 수 있다.
웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성함으로써, 각 프레임에서 업데이트 영역으로 구분된 매크로 블록에 대해서만 인코딩 프로세싱이 수행되므로 가상화 서버의 자원을 보다 효율적으로 사용할 수 있다. 또한, 상술한 데이터 전송방법을 통해 트래픽 발생량 및 클라이언트 단말의 복잡도는 종래의 스트리밍 방식과 동일한 수준으로 감소시킬 수 있고, 가상화 서버에 가해지는 부하도 종래의 이미지 전송 방식인 RDP/VNC과 유사한 수준으로 감소시킬 수 있어, 동적인 웹앱 가상화 서비스를 현실적인 비용으로 구현할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버의 구성도이다.
도 2는 도 1에 도시된 웹엔진(100)의 일 예에 대한 구성도이다.
도 3은 업데이트 영역 및 비업데이트 영역에 대해 설명하기 위한 도면이다.
도 4는 도 2의 인코딩 맵 생성부(120)에 의해 생성된 인코딩 맵의 일 예를 도시한 도면이다.
도 5는 콘텐츠 타입에 대한 다양한 예를 설명하기 위한 도면이다.
도 6은 도 1에 도시된 인코더(200)의 일 예에 대한 구성도이다.
도 7은 본 발명이 일 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다.
도 8은 본 발명이 다른 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다.
도 9는 도 7 및 도 8의 동작 과정 중에서 인코딩 맵을 생성하는 단계와 인코딩을 수행하는 단계에 대해 컴퓨터 프로그램으로 구현해낸 소스 코드이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버의 구성도이다. 도 1을 참조하면, 웹앱 가상화 서비스 제공 시스템은 가상화 서버(10), 복수의 클라이언트 단말(30)을 포함한다. 다만, 이러한 도 1의 웹앱 가상화 서비스 제공 시스템은 본 발명의 일 실시예에 불과하므로 도 1을 통해 본 발명이 한정 해석되는 것은 아니다.
도 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) 등이 포함되나 이에 한정되지는 않는다.
본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버(10)는 웹엔진(100), 인코더(200), 메모리(300)를 포함한다. 각 구성은 서로 연결되어 데이터를 송수신할 수 있고, 이들 구성에 대한 상세한 설명은 도 2 및 도 6을 참고하여 후술하기로 한다. 덧붙여, 클라이언트 단말(30)과 네트워크(20)를 통해 통신하기 위한 통신부 및 관리자로부터 특정 명령 내지 정보를 입력받기 위한 관리자 인터페이스 등의 구성을 더 포함할 수 있다. 이 경우, 관리자 인터페이스는 일반적으로 키보드, 마우스 등과 같은 입력 장치가 될 수도 있으나, 영상 표시 장치에 표현되는 그래픽 유저 인터페이스(GUI, Graphical User interface)가 될 수도 있다.
본 발명의 다양한 실시예들에 따르면 복수의 클라이언트 단말(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) 기반의 무선 통신 장치가 포함될 수 있다.
이하에서는 도 1의 가상화 서버(10)에 포함된 각각의 구성요소의 동작에 대해 보다 구체적으로 설명한다.
도 2는 도 1에 도시된 웹엔진(100)의 일 예에 대한 구성도이다. 도 2를 참조하면, 웹엔진(100)는 영역 구분부(110), 인코딩 맵 생성부(120) 및 콘텐츠 타입 분류부(130)를 포함한다. 다만, 도 2에 도시된 웹엔진(100)은 본 발명의 하나의 구현 예에 불과하며, 도 2에 도시된 구성요소들을 기초로 하여 다양한 변형이 가능하다.
영역 구분부(110)는 복수의 프레임을 포함하는 웹앱에 대해 렌더링(Rendering)을 수행하고, 렌더링 과정을 통해 프레임에 포함된 각 매크로 블록(Macro Block)을 업데이트 영역 또는 비업데이트 영역으로 구분한다. 즉, 영역 구분부(110)는 렌더링 과정을 통해 후술할 인코딩에 필요한 렌더링 데이터를 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터가 포함되어 있다.
이때, 렌더링 작업은 Webcore, JavaScript Engine 등에 의해 오프 스크린에 대해 이루어질 수 있고, 렌더링 작업의 결과물은 도 1에 도시된 것과 같은 공유된 메모리(300)에 저장될 수 있다. 또한, 프레임은 일정 개수의 픽셀로 이루어진 복수의 매크로 블록 단위로 나누어 질 수 있고, 영역 구분부(110)는 이렇게 나누어진 각 매크로 블록을 업데이트 영역에 해당하는지 또는 비업데이트 영역에 해당하는지 판별할 수 있다.
아울러, 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 것과 관련하여 도 3을 참고하여 설명한다. 도 3은 업데이트 영역 및 비업데이트 영역에 대해 설명하기 위한 도면이다.
도 3은 게임 플레이가 이루어지고 있는 동적인 웹앱에 대한 특정 프레임을 나타낸다. 'A'라고 표시되어 있는 부분이 주로 업데이트가 발생하는 영역으로서, 도 4에 도시된 특정 프레임 상에서는 업데이트 영역에 해당할 수 있다. 'B'라고 표시되어 있는 부분은 게임 실행과 관계없는 외곽 영역으로서, 도 3에 도시된 특정 프레임 상에서는 비업데이트 영역에 해당할 수 있다. 다만, 이들 영역은 프레임이 시간의 흐름에 의해 변화함에 따라 프레임 상에서의 위치, 크기 등이 달라질 수 있고, 이들 영역을 구분하는 기준은 특별히 제한되지 않는다.
인코딩 맵 생성부(120)는 렌더링 데이터를 기초로 인코딩 맵을 생성하고, 렌더링 데이터는 상술한 영역 구분부(110)에서 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함한다. 이때, 렌더링 데이터는 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 더 포함할 수 있고, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터는 후술할 움직임 벡터(Motion Vector; MV), 양자화 파라미터(Quantization Parameter; QP) 값 및 콘텐츠 타입에 대한 분류 결과를 포함할 수 있다. 이와 같이 인코딩을 위한 인코딩 맵을 생성하기 위해 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 이용함으로써, 가상화 서버(10)에서 클라이언트 단말(30)로 웹앱 가상화 서비스 제공을 위한 데이터를 전송할 때 트래픽 발생을 최소화할 수 있다. 즉, 복수의 매크로 블록을 포함하는 프레임을 처리하기 때문에 해상도 등의 포맷은 유지되나, 실질적으로 인코딩하는 대상은 업데이트 영역으로 구분된 매크로 블록으로 한정시킬 수 있어 계산량 및 트래픽 발생을 최소화시킬 수 있다.
아울러, 후술할 인코더(200)에 필요한 인코딩 맵과 관련하여 도 4를 참고하여 설명한다. 도 4는 도 2의 인코딩 맵 생성부(120)에 의해 생성된 인코딩 맵의 일 예를 도시한 도면이다.
도 4는 복수의 매크로 블록(MB1 내지 MBn)으로 이루어진 인코딩 맵을 나타내고, 이러한 매크로 블록을 합하면 도 3과 같은 웹앱에 포함된 특정 프레임이 될 수 있다. 전체 매크로 블록의 개수는 가로 방향의 매크로 블록의 수 및 세로 방향의 매크로 블록의 수를 알면 알 수 있는데, 특정 프레임의 가로 및 세로를 일정 개수의 픽셀로 (예를 들어, 16개) 나누어 구해낼 수 있다. 이들 매크로 블록 중 일부는 업데이트 영역(A)으로 구분된 것이고, 나머지는 비업데이트 영역(B)으로 구분된 것이다. 인코딩 맵 생성부(120)는 업데이트 영역(A)으로 구분된 매크로 블록에 플래그(Flag)를 '1'로 설정해두고, 비업데이트 영역(B)으로 구분된 매크로 블록에 플래그를 '0'으로 설정해둘 수 있다. 덧붙여, 인코딩 맵 생성부(120)는 업데이트 영역(A)으로 구분된 매크로 블록마다 그에 해당되는 움직임 벡터(MV) 및 양자화 파라미터(QP) 값을 설정해둘 수 있다.
또한, 콘텐츠 타입 분류부(130)는 웹엔진(100)의 일 구성으로서 상술한 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류한다. 상술한 인코딩 맵 생성부(120)는 콘텐츠 타입 분류부(130)와 연동하여 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성할 수 있다.
특히, 콘텐츠 타입 분류부(130)는 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류할 수 있는데, 이에 대해 도 5를 참고하여 설명한다. 도 5는 콘텐츠 타입에 대한 다양한 예를 설명하기 위한 도면이다.
도 5는 웹앱에 포함된 복수의 프레임 중 특정 프레임을 나타내고, 특정 프레임은 텍스트, 영상, 동영상 중 적어도 어느 하나의 콘텐츠 타입에 해당된다. (a) 프레임의 콘텐츠 타입은 동영상이고, (b) 프레임의 콘텐츠 타입은 텍스트이며, (c) 프레임의 콘텐츠 타입은 영상 및 텍스트이다. (b) 프레임의 경우 각 매크로 블록의 콘텐츠 타입이 텍스트로 콘텐츠 타입 분류부(130)에 의해 동일하게 결정될 수 있고, (c) 프레임의 경우 어디에 위치한 매크로 블록인가에 따라 콘텐츠 타입이 콘텐츠 타입 분류부(130)에 의해 상이하게 분류될 수 있다.
나아가, 웹엔진(100)은 도 2에 도시된 구성 이외에 QP 조절부(미도시)를 더 포함할 수 있다. QP 조절부는 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 조절한다.
일 예에 따른 양자화 파라미터 값은 콘텐츠 타입 분류부(130)에 의한 분류 결과 및 관심 영역(Region of Interest; ROI)에 따라 이루어지는 비트(Bit) 할당을 기초로 조절될 수 있다. 이렇게 비트 할당을 기초로 양자화 파라미터 값을 조절함으로써, 주관적 화질을 향상시킬 수 있다. 이때, 상술한 인코딩 맵 생성부(120)는 렌더링 데이터를 기초로 인코딩 맵을 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터인 조절한 양자화 파라미터 값 및 콘텐츠 타입에 대한 분류 결과가 포함될 수 있다.
다른 예에 따른 양자화 파라미터 값은 콘텐츠 타입 분류부(130)에 의한 분류 결과를 기초로 조절될 수 있다. 특히, 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 QP 조절부는 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절할 수 있다. 예를 들어, QP 조절부는 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값을 10으로 조절하고, 최소 양자화 파라미터 값을 1로 조절할 수 있다. 이와 동시에 QP 조절부는 분류 결과가 동영상인 경우의 최대 양자화 파라미터 값을 51로 조절하고, 최소 양자화 파라미터 값을 30으로 조절할 수 있다. 이때, 상술한 인코딩 맵 생성부(120)는 렌더링 데이터를 기초로 인코딩 맵을 생성하는데, 렌더링 데이터에는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터인 조절한 양자화 파라미터 값 및 콘텐츠 타입에 대한 분류 결과가 포함될 수 있다.
다시 도 1을 참고하면, 가상화 서버(10)는 인코더(200)를 포함하는데 인코더(200)에 대해서는 도 6을 참고하여 설명한다. 도 6은 도 1에 도시된 인코더(200)의 일 예에 대한 구성도이다.
인코더(200)는 상술한 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성한다. 인코더(200)의 인코딩 동작은 예를 들면 H.264/AVC 코덱 표준 방식과 같은 종래에 공지된 방식에 의해 이루어질 수 있다. 도 6을 참조하면, 인코더(200)는 인트라 예측기(Intra Predictor, 210), 인터 예측기(Inter Predictor, 220), 선택기(230), 변환기(Transformer, 240) 및 양자화기(Quantizer, 250)를 포함한다. 다만, 도 6에 도시된 인코더(200)는 본 발명의 하나의 구현 예에 불과하며, 도 6에 도시된 구성요소들을 기초로 하여 다양한 변형이 가능하다.
인트라 예측기(210)는 인트라 예측을 수행하고, 인터 예측기(220)는 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(MV)를 기초로 인터 예측을 수행한다.
선택기(230)는 인트라 예측기(210)로부터 생성되는 예측 데이터와 인터 예측기(220)로부터 생성되는 예측 데이터 중 어느 하나를 선택할 수 있다.
변환기(240)는 인트라 예측기(210) 또는 인터 예측기(220)로부터 생성되는 예측 데이터를 기초로 하다마드 변환(Hadamard Transform), DCT(Discrete Cosine Transform) 등의 방식을 통해 주파수 변환을 수행한다.
양자화기(250)는 변환기(240)로부터 변환된 변환 데이터 및 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하고, 양자화 동작을 위해 DZUTQ (Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix), RDOQ (Rate-Distortion Optimized Quantization) 등의 방식이 사용될 수 있다.
이러한 구성을 포함하는 인코더(200)는 상술한 인코딩 맵을 기초로 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인지 판단하여, 해당 매크로 블록이 업데이트 영역으로 구분된 매크로인 경우에만 동작하는 특징이 있을 수 있다. 인코더(200)가 특정 매크로 블록이 업데이트 영역으로 구분된 매크로인 경우에만 동작함으로써, 인코더(200)에는 적응적 프레임 율(Adaptive Frame Rate)이 적용되어 가상화 서버(10)의 부하를 감소시킬 수 있다. 즉, 종래의 인코더처럼 고정된 프레임 율(예를 들어, 30fps)에 의해 인코딩이 이루어지지 않는다.
아울러, 영역 구분부(110)에서 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프(Presentation Time Stamp) 방식을 이용하여 패킷화된 엘리멘트리 스트림(Packetizing Elementary Stream; PES)을 생성하는 구성을 인코더(200)는 더 포함할 수 있다. 이렇게 생성되는 스트림을 포함하는 부호화 데이터는 클라이언트 단말(30)로 전송된다.
다시 도 1을 참고하면, 가상화 서버(10)는 메모리(300)를 포함한다. 메모리(300)는 픽셀 데이터, 상술한 업데이트 영역으로 구분된 매크로 블록에 대한 데이터(움직임 벡터, 조절한 양자화 파라미터 값 및 콘텐츠 타입의 분류 결과 등) 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터 등을 저장할 수 있다. 이러한 메모리(300)의 일 예에는 가상화 서버(10) 내부 또는 외부에 존재하는 하드디스크드라이브, ROM(Read Only Memory), RAM(Random Access Memory), 플래쉬 메모리 및 메모리카드 등이 포함된다.
지금까지 상술한 본 발명의 일 실시예에 따른 웹앱 가상화 서비스를 제공하는 가상화 서버는 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 생성된 인코딩 맵을 이용하여 인코딩 동작을 수행함으로써, 가상화 서버의 자원을 보다 효율적으로 사용하고 트래픽 발생량을 획기적으로 감소시킬 수 있다.
한편, 본 발명의 각 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법에 대해 도 7 내지 도 9를 참조하여 설명한다.
도 7은 본 발명이 일 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다. 즉, 웹앱(Web Application) 가상화 서비스 제공을 위한 가상화 서버에서 클라이언트 단말로 데이터를 전송하는 과정에 대해 도시한 것이다.
우선 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분한다(S710). 이렇게 렌더링 과정을 통해 획득된 메타데이터는 인코딩 맵 생성에 기초 자료로 사용된다.
S710단계에서 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류한다(S720).
업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성한다(S730). 이때, 렌더링 데이터는 S720단계에서 분류된 콘텐츠 타입에 대한 분류 결과를 포함하고, 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터 및 양자화 파라미터 값도 포함할 수 있다.
S730단계에서 생성된 인코딩 맵을 통해 인코더는 인코딩을 수행하고(S740), 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송한다(S750).
또한, 도 8은 본 발명이 다른 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법의 일 예를 나타내는 동작 흐름도이다.
우선 복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분한다(S810). 이렇게 렌더링 과정을 통해 획득된 메타데이터는 인코딩 맵 생성에 기초 자료로 사용된다.
S810단계에서 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류한다(S820).
이어서 콘텐츠 타입에 대한 분류 결과에 따라 양자화 파라미터 값을 조절하는데(S830), 이에 대해 구체적으로 설명하면 다음과 같다. 일 예로 콘텐츠 타입에 대한 분류 결과 및 관심 영역(ROI)에 따라 비트(Bit) 할당이 이루어지도록 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절할 수 있다. 다른 예로 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절할 수 있다.
업데이트 영역으로 구분된 매크로 블록에 대한 데이터 및 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성한다(S840). 이때, 업데이트 영역으로 구분된 매크로 블록에 대한 데이터는 S820단계에서 분류된 콘텐츠 타입에 대한 분류 결과 및 S830단계에서 조절한 양자화 파라미터 값을 포함하고, 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터도 포함할 수 있다.
이후에 S840단계에서 생성된 인코딩 맵을 통해 인코더는 업데이트 영역으로 구분된 매크로 블록에 대해 인코딩을 수행하고(S850), 비업데이트 영역으로 구분된 매크로 블록에 대해서 인코딩을 스킵한다(S860). 이와 같이 업데이트 영역으로 구분된 매크로 블록에 대해서만 인코딩을 수행하고, 나머지 매크로 블록에 대해서는 인코딩을 스킵함으로써, 가상화 서버(10)에서 클라이언트 단말(30)로 웹앱 가상화 서비스 제공을 위한 데이터를 전송할 때 트래픽 발생을 최소화할 수 있다.
최종적으로 인코딩에 의해 생성된 부호화 데이터를 클라이언트 단말로 전송한다(S870).
나아가, 도 9는 도 7 및 도 8의 동작 과정 중에서 인코딩 맵을 생성하는 단계와 인코딩을 수행하는 단계에 대해 컴퓨터 프로그램으로 구현해낸 소스 코드이다.
특정 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 렌더링 과정이 완료되면, Update_Event_Handler 함수가 동작을 시작한다(S910).
렌더링 과정을 통해 획득된 렌더링 데이터(메타데이터)를 받아 인코딩 맵을 생성하고(S920), 생성한 인코딩 맵 및 픽셀 데이터를 기초로 하나의 특정 프레임에 대한 인코딩을 수행한다(S930). 특정 프레임에 복수의 매크로 블록이 포함되므로, 매크로 블록의 전체 개수를 기초로 아래 과정들을 반복 수행한다(S940).
후술할 예측 데이터를 생성하기 이전에 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인지 플래그 값을 통해 판단한다(S950). 해당 매크로 블록이 업데이트 영역으로 구분된 매크로 블록인 경우에만 인트라 예측 및 인터 예측을 통해 예측 데이터를 생성한다(S960). 즉, 해당 매크로 블록이 비업데이트 영역으로 구분된 매크로 블록인 경우, 실질적인 인코딩 수행이 이루어지지 않으며 건너뜀 혹은 스킵 처리된다.
S960 단계에서 인트라 예측을 통해 생성된 예측 데이터와 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터를 기초로 수행한 인터 예측을 통해 생성된 예측 데이터 중 어느 하나를 선택한다. 이때, 선택한 예측 데이터를 기초로 주파수 변환을 수행하여 변환 데이터를 생성하고, 변환 데이터 및 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행한다(S970).
업데이트 영역으로 구분된 모든 매크로 블록에 대해 S970 단계를 수행한 이후에 엔트로피 코딩이 이루어진다(S980). 엔트로피 코딩까지 마치면 하나의 특정 프레임에 대한 인코딩 과정이 완료된 것으로 판단할 수 있다.
웹앱은 복수의 프레임을 포함하므로, 모든 프레임에 대하여 상술한 과정이 수행된 이후에 이들 프레임을 묶어주는 후처리 과정이 필요하다. 이때, S910 단계에서 각 프레임에 대한 렌더링 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(PES)을 생성할 수 있다(S990).
도 9를 통해 설명된 실시예에 따른 인코딩 과정은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
지금까지 상술한 본 발명의 각 실시예에 따른 웹앱 가상화 서비스 제공을 위한 데이터 전송방법은 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터, 양자화 파라미터 값 및 콘텐츠 타입에 대한 분류 결과를 포함하는 렌더링 데이터를 기초로 생성된 인코딩 맵을 이용하여 인코딩 동작을 수행함으로써, 가상화 서버에서는 자원 효율을 향상시키면서 트래픽 발생량 및 가해지는 부하를 감소시킬 수 있다. 또한, 본 발명에 따른 데이터 전송방법을 이용하면 클라이언트 단말의 사양과 상관없이 전송이 가능하고, 복잡도를 감소시킬 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 가상화 서버
100: 웹엔진
200: 인코더

Claims (18)

  1. 클라이언트 단말로 데이터를 전송하여 웹앱(Web Application) 가상화 서비스를 제공하는 가상화 서버에 있어서,
    복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진; 및
    상기 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하되,
    상기 웹엔진은 상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하고, 상기 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는, 웹앱 가상화 서비스를 제공하는 가상화 서버.
  2. 클라이언트 단말로 데이터를 전송하여 웹앱(Web Application) 가상화 서비스를 제공하는 가상화 서버에 있어서,
    복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하고, 상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 웹엔진; 및
    상기 인코딩 맵을 통해 인코딩을 수행하여 부호화 데이터를 생성하는 인코더를 포함하되,
    상기 렌더링 데이터는 상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(Motion Vector)와, 최대 및 최소 양자화 파라미터 값을 더 포함하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 웹엔진은 상기 콘텐츠 타입을 텍스트, 영상, 동영상 중 적어도 어느 하나로 분류하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  5. 제 1 항에 있어서,
    상기 웹엔진은 상기 분류 결과 및 관심 영역(ROI)에 따라 비트(Bit) 할당이 이루어지도록 상기 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 조절하고, 상기 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  6. 제 1 항에 있어서,
    상기 웹엔진은 상기 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 상기 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  7. 제 1 항에 있어서, 상기 인코더는
    인트라 예측을 수행하는 인트라 예측기(Intra Predictor);
    상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(Motion Vector)를 기초로 인터 예측을 수행하는 인터 예측기(Inter Predictor);
    상기 인트라 예측기 또는 인터 예측기로부터 생성되는 예측 데이터를 기초로 주파수 변환을 수행하는 변환기(Transformer); 및
    상기 변환기로부터 변환된 변환 데이터 및 상기 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하는 양자화기(Quantizer)를 포함하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  8. 제 1 항에 있어서, 상기 인코더는
    상기 인코딩 맵을 기초로 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인지 판단하여 상기 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로인 경우에만 동작하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  9. 제 1 항에 있어서, 상기 인코더는
    상기 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(PES)을 생성하는
    웹앱 가상화 서비스를 제공하는 가상화 서버.
  10. 웹앱(Web Application) 가상화 서비스 제공을 위한 가상화 서버에서 클라이언트 단말로 데이터를 전송하는 방법에 있어서,
    복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계;
    상기 업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계;
    상기 인코딩 맵을 통해 인코딩을 수행하는 단계; 및
    상기 인코딩에 의해 생성된 부호화 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함하되,
    상기 생성하는 단계는
    상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하는 단계; 및
    상기 콘텐츠 타입에 대한 분류 결과를 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는 단계를 더 포함하는, 웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  11. 삭제
  12. 제 10 항에 있어서, 상기 인코딩 맵을 생성하는 단계는
    상기 분류 결과 및 관심 영역(ROI)에 따라 비트(Bit) 할당이 이루어지도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  13. 제 10 항에 있어서, 상기 인코딩 맵을 생성하는 단계는
    상기 분류 결과가 텍스트인 경우의 최대 양자화 파라미터 값이 상기 분류 결과가 영상 또는 동영상인 경우의 최소 양자화 파라미터 값보다 작게 설정되도록 상기 업데이트 영역으로 구분된 매크로 블록의 양자화 파라미터 값을 조절하고, 상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  14. 제 10 항에 있어서, 상기 인코딩을 수행하는 단계는
    인트라 예측을 통해 생성된 예측 데이터와 상기 업데이트 영역으로 구분된 매크로 블록에 대한 움직임 벡터(Motion Vector)를 기초로 수행한 인터 예측을 통해 생성된 예측 데이터 중 어느 하나를 선택하는 단계;
    상기 선택한 예측 데이터를 기초로 주파수 변환을 수행하여 변환 데이터를 생성하는 단계; 및
    상기 변환 데이터 및 상기 업데이트 영역으로 구분된 매크로 블록에 대한 양자화 파라미터 값을 기초로 양자화 동작을 수행하는 단계를 포함하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  15. 제 14 항에 있어서,
    상기 예측 데이터를 생성하기 이전에 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인지 판단하는 단계;
    상기 해당 매크로 블록이 상기 업데이트 영역으로 구분된 매크로 블록인 경우에만 상기 인트라 예측 및 상기 인터 예측을 통해 예측 데이터를 생성하는 단계를 더 포함하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  16. 제 10 항에 있어서,
    상기 웹앱에 포함된 각 프레임을 렌더링하는 과정이 완료되는 시각 및 프리젠테이션 타임 스탬프 방식을 이용하여 패킷화된 엘리멘트리 스트림(PES)을 생성하는 단계를 더 포함하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  17. 웹앱(Web Application) 가상화 서비스 제공을 위한 가상화 서버에서 클라이언트 단말로 데이터를 전송하는 방법에 있어서,
    복수의 프레임을 포함하는 웹앱을 렌더링하는 과정을 통해 상기 프레임에 포함된 각 매크로 블록을 업데이트 영역 또는 비업데이트 영역으로 구분하는 단계;
    상기 업데이트 영역으로 구분된 매크로 블록 및 상기 비업데이트 영역으로 구분된 매크로 블록에 대한 데이터를 포함하는 렌더링 데이터를 기초로 인코딩 맵을 생성하는 단계;
    상기 업데이트 영역으로 구분된 매크로 블록에 대해서 상기 인코딩 맵을 통해 인코딩을 수행하는 단계;
    상기 비업데이트 영역으로 구분된 매크로 블록에 대해서 상기 인코딩을 스킵하는 단계; 및
    상기 인코딩에 의해 생성된 부호화 데이터를 상기 클라이언트 단말로 전송하는 단계를 포함하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
  18. 제 17 항에 있어서, 상기 생성하는 단계는
    상기 업데이트 영역으로 구분된 매크로 블록의 콘텐츠 타입을 분류하는 단계; 및
    상기 콘텐츠 타입에 대한 분류 결과에 따라 양자화 파라미터 값을 조절하고,상기 조절한 양자화 파라미터 값을 더 포함하는 렌더링 데이터를 기초로 상기 인코딩 맵을 생성하는 단계를 더 포함하는
    웹앱 가상화 서비스 제공을 위한 데이터 전송방법.
KR20120124402A 2012-11-05 2012-11-05 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법 KR101491591B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20120124402A KR101491591B1 (ko) 2012-11-05 2012-11-05 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법
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 (ko) 2012-11-05 2012-11-05 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법

Publications (2)

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

Family

ID=50623546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20120124402A KR101491591B1 (ko) 2012-11-05 2012-11-05 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156096A1 (en) * 2013-11-29 2015-06-04 Electronics And Telecommunications Research Institute Virtualization service apparatus and method of providing virtualization service

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150099891A (ko) * 2014-02-23 2015-09-02 삼성전자주식회사 데이터 변환 처리 방법 및 이를 지원하는 전자 장치
KR102247892B1 (ko) * 2014-12-02 2021-05-04 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 어플리케이션 코드를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102225608B1 (ko) * 2015-01-13 2021-03-12 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 애니메이션 메시지를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102225609B1 (ko) * 2015-01-13 2021-03-12 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 전체 화면 변화를 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102273142B1 (ko) * 2015-01-13 2021-07-05 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 어플리케이션 코드 변환을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102313532B1 (ko) * 2015-01-13 2021-10-18 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 애니메이션 메시지를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102225610B1 (ko) * 2015-01-13 2021-03-12 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 메시지 기반 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102313516B1 (ko) * 2015-01-13 2021-10-18 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 메시지 기반 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102313533B1 (ko) * 2015-01-13 2021-10-18 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 전체 화면 변화를 고려한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102177934B1 (ko) * 2015-03-13 2020-11-12 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 변화된 이미지의 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102306889B1 (ko) * 2015-05-11 2021-09-30 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 데이터 치환을 통한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102405143B1 (ko) * 2015-08-21 2022-06-07 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 컬러 비트 감소를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR102442698B1 (ko) * 2015-08-27 2022-09-13 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, os 메시지를 이용한 변화 영역 탐지 기반의 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN110110075A (zh) * 2017-12-25 2019-08-09 中国电信股份有限公司 网页分类方法、装置以及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040068535A (ko) * 2002-04-26 2004-07-31 가부시키가이샤 엔티티 도코모 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법,화상 복호 방법, 화상 부호화 프로그램 및 화상 복호프로그램
US20050201470A1 (en) * 2004-03-12 2005-09-15 John Sievers Intra block walk around refresh for H.264
KR20070001112A (ko) * 2004-01-30 2007-01-03 톰슨 라이센싱 적응형 레이트 제어를 구비한 인코더
KR20120039237A (ko) * 2010-10-15 2012-04-25 삼성전자주식회사 사용자 인터페이스 갱신 방법 및 장치

Family Cites Families (25)

* 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
US7587669B2 (en) * 2001-04-09 2009-09-08 Aol Llc Server-based browser system
US20030004984A1 (en) * 2001-07-02 2003-01-02 Iscreen Corporation Methods for transcoding webpage and creating personal profile
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
JP4514203B2 (ja) * 2004-06-11 2010-07-28 キヤノン株式会社 動きベクトル検出装置及び方法
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
WO2007067750A2 (en) * 2005-12-07 2007-06-14 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 (ja) * 2006-09-01 2012-08-08 キヤノン株式会社 画像符号化装置及び画像符号化方法
US7614003B2 (en) * 2006-10-23 2009-11-03 Adobe Systems Incorporated Rendering hypertext markup language content
JP2008234148A (ja) * 2007-03-19 2008-10-02 Ricoh Co Ltd 文書表示装置、文書表示方法及び文書表示プログラム
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
EP2370872A4 (en) * 2008-11-26 2013-04-10 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
US8966359B2 (en) * 2012-01-26 2015-02-24 International Business Machines Corporation Web application content mapping
KR101340588B1 (ko) * 2012-02-29 2013-12-11 주식회사 팬택 웹페이지 구성방법 및 그 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040068535A (ko) * 2002-04-26 2004-07-31 가부시키가이샤 엔티티 도코모 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법,화상 복호 방법, 화상 부호화 프로그램 및 화상 복호프로그램
KR20070001112A (ko) * 2004-01-30 2007-01-03 톰슨 라이센싱 적응형 레이트 제어를 구비한 인코더
US20050201470A1 (en) * 2004-03-12 2005-09-15 John Sievers Intra block walk around refresh for H.264
KR20120039237A (ko) * 2010-10-15 2012-04-25 삼성전자주식회사 사용자 인터페이스 갱신 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156096A1 (en) * 2013-11-29 2015-06-04 Electronics And Telecommunications Research Institute Virtualization service apparatus and method of providing virtualization service

Also Published As

Publication number Publication date
US20140129923A1 (en) 2014-05-08
KR20140057983A (ko) 2014-05-14

Similar Documents

Publication Publication Date Title
KR101491591B1 (ko) 웹앱 가상화 서비스를 제공하는 가상화 서버 및 웹앱 가상화 서비스 제공을 위한 데이터 전송방법
US10893277B2 (en) Method and device for intra prediction video
CN111741309B (zh) 用于对运动矢量进行编码/解码的方法和装置
US11206405B2 (en) Video encoding method and apparatus, video decoding method and apparatus, computer device, and storage medium
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 (zh) 视频编码方法和视频编码设备
US11172220B2 (en) Video encoding method, and storage medium thereof
EP2568709B1 (en) Image processing apparatus, image processing method, and image processing system
CN103974060B (zh) 视频质量调整方法和装置
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
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 (zh) 图像编码方法、图像解码方法及相关装置
KR102384174B1 (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 압축 기법을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN107079159B (zh) 基于多核系统的并行视频解码的方法和设备
US20140286410A1 (en) System and method for non-uniform video coding
CN106717005B (zh) 根据参考频率控制参考图像数据的视频编码/解码方法和设备
Miao et al. A high-fidelity and low-interaction-delay screen sharing system
CN112640460B (zh) 用于边界划分的装置及方法
JP2005341093A (ja) コンテンツ適応化装置、コンテンツ適応化システム、コンテンツ適応化方法
JP2021535685A (ja) 動き情報候補リストを構築するための方法、インター予測方法、および装置
CN112740276A (zh) 用于帧内参考样本插值滤波器切换的方法和装置
WO2023221599A1 (zh) 图像滤波方法、装置及设备
US20210377328A1 (en) Method and apparatus for providing cloud streaming service
Sharrab et al. iHELP: a model for instant learning of video coding in VR/AR real-time applications

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