(57)【特許請求の範囲】
【請求項１】
ネットワークに接続されて使用されるネットワークＭＰＥＧエンコーダであり、入力されたデータをリアルタイムにＭＰＥＧエンコードして自己が送出するＭＰＥＧビットストリームとし、この自己が送出するＭＰＥＧビットストリームをマルチキャストストリームとして前記ネットワークに送出すると共に、前記ネットワークに接続された他の機器がマルチキャストストリームとして送出するＭＰＥＧビットストリームを受信するネットワークＭＰＥＧエンコーダにおいて、
前記ネットワークからのデータを受信し、前記ネットワークにデータを送信する送受信インタフェースと、
前記ネットワークから受信したデータを書き込むメモリと、
入力されたデータをリアルタイムにＭＰＥＧエンコードしてＭＰＥＧビットストリームを出力するＭＰＥＧエンコード部と、
前記送受信インタフェースと前記メモリと前記ＭＰＥＧエンコード部を制御するＣＰＵと、
前記ネットワークＭＰＥＧエンコーダの電源が投入されたときからの、前記送受信インタフェースで受信して前記メモリに転送された総データ転送数を計算する第１の計算手段と、
第１の時刻における前記総データ転送数である第１の総データ転送数と、前記第１の時刻から所定時間経過した第２の時刻における前記総データ転送数である第２の総データ転送数とを用いて、前記ネットワークで伝送されているデータのビットレートを計算する第２の計算手段と、
前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを始動させる際に、前記ＭＰＥＧエンコード部に予め設定されているビットレートと前記第２の計算手段で計算したビットレートとの和が、前記ネットワークで伝送することができる限界のビットレートに達するか否かを判定する第１の判定手段とを備え、
前記第１の判定手段によって前記和が前記限界のビットレートに達しないと判定されたとき、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを前記予め設定されているビットレートで始動させるよう構成したことを特徴とするネットワークＭＰＥＧエンコーダ。
【請求項２】
前記限界のビットレートと前記ネットワークで伝送されているデータのビットレートとの差を計算する第３の計算手段と、
前記差のビットレートが、前記ＭＰＥＧエンコード部が前記入力されたデータをＭＰＥＧエンコードするのに十分なビットレートであるか否かを判定する第２の判定手段とをさらに備え、
前記第１の判定手段によって前記和が前記限界のビットレートに達すると判定され、かつ、前記第２の判定手段によって前記差のビットレートが十分なビットレートであると判定されたとき、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを、前記予め設定されているビットレートの代わりに前記差のビットレートで始動させるよう構成したことを特徴とする請求項１記載のネットワークＭＰＥＧエンコーダ。
【請求項３】
前記第１の判定手段によって前記和が前記限界のビットレートに達すると判定され、かつ、前記第２の判定手段によって前記差のビットレートが十分なビットレートではないと判定されたとき、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを始動させないよう構成したことを特徴とする請求項２記載のネットワークＭＰＥＧエンコーダ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークに接続されたＭＰＥＧエンコーダに係り、特に、そのネットワークに接続されたＭＰＥＧデコーダにＭＰＥＧビットストリームを供給するため、そのネットワークにＭＰＥＧビットストリームを送出するネットワークＭＰＥＧエンコーダに関する。
【０００２】
【従来の技術】
イーサネット（登録商標）のようなローカル・エリア・ネットワーク（以下、単にネットワークと称する）に、１または複数のＭＰＥＧエンコーダと、１または複数のＭＰＥＧデコーダとを接続し、ＭＰＥＧエンコーダより出力したＭＰＥＧビットストリーム（以下、単にビットストリームと称する）を、そのネットワークを介してＭＰＥＧデコーダに供給するシステムがある。なお、イーサネットには、10Base-Tと称されるものと、100Base-TXと称されるものとがあり、現在、100Base-TXが主流となっている。
【０００３】
このネットワークにＭＰＥＧエンコーダとＭＰＥＧデコーダとを接続してなるシステムにおいて、ＭＰＥＧエンコーダは入力された映像信号や音声信号をＭＰＥＧエンコードし、ネットワークにビットストリームを送出する。ネットワークはハブとして動作し、ビットストリームは指定されたＭＰＥＧデコーダへと供給される。ビットストリームが入力されたＭＰＥＧデコーダは、ビットストリームをデコードして、映像信号や音声信号を出力する。このシステムによれば、映像信号や音声信号のデータ量を大幅に低減させて、遠隔地に送ることができる。
【０００４】
【発明が解決しようとする課題】
ところで、ネットワークにＲＴＰ（A Transport Protocol for Real-Time Applications）プロトコルを用いてリアルタイムにビットストリームを出力する場合、ネットワークの負荷を考慮することなく、ＭＰＥＧエンコーダがビットストリームを次々に出力すると、次のような問題点が発生する。
【０００５】
ネットワークがシェアードドメインの場合、即ち、データが全ての機器に転送される場合には、ユニキャストストリームやマルチキャストストリームがネットワークに大量に流れる。ネットワークがスイッチングドメインの場合、即ち、特定の機器のみにデータが転送される場合には、マルチキャストストリームがネットワークに大量に流れることになる。すると、ネットワークやそれに繋がっているコンピュータあるいはＭＰＥＧエンコーダが大量のデータを受信し、動作不可能（ハングアップ）に陥るという不具合が発生する。
【０００６】
そこで、ネットワークの負荷等を予め計算して、システムが動作不可能に陥らないよう、ＭＰＥＧエンコーダのビットレートを設定する必要があった。しかしながら、この事情を知らない第三者がＭＰＥＧエンコーダのビットレートの設定を変更した場合には、システムが動作不可能に陥る可能性がある。
【０００７】
システムが動作不可能に陥った場合には、ネットワークを介することなく、ビットストリームを出力するＭＰＥＧエンコーダを直接制御して、ＭＰＥＧエンコーダの動作を停止させたり、電源を切断したりしなければならなかった。一旦ネットワーク等のシステムが動作不可能に陥ると、ネットワークを元の状態に回復させることは困難であり、システムが動作不可能に陥らないようビットストリームを送出するＭＰＥＧエンコーダの登場が望まれていた。
【０００８】
本発明はこのような問題点に鑑みなされたものであり、入力されたデータをリアルタイムにエンコードしてビットストリームとしてネットワークに送出するネットワークＭＰＥＧエンコーダにおいて、システムが動作不可能に陥らないようビットストリームを送出することができるネットワークＭＰＥＧエンコーダを提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、上述した従来の技術の課題を解決するため、ネットワーク（３）に接続されて使用されるネットワークＭＰＥＧエンコーダ（１Ａ）であり、入力されたデータをリアルタイムにＭＰＥＧエンコードして自己が送出するＭＰＥＧビットストリームとし、この自己が送出するＭＰＥＧビットストリームをマルチキャストストリームとして前記ネットワークに送出すると共に、前記ネットワークに接続された他の機器（１Ｂ）がマルチキャストストリームとして送出するＭＰＥＧビットストリームを受信するネットワークＭＰＥＧエンコーダにおいて、前記ネットワークからのデータを受信し、前記ネットワークにデータを送信する送受信インタフェース（１１）と、前記ネットワークから受信したデータを書き込むメモリ（１３）と、入力されたデータをリアルタイムにＭＰＥＧエンコードしてＭＰＥＧビットストリームを出力するＭＰＥＧエンコード部（１４）と、前記送受信インタフェースと前記メモリと前記ＭＰＥＧエンコード部を制御するＣＰＵ（１２）と、前記ネットワークＭＰＥＧエンコーダの電源が投入されたときからの、前記送受信インタフェースで受信して前記メモリに転送された総データ転送数を計算する第１の計算手段（１２，Ｓ１〜Ｓ３）と、第１の時刻における前記総データ転送数である第１の総データ転送数と、前記第１の時刻から所定時間経過した第２の時刻における前記総データ転送数である第２の総データ転送数とを用いて、前記ネットワークで伝送されているデータのビットレートを計算する第２の計算手段（１２，Ｓ１１〜Ｓ１４）と、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを始動させる際に、前記ＭＰＥＧエンコード部に予め設定されているビットレートと前記第２の計算手段で計算したビットレートとの和が、前記ネットワークで伝送することができる限界のビットレートに達するか否かを判定する第１の判定手段（１２，Ｓ２１〜Ｓ２３）とを備え、前記第１の判定手段によって前記和が前記限界のビットレートに達しないと判定されたとき、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを前記予め設定されているビットレートで始動させるよう構成したことを特徴とするネットワークＭＰＥＧエンコーダを提供する。
この構成において、前記限界のビットレートと前記ネットワークで伝送されているデータのビットレートとの差を計算する第３の計算手段（１２，Ｓ２５）と、前記差のビットレートが、前記ＭＰＥＧエンコード部が前記入力されたデータをＭＰＥＧエンコードするのに十分なビットレートであるか否かを判定する第２の判定手段（１２，Ｓ２６）とをさらに備え、前記第１の判定手段によって前記和が前記限界のビットレートに達すると判定され、かつ、前記第２の判定手段によって前記差のビットレートが十分なビットレートであると判定されたとき、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを、前記予め設定されているビットレートの代わりに前記差のビットレートで始動させることが好ましい。
また、前記第１の判定手段によって前記和が前記限界のビットレートに達すると判定され、かつ、前記第２の判定手段によって前記差のビットレートが十分なビットレートではないと判定されたとき、前記ＭＰＥＧエンコード部によるＭＰＥＧエンコードを始動させないよう構成することが好ましい。
【００１０】
【発明の実施の形態】
以下、本発明のネットワークＭＰＥＧエンコーダについて、添付図面を参照して説明する。図１は本発明のネットワークＭＰＥＧエンコーダの一実施形態を示すブロック図、図２はネットワークＭＰＥＧデコーダの一構成例を示すブロック図、図３はネットワークにネットワークＭＰＥＧエンコーダとネットワークＭＰＥＧデコーダとを接続したシステムの構成例を示すブロック図、図４〜図６は本発明のネットワークＭＰＥＧエンコーダの動作を説明するためのフローチャートである。
【００１１】
まず、図３を用いて、ネットワークにネットワークＭＰＥＧエンコーダとネットワークＭＰＥＧデコーダとを接続したシステムの概略について説明する。図３において、ネットワークの一例であるイーサネット３には、ネットワークＭＰＥＧエンコーダ１Ａ，１Ｂと、ネットワークＭＰＥＧデコーダ２Ａ，２Ｂが接続されている。本実施形態では、イーサネット３を100Base-TXとする。ネットワークＭＰＥＧエンコーダとネットワークＭＰＥＧデコーダの数は任意である。ネットワークＭＰＥＧエンコーダ１Ａ，１ＢをネットワークＭＰＥＧエンコーダ１と総称し、ネットワークＭＰＥＧデコーダ２Ａ，２ＢをネットワークＭＰＥＧデコーダ２と総称することとする。
【００１２】
ネットワークＭＰＥＧエンコーダ１Ａ，１Ｂは、入力された映像信号や音声信号をリアルタイムにＭＰＥＧエンコードし、マルチキャストストリームをイーサネット３に送出する。ネットワークＭＰＥＧデコーダ２Ａ，２Ｂは、イーサネット３から必要なビットストリームを抽出して、そのビットストリームをリアルタイムにデコードして、映像信号や音声信号を出力する。
【００１３】
マルチキャストストリームの場合には、例えばネットワークＭＰＥＧエンコーダ１Ａは、自分が送出したビットストリーム以外の、ネットワークＭＰＥＧエンコーダ１Ｂが送出したビットストリームも受信する。ネットワークＭＰＥＧエンコーダ１Ｂも同様である。よって、イーサネット３とネットワークＭＰＥＧエンコーダ１Ａ，１Ｂとは双方向となっている。ネットワークＭＰＥＧデコーダ２Ａ，２Ｂは、ビットストリームを受信するのみであるが、イーサネット３を介してコマンドをネットワークＭＰＥＧエンコーダ１Ａ，１Ｂに供給するので、イーサネット３とネットワークＭＰＥＧデコーダ２Ａ，２Ｂとは双方向となっている。
【００１４】
次に、ネットワークＭＰＥＧエンコーダ１とネットワークＭＰＥＧデコーダ２の概略構成について説明する。本実施形態では、オペレーティングシステムとしてVXWORKS（登録商標）を用いた例について示す。図１に示すように、ネットワークＭＰＥＧエンコーダ１は、送受信インタフェース１１，ＣＰＵ１２，メモリ１３，ＭＰＥＧエンコード部１４を有する。送受信インタフェース１１によってイーサネット３より受信した全てのデータは、ＣＰＵ１２によって後に解析するために、メモリ１３へと転送されて書き込まれる。
【００１５】
ＣＰＵ１２は、メモリ１３に書き込まれたデータを、ＲＴＳＰ（Real Time Streaming Protocol）コマンドのデータと、それ以外のデータとに区別する。そして、ＣＰＵ１２は、ＲＴＳＰコマンドをＭＰＥＧエンコード部１４の制御に使用すると共に、他のデータを廃棄する。本発明の特徴である、ＣＰＵ１２の具体的動作やＭＰＥＧエンコード部１４の制御方法については後に詳述する。
【００１６】
一方、ネットワークＭＰＥＧデコーダ２は、図２に示すように、送受信インタフェース２１，ＣＰＵ２２，メモリ２３，ＭＰＥＧデコード部２４を有する。送受信インタフェース２１によってイーサネット３より受信したデータは、メモリ２３へと転送されて書き込まれる。そして、メモリ２３に書き込まれたデータは、ＣＰＵ１２の制御によって、ＭＰＥＧデコード部２４によりデコードされる。
【００１７】
ここで、図４〜図６のフローチャートを用いて、本発明のネットワークＭＰＥＧエンコーダ１の具体的動作について説明する。図４は、ＣＰＵ１２の受信割り込みドライバにおける総転送データ数を計算する処理を示している。図４において、ＣＰＵ１２の受信割り込みドライバにイーサネット３からのデータを受信するための受信割り込みが入ると、受信割り込みの処理が開始される。受信するデータは、上記のように、ＲＴＳＰ（Real Time Streaming Protocol）コマンドのデータと、それ以外のデータ、例えば、他のネットワークＭＰＥＧエンコーダ１から出力されたビットストリーム等のデータである。
【００１８】
ステップＳ１にて、ＣＰＵ１２は、送受信インタフェース１１からメモリ１３への転送が終了したか否か判定し、終了していなければ、ステップＳ２に移る。ステップＳ２にて、ＣＰＵ１２は、送受信インタフェース１１で受信したイーサネット３からのデータをメモリ１３に転送する。そして、ステップＳ３にて、転送したデータ数を累積して総データ転送数を計算し、ステップＳ１に戻る。以上の処理を繰り返し、ステップＳ１にて転送が終了していると判定されれば、受信割り込みの処理は終了する。
【００１９】
図５は、イーサネット３で伝送されているビットストリームのビットレートを計算する処理を示している。図５において、ＣＰＵ１２のアプリケーションは、ビットレート取得ルーチンが開始すると、ステップＳ１１にて、所定の時点（第１の時刻）で、ネットワークＭＰＥＧエンコーダ１の電源が投入されたときからの総データ転送数（総データ転送数ａとする）を取得する。ステップＳ１２にて、所定時間ｔ待機する。所定時間ｔは適宜に設定すればよく、一例として、３３０ｍｓである。
【００２０】
そして、ステップＳ１３にて、第１の時刻から所定時間ｔ経過した第２の時刻で、ネットワークＭＰＥＧエンコーダ１の電源が投入されたときからの総データ転送数（総データ転送数ｂとする）を取得する。ステップＳ１４にて、（ｂ−ａ）／ｔより、ビットレートｄを計算し、ビットレート取得ルーチンを終了する。なお、このビットレート取得ルーチンは、アプリケーションで、タイマを用いて定期的に実行してもよいし、計測時間を設けることができる場合には、ＭＰＥＧエンコード部１４を始動させる前に実行してもよい。
【００２１】
図６は、ネットワークＭＰＥＧエンコーダ１にネットワークＭＰＥＧデコーダ２からＲＴＳＰコマンドでプレイ（Play）コマンドが供給された場合の、ＭＰＥＧエンコード部１４を始動させる処理を示している。プレイコマンドによってエンコード始動ルーチンが開始すると、ステップＳ２１にて、ＣＰＵ１２は、ＭＰＥＧエンコード部１４に予め設定されているビットレートｃを取得する。予め設定されているビットレートｃとは、ＭＰＥＧエンコード部１４を始動させたときに、ＭＰＥＧエンコード部１４が出力しようとするビットストリームのビットレートのことである。ステップＳ２２にて、図５の処理にて計算した、イーサネット３で伝送されているビットストリームのビットレートｄを取得する。
【００２２】
そして、ステップＳ２３にて、ビットレートｃとビットレートｄとの和と、イーサネット３に送出することができるビットレートの限界値であるビットレートｅとを比較する。なお、本実施形態であるVXWORKSの場合、ビットレートｅは２０Mbpsである。ステップ２３にて、ビットレートｃとビットレートｄとの和がビットレートｅより小であれば、ステップＳ２４に移る。ステップＳ２４にて、ＭＰＥＧエンコード部１４を予め設定されているビットレートｃでエンコードするよう始動させる。これにより、エンコード始動ルーチンは終了し、ＭＰＥＧエンコード部１４より出力されたビットストリームは、送受信インタフェース１１を介してイーサネット３へと送出される。
【００２３】
一方、ステップ２３にて、ビットレートｃとビットレートｄとの和がビットレートｅより小でなければ、ステップＳ２５に移る。ステップＳ２５にて、ビットレートｅからビットレートｄを減算して、残りのビットレートｆを算出する。そして、ステップＳ２６にて、ビットレートｆが実用上十分であるか否かを判定する。実用上十分であるとは、ＭＰＥＧエンコード部１４が入力された映像信号や音声信号を正しくエンコードするのに十分であるかということである。
【００２４】
ステップＳ２６にて、ビットレートｆが実用上十分であれば、ステップＳ２７に移り、ＭＰＥＧエンコード部１４にビットレートｆを設定して、ＭＰＥＧエンコード部１４を始動させる。この場合、ＭＰＥＧエンコード部１４は、予め設定されているビットレートｃではなく、それよりも低いビットレートｆで入力信号をエンコードして出力する。ビットレートｆが実用上十分でなければ、そのままエンコード始動ルーチンを終了させる。
【００２５】
以上説明した本実施形態は、市販されているＴＣＰ／ＩＰのプロトコルスタックを使用した場合でも、プロトコルスタックには全く手を加えることなく、入出力をアクセスするモジュールとアプリケーションのみの変更すれば実施できる。
【００２６】
【発明の効果】
以上詳細に説明したように、本発明のネットワークＭＰＥＧエンコーダは、ＭＰＥＧエンコード部によるＭＰＥＧエンコードを始動させる際に、ＭＰＥＧエンコード部に予め設定されているビットレートとネットワークで既に伝送されているデータのビットレートとの和が、ネットワークで伝送することができる限界のビットレートに達するか否かを判定し、限界のビットレートに達しないと判定されたとき、ＭＰＥＧエンコード部によるＭＰＥＧエンコードを予め設定されているビットレートで始動させるよう構成したので、システムが動作不可能に陥らないようビットストリームを送出することができる。従って、本発明によれば、ネットワークに接続されたネットワークＭＰＥＧデコーダがコマンドをネットワークに出力して、ネットワークＭＰＥＧエンコーダを制御する際に、その制御を安定的に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示すブロック図である。
【図２】ネットワークＭＰＥＧデコーダの一構成例を示すブロック図である。
【図３】ネットワークにネットワークＭＰＥＧエンコーダとネットワークＭＰＥＧデコーダとを接続したシステムの構成例を示すブロック図である。
【図４】本発明の動作を説明するためのフローチャートである。
【図５】本発明の動作を説明するためのフローチャートである。
【図６】本発明の動作を説明するためのフローチャートである。
【符号の説明】
１，１Ａ，１Ｂ  ネットワークＭＰＥＧエンコーダ
２，２Ａ，２Ｂ  ネットワークＭＰＥＧデコーダ
３  イーサネット（ネットワーク）
１１，２１  送受信インタフェース
１２，２２  ＣＰＵ
１３，２３  メモリ
１４  ＭＰＥＧエンコード部
２４  ＭＰＥＧデコード部
【図１】
0003896878.tif 000002
【図２】
0003896878.tif 000003
【図３】
0003896878.tif 000004
【図４】
0003896878.tif 000005
【図５】
0003896878.tif 000006
【図６】
0003896878.tif 000007