JP2013502849A - 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置 - Google Patents

符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置 Download PDF

Info

Publication number
JP2013502849A
JP2013502849A JP2012525696A JP2012525696A JP2013502849A JP 2013502849 A JP2013502849 A JP 2013502849A JP 2012525696 A JP2012525696 A JP 2012525696A JP 2012525696 A JP2012525696 A JP 2012525696A JP 2013502849 A JP2013502849 A JP 2013502849A
Authority
JP
Japan
Prior art keywords
symbols
symbol
source
encoded
decoding
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.)
Granted
Application number
JP2012525696A
Other languages
English (en)
Other versions
JP5602858B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Priority claimed from US12/604,773 external-priority patent/US7956772B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013502849A publication Critical patent/JP2013502849A/ja
Application granted granted Critical
Publication of JP5602858B2 publication Critical patent/JP5602858B2/ja
Active 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/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/458Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
    • 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/0064Concatenated codes
    • 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/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • 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/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes

Abstract

被符号化シンボルが、中間シンボルの第1のセットから生成された第1のシンボルと、中間シンボルの第2のセットから生成された第2のシンボルとの組合せから生成され、各セットが、少なくとも1つの異なるコーディングパラメータを有し、中間シンボルがソースシンボルのセットに基づいて生成される、複数の被符号化シンボルを符号化することが提供される。また、中間シンボルのセットが、受信された被符号化シンボルのセットから復号され、中間シンボルが復号のためのシンボルの第1および第2のセットに編成され、第2のセット中の中間シンボルが、被符号化シンボルから中間シンボルを復元するための復号プロセスをスケジュールする目的で永久的に非活動化され、ソースシンボルの少なくともいくつかが中間シンボルの復号されたセットから復元される、データを復号する方法が提供される。

Description

