JP2005056434A - プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置 - Google Patents

プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置 Download PDF

Info

Publication number
JP2005056434A
JP2005056434A JP2004275571A JP2004275571A JP2005056434A JP 2005056434 A JP2005056434 A JP 2005056434A JP 2004275571 A JP2004275571 A JP 2004275571A JP 2004275571 A JP2004275571 A JP 2004275571A JP 2005056434 A JP2005056434 A JP 2005056434A
Authority
JP
Japan
Prior art keywords
program
partial
unit
storage unit
digital broadcast
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2004275571A
Other languages
English (en)
Other versions
JP3803356B2 (ja
Inventor
Shinji Inoue
信治 井上
Masahiro Ooashi
雅弘 大蘆
Yuki Kusumi
雄規 楠見
Tatsuya Shimoji
達也 下地
Ikuo Namikata
郁夫 南方
Masayuki Kozuka
雅之 小塚
Yoshisuke Mimura
義祐 三村
Yoshiyuki Miyabe
義幸 宮部
Kazuo Okamura
和男 岡村
Takashi Kakiuchi
隆志 垣内
Junichi Hirai
純一 平位
Naoya Takao
直弥 高尾
Toshiya Mori
俊也 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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=JP2005056434(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004275571A priority Critical patent/JP3803356B2/ja
Publication of JP2005056434A publication Critical patent/JP2005056434A/ja
Application granted granted Critical
Publication of JP3803356B2 publication Critical patent/JP3803356B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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

【課題】 必要なプログラムを一部分だけ受信した状態でも実行開始することができるプログラム受信装置を提供する。
【解決手段】 プログラム受信装置は、プログラム送信装置から1つのプログラムが複数の部分プログラムに分割されて送られた場合に、必要な部分プログラムを受信していれば当該部分プログラムを実行をし(S310)、当該部分プログラムから他の部分プログラムへの実行継続が必要となることを検出した場合に、当該他の部分プログラムが既に存在しているか判定し(S305、S306)、存在していなければ当該他の部分プログラムを受信し抽出して(S308)、当該他の部分プログラムを実行する。
【選択図】 図15

Description

本発明は、送信されたプログラムを受信して実行するプログラム受信装置に関し、特にデジタル放送システムにおいて番組に関連した制御を行うプログラムを受信して実行するプログラム受信装置に関する。
近年、映像や音声等の各種情報信号をデジタル化して信号処理する技術が急速に進歩し、これに伴ないデジタル放送システムやデジタル放送とデジタル通信との融合システム等の実現に向けて、世界各国でデジタル放送システムの開発が盛んに行なわれるようになってきている。
このようなデジタル放送システムを開発するにあたり、最も重要となる要素の1つとして、デジタル化された映像信号・音声信号を圧縮処理する技術があげられる。データ圧縮処理技術の規格としては、Moving Picture Image Coding Experts Group (MPEG)、Joint Phot ographic Coding Experts Group(JPEG)及びH.261等が主流であったが、現在、国際標準化機構(ISO)、国際電気標準会議(IEC)により提案されているISO/IEC13818[ISO/IEC JTC(Joint Technical Committee)1/SC(Subcommittee)29/WG(Working Group)11]は、放送、通信、蓄積メディア等の幅広い技術分野に渡る世界的な標準化に向けて検討を施しているものである。
このISO/IEC13818では、上述したデータ圧縮方法を規定するだけでなく、放送局側で、番組を構成するデジタル映像・音声データ及びその他の情報データ毎に圧縮処理を施したビットストリームを多重して放送し、受信機側で所望の番組を受信するというようなデジタル放送システムのための制御部分についても方式を固めている。
以下、図1、図2、図3を用いてISO/IEC13818の規定に基づいて、デジタル映像・音声データをそれぞれ圧縮処理してなる放送用及び通信用のビットストリームを多重化する手段を説明する。
図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バイトでなるパケット単位で多重信号が生成される。
この多重信号は、映像・音声ともに1フレーム毎の単位に区切られ、それにヘッダが付されてPESを構成している。
図2は、PESの構成を示す図である。
このPESは可変長である。このように生成されたPESは、映像と音声とを時分割多重するために、基本的に184バイト毎に区切ってパケット化され、それぞれに4バイトのヘッダが付されることで188バイトのTransport Packet(TP)を形成している。
図3は、放送用としてのビットストリームを構成する手段を示す図である。
図3において、プログラム1は1つの番組を示しており、多重化回路15161により、映像データ2系統、音声データ2系統、その他の情報データ1系統及びProgram Map Table (PMT)1系統が多重される。このPMTには、映像データ、音声データ及び情報データを識別するためのPacket Identify (PID)や、番組に関する記述等が載せられている。図3に示すように、n個の多重化回路15161、15162、……、1516nを用意することにより、n個のプログラム1、2、……、nを設定することができる。このようにn個設定された番組は、多重化回路1517によりそれぞれのデータが時分割多重される。
多重化回路1517では、各番組のPMTを抽出するための総合的な番組情報としてのProgram Association Table (PAT)や、スクランブルをコントロールするためのConditional Access Table(CAT)及び使用しているネットワークの情報等を示すNetwork Information Table (NIT)等も時分割多重している。このように、ISO/IEC13818の規格によれば、番組情報に関してPMT、PAT、CAT及びNITなる4種類のテーブルが設定されている。これらのテーブルのPIDは、PATが“00”、CATが“01”で、PMTとNITは自由に指定できることになっている。
なお、図1では、映像と音声との多重化について説明したが、実際には番組の付加情報データや番組情報等の各種情報データも、TP化されて映像や音声とともに時分割多重されることになる。この各種情報データを、各種番組毎のオブジェクトとして構成し、配送することによって、より変化に富んだ番組を提供するデジタル放送システムもある(例えば、特許文献1参照)。
以下、従来のデジタル放送システムにおけるデータ処理方法について説明する。
図4は、従来のデジタル放送システムにおけるデジタル放送受信装置の構成例を示す図である。
受信アンテナ16011で受信した信号(パッケージオブジェクト)が放送受信サブシステム16100に入力され、復調された後、データ蓄積管理部16101を介して、磁気ディスク(ハードディスク)16014a、光磁気ディスク16014bなどよりなる記録媒体16014を有する二次記憶装置16102に記憶される。また、この二次記憶装置16102には、外部入出力管理部16103を介して、適宜データやプログラムが記憶され、また、読み出されるようになされている。
再生サブシステム16104は、仮想機械と称される共通化可能な処理系であり、通常ソフトウエアにより構成される部分であり、便宜上、ローダ16122、基本クラスライブラリ16121、資源・安全性管理部16123、プロセス(スレッド)管理部16124、中間コードインタープリタ16125、および同期管理部16126の機能ブロックにより表されている。
基本クラスライブラリ16121には、当該再生サブシステム16104の基本機能、様々な番組オブジェクトやその他のオブジェクトに共通に利用されるクラスが集められ、中間コードで記述されている。この基本クラスライブラリ16121に記述されているクラスに属するオブジェクトを使う場合、そのクラス定義を送信する必要はなく、そのクラスIDを指定するだけでよい。番組オブジェクトやパッケージオブジェクト自体のクラス定義も、ここに記述されている。即ち、この基本クラスライブラリ16121は、プログラムのうち、基本的プログラムオブジェクトが予め記憶されている部分である。この基本的プログラムオブジェクトは、例えばフロッピィディスク等の記録媒体に記録し、各家庭に予め配送し、記憶させたり、あるいは、放送センタとの契約が成立した直後において、放送センタから当該デジタル放送受信装置に対して配信しておくようにすることが可能である。
ローダ16122は、二次記憶装置16102に記憶されたパッケージオブジェクトのプログラム(中間コード)を、資源・安全性管理部16123と記憶管理部16106を介して主記憶16107にロードするためのものであり、このとき、主記憶16107に、既にローディングされているコード(例えば、基本クラスライブラリ16121に記憶されている基本クラスのコードや、ユーザが作成したユーザオブジェクトのコード)が存在する場合、そのコードと中間コードとの間の対応関係を表すテーブルを作成する。
資源・安全性管理部16123は、二次記憶装置16102に記憶されているデータが破壊されたり、あるいは、許可を得ていない者が二次記憶装置16102、主記憶16107などに記憶されているデータにアクセスすることや、プロセス管理部16124にリクエストを出すことを禁止する処理などを実行する部分である。また、所定のオブジェクトによるデータ破壊、改変、CPUタイマの占有を防ぐ。
また、プロセス管理部16124は、主記憶16107に記憶されたプログラムに従って、メインプロセス、タイマプロセス、再生プロセス等の各種のプロセスを実行、管理せしめる部分である。
中間コードインタープリタ16125は、基本クラスライブラリ16121に記憶されているプログラム、あるいはローダ16122よりロードされたプログラムの中間コードを、逐次的に、解釈、実行する部分である。
また、同期管理部16126は、音声データと動画像データなどのように、時間的に同期して出力することが必要なデータを管理する部分であり、中間コードインタープリタ16125からの要求に応じて、時間経過に従った複数メディアオブジェクトの同期スケジューリングを事前に行い、システムクロックを基に、各メディアオブジェクトへ再生開始、停止、スロー、倍速などのメッセージを送り、同期制御を行う。
尚、資源・安全性管理部16123、プロセス管理部16124、および同期管理部16126が、ハードウエア毎に異なる構成となる部分であり、基本クラスライブラリ16121、ローダ16122、および中間コードインタープリタ16125は、ハードウエアの種類にかかわりなく、共通に構成することができる部分である。
通信サブシステム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は、このような番組オブジェクトを再生するプログラムオブジェクトの概念図である。
同図に示すように、基本的プログラムオブジェクトとして、プレーヤオブジェクトがデジタル放送受信装置側に予め用意されている(正確には、後述するように、必要に応じて生成される)。このプレーヤオブジェクトは、各種の番組オブジェクトのうち、例えば、番組オブジェクト1あるいは番組オブジェクト2の再生が指令されると、記憶管理部1821、プロセス管理部1822、データ蓄積管理部1823、通信サブシステム1824等のうち、必要な部分を制御し、再生処理を実行する。その詳細については、図8のフローチャートを参照して後述する。
図7は、このようにして再生される番組オブジェクトのフォーマットを示す図である。
同図に示すように、番組オブジェクトは、ヘッダ部、クラス定義部、およびオブジェクトデータ部により構成される。ヘッダ部は、オブジェクトヘッダ、番組ID、番組名、バージョン、オブジェクト辞書により構成される。オブジェクトヘッダは、番組オブジェクトのオブジェクトID、オブジェクト名、クラスID、プライオリティ、容量により構成される。番組IDは、この番組オブジェクトを特定するIDであり、番組名は、その名称である。バージョンは、この番組オブジェクトを変更したような場合、いつの時点のものであるのかを表す。また、オブジェクト辞書は、オブジェクトデータ部に配置されている所定のオブジェクトにアクセスするためのデータが配されている。
各オブジェクトは、1つのクラスに属し、クラス定義は、オブジェクトの枠組を与えている。具体的には、そのクラスに属する全てのオブジェクトが共通に有する変数とメソッド(プログラム)がクラス定義部に配される。即ち、クラス定義部は、任意の数のクラス定義から構成される。クラス定義は、クラスID、クラス名、スーパクラスID、変数定義、メソッド辞書、およびメソッドより構成される。クラスIDとクラス名は、そのクラスを特定するIDと名称を表している。また、スーパクラスIDは、このクラスの上位のクラスを表している。スーパクラス(上位のクラス)から見た下のクラスは、サブクラスと称される。変数定義は、このクラス定義中のメソッド(プログラム)において用いられる変数を定義するものである。また、メソッドには、プログラムが中間コード(文字列データからなるソースプログラムから生成した中間コード)として記録されている。このように、中間コードにすることで、実行時の処理効率の向上と、データ量の圧縮が可能となる。メソッド辞書は、メソッドに配置されている各メソッド(プログラム)にアクセスするためのデータが配置される。このクラス定義部には、その番組オブジェクトに含まれる拡張されたクラスの定義がまとめて記述される。基本クラスライブラリ16121に存在するクラス定義は、ここに記述する必要がない。従って、その番組オブジェクトに含まれるオブジェクトが、全て基本クラスのインスタンスであれば、クラス定義部は不要となる。
オブジェクトデータ部は、任意の数のオブジェクトにより構成される。各オブジェクトは、オブジェクトヘッダと変数値とにより構成される。オブジェクトヘッダは、オブジェクトID、オブジェクト名、クラスID、プライオリティ、容量により構成される。オブジェクトIDとオブジェクト名は、このオブジェクトを特定するIDと名称を表す。クラスIDは、このオブジェクトが属するクラスを表している。また、プライオリティは、再生の順位を表しており、0乃至3のいずれかの数値が与えられる。数値が大きいほど、優先度が高いことを表している。また、容量は、そのオブジェクトが有するデータの容量を表している。変数値は、素材データ自体である。また、この変数値には、制御データも含まれる。
さらに、任意の数の番組オブジェクトによりパッケージオブジェクトが構成される。3つの番組オブジェクトにより、1つのパッケージオブジェクトが構成されている。パッケージオブジェクトは、ヘッダ部、クラス定義部、および番組オブジェクトデータ部により構成される。ヘッダ部の先頭には、オブジェクトヘッダが配置される。このオブジェクトヘッダにも、オブジェクトID、オブジェクト名、クラスID、プライオリティ、容量がそれぞれ配置される。また、オブジェクトヘッダの次には、パッケージIDとパッケージ名が配置される。これらは、このパッケージオブジェクトのIDと名称を表すものである。また、その次には、このパッケージオブジェクトが生成された日付とバージョンが配置される。さらにその次には、番組インデックスが配置される。この番組インデックスは、番組オブジェクトデータ部に配置されている3つの番組オブジェクトのオブジェクトデータ部にアクセスするためのデータが配置されている。クラス定義部には、このパッケージオブジェクトにまとめられた3つの番組オブジェクトのクラス定義部に記述されているクラス定義が記録される。各番組オブジェクトのクラス定義部において、重複する部分は適宜省略される。そして、このクラス定義部は、上述したように、中間コードで記述される。さらに、番組オブジェクトデータ部は、このパッケージオブジェクトにまとめられる番組オブジェクトのヘッダ部とオブジェクトデータ部が配置される。
次に、図8を参照して、メインプロセスの処理について説明する。
図8は、メインプロセスの処理を示すフローチャートである。
最初にステップS2021において、中間コードインタープリタ16125は、ローダ16122を制御し、受信アンテナ16011で受信し、二次記憶装置16102に記憶したパッケージオブジェクトのヘッダ部とクラス定義部(図7)をローダ16122により読み出させ、資源・安全性管理部16123、記憶管理部16106を介して主記憶16107にロードさせる。次にステップS2022に進み、パッケージオブジェクトの番組オブジェクトデータ部内の1つの番組オブジェクトのヘッダ部(図7)を読み込む。パッケージオブジェクトには、プライオリティの値が大きい順に番組オブジェクトが格納されており、各番組オブジェクトのヘッダ部は、格納順に読み出される。そしてステップS2023に進み、ステップS2022において読み込んだヘッダ部から、プライオリティを読み込む。上述したように、このプライオリティには、0、1、2または3のいずれかの値が配されている。プライオリティが3のデータは、緊急時における番組、あるいは放送センタが各視聴者に対して確実に視聴してもらいたい番組に対して付与されているものである。
ステップS2024において、ステップS2023で読み込んだプライオリティが3であるか否かが判定され、3ではないと判定されたとき、ステップS2025に進み、そのパッケージオブジェクトを構成する他の番組オブジェクトのヘッダ部の読み込みが終了したか否かが判定され、まだ読み込んでいない番組オブジェクトが存在する場合は、ステップS2022に戻り、それ以降の処理が同様に繰り返される。
ステップS2024において、読み込んだプライオリティが3であると判定された場合、ステップS2026に進み、優先プレーヤオブジェクトを生成する。これにより、メインプロセスから優先再生プロセスの基礎となる優先プレーヤオブジェクト(そのクラスは、基本クラスライブラリ16121に含まれている)が生成される。即ち、優先プレーヤオブジェクトのクラス定義に従って、主記憶16107上の必要な領域が確保され、その中に、各変数領域を配置し、それぞれの変数値に当たる実データを二次記憶装置16102より読み出し、主記憶16107にロードして、インスタンシェートを行う。また、同時に、初期化メソッドなど、必要な処理が行われる。尚、大量で、表示/再生時においてのみ必要な各メディアの内容データは、インスタンシェート時ではなく、その後の表示/再生メソッドの起動時に、二次記憶装置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に進み、視聴の終了が指令されているか否かが判定され、終了されていなければ、ステップS2030に戻り、それ以降の処理を繰り返し実行する。そして、視聴の終了が指令されたと判定された場合、ステップS2046に進み、終了処理を実行して、処理を終了する。
以上のように、従来のデジタル放送システムにおけるデータ処理は行われる。
特開平7−231308号公報
しかしながら、デジタル放送送信装置から番組を対話的操作で利用するのに必要なプログラムを番組情報の内容として送信した場合であっても、上述したような従来のデジタル放送受信装置においては、番組を利用するために必要なプログラムを全て受信しなければ実行できない。なぜなら、プログラムを受信しながら実行すると、まだ受信していない部分を実行しようとした時点で異常動作するからである。
このため、利用者の操作や番組の状況等に対する即応性が悪いという問題がある。
このような即応性の悪さを解決する方法として、デジタル放送の受信装置に大容量の記憶装置を備えておき処理プログラムを前もって受信して蓄積しておく方法がある。
しかし、低機能の受信装置から高機能の受信装置までの多様なデジタル放送受信装置に対してデジタル放送を提供することを考えれば、デジタル放送受信装置に大きな記憶容量を要求するべきではない。しかも、デジタル放送で送信される内容は逐次変更されているため、前もって受信することも困難である。
そこで、本発明は、かかる問題点に鑑みてなされたものであり、必要なプログラムを一部分だけ受信した状態でも実行開始することができるプログラム受信装置を提供することを目的とする。
上記目的を達成するために、本発明に係るプログラム受信装置は、複数の部分プログラムを有するプログラムを含む放送波を受信する受信部と、前記受信した放送波から、前記複数の部分プログラムのうちの少なくとも一つを分離抽出する分離抽出部と、 一の前記抽出された部分プログラムから他の部分プログラムへ継続して実行させるためのリンク命令を有する一の前記抽出された部分プログラムを記憶する記憶部と、 前記記憶部に記憶されている一の前記部分プログラムを実行するバイトコードインタープリタと、前記バイトコードインタープリタで実行される一の前記部分プログラムに含まれる前記リンク命令に従って、前記他の部分プログラムが前記記憶部に記憶されているかを判断するプログラム存否判断部と、前記プログラム存否判断部が、前記他の部分プログラムが前記記憶部に記憶されていないと判断した場合には、前記他の部分プログラムを分離抽出するように前記分離抽出部を制御する制御部を有する。
上記構成により、1つのプログラムが複数の部分プログラムに分割されて送られた場合に、必要な部分プログラムを受信していれば当該部分プログラムを実行することができる。また、当該部分プログラムから他の部分プログラムへの実行継続が必要となった場合に、その必要となった他の部分プログラムを受信していれば当該他の部分プログラムを実行することができ、その後も同様に複数の部分プログラムを実行することができる。これにより目的のプログラム全てを受信してからでなくても実行が可能なので、迅速なプログラムの実行開始が実現される。また、必要になった部分プログラムを抽出して記憶装置に取り込み実行することができるため、プログラム受信装置の記憶容量を無駄に消費することなくプログラムを実行することができる。また、部分プログラムの実行を続行するための次なる部分プログラムが必要なことを部分プログラムの実行制御部に簡単に伝えることができる。
また、前記受信部は、繰り返し送られてくる前記複数の部分プログラムを受信することとしてもよい。
上記構成により、複数の部分プログラムが繰り返し送られてくる場合に部分プログラムを受信して当該部分プログラムを実行することができるため、1度受信した部分プログラムが不要になった時点で記憶装置上の当該部分プログラムを記憶した領域を解放することができ、当該部分プログラムが必要になった時点で再度受信して抽出し記憶装置に取り込むことができるため、記憶装置を有効に活用することができる。
また、前記記憶部に記憶されている一の前記部分プログラムはバイトコードプログラムであり、前記バイトコードインタープリタは、前記バイトコードプログラムに含まれる各命令を解釈して実行することとしてもよい。
上記構成により、部分プログラムの実行を続行するための次なる部分プログラムが必要なこと示す命令を解釈したときに当該次なる部分プログラムを取得すればよいため、不要な部分プログラムを記憶装置に取り込む必要がなく、プログラム受信装置の記憶容量を無駄に消費することなくプログラムを実行することができる。
また、前記受信部によって受信された前記部分プログラムは、映像データ又は音声データのうち少なくとも1つとともに多重化されてくるものであることとしてもよい。
上記構成により、映像又は音声を制御する部分プログラムの実行により、映像、音声に関連した制御処理の迅速な実行開始が実現される。
また、前記プログラム受信装置は、ISO/IEC13818の規格に準拠し、前記受信部によって受信された前記複数の部分プログラムは、該ISO/IEC13818の規定に準拠するMPEG2のトランスポートストリームのプライベートセクションの少なくとも一部分に配置されて送られてくるものであることとしてもよい。
上記構成により、プログラム受信実行装置は、受信した信号からトランスポートデコーダによりPIDとテーブルIDを利用して部分プログラムを容易に抽出することができる。
[第1実施例]
以下に、本発明に係るプログラム受信装置とこれに対応する送信装置に係る第1実施例を説明する。
(デジタル放送送信装置)
まず、デジタル放送送信装置について説明する。
本デジタル放送送信装置は、ISO/IEC13818に準拠して放送番組を構成するデジタル映像・音声データ及び番組情報や番組制御のためのプログラム等を圧縮し多重化して送信する装置である。ここでプログラムとはコンピュータプログラムをいう。
図9は、第1実施例におけるデジタル放送送信装置の構成を示すブロック図である。
プログラム記憶部3010には放送番組の情報や放送番組制御等のためのプログラムを、映像データ記憶部3020には放送番組を構成する映像データを、音声データ記憶部3030には放送番組を、システム情報記憶部3040には映像データと音声データと放送番組の情報及びプログラムとを抽出するための情報であるシステム情報をそれぞれ記憶している。
プログラム分割部3050は、プログラムを分割する。以下、プログラムを分割した後のそれぞれの部分を部分プログラムという。
プログラム分割部3050は、プログラム記憶部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/IEC13818に準拠してデジタル放送送信装置から衛星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は、制御部1110の指示に従い、映像データならば表示部1120へ、音声データなら音声出力部1130に出力する。
分離抽出部1050から、映像及び音声以外のデータ、すなわち番組情報や番組制御のためのプログラムは制御部1100の指示に従って、記憶部1070に送られる。これにより記憶部1070には、番組制御のためのデータ、欧州のDigital Video Broadcasting(DVB)で規定されているElectric Program Guide(EPG)のためのデータ、バイトコードインタープリタ1090が解釈実行するバイトコードプログラム等が格納される。
なお、バイトコードプログラムは部分プログラムに分割されている。
前記番組制御のためのデータには、利用者の操作により発生又は機器の動作上発生する各種イベントに対応して起動すべきバイトコードプログラムを構成する先頭の部分プログラムのテーブルIDがあり、このデータは制御部1100の制御によりイベント情報管理部1080に格納される。
また、データがエラー処理情報である場合には、当該データはエラー処理情報管理部1081に格納される。エラー処理情報とは、エラー処理テーブル、エラー処理内エラー処理テーブルからなる。また、エラー処理情報管理部1081には予めデフォルトエラー処理テーブル、デフォルトエラー処理内エラー処理テーブルが格納されている。
なお、エラー処理情報の扱いについては後述する。
イベント情報管理部1080に格納された情報は、イベント発生に対して制御部1100がバイトコードインタープリタを起動する際に、どの部分プログラムを実行するかを指示するために制御部1100によって参照される。
エラー処理情報管理部1081に格納されたエラー処理情報は、エラー処理が必要な場合にバイトコードインタープリタ1090から参照される。
信号受信部1140は、リモコン等によるユーザからの入力信号を受信する。信号受信部1140が受信した信号はデータとして制御部1100に送られ、制御部1100は送られたデータを判断して、バイトコードインタープリタ1090にバイトコードプログラムの実行を指示したり、あるいは、EPGを含む他のサービス処理を行う。
なお、記憶部1070の領域管理を行う機構としてメモリ管理部(図示せず)がある。メモリ管理部は、例えば部分プログラムを分離抽出して記憶部1070に読み込もうとする場合等の記憶部1070へのデータ読み込み時のメモリ管理を行うものであり、記憶部1070に部分プログラムを読み込むだけの空き領域がない場合に、Least Reacently Used(LRU)方式を用いて、一部の部分プログラムをメモリから削除し、領域を空けてから読み込むべき部分プログラムを読み込む。
バイトコードインタープリタ1090はバイトコードプログラムを逐次解釈実行するインタープリタであり、バイトコードプログラム実行時にバイトコードをデジタル放送受信装置内各部のプロセッサに対するネイティブコードに翻訳して各部のプロセッサを動作させる。
バイトコードプログラムはデジタル放送送信装置側で、複数の部分プログラムに分割されて送られるものであり、複数の部分プログラムの集まりとして構成される。
ここで、図11、図13、図14、図15を用いて、バイトコードインタープリタ1090の動作について説明する。
図14は、バイトコードインタープリタ1090が行うバイトコードプログラム実行制御処理を示すフローチャートである。
このフローは利用者の操作により発生又は機器の動作上発生するイベントに対応するバイトコードプログラムを実行する処理である。
ここでは、バイトコードプログラムが前述の図11で示した部分プログラム801、802、803から構成されており、現在部分プログラム801を記憶部1070に取り込んでおり、その実行を開始する直前の状態から説明する。
まず、読込解釈実行するためのプログラム行を表すlineを0に初期設定する(ステップS301)。次に、lineに1を加え(ステップS302)、エラーコードを表すerrorを0に初期設定する(ステップS303)。
次に、line行目のコマンドが別の部分プログラムを取得するコマンドであるリンク命令かどうかを判断し(ステップS304)、もし、リンク命令であれば、部分プログラムの取得処理(ステップS305)を行い、そうでなければ、コマンド処理を実行する(ステップS310)。
これにより部分プログラム801の「PUSH A」はステップS310のコマンド処理により実行されることになる。コマンド処理(ステップS310)は、各種コマンドに応じた処理をバイトコードインタープリタ1090内部の変数操作や、制御部1100によるデジタル放送受信装置内の各部及び外部接続された機器の制御によって実現される処理である。
コマンド処理実行後に実行結果を示すエラーコードが設定され(ステップS311)、次に、エラー処理を行い(ステップS312)、プログラムがそのコマンドで終了するのでなければ、ステップS302に戻りlineに1を加えて次行の処理を行う。
これにより、次は部分プログラム801の「PUSH B」が実行される。ステップS302、S303、S304、S310、S311、S312、S313が繰り返し実行された後、「GET 80200」が実行されることになる。
この「GET 80200」はリンク命令であるためステップS304からYESの分岐に進み部分プログラム取得処理が実行される(ステップS305)。
図15は、部分プログラム取得処理のフローチャートである。
まず、リンク命令処理部1091は、エラーコードを0にする(ステップS4001)。
次に、プログラム存否判断部1071にテーブルIDが80200の部分プログラムが存在するかを問う(ステップS4010)。
もしそうであれば、YESの分岐に進み、部分プログラム取得処理を完了する。
もし当該部分プログラムが存在しなければ、テーブルID=80200を指定して、当該部分プログラムを抽出するよう制御部1100を介して分離抽出部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〜S313)。
その後、プログラム実行制御処理におけるエラーに基づいてエラーコードを設定する(ステップS309)。
また、部分プログラム取得処理(ステップS305)に失敗した場合には、ステップS306からステップS307に進みエラーコードを設定する。
次に、エラーコードに基づいてエラー処理を行う(ステップS312)。ただしエラー処理においてエラーコードが0ならば何も処理は行わない。
プログラムが終了であれば(ステップS313)処理を終了し、終了でなければ、ステップS302に戻りlineに1を加えて次行の処理を行う。
従って、部分プログラム802の「GET 80300」の実行後に部分プログラム803が続いて実行され、部分プログラム803の最後の「END」をステップS313で判断した場合に図14のフローは完了することになる。
このように、バイトコードインタープリタ1090によってプログラム801、802、803は順次実行されることになる。
ここで、さらに図14のステップS312のエラー処理について詳細に説明する。
このエラー処理はエラー処理情報管理部1081に格納されたエラー処理情報、すなわちエラー処理テーブル及びエラー処理内エラー処理テーブルを参照して行われる。
図16は、エラー処理を示すフローチャートである。
以下、エラー処理テーブル及びエラー処理内エラー処理テーブルをエラーテーブルと、デフォルトエラー処理テーブル及びデフォルトエラー処理内エラー処理テーブルをデフォルトエラーテーブルという。
エラー情報管理部1081にエラーテーブルが格納されているかのチェックを行い(ステップS401)、既に格納されていれば(ステップS402)、当該エラーテーブルの内容に従ってエラー処理を行う(ステップS406)。ステップS402においてエラーテーブルが格納されていないと判断された場合には、エラーテーブル取得処理を行う(ステップS403)。エラーテーブルのテーブルIDは予め定められたものであり、エラーテーブルの取得は、テーブルIDの指定により制御部1100を介して分離抽出部1050を制御することによって行う。
もし、エラーテーブルを取得できれば、エラー処理情報管理部1081は、当該エラーテーブルを格納する。また、エラーテーブルが受信できない等の何らかの理由により取得できない場合には(ステップS404)、エラー処理情報管理部1081は予め記憶しているデフォルトエラーテーブルをエラーテーブルとして扱うよう設定する(ステップS405)。これにより、エラーテーブルが設定され、エラー処理が実施される(ステップS406)。ここで、エラーテーブルに登録されていないエラーコード、例えば0は、非エラーとして扱われ、何も処理されない。
また、ステップS406におけるエラーテーブルに従ったラー処理において、エラーが起こった場合(ステップS407)、エラー処理内エラー処理テーブルを参照して、エラー処理内用のエラー処理が行われる(ステップS408)。
このように、図14のステップS312に示すエラー処理は実行される。
ここで、上述のステップS406のエラー処理において参照されるエラー処理テーブル、エラー処理内エラー処理テーブル、デフォルトエラー処理テーブル、デフォルトエラー処理内エラーテーブルについて図17、図18を用いて説明する。
図17は、エラー処理テーブル、エラー処理内エラー処理テーブルの構成及びエラー処理コードの説明のための図である。
エラー処理テーブル501及びエラー処理内エラー処理テーブル502はエラーコードとエラー処理コードとを対応付けたテーブルである。エラー処理コードの説明503は、エラー処理テーブル501及びエラー処理内エラー処理テーブル502に格納されたエラー処理コードについての設定例である。エラー処理コードの説明503に示すように、エラー処理コードはエラー処理そのものを示すCODEと、エラー処理後におかれる状態を示す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のレベルとして100ミリ秒間隔で画面上に描画された枠をブリンキングさせることのできるレベルを定めることができる。
なお、プログラムにおいて、レベル別処理は「switch levels」のように定まった形で記述する等を定めておけばプログラムの解析によりプログラム構造情報を作成することもできる。
プログラム分割部8050は第1実施例と同様に図12のフローチャートに沿った動作をする。
ステップS3110において分割部8051はプログラム構造情報記憶部8011に記憶されているプログラム構造情報を参照して、プログラム記憶部8010に記憶されているプログラムを分割する。
分割の第1の規則は、分割したそれぞれの部分プログラムは最終的にトランスポートパケットのサイズ以下となるように分割することである。なお第1の規則は、他の規則による分割の後に適用される。
分割の第2の規則は、プログラム中の「if」文により分岐している構造を検出すると、それを別々に分割することである。
分割の第3の規則は、プログラム中の「switch−case」文により分岐している構造を検出すると、「case」の枝それぞれを別々に分割することである。
図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で示す「switch−case」によりブロック6030で示すレベル1用処理と、ブロック6040で示すレベル2用処理とブロック6050で示すレベル3用処理を全て別々になるように分割する。
この結果として当該プログラムは部分プログラム6100と6200と6300と6400と6500とに分割されることになる。それぞれの部分プログラムはトランスポートパケットより小さい。
このように分割部8051はプログラムを複数の部分プログラムに分割する(ステップS3110)。
次に識別子付与部3052は、プログラム構造情報を参照して部分プログラムにテーブルIDを付与する(ステップS3120)。ここで、上述のレベル別処理である部分プログラム6200、6300、6400には、この関係がわかるようにテーブルIDを付ける。従って、プログラム6200のテーブルIDは60101、プログラム6300のテーブルIDは60102、プログラム6400のテーブルIDは60103とされる。
次にリンク命令作成部によりそれぞれの部分プログラムにリンク命令が挿入される(ステップS3130)。この場合にも、プログラム構造情報を参照して、レベル別処理の分岐前部分を含む部分プログラム6100の最後に「GET 6010X」というリンク命令が作成され挿入される。
これは、「テーブルIDが6010n(nはレベル番号)の部分プログラムを取得して実行せよ」という意味の命令になる。つまり「GET mX」の形式のリンク命令では、基礎識別子がmであり、取得すべき部分プログラムの識別子は、基礎識別子とレベル番号を合成することにより生成できる。ここで、基礎識別子とは、レベル番号と合成することにより識別子を生成できるものをいう。従って、デジタル放送受信装置側のプログラムの実行を制御する部分が「GET 6010X」を解釈して実行する場合には、基礎識別子である「6010」と当該デジタル放送受信装置のレベル番号とを合成して、取得すべき部分プログラムの識別子であるテーブルIDを生成することになる。
従って、最終的にこれらの部分プログラムが送信された後は、この部分プログラム6100を解釈実行するデジタル放送受信装置側のバイトコードインタープリタにより、部分プログラム6200、6300、6400のうちいずれか1つが取り込まれ実行されることになる。
以上のようにプログラム分割部8050はプログラム構造情報を参照してプログラムを複数の部分プログラムに分割する。
以下、プログラム分割部8050の優先度付与部8054による部分プログラムへの優先度付けの動作について図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は、優先度に応じた部分プログラムの多重化の概念を示す図である。
同図は、複数の部分プログラムを多重化部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と、プログラム存否判断部7071と、バイトコードインタープリタ7090と、制御部7100と、再生部7110と、表示部7120と、音声出力部7130と、信号受信部7140と端末情報記憶部7150とを備える。
また、記憶部7070はイベント情報管理部7080と、エラー処理情報管理部7081とを有し、バイトコードインタープリタ7090はリンク命令処理部7091を有する。
ここで、プログラム存否判断部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に部分プログラムを読み込むだけの空き領域がない場合に、Least Reacently Used(LRU)方式を用いて、一部の部分プログラムをメモリから削除し、領域を空けてから読み込むべき部分プログラムを読み込む。
バイトコードインタープリタ7090はバイトコードプログラムを逐次解釈実行するインタープリタであり、バイトコードプログラム実行時にバイトコードをデジタル放送受信装置内各部のプロセッサに対するネイティブコードに翻訳して各部のプロセッサを動作させる。
バイトコードプログラムはデジタル放送送信装置側で、複数の部分プログラムに分割されて送られるものであり、複数の部分プログラムの集まりとして構成される。
このような第2実施例におけるデジタル放送受信装置が第1実施例におけるデジタル放送受信装置と異なる点は、端末情報記憶部7150を備えたこと、これを参照してバイトコードインタープリタ7090が動作する点である。
従って、以下、バイトコードインタープリタ7090が端末情報記憶部7150を参照していかに動作するかについて図26を用いて詳細に説明する。
端末情報記憶部7150には、当該デジタル放送受信装置の処理能力レベルに関する端末情報を記憶する。
第2実施例におけるデジタル放送受信装置は、表示における性能のレベルが第2のレベルであるとする。
図26は、バイトコードインタープリタ7090が行うバイトコードプログラム実行制御処理を示すフローチャートである。
このフローは利用者の操作により発生又は機器の動作上発生するイベントに対応するバイトコードプログラムを実行する処理である。
まず、読込解釈実行するためのプログラム行を表すlineを0に初期設定する(ステップS1201)。次に、lineに1を加え(ステップS1202)、エラーコードを表すerrorを0に初期設定する(ステップS1203)。
次に、line行目のコマンドが別の部分プログラムを取得するコマンドであるリンク命令かどうかを判断し(ステップS1204)、もし、リンク命令でなければ、コマンド処理を実行する(ステップS1205)。
ここで現在、「GET 6010X」の意味を表すバイトコードであるリンク命令を実行しようとしている状態として以下を説明する。
「GET 6010X」の意味を表すバイトコードはリンク命令であるので、ステップS1204からステップS1209に進む。
レベル付きリンク命令かどうかを判定すると(ステップS1209)、レベル付きリンク命令なので、端末情報記憶部7150からバイトコードインタープリタ7090は端末情報を得る(ステップS1210)。レベル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の後にプログラム構造情報記憶部8011を参照して特定の部分プログラムに「LOCK」というロック命令を挿入するという動作をする点である。
この特定の部分プログラムを識別するための情報は、予めプログラム構造情報記憶部8011に格納されている。
即ち、プログラムは、その実行に際して一の部分が他の部分から2度以上呼び出される可能性を有するプログラム構造を持っている場合、例えば、当該一の部分とは共通モジュールであって他の複数のプログラムモジュールから呼び出されるようなプログラム構造を持っている場合があるため、プログラム構造情報記憶部8011には当該一の部分を識別するための情報が記憶されている。以下、当該一の部分を部分プログラムとした場合に、これを常用部分プログラムという。
従って、プログラム分割部8050は、プログラム構造情報記憶部8011を参照して、プログラムを部分プログラムに分割する際に常用部分プログラムについては、その常用部分プログラムの命令列中のいずれかの場所に「LOCK」というロック命令を挿入する。
このようにして、プログラム分割部8050はプログラムを分割し、必要に応じてロック命令を挿入し、プログラム分割部8050によって分割されたプログラムは、最終的には送信部8060により送信されることになる。
このことにより、デジタル放送受信装置側は、記憶装置から削除すべきでない常用部分プログラムを認識するための情報であるロック命令を得ることができる。
(デジタル放送受信装置の変形例)
次に、デジタル放送受信装置の変形例について説明する。
デジタル放送受信装置の構成については、本変形例においても第2実施例のデジタル放送受信装置の構成と変わりないため(図25参照)、各部については第2実施例と同じ名称及び符号を用いて説明する。第2実施例と本変形例が異なる点は、メモリ管理部の動作とバイトコードインタープリタ7090の動作とである。
本変形例におけるバイトコードインタープリタ7090は、デジタル放送送信装置から送信された部分プログラムを実行すべく図26のフローチャートに沿った動作をするが、ステップS1205のコマンド処理において、「LOCK」というロック命令についての処理のみが第2実施例の動作と異なる。
バイトコードインタプリタ7090はロック命令については、当該ロック命令を含む部分プログラムが常用部分プログラムである旨を、メモリ管理部に通知する。
メモリ管理部は、部分プログラムを分離抽出して記憶部7070に読み込む場合のメモリ管理を行うものであり、記憶部7070に部分プログラムを読み込むだけの空き領域がない場合に、Least Reacently Used(LRU)方式を用いて、一部の部分プログラムを記憶装置内から削除し、領域を空けてから読み込むべき部分プログラムを読み込むのだが、常用部分プログラムについては、一連の部分プログラムの集まりであるプログラムが終了するまで記憶装置内から削除しない。
従って、このようなメモリ管理部により、デジタル放送受信装置は、プログラムの実行にあたり常用部分プログラムを複数回呼び出す必要がある場合に、2回目からは当該常用部分プログラムを新たに受信して分離抽出しなくても、必ず当該常用部分プログラムは記憶部7070に格納されたまま削除されていないので迅速に当該常用部分プログラムを実行することができる。
以上、本発明に係るプログラム受信装置とこれに対応する送信装置について、第1及び第2の実施例(変形例を含む)に基づいて説明したが、以下に示すように、本発明はこれらの実施例の形態に限られないことは勿論である。
(1)両実施例では、プログラム受信装置であるデジタル放送受信装置は必ずエラー処理を行うようにしているが、エラーが起こったときのみエラー処理を行うようにしてもよい。
(2)両実施例では、エラー処理テーブルと、エラー処理内エラー処理テーブルを別のテーブルとしたが、割り振るコードを融合させることによって1つのテーブルにしてもよい。
(3)両実施例では、デフォルトのエラー処理についても、テーブル化するようにしているが、デフォルトのエラー処理については、バイトコードインタープリタ内にハードコーディングしてもよい。
(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,l」といった2変数のリンク命令を定め、nはテーブルIDを意味し、lは部分プログラムの入口の行番号を意味することとして、プログラム受信装置であるデジタル放送受信装置では、その旨を解釈実行するようにすればよい。
(11)両実施例では、プログラム受信装置であるデジタル放送受信装置のバイトコードインタープリタは部分プログラム中のリンク命令を読み込んだ時点で必要となる部分プログラムを取得しているが、バイトコードインタープリタが部分プログラムの実行を開始する時点又はその後にリンク命令を先読みして、次に必要となる可能性のある部分プログラムの取得処理を行うこともできる。
(12)両実施例では、プログラム存否判断部とバイトコードインタープリタと制御部とはメモリとメモリに格納された制御プログラムとCPUによって構成されるとしたが、その一部又は全部をハードウェアで構成してもよい。
(13)両実施例では、プログラム受信実行装置であるデジタル放送受信装置の部分プログラム取得処理において、部分プログラムが存在しなければ当該部分プログラムを抽出するよう制御部を介して分離抽出部に指示しているが、プログラム送信装置側に当該部分プログラムの識別子を指定して当該部分プログラムを送信するよう要求を出すこととしてもよい。送信要求の送信は一般的な送信技術によればよい。
(14)両実施例では、プログラム送信装置であるデジタル放送送信装置は部分プログラムを一方的に送信しているが、プログラム受信装置側から部分プログラムの識別子を指定して部分プログラムの送信要求がされた場合にも当該部分プログラムを送信することとしてもよい。
(15)両実施例では、プログラム受信装置であるデジタル放送受信装置のメモリ管理部は部分プログラムの記憶装置への格納に際してLRU方式を用いて削除する部分プログラムを定めているが、これに限定されることはなく、他の方式によってもよい。
また、記憶装置を空けるために部分プログラムを削除せず、補助記憶装置等に部分プログラムを追い出すようにしてもよい。この場合、補助記憶装置等に追い出されている部分プログラムは、図15のフローチャートのステップS4010で示すプログラム存否判断部による部分プログラムの存在チェックがなされたときに、再度記憶装置内に読み込まれ、存在チェックの結果としては「当該部分プログラムは存在する」としてもよい。但し、当該部分プログラムが補助記憶装置等に追い出された後に当該部分プログラムを含んだ複数の部分プログラムより構成される1つのプログラムが終了した後は、補助記憶装置等に追い出されている当該部分プログラムは、存在しないものとして扱う。
(16)第2実施例(変形例)では、ロック命令として「LOCK」という命令を用いたが、これに限定されることはなく、常用部分プログラムであることを示す命令であればよい。また、命令でなくても、常用部分プログラムであること示す識別情報をプログラム送信装置であるデジタル放送送信装置から送信し、これを受けたプログラム受信装置であるデジタル放送受信装置のメモリ管理部が常用部分プログラムであるか否かを認識して、部分プログラムの記憶装置内への読み込み処理を行うようにしてもよい。
(17)第2実施例では、端末情報はあらかじめ端末情報記憶部7150が保持しているとしたが、プログラム受信装置であるデジタル放送受信装置の起動時あるいは、デジタル放送のサービスの開始時等に当該受信装置の性能レベルを調べるバイトコードプログラムをデジタル放送送信装置側から送ることとし、当該受信装置は前記バイトコードプログラムを実行し、その結果を端末情報記憶部7150に格納するようにしてもよい。
(18)第2実施例では、プログラム受信装置であるデジタル放送受信装置の性能レベルを3段階に区分したが、何段階に別けても、また、表示機能、音声再生機能その他の機能毎にレベルを別けるなど自由に定めてよい。
(19)第2実施例では、プログラム送信装置であるデジタル放送送信装置は送信すべきプログラムの分岐構造の深さに応じて別の優先度を付与し送信する頻度を切り分けているが、分岐の深さ1段毎に全て別の優先度を付与して送信頻度の切り分けをしなくても差し支えなく、分岐の深さが2段毎や3段毎に別の優先度を付与してもよく、また、優先度の付与の仕方についてのアルゴリズムはいかなるものであってもよい。
(20)両実施例におけるデジタル放送受信装置の処理手順(図14、図15、図16、図26のフローチャートの手順)等を機械語プログラムにより実現し、これを記録媒体に記録して流通・販売の対象にしても良い。このような記録媒体には、ICカードや光ディスク、フレキシブルディスク、ROM等があるが、これらに記録された機械語プログラムは汎用のハードウェアにインストールされることにより利用に供される。ここでいう汎用ハードウェアは、一般のパーソナルコンピュータ等であり、インストールした上記機械語プログラムを逐次実行して、両実施例に示したプログラム受信実行装置であるデジタル放送受信装置の機能を実現する。
本発明に係るプログラム受信装置は、ゲーム等の大容量のプログラムをコンピュータネットワークを介して受信するパーソナルコンピュータに適用でき、また、高速なレスポンスが要求されるような対話性のある番組を受信するデジタル放送における受信装置にも適用できる。
デジタル映像・音声データを圧縮処理してなるビットストリームを多重化する手段を示す概略図である。 PESの構成を示す図である。 放送用としてのビットストリームを構成する手段を示す図である。 従来のデジタル放送システムにおけるデジタル放送受信装置の構成例を示す図である。 番組オブジェクトの構成を概念的に示した図である。 このような番組オブジェクトを再生するプログラムオブジェクトの概念図である。 番組オブジェクトのフォーマットを示す図である。 従来のデジタル放送受信装置のメインプロセスの処理を示すフローチャートである。 第1実施例におけるデジタル放送送信装置の構成を示すブロック図である。 トランスポートストリームのイメージを示した図である。 プログラムを分割する様子を示す図である。 プログラム分割部3050がプログラム800を部分プログラム801、802、803に分割する処理手順を示すフローチャートである。 第1実施例におけるデジタル放送受信装置の構成を示すブロック図である。 バイトコードインタープリタ1090が行うバイトコードプログラム実行制御処理を示すフローチャートである。 部分プログラム取得処理のフローチャートである。 エラー処理を示すフローチャートである。 エラー処理テーブル、エラー処理内エラー処理テーブルの構成及びエラー処理コードの説明のための図である。 デフォルトエラー処理テーブル、デフォルトエラー処理内エラー処理テーブルの構成を示す図である。 第2実施例におけるデジタル放送送信装置の構成を示すブロック図である。 プログラム構造を示す概念図である。 分割後のプログラムのイメージを示す図である。 「switch-case」文を有する構造のプログラムの分割後のイメージを示す図である。 部分プログラムの優先度を示す概念図である。 優先度に応じた部分プログラムの多重化の概念を示す図である。 第2実施例におけるデジタル放送受信装置の構成を示すブロック図である。 バイトコードインタープリタ7090が行うバイトコードプログラム実行制御処理を示すフローチャートである。

Claims (5)

  1. 複数の部分プログラムを有するプログラムを含む放送波を受信する受信部と、
    前記受信した放送波から、前記複数の部分プログラムのうちの少なくとも一つを分離抽出する分離抽出部と、
    一の前記抽出された部分プログラムから他の部分プログラムへ継続して実行させるためのリンク命令を有する一の前記抽出された部分プログラムを記憶する記憶部と、
    前記記憶部に記憶されている一の前記部分プログラムを実行するバイトコードインタープリタと、
    前記バイトコードインタープリタで実行される一の前記部分プログラムに含まれる前記リンク命令に従って、前記他の部分プログラムが前記記憶部に記憶されているかを判断するプログラム存否判断部と、
    前記プログラム存否判断部が、前記他の部分プログラムが前記記憶部に記憶されていないと判断した場合には、前記他の部分プログラムを分離抽出するように前記分離抽出部を制御する制御部を有するプログラム受信装置。
  2. 前記受信部は、繰り返し送られてくる前記複数の部分プログラムを受信することを特徴とする請求項1記載のプログラム受信装置。
  3. 前記記憶部に記憶されている一の前記部分プログラムはバイトコードプログラムであり、
    前記バイトコードインタープリタは、前記バイトコードプログラムに含まれる各命令を解釈して実行することを特徴とする請求項1または請求項2記載のプログラム受信装置。
  4. 前記受信部によって受信された前記部分プログラムは、映像データ又は音声データのうち少なくとも1つとともに多重化されてくることを特徴とする請求項1から請求項3のうちいずれか1項に記載のプログラム受信装置。
  5. 前記プログラム受信装置は、ISO/IEC13818の規格に準拠し、
    前記受信部によって受信された前記複数の部分プログラムは、該ISO/IEC13818の規定に準拠するMPEG2のトランスポートストリームのプライベートセクションの少なくとも一部分に配置されて送られてくることを特徴とする請求項1から請求項4のうちいずれか1項に記載のプログラム受信装置。
JP2004275571A 1996-09-11 2004-09-22 プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置 Expired - Lifetime JP3803356B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004275571A JP3803356B2 (ja) 1996-09-11 2004-09-22 プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24029696 1996-09-11
JP2004275571A JP3803356B2 (ja) 1996-09-11 2004-09-22 プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP51148898A Division JP3963398B2 (ja) 1996-09-11 1997-09-08 プログラム受信実行装置及びそのためのプログラム送信装置

Publications (2)

Publication Number Publication Date
JP2005056434A true JP2005056434A (ja) 2005-03-03
JP3803356B2 JP3803356B2 (ja) 2006-08-02

Family

ID=17057370

Family Applications (5)

Application Number Title Priority Date Filing Date
JP51148898A Expired - Lifetime JP3963398B2 (ja) 1996-09-11 1997-09-08 プログラム受信実行装置及びそのためのプログラム送信装置
JP2004275571A Expired - Lifetime JP3803356B2 (ja) 1996-09-11 2004-09-22 プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置
JP2007005109A Expired - Lifetime JP4224515B2 (ja) 1996-09-11 2007-01-12 プログラム受信実行装置
JP2007308564A Expired - Lifetime JP4224520B2 (ja) 1996-09-11 2007-11-29 プログラム受信実行装置
JP2008257460A Expired - Lifetime JP4283877B2 (ja) 1996-09-11 2008-10-02 プログラム受信実行装置及びそのためのプログラム送信装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP51148898A Expired - Lifetime JP3963398B2 (ja) 1996-09-11 1997-09-08 プログラム受信実行装置及びそのためのプログラム送信装置

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2007005109A Expired - Lifetime JP4224515B2 (ja) 1996-09-11 2007-01-12 プログラム受信実行装置
JP2007308564A Expired - Lifetime JP4224520B2 (ja) 1996-09-11 2007-11-29 プログラム受信実行装置
JP2008257460A Expired - Lifetime JP4283877B2 (ja) 1996-09-11 2008-10-02 プログラム受信実行装置及びそのためのプログラム送信装置

Country Status (8)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518777A (ja) * 2007-02-14 2010-05-27 ドリーマー デジタル放送データアプリケーションの実行方法及びこれを実現させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体

Families Citing this family (80)

* 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
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 无锡市经登自控阀门有限公司 信号丢失可自行脱管的执行器控制方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518777A (ja) * 2007-02-14 2010-05-27 ドリーマー デジタル放送データアプリケーションの実行方法及びこれを実現させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体
JP2012138953A (ja) * 2007-02-14 2012-07-19 Sk Planet Co Ltd デジタル放送データアプリケーションの実行方法
JP2014057334A (ja) * 2007-02-14 2014-03-27 Sk Planet Co Ltd デジタル放送データアプリケーションの実行方法

Also Published As

Publication number Publication date
KR100487012B1 (ko) 2005-06-16
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
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
JP3803356B2 (ja) プログラムの一部しか受信していない状態でも当該プログラムを実行開始できるプログラム受信装置
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
ES2201511T3 (es) Tratamiento de un flujo de transporte digital.
KR100558674B1 (ko) 다중 스레드 데이터 프로세서
AU2002334278B2 (en) Method and apparatus for a receiver/decoder
US20050244004A1 (en) Information processing apparatus and method
KR20010021521A (ko) 디지탈데이터 송수신 시스템 및 그 방법
AU2002334278A1 (en) Method and apparatus for a receiver/decoder
CN1394441A (zh) 主动修改对应于处理和嵌入视频数据流的数据的视频内容的方法和系统
JPH114417A (ja) ビット・ストリーム情報表示方法、ビット・ストリーム情報作成方法及び記録媒体
KR100892311B1 (ko) 디지털 방송 수신기의 소프트웨어 업그레이드 장치 및 방법
EP0901250A1 (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
US20030112834A1 (en) Multiplexing apparatus and method and storage medium
JP2001268600A (ja) 放送番組スケジュール監視装置及びその監視方法
JPH11262002A (ja) データ解析装置及びデータ解析方法
JP4592282B2 (ja) 受信方法及び装置
JP2003333000A (ja) データ送信方法および装置、データ受信方法および装置
CN101194508A (zh) 记录和再现装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060502

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100512

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110512

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120512

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130512

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140512

Year of fee payment: 8

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term