JP3931642B2 - ストリーム配信システム、ストリーム送信装置、及び、中継装置 - Google Patents
ストリーム配信システム、ストリーム送信装置、及び、中継装置 Download PDFInfo
- Publication number
- JP3931642B2 JP3931642B2 JP2001361577A JP2001361577A JP3931642B2 JP 3931642 B2 JP3931642 B2 JP 3931642B2 JP 2001361577 A JP2001361577 A JP 2001361577A JP 2001361577 A JP2001361577 A JP 2001361577A JP 3931642 B2 JP3931642 B2 JP 3931642B2
- Authority
- JP
- Japan
- Prior art keywords
- stream
- transmission rate
- rate
- transmission
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、データファイルの全体ではなく所定区間(所定量)のデータがダウンロードされてバッファに読み込まれた時点で再生可能な音声や動画などのストリームデータを配信するストリーム配信システム、ストリーム送信装置、及び、中継装置に関する。
【0002】
【従来の技術】
インターネットなどのネットワーク上において、音声や動画などのデータファイルをダウンロードしながらリアルタイムに再生することは、ストリーミングと呼ばれる。また、このようにデータのダウンロードと再生とを同時に行うことができる形式のデータは、ストリームデータと呼ばれる。
【0003】
ストリーム形式でない音声データや動画データは、一旦ハードディスクなどの記憶装置にデータファイル全体をダウンロードされてから再生されるのが一般的である。その場合、ユーザは、データファイル全体がダウンロードされるまで待たなければならない。一方、音声や動画などのストリームデータは、ダウンロードと再生とを同時に行うことができるので、ユーザは、データファイル全体がダウンロードされるまで再生を待つ必要がない。
【0004】
従来のストリーム配信方法では、受信装置側は、送信装置側から送信されてきた音声や動画などのストリームデータを受信した時点で、直ちに受信したストリームデータをデコードして再生するのではなく、ストリームデータの持つデータレートを満たすような一定量のストリームデータをバッファメモリに蓄積してから、デコードして再生する。
【0005】
図10に従来のストリーム配信システムの例を示す。ストリーム配信においては、送信側において、まず、配信する対象となる音声や動画などのソース信号があり、これを所定の符号化方式でエンコードしてストリームデータを生成する。符号化方式や圧縮品質などによりそのデータレートが定まる。そして、受信側からの要求に基づき、所定の送信レートでストリームデータが送信される。実際の送信レートはネットワークの状況などにより変動する。受信側では、ストリームデータを受信してバッファに蓄積する。受信側のデコーダは、ストリームの持つデータレートに応じた所定量が蓄積されてから再生を開始する。
【0006】
また、ストリーム配信においては、ネットワークの帯域を確保するためのプロトコルとしてRSVP(Resource ReSerVation Protocol )が使用されることがある。このプロトコルは、送信装置と受信装置の間の1つの経路上に存在する中継装置(ルータ)に対して予め通信のための帯域を予約する機能を持つ。
【0007】
【発明が解決しようとする課題】
従来のストリーム配信方法では、ネットワーク上のある回線の空いている帯域全てを利用してストリームを転送してしまうことが起こることにより、ネットワークのリソースを無駄に使用してしまうという問題があった。また、帯域確保専用のプロトコルを用いて処理する必要があったり、その場合に、帯域確保プロトコルは、単一ストリーム中の部分的なデータレートの揺らぎに対応できないため、最大の部分のデータレートで帯域を確保する必要があり、無駄に帯域を確保してしまうという問題があった。さらには、一時的に何らかの要因によりデータの送信が滞って送信レートが変動した場合に、確保された帯域を超えて本来のデータ送信レートに追いつくための処理機構が無いという問題点があった。
【0008】
本発明は、かかる問題点に鑑みてなされたものであり、ストリーム送信装置及び中継装置においてストリームの分割された部分区間ごとのデータレート及び該データレートに基づき設定される目標送信レートに対応して送信レートの制御を行うことにより、上記各部分区間の遅延による送信レートの揺らぎを補正し、ネットワークの無駄な帯域の利用や確保を無くしてリソースを有効活用し、また、処理する通信プロトコル数を減らすことのできるストリーム配信システム、ストリーム送信装置、及び、中継装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
かかる目的を達成するために、請求項1記載の発明は、マルチメディア・ストリームを配信するストリーム送信装置と、ストリームを受信して再生する受信装置と、ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムであって、ストリーム送信装置は、ストリームの全部または分割された部分区間についてストリームを実時間再生するために最低限必要な送信レートであるデータレートをGOPデータ量をGOP再生時間で除すことによって検出するデータレート検出手段と、ストリームの全部または分割された部分区間について、データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、ストリームの全部または分割された部分区間について、ストリームを自装置から送信した際の実際の送信レートである第1の実送信レートを測定し、該第1の実送信レートを目標送信レートに近づける調整を行う第1の送信レート調整手段と、を有し、中継装置は、パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、ストリームの全部または分割された部分区間について、パケット内に記述されている目標送信レートを検出すると共にストリームを自装置から送信した際の実際の送信レートである第2の実送信レートを測定し、該第2の実送信レートを目標送信レートに近づける調整を行う第2の送信レート調整手段と、を有することを特徴としている。
【0010】
請求項2記載の発明は、マルチメディア・ストリームを配信するストリーム送信装置と、ストリームを受信して再生する受信装置と、ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおけるストリーム送信装置であって、ストリームの全部または分割された部分区間についてストリームを実時間再生するために最低限必要な送信レートであるデータレートを、GOPデータ量をGOP再生時間で除すことによって検出するデータレート検出手段と、ストリームの全部または分割された部分区間について、データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、ストリームの全部または分割された部分区間について、ストリームが実際に送信されたレートである実送信レートを測定し、該実送信レートを目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴としている。
【0011】
請求項3記載の発明は、請求項2記載の発明において、送信レート調整手段は、ストリームの分割された部分区間について、実送信レートが目標送信レート未満だった場合、直後から連続するストリームの1つ以上の部分区間について、各々の目標送信レートを超えるレートで挽回送信することを特徴としている。
【0012】
請求項4記載の発明は、請求項2記載の発明において、送信レート調整手段は、ストリームの分割された部分区間について、実送信レートが目標送信レートを超えた場合、目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの1つ以上の部分区間について各々の目標送信レート未満のレートに抑制して送信することを特徴としている。
【0013】
請求項5記載の発明は、請求項2記載の発明において、目標送信レートのデータレートに対する倍率の上限を定めることを特徴としている。
【0014】
請求項6記載の発明は、請求項3記載の発明において、挽回送信の際の送信レートについて、目標送信レートに対する倍率の上限を定めることを特徴としている。
【0015】
請求項7記載の発明は、請求項2記載の発明において、ストリームに対して、MACアドレスや装置内部情報をもとに作成したGUID(グローバルユニークID)を付与し、通信プロトコルのパケット内に記述することを特徴としている。
【0016】
請求項8記載の発明は、請求項2記載の発明において、送信レート記述手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのヘッダ部に記述することを特徴としている。
【0017】
請求項9記載の発明は、請求項2記載の発明において、送信レート記述手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのストリームデータ部に記述することを特徴としている。
【0018】
請求項10記載の発明は、マルチメディアストリームを配信する送信装置と、ストリームを受信して再生する受信装置と、ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおける中継装置であって、パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、ストリームの全部または分割された部分区間について、パケット内に記述されている目標送信レートを検出し、また、その時点でのストリームが自装置から実際に送信されたレートである実送信レートを測定し、該実送信レートを目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴としている。
【0019】
請求項11記載の発明は、請求項10記載の発明において、送信レート調整手段は、ストリームの分割された部分区間について、実送信レートが目標送信レート未満だった場合、直後から連続するストリームの1つ以上の部分区間について、各々の目標送信レートを超える送信レートで挽回送信することを特徴としている。
【0020】
請求項12記載の発明は、請求項10記載の発明において、送信レート調整手段は、ストリームの分割部分区間について、実送信レートが目標送信レートを超えた場合、目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの1つ以上の区間について各々の目標送信レート未満のレートに抑制して送信することを特徴としている。
【0021】
請求項13記載の発明は、請求項10記載の発明において、目標送信レートの実送信レートに対する倍率の上限を定めることを特徴としている。
【0022】
請求項14記載の発明は、請求項10記載の発明において、挽回送信の際の送信レートについて、目標送信レートに対する倍率の上限を定めることを特徴としている。
【0023】
請求項15記載の発明は、請求項10記載の発明において、ストリーム特定手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのヘッダ部から検出することを特徴としている。
【0024】
請求項16記載の発明は、請求項10記載の発明において、ストリーム特定手段は、ストリームの全部または分割された部分区間について、目標送信レートを通信プロトコルのパケットのストリームデータ部から検出することを特徴としている。
【0025】
請求項17記載の発明は、請求項10記載の発明において、ストリーム特定手段は、パケットが含むGUID(グローバルユニークID)を検出して送受信機器とストリームとを特定することを特徴としている。
【0026】
請求項18記載の発明は、請求項10記載の発明において、ストリーム特定手段は、パケットが含む送信元及び宛先のIPアドレス及びポート番号により送受信機器とストリームとを特定することを特徴としている。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照しながら詳細に説明する。図1は、本発明の実施の形態におけるストリーム配信システムの構成の概要を示す図である。本システムは、インターネットなどのネットワーク上において、ストリーム送信装置100と、中継装置200と、ストリーム受信装置300と、を含んで構成される。
【0028】
ストリーム送信装置100は、ネットワークを介して、ストリーム受信装置300からの要求に応じて音声や動画などのストリームデータを配信するサーバコンピュータである。中継装置200は、ネットワーク間を接続し、データ中継を行うノードであり、インターネットではルータ(レイヤ3スイッチ)に相当する装置である。受信装置300は、ネットワークを介して送信装置100から音声や動画などのストリームデータを受信するサービスを受ける側のクライアントであり、ユーザの使用するPCなどである。なお、受信装置300としては、PC以外にビデオデッキやテレビジョン受像機、ホームサーバなどであっても良い。
【0029】
ネットワークA、B、Cは、例えばEthernetや家庭内ネットワークなどのLANなどであり、中継装置やバックボーンを介して相互接続される。また、図1では、ネットワークに単数の装置が接続されているが、勿論実際は複数の装置が接続される。ネットワークのトポロジは特に限定されない。
【0030】
図2は、ストリーム送信装置100の構成を示すブロック図である。送信装置100は、MPEGエンコーダ11、ストリーム配信処理手段12、CPU13、ROM14、RAM15、ネットワークI/F16、及びHDD(ハードディスクドライブ)17を備えている。
【0031】
MPEGエンコーダ11は、外部からの映像などの信号(配信に用いるソース信号)を所定のデータレートのMPEG−2(Moving Picture Experts Group 2)ストリームにエンコードするモジュールであり、エンコードされたストリームは、HDD17に記憶される。なお、ソース信号の符号化方法はMPEG−2以外のものであっても良いが本実施例ではMPEG−2を例に採っている。
【0032】
CPU13は、送信装置の全体制御を行うプロセッサである。ROM14は、読み出し専用メモリであり、本発明の処理を実現するプログラムが格納されている。本プログラムは、主記憶へロードされてCPU13により実行される。RAM15は、CPU13が行う処理において必要となる各種データを一時的に格納するメモリである。
【0033】
ネットワークI/F(インターフェース)16は、ストリーム送信要求のIPパケットの受信処理を行い、また、ストリームデータのIPパケットの送信処理を行うモジュールである。HDD17は、磁気ディスクにデータを読み書きする記憶装置であり、受信装置300に対して配信されるストリームデータを保存する。
【0034】
ストリーム配信処理部12は、RTP/UDP/IPなどを用いたストリーム配信のメイン処理を行うモジュールである。RTP(Real-time Transport Protocol)は、パケットに対する同期再生のためのタイムスタンプの付与などを行うプロトコルである。UDPは、コネクションレス型プロトコルであり、ストリームデータの送信に用いられる。IPは、ネットワーク間の転送を処理するプロトコルである。また、ストリーム配信処理手段12は、本発明の送信レート制御手段を含む。送信レート制御手段は、単位ストリームについて、全体、または、所定の部分に分割されたその部分区間(以下「部分区間」)単位で、本発明の送信レートの制御・調整処理を行う。本実施例では、MPEG−2を符号化方式として使用し、MPEGストリームを構成するGOP(Group Of Picture)単位で、実際の送信レートを目標送信レートに近づける調整処理を行う。
【0035】
ストリーム配信処理手段12は、送信レート制御手段として、データレート検出部121、目標送信レート設定部122、送信レート記述部123、及び、送信レート調整部124を含む。
【0036】
データレート検出部121は、配信対象のストリームについて、部分区間単位でそのデータレートの検出を行う。検出は、ストリームやピクチャのヘッダ部に記述されている情報などを参照することにより行う。
【0037】
目標送信レート設定部122は、ストリームの部分区間単位で、上記データレート検出部121により検出されたデータレートを用いて目標送信レートを設定する処理を行う。目標送信レートとは、ストリームの送信に余裕を持たせるために予め送信側においてデータレートに対して見積もるレートである。データレートに対して所定の倍率(これを「目標送信レート倍率α」とする)を乗じることにより目標送信レートを定める。目標送信レート倍率αの値は、ストリーム通信に対するポリシー設定などの要因により変化し得る。
【0038】
また、目標送信レート設定部122は、目標送信レート倍率αについて、その上限値を予め定めておくことにより、ストリームに対して過大な送信レートを設定しないようにする。
【0039】
送信レート記述部123は、ストリームの部分区間単位で、目標送信レート設定部122により設定される目標送信レートを、使用する通信プロトコルのパケット内に記述する処理を行う。本実施例では、ストリーミング・ヘッダ内に目標送信レート値を記述する。中継装置200では、対応する機能が実装されていれば、パケット内に記述されたそのレート情報を参照して送信レート調整処理を行うことができる。目標送信レートの記述処理としては、パケットのヘッダ部に記述する方法と、パケットのストリームデータ部に記述する方法とがある。
【0040】
送信レート調整部124は、随時、ストリームの部分区間単位での実際の送信レート(以下「実送信レート」)を測定して目標送信レートと比較し、比較の結果に応じた送信レートの調整処理を行う。実送信レートが目標送信レートを超える場合、実送信レートが目標送信レートになるまでパケットの送信を一時停止(待機)したり、送信レートをダウンさせるなどの処理を行うことにより、ストリームの送信を抑制する。また、実送信レートが目標送信レートに満たない場合、挽回送信として、パケットをそのまますぐに送信して送信レートをアップさせる処理を行う。また、予め、挽回送信の送信レートの上限値を、目標送信レートに対して所定の倍率β(「挽回送信レート倍率」とする)を乗じた値として定めておき、挽回送信の送信レートがその上限値に達した場合は、一時送信を停止(待機)させる処理を行うようにしてもよい。上限値を定めておくことにより、ストリームに対して必要以上の送信レートのアップをしないようにする。
【0041】
また、ストリーム配信処理部12は、ストリームを構成する各パケットについて、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号などの情報を記述する他、中継装置200及び受信装置300におけるストリームの特定のために、ストリームに対して一意に定まるGUID(グローバルユニークID)を付与する処理を行っても良い。送信装置100は、MACアドレスや装置内部情報をもとにGUIDを作成し、ストリームを構成する各パケット内に記述する。
【0042】
図3は、ストリーム受信装置300の構成を示すブロック図である。受信装置300は、MPEGデコーダ31、ストリーム受信処理部32、CPU33、ROM34、RAM35、ネットワークI/F36、HDD37、及びディスプレイ(出力装置)38を備えている。
【0043】
MPEGデコーダ31は、ストリーム送信装置100より配信されてバッファに一時蓄積されたMPEGストリームをデコードし、各ストリーム及びその部分区間の持つデータレートでディスプレイ38に出力して再生する処理を行うモジュールである。
【0044】
ストリーム受信処理部32は、ストリーム配信サービスにおけるクライアントモジュールであり、所定のプロトコルを用いて、ストリーム要求他のメッセージの発行、ストリームデータの受信などの処理を行う。
【0045】
CPU33、ROM34、及びRAM35などは、送信装置と同様の役割を果たす。ネットワークI/F36は、ストリーム配信要求のIPパケットを送信装置に対して送信する処理を行い、また、ストリームデータのIPパケットを受信する処理を行うモジュールである。HDD37は、送信装置より受信するストリームデータをバッファに一時蓄積する記憶装置である。
【0046】
中継装置200は、送信装置100と受信装置300との間での伝送路(ルート)上において、データの中継を行うノードであり、ストリームデータが格納されたIPパケットを受信装置300側のネットワークに流す処理を行う。中継装置200は、無関係なネットワークにはIPパケットを流さないことにより、ネットワーク全体のトラフィックを低減させる役割を有している。ストリーム配信の際には、送信装置100と受信装置300との間でルートが設定される。
【0047】
図4は、中継装置200の構成を示すブロック図である。中継装置200は、ストリーム送信レート調整21、CPU23、ROM24、RAM25、ネットワークI/F26を備えている。CPU23、ROM24、RAM25などは、前述の各装置と同様の役割を果たす。ネットワークI/F26は、接続されるネットワークに応じて装備され、ストリーム送信要求やストリームデータなどのパケットの転送処理を行う。
【0048】
ストリーム送信レート調整手段21は、ストリームの部分区間単位で、実送信レートを目標送信レートに近づける調整処理を行う。ストリーム送信レート調整手段21は、ストリーム特定部211と、送信レート調整部212とを含む。
【0049】
ストリーム特定部211は、受信パケットを参照してストリームを識別・特定する。その際、RTP/UDP/IPの各ヘッダ、ストリーミング・ヘッダ、あるいはストリームデータ部が参照される。IPヘッダからは送信元IPアドレス及び宛先IPアドレス、UDPヘッダからは送信元ポート番号及び宛先ポート番号が識別されることにより通信が特定される。ストリーミング・ヘッダからはストリームの部分区間単位での目標送信レートが識別される。さらに、送信装置100によってストリームに対するGUIDがパケット内に記述されている場合は、GUIDを参照することによりストリームの識別・特定が可能である。
【0050】
送信レート調整部212は、送信装置100の送信レート調整部124と同様、ストリームの部分区間について、目標送信レートを参照するとともに、実送信レートを測定して目標送信レートと比較し、比較の結果に応じて送信レートを調整する処理を行う。送信レート調整部212は、比較の結果、実送信レートが目標送信レートを超えている場合は、ストリームの部分区間について、実送信レートが目標送信レートになるまで転送を一時停止(待機)する処理、あるいは、送信レートをダウンさせる処理を行うことにより、ストリームの送信を抑制する。また、比較の結果、実送信レートが目標送信レート未満であった場合、パケットについて挽回送信としてそのまますぐに転送を行って送信レートのアップを行い、目標送信レートに追いつくよう遅れの挽回を図る。その際、予め、目標送信レートについて所定の倍率β(挽回送信レート倍率)を乗じて挽回送信レートの上限値を定めておき、送信レートがその上限値に達する場合は転送を一時停止(待機)させるように処理してもよい。
【0051】
本発明は、音声や動画などにおける各種データ形式のストリームに適用することが可能であるが、本実施例では、図6に示すようなMPEG形式の動画のストリームデータを例に採っている。MPEGでは、ES(Elementary Stream :エレメンタリストリーム)、PS(Program Stream)、TS(Transport Stream)などがあり、CBR(Constant Bit Rate :一定速度)、VBR(Variable Bit Rate :可変速度)をサポートしている。
【0052】
図6に示すように、MPEGストリームは、順に、ストリーム、GOP、ピクチャ、パケットなどの各レイヤから成る。ストリームは、GOP及びフレーム(動画を構成する単位である静止画像=ピクチャ)に分かれており、MPEGフレームには、Iピクチャ、Bピクチャ、Pピクチャの3種類がある。Iピクチャは、フレーム内符号化されるフレームである。Pピクチャは、順方向予測符号化されるフレームである。Bピクチャは、双方向予測符号化されるフレームである。
【0053】
また、GOP(Group Of Picture)は、ストリームの部分を構成し、ストリームデータに対するランダムアクセスを可能とするために、Iピクチャ(フレーム内符号化画像)が少なくとも1枚は入った画像群構造である。図5では、1GOPはピクチャ数として15枚のピクチャから構成され、ほぼ0.5秒となっている。本実施例では、このGOP単位で送信レート制御処理を行う。
【0054】
図6において、MPEGストリームは、RTP/UDP/IPの各パケットに分割して送信される。各ピクチャ(I,B,P)は、各々、1つ以上のRTP/UDP/IPパケットに分割される。RTP/UDP/IPパケットは、各プロトコルの定めるRTPヘッダ、UDPヘッダ、IPヘッダ、及びストリーミングヘッダを持つ。RTPヘッダは、ペイロードタイプを7bitで保持し、例えばMPEGエレメンタリ・ストリームの場合は32である。ストリーミング・ヘッダは、GOPデータレート、ストリーム先頭パケット・フラグ、及びストリーム最終パケット・フラグを含む。
【0055】
本実施例では、ストリーミング・ヘッダ内に、GOP単位の目標送信レートを設定・記述する。目標送信レートは、下記式によって計算される。
【0056】
GOP目標送信レート=GOPデータレート*α
α=1.2(※1.2以外でも良い): 目標送信レート倍率
GOPデータレート=GOPデータ量/GOP時間
GOPデータ量=GOP中のピクチャヘッダを検出、総データ量を算出
PSC(※ピクチャ層): ピクチャ開始コード
TR(※ピクチャ層): ピクチャ表示順序
GOP時間=フレームレート*15(※1GOPを構成するピクチャ数)
フレームレート=FRC*(n+1)/(d+1)
FRC(※シーケンス層): 画像の表示周期
FREn、FREd(※シーケンス層): フレームレート拡張
【0057】
なお、PSC、FRCなどの記号は、MPEGのフォーマットに準じたものである。ストリーム先頭フラグは、ストリームの最初のパケットのみセットされる。ストリーム最終フラグは、ストリームの最後のパケットのみセットされる。
【0058】
図7は、本発明の実施の形態におけるストリーム配信システムでのストリーム送信装置100の動作を示すフローチャートである。送信装置100において、まず、受信装置300からのストリーム送信要求メッセージがあるか否かが判定される(ステップS101)。即ち、受信装置300が発行するストリーム通信についての各情報を格納したストリーム送信要求の受信確認を行い、ストリーム送信要求を受信していない場合、再び、ストリーム送信要求の受信確認を行う。
【0059】
一方、ストリーム送信要求を受信した場合、以下に述べる手順で図5に示した構造のMPEGストリームの各ピクチャを図6に示した構造のRTP/UDP/IPパケットに分割して受信装置300に送信する処理を行う。MPEGストリームをピクチャ境界に合わせて分割して生成される各IPパケットについて、送信制御で使用するために以下の処理を行う。まず、初期化処理として、目標送信レートに対応してGOP送信が終了すべき時刻に対しての実際のGOP送信終了時刻との差で表されるGOP送信遅れ時間Ta2(つまり、目標送信レートに対する遅れを表す)の値を0にセットし(ステップS102)、直前GOP送信終了時刻Ta1に現在の送信装置100の内部時刻をセットする(ステップS103)。
【0060】
データレート検出部121は、MPEG2ストリームをスキャンしてMPEG2のシーケンス層のFRC、FREn、FREd、ピクチャ層のPSC、TRなどの情報からGOPデータ量及びGOP時間を算出し、GOPデータレートを算出する(ステップS104)。
【0061】
目標送信レート設定部122は、GOPデータレート(例えば1.0Mbps)に対して、転送に余裕を持たせるため、所定の目標送信レート倍率αを乗じて目標送信レートを設定する(ステップS105)。例えば、目標送信レート=GOPデータレート*1.2として1.2Mbpsにする。中継装置200が送信レート調整に利用することを想定して、パケットのストリーミングヘッダ内に上記目標送信レートの値を設定・記述する(ステップS106)。パケットがストリームの最終パケットである場合(ステップS107・YES)、最終パケットフラグをセットし(ステップS108)、最終パケットを送信して終了する(ステップS109)。
【0062】
次に送信するパケットがストリームの最終パケットでない場合(ステップS107・NO)、パケットがストリームの先頭パケットである場合には(ステップS110・YES)、先頭パケットフラグをセットし(ステップS111)、ネットワークにパケットを送信する(ステップS112)。
【0063】
次に送信するパケットがストリームの先頭パケットでない場合(ステップS110・NO)、ネットワークにパケットを送信する(ステップS112)。
【0064】
次に、図11に示すように、現時点でGOPの先頭から送信済みのデータ量を、直前GOPの送信終了時刻Ta1またはGOP先頭送信開始時刻Ta1’と、現在時刻と、の時間差に直前GOPについてのGOP遅れ時間Ta2を加算した時間で除算して現時点までのGOP実送信レートを算出し、この実送信レートを、対応するGOP目標送信レートと比較する(ステップS113)。
【0065】
実送信レートが目標送信レート(例えば1.2Mbps)を超えている場合(例えば1.3bps)(ステップS113・YES)、送信レート調整部124は、ストリーム部分区間についての送信レートが目標送信レートになるまで一時停止(待機)する処理を行う(ステップS114)。
【0066】
実送信レートが目標送信レート(例えば1.2Mbps)未満の場合(例えば1.1bps)(ステップS113・NO)、送信レート調整部124は、パケットについて送信を待機させることなく挽回送信としてそのまま次パケットの送信処理に移る。その際、挽回送信レートが所定の上限値に達しているかどうか判断し、達した場合は、その上限値内に収まるまで送信を一時停止(待機)する処理を行う(ステップS115)。
【0067】
ステップS112において送信したパケットがGOPの最後のパケットである場合(ステップS116・YES)、GOP遅れ時間を算出してTa2に設定し(ステップS117)、前GOP終了時刻を表すTa1への現在時刻の設定(ステップS103)に戻る。このように制御する結果、目標送信レート以上で送信が行割れる場合がある。GOPを目標送信レート以上で送信した場合はGOP遅れ時間Ta2は0である。
【0068】
ステップS112において送信したパケットがGOPの最後のパケットでない場合(ステップS116・NO)、次パケットのストリーミングヘッダに対するGOP目標送信レートの設定(ステップS106)に戻る。
【0069】
図8は、本実施例のストリーム配信システムにおける中継装置の動作を示すフローチャートである。まず、MPEGストリームを含むIPパケットを受信すると、ストリーム特定部21は、受信パケット内のRTPヘッダから、ペイロードタイプを検出し、32であった場合はMPEGストリームと解釈する。ストリームヘッダのストリーム先頭パケットを示すフラグがセットされている場合(ステップS201・YES)、UDPパケットヘッダから送信元ポート番号と宛先ポート番号とを検出し、さらにIPヘッダから送信元IPアドレスと宛先IPアドレスとを検出し、これらの組み合わせにより通信を識別・特定し、ばらばらに到着する各パケットを一貫して制御する(ステップS202)。
【0070】
ピクチャ境界に合わせて分割されたIPパケットの送信制御を行うために、まず、初期化処理として、GOPの目標送信レートに対する遅れを表すGOP送信遅れ時間Tb2の値を0に設定し(ステップS203)、直前GOP送信終了時刻Tb1に中継装置200の現在の内部時刻をセットする(ステップS204)。
【0071】
GOPデータレート(例えば1.0Mbps)に対して、転送に余裕を持たせるため、所定の目標送信レート倍率αを乗じて目標送信レートを設定する(ステップS205)。例えば、目標送信レート=GOPデータレート*1.2として1.2Mbpsにする。パケットのストリーミングヘッダ内に上記目標送信レートの値を記述し(ステップS206)、次パケットを転送する(ステップS207)。
【0072】
ステップS201において、受信したRTP/UDP/IPパケットのRTPヘッダからペイロードタイプを検出し、32以外の値であった場合、またはペイロードタイプが32でストリーミングヘッダのストリームの先頭パケットを示すフラグがセットされていない場合(ステップS201・NO)、ストリーム先頭パケットの検出を繰り返す(ステップS201)。
【0073】
ステップS208で送信したパケットのパケット最終フラグがセットされている場合(ステップS208・YES)、当該パケットをストリームの最終パケットと判断し、ストリームの送信を終了する。
【0074】
ステップS208で送信したパケットのパケット最終フラグがセットされていない場合(ステップS208・NO)、送信データ量を中継装置200内部の現在時刻と直前GOPの送信終了時刻Tb1の差に直前GOPのGOP遅れ時間Tb2を加えたもので除算して実送信レートを測定し、この実送信レートが、対応する目標送信レート(例えば1.2Mbps)を超える場合(例えば1.3Mbps)(ステップS209・YES)、送信レートが目標送信レートになるまで転送を一時停止する処理、あるいは、送信レートをダウンさせる処理を行う(ステップS210)。
【0075】
実送信レートが、対応する目標送信レート(例えば1.2Mbps)未満の場合(例えば1.1Mbps)(ステップS209・NO)、転送を待機させることなく次パケットの処理に移る。ステップS207で送信したパケットについて、GOPの最後のパケットかどうか判断し(ステップS212)、そうでない場合は、ステップS207の次パケットの送信処理に戻る。GOP最後のパケットである場合、当該GOPのGOP遅れ時間を求めてTb2にセットし(ステップS213)、直前GOP送信終端時刻またはGOP先頭送信開始時刻を示すTb1への現在時刻の設定(ステップS204)に戻る。
【0076】
図9は、本実施例のストリーム配信システムにおけるストリーム受信装置300の動作を示すフローチャートである。まず、ストリーム受信処理手段32は、ストリームの配信を受ける際に、送信装置100に対し、ストリーム送信要求を発行し(ステップS301)、ストリーム送信装置からの応答を待ってストリームを構成する複数のRTP/UDP/IPパケットの受信を開始する(ステップS302)。バッファに受信したRTP/UDP/IPパケットからMPEGデータを取り出し、MPEGデコーダ31が必要とするデータレートで投与する(ステップS303)。ステップS303でMPEGデコーダ31に与えたMPEGデータを含むRTP/UDP/IPパケットにストリームの最終パケットを示す最終フラグがセットされていた場合(ステップS304・YES)、ストリーム再生を終了する。
【0077】
ステップS303でMPEGデコーダ31に与えたMPEGデータを含むRTP/UDP/IPパケットにストリームの最終パケットを示す最終フラグがセットされていない場合(ステップS304・NO)、MPEGデコーダ31の必要とするレートでのデータ投与処理(ステップS303)を続ける。
【0078】
なお、上述したような処理を実行するプログラムは、CD−ROM、DVD(Digital Versatile Disc)、フロッピーディスク、メモリカードなどの様々な記録媒体に記録された形態で提供することができる。そして、そのプログラムは、装置のコンピュータの動作を制御し、プログラム制御された装置が本発明の処理を実行する。
【0079】
以上により本発明の実施の形態について説明した。なお、上述した実施形態は、本発明の好適な実施形態の一例を示すものであり、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【0080】
【発明の効果】
以上の説明から明らかなように、本発明によれば、ネットワーク上に不必要なマルチメディア・ストリームデータを存在させてリソースを無駄に消費することを抑制し、ストリーム送信に必要なネットワーク帯域の確保を容易にし、また、ネットワーク全体の過渡的な混雑を緩和することができる。
【0081】
また、受信装置は、ストリームについて、必要とする全部または部分区間のデータレートでストリームデータを受信することが可能となり、受信装置のリソースを無駄に消費することを抑制することができる。
【0082】
また、ストリームについて、分割された部分区間単位でデータレートに対応することにより、無駄な帯域の利用や確保を無くし、各部分の遅延による送信レートの揺らぎを補正し、帯域確保専用プロトコルの処理を不要とすることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態におけるストリーム配信システムの構成の概要を示す図である。
【図2】 本発明の実施の形態におけるストリーム送信装置の構成を示す図である。
【図3】 本発明の実施の形態におけるストリーム配信システムにおける受信装置の構成を示す図である。
【図4】 本発明の実施の形態における中継装置の構成を示す図である。
【図5】 MPEGストリームのピクチャ構成の例を示す図である。
【図6】 MPEGストリームのレイヤ構成を示す図である。
【図7】 本発明の実施の形態におけるストリーム送信装置の動作を示すフローチャートである。
【図8】 本発明の実施の形態における中継装置の動作を示すフローチャートである。
【図9】 本発明の実施の形態におけるストリーム配信システムにおける受信装置の動作を示すフローチャートである。
【図10】 従来のストリーム配信システムの例を示す図である。
【図11】 実送信レートの算出について示す図である。
【符号の説明】
100 ストリーム送信装置
200 中継装置
300 ストリーム受信装置
13、23、33 CPU
14、24、34 ROM
15、25、35 RAM
11 MPEGエンコーダ
12 ストリーム配信処理手段
121 データレート検出部
122 目標送信レート設定部
123 送信レート記述部
124 送信レート調整部
16、26、36 ネットワークI/F
17、37 HDD
21 ストリーム送信レート調整手段
211 ストリーム特定部
212 送信レート調整部
31 MPEGデコーダ
32 ストリーム受信処理手段
38 ディスプレイ(出力装置)
Claims (18)
- マルチメディア・ストリームを配信するストリーム送信装置と、前記ストリームを受信して再生する受信装置と、前記ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムであって、
前記ストリーム送信装置は、
前記ストリームの全部または分割された部分区間について前記ストリームを実時間再生するために最低限必要な送信レートであるデータレートを、GOPデータ量をGOP再生時間で除すことによって検出するデータレート検出手段と、
前記ストリームの全部または分割された部分区間について、前記データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、
前記ストリームの全部または分割された部分区間について、前記ストリームを自装置から送信した際の実際の送信レートである第1の実送信レートを測定し、該第1の実送信レートを前記目標送信レートに近づける調整を行う第1の送信レート調整手段と、を有し、
前記中継装置は、
パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、
前記ストリームの全部または分割された部分区間について、パケット内に記述されている前記目標送信レートを検出すると共に前記ストリームを自装置から送信した際の実際の送信レートである第2の実送信レートを測定し、該第2の実送信レートを前記目標送信レートに近づける調整を行う第2の送信レート調整手段と、を有することを特徴とするストリーム配信システム。 - マルチメディア・ストリームを配信するストリーム送信装置と、前記ストリームを受信して再生する受信装置と、前記ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおける前記ストリーム送信装置であって、
前記ストリームの全部または分割された部分区間について前記ストリームを実時間再生するために最低限必要な送信レートであるデータレートを、GOPデータ量をGOP再生時間で除すことによって検出するデータレート検出手段と、
前記ストリームの全部または分割された部分区間について、前記データレートを所定値分上回る目標送信レートを設定する目標送信レート設定手段と、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケット内に記述する送信レート記述手段と、
前記ストリームの全部または分割された部分区間について、前記ストリームが実際に送信されたレートである実送信レートを測定し、該実送信レートを前記目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴とするストリーム送信装置。 - 前記送信レート調整手段は、
前記ストリームの分割された部分区間について、前記実送信レートが前記目標送信レート未満だった場合、直後から連続するストリームの1つ以上の部分区間について、各々の前記目標送信レートを超えるレートで挽回送信することを特徴とする請求項2記載のストリーム送信装置。 - 前記送信レート調整手段は、
前記ストリームの分割された部分区間について、前記実送信レートが前記目標送信レートを超えた場合、前記目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの1つ以上の部分区間について各々の前記目標送信レート未満のレートに抑制して送信することを特徴とする請求項2記載のストリーム送信装置。 - 前記目標送信レートの前記データレートに対する倍率の上限を定めることを特徴とする請求項2記載のストリーム送信装置。
- 前記挽回送信の際の送信レートについて、前記目標送信レートに対する倍率の上限を定めることを特徴とする請求項3記載のストリーム送信装置。
- 前記ストリームに対して、MACアドレスや装置内部情報をもとに作成したGUID(グローバルユニークID)を付与し、通信プロトコルのパケット内に記述することを特徴とする請求項2記載のストリーム送信装置。
- 前記送信レート記述手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのヘッダ部に記述することを特徴とする請求項2記載のストリーム送信装置。 - 前記送信レート記述手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのストリームデータ部に記述することを特徴とする請求項2記載のストリーム送信装置。 - マルチメディアストリームを配信する送信装置と、前記ストリームを受信して再生する受信装置と、前記ストリームの伝送の中継を行う中継装置と、がネットワークを介して接続されるストリーム配信システムにおける前記中継装置であって、
パケットを参照して送受信ノードとストリームとを特定するストリーム特定手段と、
前記ストリームの全部または分割された部分区間について、パケット内に記述されている目標送信レートを検出し、また、その時点で前記ストリームが自装置から実際に送信されたレートである実送信レートを測定し、該実送信レートを前記目標送信レートに近づける調整を行う送信レート調整手段と、を有することを特徴とする中継装置。 - 前記送信レート調整手段は、
前記ストリームの分割された部分区間について、前記実送信レートが前記目標送信レート未満だった場合、直後から連続するストリームの1つ以上の部分区間について、各々の前記目標送信レートを超える送信レートで挽回送信することを特徴とする請求項10記載の中継装置。 - 前記送信レート調整手段は、
前記ストリームの分割部分区間について、前記実送信レートが前記目標送信レートを超えた場合、前記目標送信レートに下がるまで送信を一時停止する、または、直後から連続するストリームの1つ以上の区間について各々の前記目標送信レート未満のレートに抑制して送信することを特徴とする請求項10記載の中継装置。 - 前記目標送信レートの前記実送信レートに対する倍率の上限を定めることを特徴とする請求項10記載の中継装置。
- 前記挽回送信の際の送信レートについて、前記目標送信レートに対する倍率の上限を定めることを特徴とする請求項10記載の中継装置。
- 前記ストリーム特定手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのヘッダ部から検出することを特徴とする請求項10記載の中継装置。 - 前記ストリーム特定手段は、
前記ストリームの全部または分割された部分区間について、前記目標送信レートを通信プロトコルのパケットのストリームデータ部から検出することを特徴とする請求項10記載の中継装置。 - 前記ストリーム特定手段は、
パケットが含むGUID(グローバルユニークID)を検出して送受信機器とストリームとを特定することを特徴とする請求項10記載の中継装置。 - 前記ストリーム特定手段は、
パケットが含む送信元及び宛先のIPアドレス及びポート番号により送受信機器とストリームとを特定することを特徴とする請求項10記載の中継装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001361577A JP3931642B2 (ja) | 2001-11-27 | 2001-11-27 | ストリーム配信システム、ストリーム送信装置、及び、中継装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001361577A JP3931642B2 (ja) | 2001-11-27 | 2001-11-27 | ストリーム配信システム、ストリーム送信装置、及び、中継装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003163916A JP2003163916A (ja) | 2003-06-06 |
JP3931642B2 true JP3931642B2 (ja) | 2007-06-20 |
Family
ID=19172207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001361577A Expired - Fee Related JP3931642B2 (ja) | 2001-11-27 | 2001-11-27 | ストリーム配信システム、ストリーム送信装置、及び、中継装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3931642B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766376B2 (en) | 2000-09-12 | 2004-07-20 | Sn Acquisition, L.L.C | Streaming media buffering system |
JP2005311614A (ja) * | 2004-04-20 | 2005-11-04 | Pioneer Electronic Corp | 情報配信システム、情報配信方法及び情報配信用プログラム並びに情報記録媒体 |
JP5162939B2 (ja) * | 2007-03-30 | 2013-03-13 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
JP2010232832A (ja) * | 2009-03-26 | 2010-10-14 | Fujitsu Ltd | コンテンツ配信サーバ装置 |
JP5359724B2 (ja) * | 2009-09-16 | 2013-12-04 | 日本電気株式会社 | ストリーミング配信システム、サーバ装置、ストリーミング配信方法及びプログラム |
US9178724B2 (en) | 2009-12-10 | 2015-11-03 | Nec Corporation | Gateway apparatus, relay method, program, femto system |
JP6094052B2 (ja) * | 2012-04-23 | 2017-03-15 | セイコーエプソン株式会社 | プログラム、記憶媒体及び使用帯域算出方法 |
-
2001
- 2001-11-27 JP JP2001361577A patent/JP3931642B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003163916A (ja) | 2003-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3699910B2 (ja) | データ伝送装置、データ伝送方法及びプログラム | |
JP4857379B2 (ja) | ストリーミングデータのサービス品質を強化するための予測的フレームドロッピング | |
US8474001B2 (en) | Near real time delivery of variable bit rate media streams | |
JP4118232B2 (ja) | 映像データ処理方法および映像データ処理装置 | |
JP4936542B2 (ja) | 通信制御装置、通信制御方法、及びコンピュータプログラム | |
KR101263514B1 (ko) | 통신 처리 장치, 및 통신 제어 방법, 및 기록 매체 | |
JP5421346B2 (ja) | 高速チャンネル変更におけるユニキャストストリームの高速送信方法および装置 | |
US20130031219A1 (en) | Device And Method For Downloading Movie File | |
JP3806133B2 (ja) | データ伝送装置、データ伝送方法及びプログラム | |
JP2003244695A (ja) | 映像情報伝送方式、それに用いられる装置およびプログラム | |
JP3931642B2 (ja) | ストリーム配信システム、ストリーム送信装置、及び、中継装置 | |
US20030128765A1 (en) | Receiving apparatus | |
US20060161676A1 (en) | Apparatus for IP streaming capable of smoothing multimedia stream | |
JP2005322995A (ja) | リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム | |
US7720067B2 (en) | Data transfer apparatus and transfer control method | |
JP2004260668A (ja) | 動画像伝送システム、動画像送信装置、動画像中継装置、動画像受信装置、プログラム、および記録媒体 | |
JP4295079B2 (ja) | 特殊映像データ処理方法及び特殊映像データ処理装置及び特殊映像データ処理システム | |
JP2007318470A (ja) | サーバ装置、送信順序決定方法およびコンテンツ配信システム | |
US8811478B2 (en) | Data transmission method and apparatus | |
JP4999601B2 (ja) | 送信装置、及び帯域制御装置 | |
JP2009147827A (ja) | 記録装置、その制御方法、プログラム | |
JP2008085378A (ja) | 通信装置及びその制御方法、通信制御装置及びその制御方法、プログラム、記憶媒体 | |
JPH09214936A (ja) | ネットワーク動画像配信システム | |
JP3654211B2 (ja) | ストリーム配信システム | |
JP2006041819A (ja) | ストリーム配信サーバ、移動端末、ストリーム配信システム、およびストリーム配信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050607 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060828 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3931642 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100323 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120323 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120323 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140323 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |