JP5135121B2 - データ受信装置、データ受信方法、及びデータ受信プログラム - Google Patents

データ受信装置、データ受信方法、及びデータ受信プログラム Download PDF

Info

Publication number
JP5135121B2
JP5135121B2 JP2008214034A JP2008214034A JP5135121B2 JP 5135121 B2 JP5135121 B2 JP 5135121B2 JP 2008214034 A JP2008214034 A JP 2008214034A JP 2008214034 A JP2008214034 A JP 2008214034A JP 5135121 B2 JP5135121 B2 JP 5135121B2
Authority
JP
Japan
Prior art keywords
packet
fec packet
fec
data
column
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
JP2008214034A
Other languages
English (en)
Other versions
JP2010050809A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008214034A priority Critical patent/JP5135121B2/ja
Priority to US12/365,741 priority patent/US8140941B2/en
Publication of JP2010050809A publication Critical patent/JP2010050809A/ja
Application granted granted Critical
Publication of JP5135121B2 publication Critical patent/JP5135121B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Description

本発明は、データ受信装置、データ受信方法、及びデータ受信プログラムに関するものである。
近年、TV信号をIPネットワーク上にて伝送するIPTVが普及しつつある。IPTVの伝送プロトコルはPro−MPEG(Moving Picture Experts Group)と呼ばれる仕様で定められている。Pro−MPEGでは、サーバが配信する映像の受信ノードが多数存在することを想定しており、送信サーバの負荷を抑えるために、マルチキャスト伝送が用いられる。
マルチキャスト伝送の場合、TCP(Transmission Control Protocol)によるデータの到達性の保証を用いることができないため、FEC(Forward Error Correction)によりデータの損失をある程度回復させるという手法が用いられる。
FECとは、送信したいデータに冗長データを付加し、送信した結果、一部のデータが損失した場合に、損失しなかった残りのデータとその冗長データを用いて、損失したデータを復元する手法である(例えば特許文献1参照)。
例えば、具体的には、データA、B、Cを送信する場合、X=A xor B xor Cとして求めたデータXも併せて送信する。そして、送信した結果、データBが損失した場合、受信側では、残りのA、C、及びXからB=A xor C xor XとしてBを復元することができる。ただし、AとBなど2つ以上のデータを損失した場合などはデータを復元することができない。
IPTVの場合もこのFECを応用してデータ(映像データ及び音声データ)の損失を補うことがPro−MPEG仕様により定められている。送信されるFECパケットは、RTP(Real time Transport Protocol)パケットで送信される複数のデータパケットをマトリクス状に並べ、縦方向と横方向とでグループ化し、グループ化したデータパケットの排他的論理和(xor)演算により生成される。縦方向のグループから求められたFECパケットはカラム(Column)FECパケット、横方向のグループから求められたFECパケットはロウ(Row)FECパケットと呼ばれる。
送信されるFECパケットのヘッダにはSNBase、Offset、NAという3つのパラメータ(FECパラメータ)が含まれている。SNBaseはFECパケットに対応するグループ化されたデータパケットのうち先頭のデータパケットのシーケンス番号を示す。Offsetは同じグループ内で隣り合うデータパケットのシーケンス番号の差を示す。また、NAはグループ内に含まれるデータパケット数を示す。
データ受信側では、これら3つのパラメータを用いて、同じマトリクスに対応するカラムFECパケット及びロウFECパケットを特定し、データ復元処理を行う。しかし、受信した複数のFECパケットから、同じマトリクスに対応するFECパケットを特定したり、各FECパケットがマトリクスのどこに位置するか(先頭から何番目か)などを特定したりする方法は開示されておらず、これらの特定を効率良く行うことができなかった。
また、データ復元処理では、カラムFECパケットを用いた復元と、ロウFECパケットを用いた復元とを繰り返し行うことで、より多くの損失に対処することができる。しかし、繰り返し処理は負荷が高いため、復元漏れがなく、かつ効率良くデータの復元を行うことが求められている。
特開2008−131153号公報
本発明は受信データの復元処理を効率良く行うデータ受信装置、データ受信方法、及びデータ受信プログラムを提供することを目的とする。
本発明の一態様によるデータ受信装置は、パケットを受信するパケット受信部と、前記パケット受信部により受信されたパケットが、データパケット、カラムFECパケット、及びロウFECパケットのいずれの種別であるかを特定するパケット種別特定部と、前記パケット受信部により受信されたパケットのシーケンス番号を特定するシーケンス番号特定部と、前記パケット受信部により受信されたパケットを前記特定された種別及びシーケンス番号と関連付けて記憶するデータ記憶部と、前記パケット受信部により受信されたデータパケットのデータ部分が前記データ記憶部に記憶されたことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けて記憶するデータ記憶情報記憶部と、前記パケット受信部により受信されたカラムFECパケット及びロウFECパケットのヘッダを解析し、SNBase(SNBaseはFECパケット生成に用いられる複数のデータパケットのシーケンス番号のうち、最小のシーケンス番号を示す値)、Offset(OffsetはFECパケット生成に用いられる複数のデータパケットをシーケンス番号順に並べた時に隣接するデータパケットのシーケンス番号の差を示す値)、及びNA(NAはFECパケット生成に用いられるデータパケット数を示す値)を含むFECパラメータを特定するFECパラメータ特定部と、少なくとも第1のカラムFECパケットから特定されたSNBaseと、第2のカラムFECパケット又はロウFECパケットから特定されたSNBaseとを用いて、マトリクスの先頭のFECパケットとなる先頭カラムFECパケット及び先頭ロウFECパケットを特定する先頭FECパケット特定部と、前記先頭カラムFECパケットと同一のマトリクスに対応するカラムFECパケットからなるカラムFECパケット群及び前記先頭ロウFECパケットと同一のマトリクスに対応するロウFECパケットからなるロウFECパケット群を特定するFECパケット群特定部と、前記カラムFECパケット群又は前記ロウFECパケット群から1つのFECパケットを選択するFECパケット選択部と、前記FECパケット選択部により選択されたFECパケットの前記FECパラメータに基づいて、前記選択されたFECパラメータに対応する複数のデータパケットのシーケンス番号を特定し、この特定した複数のシーケンス番号のデータパケットのデータ部分が前記データ記憶部に記憶されているか否かを前記データ記憶情報記憶部に記憶されている前記データ記憶情報に基づいて検出し、データ部分が記憶されていない損失データパケットの数が1つの時は損失データパケットの復元は可能と判定して復元開始信号を出力し、1つ以外の時は損失データパケットの復元は不可と判定する復元可否判定部と、前記復元開始信号に基づき、前記損失データパケットに対応するFECパケット及びデータパケットのデータを前記データ記憶部から読み出し、この読み出したデータを用いて前記損失データパケットを復元し、復元したデータパケットを前記データ記憶部に記憶し、この復元したデータパケットについてデータ部分が前記データ記憶部に記憶されたことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けて前記データ記憶情報記憶部に記憶するデータ復元部と、を備えるものである。
本発明の一態様によるデータ受信方法は、パケットを受信し、前記受信したパケットが、データパケット、カラムFECパケット、及びロウFECパケットのいずれの種別であるかを特定し、前記受信したパケットのシーケンス番号を特定し、前記受信したパケットを前記特定した種別及びシーケンス番号と関連付けてデータ記憶部に格納し、前記受信したデータパケットのデータ部分を前記データ記憶部に記憶したことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けてデータ記憶情報記憶部に格納し、前記受信したパケットのうち、カラムFECパケット及びロウFECパケットのヘッダを解析し、SNBase(SNBaseはFECパケット生成に用いられる複数のデータパケットのシーケンス番号のうち、最小のシーケンス番号を示す値)、Offset(OffsetはFECパケット生成に用いられる複数のデータパケットをシーケンス番号順に並べた時に隣接するデータパケットのシーケンス番号の差を示す値)、及びNA(NAはFECパケット生成に用いられるデータパケット数を示す値)を含むFECパラメータを特定し、少なくとも第1のカラムFECパケットから特定したSNBaseと、第2のカラムFECパケット又はロウFECパケットから特定したSNBaseとを用いて、マトリクスの先頭のFECパケットとなる先頭カラムFECパケット及び先頭ロウFECパケットを特定し、前記先頭カラムFECパケットと同一のマトリクスに対応するカラムFECパケットからなるカラムFECパケット群及び前記先頭ロウFECパケットと同一のマトリクスに対応するロウFECパケットからなるロウFECパケット群を特定し、前記カラムFECパケット群又は前記ロウFECパケット群から1つのFECパケットを選択し、前記選択したFECパケットの前記FECパラメータに基づいて、前記選択したFECパラメータに対応する複数のデータパケットのシーケンス番号を特定し、この特定した複数のシーケンス番号のデータパケットのデータ部分が前記データ記憶部に格納されているか否かを前記データ記憶情報記憶部に格納されている前記データ記憶情報に基づいて検出し、データ部分が記憶されていない損失データパケットの数が1つの時は損失データパケットの復元は可能と判定し、1つ以外の時は損失データパケットの復元は不可と判定し、前記損失データパケットを復元可能と判定した場合は、前記損失データパケットに対応するFECパケット及びデータパケットのデータを前記データ記憶部から読み出し、この読み出したデータを用いて前記損失データパケットを復元し、復元したデータパケットを前記データ記憶部に格納し、この復元したデータパケットのデータ部分を前記データ記憶部に格納したことを示すデータ記憶情報をシーケンス番号に関連付けて前記データ記憶情報記憶部に格納するものである。
本発明の一態様によるデータ受信プログラムは、パケットを受信するステップと、前記受信したパケットが、データパケット、カラムFECパケット、及びロウFECパケットのいずれの種別であるかを特定するステップと、前記受信したパケットのシーケンス番号を特定するステップと、前記受信したパケットを前記特定した種別及びシーケンス番号と関連付けてデータ記憶部に格納するステップと、前記受信したデータパケットのデータ部分を前記データ記憶部に記憶したことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けてデータ記憶情報記憶部に格納するステップと、前記受信したパケットのうち、カラムFECパケット及びロウFECパケットのヘッダを解析し、SNBase(SNBaseはFECパケット生成に用いられる複数のデータパケットのシーケンス番号のうち、最小のシーケンス番号を示す値)、Offset(OffsetはFECパケット生成に用いられる複数のデータパケットをシーケンス番号順に並べた時に隣接するデータパケットのシーケンス番号の差を示す値)、及びNA(NAはFECパケット生成に用いられるデータパケット数を示す値)を含むFECパラメータを特定するステップと、少なくとも第1のカラムFECパケットから特定したSNBaseと、第2のカラムFECパケット又はロウFECパケットから特定したSNBaseとを用いて、マトリクスの先頭のFECパケットとなる先頭カラムFECパケット及び先頭ロウFECパケットを特定するステップと、前記先頭カラムFECパケットと同一のマトリクスに対応するカラムFECパケットからなるカラムFECパケット群及び前記先頭ロウFECパケットと同一のマトリクスに対応するロウFECパケットからなるロウFECパケット群を特定するステップと、前記カラムFECパケット群又は前記ロウFECパケット群から1つのFECパケットを選択するステップと、前記選択したFECパケットの前記FECパラメータに基づいて、前記選択したFECパラメータに対応する複数のデータパケットのシーケンス番号を特定し、この特定した複数のシーケンス番号のデータパケットのデータ部分が前記データ記憶部に格納されているか否かを前記データ記憶情報記憶部に格納されている前記データ記憶情報に基づいて検出し、データ部分が記憶されていない損失データパケットの数が1つの時は損失データパケットの復元は可能と判定し、1つ以外の時は損失データパケットの復元は不可と判定するステップと、前記損失データパケットを復元可能と判定した場合は、前記損失データパケットに対応するFECパケット及びデータパケットのデータを前記データ記憶部から読み出し、この読み出したデータを用いて前記損失データパケットを復元し、復元したデータパケットを前記データ記憶部に格納し、この復元したデータパケットのデータ部分を前記データ記憶部に格納したことを示すデータ記憶情報をシーケンス番号に関連付けて前記データ記憶情報記憶部に格納するステップと、をコンピュータに実行させるためのものである。
本発明によれば、受信データの復元処理を効率良く行うことができる。
以下、本発明の実施の形態を図面に基づいて説明する。
図1に本発明の実施形態に係るデータ受信装置の概略構成を示す。このデータ受信装置は、例えば映像や音声などのデータがパケット化されたものをイーサネット(登録商標)や無線LANなどのネットワーク経由で受信する装置である。データ受信装置は、データパケットと共にその前方誤り訂正を行うための2次元FECパケットも併せて受信し、損失したデータの復元(誤り訂正)処理を行う。2次元FECパケットはロウFECパケット及びカラムFECパケットを含む。データパケット及びFECパケットは例えばRTP/UDP/IPパケットで伝送される。
データ受信装置は、パケット受信部101、データ記憶部102、データ記憶情報記憶部103、パケット種別特定部104、シーケンス番号特定部105、FECパラメータ特定部106、先頭FECパケット特定部107、FECパケット群特定部108、FECパケット選択部109、復元可否判定部110、データ復元部111、及びマトリクス更新部112を備える。
パケット受信部101は、ネットワークを介してデータパケット及びFECパケットを受信する。パケット種別特定部104は、UDPポート番号を参照し、パケット受信部101が受信したパケット(受信パケット)がデータパケットであるか、又はFECパケットであるかを特定する。受信パケットがFECパケットである場合、パケット種別特定部104は、FECヘッダを解析し、ロウFECパケットか、又はカラムFECパケットであるかを特定する。
シーケンス番号特定部105は、RTPヘッダを解析し、受信パケットのシーケンス番号を特定する。受信パケットは、特定されたパケット種別及びシーケンス番号に基づいて、それらの情報と関連付けられてデータ記憶部102に記憶される。データ記憶部102はメモリ等で構成される。
特定されたパケット種別及びシーケンス番号の情報を関連付ける方法としては、例えばパケットが書き込まれたアドレスを示すポインタと、ポート番号情報、シーケンス番号情報を同じ構造体に格納する。
また、データ記憶部102にパケットを書き込む前に、パケット種別特定部とシーケンス番号特定部がそれぞれパケット種別とシーケンス番号を特定する場合は、パケット種別に応じたメモリ領域の、シーケンス番号に応じたオフセットを加えたアドレスに受信パケットを書き込むようにしてもよい。
いずれの方法でも、パケット種別とシーケンス番号の情報から、その受信パケットが書き込まれたアドレスを特定し、アクセスすることができる。これは、データパケット、ロウFECパケット、カラムFECパケットのいずれについても同様である。
データ記憶情報記憶部103はデータ記憶部102にデータパケットのデータ部分が記憶されたことを示すデータ記憶情報を、そのデータパケットのシーケンス番号と関連付けて記憶する。シーケンス番号の情報を関連付ける方法としては、例えばデータ記憶情報が書き込まれたアドレスを示すポインタと、シーケンス番号情報を同じ構造体に格納する。
また、シーケンス番号に応じたオフセットを加えたアドレスにデータ記憶情報を書き込むようにしてもよい。いずれの方法でも、シーケンス番号からそのデータ記憶情報が書き込まれたアドレスを特定し、アクセスすることができる。
データ記憶情報を参照することで、データ記憶部102にデータパケットのデータ部分が記憶されているか、または記憶されておらずネットワーク経由での伝送に伴い損失したかがわかる。データ記憶情報記憶部103はオンチップメモリ等で構成される。
FECパラメータ特定部106は、受信したFECパケットからFECパラメータを特定する。ここでFECパラメータの説明にあたり、まずカラムFECパケット及びロウFECパケットについて説明する。Pro−MPEGでは、送信するデータパケットを図2(a)に示すようにマトリクス状に並べ、縦方向にグループ化したデータパケットのxor演算によりカラムFECパケットが生成される。
例えばシーケンス番号1、11、21、…、91のデータパケットのxor演算によりシーケンス番号1のカラムFECパケットが生成される。
また、図2(b)に示すように、送信するデータパケットをマトリクス状に並べ、横方向にグループ化したデータパケットのxor演算によりロウFECパケットが生成される。例えばシーケンス番号11〜20のデータパケットのxor演算によりシーケンス番号2のロウFECパケットが生成される。
Pro−MPEGでは、グループ化されたデータパケットのうち先頭のデータパケットのシーケンス番号であるSNBase、隣り合うデータパケットのシーケンス番号の差であるOffset、及びグループ化されたデータパケットの個数であるNAが、FECパラメータとして各FECパケットのヘッダ(FECヘッダ)に含まれる。
FECパラメータ特定部106は、FECヘッダを解析し、このFECパラメータ(SNBase、Offset、NA)を特定する。
先頭FECパケット特定部107は、特定されたFECパラメータに基づいて、同一のデータパケットマトリクスに対応するカラムFECパケット、ロウFECパケットのうち先頭(シーケンス番号が最小)となる先頭カラムFECパケット、先頭ロウFECパケットを特定する。
例えば、図2(a)、(b)に示す例では、シーケンス番号1のカラムFECパケット、ロウFECパケットが先頭カラムFECパケット、先頭ロウFECパケットとなる。先頭カラムFECパケット、先頭ロウFECパケットの特定方法については後述する。
FECパケット群特定部108は、特定された先頭カラムFECパケット、先頭ロウFECパケット及びFECパラメータに基づいて、同一のデータパケットマトリクスに対応するカラムFECパケット群、ロウFECパケット群を特定する。
例えば、図2(a)、(b)に示す例では、シーケンス番号1〜10のカラムFECパケットがカラムFECパケット群になり、シーケンス番号1〜10のロウFECパケットがロウFECパケット群になる。
FECパケット選択部109は、FECパケット群特定部108により特定されたカラムFECパケット群、ロウFECパケット群に属するFECパケットを順次選択する。
復元可否判定部110は、データ記憶情報記憶部103に記憶されているデータ記憶情報を参照し、FECパケット選択部109により選択されたFECパケットに関連するデータパケットの損失が復元可能か否か判定する。復元可否判定部110は、関連するデータパケットのデータ部分がデータ記憶部102に記憶されているか否かを検出する。データ部分がデータ記憶部102に記憶されていない損失データパケットの数が1の時に復元可能と判定し、1以外の時は復元不能と判定する。
FECパケットに関連するデータパケットとは、そのFECパケットの生成に用いられたデータパケット群である。例えば図2(a)におけるシーケンス番号3のカラムFECパケットが選択された場合、関連するデータパケットはシーケンス番号が3、13、23、…、93のデータパケットとなる。シーケンス番号3、13、23、…、93のデータパケットのいずれか1つが損失している場合は復元可能と判定され、損失が無い場合又は損失が2つ以上の場合は復元不能と判定される。
復元可否判定部110は復元可能と判定すると、FECパケットのシーケンス番号、関連するデータパケットのシーケンス番号、及び復元処理開始信号をデータ復元部111へ出力する。
データ復元部111は、復元処理開始信号に基づいて復元可否判定部110により復元可能と判定された損失データパケットの復元処理を行う。データ復元部111は復元可否判定部110から与えられるシーケンス番号に基づいて、データ記憶部102からFECパケットのデータ及び損失していないデータパケットのデータを取り出す。損失データパケットは、FECパケット及び損失していないデータパケットのxor演算を行うことで復元することができる。
例えば図3に示すようにシーケンス番号40のデータパケットの損失を復元する場合は、シーケンス番号31〜39のデータパケット及びシーケンス番号4のロウFECパケットのxor演算を行う。
データ復元部111は復元したデータパケットをデータ記憶部102に記憶する。また、データ復元部111は復元したデータパケットをデータ記憶部102に記憶したことを示すデータ記憶情報を、復元したデータパケットのシーケンス番号と関連付けてデータ記憶情報記憶部103に記憶する。
マトリクス更新部112は、データ復元部111によるデータパケットマトリクスの復元が終了したら、言い換えればデータパケットマトリクス内に復元可能なデータパケットが無くなったら、マトリクスの更新を行う。
マトリクスの更新とは、次のデータパケットマトリクスに対応するカラムFECパケット、ロウFECパケットの特定である。例えば、図4に示すように、シーケンス番号1〜10のカラムFECパケットとシーケンス番号1〜10のロウFECパケットを用いたシーケンス番号1〜100のデータパケットからなるマトリクスの復元処理が終了すると、マトリクス更新部112は次のデータパケットマトリクスに対応するFECパケットであるシーケンス番号11〜20のカラムFECパケット、ロウFECパケットを特定する。
マトリクス更新部112に特定されたカラムFECパケット、ロウFECパケットを用いて次のマトリクスに対する復元処理が行われる。
このようなデータ受信装置を用いた損失データパケットの復元方法を、図5に示すフローチャートを用いて説明する。
(ステップS501)受信パケットがデータパケットであるか、又はFECパケットであるかがパケット種別特定部104により特定される。受信パケットがFECパケットである場合はさらにカラムFECパケットであるか、又はロウFECパケットであるかがパケット種別特定部104により特定される。
(ステップS502)各パケットのシーケンス番号がシーケンス番号特定部105により特定される。
(ステップS503)FECパケットのFECヘッダから、FECパラメータ(SNBase、Offset、NA)がFECパラメータ特定部106により特定される。
(ステップS504)特定されたFECパラメータに基づいて、先頭カラムFECパケット、先頭ロウFECパケットが先頭FECパケット特定部107により特定される。先頭カラムFECパケット、先頭ロウFECパケットの特定方法について説明する。ここではカラムFECパケットのSNBaseとロウFECパケットのSNBaseを用いる方法について説明する。
先頭カラムFECパケットの生成に用いられるグループ化されたデータパケットの先頭のデータパケットと、先頭ロウFECパケットの生成に用いられるグループ化されたデータパケットの先頭のデータパケットは同一のものである。つまり、同一のデータパケットマトリクスに対応する先頭カラムFECパケットのSNBaseと先頭ロウFECパケットのSNBaseは必ず一致する。
図6に、シーケンス番号1〜72のデータパケットを、縦方向4パケット、横方向6パケットのマトリクスに並べた場合の各FECパケットのシーケンス番号とSNBaseを示す。この図から分かるように、1つ目のマトリクスの先頭カラムFECパケットと先頭ロウFECパケットのSNBaseは共に1、2つ目のマトリクスでは共に25、3つ目のマトリクスでは共に49となっている。
従って、受信したカラムFECパケットのSNBaseと、ロウFECパケットのSNBaseとを比較し、比較結果が一致したカラムFECパケット、ロウFECパケットがそれぞれ先頭カラムFECパケット、先頭ロウFECパケットであると特定できる。
(ステップS505)特定された先頭カラムFECパケット、先頭ロウFECパケットと同一のマトリクスに対応するFECパケット群がFECパケット群特定部108により特定される。
マトリクスの縦の長さはカラムFECパケットのNAで表され、横の長さはカラムFECパケットのOffset(またはロウFECパケットのNA)で表される。従って、先頭カラムFECパケットからシーケンス番号順にマトリクスの横の長さ、すなわち、カラムFECパケットのOffset(またはロウFECパケットのNA)個のカラムFECパケットが、同一マトリクスに対応するカラムFECパケット群であると特定される。
同様に、先頭ロウFECパケットからシーケンス番号順にマトリクスの縦の長さ、すなわち、カラムFECパケットのNA個のロウFECパケットが、同一マトリクスに対応するロウFECパケット群であると特定される。
(ステップS506)カラムFECパケットがすべて選択されたか否かが判定される。選択された場合はステップS510へ進み、選択されていない場合はステップS507へ進む。
(ステップS507)FECパケット選択部109によりカラムFECパケットがシーケンス番号順に選択される。
(ステップS508)選択されたカラムFECパケットを用いて復元処理が行えるか否かが復元可否判定部110により判定される。すなわち、データ記憶情報記憶部103に記憶されているデータ記憶情報に基づいて、選択されたカラムFECパケットに対応するデータパケット群に含まれる損失データパケットが1個であるか否かが判定される。
復元処理が行える場合はステップS509へ進み、行えない場合はステップS506へ戻る。
(ステップS509)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS510)ロウFECパケットがすべて選択されたか否かが判定される。選択された場合はステップS515へ進み、選択されていない場合はステップS511へ進む。
(ステップS511)FECパケット選択部109によりロウFECパケットがシーケンス番号順に選択される。
(ステップS512)選択されたロウFECパケットを用いて復元処理が行えるか否かが復元可否判定部110により判定される。すなわち、データ記憶情報記憶部103に記憶されているデータ記憶情報に基づいて、選択されたロウFECパケットに対応するデータパケット群に含まれる損失データパケットが1個であるか否かが判定される。
復元処理が行える場合はステップS513へ進み、行えない場合はステップS510へ戻る。
(ステップS513)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS514)ロウFECパケットを用いた復元処理が少なくとも1回行われたか否かが判定される。行われた場合はステップS515へ進み、行われなかった場合はステップS520へ進む。
(ステップS515)カラムFECパケットがすべて選択されたか否かが判定される。選択された場合はステップS519へ進み、選択されていない場合はステップS516へ進む。
(ステップS516)FECパケット選択部109によりカラムFECパケットがシーケンス番号順に選択される。
(ステップS517)選択されたカラムFECパケットを用いて復元処理が行えるか否かが復元可否判定部110により判定される。復元処理が行える場合はステップS518へ進み、行えない場合はステップS515へ戻る。
(ステップS518)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS519)カラムFECパケットを用いた復元処理が少なくとも1回行われたか否かが判定される。行われた場合はステップS510へ戻り、行われなかった場合はステップS520へ進む。
(ステップS520)マトリクス内に復元可能なデータパケットがなくなり、このマトリクスの復元処理が終了したと判定され、マトリクス更新部112により次のマトリクスに更新される。次のマトリクスに対応するFECパケット群は、既に特定されているFECパケット群のシーケンス番号順に後続する同数のFECパケットであるため、容易に特定できる。
ステップS506〜ステップS519では、全てのカラムFECパケットを順次選択し、その後に全てのロウFECパケットを順次選択する。そして、全てのロウFECパケットを選択し終わった段階で、ロウFECパケットを用いて復元が行われたか確認する。
ロウFECパケットを用いた復元が行われていない場合はそのマトリクスの処理を終了して次のマトリクスに移行する。ロウFECパケットを用いた復元が行われた場合は、再びカラムFECパケットによる処理に移行し、以下同様の処理を繰り返す。
このような繰り返し処理を行うのは、カラムFECパケット、ロウFECパケットの一方による復元が発生した場合、他方のFECパケットでは復元出来なかった部分が、復元可能になる場合があるためである。
例えば図7(a)に示すように、シーケンス番号1〜100のデータパケットからなるマトリクスのうち、シーケンス番号37、46、47、55、56のデータパケットが損失していたとする。
まず、カラムFECパケットを順次選択していく。図7(b)に示すように、シーケンス番号5のカラムFECパケットを用いてシーケンス番号55のデータパケットが復元される。シーケンス番号6、7のカラムFECパケットについては、対応するデータパケット群に損失データパケットが2つあるため、復元処理を行うことができない。
続いて、ロウFECパケットを順次選択していく。図7(c)に示すように、シーケンス番号4のロウFECパケットを用いてシーケンス番号37のデータパケットが復元される。また、シーケンス番号6のロウFECパケットを用いてシーケンス番号56のデータパケットが復元される。
このロウFECパケットを用いた復元処理により、シーケンス番号6、7のカラムFECパケットに対応するデータパケット群に含まれる損失データパケットが1つとなる。従って、復元処理が行えるようになり、図7(d)に示すように、シーケンス番号46、47のデータパケットが復元される。
本実施形態によるデータ処理装置は、FECパラメータに基づいて同一のデータパケットマトリクスに対応するカラムFECパケット群、ロウFECパケット群を効率良く特定することができ、復元処理を効率良く行うことができる。また、カラムFECパケット群とロウFECパケット群との間で繰り返し復元処理を行うことで、復元漏れを防ぐことが出来る。
損失データパケットの復元方法の別の例を、図8に示すフローチャートを用いて説明する。ステップS801〜ステップS809は、上記実施形態における損失データパケット復元方法のステップS501〜ステップS509と同様であるため、説明を省略する。
(ステップS810)ロウFECパケットがすべて選択されたか否かが判定される。選択された場合はステップS817へ進み、選択されていない場合はステップS811へ進む。
(ステップS811)FECパケット選択部109によりロウFECパケットがシーケンス番号順に選択される。
(ステップS812)選択されたロウFECパケットを用いて復元処理が行えるか否かが復元可否判定部110により判定される。復元処理が行える場合はステップS813へ進み、行えない場合はステップS810へ戻る。
(ステップS813)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS814)前のステップで、ロウFECパケットを用いてデータパケット群のうちシーケンス番号順にm番目のデータパケットが復元されていた場合、シーケンス番号順にm番目のカラムFECパケットが選択される。ここでmは、1≦m≦マトリクスの横方向のパケット数を満たす整数である。
前のステップで、カラムFECパケットを用いてデータパケット群のうちシーケンス番号順にn番目のデータパケットが復元されていた場合、シーケンス番号順にn番目のロウFECパケットが選択される。ここでnは、1≦n≦マトリクスの縦方向のパケット数を満たす整数である。
(ステップS815)ステップS814で選択されたFECパケットを用いて復元処理が行えるか否かが判定される。復元処理が行える場合はステップS816へ進み、行えない場合はステップS810へ戻る。
(ステップS816)損失データパケットの復元処理が行われ、ステップS814へ戻る。
(ステップS817)マトリクス内に復元可能なデータパケットがなくなり、このマトリクスの復元処理が終了したと判定され、マトリクス更新部112により次のマトリクスに更新される。
このような方法による損失データパケットの復元の一例を図9に示す。ステップS806でカラムFECパケットがすべて選択されたと判定された状態のマトリクスを図9(a)に示す。まず、シーケンス番号1のロウFECパケットが選択される。このロウFECパケットに対応するデータパケット群に含まれる損失データパケットが0個のため、復元処理は行われない。
図9(b)に示すように、シーケンス番号2のロウFECパケットが選択され、シーケンス番号13のデータパケットが復元される。復元されたデータパケットは、データパケット群において、シーケンス番号順に3番目であるため、次にシーケンス番号3のカラムFECパケットが選択される。
図9(c)に示すように、シーケンス番号23のデータパケットが復元される。復元されたデータパケットは、データパケット群において、シーケンス番号順に3番目であるため、次にシーケンス番号3のロウFECパケットが選択される。
図9(d)に示すように、シーケンス番号24のデータパケットが復元される。復元されたデータパケットは、データパケット群において、シーケンス番号順に4番目であるため、次にシーケンス番号4のカラムFECパケットが選択される。
図9(e)に示すように、シーケンス番号4のカラムFECパケットに対応するデータパケット群には損失データパケットが2個含まれているため、復元処理は行われない。再びロウFECパケットの選択に戻り、図9(f)に示すように、シーケンス番号4のロウFECパケットが選択される。以下、同様の処理を繰り返していくことで復元漏れは防止される。
ロウFECパケット、カラムFECパケットの一方による復元処理が行われた時に、復元したデータパケットに対応するロウFECパケット、カラムFECパケットの他方を選択し、復元可能であれば復元処理を行っている。このようにFECパケットを選択することで、図5に示すような復元が行われる毎に他方のFECパケットを全て選択する方法よりも、FECパケットの選択回数を低減でき、さらに効率良くデータの復元を行うことができる。
図8に示す方法では最初に一旦カラムFECパケットをすべて順に選択しているが(ステップS806〜S809)、図10に示すように、最初にカラムFECパケットを順次選択しているときでも、復元が行われたときに繰り返し処理に移行するように動作してもよい(ステップS1010〜S1012)。
データ受信装置は、図11に示すように、マトリクス内の各FECパケットに対応するデータパケット群の損失数を特定する損失数特定部113、特定した損失数を記憶する損失数記憶部114、及び記憶した損失数を1減らす損失数減算部115をさらに備えるような構成にしてもよい。
このようなデータ受信装置を用いた損失データパケットの復元方法について図12に示すフローチャートを用いて説明する。ステップS1201〜S1205は、上記実施形態における損失データパケット復元方法のステップS501〜S505と同様であるため、説明を省略する。
(ステップS1206)損失数特定部113がデータ記憶情報記憶部103に記憶されているデータ記憶情報を参照し、マトリクスに属する全てのFECパケットの各々について、対応するデータパケット群に含まれる損失数を特定する。特定した損失数は損失数記憶部114に記憶される。損失数の一例を図13に示す。
(ステップS1207)カラムFECパケットがすべて選択されたか否かが判定される。選択された場合はステップS1212へ進み、選択されていない場合はステップS1208へ進む。
(ステップS1208)FECパケット選択部109によりカラムFECパケットがシーケンス番号順に選択される。
(ステップS1209)選択されたカラムFECパケットを用いて復元処理が行えるか否かが判定される。復元可否判定部110が、損失数記憶部114に記憶されている情報に基づき、選択されたカラムFECパケットに対応する損失数が1であるか否かを判定する。
復元処理が行える場合はステップS1210へ進み、行えない場合はステップS1207に戻る。
(ステップS1210)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS1211)損失数減算部115が、損失数記憶部114に記憶されているステップS1210で復元したデータパケットに対応するカラムFECパケット、ロウFECパケットの損失数を1減らす。
(ステップS1212)ロウFECパケットがすべて選択されたか否かが判定される。選択された場合はステップS1221へ進み、選択されていない場合はステップS1213へ進む。
(ステップS1213)FECパケット選択部109によりロウFECパケットがシーケンス番号順に選択される。
(ステップS1214)選択されたロウFECパケットを用いて復元処理が行えるか否かが判定される。復元可否判定部110が、損失数記憶部114に記憶されている情報に基づき、選択されたロウFECパケットに対応する損失数が1であるか否かを判定する。
復元処理が行える場合はステップS1215へ進み、行えない場合はステップS1212に戻る。
(ステップS1215)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS1216)損失数減算部115が、損失数記憶部114に記憶されているステップS1215で復元したデータパケットに対応するカラムFECパケット、ロウFECパケットの損失数を1減らす。
(ステップS1217)前のステップで、ロウFECパケットを用いてデータパケット群のうちシーケンス番号順にm番目のデータパケットが復元されていた場合、シーケンス番号順にm番目のカラムFECパケットが選択される。ここでmは、1≦m≦マトリクスの横方向のパケット数を満たす整数である。
前のステップで、カラムFECパケットを用いてデータパケット群のうちシーケンス番号順にn番目のデータパケットが復元されていた場合、シーケンス番号順にn番目のロウFECパケットが選択される。ここでnは、1≦n≦マトリクスの縦方向のパケット数を満たす整数である。
(ステップS1218)ステップS1217で選択されたFECパケットに対応する損失数が1であるか否かが判定される。損失数が1で復元処理が行える場合はステップS1219へ進み、損失数が1以外で復元処理が行えない場合はステップS1212に戻る。
(ステップS1219)データ復元部111により損失データパケットの復元処理が行われる。
(ステップS1220)損失数減算部115が、損失数記憶部114に記憶されているステップS1219で復元したデータパケットに対応するカラムFECパケット、ロウFECパケットの損失数を1減らす。
(ステップS1221)マトリクス内に復元可能なデータパケットがなくなり、このマトリクスの復元処理が終了したと判定され、マトリクス更新部112により次のマトリクスに更新される。
このような方法による損失データパケットの復元の一例を図14に示す。ステップS1207でカラムFECパケットがすべて選択されたと判定された状態のマトリクスを図14(a)に示す。まず、シーケンス番号1のロウFECパケットが選択される。損失数記憶部114に記憶されている損失数が0のため、復元処理は行われない。
続いて、図14(b)に示すように、シーケンス番号2のロウFECパケットが選択され、損失数記憶部114に記憶されている損失数が確認される。損失数が1のため、復元処理が行われ、シーケンス番号13のデータパケットが復元される。
そして、シーケンス番号13のデータパケットの復元に伴い、対応するFECパケットであるシーケンス番号2のロウFECパケット及びシーケンス番号3のカラムFECパケットの損失数が1減らされる。
復元されたシーケンス番号13のデータパケットは、データパケット群において、シーケンス番号順に3番目であるため、図14(c)に示すように、シーケンス番号3のカラムFECパケットが選択される。
シーケンス番号3のカラムFECパケットは損失数が1であるため、復元処理が行われ、シーケンス番号23のデータパケットが復元される。この復元処理に伴い、シーケンス番号3のカラムFECパケット、ロウFECパケットの損失数が1減らされる。
復元されたデータパケットは、データパケット群において、シーケンス番号順に3番目であるため、図14(d)に示すように、次にシーケンス番号3のロウFECパケットが選択される。
シーケンス番号3のロウFECパケットの損失数は1であるため、復元処理が行われる。この復元処理により、シーケンス番号3のロウFECパケットとシーケンス番号4のカラムFECパケットの損失数が1減らされる。
続いて、図14(e)に示すように、シーケンス番号4のカラムFECパケットが選択される。損失数が2であるため、復元処理は行われない。続いて、図14(f)に示すように、シーケンス番号4のロウFECパケットが選択される。以下、同様の処理を繰り返していくことで復元漏れが防止される。
図1に示すデータ受信装置では復元可否判定部110がデータ記憶情報記憶部103にアクセスし、選択したFECパケットに対応する複数のデータパケットの各々についてデータ部分がデータ記憶部102に記憶されているかを検出し、復元可否判定していた。
一方、図11に示すデータ受信装置は復元可否判定部110が損失数記憶部114にアクセスし、選択されたFECパケットに対応する損失数が1であるか否かを検出するだけで復元可否判定できるので、さらに処理を効率化することができる。
なお、ここではFECパケット群の特定又はマトリクスの更新の段階で損失数の特定を行う例を示したが、これは一例であり、このような実施態様に限定されない。
例えば、最初にカラムFECパケットを順次処理する際にはデータ記憶情報記憶部103にアクセスし、その時に損失数特定と特定した損失数の損失数記憶部114への記憶を行う。そして、ロウFECパケットを順次処理する際に、損失数記憶部114に記憶した損失数を用いて、上記のような処理を行うようにしてもよい。
復元可否判定部110が復元可能と判断した場合、データ復元部111が復元を行うときに、対応するデータパケット群のどのデータパケットが損失しているかを特定する必要があり、データ記憶情報記憶部103へのアクセスが行われる。
このアクセスのオーバーヘッドを軽減するため、データ記憶情報記憶部103と、データ記憶部102を同一のメモリ上に配置し、データ記憶情報と、これに対応するデータ部分の情報とをメモリ上の隣接したアドレスに記憶するようにしてもよい。
復元処理を行うときは、FECの復元の演算のために、必ず全てのデータが読み出される。従って、データ記憶情報を隣接した位置、例えば図15に示すように対応するデータの手前に配置することが好適である。これにより、データ記憶情報をデータ部分の情報と纏めてバースト読み出しすることが可能になり、データ記憶情報を読み出すのに要するクロックサイクル数を低く(通常は1に)抑えることができる。
データ記憶情報を読み出した結果が0であれば、それが損失したデータであることが分かり、そのデータ記憶情報に後続して読み出されるデータ部分の情報は無効であることがわかる。従って、データ記憶情報を読み出した結果が0の時点で、後続するデータ部分の情報のバースト読み出しを中断するようにしてもよい。このようなメモリ構成とすることで、復元処理をさらに効率化することができる。
なお、上述したFECパケット選択部109によるFECパケットの選択パターンは一例であり、これらに限定するものではない。特に、これら選択パターンにおいて、カラムFECパケットとロウFECパケットは互いに置き換えてもよく、この間の順序は問わない。
上記実施形態では、受信したカラムFECパケットのSNBaseと、ロウFECパケットのSNBaseとを比較し、一致したFECパケットを先頭FECパケットと特定していたが、他の方法により特定してもよい。
例えば、受信した任意のカラムFECパケットのSNBaseと、受信した任意のロウFECパケットのいずれかのSNBaseとの差が、カラムFECパケットのOffset×k(kは整数)となるかどうか確認し、なる場合はそのカラムFECパケットを先頭カラムFECパケットと特定するようにしてもよい。
これは、kを順次変えて確認しても良いし、Offsetで割り切れるか(剰余が0となるか)を確認しても良い。例えば図6の場合、シーケンス番号1、7、13のカラムFECパケットが先頭カラムFECパケットとなるが、そのSNBaseは1、25、49であり、これらはロウFECパケットのSNBaseの1、7、13、19、25、31、37、43、49、55、61、67、…のいずれとも、その差がカラムFECパケットのOffsetである6で割り切れることが分かる。
また、ロウFECパケットを用いず、2つのカラムFECパケットのSNBaseを用いて先頭カラムFECパケットを特定するようにしてもよい。カラムFECパケットのSNBaseは、同一マトリクスに属するもの同士であれば値が連続する。
従って、カラムFECパケットをシーケンス番号順に並べた場合、SNBaseが連続する限りそれらは同じマトリクスに属し、SNBaseが不連続になった(値が飛んだ)場合、そこから次のマトリクスになっていることが分かる。
例えば図6において、シーケンス番号1〜6、7〜12、13〜18のカラムFECパケットのSNBaseは連続しているが、シーケンス番号6と7、12と13のSNBaseは、それぞれ6と25、30と49というように連続していないことが分かる。
従って、シーケンス番号が連続するカラムFECパケット同士を比較し、SNBaseが連続していない場合、シーケンス番号が大きい方のFECパケットが先頭カラムFECパケットであると特定できる。
例えば連続して受信する2つのFECパケット(例えばIPネットワーク経由だと必ずしもシーケンス番号が連続しない)を比較する場合、まずFECパケットを受信する毎にシーケンス番号とSNBaseを記憶しておく。そして、同じくカラムFECパケットを受信する毎に、受信したカラムFECパケットのシーケンス番号が、記憶している1つ前に受信したカラムFECパケットのシーケンス番号+1であり、かつ、SNBaseが記憶している1つ前に受信したカラムFECパケットのSNBase+1ではない、となるかどうか確認する。シーケンス番号が+1であり(連続)、SNBaseが+1でない(不連続)場合は、その新たに受信したカラムFECパケットを、マトリクスの先頭カラムFECパケットと特定する。
マトリクスの先頭のカラムFECパケットのSNBaseは先頭のデータパケットのシーケンス番号を表しているが、それは1つ前のマトリクスの末尾のデータパケットのシーケンス番号+1である。マトリクスの末尾のデータパケットのシーケンス番号は、マトリクスの末尾のカラムFECパケットのSNBase+Offset×(NA−1)として求められる。
従って、マトリクスの末尾のカラムFECパケットのSNBaseと、次のマトリクスの先頭のカラムFECパケットのSNBaseは、その差が必ずSNBase+Offset×(NA−1)+1となるといえる。
例えば図6の場合、1つ目のマトリクスの最後と2つ目のマトリクスの最初のカラムFECパケットのSNBaseはそれぞれ6と25、2つ目のマトリクスの最後と3つ目のマトリクスの最初のカラムFECパケットのSNBaseは30と49で、共に差が19である。これは6×(4−1)+1であることが分かる。この確認を行えば、シーケンス番号を用いずにSNBaseのみの比較でマトリクスの先頭カラムFECパケットを特定できる。
例えば連続して受信する2つのカラムFECパケットを比較する場合、まずカラムFECパケットを受信する毎にそのSNBaseを記憶しておく。そして、同じくカラムFECパケットを受信する毎に、受信したカラムFECパケットのSNBaseと記憶している1つ前に受信したカラムFECパケットのSNBaseの差がOffset×(NA−1)+1となるかどうか確認する。差がOffset×(NA−1)+1となる場合は、その新たに受信したカラムFECパケットをマトリクスの先頭カラムFECパケットと特定する。
このようにして先頭カラムFECパケットを特定できたら、その先頭カラムFECパケットとSNBaseが一致するロウFECパケットを探索すれば、それが先頭ロウFECパケットと特定できる。
ただし、Pro−MPEGなどでは、同じマトリクスのロウFECパケットよりカラムFECパケットの方が送出されるタイミングが遅い場合がある。従って、先頭ロウFECパケットを受信した時点では、未だ対応する先頭カラムFECパケットを受信していない、すなわち、対応する先頭カラムFECパケットが特定されていない場合がある。
そのような場合は、先頭カラムFECパケットを特定した後、数マトリクス先の先頭カラムFECパケットを推定し、それを新たに先頭カラムFECパケットとして特定する。そして、受信したロウFECパケットは、その新たに特定された先頭カラムFECパケットとSNBaseを比較すればよい。
j個先のマトリクスの先頭カラムFECパケットのシーケンス番号を、もとのマトリクスの先頭カラムFECパケットのシーケンス番号+Offset×jと特定できる。また、SNBaseは、もとのマトリクスの先頭カラムFECパケットのSNBase+Offset×NA×jとなるので、このSNBaseを有するロウFECパケットを先頭ロウFECパケットと特定する。
Pro−MPEGの場合、例えば図6のシーケンス番号1のカラムFECパケットとシーケンス番号9のロウFECパケットの送出タイミングは図16のようになる。シーケンス番号1のカラムFECパケットは、図の斜線部(シーケンス番号25〜43)のいずれかのデータパケットの送信時に送信され、シーケンス番号9のロウFECパケットは例えば図の縦縞部(シーケンス番号54)のデータパケットの送信時に送信される。
受信側もほぼこの順序でFECパケットを受信することになる。このような場合、シーケンス番号1のカラムFECパケットが先頭になると分かるのは、図の斜線部のデータパケットを受信するときである。従って、j=2とし、2つ先のマトリクスでは、シーケンス番号13のカラムFECパケットが先頭カラムFECパケットとなると特定する。
シーケンス番号13のカラムFECパケットは、その後に受信されるシーケンス番号9のロウFECパケットとSNBaseが49で一致することになり、先頭ロウFECパケットを特定することができる。
SNBaseが先頭カラムFECパケットと一致するロウFECパケットの探索をしなくてもよい。任意のロウFECパケットのSNBaseと、先頭カラムFECパケットのSNBaseとの差を、カラムFECパケットのOffsetで割った値をpとすると、そのロウFECパケットのシーケンス番号−pが、先頭ロウFECパケットのシーケンス番号として特定できる。
例えば図6の場合、シーケンス番号1のカラムFECパケットが先頭と特定されたとき、シーケンス番号9のロウFECパケットとSNBaseの差は48となる。この差48をOffset6で割るとp=8となり、シーケンス番号9−8=1のロウFECパケットが、シーケンス番号1の先頭カラムFECパケットに対応する先頭ロウFECパケットと特定できることが分かる。
また、任意のカラムFECパケットとロウFECパケットを一つずつ用いて、先頭カラムFECパケットと先頭ロウFECパケットを特定するようにしてもよい。受信したあるカラムFECパケットのSNBaseをSNBase1、あるロウFECパケットのSNBaseをSNBase2とし、(SNBase2−SNBase1−1)÷カラムFECパケットのOffset(またはロウFECパケットのNA)の商をOffsetD、剰余をOffsetLとして求める。
そして、SNBase1をもつカラムFECパケットのシーケンス番号をSN1、SNBase2をもつロウFECパケットのシーケンス番号をSN2とすると、マトリクスの先頭カラムFECパケットのシーケンス番号=SN1+(OffsetL+1)−カラムFECパケットのOffset、マトリクスの先頭ロウFECパケットのシーケンス番号=SN2−(OffsetD+1)と特定できる。
この方法を用いると、任意のカラムFECパケットとロウFECパケットが1つずつあれば、先頭カラムFECパケットと先頭ロウFECパケットを特定することができる。
例えば図6において、シーケンス番号9、SNBase27のカラムFECパケットと、シーケンス番号11、SNBase61のロウFECパケットを用いて先頭FECパケットを特定する。SN1=9、SN2=11、SNBase1=27、SNBase2=61、カラムFECパケットのOffset=6なので、OffsetD=5、OffsetL=3となる。
これらの値を上述した式に代入すると、先頭カラムFECパケットのシーケンス番号は7、先頭ロウFECパケットのシーケンス番号は5となり、2つ目のマトリクスの先頭カラムFECパケットと先頭ロウFECパケットを特定できることが分かる。
上記実施形態によるデータ受信装置は、データパケット及びFECパケットを受信してデータ記憶部に記憶し、必要に応じて損失データの復元を行うものであるが、さらに、データ記憶部に記憶されたデータを読み出し、その映像データや音声データを表示・再生するなどの後段の処理を行う処理部を備えるようにしてもよい。
以上、いくつかの方法で先頭FECパケットを特定する方法を述べたが、これらの手法を用いて先頭FECパケットを特定しても、送信側の都合によりマトリクスの仕様(すなわち、マトリクスの1列あたりのパケット数、1行あたりのパケット数、FECパケットのシーケンス番号とSNBaseの関係など)が動的に変わる可能性がある。その場合、図17に示すようなデータ受信装置を用いることでマトリクスの仕様の変化を検出できる。
図17に示すデータ受信装置は、図1に示すデータ受信装置に、FECパラメータ記憶部120及びマトリクス変化検知部121をさらに備えるような構成になっている。
FECパラメータ記憶部120は、先頭FECパケット特定部107が特定した先頭カラムFECパケット及び先頭ロウFECパケットのシーケンス番号やFECパラメータを記憶する。
マトリクス変化検知部121は、FECパラメータ特定部106により特定された受信FECパケットのFECパラメータや、FECパラメータ記憶部120に記憶された情報を用いて、マトリクスの仕様変化を検知する。
例えば、マトリクス変化検知部121は、FECパラメータ特定部106が特定したカラムFECパケット又はロウFECパケットのOffset又はNAと、FECパラメータ記憶部120に記憶されている先頭FECパケット特定部107が特定した先頭カラムFECパケット又は先頭ロウFECパケットのOffset又はNAとを比較する。比較結果が一致しなくなると、マトリクスの1列あたりのパケット数又は1行あたりのパケット数が変化したことを意味するので、マトリクス変化検知部121はこれをもってマトリクスの仕様変化を検知する。
また、マトリクスの1列あたりのパケット数又は1行あたりのパケット数が変化しなくても、FECパケットのシーケンス番号の増加と、FECパケットが指すデータパケットのシーケンス番号、すなわちSNBaseの増加との整合性がとれなくなる場合がある。
例えば、図6に示すようなマトリクスの場合、カラムFECパケットはマトリクスが1つ進む毎にシーケンス番号が6ずつ増加し、SNBaseは6×4=24ずつ増加する。つまり、先頭カラムFECパケット同士を比較した場合、そのシーケンス番号の差×マトリクスの縦の長さ(列方向のパケット数)=SNBaseの差という関係が成り立つ。従って、この関係が成り立たなくなったとき、マトリクスの仕様が変化したことを意味する。
同様に、ロウFECパケットの場合は、シーケンス番号の差×マトリクスの横の長さ(行方向のパケット数)=SNBaseの差という関係が成り立ち、この関係が成り立たなくなったとき、マトリクスの仕様が変化したことを意味する。
そこで、このようなマトリクスの仕様変化を検知するため、先頭FECパケット特定部107は一旦先頭ロウFECパケット及び先頭カラムFECパケットを特定しても、引き続き各マトリクスの先頭ロウFECパケット及び先頭カラムFECパケットの特定を行う。
そして、各マトリクスの先頭ロウFECパケット及び先頭カラムFECパケットが特定される度に、これらのシーケンス番号及びSNBaseがFECパラメータ記憶部120に記憶される。
マトリクス変化検知部121は、新たにFECパラメータ記憶部120に記憶されたシーケンス番号及びSNBaseと、1つ前に記憶されたシーケンス番号及びSNBaseを用いて、カラムFECパケット、ロウFECパケットの各々について上述の関係式が成り立つか否かを判定する。関係式が成り立たない場合は、マトリクスの仕様が変化したことが検知される。
以上のような方法でマトリクス変化検知部121により、マトリクスの仕様が変化したことが検知されると、再び先頭マトリクスの特定が行われる。
上記実施形態によるデータ受信装置は、汎用のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。データ受信装置は、プログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD−ROM等の記憶媒体に記憶して、又はネットワークを介してプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
上述した実施の形態は一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の実施形態によるデータ受信装置の概略構成図である。 FECパケット生成の一例を示す図である。 損失データパケットの復元の一例を示す図である。 マトリクスの更新の一例を示す図である。 損失データパケットの復元方法を説明するフローチャートである。 FECパケットのSNBaseの一例を示す図である。 損失データパケットの復元処理の一例を示す図である。 損失データパケットの復元方法の他の例を説明するフローチャートである。 損失データパケットの復元処理の他の例を示す図である。 損失データパケットの復元方法の他の例を説明するフローチャートである。 変形例によるデータ受信装置の概略構成図である。 損失データパケットの復元方法の他の例を説明するフローチャートである。 損失数の一例を示す図である。 損失データパケットの復元処理の他の例を示す図である。 データ記憶情報の記憶領域の一例を示す図である。 FECパケットの送出タイミングの一例を示す図である。 変形例によるデータ受信装置の概略構成図である。
符号の説明
101 パケット受信部
102 データ記憶部
103 データ記憶情報記憶部
104 パケット種別特定部
105 シーケンス番号特定部
106 FECパラメータ特定部
107 先頭FECパケット特定部
108 FECパケット群特定部
109 FECパケット選択部
110 復元可否判定部
111 データ復元部
112 マトリクス更新部

