KR20020035561A - 애플리케이션을 테스트하는 장치 및 방법 - Google Patents

애플리케이션을 테스트하는 장치 및 방법 Download PDF

Info

Publication number
KR20020035561A
KR20020035561A KR1020027000332A KR20027000332A KR20020035561A KR 20020035561 A KR20020035561 A KR 20020035561A KR 1020027000332 A KR1020027000332 A KR 1020027000332A KR 20027000332 A KR20027000332 A KR 20027000332A KR 20020035561 A KR20020035561 A KR 20020035561A
Authority
KR
South Korea
Prior art keywords
decoder
receiver
application
function
data
Prior art date
Application number
KR1020027000332A
Other languages
English (en)
Inventor
홍타오 리아오
브루노 마손
장-베르나드 제라드 모리스 보쿠
Original Assignee
삐에르 레꾸르
까날 + (쏘시에떼 아노님)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삐에르 레꾸르, 까날 + (쏘시에떼 아노님) filed Critical 삐에르 레꾸르
Publication of KR20020035561A publication Critical patent/KR20020035561A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/04Diagnosis, testing or measuring for television systems or their details for receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/004Diagnosis, testing or measuring for television systems or their details for digital television systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

리시버/디코더, 예를 들면, 텔레비젼 시스템을 위한 애플리케이션을 테스트하는 장치가 개시되며, 이 장치는 리시버/디코더의 기능을 시뮬레이션하는 수단을 포함한다. 애플리케이션을 편집 및 테스트하는 장치와, 관련 워크스테이션도 개시된다. 리시버/디코더의 기능이 시뮬레이션되는 애플리케이션을 테스트하는 방법도 개시된다.

Description

