(57)【要約】【課題】多人数へ音声データと映像データを配信する場合でも、音声データの送信周期を一定に保つことができるようにする。【解決手段】各クライアントにグループ番号を付与し、データ生成する度に開始位置が異なる各グループ用のバッファに蓄積して、一定個数蓄積できた時にクライアントへの送信処理を行うことにより、送信処理の負荷をグループ数分に抑えることができ、音声データの送信周期のずれを最小限に抑えることができる。【選択図】      図４
2005341291.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを分割して複数の送信先に送信するデータ配信装置であって、
前記複数の送信先を、複数のグループに分割する分割手段と、
前記分割データの生成に応じて、前記分割データをそれぞれ異なるタイミングにより、前記各グループに送信する送信手段と、
を具備することを特徴とするデータ配信装置。
【請求項２】
前記分割手段は、前記複数の送信先の数が変化した場合に、前記複数の送信先のグループ分けを変更することを特徴とする請求項１に記載のデータ配信装置。
【請求項３】
前記分割手段は、前記複数の送信先の数が変化した場合に、前記複数の送信先の前記複数のグループに対する所属を変更することを特徴とする請求項２に記載のデータ配信装置。
【請求項４】
前記分割手段は、前記複数の送信先の数が変化した場合に、前記複数のグループの数を変更することを特徴とする請求項２に記載のデータ配信装置。
【請求項５】
前記分割手段は、前記複数の送信先のグループ分けを変更した場合に、変更後のグループ分け状態に応じて、前記複数の送信先に関する情報を変更することを特徴とする請求項２に記載のデータ配信装置。
【請求項６】
前記データは、音声データであることを特徴とする請求項１乃至５のいずれか１項に記載のデータ配信装置。
【請求項７】
入力されたデータを分割して複数の送信先に送信するデータ配信装置を制御する方法であって、
前記複数の送信先を、複数のグループに分割する分割工程と、
前記分割データの生成に応じて、前記分割データをそれぞれ異なるタイミングにより、前記各グループに送信する送信工程と、
を具備することを特徴とするデータ配信装置の制御方法。
【請求項８】
前記分割工程では、前記複数の送信先の数が変化した場合に、前記複数の送信先のグループ分けを変更することを特徴とする請求項７に記載のデータ配信装置の制御方法。
【請求項９】
前記分割工程では、前記複数の送信先の数が変化した場合に、前記複数の送信先の前記複数のグループに対する所属を変更することを特徴とする請求項８に記載のデータ配信装置の制御方法。
【請求項１０】
前記分割工程では、前記複数の送信先の数が変化した場合に、前記複数のグループの数を変更することを特徴とする請求項８に記載のデータ配信装置の制御方法。
【請求項１１】
前記分割工程では、前記複数の送信先のグループ分けを変更した場合に、変更後のグループ分け状態に応じて、前記複数の送信先に関する情報を変更することを特徴とする請求項８に記載のデータ配信装置の制御方法。
【請求項１２】
前記データは、音声データであることを特徴とする請求項７乃至１１のいずれか１項に記載のデータ配信装置の制御方法。
【請求項１３】
請求項７乃至１２のいずれか１項に記載の制御方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムをコンピュータ読み取り可能に記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、インターネット等のネットワークを介して、多人数に音声や動画等の連続データを伝送する技術に関する。
【背景技術】
【０００２】
近年、ＩＰ（Internet Protocol）ネットワークを利用したライブ画像配信システムやビデオ会議システム等、リアルタイム性が要求されるデータの配信システムが提案されている。
【０００３】
一般に、上記ライブ配信システムやビデオ会議システムを多人数で使用すると、映像がコマ落ちとして見えたり、音声が途切れる場合がある。また、映像と音声の同期をとっている製品は少なく、長時間使用すると映像と音声の同期がずれてくるシステムもある。これらは、映像と音声のデータの性質が異なることが原因である。
【０００４】
MotionJPEGなどに代表される映像配信は、多量のデータを短時間に送信しなければならない。このため、多人数にリアルタイム性を重視してライブ配信する場合、必ずしも全員に全データを送信することはできず、再生側では多少のコマ落ちで再生することになってしまう。動画は多少コマ落ちしても人間の目にはわかりづらいため、このようなベストエフォート型の送信方法が採用されている。
【０００５】
VoIP（Voice over IP）などに代表される音声配信は、映像と比べ少量のデータを時間を掛けて一定間隔で送信しなければならない。また、多人数に配信する場合でも、全員に全データを一定間隔で送信することができないと、再生側では音途切れ、エコーなど不快な音として再生されてしまう。再生側ではネットワーク上での遅延などを考慮して、音声データをある程度バッファリングしてから音声の再生を行う。しかし、リアルタイム性を重視したライブ配信では数百ミリ秒〜数秒程度しかバッファリングしないこともあり、配信サーバ側は最低限一定間隔で送信処理を行う必要がある。
【０００６】
ここで、映像と音声を多人数に配信する場合の、従来技術の動作概要について以下に説明する。
【０００７】
まず、映像・音声配信サーバは、一般的に図１のようなシステムに構成されており、配信サーバ１０２は複数の機能ブロックを持っている。
【０００８】
複数のクライアント１０９はネットワーク１０８を介して、配信サーバ１０２に映像と音声の配信要求を送信する。配信サーバ１０２では、ネットワーク部１０７を通してセッション管理部１０５がクライアントからの送信要求を受信し、クライアント情報１０６を作成し、保存する。音声データ処理部１０３と映像データ処理部１０４はそれぞれ送信するデータを作成し、先程のクライアント情報１０６を参照し、セッション管理部１０５を通してネットワーク部１０７へデータ送信を要求する。そして、ネットワーク部１０７は送信要求に従って宛先のクライアントへデータを送り届ける。
【０００９】
多人数へ配信する場合は、音声データ処理部１０３と映像データ処理部１０４は、入力されたデータを、クライアント情報１０６に従って、全クライアントに送信する処理を行なう。
【特許文献１】特開２００２−２２３４２５
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来技術において、多人数に音声配信だけを行う場合の、音声データの生成タイミングと送信処理との時間関係を図２に示す。この例では、仮に一度に送信するデータの個数ＮをＮ＝４とする。
【００１１】
音声データが２００，２０１，…の順に生成され、４つ目の音声データ２０３が生成された時点で、２００〜２０３のデータをまとめてクライアントに送信し始め、全クライアントに送信完了するタイミングは音声データ２０５が生成されたタイミングとする。この場合、最終クライアントへ配信処理される周期である送信周期２１０と送信周期２１１はほぼ等しい。
【００１２】
図２のような音声配信処理に加えて映像配信処理も同時に行った場合の全送信処理タイミングを図３に示す。
【００１３】
映像配信処理と音声配信処理は、マルチタスク動作のため並列に送信処理をすることができるが、図１にも示した通りネットワーク部１０７は１つしか存在しないため、送信処理タイミングが重なってしまうと送信時間が今まで以上にかかってしまう。このため、送信周期３１０は図２の音声配信処理だけの場合の送信周期２１０より長くかかってしまう。また、送信周期３１１では映像配信処理とあまり重なっていないため影響をほとんど受けずに今までと同じ時間で送信を完了する。
【００１４】
このように、従来技術では、多人数に映像配信と音声配信を行った場合、音声の送信周期を一定に保つことは困難である。特に、送信装置の処理能力が低い場合により困難になる。
【００１５】
そこで、本発明は上述した事情に鑑みてなされたものであり、その目的は、多人数へ音声データと映像データを配信する場合でも、音声データの送信周期を一定に保つことができるようにすることである。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するために、本発明に係わるデータ配信装置は、入力されたデータを分割して複数の送信先に送信するデータ配信装置であって、前記複数の送信先を、複数のグループに分割する分割手段と、前記分割データの生成に応じて、前記分割データをそれぞれ異なるタイミングにより、前記各グループに送信する送信手段と、を具備することを特徴とする。
【００１７】
また、この発明に係わるデータ配信装置において、前記分割手段は、前記複数の送信先の数が変化した場合に、前記複数の送信先のグループ分けを変更することを特徴とする。
【００１８】
また、この発明に係わるデータ配信装置において、前記分割手段は、前記複数の送信先の数が変化した場合に、前記複数の送信先の前記複数のグループに対する所属を変更することを特徴とする。
【００１９】
また、この発明に係わるデータ配信装置において、前記分割手段は、前記複数の送信先の数が変化した場合に、前記複数のグループの数を変更することを特徴とする。
【００２０】
また、この発明に係わるデータ配信装置において、前記分割手段は、前記複数の送信先のグループ分けを変更した場合に、変更後のグループ分け状態に応じて、前記複数の送信先に関する情報を変更することを特徴とする。
【００２１】
また、この発明に係わるデータ配信装置において、前記データは、音声データであることを特徴とする。
【００２２】
また、本発明に係わるデータ配信装置の制御方法は、入力されたデータを分割して複数の送信先に送信するデータ配信装置を制御する方法であって、前記複数の送信先を、複数のグループに分割する分割工程と、前記分割データの生成に応じて、前記分割データをそれぞれ異なるタイミングにより、前記各グループに送信する送信工程と、を具備することを特徴とする。
【００２３】
また、この発明に係わるデータ配信装置の制御方法において、前記分割工程では、前記複数の送信先の数が変化した場合に、前記複数の送信先のグループ分けを変更することを特徴とする。
【００２４】
また、この発明に係わるデータ配信装置の制御方法において、前記分割工程では、前記複数の送信先の数が変化した場合に、前記複数の送信先の前記複数のグループに対する所属を変更することを特徴とする。
【００２５】
また、この発明に係わるデータ配信装置の制御方法において、前記分割工程では、前記複数の送信先の数が変化した場合に、前記複数のグループの数を変更することを特徴とする。
【００２６】
また、この発明に係わるデータ配信装置の制御方法において、前記分割工程では、前記複数の送信先のグループ分けを変更した場合に、変更後のグループ分け状態に応じて、前記複数の送信先に関する情報を変更することを特徴とする。
【００２７】
また、この発明に係わるデータ配信装置の制御方法において、前記データは、音声データであることを特徴とする。
【００２８】
また、本発明に係わるプログラムは、上記の制御方法をコンピュータに実行させることを特徴とする。
【００２９】
また、本発明に係わる記憶媒体は、上記のプログラムをコンピュータ読み取り可能に記憶したことを特徴とする。
【発明の効果】
【００３０】
本発明によれば、多人数へ音声データと映像データを配信する場合でも、音声データの送信周期を一定に保つことが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の好適な実施形態について、図面を参照して説明する。
【００３２】
図４は、本発明のいくつかの実施形態に共通するシステム構成を示すブロック図である。
【００３３】
図４において、４００は撮像装置、４０１は音声入力装置、４０２は配信サーバ、４０３は音声データ処理部、４０４は映像データ処理部、４０５はセッション管理部、４０７はネットワーク部であり、これらは、それぞれ図１に示した撮像装置１００、音声入力装置１０１、配信サーバ１０２、音声データ処理部１０３、映像データ処理部１０４、セッション管理部１０５、ネットワーク部１０７と類似する機能を果たす。
【００３４】
本発明の実施形態では、これらのブロックに加え、音声データ処理部４０３、映像データ処理部４０４が参照するクライアント情報４０６を記憶する記憶部にグループ番号を保存する領域を準備する。また、グループ毎にどこまでバッファ蓄積が完了しているか、また、次の音声データが入力されたらどのグループの送信処理を実行するか、を管理するグループ番号管理部４０８を備える。
【００３５】
（第１の実施形態）
図４において、セッション管理部４０５は、クライアントからの送信要求により、クライアントにグループ番号を付与し、クライアント情報４０６を作成し、保存する。
【００３６】
本実施形態では、グループ番号の範囲を１〜４の４グループに分割する。グループ番号の付与方法は、接続時にグループ番号毎に所属するクライアント数が同じになるように付与する。
【００３７】
音声データ処理部４０３では、音声入力装置４０１から入力された音声データを適当な大きさに分割し、通し番号（識別子）を付与し、グループ番号管理部４０８に送る。グループ番号管理部４０８では、グループ毎に管理しているバッファから識別子を参照し、既に送信済みの分割された音声データの次の音声データから所定数の音声データをまとめてネットワーク部４０７を介して送信対象のグループに送信する。
【００３８】
グループ番号管理部４０８で実施する処理の流れについて図５のフローチャートを参照して説明する。
【００３９】
セッション管理部４０５は、クライアント情報を作成し、保存すると、グループ番号管理部４０８をスタートさせる。
【００４０】
グループ番号管理部４０８は、まず、作業中のグループ番号を０とする（ステップＳ５０１）。
【００４１】
次に、クライアント情報を参照して、接続クライアントが存在するか判定（ステップＳ５０２）し、もし存在しなければここで処理を終了する。
【００４２】
ステップＳ５０２で接続クライアントが存在する場合には、作業中のグループ番号をインクリメントし、作業中グループ番号が１〜Ｎ（本実施形態ではＮ＝４）の範囲で順番に増えていくように設定する（ステップＳ５０３）。
【００４３】
そして、入力された音声データを一定サイズごとに分割して読込み（ステップＳ５０４）、グループ番号毎に管理しているそれぞれのバッファに保存する（ステップＳ５０５）。
【００４４】
次にクライアント情報を検索（ステップＳ５０６）し、次のクライアント情報があるか判定する（ステップＳ５０７）。接続中の全クライアントの検索が終了した場合、接続しているクライアントがいるか判定する処理（ステップＳ５０２）に戻る。一方、ステップＳ５０７で、接続中の全クライアントの検索が終了していない場合、今検索したクライアント情報中のグループ番号が現在作業中のグループ番号と一致するか判定し（ステップＳ５０８）、一致すれば、現在作業中のグループ番号に対応するバッファが蓄積している音声データの送信処理を行い（ステップＳ５０９）、一致していなければ、何もしない。そして、クライアント情報の検索（ステップＳ５０６）に戻る。
【００４５】
本実施形態において多人数に音声配信だけを行う場合の、音声データの生成タイミングと送信処理との時間関係を図６に示す。
【００４６】
グループ１の最終クライアントの送信周期に注目すると、音声配信だけの場合なので、当然送信周期６１０と送信周期６１１は等しい（送信周期は図２の場合と同じである）。
【００４７】
図６の音声配信処理に加えて映像配信処理も同時に行った場合の全送信処理タイミングを図７に示す。
【００４８】
映像配信処理と音声配信処理が同時に実行された場合、処理タイミングが重なったグループに対する音声の送信周期は少し遅れるが、他のグループに対する影響は抑制され、全体としては送信周期７１０と７１１に大きな差は発生しないことがわかる。
【００４９】
このように、音声配信処理において、分割されたある同一の音声データをグループ毎に送信タイミングをずらしているため、送信処理の負荷をグループ数分に分散することができる。そのため、映像配信など他の処理タイミングと重なった場合でも、音声データの送信周期の誤差およびクライアントに対する影響を最小限に抑えることができる。
【００５０】
また、クライアントから見ても、そのクライアントが属するグループに対応するバッファが蓄積された時点でサーバから送出されるので、リアルタイム性も損なわれることがない。
【００５１】
（第２の実施形態）
多人数が映像配信・音声配信機能を利用する場合、グループ番号毎に均等な人数になるように割り振っても、切断タイミングによって各グループ番号に所属する人数に差が生じてくる。より送信間隔の誤差を小さくするためには、各グループ番号に所属する人数は少なくし、送信処理を分散する方がよい。
【００５２】
このため、本実施形態では、接続時だけでなくクライアントの切断されたタイミングでも所属グループの再配置を行う。これを図８を用いて説明する。
【００５３】
例えば、現在、グループ１に３人、グループ２〜４に２人のクライアントが所属しており、グループ４のクライアントが切断すると、各グループの所属人数は、３，２，２，１となる。送信処理分散の観点から考えると、各グループの所属人数は全て２人とするのが望ましい。このため、グループ１のクライアントをグループ４に移動することを考える。
【００５４】
グループ１の動作として、音声データ８０３まで蓄積した時点で送信処理が行われる。この後、グループ１の１人のクライアントの所属をグループ４に変更すると共に、音声データ８０３まで送信完了したことをクライアント情報に保存する。
【００５５】
グループ４の動作では、図８に示す様に、音声データ８０６が生成された時に再度送信処理が行われ、８０３〜８０６の音声データが送信される。この場合、グループ１からグループ４に所属が変更されたクライアントには、既に音声データ８０３までが送信されており、クライアント情報中に音声データ８０３まで送信完了したことが保存されているので、音声データ８０４〜８０６までの合計３つ分の音声データの送信が行なわれる。
【００５６】
このように、多人数に配信している際、クライアントの切断タイミングで所属グループの再配置を行うことにより、各グループ番号に所属するクライアント数を均等に保つことができ、常に送信周期のずれを最低限に保つことができる。
【００５７】
（第３の実施形態）
第１の実施形態ではグループ数＝４、バッファ蓄積数＝４として説明したが、接続クライアント数が少ない場合は、グループ数を４つも準備する必要はなく、４未満のグループ数でも一定の送信周期を保つことができる可能性が高い。また、グループ数を減らすことは、装置のメモリなど資源の効率化にも非常に有効である。
【００５８】
具体的には、接続するクライアント数がある一定の人数Ａになるまでは、グループ数は１つ、クライアント数がＡ〜２ｘＡまではグループ数は２、…、クライアント数が（Ｍ−１)ｘＡ〜ＭｘＡまではグループ数はＭに分割する。Ｍの最大値は、バッファ蓄積数である。
【００５９】
バッファ蓄積数以上にグループ数Ｍを多くしようとしても送信タイミングが、他のどれかのグループと重複してしまうため、バッファ蓄積数Ｍ以上に分割することは無意味である。
【００６０】
グループ数の増減により、クライアントの所属するグループ番号に変更が生じるが、グループ番号間のクライアントの移動方法については第２の実施形態の方法を用いることで解決することができる。
【００６１】
このように、接続するクライアント数の増減に応じて、グループ数を変更することにより装置自体の資源を効率的に活用することができる。
【００６２】
以上説明したように、上記の実施形態によれば、クライアントから音声の配信要求を受信したときに、各クライアントにグループ番号を付与し、データを生成する度に開始位置が異なる各グループ用のバッファに蓄積して、一定個数蓄積できた時にクライアントへの送信処理を行うことにより、送信処理の負荷をグループ数分に分散することができ、音声データの送信周期のずれを最小限に抑えることができる。実際に映像と音声配信サーバによりグループ数４、蓄積バッファ数４ｘ１０ｍｓとして実験した結果、送信周期のずれは±５ｍｓから±１ｍｓとなり高い効果を得ることができた。
【００６３】
また、グループ毎に開始位置の異なるバッファを使用するので、指定個数蓄積完了するタイミングが異なり、常に最新のデータが生成されたタイミングでクライアントにデータを送信することができ、リアルタイム性も損なわれない。
【００６４】
（他の実施形態）
また、各実施形態の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６６】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００６７】
【図１】従来の映像・音声配信システムの構成と配信サーバの機能ブロック構造を示す図である。
【図２】多人数に音声配信を行った場合の従来の動作タイミング図である。
【図３】多人数に音声配信と映像配信を行った場合の従来の動作タイミング図である。
【図４】本発明の実施形態に係わる映像・音声配信サーバの機能ブロック構造を示す図である。
【図５】グループ番号管理部で実施する処理を示すフローチャートである。
【図６】本発明の第１の実施形態における、多人数に音声配信を行った場合の動作タイミング図である。
【図７】本発明の第１の実施形態における、多人数に音声配信と映像配信を行った場合の動作タイミング図である。
【図８】クライアントのグループ間移動による送信データ遷移図である。
【符号の説明】
【００６８】
４００  撮像装置
４０１  音声入力装置
４０２  配信サーバ
４０３  音声データ処理部
４０４  映像データ処理部
４０５  セッション管理部
４０６  クライアント情報
４０７  ネットワーク部
４０８  グループ番号管理部
【図１】
2005341291.tif 000003
【図２】
2005341291.tif 000004
【図３】
2005341291.tif 000005
【図４】
2005341291.tif 000006
【図５】
2005341291.tif 000007
【図６】
2005341291.tif 000008
【図７】
2005341291.tif 000009
【図８】
2005341291.tif 000010