相互参照
本出願は、M.Amin Shokrollahiらの、2009年10月23日に出願された「Method and Apparatus Employing FEC Codes with Permanent Inactivation of Symbols for Encoding and Decoding Processes」と題する米国特許出願第12/604,773号の一部継続出願であり、さらに、それぞれM.Amin Shokrollahiらの、それぞれ「Method and Apparatus Employing FEC Codes with Permanent Inactivation of Symbols for Encoding and Decoding Processes」と題する、2010年6月11日に出願された米国仮特許出願第61/353,910号、2009年11月2日に出願された米国仮特許出願第61/257,146号、および2009年8月19日に出願された米国仮特許出願第61/235,285号の優先権を主張する。上記の各仮出願および非仮出願は、すべての目的のために参照により本明細書に組み込まれる。
以下の参考文献は、すべての目的のためにそれらの全体が参照により本明細書に組み込まれる。
1)Michael G.Lubyに発行された「Information Additive Code Generator and Decoder for Communication Systems」と題する米国特許第6,307,487号(以下「Luby I」)、
2)Michael G.Lubyに発行された「Information Additive Group Code Generator and Decoder for Communication Systems」と題する米国特許第6,320,520号(以下「Luby II」)、
3)M.Amin Shokrollahiに発行された「Multi-Stage Code Generator and Decoder for Communication Systems」と題する米国特許第7,068,729号(以下「Shokrollahi I」)、
4)M.Amin Shokrollahiに発行された「Systems and Processes for Decoding a Chain Reaction Code Through Inactivation」と題する米国特許第6,856,263号(以下「Shokrollahi II」)、
5)M.Amin Shokrollahiに発行された「Systematic Encoding and Decoding of Chain Reaction Codes」と題する米国特許第6,909,383号(以下「Shokrollahi III」)、
6)Michael G.LubyおよびM.Amin Shokrollahiの、「In-Place Transformations with Applications to Encoding and Decoding Various Classes of Codes」と題する米国特許公開第2006/0280254号(以下「Luby III」)、
7)M.Amin Shokrollahiの、「Multiple-Field Based Code Generator and Decoder for Communications Systems」と題する米国特許公開第2007/0195894号(以下「Shokrollahi IV」)。
本発明は、通信システム中でデータを符号化および復号することに関し、より詳細には、効率的な方法で、通信されたデータ中の誤りおよびギャップをなくすためにデータを符号化および復号する通信システムに関する。
通信チャネルを介した送信側と受信側との間のファイルの送信のための技法は、多くの文献の主題である。好ましくは、受信側は、ある程度の確度でチャネルを介して送信側によって送信されたデータの正確なコピーを受信することを望む。チャネルが、(物理的に実現可能なほとんどすべてのシステムをカバーする)完全な忠実度を有していない場合、1つの懸念は、送信中に損失されたまたはゆがめられたデータをどのように処理するかということである。受信側は、破損したデータがいつ間違って受信されたかを常に把握することができるわけではないので、損失したデータ(消去)は、破損したデータ(誤り)よりも、しばしば処理しやすい。消去および/または誤りを訂正するために多数の誤り訂正符号が開発されてきた。一般に、使用される特定の符号は、データが送信されているチャネルの不忠実度と、送信されているデータの性質とに関する何らかの情報に基づいて選定される。たとえば、チャネルが長い周期の不忠実度を有することが知られている場合、バースト誤り符号がその適用例に最も適しているだろう。ごく短い、まれにしか起こらない誤りが予想される場合、単純なパリティ符号が最良であろう。
本明細書で使用する「ソースデータ」は、1つまたは複数の送信側において利用可能であるデータ、および受信機を使用して、誤りおよび/または消去を伴うまたは伴わない送信シーケンスからの復元によって取得されるデータなどを指す。本明細書で使用する「被符号化データ」は、搬送され、ソースデータを復元または取得するために使用され得るデータを指す。単純なケースでは、被符号化データはソースデータのコピーであるが、受信された被符号化データが、(誤りおよび/または消去により)送信された被符号化データとは異なる場合、この単純なケースでは、ソースデータは、ソースデータに関する追加のデータがなければ、完全には回復可能でないことがある。送信は空間または時間にわたって行われ得る。より複雑なケースでは、被符号化データは、変換においてソースデータに基づいて生成され、1つまたは複数の送信側から受信機に送信される。ソースデータが被符号化データの一部であることがわかる場合、符号化は「システマティック」であると言われる。システマティック符号化の単純な例では、被符号化データを形成するためにソースデータに関する冗長情報がソースデータの末尾に付加される。
また、本明細書で使用する「入力データ」は、FEC(順方向誤り訂正)エンコーダ装置またはFECエンコーダモジュール、構成要素、ステップなど(「FECエンコーダ」)の入力に存在するデータを指し、「出力データ」は、FECエンコーダの出力に存在するデータを指す。相応して、出力データは、FECデコーダの入力に存在することが予想され、FECデコーダは、それが処理した出力データに基づいて、入力データ、またはその対応物を出力することが予想されるであろう。場合によっては、入力データはソースデータであるかまたはそれを含み、場合によっては、出力データは被符号化データであるかまたはそれを含む。他の場合には、送信側デバイスまたは送信側プログラムコードは2つ以上のFECエンコーダを備え得、すなわち、ソースデータは一連の複数のFECエンコーダ中で被符号化データに変換される。同様に、受信機において、受信された被符号化データからソースデータを生成するために適用される2つ以上のFECデコーダがあり得る。
データはシンボルに区分されると考えられ得る。エンコーダは、ソースシンボルまたは入力シンボルのシーケンスから被符号化シンボルまたは出力シンボルを生成するコンピュータシステム、デバイス、電子回路などであり、デコーダは、受信または復元された被符号化シンボルまたは出力シンボルからソースシンボルまたは入力シンボルのシーケンスを復元するカウンターパートである。エンコーダとデコーダとはチャネルによって時間的および/または空間的に分離されており、受信された被符号化シンボルは、対応する送信された被符号化シンボルとまったく同じではないことがあり、それらが送信されたシーケンスとまったく同じシーケンスで受信されないことがある。シンボルが実際にビットストリームに分解されるか否かにかかわらず、シンボルの「サイズ」はビットで測定され得、シンボルが2M個のシンボルのアルファベットから選択されたとき、シンボルはMビットのサイズを有する。本明細書の多くの例では、シンボルはバイトで測定され、符号は256個の可能性の領域(256個の可能な8ビットパターンがある)を超えることがあるが、データ測定の異なる単位が使用され得ることと、様々な方法でデータを測定することがよく知られていることとを理解されたい。
Luby Iには、計算効率的、メモリ効率的および帯域幅効率的な方法で誤り訂正に対処するための、連鎖反応(chain reaction)符号などの符号の使用が記載されている。連鎖反応エンコーダによって生成される被符号化シンボルの1つの特性は、受信機が、十分な被符号化シンボルが受信されるとすぐに元のファイルを復元することが可能であることである。詳細には、元のK個のソースシンボルを高い確率で復元するために、受信機は、約K+A個の被符号化シンボルを必要とする。
所与の状況についての「絶対受信オーバーヘッド」は値Aによって表され、「相対受信オーバーヘッド」は比A/Kとして計算され得る。絶対受信オーバーヘッドは、どのくらいの余分のデータが情報理論的最小データ量を超えて受信される必要があるかの測度であり、デコーダの信頼性に依存し得、ソースシンボルの数Kに応じて変動し得る。同様に、相対受信オーバーヘッドA/Kは、復元されているソースデータのサイズに対して、どのくらいの余分のデータが情報理論的最小データ量を超えて受信される必要があるかの測度であり、同じくデコーダの信頼性に依存し得、ソースシンボルの数Kに応じて変動し得る。
連鎖反応符号は、パケットベースネットワークを介した通信のために極めて有用である。しかしながら、それらは時々かなり計算集約的であり得る。連鎖反応符号または別のレートレス(rateless)符号を使用して符号化する動的エンコーダより前に静的エンコーダを使用してソースシンボルが符号化される場合、デコーダは、より頻繁にまたはより容易に復号することが可能であり得る。そのようなデコーダは、たとえば、Shokrollahi Iに示されている。そこに示されている例では、ソースシンボルは静的エンコーダへの入力シンボルであり、静的エンコーダは、動的エンコーダへの入力シンボルである出力シンボルを生成し、動的エンコーダは、被符号化シンボルである出力シンボルを生成し、ただし、動的エンコーダは、入力シンボルの数に対して固定レートでない量のいくつかの出力シンボルを生成することができるレートレスエンコーダである。静的エンコーダは、2つ以上の固定レートエンコーダを含み得る。たとえば、静的エンコーダは、ハミング(Hamming)エンコーダ、低密度パリティ検査(「LDPC:low-density parity-check」)エンコーダ、高密度パリティ検査(「HDPC:high-density parity-check」)エンコーダなどを含み得る。
連鎖反応符号は、いくつかのシンボルが受信シンボルからデコーダにおいて復元されるとき、それらのシンボルを使用して追加のシンボルを復元することが可能であり得、今度はその追加のシンボルを使用してさらに多くのシンボルを復元し得るという特性を有する。好ましくは、デコーダにおけるシンボル解決の連鎖反応は、受信シンボルのプールが使い果たされる前に所望のシンボルのすべてが復元されるように続くことができる。好ましくは、連鎖反応符号化および復号プロセスを実行することの計算複雑さは低い。
デコーダにおける復元プロセスは、どのシンボルが受信されたかを判断することと、元の入力シンボルを受信された被符号化シンボルにマッピングするであろう行列を作成することと、次いで行列を反転させ、反転した行列と受信された被符号化シンボルのベクトルとの行列乗算を実行することとに関与し得る。典型的なシステムでは、これのブルートフォース(brute force)実装形態は、過大な計算作業とメモリ要件とを消費し得る。もちろん、受信された被符号化シンボルの特定のセットについて、元の入力シンボルのすべてを復元することは不可能であり得るが、それが可能である場合でも、結果を計算することは極めて計算コストが高くなり得る。
Shokrollahi IIには、復号が2つのステップで行われる「非活動化(inactivation)」と呼ばれる手法が記載されている。第1のステップでは、デコーダは、どのような受信された被符号化シンボルが利用可能であるか、行列がどのように見え得るかを評価し、受信された被符号化シンボルを仮定すれば、連鎖反応プロセスを完了させることを可能にするであろう復号ステップのシーケンスを少なくとも概算的に判断する。第2のステップでは、デコーダは、復号ステップの判断されたシーケンスに従って連鎖反応復号を実行する。これは、メモリ効率的な方法(すなわち、よりメモリ非効率的なプロセスほどには演算のためのメモリストレージを必要としない方法)で行われ得る。
非活動化手法では、第1の復号ステップは、解決され得るいくつかの入力シンボルを判断するために行列またはそれの等価物を操作することと、判断がストールしたとき、入力シンボルのうちの1つを「非活動化シンボル」として指定し、非活動化シンボルが実際は解決されると仮定して判断プロセスを継続することと、次いで最後に、ガウス消去法、または元の復号行列よりもはるかに小さい行列を反転させるための何らかの他の方法を使用して非活動化シンボルを解決することとに関与する。その判断を使用して、元の入力シンボルのすべてまたは元の入力シンボルの好適なセットのいずれかであり得る復元された入力シンボルに到達するために、受信された被符号化シンボルに対して連鎖反応シーケンスが実行され得る。
限られたメモリおよび計算能力をもつ低電力デバイス中にデコーダがある場合など、あるいは許容できる絶対または相対受信オーバーヘッドに対する厳しい制約があるときなど、デコーダに対して厳しい制約を課するいくつかの適用例では、上記で説明した非活動化手法に比較して改善された方法が示され得る。
また、ファイルまたは大きいデータブロックを、最小サブシンボルサイズに対する制約を条件として、できるだけ少数のソースブロックに区分し、さらに、これを条件として、最大サブブロックサイズに対する制約を条件として、できるだけ少数のサブブロックに分割するための方法が有用であり得る。
本発明の態様によるエンコーダの一実施形態によれば、送信側におけるエンコーダ、送信側の中のエンコーダ、または送信側のためのエンコーダが、通信チャネルを介して1つまたは複数の送信側から1つまたは複数の受信機にソースシンボルの順序セットを送信し、エンコーダは、ソースシンボルから生成される複数の被符号化シンボルを含む、送られるべきデータを生成する。第1のステップでは、中間シンボルは、可逆である方法を使用してソースシンボルから生成され、すなわち、中間シンボルからソースシンボルを生成するための逆方法もある。別のステップでは、中間シンボルは、中間シンボルの第1のセットと中間シンボルの第2のセットとに区分され、少なくとも1つの中間シンボルが中間シンボルの第1のセット中にあり、少なくとも1つの中間シンボルが中間シンボルの第2のセット中にあり、少なくとも1つの被符号化シンボルが、2つのセットの各々からの少なくとも1つの中間シンボルから生成される。いくつかの変形態では、3つ以上のセットがある。
いくつかの実施形態では、一時的シンボルの第1のセットおよび第2のセットの値が生成され、一時的シンボルの第1のセットのための値が中間シンボルの第1のセットの値に依存し、一時的シンボルの第2のセットの値が中間シンボルの第2のセットの値に依存する。被符号化シンボルの値は、一時的シンボルの第1のセットおよび第2のセットから生成される。
いくつかの変形態では、生成され得る被符号化シンボルの数は、ソースシンボルの数とは無関係である。
また、デコーダ実施形態が提供される。本発明の態様によるデコーダの一実施形態によれば、受信機におけるデコーダ、受信機中のデコーダ、または受信機のためのデコーダが中間シンボルから生成された被符号化シンボルを受信し、中間シンボルは、可逆である方法を使用してソースシンボルから生成され、すなわち、中間シンボルからソースシンボルを生成するための逆方法もあり、中間シンボルのうちの少なくとも1つが永久的非活動シンボルに指定され、永久的非活動シンボルのうちにない中間シンボルのうちの少なくとも別の1つがある。デコーダは、受信された被符号化シンボルから中間シンボルのセットを復号し、デコーダは、少なくとも1つの永久的非活動シンボルを考慮に入れ、逆方法を使用して中間シンボルの復号されたセットからソースシンボルを生成する。
復号では、永久的非活動シンボルのスケジューリングを除外して、復号ステップがスケジュールされる。永久的非活動シンボルは、新規の方法または従来の方法を使用して解決され、さらには他の中間シンボルについて解決する際に使用され得る。永久的非活動シンボル(および使用する場合、他のオンザフライ非活動化)について解決する1つの手法は、非活動シンボルについて解決するためにガウス消去法を適用することであり得る。残りの中間シンボルのいくつかは、復元された永久的非活動シンボルの値と受信された被符号化シンボルの値とに基づいて復元される。
復号方法のいくつかの変形態では、永久的非活動シンボルは、符号化実施形態からの中間シンボルの第2のセットを備える。復号方法のいくつかの変形態では、永久的非活動シンボルは中間シンボルのサブセットを備え、対応する符号化方法はマルチステージ連鎖反応符号ではない。そのような符号化方法は、中間シンボルのサブセットのためのトルネード符号、リードソロモン符号、連鎖反応符号(Luby Iに記載されている例)などのうちの1つまたは複数を含み得る。
中間シンボルは、符号化および復号のために使用され、ソースシンボルから中間シンボルを生成するための方法および対応する逆方法は、復号可能性など、パフォーマンス特性の所望のセットのために示される。いくつかの実施形態では、中間シンボルはソースシンボルを備える。いくつかの実施形態では、中間シンボルは、ソースシンボルから生成される冗長シンボルとともにソースシンボルを備え、冗長シンボルは、連鎖反応シンボル、LDPCシンボル、HDPCシンボルまたは他のタイプの冗長シンボルであり得る。代替的に、中間シンボルは、シンボル間の規定関係、たとえば、中間シンボルとソースシンボルとの間の関係、ならびに中間シンボル間の追加のLDPCおよびHDPC関係に基づき得、復号方法は、規定関係に基づいてソースシンボルから中間シンボルを生成するために使用される。
電子回路によって、またはプログラミング命令を実行し、符号化および/または復号を実装するために適切な命令プログラムコードを有する処理デバイスによって、それらの方法およびシステムが実装され得る。
多数の利益が本発明によって達成される。たとえば、特定の実施形態において、チャネルを介した送信のためにデータを符号化する計算費用は低減される。別の特定の実施形態では、そのようなデータを復号する計算費用は低減される。別の特定の実施形態では、絶対および相対受信オーバーヘッドは実質的に低減される。実施形態に応じて、これらの利益の1つまたは複数が達成され得る。これらおよび他の利益は、本願明細書全体にわたって、特に以下に、より詳細に与えられる。
本明細書の残りの部分および添付の図面を参照すれば、本明細書で開示する本発明の性質および利点をさらに理解することができる。
他の特徴および要素とともに、永久的非活動化を含むマルチステージコーディングを使用する通信システムのブロック図。 本明細書で様々な他の図において使用される変数、アレイなどのテーブルの図。 図1に示すエンコーダの特定の実施形態のブロック図。 図3の動的エンコーダをより詳細に示すブロック図。 永久的非活動化(PI:permanent inactivation)符号化プロセスを示すフローチャート。 動的符号化プロセスを示すフローチャート。 シンボル計算のための重みを計算する演算のフローチャート。 ルックアップ値に基づいてシンボルの度数を判断するために使用可能な、メモリに記憶され得るテーブルを示す図。 符号化または復号プロセスにおいて使用される行列を示す図。 特定の最小多項式について、図9に示す行列の一部を表す式を示す図。 符号化または復号において使用するアレイをセットアップするためのプロセスを示すフローチャート。 R個の静的シンボルを表す部分行列SE、またはデコーダによって知られる式を使用して、受信された被符号化シンボルを表すアレイD()から、復元されたソースシンボルを表すアレイC()を復元するためにデコーダによって解かれるべき式のセットの行列表現を示す図。 OTF非活動化を使用して、図12の行列の行/列置換から生じる行列を示す図。 図12中の行列を生成するためのプロセスを表すブロック図。 部分行列SEと永久的非活動シンボルに対応する部分行列とを使用して、受信された被符号化シンボルを表すアレイD()から、復元されたソースシンボルを表すアレイC()を復元するためにデコーダによって解かれるべき式のセットの行列表現を示す図。 図12の行列または図15の行列において使用され得るLT部分行列を生成するためのプロセスを示すフローチャート。 図15の行列において使用され得るPI部分行列を生成するためのプロセスを示すフローチャート。 行列生成器のブロック図。 SE部分行列を生成するためのプロセスを示すフローチャート。 PI部分行列を生成するためのプロセスを示すフローチャート。 デコーダにおいて復元されたシンボルについて解決するためのプロセスを示すフローチャート。 置換後に、受信された被符号化シンボルを表すアレイD()から、復元されたソースシンボルを表すアレイC()を復元するためにデコーダによって解かれるべき式のセットの行列表現を示す図。 図26に示す行列に対応する、デコーダによって解かれるべき式のセットの行列表現を示す図。 復号プロセスの一部として使用可能な行列表現を示す図。 復号プロセスの別の一部として使用可能な行列表現を示す図。 部分的解決後にデコーダによって解かれるべき式のセットの行列表現を示す図。 デコーダにおいて復元されたシンボルについて解決するための別のプロセスを示すフローチャート。 デコーダによって解かれるべき式のセットの行列表現を示す図。 デコーダによって解かれるべき式のセットの行列表現を示す図。 プログラムストアに記憶され、プロセッサによって実行されるハードウェアモジュール、ソフトウェアモジュール、またはプログラムコードの部分として、場合によっては、図に示すように分離されていないコードの集合的なユニットとして実装され得る例示的な符号化システムを示す図。 プログラムストアに記憶され、プロセッサによって実行されるハードウェアモジュール、ソフトウェアモジュール、またはプログラムコードの部分として、場合によっては、図に示すように分離されていないコードの集合的なユニットとして実装され得る例示的な復号システムを示す図。
付録Aとして添付されているのは、データオブジェクトの信頼できる配信に対するエンコーダ/デコーダシステム、誤り訂正方式、および適用例の特定の実施形態のためのコード仕様であり、時々本発明の詳細が使用されており、システマティックエンコーダ/デコーダがオブジェクト配信トランスポートにおいてどのように使用され得るかの仕様をも含む。付録A中で説明されている特定の実施形態は本発明の限定的な例ではないこと、および本発明のいくつかの態様は付録Aの教示を使用し得るが、他の態様は使用し得ないことを理解されたい。また、付録A中の限定的な記載が特定の実施形態の要件に関して限定的であり得、そのような限定的な記載は、請求される本発明に関係することも関係しないこともあり、したがって、クレームの文言は、そのような限定的な記載によって限定される必要はないことを理解されたい。
本明細書で参照するエンコーダおよびデコーダの部分を実装するための詳細は、Luby I、Luby II、Shokrollahi I、Shokrollahi II、Shokrollahi III、Luby III、およびShokrollahi IVによって与えられ、簡潔のためにここで完全には繰り返さない。それらの開示全体は、すべての目的のために参照により本明細書に組み込まれ、本発明には本明細書中の実装形態が必要であるわけではなく、別段に規定されていない限り、多くの他の変形形態、変更形態、または代替形態も使用され得ることを理解されたい。
マルチステージ符号化は、本明細書で説明するように、ソースデータを複数のステージで符号化する。常にではないが、一般に、第1のステージは、ソースデータに所定量の冗長性を追加する。次いで、第2のステージは、連鎖反応符号などを使用して、元のソースデータと、第1のステージの符号化によって計算された冗長シンボルとから被符号化シンボルを生成する。1つの特定の実施形態では、受信データは、最初に連鎖反応復号プロセスを使用して復号される。そのプロセスが元のデータを完全に復元することに成功しなかった場合、第2の復号ステップが適用され得る。
本明細書で教示する実施形態の一部は、多くの他のタイプの符号、たとえば、Internet Engineering Task Force(IETF)Request for Comments(RFC)5170に記載されている符号(以下、「IETF LDPC符号」)、ならびに米国特許第6,073,250号、6,081,909号および6,163,870号に記載されている符号(以下、「トルネード符号」)に適用され得、それらのタイプの符号の信頼性および/またはCPUおよび/またはメモリパフォーマンスが改善されることになる。
本明細書で教示するいくつかの実施形態の1つの利点は、連鎖反応コーディング単独と比較して、被符号化シンボルを生成するのにより少ない算術演算が必要であることである。第1のステージの符号化と第2のステージの符号化とを含むいくつかの特定の実施形態の別の利点は、第1のステージの符号化と第2のステージの符号化とが、別の時間においておよび/または別々のデバイスによって行われ得、したがって、計算負荷を分割し、全体的な計算負荷、また、メモリサイズおよびアクセスパターン要件を最小限に抑えることである。マルチステージ符号化の実施形態では、第1のステージの符号化中に入力ファイルから冗長シンボルが生成される。これらの実施形態では、第2のステージの符号化において、入力ファイルと冗長シンボルとの組合せから被符号化シンボルが生成される。これらの実施形態のうちの一部では、必要に応じて被符号化シンボルが生成され得る。第2のステージが連鎖反応符号化を備える実施形態では、各被符号化シンボルは、他の被符号化シンボルがどのように生成されるかを顧慮せずに生成され得る。生成された後、これらの被符号化シンボルは、パケットに入れられ、それらの宛先に送信され得、各パケットは1つまたは複数の被符号化シンボルを含んでいる。代わりにまたはその上、非パケット化送信技法が使用され得る。
本明細書で使用する「ファイル」という用語は、1つまたは複数のソースに記憶されており、ユニットとして1つまたは複数の宛先に配信されるべきデータを指す。したがって、ファイルサーバまたはコンピュータストレージデバイスからのドキュメント、画像、およびファイルはすべて、配信され得る「ファイル」の例である。ファイルは、(ハードディスクに記憶された1メガバイト画像など)既知のサイズであるか、または(ストリーミングソースの出力から取られたファイルなど)未知のサイズであり得る。どちらにしても、ファイルは、各ソースシンボルがファイル中の位置と値とを有する、ソースシンボルのシーケンスである。「ファイル」はまた、ストリーミングソースの短い部分を指すために使用され得、すなわち、データストリームは1秒区間に区分され得、そのような各1秒区間内のソースデータブロックは「ファイル」であると考えられ得る。別の例として、ビデオストリーミングソースからのデータブロックは、たとえばビデオストリームをプレイアウトすることができるビデオシステムによって定義されたそのデータの優先度に基づいて複数の部分にさらに区分され得、各ブロックの各部分は「ファイル」であると考えられ得る。したがって、「ファイル」という用語は、一般的に使用され、広範囲にわたって限定するものではない。
本明細書で使用するソースシンボルは、送信または搬送されるべきデータを表し、被符号化シンボルは、ソースシンボルの信頼できる受信および/または再生を可能にするために、通信ネットワーク上で搬送されるかまたは記憶されたソースシンボルに基づいて生成されたデータを表す。中間シンボルは、符号化プロセスまたは復号プロセスの中間ステップ中に使用または生成されるシンボルを表し、一般に、ソースシンボルから中間シンボルを生成するための方法と、中間シンボルからソースシンボルを生成するための対応する逆方法とが存在する。入力シンボルは、符号化または復号のプロセス中に1つまたは複数のステップに入力されるデータを表し、出力シンボルは、符号化または復号のプロセス中に1つまたは複数のステップから出力されるデータを表す。
多くの実施形態において、これらの異なるタイプまたはラベルのシンボルは、同じであるか、または少なくとも部分的に他のタイプのシンボルから構成され得、いくつかの例では、これらの用語は互換的に使用される。一例では、送信されるべきファイルは、各文字がソースシンボルと見なされる1000文字のテキストファイルであると仮定する。それらの1000個のソースシンボルがそのままエンコーダに与えられた場合、エンコーダは、送信される被符号化シンボルを出力し、ソースシンボルは入力シンボルでもある。ただし、第1のステップにおいて1000個のソースシンボルが1000個の(またはより多いもしくはより少ない)中間シンボルに変換され、第2のステップにおいてそれらの中間シンボルがエンコーダに与えられて被符号化シンボルを生成する実施形態では、第1のステップにおいて、ソースシンボルは入力シンボルであり、中間シンボルは出力シンボルであり、第2のステップにおいて、中間シンボルは入力シンボルであり、被符号化シンボルは出力シンボルであるが、ソースシンボルは、この2ステップエンコーダへの全体的な入力シンボルであり、被符号化シンボルは、この2ステップエンコーダの全体的な出力シンボルである。この例では、エンコーダがシステマティックエンコーダである場合、被符号化シンボルは、中間シンボルから生成されたリペアシンボルとともにソースシンボルを備え得るが、中間シンボルは、ソースシンボルと被符号化シンボルの両方とは異なる。代わりに、この例において、エンコーダが非システマティックエンコーダである場合、中間シンボルは、第1のステップにおいてたとえばLDPCおよび/またはHDPCエンコーダを使用してソースシンボルから生成された冗長シンボルとともにソースシンボルを備え得るが、被符号化シンボルは、ソースシンボルと中間シンボルの両方とは異なる。
他の例では、より多くのシンボルが存在し、各シンボルは2つ以上の文字を表す。いずれの場合も、送信機中にソース中間(source-to-intermediate)シンボル変換がある場合、受信機は、その逆として対応する中間ソース(intermediate-to-source)シンボル変換を有し得る。
送信とは、ファイルを配信するために、チャネルを通してデータを1つまたは複数の送信側から1つまたは複数の受信側に送信するプロセスである。送信側はまた、エンコーダと呼ばれることがある。1つの送信側が、完全なチャネルによって任意の数の受信側に接続されている場合、受信データは、すべてのデータが正しく受信されるので、ソースファイルの正確なコピーになることができる。ここで、チャネルが完全ではないことを仮定し、それは、たいていの現実世界のチャネルの実情である。多くのチャネル欠陥のうち、注目する2つの欠陥は、データ消去と、(データ消去の特殊な場合として扱われ得る)データ不完全性とである。データ消去は、チャネルからデータが損失または欠落したときに発生する。データ不完全性は、データの一部が受信側を通過してしまうまで受信側がデータを受信し始めないとき、送信が終了する前に受信側がデータを受信することを停止したとき、受信側が送信データの一部分のみを受信することを選定したとき、および/または受信側がデータを受信することを間欠的に停止および再開したときに発生する。データ不完全性の一例として、移動中の衛星送信側が、ソースファイルを表すデータを送信しており、受信側がレンジ内に入る前に送信を開始することがあり得る。受信側がレンジ内に入ると、衛星がレンジ外に移動するまでデータが受信され得、衛星がレンジ外に移動した時点で、受信側は、レンジ内に移動した別の衛星によって送信されている同じ入力ファイルに関するデータを受信し始めるために、受信側のサテライトディッシュを向け直すことができる(その時間中、受信側はデータを受信していない)。本明細書を読めば明らかであるように、受信側が全時間にレンジ内にあったが、受信側がデータを受信し始めた時点まで、チャネルからすべてのデータが損失したかのように、受信側はデータ不完全性を扱うことができる(また受信側は同じ問題を有する)ので、データ不完全性はデータ消去の特殊な場合である。また、通信システム設計においてよく知られているように、検出可能な誤りは、検出可能な誤りを有するすべてのデータブロックまたはシンボルを単に欠落したことによる消去と等価であると考えられ得る。
いくつかの通信システムでは、受信側は、複数の送信側によって、または複数の接続を使用する1つの送信側によって生成されたデータを受信する。たとえば、ダウンロードを高速化するために、受信側は、同じファイルに関するデータを送信するために2つ以上の送信側に同時に接続し得る。別の例として、マルチキャスト送信では、複数のマルチキャストデータストリームが送信されるので、受信側は、これらのストリームのうちの1つまたは複数に接続して、アグリゲート送信レートを、受信側を送信側に接続するチャネルの帯域幅に一致させることが可能になり得る。すべてのそのような場合において、問題は、すべての送信データが受信側に対して独立に使用されること、すなわち、異なるストリームについて送信レートが非常に異なるとき、および恣意的な損失パターンがあるときでも、複数のソースデータがストリーム間で冗長でないことを保証することである。
概して、通信チャネルは、データ送信のために送信側と受信側とを接続するチャネルである。チャネルがデータを入手したときにチャネルがデータを送信側から受信側に移動させる場合、通信チャネルはリアルタイムチャネルであり得、あるいは通信チャネルは、送信側から受信側へのデータ輸送においてデータの一部または全部を記憶するストレージチャネルであり得る。後者の例は、ディスクストレージまたは他のストレージデバイスである。その例では、データを生成するプログラムまたはデバイスは、データをストレージデバイスに送信する送信側として考えられ得る。受信側は、ストレージデバイスからデータを読み込むプログラムまたはデバイスである。ストレージデバイス上にデータを得るために送信側が使用する機構と、ストレージデバイス自体と、ストレージデバイスからデータを得るために受信側が使用する機構とが、集合的にチャネルを形成する。それらの機構またはストレージデバイスがデータを損失し得る可能性がある場合、それは、通信チャネルにおけるデータ消去として扱われるであろう。
送信側と受信側とが、シンボルが消去され得る通信チャネルによって分離されているとき、入力ファイルの正確なコピーを送信するのではなく、消去の復元を支援する入力ファイルから生成されたデータを送信することが好ましい。エンコーダは、そのタスクを処理する回路、デバイス、モジュール、またはコードセグメントである。エンコーダの演算を見る1つの方法は、エンコーダがソースシンボルから被符号化シンボルを生成することであり、ソースシンボル値のシーケンスは入力ファイルを表す。したがって、各ソースシンボルは、入力ファイル中の位置と値とを有することになる。デコーダは、受信側によって受信された被符号化シンボルからソースシンボルを再構成する回路、デバイス、モジュールまたはコードセグメントである。マルチステージコーディングでは、エンコーダとデコーダとは、時々、各々が異なるタスクを実行するサブモジュールにさらに分割される。
マルチステージコーディングシステムの実施形態では、エンコーダとデコーダとは、各々が異なるタスクを実行するサブモジュールにさらに分割され得る。たとえば、いくつかの実施形態では、エンコーダは、本明細書において静的エンコーダおよび動的エンコーダと呼ぶものを備える。本明細書で使用する「静的エンコーダ」は、ソースシンボルのセットからいくつかの冗長シンボルを生成するエンコーダであって、冗長シンボルの数が符号化より前に判断される、エンコーダである。マルチステージコーディングシステムにおいて静的符号化が使用されるとき、ソースシンボルと、静的エンコーダを使用してソースシンボルから生成された冗長シンボルとの組合せは、しばしば中間シンボルと呼ばれる。潜在的な静的符号化符号の例には、リードソロモン符号、トルネード符号、ハミング符号、IETF LDPC符号などのLDPC符号がある。「静的デコーダ」という用語は、本明細書では、静的エンコーダによって符号化されたデータを復号することができるデコーダを指すために使用される。
本明細書で使用する「動的エンコーダ」は、入力シンボルのセットから被符号化シンボルを生成するエンコーダであって、可能な被符号化シンボルの数が入力シンボルの数とは無関係であり、生成されるべき被符号化シンボルの数が固定である必要がない、エンコーダである。しばしば、マルチステージ符号では、入力シンボルは、静的符号を使用して生成された中間シンボルであり、被符号化シンボルは、動的エンコーダを使用して中間シンボルから生成される。動的エンコーダの一例は、Luby IおよびLuby IIにおいて教示されているエンコーダなど、連鎖反応エンコーダである。「動的デコーダ」という用語は、本明細書では、動的エンコーダによって符号化されたデータを復号することができるデコーダを指すために使用される。
いくつかの実施形態では、マルチステージ符号でありシステマティックである符号化は、中間シンボルの間で静的エンコーダによって定義され、および中間シンボルとソースシンボルとの間で動的エンコーダによって定義された関係に基づいて中間シンボル値を取得するためにソースシンボルに適用された復号プロセスを使用し、次いで、動的エンコーダが、中間シンボルから追加の被符号化シンボルまたはリペアシンボルを生成するために使用される。同様に、対応するデコーダは、被符号化シンボルを受信し、中間シンボルの間で静的エンコーダによって定義され、および中間シンボルと受信された被符号化シンボルとの間で動的エンコーダによって定義された関係に基づいて中間シンボル値を受信された被符号化シンボルから復号する復号プロセスを有し、次いで、動的エンコーダが、中間シンボルから消失したソースシンボルを生成するために使用される。
マルチステージコーディングの実施形態は、特定のタイプのシンボルに限定される必要はない。一般に、シンボルの値は、何らかの正の整数Mについて、2M個のシンボルのアルファベットから選択される。そのような場合、ソースシンボルは、入力ファイルからのデータのMビットのシーケンスによって表され得る。Mの値は、しばしば、たとえば、アプリケーションの使用、通信チャネル、および/または被符号化シンボルのサイズに基づいて決定される。さらに、被符号化シンボルのサイズは、しばしば、アプリケーション、チャネル、および/またはソースシンボルのサイズに基づいて決定される。場合によっては、被符号化シンボル値とソースシンボル値とが同じサイズであった(すなわち、同じビット数によって表せるかまたは同じアルファベットから選択された)場合、コーディングプロセスは簡略化され得る。そのような場合、被符号化シンボル値サイズが制限されているとき、ソースシンボル値サイズは制限される。たとえば、被符号化シンボルを、制限されたサイズのパケットに入れることが所望され得る。被符号化シンボルに関連する鍵に関する何らかのデータが、受信機において鍵を復元するために送信されるべき場合、被符号化シンボルは、好ましくは、被符号化シンボル値と鍵に関するデータとを1パケット中に収容するために十分小さくなるであろう。
一例として、入力ファイルが多メガバイトファイルである場合、その入力ファイルは、数千、数万、または数十万個のソースシンボルに分解され得、各ソースシンボルは、数千、数百、またはわずか数バイトを符号化する。別の例として、パケットベースインターネットチャネルの場合、1024バイトのサイズのペイロードをもつパケットが適切であり得る(1バイトは8ビットである)。この例では、各パケットが1つの被符号化シンボルと8バイトの補助情報とを含んでいると仮定すると、8128ビットの被符号化シンボルサイズ((1024−8)*8)が適切になるであろう。したがって、ソースシンボルサイズは、M=(1024−8)*8、すなわち8128ビットとして選定され得る。別の例として、いくつかの衛星システムがMPEGパケット規格を使用し、各パケットのペイロードが188バイトを備える。その例では、各パケットが1つの被符号化シンボルと4バイトの補助情報とを含んでいると仮定すると、1472ビットの被符号化シンボルサイズ((188−4)*8)が適切になるであろう。したがって、ソースシンボルサイズは、M=(188−4)*8、すなわち1472ビットとして選定され得る。マルチステージコーディングを使用した汎用通信システムでは、ソースシンボルサイズ(すなわち、ソースシンボルによって符号化されたビット数M)などの特定用途向けパラメータは、アプリケーションによって設定された変数であり得る。
各被符号化シンボルは値を有する。以下で考察する1つの好適な実施形態では、各被符号化シンボルはまた、「鍵」と呼ばれる識別子をそれに関連付けている。好ましくは、受信側が1つの被符号化シンボルを他の被符号化シンボルと区別することを可能にするために、各被符号化シンボルの鍵は受信側によって容易に判断され得る。好ましくは、ある被符号化シンボルの鍵は、すべての他の被符号化シンボルの鍵とは異なる。従来技術において説明されている様々な形式のキーイングが存在する。たとえば、Luby Iは、本発明の実施形態において採用され得る様々な形式のキーイングについて説明している。付録Aで説明している実施形態など、他の好適な実施形態では、被符号化シンボルの鍵は、「被符号化シンボル識別子(Encoded Symbol Identifier)」、または「符号化シンボル識別子(Encoding Symbol Identifier)」、またはより簡単に「ESI」と呼ばれる。
データ消去が予想される場合、またはちょうど送信が開始および終了したときに受信側が受信を開始および終了しない場合、マルチステージコーディングは特に有用である。後者の条件は、本明細書では「データ不完全性」と呼ぶ。消去イベントに関して、マルチステージコーディングは、Luby Iにおいて教示されている連鎖反応コーディングの利益の多くを共有する。特に、マルチステージ被符号化シンボルは情報付加的であり、したがって、所望の正確度まで入力ファイルを復元するために任意の好適な数のパケットが使用され得る。マルチステージコーディングを用いて生成された被符号化シンボルは情報付加的であるので、マルチステージコーディングが使用されたとき、これらの条件は通信プロセスに悪影響を及ぼさない。たとえば、データ消去を引き起こすノイズバーストにより100個のパケットが損失した場合、そのバースト後に、消去されたパケットの損失分を置き換えるために追加の100個のパケットがピックアップされ得る。送信機が送信を開始したときに受信機が送信機に同調しなかったために数千個のパケットが損失した場合、受信機は、他の送信期間から、さらには別の送信機から、それらの数千個のパケットをただピックアップすることができる。マルチステージコーディングでは、受信機は、パケットの特定のセットをピックアップするように制約されず、したがって、受信機は、1つの送信機からいくつかのパケットを受信し、別の送信機に切り替え、いくつかのパケットを損失し、所与の送信の始端または終端を消失し、それでも入力ファイルを復元することができる。受信機送信機協調なしに送信に入り、離れる能力は、通信プロセスを簡略化するのに役立つ。
いくつかの実施形態では、マルチステージコーディングを使用してファイルを送信することは、入力ファイルからソースシンボルを生成、形成または抽出することと、冗長シンボルを計算することと、ソースシンボルと冗長シンボルとを1つまたは複数の被符号化シンボルに符号化することであって、各被符号化シンボルが、すべての他の被符号化シンボルとは無関係にその各被符号化シンボルの鍵に基づいて生成される、符号化することと、チャネルを介して1つまたは複数の受信側に被符号化シンボルを送信することとを含むことができる。さらに、いくつかの実施形態では、マルチステージコーディングを使用して入力ファイルのコピーを受信(し、再構成)することは、より多くのデータストリームのうちの1つから被符号化シンボルのいくつかのセットまたはサブセットを受信することと、受信した被符号化シンボルの値と鍵とからソースシンボルを復号することとを含むことができる。
システマティック符号および非システマティック符号
システマティック符号は、ソースシンボルが、送信され得る被符号化シンボルの中にある符号である。この場合、被符号化シンボルは、ソースシンボルと、ソースシンボルから生成されたリペアシンボルとも呼ばれる冗長シンボルとから構成される。システマティック符号は、様々な理由で、多くの適用例では非システマティック符号よりも好ましい。たとえば、ファイル配信適用例では、リペアデータを生成するプロセスが何らかの時間量を取り得る場合、リペアデータを生成するためにデータが使用されている間、連続順序でそのデータを送信し始めることが可能であることが有用である。別の例として、多くの適用例は、1つのチャネルに元のソースデータを連続順序でそれの無変更形式で送り、別のチャネルにリペアデータを送ることを選好する。このことの1つの典型的な理由は、ソースデータチャネルのみに入るFEC復号を組み込まないレガシー受信機をサポートすることと、同時に、ソースデータチャネルとリペアデータチャネルの両方に入るFEC復号を組み込んだ拡張受信機により良いエクスペリエンスを提供することの両方である。
これらおよび関係するタイプの適用例では、受信機によって受信されたソースシンボル中の損失パターンおよび損失の部分が、受信されたリペアシンボル間で遭遇される損失パターンおよび損失の部分と極めて異なる場合が時々あり得る。たとえば、ソースシンボルがリペアシンボルより前に送られたとき、チャネルのバースト的損失状態により、ソースシンボル中の損失の部分およびパターンは、リペアシンボル中の損失の対応する部分およびパターンとは極めて異なり得、ソースシンボル中の損失のパターンは、損失が一様にランダムであった場合よりも典型的であり得たものとはかけ離れ得る。別の例として、ソースデータが1つのチャネル上で送られ、リペアデータが別のチャネル上で送られるとき、それらの2つのチャネル上で極めて異なる損失状態が存在し得る。したがって、様々なタイプの損失状態の下でうまく動作するシステマティックFEC符号を有することが望ましい。
本明細書の例は、(出力または被符号化シンボルがソースまたは入力シンボルを含む)システマティック符号、あるいは非システマティック符号に言及しているが、本明細書の教示は、別段に規定されていない限り、両方に適用可能であると考えられるべきである。Shokrollahi IIIでは、非システマティック符号のロバストネス性が、そのように構築されたシステマティック符号によって維持されるような方法で、非システマティック連鎖反応符号をシステマティック符号に変換するための方法を教示している。
特に、Shokrollahi IIIにおいて教示されている方法を使用する場合、構築されたシステマティック符号は、損失したソースシンボルと、損失したリペアシンボルとの間でデコーダによる復元可能性に関してほとんど区別がない性質を有し、すなわち、復号復元確率は、リペアシンボル中の損失の比率と比較して、ソースシンボル中の損失の比率とはほとんど無関係に所与の総損失量に対して本質的に同じである。さらに、被符号化シンボル中の損失のパターンは、復号復元確率に有意に影響を及ぼさない。比較において、トルネード符号またはIETF LDPC符号について記述されている構成など、他のシステマティック符号の構成では、多くの場合、損失したソースシンボルと損失したリペアシンボルとの間にデコーダによる復元可能性に関して強い区別がある、すなわち、リペアシンボルの間の損失の比率と比較してソースシンボルの間の損失の比率に応じて、復号復元確率は所与の総損失量に対して同じものに対して大きく異なり得る。さらに、被符号化シンボル中の損失のパターンは、復号復元確率に強い影響を有し得る。被符号化シンボルの損失が被符号化シンボルのすべての間で一様にランダムである場合、トルネード符号とIETF LDPC符号とは適度に良好な復元特性を有するが、復元特性は、損失モデルが一様ランダム損失からそれるにつれて劣化する。したがって、この意味において、Shokrollahi IIIにおいて教示されている実施形態は、システマティック符号の他の構成よりも利点を有する。
損失したソースシンボルと損失したリペアシンボルとの比率に応じて、および損失パターンに応じてデコーダによる復元可能性に関して強い影響がある特性をもつFEC符号の場合、この特性を克服するための1つの手法は、その手法が適用可能であるときは、被符号化シンボルを一様にランダムな順序で送ること、すなわち、ソースシンボルとリペアシンボルとの組合せを一様にランダムな順序で送り、このようにして、ソースシンボルをリペアシンボル間でランダムに点在させることである。ランダム順序で被符号化シンボルを送ることは、チャネル損失モデルが何であろうと、また損失がバースト的であるか、一様にランダムであるか、または何らかの他のタイプの損失であるかにかかわらず、被符号化シンボルに対する損失は依然としてランダムであるという利点を有する。ただし、上記のように、この手法は、いくつかの適用例、たとえば、リペアシンボルの前にソースシンボルを順々に送ることが望ましい適用例、または、ソースシンボルが、リペアシンボルとは異なるチャネル上で送られる適用例では望ましくない。
そのような場合、被符号化シンボル中の損失のパターンがデコーダの復元特性にあまり影響を及ぼさないシステマティック符号の構成が望まれ、いくつかの例を本明細書で提供する。
本明細書で使用する「ランダム」および「擬似ランダム」は、しばしば等価および/または交換可能であり、コンテキストに依存し得る。たとえば、ランダム損失は、真にランダムイベントであり得る、どのシンボルがチャネルによって損失したかを指し得、一方、シンボルネイバーのランダム選択は、実際は非ランダムプロセスによる繰り返し可能な擬似ランダム選択であり得るが、それは、真ランダム選択の場合がそうであるように同じまたは同様の特性または挙動を有する。明示的にまたはコンテキストによって別段に規定されていない限り、あるものをランダムとして特徴づけることは、擬似ランダム性を除外するものではない。
そのようなシステマティックFECエンコーダに対する1つの手法では、ソースシンボルは、複数のエンコーダサブブロックまたはサブプロセスを含むエンコーダによって取得され、それらの複数のエンコーダサブブロックまたはサブプロセスのうちの1つは、別のサブブロックまたはサブプロセスへの入力シンボルである中間シンボルを生成するデコーダとして動作する。次いで、中間シンボルは、被符号化シンボルが、(追加の冗長シンボルとともに)1つの一貫したプロセスから生成されたソースシンボルを含むように、中間シンボルを被符号化シンボルに符号化する別のサブブロックまたはサブプロセスに適用され、それによって、被符号化シンボルセット用にソースシンボルを得るために1つのプロセス(たとえば、コピー)を使用し、被符号化シンボルセット用に冗長シンボルを得るために別のプロセスを使用するシステマティックエンコーダであるエンコーダに勝る、ロバストネスの利益と他の利益とを提供する。
出力符号化は、連鎖反応エンコーダ、静的エンコーダまたは他の変形態であり得る。付録Aは、システマティック符号実施形態について説明している。本開示を読めば、当業者は、同じくシステマティック符号であるが、より良い復元特性を有するこれらの符号の新しいバージョンを生み出すために、トルネード符号およびIETF LDPC符号などのシステマティック符号に適用するようにShokrollahi IIIの教示を容易に拡張することが可能であるはずである。特に、以下で説明する概略的な方法を適用することによって得られたこれらの符号の新しいバージョンは、リペアシンボル中の損失の比率と比較してソースシンボル中の損失の比率が、復号復元確率に有意に影響を及ぼさず、さらに、損失のパターンが復号復元確率に有意に影響を及ぼさないという特性を有するように拡張される。したがって、これらの符号は、ソースシンボルとリペアシンボルとの間の異なる部分損失量または異なる損失パターンによって強く影響されない復元特性をもつシステマティックFEC符号の使用を必要とする上記で説明した適用例において効果的に使用され得る。
新しい符号化方法は、概して、新しい拡張システマティックFEC符号のための総合的符号化方法を生み出すために、システマティックFEC符号、非システマティックFEC符号、固定レートFEC符号および連鎖反応FEC符号の符号化に適用され得る。また、適用され得る対応する新しい復号方法が存在する。
エンコーダ中のデコーダの例
次に、エンコーダ中のデコーダの一例を与える。
符号化方法Eが、K個のソースシンボルからN個の被符号化シンボルを生成する固定レート(非システマティックまたはシステマティック)FEC符号Eのために(送信機または他の場所における)エンコーダによって使用される符号化方法であるとし、ただし、Nは少なくともKである。同様に、復号方法Eが、受信機または他の場所におけるデコーダによって使用される、FEC符号Eのための対応する復号方法であるとする。
FEC符号Eは、N個の被符号化シンボルのうちのK個のランダムセットが、復号方法Eを使用して元のK個のソースシンボルを妥当な確率で復元するのに十分であるという特性を有すると仮定し、ただし、妥当な確率は、たとえば、確率1/2であり得る。妥当な確率は、使用法またはアプリケーションによる何らかの要件セットであり得、1/2以外の値であり得る。特定の符号の構成は、特定の復元確率に固有である必要はないが、アプリケーションとシステムとは、ロバストネスのそれらの特定のレベルに設計され得ることを理解されたい。いくつかの事例において、復元確率は、K個よりも多くのシンボルを考察し、次いで、復号プロセスを使用して、これらの考察されたシンボルの中から正常な復号を可能にするK個のシンボルのセットを判断することによって高められ得る。
FEC符号Eのために、ESI(被符号化シンボル識別子)が各被符号化シンボルに関連付けられ、ESIはその被符号化シンボルを識別すると仮定する。一般性の損失なしに、ESIは、本明細書では、0,1,2,...,N−1で標示される。
FEC符号Eのための方法を使用して生成されたシステマティックFEC符号Fのためのシステマティック符号化方法Fの一実施形態では、KおよびNが入力パラメータである。FEC符号FのソースシンボルはESI 0,...,K−1を有し、FEC符号FのリペアシンボルはESI K,...,N−1を有することになる。FEC符号Fのためのシステマティック符号化方法Fは、FEC符号Eのための符号化方法Eと復号方法Eとを使用してK個のソースシンボルC(0),...,C(K−1)からN個の被符号化シンボルを生成し、ハードウェアおよび/またはソフトウェアによって次のように実行される。
(1)FEC符号Eに関連付けられたN個のESIをランダムに置換して、FEC符号E置換ESIセットX(0),...,X(N−1)に達し、この置換ESIセットは、FEC符号EのK個のソースシンボルが、ESI X(0),...,X(K−1)の置換順序に関してFEC符号Eの最初のK個の被符号化シンボルから復号され得るように編成される。
(2)各i=0,...,N−1について、FEC符号FのESI iをFEC符号EのESI X(i)に関連付ける。
(3)各i=0,...,K−1について、ESI X(i)をもつFEC符号Eの被符号化シンボルの値をソースシンボルC(i)の値に設定する。
(4)対応するFEC符号E ESI X(0),...,X(K−1)をもつソースシンボルC(0),...,C(K−1)に復号方法Eを適用して、復号シンボルE(0),...,E(K−1)を生成する。
(5)復号シンボルE(0),...,E(K−1)に符号化方法Eを適用して、関連するFEC符号ESI 0,...,N−1をもつFEC符号Eの被符号化シンボルD(0),...,D(N−1)を生成する。
(6)ESI 0,1,...,N−1を用いた符号化方法Fのための被符号化シンボルは、D(X(0)),D(X(1)),...,D(X(N−1))である。
符号化方法Fの出力は、N個の被符号化シンボルであり、それらのN個の被符号化シンボルのうち、最初のK個は、関連するESI 0,1,...,K−1をもつソースシンボルC(0),...,C(K−1)であることに留意されたい。したがって、符号化方法Fは、ソースデータのシステマティック符号化を生成する。
今説明した符号化方法Fに対応する復号方法Fの一実施形態は、次のとおりであり、ただし、KおよびNは、全体を通して使用されるこの方法への入力パラメータである。この復号方法Fは、関連するFEC符号F ESI Y(0),...,Y(K−1)をもつK個の受信された被符号化シンボルD(0),...,D(K−1)からK個のソースシンボルC(0),...,C(K−1)を復元する。これらの受信シンボルは、必ずしも送信されたシンボルである必要はない。ハードウェアおよび/またはソフトウェアによって実行される本方法は次のとおりである。
(1)FEC符号Eに関連付けられたN個のESIをランダムに置換して、FEC符号E置換ESIセットX(0),...,X(N−1)に達し、この置換ESIセットは、FEC符号EのK個のソースシンボルが、ESI X(0),...,X(K−1)の置換順序に関してFEC符号Eの最初のK個の被符号化シンボルから復号され得るように編成される。
(2)関連するFEC符号E ESI X(Y(0)),...,X(Y(K−1))をもつ被符号化シンボルD(0),...,D(K−1)に復号方法Eを適用して、復号シンボルE(0),...,E(K−1)を生成する。
(3)符号化方法Eを使用して、E(0),...,E(K−1)からFEC符号E ESI X(0),...,X(K−1)をもつ被符号化シンボルC(0),...,C(K−1)を生成する。
(4)ESI 0,...,K−1をもつFEC符号Fの復号ソースシンボルは、C(0),...,C(K−1)である。
今説明したように動作する方法および装置は、いくつかの望ましい性質を有する。たとえば、システマティック符号であるFEC符号Eであって、K個の受信された被符号化シンボルのランダムセットが高確率に復号され得るという性質を有するが、K個の被符号化シンボルが受信されたとき、受信された被符号化シンボル中のソースシンボルの比率がK/Nに近接していないという性質をも有する、FEC符号について考えると、そのFEC符号Eは高確率に復号され得ない。この場合、本実施形態は、FEC符号Eの符号化方法と復号方法とを使用する新しいFEC符号Fについて説明し、その新しいFEC符号Fは、ソースシンボルである受信された被符号化シンボルの比率とは無関係に、K個の受信された被符号化シンボルのセットから高確率に復号するという望ましい性質を有する。
上記の実施形態の多くの変形態がある。たとえば、符号化方法Fのステップ(1)において、ESIのランダム置換は、擬似ランダムであり得、またはランダムでも擬似ランダムでもないESIの良好な選択を生成する何らかの他の方法に基づき得る。FEC符号Eがシステマティック符号である場合、システマティックESIの中からステップ(1)において選択された置換中の最初のK個のESIの部分は、FEC符号Eのレートに比例する、すなわち、K/Nに比例することが好ましい。ステップ(1)中の新しい符号化方法Fによって行われるESIのランダム選定は、簡潔なデータ量によって表され得る、たとえば、新しい復号方法Fが、同じシードと擬似乱数発生器とESIを生成するための方法とに基づいてステップ(1)においてまったく同じESI置換選定を行うことができるように、シードと、擬似乱数発生器がどのように動作するかとに基づいてESIを選定する同意済みの方法とともに、周知または同意済みの擬似乱数発生器へのシードによって表され得ることが好ましい。概して、ESIのシーケンスを生成するためにステップ(1)中の新しい符号化方法Fにおいて使用されるプロセスと、ESIのシーケンスを生成するためにステップ(1)中の新しい復号方法Fにおいて使用されるプロセスとが、両方ともESIの同じシーケンスを生成する場合、新しい復号方法Fが新しい符号化方法Fの逆になるようにすることが好ましい。
同様に、たとえば、明示的ESIを使用せず、代わりに、ある被符号化シンボルの一意の識別子が、他の被符号化シンボルに対するその被符号化シンボルの位置によるか、または他の手段による、他の変形態がある。
上記の説明では、FEC符号Eの元のESIは、ソースシンボルの順序セットに連続順序でESI 0,...,K−1が割り当てられ、リペアシンボルにESI K,...,N−1が割り当てられるように、FEC符号Fによってリマッピングされる。他の変形態が可能であり、たとえば、ESIの再マッピングは、符号化方法Fが被符号化シンボルを生成した直後に、しかし被符号化シンボルが送信される前に、送信側において行われ得、ESIの逆再マッピングは、被符号化シンボルが受信されたとき、しかし被符号化シンボルが復号方法Fによって元のソースシンボルの復元のために処理される前に、受信機において行われ得る。
別の変形態として、新しい符号化方法Fのステップ(1)において、最初にK+A個のFEC符号E ESIを選択することによって置換が選択され得、ただし、Aは、高確率の復号可能性を保証するために選定された値であり、次いで、復号プロセスのシミュレーション中に、K+A個のESIの中からどのK個が実際に復号中に使用されるかが判断され、選択された置換は、置換の最初のK個のESIとなるべき、K+A個のESIの初期セットの中から実際に復号中に使用されるK個のESIを選択し得る。同様の変形態が、新しい復号方法Fに適用される。
符号化方法Fの別の変形態として、ステップ(1)において生成されるESIの置換に関連付けられるFEC符号Eの最初のK個の被符号化シンボルが復号可能であることを保証するために、ランダム置換を生成するために使用されるシードがKの値について事前計算され、次いで、このシードは、ステップ(1)において置換を生成するために、符号化方法Fおよび対応する復号方法Fのステップ(1)におけるKについて常に使用される。そのようなシードを選定するための方法は、ステップ(1)における復号可能性を保証するシードが発見されるまでシードをランダムに選定することと、次いで、このシードを選択することとを含む。代替的に、これらの性質をもつシードが符号化方法Fによって動的に生成され得、次いで、このシードは復号方法Fに通信され得る。
符号化方法Fの別の変形態として、ステップ(1)において部分置換が選択され得、すなわち、ESIのすべてと、被符号化シンボルのすべてとがステップ(5)および(6)において必要とされるのでなければ、たとえば、それらは、被符号化シンボルの一部であるソースシンボルに対応するので、またはN個未満の被符号化シンボルしか生成される必要がないので、新しい符号化方法Fのステップ(1)におけるESIのすべてが生成され、被符号化シンボルのすべてが生成される必要があるわけではない。他の変形態では、受信された被符号化シンボルの一部は、復元されているソースシンボルの一部に対応し得るので、新しい復号方法Fのステップ(3)および(4)における被符号化シンボルのすべてが再計算される必要があるわけではない。同様に、新しい復号方法Fのステップ(2)において、たとえば、ステップ(2)において復号されたシンボルの一部が、被符号化シンボルを生成するために後続のステップにおいて必要とされない場合、すべてのK個のシンボルE(0),...,E(K−1)が復号される必要があるわけではない。
上記で説明した方法および実施形態は多くの適用例を有する。たとえば、符号化方法Fおよび復号方法Fならびにそれらの変形態は、改善された受信オーバーヘッドと復号失敗確率パフォーマンスとを与えるためにトルネード符号およびIETF LDPC符号に適用され得る。概して、これらの新しい方法は、任意の固定レートFEC符号に適用される。これらの新しい方法の変形態はまた、固定レートを有しないFEC符号、すなわち、生成され得る被符号化シンボルの数がソースシンボルの数とは無関係である、連鎖反応符号などのFEC符号に適用され得る。
Shokrollahi IIIは、連鎖反応符号のためのシステマティック符号化および復号方法を作成するための同様の教示を含んでいる。いくつかの実施形態では、これらの符号のために使用される符号化方法および復号方法Eは、Luby I、Luby II、Shokrollahi I、Shokrollahi II、Luby III、Shokrollahi IVにおいて教示されている方法である。システマティックエンコーダについて説明するためには、符号化方法Eと復号方法Eとについて説明し、これらの方法をシステマティック符号化方法Fとシステマティック復号方法Fとに変換するために、上記で説明し、それらの文献から知られる一般的原理を使用することでしばしば十分である。したがって、本開示と引用文献とを読めば、符号化方法Eと復号方法Eとについて説明している本教示をどのように取り入れ、同教示をシステマティック符号化方法Fとシステマティック復号方法Fとに適用すべきかなどが当業者には明らかであるはずである。非活動化
Shokrollahi IIなどにおいて教示されている非活動化復号は、既知の一次方程式値のセットから未知の変数のセットについて解くときはいつでも信念伝搬と組み合わせて適用され得る一般的な方法であり、一次方程式のセットに基づいて効率的な符号化方法と復号方法とを実装するときは特に有益である。Shokrollahi IIに記載されている非活動化復号と、本明細書で以下で説明する永久的非活動化復号とを区別するために、Shokrollahi IIの方法および教示を参照するためには「オンザフライ」非活動化(所々で「OTF非活動化」と略す)を使用し、非活動化が事前に選択される本明細書の方法および教示を参照するためには「永久的非活動化」を使用する。
信念伝搬復号の1つの教義は、復号プロセス中に可能であるときはいつでも、デコーダは、1つの残りの未知の変数について解くために、その変数に依存する方程式(場合によっては簡約方程式)を使用しなければならず、したがって、その方程式は、その変数に関連付けられ、次いで、解かれた変数に対するそれらの方程式の依存性をなくすことによって残りの未使用の方程式を簡約するということである。そのような単純な信念伝搬ベースの復号プロセスは、たとえば、トルネード符号、Luby I、Luby II、Shokrollahi I、Shokrollahi II、Luby III、Shokrollahi IVに記載されている連鎖反応符号、およびIETF LDPC符号の実施形態の一部において使用されている。
OTF非活動化復号は複数の段階で進行する。OTF非活動化復号方法の第1の段階では、ただ1つの残りの未知の変数に依存する残りの方程式がないので信念伝搬復号プロセスが進むことができないときはいつでも、デコーダは、1つまたは複数の未知の変数を「OTF非活動化」し、それらの未知の変数を、(実際にはそうでないにもかかわらず)信念伝搬プロセスに関して「解かれ」、残りの方程式から「除去された」ものと見なし、このようにして、場合によっては信念伝搬復号プロセスが進むことを可能にする。次いで、たとえば第2の段階において、第1の段階中にOTF非活動化された変数について、たとえばガウス消去法またはより計算量的に効率的な方法を使用して解かれ、次いで、第3の段階において、これらのOTF非活動化された変数の値は、復号の第1の段階中に方程式に関連付けられた変数について完全に解くために使用される。
Shokrollahi IIなどにおいてより詳細に教示されているOTF非活動化復号は、連鎖反応符号以外の多くの他のタイプの符号に適用され得る。たとえば、そのOTF非活動化復号は、LDPCおよびLDGM符号の一般的クラス、特にIETF LDPC符号およびトルネード符号に適用され得、その結果、それらのタイプの符号について信頼性が改善され(デコードに失敗する確率を減少させ)、ならびに/あるいはCPUおよび/またはメモリパフォーマンスが改善される(符号化および/または復号の速度を増加させ、および/または所要メモリサイズおよび/またはアクセスパターン要件を減少させる)。
OTF非活動化復号と組み合わせた連鎖反応符号実施形態の変形態のいくつかがShokrollahi IVにおいて説明されている。本出願では他の変形態について説明する。
システム概観
図1は、マルチステージコーディングを使用する通信システム100のブロック図である。このブロック図は、Shokrollahi Iに示されているものと同様であるが、この場合、エンコーダ115は、どの中間シンボルの指定が「永久的非活動化」されているかを考慮に入れ、動的符号化プロセス中に永久的非活動化されていない中間シンボルとは異なってそれらの中間シンボルに作用する。同様に、デコーダ155も、復号するときに永久的非活動化中間シンボルを考慮に入れる。
図1に示すように、K個のソースシンボル(C(0),...,C(K−1))がエンコーダ115に入力され、デコーダ155が利用可能になるシンボルの復号に成功した場合、デコーダ115は、それらのK個のソースシンボルのコピーを出力することができる。いくつかの実施形態では、ストリームは、K個のシンボルブロックにパースされ、いくつかの実施形態では、Kよりも大きいいくつかのソースシンボルのファイルは、Kサイズのシンボルブロックに分割され、そのように送信される。いくつかの実施形態では、K′>Kのブロックサイズが好適である場合、K′−K個のパディングシンボルがK個のソースシンボルに追加され得る。これらのパディングシンボルは、値0を有するか、あるいはエンコーダ115とデコーダ155の両方に知られている(かまたは場合によってはデコーダ155において判断されることが可能である)任意の他の固定値を有することができる。エンコーダ115は複数のエンコーダ、モジュールなどを備えることがあり、それはデコーダ155についても当てはまり得ることを理解されたい。
図示のように、エンコーダ115はまた、動的鍵生成器120から動的鍵のシーケンスを、および静的鍵生成器130から静的鍵のシーケンスを受信し、動的鍵生成器120と静的鍵生成器130の各々は乱数発生器135によって駆動され得る。動的鍵生成器120の出力は単に基数シーケンスであってよいが、そうである必要はない。鍵生成器の演算は、Shokrollahi Iに示されているとおりでよい。
図に示す様々な機能ブロックは、入力信号として与えられる指定された入力をもつハードウェアとして実装され得、または、命令メモリに記憶されており、対応する機能を実行するために適切な順序で実行される命令を実行するプロセッサによって実装され得ることを理解されたい。場合によっては、それらの機能を実行しおよび/またはプログラムコードを実行するための専用ハードウェアが使用される。プログラムコードおよびプロセッサは常に示されているわけではないが、当業者ならば、本開示を読めば、そのような詳細をどのように実装すべきかがわかるであろう。
エンコーダ115はまた、本明細書の他の場所で説明するラインに沿って、非活動化指定器125からの入力と、システム100への他のパラメータ入力とを受信する。非活動化指定器125の出力は、復号のために「永久的非活動化」されていると指定された中間シンボルの数を表す値Pを含み得る(「PIリスト」は、中間シンボルのうちのどのP個がリスト上にあるかを示す)。他の場所で説明するように、いくつかの実施形態では、符号化プロセスのために使用される中間シンボルはK個のソースシンボルだけであるが、他の実施形態では、K個のソースシンボルをコピーするだけでなくそれらから中間シンボルを生成する何らかのタイプの処理、変換、符号化、復号などがある。
入力パラメータは、(以下でより詳細に説明する)鍵生成器および/またはエンコーダの符号化プロセスによって使用されるランダムシード、生成すべき被符号化シンボルの数、生成すべきLDPCシンボルの数、生成すべきHDPCシンボルの数、生成すべき中間シンボルの数、生成すべき冗長シンボルの数などを含み得、および/またはこれらの値のいくつかは、エンコーダ115にとって利用可能な他の値から計算される。たとえば、生成されるべきLDPCシンボルの数は、固定式およびKの値から完全に計算され得る。
エンコーダ115は、それの入力から被符号化シンボルのシーケンス(B(I0),B(I1),B(I2),...)を生成し、そのシーケンスを送信モジュール140に供給し、その送信モジュール140は、動的鍵生成器120から動的鍵値(I0,I1,I2,...)をも受信するが、その情報を搬送する別の方法がある場合、これは必要でないことがある。送信モジュール140は、送信モジュール140に与えられたものを、場合によっては、ここでより詳細に説明する必要がない従来の方法でチャネル145に搬送する。受信モジュール150は、被符号化シンボルと(必要な場合に)動的鍵値とを受信する。チャネル145は、(別の場所において受信されるためにある場所から送信するための)空間を通るチャネル、または(たとえば、後の時間にリプレイバックするために媒体に記録するための)時間を通るチャネルであり得る。チャネル145は、被符号化シンボルのうちの一部の損失を生じ得る。したがって、デコーダ115が受信モジュール150から受信する被符号化シンボルB(Ia),B(Ib),...は、送信モジュールが送った被符号化シンボルに等しくないことがある。これは、異なる下つき添字インデックスによって示されている。
デコーダ155は、好ましくは、動的鍵再生器160と乱数発生器163と静的鍵生成器165とを使用して、(鍵が異なることがある)受信シンボルのために使用される鍵を再生し、様々な復号パラメータを入力として受信することが可能である。これらの入力のいくつかはハードコーディングされ(すなわち、デバイスの構築中に入力され)得、いくつかは変更可能な入力であり得る。
図2は、他の図においておよび本開示全体にわたってほとんどの場合に使用される、表記法の概要を伴う、変数、アレイなどのテーブルである。特に明記しない限り、Kは、エンコーダのソースシンボルの数を示し、Rは、静的エンコーダによって生成される冗長シンボルの数を示し、Lは、「中間シンボル」、すなわち、ソースシンボルと冗長シンボルの組合せの数であり、したがって、L=K+Rである。
以下で説明するように、静的エンコーダのいくつかの実施形態では、2つのタイプの冗長シンボルが生成される。ここでの多くの例において使用される、特定の実施形態では、第1のセットはLDPCシンボルを備え、第2のセットはHDPCシンボルを備える。一般性の損失なしに、本明細書の多くの例は、SをLDPCシンボルの数として参照し、HをHDPCシンボルの数として参照する。3つ以上の冗長シンボルのタイプが存在し得、したがって、R=S+Hである必要はない。LDPCシンボルとHDPCシンボルとは異なる度数分布を有し、当業者ならば、本開示を読めば、LDPCシンボルまたはHDPCシンボルではない冗長シンボルであって、2つ(またはそれ以上)のシンボルセットを備え、各セットが他のセットの度数分布とは異なる度数分布を有する、冗長シンボルをどのように使用すべきかがわかるであろう。よく知られているように、冗長シンボルのセットの度数分布は、度数の分布を指し、冗長シンボルの度数は、冗長シンボルが依存するソースシンボルの数を指す。
Pは、中間シンボルの中の永久的非活動シンボルの数を示す。永久的非活動シンボルは、信念伝搬を続ける (および次いで非活動化シンボルを解決した後に解決するために戻って くる)ために、信念伝搬ネットワークにおいて特定の処理のために指定されたシンボル、すなわち、「除外」または「非活動化」されるべきシンボルであり、永久的非活動化シンボルは、そのような処理のためにエンコーダにおいて指定されるという点で、他の非活動化シンボルとは区別される。
Nは、復号の試みがデコーダ155によって行われる受信シンボルの数を示し、Aは、「オーバーヘッド」シンボルの数、すなわち、Kを超えた受信された被符号化シンボルの数である。したがって、A=N−Kである。
K、R、S、H、P、NおよびAは、整数であり、典型的にはすべて1以上の整数であるが、特定の実施形態では、これらのうちのいくつかは1または0であり得る(たとえば、R=0は、冗長シンボルがない場合であり、P=0は、OTF非活動化しかない、Shokrollahi IIの場合に頼る)。
ソースシンボルのベクトルは(C(0),...,C(K−1))で示され、冗長シンボルのベクトルは(C(K),...,C(L−1))で示される。したがって、システマティックな場合、(C(0),...,C(L−1))は中間シンボルのベクトルを示す。それらの中間シンボルのうちのP個は、「永久的非活動」であると指定される。「PIリスト」は、中間シンボルのうちのどれが永久的非活動シンボルであるかを示す。多くの実施形態では、PIリストは単に最後のP個の中間シンボル、すなわち、C(L−P),...,C(L−1)を指すが、これは要件ではない。その場合は、この説明の残りの部分を簡略化するためのものとのみ考えられる。
PIリスト上にない中間シンボルは、本明細書では「LT中間シンボル」と呼ぶ。本例では、LT中間シンボルはC(0),...,C(L−P−1)となる。D(0),...,D(N−1)は、受信された被符号化シンボルを示す。
値のアレイが「N(0),...,N(x)」などと記述される場合、それは1つまたは2つの値しかない場合を除外するものではないので、これは、少なくとも3つの値を必要とするものと考えられるべきではないことに留意されたい。
永久的非活動化を使用した符号化方法
図3は、図1に示すエンコーダ115の1つの特定の実施形態のブロック図である。そこで示されているように、ソースシンボルは、入力バッファ205に記憶され、静的エンコーダ210と動的エンコーダ220とに供給され、動的エンコーダ220は、鍵入力と他の入力とをも受信する。静的エンコーダ210は、内部値とプログラム命令とを記憶するための内部記憶装置215(メモリ、バッファ、仮想メモリ、登録記憶装置など)を含み得る。同様に、動的エンコーダ220は、内部値とプログラム命令とを記憶するための内部記憶装置225(メモリ、バッファ、仮想メモリ、登録記憶装置など)を含み得る。
いくつかの実施形態では、冗長性計算器230は、作成すべき冗長シンボルの数Rを判断する。いくつかの実施形態では、静的エンコーダ210は、冗長シンボルの2つの別個のセットを生成し、特定の実施形態では、第1のセットは、最初のS個の冗長シンボル、すなわち、シンボルC(K),...,C(K+S−1)であり、それらはLDPCシンボルであるが、第2のセットは、次のH個の冗長シンボル、すなわち、C(L−H),...,C(L−1)であり、それらはHDPCシンボルである。PIリストが最後のP個の冗長シンボルである場合、(P≧Hである場合)H個の冗長シンボルのすべてがPIリスト上にあるか、または(P<Hの場合)P個の冗長シンボルのすべてがHDPCシンボルであり得る。
シンボルのこれらの2つのセットの生成をもたらす演算は極めて異なり得る。たとえば、以下で説明するいくつかの実施形態では、LDPC冗長シンボルを生成するための演算はバイナリ演算であり、HDPCシンボルを生成するための演算は非バイナリ演算である。
動的エンコーダ220の演算が図4にさらに詳細に説明されている。一実施形態によれば、動的エンコーダ220は、2つのエンコーダ、すなわち、PIエンコーダ240とLTエンコーダ250とを備える。いくつかの実施形態では、LTエンコーダ250は連鎖反応エンコーダであり、PIエンコーダ240は特定のタイプの連鎖反応エンコーダである。他の実施形態では、これらの2つのエンコーダは極めて同様であり得るか、またはPIエンコーダ240は連鎖反応エンコーダではない。これらのエンコーダがどのように定義されようとも、LTエンコーダ250は、永久的非活動的でないと指定されたLT中間シンボルC(0),...,C(L−P−1)からシンボルを生成し、PIエンコーダ240は、永久的非活動中間シンボルC(L−P),...,C(L−1)からシンボルを生成する。これらの2つの生成されたシンボルはコンバイナ260に入り、コンバイナ260は、最終の被符号化シンボル270を生成する。
本発明のいくつかの実施形態では、永久的非活動化シンボルの一部はLT符号化プロセスに関与し、永久的非活動化シンボルでないシンボルの一部はPI符号化プロセスに関与し得る。言い換えれば、PIリストと、LT中間シンボルを備えるシンボルのセットとは、独立である必要はない。
好適な実施形態では、コンバイナ260に供給されるシンボルは、同じ長さを有し得、コンバイナ260によって実行される機能は、被符号化シンボル270を生成するための、これらのシンボルに対するXOR演算である。ただし、これは、本発明の動作には不要である。同様の結果をもたらし得る他のタイプのコンバイナが想定され得る。
他の実施形態では、中間シンボルは、3つ以上のセット、たとえば、各々がそれの関連するエンコーダ240をもつ、LTシンボルの1つのセットと、PIシンボルのいくつか(2つ以上)のセットとに再分割される。もちろん、各関連するエンコーダは、異なるセットのための異なるエンコーダとして働くとき、符号化プロセスに従って異なる命令に基づいて動作する、共通のコンピューティング要素またはハードウェア要素として実装され得る。
PIエンコーダ240によって実行され得るPI符号化プロセス241の例示的な演算が図5に例示されている。生成されるべき被符号化シンボルに対応する鍵I_aを使用して、ステップ261において、エンコーダは、正の重みWPと、両端の値を含むLPとL−1との間のWP個の整数を含んでいるリストALPとを判断する。ステップ263において、リストALP=(t(0),...,t(WP−1))である場合、シンボルXの値を
Figure 2013502849
に設定し、ただし、
Figure 2013502849
はXOR演算を示す。
いくつかの実施形態では、重みWPは、3、または4、または何らかの他の固定数など、何らかの数に固定される。他の実施形態では、重みWPは、2または3のいずれかに等しくなるように選定などされている、可能なそのような数の小さいセットに属し得る。たとえば、付録Aの実施形態に示すように、重みWPは、LTエンコーダ250によって実行され得るLT符号化プロセス251によって生成されたシンボルの重みに依存する。LTエンコーダ250によって生成された重みが2である場合、WPは、鍵I_aに応じて、2または3のいずれかとなるように選定され、WPが2であるかまたは3であるかの回数の比率はほぼ等しい。LTエンコーダ250によって生成された重みが3よりも大きい場合、WPは2となるように選定される。
図6は、本発明の実施形態のうちの1つによる、Luby IとShokrollahi Iとの教示を使用したLT符号化プロセス251の一例である。ステップ267において、鍵I_aを使用して、それぞれ重みWLとリストALとを生成する。ステップ269において、リストALP=(j(0),...,j(WL−1))である場合、シンボルXの値を
Figure 2013502849
に設定する。
図7に、重みWLを計算する演算を示す。そこで示されているように、ステップ272において、生成されるべき被符号化シンボルに関連する数vを作成し、その被符号化シンボルの鍵I_aに基づいて計算し得る。エンコーダとデコーダとが一致することができる限り、数vは、被符号化シンボルのインデックス、代表ラベルなどであるか、または別個の数であり得る。この例では、vは、0と220との間にあるが、他の例では、(0〜232などの)他の範囲が可能である。vの生成は、ランダム性生成テーブルを使用して明示的に行われ得るが、これらの乱数をどのように生成すべきかの厳密な演算は異なることができる。
エンコーダはテーブルMにアクセスできるものと仮定され、それの一例が図8に与えられている。「度数分布ルックアップ」テーブルと呼ばれるテーブルMは、2つの列と複数の行とを含んでいる。左列は、重みWLの起こり得る値で標示され、右列は、両端の値を含む0と220との間の整数で標示されている。vのどんな値にも、度数分布ルックアップテーブルのM[d]列中に、M[d−1]<v≦M[d]が真である、厳密に1つのセルがある。その1つのセルに対して、d列中の対応する値があり、エンコーダは、その値を被符号化シンボルの重みWLとして使用する。たとえば、被符号化シンボルがv=900000を有する場合、その被符号化シンボルの重みはWL=7となる。
静的エンコーダ210は要素SE(k,j)にアクセスでき、ただし、k=0,...,R−1およびj=0,...,L−1である。これらの要素は、α*Xがシンボルであるようにフィールドの要素αとシンボルXとの間の演算*が存在する任意の有限フィールドに属することができ、
Figure 2013502849
であり、ただし、
Figure 2013502849
はXOR演算を示す。そのようなフィールドおよび演算はShokrollahi IVに詳述されている。静的エンコーダ210の演算は、ソースシンボルC(0),...,C(K−1)の所与のシーケンスについて、式1に示す関係を満たす冗長シンボルC(K),...,C(L−1)のシーケンスを計算するものとして記述され得、ただし、Z(0),...,Z(R−1)は、エンコーダとデコーダとに知られている値(たとえば、0)である。
Figure 2013502849
式1では、エントリSE(k,j)はすべてバイナリであり得、またはそれらの一部はフィールドGF(2)に属することができるが、他のエントリは他のフィールドに属する。たとえば、付録Aの実施形態の対応する行列が図9に与えられている。それは、S個の行をもつ部分行列と、H個の行をもつ部分行列という、2つの部分行列を備える。上側の部分行列は2つの部分を備える。その部分行列は、あらゆる行が2つの連続する1を有する、最後のP個の列を備える(位置はモジュロPで計数される)。この行列の最初のW=L−P個の列は、S×S単位行列を伴う循環行列(circulant matrix)を備える。循環行列はB個の列を備え、各々(場合によっては最後以外)はS個の行を有する。これらの循環行列の数はceil(B/S)である。これらの循環行列中の列は、各々厳密に3つの1を有する。k番目の循環行列の第1の列は、位置0と、(k+1) mod Sと、(2k+1) mod Sとに1を有する。他の列は、第1の列の巡回(cyclic)シフトである。図9中の下側のH個の行は、H×H単位行列を伴うGF(256)中のエントリをもつ行列Qを備える。
αが、最小多項式x8+x4+x3+x2+1をもつGF(256)の要素を示す場合、行列Qは、図10に与える行列に等しい。ここで、Δ1,...,ΔK+S-1は、2つの非ゼロエントリの位置が、付録Aのセクション5.3.3.3.で概説するプロシージャに従って擬似ランダムに判断される重み2の列である。(付録Aに与えたものなどの)値S、P、およびHの適切な選定のために、図10の行列は、対応する符号の優れた復元特性をもたらす。上記で説明したプロシージャは図11に例示されている。ステップ276において、行列SEを0に初期化する。ステップ278において、LDPCシンボルの数に等しい入力変数Sをプロセスに与え、ペア(i,j)について、i=j mod S、またはi=(1+floor(j/S))+j mod S、またはi=2*(1+floor(j/S))+j mod Sとなるように、SE(i,j)の値を1に設定する。このステップは、図9中の循環行列に対処する。
ステップ280において、図9中の単位行列ISに対応する位置を1に設定する。ステップ282において、図9中の行列のPI部分に対応する位置を1に設定する。これらの位置は形式(i,l)および(i,t)であり、ただし、l=i mod Pおよびt=(i+1) mod Pである。ステップ284において、図9中の行列Qに対応する位置を設定する。したがって、行列Qは、このステップへの追加の入力として与えられる。ステップ286において、図9の行列中の単位行列IHに対応する位置を1に設定する。
行列SEのための他の選定は、可能であり、特定の適用例と、全体的な符号に要求される要件とに依存する。式1中の行列がどのように選定されようとも、静的エンコーダ210のタスクは様々な方法で達成され得る。たとえば、本開示を読めば当業者に明らかになるように、未知の値C(K),...,C(L−1)を復元するためのプロセスとしてガウス消去法が使用され得る。
復号および永久的非活動化
復号問題は、デコーダ155が、対応する鍵Ia,Ib,...とともにN個の被符号化シンボルB(Ia),B(Ib),...を有することであると述べられ得る。これらの被符号化シンボルのセット全体、またはそれらのサブセットは、デコーダによって受信されていることがあり得るが、他の被符号化シンボルは、他の手段によってデコーダに与えられていることがあり得る。デコーダの目的は、ソースシンボルC(0),...,C(K−1)を復元することである。表示を簡略化するために、受信された被符号化シンボルをD(0),...,D(N−1)によって示す。
復号演算の多くは、行列とそのような行列に対する演算との言語とを使用して、特に、そのような行列をもつ連立方程式を解くことによって簡潔に記述され得る。以下の説明では、方程式は、受信された被符号化シンボルに対応することができ、変数は、受信された被符号化シンボルに基づいて解決されるべきである、ソースシンボル、または中間シンボルとしばしば呼ばれるソースシンボルとソースシンボルから生成された冗長シンボルとの合成セットに対応することができる。付録Aとして与える仕様では、被符号化シンボルは、「符号化シンボル」と呼ばれることがある(また他の変形態が存在する)が、明細書全体および付録を読めば、参考文献がどのように関係するかが明らかなはずである。また、方程式に対する行列および演算および解は、それらの数学演算に対応するコンピュータ命令として実装され得、実際には、コンピュータ、プロセッサ、ハードウェアまたは何らかの電子的要素なしにそのような演算を行うことは実用的でないことを理解されたい。
永久的非活動化は、復号プロセスの第1の段階が開始される前に、永久的非活動化シンボルまたは変数と呼ばれる非活動化すべき変数のセットをデコーダにおいて判断するために使用される。以下で説明する永久的非活動化復号方法が既存の符号に適用されるか、または、符号が、永久的非活動化復号に関連してより一層良好に動作するように特別に設計され得る。永久的非活動化復号方法は、どんな連立一次方程式を解くためにも適用され得、特に、連鎖反応符号、IETF LDPC符号、およびトルネード符号に適用され得る。
永久的非活動化復号は、既知の一次方程式値のセットから未知の変数のセットについて解くときはいつでも信念伝搬復号および/またはOTF非活動化復号と組み合わせて適用され得る一般的な方法であり、一次方程式のセットに基づいて効率的な符号化方法と復号方法とを実装するときは特に有益である。第1の段階では、既知の符号化方法の構造に基づいて、または受信した方程式に基づいて、未知の変数のセットが、永久的非活動化であると宣言され、永久的非活動化変数は、復号プロセスの第2の段階において、(第2の段階の一次方程式が簡約されたとき、同じ簡約が永久的非活動化変数に対して実行されることを除いて)一次方程式から除去され、「解かれた」ものと見なされる。
第2の段階では、信念伝搬復号が、前に説明した信念伝搬復号を使用して永久的非活動化されていない未知の変数に適用されるか、または、OTF非活動化復号方法の第1の段階について説明したものと同様に、OTF非活動化復号が、永久的非活動化されていない未知の変数に適用され、それによって、簡約された被符号化シンボルまたは方程式のセットを生成する。第2の段階から生じた簡約された被符号化シンボルまたは方程式は、非活動化されていない変数またはシンボルへの依存性が除去され、したがって、簡約された被符号化シンボルまたは方程式は非活動化変数またはシンボルのみに依存するという特性を有する。いくつかの実装形態では、元の被符号化シンボルと簡約された被符号化シンボルとの両方が利用可能であり得るように、元の被符号化シンボルまたは方程式も保持され得ることに留意されたい。
第3の段階では、OTF非活動化復号を使用して第2の段階において生成された追加のOTF非活動化変数とともに永久的非活動化変数について、簡約された被符号化シンボルまたは方程式を使用して、たとえば、ガウス消去法、または永久的非活動化変数の間の関係の特殊な構造がもしあればそれを使用して解かれ、一次方程式が、ガウス消去法を使用することによるよりも効率的に解くために使用される。
第4の段階では、非活動化されなかった変数について解くために、元の被符号化シンボルまたは方程式(あるいは再導出された元の被符号化シンボルまたは方程式)とともに、解かれた非活動化変数、すなわち、OTF非活動化変数または永久的非活動化変数のいずれかの値が使用される。
永久的非活動化復号方法の利点のうちの1つは、永久的非活動化以外のOTF非活動化の数wが、概して小さくなるかまたは0になり、また、どの被符号化シンボルが受信されるかとはほとんど無関係になることができるということである。これは、どの被符号化シンボルが受信されるかとは無関係に復号複雑度を一貫して小さくさせ、より信頼できる復号を可能にし、より効率的にスケジュールされ得るより予測可能で少ないメモリアクセスを可能にすることができる。第2の段階には少数のOTF非活動化しかなく、また、第2の段階におけるOTF非活動化は、概して、シンボル演算のパターンをいくぶん予測不可能にさせ得る復号プロセス中でしか判断されないので、復号中にメモリアクセスパターンがより予測可能になり、全体的により予測可能で効率的な復号プロセスが可能になる。
上記の多くの変形態がある。たとえば、段階は、非連続インターリーブ順序で実行され得る。別の例として、非活動化シンボルについて、今度は、複数の追加の段階においてOTF非活動化復号または永久的非活動化復号のいずれかを使用して、第3の段階中に解決され得る。別の例として、永久的非活動化復号は、誤り訂正符号、または消去訂正符号、あるいは連立一次方程式を使用して解決され得る他の適用例のために使用され得る、連立一次方程式および変数に適用され得る。別の例として、これらの方法は、システマティック符号と非システマティック符号の両方に適用され得る。別の例として、これらの方法はまた、符号化プロセス中に、たとえば、非システマティック符号からシステマティック符号を生成するためのShokrollahi IIIにおいて教示されている方法を使用して符号化するときに適用され得る。
場合によっては、永久的非活動化復号方法が特に有効となるように符号化プロセスを設計することが可能である。たとえば、信念伝搬復号は、適用され得るときはいつでも、計算量的に効率的であることが知られているが、単独で使用されると、高信頼性復号を行うことができないことも知られている。信念伝搬復号がOTF非活動化復号内で使用されるとき、信念伝搬ステップは極めて効率的に処理され得るが、信念伝搬ステップ内に点在させられたOTF非活動化ステップは、復号を減速させる可能性があり、そのようなOTF非活動化ステップがより多くあればあるほど、復号プロセスはより遅くなる。
OTF非活動化復号の典型的な実施形態では、N+R個の一次方程式値を使用してK+R個の未知の変数について解くことを試みるとき、OTF非活動化ステップの数は、一般に、N=Kのとき、すなわち、ゼロオーバーヘッドを使用して変数を解くことを試みるときに最大になる。一方、NがKよりも大きくなるにつれて、一般的には、OTF非活動化ステップが場合によってはなくなる程度にNが十分大きくなるときまで、OTF非活動化復号の複雑さは、より少ないOTF非活動化ステップに起因して減少することになり、非活動化復号は、信念伝搬復号と同程度またはほぼ同程度に計算量的に効率的になる。OTF非活動化復号の他の実施形態では、NがKよりもかなり大きいときでも、OTF非活動化の数は大きいままであり得る。
永久的非活動化復号の1つの好適な実施形態では、永久的非活動化変数の数Pと、一次方程式の構造とは、一次方程式のK+R個の値からOTF非活動化復号を使用して永久的非活動化されていないL−P個の変数について解くとき、OTF非活動化復号中にOTF非活動化ステップの数が小さく、場合によっては0になり、したがって、OTF非活動化復号ステップが、信念伝搬とほぼ同程度に計算量的に効率的になるように設計される。
好適な実施形態では、一次方程式の構造は、OTF非活動化復号段階が信念伝搬復号とほぼ同程度に効率的になるように設計される。そのような好適な実施形態では、一次方程式に対する永久的非活動化変数の関係は、OTF非活動化復号段階からのOTF非活動化変数とともに永久的非活動化変数から構成される非活動化変数について解く段階が効率的に実行され得るものになる。さらに、好適な実施形態では、永久的非活動化シンボルの構造は、解かれた非活動化変数から非活動化されていない変数の解を完成する段階が計算量的に効率的であるものになる。
永久的非活動化を用いた連鎖反応符号の復号
図12に、N個の受信された被符号化シンボルまたは式と、R個の既知の静的シンボルまたは式とを使用して、デコーダによって解かれるべき変数のセットの行列表現を示す。デコーダのタスクは、この図に与えられている連立一次方程式を解くことである。一般に、シンボル/式は、デコーダによってアクセス可能なメモリまたはストレージに記憶された値によって表され、以下で説明する行列演算は、デコーダによって実行可能な命令によって実装される。
図12に示す行列は、L=K+R個の列と、N+R個の行とを備える。LT部分行列は、N個の被符号化シンボルと、LT符号化プロセス251によって判断されたL個の中間シンボルのうちのL−P個のLTシンボルとの間の関係を表す。PI部分行列は、N個の被符号化シンボルと、PI符号化プロセス241によって判断されたL個の中間シンボルのうちのP個のPIシンボルとの間の関係を表す。式1の行列SEは、静的エンコーダ210によって判断された中間シンボルの間の関係を表す。デコーダは、受信された被符号化シンボルの鍵に基づいて、および符号構成から、これらの関係を判断することができる。
図12の連立一次方程式は、図13に示す形式に上記の行列を変換するために、Shokrollahi IIにおいて教示されているOTF非活動化方法を使用して、上記の行列の行/列置換によって解かれる。図13は、下三角行列LO310と、OTF非活動化に対応する(OTFIと呼ばれる)行列320を備えるいくつかの列と、永久的非活動中間シンボルのセットまたはそれのサブセットに対応する行列330PIと、行列LOをもたらす三角行列化プロセスにおいて使用されない被符号化シンボルまたは静的シンボルに対応する行列340ELとを備える。
図14は、図12中の行列をもたらすプロセスを実行し得る要素について説明しているブロック図である。図14は、LT行列生成器347と、PI行列生成器349と、静的行列生成器350とを備える。鍵Ia,Ib,...を受信すると、LT行列生成器は図12中の行列LTを作成し、PI行列生成器349は図12の行列PIを作成する。これらの2つの行列の連結が静的行列生成器350に転送され、静的行列生成器350は、追加のヒントとして静的鍵S_0,S_1,...を取り得る。静的行列生成器のタスクは行列SEの作成であり、静的行列生成器の出力は、図12に与えられている完全行列である。
LT行列生成器347の演算とPI行列生成器349の演算とは、図15中のLTエンコーダ250の演算とPIエンコーダ240の演算とにそれぞれ密結合される。静的行列生成器350の演算は、静的符号化のために使用される式1の行列SEの再作成である。
次に、LT行列生成器347と、PI行列生成器349と、静的行列生成器とについて、それらが実行し得る演算に関してさらに詳細に説明する。
図16は、LT行列生成器347によって採用される方法の一実施形態500を示すフローチャートである。ステップ505において、LT行列生成器347は、フォーマットN×(L−P)の行列LTをすべて0に初期化する。次に、ステップ510において、鍵Ia,Ib,...を使用して、重みWL(0),...,WL(N−1)とリストAL(0),...,AL(N−1)とをそれぞれ生成する。リストAL(i)の各々は、範囲0,...,L−P−1内のWL(i)個の整数(j(0),...,j(WL(i)−1))を備える。ステップ515において、これらの整数を使用して、エントリLT(i,j(0)),...,LT(i,j(WL(i)−1))を1に設定する。上記で説明したように、行列LTは、受信シンボル(D(0),...,D(N−1))に関して未知数(C(0),...,C(L−1))の連立方程式に寄与する。
当業者なら諒解され得るように、ここで説明するLT行列生成器の演算は、図6のLT符号化プロセス251の演算と同様である。
図17は、PI行列生成器349によって採用される方法の一実施形態600を示すフローチャートである。ステップ610において、PI行列生成器349は、フォーマットN×Pの行列PIをすべて0に初期化する。次に、ステップ615において、鍵Ia,Ib,...を使用して、重みWP(0),...,WP(N−1)とリストALP(0),...,ALP(N−1)とをそれぞれ生成する。リストALP(i)の各々は、範囲0,...,P−1内のWP(i)個の整数(j(0),...,j(WP(i)−1))を備える。ステップ620において、これらの整数を使用して、エントリPI(i,j(0)),...,PI(i,j(WP(i)−1))を1に設定する。PI行列生成器の演算は、図5中のPI符号化プロセス241の演算と同様である。
上記で説明したように、行列LTおよびPIは、受信シンボル(D(0),...,D(N−1))に関して未知数(C(0),...,C(L−1))の連立方程式に寄与する。その理由は、LTエンコーダが重みWL(i)と関連リストAL(i)=(j(0),...,(WL(i)−1))とを選定し、PIエンコーダが重みWP(i)と関連リストALP(i)=(t(0),...,t(WP(i)−1))とを選定すると、対応する被符号化シンボルD(i)が、以下で示すように得られるからである。これらの式は、0とN−1との間のiのすべての値について累算されると、式2に表す所望の連立方程式を生じる。
Figure 2013502849
重みWLは、図7に与えられているプロシージャと同様のプロシージャを使用して計算され得る。当業者ならば、本開示を検討すれば、どのようにこれを、各々が異なる度数分布で動作している3つ以上のエンコーダがある場合に拡張すべきかがわかるであろう。
行列生成器のわずかに異なる流れ図が図18に与えられている。図18は、LT行列生成器710と、静的行列生成器715と、PI行列生成器720とを備える。鍵Ia,Ib,...を受信すると、LT行列生成器710は、図15に示す行列LTを作成し、静的行列生成器715は、図15に示す行列SEを作成し、さらなる入力として追加の静的鍵S_0,S_1,...を取り得る。これらの2つの行列の連結がPI行列生成器720に転送され、PI行列生成器720は行列PIを作成する。LT行列生成器710の演算は、図16において詳述したLT行列生成器347の演算とまったく同じであり得る。静的行列生成器715の演算は、図14中の静的行列生成器350の演算とは異なり得る。具体的に、図19に、そのような演算の例示的な一実施形態を詳述する。
ステップ725において、行列SEを0に初期化する。ステップ730において、LDPCシンボルの数に等しい入力変数Sをプロセスに与え、ペア(i,j)について、i=j mod S、i=(1+floor(j/S))+j mod S、またはi=2*(1+floor(j/S))+j mod Sであるとき、SE(i,j)の値を1に設定する。ステップ735において、図9中の単位行列ISに対応する位置を1に設定する。ステップ740において、行列Tに対応する位置を、このステップへの追加の入力として与える。この行列は、複数の有限フィールドにおけるエントリを有し得、異なる適用例に対して異なることができる。それは、符号に要求される要件に基づいて選定され得る。
図20は、PI行列生成器720によって採用される方法の一実施形態を示す簡略流れ図である。ステップ745において、PI行列生成器349は、フォーマット(N+R)×Pの行列PIをすべて0に初期化する。次に、ステップ750において、鍵I_a,I_b,...を使用して、重みWP(0),...,WP(N−1)とリストALP(0),...,ALP(N−1)とをそれぞれ生成する。リストALP(i)の各々は、範囲0,...,P−1内のWP(i)個の整数(j(0),...,j(WP(i)−1))を備える。ステップ755において、これらの整数を使用して、エントリPI(i,j(0)),...,PI(i,j(WP(i)−1))を1に設定する。図20中のPI行列生成器の演算は、この行列生成器が、もうR個の行をもつ行列を作成し、図15中の行列と密結合されることを除いて、図17のPI行列生成器の演算と同様である。
図12または図15中の連立方程式は、一般に疎であり、すなわち、関与する行列中の非ゼロエントリの数は、一般に、可能なエントリの半分よりもはるかに小さい。そのような場合、行列は直接記憶される必要がないことがあるが、これらの行列のあらゆる個々のエントリを再作成するのを助ける指示が記憶され得る。たとえば、行列LTまたはPIの行の各々について、プロセスは、図5〜図6において計算された重みとネイバーのリストとを記憶することを希望し得る。他の方法も可能であり、それらの方法の多くは、本明細書において、または参照により本明細書に組み込まれる開示において説明されている。
行列生成器が、図12または図15によって与えられた形式で連立方程式を作成した後、デコーダのタスクは、C(0),...,C(L−1)の未知の値についてこの連立方程式を解くことである。この目的を達成するために、限定はしないが、ガウス消去法、あるいはLuby I、Luby II、Shokrollahi I、II、III、IV、またはVに記載されている方法のうちのいずれかを含む、いくつかの異なる方法が適用され得る。
次に、図12または図15における連立方程式を解くための可能な方法について、図21〜図26を参照しながら略述する。本発明の実施形態のうちのいくつかによるデコーダの演算のフローチャートが図21に与えられている。ステップ1305において、前に説明した方法のうちのいくつかを使用して復号行列を作成する。ステップ1310において、行置換と列置換とを使用してこの行列を再構成する。上記で説明したように、行置換と列置換とを適用することによって図12中の行列または図15中の行列のいずれかからそのような行列を取得し得る。これを達成するために、Shokrollahi IIのオンザフライ非活動化復号と組み合わせた連鎖反応復号が使用され得る。したがって、図22中の式が満たされるように、セット{0,1,...,L−1}に作用する置換πと、セット{0,1,...,N+R−1}に作用する置換τとがある。
本明細書では、wは、図13中の行列LOの行と列との数、すなわち、永久的非活動化もOTF非活動化もされていない中間シンボルの数を示す。ステップ1315において、図13の行列LOを使用して、対角線を下回る行列LOのすべてのエントリをゼロアウトする。そうする際に、図23中の式の右辺にあるシンボルのセットは、連立方程式の新しい右辺がD(τ(i))の一部のXORによって取得されるように、同じ演算を尊重する必要がある。
図24に示すように、この演算後に、行列810は単位行列になり、840中の行列ELはそのままになり、復号プロセスが、行列LOを単位行列に簡約するのに必要であった演算に従ってこれらの行列の行を一緒にXORする必要があるので、行列OTFIおよびPIは、820中のOTFI−2および830中のPI−2に変わる。
復号プロセスの次のステップはステップ1320であり得、LOを下回る残りの行列の残部を除去して、図25に示す形式の行列を得る。このステップ後に、E(0),...,E(N+R−1)と、行列EL_2の行の数uと、EL_2の列の数gとによって元のシンボルD(0),...,D(N_R−1)の置換され簡約された値を示すことにより、図25中の行列の構造は、式3に従って値C(π(L−g)),...,C(π(L−1))についてu個のより小さい連立一次方程式を生じる。
Figure 2013502849
図21で説明する復号プロセスなどの復号プロセスは、ステップ1330においてこの連立方程式を様々な手段で解き得、たとえば、ガウス消去法プロセス、または連鎖反応コーディングとガウス消去法との組合せを使用することによって、あるいは非活動化復号の別の適用によって、あるいは他の手段によって解き得る。ガウス消去法は、たとえば、Shokrollahi IVにおいて教示されているように、行列ELが複数のフィールドに属する要素を有する場合、GF(256)などのより大きいフィールドにおける計算からGF(2)における計算を分離するように変更され得る。
式3の連立方程式が、デコーダによって採用されたプロセスを使用して解けない場合、ステップ1335において、デコーダは対策を施し得る。そのような対策は、エラーのフラグを付け、プロセスを停止することを含み得るか、あるいはより多くの被符号化シンボルを要求することを含み得るか、あるいはプロセスを停止し、これまで復元することが可能であった中間シンボルまたはソースシンボルのリストを、デコーダを使用しているアプリケーションに戻し得る。連立方程式が解ける場合、デコーダは、非活動化中間シンボルの値C(π(L−g)),...,C(π(L−1))を復元し得る。いくつかの変形態では、ステップ1330において、非活動化中間シンボルの他にいくつかの他の中間シンボルが復元されることもあり得る。
これらのシンボルの値が復元されると、デコーダは、後退代入に関与するステップ1340に進む。値C(π(L−g)),...,C(π(L−1))を復元すると、図26に与えられているタイプの連立方程式を生じる。この連立方程式は、一般的な連立方程式よりも解くのが容易である。たとえば、デコーダは、そのように行うために図23に示すプロセスを使用し得る。図23の右辺にある第1のベクトルを取得するプロセスは、既知のシンボルの値を連立方程式に代入するプロセスであるので、後退代入と呼ばれることがある。当業者なら本開示を読めばわかるように、図23と図26とに与えられている連立方程式は数学的に等価である。
図23において、デコーダは、右辺上の行列のエントリが、行列乗算のルールを使用して、すでに解決されたベクトルC(π(L−g)),...,C(π(L−1))のエントリで乗算され、得られたエントリをE(0),...,E(L−g−1)でXORするプロセスを実装することによって、未知の値C(π(0)),...,C(π(L−g−1))を取得する。得られたエントリをE(0),...,E(L−g−1)でXORし、このようにして値C(π(0)),...,C(π(L−g−1))を復元するプロセスは、図21中のデコーダのステップ1345を備える。
いくつかの適用例では有用であるが、図23の右辺の行列は一般に疎でなく、したがって、要素C(π(j))の1つを得るためには、gに比例する数のXORが実行されなければならないので、この方法は、いくつかの好適な実施形態において大きい計算オーバーヘッドをもたらし得る。いくつかの実施形態では、この数は、たとえば、永久的非活動化の数Pがそもそも大きくなるように選定されており、gが少なくともPと同程度の大きさであり得るので、大きくなり得る。これは、永久的非活動化シンボルの数Pの値に厳しい制限を与える可能性があり、より小さい値のPが使用された場合、これはOTF非活動化中間シンボルの数の増加をもたらし得る。
図27は、図21で説明したプロセスよりも計算量的に効率的であり得る修正された復号プロセスについて説明するものである。このプロセスのステップ1405から1435は、図14中のプロセスの対応するステップと同じであり得る。随意に、このプロセスは、将来の使用のために、図12または図15中の元の行列あるいはこの行列の関係する部分、ならびに元のシンボルD(0),...,D(N+R−1)のコピーを追加のメモリロケーション中に保持し得る。これは、このプロセスの動作には不要であるが、アプリケーションがこれらのコピーを保持するための十分なメモリリソースを有する場合、それはさらなる速度の利点をもたらし得る。代替的に、プロセスは、元のシンボルD(0),...,D(N+R−1)のコピーのみを保持し、行列のコピーを保持せず、プロセスが必要とするときにその行列を再作成し得る。ステップ1440は、図22中の元の連立方程式、または図28に与えられているこの連立方程式の最上部のみを取り戻すために、行列の記憶されたコピーを使用するかまたはステップ1415のプロセスを元に戻す。この時点で、図29に与えられている行列1510は疎であり、値C(π(w)),...,C(π(L−1))は知られており、ただし、w=L−gである。
よく知られているように、図29中の式の右辺は、少数のXORのシンボル、すなわち、行列OTFI中の非ゼロエントリの数+行列PI中の非ゼロエントリの数に等しい数のXORのシンボルに関与する、計算量的に効率的なプロセスを介して計算され得る。プロセスのこのステップは、図27の1445によって示されている。このステップが完了した後、図29中の式の右辺は計算されており、未知数が値C(π(0)),...,C(π(w−1))である連立方程式を解くことになる。右辺の下三角LOが疎であるので、すなわち、この連立方程式を解くためのシンボルのXORの数が、行列LO中の非ゼロエントリの数に 等しく、この数は、一般に、可能な非ゼロエントリの最大数w*wよりもはるかに小さいので、この連立方程式は、ステップ1450において連鎖反応復号を使用して解かれ得る。
永続的非活動化の数の選定
永久的非活動化の数の選定は、パフォーマンス全体に影響を及ぼすことができ、したがって重要であり得る。一方では、この数は、できるだけ大きくなるように選定される必要がある。この数が大きい場合、OTF非活動化の数は極めて小さい数に低減され、時々0にさえ低減され得る。これは、図15中のLT行列とSE行列(または図23中のそれらの対応する変形態)の組合せが、効果的にも、大きいオーバーヘッドをもつ連鎖反応符号の復号行列であるからである。このことが、OTF非活動化の数を極めて小さくさせる。OTF非活動化は、いくつかの実施形態では管理することがより困難になり得、したがって、OTF非活動化の数を低減することは、速度および/またはメモリに関して利点をもたらし得る。
一方、永久的非活動化の数を増加させることは、実行時間に悪影響を有し得る。たとえば、図21の復号プロセス中のステップ1330と、図27のプロセス中の対応するステップ1430とは、少なくともP個の行および列を有する連立方程式を解くことを必要とする。これを行う1つの方法は、図25中の行列EL−2の可逆部分行列を識別し、その行列を反転させ、反転した行列を使用して中間シンボルの値C(π(L−g−1)),...,C(π(L−1))を得ることであろう。行列EL−2は実施形態の多くにおいて疎であり得ないので、中間シンボルの値を得ることは、約g×gのシンボルのXORを受け得る。gは少なくともPであるので、シンボルのXORの数は少なくともP×Pになり得、したがって、シンボルのXORの全体的な数がKにおいて線形に保持されるべき場合、良い選定は、数PをKの平方根に比例するように設定することである。付録Aの特定の実施形態は、Pを2.5*sqrt(K)程度となるように選定し、この観測と歩調を合わせる。Pのこの選定を用いた場合、一般に、OTF非活動化の数は、約Pから0に極めて近くなるかまたは0に等しくなってかなり小さくなるので、これはPの良い選定である。
注目する別の量は、被符号化シンボル、または静的シンボルのために存在する非活動化中間シンボルネイバーの平均数Iである。図27中の復号プロセスのステップ1445は、このステップを達成するために、復元されていない中間シンボルごとに平均してI個ほどのシンボルのXORを必要とし得る。Iが大きい場合、XORのこの数は、復号または符号化プロセスを実行しているプロセスのメモリおよび計算リソースにとって過大であり得る。一方、Iが非常に小さい場合、図25の行列EL−2は最大階数を有していないことがあり、復号可能性を危うくし得る。
より詳細な分析により、永久的非活動化の重要な態様は、図15の行列PIに、列が互いに線形独立であるにように、すなわち、行列ができる限り最大階数であるように作用させることであることが明らかになっている。PIがランダムバイナリ行列である場合、可能な限界までの最大階数が達成され得ることが当業者によく知られている。一方、PIは、平均すると、Kの平方根に反比例する1の部分を各列中に有し得、依然として純ランダム行列の階数特性と同じ階数特性を満たし得る。このために、付録Aにおける特定の実施形態は、Iが2と3との間の数になるように選定し、したがって、Kの平方根に比例するPを選定する場合、これは、PIの各列中の1の数が、平均するとKの平方根に反比例することを意味する。
本開示を読めば当業者なら認識されるように、これらの方法の多くの変形態がある。たとえば、XORは、他の演算子、たとえば、より大きい有限フィールド上の線形演算子と置き換えられ得、または、演算子は、異なる演算子、たとえば、いくつかの演算のためのより大きい有限フィールド上のいくつかの線形演算子と、他の演算のためのより小さいより大きい有限フィールド上の他の線形演算子との混合であり得る。
付録Aに関する特定の例
上記で詳述したように、永久的非活動化(すなわち、どの被符号化シンボルが、連鎖反応復号のシーケンスを判断することの一部となる行列操作の部分にならないかに関する所定の決定)がなければ、OTF非活動化の数は、極めてランダムであり得、メモリ消費量に関して潜在的な問題を生じ得る。ソースシンボルの数が極めて大きく、オーバーヘッドが極めて小さい場合、誤り確率は、容認できないほど1に近接し得る。
小さいオーバーヘッドに対する高い誤り確率のために、ソースシンボルの数が大きいとき、良好なシステマティック情報を発見することがますます困難になり得る。本明細書では、システマティック情報は、Shokrollahi IIIの意味においてシステマティック符号を構築することが可能になるために、エンコーダとデコーダとに提供するために必要とされる情報を指す。その上、システマティック情報が取得されたときはいつでも、「平均」では符号はゼロオーバーヘッドにおいて失敗するはずであるので、符号の挙動が、平均的な挙動とは極めてかけ離れていることが予想される。
永久的非活動化を用いた連鎖反応符号の構築のためのパラメータの一部は、図4のLTエンコーダ250のために使用される度数分布と、PIエンコーダ240のパラメータと、永久的非活動化シンボルの数の判断と、冗長静的シンボルの数およびそれらの構造の判断とを含み得、特定の方法の乱数が、発生され、図1中のエンコーダ115とデコーダ155との間で共有され得る。
RQ符号を使用するエンコーダおよびデコーダ
本明細書で説明する方法を使用する、以下「RQ符号」と呼ぶ符号の好適な実施形態が、付録Aのセクション5に詳細に規定されている。付録Aの残りは、ブロードキャストまたはマルチキャストネットワークを介したオブジェクトの信頼できる配信にRQ符号を適用する1つの方法について説明している。
RQ符号は、システマティック符号を実装するために以上および以下で説明する方法を使用し、システマティック符号は、すべてのソースシンボルが、生成され得る被符号化シンボルの中にあることを意味し、したがって、被符号化シンボルは、元のソースシンボルと、エンコーダによって生成されたリペアシンボルとの組合せであると見なされ得る。
以上の符号のいくつかは良好な特性を有するが、それらの実際的適用を高めるいくつかの改善がある。重要な2つの潜在的な改善は、より急なオーバーヘッド障害曲線と、ソースブロック当たりのより大きい数のサポートされるソースシンボルとである。オーバーヘッドは、受信された被符号化シンボルの数と、ソースブロック中のソースシンボルの数との間の差であり、たとえば、オーバーヘッド2は、K個のソースシンボルでソースブロックを復号するためにK+2個の被符号化シンボルが受信されたことを意味する。所与のオーバーヘッドにおける失敗確率は、受信された被符号化シンボルの数がそのオーバーヘッドに対応するとき、デコーダがソースブロックを完全に復元することに失敗する確率である。オーバーヘッド障害曲線は、オーバーヘッド0において開始するオーバーヘッドの増加に応じて、失敗確率がどのように下がるかのプロットである。オーバーヘッド障害曲線は、オーバーヘッドに応じてデコーダの失敗確率が高速または急に低下する場合により優れている。
ランダムバイナリコードは、作業不能な計算複雑さとともに、各追加のオーバーヘッドシンボルについて失敗確率が本質的に係数2だけ下がるオーバーヘッド失敗確率曲線を有するが、本説明の主題は、オーバーヘッド失敗確率曲線に限定され、計算複雑さには限定されない。いくつかのアプリケーションでは、これは十分なオーバーヘッド障害曲線であるが、いくつかの他のアプリケーションでは、より急なオーバーヘッド障害曲線が好適である。たとえば、ストリーミングアプリケーションでは、ソースブロック中のソースシンボルの数の範囲は広くなり得、たとえば、K=40、K=200、K=1000、K=10000になる。良好なストリーミングエクスペリエンスを提供するために、失敗確率は低いこと、たとえば、10-5または10-6の失敗確率が必要とされ得る。帯域幅はしばしばストリーミングアプリケーションのために貴重であるので、ソースシンボルの部分として送られるリペアシンボルの割合は最小限に抑えられなければならない。たとえば、K=200をもつソースブロックを使用するとき、ストリームが送られるネットワークが10%までのパケット損失に対して保護されなければならず、失敗確率が多くて10-6であることが必要とされると仮定する。ランダムバイナリコードは、10-6の失敗確率を達成するためには少なくとも20のオーバーヘッドを必要とし、すなわち、受信機は、この失敗確率で復号するために220個の被符号化シンボルを必要とする。ceil(220/(1−0.1))=245であるので、要件を満たすためにソースブロックごとに合計245個の被符号化シンボルが送られる必要がある。したがって、リペアシンボルは、ストリームの帯域幅要件に追加の22.5%を追加する。
本明細書と付録Aのセクション5とにおいて説明されているRQ符号は、K′のすべてのサポートされる値について値がK=K′である場合、ならびにKの最後のサポートされる値を除くすべてについて値がK=1およびK=K′+1である場合、それぞれ、オーバーヘッド0、1、および2に対して10-2、10-4、および10-6よりも小さい失敗確率を達成する。テストは、様々な損失確率、たとえば、10%、20%、50%、70%、90%および95%の損失確率に対して行われている。
RQ符号を使用する上記の例では、2のオーバーヘッドは10-6の失敗確率を達成するのに十分であり、したがって、ceil(202/(1−0.1))=225であるので、要件を満たすためにソースブロックごとに合計225個の被符号化シンボルのみが送られる必要がある。この場合、リペアシンボルは、ストリームの帯域幅要件に追加の12.5%を追加し、すなわち、ランダムバイナリコードによって必要とされる帯域幅オーバーヘッドよりも10%少ない。したがって、RQ符号改善されたオーバーヘッド障害曲線は、いくつかの極めて肯定的な実際的結果を有する。
ソースブロックごとに多数のソースシンボルをサポートすることが望ましい適用例がある。たとえば、モバイルファイルブロードキャスト適用例では、ネットワーク効率の観点からは、ファイルを単一のソースブロックとして符号化すること、または、より一般的には、ファイルを、実際的である程度に少数のソースブロックに区分することが有利である。たとえば、50000000バイトのファイルをブロードキャストすべきであり、被符号化シンボルを搬送するために各パケット内で利用可能なサイズが1000バイトであると仮定する。ファイルを単一のソースブロックとして符号化することは、K=50000の値がサポートされることを必要とする。(実質的により少ないメモリを使用した復号を可能にする前述のサブブロック化技法があることに留意されたい。)
符号のためにサポートされるソースシンボルの数が制限され得る数個の理由がある。1つの典型的な理由は、リードソロモン符号の場合など、Kが増加するにつれて計算複雑さが法外になることであるが、これは、連鎖反応符号などの符号については当てはらない。別の理由は、Kが増加するにつれて、ゼロオーバーヘッドにおける失敗確率がほぼ1にまで増加して、良好なシステマティック符号構築を生じるシステマティックインデックスを発見することがより困難になることであり得る。ゼロオーバーヘッドにおける失敗確率は、これは、本質的に、システマティックインデックスがランダムに選定されたとき、得られたシステマティック符号構築が、最初のK個の被符号化シンボルがK個のソースシンボルを復号することが可能である特性を有する確率であるので、良好な符号構築を導出することの困難さを規定することができる。
RQ符号設計のオーバーヘッド障害曲線が、Kのすべての値について非常に急であるので、良好なシステマティックインデックスを発見し、したがって、Kのはるかにより大きい値をサポートすることは容易に可能である。付録Aのセクション5に記載されているRQ符号は、56403までのKの値をサポートし、またソースブロックごとに16777216までの被符号化シンボルの総数をサポートする。RQ符号のサポートされる値に対するこれらの制限は、知覚されたアプリケーション要件に基づく実際的考慮により設定されたものであり、RQ符号設計の制限によるものではない。付録Aに示す実施形態以外の他の実施形態は、異なる値を有し得る。
RQ符号は、サポートされる様々なソースブロックサイズの数を次のように制限する。被符号化または復号されるべきK個のソースシンボルをもつソースブロックを仮定すれば、K′値は、付録Aのセクション5.6に示すテーブルに基づいて選択される。テーブル中の第1の列は、K′の可能な値を記載している。選択されたK′の値は、K≦K′であるような可能性のうちの最小値である。K個のソースシンボルC′(0),...,C′(K−1)は、0に設定された値をもつK′−K個のシンボルC′(K),...,C′(K′−1)でパディングされて、K′個のソースシンボルC′(0),...,C′(K′−1)を備えるソースブロックを生成し、次いで、このパディングされたソースブロックに対して符号化および復号が実行される。
上記の手法は、サポートされる必要があるシステマティックインデックスの数を低減する、すなわち、数万の代わりに数百のみに低減するという利益を有する。Kのオーバーヘッド失敗確率は、選択されたK′のオーバーヘッド障害曲線と同じであるので、Kのオーバーヘッド失敗確率に関する欠点はない。Kの値が与えられれば、デコーダは、K′の値を計算し、C′(K),...,C′(K′−1)の値を0に設定することができ、したがって、デコーダは、ソースブロックのK′個のソースシンボルのうちの残りのK個を復号しなければならないだけである。唯一の潜在的な欠点は、わずかにより多くのソースシンボルを符号化および復号するために、わずかにより多くのメモリまたは計算リソースが必要とされ得ることである。しかしながら、K′の連続する値の間の間隔は、K′がより大きい値である場合、ほぼ1%であり、したがって、この潜在的な欠点は無視できる。
KからK′へのソースブロックのパディングのために、RQ符号内の被符号化シンボルC′(0),C′(1),...の識別子は内部シンボル識別子(Internal Symbol Identifier)(ISIと略す)と呼ばれ、ただし、C′(0),...,C′(K′−1)はソースシンボルでありC′(K′),C′(K′+1),...はリペアシンボルである。
エンコーダとデコーダとを採用する外部アプリケーションは、元のソースシンボルC′(0),...,C′(K−1)を識別するために0からK−1にわたり、リペアシンボルC′(K′),C′(K′+1),...を識別するためにK,K+1,...と続く、符号化シンボル識別子(ESIと略す)とも呼ばれる、被符号化シンボル識別子を使用する。したがって、RQ符号内のISI Xで識別されたリペアシンボルC′(X)は、ESI X−(K′−K)を用いて外部に識別される。これについては、付録Aのセクション5.3.1においてより詳細に説明されている。
RQ符号の符号化と復号とは、2つのタイプの関係、すなわち、中間シンボル間の制約関係、および中間シンボルと被符号化シンボルとの間のLT−PI関係によって定義される。制約関係は、図12または図15に示す例の場合のように、SE行列によって定義された中間シンボル間の関係に対応する。LT−PI関係は、図12または図15に示す例の場合のように、LT行列とPI行列とによって定義された中間シンボルと被符号化シンボルとの間の関係に対応する。
符号化は、(1)ソースシンボル値と、(2)ソースシンボルと中間シンボルとの間のLT−PI関係と、(3)中間シンボル間の制約関係とに基づいて中間シンボル値を判断することによって進む。リペアシンボルの値は、中間シンボルとリペアシンボルとの間のLT−PI関係に基づいて中間シンボルから生成され得る。
同様に、復号は、(1)受信された被符号化シンボル値と、(2)受信された被符号化シンボルと中間シンボルとの間のLT−PI関係と、(3)中間シンボル間の制約関係とに基づいて中間シンボル値を判断することによって進む。消失したソースシンボルの値は、中間シンボルと消失したソースシンボルとの間のLT−PI関係に基づいて中間シンボルから生成され得る。したがって、符号化および復号は、本質的に対称的なプロシージャである。
例示的なハードウェア構成要素
図30〜図31に、上記で説明した方法を実装するために使用され得るハードウェアのブロック図を示す。各要素は、汎用プロセッサまたはカスタム目的プロセッサ(custom-purpose processor)またはその組合せによって実行されるハードウェア、プログラムコードまたは命令とすることができる。
図30に、プログラムストア1002に記憶され、プロセッサ1004によって実行されるハードウェアモジュール、ソフトウェアモジュール、またはプログラムコードの部分として、場合によっては、図に示すように分離されていないコードの集合的なユニットとして実装され得る例示的な符号化システム1000を示す。符号化システム1000は、ソースシンボルとパラメータ情報を搬送する入力信号を受信し、その情報を搬送する信号を出力する。
入力インターフェース1006は、ソースシンボルバッファ1008への着信ソースシンボルを記憶する。ソース中間シンボル生成器1010は、ソースシンボルから中間シンボルを生成する。これは、いくつかの実施形態におけるパススルー、および(「システマティック」実施形態などの)他の実施形態におけるデコーダモジュールとすることができる。
冗長シンボル生成器1012は、ソースシンボルから冗長シンボルを生成する。これは連鎖反応コーダ、LDPCコーダ、HDPCコーダ、または同様のものとして実装され得る。非活動化器(inactivator)1014は、場合によっては、ソースシンボル、中間シンボルおよび/または冗長シンボルを受信し、PIバッファ1018にそれらの一部である永久的非活動シンボルを記憶し、その他を出力エンコーダ1016に与える。このプロセスは、物理的ではなく、単に論理的に実装され得る。
XOR演算子などの演算子1020は、出力エンコーダ1016からの1つまたは複数の被符号化シンボル(いくつかの実施形態では、1つ)に対して演算し、PIバッファ1018からのPIシンボルのうちの1つまたは複数(いくつかの実施形態では、1つ)に対して演算し、演算の結果は、システム1000から信号を出力する送信インターフェース1030に与えられる。
図31に、プログラムストア1102に記憶され、プロセッサ1104によって実行されるハードウェアモジュール、ソフトウェアモジュール、またはプログラムコードの部分として、場合によっては、図に示すように分離されていないコードの集合的なユニットとして実装され得る例示的な復号システム1100を示す。一部のプロセスは、物理的ではなく、単に論理的に実装され得る。
復号システム1100は、入力信号および場合によっては他の情報を取り入れ、可能な場合、ソースデータを出力する。入力信号は、バッファ1108に受信シンボルを記憶する受信インターフェース1106に与えられる。受信シンボルのESIは行列生成器1110に与えられ、行列生成器1110は、受信された特定のシンボルに応じて、本明細書で説明する行列を生成し、結果を行列メモリ1112に記憶する。
スケジューラ1114は、行列メモリ1112から行列の細部を読み取ることができ、スケジュールメモリ1016に記憶されるスケジュールを生成する。スケジューラ1114はまた、完了したときに、完了信号(done signal)を生成し、PI行列をPI解決器(solver)1118に搬送する。PI解決器1118は、解決されたPIシンボル値を解決器1120に与え、解決器1120はまたスケジュールを使用して、受信シンボルとスケジュールとPIシンボルとから中間シンボルを復号する。
中間シンボルは、エンコーダまたはパススルーとすることができる、中間ソースシンボル生成器1122に与えられる。中間ソースシンボル生成器1122の出力は、ソースデータ、またはどんなソースデータが出力のために利用可能であるかを出力する出力インターフェース1124に与えられる。
他の考慮事項
いくつかの状況では、復号可能性の向上が必要であり得る。本明細書の他で与えられる例では、被符号化シンボルはLTネイバーとPIネイバーの両方を有したが、LDPCシンボルは、LTネイバー、またはHDPCシンボルの中でないPIネイバーを有するのみだった。いくつかの事例では、LDPCシンボルが、HDPCシンボルを含むPIネイバーをも有する場合、復号可能性は改善される。PIシンボルのすべてのうちのネイバーがHDPCシンボルを含む場合、LDPCシンボルに値する復号は、被符号化シンボルの復号とより類似していることがある。本明細書の他で説明するように、両方の利点が存在し得るように、(符号化および復号するのが容易であり得る)LTシンボルに依存し、PIシンボルにも依存するシンボルは、(高い信頼性復号を行うことができる)HDPCシンボルを含む。
一例では、各LDPCシンボルは2つのPIネイバーを有し、すなわち、LDPCシンボルの値は2つのPIシンボルの値に依存する。
また、いくつかの状況では、重複被符号化シンボルの生成を低減して復号可能性が改善され得、2つの被符号化シンボルは、まったく同じ全ネイバーセットを有する場合、重複であり、被符号化シンボルのための全ネイバーセットはLTネイバーセットとPIネイバーセットとから構成される。同じ全ネイバーセットをもつ重複被符号化シンボルは、それらが生成された中間ソースブロックに関する、まったく同じ情報を搬送し、したがって、2つ以上の重複被符号化シンボルを受信したことからの復号には、重複被符号化シンボルのうちの1つを受信したことからによるよりも良い見込みがなく、すなわち、2つ以上の重複シンボルの受信は、受信オーバーヘッドを増し、重複のうちの被符号化シンボルの1つのみが復号のために有用である。
好ましい特性は、各受信された被符号化シンボルが他の受信された被符号化シンボルの重複でないということであり、これは、各受信された被符号化シンボルが復号のために有用であり得ることを意味することに起因する。したがって、そのような重複の数を低減するか、または重複の発生確率を低減することが好ましいことがある。
1つの手法は、各被符号化シンボルが有することができるLTネイバーの数を限定することである。たとえば、W個の可能なネイバーがある場合、ネイバーの最大数はW−2に限定され得る。これは、場合によっては、すべてのW個の可能なネイバーを備える近傍セットが可能ではないので、全近傍セットが重複されるという見込みを低減する。制約がDeg[v]=min(d,W−2)である場合、度数W−2のW*(W−1)/2個の異なる近傍セットがある。したがって、重複の全ネイバーセットが被符号化シンボルのために生成される可能性がより低くなり得る。Wg=2以外のあるWgについてのmin(d,W−Wg)など、他の制約、または何らかの他の制約が代わりに使用され得る。
単独でまたは上記の重複低減技法とともに使用され得る別の技法は、被符号化シンボルのための重複PIネイバーがある可能性がより低く、したがって、重複の全ネイバーセットが被符号化シンボルのために生成される可能性がより低くなるように、各被符号化シンボルについて2つ以上のPIネイバーを選定することである。LTネイバーが生成されるのと同様の方法で、たとえば、付録A、セクション5.3.5.4に示すように、以下の符号の断片に従って第1に(d1,a1,b1)を生成することによって、PIネイバーは生成され得る。
Figure 2013502849
この例では、PIネイバーの数d1に対して定義される非自明な(non-trivial)ランダム度数分布があり、その分布は、LTネイバーの選定された数dに依存し、LTネイバーの数がより小さいとき、PIネイバーの数はより大きくなる可能性があることに留意されたい。これは、被符号化シンボルの全度数が、重複被符号化シンボルが生成され、したがって受信される見込みを低減するようになる特性を与える。
付録A、セクション5.3.5.3に示す(d1,a1,b1)、および以下の符号の断片によって定義されるネイバーを使用して、被符号化シンボル値は生成され得る。
Figure 2013502849
これらの復号可能性特徴をサポートするために、または別に復号可能性を実現するために、付録A中のセクション5.6の表2に示すものなど、K′の値についての異なるシステマティックインデックスJ(K′)が使用され得る。
システマティックインデックスJ(K′)を生成するために送信および/または受信システムにおいて実行可能なプロセスの例は、次のように示される。可能なK′のリスト中の各K′について、一般に、適切にプログラムされた回路またはプロセッサによって実行され得る1つのプロセスは、いくつかのインデックスを適合性について検査することである。たとえば、J=1...1000[または何らかの他の範囲]の間、回路/プロセッサは、以下の基準が可能なシステマティックインデックスJに関して満たされるかどうかを検査し得る。
(a)復号は、K′個のソースシンボルからゼロオーバーヘッドで可能であるか?
はいの場合、オンザフライ非活動化の数を記録する。
(b)(ESI 0,...,K′/0.06をもつ)第1のK′/0.06個の可能な被符号化シンボルのうちに、重複の全ネイバーセットがあるか?[他のしきい値が代わりに使用され得る。]
(c)10000ラン[またはある他のテスト]内で第1のK′個の受信された被符号化シンボルを使用して復号したときに、各被符号化シンボルが他の被符号化シンボルとは無関係に各ランにおいて確率0.93[またはある他のしきい値]で損失したとき、復号失敗確率は0.007[またはある他のしきい値]を下回るか?
次いで、回路/プロセッサは、上記の基準(a)、(b)および(c)を満たす可能なシステマティックインデックスJのうちから、ステップ(a)においてオンザフライ非活動化の平均数を記録したシステマティックインデックスを選定する。
上記の選択基準の多くの変形態があることに留意されたい。たとえば、場合によっては、上記の(a)、(b)および(c)を満たし、指定された数のラン内でステップ(c)において最も少数の復号失敗を生じるシステマティックインデックスを選定することが好ましいことがある。別の例として、オンザフライ非活動化の数と復号失敗確率との組合せは、システマティックインデックスを選定するときに考慮に入れられ得る。別の例として、各K′値についての複数のシステマティックインデックスは利用可能であり得、その場合、それらの1つは特定の適用例内でランダムに選定される。
付録Aのセクション5.6中の表2に記載されたK′値のためのシステマティックインデックスは、付録Aで説明する符号のためのシステマティックインデックスの1つの潜在的なリストである。
サブブロック化プロセスの変形態
さらなる処理のために、ブロックをより小さいユニットに物理的にまたは論理的に区分するサブブロック化は、様々な目的のために知られている。たとえば、サブブロック化はIETF RFC5053において使用されている。サブブロック化はまた、米国特許第7,072,971号から知られている。サブブロック化方法の主要な用途の1つは、FECデコーダを使用してデータブロックを復元するために受信機におけるデータブロックのサイズよりもはるかに小さいメモリの量を使用すると同時に、データの大きいブロックがFEC符号によって単一のエンティティとして保護されることを可能にすることである。
IETF RFC5053に記載されているサブブロックの数を選定するための1つの方法は、パラメータの多くの妥当な設定のための良好なソースブロック区分およびサブブロック区分を提供するが、それは、いくつかの状況では、サブブロックサイズWSに対する上限を厳密に満たし得ない解を作り出し得る(とはいえ、これらの場合でも、それは、サブブロックサイズが、サブブロックサイズに対する所与の制約WSよりも大きい適度のファクタであるソリューションを作り出す)。(ソースブロック中のソースシンボルの最大数がIETF RFC5053の場合よりもはるかに大きい)draft−luby−rmt−bb−fec−raptorg−object−00における別の例として、セクション4.2において、T、Z、およびNを計算するための以下の秘訣が与えられ、Tはシンボルサイズであり、Zはファイル(またはデータブロック)が区分されたソースブロックの数であり、Nはサブブロックの数である。また、P′はシンボルのためのパケットペイロードサイズであり、Fはバイト単位のファイルサイズであり、K′_maxは、サポートされるソースシンボルの最大数(たとえば、56404)であり、Alは、より効率的な復号を可能にするために、シンボルまたはサブシンボルのサイズがAlバイトの倍数となるべきであることを指定するアラインメントファクタであり、たとえば、現代のCPUの場合にはAl=4が選好され、WSは、バイト単位のサブブロックサイズに対する所望の上限である。
パラメータT、Z、およびNの導出がF、Al、およびP′の値に基づいて送信側または代替サーバにおいて行われ得ることに留意されたい。受信機は、ファイルまたはデータブロックに関係する、受信されたパケット中のファイルまたはデータブロックのサブブロックおよびソースブロック構造を判断するために、F、Al、T、Z、およびNの値を知るだけでよい。受信機は、受信されたパケットのサイズからP′を判断することができる。また、送られ、受信されたパケットは、一般にパケットのコンテンツを識別する他の情報、たとえば、一般にサイズが4バイトであり、パケット中で搬送されるソースブロック番号(SBN)と第1のシンボルの被符号化シンボル識別子(ESI)とを搬送するFECペイロードIDを含んでいることに留意されたい。
T、Z、Nを計算するための、draft−luby−rmt−bb−fec−raptorg−object−00のセクション4.2に記載されている以前の方法は、T、Z、Nを以下の値に設定することである。
Figure 2013502849
これらの計算では、ceil()はそれの入力以上の最小整数を出力する関数であり、floor()はそれの入力以下の最大整数を出力する関数である。また、min()は、それの入力の最小値を出力する関数である。
ソースブロックおよびサブブロック区分を導出するこの方法を用いたパラメータのいくつかの設定の1つの問題は、T/Alがceil(ceil(Kt/Z)*T/WS)よりも小さい場合、サブブロックサイズWに対する上限が尊重され得ないことである。
潜在的な第2の問題は、これにより、サブシンボルが、一般に4バイトに設定されるAlと同じくらい小さくなることが可能になり、あまりに小さくて実際には効率的でないことがあるということである。一般に、サブシンボルサイズが小さくなればなるほど、サブブロックを符号化または復号するための処理オーバーヘッドはより多くなる。さらに、特に受信機において、より小さいサブシンボルサイズは、より多くのサブブロックが多重分離され、復号される必要があることを意味し、これにより、CPUサイクルおよびメモリアクセスなどの受信機リソースを消費することがある。一方、より小さい許容サブシンボルサイズは、ソースブロックが、サブブロックサイズに対して指定された上限WSを尊重する、より多くのサブブロックに区分され得ることを意味する。したがって、より小さいサブシンボルは、より大きいソースブロックがサポートされることを可能にし、したがって、このソースブロック上に与えられるFEC保護は、より良い保護とより良いネットワーク効率とを生じる。実際には、多くの場合、サブシンボルが少なくとも指定された最小サイズであることを保証することが好ましく、それにより、受信機における処理要件およびメモリ要件と、ネットワークリソースの効率的な使用との間のより良い平衡を得るための機会を与える。
以下は、T、Z、Nを計算するための、draft−luby−rmt−bb−fec−raptorg−object−00のセクション4.2に記載されている以前の方法を使用して導出されたパラメータの例である。
入力:
Figure 2013502849
計算:
Figure 2013502849
この例では、256個のサブブロックを備える1つのソースブロックがあり、各サブブロックは約220KB(WSよりも大きい)であり、少なくともいくつかのサブブロックはサブシンボルサイズ4バイト(極めて小さい)を有する。
第3の問題は、AL−FECソリューションがすべての可能な数のソースシンボルをサポートし得ないことであり、すなわち、それは、K′値の選択されたリストのみをサポートし得、K′は、ソースブロック中のソースシンボルのサポートされる数であり、さらには、ソースブロック中で所望されるソースシンボルの実際の数KがK′値の1つでない場合、Kは最も近いK′値までパディングされ、それは、以上のことから、使用されるソースブロックのサイズが、計算されたK値よりもいくぶん大きいとすることができることを意味する。
次に、上記で説明した以前の方法に対する改善である新しいサブブロック化方法について説明する。説明のために、サブブロック化のためのモジュールは、区分されるべきデータFと、WS、Al、SSおよびP′を含む値とをそれの入力として取り得、それらの変数の意味について以下でより詳細に説明する。
WSは、受信機における作業メモリ中で復号可能である、場合によってはバイト単位の最大サイズサブブロックに対して与えられた制約を表す。Alはメモリアラインメントパラメータを表す。シンボルおよびサブシンボルがメモリアラインメント境界に沿ってメモリ中で整合させられた場合、受信機メモリがより効率的に動作し得るので、Alを追跡し、Alバイトの倍数単位で値を記憶することは有用であり得る。たとえば、一般に、多くのメモリデバイスが4バイト境界上でメモリ中のデータを当然アドレッシングするので、Al=4である。Alの他の値、たとえば、Al=2またはAl=8も可能である。一般に、Alは、すべての多くの可能な受信機の最小公倍数メモリアラインメントに設定され得る。たとえば、いくつかの受信機が2バイトメモリアラインメントをサポートし、他の受信機が4バイトメモリアラインメントをサポートする場合、Al=4が推奨されるであろう。
パラメータSSは、サブシンボルサイズに対する下限がSS*Alバイトであるように、サブシンボルサイズに対する好適な下限に基づいて判断される。復号演算は一般にサブシンボル上で実行されるので、サブシンボルサイズをAlの倍数にすることが好ましいことがある。
以下は、データFをZ個のソースブロックに区分し、次いで、それらのZ個のソースブロックをN個のサブブロックに区分するための方法の詳細な説明である。本明細書では、P′は、送られるべきシンボルのパケット内の利用可能なバイトを表す、メモリに記憶された(または暗示された)変数を指し、P′はAlの倍数であると仮定される。Tは、送られたパケット内に配置されるべきシンボルのサイズを表す変数である。他の変数はテキストから推測され得る。
T、ZおよびNを判断するための新しいサブブロック化方法
Figure 2013502849
これらのパラメータが判断されると、Z個のソースブロックの各々のサイズ、および各ソースブロックのN個のサブブロックのサブシンボルのサイズは、IETF RFC5053に記載されているように、すなわち、Kt=ceil(F/T)、(KL,KS,ZL,ZS)=Partition[Kt,Z]、および(TL,TS,NL,NS)=Partition[T/Al,N]であるように判断され得る。
Ktはファイル中のソースシンボルの数である。サブブロックモジュールでは、Kt個のソースシンボルはZ個のソースブロックに区分され、KL個のソースシンボルの場合それぞれZL個のソースブロックに区分され、KS個のソースシンボルの場合それぞれZS個のソースブロックに区分される。次いで、KLはKL′まで丸められ、KL′は少なくともKLであるソースシンボルのサポートされる最小数であり(追加のKL′−KL個のゼロパディングシンボルが、符号化および復号のためにソースブロックに追加されるが、これらの追加のシンボルは、一般に送られない、または受信されない)、同様に、KSはKS′まで丸められ、KS′は、少なくともKSであるソースシンボルのサポートされる最小数である(追加のKS′−KS個のゼロパディングシンボルが、符号化および復号のためにソースブロックに追加されるが、これらの追加のシンボルは、一般に送られない、または受信されない)。
(サブブロックモジュール、別のソフトウェアモジュール、またはハードウェアによって実行される)これらの計算では、ソースブロックのためのソースシンボルの数は、それらの数が合計でファイル中のソースシンボルの数Ktになるという制約を条件として、できるだけ等しくなることを保証する。また、これらの計算では、サブブロックのためのサブシンボルのサイズは、それらがAlの倍数であり、それらのサイズが合計でシンボルサイズになるという制約を条件として、できるだけ等しくなることを保証する。
次いで、サブシンボルパラメータTL、TS、NLおよびNSが計算され、より大きいサブシンボルサイズTL*Alを使用するNL個のサブブロックがあり、より小さいサブシンボルサイズTS*Alを使用するNS個のサブブロックがある。関数Partition[I,J]は、ソフトウェアまたはハードウェアにおいて実装され、一連の4つの整数(IL、IS、JL、JS)である出力をもつ関数として定義され、IL=ceil(I/J)、IS=floor(I/J)、JL=I−IS*J、およびJS=J−JLである。
これらの新しい方法の性質のいくつかに注目すべきである。サブブロックモジュールは、使用される最小サブシンボルサイズに対して導出される下限を判断することができる。上式から、TS=floor(T/(Al*N))であることが知られ、TS≦TLなので、TS*Alは、使用される最小サブシンボルサイズである。N=N_maxのとき、最小サブシンボルが使用されることに留意されたい。正のXおよびYの場合、X/(floor(Y))≧X/Yを使用して、TSは、少なくともfloor(T/(Al*floor(T/(SS*Al))))であり、これは、少なくともfloor(SS)=SSである。これらのことにより、本明細書で説明する区分方法によって生成された最小サブシンボルサイズは、必要に応じて、少なくともTS*Al=SS*Alになる。
サブブロックモジュールは、最大サブシンボルサイズに対して導出される上限を判断することができる。使用される最大サブブロックサイズはTL*Al*KL′であり、KL′は、少なくともKL=ceil(Kt/Z)である上記の表中の最小K′値である。Nの定義によって、KL′≦KL(N)、およびTL=ceil(T/(Al*N))であることに留意されたい。KL(N)≦WS/(Al*(ceil(T/(Al*N))))なので、結果としてWS≧KL(N)*Al*ceil(T/(Al*N))≧KL′*Al*TLになる。
変数N_maxは、サイズTのソースシンボルが区分され得るサブシンボルの最大数を表すことができる。N_maxをfloor(T/(SS*Al))に設定することは、最小サブシンボルサイズが少なくともSS*Alであることを保証する。ソースブロックのサブブロックの各々のサイズが高々WSであることを保証するために、KL(n)は、ソースブロックのシンボルがそれぞれn個のサブシンボルに区分されるときにサポートされ得るソースブロック中のソースシンボルの最大数である。
ソースブロックの数Zは、各ソースブロック中のソースシンボルの数が高々KL(N_max)であるという制約を条件としてできるだけ小さくなるように選定され得、KL(N_max)は、各ソースシンボルが少なくともサイズSS*Alのサブシンボルに区分され得、得られたサブブロックのサイズが高々WSであることを保証する。サブブロックモジュールは、Zの値から、ソースブロックの数とZ個のソースブロックの各々におけるシンボルの数とを判断する。
この区分方法によって生成されるよりも小さいZの値が使用される場合、WSよりも大きいソースブロックのうちの1つのサブブロックが存在することになるか、またはそうでなければ、SS*Alよりも小さいサブシンボルサイズを有するソースブロックのうちの1つのサブブロックが存在することになるかのいずれかであることに留意されたい。また、この区分方法が生成するソースブロックの最小のものは、これらの2つの制約を条件としてできるだけ大きくなり、すなわち、その最小ソースブロックがこの区分方法によって生成された最小ソースブロックよりも大きくなるように、両方の制約を尊重する、ファイルまたはデータブロックをソースブロックに区分するための他の方法はない。したがって、この意味で、この区分方法によって生成されたZの値は最適である。
ソースブロックが区分されるサブブロックの数Nは、各サブブロックについて、サブブロックのサブシンボルのサイズ×サブブロックが区分するソースブロック中のソースシンボルの数が高々WSであるという制約を条件としてできるだけ小さくなるように選定され得る。
Zの値からこの区分方法によって生成されるよりも小さいNの値が使用された場合、サイズがWSを超える少なくとも1つのサブブロックがあるであろうことに留意されたい。また、この区分方法がZの所与の値から生成する最小サブシンボルサイズは、最大サブブロックサイズがWSを超えるべきでないという制約を条件としてできるだけ大きくなり、すなわち、最小サブシンボルサイズがこの区分方法によって生成される最小サブシンボルサイズよりも大きくなるように、最大サブブロック制約を尊重する、Zの値によって判断されたソースブロックのサブブロックを生成するための他の方法はない。したがって、この意味で、この区分方法によって生成されたNの値は最適である。
以下の例では、すべての可能なK′値がソースブロック中のソースシンボルの数としてサポートされると仮定される。
例1
入力:
Figure 2013502849
計算:
Figure 2013502849
例2
入力:
Figure 2013502849
計算:
Figure 2013502849
上記の方法の多くの変形態がある。たとえば、あるFEC符号の場合、そのFEC符号のソースブロック受信オーバーヘッドを最小限に抑えるためにソースブロック中に少なくとも最小数のソースシンボルを有することが望ましい。実際に小さいファイルサイズまたはデータブロックサイズFについて、ソースシンボルのサイズが非常に小さくなり得るので、また、パケットが区分される最大数のソースシンボルがあり得る。たとえば、IETF RFC5053において、ソースブロック中のソースシンボルの所望の最小数はKmin=1024であり、パケットが区分されるソースシンボルの最大数はGmax=10である。
以下は、今説明した追加のパラメータKminとGmaxとを考慮に入れている、上記で説明した新しいサブブロック化方法の別の変形態であり、Gは、各パケット中で搬送されるソースブロックのためのシンボルの数であり、この変形態は、エンコーダ、デコーダ、送信機および/または受信機における、サブブロック化モジュール、あるいはより一般的にはあるモジュールまたはソフトウェアまたはハードウェアによって実行可能である。
この変形態では、各パケットは、パケット中の第1のシンボルのESIを搬送し、次いで、パケット中の各後続のシンボルは、暗黙的に、パケット中の先行するシンボルよりも1大きいESIを有する。
G、T、ZおよびNを判断するための新しいサブブロック化方法
Figure 2013502849
Gが計算される方法によって、シンボルサイズが少なくともSS*Alである、すなわち、シンボルサイズが少なくとも最小サブシンボルサイズであることが保証されることに留意されたい。また、シンボルサイズが少なくともSS*Alとなり得るように、SS*Alが少なくともP′であるべきである(および、そうでない場合、Gは0になる)ことに留意されたい。
例3
入力:
Figure 2013502849
計算:
Figure 2013502849
今説明したように、これらの新しい方法は、任意のサブブロックのために使用される最小サブシンボルサイズに対する制約を導入する。本開示は、最大サブブロックサイズに対する制約を同時に厳密に尊重しながら、この追加の制約を尊重するサブブロック化のための新しい方法を提供する。この方法は、ファイルまたは大きいデータブロックを、最小サブシンボルサイズに対する制約を条件として、できるだけ少数のソースブロックに区分し、さらに、これを条件として、最大サブブロックサイズに対する制約を条件として、できるだけ少数のサブブロックに分割するという目的を満たすソースブロック化およびサブブロック化ソリューションを生成する。
変形態
いくつかの適用例では、ソースシンボルのすべてを復号することは可能でないこと、または比較的低い確率であるがソースシンボルのすべてを復号することが可能であることを許容できることがある。そのような適用例では、受信機は、K+A個の被符号化シンボルを受信した後に、ソースシンボルのすべてを復号することを試みるのを止めることができる。または、受信機は、K+A個よりも少ない被符号化シンボルを受信した後に、被符号化シンボルを受信することを止めることができる。いくつかの適用例では、受信機は、さらにはK個またはより少ない被符号化シンボルのみを受信し得る。したがって、本発明のいくつかの実施形態では、所望の正確度が、すべてのソースシンボルの完全な復元を必要とするわけではないことを理解されたい。
さらに、不完全な復元が許容できるいくつかの適用例では、ソースシンボルのすべてが復元され得ないように、またはソースシンボルの完全な復元がソースシンボルの数よりもはるかに多い被符号化シンボルの受信を必要とするように、データが符号化され得る。そのような符号化は、一般的により少ない計算費用を必要とするであろうし、したがって、符号化の計算費用を減少させるための許容できる方法であり得る。
上記で説明した図における様々な機能ブロックは、ハードウェアおよび/またはソフトウェアの組合せによって実装され得、特定の実装形態では、ブロックの一部の機能の一部または全部が組み合わせられ得ることを理解されたい。同様に、本明細書で教示する様々な方法はハードウェアおよび/またはソフトウェアの組合せによって実装され得ることも理解されたい。
上記の説明は例示的であり、限定的ではない。本開示を検討すると、本発明の多くの変形態が当業者には明らかになるであろう。したがって、本発明の範囲は、上記の説明に関して判断されるべきでないが、代わりに、等価物のそれらの全範囲とともに添付の特許請求の範囲に関して判断されるべきである。
付録A
信頼できるマルチキャストトランスポート M.Luby
インターネットドラフト Qualcomm Incorporated
対象ステータス:標準化過程 A.Shokrollahi
有効期限:2011年2月12日 EPFL
M.Watson
Qualcomm Incorporated
T.Stockhammer
Nomor Research
L.Minder
Qualcomm Incorporated
2010年8月11日
オブジェクト配信のためのRaptorQ前方誤り訂正方式
draft−ietf−rmt−bb−fec−raptorq−04
要約
この文書では、RaptorQ前方誤り訂正符号のための、FEC符号化ID6(要確認(tbc))に対応する完全指定FEC方式と、データオブジェクトの信頼できる配信へのそれの適用例とについて説明する。
RaptorQ符号は、RFC5053におけるRaptor符号よりも優れたフレキシビリティと、より大きいソースブロックサイズのサポートと、良好なコーディング効率とを提供する新しい符号ファミリーである。RaptorQはまた、ファウンテン符号であり、すなわち、必要な数の符号化シンボルがデータのソースブロックのソースシンボルからエンコーダによってオンザフライで生成され得る。デコーダは、たいていの場合はソースシンボルの数に等しく、まれな場合はソースシンボルの数よりもわずかに多い符号化シンボルのセットからソースブロックを復元することが可能である。
ここで説明するRaptorQ符号はシステマティック符号であり、これは、すべてのソースシンボルが、生成され得る符号化シンボルの中にあることを意味する。
このメモのステータス
このインターネットドラフトは、BCP78およびBCP79の規定に完全に準拠して提出されている。
インターネットドラフトはInternet Engineering Task Force(IETF)の作業文書である。他のグループが作業文書をインターネットドラフトとして配布することもあり得ることに留意されたい。現在のインターネットドラフトのリストは、http://datatracker.ietf.org/drafts/current/にある。
インターネットドラフトは、最大6カ月有効な草案文書であり、いつでも他の文書によって更新されるか、置き換えられるか、または廃止され得る。インターネットドラフトを参考文献として使用すること、またはそれらを「作業中」以外のものとして引用することは不適当である。
このインターネットドラフトは2011年2月12日が有効期限である。
著作権表示
Copyright (c)2010 IETF Trustおよび本文書の著者として特定される個人。著作権所有。
この文書は、BCP78と、この文書の公開日に施行されているIETF文書に関するIETF Trustの法的規定(http://trustee.ietf.org/license-info)とに従うものである。この文書に関する権利および制限が記載されているので、それらの文書を注意深く精査されたい。この文書から抜粋されるコード構成要素は、Trustの法的規定のセクション4.eに記載されている簡易BSDライセンステキストを含めなければならず、簡易BSDライセンスに記載されているように無保証で提供される。
目次
1. 序論.............................................................. 5
2. 要件表記法........................................................ 5
3. フォーマットおよび符号............................................ 5
3.1. FECペイロードID........................................ 5
3.2. FECオブジェクト送信情報.................................. 6
3.2.1. 必須.................................................. 6
3.2.2. 共通.................................................. 6
3.2.3. 方式固有.............................................. 7
4. プロシージャ...................................................... 8
4.1. 序論........................................................ 8
4.2. コンテンツ配信プロトコル要件................................ 8
4.3. 例示的なパラメータ導出アルゴリズム.......................... 8
4.4. オブジェクト配信............................................10
4.4.1. ソースブロック構成....................................10
4.4.2. 符号化パケット構成....................................12
5. RaptorQ FEC符号の仕様..................................13
5.1. 定義、記号および略語........................................13
5.1.1. 定義..................................................13
5.1.2. 記号..................................................14
5.1.3. 略語..................................................16
5.2. 概観........................................................17
5.3. システマティックRaptorQエンコーダ....................18
5.3.1. 序論..................................................18
5.3.2. 符号化の概観..........................................19
5.3.3. 第1の符号化ステップ:中間シンボル生成................21
5.3.4. 第2の符号化ステップ:符号化..........................27
5.3.5. 生成器................................................27
5.4. 例示的なFECデコーダ......................................30
5.4.1. 概略..................................................30
5.4.2. 拡張ソースブロックの復号..............................31
5.5. 乱数........................................................36
5.5.1. テーブルV0..........................................36
5.5.2. テーブルV1..........................................37
5.5.3. テーブルV2..........................................38
5.5.4. テーブルV3..........................................39
5.6. システマティックインデックスおよび他のパラメータ............40
5.7. オクテット、シンボルおよび行列を用いる演算..................60
5.7.1. 概略..................................................60
5.7.2. オクテットに対する算術演算............................61
5.7.3. テーブルOCT_EXP................................62
5.7.4. テーブルOCT_LOG................................63
5.7.5. シンボルに対する演算..................................63
5.7.6. 行列に対する演算......................................64
5.8. 対応デコーダの要件..........................................64
6. セキュリティ考慮事項..............................................65
7. IANA考慮事項..................................................65
8. 謝辞..............................................................66
9. 参考文献..........................................................66
9.1. 必須参考文献................................................66
9.2. 非必須参考文献..............................................66
著者の住所................................................................66
1. 序論
この文書では、オブジェクト配信適用例に関するRaptorQ前方誤り訂正符号のためのFEC方式について詳述する。FEC方式の概念はRFC5052[RFC5052]において定義されており、この文書は、そこで規定されている形式に従い、その文書の用語を使用する。この文書で説明するRaptorQ符号は、RFC5053[RFC5053]に記載されているRaptor符号の次世代である。RaptorQ符号は、RFC5053[RFC5053]のRaptor符号よりも優れた信頼性と、より良いコーディング効率と、より大きいソースブロックサイズのサポートとを提供する。これらの改善は、RFC5053[RFC5053]に比較して、オブジェクト配信コンテンツ配信プロトコルにおけるRaptorQ符号の使用を簡略化する。
RaptorQ FEC方式は、FEC符号化ID6(tbc)に対応する完全指定FEC方式である。
編集者注:確定されたFEC符号化IDはまだ定義されていないが、IANA登録プロセスにおけるFEC符号化IDの連続的な使用を予想して、このインターネットドラフトでは、「6(tbc)」を仮の値として使用する。
RaptorQは、ファウンテン符号であり、すなわち、必要な数の符号化シンボルがブロックのソースシンボルからエンコーダによってオンザフライで生成され得る。デコーダは、ソースシンボルの数よりもほんのわずかに多い数の符号化シンボルのセットからソースブロックを復元することが可能である。
この文書で説明する符号はシステマティック符号であり、すなわち、元のソースシンボルならびにいくつかのリペアシンボルは送信側から受信機に変更なしに送られ得る。信頼できるマルチキャストにおける前方誤り訂正符号の使用に関する背景の詳細については、[RFC3453]を参照されたい。
2. 要件表記法
この文書中のキーワード「しなければならない(MUST)」、「してはならない(MUST NOT)」、「必要とされる(REQUIRED)」、「するものとする(SHALL)」、「しないものとする(SHALL NOT)」、「すべきである(SHOULD)」、「すべきでない(SHOULD NOT)」、「推奨される(RECOMMENDED)」、「してもよい(MAY)」、および「随意(OPTIONAL)」は、[RFC2119]に記載されているように解釈するものとする。
3. フォーマットおよび符号
3.1. FECペイロードID
FECペイロードIDは、次のように定義される4オクテットフィールドでなければならない。
Figure 2013502849
○ ソースブロック番号(SBN)、(8ビット、符号なし整数):パケット内の符号化シンボルが関係するソースブロックの非負整数識別子。
○ 符号化シンボルID(ESI)、(24ビット、符号なし整数):パケット内の符号化シンボルの非負整数識別子。
ソースブロック番号および符号化シンボル識別子の解釈はセクション4において定義されている。
3.2. FECオブジェクト送信情報
3.2.1. 必須
FEC符号化IDの値は、IANAによって割り当てられるように、6でなければならない(セクション7参照)。
3.2.2. 共通
このFEC方式によって使用される共通FECオブジェクト送信情報要素は以下のとおりである。
○ 転送長さ(F)、(40ビット、符号なし整数):最高でも946270874880である非負整数。これは、オクテット単位のオブジェクトの転送長さである。
○ シンボルサイズ(T)、(16ビット、符号なし整数):2^^16よりも小さい正の整数。これは、オクテット単位のシンボルのサイズである。
符号化された共通FECオブジェクト送信情報フォーマットを図2に示す。
Figure 2013502849
注1:転送長さに関する946270874880の限界は、シンボルサイズが2^^16−1に制限されること、ソースブロック中のシンボルの数が56403に制限されること、およびソースブロックの数が2^^8に制限されることの結果である。
3.2.3. 方式固有
以下パラメータが、このFEC方式のための方式固有FECオブジェクト送信情報要素中で搬送される。
○ ソースブロックの数(Z)(12ビット、符号なし整数)
○ サブブロックの数(N)(12ビット、符号なし整数)
○ シンボルアラインメントパラメータ(Al)(8ビット、符号なし整数)
これらのパラメータはすべて正の整数である。符号化された方式固有オブジェクト送信情報は、図3に示すようにパラメータZ、NおよびAlからなる4オクテットフィールドである。
Figure 2013502849
符号化されたFECオブジェクト送信情報は、符号化された共通FECオブジェクト送信情報と符号化された方式固有FECオブジェクト送信情報との連結からなる12オクテットフィールドである。
これらの3つのパラメータは、セクション4.4.1.2に記載されているようにソースブロック区分を定義する。
4. プロシージャ
4.1. 序論
このセクションにおいて使用される未定義の記号または関数、特に関数「ceil」および「floor」については、セクション5.1を参照されたい。
4.2. コンテンツ配信プロトコル要件
このセクションでは、RaptorQ FEC方式と、オブジェクト配信のためにRaptorQ FEC方式を利用する任意のコンテンツ配信プロトコル(CDP)との間の情報交換について説明する。
オブジェクト配信のためのRaptorQエンコーダ方式およびRaptorQデコーダ方式は、CDPからの以下の情報を必要とする。
○ オクテット単位のオブジェクトの転送長さ、F
○ シンボルアラインメントパラメータ、Al
○ オクテット単位のシンボルサイズ、T。これは、Alの倍数でなければならない。
○ ソースブロックの数、Z
○ 各ソースブロック中のサブブロックの数、N
オブジェクト配信のためのRaptorQエンコーダ方式は、さらに以下を必要とする。
− 符号化されるべきオブジェクト、Fオクテット
RaptorQエンコーダ方式は、送られるべき各パケットについての以下の情報をCDPに供給する。
○ ソースブロック番号(SBN)
○ 符号化シンボルID(ESI)
○ (1つまたは複数の)符号化シンボル
CDPは、この情報を受信機に通信しなければならない。
4.3. 例示的なパラメータ導出アルゴリズム
このセクションでは、3つのトランスポートパラメータ、T、ZおよびNの導出についての推奨を行う。この推奨は以下の入力パラメータに基づく。
○ F オクテット単位のオブジェクトの転送長さ
○ WS オクテット単位の、作業メモリにおいて復号可能である最大サイズブロック
○ P′ オクテット単位の最大ペイロードサイズ。これは、Alの倍数であると仮定される。
○ Al オクテット単位のシンボルアラインメントパラメータ
○ SS サブシンボルサイズに対する所望の下限がSS*Alであるパラメータ
○ K′_max ソースブロック当たりのソースシンボルの最大数。
注:セクション5.1.2において、K′_maxは56403であると定義されている。
上記の入力に基づいて、トランスポートパラメータT、ZおよびNは次のように計算される。
次のように仮定する。
○ T=P′
○ Kt=ceil(F/T)
○ N_max=floor(T/(SS*Al))
○ すべてのn=1,...,N_maxについて、
・KL(n)は、次式を満たすような、セクション5.6の表2中の最大値K′である。
K′≦WS/(Al*(ceil(T/(Al*n))))
○ Z=ceil(Kt/KL(N_max))
○ Nは、ceil(Kt/Z)≦KL(n)を満たすような最小値n=1,...,N_maxである。
各パケットは厳密に1つのシンボルを含んでいることが推奨される。しかしながら、受信機は、複数のシンボルを含んでいるパケットの受信をサポートするものとする。
値Ktは、オブジェクトのソースデータを表すために必要とされるシンボルの総数である。
セクション4.4.1.2において定義されている、上記のアルゴリズムは、サブシンボルサイズがシンボルアラインメントパラメータAlの倍数であることを保証する。これは、符号化および復号のために使用される和演算が、概して、一度に数オクテット、たとえば、32ビットプロセッサ上で一度に少なくとも4オクテット実行されるので有用である。したがって、サブシンボルサイズがこのオクテット数の倍数である場合、符号化および復号はより高速に実行され得る。
入力パラメータAlの推奨設定は4である。
パラメータWSを使用して被符号化データを生成することができ、被符号化データは、デコーダにおいて限られた作業メモリを用いて効率的に復号され得る。WSの所与の値に対する実際の最大デコーダメモリ要件は実装形態に依存するが、WSよりもほんのわずかに大きい作業メモリを使用して復号を実装することが可能であることに留意されたい。
4.4. オブジェクト配信
4.4.1. ソースブロック構成
4.4.1.1. 概略
ソースオブジェクトにRaptorQエンコーダを適用するために、オブジェクトは、ソースブロックとして知られるZ≧1個のブロックに分解され得る。RaptorQエンコーダは各ソースブロックに別個に適用される。各ソースブロックは一意のソースブロック番号(SBN)によって識別され、第1のソースブロックはSBN 0を有し、第2のソースブロックはSBN 1を有するなどである。各ソースブロックは、それぞれサイズTオクテットのK個のソースシンボルに分割される。各ソースシンボルは一意の符号化シンボル識別子(ESI)によって識別され、ソースブロックの第1のソースシンボルはESI 0を有し、第2のソースシンボルはESI 1を有するなどである。
K個のソースシンボルをもつ各ソースブロックは、作業メモリ中で復号されるのに十分小さいN≧1個のサブブロックに分割される。各サブブロックは、サイズT′のK個のサブシンボルに分割される。
Kの値は、必ずしもオブジェクトの各ソースブロックについて同じではなく、T′の値は、必ずしもソースブロックの各サブブロックについて同じでない場合があることに留意されたい。しかしながら、シンボルサイズTは、オブジェクトのすべてのソースブロックについて同じであり、シンボルの数Kは、ソースブロックのあらゆるサブブロックについて同じである。ソースブロックおよびサブブロックへのオブジェクトの厳密な区分は、以下のセクション4.4.1.2に記載されている。
4.4.1.2. ソースブロックおよびサブブロック区分
ソースブロックおよびサブブロックの構成は、5つの入力パラメータ、F、Al、T、ZおよびNと関数Partition[]とに基づいて判断される。5つの入力パラメータは次のように定義される。
○ F オクテット単位のオブジェクトの転送長さ
○ Al オクテット単位のシンボルアラインメントパラメータ
○ T オクテット単位のシンボルサイズ。これは、Alの倍数でなければならない。
○ Z ソースブロックの数
○ N 各ソースブロック中のサブブロックの数
これらのパラメータは、ceil(ceil(F/T)/Z)≦K′_maxであるように設定されなければならない。これらのパラメータの導出についての推奨はセクション4.3に与えられている。
関数Partition[]は、入力として正の整数(I,J)のペアをとり、出力として4つの非負整数(IL,IS,JL,JS)を導出する。詳細には、Partition[I,J]の値はシーケンス(IL,IS,JL,JS)であり、IL=ceil(I/J)、IS=floor(I/J)、JL=I−IS*JおよびJS=J−JLである。Partition[]は、サイズIのブロックをほぼ等しいサイズのJ個のブロックに区分するためのパラメータを導出する。詳細には、長さILのJL個のブロックおよび長さISのJS個のブロックである。
ソースオブジェクトは、次のようにソースブロックとサブブロックとに区分されなければならない。
次のように仮定する。
○ Kt=ceil(F/T)、
○ (KL,KS,ZL,ZS)=Partition[Kt,Z]、
○ (TL,TS,NL,NS)=Partition[T/Al,N]。
すると、オブジェクトは、それぞれKL*Tオクテット、すなわち、各々がTオクテットのKL個のソースシンボルを有する最初のZL個のソースブロックと、各々がKS*Tオクテット、すなわち、それぞれTオクテットのKS個のソースシンボルを有する残りのZS個のソースブロックとのZ=ZL+ZS個の連続ソースブロックに区分されなければならない。
Kt*T>Fである場合、符号化目的のために、最後のソースブロックの最後のシンボルはその末尾においてKt*T−F個の0オクテットを用いてパディングされなければならない。
次に、K個のソースシンボルをもつ各ソースブロックは、各々がTL*AlオクテットのサイズのK個の連続サブシンボルからなる最初のNL個のサブブロックと、各々がTS*AlオクテットのサイズのK個の連続サブシンボルからなる残りのNS個のサブブロックとのN=NL+NS個の連続サブブロックに分割されなければならない。シンボルアラインメントパラメータAlは、サブシンボルが常にAlオクテットの倍数であることを保証する。
最後に、ソースブロックのm番目のシンボルは、N個のサブブロックの各々からのm番目のサブシンボルの連結からなる。これは、N>1であるとき、シンボルはオブジェクトの連続部分でないことを暗示することに留意されたい。
4.4.2. 符号化パケット構成
各符号化パケットは以下の情報を含んでいる。
○ ソースブロック番号(SBN)
○ 符号化シンボルID(ESI)
○ (1つまたは複数の)符号化シンボル
各ソースブロックは他のソースブロックとは無関係に符号化される。ソースブロックは0から連続的に番号付けされる。
0からK−1までの符号化シンボルID値は、連続順序でソースブロックのソースシンボルを識別し、Kは、ソースブロック中のソースシンボルの数である。K以降の符号化シンボルIDは、RaptorQエンコーダを使用してソースシンボルから生成されるリペアシンボルを識別する。
各符号化パケットは、完全にソースシンボル(ソースパケット)からなるか、または完全にリペアシンボル(リペアパケット)からなる。パケットは、同じソースブロックからの任意の数のシンボルを含み得る。ソースパケット中の最後のソースシンボルがFEC符号化目的で追加されたパディングオクテットを含む場合、これらのオクテットはパケット中に含まれる必要はない。そうではなく、全シンボルのみが含まれなければならない。
各ソースパケット中で搬送される符号化シンボルID Xは、そのパケット中で搬送される第1のソースシンボルの符号化シンボルIDである。パケット中の後続のソースシンボルは、連続順序で符号化シンボルID X+1〜X+G−1を有し、Gは、パケット中のシンボルの数である。
同様に、リペアパケットに配置される符号化シンボルID Xは、リペアパケット中の第1のリペアシンボルの符号化シンボルIDであり、パケット中の後続のリペアシンボルは、連続順序で符号化シンボルID X+1〜X+G−1を有し、Gは、パケット中のシンボルの数である。
受信機がリペアパケットの総数を知る必要はないことに留意されたい。
5. RaptorQ FEC符号の仕様
5.1. 定義、記号および略語
このセクションでは、RaptorQ FEC符号の仕様のために、以下の定義、記号および略語を適用する。
5.1.1. 定義
○ ソースブロック:RaptorQ符号化および復号目的のために一緒に考慮されるK個のソースシンボルのブロック。
○ 拡張ソースブロック:ソースブロックと0個以上のパディングシンボルとから構成される、K′≧KであるK′個のソースシンボルのブロック。
○ シンボル:データ単位。オクテット単位のシンボルのサイズはシンボルサイズとして知られている。シンボルサイズは常に正の整数である。
○ ソースシンボル:符号化プロセス中に使用される最小データ単位。ソースブロック内のすべてのソースシンボルは同じサイズを有する。
○ パディングシンボル:拡張ソースブロックを形成するためにソースブロックに追加される全0ビットをもつシンボル。
○ 符号化シンボル:ソースブロックの符号化の一部として送られ得るシンボル。ソースブロックの符号化シンボルは、ソースブロックのソースシンボルと、ソースブロックから生成されるリペアシンボルとからなる。ソースブロックから生成されるリペアシンボルは、そのソースブロックのソースシンボルと同じサイズを有する。
○ リペアシンボル:ソースシンボルではない、ソースブロックの符号化シンボル。リペアシンボルは、ソースブロックのソースシンボルに基づいて生成される。
○ 中間シンボル:逆符号化プロセスを使用してソースシンボルから生成されるシンボル。次いで、中間シンボルからリペアシンボルが直接生成される。符号化シンボルは中間シンボルを含まず、すなわち、中間シンボルはソースブロックの符号化の一部として送られない。中間シンボルは、LTシンボルとPIシンボルとに区分される。
○ LTシンボル:符号化シンボルのLTネイバーであり得る中間シンボルのサブセット。
○ PIシンボル:符号化シンボルのPIネイバーであり得る中間シンボルのサブセット。
○ システマティック符号:すべてのソースシンボルがソースブロックの符号化シンボルの一部として含まれる符号。この文書で説明するRaptorQ符号はシステマティック符号である。
○ 符号化シンボルID(ESI):送信および受信目的のためにソースブロックに関連する各符号化シンボルを一意に識別する情報。
○ 内部シンボルID(ISI):符号化および復号目的のために拡張ソースブロックに関連する各シンボルを一意に識別する情報。
○ オクテットとシンボルと行列とに対する算術演算:ソースシンボルから符号化シンボルを生成するために、およびその逆を生成するために使用される演算。セクション5.7参照。
5.1.2. 記号
i、j、u、v、h、d、a、b、d1、a1、b1、v、m、x、yは、コンテキストに応じて、あるタイプまたは別のタイプの値または変数を表す。
Xは、コンテキストに応じて、ISI値またはESI値のいずれかである非負整数値を示す。
ceil(x)は、x以上である最小整数を示し、xは実数値である。
floor(x)は、x以下である最大整数を示し、xは実数値である。
min(x,y)は、値xおよびyの最小値を示し、概して、すべての引数値の最小値を示す。
max(x,y)は、値xおよびyの最大値を示し、概して、すべての引数値の最大値を示す。
i%jは、jを法とするiを示す。
i+jは、iとjとの和を示す。iおよびjがオクテットであり、それぞれシンボルである場合、これは、セクション5.7において定義されているように、それぞれシンボルであるオクテットに対する算術を指定する。iおよびjが整数である場合、i+jは通常の整数加算を示す。
i*jは、iとjとの積を示す。iおよびjがオクテットである場合、これは、セクション5.7において定義されているように、オクテットに対する算術を指定する。iがオクテットであり、jがシンボルである場合、これは、同じくセクション5.7において定義されているように、シンボルにオクテットを掛ける乗算を示す。最後に、iおよびjが整数である場合、i*jは整数の通常の積を示す。
a^^bは、aのb乗の演算を示す。aがオクテットであり、bが非負整数である場合、これはa*a*...*a(b項)を意味すると理解され、「*」は、セクション5.7において定義されているようにオクテット積である。
u^vは、等長ビットストリングuおよびvについて、uとvとのビット単位の排他論理和を示す。
Transpose[A]は、行列Aの転置行列を示す。この仕様では、すべての行列は、オクテットであるエントリを有する。
A^^−1は、行列Aの逆行列を示す。この仕様では、すべての行列はオクテットをエントリとして有し、したがって、行列エントリの演算は、セクション5.7に示すように行われるものであることと、A^^−1は、オクテット算術に関してAの逆行列であることとを理解されたい。
Kは、単一のソースブロック中のシンボルの数を示す。
K′は、拡張ソースブロック中のソースシンボル+パディングシンボルの数を示す。この仕様の大部分では、パディングシンボルは追加のソースシンボルであると見なされる。
K′_maxは、単一のソースブロック中にあり得るソースシンボルの最大数を示す。56403に設定される。
Lは、単一の拡張ソースブロックの中間シンボルの数を示す。
Sは、単一の拡張ソースブロックのLDPCシンボルの数を示す。これらはLTシンボルである。セクション5.6の表2に示すK′の各値について、Sの対応する値は素数である。
Hは、単一の拡張ソースブロックのHDPCシンボルの数を示す。これらはPIシンボルである。
Bは、LDPCシンボルを除いてLTシンボルである中間シンボルの数を示す。
Wは、LTシンボルである中間シンボルの数を示す。セクション5.6に示す表2中のK′の各値について、Wの対応する値は素数である。
Pは、PIシンボルである中間シンボルの数を示す。これらは、すべてのHDPCシンボルを含んでいる。
P1は、P以上の最小素数を示す。
Uは、PIシンボルである非HDPC中間シンボルの数を示す。
Cは、中間シンボルC[0],C[1],C[2],...,C[L−1]のアレイを示す。
C′は、拡張ソースブロックのシンボルのアレイを示し、C′[0],C′[1],C′[2],...,C′[K−1]はソースブロックのソースシンボルであり、C′[K],C′[K+1],...,C′[K′−1]はパディングシンボルである。
V0、V1、V2、V3は、セクション5.5に示すように、V0[0],V0[1],...,V0[255]、V1[0],V1[1],...,V1[255]、V2[0],V2[1],...,V2[255]、およびV3[0],V3[1],...,V3[255]の32ビット符号なし整数の4つのアレイを示す。
Rand[y,i,m]は、擬似乱数発生器を示す。
Deg[v]は、度数生成器を示す。
Enc[K′,C,(d,a,b,d1,a1,b1)]は、符号化シンボル生成器を示す。
Tuple[K′,X]は、タプル生成器関数を示す。
Tは、オクテット単位のシンボルサイズを示す。
J(K′)は、K′に関連するシステマティックインデックスを示す。
Gは、任意の生成器行列を示す。
I_Sは、S×S単位行列を示す。
5.1.3. 略語
ESI 符号化シンボルID
HDPC 高密度パリティ検査
ISI 内部シンボルID
LDPC 低密度パリティ検査
LT Luby変換
PI 永久的非活動
SBN ソースブロック番号
SBL ソースブロック長さ(シンボル単位)
5.2. 概観
このセクションはシステマティックRaptorQ FEC符号を定義する。
シンボルは符号化および復号プロセスの基本データ単位である。各ソースブロックについて、すべてのシンボルは、シンボルサイズTと呼ばれる同じサイズである。符号化と復号の両方のためにシンボルに対して実行されるアトミック演算は、セクション5.7において定義されている算術演算である。
基本エンコーダはセクション5.3に記載されている。エンコーダは、最初に、ソースブロックのソースシンボルから中間シンボルのブロックを導出する。この中間ブロックは、ソースシンボルとリペアシンボルの両方が同じプロセスを使用して中間ブロックから生成され得るという特性を有する。エンコーダは、効率的なプロセスを使用して中間ブロックからリペアシンボルを生成し、そのような各リペアシンボルはブロックからの少数の中間シンボルの排他的論理和である。ソースシンボルはまた、同じプロセスを使用して中間ブロックから再生され得る。符号化シンボルはソースシンボルとリペアシンボルとの組合せである。
デコーダの例はセクション5.4に記載されている。中間ブロックからソースシンボルとリペアシンボルとを生成するためのプロセスは、符号化シンボルのセット中のソースシンボルとリペアシンボルとの混合とは無関係に、中間ブロックが符号化シンボルの十分に大きいセットから復元され得るように設計される。中間ブロックが復元されると、ソースブロックの消失したソースシンボルが符号化プロセスを使用して復元され得る。
RaptorQ対応デコーダの要件はセクション5.8に与えられている。これらの要件を達成するために、いくつかの復号アルゴリズムが可能である。これらの要件を達成するための効率的な復号アルゴリズムはセクション5.4に与えられている。
中間シンボルおよびリペアシンボルの構成は、セクション5.3に記載されている擬似乱数発生器に部分的に基づく。この発生器は、送信側と受信機の両方に利用可能でなければならない1024個の乱数の固定セットに基づく。これらの数はセクション5.5に与えられている。RaptorQの符号化および復号演算はオクテットに対する演算を使用する。セクション5.7において、これらの演算をどのように実行するかについて説明する。
最後に、ソースシンボルからの中間シンボルの構成は「システマティックインデックス」によって支配され、その値は、6〜K′_max=56403個のソースシンボルの特定の拡張ソースブロックサイズについてセクション5.6に与えられている。したがって、RaptorQ符号は、1〜56403個のソースシンボルをもつソースブロックをサポートする。
5.3. システマティックRaptorQエンコーダ
5.3.1. 序論
K個のソースシンボルの所与のソースブロックについて、符号化および復号目的のために、ソースブロックは、K′−K個の追加のパディングシンボルを用いて増補され、K′は、セクション5.6の表2のシステマティックインデックス中の少なくともKである最小値である。ソースブロックをK′の倍数までパッドアウトする理由は、より高速な符号化および復号を可能にすること、ならびにエンコーダおよびデコーダに記憶される必要があるテーブル情報の量を最小限に抑えることである。
データを送信および受信する目的で、Kの値は、ソースブロック中のソースシンボルの数を判断するために使用され、したがって、Kは送信側および受信機において知られている必要がある。この場合、送信側および受信機は、KからK′を計算し得、K′−K個のパディングシンボルは、追加の通信なしに自動的にソースブロックに追加され得る。符号化シンボルID(ESI)は、送信側および受信機がソースブロックの符号化シンボルを識別するために使用され、ソースブロックの符号化シンボルは、ソースシンボルと、ソースブロックに関連するリペアシンボルとからなる。K個のソースシンボルをもつソースブロックでは、ソースシンボルのESIは、0,1,2,...,K−1であり、リペアシンボルのESIは、K,K+1,K+2,...である。トランスポートの際に符号化シンボルを識別するためのESIを使用することは、ESI値がソースシンボルとリペアシンボルとの間で連続的に続くことを保証する。
データを符号化および復号する目的で、Kから導出されるK′の値は、符号化演算および復号演算が実行される拡張ソースブロックのソースシンボルの数として使用され、K′個のソースシンボルは、元のK個のソースシンボルと追加のK′−K個のパディングシンボルとからなる。内部シンボルID(ISI)は、エンコーダおよびデコーダが拡張ソースブロックに関連するシンボルを識別するため、すなわち、符号化シンボルを生成および復号するために使用される。K個の元のソースシンボルをもつソースブロックでは、元のソースシンボルのISIは、0,1,2,...,K−1であり、K′−K個のパディングシンボルのISIは、K,K+1,K+2,...,K′−1であり、リペアシンボルのISIは、K′,K′+1,K′+2,...である。符号化および復号のためにISIを使用することは、拡張ソースブロックのパディングシンボルが拡張ソースブロックの他のソースシンボルと同様に扱われることを可能にし、リペアシンボルの所与のプレフィックスが、Kとは無関係に、拡張ソースブロック中のソースシンボルの所与の数K′と一貫しているように生成されることを可能にする。
ESIとISIとの間の関係は単純である。元のK個のソースシンボルのESIとISIは同じであり、K′−K個のパディングシンボルはISIを有するが、(パディングシンボルは送られることも受信されることもないシンボルであるので)対応するESIを有せず、リペアシンボルISIは、単にリペアシンボルESI+K′−Kである。送られ、受信される符号化シンボルを識別するために使用されるESI間の変換、ならびに符号化および復号のために使用される対応するISI、ならびに符号化および復号のために使用されるパディングシンボルを用いた拡張ソースブロックの適切なパディングは、RaptorQエンコーダ/デコーダ中のパディング機能の責任である。
5.3.2. 符号化の概観
システマティックRaptorQエンコーダを使用して、拡張ソースブロックC′に配置されたK個のソースシンボルからなるソースブロックから任意の数のリペアシンボルを生成する。図4に符号化の概観を示す。
符号化の第1のステップは、シンボルの総数K′が、セクション5.6に記載されている値のうちの1つになるように、0個以上のパディングシンボルを追加することによって拡張ソースブロックを構成することである。各パディングシンボルは、各オクテットの値が0であるT個のオクテットからなる。K′は、K以上である、セクション5.6のテーブルからのK′の最小値として選択されなければならない。
Figure 2013502849
C′[0],...,C′[K−1]は、K個のソースシンボルを示すとする。
C′[K],...,C′[K′−1]は、すべて0ビットに設定されるK′−K個のパディングシンボルを示すとする。すると、C′[0],...,C′[K′−1]は、符号化および復号が実行される拡張ソースブロックのシンボルである。
この説明では、以降、これらのパディングシンボルを追加のソースシンボルと見なし、そのように呼ぶ。しかしながら、これらのパディングシンボルは符号化シンボルの一部ではなく、すなわち、それらは符号化の一部として送られない。受信機において、K′の値はKに基づいて計算され得、次いで、受信機は、K個のソースシンボルのソースブロックの末尾にK′−K個のパディングシンボルを挿入し、受信された符号化シンボルからソースブロックの残りのK個のソースシンボルを復元することができる。
符号化の第2のステップは、K′個のソースシンボルからL>K′個の中間シンボルを生成することである。このステップでは、セクション5.3.5.4に記載されているTuple[]生成器を使用して、K′個のソースタプル(d[0],a[0],b[0],d1[0],a1[0],b1[0]),...,(d[K′−1],a[K′−1],b[K′−1],d1[K′−1],a1[K′−1],b1[K′−1])が生成される。K′個のソースタプルとK′個のソースシンボルに関連するISIとを使用して、逆符号化プロセスを使用してソースシンボルからL個の中間シンボルC[0],...,C[L−1]が判断される。このプロセスはRaptorQ復号プロセスによって実現され得る。
いくつかの「プリコーディング関係」がL個の中間シンボル内で成り立たなければならない。セクション5.3.3.3において、これらの関係について説明する。セクション5.3.3.4において、ソースシンボルから中間シンボルがどのように生成されるかについて説明する。
中間シンボルが生成されると、リペアシンボルが生成され得る。ISI X>K′をもつリペアシンボルについて、セクション5.3.5.4に記載されているTuple[]生成器を使用して、非負整数のタプル(d,a,b,d1,a1,b1)が生成され得る。次いで、(d,a,b,d1,a1,b1)タプルとISI Xとを使用して、セクション5.3.5.3に記載されているEnc[]生成器を使用して中間シンボルから対応するリペアシンボルが生成される。したがって、このリペアシンボルの対応するESIはX−(K′−K)である。拡張ソースブロックのソースシンボルも同じプロセスを使用して生成され得、すなわち、任意のX<K′について、このプロセスを使用して生成されるシンボルはC′[X]と同じ値を有することに留意されたい。
5.3.3. 第1の符号化ステップ:中間シンボル生成
5.3.3.1. 概略
この符号化ステップは、ソースシンボルC′[0],...,C′[K′−1]からL個の中間シンボルC[0],...,C[L−1]を生成するためのプリコーディングステップであり、L>K′は、セクション5.3.3.3において定義されている。中間シンボルは、以下の制約の2つのセットによって一意に定義される。
1. 中間シンボルは、ソースシンボルタプルのセットによって、およびソースシンボルのISIによってソースシンボルに関係付けられる。セクション5.3.5.4に記載されているTuple[]生成器を使用するソースシンボルタプルの生成は、セクション5.3.3.2において定義されている。
2. いくつかのプリコーディング関係が中間シンボル自体の内で成り立つ。これらはセクション5.3.3.3において定義されている。
さらに、L個の中間シンボルの生成はセクション5.3.3.4において定義されている。
5.3.3.2. ソースシンボルタプル
K′個のソースシンボルの各々は、0≦X<K′の場合、ソースシンボルタプル(d[X],a[X],b[X],d1[X],a1[X],b1[X])に関連付けられる。ソースシンボルタプルは、セクション5.3.5.4において定義されているタプル生成器を使用して、次のように判断される。
0≦X<K′である各Xについて、
(d[X],a[X],b[X],d1[X],a1[X],b1[X])=Tuple[K,X]
5.3.3.3. プリコーディング関係
L個の中間シンボルの間のプリコーディング関係は、中間シンボルのS+H個の線形結合のセットが0になる必要があることによって定義される。S個のLDPCシンボルおよびH個のHDPCシンボルがあり、したがって、L=K′+S+Hである。L個の中間シンボルの別の区分は、W個のLTシンボルの1つのセットとP個のPIシンボルの別のセットとの2つのセットであり、したがって、同じくL=W+Pである。P個のPIシンボルは、符号化プロセスにおいてW個のLTシンボルとは別様に扱われる。P個のPIシンボルは、H個のHDPCシンボルと、U=P−H個の他のK′個の中間シンボルのセットとからなる。W個のLTシンボルは、S個のLDPCシンボルと、W−S個の他のK′個の中間シンボルとからなる。これらのパラメータの値は、以下で説明するようにK′から判断され、H(K′)、S(K′)、およびW(K′)は、セクション5.6の表2から導出される。
次のように仮定する。
○ S=S(K′)
○ H=H(K′)
○ W=W(K′)
○ L=K′+S+H
○ P=L−W
○ P1は、P以上の最小素数を示す。
○ U=P−H
○ B=W−S
○ C[0],...,C[B−1]は、LTシンボルであるがLDPCシンボルではない中間シンボルを示す。
○ C[B],...,C[B+S−1]は、LTシンボルでもあるS個のLDPCシンボルを示す。
○ C[W],...,C[W+U−1]は、PIシンボルであるがHDPCシンボルではない中間シンボルを示す。
○ C[L−H],...,C[L−1]は、PIシンボルでもあるH個のHDPCシンボルを示す。
LDPC関係と呼ばれる、プリコーディング関係の第1のセットについて以下で説明し、これは、このプロセスの終了時にシンボルD[0],...,D[S−1]のセットがすべて0であることを必要とする。
○ シンボルD[0]=C[B],...,D[S−1]=C[B+S−1]を初期化する。
○ i=0,...,B−1に対して、以下を実行する。
・ a=1+floor(i/S)
・ b=i%S
・ D[b]=D[b]+C[i]
・ b=(b+a)%S
・ D[b]=D[b]+C[i]
・ b=(b+a)%S
・ D[b]=D[b]+C[i]
○ i=0,...,S−1に対して、以下を実行する
・ a=i%P
・ b=(i+1)%P
・ D[i]=D[i]+C[W+a]+C[W+b]
シンボルの加算は、セクション5.7において指定されているように行われるものであることを想起されたい。
上記のアルゴリズムにおいて定義されているLDPC関係は線形であり、したがって、次式を満たすようなS×B行列G_LDPC,1およびS×P行列G_LDPC,2が存在することに留意されたい。
G_LDPC,1*Transpose[(C[0],....,C[B−1])]+G_LDPC,2*Transpose(C[W],...,C[W+P−1])+Transpose[(C[B],...,C[B+S−1])]=0
(行列G_LDPC,1は、上記のアルゴリズム中の第1のループによって定義されており、G_LDPC,2は、第2のループから推論され得る。)
中間シンボルC[0],...,C[L−1]の間の関係の第2のセットはHDPC関係であり、それらは次のように定義される。
次のように仮定する。
○ αは、セクション5.7において定義されているように、整数2によって表されるオクテットを示す。
○ MTは、オクテットのH×(K′+S)行列を示し、j=0,...,K′+S−2の場合、i=Rand[j+1,6,H]またはi=(Rand[j+1,6,H]+Rand[j+1,7,H−1]+1)%Hであれば、エントリMT[i,j]は整数1によって表されるオクテットであり、iのすべての他の値について、MT[i,j]は0要素であり、j=K′+S−1の場合、i=0,...,H−1について、MT[i,j]=α^^iである。
○ GAMMAは、オクテットの(K′+S)×(K′+S)行列を示し、
GAMMA[i,j]=
i≧jの場合は、α^^(i−j)であり、
他の場合は、0である。
すると、第1のK′+S個の中間シンボルC[0],...,C[K′+S−1]とH個のHDPCシンボルC[K′+S],...,C[K′+S+H−1]と間の関係は次式によって与えられる。
Transpose[C[K′+S],...,C[K′+S+H−1]]+MT*GAMMA*Transpose[C[0],...,C[K′+S−1]]=0
上式で、「*」は、オクテットの行列とシンボルの行列(特にシンボルの列ベクトル)との乗算を定義するためにオクテット乗算を利用する標準行列乗算を表し、「+」は、オクテットベクトルに対する加算を示す。
5.3.3.4. 中間シンボル
5.3.3.4.1. 定義
K′個のソースシンボルC′[0],C′[1],...,C′[K′−1]を仮定すれば、L個の中間シンボルC[0],C[1],...,C[L−1]は、以下の条件を満たす一意に定義されたシンボル値である。
1. K′個のソースシンボルC′[0],C′[1],...,C′[K′−1]はK′個の制約を満たす。
0≦X<K′であるすべてのXについて、C′[X]=Enc[K′,(C[0],...,C[L−1]),(d[X],a[X],b[X],d1[X],a1[X],b1[X])]
上式で、(d[X],a[X],b[X],d1[X],a1[X],b1[X]))=Tuple[K′,X]であり、Tuple[]はセクション5.3.5.4において定義されており、Enc[]はセクション5.3.5.3に記載されている。
2. L個の中間シンボルC[0],C[1],...,C[L−1]は、セクション5.3.3.3において定義されているプリコーディング関係を満たす。
5.3.3.4.2. 中間シンボルの計算のための例示的な方法
このセクションでは、セクション5.3.3.4.1の制約を満たすL個の中間シンボルC[0],C[1],...,C[L−1]の計算のための可能な方法について説明する。
L個の中間シンボルは次のように計算され得る。
次のように仮定する。
○ Cは、L個の中間シンボルC[0],C[1],...,C[L−1]の列ベクトルを示す。
○ Dは、S+H個の0シンボルと、それに続くK′個のソースシンボルC′[0],C′[1],...,C′[K′−1]とからなる列ベクトルを示す。
すると、上記の制約は、次式を満たすようなオクテットのL×L行列Aを定義する。
A*C=D
行列Aは次のように構成され得る。
次のように仮定する。
○ G_LDPC,1およびG_LDPC,2は、セクション5.3.3.3において定義されているS×B行列およびS×P行列である。
○ G_HDPCは、次式を満たすようなH×(K′+S)行列である。
G_HDPC*Transpose(C[0],...,C[K′+S−1])=Transpose(C[K′+S],...,C[L−1])
すなわち、G_HDPC=MT*GAMMA
○ I_Sは、S×S単位行列である。
○ I_Hは、H×H単位行列である。
○ G_ENCは、次式を満たすようなK′×L行列である。
G_ENC*Transpose[(C[0],...,C[L−1])]=Transpose[(C′[0],C′[1],...,C′[K′−1])]
すなわち、C[j]が、Enc[K′,(C[0],...,C[L−1]),(d[i],a[i],b[i],d1[i],a1[i],b1[i])]を生成するために合計されるシンボル中に含まれる場合のみ、G_ENC[i,j]=1であり、他の場合は、G_ENC[i,j]=0である。
すると、次のようになる。
○ Aの最初のS行は、G_LDPC,1|I_S|G_LDPC,2に等しい。
○ Aの次のH行は、G_HDPC|I_Hに等しい。
○ Aの残りのK′行は、G_ENCに等しい。
行列Aを以下の図(図5)に示す。
Figure 2013502849
次いで、中間シンボルは次のように計算され得る。
C=(A^^−1)*D
任意のK′について、行列Aが最大階数を有し、したがって可逆であるようなソースタプルが生成される。この計算は、L個の中間シンボルC[0],C[1],...,C[L−1]を生成するために、K′個のソースシンボルC′[0],C′[1],...,C′[K′−1]にRaptorQ復号プロセスを適用することによって実現され得る。
ソースシンボルから中間シンボルを効率的に生成するために、セクション5.4で説明するデコーダ実装形態など、効率的なデコーダ実装形態を使用することが推奨される。
5.3.4. 第2の符号化ステップ:符号化
第2の符号化ステップでは、タプル(d,a,b,d1,a1,b1)=Tuple[K′,X]を使用して、L個の中間シンボルC[0],C[1],...,C[L−1]に、セクション5.3.5.3において定義されている生成器Enc[K′,(C[0],C[1],...,C[L−1]),(d,a,b,d1,a1,b1)]を適用することによって、ISI X(X≧K′)をもつリペアシンボルが生成される。
5.3.5. 生成器
5.3.5.1. 乱数発生器
乱数発生器Rand[y,i,m]は次のように定義され、yは非負整数であり、iは256よりも小さい非負整数であり、mは正の整数であり、生成される値は0とm−1との間の整数である。V0、V1、V2およびV3をセクション5.5に与えられているアレイとする。
次のように仮定する。
○ x0=(y+i)mod2^^8
○ x1=(floor(y/2^^8)+i)mod2^^8
○ x2=(floor(y/2^^16)+i)mod2^^8
○ x3=(floor(y/2^^24)+i)mod2^^8
すると、次のようになる。
Rand[y,i,m]=(V0[x0]^V1[x1]^V2[x2]^V3[x3])%m
5.3.5.2. 度数生成器
度数生成器Deg[v]は次のように定義され、vは、2^^20=1048576よりも小さい非負整数である。vを仮定すれば、f[d−1]≦v<f[d]であるような表1中のインデックスdを見つけ、Deg[v]=min(d,W−2)を設定する。Wは、セクション5.3.3.3に記載されているように、K′から導出されることを想起されたい。
Figure 2013502849
5.3.5.3. 符号化シンボル生成器
符号化シンボル生成器Enc[K′,(C[0],C[1],...,C[L−1]),(d,a,b,d1,a1,b1)]は以下の入力をとる。
○ K′は、拡張ソースブロックのソースシンボルの数である。L、W、B、S、PおよびP1は、セクション5.3.3.3に記載されているように、K′から導出されるものとする。
○ (C[0],C[1],...,C[L−1])は、セクション5.3.3.4に記載されているように生成されたL個の中間シンボル(サブシンボル)のアレイである。
○ (d,a,b,d1,a1,b1)は、セクション5.3.5.4において定義されているタプル生成器を使用してISI Xから判断されたソースタプルであり、ただし、
・ dは、符号化シンボルLT度数を示す正の整数である。
・ aは、両端の値を含む1とW−1との間の正の整数である。
・ bは、両端の値を含む0とW−1との間の非負整数である。
・ d1は、符号化シンボルPI度数を示す、値2または3のいずれかを有する正の整数である。
・ a1は、両端の値を含む1とP1−1との間の正の整数である。
・ b1は、両端の値を含む0とP1−1との間の非負整数である。
符号化シンボル生成器は、以下のアルゴリズムに従って、単一の符号化シンボルを(result(結果)と呼ばれる)出力として生成する。
○ result=C[b]
○ j=1,...,d−1に対して、以下を実行する。
・ b=(b+a)%W
・ result=result+C[b]
○ (b1≧P)である間、b1=(b1+a1)%P1を実行する。
○ result=result+C[W+b1]
○ j=1,...,d1−1に対して、以下を実行する。
・ b1=(b1+a1)%P1
・ (b1≧P)である間、b1=(b1+a1)%P1を実行する。
・ result=result+C[W+b1]
○ resultを戻す。
5.3.5.4. タプル生成器
タプル生成器Tuple[K′,X]は以下の入力をとる。
○ K′ − 拡張ソースブロック中のソースシンボルの数
○ X − ISI
次のように仮定する。
○ Lは、セクション5.3.3.3に記載されているように、K′から判断される。
○ J=J(K′)は、セクション5.6の表2において定義されているように、K′に関連するシステマティックインデックスである。
タプル生成器の出力は、タプル(d,a,b,d1,a1,b1)であり、次のように判断される。
○ A=53591+J*997
○ (A%2==0)である場合、{A=A+1}
○ B=10267*(J+1)
○ y=(B+X*A)%2^^32
○ v=Rand[y,0,2^^20]
○ d=Deg[v]
○ a=1+Rand[y,1,W−1]
○ b=Rand[y,2,W]
○ (d<4)である場合、{d1=2+Rand[X,3,2]}、そうでない場合、{d1=2}
○ a1=1+Rand[X,4,P1−1]
○ b1=Rand[X,5,P1]
5.4. 例示的なFECデコーダ
5.4.1. 概略
このセクションでは、この仕様において導入されるRaptorQ符号のための効率的な復号アルゴリズムについて説明する。各受信された符号化シンボルは中間シンボルの既知の線形結合であることに留意されたい。
したがって、各受信された符号化シンボルは中間シンボルの間の一次方程式を与え、これは、中間シンボルの間の既知の線形プリコーディング関係とともに連立一次方程式を与える。したがって、連立一次方程式を解くためのアルゴリズムは、中間シンボルを正常に復号することができ、したがってソースシンボルを正常に復号することができる。しかしながら、選定されるアルゴリズムは復号の計算効率に対して大きな影響を有する。
5.4.2. 拡張ソースブロックの復号
5.4.2.1. 概略
デコーダは、シンボルサイズTと、ソースブロック中のシンボルの数Kと、拡張ソースブロック中のソースシンボルの数K′とを含む、復号すべきソースブロックの構造を知っていると仮定する。
セクション5.3で説明したアルゴリズムから、RaptorQデコーダは、中間シンボルの総数L=K′+S+Hを計算し、復号されるべき拡張ソースブロックから中間シンボルがどのように生成されたかを判断することができる。この説明では、復号されるべき拡張ソースブロックの受信された符号化シンボルがデコーダに渡されると仮定する。さらに、そのような符号化シンボルごとに、その和が符号化シンボルに等しい中間シンボルの数およびセットがデコーダに渡されると仮定する。パディングシンボルを含むソースシンボルの場合、セクション5.3.3.2で説明したソースシンボルタプルは、その和が各ソースシンボルを与える中間シンボルの数およびセットを示す。
N≧K′を、拡張ソースブロックのパディングシンボルを含む、復号のために使用されるべき受信された符号化シンボルの数とし、M=S+H+Nとする。すると、セクション5.3.3.4.2の表記法によれば、A*C=Dが得られる。
拡張ソースブロックを復号することは、既知のAおよびDからCを復号することと等価である。Cは、Aの階数がLである場合のみ復号され得ることは明らかである。Cが復号されると、ソースシンボルタプルを使用して、各消失したソースシンボルを取得するために合計されなければならない中間シンボルの数およびセットを判断することによって、消失したソースシンボルが取得され得る。
Cの復号における第1のステップは、復号スケジュールを形成することである。このステップでは、Aは、(行演算と行および列の並べ替えとを使用する)ガウス消去法を使用して、M−L行を廃棄した後に、L×L単位行列に変換される。復号スケジュールは、ガウス消去法プロセス中の行演算と行および列の並べ替えとのシーケンスからなり、Aのみに依存し、Dには依存しない。
DからのCの復号は復号スケジュールの形成と同時に行うことができるか、または復号は復号スケジュールに基づいて後で行うことができる。
復号スケジュールとCの復号との間の対応は以下のとおりである。初めに、c[0]=0,c[1]=1,...,c[L−1]=L−1およびd[0]=0,d[1]=1,...,d[M−1]=M−1とする。
○ 復号スケジュールにおいてAの行iの倍数βが行i′に加算されるたびに、復号プロセスにおいてシンボルβ*D[d[i]]がシンボルD[d[i′]]に加算される。
○ Aの行iにオクテットβが乗算されるたびに、復号プロセスにおいてシンボルD[d[i]]にもβが乗算される。
○ 復号スケジュールにおいて行iが行i′と交換されるたびに、復号プロセスにおいてd[i]の値がd[i′]の値と交換される。
○ 復号スケジュールにおいて列jが列j′と交換されるたびに、復号プロセスにおいてc[j]の値がc[j′]の値と交換される。
この対応から、拡張ソースブロックの復号におけるシンボルに対する演算の総数がガウス消去法における(交換でない)行演算の数であることは明らかである。Aは、ガウス消去法後の、および最後のM−L行を廃棄した後のL×L単位行列であるので、正常な復号の終了時に、L個のシンボルD[d[0]],D[d[1]],...,D[d[L−1]]がL個のシンボルC[c[0]],C[c[1]],...,C[c[L−1]]の値であることは明らかである。
復号スケジュールを形成するためにガウス消去法が実行される順序は、復号が成功するか否かとは関係しない。しかしながら、復号の速度はガウス消去法が実行される順序に大きく依存する。(さらに、ここでは説明しないが、Aの疎表現を維持することが重要である)。このセクションでは、以降、ガウス消去法が実行され得る比較的効率的な順序について説明する。
5.4.2.2. 第1の段階
ガウス消去法の第1の段階では、行列Aは概念的に部分行列に区分され、さらに行列Xが作成される。この行列は、Aと同数の行および列を有し、第1の段階の間中、下三角行列になる。この段階の開始時に、行列Aは行列Xにコピーされる。
部分行列サイズは、それぞれ0およびPIシンボルの数Pに初期化される非負整数iおよびuによってパラメータ化される。Aの部分行列は以下のとおりである。
1. 最初のi行と最初のi列との交差によって定義される部分行列I。これは、この段階における各ステップの終了時の単位行列である。
2. 最初のi行と、最初のi列および最後のu列以外のすべての列との交差によって定義される部分行列。この部分行列のすべてのエントリは0である。
3. 最初のi列と、最初のi行以外のすべての列との交差によって定義される部分行列。この部分行列のすべてのエントリは0である。
4. すべての行と最後のu列との交差によって定義される部分行列U。
5. 最初のi列および最後のu列以外のすべての列と、最初のi行以外のすべての行との交差によって形成される部分行列V。
図6にAの部分行列を示す。第1の段階の開始時に、V=Aである。各ステップにおいて、Aの行が選定される。
Figure 2013502849
Aのどの行が選定されるかを判断する際に、Vの構造によって定義される以下のグラフが使用される。Vと交差する列はグラフ中のノードであり、Vにおいて厳密に2つの非ゼロエントリを有し、HDPC行でない行は、その2つの1の位置で2つの列(ノード)を接続するグラフのエッジである。このグラフ中の構成要素は、グラフ中のノード/エッジの各ペア間にパスがあるような、ノード(列)およびエッジ(行)の最大セットである。構成要素のサイズは構成要素中のノード(列)の数である。
第1の段階では、最高でもL個のステップがある。i+u=Lであるとき、すなわち、VおよびVの上の全0部分行列が消滅したときにこの段階は正常に終了し、Aは、Iと、Iの下の全0部分行列と、Uとからなる。Vが消滅する前のあるステップにおいて、そのステップにおいて選定すべきV中の非ゼロ行がない場合、この段階は復号失敗で不成功に終わる。各ステップにおいて、Aの行は次のように選定される。
○ Vのすべてのエントリが0である場合、行は選定されず、復号は失敗する。
○ rを、Aの少なくとも1つの行がVにおいて厳密にr個の1を有するような最小整数とする。
・ r!=2である場合、すべての非HDPC行が処理されるまでHDPC行を選定すべきでないことを除いて、すべてのそのような行の中で元の最小度数をもつ、Vにおいて厳密にr個の1をもつ行を選定する。
・ r=2である場合、Vによって定義される、上記で説明したグラフ中の最大サイズ構成要素の一部である、Vにおいて厳密に2つの1をもつ任意の行を選定する。
このステップにおいて行が選定された後、選定された行がVと交差する最初の行であるように、Vと交差するAの最初の行は選定された行と交換される。Vと交差するAの列は、選定された行におけるr個の1のうちの1つがVの最初の列に現れるように、および残りのr−1個の1がVの最後の列に現れるように並べ替えられる。同じ行および列演算が行列Xに対しても実行される。次いで、選定された行の適切な倍数が、Vの最初の列に非ゼロエントリを有する、選定された行の下のAのすべての他の行に加算される。詳細には、選定された行の下の行がVの最初の列にエントリβを有し、選定された行がVの最初の列にエントリαを有する場合、Vの最初の列に0値を残すために、選定された行を乗算したβ/αがこの行に加算される。最後に、iは1だけ増分され、uはr−1だけ増分され、ステップは完了する。
影響を受けた行自体が復号プロセス中に選定されるまで、上記で特定した行演算が実際に実行されなければ、効率が改善され得ることに留意されたい。これは、復号プロセスにおいて最終的に使用されない行に対する行演算の処理を回避し、特に、実際に必要とされるまで、β!=1である行を回避する。さらに、HDPC行に必要な行演算は、セクション5.3.3.3で説明したアルゴリズムを使用することによって、1つのプロセスにおいてすべてのそのような行に対して実行され得る。
5.4.2.3. 第2の段階
この時点で、Xが下三角形状を有するように、最初のi行およびi列の外側のXのすべてのエントリが廃棄される。次にXがi行i列を有するように、Xの最後のi行およびi列が廃棄される。部分行列Uは、最初のi行U_upper、および残りのM−i行U_lowerにさらに区分される。第2の段階においてU_lowerに対してガウス消去法を実行して、U_lowerの階数がuよりも小さいことを判断する(復号失敗)か、またはU_lowerを最初のu行が単位行列である行列に変換する(第2の段階の成功)。このu×u単位行列をI_uと呼ぶ。U_lower−I_uと交差するAのM−L行が廃棄される。この段階の後、AはL行およびL列を有する。
5.4.2.4. 第3の段階
第2の段階の後、L×L単位行列へのAの変換を完了するために0で埋める必要があるAの唯一の部分はU_upperである。部分行列U_upperの行iの数は、概して、U_upperの列uの数よりもはるかに大きい。その上、この時点で、行列U_upperは一般に密であり、すなわち、この行列の非ゼロエントリの数は大きい。この行列を疎形式に簡約するために、行列U_lowerを取得するために実行される演算のシーケンスを反転させる必要がある。この目的で、行列Xに、Aの最初のi行からなるAの部分行列が乗算される。この演算の後、最初のi行とi列との交差からなるAの部分行列はXに等しいが、行列U_upperは疎形式に変換される。
5.4.2.5. 第4の段階
U_upperの最初のi行の各々に対して次の演算を行う。行が位置jにおいて非ゼロエントリを有する場合、およびその非ゼロエントリの値がbである場合、この行にI_uの行jをb回加算する。このステップの後、最初のi行とi列との交差からなるAの部分行列はXに等しく、部分行列U_upperは0からなり、最後のu行と最初のi列との交差からなる部分行列は0からなり、最後のu行およびu列からなる部分行列は行列I_uである。
5.4.2.6. 第5の段階
1からiまでのjに対して以下の演算を実行する。
1. A[j,j]が1でない場合、Aの行jをA[j,j]で除算する。
2. 1からj−1までのlに対して、A[j,l]が0でない場合、Aの行lを乗算したA[j,l]をAの行jに加算する。
この段階の後、AはL×L単位行列であり、完全な復号スケジュールが正常に形成されている。次いで、復号スケジュールに基づいて、中間シンボルを復元するために、既知の符号化シンボルを合計することからなる対応する復号が実行され得る。すべてのソースシンボルに関連するタプルが、セクション5.3.3.2に従って計算される。受信されたソースシンボルのタプルは復号において使用される。消失したソースシンボルのタプルは、消失したソースシンボルを復元するために、どの中間シンボルが合計される必要があるかを判断するために使用される。
5.5. 乱数
セクション5.3.5.1において使用されている4つのアレイV0、V1、V2およびV3を以下で与える。4つのアレイの各々の中に256個のエントリがある。各アレイへのインデックス付けは0で開始し、エントリは32ビット符号なし整数である。
5.5.1. テーブルV0
Figure 2013502849
5.5.2. テーブルV1
Figure 2013502849
5.5.3. テーブルV2
Figure 2013502849
5.5.4. テーブルV3
Figure 2013502849
5.6. システマティックインデックスおよび他のパラメータ
以下の表2は、K′のサポートされた値を指定する。この表はまた、K′の各サポートされた値について、システマティックインデックスJ(K′)と、HDPCシンボルの数H(K′)と、LDPCシンボルの数S(K′)と、LTシンボルの数W(K′)とを指定する。K′の各値について、S(K′)およびW(K′)の対応する値は素数である。
システマティックインデックスJ(K′)は、ソースシンボルタプルのセット(d[0],a[0],b[0],d1[0],a1[0],b1[0]),...,(d[K′−1],a[K′−1],b[K′−1],d1[K′−1],a1[K′−1],b1[K′−1])が、L個の中間シンボルが一意に定義されるようなものであり、すなわち、図6中の行列Aが最大階数を有し、したがって可逆であるようなものであるという特性を有するように設計される。
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
Figure 2013502849
5.7. オクテット、シンボルおよび行列を用いる演算
5.7.1. 概略
このセクションでは、以降、ソースシンボルから符号化シンボルを生成するため、および符号化シンボルからソースシンボルを生成するために使用される算術演算について説明する。
数学的に、オクテットは有限フィールドの要素、すなわち、256個の要素をもつ有限フィールドGF(256)の要素として考えられ得、したがって、加算演算および乗算演算と、両方の演算に対する恒等元および逆元とが定義される。行列演算およびシンボル演算は、オクテットに対する算術演算に基づいて定義される。これは、有限フィールドの基礎をなす数学を理解する必要なしに、これらの算術演算の完全実装を可能にする。
5.7.2. オクテットに対する算術演算
オクテットは、通常の方法で範囲0〜255内の非負整数にマッピングされ、B[7]が最上位ビットであり、B[0]が最下位ビットである、シンボルB[7],B[6],B[5],B[4],B[3],B[2],B[1],B[0]からのデータの単一のオクテットは、整数i=B[7]*128+B[6]*64+B[5]*32+B[4]*16+B[3]*8+B[2]*4+B[1]*2+B[0]にマッピングされる。
2つのオクテットuおよびvの加算はXOR演算として定義され、すなわち、次式のとおりである。
u+v=u^v
減算は同様に定義され、したがって、同じく次式が得られる。
u−v=u^v
0要素(加法的単位元)は、整数0によって表されるオクテットである。uの加法逆元は単にuであり、すなわち、次式のとおりである。
u+u=0
2つのオクテットの乗算は、それぞれセクション5.7.3およびセクション5.7.4に与えられている2つのテーブルOCT_EXPおよびOCT_LOGによって定義される。テーブルOCT_LOGは(0要素以外の)オクテットを非負整数にマッピングし、OCT_EXPは非負整数をオクテットにマッピングする。2つのオクテットuおよびvについて、次のように定義する。
u*v=
uまたはvのいずれかが0である場合、0
他の場合、OCT_EXP[OCT_LOG[u]+OCT_LOG[v]]
上式の右辺の「+」は、それの引数が通常の整数であるので、通常の整数加算であることに留意されたい。
v!=0である、2つのオクテットuおよびvの除算u/vは、次のように定義される。
u/v=
u==0である場合、0
他の場合、OCT_EXP[OCT_LOG[u]−OCT_LOG[v]+255]
1要素(乗法単位元)は、整数1によって表されるオクテットである。あるオクテットについて、0要素でないu、すなわち、uの乗法逆元は次のようになる。
OCT_EXP[255−OCT_LOG[u]]
αによって示されるオクテットは、整数表現2をもつオクテットである。iが非負整数0≦i<256である場合、次式が得られる。
α^^i=OCT_EXP[i]
5.7.3. テーブルOCT_EXP
テーブルOCT_EXPは510個のオクテットを含んでいる。インデックス付けは0で開始し、509にまでわたり、エントリは以下の正の整数表現をもつオクテットである。
Figure 2013502849
5.7.4. テーブルOCT_LOG
テーブルOCT_LOGは255個の非負整数を含んでいる。テーブルは、整数として解釈されるオクテットによってインデックス付けされる。整数0によって表される、0要素に対応するオクテットはインデックスとして除外され、したがって、インデックス付けは1で開始し、255にまでわたり、エントリは以下のとおりである。
Figure 2013502849
5.7.5. シンボルに対する演算
シンボルに対する演算は、この仕様における長さTのオクテットのベクトルに対する演算と同じセマンティクスを有する。したがって、UおよびVが、それぞれオクテットu[0],...,u[T−1]およびv[0],...,v[T−1]によって形成される2つのシンボルである場合、シンボルU+Vの和は、オクテットの構成要素単位の和であると定義され、すなわち、次式を満たすようなオクテットd[0],...,d[T−1]によって形成されるシンボルDに等しい。
d[i]=u[i]+v[i],0≦i<T
さらに、βがオクテットである場合、積β*Uは、Uの各オクテットにβを乗算することによって取得されるシンボルDであると定義され、すなわち、次式のとおりである。
d[i]=β*u[i],0≦i<T
5.7.6. 行列に対する演算
この仕様におけるすべての行列は、オクテットであるエントリを有し、したがって、行列演算および定義は、基礎をなすオクテット算術、たとえば、行列、行列階数および行列反転に対する演算に関して定義される。
5.8. 対応デコーダの要件
RaptorQ対応デコーダが、ソースブロックの再構成のために、セクション5.3のエンコーダ仕様に従って生成された符号化シンボルの数学的に十分なセットを受信した場合、そのようなデコーダはソースブロック全体を復元すべきである。
RaptorQ対応デコーダは、セクション5.6の表2中のK′のすべての値について、K′個のソースシンボルをもつソースブロックに対して以下の復元特性を有するものとする。
1. デコーダが、可能なESIの範囲から無関係に一様ランダムに選定された対応するESIをもつ、セクション5.3のエンコーダ仕様に従って生成されたK′個の符号化シンボルを受信した場合、平均して、デコーダは、ソースブロック全体を復元することに100回のうち最高でも1回失敗する。
2. デコーダが、可能なESIの範囲から無関係に一様ランダムに選定された対応するESIをもつ、セクション5.3のエンコーダ仕様に従って生成されたK′+1個の符号化シンボルを受信した場合、平均して、デコーダは、ソースブロック全体を復元することに10000回のうち最高でも1回失敗する。
3. デコーダが、可能なESIの範囲から無関係に一様ランダムに選定された対応するESIをもつ、セクション5.3のエンコーダ仕様に従って生成されたK′+2個の符号化シンボルを受信した場合、平均して、デコーダは、ソースブロック全体を復元することに1000000回のうち最高でも1回失敗する。
セクション5.4において規定されている例示的なFECデコーダは、以下の両方の要件を満たすことに留意されたい。
1. セクション5.3のエンコーダ仕様に従って生成された符号化シンボルの数学的に十分なセットを受信する限り、ソースブロックを再構成することができる。
2. 上記の必須の復元特性を満たす。
6. セキュリティ考慮事項
データ配信は、受信機によって正当なものとして受け付けられる破損したパケットを送る攻撃者によるサービス拒否攻撃を受けることがある。破損したパケットはマルチキャストツリーのルートに近いセッションに注入され得、その場合、破損したパケットは多くの受信機に届くことになるので、これはマルチキャスト配信に関して特に問題である。符号化データを含んでいる1つの破損したパケットの使用でさえ、完全に破損し使用不可能であるオブジェクトの復号に結果し得るので、これは、この文書で説明した符号が使用されるときに特に問題である。したがって、オブジェクトをアプリケーションに配信する前に、ソース認証および完全性検査を復号されたオブジェクトに適用することが推奨される。たとえば、オブジェクトのSHA−1ハッシュ[SHA1]が送信の前に付加され得、SHA−1ハッシュは、オブジェクトが復号された後、そのオブジェクトがアプリケーションに配信される前に計算され、検査される。ソース認証は、たとえば、ハッシュ値に加えて計算される、受信機によって検証可能なデジタル署名を含めることによって行われるべきである。また、TESLA[RFC4082]などのパケット認証プロトコルを使用して、着信時に破損したパケットを検出し、廃棄することが推奨される。この方法はまた、ソース認証を行うために使用され得る。さらに、不正エージェントが破損したパケットをマルチキャストツリーデータ経路に首尾よく注入する可能性を制限するために、送信側から受信機への経路に沿ってすべてのネットワークルータおよびスイッチにおいて逆経路転送検査を可能にすることが推奨される。
別のセキュリティ問題は、セッション記述中の一部のFEC情報が帯域外受信機によって取得され得ること、および、セッション記述がねつ造されたかまたは破損している場合、受信機は、受信されたパケットからコンテンツを復号するための正しいプロトコルを使用しないことである。これらの問題を回避するために、たとえば、ソース認証を使用して、受信機が許可された送信側からの正当なセッション記述のみを受け付けること保証することによって、受信機が誤ったセッション記述を受け付けることを防ぐための対策をとることが推奨される。
7. IANA考慮事項
FEC符号化IDとFECインスタンスIDとの値はIANA登録の対象となる。この文書に適用されるIANA考慮事項に関する一般的なガイドラインについては、[RFC5052]を参照されたい。この文書は、「RaptorQ符号」にietf:rmt:fec:符号化名前空間の下の完全指定FEC符号化ID6(tbc)を割り当てる。
8. 謝辞
Ranganathan(Ranga)Krishnanに謝意を表する。Ranga Krishnanは、実装詳細の発見および解決において、およびシステマティックインデックスの発見において大いに支えとなった。さらに、Habeeb Mohiuddin MohammedおよびAntonios Pitarokoilis(両者ともミュンヘン工科大学(TUM))およびAlan Shinsatoは、この仕様に関する問題を明確化することおよび解決することに役立ったRaptorQエンコーダ/デコーダの2つの独立した実装を行った。
9. 参考文献
9.1. 必須参考文献
[RFC2119] Bradner,S.、「Key words for use in RFCs t○ Indicate Requirement Levels」、BCP14、RFC2119、1997年3月
[RFC4082] Perrig,A.、Song,D.、Canetti,R.、Tygar,J.、およびB.Briscoe、「Timed Efficient Stream Loss−Tolerant Authentication (TESLA): Multicast Source Authentication Transform Introduction」、RFC4082、2005年6月
[SHA1] 「Secure Hash Standard」、Federal Information Processing Standards Publication(FIPS PUB)180−1、2005年4月
[RFC5052] Watson,M.、Luby,M.、およびL.Vicisano、「Forward Error Correction (FEC) Building Block」、RFC5052、2007年8月
9.2. 非必須参考文献
[RFC3453] Luby,M.、Vicisano,L.、Gemmell,J.、Rizzo,L.、Handley,M.、およびJ.Crowcroft、「The Use of Forward Error Correction (FEC) in Reliable Multicast」、RFC3453、2002年12月
[RFC5053] Luby,M.、Shokrollahi,A.、Watson,M.、およびT.Stockhammer、「Raptor Forward Error Correction Scheme for Object Delivery」、RFC5053、2007年10月
著者の住所
Michael Luby
Qualcomm Incorporated
3165 Kifer Road
Santa Clara,CA 95051
U.S.A.
電子メール:luby@qualcomm.com
Amin Shokrollahi
EPFL
Laboratoire d’algorithmique
EPFL
Station 14
Batiment BC
Lausanne 1015
Switzerland
電子メール:amin.shokrollahi@epfl.ch
Mark Watson
Qualcomm Incorporated
3165 Kifer Road
Santa Clara,CA 95051
U.S.A.
電子メール:watson@qualcomm.com
Thomas Stockhammer
Nomor Research
Brecherspitzstrasse 8
Munich 81541
Germany
電子メール:stockhammer@nomor.de
Lorenz Minder
Qualcomm Incorporated
3165 Kifer Road
Santa Clara,CA 95051
U.S.A.
電子メール:lminder@qualcomm.com