애플리케이션을 테스트하는 장치 및 방법{APPARATUS FOR AND METHOD OF TESTING APPLICATIONS}
디지털 텔레비젼 시스템은 아날로그 형태 보다는 디지털 형태로 텔레비젼 채널을 시청자에게 전송한다. 디지털 채널은 송신기 단부에서 디지털 데이터 스트림으로 코딩되며, 디지털 셋-탑 박스(DSTB) 또는 통합된 디지털 텔레비젼의 디지털 디코더를 사용하여 리시버 단부에서 디코딩된다. 대화성이 가능하도록, 텔레비젼 채널을 전송하는 매체 또는 전화망 링크와 같은 다른 매체를 통해 업링크가 제공될 수 있다. 본 명세서에서 사용되는 것과 같이, 용어 "디지털 텔레비젼 시스템"은, 예를 들면, 모든 위성 방송, 지상 방송, 케이블 방송 및 그 밖의 방송 시스템을 포함한다.
디지털 디코더는 통상 애플리케이션이라고 부르는 프로그램이 실행될 수 있는 프로세서를 포함한다. 애플리케이션의 예는 프로그램 가이드, 텔레쇼핑, 퀴즈, 홈 뱅킹 및 텔레보우팅(Televoting)을 포함한다. 그러한 애플리케이션은 통상 사용자가 특정 옵션에서 선택할 수 있는 텔레비젼 스크린상의 메뉴를 표시한다. 선택의 결과는 업링크를 통해 전송되어 적절한 동작이 취해질 수 있게 한다.
애플리케이션은 스마트카드 판독기, 그래픽 카드, 적외선 리모콘 회로, 키보드, 입/출력 포트 또는 모뎀과 같은 다양한 하드웨어와 상호 작용할 수 있으며, 그것은 텔레비젼 신호가 전송되는 매체로부터 데이터를 수신할 수도 있다. 애플리케이션과 하드웨어 사이에 인터페이스를 제공하기 위하여, 디바이스라 부르는 소프트웨어 모듈이 제공된다. 그러한 디바이스는 외부 사건 및 물리적 인터페이스를 관리하는데 필요한 논리적 리소스로 이루어진다. 본 발명에서, 용어 "디바이스"는 그러한 소프트웨어 모듈을 가리키는데 사용된다.
가입자에게 제공되는 서비스의 수가 급속히 증가함에 따라, 애플리케이션을 설계, 작성, 디버그 및 테스트할 수 있게 하는 저작 툴에 대한 요구가 있다.
알려진 저작 툴은 통상 윈도우 NT 또는 UNIX 워크스테이션과 같은 워크스테이션에서 애플리케이션이 개발되게 한다. 애플리케이션이 테스트될 단계에서 애플리케이션의 전체가 DSTB와 같은 디지털 디코더로 다운로드된다. 디지털 디코더에서 애플리케이션의 성능이 테스트될 수 있다. 이 테스트 과정은 성가실 수 있다.
본 발명은 애플리케이션을 테스트하는 장치 및 방법에 관한 것이다. 대화식 텔레비젼 시스템을 위한 애플리케이션을 작성, 개발 및 테스트하는데 사용되는 저작 툴(Authoring Tool)에 특히 유용하다.
도 1은 통상의 디지털 텔레비젼 시스템의 구성을 나타낸 도면.
도 2는 도 1의 디지털 텔레비젼 시스템의 대화식 시스템의 구성을 나타낸 도면.
도 3은 도 1의 시스템의 리시버/디코더의 구성도.
도 4는 리시버/디코더의 계층화된 구조의 기능 블럭도.
도 5는 애플리케이션 저작 툴을 실행하는 워크스테이션을 나타낸 도면.
도 6은 저작 툴의 주요 요소를 나타낸 도면.
도 7은 본 발명의 실시예에 따른 시뮬레이터의 주요 모듈을 나타낸 도면.
도 8 및 9a-b는 시뮬레이터의 동작을 나타낸 도면.
도 10은 시뮬레이터의 동작의 제 2 예를 나타낸 도면.
도 11은 리시버/디코더에 의해 출력되는 이미지가 어떻게 발생되는지의 예를 나타낸 도면.
도 12 및 도 13은 시뮬레이션된 리시버/디코더에서 실행되는 애플리케이션의예를 나타낸 도면.
본 발명에 따르면, 리시버/디코더에서 사용하는 애플리케이션을 테스트하는 장치가 제공되며, 이 장치는 리시버/디코더의 기능을 시뮬레이션하는 수단을 포함한다.
본 발명은 애플리케이션을 테스트하기 위해 리시버/디코더 및 관련 하드웨어가 제공될 필요가 없는 이점을 제공한다. 본 발명은 리시버/디코더로의 애플리케이션의 다운로드없이, 애플리케이션의 어떠한 변경에 대한 결과를 애플리케이션 개발자가 알 수 있는 이점도 제공한다.
본 명세서에서 사용되는 용어 "리시버/디코더"는 코딩되거나 코딩되지 않은 신호, 예를 들면, 방송되거나 어떤 다른 수단에 의해 전송될 수 있는 텔레비젼 및/또는 라디오 신호를 수신하는 리시버를 지칭할 수 있다. 이 용어는 수신된 신호를 디코딩하는 디코더를 지칭할 수 있다. 이와 같은 리시버/디코더의 실예로는, 예를 들어 "셋-탑 박스"에서 수신된 신호를 디코딩하는 리시버와 통합된 디코더를 포함할 수 있으며, 이와 같은 디코더는 물리적으로 분리된 리시버와 조합하여 작용하거나 웹 브라우져, 비디오 레코더 또는 텔레비젼과 같은 부가적인 기능을 포함한다.
리시버/디코더의 기능을 시뮬레이션하는 수단은, 예를 들어 리시버/디코더의 기능을 시뮬레이션하도록 프로그램되어 있는 프로세서일 수 있다.
본 발명의 장치는 애플리케이션을 실행할 수 있으며, 실제 리시버/디코더에서 실행된다면 애플리케이션이 어떻게 수행될 것인지를 애플리케이션 개발자가 알 수 있게 할 수 있다. 바람직하게, 장치는 제 1 프로세스에서 애플리케이션을 실행하고 제 2 프로세스에서 리시버/디코더의 기능을 시뮬레이션한다. 이것은 애플리케이션이 제 1 프로세스에서 실행되는 반면, 실제 리시버/디코더에서 발생되는 비동기 사건이 제 2 프로세스에서 시뮬레이션되게 할 수 있다. 제 1 및 제 2 프로세스는 서로 독립적일 수 있으며, 동일 프로세서에서 실행될 수 있다. 장치는 제 1 프로세스와 제 2 프로세스 사이에서 데이터의 흐름을 가능케하는 분할된 메모리를 부가적으로 포함할 수 있다.
장치는 제 1 쓰레드(thread)에서 애플리케이션을 실행하며, 제 2 쓰레드에서 리시버/디코더의 기능을 시뮬레이션 할 수 있다. 제 1 및 제 2 쓰레드는 단일 프로세스의 일부를 형성할 수 있다.
장치는 제 1 및 제 2 쓰레드사이에서 데이터 흐름을 가능케 하는 분할된 메모리를 더 포함할 수 있다.
리시버/디코더의 기능은 소프트웨어로 적어도 부분적으로 시뮬레이션될 수 있으므로 그러한 기능을 하는 리시버/디코더의 하드웨어가 제공될 필요가 없다. 그러나, 장치가 리시버/디코더의 하드웨어에 해당하는 것과 이용가능한 하드웨어를 가질 경우에는, 그 하드웨어가 리시버/디코더의 기능을 시뮬레이션하는데 사용될 수 있으므로, 리시버/디코더의 기능은 리시버/디코더의 하드웨어에 해당하는 하드웨어를 사용하여 시뮬레이션될 수 있다.
장치는 리시버/디코더의 하나의 하드웨어에 의해 발생되는 데이터를 묘사하는 데이터를 포함하는 파일을 저장하는 저장 수단(저장 장치, 예를 들면, 컴퓨터 메모리 또는 하드 디스크와 같은 컴퓨터 판독가능 매체 등)을 포함할 수 있다. 이것은 그 하드웨어의 기능이 시뮬레이션되게 할 수 있다. 장치는 리시버/디코더의 출력을 시뮬레이션하는, 스크린상에 표시하기 위한, 출력을 발생시키는데 적용될 수 있다. 이것은, 예를 들면, 텔레비젼 스크린상에 나타나는 것과 같이 애플리케이션의 출력을 애플리케이션 개발자가 스크린상에서 볼 수 있게 할 수 있다. 장치는 , 예를 들어 하나의 하드웨어로부터 리시버/디코더에서 수신될 입력 데이터로서의묘사 데이터를 수신할 수 있다. 그러한 하나의 하드웨어는 스크린의 윈도우에서 묘사될 수 있다. 예를 들면, 리모콘 장치의 경우에, 리모콘 장치의 그림이 스크린의 윈도우에 표시될 수 있으며, 사용자는 애플리케이션을 테스트하기 위하여 리모콘 장치의 그림과 상호 작용할 수 있다. 따라서, 장치는 리시버/디코더와 상호작용할 수 있는 하나의 하드웨어를 나타내도록 스크린상에 표시되는 출력을 발생할 수 있다.
본 발명은 애플리케이션을 편집 및 테스트하며, 상술한 바와 같이 애플리케이션을 편집하는 에디터와 애플리케이션을 테스트하는 장치를 포함하는 장치도 제공한다. 용어 "에디터"가 애플리케이션을 설계, 작성 또는 변경하는 프로그램 또는 그 밖의 툴을 포함한다는 것이 이해될 것이다. 이와같은 방식으로, 애플리케이션을 편집하는 에디터와 애플리케이션을 테스트하기 위해 리시버/디코더의 반응을 시뮬레이션하는 시뮬레이터가 워크스테이션과 같은 장치에 제공될 수 있다.
에디터는 스크린상에 표시하기 위한 출력을 발생시키고, 리시버/디코더의 기능을 시뮬레이션하는 수단은 동일 스크린상에 표시하기 위한 출력을 발생시킬 수 있다. 이것은 애플리케이션을 편집하는데 사용되는 것과 동일한 스크린상의 애플리케이션의 출력을 애플리케이션 개발자가 볼 수 있게 할 수 있다. 프로세서는 에디터와 리시버/디코더의 기능을 시뮬레이션하는 수단을 실행하는 프로세서를 포함할 수 있다. 리시버/디코더의 기능을 시뮬레이션하는 수단은 에디터에 의해 편집된 애플리케이션을 실행할 수 있다.
상술한 모든 형태의 장치는 리시버/디코더의 기능이, 예를 들면, 리모콘, 키보드 또는 모뎀과 같은 통신 장치로부터 입력 데이터를 수신 및 처리, 비디오 데이터를 디코딩, 비디오 출력을 발생, 방송 신호로 조정, 스마트 카드와 통신, 그리고 바람직하게 다음과 같은 디바이스들 중 적어도 하나의 디바이스가 갖는 기능일 수 있다: REMOTE CONTROL, SERIAL, PARALLEL, BUS 1394, MODEM, NETWORK STACK, CLOCK, KEYBOARD, POINTER, GRAPHIC, PICTURE, AUDIO, VIDEO, SERVICE, DISPLAY, SCTV, SCVCR, SCAUX, POWER, BACKUP, MLOAD, TUNER 및 SMARTCARD
본 발명은 애플리케이션을 편집하는 에디터와, 리시버/디코더의 기능을 시뮬레이션하는 시뮬레이터와, 에디터의 출력과 시뮬레이터의 출력을 표시하는 디스플레이를 포함하는 워크스테이션도 제공한다.
워크스테이션의 시뮬레이터는 에디터에 의해 편집된 애플리케이션을 실행할 수 있다. 시뮬레이터의 출력은 디스플레이의 윈도우에 표시될 수 있다. 애플리케이션에 데이터를 입력하는 입력 디바이스는 디스플레이의 윈도우에서 시뮬레이션될 수 있다.
본 발명의 방법적 측면에 있어서, 리시버/디코더를 위한 애플리케이션을 테스트하는 방법이 제공되며, 이 방법은 리시버/디코더의 기능을 시뮬레이션하는 단계를 포함한다.
본 발명의 방법은 애플리케이션을 실행하는 단계를 더 포함할 수 있다. 애플리케이션이 제 1 프로세스에서 실행될 수 있고 리시버/디코더의 기능이 제 2 프로세스에서 시뮬레이션 될 수 있다. 제 1 및 제 2 프로세스는 서로 독립적일 수 있다. 제 1 및 제 2 프로세스는 동일한 프로세서에서 실행될 수 있다. 분할된 메모리는 제 1 프로세스와 제 2 프로세스사이에서 데이터를 전달하는데 사용될 수 있다.
본 발명의 방법에 있어서, 리시버/디코더의 기능은 소프트웨어로 적어도 부분적으로 시뮬레이션될 수 있다. 리시버/디코더의 기능은 리시버/디코더내의 하드웨어에 해당하는 하드웨어를 사용하여 시뮬레이션될 수 있다.
상술한 방법은 리시버/디코더내의 하나의 하드웨어에 의해 발생된 데이터를 묘사하기 위해 시뮬레이션 파일을 사용하는 단계를 포함할 수 있다.
상술한 방법은 리시버/디코더의 출력을 시뮬레이션하는, 스크린에 표시하기 위한, 출력을 발생하는 단계도 포함할 수 있다.
상술한 방법은 리시버/디코더에 의해 수신할 입력 데이터로서의 묘사 데이터를 수신하는 단계도 포함할 수 있다.
본 발명의 방법적 측면에 있어서, 애플리케이션을 편집 및 테스트하는 방법으로서, 애플리케이션을 편집하는 단계를 포함하고 애플리케이션을 테스트하는 상술한 방법 모두를 더 포함하는 방법이 제공될 수 있다.
편집 방법은 스크린상에 표시하기 위한 출력을 발생할 수 있으며, 테스트 방법은 동일 스크린상에 표시하기 위한 출력을 발생할 수 있다. 편집 방법과 테스트 방법은 동일한 프로세서에서 실행될 수 있다. 테스트 방법은 편집 방법에 의해 편집된 애플리케이션을 테스트할 수 있다.
본 발명은 상술한 방법 모두를 실행하는 프로그램이 저장된 컴퓨터 판독가능 매체와, 상술한 모든 방법을 실행하는 프로그램을 포함하는 컴퓨터 프로그램 제품도 제공한다.
본 발명은 첨부된 도면에 도시되고 첨부 도면을 참조하여 기술된 바와 같은 방법 및 장치도 제공한다.
하나의 측면의 특징은 다른 측면에 적용될 수 있으며, 유사하게, 방법적 특징이 장치적 측면에 적용될 수 있으며 반대의 경우도 마찬가지이다.
이제, 본 발명의 바람직한 특징이 첨부된 도면을 참조하여 예시로서만 기술될 것이다.
디지털 텔레비젼 시스템(1)의 개관이 도 1에 도시되어 있다. 본 발명은 압축된 디지털 신호를 전송하기 위해, 알려진 MPEG-2 압축 시스템을 사용하는 통상의 디지털 텔레비젼 시스템(2)을 포함한다. 보다 상세하게는, 방송 센터의 MPEG-2 압축기(3)는 디지털 신호 스트림(통상, 비디오 신호의 스트림)을 수신한다. 압축기 (3)는 링크(5)에 의해 멀티플렉서 및 스크램블러(4)와 연결된다.
멀티플렉서(4)는 다수의 더 입력 신호를 수신하고, 전송 스트림을 어셈블하고, 원격 통신 링크를 포함하는 다양한 형태를 수용할 수 있는 방송 센터의 송신기 (6)로 링크(7)를 통해 압축된 디지털 신호를 전송한다. 송신기(6)는 통신 위성 트랜스폰더(9)를 향하여 업링크(8)를 통해 전자기 신호를 전송하고, 이 전자기 신호는 통상 최종 사용자에 의해 소유 또는 대여되는 접시 형태의 지상 리시버(12)로 가공의 다운링크(10)를 통해 전기적으로 처리 및 방송된다. 지상 방송, 케이블 전송, 결합된 통신 위성/케이블 링크, 전화망 네트워크 등과 같은 데이터의 전송을 위한 다른 전송 채널이 물론 가능하다.
리시버(12)에 의해 수신된 신호는 최종 사용자에 의해 소유 또는 대여되며, 최종 사용자의 텔레비젼 세트(14)에 연결된 통합 리시버/디코더(13)로 전송된다. 리시버/디코더(13)는 압축된 MPEG-2 신호를 텔레비젼 세트(14)를 위한 텔레비젼 신호로 디코딩한다. 개별적인 리시버/디코더가 도 1에 도시되어 있지만, 리시버/디코더는 통합된 디지털 텔레비젼의 일부일 수 있다. 본 명세서에서 사용되는 것과 같이, 용어 "리시버/디코더"는 셋-탑 박스와 같은 개별적인 리시버/디코더와, 통합된 리시버/디코더를 갖는 텔레비젼을 포함한다.
다중 채널 시스템에 있어서, 멀티플렉서(4)는 다수의 병렬 소스로부터 수신된 오디오 및 비디오 정보를 처리하고, 해당 채널 수에 따라 정보를 방송하도록 송신기(6)와 상호작용한다. 시청각 정보에 더하여, 메시지 또는 애플리케이션 또는 어떤 다른 종류의 디지털 데이터가, 전송된 디지털 사운드 및 비디오 정보와 점철된 이들 채널의 일부 또는 모두에 도입될 수 있다.
조건부 액세스 시스템(15)은 멀티플렉서(4)와 리시버/디코더(13)에 연결되며, 부분적으로 방송 센터에 부분적으로 디코더에 위치된다. 이것은 최종 사용자가 하나 또는 그 이상의 방송 공급자로부터의 디지털 텔레비젼 방송을 액세스할 수 있게 한다. 상업적 제공(즉, 방송 공급자에 의해 판매되는 하나 또는 몇 개의 텔레비젼 프로그램)과 관련있는 메시지를 판독할 수 있는 스마트카드가 리시버/디코더(1 3)에 삽입될 수 있다. 디코더(13)와 스마트카드를 사용하여, 최종 사용자는 서브스크립션 모드 또는 페이-퍼-뷰 모드중 하나로 상업적 제공을 얻을 수 있다.
상술한 바와 같이, 시스템에 의해 전송된 프로그램은 멀티플렉서(4)에서 스크램블되며, 주어진 전송에 적용되는 조건 및 암호화 키는 액세스 제어 시스템(15 )에 의해 결정된다. 이와 같은 방식에 있어서의 스크램블드 데이터의 전송은 페이 TV 시스템의 분야에서 잘 알려져 있다. 통상, 스크램블드 데이터는 데이터를 디스크램블하는 제어 워드와 함께 전송되며, 제어 워드 그 자체는 소위 이용키(Exploi tion Key)에 의해 암호화되고 암호화된 형태로 전송된다.
스크램블드 데이터와 암호화된 제어 워드는, 암호화된 제어 워드를 해독하고 전송된 데이터를 디스크램블하기 위해 디코더에 삽입된 스마트 카드에 저장된 이용 키와 동등한 액세스를 갖는 디코더(13)에 의해 수신된다. 납입을 끝낸 가입자는 전송을 보기 위하여, 암호화된 제어 워드를 해독하는데 필요한 이용 키를, 예를 들면 , 방송 월정 EMM(권한 부여 관리 메시지)에서 수신할 것이다.
멀티플렉서(4)및 리시버/디코더(13)에 연결되며, 부분적으로 방송 센터에 부분적으로 디코더에 연결된 대화식 시스템(16)은 최종 사용자가 모뎀드 백 채널(17)을 통해 다양한 애플리케이션과 상호작용할 수 있게 한다. 모뎀드 백 채널은 조건부 액세스 시스템(15)에 사용되는 통신에 사용될 수 있다. 대화식 시스템은 예를 들어 시청자가 특정 사건을 시청하고, 애플리케이션 등을 다운로드하기 위한 허가를 요구하도록 전송 센터와 직접적으로 통신하는데 사용될 수 있다.
도 2는 본 발명의 디지털 텔레비젼 시스템(1)의 대화식 텔레비젼 시스템(16)의 일반적인 구성을 나타낸다.
예를 들면, 대화식 시스템(16)은 최종 사용자가 온스크린 카탈로그로부터 아이템을 구입하고, 요구가 있는 즉시 지역 뉴스 및 기상도를 보고, 텔레비젼 세트를 통해 게임을 할 수 있게 한다.
대화식 시스템(4000)은 개관에 있어서 다음 4개의 주요 요소를 포함한다.
* 방송 공급자의 애플리케이션 작성, 개발, 디버그 및 테스트를 가능케 하는, 방송 센터 또는 다른 곳의, 저작 툴(4004);
* 최종 사용자에게 방송되어야 할 MPEG-2 전송 스트림(통상, 그것의 전용 부분)으로의 삽입을 위한 멀티플렉서 및 스크램블러(4)로의 전송에 대한 애플리케이션 및 데이터를 방송 공급자가 준비, 입증 및 포맷할 수 있게 하는 저작 툴(4004)에 연결된, 방송 센터의, 애플리케이션 및 데이터 서버(4006);
* 최종 사용자가 실행을 위한 디코더(13)의 작업 메모리로 애플리케이션을 수신, 입증, 압축해제 및 로딩할 수 있게 하는, 최종 사용자에 의해 소유 또는 대여되는 리시버/디코더(13)에 설치된 실행가능한 코드인 런타임 엔진(RTE:4008)을 포함하는 가상 기계; 엔진(4008)은 상주, 일반 목적 애플리케이션을 실행한다. 엔진(4008)은 하드웨어 및 운영 체제와 독립적이다.
* 서버(4006)를 지시하는 신호가 최종 사용자의 요구에 데이터 및 애플리케이션을 MPEG-2 전송 스트림으로 삽입할 수 있게 하는 리시버/디코더(13)와 애플리케이션 및 데이터 서버(4006)사이의 모뎀드 백 채널(17).
대화식 텔레비젼 시스템은 그 내에 포함된, 리시버/디코더 및 다양한 디바이스의 기능을 제어하는 "애플리케이션"을 사용하여 동작한다. 애플리케이션은 "리소스 파일"로서 엔진(4008)에서 대표된다. "모듈"은 일련의 리소스 파일 및 데이터이다. 리시버/디코더의 "메모리 볼륨"은 모듈에 대한 저장 공간이다. 모듈은 MPEG-2 전송 스트림에서 리시버/디코더(13)로 다운로드될 수 있다.
도 3을 참조하여, 이제 리시버/디코더(13) 또는 셋-탑 박스의 요소가 설명될 것이다. 이 도면에 나타낸 요소는 기능적 블럭의 관점에서 설명될 것이다.
디코더(13)는 관련 메모리 요소를 포함하며 직렬 인터페이스(21)로부터의 입력 데이터를 수신하는 중앙 처리 장치(20)와, 병렬 인터페이스(22)와, (도 1의 모뎀 백 채널(17)에 연결된) 모뎀(23)과, 디코더의 전방 패널상의 스위치 컨택(24)을 포함한다.
디코더는 제어 장치(26)를 통해 적외선 리모콘(25)으로부터의 입력을 수신하는데 부가적으로 적용되며, 뱅크 또는 서브스크립션 스마트카드(29,30)를 각각 판독하는 2개의 스마트카드 판독기(27,28)를 갖는다. 서브스크립션 스마트카드 판독기(28)는 암호화된 방송 신호가 디스크램블되도록 디멀티플렉서/디스크램블러(30)에, 필요한 제어 워드를 공급하기 위해, 삽입된 서브스크립션 카드(30) 및 부가적 액세스 장치(29)와 맞물린다. 디코더는 장치(30)에 의해 필터링 및 디멀티플렉스되기 전에 통신 위성 전송을 수신 및 복조하기 위하여 종래의 튜너(31) 및 복조기 (32)도 포함한다.
디코더에서의 데이터 처리는 일반적으로 중앙 처리 장치(20)에 의해 이루어진다. 도 4는 리시버/디코더의 중앙 처리 장치(20)의 소프트웨어 구성을 나타낸다. 도 4를 참조하면, 소프트웨어 구성은 하나 또는 그 이상의 애플리케이션(4056)을 실행하는 런 타임 엔진(4008), 디바이스 관리자(4068) 및 다수의 디바이스(4062) 및 디바이스 드라이버(4066)를 포함한다.
본 명세서에서 사용되는 바와 같이, 애플리케이션은 바람직하게 리시버/디코더(13)의 하이레벨 기능을 제어하는 하나의 컴퓨터 코드이다. 예를 들면, 최종 사용자가 리모콘(25)의 초점을 텔레비젼 세트(14)의 스크린에 나타난 버튼 물체에 놓고 유효 키를 누를 때, 버튼과 관련된 명령 시퀀스가 실행된다.
대화식 애플리케이션은 메뉴를 제안하고, 최종 사용자의 요구에 명령을 실행하고, 애플리케이션의 목적과 관련된 데이터를 제공한다. 애플리케이션은 상주 애플리케이션, 즉 리시버/디코더(13)의 ROM (또는 FLASH 또는 그 밖의 비휘발성 메모리)에 저장되거나, 리시버/디코더(13)의 RAM 또는 FLASH 메모리에 방송 및 다운로드될 수 있다.
애플리케이션은 리시버/디코더(13)의 메모리 위치에 저장되며, 리소스 파일로서 표현된다. 리소스 파일은, 상기 특허 명세서에 보다 상세히 기술된 바와 같이, 그래픽 물체 설명 장치 파일, 변수 블럭 장치 파일, 명령 시퀀스 파일, 애플리케이션 파일 및 데이터 파일을 포함할 수 있다.
리시버/디코더는 RAM 볼륨, FLASH 볼륨 및 ROM 볼륨으로 분할된 메모리를 포함하지만, 이러한 물리적 구성은 논리적 구성과 구별된다. 메모리는 다양한 인터페이스와 관련된 메모리 볼륨으로 더 분할될 수 있다. 하나의 관점에서, 메모리는 하드웨어의 일부로서 간주될 수 있으며, 다른 관점에서, 메모리는 하드웨어와 분리하여 나타낸 전체 시스템을 지원 및 포함하는 것으로서 간주될 수 있다.
중앙 처리 장치(20)는 가상 기계(4007)의 일부를 형성하는 런 타임 엔진(40 08)의 중앙으로서 간주될 수 있다. 이것은 한편("하이 레벨")으로는 애플리케이션에, 다른 한편("로우 레벨")으로는 상술한 바와 같은 다양한 포트(즉, 예를 들면, 직렬 인터페이스(21), 병렬 인터페이스(22), 모뎀(23) 및 제어 장치(26))를 포함하는 리시버/디코더 하드웨어(4061)에, 하기에 설명된 다양한 중간 논리 장치를 통해 결합된다.
도 4를 참조하면, 다양한 애플리케이션(4057)이 가상 기계(4007)에 결합되며보다 일반적으로 사용된 애플리케이션의 얼마간이 (4057)에 나타낸 것과 같이 시스템에 다소 영구적으로 상주할 수 있는 반면, 나머지는 예를 들어 MPEG 데이터 스트림 또는 다른 포트로부터, 요구되는 만큼 시스템으로 다운로드될 것이다.
가상 기계(4007)는 런 타임 엔진(4008)에 더하여, 툴 박스(4058)를 포함하는 몇 개의 상주 라이브러리 함수(4006)를 포함한다. 라이브러리는 엔진(4008)에 의해 사용된 C 언어로 기타 함수를 포함한다. 이것은 데이터 구성의 압축, 확장 또는 비교, 라인 드로잉 등과 같은 데이터 조작을 포함한다. 라이브러리(4006)는 하드웨어 및 소프트웨어 버젼 번호 및 사용 가능한 RAM 공간과 같은 리시버/디코더(13)의 펌웨어에 대한 정보와 새로운 디바이스(4062)를 다운로드 할 때 사용된 함수를 포함한다. 함수는 FLASH 또는 RAM 메모리에 저장되는 라이브러리로 다운로드될 수 있다.
런타임 엔진(4008)은 포트 또는 인터페이스에 교대로 결합되는 디바이스 드라이버(4060)에 결합되는 일련의 디바이스(4062)에 결합되는 디바이스 관리자(406 8)에 결합된다. 넓은 용어에 있어서, 디바이스 드라이버는 논리적 인터페이스를 정의하는 것으로서 간주될 수 있어서 2개의 상이한 디바이스 드라이버가 공통의 물리적 포트에 결합될 수 있다. 디바이스는 일반적으로 하나 이상의 디바이스 드라이버에 결합될 것이며, 디바이스가 단일 디바이스 드라이버에 결합되면, 디바이스는 통신하는데 요구되는 전체 기능성을 통합하도록 설계되어 별개의 디바이스 드라이버가 필요 없다. 정해진 디바이스가 그 자체사이에서 통신할 수 있다.
하기에 기술되는 것과 같이, 일련의 사건 큐로 통과되는 변수, 버퍼 및 사건에 의한, 디바이스(4064)에서 런타임 엔진으로의 3가지 형태의 통신이 있다.
리시버/디코더(13)의 각 기능은 리시버/디코더(13)의 소프트웨어 구조의 디바이스(4062)로서 표현된다. 디바이스는 지역 디바이스 또는 원격 디바이스일 수 있다. 지역 디바이스(4064)는 스마트카드, SCART 커넥터 신호, 모뎀, 직렬 및 병렬 인터페이스, MPEG 비디오 및 사운드 플레이어 및 MPEG 섹션 및 테이블 추출기를 포함한다. 원격 위치에서 실행되는 원격 디바이스(4066)는 포트 및 프로시저가 리시버/디코더 제조업자에 의해 제공 및 설계되는 디바이스 및 디바이스 드라이버에 의해서라기 보다는 시스템 허가 또는 설계자에 의해 정의되어야 한다는 점에서 지역 디바이스와 다르다.
런 타임 엔진(4008)은 마이크로 프로세서 및 공통 애플리케이션 프로그래밍 인터페이스의 제어하에서 실행된다. 그것이 리시버/디코더(13)마다 설치되어 모든 리시버/디코더(13)가 애플리케이션 관점에서 식별된다.
엔진(4008)은 리시버/디코더(13)에서 애플리케이션(4056)을 실행한다. 이것은 대화식 애플리케이션(4056)을 실행하고, 리시버/디코더(13)의 외부로부터 사건을 수신하고, 그래픽 및 텍스트를 표시하고, 서비스에 대한 디바이스를 호출하고, 특정 계산을 위한 엔진(4008)에 연결된 라이브러리(4006)의 함수를 사용한다.
런 타임 엔진(4008)은 각 리시버/디코더(13)에 설치된 실행가능한 코드이며, 애플리케이션을 해석 및 실행하는 해석기를 포함한다. 엔진(4008)은 (MS-DOS와 같은) 단일 작업 운영 체제를 포함하는 어떠한 운영 체제에도 적용 가능하다. 엔진( 4008)은 (다양한 동작을 실행하기 위하여, 키 프레스와 같은 다양한 사건을 수용하는) 프로세스 시퀀서 장치를 기반으로 하며, 다른 하드웨어 인터페이스로부터의 사건 큐를 관리하기 위하여 그 자체의 스케쥴러를 포함한다. 이것은 그래픽과 텍스트의 표시도 처리한다. 프로세스 시퀀서 장치는 일련의 동작 그룹을 포함한다. 사건의 특성에 따라 각 사건은 현재의 동작 그룹에서 다른 동작 그룹으로 이동하고, 새로운 동작 그룹의 동작을 실행하도록 프로세스 시퀀서 장치에 시킨다.
엔진(4008)은 애플리케이션(4056)을 리시버/디코더 메모리에 로드 및 다운로드하기 위하여 코드 로더를 포함한다. 최적의 사용을 위하여 필요한 코드만 RAM 또는 FLASH 메모리에 로딩된다. 다운로드 데이터는 애플리케이션(4056)의 어떠한 수정 또는 허가되지 않은 어떠한 애플리케이션의 실행도 방지하기 위하여 입증자 메커니즘에 의해 입증된다. 엔진(4008)은 압축 해제기를 더 포함한다. 애플리케이션 코드(중간 코드의 형태)는 MPEG 스트림으로부터 또는 내장 리시버/디코더 모드를 통해 공간을 절약하고 고속으로 다운로드하기 위하여 압축되기 때문에, 코드는 RAM에 로딩되기 전에 압축 해제되어야 한다. 엔진(4008)은 다양한 변수 값을 업데이트하며 상태 변화를 판단하기 위하여 애플리케이션 코드를 해석하는 해석기와, 에러 체커도 포함한다.
어떠한 디바이스(4062)의 서비스를 사용하기 전에 (애플리케이션 명령 시퀀스와 같은) 프로그램이 "클라이언트", 즉 디바이스(4062) 또는 디바이스 관리자 (4068)로의 논리적 액세스 웨이로서 선언되어야 한다. 관리자는 디바이스의 모든 액세스에 참조되는 클라이언트 번호를 클라이언트에 제공한다. 디바이스(4062)는 다수의 클라이언트를 가질 수 있으며, 각 디바이스(4062)에 대한 클라이언트의 수는 디바이스(4062)의 타입에 따라 지정된다. 클라이언트는 프로시저 "디바이스: 오픈 채널"에 의해 디바이스(4062)에 도입된다. 이 프로시저는 클라이언트 번호를 클라이언트에 할당한다. 프로시저 "디바이스: 클로즈 채널"에 의해 디바이스 관리자 (4068) 클라이언트 리스트에서 클라이언트를 얻을 수 있다.
디바이스 관리자(4068)에 의해 제공되는 디바이스(4062)로의 액세스는 동기식 또는 비동기식일 수 있다. 동기식 액세스에 대하여, 프로시저 "디바이스:호출"이 사용된다. 이것은 즉시 사용 가능한 데이터를 액세스하는 수단 또는 원하는 응답에 대한 대기를 수반하지 않는 기능성이다. 비동기식 액세스에 대하여, 프로시저 "디바이스:I/O"가 사용된다. 이것은 응답에 대한 대기, 예를 들면, 멀티플렉서를 찾기 위한 튜너 주파수 스캐닝 또는 MPEG 스트림으로부터 테이블을 되찾는것을 수반하는 데이터를 액세스하는 수단이다. 요구되는 결과가 사용가능할 때, 사건은 도착을 알리기 위해 엔진의 큐에 둔다. 더 프로시저 "디바이스:사건"은 예상치 못한 사건을 관리하는 수단을 제공한다.
런 타임 엔진의 메인 루프는 다양한 프로세스 시퀀서 장치에 결합되며, 메인 루프가 적절한 사건과 마주칠 때, 제어가 프로세스 시퀀서 장치중 하나로 일시적으로 전송된다.
상술한 바와 같이, 애플리케이션이 설계, 작성, 테스트 및 디버그되도록 저작 툴(4004)이 제공된다. 저작 툴은 윈도우 NT, 윈도우 95 또는 윈도우 98을 실행하는 개인 컴퓨터(PC)와 같은 워크스테이션(WS) 또는 UNIX 머신, 또는 그 밖의 운영 체제를 실행하는 워크스테이션에서 실행되며, 애플리케이션을 이루는 리소스 파일 및 데이터 파일을 작성 및 편집하는데 사용된다. 도 5를 참조하면, 워크스테이션(200)은 스크린(210), 컴퓨터(212), 키보드(214) 및 마우스(216)를 포함한다. 컴퓨터(212)는 프로세서(218), 메모리(220), 하드 디스크(222), 입/출력(I/O) 포트( 224)뿐만 아니라 컴퓨터에서 진부한 그 밖의 하드웨어 및 소프트웨어플 포함한다.
워크스테이션(200)에서 실행하는 저작 툴(4004)의 개관이 도 6에 도시되어 있다. 저작 툴(4004)은 애플리케이션을 이루는 다양한 파일을 작성 및 편집하는 에디터(410)와, 에디터(410)에 의하여 사용되는 현재 파일을 저장하는 라이브러리 (412)와, 에디터(410)에 의해 발생된 파일을 도 4의 가상 기계(4007)와 같은, 가상 기계에 의해 이해될 수 있는 중간 언어로 컴파일하는 컴파일러(414)와, 하기에 기술되는 바와 같이, 애플리케이션을 테스트 및 디버그하기 위하여 리시버/디코더의 반응을 시뮬레이션하는 시뮬레이터(100)를 포함한다.
애플리케이션은 가상 기계에 대해 설계된 중간 언어로 기록된 명령을 포함하는 리소스 파일과, 선택적으로, 애플리케이션에 의해 사용되어야 할 데이터를 포함하는 데이터 파일을 포함한다. 애플리케이션은 리소스 파일의 아래 유형중 하나 이상을 포함할 수 있다.
* 모듈 파일 - 애플리케이션의 진입점을 정의
* 패널 파일 - 스크린을 정의
* 클래스 파일 - 애플리케이션에서 사용되는 데이터 구성을 정의
* 스크립트 파일 - 애플리케이션의 반응을 정의
데이터 파일의 예가 다음과 같다.
* 아이콘 라이브러리 파일 - 이것은 80×64 픽셀의 최대 사이즈까지 4 비트/픽셀 비트맵의 컬렉션을 포함한다. 이 아이콘은 버튼 또는 장식으로서 패널에 의해 사용될 수 있다.
* 이미지 - 이 파일은 16칼러를 제공하는, 모든 사이즈가 4비트/픽셀을 갖는 단일 비트맵을 포함한다. 이 이미지 유형은 통상 패널의 백그라운드로서 사용된다.
* 칼러 테이블 - 이것은 모듈이 스크린상에 표시할 수 있는 칼러를 정의하는데 사용된다.
* 사용자 데이터 파일 - 이 파일은 애플리케이션에 의해 사용하도록 사용자에 의해 정의된다. 그것은 ASCII 텍스트 파일 또는 2진 데이터 파일이다.
사용에 있어서, 애플리케이션 개발자는 에디터(410)를 사용하여 자신의 애플리케이션에 대해 주문된 파일을 만들기 위하여, 라이브러리(412)에 저장되는 현재 파일을 사용한다. 편집되는 파일은 워크스테이션(210)에 표시되며 변경은 키보드( 214)와 마우스(216)를 사용하여 입력된다. 파일은 다양한 방식으로 표시될 수 있다. 예를 들면, 그래픽 파일이 스크린상에 그래픽으로서 표시될 수 있고, 리소스 파일에 대하여, 파일의 코드가 표시되거나, 코드의 전체 구성 또는 구조의 표현이 표시될 수 있다.
애플리케이션이 작성되면, 컴파일러(414)로써 가상 기계에 의해 이해될 수 있는 중간 언어로 변환된다.
애플리케이션을 테스트하기 위해, 리시버/디코더의 반응을 시뮬레이션하는 시뮬레이터(100)가 워크스테이션에 제공되어 애플리케이션이 실제 리시버/디코더로의 다운로드없이 워크스테이션(200)에서 테스트될 수 있다. 이것으로 애플리케이션이 즉시 테스트될 수 있으며, 리시버/디코더 및 관련 하드웨어를 제공할 필요가 없다.
도 7을 참조하면, 시뮬레이터(100)의 메인 모듈은 시뮬레이션된 가상 기계( 101), 시뮬레이션된 디바이스 관리자(102), 시뮬레이션된 WS 디바이스 모듈(104 ,106), 시뮬레이션된 비WS 디바이스 모듈(108,110), 시뮬레이션된 그래픽 라이브러리(112), (예를 들면, 디버깅하는데 사용될 수 있는 추적 메시지를 출력하는) 시뮬레이션된 추적 포트(114), (워크스테이션 스크린상의 리모콘 장치를 에뮬레이트하는) 시뮬레이션된 리모콘 모듈(116), (워크스테이션 스크린상에 이미지를 표시함으로써 텔레비젼을 에뮬레이트하는) 시뮬레이션된 TV 윈도우(118), (워크스테이션 스크린상에 추적 메시지를 표시하는) 시뮬레이션된 추적 뷰어(120), (디지털 디코더에서 발견되는 워크스테이션에 속하는 하나의 하드웨어인) WS 리소스(122), 및 (워크스테이션에서 발견되지 않는 하드웨어의 반응을 시뮬레이션하는 데이터를 포함하는) 시뮬레이션 파일(124,126)이다. 애플리케이션 스크립트(128)는 테스트할 애플리케이션 코드이다.
시뮬레이션된 가상 기계(101)는 애플리케이션 코드(128)를 로드 및 실행한다. 이것은 중간 언어로 된 애플리케이션 코드의 명령을 시뮬레이션된 디바이스 관리자(102) 및/또는 WS에 의해 이해될 수 있는 원시 명령으로 변환한다.
시뮬레이션된 디바이스 관리자(102)는 애플리케이션(128)에 대한 다른 주변 장치로의 액세스의 균등 모드를 보증한다. 이것은 다양한 시뮬레이션된 주변장치로/주변장치로부터 동기적 및 비동기적으로 데이터를 전송 및 수신하기 위하여 애플리케이션에 수단을 제공한다. 디바이스 관리자(102)는 가상 기계(101)에 제공되는 라이브러리 형태로 구현된다. 이것은 인터페이스 모듈과, 메모리 제어 모듈과, 디바이스로 명령 및 데이터를 전송하며 디바이스에 의해 전송된 데이터를 동기적으로 수신하는 (예를 들면, 프로세서간) 통신을 허용하는 시스템 모듈로 구성된다.
디바이스 모듈(104-110)은 리시버/디코더의 디바이스의 반응을 시뮬레이션한다. WS 디바이스 모듈(104,106)의 경우에, 디바이스에 의해 관리되는 하드웨어는 실제 리시버/디코더와 워크스테이션(200)에 존재한다. 그러한 디바이스의 예는 클럭, 직렬 포트, 병렬 포트, 모뎀 등이다. 하드웨어가 워크스테이션에 존재하기 때문에, 하나의 하드웨어의 반응을 시뮬레이션하기 보다는 실제 워크스테이션 하드웨어가 사용될 수 있다. 어떠한 하드웨어도 액세스하지 않는 디바이스도 이 범주안에 든다. 비WS 디바이스(108,110)는 워크스테이션에 존재하지 않는 하나의 하드웨어를 관리하는 디바이스를 시뮬레이션한다. 그러한 디바이스의 예는 튜너, 디먹스, 스마트카드 판독기, 플래시 메모리 등이다. 해당 하드웨어가 워크스테이션에 존재하지 않기 때문에, 하드웨어의 반응이 시뮬레이션되어야 한다. 시뮬레이션이 구현되는 방식은 디바이스의 반응에 의존하며, 일반적으로, 시뮬레이션 파일(124,126)과 같은 특정 파일에 저장된 데이터를 사용하여 구현된다.
윈도우 NT, 윈도우 95, 윈도우 98, 윈도우 2000, 솔라리스, LINUX, BeOS, 넥스트스텝 등과 같은 다른 유형의 환경이 사용될 수 있는 것이 이해되지만, UNIX 워크스테이션을 참조하여 이제 특정 시뮬레이터의 예가 설명될 것이다.
도 8을 참조하면, 시뮬레이션된 디바이스 관리자(102)는 라이브러리 형태로 시뮬레이션된 가상 기계를 인터페이스에 제공하는 디바이스 관리자 모듈(150)과, 다이나믹 메모리 리소스를 제어하는 메모리 제어 모듈(152)과, 디바이스로의 명령 및 데이터의 전송과 디바이스에 의해 전송된 데이터의 동기식 수용을 위한 프로세서간 통신(IPC) 모듈(154)을 포함한다. 이 데이터 교환을 위해 필요한 메모리 공간의 지역화는 시뮬레이션된 디바이스 관리자(102)에 의해 특정 영역에 구성되는 분할된 메모리(156)에 의해 제공된다. 메모리의 일부는 메모리 공간의 다이나믹 할당 및 해제를 위한 디바이스 관리자(102)에 의하여 구성될 수 있다.
분할된 메모리(156)의 역할은 UNIX 환경의 프로세스사이에서 정보의 교환을 허용할 뿐만 아니라, 디지털 디코더의 실제 메모리 공간을 표현하는 것이다. 메모리는,
* 메모리 제어를 위한 디바이스 관리자에 의해 사용되는 GMP(분할된 메모리 제어) 영역(158)
* 시뮬레이터에 의해 발생되는 공중 영역(160)
* 디바이스 관리자에 동적, 독립적으로 발생되는 가상 기계 관리 영역(162)
* 전용 분할이 할당되는, 가상 기계에 의해 발생되는 정적 영역(158)
의 4개의 주영역으로 분할된다.
버퍼로의 메모리의 분할과, 버퍼의 할당, 해제 및 잠금은 시뮬레이터의 제어하에서 이루어진다.
도 8을 참조하면, 시뮬레이터의 동작의 제 1 예가 도시되어 있다. VM 쓰레드(170), 디바이스 관리자 모듈(150), 메모리 제어 모듈(152) 및 프로세서간 통신 모듈(154)을 실행하는 메인 쓰레드가 작성된다. 시뮬레이션된 디바이스(180,182,184 )와의 다이얼로그는 비연결 모드의 UNIX 소켓(186,188)을 통해 이루어진다. 상술한 바와 같이, 디바이스와의 동기식 데이터 교환은 "디바이스:호출" 프로시저의 사용을 통해 이루어지는 반면, 비동기식 교환은 "디바이스:I/O" 프로시저의 사용을 통해 이루어진다. "디바이스:호출" 또는 "디바이스:I/O" 프로시저가 호출될 때, 가상 기계(101)는 데이터의 교환을 위한 분할된 메모리(156)에 할당된 데이터 버퍼의 어드레스를 시뮬레이션된 디바이스 관리자(102)로 전송한다. 디바이스 관리자(102)는 어드레스의 제어를 수용하며, 이것이 분할된 메모리의 외부에 있으면, 디바이스 관리자는 분할된 메모리의 공간을 할당하고 필요한 데이터를 이 공간에 복사한다. 디바이스 관리자는 적절한 시뮬레이션된 장치로 가는 사건 큐에 명령 메시지를 둔다.
시뮬레이션된 디바이스(180,182,184)는 시뮬레이션된 가상 기계(100)의 프로세스와 완전히 독립적인 프로세스에서 실행한다. 디바이스 프로세스는 디바이스의 제 1 오프닝에서 시작되며, 마지막 클라이언트의 클로징에서 파괴된다. 가상 기계는 데이터를 디바이스의 전용 메모리 공간을 사용하거나 분할된 메모리를 통해 디바이스로 전송한다. 디바이스는 데이터를 디바이스 관리자에 의해 할당된 메모리를 통해서만 가상 기계로 전송할 수 있다. 동기식 사건뿐 만 아니라 수신되는 모든 명령 메시지, 또는 디바이스의 응답은 2개의 소켓을 사용한다. 소켓(186)이 가상 기계와의 동기식 통신에 전용되는 반면, 소켓(188)은 디바이스의 비동기식 응답에 전용된다.
시뮬레이션된 디바이스(180,182,184)는 디바이스가 각각이 프로시저와 관련된 명령의 그룹으로서 고려되도록 하는 프로시저의 라이브러리로 구성된다. 디바이스는 수신된 명령 메시지를 디코딩하고 관련 프로시저를 호출한다. 프로시저는 실제 DSTB의 하드웨어와 등등한 워크스테이션의 하드웨어 또는 실제 DSTB의 동작을 시뮬레이션하는 데이터를 포함하는 시뮬레이션 파일을 액세스한다. 하드웨어로부터의 응답, 또는 시뮬레이션 파일의 데이터는 분할된 메모리를 통해 가상 기계로 되돌아 간다.
디바이스로부터 발생된 사건의 비동기식 수신의 시뮬레이션을 얻기 위하여, 비동기식 수용 쓰레드(쓰레드 IO:172)가 메인 쓰레드에서 작성된다. 이 쓰레드의 역할은 명령에 응답하여 다양한 시뮬레이션된 디바이스에 의해 전송된 사건 및 데이터를 수신하는 것이다. 수신된 사건은 도착 순서대로 리스트에 보유되며, 가상 기계에 의해 제공된 프로시저의 제어하에서 가상 기계(101)로 전송된다.
도 9a-b는 시뮬레이터의 소프트웨어 레이아웃을 나타낸다. 가상 기계(101)는 디바이스 관리자(102)와 상호작용한다. 디바이스 관리자(102)에서 다양한 디바이스 (190-197)로의 명령 전송은 프로시저 "디바이스 호출"(301), "디바이스 I/O"(302) 및 "디바이스 사건"(303), 소켓 전송 프로토콜(304), 통신 관리자(305), 다중 클라이언트 관리자(306) 및 디스패치 디바이스 명령 관리자(307)를 통해 발생한다. 메모리 풀 관리자(310)는 공유 메모리(312)를 관리하며, 구성 리소스(313), 클라이언트 리소스(314), 디바이스 리소스(315), FIFO(선입선출) 리소스(316) 및 공중/전용 할당기(317)에 대한 공유 메모리의 공간을 할당한다. 상술한 바와 같이, 공유 메모리는 데이터가 메인 쓰레드와 디바이스 사이에서 전송되게 한다. 사건 관리자 (320)는 디바이스(190-197)에서 발생한 비동기식 사건을 처리한다.
다른 바람직한 실시예에 있어서, 디바이스 시뮬레이터는 윈도우 NT 환경에서 동작한다. 이 실시예에 있어서, 디바이스는 상술한 UNIX 실시예에서와 같은 분리 프로그램으로서기 보다는 동적 링크 라이브러리로서 구현된다. NT 환경에서, IPC 모듈은 없다. 두 가지 구현에 있어서, 명령 관리자는 애플리케이션에서 시뮬레이션된 디바이스로의 사건 전송을 관리하며, 사건 관리자는 시뮬레이션된 디바이스에서 애플리케이션으로의 사건 전송을 책임진다.
도 10을 참조하여, 이제 시뮬레이터 동작의 제 2 예가 제공된다. 동작은 어떠한 점에서 제 1 예의 동작과 유사하다. 그러나, 제 1 예와 비교되는 차이점은 가상 기계(450)와 시뮬레이션된 디바이스(451,452)가 단일 프로세스(452)에서 실행된다는 것이다. 단일 프로세스(453)는, 예를 들면, UNIX 프로세스일 수 있다. 단일 프로세스(453) 이내에, 시뮬레이션된 디바이스 관리자(455) 및 시뮬레이터 구성 모듈(456)과 함께 가상 기계 쓰레드(450)를 실행하는 시스템 쓰레드(454)가 작성된다.
시뮬레이션된 디바이스(디바이스 X:451)와의 다이얼로그는 제 1 라이브러리 (459)에 포함된 디바이스 X 함수를 (458)에서 호출함으로써 가상 기계(450)에서 초기화된다. 디바이스 X 함수는 디바이스 X(451)를 시뮬레이션하기 위해 쓰레드(457)에 대한 (460)에서 요구를 발생한다. 유사한 방식으로, 시뮬레이션된 디바이스(디바이스 Y:452)와의 다이얼로그는 제 2 라이브러리(462)에 포함된 디바이스 Y 함수를 (461)에서 호출함으로써 초기화된다. 디바이스 Y 함수는 디바이스 Y(452)를 시뮬레이션하기 위하여 쓰레드(464)에 대한 (463)에서 요구가 발생된다.
디바이스 함수의 호출은, 예를 들면, 가상 기계 쓰레드에서 아래와 같이 구현될 수 있다.
Thread_vm
} ...
Device_Call()
Get address of the Funtion F of device D
Call the function F
Function F()
Run function code
End of function F
End of Device_Call
...
}
디바이스(451 및 452)의 시뮬레이션은 사건 관리자(467)로 (465 및 466)에서 전송되는, 가상 기계(450)에 대한 사건을 발생한다.
사건 관리자(467)는,
* 시스템 쓰레드(454)의 가상 기계(450)가 디바이스에 의해 발생된 사건을 수신,
* 디바이스 쓰레드(457 및 464)가 가상 기계(450)에 대한 사건을 전송, 및
* 시뮬레이터가 리스트에 보유되는 사건의 삭제를 관리하게 하는 모듈이다.
가상 기계(450)에 의해 처리를 대기하는 사건은 체인드 리스트에서 관리, 즉 리스트의 각 사건은 다음 사건에서 포인터를 포함한다. 리스트의 시작은 설정된 포인터에 의해 식별된다.
사건은 (468)의 가상 기계(450)로 제출된다. 구성에 따라, 이것은 가상 기계 (450)를 인터럽트하고 사건을 포스트하는 사건 관리자(467), 또는 사건 관리자(46 7)의 사건을 얻는 가상 기계(450) 자체에 의해 인식될 수 있다.
디바이스 X 및 Y 함수는 관련 디바이스에 각각 고유한 라이브러리(459 및 462)에 포함된다. 함수의 호출은 함수 테이블에 의해 이루어진다.
디바이스의 시뮬레이션은 특정 디바이스의 필요에 마추어질 수 있다. 예를 들면, 특정 디바이스를 시뮬레이션하기 위하여 다수의 쓰레드가 요구될 수 있다. 대부분의 경우에, 디바이스는 백그라운드 작업으로서 다른 시뮬레이션된 함수로부터 수신된 요구를 처리하는 하나의 쓰레드를 사용하여 시뮬레이션된다.
시뮬레이터(100)의 동작을 도시하기 위하여, 텔레비젼 스크린상의 표시를 위한 이미지가 어떻게 실제 DSTB에서 발생되는지의 예가 도 11에 나타나 있다. 이미지는 백그라운드층(350), 비디오층(352), 정지화상층(354), 그래픽층(356) 및 포인터층(358)의 5개 층으로 분할된다. 포인터층은 정지화상층 등에 중복되는 그래픽층에 중복된다. 시청자가 최상층만 보다는 모든 층의 혼합을 보기 위하여, 투명성 인자가 각 층에 할당된다. 층은 투명성 인자가 0일 때 불투명하며, 투명성 인자가 1일 때 투명하다. 대부분의 경우에, 투명성 인자는 층의 각 픽셀에 할당된다. 백그라운드층(뒤에 층이 없기 때문에), 비디오가 플레이되는(층의 나머지가 투명한) 영역에 투명성 인자가 전역인 비디오층 및 포인터가 불투명하고 층의 나머지가 투명한 포인터층은 예외이다.
포인터, 그래픽 및 백그라운드층이 애플리케이션(360)에 의해 발생되지만, 비디오 및 정지화상층은 MPEG 디코더(362)를 통해 전송된 디지털 신호에 의해 발생된다. 다양한 층은 도 3의 그래픽 프로세서(36)의 일부인 믹서(364)에서 혼합된다. 믹서는 5개 층의 혼합을 실행하는 하드웨어 칩으로 구성된다. 언제든지, 애플리케이션은 (허용될 때) 각 층에 대한 투명성 인자를 바꿀 수 있다. 이것을 행하기 위하여, 비디오층에 대해, 애플리케이션은 VIDEO 디바이스 명령을 불러내며, 정지화상층에 대해, 애플리케이션은 PICTURE 디바이스 명령을 불러내며, 그래픽층에 대해, 애플리케이션은 GRAPHIC 라이브러리 함수를 호출한다. 혼합된 이미지는 사용자의 텔레비젼 세트(366)에 표시된다.
도 11에 나타낸 상황을 시뮬레이션하기 위하여, 애플리케이션과 상호작용하는 다양한 디바이스 및 관련 하드웨어는 워크스테이션의 소프트웨어 시뮬레이션으로 대치된다. 따라서, 유사하게, 다양한 이미지층을 혼합하는 소프트웨어 믹서가 제공된다. 혼합된 이미지는 별개의 텔레비젼 스크린보다는 워크스테이션의 스크린상에 표시된다. 이러한 방식에 있어서, 애플리케이션 설계자는 DSTB로의 애플리케이션의 다운로드 없이 애플리케이션의 동작을 테스트할 수 있다.
시뮬레이터(100)에 있어서, 상술한 혼합 기능은 LAYERS 라이브러리라 불리는저레벨 라이브러리를 사용하여 구현된다. 스크린의 직접 기록보다는 다양한 층의 혼합을 시뮬레이션하기 위하여, 각 모듈은 LAYERS 라이브러리를 호출한다. 스크린 컨텐츠를 수정하는 각 모듈은 변경할 영역의 위치, 사이즈, 컨텐츠 및 투명성 인자를 계산하고, 이 정보를 LAYERS 라이브러리에 제공한다. LAYERS 라이브러리는 각각 백그라운드, 비디오, 정지화상 및 그래픽층에 대한 4개 메모리 블럭을 관리한다. 매 번, 층의 영역이 수정되며, LAYERS 라이브러리는 그 밖의 층의 컨텐츠 및 투명성 인자를 계정에 두는 결과적 스크린 영역을 계산한다. 비디오 시퀀스를 표시할 때, 이 작업은 새로운 이미지(플레이될 파일에 따른 이미지 수/초)마다 반복된다. 층 영역을 혼합하는데 사용되는 알고리즘은 부드러운 비디오 플레이를 얻기 위하여 가능한한 더 최적화된다.
각 층은 각 픽셀에 일련의 값이 할당되는 픽셀 맵으로써 관리된다. 하나의 예에 있어서, 정지화상 및 그래픽층에 대하여, 각 픽셀은 32비트로 할당된다. 레드, 그린 및 블루 칼러 각각에 대하여 8 비트, 투명성 레벨에 대하여 6비트 및 2개의 예비 비트인 반면, 백그라운드층에 대하여 24비트가 사용된다. 시뮬레이션되어야 할 TV 표준에 따라, 이것은 PAL 표준에 대하여 720×576×4 = 1,658,880 바이트와 NTSC 표준에 대하여 720×480×4 = 1,382,400 바이트를 제공한다.
포인터층은 가장 상위 층이고 투명성 인자가 포인터에 적용되지 않기 때문에, 포인터층에 어떠한 혼합도 적용될 필요가 없다. 포인터 형상은 시스템 표준 메커니즘에 의해 관리될 수 있다.
실제 MPEG 디코더를 사용기 보다는 시뮬레이터에 있어서, 실제 MPEG 디코더의 데이터의 독특한 출력을 포함하는 파일이 제공된다. 이 파일은 실제 MPEG 디코더로부터 발생된 데이터를 저장하거나 시뮬레이션 파일을 사용함으로써 발생될 수 있다. 시뮬레이션 파일은 부제와 같은 정해진 특성을 갖기 위해 발생된 파일이다.
도 12는 시뮬레이션된 리시버/디코더에서 실행되는 애플리케이션이 어떻게 워크스테이션의 스크린상에 나타나는지의 일 예를 나타낸다. 도시된 예에 있어서, 애플리케이션이 비디오 디바이스의 테스트를 실행하고 있다. 워크스테이션 스크린상의 TV 윈도우는 실제 텔레비젼 스크린상에 보이는 것과 동일한 방식으로 애플리케이션의 출력을 표시한다. 도 12에 있어서, TV 윈도우는 전체 워크스테이션 스크린의 0.75%이다.
시뮬레이터에서 실행되는 애플리케이션의 다른 예가 도 13에 도시되어 있다. 이 예는 비디오층에 중복된 축구 선수의 이미지를 포함하는 그래픽층을 갖는 비디오층을 나타낸다. 그래픽층은 다수의 투명 픽셀을 갖기 때문에 비디오층이 축구 선수의 머리를 통해 보여진다.
이제, 윈도우 NT 및 UNIX 워크스테이션에서의 특정 디바이스의 시뮬레이션의 구현의 다른 예가 제공된다.
WS 디바이스
SERIAL
SERIAL 디바이스는 애플리케이션이 (예를 들면, RS232를 사용하여) 직렬 링크를 통해 모든 종류의 장비와 통신하게 한다. 이 디바이스는 UNIX/NT 시스템의 표준 API를 사용하여 시뮬레이션된다. 이것은 워크스테이션의 직렬 포트를 통한 통신을 허용한다.
PARALLEL
PARALLEL 디바이스는 애플리케이션이 (예를 들면, IEEE1284 표준을 사용하여) 병렬 링크를 통해 통신하게 한다. 이 디바이스는 UNIX/NT 시스템의 표준 API를 사용하여 시뮬레이션된다. 이것은 워크스테이션의 병렬 포트를 통한 통신을 허용한다.
BUS_1394
이 디바이스는 애플리케이션이 IEC 1883 표준을 사용하는 고성능 직렬 버스를 통해 모든 종류의 장비와 통신하게 한다. 이 디바이스는 1394 버스로의 액세스를 제공하는 확장 보드를 사용하여 시뮬레이션된다.
UNIMODEM
이 디바이스는 애플리케이션이 (예를 들면, HAYES 표준을 사용하는) 내부 또는 외부 모뎀을 제어하게 한다. 이 디바이스는 UNIX/NT 시스템의 표준 API를 사용하여 구현된다. 이것은 워크스테이션의 실제 직렬 포트를 통한 외부 모뎀 또는 (시스템에 의해 허용되면) 가상 직렬 포트를 통한 내부 모뎀의 제어를 허용한다.
NETWORK
이 디바이스는 애플리케이션이 네트워크 스택을 구성 및 사용하게 한다. TCP,UD P,IP,PPP 등의 다수의 프로토콜이 지원된다. 스택이 구성되면, 디바이스가 TCP 연결을 열고, UDP 데이터그램을 전송 및 수신하고, 멀티 캐스트 그룹에 가입하는 등을 하게 디바이스는 유사 BSD 소켓 인터페이스를 애플리케이션에 제공한다.
디바이스는 구성부 및 통신부의 2 부분으로 분할될 수 있다. 구성이 시스템 부트 시간에서만 발생할 수 있기 때문에 구성부는 UNIX/NT 시스템에서 구현될 수 없다. 따라서, 이 부분은 단지 시뮬레이션이다. 현재는, 구성 명령에 응답하여 NETWORK 디바이스가 코딩되지만, 이후에, "구성" 파일로 코딩될 것이다. 통신부는 UNIX/NT 시스템의 표준 API를 사용하여 구현된다. 이것은 BSD 소켓을 사용하여 다른 장치와의 통신을 허용한다.
CLOCK
이 디바이스는 애플리케이션이 실시간 클럭을 액세스하게 한다. 애플리케이션은 날짜 및 시간 정보와 프로그램 웨이크업 알람을 얻고 설정할 수 있다. 이 디바이스는 UNIX/NT 시스템의 표준 API를 사용하여 구현된다.
KEYBOARD
이 디바이스는 애플리케이션이 (사용가능하면) KEYBOARD 디바이스를 구성하고 키보드 및 리모콘 사건을 수신하게 한다. 이 디바이스는 UNIX/NT 시스템의 표준 API를 사용하여 구현된다. 리모콘 디바이스는 시스템 메시지를 KEYBOARD 디바이스로 전송하는 리모콘 소프트웨어 모듈을 사용하여 시뮬레이션된다. 동일한 방식(셋탑 박스를 위한 적외선 및 워크스테이션을 위한 케이블)으로 통신할 수 없지만, 디코더 및 워크스테이션의 KEYBOAD 디바이스는 유사하다.
POINTER
이 디바이스는 애플리케이션이 (가능하면) 포인터(마우스) 디바이스를 구성하고 포인터 사건(마우스 이동, 버튼 클릭 등)을 수신할 수 있게 한다. 디바이스는X 윈도우/윈도우 시스템의 표준 API를 사용하여 구현된다. POINTER 디바이스는 포인터가 상이한 형태를 수용할 수 있는 스크린의 영역을 한정한다. 이 영역은 포인터 스크린층에 속한다.
GRAPHIC
이 디바이스는 애플리케이션이 JPEG, MPEG, GIF 및 PNG와 같은 상이한 포맷으로 전승된 이미지를 압축 해제하게 한다. 애플리케이션은 일련의 메모리 버퍼의 압축된 이미지를 제공하고, 디바이스는 다른 일련의 버퍼의 압축 해제된 이미지를 반환한다. 이미지는 고정 또는 애니메이션 이미지일 수 있다. 일반적으로, 이미지 버퍼는 MLOAD 디바이스에 의해 로딩된 DVB 섹션의 산물이다. 이 디바이스는 어떤 하드웨어에도 액세스하지 않는다. 이것은 시스템 API를 필요로 하지 않는다.
이 디바이스로 압축 해제된 이미지를 표시하기 위하여, 애플리케이션은 GRAP HIC 라이브러리 함수를 사용한다. 이 라이브러리는 그래픽 스크린층의 컨텐츠만을 수정한다.
비WS 디바이스
PICTURE
이 디바이스는 GRAPHIC 디바이스와 같은 압축해제 서비스를 제공한다. 그러나, 이 디바이스로 압축 해제되는 이미지를 표시하기 위하여, 애플리케이션은 PICTURE 디바이스 그 자체를 사용한다. 디바이스는 백그라운드 및 MPEG 스크린층의 컨텐츠를 수정한다.
AUDIO
이 디바이스는 애플리케이션이 셋 탑 박스의 오디오 칩을 프로그램하게 한다. 디바이스는 오디오 스트림을 플레이하며, 오디오 파라미터(프롤로직, 스테레오 등)를 바꿀 수 있다. 디바이스는 UNIX/윈도우 시스템의 표준 API를 사용하여 구현된다. 시스템을 바꿈으로써, 오디오 파라미터는 대상 시스템에 의해 허용될 때만 사용 가능하다.
VIDEO
이 디바이스는 애플리케이션이 MPEG 압축해제 칩을 프로그램하게 한다. 디바이스는 비디오 이미지 위치, 사이즈, 확대 등을 변경할 수 있다. MPEG 칩이 SERVICE 디바이스에 의해 UNIX/NT 워크스테이션에서 시뮬레이션된 소프트웨어이기 때문에, VIDEO 디바이스의 유일한 작업은 새로운 비디오 이미지 파라미터에 대하여 SERVICE 디바이스에 알리는 것이다.
SERVICE
이 디바이스는 애플리케이션이 PID(프로그램 식별), 예를 들면, 비디오, 오디오, 부제 또는 텔레텍스 PID를 지정함으로써, 제공된 DVB 서비스(예를 들면, TV 채널)를 선택하게 한다. 디바이스는 프로세스(압축 해제) 및 플레이되기 위하여 오른쪽 하드웨어 칩으로 각 PID 데이터 흐름을 지시한다.
SERVICE 디바이스는 다음과 같이 UNIX/NT 워크스테이션에서 시뮬레이션된다. 서비스가 선택될 때, 디바이스는 비디오 PID를 제외하고 모든 서비스 PID를 무시한다. 이것은 디스크 파일명이 저장된 미리 구성된 테이블의 엔트리로서 이 후자의 PID를 사용한다. 그 파일은 지정된 멀티미디어 포맷으로부터의 데이터를 포함한다.서비스는 그 자체로써 이 데이터를 판독 및 플레이하거나, 작업해야 하는 시스템 표준 API를 사용한다. SERVICE 디바이스는 표시된 이미지에 대한 사이즈, 위치 및 파라미터 확대를 결정하기 위하여 VIDEO 디바이스에 의해 제공된 정보를 사용한다.
이 디바이스는 비디오 스크린층의 컨텐츠를 수정한다. 비디오 이미지(컨텐츠, 위치 및 사이즈)는 하나씩 계산되며, 각각의 결과적 이미지는 비디오 스크린층에 표시된다.
DISPLAY
이 디바이스는 애플리케이션이 단말기의 전방에서 디스플레이를 사용하게 한다. 애플리케이션은 현재 시간 또는 어떠한 사적 메시지의 표시를 요구할 수 있다. UNIX/NT 시스템의 이 디바이스 시뮬레이션은 요구되는 메시지를 표시하기 위하여 TV 윈도우의 상태 바를 사용한다.
SCTV,SCVCR,SCAUX
이 디바이스는 애플리케이션이 TV 세트의 SCART 출구, VCR 및 보조 장치를 각각 체크 및 구성하게 한다. SCTV, SCVCR 및 SCAUX 명령의 응답은 하드 코딩되거나, "구성" 파일로 코딩될 수 있다.
POWER
이 디바이스는 대기 모드에서 셋 탑 박스를 두며 파워 온에 대한 정보를 검색하는데 사용된다. 디바이스 시뮬레이션은 애플리케이션이 모든 디바이스를 정지하고 UNIX/윈도우 프로세스에서 빠져 나가게 한다.
BACKUP
이 디바이스는 애플리케이션이 EEPROM 및 플래시 메모리에 판독 및 기록하게 한다. 이 하드웨어 디바이스는 비휘발성 메모리에 정보를 저장하기 위해 사용된다.
EEPROM 및 플래시 메모리는 디스크 파일에 맵핑된 RAM(휘발성) 메모리의 블럭을 사용하여 UNIX/윈도우 시스템에서 시뮬레이션된다. 이것은 EEPROM 및 플래시를 시뮬레이션하는 안정된 메모리를 애플리케이션에 제공한다. 전원 장애의 경우, 애플리케이션은 안정된 메모리에 저장된 것처럼 디스크 파일에 저장된 데이터를 검색할 수 있다.
MLOAD
이 디바이스는 전송된 데이터 스트림으로부터 DVB 섹션을 다운로드하는데 사용된다. 애플리케이션은 로드할 섹셕을 포함하는 PID(프로그램 ID)를 제공하며, 로딩된 섹션 번호를 애플리케이션의 관심의 섹션만으로 만들기 위하여 필터링한다.
시뮬레이션 환경에 있어서, 디스크 파일은 미리 구성된 테이블의 각 PID에 할당된다. 주어진 PID로부터 섹션 로딩을 애플리케이션이 시작할 때, 디바이스는 관련 디스크 파일을 열고 그것을 순환적으로 판독한다. 매 번, 섹션은 파일로부터 로드되며, 디바이스는 그것에 표준 필터링을 가한다. 섹션이 필터를 통과하면, 이것은 애플리케이션으로 전송된다.
애플리케이션 관점에서, 디바이스 반응은 섹션이, 방송된 비트스트림으로부터 로드된것과 같다.
TUNER
TUNER 디바이스는 튜너 상태(AGC,BER 등)를 판독하고 튜닝 파라미터를 설정및 얻기 위하여 셋 탑 박스 튜너에 대한 정보를 요구하는데 사용된다. 이 디바이스는 주파수 스캐닝 동작을 허용한다.
시뮬레이션 환경에 있어서, 이 디바이스는 가상 안테나를 기술하는 파일로부터 그것의 데이터를 취한다. 가상 안테나로 검출될 수 있는 각 주파수는 그것의 특성(비율 심벌, 나선 코드, AGC, BER 등)으로 파일에 등록된다.
각각의 주파수에 대하여, MLOAD 디바이스(PID 데이터)의 시뮬레이션 파일에 대한 디렉토리가 등록된다. 따라서, 애플리케이션이 다른 주파수로 조정하면, 로드 가능한 PID의 세트는 실제 경우에서와 같이 변한다.
RCARD
이 디바이스는 (가능하면) 오른쪽 스마트 카드 판독기와 통신하는데 사용된다. 이 디바이스는 일반적으로 뱅크카드에 사용된다. 안정성을 위하며, 뱅크카드 코드 및 데이터가 보호되기 때문에, 이 디바이스는 시뮬레이션되지 않는다.
LCARD
이 디바이스는 왼쪽 스마트카드 판독기와 통신하는데 사용된다. 이 디바이스는 조건부 액세스 시스템 스마트카드에 사용된다. 안전성을 위하며 CA 카드 코드 및 데이터가 보호되기 때문에, 이 디바이스는 시뮬레이션되지 않는다.
CA(부가적 액세스)
이 디바이스는 애플리케이션이 부가적 액세스 시스템에 대한 정보를 얻고 이것을 제어하게 한다. 안정성을 위하며 CA 메커니즘이 보호되기 때문에, 이 디바이스는 시뮬레이션되지 않는다.
본 발명은 단지 예시로서만 상술되었으며, 세부의 수정이 본 발명의 범위내에서 이루어질 수 있음이 애해될 것이다.
명세서에 개시되거나 청구 범위 및 도면에 나타낸 특징들은 독립적으로 또는 적절한 조합으로 제공될 수 있다.
청구 범위의 참조 부호는 단지 예시로서 사용되고 청구 범위에 제한을 두고자 한 것은 아니다.

