(57)【特許請求の範囲】
【請求項１】
記憶装置、外部記憶装置および通信装置の少なくともいずれか１つからストリームデータを読み込む読み込み手段と、
前記読み込み手段が読み込んだストリームデータを、設定された条件に基づいて分離する分離手段と、
前記分離手段が分離したストリームデータを格納する格納手段と、
前記分離手段と前記格納手段からなるセレクタを設定するセレクタ設定手段と、
前記格納手段が格納したストリームデータを取り出す取り出し手段と、を備え、
前記分離手段には、ストリームデータの種類に応じて異なる条件が設定され、
前記セレクタ設定手段は、ストリームデータの種類に応じて複数のセレクタを組み合わせてなるストリームデータ制御システムであって、
前記セレクタ設定手段は、第一のセレクタと第二のセレクタとを設定し、前記第一の分離手段が分離したストリームデータであって設定された条件に一致しないストリームデータを、前記第二のセレクタに出力することによって、前記第一のセレクタと前記第二のセレクタとを組み合わせるように構成されてなり、  
さらに、前記ストリームデータの基本単位となるデータ形式を、固定サイズのセクタとし、かつ、当該ストリームデータには、映像データ、音声データおよびゲーム用ストリームデータの少なくともいずれか１つが含まれることを特徴とするストリームデータ制御装置。
【請求項２】
ストリームデータが、映像データと音声データとからなる動画データである場合、
前記セレクタ設定手段は、映像データを分離するための条件が設定された第一のセレクタと、音声データを分離するための条件が設定された第二のセレクタとを組み合わせ、
前記取り出し手段は、前記第一のセレクタの格納手段に格納された映像データと、前記第二のセレクタの格納手段に格納された音声データとを取り出して、所定の出力手段にそれぞれ出力することを特徴とする請求項１記載のストリームデータ制御装置。
【請求項３】
ストリームデータが、所定のゲームのためのデータである場合、前記セレクタ設定手段は、ゲームの進行内容に応じて、前ステージに必要なストリームデータを分離しこれを格納するための第一のセレクタと、次ステージに必要なストリームデータを分離しこれを格納するための第二のセレクタと、を設定し、
前記第二のセレクタは、前記取り出し手段が前記第一のセレクタの格納手段に格納された前ステージのストリームデータを取り込んで所定の出力手段に出力している間に、次ステージのストリームデータを分離しこれを格納し、
前記取り出し手段は、ゲームが前ステージから次ステージに入ったとき、前記第二のセレクタの格納手段から後ステージのストリームデータを取り込んで所定の出力手段に出力することを特徴とする請求項１又は２記載のストリームデータ制御装置。
【請求項４】
ストリームデータが、所定のゲームのための動画データであって、ゲームの分岐点で複数の動画データの中から１つの動画データが決定されるゲームの動画データである場合、
前記セレクタ設定手段は、分岐点の前に必要な動画データを分離するための第一のセレクタと、分岐点の後に必要な動画データを分離するための少なくとも第二のセレクタおよび第三のセレクタと、を設定し、
前記第二のセレクタおよび前記第三のセレクタは、前記取り出し手段が前記第一のセレクタの格納手段に格納された分岐前の動画データを取り込んで所定の出力手段に出力している間に、分岐後に必要な動画データを分離しこれを格納し、
前記取り出し手段は、ゲームが分岐点に達したとき、決定された動画データを第二のセレクタまたは第三のセレクタの格納手段から読み込んで、これを出力することを特徴とする請求項１又は２記載のストリームデータ制御装置。
【請求項５】
読み込まれたストリームデータをデータの種類に応じて制御するストリームデータの制御方法において、
設定された条件でストリームデータを分離し、この分離されたストリームデータを格納するセレクタを複数設定するステップと、
記憶装置、外部記憶装置および通信装置の少なくともいずれか１つからストリームデータを読み込むステップと、
読み込まれたストリームデータを設定された条件に基づいて分離するステップと、
分離されたストリームデータであって前記設定された条件に一致するストリームデータを格納するステップと、
格納されたストリームデータを取り出し所定の出力手段に出力するステップと、を有して構成され、
第一のセレクタと第二のセレクタとを組み合わせるステップと、読み込まれたストリームデータが、前記第一のセレクタに設定された条件に一致するか否かを判定し、一致すると判定した場合には前記第一のセレクタに出力し、一致しないと判定した場合には前記第二のセレクタに出力するステップと、を更に有し、
前記ストリームデータの基本単位となるデータ形式を、固定サイズのセクタとし、当該ストリームデータには、映像データ、音声データおよびゲーム用ストリームデータの少なくともいずれか１つが含まれてなるストリームデータの制御方法。
【請求項６】
ストリームデータが、映像データと音声データとからなる動画データである場合、前記ストリームデータの制御方法は、
映像データを分離するための条件が設定された第一のセレクタと、音声データを分離するための条件が設定された第二のセレクタと、を組み合わせるステップと、
前記第一のセレクタに格納された映像データと、前記第二のセレクタに格納された音声データとを取り出して、所定の出力手段にそれぞれ出力するステップと、を更に有することを特徴とする請求項５記載のストリームデータの制御方法。
【請求項７】
ストリームデータが、所定のゲームのためのデータである場合、前記ストリームデータの制御方法は、
ゲームの進行内容に応じて、前ステージに必要なストリームデータを分離しこれを格納するための第一のセレクタと、次ステージに必要なストリームデータを分離しこれを格納するための第二のセレクタと、を設定するステップと、
前記第一のセレクタに格納された前ステージのストリームデータを取り込んで所定の出力手段に出力している間に、次ステージのストリームデータを分離しこれを前記第二のセレクタに格納するステップと、
ゲームが前ステージから次ステージに入ったとき、前記第二のセレクタから次ステージのストリームデータを取り込んで所定の出力手段に出力するステップと、を更に有することを特徴とする請求項５記載のストリームデータの制御方法。
【請求項８】
ストリームデータが、所定のゲームのための動画データであって、ゲームの分岐点で複数の動画データの中から１つの動画データが決定されるゲームの動画データである場合、前記ストリームデータの制御方法は、
分岐点の前に必要な動画データを分離するための第一のセレクタと、分岐点の後に必要な動画データを分離するための少なくとも第二のセレクタおよび第三のセレクタと、を設定するステップと、
前記第一のセレクタに格納された分岐前の動画データを取り込んで所定の出力手段に出力している間に、分岐後に必要な動画データを分離しこれを前記第二のセレクタおよび前記第三のセレクタにそれぞれ格納するステップと、
ゲームが分岐点に達したとき、決定された動画データを前記第二のセレクタまたは前記第三のセレクタから取り込んで、これを所定の出力手段に出力するステップと、を更に有することを特徴とする請求項５記載のストリームデータ制御方法。
【請求項９】
コンピュータに請求項５乃至８の何れか１項記載のストリームデータ制御方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
記録媒体、外部記憶装置および通信装置の少なくとも１つからストリームデータを読み込んで、これをデータの種類に応じて分離する絞りと、
前記ストリームデータを格納するバッファ区画とから成る複数のセレクタと、
前記セレクタの組み合わせを制御するメインＣＰＵと、
前記メインＣＰＵとは独立して動作し、且つ前記セレクタを制御するサブＣＰＵとを具備したストリームデータ選択装置であって、
前記メインＣＰＵは、第一のセレクタと第二のセレクタとを設定し、前記第一の分離手段が分離したストリームデータであって設定された条件に一致しないストリームデータを、前記第二のセレクタに出力することによって、前記第一のセレクタと前記第二のセレクタとを組み合わせるように構成されてなり、  
さらに、前記ストリームデータの基本単位となるデータ形式を、固定サイズのセクタとし、かつ、当該ストリームデータには、映像データ、音声データおよびゲーム用ストリームデータの少なくともいずれか１つが含まれてなるストリームデータ選択装置。
【請求項１１】
前記セレクタが少なくともサブＣＰＵとバッファＲＡＭから成ることを特徴とする請求項１０記載のストリームデータ選択装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、記録媒体、外部記憶装置および通信装置の少なくとも１つから読み込むストリームデータを、データの種類に応じて選択するストリームデータ選択装置に関するものである。
【０００２】
【従来の技術】
近年、マルチメディア用の記録媒体としてＣＤ−ＲＯＭやＣＤ−Ｉなどが注目を集めており、これらを利用するＣＤシステムが研究、開発されている。このＣＤシステムは、ＣＤドライブやＭＰＥＧデコーダなどの周辺ハードウェアと、高性能のＣＰＵを装備したホストコンピュータ（以下、ホストと呼ぶ）とを接続して、データの流れを制御するシステムである。
【０００３】
ところで、記録媒体または外部記憶装置から取り出されるデータが１次元的な順序関係を持つデータの集合である場合、これをストリームデータと呼んでいる。ストリームデータの種類としては、映像ストリームや音声ストリーム、両者を合せた動画ストリームなどがある。ストリームデータはデータの種類に応じて異なるセクタを有しており、ここにデータ種類を区別するためのサブヘッダを持っている。これらのストリームデータをＣＤシステムに流す際には、各ストリームデータを適切な再生部に送り込むよう、データの種類に応じてストリームデータを選択することが要求されている。
【０００４】
一例として、割り込みルーチンによるＣＤ−ＲＯＭ  ＸＡのストリームデータ処理方式を説明する。ここでは次のような▲１▼〜▲４▼という動作をとる。
【０００５】
▲１▼ＣＤからストリームデータが１セクタリードされると、割り込みルーチンが起動する。
▲２▼割り込みルーチンではリードしたセクタのサブヘッダを調べる。
▲３▼セクタの種類によってメインルーチンから指定されているバッファに転送する。
▲４▼セクタの情報をメインルーチンに伝える。
メインルーチンと割り込みルーチンが情報交換するためにメインルーチンはメモリ領域を確保し、そのポインタを割り込みルーチンに渡しておく。これらのプログラムはすべてアプリケーションプログラムで準備しておく必要がある。
【０００６】
【発明が解決しようとする課題】
ここで図２０に示すＣＤシステムの従来例を参照しながら、従来のストリームデータ選択処理の問題点について、具体的に説明する。すなわち従来のＣＤシステム１では、ＣＤから読み込んだストリームデータを分離・格納する選択処理プログラム２と、ストリームデータを再生する再生処理プログラム３とが、アプリケーションプログラム４として一体化しており、単一のＣＰＵがこのプログラムを実行するようになっている。
【０００７】
このようなＣＤシステム１を構築する場合、アプリケーションプログラム４の開発者は、選択処理プログラム２を、ＣＤドライブなどの周辺機器のハードウェアやアプリケーションプログラムに応じて個別に開発している。そのため、システムの制御処理方式もまちまちである。例えば、前述したＣＤ−ＲＯＭ  ＸＡのストリームデータ処理方式は、割り込みルーチンとメインルーチンとの通信方式であるが、これ以外にもヘッダやサブヘッダの転送方式（モード１，２やサブモードに対応した処理など）、あるいは選択したデータの転送方式などが考えられる。いずれにせよ、ハードウェアやアプリケーションプログラムごとに、制御プログラムを作成しなくてはならない。したがって、ハードウェアやアプリケーションプログラムへの依存度が大きく、高い汎用性を獲得することが困難であった。
【０００８】
また、全体として１本のアプリケーションプログラム４しかないので、選択処理プログラム２によるストリームデータの選択処理も、アプリケーションプログラム４全体の処理も共に、同一のＣＰＵ上で動作している。そのため、ＣＰＵの負荷は大きくならざるを得ず、処理速度が低下するという不具合が生じた。
【０００９】
さらに、扱えるストリームデータもＣＤ−ＲＯＭならＣＤ−ＲＯＭだけといった個別のものに限定されていた。すなわち、通信用モデムやＣＡＴＶが通常扱うデータ形式はシリアルデータ、ＭＰＥＧデコーダではＩＳＯ１１１７２規格で規定された可変長のＭＰＥＧストリームデータを扱っている。また、通常の外部記憶装置では固定長のデータを扱っており、そのサイズは各装置ごとに異なっている。
【００１０】
このように従来では、記録媒体または外部記憶装置あるいは通信装置ごとに、固有のデータ形式をもったストリームデータを考慮する必要があり、様々なストリームデータを同時且つ統一的に処理することができなかった。また、サイズや形式が異なるデータを扱うには、その途中にバッファメモリと変換処理が不可欠である。例えば、通信用モデムやＣＡＴＶの場合では、シリアルデータとパラレルデータとの変換が必要である。したがって従来技術においては、既存のシステムに対して、記録媒体のドライバまたは外部記憶装置さらには通信装置の追加や機能の拡張が困難であった。
【００１１】
本発明は、以上のような問題点を解決することであり、その主たる目的は、汎用性の向上、処理速度の高速化および機能拡張の簡易化を図るストリームデータ選択装置を提供することである。
【００１２】
さらに詳しくいえば、請求項１の発明は、ハードウェアやアプリケーションプログラムへの依存度を少なくすると共に、ＣＰＵの負荷を軽減させることである。請求項２の発明は、記録媒体や外部記憶装置、または通信装置の種類に関係なく、同時且つ統一的にデータを選択処理するストリームデータ選択装置を提案することである。請求項３の発明は、コストの削減および素子数の増大を図ることである。
【００１３】
【課題を解決するための手段】
上記の目的を達成するために、請求項１の発明は、記録媒体、外部記憶装置および通信装置の少なくとも１つからストリームデータを読み込んで、これをデータの種類に応じて分離する絞りと、前記ストリームデータを格納するバッファ区画とから成る複数のセレクタと、前記セレクタの組み合わせを制御するメインＣＰＵと、前記メインＣＰＵとは独立して動作し、且つ前記セレクタを制御するサブＣＰＵとを具備したことを特徴とする。
【００１４】
請求項２の発明は、前記ストリームデータの基本単位となるデータ形式を、固定サイズのセクタとすることを特徴とする。
【００１５】
請求項３の発明は、前記セレクタが少なくともサブＣＰＵとバッファＲＡＭから成ることを特徴とする。
【００１６】
【作用】
上記のような構成を有する本発明の作用は以下の通りである。すなわち、請求項１の発明では、各セレクタがストリームデータを読み込むと、絞りがストリームデータをデータの種類に応じて分離し、バッファ区画がこれを格納する。メインＣＰＵは、このような働きをするセレクタを適宜組み合わることによって、必要なストリームデータだけを選択し、取り出す論理的な選択回路を構築することができる。しかも、セレクタ自体の選択処理はサブＣＰＵが制御しているので、メインＣＰＵにかける負荷を軽くすることができる。
【００１７】
請求項２の発明では、全てのストリームデータを同一のデータ形式で扱うことができる。そのため、記録媒体や外部記憶装置または通信装置の種類に関係なく、同時且つ統一的にデータを処理することが可能である。請求項３の発明では、セレクタが少なくともサブＣＰＵとバッファＲＡＭから成るため、コストを削減することができると同時に、素子数も容易に増やすことができる。
【００１８】
【実施例】
（１）実施例の構成
以下、本発明のストリームデータ選択装置の一実施例の構成を図面を参照して具体的に説明する。本実施例は、所定のゲームを行うＣＤシステムに採用するものである。図１は本実施例を採用するＣＤシステム全体のハードウェアブロック図である。１０は本実施例の主要部を含むＣＤブロック、２０はＣＤシステムの本体であるホスト、７は外部記憶装置、８は映像出力用のＭＰＥＧデコーダ（Ｖ）、９は音声出力用のＭＰＥＧデコーダ（Ａ）である。このうち外部記憶装置７およびＭＰＥＧデコーダ８，９はＣＤブロック１０を介してホスト２０に接続されている。
【００１９】
［ＣＤブロック１０の構成］
ＣＤブロック１０には記憶装置であるＣＤドライブ１１、データ保存用のバッファＲＡＭ１２、ストリームデータの選択処理を行うサブＣＰＵ１３、およびハードウェアインターフェース１４が設けられている。バッファＲＡＭ１２はストリームデータの保存だけではなく、移動・複写も行うようになっている。またサブＣＰＵ１３は後述するセレクタ１５を制御するものである。またハードウェアインターフェース１４は、ＣＤブロック１０とホスト２０とを接続するものである。さらに、外部記憶装置７及びＭＰＥＧデコーダ（Ｖ）８，ＭＰＥＧデコーダ（Ａ）９は、ＣＤブロック１０のＣＤドライブ１１に対して並列に接続されている。
【００２０】
［セレクタ１５の構成］
セレクタ１５は、本実施例の主要部であり、バッファＲＡＭ１２およびサブＣＰＵ１３上に仮想的な素子として複数設定される。セレクタ１５は図２に示すように、データの種類に応じてこれを分離する絞り１６と、分離されたストリームデータを格納するバッファ区画１７とから構成される。
【００２１】
絞り１６は、設定した条件に一致する／しないによってストリームデータを２本に分離する仮想的な素子であり、サブＣＰＵ１３上に設定される。また絞り１６には、絞り入力コネクタ１６ａ、真出力コネクタ１６ｂ、偽出力コネクタ１６ｃが形成されている。このうち絞り入力コネクタ１６ａはＣＤドライブ１１の出力コネクタに接続され、真出力コネクタ１６ｂは後述する区画入力コネクタ１７ａに接続され、偽出力コネクタ１６ｃは他の絞りの絞り入力コネクタ１６ａに接続されている。
【００２２】
バッファ区画１７は、ストリームデータを格納し、且つ外部からの要求によってストリームデータを放出する区画であり、バッファＲＡＭ１２に設定される。またバッファ区画１７には区画入力コネクタ１７ａ、区画出力コネクタ１７ｂが形成されている。このうち区画出力コネクタ１７ｂはホスト２０の入力コネクタに接続されている。なお各バッファ区画１７の容量は固定ではなく、バッファ全体に空きがある限り、データを格納できるようになっている。
【００２３】
［ホスト２０の構成］
ホスト２０には、メインＣＰＵ２１と、プログラムＲＡＭ２２と、コマンド入出力用レジスタ２３と、データ転送用レジスタ２４とが設けられている。メインＣＰＵ２１はアプリケーションプログラムを実行するものであり、ＣＤブロック１０のサブＣＰＵ１３にコマンドを発行して、このコマンドによりセレクタ１５を組み合わせるようになっている。プログラムＲＡＭ２２はアプリケーションプログラムを格納するためのものである。
【００２４】
またコマンド入出力用レジスタ２３，データ転送用レジスタ２４は、前記ハードウェアインターフェース１４を介してＣＤブロック１０にアクセスするようになっている。コマンド入出力用レジスタ２３は、ホスト２０が発行するコマンドをＣＤブロック１０に送り、ＣＤブロック１０からレスポンスを受け取るレジスタである。一方、データ転送用レジスタ２４は、ホスト２０とＣＤブロック１０との間でデータを入出力するレジスタである。
【００２５】
［セクタのデータ形式］
図３に示すように、ストリームデータの基本単位となるデータ形式は、固定長セクタ３０とする。固定長セクタ３０は、キー部３１と、本体部３２とから構成される。このうちキー部３１にはストリームデータの種類を区別するためのアドレスや属性が指定され、本体部３２には使用するデータが格納される。
【００２６】
（２）実施例の作用
［本実施例の動作］
以上のような構成を有する本実施例の動作を図４のフローチャートに従って説明する。まず、メインＣＰＵ２１がセレクタ１５を組み合わせて、必要なストリームデータだけを選択し、取り出すことができる論理的な回路を設定する（ステップ４１）。続いて、メインＣＰＵ２１がＣＤドライブ１１とセレクタ１５とを接続し（ステップ４２）、ＣＤドライブ１１を動作させてストリームデータを流す（ステップ４３）。次にセレクタ１５の絞り１６に設定された条件によってストリームデータを分離し（ステップ４４）、分離したストリームデータをバッファ区画１７に格納する（ステップ４５）。
【００２７】
次いで、必要なストリームデータがバッファ区画１７に格納されたかを判断し（ステップ４６）、格納された場合にはバッファ区画１７から適宜ストリームデータを取り出し（ステップ４７）、格納されていない場合にはステップ４４に戻る。バッファ区画１７からストリームデータを取り出した後、別のストリームデータが必要か否かを判断し（ステップ４８）、別のストリームデータが必要な場合にはステップ４１に戻り、必要でない場合には終了となる。
【００２８】
［セレクタ１５の動作］
ここでセレクタ１５の動作について、図５を参照してさらに詳しく説明する。セレクタ１５の動作は、前記ステップ４４，４５にて行われる。絞り１６には通過させるべきセクタのキー部３１の条件（アドレスの範囲や属性）が設定してある。そして、絞り入力コネクタ１６ａがＣＤドライブ１１の出力コネクタからストリームデータを読み込むと、絞り１６が設定された条件に基づいてデータを分離する。真出力コネクタ１６ｂは条件に一致したセクタ（つまりストリームデータ）を出力し、接続先の区画入力コネクタ１７ａがこのセクタをバッファ区画１７に格納する。一方、偽出力コネクタ１６ｃは条件に一致しないセクタ（つまり別のストリームデータ）を他の絞り入力コネクタ１６ａに出力し、次々と同様の処理を行う。なお、未接続の出力コネクタ１６ｂ，１６ｃから出力されたセクタは消去される。
【００２９】
また図６は、ｏｒ条件（図ではＡｏｒＢ）によるセレクタ１５の接続を示している。すなわち、複数の絞り１６の真出力コネクタ１６ｂを、同一の区画入力コネクタ１７ａに接続することもできる。これにより、複数の条件のどれかに一致したストリームデータをバッファ区画１７に格納することができる。
【００３０】
［ＣＤシステム動作時の本実施例の動作］
続いて、本実施例を採用したＣＤシステムが動作する際の本実施例の動作について説明する。
＜１＞ＣＤドライブ１１からリードしたデータの蓄積と取り出し…図７の▲１▼▲２▼
ＣＤは低速な記録媒体であるため、あらかじめＣＤドライブ１１からリードしたデータをバッファ区画１７に蓄積しておく（図中、斜線部はデータが蓄積した状態を示す、以下の図面でも同様）。そして、データがたまったら、ホスト２０は１度に取り出して使用する。このとき、メインＣＰＵ２１およびサブＣＰＵ１３が同時且つ平行的に動作する。そのため、メインＣＰＵ２１の負荷は小さくなり、処理速度は速くなる。したがって、ゲームの実行が中断、遅延するといったことがなく、プレーヤはゲームに集中できる。
【００３１】
＜２＞動画の再生…図８
動画データは大容量で、１度にはバッファ区画１７に入り切らない。そのため、動画を再生するには、ＣＤドライブ１１からリードしたデータをリアルタイムに処理しなければならない。そこで、映像データと音声データとをインターリーブして記録し、映像と音声のストリームデータを分離しながら読み込む。
【００３２】
＜３＞動画再生時におけるゲーム用データの読み込み…図９
動画の再生中に、ゲームの実行に必要な、次のようなゲーム用ストリームデータを読み込みたい場合がある。
【００３３】
・動画を背景にして動かすキャラクタ（飛行機や登場者の表示用データ）。
・動画面との当たり判定用データ（動画のどこにミサイルなどが入ったならば、当たりと判定するか）。
【００３４】
この場合、動画データとゲーム用ストリームデータをインターリーブして別々のストリームデータとして処理する。すなわちＣＤブロック１０側がデータの入力だけを受け持ち、ホスト２０側がそのデータの処理・出力を受け持つことになる。
【００３５】
＜４＞前ステージ動画再生中における次ステージプログラムの読み込み…図１０の▲１▼▲２▼
動画の再生中に、次ステージのゲームプログラムをＣＤドライブ１１からあらかじめ読み込んでおき、次ステージに入った瞬間、次ステージのゲームプログラムを実行することができる。これにより、次ステージのゲームプログラムが実行されるまでの待ち時間を短縮することができ、ゲームをスムーズに進行させることができる。
【００３６】
＜５＞分岐動画再生…図１１〜図１５
分岐動画再生とは、１本の動画を単純に再生するのではなく、ゲームの分岐点で複数の動画の中から１つを決め、その動画を再生することである。まず、動画データＡの再生中、分岐点に達する前に、分岐処理に必要な動画データＢ，Ｃ，Ｄの頭の部分を読み込んでおく（図１１の状態）。そして、分岐点に達したとき、プレーヤの操作によって複数の動画の中から１つ（ここでは動画データＢ）が決まると、動画データＢの頭の部分を再生する。これにより再生がとぎれることなく、スムーズにその動画へと移行することができる。さらに、動画データＢの頭の部分が再生されている間、その続きのデータをリードしておく（図１２の状態）。そのため、動画データＢの頭部分の再生が終わると、即座に続きのデータを再生することができる（図１３の状態）。例えば、ドライブゲームの場合では、ドライブの途中で分かれ道が来ると、プレーヤの選択した方向に動画が進んでいくというような動作にとることになる。
【００３７】
また、ゲームの進行内容に応じて、切り替えるべき動画データをあらかじめ読み込んでおき、ある動画データＡからまったく別の動画データＸに即座に切り替えることもできる（図１４〜図１５）。この場合、ドライブゲームを例にとると、ドライブに失敗して衝突すると、一瞬後にはクラッシュシーンに切り替わるというようになる。
【００３８】
＜６＞複数動画再生…図１６の▲１▼▲２▼
一方の動画を再生しながら、その間に別の動画データへシークして読み込んでおくことにより、まったく別の動画を非同期に同時に再生することができる。この動作を高速に交互に繰り返す。具体的には、格闘ゲームで複数のキャラクタを表示したり、背景とキャラクタとで別の動画を表示したりすることができる。
【００３９】
＜７＞動画再生中の複数チャネルの切り替え…図１７〜図１８
動画データに属する複数チャネルの中から、必要なストリームデータだけを切り替えることができる。例えば、１つの映像に２つの音声チャネル１，２を用意しておけば、多国語再生に対応することが可能である。
【００４０】
＜８＞外部記憶装置７とのセーブ／ロード…図１９の▲１▼▲２▼
ゲームを中断する時、ゲームの再開に必要なデータをホスト２０から外部記憶装置７にセーブする（図１９▲１▼の状態）。次にゲームを再開する時には、外部記憶装置７からセーブしておいたデータをホスト２０にロードする（図１９▲２▼の状態）。
【００４１】
（３）実施例の効果
以上述べたような本実施例の効果は、以下の通りである。
▲１▼本実施例では、ストリームデータのデータ形式を、固定長セクタにしているため、すべてのストリームデータを同一のデータ形式で扱うことができる。したがって、記録媒体であるＣＤや外部記憶装置の種類に関係なく、同時且つ統一的にストリームデータの選択処理を行うことができる。これにより、新しい記録媒体または外部記憶装置あるいは通信装置の追加や、機能拡張を容易に行うことができる。特に、今後の技術的な進展や、将来のゲームソフトの供給方法の展開を考えると、ケーブルテレビや通信用モデムなどに有望であり、これらをＣＤブロック１０に接続することができる。
【００４２】
▲２▼本実施例では、仮想的な素子であるセレクタ１５を、メインＣＰＵ２１が発行するコマンドによって適宜組み合わせることによって論理的な選択回路を構築することができる。そのため、コマンドインターフェースさえ共通にしておけば、ＣＤブロック１０に接続されるハードウェアや、アプリケーションプログラムに対し、依存することがない。
【００４３】
▲３▼また、メインＣＰＵ２１が発行するコマンドによって論理的な選択回路を構築できるので、次のような効果が得られる。すなわち、目的のストリームを得るための回路の構築手順を、コマンド列により一義的に決めることができる。したがって、ＣＤブロック１０の機能と実行タイミングを規定した言語処理系を作ることができ、自動的にコマンド列に変換することが可能である。このような言語処理系によれば、コマンド列が自動生成されるので、特定のアプリケーションに必要な機能を記述し易い、高水準の汎用性を確保することができる、といった効果を獲得できる。以上のように本実施例によれば、柔軟で使い易いシステムを構築実現することが可能である。
【００４４】
▲４▼本実施例では、ＣＤブロック１０のサブＣＰＵ１３がストリームデータの選択処理に専念しているので、ストリームデータの選択処理とアプリケーションプログラム全体の処理とを、相互に独立したＣＰＵ１３，２１で実行することができる。したがって、ホスト２０側のメインＣＰＵ２１にかかる負荷を軽減することができ、ＣＤブロック１０とホスト２０とで、ストリームとアプリケーションを平行処理できる。その結果、処理速度の高速化を図ることができる。
【００４５】
▲５▼ＣＤブロック１０とホスト２０とが分離しているため、ＣＤブロック１０を論理的な回路と解釈することができる。したがって、ストリームデータの選択機能を視覚化することができ、直観的な理解がしやすくなる。その結果、新規のアプリケーション開発者の参入が容易であり、しかも、より高度な利用方法の発想を促すことができ、機能と性能を高いレベルで駆使することができる。
【００４６】
▲６▼本実施例では、ＣＤドライブ１１または外部記憶装置７を複数、セレクタ１５に接続して、ストリームデータの入出力処理を同時に行うことが可能である。すなわち、複数のバッファ区画１７から別々のＭＰＥＧデコーダ８，９やホスト２０に同時に出力できる。また、１つのＣＤドライブ１１または外部記憶装置７からストリームデータを入力している時に、別のＣＤドライブ１１または外部記憶装置７からストリームデータを入力することもできる。
【００４７】
▲７▼本実施例のＣＤブロック１０に接続されるデバイスとしては、ケーブルテレビや通信用モデムをはじめ、構成にて説明した以外の別のＭＰＥＧデコーダや外部記憶装置あるいはバッファＲＡＭも考えられる。さらに、ファイルシステムやセキュリティシステムなどのソフトウェアも、論理的・仮想的なデバイスとして解釈すれば、このようなデバイスも接続でき、機能を大幅に拡張できる。
【００４８】
以上のように、ＣＤブロック１０に複数種類のデバイスを接続する本実施例では、セレクタ１５を仮想的なバスとみなすことができ、各デバイスの相違を吸収して論理的なデータの流れだけを管理・制御することが可能である。
【００４９】
▲８▼本実施例では、メインＣＰＵ２１からコマンドを発行するにより、経時的な変化に対応してセレクタ１５の設定や組み替えを自由に行うことが可能である。そのため、ゲームの進行や場面に応じて、その時に必要なデータだけを自由に効率良く取捨選択することができる。したがって、処理速度を高速化することができ、プレーヤを待たせることがなく、高品質のゲームを提供することができる。
【００５０】
▲９▼セレクタ１５を絞り１６とバッファ区画１７とから構成しているため、セレクタ１５に対する自由度が大きく、柔軟な使い方が可能である。例えば、あらかじめ複数の絞り１６を設定しておき、必要なタイミングで特定のバッファ区画１７に接続することにより、ホスト２０は絞り１６の設定を変えることなく、１つのバッファ区画１７だけからデータを取り出し続けることが可能である。またｏｒ条件による接続も可能である。なお、セレクタ１５の使い方を複雑にしたくない場合には、絞り１６とバッファ区画１７とを１対１に接続することによって、簡単に使うことが可能である。
【００５１】
（４）その他の実施例
本発明は、上記実施例に限定されるものではなく、セレクタ１５がハード回路から成る実施例も包含する。このような実施例によれば、上記の作用効果に加えて、コストダウンが図れる、高速化が可能となる、素子の数が増やせるといった新たな作用効果を得ることができる。
【００５２】
【発明の効果】
以上のような本発明によれば、ストリームデータを種類に応じて分離する絞りと、データを格納するバッファ区画とから成る複数のセレクタと、このセレクタの組み合わせを制御するメインＣＰＵと、このメインＣＰＵとは独立したサブＣＰＵとを具備するという簡単な構成により、汎用性を向上させ処理速度を高めると共に、機能拡張の簡易化を図るストリームデータ選択装置を提供することができた。
【図面の簡単な説明】
【図１】本発明の一実施例全体のハードウェアブロック図
【図２】セレクタ１５の構成を示すモデル図
【図３】セクタのデータ形式を示すモデル図
【図４】本実施例の動作を示すフローチャート
【図５】セレクタ１５の動作を示すモデル図
【図６】ＯＲ条件によるセレクタ１５の接続を示すモデル図
【図７】ＣＤシステムの動作時の本実施例の動作を示すモデル図（データの蓄積と取り出し）
【図８】ＣＤシステムの動作時の本実施例の動作を示すモデル図（動画の再生）
【図９】ＣＤシステムの動作時の本実施例の動作を示すモデル図（動画再生時におけるゲーム用データの読み込み）
【図１０】ＣＤシステムの動作時の本実施例の動作を示すモデル図（前ステージ動画再生中における次ステージプログラムの読み込み）
【図１１】ＣＤシステムの動作時の本実施例の動作を示すモデル図（分岐動画再生）
【図１２】ＣＤシステムの動作時の本実施例の動作を示すモデル図（分岐動画再生）
【図１３】ＣＤシステムの動作時の本実施例の動作を示すモデル図（分岐動画再生）
【図１４】ＣＤシステムの動作時の本実施例の動作を示すモデル図（分岐動画再生）
【図１５】ＣＤシステムの動作時の本実施例の動作を示すモデル図（分岐動画再生）
【図１６】ＣＤシステムの動作時の本実施例の動作を示すモデル図（複数動画再生）
【図１７】ＣＤシステムの動作時の本実施例の動作を示すモデル図（動画再生中の複数チャネルの切り替え）
【図１８】ＣＤシステムの動作時の本実施例の動作を示すモデル図（動画再生中の複数チャネルの切り替え）
【図１９】ＣＤシステムの動作時の本実施例の動作を示すモデル図（外部記憶装置７とのセーブ／ロード）
【図２０】ＣＤシステムの従来例
【符号の説明】
７…外部記憶装置
８…ＭＰＥＧデコーダ（Ｖ）
９…ＭＰＥＧデコーダ（Ａ）
１０…ＣＤブロック
１１…ＣＤドライブ
１２…バッファＲＡＭ
１３…サブＣＰＵ
１４…ハードウェアインターフェース
１５…セレクタ
１６…絞り
１７…バッファ区画
２０…ホスト
２１…メインＣＰＵ
２２…プログラムＲＡＭ
２３…コマンド入出力用レジスタ
２４…データ転送用レジスタ
３０…固定長セクタ
３１…キー部
３２…本体部
ＳＴ４１〜４８…ステップ
【図１】
0003640074.tif 000002
【図２】
0003640074.tif 000003
【図３】
0003640074.tif 000004
【図４】
0003640074.tif 000005
【図５】
0003640074.tif 000006
【図６】
0003640074.tif 000007
【図７】
0003640074.tif 000008
【図８】
0003640074.tif 000009
【図９】
0003640074.tif 000010
【図１０】
0003640074.tif 000011
【図１１】
0003640074.tif 000012
【図１２】
0003640074.tif 000013
【図１３】
0003640074.tif 000014
【図１４】
0003640074.tif 000015
【図１５】
0003640074.tif 000016
【図１６】
0003640074.tif 000017
【図１７】
0003640074.tif 000018
【図１８】
0003640074.tif 000019
【図１９】
0003640074.tif 000020
【図２０】
0003640074.tif 000021