Claims (38)

  1. 電子信号を出力することが可能な1つまたは複数の送信機を介してデータを電子的に送信する方法であって、送信されるべき前記データがソースシンボルの順序セットによって表され、前記データが、前記電子信号の少なくとも一部分を表す一連の被符号化シンボルとして送信され、前記方法は、
    電子的に読取り可能な形態で、ソースシンボルの前記順序セットを取得することと、
    ソースシンボルの前記順序セットから中間シンボルのセットを生成することであって、前記ソースシンボルが中間シンボルの前記セットから再生され得る、中間シンボルのセットを生成することと、
    各中間シンボルが中間シンボルの前記セットのうちの1つのメンバーに指定され、少なくとも中間シンボルの第1のセットおよび中間シンボルの第2のセットがあるように、前記中間シンボルの前記セットを指定することであって、中間シンボルの各セットが、別個の符号化パラメータと関連付けられており、少なくとも1つの中間シンボルをメンバーとして有する、指定することと、
    複数の被符号化シンボルを生成することであって、被符号化シンボルが前記中間シンボルのうちの1つまたは複数から生成され、少なくとも1つの被符号化シンボルが、直接または間接的に、中間シンボルの複数の前記セットから選択された複数の中間シンボルから生成される、複数の被符号化シンボルを生成することと
    を備える方法。
  2. 中間シンボルの前記第1のセットが、信念伝搬復号のためのシンボルに指定され、中間シンボルの前記第2のセットが、信念伝搬復号のための非活動化されるべきシンボルに指定される、請求項1に記載の方法。
  3. 各被符号化シンボルが、中間シンボルの前記第1のセットのうちの1つまたは複数から生成された第1のシンボルと、中間シンボルの前記第2のセットのうちの1つまたは複数から生成された第2のシンボルとの組合せから生成される、請求項1に記載の方法。
  4. 各被符号化シンボルが、第1の度数分布を有する中間シンボルの前記第1のセットのうちの1つまたは複数から生成された第1のシンボルと、前記第1の度数分布とは異なる第2の度数分布を有する中間シンボルの前記第2のセットのうちの1つまたは複数から生成された第2のシンボルとの組合せから生成されるように、前記別個の符号化パラメータが少なくとも別個の度数分布を備える、請求項3に記載の方法。
  5. 前記第1のシンボルが、中間シンボルの前記第1のセットに適用される連鎖反応符号化プロセスを使用して生成される、請求項3に記載の方法。
  6. 前記第2のシンボルが、中間シンボルの前記第2のセットからランダムに選定された固定数のシンボルのXORである、請求項3に記載の方法。
  7. 前記第2のシンボルが、中間シンボルの前記第2のセットからランダムに選定された第1の数のシンボルのXORであり、前記第1の数が、前記第1のシンボルを生成するために前記第1のセットから選定された前記シンボルの数に等しい第2の数に依存する、請求項3に記載の方法。
  8. 前記組合せが、前記第1のシンボルと前記第2のシンボルとの前記XORである、請求項3に記載の方法。
  9. 前記中間シンボルが、ソースシンボルの前記順序セットと、ソースシンボルの前記順序セットから生成された冗長ソースシンボルのセットとを備える、請求項1に記載の方法。
  10. 前記冗長シンボルの少なくともいくつかがGF[2]演算を使用して生成され、他の冗長シンボルがGF[256]演算を使用して生成される、請求項9に記載の方法。
  11. 前記中間シンボルが、符号化中に、復号プロセスを使用して前記ソースシンボルから生成され、前記復号プロセスが、前記中間シンボルと前記ソースシンボルとの間の関係の線形セットに基づく、請求項1に記載の方法。
  12. 前記線形関係の少なくともいくつかがGF[2]に関する関係であり、他の線形関係がGF[256]に関する関係である、請求項11に記載の方法。
  13. ソースシンボルの所与の順序セットから生成され得る別個の被符号化シンボルの数が、その順序セット中のソースシンボルの数とは無関係である、請求項1に記載の方法。
  14. 被符号化シンボルを生成するために実行されるシンボル演算の平均数が、その順序セット中のソースシンボルの数とは無関係である定数によって制限される、請求項1に記載の方法。
  15. シンボルの前記第1のセットがシンボルの前記第2のセットよりも2桁以上大きい、請求項1に記載の方法。
  16. ソースからデータを受信する方法であって、前記データがパケット通信チャネルを介して宛先において受信され、ソースシンボルの順序セットから導出された被符号化シンボルのセットによって表現可能な前記データが、前記ソースから前記宛先に送られた前記データを表し、前記方法は、
    受信された被符号化シンボルの前記セットを取得することと、
    受信された被符号化シンボルの前記セットから中間シンボルのセットを復号することと、
    前記中間シンボルの各々を中間シンボルのセットに関連付けることであって、前記中間シンボルが少なくとも2つのセットに関連付けられ、1つのセットが、前記受信された被符号化シンボルから前記中間シンボルを復元するための復号プロセスをスケジュールするために永久的非活動シンボルのセットに指定される、関連付けることと、
    前記復号プロセスに従って中間シンボルの前記セットから、ソースシンボルの前記順序セットの前記ソースシンボルの少なくともいくつかを復元することと
    を備える方法。
  17. 前記復号プロセスは、少なくとも、永久的非活動シンボルの第2のセットと、シンボルの前記第1のセットのサブセットである動的非活動シンボルの第3のセットとに依存する、低減された被符号化シンボルのセットが生成される第1の復号段階と、低減された被符号化シンボルの前記セットが、永久的非活動シンボルの前記第2のセットと動的非活動シンボルの前記第3のセットとを復号するために使用される第2の復号段階と、永久的非活動シンボルの前記復号された第2のセット、動的非活動シンボルの前記第3のセット、および受信された被符号化シンボルの前記セットが、シンボルの前記第1のセット中にある残りの中間シンボルの少なくともいくつかを復号するために使用される第3の復号段階とを備える、請求項16に記載の方法。
  18. 前記第1の復号段階が、非活動化復号と組み合わされた信念伝搬復号を使用し、および/または前記第2の復号段階がガウス消去法を使用する、請求項17に記載の方法。
  19. 前記第3の復号段階が、後退代入、または後退掃引と後続の前進掃引を使用する、請求項17に記載の方法。
  20. 動的非活動シンボルの第3のセット中のシンボルの数がソースシンボルの数の10%よりも少なく、および/または永久的非活動化シンボルの前記第2のセット中のシンボルの数の10%よりも少ないことを考慮して、前記復号プロセスが、動的非活動シンボルの前記第3のセットに対して演算する、請求項17に記載の方法。
  21. 前記受信された被符号化シンボルが、LDPC符号生成シンボルまたはリードソロモン符号生成シンボルとして演算される、請求項16に記載の方法。
  22. 受信された被符号化シンボルの前記セットの各受信された被符号化シンボルが、シンボルの前記第1のセットのうちの1つまたは複数から生成された第1のシンボルと、シンボルの前記第2のセットのうちの1つまたは複数から生成された第2のシンボルとの組合せであるものとして演算される、請求項16に記載の方法。
  23. 各受信された被符号化シンボルが、前記第1のシンボルと前記第2のシンボルとのXORである前記組合せとして演算される、請求項22に記載の方法。
  24. 各受信された被符号化シンボルが、前記第2のセットからランダムに選定された固定数のシンボルのXORである前記第2のシンボルとして演算される、請求項22に記載の方法。
  25. 各受信された被符号化シンボルが、前記第2のセットからランダムに選定された第1の数のシンボルのXORである前記第2のシンボルとして演算され、シンボルの前記第1の数が、前記第1のシンボルを生成するために前記第1のセットから選定されたシンボルの前記第2の数に依存する、請求項22に記載の方法。
  26. 前記復号プロセスは、前記第1のシンボルがシンボルの前記第1のセットから連鎖反応符号に基づいて選定されたかのように演算する、請求項22に記載の方法。
  27. 前記復号プロセスは、永久的非活動シンボルの前記第2のセットのサイズがソースシンボルの数の平方根に比例するかのように演算する、請求項16に記載の方法。
  28. 前記復号プロセスは、前記中間シンボルが、ソースシンボルの前記順序セットと、ソースシンボルの前記順序セットから生成された冗長シンボルのセットとを備えるかのように演算する、請求項16に記載の方法。
  29. 前記復号プロセスは、前記冗長シンボルの少なくともいくつかがGF[2]演算を使用して生成され、他の冗長シンボルがGF[256]演算を使用して生成されたかのように演算する、請求項28に記載の方法。
  30. 前記復号プロセスは、前記中間シンボルがソースシンボルの前記順序セットを備えるかのように演算する、請求項16に記載の方法。
  31. 前記復号プロセスは、前記中間シンボルが、前記中間シンボルと前記ソースシンボルとの間の関係の線形セットに基づく復号プロセスを使用して前記ソースシンボルから生成されたシンボルであるかのように演算する、請求項16に記載の方法。
  32. 前記復号プロセスは、前記線形関係の少なくともいくつかがGF[2]に関する関係であり、他の線形関係がGF[256]に関する関係であるかのように演算する、請求項31に記載の方法。
  33. 前記復号プロセスは、受信され得る異なる可能な被符号化シンボルの数が、前記順序セット中のソースシンボルの数とは無関係であるかのように演算する、請求項16に記載の方法。
  34. 受信された被符号化シンボルの前記セットからのソースシンボルの前記セットを復号するために実行されるシンボル演算の平均数が、ソースシンボルの数の定数倍によって制限され、前記定数がソースシンボルの数とは無関係である、請求項16に記載の方法。
  35. 前記復号プロセスは、シンボルの前記第1のセット中のシンボルの数が、永久的非活動シンボルの前記第2のセット中のシンボルの数よりも2桁以上大きいかのように演算する、請求項16に記載の方法。
  36. あるK、NおよびAについて、N=K+A個の被符号化シンボルのセットからのK個のソースシンボルの前記セットのすべての復元は、A=0、1または2の場合、少なくとも下限の成功の確率1−(0.01)^(A+1)を有し、前記下限がソースシンボルの数とは無関係であるように、前記復号プロセスが演算する、請求項16に記載の方法。
  37. データネットワークに結合されたサーバを使用してファイルをサービスするための方法であって、サービスすることが、前記ファイルのデータを1つまたは複数のブロックに編成し、ブロックの前記データに基づいて前記ブロックのための1つまたは複数の被符号化シンボルを生成することを含み、少なくとも1つのブロックが物理的にまたは論理的に複数のサブブロックに編成され、少なくとも1つの被符号化シンボルが物理的にまたは論理的に複数のサブシンボルに編成され、前記方法は、
    入力ファイルを整数個のブロックに区分することであって、各ブロックが少なくとも1つのサブブロックを含み、各サブブロックが少なくとも1つのソースシンボルを含む、区分することと、
    メモリ制約に基づいてサブブロックの最大サイズを表す値WSを判断することと、
    値SSを判断することであって、SS*ALが、好適なメモリユニットサイズALの単位で、サブシンボルサイズの下限を表す、値SSを判断することと、
    前記整数個のブロックのうちのどのブロックが複数のサブブロックに編成されるべきかを判断することと、そのようなブロックごとに、ソースブロックのためのソースシンボルの数がしきい値内で等しく、前記数が前記ファイル中のソースシンボルの前記数Ktに等しいことを保証し、各サブブロックの前記サブシンボルサイズが高々SS*ALであることを保証し、各サブブロックの前記サイズが高々WSであることを保証する方法で、送られるべき被符号化シンボルのパケット内の利用可能な空間によって判断されたサイズ、各送られるパケット内で使用されるべきシンボルサイズを有する複数のサブブロックに前記ブロックを編成することと、
    ブロックから被符号化シンボルを生成することであって、各被符号化シンボルが1つのブロックからのデータに依存するように、サブシンボルがサブブロックから生成される、生成することと、
    前記生成された被符号化シンボルを出力することと
    を備える方法。
  38. データネットワークに結合されたクライアントを使用して受信機におけるデータのブロックを復元するための方法であって、ブロックが1つまたは複数のサブブロックのグルーピングを含み、前記方法は、
    前記ブロックから生成された複数の被符号化シンボルを受信することであって、各被符号化シンボルが、演算の共通のセットを使用して少なくとも1つのサブブロックから生成された複数のサブシンボルを含む、受信することと、
    メモリ制約に基づいてサブブロックの最大サイズを表す値WSを判断することと、
    値SSを判断することであって、SS*ALが、好適なメモリユニットサイズALの単位で、サブシンボルサイズの下限を表す、値SSを判断することと、
    整数個のブロックのうちのどのブロックが複数のサブブロックに編成されるべきかを判断することと、そのようなブロックごとに、パケット内の利用可能な空間を表す、送信側によって設定された第1のパラメータ、各パケット内で使用されるシンボルサイズを表す第2のパラメータによって判断されたサイズを有する複数のサブブロックに前記ブロックを編成することであって、前記パラメータは、ソースブロックのためのソースシンボルの数がしきい値内で等しく、前記数が前記ファイル中のソースシンボルの前記数Ktに等しくなるようなものである、編成することと、
    受信された被符号化シンボルからブロックを復号することであって、サブブロックがサブシンボルから復号され、前記サブブロックがブロックを形成し、各サブブロックの前記サブシンボルサイズが高々SS*ALであり、各サブブロックの前記サイズが高々WSである、復号することと、
    前記復号されたブロックを出力することと
    を備える方法。
