KR101647104B1 - 하이브리드 전송 프로토콜 - Google Patents

하이브리드 전송 프로토콜 Download PDF

Info

Publication number
KR101647104B1
KR101647104B1 KR1020140183098A KR20140183098A KR101647104B1 KR 101647104 B1 KR101647104 B1 KR 101647104B1 KR 1020140183098 A KR1020140183098 A KR 1020140183098A KR 20140183098 A KR20140183098 A KR 20140183098A KR 101647104 B1 KR101647104 B1 KR 101647104B1
Authority
KR
South Korea
Prior art keywords
moving image
target page
image file
web data
top box
Prior art date
Application number
KR1020140183098A
Other languages
English (en)
Other versions
KR20160074167A (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 KR1020140183098A priority Critical patent/KR101647104B1/ko
Priority to PCT/KR2015/013909 priority patent/WO2016099183A1/ko
Priority to US15/537,380 priority patent/US10547878B2/en
Publication of KR20160074167A publication Critical patent/KR20160074167A/ko
Application granted granted Critical
Publication of KR101647104B1 publication Critical patent/KR101647104B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/024Standardisation; Integration using relational databases for representation of network management data, e.g. managing via structured query language [SQL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

가상화 서버를 이용하여 성능이 낮은 셋탑 박스를 이용해서도 웹 브라우징 서비스를 제공할 수 있는 하이브리드 프로토콜이 제공된다. 가상화 서버는 타겟 페이지 중에서 동영상이 재생되는 영역은 별개로 인코딩하거나, 해당 동영상을 트랜스 코딩하여 셋탑 박스로 전송한다. 또한, 가상화 서버는 웹 데이터가 표시되는 영역은 그림 파일로 캡쳐하여 셋탑 박스로 전송한다. 셋탑 박스는 하드웨어 디코딩 칩을 이용하여 동영상을 재생하고, 낮은 성능의 CPU를 이용하여 그림 파일로부터 타겟 페이지를 복원한다.

Description

하이브리드 전송 프로토콜{HYBRID TRANSFER PROTOCOL}
하기의 실시예들은 가상화 서버가 셋탑 박스로 데이터를 전송하는 프로토콜에 관한 것으로, 구체적으로는 웹 페이지 내에 동영상이 포함된 경우, 동영상이 재생되는 영역을 인코딩하여 셋탑 박스로 전송하거나, 해당 동영상을 다운로드 받은 후 트랜스 코딩하여 셋탑 박스로 전송하는 프로토콜에 관한 것이다.
웹이 발전함에 따라 여러 웹 기반 플랫폼과 이를 수용하는 디바이스들이 다양해지고 HTML5로 대표되는 웹 기술의 발달로 인해 고사양 하드웨어가 필요하다. IPTV 플랫폼에서도 웹 플랫폼 수용에 대한 요구가 증가하고 있으나, 저사양 하드웨어로 구성된 IPTV 셋탑 박스로 인해 웹 플랫폼 도입에 어려움이 있다.
저사양 하드웨어로 구성된 IPTV 셋탑 박스도 고속 네트워크에 연결되어 있고, 영상 재생에 효율적인 하드웨어 디코더를 탑재하고 있기 때문에 복잡한 연산은 서버에서 처리하고 클라이언트에서는 단순하게 보여주는 씬 클라이언트(Thin Client) 기술을 적용하기에 아주 적합하다. 고속 네트워크에 연결되어 있기 때문에 고품질 이미지 전송이 가능하고, 씬 클라이언트 시스템의 취약점인 멀티미디어 재생에 관한 부분을 하드웨어 디코더 활용할 수 있는 점이 씬 클라이언트 기술을 적용하기에 PC 환경보다 더 적합하다.
하기 실시예들의 목적은 가상화 서버와 셋탑 박스 간의 대역폭을 최적화 하는 것이다.
하기 실시예들의 목적은 저가의 셋탑 박스를 이용하여 웹 브라우징 서비스를 제공하는 것이다.
예시적 실시예에 따르면, 웹 서버로부터 수신한 타겟 페이지를 파싱하여 상기 타겟 페이지를 동영상이 재생되는 동영상 영역 및 웹 데이터가 표시되는 웹 데이터 영역으로 구분하는 파싱부, 상기 동영상이 재생되는 경우, 상기 동영상 영역을 캡쳐하여 상기 동영상을 재인코딩하는 인코더, 상기 동영상을 다운로드 하고, 상기 다운로드된 동영상을 트랜스 코딩하는 트랜스 코더, 상기 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성하는 캡쳐부 및 상기 캡쳐된 이미지 파일 및 상기 재인코딩된 동영상을 셋탑 박스로 전송하거나, 상기 캡쳐된 이미지 파일 및 상기 트랜스 코딩된 동영상을 셋탑 박스로 전송하는 전송부를 포함하고, 상기 캡쳐된 이미지 파일은 상기 타겟 페이지의 웹 데이터 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되고, 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상은 상기 타겟 페이지의 동영상 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되어 상기 셋탑 박스에서 상기 타겟 페이지를 구성하는 가상화 서버가 제공된다.
여기서, 상기 가상화 서버는, 상기 타겟 페이지의 URL이 동영상 영역 만으로 구성된 웹 페이지의 목록에 포함되지 않고, 상기 타겟 페이지의 DOM Tree 에 동영상 재상 정보가 포함된 경우에, 상기 동영상을 재인코딩 하거나, 상기 동영상을 다운로드하여 트랜스 코딩할 수 있다.
그리고, 상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고, 상기 캡쳐부는 상기 복수의 업데이트 영역 들을 모두 포함하는 하나의 사각 영역을 캡쳐하여 상기 이미지 파일을 생성할 수 있다.
또한, 상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고, 상기 캡쳐부는 상기 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 상기 이미지 파일을 생성할 수 있다.
여기서, 상기 셋탑 박스로부터 상기 복원된 타겟 페이지에 대한 스크롤 이벤트를 수신하는 수신부를 더 포함하고, 상기 캡쳐부는 상기 타겟 페이지가 로딩되거나, 상기 스크롤 이벤트가 수신된 경우에는 상기 웹 데이터 영역을 캡쳐할 수 있다.
그리고, 상기 전송부는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 상기 이미지 파일과 함께 데이터 패킷에 포함하여 상기 셋탑 박스로 전송할 수 있다.
또 다른 예시적 실시예에 따르면, 타겟 페이지 중에서, 웹 데이터가 표시되는 웹 데이터 영역을 캡쳐하여 생성된 이미지 파일을 수신하는 이미지 수신부, 상기 타켓 페이지 중에서, 동영상이 재생되는 동영상 영역을 캡쳐하여 재인코딩된 동영상을 수신하거나, 상기 동영상이 상기 가상화 서버에서 트랜스 코딩되어 생성된 동영상을 수신하는 동영상 수신부, 상기 이미지 파일로부터 상기 웹 데이터 영역을 복원하고, 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상으로부터 상기 동영상 영역을 복원하여 상기 타겟 페이지를 복원하는 타겟 페이지 복원부를 포함하는 셋탑 박스가 제공된다.
여기서, 상기 이미지 수신부는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보와 상기 이미지 파일을 포함하는 데이터 패킷을 수신하고, 상기 타겟 페이지 복원부는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 참조하여 상기 수신된 이미지 파일로부터 상기 웹 데이터 영역을 복원할 수 있다.
그리고, 상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고, 상기 데이터 패킷은 상기 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 생성된 복수의 이미지 파일들의 위치 및 크기에 대한 정보와 상기 복수의 이미지 파일들을 포함할 수 있다.
또 다른 예시적 실시예에 따르면, 웹 서버로부터 수신한 타겟 페이지를 파싱하여 상기 타겟 페이지를 동영상이 재생되는 동영상 영역 및 웹 데이터가 표시되는 웹 데이터 영역으로 구분하는 단계, 상기 동영상이 재생되는 경우, 상기 동영상 영역을 캡쳐하여 상기 동영상을 재인코딩하는 하거나, 상기 동영상을 다운로드 하고, 상기 다운로드된 동영상을 트랜스 코딩하는 단계, 상기 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성하는 단계 및 상기 캡쳐된 이미지 파일 및 상기 재인코딩된 동영상을 셋탑 박스로 전송하거나, 상기 캡쳐된 이미지 파일 및 상기 트랜스 코딩된 동영상을 셋탑 박스로 전송하는 단계를 포함하고, 상기 캡쳐된 이미지 파일은 상기 타겟 페이지의 웹 데이터 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되고, 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상은 상기 타겟 페이지의 동영상 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되어 상기 셋탑 박스에서 상기 타겟 페이지를 구성하는 가상화 서버의 동작 방법이 제공된다.
여기서, 상기 재인코딩하거나, 트랜스 코딩하는 단계는, 상기 타겟 페이지의 URL이 동영상 영역 만으로 구성된 웹 페이지의 목록에 포함되지 않고, 상기 타겟 페이지의 DOM Tree 에 동영상 재상 정보가 포함된 경우에, 상기 동영상을 재인코딩 하거나, 상기 동영상을 다운로드하여 트랜스 코딩할 수 있다.
그리고, 상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고, 상기 이미지 파일을 생성하는 단계는 상기 복수의 업데이트 영역 들을 모두 포함하는 하나의 사각 영역을 캡쳐하여 상기 이미지 파일을 생성할 수 있다.
또한, 상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고, 상기 이미지 파일을 생성하는 단계는 상기 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 상기 이미지 파일을 생성할 수 있다.
여기서, 상기 셋탑 박스로부터 상기 복원된 타겟 페이지에 대한 스크롤 이벤트를 수신하는 단계를 더 포함하고, 상기 이미지 파일을 생성하는 단계는 상기 타겟 페이지가 로딩되거나, 상기 스크롤 이벤트가 수신된 경우에는 상기 웹 데이터 영역을 캡쳐하여 상기 이미지 파일을 생성할 수 있다.
그리고, 상기 전송하는 단계는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 상기 이미지 파일과 함께 데이터 패킷에 포함하여 상기 셋탑 박스로 전송할 수 있다.
하기 실시예들에 따르면, 가상화 서버와 셋탑 박스 간의 대역폭을 최적화할 수 있다.
하기 실시예들에 따르면, 저가의 셋탑 박스를 이용하여 웹 브라우징 서비스를 제공할 수 있다.
도 1은 예시적 실시예에 따른 하이브리드 전송 프로토콜을 이용한 가상화 시스템을 도시한 도면이다.
도 2는 예시적 실시예에 따른 하이브리드 전송 프로토콜을 이용하여 IPTV 시스템의 시스템 구성도를 도시한 도면이다.
도 3은 예시적 실시예에 따른 하이브리드 라이브 스트리밍 전송 모드를 단계별로 설명한 순서도이다.
도 4는 예시적 실시예에 따른 하이브리드 온 디맨드 스트리밍 전송 모드를 단계별로 설명한 순서도이다.
도 5는 예시적 실시예에 따른 가상화 서버의 구조를 도시한 블록도이다.
도 6은 예시적 실시예에 따라서 전송 모드를 전환하는 방법을 단계별로 설명한 순서도이다.
도 7은 예시적 실시예에 따라서 웹 데이터 영역을 캡쳐하는 것을 도시한 도면이다.
도 8은 예시적 실시예에 따른 이벤트 종류별 캡쳐 시점을 도시한 도면이다.
도 9는 예시적 실시예에 따른 데이터 패킷의 구조를 도시한 도면이다.
도 10은 예시적 실시예에 따른 가상화 서버의 동작 방법을 단계별로 설명한 순서도이다.
도 11은 예시적 실시예에 따른 셋탑 박스의 구조를 도시한 블록도이다.
이하, 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 예시적 실시예에 따른 하이브리드 전송 프로토콜을 이용한 가상화 시스템을 도시한 도면이다.
예시적 실시예에 따른 가상화 서버(110)는 셋탑 박스(120)로부터 타겟 페이지에 대한 URL을 수신한다. 여기서, 타겟 페이지는 웹 페이지의 일종으로서, 셋탑 박스(120)가 TV 등의 디스플레이 장치를 통하여 표시하려는 인터넷 상의 문서이다.
가상화 서버(110)는 웹 서버(160)로부터 타겟 페이지를 수신한다. 일측에 따르면, 타겟 페이지는 동영상이 재생되는 동영상 영역과 텍스트, 이미지 등의 웹 데이터가 표시되는 웹 데이터 영역으로 구분될 수 있다. 동영상 영역에 표시되는 동영상은 매 시간 마다 그 내용이나 화면에 표시되는 결과가 변경되는 데이터이고, 텍스트, 이미지 등의 웹 데이터는 그 내용이 화면이 표시되면 비교적 긴 시간 동안 그 내용이 유지되는 데이터이다.
예시적 실시예에 따른 가상화 서버(110)는 타겟 페이지를 파싱하여, 타겟 페이지를 동영상이 재생되는 동영상 영역과 웹 데이터가 표시되는 웹 데이터 영역으로 구분할 수 있다.
가상화 서버(110)는 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성한다. 또한, 가상화 서버(110)는 동영상 영역을 캡쳐하여 다시 인코딩하거나, 동영상 서버(150)로부터 해당 동영상을 직접 다운로드 하여 트랜스 코딩을 수행한다.
가상화 서버(110)는 이미지 파일을 제1 통신망(130)을 통하여 셋탑 박스(120)로 전송하고, 인코딩된 동영상 또는 트랜스 코딩된 동영상을 제2 통신망(140)을 통하여 셋탑 박스(120)로 전송한다.
셋탑 박스(120)는 이미지 파일로부터 웹 데이터 영역을 복원하고, 인코딩된 동영상 또는 트랜스 코딩된 동영상을 이용하여 동영상 영역을 복원한다. 셋탑 박스(120)는 성능이 낮은 CPU를 가지고 있어 HTML5 등 인터랙티브한 웹 페이지를 직접 렌더링하여 표시하기 어려울 수 있다. 그러나, 웹 페이지의 복잡한 파싱이나 무거운 코드를 처리하는 기능은 가상화 서버(110)가 처리하고, 셋탑 박스(120)는 그 결과 화면을 캡쳐한 이미지만을 처리하므로, 셋탑 박스(120)는 낮은 성능에도 불구하고 사용자에게 월활한 웹 브라우징 서비스를 제공할 수 있다.
또한, 셋탑 박스(120)는 동영상을 재생하기 위한 하드웨어 디코딩 칩을 구비하고 있으므로, 낮은 성능에도 불구하고 인코딩된 동영상 또는 트랜스 코딩된 동영상을 디코딩할 수 있다. 따라서, 동영상이 포함된 웹 페이지에 대해서도 원활한 브라우징 서비스를 제공할 수 있다.
도 2는 예시적 실시예에 따른 하이브리드 전송 프로토콜을 이용하여 IPTV 시스템의 시스템 구성도를 도시한 도면이다. 예시적 실시예에 따른 IPTV 시스템은 가상화 서버(231), S/W 인코더(241), 스트리머(242), 다운로더(251), 트랜스 코더(252), 트랜스 코더 매니저(253) 를 포함할 수 있다.
도 2에서는 IPTV 시스템의 구성 요소들이 서로 개별적인 서버로 구성된 실시예가 도시되었으나, 다른 예시적 실시예에 따르면, S/W 인코더(241), 스트리머(242), 다운로더(251), 트랜스 코더(252), 트랜스 코더 매니저(253) 등은 모두 가상화 서버(231)내에서 S/W 적으로 구현될 수 있다.
또는 가상화 서버(231)와 S/W 인코더(241)가 하나의 서버(221)를 구성하고, 스트리머(242)가 다른 서버(224)를 구성하고, 다운로더(251), 트랜스 코더(252) 및 트랜스 코더 매니저(253)가 또 다른 서버(223)를 구성하며, 로드 밸런스(260)가 다른 서버(222)를 구성할 수도 있다.
가상화 서버(231)은 타겟 페이지를 수신하고, 타겟 페이지를 파싱하여 동영상 영역과 웹 데이터 영역으로 구분한다.
이미지 전송 모듈(240)이 웹 데이터 영역에 대한 처리를 수행할 수 있다. 이미지 전송 모듈(240)은 가상화 서버(231)를 포함할 수 있다. 가상화 서버(231)는 웹 데이터 영역 중에서, 업데이트 된 영역을 캡쳐하여 이미지 파일을 생성하고, 생성된 이미지 파일을 셋탑 박스(270)로 전송할 수 있다.
라이브 스트리밍 모드 모듈(240) 또는 온 디맨드 캐싱 모듈(250)은 동영상 영역에 대한 처리를 수행할 수 있다. 여기서, 라이브 스트리밍 모드 모듈(240)은 하이브리드 전송 프로토콜의 일종인 하이브리드 라이브 스트리밍 전송 모드를 수행하는 모듈이고, 온 디맨드 캐싱 모듈(250)은 하이브리드 전송 프로토콜의 일종인 하이브리드 온 디맨드 스트리밍 전송 모드를 수행하는 모듈이다.
라이브 스트리밍 모드 모듈(240)은 S/W 인코더(241) 및 스트리머(242)를 포함할 수 있다. S/W 인코더(241)는 동영상이 플레이됨에 따라서 업데이트된 동영상 영역을 캡쳐하여 인코딩한다. 스트리머(242)는 인코딩된 동영상을 셋탑 박스(270)로 전송할 수 있다.
온 디맨드 캐싱 모듈(250)은 다운로더(251), 트랜스 코더(252) 및 트랜스 코더 매니저(253)를 포함할 수 있다. 다운로더(251)은 타겟 페이지에 포함된 동영상을 다운 받고, 트랜스 코더(252)는 셋탑 박스(270)가 손쉽게 재생할 수 있는 형식으로 다운 받은 동영상을 트랜스 코딩할 수 있다. 트랜스 코더 매니저(253)는 다운 받은 동영상의 포맷을 확인 한 후, 트랜스 코딩 및 트랜스 포맷팅을 하도록 트랜스 코더(252)에게 지시한다.
로드 밸런스(260)는 셋탑 박스(270)의 CPU 사용량 등을 모니터링하고, 모니터링된 결과를 가상화 서버(210)에 보고하여 가상화 서버(210)가 하이브리드 전송 프로토콜의 전송 방식 등을 변경할 수 있도록 한다.
도 3은 예시적 실시예에 따른 하이브리드 라이브 스트리밍 전송 모드를 단계별로 설명한 순서도이다. 하이브리드 라이브 스트리밍 전송 모드는 동영상 영역을 재인코딩하여 셋탑 박스(340)로 전송하는 모드이다.
단계(S351)에서, 가상화 서버(310)는 스트리머(330)에 스트리밍 등록 요청 및 스트리머 URL을 전달한다.
단계(S352)에서, 스트리머(330)는 확인 메시지를 가상화 서버(310)로 전송한다.
단계(S353)에서, 가상화 서버(310)는 타겟 페이지의 오디오 데이터와 동영상 영역을 추출한다. 일측에 따르면, 가상화 서버(310)는 타겟 페이지에서 동영상이 표시되는 영역을 캡쳐하여 동영상 영역을 추출할 수 있다.
단계(S360)에서, 가상화 서버(310)는 타겟 페이지에서 추출된 동영상 영역과 오디오 데이터를 S/W인코더(320)로 전달한다.
단계(S361)에서, S/W 인코더(320)는 동영상 영역과 오디오 데이터를 셋탑 박스(340)가 하드웨어 디코더를 이용하여 손쉽게 재생할 수 있는 형식으로 인코딩한다. 일측에 따르면, S/W 인코더는 동영상 영역과 오디오 데이터를 H.264/AAC 형식으로 인코딩할 수 있다.
단계(S362)에서, S/W 인코더(320)는 인코딩된 데이터를 스트리머(330)로 전달할 수 있다.
단계(S370)에서, 가상화 서버(310)는 셋탑 박스(340)로 스트리머(330)의 URL을 전달할 수 있다.
단계(S371)에서, 셋탑 박스(340)는 스트리머(340)로 동영상 스트리밍 요청을 전송할 수 있다. 스트리머(340)는 인코딩된 동영상을 셋탑 박스(340)로 스트리밍 하고, 셋탑 박스(340)는 셋탑 박스(340)에 구비된 하드웨어 디코딩 칩을 이용하여 스트리밍 되는 동영상을 재생할 수 있다.
도 3에서는 설명되지 않았으나, 가상화 서버(310)는 웹 데이터 영역을 캡쳐하여 인코딩한 이미지 파일을 셋탑 박스(340)로 전송할 수 있다. 이 경우에, 셋탑 박스(340)는 이미지 파일로부터 웹 데이터 영역을 복원하고, 인코딩된 동영상으로부터 동영상 영역을 복원하여 타겟 페이지를 재구성할 수 있다.
도 4는 예시적 실시예에 따른 하이브리드 온 디맨드 스트리밍 전송 모드를 단계별로 설명한 순서도이다. 하이브리드 온 디맨드 스트리밍 전송 모드는 동영상 영역에 포함된 동영상을 다운로드 하고, 트랜스 코딩하여 셋탑 박스(420)로 전송하는 모드이다.
단계(S430)에서, 가상화 서버(410)는 동영상 영역에 포함된 동영상의 URL을 트랜스 코더 매니저(411)로 전송한다.
단계(S431)에서, 트랜스 코더 매니저(411)는 해당 동영상이 저장 장치에 캐싱되어 있는지 여부를 판단한다. 만약 해당 동영상이 캐싱되어 있는 경우, 트랜스 코더 매니저(411)는 단계(S451)에서 캐싱된 동영상을 스트리머(414)에 전달할 수 있다.
그러나, 해당 동영상이 캐싱되지 않은 경우, 단계(432)에서 트랜스 코더 매니저(411)는 해당 동영상에 대한 다운로드 요청을 다운 로더(412)로 전송한다.
단계(S433)에서, 다운 로더는 해당 동영상을 다운로드 하고, 결과를 트랜스 코더 매니저(411)로 전송한다.
단계(S441)에서, 트랜스 코더 매니저(411)는 셋탑 박스(420)가 하드웨어 디코딩 칩을 이용하여 용이하게 재생할 수 있는 형식으로 해당 동영상을 트랜스 코딩할 것을 트랜스 코더(413)에게 요청한다.
단계(S442)에서, 트랜스 코더(413)는 해당 동영상에 대한 트랜스 코딩 또는 트랜스 포맷팅 작업을 수행한다.
단계(S443)에서, 트랜스 코더(413)는 트랜스 코딩 또는 트랜스 포맷팅된 결과를 트랜스 코더 매니저(411)로 전송한다.
단계(S451)에서, 트랜스 코더 매니저(411)는 트랜스 코딩 또는 트랜스 포맷팅된 결과를 스트리머(414)에 등록하고, 디스크에 캐싱한다.
단계(S452)에서, 스트리머(414)는 등록 결과를 트랜스 코더 매니저(411)로 전송한다.
단계(S460)에서, 트랜스 코더 매니저(411)는 가상화 서버(410)로 스트리머(414)의 URL을 전달할 수 있다.
단계(S461)에서, 가상화 서버(410)는 셋탑 박스(420)로 스트리머(414)의 URL을 전달할 수 있다.
단계(S462)에서, 셋탑 박스(420)는 스트리머(414)로 동영상 스트리밍 요청을 전송할 수 있다. 스트리머(414)는 트랜스 코딩 또는 트랜스 포맷팅된 동영상을 셋탑 박스(420)로 스트리밍 하고, 셋탑 박스(420)는 셋탑 박스(420)에 구비된 하드웨어 디코딩 칩을 이용하여 스트리밍 되는 동영상을 재생할 수 있다.
도 4에서는 설명되지 않았으나, 가상화 서버(410)는 웹 데이터 영역을 캡쳐하여 인코딩한 이미지 파일을 셋탑 박스(420)로 전송할 수 있다. 이 경우에, 셋탑 박스(420)는 이미지 파일로부터 웹 데이터 영역을 복원하고, 트랜스 코딩 또는 트랜스 포맷팅된 동영상으로부터 동영상 영역을 복원하여 타겟 페이지를 재구성할 수 있다.
도 5는 예시적 실시예에 따른 가상화 서버의 구조를 도시한 블록도이다. 예시적 실시예에 따른 가상화 서버(500)는 파싱부(510), 판단부(520), 캡쳐부(530), 인코더(540), 트랜스 코더(550), 전송부(560) 및 수신부(570)를 포함할 수 있다.
파싱부(510)는 웹 서버로부터 수신한 타겟 페이지를 파싱하여, 타겟 페이지를 동영상이 재생되는 동영상 영역 및 웹 데이터가 표시되는 웹 데이터 영역으로 구분한다.
판단부(520)는 타겟 페이지를 셋탑 박스로 전송하기 위한 프로토콜을 결정한다. 또는 판단부(520)는 프로토콜이 결정된 이후에도, 가상화 서버(500)로부터 셋탑 박스까지의 통신망의 대역폭 변화, 동영상 영역에 포함된 동영상의 속성 변화 등을 고려하여 프로토콜을 변경할 수 있다.
이하 판단부(520)가 프로토콜을 결정하는 구성에 대해서는 도 6을 참고하여 구체적으로 설명한다.
도 6은 예시적 실시예에 따라서 전송 모드를 전환하는 방법을 단계별로 설명한 순서도이다.
단계(610)에서, 판단부(520)는 타겟 페이지의 URL을 수신하고, 타겟 페이지의 URL이 스트리밍 전송 모드로 등록된 URL인지 여부를 판단한다. 여기서, 스트리밍 전송 모드로 등록된 URL은 웹 데이터가 포함되지 않고, 동영상이 전체 화면으로 재상되는 웹 페이지들의 URL을 의미한다.
만약 타겟 페이지의 URL이 스트리밍 전송 모드로 등록된 URL이라면, 타겟 페이지에 포함된 동영상은 전체 화면 모드로 재생된다. 따라서, 이 경우에는 단계(620)에서 판단부(520)는 동영상 서버로부터 셋탑 박스로 직접 동영상이 스트리밍 되는 스트리밍 전송 모드를 실행하는 것으로 결정한다.
만약 타겟 페이지의 URL이 스트리밍 전송 모드로 등록된 URL이 아니라면, 타겟 페이지는 웹 데이터만을 포함하거나, 웹 데이터와 동영상 데이터를 모두 포함하는 웹 페이지 이다.
이 경우에, 단계(630)에서, 판단부(520)는 타겟 페이지의 DOM tree 내에 동영상 재생 정보가 포함되는지 여부를 확인한다. 일측에 따르면, 동영상 재생 정보는 HTML5의 VIDEO 태그일 수 있다. 동영상 재생 정보가 포함된 경우 판단부(520)는 타겟 페이지가 동영상을 포함하는 것으로 판단할 수 있다.
만약 DOM tree 내에 동영상 재생 정보가 포함되지 않으면, 타겟 페이지는 오직 웹 데이터만을 포함하는 웹 페이지인 것으로 판단할 수 있다. 이 경우에, 단계(640)에서 판단부는 웹 페이지 전체를 이미지로 캡쳐하여 전송하는 이미지 전송 모드를 실행하는 것으로 결정할 수 있다.
만약 DOM tree 내에 동영상 재생 정보가 포함되면, 단계(650)에서 판단부(520)는 라이브 스트리밍을 수행해야 할지 판단할 수 있다.
라이브 스트리밍을 수행해야 한다면, 단계(670)에서 판단부(520)는 하이브리드 라이브 스트리밍 전송 모드를 실행하는 것으로 결정할 수 있다.
라이브 스트리밍을 수행하지 않는 다면, 단계(660)에서 판단부(520)는 하이브리드 온 디맨드 스트리밍 전송 모드를 실행하는 것으로 결정할 수 있다.
하이브리드 라이브 스트리밍 전송 모드와 하이브리드 온 디맨드 스트리밍 전송 모드에 대해서는 도 2 및 도 3에서 구체적으로 설명한 바 있다.
인코더(540)는 타겟 페이지에 포함된 동영상이 재생되는 경우, 동영상 영역을 캡쳐하여 동영상을 재인코딩한다.
트랜스 코더(550)는 타겟 페이지에 포함된 동영상을 다운로드하고, 다운로드된 동영상을 트랜스 코딩하거나, 트랜스 포맷팅 한다.
캡쳐부(530)는 타겟 페이지 중에서 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성한다. 일측에 따르면, 캡쳐부(530)는 가상화 서버(500)와 셋탑 박스간의 대역폭 등을 고려하여 웹 데이터 영역 중에서 업데이트된 부분만을 캡쳐 할 수 있다. 캡쳐부(530)가 웹 데이터 영역을 캡쳐하는 구성에 대해서는 이하 도 7을 참조하여 구체적으로 설명한다.
도 7은 예시적 실시예에 따라서 웹 데이터 영역을 캡쳐하는 것을 도시한 도면이다.
웹 데이터 영역(700)은 타겟 페이지 중에서 텍스트, 이미지 등 화면에 표시된 이후에도 비교적 오랜 기간 동안 동일한 결과가 유지되는 영역이다. 그러나, 시간이 지남에 따라서 웹 데이터 영역(700)도 업데이트된다. 따라서 캡쳐부(530)는 웹 데이터 영역을 캡쳐하고, 전송부(560)는 캡쳐된 이미지를 셋탑 박스로 전송함으로써, 셋탑 박스가 타겟 페이지의 변화를 반영할 수 있도록 할 수 있다.
웹 데이터 영역(700) 중에서, 일부 영역(710, 720)만이 업데이트될 수 있다. 도 7에서는 두 영역(710, 720)이 업데이트되었으며, 이 두 개의 영역(710, 720)은 서로 불연속적이다.
일측에 따르면 캡쳐부(530)는 여러 가지 캡쳐 방법을 이용하여 업데이트된 영역(710, 720)을 캡쳐할 수 있다. 이하 각 방법 별로 설명한다.
1. 버퍼 클리어(Buffer Clear)
버퍼 클리어 방식은 캡쳐 인터벌과 무관하게 화면 변화가 발생한 영역(710, 720)을 각각 캡쳐한다. 버퍼 클리어 방식은 변경된 영역(710, 720)에 대응되는 영역(741, 742)만 캡쳐하므로 효율적이나, 너무 빠른 화면 변화가 발생할 경우 가상화 서버로부터 전송된 이미지를 셋탑 박스가 제대로 렌더링 할 수 없는 문제가 있다.
2. Rect-Merge 방식
Rect-Merge 방식은 미리 결정된 캡쳐 인터벌 동안 변경된 모든 영역(710, 720)을 포함하는 하나의 사각 영역(730)을 캡쳐하여 이미지 파일을 생성한다. Rect-Merge 방식은 미리 결정된 캡쳐 인터벌 마다 캡쳐를 진행하므로, 가상화 서버 및 셋탑 박스의 로드를 감소시킬 수 있는 장점이 있다. 그러나, 변경되지 않은 영역에 대한 캡쳐도 수행하므로, 가상화 서버와 셋탑 박스간의 대역을 낭비하는 단점이 있다.
3. Region-Merge 방식
Region-Merge 방식은 미리 결정된 캡쳐 인터벌 동안 변경된 영역들(710, 720)을 개별적으로 포함하는 복수의 사각 영역들(741, 742)을 캡쳐하여 이미지 파일을 생성한다. Region-Merge 방식은 미리 결정된 캡쳐 인터벌 마다 캡쳐를 진행하므로, 가상화 서버 및 셋탑 박스의 로드를 감소시킬 수 있으며, 변경된 영역(710, 720)에 대한 캡쳐만을 수행하므로, 가상화 서버와 셋탑 박스간의 대역을 효율적으로 사용할 수 있다.
4. Buffer-Mirror 방식
Buffer-Mirror은 화면의 업데이트 여부에 관계 없이 타겟 페이지 전체에 대하여 캡쳐를 수행하는 방식이다. Buffer-Mirror 방식은 미리 결정된 캡쳐 인터벌 마다 캡쳐를 진행한다.
수신부(570)는 셋탑 박스로부터 여러 가지 이벤트를 수신할 수 있다. 또한, 캡쳐부(530)는 수신부(570)가 수신한 이벤트에 따라 캡쳐 시점을 제어할 수 있다. 이하 셋탑 박스로부터 수신한 이벤트에 따라 캡쳐 시점을 제어하는 구성에 대해서는 도 8을 참조하여 설명한다.
도 8은 예시적 실시예에 따른 이벤트 종류별 캡쳐 시점을 도시한 도면이다.
캡쳐부(530)는 미리 결정된 캡쳐 인터벌마다 캡쳐를 진행한다. 도 8에서는 캡쳐 인터벌이 400ms 인 실시예가 도시되었다.
수신부(570)는 캡쳐된 이미지 및 재인코딩 되거나 트랜스 코딩된 동영상으로부터 복원된 타겟 페이지가 셋탑 박스에서 로딩된 경우 셋탑 박스로부터 로드 이벤트(831)를 수신할 수 있다. 이 경우에, 캡쳐부(530)는 이벤트 수신과 동시에 캡쳐(841)를 수행하여 사용자에게 현재 작업이 진행되고 있음을 알려줄 수 있다.
사용자가 셋탑 박스에 연결된 마우스 및 키보드를 조작함에 따라서, 수신부(570)는 셋탑 박스로부터 마우스 이벤트(833) 및 키보드 이벤트(832)를 수신할 수 있다. 마우스 이벤트(833) 및 키보드 이벤트(832)는 추가 렌더링이 발생할 가능성이 높은 이벤트이다. 따라서, 캡쳐부(530)는 지연된 시점에 캡쳐(842, 843)를 수행하고, 키보드를 이용한 텍스트 입력은 셋탑 박스에서 별개의 UI를 구성하여 한번에 전송할 수 있다.
사용자가 셋탑 박스의 화면을 스크롤하면, 수신부(570)는 셋탑 박스로부터 스크롤 이벤트(834)를 수신할 수 있다. 스크롤 이벤트는 이미 렌더링된 결과 화면을 이동시키는 것이므로, 캡쳐부(530)는 즉시 캡쳐(844)를 수행한다.
하이브리드 라이브 스트리밍 모드로 전송하는 경우, 전송부(560)는 캡쳐된 이미지 파일 및 재인코딩된 동영상을 셋탑 박스로 전송한다. 또한, 하이브리드 온 디맨드 모드로 전송하는 경우, 전송부(560)는 캡쳐된 이미지 파일 및 트랜스 코딩된 동영상을 셋탑 박스로 전송한다.
일측에 따르면, 전송부(560)는 캡쳐된 이미지 파일의 웹 데이터 영역에서의 위치 및 이미지 파일의 크기에 대한 정보를 이미지 파일과 함께 데이터 패킷에 포함하여 셋탑 박스로 전송할 수 있다.
도 9는 예시적 실시예에 따른 데이터 패킷의 구조를 도시한 도면이다.
데이터 패킷(900)은 프로토콜 타입(910), 시간 정보(920), 헤더 사이즈(930), 헤더 데이터(940), 바디 사이즈(950), 바디 정보(960), 바디 데이터(970)를 포함할 수 있다.
프로토콜 타입(910)은 영상을 캡쳐한 방법에 대한 정보를 포함할 수 있다. 예를 들어, 캡쳐 방법이 Buffer-Mirror 방법인 경우 프로토콜 타입(910)에는 'A'가 포함되고, 캡쳐 방법이 Buffer-Clear 방법인 경우 프로토콜 타입(910)에는 'B'가 포함되고, 캡쳐 방법이 Rect-Merge 방법인 경우 프로토콜 타입(910)에는 'C'가 포함되고, 캡쳐 방법이 Region-Merge 방법인 경우 프로토콜 타입(910)에는 'D'가 포함될 수 있다.
시간 정보(920)는 데이터 수신 장치에서 보낸 요청 신호를 서버에서 최초 수신한 시간 정보가 포함된다. 시간 정보는 응답 시간을 체크하기 위하여 사용될 수 있다.
헤더 사이즈(930)는 헤더 데이터(940)의 크기에 대한 정보를 포함한다.
헤더 데이터(940)는 가상화 서버의 CPU, 메모리, 힙(heap) 등에 대한 정보를 포함한다.
바디 사이즈(950)는 바디 데이터(960)의 크기에 대한 정보를 포함한다.
바디 정보(960)는 가상화 서버가 캡쳐한 영역에 대한 정보, 부분 캡쳐가 수행된 경우 캡쳐된 이미지의 개수 등에 대한 정보를 포함한다.
바디 데이터(970)는 각 캡쳐 타입을 이용하여 캡쳐된 이미지가 포함된다.
하이브리드 라이브 스트리밍 모드로 전송하는 경우, 셋탑 박스는 이미지 파일로부터 웹 데이터 영역을 복원하고, 인코딩된 동영상으로부터 동영상 영역을 복원하여 타겟 페이지를 재구성할 수 있다.
하이브리드 온 디맨드 모드로 전송하는 경우, 셋탑 박스(420)는 이미지 파일로부터 웹 데이터 영역을 복원하고, 트랜스 코딩 또는 트랜스 포맷팅된 동영상으로부터 동영상 영역을 복원하여 타겟 페이지를 재구성할 수 있다.
도 10은 예시적 실시예에 따른 가상화 서버의 동작 방법을 단계별로 설명한 순서도이다.
단계(1010)에서, 가상화 서버는 타겟 페이지를 수신하고, 타겟 페이지를 파싱하여 타겟 페이지를 웹 데이터가 표시되는 웹 데이터 영역과 동영상이 표시되는 동영상 영역으로 구분한다.
단계(1020)에서, 가상화 서버는 동영상 영역을 캡쳐하여 동영상을 재인코딩하는 하거나, 동영상을 다운로드 하고, 다운로드된 동영상을 트랜스 코딩한다. 일측에 따르면, 가상화 서버는 타겟 페이지의 URL이 동영상 영역 만으로 구성된 웹 페이지의 목록에 포함되지 않고, 타겟 페이지의 DOM Tree 에 동영상 재상 정보가 포함된 경우에, 동영상을 재인코딩 하거나, 동영상을 다운로드하여 트랜스코딩할 수 있다.
단계(1030)에서, 가상화 서버는 셋탑 박스로부터 이벤트를 수신한다. 가상화 서버는 셋탑 박스로부터 수신한 이벤트에 따라서 웹 데이터 영역을 캡쳐하는 시점을 제어할 수 있다. 예를 들어, 셋탑 박스로부터 수신한 이벤트가 셋탑 박스에서 복원된 타겟 페이지에 대한 스크롤 이벤트이거나, 셋탑 박스에서 복원된 타겟 이미지를 로딩한 로드 이벤트인 경우에, 가상화 서버는 즉시 웹 데이터 영역을 캡쳐할 수 있다. 그러나, 셋탑 박스로부터 수신한 이벤트가 셋탑 박스의 사용자가 마우스, 키보드 등을 조작한 마우스 이벤트, 키보드 이벤트인 경우, 가상화 서버는 미리 정해진 캡쳐 시점까지 대기한 후 캡쳐를 수행할 수 있다.
단계(1040)에서, 가상화 서버는 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성한다. 일측에 따르면, 가상화 서버는 도 7에서 설명된 여러 가지 캡쳐 방법 중에서 어느 하나의 방법을 이용하여 캡쳐를 수행할 수 있다. 예를 들어, 웹 데이터 영역 중에서 서로 불연속적으로 위치하고, 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역이 포함된 경우에, 가상화 서버는 복수의 업데이트 영역들을 모두 포함하는 하나의 사각 영역을 캡쳐하여 이미지 파일을 생성할 수 있다. 또는 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 이미지 파일을 생성할 수 있다.
단계(1050)에서, 가상화 서버는 이미지 파일 및 동영상을 셋탑 박스로 전송할 수 있다. 하이브리드 라이브 스트리밍 모드로 전송하는 경우, 가상화 서버는 캡쳐된 이미지 파일 및 재인코딩된 동영상을 셋탑 박스로 전송할 수 있다. 하이브리드 온 디맨드 모드로 전송하는 경우, 가상화 서버는 캡쳐된 이미지 파일 및 트랜스 코딩된 동영상을 셋탑 박스로 전송할 수 있다.
일측에 따르면, 단계(1050)에서 가상화 서버는 캡쳐된 이미지 파일의 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 이미지 파일과 함께 데이터 패킷에 포함하여 셋탑 박스로 전송할 수 있다.
캡쳐된 이미지 파일은 타겟 페이지의 웹 데이터 영역을 구성하기 위하여 셋탑 박스에서 복원되고, 재인코딩된 동영상 또는 트랜스코딩된 동영상은 타겟 페이지의 동영상 영역을 구성하기 위하여 셋탑 박스에서 복원된다. 셋탑 박스는 복원된 웹 데이터 영역 및 동영상 영역을 이용하여 타겟 페이지를 구성할 수 있다.
도 11은 예시적 실시예에 따른 셋탑 박스의 구조를 도시한 블록도이다. 예시적 실시예에 따른 셋탑 박스는 이미지 수신부(1120), 동영상 수신부(1130) 및 타겟 페이지 복원부(1140)를 포함한다.
이미지 수신부(1120)는 가상화 서버로부터 데이터 패킷을 수신한다. 데이터 패킷은 웹 데이터 영역을 캡쳐한 이미지 파일, 이미지 파일의 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 포함할 수 있다.
여기서, 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역을 포함할 수 있다. 이 경우에, 데이터 패킷은 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 생성된 복수의 이미지 파일들의 위치 및 크기에 대한 정보와 복수의 이미지 파일들을 포함할 수 있다. 또는 데이터 패킷은 불연속적인 업데이트 영역들을 모두 포함하는 하나의 사각 영역을 캡쳐하여 생성된 하나의 이미지 파일의 위치 및 크기에 대한 정보와 하나의 이미지 파일을 포함할 수 있다.
동영상 수신부(1130)는 동영상 영역을 캡쳐하여 재인코딩된 동영상을 수신하거나, 해당 동영상이 가상화 서버에서 다운로드되어 트랜스 코딩된 동영상을 수신할 수 있다.
타겟 페이지 복원부(1140)는 이미지 파일로부터 웹 데이터 영역을 복원하고, 재인코딩된 동영상 또는 트랜스코딩된 동영상으로부터 동영상 영역을 복원하여 상기 타겟 페이지를 복원할 수 있다. 여기서, 타겟 페이지 복원부(1140)는 캡쳐된 이미지 파일의 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 참조하여 수신된 이미지 파일로부터 웹 데이터 영역을 복원할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110: 가상화 서버
120: 셋탑 박스
130: 제1 통신망
140: 제2 통신망
150: 동영상 서버
160: 웹 서버

Claims (16)

  1. 가상화 서버에 있어서,
    웹 서버로부터 수신한 타겟 페이지를 파싱하여 상기 타겟 페이지를 동영상이 재생되는 동영상 영역 및 웹 데이터가 표시되는 웹 데이터 영역으로 구분하는 파싱부;
    상기 동영상이 재생되는 경우, 상기 동영상 영역을 캡쳐하여 상기 동영상을 재인코딩하는 인코더;
    상기 동영상을 다운로드 하고, 상기 다운로드된 동영상을 트랜스 코딩하는 트랜스 코더;
    상기 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성하는 캡쳐부; 및
    상기 타겟 페이지의 URL이 동영상 영역 만으로 구성된 웹 페이지의 목록에 포함되지 않고, 상기 타겟 페이지의 DOM Tree 에 동영상 재생 정보가 포함된 경우에,
    상기 캡쳐된 이미지 파일 및 상기 재인코딩된 동영상을 셋탑 박스로 전송하는 제1 전송 모드 또는 상기 캡쳐된 이미지 파일 및 상기 트랜스 코딩된 동영상을 셋탑 박스로 전송하는 제2 전송 모드 중에서 어느 하나의 전송 모드로 동작하는 전송부
    를 포함하고,
    상기 캡쳐된 이미지 파일은 상기 타겟 페이지의 웹 데이터 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되고, 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상은 상기 타겟 페이지의 동영상 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되어 상기 셋탑 박스에서 상기 타겟 페이지를 구성하고,
    상기 가상화 서버는 상기 셋탑 박스의 CPU 사용량에 따라서 상기 제1 전송 모드 또는 상기 제2 전송 모드 중 어느 하나의 전송 모드로 동작하는 가상화 서버.
  2. 삭제
  3. 제1항에 있어서,
    상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고,
    상기 캡쳐부는 상기 복수의 업데이트 영역 들을 모두 포함하는 하나의 사각 영역을 캡쳐하여 상기 이미지 파일을 생성하는 가상화 서버.
  4. 제1항에 있어서,
    상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고,
    상기 캡쳐부는 상기 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 상기 이미지 파일을 생성하는 가상화 서버.
  5. 제1항에 있어서,
    상기 셋탑 박스로부터 상기 복원된 타겟 페이지에 대한 스크롤 이벤트를 수신하는 수신부;
    를 더 포함하고,
    상기 캡쳐부는 상기 타겟 페이지가 로딩되거나, 상기 스크롤 이벤트가 수신된 경우에는 상기 웹 데이터 영역을 캡쳐하는 가상화 서버.
  6. 제1항에 있어서,
    상기 전송부는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 상기 이미지 파일과 함께 데이터 패킷에 포함하여 상기 셋탑 박스로 전송하는 가상화 서버.
  7. 가상화 서버를 이용하여 웹 브라우징 서비스를 이용하는 셋탑 박스에 있어서,
    타겟 페이지 중에서, 웹 데이터가 표시되는 웹 데이터 영역을 캡쳐하여 생성된 이미지 파일을 수신하는 이미지 수신부;
    상기 타겟 페이지의 URL이 동영상 영역 만으로 구성된 웹 페이지의 목록에 포함되지 않고, 상기 타겟 페이지의 DOM Tree 에 동영상 재생 정보가 포함된 경우에,
    상기 타겟 페이지 중에서, 동영상이 재생되는 동영상 영역을 캡쳐하여 재인코딩된 동영상을 수신하는 제1 수신 모드 또는 상기 동영상이 가상화 서버에서 트랜스 코딩되어 생성된 동영상을 수신하는 제2 수신 모드로 동작하는 동영상 수신부; 및
    상기 이미지 파일로부터 상기 웹 데이터 영역을 복원하고, 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상으로부터 상기 동영상 영역을 복원하여 상기 타겟 페이지를 복원하는 타겟 페이지 복원부
    를 포함하고,
    상기 동영상 수신부는 상기 셋탑 박스의 CPU 사용량에 따라서 상기 제1 수신 모드 또는 상기 제2 수신 모드 중 어느 하나의 수신 모드로 동작하는 셋탑 박스.
  8. 제7항에 있어서,
    상기 이미지 수신부는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보와 상기 이미지 파일을 포함하는 데이터 패킷을 수신하고,
    상기 타겟 페이지 복원부는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 참조하여 상기 수신된 이미지 파일로부터 상기 웹 데이터 영역을 복원하는 셋탑 박스.
  9. 제8항에 있어서,
    상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고,
    상기 데이터 패킷은 상기 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 생성된 복수의 이미지 파일들의 위치 및 크기에 대한 정보와 상기 복수의 이미지 파일들을 포함하는 셋탑 박스.
  10. 웹 서버로부터 수신한 타겟 페이지를 파싱하여 상기 타겟 페이지를 동영상이 재생되는 동영상 영역 및 웹 데이터가 표시되는 웹 데이터 영역으로 구분하는 단계;
    상기 동영상이 재생되는 경우, 상기 동영상 영역을 캡쳐하여 상기 동영상을 재인코딩하는 하거나, 상기 동영상을 다운로드 하고, 상기 다운로드된 동영상을 트랜스 코딩하는 단계;
    상기 웹 데이터 영역을 캡쳐하여 이미지 파일을 생성하는 단계;
    상기 타겟 페이지의 URL이 동영상 영역 만으로 구성된 웹 페이지의 목록에 포함되지 않고, 상기 타겟 페이지의 DOM Tree 에 동영상 재생 정보가 포함된 경우에,
    상기 재인코딩된 동영상을 수신하여 재생하거나, 상기 트랜스 코딩된 동영상을 수신하여 재생하는 셋탑 박스의 CPU 사용량에 따라서 상기 캡쳐된 이미지 파일 및 상기 재인코딩된 동영상을 셋탑 박스로 전송하는 제1 전송 모드 또는 상기 캡쳐된 이미지 파일 및 상기 트랜스 코딩된 동영상을 상기 셋탑 박스로 전송하는 제2 전송 모드 중에서 어느 하나의 전송 모드를 결정하는 단계; 및
    상기 결정된 전송 모드로 동작하여 상기 캡쳐된 이미지 파일 및 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상을 전송하는 단계
    를 포함하고,
    상기 캡쳐된 이미지 파일은 상기 타겟 페이지의 웹 데이터 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되고, 상기 재인코딩된 동영상 또는 상기 트랜스 코딩된 동영상은 상기 타겟 페이지의 동영상 영역을 구성하기 위하여 상기 셋탑 박스에서 복원되어 상기 셋탑 박스에서 상기 타겟 페이지를 구성하는 가상화 서버의 동작 방법.
  11. 삭제
  12. 제10항에 있어서,
    상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고,
    상기 이미지 파일을 생성하는 단계는 상기 복수의 업데이트 영역 들을 모두 포함하는 하나의 사각 영역을 캡쳐하여 상기 이미지 파일을 생성하는 가상화 서버의 동작 방법.
  13. 제10항에 있어서,
    상기 웹 데이터 영역은 서로 불연속적으로 위치하고 이전 시점과 비교하여 업데이트된 복수의 업데이트 영역 들을 포함하고,
    상기 이미지 파일을 생성하는 단계는 상기 불연속적인 업데이트 영역들에 각각 대응되는 사각 영역들을 개별적으로 캡쳐하여 상기 이미지 파일을 생성하는 가상화 서버의 동작 방법.
  14. 제10항에 있어서,
    상기 셋탑 박스로부터 상기 복원된 타겟 페이지에 대한 스크롤 이벤트를 수신하는 단계;
    를 더 포함하고,
    상기 이미지 파일을 생성하는 단계는 상기 타겟 페이지가 로딩되거나, 상기 스크롤 이벤트가 수신된 경우에는 상기 웹 데이터 영역을 캡쳐하여 상기 이미지 파일을 생성하는 가상화 서버의 동작 방법.
  15. 제10항에 있어서,
    상기 전송하는 단계는 상기 캡쳐된 이미지 파일의 상기 웹 데이터 영역에서의 위치 및 크기에 대한 정보를 상기 이미지 파일과 함께 데이터 패킷에 포함하여 상기 셋탑 박스로 전송하는 가상화 서버의 동작 방법.
  16. 제10항 및 제12항 내지 제15항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
KR1020140183098A 2014-12-18 2014-12-18 하이브리드 전송 프로토콜 KR101647104B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140183098A KR101647104B1 (ko) 2014-12-18 2014-12-18 하이브리드 전송 프로토콜
PCT/KR2015/013909 WO2016099183A1 (ko) 2014-12-18 2015-12-18 하이브리드 전송 프로토콜
US15/537,380 US10547878B2 (en) 2014-12-18 2015-12-18 Hybrid transmission protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140183098A KR101647104B1 (ko) 2014-12-18 2014-12-18 하이브리드 전송 프로토콜

Publications (2)

Publication Number Publication Date
KR20160074167A KR20160074167A (ko) 2016-06-28
KR101647104B1 true KR101647104B1 (ko) 2016-08-10

Family

ID=56126975

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140183098A KR101647104B1 (ko) 2014-12-18 2014-12-18 하이브리드 전송 프로토콜

Country Status (3)

Country Link
US (1) US10547878B2 (ko)
KR (1) KR101647104B1 (ko)
WO (1) WO2016099183A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112770175A (zh) * 2019-11-05 2021-05-07 爱上电视传媒(北京)有限公司 Iptv系统中epg页面的应用方法
CN111125604B (zh) * 2019-12-30 2024-03-15 华人运通(上海)云计算科技有限公司 一种页面管理方法、装置、终端设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089579B1 (en) * 1998-12-20 2006-08-08 Tvworks, Llc System for transporting MPEG video as streaming video in an HTML web page
WO2000079794A2 (en) * 1999-06-17 2000-12-28 Bigband Networks, Inc. Method for delivery of narrow-cast data over digital broadcast channels
US6907574B2 (en) * 2000-11-29 2005-06-14 Ictv, Inc. System and method of hyperlink navigation between frames
CN100483992C (zh) * 2003-05-06 2009-04-29 国际商业机器公司 数据流的加密、解密方法和装置
US8074248B2 (en) * 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
KR100817582B1 (ko) 2006-11-29 2008-03-31 에스케이 텔레콤주식회사 모바일 웹 서비스 방법과 이를 위한 프록시 서버 및 모바일단말기
KR101012214B1 (ko) 2008-08-22 2011-02-08 주식회사 엘지유플러스 이동통신단말기의 웹 서비스 제공 방법 및 시스템
US20120010995A1 (en) * 2008-10-23 2012-01-12 Savnor Technologies Web content capturing, packaging, distribution
US9294791B2 (en) * 2009-11-17 2016-03-22 Broadcom Corporation Method and system for utilizing switched digital video (SDV) for delivering dynamically encoded video content
KR20130082685A (ko) 2011-12-14 2013-07-22 주식회사 케이티 가상 머신을 이용한 콘텐츠 서비스 제공 시스템 및 방법
JP5759955B2 (ja) 2012-10-18 2015-08-05 富士フイルム株式会社 Webページ閲覧サーバ、Webページ閲覧システム、Webページ閲覧方法及びプログラム
KR20140133096A (ko) * 2013-05-09 2014-11-19 박현영 가상화 웹 iptv 및 이를 이용한 동영상 스트리밍 방법
US9178934B1 (en) * 2014-11-21 2015-11-03 Instart Logic, Inc. Modifying web content at a client

Also Published As

Publication number Publication date
KR20160074167A (ko) 2016-06-28
US10547878B2 (en) 2020-01-28
WO2016099183A1 (ko) 2016-06-23
US20190158898A1 (en) 2019-05-23

Similar Documents

Publication Publication Date Title
US10567809B2 (en) Selective media playing method and apparatus according to live streaming and recorded streaming
US20190356714A1 (en) Hypermedia Apparatus and Method
US10979785B2 (en) Media playback apparatus and method for synchronously reproducing video and audio on a web browser
US9351020B2 (en) On the fly transcoding of video on demand content for adaptive streaming
KR100928998B1 (ko) 사용자 단말기에 멀티미디어 컨텐츠와 코덱을 제공하는적응적 멀티미디어 시스템 및 그 방법
US8875208B1 (en) High quality multimedia transmission from a mobile device for live and on-demand viewing
US9756369B2 (en) Method and apparatus for streaming media data segments of different lengths wherein the segment of different length comprising data not belonging to the actual segment and beginning with key frames or containing key frames only
US20140082054A1 (en) Method and device for generating a description file, and corresponding streaming method
US10917653B2 (en) Accelerated re-encoding of video for video delivery
CN109587514B (zh) 一种视频播放方法、介质和相关装置
US11758200B2 (en) System and method for converting adaptive stream to downloadable media
JP7443544B2 (ja) 遠隔要素分解のクライアントベースの記憶装置
Mongay Batalla Advanced multimedia service provisioning based on efficient interoperability of adaptive streaming protocol and high efficient video coding
CA2843718C (en) Methods and systems for processing content
CN113382278B (zh) 视频推送方法、装置、电子设备和可读存储介质
KR101647104B1 (ko) 하이브리드 전송 프로토콜
TW201944248A (zh) 內容傳遞控制裝置、內容傳遞控制方法、程式、及內容傳遞系統
US11706275B2 (en) Media streaming
US11716503B2 (en) Method for managing multimedia content, and device for carrying out said method
US11425433B2 (en) Content delivery control apparatus, content delivery control method, program, and content delivery control system
CN116636224A (zh) 可替代联网应用程序服务的系统和方法
KR102600762B1 (ko) Atsc 3.0 기반의 방송 콘텐츠 전송 장치 및 방법과, 방송 콘텐츠 수신 장치 및 방법
KR20180065431A (ko) 클라우드 기반 유저 인터페이스 제공 시스템 및 그 방법
HASHEMIZADEHNAEINI Transcoding H. 264 Video via FFMPEG encoder

Legal Events

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

Payment date: 20190731

Year of fee payment: 4