JP4580278B2 - パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法 - Google Patents

パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法 Download PDF

Info

Publication number
JP4580278B2
JP4580278B2 JP2005148289A JP2005148289A JP4580278B2 JP 4580278 B2 JP4580278 B2 JP 4580278B2 JP 2005148289 A JP2005148289 A JP 2005148289A JP 2005148289 A JP2005148289 A JP 2005148289A JP 4580278 B2 JP4580278 B2 JP 4580278B2
Authority
JP
Japan
Prior art keywords
packet
data
packets
data packets
inspection
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
Application number
JP2005148289A
Other languages
English (en)
Other versions
JP2006325113A (ja
Inventor
浩幸 今泉
輝男 河合
秀一 青木
善明 鹿喰
欣裕 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
NHK Engineering System Inc
Original Assignee
NHK Engineering Services Inc
Japan Broadcasting Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NHK Engineering Services Inc, Japan Broadcasting Corp filed Critical NHK Engineering Services Inc
Priority to JP2005148289A priority Critical patent/JP4580278B2/ja
Publication of JP2006325113A publication Critical patent/JP2006325113A/ja
Application granted granted Critical
Publication of JP4580278B2 publication Critical patent/JP4580278B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、パケット中継装置、コンテンツ送信装置パケット中継プログラムならびにパケット中継方法に係り、特にパケットの中継または送受信に際してブロック符号化またはブロック復号化によって誤り訂正を行うためのパケット中継装置、コンテンツ送信装置パケット中継プログラムならびにパケット中継方法に関する。
一般に、音声や動画などのコンテンツをストリーミング方式で再生するときなど、リアルタイムに利用するデータをリアルタイムに転送するため、リアルタイム転送プロトコル(real-time transport protocol; RTP)が規定されている(例えば、非特許文献1参照。)。
データのリアルタイム転送では、データの受信時にエラーが見出されてもデータの再送を受ける時間的余裕がない。このため、あらかじめコンテンツを表すデータに誤り訂正符号(Error Correcting Code; ECC)を付加しておき、データの中継や伝送などによりコンテンツを表すデータの一部に誤りや損失が生じた場合、付加しておいた誤り訂正符号を用いて元のデータを再現する前方誤り訂正(Forward Error Correction; FEC)方式が知られている。この一方式として、リアルタイム転送プロトコルに用いるペイロードを、排他的論理和によるパリティによって前方誤り訂正するためのアルゴリズムが規定されている(例えば、非特許文献2参照。)。
なお、データ交換方式は、現在、回線交換方式に代わり、非回線交換方式、特にパケット交換方式が一般的になった。パケット交換方式では、データを小さく分割して宛先等を含むヘッダを付加したパケットを生成し、このパケットを用いてデータを伝送する。パケットの伝送に際しては、データ誤りによってパケット全体が使用できなくなったり、パケットが伝送中に消失または遅延したりして、パケットの損失が生じることがある。
このようにパケットの損失が生じた場合に、パリティを利用したり、誤り訂正符号を利用したりして、損失を回復することが考えられた。誤り訂正符号は、畳み込み符号とブロック符号とに分けられるが、ブロック符号は、現在のデータを用いて短時間で訂正が行えるため、前方誤り訂正に好適であり、また、ブロックごとにデータの訂正を行うので、ストリーミング再生などで発生しやすいバースト誤りに有効であるため、リアルタイム転送に広く使われている。
例えば、従来、n個のパケットをk行m列のマトリクス状に並べ、k個の水平パリティパケットおよびm個の垂直パリティパケットを生成するパリティパケットの生成方法と、ある行のパケット1個が損失した場合、この行の他のパケットおよび水平パリティパケットから損失パケットを復元し、ある列のパケット1個が損失した場合、この列の他のパケットおよび垂直パリティパケットから損失パケットを復元するパケットの復元方法とが提案されている(例えば、特許文献1参照。)。
また、従来、受信したパケットをバッファメモリに格納するとともに、これらのパケットを逐次送信し、1つの誤り訂正演算ブロックを構成するパケットの到着が完了したら、パケットの回復が可能ならば誤り訂正を行って消失したパケットを回復して、すでに送信されたパケットの後に続けて送信する中継装置が知られている(例えば、特許文献2参照。)。
特開2004−274214号公報(段落0037〜0040、図2,3) 特開2005−12753号公報(段落0082〜0084、図6) RFC3550 "RTP: A Transport Protocol for Real-Time Applications" RFC2733 "An RTP Payload Format for Generic Forward Error Correction"
しかしながら、前記従来のパリティパケットの生成方法では、マトリクスを満たす数のパケットが揃わないと、垂直パリティパケットが生成できない。また、前記従来のパケットの復元方法では、マトリクスを満たす数のパケットが揃わないと、垂直パリティパケットを利用したパケットの復元が行えないことがある。このため、マトリクスが満たされるまで待てば、送信や再生などの際に遅延が生じ、あるいは、ヌルパケットを用いてパディングすることによりマトリクスを満たせば、パケット損失に対する耐性が低下する問題点があった。
また、前記従来の中継装置では、1つの誤り訂正演算ブロックを構成するパケットが揃うまでは誤り訂正を行わず、回復したパケットは誤り訂正を行った後に送信される。このため、送信先では、この中継装置で回復したパケットの到着を待てば、中継に係る遅延が大きくなり、ヌルパケットを用いたパディングを行えば、パケット損失に対する耐性が低下する問題点があった。
本発明は、以上のような問題点を鑑みてなされたものであり、パケット損失に対する耐性を向上できるとともに、中継、送信または再生に係る遅延を小さくできるパケット中継装置、コンテンツ送信装置パケット中継プログラムならびにパケット中継方法を提供することを目的とする。
本発明は、前記目的を達成するために創案されたものであり、まず、請求項1に記載のパケット中継装置は、データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継装置において、データパケット格納手段と、検査パケット生成手段と、データパケット補填手段と、を具備した構成とした。
かかる構成によれば、パケット中継装置は、データパケット格納手段によって、当該パケット中継装置が出力するデータパケットを格納する。したがって、データパケットの出力後は、データパケット格納手段を参照し、出力したデータパケットを再度利用することとなる。
また、パケット中継装置は、検査パケット生成手段によって、所定個数ごとのデータパケットを基に検査パケットを生成する。すなわち、所定個数のデータパケットから所定個数の情報ブロックを生成してブロック符号化を行い、検査ブロックを生成して、この検査ブロックから検査パケットを生成する。これらのデータパケットおよび検査パケットは、伝送中のこれらのパケット(データパケットおよび検査パケット)に、検査パケットの個数以下の損失があったとき、誤り訂正を行って、損失パケットを回復できるものである。
また、パケット中継装置は、データパケット補填手段によって、所定個数に満たないデータパケットに対しデータパケット格納手段に格納されたデータパケットを補填して所定個数とする。こうして所定個数のデータパケットが揃うので、パケット中継装置は、検査パケット生成手段によって、パディングを行ったり、次のパケットの到着を待ったりせずに、ブロック符号化を行って検査パケットを生成する。
また、請求項2に記載のパケット中継装置は、請求項1に記載のパケット中継装置において、前記検査パケット生成手段は、新たに当該パケット中継装置へ入力された前記データパケットと前記データパケット格納手段に格納された前記データパケットとの両方を基に前記検査パケットを生成することを特徴とする。
かかる構成によれば、パケット中継装置は、検査パケット生成手段によって、新たにパケット中継装置へ入力されたデータパケットとデータパケット格納手段に格納されたデータパケットとの両方を基に検査パケットを生成する。つまり、先行する符号化に用いられたデータパケットを再使用し、新たなデータパケットと併せて符号化を行い、検査パケットを生成する。
また、請求項3に記載のコンテンツ送信装置は、請求項1または請求項2に記載のパケット中継装置と、パケット組立手段と、を具備した構成とした。
かかる構成によれば、コンテンツ送信装置は、パケット組立手段によって、コンテンツを表すコンテンツ信号が入力されるとコンテンツ信号を基にデータパケットを生成して出力する。
請求項1または請求項2に記載のパケット中継装置は、前記したように、データパケットを基に検査パケットを生成し、これらのデータパケットとともにへ出力する。
また、請求項に記載のパケット中継プログラムは、データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するために、コンピュータを、データパケット格納手段、検査パケット生成手段、データパケット補填手段、として機能させることを特徴とする。
かかる構成によれば、パケット中継プログラムは、データパケット格納手段によって、コンピュータが出力するデータパケットを格納する。したがって、データパケットの出力後であっても、データパケット格納手段を参照することによって、このデータパケットを再度利用することができる。
また、パケット中継プログラムは、検査パケット生成手段によって、所定個数ごとのデータパケットを基に検査パケットを生成する。すなわち、所定個数のデータパケットから所定個数の情報ブロックを生成してブロック符号化を行い、検査ブロックを生成して、この検査ブロックから検査パケットを生成する。これらのデータパケットおよび検査パケットは、伝送中のこれらのパケット(データパケットおよび検査パケット)に、検査パケットの個数以下の損失があったとき、誤り訂正を行って、損失パケットを回復できるものである。
また、パケット中継プログラムは、データパケット補填手段によって、所定個数に満たないデータパケットに対しデータパケット格納手段に格納されたデータパケットを補填して所定個数とする。こうして所定個数のデータパケットが揃うので、パケット中継装置は、検査パケット中継手段によって、パディングを行ったり、次のパケットの到着を待ったりせずに、ブロック符号化を行って検査パケットを生成する。
また、請求項に記載のパケット中継方法は、入力されたデータパケットを基に当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継方法において、データパケット格納ステップと、検査パケット生成ステップと、データパケット補填ステップと、を含むことを特徴とする。
この手順によれば、パケット中継方法は、データパケット格納ステップによって、当該パケット中継装置が出力するデータパケットを格納する。したがって、データパケットの出力後は、データパケット格納ステップにおいて格納したデータパケットを再度利用することとなる。
また、パケット中継方法は、検査パケット生成ステップによって、所定個数ごとのデータパケットを基に検査パケットを生成する。すなわち、所定個数のデータパケットから所定個数の情報ブロックを生成してブロック符号化を行い、検査ブロックを生成して、この検査ブロックから検査パケットを生成する。これらのデータパケットおよび検査パケットは、伝送中のこれらのパケット(データパケットおよび検査パケット)に、検査パケットの個数以下の損失があったとき、誤り訂正を行って、損失パケットを回復できるものである。
また、パケット中継方法は、データパケット補填ステップによって、所定個数に満たないデータパケットに対しデータパケット格納ステップで格納されたデータパケットを補填して所定個数とする。こうして所定個数のデータパケットが揃うので、パケット中継装置は、検査パケット生成ステップによって、パディングを行ったり、次のパケットの到着を待ったりせずに、ブロック符号化を行って検査パケットを生成する。
請求項1、請求項または請求項に記載の発明によれば、出力するデータパケットを格納しておき、所定個数のデータパケットから検査パケットを生成するとき、所定個数に満たないデータパケットに対し、格納しておいたデータパケットを用いて補填を行い、所定個数とする。このため、パディングを行ったり、次のパケットの到着を待ったりしなくても、ブロック符号化を行って検査パケットを生成できる。
また、パディングに伴うパケット損失耐性の低下を抑止するとともに、次のパケットを待つことによる遅延が生じることを防止できる。さらに、重複して符号化に用いられるデータパケットがあるため、パケット損失を回復できる確率を向上させることができる。特に、ブロック符号、例えば、リードソロモン符号や低密度パリティ検査(LDPC: Low. Density Parity Check)符号などのブロック符号では、符号語長(ブロック数)を長くすると符号化効率が高まるため、符号語長の長いブロック符号化を行う場合、前記効果を顕著に発揮できる。
請求項2に記載の発明によれば、新たに入力されたデータパケットと格納されたデータパケットとの両方を基に検査パケットを生成する。つまり、先行する符号化に用いられたデータパケットを再使用し、新たなデータパケットと併せて符号化を行い、検査パケットを生成する。このため、前後する符号化において再使用されるデータパケットが必ずあるため、損失データパケットが回復する確率を高めることができる。さらに、先行または後続するデータパケットが回復するのに伴い、後続または先行するデータパケットを回復できる確率を高めることができる。
請求項3に記載の発明によれば、コンテンツを表すコンテンツ信号が入力されるとコンテンツ信号を基にデータパケットを生成して請求項1または請求項2に記載のパケット中継装置へ出力する。このため、コンテンツを送信するに当たって、パケット損失を回復できる確率が向上し、さらに、パディングを行わなくてもすむため、パケット損失に対する耐性が低下しない。このため、送信されるコンテンツの品質を向上できる。また、次のパケットの到着を待たなくてもよいため、コンテンツ送信に係る遅延を減少できる。
次に、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。まず、図1および図2を参照して、本発明に基づくパケット中継装置100による検査パケット生成の概念について説明する。
パケット中継装置100は、データパケットを入力すると、ブロック化符号方式により検査パケットを生成して、入力したデータパケットと、生成した検査パケットとを出力する装置である。
一例として、データパケットD1,D2,…,D13,…が、この順で、パケット中継装置100に到着するものとする。これらのデータパケットD1,D2,…,D13,…は、データパケットD1〜D7、データパケットD8およびD9、ならびにデータパケットD10…が、それぞれ所定時間内に到着する。しかし、データパケットD7の到着時刻と次のデータパケットD8の到着時刻とは離隔していて、同様に、データパケットD9の到着時刻と次のデータパケットD10の到着時刻とは離隔している。
パケット中継装置100は、到着したこれらのデータパケットD1〜D13,…をk個(例えば、k=4)ずつまとめ、このk個のデータパケットの各々を基に、各々n−k個(例えば、n−k=2)の検査パケットE11およびE12、E21およびE22、…を生成し、データパケットk個および検査パケットn−k個の合計n個(例えば、n=6)のパケットを出力する。
具体的には、検査パケットの生成は、原則として次のように行う。
(1)シーケンス番号の連続するデータパケットをk個取りまとめる。
(2)取りまとめたk個のデータパケットから、ペイロードを取り出す。このとき、ペイロードのみならず、ヘッダ(RTPヘッダ)のデータのうち、必要なものを含めるようにしてもよい。
(3)これらのペイロードのうち、ビット長が異なるものがある場合、ビット長が短いペイロードに冗長ビット(pad)を付け加え、これらのペイロードのビット長を最も長いペイロードのビット長に揃えることにより、等化処理を行う。この等化処理は、例えばRFC2733に記述された方法で行えばよい。冗長ビット列には0の連続を用いるが、1の連続を用いてもよい。なお、冗長ビットを付加する前のペイロード長は、後記するヘッダ(FECヘッダ)に記述され、復号化の際に参照される。
(4)等化処理を行ったk個のペイロードをk個の情報ブロックとする。本実施形態において、符号化および訂正処理は、このブロック単位で行われる。
(5)このk個のブロックを基にブロック符号化を行い、n個のブロックからなりk個の情報ブロックを含む(n,k)符号を形成する。つまり、k個の情報ブロックからn−k個の検査ブロックを生成してこの情報ブロックに付加し、n個のブロックからなる符号とする。すなわち、符号語ブロック数はnである。ブロック符号化は、典型的にはリードソロモン符号化により行うが、ファイヤ符号化、ハミング(Hamming)符号化、サイクリック(cyclic)符号化、BCH(Bose-Chaudhuri-Hocquenghem)符号化、ゴーレイ(Golay)符号化など、他の方式により行ってもよい。
(6)生成したn−k個の検査ブロックをペイロードとし、それぞれにFECヘッダを含むヘッダを付加してn−k個の検査パケットとする。
誤り訂正に係る符号が(6,4)符号である例について説明するが、符号の構成はこれに限られるものではない。例えば、符号化効率を高める観点からは、符号長を長く設定すればよい。また、パケット損失の発生し易い低品質の回線を用いる場合は、誤り訂正能力を高める観点から、符号化率k/nを小さくし、パケット損失がほとんど発生しない高品質の回線を用いる場合は、伝送効率を高める観点から、符号化率k/nを大きくする。
図1は、本発明によるパケット中継装置100における検査パケット生成方法の第1例を示す概念図である。
この例では、所定時間内に到着し、連続したシーケンス番号を有するデータパケットをk個ずつ取りまとめ、それぞれn−k個ずつ検査パケットを生成する。そして、k個に満たないデータパケットがあるときは、すでに検査パケットの生成に用いたデータパケットを再使用することにより、k個に満たない分を補填してk個のデータパケットとし、このk個のデータパケットからn−k個の検査パケットを生成する。
具体的には、まず、4個のデータパケットD1〜D4が所定時間内に到着しているので、これらのデータパケットD1〜D4を取りまとめて、2個の検査パケットE11,E12を生成する。
続いて、データパケットD5〜D7は所定時間内に到着したが、引き続き到着するはずのデータパケットD8は所定時間内に到着しない。そこで、データパケットD5の到着後、所定時間が経過した場合は、データパケットD8の到着を待たずに、データパケットD5〜D7に対し、前回の符号化に用いたデータパケットD4を再使用して補填を行う。こうして4個のデータパケットD4〜D7を揃えて、2個の検査パケットE21,E22を生成する。なお、再使用したデータパケットD4を改めて送出することはしない。
続いて、データパケットD8,D9は所定時間内に到着したが、引き続き到着するはずのデータパケットD10,D11は、所定時間内に到着しない。そこで、データパケットD8が到着してから所定時間が経過した場合は、データパケットD10,D11の到着を待たずに、データパケットD8,D9に対し、前回の符号化に用いたデータパケットD6,D7を再使用して補填を行う。こうして4個のデータパケットD6〜D9を揃えて、2個の検査パケットE31,E32を生成する。なお、再使用したデータパケットD6,D7を改めて送出することはしない。
続いて、4個のデータパケットD10〜D13が所定時間内に到着しているので、これらのデータパケットD10〜D13を取りまとめて、2個の検査パケットE41,E42を生成する。
なお、例えばパケット中継装置100の起動時などの初期段階では、先行するデータパケットがないため、再使用すべきデータパケットが存在していなかったり、その数が補填に足りなかったりすることがある。この場合は、例えばヌルパケットなどの適切なデータを用いてパディングすることにより、k個に満たない分を補填して、検査パケットを生成する。
図2は、本発明によるパケット中継装置100における検査パケット生成方法の第2例を示す概念図である。
この例では、初期段階を除き、例えば所定時間内にk個のデータパケットが到着したときであっても、すでに符号化に用いたデータパケットを所定個再使用して合計k個のデータパケットとし、これらのデータパケットから検査パケットを生成する。つまり、1個の誤り訂正符号を形成するためのデータパケットには、所定個数の再使用データパケットが含まれていることとなる。
1回の符号化に用いる再使用データパケットの数を2とした場合について例示するが、k/2以下のほかの数としてもよい。なお、第1例は、第2例において、再使用データパケットの数を0に設定した場合と考えることもできる。損失パケットを回復できる確率を大きくする観点からは、この数を大きくする。また、重複ブロック数を増やすと、データパケットの数に対する、生成される検査パケットの数の比率が増加し、トラヒックが増大するので、伝送効率を高める観点からは、この数を小さくする。
第2例でも、第1例と同様に、所定時間内に到着したデータパケットが、所定数の再使用データパケットを加えてもk個に満たないときは、更なる再使用パケットを補填してk個のデータパケットとし、このk個のデータパケットからn−k個のデータパケットを生成する。
具体的には、まず、k個のデータパケットD1〜D4が所定時間内に到着しているので、これらのデータパケットD1〜D4を取りまとめて、2個の検査パケットE11,E12を生成する。
なお、データパケットD1,D2が所定時間内に到着した段階で、2個のヌルパケットをパディングして、2個の検査パケットE11,E12を生成するようにしてもよい。
続いて、データパケットD3,D4を再使用し、新たなデータパケットD4,D5を合わせて、検査パケットE21,E22を生成する。
続いて、同様に、データパケットD4,D5を再使用し、新たなデータパケットD6,D7を合わせて、検査パケットE31,E32を生成する。
続いて、同様に、データパケットD6,D7を再使用し、新たなデータパケットD8,D9を合わせて、検査パケットE41,E42を生成する。
続いて、同様に、データパケットD8,D9を再使用し、新たなデータパケットD10,D11を合わせて、検査パケットE51,E52を生成する。
続いて、同様に、データパケットD10,D11を再使用し、新たなデータパケットD12,D13を合わせて、検査パケットE61,E62を生成する。
次に、図3を参照し、本発明によるパケット中継装置100の構成について説明する。
図3は、本発明によるパケット中継装置100を示すブロック図である。
パケット中継装置100は、前記した検査パケット生成方法を実現する機能を有し、入力バッファ101と、検査パケット生成部102と、バックバッファ103と、パケット送信部104と、制御部105と、クロック供給部110とを含んでいる。
入力バッファ101は、パケット中継装置100へ入力されたデータパケットを記憶する緩衝記憶機能と、これらのデータパケットのヘッダ(RTPヘッダ)を読み取ってヘッダに記述されたシーケンス番号に従い並び替えて出力する順序制御機能と、入力されるデータパケットの到着時間のゆらぎを吸収し、後段の検査パケット生成部102の入力速度に合わせてデータパケットを出力する到着遅延ジッタ吸収機能とを有する。なお、入力バッファ101に記憶されたデータパケットは、入力バッファ101の記憶容量を超えないように、シーケンス番号の古い順または入力の早い順に消去される。
検査パケット生成部102は、次の機能を有する。
(1)入力バッファ101およびバックバッファ103からのデータパケット、ならびに、制御部105からのヌルパケットを受け入れる。
(2)受け入れたデータパケットおよびヌルパケットからペイロードを取り出して等化処理を施してブロックとする。
(3)これらのブロックを情報ブロックとしてブロック化符号方式により検査ブロックを生成する。
(4)生成した検査ブロックにFECヘッダを含むヘッダを付加して、検査パケットを組み立てる。なお、ヘッダ(FECヘッダ)のPadding Packet # フィールドには、この(1)〜(3)の処理に係るヌルパケットの数が記載される。
(5)受け入れたデータパケットおよび生成した検査パケットを出力する。受け入れたヌルパケットは廃棄するが、パケット送信部104において廃棄するようにしてもよい。
また、検査パケット生成部102は、符号化を行う際に再使用するデータパケットの数(重複ブロック数)が設定されている。重複ブロック数は、1回の符号化に用いるデータパケットの数の1/2以下の自然数または0を設定可能である。検査パケット生成部102は、重複ブロック数分のデータパケットとして、バックバッファ103(後記)に格納されているものを使用する。
さらに、検査パケット生成部102は、符号化を行う際にデータパケットの数が不足する場合には、バックバッファ103からのデータパケットを用いて補填し、それでもデータパケットが不足する場合には、制御部105からのヌルパケットを用いて補填を行う。
バックバッファ103は、検査パケット生成部102から出力されたデータパケットを格納し、その記憶容量を超える場合は、格納してあるデータパケットのうちシーケンス番号の古いものから廃棄する。このため、検査パケット生成部102には、常に新しいデータパケットが格納されている。バックバッファ103は、少なくとも重複ブロック数のデータパケットを格納するのに充分な記憶容量を有し、望ましくは、1回の符号化に必要な数のデータパケットを格納するのに充分な記憶容量を有する。
なお、バックバッファ103は、格納しているデータパケットと同じデータパケットが入力されたときは、格納せずに廃棄する。バックバッファ103が格納しているデータパケットは、制御部105の制御により、検査パケット生成部102で利用される。
パケット送信部104は、検査パケット生成部102から出力されたデータパケットと検査パケットとを、パケット中継装置100の外部へ出力する機能を有する。
制御部105は、次のような機能を有する。
(1)所定時間内に入力バッファ101から入力されたデータパケットの数を計数する。この数は、所定時間内に入力バッファ101から検査パケット生成部102へ送られたデータパケットの数を意味する。
(2)情報ブロック数kおよび重複ブロック数と、所定時間内に入力されたデータパケットの数とを参照し、検査パケット生成部102において符号化に足りないデータパケットの数を判定する。
(3)(a)符号化に足りないデータパケットがあると判定されたときは、バックバッファ103を探索して格納されているデータパケットの数を得るとともに、バックバッファ103を制御して、符号化に足りない分のデータパケットを検査パケット生成部102へ出力させる。
(b)それでもデータパケットの数が符号化に足りないときは、適切な補填データ、典型的にはヌルパケットを生成し、検査パケット生成部102へ出力して、パディングを行わせる。
クロック供給部110は、発振器(図示せず)を含み、パケット中継装置100内の各部へクロック信号を供給する。
図4は、制御部105を詳細に示すブロック図である。
制御部105は、パケットカウンタ121と、タイマ122と、情報ブロック数記憶部123と、重複ブロック数記憶部124と、判定部125と、データパケット探索部126と、ヌルパケット生成部127とを含んでいる。
パケットカウンタ121は、入力バッファ101(図3参照)から入力されたデータパケットを計数し、計数値データを判定部125へ出力する。この数は、検査パケット生成部102へ入力されたデータパケットの数を意味する。
タイマ122は、判定部125の制御により、検査パケット生成部102(図3参照)における符号化で用いられる最初のデータパケットの到着から、所定時間に達するまでを計時し、計時信号を判定部125へ出力する。
情報ブロック数記憶部123は、誤り訂正に係る1個の符号に含まれる情報ブロックの数kを書き換え可能に記憶している。この数は、1回の符号化に用いられるデータパケットの数を意味する。
重複ブロック数記憶部124は、1個の誤り訂正に係る符号について、先行する符号化に用いたブロックの個数のうち、後続する符号化において再度使用するブロックの個数、すなわち、重複ブロック数を書き換え可能に記憶している。
判定部125は、タイマ122およびパケットカウンタ121を参照して、所定時間内に検査パケット生成部102(図3参照)へ入力されたデータパケットの数(入力データパケット数)を検出する。そして、情報ブロック数記憶部123に記憶された情報ブロック数から、重複ブロック数記憶部124に記憶された重複ブロック数を減算した数(新規データパケット数)を演算する。そして、入力データパケット数を新規データパケット数で除算し、剰余を求める。なお、除算値は、所定時間内に入力されたデータパケットによって検査パケット生成部102(図3参照)によって行われる符号化の回数を意味し、剰余は、この符号化には足りなかったデータパケットの個数を意味する。
そこで、剰余がない場合は、データパケットを補填する必要がないので、判定部125は、この処理を終了し、次の所定時間内について、再度同様に処理を繰り返す。剰余がある場合には、この剰余を情報ブロック数から減算して、補填データパケット数を求め、このデータをデータパケット探索部126へ出力する。
データパケット探索部126は、判定部125から受信した補填データパケット数のデータを基に、バックバッファ103を探索し、補填データパケット数のデータパケットをバックバッファ103から検査パケット生成部102へ出力させる。バックバッファ103を探索した結果、補填データパケット数に満たない数のデータパケットしかなかった場合、バックバッファ103からすべてのデータパケットを検査パケット生成部102へ出力させるとともに、補填データパケット数に不足する数のデータを、判定部125へ出力する。
判定部125は、データパケット探索部126から補填データパケット数に不足する数のデータを入力されたときは、このデータをヌルパケット生成部127へ出力する。
ヌルパケット生成部127は、判定部125から入力されたデータを基に、補填データパケット数に不足する数のヌルパケットを生成し、検査パケット生成部102へ出力する。
図5は、パケット中継装置100へ入力されるデータパケットD1〜Dk、および、これらのデータパケットD1〜Dkを基にパケット中継装置100で生成される検査パケットE1〜En−kのデータグラムの一例を示す模式図である。
音声や動画などを表す伝送データを分割し、RFC1889/1890に規定するRTP2(Real Time Transport Protocol Version 2)プロトコルによりネットワーク上を伝送するものとし、このネットワークについて、トランスポート層(OSI参照モデルの第4層)のプロトコルはRFC768に規定するUDP(User Datagram Protocol)、ネットワーク層(OSI参照モデルの第3層)のプロトコルはRFC791に規定するIP(Internet Protocol)を利用する場合について説明するが、データのリアルタイム転送を行うためのプロトコルであれば、他のプロトコルを利用するようにしてもよい。
この例では、k個のデータパケットD1〜Dkは、それぞれ、前記伝送データを分割したデータを含むRTPペイロードフィールドF1に、RTPヘッダフィールドF2、UDPヘッダフィールドF3、IPヘッダフィールドF4を付加した構造を持つ。
また、n−k個の検査パケットE1〜En−kは、FECペイロードフィールドG1に、FECヘッダフィールドG2、RTPヘッダフィールドG3、UDPヘッダフィールドG4、IPヘッダフィールドG5を付加した構造を持つ。
検査パケットE1〜En−kのn−k個のFECペイロードは、データパケットD1〜Dkのk個のRTPペイロードからk個の情報ブロックを形成し、例えばリードソロモン符号化方式などにより、これらの情報ブロックを基に、符号長nブロックのブロック符号化を行って生成したn−k個の検査ブロックからなる。
図6は、検査パケットE1〜Ek−1のFECヘッダ部分のデータグラムの一例を示す模式図である。
(1)SN base H1は、検査パケットE1〜Ek−1の生成に用いた最初のデータパケットD1〜Dkのシーケンス番号を示す。
(2)length recovery H2は、検査パケットE1〜Ek−1の生成に用いたデータパケットD1〜Dkの検査情報を示す。
(3)HP bit H3は、1ビットであり、RTPヘッダ中のP,X,CC,M(いずれも図示せず)の7ビットと合わせて、これらの検査情報を格納する。
(4)PT recovery H4は、検査パケットE1〜En−kの生成に用いたデータパケットD1〜DkのPT(図示せず)の検査情報を示す。
(5)FEC Type H5は、7ビットであり、誤り訂正に係る符号(n,k)のn,kの組み合わせを特定する。
(6)FEC Sequence H6は、8ビットであり、1〜(n−k)のうちの何番目の検査パケットE1〜En−kかを示す。
(7)Padding Packet # H7は、8ビットであり、FEC Typeで規定されたk個分のデータパケットD1〜Dkが足りないために、パディングされたヌルパケットの数を示す。
(8)TS recovery H8は、データパケットD1〜Dkのタイムスタンプの検査情報を示す。
次に、図7を参照(適宜、図3、図4を参照)し、パケット中継装置100の動作を説明する。
図7は、パケット中継装置100の動作を示すフローチャートである。
まず、パケット中継装置100は、所定時間内にデータパケットがk個揃ったか否かを判断する(ステップS101)。
揃った場合には(ステップS101のYes)、等化処理(ステップS105)へ進む。
揃わなかった場合には(ステップS201のNo)、バックバッファ103から、k個に不足する数のデータパケットを補填する(ステップS102)。
そして、バックバッファ103からの補填により、データパケットがk個揃ったか否かを判断する(ステップS103)。
揃った場合には(ステップS103のYes)、等化処理(ステップS205)へ進む。
揃わなかった場合には(ステップS103のNo)、ヌルパケットでパディングを行い(ステップS104)、k個のパケットとする。
前記したいずれかの手順でデータパケット等(データパケットとヌルパケット)がk個揃ったら、これらのデータパケット等のペイロードに等化処理を施し(ステップS105)、各ペイロードのビット長を最も長いペイロードのビット長に揃える。
このように等化処理を施したペイロードを情報ブロックとして、ブロック符号化を行い、検査ブロックを生成する(ステップS106)。
そして、生成した検査ブロックをペイロードとし、FECヘッダを含むヘッダを付加して、検査パケットを生成する(ステップS107)。
最後に、入力されたデータパケットと、生成した検査パケットとを出力し(ステップS108)、最初(ステップS101)に戻って処理を繰り返す。
さらに、図8を参照(適宜、図3を参照)し、バックバッファ103の動作を説明する。
図8は、バックバッファ103の動作を示すフローチャートである。
まず、バックバッファ103は、データパケットが入力されたか否かを判断する(ステップS201)。
バックバッファ103は、データパケットが入力されたとき(ステップS201のYes)、入力されたデータパケットがすでに格納してあるデータパケットと重複するか否かを判断する(ステップS211)。
入力されたデータパケットがすでに格納してあるデータパケットと重複するとき(ステップS211のYes)、このデータパケットは重複しているので廃棄し、最初に戻って処理を繰り返す。
入力されたデータパケットがすでに格納してあるデータパケットと重複しないとき、バックバッファ103に記憶されているデータパケットのうち、最も古いデータパケットを廃棄し(ステップS212)、記憶域を確保する。
そして、バックバッファ103は、この新たに入力されたデータパケットを格納し(ステップS213)、最初に戻って処理を繰り返す。
バックバッファ103は、データパケットが入力されなかったとき(ステップS201のNo)、制御部105からのデータパケットの探索要求があったか否かを判断する(ステップS221)。
制御部105からのデータパケットの探索要求がなかったとき(ステップS221のNo)、最初に戻って処理を繰り返す。
制御部105からのデータパケットの探索要求があったとき(ステップS221のYes)、バックバッファ103にデータパケットが格納されているか否かを判断する(ステップS222)。
バックバッファ103にデータパケットが格納されていないとき(ステップS222のNo)、最初に戻って処理を繰り返す。
バックバッファ103にデータパケットが格納されていないとき(ステップS222のYes)、バックバッファ103は、格納されているデータパケットを、検査パケット生成部102へ出力し(ステップS223)、最初に戻って処理を繰り返す。なお、このとき、バックバッファ103は、出力したデータパケットの数を制御部105へ通知する。
次に、本発明による別のパケット中継装置300の構成および動作について説明する。
図9は、本発明による別のパケット中継装置300を示すブロック図である。
このパケット中継装置300は、前記したパケット中継装置100と入出力が逆となるものであって、データパケット、および、これらのデータパケットの誤りを訂正するための検査パケットが入力されると、検査パケットは出力せずデータパケットを出力する。さらに、パケット中継装置300は、入力されたデータパケットおよび検査パケットのうち損失したものがある場合は、損失しなかったデータパケットおよび検査パケットを用いて損失パケットを回復し、回復したデータパケットを含むデータパケットを出力する。
パケット中継装置300は、入力バッファ301と、バックバッファ303と、パケット送信部304と、制御部305と、誤り訂正部306とを具備している。パケット中継装置300は、パケット中継装置100から出力され、ネットワークを介して伝送されたデータパケットおよび検査パケットを入力して、データパケットを出力させるのに好適である。
入力バッファ301は、パケット中継装置300へ入力されたデータパケットおよび検査パケットを格納する緩衝記憶機能と、これらのデータパケットおよび検査パケットのヘッダ(RTPヘッダ)を読み取ってヘッダに記述されたリアルタイム転送に係るシーケンス番号に従い並び替えて出力する順序制御機能と、入力されるデータパケットおよび検査パケットの到着時間のゆらぎを吸収し、後段の制御部305の入力速度に合わせてデータパケットおよび検査パケットを出力する到着遅延ジッタ吸収機能とを有する。なお、入力バッファ101に記憶されたデータパケットおよび検査パケットは、入力バッファ101の記憶容量を超えないように、シーケンス番号の古い順に消去される。
制御部305は、次の機能を有する。
(1)入力バッファ301からパケットを受け入れる。
(2)データパケットのヘッダ(RTPヘッダ)のシーケンス番号を読み取るなどにより、1個の(n,k)符号を形成するためのパケット(データパケットおよび検査パケット)のうち、損失したパケットの数を検出する。
(3)(a)1個の(n,k)符号について、損失したパケットがないときは、これらのパケットをバックバッファ303およびパケット送信部304へ出力する。
(b)1個の(n,k)符号について、n−k個以下のパケットが損失したときは、損失したパケットの回復が可能であると判断し、1個の(n,k)符号を形成するためのパケット(損失したパケットを除く。)を誤り訂正部306へ出力する。なお、このとき、検査パケットのヘッダ(FECヘッダ)のPadding Packet #フィールドを読み取り、検査パケット生成の際に補填された個数のヌルパケットを生成して、ともに誤り訂正部306へ出力する。
(c)1個の(n,k)符号について、n−k個を超えるパケットが損失したときは、損失したパケットの回復が不可能であると判断し、1個の(n,k)符号を形成するためのパケット(損失したパケットを除く。)をパケット送信部304へ出力する。
(d)ただし、回復が不可能であると判断されたパケットに係る(n,k)符号に関し、この(n,k)符号に先行または後続する(n,k)符号に係るパケットが回復されたときは、この回復が不可能であると判断されたパケットについて、再度回復が可能かどうか判断する。そして、回復が可能と判断したならば、この(n,k)符号に係るパケットを誤り訂正部306へ出力する。
バックバッファ303は、制御部305および誤り訂正部306から出力されたパケット(データパケットおよび検査パケット)を格納し、その記憶容量を超える場合は、格納してあるパケットのうちシーケンス番号の古いものから廃棄する。このため、バックバッファ303には、常に新しいパケットが格納されている。バックバッファ303は、1個の(n,k)符号を形成するためのパケットを格納するのに充分な記憶容量を有する。
バックバッファ303の動作は、原則として、前記したバックバッファ103と同様である。
なお、バックバッファ303は、格納しているパケットと重複するパケットが入力されたときは、格納せずに廃棄する。バックバッファ303が格納しているパケットは、誤り訂正部306で利用される。
誤り訂正部306は、制御部305から、1個の(n,k)符号を形成するためのパケット(損失したパケットを除く。)が入力されると、ブロック復号化を行って、損失したパケットのペイロード(ヘッダの一部が含まれていてもよい。)を回復し、ヘッダを付加して、損失したパケットを組み立て、入力されたパケットとともにバックバッファ303およびパケット送信部304へ出力する。
なお、送信側(図示せず)において、データパケットのうちの所定のものを複数回用いてブロック符号化を行って検査パケットを生成し、これらのデータパケットと生成した検査パケットとが、パケット中継装置300へ入力される場合、例えば、パケット中継装置100の出力が、ネットワークや伝送路を経由して、パケット中継装置300へ入力されているような場合、ネットワークや伝送路で損失したパケットを回復できる確率が高まる。つまり、1個の(n,k)符号について、n−k個を超えるパケットが損失したときでも、他の(n,k)符号を形成するためのパケットが回復され、このパケットが送信側で検査パケットを生成するためのブロック符号化に複数回用いられたものであれば、この(n,k)符号の損失パケット数がn−k以下になることがある。このような場合、誤り訂正部306は、バックバッファ303から前記したパケットを読み出し、ブロック符号化方式に従って、損失したパケットを回復する。
パケット送信部304は、制御部305および誤り訂正部306からデータパケットおよび検査パケットを入力されると、ヌルパケットおよび検査パケットは出力せず、データパケットをシーケンス番号に従って出力する機能を有する。
図10は、制御部305を詳細に示すブロック図である。
制御部305は、許容遅延記憶部321と、タイマ322と、損失パケット検出部323と、再帰カウンタ324と、再帰フラグ保持部325と、パケット探索部327とを含んでいる。
許容遅延記憶部321は、許容遅延時間値を記憶している。
タイマ322は、許容遅延記憶部321から許容遅延時間値を読み取るとともに、損失パケット検出部323からパケットの損失を検出したタイミングを供給され、そのときから計時して許容遅延時間後となるタイミングを、損失パケット検出部323へ供給する。
損失パケット検出部323は、入力されたパケットを損失パケット回復可否判定部326へ出力し、また、入力バッファ301(図9参照)から入力されたパケットのヘッダ(RTPヘッダ)のシーケンス番号を読み取り、損失を検出したタイミングをタイマ322へ供給するとともに、1個の(n,k)符号における損失個数(許容遅延時間内に到着しないものを含む。)のデータを、損失パケット回復可否判定部326へ出力する。
再帰カウンタ324は、再帰数を、書き換え可能に記憶している。再帰数の初期値は0である。
再帰フラグ保持部325は、1ビット(1または0)からなる再帰フラグの値を、書き換え可能に保持している。再帰フラグの初期値は0である。
損失パケット回復可否判定部326は、次の動作を行う。
(1)損失パケットがなければ、入力されたパケットを、パケット送信部304およびバックバッファ303(図9参照)へ出力する。
(2)1個の(n,k)符号における損失個数がn−k以下であり、損失パケットの回復が可能であれば、この(n,k)符号の残りのパケットを誤り訂正部306へ出力する。なお、このとき、検査パケットのヘッダ(FECヘッダ)のPadding Packet #フィールドを読み取り、検査パケット生成の際に補填された個数のヌルパケットを生成して、ともに誤り訂正部306へ出力する。
(3)後続する(n,k)符号の損失パケットが回復した場合、再帰カウンタ324および再帰フラグ保持部325を利用して再帰処理を行い、先行する(n,k)符号の損失パケットの回復が可能か否か再判断し、回復可能であれば、先行する(n,k)符号の損失していないパケット(後続する(n,k)符号において回復したパケットを含む。)を誤り訂正部306へ送る。
または、先行する(n,k)符号の損失パケットが回復した場合、再帰カウンタ324および再帰フラグ保持部325を利用して再帰処理を行い、後続する(n,k)符号の損失パケットの回復が可能か否か再判断し、回復可能であれば、後続する(n,k)符号の損失していないパケット(先行する(n,k)符号において回復したパケットを含む。)を誤り訂正部306へ送る。
(4)なお、これらの処理は、許容遅延時間内になされない場合は、回復不可と判断し、入力されたパケットは、そのままパケット送信部304およびバックバッファ303へ出力する。
パケット探索部327は、損失パケット回復可否判定部326の判定により先行するパケットが必要になったときは、バックバッファ303(図9参照)から、これらのパケットを読み出して、損失パケット回復可否判定部326へ出力する。
図11は、後続する(n,k)符号のパケットから誤り訂正を行う方法を示す概念図である。n=6、k=4である場合を例示するが、n,kはこれに限られるものではない。データパケットD1〜D13,…は、この順番で到着するものとする。
1番目に、D13〜D10,E41,E42(損失したものを除く。)を用いて、このうち損失したパケットが2個以内であれば誤り訂正を行い、損失したパケットを回復する。
2番目に、D9〜D6,E31,E32(損失したものを除く。)を用いて、このうち損失したパケットが2個以内であれば誤り訂正を行い、損失したパケットを回復する。
3番目に、D7〜D4,E21,E22(損失したものを除く。)を用いて、損失したパケットが2個以内であれば誤り訂正を行い、損失したパケットを回復する。
ここでもし、2番目の処理で、D7,D6を含む2個を超えるパケットが損失したために、パケットの回復が不可能であっても、3番目の処理でD7,D6が回復した場合は、2番目の処理に戻って、損失したパケットの回復が可能になる場合が生ずる。
4番目に、D4〜D1,E11,E12(損失したものを除く。)を用いて、損失したパケットが2個以内であれば誤り訂正を行い、損失したパケットを回復する。
ここでもし、3番目の処理で、D4を含む2個を超えるパケットが損失したために、パケットの回復が不可能であっても、3番目の処理でD4が回復した場合は、3番目の処理に戻って、損失したパケットの回復が可能になる場合が生ずる。
この場合、3番目の処理でパケットが回復された場合、さらに2番目の処理に戻って、パケットの回復が可能になる場合が生ずる。
次に、図12を参照して(適宜、図9,図10も参照して)、パケット中継装置300の動作について説明する。
図12は、パケット中継装置300の動作を示すフローチャートである。
まず、パケット中継装置300の起動後、再帰カウンタ324(図10参照)が保持している再帰数に0を代入する(ステップS301)。
続いて、再帰フラグ保持部325が保持している再帰フラグの値を0にする(ステップS303)。
そして、制御部305の損失パケット検出部323は、1個の(n,k)符号中の損失したデータパケットの数を検出する(ステップS303)。
損失パケット回復可否判定部326は、損失したデータパケットがないときは(ステップS303のNo)、再帰数が0か否かを判断する(ステップS311)。
再帰数が0ならば(ステップS311のYes)、パケット送信部304(図9参照)により、データパケットを出力する。
続いて、損失パケット回復可否判定部326(図10参照)は、再帰フラグ保持部325(図10参照)に保持されている再帰フラグの値を0にする(ステップS313)。
続いて、次の符号の処理へ移り(ステップS314)、初期設定(ステップS301,S302)以降の処理を繰り返す。
再帰数が1ならば(ステップS311のNo)、損失パケット回復可否判定部326(図10参照)は、再帰カウンタ324(図10参照)に保持されている再帰数に1をデクリメントする(ステップS315)。
続いて、損失パケット回復可否判定部326(図10参照)は、再帰フラグ保持部325(図10参照)に保持されている再帰フラグの値を1にする(ステップS316)。
続いて、次の符号の処理へ移り(ステップS317)、初期設定(ステップS301,S302)以降の処理を繰り返す。
損失パケット回復可否判定部326は、損失したデータパケットがあるときは(ステップS303のYes)、このパケットに係る(n,k)符号内で損失したパケットが回復可能か否かを判断する(ステップS304)
損失したデータパケットの数がn−k以下であれば、この(n,k)符号内で、損失したデータパケットが回復可能であると判断し(ステップS304のYes)、誤り訂正処理を行って(ステップS305)、前記ステップS311以降の処理を行う。
損失したデータパケットの数がn−kを超えるときは、この(n,k)符号内で、損失したデータパケットが回復不可能であると判断し(ステップS304のNo)、再帰フラグが1か否かを判定する(ステップS306)。
再帰フラグが1ならば(ステップS306のYes)、前記ステップS311以降の処理を行う。
再帰フラグが1でないならば(ステップS306のNo)、許容遅延時間内か否かを判断する(ステップS307)。
許容遅延時間を超えているとき(ステップS307のNo)、前記ステップS311以降の処理を行う。
許容遅延時間内であるとき(ステップS307のYes)、再帰数に1をインクリメントする(ステップS321)。
続いて、次の符号の処理へ移り(ステップS322)、初期設定(ステップS301,S302)以降の処理を繰り返す。
次に、図13を参照し、本発明によるコンテンツ送信装置400の構成について説明する。
図13は、本発明によるコンテンツ送信装置400を示すブロック図である。
コンテンツ送信装置400は、音声または動画あるいはこれらの組み合わせなどを表すコンテンツ信号を入力すると、コンテンツを表すデータパケットと、これらのデータパケットの誤り訂正を行うための検査パケットを出力する機能を有し、原則として、前記したパケット中継装置100にコンテンツ信号を符号化するための機構を前置した構成を有する。
コンテンツ送信装置400は、符号化部411と、RTPヘッダ・ペイロード生成部412と、検査パケットペイロード生成部402と、バックバッファ403と、IPパケット形成・送信部404と、制御部405と、クロック供給部410とを含んでいる。
符号化部411は、コンテンツ信号を、例えばISOのMPEGの各フェーズにおいて策定された方法、または、ITU勧告G.729において規定された方法などによって符号化を行った符号や、入力された音声を認識した音声合成を行うためのテキストスクリプト、あるいは、これらを多重化したデータストリームを出力する機能を有する。
RTPヘッダ・ペイロード生成部412は、符号化部411が出力したデータを、例えばRFC2250に規定されるRTPペイロードに分割し、これらにタイムスタンプやシーケンス番号などを含むRTPヘッダを付加して出力する。
検査パケットペイロード生成部402は、RTPペイロードを基に、ブロック符号化を行って、RTPヘッダ、FECヘッダ、FECペイロード(検査ブロック)を生成して連結し、RTPヘッダを付加したRTPペイロードとともに出力する。
バックバッファ403は、RTPヘッダを付加したRTPペイロードを格納し、制御部405の制御に応じて出力する機能を有する。制御部405の動作は、前記制御部105の動作とほぼ同様である。
IPパケット形成・送信部404は、RTPヘッダ、FECヘッダ、FECペイロード(検査ブロック)を連結したものと、RTPヘッダを付加したRTPペイロードとに、UDPヘッダおよびIPヘッダを付加して、IPパケットを形成し、出力する機能を有する。
クロック供給部410は、前記クロック供給部110と同様の構成である。
次に、図14を参照し、本発明によるコンテンツ再生装置500の構成について説明する。
図14は、本発明によるコンテンツ再生装置500を示すブロック図である。
コンテンツ再生装置500は、コンテンツを表すデータパケットと、これらのデータパケットの誤り訂正を行うための検査パケットを入力すると、音声または動画あるいはこれらの組み合わせなどを表すコンテンツ信号を生成して、コンテンツを再生する機能を有する。コンテンツ再生装置500は、原則として、前記したパケット中継装置300に、データパケットを復号してコンテンツ信号を生成する機構と、このコンテンツ信号によってコンテンツを再生する機構を付加したものである。
クロック供給部510は、クロック供給部310と、入力バッファ501は入力バッファ301と、バックバッファ503はバックバッファ303と、制御部505は、制御部305と、誤り訂正部506は、誤り訂正部306と、それぞれ同様の構成でよい。
復号化部504は、制御部505および誤り訂正部506から出力されるデータパケットを復号化して、データストリームまたはアナログ信号として出力する機能を有する。
再生装置は、復号化部504から入力されたデータストリームまたはアナログ信号を基に、音声や動画などのコンテンツを再生する機能を有する。
次に、図15および図16を参照して、検査パケット生成方法の比較例の概念について説明する。これらの比較例において、データパケットは、前記した第1例および第2例と同様に到着するものとする。
図15は、検査パケット生成方法の第1比較例を示す概念図である。
この第1比較例では、所定時間内に到着し、連続したシーケンス番号を有するデータパケットをk個ずつ取りまとめ、それぞれn−k個ずつ検査パケットを生成する。そして、k個に満たないデータパケットがあるときは、不足分をヌルパケットP0で補填して(パディングを行って)k個のデータパケットとし、これらのk個のデータパケットからn−k個の検査パケットを生成する。
具体的には、まず、4個のデータパケットD1〜D4が所定時間内に到着しているので、これらのデータパケットD1〜D4を取りまとめて、2個の検査パケットE11,E12を生成する。
続いて、データパケットD5〜D7は所定時間内に到着したが、引き続き到着するはずのデータパケットD8は所定時間内に到着しない。そこで、データパケットD5の到着後、所定時間が経過した場合は、データパケットD8の到着を待たずに、データパケットD5〜D7に対し、1個のヌルパケットP0をパディングして4個のデータパケットとし、2個の検査パケットE21,E22を生成する。
続いて、データパケットD8,D9は所定時間内に到着したが、引き続き到着するはずのデータパケットD10,D11は所定時間内に到着しない。そこで、データパケットD8の到着後、所定時間が経過した場合は、データパケットD10,D11の到着を待たずに、データパケットD8,D9に対し、2個のヌルパケットP0をパディングして4個のデータパケットとし、2個の検査パケットE31,E32を生成する。
続いて、4個のデータパケットD10〜D13が所定時間内に到着しているので、これらのデータパケットD10〜D13を取りまとめて、2個の検査パケットE41,E42を生成する。
この第1比較例では、データパケットが(n,k)ブロック符号化に際して不足するときは、ヌルパケットによってパディングを行うので、損失パケット耐性が低下することが分かる。
図16は、検査パケット生成方法の第2比較例を示す概念図である。
この第2比較例では、第1比較例と同様に、所定時間内に到着し、連続したシーケンス番号を有するデータパケットをk個ずつ取りまとめ、それぞれn−k個ずつ検査パケットを生成する。ただし、k個に満たないデータパケットがあるときは、データパケットがk個揃うのを待って、これらのk個のデータパケットからn−k個の検査パケットを生成する。
具体的には、まず、4個のデータパケットD1〜D4が到着したので、これらのデータパケットD1〜D4を取りまとめて、2個の検査パケットE11,E12を生成する。
続いて、データパケットD5〜D7は所定時間内に到着したが、データパケットD8は所定時間内に到着しない。そこで、引き続きデータパケットD8の到着を待ち、4個のデータパケットD5〜D8が揃ってから、2個の検査パケットE21,E22を生成する。
続いて、データパケットD9は到着しているが、データパケットD10,D11,D12は所定時間内に到着しない。そこで、引き続きデータパケットD10,D11,D12の到着を待ち、4個のデータパケットD9〜D12が揃ってから、2個の検査パケットE31,E32を生成する。
第2比較例では、検査パケットを生成するために、符号化に要する数のデータパケットが揃うまで待つので、遅延が大きくなることが分かる。
本実施形態のパケット中継装置100、300、コンテンツ送信装置400およびコンテンツ再生装置500によれば、次の効果が得られる。
(1)初期段階を除き、ヌルパケットによるパディングを行わないので、パケット損失に対する耐性が低下しない。
(2)ブロック符号化により検査パケットを生成する際に、再使用されるデータパケットがあるので、誤り訂正を行ってパケットの回復が行える確率が向上する。
(3)所定時間を超えてパケットの到着を待たないので、中継、送信、再生に係る遅延が減少する。
本発明によるパケット中継装置における検査パケット生成方法の第1例を示す概念図である。 本発明によるパケット中継装置における検査パケット生成方法の第2例を示す概念図である。 本発明によるパケット中継装置を示すブロック図である。 制御部を詳細に示すブロック図である。 パケット中継装置へ入力されるデータパケット、および、これらのデータパケットを基にパケット中継装置で生成される検査パケットのデータグラムの一例を示す模式図である。 検査パケットのFECヘッダ部分のデータグラムの一例を示す模式図である。 パケット中継装置の動作を示すフローチャートである。 バックバッファの動作を示すフローチャートである。 本発明による別のパケット中継装置を示すブロック図である。 制御部を詳細に示すブロック図である。 後続する(n,k)符号のパケットから誤り訂正を行う方法を示す概念図である。 本発明による別のパケット中継装置の動作を示すフローチャートである。 本発明によるコンテンツ送信装置を示すブロック図である。 本発明によるコンテンツ再生装置を示すブロック図である。 検査パケット生成方法の第1比較例を示す概念図である。 検査パケット生成方法の第2比較例を示す概念図である。
符号の説明
D1〜D13 データパケット
E11〜E61 検査パケット
P0 ヌルパケット
100,300 パケット中継装置
101,301,501 入力バッファ
102 検査パケット生成部(検査パケット生成手段)
103,303,403,503 バックバッファ(データパケット格納手段)
104,304 パケット送信部
105,305,405,505 制御部(データパケット補填手段)
110,310,410,510 クロック供給部
121 パケットカウンタ
122,322 タイマ
123 情報ブロック数記憶部
124 重複ブロック数記憶部
125 判定部
126 データパケット探索部
127 ヌルパケット生成部
306,506 誤り訂正部(誤り訂正手段、第1の再訂正手段、第2の再訂正手段)
321 許容遅延記憶部
323 損失パケット検出部
324 再帰カウンタ
325 再帰フラグ保持部
326 損失パケット回復可否判定部
327 パケット探索部(第1の再訂正手段、第2の再訂正手段)
400 コンテンツ送信装置
500 コンテンツ再生装置

Claims (5)

  1. データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継装置において、
    当該パケット中継装置が出力する前記データパケットを格納するデータパケット格納手段と、
    所定個数ごとの前記データパケットを基に前記検査パケットを生成する検査パケット生成手段と、
    前記所定個数に満たない前記データパケットに対し前記データパケット格納手段に格納された前記データパケットを補填して前記所定個数とするデータパケット補填手段と、
    を具備したことを特徴とするパケット中継装置。
  2. 前記検査パケット生成手段は、新たに当該パケット中継装置へ入力された前記データパケットと前記データパケット格納手段に格納された前記データパケットとの両方を基に前記検査パケットを生成することを特徴とする請求項1に記載のパケット中継装置。
  3. 請求項1または請求項2に記載のパケット中継装置と、
    コンテンツを表すコンテンツ信号が入力されると該コンテンツ信号を基にデータパケットを生成して前記パケット中継装置へ出力するパケット組立手段と、
    を具備したことを特徴とするコンテンツ送信装置。
  4. データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するために、コンピュータを、
    当該コンピュータが出力する前記データパケットを格納するデータパケット格納手段、
    所定個数ごとの前記データパケットを基に前記検査パケットを生成する検査パケット生成手段、
    前記所定個数に満たない前記データパケットに対し前記データパケット格納手段に格納された前記データパケットを補填して前記所定個数とするデータパケット補填手段、
    として機能させることを特徴とするパケット中継プログラム。
  5. 入力されたデータパケットを基に当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継方法において、
    出力する前記データパケットを格納するデータパケット格納ステップと、
    所定個数ごとの前記データパケットを基に前記検査パケットを生成する検査パケット生成ステップと、
    前記所定個数に満たない前記データパケットに対し前記データパケット格納ステップにおいて格納された前記データパケットを補填して前記所定個数とするデータパケット補填ステップと、
    を含むことを特徴とするパケット中継方法。
JP2005148289A 2005-05-20 2005-05-20 パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法 Expired - Fee Related JP4580278B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005148289A JP4580278B2 (ja) 2005-05-20 2005-05-20 パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005148289A JP4580278B2 (ja) 2005-05-20 2005-05-20 パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法

Publications (2)

Publication Number Publication Date
JP2006325113A JP2006325113A (ja) 2006-11-30
JP4580278B2 true JP4580278B2 (ja) 2010-11-10

Family

ID=37544423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005148289A Expired - Fee Related JP4580278B2 (ja) 2005-05-20 2005-05-20 パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法

Country Status (1)

Country Link
JP (1) JP4580278B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990663B2 (en) 2006-12-21 2015-03-24 Thomson Licensing Method to support forward error correction for real-time audio and video data over internet protocol networks
JPWO2008139882A1 (ja) * 2007-05-08 2010-07-29 日本電気株式会社 通信システムおよび通信方法、並びに、プログラム
EP2019522B1 (en) * 2007-07-23 2018-08-15 Polycom, Inc. Apparatus and method for lost packet recovery with congestion avoidance
JP2009118244A (ja) * 2007-11-07 2009-05-28 Internatl Business Mach Corp <Ibm> 再生単位が可変のデータを送信する技術
JP5444647B2 (ja) * 2008-07-01 2014-03-19 富士通株式会社 データ転送装置、データ転送方法及びデータ転送プログラム
JP5204006B2 (ja) * 2009-02-27 2013-06-05 株式会社東芝 データを送信する装置、方法およびプログラム
JP2011193434A (ja) 2009-10-28 2011-09-29 Panasonic Corp パリティパケットを用いた通信方法、通信装置及び中継器
KR102027916B1 (ko) 2012-02-27 2019-10-02 삼성전자주식회사 순방향 오류정정스킴을 사용하는 패킷 송수신 장치 및 방법
JP2013085293A (ja) * 2013-01-11 2013-05-09 Thomson Licensing インターネットプロトコルネットワークでのリアルタイムのオーディオ及びビデオデータの前方誤り訂正をサポートする方法
DE112013006701T5 (de) * 2013-02-20 2015-11-05 Mitsubishi Electric Corporation Drahtlose Vorrichtung

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001203749A (ja) * 2000-01-20 2001-07-27 Mitsubishi Electric Corp 高効率データ送信装置及び高効率データ伝送システム
JP2003152752A (ja) * 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
JP2004015551A (ja) * 2002-06-07 2004-01-15 Sumitomo Electric Ind Ltd 中継装置、中継用プログラム及び自律型誤り訂正ネットワーク
JP2004180074A (ja) * 2002-11-28 2004-06-24 Internatl Business Mach Corp <Ibm> データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム
JP2005012753A (ja) * 2003-05-29 2005-01-13 Nippon Telegr & Teleph Corp <Ntt> パケット中継装置及びその方法と、パケット受信装置及びその方法と、パケット中継プログラム及びそのプログラムを記録した記録媒体と、パケット受信プログラム及びそのプログラムを記録した記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0946321A (ja) * 1995-08-01 1997-02-14 Fujitsu Ltd データ通信方法及び装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001203749A (ja) * 2000-01-20 2001-07-27 Mitsubishi Electric Corp 高効率データ送信装置及び高効率データ伝送システム
JP2003152752A (ja) * 2001-08-29 2003-05-23 Matsushita Electric Ind Co Ltd データ送受信方法
JP2004015551A (ja) * 2002-06-07 2004-01-15 Sumitomo Electric Ind Ltd 中継装置、中継用プログラム及び自律型誤り訂正ネットワーク
JP2004180074A (ja) * 2002-11-28 2004-06-24 Internatl Business Mach Corp <Ibm> データ処理方法、これを用いた通信システム、そのデータ送信装置、データ受信装置及びプログラム
JP2005012753A (ja) * 2003-05-29 2005-01-13 Nippon Telegr & Teleph Corp <Ntt> パケット中継装置及びその方法と、パケット受信装置及びその方法と、パケット中継プログラム及びそのプログラムを記録した記録媒体と、パケット受信プログラム及びそのプログラムを記録した記録媒体

Also Published As

Publication number Publication date
JP2006325113A (ja) 2006-11-30

Similar Documents

Publication Publication Date Title
JP4580278B2 (ja) パケット中継装置、コンテンツ送信装置、パケット中継プログラムならびにパケット中継方法
US8990663B2 (en) Method to support forward error correction for real-time audio and video data over internet protocol networks
US8037395B2 (en) Encoding and decoding method for packet recovery
US8145975B2 (en) Universal packet loss recovery system for delivery of real-time streaming multimedia content over packet-switched networks
EP2348640B1 (en) Systematic encoding of chain reaction codes
JP2576776B2 (ja) パケット伝送方法・パケット伝送装置
ES2342465T3 (es) Procedimiento y sistema de correccion de error de envio para la transmision fiable de datos en tiempo real por redes basadas en paquetes.
US20100017686A1 (en) Fast channel zapping and high quality streaming protection over a broadcast channel
JP5065254B2 (ja) 順方向エラー訂正コードをデコードするためのシステム及び方法
WO1999007100A1 (fr) Generateur de sequences de donnees, emetteur, decodeur de donnees de renseignements, recepteur, emetteur-recepteur, methode de generation de sequences de donnees, de decodage de donnees de renseignements et support d&#39;enregistrement
CN101061658B (zh) 发送信息数据的发送机和接收信息数据的接收机
US20040243913A1 (en) Forward error correction with codeword cross-interleaving and key-based packet compression
JP2008508757A (ja) 二段階式エラー防御方法を伴う符号化方法および復号化方法並びに符号化装置および復号化装置
US20040181740A1 (en) Communicating method, transmitting apparatus, receiving apparatus, and communicating system including them
JP2011199647A (ja) 誤り訂正符号化装置及び方法及びプログラム及び誤り訂正復号化装置及び方法及びプログラム
US20090019508A1 (en) Memory reduction in DVB-H applications
JP2004088388A (ja) 受信装置、受信データのデータ処理方法及びプログラム
JP2008011142A (ja) 受信装置
JP4437974B2 (ja) Tsパケットインタリーバ、tsパケット変換器、ts−ip変換器およびip−ts変換器
JP2013085293A (ja) インターネットプロトコルネットワークでのリアルタイムのオーディオ及びビデオデータの前方誤り訂正をサポートする方法
JP2008005030A (ja) パケット送受信装置
KR20070091779A (ko) 디지털 방송 수신 시스템에서의 오류 정정 방법
JP2009278678A (ja) パケット回復のための符号化および復号化技術

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

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: 20100803

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100827

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4580278

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees