(57)【特許請求の範囲】
【請求項１】
マルチメディア・ストリームを配信するストリーム送信装置と、前記ストリームを受信して再生する受信装置と、前記ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムであって、
前記ストリーム送信装置は、
前記ストリームの全部または分割された部分区間について前記ストリームを実時間再生するために最低限必要な送信レートであるデータレートを、ＧＯＰデータ量をＧＯＰ再生時間で除すことによって検出するデータレート検出手段と、
前記ストリームの全部または分割された部分区間について、前記データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、
前記ストリームの全部または分割された部分区間について、前記ストリームを自装置から送信した際の実際の送信レートである第１の実送信レートを測定し、該第１の実送信レートを前記目標送信レートに近づける調整を行う第１の送信レート調整手段と、を有し、
前記中継装置は、
パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、
前記ストリームの全部または分割された部分区間について、パケット内に記述されている前記目標送信レートを検出すると共に前記ストリームを自装置から送信した際の実際の送信レートである第２の実送信レートを測定し、該第２の実送信レートを前記目標送信レートに近づける調整を行う第２の送信レート調整手段と、を有することを特徴とするストリーム配信システム。
【請求項２】
マルチメディア・ストリームを配信するストリーム送信装置と、前記ストリームを受信して再生する受信装置と、前記ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおける前記ストリーム送信装置であって、
前記ストリームの全部または分割された部分区間について前記ストリームを実時間再生するために最低限必要な送信レートであるデータレートを、ＧＯＰデータ量をＧＯＰ再生時間で除すことによって検出するデータレート検出手段と、
前記ストリームの全部または分割された部分区間について、前記データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、
前記ストリームの全部または分割された部分区間について、前記ストリームが実際に送信されたレートである実送信レートを測定し、該実送信レートを前記目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴とするストリーム送信装置。
【請求項３】
前記送信レート調整手段は、
前記ストリームの分割された部分区間について、前記実送信レートが前記目標送信レート未満だった場合、直後から連続するストリームの１つ以上の部分区間について、各々の前記目標送信レートを超えるレートで挽回送信することを特徴とする請求項２記載のストリーム送信装置。
【請求項４】
前記送信レート調整手段は、
前記ストリームの分割された部分区間について、前記実送信レートが前記目標送信レートを超えた場合、前記目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの１つ以上の部分区間について各々の前記目標送信レート未満のレートに抑制して送信することを特徴とする請求項２記載のストリーム送信装置。
【請求項５】
前記目標送信レートの前記データレートに対する倍率の上限を定めることを特徴とする請求項２記載のストリーム送信装置。
【請求項６】
前記挽回送信の際の送信レートについて、前記目標送信レートに対する倍率の上限を定めることを特徴とする請求項３記載のストリーム送信装置。
【請求項７】
前記ストリームに対して、ＭＡＣアドレスや装置内部情報をもとに作成したＧＵＩＤ（グローバルユニークＩＤ）を付与し、通信プロトコルのパケット内に記述することを特徴とする請求項２記載のストリーム送信装置。
【請求項８】
前記送信レート記述手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのヘッダ部に記述することを特徴とする請求項２記載のストリーム送信装置。
【請求項９】
前記送信レート記述手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのストリームデータ部に記述することを特徴とする請求項２記載のストリーム送信装置。
【請求項１０】
マルチメディアストリームを配信する送信装置と、前記ストリームを受信して再生する受信装置と、前記ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおける前記中継装置であって、
パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、
前記ストリームの全部または分割された部分区間について、パケット内に記述されている目標送信レートを検出し、また、その時点で前記ストリームが自装置から実際に送信されたレートである実送信レートを測定し、該実送信レートを前記目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴とする中継装置。
【請求項１１】
前記送信レート調整手段は、
前記ストリームの分割された部分区間について、前記実送信レートが前記目標送信レート未満だった場合、直後から連続するストリームの１つ以上の部分区間について、各々の前記目標送信レートを超える送信レートで挽回送信することを特徴とする請求項１０記載の中継装置。
【請求項１２】
前記送信レート調整手段は、
前記ストリームの分割部分区間について、前記実送信レートが前記目標送信レートを超えた場合、前記目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの１つ以上の区間について各々の前記目標送信レート未満のレートに抑制して送信することを特徴とする請求項１０記載の中継装置。
【請求項１３】
前記目標送信レートの前記実送信レートに対する倍率の上限を定めることを特徴とする請求項１０記載の中継装置。
【請求項１４】
前記挽回送信の際の送信レートについて、前記目標送信レートに対する倍率の上限を定めることを特徴とする請求項１０記載の中継装置。
【請求項１５】
前記ストリーム特定手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのヘッダ部から検出することを特徴とする請求項１０記載の中継装置。
【請求項１６】
前記ストリーム特定手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのストリームデータ部から検出することを特徴とする請求項１０記載の中継装置。
【請求項１７】
前記ストリーム特定手段は、
パケットが含むＧＵＩＤ（グローバルユニークＩＤ）を検出して送受信機器とストリームとを特定することを特徴とする請求項１０記載の中継装置。
【請求項１８】
前記ストリーム特定手段は、
パケットが含む送信元及び宛先のＩＰアドレス及びポート番号により送受信機器とストリームとを特定することを特徴とする請求項１０記載の中継装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データファイルの全体ではなく所定区間（所定量）のデータがダウンロードされてバッファに読み込まれた時点で再生可能な音声や動画などのストリームデータを配信するストリーム配信システム、ストリーム送信装置、及び、中継装置に関する。
【０００２】
【従来の技術】
インターネットなどのネットワーク上において、音声や動画などのデータファイルをダウンロードしながらリアルタイムに再生することは、ストリーミングと呼ばれる。また、このようにデータのダウンロードと再生とを同時に行うことができる形式のデータは、ストリームデータと呼ばれる。
【０００３】
ストリーム形式でない音声データや動画データは、一旦ハードディスクなどの記憶装置にデータファイル全体をダウンロードされてから再生されるのが一般的である。その場合、ユーザは、データファイル全体がダウンロードされるまで待たなければならない。一方、音声や動画などのストリームデータは、ダウンロードと再生とを同時に行うことができるので、ユーザは、データファイル全体がダウンロードされるまで再生を待つ必要がない。
【０００４】
従来のストリーム配信方法では、受信装置側は、送信装置側から送信されてきた音声や動画などのストリームデータを受信した時点で、直ちに受信したストリームデータをデコードして再生するのではなく、ストリームデータの持つデータレートを満たすような一定量のストリームデータをバッファメモリに蓄積してから、デコードして再生する。
【０００５】
図１０に従来のストリーム配信システムの例を示す。ストリーム配信においては、送信側において、まず、配信する対象となる音声や動画などのソース信号があり、これを所定の符号化方式でエンコードしてストリームデータを生成する。符号化方式や圧縮品質などによりそのデータレートが定まる。そして、受信側からの要求に基づき、所定の送信レートでストリームデータが送信される。実際の送信レートはネットワークの状況などにより変動する。受信側では、ストリームデータを受信してバッファに蓄積する。受信側のデコーダは、ストリームの持つデータレートに応じた所定量が蓄積されてから再生を開始する。
【０００６】
また、ストリーム配信においては、ネットワークの帯域を確保するためのプロトコルとしてＲＳＶＰ（Resource ReSerVation Protocol ）が使用されることがある。このプロトコルは、送信装置と受信装置の間の１つの経路上に存在する中継装置（ルータ）に対して予め通信のための帯域を予約する機能を持つ。
【０００７】
【発明が解決しようとする課題】
従来のストリーム配信方法では、ネットワーク上のある回線の空いている帯域全てを利用してストリームを転送してしまうことが起こることにより、ネットワークのリソースを無駄に使用してしまうという問題があった。また、帯域確保専用のプロトコルを用いて処理する必要があったり、その場合に、帯域確保プロトコルは、単一ストリーム中の部分的なデータレートの揺らぎに対応できないため、最大の部分のデータレートで帯域を確保する必要があり、無駄に帯域を確保してしまうという問題があった。さらには、一時的に何らかの要因によりデータの送信が滞って送信レートが変動した場合に、確保された帯域を超えて本来のデータ送信レートに追いつくための処理機構が無いという問題点があった。
【０００８】
本発明は、かかる問題点に鑑みてなされたものであり、ストリーム送信装置及び中継装置においてストリームの分割された部分区間ごとのデータレート及び該データレートに基づき設定される目標送信レートに対応して送信レートの制御を行うことにより、上記各部分区間の遅延による送信レートの揺らぎを補正し、ネットワークの無駄な帯域の利用や確保を無くしてリソースを有効活用し、また、処理する通信プロトコル数を減らすことのできるストリーム配信システム、ストリーム送信装置、及び、中継装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
かかる目的を達成するために、請求項１記載の発明は、マルチメディア・ストリームを配信するストリーム送信装置と、ストリームを受信して再生する受信装置と、ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムであって、ストリーム送信装置は、ストリームの全部または分割された部分区間についてストリームを実時間再生するために最低限必要な送信レートであるデータレートをＧＯＰデータ量をＧＯＰ再生時間で除すことによって検出するデータレート検出手段と、ストリームの全部または分割された部分区間について、データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、ストリームの全部または分割された部分区間について、ストリームを自装置から送信した際の実際の送信レートである第１の実送信レートを測定し、該第１の実送信レートを目標送信レートに近づける調整を行う第１の送信レート調整手段と、を有し、中継装置は、パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、ストリームの全部または分割された部分区間について、パケット内に記述されている目標送信レートを検出すると共にストリームを自装置から送信した際の実際の送信レートである第２の実送信レートを測定し、該第２の実送信レートを目標送信レートに近づける調整を行う第２の送信レート調整手段と、を有することを特徴としている。
【００１０】
請求項２記載の発明は、マルチメディア・ストリームを配信するストリーム送信装置と、ストリームを受信して再生する受信装置と、ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおけるストリーム送信装置であって、ストリームの全部または分割された部分区間についてストリームを実時間再生するために最低限必要な送信レートであるデータレートを、ＧＯＰデータ量をＧＯＰ再生時間で除すことによって検出するデータレート検出手段と、ストリームの全部または分割された部分区間について、データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、ストリームの全部または分割された部分区間について、ストリームが実際に送信されたレートである実送信レートを測定し、該実送信レートを目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴としている。
【００１１】
請求項３記載の発明は、請求項２記載の発明において、送信レート調整手段は、ストリームの分割された部分区間について、実送信レートが目標送信レート未満だった場合、直後から連続するストリームの１つ以上の部分区間について、各々の目標送信レートを超えるレートで挽回送信することを特徴としている。
【００１２】
請求項４記載の発明は、請求項２記載の発明において、送信レート調整手段は、ストリームの分割された部分区間について、実送信レートが目標送信レートを超えた場合、目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの１つ以上の部分区間について各々の目標送信レート未満のレートに抑制して送信することを特徴としている。
【００１３】
請求項５記載の発明は、請求項２記載の発明において、目標送信レートのデータレートに対する倍率の上限を定めることを特徴としている。
【００１４】
請求項６記載の発明は、請求項３記載の発明において、挽回送信の際の送信レートについて、目標送信レートに対する倍率の上限を定めることを特徴としている。
【００１５】
請求項７記載の発明は、請求項２記載の発明において、ストリームに対して、ＭＡＣアドレスや装置内部情報をもとに作成したＧＵＩＤ（グローバルユニークＩＤ）を付与し、通信プロトコルのパケット内に記述することを特徴としている。
【００１６】
請求項８記載の発明は、請求項２記載の発明において、送信レート記述手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのヘッダ部に記述することを特徴としている。
【００１７】
請求項９記載の発明は、請求項２記載の発明において、送信レート記述手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのストリームデータ部に記述することを特徴としている。
【００１８】
請求項１０記載の発明は、マルチメディアストリームを配信する送信装置と、ストリームを受信して再生する受信装置と、ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおける中継装置であって、パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、ストリームの全部または分割された部分区間について、パケット内に記述されている目標送信レートを検出し、また、その時点でのストリームが自装置から実際に送信されたレートである実送信レートを測定し、該実送信レートを目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴としている。
【００１９】
請求項１１記載の発明は、請求項１０記載の発明において、送信レート調整手段は、ストリームの分割された部分区間について、実送信レートが目標送信レート未満だった場合、直後から連続するストリームの１つ以上の部分区間について、各々の目標送信レートを超える送信レートで挽回送信することを特徴としている。
【００２０】
請求項１２記載の発明は、請求項１０記載の発明において、送信レート調整手段は、ストリームの分割部分区間について、実送信レートが目標送信レートを超えた場合、目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの１つ以上の区間について各々の目標送信レート未満のレートに抑制して送信することを特徴としている。
【００２１】
請求項１３記載の発明は、請求項１０記載の発明において、目標送信レートの実送信レートに対する倍率の上限を定めることを特徴としている。
【００２２】
請求項１４記載の発明は、請求項１０記載の発明において、挽回送信の際の送信レートについて、目標送信レートに対する倍率の上限を定めることを特徴としている。
【００２３】
請求項１５記載の発明は、請求項１０記載の発明において、ストリーム特定手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのヘッダ部から検出することを特徴としている。
【００２４】
請求項１６記載の発明は、請求項１０記載の発明において、ストリーム特定手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのストリームデータ部から検出することを特徴としている。
【００２５】
請求項１７記載の発明は、請求項１０記載の発明において、ストリーム特定手段は、パケットが含むＧＵＩＤ（グローバルユニークＩＤ）を検出して送受信機器とストリームとを特定することを特徴としている。
【００２６】
請求項１８記載の発明は、請求項１０記載の発明において、ストリーム特定手段は、パケットが含む送信元及び宛先のＩＰアドレス及びポート番号により送受信機器とストリームとを特定することを特徴としている。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照しながら詳細に説明する。図１は、本発明の実施の形態におけるストリーム配信システムの構成の概要を示す図である。本システムは、インターネットなどのネットワーク上において、ストリーム送信装置１００と、中継装置２００と、ストリーム受信装置３００と、を含んで構成される。
【００２８】
ストリーム送信装置１００は、ネットワークを介して、ストリーム受信装置３００からの要求に応じて音声や動画などのストリームデータを配信するサーバコンピュータである。中継装置２００は、ネットワーク間を接続し、データ中継を行うノードであり、インターネットではルータ（レイヤ３スイッチ）に相当する装置である。受信装置３００は、ネットワークを介して送信装置１００から音声や動画などのストリームデータを受信するサービスを受ける側のクライアントであり、ユーザの使用するＰＣなどである。なお、受信装置３００としては、ＰＣ以外にビデオデッキやテレビジョン受像機、ホームサーバなどであっても良い。
【００２９】
ネットワークＡ、Ｂ、Ｃは、例えばＥｔｈｅｒｎｅｔや家庭内ネットワークなどのＬＡＮなどであり、中継装置やバックボーンを介して相互接続される。また、図１では、ネットワークに単数の装置が接続されているが、勿論実際は複数の装置が接続される。ネットワークのトポロジは特に限定されない。
【００３０】
図２は、ストリーム送信装置１００の構成を示すブロック図である。送信装置１００は、ＭＰＥＧエンコーダ１１、ストリーム配信処理手段１２、ＣＰＵ１３、ＲＯＭ１４、ＲＡＭ１５、ネットワークＩ／Ｆ１６、及びＨＤＤ（ハードディスクドライブ）１７を備えている。
【００３１】
ＭＰＥＧエンコーダ１１は、外部からの映像などの信号（配信に用いるソース信号）を所定のデータレートのＭＰＥＧ−２（Moving Picture Experts Group 2）ストリームにエンコードするモジュールであり、エンコードされたストリームは、ＨＤＤ１７に記憶される。なお、ソース信号の符号化方法はＭＰＥＧ−２以外のものであっても良いが本実施例ではＭＰＥＧ−２を例に採っている。
【００３２】
ＣＰＵ１３は、送信装置の全体制御を行うプロセッサである。ＲＯＭ１４は、読み出し専用メモリであり、本発明の処理を実現するプログラムが格納されている。本プログラムは、主記憶へロードされてＣＰＵ１３により実行される。ＲＡＭ１５は、ＣＰＵ１３が行う処理において必要となる各種データを一時的に格納するメモリである。
【００３３】
ネットワークＩ／Ｆ（インターフェース）１６は、ストリーム送信要求のＩＰパケットの受信処理を行い、また、ストリームデータのＩＰパケットの送信処理を行うモジュールである。ＨＤＤ１７は、磁気ディスクにデータを読み書きする記憶装置であり、受信装置３００に対して配信されるストリームデータを保存する。
【００３４】
ストリーム配信処理部１２は、ＲＴＰ／ＵＤＰ／ＩＰなどを用いたストリーム配信のメイン処理を行うモジュールである。ＲＴＰ（Real-time Transport Protocol）は、パケットに対する同期再生のためのタイムスタンプの付与などを行うプロトコルである。ＵＤＰは、コネクションレス型プロトコルであり、ストリームデータの送信に用いられる。ＩＰは、ネットワーク間の転送を処理するプロトコルである。また、ストリーム配信処理手段１２は、本発明の送信レート制御手段を含む。送信レート制御手段は、単位ストリームについて、全体、または、所定の部分に分割されたその部分区間（以下「部分区間」）単位で、本発明の送信レートの制御・調整処理を行う。本実施例では、ＭＰＥＧ−２を符号化方式として使用し、ＭＰＥＧストリームを構成するＧＯＰ（Group Of Picture）単位で、実際の送信レートを目標送信レートに近づける調整処理を行う。
【００３５】
ストリーム配信処理手段１２は、送信レート制御手段として、データレート検出部１２１、目標送信レート設定部１２２、送信レート記述部１２３、及び、送信レート調整部１２４を含む。
【００３６】
データレート検出部１２１は、配信対象のストリームについて、部分区間単位でそのデータレートの検出を行う。検出は、ストリームやピクチャのヘッダ部に記述されている情報などを参照することにより行う。
【００３７】
目標送信レート設定部１２２は、ストリームの部分区間単位で、上記データレート検出部１２１により検出されたデータレートを用いて目標送信レートを設定する処理を行う。目標送信レートとは、ストリームの送信に余裕を持たせるために予め送信側においてデータレートに対して見積もるレートである。データレートに対して所定の倍率（これを「目標送信レート倍率α」とする）を乗じることにより目標送信レートを定める。目標送信レート倍率αの値は、ストリーム通信に対するポリシー設定などの要因により変化し得る。
【００３８】
また、目標送信レート設定部１２２は、目標送信レート倍率αについて、その上限値を予め定めておくことにより、ストリームに対して過大な送信レートを設定しないようにする。
【００３９】
送信レート記述部１２３は、ストリームの部分区間単位で、目標送信レート設定部１２２により設定される目標送信レートを、使用する通信プロトコルのパケット内に記述する処理を行う。本実施例では、ストリーミング・ヘッダ内に目標送信レート値を記述する。中継装置２００では、対応する機能が実装されていれば、パケット内に記述されたそのレート情報を参照して送信レート調整処理を行うことができる。目標送信レートの記述処理としては、パケットのヘッダ部に記述する方法と、パケットのストリームデータ部に記述する方法とがある。
【００４０】
送信レート調整部１２４は、随時、ストリームの部分区間単位での実際の送信レート（以下「実送信レート」）を測定して目標送信レートと比較し、比較の結果に応じた送信レートの調整処理を行う。実送信レートが目標送信レートを超える場合、実送信レートが目標送信レートになるまでパケットの送信を一時停止（待機）したり、送信レートをダウンさせるなどの処理を行うことにより、ストリームの送信を抑制する。また、実送信レートが目標送信レートに満たない場合、挽回送信として、パケットをそのまますぐに送信して送信レートをアップさせる処理を行う。また、予め、挽回送信の送信レートの上限値を、目標送信レートに対して所定の倍率β（「挽回送信レート倍率」とする）を乗じた値として定めておき、挽回送信の送信レートがその上限値に達した場合は、一時送信を停止（待機）させる処理を行うようにしてもよい。上限値を定めておくことにより、ストリームに対して必要以上の送信レートのアップをしないようにする。
【００４１】
また、ストリーム配信処理部１２は、ストリームを構成する各パケットについて、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号などの情報を記述する他、中継装置２００及び受信装置３００におけるストリームの特定のために、ストリームに対して一意に定まるＧＵＩＤ（グローバルユニークＩＤ）を付与する処理を行っても良い。送信装置１００は、ＭＡＣアドレスや装置内部情報をもとにＧＵＩＤを作成し、ストリームを構成する各パケット内に記述する。
【００４２】
図３は、ストリーム受信装置３００の構成を示すブロック図である。受信装置３００は、ＭＰＥＧデコーダ３１、ストリーム受信処理部３２、ＣＰＵ３３、ＲＯＭ３４、ＲＡＭ３５、ネットワークＩ／Ｆ３６、ＨＤＤ３７、及びディスプレイ（出力装置）３８を備えている。
【００４３】
ＭＰＥＧデコーダ３１は、ストリーム送信装置１００より配信されてバッファに一時蓄積されたＭＰＥＧストリームをデコードし、各ストリーム及びその部分区間の持つデータレートでディスプレイ３８に出力して再生する処理を行うモジュールである。
【００４４】
ストリーム受信処理部３２は、ストリーム配信サービスにおけるクライアントモジュールであり、所定のプロトコルを用いて、ストリーム要求他のメッセージの発行、ストリームデータの受信などの処理を行う。
【００４５】
ＣＰＵ３３、ＲＯＭ３４、及びＲＡＭ３５などは、送信装置と同様の役割を果たす。ネットワークＩ／Ｆ３６は、ストリーム配信要求のＩＰパケットを送信装置に対して送信する処理を行い、また、ストリームデータのＩＰパケットを受信する処理を行うモジュールである。ＨＤＤ３７は、送信装置より受信するストリームデータをバッファに一時蓄積する記憶装置である。
【００４６】
中継装置２００は、送信装置１００と受信装置３００との間での伝送路（ルート）上において、データの中継を行うノードであり、ストリームデータが格納されたＩＰパケットを受信装置３００側のネットワークに流す処理を行う。中継装置２００は、無関係なネットワークにはＩＰパケットを流さないことにより、ネットワーク全体のトラフィックを低減させる役割を有している。ストリーム配信の際には、送信装置１００と受信装置３００との間でルートが設定される。
【００４７】
図４は、中継装置２００の構成を示すブロック図である。中継装置２００は、ストリーム送信レート調整２１、ＣＰＵ２３、ＲＯＭ２４、ＲＡＭ２５、ネットワークＩ／Ｆ２６を備えている。ＣＰＵ２３、ＲＯＭ２４、ＲＡＭ２５などは、前述の各装置と同様の役割を果たす。ネットワークＩ／Ｆ２６は、接続されるネットワークに応じて装備され、ストリーム送信要求やストリームデータなどのパケットの転送処理を行う。
【００４８】
ストリーム送信レート調整手段２１は、ストリームの部分区間単位で、実送信レートを目標送信レートに近づける調整処理を行う。ストリーム送信レート調整手段２１は、ストリーム特定部２１１と、送信レート調整部２１２とを含む。
【００４９】
ストリーム特定部２１１は、受信パケットを参照してストリームを識別・特定する。その際、ＲＴＰ／ＵＤＰ／ＩＰの各ヘッダ、ストリーミング・ヘッダ、あるいはストリームデータ部が参照される。ＩＰヘッダからは送信元ＩＰアドレス及び宛先ＩＰアドレス、ＵＤＰヘッダからは送信元ポート番号及び宛先ポート番号が識別されることにより通信が特定される。ストリーミング・ヘッダからはストリームの部分区間単位での目標送信レートが識別される。さらに、送信装置１００によってストリームに対するＧＵＩＤがパケット内に記述されている場合は、ＧＵＩＤを参照することによりストリームの識別・特定が可能である。
【００５０】
送信レート調整部２１２は、送信装置１００の送信レート調整部１２４と同様、ストリームの部分区間について、目標送信レートを参照するとともに、実送信レートを測定して目標送信レートと比較し、比較の結果に応じて送信レートを調整する処理を行う。送信レート調整部２１２は、比較の結果、実送信レートが目標送信レートを超えている場合は、ストリームの部分区間について、実送信レートが目標送信レートになるまで転送を一時停止（待機）する処理、あるいは、送信レートをダウンさせる処理を行うことにより、ストリームの送信を抑制する。また、比較の結果、実送信レートが目標送信レート未満であった場合、パケットについて挽回送信としてそのまますぐに転送を行って送信レートのアップを行い、目標送信レートに追いつくよう遅れの挽回を図る。その際、予め、目標送信レートについて所定の倍率β（挽回送信レート倍率）を乗じて挽回送信レートの上限値を定めておき、送信レートがその上限値に達する場合は転送を一時停止（待機）させるように処理してもよい。
【００５１】
本発明は、音声や動画などにおける各種データ形式のストリームに適用することが可能であるが、本実施例では、図６に示すようなＭＰＥＧ形式の動画のストリームデータを例に採っている。ＭＰＥＧでは、ＥＳ（Elementary Stream ：エレメンタリストリーム）、ＰＳ（Program Stream）、ＴＳ（Transport Stream）などがあり、ＣＢＲ（Constant Bit Rate ：一定速度）、ＶＢＲ（Variable Bit Rate ：可変速度）をサポートしている。
【００５２】
図６に示すように、ＭＰＥＧストリームは、順に、ストリーム、ＧＯＰ、ピクチャ、パケットなどの各レイヤから成る。ストリームは、ＧＯＰ及びフレーム（動画を構成する単位である静止画像＝ピクチャ）に分かれており、ＭＰＥＧフレームには、Ｉピクチャ、Ｂピクチャ、Ｐピクチャの３種類がある。Ｉピクチャは、フレーム内符号化されるフレームである。Ｐピクチャは、順方向予測符号化されるフレームである。Ｂピクチャは、双方向予測符号化されるフレームである。
【００５３】
また、ＧＯＰ（Group Of Picture）は、ストリームの部分を構成し、ストリームデータに対するランダムアクセスを可能とするために、Ｉピクチャ（フレーム内符号化画像）が少なくとも１枚は入った画像群構造である。図５では、１ＧＯＰはピクチャ数として１５枚のピクチャから構成され、ほぼ０．５秒となっている。本実施例では、このＧＯＰ単位で送信レート制御処理を行う。
【００５４】
図６において、ＭＰＥＧストリームは、ＲＴＰ／ＵＤＰ／ＩＰの各パケットに分割して送信される。各ピクチャ（Ｉ，Ｂ，Ｐ）は、各々、１つ以上のＲＴＰ／ＵＤＰ／ＩＰパケットに分割される。ＲＴＰ／ＵＤＰ／ＩＰパケットは、各プロトコルの定めるＲＴＰヘッダ、ＵＤＰヘッダ、ＩＰヘッダ、及びストリーミングヘッダを持つ。ＲＴＰヘッダは、ペイロードタイプを７ｂｉｔで保持し、例えばＭＰＥＧエレメンタリ・ストリームの場合は３２である。ストリーミング・ヘッダは、ＧＯＰデータレート、ストリーム先頭パケット・フラグ、及びストリーム最終パケット・フラグを含む。
【００５５】
本実施例では、ストリーミング・ヘッダ内に、ＧＯＰ単位の目標送信レートを設定・記述する。目標送信レートは、下記式によって計算される。
【００５６】
ＧＯＰ目標送信レート＝ＧＯＰデータレート＊α
α＝１．２（※１．２以外でも良い）：  目標送信レート倍率
ＧＯＰデータレート＝ＧＯＰデータ量／ＧＯＰ時間
ＧＯＰデータ量＝ＧＯＰ中のピクチャヘッダを検出、総データ量を算出
ＰＳＣ（※ピクチャ層）：  ピクチャ開始コード
ＴＲ（※ピクチャ層）：  ピクチャ表示順序
ＧＯＰ時間＝フレームレート＊１５（※１ＧＯＰを構成するピクチャ数）
フレームレート＝ＦＲＣ＊（ｎ＋１）／（ｄ＋１）
ＦＲＣ（※シーケンス層）：  画像の表示周期
ＦＲＥｎ、ＦＲＥｄ（※シーケンス層）：  フレームレート拡張
【００５７】
なお、ＰＳＣ、ＦＲＣなどの記号は、ＭＰＥＧのフォーマットに準じたものである。ストリーム先頭フラグは、ストリームの最初のパケットのみセットされる。ストリーム最終フラグは、ストリームの最後のパケットのみセットされる。
【００５８】
図７は、本発明の実施の形態におけるストリーム配信システムでのストリーム送信装置１００の動作を示すフローチャートである。送信装置１００において、まず、受信装置３００からのストリーム送信要求メッセージがあるか否かが判定される（ステップＳ１０１）。即ち、受信装置３００が発行するストリーム通信についての各情報を格納したストリーム送信要求の受信確認を行い、ストリーム送信要求を受信していない場合、再び、ストリーム送信要求の受信確認を行う。
【００５９】
一方、ストリーム送信要求を受信した場合、以下に述べる手順で図５に示した構造のＭＰＥＧストリームの各ピクチャを図６に示した構造のＲＴＰ／ＵＤＰ／ＩＰパケットに分割して受信装置３００に送信する処理を行う。ＭＰＥＧストリームをピクチャ境界に合わせて分割して生成される各ＩＰパケットについて、送信制御で使用するために以下の処理を行う。まず、初期化処理として、目標送信レートに対応してＧＯＰ送信が終了すべき時刻に対しての実際のＧＯＰ送信終了時刻との差で表されるＧＯＰ送信遅れ時間Ｔａ２（つまり、目標送信レートに対する遅れを表す）の値を０にセットし（ステップＳ１０２）、直前ＧＯＰ送信終了時刻Ｔａ１に現在の送信装置１００の内部時刻をセットする（ステップＳ１０３）。
【００６０】
データレート検出部１２１は、ＭＰＥＧ２ストリームをスキャンしてＭＰＥＧ２のシーケンス層のＦＲＣ、ＦＲＥｎ、ＦＲＥｄ、ピクチャ層のＰＳＣ、ＴＲなどの情報からＧＯＰデータ量及びＧＯＰ時間を算出し、ＧＯＰデータレートを算出する（ステップＳ１０４）。
【００６１】
目標送信レート設定部１２２は、ＧＯＰデータレート（例えば１．０Ｍｂｐｓ）に対して、転送に余裕を持たせるため、所定の目標送信レート倍率αを乗じて目標送信レートを設定する（ステップＳ１０５）。例えば、目標送信レート＝ＧＯＰデータレート＊１．２として１．２Ｍｂｐｓにする。中継装置２００が送信レート調整に利用することを想定して、パケットのストリーミングヘッダ内に上記目標送信レートの値を設定・記述する（ステップＳ１０６）。パケットがストリームの最終パケットである場合（ステップＳ１０７・ＹＥＳ）、最終パケットフラグをセットし（ステップＳ１０８）、最終パケットを送信して終了する（ステップＳ１０９）。
【００６２】
次に送信するパケットがストリームの最終パケットでない場合（ステップＳ１０７・ＮＯ）、パケットがストリームの先頭パケットである場合には（ステップＳ１１０・ＹＥＳ）、先頭パケットフラグをセットし（ステップＳ１１１）、ネットワークにパケットを送信する（ステップＳ１１２）。
【００６３】
次に送信するパケットがストリームの先頭パケットでない場合（ステップＳ１１０・ＮＯ）、ネットワークにパケットを送信する（ステップＳ１１２）。
【００６４】
次に、図１１に示すように、現時点でＧＯＰの先頭から送信済みのデータ量を、直前ＧＯＰの送信終了時刻Ｔａ１またはＧＯＰ先頭送信開始時刻Ｔａ１’と、現在時刻と、の時間差に直前ＧＯＰについてのＧＯＰ遅れ時間Ｔａ２を加算した時間で除算して現時点までのＧＯＰ実送信レートを算出し、この実送信レートを、対応するＧＯＰ目標送信レートと比較する（ステップＳ１１３）。
【００６５】
実送信レートが目標送信レート（例えば１．２Ｍｂｐｓ）を超えている場合（例えば１．３ｂｐｓ）（ステップＳ１１３・ＹＥＳ）、送信レート調整部１２４は、ストリーム部分区間についての送信レートが目標送信レートになるまで一時停止（待機）する処理を行う（ステップＳ１１４）。
【００６６】
実送信レートが目標送信レート（例えば１．２Ｍｂｐｓ）未満の場合（例えば１．１ｂｐｓ）（ステップＳ１１３・ＮＯ）、送信レート調整部１２４は、パケットについて送信を待機させることなく挽回送信としてそのまま次パケットの送信処理に移る。その際、挽回送信レートが所定の上限値に達しているかどうか判断し、達した場合は、その上限値内に収まるまで送信を一時停止（待機）する処理を行う（ステップＳ１１５）。
【００６７】
ステップＳ１１２において送信したパケットがＧＯＰの最後のパケットである場合（ステップＳ１１６・ＹＥＳ）、ＧＯＰ遅れ時間を算出してＴａ２に設定し（ステップＳ１１７）、前ＧＯＰ終了時刻を表すＴａ１への現在時刻の設定（ステップＳ１０３）に戻る。このように制御する結果、目標送信レート以上で送信が行割れる場合がある。ＧＯＰを目標送信レート以上で送信した場合はＧＯＰ遅れ時間Ｔａ２は０である。
【００６８】
ステップＳ１１２において送信したパケットがＧＯＰの最後のパケットでない場合（ステップＳ１１６・ＮＯ）、次パケットのストリーミングヘッダに対するＧＯＰ目標送信レートの設定（ステップＳ１０６）に戻る。
【００６９】
図８は、本実施例のストリーム配信システムにおける中継装置の動作を示すフローチャートである。まず、ＭＰＥＧストリームを含むＩＰパケットを受信すると、ストリーム特定部２１は、受信パケット内のＲＴＰヘッダから、ペイロードタイプを検出し、３２であった場合はＭＰＥＧストリームと解釈する。ストリームヘッダのストリーム先頭パケットを示すフラグがセットされている場合（ステップＳ２０１・ＹＥＳ）、ＵＤＰパケットヘッダから送信元ポート番号と宛先ポート番号とを検出し、さらにＩＰヘッダから送信元ＩＰアドレスと宛先ＩＰアドレスとを検出し、これらの組み合わせにより通信を識別・特定し、ばらばらに到着する各パケットを一貫して制御する（ステップＳ２０２）。
【００７０】
ピクチャ境界に合わせて分割されたＩＰパケットの送信制御を行うために、まず、初期化処理として、ＧＯＰの目標送信レートに対する遅れを表すＧＯＰ送信遅れ時間Ｔｂ２の値を０に設定し（ステップＳ２０３）、直前ＧＯＰ送信終了時刻Ｔｂ１に中継装置２００の現在の内部時刻をセットする（ステップＳ２０４）。
【００７１】
ＧＯＰデータレート（例えば１．０Ｍｂｐｓ）に対して、転送に余裕を持たせるため、所定の目標送信レート倍率αを乗じて目標送信レートを設定する（ステップＳ２０５）。例えば、目標送信レート＝ＧＯＰデータレート＊１．２として１．２Ｍｂｐｓにする。パケットのストリーミングヘッダ内に上記目標送信レートの値を記述し（ステップＳ２０６）、次パケットを転送する（ステップＳ２０７）。
【００７２】
ステップＳ２０１において、受信したＲＴＰ／ＵＤＰ／ＩＰパケットのＲＴＰヘッダからペイロードタイプを検出し、３２以外の値であった場合、またはペイロードタイプが３２でストリーミングヘッダのストリームの先頭パケットを示すフラグがセットされていない場合（ステップＳ２０１・ＮＯ）、ストリーム先頭パケットの検出を繰り返す（ステップＳ２０１）。
【００７３】
ステップＳ２０８で送信したパケットのパケット最終フラグがセットされている場合（ステップＳ２０８・ＹＥＳ）、当該パケットをストリームの最終パケットと判断し、ストリームの送信を終了する。
【００７４】
ステップＳ２０８で送信したパケットのパケット最終フラグがセットされていない場合（ステップＳ２０８・ＮＯ）、送信データ量を中継装置２００内部の現在時刻と直前ＧＯＰの送信終了時刻Ｔｂ１の差に直前ＧＯＰのＧＯＰ遅れ時間Ｔｂ２を加えたもので除算して実送信レートを測定し、この実送信レートが、対応する目標送信レート（例えば１．２Ｍｂｐｓ）を超える場合（例えば１．３Ｍｂｐｓ）（ステップＳ２０９・ＹＥＳ）、送信レートが目標送信レートになるまで転送を一時停止する処理、あるいは、送信レートをダウンさせる処理を行う（ステップＳ２１０）。
【００７５】
実送信レートが、対応する目標送信レート（例えば１．２Ｍｂｐｓ）未満の場合（例えば１．１Ｍｂｐｓ）（ステップＳ２０９・ＮＯ）、転送を待機させることなく次パケットの処理に移る。ステップＳ２０７で送信したパケットについて、ＧＯＰの最後のパケットかどうか判断し（ステップＳ２１２）、そうでない場合は、ステップＳ２０７の次パケットの送信処理に戻る。ＧＯＰ最後のパケットである場合、当該ＧＯＰのＧＯＰ遅れ時間を求めてＴｂ２にセットし（ステップＳ２１３）、直前ＧＯＰ送信終端時刻またはＧＯＰ先頭送信開始時刻を示すＴｂ１への現在時刻の設定（ステップＳ２０４）に戻る。
【００７６】
図９は、本実施例のストリーム配信システムにおけるストリーム受信装置３００の動作を示すフローチャートである。まず、ストリーム受信処理手段３２は、ストリームの配信を受ける際に、送信装置１００に対し、ストリーム送信要求を発行し（ステップＳ３０１）、ストリーム送信装置からの応答を待ってストリームを構成する複数のＲＴＰ／ＵＤＰ／ＩＰパケットの受信を開始する（ステップＳ３０２）。バッファに受信したＲＴＰ／ＵＤＰ／ＩＰパケットからＭＰＥＧデータを取り出し、ＭＰＥＧデコーダ３１が必要とするデータレートで投与する（ステップＳ３０３）。ステップＳ３０３でＭＰＥＧデコーダ３１に与えたＭＰＥＧデータを含むＲＴＰ／ＵＤＰ／ＩＰパケットにストリームの最終パケットを示す最終フラグがセットされていた場合（ステップＳ３０４・ＹＥＳ）、ストリーム再生を終了する。
【００７７】
ステップＳ３０３でＭＰＥＧデコーダ３１に与えたＭＰＥＧデータを含むＲＴＰ／ＵＤＰ／ＩＰパケットにストリームの最終パケットを示す最終フラグがセットされていない場合（ステップＳ３０４・ＮＯ）、ＭＰＥＧデコーダ３１の必要とするレートでのデータ投与処理（ステップＳ３０３）を続ける。
【００７８】
なお、上述したような処理を実行するプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）、フロッピーディスク、メモリカードなどの様々な記録媒体に記録された形態で提供することができる。そして、そのプログラムは、装置のコンピュータの動作を制御し、プログラム制御された装置が本発明の処理を実行する。
【００７９】
以上により本発明の実施の形態について説明した。なお、上述した実施形態は、本発明の好適な実施形態の一例を示すものであり、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【００８０】
【発明の効果】
以上の説明から明らかなように、本発明によれば、ネットワーク上に不必要なマルチメディア・ストリームデータを存在させてリソースを無駄に消費することを抑制し、ストリーム送信に必要なネットワーク帯域の確保を容易にし、また、ネットワーク全体の過渡的な混雑を緩和することができる。
【００８１】
また、受信装置は、ストリームについて、必要とする全部または部分区間のデータレートでストリームデータを受信することが可能となり、受信装置のリソースを無駄に消費することを抑制することができる。
【００８２】
また、ストリームについて、分割された部分区間単位でデータレートに対応することにより、無駄な帯域の利用や確保を無くし、各部分の遅延による送信レートの揺らぎを補正し、帯域確保専用プロトコルの処理を不要とすることができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態におけるストリーム配信システムの構成の概要を示す図である。
【図２】  本発明の実施の形態におけるストリーム送信装置の構成を示す図である。
【図３】  本発明の実施の形態におけるストリーム配信システムにおける受信装置の構成を示す図である。
【図４】  本発明の実施の形態における中継装置の構成を示す図である。
【図５】  ＭＰＥＧストリームのピクチャ構成の例を示す図である。
【図６】  ＭＰＥＧストリームのレイヤ構成を示す図である。
【図７】  本発明の実施の形態におけるストリーム送信装置の動作を示すフローチャートである。
【図８】  本発明の実施の形態における中継装置の動作を示すフローチャートである。
【図９】  本発明の実施の形態におけるストリーム配信システムにおける受信装置の動作を示すフローチャートである。
【図１０】  従来のストリーム配信システムの例を示す図である。
【図１１】  実送信レートの算出について示す図である。
【符号の説明】
１００  ストリーム送信装置
２００  中継装置
３００  ストリーム受信装置
１３、２３、３３  ＣＰＵ
１４、２４、３４  ＲＯＭ
１５、２５、３５  ＲＡＭ
１１  ＭＰＥＧエンコーダ
１２  ストリーム配信処理手段
１２１  データレート検出部
１２２  目標送信レート設定部
１２３  送信レート記述部
１２４  送信レート調整部
１６、２６、３６  ネットワークＩ／Ｆ
１７、３７  ＨＤＤ
２１  ストリーム送信レート調整手段
２１１  ストリーム特定部
２１２  送信レート調整部
３１  ＭＰＥＧデコーダ
３２  ストリーム受信処理手段
３８  ディスプレイ（出力装置）
【図１】
0003931642.tif 000002
【図２】
0003931642.tif 000003
【図３】
0003931642.tif 000004
【図４】
0003931642.tif 000005
【図５】
0003931642.tif 000006
【図６】
0003931642.tif 000007
【図７】
0003931642.tif 000008
【図８】
0003931642.tif 000009
【図９】
0003931642.tif 000010
【図１０】
0003931642.tif 000011
【図１１】
0003931642.tif 000012