(57)【特許請求の範囲】
【請求項１】
動画像のストリーミング配信を行う複数の情報提供装置、および情報処理装置からなる情報提供システムにおいて、
前記情報提供装置は、
前記情報処理装置から送信された、自分自身が実行しているプログラムのバージョンの通知要求の受信を制御する第１の受信制御手段と、
前記バージョンの通知要求が受信された場合、前記情報処理装置に、前記プログラムのバージョンを示すバージョンデータを送信するように、送信を制御する第１の送信制御手段と
を含み、
前記情報処理装置は、
各前記情報提供装置への、前記バージョンの通知要求の送信を制御する第２の送信制御手段と、
前記プログラムのバージョンデータと、前記情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御手段と、
各前記情報提供装置から送信された、前記バージョンデータの受信を制御する第２の受信制御手段と、
前記機能データおよび前記バージョンデータを基に、各前記情報提供装置の動画像のストリーミング配信に関する機能を特定する特定手段と、
各前記情報提供装置について前記特定手段により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な前記情報提供装置を選択する選択手段と
を含むことを特徴とする情報提供システム。
【請求項２】
前記情報提供装置は、
前記情報処理装置に、動画像の画像データを送信するように、送信を制御する第３の送信制御手段
をさらに含み、
前記情報処理装置は、
前記情報提供装置から送信された、動画像の前記画像データの受信を制御する第３の受信制御手段
をさらに含むことを特徴とする請求項１に記載の情報提供システム。
【請求項３】
動画像のストリーミング配信を行う複数の情報提供装置から提供されたデータを処理する情報処理装置において、
各前記情報提供装置への、前記情報提供装置が実行しているプログラムのバージョンの通知要求の送信を制御する送信制御手段と、
前記プログラムのバージョンデータと、前記情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御手段と、
各前記情報提供装置から送信された、バージョンデータの受信を制御する第１の受信制御手段と、
前記機能データおよび前記バージョンデータを基に、各前記情報提供装置の動画像のストリーミング配信に関する機能を特定する特定手段と、
各前記情報提供装置について前記特定手段により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な前記情報提供装置を選択する選択手段と
を含むことを特徴とする情報処理装置。
【請求項４】
前記情報提供装置から送信された、動画像の前記画像データの受信を制御する第２の受信制御手段
をさらに含むことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
動画像のストリーミング配信を行う複数の情報提供装置から提供されたデータを処理する情報処理装置の情報処理方法において、
各前記情報提供装置への、前記情報提供装置が実行しているプログラムのバージョンの通知要求の送信を制御する送信制御処理ステップと、
前記プログラムのバージョンデータと、前記情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御処理ステップと、
各前記情報提供装置から送信された、バージョンデータの受信を制御する受信制御処理ステップと、
前記機能データおよび前記バージョンデータを基に、各前記情報提供装置の動画像のストリーミング配信に関する機能を特定する特定処理ステップと、
各前記情報提供装置について前記特定処理ステップの処理により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な前記情報提供装置を選択する選択処理ステップと
を含むことを特徴とする情報処理方法。
【請求項６】
動画像のストリーミング配信を行う複数の情報提供装置から提供されたデータを処理する情報処理装置を制御するコンピュータに、
各前記情報提供装置への、前記情報提供装置が実行しているサーバプログラムのバージョンの通知要求の送信を制御する送信制御処理ステップと、
前記サーバプログラムのバージョンデータと、前記情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御処理ステップと、
各前記情報提供装置から送信された、バージョンデータの受信を制御する受信制御処理ステップと、
前記機能データおよび前記バージョンデータを基に、各前記情報提供装置の動画像のストリーミング配信に関する機能を特定する特定処理ステップと、
各前記情報提供装置について前記特定処理ステップの処理により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な前記情報提供装置を選択する選択処理ステップと
を実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報提供システム、情報処理装置および方法、並びにプログラムに関し、特に、データを提供するか、または提供されたデータを処理する情報提供システム、情報処理装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
ネットワークを介して、画像データまたは音声データを提供するサーバ、およびサーバから提供された画像データまたは音声データを受信して、画像を表示すると共に、音声を出力するクライアントからなるクライアントサーバシステムが利用されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、クライアントは、サーバに接続し、サービスの提供を要求して初めて、サーバが提供するサービスの内容、すなわちサーバの機能を知ることができるという問題点があった。
【０００４】
特に、動画像の画像データを提供するサーバの機能の種類は、他のデジタルデータのみを提供するサーバの機能の種類に比較して、大変に多いので、クライアントがサーバの機能を知ることは、大変困難であった。
【０００５】
本発明はこのような状況に鑑みてなされたものであり、クライアントが、サーバに接続する前に、サーバの機能を特定し、所望するサービスを提供できるサーバを選択することができるようにすることを目的とする。
【０００６】
【課題を解決するための手段】
本発明の情報提供システムは、情報提供装置が、情報処理装置から送信された、自分自身が実行しているプログラムのバージョンの通知要求の受信を制御する第１の受信制御手段と、バージョンの通知要求が受信された場合、情報処理装置に、プログラムのバージョンを示すバージョンデータを送信するように、送信を制御する第１の送信制御手段とを含み、情報処理装置が、各情報提供装置への、バージョンの通知要求の送信を制御する第２の送信制御手段と、プログラムのバージョンデータと、情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御手段と、各情報提供装置から送信された、バージョンデータの受信を制御する第２の受信制御手段と、機能データおよびバージョンデータを基に、情報提供装置の動画像のストリーミング配信に関する機能を特定する特定手段と各情報提供装置について特定手段により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な情報提供装置を選択する選択手段とを含むことを特徴とする。
【０００７】
情報提供装置は、情報処理装置に、動画像の画像データを送信するように、送信を制御する第３の送信制御手段をさらに設け、情報処理装置は、情報提供装置から送信された、動画像の画像データの受信を制御する第３の受信制御手段をさらに設けることができる。
【００１２】
本発明の情報処理装置は、各情報提供装置への、情報提供装置が実行しているプログラムのバージョンの通知要求の送信を制御する送信制御手段と、プログラムのバージョンデータと、情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御手段と、各情報提供装置から送信された、バージョンデータの受信を制御する第１の受信制御手段と、機能データおよびバージョンデータを基に、情報提供装置の動画像のストリーミング配信に関する機能を特定する特定手段と、各情報提供装置について特定手段により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な情報提供装置を選択する選択手段とを含むことを特徴とする。
【００１３】
情報処理装置は、情報提供装置から送信された、動画像の画像データの受信を制御する第２の受信制御手段をさらに設けることができる。
【００１４】
本発明の情報処理方法は、各情報提供装置への、情報提供装置が実行しているプログラムのバージョンの通知要求の送信を制御する送信制御処理ステップと、プログラムのバージョンデータと、情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御処理ステップと、各情報提供装置から送信された、バージョンデータの受信を制御する受信制御処理ステップと、機能データおよびバージョンデータを基に、各情報提供装置の動画像のストリーミング配信に関する機能を特定する特定処理ステップと、各情報提供装置について特定処理ステップの処理により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な情報提供装置を選択する選択処理ステップとを含むことを特徴とする。
【００１５】
本発明のプログラムは、各情報提供装置への、情報提供装置が実行しているサーバプログラムのバージョンの通知要求の送信を制御する送信制御処理ステップと、サーバプログラムのバージョンデータと、情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録を制御する記録制御処理ステップと、各情報提供装置から送信された、バージョンデータの受信を制御する受信制御処理ステップと、機能データおよびバージョンデータを基に、各情報提供装置の動画像のストリーミング配信に関する機能を特定する特定処理ステップと、各情報提供装置について特定処理ステップの処理により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な情報提供装置を選択する選択処理ステップとをコンピュータに実行させることを特徴とする。
【００１６】
本発明の情報提供システムにおいては、情報処理装置から送信された、情報提供装置が実行しているプログラムのバージョンの通知要求の受信が制御され、バージョンの通知要求が受信された場合、情報処理装置に、プログラムのバージョンを示すバージョンデータを送信するように、送信が制御され、各情報提供装置への、バージョンの通知要求の送信が制御され、プログラムのバージョンデータと、情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録が制御され、各情報提供装置から送信された、バージョンデータの受信が制御され、機能データおよびバージョンデータを基に、各情報提供装置の動画像のストリーミング配信に関する機能が特定され、各情報提供装置について特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な情報提供装置が選択される。
【００１８】
本発明の情報処理装置および方法、並びにプログラムにおいては、各情報提供装置への、情報提供装置が実行しているプログラムのバージョンの通知要求の送信が制御され、プログラムのバージョンデータと、情報提供装置が提供する動画像のストリーミング配信に関する機能との対応を示す機能データの記録が制御され、各情報提供装置から送信された、バージョンデータの受信が制御され、機能データおよびバージョンデータを基に、各情報提供装置の動画像のストリーミング配信に関する機能が特定され、各情報提供装置について特定手段により特定された機能のうち使用者の所望する動画像のストリーミング配信に関する機能を提供可能な情報提供装置が選択される。
【００１９】
【発明の実施の形態】
図１は、本発明に係るコンテンツ提供システムの実施の第１の形態の構成を示す図である。
【００２０】
コンテンツ提供装置であるサーバ１−１は、ネットワーク３を介して、クライアントとしてのパーソナルコンピュータ２−１乃至２−Ｎに、動画像若しくは静止画像である画像のデータ、または音楽などを含む音声のデータなどのコンテンツを提供する提供装置である。コンテンツ提供装置であるサーバ１−２乃至１−Ｍのそれぞれは、ネットワーク３を介して、クライアントとしてのパーソナルコンピュータ２−１乃至２−Ｎに、画像のデータ、または音声のデータなどのコンテンツを提供する提供装置である。
【００２１】
サーバ１−１乃至１−Ｍのそれぞれは、画像のデータ、または音声のデータなどのコンテンツを記録する。サーバ１−１乃至１−Ｍのそれぞれは、画像および音声、または音声からなる、放送されている番組を受信する。
【００２２】
サーバ１−１乃至１−Ｍのそれぞれが提供するコンテンツは、サーバ１−１乃至１−Ｍのそれぞれが記録しているコンテンツであるか、またはサーバ１−１乃至１−Ｍのそれぞれが受信した、放送されている番組に対応するコンテンツである。
【００２３】
サーバ１−１乃至１−Ｍのそれぞれは、例えば、MPEG(Moving Picture Expert Group)方式の画像のデータ、または音声のデータなどのコンテンツを記録する。サーバ１−１乃至１−Ｍのそれぞれは、例えば、テレビジョン放送局から送信された地上波または放送衛星から送信された電波を受信した、図示せぬアンテナから供給される信号を復号し、受信した番組に対応する画像のデータ、または音声のデータを生成する。
【００２４】
サーバ１−１乃至１−Ｍのそれぞれは、記録しているコンテンツをパーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信するとき、記録しているコンテンツを１つのファイルとして、パーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信するか、または、記録しているコンテンツを、例えば、MPEGトランスポートストリームまたはMPEGパケッタイズドエレメンタリストリームなどの、いわゆるストリームとして、パーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信する。
【００２５】
サーバ１−１乃至１−Ｍのそれぞれは、受信した番組であるコンテンツをパーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信するとき、コンテンツを、例えば、MPEGトランスポートストリームまたはMPEGパケッタイズドエレメンタリストリームなどの、いわゆるストリームとして、パーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信する。
【００２６】
サーバ１−１は、ネットワーク３を介して、クライアントとしてのパーソナルコンピュータ２−１からコンテンツが要求されたとき、パーソナルコンピュータ２−１にコンテンツを送信する。
【００２７】
クライアントとしてのパーソナルコンピュータ２−１は、１つのファイルとして、サーバ１−１からコンテンツを受信したとき、受信したコンテンツを記録する。パーソナルコンピュータ２−１は、記録しているコンテンツを再生することができる。
【００２８】
また、パーソナルコンピュータ２−１は、ストリームとして、サーバ１−１からコンテンツを受信したとき、受信したコンテンツを再生する。
【００２９】
同様に、サーバ１−１は、ネットワーク３を介して、クライアントとしてのパーソナルコンピュータ２−２乃至２−Ｎのいずれかからコンテンツが要求されたとき、コンテンツを要求したパーソナルコンピュータ２−２乃至２−Ｎのいずれかにコンテンツを送信する。
【００３０】
クライアントとしてのパーソナルコンピュータ２−２乃至２−Ｎのそれぞれは、１つのファイルとして、サーバ１−１からコンテンツを受信したとき、受信したコンテンツを記録する。パーソナルコンピュータ２−２乃至２−Ｎのそれぞれは、記録しているコンテンツを再生することができる。
【００３１】
また、パーソナルコンピュータ２−２乃至２−Ｎのそれぞれは、ストリームとして、サーバ１−１からコンテンツを受信したとき、受信したコンテンツを再生する。
【００３２】
サーバ１−２乃至１−Ｍのそれぞれは、ネットワーク３を介して、クライアントとしてのパーソナルコンピュータ２−１からコンテンツが要求されたとき、パーソナルコンピュータ２−１にコンテンツを送信する。
【００３３】
クライアントとしてのパーソナルコンピュータ２−１は、１つのファイルとして、サーバ１−２乃至１−Ｍのいずれかからコンテンツを受信したとき、受信したコンテンツを記録する。また、パーソナルコンピュータ２−１は、ストリームとして、サーバ１−２乃至１−Ｍのいずれかからコンテンツを受信したとき、受信したコンテンツを再生する。
【００３４】
同様に、サーバ１−２乃至１−Ｍのそれぞれは、ネットワーク３を介して、クライアントとしてのパーソナルコンピュータ２−２乃至２−Ｎのいずれかからコンテンツが要求されたとき、コンテンツを要求したパーソナルコンピュータ２−２乃至２−Ｎのいずれかにコンテンツを送信する。
【００３５】
クライアントとしてのパーソナルコンピュータ２−２乃至２−Ｎのそれぞれは、１つのファイルとして、サーバ１−２乃至１−Ｍのいずれかからコンテンツを受信したとき、受信したコンテンツを記録する。また、パーソナルコンピュータ２−２乃至２−Ｎのそれぞれは、ストリームとして、サーバ１−２乃至１−Ｍのいずれかからコンテンツを受信したとき、受信したコンテンツを再生する。
【００３６】
また、サーバ１−１乃至１−Ｍのそれぞれは、チャットサーバとしての機能を有し、クライアントとしてのパーソナルコンピュータ２−１乃至２−Ｎのうち、複数のクライアントが接続されたとき、接続されている複数のクライアントにチャットのサービスを提供する。
【００３７】
すなわち、例えば、１つのクライアントである、パーソナルコンピュータ２−１は、ネットワーク３を介して、サーバ１−１に、チャットのためのテキストデータを送信する。サーバ１−１は、パーソナルコンピュータ２−１から送信された、チャットのためのテキストデータを受信し、他のクライアントである、パーソナルコンピュータ２−２乃至２−Ｎのいずれかに、受信したチャットのためのテキストデータを送信する。
【００３８】
同様に、パーソナルコンピュータ２−２乃至２−Ｎのそれぞれは、ネットワーク３を介して、サーバ１−２乃至１−Ｍのいずれかに、チャットのためのテキストデータを送信する。サーバ１−２乃至１−Ｍのそれぞれは、１つのクライアントとしての、パーソナルコンピュータ２−２乃至２−Ｎのいずれかから送信された、チャットのためのテキストデータを受信し、他のクライアントである、パーソナルコンピュータ２−１乃至２−Ｎのいずれかに、受信したチャットのためのテキストデータを送信する。
【００３９】
ネットワーク３は、ローカルエリアネットワークまたはインターネットを含む、所定の方式のネットワークである。例えば、ネットワーク３として、IEEE(Institute of Electrical and Electronics Engineers)1394または100BASE-Tなど方式のネットワークを採用することができる。本発明は、ネットワーク３の方式により限定されるものではない。
【００４０】
以下、サーバ１−１乃至１−Ｍを個々に区別する必要がないとき、単に、サーバ１と称する。以下、パーソナルコンピュータ２−１乃至２−Ｎを個々に区別する必要がないとき、単に、パーソナルコンピュータ２と称する。
【００４１】
図２は、サーバ１の構成を示すブロック図である。CPU（Central Processing Unit）２１は、図４を参照して後述する各種のアプリケーションプログラムや、基本的なOS（Operating System）を実際に実行する。ROM（Read-Only Memory）２２は、一般的には、CPU２１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。RAM（Random-Access Memory）２３は、CPU２１の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。これらはホストバス２４により相互に接続されている。
【００４２】
ホストバス２４は、ブリッジ２５を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス２６に接続されている。
【００４３】
キーボード２８は、CPU２１に各種の指令を入力するとき、使用者により操作される。マウス２９は、表示部３０の画面上のポイントの指示や選択を行うとき、使用者により操作される。表示部３０は、CRT（Cathode Ray Tube）または液晶表示装置などからなり、各種情報をテキストやイメージで表示する。HDD（Hard Disk Drive）３１およびFDD（Floppy(R) Disk Drive）３２は、それぞれハードディスクまたはフロッピー（登録商標）ディスクを駆動し、それらにCPU２１によって実行するプログラムや情報を記録または再生させる。スピーカ３３は、所定の音声を再生する。
【００４４】
ドライブ３４は、磁気ディスク４１、光ディスク４２、光磁気ディスク４３、または半導体メモリ４４が装着され、装着されている磁気ディスク４１、光ディスク４２、光磁気ディスク４３、または半導体メモリ４４に記録されているプログラムを読み出し、読み出したプログラムをHDD３１またはRAM２３に供給する。
【００４５】
これらのキーボード２８乃至ドライブ３４は、インタフェース２７に接続されており、インタフェース２７は、外部バス２６、ブリッジ２５、およびホストバス２４を介してCPU２１に接続されている。
【００４６】
画像処理ボード３５は、CPU２１の制御の基に、図示せぬアンテナから供給された信号を基に、放送されている番組に対応する所定の画像のデータまたは音声のデータを生成し、外部バス２６およびインタフェース２７を介して、生成した画像のデータまたは音声のデータをHDD３１に出力する。
【００４７】
画像処理ボード３５は、CPU２１の制御の基に、図示せぬアンテナから供給された信号を基に、番組に対応する所定の画像または音声のストリームのデータを生成し、ネットワーク３を介して、生成したストリームのデータをパーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信する。
【００４８】
また、画像処理ボード３５は、CPU２１の制御の基に、外部バス２６およびインタフェース２７を介して、HDD３１に記録されている、１つのファイルである画像のデータまたは音声のデータを入力し、入力されたファイルをネットワーク３を介して、パーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信する。画像処理ボード３５は、CPU２１の制御の基に、外部バス２６およびインタフェース２７を介して、HDD３１に記録されている、画像のデータまたは音声のデータを読み出して、読み出した画像または音声のデータに対応するストリームのデータを生成し、ネットワーク３を介して、生成したストリームのデータをパーソナルコンピュータ２−１乃至２−Ｎのいずれかに送信する。
【００４９】
画像処理ボード３５は、外部バス２６、ブリッジ２５、およびホストバス２４を介してCPU２１に接続されている。
【００５０】
通信ボード３６は、モデムボードなどであり、電話回線などの公衆回線を介して、他のパーソナルコンピュータまたはサーバと通信する。
【００５１】
図３は、画像処理ボード３５の構成を示すブロック図である。チューナ５１は、CPU２１の制御の基に、外部から供給されるテレビジョン放送の放送信号を取得し、複数のチャンネルのテレビジョン放送の番組のうちの、指定されたチャンネルの番組を選択する。チューナ５１は、選択したチャンネルの番組の画像および音声に対応するアナログ信号をA/D(Analog-to-Digital)変換器５２に供給する。
【００５２】
A/D変換器５２は、供給された、番組の画像および音声に対応するアナログ信号を、デジタル信号にアナログ／デジタル変換する。A/D変換器５２は、番組の画像および音声に対応するデジタル信号をセレクタ５３に供給する。
【００５３】
セレクタ５３は、テレビジョン放送の番組がHDD３１に記録されるか、またはテレビジョン放送の番組に対応するデジタル信号がストリームとしてパーソナルコンピュータ２に送信されるとき、A/D変換器５２から供給されたデジタル信号を、エンコーダ５４に供給する。セレクタ５３は、テレビジョン放送の番組を表示部３０およびスピーカ３３に再生させるとき、A/D変換器５２から供給されたデジタル信号を、ブリッジ５５に供給する。
【００５４】
セレクタ５３は、テレビジョン放送の番組がHDD３１に記録されるか、またはテレビジョン放送の番組に対応するデジタル信号がストリームとしてパーソナルコンピュータ２に送信されると共に、テレビジョン放送の番組が表示部３０およびスピーカ３３に再生されるとき、A/D変換器５２から供給されたデジタル信号を、エンコーダ５４およびブリッジ５５に同時に供給する。
【００５５】
エンコーダ５４は、セレクタ５３から供給された、番組の画像および音声に対応するデジタル信号をMPEG等の所定の圧縮符号化方式により符号化し、得られた画像データまたは音声データである符号化データをブリッジ５５に供給する。
【００５６】
デコーダ５６は、ブリッジ５５を介して、HDD３１に記録されている、MPEG等の所定の圧縮符号化方式により符号化されている画像データおよび音声データが供給されたとき、符号化されている画像データおよび音声データを復号する。デコーダ５６は、復号して得られたデジタル信号をブリッジ５５に供給する。
【００５７】
ブリッジ５５は、テレビジョン放送の番組に対応する画像データまたは音声データである符号化データをHDD３１に記録するとき、エンコーダ５４から供給された符号化データを外部バス２６を介して、HDD３１に供給する。ブリッジ５５は、テレビジョン放送の番組を表示部３０およびスピーカ３３に再生させるとき、セレクタ５３を介して、A/D変換器５２から供給された、画像のデジタル信号を、外部バス２６およびインタフェース２７を介して、表示部３０に供給すると共に、音声のデジタル信号を、外部バス２６およびインタフェース２７を介して、スピーカ３３に供給する。
【００５８】
ブリッジ５５は、HDD３１に記録されている画像データまたは音声データである符号化データを再生させるとき、HDD３１に記録されている符号化データをデコーダ５６に供給する。ブリッジ５５は、デコーダ５６から供給された、画像のデジタル信号を、外部バス２６およびインタフェース２７を介して、表示部３０に供給すると共に、音声のデジタル信号を、外部バス２６およびインタフェース２７を介して、スピーカ３３に供給する。
【００５９】
テレビジョン放送の番組を再生するとき、表示部３０は、インタフェース２７を介して供給されたデジタル信号または所定の方式に変換されたアナログ信号を基に、テレビジョン放送の番組の画像を表示する。
【００６０】
テレビジョン放送の番組を再生するとき、スピーカ３３は、インタフェース２７を介して供給されたデジタル信号または所定の方式に変換されたアナログ信号を基に、テレビジョン放送の番組の音声を再生する。
【００６１】
ネットワークインタフェース５７は、ネットワーク３を介して、パーソナルコンピュータ２から送信されたコンテンツの要求を受信し、受信したコンテンツの要求を、ブリッジ５５および外部バス２６を介して、CPU２１またはRAM２３に供給する。
【００６２】
ブリッジ５５は、要求に対応してパーソナルコンピュータ２にコンテンツを送信するとき、コンテンツとしての、エンコーダ５４から供給された画像データまたは音声データである符号化データ、またはHDD３１に記録されている符号化データをネットワークインタフェース５７に供給する。CPU２１の制御の基に、HDD３１に記録されている符号化データは、１つのファイルとしてブリッジ５５からネットワークインタフェース５７に供給されるか、または、いわゆるストリームとして、ブリッジ５５からネットワークインタフェース５７に供給される。
【００６３】
ネットワークインタフェース５７は、ブリッジ５５から供給された、画像データまたは音声データである符号化データを、例えば、所定のパケットに格納し、ネットワーク３を介して、パーソナルコンピュータ２に送信する。
【００６４】
図４は、サーバ１が実行するアプリケーションプログラムを説明する図である。録画再生プログラム８１は、画像処理ボード３５に、チューナ５１で受信した所定のチャンネルの番組に対応する、画像または音声のアナログ信号をMPEG方式の画像データまたは音声データである符号化データに変換させ、符号化データをコンテンツとして、HDD３１に記録させる。
【００６５】
また、録画再生プログラム８１は、HDD３１に記録されているコンテンツを、画像処理ボード３５に、復号させて、圧縮されていない所定の画像または音声のデジタル信号を生成し、画像を表示部３０に表示させ、音声をスピーカ３３に再生させる。
【００６６】
管理検索プログラム８２は、HDD３１に記録されているコンテンツの内容または録画された日付などの所定の情報を表示部３０に表示させる。また、管理検索プログラム８２は、所定のコンテンツの再生を録画再生プログラム８１に指示する。管理検索プログラム８２は、編集の対象となるコンテンツを選択し、その選択されたコンテンツの情報を編集プログラム８３に供給する。管理検索プログラム８２は、予約録画設定プログラム８４に予約録画の指示を行う。
【００６７】
編集プログラム８３は、HDD３１に記録されているコンテンツを基に、選択されたコンテンツの所定の画像および音声を編集（所定のコンテンツに含まれている画像および音声をつなぎ合わせる）し、編集された画像または音声を再生する所定の形式のコンテンツを生成する。
【００６８】
このコンテンツは、例えば、画像または音声のデジタルデータを有せず、選択されたコンテンツを特定する情報および利用する画像および音声を特定する情報から構成され、録画再生プログラム８１で再生することができる。
【００６９】
予約録画設定プログラム８４は、設定に基づき、予約録画を実行させるコンテンツを生成する。このコンテンツは、設定（録画時間、および画質を決定する録画モード）に対応し、HDD３１の記憶領域を予め確保する。
【００７０】
予約監視プログラム８５は、サーバ１が動作しているとき（OSが動作しているとき）、常に動作し（いわゆる、常駐している）、予約録画設定プログラム８４が生成した予約録画を実行させるコンテンツ、および、図示せぬRTC(Real Time Clock)から供給される時刻を基に、予約録画を実行する。また、予約監視プログラム８５は、予約録画を実行させるコンテンツの設定を変更する。
【００７１】
画像サーバプログラム８６は、画像処理ボード３５に、チューナ５１が受信している、所定のチャンネルの番組に対応する、MPEG方式の画像データまたは音声データである符号化データを生成させる。画像サーバプログラム８６は、画像処理ボード３５に、ネットワーク３を介して、生成した画像データまたは音声データである符号化データをパーソナルコンピュータ２に送信させる。
【００７２】
また、画像サーバプログラム８６は、画像処理ボード３５に、ネットワーク３を介して、HDD３１に記録されている、MPEG方式の画像データまたは音声データである符号化データを、パーソナルコンピュータ２に送信させる。
【００７３】
チャットサーバプログラム８７は、パーソナルコンピュータ２−１乃至２−Ｎのいずれかである、１つのクライアントから送信されたテキストデータを、画像処理ボード３５に受信させる。チャットサーバプログラム８７は、画像処理ボード３５に、パーソナルコンピュータ２−１乃至２−Ｎのいずれかである、他のクライアントに送信させる。
【００７４】
図５は、パーソナルコンピュータ２の構成を示すブロック図である。CPU１０１は、図６を参照して後述する各種アプリケーションプログラムや、基本的なOSを実際に実行する。ROM１０２は、一般的には、CPU１０１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。RAM１０３は、CPU１０１の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。これらはホストバス１０４により相互に接続されている。
【００７５】
ホストバス１０４は、ブリッジ１０５を介して、PCIバスなどの外部バス１０６に接続されている。
【００７６】
キーボード１０８は、CPU１０１に各種の指令を入力するとき、使用者により操作される。マウス１０９は、表示部１１０の画面上のポイントの指示や選択を行うとき、使用者により操作される。表示部１１０は、CRTまたは液晶表示装置などからなり、各種情報をテキストやイメージで表示する。HDD１１１およびFDD１１２は、それぞれハードディスクまたはフロッピー（登録商標）ディスクを駆動し、それらにCPU１０１によって実行するプログラムや情報を記録または再生させる。スピーカ１１３は、所定の音声を再生する。
【００７７】
ドライブ１１４は、磁気ディスク１２１、光ディスク１２２、光磁気ディスク１２３、または半導体メモリ１２４が装着され、装着されている磁気ディスク１２１、光ディスク１２２、光磁気ディスク１２３、または半導体メモリ１２４に記録されているプログラムを読み出し、読み出したプログラムをHDD１１１またはRAM１０３に供給する。
【００７８】
これらのキーボード１０８乃至ドライブ１１４は、インタフェース１０７に接続されており、インタフェース１０７は、外部バス１０６、ブリッジ１０５、およびホストバス１０４を介してCPU１０１に接続されている。
【００７９】
ネットワークインタフェースカード１１５は、CPU１０１の制御の基に、ネットワーク３を介して、サーバ１から送信されたストリームのデータを受信し、受信したストリームのデータを、外部バス１０６、ブリッジ１０５、およびホストバス１０４を介して、RAM１０３に供給する。
【００８０】
また、ネットワークインタフェースカード１１５は、CPU１０１の制御の基に、ネットワーク３を介して、サーバ１から送信された、１つのファイルとしてのデータを受信し、受信したデータを、外部バス１０６、およびインタフェース１０７を介して、HDD１１１に供給する。
【００８１】
ネットワークインタフェースカード１１５は、外部バス１０６、ブリッジ１０５、およびホストバス１０４を介してCPU１０１に接続されている。
【００８２】
通信ボード１１６は、モデムボードなどであり、電話回線などの公衆回線を介して、他のパーソナルコンピュータまたはサーバと通信する。
【００８３】
図６は、クライアントとしてのパーソナルコンピュータ２が実行するプログラムを説明する図である。クライアントプログラム１３１は、ネットワークインタフェースカード１１５に、ネットワーク３を介して、サーバ１宛てにコンテンツの要求を送信させる。クライアントプログラム１３１は、ネットワーク３を介して、サーバ１から送信された、画像データまたは音声データであるコンテンツを、ネットワークインタフェースカード１１５に受信させる。クライアントプログラム１３１がネットワークインタフェースカード１１５に受信させるコンテンツは、１つのファイルであるか、またはストリームである。
【００８４】
クライアントプログラム１３１は、コンテンツを受信したとき、受信したコンテンツをHDD１１１に記録させるか、または表示部１１０に画像を表示させると共に、スピーカ１１３に音声を出力させる。
【００８５】
チャットプログラム１３２は、キーボード１０８から入力されたテキストデータを表示部１１０に表示させると共に、ネットワークインタフェースカード１１５に、ネットワーク３を介して、サーバ１宛てにテキストデータを送信させる。
【００８６】
チャットプログラム１３２は、ネットワーク３を介して、サーバ１から送信されたテキストデータを、ネットワークインタフェースカード１１５に、受信させ、受信したテキストデータに対応する文字を表示部１１０に表示させる。
【００８７】
ここで、画像サーバプログラム８６およびクライアントプログラム１３１のコマンドおよびメッセージ、並びにチャットサーバプログラム８７およびチャットプログラム１３２にコマンドおよびメッセージについて説明する。
【００８８】
画像サーバプログラム８６とクライアントプログラム１３１との接続は、例えば、ポート3862で確立される。画像サーバプログラム８６とクライアントプログラム１３１とのデータの通信は、TCP/IPテキストベースで行われる。コマンドと応答とは、改行コード('\n')で区切られる。画像サーバプログラム８６は、次のコマンドを受付可能な状態になると、ピリオド('.')をクライアントプログラム１３１に送信する。
【００８９】
画像サーバプログラム８６とクライアントプログラム１３１との通信において、受け付けられない文字列（コマンド）を送信または受信すると、エラーが起こることがあり得る。エラーは、'Error(エラー番号)'で表される。
【００９０】
画像サーバプログラム８６とクライアントプログラム１３１の通信は、基本的に、以下の手順で実行される。
【００９１】
最初に、クライアントプログラム１３１は、コマンド１を画像サーバプログラム８６に送信する。次に、コマンド１を受信した画像サーバプログラム８６は、クライアントプログラム１３１に応答する。応答の処理を終了したとき、画像サーバプログラム８６は、クライアントプログラム１３１に、次のコマンドを受付可能な状態を示す”.”を送信する。クライアントプログラム１３１は、次のコマンドであるコマンド２を画像サーバプログラム８６に送信し、上記の手順を繰り返す。
【００９２】
また、画像サーバプログラム８６とクライアントプログラム１３１間のコマンドの通信は、画像サーバプログラム８６のログ画面で見ることができる。
【００９３】
例えば、より多くのログを記録したい場合、次のレジストリ(DWORD値)を新規作成すればよい。
HKEY_CURRENT_USER\Software\Sony Corporation\Yebisu\GigaPocketサーバ\Settings\MessageLevel
このDWORD値をより大きくすれば、より多くのログを記録することが可能になる。ただし、DWORD値は、0x10程度が限界である。”\GigaPocketサーバ”は、画像サーバプログラム８６が格納されているフォルダを示す。
【００９４】
また、クライアントプログラム１３１は、ネットワーク３上に存在する画像サーバプログラム８６を実行するサーバ１を、ブラウズすることができる。次の処理を実行することにより、クライアントプログラム１３１は、サーバ１のコンピュータ名を取得できる。クライアントプログラム１３１に、UDP(User Datagram Protocol)で、3862ポートに、文字列”Giga Pocket message: What is your name?”をブロードキャストさせる(宛先のIP(Internet Protocol)アドレスを255.255.255.255に設定して、送信する)。すると、画像サーバプログラム８６は、UDPで、3862ポートに応答”Giag Pocket message: My name is SERVER”を送信する。ここで、”Giga Pocket message:”は、文字列が、画像サーバプログラム８６とクライアントプログラム１３１のコマンドまたは応答であることを示す。”SERVER”は、サーバ１のコンピュータ名を示す。
【００９５】
例えば、ネットワーク３上に、画像サーバプログラム８６を実行している、”SABA"，"KAME"、および"UNAGI"とそれぞれ名前が付された３台のサーバ１があるとき、クライアントプログラム１３１が送信したブロードキャストされたメッセージ”Giga Pocket message: What is your name?”に対して、それぞれのサーバ１は、順不同に次の応答を送信する。
Giga Pocket message: My name is KAME
Giga Pocket message: My name is SABA
Giga Pocket message: My name is UNAGI
【００９６】
この機能を使用すれば、クライアントプログラム１３１は、ネットワーク３上に存在する画像サーバプログラム８６を実行するサーバ１を知ることができ、使用者は、いちいちサーバ１の名前をダイアログボックスなどに入力することなく、サーバ１を選択することができるようになる。
【００９７】
以下、画像サーバプログラム８６に用意されているコマンドを順に説明する。
【００９８】
イニシャライズコマンドは、”Initialize [P=<pass word>]”と記述される。
<pass word>は、文字列パスワードを示す。パスワードの文字数に制約はないが、パスワードの先頭の8バイトのみが認証に使用される。
【００９９】
イニシャライズコマンドは、画像サーバプログラム８６に通信を初期化させる。画像サーバプログラム８６に接続後、画像サーバプログラム８６に、必ず１度イニシャライズコマンドを実行させる必要がある。画像サーバプログラム８６にパスワードの設定をしていないとき、<pass word>を指定する必要はない。なお、パスワードは、平文ではなく、暗号化される。
【０１００】
画像サーバプログラム８６は、パスワードが正しいとき、イニシャライズコマンドの応答として、”Initialize OK”をクライアントプログラム１３１に送信し、パスワードが正しくないため初期化に失敗したとき、イニシャライズコマンドの応答として、”.”をクライアントプログラム１３１に送信する。
【０１０１】
ヘルプコマンドは、”Help”と記述される。ヘルプコマンドは、画像サーバプログラム８６のコマンド一覧を表示させるコマンドである。画像サーバプログラム８６は、ヘルプコマンドの応答として、コマンドの一覧をクライアントプログラム１３１に送信する。
【０１０２】
クリエイトテープコマンドは、”CreateTape <quality> [N=<video capsule name>]”と記述される。<quality>は、コンテンツの画質を指定する、0,1、または2のいずれかの値である。0は、高画質を示し、1は、標準を示し、2は、長時間を示す。<video capsule name>は、コンテンツの名前を示す。
【０１０３】
クリエイトテープコマンドは、画像サーバプログラム８６に、名前が<video capsule name>のコンテンツを所定のキャビネットに作成させる。キャビネットは、１または２以上のコンテンツを格納する単位を示す。
【０１０４】
<video capsule name>を指定しないとき、画像サーバプログラム８６は、自動的にコンテンツの名前を生成する。また、後述するセットテープネームコマンドまたはセットメモコマンドを用いて、作成したコンテンツの名前、およびメモを設定することができる。
【０１０５】
画像サーバプログラム８６は、クリエイトテープコマンドの応答として、”NewTapeID:<tapeID>”をクライアントプログラム１３１に送信する。<tapeID>は、新しく作成されたコンテンツのIDを示す。
【０１０６】
クリエイトリザーブコマンドは、”CreateReserve <tapeID> S=yyyy/mm/dd,hh:mm:ss E= yyyy/mm/dd,hh:mm:ss CH=<No.>,<caption>”と記述される。<tapeID>は、コンテンツの番号であり、クリエイトテープコマンドで取得できる。yyyy/mm/dd,hh:mm:ssは、予約する、年/月/日、時:分:秒を示す。Sは、開始日時であり、Eは、終了日時である。
【０１０７】
<No.>は、チャンネル番号を示し、<caption>は、チャンネル(文字列)を示す。例えば、<caption>は、"NHK教育"などである。
【０１０８】
クリエイトリザーブコマンドは、画像サーバプログラム８６に、新規に予約を実行させる。クリエイトリザーブコマンドを実行する前に、クリエイトテープコマンドを実行し、新しく作成するコンテンツの番号<tapeID>を取得する必要がある。チャンネル番号<No.>および名前<caption>は、チャンネル取得コマンドで取得される。
【０１０９】
画像サーバプログラム８６は、クリエイトリザーブコマンドの応答として、録画予約に成功したとき、”reserveID:<reserveID>”をクライアントプログラム１３１に送信し、予約録画に失敗したとき、”parameter error”をクライアントプログラム１３１に送信する。”<reserveID>”は、録画IDを示す。予約録画は、例えば、サーバ１に空き記憶領域がないとき、失敗する場合がある。
【０１１０】
デリートテープコマンドは、”DeleteTape <tapeID> [<0=movie only>]”と記述される。<tapeID>は、コンテンツの番号を示す。<0=movie only >において、0を指定すると、MPEGデータのみが削除される。
【０１１１】
デリートテープコマンドは、画像サーバプログラム８６に、サーバ１にあるコンテンツを削除させる。”movie only”が指定されているとき、画像サーバプログラム８６は、動画データのみ削除し、動画データに関係するデータ（属性データなどからなる）である、データベースおよびインデックス情報を削除しない。画像サーバプログラム８６は、デリートテープコマンドの応答として、”Deleted:<tapeID>”をクライアントプログラム１３１に送信する。<tapeID>は、削除されたコンテンツの番号を示す。
【０１１２】
ファーストテープコマンドは、”FirstTape”と記述される。
【０１１３】
ファーストテープコマンドは、後述するネクストテープコマンドと組み合わせて使用され、サーバ１に記録されているコンテンツのIDを取得するためのコマンドである。ネクストテープコマンドを実行する前に、ファーストテープコマンドが実行されなければならない。なお、通常は、ゲットテープリストコマンドで、サーバ１に記録されている全てのコンテンツのIDが一括して取得される。
【０１１４】
画像サーバプログラム８６は、ファーストテープコマンドの応答として、”ID:<tapeID>”をクライアントプログラム１３１に送信する。<tapeID>は、最初に発見されたコンテンツのIDを示す。
【０１１５】
ネクストテープコマンドは、”NextTape”と記述される。
【０１１６】
ネクストテープコマンドは、ファーストテープコマンドと組み合わせて使用され、サーバ１に記録されているコンテンツのIDを取得するためのコマンドである。ネクストテープコマンドを実行する前に、ファーストテープコマンドが実行されなければならない。
【０１１７】
画像サーバプログラム８６は、ネクストテープコマンドの応答として、”ID:<tapeID>”をクライアントプログラム１３１に送信する。<tapeID>は、発見されたコンテンツのIDを示す。
【０１１８】
ファーストライブコマンドは、”FirstLib”と記述される。ファーストライブコマンドは、後述するネクストライブコマンドと組み合わせて使用され、サーバ１に存在するキャビネットのIDを取得するためのコマンドである。ネクストライブコマンドを実行する前に、ファーストライブコマンドが実行されなければならない。なお、通常は、ゲットライブリストコマンドで、サーバ１に記録されている全てのキャビネットのIDが一括して取得される。
【０１１９】
画像サーバプログラム８６は、ファーストライブコマンドの応答として、”libID:<libID>”をクライアントプログラム１３１に送信する。<libID>は、最初に発見されたキャビネットのIDを示す。
【０１２０】
ネクストライブコマンドは、”NextLib”と記述される。
【０１２１】
ネクストライブコマンドは、ファーストライブコマンドと組み合わせて使用され、サーバ１に存在するキャビネットのIDを取得するためのコマンドである。ネクストライブコマンドを実行する前に、ファーストライブコマンドが実行されなければならない。
【０１２２】
画像サーバプログラム８６は、ネクストライブコマンドの応答として、”libID:<libID>”をクライアントプログラム１３１に送信する。<libID>は、最初に発見されたキャビネットのIDを示す。
【０１２３】
ゲットライブコマンドは、”GetLibList”と記述される。
【０１２４】
ゲットライブコマンドは、キャビネットのIDとキャビネットの名前の一覧を取得するためのコマンドである。
【０１２５】
画像サーバプログラム８６は、ゲットライブコマンドの応答として、存在するキャビネットの数に対応し、リスト”lib-list:<libID> N=<lib name>”をクライアントプログラム１３１に送信する。<libID>は、キャビネットのIDを示し、<lib name>は、キャビネットの名前を示す。
【０１２６】
ゲットテープリストコマンドは、”GetTapeList <arg>”と記述される。<arg>は、取得するコンテンツの種類を制限する引数であり、argが0のとき、全てのコンテンツのIDおよび名前が取得され、argが0でないとき、通常のコンテンツのみのIDおよび名前が取得される。
【０１２７】
ゲットテープリストコマンドは、キャビネットのIDおよびキャビネットの名称の一覧を取得するためのコマンドである。
【０１２８】
画像サーバプログラム８６は、ゲットテープリストコマンドの応答として、存在するコンテンツの数に対応し、文字列”tape-list:<tapeID> <libID> <type > N=<video capsule name>”をクライアントプログラム１３１に送信する。<tapeID>は、コンテンツ番号を示す。<libID>は、キャビネットのIDを示す。<tape>は、N,L,I,P,E,R、または*のいずれかであり、Nは、通常のコンテンツを示し、Lは、リストを示し、Iは、シーン情報のみであることを示し、Eは、エラーであることを示し、Pは、視聴制限があることを示し、Rは、予約であることを示し、*は、録画中であることを示す。<video capsule name>は、コンテンツの名前を示す。
【０１２９】
ゲットリザーブリストコマンドは、”GetReserveList”と記述される。
【０１３０】
ゲットリザーブリストコマンドは、予約を表示させるためのコマンドである。
【０１３１】
画像サーバプログラム８６は、ゲットリザーブリストコマンドの応答として、存在する予約の数に対応し、文字列”reserve-list:<reserveID> <tapeID> S=yyyy/mm/dd,hh:mm E=yyyy/mm/dd,hh:mm N=<video capsule name>”をクライアントプログラム１３１に送信する。<reserveID>は、予約のIDを示し、<tapeID>は、コンテンツのIDを示し、yyyy/mm/dd,hh:mm:ssは、予約する年/月/日、時:分:秒を示し、Sは、開始日時を示し、Eは、終了日時を示す。<video capsule name>は、コンテンツの名前を示す。
【０１３２】
ゲットテープインフォコマンドは、”GetTapeInfo <tapeID>”と記述される。<tapeID>は、情報を取得したいコンテンツのIDを示す。
【０１３３】
ゲットテープインフォコマンドは、コンテンツの情報を取得するためのコマンドである。
【０１３４】
ゲットライブインフォコマンドは、”GetLibInfo <libID>”と記述される。<libID>は、情報を取得したいキャビネットのIDを示す。
【０１３５】
ゲットライブインフォコマンドは、キャビネットの情報を取得するためのコマンドである。
【０１３６】
ゲットチャンネルコマンドは、”GetChannel”と記述される。
【０１３７】
ゲットチャンネルコマンドは、チャンネル情報を表示させるコマンドである。
【０１３８】
画像サーバプログラム８６は、ゲットチャンネルコマンドの応答として、存在するチャンネルの数に対応した文字列”CH-DB:<No.>,<caption>,<caption1>[,<caption2>[,….]]]”をクライアントプログラム１３１に送信する。<No.>は、チャンネルの番号を示し、<caption>は、最も一般的なチャンネルの名称を示し、<caption1>は、チャンネルの第１の名称を示し、<caption2>は、チャンネルの第２の名称を示す。例えば、”CH-DB:<No.>,<caption>,<caption1>[,<caption2>[,….]]]”に対応する文字列として、”CH-DB:3,NHK教育,NHK教育,NHK2”がクライアントプログラム１３１に送信される。
【０１３９】
ゲットメモコマンドは、”GetMemo <tapeID>”と記述される。<tapeID>は、メモとしての情報を取得するコンテンツのIDを示す。
【０１４０】
ゲットメモコマンドは、コンテンツのメモを取得するためのコマンドである。
【０１４１】
セットテープネームコマンドは、”SetTapeName <tapeID> N=<new tape name>”と記述される。<tapeID>は、コンテンツのIDを示し、<new tape name >は、コンテンツの名前を示す。
【０１４２】
セットテープネームコマンドは、コンテンツの名前を設定するコマンドである。
【０１４３】
画像サーバプログラム８６は、セットテープネームコマンドの応答として、”new tape name:<new tape name >”をクライアントプログラム１３１に送信する。<new tape name >は、コンテンツの名前を示す。
【０１４４】
セットメモコマンドは、”SetMemo <tapeID> M=<memo string>”と記述される。<tapeID>は、コンテンツのIDを示す。<memo string>は、文字列からなるメモを示す。
【０１４５】
セットメモコマンドは、コンテンツにメモを設定するためのコマンドである。
【０１４６】
画像サーバプログラム８６は、セットメモコマンドの応答として、”OK”をクライアントプログラム１３１に送信する。
【０１４７】
ゲットムービーサイズコマンドは、”GetMovieSize <tapeID>”と記述される。<tapeID>は、コンテンツのIDを示す。
【０１４８】
ゲットムービーサイズコマンドは、コンテンツのファイルの大きさを取得するコマンドである。
【０１４９】
画像サーバプログラム８６は、ゲットムービーサイズコマンドの応答として、”MovieSize:<size>”をクライアントプログラム１３１に送信する。<size>は、MPEGファイルの大きさを示す。
【０１５０】
ゲットインデックスサイズコマンドは、”GetIndexSize <tapeID>”と記述される。<tapeID>は、コンテンツのIDを示す。
【０１５１】
ゲットインデックスサイズコマンドは、コンテンツに関係するデータを格納しているインデックスファイルの大きさを取得するためのコマンドである。
【０１５２】
画像サーバプログラム８６は、ゲットインデックスサイズコマンドの応答として、”IndexSize:<size>”をクライアントプログラム１３１に送信する。<size>は、インデックスファイルの大きさを示す。
【０１５３】
ゲットメディアインフォコマンドは、”GetMediaInfo”と記述される。
【０１５４】
ゲットメディアインフォコマンドは、画像サーバプログラム８６のバージョン番号を取得するためのコマンドである。画像サーバプログラム８６は、実行ディレクトリと同じフォルダにある、所定のプログラムのバージョン番号をクライアントプログラム１３１に送信する。
【０１５５】
画像サーバプログラム８６は、ゲットメディアインフォコマンドの応答として、”MediaInfo:<size1> <size2> <hh:mm:ss1> <hh:mm:ss2> <hh:mm:ss3>”をクライアントプログラム１３１に送信する。<size1>は、サーバ１の画像サーバプログラム８６用のハードディスクドライブの容量を示す。<size2>は、サーバ１の画像サーバプログラム８６用のハードディスクドライブの空き容量を示す。<hh:mm:ss1>は、「高画質」で録画可能な時間を示す。<hh:mm:ss2>は、「標準」で録画可能な時間を示す。<hh:mm:ss3>は、「長時間」で録画可能な時間を示す。
【０１５６】
リードオープンテープコマンドは、”ReadOpenTape <tapeID>”と記述される。<tapeID>は、再生したいコンテンツのIDを示す。
【０１５７】
リードオープンテープコマンドは、再生したいコンテンツを読みとり専用で開くためのコマンドである。コンテンツを再生するとき、リードオープンテープコマンドが必ず実行される。リードオープンテープコマンドを実行すると、クライアントプログラム１３１は、<handle>，<SSG port>、および<SSX port>を取得する。クローズテープコマンドが実行されるまで、読みとり専用で開かれたコンテンツの操作には、<handle>が使用される。また、サーバ１の画像サーバプログラム８６は、ポート<SSG port>を介して、画像データを送信し、ポート<SSX port>を介して、インデックスデータを送信するので、それぞれの転送開始要求コマンド(ReadSSG，ReadSSX)を実行する前にコネクションを確立する必要がある。
【０１５８】
画像サーバプログラム８６は、リードオープンテープコマンドの応答として、”ReadOpen:<handle> <SSG port> <SSX port>”をクライアントプログラム１３１に送信する。<handle>は、ハンドルを示す。クローズテープコマンドが実行されるまで、開かれたコンテンツを操作するとき、このハンドルが指定される。<SSG port>は、画像データをクライアントプログラム１３１が受け取るポートの番号を示す。<SSX port>は、インデックスデータをクライアントプログラム１３１が受け取るポートの番号を示す。
【０１５９】
クローズテープコマンドは、”CloseTape <handle>”と記述される。<handle>は、開かれたコンテンツのハンドルを示す。
【０１６０】
クローズテープコマンドは、リードオープンテープコマンドにより開かれたコンテンツを閉じるためのコマンドである。終了するとき、開かれたコンテンツは、必ずクローズテープコマンドの実行により、閉じられなければならない。
【０１６１】
画像サーバプログラム８６は、クローズテープコマンドの応答として、”Tape
closed”をクライアントプログラム１３１に送信する。
【０１６２】
ライトオープンテープコマンドは、”WriteOpenTape <tapeID>”と記述される。<tapeID>は、コンテンツのIDを示す。
【０１６３】
ライトオープンテープコマンドは、コンテンツを書き込みモードで開くためのコマンドである。ライトオープンテープコマンドを実行したとき、クライアントプログラム１３１は、<handle>，<SSG port>、および<SSX port>を取得する。ライトクローズテープコマンドが実行されるまで、書き込みモードで開かれたコンテンツの操作に、<handle>が使用される。
【０１６４】
また、サーバ１の画像サーバプログラム８６は、ポート<SSG port>を介して、画像データを送信し、ポート<SSX port>を介して、インデックスデータを送信するので、データの送出の前に、コネクションを確立する必要がある。
【０１６５】
画像サーバプログラム８６は、ライトオープンテープコマンドの応答として、”WriteOpen:<handle> <SSG port> <SSX port>”をクライアントプログラム１３１に送信する。<handle>は、ハンドルを示す。クローズテープコマンドが実行されるまで、開かれたコンテンツを操作するとき、このハンドルが指定される。<SSG port>は、画像データをクライアントプログラム１３１が送出するポートの番号を示す。<SSX port>は、インデックスデータをクライアントプログラム１３１が送出するポートの番号を示す。
【０１６６】
ライトクローズテープコマンドは、”WriteCloseTape <handle> <size>”と記述される。<handle>は、オープンしたコンテンツのハンドルを示し、<size>は、開かれているコンテンツに書き込まれたデータの量に対応するバイト数(64ビット整数)を示す。
【０１６７】
画像サーバプログラム８６は、ライトクローズテープコマンドが実行されたとき、ライトオープンテープコマンドにより開かれたコンテンツを閉じる。終了するとき、開かれたコンテンツは、必ず、ライトクローズテープコマンドにより、閉じられなければならない。
【０１６８】
画像サーバプログラム８６は、実際に書き込んだデータの量と<size>が等しいとき、ライトクローズテープコマンドの応答として、”Tape closed”をクライアントプログラム１３１に送信する。画像サーバプログラム８６は、実際に書き込んだデータの量と<size>が等しくないため削除したとき、ライトクローズテープコマンドの応答として、”Close and Delete”をクライアントプログラム１３１に送信する。画像サーバプログラム８６は、実際に書き込んだデータの量と<size>が等しくないとき、ライトクローズテープコマンドの応答として、”unmatch size”をクライアントプログラム１３１に送信する。
【０１６９】
リードSSGコマンドは、”ReadSSG <handle> <read bytes>”と記述される。<handle>は、再生されるコンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。
【０１７０】
<read bytes>は、0乃至64のいずれかの値である、バイトを単位とする、読み出し要求サイズを示す。0が指定されたとき、画像サーバプログラム８６は、送れるだけ送り続ける、いわゆる、Burstリードを実行する。
【０１７１】
リードSSGコマンドは、画像サーバプログラム８６に、コンテンツの画像データをリードオープンテープコマンドで取得したポート<SSG port>介して、送信させるコマンドである。クライアントプログラム１３１は、リードSSGコマンドを実行する前に、画像サーバプログラム８６とポート<SSG port>でコネクションを確立しなければならない。
【０１７２】
画像サーバプログラム８６は、Burstリードのとき、リードSSGコマンドの応答として、何もクライアントプログラム１３１に送信しない。画像サーバプログラム８６は、Burstリードでないとき、リードSSGコマンドの応答として、”MovieData:<handle> <size>”をクライアントプログラム１３１に送信する。<handle>は、ハンドルを示し、<size>は、実際にサーバ１が送信した画像データの量に対応するバイト数を示す。画像サーバプログラム８６は、Burstリードのとき、およびBurstリードでないとき共に、リードSSGコマンドの応答として、転送するデータがない、またはコンテンツが最後まで送信されたことを示す”NoMoreData”をクライアントプログラム１３１に送信する。
【０１７３】
リードヘッドテイルSSGコマンドは、”ReadHeadTailSSG <handle> <size>”と記述される。<handle>は、コンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。<size>は、バイトを単位とする、読み出し要求サイズを示す。
【０１７４】
リードヘッドテイルSSGコマンドは、コンテンツの先頭の、<size>で指定されたサイズのデータ、およびコンテンツの最後の、<size>で指定されたサイズのデータを取得するコマンドである。クライアントプログラム１３１は、リードヘッドテイルSSGコマンドを実行する前に、画像サーバプログラム８６に<SSG port>で接続しなければならない。リードヘッドテイルSSGコマンドは、動画表示プログラムのレンダーの時間短縮のために使用される。
【０１７５】
画像サーバプログラム８６は、リードヘッドテイルSSGコマンドの応答として、”HeadTailData:<handle > <size>*2”をクライアントプログラム１３１に送信する。<handle>は、ハンドルを示す。<size>は、実際にサーバ１が送信したデータの量に対応するバイト数を示す。
【０１７６】
シークSSGコマンドは、”SeekSSG <handle> <origin > <offset>”と記述される。<handle>は、コンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。<origin>は、Seekするときに基準となる位置を示し、0は、先頭を示し、1は、現在位置を示し、2は、終端を示す。<offset>は、バイトを単位とする、移動量を示し、LONGLONG(signed 64bit integer)の範囲で指定することができる。
【０１７７】
シークSSGコマンドは、ファイルポインタを移動させるためのコマンドである。シークSSGコマンドは、Burstリード中であっても実行することができるが、送信済みのデータはキャンセルされない。従って、Burstリード中、通常、シークSSGコマンドは、ポーズSSGコマンド、およびレジュームSSGコマンドと組み合わせて使用される。
【０１７８】
画像サーバプログラム８６は、シークSSGコマンドの応答として、”SeekEnd:<handle >”をクライアントプログラム１３１に送信する。<handle >は、コンテンツのハンドルを示す。
【０１７９】
ポーズSSGコマンドは、”PauseSSG <handle>”と記述される。<handle>は、コンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。
【０１８０】
ポーズSSGコマンドは、Burstリードでの転送を一時停止させるためのコマンドである。ポーズSSGコマンドは、Burstリード中でないとき、無視される。
【０１８１】
画像サーバプログラム８６は、ポーズSSGコマンドの応答として、”Pause:<handle>”をクライアントプログラム１３１に送信する。<handle>は、コンテンツのハンドルを示す。
【０１８２】
レジュームSSGコマンドは、”ResumeSSG <handle>”と記述される。<handle>は、コンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。
【０１８３】
レジュームSSGコマンドは、ポーズSSGコマンドで中断された転送を再開させるためのコマンドである。
【０１８４】
画像サーバプログラム８６は、レジュームSSGコマンドの応答として、”Resume:<handle>”をクライアントプログラム１３１に送信する。<handle>は、コンテンツのハンドルを示す。
【０１８５】
リードSSXコマンドは、”ReadSSX <handle> <read bytes>”と記述される。<handle>は、再生したいコンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。<read bytes>は、0乃至64のいずれかの値である、バイトを単位とする、読み出し要求サイズを示す。0が指定されたとき、画像サーバプログラム８６は、Burstリードを実行する。
【０１８６】
リードSSXコマンドは、画像サーバプログラム８６に、コンテンツのインデックスデータがリードオープンテープコマンドで取得したポート<SSX port>を介して、送信させるコマンドである。クライアントプログラム１３１は、リードSSXコマンドを実行する前に、画像サーバプログラム８６とポート<SSX port>でコネクションを確立しなければならない。
【０１８７】
画像サーバプログラム８６は、Burstリードのとき、リードSSXコマンドの応答として、何もクライアントプログラム１３１に送信しない。画像サーバプログラム８６は、Burstリードでないとき、リードSSXコマンドの応答として、”IndexData:<handle> <size>”をクライアントプログラム１３１に送信する。<handle>は、ハンドルを示し、<size>は、実際にサーバ１が送信したインデクスデータの量に対応するバイト数を示す。画像サーバプログラム８６は、Burstリードのとき、およびBurstリードでないとき共に、リードSSXコマンドの応答として、転送するデータがない、またはインデクスデータが最後まで送信されたことを示す”NoMoreIndex”をクライアントプログラム１３１に送信する。
【０１８８】
シークSSXコマンドは、”SeekSSX <handle> <0,1 or 2> <offset>”と記述される。<handle>は、コンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。<origin>は、Seekするときに基準となる位置を示し、0は、先頭を示し、1は、現在位置を示し、2は、終端を示す。<offset>は、バイトを単位とする、移動量を示し、LONGLONG(signed 64bit integer)の範囲で指定することができる。
【０１８９】
シークSSXコマンドは、ファイルポインタを移動するコマンドである。シークSSXコマンドは、Burstリード中であっても実行することができるが、送信済みのデータはキャンセルされない。従って、Burstリード中、通常、シークSSXコマンドは、ポーズSSXコマンド、およびレジュームSSXコマンドと組み合わせて使用される。
【０１９０】
画像サーバプログラム８６は、シークSSXコマンドの応答として、SeekEnd:<handle>”をクライアントプログラム１３１に送信する。<handle>は、コンテンツのハンドルを示す。
【０１９１】
ポーズSSXコマンドは、”PauseSSX <handle>”と記述される。<handle>は、コンテンツのハンドルを示す。ハンドルは、リードオープンテープコマンドで取得される。
【０１９２】
ポーズSSXコマンドは、Burstリードでの転送を一時停止させるためのコマンドである。ポーズSSXコマンドは、Burstリード中でないとき、無視される。
【０１９３】
画像サーバプログラム８６は、ポーズSSXコマンドの応答として、”Pause:<handle>”をクライアントプログラム１３１に送信する。<handle>は、コンテンツのハンドルを示す。
【０１９４】
ゲットピコバージョンコマンドは、”GetPicoVersion”と記述される。
【０１９５】
ゲットピコバージョンコマンドは、画像サーバプログラム８６のバージョン番号を取得するためのコマンドである。画像サーバプログラム８６は、実行ディレクトリと同じフォルダにある、所定のプログラムのバージョン番号を返す。
【０１９６】
画像サーバプログラム８６は、ゲットピコバージョンコマンドの応答として、”PicoVersion:<version>”をクライアントプログラム１３１に送信する。<version>は、所定のプログラムのバージョンを示す。
【０１９７】
次に、サーバ１がテレビジョン放送の番組を受信し、受信している番組に対応するコンテンツをストリームとして、クライアントとしてのパーソナルコンピュータ２に送信するときの処理に関連するコマンドについて説明する。
【０１９８】
ここでは、サーバ１から、受信している番組に対応するコンテンツを取得するコマンド、およびコマンドの送信と独立したタイミングでストリームの受信中にサーバ１から送信されるメッセージ（以下、非同期メッセージと称する）について説明する。コンテンツの提供の処理において、サーバ１を使用している使用者、および、既にサーバ１に接続してストリームで提供されるコンテンツの画像を視聴している使用者がいる可能性があるということを注意すべきである。
【０１９９】
サーバ１は、常にコンテンツをストリームとして送信できる状態であるとは限らない。例えば、サーバ１を使用している使用者が、サーバ１に録画を実行させているとき、サーバ１は、クライアントプログラム１３１による、ストリームで提供されるコンテンツの要求を拒否する。また、同様に、クライアントプログラム１３１は、ストリームの受信中に、サーバ１から送信された「ストリームの送信を継続できない」旨を伝えるメッセージを受信することもある。非同期メッセージは、このように、現在のコンテンツの伝送の状態が変化するとき、サーバ１からストリームで提供されるコンテンツを受信している全てのクライアントプログラム１３１に送られるメッセージである。
【０２００】
用意されているコマンドは、大きく次の2種類に分けられる。すなわち、コマンドは、コンテンツのストリームによる送信の開始に関するコマンド(LiveStart、LiveStop、LivePause、LiveResume、および[LiveResourceOwner]を含む)、およびチャンネルの変更に関するコマンド(LiveSelectCH、およびLiveQueryCHを含む)に分けられる。
【０２０１】
同様に、非同期メッセージも次の２つに大別される。すなわち、非同期メッセージは、コンテンツのストリームによる送信の継続に関するメッセージ(LiveLost、LiveAvailable、およびLiveErrorを含む)、およびチャンネル・音声モードの変更に関するメッセージ(ModeChange)に分けられる。
【０２０２】
次に、これらのコマンド、および非同期メッセージの具体的内容について説明する。
【０２０３】
ライブスタートコマンドは、”LiveStart <H|S|L>”と記述される。<H|S|L>は、ストリームにより送信されるコンテンツの画質を示し、Hは、「高画質」を示し、Sは、「標準」を示し、Lは、「長時間」を示す。
【０２０４】
ライブスタートコマンドは、画像サーバプログラム８６に、ストリームによるコンテンツの送信を要求するコマンドである。コンテンツのストリームは、応答で取得されたポートを介して、画像サーバプログラム８６からクライアントプログラム１３１に送信される。ライブスタートコマンドを実行すると、画像サーバプログラム８６は、クライアントプログラム１３１に、所定のタイミングで、非同期メッセージを送信する。非同期メッセージは、ライブストップコマンドが実行されるまで、送信が継続される。
【０２０５】
画像サーバプログラム８６は、ライブスタートコマンドの応答として、”Live:<H|S|L|I> <live handle> <port>”をクライアントプログラム１３１に送信する。<H|S|L|I>は、ストリームにより送信されるコンテンツの画質またはストリームの状態を示し、Hは、「高画質」を示し、Sは、「標準」を示し、Lは、「長時間」を示し、Iは、「LIVE送信不能」を示す。
【０２０６】
「LIVE送信不能」は、例えば、サーバ１が予約録画を実行しているなど、既にハードウェアリソースが占有されているため、サーバ１が、ストリームによりコンテンツを送信できないことを示す。
【０２０７】
<live handle>は、ハンドルを示す。ハンドルは、ストリームによるコンテンツの送信のコマンドを実行するために必要な識別子である。<port>は、サーバ１がストリームによりコンテンツを送信するポートの番号を示す。
【０２０８】
ライブストップコマンドは、”LiveStop<handle>”と記述される。<handle>は、ライブスタートコマンドまたはライブレジュームコマンドで取得された、ストリームにより送信されるコンテンツを識別するハンドルである。
【０２０９】
ライブストップコマンドは、ライブスタートコマンド、またはライブレジュームコマンドで開始または再開されたストリームの受信を終了するためのコマンドである。ライブストップコマンドの実行の後、画像サーバプログラム８６は、非同期メッセージの送信を停止する。
【０２１０】
画像サーバプログラム８６は、ライブストップコマンドの応答として、”Live End”をクライアントプログラム１３１に送信する。
【０２１１】
ライブポーズコマンドは、”LivePause <live handle>”と記述される。<handle>は、ライブスタートコマンドまたはライブレジュームコマンドで取得された、ストリームにより送信されるコンテンツを識別するハンドルである。
【０２１２】
ライブポーズコマンドは、サーバ１に、ストリームの送信の一時停止を要求するコマンドである。
【０２１３】
画像サーバプログラム８６は、ライブポーズコマンドの応答として、”Live Pause”をクライアントプログラム１３１に送信する。
【０２１４】
ライブレジュームコマンドは、”LiveResume <live handle>”と記述される。<live handle>は、ライブスタートコマンドまたはライブレジュームコマンドで取得された、ストリームにより送信されるコンテンツを識別するハンドルである。
【０２１５】
ライブレジュームコマンドは、ライブポーズコマンドで一時停止されたストリームの送信の再開を要求するコマンドである。
【０２１６】
画像サーバプログラム８６は、ライブレジュームコマンドの応答として、新たなストリームの送受信用のハンドル、およびポートを取得する。これ以前に使用していたハンドルは、この時点で無効となる。
【０２１７】
画像サーバプログラム８６は、ライブレジュームコマンドの応答として、”Live Resume:<H|S|L|I> <live handle> <port>”をクライアントプログラム１３１に送信する。<H|S|L|I>は、ストリームにより送信されるコンテンツの画質またはストリームの状態を示し、Hは、「高画質」を示し、Sは、「標準」を示し、Lは、「長時間」を示し、Iは、「LIVE送信不能」を示す。<live handle>は、ハンドルを示す。ハンドルは、ストリームによるコンテンツの送信のコマンドを実行するために必要な識別子である。<port>は、サーバ１がストリームによりコンテンツを送信するポートの番号を示す。
【０２１８】
ライブリソースオーナコマンドは、”LiveResourceOwner”と記述される。
【０２１９】
ライブリソースオーナコマンドは、ストリームによるコンテンツの伝送に失敗したとき、または、ストリームが中断されたとき、原因を取得するためのコマンドである。
【０２２０】
ライブセレクトチャンネルコマンドは、”LiveSelectCH <live handle> CH=<channel caption>”と記述される。<live handle>は、ライブスタートコマンドまたはライブレジュームコマンドで取得された、ストリームにより送信されるコンテンツを識別するハンドルである。<channel caption>は、チャンネルを識別する文字列である。<channel caption>には、ゲットチャンネルコマンドで取得されたチャンネル名を指定する。
【０２２１】
ライブセレクトチャンネルコマンドは、ストリームによりコンテンツとして送信される、テレビジョン放送の番組のチャンネルを変更するコマンドである。
【０２２２】
画像サーバプログラム８６は、ライブセレクトチャンネルコマンドの応答として、”Live SelectCH”をクライアントプログラム１３１に送信する。
【０２２３】
ライブクエリCHコマンドは、”LiveQueryCH <live handle>”と記述される。<live handle>は、ライブスタートコマンドまたはライブレジュームコマンドで取得された、ストリームにより送信されるコンテンツを識別するハンドルである。
【０２２４】
ライブクエリCHコマンドは、ストリームによりコンテンツとして送信される、テレビジョン放送の番組のチャンネルを問い合わせるコマンドである。
【０２２５】
画像サーバプログラム８６は、ライブクエリCHコマンドの応答として、”Channel:<audio mode > CH=<channel caption>”をクライアントプログラム１３１に送信する。<audio mode>は、ストリームの音声モードを示し、0は、モノラルを示し、1は、ステレオを示し、2は、２カ国語を示す。<channel caption>は、チャンネル名を示す。
【０２２６】
ライブロストメッセージは、ストリーム送信が継続できず、中断することを知らせる、”LiveLost:<cause>”で記述される非同期メッセージである。<cause>は、ストリームの伝送が継続できない原因を示す。
【０２２７】
クライアントプログラム１３１は、ライブロストメッセージを受信したとき、ライブポーズコマンド、またはライブストップコマンドを発行しなければならない。
【０２２８】
ライブアベイラブルメッセージは、中断していたストリームの送信が再開可能であることを知らせる、”LiveAvailable”で記述される非同期メッセージである。ライブアベイラブルメッセージを受信したとき、クライアントプログラム１３１は、ライブレジュームコマンドを画像サーバプログラム８６に送信し、ストリームの受信を再開することができる。
【０２２９】
ライブエラーメッセージは、サーバ１に何らかのエラーが発生したためストリームの送信が継続できず、終了することを知らせる、”LiveError:<cause>”で記述される非同期メッセージである。<cause>は、ストリームの送信が継続できない原因を示す。
【０２３０】
クライアントプログラム１３１は、ライブエラーメッセージを受信したとき、ライブストップコマンドを発行し、ストリームの受信を終了しなければならない。
【０２３１】
モードチェンジメッセージは、現在視聴中のストリームの音声モードまたはチャンネルが変更されたことを知らせる、”ModeChange:<pos> <audio mode> CH=<channel caption>”で記述される非同期メッセージである。<pos>は、単位を100ミリ秒とする、変更された時刻（例えば、MPEGストリームのPTS(Presentation Time Stamp)に相当する時刻）を示す。<audio mode>は、ストリームの音声モードを示し、0は、モノラルを示し、1は、ステレオを示し、2は、２カ国語を示す。<channel caption>は、チャンネル名を示す。
【０２３２】
次に、チャットサーバプログラム８７またはチャットプログラム１３２が送信または受信する、チャットに関するコマンドおよびメッセージについて説明する。ここでは、サーバ１に接続中の使用者同士がチャットを行うためのコマンドについて説明する。チャットの機能には制限が存在し、使用者が相手のパーソナルコンピュータ２を指定して文字列を送信することはできない。送信した文字列は、チャットすることができる全てのパーソナルコンピュータ２にブロードキャストされる。チャットの機能により送信された文字列は、実行したコマンドの応答とは別に、サーバ１からクライアントとしてのパーソナルコンピュータ２に非同期に送信される。
【０２３３】
チャットアクティブコマンドは、”ChatActive”と記述される。
【０２３４】
チャットアクティブコマンドは、チャットの機能を有効にするためのコマンドである。チャットの機能を有効にしているパーソナルコンピュータ２は、他のパーソナルコンピュータ２とチャットすることができる。チャットでメッセージを送信するとき、チャットコマンドが実行される。チャットコマンドを用いて送信したメッセージは、サーバ１から、自分自身にも送信される。
【０２３５】
チャットサーバプログラム８７は、チャットアクティブコマンドの応答として、”ChatActive”をチャットプログラム１３２に送信する。チャットサーバプログラム８７は、これ以後、チャットメッセージ”ChatUser:<user num>”および”Chat:<message>”をチャットプログラム１３２に送信する。<user num>は、チャットの機能を有効にしているクライアントの数を示す。<message>は、チャットメッセージを示す。
【０２３６】
チャットコマンドは、”Chat <message strings>”と記述される。<message strings>は、文字列からなる、送信するメッセージを示す。
【０２３７】
チャットコマンドは、チャットの機能が有効な全てのクライアントにチャットメッセージを送信する。チャットコマンドを実行する前にチャットアクティブコマンドを実行してチャットの機能を有効にしなければならない。送信したチャットメッセージは、チャット非同期メッセージとして、自分自身にも送信される。
【０２３８】
チャットメッセージは、チャットを有効にしているクライアントがメッセージを送信したことを知らせる、”Chat <message strings>”で記述される非同期メッセージである。<message strings>は、文字列からなる、送信されたメッセージを示す。チャットコマンドで送信したメッセージは、この非同期メッセージにより、自分自身にも送信される。
【０２３９】
次に、クライアントであるパーソナルコンピュータ２が、ネットワーク３を介して、サーバ１に接続し、サーバ１から放送されている番組に対応するコンテンツを受信するときの処理について説明する。
【０２４０】
図７は、クライアントプログラム１３１を最初に起動させたときに、クライアントプログラム１３１が表示部１１０に表示させる、接続するサーバ１を選択するためのダイアログボックスの例を示す図である。
【０２４１】
接続するサーバ１を選択するためのダイアログボックスには、接続するサーバ１の名前を入力するためのコンボボックス１５１、パスワードを入力するためのテキストボックス１５２、および、次回に起動したとき、自動的にサーバ１に接続するか否かを設定するためのチェックボックス１５３などが配置されている。
【０２４２】
図８に示すように、コンボボックス１５１の右側に配置されている矢印がクリックされたとき、表示部１１０に表示されるダイアログボックスの例を示す図である。
【０２４３】
クライアントプログラム１３１は、コンボボックス１５１の下側に、パーソナルコンピュータ２が接続できるサーバ１−１乃至１−Ｍの名前をリストに表示する。サーバ１−１乃至１−Ｍの名前は、上述したコマンドの実行により、クライアントプログラム１３１に取得される。
【０２４４】
例えば、図８に示す例において、名前”NABE7310”は、サーバ１−１に対応し、名前”naber1”は、サーバ１−２に対応し、名前”CARBON”は、サーバ１−３に対応し、名前”NABERX52”は、サーバ１−４に対応する。
【０２４５】
例えば、コンボボックス１５１のリストから名前”NABE7310”が選択され、テキストボックス１５２に所定のパスワードが入力され、ダイアログボックスの”接続”と名前が付されたボタンがクリックされたとき、クライアントプログラム１３１は、ネットワーク３を介して、サーバ１−１に接続し、所定のチャンネルの番組に対応する画像データまたは音声データであるコンテンツを受信する。
【０２４６】
図９は、クライアントプログラム１３１が、サーバ１−１から受信した、所定のチャンネルの番組に対応する画像データまたは音声データであるコンテンツを基に、表示部１１０に表示させるウィンドウの例を示す図である。クライアントプログラム１３１は、表示部１１０に、サーバ１−１から受信した、所定のチャンネルの番組に対応する画像と共に、チャンネルを選択するためのボタン、または音量を調整するためのボタンを表示させる。
【０２４７】
図１０に示すように、接続するサーバ１を選択するためのダイアログボックスのチェックボックス１５３がチェックされて、”接続”と名前が付されたボタンがクリックされたとき、クライアントプログラム１３１は、自動接続フラグに、自動的にサーバ１に接続する旨を示す値を設定する。
【０２４８】
図１１は、自動的にサーバ１に接続しない旨を示す値が自動接続フラグに設定されているとき、クライアントプログラム１３１が実行する、サーバ１との接続の処理を説明する図である。
【０２４９】
クライアントプログラム１３１は、自動的にサーバ１に接続しない旨を示す値が自動接続フラグに設定されているとき、起動された場合、表示部１１０に、接続するサーバ１を選択するためのダイアログボックスを表示させる。クライアントプログラム１３１は、ダイアログボックスに設定されたサーバ１の名前およびパスワードを基に、選択されたサーバ１に接続し、接続されたサーバ１から受信した、所定のチャンネルの番組に対応する画像を、表示部１１０に表示させると共に、番組に対応する音声を、スピーカ１１３に再生させる。
【０２５０】
図１２は、自動的にサーバ１に接続する旨を示す値が自動接続フラグに設定されているとき、クライアントプログラム１３１が実行する、サーバ１との接続の処理を説明する図である。
【０２５１】
クライアントプログラム１３１は、予め記憶しているサーバ１の名前およびパスワードを基に、記憶している名前に対応するサーバ１に接続し、接続されたサーバ１から受信した、所定のチャンネルの番組に対応する画像を、表示部１１０に表示させると共に、番組に対応する音声を、スピーカ１１３に再生させる。
【０２５２】
自動的にサーバ１に接続する旨を示す値が自動接続フラグに設定されているとき、クライアントプログラム１３１は、接続するサーバ１を選択するためのダイアログボックスを表示させない。
【０２５３】
図１３に示すように、設定のメニューから、”自動接続の解除”のコマンドが選択されたとき、クライアントプログラム１３１は、自動的にサーバ１に接続しない旨を示す値を自動接続フラグに設定する。
【０２５４】
図１４は、接続するサーバ１を選択するためのダイアログボックスの”接続”と名前が付されたボタンがクリックされたときに実行される、接続データの記憶の処理を説明するフローチャートである。
【０２５５】
ステップＳ１１において、クライアントプログラム１３１は、ダイアログボックスから、サーバ１に接続するための設定を取得する。例えば、クライアントプログラム１３１は、ダイアログボックスのコンボボックス１５１から接続するサーバ１の名前を取得し、ダイアログボックスのテキストボックス１５２からパスワードを取得し、ダイアログボックスのチェックボックス１５３から、自動的にサーバ１に接続するか否かの設定を取得する。
【０２５６】
ステップＳ１２において、クライアントプログラム１３１は、取得したチェックボックス１５３の設定を基に、自動的にサーバ１に接続する旨の設定がされているか否かを判定し、自動的にサーバ１に接続する旨の設定がされていると判定された場合、サーバ１に自動的に接続するために必要なデータを記憶する必要があるので、ステップＳ１３に進み、ダイアログボックスのコンボボックス１５１から取得した、サーバ１の名前を接続データとして記憶する。
【０２５７】
ステップＳ１４において、クライアントプログラム１３１は、ダイアログボックスのテキストボックス１５２から取得した、パスワードを接続データとして記憶する。
【０２５８】
ステップＳ１５において、クライアントプログラム１３１は、接続データの自動接続フラグに、自動的にサーバ１に接続する旨を設定する。
【０２５９】
ステップＳ１６において、クライアントプログラム１３１は、表示部１１０に表示されているメニューのコマンドの選択またはボタンのクリックなどの操作を基に、使用者により、クライアントプログラム１３１自身の終了が要求されたか否かを判定し、クライアントプログラム１３１自身の終了が要求されていないと判定された場合、ステップＳ１６に戻り、クライアントプログラム１３１自身の終了が要求されるまで、判定の処理を繰り返す。
【０２６０】
ステップＳ１６において、クライアントプログラム１３１自身の終了が要求されたと判定された場合、ステップＳ１７に進み、クライアントプログラム１３１は、サーバ１から受信しているコンテンツに対応する番組のチャンネルを示すデータを接続データとして記憶し、処理は終了する。クライアントプログラム１３１が終了したとき、接続データとして、例えば、自動接続フラグ、サーバ１の名前、パスワード、およびチャンネルを示すデータが記憶される。接続データには、ネットワーク３における、サーバ１への接続経路など、サーバ１の接続に必要な他のデータを記憶するようにしてもよい。
【０２６１】
ステップＳ１２において、自動的にサーバ１に接続する旨の設定がされていないと判定された場合、サーバ１に自動的に接続するために必要なデータを記憶する必要がないので、サーバ１の名前、およびパスワードを記憶しないで、ステップＳ１８に進み、クライアントプログラム１３１は、接続データの自動接続フラグに、自動的にサーバ１に接続しない旨を設定し、処理は終了する。
【０２６２】
このように、クライアントプログラム１３１は、自動接続フラグに、自動的にサーバ１に接続するか否かを設定すると共に、自動接続フラグに、自動的にサーバ１に接続すると設定されたとき、接続データとして、サーバ１に自動的に接続するために必要なデータである、サーバ１の名前、およびパスワードを記憶する。
【０２６３】
図１５は、クライアントプログラム１３１による、サーバ１への接続の処理を説明するフローチャートである。
【０２６４】
ステップＳ３１において、クライアントプログラム１３１は、図１５のフローチャートを参照して説明した処理で記憶されている接続データを読み出す。ステップＳ３２において、クライアントプログラム１３１は、接続データの自動接続フラグに、自動的にサーバ１に接続する旨が設定されているか否かを判定し、自動的にサーバ１に接続する旨が設定されていると判定された場合、ステップＳ３３に進み、接続データに含まれる、サーバ１の名前およびパスワードを基に、ネットワーク３を介して、名前に対応するサーバ１に接続する。
【０２６５】
ステップＳ３４において、クライアントプログラム１３１は、接続データに含まれるチャンネルを示すデータを基に、サーバ１に、記憶されているチャンネルへの変更を要求し、ステップＳ３５に進む。
【０２６６】
ステップＳ３５において、クライアントプログラム１３１は、サーバ１から送信される、コンテンツである、所定のチャンネルの番組に対応する画像データおよび音声のデータを受信する。
【０２６７】
ステップＳ３６において、クライアントプログラム１３１は、受信したコンテンツを基に、画像を表示し、音声を出力する。すなわち、クライアントプログラム１３１は、表示部１１０に、番組の画像を表示させ、スピーカ１１３に、番組の音声を再生させ、処理は終了する。
【０２６８】
一方、ステップＳ３２において、自動的にサーバ１に接続しない旨が設定されていると判定された場合、接続データを基に、サーバ１に接続しないで、ダイアログボックスに設定されたデータを基に、サーバ１に接続するので、クライアントプログラム１３１は、表示部１１０にダイアログボックスを表示させる。
【０２６９】
ステップＳ３８において、クライアントプログラム１３１は、ダイアログボックスのコンボボックス１５１から、サーバ１の名前を取得すると共に、ダイアログボックスのテキストボックス１５２から、パスワードを取得する。
【０２７０】
ステップＳ３９において、クライアントプログラム１３１は、取得したサーバ１の名前およびパスワードを基に、所定のサーバ１に接続し、ステップＳ３５に進み、画像データおよび音声データの受信を実行する。
【０２７１】
このように、クライアントプログラム１３１は、接続データの自動接続フラグに、自動的にサーバ１に接続する旨が設定されているとき、接続データのサーバ１の名前およびパスワードを基に、所定のサーバ１に接続すると共に、接続したサーバ１に、所定のチャンネルへの変更を要求することができる。従って、面倒なダイアログボックスへの設定をすることなく、使用者は、所望のサーバに接続し、所定のチャンネルの番組を視聴することができる。
【０２７２】
次に、サーバ１に接続したときの、チャットプログラム１３２の起動の処理を説明する。
【０２７３】
図１６に示すように、クライアントであるパーソナルコンピュータ２−１が、ネットワーク３を介して、サーバ１から、所定のチャンネルの番組に対応するコンテンツを受信しているとき、図１７に示すように、クライアントであるパーソナルコンピュータ２−２が、ネットワーク３を介して、番組に対応するコンテンツを受信を開始するように、サーバ１に接続した場合、図１８に示すように、パーソナルコンピュータ２−１において、チャットプログラム１３２−１が起動される。
【０２７４】
さらに、パーソナルコンピュータ２−２において、チャットプログラム１３２−２が起動される。
【０２７５】
図１９に示すように、パーソナルコンピュータ２−１のチャットプログラム１３２−１は、パーソナルコンピュータ２−１の使用者のキーボード１０８−１の操作に対応して入力されたテキスト、およびサーバ１のチャットサーバプログラム８７から受信した、パーソナルコンピュータ２−２のチャットプログラム１３２−２により取得されたテキストを、表示部１１０−１に表示させる。同様に、パーソナルコンピュータ２−２のチャットプログラム１３２−２は、パーソナルコンピュータ２−２の使用者のキーボード１０８−２の操作に対応して入力されたテキスト、およびサーバ１のチャットサーバプログラム８７から受信した、パーソナルコンピュータ２−１のチャットプログラム１３２−１により取得されたテキストを、表示部１１０−２に表示させる。
【０２７６】
図２０および図２１は、パーソナルコンピュータ２−１のチャットプログラム１３２−１の起動、およびパーソナルコンピュータ２−２のチャットプログラム１３２−２の起動の処理を説明する図である。
【０２７７】
図２０に示すように、パーソナルコンピュータ２−２のクライアントプログラム１３１−２が、サーバ１の画像サーバプログラム８６に接続を要求したとき、サーバ１の画像サーバプログラム８６は、他のクライアントに所定のチャンネルの番組に対応するコンテンツを既に提供しているか否かを判定する。
【０２７８】
他のクライアントに所定のチャンネルの番組に対応するコンテンツを既に提供していると判定された場合、サーバ１の画像サーバプログラム８６は、既にコンテンツを提供しているクライアント、例えば、パーソナルコンピュータ２−１のクライアントプログラム１３１−１に、チャットプログラム１３２−１の起動要求を送信する。さらに、他のクライアントに所定のチャンネルの番組に対応するコンテンツを既に提供していると判定された場合、サーバ１の画像サーバプログラム８６は、接続を要求したクライアントであるパーソナルコンピュータ２−２のクライアントプログラム１３１−２に、チャットプログラム１３２−２の起動要求を送信する。
【０２７９】
他のクライアントに所定のチャンネルの番組に対応するコンテンツを既に提供していると判定された場合、サーバ１の画像サーバプログラム８６は、チャットサーバプログラム８７に、パーソナルコンピュータ２−１のクライアントプログラム１３１−１にチャットプログラム１３２−１の起動を要求し、およびパーソナルコンピュータ２−２のクライアントプログラム１３１−２にチャットプログラム１３２−２の起動を要求した旨を通知する。
【０２８０】
このようにして、図２１に示すように、パーソナルコンピュータ２−１のクライアントプログラム１３１−１は、チャットプログラム１３２−１を起動させ、パーソナルコンピュータ２−２のクライアントプログラム１３１−２は、チャットプログラム１３２−２を起動させる。
【０２８１】
チャットプログラム１３２−１およびクライアントプログラム１３１−２は、サーバ１のチャットサーバプログラム８７を介して、チャットを実行することができる。
【０２８２】
図２２は、サーバ１の画像サーバプログラム８６による、パーソナルコンピュータ２のチャットプログラム１３２の起動要求の処理を説明するフローチャートである。
【０２８３】
ステップＳ５１において、画像サーバプログラム８６は、自分自身への接続の要求がされたか否かを判定し、自分自身への接続の要求がされていないと判定された場合、ステップＳ５１に戻り、自分自身への接続の要求がされるまで、判定の処理を繰り返す。
【０２８４】
ステップＳ５１において、自分自身への接続の要求がされたと判定された場合、ステップＳ５２に進み、画像サーバプログラム８６は、他のクライアントが接続されているか否かを判定する。ステップＳ５２において、他のクライアントが接続されていると判定された場合、ステップＳ５１において接続を要求したクライアントを含めて２つ以上のクライアントが画像サーバプログラム８６に接続されるので、ステップＳ５３に進み、画像サーバプログラム８６は、ステップＳ５１において接続を要求したクライアントを含めて２つ以上のクライアントのそれぞれに対して、チャットプログラム１３２の起動を要求する。
【０２８５】
ステップＳ５４において、画像サーバプログラム８６は、接続を要求したクライアントを含めて２つ以上のクライアントのそれぞれに対して、チャットプログラム１３２の起動を要求したことを、チャットサーバプログラム８７に通知し、処理は終了する。
【０２８６】
ステップＳ５２において、他のクライアントが接続されていないと判定された場合、ステップＳ５１において接続を要求したクライアントのみが画像サーバプログラム８６に接続され、チャットをすることができないので、ステップＳ５３およびステップＳ５４の処理はスキップされ、処理は終了する。
【０２８７】
このように、画像サーバプログラム８６は、２つ以上のクライアントから接続が要求されたとき、それぞれのクライアントに対して、チャットプログラム１３２の起動を要求すると共に、チャットサーバプログラム８７に起動を要求したことを通知する。
【０２８８】
図２３は、クライアントであるパーソナルコンピュータ２のクライアントプログラム１３１による、画像サーバプログラム８６への接続の処理を説明するフローチャートである。
【０２８９】
ステップＳ６１において、パーソナルコンピュータ２のクライアントプログラム１３１は、ネットワーク３を介して、サーバ１の画像サーバプログラム８６に接続を要求する。
【０２９０】
ステップＳ６２において、パーソナルコンピュータ２のクライアントプログラム１３１は、サーバ１の画像サーバプログラム８６から、チャットプログラム１３２の起動が要求されたか否かを判定し、画像サーバプログラム８６から、チャットプログラム１３２の起動が要求されたと判定された場合、ステップＳ６３に進み、チャットプログラム１３２を起動させ、処理は終了する。
【０２９１】
ステップＳ６２において、画像サーバプログラム８６から、チャットプログラム１３２の起動が要求されていないと判定された場合、チャットプログラム１３２を起動させる必要はないので、クライアントプログラム１３１は、チャットプログラム１３２を起動させずに、処理は終了する。
【０２９２】
このように、クライアントプログラム１３１は、画像サーバプログラム８６に接続を要求したとき、画像サーバプログラム８６の要求に対応して、チャットプログラム１３２を起動させる。このようにすることで、離れた場所にあるクライアントを使用している使用者は、同一のコンテンツを視聴しながら、コミュニケーションをはかることができる。
【０２９３】
なお、画像サーバプログラム８６およびチャットサーバプログラム８７は、１つのサーバ１において実行されると説明したが、画像サーバプログラム８６およびチャットサーバプログラム８７のそれぞれを異なるサーバが実行するようにしてもよい。この場合において、チャットプログラム１３２は、起動されたとき、画像サーバプログラム８６を実行しているサーバとは異なるサーバであって、チャットサーバプログラム８７を実行しているサーバに接続する。
【０２９４】
また、チャットプログラム１３２は、画像サーバプログラム８６のチャットプログラム１３２の起動要求に対応して、起動されると説明したが、予め起動するようにしてもよい。この場合において、例えば、クライアントプログラム１３１は、チャットプログラム１３２をアクティブにすることができる。
【０２９５】
次に、画像サーバプログラム８６が、クライアントであるパーソナルコンピュータ２毎に、優先順位を設定し、所定の優先順位が設定されているクライアントからのチャンネルの変更のみを受け付ける処理について説明する。
【０２９６】
図２４は、画像サーバプログラム８６が記憶している、クライアント毎の優先順位のデータの例を示す図である。図２４に示す優先順位のデータの例において、クライアント名と優先順位とが対応付けられている。
【０２９７】
例えば、図２４に示す”ＡＡＡ”は、パーソナルコンピュータ２−１に対応し、”ＢＢＢ”は、パーソナルコンピュータ２−２に対応し、”ＣＣＣ”は、パーソナルコンピュータ２−３に対応する。
【０２９８】
例えば、図２４に示す例の、クライアント名に対応する優先順位において、”１”は、チャンネルの変更の要求を受け付ける旨を示し、”２”は、チャンネルの変更の要求を受け付けない旨を示す。以下、”１”に対応する優先順位を、優先順位が高いとも称し、”２”に対応する優先順位を、優先順位が低いとも称する。
【０２９９】
例えば、パーソナルコンピュータ２−１が最初に画像サーバプログラム８６に接続したとき、画像サーバプログラム８６は、パーソナルコンピュータ２−１の名前と、チャンネルの変更の要求を受け付ける旨の優先順位とを対応付ける。２台目以降のパーソナルコンピュータ２−２が画像サーバプログラム８６に接続したとき、画像サーバプログラム８６は、パーソナルコンピュータ２−２の名前と、チャンネルの変更の要求を受け付けない旨の優先順位とを対応付ける。
【０３００】
画像サーバプログラム８６は、パーソナルコンピュータ２−１からチャンネルの変更の要求がされたとき、要求に従ってチャンネルを変更し、パーソナルコンピュータ２−２または２−３からチャンネルの変更が要求されたとき、要求を受け付けず、チャンネルを変更しない。
【０３０１】
図２５は、画像サーバプログラム８６による、チャンネルの変更の処理を説明するフローチャートである。
【０３０２】
ステップＳ７１において、画像サーバプログラム８６は、ネットワーク３を介して、パーソナルコンピュータ２から送信されるデータを基に、パーソナルコンピュータ２からチャンネルの変更が要求されたか否かを判定し、パーソナルコンピュータ２からチャンネルの変更が要求されていないと判定された場合、ステップＳ７１に戻り、判定の処理を繰り返す。
【０３０３】
ステップＳ７１において、パーソナルコンピュータ２からチャンネルの変更が要求されたと判定された場合、ステップＳ７２に進み、画像サーバプログラム８６は、ネットワーク３を介して、パーソナルコンピュータ２から送信されるコマンドを基に、クライアントであるパーソナルコンピュータの名前を取得する。
【０３０４】
ステップＳ７３において、画像サーバプログラム８６は、取得したパーソナルコンピュータの名前を基に、予め記憶しているクライアント毎の優先順位のデータから、クライアントの優先順位を取得する。
【０３０５】
ステップＳ７４において、画像サーバプログラム８６は、取得したクライアントの優先順位を基に、チャンネルの変更の要求が受け付けられるか否かを判定し、例えば、図２４に示すように、優先順位が”１”とされ、チャンネルの変更の要求が受け付けられると判定された場合、ステップＳ７５に進み、クライアントからのチャンネルの変更の要求に対応して、チャンネルを変更して、処理は終了する。
【０３０６】
一方、ステップＳ７４において、例えば、図２４に示すように、優先順位が”２”とされ、チャンネルの変更の要求が受け付けられないと判定された場合、チャンネルを変更してはならないので、チャンネルを変更しないで、処理は終了する。
【０３０７】
このように、画像サーバプログラム８６は、優先順位のデータを基に、所定の優先順位が対応づけられたクライアントからの要求のみを受け付けて、チャンネルを変更し、他の優先順位が対応付けられたクライアントから要求されても、チャンネルを変更しない。
【０３０８】
図２６は、画像サーバプログラム８６による、優先順位の変更の処理を説明するフローチャートである。
【０３０９】
ステップＳ８１において、画像サーバプログラム８６は、ネットワーク３を介して、送信されたデータを基に、クライアントであるパーソナルコンピュータ２から、優先順位を上げる処理が要求されたか否かを判定し、優先順位を上げる処理が要求されていないと判定された場合、ステップＳ８１に戻り、優先順位を上げる処理が要求されるまで、判定の処理を繰り返す。
【０３１０】
ステップＳ８１において、優先順位を上げる処理が要求されたと判定された場合、ステップＳ８２に進み、画像サーバプログラム８６は、優先順位の高いクライアントに、優先順位の変更の許可を求める。例えば、画像サーバプログラム８６は、優先順位のデータから優先順位が”１”であるクライアントを検索し、優先順位が”１”であるクライアントに優先順位変更の許可を求める。
【０３１１】
ステップＳ８３において、画像サーバプログラム８６は、優先順位の変更の許可を求めたクライアントからの返事を基に、優先順位の変更が許可されたか否かを判定し、優先順位の変更が許可されたと判定された場合、優先順位を上げる処理を要求したクライアントの優先順位を高くし、優先順位の変更を許可したクライアントの順位を低くするように、優先順位のデータを変更して、処理は終了する。例えば、図２４において、クライアント”ＡＡＡ”に対応する優先順位は、”２”とされ、クライアント”ＢＢＢ”に対応する優先順位は、”１”とされる。
【０３１２】
ステップＳ８３において、優先順位の変更が許可されないと判定された場合、優先順位を変更することはできないので、画像サーバプログラム８６は、優先順位のデータを変更しないで、処理は終了する。
【０３１３】
このように、優先順位の高いクライアントから許可されたとき、画像サーバプログラム８６は、クライアントからの要求に対応して、優先順位のデータを変更する。
【０３１４】
なお、クライアントの全てが、チャンネルの変更を要求できるようにしてもよい。
【０３１５】
図２７は、クライアントがサーバ１の画像サーバプログラム８６のバージョンを取得し、バージョンに対応する機能に基づいて、サーバ１を選択する処理を説明する図である。
【０３１６】
クライアントであるパーソナルコンピュータ２のクライアントプログラム１３１は、ネットワーク３を介して、サーバ１−１の画像サーバプログラム８６−１にバージョンの通知を要求する。サーバ１−１の画像サーバプログラム８６−１は、クライアントプログラム１３１の要求に対応して、ネットワーク３を介して、クライアントプログラム１３１に、画像サーバプログラム８６−１のバージョンを通知する。
【０３１７】
クライアントプログラム１３１は、画像サーバプログラム８６−１から受信した、画像サーバプログラム８６−１のバージョンを基に、予め記憶している機能データ１８１を参照して、画像サーバプログラム８６−１の機能を認識する。
【０３１８】
画像サーバプログラム８６−１の機能は、例えば、コンテンツを記録し、記録しているコンテンツをファイルとして提供する機能、所定のチャンネルの番組を受信し、ストリームとして番組に対応するコンテンツを提供する機能、または記録している１つのコンテンツを複数の種類のストリームとして個々のクライアントに提供する機能などである。複数の種類のストリームは、例えば、低ビットレートストリームおよび高ビットレートストリーム、または、MPEG1およびMPEG2などの、異なる符号化方式のストリームなどである。
【０３１９】
同様に、パーソナルコンピュータ２のクライアントプログラム１３１は、ネットワーク３を介して、サーバ１−２の画像サーバプログラム８６−２にバージョンの通知を要求する。サーバ１−２の画像サーバプログラム８６−２は、クライアントプログラム１３１の要求に対応して、ネットワーク３を介して、クライアントプログラム１３１に、画像サーバプログラム８６−２のバージョンを通知する。
【０３２０】
クライアントプログラム１３１は、画像サーバプログラム８６−２から受信した、画像サーバプログラム８６−２のバージョンを基に、予め記憶している機能データ１８１を参照して、画像サーバプログラム８６−２の機能を認識する。
【０３２１】
図２８は、機能データ１８１の例を示す図である。
【０３２２】
機能データ１８１は、画像サーバプログラム８６のバージョン、およびバージョンに対応する機能の名前を格納している。
【０３２３】
例えば、図２８に示す例において、画像サーバプログラム８６の”１”であるバージョンに対して、”記録”である機能の名前が格納されている。”記録”である機能の名前は、コンテンツを記録し、記録しているコンテンツをファイルとして提供する機能を示す。
【０３２４】
例えば、画像サーバプログラム８６の”２”であるバージョンに対して、”記録”および”チューナ”である機能の名前が格納されている。”チューナ”である機能の名前は、所定のチャンネルの番組を受信し、ストリームとして番組に対応するコンテンツを提供する機能を示す。すなわち、”２”であるバージョンの画像サーバプログラム８６は、コンテンツを記録し、記録しているコンテンツをファイルとして提供するか、または、所定のチャンネルの番組を受信し、ストリームとして番組に対応するコンテンツを提供することができる。”２”であるバージョンの画像サーバプログラム８６は、コンテンツをストリームとして提供できるので、記録しているコンテンツをストリームとしてクライアントに提供することができる。
【０３２５】
また、例えば、画像サーバプログラム８６の”３”であるバージョンに対して、”記録”、”チューナ”、”複数ストリーム”である機能の名前が格納されている。”複数ストリーム”である機能の名前は、記録している１つのコンテンツを複数の種類のストリームとして個々のクライアントに提供する機能を示す。すなわち、”３”であるバージョンの画像サーバプログラム８６は、コンテンツを記録し、記録しているコンテンツをファイルとして提供するか、所定のチャンネルの番組を受信し、ストリームとして番組に対応するコンテンツを提供するか、または、記録している１つのコンテンツを複数の種類のストリームとして個々のクライアントに提供することができる。
【０３２６】
このように、クライアントプログラム１３１は、画像サーバプログラム８６から受信したバージョンを基に、画像サーバプログラム８６の機能を認識し、画像サーバプログラム８６の機能に基づいて、複数のサーバ１のうち、１つのサーバ１を選択することができる。
【０３２７】
図２９は、クライアントプログラム１３１を実行するパーソナルコンピュータ２および画像サーバプログラム８６を実行するサーバ１による、画像であるコンテンツの送受信の処理を説明するフローチャートである。
【０３２８】
ステップＳ１００１において、パーソナルコンピュータ２のクライアントプログラム１３１は、ネットワーク３を介して、サーバ１−１の画像サーバプログラム８６−１およびサーバ１−２の画像サーバプログラム８６−２にバージョン要求を送信する。クライアントプログラム１３１は、バージョン要求をブロードキャストするようにしてもよい。
【０３２９】
ステップＳ２００１において、サーバ１−１の画像サーバプログラム８６−１は、パーソナルコンピュータ２から送信された、バージョン要求を受信する。ステップＳ２００２において、画像サーバプログラム８６−１は、自分自身のバージョンを示すデータを、ネットワーク３を介して、パーソナルコンピュータ２に送信する。
【０３３０】
ステップＳ１００２において、クライアントプログラム１３１は、ネットワーク３を介して、サーバ１−１から送信された、画像サーバプログラム８６−１のバージョンを示すデータを受信する。
【０３３１】
ステップＳ３００１において、サーバ１−２の画像サーバプログラム８６−２は、パーソナルコンピュータ２から送信された、バージョン要求を受信する。ステップＳ３００２において、画像サーバプログラム８６−２は、自分自身のバージョンを示すデータを、ネットワーク３を介して、パーソナルコンピュータ２に送信する。
【０３３２】
ステップＳ１００３において、クライアントプログラム１３１は、ネットワーク３を介して、サーバ１−２から送信された、画像サーバプログラム８６−２のバージョンを示すデータを受信する。
【０３３３】
ステップＳ１００４において、クライアントプログラム１３１は、ステップＳ１００２およびステップＳ１００３の処理により取得した、バージョンを示すデータおよび機能データ１８１を基に、サーバ１毎の機能の名前を取得する。すなわち、クライアントプログラム１３１は、画像サーバプログラム８６−１のバージョンを示すデータを基に、機能データ１８１の内容を検索し、画像サーバプログラム８６−１のバージョンに対応する機能の名前を取得する。クライアントプログラム１３１は、画像サーバプログラム８６−２のバージョンを示すデータを基に、機能データ１８１の内容を検索し、画像サーバプログラム８６−２のバージョンに対応する機能の名前を取得する。
【０３３４】
ステップＳ１００５において、クライアントプログラム１３１は、取得したサーバ１−１の機能の名前およびサーバ１−２の機能の名前を基に、接続するサーバ１を選択する。クライアントプログラム１３１は、提供を所望するサービスの内容を基に、サーバ１を選択できる。すなわち、例えば、テレビジョン放送の所定のチャンネルの番組の再生を所望するとき、クライアントプログラム１３１は、所定のチャンネルの番組を受信し、ストリームとして番組に対応するコンテンツを提供する機能を有するサーバ１を選択する。
【０３３５】
ステップＳ１００６において、クライアントプログラム１３１は、選択したサーバ１、例えば、サーバ１−２に、ネットワーク３を介して、接続要求を送信する。
【０３３６】
ステップＳ３００３において、画像サーバプログラム８６−２は、パーソナルコンピュータ２から送信された接続要求を受信する。ステップＳ３００４において、画像サーバプログラム８６−２は、ネットワーク３を介して、コンテンツである画像データをパーソナルコンピュータ２に送信する。
【０３３７】
ステップＳ１００７において、クライアントプログラム１３１は、サーバ１−２から送信されたコンテンツである画像データを受信する。ステップＳ１００８において、クライアントプログラム１３１は、受信したコンテンツを基に、画像を表示部１１０に表示し、処理は終了する。
【０３３８】
このように、クライアントプログラム１３１は、提供を所望するサービスの内容を基に、サーバ１を選択し、選択したサーバ１からコンテンツを受信することができる。
【０３３９】
図３０は、サーバ１から供給されたストリームを基に、画像のフレームを削除することなく再生するクライアントプログラム１３１の構成を説明するブロック図である。
【０３４０】
図３０に示すクライアントプログラム１３１は、バッファ１９１、再生プログラム１９２、および再生監視プログラム１９３を含む。
【０３４１】
バッファ１９１は、FIFO(First-In First-Out)バッファであり、ネットワーク３を介して、サーバ１から供給される、MPEGストリームなどのストリームの画像データを一時的に記憶し、記憶している画像データを再生プログラム１９２に供給する。
【０３４２】
再生プログラム１９２は、再生監視プログラム１９３の制御の基に、再生速度を変更しながら、バッファ１９１に記憶されている画像データを復号し、表示部１１０に画像を表示させる。
【０３４３】
再生監視プログラム１９３は、バッファ１９１に記憶されている画像データの量を基に、再生プログラム１９２に再生の速度を指示する。
【０３４４】
図３１を参照して、サーバ１から供給されたストリームを基に、画像をリアルタイムに再生するクライアントプログラム１３１のより詳細な処理を説明する。クライアントプログラム１３１において、テレビジョン放送の番組のストリームを受信し、番組の画像を再生するとき、バッファ１９１に記憶される画像データの量を、なるべく少なく、かつ一定にし、リアルタイムに再生することが望ましい。
【０３４５】
例えば、WINDOWS（登録商標）などのようなマルチタスクOSにおいて、クライアントプログラム１３１の再生の処理中に、他のプログラムのタスクが実行されると、CPU１０１のリソースが他のプログラムの処理に使用されてしまい、クライアントプログラム１３１の再生の処理が中断してしまう場合がある。この場合、バッファ１９１に記憶されている画像データの量は、増加することになる。
【０３４６】
本発明に係るパーソナルコンピュータ２のクライアントプログラム１３１は、定期的にバッファ１９１に記憶されている画像データの量を監視し、画像データの量に基づいて、再生の速度を適切に変更することにより、バッファ１９１に記憶される画像データの量を、少なく、かつ一定に保つ。
【０３４７】
サーバ１から送信された、画像データを格納するパケットは、パーソナルコンピュータ２のネットワークインタフェースカード１１５で受信される。ネットワークインタフェースカード１１５は、受信したパケットから画像データを抽出し、バッファ１９１に供給する。
【０３４８】
バッファ１９１は、ネットワークインタフェースカード１１５から供給された画像データを記憶する。
【０３４９】
再生監視プログラム１９３は、１秒間に複数回、定期的に、バッファ１９１に対して、現在記憶されている画像データの量を問い合わせる。バッファ１９１は、再生監視プログラム１９３から画像データの量の問い合わせがあったとき、現在記憶している画像データの量を、再生監視プログラム１９３に通知する。
【０３５０】
再生監視プログラム１９３は、バッファ１９１が現在記憶している画像データの量を基に、再生プログラム１９２に再生速度の変更を要求する。
【０３５１】
例えば、バッファ１９１が現在記憶している画像データの量が、３秒の再生時間に対応する量を越えているとき、再生監視プログラム１９３は、1.05倍の速度で再生するように、再生プログラム１９２に再生速度の変更を要求する。1.05倍の速度としたのは、再生されている画像を視聴している使用者に違和感を与えないためである。
【０３５２】
また、バッファ１９１が現在記憶している画像データの量が、１秒の再生時間に対応する量未満であるとき、再生監視プログラム１９３は、1.00倍の速度で再生するように、再生プログラム１９２に再生速度の変更を要求する。
【０３５３】
1.05倍の速度に対応する画像データの量の閾値と、1.00倍の速度に対応する画像データの量の閾値とを異なる値としたのは、これらの閾値を同じ値とすると、1.00倍の速度の再生と1.05倍の速度の再生とが短い周期で交互に繰り返され、再生されている画像を視聴している使用者に違和感を与えてしまうからである。
【０３５４】
図３２は、クライアントプログラム１３１の、再生速度の変更の処理を説明するフローチャートである。
【０３５５】
ステップＳ１０１において、クライアントプログラム１３１の再生監視プログラム１９３は、図示せぬRTCなどから供給される時刻を基に、所定の時間が経過したか否かを判定し、所定の時間が経過していないと判定された場合、所定の時間が経過するまで、ステップＳ１０１に戻り、判定の処理を繰り返す。
【０３５６】
ステップＳ１０１において、所定の時間が経過したと判定された場合、ステップＳ１０２に進み、再生監視プログラム１９３は、再生プログラム１９２の現在の再生速度が1.05倍であるか否かを判定する。
【０３５７】
ステップＳ１０２において、再生プログラム１９２の現在の再生速度が1.05倍であると判定された場合、ステップＳ１０３に進み、再生監視プログラム１９３は、バッファ１９１に記憶している画像データのデータ量を問い合わせ、バッファ１９１から通知された画像データのデータ量を基に、遅延時間が１秒未満であるか否かを判定する。すなわち、再生監視プログラム１９３は、バッファ１９１が記憶している画像データのデータ量が、１秒の再生時間に対応する量未満であるか否かを判定する。
【０３５８】
ステップＳ１０３において、遅延時間が１秒未満であると判定された場合、バッファ１９１に記憶されている画像データのデータ量が適正であり、これ以上減らさないようにするため、ステップＳ１０４に進み、再生監視プログラム１９３は、再生プログラム１９２に、再生速度を1.00倍に設定させ、手続きは、ステップＳ１０１に戻り、処理を繰り返す。
【０３５９】
ステップＳ１０３において、遅延時間が１秒未満でないと判定された場合、バッファ１９１に記憶されている画像データのデータ量をより少なくするため、再生速度を1.05倍のままで、手続きは、ステップＳ１０１に戻り、処理を繰り返す。
【０３６０】
ステップＳ１０２において、再生プログラム１９２の現在の再生速度が1.05倍でないと判定された場合、ステップＳ１０５に進み、再生監視プログラム１９３は、バッファ１９１に記憶している画像データのデータ量を問い合わせ、バッファ１９１から通知された画像データのデータ量を基に、遅延時間が３秒を越えているか否かを判定する。すなわち、再生監視プログラム１９３は、バッファ１９１が記憶している画像データのデータ量が、３秒の再生時間に対応する量を越えているか否かを判定する。
【０３６１】
ステップＳ１０５において、遅延時間が３秒を越えていると判定された場合、バッファ１９１に記憶されている画像データのデータ量が多いので、ステップＳ１０６に進み、再生監視プログラム１９３は、再生プログラム１９２に、再生速度を1.05倍に設定させ、手続きは、ステップＳ１０１に戻り、処理を繰り返す。
【０３６２】
ステップＳ１０５において、遅延時間が３秒を越えていないと判定された場合、バッファ１９１に記憶されている画像データのデータ量が適正なので、再生速度を1.00倍速のままで、手続きは、ステップＳ１０１に戻り、処理を繰り返す。
【０３６３】
このように、クライアントプログラム１３１は、定期的にバッファ１９１に記憶されている画像データの量を監視し、画像データの量に基づいて、再生の速度を適切に変更することにより、バッファ１９１に記憶される画像データの量を、少なく、かつ一定に保つことができる。従って、クライアントプログラム１３１は、受信したストリームを基に、フレームを削除することなくリアルタイムに画像を再生することができる。
【０３６４】
なお、クライアントプログラム１３１は、より細かく、再生の速度を変更するようにしてもよい。例えば、クライアントプログラム１３１は、バッファ１９１に、0.5秒に対応する量の画像データが記憶されているとき、再生速度を1.01倍とし、バッファ１９１に、1.0秒に対応する量の画像データが記憶されているとき、再生速度を1.02倍とし、バッファ１９１に、1.5秒に対応する量の画像データが記憶されているとき、再生速度を1.03倍とするようにしてもよい。このようにすることで、バッファ１９１に記憶される画像データの量の変動をより少なくすることができる。
【０３６５】
また、クライアントプログラム１３１は、一定以上の画像データがバッファ１９１に、記録されたとき、画像データを消去すると共に、再生の速度を変更するようにしてもよい。
【０３６６】
なお、クライアントプログラム１３１は、バッファ１９１に記録されている画像データの量が所定の閾値より少ないとき、再生の速度を1.0倍より遅くするようにしてもよい。
【０３６７】
また、再生監視プログラム１９３は、バッファ１９１から通知されたデータ量を基に、次にバッファ１９１にデータ量を問い合わせるタイミングを変更するようにしてもよい。
【０３６８】
なお、再生監視プログラム１９３は、バッファ１９１から通知されたデータ量を閾値と比較して、再生の速度を指示すると説明したが、本発明は、閾値の使用により限定されるものではない。例えば、再生監視プログラム１９３は、所定の関数をデータ量に適用して、指示する再生の速度を算出するようにしてもよい。
【０３６９】
図３３は、本発明に係るコンテンツ提供システムの実施の第２の形態の構成を示すブロック図である。
【０３７０】
パーソナルコンピュータ３０１は、モニタ３０２に、アナログ信号またはデジタル信号である、画像の信号、または音声の信号を供給する。パーソナルコンピュータ３０１がモニタ３０２に供給する画像のアナログ信号は、例えば、NTSC(National Television System Committee)方式のコンポジット信号、またはRGB(Red,Green,Blue)などのコンポーネント信号とすることができる。また、パーソナルコンピュータ３０１がモニタ３０２に供給する画像のデジタル信号は、SDI(Serial Digital Interface)信号またはSMPTE(Society of Motion Picture and Television Engineers)259Mなどのコンポジットデジタルビデオ信号またはコンポーネントデジタルビデオ信号とすることができる。
【０３７１】
モニタ３０２は、パーソナルコンピュータ３０１から供給された画像の信号および音声の信号を基に、画像を表示し、音声を出力する。
【０３７２】
VCR３０３は、装着されているビデオカセットテープに画像および音声を記録すると共に、装着されているビデオカセットテープに記録されている画像および音声を読み出す。VCR３０３は、読み出した画像に対応するコンポジットビデオ信号をパーソナルコンピュータ３０１に供給すると共に、音声に対応する信号をパーソナルコンピュータ３０１に供給する。
【０３７３】
パーソナルコンピュータ３０１は、画像のデータ、または音声のデータなどのコンテンツを記録すると共に、放送されている番組を受信する。
【０３７４】
パーソナルコンピュータ３０１がモニタ３０２に供給する画像の信号は、パーソナルコンピュータ３０１が記録しているコンテンツに対応する画像の信号であるか、またはパーソナルコンピュータ３０１が受信した番組に対応する画像の信号である。
【０３７５】
パーソナルコンピュータ３０１は、VCR３０３などから供給された画像の信号および音声の信号を基に、例えば、MPEG方式の画像のデータ、または音声のデータを生成し、生成した画像のデータまたは音声のデータでなるコンテンツを記録する。パーソナルコンピュータ３０１は、例えば、テレビジョン放送局から送信された地上波または放送衛星から送信された電波を受信した、図示せぬアンテナから供給される信号を復号し、受信した番組に対応する画像のデータ、または音声のデータを生成する。
【０３７６】
パーソナルコンピュータ３０１は、記録しているコンテンツに対応する画像の信号をモニタ３０２に供給するとき、記録しているコンテンツを基に、例えば、アナログビデオ信号を生成して、生成したアナログビデオ信号をモニタ３０２に供給する。
【０３７７】
パーソナルコンピュータ３０１は、受信した番組に対応する、例えば、アナログビデオ信号をモニタ３０２に供給する。
【０３７８】
図３４は、パーソナルコンピュータ３０１の構成を示すブロック図である。CPU３２１は、各種アプリケーションプログラムや、基本的なOSを実際に実行する。ROM３２２は、一般的には、CPU３２１が使用するプログラムや演算用のパラメータのうちの基本的に固定のデータを格納する。RAM３２３は、CPU３２１の実行において使用するプログラムや、その実行において適宜変化するパラメータを格納する。これらはホストバス３２４により相互に接続されている。
【０３７９】
ホストバス３２４は、ブリッジ３２５を介して、PCIバスなどの外部バス３２６に接続されている。
【０３８０】
キーボード３２８は、CPU３２１に各種の指令を入力するとき、使用者により操作される。マウス３２９は、表示部３３０の画面上のポイントの指示や選択を行うとき、使用者により操作される。表示部３３０は、CRTまたは液晶表示装置などからなり、各種情報をテキストやイメージで表示する。HDD３３１およびFDD３３２は、それぞれハードディスクまたはフロッピー（登録商標）ディスクを駆動し、それらにCPU３２１によって実行するプログラムや情報を記録または再生させる。スピーカ３３３は、所定の音声を再生する。
【０３８１】
ドライブ３３４は、磁気ディスク３４１、光ディスク３４２、光磁気ディスク３４３、または半導体メモリ３４４が装着され、装着されている磁気ディスク３４１、光ディスク３４２、光磁気ディスク３４３、または半導体メモリ３４４に記録されているプログラムを読み出し、読み出したプログラムをHDD３３１またはRAM３２３に供給する。
【０３８２】
これらのキーボード３２８乃至ドライブ３３４は、インタフェース３２７に接続されており、インタフェース３２７は、外部バス３２６、ブリッジ３２５、およびホストバス３２４を介してCPU３２１に接続されている。
【０３８３】
画像処理ボード３３５は、CPU３２１の制御の基に、図示せぬアンテナから供給された信号を基に、番組に対応する所定の画像または音声のデータを生成し、外部バス３２６およびインタフェース３２７を介して、生成した画像または音声のデータをHDD３３１に出力する。
【０３８４】
画像処理ボード３３５は、CPU３２１の制御の基に、VCR３０３から供給された信号を基に、所定の画像または音声のデータを生成し、外部バス３２６およびインタフェース３２７を介して、生成した画像または音声のデータをHDD３３１に出力する。
【０３８５】
画像処理ボード３３５は、CPU３２１の制御の基に、図示せぬアンテナから供給された信号を基に、番組に対応する所定の画像または音声のアナログ信号を生成し、生成したアナログ信号をモニタ３０２に供給する。
【０３８６】
また、画像処理ボード３３５は、CPU３２１の制御の基に、外部バス３２６およびインタフェース３２７を介して、HDD３３１に記録されているコンテンツである画像のデータまたは音声のデータを取得し、画像のデータまたは音声のデータに対応する画像のアナログ信号または音声のアナログ信号を生成し、生成したアナログ信号をモニタ３０２に供給する。
【０３８７】
画像処理ボード３３５は、外部バス３２６、ブリッジ３２５、およびホストバス３２４を介してCPU３２１に接続されている。
【０３８８】
図３５は、コンポジットビデオ信号を入出力するときの、画像処理ボード３３５の構成を示すブロック図である。チューナ３５１は、CPU３２１の制御の基に、外部から供給されるテレビジョン放送の放送信号を取得し、複数のチャンネル分のテレビジョン放送の番組のうちの、指定されたチャンネルの番組を選択する。チューナ３５１は、選択したチャンネルの番組の画像および音声に対応するアナログ信号をA/D変換器３５２に供給する。
【０３８９】
A/D変換器３５２は、チューナ３５１から供給された、番組の画像および音声に対応するアナログ信号を、デジタル信号にアナログ／デジタル変換する。A/D変換器３５２は、番組の画像および音声に対応するデジタル信号をセレクタ３５３に供給する。
【０３９０】
APS(Analog Protection System)信号検出部３５４は、VCR３０３から供給されたアナログ信号であるコンポジットビデオ信号を取得し、コンポジットビデオ信号に含まれているAPS信号を検出する。APS信号は、コンテンツのコピーの防止を目的として、例えば、マクロビジョン社（米国）のコピープロテクションシステムによりコンポジットビデオ信号に挿入される信号である。APS信号検出部３５４は、コンポジットビデオ信号にAPS信号が含まれているとき、コンポジットビデオ信号にAPS信号が含まれていることを示す判定データをブリッジ３５７に供給し、コンポジットビデオ信号にAPS信号が含まれていないとき、コンポジットビデオ信号にAPS信号が含まれていないことを示す判定データをブリッジ３５７に供給する。
【０３９１】
APS信号検出部３５４は、VCR３０３から供給されたアナログ信号であるコンポジットビデオ信号をA/D変換器３５５に供給する。
【０３９２】
A/D変換器３５５は、APS信号検出部３５４から供給されたアナログ信号であるコンポジットビデオ信号を、デジタル信号にアナログ／デジタル変換し、デジタル信号をセレクタ３５３に供給する。
【０３９３】
セレクタ３５３は、CPU３２１の制御の基に、A/D変換器３５２から供給されたデジタル信号、およびA/D変換器３５５から供給されたデジタル信号のうち、いずれか一方を選択し、選択されたデジタル信号をエンコーダ３５６またはブリッジ３５７に供給する。
【０３９４】
セレクタ３５３は、テレビジョン放送の番組がHDD３３１に記録されるとき、A/D変換器３５２から供給されたデジタル信号を、エンコーダ３５６に供給する。セレクタ３５３は、テレビジョン放送の番組を表示部３３０およびスピーカ３３３に再生させるか、またはテレビジョン放送の番組に対応するアナログ信号をモニタ３０２に供給するとき、A/D変換器３５２から供給されたデジタル信号を、ブリッジ３５７に供給する。
【０３９５】
セレクタ３５３は、テレビジョン放送の番組がHDD３３１に記録させると共に、テレビジョン放送の番組を表示部３３０およびスピーカ３３３に再生させるか、またはテレビジョン放送の番組に対応するアナログ信号をモニタ３０２に供給するとき、A/D変換器３５２から供給されたデジタル信号を、エンコーダ３５６およびブリッジ３５７に同時に供給する。
【０３９６】
セレクタ３５３は、VCR３０３から供給されたアナログ信号に対応する画像データをHDD３３１に記録するとき、A/D変換器３５５から供給されたデジタル信号を、エンコーダ３５６に供給する。セレクタ３５３は、VCR３０３から供給されたアナログ信号に対応す画像を表示部３３０に再生させるか、またはVCR３０３から供給されたアナログ信号に対応するアナログ信号をモニタ３０２に供給するとき、A/D変換器３５５から供給されたデジタル信号を、ブリッジ３５７に供給する。
【０３９７】
セレクタ３５３は、VCR３０３から供給されたアナログ信号に対応する画像データをHDD３３１に記録すると共に、VCR３０３から供給されたアナログ信号に対応す画像を表示部３３０に再生させるか、またはVCR３０３から供給されたアナログ信号に対応するアナログ信号をモニタ３０２に供給するとき、A/D変換器３５５から供給されたデジタル信号を、エンコーダ３５６およびブリッジ３５７に同時に供給する。
【０３９８】
エンコーダ３５６は、セレクタ３５３から供給されたデジタル信号をMPEG等の所定の圧縮符号化方式により符号化し、得られた符号化データをブリッジ３５７に供給する。
【０３９９】
デコーダ３５８は、ブリッジ３５７を介して、HDD３３１に記録されている、MPEG等の所定の圧縮符号化方式により符号化されている画像および音声のデータが供給されたとき、符号化されている画像および音声のデータを復号する。デコーダ３５８は、復号して得られたデジタル信号をブリッジ３５７に供給する。
【０４００】
ブリッジ３５７は、テレビジョン放送の番組に対応する符号化データ、またはVCR３０３から供給されたコンポジットビデオ信号に対応する符号化データをHDD３３１に記録するとき、エンコーダ３５６から供給された符号化データを外部バス３２６を介して、HDD３３１に供給する。
【０４０１】
ブリッジ３５７は、テレビジョン放送の番組を表示部３３０およびスピーカ３３３に再生させるとき、セレクタ３５３から供給された画像のデジタル信号を、外部バス３２６およびインタフェース３２７を介して、表示部３３０に供給すると共に、音声のデジタル信号を、外部バス３２６およびインタフェース３２７を介して、スピーカ３３３に供給する。
【０４０２】
ブリッジ３５７は、HDD３３１に記録されている符号化データを再生させるとき、HDD３３１に記録されている符号化データをデコーダ３５８に供給する。ブリッジ３５７は、デコーダ３５８から供給された、画像のデジタル信号を、外部バス３２６およびインタフェース３２７を介して、表示部３３０に供給すると共に、音声のデジタル信号を、外部バス３２６およびインタフェース３２７を介して、スピーカ３３３に供給する。
【０４０３】
テレビジョン放送の番組を再生するとき、表示部３３０は、インタフェース３２７を介して供給されたデジタル信号または所定の方式に変換されたアナログ信号を基に、テレビジョン放送の番組の画像を表示する。
【０４０４】
テレビジョン放送の番組を再生するとき、スピーカ３３３は、インタフェース３２７を介して供給されたデジタル信号または所定の方式に変換されたアナログ信号を基に、テレビジョン放送の番組の音声を再生する。
【０４０５】
ブリッジ３５７は、モニタ３０２に画像を表示させるとき、セレクタ３５３から供給された画像のデジタル信号をD/A(Digital-to-Analog)変換器３５９に供給する。D/A変換器３５９は、ブリッジ３５７から供給されたデジタル信号を、コンポーネント信号からなるアナログ信号にデジタル／アナログ変換し、アナログ信号をエンコーダ３６０に供給する。
【０４０６】
エンコーダ３６０は、D/A変換器３５９から供給された、コンポーネント信号からなるアナログ信号を、コンポジットビデオ信号であるアナログ信号に変換して、コンポジットビデオ信号をモニタ３０２に供給する。
【０４０７】
図３６は、パーソナルコンピュータ３０１が実行するアプリケーションプログラムを説明する図である。録画再生プログラム３８１は、画像処理ボード３３５に、チューナ３５１で受信した所定のチャンネルの番組に対応する、MPEG方式の画像または音声の符号化データを生成させ、符号化データをコンテンツとして、HDD３３１に記録させる。
【０４０８】
録画再生プログラム３８１は、画像処理ボード３３５から供給されるデータを基に、VCR３０３から供給されたコンポジットビデオ信号にAPS信号が含まれているか否かを判定する。
【０４０９】
録画再生プログラム３８１は、VCR３０３から供給されたコンポジットビデオ信号にAPS信号が含まれていないと判定された場合、画像処理ボード３３５に、VCR３０３から供給されたコンポジットビデオ信号をMPEG方式の画像または音声の符号化データに変換させ、符号化データをコンテンツとして、HDD３３１に記録させる。
【０４１０】
録画再生プログラム３８１は、VCR３０３から供給されたコンポジットビデオ信号にAPS信号が含まれていると判定された場合、VCR３０３から供給されたコンポジットビデオ信号の記録を停止させる。
【０４１１】
また、録画再生プログラム３８１は、HDD３３１に記録されているコンテンツを、画像処理ボード３３５に、復号させて、圧縮されていない所定の画像または音声のデジタル信号を生成し、画像を表示部３３０に表示させ、音声をスピーカ３３３に再生させる。録画再生プログラム３８１は、HDD３３１に記録されているコンテンツを、画像処理ボード３３５に、復号させて、コンポジットビデオ信号を生成させ、コンポジットビデオ信号をモニタ３０２に供給させる。
【０４１２】
管理検索プログラム３８２は、HDD３３１に記録されているコンテンツの内容または録画された日付などの所定の情報を表示部３３０に表示させる。また、管理検索プログラム３８２は、所定のコンテンツの再生を録画再生プログラム３８１に指示する。管理検索プログラム３８２は、編集の対象となるコンテンツを選択し、その選択されたコンテンツの情報を編集プログラム３８３に供給する。管理検索プログラム３８２は、予約録画設定プログラム８４に予約録画の指示を行う。
【０４１３】
編集プログラム３８３は、HDD３３１に記録されているコンテンツを基に、選択されたコンテンツの所定の画像および音声を編集（所定のコンテンツに含まれている画像および音声をつなぎ合わせる）し、編集された画像または音声を再生する所定の形式のコンテンツを生成する。
【０４１４】
このコンテンツは、例えば、画像または音声のデジタルデータを有せず、選択されたコンテンツを特定する情報および利用する画像および音声を特定する情報から構成され、録画再生プログラム３８１で再生することができる。
【０４１５】
予約録画設定プログラム３８４は、設定に基づき、予約録画を実行させるコンテンツを生成する。このコンテンツは、設定（録画時間、および画質を決定する録画モード）に対応し、HDD３３１の記憶領域を予め確保する。
【０４１６】
予約監視プログラム３８５は、パーソナルコンピュータ３０１が動作しているとき（OSが動作しているとき）、常に動作し（いわゆる、常駐している）、予約録画設定プログラム３８４が生成した予約録画を実行させるコンテンツ、および、図示せぬRTC(Real Time Clock)から供給される時刻を基に、予約録画を実行する。また、予約監視プログラム３８５は、予約録画を実行させるコンテンツの設定を変更する。
【０４１７】
予約監視プログラム３８５は、所定の設定がなされ、録画再生プログラム３８１が実行されていないとき、予約録画を開始した場合、録画再生プログラム３８１を起動させる。
【０４１８】
図３７は、APS信号検出部３５４の構成を示すブロック図である。信号検出部３９１は、例えば、フィールド毎に、入力されたコンポジットビデオ信号のブランキングに含まれている、通常の黒レベルまたは白レベルより振幅の大きい振幅の信号からなるAPS信号を検出する。信号検出部３９１は、所定のフィールドでAPS信号を検出したとき、そのフィールドでAPS信号を検出した旨を示す信号を評価値生成部３９２に供給する。信号検出部３９１は、所定のフィールドでAPS信号を検出しないとき、そのフィールドでAPS信号を検出しない旨を示す信号を評価値生成部３９２に供給する。
【０４１９】
評価値生成部３９２は、信号検出部３９１から供給された信号を基に、０乃至１００のいずれかの値を有する評価値Ａを生成する。
【０４２０】
例えば、評価値生成部３９２は、信号検出部３９１から、１０フィールドのうち、連続する５フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、８０の値を有する評価値Ａを生成する。評価値生成部３９２は、信号検出部３９１から、１０フィールドのうち、連続していない５フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、７０の値を有する評価値Ａを生成する。評価値生成部３９２は、信号検出部３９１から、１０フィールドのうち、連続する４フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、６０の値を有する評価値Ａを生成する。評価値生成部３９２は、信号検出部３９１から、１０フィールドのうち、連続していない４フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、５０の値を有する評価値Ａを生成する。
【０４２１】
評価値生成部３９２は、生成した評価値Ａを判定部３９５に供給する。
【０４２２】
信号検出部３９３は、信号検出部３９１と異なる方式で、APS信号を検出する。例えば、信号検出部３９３は、フィールド毎に、入力されたコンポジットビデオ信号のカラーバースト信号が、通常のカラーバースト信号の位相と異なる位相に変調されてなるAPS信号を検出する。信号検出部３９３は、所定のフィールドでAPS信号を検出したとき、そのフィールドでAPS信号を検出した旨を示す信号を評価値生成部３９４に供給する。信号検出部３９３は、所定のフィールドでAPS信号を検出しないとき、そのフィールドでAPS信号を検出しない旨を示す信号を評価値生成部３９４に供給する。
【０４２３】
評価値生成部３９４は、信号検出部３９３から供給された信号を基に、０乃至１００のいずれかの値を有する評価値Ｂを生成する。
【０４２４】
例えば、評価値生成部３９４は、信号検出部３９３から、連続する１０フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、８０の値を有する評価値Ｂを生成する。評価値生成部３９４は、信号検出部３９３から、連続する９フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、７０の値を有する評価値Ｂを生成する。評価値生成部３９４は、信号検出部３９３から、連続する８フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、６０の値を有する評価値Ｂを生成する。評価値生成部３９４は、信号検出部３９３から、連続する７フィールドについて、APS信号を検出した旨を示す信号が供給されたとき、５０の値を有する評価値Ｂを生成する。
【０４２５】
評価値生成部３９４は、生成した評価値Ｂを判定部３９５に供給する。
【０４２６】
判定部３９５は、評価値生成部３９２から供給された評価値Ａ、および評価値生成部３９４から供給された評価値Ｂを基に、コンポジットビデオ信号にAPS信号が含まれているか否かを判定し、判定結果を示す判定データを出力する。
【０４２７】
例えば、判定部３９５は、評価値生成部３９２から供給された評価値Ａ、および評価値生成部３９４から供給された評価値Ｂのうち、いずれかの評価値が８０以上であるとき、コンポジットビデオ信号にAPS信号が含まれていると判定し、コンポジットビデオ信号にAPS信号が含まれている旨を示す判定データを出力する。判定部３９５は、評価値生成部３９２から供給された評価値Ａ、および評価値生成部３９４から供給された評価値Ｂのうち、いずれか一方の評価値が６０以上であり、他の評価値が５０以上であるとき、コンポジットビデオ信号にAPS信号が含まれていると判定し、コンポジットビデオ信号にAPS信号が含まれている旨を示す判定データを出力する。
【０４２８】
判定部３９５は、評価値生成部３９２から供給された評価値Ａ、および評価値生成部３９４から供給された評価値Ｂのうち、いずれか一方の評価値が７０以上であり、他の評価値が４０以上であるとき、コンポジットビデオ信号にAPS信号が含まれていると判定し、コンポジットビデオ信号にAPS信号が含まれている旨を示す判定データを出力する。
【０４２９】
図３８は、APS信号検出部３５４による、APS信号の検出の処理を説明するフローチャートである。
【０４３０】
ステップＳ３０１において、信号検出部３９１は、フィールド毎に、ブランキングのレベルを基に、APS信号を検出し、検出した結果を評価値生成部３９２に供給する。ステップＳ３０２において、評価値生成部３９２は、信号検出部３９１から供給された検出結果を基に、評価値Ａを生成する。評価値生成部３９２は、例えば、APS信号が検出された連続するフィールドの数、またはAPS信号が検出されたフィールドの割合などを基に、評価値Ａを生成する。
【０４３１】
ステップＳ３０３において、信号検出部３９３は、フィールド毎に、カラーバースト信号の位相を基に、APS信号を検出し、検出した結果を評価値生成部３９４に供給する。ステップＳ３０４において、評価値生成部３９４は、信号検出部３９３から供給された検出結果を基に、評価値Ｂを生成する。評価値生成部３９４は、例えば、APS信号が検出された連続するフィールドの数などを基に、評価値Ｂを生成する。
【０４３２】
ステップＳ３０５において、判定部３９５は、評価値生成部３９２から供給された評価値Ａ、および評価値生成部３９４から供給された評価値Ｂを基に、コンポジットビデオ信号にAPS信号が含まれているか否かを判定し、判定結果を示す判定データを出力し、処理は終了する。
【０４３３】
図３９は、ステップＳ３０５の処理に対応する、判定部３９５による、判定の処理の例を説明するフローチャートである。ステップＳ３１１において、判定部３９５は、評価値Ａが８０を越えているか否かを判定し、評価値Ａが８０を越えていると判定された場合、ステップＳ３１２に進み、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４３４】
ステップＳ３１１において、評価値Ａが８０を越えていないと判定された場合、ステップＳ３１３に進み、判定部３９５は、評価値Ｂが８０を越えているか否かを判定する。ステップＳ３１３において、評価値Ｂが８０を越えていると判定された場合、ステップＳ３１２に進み、判定部３９５は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４３５】
ステップＳ３１３において、評価値Ｂが８０を越えていないと判定された場合、ステップＳ３１４に進み、判定部３９５は、評価値Ａが５０を越え、かつ、評価値Ｂが６０を越えているか否かを判定する。ステップＳ３１４において、評価値Ａが５０を越え、かつ、評価値Ｂが６０を越えていると判定された場合、ステップＳ３１２に進み、判定部３９５は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４３６】
ステップＳ３１４において、評価値Ａが５０以下である、または、評価値Ｂが６０以下であると判定された場合、ステップＳ３１５に進み、判定部３９５は、評価値Ａが６０を越え、かつ、評価値Ｂが５０を越えているか否かを判定する。ステップＳ３１５において、評価値Ａが６０を越え、かつ、評価値Ｂが５０を越えていると判定された場合、ステップＳ３１２に進み、判定部３９５は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４３７】
ステップＳ３１５において、評価値Ａが６０以下である、または、評価値Ｂが５０以下であると判定された場合、ステップＳ３１６に進み、判定部３９５は、評価値Ａが４０を越え、かつ、評価値Ｂが７０を越えているか否かを判定する。ステップＳ３１６において、評価値Ａが４０を越え、かつ、評価値Ｂが７０を越えていると判定された場合、ステップＳ３１２に進み、判定部３９５は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４３８】
ステップＳ３１６において、評価値Ａが４０以下である、または、評価値Ｂが７０以下であると判定された場合、ステップＳ３１７に進み、判定部３９５は、評価値Ａが７０を越え、かつ、評価値Ｂが４０を越えているか否かを判定する。ステップＳ３１７において、評価値Ａが７０を越え、かつ、評価値Ｂが４０を越えていると判定された場合、ステップＳ３１２に進み、判定部３９５は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４３９】
ステップＳ３１７において、評価値Ａが７０以下である、または、評価値Ｂが４０以下であると判定された場合、ステップＳ３１８に進み、判定部３９５は、APS信号を検出しない旨の判定データを出力し、処理は終了する。
【０４４０】
このように、APS信号検出部３５４は、２つの異なる信号検出方法のそれぞれの評価値を基に、判定データを検出するので、１つの信号検出方法を基に検出するときに比較して、より正確に、APS信号の検出をすることができる。
【０４４１】
図４０は、APS信号検出部３５４が、APS信号の３種類以上のそれぞれ異なる検出に対応する３つ以上の評価値を生成するときの、APS信号の検出の判定の処理の他の例を説明するフローチャートである。
【０４４２】
ステップＳ３２１において、APS信号検出部３５４は、１つの評価値が８０を越えているか否かを判定し、１つの評価値が８０を越えていると判定された場合、ステップＳ３２２に進み、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４４３】
ステップＳ３２１において、１つの評価値が８０を越えていないと判定された場合、ステップＳ３２３に進み、APS信号検出部３５４は、全ての評価値が５０を越えて、かつ、１つの評価値が６０を越えているか否かを判定する。ステップＳ３２３において、全ての評価値が５０を越えて、かつ、１つの評価値が６０を越えていると判定された場合、ステップＳ３２２に進み、APS信号検出部３５４は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４４４】
ステップＳ３２３において、いずれかの評価値が５０以下であるか、または、全ての評価値が６０以下であると判定された場合、ステップＳ３２４に進み、APS信号検出部３５４は、過半数の評価値が４０を越えて、かつ、１つの評価値が７０を越えているか否かを判定する。ステップＳ３２４において、過半数の評価値が４０を越えて、かつ、１つの評価値が７０を越えていると判定された場合、ステップＳ３２２に進み、APS信号検出部３５４は、APS信号を検出した旨の判定データを出力し、処理は終了する。
【０４４５】
ステップＳ３２４において、過半数の評価値が４０以下であるか、または、全ての評価値が７０以下であると判定された場合、ステップＳ３２５に進み、APS信号検出部３５４は、APS信号を検出しない旨の判定データを出力し、処理は終了する。
【０４４６】
このように、APS信号検出部３５４は、APS信号の３種類以上のそれぞれ異なる検出に対応する３つ以上の評価値を基に、APS信号を検出したか否かを判定することができる。この場合において、APS信号検出部３５４は、２つの異なる信号検出方法のそれぞれの評価値を基に、判定する場合に比較して、より正確に、APS信号を検出したか否かを判定することができる。
【０４４７】
なお、図３９または図４０のフローチャートに示す判定の処理において、評価値と比較される閾値は、８０，７０，６０，５０，または４０に限定されるものではなく、各閾値の大小関係を満たした上で、適宜、その値を大きくするか、または小さくすることができる。
【０４４８】
また、評価値を生成するためのAPS信号の検出方法は、いずれの方法でもよく、本発明は、評価値を生成するためのAPS信号の検出方法に限定されるものではない。
【０４４９】
次に、録画予約を開始したとき、録画再生プログラム３８１を起動する処理について説明する。
【０４５０】
図４１は、予約録画設定プログラム３８４が表示部３３０に表示させるウィンドウの例を示す図である。予約録画設定プログラム３８４が表示するウィンドウの”設定”と名前が付されたメニューがクリックされたとき、予約録画設定プログラム３８４は、録画時に録画再生プログラムを起動するコマンドを表示する。
【０４５１】
予約録画設定プログラム３８４は、録画時に録画再生プログラムを起動するコマンドがチェックされているとき、予約監視プログラム３８５の起動フラグに、録画を開始したとき、録画再生プログラム３８１を起動させる旨を示す値を設定する。
【０４５２】
予約録画設定プログラム３８４は、録画時に録画再生プログラムを起動するコマンドがチェックされていないとき、予約監視プログラム３８５の起動フラグに、録画を開始したとき、録画再生プログラム３８１を起動させない旨を示す値を設定する。
【０４５３】
図４１に示すように、録画時に録画再生プログラムを起動するコマンドがチェックされていないとき、起動フラグに、録画再生プログラムを起動させない旨を示す値が設定されているので、予約監視プログラム３８５は、予約録画を開始しても、録画再生プログラム３８１を起動しない。
【０４５４】
一方、図４２に示すように、録画時に録画再生プログラムを起動するコマンドがチェックされているとき、起動フラグに、録画再生プログラムを起動させる旨を示す値が設定されているので、予約監視プログラム３８５は、予約録画を開始したとき、録画再生プログラム３８１が実行されていない場合、録画再生プログラム３８１を起動する。
【０４５５】
図４３は、予約監視プログラム３８５による、予約録画の開始の処理を説明するフローチャートである。ステップＳ３４１において、予約監視プログラム３８５は、図示せぬRTCなどから供給される日付および時刻を基に、録画の開始が予約された日時になったか否かを判定し、録画の開始が予約された日時になっていないと判定された場合、ステップＳ３４１に戻り、録画の開始が予約された日時になるまで、判定の処理を繰り返す。
【０４５６】
ステップＳ３４１において、録画の開始が予約された日時になったと判定された場合、ステップＳ３４２に進み、予約監視プログラム３８５は、録画を開始する。
【０４５７】
ステップＳ３４３において、予約監視プログラム３８５は、起動フラグの値を読み取り、録画再生プログラム３８１を起動するか否かの設定を取得する。ステップＳ３４４において、予約監視プログラム３８５は、録画再生プログラム３８１を起動する旨の設定がなされているか否かを判定し、録画再生プログラム３８１を起動する旨の設定がなされていると判定された場合、ステップＳ３４５に進み、録画予約プログラム３８１が既に起動されているか否かを判定する。
【０４５８】
ステップＳ３４５において、録画予約プログラム３８１が起動されていないと判定された場合、予約監視プログラム３８５は、録画再生プログラム３８１を起動し、処理は終了する。
【０４５９】
ステップＳ３４５において、録画予約プログラム３８１が既に起動されていると判定された場合、録画予約プログラム３８１を起動する処理を行う必要がないので、ステップＳ３４６の処理をスキップして、処理は終了する。
【０４６０】
ステップＳ３４４において、録画再生プログラム３８１を起動しない旨の設定がなされていると判定された場合、録画予約プログラム３８１を起動する処理を行う必要がないので、ステップＳ３４５およびステップＳ３４６の処理をスキップして、処理は終了する。
【０４６１】
このように、予約監視プログラム３８５は、起動フラグに録画再生プログラム３８１を起動する旨の設定がなされているとき、録画再生プログラム３８１を自動的に起動させることができる。このようにすることで、使用者は、面倒な操作をすることなく、予約した番組の録画が実行されているか否か、および録画予約した番組の内容を迅速に知ることができる。
【０４６２】
なお、予約監視プログラム３８５は、例えば、いわゆるFM放送などの音声のみの番組を予約録音し、予約録画を開始したとき、録画再生プログラム３８１を自動的に起動させて、録画再生プログラム３８１に音声のみを出力させるようにしてもよい。
【０４６３】
次に、設定により、モニタ３０２に画面または音声に関係する情報を表示するか、または情報を表示しないかを切り換える処理について説明する。
【０４６４】
図４４に示すように、パーソナルコンピュータ３０１が実行する録画再生プログラム３８１は、画像処理ボード３３５を制御し、記録しているコンテンツまたは受信している番組に対応するコンポジットビデオ信号をモニタ３０２に供給させる。モニタ３０２は、パーソナルコンピュータ２から供給されたコンポジットビデオ信号を基に、パーソナルコンピュータ３０１に記録されているコンテンツまたはパーソナルコンピュータ３０１が受信している番組に対応する画像を表示する。
【０４６５】
録画再生プログラム３８１が表示する設定メニューのビデオ出力に情報を表示するコマンドがチェックされたとき、録画再生プログラム３８１は、画像処理ボード３３５に、記録しているコンテンツまたは受信している番組に対応する画像と共に、表示部３３０に表示している画面または音声に関係する情報を表示させるコンポジットビデオ信号を生成させる。画像処理ボード３３５は、記録しているコンテンツまたは受信している番組に対応する画像と共に、表示部３３０に表示している画面または音声に関係する情報を表示させるコンポジットビデオ信号を、モニタ３０２に供給する。
【０４６６】
図４５に示すように、モニタ３０２は、パーソナルコンピュータ２から供給されたコンポジットビデオ信号を基に、パーソナルコンピュータ３０１に記録されているコンテンツまたはパーソナルコンピュータ３０１が受信している番組に対応する画像と共に、表示部３３０に表示している画面または音声に関係する情報と同様の情報を表示する。
【０４６７】
録画再生プログラム３８１が表示する設定メニューのビデオ出力に情報を表示するコマンドがチェックされていないとき、録画再生プログラム３８１は、画像処理ボード３３５に、記録しているコンテンツまたは受信している番組に対応する画像のみを表示させるコンポジットビデオ信号を生成させる。画像処理ボード３３５は、記録しているコンテンツまたは受信している番組に対応する画像のみを表示させるコンポジットビデオ信号を、モニタ３０２に供給する。
【０４６８】
図４６に示すように、モニタ３０２は、パーソナルコンピュータ２から供給されたコンポジットビデオ信号を基に、パーソナルコンピュータ３０１に記録されているコンテンツまたはパーソナルコンピュータ３０１が受信している番組に対応する画像のみを表示する。
【０４６９】
ビデオ出力に情報を表示するコマンドがチェックされているか否かに関わらず、録画再生プログラム３８１は、パーソナルコンピュータ３０１の表示部３３０に、画面または音声に関係する情報を表示させる。
【０４７０】
図４７は、録画再生プログラム３８１による、情報の表示の処理を説明するフローチャートである。
【０４７１】
ステップＳ３６１において、録画再生プログラム３８１は、表示部３３０に、画面または音声に関係する情報を表示させる。ステップＳ３６２において、録画再生プログラム３８１は、ビデオ出力に情報を表示するコマンドの設定から、コンポジットビデオ信号の設定を取得する。
【０４７２】
ステップＳ３６３において、録画再生プログラム３８１は、外部のモニタである表示部３３０に、画面または音声に関係する情報を表示させるか否かを判定し、表示部３３０に、画面または音声に関係する情報を表示させると判定された場合、ステップＳ３６４に進み、画像処理ボード３３５に、画面または音声に関係する情報に対応するデータを供給し、画像処理ボード３３５に、コンテンツまたは番組と共に、画面または音声に関係する情報を表示させるコンポジットビデオ信号を出力させ、処理は終了する。
【０４７３】
ステップＳ３６３において、画面または音声に関係する情報を表示させないと判定された場合、ステップＳ３６５に進み、録画再生プログラム３８１は、コンテンツまたは番組のみを表示させるコンポジットビデオ信号を出力させ、処理は終了する。
【０４７４】
このように、録画再生プログラム３８１は、表示部３３０に、画面または音声に関係する情報を表示させると共に、設定に対応して、外部のモニタであるモニタ３０２に、コンテンツまたは番組と共に、画面または音声に関係する情報を表示させるか、または、コンテンツまたは番組のみを表示させるかを切り換えることができる。
【０４７５】
このようにすることで、他の機器との接続をその都度変更することなく、例えば、パーソナルコンピュータ３０１が出力しているコンポジットビデオ信号を分配して、分配されたコンポジットビデオ信号を基に、画像を録画するとき、パーソナルコンピュータ３０１を操作しても、録画している画像に、画面または音声に関係する情報が含まれないようにすることができる。
【０４７６】
次に、パーソナルコンピュータ３０１の、複数の使用者のそれぞれに対応するセッションを切り換える処理について説明する。
【０４７７】
図４８は、セッションの切換を説明する図である。パーソナルコンピュータ３０１のCPU３２１が実行する基本プログラムであるオペレーティングシステム４０１は、アプリケーションプログラムの実行、使用者のログイン、またはパーソナルコンピュータ３０１のハードウェア若しくはプログラムなどからなるリソースの使用の管理などの処理を実行する。
【０４７８】
第１の使用者がログインしたとき、オペレーティングシステム４０１は、第１の使用者に対応するプログラムの設定（いわゆる、環境設定）に基づく処理を、セッションＡとして実行する。
【０４７９】
第１の使用者がログインしたまま、さらに第２の使用者がログインしたとき、オペレーティングシステム４０１は、第２の使用者に対応するプログラムの設定に基づく処理を、セッションＢとして実行する。
【０４８０】
同様に、所定の人数の使用者がログインしたまま、さらに次の使用者がログインしたとき、オペレーティングシステム４０１は、次の使用者に対応するプログラムの設定に基づく処理を、次のセッション（例えば、セッションＮ）として実行する。
【０４８１】
オペレーティングシステム４０１は、複数の使用者が同時にログインしているとき、複数の使用者のうちの１人の使用者がパーソナルコンピュータ３０１を使用する場合、複数のセッションを切り換えて、パーソナルコンピュータ３０１を使用しようとする使用者に対応するセッションを実行する。
【０４８２】
このような機能は、例えば、マイクロソフト社のオペレーティングシステムであるWindows（登録商標）XPにおいて、Fast User Switchingとして実現されている。
【０４８３】
図４９乃至図５２を参照して、このようなセッションの切り換えにおける、本発明に係るパーソナルコンピュータ３０１のリソースの使用の管理の処理を説明する。
【０４８４】
図４９は、グループを説明する図である。図４９に示すグループには、モジュール４１１、モジュール４１２、モジュール４１３、およびモジュール４１４が属している。モジュール４１１、モジュール４１２、モジュール４１３、およびモジュール４１４のそれぞれは、１つのリソースに対応し、例えば、１つのハードウェアまたは１つのソフトウェアに対応する。
【０４８５】
より具体的に、例示すれば、モジュール４１１は、録画再生プログラム３８１に対応し、モジュール４１２は、予約監視プログラム３８５に対応し、モジュール４１３は、画像処理ボード３３５に対応し、モジュール４１４は、予約録画設定プログラム３８４に対応する。
【０４８６】
図５０に示すように、セッションＡにおいて、モジュール４１１が起動されているとき、さらに、セッションＡにおいて、モジュール４１２、モジュール４１３、およびモジュール４１４は、起動されるか、または使用が許可される。
【０４８７】
一方、図５１に示すように、セッションＡにおいて、モジュール４１１が起動されているとき、モジュール４１１と同一のグループに属するモジュール４１２は、セッションＢにおいて、起動が要求されても、起動を許可しない。セッションＡにおいて、モジュール４１１が起動されているとき、セッションＢにおいて、モジュール４１２の起動が要求された場合、モジュール４１２は、図５２に示すように、起動できない旨を示すダイアログボックスを表示部３３０に表示させる。
【０４８８】
図５３は、モジュール４１１と同一のグループαに属するモジュール４１２の起動の処理を説明する図である。グループαに属するモジュール４１１は、グループαを示すグループ識別データ４２１を記憶している。グループαに属するモジュール４１２は、グループαを示すグループ識別データ４２２を記憶している。
【０４８９】
グループαに属するモジュール４１１は、セッションＡにおいて、起動されたとき、内部に記憶しているグループ識別データ４２１を、オペレーティングシステム４０１に供給する。オペレーティングシステム４０１は、モジュール４１１から供給されたグループ識別データ４２１を基に、セッションＡとグループαとの対応を示す実行モジュールグループ識別データ４２３を生成する。
【０４９０】
モジュール４１２は、起動が要求されたとき、オペレーティングシステム４０１に、実行モジュールグループ識別データ４２３を要求する。
【０４９１】
オペレーティングシステム４０１は、モジュール４１２の要求に対応して、実行モジュールグループ識別データ４２３をモジュール４１２に供給する。
【０４９２】
モジュール４１２は、オペレーティングシステム４０１から供給された実行モジュールグループ識別データ４２３を基に、他のセッションにおいて、モジュール４１２が属するグループのモジュールが起動または使用されているか否かを判定する。
【０４９３】
モジュール４１２は、他のセッションにおいて、モジュール４１２が属するグループのモジュールが起動または使用されていないと判定された場合、起動の処理を継続し、他のセッションにおいて、モジュール４１２が属するグループのモジュールが起動または使用されていると判定された場合、起動を停止する。
【０４９４】
例えば、モジュール４１２は、セッションＡにおいて、モジュール４１２が属するグループαのモジュール４１１が起動または使用されていると判定された場合、起動を停止する。
【０４９５】
図５４は、モジュール４１２の起動の処理を説明するフローチャートである。ステップＳ３８１において、モジュール４１２は、オペレーティングシステム４０１から実行モジュールグループ識別データ４２３を取得する。
【０４９６】
ステップＳ３８２において、モジュール４１２は、実行モジュールグループ識別データ４２３および自分自身が記憶しているグループ識別データ４２２を基に、他のセッションにおいて、モジュー４１２が属するグループのモジュールが実行されているか否かを判定し、他のセッションにおいて、モジュール４１２が属するグループのモジュールが実行されていないと判定された場合、ステップＳ３８３に進み、モジュー４１２の起動の処理を継続する。
【０４９７】
ステップＳ３８４において、モジュー４１２は、オペレーティングシステム４０１に、モジュール４１２が属するグループを示す、グループ識別データ４２２をオペレーティングシステム４０１に供給し、処理は終了する。オペレーティングシステム４０１は、グループ識別データ４２２が供給されたとき、モジュール４１２が起動されたセッションとモジュール４１２が属するグループとの対応を示す実行モジュールグループ認識データ４２３を生成し、記憶する。
【０４９８】
ステップＳ３８２において、他のセッションにおいて、モジュール４１２が属するグループのモジュールが実行されていると判定された場合、ステップＳ３８５に進み、モジュール４１２は、起動の処理を停止し、処理は終了する。
【０４９９】
なお、モジュール４１２が、他のセッションにおいて、モジュール４１２が属するグループのモジュールが実行されているか否かを判定し、起動の処理を継続するかまたは停止すると説明したが、オペレーティングシステム４０１が、他のセッションにおいて、モジュール４１２が属するグループのモジュールが実行されているか否かを判定し、モジュール４１２の起動の処理を継続するかまたは停止するようにしてもよい。
【０５００】
図５５は、オペレーティングシステム４０１による、起動されているモジュールのグループの通知の処理を説明するフローチャートである。
【０５０１】
ステップＳ３９１において、オペレーティングシステム４０１は、モジュール４１２が起動しようとされているか否かを判定し、モジュール４１２が起動しようとされていないと判定された場合、ステップＳ３９１に戻り、モジュール４１２が起動しようとされるまで判定の処理を繰り返す。
【０５０２】
ステップＳ３９１において、モジュール４１２が起動しようとされていると判定された場合、ステップＳ３９２に進み、オペレーティングシステム４０１は、起動しようとするモジュール４１２に、実行モジュールグループ識別データ４２３を供給する。
【０５０３】
ステップＳ３９３において、オペレーティングシステム４０１は、モジュール４１２から、グループ識別データ４２２が供給されたか否かを判定し、グループ識別データ４２２が供給されたと判定された場合、ステップＳ３９４に進み、グループ識別データ４２２を基に、記憶している実行モジュールグループ識別データ４２３に、モジュール４１２が起動されたセッションと、モジュール４１２が属するグループとの対応を記憶し、処理は終了する。
【０５０４】
ステップＳ３９３において、グループ識別データ４２２が供給されていないと判定された場合、起動しようとするモジュール４１２がグループに属していないか、またはモジュール４１２の起動が停止されたので、モジュール４１２のセッションとグループとの対応を記憶しないで、処理は終了する。
【０５０５】
このように、１つのグループに属するモジュールは、１つのセッションのみで起動され、１つのグループに属するモジュールの、複数のセッションに跨る起動または使用が防止される。このようにすることで、複数のセッションが実行されていても、所定のリソースを必要とする、例えば、予約録画の実行などの処理が確実に実行されるようになる。グループを単位として、セッション毎に排他的に占有されるようになるので、特に、複数のモジュールを必要とする処理が、確実に実行されるようになる。
【０５０６】
なお、本発明において、ネットワーク３は、有線を伝送媒体としたネットワークに限定されるものではなく、無線を伝送媒体とするネットワークでも良い。いわゆる無線ＬＡＮ、例えば２．４ＧＨｚ帯の電波を用いるIEEE802.11b規格や、５ＧＨｚ帯のIEEE802.11a規格などを用いてシステムを構成できることは言うまでもない。
【０５０７】
また、本発明に係るコンテンツ提供システムは、画像および音声からなるコンテンツに限定されず、音声のみからなるコンテンツを取り扱うようにしてもよく、さらに、文字、プログラム、または数値データなどの情報を取り扱えようにしてもよいことは、勿論である。
【０５０８】
なお、コンテンツの提供を受けるのは、クライアントとしてのパーソナルコンピュータ２であると説明したが、クライアントは、パーソナルコンピュータ２に限らず、PDA(Personal Digital Assistant)、若しくは携帯電話機などの端末装置、または据え置き型のVCR、DVD(Digital Versatile Disc)記録装置、若しくはハードディスクレコーダなどの記録再生装置などでもよい。
【０５０９】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０５１０】
この記録媒体は、図２、図５、または図３４に示すように、コンピュータとは別に、使用者にプログラムを提供するために配布される、プログラムが記録されている磁気ディスク４１、磁気ディスク１２１、若しくは磁気ディスク３４１（フロッピー（登録商標）ディスクを含む）、光ディスク４２、光ディスク１２２、若しくは光ディスク３４２（CD-ROM(Compact Disc-Read Only Memory)、ＤＶＤ(Digital Versatile Disc)を含む）、光磁気ディスク４３、光磁気ディスク１２３、若しくは光磁気ディスク３４３（ＭＤ(Mini-Disc)を含む）、若しくは半導体メモリ４４、半導体メモリ１２４、若しくは半導体メモリ３４４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態で使用者に提供される、プログラムが記録されているROM２２、ROM１０２、若しくはROM３２２や、HDD３１、HDD１１１、若しくはHDD３３１などで構成される。
【０５１１】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０５１２】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０５１３】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０５１４】
【発明の効果】
本発明の情報提供システムによれば、情報処理装置が、情報提供装置に接続する前に、情報提供装置の機能を特定し、所望するサービスを提供できる情報提供装置を選択することができるようになる。
【０５１６】
本発明の情報処理装置および方法、並びにプログラムによれば、情報提供装置に接続する前に、情報提供装置の機能を特定し、所望するサービスを提供できる情報提供装置を選択することができるようになる。
【図面の簡単な説明】
【図１】コンテンツ提供システムの実施の第１の形態の構成を示す図である。
【図２】サーバ１の構成を示すブロック図である。
【図３】画像処理ボード３５の構成を示すブロック図である。
【図４】サーバ１が実行するアプリケーションプログラムを説明する図である。
【図５】パーソナルコンピュータ２の構成を示すブロック図である。
【図６】パーソナルコンピュータ２が実行するプログラムを説明する図である。
【図７】ダイアログボックスの例を示す図である。
【図８】ダイアログボックスの例を示す図である。
【図９】クライアントプログラム１３１が、表示部１１０に表示させるウィンドウの例を示す図である。
【図１０】ダイアログボックスの例を示す図である。
【図１１】クライアントプログラム１３１が実行する、サーバ１との接続の処理を説明する図である。
【図１２】クライアントプログラム１３１が実行する、サーバ１との接続の処理を説明する図である。
【図１３】クライアントプログラム１３１が、表示部１１０に表示させるウィンドウの例を示す図である。
【図１４】接続データの記憶の処理を説明するフローチャートである。
【図１５】接続の処理を説明するフローチャートである。
【図１６】チャットプログラム１３２の起動の処理を説明する図である。
【図１７】チャットプログラム１３２の起動の処理を説明する図である。
【図１８】チャットプログラム１３２の起動の処理を説明する図である。
【図１９】チャットプログラム１３２の起動の処理を説明する図である。
【図２０】チャットプログラム１３２の起動の処理を説明する図である。
【図２１】チャットプログラム１３２の起動の処理を説明する図である。
【図２２】チャットプログラム１３２の起動要求の処理を説明するフローチャートである。
【図２３】接続の処理を説明するフローチャートである。
【図２４】優先順位のデータの例を示す図である。
【図２５】チャンネルの変更の処理を説明するフローチャートである。
【図２６】優先順位の変更の処理を説明するフローチャートである。
【図２７】バージョンに対応する機能に基づいて、サーバ１を選択する処理を説明する図である。
【図２８】機能データ１８１の例を示す図である。
【図２９】画像データの送受信の処理を説明するフローチャートである。
【図３０】クライアントプログラム１３１の構成を説明するブロック図である。
【図３１】クライアントプログラム１３１のより詳細な処理を説明する図である。
【図３２】再生速度の変更の処理を説明するフローチャートである。
【図３３】コンテンツ提供システムの実施の第２の形態の構成を示すブロック図である。
【図３４】パーソナルコンピュータ３０１の構成を示すブロック図である。
【図３５】画像処理ボード３３５の構成を示すブロック図である。
【図３６】パーソナルコンピュータ３０１が実行するアプリケーションプログラムを説明する図である。
【図３７】  APS信号検出部３５４の構成を示すブロック図である。
【図３８】  APS信号の検出の処理を説明するフローチャートである。
【図３９】判定の処理の例を説明するフローチャートである。
【図４０】判定の処理の他の例を説明するフローチャートである。
【図４１】予約録画設定プログラム３８４が表示部３３０に表示させるウィンドウの例を示す図である。
【図４２】録画再生プログラム３８１の起動の処理を説明する図である。
【図４３】予約録画の開始の処理を説明するフローチャートである。
【図４４】情報の表示の処理を説明する図である。
【図４５】情報の表示の処理を説明する図である。
【図４６】情報の表示の処理を説明する図である。
【図４７】情報の表示の処理を説明するフローチャートである。
【図４８】セッションを説明する図である。
【図４９】グループを説明する図である。
【図５０】モジュールの起動を説明する図である。
【図５１】モジュールの起動を説明する図である。
【図５２】ダイアログボックスの例を示す図である。
【図５３】モジュールの起動の処理を説明する図である。
【図５４】モジュールの起動の処理を説明する図である。
【図５５】グループの通知の処理を説明する図である。
【符号の説明】
１および１−１乃至１−Ｍ  サーバ，  ２および２−１乃至２−Ｎ  パーソナルコンピュータ，  ３  ネットワーク，  ２１  CPU，  ２２  ROM，  ２３  RAM，  ３１  HDD，  ３５  画像処理ボード，  ４１  磁気ディスク，  ４２  光ディスク，  ４３  光磁気ディスク，  ４４  半導体メモリ，  ５１  チューナ，  ５２  A/D変換器，  ５３  セレクタ，  ５４  エンコーダ，  ５５  ブリッジ，  ５６  デコーダ，  ５７  ネットワークインタフェース，  ８１  録画再生プログラム，  ８６  画像サーバプログラム，  ８７  チャットサーバプログラム，  １０１  CPU，  １０２  ROM，  １０３  RAM，  １１１  HDD，  １１５  ネットワークインタフェースカード，  １２１  磁気ディスク，  １２２光ディスク，  １２３  光磁気ディスク，  １２４  半導体メモリ，  １３１クライアントプログラム，  １３２  チャットプログラム，  １５１  コンボボックス，  １５２  テキストボックス，  １５３  チェックボックス，  １８１  機能データ，  １９１  バッファ，  １９２  再生プログラム，  １９３  再生監視プログラム，  ３０１  パーソナルコンピュータ，  ３０２  モニタ，３０３  VCR，  ３２１  CPU，  ３２２  ROM，  ３２３  RAM，  ３３１  HDD，  ３３５  画像処理ボード，  ３４１  磁気ディスク，  ３４２  光ディスク，  ３４３  光磁気ディスク，  ３４４  半導体メモリ，  ３５１  チューナ，３５２  A/D変換器，  ３５３  セレクタ，  ３５４  APS信号検出部，  ３５５  A/D変換器，  ３５６  エンコーダ，  ３５７  ブリッジ，  ３５８  デコーダ，  ３５９  D/A変換器，  ３６０  エンコーダ，  ３８１  録画再生プログラム，  ３８４  予約録画設定プログラム，  ３８５  予約監視プログラム，３９１  信号検出部，  ３９２  評価値生成部，  ３９３  信号検出部，  ３９４  評価値生成部，  ３９５  判定部，  ４０１  オペレーティングシステム，  ４１１  モジュール，  ４１２  モジュール，  ４１３  モジュール，  ４１４  モジュール，  ４２１  グループ識別データ，  ４２２  グループ識別データ，  ４２３  実行モジュールグループ識別データ
【図１】
0004929551.tif 000002
【図２】
0004929551.tif 000003
【図３】
0004929551.tif 000004
【図４】
0004929551.tif 000005
【図５】
0004929551.tif 000006
【図６】
0004929551.tif 000007
【図７】
0004929551.tif 000008
【図８】
0004929551.tif 000009
【図９】
0004929551.tif 000010
【図１０】
0004929551.tif 000011
【図１１】
0004929551.tif 000012
【図１２】
0004929551.tif 000013
【図１３】
0004929551.tif 000014
【図１４】
0004929551.tif 000015
【図１５】
0004929551.tif 000016
【図１６】
0004929551.tif 000017
【図１７】
0004929551.tif 000018
【図１８】
0004929551.tif 000019
【図１９】
0004929551.tif 000020
【図２０】
0004929551.tif 000021
【図２１】
0004929551.tif 000022
【図２２】
0004929551.tif 000023
【図２３】
0004929551.tif 000024
【図２４】
0004929551.tif 000025
【図２５】
0004929551.tif 000026
【図２６】
0004929551.tif 000027
【図２７】
0004929551.tif 000028
【図２８】
0004929551.tif 000029
【図２９】
0004929551.tif 000030
【図３０】
0004929551.tif 000031
【図３１】
0004929551.tif 000032
【図３２】
0004929551.tif 000033
【図３３】
0004929551.tif 000034
【図３４】
0004929551.tif 000035
【図３５】
0004929551.tif 000036
【図３６】
0004929551.tif 000037
【図３７】
0004929551.tif 000038
【図３８】
0004929551.tif 000039
【図３９】
0004929551.tif 000040
【図４０】
0004929551.tif 000041
【図４１】
0004929551.tif 000042
【図４２】
0004929551.tif 000043
【図４３】
0004929551.tif 000044
【図４４】
0004929551.tif 000045
【図４５】
0004929551.tif 000046
【図４６】
0004929551.tif 000047
【図４７】
0004929551.tif 000048
【図４８】
0004929551.tif 000049
【図４９】
0004929551.tif 000050
【図５０】
0004929551.tif 000051
【図５１】
0004929551.tif 000052
【図５２】
0004929551.tif 000053
【図５３】
0004929551.tif 000054
【図５４】
0004929551.tif 000055
【図５５】
0004929551.tif 000056