JP2012525696A 2009-08-19 2010-08-19 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置 Active JP5602858B2 (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US23528509P 2009-08-19 2009-08-19
US61/235,285 2009-08-19
US12/604,773 2009-10-23
US12/604,773 US7956772B2 (en) 2002-06-11 2009-10-23 Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US25714609P 2009-11-02 2009-11-02
US61/257,146 2009-11-02
US35391010P 2010-06-11 2010-06-11
US61/353,910 2010-06-11
US12/859,161 2010-08-18
US12/859,161 US9419749B2 (en) 2009-08-19 2010-08-18 Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
PCT/US2010/046027 WO2011022555A2 (en) 2009-08-19 2010-08-19 Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014167645A Division JP5819495B2 (ja) 2009-08-19 2014-08-20 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置

Publications (2)

Publication Number Publication Date
JP2013502849A true JP2013502849A (ja) 2013-01-24
JP5602858B2 JP5602858B2 (ja) 2014-10-08

Family

ID=43607590

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012525696A Active JP5602858B2 (ja) 2009-08-19 2010-08-19 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置
JP2014167645A Active JP5819495B2 (ja) 2009-08-19 2014-08-20 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014167645A Active JP5819495B2 (ja) 2009-08-19 2014-08-20 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置

Country Status (15)

Country Link
US (3) US9419749B2 (ja)
EP (1) EP2467942B1 (ja)
JP (2) JP5602858B2 (ja)
KR (2) KR101451338B1 (ja)
CN (1) CN102640422B (ja)
BR (1) BR112012003688B1 (ja)
CA (2) CA2771622C (ja)
ES (1) ES2673513T3 (ja)
HK (1) HK1172164A1 (ja)
HU (1) HUE037486T2 (ja)
MY (1) MY174793A (ja)
RU (2) RU2554556C2 (ja)
TW (2) TWI437422B (ja)
WO (1) WO2011022555A2 (ja)
ZA (1) ZA201201843B (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
AU2003277198A1 (en) 2002-10-05 2004-05-04 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US20050058313A1 (en) * 2003-09-11 2005-03-17 Victorian Thomas A. External ear canal voice detection
JP4773356B2 (ja) 2003-10-06 2011-09-14 デジタル ファウンテン, インコーポレイテッド 単一の送信機または多数の送信機を有する通信システムのためのエラー訂正マルチステージ符号生成器および復号器
CN103124182B (zh) 2004-05-07 2017-05-10 数字方敦股份有限公司 文件下载和流系统
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) * 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
JP5027305B2 (ja) 2007-09-12 2012-09-19 デジタル ファウンテン, インコーポレイテッド 信頼できる通信を可能にするためのソース識別情報の生成および伝達
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9015564B2 (en) 2009-08-19 2015-04-21 Qualcomm Incorporated Content delivery system with allocation of source data and repair data among HTTP servers
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) * 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
KR101983032B1 (ko) * 2012-05-07 2019-05-30 삼성전자주식회사 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법
US9160399B2 (en) 2012-05-24 2015-10-13 Massachusetts Institute Of Technology System and apparatus for decoding tree-based messages
US10666701B2 (en) * 2012-11-16 2020-05-26 Citrix Systems, Inc. Adaptation of content delivery network to incremental delivery of large, frequently updated data sets
WO2014139085A1 (en) * 2013-03-12 2014-09-18 Hewlett-Packard Development Company, L.P. Identifying transport-level encoded payloads
WO2014191705A1 (en) * 2013-05-29 2014-12-04 Toshiba Research Europe Limited Coding and decoding methods and apparatus
US9369920B2 (en) * 2013-06-12 2016-06-14 Qualcomm Incorporated Degree reduction and degree-constrained combining for relaying a fountain code
US9270412B2 (en) * 2013-06-26 2016-02-23 Massachusetts Institute Of Technology Permute codes, iterative ensembles, graphical hash codes, and puncturing optimization
US9196299B2 (en) * 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
EP2858286A1 (en) * 2013-10-04 2015-04-08 Alcatel Lucent Rateless decoding
TWI523465B (zh) * 2013-12-24 2016-02-21 財團法人工業技術研究院 檔案傳輸系統和方法
FR3018148B1 (fr) * 2014-02-28 2017-08-25 Allegro Dvt Generateur de flux video
US9496897B1 (en) * 2014-03-31 2016-11-15 EMC IP Holding Company LLC Methods and apparatus for generating authenticated error correcting codes
MX366500B (es) * 2014-06-10 2019-07-11 Lg Electronics Inc Aparato de transmision de señales de difusion, aparato de recepcion de señales de difusion, metodo de transmision de señales de difusion, y metodo de recepcion de señales de difusion.
US10367605B2 (en) * 2015-07-02 2019-07-30 Intel Corporation High speed interconnect symbol stream forward error-correction
US10003357B2 (en) 2015-08-28 2018-06-19 Qualcomm Incorporated Systems and methods for verification of code resiliency for data storage
EP3142280A1 (en) * 2015-09-09 2017-03-15 Alcatel Lucent Method, system and computer readable medium for the transmission of symbols between at least two telecommunication apparatus
KR102458074B1 (ko) * 2016-03-31 2022-10-24 삼성전자 주식회사 이동 통신 시스템에서 이종 서비스 제공 방법 및 장치
TWI602409B (zh) * 2016-08-15 2017-10-11 國立交通大學 資料傳輸方法與系統
US10320428B2 (en) * 2016-08-15 2019-06-11 Qualcomm Incorporated Outputting of codeword bits for transmission prior to loading all input bits
JP6885025B2 (ja) * 2016-11-18 2021-06-09 ソニーグループ株式会社 送信装置、及び、送信方法
KR101886937B1 (ko) * 2016-12-30 2018-08-08 성균관대학교산학협력단 릴레이 노드에서의 네트워크 코딩을 통한 패킷 전송 방법, 네트워크 코딩을 통한 패킷 전송을 하는 릴레이 장치, 목적지 노드의 패킷 수신 방법 및 네트워크 코딩된 패킷을 수신하는 장치
CN107332570B (zh) * 2017-06-06 2020-12-04 北京理工大学 分段级联Hash序列的极化码编码方法
US10922173B2 (en) * 2018-03-13 2021-02-16 Queen's University At Kingston Fault-tolerant distributed digital storage
KR102034390B1 (ko) * 2018-08-23 2019-10-18 최운영 디스플레이 송출정보에 기반한 데이터 사용 로그 추적 시스템
KR20200036338A (ko) * 2018-09-28 2020-04-07 삼성전자주식회사 무선 통신 시스템에서 극 부호를 이용한 부호화 및 복호화를 위한 장치 및 방법
CN110297703B (zh) * 2019-06-11 2021-11-05 国网江苏省电力有限公司 一种在实时仿真系统中模拟硬件任务调度的方法及装置
US10990324B2 (en) 2019-06-25 2021-04-27 Western Digital Technologies, Inc. Storage node processing of predefined data functions
US11055018B2 (en) 2019-06-25 2021-07-06 Western Digital Technologies, Inc. Parallel storage node processing of data functions
US11314593B2 (en) * 2019-06-25 2022-04-26 Western Digital Technologies, Inc. Storage node processing of data functions using overlapping symbols
US11281531B2 (en) * 2019-06-25 2022-03-22 Western Digital Technologies, Inc. Serial storage node processing of data functions
CN113541857A (zh) * 2020-04-17 2021-10-22 华为技术有限公司 一种编码方法及通信装置
US11751171B2 (en) * 2020-07-09 2023-09-05 Qualcomm Incorporated Feedback-based broadcasting of network coded packets with sidelink
US11115049B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression
US11115050B1 (en) * 2020-08-24 2021-09-07 Innogrit Technologies Co., Ltd. Hardware friendly data decompression
WO2022041187A1 (en) * 2020-08-31 2022-03-03 Qualcomm Incorporated Degree selection schemes for rapid tornado (raptor) codes in multicast and broadcast services and in unicast services
US20220086445A1 (en) * 2020-12-03 2022-03-17 Intel Corporation Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding
US11967973B2 (en) 2021-05-06 2024-04-23 Samsung Display Co., Ltd. Low overhead transition encoding codes
US11632408B1 (en) * 2022-02-15 2023-04-18 Bank Of America Corporation Intelligent, dynamic, secure, real-time, symmetrical data streaming apparatus leveraging quantum computing
US11799700B1 (en) * 2022-08-31 2023-10-24 Qualcomm Incorporated Decoding multi-level coded (MLC) systems
US11928027B1 (en) * 2022-09-26 2024-03-12 Cadence Design Systems, Inc. System and method for error checking and correction with metadata storage in a memory controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006512790A (ja) * 2002-06-11 2006-04-13 デジタル ファウンテン, インコーポレイテッド イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
JP2009527949A (ja) * 2006-02-21 2009-07-30 デジタル ファウンテン, インコーポレイテッド 通信システムのための多体ベース符号の生成器および復号化器