Claims (21)

  1. パケットを受信するパケット受信部と、
    前記パケット受信部により受信されたパケットが、データパケット、カラムFECパケット、及びロウFECパケットのいずれの種別であるかを特定するパケット種別特定部と、
    前記パケット受信部により受信されたパケットのシーケンス番号を特定するシーケンス番号特定部と、
    前記パケット受信部により受信されたパケットを前記特定された種別及びシーケンス番号と関連付けて記憶するデータ記憶部と、
    前記パケット受信部により受信されたデータパケットのデータ部分が前記データ記憶部に記憶されたことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けて記憶するデータ記憶情報記憶部と、
    前記パケット受信部により受信されたカラムFECパケット及びロウFECパケットのヘッダを解析し、SNBase(SNBaseはFECパケット生成に用いられる複数のデータパケットのシーケンス番号のうち、最小のシーケンス番号を示す値)、Offset(OffsetはFECパケット生成に用いられる複数のデータパケットをシーケンス番号順に並べた時に隣接するデータパケットのシーケンス番号の差を示す値)、及びNA(NAはFECパケット生成に用いられるデータパケット数を示す値)を含むFECパラメータを特定するFECパラメータ特定部と、
    少なくとも第1のカラムFECパケットから特定されたSNBaseと、第2のカラムFECパケット又はロウFECパケットから特定されたSNBaseとを用いて、マトリクスの先頭のFECパケットとなる先頭カラムFECパケット及び先頭ロウFECパケットを特定する先頭FECパケット特定部と、
    前記先頭カラムFECパケットと同一のマトリクスに対応するカラムFECパケットからなるカラムFECパケット群及び前記先頭ロウFECパケットと同一のマトリクスに対応するロウFECパケットからなるロウFECパケット群を特定するFECパケット群特定部と、
    前記カラムFECパケット群又は前記ロウFECパケット群から1つのFECパケットを選択するFECパケット選択部と、
    前記FECパケット選択部により選択されたFECパケットの前記FECパラメータに基づいて、前記選択されたFECパラメータに対応する複数のデータパケットのシーケンス番号を特定し、この特定した複数のシーケンス番号のデータパケットのデータ部分が前記データ記憶部に記憶されているか否かを前記データ記憶情報記憶部に記憶されている前記データ記憶情報に基づいて検出し、データ部分が記憶されていない損失データパケットの数が1つの時は損失データパケットの復元は可能と判定して復元開始信号を出力し、1つ以外の時は損失データパケットの復元は不可と判定する復元可否判定部と、
    前記復元開始信号に基づき、前記損失データパケットに対応するFECパケット及びデータパケットのデータを前記データ記憶部から読み出し、この読み出したデータを用いて前記損失データパケットを復元し、復元したデータパケットを前記データ記憶部に記憶し、この復元したデータパケットについてデータ部分が前記データ記憶部に記憶されたことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けて前記データ記憶情報記憶部に記憶するデータ復元部と、
    を備えるデータ受信装置。
  2. 前記FECパケット選択部は、前記カラムFECパケット群に含まれる全てのカラムFECパケット及び前記ロウFECパケット群に含まれる全てのロウFECパケットを少なくとも1回は選択し、前記データ復元部により前記カラムFECパケットを用いて損失データパケットの復元が行われると、復元後にロウFECパケットの選択を行い、前記データ復元部により前記ロウFECパケットを用いて損失データパケットの復元が行われると、復元後にカラムFECパケットの選択を行うことを特徴とする請求項1に記載のデータ受信装置。
  3. 前記先頭FECパケット特定部は、前記第1のカラムFECパケットから特定されたSNBaseと前記ロウFECパケットから特定されたSNBaseとの差が、前記第1のカラムFECパケットから特定されたOffset×k(kは整数)又は前記第2のカラムFECパケットから特定されたNA×kと等しいか否か検出し、等しい場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  4. 前記先頭FECパケット特定部は、前記第1のカラムFECパケットから特定されたSNBaseと前記ロウFECパケットから特定されたSNBaseとが一致するか否か検出し、一致する場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  5. 前記第2のカラムFECパケットのシーケンス番号は前記第1のカラムFECパケットのシーケンス番号から1を減じた値であり、前記先頭FECパケット特定部は、前記第1のカラムFECパケットから特定されたSNBaseが前記第2のカラムFECパケットから特定されたSNBaseに1を加えた値と等しいか否か検出し、等しくない場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  6. 前記先頭FECパケット特定部は、前記第1のカラムFECパケットから特定されたSNBaseと前記第2のカラムFECパケットから特定されたSNBaseとの差が、前記第1のカラムFECパケットから特定されたOffset×(前記第1のカラムFECパケットから特定されたNA−1)+1と一致するか否かを検出し、一致する場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  7. 前記先頭FECパケット特定部は、先頭カラムFECパケットの特定後に、前記ロウFECパケットから特定されたSNBaseと、前記先頭カラムFECパケットから特定されたSNBaseとの差を、前記先頭カラムFECパケットから特定されたOffset又は前記ロウFECパケットから特定されたNAで除して、商p(pは整数)を算出し、シーケンス番号が前記ロウFECパケットのシーケンス番号−pとなるロウFECパケットを先頭ロウFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  8. 前記先頭FECパケット特定部は、先頭カラムFECパケットの特定後に、前記ロウFECパケットから特定されたSNBaseと、前記先頭カラムFECパケットから特定されたSNBaseとが一致するか否か検出し、一致する場合は前記ロウFECパケットを先頭ロウFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  9. 前記先頭FECパケット特定部は、前記第1のカラムFECパケットのシーケンス番号をSN1、SNBaseをSNBase1、前記ロウFECパケットのシーケンス番号をSN2、SNBaseをSNBase2とし、(SNBase2−SNBase1−1)÷前記第1のカラムFECパケットのOffsetという演算を行い商OffsetD、剰余OffsetLを算出し、シーケンス番号がSN1+OffsetL+1−前記第1のカラムFECパケットのOffsetとなるカラムFECパケットを先頭カラムFECパケットと特定し、シーケンス番号がSN2−OffsetD−1となるロウFECパケットを先頭ロウFECパケットと特定することを特徴とする請求項1に記載のデータ受信装置。
  10. 前記先頭FECパケット特定部により特定された前記先頭カラムFECパケット及び前記ロウFECパケットのシーケンス番号及びFECパラメータを記憶するFECパラメータ記憶部と、
    前記FECパラメータ特定部により特定されたカラムFECパケットのOffset又はSNBaseと、前記FECパラメータ記憶部に記憶された前記先頭カラムFECパケットのOffset又はSNBaseとが等しいか否か、
    前記FECパラメータ特定部により特定されたロウFECパケットのOffset又はSNBaseと、前記FECパラメータ記憶部に記憶された前記先頭ロウFECパケットのOffset又はSNBaseとが等しいか否か、
    前記FECパラメータ記憶部に記憶された異なる2つの前記先頭カラムFECパケットのシーケンス番号の差とNAとの積がSNBaseの差と等しいか否か、及び
    前記FECパラメータ記憶部に記憶された異なる2つの前記先頭ロウFECパケットのシーケンス番号の差とNAとの積がSNBaseの差と等しいか否か、を判定し、少なくともいずれか1つが等しくないと判定した場合に、マトリクスの仕様が変化したことを検知するマトリクス変化検知部と、
    をさらに備えることを特徴とする請求項1に記載のデータ受信装置。
  11. 前記マトリクスに復元可能なデータパケットが無くなった時に、前記カラムFECパケット群に含まれるカラムFECパケットのシーケンス番号順に後続する前記カラムFECパケットのOffset個のカラムFECパケットと、前記ロウFECパケット群に含まれるロウFECパケットのシーケンス番号順に後続する前記カラムFECパケットのNA個のロウFECパケットを次のマトリクスに対応するカラムFECパケット群、ロウFECパケット群として特定し、マトリクスの更新を行うマトリクス更新部をさらに備えることを特徴とする請求項1に記載のデータ受信装置。
  12. 前記FECパケット選択部は、前記カラムFECパケット群又は前記ロウFECパケット群のいずれか一方に含まれる全てのFECパケットを順次選択し、その後に前記カラムFECパケット群又は前記ロウFECパケット群の他方に含まれる全てのFECパケットを順次選択し、
    前記他方に含まれるFECパケットの選択の際に損失データパケットの復元が行われた場合、再度前記一方に含まれる全てのFECパケットを順次選択することを特徴とする請求項1に記載のデータ受信装置。
  13. 前記FECパケット選択部は、前記カラムFECパケット群又は前記ロウFECパケット群のいずれか一方に含まれるFECパケットの選択により、このFECパケットに対応するデータパケットのうちシーケンス番号順にm番目(mは自然数)のデータパケットの損失の復元が行われた場合、前記カラムFECパケット群又は前記ロウFECパケット群の他方に含まれるFECパケットのうちシーケンス番号順にm番目のFECパケットを優先的に選択することを特徴とする請求項1に記載のデータ受信装置。
  14. 前記データ記憶情報記憶部に記憶されている前記データ記憶情報を参照して、前記カラムFECパケット群に含まれるカラムFECパケット、前記ロウFECパケット群に含まれるロウFECパケットの各々に対応するデータパケットの損失数を特定する損失数特定部と、
    前記損失数をFECパケット毎に記憶する損失数記憶部と、
    前記データ復元部により復元されたデータパケットに対応するFECパケットの、前記損失数記憶部に記憶されている前記損失数を1減じる損失数減算部と、
    をさらに備え、
    前記復元可否判定部は、前記FECパケット選択部により選択されたFECパケットの、前記損失数記憶部に記憶されている前記損失数が1のとき、損失データパケットの復元は可能と判定して前記復元開始信号を出力し、1以外の時は損失データパケットの復元は不可と判定することを特徴とする請求項1に記載のデータ受信装置。
  15. パケットを受信し、
    前記受信したパケットが、データパケット、カラムFECパケット、及びロウFECパケットのいずれの種別であるかを特定し、
    前記受信したパケットのシーケンス番号を特定し、
    前記受信したパケットを前記特定した種別及びシーケンス番号と関連付けてデータ記憶部に格納し、
    前記受信したデータパケットのデータ部分を前記データ記憶部に記憶したことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けてデータ記憶情報記憶部に格納し、
    前記受信したパケットのうち、カラムFECパケット及びロウFECパケットのヘッダを解析し、SNBase(SNBaseはFECパケット生成に用いられる複数のデータパケットのシーケンス番号のうち、最小のシーケンス番号を示す値)、Offset(OffsetはFECパケット生成に用いられる複数のデータパケットをシーケンス番号順に並べた時に隣接するデータパケットのシーケンス番号の差を示す値)、及びNA(NAはFECパケット生成に用いられるデータパケット数を示す値)を含むFECパラメータを特定し、
    少なくとも第1のカラムFECパケットから特定したSNBaseと、第2のカラムFECパケット又はロウFECパケットから特定したSNBaseとを用いて、マトリクスの先頭のFECパケットとなる先頭カラムFECパケット及び先頭ロウFECパケットを特定し、
    前記先頭カラムFECパケットと同一のマトリクスに対応するカラムFECパケットからなるカラムFECパケット群及び前記先頭ロウFECパケットと同一のマトリクスに対応するロウFECパケットからなるロウFECパケット群を特定し、
    前記カラムFECパケット群又は前記ロウFECパケット群から1つのFECパケットを選択し、
    前記選択したFECパケットの前記FECパラメータに基づいて、前記選択したFECパラメータに対応する複数のデータパケットのシーケンス番号を特定し、この特定した複数のシーケンス番号のデータパケットのデータ部分が前記データ記憶部に格納されているか否かを前記データ記憶情報記憶部に格納されている前記データ記憶情報に基づいて検出し、データ部分が記憶されていない損失データパケットの数が1つの時は損失データパケットの復元は可能と判定し、1つ以外の時は損失データパケットの復元は不可と判定し、
    前記損失データパケットを復元可能と判定した場合は、前記損失データパケットに対応するFECパケット及びデータパケットのデータを前記データ記憶部から読み出し、この読み出したデータを用いて前記損失データパケットを復元し、復元したデータパケットを前記データ記憶部に格納し、この復元したデータパケットのデータ部分を前記データ記憶部に格納したことを示すデータ記憶情報をシーケンス番号に関連付けて前記データ記憶情報記憶部に格納する、データ受信方法。
  16. 前記カラムFECパケット群に含まれる全てのカラムFECパケット及び前記ロウFECパケット群に含まれる全てのロウFECパケットを少なくとも1回は選択し、
    前記カラムFECパケットを用いて前記損失データパケットの復元が行われると、復元後にロウFECパケットの選択を行い、
    前記ロウFECパケットを用いて前記損失データパケットの復元が行われると、復元後にカラムFECパケットの選択を行うことを特徴とする請求項15に記載のデータ受信方法。
  17. 前記第1のカラムFECパケットから特定したSNBaseと前記ロウFECパケットから特定したSNBaseとの差が、前記第1のカラムFECパケットから特定したOffset×k(kは整数)又は前記第2のカラムFECパケットから特定したNA×kと等しいか否か検出し、等しい場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項15に記載のデータ受信方法。
  18. 前記第2のカラムFECパケットのシーケンス番号は前記第1のカラムFECパケットのシーケンス番号から1を減じた値であり、前記第1のカラムFECパケットから特定したSNBaseが前記第2のカラムFECパケットから特定したSNBaseに1を加えた値と等しいか否か検出し、等しくない場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項15に記載のデータ受信方法。
  19. 前記第1のカラムFECパケットから特定したSNBaseと前記第2のカラムFECパケットから特定したSNBaseとの差が、前記第1のカラムFECパケットから特定したOffset×(前記第1のカラムFECパケットから特定したNA−1)+1と一致するか否かを検出し、一致する場合は前記第1のカラムFECパケットを先頭カラムFECパケットと特定することを特徴とする請求項15に記載のデータ受信方法。
  20. 前記マトリクスに復元可能なデータパケットが無くなった後に、前記カラムFECパケット群に含まれるカラムFECパケットのシーケンス番号順に後続する前記カラムFECパケットのOffset個のカラムFECパケットと、前記ロウFECパケット群に含まれるロウFECパケットのシーケンス番号順に後続する前記カラムFECパケットのNA個のロウFECパケットを次のマトリクスに対応するカラムFECパケット群、ロウFECパケット群として特定して、マトリクスの更新を行うことを特徴とする請求項15に記載のデータ受信方法。
  21. パケットを受信するステップと、
    前記受信したパケットが、データパケット、カラムFECパケット、及びロウFECパケットのいずれの種別であるかを特定するステップと、
    前記受信したパケットのシーケンス番号を特定するステップと、
    前記受信したパケットを前記特定した種別及びシーケンス番号と関連付けてデータ記憶部に格納するステップと、
    前記受信したデータパケットのデータ部分を前記データ記憶部に記憶したことを示すデータ記憶情報をこのデータパケットのシーケンス番号と関連付けてデータ記憶情報記憶部に格納するステップと、
    前記受信したパケットのうち、カラムFECパケット及びロウFECパケットのヘッダを解析し、SNBase(SNBaseはFECパケット生成に用いられる複数のデータパケットのシーケンス番号のうち、最小のシーケンス番号を示す値)、Offset(OffsetはFECパケット生成に用いられる複数のデータパケットをシーケンス番号順に並べた時に隣接するデータパケットのシーケンス番号の差を示す値)、及びNA(NAはFECパケット生成に用いられるデータパケット数を示す値)を含むFECパラメータを特定するステップと、
    少なくとも第1のカラムFECパケットから特定したSNBaseと、第2のカラムFECパケット又はロウFECパケットから特定したSNBaseとを用いて、マトリクスの先頭のFECパケットとなる先頭カラムFECパケット及び先頭ロウFECパケットを特定するステップと、
    前記先頭カラムFECパケットと同一のマトリクスに対応するカラムFECパケットからなるカラムFECパケット群及び前記先頭ロウFECパケットと同一のマトリクスに対応するロウFECパケットからなるロウFECパケット群を特定するステップと、
    前記カラムFECパケット群又は前記ロウFECパケット群から1つのFECパケットを選択するステップと、
    前記選択したFECパケットの前記FECパラメータに基づいて、前記選択したFECパラメータに対応する複数のデータパケットのシーケンス番号を特定し、この特定した複数のシーケンス番号のデータパケットのデータ部分が前記データ記憶部に格納されているか否かを前記データ記憶情報記憶部に格納されている前記データ記憶情報に基づいて検出し、データ部分が記憶されていない損失データパケットの数が1つの時は損失データパケットの復元は可能と判定し、1つ以外の時は損失データパケットの復元は不可と判定するステップと、
    前記損失データパケットを復元可能と判定した場合は、前記損失データパケットに対応するFECパケット及びデータパケットのデータを前記データ記憶部から読み出し、この読み出したデータを用いて前記損失データパケットを復元し、復元したデータパケットを前記データ記憶部に格納し、この復元したデータパケットのデータ部分を前記データ記憶部に格納したことを示すデータ記憶情報をシーケンス番号に関連付けて前記データ記憶情報記憶部に格納するステップと、をコンピュータに実行させるためのデータ受信プログラム。