Claims (32)

  1. 리시버/디코더를 위한 애플리케이션을 테스트하기 위한 장치로서,
    상기 리시버/디코더의 기능을 시뮬레이션하는 수단을 포함하는 장치.
  2. 제 1항에 있어서, 상기 장치는 상기 애플리케이션을 실행하는 것을 특징으로 하는 장치.
  3. 제 1항 또는 2항에 있어서, 상기 장치는 제 1 프로세스에서 상기 애플리케이션을 실행하며, 제 2 프로세스에서 상기 리시버/디코더의 기능을 시뮬레이션하는 것을 특징으로 하는 장치.
  4. 제 3항에 있어서, 상기 제 1 및 제 2 프로세스는 서로 독립적인 것을 특징으로 하는 장치.
  5. 제 3항 또는 4항에 있어서, 상기 제 1 및 제 2 프로세스는 동일한 프로세서에서 실행되는 것을 특징으로 하는 장치.
  6. 제 3항 내지 5항중 어느 한 항에 있어서, 상기 제 1 프로세스와 상기 제 2 프로세스사이에서의 데이터 흐름을 가능케하는 분할된 메모리를 더 포함하는 것을특징으로 하는 장치.
  7. 제 1항 또는 2항에 있어서, 상기 장치는 제 1 쓰레드에서 상기 애플리케이션을 실행하며, 제 2 쓰레드에서 상기 리시버/디코더의 기능을 시뮬레이션하는 것을 특징으로 하는 장치.
  8. 제 7항에 있어서, 상기 제 1 및 제 2 쓰레드는 단일 프로세스의 일부를 형성하는 것을 특징으로 하는 장치.
  9. 제 7항 또는 8항에 있어서, 상기 제 1 및 제 2 쓰레드 사이에서 데이터 흐름을 가능케하는 분할된 메모리를 더 포함하는 것을 특징으로 하는 장치.
  10. 상기 청구항중 어느 한 항에 있어서, 상기 리시버/디코더의 기능은 소프트웨어로 적어도 부분적으로 시뮬레이션되는 것을 특징으로 하는 장치.
  11. 상기 청구항중 어느 한 항에 있어서, 상기 리시버/디코더의 기능은 리시버/디코더내의 하드웨어에 해당하는 하드웨어를 사용하여 시뮬레이션되는 것을 특징으로 하는 장치.
  12. 상기 청구항중 어느 한 항에 있어서, 리시버/디코더의 하나의 하드웨어에 의해 발생된 데이터를 묘사하는 데이터를 포함하는 파일을 저장하는 저장 수단을 포함하는 것을 특징으로 하는 장치.
  13. 상기 청구항중 어느 한 항에 있어서, 상기 장치는 리시버/디코더의 출력을 시뮬레이션하는, 스크린상에 표시하기 위한, 출력을 발생시키는 것을 특징으로 하는 장치.
  14. 상기 청구항중 어느 한 항에 있어서, 상기 장치는 리시버/디코더에 의해 수신될 입력 데이터로서의 묘사 데이터를 수신하는 것을 특징으로 하는 장치.
  15. 상기 청구항중 어느 한 항에 있어서, 상기 장치는 리시버/디코더가 상호작용할 수 있는 하나의 하드웨어를 묘사하는, 스크린상에 표시하기 위한, 출력을 발생하는 것을 특징으로 하는 장치.
  16. 애플리케이션을 편집 및 테스트하는 장치로서, 상기 청구항중 어느 한 항에 따라 상기 애플리케이션을 편집하는 에디터와, 애플리케이션을 테스트하는 장치를 포함하는 장치.
  17. 제 16항에 있어서, 상기 에디터는 스크린상에 표시하기 위한 출력을 발생하고, 상기 리시버/디코더의 기능을 시뮬레이션하는 수단은 상기 스크린상에 표시하기 위한 출력을 발생하는 것을 특징으로 하는 장치.
  18. 제 16항 또는 17항에 있어서, 상기 에디터와, 상기 리시버/디코더의 기능을 시뮬레이션하는 수단을 실행하는 프로세서를 포함하는 것을 특징으로 하는 장치.
  19. 제 16항 내지 18항중 어느 한 항에 있어서, 리시버/디코더의 기능을 시뮬레이션하는 상기 수단은 상기 에디터에 의해 편집된 애플리케이션을 실행하는 것을 특징으로 하는 장치.
  20. 상기 청구항중 어느 한 항에 있어서, 상기 리시버/디코더의 기능은, 예를 들어 리모콘, 키보드 또는 모뎀과 같은 통신 장치로부터 입력 데이터를 수신 및 처리, 비디오 데이터 디코딩, 비디오 출력 발생, 방송 신호로 조정, 스마트카드와 통신, 및 바람직하게 REMOTE CONTROL, SERIAL, PARALLEL, BUS 1394, MODEM, NETWORK STACK, CLOCK, KEYBOARD, POINTER, GRAPHIC, PICTURE, AUDIO, VIDEO, SERVICE, DISPLAY, SCTV, SCVCR, SCAUX, POWER, BACKUP, MLOAD, TUNER 및 SMARTCARD의 디바이스 중 적어도 하나의 기능중에 적어도 하나인 것을 특징으로 하는 장치.
  21. 애플리케이션을 편집하는 에디터와, 리시버/디코더의 기능을 시뮬레이션하는 시뮬레이터와, 상기 에디터의 출력 및 상기 시뮬레이터의 출력을 표시하는 디스플레이를 포함하는 워크스테이션.
  22. 제 21항에 있어서, 상기 시뮬레이터는 상기 에디터에 의해 편집된 애플리케이션을 실행하는 것을 특징으로 하는 워크스테이션.
  23. 제 21항 또는 22항에 있어서, 상기 시뮬레이터의 출력은 상기 디스플레이의 윈도우에 표시되는 것을 특징으로 하는 워크스테이션.
  24. 제 21항 내지 23항중 어느 한 항에 있어서, 상기 애플리케이션으로 데이터를 입력하는 입력 디바이스는 상기 디스플레이의 윈도우에서 시뮬레이션되는 것을 특징으로 하는 워크스테이션.
  25. 리시버/디코더를 위한 애플리케이션을 테스트하기 위한 방법으로서,
    상기 리시버/디코더의 기능을 시뮬레이션하는 단계를 포함하는 방법.
  26. 애플리케이션을 편집 및 테스트하기 위한 방법으로서,
    애플리케이션을 편집하는 단계를 포함하고, 제 25항에 따라 애플리케이션을 테스트하는 방법을 더 포함하는 방법.
  27. 제 25항 또는 26항의 방법을 실행하기 위한 프로그램이 저장된 컴퓨터 판독 가능 매체.
  28. 리시버/디코더를 위한 애플리케이션을 테스트하고, 상기 리시버/디코더의 기능을 시뮬레이션하는 단계를 포함하는 방법을 실행하는 프로그램이 저장된 컴퓨터 판독가능 매체.
  29. 제 25항 또는 26항의 방법을 실행하는 프로그램을 포함하는 컴퓨터 프로그램 제품.
  30. 리시버/디코더를 위한 애플리케이션을 테스트하고, 상기 리시버/디코더의 기능을 시뮬레이션하는 단계를 포함하는 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 프로그램 제품.
  31. 첨부된 도면에 도시되고 첨부 도면을 참조하여 본 명세서에 기술된 바와 같은 리시버/디코더를 위한 애플리케이션을 테스트하는 방법.
  32. 첨부된 도면에 도시되고 첨부 도면을 참조하여 본 명세서에 기술된 바와 같은 리시버/디코더를 위한 애플리케이션을 테스트하는 장치.
