説明

データ伝送システム及び受信装置

【課題】受信装置に入力されるパケットの入力レートが変わった時に、外部からの制御なしに、受信装置がマトリックスの対象となるパケットを受信するまでの待ち時間を自律的に変更させること。
【解決手段】受信装置は、処理の対象となるパケットの入力レートを測定し、必要なら平均化するし、測定又は平均化された結果に基づき、FECの処理マトリックスの対象となるパケットを受信するまでの待ち時間を変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信装置と、受信装置と、ネットワークとを備え、送信装置がネットワークにデータパケットとFEC(Forward Error Correction:前方向エラー訂正)用の冗長データを含むFEC用パケットとを転送し、受信装置が受信したデータパケットと前記FEC用パケットとを用いてエラー訂正を行うデータ伝送システムに関係する。
【背景技術】
【0002】
IPネットワーク網の拡大、およびQoS(Quality of Service)技術の進歩に伴い、映像、オーディオ等のリアルタイムデータをIPネットワークを通して転送する事が可能になってきている。この様なリアルタイムデータを転送する場合には、RTP(Real time Transport Protocol)を用いる事が多く、IPネットワークでのパケットロスに対するエラー訂正としてFECを用いるのが一般的である。RTPを用いたパケットフォーマット及びFECの方式についてはSMPTE(Society of Motion Picture and Television Engineers)で標準化が行われており、代表的な規格としては、TS(Transport Streams)をIPネットワーク上で伝送するためのFECの方式を定めたSMPTE 2022−1とパケットフォーマットを定めたSMPTE 2022−2がある(非特許文献1及び2を参照)。
【0003】
図4にSMPTE2022−1で規定されているFECの方式を示す。SMPTE 2022−1の方式では、送信装置がデータパケットに加えて、FECデータを含んだFECパケットを送信する。このFECパケットは送信装置が送信するデータパケットをマトリックス上に配置し、そのマトリックスの行側、列側でそれぞれ排他的論理和の演算を行うことで生成される。受信装置では送信装置が作ったのと同じマトリックスを作り、未受信のパケットがある場合、FECパケットを含めた排他的論理和演算を行側、列側で行うことにより当該未受信のパケットを再生する事ができる。エラー訂正に用いる演算が排他的論理和である以上、1つの行、1つの列に複数の未受信パケットがある場合には、エラー訂正による回復ができない場合もある。この事は行、列からなる二次元のFECではなく、行だけからなる一次元のFECを用いる場合を考慮すれば、より一層明らかである。従って、受信装置においてFECの効果を確実にするためには、マトリックスの対象となるパケットをできるだけ多く受信する必要がある。
【0004】
しかし、ネットワークでパケットロスとなったパケットを永久に待ち続ける事は無意味である。このため、受信装置は一般的にマトリックスの対象となるパケットを受信するまでの待ち時間、言い換えればその時間までに受信しなければパケットロスと判断する時間を設けている。この待ち時間は受信装置の実装によっては、受信バッファサイズ等の別のパラメータとして具現化されている事もあるが、受信装置に対してGUI等を通して外部から設定する設定情報となっているのが一般的である。
【0005】
前記の受信装置でのパケットを受信するまでの待ち時間(tとする)は、パケットの入力レートに対する関数となる。すなわち、パケットの入力レートをxメガビット/秒、パケット内のペイロード長を1400バイト固定、FECのマトリックスサイズをn行、m列とし、あらかじめ見積もっておいたネットワーク内でのパケットジッターの予測最大値を用いて、以下のように算出することができる。
FECの演算に必要なパケット数=データパケット数+FECパケット数
=n*m+(n+m) (式1)
マトリックス分のパケットを受信するのに必要な時間(マイクロ秒)=(n*m+(n+m))×1400バイト×8ビット/xメガビット (式2)
t=マトリックス分のパケットを受信するまでの時間+ネットワーク内でのパケットジッターの予測最大値 (式3)
となる。これは定性的に言えば、受信装置へのパケットの入力レートが低ければ、長い待ち時間を必要とし、受信装置へのパケットの入力レートが高ければ、短い待ち時間で良い事を意味する。従来の受信装置においては、送信装置との組み合わせでネットワーク上で一対一の専用リンクを張り使用する事が多く、この待ち時間の設定、あるいは受信バッファサイズ等の等価のパラメータは、装置の設置時にGUI等を通して外部から設定していた。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】SMPTE Standard ST 2022−1−2007, 2007年
【非特許文献2】SMPTE Standard ST 2022−2−2007, 2007年
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし近年、広域なネットワークを通して、N対Nの形態で送信装置及び受信装置を動作させたり、複数の圧縮映像を例えばDVB−ASI信号のスイッチング装置により切り替えし、ネットワークに送信したりする場合には、データパケットの送信元が変わるため、受信装置へのパケットの入力レートが変化する。
【0008】
図1はN対Nの形態で送信装置及び受信装置を動作させる伝送システムの構成例を示した図である。送信装置である動画像エンコーダー101、102はそれぞれ映像信号1011、1021をエンコードする。動画像エンコーダー101は例えばMPEG2圧縮した30MbpsのデータパケットとFECパケットとを回線103に出力する。動画像エンコーダー102は例えばJPEG2000で圧縮した300MbpsのデータパケットとFECパケットとを回線104に出力する。受信装置である動画像デコーダー105はネットワークから受信した動画像エンコーダー101及び102の送信データのうちどちらかを選び、デコードし、デコード結果の映像を例えばHD−SDIの映像信号106として出力する。受信装置がJPEG2000で圧縮した300Mbpsのデータパケットを選択した場合と、MPEG2圧縮した30Mbpsのデータパケットを選択した場合では受信装置がマトリックス分のパケットを受信するまでの時間が大きく異なるので動画像デコーダー105の設定を変える必要がある。この変更を行うには、図1内の制御システム107から動画像デコーダー105の制御を行う、あるいは動画像デコーダー105を制御する別の制御システムを設けて制御システム107と同期した制御を行う方法がある。しかし、いずれの方法も、ネットワークを渡る制御を行うため、規模が大きなシステムでは制御が複雑になるうえに、コストが増大すると言う問題点がある。
【0009】
図2は、複数の圧縮映像をDVB−ASI信号のスイッチング装置により切り替えし、ネットワークを経由して送受信をするシステムを示した図である。スイッチング装置201はDVB−ASI信号2011、2012、2013から入力される圧縮映像信号の内から制御システム202からの指示により1つを選択しDVB−ASI信号2014として出力する。DVB−ASI信号2011、2012、2013上の圧縮映像信号のレートは、図2の例ではそれぞれ30Mbps、60Mbps、100Mbpsである。送信装置203はDVB−ASI信号2014から入力された圧縮映像信号をデータパケット化し、同時にFECパケットを生成し、両方のパケットをネットワーク204に送る。受信装置205はネットワークより送信装置203が送信したパケットを受信し、FECによるエラー訂正を行ったうえ、圧縮映像信号をパケットから抜き出し、映像信号DVB−ASI信号2051として出力する。この場合、スイッチング装置201により選択された圧縮映像信号のレートに合わせて、受信装置205がマトリックス分のパケットを受信するまでの時間の設定を変える必要がある。この変更を行うには、図2内の制御システム202から受信装置205の制御を行う、あるいは受信装置205を制御する別の制御システムを設けて制御システム202と同期した制御を行う方法がある。しかし、いずれの方法も、図1の事例と同じように、ネットワークを渡る制御を行うため、規模が大きなシステムでは制御が複雑になるうえに、コストが増大すると言う問題点がある。
【課題を解決するための手段】
【0010】
本発明は、上述した問題を解決するためになされたものであり、その目的は、受信装置へのパケットの入力レートが変わった時に、外部からの制御なしに、受信装置がマトリックスの対象となるパケットを受信するまでの待ち時間を自律的に変更する方法を提供することである。
【0011】
上記課題を解決するために、本発明の受信装置は、処理の対象となるパケットの入力レートを測定し、必要なら平均化する手段と、測定し又は平均化された結果に基づき、FECの処理マトリックスの対象となるパケットを受信するまでの待ち時間を変更する手段とを有する。
【発明の効果】
【0012】
本発明によれば、受信装置へのパケットの入力レートが変わった時に、外部からの制御なしに、受信装置がマトリックスの対象となるパケットを受信するまでの待ち時間を自律的に変更することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施例を適用可能なシステム構成の一例を示す図である。
【図2】本発明の実施例を適用可能なシステム構成の一例を示す図である。
【図3】本発明の実施例のデータ伝送システムの受信装置の構成の一例を示す図である。
【図4】SMPTE2022−1のFECの方式の例を示す図である。
【図5】本発明の実施例のデータ伝送システムの受信装置内の入力レート測定回路の構成の一例を示す図である。
【図6】RTPパケットのフォーマットの一例を示す図である。
【発明を実施するための形態】
【0014】
以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれらの実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
【0015】
本実施例で適用されるデータ伝送システムの構成は、先に説明した図1に示すシステム構成であってもよいし、図2に示すシステム構成であってもよい。
【0016】
本実施例のデータ伝送システムの受信装置300の構成について、図3のブロック図を参照して説明する。本実施例の受信装置300はネットワークより例えば図6に示すフォーマットのSMPTE 2022−2に準拠したパケットを受信し、SMPTE 2022−1に準拠したエラー訂正を行い、結果の映像ストリームを映像信号DVB−ASIとして出力するものである。
【0017】
図3に示す受信装置300は、MAC回路301、バッファメモリ302、待ち時間回路303、入力レート測定回路304、FEC回路305、映像信号出力回路306より構成される。MAC回路はイーサネット(登録商標)のMAC(メディアアクセス制御)サブ層の機能を実現する回路であり、バッファメモリ302は受信したパケットを格納するバッファメモリであり、待ち時間回路303はFEC回路へのバッファメモリのデータを渡すのを待ち合わせる回路であり、FEC回路305はSMPTE 2022−1準拠のFECを行う回路であり、映像信号出力回路306はDVB−ASI信号出力用の回路である。
【0018】
次に、本実施例での受信装置のパケット受信からの一連の動作の一例を説明する。
【0019】
MAC回路301はイーサネット3011から入力されたパケットのMAC処理を行い、VLAN,宛先MACアドレスで受信すべきパケットを判断するとともに、FCSのチェック、パケット長のチェック等を行うことによりパケットの正常性チェックを行い、不当なパケットを廃棄し、正常と判断した自分宛のパケットをバッファメモリ302に書き込む。本実施例ではただ1つだけの映像データを受信装置が扱えるものとする。従って、MAC回路301はただ1つだけのRTPストリームのパケットをバッファメモリ302に書き込む。なお、バッファメモリ302に書き込まれるパケットには、図4で示すデータパケットとFEC用パケットとが含まれる。
【0020】
待ち時間回路303は待ち時間レジスタ3031を有し、バッファメモリ302にMAC回路301がパケットを書き込んだ後、待ち時間レジスタ3031で指定される時間だけ待ち合わせした後、バッファメモリ302からデータの読み出しを行い、読み出したデータをFEC回路305に渡す。
【0021】
入力レート測定回路304はMAC回路301がバッファメモリ302に書き込むデータパケットを監視し、入力パケットのレートを測り、待ち時間レジスタ3031に待ち時間を書き込むことにより、待ち時間回路303でバッファメモリ302からの読み出しを待ち合わせる時間を指定する。
【0022】
FEC回路305は待ち時間回路303より受け取ったデータを用いて、FECのマトリックスを構成し、エラー訂正処理を行い、パケットロスしたパケットを可能な範囲で回復し、結果としてのエラー回復後のデータを映像信号出力回路306に渡す。映像信号出力回路306はFEC回路305から受け取ったデータから映像ストリームを抽出し、DVB−ASI信号として出力する。
【0023】
上記述べたように、バッファメモリでの待ち時間は入力レート測定回路304での入力レートの測定により決定される。以下、入力レート測定回路の304の構成と動作について説明する。
【0024】
図5に入力レート測定回路の構成を、図6に本受信装置が扱うRTPパケットのフォーマットを示す。
【0025】
入力レート測定回路304は、MAC回路出力3011が出力するデータパケットよりRTPヘッダ内(図6の61)のタイムスタンプ(図6の63)およびシーケンス番号(図6の62)をそれぞれ抽出し保持するタイムスタンプレジスタ5011およびシーケンス番号レジスタ5012を備える。また、入力レート測定回路304は、入力レートの測定及び待ち時間の計算用にシーケンス番号オフセットレジスタ5013、シーケンス番号比較レジスタ5014、タイムスタンプ比較レジスタ5015、入力レート計算回路502および時間計算回路503を備える。
【0026】
本実施例では、シーケンス番号レジスタ5012、およびシーケンス番号オフセットレジスタ5013は受信処理の初期化処理によりあらかじめ設定されているものとするが、もちろん遠隔からの制御システムにより設定可能な別の実施例もありえる。シーケンス番号レジスタ5012、シーケンス番号オフセットレジスタ5013、およびシーケンス番号比較レジスタ5014は各々16ビットのレジスタである。
【0027】
入力レート測定回路304は、MAC回路301がバッファメモリ302に書き込んだパケットのRTPヘッダ内のシーケンス番号の下位16ビットがシーケンス番号レジスタ5012の値と一致した時、当該パケットのタイムスタンプの値をタイムスタンプレジスタ5011に保持すると同時に、当該シーケンス番号にシーケンス番号オフセットレジスタ5013の値を加えた値をシーケンス番号比較レジスタ5014に格納する。
【0028】
その後、入力レート測定回路304はシーケンス番号比較レジスタ5014の値に一致するシーケンス番号を持つパケットをMAC回路301がバッファメモリ302に書き込まないかを監視する。
【0029】
シーケンス番号比較レジスタ5014の値に一致するシーケンス番号を持つパケットをMAC回路301がバッファメモリ302に書き込んだ場合、入力レート測定回路304は当該パケットのタイムスタンプの値をタイムスタンプ比較レジスタ5015に格納し、入力レート計算回路502が入力レートの計算を下記の式で行う。なお、本実施例ではデータパケット内のペイロードのデータ長は固定で1400バイトとする。
p(測定範囲の時間で送信側が送ったパケット数)=シーケンス番号比較レジスタ5014の値―シーケンス番号レジスタ5012の値 (式4)
q(マイクロ秒:測定範囲の時間)=(タイムスタンプ比較レジスタ5015の値―タイムスタンプレジスタ5011の値)×1/タイムスタンプの周波数 (式5)
x(メガビット:入力レート)=p×1400バイト×8(バイト当りのビット数)/q (式6)
上記qはパケット到着間隔と考えることができる。なお、シーケンス番号比較レジスタ5014の値に一致するシーケンス番号を持つパケットは常に受信されるとは限らない。例えば、ネットワーク内でのパケットロスによってこのパケットが失われる可能性がある。従って、シーケンス番号比較レジスタ5014の値が更新されてから十分に大きい一定時間の間、当該レジスタの値に一致するシーケンス番号を持つパケットをMAC回路301がバッファメモリ302に書き込まなかった場合、入力レート測定回路304は当該パケットが失われたものと判断し、入力レート計算に関わる上記一連の処理を打ち切り、新しいレート計算を始めるために、MAC回路301がバッファメモリ302に書き込んだパケットのRTPヘッダ内のシーケンス番号の下位16ビットがシーケンス番号レジスタ5012の値と一致するのを待つ。RTPパケットのシーケンス番号はパケット毎に更新されるので、最大でも65,536パケット後に次のレート計算が始まる事になる。
【0030】
入力レート値の計算が完了すると、入力レート測定回路304は待ち時間計算回路503を用いて、待ち時間回路303が待ち合わせする時間を計算する。この待ち時間計算は前述の計算式に基づき行われる。すなわち、待ち時間tを求めるため、FEC回路305の処理するマトリックスサイズをn行、m列、ネットワーク内でのパケットジッターの予測最大値を50000マイクロ秒とすると、下記の計算を行う。
FECの演算に必要なパケット数=n*m+(n+m) (式1)
マトリックス分のパケットを受信するのに必要な時間(マイクロ秒)=(n*m+(n+m))×1400バイト×8ビット/xメガビット (式2)
t=マトリックス分のパケットを受信するまでの時間+50000マイクロ秒 (式7)
【0031】
待ち時間値tの計算後、入力レート測定回路303は待ち時間値tの値を、待ち時間回路303内の待ち時間レジスタ3031に書き込む。
【0032】
待ち時間回路303はバッファメモリ302にMAC回路301がパケットを書き込んだ後、待ち時間レジスタ3031で指定される時間だけ待ち合わせした後、読み出しを行いFEC回路305に読み出したパケットを転送する。これにより結果として、MAC回路301で受信したパケットは、バッファメモリ302内でt時間待ち合わせを行うこととなる。
【0033】
上記の一連の動作により、入力レート測定回路304は、MAC回路出力3011が出力するパケットを常時監視し、パケットの入力レートの変化に合わせて、バッファメモリ302内での待ち時間を変更する事を可能とする。この動きを受信装置として見てみれば、受信装置へのパケットの入力レートが変わった時に、外部からの制御なしに、受信装置がマトリックスの対象となるパケットを受信するまでの待ち時間を自律的に変更する事を可能としている。
【0034】
この実施例では示していないが、例えばバッファメモリ302の状況を受信クロック制御等のPLLに反映していて、待ち時間の急な変動が好ましくない場合には、待ち時間計算回路で求めた待ち時間を複数回分平均してから、待ち時間回路303に与える実施例もある。また、本実施例では論理回路として入力レート測定回路304を説明したが、マイクロプロセッサおよびプログラムを用いても同等の機能が実現できるのは明らかである。
【0035】
また、実施例では説明を簡便化するために、ただ1つだけの映像データを受信装置が扱えるものとして説明したが、複数の映像データを受信装置が扱える構成であってもよい。扱う映像データの数に応じてバッファメモリを増やしてもよい。
【産業上の利用可能性】
【0036】
本発明は、N対Nの形態で送信装置および受信装置を動作させたり、あるいは、複数の圧縮映像を例えばDVB−ASI信号のスイッチング装置により切り替えし、ネットワークに送信したものを受信させたりするような、受信装置へのパケットの入力レートが変化するシステムに対して、外部からの制御なしに、受信装置がFECの対象となるパケットを受信するまでの待ち時間を自律的に変更する事によりシステムの制御を簡素化できる技術として、極めて有用である。

【特許請求の範囲】
【請求項1】
ネットワークと、前記ネットワークにデータパケットを送信する送信装置と、前記ネットワークからデータパケットを受信する受信装置とからなり、前記送信装置と前記受信装置との間で、データパケット以外にFEC用の冗長データを含むFEC用パケットを転送し、前記受信装置が、受信した前記データパケットと前記FEC用パケットとを用いてエラー訂正を行うデータ伝送システムにおいて、
前記受信装置は、
前記エラー訂正を行う対象とするパケットの受信タイムアウトを監視する手段と、
前記受信するパケットのビットレートまたはパケット到着間隔を測定する手段と、
前記測定手段の測定結果を用いて前記受信タイムアウトを監視する手段のタイムアウト時間を変更する手段と
を有することを特徴とするデータ伝送システム。
【請求項2】
ネットワークを介して送信装置から送信されるデータを受信する受信装置であって
データパケットと、該パケットデータのFEC用の冗長データを有するFEC用パケットとを含むパケットを受信する受信手段と、
前記FEC用パケットを用いて前記データパケットのエラー訂正をするエラー訂正手段と、
前記エラー訂正を行う対象のパケットの待ち時間を設定する設定手段と、
前記受信したパケットを用いて該受信したパケットのビットレートを測定する測定手段と、
前記測定したビットレートに基づいて前記設定手段の設定を変更する変更手段と
を備えることを特徴とする受信装置。
【請求項3】
前記測定手段は、前記受信手段で受信するパケット内のタイムスタンプ情報を用いてパケット到着間隔を測定し、該測定したパケット到着間隔から前記ビットレートを測定することを特徴とする請求項2に記載の受信装置。
【請求項4】
前記測定手段は、前記受信手段で受信するパケット内のタイムスタンプ情報およびパケットのシーケンス番号情報を用いて前記ビットレートを測定することを特徴とする請求項2または3に記載の受信装置。
【請求項5】
前記測定手段は、複数回測定したビットレートあるいはパケット到着間隔の平均を測定結果として出力することを特徴とする請求項3に記載の受信装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−110455(P2013−110455A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−251661(P2011−251661)
【出願日】平成23年11月17日(2011.11.17)
【出願人】(599083318)株式会社メディアグローバルリンクス (12)
【Fターム(参考)】