Family Cites Families (559)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3909721A (en) 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5043909A (en) 1988-12-30 1991-08-27 Hughes Aircraft Company Method and device for excess modulation detection for signal analysis
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US7594250B2 (en) 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5421031A (en) 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
JPH0452253A (ja) 1990-06-20 1992-02-20 Kobe Steel Ltd 急冷薄帯又は急冷細線
US5455823A (en) 1990-11-06 1995-10-03 Radio Satellite Corporation Integrated communications terminal
US5164963A (en) 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
US5465318A (en) 1991-03-28 1995-11-07 Kurzweil Applied Intelligence, Inc. Method for generating a speech recognition model for a non-vocabulary utterance
US5379297A (en) 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
EP0543070A1 (en) 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5425050A (en) 1992-10-23 1995-06-13 Massachusetts Institute Of Technology Television transmission system using spread spectrum and orthogonal frequency-division multiplex
US5372532A (en) 1993-01-26 1994-12-13 Robertson, Jr.; George W. Swivel head cap connector
EP0613249A1 (en) 1993-02-12 1994-08-31 Altera Corporation Custom look-up table with reduced number of architecture bits
DE4316297C1 (de) 1993-05-14 1994-04-07 Fraunhofer Ges Forschung Frequenzanalyseverfahren
AU665716B2 (en) 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
US5590405A (en) 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
JP2576776B2 (ja) 1993-11-10 1997-01-29 日本電気株式会社 パケット伝送方法・パケット伝送装置
US5517508A (en) 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5757415A (en) 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (ja) 1994-12-28 2005-01-26 株式会社東芝 データ再送制御方法及びデータ再送制御システム
JP3651699B2 (ja) 1995-04-09 2005-05-25 ソニー株式会社 復号化装置及び符号化復号化装置
EP0823153A4 (en) 1995-04-27 1999-10-20 Stevens Inst Technology HIGH INTEGRITY TRANSPORT METHOD FOR TIME-CRITICAL MULTIMEDIA NETWORK APPLICATIONS
US5835165A (en) 1995-06-07 1998-11-10 Lsi Logic Corporation Reduction of false locking code words in concatenated decoders
US5805825A (en) 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6079041A (en) 1995-08-04 2000-06-20 Sanyo Electric Co., Ltd. Digital modulation circuit and digital demodulation circuit
JP3167638B2 (ja) 1995-08-04 2001-05-21 三洋電機株式会社 ディジタル変調方法と復調方法及びディジタル変調回路と復調回路
US5754563A (en) 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
KR0170298B1 (ko) 1995-10-10 1999-04-15 김광호 디지탈 비디오 테이프의 기록 방법
US5751336A (en) 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
JP3305183B2 (ja) 1996-01-12 2002-07-22 株式会社東芝 ディジタル放送受信端末装置
US6012159A (en) 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5936659A (en) 1996-01-31 1999-08-10 Telcordia Technologies, Inc. Method for video delivery using pyramid broadcasting
US5903775A (en) 1996-06-06 1999-05-11 International Business Machines Corporation Method for the sequential transmission of compressed video information at varying data rates
US5745504A (en) 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5940863A (en) 1996-07-26 1999-08-17 Zenith Electronics Corporation Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators
US5936949A (en) 1996-09-05 1999-08-10 Netro Corporation Wireless ATM metropolitan area network
KR100261706B1 (ko) 1996-12-17 2000-07-15 가나이 쓰도무 디지탈방송신호의 수신장치와 수신 및 기록재생장치
US6044485A (en) 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
US6011590A (en) 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
US5946357A (en) 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
EP0854650A3 (en) 1997-01-17 2001-05-02 NOKIA TECHNOLOGY GmbH Method for addressing a service in digital video broadcasting
US6014706A (en) 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
WO1998039927A1 (en) 1997-03-07 1998-09-11 Sanyo Electric Co., Ltd. Digital broadcast receiver and display
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
DE19716011A1 (de) 1997-04-17 1998-10-22 Abb Research Ltd Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen
US6226259B1 (en) 1997-04-29 2001-05-01 Canon Kabushiki Kaisha Device and method for transmitting information device and method for processing information
US5970098A (en) 1997-05-02 1999-10-19 Globespan Technologies, Inc. Multilevel encoder
US5844636A (en) 1997-05-13 1998-12-01 Hughes Electronics Corporation Method and apparatus for receiving and recording digital packet data
JP4110593B2 (ja) 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JPH1141211A (ja) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd ディジタル変調回路と変調方法、ディジタル復調回路と復調方法
WO1998053454A1 (fr) 1997-05-19 1998-11-26 Sanyo Electric Co., Ltd. Modulation et demodulation numeriques
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6081907A (en) 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US5917852A (en) 1997-06-11 1999-06-29 L-3 Communications Corporation Data scrambling system and method and communications system incorporating same
KR100240869B1 (ko) 1997-06-25 2000-01-15 윤종용 이중 다이버서티 시스템을 위한 데이터 전송 방법
US6175944B1 (en) 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US5933056A (en) 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6047069A (en) 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6178536B1 (en) 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
FR2767940A1 (fr) 1997-08-29 1999-02-26 Canon Kk Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre
EP0903955A1 (en) 1997-09-04 1999-03-24 STMicroelectronics S.r.l. Modular architecture PET decoder for ATM networks
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
JP3472115B2 (ja) 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6243846B1 (en) 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6849803B1 (en) 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6097320A (en) 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
US6141788A (en) 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
US6459811B1 (en) 1998-04-02 2002-10-01 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6445717B1 (en) 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6937618B1 (en) 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6333926B1 (en) 1998-08-11 2001-12-25 Nortel Networks Limited Multiple user CDMA basestation modem
CA2341747C (en) 1998-09-04 2007-05-22 At&T Corp. Combined channel coding and space-time block coding in a multi-antenna arrangement
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US7243285B2 (en) 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US6704370B1 (en) 1998-10-09 2004-03-09 Nortel Networks Limited Interleaving methodology and apparatus for CDMA
IT1303735B1 (it) 1998-11-11 2001-02-23 Falorni Italia Farmaceutici S Acidi ialuronici reticolati e loro usi medici.
US6408128B1 (en) 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US6483736B2 (en) 1998-11-16 2002-11-19 Matrix Semiconductor, Inc. Vertically stacked field programmable nonvolatile memory and method of fabrication
JP2000151426A (ja) 1998-11-17 2000-05-30 Toshiba Corp インターリーブ・デインターリーブ回路
US6166544A (en) 1998-11-25 2000-12-26 General Electric Company MR imaging system with interactive image contrast control
US6876623B1 (en) 1998-12-02 2005-04-05 Agere Systems Inc. Tuning scheme for code division multiplex broadcasting system
DE69808809T2 (de) 1998-12-03 2003-06-18 Fraunhofer Ges Forschung Vorrichtung und verfahren zur datenübermittlung und zum datenempfang
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6496980B1 (en) 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6223324B1 (en) 1999-01-05 2001-04-24 Agere Systems Guardian Corp. Multiple program unequal error protection for digital audio broadcasting and other applications
JP3926499B2 (ja) 1999-01-22 2007-06-06 株式会社日立国際電気 畳み込み符号軟判定復号方式の受信装置
US6618451B1 (en) * 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6041001A (en) 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
EP1083496A1 (en) 1999-03-03 2001-03-14 Sony Corporation Transmitter, receiver, transmitter/receiver system, transmission method and reception method
US6785323B1 (en) 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US6466698B1 (en) 1999-03-25 2002-10-15 The United States Of America As Represented By The Secretary Of The Navy Efficient embedded image and video compression system using lifted wavelets
US6535920B1 (en) 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
JP3256517B2 (ja) 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 符号化回路、回路、パリティ生成方法及び記憶媒体
US6609223B1 (en) 1999-04-06 2003-08-19 Kencast, Inc. Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter
US6804202B1 (en) 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (fi) 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
DE60028120T2 (de) 1999-05-06 2006-12-28 Sony Corp. Datenverarbeitungsverfahren und -gerät, Datenwiedergabeverfahren und -gerät, Datenaufzeichnungsmedien
KR100416996B1 (ko) 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
US6229824B1 (en) 1999-05-26 2001-05-08 Xm Satellite Radio Inc. Method and apparatus for concatenated convolutional endcoding and interleaving
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
JP2000353969A (ja) 1999-06-11 2000-12-19 Sony Corp デジタル音声放送の受信機
US6577599B1 (en) 1999-06-30 2003-06-10 Sun Microsystems, Inc. Small-scale reliable multicasting
IL141800A0 (en) 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6643332B1 (en) 1999-07-09 2003-11-04 Lsi Logic Corporation Method and apparatus for multi-level coding of digital signals
JP3451221B2 (ja) 1999-07-22 2003-09-29 日本無線株式会社 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
US6453440B1 (en) 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
JP2001060934A (ja) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm通信装置
US6430233B1 (en) 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (ja) 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
JP2001094625A (ja) 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
US7529806B1 (en) 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
JP2003510734A (ja) 1999-09-27 2003-03-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ストリーミングのエミュレート用ファイル分割
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6678855B1 (en) 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US20020009137A1 (en) 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
WO2001058130A2 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Coding method
US7304990B2 (en) 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
JP2001251287A (ja) 2000-02-24 2001-09-14 Geneticware Corp Ltd ハードウエア保護内部秘匿鍵及び可変パスコードを利用する機密データ伝送方法
US6765866B1 (en) 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
DE10009443A1 (de) 2000-02-29 2001-08-30 Philips Corp Intellectual Pty Empfänger und Verfahren zum Detektieren und Dekodieren eines DQPSK-modulierten und kanalkodierten Empfangssignals
US6384750B1 (en) 2000-03-23 2002-05-07 Mosaid Technologies, Inc. Multi-stage lookup for translating between signals of different bit lengths
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
JP2001274776A (ja) 2000-03-24 2001-10-05 Toshiba Corp 情報データ伝送システムとその送信装置及び受信装置
WO2001076077A2 (en) 2000-03-31 2001-10-11 Ted Szymanski Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US8572646B2 (en) 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
US7073191B2 (en) 2000-04-08 2006-07-04 Sun Microsystems, Inc Streaming a single media track to multiple clients
US6631172B1 (en) 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
US6742154B1 (en) 2000-05-25 2004-05-25 Ciena Corporation Forward error correction codes for digital optical network optimization
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
GB2366159B (en) 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US6834342B2 (en) 2000-08-16 2004-12-21 Eecad, Inc. Method and system for secure communication over unstable public connections
KR100447162B1 (ko) 2000-08-19 2004-09-04 엘지전자 주식회사 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법
JP2002073625A (ja) 2000-08-24 2002-03-12 Nippon Hoso Kyokai <Nhk> 放送番組に同期した情報提供の方法、サーバ及び媒体
US7340664B2 (en) 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US7151754B1 (en) 2000-09-22 2006-12-19 Lucent Technologies Inc. Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
US7031257B1 (en) 2000-09-22 2006-04-18 Lucent Technologies Inc. Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol
US7490344B2 (en) 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US7613183B1 (en) 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US6694478B1 (en) 2000-11-07 2004-02-17 Agere Systems Inc. Low delay channel codes for correcting bursts of lost packets
US6732325B1 (en) 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US7072971B2 (en) * 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
EP1342363B9 (en) 2000-12-15 2012-09-12 BRITISH TELECOMMUNICATIONS public limited company Transmission and reception of audio and/or video material
ES2342357T3 (es) 2000-12-15 2010-07-06 British Telecommunications Public Limited Company Transmision y recepcion de material de audio y/o video.
US6850736B2 (en) 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US7143433B1 (en) 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
US20020085013A1 (en) 2000-12-29 2002-07-04 Lippincott Louis A. Scan synchronized dual frame buffer graphics subsystem
NO315887B1 (no) 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US20080059532A1 (en) 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
DE10103387A1 (de) * 2001-01-26 2002-08-01 Thorsten Nordhoff Windkraftanlage mit einer Einrichtung zur Hindernisbefeuerung bzw. Nachtkennzeichnung
FI118830B (fi) 2001-02-08 2008-03-31 Nokia Corp Tietovirran toisto
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
US6618541B2 (en) * 2001-03-14 2003-09-09 Zygo Corporation Fiber array fabrication
KR100464360B1 (ko) 2001-03-30 2005-01-03 삼성전자주식회사 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US6785836B2 (en) 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
US6820221B2 (en) 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US7010052B2 (en) 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US7035468B2 (en) 2001-04-20 2006-04-25 Front Porch Digital Inc. Methods and apparatus for archiving, indexing and accessing audio and video data
TWI246841B (en) 2001-04-22 2006-01-01 Koninkl Philips Electronics Nv Digital transmission system and method for transmitting digital signals
US20020191116A1 (en) 2001-04-24 2002-12-19 Damien Kessler System and data format for providing seamless stream switching in a digital video recorder
US6497479B1 (en) 2001-04-27 2002-12-24 Hewlett-Packard Company Higher organic inks with good reliability and drytime
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
JP2003018568A (ja) 2001-06-29 2003-01-17 Matsushita Electric Ind Co Ltd 再生システム、サーバ装置及び再生装置
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6928603B1 (en) 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7110412B2 (en) 2001-09-18 2006-09-19 Sbc Technology Resources, Inc. Method and system to transport high-quality video signals
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
US6990624B2 (en) 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7003712B2 (en) 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
JP2003174489A (ja) 2001-12-05 2003-06-20 Ntt Docomo Inc ストリーミング配信装置、ストリーミング配信方法
FI114527B (fi) 2002-01-23 2004-10-29 Nokia Corp Kuvakehysten ryhmittely videokoodauksessa
WO2003063505A1 (en) 2002-01-23 2003-07-31 Nokia Corporation Grouping of image frames in video coding
WO2003065683A1 (en) 2002-01-30 2003-08-07 Koninklijke Philips Electronics N.V. Streaming multimedia data over a network having a variable bandwidth
AU2003211057A1 (en) 2002-02-15 2003-09-09 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
JP4126928B2 (ja) 2002-02-28 2008-07-30 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム
JP4116470B2 (ja) 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
FR2837332A1 (fr) 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
AU2003221958B2 (en) 2002-04-15 2008-03-06 Nokia Corporation RLP logical layer of a communication station
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP3689063B2 (ja) 2002-04-19 2005-08-31 松下電器産業株式会社 データ受信装置及びデータ配信システム
JP3629008B2 (ja) 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
KR100693200B1 (ko) 2002-04-25 2007-03-13 샤프 가부시키가이샤 화상 부호화 장치, 화상 복호 장치, 기록 매체 및 화상기록 장치
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP1550315B1 (en) 2002-06-11 2015-10-21 Telefonaktiebolaget L M Ericsson (publ) Generation of mixed media streams
US6956875B2 (en) 2002-06-19 2005-10-18 Atlinks Usa, Inc. Technique for communicating variable bit rate data over a constant bit rate link
JP4154569B2 (ja) 2002-07-10 2008-09-24 日本電気株式会社 画像圧縮伸長装置
JP4120461B2 (ja) 2002-07-12 2008-07-16 住友電気工業株式会社 伝送データ生成方法及び伝送データ生成装置
CN101232615A (zh) 2002-07-16 2008-07-30 诺基亚有限公司 用于在视频编码中随机存取和逐步更新图像的方法
JPWO2004019521A1 (ja) 2002-07-31 2005-12-15 シャープ株式会社 データ通信装置、その間欠通信方法、その方法を記載するプログラム、及びそのプログラムを記録する記録媒体
JP2004070712A (ja) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム
US7620111B2 (en) 2002-08-13 2009-11-17 Nokia Corporation Symbol interleaving
US6985459B2 (en) 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
WO2004030273A1 (ja) 2002-09-27 2004-04-08 Fujitsu Limited データ配信方法、システム、伝送方法及びプログラム
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
AU2003277198A1 (en) 2002-10-05 2004-05-04 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
JP2004135013A (ja) 2002-10-10 2004-04-30 Matsushita Electric Ind Co Ltd 伝送装置及び伝送方法
FI116816B (fi) 2002-10-14 2006-02-28 Nokia Corp Median suoratoisto
US8320301B2 (en) 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
CN1708934B (zh) 2002-10-30 2010-10-06 皇家飞利浦电子股份有限公司 自适应前向错误控制方案
JP2004165922A (ja) 2002-11-12 2004-06-10 Sony Corp 情報処理装置および方法、並びにプログラム
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
EP1563689B1 (en) 2002-11-18 2008-10-01 British Telecommunications Public Limited Company Transmission of video
KR100502609B1 (ko) 2002-11-21 2005-07-20 한국전자통신연구원 Ldpc 코드를 이용한 부호화기 및 부호화 방법
US7086718B2 (en) 2002-11-23 2006-08-08 Silverbrook Research Pty Ltd Thermal ink jet printhead with high nozzle areal density
JP2004192140A (ja) 2002-12-09 2004-07-08 Sony Corp データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
JP2004193992A (ja) 2002-12-11 2004-07-08 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US8135073B2 (en) 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US7164882B2 (en) 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
WO2004068715A2 (en) * 2003-01-29 2004-08-12 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
US7756002B2 (en) 2003-01-30 2010-07-13 Texas Instruments Incorporated Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer
US7525994B2 (en) 2003-01-30 2009-04-28 Avaya Inc. Packet data flow identification for multiplexing
US7231404B2 (en) 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7062272B2 (en) 2003-02-18 2006-06-13 Qualcomm Incorporated Method and apparatus to track count of broadcast content recipients in a wireless telephone network
EP1455504B1 (en) 2003-03-07 2014-11-12 Samsung Electronics Co., Ltd. Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method
JP4173755B2 (ja) 2003-03-24 2008-10-29 富士通株式会社 データ伝送サーバ
US7610487B2 (en) 2003-03-27 2009-10-27 Microsoft Corporation Human input security codes
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
JP2004343701A (ja) 2003-04-21 2004-12-02 Matsushita Electric Ind Co Ltd データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム
US7408486B2 (en) 2003-04-21 2008-08-05 Qbit Corporation System and method for using a microlet-based modem
US20050041736A1 (en) 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US7113773B2 (en) 2003-05-16 2006-09-26 Qualcomm Incorporated Reliable reception of broadcast/multicast content
JP2004348824A (ja) 2003-05-21 2004-12-09 Toshiba Corp Eccエンコード方法、eccエンコード装置
WO2004112368A2 (en) 2003-05-23 2004-12-23 Heyanita, Inc. Transmission of a data file by notification of a reference to the intended recipient and teleconference establishment using a unique reference
JP2004362099A (ja) 2003-06-03 2004-12-24 Sony Corp サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
MXPA05013237A (es) 2003-06-07 2006-03-09 Samsung Electronics Co Ltd Aparato y metodo para la organizacion e interpretacion de datos multimedia en un medio de grabacion.
KR101003413B1 (ko) 2003-06-12 2010-12-23 엘지전자 주식회사 이동통신 단말기의 전송데이터 압축/해제 방법
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (ru) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Способ передачи информации с использованием адаптивного перемежения
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
KR100532450B1 (ko) 2003-07-16 2005-11-30 삼성전자주식회사 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들
US20050028067A1 (en) 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
CN1868157B (zh) 2003-08-21 2011-07-27 高通股份有限公司 无线链路控制层上的前向纠错编码方法和相关装置
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
IL157886A0 (en) 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
IL157885A0 (en) 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
JP4183586B2 (ja) 2003-09-12 2008-11-19 三洋電機株式会社 映像表示装置
WO2005029237A2 (en) 2003-09-15 2005-03-31 Digital Networks North America, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
DE60307852D1 (de) 2003-09-30 2006-10-05 Ericsson Telefon Ab L M In-place Entschachtelung von Daten
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
JP4773356B2 (ja) 2003-10-06 2011-09-14 デジタル ファウンテン, インコーポレイテッド 単一の送信機または多数の送信機を有する通信システムのためのエラー訂正マルチステージ符号生成器および復号器
US7516232B2 (en) 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
US7614071B2 (en) 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
ATE479142T1 (de) 2003-10-14 2010-09-15 Panasonic Corp Datenumsetzer
US7650036B2 (en) 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7168030B2 (en) 2003-10-17 2007-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Turbo code decoder with parity information update
EP1528808A3 (en) 2003-10-27 2008-03-26 Matsushita Electric Industrial Co., Ltd. Apparatus for receiving a broadcast signal
JP2005136546A (ja) 2003-10-29 2005-05-26 Sony Corp 送信装置および方法、記録媒体、並びにプログラム
EP1528702B1 (en) 2003-11-03 2008-01-23 Broadcom Corporation FEC (forward error correction) decoding with dynamic parameters
US20050102371A1 (en) 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
CN100505552C (zh) 2003-12-01 2009-06-24 数字方敦股份有限公司 使用基于子码元的代码来保护数据不被删除
US7428669B2 (en) 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7590118B2 (en) 2003-12-23 2009-09-15 Agere Systems Inc. Frame aggregation format
JP4536383B2 (ja) 2004-01-16 2010-09-01 株式会社エヌ・ティ・ティ・ドコモ データ受信装置およびデータ受信方法
KR100770902B1 (ko) 2004-01-20 2007-10-26 삼성전자주식회사 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법
KR100834750B1 (ko) 2004-01-29 2008-06-05 삼성전자주식회사 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법
JP4321284B2 (ja) 2004-02-03 2009-08-26 株式会社デンソー ストリーミングデータ送信装置、および情報配信システム
US7599294B2 (en) 2004-02-13 2009-10-06 Nokia Corporation Identification and re-transmission of missing parts
KR100596705B1 (ko) 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
KR100586883B1 (ko) 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
WO2005094020A1 (en) 2004-03-19 2005-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using rlp
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
JP4433287B2 (ja) 2004-03-25 2010-03-17 ソニー株式会社 受信装置および方法、並びにプログラム
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
KR20070007810A (ko) 2004-03-30 2007-01-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 디스크 기반 멀티미디어 콘텐츠에 대한 개선된 트릭 모드수행을 지원하는 시스템 및 방법
TW200534875A (en) 2004-04-23 2005-11-01 Lonza Ag Personal care compositions and concentrates for making the same
FR2869744A1 (fr) 2004-04-29 2005-11-04 Thomson Licensing Sa Methode de transmission de paquets de donnees numeriques et appareil implementant la methode
CN103124182B (zh) 2004-05-07 2017-05-10 数字方敦股份有限公司 文件下载和流系统
US7633970B2 (en) 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US20060037057A1 (en) 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8331445B2 (en) 2004-06-01 2012-12-11 Qualcomm Incorporated Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7930184B2 (en) 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
WO2006020826A2 (en) 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP4405875B2 (ja) 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
JP2006074335A (ja) 2004-09-01 2006-03-16 Nippon Telegr & Teleph Corp <Ntt> 伝送方法、伝送システム及び伝送装置
JP4576936B2 (ja) 2004-09-02 2010-11-10 ソニー株式会社 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム
US7660245B1 (en) 2004-09-16 2010-02-09 Qualcomm Incorporated FEC architecture for streaming services including symbol-based operations and packet tagging
JP2006115104A (ja) 2004-10-13 2006-04-27 Daiichikosho Co Ltd 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置
US7529984B2 (en) 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US7751324B2 (en) 2004-11-19 2010-07-06 Nokia Corporation Packet stream arrangement in multimedia transmission
US20080196061A1 (en) 2004-11-22 2008-08-14 Boyce Jill Macdonald Method and Apparatus for Channel Change in Dsl System
US8015474B2 (en) 2004-12-02 2011-09-06 Thomson Licensing Adaptive forward error correction
KR20060065482A (ko) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
JP2006174032A (ja) 2004-12-15 2006-06-29 Sanyo Electric Co Ltd 画像データ伝送システム、画像データ受信装置及び画像データ送信装置
JP2006174045A (ja) 2004-12-15 2006-06-29 Ntt Communications Kk 画像配信装置、プログラム及び方法
US7398454B2 (en) 2004-12-21 2008-07-08 Tyco Telecommunications (Us) Inc. System and method for forward error correction decoding using soft information
JP4391409B2 (ja) 2004-12-24 2009-12-24 株式会社第一興商 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置
CN101116306A (zh) 2005-02-08 2008-01-30 艾利森电话股份有限公司 在分组交换网络上的按需多频道流会话
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
US7822139B2 (en) 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
US20090222873A1 (en) 2005-03-07 2009-09-03 Einarsson Torbjoern Multimedia Channel Switching
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7219289B2 (en) 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (ja) 2005-03-31 2010-06-23 ブラザー工業株式会社 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
KR20080006609A (ko) 2005-04-13 2008-01-16 노키아 코포레이션 스케일링가능성 정보의 코딩, 저장, 및 시그널링
JP4515319B2 (ja) 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7961700B2 (en) 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP2006319743A (ja) 2005-05-13 2006-11-24 Toshiba Corp 受信装置
US8228994B2 (en) 2005-05-20 2012-07-24 Microsoft Corporation Multi-view video coding based on temporal and view decomposition
JP2008543142A (ja) 2005-05-24 2008-11-27 ノキア コーポレイション デジタル放送における階層的な送受信のための方法および装置
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
JP2007013436A (ja) 2005-06-29 2007-01-18 Toshiba Corp 符号化ストリーム再生装置
US20070006274A1 (en) 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
JP2007013675A (ja) 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
US7725593B2 (en) 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
US20070022215A1 (en) 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
EP1755248B1 (en) 2005-08-19 2011-06-22 Hewlett-Packard Development Company, L.P. Indication of lost segments across layer boundaries
CN101053249B (zh) 2005-09-09 2011-02-16 松下电器产业株式会社 图像处理方法、图像存储方法、图像处理装置及文件格式
US7924913B2 (en) 2005-09-15 2011-04-12 Microsoft Corporation Non-realtime data transcoding of multimedia content
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US8879856B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Content driven transcoder that orchestrates multimedia transcoding using content information
US20070078876A1 (en) 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
US7720062B2 (en) 2005-10-05 2010-05-18 Lg Electronics Inc. Method of processing traffic information and digital broadcasting system
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
CN101998123B (zh) 2005-10-11 2015-03-18 诺基亚公司 用于有效的可伸缩流适配的系统和方法
CN100442858C (zh) 2005-10-11 2008-12-10 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
US7720096B2 (en) 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
MY159176A (en) 2005-10-19 2016-12-30 Thomson Licensing Multi-view video coding using scalable video coding
JP4727401B2 (ja) 2005-12-02 2011-07-20 日本電信電話株式会社 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法
FR2894421B1 (fr) 2005-12-07 2008-01-18 Canon Kk Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique
KR100759823B1 (ko) 2005-12-08 2007-09-18 한국전자통신연구원 제로 복귀 신호 발생 장치 및 그 방법
JP4456064B2 (ja) 2005-12-21 2010-04-28 日本電信電話株式会社 パケット送信装置、受信装置、システム、およびプログラム
US20070157267A1 (en) 2005-12-30 2007-07-05 Intel Corporation Techniques to improve time seek operations
EP1969857B1 (en) 2006-01-05 2012-03-28 Telefonaktiebolaget LM Ericsson (publ) Media container file management
US8214516B2 (en) 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
AU2007204168B2 (en) 2006-01-11 2011-02-24 Nokia Technologies Oy Backward-compatible aggregation of pictures in scalable video coding
KR100943912B1 (ko) 2006-01-12 2010-03-03 엘지전자 주식회사 다시점 비디오의 처리 방법 및 장치
WO2007086654A1 (en) 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7262719B2 (en) * 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
RU2290768C1 (ru) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Система медиавещания в инфраструктуре оператора мобильной связи
GB0602314D0 (en) 2006-02-06 2006-03-15 Ericsson Telefon Ab L M Transporting packets
US8990153B2 (en) 2006-02-07 2015-03-24 Dot Hill Systems Corporation Pull data replication model
US8239727B2 (en) 2006-02-08 2012-08-07 Thomson Licensing Decoding of raptor codes
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
JP2007228205A (ja) 2006-02-23 2007-09-06 Funai Electric Co Ltd ネットワークサーバ
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US20080010153A1 (en) 2006-04-24 2008-01-10 Pugh-O'connor Archie Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application
US20090100496A1 (en) 2006-04-24 2009-04-16 Andreas Bechtolsheim Media server system
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US7525993B2 (en) 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
TWM302355U (en) 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) * 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
JP2008011404A (ja) 2006-06-30 2008-01-17 Toshiba Corp コンテンツ処理装置及びコンテンツ処理方法
JP4392004B2 (ja) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション パケット回復のための符号化および復号化技術
JP4982563B2 (ja) 2006-07-20 2012-07-25 サンディスク コーポレイション 向上されたavプレーヤ装置、並びにそれを使用したコンテンツ配信のシステムおよび方法
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8209736B2 (en) 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
RU2435235C2 (ru) 2006-08-24 2011-11-27 Нокиа Корпорейшн Система и способ указания взаимосвязей треков в мультимедийном файле
JP2008109637A (ja) 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
WO2008054112A2 (en) 2006-10-30 2008-05-08 Lg Electronics Inc. Methods of performing random access in a wireless communication system
JP2008118221A (ja) 2006-10-31 2008-05-22 Toshiba Corp 復号装置及び復号方法
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
UA93118C2 (ru) 2006-11-14 2011-01-10 Квелкомм Инкорпорейтед Системы и способы для переключения каналов
US8027328B2 (en) 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
EP4213033A1 (en) 2007-01-05 2023-07-19 DivX, LLC Video distribution system including progressive playback
US20080168516A1 (en) 2007-01-08 2008-07-10 Christopher Lance Flick Facilitating Random Access In Streaming Content
WO2008084348A1 (en) 2007-01-09 2008-07-17 Nokia Corporation Method for supporting file versioning in mbms file repair
US20080172430A1 (en) 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
CA2656144A1 (en) 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
KR20080066408A (ko) 2007-01-12 2008-07-16 삼성전자주식회사 3차원 영상 처리 장치 및 방법
EP3484123A1 (en) 2007-01-12 2019-05-15 University-Industry Cooperation Group Of Kyung Hee University Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format
US8126062B2 (en) 2007-01-16 2012-02-28 Cisco Technology, Inc. Per multi-block partition breakpoint determining for hybrid variable length coding
KR101280477B1 (ko) 2007-01-24 2013-07-01 퀄컴 인코포레이티드 가변 크기들의 패킷들의 ldpc 인코딩 및 디코딩
US7721003B2 (en) 2007-02-02 2010-05-18 International Business Machines Corporation System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client
US7805456B2 (en) 2007-02-05 2010-09-28 Microsoft Corporation Query pattern to enable type flow of element types
US20080192818A1 (en) 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US20080232357A1 (en) 2007-03-19 2008-09-25 Legend Silicon Corp. Ls digital fountain code
JP4838191B2 (ja) 2007-05-08 2011-12-14 シャープ株式会社 ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体
JP2008283571A (ja) 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
US8275002B2 (en) 2007-05-14 2012-09-25 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
BRPI0811117A2 (pt) 2007-05-16 2014-12-23 Thomson Licensing Aparelho e método para codificar e decodificar sinais
FR2917262A1 (fr) 2007-06-05 2008-12-12 Thomson Licensing Sas Dispositif et procede de codage d'un contenu video sous la forme d'un flux scalable.
US8487982B2 (en) 2007-06-07 2013-07-16 Reald Inc. Stereoplexing for film and video applications
US8274551B2 (en) 2007-06-11 2012-09-25 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image data
CA2691085C (en) 2007-06-20 2016-12-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for improved media session management
EP2174502A2 (en) 2007-06-26 2010-04-14 Nokia Corporation System and method for indicating temporal layer switching points
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
JP2009027598A (ja) 2007-07-23 2009-02-05 Hitachi Ltd 映像配信サーバおよび映像配信方法
US7839311B2 (en) 2007-08-31 2010-11-23 Qualcomm Incorporated Architecture for multi-stage decoding of a CABAC bitstream
US8327403B1 (en) 2007-09-07 2012-12-04 United Video Properties, Inc. Systems and methods for providing remote program ordering on a user device via a web server
JP5027305B2 (ja) 2007-09-12 2012-09-19 デジタル ファウンテン, インコーポレイテッド 信頼できる通信を可能にするためのソース識別情報の生成および伝達
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
EP2046044B1 (en) 2007-10-01 2017-01-18 Cabot Communications Ltd A method and apparatus for streaming digital media content and a communication system
JP4975868B2 (ja) 2007-10-09 2012-07-11 サムスン エレクトロニクス カンパニー リミテッド 移動通信システムにおけるmacpduの生成・解析装置及び方法
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8635360B2 (en) 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
US20090125636A1 (en) 2007-11-13 2009-05-14 Qiong Li Payload allocation methods for scalable multimedia servers
ATE546795T1 (de) 2007-11-23 2012-03-15 Media Patents Sl Ein prozess für die on-line-verteilung des audiovisuellen inhalts mit reklameanzeigen, reklameanzeigenmanagementssystem, digitalrechtmanagementsystem und audiovisuellem contentspieler versehen mit besagten systemen
WO2009075766A2 (en) 2007-12-05 2009-06-18 Swarmcast, Inc. Dynamic bit rate scaling
TWI355168B (en) 2007-12-07 2011-12-21 Univ Nat Chiao Tung Application classification method in network traff
JP5385598B2 (ja) 2007-12-17 2014-01-08 キヤノン株式会社 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム
US9313245B2 (en) 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
KR101506217B1 (ko) 2008-01-31 2015-03-26 삼성전자주식회사 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US8151174B2 (en) 2008-02-13 2012-04-03 Sunrise IP, LLC Block modulus coding (BMC) systems and methods for block coding with non-binary modulus
US20090219985A1 (en) 2008-02-28 2009-09-03 Vasanth Swaminathan Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File
US7984097B2 (en) 2008-03-18 2011-07-19 Media Patents, S.L. Methods for transmitting multimedia files and advertisements
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US20090257508A1 (en) 2008-04-10 2009-10-15 Gaurav Aggarwal Method and system for enabling video trick modes
CN103795511B (zh) 2008-04-14 2018-05-01 亚马逊技术股份有限公司 一种在基站接收上行链路传输的方法及基站
WO2009127961A1 (en) 2008-04-16 2009-10-22 Nokia Corporation Decoding order recovery in session multiplexing
WO2009130561A1 (en) 2008-04-21 2009-10-29 Nokia Corporation Method and device for video coding and decoding
BRPI0912524A2 (pt) 2008-05-07 2015-10-13 Digital Fountain Inc troca rápida de canal e proteção de fluxo de alta qualidade de um canal de difusão
US7979570B2 (en) 2008-05-12 2011-07-12 Swarmcast, Inc. Live media delivery over a packet-based computer network
JP5022301B2 (ja) 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ プロキシサーバおよび通信中継プログラム、並びに通信中継方法
CN101287107B (zh) 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 媒体文件的点播方法、系统和设备
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US20100011274A1 (en) 2008-06-12 2010-01-14 Qualcomm Incorporated Hypothetical fec decoder and signalling for decoding control
US8775566B2 (en) 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8387150B2 (en) 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8468426B2 (en) 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US8539092B2 (en) 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
US20100153578A1 (en) 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8638796B2 (en) 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
KR101019634B1 (ko) 2008-09-04 2011-03-07 에스케이 텔레콤주식회사 미디어 전송 시스템 및 방법
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8370520B2 (en) 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
WO2010085361A2 (en) 2009-01-26 2010-07-29 Thomson Licensing Frame packing for video coding
KR101405019B1 (ko) 2009-01-29 2014-06-11 돌비 레버러토리즈 라이쎈싱 코오포레이션 다중 이미지들,예를 들면 스테레오스코픽을 서브―샘플링 및 인터리빙하기 위한 방법들 및 디바이스들
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8909806B2 (en) 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
WO2010120804A1 (en) 2009-04-13 2010-10-21 Reald Inc. Encoding, decoding, and distributing enhanced resolution stereoscopic video
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
US8903895B2 (en) 2009-07-22 2014-12-02 Xinlab, Inc. Method of streaming media to heterogeneous client devices
US8355433B2 (en) 2009-08-18 2013-01-15 Netflix, Inc. Encoding video streams for adaptive video streaming
US20120151302A1 (en) 2010-12-10 2012-06-14 Qualcomm Incorporated Broadcast multimedia storage and access using page maps when asymmetric memory is used
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
WO2012037635A1 (en) 2009-09-02 2012-03-29 Nortel Networks Limited Mac packet data unit construction for wireless systems
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9438861B2 (en) 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
JP2011087103A (ja) 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
RU2622621C2 (ru) 2009-11-04 2017-06-16 Амотек Ко., Лтд. Система и способ для потоковой передачи воспроизводимого контента
KR101786051B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치
KR101786050B1 (ko) 2009-11-13 2017-10-16 삼성전자 주식회사 데이터 전송 방법 및 장치
CN101729857A (zh) 2009-11-24 2010-06-09 中兴通讯股份有限公司 一种接入视频服务的方法及视频播放系统
WO2011070552A1 (en) 2009-12-11 2011-06-16 Nokia Corporation Apparatus and methods for describing and timing representations in streaming media files
US9112933B2 (en) 2010-02-19 2015-08-18 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for adaption in HTTP streaming
KR101628432B1 (ko) 2010-02-19 2016-06-21 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 레프리젠테이션 스위칭을 위한 방법 및 장치
JP5071495B2 (ja) * 2010-03-04 2012-11-14 ウシオ電機株式会社 光源装置
AU2011224959B2 (en) 2010-03-11 2014-08-28 Electronics And Telecommunications Research Institute Method and apparatus for transceiving data in a MIMO system
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9497290B2 (en) 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
KR101737325B1 (ko) 2010-08-19 2017-05-22 삼성전자주식회사 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
US8615023B2 (en) 2010-10-27 2013-12-24 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US20120208580A1 (en) 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006512790A (ja) * 2002-06-11 2006-04-13 デジタル ファウンテン, インコーポレイテッド イナクティブ化によって連鎖反応符号を復号化するためのシステムおよび処理
JP2009527949A (ja) * 2006-02-21 2009-07-30 デジタル ファウンテン, インコーポレイテッド 通信システムのための多体ベース符号の生成器および復号化器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013042895; Qualcomm: RaptorQ Technical Overview , 2010 *

