(57)【要約】【課題】低帯域データの優先的な送信を確保でき、さらに高帯域データ送信への影響を最小限にできる。【解決手段】サーバは、一定時間ごとに、送信バッファＣＢ１に保存される一番古いデータを送信するときに、二次バッファＳＢ１，ＳＢ２に格納された低滞域データに更新があればそのデータを送信し、低帯域データが更新されてなく高帯域データに更新があればそのデータを送信し、次の一定時間後は、二次バッファに格納された高滞域データに更新があればそのデータを送信し、高帯域データが更新されてなく低帯域データに更新があればそのデータを送信する。  ＭＰＥＧ画像のＩフレーム、Ｐフレーム、ＢフレームをＪＰＥＧ画像１枚分として扱い、かつＢフレーム、Ｐフレーム、Ｉフレームの順に破棄量を調整する。【選択図】図１
2009105624.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末からのデータを低帯域データと高帯域データが混在するネットワーク網を介してサーバが受信して送信バッファにバッファリングし、このバッファリングデータを少なくとも１つの宛先クライアントに配信するネットワークサーバのデータバッファリング方法であって、
前記サーバは、クライアント別データのＩＮ／ＯＵＴ処理を非同期で行う送信バッファと、この送信バッファから捨てられる１つの古いデータを低帯域データと高帯域データ別に格納できる二次バッファを設け、
一定時間ごとに、前記送信バッファに保存される一番古いデータを送信するときに、前記二次バッファに格納された低滞域データに更新があればそのデータを送信し、低帯域データが更新されてなく高帯域データに更新があればそのデータを送信する処理手順と、
次の一定時間後は、前記二次バッファに格納された高滞域データに更新があればそのデータを送信し、高帯域データが更新されてなく低帯域データに更新があればそのデータを送信する処理手順とを有することを特徴とするネットワークサーバのデータバッファリング方法。
【請求項２】
複数の端末からのデータを低帯域データと高帯域データが混在するネットワーク網を介してサーバが受信して送信バッファにバッファリングし、このバッファリングデータを少なくとも１つの宛先クライアントに配信するネットワークサーバのデータバッファリング方法であって、
前記サーバは、
データ配信先クライアントまでの回線の帯域から分割送信するときのパケットサイズとパケットの送信間隔を計算し、送信パケット管理テーブルに格納しておく送信間隔計算処理手順と、
受信パケットデータに付加されたシーケンス番号を基に、ＪＰＥＧ画像の場合は１画面ごとにまとめてフレーム構築バッファに保存し、ＭＰＥＧ画像の場合はＩフレームから次のＩフレームの直前のフレームまでを一つのデータとしてまとめてフレーム構築バッファに保存するフレーム構築処理手順と、
フレーム構築処理で構築されたデータを送信フレーム管理テーブルに登録する送信フレーム登録処理手順と、
前記送信フレーム管理テーブルに登録されているデータから次に送信するべきデータを取り出す送信フレーム取り出し処理手順と、
ＭＰＥＧ画像の場合は前回の処理において送信フレーム登録したデータ量とフレーム送信処理に送信したデータ量を比較し、登録したデータ量＞送信したデータ量の場合にＢフレームの送信量を調整するＭＰＥＧ間引き処理手順と、
を有することを特徴とするネットワークサーバのデータバッファリング方法。
【請求項３】
前記ＭＰＥＧ間引き処理は、前回の登録データ量が前回の送信データ量を超え、かつ今回の登録データ量が前回の送信データ量に一定のデータ量Ｖを加えた量を超えるとき、破棄量は今回の登録データ量−（前回の送信データ量＋Ｖ）とする処理手順を有することを特徴とする請求項１に記載のネットワークサーバのデータバッファリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末からのデータをサーバが受信してクライアンに配信するネットワークシステムに係り、特に低帯域データと高帯域データが混在するネットワーク網におけるサーバのデータバッファリング方法に関する。
【背景技術】
【０００２】
この種のネットワークシステムの例を図９に示す。複数の端末Ｔ１〜Ｔ４、サーバＳ、及び、複数のクライアントＣ１〜Ｃ４で構成されるネットワーク網において、端末からのデータ（ＪＰＥＧ画像、ＭＰＥＧ画像、音声など）をパケット化して伝送回線に載せ、このパケット群をサーバＳが順次受信し、少なくとも１つのクライアンに配信する。
【０００３】
ここで、端末とサーバ間、サーバとクライアント間のネットワーク帯域は様々で、介在する回線や中継機器の伝送速度による制限、及び、端末やクライアントのデータ帯域制限により、例えば、高帯域（１Ｇｂｐｓ〜１００ｂｐｓ）から低帯域（３２ｋｂｐｓ〜１２８ｋｂｐｓ）までのデータが混在する。
【０００４】
例えば、図１０に示すように、端末Ｔ１→サーバＳ、サーバＳ→クライアントＣ１の経路では低帯域回線でデータを伝送し、端末Ｔ２→サーバＳ、サーバＳ→クライアントＣ２の経路では高帯域回線でデータを伝送する。このように、低帯域データと高帯域データが混在するネットワーク網における送受信データ量の違いを吸収するため、サーバＳでは高帯域回線からのパケットの選択頻度（スイッチング）を高くしてデータ量の違いを吸収し、これらデータをバッファリングし、サーバＳから宛先クライアントに配信する方法がある（例えば、特許文献１参照）。
【０００５】
さらに、サーバＳにおけるデータバッファリング方法として、以下の性質をもたせることで、データ量および伝送速度の違いを吸収する方法がある。
【０００６】
（１）リアルタイム性を重んじ、できるだけ最新データを優先的に送信する。
【０００７】
（２）低帯域データほど優先的にクライアントに送り、高帯域データは適度に欠落しても良い。
【特許文献１】特開平３−２１４８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前記の図１０に示すネットワーク網において、低帯域回線経由で端末Ｔ１→サーバＳ→クライアントＣ１の経路で配信し、高帯域回線経由で端末Ｔ２→サーバＳ→クライアントＣ１の経路で配信する場合、端末Ｔ１からのデータをＴＤ１，端末Ｔ２からのデータをＴＤ２とすると、サーバＳからクライアントＣ１向きの送信バッファＣＢ１は、図１１のようなデータバッファリング状態になり、データＴＤ１は低帯域回線上を経由してサーバに到達するため、データＴＤ２に比べてデータ量が少ない。
【０００９】
サーバは、送信バッファＣＢ１へのＩＮ／ＯＵＴ処理は非同期で行い、送信バッファに新しいデータが入力された時に、まだ送信されていない古いデータが存在していた場合、そのデータは捨てられ、常にサイクリックに最新データ群を保持している。一方、ＯＵＴ処理は、サーバＳからクライアントＣ１に対して帯域制限をかけて送信するため、一定時間ΔＴ経過後、一番古いデータを送信することになる。
【００１０】
この場合、データＴＤ１はクライアントＣ１に対して送信される確率が低くなり、データの性質として、低帯域データを優先的に送信できない状況に陥る問題がある。
【００１１】
本発明の目的は、低帯域データの優先的な送信を確保でき、さらに高帯域データ送信への影響を最小限にできるデータバッファリング方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明は、前記の課題を解決するため、以下の方法を特徴とする。
【００１３】
（１）複数の端末からのデータを低帯域データと高帯域データが混在するネットワーク網を介してサーバが受信して送信バッファにバッファリングし、このバッファリングデータを少なくとも１つの宛先クライアントに配信するネットワークサーバのデータバッファリング方法であって、
前記サーバは、クライアント別データのＩＮ／ＯＵＴ処理を非同期で行う送信バッファと、この送信バッファから捨てられる１つの古いデータを低帯域データと高帯域データ別に格納できる二次バッファを設け、
一定時間ごとに、前記送信バッファに保存される一番古いデータを送信するときに、前記二次バッファに格納された低滞域データに更新があればそのデータを送信し、低帯域データが更新されてなく高帯域データに更新があればそのデータを送信する処理手順と、
次の一定時間後は、前記二次バッファに格納された高滞域データに更新があればそのデータを送信し、高帯域データが更新されてなく低帯域データに更新があればそのデータを送信する処理手順とを有することを特徴とする。
【００１４】
（２）複数の端末からのデータを低帯域データと高帯域データが混在するネットワーク網を介してサーバが受信して送信バッファにバッファリングし、このバッファリングデータを少なくとも１つの宛先クライアントに配信するネットワークサーバのデータバッファリング方法であって、
前記サーバは、
データ配信先クライアントまでの回線の帯域から分割送信するときのパケットサイズとパケットの送信間隔を計算し、送信パケット管理テーブルに格納しておく送信間隔計算処理手順と、
受信パケットデータに付加されたシーケンス番号を基に、ＪＰＥＧ画像の場合は１画面ごとにまとめてフレーム構築バッファに保存し、ＭＰＥＧ画像の場合はＩフレームから次のＩフレームの直前のフレームまでを一つのデータとしてまとめてフレーム構築バッファに保存するフレーム構築処理手順と、
フレーム構築処理で構築されたデータを送信フレーム管理テーブルに登録する送信フレーム登録処理手順と、
前記送信フレーム管理テーブルに登録されているデータから次に送信するべきデータを取り出す送信フレーム取り出し処理手順と、
ＭＰＥＧ画像の場合は前回の処理において送信フレーム登録したデータ量とフレーム送信処理に送信したデータ量を比較し、登録したデータ量＞送信したデータ量の場合にＢフレームの送信量を調整するＭＰＥＧ間引き処理手順と、
を有することを特徴とする。
【００１５】
（３）前記ＭＰＥＧ間引き処理は、前回の登録データ量が前回の送信データ量を超え、かつ今回の登録データ量が前回の送信データ量に一定のデータ量Ｖを加えた量を超えるとき、破棄量は今回の登録データ量−（前回の送信データ量＋Ｖ）とする処理手順を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、一定時間ごとに、送信バッファに保存される一番古いデータを送信するときに、二次バッファに格納された低滞域データに更新があればそのデータを送信し、低帯域データが更新されてなく高帯域データに更新があればそのデータを送信し、次の一定時間後は、二次バッファに格納された高滞域データに更新があればそのデータを送信し、高帯域データが更新されてなく低帯域データに更新があればそのデータを送信するようにしたため、低帯域データの優先的な送信を確保でき、さらに高帯域データ送信への影響を最小限にできる。
【００１７】
また、本発明によれば、ＭＰＥＧ画像のＩフレーム、Ｐフレーム、ＢフレームをＪＰＥＧ画像１枚分として扱い、かつＢフレーム、Ｐフレーム、Ｉフレームの順に破棄量を調整することにより、ＭＰＥＧ画像の送信データの欠落による画像への影響を最小限にしたデータバッファリングが可能となる。また、ＭＰＥＧ画像は実際の送信量をもとにＢフレームを調整するため、細かな調整ができる。
【発明を実施するための最良の形態】
【００１８】
（実施形態１）
図１は、本発明の実施形態を示す送信バッファの構成図である。サーバＳは、コンピュータ資源とこれを利用したソフトウェア構成で実現され、クライアントＣ１向けの送信バッファＣＢ１には、従来と同様に、データのＩＮ／ＯＵＴ処理は非同期で行い、新しいデータが入力された時に、まだ送信されていない古いデータが存在していた場合、そのデータを捨て、常にサイクリックに最新データ群を保持する。
【００１９】
ここで、本実施形態では、低帯域データＴＤ１を優先的にクライアントＣ１に送信するために、端末ごとの二次バッファを設ける。この二次バッファは、各端末Ｔ１〜Ｔ４のデータを１つ格納でき、新しいデータが来たときに常に上書きされる。図示では、クライアントＣ１向けの端末Ｔ１とＴ２用の二次バッファＳＢ１、ＳＢ２のみを示し、これら二次バッファＳＢ１、ＳＢ２にはクライアントＣ１用の送信バッファＣＢ１からサイクリックに捨てられる古いデータが当該端末用のデータであればそのバッファリングを行う。
【００２０】
サーバＳは、クライアントＣ１に対して帯域制限をかけて送信するため、送信バッファＣＢ１に順次保存したデータについて、一定時間ΔＴ経過後、一番古いデータを送信するが、この一番古いデータとして二次バッファＳＢ１、ＳＢ２に格納されたデータについてその更新があったか否かでいずれか一方のバッファのデータを送信する。このΔＴ時間ごとの送信処理手順は図２に示す。
【００２１】
（Ｓ１〜Ｓ３）ΔＴ時間後、ＴＤ１が更新されていればそれを送信する。
【００２２】
（Ｓ４、Ｓ５）ＴＤ１が更新されてない場合で、ＴＤ２が更新されていればそれを送信する。
【００２３】
（Ｓ６〜Ｓ８）ΔＴ時間後、ＴＤ２が更新されていればそれを送信する。
【００２４】
（Ｓ９、Ｓ１０）ＴＤ２が更新されてない場合で、ＴＤ１が更新されていればそれを送信する。
【００２５】
したがって、本実施形態によれば、送信バッファのデータ更新により捨てられる古いデータを端末別の二次バッファに一時保存しておき、ΔＴ時間ごとの送信に際して、二次バッファに保存される低帯域データ（ＴＤ１）が更新されていれば、それを優先的にクライアント（Ｃ１）に送信する。
【００２６】
すなわち、できるだけ最新データを優先的に送信し、かつ低帯域データほど優先的にクライアントに送信することができる。
【００２７】
（実施形態２）
実施形態１の場合、低帯域データ（ＴＤ１）を優先的にクライアント（Ｃ１）に送信するため、高帯域データの欠落度合いが増すことがある。このデータ欠落は、１フレーム単独で表示できるＪＰＥＧ画像に適用する場合はなんら問題ない。しかし、前画面や後画面の差分フレームを含むＭＰＥＧ画像が混在する場合には、１つのデータ欠落が前後数画面データに影響を及ぼし、画面のちらつきや画質の劣化になってしまう。
【００２８】
本実施形態では、最新データを優先的に送信し、かつ低帯域データほど優先的にクライアントに送信しながら、ＭＰＥＧ画像のＩフレーム、Ｐフレーム、ＢフレームをＪＰＥＧ画像１枚分として扱い、かつＢフレーム、Ｐフレーム、Ｉフレームの順に破棄量を調整することにより、ＭＰＥＧ画像の送信データの欠落による画像への影響を最小限にしたデータバッファリングを可能とするもので、以下詳細に説明する。
【００２９】
図３はサーバに搭載する送信処理装置の機能構成図を示し、図４に送信フレームの管理処理の機能構成図を示し、図５および図６に送信処理に使用する各種テーブルの例を示す。これら機能構成とテーブル構成はコンピュータ資源とこれを利用したソフトウェア構成で実現される。また、送信フレーム管理テーブルとフレーム送信処理は、クライアントの数と同じ個数用意する。
【００３０】
（１）送信間隔計算処理
図３の構成において、送信間隔計算処理部１１は、データ配信先クライアントまでの回線の帯域から、分割送信するときのパケットサイズとパケットの送信間隔を計算し、送信パケット管理テーブル１２に格納する。図５に送信パケット管理テーブルの例を示す。
【００３１】
（２）フレーム構築処理
画面データはパケットに分割されて送られてくるため、フレーム受信処理部１３とフレーム構築処理部１４において、パケットに付加されたシーケンス番号を基に画面データをまとめ、フレーム構築バッファ１５に保存する。
【００３２】
ＪＰＥＧ画像の場合は１画面ごとにまとめて保存する。Ｉフレーム、Ｐフレーム、Ｂフレームから構成されるＭＰＥＧ画像の場合は、Ｉフレームから次のＩフレームの直前のフレームまでを一つのデータとしてまとめて保存する。ＭＰＥＧ画像の例を下記に示す。
【００３３】
Ｉ−１、Ｂ−１、Ｂ−２、Ｐ−１、Ｂ−３、Ｂ−４、Ｐ−２、Ｂ−５、Ｂ−６、…、Ｂ−ｎ、Ｉ−２、Ｂ−ｎ、…
Ｉフレーム（Ｉ−１）から次のＩフレーム（Ｉ−２）の直前までを一塊のデータ（以下グループデータと呼ぶ）としてまとめる。
【００３４】
なお、上記ＭＰＥＧ画像の例で、Ｂ−５にパケットの一部が欠落した場合、Ｉ−１からＰ−２をグループとしてまとめ、Ｂ−６から次のＩフレーム（Ｉ−２）の直前（Ｂ１）までのデータは捨てる。
【００３５】
正常に構築されたデータ（ＪＰＥＧの場合は１フレーム、ＭＰＥＧの場合は１グループ）は、端末識別子（端末番号）を付加して以下の送信フレーム管理処理に渡す。
【００３６】
（３）送信フレーム管理処理
送信フレーム管理処理部１６は、図４に示すように、送信フレームの登録処理（１６ａ）、送信フレーム取り出し処理（１６ｂ）およびＭＰＥＧ間引き処理（１６ｃ）で構成される。
【００３７】
送信フレーム登録処理（１６ａ）は、フレーム構築処理で構築されたデータを送信フレーム管理テーブル１７に登録する。具体的には、図６に送信フレーム管理テーブル１７のデータ構造を示すように、該当する端末の画像種別項目に画像の種類（ＪＰＥＧ、ＭＰＥＧ２、ＭＰＥＧ４等）をセットし、ＮＥＸＴ項目にデータが格納されているバッファのアドレスをセットし、ＣＵＲＲＥＮＴ項目にはＭＰＥＧ画像データの場合はフレーム個数等、Ｉ，Ｂ，Ｐ別のフレームをセットし、ＪＰＥＧ画像データの場合はフレーム単位でセットし、ＰＯＩＮＴＥＲ項目にはＭＰＥＧ画像データでは現在の送信ポインタをセットする。さらに、登録データ量項目には現在の登録データ量をセットし、送信データ量項目には現在までの送信データ量をセットする。
【００３８】
送信フレーム取り出し処理（１６ｂ）は、送信フレーム管理テーブル１７に登録されているデータから次に送信するべきデータを取り出して、フレーム送信処理部１８に渡す。
【００３９】
図７は送信フレーム取り出し処理のフローチャートを示す。図６に例を示す送信フレーム管理テーブル１７を参照し、ＮＥＸＴ項目がＮＵＬＬでないときはＮＥＸＴ項目に格納されるバッファアドレスのデータをＣＵＲＲＥＮＴ項目にセットし、ＮＵＬＬを当該ＮＥＸＴ項目にセットし、画像種別項目に画像種別をセットし、画像種別がＪＰＥＧでないときはＢフレームの間引き処理を行い、登録データ量項目に登録データ量をセットする（Ｓ１〜Ｓ５）。
【００４０】
次に、送信フレーム管理テーブル１７のＣＵＲＲＥＮＴ項目がＮＵＬＬでなく、画像種別がＪＰＥＧのときはＣＵＲＲＥＮＴ項目のセット内容を送信データとし、当該ＣＵＲＲＥＮＴ項目にＮＵＬＬをセットする（Ｓ６〜Ｓ８）。また、画像種別がＭＰＥＧ（ＪＰＥＧでない）の場合、ＰＯＩＮＴＥＲ項目にセットされている現在の送信ポインタのデータを送信データとし、送信データ量項目の送信データ量を更新し、ＰＯＩＮＴＥＲの送信ポインタを更新する（Ｓ９，Ｓ１０）。さらに、全フレームの送信完了であればＮＵＬＬをＧＵＲＲＥＮＴ項目にセットする（Ｓ１１，Ｓ１２）。
【００４１】
以上までの処理で１つの送信フレームの取り出しを行ったとき、ＮＥＸＴ項目にセットされている端末番号（バッファアドレス）を更新し、このアドレスでの送信データがＮＵＬＬであれば全端末処理が完了するまで処理Ｓ１に戻り、ＮＵＬＬでなければ１回の送信フレーム取り出し処理を終了する（Ｓ１３〜Ｓ１５）。
【００４２】
ＭＰＥＧ間引き処理（１６ｃ）は、前回の送信フレーム取り出し処理において登録したデータ量（１グループ）と送信したデータ量（フレーム送信処理に渡したデータ）を比較し、登録したデータ量＞送信したデータ量の場合、Ｂフレームの送信量を調整する。
【００４３】
図８に間引き処理のフローチャートを示す。前回の登録データ量が前回の送信データ量を超え（Ｓ２１）、かつ今回の登録データ量が前回の送信データ量に一定のデータ量Ｖを加えた量を超えるとき（Ｓ２２）、破棄量は今回の登録データ量−（前回の送信データ量＋Ｖ）とする（Ｓ２３）。この破棄量は一定のデータ量Ｖ（例えば、１フレームのデータ量）を加えることにより、送信可能量の近辺で微調整する。求めた破棄量に達するまで、Ｂフレームを破棄する（Ｓ２４）。この破棄は、２ＰＡＳＳで行い、最初はＢフレームを１つおきに破棄していき、破棄量が足りない時に残りのＢフレームを破棄する。また、Ｂフレームの先頭に破棄マーク（例えば、ＮＵＬＬ）をセットし、その破棄マークがセットされていればそのＢフレームをスキップする。
【００４４】
例）下記のようなデータをクライアントに配信する場合、
端末１  Ｊ−１、Ｊ−２、Ｊ−３、…、Ｊｎ
端末２  Ｉ−１、Ｂ−１、Ｂ−２、Ｐ−１、Ｂ−３、Ｂ−４、Ｂ−ｎ、Ｉ−２、…
帯域により、
（１）Ｊ−１、Ｉ−１、Ｊ−３、Ｉ−２、…（Ｊの一部を破棄、ＰとＢを破棄）、
（２）Ｊ−１、Ｉ−１、Ｊ−２、Ｐ−２、Ｊ−３、…（Ｂを破棄）、
（３）Ｊ−１、Ｉ−２、Ｂ−ｌ、Ｐ−ｌ、Ｊ−２、…（Ｂの一部を破棄）
とした調整になり、ＭＰＥＧ画像のＩフレーム、Ｐフレーム、ＢフレームをＪＰＥＧ画像１枚分として扱い、かつＢフレーム、Ｐフレーム、Ｉフレームの順に破棄量を調整することになる。
【００４５】
（４）フレーム送信処理
フレーム送信処理部１８は、送信パケット管理テーブル１２を参照して、データをパケットに分割して、パケットを送信する。１パケット送信するごとに指定された時間待ってから、次のパケットを送信する。
【００４６】
（５）その他
端末切断等によりクライアントヘのデータ量が変化する場合、送信フレーム管理テーブルの登録データ量と送信データ量をリセットする。
【００４７】
したがって、本実施形態によれば、ＭＰＥＧ画像のＩフレーム、Ｐフレーム、ＢフレームをＪＰＥＧ画像１枚分として扱い、かつＢフレーム、Ｐフレーム、Ｉフレームの順に破棄量を調整することにより、ＪＰＥＧ画像とＭＰＥＧ画像が混在しても、できるだけ最新データを優先的に送信し、かつ低帯域データほど優先的にクライアントに送信する処理が確保できる。また、ＭＰＥＧ画像は実際の送信量をもとにＢフレームを調整するため、細かな調整ができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態１を示す送信バッファの構成図。
【図２】二次バッファの送信処理手順図。
【図３】本発明の実施形態２を示す送信処理装置の機能構成図。
【図４】送信フレームの管理処理の機能構成図。
【図５】送信パケット管理テーブルの例。
【図６】送信フレーム管理テーブルの例。
【図７】送信フレーム取り出し処理のフローチャート。
【図８】間引き処理のフローチャート。
【図９】ネットワークシステムの例。
【図１０】高帯域から低帯域までのデータ混在の例。
【図１１】データバッファリングの例。
【符号の説明】
【００４９】
ＣＢ１  送信バッファ
ＳＢ１，ＳＢ２  二次バッファ
１１  送信間隔計算処理部
１２  送信パケット管理テーブル
１４  フレーム構築処理部
１５  フレーム構築バッファ
１６  送信フレーム管理処理部
１７  送信フレーム管理テーブル
１８  フレーム送信処理部
【図１】
2009105624.tif 000003
【図２】
2009105624.tif 000004
【図３】
2009105624.tif 000005
【図４】
2009105624.tif 000006
【図５】
2009105624.tif 000007
【図６】
2009105624.tif 000008
【図７】
2009105624.tif 000009
【図８】
2009105624.tif 000010
【図９】
2009105624.tif 000011
【図１０】
2009105624.tif 000012
【図１１】
2009105624.tif 000013