KR20120138950A - 가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법 - Google Patents

가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20120138950A
KR20120138950A KR1020110058401A KR20110058401A KR20120138950A KR 20120138950 A KR20120138950 A KR 20120138950A KR 1020110058401 A KR1020110058401 A KR 1020110058401A KR 20110058401 A KR20110058401 A KR 20110058401A KR 20120138950 A KR20120138950 A KR 20120138950A
Authority
KR
South Korea
Prior art keywords
virtual machine
data format
data
application
enhanced
Prior art date
Application number
KR1020110058401A
Other languages
English (en)
Other versions
KR101788061B1 (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 KR1020110058401A priority Critical patent/KR101788061B1/ko
Priority to US13/451,356 priority patent/US9699508B2/en
Priority to EP12002789A priority patent/EP2515550A1/en
Priority to CN201210189862.4A priority patent/CN102821322B/zh
Publication of KR20120138950A publication Critical patent/KR20120138950A/ko
Application granted granted Critical
Publication of KR101788061B1 publication Critical patent/KR101788061B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software

Abstract

본 발명의 일실시예에 의한 가상 머신이 탑재된 디스플레이 장치는, 특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신하는 수신 모듈과, 상기 어플리케이션에 포함된 제1데이터 포맷을 디텍트 하는 디텍터와, 상기 디텍트된 제1데이터 포맷을 인핸스드 가상 머신에서 처리 가능한 제2데이터 포맷으로 변환하는 트랜스레이터와, 상기 변환된 제2데이터 포맷을 처리하는 인핸스드 가상 머신과, 상기 인핸스드 가상 머신에서 처리된 제2데이터 포맷을 출력 가능한 데이터로 전환하는 비디오 프로세서와, 그리고 상기 전환된 데이터를 출력하는 디스플레이 모듈을 포함한다.

Description

가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법{DISPLAY APPARATUS FOR HAVING VIRTUAL MACHINE AND METHOD FOR CONTROLLING THE SAME}
본 발명은 디스플레이 장치에 관한 것으로서, 보다 상세하게는 가상 머신(Virtual Machine)이 탑재된 디스플레이 장치 및 그 제어 방법에 관한 것이다. 상기 디스플레이 장치는, 예를 들어 네트워크 TV, 스마트 TV, HBBTV(Hybrid Brodacast Broadband Television), 인터넷 TV, 웹 TV, IPTV(Internet Protocol Television), 등에 해당한다. 또한, 상기 디스플레이 장치를, 모바일 디바이스에 적용 가능하다.
최근 다양한 어플리케이션을 수신 및 다운로드할 수 있는 TV에 대한 연구가 가속화 되고 있다. 또한, 어플리케이션의 데이터 처리가 가능한 소프트웨어 플랫폼을 TV에 장착하여, 상기 TV의 유저가 원하는 어플리케이션을 실행하는 기술이 필요되어 지고 있다.
한편, 상기 소프트웨어 플랫폼의 엘리먼트로 여러가지 종류의 가상 머신(Virtual Machine)이 논의되고 있다. 그러나, 특정 프로그램 랭귀지로 만들어진 어플리케이션(예를 들어, 자바 어플리케이션 등)을 임의의 가상 머신에서 바로 실행할 수 없는 문제점이 있다.
보다 구체적으로 예를 들면, 스마트 TV 등에 탑재된 특정 OS 는 자바 언어로 구현된 어플리케이션을 미리 덱스 포맷으로 변환한 서버로부터 수신해야만 가상 머신을 통해 데이터 처리가 가능하도록 설계되어 있어서, 상기 OS가 수행되는 중 수신하는 자바 클래스 파일을 상기 가상 머신에서 처리하는 것 자체가 불가능한 문제점이 있다.
본 발명의 일실시예는, 방송(Air) 또는 외부 디바이스로부터 수신되는 특정 프로그램 언어로 작성된 어플리케이션(예를 들어, 자바 클래스 파일)을 처리할 수 있는 개선된 가상 머신(enhanced VM)을 제공하고자 한다.
또한, 본 발명의 다른 일실시예는, 상기 개선된 가상 머신이 탑재된 TV의 유저 인터페이스(User Interface)를 제공하고자 한다.
그리고, 본 발명의 또 다른 일실시예는, 상기 개선된 가상 머신이 제1데이터 포맷을 제2데이터 포맷으로 변환하는 솔루션을 정의하고자 한다.
본 발명의 일실시예에 의한 가상 머신이 탑재된 디스플레이 장치는, 특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신하는 수신 모듈과, 상기 어플리케이션에 포함된 제1데이터 포맷을 디텍트 하는 디텍터와, 상기 디텍트된 제1데이터 포맷을 인핸스드 가상 머신에서 처리 가능한 제2데이터 포맷으로 변환하는 트랜스레이터와, 상기 변환된 제2데이터 포맷을 처리하는 인핸스드 가상 머신과, 상기 인핸스드 가상 머신에서 처리된 제2데이터 포맷을 출력 가능한 데이터로 전환하는 비디오 프로세서와, 그리고 상기 전환된 데이터를 출력하는 디스플레이 모듈을 포함한다.
그리고, 본 발명의 일실시예에 의한 가상 머신이 탑재된 디스플레이 장치의 제어 방법은, 방송 프로그램에 대응하는 비디오 데이터 및 특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신하는 단계와, 상기 비디오 데이터 및 상기 어플리케이션을 디멀티플렉싱 하는 단계와, 상기 디멀티플렉싱된 비디오 데이터를 디코딩 하는 단계와, 상기 디멀티플렉싱된 어플리케이션에 포함된 제1데이터 포맷을 제2데이터 포맷으로 변환하는 단계와, 상기 변환된 데이터 포맷의 어플리케이션을, 상기 디스플레이 장치의 스크린내 제1영역에 디스플레이 하는 단계와, 그리고 상기 디코딩된 비디오 데이터를, 상기 디스플레이 장치의 스크린내 제2영역에 디스플레이 하는 단계를 포함한다.
본 발명의 일실시예에 의하면, 방송(Air) 또는 외부 디바이스로부터 수신되는 특정 프로그램 언어로 작성된 어플리케이션(예를 들어, 자바 클래스 파일)을 처리할 수 있는 개선된 가상 머신(enhanced VM)을 제공한다.
또한, 본 발명의 다른 일실시예에 의하면, 상기 개선된 가상 머신이 탑재된 TV의 유저 인터페이스(User Interface)를 제공한다.
그리고, 본 발명의 또 다른 일실시예에 의하면, 상기 개선된 가상 머신이 제1데이터 포맷을 제2데이터 포맷으로 변환하는 솔루션을 정의함으로써, 메모리 용량(footprint)을 줄이는 효과가 있다.
보다 구체적인 발명의 효과에 대해서는, 이하 목차에서 상세히 후술하도록 하겠다.
도 1은 본 발명의 일실시예에 따라, 데이터 방송을 전송하는 시스템의 구성요소들을 도시한 도면이다.
도 2a는 본 발명의 일실시예에 따라, 데이터 방송을 수신하는 디스플레이 장치의 구성요소들을 도시한 도면이다.
도 2b 는 본 발명의 일실시예에 의한 VM이 탑재 가능한 HBBTV의 하드웨어 구성 요소들을 도시한 도면이다.
도 3은 도 2a 또는 도 2b에 도시된 인핸스드 VM(Enhanced Virtual Machine)을 상세히 도시한 도면이다.
도 4는 본 발명의 일실시예에 의한 디스플레이 장치가, 특정 컴퓨팅 언어로 작성된 어플리케이션을 수신하는 여러가지 경로를 도시한 도면이다.
도 5는 본 발명의 일실시예에 의한 디스플레이 장치가, 인핸스드 VM 을 다운로드 하는 과정을 도시한 도면이다.
도 6은 본 발명의 일실시예에 의한 모바일 디바이스가, 특정 컴퓨팅 언어로 작성된 어플리케이션을 수신하는 과정을 도시한 도면이다.
도 7은 외부 장치 인터페이스를 포함하는 디스플레이 장치를 간략히 도시한 도면이다.
도 8은 도 7에 도시된 제어부를 상세히 도시한 도면이다.
도 9는 본 발명의 일실시예에 의한 인핸스드 VM에서 사용되는 프로그램 랭귀지의 일예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 의한 인핸스드 VM에서 변환되는 프로그램 랭귀지의 대응 관계를 예시한 도면이다.
도 11은 본 발명의 일실시예에 의한 인핸스드 VM이 컨스턴트 풀(constant pool)을 공유하는 프로세스를 도시한 도면이다.
도 12는 도 11의 공유 프로세스에 따라, 메모리 용량(footprint)이 감소된 결과를 수치화하고 있는 도면이다.
도 13은 본 발명의 일실시예에 의한 인핸스드 VM이 클래스 단위로 데이터를 변환하는 과정을 도시한 플로우 차트이다.
도 14는 본 발명의 일실시예에 의한 인핸스드 VM이 전체 패키지 단위로 데이터를 변환하는 과정을 도시한 플로우 차트이다.
도 15는 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치의 유저 인터페이스의 일예를 도시한 도면이다.
도 16은 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치의 유저 인터페이스의 다른 일예를 도시한 도면이다.
도 17은 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치의 유저 인터페이스의 또 다른 일예를 도시한 도면이다.
그리고, 도 18은 도 17에 도시된 유저 인터페이스를 구현하기 위한 프로세스를 예시하고 있는 플로우 차트이다.
이하에서는 도면을 참조하여 본 발명을 더욱 상세하게 설명한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함을 고려하여 부여되는 것으로서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
한편, 본 명세서에서 기술되는 디스플레이 장치는, 예컨대 방송 수신 기능에 컴퓨터 지원 기능을 추가한 지능형 네트워크 TV로서, 방송 수신 기능에 충실하면서도 인터넷 기능 등이 추가되어, 수기 방식의 입력 장치, 터치 스크린 또는 공간 리모콘 등보다 사용에 편리한 인터페이스를 갖출 수 있다. 그리고 유선 또는 무선 인터넷 기능의 지원으로 인터넷 및 컴퓨터에 접속되어, 이메일, 웹브라우징, 뱅킹 또는 게임 등의 기능도 수행가능하다. 이러한 다양한 기능을 위해 표준화된 범용 OS가 사용될 수 있다.
따라서, 본 발명에서 기술되는 디스플레이 장치는, 예를 들어 범용의 OS 커널 상에, 다양한 애플리케이션이 자유롭게 추가되거나 삭제 가능하므로, 사용자 친화적인 다양한 기능이 수행될 수 있다.
더욱이, 이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시 예를 상세하게 설명하지만, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가지는 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다.
도 1은 본 발명의 일실시예에 따라, 데이터 방송을 전송하는 시스템의 구성요소들을 도시한 도면이다. 이하, 도 1을 참조하여, 본 발명의 일실시예에 따라, 데이터 방송을 전송하는 시스템을 설명하면 다음과 같다.
도 1에 도시된 방송 시스템(100)은, MPEG 인코더(110), SI 인코더(120), 캐로셀 인코더(130), 멀티플렉서(140) 그리고 RF 모듈레이터(150) 등을 포함한다. 또한, 상기 방송 시스템(100)은 예를 들어, 방송국(Broadcast station) 또는 CP(Content Provider) 등에 해당한다.
상기 MPEG 인코더(110)는, 일반 방송 프로그램에 대응하는 AV 데이터를 예컨대 MPEG 포맷으로 인코딩 하도록 설계된다. 또한, 상기 SI 인코더(120)는, SI(System Information) 스크립트를 인코딩하여 멀티플렉서(140)로 전송한다.
나아가, 상기 캐로셀 인코더(130)는, 데이터 방송을 위한 컨텐트 또는 인터넷 컨텐트 등에 해당하는 어플리케이션을 인코딩 하여 상기 멀티플렉서(140)로 전송한다. 상기 어플리케이션은, 특정 프로그램 랭귀지(예를 들어, 자바 어플리케이션 등)로 작성된다.
상기 멀티플렉서(140)는 각각의 인코더들(110, 120, 130)로부터 수신한 데이터를 먹싱하고, 상기 RF 모듈레이터(150)는 먹싱된 데이터를 RF 신호로 변환하여 각각의 TV 등에 멀티캐스팅 하도록 설계된다.
전술하여 설명한 바와 같이, 방송 시스템(100)은 예컨대 자바 클래스 파일을 상기 RF 모듈레이터(150)를 이용하여 디스플레이 장치(예를 들어, 디지털 텔레비젼 등)에 전달한다. 그러나, 상기 방송 시스템(100)에 의해 전송된 자바 클래스 파일은, 특정 OS를 구비한 디스플레이 장치가 직접 수행할 수 없는 문제점이 있다. 왜냐하면, 상기 특정 OS가 수행 중에 수신된 자바 클래스 파일 자체를, 상기 디스플레이 장치가 처리할 수 없기 때문이다.
이와 같은 문제를 해결하기 위하여 본 발명에서는 클래스 파일을 덱스 파일로 미리 변환하는 트랜스레이터를 포함하는 인핸스드 가상 머신(Enhanced Virtual Machine)을 제안하고자 한다. 이하, 도 2 등을 참조하여 보다 상세히 설명하도록 하겠다.
도 2a는 본 발명의 일실시예에 따라, 데이터 방송을 수신하는 디스플레이 장치의 구성요소들을 도시한 도면이다. 이하, 도 2a를 참조하여, 본 발명의 일실시예에 따라, 인핸스드 가상 머신이 탑재된 디스플레이 장치가 방송 신호를 수신하여 처리하는 과정을 설명하면 다음과 같다.
도 2a에 도시된 바와 같이, 디스플레이 장치(200)는 RF 튜너(210), 디멀티플렉서(220), AV 디코더(230), 스피커(240), 디스플레이(250), 인핸스드 가상 머신(260), 그리고 이더넷 어댑터(270) 등을 포함하고 있다. 다만, 도 2a에 도시된 블록들은 일실시예이며, 본 발명의 권리범위는 원칙적으로 특허청구범위에 의해 정해져야 한다.
나아가, 상기 디멀티플렉서(220)는 섹션 필터(225)를 추가적으로 구비하고 있거나 또는 상기 섹션 필터(225)가 상기 디멀티플렉서 외부에 위치하도록 설계하는 것도 본 발명의 권리범위에 속한다. 그리고, 상기 디스플레이 장치(200)는 예를 들어, 스마트 TV, 네트워크 TV, HBBTV, IPTV, DTV, 모바일 디바이스(휴대폰, 스마트폰 등) 등에 해당한다.
도 1에 도시된 방송 시스템(100)이 전송하는 방송 신호는, 도 2a에 도시된 RF 튜너(210)에 수신된다. 상기 디멀티플렉서(220)는 다중화된 데이터들을 역다중화하여, 방송 프로그램에 대응하는 AV 데이터를 상기 AV 디코더(230)에 전송한다.
또한, 상기 디멀티플렉서(220)는 SI 데이터 및 어플리케이션을 디멀티플렉싱 하여 상기 인핸스드 가상 머신(260)으로 전송한다. 나아가, 상기 SI 데이터는, 전술한 섹션 필터(225)에 의해 필터링 되며, 예컨대 동일한 PID(packet identification) 를 가지는 SI 스크립트들만 컬렉트 하도록 설계된다.
상기 AV 디코더(230)는 방송 프로그램에 대응하는 AV 데이터를 디코딩 하고 오디오 데이터는 스피커(240)로 전송하며, 비디오 데이터는 디스플레이 모듈(250)로 전송한다. 그리고, 상기 디스플레이 모듈(250)은 상기 인핸스드 가상 머신(260)에 의해 처리된 자바 어플리케이션 등도 함께 출력하도록 설계된다. 상기 인핸스드 가상 머신(260)에 대해서는 도 6을 참조하여 보다 상세히 후술하도록 하겠다.
즉, 본 발명의 일실시예에 의한 디스플레이 장치(100)는, 특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신하는 수신 모듈과, 상기 어플리케이션에 포함된 제1데이터 포맷을 디텍트 하는 디텍터와, 상기 디텍트된 제1데이터 포맷을 인핸스드 가상 머신에서 처리 가능한 제2데이터 포맷으로 변환하는 트랜스레이터와, 상기 변환된 제2데이터 포맷을 처리하는 인핸스드 가상 머신과, 상기 인핸스드 가상 머신에서 처리된 제2데이터 포맷을 출력 가능한 비디오 데이터로 전환하는 비디오 프로세서와, 그리고 상기 전환된 비디오 데이터를 출력하는 디스플레이 모듈을 포함한다. 상기 수신 모듈은 예컨대 도 2a에 도시된 RF 튜너(210)에 대응하고, 상기 디텍터 및 상기 트랜스레이터는 예컨대 도 2a에 도시된 인핸스드 가상 머신(260)에 포함되고, 상기 비디오 프로세서는 예컨대 도 2a에 도시된 디스플레이 모듈(250)에 포함된다.
본 발명의 다른 일실시예에 의한 인핸스드 가상 머신(260)은, 적어도 2개 이상의 클래스 파일로 이루어진 제1데이터 포맷을 디컴프레션(Decompression) 하고, 각각의 클래스 파일에 대한 로딩 및 트랜스레이션 프로세스를 수행하고, 그리고, 상기 프로세스가 수행된 각각의 클래스 파일을 머징(merge)하여, 제2데이터 포맷을 생성한다. 이는, 도 14를 참조하여 보다 상세히 후술하도록 하겠다.
한편, 당해 명세서에서 사용되는 용어 중 하나인 디컴프레션(decompression)은 압축된 파일을 푸는 기능(function)을 의미한다. 예를 들어, ZIP 형식으로 압축되어 있는 패키지(package)를 복수개의 데이터로 변환하는 것이다.
또한, 당해 명세서에서 사용되는 용어 중 하나인 머징(merge)은 2개 이상의 데이터 집합을 하나의 데이터 집합으로 변환하는 기능(function)을 의미한다. 예를 들어, 여러개의 클래스 파일을 하나의 덱스 파일로 통합하는 것이다.
본 발명의 또 다른 일실시예에 의한 인핸스드 가상 머신(260)은, 다운로드된 파일이 클래스 파일이 아닌 경우, 다운로드된 파일을 실행하고, 그리고 다운로드된 파일이 클래스 파일인 경우, 덱스 파일로 트랜스레이트(translate)한 후 덱스 파일을 실행한다. 이는, 도 15를 참조하여 보다 상세히 후술하도록 하겠다.
본 발명의 또 다른 일실시예에 의한 인핸스드 가상 머신(260)은, 상기 제1데이터 포맷의 클래스 파일 각각에 포함된 컨스턴트 풀을 공유(sharing)하고 있는 하나의 제2데이터 포맷을 생성하도록 설계된다. 이는, 도 11 및 도 12를 참조하여 보다 상세히 후술하도록 하겠다.
특정 프로그램 랭귀지로 만들어진 상기 어플리케이션은, 예를 들어 자바 어플리케이션에 대응한다. 나아가, 상기 제1데이터 포맷은 예컨대 자바 클래스 파일에 대응하고, 상기 제2데이터 포맷은 예컨대 덱스 파일에 대응한다.
그리고, 상기 자바 어플리케이션은 방송 또는 외부 디바이스로부터 수신 가능한데, 방송을 통해 수신되는 케이스는 도 15를 참조하여 후술하고 외부 디바이스로부터 수신되는 케이스는 도 16을 참조하여 후술하겠다.
특히, 상기 자바 어플리케이션이 방송을 통해 수신되는 경우를 예로 들어 설명하면, 도 2a에 도시된 RF 튜너(210)는, 방송 프로그램에 대응하는 비디오 데이터 및 특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신한다.
상기 디멀티플렉서(220)는, 상기 비디오 데이터 및 상기 어플리케이션을 디멀티플렉싱 하고, 상기 AV 디코더(230)는 상기 디멀티플렉싱된 비디오 데이터를 디코딩 한다.
상기 인핸스드 VM(260)은, 상기 디멀티플렉싱된 어플리케이션에 포함된 제1데이터 포맷을 제2데이터 포맷으로 변환한다. 그리고, 상기 디스플레이 모듈(250)은, 상기 변환된 데이터 포맷의 어플리케이션을, 상기 디스플레이 장치(200)의 스크린내 제1영역에 디스플레이 하고, 상기 디코딩된 비디오 데이터를, 상기 디스플레이 장치(200)의 스크린내 제2영역에 디스플레이 하도록 설계된다.
나아가, 도 2a에 도시된 바와 같이, 자바 어플리케이션이 본 발명의 일실시예에 의한 인핸스드 VM(260)에 전달되는 경로는 2가지 이다.
우선, 방송 네트워크를 통해 자바 어플리케이션이 수신되는 경우, 섹션 필터(225)로부터 전달된 SI 정보 및 캐로셀(Carousel) 정보를 이용하여 자바 어플리케이션이 상기 인핸스드 VM(260)에서 수행된다.
한편, 인터넷 네트워크를 통해 자바 어플리케이션이 수신되는 경우, AIT(Application Information Table)로부터 추출한 URL 정보를 이용하여 자바 어플리케이션을 메모리(예를 들어, 플래쉬 메모리 등)에 다운로드 한다. 이 때, 전술한 자바 어플리케이션은, 상기 이더넷 어댑터(270)를 통해 전달되도록 설계하는 것이 본 발명의 일특징이다.
도 2b 는 본 발명의 일실시예에 의한 VM이 탑재 가능한 HBBTV의 하드웨어 구성 요소들을 도시한 도면이다. 이하, 도 2b를 참조하여, 본 발명의 일실시예에 의한 VM이 탑재 가능한 HBBTV의 하드웨어 구성 요소들을 설명하면 다음과 같다.
도 2b에 도시된 바와 같이, HBBTV(100)는 예를 들어, 방송 인터페이스(101), 섹션 필터(102), AIT 필터(103), 애플리케이션 데이터 처리부(104), 방송 데이터 처리부(111), 미디어 플레이어(106), 인터넷 프로토콜 처리부(107), 인터넷 인터페이스(108), 런타임 모듈(109), 그리고 인핸스드 VM(110) 등을 포함한다. 다만, 도 2b에 도시된 구성 요소들로 본 발명의 권리범위가 제한되는 것은 아니며, 당업자의 필요에 따라 모듈을 추가하거나 삭제하는 것이 가능하다. 특히, 전술한 인핸스드 VM(110)에 대해서는, 도 6을 참조하여 상세히 후술하도록 하겠다.
상기 방송 인터페이스(101)를 통해, AIT(Application Information Table) 데이터, 실시간 방송 컨텐트, 애플리케이션 데이터, 그리고 스트림 이벤트가 수신된다. 한편, 상기 실시간 방송 컨텐트는, 리니어 에이브이 컨텐트(Linear A/V Content)로 명명할 수도 있다.
상기 섹션 필터(102)는, 상기 방송 인터페이스(101)를 통해 수신된 4가지 데이터에 대한 섹션 필터링을 수행하여 AIT 데이터는 AIT 필터(103)로 전송하고, 리니어 에이브이 컨텐트는 방송 데이터 처리부(111)로 전송하고, 스트림 이벤트 및 애플리케이션 데이터는 애플리케이션 데이터 처리부(104)로 전송한다.
한편, 상기 인터넷 인터페이스(108)를 통해, 논 리니어 에이브이 컨텐트(Non-Linear A/V Content) 및 애플리케이션 데이터가 수신된다. 상기 논 리니어 에이브이 컨텐트는 예를 들어, COD(Content On Demand) 애플리케이션이 될 수도 있다.
상기 논 리니어 에이브이 컨텐트는, 미디어 플레이어(106)로 전송되며, 상기 애플리케이션 데이터는 런타임 모듈(109)로 전송된다.
나아가, 상기 런타임 모듈(109)은 도 2b에 도시된 바와 같이 예를 들어, 애플리케이션 매니저 및 브라우저를 포함한다. 상기 애플리케이션 매니저는, 예컨대 AIT 데이터를 이용하여 인터랙티브 애플리케이션에 대한 라이프 사이클을 컨트롤한다. 그리고 상기 브라우저는, 예컨대 상기 인터랙티브 애플리케이션을 표시하고 처리하는 기능을 수행한다.
특히, 인터넷 네트워크를 통해 수신하는 어플리케이션을 처리하는 인핸스드 VM(110)에 대하여 구체적으로 설명하면 다음과 같다.
방송 네트워크를 통해 전달되는 방송 데이터 중 AIT(Application Information Table)는, 섹션 필터(102) 또는 AIT 필터(103)에 의해 필터링 된다. 상기 필터링된 AIT 로부터 URL 정보가 파싱되면, 상기 인터넷 인터페이스(108)는 해당 URL 정보를 이용하여 특정 어플리케이션을 수신하도록 설계된다.
그리고, 상기 인핸스드 VM(110)은, 상기 인터넷 인터페이스(108) 또는 상기 어플리케이션 데이터 처리부(104) 등을 통해 수신한 어플리케이션을 예컨대 플래쉬 메모리 등에 저장한다. 마지막으로, 상기 인핸스드 VM(110)은, 상기 런타임 모듈(109)을 통해 기저장된 어플리케이션이 실행되도록 설계한다.
도 3은 도 2a 또는 도 2b에 도시된 인핸스드 VM(Enhanced Virtual Machine)을 상세히 도시한 도면이다. 이하, 도 3을 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM(Enhanced Virtual Machine)을 보다 상세히 설명하면 다음과 같다.
도 3에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(200)는 인핸스드 VM(260)이 탑재되어 있다. 나아가, 상기 디스플레이 장치(200)는 OS & HW 구성(270)을 포함하고 있는데, 하드웨어의 관점에서 도시된 디스플레이 장치는 도 7 및 도 8을 참조하여 후술하도록 하겠다.
한편, 본 발명의 일실시예에 의한 인핸스드 VM(260)은, 클래스/덱스 변환기(261)와, 실행 엔진(262) 및 미들웨어&시스템(265)을 포함하고 있다. 상기 실행 엔진(262)은, 해석기(263) 및 JITC(Just In Time Compiler)(264)를 더 포함하고 있다. 물론, 도 3에 도시된 구성요소들은 일실시예이며, 본 발명의 권리범위는 원칙적으로 특허청구범위에 의해 정해져야 한다.
서버를 통해 미리 덱스 포맷으로 변환된 어플리케이션은 상기 MW&시스템(265)에 수신되기 때문에, 상기 변환된 어플리케이션을 가상 머신에서 처리함에 있어서 큰 문제가 없다. 그러나, 가상 머신이 실행 중에 수신되는 특정 프로그램 랭귀지로 작성된 어플리케이션(예를 들어, 자바 어플리케이션)은 미리 변환이 불가능하다. 따라서, 도 3에 도시된 바와 같이 클래스/덱스 변환기(261)를 가상 머신에 추가하는 것이 본 발명의 일특징이다.
보다 구체적으로 설명하면, 본 발명의 일실시예에 의한 인핸스드 가상 머신(260)의 덱스 로더는 수신되는 파일의 확장자를 확인하여 확장자가 ".class"인 경우, 클래스/덱스 트랜스레이터(261)를 거치도록 구현한다. 상기 클래스/덱스 트랜스레이터(261)는, 클래스 파일을 읽어 덱스 자료 구조로 변환하여 덱스 로더에 넘겨준다.
여러 개의 자바 클래스 파일이 하나의 덱스 파일로 변환되도록 설계할 수도 있고(도 14 참조), 또는 수행 시간에 전송되는 클래스 파일을 필요할 때 마다 변환할 수 있도록 하나의 클래스 파일을 하나의 덱스 포맷 변환하는 방법을 선택할 수 있다(도 13 참조).
자바 클래스 파일은 하나의 컨스턴트풀에 문자열, 필드, 메소드들에 대한 정보를 저장하고 있다. 반면, 덱스 포맷은 문자열, 필드, 메소드 그리고 파라미터, 클래스파일에 대한 정보들이 모두 서로 다른 ID 리스트로 분리 되어야 한다. 따라서, 우선 자바 클래스에서 문자열, 필드 그리고 메소드에 대한 정보를 수집하고, 클래스 정보를 이용하여 인핸스드 가상 머신의 클래스 정의 구조를 생성한다.
문자열은 인핸스드 VM의 문자열 리스트와 문자열 데이터로 변환한다. 문자열 리스트는 문자열에 대한 메타 데이터를 저장하고 있으며, 실제 문자열 정보는 인핸스드 VM의 데이터 영역에 저장된다.
그리고 필드와 메소드에서 사용하는 타입 정보를 수집한다. 수집된 타임 정보를 이용하여 타입 리스트를 생성하고, 메소드의 파라미터를 이용하여 메소드 파라미터의 리스트를 생성한다. 나아가, 필드의 정보는 인스턴스(instance)와 스태틱(static)으로 나누어 리스트를 생성하고 메소드의 정보는 다이렉트(direct)와 가상(virtual)으로 나누어 생성한다.
전술하여 설명한 ID 리스트와 데이터 영역의 리스트들은 모두 특정 값으로 정렬이 되어 있어야 하며, ID 리스트에서 데이터 영역에 있는 값을 가리키기 위하여 오프셋(offset)을 사용하기 때문에 ID 리스트와 데이터 영역 사이의 값이 추가됨에 따라 상기 오프셋은 변할 수 있다. 따라서, 일정한 순서에 맞춰 덱스 포맷을 생성할 필요가 있다.
우선, 덱스 포맷의 헤더를 생성한다. 그리고 문자열에 대한 ID 리스트, 타입에 대한 ID 리스트, 프로토타입 ID 리스트등의 ID 리스트를 먼저 생성한 후에, 클래스 데이터, 문자열 데이터 그리고 덱스 맵 데이블등의 데이터 값을 순서대로 생성한다. 그리고 데이터 값을 생성한 후에 다시 ID 리스트의 오프셋 값을 수정하도록 설계한다.
도 4는 본 발명의 일실시예에 의한 디스플레이 장치가, 특정 컴퓨팅 언어로 작성된 어플리케이션을 수신하는 여러가지 경로를 도시한 도면이다. 이하, 도 4를 참조하여, 본 발명의 일실시예에 의한 디스플레이 장치가, 특정 컴퓨팅 언어로 작성된 어플리케이션을 수신하는 3가지 경로를 설명하면 다음과 같다.
도 4에 도시된 디스플레이 장치(100)는, 본 발명의 일실시예에 의한 인핸스드 VM 을 메모리에 저장하고 있는 것으로 가정한다. 다만, 상기 인핸스드 VM에 대해서는 도 3을 참조하여 전술한 바 있다.
도 4에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(100)의 튜너는, 방송국(410)으로부터 데이터 방송(예를 들어, 자바 어플리케이션으로 작성된 데이터)을 수신한다. 나아가, 수신된 데이터 방송은 복조부(120)에 의해 디모듈레이팅 되고, 디모듈레이팅된 데이터 방송은 제어부(170)로 전달된다. 그리고, 상기 저장부(140)에 저장된 인핸스드 VM에 따라 상기 데이터 방송의 자바 어플리케이션의 데이터 포맷이 실시간으로 변환되도록 설계한다.
다음으로, 도 4에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(100)의 네트워크 인터페이스부(130)는, CP(420) 또는 서버로부터 자바 어플리케이션을 수신한다. 그리고, 상기 저장부(140)에 저장된 인핸스드 VM에 따라 상기 자바 어플리케이션의 데이터 포맷이 실시간으로 변환되도록 설계한다.
마지막으로, 도 4에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(100)의 외부 장치 인터페이스부(135)는, 모바일 디바이스(예를 들어, 휴대폰 등)(430)로부터 자바 어플리케이션을 수신한다. 그리고, 상기 저장부(140)에 저장된 인핸스드 VM에 따라 상기 자바 어플리케이션의 데이터 포맷이 실시간으로 변환되도록 설계한다.
도 5는 본 발명의 일실시예에 의한 디스플레이 장치가, 인핸스드 VM 을 다운로드 하는 과정을 도시한 도면이다. 이하, 도 5를 참조하여, 본 발명의 일실시예에 의한 디스플레이 장치가, 인핸스드 VM 을 다운로드 하는 과정을 설명하면 다음과 같다.
도 4와 달리, 도 5에 도시된 디스플레이 장치(100)는, 본 발명의 일실시예에 의한 인핸스드 VM 을 처음에는 메모리에 저장하고 있지 않은 것으로 가정한다. 다만, 상기 인핸스드 VM에 대해서는 도 3에서 전술하였다.
우선, 상기 디스플레이 장치(100)의 네트워크 인터페이스부(130)는, 본 발명의 일실시예에 의한 VM 을 제공하는 제1CP(510)에 우선적으로 액세스 한다. 나아가, 상기 네트워크 인터페이스부(130)를 통해, 상기 제1CP(510)가 제공하는 인핸스드 VM을 다운로드 한다. 그리고, 다운로드된 인핸스드 VM은 도 5에 도시된 저장부(140)에 업로드 되도록 설계한다.
한편, 상기 디스플레이 장치(100)의 네트워크 인터페이스부(130)는, 임의의 어플리케이션을 제공하는 제2CP(520)로부터 자바 어플리케이션을 수신하도록 설계된다. 상기 제2CP(520)는 전술한 제1CP(510)와 동일한 서버일 수도 있으며, 또는 별도의 서버로 설계 가능하다. 따라서, 상기 저장부(140)에 저장된 인핸스드 VM에 따라, 상기 제2CP(520)로부터 수신한 자바 어플리케이션의 데이터 포맷이 실시간으로 변환되도록 구현하는 것도 본 발명의 일특징이다.
도 6은 본 발명의 일실시예에 의한 모바일 디바이스가, 특정 컴퓨팅 언어로 작성된 어플리케이션을 수신하는 과정을 도시한 도면이다. 이하, 도 6을 참조하여, 본 발명의 일실시예에 의한 모바일 디바이스가, 특정 컴퓨팅 언어로 작성된 어플리케이션을 수신하는 과정을 설명하면 다음과 같다.
도 6에 도시된 모바일 디바이스(700)는, 예를 들어 스마트폰 또는 일반 휴대폰 등에 해당한다. 상기 모바일 디바이스(700)는, 무선 통신부(710), A/V(Audio/Video) 입력부(720), 사용자 입력부(730), 센싱부(740), 출력부(750), 메모리(760), 인터페이스부(770), 제어부(780) 및 전원 공급부(790) 등을 포함할 수 있다.
무선 통신부(710)는 모바일 디바이스(700)와 무선 통신 시스템 사이 또는 모바일 디바이스(700)와 모바일 디바이스(700)가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 무선 통신부(710)는 방송 수신 모듈(711), 이동통신 모듈(712), 무선 인터넷 모듈(713), 근거리 통신 모듈(714) 및 위치정보 모듈(715) 등을 포함할 수 있다.
특히, 전술한 무선 통신부(710)는, 상기 모바일 디바이스(700) 외부에 위치한 서버의 일예인 CP(610)로부터 자바 어플리케이션을 수신하도록 설계된다. 또한, 상기 메모리(760)는, 본 발명의 일실시예에 의한 인핸스드 VM을 저장하고 있다. 따라서, 상기 CP(610)로부터 수신한 자바 어플리케이션은, 상기 메모리(760)에 저장된 인핸스드 VM에 따라 처리되고, 상기 제어부(780)는 디스플레이부(751)를 제어하여 해당 자바 어플리케이션이 신속하게 실행되도록 설계되어 있다.
참고적으로, A/V(Audio/Video) 입력부(720)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(721)와 마이크(722) 등이 포함될 수 있다. 사용자 입력부(730)는, 사용자가 단말기의 동작 제어를 위한 입력 데이터를 발생시킨다. 상기 사용자 입력부(730)는 키 패드(key pad) 돔 스위치 (dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치 등으로 구성될 수 있다.
센싱부(740)는 모바일 디바이스(700)의 개폐 상태, 모바일 디바이스(700)의 위치, 사용자 접촉 유무, 이동 단말기의 방위, 이동 단말기의 가속/감속 등과 같이 모바일 디바이스(700)의 현 상태를 감지하여 모바일 디바이스(700)의 동작을 제어하기 위한 센싱 신호를 발생시킨다.
출력부(750)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 이에는 디스플레이부(751), 음향 출력 모듈(752), 알람부(753), 및 햅틱 모듈(754) 등이 포함될 수 있다.
메모리(760)는 제어부(780)의 동작을 위한 프로그램을 저장할 수 있고, 입/출력되는 데이터들(예를 들어, 폰북, 메시지, 정지영상, 동영상 등)을 임시 저장할 수도 있다. 상기 메모리(760)는 상기 터치스크린 상의 터치 입력시 출력되는 다양한 패턴의 진동 및 음향에 관한 데이터를 저장할 수 있다. 또한, 전술하여 설명한 바와 같이, 상기 메모리(760)는 도 3에서 전술한 인핸스드 VM을 저장하고 있는 것으로 설계된다.
인터페이스부(770)는 모바일 디바이스(700)에 연결되는 모든 외부기기와의 통로 역할을 한다. 인터페이스부(770)는 외부 기기로부터 데이터를 전송받거나, 전원을 공급받아 모바일 디바이스(700) 내부의 각 구성 요소에 전달하거나, 모바일 디바이스(700) 내부의 데이터가 외부 기기로 전송되도록 한다.
도 7은 외부 장치 인터페이스를 포함하는 디스플레이 장치를 간략히 도시한 도면이다. 도 7은 외부 장치 인터페이스(135)를 추가하고 있다는 점에서 다른 실시예이다.
도 7에 도시된 바와 같이, 본 발명의 다른 일실시예에 의한 디스플레이 장치(100)는 방송 수신부(105), 외부장치 인터페이스부(135), 저장부(140), 사용자입력 인터페이스부(150), 제어부(170), 디스플레이부(180), 오디오 출력부(185), 전원공급부(190), 및 촬영부(미도시)를 포함한다.
방송 수신부(105)는, 튜너(110), 복조부(120), 및 네트워크 인터페이스부(130)를 포함할 수 있다. 물론, 필요에 따라, 튜너(110)와 복조부(120)를 구비하면서 네트워크 인터페이스부(130)는 포함하지 않도록 설계하는 것도 가능하며, 반대로 네트워크 인터페이스부(130)를 구비하면서 튜너(110)와 복조부(120)는 포함하지 않도록 설계하는 것도 가능하다.
튜너(110)는, 안테나를 통해 수신되는 RF(Radio Frequency) 방송 신호 중 사용자에 의해 선택된 채널 또는 기저장된 모든 채널에 해당하는 RF 방송 신호를 선택한다. 복조부(120)는, 튜너(110)에서 변환된 디지털 IF 신호(DIF)를 수신하여 복조 동작을 수행한다.
복조부(120)는, 복조 및 채널 복호화를 수행한 후 스트림 신호(TS)를 출력할 수 있다. 이때, 스트림 신호는 영상 신호, 음성 신호 또는 데이터 신호가 다중화된 신호일 수 있다. 일례로, 스트림 신호는 MPEG-2 규격의 영상 신호, 돌비(Dolby) AC-3 규격의 음성 신호 등이 다중화된 MPEG-2 TS(Transport Stream)일수 있다. 구체적으로 MPEG-2 TS는, 4 바이트(byte)의 헤더와 184 바이트의 페이로드(payload)를 포함할 수 있다.
복조부(120)에서 출력한 스트림 신호는 제어부(170)로 입력될 수 있다. 제어부(170)는 역다중화, 영상/음성 신호 처리 등을 수행한 후, 디스플레이부(180)에 영상을 출력하고, 오디오 출력부(185)로 음성을 출력한다.
외부장치 인터페이스부(135)는 외부 장치와 디스플레이 장치(100)를 접속할 수 있다. 이를 위해, 외부장치 인터페이스부(135)는, A/V 입출력부(미도시) 또는 무선 통신부(미도시)를 포함할 수 있다.
외부장치 인터페이스부(135)는, DVD(Digital Versatile Disk), BD(블루레이 디스크) 플레이어, 게임기기, 카메라, 캠코더, 컴퓨터(노트북) 등과 같은 외부 장치와 유/무선으로 접속될 수 있다. 한편, 외부장치 인터페이스부(135)는, 인접하는 외부 장치 내의 애플리케이션 또는 애플리케이션 목록을 수신하여, 제어부(170) 또는 저장부(140)로 전달할 수 있다.
네트워크 인터페이스부(130)는, 유선 네트워크와의 접속을 위해, 예를 들어 이더넷(Ethernet) 단자 등을 구비할 수 있으며, 무선 네트워크와의 접속을 위해, 예를 들어 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 통신 규격 등이 이용될 수 있다. 또한, 네트워크 인터페이스부(130)는, 네트워크를 통해, 공중에 공개(open)된 애플리케이션들 중 원하는 애플리케이션을 선택하여 수신할 수 있다.
저장부(140)는, 제어부(170) 내의 각 신호 처리 및 제어를 위한 프로그램이 저장될 수도 있고, 신호 처리된 영상, 음성 또는 데이터신호를 저장할 수도 있다.
또한, 저장부(140)는 외부장치 인터페이스부(135) 또는 네트워크 인터페이스부(130)로부터 입력되는 영상, 음성, 또는 데이터 신호의 임시 저장을 위한 기능을 수행할 수도 있다. 나아가, 저장부(140)는, 외부장치 인터페이스부(135) 또는 네트워크 인터페이스부(130)로부터 입력되는 애플리케이션 또는 애플리케이션 목록을 저장할 수 있다.
사용자입력 인터페이스부(150)는, 사용자가 입력한 신호를 제어부(170)로 전달하거나, 제어부(170)로부터의 신호를 사용자에게 전달한다. 예를 들어, 사용자입력 인터페이스부(150)는, RF(Radio Frequency) 통신 방식, 적외선(IR) 통신 방식 등 다양한 통신 방식에 따라, 원격제어장치(200)로부터 전원 온/오프, 채널 선택, 화면 설정 등의 제어 신호를 수신하여 처리하거나, 제어부(170)로부터의 제어 신호를 원격제어장치(200)로 송신하도록 처리할 수 있다.
제어부(170)는, 튜너(110) 또는 복조부(120) 또는 외부장치 인터페이스부(135)를 통하여, 입력되는 스트림을 역다중화하거나, 역다중화된 신호들을 처리하여, 영상 또는 음성 출력을 위한 신호를 생성 및 출력할 수 있다.
제어부(170)에서 영상 처리된 영상 신호는 디스플레이부(180)로 입력되어, 해당 영상 신호에 대응하는 영상으로 표시될 수 있다. 또한, 제어부(170)에서 영상 처리된 영상 신호는 외부장치 인터페이스부(135)를 통하여 외부 출력장치로 입력될 수 있다. 제어부(170)에서 처리된 음성 신호는 오디오 출력부(185)로 오디오 출력될 수 있다. 또한, 제어부(170)에서 처리된 음성 신호는 외부장치 인터페이스부(135)를 통하여 외부 출력장치로 입력될 수 있다.
디스플레이부(180)는, 제어부(170)에서 처리된 영상 신호, 데이터 신호, OSD 신호 또는 외부장치 인터페이스부(135)에서 수신되는 영상 신호, 데이터 신호 등을 각각 R, G, B 신호로 변환하여 구동 신호를 생성한다. 디스플레이부(180)는 PDP, LCD, OLED, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등이 가능할 수 있다.
오디오 출력부(185)는, 제어부(170)에서 음성 처리된 신호, 예를 들어, 스테레오 신호, 3.1채널 신호 또는 5.1채널 신호를 입력받아 음성으로 출력한다. 음성 출력부(185)는 다양한 형태의 스피커로 구현될 수 있다.
전원 공급부(190)는, 디스플레이 장치(100) 전반에 걸쳐 해당 전원을 공급한다. 특히, 시스템 온 칩(System On Chip, SOC)의 형태로 구현될 수 있는 제어부(170)와, 영상 표시를 위한 디스플레이부(180), 및 오디오 출력을 위한 오디오 출력부(185)에 전원을 공급할 수 있다.
원격제어장치(200)는, 사용자 입력을 사용자입력 인터페이스부(150)로 송신한다. 이를 위해, 원격제어장치(200)는, 블루투스(Bluetooth), RF(Radio Frequency) 통신, 적외선(IR) 통신, UWB(Ultra Wideband), 지그비(ZigBee) 방식 등을 사용할 수 있다.
또한, 도 6에 도시된 인핸스드 VM(260)은 도 7에 도시된 제어부(170)에 대응하도록 설계할 수도 있고, 또는 저장부(140)에 저장된 상태로 설계할 수도 있다. 따라서, 방송 신호에 포함된 특정 프로그램 랭귀지로 작성된 어플리케이션과 네트워크를 통해 수신되는 어플리케이션 뿐만 아니라, 외부 장치(예를 들어, BD 플레이어 등)로부터 수신되는 어플리케이션도 상기 제어부(170) 또는 상기 저장부(140)의 인핸스드 VM이 처리 가능하다. 특히, 외부 장치로부터 수신되는 경로의 어플리케이션 처리에 대해서는 도 16을 참조하여 후술하도록 하겠다.
도 8은 도 7에 도시된 제어부를 상세히 도시한 도면이다. 이하, 도 8을 참조하여 도 7에 도시된 제어부를 보다 상세히 설명하면 다음과 같다.
도 8에 도시된 바와 같이, 본 발명의 일실시예에 의한 제어부(170)는, 역다중화부(310), 영상 처리부(320), OSD 생성부(340), 믹서(350), 프레임 레이트 변환부(355), 및 포맷터(360)를 포함한다. 나아가, 음성 처리부(미도시), 데이터 처리부(미도시)를 더 포함할 수 있다.
역다중화부(310)는, 입력되는 스트림을 역다중화 하고, 영상 처리부(320)는, 역다중화된 영상 신호의 영상 처리를 수행한다. 따라서, 상기 영상 처리부(320)는, 영상 디코더(325), 및 스케일러(335)를 더 포함하고 있다.
영상 디코더(325)는, 역다중화된 영상신호를 복호화하며, 스케일러(335)는, 복호화된 영상신호의 해상도를 디스플레이부(180)에서 출력 가능하도록 스케일링(scaling)을 수행한다. 한편, 영상 처리부(320)에서 복호화된 영상 신호는, 믹서(350)로 입력되게 된다.
OSD 생성부(340)는, 사용자 입력에 따라 또는 자체적으로 OSD 신호를 생성한다. 예를 들어, 사용자입력 인터페이스부(150)로부터의 제어 신호에 기초하여, 디스플레이부(180)의 화면에 각종 정보를 그래픽(Graphic)이나 텍스트(Text)로 표시하기 위한 신호를 생성할 수 있다.
예를 들어, OSD 생성부(340)는, 방송 영상의 자막 또는 EPG에 기반한 방송 정보를 표시하기 위한 신호를 생성할 수 있다. 또한, 본 발명의 일실시예에 의한 인핸스드 VM에 의해 처리된 어플리케이션을 출력하기 위한 OSD (예를 들어, 뉴스 속보, 증권 소식 등)를 생성한다.
믹서(350)는, OSD 생성부(340)에서 생성된 OSD 신호와 영상처리부(220)에서 영상 처리된 복호화된 영상 신호를 믹싱한다. 믹싱된 신호는 포맷터(360)에 제공된다. 복호화된 방송 영상 신호 또는 외부 입력 신호와 OSD 신호가 믹싱됨으로 인하여, 방송 영상 또는 외부 입력 영상 상에 OSD 가 오버레이 되어 표시될 수 있게 된다.
프레임 레이트 변환부(Frame Rate Conveter; FRC)(355)는, 입력되는 영상의 프레임 레이트를 변환할 수 있다. 예를 들어, 60Hz의 프레임 레이트를 120Hz 또는 240Hz로 변환한다. 60Hz의 프레임 레이트를 120Hz로 변환하는 경우, 제1 프레임과 제2 프레임 사이에, 동일한 제1 프레임을 삽입하거나, 제1 프레임과 제2 프레임으로부터 예측된 제3 프레임을 삽입하는 것이 가능하다. 60Hz의 프레임 레이트를 240Hz로 변환하는 경우, 동일한 프레임을 3개 더 삽입하거나, 예측된 프레임을 3개 삽입하는 것이 가능하다. 한편, 별도의 변환 없이 입력되는 프레임 레이트를 유지하는 것도 가능하다.
포맷터(360)는, 프레임 레이트 변환부(355)의 출력 신호를 입력받아, 디스플레이부(180)에 적합하도록 신호의 포맷을 변경하여 출력한다. 예를 들어, R, G, B 데이터 신호를 출력할 수 있으며, 이러한 R, G, B 데이터 신호는, 낮은 전압 차분 신호(Low voltage differential signaling, LVDS) 또는 mini-LVDS로 출력될 수 있다.
한편, 도 8에 도시된 상기 OSD 생성부(340)가 자바 어플리케이션을 표시하는 구체적인 실시예에 대해서는 도 15를 참조하여 보다 상세히 후술하도록 하겠다.
도 9는 본 발명의 일실시예에 의한 인핸스드 VM에서 사용되는 프로그램 랭귀지의 일예를 도시한 도면이다. 이하, 도 9를 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM에서 사용되는 데이터 포맷을 설명하면 다음과 같다.
일반적으로 어플리케이션은 특정 프로그램 랭귀지로 작성된 상태로 배포된다. 그러나, 전술하여 설명한 바와 같이, OS 실행 중 상기 배포된 어플리케이션을 그대로 처리할 수 없는 문제가 있다. 따라서, 도 6에 도시된 인핸스드 VM 을 이용하여 특정 언어(예를 들어, 자바 언어)로 작성된 어플리케이션을 클래스 파일로 변환한 후에 여러 개의 클래스 파일이 덱스 포맷으로 변환하는 것이 본 발명의 일특징이다.
기존의 자바 클래스 파일에서 있던 제1포맷의 바이트코드들이 모두 제2포맷의 바이트코드로 변환된다. 도 9에서는 제1포맷의 바이트코드를 자바 바이트코드로 도시하였으며, 제2포맷의 바이트코드를 달빅 바이트코드로 도시하였다. 그러나, 도 9는 설명의 편의를 위한 일실시예이며 본 발명의 권리범위가 특정 바이트코드만으로 제한되는 것은 아니다.
달빅 바이트코드는 자바 바이트코드와 동일하게 명령어가 1바이트로 구성되어 있다. 그러나, 자바 바이트 코드는 수행에 필요한 값들을 모두 스택에 저장한 후에 수행하는 방법을 택하고 있지만, 본 발명의 일실시예에 의한 인핸스드 가상 머신은 수행에 필요한 값이 저장된 레지스터를 명시적으로 지정하는 방법을 선택하고 있다.
도 9에 도시된 바와 같이, 간단한 덧셈 예제에서 자바 바이트코드는 iload를 이용하여 변수 a와 b의 값을 스택에 이동한 후에 iadd 명령어를 이용하여 덧셈을 수행한다. 반면. 인핸스드 가상 머신에서는, add-int명령어에서 사용될 변수 a와 b가 저장된 v2와 v3 레지스터를 명시적으로 인디케이트 한다. 자바 바이트코드를 4개의 명령어로 수행되지만, 인핸스드 가상 머신에서 사용되는 달빅 바이트코드는 오직 2개만으로 수행을 마칠 수 있다. 따라서, 본 발명의 일실시예에 의한 인핸스드 가상 머신에서 사용되는 달빅 바이트 코드가 좀 더 빠르게 수행될 수 있는 장점이 있다.
또한, 자바 클래스 파일에서는 자바 어플리케이션에서 사용하는 문자열, 필드, 함수등에 대한 정보들을 컨스턴스풀에 저장을 하여 사용한다. 자바 컨스턴트풀은 다양한 정보들이 모두 섞여 있으며 컨스턴트풀의 각각의 엔트리들의 종류는 태그를 이용하여 구분하여 사용한다. 반면, 덱스 포맷에서는 컨스턴트 풀의 정보들에 대한 메타 정보들을 ID 리스트에 저장하고 있으며, 컨스턴트 풀의 실제 값들은 덱스 포맷의 데이터 영역에 모두 저장되어 있다.
그리고 여러 개의 클래스파일이 하나의 덱스 파일로 변환될 수 있다. 여러 개의 자바 클래스 파일이 하나의 덱스 파일로 변환 시에 컨스턴트풀 내에서 중복되는 값들을 하나로 합할 수 있기 때문에 덱스 파일의 사이즈를 줄일 수 있다. 이에 대해서는 도 11 및 도 12를 참조하여 설명하도록 하겠다.
도 10은 본 발명의 일실시예에 의한 인핸스드 VM에서 변환되는 프로그램 랭귀지의 대응 관계를 예시한 도면이다. 이하, 도 10을 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM 에서 변환되는 자바 바이트코드와 달빅 바이트코드의 대응 관계를 설명하면 다음과 같다.
자바 바이트코드는 값이 저장되는 위치가 스택 혹은 지역 변수가 될 수 있는 반면, 본 발명의 일실시예에 의한 인핸스드 가상 머신은 레지스터에 저장을 하도록 설계한다. 예를 들어, 각 자바 스택 위치를 고정된 덱스의 레지스터로 미리 결정하였다. 즉, 0번째 자바 스택 위치는 아래와 같이 덱스의 0번째 레지스터와 동일하게 사용하였다.
Stack 0th (Java VM) => v0 (Enhanced VM)
나아가, 덱스 포맷에서 사용할 레지스터를 결정한 후에, 각각의 자바 바이트코드를 달빅 바이트코드로 변환하였다. 자바 바이트코드의 수행을 위해서 값들이 스택에 저장되어 있어야 한다.
스택에 값을 추가하거나 혹은 스택의 값을 지역 변수에 저장하기 위하여 load와 store명령어를 이용한다. 보다 신속한 변환을 위하여 load와 store를 모두 인핸스드 가상 머신의 move 명령어로 변환하는 것도 본 발명의 권리범위에 속한다. 특히, 도 10에 도시된 "LOAD/STORE" 를 "MOVE"로 대체하는 과정을 상세히 설명하면 다음과 같다.
일반적인 자바 VM 에서 사용되는 바이트코드인 "load" 는, java local 변수에 저장된 값을 stack에 push 한다는 의미이다. 예를 들어, "iload_0" 은, 0번 java local 변수를 stack에 push 하는 프로세스를 인디케이트 한다. 또한, 일반적인 자바 VM 에서 사용되는 바이트코드인 "store" 는, stack에 저장된 값을 팝(pop)해서 java local 변수에 저장한다는 의미이다. 예를 들어, "istore_0" 은, stack에서 팝(pop)한 결과를 0번 java local 변수에 저장하는 프로세스를 인디케이트 한다.
한편, java local 변수와 stack의 각 entry는, 본 발명의 일실시예에 의한 인핸스드 VM의 가상 레지스터(virtual register)로 변환된다. 따라서, 종래 기술에 의한 자바 VM에서의 2개 명령어(LOAD/STORE) 모두 본 발명의 일실시예에 의한 인핸스드 VM에서는 가상 레지스터간의 MOVE 로 통합되는 장점이 있다. 나아가, 전술한 프로세스에서 데이터의 이동이 메모리 사이에서 이루어 지지 않고, 레지스터간의 이동으로 구현 가능하므로, 가상 머신의 수행 성능을 향상시킬 수 있는 효과도 있다. 전술하여 설명한 변환 프로세스가, 도 3에 도시된 클래스/덱스 트랜스레이터(261)에서 이루어 지도록 설계하는 것도 본 발명의 일실시예이다.
도 11은 본 발명의 일실시예에 의한 인핸스드 VM이 컨스턴트 풀(constant pool)을 공유하는 프로세스를 도시한 도면이다. 그리고, 도 12는 도 11의 공유 프로세스에 따라, 메모리 용량(footprint)이 감소된 결과를 수치화하고 있는 도면이다. 이하, 도 11 및 도 12를 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM이 컨스턴트 풀을 공유하도록 설계하는 경우, 메모리 사용 효율성이 개선된 결과를 설명하면 다음과 같다.
우선, 도 11의 좌측에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치가 수신하는 자바 어플리케이션은 복수의 클래스 파일로 이루어져 있다. 나아가, 각각의 클래스 파일은 컨스턴트 풀(constant pool) 및 기타 데이터(other data)를 모두 가지고 있다.
한편, 도 3에 도시된 클래스/덱스 트랜스레이터(261)가 복수개의 클래스 파일을 하나의 덱스 파일로 변환하는 과정에서, 도 11의 우측에 도시된 바와 같이, 컨트턴트 풀 및 기타 데이터를 공유하도록 설계된다.
도 11에 도시된 컨스턴트 풀 쉐어링(sharing) 메써드를 이용할 경우, 도 12에 도시된 바와 같이 메모리 사용 용량이 대폭 줄어드는 것을 실험적으로 확인할 수가 있다.
예를 들어, 공통 시스템 라이브러리(common system libraries)에 대하여, 압축되지 않은 자바 클래스 파일은 21,445,320 바이트(bytes)가 사용되고 압축된 자바 클래스 파일은 10,662,048 바이트(bytes)가 사용된다. 반면, 덱스 파일은 압축되지 않은 경우에도 10,311,972 바이트만 필요하여, 압축된 자바 클래스 파일 보다 사이즈가 작아지는 효과가 있다.
또한, 웹 브라우저 어플리케이션(Web browser Application)에 대하여, 압축되지 않은 자바 클래스 파일은 470,312 바이트(bytes)가 사용되고 압축된 자바 클래스 파일은 232,065 바이트(bytes)가 사용된다. 반면, 덱스 파일은 압축되지 않은 경우에도 209,248 바이트만 필요하여, 압축된 자바 클래스 파일 보다 사이즈가 작아지는 효과가 있다.
그리고, 알람 체크 어플리케이션(Alarm Check Application)에 대하여, 압축되지 않은 자바 클래스 파일은 119,200 바이트(bytes)가 사용되고 압축된 자바 클래스 파일은 61,658 바이트(bytes)가 사용된다. 반면, 덱스 파일은 압축되지 않은 경우에도 53,020 바이트만 필요하여, 압축된 자바 클래스 파일 보다 사이즈가 작아지는 효과가 있다.
도 13은 본 발명의 일실시예에 의한 인핸스드 VM이 클래스 단위로 데이터를 변환하는 과정을 도시한 플로우 차트이다. 이하, 도 13을 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM이 클래스 단위로 데이터를 변환하는 프로세스를 상세히 설명하면 다음과 같다.
도 3에 도시된 인핸스드 VM(260)이 도 10에 도시된 스텝들을 수행하도록 설계할 수도 있고, 또는 클래스/덱스 트랜스레이터(2610)가 일부 스텝들을 수행하도록 설계할 수도 있다.
우선, 방송 튜너, 네트워크 인터페이스 또는 외부 장치 인터페이스로부터 파일이 수신된 경우(S1210), 특정 프로그램 랭귀지로 작성된 파일(예를 들어, 자바 클래스 파일)인지 여부를 판단한다(S1220). 상기 판단 결과(S1220) 자바 클래스 파일이 아닌 경우, 수신된 파일을 그대로 실행한다(S1230).
반면, 상기 판단 결과(S1220) 자바 클래스 파일인 경우, 클래스 파일을 로드하는 프로세스(S1240) 및 로드된 클래스 파일을 덱스 파일 포맷으로 변환하는 프로세스(S1250)를 수행한다. 전술한 S1240 단계 및 S1250 단계를 보다 상세히 설명하면 다음과 같다.
상기 S1240 단계는, S1241, S1242, S1243, S1244 단계로 구성되어 있다. 우선, 수신된 클래스 파일의 헤더를 로드하고(S1241), 상기 클래스 파일의 컨스턴트 풀을 로드하고(S1242), 상기 클래스 파일의 클래스 정보를 로드하고(S1243), 그리고 상기 클래스 파일의 인터페이스/필드/메쏘드를 로드 하도록 설계한다(S1244). 전술한 로드 프로세스들(S1240)이 선행된 다음, 덱스 포맷으로의 변환이 가능하다.
상기 S1250 단계는, S1251, S1252, S1253, S1254, S1255 단계로 구성되어 있다. 우선, 상기 S1240 단계에서 로드된 클래스 파일의 ID 및 데이터를 변환하고(S1251), 변환된 ID 및 데이터를 소팅(Sorting) 한다(S1252). 나아가, 로드된 클래스 파일의 데프(Def) 정보를 변환하고(S1253), 변환된 클래스 데프 정보를 소팅한다(S1254). 그리고, 전술한 변환 및 소팅 프로세스가 완료한 경우, 덱스 포맷으로 작성하도록 설계한다(S1255).
전술하여 설명한 S1240 단계 및 S1250 단계가 완료 후, 클래스 파일을 덱스 포맷으로 실행 가능하다(S1230).
도 14는 본 발명의 일실시예에 의한 인핸스드 VM이 전체 패키지 단위로 데이터를 변환하는 과정을 도시한 플로우 차트이다. 이하, 도 14를 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM이 전체 패키지 단위로 데이터를 변환하는 프로세스를 상세히 설명하면 다음과 같다. 도 14에 도시된 실시예는, 도 13에 도시된 실시예와 달리, 수신된 어플리케이션을 구성하는 복수개의 자바 클래스 파일을 디컴프레션(De-compression)한 다음, 한번에 처리한다는 점에서 차이점이 존재한다.
우선, 복수개의 클래스 파일로 구성되어 있는 자바 어플리케이션 파일을 수신한 경우(S1300), 압축된 각각의 클래스 파일을 디컴프레션(De-compression) 하는 절차를 수행한다(S1310).
상기 S1310 단계에서 추출된 클래스 파일들은 각각 S1330, S1340 그리고 S1350 단계를 거치도록 설계된다. 물론, 상기 S1310 단계에서 추출된 파일 중 클래스 파일이 아닌 다른 파일들은 별도로 프로세싱 된다(S1320). 상기 다른 파일들은, 예를 들어 이미지, 텍스트 등에 해당한다.
추출된 복수개의 클래스 파일들 중에서 임의의 클래스 파일이 수신된 경우(S1330), 수신된 클래스 파일에 대한 로드 프로세스가 수행된다(S1340). 그리고, 로드된 클래스 파일을 덱스 포맷으로 트랜스레이트 하는 프로세스가 수행된다(S1350). 또한, 최적화(optimize) 프로세스가 추가적으로 수행될 수도 있다.
상기 최적화 프로세스로, 예를 들어 복사 제거(copy propagation) 최적화, 퀵큰(quicken) 최적화, 또는 스트링(string) 시스템 클래스 최적화 등이 사용될 수 있다. 특히, 복사 제거 최적화 방법을 설명하면 다음과 같다.
자바 클래스 바이트코드를 인핸스드 가상 머신에서 사용하는 바이트코드로 변환하는 단계에서, 각각의 베이직 블록(basic block) 내에서만 최적화를 적용한다. 예를 들어, 자바 오퍼랜드 스택(java operand stack)은, 베이직 블록(basic block) 시작시와 종료시 특정값을 가지고 있지 않다. 따라서, 베이직 블록(basic block) 단위를 넘어서는 경우에 까지 복사 제거 최적화를 적용할 필요가 없다. 이와 같이 설계하는 경우, 보다 신속하게 최적화를 적용할 수 있는 장점이 있다.
전술하여 설명한 S1330, S1340, S1350 단계들을 모두 거친 복수개의 클래스 파일들을 머징(Merging) 함으로써(S1360), 하나의 덱스 파일을 생성한다(S1370). 그리고, S1320 단계에서 처리된 기타 파일들과 전술한 S1370 단계에서 생성된 덱스 파일을 다시 압축함으로써(S1380), 자바 어플리케이션 파일이 복원된다(S1390).
도 15는 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치의 유저 인터페이스의 일예를 도시한 도면이다. 이하, 도 15를 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치가, 방송을 통해 어플리케이션을 수신한 경우의 유저 인터페이스를 설명하면 다음과 같다.
도 15에 도시된 디스플레이 장치(1400)는 예를 들어, 도 7에 도시된 디바이스에 해당하며, 도 8에 도시된 제어부를 추가적으로 포함하고 있도록 설계할 수도 있다. 나아가, 상기 디스플레이 장치(1400)는 도 3에 도시된 인핸스드 가상 머신을 탑재하고 있는 것으로 가정한다. 특히, 종래 기술에 의하면, 실시간으로 전송되는 모든 데이터(예를 들어, 자막, 뉴스 속보, 증권 소식 등)내 자바 클래스 파일을 미리 덱스 포맷으로 변경하여 제공하는 것이 불가능한 문제점이 있었다. 도 15를 참조(도 3, 도 7 및 도 8 보조 참조)하여, 실시간으로 전송되는 자바 클래스 파일 형태의 데이터 방송을 처리할 수 없는 문제점을 해결하는 방법을 이하에서 설명하도록 하겠다.
우선, 도 15의 (a)에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(1400)는 방송 네트워크를 통해 수신한 비디오 데이터(1405)를 출력한다. 이 때, 방송 네트워크를 통해 수신되는 데이터 방송(예를 들어, 자바 어플리케이션)을 출력할 것인지 여부를 문의하는 가이드 메시지(1410)가 출력된다. 상기 가이드 메시지(1410)는, 도 8에 도시된 제어부의 OSD 생성부에서 생성된다. 물론, 도 15의 (a) 과정을 생략하고 도 12의 (b) 과정 및 (c) 과정만으로 설계하는 것도 본 발명의 권리범위에 속한다.
방송 네트워크를 통해 데이터 방송이 수신되지 않는 경우, 도 15의 (b)에 도시된 바와 같이, 디스플레이 장치(1400)는 일반 방송 프로그램에 대응하는 비디오 데이터(1405)만을 계속하여 디스플레이 한다.
한편, 방송 네트워크를 통해 데이터 방송(예를 들어, 자바 클래스 파일)(1420)을 수신한 경우, 도 15의 (c)에 도시된 바와 같이, 디스플레이 장치(1400)는 일반 방송 프로그램에 대응하는 비디오 데이터(1405) 뿐만 아니라, 자바 클래스 파일로 구성되어 있는 데이터 방송에 해당하는 데이터(1430)를 출력한다. 나아가, 상기 자바 클래스 파일(1420)이 가상 머신에서 처리 가능한 형태로 변환하는 과정은, 도 3에 도시된 클래스/덱스 변환기(261)에서 수행하도록 설계된다.
다시 정리하여 설명하면, 도 3에 도시된 가상 머신(260)이 탑재된 디스플레이 장치는, 실시간으로 전송되는 데이터 방송을 수신한다. 도 3에 도시된 클래스/덱스 변환기(261)는, 상기 데이터 방송에 포함된 제1데이터 포맷(예를 들어, 자바 클래스 파일)을, VM에서 처리 가능한 제2데이터 포맷(예를 들어, 덱스 포맷)으로 변환한다.
상기 VM이 전술한 제2데이터 포맷을 처리한 다음, 도 7에 도시된 제어부(170)는 상기 VM에서 처리된 제2데이터 포맷을 출력 가능한 데이터로 전환한다. 예를 들어, 상기 제어부(170)내에 포함된 VDP(Video Display Processor)가 처리하도록 설계하거나 또는 별도의 VDP 모듈에서 처리하도록 설계 가능하다.
따라서, 도 15의 (c)에 도시된 바와 같이, 실시간으로 전송되는 데이터 방송의 비디오 정보가 특정 영역(1430)에 디스플레이 된다.
도 16은 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치의 유저 인터페이스의 다른 일예를 도시한 도면이다. 이하, 도 16을 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치가, 외부 디바이스(예를 들어, BD 플레이어)를 통해 어플리케이션을 수신한 경우의 유저 인터페이스를 설명하면 다음과 같다.
도 16에 도시된 디스플레이 장치(1500)는 예를 들어, 도 7에 도시된 디바이스에 해당하며, 도 8에 도시된 제어부를 추가적으로 포함하고 있도록 설계할 수도 있다. 나아가, 상기 디스플레이 장치(1500)는 도 3에 도시된 인핸스드 가상 머신을 탑재하고 있는 것으로 가정한다.
우선, 도 16의 (a)에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(1500)는 방송 네트워크를 통해 수신한 비디오 데이터(1505)를 출력한다.
나아가, 외부 장치 인터페이스를 통해 외부 디바이스(1520)가 연결된 경우, 도 16의 (b)에 도시된 바와 같이, 디스플레이 장치(1500)는 외부 디바이스를 실행할 것인지 여부를 문의하는 가이드 메시지(1510)가 출력된다. 상기 가이드 메시지(1510)는, 도 8에 도시된 제어부의 OSD 생성부에서 생성된다. 물론, 도 16의 (b) 과정에 도시된 메시지(1510)를 생략하는 것도 본 발명의 권리범위에 속한다.
한편, 외부 디바이스(1520)로부터 자바 클래스 파일(1525)이 수신된 경우, 도 16의 (c)에 도시된 바와 같이, 디스플레이 장치(1500)는 자바 클래스 파일로 구성되어 있는 데이터에 해당하는 그래픽(1515)을 출력하도록 설계된다. 상기 자바 클래스 파일(1525)이 가상 머신에서 처리 가능한 형태로 변환하는 과정은, 도 3에서 충분히 설명한 바 동일한 설명은 생략하도록 하겠다.
도 17은 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치의 유저 인터페이스의 또 다른 일예를 도시한 도면이다. 이하, 도 17을 참조하여, 본 발명의 일실시예에 의한 인핸스드 VM이 탑재된 디스플레이 장치가, 인터넷 네트워크를 통해 자바 어플리케이션을 수신한 경우의 유저 인터페이스를 설명하면 다음과 같다.
도 17에 도시된 디스플레이 장치(1600)는 예를 들어, 도 7에 도시된 디바이스에 해당하며, 도 8에 도시된 제어부를 추가적으로 포함하고 있도록 설계할 수도 있다. 나아가, 상기 디스플레이 장치(1600)는 도 3에 도시된 인핸스드 가상 머신을 탑재하고 있는 것으로 가정한다.
우선, 도 17의 (a)에 도시된 바와 같이, 본 발명의 일실시예에 의한 디스플레이 장치(1600)는 인터넷 네트워크를 통해 특정 서버에 접속하고, 접속된 서버로부터 특정 어플리케이션을 수신할지 여부를 문의하는 가이드 메시지(1620)가 출력된다.
도 17의 (a)에 도시된 가이드 메시지(1620)에서, 유저 인터페이스를 통해 예스(yes)를 선택한 경우, 도 17의 (b)에 도시된 바와 같이 인터넷 네트워크를 통해 수신되는 특정 어플리케이션(예를 들어, 게임관련 자바 어플리케이션)이 수신되고 있는 상태를 인디케이트 하는 OSD(1630)가 디스플레이 된다.
그리고, 자바 어플리케이션의 최종 다운로드가 완료하여 메모리에 저장된 경우, 전술하여 설명한 인핸스드 VM의 동작에 따라, 도 17의 (c)에 도시된 바와 같이 해당 어플리케이션이 실행된 화면이 출력된다.
물론, 도 17의 (b) 단계를 생략하고, 도 17의 (a) 단계에서 (c) 단계로 바로 넘어가도록 설계하는 것도 본 발명의 권리범위에 속한다.
도 18은 도 17에 도시된 유저 인터페이스를 구현하기 위한 프로세스를 예시하고 있는 플로우 차트이다. 이하, 도 18을 참조하여, 도 17에 도시된 유저 인터페이스를 구현하기 위한 프로세스를 설명하면 다음과 같다.
본 발명의 일실시예에 의한 디스플레이 장치는, 방송 네트워크를 통해 수신된 AIT(Application Information Table)로부터 URL(Uniform Resource Locator) 정보를 추출한다(S1501).
나아가, 상기 디스플레이 장치는, 상기 S1501 단계에서 추출된 URL 정보를 이용하여 해당 웹사이트에 자동으로 접속하고, 특정 어플리케이션(예를 들어, 자바 언어로 설계된 데이터)을 다운로드 한다(S1502).
또한, 상기 디스플레이 장치는, 전술하여 설명한 S1502 단계에서 다운로드된 어플리케이션을 저장부(예컨대 플래쉬 메모리)에 저장한다(S1503). 그리고, 상기 디스플레이 장치는, 저장부에 기저장된 인핸스드 VM에 따라 자바 어플리케이션을 실행한다(S1504). 상기 인핸스드 VM에서 데이터 포맷을 변환하는 과정은 전술하여 설명한 바, 동일한 설명은 생략하여도 당업자라면 본 발명을 이해하고 구현할 수가 있다.
나아가, 설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 그리고, 당업자의 필요에 따라, 이전에 설명된 실시예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 본 발명의 권리범위에 속한다.
본 발명에 따른 디스플레이 장치 및 그 동작 방법은 상기한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 발명의 디스플레이 장치의 동작방법은 디스플레이 장치에 구비된 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
그리고, 당해 명세서에서는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양발명의 설명은 보충적으로 적용될 수가 있다.
200 : 디스플레이 장치
260 : 인핸스드 가상 머신(Enhanced Virtual Machine)
270 : OS & H/W

Claims (14)

  1. 가상 머신이 탑재된 디스플레이 장치에 있어서,
    특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신하는 수신 모듈;
    상기 어플리케이션에 포함된 제1데이터 포맷을 디텍트 하는 디텍터;
    상기 디텍트된 제1데이터 포맷을 인핸스드 가상 머신에서 처리 가능한 제2데이터 포맷으로 변환하는 트랜스레이터;
    상기 변환된 제2데이터 포맷을 처리하는 인핸스드 가상 머신;
    상기 인핸스드 가상 머신에서 처리된 제2데이터 포맷을 출력 가능한 데이터로 전환하는 비디오 프로세서; 그리고
    상기 전환된 데이터를 출력하는 디스플레이 모듈
    을 포함하는 가상 머신이 탑재된 디스플레이 장치.
  2. 제1항에 있어서,
    상기 인핸스드 가상 머신은,
    적어도 2개 이상의 클래스 파일로 이루어진 제1데이터 포맷을 디컴프레션(Decompression) 하고,
    각각의 클래스 파일에 대한 로딩 및 트랜스레이션 프로세스를 수행하고, 그리고,
    상기 프로세스가 수행된 각각의 클래스 파일을 머징(merge)하여, 제2데이터 포맷을 생성하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  3. 제1항에 있어서,
    상기 인핸스드 가상 머신은,
    다운로드된 파일이 클래스 파일이 아닌 경우, 다운로드된 파일을 실행하고, 그리고
    다운로드된 파일이 클래스 파일인 경우, 덱스 파일로 트랜스레이트(translate)한 후 덱스 파일을 실행하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  4. 제1항에 있어서,
    상기 인핸스드 가상 머신은,
    상기 제1데이터 포맷의 클래스 파일 각각에 포함된 컨스턴트 풀을 공유(sharing)하고 있는 하나의 제2데이터 포맷을 생성하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  5. 제1항에 있어서,
    특정 프로그램 랭귀지로 만들어진 상기 어플리케이션은,
    자바 어플리케이션에 대응하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  6. 제5항에 있어서,
    상기 수신 모듈은,
    방송 또는 외부 디바이스로부터 자바 어플리케이션을 포함하는 데이터를 수신하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  7. 제1항에 있어서,
    상기 제1데이터 포맷은 자바 클래스 파일에 대응하고,
    상기 제2데이터 포맷은 덱스 파일에 대응하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  8. 제1항에 있어서,
    상기 디스플레이 장치는,
    어플리케이션을 처리 가능한 OS가 탑재된 네트워크 TV, 스마트 TV, IPTV 또는 HBBTV 중 하나에 대응하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치.
  9. 가상 머신이 탑재된 디스플레이 장치의 제어 방법에 있어서,
    방송 프로그램에 대응하는 비디오 데이터 및 특정 프로그램 랭귀지로 만들어진 어플리케이션을 수신하는 단계;
    상기 비디오 데이터 및 상기 어플리케이션을 디멀티플렉싱 하는 단계;
    상기 디멀티플렉싱된 비디오 데이터를 디코딩 하는 단계;
    상기 디멀티플렉싱된 어플리케이션에 포함된 제1데이터 포맷을 제2데이터 포맷으로 변환하는 단계;
    상기 변환된 데이터 포맷의 어플리케이션을, 상기 디스플레이 장치의 스크린내 제1영역에 디스플레이 하는 단계; 그리고
    상기 디코딩된 비디오 데이터를, 상기 디스플레이 장치의 스크린내 제2영역에 디스플레이 하는 단계
    를 포함하는 가상 머신이 탑재된 디스플레이 장치의 제어 방법.
  10. 제9항에 있어서,
    상기 변환하는 단계는,
    적어도 2개 이상의 클래스 파일로 이루어진 제1데이터 포맷을 디컴프레션(Decompression) 하는 단계;
    각각의 클래스 파일에 대한 로딩 및 트랜스레이션 프로세스를 수행하는 단계; 그리고
    상기 프로세스가 수행된 각각의 클래스 파일을 머징(merge)하여, 제2데이터 포맷을 생성하는 단계
    를 더 포함하는 가상 머신이 탑재된 디스플레이 장치의 제어 방법.
  11. 제9항에 있어서,
    상기 변환하는 단계는,
    상기 제1데이터 포맷의 클래스 파일 각각에 포함된 컨스턴트 풀을 공유(sharing)하고 있는 하나의 제2데이터 포맷을 생성하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치의 제어 방법.
  12. 제9항에 있어서,
    특정 프로그램 랭귀지로 만들어진 상기 어플리케이션은,
    자바 어플리케이션에 대응하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치의 제어 방법.
  13. 제9항에 있어서,
    상기 제1데이터 포맷은 자바 클래스 파일에 대응하고,
    상기 제2데이터 포맷은 덱스 파일에 대응하는 것을 특징으로 하는 가상 머신이 탑재된 디스플레이 장치의 제어 방법.
  14. 제9항 내지 제13항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020110058401A 2011-04-20 2011-06-16 가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법 KR101788061B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110058401A KR101788061B1 (ko) 2011-06-16 2011-06-16 가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법
US13/451,356 US9699508B2 (en) 2011-04-20 2012-04-19 Display apparatus having virtual machine and method of controlling the same
EP12002789A EP2515550A1 (en) 2011-04-20 2012-04-20 Display apparatus having virtual machine and method of controlling the same
CN201210189862.4A CN102821322B (zh) 2011-04-20 2012-04-20 具有虚拟机的显示装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110058401A KR101788061B1 (ko) 2011-06-16 2011-06-16 가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20120138950A true KR20120138950A (ko) 2012-12-27
KR101788061B1 KR101788061B1 (ko) 2017-10-19

Family

ID=46045683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110058401A KR101788061B1 (ko) 2011-04-20 2011-06-16 가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법

Country Status (4)

Country Link
US (1) US9699508B2 (ko)
EP (1) EP2515550A1 (ko)
KR (1) KR101788061B1 (ko)
CN (1) CN102821322B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116988B2 (en) 2013-08-28 2018-10-30 Lg Electronics Inc. Signal transmission device and method for controlling same

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2973632A1 (fr) * 2011-03-31 2012-10-05 France Telecom Procede d'acces a un service, notamment un portail web, par un terminal de restitution d'un flux multimedia
US9262420B1 (en) 2012-04-23 2016-02-16 Google Inc. Third-party indexable text
US9268802B2 (en) * 2012-06-26 2016-02-23 Google Inc. System and method for end-to-end exposure of exported representations of native data types to third-party applications
US9292280B2 (en) 2013-03-15 2016-03-22 Google Inc. Systems and methods for multi-tiered format registration for applications
JP2015106763A (ja) * 2013-11-28 2015-06-08 ソニー株式会社 送信装置、ハイブリッドキャストデータ送信方法、受信装置およびハイブリッドキャストデータ受信方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313809B1 (en) * 1999-04-16 2007-12-25 Apple, Inc. Convergence-enabled DVD and web system
US7034791B1 (en) * 2000-12-14 2006-04-25 Gary Odom Digital video display employing minimal visual conveyance
US7761861B2 (en) * 2002-11-29 2010-07-20 Research In Motion Limited Method for generating interpretable code for storage in a device having limited storage
GB0329246D0 (en) * 2003-12-18 2004-01-21 Agilent Technologies Inc Method of translating computer program code, communications system and network management entity therefor
GB0401781D0 (en) 2004-01-28 2004-03-03 Koninkl Philips Electronics Nv Digital broadcasting terminal
TWI246326B (en) * 2004-08-16 2005-12-21 Realtek Semiconductor Corp Image processing circuit of digital TV
US7664967B2 (en) * 2004-12-22 2010-02-16 Borland Software Corporation Development system with methodology providing information hiding in executable programs
CN100579192C (zh) * 2005-02-04 2010-01-06 皇家飞利浦电子股份有限公司 控制器、个人视频记录器以及用于传输媒体内容的方法
US20070143801A1 (en) * 2005-12-20 2007-06-21 Madonna Robert P System and method for a programmable multimedia controller
US20080005767A1 (en) * 2006-01-27 2008-01-03 Samsung Electronics Co., Ltd. Multimedia processing apparatus and method for mobile phone
US8448163B2 (en) * 2006-08-15 2013-05-21 International Business Machines Corporation Deploying J2EE web applications in an OSGI environment
US8037467B2 (en) * 2007-10-26 2011-10-11 International Business Machines Corporation Single stream processing with multi-version support of application operating environments
US8539464B2 (en) * 2008-10-30 2013-09-17 International Business Machines Corporation Distributed just-in-time compilation
US8615607B2 (en) * 2009-02-27 2013-12-24 Red Hat, Inc. Implementation of endpoints as JMX MBeans in an integrated media and JAVA EE application server
US20110016490A1 (en) * 2009-07-16 2011-01-20 Germar Schaefer Systems and methods for managing content in real-time
US9389877B2 (en) * 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
CN101800838B (zh) 2009-12-25 2012-10-31 袁炜 一种互联网电视虚拟机

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116988B2 (en) 2013-08-28 2018-10-30 Lg Electronics Inc. Signal transmission device and method for controlling same

Also Published As

Publication number Publication date
EP2515550A1 (en) 2012-10-24
KR101788061B1 (ko) 2017-10-19
CN102821322B (zh) 2016-09-14
CN102821322A (zh) 2012-12-12
US9699508B2 (en) 2017-07-04
US20120278805A1 (en) 2012-11-01

Similar Documents

Publication Publication Date Title
KR101788061B1 (ko) 가상 머신이 탑재된 디스플레이 장치 및 그 제어 방법
US10244078B2 (en) Information processing apparatus, information processing method, and program
CN114073098B (zh) 流媒体同步方法及显示设备
US20090138934A1 (en) Digital broadcast system, receiving apparatus and transmitting apparatus
WO2020098504A1 (zh) 一种视频切换的控制方法及显示设备
WO2021109354A1 (zh) 媒体流数据播放方法及设备
US20230362224A1 (en) Systems and methods for encoding and decoding
CN111601135A (zh) 一种音视频基本流同步注入的方法及显示设备
WO2013031658A1 (ja) 表示装置、受信装置、表示方法、テレビジョン受像機、表示システム、プログラムおよび記録媒体
CN111343498B (zh) 一种静音控制方法、装置及智能电视
KR101951674B1 (ko) 적어도 하나 이상의 이미지 코드를 처리하는 디지털 수신기 및 그 제어 방법
CN111654753A (zh) 一种应用程序启动方法及显示设备
CN111562887B (zh) 显示设备和分区扩容方法
CN112988292A (zh) 一种多语言翻译文件生成方法及终端
US20120082435A1 (en) Moving image display device
CN111601158B (zh) 一种流媒体管道切音轨的优化方法及显示设备
JP2013176105A (ja) 表示装置、受信装置、表示方法、テレビジョン受像機、表示システム、プログラムおよび記録媒体
CN111601159B (zh) 显示设备、数字音频信号的生成及处理方法
CN113407346B (zh) 一种浏览器内存调节方法及显示设备
JP2016001918A (ja) 表示装置、受信装置、表示方法、テレビジョン受像機、表示システム、プログラムおよび記録媒体
CN115052272A (zh) 一种数据传输方法及相关设备
JP2004128872A (ja) 画像処理装置及びその方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
CN112188276A (zh) 一种频道切换方法及显示设备
KR20160071835A (ko) 디스플레이 장치 및 그 제어 방법
CN116112476A (zh) 一种云桌面的多媒体播放方法、系统、设备及存储介质

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