Also Published As

Publication number Publication date
MY174793A (en) 2020-05-15
RU2013139729A (ru) 2015-03-10
BR112012003688A2 (pt) 2020-08-11
KR20130111650A (ko) 2013-10-10
CA2982574A1 (en) 2011-02-24
KR101421286B1 (ko) 2014-07-18
ZA201201843B (en) 2012-11-28
US9876607B2 (en) 2018-01-23
WO2011022555A3 (en) 2011-09-29
US9419749B2 (en) 2016-08-16
US20110299629A1 (en) 2011-12-08
EP2467942B1 (en) 2018-05-02
WO2011022555A2 (en) 2011-02-24
ES2673513T3 (es) 2018-06-22
RU2554556C2 (ru) 2015-06-27
CN102640422B (zh) 2015-02-11
HUE037486T2 (hu) 2018-08-28
KR20120058556A (ko) 2012-06-07
RU2519524C2 (ru) 2014-06-10
BR112012003688B1 (pt) 2021-03-23
US9660763B2 (en) 2017-05-23
US20170033892A1 (en) 2017-02-02
HK1172164A1 (en) 2013-04-12
RU2012110248A (ru) 2013-09-27
TWI566089B (zh) 2017-01-11
TWI437422B (zh) 2014-05-11
CA2982574C (en) 2020-12-15
TW201118555A (en) 2011-06-01
CN102640422A (zh) 2012-08-15
CA2771622A1 (en) 2011-02-24
EP2467942A2 (en) 2012-06-27
JP5602858B2 (ja) 2014-10-08
TW201430555A (zh) 2014-08-01
US20160087755A1 (en) 2016-03-24
CA2771622C (en) 2018-04-24
JP2015015733A (ja) 2015-01-22
KR101451338B1 (ko) 2014-10-15
JP5819495B2 (ja) 2015-11-24

Similar Documents

Publication Publication Date Title
JP5819495B2 (ja) 符号化および復号プロセスのためにシンボルの永久的非活動化とともにfec符号を採用する方法および装置
JP4971144B2 (ja) ファイルダウンロードおよびストリーミングのシステム
US7956772B2 (en) Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
JP5329239B2 (ja) 通信システムのための多体ベース符号の生成器および復号化器
US7293222B2 (en) Systems and processes for fast encoding of hamming codes
EP2348640B1 (en) Systematic encoding of chain reaction codes
Luby et al. RFC 6330: RaptorQ forward error correction scheme for object delivery

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130903

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131129

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140625

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140820

R150 Certificate of patent or registration of utility model

Ref document number: 5602858

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250