(58)【調査した分野】(Int.Cl.,DB名)
前記少なくとも一つのパケットは、所定のパケットフォーマットにより生成され、各パケットは一つのソースペイロードのペイロード長に対する情報を有するヘッダーを含むことを特徴とする請求項1に記載の方法。
前記少なくとも一つのパケットは、所定のパケットフォーマットにより生成され、各パケットは一つのソースペイロードのペイロード長に対する情報を有するヘッダーを含むことを特徴とする請求項7に記載の符号化装置。
【発明を実施するための形態】
【0017】
以下、本発明の望ましい実施形態を添付の図面を参照して詳細に説明する。
【0018】
したがって、本発明の実施形態では、理解を助けるために多様で詳細な説明を含む。しかしながら、これら詳細な説明は、ほとんど典型的な例として考えられる。また、本発明の範囲及び精神を逸脱することなく、以下に説明される本発明の様々な変形及び変更が可能であることは、当該技術分野における通常の知識を持つ者には明らかである。なお、公知の機能または構成に関する具体的な説明は、明瞭性と簡潔性のために省略する。
【0019】
次の説明及び請求項に使用される用語及び単語は、辞典的意味に限定されるものではなく、発明者によって本発明の理解を明確にかつ一貫性のあるようにするために使用される。したがって、特許請求範囲とそれと均等なものに基づいて定義されるもので、本発明の実施形態の説明が但し実例を提供するためのことで、本発明の目的を限定するものでないことは、本発明の技術分野で通常の知識を持つ者には明らかである。
【0020】
本願明細書に記載の各要素は、文脈中に特に明示しない限り、複数形を含むことは、当業者には理解できるものである。したがって、例えば、コンポーネント表面(a component surface)との記載は、1つ又は複数の表面を含む。
【0021】
図1A及び
図1Bは、本発明の一実施形態による通信システムにおけるネットワークトポロジーとデータフローを示す。
【0022】
図1Aを参照すると、ネットワークトポロジーは、送信器として動作するホストA102と受信器として動作するホストB108を含み、ホストA102及びホストB108は、一つ以上のルータ104,106を通じて接続される。ホストA102及びホストB108は、イーサネット(登録商標)118,122を通じてルータ104,106と接続され、ルータ104,106は光ファイバ、衛星通信、又は他の使用可能な手段120を通じて相互に接続することができる。ホストA102とホストB108との間のデータフローは、リンク階層116、インターネット階層114、転送階層112、及びアプリケーション階層110を通じて生成される。
【0023】
図1Bを参照すると、アプリケーション階層110は、アプリケーション階層-順方向誤り訂正(AL-FEC)を通じて、伝送しようとするデータ130を生成する。データ130は、オーディオ/ビデオ(AV)コーデック端により圧縮されたデータからリアルタイム転送プロトコル(RTP)を用いて分割されたRTPパケットデータ、又はMMTによるMMTパケットデータであり得る。データ130は、一実施形態として、転送階層112によりUDP(User Datagram Protocol)ヘッダーが挿入されるUDPパケット132に変換される。インターネット階層114は、UDPパケット132にIP(Internet Protocol)ヘッダーを追加してIPパケット134を生成し、リンク階層116は、IPパケット134にフレームヘッダー136及び必要な場合にフレームフッタ(frame footer)138を追加して伝送しようとするフレーム116を構成する。
【0024】
フレーム単位の圧縮がデータ通信システムに適用される場合、フレームは、同一の長さを有する複数のパケットに分けられ、最後のパケットのみがパディングに要求される。しかしながら、フレームがビデオパケットを含む複数のスライス(slice)に分けられ、スライスの単位で符号化される場合、各スライスは、相互に異なるサイズを有し、それによって相対的に多い量のパディングが発生される。特に、ビデオパケット、オーディオパケット、テキストパケットのような多様な種類のパケットが同一のストリームに伝送され、AL-FEC符号化が適用される場合、異なる種類のパケットは、異なるサイズを有し、多量のパディングが発生することができる。また、拡張可能な(scalable)ビデオ符号化の場合、パケットのサイズは、各階層ごとに異なり、それによって多量のパディングが発生する。
【0025】
後述される本発明の実施形態では、転送プロトコルを通じて伝送されるデータの量が可変的である場合、例えば、データが可変パケットサイズを有する場合、効率的なAL-FEC符号化が実行される。
【0026】
図2は、本発明の実施形態によるAL-FEC符号化のための情報ブロック生成(IBG)を示す。
【0027】
図2を参照すると、可変パケットサイズのK個のソースペイロード202、すなわちソースPL#0〜ソースPL#K-1を含むソースブロック200がAL-FEC符号化のために入力される場合、送信器は、ソースペイロードのサイズを所定長さS(例えば、S=S
max)と同一にするために少なくとも一部のソースペイロードにパディングデータ214を追加して同一のサイズを有する情報ペイロード212を構成する。ここで、S
maxは、ソースペイロードの長さのうち最大長を意味する。情報ペイロード212は、情報ブロック210を構成する。送信器内のFECエンコーダは、所定のFECコードによって情報ブロック210を符号化し、情報ペイロード212に対応するパリティペイロード222、例えば、パリティPL#0〜パリティPL#N-K-1を生成する。N-K個のパリティペイロード222は、パリティブロック220を構成する。送信器は、ソースブロック200とパリティブロック220をパケットの形態で伝送する。例えば、ソースブロック及びパリティブロック200,220のペイロードは、各々パケットに乗せられて伝送できる。
【0028】
図2のIBGモードにおいて、例えばパディングデータ214の総量がパディング以後の情報ブロック210のサイズ、すなわちS
max×Kの50%である場合、パリティブロック220の50%は、パディングデータのために付加され、それによって不必要な伝送が発生する。FEC復号化以後に回復されるペイロードがパディングデータを含むので、受信器にソースペイロードの実際の長さを通知する必要がある。物理チャンネルと異なり、パケット損失がアプリケーションチャンネル環境で発生した場合、該当するペイロードが損失されるので、ペイロードに格納されているデータの長さがわからない。
【0029】
以下の
図3〜
図4では、上記のような問題を解決するための2次元配列(2D array)について説明する。
【0030】
図3は、本発明の一実施形態によるAL-FEC符号化のための2次元配列の情報ブロック生成(IBG)を示す。
【0031】
図3を参照すると、SP1〜SP4を含むソースパケット302は、所定の横長さSを有する2次元配列300内に所定規則に従って順に配置される。具体的に、相対的に長い長さを有するSP1は、2次元配列300の最初行の全体と第2の行の前部の一部に配置され、SP2は、第2の行の後部分の一部と第3の行の前部分の一部に配置され、SP3は、第3の行の後部分の一部と第4の行の前部分の一部に配置され、相対的に短い長さを有するSP4は、第4の行の中間に配置される。パディングデータ304は、2次元配列300のうちソースパケット302が配列される部分以外の残り部分を満たす。
【0032】
上記のような2次元配列300を含む情報ブロックの各行は情報ペイロードであり、それによって情報ペイロードの個数Kは、ソースペイロードの個数K'より少なくなる。FECエンコーダは、2次元配列300を含む情報ブロックを符号化してパリティペイロードを生成する。このような2次元配列300を使用するIBGモードは、
図2のIBGモードに比べて情報ペイロードの個数を減少させることによって、パリティペイロードの量を縮小できる。
【0033】
図4は、本発明の一実施形態によるAL-FECブロックのための2次元配列で各ペイロードのオフセットを示す。
【0034】
図4を参照すると、直列化された2次元配列400上で各ソースパケットの開始位置を表すオフセット情報がソースブロックと共に伝送される。図示した例で、オフセット情報は、オフセット0、オフセット1、オフセット2、及びオフセット3を含む。AL-FECデコーダは、各ソースパケットのオフセットから2次元配列400を再構成して復号化を実行することができる。
【0035】
図3及び
図4に示すAL-FECブロックのための2次元配列は、各パケットのオフセット情報を受信器に通知すべきであるので、追加的なシグナリングオーバーヘッドを生成する。したがって、可変パケットサイズ環境でシグナリングオーバーヘッドを最小化しつつ、AL-FECの効率性を向上させるための技術が必要である。
【0036】
符号率が50%である場合、長さパリティデータの量は、パケット当たり1バイトである。
【0037】
したがって、FECエンコーダは、
図3のIBGモードによる各パケットの長さ情報を符号化して長さパリティデータを生成し、長さパリティデータをソースブロック及びパリティブロックと共に伝送する。
【0038】
本発明の他の実施形態では、FECエンコーダは、
図2のIBGモードと
図3のIBGモードのうちいずれか一つを選択して使用することができる。これは、
図3によるIBGモードが
図2のIBGモードに比べて常に高効率性を保証しないためである。以下に、これについて、より具体的に説明する。
【0039】
図2のIBGモードが適用される場合、AL-FECデコーダは、回復された情報ペイロードのうちパディングデータを除外した実際のデータ(例えば、ソースペイロード)を上位階層に出力する。このために、AL-FECは、各情報ペイロードの実際データサイズ(例えば、ソースペイロードサイズ)を知るべきである。AL-FECデコーダは、各ペイロードの実際のデータサイズに対する長さパリティデータを送信器から受信し、長さパリティデータに基づいて各ペイロードの実際データサイズを獲得できる。一方、
図3に示すようにソースペイロードが2次元配列で構成される場合、AL-FECデコーダは、受信されたそれぞれのペイロードに関するオフセット情報を用いて、受信されたそれぞれのペイロードを2次元配列で配置することによってソースブロックを回復することができる。一般に、
図2のモードで損失されるパケットの個数が
図3の2次元配列で損失されるペイロードの個数より多いため、
図2のIBGモードに要求される長さパリティデータの比率は、2次元配列のための長さパリティデータの比率より高くなければならない。
【0040】
図3のモードは
図2のモードに比べて多い量の長さパリティデータが必要であるため、さらに必要なパリティデータの量が2次元配列の構成により縮小されるパディング量より少ない場合、
図3のIBGモードは、より効果的である。したがって、FECエンコーダは、
図3のIBGモードによって縮小するパリティペイロードの量と
図3のIBGモードによって追加的に要求される長さパリティデータの量を考慮して、
図2のIBGモードと
図3のIBGモードのうちいずれか一つを選択することができる。
【0041】
例えば、
図3のような2次元配列で構成される情報ブロックが
図2に示すように構成される情報ブロックより一つのパリティペイロードを少なく発生する場合、FECエンコーダは、2次元配列による長さパリティデータの追加される量が一つのパリティペイロードのサイズより大きい場合には
図2のIBGモードを適用する。そうでないと、FECエンコーダは、
図3のIBGモードを適用する。
【0042】
他の実施形態において、FECエンコーダは、単に
図2のIBGモードにより要求されるパディングデータの量により、
図2のIBGモード及び
図3のIBGモードのうち一つを選択できる。通常に、
図2のIBGモードと
図3のIBGモードに要求されるシグナリング情報の量は、ほぼ定められている。したがって、
図2のIBGモードによって要求されるパディングデータの量により、
図2のIBGモードと
図3のIBGモードのうちの一つはより効率的であると判定される。すなわち、パディングデータの量が小さければ小さいほど、
図2のIBGモードがより効率的であり、パディングデータの量が大きければ大きいほど、
図3のIBGモードがより効率的である。したがって、FECエンコーダは、
図2のIBGモードにより追加的に要求されるパディングデータの量が所定のしきい値より多い場合、
図3のIBGモードを用いて情報ブロックを構成する。そうでないと、FECエンコーダは、
図2のIBGモードを用いて情報ブロックを構成する。例えば、しきい値は、
図2のIBGモードと
図3のIBGモードに要求されるシグナリング情報の量の差に従って定められる。
【0043】
図5Aは、本発明の一実施形態によるAL-FEC符号化プロセスを示す。
【0044】
図5Aを参照すると、可変長を有するK’個のソースペイロード502を含むソースブロック500は、AL-FEC符号化のために入力される。ソースペイロード502は、同一の長さを有するK個の情報ペイロード506を含む2次元配列の情報ブロック504上に順次に配置される。最後の情報ペイロードは、直列化したソースペイロード以後にパディングデータを含むことができる。送信器は、ソースブロック500内のソースペイロード502に対するペイロード長S0,S1,…,SK'-2,SK'-1を含むソースペイロード長に対するソースブロック(以下、‘長さソースブロック’と称する)508を構成する。FECエンコーダ510は、情報ブロック504を符号化してN-K個の同一の長さを有するパリティペイロード514を含むパリティブロック512を生成し、また長さソースブロック508を符号化して、p0,p1,…,pN-K-1を含むパリティブロック516を生成する。長さパリティブロック516とパリティブロック512は、ソースブロック500とFEC配信(delivery)ブロック520で構成され、送信器から受信器に伝送される。
【0045】
図5Bは、本発明の一実施形態によるAL-FEC復号化プロセスを示す
【0046】
図5Bを参照すると、FEC配信ブロック530は、送信器から受信器により受信される。FEC配信ブロック530は、ソースペイロード532、パリティペイロード534、及び長さパリティデータ540を含む。パケット損失チャンネル特性によって、受信されたFEC配信ブロック530内に一つ以上の損失されたペイロード536,538が存在することがある。
【0047】
受信器は、まず成功的に受信されたソースペイロード532から該当長S0,S1,…,SK'-1 542を計算する。ソースペイロード532がIPプロトコルに基づいたプロトコル階層を通じて伝送されるので、IPプロトコルは、FEC配信ブロック520の各ペイロードを搬送する各IPパケットを区分できる。受信器は、受信されたFEC配信ブロック530の各ペイロードの境界をIPパケットの区分から識別し、成功的に受信した各ペイロードの長さを計算する。他の実施形態では、受信器は、MMT又はRTPのようなアプリケーションプロトコル、伝送制御プロトコル(TCP)、又はユーザーデータグラムプロトコル(UDP)のような転送プロトコルを通じて、受信された各ペイロードの長さを獲得できる。他の実施形態では、図示しないが、送信器は、FEC配信ブロック520の各ペイロード(又は各ソースペイロード)に長さフィールドを含むヘッダーを追加して伝送し、受信器は、受信された各ペイロードのヘッダーからその長さがわかる。
【0048】
受信器は、ソースペイロード532の長さを含む長さブロック542とFEC配信ブロック520から抽出された長さパリティデータ540とを含む、ペイロード長のためのFECブロック544を構成する。FECブロック544内で損失されたソースペイロード536に対する長さ536aと損失されたパリティペイロード538に対する長さパリティデータ538aは、削除、例えば、所定値を取る。FECデコーダ550は、FECブロック544に対する削除復号化を実行し、損失されたペイロード536,538を含むすべてのペイロードの長さ544aを回復させる。
【0049】
受信器は、回復されたペイロード長544aから2次元配列で構成される情報ブロック552上に各ペイロードの位置を知るので、受信されたペイロード532,534を2次元配列上に配置して損失されたペイロード536,538を削除してFECブロック530aを構成する。FECブロック530a内で損失されたペイロード536,538により占められる空間は、回復されたペイロード長544aからわかる。FECデコーダ550は、FECブロック530aを復号化して情報ブロック552を回復し、回復されたペイロード長544aに基づいて回復された情報ブロック552からソースブロック554を出力する。
【0050】
図6Aは、本発明の一実施形態によりソースブロックから情報ブロックを生成するプロセスを示す。
【0051】
図6Aを参照すると、ソースブロック602は、K'個のソースペイロード604を含み、情報ブロック606は、ソースペイロード604を2次元配列上に配置することによって構成されるK個の情報ペイロード608と選択的にパディングデータ608aを含む(ここで、K<K')。ソースペイロード604のサイズS1,S2,…,SK−1,SK’は、MTUと伝送に使用される各種ヘッダーフィールドを考慮して決定することができる。ソースペイロードのうち最大サイズはS
maxバイトであり、構成しようとする2次元配列のサイズがS
max×Kである場合、まず、K'個のソースペイロードを含むソースブロック602は、入力される一連のソースペイロード604により構成される。構成されたソースブロック602内のソースペイロード604は、S
max×Kサイズの2次元配列上に順次に配列され、パディングデータ608aは、最後のK番目の情報ペイロードの後部に必要した場合に追加され、最終的に情報ブロック606が生成される。
【0052】
異なる説明において、K'個のソースペイロードは、直列化され、直列化されたソースペイロードの端に残りのバイトがパディングされる。直列化されたソースペイロードの各S
maxバイトは、各情報ペイロードとなり、最後の情報ペイロードは、直列化されたソースペイロードの残りにパディングデータを付加することによって生成される。このとき、パディングデータのサイズは、情報ブロックの全体サイズがS
maxバイトの倍数となるように決定される。すなわち、情報ブロックは、全体情報ペイロードをS
maxの単位で並列変換することにより生成され、上記したように生成された情報ペイロードの個数Kは、K'より小さいことがある。
【0053】
図6B及び
図6Cは、本発明の他の実施形態によりソースブロックから情報ブロックを生成するプロセスを示す。ここで、ソースブロック610は、複数のサブブロック612を含む。
【0054】
図6Bを参照すると、ソースブロック610は、M個のサブブロック612に分割され、サブブロック612は、各々K
1,K
2,…,K
M個のソースペイロード614を含む(K'=K
1+K
2+…K
M)。ここで、K
1,K
2,…,K
Mは、1より大きいか、あるいは等しい正の整数である。各サブブロック612は、2次元配列上の所定の位置、例えばS
max×K/Mバイトの位置で配置され始める。所定位置は、S
max×K/Mの固定したサイズを有する情報サブブロック618の開始点であり、情報サブブロック618のうちサブブロック612が配置された後に、残り部分は、必要な場合にパディングデータ616により詰められる。各情報サブブロック618は、S
maxを有するK/M個の情報ペイロード624に分割される。
【0055】
図6Cを参照すると、情報ブロック620は、S
max×Kサイズの2次元配列上に情報ペイロード624を順次に配列することで構成される。情報ブロック620に含まれるK個の情報ペイロード624は、S
maxと同一のサイズを有する。
図5A及び
図5Bの実施形態と異なり、パディングデータ616は、直列化された情報ブロック620内で表すことができる。
【0056】
異なる説明において、i番目のサブブロックのK
i個のソースペイロードは、直列化され、直列化されたソースペイロードのj番目のS
maxバイトは、i番目の情報サブブロック622のj番目の情報ペイロードとなる。i番目の情報サブブロック622の最後情報ペイロードは、直列化されたK
i個のソースペイロードの残りにパディングデータを付加することによって生成される。このとき、パディングデータのサイズは、i番目の情報サブブロック622の全体サイズがS
max×K/Mとなるように定められる。すなわち、各情報サブブロック内で最後の情報ペイロードのみがパディングデータを含むことができる。
【0057】
図7は、本発明の一実施形態によるペイロード長のためのFECブロックの構成を示す。
【0058】
図7を参照すると、FECエンコーダは、K'個のソースペイロードに対する長さSi704(i=1,2,…,K')を含むペイロード長に対するソースブロック702をFEC符号化することにより、ペイロード長に対するパリティブロック706を生成する。パリティブロック706は、N-K個のパリティデータ708を含む。ペイロード長に対するFECブロック700は、ソースブロック702とパリティブロック706を含む。上記したように、ペイロード長に対するパリティデータは、ソースペイロードに対するパリティデータより高い(すなわち、強力な(robust))符号化率により生成されることが望ましい。
【0059】
例えば、FECエンコーダは、ペイロード長のうち奇数番目の長さからN-K個のパリティデータを生成し、別途に偶数番目の長さからN-K個のパリティデータを生成し、それによって2×(N-K)個のパリティデータを含むパリティブロックを生成できる。他の実施形態では、FECエンコーダは、ペイロード長から2×(N-K)個のパリティデータを生成してペイロード長に対するパリティブロックを構成できる。その結果、ペイロード長に対するFECブロック(以下、‘長さFECブロック’と称する)は、ソースペイロードに対するFECブロック(以下、‘情報FECブロック’と称する)より高い復号性能を保証できる。
【0060】
図8A及び
図8Bは、本発明の一実施形態による情報FECブロックとFEC配信ブロックの構成を示す。
【0061】
図8Aを参照すると、情報FECブロック800は、K個の情報ペイロードを含む情報ブロック802とP個のパリティペイロードを含むパリティブロック804を含む。各ペイロードは、Sバイト(例えば、S=S
max)のサイズを有する。FECエンコーダは、情報ブロック802からパリティブロック804を生成してFECブロック800を構成する。
図8Bを参照すると、FEC配信ブロック820は、K'個のソースペイロードを含むソースブロック822、P個のパリティペイロードを含むパリティブロック824、及びペイロード長に対するパリティブロック830を含む。
【0062】
図8C及び
図8Dは、本発明の他の実施形態によるFECブロックとFEC配信ブロックの構成を示す。ここで、2段階(stage)のFECが実行される場合に対する例を示す。
【0063】
図8Cを参照すると、情報FECブロック830は、第1のFECのために構成されたM個のFEC1ブロックと、第2のFECを通じて生成されたパリティ2ブロックを含む。各FEC1ブロックは、複数の情報ペイロードを含むサブブロックと第1のFECを通じて生成されたパリティ1ブロックを含む。
図8Dを参照すると、FEC配信ブロック840は、第1のFECのために構成されたM個のFEC1配信ブロックと、第2のFECを通じて生成されたパリティ2ブロックを含む。各FEC1配信ブロックは、複数のソースペイロードを含むサブブロックと第1のFECを通じて生成されたパリティ1ブロックを含む。各パリティブロックは、該当する長さパリティブロックを含む。
【0064】
以上、長さパリティブロックを全体パリティブロックの前部に配置してFEC配信ブロックを構成する実施形態を示した。変形された実施形態で、長さパリティブロックは、パリティブロックのためのヘッダー又はソースブロックのためのヘッダーを通じて伝送され、この場合、FEC配信ブロックは、ソースブロックとパリティブロックのみを含む。
【0065】
後述する実施形態において、伝送に適用されるAL-FEC符号化方式を示すフラグは、
図2のIBGモードと
図3のIBGモードのうちいずれか一つを選択してAL-FEC符号化に適用するために使用される。 例えば、FECエンコーダは、フラグが0である場合、
図2のIBGモードによるAL-FEC符号化を実行し、フラグが1である場合、
図3のIBGモードを適用してAL-FEC符号化を実行する。フラグは、FEC配信ブロックと共にあるいは別のシグナリングを通じて送信器から受信器に伝送することができる。
【0066】
図9は、本発明の一実施形態によるペイロード長のためのFECブロックを示す。
【0067】
図9を参照すると、ペイロード長に対するFECブロック900は、K'個のソースペイロードに対する長さ904を含むソースブロック902とN-K個の長さパリティデータ908を含むパリティブロック906(すなわち、長さパリティブロック)を含む。
図2に示すように、情報ブロックが構成される場合、受信器に各ソースペイロードの長さを通知するために、送信器は、ペイロード長に対するソースブロック902からFEC符号化を通じて長さパリティブロック906を生成し、ペイロード長に対するパリティブロック906をソースブロック及び該当パリティブロックと共に伝送する。システム負担を最小化するために、FECコードは、ソースブロックを符号化するために使用されるFECコードと同一に、長さパリティブロックを生成するために使用され得る。
【0068】
与えられたパケット損失チャンネル環境でAL-FEC復号後に達成しようとするパケット誤り率(Packet Error Rate:PER)またはビット誤り率(Bit Error Rate:BER)が決定される場合、
図2のIBGモードは、ソースブロックに対するK'個のソースペイロードに対してP'個のパリティペイロードを発生させ、
図3のIBGモードは、K個の情報ペイロードを含む情報ブロックに対してP個のパリティペイロードを発生する。
図2及び
図3のIBGモードを比較すると、
図2のIBGモードは、P'-P個のパリティペイロードをさらに必要として、
図3のIBGモードは、ペイロード長に対するパリティデータをさらに必要とする。
【0069】
送信器は、2種類のIBGモードによるパリティペイロードの個数P'及びPを予測し、ペイロード長に対するパリティデータを計算し、ペイロード長に対するパリティデータの量がP'-P個のパリティペイロードより小さい場合、フラグを1に設定し、
図3のIBGモードによるAL-FEC符号化を適用する。一方、ペイロード長に対するパリティデータの量がP'-P個のパリティペイロードより小さくない場合、フラグを“0”に設定し、
図2のIBGモードによるAL-FEC符号化を適用する。
【0070】
P'=P+pである場合、
図2のIBGモードに要求されるパリティデータの量は、(S
max+L)×(P+p)により計算され、
図3のIBGモードに要求されるパリティデータの量は(S
max+L×(1+r)) ×Pにより計算される。したがって、パリティデータの差は、(S
max+L)×p-L×r×P)により計算される。ここで、Lは、各ソースペイロードの長さを表現するために要求されるバイトを意味し、rは、長さソースブロックを分割した回数を意味する。すなわち、長さフィールドは、より強力な符号化のために一つ以上のサブブロックに分割されて個別的に符号化され得る。r=1である場合、長さフィールドが2個のサブブロックに分割されることを意味する。
【0071】
r=1である場合、パリティデータ間の差は(S
max+L)×p-L×Pである。ここで、pは、
図3のIBGモードのアプリケーションにより減少するパリティペイロードの個数を意味し、PR×(K'-K)より小さい。ここで、PRは、パリティレートであり、パリティ長と情報長の割合で表す。PR=P'/K'=P/Kである場合、p=P'-P=PR×(K'-K)である。同一のPRでは情報長が長いほど、性能がよいので、同一の性能のためにはpはPR×(K'-K)より小さくなければならない。すなわち、下記の<数式1>が成立すべきである。
【0073】
P=P'-p=PR×K'-pであるため、L×P=L×(P'-p)=L×PR×K'-L×pである。したがって、<数式1>は、以下の<数式2>のように示す。
【0075】
通常に、S
maxとLが伝送途中で固定されるので、パリティレートが高いほど、(K-K’)が大きいほど、すなわち
図2のIBGモードによるパディングデータの量が多いほど、
図3のIBGモードを適用することがより望ましい。
【0076】
下記の<表1>〜<表3>は、S
max=1000バイト、L=2バイト、r=1である場合、K'=100,200,400である場合、パリティレートとパディングレートの量による総パリティ量を比較して示す。
【0077】
以下の<表1>は、K'=100である場合、
図3のIBGモードと
図2のIBGモードに必要な総パリティ量を示す。
【0079】
下記の<表2>は、K'=200である場合、
図3のIBGモードと
図2のIBGモードに必要な総パリティ量を示す。
【0081】
下記の<表3>は、K'=400である場合、
図3のIBGモードと
図2のIBGモードに必要な総パリティ量を示す。
【0083】
<表1>〜<表3>で、横軸はパリティレートを意味し、縦軸は(S
max×K)/(S
max×K')、例えば、
図2のIBGモードを適用した場合のパディングデータの比率を意味する。<表1>〜<表3>で各セルのA/Bのうち、Aは、
図3のIBGモードに最小限に要求されるパリティデータ量を表し、Bは、
図2のIBGモードに必要なパリティデータ量を表す。
【0084】
図3のIBGモードと
図2のIBGモードとの間で要求されるパリティデータ量差が0.5%(データ量の差/(S
max×K'))より小さい場合には太字で表示される。上記の値は、FEC配信に基づいて計算され、各ペイロードのヘッダー、アプリケーションプロトコルヘッダー、転送プロトコルヘッダー、及びインターネットプロトコルヘッダーの量に従って変わり得る。
図3のIBGモードによるペイロードの個数は
図2のIBGモードの個数以下であるため、ヘッダーを計算に考慮すれば、
図3のIBGモードによる効果は増加する可能性がある。
【0085】
したがって、本発明の具体的な実施形態において、送信器は、(K'-K)とPRに基づいたIBGモードを選択できる。例えば、パリティレートが非常に小さくて<数式1>の右側項が負の値を有する場合、
図2のIBGモードを適用すると決定する。
【0086】
後述する本発明の実施形態では、
図2のIBGモードと
図3〜
図4のIBGモードのうち一つを選択してAL-FEC符号化に適用することにおいて、伝送に適用されたAL-FEC符号化方式を表すフラグが使用され、2次元配列上のソースペイロードを区分するために、
図4に示すオフセット情報が伝送される。例えば、FECエンコーダは、フラグが“0”である場合、
図2のIBGモードを適用してAL-FEC符号化を実行し、フラグが“1”である場合、
図3〜
図4のIBGモードを適用してAL-FEC符号化を実行する。フラグは、FEC配信ブロックと共に、あるいは別のシグナリングを通じて送信器から受信器に伝送することができる。
【0087】
所定のパケット損失チャンネル環境で、AL-FEC復号化後に達成しようとするPERまたはBERが定められる場合、
図2のIBGモードは、ソースブロックのためのK'個のソースペイロードに対してP'個のパリティペイロードを発生させ、
図3〜
図4のIBGモードは、K個の情報ペイロードを含む情報ブロックに対してP個のパリティペイロードを発生させる。
図2、
図3、及び
図4のIBGモードを比較すると、
図2のIBGモードは、P'-P個のパリティペイロードをさらに必要とし、
図3〜
図4のIBGモードは、オフセット情報をさらに必要とする。
【0088】
送信器は、2つのIBGモードによるパリティペイロードの数P'及びPを予測してオフセット情報の量を計算し、オフセット情報の量がP'-P個のパリティペイロードより小さい場合、フラグを“1”に設定して
図3及び
図4のIBGモードによるAL-FEC符号化を適用し、オフセット情報の量がP'-P個のパリティペイロードより小さくない場合、フラグを“0”に設定して
図2のIBGモードによるAL-FEC符号化を適用する。
【0089】
P'=P+pである場合、
図2のIBGモードにより要求されるパリティデータの量は、(S
max+L)×(P+p)で計算され、
図3及び
図4のIBGモードに追加的に要求される情報の量は、S
max×P+K'×Off_lng=(S
max×L)×p+L×P-K'×Off_lngである。ここで、Off_lngは、オフセット情報のために必要な情報量である。
【0090】
ここで、pは、
図3のIBGモードのアプリケーションにより減少するパリティペイロードの個数であって、おおよそPR×(K'-K)より少ない。ここで、パリティレートPRは、(パリティ長)/(情報長)で示される。PR=P'/K'=P/Kである場合、p=P'-P=PR×(K'-K)である。同一のPRでは、情報長が長いほど性能が良いので、同一の性能のためにpはPR×(K'-K)より小さいはずである。すなわち、下記の<数式3>が成立される。
【0092】
P=P'-p=PR×K'-pであるので、L×P=L×(P'-p)であり、(S
max+L)×p+L×P=(S
max+L) ×p+L×P'-L×p=S
max×p+L×P'である。したがって、<数式3>は、<数式4>に定義されるように示され得る。
【0094】
一般に、S
maxとLは伝送途中で固定されるので、パリティレートが高いほど、(K'-K)が大きいほど、例えばパディングデータの量が多いほど、
図3及び
図4のIBGモードがより効果的である。また、K’は、S
maxが小さいほど大きくなるので、S
maxが大きい値を有するほど
図3及び
図4のIBGモードがより効果的である。
【0095】
下記の<表4>〜<表6>は、S
max=1000バイト、L=2バイト、Off_lng=4バイトである場合、K'=100,200,400のケースで、パリティレートとパディングレートの比率によるパリティデータと追加情報の総データ量との比較を示す。
【0096】
下記の<表4>は、K'=100である場合、
図3及び
図4のIBGモードと
図2のIBGモードに必要な総データ量を示す。
【0098】
下記の<表5>は、K'=200である場合、
図3及び
図4のIBGモードと
図2のIBGモードに必要な総データ量を示す。
【0100】
下記の<表6>は、K'=400である場合、
図3及び
図4のIBGモードと
図2のIBGモードに必要な総データ量を示す。
【0102】
下記の<表7>〜<表9>は、S
max=500バイト、L=2バイト、Off_lng=4バイトである場合、K'=100,200,400のケースで、パリティレートとパディングレートの比率によるパリティデータと追加情報の総データ量との比較を示す。
【0103】
<表7>は、K'=100である場合、
図3及び
図4のIBGモードと
図2のIBGモードに必要な総データ量を示す。
【0105】
下記の<表8>は、K'=200である場合、
図3及び
図4のIBGモードと
図2のIBGモードに必要な総データ量を示す。
【0107】
次の<表9>は、K'=400である場合、
図3及び
図4のIBGモードと
図2のIBGモードに必要な総データ量を示す。
【0109】
<表4>〜<表9>において、横軸はパリティレートを意味し、縦軸は(S
max×K)/(S
max×K')、例えば、
図2のIBGモードが適用される場合のパディングデータの比率を意味する。<表4>〜<表9>の各セルでA/Bのうち、Aは、
図3及び
図4の構成に最小限に要求されるデータ量を表し、Bは、
図2のIBGモードに必要なデータ量を表す。
【0110】
図3及び
図4のIBGモードと
図2のIBGモードに要求されるデータ量の差が0.5%(データ量の差/(S
max×K'))より小さい場合、太字で表示した。上記値は、FEC配信に基づいて計算され、各ペイロードのヘッダー、アプリケーションプロトコルヘッダー、転送プロトコルヘッダー、及びインターネットプロトコルヘッダーの量により変わり得る。
図3及び
図4のIBGモードによるペイロードの個数は、
図2のIBGモードの個数以下であるので、ヘッダーを計算に考慮するとき、
図3のIBGモードによる効果はより大きくなることがある。
【0111】
<表1>〜<表3>及び<表4>〜<表6>に示すように、
図3のIBGモードに対して長さパリティブロックを使用する本発明の実施形態とオフセット情報を使用する実施形態において、パリティデータと追加情報の量は次のように比較される。
【0112】
ソースブロックとパリティブロックは、2つの実施形態に同様に適用されるので、その比較を省略する。長さパリティブロックを使用する本発明の実施形態は、(1+r)×L×Pの追加データを要求し、オフセット情報を使用する実施形態は、Off_set×K'の追加データを要求する。L=2バイト、Off_set=4バイトである場合、長さパリティブロックを使用する本発明の実施形態は、P<K'である場合、オフセット情報を使用する実施形態より効率的である。チャンネルのパケット損失率が10%であっても、K'の値は、Pの値より一層大きいので、長さパリティブロックを使用する実施形態がオフセット情報を使用する実施形態よりオーバーヘッド側面でより効率的であることがわかる。
【0113】
以下の<表10>は、S
max=1000byte、L=2byte、r=1、及びK'=200である場合、長さパリティブロックを使用する実施形態とオフセット情報を使用する実施形態で要求されるデータ量、例えばバイト数を比較して示すものである。ここで、ソースブロック及びパリティブロックの量は、2つの本発明の実施形態で同一であるので、その量は考慮しない。
【0115】
以下、本発明の実施形態による送受信構造について説明する。
【0116】
図10A及び
図10Bは、本発明の一実施形態によるMMTシステム構造と配信機能階層の構造を示す。
【0117】
図10を参照すると、メディアコーディング階層により圧縮されたAVデータは、カプセル化(encapsulation)機能階層1002を経てファイルフォーマットに類似した形態でパッケージ化されて出力される。配信機能階層1004は、カプセル化機能階層1002から出力されるMMTパッケージをMMTペイロードフォーマットに変換した後、MMT転送パケットヘッダーを付加してMMT転送パケットで構成し、あるいは既存のRTPプロトコルを用いてRTPパケットを構成する。その後、構成されたパケットは、転送プロトコル階層1006を経て最終的にインターネットプロトコル(IP)階層1008によりIPパケット化されて伝送される。選択的に存在できる制御機能部1000は、データの伝送に必要な制御情報あるいはシグナリング情報を生成してデータに付加した後、その情報を伝送し、あるいは別のシグナリング手段を通じて伝送する。
【0118】
図10Bは、配信機能階層1004の詳細構造を示す。配信機能階層1004は、所定のFECコードによる符号化をサポートできる2個の位層であるMMT D.1階層1010とMMT D.2階層1012を含む。FECコードは、例えば、リ―ドソロモン(RS)コード、LDPC(Low Density Parity Check)コード、ラプター(raptor)コード、ラプターQコードであり得る。
【0119】
図11は、本発明の一実施形態によるAL-FEC符号化及び復号化の構造を示す。ここで、AL-FECをサポートするMMT D.1階層1010のフローを示し、MMT D.2階層1012でAL-FECがサポートされる場合にも類似した説明が適用可能であることはもちろんである。
【0120】
図11を参照すると、MMT D.1階層1004のペイロードフォーマット生成器1106は、カプセル化機能を担当するMMT E.1階層1102からMMTパッケージ1120(例えば、AVデータ、ファイル、テキストなどを格納部に格納し、あるいは伝送するための目的で形成されたフォーマット)を受信して伝送のための所定単位、例えばソースペイロード1124に分けてソースブロック1122を構成する。ソースブロックは、AL-FECブロック1108内のAL-FECモジュールコンバータ1150に入力される。
【0121】
AL-FECモジュールコンバータ1150は、所定の複数の情報ブロック生成(IBG)モードのうち一つ、例えば
図2のIBGモード又は
図3のIBGモードにより、ソースブロック1122を同一の長さを有する情報ペイロード1136を含む情報ブロック1134に変換する。FECエンコーダ1138は、情報ブロック1134に対して、与えられたFECコードによりFEC符号化を実行してパリティブロック1140を生成してペイロードフォーマット生成器1106に伝送する。ペイロードフォーマット生成器1106は、ソースブロック1122にパリティブロック1140を追加してそれぞれのペイロードにペイロードヘッダー(PLH)1126を付加してFEC配信ブロック1128を生成し、FEC配信ブロック1128をMMTペイロードフォーマット1152にパケット化して出力する。MMTペイロードフォーマット1152は、MMT D.2階層1110又はIETF(Internet Engineering Task Force)アプリケーションプロトコル階層1110に伝送される。選択可能な実施形態としてパリティブロック1140又はペイロードヘッダー1126に長さパリティブロックあるいはソースペイロードの長さ情報が付加できる。MMTペイロードフォーマット1152は、以後の伝送階層でUDPヘッダーが付加され、インターネット階層でIPヘッダーが付加された後に受信器に伝送される。
【0122】
MMTペイロードフォーマット1152がMMT D.2階層1110に伝送される場合、MMT D.2階層1110は、MMTペイロードに対するAL-FEC符号化を実行してMMT転送パケットを構成でき、MMT転送パケットは、伝送階層によりIPパケットに乗せて受信器に伝送される。
【0123】
復号化の際に、ペイロードフォーマット生成器1106は、MMT D.2階層/IETFアプリケーションプロトコル階層1110を通じて受信されたMMTペイロードフォーマット1152をソースブロック1122とパリティブロック1140に区分し、MMTペイロードフォーマット1152あるいは別途のシグナリング手段を通じてソースブロック1122に含まれたソースペイロードに関する長さ情報を獲得する。AL-FECブロック1108内のFECデコーダ1138は、長さ情報に基づいて回復された情報ブロック1134aとパリティブロック1140を復号化し、損失されたソースペイロードを回復する。また、FECデコーダ1138は、ソースペイロードに関する長さ情報を表す長さパリティブロックを復号化し、ソースペイロードの長さを獲得する。ソースペイロードの長さは、復号化を通じて回復された情報ブロックを元のソースペイロードに分割するために使用される。
【0124】
以下、
図12〜
図14を参照して、符号化方式によるFECブロックの生成について説明する。
【0125】
図12は、本発明の実施形態によるFECブロックの構成を示す。
【0126】
図12を参照すれば、SバイトのサイズであるK個の情報ペイロード1204を含む情報ブロック1202は、各々m個の行を含むS個の情報シンボル部1206に行単位で分割することができ、各情報シンボル部1206は、m×Kビットで構成される。情報ブロック1202から生成されたパリティブロック1212は、同一にS個のパリティシンボル部1214に分割される。FECブロック1210は、情報ブロック1202及びパリティブロック1212を含む。具体的に、FECエンコーダは、各情報シンボル部1206から、与えられたFECコードによってパリティシンボル部1214を生成し、情報シンボル部1206とパリティシンボル部1214を含むFECフレーム1220を構成する。FECブロック1210は、各々m×Nビットのサイズを有するS個のFECフレーム1220を含む。ここで、mは、8×Sの約数であり、例えば1又は8であり得る。
【0127】
図13は、本発明の一実施形態によるリ―ドソロモン(RS)フレームの構成を示す。RSフレームは、AL-FECのためにRSコードが使用される場合のFECフレームを意味し、ここで、m=8である場合、RS240,200 code over GF(2^8)によるRSフレームを示す。
【0128】
図13を参照すれば、K個のペイロードを含む情報ブロックのp番目のバイト行が第pの情報シンボル部(Kバイト)1304となり、送信器は、情報シンボル部1304に200-Kバイトを00hでパディング(1302)した後、符号化して40バイトのパリティバイト1306,1308を生成する。第pのRSフレーム1300は、符号化入力に対応する短縮バイト(shortened byte)1302、情報シンボル部1304、及び符号化出力に対応するパリティバイト1306,1308を含む。送信器は、RSフレーム1300のうち最初に(200-K)のパディングバイト1302を短縮し、最後の40-Pバイト1308をパンクチャリング(puncturing)することにより、Kバイトの情報シンボル部1304とPバイトのパリティシンボル部1306のみを最終伝送する。B(p,j)は、第pのRSフレームのj番目のバイトを意味する。
【0129】
図14は、本発明の一実施形態によるLDPCフレームの構成を示す。LDPCフレームは、AL-FECのためにLDPCコードが使用される場合のFECフレームを意味し、ここで、LDPC(m×(K+P)、m×K)code over GF2によるLDPCフレームに対応する。
【0130】
図14を参照すると、K個のペイロードを含む情報ブロックの第pのm個の行がm×Kビットの第pの情報シンボル部1400であり、送信器は、情報シンボル部1400とm×Pパリティビットを有するパリティシンボル部1402を接続して第pのLDPCフレーム1408を生成する。ここで、mは、正の整数を意味する。b(p,j*m+i)は、第pのLDPCフレームで第jのペイロードの第mの行のうち、i番目のビットを意味する。mが1より大きい場合、b(p,j*m+i)は、最初のペイロードから上から下に(すなわち、ペイロード優先で)番号が割り当てられるが、他の実施形態では最初の行の左側から右側に(すなわち、行優先で)番号が割り当てられる。
【0131】
以下、
図15〜
図19を参照してペイロード長に対するパリティブロックの生成について説明する。
【0132】
ソースブロックに関するペイロード長情報は、ペイロードフォーマット生成器1106がソースペイロードを含むソースブロックを構成する場合、それぞれのソースペイロードに対する長さを受信して構成され、あるいはシステム制御器(図示せず)からAL-FECブロック1108に提供される。他の実施形態では、ペイロード長情報がペイロードヘッダー1126を通じて伝送される場合、ペイロードフォーマット生成器1106は、ソースペイロード1124とペイロード長情報を共にAL-FECモジュール1108に伝送することができる。
【0133】
ペイロード長に対するFEC性能は、上記したようにソースブロックに対するFEC性能より良くなければならない。ペイロード長のためのFEC性能を向上させるための本発明の一つの実施形態では、ペイロード長情報は、2つの長さソースブロックに分けられ、それぞれの長さソースブロックに対してN-K個の列(column)を有するパリティデータが生成され得る。N-Kは、ソースペイロードに対するソースブロックから生成されたパリティブロックに含まれるパリティペイロードの個数と同一である。上記のように、ペイロード長情報が分割される場合、各長さソースブロックに対して同一の量のパリティデータを確保できる一方、情報量は半分に減少することによって、より良いFEC性能を発揮できる。
【0134】
図15は、本発明の一実施形態によるペイロード長に対するソースブロックの分割を示す。
【0135】
図15を参照すると、K'個のソースペイロード各々に対するペイロード長フィールドにLビットが割り当てられる場合、ペイロード長に対するソースブロック1500(すなわち、長さソースブロック)は、K'個のLビット長フィールドS1,S2,…,SK’を含む。ペイロード長に対するソースブロック1500は、奇数番目の長さフィールドS1,S3,…,SK'-1を含む奇数のソースブロック1502と偶数番目の長さフィールドS2,S4,…,SK’を含む偶数のソースブロック1504に分けて符号化できる。K’が奇数である場合、奇数ソースブロック1502は、S1,S3,…,SK’を含み、偶数ソースブロック1504は、S2,S4,…,SK'-1を含むことができる。
【0136】
図16は、本発明の一実施形態により分割された長さソースブロックに対するFECブロックの構成を示す。
【0137】
図16を参照すれば、ペイロード長のための奇数/偶数パリティブロック1606,1614は、ペイロード長に対する奇数/偶数ソースブロック1604,1612から生成される。ペイロード長のための奇数/偶数FECブロック1602,1610は、奇数/偶数ソースブロック1604,1612と奇数/偶数パリティブロック1606,1614を含む。奇数パリティブロック1606は、N-K個の奇数パリティデータop1,op2,…,opN-Kを含み、偶数パリティブロック1614は、N-K個の偶数パリティデータep1,ep2,…,epN-Kを含む。
【0138】
本発明の他の実施形態では、ペイロード長のためのFECコードは、ソースペイロードに対するソースブロックが回復されるが、ペイロード長は、回復不可能な場合が確率的にほぼ発生しないように設計される。例えば、ソースペイロードに対するソースブロックの回復性能が10^(-7)のパケットエラー率(PER)を要求する場合、ペイロード長のための回復性能は10^(-7)以下、例えば、10^(-9)となるように設計することができる。
【0139】
ペイロード長のFECのための本発明のもう一つの実施形態では、ペイロード長のための全体ソースブロックに対する2×(N-K)列を有するパリティブロックが生成できる。
【0140】
もう一つの実施形態として、ペイロード長に対するパリティブロックは、ソースペイロードに対するソースブロックからパリティブロックを生成する場合に同一の方式及び同一のFECコードを使用して生成することができる。各長さソースブロックに関する情報サイズがソースペイロードに対するソースブロックより短いので、FECエンコーダは、ペイロード長のためのソースブロックの各情報シンボルにパディングデータを追加してパリティデータを生成した後、パリティデータのうちパディングデータを短縮する。通常に、
図2の情報ブロック生成に対するパディングデータは、50%より非常に小さいので、Kは、K'/2よりはるかに大きくなる。例えば、パディングレートが10%である場合、K'=200に対してK=180であり、ペイロード長に対する奇数/偶数ソースブロック1502,1504,1604,1612は、L×100列の配列(array)で構成される。したがって、より良いFEC性能が得られる。
【0141】
図17は、本発明の一実施形態によるペイロード長のための奇数FECブロックの構成を示す。ここで、奇数FECブロックの構成のみを示すが、偶数FECブロックも同様に構成されてもよいことはもちろんである。
【0142】
図17を参照すると、ペイロード長に対する奇数FEC1700は、奇数ソースブロック1704と、それから生成された奇数パリティブロック1706で構成される。各ペイロード長が2バイトである場合、奇数ソースブロック1704は、2byte×K'/2列で構成される。K'/2が200以下である場合、奇数ソースブロック1704は、各ペイロード長の最初及び2番目のバイトを各々含む2つのサブソースブロックに分けられた後、RS240,40コードにより符号化できる。FECエンコーダは、各K'/2バイトのサブソースブロックに200-K'/2バイトを00hでパディング(1702)した後、パディングされたブロックから40バイトのパリティデータを生成する。FECエンコーダは、パディングされたブロックで200-K'/2パディングバイト(1702)を短縮し、パリティデータのうち40-Pバイトをパンクチャリング(1708)して、N-Kバイトを伝送する。
【0143】
奇数ソースブロック1704の最初のサブソースブロックはS1,1,S3,1,…,SK'-1,1を含み、それに対するパリティブロックはop1,1,op2,1,…,opN-K,1を含む。第2のサブソースブロックは、S1,2,S3,2,…,SK'-3,2を含み、それに対するパリティブロックはop1,2,op2,2,…,opN-K,2で構成される。ここで、Si,jは、Siのj番目のバイトを表し、opi,jは、j番目のパリティデータのj番目のバイトを表す。奇数ソースブロック1704に対して、i=1,3,…,K'であり、jは1又は2である。
【0144】
変形された本発明の実施形態として、2×(N-K)が40より小さい場合、ペイロード長の最初のサブソースブロックとRS240,40コードを用いて2×(N-K)個のパリティバイトを生成した後、ペイロード長のためのパリティブロックを生成することができる。
【0145】
図18は、本発明の一実施形態によるペイロード長に対するFECブロックの構成を示す。
【0146】
図18を参照すると、ペイロード長に対するFECブロック1800は、ペイロード長に対するソースブロック1802とペイロード長に対するパリティブロック1804を含む。ペイロード長に対するパリティブロック1804は、ペイロード長に対する奇数ソースブロックから生成されたパリティデータop1,op2,…,opN-Kと偶数ソースブロックから生成されたパリティデータep1,ep2,…,epN-Kを含む。
【0147】
図19は、本発明の一実施形態によるFEC配信ブロックの構成を示す。
【0148】
図19を参照すると、FEC配信ブロック1900は、K'個のソースペイロード1904を含むソースブロック1902とP個のパリティペイロード1910を含むパリティブロック1906を含み、ペイロード長に対するパリティブロック1908をさらに含む。ここで、ペイロード長に対するパリティブロック1908の各列は、パリティブロック1906の各ペイロードの前部に配置される。本発明の他の実施形態では、パリティブロック1908は、ソースブロック1902の各ソースペイロードの前部または後部に配置することができる。もう一つの実施形態では、パリティブロック1908は、ソースペイロード1904に対するペイロードヘッダーに配置され、あるいはパリティペイロード1910に対するペイロードヘッダー内に配置される。もう一つの実施形態では、ペイロード長に対するパリティブロック1908は、FEC配信ブロック1900とは別途の制御シグナリングを通じて伝送することができる。
【0149】
他の実施形態では、LDPCコードを用いてペイロード長に対するソースブロックを符号化する場合、送信器は、ペイロード長のためのソースブロックを2つのサブブロックに分け、それぞれのサブブロックにパディングデータを追加して符号化した後に、パディングデータを短縮することにより、
図18と同一の形態で、ペイロード長に対するFECブロックを構成できる。このとき、ソースペイロードに対するソースブロックが符号化される場合に使用されるように同一のFECコードを使用することによって、FEC符号化の使用効率を高めてシステム負担を低減できる。すなわち、FECエンコーダ510は、一つのFECコードのみをサポートするようにより簡単に構成され得る。
【0150】
本発明のもう一つの実施形態では、FECエンコーダは、L×K'サイズの配列で配置されるペイロード長に対するソースブロックからL×2(N-K)サイズの配列で配置されるペイロード長に対するパリティブロックを生成し、L×2(N-K)配列のうち最初のN-K個の列、例えばL×(N-K)個の列は、ソースペイロードに対するソースブロックと同一のFECコードで生成され、残りのL×(N-K)個の列は、FECコードから拡張されたコードを通じて生成することができる。2(N-K)×(K'+2(N-K))サイズのHマトリックスを仮定すると、ソースペイロードに対するソースブロックは、Hマトリックスのサブマトリックスである(N-K)×Nを使用して符号化され、ペイロード長に対するソースブロックは、Hマトリックスを直接に用いて符号化できる。FECエンコーダは、一つのHマトリックスを用いて2つの符号化を実行することによって、システム負担を減少させる。
【0151】
MMTシステム構造において、FEC配信ブロックの各ペイロードは、MMTペイロードフォーマットあるいはMMT転送パケットに乗せて伝送される。
【0152】
図20は、本発明の一実施形態によるMMTペイロードフォーマットを示す。
【0153】
図20を参照すると、MMTペイロードフォーマット2000は、ペイロードヘッダー(PLH)2002とMMTペイロード2004を含む。MMTペイロード2004は、本発明の実施形態により生成されるFEC配信ブロックのソースペイロード及びパリティペイロードのうちいずれか一つを含む。ペイロード長に対するパリティブロックがMMTペイロードを通じて伝送される場合、ペイロードヘッダー2002又は各パリティペイロードは、ペイロード長に対するパリティブロックの各列をさらに含むことができる。
【0154】
本発明の実施形態により選択されたIBGモードを示す情報及びペイロード長に対するパリティデータのようなFEC信号は、ペイロードと共に、一例としてMMTペイロード2004あるいはペイロードヘッダー2002を通じて伝送され、他の実施形態としてペイロードとは別のシグナリング手段を通じて伝送することができる。別途のシグナリング手段は、一例として
図10Aの制御機能部10000又は
図10BのMMT D.3階層あるいは図示しない他の制御シグナリング手段を意味する。以下に、FEC信号がペイロードヘッダーを通じて伝送される実施形態を説明する。
【0155】
図21は、本発明の一実施形態によるMMTペイロードフォーマットに含まれるペイロードヘッダーフォーマットを示す。
【0156】
図21を参照すると、ペイロードヘッダー2100で、¥ペイロードタイプ2102は、該当MMTペイロードフォーマットのペイロードがソースペイロードであるか、あるいはパリティペイロードであるかを表す。
【0157】
シーケンス番号(sequence number)2104は、伝送されるペイロードの順序を表すために順次に増加又は減少しつつ各ペイロードに割り当てられる値であって、受信器は、シーケンス番号2104からパケット(すなわち、ペイロード)が損失されるか否かがわかる。シーケンス番号2104が転送プロトコルヘッダー、例えば、MMTパケットヘッダーまたはRTPヘッダー内に含まれる場合、シーケンス番号2104は、ペイロードヘッダー2100内で省略できる。
【0158】
FECフラグ2106は、FECが適用されるか否かを表す。例えば、FECフラグ‘0’は、パリティペイロードなしにソースブロックのみが伝送されることを意味し、FECフラグ‘1’は、ソースブロックにパリティブロックが追加され、例えばFEC方式が適用されて伝送されることを意味する。
【0159】
ブロック境界(boundary)情報2108は、FEC配信ブロックの境界を示す。例えば、FEC配信ブロックの最初のソースペイロードのシーケンス番号は、すべてのヘッダーのブロック境界情報2108に割り当てられることができる。ブロック境界情報2108は、FEC配信ブロックの識別子(ID)の役割をし、FEC配信ブロックのすべてのペイロードのヘッダーに設定される。
【0160】
ペイロードサイズフラグ2110は、ソースブロック内のすべてのソースペイロードの長さが一定であるか否かを表す。例えば、ペイロードサイズフラグ‘0’は、ソースブロック内のすべてのソースペイロードが同じ長さを有することを表し、この場合、ソースブロック=情報ブロックであるので、ペイロード長に対するパリティブロックが生成される必要はない。ペイロードサイズフラグ‘1’は、ソースブロック内のソースペイロードの長さが一定でなく、ペイロード長のためのパリティブロックが生成されて伝送されること表す。
【0161】
FEC配信ブロック長2112は、FEC配信ブロックに含まれるペイロードの個数K'+Pを表す。
【0162】
ソースブロック長2114は、ソースブロックに含まれているソースペイロードの個数K'を表す。
【0163】
ペイロードサイズフラグが‘1’であり、ペイロードタイプ2102がパリティペイロードを指示する場合、ペイロード長に対するパリティデータ2116は、ペイロードヘッダー2100にさらに含まれ得る。
【0164】
受信器は、FEC配信ブロックの境界とFEC配信ブロック内のソースペイロードの個数K’とパリティペイロードの個数Pをペイロードヘッダー2100から把握する。ペイロードヘッダー2100に各ペイロードの長さに関する情報が含まれていない場合、受信器は、受信されたソースペイロードからその長さを計算してペイロード長に対するソースブロックを生成し、受信されたパリティブロックの前部からペイロード長に対するパリティブロックを獲得し、ペイロード長に対するFECブロックを回復する。回復されたFECブロック内で、受信されないペイロードに該当する長さフィールドとパリティデータは、削除される。
【0165】
受信器は、回復されたFECブロックを予め配置されたFECコードで復号化することで、ペイロード長に対するソースブロックを回復し、回復したペイロード長に対するソースブロックからすべてのソースペイロードの長さを検出し、受信されたソースペイロードを2次元S×K配列上に配置する。さらに、受信されたパリティペイロードに対応するS×P配列上に配置することによって、FECブロックを回復する。回復したFECブロック内で、受信されないペイロードに対する空間は、削除される。受信器は、予め配置されたFECコードを用いて回復されたFECブロックに対する復号化を実行して情報ブロックを回復する。回復された情報ブロックの最後のペイロードにパディングデータが存在する場合、受信器は、パディングデータを除去した後にソースブロックを出力する。システム上でデータがストリームで伝送される場合、パディングデータを除外した情報ブロックは、ソースブロックと同一である。データがペイロード単位で伝送される場合、受信器は、検出された長さに基づいて情報ブロックをソースブロックに変換できる。
【0166】
図22は、本発明の他の実施形態によるペイロードヘッダーフォーマットを示す。
【0167】
図22を参照すると、ペイロードタイプ2202、シーケンス番号2204、FECフラグ2206、ブロック境界情報2208、FEC配信ブロック長2212、及びソースブロック長2214の説明は、
図21と同様であり、ペイロードヘッダー2200内のIBGモード2210及びペイロード長に対するパリティデータ2216の説明は、以下のようである。
【0168】
IBG_Mode=0は、すべてのソースペイロードの長さが同一なのでソースブロック=情報ブロックを示し、したがってペイロード長に対するパリティデータ2216の生成なしにFEC配信ブロックが構成されて伝送することを示す。IBG_Mode=1は、
図2の情報ブロック生成モードにより、情報ブロックが生成され、AL-FEC符号化されることを表し、IBG_Mode=2は、
図3の情報ブロック生成モードにより情報ブロックが生成され、AL-FEC符号化することを表す。ペイロード長に対するパリティデータ2216は、IBG_Mode=1又は2であり、ペイロードタイプ2202がパリティペイロードを指示する場合に含まれる。
【0169】
図22は、
図19に示すようにペイロード長に対するパリティブロック1908がパリティブロックの前部1906に対するペイロードヘッダー内に格納して転送される場合のためのペイロードヘッダーフォーマットを示す。上記したように、IBG_Mode=2である場合、それぞれのペイロードヘッダーに格納されるパリティデータは、IBG_Mode=1である場合、それぞれのペイロードヘッダーに格納されるパリティデータより大きい。これは、IBG_Mode=1である場合、ペイロード長のためのFEC性能は、ソースブロックのためのFEC性能と同一であってもよく、IBG_Mode=2である場合にペイロード長のためのFEC性能は、ソースブロックのためのFEC性能より良くなければならないためである。例えば、ペイロード長のために2バイトが要求され、IBG_Mode=2のためにIBG_Mode=1である場合より2倍のFEC性能でペイロード長に対するパリティデータを生成する場合、IBG_Mode=1に対する各ペイロードヘッダー内でペイロード長に対するパリティデータ2216は、2バイトを必要とし、IBG_Mode=2に対する各ペイロードヘッダー内でペイロード長に対するパリティデータ2216は、4バイトを必要とする。
【0170】
図23は、本発明のもう一つの実施形態によるペイロードヘッダーフォーマットを示す。
【0171】
図23を参照すると、ペイロードヘッダー2300内のペイロードタイプ2302、シーケンス番号2304、FECフラグ2306、ブロック境界情報2308、FEC配信ブロック長2312、及びソースブロック長2314の説明は、
図21と同様であり、IBG_Mode2310と最後のフィールド2316について、以下のように説明する。
【0172】
IBG_Mode=0は、ソースペイロードの長さがすべて同一なので、ソースブロック=情報ブロックであり、したがってペイロード長のためのパリティデータ2316の生成なしにFEC配信ブロックが構成されて伝送されることを表す。IBG_Mode=1は、情報ブロックが
図2の情報ブロック生成モードにより生成されてAL-FEC符号化されることを表し、IBG_Mode=2は、情報ブロックが
図3の情報ブロック生成モードにより生成されてAL-FEC符号化されることを示す。IBG_Mode=1であり、ペイロードタイプ2302がパリティペイロードを指示する場合、ペイロード長に対するパリティデータは、最後のフィールド2316として含まれる。IBG_Mode=2であり、ペイロードタイプ2302がソースペイロードを指示する場合、該当ソースペイロードの開始位置を表すオフセットは、最後のフィールド2316として含まれる。
【0173】
IBG_Mode=2である場合、受信器は、FEC配信ブロック長2312、ソースブロック長2314、ブロック境界情報、及びオフセットのようなヘッダー情報からS×K配列の情報ブロックを生成できる。
【0174】
2段階FEC符号化構造が適用される場合、ペイロードヘッダーは、ペイロード長のためのサブブロックに対するパリティデータはペイロードタイプが最初のFEC符号化により生成されるパリティ1ペイロードのヘッダーに含まれ、ペイロード長のためのソースブロックに対するパリティデータはペイロードタイプが第2のFEC符号化により生成されるパリティ2ペイロードのヘッダーに含まれる。
【0175】
図24は、本発明の一実施形態によるMMTペイロードの伝送のためのパケットのプロトコルスタックを示す。
【0176】
図24を参照すると、IPパケット2400は、IPプロトコルヘッダー2402、UDP/TCPヘッダー2404、MMTプロトコル/アプリケーションプロトコルヘッダー2406、MMTペイロードフォーマットヘッダー2408、及びMMTペイロード2410を含む。MMTペイロード2410は、ソースペイロード又は本発明の実施形態のうちいずれか一つにより生成されるパリティペイロードを含み、MMTペイロードフォーマットヘッダー2408は、MMTペイロード2410に含まれるペイロードに関する情報を含む。特に、MMTペイロードフォーマットヘッダー2408は、情報ブロック構成のモードを表すIBG_Modeと必要な場合、ペイロード長に対するパリティデータを含む。
【0177】
以上、本発明の詳細な説明においては具体的な実施形態に関して説明したが、特許請求の範囲を外れない限り、様々な変更が可能であることは、当該技術分野における通常の知識を持つ者には明らかである。したがって、本発明の範囲は、前述の実施形態に限定されるものではなく、特許請求の範囲の記載及びこれと均等なものに基づいて定められるべきである。