(57)【要約】【課題】端末毎のビットレートの変換を、より少ないリソースで実現する。【解決手段】ソースストリームデータから低レートの少なくとも一つのストリームデータを生成する変換装置と、前記ストリームデータを選択して出力する切替装置とを備えるデータ配信システムであって、前記切替装置は、ＧＯＰ毎に、前記ソースストリームデータと前記変換されたストリームデータとのいずれかを選択して、所望のレートのストリームデータを生成する。【選択図】図１
2011040879.tif 000002
【特許請求の範囲】
【請求項１】
ソースストリームデータから低レートの少なくとも一つのストリームデータを生成する変換装置と、
前記ストリームデータを選択して出力する切替装置とを備えるデータ配信システムであって、
前記切替装置は、ＧＯＰ毎に、前記ソースストリームデータと前記変換されたストリームデータとのいずれかのＧＯＰを選択して、所望のレートのストリームデータを生成することを特徴とするデータ配信システム。
【請求項２】
前記切替装置は、
生成されるストリームデータのレートが所定の目標レートより高い場合、低いレートのストリームデータのＧＯＰを選択し、
生成されるストリームデータのレートが前記目標レートより低い場合、高いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１に記載のデータ配信システム。
【請求項３】
前記切替装置は、
前記ストリームデータのレート毎に、前記ストリームデータを格納するリングバッファを備え、
前記ストリームデータを読み出す前記リングバッファを選択し、前記選択されたリングバッファからＧＯＰのデータを読み出すことによって、前記所望のレートのストリームデータを生成することを特徴とする請求項１に記載のデータ配信システム。
【請求項４】
前記切替装置は、前記リングバッファに蓄積されているデータの量が所定の閾値より少なくなった場合、低いレートのストリームデータのＧＯＰを選択することを特徴とする請求項３に記載のデータ配信システム。
【請求項５】
前記切替装置は、
前記リングバッファにデータが書き込まれる位置を示す書込ポインタと、前記リングバッファからデータが読み出される位置を示す読出ポインタとによって、前記リングバッファを制御し、
前記リングバッファ上で前記書込ポインタに対向する位置を前記読出ポインタの目標位置に設定し、
前記読出ポインタが、前記目標位置より進んでいる場合、高いレートのストリームデータのＧＯＰを選択することを特徴とする請求項３に記載のデータ配信システム。
【請求項６】
前記データ配信システムは、前記ソースストリームデータと前記変換されたストリームデータとを合成するマルチプレクサをさらに備え、
前記切替装置は、前記マルチプレクサによって合成されたストリームデータの中から、前記ソースストリームデータのＧＯＰと前記変換されたストリームデータのＧＯＰとのいずれかを選択して、所望のレートのストリームデータを生成することを特徴とする請求項１に記載のデータ配信システム。
【請求項７】
前記データ配信システムは、前記変換装置の負荷を監視する負荷監視装置をさらに備え、
前記負荷監視装置によって監視された負荷が所定の閾値を超えた場合、前記変換装置は生成されるストリームデータのレートを低くすることを特徴とする請求項１に記載のデータ配信システム。
【請求項８】
前記変換装置は、オープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰを含むストリームデータを生成し、
前記切替装置は、
ストリームデータのレートが切り替えられない場合、オープンＧＯＰを選択し、
ストリームデータのレートが切り替えられる場合、切り替え前のレートのストリームデータの後方クローズドＧＯＰ及び切り替え後のレートのストリームデータの前方クローズドＧＯＰを選択することを特徴とする請求項１に記載のデータ配信システム。
【請求項９】
前記変換装置は、
生成するストリームデータのレートが可変であって、
オープンＧＯＰを含むストリームデータを生成し、
ストリームデータのレートが切り替えられる場合、切り替え前のストリームデータのレートと切り替え後のストリームデータのレートとの差が所定値以下になるように、生成されるストリームデータのレートを制御することを特徴とする請求項１に記載のデータ配信システム。
【請求項１０】
ソースストリームデータから低レートの少なくとも一つのストリームデータを生成する変換装置に接続される切替装置であって、
ＧＯＰ毎に、前記ソースストリームデータと前記変換されたストリームデータとのいずれかのＧＯＰを選択して、所望のレートのストリームデータを生成することを特徴とする切替装置。
【請求項１１】
前記切替装置は、
生成されるストリームデータのレートが所定の目標レートより高い場合、低いレートのストリームデータのＧＯＰを選択し、
生成されるストリームデータのレートが前記目標レートより低い場合、高いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１０に記載の切替装置。
【請求項１２】
前記切替装置は、
前記ストリームデータのレート毎に、前記ストリームデータを格納するリングバッファを備え、
前記ストリームデータを読み出す前記リングバッファを選択し、前記選択されたリングバッファからＧＯＰのデータを読み出すことによって、前記所望のレートのストリームデータを生成することを特徴とする請求項１０に記載の切替装置。
【請求項１３】
前記切替装置は、前記リングバッファに蓄積されているデータの量が所定の閾値より少なくなった場合、低いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１２に記載の切替装置。
【請求項１４】
前記切替装置は、
前記リングバッファにデータが書き込まれる位置を示す書込ポインタと、前記リングバッファからデータが読み出される位置を示す読出ポインタとによって、前記リングバッファを制御し、
前記リングバッファ上で前記書込ポインタに対向する位置を前記読出ポインタの目標位置に設定し、
前記読出ポインタが、前記目標位置より進んでいる場合、高いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１２に記載の切替装置。
【請求項１５】
ストリームデータのレートを変換する変換装置と、前記ストリームデータを選択して出力する切替装置とを備えるデータ配信システムにおけるデータ配信方法であって、
前記変換装置は、ソースストリームデータから低レートの少なくとも一つのストリームデータを生成し、
前記切替装置は、ＧＯＰ毎に、前記ソースストリームデータと前記変換されたストリームデータとのいずれかのＧＯＰを選択して、所望のレートのストリームデータを生成して、前記生成されたストリームデータを配信することを特徴とするデータ配信方法。
【請求項１６】
前記方法は、
前記切替装置が、生成されるストリームデータのレートが所定の目標レートより高い場合、低いレートのストリームデータのＧＯＰを選択し、
前記切替装置が、生成されるストリームデータのレートが前記目標レートより低い場合、高いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１５に記載のデータ配信方法。
【請求項１７】
前記切替装置は、前記ストリームデータのレート毎に、前記ストリームデータを格納するリングバッファを備え、
前記方法は、
前記切替装置が、前記ストリームデータを読み出す前記リングバッファを選択し、前記選択されたリングバッファからＧＯＰのデータを読み出すことによって、前記所望のレートのストリームデータを生成することを特徴とする請求項１５に記載のデータ配信方法。
【請求項１８】
前記方法は、
前記切替装置が、前記リングバッファに蓄積されているデータの量が所定の閾値より少なくなった場合、低いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１７に記載のデータ配信方法。
【請求項１９】
前記方法は、
前記切替装置が、前記リングバッファにデータが書き込まれる位置を示す書込ポインタと、前記リングバッファからデータが読み出される位置を示す読出ポインタとによって、前記リングバッファを制御し、
前記切替装置が、前記リングバッファ上で前記書込ポインタに対向する位置を前記読出ポインタの目標位置に設定し、
前記切替装置が、前記読出ポインタが前記目標位置より進んでいる場合、高いレートのストリームデータのＧＯＰを選択することを特徴とする請求項１７に記載のデータ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画を配信するシステムに関し、特に、任意のビットレートの動画ストリームを配信するシステムに関する。
【背景技術】
【０００２】
従来、デジタル化された動画データをネットワークに送出する場合、各種のビットレートのディジタル動画データを生成し、ネットワークの使用可能帯域に合ったビットレートを有するディジタル動画データを選択して送出している。すなわち、ビットレートが高い動画像は高画質であるが、通信路の帯域を必要とする。一方、ビットレートが低いほど画質は低いが、通信路は狭帯域でよい。このため、例えば特許文献１には、複数のデータ変換手段（各種ビット用エンコーダシステム）を用いて、異なるビットレートを有する複数のデジタル動画データに変換する符号化システムが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３４１４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、前述した特許文献１に記載された技術によると、あらかじめ決められた何種類かのビットレートの動画データのいずれかを送信するため、帯域変動の大きなネットワーク（例えば、無線通信ネットワーク）であった場合に、クライアント端末毎の帯域変動に対応することが困難である。また、端末毎に帯域を制御するためには、端末毎に（すなわち、端末の数だけ）ビットレート変換装置を設ける必要がある。
【０００５】
このため、端末毎のビットレートの変換を、より少ないリソースで実現するシステムが求められている。
【課題を解決するための手段】
【０００６】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ソースストリームデータから低レートの少なくとも一つのストリームデータを生成する変換装置と、前記ストリームデータを選択して出力する切替装置とを備えるデータ配信システムであって、前記切替装置は、ＧＯＰ毎に、前記ソースストリームデータと前記変換されたストリームデータとのいずれかのＧＯＰを選択して、所望のレートのストリームデータを生成する。
【発明の効果】
【０００７】
本発明の代表的な実施の形態によれば、リアルタイムに生成される動画像を適切なビットレートに変換して送信するシステムを、少ないリソースで実現することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施の形態の動画ストリーム配信システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態のマルチプレクサの動作を示す説明図である。
【図３】本発明の第１の実施の形態のストリーム切替装置７Ａ〜７Ｅによる処理を示す説明図である。
【図４】本発明の第１の実施の形態のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッドによる処理のフローチャートである。
【図５】本発明の第１の実施の形態のＧＯＰ選択処理の一例（方法１）フローチャートである。
【図６】本発明の第１の実施の形態のＧＯＰ選択処理の一例（方法２）フローチャートである。
【図７】本発明の第１の実施の形態の方法１によってレートが選択された映像データの変化を示す説明図である。
【図８】本発明の第２の実施の形態の動画ストリーム配信システムの構成を示すブロック図である。
【図９】本発明の第２の実施の形態のマルチプレクサの動作を示す説明図である。
【図１０】本発明の第１の実施の形態のストリーム切替装置による処理を示す説明図である。
【図１１】本発明の第２の実施の形態のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッドによる処理のフローチャートである。
【図１２】本発明の第２の実施の形態のＧＯＰ選択処理の一例（方法１）フローチャートである。
【図１３】本発明の第２の実施の形態のＧＯＰ選択処理の一例（方法２）フローチャートである。
【図１４】本発明の第３の実施の形態の動画ストリーム配信システムの構成を示すブロック図である。
【図１５】従来のビットレート変換装置によって生成される映像フレームの説明図である。
【図１６】第３の実施の形態のビットレート変換装置によって生成される映像フレームの説明図である。
【図１７】第３の実施の形態の切替装置によって生成される映像フレームの説明図である。
【発明を実施するための形態】
【０００９】
＜実施形態１＞
図１は、本発明の第１の実施の形態の動画ストリーム配信システムの構成を示すブロック図である。
【００１０】
第１の実施の形態の動画ストリーム配信システムは、カムコーダ１、ネットワーク２、映像受信装置３、複数のビットレート変換装置４Ａ〜４Ｄ、マルチプレクサ５、負荷監視装置６、複数のストリーム切替装置７Ａ〜７Ｅ及び複数の映像配信装置８Ａ〜８Ｅを備える。なお、ビットレート変換装置は複数ではなく、１台であってもよい。この場合、ソース映像のビットレートと、ビットレート変換装置によって変換されたビットレートとの間で、配信される映像のビットレートが制御される。
【００１１】
カムコーダ１は、動画像撮像装置及び動画像符号化装置を備え、例えば、ビデオカメラ、携帯電話などである。カムコーダ１は、動画像符号化装置によって、撮影した画像を符号化することによって圧縮し、符号化された動画像データ（（ソース映像）をネットワーク２を通じて映像受信装置３に送信する。例えば、ＭＰＥＧ２／Ｈ．２６４エンコーダを用いて、ＭＰＥＧ２／Ｈ．２６４で符号化することができる。
【００１２】
ネットワーク２は、インターネット、携帯電話網、ＮＧＮ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋ）などの広域ネットワークでも、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの狭い地域内のネットワークでもよい。
【００１３】
なお、カムコーダ１、ネットワーク２は、本発明の必須の構成ではない。動画ストリーム配信システムがカムコーダ１及びネットワーク２を備えない場合、映像受信装置３に符号化された動画像データ（例えば、録画された動画像データ）が直接入力されればよい。
【００１４】
映像受信装置３は、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータであり、カムコーダ１から送信される符号化されたソース映像を、ネットワーク２を介して受信し、後段のビットレート変換装置４Ａ〜４Ｄに出力する。すなわち、各ビットレート変換装置に対し、同じソース映像を与える。映像受信装置３は、例えば、ＭＰＥＧ２−ＴＳ形式に従ってデータを出力する。なお、出力されるデータは、ＴＳパケット中のビデオＥＳ（Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）だけでよい。
【００１５】
ビットレート変換装置４Ａ〜４Ｄは、ソース映像を、ソース映像とは異なる低いビットレートの符号化データに変換する。ビットレート変換装置４Ａ〜４Ｄは、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータでもよく、専用ハードウェア（例えば、ＶｉＸＳ  ＳｙｓｔｅｍｓのＸＣｏｄｅ２１１１）によって処理を行うものでもよい。各ビットレート変換装置４Ａ〜４Ｄは、変換結果を後段のマルチプレクサ５に出力する。
【００１６】
なお、映像受信装置３と各ビットレート変換装置４Ａ〜４Ｄとが別のコンピュータに実装される場合、両装置をネットワークによって接続するとよい。また、ビットレート変換装置４Ａ〜４Ｄが専用ハードウェアによって実現される場合、映像受信装置３とビットレート変換装置４Ａ〜４Ｄとの間は、ＰＣＩバス、ＰＣＩＥｘｐｒｅｓｓ等の装置内接続用の規格に従って接続する。
【００１７】
マルチプレクサ５は、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータであり、映像受信装置３が実装されるコンピュータと同じコンピュータに実装されても、別のコンピュータに実装されてもよい。マルチプレクサ５は、各ビットレート変換装置４Ａ〜４Ｄから、各々に設定されたビットレートの映像ストリーム（例えば、ＭＰＥＧ２−ＴＳ形式）に変換された動画像データを受け取り、上記複数のストリームをＧＯＰ単位でマルチプレクスする（図２参照）。このとき、音声ＥＳを多重化してもよい。
【００１８】
なお、ビットレート変換装置４Ａ〜４Ｄとマルチプレクサ５とが別のコンピュータに実装される場合、両装置をネットワークによって接続するとよい。また、ビットレート変換装置４Ａ〜４Ｄが専用ハードウェアによって実現される場合、マルチプレクサ５は、映像受信装置３が実装されるコンピュータのプロセッサと同一のプロセッサで動作するものでもよい。
【００１９】
また、マルチプレクサ５を設けず、各ビットレート変換装置４Ａ〜４Ｄが独立して、ストリーム切替装置７Ａ〜７Ｅに、ビットレートが変換されたＴＳパケットをブロードキャストし、ストリーム切換装置７Ａ〜７Ｅで複数ストリームのパケットを収集し、収集したパケットを並べ替えてもよい。
【００２０】
ストリーム切替装置７Ａ〜７Ｅは、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータであり、Ｓｔｒｅａｍ  Ｒｅｃｅｉｖｅｒスレッド７１と、Ｓｔｒｅａｍ  Ｗｒｉｔｅｒスレッド７３と、複数のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４とが動作している（図３参照）。
【００２１】
Ｓｔｒｅａｍ  Ｗｒｉｔｅｒスレッド７３は、受信したストリームをデマルチプレクスし、デマルチプレクスされたストリームをリングバッファ構造の共有メモリに書き込む。Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、映像配信装置８Ａ〜８Ｅからの要求に従ってポインタを前方に進めながらリングバッファからＧＯＰを読み出し、読み出された動画像データを出力する。
【００２２】
その際、ストリーム切替装置７Ａ〜７Ｅは、送信レートが目標レートより高ければより低いレートの動画像データを、低ければより高いレートの動画像データを選択する。ＧＯＰの選択方法については後述する。目標レートは、映像配信装置８Ａ〜８Ｅとクライアント端末（図示省略）との間の通信帯域の値を用いてもよい。
【００２３】
マルチプレクサ５とストリーム切替装置７Ａ〜７Ｅとの間は、ブロードキャスト通信が可能なネットワークによって接続するとよい。
【００２４】
映像配信装置８Ａ〜８Ｅは、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータである。映像配信装置８Ａ〜８Ｅは、クライアント端末（図示省略）に映像を配信する装置であり、Ｗｅｂサーバ及びＲＴＰサーバに実装することができる。なお、映像配信装置８Ａ〜８Ｅは、ストリーム切換装置７Ａ〜７Ｅが実装されるコンピュータのＣＰＵと同一のＣＰＵで動作するものでもよい。
【００２５】
ストリーム切換装置７Ａ〜７Ｅと映像配信装置８Ａ〜８Ｅとが別のコンピュータに実装される場合、両装置をネットワークによって接続するとよい。
【００２６】
負荷監視装置６は、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータであり、システムのネットワーク負荷および各装置のプロセッサの負荷を監視する。特に、ストリーム切換装置７Ａ〜７Ｅのプロセッサの負荷、映像配信装置８Ａ〜８Ｅのプロセッサの負荷、および映像配信装置８Ａ〜８Ｅが接続されるネットワークの負荷と予め定められた閾値とを、各々比較する。そして、これらの負荷率が予め定められた閾値（例えば、上限値の９０％）を超えた場合、各ビットレート変換装置４Ａ〜４Ｄから出力される動画像データのビットレートを下げることによって、システム全体の負荷を下げる。一方、これらの負荷率が予め定められた別の閾値（例えば、上限値の８０％）未満となった場合は、各ビットレート変換装置に割り当てられた初期値（２５Ｍｂｐｓ、２０Ｍｂｐｓ、１５Ｍｂｐｓ、１０Ｍｂｐｓなど）を上限として、各ビットレート変換装置から出力される動画像データのビットレートを上げる。
【００２７】
図２は、本発明の第１の実施の形態のマルチプレクサ５の動作を示す説明図である。なお、図２には、ビットレート変換装置４Ａ〜４Ｃの各々から出力された、２５Ｍｂｐｓ、２０Ｍｂｐｓ及び１５Ｍｂｐｓの動画像データを多重化することによって合成した信号を示す。
【００２８】
信号Ａは、ビットレート変換装置４Ａから出力された２５Ｍｂｐｓの動画像データ（例えば、ＭＰＥＧ２−ＴＳ形式の映像ストリーム）であり、ＰＩＤ２５０が付されている。信号Ｂは、ビットレート変換装置４Ｂから出力された２０Ｍｂｐｓの動画像データであり、ＰＩＤ２００が付されている。信号Ｃは、ビットレート変換装置４Ｃから出力された１５Ｍｂｐｓの動画像データであり、ＰＩＤ１５０が付されている。これらの動画像データは、単一のビデオＥＳをＴＳ形式にパケット化したものである。ここで、ＰＩＤとは、ＴＳ形式に多重化された各ストリームを識別するための識別子である。
【００２９】
マルチプレクサ５は、２５Ｍｂｐｓ、２０Ｍｂｐｓ及び１５Ｍｂｐｓの動画像データをＧＯＰ単位で連結して、マルチプレクスされたＴＳストリームを生成する。このマルチプレクスされたＴＳストリームには、各ビットレートのＧＯＰ毎の動画像データがＧＯＰの順に含まれている。なお、音声ＥＳを多重化してもよい。
【００３０】
ストリーム切換装置７Ａ〜７Ｅは、動画像データのビットレートをＰＩＤによって判定し、必要なビットレートの動画像データのＧＯＰを選択する。
【００３１】
図３は、本発明の第１の実施の形態のストリーム切替装置７Ａ〜７Ｅによる処理を示す説明図である。図３には、ビットレート変換装置４Ａ〜４Ｃの各々から出力された、多重化された２５Ｍｂｐｓ、２０Ｍｂｐｓ及び１５Ｍｂｐｓの動画像データを分離して出力する様子を示す。
【００３２】
前述したように、各ストリーム切替装置７Ａ〜７Ｅでは、Ｓｔｒｅａｍ  Ｒｅｃｅｉｖｅｒスレッド７１、Ｓｔｒｅａｍ  Ｗｒｉｔｅｒスレッド７３、及び複数のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が動作している。
【００３３】
また、各ストリーム切替装置７Ａ〜７Ｅは、複数のリングバッファ７５を備え、各リングバッファには、各ビットレートのデータがＧＯＰ単位で格納されており、各ＧＯＰのデータは、参照ポインタ７６によって、矢印の向きに結合されている。各スレッド７１、７２、７３は、この参照ポインタ７６を手繰りながら、各リングバッファに格納されたデータを処理する。このリングバッファは、各スレッドからアクセス可能な共有メモリに設けられる。
【００３４】
Ｓｔｒｅａｍ  Ｒｅｃｅｉｖｅｒスレッド７１は、マルチプレクサ５からＴＳデータを受信し、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）バッファ７２に格納する。
【００３５】
Ｓｔｒｅａｍ  Ｗｒｉｔｅｒスレッド７３は、Ｓｔｒｅａｍ  Ｒｅｃｅｉｖｅｒスレッド７１が受信したストリームをデマルチプレクスし、各ビットレートのデータを対応するリングバッファに書き込む。
【００３６】
すなわち、Ｓｔｒｅａｍ  Ｗｒｉｔｅｒスレッド７３は、ＴＳデータをＰＩＤ毎に仕分けし、対応するリングバッファの書き込みポイントタに書き込む。このデータの書き込みは、同一フレームのＧＯＰを一度に書き込む不可分操作（アトミック操作）によって行われる。すなわち、リングバッファへのデータの書き込み中は、データが書き込まれるエントリへの、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４によるアクセスが禁止される。なお、最も直近にデータが書き込まれたエントリがリングバッファの先頭である。
【００３７】
Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、映像配信装置の要求に従って読み出しポインタを前方に進めながらリングバッファからＧＯＰを読み出して、読み出されたＧＯＰを出力する。なお、読み出されたＧＯＰに音声ＥＳを多重化してもよい。
【００３８】
図４は、本発明の第１の実施の形態のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４による処理のフローチャートである。
【００３９】
Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が動作するプロセッサは、まず、受信側のクライアント端末からの動画像送信リクエストを待つ（Ｓ１０１）。
【００４０】
そして、送信リクエストを受信した後、（１）書き込みポインタが読み出しポインタを追い越したか、又は、（２）読み出しポインタから書き込みポインタまでの距離がリングバッファ長の９０％以上となったかを判定する（Ｓ１０２）。
【００４１】
この条件（１）又は（２）のいずれかが成立した場合、ＧＯＰをスキップし、読み出しポインタと書き込みポインタとの距離が、リングバッファ長の５０％程度となるように調整する。すなわち、この条件（１）が成立した場合、リングバッファが既にオーバーフローしている。また、条件（２）が成立した場合、有効データがリングバッファ長の９０％以上となっており、バッファがオーバーフローする可能性が高い。このため、所定数のＧＯＰを読み出すことなく、読み出しポインタを進める（Ｓ１０３）。このスキップされるＧＯＰは、リングバッファ長の約半分に相当する量が望ましい。なお、読み出しポインタと書き込みポインタとの位置が、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が安定的にデータを読み出すことができるような関係であれば、スキップされるＧＯＰの量は任意の量でよい。
【００４２】
一方、条件（１）及び（２）のいずれかも成立していない場合、リングバッファは書き込み可能な容量があると判定し、ステップＳ１０４に進む。
【００４３】
ステップＳ１０４では、どのレートのＧＯＰを選択するかを決定するＧＯＰ選択処理を実行する。ＧＯＰを選択する処理の詳細は、図５及び図６を用いて詳述する。
【００４４】
ステップＳ１０４の後、選択されたＧＯＰを送信するＧＯＰ送信処理を実行し（Ｓ１０５）、現リングバッファの次のエントリへ読み出しポインタを進める（Ｓ１０６）。
【００４５】
その後、読み出しポインタから書き込みポインタまでの距離が０であるか否かを判定する（Ｓ１０７）。読み出しポインタから書き込みポインタまでの距離が０でなければ、リングバッファには読み出すことができる有効データが格納されているので、ステップＳ１０２に戻り、次のＧＯＰを処理する。
【００４６】
一方、読み出しポインタから書き込みポインタまでの距離が０であれば、リングバッファには読み出すことができる有効データが格納されていない。このため、読み出しポインタがストリームの終端に達し、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が停止しているか否かを判定する（Ｓ１０８）。
【００４７】
その結果、読み出しポインタがストリームの終端に達している場合、このＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４による処理を終了する。一方、読み出しポインタがストリームの終端に達していない場合、読み出すことができる有効データがリングバッファに格納されるまでの所定時間（例えば、０．５秒）、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４を停止した後、ステップＳ１０２に戻り、次のＧＯＰを処理する。
【００４８】
図５は、本発明の第１の実施の形態のＧＯＰ選択処理の一例（方法１）のフローチャートである。
【００４９】
方法１では、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、送信レートが目標レートより高ければ、より低いレートを選択し、送信レートが目標レートより低ければ、より高いレートを選択する。この目標レートは、例えば、映像配信装置８Ａ〜８Ｅとクライアント端末との間の回線の帯域等によって定めるとよい。また、送信レートは、直近の所定時間（例えば、１０秒間）に送信したデータ量を用いるとよい。
【００５０】
そして、選択されたレートの動画像データ（ＧＯＰデータ）によって構成された映像データを映像配信装置８Ａ〜８Ｅに出力する。その結果、例えば、図７に示す様にレートが変化する映像データが生成される。
【００５１】
但し、ポインタの現在位置が予め定められた位置（例えば、読み出しポインタから２０％進んだ位置より近い位置）である場合は、低いレートを選択する。これは、ポインタの現在位置が予め定められた位置より後方である場合は、リングバッファに蓄積されている有効データの量が２０％より少ないために、リングバッファからのデータの読み出し量を制限して、バッファアンダーランによる映像の途切れを避けるためである。
【００５２】
方法１のＧＯＰ選択処理について、フローチャートに従って具体的に説明する。
【００５３】
まず、送信レートを算出する（Ｓ１１１）。この送信レートの算出は、所定のサンプリング区間（例えば、直近の１０秒）を定め、その区間内で実際に送信されたデータのレートの平均値（サンプリング区間での送信ビット量／時間）を求めることができる。また、サンプリング区間で実際に送信されたデータ量を線形回帰分析等を用いて直線に当てはめた場合の傾きを送信レートとしてもよい。
【００５４】
その後、算出された送信レートと目標レートとを比較し、送信レートから目標レートを減じた値が所定値（Ｃ１）を超えるか否かを判定する（Ｓ１１２）。その結果、送信レート−目標レート＞Ｃ１である場合、送信レートが目標レートより大きいので、一段階低いレートのリングバッファからＧＯＰを選択して（Ｓ１１４）、ＧＯＰ選択処理を終了する。
【００５５】
一方、送信レート−目標レート≦Ｃ１である場合、送信レートから目標レートを減じた値が所定値（Ｃ２）を未満か否かを判定する（Ｓ１１３）。その結果、送信レート−目標レート＜Ｃ２である場合、送信レートが目標レートより小さいので、一段階高いレートのリングバッファからＧＯＰを選択して（Ｓ１１５）、ＧＯＰ選択処理を終了する。
【００５６】
一方、Ｃ２≦送信レート−目標レート≦Ｃ１である場合、送信される動画像データのビットレートを変更する必要がないので、現在選択されているレートのＧＯＰを選択して（Ｓ１１６）、ＧＯＰ選択処理を終了する。
【００５７】
図６は、本発明の第１の実施の形態のＧＯＰ選択処理の一例（方法２）のフローチャートである。
【００５８】
方法２では、書き込みポインタと対向する位置を目標として読み出しポインタを制御する。具体的には、読み出しポインタの位置が目標位置よりも進んでいる場合は、より高いレートを選択する。一方、読み出しポインタの位置が目標位置よりも遅れている場合は、より低いレートを選択する。
【００５９】
すなわち、送信レートを超えるレートでデータがリングバッファに書き込まれた場合、書き込みポインタが読み出しポインタに追いついて、バッファがオーバーフローする。一方、送信レートより低いレートでデータがリングバッファに書き込まれた場合、読み出しポインタが書き込みポインタに追いついて、バッファがアンダーフローする。このため、リングバッファに蓄積されるデータ量が適正となるように、読み出しポインタの目標位置を書き込みポインタと対向する位置になるように、すなわち、読み出すことが出来る有効データ量は、リングバッファの容量の５０％程度に制御される。
【００６０】
方法２のＧＯＰ選択処理について、フローチャートに従って具体的に説明する。
【００６１】
まず、送信レートを算出する（Ｓ１３１）。この送信レートの算出は、方法１のＧＯＰ選択処理（図５）で説明した方法と同じ方法を採用することができる。
【００６２】
その後、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％未満か否かを判定する（Ｓ１３２）。その結果、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％未満である場合、読み出すことができる有効データが少ないので、一段階低いレートのリングバッファからＧＯＰを選択して（Ｓ３１４）、ＧＯＰ選択処理を終了する。
【００６３】
一方、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％以上である場合、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の８０％より大きいか否かを判定する（Ｓ１３３）。その結果、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の８０％より大きい場合、読み出すことができる有効データが多いので、一段階高いレートのリングバッファからＧＯＰを選択して（Ｓ１３５）、ＧＯＰ選択処理を終了する。
【００６４】
一方、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％以上かつ８０％以下である場合、読み出すことができる有効データの量は適正であると判定し、現在選択されているレートのＧＯＰを選択して（Ｓ１３６）、ＧＯＰ選択処理を終了する。
【００６５】
図７は、前述した方法１によってレートが選択された映像データの変化を示す説明図である。
【００６６】
グラフ中、時間軸に平行な破線は２０Ｍｂｐｓのデータレートによる、各ＧＯＰの累積データ量を示し、時間軸に平行な一点鎖線は２５Ｍｂｐｓのデータレートによる、各ＧＯＰの累積データ量を示す。
【００６７】
図７に示す状態ではＧＯＰn+4までは、２５Ｍｂｐｓのデータが選択され、次のＧＯＰn+3は低い２０Ｍｂｐｓのデータが選択され、次のＧＯＰn+2は高い２５Ｍｂｐｓのデータが選択され、次のＧＯＰn+1及びＧＯＰnは低い２０Ｍｂｐｓのデータが選択された。
【００６８】
このため、本実施の形態のストリーム切替装置７Ａ〜７Ｅから出力される動画像データは、２５Ｍｂｐｓと２０Ｍｂｐｓとの間のレートを維持することができる。
【００６９】
以上説明したように、本発明の第１の実施の形態では、ＧＯＰ毎に適正なレートのＧＯＰを選択することによって、クライアント端末に適するレートで動画像データを配信することができ、バッファアンダーランによる映像の途切れを避けることができる。
【００７０】
＜実施形態２＞
次に、本発明の第２の実施の形態について説明する。
【００７１】
動画像符号化形式によっては、ＧＯＰ間に依存関係があり、簡単にＧＯＰ単位で切り替えることができない場合がある。例えば、オープンＧＯＰは、前後のＧＯＰとの依存関係があるので、前後のＧＯＰがない場合は、フレームを再生することができない。そこで、第２の実施の形態では、１５フレーム分のオープンＧＯＰ、７フレーム分の後方クローズドＧＯＰ、又は、８フレーム分の前方クローズドＧＯＰを生成する。
【００７２】
図８は、本発明の第２の実施の形態の動画ストリーム配信システムの構成を示すブロック図である。
【００７３】
第２の実施の形態の動画ストリーム配信システムは、カムコーダ１、ネットワーク２、映像受信装置３、複数のビットレート変換装置４Ａ〜４Ｅ、マルチプレクサ５、負荷監視装置６、複数のストリーム切替装置７Ａ〜７Ｅ及び複数の映像配信装置８Ａ〜８Ｅを備える。なお、第２の実施の形態において、前述した第１の実施の形態と同じ構成には同じ符号を付し、それらの説明は省略する。
【００７４】
第２の実施の形態の動画ストリーム配信システムは、前述した第１の実施の形態の動画ストリーム配信システムと異なり、３０Ｍｂｐｓのソース映像もビットレート変換装置４Ｅを経由してマルチプレクサ５に入力される。
【００７５】
第２の実施の形態のビットレート変換装置４Ａ〜４Ｄは、ソース映像のデータレートを変換して、低いレートの動画像データに変換し、さらに、そのビットレートのオープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰを生成する。また、ビットレート変換装置４Ｅは、ソース映像のデータレートを変えずに、そのビットレートのオープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰを生成する（図９参照）。ここで、オープンＧＯＰは、ＧＯＰ間の前後両方の依存関係があるＧＯＰで、１５フレームのデータを含む。後方クローズドＧＯＰは、前方のＧＯＰのみとの依存関係があるＧＯＰで、７フレームのデータを含む。前方クローズドＧＯＰは、後方のＧＯＰのみとの依存関係があるＧＯＰで、８フレームのデータを含む。すなわち、後方クローズドＧＯＰ及び前方クローズドＧＯＰを合わせて、オープンＧＯＰに含まれるフレームを再生することができる。
【００７６】
マルチプレクサ５は、各ビットレート変換装置４Ａ〜４Ｄから、各データレートのオープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰを受け取り、上記複数のデータレートのＧＯＰをマルチプレクスする（図９参照）。このとき、音声ＥＳを多重化してもよい。
【００７７】
ストリーム切替装置７Ａ〜７ＥのＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、データレートの切り換えが発生しない場合、リングバッファからオープンＧＯＰを読み出す。一方、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、データレートの切り換えが発生する場合、切り替え元のレートの後方クローズドＧＯＰと、切換先のレートの前方クローズドＧＯＰとを読み出す。
【００７８】
図９は、本発明の第２の実施の形態のマルチプレクサ５の動作を示す説明図である。
【００７９】
ビットレート変換装置４Ａは、ソース映像（３０Ｍｂｐｓ）のビットレートを変換して、低いレートのオープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰを生成する。例えば、オープンＧＯＰは２５Ｍｂｐｓの動画像データ（例えば、ＭＰＥＧ２−ＴＳ形式の映像ストリーム）であり、ＰＩＤ２５０が付されている。また、同様に、後方クローズドＧＯＰにはＰＩＤ２５１が付されており、前方クローズドＧＯＰにはＰＩＤ２５２が付されている。すなわち、第２の実施の形態におけるＰＩＤは、ＧＯＰのビットレート及び種類を識別するための識別子である。このため、ストリーム切替装置７Ａ〜７Ｅは、ＰＩＤによって、選択するＧＯＰを区別することができる。
【００８０】
なお、図９には、ビットレート変換装置４Ａから出力された２５Ｍｂｐｓの動画像データのみを図示するが、同様に、３０Ｍｂｐｓ、２０Ｍｂｐｓ、１５Ｍｂｐｓ及び１０Ｍｂｐｓにおいても、オープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰを含む動画像データが各ビットレート変換装置から出力されている。
【００８１】
マルチプレクサ５は、３０Ｍｂｐｓから１０Ｍｂｐｓの動画像データをＧＯＰ単位で連結して、マルチプレクスされたＴＳストリームを生成する。このマルチプレクスされたＴＳストリームには、ＧＯＰ毎に各ビットレートの動画像データ（オープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰ）がＧＯＰの順に含まれている。なお、音声ＥＳを多重化してもよい。
【００８２】
ストリーム切換装置７Ａ〜７Ｅは、動画像データのビットレート及びＧＯＰの種類をＰＩＤによって判定し、必要なビットレートの動画像データのＧＯＰを選択する。
【００８３】
図１０は、本発明の第１の実施の形態のストリーム切替装置７Ａ〜７Ｅによる処理を示す説明図である。図１０には、ビットレート変換装置４Ｅ、４Ａ、４Ｂの各々から出力され、多重化された３０Ｍｂｐｓ、２５Ｍｂｐｓ及び２０Ｍｂｐｓの動画像データを分離して、選択されたＧＯＰによる動画像データを出力する様子を示す。
【００８４】
図３を用いて前述したように、各ストリーム切替装置７Ａ〜７Ｅでは、Ｓｔｒｅａｍ  Ｒｅｃｅｉｖｅｒスレッド（図示省略）、Ｓｔｒｅａｍ  Ｗｒｉｔｅｒスレッド（図示省略）、及び複数のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が動作している。
【００８５】
また、各ストリーム切替装置７Ａ〜７Ｅは、複数のリングバッファを備え、各リングバッファには、各ビットレートのデータ（オープンＧＯＰ、後方クローズドＧＯＰ及び前方クローズドＧＯＰ）がＧＯＰ単位で格納されており、各ＧＯＰのデータは、参照ポインタ７６によって、矢印の向きに結合されている。なお、図中、オープンＧＯＰには”Ｏ”の符号を付し、後方クローズドＧＯＰには”Ｃ”の符号及び後方に太線を付し、前方クローズドＧＯＰには”Ｃ”の符号及び前方に太線を付した。
【００８６】
各スレッドは、この参照ポインタ７６を手繰りながら、各リングバッファに格納されたデータを処理する。このリングバッファは、各スレッドからアクセス可能な共有メモリに設けられる。
【００８７】
Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、映像配信装置の要求に従って読み出しポインタを前方に進めながらリングバッファからＧＯＰを読み出して、読み出したＧＯＰを出力する。すなわち、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、データレートの切り換えが発生しない場合は、リングバッファからオープンＧＯＰを読み出す。一方、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、データレートの切り換えが発生する場合は、切替元のレートの後方クローズドＧＯＰと、切換先のレートの前方クローズドＧＯＰとを読み出す。なお、図中、選択されたＧＯＰにはハッチングを付した。
【００８８】
これによって、レートが切り替わらないときは、圧縮率の高いオープンＧＯＰを選択することによって、転送されるデータ量を抑制し、また、レートが切り替わるときは、後方クローズドＧＯＰ及び前方クローズドＧＯＰを選択することによって、シームレスにデータレートが切り換えられる動画像データを配信することができる。
【００８９】
図１１は、本発明の第２の実施の形態のＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４による処理のフローチャートである。
【００９０】
Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が動作するプロセッサは、まず、受信側のクライアント端末からの動画像送信リクエストを待つ（Ｓ２０１）。
【００９１】
そして、送信リクエストを受信した後、（１）書き込みポインタが読み出しポインタを追い越したか、又は、（２）読み出しポインタから書き込みポインタまでの距離がリングバッファ長の９０％以上となったかを判定する（Ｓ２０２）。
【００９２】
この条件（１）又は（２）のいずれかが成立した場合、ＧＯＰをスキップし、読み出しポインタと書き込みポインタとの距離が、リングバッファ長の５０％程度となるように調整する。すなわち、この条件（１）が成立した場合、リングバッファが既にオーバーフローしている。また、条件（２）が成立した場合、有効データがリングバッファ長の９０％以上となっており、バッファがオーバーフローする可能性が高い。このため、所定数のＧＯＰを読み出すことなく、読み出しポインタを進める（Ｓ２０３）。このスキップされるＧＯＰは、リングバッファ長の約半分に相当する量が望ましい。なお、読み出しポインタと書き込みポインタとの位置が、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が安定的にデータを読み出すことができるような関係であれば、スキップされるＧＯＰの量は任意の量でよい。
【００９３】
一方、条件（１）及び（２）のいずれかも成立していない場合、リングバッファは書き込み可能な容量があると判定し、ステップＳ２０４に進む。
【００９４】
ステップＳ２０４では、どのレートのＧＯＰを選択するかを決定し、選択されたＧＯＰを送信するＧＯＰ選択・送信処理を実行する。ＧＯＰ選択・送信処理の詳細は、図１２及び図１３を用いて詳述する。
【００９５】
ステップＳ２０４の後、読み出しポインタから書き込みポインタまでの距離が０であるか否かを判定する（Ｓ２０７）。読み出しポインタから書き込みポインタまでの距離が０でなければ、リングバッファには読み出すことができる有効データが格納されているので、ステップＳ２０２に戻り、次のＧＯＰを処理する。
【００９６】
一方、読み出しポインタから書き込みポインタまでの距離が０であれば、リングバッファには読み出すことができる有効データが格納されていない。このため、読み出しポインタがストリームの終端に達し、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４が停止しているか否かを判定する（Ｓ２０８）。
【００９７】
その結果、読み出しポインタがストリームの終端に達している場合、このＳｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４による処理を終了する。一方、ストリームの終端に達していない場合、リングバッファには読み出すことができる有効データがリングバッファに格納されるまでの所定時間（例えば、０．５秒）、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４を停止した後、ステップＳ２０２に戻り、次のＧＯＰを処理する。
【００９８】
図１２は、本発明の第２の実施の形態のＧＯＰ選択処理の一例（方法１）のフローチャートである。
【００９９】
方法１では、前述した第１の実施の形態と同様に、Ｓｔｒｅａｍ  Ｓｗｉｔｃｈｅｒスレッド７４は、送信レートが目標レートより高ければ、より低いレートを選択し、送信レートが目標レートより低ければ、より高いレートを選択する。
【０１００】
まず、送信レートを算出する（Ｓ２１１）。この送信レートの算出は、第１の実施の形態で前述した方法と同じ方法を採用することができる。
【０１０１】
その後、算出された送信レートと目標レートとを比較し、送信レートから目標レートを減じた値が所定値（Ｃ１）を超えるか否かを判定する（Ｓ２１２）。その結果、送信レート−目標レート＞Ｃ１である場合、送信レートが目標レートより大きいので、現在のＧＯＰで送信レートを下げることを決定する。
【０１０２】
このため、現在選択されているレートのリングバッファから後方クローズドＧＯＰを選択し、選択された後方クローズドＧＯＰを送信する（Ｓ２１４）。その後、一段階低いレートのリングバッファの前方クローズドＧＯＰを選択し（Ｓ２１５）、選択された前方クローズドＧＯＰを送信する（Ｓ２１６）。この選択及び送信された後方クローズドＧＯＰ及び前方クローズドＧＯＰによって、１５フレームの画像を再生することができる。その後、ステップＳ２２１に進む。
【０１０３】
一方、送信レート−目標レート≦Ｃ１である場合、送信レートから目標レートを減じた値が所定値（Ｃ２）を未満か否かを判定する（Ｓ２１３）。その結果、送信レート−目標レート＜Ｃ２である場合、送信レートが目標レートより小さいので、現在のＧＯＰで送信レートを上げる。
【０１０４】
このため、現在選択されているレートのリングバッファから後方クローズドＧＯＰを選択し、選択された後方クローズドＧＯＰを送信する（Ｓ２１８）。その後、一段階高いレートのリングバッファの前方クローズドＧＯＰを選択し（Ｓ２１９）、選択された前方クローズドＧＯＰを送信する（Ｓ２２０）。この選択及び送信された後方クローズドＧＯＰ及び前方クローズドＧＯＰによって、１５フレームの画像を再生することができる。その後、ステップＳ２２１に進む。
【０１０５】
一方、Ｃ２≦送信レート−目標レート≦Ｃ１である場合、送信される動画像データのビットレートを変更する必要がないと判定し、現在選択されているレートのリングバッファからオープンＧＯＰを選択して（Ｓ２１７）、ステップＳ２２１に進む。
【０１０６】
ステップＳ２２１では、現リングバッファの次エントリへポインタを進めて、ＧＯＰ選択・送信処理を終了する。
【０１０７】
図１３は、本発明の第２の実施の形態のＧＯＰ選択処理の一例（方法２）のフローチャートである。
【０１０８】
方法２では、前述した第１の実施の形態の方法２と同様に、書き込みポインタと対向する位置を目標として読み出しポインタを制御する。
【０１０９】
まず、送信レートを算出する（Ｓ２３１）。この送信レートの算出は、第１の実施の形態で前述した方法と同じ方法を採用することができる。
【０１１０】
その後、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％未満か否かを判定する（Ｓ２３２）。その結果、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％未満である場合、読み出すことができる有効データが少ないので、現在のＧＯＰで送信レートを下げる。
【０１１１】
このため、現在選択されているレートのリングバッファから後方クローズドＧＯＰを選択し、選択された後方クローズドＧＯＰを送信する（Ｓ２３４）。その後、一段階低いレートのリングバッファの前方クローズドＧＯＰを選択し（Ｓ２３５）、選択された前方クローズドＧＯＰを送信する（Ｓ２３６）。この選択及び送信された後方クローズドＧＯＰ及び前方クローズドＧＯＰによって、１５フレームの画像を再生することができる。その後、ステップＳ２４１に進む。
【０１１２】
一方、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％以上である場合、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の８０％より大きいか否かを判定する（Ｓ２３３）。その結果、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の８０％より大きい場合、読み出すことができる有効データが多いので、現在のＧＯＰで送信レートを上げる。
【０１１３】
このため、現在選択されているレートのリングバッファから後方クローズドＧＯＰを選択し、選択された後方クローズドＧＯＰを送信する（Ｓ２３８）。その後、一段階高いレートのリングバッファの前方クローズドＧＯＰを選択し（Ｓ２３９）、選択された前方クローズドＧＯＰを送信する（Ｓ２４０）。この選択及び送信された後方クローズドＧＯＰ及び前方クローズドＧＯＰによって、１５フレームの画像を再生することができる。その後、ステップＳ２４１に進む。
【０１１４】
一方、読み出しポインタから書き込みポインタまでの距離がリングバッファ長の２０％以上でかつ８０％以下である場合、読み出すことができる有効データの量は適正であり、レートを変更する必要がないと判定して、現在選択されているレートのリングバッファからオープンＧＯＰを選択して（Ｓ２３７）、ステップＳ２４１に進む。
【０１１５】
ステップＳ２４１では、現リングバッファの次エントリへポインタを進めて、ＧＯＰ選択・送信処理を終了する。
【０１１６】
以上説明したように、本発明の第２の実施の形態では、オープンＧＯＰ、前方クローズドＧＯＰ及び後方クローズドＧＯＰを生成し、レートの切替タイミング以外ではオープンＧＯＰを選択し、レートの切替タイミングでは前方クローズドＧＯＰ及び後方クローズドＧＯＰを選択することによって、ＧＯＰ間に依存関係がある場合でも、ストリーム映像のレートを変更することができる。
【０１１７】
＜実施形態３＞
次に、本発明の第３の実施の形態について説明する。
【０１１８】
図１４は、本発明の第３の実施の形態の動画ストリーム配信システムの構成を示すブロック図である。
【０１１９】
第３の実施の形態においては、映像配信に使用するネットワークの帯域幅のいずれか一つ以上がソース映像のビットレート未満である場合、ビットレート変換装置によって低いビットレートに変換されたＧＯＰフレームを、ソース映像の同時刻のＧＯＰフレームに置き換えることによってビットレートを調整する。例えば、ビットレート変換装置が、複数の配信先のうち最も低い帯域幅の配信先に合わせてビットレートを変換し、ストリーム切替装置が、他の配信先にはソース映像と低いビットレートに変換された映像を切り替えながら送信する。
【０１２０】
第３の実施の形態の動画ストリーム配信システムは、映像読出装置９、ビットレート変換装置４Ｆ、マルチプレクサ５、複数のストリーム切替装置７Ａ〜７Ｂ及び複数の映像配信装置８Ａ〜８Ｂを備える。なお、第３の実施の形態において、前述した第１の実施の形態と同じ構成には同じ符号を付し、それらの説明は省略する。
【０１２１】
映像読出装置９は、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータであり、ストリームデータを記録装置から読み出す。なお、第３の実施の形態でも、前述した第１の実施の形態と同様に、カムコーダ１から送信される符号化された動画像データを、映像受信装置３を介して、ビットレート変換装置４Ａ〜４Ｄに入力するものであってもよい。
【０１２２】
ビットレート変換装置４Ｆは、符号化された動画像データ（ソース映像）を、ソース映像とは異なる任意の低いビットレートの符号化データに変換する。また、ビットレート変換装置４Ｆは、出力される符号化データのビットレートを変更することができる。ビットレート変換装置４Ｆは、例えば、複数の配信先のうち最も低い帯域幅の配信先に合わせてビットレートを変換するとよい。
【０１２３】
ビットレート変換装置４Ｆは、プロセッサ、メモリ及びネットワークインタフェースを備えるコンピュータでもよいし、専用ハードウェア（例えば、ＶｉＸＳ  ＳｙｓｔｅｍｓのＸＣｏｄｅ２１１１）によって処理を行うものでもよい。ビットレート変換装置４Ｆは、変換結果を後段のマルチプレクサ５に出力する。
【０１２４】
なお、第３の実施の形態においても、可変レートのビットレート変換装置４Ｆではなく、前述した第１の実施の形態のように複数のビットレート変換装置４Ａ〜４Ｄを備えてもよい。この場合、最も低い帯域幅以下のビットレートの動画像を出力するビットレート変換装置を選択すればよい。
【０１２５】
なお、映像受信装置３と各ビットレート変換装置４Ｆとが別のコンピュータに実装される場合、両装置をネットワークによって接続するとよい。また、ビットレート変換装置４Ｆが専用ハードウェアによって実現される場合、映像受信装置３とビットレート変換装置４Ｆとの間は、ＰＣＩバス、ＰＣＩＥｘｐｒｅｓｓなどの装置内接続用の規格に従って接続する。
【０１２６】
図１５は、従来のビットレート変換装置によって生成される映像フレームを示し、  図１６は、第３の実施の形態のビットレート変換装置によって生成される映像フレームを示し、図１７は、第３の実施の形態の切替装置によって生成される映像フレームを示す。
【０１２７】
ビットレート変換装置４Ｆに入力されるソース映像データがオープンＧＯＰによって構成されている場合、ビットレート変換開始時刻のＧＯＰの先頭のＢ０フレーム及びＢ１フレームは、前のＧＯＰ中のフレームを参照しているため、オープンＧＯＰの先頭のＢフレームを再生することができない。結果として、図１５に示すように一部フレーム（Ｂ０、Ｂ１）が欠落したＧＯＰが生成される。
【０１２８】
このため、第３の実施の形態のビットレート変換装置４Ｆは、図１６に示すように、オープンＧＯＰであるＧＯＰｎから別のレートのオープンＧＯＰであるＧＯＰｎに切り替える場合、ビットレート変換開始時刻のＧＯＰｎの直前のＧＯＰｎ−１のソース映像からビットレートを変換する。
【０１２９】
この結果、図１６に示すように、ＧＯＰｎ−１のＩフレーム以前のＢフレームは、参照すべきＧＯＰｎ−２のデータがないために欠落するが、ＧＯＰｎの全フレームは欠落することなく、再生可能なビットレートが変換されたフレームを生成することができる。そして、図１７に示すように、元のソース映像のＧＯＰｎ−１に、ビットレートが変換されたＧＯＰｎを接続することによって、連続したストリームを生成することができる。
【０１３０】
ビットレートの変換を終了する場合も、同様に終端のＧＯＰより１ＧＯＰを余分に低ビットレートに変換することによって、Ｂフレームが欠落しないＧＯＰを得ることができる。
【０１３１】
この場合、切替前後のＧＯＰのビットレートが異なるので、切替前のＧＯＰを参照する切換後のＧＯＰのフレームの画質が劣化する可能性がある。このため、切替前後のＧＯＰのビットレートの差が大きい場合、画質の大きな劣化を生じる可能性がある。例えば、図１７において、ＧＯＰｎ−１のビットレートとＧＯＰｎのビットレートとが異なるので、ＧＯＰｎ−１のフレームを参照するＧＯＰｎのＢ０フレーム及びＢ１フレームの画質が劣化する。この画質劣化を緩和するため、ビットレート変換装置４Ｆによる、ソース映像のビットレートの変換の下限値をソース映像のビットレートの８割に設定してもよい。
【０１３２】
また、ビットレート変換装置４Ｆが、ビットレートを引き上げたＧＯＰを繰り返し生成する（例えば、１０ＧＯＰに１回の割合でソース映像のビットレートの８割以上のビットレートのＧＯＰを生成する）。そして、ストリーム切替装置７ＡがオープンＧＯＰ間でビットレートを切り替える場合、比較的高いビットレートのＧＯＰの箇所でビットレートを切り替えるとよい。
【０１３３】
以上説明したように、本発明の第３の実施の形態では、一つのビットレート変換装置を用いるだけで、任意のレートのストリームデータを生成することができる。また、ビットレート切替前後のＧＯＰのビットレートの差を少なくするので、切替時の画質劣化を抑制することができる。
【符号の説明】
【０１３４】
１  カムコーダ
２  ネットワーク
３  映像受信装置
４Ａ〜４Ｆ  ビットレート変換装置
５  マルチプレクサ
６  負荷監視装置
７Ａ〜７Ｅ  ストリーム切替装置
８Ａ〜８Ｅ  映像配信装置
【図１】
2011040879.tif 000003
【図２】
2011040879.tif 000004
【図３】
2011040879.tif 000005
【図４】
2011040879.tif 000006
【図５】
2011040879.tif 000007
【図６】
2011040879.tif 000008
【図７】
2011040879.tif 000009
【図８】
2011040879.tif 000010
【図９】
2011040879.tif 000011
【図１０】
2011040879.tif 000012
【図１１】
2011040879.tif 000013
【図１２】
2011040879.tif 000014
【図１３】
2011040879.tif 000015
【図１４】
2011040879.tif 000016
【図１５】
2011040879.tif 000017
【図１６】
2011040879.tif 000018
【図１７】
2011040879.tif 000019