JP2008214034A 2008-08-22 2008-08-22 データ受信装置、データ受信方法、及びデータ受信プログラム Expired - Fee Related JP5135121B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008214034A JP5135121B2 (ja) 2008-08-22 2008-08-22 データ受信装置、データ受信方法、及びデータ受信プログラム
US12/365,741 US8140941B2 (en) 2008-08-22 2009-02-04 Data receiving apparatus, data receiving method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008214034A JP5135121B2 (ja) 2008-08-22 2008-08-22 データ受信装置、データ受信方法、及びデータ受信プログラム

Publications (2)

Publication Number Publication Date
JP2010050809A JP2010050809A (ja) 2010-03-04
JP5135121B2 true JP5135121B2 (ja) 2013-01-30

Family

ID=41697450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008214034A Expired - Fee Related JP5135121B2 (ja) 2008-08-22 2008-08-22 データ受信装置、データ受信方法、及びデータ受信プログラム

Country Status (2)

Country Link
US (1) US8140941B2 (ja)
JP (1) JP5135121B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397140B2 (en) * 2010-06-04 2013-03-12 Apple Inc. Error correction coding for recovering multiple packets in a group view of limited bandwidth
JP5677070B2 (ja) * 2010-12-14 2015-02-25 キヤノン株式会社 受信装置及び、受信装置による処理方法
KR20120137198A (ko) * 2011-06-11 2012-12-20 삼성전자주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
KR102028948B1 (ko) * 2011-11-08 2019-10-17 삼성전자주식회사 멀티미디어 통신 시스템에서 어플리케이션 계층-순방향 오류 정정 패킷 송/수신 장치 및 방법
KR101961736B1 (ko) * 2012-04-23 2019-03-25 삼성전자 주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
US9060252B2 (en) 2012-07-31 2015-06-16 International Business Machines Corporation Rate adaptive transmission of wireless broadcast packets
US9059847B2 (en) 2013-04-26 2015-06-16 International Business Machines Corporation Reliable multicast broadcast in wireless networks
US9838467B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Dynamically instantiating dual-queue systems
US9753818B2 (en) * 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9660930B2 (en) 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9836358B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Ephemeral remote data store for dual-queue systems
US9838346B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
EP3171536B1 (en) * 2014-07-18 2022-08-31 Sony Group Corporation Receiving device, receiving method, and computer program
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675340B1 (en) * 2000-10-19 2004-01-06 Network Equipment Technologies, Inc. Forward error correction (FEC) for packetized data networks
US7020823B2 (en) * 2002-03-19 2006-03-28 Matsushita Electric Industrial Co., Ltd. Error resilient coding, storage, and transmission of digital multimedia data
US6851084B2 (en) * 2002-06-10 2005-02-01 Harris Corporation Forward error correction method and system for reliable transmission of real time data over a packet based network
US6978343B1 (en) * 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
JP3815557B2 (ja) * 2002-08-27 2006-08-30 ソニー株式会社 符号化装置及び符号化方法、並びに復号装置及び復号方法
EP1553735A1 (en) * 2002-10-17 2005-07-13 Matsushita Electric Industrial Co., Ltd. Packet transmission/reception device
JP2004274214A (ja) * 2003-03-06 2004-09-30 Sumitomo Electric Ind Ltd 送信装置、受信装置、それらの方法およびそれらを接続した通信システム並びに誤り訂正装置
FR2861517B1 (fr) * 2003-10-23 2006-01-27 Thomson Licensing Sa Methode de reconstruction de paquets perdus et appareils implementant la methode
JP4349114B2 (ja) * 2003-12-10 2009-10-21 ソニー株式会社 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
JP2005229504A (ja) * 2004-02-16 2005-08-25 Sumitomo Electric Ind Ltd データ送信装置、データ受信装置およびデータ送受信方法
US7971129B2 (en) * 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
JP4250654B2 (ja) 2006-11-17 2009-04-08 株式会社東芝 通信装置、通信方法および通信プログラム
BRPI0622135A2 (pt) * 2006-12-21 2011-12-27 Thomson Licensing mÉtodo para suporte corretivo de erros futuros para dados de vÍdeo e Áudio em tempo real atravÉs de redes de trabalho protocoladas na internet
JP5075536B2 (ja) * 2007-09-03 2012-11-21 株式会社東芝 Fec送信処理装置、ならびにfec送信処理のための方法およびプログラム
JP2009200744A (ja) * 2008-02-20 2009-09-03 Nec Engineering Ltd 通信装置およびfec制御情報判定・検出方法
JP4930449B2 (ja) * 2008-04-24 2012-05-16 株式会社Jvcケンウッド 前方誤り復元方式受信装置および前方誤り復元方式受信出力方法