KR1020027000332A 1999-07-09 2000-06-12 애플리케이션을 테스트하는 장치 및 방법 KR20020035561A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP99401744.0 1999-07-09
EP99401744A EP1067806A1 (en) 1999-07-09 1999-07-09 Apparatus for and method of testing applications
PCT/IB2000/000836 WO2001005162A1 (en) 1999-07-09 2000-06-12 Apparatus for and method of testing software applications

Publications (1)

Publication Number Publication Date
KR20020035561A true KR20020035561A (ko) 2002-05-11

Family

ID=8242048

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027000332A KR20020035561A (ko) 1999-07-09 2000-06-12 애플리케이션을 테스트하는 장치 및 방법

Country Status (12)

Country Link
EP (2) EP1067806A1 (ko)
JP (1) JP2003504977A (ko)
KR (1) KR20020035561A (ko)
CN (1) CN1373970A (ko)
AU (1) AU5240600A (ko)
CA (1) CA2377789A1 (ko)
CZ (1) CZ200287A3 (ko)
NO (1) NO20020025L (ko)
PL (1) PL362901A1 (ko)
TR (1) TR200200006T2 (ko)
WO (1) WO2001005162A1 (ko)
ZA (1) ZA200200269B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101022075B1 (ko) * 2005-06-29 2011-03-17 콸콤 인코포레이티드 3차원 사용자 인터페이스 프로그램을 위한 시각적 디버깅시스템

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200532560A (en) 2003-11-13 2005-10-01 Qualcomm Inc System and method for dynamically simulating devices at a computing device
US8385193B2 (en) 2005-10-18 2013-02-26 Qualcomm Incorporated Method and apparatus for admission control of data in a mesh network
US20070203682A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation External display simulator
KR101248821B1 (ko) * 2010-12-22 2013-04-03 주식회사 케이티 아이피티브이 단말에 이용되는 위젯을 위한 에뮬레이터 제공 시스템 및 방법
CN104866420B (zh) * 2015-04-27 2018-11-02 深圳市祈锦通信技术有限公司 一种精确记录的手机软件测试方法
JP6543819B2 (ja) * 2015-04-28 2019-07-17 日本放送協会 処理装置およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61216417A (ja) * 1985-03-22 1986-09-26 利昌工業株式会社 コンデンサ
US5659793A (en) * 1994-12-22 1997-08-19 Bell Atlantic Video Services, Inc. Authoring tools for multimedia application development and network delivery
US5654751A (en) * 1995-05-31 1997-08-05 Bell Atlantic Network Services, Inc. Testing jig and method of testing video using testing jig
BR9714599A (pt) * 1997-03-21 2002-09-10 Canal Plus Sa Desenvolvimento de sistema de controle de televisão ou rádio
IL131947A0 (en) * 1997-03-21 2001-03-19 Canal Plus Sa Data processing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101022075B1 (ko) * 2005-06-29 2011-03-17 콸콤 인코포레이티드 3차원 사용자 인터페이스 프로그램을 위한 시각적 디버깅시스템
US8589142B2 (en) 2005-06-29 2013-11-19 Qualcomm Incorporated Visual debugging system for 3D user interface program

Also Published As

Publication number Publication date
CN1373970A (zh) 2002-10-09
NO20020025D0 (no) 2002-01-03
CZ200287A3 (cs) 2002-06-12
JP2003504977A (ja) 2003-02-04
EP1201090A1 (en) 2002-05-02
AU5240600A (en) 2001-01-30
PL362901A1 (en) 2004-11-02
EP1067806A1 (en) 2001-01-10
CA2377789A1 (en) 2001-01-18
ZA200200269B (en) 2003-03-26
TR200200006T2 (tr) 2002-06-21
WO2001005162A1 (en) 2001-01-18
NO20020025L (no) 2002-03-11

Similar Documents

Publication Publication Date Title
EP1057333B1 (en) Processing of digital picture data in a decoder
JP4895424B2 (ja) 複数ユーザ用マルチメディア・ターミナル
JP4201975B2 (ja) デジタルトランスポートストリーム処理
EP1067458A1 (en) Running and testing applications
US7167820B2 (en) Apparatus for and method of testing applications
WO2005109865A1 (en) A method for realizing embedded digital television service platform
JP4549532B2 (ja) レシーバ/デコーダおよびビデオデータの処理方法
KR20020035561A (ko) 애플리케이션을 테스트하는 장치 및 방법
WO1998043172A2 (en) Access control system
EP1067455A1 (en) Running and testing applications
KR20000076405A (ko) 엑세스 제어 시스템
MXPA00007900A (en) Processing of digital picture data in a decoder
CZ20002999A3 (cs) Dekodér pro digitální audiovizuální vysílací systém a způsob zpracování digitálního obrazu
MXPA00010628A (en) Receiver/decoder and method of processing video data
MXPA99008545A (es) Sistema de control de acceso

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid