(57)【要約】【課題】  パケット損失に対する耐性を向上できるとともに、中継、送信または再生に係る遅延を小さくする。【解決手段】  パケット中継装置１００は、データパケットＤ１、…が入力されると、これらのデータパケットＤ１、…の誤りを訂正するため、符号長ｎブロックからなるブロック符号を生成し、検査パケットＥ１１，Ｅ１２、…を生成して前記データパケットとともに出力するものである。バックバッファ１０３は、パケット中継装置が出力するデータパケットＤ１、…を格納する。検査パケット生成部１０２は、ｋ個ごとのデータパケットＤ１、…を基に検査パケットＥ１１，Ｅ１２、…を生成する。制御部１０５は、ｋ個に満たないデータパケットＤ１、…に対し、バックバッファ１０３に格納されたデータパケットＤ１、…を補填してｋ個とし、検査パケット生成部１０２にブロック符号化を行わせる。【選択図】      図３
2006325113.tif 000002
【特許請求の範囲】
【請求項１】
データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継装置において、
当該パケット中継装置が出力する前記データパケットを格納するデータパケット格納手段と、
所定個数ごとの前記データパケットを基に前記検査パケットを生成する検査パケット生成手段と、
前記所定個数に満たない前記データパケットに対し前記データパケット格納手段に格納された前記データパケットを補填して前記所定個数とするデータパケット補填手段と、
を具備したことを特徴とするパケット中継装置。
【請求項２】
前記検査パケット生成手段は、新たに当該パケット中継装置へ入力された前記データパケットと前記データパケット格納手段に格納された前記データパケットとの両方を基に前記検査パケットを生成することを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
請求項１または請求項２に記載のパケット中継装置と、
コンテンツを表すコンテンツ信号が入力されると該コンテンツ信号を基にデータパケットを生成して前記パケット中継装置へ出力するパケット組立手段と、
を具備したことを特徴とするコンテンツ送信装置。
【請求項４】
データパケットおよび当該データパケットの誤りを訂正するための検査パケットが入力されると誤り訂正を施した当該データパケットを出力するパケット中継装置において、
前記検査パケットには前記データパケットのすでに別の検査パケット生成に用いられた一部を複数回用いて生成したものが含まれ、
前記データパケットおよび前記検査パケットを基に損失した前記データパケットの回復を行う誤り訂正手段と、
前記誤り訂正手段によって回復できなかった前記データパケットがあり、前記誤り訂正手段によって先行する前記データパケットが回復されたとき、回復された前記データパケットを用いて回復できなかった前記データパケットの回復を再度行う第１の再訂正手段と、
を具備したことを特徴とするパケット中継装置。
【請求項５】
データパケットおよび当該データパケットの誤りを訂正するための検査パケットが入力されると誤り訂正を施した当該データパケットを出力するパケット中継装置において、
前記検査パケットには前記データパケットのすでに別の検査パケット生成に用いられた一部を複数回用いて生成したものが含まれ、
前記データパケットおよび前記検査パケットを基に損失した前記データパケットの回復を行う誤り訂正手段と、
前記誤り訂正手段によって回復できなかった前記データパケットがあり、前記誤り訂正手段によって後続する前記データパケットが回復されたとき、回復された前記データパケットを用いて回復できなかった前記データパケットの回復を再度行う第２の再訂正手段と、
を具備したことを特徴とするパケット中継装置。
【請求項６】
請求項４または請求項５に記載のパケット中継装置と、
前記パケット中継装置から出力された前記データパケットを分解したコンテンツデータを出力するパケット分解手段と、
前記コンテンツデータを基にコンテンツを再生するコンテンツ再生手段と、
を具備したことを特徴とするコンテンツ再生装置。
【請求項７】
データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するために、コンピュータを、
当該コンピュータが出力する前記データパケットを格納するデータパケット格納手段、
所定個数ごとの前記データパケットを基に前記検査パケットを生成する検査パケット生成手段、
前記所定個数に満たない前記データパケットに対し前記データパケット格納手段に格納された前記データパケットを補填して前記所定個数とするデータパケット補填手段、
として機能させることを特徴とするパケット中継プログラム。
【請求項８】
入力されたデータパケットを基に当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継方法において、
出力する前記データパケットを格納するデータパケット格納ステップと、
所定個数ごとの前記データパケットを基に前記検査パケットを生成する検査パケット生成ステップと、
前記所定個数に満たない前記データパケットに対し前記データパケット格納ステップにおいて格納された前記データパケットを補填して前記所定個数とするデータパケット補填ステップと、
を含むことを特徴とするパケット中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット中継装置、コンテンツ送信装置および再生装置、パケット中継プログラムならびにパケット中継方法に係り、特にパケットの中継または送受信に際してブロック符号化またはブロック復号化によって誤り訂正を行うためのパケット中継装置、コンテンツ送信装置および再生装置、パケット中継プログラムならびにパケット中継方法に関する。
【背景技術】
【０００２】
一般に、音声や動画などのコンテンツをストリーミング方式で再生するときなど、リアルタイムに利用するデータをリアルタイムに転送するため、リアルタイム転送プロトコル（real-time transport protocol; RTP）が規定されている（例えば、非特許文献１参照。）。
【０００３】
データのリアルタイム転送では、データの受信時にエラーが見出されてもデータの再送を受ける時間的余裕がない。このため、あらかじめコンテンツを表すデータに誤り訂正符号（Error Correcting Code; ECC）を付加しておき、データの中継や伝送などによりコンテンツを表すデータの一部に誤りや損失が生じた場合、付加しておいた誤り訂正符号を用いて元のデータを再現する前方誤り訂正（Forward Error Correction; FEC）方式が知られている。この一方式として、リアルタイム転送プロトコルに用いるペイロードを、排他的論理和によるパリティによって前方誤り訂正するためのアルゴリズムが規定されている（例えば、非特許文献２参照。）。
【０００４】
なお、データ交換方式は、現在、回線交換方式に代わり、非回線交換方式、特にパケット交換方式が一般的になった。パケット交換方式では、データを小さく分割して宛先等を含むヘッダを付加したパケットを生成し、このパケットを用いてデータを伝送する。パケットの伝送に際しては、データ誤りによってパケット全体が使用できなくなったり、パケットが伝送中に消失または遅延したりして、パケットの損失が生じることがある。
【０００５】
このようにパケットの損失が生じた場合に、パリティを利用したり、誤り訂正符号を利用したりして、損失を回復することが考えられた。誤り訂正符号は、畳み込み符号とブロック符号とに分けられるが、ブロック符号は、現在のデータを用いて短時間で訂正が行えるため、前方誤り訂正に好適であり、また、ブロックごとにデータの訂正を行うので、ストリーミング再生などで発生しやすいバースト誤りに有効であるため、リアルタイム転送に広く使われている。
【０００６】
例えば、従来、ｎ個のパケットをｋ行ｍ列のマトリクス状に並べ、ｋ個の水平パリティパケットおよびｍ個の垂直パリティパケットを生成するパリティパケットの生成方法と、ある行のパケット１個が損失した場合、この行の他のパケットおよび水平パリティパケットから損失パケットを復元し、ある列のパケット１個が損失した場合、この列の他のパケットおよび垂直パリティパケットから損失パケットを復元するパケットの復元方法とが提案されている（例えば、特許文献１参照。）。
【０００７】
また、従来、受信したパケットをバッファメモリに格納するとともに、これらのパケットを逐次送信し、１つの誤り訂正演算ブロックを構成するパケットの到着が完了したら、パケットの回復が可能ならば誤り訂正を行って消失したパケットを回復して、すでに送信されたパケットの後に続けて送信する中継装置が知られている（例えば、特許文献２参照。）。
【０００８】
【特許文献１】特開２００４−２７４２１４号公報（段落００３７〜００４０、図２，３）
【特許文献２】特開２００５−１２７５３号公報（段落００８２〜００８４、図６）
【非特許文献１】RFC3550 "RTP: A Transport Protocol for Real-Time Applications"
【非特許文献２】RFC2733 "An RTP Payload Format for Generic Forward Error Correction"
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、前記従来のパリティパケットの生成方法では、マトリクスを満たす数のパケットが揃わないと、垂直パリティパケットが生成できない。また、前記従来のパケットの復元方法では、マトリクスを満たす数のパケットが揃わないと、垂直パリティパケットを利用したパケットの復元が行えないことがある。このため、マトリクスが満たされるまで待てば、送信や再生などの際に遅延が生じ、あるいは、ヌルパケットを用いてパディングすることによりマトリクスを満たせば、パケット損失に対する耐性が低下する問題点があった。
【００１０】
また、前記従来の中継装置では、１つの誤り訂正演算ブロックを構成するパケットが揃うまでは誤り訂正を行わず、回復したパケットは誤り訂正を行った後に送信される。このため、送信先では、この中継装置で回復したパケットの到着を待てば、中継に係る遅延が大きくなり、ヌルパケットを用いたパディングを行えば、パケット損失に対する耐性が低下する問題点があった。
【００１１】
本発明は、以上のような問題点を鑑みてなされたものであり、パケット損失に対する耐性を向上できるとともに、中継、送信または再生に係る遅延を小さくできるパケット中継装置、コンテンツ送信装置および再生装置、パケット中継プログラムならびにパケット中継方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記目的を達成するために創案されたものであり、まず、請求項１に記載のパケット中継装置は、データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継装置において、データパケット格納手段と、検査パケット生成手段と、データパケット補填手段と、を具備した構成とした。
【００１３】
かかる構成によれば、パケット中継装置は、データパケット格納手段によって、当該パケット中継装置が出力するデータパケットを格納する。したがって、データパケットの出力後は、データパケット格納手段を参照し、出力したデータパケットを再度利用することとなる。
【００１４】
また、パケット中継装置は、検査パケット生成手段によって、所定個数ごとのデータパケットを基に検査パケットを生成する。すなわち、所定個数のデータパケットから所定個数の情報ブロックを生成してブロック符号化を行い、検査ブロックを生成して、この検査ブロックから検査パケットを生成する。これらのデータパケットおよび検査パケットは、伝送中のこれらのパケット（データパケットおよび検査パケット）に、検査パケットの個数以下の損失があったとき、誤り訂正を行って、損失パケットを回復できるものである。
【００１５】
また、パケット中継装置は、データパケット補填手段によって、所定個数に満たないデータパケットに対しデータパケット格納手段に格納されたデータパケットを補填して所定個数とする。こうして所定個数のデータパケットが揃うので、パケット中継装置は、検査パケット生成手段によって、パディングを行ったり、次のパケットの到着を待ったりせずに、ブロック符号化を行って検査パケットを生成する。
【００１６】
また、請求項２に記載のパケット中継装置は、請求項１に記載のパケット中継装置において、前記検査パケット生成手段は、新たに当該パケット中継装置へ入力された前記データパケットと前記データパケット格納手段に格納された前記データパケットとの両方を基に前記検査パケットを生成することを特徴とする。
【００１７】
かかる構成によれば、パケット中継装置は、検査パケット生成手段によって、新たにパケット中継装置へ入力されたデータパケットとデータパケット格納手段に格納されたデータパケットとの両方を基に検査パケットを生成する。つまり、先行する符号化に用いられたデータパケットを再使用し、新たなデータパケットと併せて符号化を行い、検査パケットを生成する。
【００１８】
また、請求項３に記載のコンテンツ送信装置は、請求項１または請求項２に記載のパケット中継装置と、パケット組立手段と、を具備した構成とした。
【００１９】
かかる構成によれば、コンテンツ送信装置は、パケット組立手段によって、コンテンツを表すコンテンツ信号が入力されるとコンテンツ信号を基にデータパケットを生成して出力する。
【００２０】
請求項１または請求項２に記載のパケット中継装置は、前記したように、データパケットを基に検査パケットを生成し、これらのデータパケットとともにへ出力する。
【００２１】
また、請求項４に記載のパケット中継装置は、データパケットおよび当該データパケットの誤りを訂正するための検査パケットが入力されると誤り訂正を施した当該データパケットを出力するパケット中継装置において、前記検査パケットには前記データパケットのすでに別の検査パケット生成に用いられた一部を複数回用いて生成したものが含まれ、誤り訂正手段と、第１の再訂正手段と、を具備した構成とした。
【００２２】
かかる構成によれば、パケット中継装置は、誤り訂正手段によって、データパケットおよび検査パケットを基に損失したデータパケットの回復を行う。この場合、１個の誤り符号を構成するパケット（データパケットおよび検査パケット）のうち、検査パケットの数を超える損失パケットが生じると、パケットが回復せず、未回復パケットが残る。
【００２３】
また、第１の再訂正手段は、誤り訂正手段による未回復パケットがあり、誤り訂正手段によって先行するデータパケットが回復されたとき、回復されたデータパケットを用いて未回復パケットの回復を再度行う。なぜなら、パケット中継装置に入力されるデータパケットには、検査パケットの生成に複数回用いられたものが含まれているため、先行するデータパケットが回復することによって、後続する誤り訂正符号を構成するパケットのうちの未回復パケットの数が、検査パケット数以下になることがあるからである。
【００２４】
また、請求項５に記載のパケット中継装置は、データパケットおよび当該データパケットの誤りを訂正するための検査パケットが入力されると誤り訂正を施した当該データパケットを出力するパケット中継装置において、前記検査パケットには前記データパケットのすでに別の検査パケット生成に用いられた一部を複数回用いて生成したものが含まれ、誤り訂正手段と、第２の再訂正手段と、を具備した構成とした。
【００２５】
かかる構成によれば、パケット中継装置は、誤り訂正手段によって、データパケットおよび検査パケットを基に損失したデータパケットの回復を行う。この場合、１個の誤り符号を構成するパケット（データパケットおよび検査パケット）のうち、検査パケットの数を超える損失パケットが生じると、パケットが回復せず、未回復パケットが残る。
【００２６】
また、第２の再訂正手段は、誤り訂正手段による未回復パケットがあり、誤り訂正手段によって後続するデータパケットが回復されたとき、回復されたデータパケットを用いて未回復パケットの回復を再度行う。なぜなら、パケット中継装置に入力されるデータパケットには、検査パケットの生成に複数回用いられたものが含まれているため、後続するデータパケットが回復することによって、先行する誤り訂正符号を構成するパケットのうちの未回復パケットの数が、検査パケット数以下になることがあるからである。
【００２７】
また、請求項６に記載のコンテンツ再生装置は、請求項４または請求項５に記載のパケット中継装置と、パケット分解手段と、コンテンツ再生手段と、を具備した構成とした。
【００２８】
かかる構成によれば、コンテンツ再生装置は、請求項４または請求項５に記載のパケット中継装置によって、誤り訂正を施して、データパケットを出力する。
【００２９】
また、コンテンツ再生装置は、請求項４または請求項５に記載のパケット中継装置から出力されたデータパケットを分解し、コンテンツデータを出力する。
【００３０】
また、請求項７に記載のパケット中継プログラムは、データパケットが入力されると当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するために、コンピュータを、データパケット格納手段、検査パケット生成手段、データパケット補填手段、として機能させることを特徴とする。
【００３１】
かかる構成によれば、パケット中継プログラムは、データパケット格納手段によって、コンピュータが出力するデータパケットを格納する。したがって、データパケットの出力後であっても、データパケット格納手段を参照することによって、このデータパケットを再度利用することができる。
【００３２】
また、パケット中継プログラムは、検査パケット生成手段によって、所定個数ごとのデータパケットを基に検査パケットを生成する。すなわち、所定個数のデータパケットから所定個数の情報ブロックを生成してブロック符号化を行い、検査ブロックを生成して、この検査ブロックから検査パケットを生成する。これらのデータパケットおよび検査パケットは、伝送中のこれらのパケット（データパケットおよび検査パケット）に、検査パケットの個数以下の損失があったとき、誤り訂正を行って、損失パケットを回復できるものである。
【００３３】
また、パケット中継プログラムは、データパケット補填手段によって、所定個数に満たないデータパケットに対しデータパケット格納手段に格納されたデータパケットを補填して所定個数とする。こうして所定個数のデータパケットが揃うので、パケット中継装置は、検査パケット中継手段によって、パディングを行ったり、次のパケットの到着を待ったりせずに、ブロック符号化を行って検査パケットを生成する。
【００３４】
また、請求項８に記載のパケット中継方法は、入力されたデータパケットを基に当該データパケットの誤りを訂正するための検査パケットを生成して前記データパケットとともに出力するパケット中継方法において、データパケット格納ステップと、検査パケット生成ステップと、データパケット補填ステップと、を含むことを特徴とする。
【００３５】
この手順によれば、パケット中継方法は、データパケット格納ステップによって、当該パケット中継装置が出力するデータパケットを格納する。したがって、データパケットの出力後は、データパケット格納ステップにおいて格納したデータパケットを再度利用することとなる。
【００３６】
また、パケット中継方法は、検査パケット生成ステップによって、所定個数ごとのデータパケットを基に検査パケットを生成する。すなわち、所定個数のデータパケットから所定個数の情報ブロックを生成してブロック符号化を行い、検査ブロックを生成して、この検査ブロックから検査パケットを生成する。これらのデータパケットおよび検査パケットは、伝送中のこれらのパケット（データパケットおよび検査パケット）に、検査パケットの個数以下の損失があったとき、誤り訂正を行って、損失パケットを回復できるものである。
【００３７】
また、パケット中継方法は、データパケット補填ステップによって、所定個数に満たないデータパケットに対しデータパケット格納ステップで格納されたデータパケットを補填して所定個数とする。こうして所定個数のデータパケットが揃うので、パケット中継装置は、検査パケット生成ステップによって、パディングを行ったり、次のパケットの到着を待ったりせずに、ブロック符号化を行って検査パケットを生成する。
【発明の効果】
【００３８】
請求項１、請求項７または請求項８に記載の発明によれば、出力するデータパケットを格納しておき、所定個数のデータパケットから検査パケットを生成するとき、所定個数に満たないデータパケットに対し、格納しておいたデータパケットを用いて補填を行い、所定個数とする。このため、パディングを行ったり、次のパケットの到着を待ったりしなくても、ブロック符号化を行って検査パケットを生成できる。
【００３９】
また、パディングに伴うパケット損失耐性の低下を抑止するとともに、次のパケットを待つことによる遅延が生じることを防止できる。さらに、重複して符号化に用いられるデータパケットがあるため、パケット損失を回復できる確率を向上させることができる。特に、ブロック符号、例えば、リードソロモン符号や低密度パリティ検査(LDPC: Low. Density Parity Check)符号などのブロック符号では、符号語長（ブロック数）を長くすると符号化効率が高まるため、符号語長の長いブロック符号化を行う場合、前記効果を顕著に発揮できる。
【００４０】
請求項２に記載の発明によれば、新たに入力されたデータパケットと格納されたデータパケットとの両方を基に検査パケットを生成する。つまり、先行する符号化に用いられたデータパケットを再使用し、新たなデータパケットと併せて符号化を行い、検査パケットを生成する。このため、前後する符号化において再使用されるデータパケットが必ずあるため、損失データパケットが回復する確率を高めることができる。さらに、先行または後続するデータパケットが回復するのに伴い、後続または先行するデータパケットを回復できる確率を高めることができる。
【００４１】
請求項３に記載の発明によれば、コンテンツを表すコンテンツ信号が入力されるとコンテンツ信号を基にデータパケットを生成して請求項１または請求項２に記載のパケット中継装置へ出力する。このため、コンテンツを送信するに当たって、パケット損失を回復できる確率が向上し、さらに、パディングを行わなくてもすむため、パケット損失に対する耐性が低下しない。このため、送信されるコンテンツの品質を向上できる。また、次のパケットの到着を待たなくてもよいため、コンテンツ送信に係る遅延を減少できる。
【００４２】
請求項４または請求項５に記載の発明によれば、未回復パケットがあり、先行または後続するデータパケットが回復されたとき、回復されたデータパケットを用いて未回復パケットの回復を再度行う。このため、ある符号化に係るパケットの損失が検査パケット数を超えても、先行または後続するデータパケットが回復されることによって、検査パケット数を超えた未回復パケットを回復できる確率を高めることができる。
【発明を実施するための最良の形態】
【００４３】
次に、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。まず、図１および図２を参照して、本発明に基づくパケット中継装置１００による検査パケット生成の概念について説明する。
パケット中継装置１００は、データパケットを入力すると、ブロック化符号方式により検査パケットを生成して、入力したデータパケットと、生成した検査パケットとを出力する装置である。
【００４４】
一例として、データパケットＤ１，Ｄ２，…，Ｄ１３，…が、この順で、パケット中継装置１００に到着するものとする。これらのデータパケットＤ１，Ｄ２，…，Ｄ１３，…は、データパケットＤ１〜Ｄ７、データパケットＤ８およびＤ９、ならびにデータパケットＤ１０…が、それぞれ所定時間内に到着する。しかし、データパケットＤ７の到着時刻と次のデータパケットＤ８の到着時刻とは離隔していて、同様に、データパケットＤ９の到着時刻と次のデータパケットＤ１０の到着時刻とは離隔している。
【００４５】
パケット中継装置１００は、到着したこれらのデータパケットＤ１〜Ｄ１３，…をｋ個（例えば、ｋ＝４）ずつまとめ、このｋ個のデータパケットの各々を基に、各々ｎ−ｋ個（例えば、ｎ−ｋ＝２）の検査パケットＥ１１およびＥ１２、Ｅ２１およびＥ２２、…を生成し、データパケットｋ個および検査パケットｎ−ｋ個の合計ｎ個（例えば、ｎ＝６）のパケットを出力する。
【００４６】
具体的には、検査パケットの生成は、原則として次のように行う。
（１）シーケンス番号の連続するデータパケットをｋ個取りまとめる。
（２）取りまとめたｋ個のデータパケットから、ペイロードを取り出す。このとき、ペイロードのみならず、ヘッダ（ＲＴＰヘッダ）のデータのうち、必要なものを含めるようにしてもよい。
（３）これらのペイロードのうち、ビット長が異なるものがある場合、ビット長が短いペイロードに冗長ビット（pad）を付け加え、これらのペイロードのビット長を最も長いペイロードのビット長に揃えることにより、等化処理を行う。この等化処理は、例えばRFC2733に記述された方法で行えばよい。冗長ビット列には０の連続を用いるが、１の連続を用いてもよい。なお、冗長ビットを付加する前のペイロード長は、後記するヘッダ（ＦＥＣヘッダ）に記述され、復号化の際に参照される。
【００４７】
（４）等化処理を行ったｋ個のペイロードをｋ個の情報ブロックとする。本実施形態において、符号化および訂正処理は、このブロック単位で行われる。
（５）このｋ個のブロックを基にブロック符号化を行い、ｎ個のブロックからなりｋ個の情報ブロックを含む（ｎ，ｋ）符号を形成する。つまり、ｋ個の情報ブロックからｎ−ｋ個の検査ブロックを生成してこの情報ブロックに付加し、ｎ個のブロックからなる符号とする。すなわち、符号語ブロック数はｎである。ブロック符号化は、典型的にはリードソロモン符号化により行うが、ファイヤ符号化、ハミング（Hamming）符号化、サイクリック（cyclic）符号化、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号化、ゴーレイ（Golay）符号化など、他の方式により行ってもよい。
（６）生成したｎ−ｋ個の検査ブロックをペイロードとし、それぞれにＦＥＣヘッダを含むヘッダを付加してｎ−ｋ個の検査パケットとする。
【００４８】
誤り訂正に係る符号が（６，４）符号である例について説明するが、符号の構成はこれに限られるものではない。例えば、符号化効率を高める観点からは、符号長を長く設定すればよい。また、パケット損失の発生し易い低品質の回線を用いる場合は、誤り訂正能力を高める観点から、符号化率ｋ／ｎを小さくし、パケット損失がほとんど発生しない高品質の回線を用いる場合は、伝送効率を高める観点から、符号化率ｋ／ｎを大きくする。
【００４９】
図１は、本発明によるパケット中継装置１００における検査パケット生成方法の第１例を示す概念図である。
この例では、所定時間内に到着し、連続したシーケンス番号を有するデータパケットをｋ個ずつ取りまとめ、それぞれｎ−ｋ個ずつ検査パケットを生成する。そして、ｋ個に満たないデータパケットがあるときは、すでに検査パケットの生成に用いたデータパケットを再使用することにより、ｋ個に満たない分を補填してｋ個のデータパケットとし、このｋ個のデータパケットからｎ−ｋ個の検査パケットを生成する。
【００５０】
具体的には、まず、４個のデータパケットＤ１〜Ｄ４が所定時間内に到着しているので、これらのデータパケットＤ１〜Ｄ４を取りまとめて、２個の検査パケットＥ１１，Ｅ１２を生成する。
【００５１】
続いて、データパケットＤ５〜Ｄ７は所定時間内に到着したが、引き続き到着するはずのデータパケットＤ８は所定時間内に到着しない。そこで、データパケットＤ５の到着後、所定時間が経過した場合は、データパケットＤ８の到着を待たずに、データパケットＤ５〜Ｄ７に対し、前回の符号化に用いたデータパケットＤ４を再使用して補填を行う。こうして４個のデータパケットＤ４〜Ｄ７を揃えて、２個の検査パケットＥ２１，Ｅ２２を生成する。なお、再使用したデータパケットＤ４を改めて送出することはしない。
【００５２】
続いて、データパケットＤ８，Ｄ９は所定時間内に到着したが、引き続き到着するはずのデータパケットＤ１０，Ｄ１１は、所定時間内に到着しない。そこで、データパケットＤ８が到着してから所定時間が経過した場合は、データパケットＤ１０，Ｄ１１の到着を待たずに、データパケットＤ８，Ｄ９に対し、前回の符号化に用いたデータパケットＤ６，Ｄ７を再使用して補填を行う。こうして４個のデータパケットＤ６〜Ｄ９を揃えて、２個の検査パケットＥ３１，Ｅ３２を生成する。なお、再使用したデータパケットＤ６，Ｄ７を改めて送出することはしない。
【００５３】
続いて、４個のデータパケットＤ１０〜Ｄ１３が所定時間内に到着しているので、これらのデータパケットＤ１０〜Ｄ１３を取りまとめて、２個の検査パケットＥ４１，Ｅ４２を生成する。
【００５４】
なお、例えばパケット中継装置１００の起動時などの初期段階では、先行するデータパケットがないため、再使用すべきデータパケットが存在していなかったり、その数が補填に足りなかったりすることがある。この場合は、例えばヌルパケットなどの適切なデータを用いてパディングすることにより、ｋ個に満たない分を補填して、検査パケットを生成する。
【００５５】
図２は、本発明によるパケット中継装置１００における検査パケット生成方法の第２例を示す概念図である。
この例では、初期段階を除き、例えば所定時間内にｋ個のデータパケットが到着したときであっても、すでに符号化に用いたデータパケットを所定個再使用して合計ｋ個のデータパケットとし、これらのデータパケットから検査パケットを生成する。つまり、１個の誤り訂正符号を形成するためのデータパケットには、所定個数の再使用データパケットが含まれていることとなる。
【００５６】
１回の符号化に用いる再使用データパケットの数を２とした場合について例示するが、ｋ／２以下のほかの数としてもよい。なお、第１例は、第２例において、再使用データパケットの数を０に設定した場合と考えることもできる。損失パケットを回復できる確率を大きくする観点からは、この数を大きくする。また、重複ブロック数を増やすと、データパケットの数に対する、生成される検査パケットの数の比率が増加し、トラヒックが増大するので、伝送効率を高める観点からは、この数を小さくする。
【００５７】
第２例でも、第１例と同様に、所定時間内に到着したデータパケットが、所定数の再使用データパケットを加えてもｋ個に満たないときは、更なる再使用パケットを補填してｋ個のデータパケットとし、このｋ個のデータパケットからｎ−ｋ個のデータパケットを生成する。
【００５８】
具体的には、まず、ｋ個のデータパケットＤ１〜Ｄ４が所定時間内に到着しているので、これらのデータパケットＤ１〜Ｄ４を取りまとめて、２個の検査パケットＥ１１，Ｅ１２を生成する。
【００５９】
なお、データパケットＤ１，Ｄ２が所定時間内に到着した段階で、２個のヌルパケットをパディングして、２個の検査パケットＥ１１，Ｅ１２を生成するようにしてもよい。
【００６０】
続いて、データパケットＤ３，Ｄ４を再使用し、新たなデータパケットＤ４，Ｄ５を合わせて、検査パケットＥ２１，Ｅ２２を生成する。
【００６１】
続いて、同様に、データパケットＤ４，Ｄ５を再使用し、新たなデータパケットＤ６，Ｄ７を合わせて、検査パケットＥ３１，Ｅ３２を生成する。
【００６２】
続いて、同様に、データパケットＤ６，Ｄ７を再使用し、新たなデータパケットＤ８，Ｄ９を合わせて、検査パケットＥ４１，Ｅ４２を生成する。
【００６３】
続いて、同様に、データパケットＤ８，Ｄ９を再使用し、新たなデータパケットＤ１０，Ｄ１１を合わせて、検査パケットＥ５１，Ｅ５２を生成する。
【００６４】
続いて、同様に、データパケットＤ１０，Ｄ１１を再使用し、新たなデータパケットＤ１２，Ｄ１３を合わせて、検査パケットＥ６１，Ｅ６２を生成する。
【００６５】
次に、図３を参照し、本発明によるパケット中継装置１００の構成について説明する。  
図３は、本発明によるパケット中継装置１００を示すブロック図である。
パケット中継装置１００は、前記した検査パケット生成方法を実現する機能を有し、入力バッファ１０１と、検査パケット生成部１０２と、バックバッファ１０３と、パケット送信部１０４と、制御部１０５と、クロック供給部１１０とを含んでいる。
【００６６】
入力バッファ１０１は、パケット中継装置１００へ入力されたデータパケットを記憶する緩衝記憶機能と、これらのデータパケットのヘッダ（ＲＴＰヘッダ）を読み取ってヘッダに記述されたシーケンス番号に従い並び替えて出力する順序制御機能と、入力されるデータパケットの到着時間のゆらぎを吸収し、後段の検査パケット生成部１０２の入力速度に合わせてデータパケットを出力する到着遅延ジッタ吸収機能とを有する。なお、入力バッファ１０１に記憶されたデータパケットは、入力バッファ１０１の記憶容量を超えないように、シーケンス番号の古い順または入力の早い順に消去される。
【００６７】
検査パケット生成部１０２は、次の機能を有する。
（１）入力バッファ１０１およびバックバッファ１０３からのデータパケット、ならびに、制御部１０５からのヌルパケットを受け入れる。
（２）受け入れたデータパケットおよびヌルパケットからペイロードを取り出して等化処理を施してブロックとする。
（３）これらのブロックを情報ブロックとしてブロック化符号方式により検査ブロックを生成する。
（４）生成した検査ブロックにＦＥＣヘッダを含むヘッダを付加して、検査パケットを組み立てる。なお、ヘッダ（ＦＥＣヘッダ）のＰａｄｄｉｎｇ  Ｐａｃｋｅｔ  ＃  フィールドには、この（１）〜（３）の処理に係るヌルパケットの数が記載される。
（５）受け入れたデータパケットおよび生成した検査パケットを出力する。受け入れたヌルパケットは廃棄するが、パケット送信部１０４において廃棄するようにしてもよい。
【００６８】
また、検査パケット生成部１０２は、符号化を行う際に再使用するデータパケットの数（重複ブロック数）が設定されている。重複ブロック数は、１回の符号化に用いるデータパケットの数の１／２以下の自然数または０を設定可能である。検査パケット生成部１０２は、重複ブロック数分のデータパケットとして、バックバッファ１０３（後記）に格納されているものを使用する。
【００６９】
さらに、検査パケット生成部１０２は、符号化を行う際にデータパケットの数が不足する場合には、バックバッファ１０３からのデータパケットを用いて補填し、それでもデータパケットが不足する場合には、制御部１０５からのヌルパケットを用いて補填を行う。
【００７０】
バックバッファ１０３は、検査パケット生成部１０２から出力されたデータパケットを格納し、その記憶容量を超える場合は、格納してあるデータパケットのうちシーケンス番号の古いものから廃棄する。このため、検査パケット生成部１０２には、常に新しいデータパケットが格納されている。バックバッファ１０３は、少なくとも重複ブロック数のデータパケットを格納するのに充分な記憶容量を有し、望ましくは、１回の符号化に必要な数のデータパケットを格納するのに充分な記憶容量を有する。
【００７１】
なお、バックバッファ１０３は、格納しているデータパケットと同じデータパケットが入力されたときは、格納せずに廃棄する。バックバッファ１０３が格納しているデータパケットは、制御部１０５の制御により、検査パケット生成部１０２で利用される。
【００７２】
パケット送信部１０４は、検査パケット生成部１０２から出力されたデータパケットと検査パケットとを、パケット中継装置１００の外部へ出力する機能を有する。
【００７３】
制御部１０５は、次のような機能を有する。
（１）所定時間内に入力バッファ１０１から入力されたデータパケットの数を計数する。この数は、所定時間内に入力バッファ１０１から検査パケット生成部１０２へ送られたデータパケットの数を意味する。
（２）情報ブロック数ｋおよび重複ブロック数と、所定時間内に入力されたデータパケットの数とを参照し、検査パケット生成部１０２において符号化に足りないデータパケットの数を判定する。
【００７４】
（３）（ａ）符号化に足りないデータパケットがあると判定されたときは、バックバッファ１０３を探索して格納されているデータパケットの数を得るとともに、バックバッファ１０３を制御して、符号化に足りない分のデータパケットを検査パケット生成部１０２へ出力させる。
（ｂ）それでもデータパケットの数が符号化に足りないときは、適切な補填データ、典型的にはヌルパケットを生成し、検査パケット生成部１０２へ出力して、パディングを行わせる。
【００７５】
クロック供給部１１０は、発振器（図示せず）を含み、パケット中継装置１００内の各部へクロック信号を供給する。
【００７６】
図４は、制御部１０５を詳細に示すブロック図である。
制御部１０５は、パケットカウンタ１２１と、タイマ１２２と、情報ブロック数記憶部１２３と、重複ブロック数記憶部１２４と、判定部１２５と、データパケット探索部１２６と、ヌルパケット生成部１２７とを含んでいる。
【００７７】
パケットカウンタ１２１は、入力バッファ１０１（図３参照）から入力されたデータパケットを計数し、計数値データを判定部１２５へ出力する。この数は、検査パケット生成部１０２へ入力されたデータパケットの数を意味する。
【００７８】
タイマ１２２は、判定部１２５の制御により、検査パケット生成部１０２（図３参照）における符号化で用いられる最初のデータパケットの到着から、所定時間に達するまでを計時し、計時信号を判定部１２５へ出力する。
【００７９】
情報ブロック数記憶部１２３は、誤り訂正に係る１個の符号に含まれる情報ブロックの数ｋを書き換え可能に記憶している。この数は、１回の符号化に用いられるデータパケットの数を意味する。
【００８０】
重複ブロック数記憶部１２４は、１個の誤り訂正に係る符号について、先行する符号化に用いたブロックの個数のうち、後続する符号化において再度使用するブロックの個数、すなわち、重複ブロック数を書き換え可能に記憶している。
【００８１】
判定部１２５は、タイマ１２２およびパケットカウンタ１２１を参照して、所定時間内に検査パケット生成部１０２（図３参照）へ入力されたデータパケットの数（入力データパケット数）を検出する。そして、情報ブロック数記憶部１２３に記憶された情報ブロック数から、重複ブロック数記憶部１２４に記憶された重複ブロック数を減算した数（新規データパケット数）を演算する。そして、入力データパケット数を新規データパケット数で除算し、剰余を求める。なお、除算値は、所定時間内に入力されたデータパケットによって検査パケット生成部１０２（図３参照）によって行われる符号化の回数を意味し、剰余は、この符号化には足りなかったデータパケットの個数を意味する。
【００８２】
そこで、剰余がない場合は、データパケットを補填する必要がないので、判定部１２５は、この処理を終了し、次の所定時間内について、再度同様に処理を繰り返す。剰余がある場合には、この剰余を情報ブロック数から減算して、補填データパケット数を求め、このデータをデータパケット探索部１２６へ出力する。
【００８３】
データパケット探索部１２６は、判定部１２５から受信した補填データパケット数のデータを基に、バックバッファ１０３を探索し、補填データパケット数のデータパケットをバックバッファ１０３から検査パケット生成部１０２へ出力させる。バックバッファ１０３を探索した結果、補填データパケット数に満たない数のデータパケットしかなかった場合、バックバッファ１０３からすべてのデータパケットを検査パケット生成部１０２へ出力させるとともに、補填データパケット数に不足する数のデータを、判定部１２５へ出力する。
【００８４】
判定部１２５は、データパケット探索部１２６から補填データパケット数に不足する数のデータを入力されたときは、このデータをヌルパケット生成部１２７へ出力する。
【００８５】
ヌルパケット生成部１２７は、判定部１２５から入力されたデータを基に、補填データパケット数に不足する数のヌルパケットを生成し、検査パケット生成部１０２へ出力する。
【００８６】
図５は、パケット中継装置１００へ入力されるデータパケットＤ１〜Ｄｋ、および、これらのデータパケットＤ１〜Ｄｋを基にパケット中継装置１００で生成される検査パケットＥ１〜Ｅｎ−ｋのデータグラムの一例を示す模式図である。
【００８７】
音声や動画などを表す伝送データを分割し、RFC1889/1890に規定するＲＴＰ２(Real Time Transport Protocol Version 2)プロトコルによりネットワーク上を伝送するものとし、このネットワークについて、トランスポート層（ＯＳＩ参照モデルの第４層）のプロトコルはRFC768に規定するＵＤＰ（User Datagram Protocol）、ネットワーク層（ＯＳＩ参照モデルの第３層）のプロトコルはRFC791に規定するＩＰ（Internet Protocol）を利用する場合について説明するが、データのリアルタイム転送を行うためのプロトコルであれば、他のプロトコルを利用するようにしてもよい。
【００８８】
この例では、ｋ個のデータパケットＤ１〜Ｄｋは、それぞれ、前記伝送データを分割したデータを含むＲＴＰペイロードフィールドＦ１に、ＲＴＰヘッダフィールドＦ２、ＵＤＰヘッダフィールドＦ３、ＩＰヘッダフィールドＦ４を付加した構造を持つ。
【００８９】
また、ｎ−ｋ個の検査パケットＥ１〜Ｅｎ−ｋは、ＦＥＣペイロードフィールドＧ１に、ＦＥＣヘッダフィールドＧ２、ＲＴＰヘッダフィールドＧ３、ＵＤＰヘッダフィールドＧ４、ＩＰヘッダフィールドＧ５を付加した構造を持つ。
【００９０】
検査パケットＥ１〜Ｅｎ−ｋのｎ−ｋ個のＦＥＣペイロードは、データパケットＤ１〜Ｄｋのｋ個のＲＴＰペイロードからｋ個の情報ブロックを形成し、例えばリードソロモン符号化方式などにより、これらの情報ブロックを基に、符号長ｎブロックのブロック符号化を行って生成したｎ−ｋ個の検査ブロックからなる。
【００９１】
図６は、検査パケットＥ１〜Ｅｋ−１のＦＥＣヘッダ部分のデータグラムの一例を示す模式図である。
（１）ＳＮ  ｂａｓｅ  Ｈ１は、検査パケットＥ１〜Ｅｋ−１の生成に用いた最初のデータパケットＤ１〜Ｄｋのシーケンス番号を示す。
（２）ｌｅｎｇｔｈ  ｒｅｃｏｖｅｒｙ  Ｈ２は、検査パケットＥ１〜Ｅｋ−１の生成に用いたデータパケットＤ１〜Ｄｋの検査情報を示す。
【００９２】
（３）ＨＰ  ｂｉｔ  Ｈ３は、１ビットであり、ＲＴＰヘッダ中のＰ，Ｘ，ＣＣ，Ｍ（いずれも図示せず）の７ビットと合わせて、これらの検査情報を格納する。
（４）ＰＴ  ｒｅｃｏｖｅｒｙ  Ｈ４は、検査パケットＥ１〜Ｅｎ−ｋの生成に用いたデータパケットＤ１〜ＤｋのＰＴ（図示せず）の検査情報を示す。
（５）ＦＥＣ  Ｔｙｐｅ  Ｈ５は、７ビットであり、誤り訂正に係る符号（ｎ，ｋ）のｎ，ｋの組み合わせを特定する。
【００９３】
（６）ＦＥＣ  Ｓｅｑｕｅｎｃｅ  Ｈ６は、８ビットであり、１〜（ｎ−ｋ）のうちの何番目の検査パケットＥ１〜Ｅｎ−ｋかを示す。
（７）Ｐａｄｄｉｎｇ  Ｐａｃｋｅｔ  ＃  Ｈ７は、８ビットであり、ＦＥＣ  Ｔｙｐｅで規定されたｋ個分のデータパケットＤ１〜Ｄｋが足りないために、パディングされたヌルパケットの数を示す。
（８）ＴＳ  ｒｅｃｏｖｅｒｙ  Ｈ８は、データパケットＤ１〜Ｄｋのタイムスタンプの検査情報を示す。
【００９４】
次に、図７を参照（適宜、図３、図４を参照）し、パケット中継装置１００の動作を説明する。
図７は、パケット中継装置１００の動作を示すフローチャートである。
まず、パケット中継装置１００は、所定時間内にデータパケットがｋ個揃ったか否かを判断する（ステップＳ１０１）。
【００９５】
揃った場合には（ステップＳ１０１のＹｅｓ）、等化処理（ステップＳ１０５）へ進む。
揃わなかった場合には（ステップＳ２０１のＮｏ）、バックバッファ１０３から、ｋ個に不足する数のデータパケットを補填する（ステップＳ１０２）。
【００９６】
そして、バックバッファ１０３からの補填により、データパケットがｋ個揃ったか否かを判断する（ステップＳ１０３）。
揃った場合には（ステップＳ１０３のＹｅｓ）、等化処理（ステップＳ２０５）へ進む。
揃わなかった場合には（ステップＳ１０３のＮｏ）、ヌルパケットでパディングを行い（ステップＳ１０４）、ｋ個のパケットとする。
【００９７】
前記したいずれかの手順でデータパケット等（データパケットとヌルパケット）がｋ個揃ったら、これらのデータパケット等のペイロードに等化処理を施し（ステップＳ１０５）、各ペイロードのビット長を最も長いペイロードのビット長に揃える。
【００９８】
このように等化処理を施したペイロードを情報ブロックとして、ブロック符号化を行い、検査ブロックを生成する（ステップＳ１０６）。
そして、生成した検査ブロックをペイロードとし、ＦＥＣヘッダを含むヘッダを付加して、検査パケットを生成する（ステップＳ１０７）。
【００９９】
最後に、入力されたデータパケットと、生成した検査パケットとを出力し（ステップＳ１０８）、最初（ステップＳ１０１）に戻って処理を繰り返す。
【０１００】
さらに、図８を参照（適宜、図３を参照）し、バックバッファ１０３の動作を説明する。
図８は、バックバッファ１０３の動作を示すフローチャートである。
まず、バックバッファ１０３は、データパケットが入力されたか否かを判断する（ステップＳ２０１）。
【０１０１】
バックバッファ１０３は、データパケットが入力されたとき（ステップＳ２０１のＹｅｓ）、入力されたデータパケットがすでに格納してあるデータパケットと重複するか否かを判断する（ステップＳ２１１）。
【０１０２】
入力されたデータパケットがすでに格納してあるデータパケットと重複するとき（ステップＳ２１１のＹｅｓ）、このデータパケットは重複しているので廃棄し、最初に戻って処理を繰り返す。
【０１０３】
入力されたデータパケットがすでに格納してあるデータパケットと重複しないとき、バックバッファ１０３に記憶されているデータパケットのうち、最も古いデータパケットを廃棄し（ステップＳ２１２）、記憶域を確保する。
そして、バックバッファ１０３は、この新たに入力されたデータパケットを格納し（ステップＳ２１３）、最初に戻って処理を繰り返す。
【０１０４】
バックバッファ１０３は、データパケットが入力されなかったとき（ステップＳ２０１のＮｏ）、制御部１０５からのデータパケットの探索要求があったか否かを判断する（ステップＳ２２１）。
【０１０５】
制御部１０５からのデータパケットの探索要求がなかったとき（ステップＳ２２１のＮｏ）、最初に戻って処理を繰り返す。
【０１０６】
制御部１０５からのデータパケットの探索要求があったとき（ステップＳ２２１のＹｅｓ）、バックバッファ１０３にデータパケットが格納されているか否かを判断する（ステップＳ２２２）。
【０１０７】
バックバッファ１０３にデータパケットが格納されていないとき（ステップＳ２２２のＮｏ）、最初に戻って処理を繰り返す。
【０１０８】
バックバッファ１０３にデータパケットが格納されていないとき（ステップＳ２２２のＹｅｓ）、バックバッファ１０３は、格納されているデータパケットを、検査パケット生成部１０２へ出力し（ステップＳ２２３）、最初に戻って処理を繰り返す。なお、このとき、バックバッファ１０３は、出力したデータパケットの数を制御部１０５へ通知する。
【０１０９】
次に、本発明による別のパケット中継装置３００の構成および動作について説明する。
図９は、本発明による別のパケット中継装置３００を示すブロック図である。
【０１１０】
このパケット中継装置３００は、前記したパケット中継装置１００と入出力が逆となるものであって、データパケット、および、これらのデータパケットの誤りを訂正するための検査パケットが入力されると、検査パケットは出力せずデータパケットを出力する。さらに、パケット中継装置３００は、入力されたデータパケットおよび検査パケットのうち損失したものがある場合は、損失しなかったデータパケットおよび検査パケットを用いて損失パケットを回復し、回復したデータパケットを含むデータパケットを出力する。
【０１１１】
パケット中継装置３００は、入力バッファ３０１と、バックバッファ３０３と、パケット送信部３０４と、制御部３０５と、誤り訂正部３０６とを具備している。パケット中継装置３００は、パケット中継装置１００から出力され、ネットワークを介して伝送されたデータパケットおよび検査パケットを入力して、データパケットを出力させるのに好適である。
【０１１２】
入力バッファ３０１は、パケット中継装置３００へ入力されたデータパケットおよび検査パケットを格納する緩衝記憶機能と、これらのデータパケットおよび検査パケットのヘッダ（ＲＴＰヘッダ）を読み取ってヘッダに記述されたリアルタイム転送に係るシーケンス番号に従い並び替えて出力する順序制御機能と、入力されるデータパケットおよび検査パケットの到着時間のゆらぎを吸収し、後段の制御部３０５の入力速度に合わせてデータパケットおよび検査パケットを出力する到着遅延ジッタ吸収機能とを有する。なお、入力バッファ１０１に記憶されたデータパケットおよび検査パケットは、入力バッファ１０１の記憶容量を超えないように、シーケンス番号の古い順に消去される。
【０１１３】
制御部３０５は、次の機能を有する。
（１）入力バッファ３０１からパケットを受け入れる。
（２）データパケットのヘッダ（ＲＴＰヘッダ）のシーケンス番号を読み取るなどにより、１個の（ｎ，ｋ）符号を形成するためのパケット（データパケットおよび検査パケット）のうち、損失したパケットの数を検出する。
【０１１４】
（３）（ａ）１個の（ｎ，ｋ）符号について、損失したパケットがないときは、これらのパケットをバックバッファ３０３およびパケット送信部３０４へ出力する。
（ｂ）１個の（ｎ，ｋ）符号について、ｎ−ｋ個以下のパケットが損失したときは、損失したパケットの回復が可能であると判断し、１個の（ｎ，ｋ）符号を形成するためのパケット（損失したパケットを除く。）を誤り訂正部３０６へ出力する。なお、このとき、検査パケットのヘッダ（ＦＥＣヘッダ）のＰａｄｄｉｎｇ  Ｐａｃｋｅｔ  ＃フィールドを読み取り、検査パケット生成の際に補填された個数のヌルパケットを生成して、ともに誤り訂正部３０６へ出力する。
（ｃ）１個の（ｎ，ｋ）符号について、ｎ−ｋ個を超えるパケットが損失したときは、損失したパケットの回復が不可能であると判断し、１個の（ｎ，ｋ）符号を形成するためのパケット（損失したパケットを除く。）をパケット送信部３０４へ出力する。
（ｄ）ただし、回復が不可能であると判断されたパケットに係る（ｎ，ｋ）符号に関し、この（ｎ，ｋ）符号に先行または後続する（ｎ，ｋ）符号に係るパケットが回復されたときは、この回復が不可能であると判断されたパケットについて、再度回復が可能かどうか判断する。そして、回復が可能と判断したならば、この（ｎ，ｋ）符号に係るパケットを誤り訂正部３０６へ出力する。
【０１１５】
バックバッファ３０３は、制御部３０５および誤り訂正部３０６から出力されたパケット（データパケットおよび検査パケット）を格納し、その記憶容量を超える場合は、格納してあるパケットのうちシーケンス番号の古いものから廃棄する。このため、バックバッファ３０３には、常に新しいパケットが格納されている。バックバッファ３０３は、１個の（ｎ，ｋ）符号を形成するためのパケットを格納するのに充分な記憶容量を有する。
【０１１６】
バックバッファ３０３の動作は、原則として、前記したバックバッファ１０３と同様である。
なお、バックバッファ３０３は、格納しているパケットと重複するパケットが入力されたときは、格納せずに廃棄する。バックバッファ３０３が格納しているパケットは、誤り訂正部３０６で利用される。
【０１１７】
誤り訂正部３０６は、制御部３０５から、１個の（ｎ，ｋ）符号を形成するためのパケット（損失したパケットを除く。）が入力されると、ブロック復号化を行って、損失したパケットのペイロード（ヘッダの一部が含まれていてもよい。）を回復し、ヘッダを付加して、損失したパケットを組み立て、入力されたパケットとともにバックバッファ３０３およびパケット送信部３０４へ出力する。
【０１１８】
なお、送信側（図示せず）において、データパケットのうちの所定のものを複数回用いてブロック符号化を行って検査パケットを生成し、これらのデータパケットと生成した検査パケットとが、パケット中継装置３００へ入力される場合、例えば、パケット中継装置１００の出力が、ネットワークや伝送路を経由して、パケット中継装置３００へ入力されているような場合、ネットワークや伝送路で損失したパケットを回復できる確率が高まる。つまり、１個の（ｎ，ｋ）符号について、ｎ−ｋ個を超えるパケットが損失したときでも、他の（ｎ，ｋ）符号を形成するためのパケットが回復され、このパケットが送信側で検査パケットを生成するためのブロック符号化に複数回用いられたものであれば、この（ｎ，ｋ）符号の損失パケット数がｎ−ｋ以下になることがある。このような場合、誤り訂正部３０６は、バックバッファ３０３から前記したパケットを読み出し、ブロック符号化方式に従って、損失したパケットを回復する。
【０１１９】
パケット送信部３０４は、制御部３０５および誤り訂正部３０６からデータパケットおよび検査パケットを入力されると、ヌルパケットおよび検査パケットは出力せず、データパケットをシーケンス番号に従って出力する機能を有する。
【０１２０】
図１０は、制御部３０５を詳細に示すブロック図である。
制御部３０５は、許容遅延記憶部３２１と、タイマ３２２と、損失パケット検出部３２３と、再帰カウンタ３２４と、再帰フラグ保持部３２５と、パケット探索部３２７とを含んでいる。
【０１２１】
許容遅延記憶部３２１は、許容遅延時間値を記憶している。
タイマ３２２は、許容遅延記憶部３２１から許容遅延時間値を読み取るとともに、損失パケット検出部３２３からパケットの損失を検出したタイミングを供給され、そのときから計時して許容遅延時間後となるタイミングを、損失パケット検出部３２３へ供給する。
【０１２２】
損失パケット検出部３２３は、入力されたパケットを損失パケット回復可否判定部３２６へ出力し、また、入力バッファ３０１（図９参照）から入力されたパケットのヘッダ（ＲＴＰヘッダ）のシーケンス番号を読み取り、損失を検出したタイミングをタイマ３２２へ供給するとともに、１個の（ｎ，ｋ）符号における損失個数（許容遅延時間内に到着しないものを含む。）のデータを、損失パケット回復可否判定部３２６へ出力する。
【０１２３】
再帰カウンタ３２４は、再帰数を、書き換え可能に記憶している。再帰数の初期値は０である。
再帰フラグ保持部３２５は、１ビット（１または０）からなる再帰フラグの値を、書き換え可能に保持している。再帰フラグの初期値は０である。
【０１２４】
損失パケット回復可否判定部３２６は、次の動作を行う。
（１）損失パケットがなければ、入力されたパケットを、パケット送信部３０４およびバックバッファ３０３（図９参照）へ出力する。
（２）１個の（ｎ，ｋ）符号における損失個数がｎ−ｋ以下であり、損失パケットの回復が可能であれば、この（ｎ，ｋ）符号の残りのパケットを誤り訂正部３０６へ出力する。なお、このとき、検査パケットのヘッダ（ＦＥＣヘッダ）のＰａｄｄｉｎｇ  Ｐａｃｋｅｔ  ＃フィールドを読み取り、検査パケット生成の際に補填された個数のヌルパケットを生成して、ともに誤り訂正部３０６へ出力する。
【０１２５】
（３）後続する（ｎ，ｋ）符号の損失パケットが回復した場合、再帰カウンタ３２４および再帰フラグ保持部３２５を利用して再帰処理を行い、先行する（ｎ，ｋ）符号の損失パケットの回復が可能か否か再判断し、回復可能であれば、先行する（ｎ，ｋ）符号の損失していないパケット（後続する（ｎ，ｋ）符号において回復したパケットを含む。）を誤り訂正部３０６へ送る。
または、先行する（ｎ，ｋ）符号の損失パケットが回復した場合、再帰カウンタ３２４および再帰フラグ保持部３２５を利用して再帰処理を行い、後続する（ｎ，ｋ）符号の損失パケットの回復が可能か否か再判断し、回復可能であれば、後続する（ｎ，ｋ）符号の損失していないパケット（先行する（ｎ，ｋ）符号において回復したパケットを含む。）を誤り訂正部３０６へ送る。
（４）なお、これらの処理は、許容遅延時間内になされない場合は、回復不可と判断し、入力されたパケットは、そのままパケット送信部３０４およびバックバッファ３０３へ出力する。
【０１２６】
パケット探索部３２７は、損失パケット回復可否判定部３２６の判定により先行するパケットが必要になったときは、バックバッファ３０３（図９参照）から、これらのパケットを読み出して、損失パケット回復可否判定部３２６へ出力する。
【０１２７】
図１１は、後続する（ｎ，ｋ）符号のパケットから誤り訂正を行う方法を示す概念図である。ｎ＝６、ｋ＝４である場合を例示するが、ｎ，ｋはこれに限られるものではない。データパケットＤ１〜Ｄ１３，…は、この順番で到着するものとする。
【０１２８】
１番目に、Ｄ１３〜Ｄ１０，Ｅ４１，Ｅ４２（損失したものを除く。）を用いて、このうち損失したパケットが２個以内であれば誤り訂正を行い、損失したパケットを回復する。
【０１２９】
２番目に、Ｄ９〜Ｄ６，Ｅ３１，Ｅ３２（損失したものを除く。）を用いて、このうち損失したパケットが２個以内であれば誤り訂正を行い、損失したパケットを回復する。
【０１３０】
３番目に、Ｄ７〜Ｄ４，Ｅ２１，Ｅ２２（損失したものを除く。）を用いて、損失したパケットが２個以内であれば誤り訂正を行い、損失したパケットを回復する。
【０１３１】
ここでもし、２番目の処理で、Ｄ７，Ｄ６を含む２個を超えるパケットが損失したために、パケットの回復が不可能であっても、３番目の処理でＤ７，Ｄ６が回復した場合は、２番目の処理に戻って、損失したパケットの回復が可能になる場合が生ずる。
【０１３２】
４番目に、Ｄ４〜Ｄ１，Ｅ１１，Ｅ１２（損失したものを除く。）を用いて、損失したパケットが２個以内であれば誤り訂正を行い、損失したパケットを回復する。
【０１３３】
ここでもし、３番目の処理で、Ｄ４を含む２個を超えるパケットが損失したために、パケットの回復が不可能であっても、３番目の処理でＤ４が回復した場合は、３番目の処理に戻って、損失したパケットの回復が可能になる場合が生ずる。
【０１３４】
この場合、３番目の処理でパケットが回復された場合、さらに２番目の処理に戻って、パケットの回復が可能になる場合が生ずる。
【０１３５】
次に、図１２を参照して（適宜、図９，図１０も参照して）、パケット中継装置３００の動作について説明する。
図１２は、パケット中継装置３００の動作を示すフローチャートである。
【０１３６】
まず、パケット中継装置３００の起動後、再帰カウンタ３２４（図１０参照）が保持している再帰数に０を代入する（ステップＳ３０１）。
続いて、再帰フラグ保持部３２５が保持している再帰フラグの値を０にする（ステップＳ３０３）。
【０１３７】
そして、制御部３０５の損失パケット検出部３２３は、１個の（ｎ，ｋ）符号中の損失したデータパケットの数を検出する（ステップＳ３０３）。
【０１３８】
損失パケット回復可否判定部３２６は、損失したデータパケットがないときは（ステップＳ３０３のＮｏ）、再帰数が０か否かを判断する（ステップＳ３１１）。
【０１３９】
再帰数が０ならば（ステップＳ３１１のＹｅｓ）、パケット送信部３０４（図９参照）により、データパケットを出力する。
続いて、損失パケット回復可否判定部３２６（図１０参照）は、再帰フラグ保持部３２５（図１０参照）に保持されている再帰フラグの値を０にする（ステップＳ３１３）。
続いて、次の符号の処理へ移り（ステップＳ３１４）、初期設定（ステップＳ３０１，Ｓ３０２）以降の処理を繰り返す。
【０１４０】
再帰数が１ならば（ステップＳ３１１のＮｏ）、損失パケット回復可否判定部３２６（図１０参照）は、再帰カウンタ３２４（図１０参照）に保持されている再帰数に１をデクリメントする（ステップＳ３１５）。
続いて、損失パケット回復可否判定部３２６（図１０参照）は、再帰フラグ保持部３２５（図１０参照）に保持されている再帰フラグの値を１にする（ステップＳ３１６）。
続いて、次の符号の処理へ移り（ステップＳ３１７）、初期設定（ステップＳ３０１，Ｓ３０２）以降の処理を繰り返す。
【０１４１】
損失パケット回復可否判定部３２６は、損失したデータパケットがあるときは（ステップＳ３０３のＹｅｓ）、このパケットに係る（ｎ，ｋ）符号内で損失したパケットが回復可能か否かを判断する（ステップＳ３０４）
【０１４２】
損失したデータパケットの数がｎ−ｋ以下であれば、この（ｎ，ｋ）符号内で、損失したデータパケットが回復可能であると判断し（ステップＳ３０４のＹｅｓ）、誤り訂正処理を行って（ステップＳ３０５）、前記ステップＳ３１１以降の処理を行う。
【０１４３】
損失したデータパケットの数がｎ−ｋを超えるときは、この（ｎ，ｋ）符号内で、損失したデータパケットが回復不可能であると判断し（ステップＳ３０４のＮｏ）、再帰フラグが１か否かを判定する（ステップＳ３０６）。
【０１４４】
再帰フラグが１ならば（ステップＳ３０６のＹｅｓ）、前記ステップＳ３１１以降の処理を行う。
【０１４５】
再帰フラグが１でないならば（ステップＳ３０６のＮｏ）、許容遅延時間内か否かを判断する（ステップＳ３０７）。
【０１４６】
許容遅延時間を超えているとき（ステップＳ３０７のＮｏ）、前記ステップＳ３１１以降の処理を行う。
【０１４７】
許容遅延時間内であるとき（ステップＳ３０７のＹｅｓ）、再帰数に１をインクリメントする（ステップＳ３２１）。
続いて、次の符号の処理へ移り（ステップＳ３２２）、初期設定（ステップＳ３０１，Ｓ３０２）以降の処理を繰り返す。
【０１４８】
次に、図１３を参照し、本発明によるコンテンツ送信装置４００の構成について説明する。
図１３は、本発明によるコンテンツ送信装置４００を示すブロック図である。
コンテンツ送信装置４００は、音声または動画あるいはこれらの組み合わせなどを表すコンテンツ信号を入力すると、コンテンツを表すデータパケットと、これらのデータパケットの誤り訂正を行うための検査パケットを出力する機能を有し、原則として、前記したパケット中継装置１００にコンテンツ信号を符号化するための機構を前置した構成を有する。
【０１４９】
コンテンツ送信装置４００は、符号化部４１１と、ＲＴＰヘッダ・ペイロード生成部４１２と、検査パケットペイロード生成部４０２と、バックバッファ４０３と、ＩＰパケット形成・送信部４０４と、制御部４０５と、クロック供給部４１０とを含んでいる。
【０１５０】
符号化部４１１は、コンテンツ信号を、例えばＩＳＯのＭＰＥＧの各フェーズにおいて策定された方法、または、ＩＴＵ勧告Ｇ．７２９において規定された方法などによって符号化を行った符号や、入力された音声を認識した音声合成を行うためのテキストスクリプト、あるいは、これらを多重化したデータストリームを出力する機能を有する。
【０１５１】
ＲＴＰヘッダ・ペイロード生成部４１２は、符号化部４１１が出力したデータを、例えばRFC2250に規定されるＲＴＰペイロードに分割し、これらにタイムスタンプやシーケンス番号などを含むＲＴＰヘッダを付加して出力する。
【０１５２】
検査パケットペイロード生成部４０２は、ＲＴＰペイロードを基に、ブロック符号化を行って、ＲＴＰヘッダ、ＦＥＣヘッダ、ＦＥＣペイロード（検査ブロック）を生成して連結し、ＲＴＰヘッダを付加したＲＴＰペイロードとともに出力する。
【０１５３】
バックバッファ４０３は、ＲＴＰヘッダを付加したＲＴＰペイロードを格納し、制御部４０５の制御に応じて出力する機能を有する。制御部４０５の動作は、前記制御部１０５の動作とほぼ同様である。
【０１５４】
ＩＰパケット形成・送信部４０４は、ＲＴＰヘッダ、ＦＥＣヘッダ、ＦＥＣペイロード（検査ブロック）を連結したものと、ＲＴＰヘッダを付加したＲＴＰペイロードとに、ＵＤＰヘッダおよびＩＰヘッダを付加して、ＩＰパケットを形成し、出力する機能を有する。
【０１５５】
クロック供給部４１０は、前記クロック供給部１１０と同様の構成である。
【０１５６】
次に、図１４を参照し、本発明によるコンテンツ再生装置５００の構成について説明する。
図１４は、本発明によるコンテンツ再生装置５００を示すブロック図である。
コンテンツ再生装置５００は、コンテンツを表すデータパケットと、これらのデータパケットの誤り訂正を行うための検査パケットを入力すると、音声または動画あるいはこれらの組み合わせなどを表すコンテンツ信号を生成して、コンテンツを再生する機能を有する。コンテンツ再生装置５００は、原則として、前記したパケット中継装置３００に、データパケットを復号してコンテンツ信号を生成する機構と、このコンテンツ信号によってコンテンツを再生する機構を付加したものである。
【０１５７】
クロック供給部５１０は、クロック供給部３１０と、入力バッファ５０１は入力バッファ３０１と、バックバッファ５０３はバックバッファ３０３と、制御部５０５は、制御部３０５と、誤り訂正部５０６は、誤り訂正部３０６と、それぞれ同様の構成でよい。
【０１５８】
復号化部５０４は、制御部５０５および誤り訂正部５０６から出力されるデータパケットを復号化して、データストリームまたはアナログ信号として出力する機能を有する。
【０１５９】
再生装置は、復号化部５０４から入力されたデータストリームまたはアナログ信号を基に、音声や動画などのコンテンツを再生する機能を有する。
【０１６０】
次に、図１５および図１６を参照して、検査パケット生成方法の比較例の概念について説明する。これらの比較例において、データパケットは、前記した第１例および第２例と同様に到着するものとする。
【０１６１】
図１５は、検査パケット生成方法の第１比較例を示す概念図である。
この第１比較例では、所定時間内に到着し、連続したシーケンス番号を有するデータパケットをｋ個ずつ取りまとめ、それぞれｎ−ｋ個ずつ検査パケットを生成する。そして、ｋ個に満たないデータパケットがあるときは、不足分をヌルパケットＰ０で補填して（パディングを行って）ｋ個のデータパケットとし、これらのｋ個のデータパケットからｎ−ｋ個の検査パケットを生成する。
【０１６２】
具体的には、まず、４個のデータパケットＤ１〜Ｄ４が所定時間内に到着しているので、これらのデータパケットＤ１〜Ｄ４を取りまとめて、２個の検査パケットＥ１１，Ｅ１２を生成する。
【０１６３】
続いて、データパケットＤ５〜Ｄ７は所定時間内に到着したが、引き続き到着するはずのデータパケットＤ８は所定時間内に到着しない。そこで、データパケットＤ５の到着後、所定時間が経過した場合は、データパケットＤ８の到着を待たずに、データパケットＤ５〜Ｄ７に対し、１個のヌルパケットＰ０をパディングして４個のデータパケットとし、２個の検査パケットＥ２１，Ｅ２２を生成する。
【０１６４】
続いて、データパケットＤ８，Ｄ９は所定時間内に到着したが、引き続き到着するはずのデータパケットＤ１０，Ｄ１１は所定時間内に到着しない。そこで、データパケットＤ８の到着後、所定時間が経過した場合は、データパケットＤ１０，Ｄ１１の到着を待たずに、データパケットＤ８，Ｄ９に対し、２個のヌルパケットＰ０をパディングして４個のデータパケットとし、２個の検査パケットＥ３１，Ｅ３２を生成する。
【０１６５】
続いて、４個のデータパケットＤ１０〜Ｄ１３が所定時間内に到着しているので、これらのデータパケットＤ１０〜Ｄ１３を取りまとめて、２個の検査パケットＥ４１，Ｅ４２を生成する。
【０１６６】
この第１比較例では、データパケットが（ｎ，ｋ）ブロック符号化に際して不足するときは、ヌルパケットによってパディングを行うので、損失パケット耐性が低下することが分かる。
【０１６７】
図１６は、検査パケット生成方法の第２比較例を示す概念図である。
この第２比較例では、第１比較例と同様に、所定時間内に到着し、連続したシーケンス番号を有するデータパケットをｋ個ずつ取りまとめ、それぞれｎ−ｋ個ずつ検査パケットを生成する。ただし、ｋ個に満たないデータパケットがあるときは、データパケットがｋ個揃うのを待って、これらのｋ個のデータパケットからｎ−ｋ個の検査パケットを生成する。
【０１６８】
具体的には、まず、４個のデータパケットＤ１〜Ｄ４が到着したので、これらのデータパケットＤ１〜Ｄ４を取りまとめて、２個の検査パケットＥ１１，Ｅ１２を生成する。
【０１６９】
続いて、データパケットＤ５〜Ｄ７は所定時間内に到着したが、データパケットＤ８は所定時間内に到着しない。そこで、引き続きデータパケットＤ８の到着を待ち、４個のデータパケットＤ５〜Ｄ８が揃ってから、２個の検査パケットＥ２１，Ｅ２２を生成する。
【０１７０】
続いて、データパケットＤ９は到着しているが、データパケットＤ１０，Ｄ１１，Ｄ１２は所定時間内に到着しない。そこで、引き続きデータパケットＤ１０，Ｄ１１，Ｄ１２の到着を待ち、４個のデータパケットＤ９〜Ｄ１２が揃ってから、２個の検査パケットＥ３１，Ｅ３２を生成する。
【０１７１】
第２比較例では、検査パケットを生成するために、符号化に要する数のデータパケットが揃うまで待つので、遅延が大きくなることが分かる。
【０１７２】
本実施形態のパケット中継装置１００、３００、コンテンツ送信装置４００およびコンテンツ再生装置５００によれば、次の効果が得られる。
（１）初期段階を除き、ヌルパケットによるパディングを行わないので、パケット損失に対する耐性が低下しない。
（２）ブロック符号化により検査パケットを生成する際に、再使用されるデータパケットがあるので、誤り訂正を行ってパケットの回復が行える確率が向上する。
（３）所定時間を超えてパケットの到着を待たないので、中継、送信、再生に係る遅延が減少する。
【図面の簡単な説明】
【０１７３】
【図１】本発明によるパケット中継装置における検査パケット生成方法の第１例を示す概念図である。
【図２】本発明によるパケット中継装置における検査パケット生成方法の第２例を示す概念図である。
【図３】本発明によるパケット中継装置を示すブロック図である。
【図４】制御部を詳細に示すブロック図である。
【図５】パケット中継装置へ入力されるデータパケット、および、これらのデータパケットを基にパケット中継装置で生成される検査パケットのデータグラムの一例を示す模式図である。
【図６】検査パケットのＦＥＣヘッダ部分のデータグラムの一例を示す模式図である。
【図７】パケット中継装置の動作を示すフローチャートである。
【図８】バックバッファの動作を示すフローチャートである。
【図９】本発明による別のパケット中継装置を示すブロック図である。
【図１０】制御部を詳細に示すブロック図である。
【図１１】後続する（ｎ，ｋ）符号のパケットから誤り訂正を行う方法を示す概念図である。
【図１２】本発明による別のパケット中継装置の動作を示すフローチャートである。
【図１３】本発明によるコンテンツ送信装置を示すブロック図である。
【図１４】本発明によるコンテンツ再生装置を示すブロック図である。
【図１５】検査パケット生成方法の第１比較例を示す概念図である。
【図１６】検査パケット生成方法の第２比較例を示す概念図である。
【符号の説明】
【０１７４】
Ｄ１〜Ｄ１３    データパケット
Ｅ１１〜Ｅ６１  検査パケット
Ｐ０    ヌルパケット
１００，３００  パケット中継装置
１０１，３０１，５０１  入力バッファ
１０２  検査パケット生成部（検査パケット生成手段）
１０３，３０３，４０３，５０３  バックバッファ（データパケット格納手段）
１０４，３０４  パケット送信部
１０５，３０５，４０５，５０５  制御部（データパケット補填手段）
１１０，３１０，４１０，５１０  クロック供給部
１２１  パケットカウンタ
１２２，３２２  タイマ
１２３  情報ブロック数記憶部
１２４  重複ブロック数記憶部
１２５  判定部
１２６  データパケット探索部
１２７  ヌルパケット生成部
３０６，５０６  誤り訂正部（誤り訂正手段、第１の再訂正手段、第２の再訂正手段）
３２１  許容遅延記憶部
３２３  損失パケット検出部
３２４  再帰カウンタ
３２５  再帰フラグ保持部
３２６  損失パケット回復可否判定部
３２７  パケット探索部（第１の再訂正手段、第２の再訂正手段）
４００  コンテンツ送信装置
５００  コンテンツ再生装置
【図１】
2006325113.tif 000003
【図２】
2006325113.tif 000004
【図３】
2006325113.tif 000005
【図４】
2006325113.tif 000006
【図５】
2006325113.tif 000007
【図６】
2006325113.tif 000008
【図７】
2006325113.tif 000009
【図８】
2006325113.tif 000010
【図９】
2006325113.tif 000011
【図１０】
2006325113.tif 000012
【図１１】
2006325113.tif 000013
【図１２】
2006325113.tif 000014
【図１３】
2006325113.tif 000015
【図１４】
2006325113.tif 000016
【図１５】
2006325113.tif 000017
【図１６】
2006325113.tif 000018