(57)【要約】【課題】  ネットワークカメラからの映像をインターネット等を介して同時受信して再生する場合のゆらぎを解消する。【解決手段】  パケット化された動画ストリームを複数同時に受信するパケット受信手段と、受信パケットをパケット内の特定情報によりストリーム毎に振り分けるストリーム分割手段と、振り分けたストリームデータを画像フレーム単位にて格納する画像フレーム単位格納手段と、格納された画像フレームを各々のストリームのフレームレートによって定期的に取り出すフレーム取り込み手段と、各々の動画ストリームの各パケットを画像フレームデータとして格納し、そのフレーム数を所定周期で計数するフレーム計数手段と、それらの計数結果からネットワークゆらぎ変化量を検出し、それを基に各々のストリームの補正タイミングを算出してフレーム取り込み手段を補正するフレーム取り込み補正手段とを備える。【選択図】  図３
2006325020.tif 000002
【特許請求の範囲】
【請求項１】
パケット化された動画ストリームを複数同時に受信するパケット受信手段と、
前記パケット受信手段によって受信したパケットをパケット内の特定情報を判定してストリーム毎に振り分けるストリーム分割手段と、
前記ストリーム分割手段により分割されたストリームデータを画像フレーム単位にて格納する画像フレーム単位格納手段と、
前記画像フレーム単位格納手段により格納された各々のストリーム毎の画像フレームを、各々のストリームのフレームレートによって定期的に取り出すフレーム取り込み手段と、
前記画像フレーム単位格納手段により各々の動画ストリームのパケット化された各パケットが画像フレームデータとして格納され、当該格納される画像フレームデータのフレーム数を所定周期毎に計数するフレーム計数手段と、
前記各動画ストリームのフレーム計数手段の計数結果をとりまとめてネットワークゆらぎ変化量を検出し、前記ネットワークゆらぎ変化量を基に各々のストリームの補正タイミングを算出し、当該補正タイミングにより前記フレーム取り込み手段を補正するフレーム取り込み補正手段とを有することを特徴とするデータ処理装置。
【請求項２】
前記パケット受信手段によって受信したパケットをストリーム毎に振り分けるための特定情報として、ラベルを用いることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記パケット化された動画ストリームは、音声と多重化されていない単独の動画ストリームであることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記パケット化された動画ストリームは、音声と多重化されていない単独の動画ストリームで、ＭＰＥＧ−ＥＳ（ＥＳ： Elementary stream）であることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記フレーム取り込み手段は、動画ストリームのデコーダ又はコーデックであることを特徴とする請求項１記載のデータ処理装置。
【請求項６】
パケット化された動画ストリームを複数同時に受信するパケット受信手段と、
前記パケット受信手段によって受信したパケットをパケット内の特定情報を判定してストリーム毎に振り分けるストリーム分割手段と、
前記ストリーム分割手段により分割されたストリームデータをパケット内の特定情報を判定して画像フレーム単位にて格納する画像フレーム単位格納手段と、
前記画像フレーム単位格納手段により格納された各々のストリーム毎の画像フレームを、各々のストリームのフレームレートによって定期的に取り出してデコードを行うフレームデコード手段と、
前記画像フレーム単位格納手段により各々の動画ストリームのパケット化された各パケットが画像フレームデータとして格納され、当該格納される画像フレームデータのフレーム数を所定周期毎に計数するフレーム計数手段と、
前記各フレーム計数手段によって計数されている計数結果を、前記フレーム単位格納手段によって１フレームが揃うタイミングにて次処理に通知する計数結果通知手段と、
前記各計数結果通知手段の計数結果をとりまとめてネットワークゆらぎ変化量を検出し、前記ネットワークゆらぎ変化量を基に各々のストリームの補正タイミングを算出し、当該補正タイミングにより前記フレームデコード手段を補正するフレームデコード補正手段とを有することを特徴とするデータ処理装置。
【請求項７】
前記パケット受信手段によって受信したパケットをストリーム毎に振り分けるための特定情報として、ラベルを用いることを特徴とする請求項６記載のデータ処理装置。
【請求項８】
前記パケット化された動画ストリームは、音声と多重化されていない単独の動画ストリームであることを特徴とする請求項６記載のデータ処理装置。
【請求項９】
前記パケット化された動画ストリームは、音声と多重化されていない単独の動画ストリームで、ＭＰＥＧ−ＥＳ（ＥＳ： Elementary stream）であることを特徴とする請求項６記載のデータ処理装置。
【請求項１０】
前記フレーム取り込み手段は、動画ストリームのデコーダ又はコーデックであることを特徴とする請求項６記載のデータ処理装置。
【請求項１１】
パケット化された動画ストリームを複数同時に受信するパケット受信ステップと、
前記パケット受信ステップによって受信したパケットをパケット内の特定情報を判定してストリーム毎に振り分けるストリーム振り分けステップと、
前記ストリーム振り分けステップにより振り分けられたストリームデータをパケット内の特定情報を判定して画像フレーム単位にてメモリに格納する画像フレーム単位格納ステップと、
前記画像フレーム単位格納ステップにより格納された各々のストリーム毎の画像フレームを、各々のストリームのフレームレートによって定期的に取り出すフレーム取り込みステップと、
前記画像フレーム単位格納ステップにより各々の動画ストリームのパケット化された各パケットが画像フレームデータとしてメモリに格納され、当該格納される画像フレームデータのフレーム数を所定周期毎に計数するフレーム計数ステップと、
前記各動画ストリームのフレーム計数ステップの計数結果をとりまとめてネットワークゆらぎ変化量を計算し、前記ネットワークゆらぎ変化量を基に各々のストリームの補正タイミングを算出し、当該補正タイミングにより前記フレーム取り込みステップを補正するフレーム取り込み補正ステップとを有することを特徴とするデータ処理方法。
【請求項１２】
前記パケット受信ステップによって受信したパケットをストリーム毎に振り分けるための特定情報として、ラベルを用いることを特徴とする請求項１１記載のデータ処理方法。
【請求項１３】
前記パケット化された動画ストリームは、音声と多重化されていない単独の動画ストリームであることを特徴とする請求項１１記載のデータ処理方法。
【請求項１４】
前記パケット化された動画ストリームは、音声と多重化されていない単独の動画ストリームで、ＭＰＥＧ−ＥＳ（ＥＳ： Elementary stream）であることを特徴とする請求項１１記載のデータ処理方法。
【請求項１５】
前記フレーム取り込みステップは、動画ストリームのデコーダ又はコーデックステップを兼ねるステップであることを特徴とする請求項１１記載のデータ処理方法。
【請求項１６】
パケット化された動画ストリームを複数同時に受信するパケット受信ステップと、
前記パケット受信ステップによって受信したパケットをパケット内の特定情報を判定してストリーム毎に振り分けるストリーム振り分けステップと、
前記ストリーム振り分けステップにより振り分けられたストリームデータをパケット内の特定情報を判定して画像フレーム単位にてメモリに格納する画像フレーム単位格納ステップと、
前記画像フレーム単位格納ステップにより格納された各々のストリーム毎の画像フレームを、各々のストリームのフレームレートによって定期的に取り出すフレーム取り込みステップと、
前記画像フレーム単位格納ステップにより各々の動画ストリームのパケット化された各パケットが画像フレームデータとしてメモリに格納され、当該格納される画像フレームデータのフレーム数を所定周期毎に計数するフレーム計数ステップと、
前記各動画ストリームのフレーム計数ステップの計数結果をとりまとめてネットワークゆらぎ変化量を計算し、前記ネットワークゆらぎ変化量を基に各々のストリームの補正タイミングを算出し、当該補正タイミングにより前記フレーム取り込みステップを補正するフレーム取り込み補正ステップとをコンピュータに実行させるためのプログラム。
【請求項１７】
請求項１６記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、記憶媒体、並びにプログラムに関し、特に複数の動画ストリームを同時に受信可能で、かつ再生可能なデータ処理装置及び当該プログラムに関するものである。
【背景技術】
【０００２】
図１は、従来のデータ処理装置により構成される動画配信サービスの提供システム構成の一例を示す図である。この提供システムにおいては、パーソナルコンピュータ（以降、「ＰＣ」と称す。）１が、インターネット３を介して、各種コンテンツサーバ２−１、２−２にユーザの指示によりアクセスが可能になっている。ＰＣ１とインターネット３とは、インターネットサービスプロバイダ（以降、「ＩＳＰ」と称す。）と呼ばれるインターネットアクセスを提供している会社の回線により接続されている。ユーザは、ＰＣ１でブラウザソフトを立ち上げて、各種コンテンツサーバ２−１、２−２等に格納されているＷＥＢコンテンツを配信可能にしているＷＷＷ（World Wide Web）サーバより前記インターネット３及びＩＳＰの回線を介してアクセスし、ディスプレイ上のブラウザの中に表示する。
【０００３】
従来、上述のような動画ストリームにおけるゆらぎ（ジッタ）制御技術に関しては、一度メモリにバッファリングして、ゆらぎを吸収するという技術が一般的である。
【０００４】
第１の従来技術例として、特開平８−１３９７０４号公報「データ処理装置およびデータ処理方法」の請求項１には、伝送データに含まれる時刻情報を抽出する抽出手段と、当該抽出した時刻情報に基づいて、前記伝送データを処理する基準となるシステムクロックを生成する手段を備え、前記抽出手段に供給される前記伝送データを記憶する記憶手段と、前記記憶手段における前記伝送データの記憶量を検出する検出手段と、前記検出手段の検出結果に対応して、前記記憶量の増減により前記伝送データの読み出しレートを可変する読出制御手段を備えるものが記載されている。
【０００５】
第２の従来技術例として、特開２０００−２２６７８号公報「データ伝送端末装置」の請求項１には、ネットワーク間に用意され、送信データを蓄積するための送信用バッファと受信データを蓄積するための受信用バッファとをそれぞれ具備し、前記送信用バッファから受信側伝送クロックと異なる伝送クロックを伴って相互に所定データを伝送するデータ伝送端末装置であって、送信相手先端末装置から所定のデータが伝送されて前記受信用バッファに蓄積されるとき、この蓄積されるデータ量の所定周期毎の変化量を検出し、統計的手法を用いて前記変化量に応じた補正用クロックを得、この補正用クロックにより前記受信側伝送クロックを補正して、前記送信側のクロックとの同期化を図るようにしたことを特徴とするものが記載されている。
【０００６】
第３の従来技術例として、特許第３３１４７００号公報「ＭＰＥＧデータ転送制御回路」の請求項１には、受信されるＭＰＥＧデータを順次蓄積するバッファと、前記バッファに蓄積されたＭＰＥＧデータを、予め設定された転送レートで復号器へ転送する転送レート制御回路と、前記バッファから読み出されるＭＰＥＧデータに含まれる時刻情報と前記復号器のタイミング制御に用いられる基準クロックが示す情報とを比較し、比較結果に基づいて前記転送レートを変更すべき旨の命令を前記転送レート制御回路へ供給する時刻情報比較回路とを具備し、前記転送レート制御回路が前記命令により前記転送レートを変更することを特徴とするものが記載されている。
【０００７】
【特許文献１】特開平８−１３９７０４号公報
【特許文献２】特開２０００−２２６７８号公報
【特許文献３】特許第３３１４７００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、第１の従来例では、伝送データを処理する基準となるシステムクロックを伝送データに含まれる時刻情報を基に生成することから、同クロックによって制御される他のシステムへの影響が大きい。また、前記影響を排除するために、伝送データ（オーディオ・ビデオ）に関連する回路のシステムクロックを分離すると、コストアップ及び回路設計が複雑になり、また、ソフトウェア的に映像を加工（処理）することが困難になる。
【０００９】
また、第２の従来例では、受信バッファに蓄積された相手端末装置からの所定のデータのデータ量の所定周期毎の変化量を検出し、統計的手法を用いて当該変化量に応じた補正用クロックを得て、この補正用クロックにより受信側伝送クロックを補正して、送信側のクロックとの同期化を図るようにしている。そのため、例えば、相手端末装置から受信するデータが複数になり、かつそれぞれのデータ及び送受信が異なる経路（例えば無線の周波数別及びチャンネル別等）を介して伝送され受信した場合には、相手端末装置毎に送受信バッファを用意したりコーデック毎に送受信バッファを用意したりしても、受信バッファの変化量から補正クロックを生成することは困難になる。
【００１０】
また、第３の従来例においては、ＬＡＮやインターネット等のノンギャランティなネットワークにより伝送されたＭＰＥＧデータを順次蓄積するようにしたＭＰＥＧデータ転送制御回路では、ＭＰＥＧデータの長さが可変長になったり、ＭＰＥＧデータ自体の順番が入れ替わったり、１パケットデータが落ちる等の事象が発生する場合において、当該回路では正常な処理が困難である。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、図２に示すような複数のネットワークカメラ４−１，４−２，４−３からの映像をインターネット３等を介して同時に受信して再生するような場合であって、インターネットや無線等の異なる経路を通った複数の動画ストリーミングコンテンツを受信し、かつ他の回路システムへのクロック影響を最小限にした、ネットワークゆらぎを解消するデータ処理装置及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明では、パケット化された動画ストリームを複数同時に受信するパケット受信手段と、前記パケット受信手段によって受信したパケットをパケット内の特定情報を判定してストリーム毎に振り分けるストリーム分割手段と、前記ストリーム分割手段により分割されたストリームデータを画像フレーム単位にて格納する画像フレーム単位格納手段と、前記画像フレーム単位格納手段により格納された各々のストリーム毎の画像フレームを、各々のストリームのフレームレートによって定期的に取り出すフレーム取り込み手段と、前記画像フレーム単位格納手段により各々の動画ストリームのパケット化された各パケットが画像フレームデータとして格納され、当該格納される画像フレームデータのフレーム数を所定周期毎に計数するフレーム計数手段と、前記各動画ストリームのフレーム計数手段の計数結果をとりまとめてネットワークゆらぎ変化量を検出し、前記ネットワークゆらぎ変化量を基に各々のストリームの補正タイミングを算出し、当該補正タイミングにより前記フレーム取り込み手段を補正するフレーム取り込み補正手段とを有することを特徴とするデータ処理装置を提供する。
【発明の効果】
【００１３】
本発明によれば、インターネットや無線等の異なる経路を通った複数の動画ストリーミングコンテンツを受信しながら、かつ、他の回路システムへのクロック影響を最小限にした、ネットワークゆらぎを解消したデータ処理装置及びデータ処理方法を提供することができるという効果がある。
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態によるデータ処理装置について図面に基づいて説明する。
（第１の実施形態）
以下、図３及び図４に基づき、本発明の第１の実施形態によるデータ処理装置について説明する。図３は、第１の実施形態によるデータ処理装置の構成例を具現化して示したブロック図である。
【００１５】
図３に示すように第１の実施形態によるデータ処理装置は、ＭＵＸ（多重化、マルチプレックス）されていない動画（ＭＰＥＧ−４においては、ＥＳ：Elementary streamと称す。）と音声の別々のストリームパケットが複数同時に受信可能なマルチストリームパケット受信部１０１と、各々のストリーム別にパケットをストリーム別バッファに振り分ける機能をもつパケット振り分け部１０２と、Ａストリームパケットをフレーム単位にてバッファリングを行うＡストリームフレーム格納部１０３−１と、Ｂストリームパケットをフレーム単位にてバッファリングするＢストリームフレーム格納部１０３−２と、ｎストリームパケットをフレーム単位にてバッファリングするｎストリームフレーム格納部１０３−３と、Ａストリームフレーム格納部１０３−１に格納されたＡストリームのフレーム区切りを認識してフレーム数をカウントするＡストリームフレーム計数部１０４−１と、Ｂストリームフレーム格納部１０３−２に格納されたＢストリームのフレーム区切りを認識してフレーム数をカウントするＢストリームフレーム計数部１０４−２と、ｎストリームフレーム格納部１０３−３に格納されたｎストリームのフレーム区切りを認識してフレーム数をカウントするｎストリームフレーム計数部１０４−３と、Ａストリームフレームの周期フレーム数管理部１０５−１と、Ｂストリームフレームの周期フレーム数管理部１０５−２と、ｎストリームフレームの周期フレーム数管理部１０５−３と、各々のストリームフレーム計数部１０４−１，１０４−２，１０４−３からの情報によりネットワークゆらぎを算出し各々のストリームのゆらぎを統括的に管理するゆらぎ統括管理部１０９と、Ａストリーム専用コーデックであるＣｏｄｅｃ−Ａ（コーデックＡ）１１０−１と、Ｂストリーム専用コーデックであるＣｏｄｅｃ−Ｂ（コーデックＢ）１１０−２と、ｎストリーム専用コーデックであるＣｏｄｅｃ−ｎ（コーデックｎ）１１０−３と、各々のコーデック１１０−１，１１０−２，１１０−３の取り込みタイミングを制御するフレーム制御部１１３とから構成されている。
【００１６】
なお、以下の説明において、動画録画記録方式は、特に断らない限りＭＰＥＧ−４記録方式であるとする。
次に、第１の実施形態によるデータ処理装置の動作について説明する。
図４は、第１の実施形態によるデータ処理装置の動作を示すフローチャートである。
【００１７】
ここで、マルチストリームパケット受信部１０１は、図２に示したような複数のカメラ４−１，４−２，４−３等からの複数の動画・音声ストリームのパケットを受信する手段である。本実施形態では、各カメラ４−１，４−２，４−３からの動画と音声は、マルチプレックスされていない（多重化されていない）別々のストリームとして受信する。なお、各カメラ４−１，４−２，４−３から受信するストリーム選択の制御は、別の層のプロトコル（例えば、ＨＴＴＰ（HyperText Transfer Protocol）によるＵＲＬ（Uniform Resource Locator）等の位置情報の取得や、ＳＩＰ（Session Initiation Protocol）等による位置情報を検索して取得等）によって実施される。
【００１８】
また、各々の動画と音声のストリームは、ＲＴＰ（Real-time Transport Protocol）等の伝送用プロトコルによって配送される。さらに、ストリーム受信自身の制御（セッション確立、再生開始、一時停止、再生再開、再生停止等）は、ＲＴＳＰ（Real Time Streaming Protocol）等によって制御される。
なお、第１の実施形態においては、受信する個々のストリームの種別及びフレームレート等は、前記プロトコルを用いて予め情報を得ているものとする。
【００１９】
ステップＳ１０００にてマルチストリームパケット受信部１０１により受信された各種混合パケットは、パケット振り分け部１０２により個々のストリームに分離され、各々のストリーム毎に別々のバッファに格納される（Ｓ１０１０）。前記個々のストリームに分離する際に使用する情報として、例えばラベルスイッチに用いられるラベルを用いて分離する。前記ラベルは、ストリームが各カメラ４−１，４−２，４−３から送信される前にストリーム単位で付加されているものとする。
【００２０】
また、第１の実施形態では、個々のストリームは各々、Ａストリーム、Ｂストリーム、及びｎストリームの３つに分離されて、各々のバッファであるＡストリームフレーム格納部１０３−１、Ｂストリームフレーム格納部１０３−２、及びｎストリームフレーム格納部１０３−３に格納される。ここでも、各フレーム単位には、各フレームの区別が付くように上述したものと同様でかつ異なったラベルが付加されており、当該ラベルの変化がフレームの切れ目として認識可能であり、当該ラベルでフレーム単位のバッファリングを可能としている（Ｓ１０２０）。なお、フレーム単位のラベルは、ストリームが異なれば同じラベルを用いていてもよい。
【００２１】
また、ゆらぎ制御の処理として各周期フレーム数管理部１０５−１，１０５−２，１０５−３では、ある一定周期あたりの到達フレーム数計数処理ルーチンが別に動作している（Ｓ１０５０）。前記各周期フレーム数管理部１０５−１，１０５−２，１０５−３は、一定周期毎に（Ｓ１０５１）、対応する各ストリームフレーム格納部１０３−１，１０３−２，１０３−３に到達した各々のストリームのフレーム数を各ストリームフレーム計数部１０４−１，１０４−２，１０４−３より取得し、周期フレーム数としてメモリに格納する（Ｓ１０５２）。なお、この一定周期あたりの到達フレーム数計数処理ルーチンは、終了フラグが立つまで繰り返し続けられる（Ｓ１０５３）。
【００２２】
各ストリームフレーム計数部１０４−１，１０４−２，１０４−３は、前記ラベル変化によるフレーム切れ目を認識し（Ｓ１０３０）、到達フレーム数を計数する（Ｓ１０４０）と共に、フレーム切れ目の情報と前記各周期フレーム数管理部１０５−１，１０５−２，１０５−３より取得した周期フレーム数等をゆらぎ統括管理部１０９に対して通知する。
【００２３】
各ストリームフレーム計数部１０４−１，１０４−２，１０４−３からのフレーム切れ目の情報と周期フレーム数等の情報を受信したゆらぎ統括管理部１０９は、各ストリーム毎の周期フレーム数を元にしたトータルなネットワークゆらぎを算出し、その後個々のストリーム毎のフレーム到達ゆらぎ補正タイミングを割り出し（Ｓ１０６０）、各ストリームでのフレーム到達タイミングと共にフレーム制御部１１３に通知する。
【００２４】
個々のストリーム毎のフレーム到達ゆらぎ補正タイミング及び各ストリームでのフレーム到達タイミングを受信したフレーム制御部１１３は、各ストリームにおけるフレームレートを鑑みつつ、補正が必要であれば（Ｓ１０７０）、当該フレーム到達ゆらぎ補正タイミングとフレーム到達タイミングにより各ストリーム毎のコーデック１１０−１，１１０−２，１１０−３にフレーム取得指示を発行する（Ｓ１０８０）。一方、補正が必要でなければ、フレーム到達タイミングもしくはフレームレートタイミングにて、各ストリーム毎のコーデック１１０−１，１１０−２，１１０−３にフレーム取得指示を発行する。
【００２５】
フレーム制御部１１３からのフレーム取得指示を受信した各ストリーム毎のコーデック１１０−１，１１０−２，１１０−３は、各ストリームフレーム格納部１０３−１，１０３−２，１０３−３より１フレーム分のデータを取得し（Ｓ１０９０）、デコードを実施後（Ｓ１１００）、次処理に渡す。
【００２６】
以上、説明したように第１の実施形態によれば、動画のストリーム及びフレームレベルで、ラベルを用いた制御をすることで、ハード化が可能であり、より高速かつ機器内遅延を最小限にできるという効果がある。
【００２７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
図５は、第２の実施形態によるデータ処理装置の構成例を示すブロック図である。
【００２８】
図５に示すように第２の実施形態によるデータ処理装置は、ＭＵＸ（多重化、マルチプレックス）されていない動画（ＭＰＥＧ−４においては、ＥＳ： Elementary streamと称す。）と音声の別々のストリームパケットが複数同時に受信可能なマルチストリームパケット受信部２０１と、各々のストリーム別にパケットをストリーム別バッファに振り分ける機能をもつパケット振り分け部２０２と、各々のストリームに応じたパケットの順序制御とパケット中のデータのネットワーク上で起こったエラーをＦＥＣ（Forward Error Correction）等により修復を行う整合性チェック＆修正部２０３−ｘと、Ｎｏ．ｘの動画ストリームパケットをフレーム単位にてバッファリングを行う動画ストリームＮｏ．ｘフレーム格納部２０４−ｘと、Ｎｏ．ｘの音声ストリームパケットのバッファリングを行うＮｏ．ｘ音声ストリーム格納部２０５−ｘと、動画ストリームＮｏ．ｘフレーム格納部２０４−ｘに格納されたＮｏ．ｘストリームのフレーム区切りを認識してフレーム数をカウントする動画ストリームＮｏ．ｘフレーム数計数部２０６−ｘと、Ｎｏ．ｘ音声ストリーム格納部２０５−ｘに格納されたパケット数をさらに一定周期でカウントするＮｏ．ｘ音声パケット数計数部２０７−ｘと、動画ストリームＮｏ．ｘフレーム数計数部２０６−ｘで計数されているフレーム数を一定周期でサンプリングして周期フレーム数を割り出し記録する動画周期フレーム数管理部２０８−ｘと、動画ストリームＮｏ．ｘフレーム数計数部２０６−ｘ及びＮｏ．ｘ音声パケット数計数部２０７−ｘから通知されるデータによりネットワークゆらぎを管理するゆらぎ統括管理部２１０と、受信対象となった動画及び音声のコーデックに応じたハードコーデックをコンフィグレーションすることで用意して各種格納部との組み合わせをスイッチ２１３を切り替えて管理する共にコーデックモジュール２１２−ｘでのデコードタイミングを管理するストリーム制御部２１１と、種々の動画及び音声のデコードにコンフィグレーションにより対応可能なコーデックモジュール２１２−ｘと、動画ストリームＮｏ．ｘフレーム格納部２０４−ｘやＮｏ．ｘ音声ストリーム格納部２０５−ｘとコーデックモジュール２１２−ｘとを結ぶスイッチ２１３とで構成される。なお、上述した説明において、符号に付した“ｘ”は添え字であり、ｘは自然数である。
【００２９】
次に、第２の実施形態によるデータ処理装置の動作について説明する。
図６及び図７は、第２の実施形態によるデータ処理装置の動作を示すフローチャートである。
【００３０】
ここで、マルチストリームパケット受信部２０１は、図２に示したような複数のカメラ４−１，４−２，４−３等からの複数の動画・音声ストリームのパケットを受信する手段である。本実施形態では、各カメラ４−１，４−２，４−３からの動画と音声は、マルチプレックスされていない（多重化されていない）別々のストリームとして受信する。第１の実施形態と同様にして、各カメラ４−１，４−２，４−３から受信するストリーム選択の制御は、別の層のプロトコル（例えば、ＨＴＴＰ（HyperText Transfer Protocol）によるＵＲＬ（Uniform Resource Locator）等の位置情報の取得や、ＳＩＰ（Session Initiation Protocol）等による位置情報を検索して取得等）によって実施される。
【００３１】
また、各々の動画と音声のストリームは、ＲＴＰ（Real-time Transport Protocol）等の伝送用プロトコルによって配送される。さらに、ストリーム受信自身の制御（セッション確立、再生開始、一時停止、再生再開、再生停止等）は、ＲＴＳＰ（Real Time Streaming Protocol）等によって制御される。
【００３２】
なお、第２の実施形態においては、受信する個々のストリームの種別及びフレームレート等は、前記プロトコルを用いて予め情報を得ており、当該ストリーム種別の情報により動画と音声の各々のコーデック種別に合わせて、コーデックモジュール２１２−ｘをストリーム制御部２１１を使ってコンフィグレーションし、動画コーデックと音声コーデックのコーデックモジュール２１２−ｘをそれぞれ必要な個数用意する。
【００３３】
さらに、前記ストリーム種別の情報等により動画と音声のコーデック種別毎にバッファとしての格納部を用意し、動画ストリームＮｏ．ｘフレーム格納部２０４−ｘの番号と対応する動画コーデックにコンフィグレーションされたコーデックモジュール２１２−ｘの番号が合うように、また、Ｎｏ．ｘ音声ストリーム格納部２０５−ｘの番号と対応する音声コーデックにコンフィグレーションされたコーデックモジュール２１２−ｘの番号が合うように、ストリーム制御部２１１を使ってスイッチ２１３を切り替えておく。具体的には、動画ストリームＮｏ．ｘフレーム格納部２０４−ｘ及びＮｏ．ｘ音声ストリーム格納部２０５−ｘとコーデックモジュール２１２−ｘとが、図５に示した対応となるようにスイッチ２１３を切り替えておく。
【００３４】
ステップＳ２０００にてマルチストリームパケット受信部２０１により受信された各種混合パケットは、パケット振り分け部２０２により個々のストリームに分離され、特に動画と音声の各々のストリーム毎に別々の処理に渡される（Ｓ２０１０）。前記個々のストリームに分離する際に使用する情報として、例えばラベルスイッチに用いられるラベルを用いて分離する。前記ラベルは、ストリームが各カメラ４−１，４−２，４−３から送信される前にストリーム単位で付加されているものとし、また、動画と音声の区別がつくように、さらに動画に関してはフレームの区別がつくように各々別ラベルが付加されている。
【００３５】
パケット振り分け部２０２から各動画と音声のストリームに分離されたパケットは、整合性チェック＆修正部２０３−ｘによって、各々のストリームの特徴に応じて、パケット順序の入れ替えやパケットデータの修復等の処理を実施して、ストリーム毎のバッファに格納される（Ｓ２０２０及びＳ２２００）。また、動画のストリームにおいては各動画のフレーム単位に、各動画フレームの区別が付くように上述したものと同様でかつ異なったラベルが付加されており、当該ラベルの変化が動画フレームの切れ目として認識可能であり、当該ラベルを用いることでフレーム単位のバッファリングを可能としている（Ｓ２０３０）。なお、動画フレーム単位のラベルは、動画ストリームが異なれば同じラベルを用いていてもよい。
【００３６】
次に、ゆらぎ制御の処理として各動画周期フレーム数管理部２０８−１，２０８−２では、ある一定周期あたりの到達フレーム数計数処理ルーチンが別に動作している（Ｓ２０６０）。前記動画周期フレーム数管理部２０８−１，２０８−２は、一定周期毎に（Ｓ２０６１）、対応する各動画ストリームＮｏ．ｘフレーム格納部２０４−１，２０４−２に到達した各々のストリームのフレーム数を各動画ストリームＮｏ．ｘフレーム数計数部２０６−１，２０６−２より取得し、周期フレーム数としてメモリに格納する（Ｓ２０６２）。なお、この一定周期あたりの到達フレーム数計数処理ルーチンは、終了フラグが立つまで繰り返し続けられる（Ｓ２０６３）。
【００３７】
また、各Ｎｏ．ｘ音声パケット数計数部２０７−１，２０７−２は、対応するＮｏ．ｘ音声ストリーム格納部２０５−１，２０５−２に格納された（Ｓ２２１０）音声パケットの数を音声パケットが格納される毎にカウントアップする音声パケット逐次カウント処理（Ｓ２２２０）と、ある一定周期毎に前記音声パケット逐次カウント処理によってカウントされたパケット数を記録し、さらにゆらぎ統括管理部２１０に通知する音声パケット周期サンプリング通知処理（Ｓ２２３０）を実行している。
【００３８】
前記ラベル変化によるフレーム切れ目を認識した（Ｓ２０４０）各動画ストリームＮｏ．ｘフレーム数計数部２０６−１，２０６−２は、到達フレーム総数を計数する（Ｓ２０５０）と共に、フレーム切れ目の情報と前記動画周期フレーム数管理部２０８−１，２０８−２より取得した周期フレーム数等をゆらぎ統括管理部２１０に対して通知する。
【００３９】
各動画ストリームＮｏ．ｘフレーム数計数部２０６−１，２０６−２からのフレーム切れ目の情報及び周期フレーム数等の情報と、各Ｎｏ．ｘ音声パケット数計数部２０７−１，２０７−２からの音声パケット周期サンプリング値等の情報とを受信したゆらぎ統括管理部２１０は、関連する動画ストリームと音声ストリームの前記各種情報を分析してトータルなネットワークゆらぎを算出し、その後個々の関連する動画と音声のストリームペア毎のフレーム到達ゆらぎ補正タイミングを割り出し、各動画ストリームについてはフレーム到達タイミングと共にゆらぎ補正タイミングを、各音声ストリームについてはゆらぎ補正タイミングのみをストリーム制御部２１１に通知する（Ｓ２０７０）。
【００４０】
各動画ストリームでのフレーム到達タイミング及びゆらぎ補正タイミングと、各音声ストリームでのゆらぎ補正タイミングとを受信したストリーム制御部２１１は、まず各動画ストリームに対し、各動画ストリームにおけるフレームレートを鑑みつつ、補正が必要であれば（Ｓ２０８０）、当該ゆらぎ補正タイミングとフレーム到達タイミングに基づいて、各動画ストリームに対応したコーデックにコンフィグレーションされたコーデックモジュール２１２−ｘにフレーム取得指示を発行する（Ｓ２０９０）。また、各音声ストリームに対しては、各音声ストリームにおけるゆらぎ補正タイミングにより、補正が必要であれば（Ｓ２０９０）、当該ゆらぎ補正タイミングに基づいて、各音声ストリームに対応したコーデックにコンフィグレーションされたコーデックモジュール２１２−ｘの音声取得タイミングを補正する。
【００４１】
ストリーム制御部２１１からのフレーム取得指示を受信した、各動画ストリームに対応したコーデックにコンフィグレーションされたコーデックモジュール２１２−ｘは、各動画ストリームＮｏ．ｘフレーム格納部２０４−１，２０４−２より１フレーム分のデータを取得し（Ｓ２１００）、デコードを実施後（Ｓ２１１０）、次処理に渡す。
また、ストリーム制御部２１１からの補正情報を受信した、各音声ストリームに対応したコーデックにコンフィグレーションされたコーデックモジュール２１２−ｘは、補正した周期で、各Ｎｏ．ｘ音声ストリーム格納部２０５−１，２０５−２から一定量のデータを取得し（Ｓ２２６０）、デコードを実施後（Ｓ２２７０）、次処理に渡す。
【００４２】
以上、説明したように第２の実施形態によれば、固定したコーデックをもつことなく、コーデックモジュールを使いまわすことが可能な構成においても、ゆらぎ・遅延制御ができるという効果がある。また、ストリーム毎にＦＥＣ等のエラー修復機能を搭載することで、例えば、動画パケットの修復が音声パケットの配送遅延に影響しない等の最小限の機器内遅延により各ストリームのゆらぎ・遅延制御が可能であるという効果もある。
【００４３】
（本発明の他の実施形態）
なお、本発明は前記各々の実施形態に限定されるものではなく、さらに以下のような変形が可能である。
第１及び第２の実施形態において、パケット振り分け部１０２，２０２は、ラベルスイッチのラベルを用いてパケット振り分けを行っているが、ストリーム区別情報を持ったアドレス自身によってパケット振り分けを行ってもよい。
また、第１及び第２の実施形態において、動画ストリームの動画記録形式は、ＭＰＥＧ−４記録方式以外でもよく、Ｍｏｔｉｏｎ−ＪＰＥＧ，ＭＰＥＧ２，Ｈ２６４，ＤｉｖＸ，ＸＶＩＤ，Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ９等であってもよい。
【００４４】
第１及び第２の実施形態において、ゆらぎ統括管理部１０９，２１０は、周期処理による動画フレーム到着数と音声パケット到着数によりネットワークゆらぎを算出しているが、この処理に統計的手法を用いて予想ゆらぎを係数として加えて算出するようにしても良い。また、ゆらぎ統括管理部１０９，２１０は、動画ストリームのフレーム切れ目での周期フレーム数通知によってネットワークゆらぎを算出しているが、このタイミングに限定されるものではなく、フレーム切れ目通知と周期フレーム数通知のタイミングを分けて各々のタイミングで通知してもよく、このようにした場合にはネットワークゆらぎの算出は、フレームレートタイミング等で行っても良い。
【００４５】
第２の実施形態における動画ストリームＮｏ．ｘフレーム格納部２０４−ｘにおいて、当該バッファとしての格納部でストリームのバッファあふれが起きそうな場合には、現在の格納部とは別に長い格納部を動的に用意し、パケット振り分け部２０２の振り分け先を変更するようにし、スイッチ２１３を対象コーデックモジュールに切り替えて、ゆらぎ制御が止まらないようにしてもよいし、整合性チェック＆修正部２０３−ｘと複数の大きさの動画ストリームＮｏ．ｘフレーム格納部を設けて、パケット振り分け部２０２の振り分け先を変更するようにしてゆらぎ制御が止まらないようにしてもよい。
【００４６】
また、上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。また、そのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００４７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００４８】
【図１】従来の動画配信サービスの提供システムの構成を示す図である。
【図２】本発明が適用可能な動画配信サービスの提供システムの構成を示す図である。
【図３】第１の実施形態によるデータ処理装置の構成例を示すブロック図である。
【図４】第１の実施形態によるデータ処理装置の動作を示すフローチャートである。
【図５】第２の実施形態によるデータ処理装置の構成例を示すブロック図である。
【図６】第２の実施形態によるデータ処理装置の動作を示すフローチャートである。
【図７】第２の実施形態によるデータ処理装置の動作を示すフローチャートである。
【符号の説明】
【００４９】
１…パーソナルコンピュータ
２…サーバ
３…インターネット
４−ｘ…動画カメラ
１０１，１０２…マルチストリームパケット受信部
１０２，２０２…パケット振り分け部
１０３−ｘ…ｘストリームフレーム格納部
１０４−ｘ…ｘストリームフレーム数計数部
１０５−ｘ，２０８−ｘ…ｘ周期フレーム数管理部
１０９，２１０…ゆらぎ統括管理部
１１０−ｘ…コーデック−ｘ
１１３…フレーム制御部
２０３−ｘ…整合性チェック＆修正部
２０４−ｘ…ストリームＮｏ．ｘフレーム格納部
２０５−ｘ…Ｎｏ．ｘ音声ストリーム格納部
２０６−ｘ…ストリームＮｏ．ｘフレーム数計数部
２０７−ｘ…Ｎｏ．ｘ音声パケット数計数部
２１１…ストリーム制御部
２１２−ｘ…コーデックモジュール
２１３…スイッチ
【図１】
2006325020.tif 000003
【図２】
2006325020.tif 000004
【図３】
2006325020.tif 000005
【図４】
2006325020.tif 000006
【図５】
2006325020.tif 000007
【図６】
2006325020.tif 000008
【図７】
2006325020.tif 000009