KR100487012B1 - 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치 - Google Patents

프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치 Download PDF

Info

Publication number
KR100487012B1
KR100487012B1 KR10-1998-0703488A KR19980703488A KR100487012B1 KR 100487012 B1 KR100487012 B1 KR 100487012B1 KR 19980703488 A KR19980703488 A KR 19980703488A KR 100487012 B1 KR100487012 B1 KR 100487012B1
Authority
KR
South Korea
Prior art keywords
program
partial
execution
unit
partial program
Prior art date
Application number
KR10-1998-0703488A
Other languages
English (en)
Other versions
KR19990067474A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=17057370&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100487012(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 마츠시타 덴끼 산교 가부시키가이샤 filed Critical 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR19990067474A publication Critical patent/KR19990067474A/ko
Application granted granted Critical
Publication of KR100487012B1 publication Critical patent/KR100487012B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • 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
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)
  • Television Systems (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

하나의 프로그램이 복수의 부분 프로그램으로 분할되어 송신되고, 또 필요한 부분 프로그램만 수신할 때조차도 그 부분 프로그램이 실행된다. 이 실행이 부분 프로그램으로부터 다른 부분 프로그램으로 계속되어야만 하는 것으로 검출되고, 또한, 다른 부분 프로그램이 수신되면, 다른 부분 프로그램이 실행된다.

Description

프로그램의 일부만 수신한 상태에서도 당해 프로그램을 실행 개시할 수 있는 프로그램 수신 실행장치 및 그를 위한 프로그램 송신장치{PROGRAM RECEPTION/EXECUTION APPARATUS WHICH CAN START EXECUTION OF PROGRAM EVEN WHEN ONLY PART OF PROGRAM IS RECEIVED, AND PROGRAM TRANSMITTER FOR IT}
본 발명은 송신된 프로그램을 수신하여 실행하는 프로그램 수신 실행장치 및 당해 프로그램을 송신하는 프로그램 송신장치에 관한 것으로, 특히 디지털 방송 시스템에 있어서 프로그램에 관련된 제어를 행하는 프로그램을 수신하여 실행하는 프로그램 수신 실행장치 및 당해 프로그램을 송신하는 프로그램 송신장치에 관한 것이다.
최근, 영상이나 음성 등의 각종 정보신호를 디지털화하여 신호처리하는 기술이 급속히 진보하고 있고 이에 따라 디지털 방송 시스템이나 디지털 방송과 디지털 통신의 융합 시스템 등의 실현을 추구하여 세계 각국에서 디지털 방송 시스템의 개발이 활발히 행해져 왔다.
이러한 디지털 방송 시스템을 개발하는 데 가장 중요한 요소의 하나로서 디지털화된 영상신호·음성신호를 압축처리하는 기술을 들 수 있다. 데이터 압축처리 기술의 규격으로서는 MPEG(Moving Picture Image Coding Experts Group), JPEG(Joint Photographic Coding Experts Group) 및 H.261 등이 주류였으나, 현재 국제 표준화기구(ISO), 국제 전기표준회의(IEC)에 의해 제안되고 있는 ISO/IEC 13818[ISO/IEC JTC(Joint Technical Committee)1/SC(Subcommittee)29/WG(Working Group)11]은 방송, 통신, 축적미디어 등의 폭넓은 기술분야에 걸치는 세계적인 표준화를 추구하여 검토를 실시하고 있는 것이다.
이 ISO/IEC 13818에서는 상술한 데이터 압축방법을 규정할 뿐만 아니라 방송국측에서 프로그램을 구성하는 디지털 영상·음성 데이터 및 그 밖의 정보 데이터마다 압축처리를 실시한 비트 스트림을 다중하여 방송하고, 수신기측에서 원하는 프로그램을 수신하는 디지털 방송 시스템을 위한 제어부분에 대해서도 방식을 굳히고 있다.
이하 도 1, 도 2, 도 3을 이용하여 ISO/IEC 13818의 규정에 따라 디지털 영상·음성 데이터를 각각 압축처리하여 이루어지는 방송용 및 통신용 비트 스트림을 다중화하는 수단을 설명하기로 한다.
도 1은 디지털 영상·음성 데이터를 압축처리하여 이루어지는 비트 스트림을 다중화하는 수단을 도시한 개략도이다.
디지털 영상 데이터는 영상 인코드회로(1311)에 의해 압축처리되어 영상 엘리먼트리 스트림(Elementary Stream : ES)으로 이루어진 후, 패킷화회로(1312)에 공급되어 1 프레임의 패킷단위로 구분된 영상 패킷화된 엘리먼트리 스트림(Packetized Elementary Stream : PES)으로 이루어져 다중화회로(1313)에 공급된다. 또한 디지털 음성 데이터는 음성 인코드회로(1314)에 의해 압축처리되어 음성 ES로 된 후, 패킷화회로(1315)에 공급되어 1 프레임의 패킷단위로 구분된 음성 PES로 되어 다중화회로(1313)에 공급된다. 그리고 이 다중화회로(1313)에서 영상 PES와 음성 PES가 시분할 다중됨으로써, 트랜스포트 스트림(Transport Stream : TS)되는 방법의 188바이트로 이루어지는 패킷단위로 다중신호가 생성된다.
이 다중신호는 영상·음성 모두 l 프레임마다의 단위로 구분되고 그것에 헤더가 부가되어 PES를 구성하고 있다.
도 2는 PES의 구성을 도시한 도면이다.
이 PES는 가변길이이다. 이와 같이 생성된 PES는 영상과 음성을 시분할 다중하기 위해 기본적으로 184바이트마다 구분하여 패킷화되고 각각에 4바이트의 헤더가 부가됨으로써 188바이트의 TP(Transport Packet)를 형성하고 있다.
도 3은 방송용으로서의 비트 스트림을 구성하는 수단을 도시한 도면이다.
도 3에 있어서 프로그램 1은 하나의 프로그램을 나타내고 있고, 다중화회로(15161)에 의해 영상 데이터 2계통, 음성 데이터 2계통, 기타 정보 데이터 1계통 및 프로그램 맵표(Program Map Table : PMT) 1계통이 다중된다. 이 PMT에는 영상 데이터, 음성 데이터 및 정보 데이터를 식별하기 위한 PID(Packet Identify)나 프로그램에 관한 기술 등이 실려 있다. 도 3에 도시한 바와 같이 n개의 다중화회로(15161, 15162, ……, 1516n)를 준비함으로써 n개의 프로그램(1,2, ……, n)을 설정할 수 있다. 이와 같이 n개 설정된 프로그램은 다중화회로(1517)에 의해 각각의 데이터가 시분할 다중된다.
다중화회로(1517)에서는 각 프로그램의 PMT를 추출하기 위한 종합적인 프로그램 정보로서의 PAT(Program Association Table)나 스크램블을 컨트롤하기 위한 CAT(Conditional Access Table) 및 사용하고 있는 네트워크의 정보 등을 도시하는 NIT(Network Information Tab1e) 등도 시분할 다중되어 있다. 이와 같이 ISO/IEC 13818의 규격에 의하면 프로그램 정보에 대하여 PMT, PAT, CAT 및 NIT로 된 4종류의 표가 설정되어 있다. 이들 표의 PID는 PAT가 “00”, CAT가 “01”이고 PMT와 NIT는 자유롭게 지정할 수 있게 되어 있다.
또 도 1에서는 영상과 음성의 다중화에 대해서 설명하였지만, 실제로는 프로그램의 부가정보 데이터나 프로그램 정보 등의 각종 정보 데이터도 TP화되어 영상이나 음성과 함께 시분할 다중되게 된다. 이 각종 정보 데이터를 각종 프로그램마다의 오브젝트로서 구성하고 배송함으로써 보다 변화가 풍부한 프로그램을 제공하는 디지털 방송 시스템도 있다(예를 들면 일본국 특개평 7-231308호 공보 참조).
이하, 종래의 디지털 방송 시스템에서의 데이터 처리방법에 대하여 설명하기로 한다.
도 4는 종래의 디지털 방송 시스템에서의 디지털 방송 수신장치의 구성예를 도시한 도면이다.
수신 안테나(16011)에서 수신한 신호(패킷 오브젝트)가 방송 수신 서브시스템(16100)에 입력되어 복조된 후 데이터 축적관리부(16101)를 통해 자기 디스크(하드 디스크)(16014a), 광 자기 디스크(16014b) 등으로 구성되는 기록매체(16014)를 갖는 2차 기억장치(16102)에 기억된다. 또한 이 2차 기억장치(16102)에는 외부 입출력 관리부(16103)를 통해 적정 데이터나 프로그램이 기억되고 판독되도록 되어 있다.
재생 서브 시스템(16104)은 가상기계라고 불리는 공통화 가능한 처리계이고, 통상 소프트웨어로 구성되는 부분이며 편의상 로더(16122), 기본 클래스 라이브러리(16121), 자원·안전성 관리부(16123), 프로세스(스레드) 관리부(16124), 중간코드 인터프리터(16125) 및 동기 관리부(16126)의 기능 블록에 의해 나타나 있다.
기본 클래스 라이브러리(16121)에는 당해 재생 서브 시스템(16104)의 기본 기능, 여러 가지 프로그램 오브젝트나 기타 오브젝트에 공통으로 이용되는 클래스가 모아져 중간코드로 기술되어 있다. 이 기본 클래스 라이브러리(16121)에 기술되어 있는 클래스에 속하는 오브젝트를 사용할 경우, 그 클래스 정의를 송신할 필요는 없고 그 클래스 ID를 지정하기만 하면 된다. 프로그램 오브젝트나 패킷 오브젝트 자체의 클래스 정의도 여기에 기술되어 있다. 즉, 이 기본 클래스 라이브러리(16121)는 프로그램 중 기본적 프로그램 오브젝트가 미리 기억되어 있는 부분이다. 이 기본적 프로그램 오브젝트는, 예를 들면 플로피 디스크 등의 기록매체에 기록하고 각 가정에 미리 배송하여 기억시키거나, 방송 센터와의 계약이 성립한 직후에 방송 센터에서 당해 디지털 방송 수신장치에 대하여 배송해 두도록 할 수 있다.
로더(16122)는 2차 기억장치(16102)에 기억된 패킷 오브젝트의 프로그램(중간 코드)을 자원·안전성 관리부(16123)와 기억 관리부(16106)를 통해 주기억(16107)에 로드하기 위한 것이고, 이 때 주기억(16107)에 이미 로딩되어 있는 코드(예를 들면 기본 클래스 라이브러리(16121)에 기억되어 있는 기본 클래스의 코드나 사용자가 작성한 사용자 오브젝트의 코드)가 존재하는 경우, 그 코드와 중간 코드 사이의 대응관계를 나타내는 표를 작성한다.
자원·안전성 관리부(16123)는 2차 기억장치(16102)에 기억되어 있는 데이터가 파괴되거나 허가를 받지 못한 사람이 2차 기억장치(16102), 주기억(16107) 등에 기억되어 있는 데이터에 액세스하는 것이나 프로세스 관리부(16124)에 리퀘스트를 내는 것을 금지하는 처리 등을 실행하는 부분이다. 또한 소정의 오브젝트에 의한 데이터 파괴, 개변, CPU 타이머의 점유를 방지한다.
또한 프로세스 관리부(16124)는 주기억(16107)에 기억된 프로그램에 따라 메인 프로세스, 타이머 프로세스, 재생 프로세스 등의 각종 프로세스를 실행, 관리시키는 부분이다.
중간코드 인터프리터(16125)는 기본 클래스 라이브러리(16121)에 기억되어 있는 프로그램 또는 로더(16122)로부터 로드된 프로그램의 중간 코드를 순차적으로 해석, 실행하는 부분이다.
또한 동기 관리부(16126)는 음성 데이터와 동작 화상 데이터 등과 같이 시간적으로 동기하여 출력하는 것이 필요한 데이터를 관리하는 부분으로서, 중간코드 인터프리터(16125)로부터의 요구에 따라 시간경과에 따른 복수 미디어 오브젝트의 동기 스케쥴링을 사전에 행하여 시스템 클록을 기초로 각 미디어 오브젝트에 재생 개시, 정지, 느리게(slow), 배속 등의 메시지를 보내어 동기 제어를 행한다.
한편 자원·안전성 관리부(16123), 프로세스 관리부(16124) 및 동기 관리부(16126)는 하드웨어마다 다른 구성으로 되는 부분이고, 기본 클래스 라이브러리(16121), 로더(16122) 및 중간코드 인터프리터(161251)는, 하드웨어의 종류에 관계없이 공통으로 구성할 수 있는 부분이다.
통신 서브 시스템(16105)은 자원·안전성 관리부(16123)의 관리하에 있고 소정의 전송로를 통해 다른 디지털 방송 수신장치 또는 방송 센터와 각종 데이터를 수수할 때 이용된다.
시스템 클록 발생회로(16109)는 시스템 클록을 발생시켜 프로세스 관리부(16124)와 동기 관리부(16126)에 공급하고 있다.
또한 표시/재생 관리부(16110)는 동기 관리부(16126) 또는 중간 코드 인터프리터(16125)로부터 공급되는 데이터 중 화상 데이터를 표시장치(16013)에 출력하고 음성 데이터를 스피커(16111)에 출력하도록 구성되어 있다.
이와 같이 데이터와 프로그램의 포맷화(도 7)를 행하는 것과 함께 프로그램을 중간코드로서 그 처리계를 가상기계로 함으로써, 전용 수신장치에 한하지 않고 퍼스널 컴퓨터, 기타 정보단말기를 디지털 방송 수신장치로서 이용할 수 있게 된다.
패킷 오브젝트는 시청자가 실시간으로 시청하면 1일분의 데이터를 포함하고 있지만, 압축되어 전송되기 때문에 전송에 필요한 시간은 예를 들면 10수분 등, 매우 짧은 시간이 된다. 프로그램 데이터 및 프로그램은 오브젝트화되어 임의의 수의 오브젝트로 구성된다.
도 5는 프로그램 오브젝트의 구성을 개념적으로 도시한 도면이다.
즉, 지금, 예를 들면 프로그램 오브젝트 P가 인터랙티브 드라마의 프로그램이라고 하면, 이 프로그램 오브젝트 P는 스토리 오브젝트 S와, CM 오브젝트 x로 구성되어 있다. 이 스토리 오브젝트 S는 장면 오브젝트 A 내지 E 및 CM 오브젝트 y로 구성되어 있다. 그리고, 예를 들면 장면 오브젝트 A는 비디오 오브젝트 A와 메시지 오브젝트 A로 구성되어 있고, 메시지 오브젝트 A는 내레이션 오브젝트 A와 텍스트 오브젝트 A로 구성되어 있다. 또한 CM 오브젝트 x는 비디오 오브젝트 x와 상품선택 오브젝트로 구성되어 있고, 상품선택 오브젝트는 관계 프로그램 검색 오브젝트 l, m, n을 갖고 있다.
도 6은 이러한 프로그램 오브젝트를 재생하는 프로그램 오브젝트의 개념도이다.
도 6에 도시한 바와 같이 기본적 프로그램 오브젝트로서 플레이어 오브젝트가 디지털 방송 수신장치측에 미리 준비되어 있다(정확하게는 후술한 바와 같이 필요에 따라 생성됨). 이 플레이어 오브젝트는 각종 프로그램 오브젝트 중, 예를 들면 프로그램 오브젝트 1 또는 프로그램 오브젝트 2의 재생이 명령되면 기억 관리부(1821), 프로세스 관리부(1822), 데이터 축적관리부(1823), 통신 서브 시스템(1824) 등 중 필요한 부분을 제어하여 재생처리를 실행한다. 그 상세한 사항에 대해서는 도 8의 흐름도를 참조하여 후술하기로 한다.
도 7은 이렇게 하여 재생되는 프로그램 오브젝트의 포맷을 도시한 도면이다.
동 도면에 도시한 바와 같이 프로그램 오브젝트는 헤더부, 클래스 정의부 및 오브젝트 헤더부로 구성된다. 헤더부는 오브젝트 헤더, 프로그램 ID, 프로그램명, 버전, 오브젝트 사전으로 구성된다. 오브젝트 헤더는 프로그램 오브젝트의 오브젝트 ID, 오브젝트명, 클래스 ID, 우선도, 용량으로 구성된다. 프로그램 ID는 이 프로그램 오브젝트를 특정하는 ID이고 프로그램명은 그 명칭이다. 버전은 이 프로그램 오브젝트를 변경했을 경우 어느 시점의 것인지를 나타낸다. 또한 오브젝트 사전은 오브젝트 데이터부에 배치되어 있는 소정의 오브젝트에 액세스하기 위한 데이터가 배치되고 있다.
각 오브젝트는 하나의 클래스에 속하고 클래스 정의는 오브젝트의 틀을 부여하고 있다. 구체적으로는 그 클래스에 속하는 모든 오브젝트가 공통으로 갖는 변수와 방법(프로그램)이 클래스 정의부에 배치된다. 즉 클래스 정의부는 임의의 수의 클래스 정의로 구성된다. 클래스 정의는 클래스 ID, 클래스명, 슈퍼클래스 ID, 변수정의, 방법 사전 및 방법으로 구성된다. 클래스 ID와 클래스명은 그 클래스를 특정하는 ID와 명칭을 나타내고 있다. 또한 슈퍼클래스 ID는 이 클래스보다 상위의 클래스를 나타내고 있다. 슈퍼클래스(상위 클래스)에서 본 하위 클래스는 서브클래스라 한다. 변수 정의는 이 클래스 정의 중의 방법(프로그램)에 있어서 이용되는 변수를 정의하는 것이다. 또한 방법에는 프로그램이 중간 코드(문자열 데이터로 이루어지는 소스 프로그램으로부터 생성된 중간 코드)로서 기록되어 있다. 이와 같이 중간 코드로 함으로써 실행시의 처리효율의 향상과 데이터량의 압축이 가능해진다. 방법 사전은 방법에 배치되어 있는 각 방법(프로그램)에 액세스하기 위한 데이터가 배치된다. 이 클래스 정의부에는 그 프로그램 오브젝트에 포함되는 확장된 클래스의 정의가 정리되어 기술된다. 기본 클래스 라이브러리(16121)에 존재하는 클래스 정의는 여기에 기술할 필요가 없다. 따라서 그 프로그램 오브젝트에 포함되는 오브젝트가 모두 기본 클래스의 인스턴스면 클래스 정의부는 불필요하게 된다.
오브젝트 데이터부는 임의의 수의 오브젝트로 구성된다. 각 오브젝트는 오브젝트 헤더와 변수값으로 구성된다. 오브젝트 헤더는 오브젝트 ID, 오브젝트명, 클래스 ID, 우선도, 용량으로 구성된다. 오브젝트 ID와 오브젝트명은 이 오브젝트를 특정하는 ID와 명칭을 나타낸다. 클래스 ID는 이 오브젝트가 속하는 클래스를 나타내고 있다. 또한 우선도는 재생의 순위를 나타내고 있고 0 내지 3 중 어느 하나의 수치가 주어진다. 수치가 클수록 우선도가 높은 것을 나타내고 있다. 또한 용량은 그 오브젝트가 갖는 데이터의 용량을 나타내고 있다. 변수값은 소재 데이터 자체이다. 또한 이 변수값에는 제어 데이터도 포함된다.
또 임의의 수의 프로그램 오브젝트로 패키지 오브젝트가 구성된다. 3가지의 프로그램 오브젝트로 하나의 패키지 오브젝트가 구성되어 있다. 패키지 오브젝트는 헤더부, 클래스 정의부 및 프로그램 오브젝트 데이터부로 구성된다. 헤더부의 선두에는 오브젝트 헤더가 배치된다. 이 오브젝트 헤더에도 오브젝트 ID, 오브젝트명, 클래스 ID, 우선도, 용량이 각각 배치된다. 또한 오브젝트 헤더의 다음에는 패키지 ID와 패키지명이 배치된다. 이들은 이 패키지 오브젝트의 ID와 명칭을 나타내는 것이다. 또한 그 다음에는 이 패키지 오브젝트가 생성된 날짜와 버전이 배치된다. 또한 그 다음에는 프로그램 인덱스가 배치된다. 이 프로그램 인덱스는 프로그램 오브젝트 데이터부에 배치되어 있는 3가지의 프로그램오브젝트의 오브젝트 데이터부에 액세스하기 위한 데이터가 배치되어 있다. 클래스 정의부에는 이 패키지 오브젝트에 정리된 3가지의 프로그램 오브젝트의 클래스정의부에 기술되어 있는 클래스 정의가 기록된다. 각 프로그램 오브젝트의 클래스정의부에서 중복되는 부분은 적당히 생략된다. 그리고 이 클래스 정의부는 상술한 바와 같이 중간 코드로 기술된다. 또한 프로그램 오브젝트 데이터부는 이 패키지 오브젝트에 정리되는 프로그램 오브젝트의 헤더부와 오브젝트 데이터부가 배치된다.
다음으로 도 8을 참조하여 메인 프로세스의 처리에 대하여 설명하기로 한다.
도 8은 메인 프로세스의 처리를 도시한 흐름도이다.
최초로 단계 S202l에서, 중간 코드 인터프리터(16125)는 로터(16122)를 제어하여 수신 안테나(l6011)로 수신하고 2차 기억장치(16102)에 기억한 패키지 오브젝트의 헤더부와 클래스 정의부(도 7)를 로더(16122)로 판독하여 자원·안전성 관리부(16123), 기억관리부(16106)를 통해 주기억(16107)에 로드시킨다. 다음으로 단계 S2022로 진행하여 패키지 오브젝트의 프로그램 오브젝트 데이터부 내의 하나의 프로그램 오브젝트의 헤더부(도 7)를 기입한다. 패키지 오브젝트에는 우선도의 값이 큰 순서로 프로그램 오브젝트가 저장되어 있고 각 프로그램 오브젝트의 헤더부는 저장순서대로 판독된다. 그리고 단계 S2023으로 진행하여 단계 S2022에서 기입한 헤더부로부터 우선도를 기입한다. 상술한 바와 같이 이 우선도에는 0, 1, 2 또는 3 중 어느 하나의 값이 배치되어 있다. 우선도가 3인 데이터는 긴급시의 프로그램 또는 방송 센터가 각 시청자에 대하여 확실히 보여주고 싶은 프로그램에 대하여 부여되어 있는 것이다.
단계 S2024에 있어서는 단계 S2023에서 기입한 우선도가 3인지의 여부를 판정하여 3이 아니라고 판정하였을 때 단계 S2025로 진행하고, 그 패키지 오브젝트를 구성하는 다른 프로그램 오브젝트의 헤더부의 기입이 종료되었는지의 여부를 판정하여 아직 기입되지 않은 프로그램 오브젝트가 존재하는 경우는 단계 S2022로 복귀하고, 그 이후의 처리가 마찬가지로 반복된다.
단계 S2024에서는 판독 기입된 우선도가 3으로 판정된 경우 단계 S2026으로 진행하여 우선 플레이어 오브젝트를 생성한다. 이에 따라 메인 프로세스로부터 우선 재생 프로세스의 기초가 되는 우선 플레이어 오브젝트(그 클래스는 기본 클래스 라이브러리(l6121)에 포함되어 있음)가 생성된다. 즉 우선 플레이어 오브젝트의 클래스 정의에 따라 주기억(16107)상의 필요한 영역이 확보되고, 그 중에 각 변수영역을 배치하여 각각의 변수값에 맞는 실데이터를 2차 기억장치(16102)로부터 판독하고 주기억(16107)에 로드하여 인스턴스화를 행한다. 또한 동시에 초기화 방법 등의 필요한 처리가 행해진다. 또 대량이고 표시/재생시에만 필요한 각 미디어의 내용 데이터는 인스턴스화할 때가 아니라 그 후의 표시/재생 방법의 기동시 2차 기억장치(16102)로부터 판독된다. 다음으로 단계 S2027로 진행하여 타이머 프로세스에 세트 메시지를 출력한다. 우선도 3의 프로그램은 후술한 바와 같이 소정 시간마다 자동적으로 표시시키도록 한다. 타이머 프로세스는 메인 프로세스로부터 이 세트 메시지를 수신하였을 때 우선도 3의 프로그램을 자동적으로 표시하는 시간간격의 설정처리를 행한다. 다음으로 단계 S2028로 진행하여 재생 프로세스 생성처리를 실행한다. 다음으로 단계 S2028로부터 단계 S2025로 진행한다.
단계 S2025는 패키지 오브젝트의 프로그램 오브젝트 데이터부에 아직 헤더부를 읽어내고 있지 않은 프로그램 오브젝트가 있는지의 여부를 판정하여, 읽어내고 있지 않은 프로그램 오브젝트가 아직 존재하는 경우에는 단계 S2022로 복귀하고 같은 처리를 실행하여 그 프로그램 오브젝트의 헤더부를 기입한다.
이상과 같이 하여 패키지 오브젝트에 포함되는 모든 프로그램 오브젝트의 헤더부의 기입이 완료되었다고 단계 S2025에서 판정된 경우 단계 S2029로 진행하여 프로그램 선택메뉴 표시처리를 실행한다. 즉 중간코드 인터프리터(16125)는 표시/재생관리부(16110)를 제어하여 표시장치(16013)에 프로그램 선택메뉴를 표시시킨다. 이 프로그램 선택메뉴는 디폴트의 프로그램에 따라 프로그램을 선택하거나 사용자가 정의한 프로그램 선택방법(사용자 오브젝트)에 따라 프로그램을 선택할지의 선택을 위한 표시이다. 사용자는 인터랙티브 기능을 달성하는 입력 디바이스(16015)를 조작하여 그 어느 하나를 선택하여 디폴트 또는 사용자 정의 중 어느 한편의 프로그램 선택방법에 따라 프로그램을 선택할 수 있도록 이루어지고 있다. 디폴트를 선택하면 우선도에 따라 각 프로그램 오브젝트가 차례로 재생되게 된다. 이에 대하여 사용자 정의를 선택하면 그 사용자가 예를 들면 드라마를 지정하고 있으면 수신한 프로그램 오브젝트 중 드라마의 프로그램만이 선택되어 표시되게 된다.
다음으로 단계 S2030으로 진행하여 재생큐가 비어있는지의 여부가 판정된다. 재생큐가 비어있지 않은 경우, 예를 들면 상술한 바와 같이 우선도 3의 프로그램 오브젝트가 존재하는 경우 단계 S2028의 재생 프로세스 생성처리에 있어서 실행한 재생큐 세트처리에 의해 재생큐에 소정의 재생 프로세스 ID가 세트되어 있기 때문에 재생큐는 비어있지 않게 된다. 이러한 경우 단계 S2037에서 재생큐 평가처리가 실행되게 된다. 최초로 재생 중의 재생 프로세스가 존재하는지의 여부가 판정된다. 현재 재생중인 재생 프로세스가 존재하는 경우에는 재생큐의 선두의 재생 프로세스 (다음으로 재생예정인 재생 프로세스)의 우선도가 지금 재생중인 재생 프로세스의 우선도보다 높은지의 여부가 판정된다. 상술한 바와 같이 우선도 3의 프로그램이 존재하는 경우에 재생큐의 선두에는 우선도 3의 재생 프로세스의 ID가 세트되어 있다. 따라서 현재 재생중인 재생 프로세스가 2 이하의 우선도를 갖는 것일 경우 재생중인 재생 프로세스에 중단 메시지가 출력된다. 재생 프로세스는 메인 프로세스로부터 이 중단 메시지를 수신하였을 때 표시를 위한 처리시간의 할당을 여기에서는 1/20으로 하게 된다. 다음으로 재생큐 세트처리를 실행한다. 즉 현재 재생중인 재생 프로세스의 우선도를 평가하여 그 평가에 대응하는 적절한 큐에 현재 재생중인 재생 프로세스의 ID를 세트한다. 재생 프로세스의 처리를 실행(재생)하기 위해서는 이 재생큐에 재생 프로세스의 ID를 세트할 필요가 있지만, 재생처리가 시작되면 그 재생 프로세스의 ID는 재생큐로부터 제거된다. 이 때문에 중단한(표시처리 시간의 할당을 감소시킴) 재생 프로세스를 다시 실행할 수 있도록 하기 위해(통상의 표시처리 시간의 할당으로 복귀) 현재 재생중인(느린 표시속도로 표시중) 재생 프로세스의 ID를 다시 재생큐에 세트하도록 하는 것이다. 이와 같이 재생큐 세트처리가 종료한 후나 현재 재생중인 재생 프로세스가 존재하지 않는다고 판정된 경우 재생큐의 선두의 재생 프로세스에 기동 메시지를 출력한다.
재생 프로세스는 이 기동 메시지를 수신하였을 때 미표시 또는 느린 속도로 표시중인 재생 프로세스를 통상의 속도로 표시하여 기동 메시지를 출력한 재생 프로세스의 ID를 재생큐로부터 제거한다. 재생큐의 선두의 재생 프로세스의 우선도가 재생중인 재생 프로세스의 우선도와 같은지, 그보다 작다고 판정된 경우에는 재생중인 재생 프로세스를 우선해야 하므로 특별한 처리를 실행하지 않는다.
단계 S2030에서 재생큐가 비었다고 판정된 경우나 단계 S2037에서 재생큐 평가처리가 완료한 후 단계 S2031로 진행하여 타이머로부터 알람이 발생되었는지의 여부가 판정된다. 즉 상술한 바와 같이 단계 S2027에서 메인 프로세스로부터 타이머 프로세스에 세트 메시지를 출력하면 타이머 프로세스는 소정의 시간을 계시하였을 때 메인 프로세스로 알람 메시지를 출력한다. 이에 따라 타이머 프로세스로부터 메인 프로세스로 알람 메시지가 출력된다. 이 것은 우선도가 3인 프로그램을 주기적(정기적)으로 표시할 시간이 된 것을 나타내고 있다. 따라서 이 경우에는 단계 S2031로부터 단계 S2038로 진행하여 알람이 있었던 재생 프로세스 ID에 대해서 재생큐 세트처리가 행해진다. 알람이 있었던 재생 프로세스 ID(우선도가 3인 재생 프로세스 ID)를 평가하여 적절한 큐위치에 그 재생 프로세스의 ID를 세트한다. 우선도가 3이므로 통상적으로 보다 순위가 높은 위치에 세트된다.
단계 S2031에서 타이머부로터의 알람이 수신되지 않았다고 판정된 경우 또는 단계 S2038에서의 재생큐 세트처리가 종료한 후 단계 S2032로 진행하여 단계 S2029에서 표시한 프로그램 선택메뉴로부터 사용자가 프로그램의 선택을 하였는지의 여부가 판정된다. 사용자가 재생을 행하고 싶은 프로그램을 선택하였다고 판정된 경우 단계 S2039로 진행하여 플레이어 오브젝트가 생성된다. 그리고 단계 S2040으로 진행하여 재생 프로세스 생성처리가 실행된다. 즉 단계 S2039에서 생성된 플레이어 오브젝트를 기초로 신규의 재생 프로세스를 생성하여 재생큐 세트처리를 실행한다. 생성한 재생 프로세스의 우선도를 평가하여 그 우선도에 대응하는 큐위치에 그 재생 프로세스의 ID를 세트한다. 이에 따라 사용자가 선택한 플레이어 오브젝트에 대응하는 재생 프로세스의 ID가 재생큐에 세트된 것으로 된다.
단계 S2032에서 사용자의 프로그램 선택지정이 이루어질 수 없다고 판정된 경우 또는 단계 S2040의 재생 프로세스 생성처리가 종료하였을 때 다음으로 단계 S2033으로 진행하여 사용자가 정지명령을 발생하였는지의 여부가 판정된다. 사용자가 정지명령을 발생하였을 때 단계 S2041로 진행하여 해당하는 재생 프로세스에 정지 메시지를 출력한다. 즉 메인 프로세스로부터 재생 프로세스로 정지 메시지가 출력되게 된다.
재생 프로세스에서는 이 정지 메시지를 수신하였을 때 통상속도로 표시하고 있는 재생처리를 정지시킨다. 프로그램이 종료하기 이전에 사용자가 도중에 프로그램을 정지한 경우이므로 후에 다시 이 프로그램을 도중에 재생할 수 있도록 하기 위해 다음으로 단계 S2042로 진행하여 재생큐 세트처리를 실행한다. 즉 지금 재생중인 재생 프로세스를 다시 재생할 수 있도록 재생큐에 세트하는 것이다.
단계 S2033에서 사용자가 정지명령을 발생하지 않는다고 판정하였을 때 또는 단계 S2042에서 재생큐 세트처리가 완료하였을 때, 다음으로 단계 S2034로 진행하여 사용자가 프로그램 종료명령을 발생하였는지의 여부가 판정된다. 사용자가 프로그램 종료지령을 발생하였을 때 단계 S2043으로 진행하여 해당하는 재생 프로세스에 종료 메시지를 출력한다. 즉 메인 프로세스로부터 재생 프로세스로 종료 메시지가 출력되게 된다. 재생 프로세스는 이 종료 메시지를 수신하였을 때 우선도가 3이면 재생처리를 종료시킨다. 단계 S2043의 다음으로 단계 S2044로 진행하여 재생 프로세스를 기동한 메모리를 개방하는 등의 필요한 후처리 A를 행한 후(예를 들면 재생 프로세스가 우선도 3인 경우 메모리 개방은 아직 행하지 않음) 단계 S2036으로 진행한다. 한편 사용자가 프로그램 종료를 명령한 경우 프로그램을 도중에 정지하는 것이 아니라 재생처리 그 자체를 종료시키는 것이므로 이 경우에는 현재 재생중인 재생 프로세스를 재생큐에 두 번째 세트하는 처리는 실행되지 않게 된다.
단계 S2034에서 사용자가 프로그램 종료명령을 발생하지 않는다고 판정된 경우 단계 S2035로 진행하여 재생 프로세스로부터 종료 메시지가 수신되었는지의 여부가 판정된다. 우선도 3의 제생 프로세스는 프로그램 재생이 종료하였을 때 종료 메시지를 출력한다. 즉 재생 프로세스로부터 메인 프로세스로 종료 메시지가 출력되게 된다. 메인 프로세스는 단계 S2035에서 이 종료 메시지를 수신하였을 때 단계 S2045로 진행하여 필요한 후처리 B를 한 후(여기에서는 우선도 3의 재생 프로세스의 메모리도 개방됨) 단계 S2036으로 진행한다.
단계 S2035에서 재생 프로세스로부터 종료 메시지가 수신되어 있지 않다고 판정된 경우 또는 단계 S2044의 후처리 A, 단계 S2045의 후처리 B가 종료하였을 때 단계 S2036으로 진행하여 시청의 종료가 명령되어 있는지의 여부가 판정되고 종료되어 있지 않으면 단계 S203O로 복귀하고, 그 이후의 처리를 반복 실행한다. 그리고 시청의 종료가 명령되었다고 판정된 경우 단계 S2046으로 진행하고 종료처리를 실행하여 처리를 종료한다.
이상과 같이 종래의 디지털 방송 시스템에 있어서의 데이터처리가 행해진다.
그렇지만 디지털 방송 송신장치로부터 프로그램을 대화적 조작으로 이용하는 데 필요한 프로그램을 프로그램 정보의 내용으로서 송신한 경우에도 상술한 바와 같은 종래의 디지털 방송 수신장치에서는 프로그램을 이용하기 위해 필요한 프로그램을 모두 수신하지 않으면 실행할 수 없다. 왜냐 하면 프로그램을 수신하면서 실행하면 아직 수신하지 않은 부분을 실행하려고 한 시점에서 이상 동작을 하기 때문이다.
이 때문에 이용자의 조작이나 프로그램의 상황 등에 대한 대응성이 나쁜 문제점이 있다.
이러한 대응성의 악화를 해결하는 방법으로서 디지털 방송의 수신장치에 대용량의 기억장치를 구비해 놓고 처리 프로그램을 미리 수신하여 축적해 두는 방법이 있다.
그러나 저기능의 수신장치로부터 고기능의 수신장치까지의 다양한 디지털 방송 수신장치에 대하여 디지털 방송을 제공하는 것을 생각하면 디지털 방송 수신장치에 큰 기억 용량을 요구해서는 안 된다. 더구나 디지털 방송으로 송신되는 내용은 차례로 변경되고 있으므로 미리 수신하는 것도 곤란하다.
또한 별도의 문제이지만 저기능으로부터 고기능까지의 디지털 방송 수신장치의 기능 레벨에 따른 처리를 실행하기 위해 종래의 디지털 방송의 송신장치로서는, 디지털 방송 수신장치의 기능레벨마다 별도의 프로그램을 작성하여 별도로 송신하거나 디지털 방송 수신장치의 기능 레벨마다의 처리를 모두 포함한 하나의 프로그램을 송신할 수 밖에 없다.
그렇지만 전자는 복수의 프로그램을 작성하는 부담 및 복수의 프로그램을 송신하는 부담이 커지는 문제점이 있고 후자는 디지털 방송 수신장치측이 당해 수신장치에서 불필요한 기능레벨에 대한 처리부분까지 수신해야 하므로 기억장치를 낭비하는 문제점이 있다.
도 1은 디지털 영상·음성 데이터를 압축처리하여 이루어지는 비트 스트림을 다중화하는 수단을 도시한 개략도이다.
도 2는 PES의 구성을 도시한 도면이다.
도 3은 방송용으로서의 비트 스트림을 구성하는 수단을 도시한 도면이다.
도 4는 종래의 디지털 방송 시스템에서의 디지털 방송 수신장치의 구성예를 도시한 도면이다.
도 5는 프로그램 오브젝트의 구성을 개념적으로 도시한 도면이다.
도 6은 이러한 프로그램 오브젝트를 재생하는 프로그램 오브젝트의 개념도이다.
도 7은 프로그램 오브젝트의 포맷을 도시한 도면이다.
도 8은 종래의 디지털 방송 수신장치의 메인 프로세스의 처리를 도시한 흐름도이다.
도 9는 본 발명에 관한 디지털 방송 송신장치의 제 1 실시예에서의 구성을 도시한 블록도이다.
도 10은 트랜스포트 스트림의 이미지를 도시한 도면이다.
도 11은 프로그램을 분할하는 모양을 도시한 도면이다.
도 12는 프로그램 분할부(3050)가 프로그램(800)을 부분 프로그램(801, 802, 803)으로 분할하는 처리순서를 도시한 흐름도이다.
도 13은 제 1 실시예에서의 디지털 방송 수신장치의 구성을 도시한 블록도이다.
도 14는 바이트 코드 인터프리터(1090)가 행하는 바이트 코드 프로그램 실행 제어처리를 도시한 흐름도이다.
도 15는 부분 프로그램 취득처리의 흐름도이다.
도 16은 에러처리를 도시한 흐름도이다.
도 17은 에러 처리표, 에러처리내 에러 처리표의 구성 및 에러처리 코드를 설명하기 위한 도면이다.
도 18은 디폴트 에러 처리표, 디폴트 에러처리내 에러 처리표의 구성을 도시한 도면이다.
도 19는 제 2 실시예에서의 디지털 방송 송신장치의 구성을 도시하는 블록도이다.
도 20은 프로그램 구조를 도시한 개념도이다.
도 21은 분할후의 프로그램의 이미지를 도시한 도면이다.
도 22는 「스위치-케이스」문을 갖는 구조의 프로그램의 분할후의 이미지를 도시한 도면이다.
도 23은 부분 프로그램의 우선도를 도시한 개념도이다.
도 24는 우선도에 따른 부분 프로그램의 다중화의 개념을 도시한 도면이다.
도 25는 제 2 실시예에서의 디지털 방송 수신장치의 구성을 도시한 블록도이다.
도 26은 바이트 코드 인터프리터(7090)가 행하는 바이트 코드 프로그램 실행 제어처리를 도시한 흐름도이다.
따라서 본 발명은 이러한 문제점을 감안하여 이루어진 것으로 필요한 프로그램을 일부분만 수신한 상태에서도 실행 개시할 수 있는 디지털 방송 수신장치 및 그를 위한 디지털 방송 송신장치를 제공하는 것을 제 1의 목적으로 한다.
또 본 발명은 프로그램 작성부담 및 송신부담을 증가시키지 않고 수신장치측의 기억장치를 낭비시키지 않고 디지털 방송 수신장치의 기능 레벨에 따른 처리를 실현하는 디지털 방송 수신장치 및 그를 위한 디지털 방송 송신장치를 제공하는 것을 제 2의 목적으로 한다.
상기 제 1의 목적을 달성하기 위해 본 발명에 관한 프로그램 수신 실행장치는 프로그램 송신장치로부터 하나의 부분 프로그램의 다음에 실행할 부분 프로그램이 어느 것인지를 나타내는 다음 실행부분 정보를 포함하는 부분 프로그램이 복수로 분할되어 송신되는 프로그램을 수신하여 당해 프로그램을 실행하는 프로그램 수신 실행장치로서, 프로그램 기억영역을 갖는 기억수단과, 상기 복수의 부분 프로그램을 수신하여 상기 기억수단에 저장하는 수신수단과, 상기 기억수단에 기억되어 있는 상기 복수의 부분 프로그램을 실행하는 실행 제어수단을 구비하고 상기 실행 제어수단은 지정된 부분 프로그램이 상기 기억수단에 기억되어 있는지를 판단하는 프로그램 존재여부 판단부와, 실행중인 제 1 부분 프로그램에 이어서 실행해야 할 제 2 부분 프로그램을 상기 다음 실행부분 정보를 참조하여 특정해서 당해 제 2 부분 프로그램이 상기 기억수단에 기억되어 있는지를 프로그램 존재여부 판단부에 판단시켜 상기 프로그램 존재여부 판단부에 의해 제 2 부분 프로그램이 기억되어 있다고 판단된 경우에는 제 2 부분 프로그램의 실행을 준비하고, 상기 프로그램 존재여부 판단부에 의해 제 2 부분 프로그램이 기억되어 있지 않다고 판단된 경우에는 프로그램의 실행을 진행시키지 않고 대기하여, 그 후 상기 프로그램 존재여부 판단부에 의해 제 2 부분 프로그램이 기억되어 있다고 판단된 시점에서 제 2 부분 프로그램의 실행을 준비하는 프로그램 준비부와, 상기 프로그램 준비부에 의해 준비된 부분 프로그램의 명령복수를 실행하고 상기 프로그램 준비부를 기동하는 프로그램 실행부를 갖는 것을 특징으로 한다.
상기 구성에 의해 하나의 프로그램이 복수의 부분 프로그램으로 분할되어 송신된 경우 필요한 부분 프로그램을 수신하고 있으면 당해 부분 프로그램을 실행할 수 있다. 또한 당해 부분 프로그램으로부터 다른 부분 프로그램으로의 실행계속이 필요해진 경우, 그 필요해진 다른 부분 프로그램을 수신하고 있으면 당해 다른 부분 프로그램을 실행할 수 있고, 그 후도 마찬가지로 복수의 부분 프로그램을 실행할 수 있다. 이에 따라 원하는 프로그램 모두를 수신한 다음이 아니더라도 실행이 가능하므로 신속한 프로그램의 실행 개시가 실현된다.
또한 상기 다음 실행부분 정보는 그것이 포함되는 부분 프로그램에 이어서 실행할 부분 프로그램을 식별하기 위한 식별자를 포함하고, 상기 수신수단은 지정된 부분 프로그램을 상기 식별자를 이용하여 수신신호로부터 분리추출하여 상기 기억수단에 저장하는 분리 추출부를 갖고, 상기 실행 제어수단은 또한 상기 프로그램 존재여부 판단부에 의해 상기 기억수단에 상기 부분프로그램이 기억되어 있지 않다고 판단된 경우에는 분리 추출부에 당해 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시하는 프로그램 추출 지시부를 갖게 할 수도 있다.
상기 구성에 의해 필요하게 된 부분 프로그램을 추출하여 기억장치에 도입하여 실행할 수 있으므로 프로그램 수신 실행장치의 기억 용량을 낭비하지 않고 프로그램을 실행할 수 있다.
또한 다음 실행부분 정보는 다음에 다른 부분프로그램을 실행하는 취지를 나타내는 명령인 링크명령을 포함하고, 상기 프로그램 실행부는 실행해야 할 부분 프로그램중의 명령이 링크명령인지를 판단하는 링크명령 판단부와, 상기 링크명령 판단부가 링크명령이라고 판단하였을 때 상기 프로그램 준비부를 기동하는 링크명령 처리부를 갖게 할 수도 있다.
상기 구성에 의해 부분 프로그램의 실행을 속행하기 위한 다음의 부분 프로그램이 필요한 것을 부분 프로그램의 실행 제어부에 간단하게 전달할 수 가 있다.
또한 다음 실행부분 정보는 다음에 복수의 다른 부분 프로그램 중 어느 하나를 프로그램 수신 실행장치의 능력에 따라 실행해야 한다는 취지를 나타내는 명령인 선택 링크명령과 상기 하나의 부분 프로그램의 식별자를 합성하는 기초가 되는 정보인 기초 식별자를 포함하고, 상기 프로그램 수신 실행장치는 자기의 기능레벨을 기억하는 기능레벨 기억수단을 더 구비하며, 상기 프로그램 실행부는 실행할 부분 프로그램중의 명령이 선택링크 명령인지를 판단하는 선택 링크명령 판단부와, 상기 링크명령 판단부가 링크명령이라고 판단하였을 때, 상기 기능레벨 기억수단에 기억하고 있는 기능레벨과 상기 기초 식별자를 참조하여, 실행할 부분 프로그램의 식별자를 합성하여 상기 프로그램 준비부를 기동하는 선택링크 명령 처리부를 더 갖게 할 수도 있다.
상기 구성은 제 2의 목적도 달성하기 위한 것이고 본 구성에 의하면 프로그램 수신 실행 장치의 능력에 따른 처리를 행하는 부분 프로그램 중 하나를 선택하여 당해 프로그램 수신 실행장치에 최적의 처리를 실행할 수 있다.
또한 상기 부분 프로그램은 실행환경에 의존하지 않는 중간코드인 바이트 코드이고, 상기 프로그램 실행부는 상기 부분 프로그램을 바이트 코드의 1명령마다 차례로 해석하여 실행할 수도 있다.
상기 구성에 의해 부분 프로그램의 실행을 속행하기 위한 다음의 부분 프로그램이 필요한 것을 나타내는 명령을 해석하였을 때 당해 다음의 부분 프로그램을 취득하면 되기 때문에 불필요한 부분 프로그램을 기억장치에 도입할 필요가 없고 프로그램 수신 실행장치의 기억 용량을 낭비하지 않으면서 프로그램을 실행할 수 있다.
또한 상기 프로그램 수신 실행장치는, 이용자에 의한 조작과 당해 조작에 대응하여 실행하여야 하게 되는 최초의 부분 프로그램의 식별자와 대응표를 보유하는 이벤트 정보 관리수단과, 이용자에 의한 조작에 따라서 상기 이벤트 정보 관리수단으로부터 실행해야 할 최초의 부분 프로그램의 식별자를 얻어서, 상기 분리 추출부에 당해 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시한 후, 상기 프로그램 존재여부 판단부에 의해 당해 부분 프로그램이 기억되어 있다고 판단된 시점에서 상기 실행 제어수단에 당해 부분 프로그램을 실행시키는 이벤트 처리수단을 더 구비할 수도 있다.
상기 구성에 의해 이용자의 조작이나 기기의 동작상 발생하는 각종 이벤트에 대응하여 부분 프로그램을 실행함으로써 신속한 대응처리 개시가 실현된다.
또한 상기 프로그램 수신 실행장치는 프로그램 실행시에 발생하는 에러와 당해 에러에 대응하여 실행하여야 하게 되는 에러처리를 나타내는 에러 코드의 대응표를 보유하는 에러처리 정보 관리수단과, 에러의 발생에 따라 상기 에러처리 정보 관리수단으로부터 실행하게 되는 에러처리를 나타내는 에러 코드를 얻어서, 당해 에러 코드가 부분 프로그램을 기동해야 한다는 취지를 나타내는 것이면 상기 분리 추출부에 당해 에러 코드가 나타내는 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시한 후, 상기 프로그램 존재여부 판단부에 의해 당해 부분 프로그램이 기억되어 있다고 판단된 시점에서 상기 실행 제어수단에 당해 부분 프로그램을 실행시키는 에러처리 수단을 더 구비할 수도 있다.
상기 구성에 의해 에러 발생에 대응하여 부분 프로그램을 실행함으로써 신속한 에러처리 개시가 실현된다.
또한 상기 프로그램 수신 실행장치는 디지털 방송 송신장치로부터 복수의 부분 프로그램으로 분할되어 송신되는 부분 프로그램을 수신하여 당해 부분 프로그램을 실행할 수도 있다.
상기 구성에 의해 디지털 방송 송신장치로부터 송신되는 부분 프로그램을 수신하여 실행할 수 있는 프로그램 수신 실행장치가 실현된다.
또한 상기 프로그램 수신 실행장치는 디지털 방송 송신장치로부터 복수의 부분 프로그램으로 분할되어 반복 송신되는 부분 프로그램을 수신하여 당해 부분 프로그램을 실행할 수도 있다.
상기 구성에 의해 복수의 부분 프로그램이 반복 송신되는 경우 부분 프로그램을 수신하여 당해 부분 프로그램을 실행할 수 있으므로, 한번 수신한 부분 프로그램이 불필요하게 된 시점에서 기억장치상의 당해 부분 프로그램을 기억한 영역을 해방할 수가 있고, 당해 부분 프로그램이 필요하게 된 시점에서 다시 수신하여 추출하고 기억장치에 도입할 수 있기 때문에 기억장치를 효율적으로 활용할 수 있다
또한 상기의 복수의 부분 프로그램은 적어도 영상 데이터 또는 음성 데이터 중 하나와 함께 다중화되어 송신되도록 할 수도 있다.
상기 구성에 의해 영상 또는 음성을 제어하는 부분 프로그램의 실행에 의해 영상, 음성에 관련된 제어처리의 신속한 실행개시가 실현된다.
또한 상기 프로그램 수신 실행장치는 ISO/IEC 13818의 규격에 따르는 것이고 상기의 복수의 부분 프로그램은 이 ISO/IEC 13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션(private section)의 전부 또는 일부의 영역에 배치되어 송신되는 것으로 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치는 수신한 신호로부터 트랜스포트 디코더에 의해 PID와 표 ID를 이용하여 부분 프로그램을 용이하게 추출할 수 있다.
또한 상기 실행 제어수단은 상기 프로그램 존재여부 판단부에 의해 상기 기억수단에 상기 부분 프로그램이 기억되어 있지 않다고 판단된 경우 프로그램 송신장치에 당해 부분 프로그램을 송신하도록 요구를 송출하는 송신요구 송출부를 갖게 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치는 한번 수신한 부분 프로그램이 불필요하게 된 시점에서 기억장치상의 당해 부분 프로그램을 기억한 영역을 해방할 수 있고, 당해 부분 프로그램이 필요하게 된 시점에서 송신요구를 프로그램 송신장치에 보냄으로써 다시 송신된 부분 프로그램을 수신하고 추출하여 기억장치에 넣을 수 있기 때문에 기억장치를 효율적으로 활용할 수 있다.
또한, 상기 기억수단은 부분 프로그램이 상기 프로그램 기억영역에 저장될 때 빈 영역이 없는 경우에는 이미 프로그램 기억영역에 저장되어 있는 어느 한 부분 프로그램을 삭제한 후 생기는 빈 영역에 부분 프로그램이 저장되도록 제어하는 메모리 관리부를 갖고, 상기 프로그램 실행부는, 실행할 부분 프로그램 중의 명령이 당해 부분 프로그램을 삭제하지 않는다는 취지의 로크(lock) 명령인지를 판단하는 로크명령 판단부와, 상기 로크명령 판단부가 로크 명령이라고 판단하였을 때 상기 메모리 관리부에 당해 로크 명령을 포함하는 부분 프로그램을 식별하기 위한 상용 부분 프로그램 식별정보를 통지하는 로크명령 통지부를 더 갖고, 상기 메모리 관리부는 상기 로크명령 통지부로부터 받은 상용 부분 프로그램 식별정보가 나타내는 부분 프로그램에 대해서는 삭제의 대상으로 하지 않고 상기 제어를 행하게 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치는 특정한 부분 프로그램에서는 수신한 부분 프로그램을 기억한 영역을 해방하지 않고 당해 부분 프로그램을 포함하여 구성되는 프로그램의 실행에 있어서 당해 부분 프로그램을 다시 필요로 하는 경우 당해 부분 프로그램을 신속히 실행 개시할 수 있다.
또한 본 발명에 관한 프로그램 송신장치는 프로그램을 프로그램 수신 실행장치에 송신하는 프로그램 송신장치로서, 상기 프로그램을 미리 기억하는 기억수단과, 상기 기억수단에 의해 기억되어 있는 프로그램을 복수의 부분 프로그램으로 분할하는 분할수단과, 상기 분할수단에 의해 분할한 부분 프로그램마다 각각을 식별하기 위한 식별자를 부가하는 식별자 부여수단과, 상기 복수의 부분 프로그램을 송신하는 송신수단을 구비하는 것을 특징으로 한다.
상기 구성에 의해 프로그램 수신 장치측에서는 필요한 부분 프로그램을 수신한 시점에서 실행을 개시할 수 있으므로 신속한 프로그램의 실행개시가 실현된다. 이것은 제 1의 목적을 달성하기 위한 것이다.
또한 상기 프로그램 송신장치는 다음에 실행할 부분 프로그램을 나타내는 다음 실행 부분정보(다음에 실행해야 할 부분 프로그램의 식별자를 포함)를 부분 프로그램에 부가하는 다음 실행부분 정보 부가수단을 구비할 수도 있다.
상기 구성에 의해 프로그램 수신장치측에서는 식별자를 바탕으로 필요하게 된 부분 프로그램을 추출하여 기억장치에 도입 실행할 수 있으므로 기억용량을 낭비하지 않으면서 프로그램을 실행할 수 있다.
또한 다음 실행부분 정보는 다음에 다른 부분 프로그램을 실행하는 취지를 나타내는 명령인 링크명령을 포함하며, 상기 다음 실행부분 정보 부가수단은 상기 분할수단에 의해 분할된 복수의 부분 프로그램 중에서 다른 부분 프로그램으로의 처리속행이 필요한 위치에 링크명령을 작성하여 삽입하는 링크명령 작성부를 더 가질 수도 있다.
상기 구성에 의해 프로그램 수신장치측에서는 부분 프로그램 중에 삽입된 링크명령에 의해 당해 부분 프로그램의 실행을 속행하기 위한 다음의 부분 프로그램이 필요한 것을 부분 프로그램의 실행 제어부에 간단하게 전달할 수 있다.
또한 상기 프로그램 송신장치는 프로그램의 분기구조를 나타내는 프로그램 구조정보를 기억하는 프로그램 구조 정보 기억수단을 구비하며, 상기 분할수단은 상기 프로그램 구조정보 기억수단에 기억된 프로그램 구조정보를 참조하여 분기구조를 갖는 프로그램을 분기구조에 따라 각각의 부분 프로그램으로 분할하는 분기 분할부를 가질 수도 있다.
상기 구성에 의해 프로그램 송신장치가 프로그램의 분기구조에 의한 복수의 패스 각각을 별도의 부분 프로그램으로서 송신하기 위하여, 프로그램 수신 실행장치에서는 프로그램의 분기구조에 의한 복수의 패스 중 하나의 패스에 대해서만의 부분 프로그램을 수신하여 실행할 수 있으므로 신속히 실행개시를 행할 수 있다.
또한 상기 프로그램 구조정보는 상기 프로그램 수신장치측의 능력에 따라 내부처리를 분배하는 구조를 도시하는 정보를 포함하고, 상기 분할수단은 상기 프로그램 구조정보를 참조하여 프로그램을 상기의 수신장치측의 능력별 내부처리마다 별도의 부분 프로그램에 분할하는 레벨별 분할부를 가질 수도 있다.
상기 구성은 제 2의 목적도 달성하기 위한 것으로 본 구성에 의하면 프로그램 수신 실행장치측의 능력에 따른 처리를 행하게 하기 위한 프로그램은 분기구조를 갖는 하나의 프로그램으로서 작성할 수 있기 때문에 프로그램의 작성이 용이해진다.
또한 상기 다음 실행부분 정보 부가수단은 상기 레벨별 분할부에 의해 내부처리마다 별도로 분할된 복수의 부분 프로그램에 공통부분을 갖지만 상위 부분도 갖는 선택식별자를 각각 부여하는 선택 식별자 부여부와, 상기 레벨별 분할부에 의해 내부처리마다 별도로 분할된 복수의 부분 프로그램으로의 처리속행이 필요한 부분 프로그램에는 그 처리속행이 필요한 위치에 선택링크 명령을 작성하여 삽입하는 선택링크 명령 작성부를 갖고, 상기 선택링크 명령은 프로그램 수신장치의 능력에 따라 복수의 부분 프로그램 중 어느 하나로 처리를 속행하는 의미를 나타내는 명령이라고 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치측에서는 당해 장치의 능력에 따른 처리를 하는 복수의 부분 프로그램 중 하나를 선택하고 수신하여 실행할 수 있으므로, 기억장치의 용량을 낭비하지 않으면서 능력에 따른 최적의 처리를 행할 수 있다.
또한 상기 링크명령은 필요로 하는 다른 부분 프로그램을 식별하기 위한 식별자를 당해 링크명령의 오퍼랜드에 갖게 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치측에서는 부분 프로그램의 실행을 속행하기 위해 필요한 다른 부분 프로그램의 식별자를 용이하게 취득할 수 있다.
또한 상기 선택링크 명령은 필요로 하는 다른 부분 프로그램을 식별하기 위한 기초식별자를 당해 선택링크 명령의 오퍼랜드에 갖고, 상기 기초 식별자는 상기의 프로그램 수신장치의 능력에 따른 처리를 하기 위해 복수의 부분 프로그램에 상기 선택 식별자 부여부가 부여한 선택 식별자의 공통부분의 정보를 나타내는 식별자라고 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치측에서는 당해 장치의 능력에 따른 처리를 하는 복수의 부분 프로그램 중 하나를 선택하고 수신하여 실행하는 것이 수신한 정보로부터 부분 프로그램의 식별자를 합성함으로써 용이해진다.
또한 상기 분할수단은 각각의 부분 프로그램이 소정의 크기 이하가 되도록 분할되게 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치측에서는 소정의 사이즈 이하인 부분 프로그램을 수신하여 실행할 수 있으므로 신속한 실행 개시가 실현된다.
또한 상기 소정의 크기는 한 묶음의 데이터를 연속하여 송신하는 최소 송신단위인 패킷의 사이즈라고 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치측에서는 분리 추출 가능한 최소 사이즈인 부분 프로그램을 수신하여 실행할 수 있으므로, 더욱 신속한 실행 개시가 실현된다.
또한 상기 송신수단은 부분 프로그램 복수를 디지털 방송으로서 송신하게 할 수도 있다.
상기 구성에 의해 동시에 다수의 프로그램 수신 실행장치에 프로그램을 송신할 수 있다.
또한 상기 송신수단은 또 부분 프로그램복수를 반복 송신하게 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치에서는 한번 수신한 부분 프로그램이 불필요하게 된 시점에서 기억장치 상의 당해 부분 프로그램을 기억한 영역을 해방할 수가 있고, 당해 부분 프로그램이 필요하게 된 시점에서 다시 수신하여 추출하고 기억장치에 넣을 수 있기 때문에 기억장치를 효율적으로 활용할 수 있다.
또한 상기의 복수의 부분 프로그램은 상기 프로그램 중의 복수의 에러처리의 전부 또는 일부라고 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치에서는 신속한 에러처리의 개시가 실현된다.
또한 상기 프로그램 송신장치는 적어도 영상 데이터 또는 음성 데이터 중 하나를 미리 기억하는 영상 음성 데이터 기억수단을 더 구비하며, 상기 송신수단은 복수의 부분 프로그램을 상기 영상 음성 데이터 기억수단으로부터 페치(fetch)한 적어도 영상 데이터 또는 음성 데이터 중 하나와 함께 다중화하여 송신하게 할 수도 있다.
상기 구성에 의해 프로그램 수신 실행장치에서는 영상 또는 음성을 제어하는 부분 프로그램의 실행에 의해 영상, 음성에 관련된 제어처리가 신속한 실행개시가 실현된다.
또한 상기 송신수단은 상기의 복수의 부분 프로그램을 이 ISO/IEC 13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션의 전부 또는 일부의 영역에 배치하고, ISO/IEC 138l8의 규격에 따라 다중화 및 송신을 행하게 할 수도 있다.
상기 구성에 의해 프로그램 송신장치는 부분 프로그램의 식별자로서 표 ID를 이용할 수 있고 프로그램 수신 실행장치에서는 수신한 신호로부터 트랜스포트 디코더에 의해 PID와 표 ID를 이용하여 부분 프로그램을 용이하게 추출할 수 있다.
또한 상기 프로그램 송신장치는 프로그램 수신장치로부터 송신된 부분 프로그램 지정정보를 포함하는 송신요구를 수신하는 송신요구 수신수단을 구비하고, 상기 송신수단은 상기 송신요구 수신수단이 송신요구를 수신한 경우 상기 부분 프로그램 지정정보를 참조하여 송신요구에 따라 부분 프로그램을 송신하는 요구 응답 송신부를 더 갖게 할 수도 있다.
상기 구성에 의해 프로그램 송신장치는 부분 프로그램을 송신요구가 있고 나서 송신할 수도 있으며, 프로그램 수신 실행장치에서는 한번 수신한 부분 프로그램이 불필요하게 된 시점에서 기억장치 상의 당해 부분 프로그램을 기억한 영역을 해방할 수 있고, 당해 부분 프로그램이 필요하게 된 시점에서 송신요구를 프로그램 송신장치에 보냄으로써 다시 송신된 부분 프로그램을 수신하고 추출하여 기억장치에 넣을 수 있기 때문에 기억장치를 효율적으로 활용할 수 있다.
또한 상기 프로그램 송신장치는 또 부분 프로그램마다 반복 송신하는 빈도인 우선도를 부여하는 우선도 부여수단을 구비하며, 상기 송신수단은 상기 우선도 부여수단이 부여한 우선도에 따라서 대응하는 부분 프로그램을 반복 송신하는 주기를 변경하여 부분 프로그램의 복수를 디지털 방송으로서 반복 송신하게 할 수도 있다.
상기 구성에 의해 프로그램 수신장치측에서는 프로그램의 실행에 최저한 필요한 메인 프로그램의 시작부분인 부분 프로그램의 수신에 필요한 시간이 단축되므로 신속한 프로그램의 실행개시가 실현된다. 이것도 제 1 목적을 달성하기 위한 것이다.
( 제 1 실시예 )
이하에 본 발명에 관한 프로그램 송신장치 및 프로그램 수신 실행장치에 대하여 제 1 실시예를 설명하기로 한다.
( 디지털 방송 송신장치 )
우선 디지털 방송 송신장치에 대하여 설명하기로 한다.
본 디지털 방송 송신장치는 ISO/IEC 13818에 준거하여 방송 프로그램을 구성하는 디지털 영상·음성 데이터 및 프로그램 정보나 프로그램 제어를 위한 프로그램 등을 압축하고 다중화하여 송신하는 장치이다. 여기에서 프로그램은 컴퓨터 프로그램을 말한다.
도 9는 제 1 실시예에서의 디지털 방송 송신장치의 구성을 도시한 블록도이다.
프로그램 기억부(3010)에는 방송 프로그램의 정보나 방송 프로그램 제어 등을 위한 프로그램을, 영상 데이터 기억부(3020)에는 방송 프로그램을 구성하는 영상 데이터를, 음성 데이터 기억부(3030)에는 방송 프로그램을 구성하는 음성 데이터를 시스템 정보 기억부(3040)에는 영상 데이터와 음성 데이터와 방송 프로그램의 정보 및 프로그램을 추출하기 위한 정보인 시스템 정보를 각각 기억하고 있다.
프로그램 분할부(3050)는 프로그램을 분할한다. 이하 프로그램을 분할한 후의 각각의 부분을 부분 프로그램이라 한다.
프로그램 분할부(30501)는, 프로그램 기억부(3010)에 기억된 프로그램을 분할하는 분할부(3051), 분할된 부분 프로그램마다를 식별하기 위한 정보를 부분 프로그램에 부여하는 식별자 부여부(3052), 부분 프로그램 중에 다른 부분 프로그램으로의 제어 이행을 의미하는 링크명령을 기입하는 링크명령 작성부(3053)를 갖는다.
송신부(3060)는 프로그램 기억부(3010) 중의 방송 프로그램의 정보 및 복수의 부분 프로그램과 영상 데이터 기억부(3020) 중의 영상 데이터와 음성 데이터 기억부(3030) 중의 음성 데이터와 시스템 정보 기억부(3040) 중의 시스템 정보를 다중화부(3061)에서 MPEG2의 트랜스포트 스트림화하고 더욱 다중화하여 송신한다.
또 프로그램 기억부(3010), 영상 데이터 기억부(3020), 음성 데이터 기억부(3030), 시스템 정보 기억부(3040)에는 방송할 프로그램에 대응하는 데이터가 외부의 장치 등에 의해 작성되어 수시로 저장되어 있기 때문에 송신부(3060)의 방송내용은 시간과 함께 변화한다. 단 디지털 방송의 수신장치측에서 어느 시점에서 수신을 개시하여도 프로그램의 제어가 가능하게 되도록 동일 프로그램의 영상 및 음성 데이터를 송신중일 때에는 방송 프로그램 제어를 위한 프로그램군은 반복 송신하고 있다. 즉 방송 프로그램을 제어하기 위한 프로그램 기억부(3010)의 내용을 다중화함에 있어서, 소정 간격으로 반복하여 다중화하고 있다.
도 10은 트랜스포트 스트림의 이미지를 도시한 도면이다.
시스템 정보는 PID가 10의 MPEG2의 트랜스포트 스트림(200)이 되고, 복수의 부분 프로그램은 각각이 별도의 표 ID의 MPEG2의 전용 섹션(211, 212, 213, 214, …)과 이어지는 PID가 11의 트랜스포트 스트림(210)으로 되고, 영상 데이터, 음성 데이터는 각각 PID가 12, 13인 트랜스포트 스트림(220, 230)으로 된다. 또 프로그램 정보나 프로그램 제어를 위한 데이터도 트랜스포트 스트림(210)의 전용 섹션에 저장된다. 여기에서 PID(Packet Identify)는 영상, 음성 기타의 트랜스포트 스트림을 식별하기 위한 식별자이다.
트랜스포트 스트림(200, 210, 220, 230)은 다중화부(3061)에서 다중화되어 188바이트의 트랜스포트 패킷의 열로서 송신된다.
이하 프로그램 분리부의 동작에 대하여 도 9, 도 11, 도 12를 이용하여 상세하게 설명하기로 한다.
도 11은 프로그램을 분할하는 모양을 도시한 도면이다.
프로그램(800)은 디지털 방송 수신장치에서 전용 인터프리터에 의해 해석실행되는 것으로 중간 언어로 쓰여진 바이트 코드 프로그램이다. 단 도 10에서는 설명을 위해 기술언어(記述言語) 형식으로 표현하고 있다.
도 12는 프로그램 분할부(3050)가 프로그램(800)을 부분 프로그램(801, 802, 803)으로 분할하는 처리순서를 도시한 흐름도이다.
먼저 분할부(3051)는 최종적으로 생성하는 부분 프로그램이 트랜스포트 패킷에 저장가능한 사이즈가 되도록 프로그램 기억부(3010)에 기억된 프로그램을 분할한다(단계 S3110).
여기에서 분할이라 함은 프로그램이 복수의 부분 프로그램으로 구성된다고 정하여, 개개의 부분 프로그램에 해당하는 부분의 선두 어드레스 및 최종 어드레스를 기억하는 것을 말한다. 이 선두 어드레스 및 최종 어드레스에 의해 각 부분 프로그램은 식별되고 이후의 처리가 이루어지게 된다.
다음으로 식별자 부여부(3052)는 부분 프로그램에 식별자인 표 ID를 부여한다(단계 S3120). 이 표 ID는 각 부분 프로그램을 식별하기 위한 식별자이다. 부분 프로그램(801)에는 표 ID로서 80100이, 부분 프로그램(802)에는 80200이, 부분 프로그램(803)에는 80300이 부여된다.
다음으로 링크명령 작성부(3053)는 복수의 부분 프로그램에 걸치는 프로그램의 실행 제어를 가능하게 하기 위해 링크 명령을 작성하여 부분 프로그램 중에 링크명령을 삽입한다(단계 S3130). 여기에서 링크명령은 다른 부분 프로그램으로의 제어이행을 실현하기 위한 명령을 말한다.
부분 프로그램(801)으로부터 부분 프로그램(802)으로의 계속실행을 가능하게 하기 위해 부분 프로그램(801)에는 「GET 80200」이라는 링크명령이 삽입되고, 부분 프로그램(802)로부터 부분 프로그램(803)으로의 계속이행을 가능하게 하기 위해 부분 프로그램(802)에는 「GET 80300」이라는 링크명령이 삽입된다.
여기에서 「GET n」이라는 명령의 표현은 다음 실행장소는 표 ID가 n의 부분 프로그램에 있다는 의미를 갖는다.
이렇게 하여 프로그램(800)은 부분 프로그램(801, 802, 803)으로 분할된다. 부분 프로그램은 각각이 별도의 MPEG2의 전용 섹션을 구성하게 되고 최종적으로는 송신부(3060)에 의해 송신된다.
( 디지털 방송 수신장치 )
다음으로 디지털 방송 수신장치에 대하여 설명하기로 한다.
도 13은 제 1 실시예에서의 디지털 방송 수신장치의 구성을 도시한 블록도이다.
디지털 방송 수신장치(1030)는 ISO/IEC 13818에 준거하여 디지털 방송 송신장치로부터 위성(1020)을 통해 송신되는 방송 프로그램을 수신하는 장치이다.
디지털 방송 수신장치(1030)는, 수신부(1040)와, 분리추출부(1050)와, 화상 음성 정보 신장부(1060)와, 기억부(1070)와, 프로그램 존재여부 판단부(1071)와, 바이트 코드 인터프리터(1090)와, 제어부(1100)와, 재생부(1110)와, 표시부(1120)와, 음성 출력부(1130)와, 신호 수신부(1140)를 구비한다.
또한 기억부(1070)는 이벤트 정보 관리부(1080)와 에러처리 정보 관리부(1081)를 갖고, 바이트 코드 인터프리터(1090)는 링크명령 처리부(1091)를 갖는다.
여기에서 프로그램 존재여부 판단부(1071)와 바이트 인터프리터(1090) 및 제어부(1100)는 메모리와 메모리에 저장된 제어 프로그램과 CPU로 구성된다.
디지털 방송 송신장치로부터 송신되는 신호를 디지털 방송 수신장치(1030)는 수신부(1040)로 수신한다. 수신부(1040)는 수신하는 위성을 절환하는 기능을 갖는다. 분리추출부(1050)는 이른바 TS 디코더이고 수신한 트랜스포트 스트림으로부터 필요한 스트림을 추출하여 전송한다. 수신하는 위성의 절환이나 필터링의 지시 등의 수신부(1040) 및 분리추출부(1050)의 제어는 제어부(1100)가 행한다.
분리추출부(1050)는 PID 또는 PID와 표 ID를 이용하여 필요한 스트림의 추출을 행하는 것으로, PID=10을 지정하여 트랜스포트 스트림(200)을 추출하고 기억부(1070)에 저장한다. 제어부(1100)는 트랜스포트 스트림(200)으로서 송신된 시스템 정보로부터 영상, 음성, 다른 데이터의 PID를 얻어 분리추출부에 추출 지시를 행하게 된다.
분리추출부(1050)에 의해 영상 및 음성의 데이터는 직접 화상 음성 신장부(1060)에 송신된다. 화상 음성 신장부(1060)는 MPEG2 디코더이고 송신된 압축 데이터를 리얼 타임으로 신장하고 신장한 데이터를 재생부(1110)에 송신한다.
재생부(1110)는 제어부(1100)의 지시에 따라, 영상 데이터라면 표시부(1120)에, 음성 데이터라면 음성 출력부(1130)에 출력한다.
분리추출부(1050)로부터 영상 및 음성 이외의 데이터, 즉 프로그램 정보나 프로그램 제어를 위한 프로그램은 제어부(1100)의 지시에 따라 기억부(1070)에 송신된다. 이에 따라 기억부(1070)에는 프로그램 제어를 위한 데이터, 유럽의 DVB(Digital Video Broadcasting)에 규정되어 있는 EPG(Electric Program Guide)를 위한 데이터, 바이트 인터프리터(1090)가 해석실행하는 바이트 코드 프로그램 등이 저장된다.
또 바이트 코드 프로그램은 부분 프로그램으로 분할되어 있다.
상기 프로그램 제어를 위한 데이터에는 이용자의 조작이나 기기의 동작 상 발생하는 각종 이벤트에 대응하여 기동할 바이트 코드 프로그램을 구성하는 선두의 부분 프로그램의 표 ID가 있고 이 데이터는 제어부(1100)의 제어에 의해 이벤트 정보 관리부(1080)에 저장된다.
또한 데이터가 에러처리 정보인 경우에는 당해 데이터는 에러처리 정보 관리부(1081)에 저장된다. 에러처리 정보는 에러 처리표와 에러처리내 에러 처리표로 이루어진다. 또한 에러처리 정보 관리부(1081)에는 미리 디폴트 에러 처리표, 디폴트 에러처리내 에러 처리표가 저장되어 있다.
또 에러처리 정보의 취급에 대하여 후술하기로 한다.
이벤트 정보 관리부(1080)에 저장된 정보는 이벤트 발생에 대하여 제어부(1100)가 바이트 코드 인터프리터(1090)를 기동할 때 어느 부분 프로그램을 실행하는지를 지시하기 위한 제어부(1100)에 의해 참조된다.
에러처리 정보 관리부(1081)에 저장된 에러처리 정보는 에러처리가 필요한 경우에 바이트 코드 인터프리터(1090)에서 참조된다.
신호 수신부(1140)는 리모콘 등에 의한 사용자로부터의 입력신호를 수신한다. 신호 수신부(1140)가 수신한 신호는 데이터로서 제어부(1100)에 송신되고 제어부(1100)는 송신된 데이터를 판단하여 바이트 코드 인터프리터(1090)에 바이트 코드 프로그램의 실행을 지시하거나 EPG를 포함하는 다른 서비스처리를 행한다.
또 기억부(1070)의 영역관리를 행하는 기능으로서 메모리 관리부(도시 생략)가 있다. 메모리 관리부는 예를 들면 부분 프로그램을 분리추출하여 기억부(1070)에 기입하려고 하는 경우 등의 기억부(1070)로의 데이터 기입시의 메모리 관리를 행하는 것으로, 기억부(1070)에 부분 프로그램을 기입할 만큼의 빈 영역이 없을 경우 LRU(Least Recently Used) 방식을 이용하여 일부의 부분 프로그램을 메모리로부터 삭제하고 영역을 비운 뒤 기입할 부분 프로그램을 기입한다.
바이트 코드 인터프리터(1090)는 바이트 코드 프로그램을 차례로 해석실행하는 인터프리터이고 바이트 코드 프로그램 실행시 바이트 코드를 디지털 방송 수신장치내 각 부분의 프로세서에 대한 네이티브 코드(native code)로 번역하여 각 부분의 프로세서를 동작시킨다.
바이트 코드 프로그램은 디지털 방송 송신장치측에서 복수의 부분 프로그램으로 분할되어 송신되는 것으로 복수의 부분 프로그램의 집합으로서 구성된다.
여기에서 도 11, 도 13, 도 14, 도 15를 이용하여 바이트 코드 인터프리터(1090)의 동작에 대하여 설명하기로 한다.
도 14는 바이트 코드 인터프리터(1090)가 행하는 바이트 코드 프로그램 실행 제어처리를 도시한 흐름도이다.
이 플로우는 이용자의 조작에 의해 발생하거나 또는 기기의 동작상 발생하는 이벤트에 대응하는 바이트 코드 프로그램을 실행하는 처리이다.
여기에서는 바이트 코드 프로그램이 상술한 도 11에서 도시한 부분 프로그램(801, 802, 803)으로 구성되어 있고, 현재 부분 프로그램(801)을 기억부(1070)에 도입하여 그 실행을 개시하기 직전의 상황부터 설명하기로 한다.
먼저 판독 해석을 실행하기 위한 프로그램 행을 나타내는 라인(line)을 0으로 초기 설정한다(단계 S301). 다음으로 라인에 1을 더하고(단계 S302) 에러 코드를 나타내는 에러를 0으로 초기설정한다(단계 S303).
다음으로 라인행째의 명령이 별도의 부분 프로그램을 취득하는 명령인 링크명령인지의 여부를 판단하고(단계 S304), 만약 링크명령이면 부분 프로그램의 취득처리(단계 S305)를 행하고, 그렇지 않으면 명령처리를 실행한다(단계 S310).
이에 따라 부분 프로그램(801)의「PUSH A」는 단계 S310의 명령처리에 의해 실행된다. 명령처리(단계 S310)는 각종 명령에 따른 처리를 바이트코드 인터프리터(l090) 내부의 변수 조작이나 제어부(1100)에 의한 디지털 방송 수신장치 내의 각부 및 외부 접속된 기기의 제어에 의해 실현되는 처리이다.
명령처리 실행후에 실행 결과를 도시하는 에러 코드가 설정되고(단계 S311),다음으로 에러 처리를 행하며(단계 S312), 프로그램이 그 명령에서 종료하는 것이 아니면 단계 S302로 되돌아가 라인에 1을 더하여 다음 행을 처리한다.
이로써, 다음에는 부분 프로그램(801)의「PUSH B」가 실행된다. 단계 S302, S303, S304, S3l0, S311, S312, S313이 반복 실행된 후「GET 80200」이 실행된다.
이「GET 80200」은 링크 명령이기 때문에 단계 S304로부터 예(YES)의 분기로 진행하여 부분 프로그램 취득처리가 실행된다(단계 S305).
도 15는 부분 프로그램 취득처리의 흐름도이다.
우선 링크명령 처리부(1091)는 에러 코드를 0으로 한다(단계 S4001) .
다음으로 프로그램 존재여부 판단부(1071)에 표 ID가 80200의 부분 프로그램이 존재하는가를 묻는다(단계 S4010).
만약 그렇다면 예(YES)의 분기로 진행하여 부분 프로그램 취득처리를 완료한다.
만약 당해 부분 프로그램이 존재하지 않으면 표 ID = 80200을 지정하여 당해 부분 프로그램을 추출하도록 제어부(ll00)를 통해 분리 추출부(1050)에 지시한다 (단계 S4020).
다음으로 무한 루프를 방지하기 위한 루프 카운터를 0으로 한다(단계 S4030).
그 후 프로그램 존재여부 판단부(1071)에 표 ID가 80200의 부분 프로그램이 존재하는가를 묻고(단계 S4031), 존재하는 경우에 한하여 예(YES)의 분기로 진행하여 부분 프로그램 취득처리를 완료한다.
만약 존재하지 않으면 아니오(NO)의 분기로 진행하여 루프 카운터가 10보다 크지 않으면(단계 S4032) 루프 카운터를 1증가하고(단계 S4033), 부분 프로그램의 존재체크(단계 S4031)로 되돌아간다.
단계 S4032에 있어서 루프 카운터가 10보다 큰 경우에는 에러 코드를 1로 설정한다(단계 S4040).
이에 따라 부분 프로그램 취득처리는 완료된다.
이하 도 14의 흐름도로 설명을 되돌린다.
부분 프로그램 취득처리가 성공했는지를 에러 코드로 판정하고(단계 S306), 성공한 경우에는 예(YES)의 분기로 진행하여 프로그램 실행 제어처리를 행한다(단계 S308). 즉 취득한 부분 프로그램에 대하여 도 14의 흐름도 전체에 도시하는 프로그램 실행 제어처리를 새롭게 행한다.
이 때 지금까지 행하고 있는 처리에 대해서는 새로운 프로그램 실행 제어처리의 종료후 계속할 수 있도록 필요한 정보는 바이트코드 인터프리터 내에 보존된다.
이에 따라 부분 프로그램(802)이 실행된다(단계 S301∼S3l3).
그 후, 프로그램 실행 제어처리에서의 에러에 따라 에러 코드를 설정한다 (단계 S309).
또한 부분 프로그램 취득처리(단계 S305)에 실패한 경우에는 단계 S306으로부터 단계 S307로 진행하여 에러 코드를 설정한다.
다음으로 에러 코드에 기초하여 에러처리를 행한다(단계 S312). 단 에러처리에서 에러 코드가 O이면 아무런 처리를 행하지 않는다.
프로그램이 종료라면(단계 S313) 처리를 종료하고, 종료가 아니면 단계 S302로 되돌아가 라인에 l을 더하여 다음 행을 처리한다.
따라서 부분 프로그램(802)의「GET 80300」의 실행후에 부분 프로그램(803)이 계속해서 실행되고 부분 프로그램(803) 마지막의 「종료」를 단계 S313에서 판단한 경우에 도 14의 흐름은 완료된다.
이와 같이 바이트코드 인터프리터(1090)에 의해 프로그램(801, 802, 803)은 차례로 실행된다.
여기에서 또한 도 14의 단계 S312의 에러 처리에 대하여 상세히 설명하기로 한다.
이 에러 처리는 에러처리 정보관리부(1081)에 저장된 에러 처리정보, 즉 에러 처리표 및 에러처리내 에러 처리표를 참조하여 행하여진다.
도 16은 에러처리를 도시하는 흐름도이다.
이하 에러 처리표 및 에러처리내 에러 처리표를 에러표라 하고, 디폴트 에러 처리표 및 디폴트 에러처리내 에러 처리표를 디폴트 에러표라 한다.
에러 정보관리부(1081)에 에러표가 저장되어 있는지를 체크하고(단계 S401), 이미 저장되어 있으면(단계 S402) 당해 에러표의 내용에 따라 에러를 처리한다(단계 S406). 단계 S402에서 에러표가 저장되어 있지 않다고 판단된 경우에는 에러표 취득처리를 행한다(단계 S403). 에러표의 표 ID는 미리 정해진 것이며, 에러표의 취득은 표 ID의 지정에 의해 제어부(1100)를 통해 분리 추출부(1050)를 제어함으로써 행한다.
만약 에러표를 취득할 수 있으면 에러처리 정보관리부(1081)는 당해 에러표를 저장한다. 또한 에러표를 수신할 수 없는 등의 어떠한 이유에 의해 취득할 수 없는 경우에는(단계 S404), 에러처리 정보관리부(l081)는 미리 기억되어 있는 디폴트 에러표를 에러표로서 취급하도록 설정한다(단계 S405). 이에 따라 에러표가 설정되고 에러처리가 실시된다(단계 S406). 여기에서 에러표에 등록되어 있지 않은 에러 코드, 예를 들면 0은 비에러로서 취급되어 아무런 처리도 되지 않는다.
또 단계 S406에서의 에러표에 따른 에러처리에서 에러가 발생된 경우(단계 S407), 에러처리내 에러 처리표를 참조하여 에러 처리내용의 에러처리가 행해진다(단계 S408).
이와 같이 도 14의 단계 S3l2에 도시된 에러처리가 실행된다.
여기에서 상술한 단계 S406의 에러처리에 있어서 참조되는 에러 처리표, 에러처리내 에러 처리표, 디폴트 에러 처리표, 디폴트 에러처리내 에러표에 대하여 도 17, 도 18을 참조하여 설명하기로 한다.
도 17은 에러 처리표, 에러처리내 에러 처리표의 구성 및 에러처리 코드를 설명하기 위한 도면이다.
에러 처리표(50l) 및 에러처리내 에러 처리표(502)는 에러 코드와 에러처리 코드를 대응하여 설치할 수 있는 표이다. 에러처리 코드의 설명(503)은 에러 처리표(501) 및 에러처리내 에러 처리표(502)에 저장된 에러처리코드에 대한 설정예이다. 에러처리 코드의 설명(503)에 나타낸 바와 같이 에러처리 코드는 에러처리 그 자체를 나타내는 코드와, 에러처리 후에 놓여지는 상태를 나타내는 OP를 조합시킨 것이다.
예를 들면 에러 처리표(501)에서 0에 의한 제산이 행해진 경우의 에러 코드인 001에 대한 에러처리 코드는 0102를 할당하고 있다. 에러처리 코드의 0102는 503에 도시된 바와 같이 현재의 프로그램이 처리되어 있는 단위인 내용을 파기하고 서비스의 디폴트 처리를 행하는 것을 의미한다. 서비스의 디폴트 처리란, 예를 들면 메뉴 선택 화면을 표시하는 등의 처리이다.
또한 스택 오버플로우가 발생된 경우의 에러 코드인 002에 대한 에러처리 코드는 0399를 할당하고 있다. 에러처리 코드의 0399는 표 ID가 99인 부분 프로그램을 기동하는 것을 의미한다.
또 에러처리내 에러 처리표(502)의 구조는 에러 처리표와 동일하다. 에러처리내 에러 처리표(502)는 이미 에러가 발생되어 있는 경우의 처리를 도시하는 것이기 때문에 보다 안전한 처리가 행해지도록 설정되어 있다.
도 18은 디폴트 에러 처리표, 디폴트 에러처리내 에러 처리표의 구성을 도시한 도면이다.
디폴트 에러 처리표(601) 및 디폴트 에러처리내 에러 처리표(602)의 구성은 상술한 에러 처리표(501) 및 에러처리내 에러 처리표(502)와 각각 동일하다.
이렇게 하여 본 디지털 방송 수신장치는 분할되어 송신된 바이트코드 프로그램을 필요시에 도입하면서 실행함으로써 이용자의 조작에 의해 발생하거나 또는 기기의 동작상 발생하는 각종 이벤트에 신속히 대응할 수 있다.
( 제 2 실시예 )
이하에 본 발명에 관한 프로그램 송신장치 및 프로그램 수신 실행장치에 대하여 제 2 실시예를 설명하기로 한다.
( 디지털 방송 송신장치 )
본 디지털 방송 송신장치는 ISO/IEC13818에 기초하여 방송 프로그램을 구성하는 디지털영상·음성 데이터 및 프로그램 정보나 프로그램 제어를 위한 프로그램 등을 압축하여 다중화하여 송신하는 장치이다.
도 19는 제 2 실시예에서의 디지털 방송 송신장치의 구성을 도시하는 블록도이다.
프로그램 기억부(8010)에는 방송 프로그램의 정보나 방송 프로그램 제어 등을 위한 프로그램을, 영상 데이터 기억부(8020)에는 방송 프로그램을 구성하는 영상 데이터를, 음성 데이터 기억부(8030)에는 방송 프로그램을, 시스템 정보 기억부(8040)에는 영상 데이터 및 음성 데이터와 방송 프로그램의 정보 및 프로그램을 추출하기 위한 정보인 시스템 정보를 기억하고 있다.
또한 프로그램 구조정보 기억부(8011)에는 프로그램 기억부(8010)에 기억된 프로그램의 구조에 관한 정보가 기억되어 있다. 이하 이 프로그램의 구조에 관한 정보를 프로그램 구조정보라 한다.
프로그램 분할부(8050)는 프로그램 기억부(8010)에 기억된 프로그램을 프로그램 구조정보 기억부(8011)를 참조하여 분할한다. 이하 프로그램을 분할한 후의 각각의 부분을 부분 프로그램이라 한다.
프로그램 분할부(8050)는 프로그램기억부(8010)에 기억된 프로그램을 분할하는 분할부(8051)와, 분할된 부분 프로그램별로 식별하기 위한 정보를 부분 프로그램에 부여하는 식별자 부여부(8052)와, 부분 프로그램 중에 다른 부분 프로그램으로의 제어 이행을 의미하는 링크 명령을 기입하는 링크명령 작성부(8053)와, 부분 프로그램을 반복 송신하는 빈도를 나타내는 우선도를 부분 프로그램마다 설정하는 우선도 부여부(8054)를 갖는다.
송신부(8060)는 프로그램 기억부(8010) 중의 방송 프로그램의 정보 및 복수의 부분 프로그램과 영상 데이터 기억부(8020) 중의 영상 데이터와 음성 데이터 기억부(8030) 중의 음성 데이터와 시스템 정보 기억부(8040) 중의 시스템 정보를 다중화부(8061)에서 MPEG2의 트랜스포트 스트림화하고 다시 다중화하여 송신한다. 다중화부(8061)는 다중화를 부분 프로그램마다 설정된 우선도를 참조하여 행한다. 또 우선도는 우선도 부여부(8054)에 의해 프로그램 기억부(8010) 중의 소정 영역에 저장되어 있다.
이러한 제 2 실시예에서의 디지털 방송 송신장치가 제 1 실시예에서의 디지털 방송 송신장치와 다른 점은 프로그램 구조정보 기억부(8011)를 구비한 점과, 이것을 참조하여 프로그램 분할부(8050)가 동작하는 점과, 또한 부분 프로그램마다 부여된 우선도에 따라 다중화부(8061)가 다중화하는 점이다.
이하 프로그램 분할부(8050)의 동작에 대하여 도 12, 도 20, 도 21을 참조하여 상세히 설명하기로 한다.
도 20은 프로그램 구조를 도시한 개념도이다.
통상적으로 프로그램은 몇개의 분기를 포함한다. 이 분기나 서브 프로그램의 호출 등의 구조에 관한 정보가 프로그램 구조정보이고, 예를 들면 고급 언어로 기술된 소스 프로그램은 그 자체의 프로그램 구조정보를 갖는다. 또한 고급 언어로 기술된 소스 프로그램을 컴파일한 후의 중간언어 코드 등에도 프로그램 구조정보는 존재한다.
제 2 실시예에서는 프로그램 구조정보 기억부(8011)에는 소스 프로그램 레벨의 프로그램 구조정보가 저장되어 있다고 하자. 즉, 프로그램 기억부(8010)에 기억되어 있는 분할 대상이 되는 프로그램에 대한 C언어에서의「이프(if)」문이라든가「스위치 케이스(switch-case)」문에 대한 정보 등이 기억되어 있다.
또한 프로그램 구조정보 기억부(8011)에는 레벨별 처리를 나타내는 정보도 기억되어 있다. 여기에서 레벨별 처리란 디지털 방송 수신장치의 능력 레벨에 따른 내용의 처리를 말하며, 예를 들면 고성능의 수신장치에는 레벨 1용의 처리를 행하게 하고, 중위의 성능의 수신장치에는 레벨 2용의 처리를 행하게 하고, 성능이 낮은 수신장치에는 레벨 3용의 처리를 행하게 하는 것 같은 선택 실행처리를 말한다. 예를 들면 표시 능력의 레벨로서는 제 1의 레벨로서 10밀리초 간격으로 화면전체를 블링킹(점멸)시킬 수 있는 레벨, 제 2의 레벨로서 10밀리초 간격으로 화면상에 묘사된 틀만을 블링킹시킬 수 있는 레벨, 제 3의 레벨로서 l00 밀리초 간격으로 화면 상에 묘사된 틀을 블링킹시킬 수 있는 레벨을 정할 수 있다.
또 프로그램에 있어서 레벨별 처리는「스위치 레벨」과 같이 정해진 형태로 기술하는 등을 정해두면 프로그램의 해석에 의해 프로그램 구조정보를 작성할 수도 있다.
프로그램 분할부(8050)는 제 1 실시예와 같이 도 12의 흐름도에 따라 동작한다.
단계 S3110에서 분할부(8051)는 프로그램 구조정보 기억부(8011)에 기억되어 있는 프로그램 구조정보를 참조하여 프로그램 기억부(8010)에 기억되어 있는 프로그램을 분할한다.
분할의 제 1의 규칙은 분할한 각각의 부분 프로그램은 최종적으로 트랜스포트 패킷의 사이즈 이하가 되도록 분할하는 것이다. 또 제 1의 규칙은 다른 규칙에 의한 분할후에 적용된다.
분할의 제 2의 규칙은 프로그램 중의「if」문에 의해 분기하고 있는 구조를 검출하면 그것을 별도로 분할하는 것이다.
분할의 제 3의 규칙은 프로그램 중의「스위치 케이스」문에 의해 분기하고 있는 구조를 검출하면 「케이스」의 가지 각각을 별개로 분할하는 것이다.
도 21은 분할후의 프로그램의 이미지를 도시한 도면이다.
분할부(8051)는 프로그램 중의 판단 블록(5020)으로 나타내는 「if」에 의해 블록(5030)으로 나타내는 처리 2와 블록(5040)으로 나타내는 처리 3을 분할하고, 또한 판단 블록(5050)으로 나타내는 「if」에 의해 블록(5060)으로 나타내는 처리 4와 블록(5070)으로 나타내는 처리 5를 분할한다. 이 결과로 당해 프로그램은 부분 프로그램 5100과 5200과 5300으로 분할된다. 또 여기에서는 부분 프로그램(5100, 5200, 5300)은 모두 트랜스포트 패킷보다 작은 사이즈이다.
도 22는 「switch-case」문을 갖는 구조의 프로그램 분할후의 이미지를 도시한 도면이다.
이 도 22는 레벨별 처리의 이미지를 도시한 것이다.
분할부(8051)는 프로그램 중의 판단 블록(6020)으로 나타내는 「스위치 케이스」에 의해 블록(6030)으로 나타내는 레벨 1용 처리와, 블록(6040)으로 나타내는 레벨 2용 처리와, 블록(6050)으로 나타내는 레벨 3용 처리를 모두 별개가 되도록 분할한다.
이 결과로 당해 프로그램은 부분 프로그램 6100, 6200, 6300, 6400 및 6500으로 분할된다. 각각의 부분 프로그램은 트랜스포트 패킷보다 작다.
이와 같이 분할부(8051)는 프로그램을 복수의 부분 프로그램으로 분할한다.(단계 S 3110).
다음으로 식별자 부여부(3052)는 프로그램 구조정보를 참조하여 부분 프로그램에 표 ID를 부여한다(단계 S3120). 여기에서 상술한 레벨별 처리인 부분 프로그램(6200, 6300, 6400)에는 이 관계를 알 수 있도록 표 ID를 붙인다. 따라서 프로그램(6200)의 표 ID는 60101, 프로그램(6300)의 표 ID는 60102, 프로그램(6400)의 표 ID는 60103으로 된다.
다음으로 링크명령 작성부에 의해 각각의 부분 프로그램에 링크 명령이 삽입된다(단계 S3130). 이 경우에도 프로그램 구조정보를 참조하여 레벨별 처리의 분기전 부분을 포함하는 부분 프로그램(6100)의 최후에「GET 601OX」라는 링크 명령이 작성되어 삽입된다.
이것은「표 ID가 6010n(n은 레벨번호)의 부분 프로그램을 취득하여 실행하라」는 의미의 명령이 된다. 즉 「GET mX」 형식의 링크 명령에서는 기초 식별자가 m이고 취득해야 할 부분 프로그램의 식별자는 기초 식별자와 레벨 번호를 합성함으로써 생성할 수 있다. 여기에서 기초 식별자란 레벨번호와 합성함으로써 식별자를 생성할 수 있는 것을 말한다. 따라서 디지털 방송 수신장치측의 프로그램의 실행을 제어하는 부분이「GET 6010X」를 해석하여 실행하는 경우에는 기초 식별자인 「6010」과 당해 디지털 방송 수신장치의 레벨번호를 합성하여 취득할 부분 프로그램의 식별자인 표 ID를 생성하게 된다.
따라서 최종적으로 이들 부분 프로그램이 송신된 후는 이 부분 프로그램(6100)을 해석 실행하는 디지털 방송 수신장치측의 바이트코드 인터프리터에 의해 부분 프로그램(6200, 6300, 6400) 중 어느 하나가 도입되어 실행된다.
이상과 같이 프로그램 분할부(8050)는 프로그램 구조정보를 참조하여 프로그램을 복수의 부분 프로그램으로 분할한다.
이하 프로그램 분할부(8050)의 우선도 부여부(8054)에 의한 부분 프로그램으로의 우선도 부여 동작에 대하여 도 23을 참조하여 설명하기로 한다.
도 23은 부분 프로그램의 우선도를 도시하는 개념도이다.
도 23은 상술한 부분 프로그램(5100), 부분 프로그램(5200) 및 부분 프로그램(5300)의 관계와, 각각의 부분 프로그램에 설정하는 우선도(5101, 5201, 5301)를 도시한다.
화면 이미지(5102)는 부분 프로그램(5100)의 동작에 의해 표시하는 화면의 이미지예이고, 여기에서는「상품 1」과 「상품 2」라고 묘사된 버튼을 표시한 통신 판매 프로그램을 화면에 표시하는 이미지를 보이고 있다. 이 예에서는 이용자가「상품 1」이라고 그려진 버튼을 선택한 경우에 대응하는 처리는 부분 프로그램(5200)이고, 이용자가「상품 2」라고 그려진 버튼을 선택한 경우에 대응하는 처리는 부분 프로그램(5300)이다.
우선도 부여부(8054)는 프로그램 구조정보 기억부(8011)에 기억되어 있는 프로그램 구조정보를 참조함으로써 복수의 부분 프로그램에 대하여 메인이 되는 부분 프로그램을 결정하고, 그 프로그램에 가장 높은 우선도 A를 부여한다. 여기에서는 메인 프로그램의 입구 부분인 부분 프로그램(5100)에 우선도 A를 부여하게 된다(도 21 참조).
우선도 부여부(8054)는 다음에 우선도 A의 부분 프로그램으로부터, 예를 들면「IF」에 의해 분기하는 부분 프로그램을 조사하여 해당하는 부분 프로그램에 우선도 A보다 낮은 우선도를 갖는 우선도 B를 부여한다. 여기에서는 부분 프로그램(5200)과 부분 프로그램(5300)에 우선도 B를 부여하게 된다(도 21 참조).
우선도 부여부(8054)는 다음에 우선도 B의 부분 프로그램으로부터 분기하는 부분 프로그램을 조사하여 해당하는 부분 프로그램에 우선도 B보다 낮은 우선도인 우선도 C를 부여한다. 또 여기에서는 우선도 C에 해당하는 예는 도시되지 않는다.
이렇게 하여 우선도 부여부(8054)는 각 부분 프로그램에 우선도를 부여하고, 부여된 우선도는 프로그램 기억부(8010) 중의 소정 영역에 저장된다.
또 이용자의 조작에 대응하는 동작을 기술한 프로그램에서는 이용자의 조작에 따른 처리를 실현하기 위해 일반적으로 분기구조를 취한다(도 21, 도 23 참조). 따라서 본 실시예에서의 디지털 방송 송신장치에 있어서는 이 분기구조에 기초하여 우선도 부여부(8054)가 우선도를 부여하는, 즉 프로그램의 분기의 깊이와의 관계에 있어서 우선도를 부여하는 것이다. 단 우선도의 부여 방법은 이것에 한정되지 않고 프로그램 구조정보 기억부(8011)에 미리 우선도를 나타내는 정보를 저장해 두고 이것에 따라 우선도를 부여해도 된다.
이하 다중화부(8061)에서의 우선도에 따른 부분 프로그램의 다중에 대하여 도 24를 참조하여 설명하기로 한다.
도 24는 우선도에 따른 부분 프로그램의 다중화의 개념을 도시한 도면이다. 도 24는 복수의 부분 프로그램을 다중화부(8061)에서 다른 스트림 데이터와 같이 다중화하는 경우에 있어서 상술한 우선도 A의 부분 프로그램(5100), 우선도 B의 부분 프로그램(5200) 및 부분 프로그램(5300)의 다중화의 타이밍을 시간축(5001)에 기초하여 도시한 것이다.
다중화부(8061)는 프로그램 기억부(8010)의 소정 영역 중에 기억되어 있는 우선도를 참조하여 각각의 부분 프로그램을 다중화할 때의 시간에 대한 빈도를 정하여 다중화한다. 우선도가 높은 것일수록 빈도를 높게 한다. 도 24에 도시된 예는 다중화부(8061)는 우선도 A의 부분 프로그램을 우선도 B의 부분 프로그램보다 높은 빈도로 다중화하는 것을 나타낸다.
이렇게 하여 다중화된 프로그램은 최종적으로는 송신부(8060)에 의해 우선도에 따른 빈도로 송신된다.
이것에 의해 디지털 방송 수신장치측에서 프로그램의 실행에 최소한 필요한 메인 프로그램의 입구부분인 부분 프로그램의 수신에 필요로 하는 시간이 줄어든다는 효과를 기대할 수 있다.
( 디지털 방송 수신장치 )
다음으로 디지털 방송 수신장치에 대하여 설명하기로 한다.
도 25는 제 2 실시예에서의 디지털 방송 수신장치의 구성을 도시한 블록도이다.
디지털 방송 수신장치(7030)는 ISO/IEC13818에 기초하여 디지털 방송 송신장치로부터 위성(7020)을 통해 송신되는 방송 프로그램을 수신하는 장치이다.
디지털 방송 수신장치(7030)는 수신부(7040)와, 분리 추출부(7050)와, 화상음성 정보신장부(7060)와, 기억부(7070)와, 프로그램 존재여부 판단부(707l)와, 바이트코드 인터프리터(7090)와, 제어부(7100)와, 재생부(7ll0)와, 표시부(7120)와, 음성 출력부(7130)와, 신호 수신부(7140)와, 단말정보 기억부(7150)를 구비한다.
또 기억부(7070)는 이벤트 정보관리부(7080)와 에러처리 정보관리부(7081)를 갖고, 바이트코드 인터프리터(7090)는 링크명령 처리부(709l)를 갖는다.
여기에서 프로그램 존재여부 판단부(7071)와 바이트코드 인터프리터(7090) 및 제어부(7100)는 메모리와 메모리에 저장된 제어 프로그램 및 CPU로 구성된다.
디지털 방송 송신장치로부터 송신되는 신호를 디지털 방송 수신장치(7030)는 수신부(7040)로 수신한다. 수신부(7040)는 수신하는 위성을 전환하는 기능을 가진다. 분리 추출부(7050)는 소위 TS 디코더이고, 수신한 트랜스포트 스트림으로부터 필요한 스트림을 추출하여 전송한다. 수신할 위성의 전환이나 필터링의 지시 등이라는 수신부(7040) 및 분리 추출부(7050)의 제어는 제어부(7100)가 행한다.
분리 추출부(7050)는 PID 또는 PID와 표 ID를 이용하여 필요한 스트림의 추출을 행하는 것이며, PID=10을 지정하여 트랜스포트 스트림(200)을 추출하여 기억부(7070)에 저장한다. 제어부(7100)는 트랜스포트 스트림(200)으로서 송신된 시스템 정보로부터 영상, 음성, 다른 데이터의 PID를 얻어 분리 추출부에 추출지시를 하게 된다.
분리 추출부(7050)에 의해 영상 및 음성의 데이터는 직접 화상음성 신장부(7060)로 송신된다. 화상음성 신장부(7060)는 MPEG2 디코더이고, 송신된 압축데이터를 실시간에 신장하고, 신장된 데이터를 재생부(7110)로 보낸다.
재생부(7110)는 제어부(7110)의 지시에 따라 영상 데이터이면 표시부(7120)에, 음성 데이터이면 음성 출력부(7130)에 출력한다.
분리 추출부(7050)로부터 영상 및 음성 이외의 데이터, 즉 프로그램 정보나 프로그램 제어를 위한 프로그램은 제어부(7100)의 지시에 따라 기억부(7070)에 송신된다. 이에 따라 기억부(7070)에는 프로그램 제어를 위한 데이터, 유럽의 DVB (Digital Video Broadcasting)에서 규정되어 있는 EPG(Electric Program Guide)를 위한 데이터, 바이트코드 인터프리터(7090)가 해석 실행하는 바이트코드 프로그램 등이 저장된다.
또 바이트코드 프로그램은 부분 프로그램으로 분할되어 있다.
상기 프로그램 제어를 위한 데이터에는 이용자의 조작에 의해 발생 또는 기기의 동작상 발생하는 각종 이벤트에 대응하여 기동할 바이트코드 프로그램을 구성하는 선두의 부분 프로그램의 표 ID가 있고, 이 데이터는 제어부(7100)의 제어에 의해 이벤트 정보관리부(7080)에 저장된다.
또한 데이터가 에러처리 정보인 경우에는 당해 데이터는 에러처리 정보관리부(7081)에 저장된다. 에러처리 정보란 에러 처리표, 에러처리내 에러 처리표로 이루어진다. 또한 에러처리 정보관리부(7081)에는 미리 디폴트 에러 처리표, 디폴트 에러처리내 에러 처리표가 저장되어 있다.
이벤트 정보관리부(7080)에 저장된 정보는 이벤트 발생에 대하여 제어부(7100)가 바이트코드 인터프리터를 기동할 때 어떤 부분 프로그램을 실행하는지를 지시하기 위해 제어부(7100)에 의해 참조된다.
에러처리 정보관리부(7081)에 저장된 에러처리 정보는 에러처리가 필요한 경우에 바이트코드 인터프리터(7090)로부터 참조된다.
신호 수신부(7140), 리모콘 등에 의한 사용자로부터의 입력신호를 수신한다. 신호 수신부(7140)가 수신한 신호는 데이터로서 제어부(7100)에 보내지고, 제어부(7100)는 송신된 데이터를 판단하여 바이트코드 인터프리터(7090)에 바이트코드 프로그램의 실행을 지시하거나 혹은 EPG을 포함하는 다른 서비스 처리를 행한다.
또 기억부(7070)의 영역관리를 하는 기구로서 메모리 관리부(도시 생략)가 있다. 메모리 관리부는, 예를 들면 부분 프로그램을 분리 추출하여 기억부(7070)에 기입하고자 하는 경우 등의 기억부(7070)로의 데이터 기입시의 메모리 관리를 행하는 것이며, 기억부(7070)에 부분 프로그램을 기입하는 만큼의 빈 영역이 없는 경우에 LRU(Least Recently Used)방식을 이용하여 일부의 부분 프로그램을 메모리로부터 삭제하여 영역을 비우고 나서 기입해야 되는 부분 프로그램을 기입한다.
바이트코드 인터프리터(7090)는 바이트코드 프로그램을 차례로 해석 실행하는 인터프리터이고, 바이트코드 프로그램 실행시에 바이트코드를 디지털 방송 수신장치내 각부의 프로세서에 대한 네이티브 코드에 번역하여 각부의 프로세서를 동작시킨다.
바이트코드 프로그램은 디지털 방송 송신장치측에서 복수의 부분 프로그램으로 분할되어 송신되는 것이며 복수의 부분 프로그램의 집합으로서 구성된다.
이러한 제 2 실시예에서의 디지털 방송 수신장치가 제 1 실시예에서의 디지털 방송 수신장치와 다른 점은 단말정보 기억부(7150)를 구비한 것과, 이것을 참조하여 바이트코드 인터프리터(7090)가 동작하는 점이다.
따라서 이하 바이트코드 인터프리터(7090)가 단말정보 기억부(7l50)를 참조하여 어떻게 동작하는지에 대하여 도 26을 이용하여 상세히 설명하기로 한다.
단말정보 기억부(7150)에는 당해 디지털 방송 수신장치의 처리능력 레벨에 관한 단말정보가 기억된다.
제 2 실시예에서의 디지털 방송 수신장치는 표시에서의 성능 레벨이 제 2의 레벨인 것으로 한다.
도 26은 바이트코드 인터프리터(7090)가 행하는 바이트코드 프로그램 실행 제어처리를 도시하는 흐름도이다.
이 흐름도는 이용자의 조작에 의해 발생 또는 기기의 동작상 발생하는 이벤트에 대응하는 바이트코드 프로그램을 실행하는 처리이다.
우선 판독 해석을 실행하기 위한 프로그램 행을 나타내는 라인을 O으로 초기 설정한다(단계 S1201). 다음으로 라인에 1을 더하고(단계 S1202) 에러 코드를 나타내는 에러를 0으로 초기 설정한다(단계 S1203).
다음으로 라인행째의 명령이 별도의 부분 프로그램을 취득하는 명령인 링크 명령인지 아닌지를 판단하여 (단계 S1204), 만약 링크 명령이 아니면 명령 처리를 실행한다(단계 S1205).
여기에서 현재, 「GET 6010X」의 의미를 나타내는 바이트코드인 링크 명령을 실행하고자 하는 상태로 하여 이하를 설명한다.
「GET 6010X」의 의미를 나타내는 바이트코드는 링크 명령이기 때문에 단계 S1204로부터 단계 S1209로 진행한다.
레벨부착 링크명령인지 아닌지를 판정하면(단계 S1209), 레벨부착 링크 명령이기 때문에 단말정보 기억부(7150)로부터 바이트코드 인터프리터(7090)는 단말정보를 얻는다(단계 Sl210). 레벨 2를 얻은 바이트코드 인터프리터(7090)는 다음에 표 ID를 생성한다(단계 S1211). 이에 따라 표 ID=60102가 생성된다.
따라서 다음에 부분 프로그램 취득처리에 있어서는 표 ID가 60102의 부분 프로그램을 취득하게 된다(단계 S1213).
이하의 단계 S1214로부터 단계 S1208은 상술한 제 1 실시예에서 설명한 도 14의 단계 S306으로부터 단계 S313과 완전히 같기 때문에 설명을 생략한다.
이렇게 하여 레벨별 처리를 포함한 프로그램이 분할되어 송신된 경우에 본 디지털 방송 수신장치에 의하면, 당해 디지털 방송 수신장치의 성능 레벨에 따른 부분 프로그램을 취득하여 실행할 수 있고 다른 레벨의 부분 프로그램은 기억부(7070) 중에 도입되지 않는다. 따라서 디지털 방송 수신장치는 불필요한 기억 용량을 소비하지 않고 수신장치의 능력 레벨에 따른 처리를 행할 수 있다.
이하 제 2 실시예에 대한 변형예로서 수신장치측에서 한번 수신하고 분리추출하여 기억장치에 저장하여 사용한 부분 프로그램 중 특정한 것에 있어서는, 복수의 부분 프로그램으로 구성하는 일련의 프로그램 처리를 종료할 때까지는 기억장치로부터 삭제하지 않는 것으로 하고, 당해 부분 프로그램의 재사용시에 고속으로 실행 시작을 행할 수 있도록 한 예에 대하여 설명하기로 한다.
( 디지털 방송 송신장치의 변형예 )
디지털 방송 송신장치의 구성에 있어서는 본 변형예에서도 제 2 실시예의 디지털 방송 송신장치의 구성과 같으므로(도 19 참조) 각부에서는 제 2 실시예와 같은 명칭 및 부호를 이용하여 설명한다. 본 변형예가 제 2 실시예와 다른 부분은 프로그램 분할부(8050)의 동작이다.
이하 프로그램 분할부(8050)의 동작에 대하여 설명하기로 한다.
프로그램 분할부(8050)는 제 2 실시예와 같이 도 12의 흐름도에 따른 동작을 하지만, 제 2 실시예와 다른 것은 단계 S3130 후에 프로그램 구조정보 기억부(80l1)를 참조하여 특정한 부분 프로그램에「로크(LOCK)」라는 로크 명령을 삽입하는 동작을 하는 점이다.
이 특정 부분 프로그램을 식별하기 위한 정보는 미리 프로그램 구조정보 기억부(8011)에 저장되어 있다.
즉 프로그램은 그 실행시에 하나의 부분이 다른 부분으로부터 두 번 이상 호출될 가능성을 갖는 프로그램 구조를 갖고 있는 경우, 예를 들면 당해 하나의 부분과는 공통모듈로서 다른 복수의 프로그램 모듈로부터 호출되는 프로그램 구조를 갖고 있는 경우가 있으므로 프로그램 구조정보 기억부(8011)에는 당해 하나의 부분을 식별하기 위한 정보가 기억되어 있다. 이하 당해 하나의 부분을 부분 프로그램으로 한 경우에 이것을 상용부분 프로그램이라 한다.
따라서 프로그램 분할부(8050)는 프로그램 구조정보 기억부(8011)를 참조하여 프로그램을 부분 프로그램으로 분할할 때, 상용 부분 프로그램에 대해서는 그 상용 부분 프로그램의 명령열 중 어느 하나의 장소에「로크」라는 로크 명령을 삽입한다.
이렇게 하여 프로그램 분할부(8050)는 프로그램을 분할하여 필요에 따라 로크 명령을 삽입하고, 프로그램 분할부(8050)에 의해 분할된 프로그램은 최종적으로 송신부(8060)에 의해 송신된다.
이에 의해 디지털 방송 수신장치측은 기억장치로부터 삭제해야 하는 것은 아닌 상용 부분 프로그램을 인식하기 위한 정보인 로크 명령을 얻을 수 있다.
( 디지털 방송 수신장치의 변형예 )
다음으로 디지털 방송 수신장치의 변형예에 대하여 설명하기로 한다.
디지털 방송 수신장치의 구성에 있어서는 본 변형예에 있어서도 제 2 실시예의 디지털 방송 수신장치의 구성과 같으므로(도 25 참조) 각부에 있어서는 제 2 실시예와 같은 명칭 및 부호를 이용하여 설명하기로 한다. 제 2 실시예와 본 변형예가 다른 점은 메모리 관리부의 동작과 바이트코드 인터프리터(7090)의 동작이다.
본 변형예에서의 바이트코드 인터프리터(7090)는 디지털 방송 송신장치로부터 송신된 부분 프로그램을 실행하기 위해 도 26의 흐름도에 따른 동작을 하지만, 단계 S1205의 명령처리에 있어서 「로크(LOCK)」라는 로크 명령에 대한 처리만이 제 2 실시예의 동작과 다르다.
바이트코드 인터프리터(7090)는 로크 명령에 있어서는 당해 로크 명령을 포함하는 부분 프로그램이 상용 부분 프로그램인 취지를 메모리 관리부에 통지한다.
메모리 관리부는 부분 프로그램을 분리 추출하여 기억부(7070)에 기입하는 경우의 메모리 관리를 하는 것이며, 기억부(7070)에 부분 프로그램을 기입하는 만큼의 빈 영역이 없는 경우에 LRU(Least Recently Used)방식을 이용하여 일부의 부분 프로그램을 기억장치 내에서 삭제하여 영역을 비우고 나서 기입해야 하는 부분 프로그램을 기입하는 것이지만, 상용 부분 프로그램에 대해서는 일련의 부분 프로그램의 모임인 프로그램이 종료될 때까지 기억장치 내에서 삭제하지 않는다.
따라서 이러한 메모리 관리부에 의해 디지털 방송 수신장치는 프로그램의 실행에 있어서 상용 부분 프로그램을 복수회 호출할 필요가 있는 경우에 2회째부터는 당해 상용 부분 프로그램을 새로 수신하여 분리 추출하지 않더라도 반드시 당해 상용 부분 프로그램은 기억부(7070)에 저장된 채로 삭제되어 있지 않기 때문에 신속히 당해 상용 부분 프로그램을 실행할 수 있다.
이상 본 발명에 관한 프로그램 송신장치 및 프로그램 수신장치에 대하여 제 1 및 제 2 실시예(변형예를 포함)에 기초하여 설명하였지만, 본 발명은 이들 실시예의 형태로 한정되지 않음은 물론이다. 즉,
(l) 양 실시예에서는 프로그램 수신장치인 디지털 방송 수신장치가 반드시 에러처리를 하도록 하고 있지만, 에러가 일어났을 때에만 에러처리를 하도록 해도 된다.
(2) 양 실시예에서는 에러 처리표와, 에러처리내 에러 처리표를 별도의 표로 하였지만 배당하는 코드를 융합시킴으로써 1개의 표로 해도 된다.
(3) 양 실시예에서는 디폴트의 에러처리에 대해서도 표(table)로 하도록 하고 있지만 디폴트의 에러처리에 있어서는 바이트코드 인터프리터 내에 하드 코딩해도 된다.
(4) 양 실시예에서는 프로그램 송신장치인 디지털 방송 송신장치가 에러표를 MPEG2의 트랜스포트 스트림의 전용 섹션의 데이터로서 송신하고 있지만, 에러표를 작성하는 바이트코드 프로그램을 송신하여 프로그램 수신장치인 디지털 방송 수신장치측에서 에러표를 작성하도록 해도 된다.
(5) 양 실시예에서는 프로그램 수신장치인 디지털 방송 수신장치는 프로그램 송신장치인 디지털 방송 송신장치로부터 출력된 데이터를 위성을 경유하여 수신하고 있지만, 직접 수신하거나 혹은 케이블을 통해 수신하도록 해도 된다.
(6) 양 실시예에서는 프로그램 수신장치인 디지털 방송 수신장치는 프로그램 송신장치인 디지털 방송 송신장치로부터 송신되는 데이터를 수신하고 있지만, CD-ROM 등의 기록매체로부터 데이터를 판독하도록 해도 된다.
(7) 양 실시예에서는 프로그램 송신장치인 디지털 방송 송신장치는 프로그램을 부분 프로그램으로 분할할 때 트랜스포트 패킷에 저장할 수 있는 사이즈로 분할하고 있지만, 이것만은 아니고 분할된 각각의 부분 프로그램이 트랜스포트 패킷보다 큰 사이즈이어도 지장이 없다. 이 경우에도 프로그램 수신장치인 디지털 방송 수신장치는 분리 추출부에 PID와 표 ID를 지시함으로써 목적으로 하는 부분 프로그램을 추출할 수 있다. 왜냐하면 분리 추출부는 소위 TS 디코더이지만 같은 PID에서 같은 표 ID의 트랜스포트 패킷을 모두 접속하여 추출하기 때문이다.
(8) 양 실시예에서는 시스템 정보의 PID는 10, 부분 프로그램군의 PID는 11,영상 데이터의 PID는 12, 음성 데이터의 PID는 13이라고 하고 있지만, PID는 이 값에 한정되는 것이 아니라 각각을 식별할 수 있는 것이면 된다.
(9) 양 실시예에서는 분할한 부분 프로그램을 취득하여 실행하기 위한 링크 명령으로서「GET n」, 「GET nX」를 이용하였지만, 프로그램 수신장치인 디지털 방송 수신장치의 바이트코드 인터프리터가「분할한 부분 프로그램을 취득하여 실행하는」의미로 해석되도록 정한 것이면 어떠한 코드라도 된다. 또한 「n」으로서 부분 프로그램의 표 ID를 직접 지정하였지만, 별도의 표를 통해 간접적으로 부분 프로그램의 표 ID를 도시하는 ID를 지정하는 것으로 해도 된다.
(10) 양 실시예에서는 부분 프로그램은 선두로부터 실행하는 것으로 했었지만, 부분 프로그램 중의 지정행으로부터 실행할 수 있도록 해도 된다. 이를 위해서는 상술한「GET n」대신「GET n, 1」이라는 2변수의 링크 명령을 정하고, n은 표 ID를 의미하며, 1은 부분 프로그램의 입구의 행번호를 의미하는 것으로서 프로그램 수신장치인 디지털 방송 수신장치에서는 그 취지를 해석 실행하도록 하면 된다.
(11) 양 실시예에서는 프로그램 수신장치인 디지털 방송 수신장치의 바이트코드 인터프리터는 부분 프로그램 중의 링크 명령을 기입한 시점에서 필요하게 되는 부분 프로그램을 취득하고 있지만, 바이트코드 인터프리터가 부분 프로그램의 실행을 개시하는 시점 또는 그 후에 링크 명령을 먼저 판독하여 다음에 필요하게 될 가능성이 있는 부분 프로그램의 취득처리를 행할 수도 있다.
(12) 양 실시예에서는 프로그램 존재여부 판단부와 바이트코드 인터프리터 및 제어부는 메모리와 메모리에 저장된 제어 프로그램과 CPU로 구성된다고 하였지만, 그 일부 또는 전부를 하드웨어로 구성해도 된다.
(13) 양 실시예에서는 프로그램 수신 실행장치인 디지털 방송 수신장치의 부분 프로그램 취득처리에 있어서 부분 프로그램이 존재하지 않으면 당해 부분 프로그램을 추출하도록 제어부를 통해 분리 추출부에 지시하고 있지만, 프로그램 송신장치측에 당해 부분 프로그램의 식별자를 지정하여 당해 부분 프로그램을 송신하도록 요구를 하는 것으로 해도 된다. 송신요구의 송신은 일반적인 송신 기술에 의하면 된다.
(14) 양 실시예에서는 프로그램 송신장치인 디지털 방송 송신장치가 부분 프로그램을 일방적으로 송신하고 있지만, 프로그램 수신장치측으로부터 부분 프로그램의 식별자를 지정하여 부분 프로그램의 송신요구가 된 경우에도 당해 부분 프로그램을 송신하는 것으로 해도 된다.
(15) 양 실시예에서는 프로그램 수신장치인 디지털 방송 수신장치의 메모리 관리부는 부분 프로그램의 기억장치로의 저장시에 LRU 방식을 이용하여 삭제하는 부분 프로그램을 정하고 있지만, 이것에 한정되는 것은 아니고 다른 방식에 의해도 된다.
또한 기억장치를 비우기 위해서 부분 프로그램을 삭제하지 않고 보조 기억장치 등에 부분 프로그램을 추방하도록 해도 된다. 이 경우에 보조 기억장치 등에 추방되어 있는 부분 프로그램은 도 15의 흐름도의 단계 S40l0에서 나타내는 프로그램 존재여부 판단부에 의한 부분 프로그램의 존재체크가 이루어졌을 때 다시 기억장치내로 기입되고 존재 체크의 결과로서는 「당해 부분 프로그램은 존재한다」로 해도 된다. 단 당해 부분 프로그램이 보조 기억장치 등에 추방된 후 당해 부분 프로그램을 포함한 복수의 부분 프로그램으로 구성되는 1개의 프로그램이 종료된 후에는 보조 기억장치 등에 추방되어 있는 당해 부분 프로그램은 존재하지 않는 것으로서 취급한다.
(16) 제 2 실시예에서는 로크 명령으로서 「로크」라는 명령을 이용하였지만 이것에 한정되는 것은 아니고 상용 부분 프로그램인 것을 나타내는 명령이라면 된다. 또한 명령이 아니더라도 상용 부분 프로그램인 것을 나타내는 식별정보를 프로그램 송신장치인 디지털 방송 송신장치로부터 송신하여 이것을 받은 프로그램 수신장치인 디지털 방송 수신장치의 메모리 관리부가 상용 부분 프로그램인지의 여부를 인식하여 부분 프로그램의 기억장치내로의 기입 처리를 행하도록 해도 된다.
(17) 제 2 실시예에서는 단말정보는 미리 단말정보 기억부(7150)에 보유되어 있다고 했으나, 프로그램 수신장치인 디지털 방송 수신장치의 기동시 혹은 디지털 방송의 서비스의 개시시 등에 당해 수신장치의 성능 레벨을 조사하는 바이트코드 프로그램을 디지털 방송 송신장치측으로부터 보내는 것으로 하고, 당해 수신장치는 상기 바이트코드 프로그램을 실행하여 그 결과를 단말정보 기억부(7150)에 저장하도록 해도 된다.
(18) 제 2실시예에서는 프로그램 수신장치인 디지털 방송 수신장치의 성능 레벨을 3단계로 구분하였지만, 몇 단계로 나누어도 되며, 또 표시기능, 음성재생 기능 그 밖의 기능마다 레벨을 나누는 등 자유롭게 정해도 된다.
(19) 제 2 실시예에서는 프로그램 송신장치인 디지털 방송 송신장치는 송신해야 할 프로그램의 분기 구조의 깊이에 따라 별도의 우선도를 부여하여 송신하는 빈도를 구분하고 있지만, 분기의 깊이 1단마다 모두 다른 우선도를 부여하여 송신빈도의 구분을 하지 않아도 지장은 없으며 분기의 깊이가 2단 또는 3단마다 다른 우선도를 부여해도 되고, 또한 우선도의 부여 방법에 대한 알고리즘은 어떠한 것이라도 된다.
(20) 양 실시예에서의 디지털 방송 수신장치의 처리순서(도 14, 도 15, 도 16, 도 26의 흐름도의 순서) 등을 기계어 프로그램에 의해 실현하여 이것을 기록매체에 기록하고 유통·판매의 대상으로 해도 된다. 이러한 기록매체에는 IC 카드나 광디스크, 플렉시블 디스크, ROM 등이 있지만, 이들에 기록된 기계어 프로그램은 범용의 하드웨어에 인스톨됨으로써 이용에 제공된다. 여기에서 말하는 범용 하드웨어는 일반의 퍼스널 컴퓨터 등이고, 인스톨한 상기 기계어 프로그램을 차례로 실행하여 양 실시예에 도시한 프로그램 수신 실행장치인 디지털 방송 수신장치의 기능을 실현한다.
본 발명에 관한 프로그램 수신 실행장치 및 프로그램 송신장치는 게임 등의 대용량 프로그램을 컴퓨터 네트워크를 통해 송신 또는 수신하는 퍼스널 컴퓨터에 적용할 수 있고, 또한 고속 응답성이 요구되는 대화성이 있는 프로그램을 송신 또는 수신하는 디지털 방송에서의 송신장치 또는 수신장치에도 적용할 수 있다.

Claims (48)

  1. (삭제)
  2. (정정)
    프로그램 송신장치로부터 하나의 부분 프로그램의 다음에 실행할 부분 프로그램이 어느 것인지를 나타내는 다음 실행부분 정보를 포함하는 부분 프로그램이 복수로 분할되어 송신되는 프로그램을 수신하여 당해 프로그램을 실행하는 프로그램 수신 실행장치로서,
    프로그램 기억영역을 갖는 기억수단과,
    상기 복수의 부분 프로그램을 수신하여 상기 기억수단에 저장하는 수신수단과,
    상기 기억수단에 기억되어 있는 상기 복수의 부분 프로그램을 실행하는 실행 제어수단을 구비하고,
    상기 다음 실행부분 정보는 그것이 포함되는 부분 프로그램에 이어서 실행해야 할 부분 프로그램을 식별하기 위한 식별자를 포함하며,
    상기 수신수단은 지정된 부분 프로그램을 상기 식별자를 이용하여 수신신호로부터 분리 추출하여 상기 기억수단에 저장하는 분리 추출부를 가지며,
    상기 실행 제어수단은,
    지정된 부분 프로그램이 상기 기억수단에 기억되어 있는지를 판단하는 프로그램 존재여부 판단부와,
    실행중인 제 1의 부분 프로그램에 이어서 실행해야 할 제 2의 부분 프로그램을 상기 다음 실행부분 정보를 참조하여 특정해서 당해 제 2의 부분 프로그램이 상기 기억수단에 기억되어 있는지를 프로그램 존재여부 판단부에 판단시켜, 상기 프로그램 존재여부 판단부에 의해 제 2의 부분 프로그램이 기억되어 있다고 판단된 경우에는 제 2의 부분 프로그램의 실행을 준비하고, 상기 프로그램 존재여부 판단부에 의해 제 2의 부분 프로그램이 기억되어 있지 않다고 판단된 경우에는 프로그램의 실행을 진행시키지 않고 대기하여, 그 후 상기 프로그램 존재여부 판단부에 의해 제 2의 부분 프로그램이 기억되어 있다고 판단된 시점에서 제 2의 부분 프로그램의 실행을 준비하는 프로그램 준비부와,
    상기 프로그램 존재여부 판단부에 의해 상기 기억수단에 상기 부분 프로그램이 기억되어 있지 않다고 판단된 경우에는 상기 분리 추출부에 당해 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시하는 프로그램 추출 지시부와,
    상기 프로그램 준비부에 의해 준비된 부분 프로그램의 명령을 실행하여 상기 프로그램 준비부를 기동하는 프로그램 실행부를 갖는 것을 특징으로 하는 프로그램 수신 실행장치.
  3. (정정)
    제 2항에 있어서,
    다음 실행부분 정보는 다음에 다른 부분 프로그램을 실행한다는 취지를 나타내는 명령인 링크 명령을 포함하며,
    상기 프로그램 실행부는,
    실행해야 할 부분 프로그램 중의 명령이 링크 명령인지를 판단하는 링크명령 판단부와,
    상기 링크명령 판단부가 링크명령이라고 판단하였을 때 상기 프로그램 준비부를 기동하는 링크명령 처리부를 갖는 것을 특징으로 하는 프로그램 수신 실행장치.
  4. (정정)
    제 3항에 있어서,
    다음 실행부분 정보는 다음에 복수의 다른 부분 프로그램 중 어느 하나를 프로그램 수신 실행장치의 능력에 따라 실행해야 한다는 취지를 나타내는 명령인 선택 링크명령과 상기 하나의 부분 프로그램의 식별자를 합성하는 기초가 되는 정보인 기초 식별자를 포함하고,
    상기 프로그램 수신 실행장치는 자기의 기능 레벨을 기억하는 기능레벨 기억수단을 더 구비하며,
    상기 프로그램 실행부는,
    실행해야 할 부분 프로그램중의 명령이 선택링크 명령인지를 판단하는 선택 링크명령 판단부와,
    상기 링크명령 판단부가 링크명령이라고 판단하였을 때, 상기 기능레벨 기억수단에 기억되어 있는 기능레벨과 상기 기초 식별자를 참조하여, 실행해야 할 부분 프로그램의 식별자를 합성하여 상기 프로그램 준비부를 기동하는 선택링크 명령처리부를 더 갖는 것을 특징으로 하는 프로그램 수신 실행장치.
  5. 제 4항에 있어서,
    상기 부분 프로그램은 실행환경에 의존하지 않는 중간코드인 바이트코드이고,
    상기 프로그램 실행부는 상기 부분 프로그램을 바이트코드의 1명령마다 차례로 해석하여 실행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  6. (정정)
    제 5항에 있어서,
    상기 프로그램 수신 실행장치는,
    이용자에 의한 조작과 당해 조작에 대응하여 실행하여야 하게 되는 최초의 부분 프로그램의 식별자와의 대응표를 보유하는 이벤트 정보 관리수단과,
    이용자에 의한 조작에 따라서 상기 이벤트 정보 관리수단으로부터 실행해야 할 최초의 부분 프로그램의 식별자를 얻어서, 상기 분리 추출부에 당해 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시한 후, 상기 프로그램 존재여부 판단부에 의해 당해 부분 프로그램이 기억되어 있다고 판단된 시점에서 상기 실행 제어수단에 당해 부분 프로그램을 실행시키는 이벤트 처리수단을 더 구비하는 것을 특징으로 하는 프로그램 수신 실행장치.
  7. (정정)
    제 6항에 있어서,
    상기 프로그램 수신 실행장치는,
    프로그램 실행시에 발생하는 에러와 당해 에러에 대응하여 실행하여야 하게 되는 에러처리를 나타내는 에러 코드의 대응표를 보유하는 에러처리 정보 관리수단과,
    에러의 발생에 따라 상기 에러처리 정보 관리수단으로부터 실행하게 되는 에러처리를 나타내는 에러 코드를 얻어서, 당해 에러 코드가 부분 프로그램을 기동해야 한다는 취지를 나타내는 것이면 상기 분리 추출부에 당해 에러 코드가 나타내는 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시한 후, 상기 프로그램 존재여부 판단부에 의해 당해 부분 프로그램이 기억되어 있다고 판단된 시점에서 상기 실행 제어수단에 당해 부분 프로그램을 실행시키는 에러 처리수단을 더 구비하는 것을 특징으로 하는 프로그램 수신 실행장치.
  8. 제 7항에 있어서,
    상기 프로그램 수신 실행장치는 디지털 방송 송신장치로부터 복수의 부분 프로그램으로 분할되어 송신되는 부분 프로그램을 수신하여 당해 부분 프로그램을 실행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  9. 제 8항에 있어서,
    상기 프로그램 수신 실행장치는 디지털 방송 송신장치로부터 복수의 부분 프로그램으로 분할되어 반복 송신되는 부분 프로그램을 수신하여 당해 부분 프로그램을 실행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  10. (정정)
    제 9항에 있어서,
    상기 복수의 부분 프로그램은 영상 데이터 또는 음성 데이터 중 적어도 하나와 함께 다중화되어 송신되는 것을 특징으로 하는 프로그램 수신 실행장치.
  11. 제 10항에 있어서,
    상기 프로그램 수신 실행장치는 ISO/IEC13818의 규격에 기초하는 것이며, 상기 복수의 부분 프로그램은 이 ISO/IEC13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션(private section)의 전부 또는 일부 영역에 배치되어 송신되는 것을 특징으로 하는 프로그램 수신 실행장치.
  12. (정정)
    제 7항에 있어서,
    상기 실행 제어수단은 상기 프로그램 존재여부 판단부에 의해 상기 기억수단에 상기 부분 프로그램이 기억되어 있지 않다고 판단된 경우 프로그램 송신장치에 당해 부분 프로그램을 송신하도록 요구를 송출하는 송신요구 송출부를 더 갖는 것을 특징으로 하는 프로그램 수신 실행장치.
  13. 제 3항에 있어서,
    상기 부분 프로그램은 실행환경에 의존하지 않는 중간코드인 바이트코드이고,
    상기 프로그램 실행부는 상기 부분 프로그램을 바이트코드의 1명령마다 차례로 해석하여 실행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  14. (정정)
    제 13항에 있어서,
    상기 프로그램 수신 실행장치는,
    이용자에 의한 조작과 당해 조작에 대응하여 실행하여야 하게 되는 최초의 부분 프로그램의 식별자의 대응표를 보유하는 이벤트 정보 관리수단과,
    이용자에 의한 조작에 따라 상기 이벤트 정보 관리수단으로부터 실행해야 할 최초의 부분 프로그램의 식별자를 얻어서, 상기 분리 추출부에 당해 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시한 후, 상기 프로그램 존재여부 판단부에 의해 당해 부분 프로그램이 기억되어 있다고 판단된 시점에서 상기 실행 제어수단에 당해 부분 프로그램을 실행시키는 이벤트 처리수단을 더 구비하는 것을 특징으로 하는 프로그램 수신 실행장치.
  15. (정정)
    제 14항에 있어서,
    상기 프로그램 수신 실행장치는,
    프로그램 실행시에 발생하는 에러와 당해 에러에 대응하여 실행하여야 하게 되는 에러처리를 나타내는 에러 코드의 대응표를 보유하는 에러처리 정보 관리수단과,
    에러의 발생에 따라 상기 에러처리 정보 관리수단으로부터 실행하여야 하게 되는 에러처리를 나타내는 에러 코드를 얻어서, 당해 에러 코드가 부분 프로그램을 기동해야 하는 취지를 나타내는 것이면 상기 분리 추출부에 당해 에러 코드가 나타내는 부분 프로그램을 분리 추출하여 상기 기억수단에 저장하도록 지시한 후, 상기 프로그램 존재여부 판단부에 의해 당해 부분 프로그램이 기억되어 있다고 판단된 시점에서 상기 실행 제어수단에 당해 부분 프로그램을 실행시키는 에러 처리수단을 더 구비하는 것을 특징으로 하는 프로그램 수신 실행장치.
  16. 제 15항에 있어서,
    상기 프로그램 수신 실행장치는 디지털 방송 송신장치로부터 복수의 부분 프로그램으로 분할되어 송신되는 부분 프로그램을 수신하여 당해 부분 프로그램을 실행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  17. 제 16항에 있어서,
    상기 프로그램 수신 실행장치는 디지털 방송 송신장치로부터 복수의 부분 프로그램으로 분할되어 반복 송신되는 부분 프로그램을 수신하여 당해 부분 프로그램을 실행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  18. (정정)
    제 17항에 있어서,
    상기 복수의 부분 프로그램은 영상 데이터 또는 음성 데이터 중 적어도 하나와 함께 다중화되어 송신되는 것을 특징으로 하는 프로그램 수신 실행장치.
  19. 제 18항에 있어서,
    상기 프로그램 수신 실행장치는 ISO/IEC13818의 규격에 기초하는 것이며, 상기 복수의 부분 프로그램은 이 ISO/IEC13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션의 전부 또는 일부의 영역에 배치되어 송신되는 것을 특징으로 하는 프로그램 수신 실행장치.
  20. (정정)
    제 15항에 있어서,
    상기 실행 제어수단은 상기 프로그램 존재여부 판단부에 의해 상기 기억수단에 상기 부분 프로그램이 기억되어 있지 않다고 판단된 경우 프로그램 송신장치에 당해 부분 프로그램을 송신하도록 요구를 송출하는 송신요구 송출부를 더 갖는 것을 특징으로 하는 프로그램 수신 실행장치.
  21. (정정)
    제 3항에 있어서,
    상기 기억수단은 부분 프로그램이 상기 프로그램 기억영역에 저장될 때 빈 영역이 없는 경우에는, 이미 프로그램 기억영역에 저장되어 있는 어느 한 부분 프로그램을 삭제한 후에 생기는 빈 영역에 부분 프로그램이 저장되도록 제어하는 메모리 관리부를 더 갖고,
    상기 프로그램 실행부는, 실행해야 할 부분 프로그램 중의 명령이 당해 부분 프로그램을 삭제하지 않는다는 취지의 로크명령인지를 판단하는 로크명령 판단부와,
    상기 로크명령 판단부가 로크명령이라고 판단했을 때 상기 메모리 관리부에 당해 로크명령을 포함하는 부분 프로그램을 식별하기 위한 상용 부분 프로그램 식별정보를 통지하는 로크명령 통지부를 더 가지며,
    상기 메모리 관리부는 상기 로크명령 통지부로부터 받은 상용 부분 프로그램 식별정보가 나타내는 부분 프로그램에 대해서는 삭제 대상으로 하지 않고 상기 제어를 행하는 것을 특징으로 하는 프로그램 수신 실행장치.
  22. (삭제)
  23. (정정)
    프로그램을 프로그램 수신 실행장치에 송신하는 프로그램 송신장치로서,
    상기 프로그램을 미리 기억하는 기억수단과,
    상기 기억수단에 의해 기억되어 있는 프로그램을 복수의 부분 프로그램으로 분할하는 분할수단과,
    상기 분할수단에 의해 분할된 부분 프로그램마다 각각을 식별하기 위한 식별자를 부가하는 식별자 부여수단과,
    상기 복수의 부분 프로그램을 송신하는 송신수단과,
    다음에 실행해야 할 부분 프로그램을 나타내는 다음 실행부분 정보를 부분 프로그램에 부가하는 다음 실행부분 정보 부가수단을 구비하고,
    상기 다음 실행부분 정보는 다음에 실행해야 할 부분 프로그램의 식별자를 포함하는 것을 특징으로 하는 프로그램 송신장치.
  24. (정정)
    제 23항에 있어서,
    다음 실행부분 정보는 다음에 다른 부분 프로그램을 실행하는 취지를 나타내는 명령인 링크명령을 더 포함하며,
    상기 다음 실행부분 정보 부가수단은 상기 분할수단에 의해 분할된 복수의 부분 프로그램 중에서 다른 부분 프로그램으로의 처리 속행이 필요한 위치에 링크명령을 작성하여 삽입하는 링크명령 작성부를 더 갖는 것을 특징으로 하는 프로그램 송신장치.
  25. (정정)
    제 24항에 있어서,
    상기 프로그램 송신장치는,
    프로그램의 분기구조를 나타내는 프로그램 구조정보를 기억하는 프로그램 구조정보 기억수단을 더 구비하며,
    상기 분할수단은 상기 프로그램 구조정보 기억수단에 기억된 프로그램 구조정보를 참조하여 분기구조를 갖는 프로그램을 분기구조에 따라 각각의 부분 프로그램으로 분할하는 분기 분할부를 갖는 것을 특징으로 하는 프로그램 송신장치.
  26. 제 25항에 있어서,
    상기 프로그램 구조정보는 상기 프로그램 수신장치측의 능력에 따라 내부처리를 분배하는 구조를 나타내는 정보를 포함하며,
    상기 분할수단은 상기 프로그램 구조정보를 참조하여 프로그램을 상기 수신장치측의 능력별 내부 처리마다 다른 부분 프로그램으로 분할하는 레벨별 분할부를 갖는 것을 특징으로 하는 프로그램 송신장치.
  27. (정정)
    제 26항에 있어서,
    상기 다음 실행부분 정보 부가수단은, 상기 레벨별 분할부에 의해 내부처리마다 별도로 분할된 복수의 부분 프로그램에 공통 부분을 갖지만 차이 부분도 갖는 선택식별자를 각각 부여하는 선택식별자 부여부와,
    상기 레벨별 분할부에 의해 내부처리마다 별도로 분할된 복수의 부분 프로그램으로의 처리 속행이 필요한 부분 프로그램에는 그 처리 속행이 필요한 위치에 선택 링크명령을 작성하여 삽입하는 선택링크 명령작성부를 더 가지며,
    상기 선택 링크명령은 프로그램 수신장치의 능력에 따라 복수의 부분 프로그램 중 어느 하나로 처리를 속행하는 의미를 나타내는 명령인 것을 특징으로 하는 프로그램 송신장치.
  28. 제 27항에 있어서,
    상기 링크명령은 필요로 하는 다른 부분 프로그램을 식별하기 위한 식별자를 당해 링크명령의 오퍼랜드에 갖는 것을 특징으로 하는 프로그램 송신장치.
  29. 제 28항에 있어서,
    상기 선택 링크명령은 필요로 하는 다른 부분 프로그램을 식별하기 위한 기초식별자를 당해 선택 링크명령의 오퍼랜드에 갖고,
    상기 기초식별자는 상기 프로그램 수신장치의 능력에 따른 처리를 하기 위해 복수의 부분 프로그램에 상기 선택식별자 부여부가 부여한 선택식별자의 공통부분의 정보를 나타내는 식별자인 것을 특징으로 하는 프로그램 송신장치.
  30. (정정)
    제 29항에 있어서,
    상기 분할수단은 각각의 부분 프로그램이 소정의 크기 이하가 되도록 분할하는 것을 특징으로 하는 프로그램 송신장치.
  31. 제 30항에 있어서,
    상기 소정의 크기는 한묶음의 데이터를 연속하여 송신하는 최소 송신단위인 패킷 사이즈인 것을 특징으로 하는 프로그램 송신장치.
  32. 제 31항에 있어서,
    상기 송신수단은 복수의 부분 프로그램을 디지털 방송으로서 송신하는 것을 특징으로 하는 프로그램 송신장치.
  33. (정정)
    제 32항에 있어서,
    상기 송신수단은 복수의 부분 프로그램을 반복 송신하는 것을 특징으로 하는 프로그램 송신장치.
  34. (정정)
    제 33항에 있어서,
    상기 복수의 부분 프로그램은 상기 프로그램 중의 복수의 에러처리의 전부 또는 일부인 것을 특징으로 하는 프로그램 송신장치.
  35. (정정)
    제 34항에 있어서,
    상기 프로그램 송신장치는,
    영상 데이터 또는 음성 데이터 중 적어도 하나를 미리 기억하는 영상음성 데이터 기억수단을 더 구비하며,
    상기 송신수단은 복수의 부분 프로그램을 상기 영상음성 데이터 기억수단으로부터 페치(fetch)한 영상 데이터 또는 음성 데이터 중 적어도 하나와 함께 다중화하여 송신하는 것을 특징으로 하는 프로그램 송신장치.
  36. 제 35항에 있어서,
    상기 송신수단은 상기 복수의 부분 프로그램을 상기 ISO/IEC13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션의 전부 또는 일부의 영역에 배치하고, ISO/IEC13818의 규격에 따라 다중화 및 송신을 행하는 것을 특징으로 하는 프로그램 송신장치.
  37. (정정)
    제 31항에 있어서,
    상기 프로그램 송신장치는,
    프로그램 수신장치로부터 송신된 부분 프로그램 지정정보를 포함하는 송신요구를 수신하는 송신요구 수신수단을 더 구비하며,
    상기 송신수단은 상기 송신요구 수신수단이 송신요구를 수신한 경우에 상기 부분 프로그램 지정정보를 참조하여 송신요구에 따라 부분 프로그램을 송신하는 요구응답 송신부를 더 갖는 것을 특징으로 하는 프로그램 송신장치.
  38. 제 24항에 있어서,
    상기 링크명령은 필요로 하는 다른 부분 프로그램을 식별하기 위한 식별자를 당해 링크명령의 오퍼랜드에 갖는 것을 특징으로 하는 프로그램 송신장치.
  39. 제 38항에 있어서,
    상기 송신수단은 복수의 부분 프로그램을 디지털 방송으로서 송신하는 것을 특징으로 하는 프로그램 송신장치.
  40. (정정)
    제 39항에 있어서,
    상기 송신수단은 복수의 부분 프로그램을 반복 송신하는 것을 특징으로 하는 프로그램 송신장치.
  41. (정정)
    제 40항에 있어서,
    상기 복수의 부분 프로그램은 상기 프로그램 중의 복수의 에러처리의 전부 또는 일부인 것을 특징으로 하는 프로그램 송신장치.
  42. (정정)
    제 41항에 있어서,
    상기 프로그램 송신장치는,
    적어도 영상 데이터 또는 음성 데이터 중 하나를 미리 기억하는 영상음성 데이터 기억수단을 더 구비하며,
    상기 송신수단은 복수의 부분 프로그램을 상기 영상음성 데이터 기억수단으로부터 페치한 영상 데이터 또는 음성 데이터 중 적어도 하나와 함께 다중화하여 송신하는 것을 특징으로 하는 프로그램 송신장치.
  43. 제 42항에 있어서,
    상기 송신수단은 상기 복수의 부분 프로그램을 상기 ISO/IEC13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션의 전부 또는 일부의 영역에 배치하고, ISO/IEC13818의 규격에 따라 다중화 및 송신을 행하는 것을 특징으로 하는 프로그램 송신장치.
  44. (정정)
    제 24항에 있어서,
    상기 프로그램 송신장치는,
    송신된 부분 프로그램을 수신하여 실행하는 수신 실행장치에서 당해 부분 프로그램이 한번 기억장치에 저장되어 실행되면 다시 이용하는 경우에는 반드시 기억장치 내에 존재하는 것을 보증할 필요가 있다는 취지의 정보를 소정의 부분 프로그램에 부가하는 로크정보 부가수단을 더 구비하는 것을 특징으로 하는 프로그램 송신장치.
  45. (정정)
    프로그램을 프로그램 수신 실행장치에 송신하는 프로그램 송신장치에 있어서,
    상기 프로그램을 미리 기억하는 기억수단과,
    상기 기억수단에 의해 기억되어 있는 프로그램을 복수의 부분 프로그램으로 분할하는 분할수단과,
    상기 분할수단에 의해 분할된 부분 프로그램마다 각각을 식별하기 위한 식별자를 부가하는 식별자 부여수단과,
    각각의 부분 프로그램에 반복 송신하는 빈도인 우선도를 부여하는 우선도 부여수단과,
    상기 우선도 부여수단이 부여한 우선도에 따라서 대응하는 부분 프로그램을 반복 송신하는 주기를 변경하여 복수의 부분 프로그램을 디지털 방송으로서 반복 송신하는 송신수단을 구비하는 것을 특징으로 하는 프로그램 송신장치.
  46. (정정)
    제 45항에 있어서,
    상기 프로그램 송신장치는 적어도 영상 데이터 또는 음성 데이터 중 하나를 미리 기억하는 영상음성 데이터 기억수단을 더 구비하며,
    상기 송신수단은 복수의 부분 프로그램을 상기 영상음성 데이터 기억수단으로부터 페치한 영상 데이터 또는 음성 데이터 중 적어도 하나와 함께 다중화하여 송신하는 것을 특징으로 하는 프로그램 송신장치.
  47. 제 46항에 있어서,
    상기 송신수단은 상기 복수의 부분 프로그램을 이 ISO/IEC13818에 규정되어 있는 MPEG2의 트랜스포트 스트림의 전용 섹션의 전부 또는 일부의 영역에 배치하고, ISO/IEC13818의 규격에 따라 다중화 및 송신을 행하는 것을 특징으로 하는 프로그램 송신장치.
  48. (정정)
    프로그램 송신장치로부터 하나의 부분 프로그램의 다음에 실행해야 할 부분 프로그램이 어느 것인지를 나타내는 다음 실행부분 정보를 포함하는 부분 프로그램이 복수로 분할되어 송신되는 프로그램을 수신하여 기억영역에 저장하는 프로그램 수신 실행장치에 당해 프로그램을 실행시키기 위한 제어 프로그램을 기재한 기록매체로서,
    상기 다음 실행부분 정보는 그것이 포함되는 부분 프로그램에 이어서 실행해야 할 부분 프로그램을 식별하기 위한 식별자를 포함하고,
    상기 프로그램 수신 실행장치는 지정된 부분 프로그램을 상기 식별자를 이용하여 수신신호로부터 분리 추출하여 상기 기억영역에 저장하는 분리 추출부를 가지며,
    상기 제어 프로그램은,
    지정된 부분 프로그램이 상기 기억영역에 저장되어 있는지를 상기 프로그램 수신 실행장치에 판단시키는 프로그램 존재여부 판단단계와,
    상기 프로그램 수신 실행장치에, 실행중인 제 1의 부분 프로그램에 이어서 실행해야 할 제 2의 부분 프로그램을 상기 다음 실행부분 정보 중의 상기 식별자를 참조하여 특정시켜 당해 제 2의 부분 프로그램이 상기 기억영역에 기억되어 있는 지를 상기 프로그램 존재여부 판단단계의 실행에 의해 판단시키고, 상기 프로그램 존재여부 판단단계의 실행에 의해 제 2의 부분 프로그램이 기억되어 있다고 판단된 경우에는 제 2의 부분 프로그램의 실행을 준비시키며, 상기 프로그램 존재여부 판단단계의 실행에 의해 제 2의 부분 프로그램이 기억되어 있지 않다고 판단된 경우에는 프로그램의 실행을 진행시키지 않고 대기시키고, 상기 분리 추출부에 당해 부분 프로그램을 분리 추출하여 상기 기억영역에 저장하도록 지시시키며, 그 후 상기 프로그램 존재여부 판단단계의 실행에 의해 제 2의 부분 프로그램이 기억되어 있다고 판단된 시점에서 제 2의 부분 프로그램의 실행을 준비시키는 프로그램 준비단계와,
    상기 프로그램 수신 실행장치에, 상기 프로그램 준비단계에 의해 준비된 부분 프로그램의 명령을 복수개 실행시켜 상기 프로그램 준비단계를 실행시키는 프로그램 실행단계를 포함하는 것을 특징으로 하는 제어 프로그램을 기재한 것을 특징으로 하는 기록매체.
KR10-1998-0703488A 1996-09-11 1997-09-08 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치 KR100487012B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP96-240296 1996-09-11
JP24029696 1996-09-11
PCT/JP1997/003143 WO1998011723A1 (fr) 1996-09-11 1997-09-08 Appareil de reception/d'execution de programme pouvant commencer l'execution d'un programme meme lorsque seulement une partie du programme est reçue, et emetteur de programme destine a cet appareil

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7018536A Division KR100513128B1 (ko) 1996-09-11 1997-09-08 프로그램 수신장치

Publications (2)

Publication Number Publication Date
KR19990067474A KR19990067474A (ko) 1999-08-25
KR100487012B1 true KR100487012B1 (ko) 2005-06-16

Family

ID=17057370

Family Applications (2)

Application Number Title Priority Date Filing Date
KR10-1998-0703488A KR100487012B1 (ko) 1996-09-11 1997-09-08 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치
KR10-2004-7018536A KR100513128B1 (ko) 1996-09-11 1997-09-08 프로그램 수신장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR10-2004-7018536A KR100513128B1 (ko) 1996-09-11 1997-09-08 프로그램 수신장치

Country Status (8)

Country Link
US (1) US6157948A (ko)
EP (4) EP1331560B1 (ko)
JP (5) JP3963398B2 (ko)
KR (2) KR100487012B1 (ko)
CN (2) CN100347671C (ko)
DE (2) DE69732262T2 (ko)
HK (1) HK1057803A1 (ko)
WO (1) WO1998011723A1 (ko)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69732262T2 (de) 1996-09-11 2006-01-05 Matsushita Electric Industrial Co., Ltd., Kadoma Maschine für Programmempfang und -ausführung, die auch bei teilweisem Empfang des Programms die Maschinenprogrammausführung starten kann.
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US6535530B1 (en) 1997-07-23 2003-03-18 Matsushita Electric Industrial Co., Ltd. Apparatus and method for demultiplexing multiplexed data
US6609144B1 (en) * 1998-05-04 2003-08-19 Matsushita Electric Industrial Co., Ltd. Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
US6092120A (en) 1998-06-26 2000-07-18 Sun Microsystems, Inc. Method and apparatus for timely delivery of a byte code and serialized objects stream
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6233389B1 (en) 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US7558472B2 (en) 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US20060212025A1 (en) 1998-11-30 2006-09-21 Light Bioscience, Llc Method and apparatus for acne treatment
US9192780B2 (en) 1998-11-30 2015-11-24 L'oreal Low intensity light therapy for treatment of retinal, macular, and visual pathway disorders
US6887260B1 (en) 1998-11-30 2005-05-03 Light Bioscience, Llc Method and apparatus for acne treatment
JP4178631B2 (ja) * 1998-12-02 2008-11-12 ソニー株式会社 受信装置および方法、送信装置
WO2000046664A2 (en) * 1999-02-05 2000-08-10 Cyrus Intersoft, Inc. Instrumenting streamed classes
ATE488093T1 (de) * 1999-03-29 2010-11-15 Hughes Electronics Corp Procede et appareil de traitement conditionnel, stockage et affichage du contenu d'un canal numerique, dans un systeme de reception de television
US6609186B1 (en) * 1999-04-06 2003-08-19 Microsoft Corporation Method and system for managing data in computer memory
US20010029607A1 (en) * 1999-04-06 2001-10-11 Microsoft Corporation System and method for application installation management
US6484313B1 (en) * 1999-06-30 2002-11-19 Microsoft Corporation Compiling and persisting of intermediate language code
JP4486291B2 (ja) 1999-07-14 2010-06-23 パナソニック株式会社 情報提供装置、情報受信装置および記憶媒体
WO2001022729A1 (en) 1999-09-20 2001-03-29 Tivo, Inc. Closed caption tagging system
US7441231B1 (en) * 1999-11-08 2008-10-21 British Telecommunications Public Limited Company Task management
US7441232B2 (en) * 1999-11-08 2008-10-21 British Telecommunications Public Limited Company Task management
EP1115253A2 (en) * 1999-12-27 2001-07-11 Matsushita Electric Industrial Co., Ltd. Program information transmission apparatus
US7340764B2 (en) * 2000-01-26 2008-03-04 Sony Corporation Data transmission system
EP1139590A3 (en) * 2000-03-01 2008-10-01 Matsushita Electric Industrial Co., Ltd. Apparatus for receiving and storing reproduction programs with a high probability of being used for reproduction of audiovisual data
JP4033619B2 (ja) * 2000-05-26 2008-01-16 シャープ株式会社 サーバ装置
EP1172953A3 (en) * 2000-06-30 2008-08-20 Matsushita Electric Industrial Co., Ltd. Broadcast apparatus and reception apparatus comprising a means for avoiding delays in the reproduction of additional data when one program changes to another
JP2002091452A (ja) * 2000-09-11 2002-03-27 Nec Corp データ配信システム及びその配信方法
JP2002132614A (ja) 2000-10-18 2002-05-10 Nec Corp データ配信システム
US6714794B1 (en) 2000-10-30 2004-03-30 Motorola, Inc. Communication system for wireless communication of content to users
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US20020087883A1 (en) * 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7451196B1 (en) 2000-12-15 2008-11-11 Stream Theory, Inc. Method and system for executing a software application in a virtual environment
US20020108054A1 (en) * 2001-02-02 2002-08-08 Moore Christopher S. Solid-state memory device storing program code and methods for use therewith
US20020116705A1 (en) * 2001-02-20 2002-08-22 Perlman Stephen G. System and method for processing conditional access data
US8091112B1 (en) * 2001-02-28 2012-01-03 Keen Personal Technologies, Inc. System and a method for transmitting and receiving a program with improved efficiency
FR2824929B1 (fr) * 2001-05-18 2003-08-08 Gemplus Card Int Deploiement d'application depuis une carte a puce
JP3882557B2 (ja) * 2001-09-27 2007-02-21 セイコーエプソン株式会社 オブジェクト型データ処理システム、送信端末、受信端末、携帯端末及びデータ管理端末、並びにオブジェクト型データ処理方法
DE50104035D1 (de) * 2001-12-10 2004-11-11 Aladdin Knowledge Systems Gmbh Verfahren zum Ausführen eines Programms auf einem Computer
FR2835329A1 (fr) 2002-01-30 2003-08-01 Koninkl Philips Electronics Nv Procede de traitement de fichiers binaires de programmes
GB0213218D0 (en) * 2002-06-08 2002-07-17 Koninkl Philips Electronics Nv Operation of java virtual machine
US7395534B2 (en) * 2003-05-22 2008-07-01 Microsoft Corporation System and method for progressively installing a software application
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
GB0313720D0 (en) * 2003-06-13 2003-07-16 Electra Guide Ltd England An improved television system
JP4739202B2 (ja) 2003-07-31 2011-08-03 ジェントルウェイブス エルエルシー 熱傷、創傷、および関連皮膚疾患の光力学治療のためのシステムおよび方法
US8930944B2 (en) * 2003-11-18 2015-01-06 Microsoft Corporation Application model that integrates the web experience with the traditional client application experience
US7240162B2 (en) 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
WO2006049185A1 (ja) * 2004-11-02 2006-05-11 Matsushita Electric Industrial Co., Ltd. アプリケーションプログラム実行装置
EP1825390A2 (en) 2004-11-13 2007-08-29 Stream Theory, Inc. Hybrid local/remote streaming
US7895633B2 (en) 2004-11-19 2011-02-22 Tivo Inc. Method and apparatus for secure transfer and playback of multimedia content
JP4638250B2 (ja) * 2005-02-03 2011-02-23 三菱電機株式会社 プログラムコード生成支援装置及び方法並びにプログラムコード生成支援方法のプログラム
US9716609B2 (en) 2005-03-23 2017-07-25 Numecent Holdings, Inc. System and method for tracking changes to files in streaming applications
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
JP4419963B2 (ja) * 2006-01-03 2010-02-24 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置及び画像処理システム
US7661121B2 (en) 2006-06-22 2010-02-09 Tivo, Inc. In-band data recognition and synchronization system
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
KR100864524B1 (ko) * 2007-02-14 2008-10-21 주식회사 드리머 디지털 방송 데이터 어플리케이션 실행 방법 및 이를실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한기록 매체
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US20100211627A1 (en) * 2009-02-13 2010-08-19 Mobitv, Inc. Reprogrammable client using a uniform bytecode model
US8438596B2 (en) 2009-04-08 2013-05-07 Tivo Inc. Automatic contact information transmission system
US8925034B1 (en) 2009-06-30 2014-12-30 Symantec Corporation Data protection requirements specification and migration
US8387047B1 (en) 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
US8352937B2 (en) 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8090744B1 (en) 2009-08-26 2012-01-03 Symantec Operating Corporation Method and apparatus for determining compatibility between a virtualized application and a base environment
US8473444B1 (en) 2009-08-28 2013-06-25 Symantec Corporation Management of actions in multiple virtual and non-virtual environments
US8438555B1 (en) 2009-08-31 2013-05-07 Symantec Corporation Method of using an encapsulated data signature for virtualization layer activation
US8458310B1 (en) 2009-09-14 2013-06-04 Symantec Corporation Low bandwidth streaming of application upgrades
US8566297B1 (en) 2010-01-14 2013-10-22 Symantec Corporation Method to spoof data formats from image backups
US8290912B1 (en) 2010-01-29 2012-10-16 Symantec Corporation Endpoint virtualization aware backup
KR20110106716A (ko) 2010-03-23 2011-09-29 삼성전자주식회사 프로그램 컴파일러, 설치 장치, 및 설치 방법
US8495625B1 (en) 2010-07-27 2013-07-23 Symantec Corporation Method and system for creation of streamed files on-demand
JP5289494B2 (ja) * 2011-03-25 2013-09-11 株式会社東芝 データ処理装置、データ処理方法、及びプログラム
US9172990B2 (en) * 2011-06-24 2015-10-27 Google Technology Holdings LLC Method and device for optimizing storage of recorded video programs
EP3416395B1 (en) 2012-03-13 2023-05-10 TiVo Solutions Inc. Automatic commercial playback system
JP5800847B2 (ja) * 2013-03-26 2015-10-28 京セラドキュメントソリューションズ株式会社 情報処理装置、エラー処理方法
JP6357813B2 (ja) 2014-03-12 2018-07-18 富士通株式会社 配信方法、リソース取得方法、配信サーバ、及び端末装置
EP3086226A1 (en) * 2015-04-23 2016-10-26 Thomson Licensing Device and method for providing code blocks to a client during execution of software code
CN111052072B (zh) * 2018-03-28 2022-05-24 华为技术有限公司 一种免安装应用程序下载方法及装置
CN110764477A (zh) * 2019-10-28 2020-02-07 无锡市经登自控阀门有限公司 信号丢失可自行脱管的执行器控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01312647A (ja) * 1988-04-25 1989-12-18 Hewlett Packard Co <Hp> データ転送方式

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440632A (en) * 1992-12-02 1995-08-08 Scientific-Atlanta, Inc. Reprogrammable subscriber terminal
JP4279905B2 (ja) * 1994-02-18 2009-06-17 ソニー株式会社 放送システムおよび受信端末
US5563648A (en) * 1994-04-28 1996-10-08 Thomson Consumer Electronics, Inc. Method for controlling execution of an audio video interactive program
US5819034A (en) * 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
US5635979A (en) * 1994-05-27 1997-06-03 Bell Atlantic Dynamically programmable digital entertainment terminal using downloaded software to control broadband data operations
JPH086878A (ja) * 1994-06-17 1996-01-12 Toshiba Corp データ放送方法及びその装置
US5581706A (en) * 1994-06-30 1996-12-03 Rca Thomson Licensing Corporation Method forming an audio/video interactive data signal
JPH0836519A (ja) * 1994-07-26 1996-02-06 Canon Inc 情報処理方法及び装置
JPH08202638A (ja) * 1995-01-26 1996-08-09 Namco Ltd ソフトウエア配給システム
EP0811917B1 (en) * 1996-06-06 2002-01-02 STMicroelectronics S.r.l. Circuit for transferring redundancy data of a redundancy circuit inside a memory device by means of a time-shared approach
DE69732262T2 (de) 1996-09-11 2006-01-05 Matsushita Electric Industrial Co., Ltd., Kadoma Maschine für Programmempfang und -ausführung, die auch bei teilweisem Empfang des Programms die Maschinenprogrammausführung starten kann.
US5983366A (en) * 1997-03-19 1999-11-09 Optimay Corporation Data processing system having monitoring of software activity
US5990955A (en) * 1997-10-03 1999-11-23 Innovacom Inc. Dual encoding/compression method and system for picture quality/data density enhancement

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01312647A (ja) * 1988-04-25 1989-12-18 Hewlett Packard Co <Hp> データ転送方式

Also Published As

Publication number Publication date
JP4224515B2 (ja) 2009-02-18
JP3963398B2 (ja) 2007-08-22
JP4283877B2 (ja) 2009-06-24
DE69726115D1 (de) 2003-12-18
KR20040106562A (ko) 2004-12-17
JP2008135037A (ja) 2008-06-12
DE69726115T2 (de) 2004-04-22
HK1057803A1 (en) 2004-04-16
JP2007128550A (ja) 2007-05-24
JP3803356B2 (ja) 2006-08-02
EP0866612B1 (en) 2003-11-12
JP2005056434A (ja) 2005-03-03
DE69732262D1 (de) 2005-02-17
DE69732262T2 (de) 2006-01-05
CN100347671C (zh) 2007-11-07
US6157948A (en) 2000-12-05
EP1331560A3 (en) 2004-05-26
CN1202668C (zh) 2005-05-18
WO1998011723A1 (fr) 1998-03-19
KR19990067474A (ko) 1999-08-25
EP0866612A4 (en) 2001-11-14
KR100513128B1 (ko) 2005-09-07
EP1786211A3 (en) 2009-07-29
CN1208532A (zh) 1999-02-17
EP1513348A1 (en) 2005-03-09
EP1786211A2 (en) 2007-05-16
EP1331560A2 (en) 2003-07-30
CN1592371A (zh) 2005-03-09
JP2009060649A (ja) 2009-03-19
JP4224520B2 (ja) 2009-02-18
EP0866612A1 (en) 1998-09-23
EP1331560B1 (en) 2005-01-12

Similar Documents

Publication Publication Date Title
KR100487012B1 (ko) 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치
US7948867B2 (en) Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
US7555000B2 (en) Digital broadcast system
KR100621677B1 (ko) 디지탈데이터 송수신 시스템 및 그 방법
ES2201511T3 (es) Tratamiento de un flujo de transporte digital.
CN100452831C (zh) 数据显示控制装置
KR100741433B1 (ko) 디지털 비디오 시스템에서 트릭모드 생성을 위한 방법 및디바이스
CN101208750B (zh) 记录和再现装置以及记录和再现方法
JPWO2006077882A1 (ja) 放送受信装置
JPH114417A (ja) ビット・ストリーム情報表示方法、ビット・ストリーム情報作成方法及び記録媒体
KR100892311B1 (ko) 디지털 방송 수신기의 소프트웨어 업그레이드 장치 및 방법
US6418140B1 (en) Data multiplexing method, data multiplexer using the multiplexing method, multiple data repeater, multiple data decoding method, multiple data decoding device using the decoding method, and recording medium on which the methods are recorded
JP2000333043A (ja) 情報処理装置およびその方法
CN101194508A (zh) 记录和再现装置
MX2007013880A (es) Aparato de grabacion y reproduccion.

Legal Events

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

Payment date: 20160411

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170413

Year of fee payment: 13

EXPY Expiration of term