(57)【特許請求の範囲】
【請求項１】
ストリームデータに対して多段階の処理を実行するストリームデータ処理装置であって、
ストリームデータに含まれるデータに対して前記多段階の処理に含まれるある段階の処理を実行し、処理後のデータを送信する送信側処理部と、
前記送信側処理部から送信されたデータを受信し、受信したデータに対して前記多段階の処理に含まれる次の段階の処理を実行する受信側処理部と、
前記送信側処理部および前記受信側処理部に対して、処理対象の変更を指示する制御部と、
前記送信側処理部から送信されたデータを一時的に保存するデータ一時保存部と、
書き込みを行うと書き込んだデータを消去し、読み出しを行うと空のデータを返す空データ保存部と、
前記データ一時保存部および前記空データ保存部に対してデータの書き込みおよび読み出しを行うことにより、前記送信側処理部から送信されたデータを前記受信側処理部に受信させるコネクション管理部とを備え、
前記送信側処理部および前記受信側処理部は、前記制御部から処理対象の変更を指示されたときには、前記コネクション管理部に対して、それぞれ送信側クリア要求および受信側クリア要求を出力し、
前記コネクション管理部は、通常動作状態と、前記送信側クリア要求を受けてから前記受信側クリア要求を受けるまでの受信側クリア待ち状態と、前記受信側クリア要求を受けてから前記送信側クリア要求を受けるまでの送信側クリア待ち状態とで、前記送信側処理部から送信されたデータの書き込み先、および前記受信側処理部によって受信されるデータの読み出し元を切り替えることを特徴とする、ストリームデータ処理装置。
【請求項２】
前記コネクション管理部は、前記通常動作状態では前記書き込み先および前記読み出し元を前記データ一時保存部に設定し、前記通常動作状態で前記送信側クリア要求および前記受信クリア要求のいずれかを受けたときには前記データ一時保存部に保存されているデータを消去し、前記受信側クリア待ち状態では前記読み出し元を前記空データ保存部に設定し、前記送信側クリア待ち状態では前記書き込み先を前記空データ保存部に設定することを特徴とする、請求項１に記載のストリームデータ処理装置。
【請求項３】
前記コネクション管理部は、前記通常動作状態では前記書き込み先および前記読み出し元を前記データ一時保存部に設定し、前記通常動作状態で前記受信側クリア要求を受けたときには前記データ一時保存部に保存されているデータを消去し、前記送信側クリア待ち状態では前記書き込み先を前記空データ保存部に設定し、前記受信側クリア待ち状態では、前記送信側クリア要求を受けた時点で前記データ一時保存部に保存されているデータを旧データと見なして、前記書き込み先を前記データ一時保存部のうち前記旧データが保存されていない領域に設定するとともに、前記読み出し元を、前記旧データが存在する間は前記旧データが保存されている領域に、前記旧データが存在しなくなった後は前記空データ保存部に設定し、前記受信側クリア待ち状態で前記受信側クリア要求を受けたときには前記旧データを消去することを特徴とする、請求項１に記載のストリームデータ処理装置。
【請求項４】
前記送信側処理部および前記受信側処理部は、前記コネクション管理部に対するアクセス機能を提供するデータ送受信部を用いて、前記送信側クリア要求および前記受信側クリア要求の出力、並びにデータの送受信を行うことを特徴とする、請求項１に記載のストリームデータ処理装置。
【請求項５】
前記コネクション管理部は、前記送信側処理部から送信されたデータを前記データ一時保存部に書き込めない場合には、前記送信側処理部に対して直ちにエラーを通知する処理、および前記データ一時保存部にデータを書き込めるまで待機し、前記データ一時保存部にデータを書き込んだ結果を前記送信側処理部に通知する処理のいずれを行うかを選択できるように構成されていることを特徴とする、請求項１に記載のストリームデータ処理装置。
【請求項６】
前記コネクション管理部は、前記受信側処理部によって受信されるデータを前記データ一時保存部から読み出せない場合には、前記受信側処理部に対して直ちにエラーを通知する処理、および前記データ一時保存部からデータを読み出せるまで待機し、前記データ一時保存部からデータを読み出した結果を前記受信側処理部に通知する処理のいずれを行うかを選択できるように構成されていることを特徴とする、請求項１に記載のストリームデータ処理装置。
【請求項７】
前記ストリームデータを入力するためのデータ入力部をさらに備えた、請求項１に記載のストリームデータ処理装置。
【請求項８】
前記データ入力部は、前記ストリームデータを取り外し可能に構成された記録媒体から入力することを特徴とする、請求項７に記載のストリームデータ処理装置。
【請求項９】
前記ストリームデータに対して前記多段階の処理を実行して得られた処理結果を出力するためのデータ出力部をさらに備えた、請求項１に記載のストリームデータ処理装置。
【請求項１０】
前記データ出力部は、前記処理結果を取り外し可能に構成された記録媒体に出力することを特徴とする、請求項９に記載のストリームデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータに対して多段階の処理を実行するストリームデータ処理装置に関し、より特定的には、複数の処理部間で同期をとりながらデータを送受信するストリームデータ処理装置に関する。
【背景技術】
【０００２】
従来から、音声データや映像データなどのストリームデータに対して、多段階の処理を実行するストリームデータ処理装置が知られている。典型的なストリームデータ処理装置は、入力部と処理部と出力部とを備え、入力されたストリームデータに対して処理部で所定の処理を実行し、得られた処理結果を出力する。ストリームデータ処理装置は、多くの場合、入力されたストリームデータに対して複数の工程からなる処理を実行する。このため、ストリームデータ処理装置は、各工程の処理を実行する複数の処理部を備え、複数の処理部間でデータを送受信する。これにより、ストリームデータ処理装置は、入力されたストリームデータに対して多段階の処理をパイプライン的に実行する。また、ストリームデータ処理装置に対して、処理中止やシーク（処理中のストリームデータの異なる位置から処理を開始すること）などが指示されることがある。このような指示を受けたときにも正しく動作するように、ストリームデータ処理装置は、複数の処理部間で同期をとりながらデータを送受信する。
【０００３】
特許文献１には、ストリームデータ処理装置において、複数の処理部間で同期をとりながらデータを送受信する方法が開示されている。この方法では、各処理部は、データを送受信する相手方の処理部の状態を通信によって取得し、相手方の処理部の状態に応じて自らの動作を切り替える。例えば、ストリームデータ処理装置に対してシークが指示されたときには、データ送信側の処理部が新たな位置に対応したデータに対する処理結果を送信し始めるまで、データ受信側の処理部はデータの受信を保留しなければならない。このような機能を実現するため、各処理部は、受信したデータの内容と処理の進行具合と相手方の処理部の状態とに基づき、不適切なデータを読み込まないように自らの動作を制御する。これにより、ストリームデータ処理装置は、複数の処理部間で同期をとりながらデータを正しく送受信し、装置全体として整合性を保ちながら動作する。
【特許文献１】特許第３０９５２９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した方法を用いて複数の処理部間で同期をとることには、以下のような問題点がある。すなわち、各処理部はデータの内容や処理の進行具合や他の処理部の状態に基づき自らの動作を制御する必要があるため、各処理部の構造が複雑になる。特に、各処理部をソフトウェアを用いて実現する場合には、各処理部のソフトウェアの構造が複雑になる。また、上述した方法では、各処理部間のインタフェースが装置全体で統一されていないため、各処理部のソフトウェアを他のシステムに移植することが困難である。
【０００５】
それ故に、本発明の目的は、複数の処理部間で同期をとりながらデータを送受信するストリームデータ処理装置において、各処理部がデータの内容や処理の進行具合や他の処理部の状態を意識しなくても、データを送受信できるようにすることである。また、本発明の他の目的は、ストリームデータ処理装置に含まれる各処理部間のインタフェースを統一することにより、処理部の構成を簡略化し、処理部の再利用性を高めることである。
【課題を解決するための手段】
【０００６】
本発明のストリームデータ処理装置は、送信側処理部と、受信側処理部と、制御部と、データ一時保存部と、空データ保存部と、コネクション管理部とを備え、ストリームデータに対して多段階の処理を実行する。送信側処理部は、多段階の処理のうちある段階の処理を実行し、受信側処理部は、その次の段階の処理を実行する。コネクション管理部は、データ一時保存部をバッファとして使用し、送信側処理部から送信されたデータを受信側処理部に受信させる。シークやストリームデータの変更などにより、処理対象を変更する必要が生じたときには、各処理部は、制御部からの指示に応じて、それぞれクリア要求をコネクション管理部に出力する。コネクション管理部は、通常動作状態と、送信側クリア要求を受けてから受信側クリア要求を受けるまで受信側クリア待ち状態と、受信側クリア要求を受けてから送信側クリア要求を受けるまで送信側クリア待ち状態とで、データの書き込み先および読み出し元を切り替える。切り替え先には、書き込みを行うと書き込んだデータを消去し、読み出しを行うと空のデータを返す空データ保存部が使用される。
【０００７】
切り替え方式の第１例として、コネクション管理部は、受信側クリア待ち状態ではデータの読み出し元を空データ保存部に設定し、送信側クリア待ち状態ではデータの書き込み先を空データ保存部に設定してもよい。この方式を採用した場合、コネクション管理部は、通常動作状態でいずれかのクリア要求を受けたときに、データ一時保存部に保存されているデータを消去する。
【０００８】
あるいは、切り替え方式の第２例として、コネクション管理部は、送信側クリア待ち状態ではデータの書き込み先を空データ保存部に設定し、受信側クリア待ち状態では、送信側クリア要求を受けた時点でデータ一時保存部に保存されているデータを旧データと見なして、データの書き込み先を旧データが保存されていない領域に設定するとともに、データの読み出し元を旧データが保存されている領域（ただし、旧データが存在しなくなった後は空データ保存部）に設定してもよい。この方式を採用した場合、コネクション管理部は、通常動作状態で受信側クリア要求を受けたときに、データ一時保存部に保存されているデータを消去し、受信側クリア待ち状態で受信側クリア要求を受けたときに、旧データを消去する。
【０００９】
また、コネクション管理部に対するアクセス機能を提供するデータ送受信部が用意されており、各処理部は、データ送受信部を用いて、クリア要求の出力とデータの送受信を行ってもよい。
【００１０】
また、コネクション管理部は、データ一時保存部にデータを書き込めない場合には、直ちにエラーを通知する処理、およびデータを書き込めるまで待機し、データの書き込み結果を通知する処理のいずれを行うかを選択できるように構成されていてもよい。あるいは、コネクション管理部は、データ一時保存部からデータを読み出せない場合には、直ちにエラーを通知する処理、およびデータを読み出せるまで待機し、データの読み出し結果を通知する処理のいずれを行うかを選択できるように構成されていてもよい。
【００１１】
また、ストリームデータ処理装置は、ストリームデータを入力するためのデータ入力部や、処理結果を出力するためのデータ出力部をさらに備えていてもよい。データ入力部は、取り外し可能に構成された記録媒体からストリームデータを入力するものでもよく、データ出力部は、取り外し可能に構成された記録媒体に処理結果を出力するものでもよい。
【発明の効果】
【００１２】
本発明のストリームデータ処理装置によれば、コネクション管理部がデータ一時保存部と空データ保存部との間でデータの書き込み先および読み出し元を好適に切り替えることにより、各処理部は他の処理部の状態を意識せずに、データを正しく送受信することができるようになる。
【００１３】
また、各処理部は、制御部から処理対象の変更を指示されたときに、クリア要求を出力する処理だけを行えば、その後は以前と同じ要領でデータの送受信を要求することにより、データを正しく送受信することができる。したがって、各処理部は、データの送受信を行う相手方の処理部の状態やデータの内容を意識することなく、データを正しく送受信することができるので、各処理部の構造が簡単になる。例えば、ソフトウェアを用いて各処理部を構成する場合には、各処理部のソフトウェアの構造が簡単になり、各処理部のソフトウェアを容易に作成することができる。
【００１４】
特に、上記第１例の切り替え方式を採用した場合には、処理対象を変更するときに、受信側処理部が、それまでに処理していたデータの続きとして、処理対象の変更後の新たなデータを誤って受信して処理したり、処理対象の変更後の新たなデータとして、それまでに処理していたデータの続きを誤って受信して処理したりする不具合を防止することができる。また、上記第２例の切り替え方式を採用した場合には、処理対象を変更するときに、受信側処理部は、送信側クリア要求が出力されてから受信側クリア要求が出力されるまでの間、データ一時保存部に保存されている旧データに対する処理を正しく実行することができる。このように、複数の処理部間で同期をとりながら正しくデータの送受信を行い、装置全体として整合性を保ちながら動作するストリームデータ処理装置を提供することができる。
【００１５】
また、コネクション管理部に対するアクセス機能を提供するデータ送受信部を用いて、クリア要求の出力とデータの送受信を行うことにより、各処理部の構造がさらに簡単になり、各処理部の再利用性を高めることができる。
【００１６】
また、データ一時保存部にアクセスできない場合のコネクション管理部の動作を選択できるようにすることにより、装置の動作状態などに応じて、各処理部における処理をデータ送受信待ちで停止させたり、停止させなかったりすることができる。
【００１７】
また、取り外し可能に構成された記録媒体に対して入力を行うデータ入力部やデータ出力部を備えることにより、第１の装置で得られた処理結果を取り外し可能に構成された記録媒体に保存し、当該記録媒体を第１の装置から取り外して第２の装置に装着することができる。これにより、第２の装置は、第１の装置における処理の続きを実行し、ストリームデータの再生やシークなどを実行することができる。
【発明を実施するための最良の形態】
【００１８】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るストリームデータ処理装置の構成を示すブロック図である。図１に示すストリームデータ処理装置１０は、制御部１１と、データ入力部１２と、第１の処理部１３と、第２の処理部１４と、データ出力部１５と、コネクション管理部２１と、データ一時保存部２２と、空データ保存部２３と、データ送信部２４と、データ受信部２５とを備えている。ストリームデータ処理装置１０は、入力されたストリームデータに対して２段階の処理を実行する。ストリームデータとは、例えば、音声データや映像データのように、時系列順に入出力や処理が行われるデータをいう。
【００１９】
制御部１１は、ストリームデータ処理装置１０の動作を制御する制御手段である。制御部１１は、ユーザからコマンドが入力されたときや、装置の内部で異常が発生したときなどに、第１の処理部１３および第２の処理部１４に対して、それぞれ制御信号３１、３２を出力する。
【００２０】
データ入力部１２は、ストリームデータを入力するための入力手段である。データ入力部１２は、例えば、ハードディスクドライブやメモリなどの記憶装置である。このような記憶装置によって構成されたデータ入力部１２は、ストリームデータを所定の形式で記憶し、ストリームデータに含まれるデータを時系列順に出力する。あるいは、データ入力部１２は、ネットワークを介して接続されたサーバなど（図示せず）との間で通信を行う通信制御装置であってもよい。このような通信制御装置によって構成されたデータ入力部１２は、ストリームデータに含まれるデータを時系列順に通信で受信し、受信したデータを受信した順に出力する。
【００２１】
第１の処理部１３および第２の処理部１４は、入力されたストリームデータに対して２段階の処理を実行する。より詳細には、第１の処理部１３は、データ入力部１２から時系列順に入力されたデータ対して２段階の処理のうち１段階目の処理を実行し、処理後のデータを第２の処理部１４に送信する。第２の処理部１４は、第１の処理部１３から送信されたデータを受信し、受信したデータに対して２段階の処理のうち２段階目の処理を実行する。図１に示す構成では、第１の処理部１３は送信側処理部として機能し、第２の処理部１４は受信側処理部として機能する。
【００２２】
第１の処理部１３および第２の処理部１４における処理の内容は、任意でよい。例えば第１の処理部１３や第２の処理部１４の例としては、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｒｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）エンコーダや、ＭＰＥＧデコーダや、デジタル音声データをアナログ音声データに変換するＤ／Ａコンバータや、メモリなどからデータを取得するソースフィルタや、映像信号の出力タイミングを調整するレンダラフィルタなどが挙げられる。
【００２３】
データ出力部１５は、入力されたストリームデータに対して２段階の処理を施して得られた処理結果を出力するための出力手段である。データ出力部１５は、例えば、表示装置やスピーカなどの出力装置である。あるいは、データ出力部１５は、ハードディスクドライブやメモリなどの記憶装置であってもよい。このような記憶装置によって構成されたデータ出力部１５は、時系列順に出力された処理結果を所定の形式で記憶する。あるいは、データ出力部１５は、ネットワークを介して接続されたサーバなど（図示せず）との間で通信を行う通信制御装置であってもよい。このような通信制御装置によって構成されたデータ出力部１５は、上記処理結果を出力された順に通信で送信する。
【００２４】
コネクション管理部２１は、データ一時保存部２２を用いて、第１の処理部１３から送信されたデータを第２の処理部１４に受信させる。より詳細には、コネクション管理部２１は、第１の処理部１３からの送信要求に応じて、第１の処理部１３から送信されたデータをデータ一時保存部２２に書き込む。また、コネクション管理部２１は、第２の処理部１４からの受信要求に応じて、データ一時保存部２２から読み出したデータを第２の処理部１４に受信させる。データ一時保存部２２は、第１の処理部１３から送信されたデータを一時的に保存する。データ一時保存部２２は、例えば、ハードディスクドライブやメモリなどの記憶装置によって構成される。データ一時保存部２２では、データを効率良く管理し、記憶するために、キュー、２面バッファ、リングバッファなどのバッファ構造が採用される。
【００２５】
コネクション管理部２１は、第１の処理部１３から送信されたデータをデータ一時保存部２２に書き込めない場合（例えば、データ一時保存部２２が一杯である場合）には、データ一時保存部２２にデータを書き込めるまで待機し、データ一時保存部２２にデータを書き込んだ結果を第１の処理部１３に通知する。また、コネクション管理部２１は、第２の処理部１４によって受信されるデータをデータ一時保存部２２から読み出せない場合（例えば、データ一時保存部２２が空である場合）には、データ一時保存部２２からデータを読み出せるまで待機し、データ一時保存部２２からデータを読み出した結果を第２の処理部１４に通知する。このように動作するコネクション管理部２１を備えたストリームデータ処理装置１０では、データ一時保存部２２の状態によっては、第１の処理部１３における処理がデータ送信の完了まで停止したり、第２の処理部１４における処理がデータ受信の完了まで停止したりすることがある。この場合、ストリームデータ処理装置１０は、ブロッキングモードで動作するという。
【００２６】
ストリームデータ処理装置１０では、コネクション管理部２１にアクセスするときには、データ送信部２４またはデータ受信部２５が使用される。データ送信部２４は、任意の処理部に対して、コネクション管理部２１を介したデータ送信機能を提供する。また、データ受信部２５は、任意の処理部に対して、コネクション管理部２１を介したデータ受信機能を提供する。データ送信部２４によって提供されるデータ送信機能と、データ受信部２５によって提供されるデータ受信機能とは、統一化されたインタフェースを有するものとする。ストリームデータ処理装置１０では、第１の処理部１３は、コネクション管理部２１を介して第２の処理部１４にデータを送信するときに、データ送信部２４を使用する。また、第２の処理部１４は、コネクション管理部２１を介して第１の処理部１３からデータを受信するときに、データ受信部２５を使用する。
【００２７】
データ送信部２４およびデータ受信部２５の具体例を説明する。例えば、ストリームデータ処理装置１０が、あるオペレーティングシステム（以下、ＯＳという）上で動作するマルチスレッドシステムとして実現される場合を考える。この場合、ストリームデータ処理装置１０は、ＯＳがサポートするスレッド間通信機能を用いて設計される。また、ストリームデータ処理装置１０の設計者には、ＯＳの機能を使用するためのシステムライブラリが提供される。したがって、ストリームデータ処理装置１０の設計者は、ＯＳの動作の詳細を知らなくても、提供されたシステムライブラリを用いれば、スレッド間通信を行うスレッドを設計することができる。ここで図１との対応づけを示すと、コネクション管理部２１は、ＯＳのうちスレッド間通信機能をサポートする部分に相当し、データ送信部２４およびデータ受信部２５は、システムライブラリのうちスレッド間通信機能を使用するための部分に相当する。よって、ストリームデータ処理装置１０の設計者は、コネクション管理部２１の動作の詳細を知らなくても、データ送信部２４およびデータ受信部２５を用いれば、コネクション管理部２１を介したデータ送受信を行う第１の処理部１３および第２の処理部１４を設計することができる。
【００２８】
ストリームデータ処理装置１０の各構成要素は、通常動作状態では、以上に述べたように動作する。これにより、ストリームデータ処理装置１０は、入力されたストリームデータに対して２段階の処理をパイプライン的に実行する。例えば、データ入力部１２がＭＰＥＧ映像ストリームを記憶する記憶装置であり、第１の処理部１３がＭＰＥＧ映像デコーダであり、第２の処理部１４がレンダラフィルタであり、データ出力部１５が表示装置である場合、ストリームデータ処理装置１０は、ＭＰＥＧ映像ストリームをデコードし表示する処理を２段階で実行する。
【００２９】
ストリームデータ処理装置１０では、ユーザからコマンドが入力されたときや、装置の内部で異常が生じたときなどに、処理対象を変更する必要が生じる場合がある。処理対象の変更とは、具体的には、シーク（処理中のストリームデータの異なる位置から処理を開始すること）や、ストリームデータの変更（処理中のストリームデータとは異なるストリームデータについて処理を開始すること）などをいう。
【００３０】
処理対象を変更する必要が生じたときには、制御部１１は、処理対象の変更を指示する制御信号３１を第１の処理部１３に出力し、これとほぼ同時に、あるいはこれと相前後して、同旨の制御信号３２を第２の処理部１４に出力する。第１の処理部１３は、制御部１１からこのような制御信号３１を受けたときには、データ一時保存部２２に保存されているデータを消去するため、データ送信部２４を用いて、送信側クリア要求４１をコネクション管理部２１へ出力する。同様に、第２の処理部１４も、制御部１１からこのような制御信号３２を受けたときには、データ受信部２５を用いて、受信側クリア要求４２をコネクション管理部２１へ出力する。
【００３１】
コネクション管理部２１は、送信側クリア要求４１および受信側クリア要求４２に基づき、以下のように動作する。すなわち、コネクション管理部２１は、送信側クリア要求４１または受信側クリア要求４２を受けるまでは通常動作状態にあり、通常動作状態では、第１の処理部１３から送信されたデータをデータ一時保存部２２に書き込み、第２の処理部１４によって受信されるデータをデータ一時保存部２２から読み出す。コネクション管理部２１は、通常動作状態で送信側クリア要求４１を受けたときには受信側クリア待ち状態に遷移し、受信側クリア待ち状態では、第２の処理部１４によって受信されるデータを空データ保存部２３から読み出す。コネクション管理部２１は、通常動作状態で受信側クリア要求４２を受けたときには送信側クリア待ち状態に遷移し、送信側クリア待ち状態では、第１の処理部１３から送信されたデータを空データ保存部２３に書き込む。コネクション管理部２１は、受信側クリア待ち状態で受信側クリア要求４２を受けたとき、または送信側クリア待ち状態で送信側クリア要求４１を受けたときには、通常動作状態に遷移する。コネクション管理部２１の動作の詳細については、後述する（図４を参照）。
【００３２】
空データ保存部２３は、書き込みを行うと書き込んだデータを消去し、読み出しを行うと空のデータを返すバッファである。言い換えると、空データ保存部２３にデータを書き込んでも、書き込んだデータは空データ保存部２３には保存されない。また、空データ保存部２３からデータを読み出そうとしても、空データ保存部２３からは空のデータ（０バイトのデータ）を読み出せるだけである。このような空データ保存部２３の具体例は、いくつかのＯＳによってサポートされているヌルデバイスである。
【００３３】
以下、図２から図４を参照して、ストリームデータ処理装置１０の動作の詳細を説明する。図２は、処理停止状態で処理開始を指示された場合の動作を示すフローチャートである。図３は、通常動作状態で処理対象の変更を指示された場合の動作を示すフローチャートである。図４は、コネクション管理部２１の動作を示すフローチャートである。
【００３４】
ストリームデータ処理装置１０は、処理停止状態で処理開始を指示された場合には、図２に示す処理を実行する。図２に示す処理は、ユーザがストリームデータ処理装置１０に対して処理開始コマンドを入力したときに開始される。ユーザが処理開始コマンドを入力すると、制御部１１は、入力された処理開始コマンドを受け取る（ステップＳ１０１）。次に、制御部１１は、処理開始を指示する制御信号３１を第１の処理部１３に出力し、これとほぼ同時に、あるいはこれと相前後して、同旨の制御信号３２を第２の処理部１４に出力する（ステップＳ１０２）。
【００３５】
ステップＳ１０２が実行された後、第１の処理部１３は、ステップＳ１１１からＳ１１４を実行し、第２の処理部１４は、ステップＳ１３１からＳ１３４を実行する。また、コネクション管理部２１は、第１の処理部１３および第２の処理部１４による処理とは独立して、後述する図４に示す処理（ステップＳ１２１）を実行する。したがって、ステップＳ１０２が実行された後は、ストリームデータ処理装置１０では、第１の処理部１３による処理と第２の処理部１４による処理とコネクション管理部２１による処理とが、並列にあるいは並行に実行される。
【００３６】
第１の処理部１３は、以下に示すように、ストリームデータに対する処理を完了するまで、ステップＳ１１１からＳ１１４を繰り返し実行する。第１の処理部１３は、データ入力部１２から、処理すべきストリームデータに含まれるデータを入力として受け取る（ステップＳ１１１）。次に、第１の処理部１３は、入力されたデータに対して、第１の処理部１３に固有の処理を実行する（ステップＳ１１２）。次に、第１の処理部１３は、データ送信部２４を用いて、処理後のデータをコネクション管理部２１へ送信する（ステップＳ１１３）。次に、第１の処理部１３は、ストリームデータに対する処理を完了したか否かを判断する（ステップＳ１１４）。第１の処理部１３は、処理完了と判断した場合には処理を停止し、処理未完了と判断した場合にはステップＳ１１１へ進む。
【００３７】
第２の処理部１４は、以下に示すように、ストリームデータに対する処理を完了するまで、ステップＳ１３１からＳ１３４を繰り返し実行する。第２の処理部１４は、データ受信部２５を用いて、第１の処理部１３から送信されたデータをコネクション管理部２１から受信する（ステップＳ１３１）。次に、第２の処理部１４は、受信したデータに対して、第２の処理部１４に固有の処理を実行する（ステップＳ１３２）。次に、第２の処理部１４は、処理後のデータをデータ出力部１５へ出力する（ステップＳ１３３）。次に、第２の処理部１４は、ストリームデータに対する処理を完了したか否かを判断する（ステップＳ１３４）。第２の処理部１４は、処理完了と判断した場合には処理を停止し、処理未完了と判断した場合にはステップＳ１３１へ進む。
【００３８】
ストリームデータ処理装置１０は、通常動作状態で処理対象の変更を指示された場合には、図３に示す処理を実行する。図３に示す処理は、ユーザが、シークコマンドやストリームデータ変更コマンドなどを入力したときに開始される。ユーザがシークコマンドやストリームデータ変更コマンドなどを入力すると、制御部１１は、入力されたコマンドを受け取る（ステップＳ１４１）。次に、制御部１１は、処理対象の変更を指示する制御信号３１を第１の処理部１３に出力し、これとほぼ同時に、あるいはこれと相前後して、同旨の制御信号３２を第２の処理部１４に出力する（ステップＳ１４２）。
【００３９】
ステップＳ１４２が実行されると、第１の処理部１３は、データ送信部２４を用いて、送信側クリア要求４１をコネクション管理部２１へ出力し（ステップＳ１１０）、第２の処理部１４は、データ受信部２５を用いて、受信側クリア要求４２をコネクション管理部２１へ出力する（ステップＳ１３０）。なお、この際、送信側クリア要求４１および受信側クリア要求４２のいずれが先に出力されるかは、ストリームデータ処理装置１０の構成や動作状態などに依存して変化する。
【００４０】
第１の処理部１３は、ステップＳ１１０を実行した後は、図２に示した場合と同様に、ステップＳ１１１からＳ１１４を繰り返し実行する。第２の処理部１４も、ステップＳ１３０を実行した後は、図２に示した場合と同様に、ステップＳ１３１からＳ１３４を繰り返し実行する。したがって、これ以降は、ストリームデータ処理装置１０では、図２に示した場合と同様に、第１の処理部１３による処理と第２の処理部１４による処理とコネクション管理部２１による処理とが、並列にあるいは並行に実行される。
【００４１】
コネクション管理部２１は、図４に示すように、通常動作状態ではステップＳ２０１およびＳ２０２を実行し、受信側クリア待ち状態（すなわち、送信側クリア要求４１を受けてから受信側クリア要求４２を受けるまでの間）ではステップＳ２１１からＳ２１３を実行し、送信側クリア待ち状態（すなわち、受信側クリア要求４２を受けてから送信側クリア要求４１を受けるまでの間）ではステップＳ２２１からＳ２２３を実行する。以下の説明では、第１の処理部１３から送信されたデータを「送信データ」と呼び、第２の処理部１４によって受信されるデータを「受信データ」と呼ぶ。
【００４２】
コネクション管理部２１は、通常動作状態では、送信データの書き込み先および受信データの読み出し元を、いずれもデータ一時保存部２２に設定する。このようにしてコネクション管理部２１は、通常動作状態では、送信データをデータ一時保存部２２に書き込み、受信データをデータ一時保存部２２から読み出す（ステップＳ２０１）。次に、コネクション管理部２１は、第１の処理部１３または第２の処理部１４からクリア要求を受けたか否かを判断する（ステップＳ２０２）。コネクション管理部２１は、送信側クリア要求４１を受けた場合にはステップＳ２１１へ進み、受信側クリア要求４２を受けた場合にはステップＳ２２１へ進み、いずれのクリア要求も受けなかった場合にはステップＳ２０１へ進む。
【００４３】
図５は、ステップＳ２０１においてデータが送受信される様子を示す図である。図５では、送信データの書き込み先および受信データの読み出し元は、データ一時保存部２２に設定されている。また、データ一時保存部２２には、第１の処理部１３から送信され、第２の処理部１４によってまだ受信されていない３個のデータが保存されている。
【００４４】
図４に戻ると、コネクション管理部２１は、ステップＳ２０２で送信側クリア要求４１を受けたと判断した場合には、データ一時保存部２２に保存されているデータを消去する（ステップＳ２１１）。次に、コネクション管理部２１は、送信データの書き込み先をデータ一時保存部２２に設定したままで、受信データの読み出し元を空データ保存部２３に設定する。このようにしてコネクション管理部２１は、受信側クリア待ち状態では、送信データをデータ一時保存部２２に書き込み、受信データを空データ保存部２３から読み出す（ステップＳ２１２）。次に、コネクション管理部２１は、第２の処理部１４から受信側クリア要求４２を受けたか否かを判断する（ステップＳ２１３）。コネクション管理部２１は、受信側クリア要求４２を受けた場合にはステップＳ２０１へ進み、それ以外の場合にはステップＳ２１２へ進む。
【００４５】
図６は、ステップＳ２１２においてデータが送受信される様子を示す図である。図６では、送信データの書き込み先はデータ一時保存部２２に設定され、受信データの読み出し元は空データ保存部２３に設定されている。データ一時保存部２２に保存されていたデータは、ステップＳ２１１で一旦消去される。図６では、データ一時保存部２２には、データ消去後に第１の処理部１３から送信され、第２の処理部１４によってまだ受信されていない３個のデータが保存されている。
【００４６】
コネクション管理部２１が受信側クリア待ち状態にある間、第２の処理部１４は、第１の処理部１３が処理対象を既に変更したにもかかわらず、それまでに処理していたデータの続きを受信することをコネクション管理部２１に要求する。この続きのデータは、コネクション管理部２１が通常動作状態にある間はデータ一時保存部２２に保存されていたが、コネクション管理部２１がステップＳ２１１を実行したために、この時点では既に消去されている。また、コネクション管理部２１が受信側クリア待ち状態にある間、第１の処理部１３は処理対象の変更後の新たなデータ送信することをコネクション管理部２１に要求し、コネクション管理部２１は送信データをデータ一時保存部２２に書き込む。このため、適切な措置を講じなければ、第２の処理部１４が、それまでに処理していたデータの続きとして、第１の処理部１３から送信された、処理対象の変更後の新たなデータを誤って受信し処理するという不具合が生じる。そこで上述したように、コネクション管理部２１は、受信側クリア待ち状態では受信データの読み出し元を空データ保存部２３に設定する。これにより、コネクション管理部２１が受信側クリア待ち状態にある間、第２の処理部１４は、データを受信することができなくなる。したがって、上記不具合を防止し、ストリームデータ処理装置１０の誤動作を防止することができる。
【００４７】
再び図４に戻ると、コネクション管理部２１は、ステップＳ２０２で受信側クリア要求４２を受けたと判断した場合には、データ一時保存部２２に保存されているデータを消去する（ステップＳ２２１）。次に、コネクション管理部２１は、受信データの読み出し元をデータ一時保存部２２に設定したままで、送信データの書き込み先を空データ保存部２３に設定する。このようにしてコネクション管理部２１は、送信側クリア待ち状態では、送信データを空データ保存部２３に書き込み、受信データをデータ一時保存部２２から読み出す（ステップＳ２２２）。次に、コネクション管理部２１は、第１の処理部１３から送信側クリア要求４１を受けたか否かを判断する（ステップＳ２２３）。コネクション管理部２１は、送信側クリア要求４１を受けた場合にはステップＳ２０１へ進み、それ以外の場合にはステップＳ２２２へ進む。
【００４８】
図７は、ステップＳ２２２においてデータが送受信される様子を示す図である。図７では、送信データの書き込み先は空データ保存部２３に設定され、受信データの読み出し元はデータ一時保存部２２に設定されている。データ一時保存部２２に保存されていたデータはステップＳ２２１で消去され、データ消去後に第１の処理部１３から送信されたデータは空データ保存部２３に書き込まれる。したがって、図７では、データ一時保存部２２には、データは１個も保存されていない。
【００４９】
コネクション管理部２１が送信側クリア待ち状態にある間、送信側処理部である第１の処理部１３は、第２の処理部１４が処理対象を既に変更したにもかかわらず、それまでに処理していたデータの続きを送信することを要求する。また、このとき、第２の処理部１４は、処理対象の変更後の新たなデータを受信することをコネクション管理部２１に要求する。このため、適切な措置を講じなければ、第２の処理部１４が、処理対象の変更後の新たなデータとして、第１の処理部１３から送信された、それまでに処理していたデータの続きを誤って受信し処理するという不具合が生じる。そこで上述したように、コネクション管理部２１は、送信側クリア待ち状態では送信データの書き込み先を空データ保存部２３に設定する。これにより、コネクション管理部２１が送信側クリア待ち状態にある間、第２の処理部１４は、データを受信することができなくなる。したがって、上記不具合を防止し、ストリームデータ処理装置１０の誤動作を防止することができる。
【００５０】
図８は、以上に述べたコネクション管理部２１の動作（図４）をテーブル形式で示したものである。図８に示すテーブルでは、左上欄および右下欄に記載された処理が通常動作状態における処理（ステップＳ２０１）であり、左下欄に記載された処理が受信側クリア待ち状態における処理（ステップＳ２１２）であり、右上欄に記載された処理が送信側クリア待ち状態における処理（ステップＳ２２２）である。
【００５１】
以上に示すように、本実施形態に係るストリームデータ処理装置によれば、コネクション管理部は、通常動作状態では、データ一時保存部をバッファとして使用し、送信側処理部である第１の処理部から送信されたデータを、受信側処理部である第２の処理部に受信させる。シークやストリームデータの変更などにより、処理対象を変更する必要が生じたときには、第１の処理部および第２の処理部は、制御部からの指示に応じて、それぞれ送信側クリア要求および受信側クリア要求を出力する。コネクション管理部は、通常動作状態でいずれかのクリア要求を受けたときには、データ一時保存部に保存されているデータを消去し、受信側クリア待ち状態ではデータの読み出し元を空データ保存部に設定し、送信側クリア待ち状態ではデータの書き込み先を空データ保存部に設定する。
【００５２】
したがって、処理対象を変更するときに、第２の処理部が、それまでに処理していたデータの続きとして、処理対象の変更後の新たなデータを誤って受信して処理したり、処理対象の変更後の新たなデータとして、それまでに処理していたデータの続きを誤って受信して処理したりする不具合を防止することができる。よって、複数の処理部間で同期をとりながら正しくデータの送受信を行い、装置全体として整合性を保ちながら動作するストリームデータ処理装置を提供することができる。
【００５３】
また、各処理部は、制御部から処理対象の変更を指示されたときにクリア要求を出力しさえすれば、その後は以前と同じ要領でデータ送受信を要求することにより、データを正しく送受信することができる。したがって、各処理部は、データの送受信を行う相手方の処理部の状態やデータの内容を意識することなく、データを正しく送受信することができる。このため、各処理部の構造が簡単になる。特に、ソフトウェアを用いて各処理部を構成する場合には、各処理部のソフトウェアの構造が簡単になり、各処理部のソフトウェアを容易に作成することができる。ソフトウェアの構造が簡単になると、プログラムのコード量が減少し、ソフトウェアの品質が向上するという利点もある。
【００５４】
また、各処理部は、データ送信部およびデータ受信部によって提供される、統一化されたインタフェースを有するデータ送受信機能を用いて、データを送受信する。これにより、各処理部の構造がさらに簡単になり、ソフトウェアを用いて各処理部を構成する場合には、各処理部のソフトウェアをさらに容易に作成することができる。これに加えて、各処理部の再利用性を高めることができ、ソフトウェアを用いて各処理部を構成する場合には、各処理部のソフトウェアを他の装置に容易に移植することができる。
【００５５】
（第２の実施形態）
本発明の第１の実施形態に係るストリームデータ処理装置は、通常動作状態で送信側クリア要求または受信側クリア要求が出力されたときに、データ一時保存部に保存されているデータを消去することとした。これに対して、本発明の第２の実施形態に係るストリームデータ処理装置は、通常動作状態で送信側クリア要求が先に出力された場合には、データ一時保存部に保存されているデータを消去せずに、受信側クリア待ち状態では、データ一時保存部に古いデータと新しいデータとを区別して保存することを特徴とする。
【００５６】
本実施形態に係るストリームデータ処理装置は、第１の実施形態に係るストリームデータ処理装置と同じ構成（図１）を有し、処理停止状態で処理開始を指示された場合（図２）および通常動作状態で処理対象の変更を指示された場合（図３）には、第１の実施形態に係るストリームデータ処理装置と同じ処理を実行する。そこで、これらの点については、ここでは説明を省略する。本実施形態に係るストリームデータ処理装置と第１の実施形態に係るストリームデータ処理装置とは、受信側クリア待ち状態におけるコネクション管理部２１の動作が相違する。
【００５７】
図９は、本実施形態に係るストリームデータ処理装置のコネクション管理部２１の動作を示すフローチャートである。コネクション管理部２１は、図９に示すように、通常動作状態ではステップＳ２０１およびＳ２０２を実行し、受信側クリア待ち状態ではステップＳ２３１からＳ２３３を実行し、送信側クリア待ち状態ではステップＳ２２１からＳ２２３を実行する。このうち通常動作状態における処理および送信側クリア待ち状態における処理は、第１の実施形態に係るストリームデータ処理装置と同じであるので、ここでは説明を省略する（図４を参照）。以下の説明では、送信側クリア要求４１が出力された時点でデータ一時保存部２２に保存されているデータを「旧データ」と呼び、コネクション管理部２１が受信側クリア待ち状態である間に第１の処理部１３から送信されたデータを「新データ」と呼ぶ。また、データ一時保存部２２のうち旧データが保存されている領域を「旧データ領域」と呼び、旧データが保存されていない領域を「新データ領域」と呼ぶ。
【００５８】
コネクション管理部２１は、図９に示すように、ステップＳ２０２で送信側クリア要求４１を受けたと判断した場合には、旧データを消去することなく、ステップＳ２３１へ進む。この場合、コネクション管理部２１は、送信データの書き込み先を新データ領域に設定し、受信データの読み出し元を旧データ領域に設定する。ただし、受信データの読み出し元が旧データ領域に設定されるのは、まだ読み出されていない旧データが存在する間に限られる。旧データが存在しなくなった後は、受信データの読み出し元は、空データ保存部２３に設定される。このようにしてコネクション管理部２１は、受信側クリア待ち状態では、送信データを新データ領域に書き込み、受信データを旧データ領域から（ただし、旧データが存在しない場合は空データ保存部２３から）読み出す（ステップＳ２３１）。
【００５９】
次に、コネクション管理部２１は、第２の処理部１４から受信側クリア要求４２を受けたか否かを判断する（ステップＳ２３２）。コネクション管理部２１は、受信側クリア要求４２を受けた場合にはステップＳ２３３へ進み、それ以外の場合にはステップＳ２３１へ進む。前者の場合、コネクション管理部２１は、旧データがまだ存在している場合には、それを消去した後（ステップＳ２３３）、ステップＳ２０１へ進む。
【００６０】
図１０および図１１は、ステップＳ２３１においてデータが送受信される様子を示す図である。図１０には、旧データが存在する場合の様子が示されている。図１０では、データ一時保存部２２には、２個の旧データ（ＯＬＤ＿ＤＡＴＡ５およびＯＬＤ＿ＤＡＴＡ６）と１個の新データ（ＮＥＷ＿ＤＡＴＡ１）とが区別して保存されている。図１０に示す状態で第１の処理部１３が次の新データの送信を要求した場合には、コネクション管理部２１は、当該データをデータ一時保存部２２の新データ領域（例えば、新データＮＥＷ＿ＤＡＴＡ１の次の欄）に書き込む。また、図１０に示す状態で第２の処理部１４が次の旧データ（ＯＬＤ＿ＤＡＴＡ５）の受信を要求した場合には、コネクション管理部２１は、当該データをデータ一時保存部２２の旧データ領域から読み出して、第２の処理部１４に送信する。
【００６１】
図１１には、旧データが存在しなくなった後の様子が示されている。図１０に示す状態で第２の処理部１４が２個の旧データの受信を要求し、さらに第１の処理部１３が１個の新データの送信を要求すると、図１１に示す状態となる。図１１では、データ一時保存部２２には、２個の新データ（ＮＥＷ＿ＤＡＴＡ１およびＮＥＷ＿ＤＡＴＡ２）が保存されている。図１１に示す状態で第１の処理部１３が次の新データの送信を要求した場合には、コネクション管理部２１は、当該データをデータ一時保存部２２の新データ領域（例えば、新データＮＥＷ＿ＤＡＴＡ２の次の欄）に書き込む。また、図１１に示す状態で第２の処理部１４が次の旧データの受信を要求した場合には、コネクション管理部２１は、空データ保存部２３から空のデータを読み出す。ストリームデータ処理装置１０は、ブロッキングモードで動作するので、第２の処理部１４における処理は、データ受信の完了まで停止する。
【００６２】
第１の実施形態と同様に、コネクション管理部２１が受信側クリア待ち状態にある間、第２の処理部１４は、第１の処理部１３が処理対象を既に変更したにもかかわらず、旧データを受信することを要求する。第１の実施形態では、コネクション管理部２１がステップＳ２１１を実行するので、旧データはこの時点では既に消去されている。これに対して本実施形態では、旧データはこの時点では消去されていない。また、コネクション管理部２１は、受信側クリア待ち状態では、送信データを新データとしてデータ一時保存部２２に書き込み、データ一時保存部２２に保存されている旧データを受信データとして読み出す。これにより、コネクション管理部２１が受信側クリア待ち状態にある間、第２の処理部１４は、旧データが存在する間はそれを受信することができ、旧データが存在しなくなった後はデータを受信することができなくなる。したがって、第２の処理部１４は、それまでに処理していたデータの続きのデータとして、データ一時保存部２２に保存されている旧データを正しく受信して処理することができる。
【００６３】
図１２は、以上に説明したコネクション管理部２１による動作（図９）をテーブル形式で示したものである。図１２に示すテーブルでは、左上欄および右下欄に記載された処理が通常動作状態における処理（ステップＳ２０１）であり、左下欄に記載された処理が受信側クリア待ち状態における処理（ステップＳ２３１）であり、右上欄に記載された処理が送信側クリア待ち状態における処理（ステップＳ２２２）である。
【００６４】
以上に示すように、本実施形態に係るストリームデータ処理装置によれば、コネクション管理部は、通常動作状態および送信側クリア待ち状態では、第１の実施形態に係るストリームデータ処理装置と同じ動作を行う。これに対して、受信側クリア待ち状態では、コネクション管理部は、送信側クリア要求を受けた時点でデータ一時保存部に保存されているデータを旧データと見なし、データの書き込み先をデータ一時保存部の新データ領域に設定するとともに、データの読み出し元をデータ一時保存部の旧データ領域（ただし、旧データが存在しなくなった後は、空データ保存部）に設定する。
【００６５】
したがって、本実施形態に係るストリームデータ処理装置によれば、第１の実施形態に係るストリームデータ処理装置が奏する効果に加えて、送信側クリア要求が出力されてから受信側クリア要求が出力されるまでの間、第２の処理部はデータ一時保存部に保存されている旧データに対する処理を正しく実行することができるという効果がある。
【００６６】
本発明の各実施形態に係るストリームデータ処理装置については、以下のような各種の変形例を構成することができる。上記各実施形態に係るストリームデータ処理装置は、２個の処理部を備え、入力されたストリームデータに対して２段階の処理を実行することとした。これに代えて、ストリームデータ処理装置は、３個以上の処理部を備え、入力されたストリームデータに対して３段階以上の処理を実行することとしてもよい。この場合、ストリームデータ処理装置は、すべての処理部間でコネクション管理部を介したデータ送受信を行うこととしてもよい。
【００６７】
入力されたストリームデータに対して３段階の処理を実行するストリームデータ処理装置の一例を、図１３に示す。図１３に示すストリームデータ処理装置５０は、データ入力部５２から入力されたストリームデータに対して、第１の処理部５３、第２の処理部５４および第３の処理部５５において３段階の処理を実行し、得られた処理結果をデータ出力部５６から出力する。制御部５１は、ユーザからシークコマンドが入力されたときなどに、第１の処理部５３、第２の処理部５４および第３の処理部５５に対して、それぞれ、制御信号６１、６２および６３を出力する。第１の処理部５３は、データ送信部２４ａを用いて第２の処理部５４にデータを送信する。第２の処理部５４は、データ受信部２５ａを用いて第１の処理部５３からデータを受信する。コネクション管理部２１ａは、送信側クリア要求４１ａおよび受信側クリア要求４２ａに基づき、データ一時保存部２２ａおよび空データ保存部２３ａに対してデータの書き込みおよび読み出しを行うことにより、第１の処理部５３から送信されたデータを第２の処理部５４に受信させる。第２の処理部５４と第３の処理部５５との間のデータ送受信も、これと同様である。
【００６８】
また、３つ以上の処理部を備えたストリームデータ処理装置は、必ずしもすべての処理部間でコネクション管理部を介したデータ送受信を行う必要はなく、一部の処理部間だけでコネクション管理部を介したデータ送受信を行うこととしてもよい。例えば、図１３に示すストリームデータ処理装置５０において、第１の処理部５３と第２の処理部５４との間では、コネクション管理部２１ａを介したデータ送受信を行い、第２の処理部５４と第３の処理部５５との間では、コネクション管理部を用いずにデータを送受信してもよい。
【００６９】
また、上記各実施形態に係るストリームデータ処理装置はブロッキングモードで動作することとしたが、これに代えて、ストリームデータ処理装置は、以下に示すように、ノンブロッキングモードで動作してもよい。あるいは、ストリームデータ処理装置は、ブロッキングモードおよびノンブロッキングモードのいずれで動作するかを選択できるように構成されていてもよい。これにより、装置の動作状態などに応じて、各処理部における処理をデータ送受信待ちで停止させたり、停止させなかったりすることができる。
【００７０】
ノンブロッキングモードで動作するストリームデータ処理装置では、コネクション管理部は、送信データをデータ一時保存部に書き込めない場合、あるいは受信データをデータ一時保存部から読み出せない場合には、送信元あるいは受信先の処理部に直ちにエラーを通知する。この場合、各処理部は、コネクション管理部を介したデータ送受信を要求した後は、ポールやセレクトなどの処理によって、データ送受信が完了するまで待機する。したがって、待機中に他のイベントが発生したときでも、処理部は、当該イベントに関する処理を直ちに実行することができる。例えば、待機中にユーザが制御部に対して処理中断を指示したときには、処理部は、制御部から出力された処理中断指示を受け、直ちに処理を中断することができる。このように、処理部は、データ送受信待ちの状態でも、他のイベントに関する処理を実行することができる。したがって、ストリームデータ処理装置は、ユーザから指示が入力されたときに、指示に応えるためのスレッドを新たに起動することなく、ユーザからの指示に迅速に応答することができる。
【００７１】
また、上記各実施形態では、データ入力部１２やデータ出力部１５はハードディスクやメモリなどの記憶装置であってもよいこととしたが、より詳細には、データ入力部１２やデータ出力部１５は、例えばメモリカードのように、取り外し可能に構成された記録媒体にデータを書き込みあるいは読み出すものであってもよい。このようなデータ入力部１２やデータ出力部１５を備えたストリームデータ処理装置によれば、第１の装置で得られた処理結果を取り外し可能に構成された記録媒体に保存し、当該記録媒体を第１の装置から取り外して第２の装置に装着することができる。これにより、第２の装置は、第１の装置における処理の続きを実行し、ストリームデータの再生やシークなどを実行することができる。
【産業上の利用可能性】
【００７２】
本発明に係るストリームデータ処理装置は、各処理部が他の処理部の状態を意識せずにデータを送受信できるので、音声データや映像データの再生装置を始めとする、各種ストリームデータの処理装置として使用することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１および第２の実施形態に係るストリームデータ処理装置の構成を示すブロック図
【図２】本発明の第１および第２の実施形態に係るストリームデータ処理装置の、処理停止状態で処理開始を指示された場合の動作を示すフローチャート
【図３】本発明の第１および第２の実施形態に係るストリームデータ処理装置の、通常動作状態で処理対象の変更を指示された場合の動作を示すフローチャート
【図４】本発明の第１の実施形態に係るストリームデータ処理装置のコネクション管理部の動作を示すフローチャート
【図５】本発明の第１および第２の実施形態に係るストリームデータ処理装置において、通常動作状態でデータが送受信される様子を示す図
【図６】本発明の第１の実施形態に係るストリームデータ処理装置において、受信側クリア待ち状態でデータが送受信される様子を示す図
【図７】本発明の第１および第２の実施形態に係るストリームデータ処理装置において、送信側クリア待ち状態でデータが送受信される様子を示す図
【図８】本発明の第１の実施形態に係るストリームデータ処理装置のコネクション管理部の動作をテーブル形式で示した図
【図９】本発明の第２の実施形態に係るストリームデータ処理装置のコネクション管理部の動作を示すフローチャート
【図１０】本発明の第２の実施形態に係るストリームデータ処理装置において、受信側クリア待ち状態でかつ旧データが存在する場合にデータが送受信される様子を示す図
【図１１】本発明の第２の実施形態に係るストリームデータ処理装置において、受信側クリア待ち状態でかつ旧データが存在しなくなった後にデータが送受信される様子を示す図
【図１２】本発明の第２の実施形態に係るストリームデータ処理装置のコネクション管理部の動作をテーブル形式で示した図
【図１３】本発明の変形例に係るストリームデータ処理装置の構成を示すブロック図
【符号の説明】
【００７４】
１０、５０…ストリームデータ処理装置
１１、５１…制御部
１２、５２…データ入力部
１３、５３…第１の処理部
１４、５４…第２の処理部
５５…第３の処理部
１５、５６…データ出力部
２１…コネクション管理部
２２…データ一時保存部
２３…空データ保存部
２４…データ送信部
２５…データ受信部
３１〜３２、６１〜６３…制御信号
４１…送信側クリア要求
４２…受信側クリア要求
【図１】
0003644950.tif 000002
【図２】
0003644950.tif 000003
【図３】
0003644950.tif 000004
【図４】
0003644950.tif 000005
【図５】
0003644950.tif 000006
【図６】
0003644950.tif 000007
【図７】
0003644950.tif 000008
【図８】
0003644950.tif 000009
【図９】
0003644950.tif 000010
【図１０】
0003644950.tif 000011
【図１１】
0003644950.tif 000012
【図１２】
0003644950.tif 000013
【図１３】
0003644950.tif 000014