(57)【要約】【課題】  送信側及び受信側に影響を与えることなく中継装置においてデータ転送量を減少させる。【解決手段】  本中継装置は、ストリーム・パッケージ・データ(SPD)を受信した場合、特定された動作モードに従って抽出すべき特定フレーム・データを上記SPDが含んでいるか判断する手段と、上記SPDが特定フレーム・データを含まないと判断された場合には、転送先において必要とされる所定のフレーム・データを含むSPD以外のSPDを破棄する手段と、上記SPDが特定フレーム・データを含むと判断された場合又は転送先において必要とされる所定のフレーム・データを含むSPDであると判断された場合には、上記SPDに対してパッケージ再構成を行い、パッケージ再構成後のSPDを転送する転送手段とを有する。これにより中継装置の負荷も大きくはならない。【選択図】図１
2006254044.tif 000002
【特許請求の範囲】
【請求項１】
動作モードを特定する手段と、
ストリーム・パッケージ・データを受信した場合、特定された前記動作モードに従って抽出すべき特定フレーム・データを前記ストリーム・パッケージ・データが含んでいるか判断する手段と、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含まないと判断された場合には、転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データ以外のストリーム・パッケージ・データを破棄する手段と、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含むと判断された場合又は前記転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データであると判断された場合には、前記ストリーム・パッケージ・データに対してパッケージ再構成を行い、パッケージ再構成後のストリーム・パッケージ・データを転送する転送手段と、
を有する中継装置。
【請求項２】
前記転送手段が、
前記ストリーム・パッケージ・データにおける、前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データ以外の部分を、パディング・データとなるように、前記ストリーム・パッケージ・データを再構成する
ことを特徴とする請求項１記載の中継装置。
【請求項３】
前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データ以外の部分が、前記ストリーム・パッケージ・データにおいて、前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データより前に存在している場合には、前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データの後ろにパディング・データが配置されるように前記ストリーム・パッケージ・データを再構成する
ことを特徴とする請求項１記載の中継装置。
【請求項４】
前記特定フレーム・データが、音声パケットのデータ、画像パケットにおけるＩフレームのデータ、画像パケットにおけるＩフレームとＢフレーム又はＰフレームとのデータ、画像パケットにおける所定回数おきのＩフレームのデータの少なくともいずれかであることを特徴とする請求項１記載の中継装置。
【請求項５】
前記動作モードが、複数種類のストリーム・パッケージ・データの中から特定フレーム・データとして画像パケットにおけるＩフレームを抽出して１種類のストリーム・パッケージ・データとして転送するモードである場合、前記転送手段が、前記ストリーム・パッケージ・データのヘッダにおける宛先及びシーケンス番号を修正することを特徴とする請求項１記載の中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリーム・データの中継技術に関する。
【背景技術】
【０００２】
画像・音声ストリーム・データを中継するマルチキャスト中継装置において、広帯域のネットワークから狭帯域のネットワークにデータを転送する場合、帯域調整のため、例えば以下のような方式を利用している。すなわち、狭帯域のネットワークの帯域幅に応じたレートの画像データを配信してもらう、デュアルストリームを用意したエンコーダ装置を用意する、中継装置内にエンコーダ／デコーダ機能を用意し、受信したデータをデコードして狭帯域のネットワークの帯域幅に応じた圧縮率でストリームを再エンコードして配信する、といったものである。
【０００３】
例えば、特開平９−１３９９３７号公報には、高価なＭＰＥＧ２エンコーダを必要とせずに、ＭＰＥＧ１ストリームを簡単にＭＰＥＧ２トランスポートストリームに変換して、ＭＰＥＧ２対応のシステムを構築可能とする技術が開示されている。具体的には、分離処理部は、ビデオとオーディオの各符号化データを多重化したＭＰＥＧ１システムストリームを入力して、ビデオとオーディオの各々の初等ストリームＥＳに分離し、パケット作成部において、ＭＰＥＧ２のパケット化された初等ストリームＰＥＳが各々作成され、最後に、多重化処理部で固定長１８８バイトのトランスポートパケットに分割した後に多重化してＭＰＥＧ２トランスポートストリームＴＳに変換するものである。また、多重化処理部は、パケット作成部で作成された初等ストリームをＭＰＥＧ２トランスポートストリームに変換する際に、ＭＰＥＧ２の伝送レートに適合するように無効データを格納したＴＳパケットを挿入する無効パケット挿入部を設けている。しかし、本公報記載の技術は、ＭＰＥＧ２のトランスポートストリームをＭＰＥＧ１に変換されたデータで構成することを目的としており、また無効パケットの挿入も伝送レートの調整のためである。
【特許文献１】特開平９−１３９９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、従来技術においては、送信側に大きな負担をかけるか、中継装置に高価な機能を設けるか、ストリームデータの規格変更により転送先などにおいて再起動が必要となるなど、大きな問題があった。
【０００５】
従って、本発明の目的は、エンコードについての規格変更や再エンコードを行わずに、データ転送量を変更するための技術を提供することである。
【０００６】
さらに、本発明の他の目的は、上記技術を応用してストリーム・データの合成を行うことができるようにするための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る中継装置は、例えば負荷や帯域幅などに基づき動作モードを特定する手段と、ストリーム・パッケージ・データ（例えばＲＴＰ（Real-time Transport Protocol）におけるパケット。但し、本願ではパッケージと呼ぶ。）を受信した場合、特定された動作モードに従って抽出すべき特定フレーム・データを上記ストリーム・パッケージ・データが含んでいるか判断する手段と、上記ストリーム・パッケージ・データが特定フレーム・データを含まないと判断された場合には、転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データ以外のストリーム・パッケージ・データを破棄する手段と、上記ストリーム・パッケージ・データが特定フレーム・データを含むと判断された場合又は転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データであると判断された場合には、上記ストリーム・パッケージ・データに対してパッケージ再構成を行い、パッケージ再構成後のストリーム・パッケージ・データを転送する転送手段とを有する。
【０００８】
このように転送先において必要とされる所定のフレーム・データ及び動作モードに対応する特定フレーム・データを含むストリーム・パッケージ・データのみが転送の対象となるため、中継装置の処理負荷を高めることなく、転送データ量を減らすことができるようになる。
【０００９】
なお、上で述べた転送手段が、上記ストリーム・パッケージ・データにおける、特定フレーム・データ又は転送先において必要とされる所定のフレーム・データ以外の部分を、パディング・データとなるように、ストリーム・パッケージ・データを再構成するようにしてもよい。上記ストリーム・パッケージ・データにおける、特定フレーム・データ又は転送先において必要とされる所定のフレーム・データのみでストリーム・パッケージ・データを構成しても良いが、ストリーム・パッケージ・データのサイズが固定である場合には、残りの部分を上で述べたように処理することにより、受信側における画像の乱れや雑音を減らすことができるようになる。
【００１０】
さらに、特定フレーム・データ又は転送先において必要とされる所定のフレーム・データ以外の部分が、上記ストリーム・パッケージ・データにおいて、特定フレーム・データ又は転送先において必要とされる所定のフレーム・データより前に存在している場合には、特定フレーム・データ又は転送先において必要とされる所定のフレーム・データの後ろにパディング・データが配置されるようにストリーム・パッケージ・データを再構成するようにしてもよい。受信側では特定フレームなどに対する処理を早期に開始することができるようになる。
【００１１】
さらに、上で述べた特定フレーム・データが、音声パケットのデータ、画像パケットにおけるＩフレームのデータ、画像パケットにおけるＩフレームとＢフレーム又はＰフレームとのデータ、画像パケットにおける所定回数おきのＩフレームのデータの少なくともいずれかである場合もある。本発明は様々な場合に対応することができる。
【００１２】
また、上で述べた動作モードが、複数種類のストリーム・パッケージ・データの中から特定フレーム・データとして画像パケットにおけるＩフレーム（Ｉ＋Ｂ、Ｉ＋Ｂ＋Ｐの場合もある）を抽出して１種類のストリーム・パッケージ・データとして転送するモードである場合、上で述べた転送手段が、上記ストリーム・パッケージ・データのヘッダにおける宛先及びシーケンス番号を修正するようにしてもよい。受信側において正しい順番で処理できるようになる。
【００１３】
本発明に係る中継装置は、プロセッサと、当該プロセッサに実行させるためのプログラムとにより構成される場合もあり、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【発明の効果】
【００１４】
本発明によれば、エンコードについての規格変更や再エンコードを行わずに、データ転送量を変更することができるようになる。
【００１５】
また本発明の別の側面として、ストリーム・データの合成を行うことができるようになる。
【発明を実施するための最良の形態】
【００１６】
図１に本発明の一実施の形態におけるシステム全体図を示す。本実施の形態における中継装置３は、少なくとも広帯域のネットワーク１と狭帯域のネットワーク２とに接続されている。そして、ネットワーク１には、ストリーム・データを配信する配信サーバ７が接続されている。配信サーバ７は、コンテンツＤＢ１１を管理しており、コンテンツＤＢ１１に格納されているコンテンツを、ストリーム・データとしてネットワーク１を介して配信するようになっている。また、ネットワーク２には、ユーザ端末９が接続されており、ユーザ端末９は、配信サーバ７が配信しているストリーム・データを受信して、デコードし、表示装置に表示、又はスピーカからの音声出力を行うものである。
【００１７】
中継装置３は、転送モード制御部３１と、パッケージ受信部３３と、パッケージ処理部３５と、パッケージ送信部３７とを有する。転送モード制御部３１は、例えばネットワーク１のトラフィック又は有効利用可能帯域と、ネットワーク２のトラフィック又は有効利用可能帯域とを測定し、ネットワーク１からネットワーク２に配信されるストリーム・データの転送モードを特定する。但し、例えば中継装置３のユーザが、転送モード制御部３１に対して転送モードを固定で設定するようにしてもよいし、他の基準に基づき転送モードを決定するようにしてもよい。転送モード設定部３１は、パッケージ処理部３５に対して、転送モードを設定する。
【００１８】
パッケージ受信部３３は、ネットワーク１からストリーム・データであるＲＴＰパッケージ・データを受信し、パッケージ処理部３５に出力する。パッケージ処理部３５は、設定された転送モードに従って、以下で説明するパッケージの破棄及び再構成を実施し、パッケージ送信部３７に出力する。パッケージ送信部３７は、パッケージ処理部３５から受け取ったＲＴＰパッケージ・データをネットワーク２に出力する。
【００１９】
本実施の形態では、配信サーバ７は、ＲＴＰパッケージ・データを送信し、中継装置３は、当該ＲＴＰパッケージ・データを受信する。このＲＴＰパッケージは、図２（ａ）に示すように、ＲＴＰヘッダと、ペイロードとして図２（ｂ）に示されるシステム（Ｓｙｓｔｅｍ）パケットと音声（Ａｕｄｉｏ）パケットとパディング（Ｐａｄｄｉｎｇ）パケットとビデオ（Ｖｉｄｅｏ）パケットとのうち少なくともいずれかとを含む。なお、ＲＴＰヘッダには、シーケンス番号を含む。
【００２０】
また、Systemパケットは、図２（ｃ）に示すように、ヘッダコード（例えば０００００１ＢＡなど）と、タイムスタンプと、パケットのサイズと、データとを含む。なお、タイムスタンプ、サイズ、データは任意であり、含まれない場合もある。また、Audioパケットは、図２（ｄ）に示すように、ヘッダコード（例えば０００００１Ｅ０など）と、タイムスタンプと、パケットのサイズと、データとを含む。なお、タイムスタンプ、データは任意であり、含まれない場合もある。さらに、Paddingパケットは、図２（ｅ）に示すように、ヘッダコード（例えば０００００１Ｃ０など）と、パケットのサイズと、ダミーデータとを含む。ダミーデータは存在しない場合もある。また、Videoパケットは、図２（ｆ）に示すように、ヘッダコードと、タイムスタンプと、サイズと、データとを含む。なお、タイムスタンプと、データとは任意であり、含まれない場合もある。なお、図２（ｃ）乃至図２（ｆ）は、各パケットを簡略化した形で説明しており、全てのデータを示すものではない。例えば、Ｖｉｄｅｏパケットには、ＧＯＰ（Group of Picture）ヘッダ（ＧＯＰコードとも呼ぶ）と、ピクチャ（Picture）ヘッダ（Pictureコードとも呼ぶ）とが含まれる。また、Pictureヘッダには、PICTURE_START_CODE（０００００１００）と、ＭＰＥＧにおけるＩフレーム、Ｂフレーム、Ｐフレームを区別するためのPICTURE_CODING_TYPEとを含む。
【００２１】
なお、１ＧＯＰは、例えば、ＢＢＩ ＢＢＰ ＢＢＰ ＢＢＰ ＢＢＰというフレーム群で構成される。
【００２２】
図３にＲＴＰパッケージ列の一例を示す。図３（ａ）は、ヘッダコードが０００００１Ｅ０のビデオパケットを含むＲＴＰパッケージを示している。このＲＴＰパッケージにおいて最初のデータ部分はＢフレーム（Ｆｒａｍｅ）のデータを含んでおり、その後PICTURE_START_CODE（０００００１００）が挿入されており、さらにＩフレーム（Ｆｒａｍｅ）のデータが含まれている。なお、図示しないが、PICUTURE_CODING_TYPEによりＩフレームであることが分かる。次のＲＴＰパッケージは、図３（ｂ）に示すように、ヘッダコード０００００１Ｅ０と、Ｉフレームの続きデータが含まれる。その後図３（ｂ）と同様のパッケージが繰り返され、最後に図３（ｃ）に示すように、ヘッダコード０００００１Ｅ０と、Ｉフレームの最後のデータとを含んでおり、その後PICTURE_START_CODE（０００００１００）が挿入されており、さらにＢフレームのデータが含まれているＲＴＰパッケージが現れる。図示していないが、PICTURE_CODING_TYPEによりＢフレームであることが分かる。
【００２３】
次に、図１に示した中継装置３の処理フローを図４乃至図１０を用いて説明する。なお、処理フローとは別に、転送モード制御部３１は、転送モードを特定し、パッケージ処理部３５に設定する。なお、転送モードを変更する際には、以下に用いる変数を初期化する。すなわち、ＲＴＰパケットのシーケンス番号を表す変数SequenceNoを０に設定し、パッケージの転送可否を表すbSendItをFalseに設定し、Ｉフレームが検出された後であるか否かを示すbInsideIFrameをFalseに設定し、Ｉフレームを何フレームおきに送信するかを設定するためのnIFrameRateを転送モードに応じて所定の値に設定し、受信したＩフレームの数をカウントするためのnIFrameCntを０に設定する。
【００２４】
そして、パッケージ受信部３３は、パッケージを受信し、パッケージ処理部３５にパッケージを出力する（ステップＳ１）。そして、パッケージ処理部３５は、現在転送モードが、IFrameモードであるか判断する（ステップＳ３）。IFrameモードでは、Ｉフレームのみが転送されるモードである。もし、IFrameモードであれば、パッケージ処理部３５は、IFrameフィルタ処理を実施する（ステップＳ５）。この処理については、以下で詳細に説明する。一方、IFrameモードでなければ、Audioモードであるか判断する（ステップＳ７）。Audioモードは、Audioパケットのみが転送されるモードである。Audioモードであれば、パッケージ処理部３５は、Audioフィルタ処理を実施する（ステップＳ９）。なお、Audioフィルタ処理はIFrameフィルタ処理の変形であるので、IFrameフィルタ処理の説明の後に、簡単に説明する。
【００２５】
さらに、Audioモードでなければ、パッケージ処理部３５は、IFrame+Audioモードであるか判断する（ステップＳ１１）。もし、IFrame+Audioモードであれば、パッケージ処理部３５は、IFrame+Audioフィルタ処理を実施する（ステップＳ１３）。IFrame+Audioモードは、AudioパケットとＩフレームとが転送されるモードである。なお、Audioフィルタ処理はIFrameフィルタ処理の変形であるので、IFrameフィルタ処理の説明の後に、簡単に説明する。一方、IFrame+Audioモードでなければ、ここではフルモードであり、パッケージ処理部３５は、SequenceNoを１インクリメントし（ステップＳ１５）、ＲＴＰヘッダのシーケンス番号をSequenceNoの値に変更した上で、当該パッケージのデータをパッケージ送信部３７に出力し、当該パッケージ送信部３７は、当該パッケージのデータを送信する（ステップＳ１７）。そしてステップＳ３３に移行する。
【００２６】
なお、この他の転送モードが定義されている場合には、ステップＳ１１のＮｏルートの後にそれに応じて処理を挿入する。
【００２７】
ステップＳ５、Ｓ９又はＳ１３の後に、パッケージ処理部３５は、bSendIt＝Trueであるか判断する（ステップＳ１９）。すなわち、ステップＳ５、Ｓ９又はＳ１３において、ＲＴＰパッケージの送信が許可されたか判断する。もし、bSendIt＝Trueである、すなわちＲＴＰパッケージの送信が許可された場合には、パッケージ処理部３５は、SequenceNoを１インクリメントし（ステップＳ２１）、ＲＴＰヘッダのシーケンス番号をSequenceNoの値に変更した上で、当該パッケージのデータをパッケージ送信部３７に出力し、当該パッケージ送信部３７は、当該パッケージのデータを送信する（ステップＳ２３）。そしてステップＳ３３に移行する。
【００２８】
一方、bSendIt＝Falseである場合には、パッケージ処理部３５は、Systemパケットを含むＲＴＰパッケージの送信可否を表すbSysSendItがTrueであるか判断する（ステップＳ２５）。Systemパケットは、所定時間内に定期的に送信する必要があるので、ステップＳ５、Ｓ９又はＳ１３におけるフィルタ処理の結果として設定される変数bSendItとは別に管理されており、ステップＳ２５でSystemパケットを送信すべきか判断する。なお、送信すべきVideoパケットをも含むＲＴＰパッケージであれば、ステップＳ１９からステップＳ２１及びＳ２３を実行するようになるので、ステップＳ２５ではSystemパケット以外に送信すべきパケットがないＲＴＰパッケージが送信されることになる。bSysSendIt＝Trueである場合には、パッケージ処理部３５は、SequenceNoを１インクリメントし（ステップＳ２７）、ＲＴＰヘッダのシーケンス番号をSequenceNoの値に変更した上で、Systemパケットを含む当該パッケージのデータをパッケージ送信部３７に出力し、当該パッケージ送信部３７は、当該パッケージのデータを送信する（ステップＳ２９）。また、Systemパケットを含むパッケージの送信時刻を、例えばメインメモリなどの記憶装置に格納する（ステップＳ３１）。そしてステップＳ３３に移行する。
【００２９】
ステップＳ３３では、処理を終了すべきか判断し、処理を終了させない場合にはステップＳ１に戻る。それ以外の場合には処理を終了させる。
【００３０】
このような処理を実施することにより、様々な転送モードに対応することができる。
【００３１】
次に、図５を用いてIFrameフィルタ処理の詳細を説明する。パッケージ処理部３５は、初期化処理として、bSendItとbSysSendItとにFalseを設定する（ステップＳ４１）。そして、変数ｐＣｕｒを先頭パケットにセットする（ステップＳ４３）。その後、パッケージ処理部３５は、ｐＣｕｒが指しているパケットがSystemパケットであるか判断する（ステップＳ４５）。パケットの種別はヘッダコードにより判断することができる。もし、ｐＣｕｒが指しているパケットがSystemパケットであると判断された場合には、bSendItがFalseであり且つ前回送信時刻からの経過時間が閾値を超えたか判断する（ステップＳ４７）。上でも述べたが、Systemパケットは所定時間内において定期的に送信する必要があるため、前回送信時刻からの経過時間が閾値を超えたSystemパケット以外に送信すべきパケットが存在しないＲＴＰパケットを、ここで特定する。従って、bSendItがFalseであり且つ前回送信時刻からの経過時間が閾値を超えたと判断された場合には、bSysSendItにTrueをセットする（ステップＳ４９）。そして、ステップＳ５９に移行する。一方、bSendItがTrueの場合、又は前回送信時刻からの経過時間が閾値を超えていない場合には、ステップＳ５９に移行する。
【００３２】
また、ｐＣｕｒが指しているパケットがSystemパケットではないと判断されると、Paddingパケットであるか判断する（ステップＳ５１）。もし、ｐＣｕｒが指しているパケットがPaddingパケットと判断されると、ステップＳ５９に移行する。
【００３３】
また、ｐＣｕｒが指しているパケットがPaddingパケットではないと判断されると、Audioパケットであるか判断する（ステップＳ５３）。ｐＣｕｒが指しているパケットが、Audioパケットであると判断されると、当該AudioパケットのヘッダコードをPaddingのヘッダコードに変更する（ステップＳ５５）。すなわち、AudioパケットをPaddingパケットにしてしまう。
【００３４】
例えば図６（ａ）のようなAudioパケットのヘッダコードを、図６（ｂ）のようなPaddingパケットのヘッダコードに変更する。
【００３５】
一方、ｐＣｕｒが指しているパケットがAudioではないと判断された場合、Videoパケットであるから、ビデオパケット処理を実施する（ステップＳ５７）。ステップＳ５７については後に詳細に説明するが、Ｉフレームを検出した場合にbSendItをTrueにセットする。そしてステップＳ５９に移行する。
【００３６】
ステップＳ５９において、ｐＣｕｒを次のパケットに設定する。そして、ｐＣｕｒがNULLを指しているか判断する（ステップＳ６１）。すなわち、処理対象のパッケージに未処理のパケットが存在しないか判断する。もし、未処理のパケットが存在すると判断された場合にはステップＳ４５に戻る。一方、未処理のパケットが存在しないと判断された場合には、bSysSendItがTrueにセットされており、且つbSendItがFalseにセットされているか判断する（ステップＳ６３）。これは、処理対象のパッケージが、送信すべきパケットがSystemパケットのみであるＲＴＰパッケージであるか判断するものである。そして、bSysSendItがTrueにセットされており、且つbSendItがFalseにセットされている場合には、処理対象のパッケージに含まれる全てのビデオパケットのヘッダをPaddingパケットのヘッダコードに変更する（ステップＳ６５）。このように、Videoパケットが含まれても、bSendItがFalseである場合には、当該Videoパケットを送信する必要はないので、Paddingパケットに変更してしまう。そして元の処理に戻る。一方、bSysSendItがFalseにセットされているか、又はbSendItがTrueにセットされている場合には、何もせずに元の処理に戻る。
【００３７】
このような処理を実施することにより、ＩフレームのVideoパケット及び転送の必要なSystemパケットのみを転送することができるようになる。
【００３８】
図５の処理を、Audioフィルタ処理に変更する場合には、ステップＳ５５の代わりに、bSendItをTrueにセットし、ステップＳ５７の代わりに、VideoパケットのヘッダコードをPaddingパケットのヘッダコードに変更すればよい。
【００３９】
図５の処理を、IFrame+Audioフィルタ処理では、ステップＳ５５の代わりに、bSendItをTrueにセットすればよい。
【００４０】
次に、図７乃至図９を用いてビデオパケット処理の処理フローを説明する。まず、パッケージ処理部３５は、処理対象のパッケージがPictureヘッダを含むか判断する（ステップＳ７１）。処理対象のパッケージがPictureヘッダを含むと判断した場合には、当該PictureヘッダのPICTURE_CODING_TYPEがＩフレームを示しているか判断する（ステップＳ７３）。PICTURE_CODING_TYPEがＩフレームを示していると判断した場合には、カウンタnIFrameCntを１インクリメントする（ステップＳ７５）。そして、カウンタnIFrameCntが予め設定されているnIFrameRateに等しくなったか判断する（ステップＳ７７）。もし、カウンタnIFrameCntがnIFrameRateに等しくなったと判断された場合には、カウンタnIFrameCntを０に初期化する（ステップＳ７９）。一方、カウンタnIFrameCntがnIFrameRate未満である場合には、ステップＳ８１に移行する。
【００４１】
そして、ステップＳ７９又はＳ７７の後に、bInsideIFrameがTrueであるか判断する（ステップＳ８１）。すなわち、Ｉフレームが検出された後に再度Ｉフレームが検出されたのかを判断する。これは、通常はあり得ないパターンであるが、念のため確認するものである。もし、bInsideIFrameがTrueであると判断された場合には、ステップＳ８９に移行する。一方、bInsideIFrameがFalseであると判断された場合には、ＢフレームからＩフレームに遷移したことを表すため、本パッケージの先頭に存在するＢフレームのデータ（不要データ）を後部に移動させ、Paddingパケットを構成し、さらにＩフレームのデータを先頭に移動させる（ステップＳ８３）。本ステップでは、図３（ａ）のようなパッケージ状態を想定しており、図８（ａ）のようにVideoパケットのヘッダと不要データであるＢフレームのデータと必要データであるＩフレームのデータとを含むようなパッケージである場合には、図８（ｂ）のように必要データであるＩフレームのデータをVideoパケットのヘッダの後に配置し、不要データであるＢフレームのデータをPaddingパケットに変更して、パッケージを再構成する。Paddingパケットには、図２（ｅ）に示すように、ヘッダコードとサイズとダミーデータとが含まれるので、パッケージのサイズを変更することなく、ヘッダコードとサイズのデータのデータ量からPaddingパケットのサイズを決定する。その後、bInsideIFrameをTrueにセットする（ステップＳ８５）。そして、処理はステップＳ８９に移行する。なお、パッケージの最初からＩフレームである場合もあるので、そのような場合には、Paddingパケットは構成されない。
【００４２】
一方、ステップＳ７１でPictureヘッダが存在しないと判断された場合、bInsideIFrameがTrueであるか判断する（ステップＳ８７）。Pictureヘッダが存在せず、bInsideIFrameがTrueであるということは、Ｉフレームの途中、すなわち図３（ｂ）のようなパッケージを処理している場合であるから、ステップＳ８９に移行する。一方、bInsideIFrameがFalseであると判断された場合には、Ｂフレーム又はＰフレームの途中であることを示しており、元の処理に戻る。
【００４３】
また、ステップＳ７３でPICTURE_CODING_TYPEがＩフレームを示していないと判断された場合、bInsideIFrameがTrueであるか判断する（ステップＳ９３）。これは、ＩフレームからＢフレームに遷移したのか、それともＰフレームからＢフレーム又はＢフレームからＰフレームに遷移したのかを判断するものである。bInsideIFrameがTrueであると判断された場合には、ＩフレームからＢフレームに遷移したことを示しており、例えば図３（ｃ）のようなパッケージを処理している。従って、このような場合には、Ｉフレームのデータについてはそのままにしておき、後部の不要データであるＢフレームのデータについてPaddingパケットを構成して置き換える（ステップＳ９５）。すなわち、図９（ａ）のように、Videoパケットのヘッダと必要データであるＩフレームと不要データであるＢフレームのデータとが含まれる状態から、図９（ｂ）のように、Videoパケットのヘッダと必要データであるＩフレームとPaddingパケットとが含まれる状態に、パッケージを再構成する。そして、bInsideIFrameをFalseに変更する（ステップＳ９７）。その後ステップＳ８９に移行する。
【００４４】
一方、bInsideIFrameがFalseであると判断された場合には、ＰフレームからＢフレーム又はＢフレームからＰフレームへの遷移であるから、本パッケージにおけるヘッダコードをVideoパケットのヘッダコードからPaddingパケットのヘッダコードに変更する（ステップＳ９９）。そしてステップＳ８９に移行する。
【００４５】
ステップＳ８９では、nIFrameCntが０であるか判断する。すなわち、ステップＳ７９を通過したか判断する。これは、例えば２回Ｉフレームを受信した後に１つのＩフレームを送信するような場合には、nIFrameRateが２にセットされているので、nIFrameCntが２になるとステップＳ７９においてnIFrameCntが０にリセットされ、ステップＳ８９においてステップＳ９１に移行する。ステップＳ９１では、bSendItをTrueにセットする。bSendItがTrueであれば、ステップＳ２３（図４）で本パッケージが送信されることになる。
【００４６】
一方、nIFrameCntが０ではない場合には、何もせず元の処理に戻る。すなわち、本パッケージは破棄されることになる。
【００４７】
このような処理を行えば、VideoパケットのうちＩフレームのみを含むパッケージを構成して送信することができるようになる。また、図３（ａ）及び図３（ｃ）のようなパッケージの場合には、Paddingパケットが構成されて付加されるようになるので、受信側では画像の乱れも発生しない。
【００４８】
なお、必ずＩフレームのみを送るようにしなければならないわけではなく、ＩフレームとＢフレームとを送信する場合も存在する。例えばＩフレームとＢフレームを送信する場合には、Ｉフレームを数フレームおきに送信することは妥当ではないので、nIFrameRateを１にセットする。そして、ステップＳ７３においてＩフレームだけではなく、ＢフレームであってもステップＳ７５に移行するようにする。また、ステップＳ８３では、ＩフレームとＢフレーム以外のフレームを、不要データとして処理する。ステップ９５においても同様である。
【００４９】
以上のような処理を実施することにより、ネットワーク１が広帯域で、ネットワーク２が狭帯域である場合には、ネットワーク１から図１０（ａ）に示すように多数のパッケージを受信しても、図１０（ｂ）に示すように、ＩフレームのVideoパケットを含むパッケージＰ１乃至Ｐ６のみが抽出され、ネットワーク２に送信されるようになる。なお、パッケージＰ１、Ｐ３及びＰ５については、Ｂフレームのデータが含まれていたが、これらについてはPaddingパケットに再構成されているので、パッケージのサイズを変更することなく、さらに受信側に画像乱れを生じさせずに表示を行うことができるようになる。
【００５０】
なお、図１０（ｂ）のようにパッケージ送信について時間的な余裕が生じるようであれば、送信時間を所望のタイミングにずらしながら送信することも可能である。また、ユーザ端末９では、ストリーム・データの再生機構を再起動するなどの処理を必要としないので、途中で転送モードを変更することも可能である。
【００５１】
なお、Ａｕｄｉｏパケットのみを送信するような場合等にも、図１０（ｂ）のようなパッケージの送信が行われるようになり、音声の場合には雑音の発生を抑制することができる。
【００５２】
以上述べた技術を応用すると、中継装置３においてストリーム・データの合成が可能となる。例えば、図１１（ａ）乃至（ｄ）に示すように、４種類のストリーム・データを、通常はＩＰアドレス及びポート番号のセットが異なるようにユーザ端末９に送信しているが、ネットワーク２の帯域が４本のストリーム・データを流すには十分ではない場合、以下のような処理を実施する。すなわち、パッケージ処理部３５は、合成転送モードを転送モード制御部３１から設定されると、各ストリーム・データについて上で述べた処理を行い、ＩフレームのVideoパケットのみを含むパッケージを構成する。そして、ＩＰアドレス及びポートを一本化して、送信すべきパッケージの宛先に設定すると共に、シーケンス番号についても通し番号に振り直す。また、各ストリーム・データから抽出されたパッケージをｘ秒間隔で送信するようにする。そうすると、図１１（ｅ）に示すような各ストリーム・データのうちＩフレームを含むパッケージのみが送信されるようになるため、ユーザ端末９では一定時間（ここではｘ秒）毎に４種類の画像が切り替えられて表示されるようになる。この際、ユーザ端末９の再生機構の再起動なども不要である。なお、パッケージの再構成の際に、表示位置、優先度に応じた表示サイズなどのデータを送信データに付加すれば、ユーザ端末９では様々な表示態様が可能となる。
【００５３】
以上本発明の一実施の形態について説明したが、本発明はこれに限定されるものではない。例えば、図１に示した中継装置３の機能ブロック図は、必ずしも実際の部品又はプログラム・モジュールに対応しない。
【００５４】
（付記１）
動作モードを特定する手段と、
ストリーム・パッケージ・データを受信した場合、特定された前記動作モードに従って抽出すべき特定フレーム・データを前記ストリーム・パッケージ・データが含んでいるか判断する手段と、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含まないと判断された場合には、転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データ以外のストリーム・パッケージ・データを破棄する手段と、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含むと判断された場合又は前記転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データであると判断された場合には、前記ストリーム・パッケージ・データに対してパッケージ再構成を行い、パッケージ再構成後のストリーム・パッケージ・データを転送する転送手段と、
を有する中継装置。
【００５５】
（付記２）
前記転送手段が、
前記ストリーム・パッケージ・データにおける、前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データ以外の部分を、パディング・データとなるように、前記ストリーム・パッケージ・データを再構成する
ことを特徴とする付記１記載の中継装置。
【００５６】
（付記３）
前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データ以外の部分が、前記ストリーム・パッケージ・データにおいて、前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データより前に存在している場合には、前記特定フレーム・データ又は前記転送先において必要とされる所定のフレーム・データの後ろにパディング・データが配置されるように前記ストリーム・パッケージ・データを再構成する
ことを特徴とする付記１記載の中継装置。
【００５７】
（付記４）
前記転送先において必要とされる所定のフレーム・データが、所定時間間隔で必要とされるシステム・パケットのデータである
付記１記載の中継装置。
【００５８】
（付記５）
前記特定フレーム・データが、音声パケットのデータ、画像パケットにおけるＩフレームのデータ、画像パケットにおけるＩフレームとＢフレーム又はＰフレームとのデータ、画像パケットにおける所定回数おきのＩフレームのデータの少なくともいずれかであることを特徴とする付記１記載の中継装置。
【００５９】
（付記６）
前記転送手段が、前記ストリーム・パッケージ・データのヘッダにおけるシーケンス番号を修正することを特徴とする付記１記載の中継装置。
【００６０】
（付記７）
前記動作モードが、複数種類のストリーム・パッケージ・データの中から特定フレーム・データとして画像パケットにおけるＩフレームを抽出して１種類のストリーム・パッケージ・データとして転送するモードである場合、前記転送手段が、前記ストリーム・パッケージ・データのヘッダにおける宛先及びシーケンス番号を修正することを特徴とする付記１記載の中継装置。
【００６１】
（付記８）
動作モードを特定するステップと、
ストリーム・パッケージ・データを受信した場合、特定された前記動作モードに従って抽出すべき特定フレーム・データを前記ストリーム・パッケージ・データが含んでいるか判断するステップと、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含まないと判断された場合には、転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データ以外のストリーム・パッケージ・データを破棄するステップと、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含むと判断された場合又は前記転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データであると判断された場合には、前記ストリーム・パッケージ・データに対してパッケージ再構成を行い、パッケージ再構成後のストリーム・パッケージ・データを転送するステップと、
を含む中継方法。
【００６２】
（付記９）
動作モードを特定するステップと、
ストリーム・パッケージ・データを受信した場合、特定された前記動作モードに従って抽出すべき特定フレーム・データを前記ストリーム・パッケージ・データが含んでいるか判断するステップと、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含まないと判断された場合には、転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データ以外のストリーム・パッケージ・データを破棄するステップと、
前記ストリーム・パッケージ・データが前記特定フレーム・データを含むと判断された場合又は前記転送先において必要とされる所定のフレーム・データを含むストリーム・パッケージ・データであると判断された場合には、前記ストリーム・パッケージ・データに対してパッケージ再構成を行い、パッケージ再構成後のストリーム・パッケージ・データを転送する転送ステップと、
を中継装置に実行させるためのプログラム。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施の形態の概要を示した機能ブロック図である。
【図２】（ａ）はＲＴＰパッケージの構成を示し、（ｂ）はＲＴＰペイロードに含まれるパケットの一例を示す図であり、（ｃ）はSystemパケットの構成例を示す図であり、（ｄ）はAudioパケットの構成例を示す図であり、（ｅ）はPaddingパケットの構成例を示す図であり、（ｆ）はVideoパケットの構成例を示す図である。
【図３】（ａ）乃至（ｃ）は、パッケージ列の一例を示す図である。
【図４】実施の形態におけるメインの処理フローを示す図である。
【図５】IFrameフィルタ処理の処理フローを示す図である。
【図６】（ａ）はAudioパケット等の構成の一例を示す図であり、（ｂ）はAudioパケットをPaddingパケットに変更した場合の構成の一例を示す図である。
【図７】ビデオパケット処理の処理フローを表す図である。
【図８】（ａ）は前半に不要データが含まれるVideoパケットの一例を示す図であり、（ｂ）は不要データを後半に移動させPaddingパケットに変更した場合の一例を示す図である。
【図９】（ａ）は後半に不要データが含まれるVideoパケットの一例を示す図であり、（ｂ）は不要データをPaddingパケットに変更した場合の一例を示す図である。
【図１０】実施の形態に係る中継装置の処理の概念図である。
【図１１】ストリーム・データの合成処理について説明するための図である。
【符号の説明】
【００６４】
１，２  ネットワーク    ３  中継装置
７  配信サーバ    ９  ユーザ端末    １１  コンテンツＤＢ
３１  転送モード制御部    ３３  パッケージ受信部    ３５  パッケージ処理部
３７  パッケージ送信部
【図１】
2006254044.tif 000003
【図２】
2006254044.tif 000004
【図３】
2006254044.tif 000005
【図４】
2006254044.tif 000006
【図５】
2006254044.tif 000007
【図６】
2006254044.tif 000008
【図７】
2006254044.tif 000009
【図８】
2006254044.tif 000010
【図９】
2006254044.tif 000011
【図１０】
2006254044.tif 000012
【図１１】
2006254044.tif 000013