Also Published As

Publication number Publication date
US8140941B2 (en) 2012-03-20
JP2010050809A (ja) 2010-03-04
US20100050055A1 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
JP5135121B2 (ja) データ受信装置、データ受信方法、及びデータ受信プログラム
EP2117184B1 (en) Method and apparatus for longest prefix matching based on a tree
US7860106B2 (en) System and method for routing table computation and analysis
JP5409032B2 (ja) 送信装置、及び、方法、プログラム
CN104170333A (zh) 用于快速且大规模的最长前缀匹配的方法和系统
US10291512B2 (en) Interest message path steering and multi-path traceroute in information-centric networking
JP2004165922A (ja) 情報処理装置および方法、並びにプログラム
US20120191871A1 (en) Method and Apparatus for Selecting Optimum Transfer Protocol
US7583589B2 (en) Computing repair path information
JP2012129751A (ja) 受信装置及び、受信装置による処理方法
JP2016116132A (ja) 通信制御装置、通信制御方法、および、通信制御プログラム
JP2009021818A (ja) データ送信装置およびデータ再送方法
JP5174076B2 (ja) 計算処理装置、受信処理装置、受信処理方法及び受信処理プログラム
JP2009284271A (ja) ネットワーク経路選択方法および通信システム
CN104954419A (zh) 使用网络名称的多对象兴趣
JP4404215B2 (ja) 画像形成装置、管理装置、ネットワークシステム、画像形成装置の制御プログラム、及び管理装置の制御プログラム
JP2016092640A (ja) 生成装置、生成方法及びプログラム
Xu et al. Selecting shorter alternate paths for tunnel-based IP Fast ReRoute in linear time
US7844774B2 (en) Extensible fingerprinting functions and content addressed storage system using the same
US20190313245A1 (en) SYSTEM AND METHOD FOR ENHANCED DIVERSITY AND NETWORK CODING (eDC-NC)
JP4930449B2 (ja) 前方誤り復元方式受信装置および前方誤り復元方式受信出力方法
JP2010199651A (ja) 重複アドレス検出システム、送信装置及び受信装置
TW201251387A (en) Domain gateway control system and method thereof
JP6875474B2 (ja) 通信システムおよび通信方法
CN112187639B (zh) 一种基于流属性的数据包路径编码的生成方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121012

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

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

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

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5135121

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees