RFC5170 日本語訳
5170 Low Density Parity Check (LDPC) Staircase and Triangle ForwardError Correction (FEC) Schemes. V. Roca, C. Neumann, D. Furodet. June 2008. (Format: TXT=68567 bytes) (Status: PROPOSED STANDARD)
プログラムでの自動翻訳です。
英語原文
Network Working Group V. Roca Request for Comments: 5170 INRIA Category: Standards Track C. Neumann Thomson D. Furodet STMicroelectronics June 2008
コメントを求めるワーキンググループV.ロカの要求をネットワークでつないでください: 5170年のINRIAカテゴリ: 標準化過程C.ノイマントムソンD.Furodet STMicroelectronics2008年6月
Low Density Parity Check (LDPC) Staircase and Triangle Forward Error Correction (FEC) Schemes
低い密度パリティチェック(LDPC)階段と三角形前進型誤信号訂正(FEC)計画
Status of This Memo
このメモの状態
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
このドキュメントは、インターネットコミュニティにインターネット標準化過程プロトコルを指定して、改良のために議論と提案を要求します。 このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」(STD1)の現行版を参照してください。 このメモの分配は無制限です。
Abstract
要約
This document describes two Fully-Specified Forward Error Correction (FEC) Schemes, Low Density Parity Check (LDPC) Staircase and LDPC Triangle, and their application to the reliable delivery of data objects on the packet erasure channel (i.e., a communication path where packets are either received without any corruption or discarded during transmission). These systematic FEC codes belong to the well- known class of "Low Density Parity Check" codes, and are large block FEC codes in the sense of RFC 3453.
このドキュメントは2Fullyによって指定されたForward Error Correction(FEC)計画、Low Density Parity Check(LDPC)階段、およびLDPC Triangleについて説明します、そして、データの信頼できる配信への彼らの適用はパケット消去チャンネル(すなわち、パケットを少しも不正なしで受け取るか、またはトランスミッションの間に捨てる通信路)の上に反対します。 これらの系統的なFECコードは、よく知られているクラスの「低い密度パリティチェック」コードに属して、RFC3453の意味で大きいブロックFECコードです。
Roca, et al. Standards Track [Page 1] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[1ページ]RFC5170LDPC階段と三角形FEC2008年6月
Table of Contents
目次
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 3 3. Definitions, Notations, and Abbreviations . . . . . . . . . . 3 3.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 3.2. Notations . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 5 4. Formats and Codes . . . . . . . . . . . . . . . . . . . . . . 6 4.1. FEC Payload IDs . . . . . . . . . . . . . . . . . . . . . 6 4.2. FEC Object Transmission Information . . . . . . . . . . . 6 4.2.1. Mandatory Element . . . . . . . . . . . . . . . . . . 6 4.2.2. Common Elements . . . . . . . . . . . . . . . . . . . 6 4.2.3. Scheme-Specific Elements . . . . . . . . . . . . . . . 7 4.2.4. Encoding Format . . . . . . . . . . . . . . . . . . . 8 5. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2. Determining the Maximum Source Block Length (B) . . . . . 11 5.3. Determining the Encoding Symbol Length (E) and Number of Encoding Symbols per Group (G) . . . . . . . . . . . . 12 5.4. Determining the Maximum Number of Encoding Symbols Generated for Any Source Block (max_n) . . . . . . . . . . 13 5.5. Determining the Number of Encoding Symbols of a Block (n) . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 5.6. Identifying the G Symbols of an Encoding Symbol Group . . 14 5.7. Pseudo-Random Number Generator . . . . . . . . . . . . . . 17 6. Full Specification of the LDPC-Staircase Scheme . . . . . . . 19 6.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2. Parity Check Matrix Creation . . . . . . . . . . . . . . . 19 6.3. Encoding . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.4. Decoding . . . . . . . . . . . . . . . . . . . . . . . . . 21 7. Full Specification of the LDPC-Triangle Scheme . . . . . . . . 22 7.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.2. Parity Check Matrix Creation . . . . . . . . . . . . . . . 22 7.3. Encoding . . . . . . . . . . . . . . . . . . . . . . . . . 23 7.4. Decoding . . . . . . . . . . . . . . . . . . . . . . . . . 23 8. Security Considerations . . . . . . . . . . . . . . . . . . . 24 8.1. Problem Statement . . . . . . . . . . . . . . . . . . . . 24 8.2. Attacks Against the Data Flow . . . . . . . . . . . . . . 24 8.2.1. Access to Confidential Objects . . . . . . . . . . . . 24 8.2.2. Content Corruption . . . . . . . . . . . . . . . . . . 25 8.3. Attacks Against the FEC Parameters . . . . . . . . . . . . 26 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 11.1. Normative References . . . . . . . . . . . . . . . . . . . 27 11.2. Informative References . . . . . . . . . . . . . . . . . . 27 Appendix A. Trivial Decoding Algorithm (Informative Only) . . . . 30
1. 序論. . . . . . . . . . . . . . . . . . . . . . . . . 3 2。 要件記法. . . . . . . . . . . . . . . . . . . . 3 3 定義、記法、および略語. . . . . . . . . . 3 3.1。 定義. . . . . . . . . . . . . . . . . . . . . . . 3 3.2。 記法. . . . . . . . . . . . . . . . . . . . . . . . 4 3.3。 略語. . . . . . . . . . . . . . . . . . . . . . 5 4。 形式とコード. . . . . . . . . . . . . . . . . . . . . . 6 4.1。 FEC有効搭載量ID. . . . . . . . . . . . . . . . . . . . . 6 4.2。 FEC物のトランスミッション情報. . . . . . . . . . . 6 4.2.1。 義務的な要素. . . . . . . . . . . . . . . . . . 6 4.2.2。 一般的な要素. . . . . . . . . . . . . . . . . . . 6 4.2.3。 計画特有の要素. . . . . . . . . . . . . . . 7 4.2.4。 形式. . . . . . . . . . . . . . . . . . . 8 5をコード化します。 手順. . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.1。 一般.95.2。 最大のソースブロック長(B). . . . . 11 5.3を決定します。 コード化シンボルのグループ(G). . . . . . . . . . . . 12 5.4あたりのシンボルの長さ(E)に数にコード化を決定します。 コード化シンボルの最大数を測定すると、.135.5はどんなソースブロック(最大)にも発生しました。 (n) .145.6に1ブロックのコード化シンボルの数を測定します。 コード化シンボルのGシンボルを特定して、.145.7を分類してください。 疑似乱数生成器. . . . . . . . . . . . . . 17 6。 LDPC-階段計画. . . . . . . 19 6.1の完全な仕様。 一般.196.2。 パリティチェックマトリクス創造. . . . . . . . . . . . . . . 19 6.3。 .216.4をコード化します。 解読. . . . . . . . . . . . . . . . . . . . . . . . . 21 7。 LDPC-三角形計画. . . . . . . . 22 7.1の完全な仕様。 一般.227.2。 パリティチェックマトリクス創造. . . . . . . . . . . . . . . 22 7.3。 .237.4をコード化します。 解読. . . . . . . . . . . . . . . . . . . . . . . . . 23 8。 セキュリティ問題. . . . . . . . . . . . . . . . . . . 24 8.1。 問題声明. . . . . . . . . . . . . . . . . . . . 24 8.2。 データフロー. . . . . . . . . . . . . . 24 8.2.1に対する攻撃。 .2に物. . . . . . . . . . . . 24 8.2に秘密にアクセスしてください。 満足している不正. . . . . . . . . . . . . . . . . . 25 8.3。 FECパラメタ. . . . . . . . . . . . 26 9に対する攻撃。 IANA問題. . . . . . . . . . . . . . . . . . . . . 27 10。 承認. . . . . . . . . . . . . . . . . . . . . . . 27 11。 参照. . . . . . . . . . . . . . . . . . . . . . . . . . 27 11.1。 引用規格. . . . . . . . . . . . . . . . . . . 27 11.2。 有益な参照. . . . . . . . . . . . . . . . . . 27の付録のA.の些細な解読アルゴリズム、(有益である、単に)、.30
Roca, et al. Standards Track [Page 2] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[2ページ]RFC5170LDPC階段と三角形FEC2008年6月
1. Introduction
1. 序論
[RFC3453] introduces large block FEC codes as an alternative to small block FEC codes like Reed-Solomon. The main advantage of such large block codes is the possibility to operate efficiently on source blocks with a size of several tens of thousands (or more) of source symbols. The present document introduces the Fully-Specified FEC Encoding ID 3 that is intended to be used with the LDPC-Staircase FEC codes, and the Fully-Specified FEC Encoding ID 4 that is intended to be used with the LDPC-Triangle FEC codes [RN04][MK03]. Both schemes belong to the broad class of large block codes. For a definition of the term Fully-Specified Scheme, see Section 4 of [RFC5052].
[RFC3453]はリード-ソロモンのような小さいブロックFECコードに代わる手段として大きいブロックFECコードを紹介します。 そのような大きいブロック・コードの主な利点はいくつかの何万ものソースシンボル(さらに)のサイズがあるソースブロックが効率的に作動する可能性です。 現在のドキュメントは、LDPC-階段FECコードで使用されることを意図するFullyによって指定されたFEC Encoding ID3を紹介して、LDPC-三角形FECコード[RN04][MK03]で使用されることを意図するFullyによって指定されたFEC Encoding ID4を紹介します。 両方の計画は広いクラスの大きいブロック・コードに属します。 用語のFullyによって指定されたSchemeの定義に関しては、[RFC5052]のセクション4を見てください。
LDPC codes rely on a dedicated matrix, called a "parity check matrix", at the encoding and decoding ends. The parity check matrix defines relationships (or constraints) between the various encoding symbols (i.e., source symbols and repair symbols), which are later used by the decoder to reconstruct the original k source symbols if some of them are missing. These codes are systematic, in the sense that the encoding symbols include the source symbols in addition to the repair symbols.
LDPCコードはコード化のときに「パリティチェックマトリクス」と呼ばれる専用マトリクスを当てにします、そして、解読は終わります。 パリティチェックマトリクスは様々なコード化シンボル(すなわち、ソースシンボルと修理シンボル)の間の関係(または、規制)を定義します。それらのいくつかがなくなるなら、シンボルは後でデコーダによって使用されて、オリジナルのkソースシンボルを再建します。 これらのコードは系統的です、コード化シンボルが修理シンボルに加えてソースシンボルを含んでいるという意味で。
Since the encoder and decoder must operate on the same parity check matrix, information must be communicated between them as part of the FEC Object Transmission Information.
エンコーダとデコーダが同じパリティチェックマトリクスを作動させなければならないので、FEC Object Transmission情報の一部としてそれらの間で情報を伝えなければなりません。
A publicly available reference implementation of these codes is available and distributed under a GNU/LGPL (Lesser General Public License) [LDPC-codec]. Besides, the code extracts included in this document are directly contributed to the IETF process by the authors of this document and by Radford M. Neal.
これらのコードの公的に利用可能な参照実現は、利用可能でGNU/LGPL(より少ない司令官のPublic License)[LDPC-コーデック]の下で分配されています。 そのうえ、本書では含まれていたコード抽出はこのドキュメントの作者とラッドフォードM.ニールによって直接IETFの過程に寄付されます。
2. Requirements Notation
2. 要件記法
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
キーワード“MUST"、「必須NOT」が「必要です」、“SHALL"、「」、“SHOULD"、「「推薦され」て、「5月」の、そして、「任意」のNOTは[RFC2119]で説明されるように本書では解釈されることであるべきですか?
3. Definitions, Notations, and Abbreviations
3. 定義、記法、および略語
3.1. Definitions
3.1. 定義
This document uses the same terms and definitions as those specified in [RFC5052]. Additionally, it uses the following definitions:
ものが[RFC5052]で指定したようにこのドキュメントは同じ用語と定義を使用します。 さらに、以下の定義を使用します:
Source Symbol: a unit of data used during the encoding process
ソースシンボル: コード化の過程の間に使用されるデータのユニット
Roca, et al. Standards Track [Page 3] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[3ページ]RFC5170LDPC階段と三角形FEC2008年6月
Encoding Symbol: a unit of data generated by the encoding process
シンボルをコード化します: コード化工程で発生するデータのユニット
Repair Symbol: an encoding symbol that is not a source symbol
シンボルを修理してください: ソースシンボルでないコード化シンボル
Code Rate: the k/n ratio, i.e., the ratio between the number of source symbols and the number of encoding symbols. The code rate belongs to a ]0; 1] interval. A code rate close to 1 indicates that a small number of repair symbols have been produced during the encoding process
レートをコード化してください: すなわち、k/n比、ソースシンボルの数とコード化シンボルの数の間の比率。 コードレートはa]0に属します。 1] 間隔。 およそ1のコードレートは、少ない数の修理シンボルがコード化の過程の間作成されているのを示します。
Systematic Code: FEC code in which the source symbols are part of the encoding symbols
システマティック・コード: ソースシンボルがコード化シンボルの一部であるFECコード
Source Block: a block of k source symbols that are considered together for the encoding
ソースブロック: コード化のために一緒に考えられる1ブロックのkソースシンボル
Encoding Symbol Group: a group of encoding symbols that are sent together, within the same packet, and whose relationships to the source object can be derived from a single Encoding Symbol ID
シンボルをコード化して、分類してください: 同じパケットの中で一緒に送って、単一のEncoding Symbol IDからソース物との関係を得ることができるコード化シンボルのグループ
Source Packet: a data packet containing only source symbols
ソースパケット: ソースシンボルだけを含むデータ・パケット
Repair Packet: a data packet containing only repair symbols
パケットを修理してください: 修理シンボルだけを含むデータ・パケット
Packet Erasure Channel: a communication path where packets are either dropped (e.g., by a congested router or because the number of transmission errors exceeds the correction capabilities of the physical layer codes) or received. When a packet is received, it is assumed that this packet is not corrupted
パケット消去チャンネル: パケットがどちらかである通信路は、低下したか(例えば、aがルータを充血させたか、または伝送エラーの数が修正を超えているので、身体検査の能力はコードを層にします)、または受信されました。 パケットが受け取られているとき、このパケットが崩壊しないと思われます。
3.2. Notations
3.2. 記法
This document uses the following notations:
このドキュメントは以下の記法を使用します:
L denotes the object transfer length in bytes.
Lはバイトで表現される物の転送の長さを指示します。
k denotes the source block length in symbols, i.e., the number of source symbols of a source block.
kはシンボルのソースブロック長、すなわち、1つのソースブロックのソースシンボルの数を指示します。
n denotes the encoding block length, i.e., the number of encoding symbols generated for a source block.
nはコード化ブロック長、すなわち、シンボルがソースブロックに発生させたコード化の数を指示します。
E denotes the encoding symbol length in bytes.
Eはバイトで表現されるコード化しているシンボルの長さを指示します。
B denotes the maximum source block length in symbols, i.e., the maximum number of source symbols per source block.
Bはシンボルの最大のソースブロック長、すなわち、ソースブロックあたりのソースシンボルの最大数を指示します。
Roca, et al. Standards Track [Page 4] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[4ページ]RFC5170LDPC階段と三角形FEC2008年6月
N denotes the number of source blocks into which the object shall be partitioned.
Nは物が仕切られるものとするソースブロックの数を指示します。
G denotes the number of encoding symbols per group, i.e., the number of symbols sent in the same packet.
Gは1グループあたりのシンボル、すなわち、同じパケットで送られたシンボルの数をコード化する数を指示します。
CR denotes the "code rate", i.e., the k/n ratio.
CRは「コードレート」、すなわち、k/n比を指示します。
max_n denotes the maximum number of encoding symbols generated for any source block. This is in particular the number of encoding symbols generated for a source block of size B.
最大はシンボルがどんなソースブロックにも発生させたコード化の最大数を指示します。 これは特にシンボルがサイズBのソースブロックに発生させたコード化の数です。
H denotes the parity check matrix.
Hはパリティチェックマトリクスを指示します。
N1 denotes the target number of "1s" per column in the left side of the parity check matrix.
N1はパリティチェックマトリクスの左側で1コラムあたりの「1」の目標番号を指示します。
N1m3 denotes the value N1 - 3, where N1 is the target number of "1s" per column in the left side of the parity check matrix.
N1m3は値のN1を指示します--3。(そこでは、N1がパリティチェックマトリクスの左側のコラムあたりの「1」の目標番号です)。
pmms_rand(m) denotes the pseudo-random number generator defined in Section 5.7 that returns a new random integer in [0; m-1] each time it is called.
pmms_底ならし革(m)はそれが呼ばれる[0; m-1]毎回の間に新しい無作為の整数を返すセクション5.7で定義された疑似乱数生成器を指示します。
3.3. Abbreviations
3.3. 略語
This document uses the following abbreviations:
このドキュメントは以下の略語を使用します:
ESI: Encoding Symbol ID
ESI: Symbol IDをコード化します。
FEC OTI: FEC Object Transmission Information
FEC OTI: FEC物のトランスミッション情報
FPI: FEC Payload ID
FPI: FEC Payload ID
LDPC: Low Density Parity Check
LDPC: 低い密度パリティチェック
PRNG: Pseudo-Random Number Generator
PRNG: 疑似乱数生成器
Roca, et al. Standards Track [Page 5] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[5ページ]RFC5170LDPC階段と三角形FEC2008年6月
4. Formats and Codes
4. 形式とコード
4.1. FEC Payload IDs
4.1. FEC有効搭載量ID
The FEC Payload ID is composed of the Source Block Number and the Encoding Symbol ID:
FEC Payload IDはSource Block NumberとEncoding Symbol IDで構成されます:
The Source Block Number (12-bit field) identifies from which source block of the object the encoding symbol(s) in the packet payload is(are) generated. There is a maximum of 2^^12 blocks per object. Source block numbering starts at 0.
Source Block Number(12ビットの分野)は、パケットペイロードのコード化シンボルが物のどのソースブロックから発生するかを(あります)特定します。 最大2^^が1物あたり12ブロックあります。 ソースブロック付番は0時に始まります。
The Encoding Symbol ID (20-bit field) identifies which encoding symbol(s) generated from the source block is(are) carried in the packet payload. There is a maximum of 2^^20 encoding symbols per block. The first k values (0 to k-1) identify source symbols, the remaining n-k values (k to n-k-1) identify repair symbols.
Encoding Symbol ID(20ビットの分野)は、ソースブロックから発生するどのコード化シンボルがパケットペイロードで運ばれるかを(あります)特定します。 1ブロックあたりのシンボルをコード化する最大2^^20があります。 最初kの値(k-1への0)はソースシンボルを特定して、残っているn-k値(n-k-1へのk)は修理シンボルを特定します。
There MUST be exactly one FEC Payload ID per packet. In the case of an Encoding Symbol Group, when multiple encoding symbols are sent in the same packet, the FEC Payload ID refers to the first symbol of the packet. The other symbols can be deduced from the ESI of the first symbol thanks to a dedicated function, as explained in Section 5.6
1パケットあたりの1FECのPayload IDがまさにあるに違いありません。 Encoding Symbol Groupの場合では、同じパケットで複数のコード化シンボルを送るとき、FEC Payload IDはパケットの最初のシンボルを示します。 ひたむきな機能のおかげで最初のシンボルのESIから他のシンボルを推論できます、セクション5.6で説明されるように
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Block Number | Encoding Symbol ID (20 bits) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ソース街区番号| Symbol ID(20ビット)をコード化します。| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: FEC Payload ID encoding format for FEC Encoding ID 3 and 4
図1: FEC Encoding ID3と4のためのFEC有効搭載量IDコード化形式
4.2. FEC Object Transmission Information
4.2. FEC物のトランスミッション情報
4.2.1. Mandatory Element
4.2.1. 義務的な要素
o FEC Encoding ID: the LDPC-Staircase and LDPC-Triangle Fully- Specified FEC Schemes use the FEC Encoding ID 3 (Staircase) and 4 (Triangle), respectively.
o IDをコード化するFEC: LDPC-階段とLDPC-三角形のFullyの指定されたFEC Schemesはそれぞれ、FEC Encoding ID3(階段)と4(三角形)を使用します。
4.2.2. Common Elements
4.2.2. 一般的なElements
The following elements MUST be defined with the present FEC Schemes:
現在のFEC Schemesと共に以下の要素を定義しなければなりません:
o Transfer-Length (L): a non-negative integer indicating the length of the object in bytes. There are some restrictions on the maximum Transfer-Length that can be supported:
o 転送長さの(L): 非負の整数に、バイトで表現される物の長さを示します。 いくつかの制限が支持できる最大のTransfer-長さにあります:
Roca, et al. Standards Track [Page 6] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[6ページ]RFC5170LDPC階段と三角形FEC2008年6月
maximum transfer length = 2^^12 * B * E
最大の転送の長さは2^^12*B*Eと等しいです。
For instance, if B=2^^19 (because of a code rate of 1/2, Section 5.2), and if E=1024 bytes, then the maximum transfer length is 2^^41 bytes (or 2 TB). The upper limit, with symbols of size 2^^16-1 bytes and a code rate larger or equal to 1/2, amounts to 2^^47 bytes (or 128 TB).
例えば、そして、B=2^^19(1/2のコードレートによるセクション5.2)であるなら、最大の転送の長さは1024E=バイトであるなら、2^^41バイト(または、2TB)です。 サイズ2^^16-1バイトとコードレートのシンボルが、より大きい上限か1/2への同輩が2^^47バイト(または、128TB)に達します。
o Encoding-Symbol-Length (E): a non-negative integer indicating the length of each encoding symbol in bytes.
o シンボルの長さをコード化している(E): 非負の整数に、バイトで表現されるシンボルをコード化しながら、それぞれの長さを示します。
o Maximum-Source-Block-Length (B): a non-negative integer indicating the maximum number of source symbols in a source block. There are some restrictions on the maximum B value, as explained in Section 5.2.
o 最大のソースブロック長(B): 非負の整数に、ソースブロックのソースシンボルの最大数を示します。 いくつかの制限がセクション5.2で説明されるように最大のB値にあります。
o Max-Number-of-Encoding-Symbols (max_n): a non-negative integer indicating the maximum number of encoding symbols generated for any source block. There are some restrictions on the maximum max_n value. In particular max_n is at most equal to 2^^20.
o コード化シンボルのマックスNumber(最大): 非負の整数に、シンボルがどんなソースブロックにも発生させたコード化の最大数を示します。 いくつかの制限が最大の最大値にあります。 特に、最大は2^^20と高々等しいです。
Section 5 explains how to define the values of each of these elements.
セクション5はそれぞれのこれらの要素の値を定義する方法を説明します。
4.2.3. Scheme-Specific Elements
4.2.3. 計画特有のElements
The following elements MUST be defined with the present FEC Scheme:
現在のFEC Schemeと共に以下の要素を定義しなければなりません:
o N1m3: an integer between 0 (default) and 7, inclusive. The target number of "1s" per column in the left side of the parity check matrix, N1, is then equal to N1m3 + 3 (see Sections 6.2 and 7.2). Using the default value of 0 for N1m3 is recommended when the sender has no information on the decoding scheme used by the receivers. A value greater than 0 for N1m3 can be a good choice in specific situations, e.g., with LDPC-staircase codes when the sender knows that all the receivers use a Gaussian elimination decoding scheme. Nevertheless, the current document does not mandate any specific value. This choice is left to the codec developer.
o N1m3: 0(デフォルト)と7の間の整数、包括的です。 パリティチェックマトリクスの左側のコラムあたりの「1」の目標番号(N1)はその時、N1m3+3と等しいです(セクション6.2と7.2を見てください)。 送付者が受信機で解読計画の情報を全く使用させないとき、N1m3に0のデフォルト値を使用するのはお勧めです。 送付者が、すべての受信機がガウス消去法解読計画を使用するのを知っているとき、N1m3のための値より多くの0は特定の状況、例えば、LDPC-階段コードで良い選択であるかもしれません。 それにもかかわらず、現在のドキュメントは少しの特定の値も強制しません。 この選択はコーデック開発者に任せます。
o G: an integer between 1 (default) and 31, inclusive, indicating the number of encoding symbols per group (i.e., per packet). The default value is 1, meaning that each packet contains exactly one symbol. Values greater than 1 can also be defined, as explained in Section 5.3.
o G: 1(デフォルト)とコード化シンボルのグループ(すなわち、パケットあたりの)あたりの数を示す包括的な31の間の整数。 各パケットがまさに1つのシンボルを含むことを意味して、デフォルト値は1です。 また、セクション5.3で説明されるように値より多くの1を定義できます。
Roca, et al. Standards Track [Page 7] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[7ページ]RFC5170LDPC階段と三角形FEC2008年6月
o PRNG seed: the seed is a 32-bit unsigned integer between 1 and 0x7FFFFFFE (i.e., 2^^31-2) inclusive. This value is used to initialize the Pseudo-Random Number Generator (Section 5.7).
o PRNGは種を蒔きます: 種子は1と0x7FFFFFFE(すなわち、2^^31-2)の間で包括的な32ビットの符号のない整数です。 この値は、Pseudo無作為のNumber Generator(セクション5.7)を初期化するのに使用されます。
4.2.4. Encoding Format
4.2.4. コード化形式
This section shows two possible encoding formats of the above FEC OTI. The present document does not specify when or how these encoding formats should be used.
このセクションは上のFEC OTIの2つの可能なコード化形式を示しています。 現在のドキュメントは、これらのコード化形式がいつかどのように使用されるべきであるかを指定しません。
4.2.4.1. Using the General EXT_FTI Format
4.2.4.1. 一般EXT_FTI形式を使用します。
The FEC OTI binary format is the following when the EXT_FTI mechanism is used (e.g., within the Asynchronous Layer Coding (ALC) [RMT-PI-ALC] or NACK-Oriented Reliable Multicast (NORM) [RMT-PI-NORM] protocols).
EXT_FTIメカニズムが使用されているとき(例えば、Asynchronous Layer Coding(ALC)[RMT-PI-ALC]かナックが指向のReliable Multicast(NORM)[RMT-PI-NORM]プロトコルの中の)、FEC OTIバイナリフォーマットは以下です。
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HET = 64 | HEL = 5 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Transfer-Length (L) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Encoding Symbol Length (E) | N1m3| G | B (MSB) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | B (LSB) | Max Nb of Enc. Symbols (max_n) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PRNG seed | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 興奮の=64| ヘル=5| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | 転送長さの(L)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | シンボルの長さ(E)をコード化します。| N1m3| G| B(MSB)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | B(LSB)| EncのマックスNb。 シンボル(最大)| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PRNG種子| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: EXT_FTI Header for FEC Encoding ID 3 and 4
図2: ID3と4をコード化するFECのためのEXT_FTIヘッダー
In particular:
特に:
o The Transfer-Length (L) field size (48 bits) is larger than the size required to store the maximum transfer length (Section 4.2.2) for field alignment purposes.
o サイズが最大の転送の長さ(セクション4.2.2)を格納するのが必要であるというよりもTransfer-長さの(L)分野サイズ(48ビット)は分野整列目的のために大きいです。
o The Maximum-Source-Block-Length (B) field (20 bits) is split into two parts: the 8 most significant bits (MSB) are in the third 32- bit word of the EXT_FTI, and the remaining 12 least significant bits (LSB) are in the fourth 32-bit word.
o Maximumソースブロックの長さの(B)分野(20ビット)は2つの部品に分けられます: 8つの最上位ビット(MSB)がEXT_FTIの3 32番目のビット単語にあります、そして、残っている12の最下位ビット(LSB)が4番目の32ビットの単語にあります。
Roca, et al. Standards Track [Page 8] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[8ページ]RFC5170LDPC階段と三角形FEC2008年6月
4.2.4.2. Using the FDT Instance (FLUTE-Specific)
4.2.4.2. FDT例を使用します。(フルートの特有)です。
When it is desired that the FEC OTI be carried in the File Delivery Table (FDT) Instance of a File Delivery over Unidirectional Transport (FLUTE) session [RMT-FLUTE], the following XML attributes must be described for the associated object:
Unidirectional Transport(FLUTE)セッション[RMT-FLUTE]の間、FEC OTIがFile DeliveryのFile Delivery Table(FDT)例で運ばれることが望まれているとき、関連物のために以下のXML属性について説明しなければなりません:
o FEC-OTI-FEC-Encoding-ID
o IDをコード化するFEC-OTI-FEC
o FEC-OTI-Transfer-length
o FEC-OTI転送の長さ
o FEC-OTI-Encoding-Symbol-Length
o シンボルの長さをコード化するFEC-OTI
o FEC-OTI-Maximum-Source-Block-Length
o FEC-OTIの最大のソースブロック長
o FEC-OTI-Max-Number-of-Encoding-Symbols
o コード化シンボルのFEC-OTIマックスNumber
o FEC-OTI-Scheme-Specific-Info
o FEC-OTIの計画の特定のインフォメーション
The FEC-OTI-Scheme-Specific-Info contains the string resulting from the Base64 encoding [RFC4648] of the following value:
FEC-OTIの計画の特定のインフォメーションは以下の価値の[RFC4648]をコード化するBase64から生じるストリングを含んでいます:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PRNG seed | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N1m3| G | +-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PRNG種子| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | N1m3| G| +-+-+-+-+-+-+-+-+
Figure 3: FEC OTI Scheme-Specific Information to be Included in the FDT Instance for FEC Encoding ID 3 and 4
図3: FEC Encoding ID3と4のためのFDT InstanceのIncludedであるFEC OTI Scheme特有の情報
During Base64 encoding, the 5 bytes of the FEC OTI Scheme-Specific Information are transformed into a string of 8 printable characters (in the 64-character alphabet) that is added to the FEC-OTI-Scheme- Specific-Info attribute.
Base64コード化の間、FEC OTI Scheme特有の情報の5バイトはFEC-OTI-計画の特定のインフォメーションの属性に加えられる一連の8つの印刷可能なキャラクタ(64文字のアルファベットの)に変えられます。
5. Procedures
5. 手順
This section defines procedures that are common to FEC Encoding IDs 3 and 4.
このセクションはFEC Encoding ID3と4に共通の手順を定義します。
5.1. General
5.1. 一般
The B (maximum source block length in symbols), E (encoding symbol length in bytes), and G (number of encoding symbols per group) parameters are first determined. The algorithms of Section 5.2 and
B(シンボルの最大のソースブロック長)、E(バイトで表現されるシンボルの長さをコード化する)、およびG(1グループあたりのコード化シンボルの数)パラメタは最初に、決定しています。 そしてセクション5.2のアルゴリズム。
Roca, et al. Standards Track [Page 9] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[9ページ]RFC5170LDPC階段と三角形FEC2008年6月
Section 5.3 MAY be used to that purpose. Using other algorithms is possible without compromising interoperability since the B, E, and G parameters are communicated to the receiver by means of the FEC OTI.
セクション5.3はその目的に慣れるかもしれません。 B、E、およびGパラメタがFEC OTIによって受信機に伝えられるので相互運用性で妥協しないで、他のアルゴリズムを使用するのは可能です。
Then, the source object MUST be partitioned using the block partitioning algorithm specified in [RFC5052]. To that purpose, the B, L (object transfer length in bytes), and E arguments are provided. As a result, the object is partitioned into N source blocks. These blocks are numbered consecutively from 0 to N-1. The first I source blocks consist of A_large source symbols, the remaining N-I source blocks consist of A_small source symbols. Each source symbol is E bytes in length, except perhaps the last symbol, which may be shorter.
そして、[RFC5052]で指定されたブロック仕切りのアルゴリズムを使用して、ソース物を仕切らなければなりません。 その目的に、B、L(バイトで表現される物の転送の長さ)、およびE議論を提供します。 その結果、物はNソースブロックに仕切られます。 これらのブロックは0〜N-1まで連続して付番されます。 Iソースが妨げる1番目はA_の大きいソースシンボルから成って、残っているN-IソースブロックはA_の小さいソースシンボルから成ります。 それぞれのソースシンボルは恐らく最後のシンボル以外の長さがEバイトです。それは、より短いかもしれません。
Then, the max_n (maximum number of encoding symbols generated for any source block) parameter is determined. The algorithm in Section 5.4 MAY be used to that purpose. Using another algorithm is possible without compromising interoperability since the max_n parameter is communicated to the receiver by means of the FEC OTI.
その時、最大(最大数についてどんなソースブロックにも発生するシンボルをコード化する)パラメタは決定しています。 セクション5.4のアルゴリズムはその目的に使用されるかもしれません。 最大パラメタがFEC OTIによって受信機に伝えられるので相互運用性で妥協しないで、別のアルゴリズムを使用するのは可能です。
For each block, the actual number of encoding symbols, n, MUST then be determined using the "n-algorithm" detailed in Section 5.5.
各ブロックに関しては、セクション5.5で詳細な「n-アルゴリズム」を使用して、シンボル、nをコード化する実数はそしてときに決定しているに違いありません。
Then, FEC encoding and decoding can be done block per block, independently. To that purpose, a parity check matrix is created, that forms a system of linear equations between the source and repair symbols of a given block, where the basic operator is XOR.
そして、FECコード化とブロックして1ブロックあたり、独自に解読できること。 その目的に、パリティチェックマトリクスは作成されて、それは与えられたブロックのソースと修理シンボルの間で一次方程式のシステムを形成します。そこでは、基本的なオペレータがXORです。
This parity check matrix is logically divided into two parts: the left side (from column 0 to k-1) describes the occurrences of each source symbol in the system of linear equations; the right side (from column k to n-1) describes the occurrences of each repair symbol in the system of linear equations. The only difference between the LDPC-Staircase and LDPC-Triangle schemes is the construction of this right sub-matrix. An entry (a "1") in the matrix at position (i,j) (i.e., at row i and column j) means that the symbol with ESI j appears in equation i of the system.
このパリティチェックマトリクスは2つの部品に論理的に分割されます: 左側(コラム0からk-1までの)は一次方程式のシステムにおける、それぞれのソースシンボルの発生について説明します。 右側(コラムkからn-1までの)は一次方程式のシステムにおける、それぞれの修理シンボルの発生について説明します。 LDPC-階段とLDPC-三角形計画の唯一の違いはこの正しいサブマトリクスの工事です。 エントリー、(「1インチ) ESI jとのシンボルがシステムの方程式iで見える位置(i、j)(すなわち、列iとコラムjにおける)のマトリクスが意味するコネ。」
When the parity symbols have been created, the sender transmits source and parity symbols. The way this transmission occurs can largely impact the erasure recovery capabilities of the LDPC-* FEC. In particular, sending parity symbols in sequence is suboptimal. Instead, it is usually recommended to shuffle these symbols. The interested reader will find more details in [NRFF05].
パリティシンボルを作成してあるとき、送付者はソースとパリティシンボルを伝えます。 このトランスミッションが起こる方法はLDPC-*FECの消去回復能力に主に影響を与えることができます。 パリティシンボルを送るのは連続して特に、準最適です。 代わりに、通常、これらのシンボルをシャッフルするのはお勧めです。 興味のある読者は[NRFF05]でその他の詳細を見つけるでしょう。
Roca, et al. Standards Track [Page 10] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[10ページ]RFC5170LDPC階段と三角形FEC2008年6月
The following sections detail how the B, E, G, max_n, and n parameters are determined (in Sections 5.2, 5.3, 5.4 and 5.5, respectively). Section 5.6 details how Encoding Symbol Groups are created, and finally, Section 5.7 covers the PRNG.
以下のセクションはB、E、G、最大、およびnパラメタがどう決定しているかを(セクション5.2、5.3、5.4、および5.5でそれぞれ)詳しく述べます。 セクション5.6はEncoding Symbol Groupsがどう作成されるかを詳しく述べます、そして、最終的に、セクション5.7はPRNGを覆います。
5.2. Determining the Maximum Source Block Length (B)
5.2. 最大のソースブロック長を測定します。(B)
The B parameter (maximum source block length in symbols) depends on several parameters: the code rate (CR), the Encoding Symbol ID field length of the FEC Payload ID (20 bits), as well as possible internal codec limitations.
Bパラメタ(シンボルの最大のソースブロック長)をいくつかのパラメタに依存します: コードレート(CR)、Encoding Symbol IDはFEC Payload ID(20ビット)の長さをさばきます、可能な内部のコーデック制限と同様に。
The B parameter cannot be larger than the following values, derived from the FEC Payload ID limitations, for a given code rate:
Bパラメタは与えられたコードレートの割にはFEC有効搭載量ID制限から得られた以下の値より大きいはずがありません:
max1_B = 2^^(20 - ceil(Log2(1/CR)))
max1_Bは2^^と等しいです。(20--ceil(Log2(1/CR)))
Some common max1_B values are:
いくつかの一般的なmax1_B値は以下の通りです。
o CR == 1 (no repair symbol): max1_B = 2^^20 = 1,048,576
o CR=1(修理シンボルがありません): max1_Bは2^^20 = 1,048,576と等しいです。
o 1/2 <= CR < 1: max1_B = 2^^19 = 524,288 symbols
o 1/2<はCR<1と等しいです: max1_Bは2^^19 = 524,288のシンボルと等しいです。
o 1/4 <= CR < 1/2: max1_B = 2^^18 = 262,144 symbols
o 1/4<はCR<1/2と等しいです: max1_Bは2^^18 = 262,144のシンボルと等しいです。
o 1/8 <= CR < 1/4: max1_B = 2^^17 = 131,072 symbols
o 1/8<はCR<1/4と等しいです: max1_Bは2^^17 = 131,072のシンボルと等しいです。
Additionally, a codec MAY impose other limitations on the maximum block size. For instance, this is the case when the codec uses internally 16-bit unsigned integers to store the Encoding Symbol ID, since it does not enable to store all the possible values of a 20-bit field. In that case, if for instance, 1/2 <= CR < 1, then the maximum source block length is 2^^15. Other limitations may also apply, for instance, because of a limited working memory size. This decision MUST be clarified at implementation time, when the target use case is known. This results in a max2_B limitation.
さらに、コーデックは他の制限を最大のブロック・サイズに課すかもしれません。 例えば、コーデックがEncoding Symbol IDを格納するのに内部的に16ビットの符号のない整数を使用するとき、これはそうです、20ビットの分野のすべての可能な値を店に可能にするというわけではないので。 その場合、例えば、1/2<がCR<1と等しいなら、最大のソースブロック長は2^^15です。 また、例えば、他の制限は限られた働く記憶容量のために適用されるかもしれません。 実行時間にこの決定をはっきりさせなければならなくて、目標使用であるときに、ケースは知られています。 これはmax2_B制限をもたらします。
Then, B is given by:
そして、以下はBを与えます。
B = min(max1_B, max2_B)
B=分(max1_B、max2_B)
Note that this calculation is only required at the coder, since the B parameter is communicated to the decoder through the FEC OTI.
この計算が符号化器で必要であるだけであることに注意してください、BパラメタがFEC OTIを通してデコーダに伝えられるので。
Roca, et al. Standards Track [Page 11] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[11ページ]RFC5170LDPC階段と三角形FEC2008年6月
5.3. Determining the Encoding Symbol Length (E) and Number of Encoding Symbols per Group (G)
5.3. コード化シンボルの1グループあたりのシンボルの長さ(E)に数にコード化を決定します。(G)
The E parameter usually depends on the maximum transmission unit on the path (PMTU) from the source to each receiver. In order to minimize the protocol header overhead (e.g., the Layered Coding Transport (LCT), UDP, IPv4, or IPv6 headers in the case of ALC), E is chosen to be as large as possible. In that case, E is chosen so that the size of a packet composed of a single symbol (G=1) remains below but close to the PMTU.
通常、Eパラメタはソースから各受信機までの経路(PMTU)のマキシマム・トランスミッション・ユニットに依存します。プロトコルヘッダーオーバーヘッド(ALCの場合における例えば、Layered Coding Transport(LCT)、UDP、IPv4、またはIPv6ヘッダー)を最小にして、Eは、できるだけ大きくなるように選ばれています。 その場合、Eが選ばれているので、ただ一つのシンボル(G=1)で構成されたパケットのサイズは近くが、PMTUの近くに残っています。
However, other considerations can exist. For instance, the E parameter can be made a function of the object transfer length. Indeed, LDPC codes are known to offer better protection for large blocks. In the case of small objects, it can be advantageous to reduce the encoding symbol length (E) in order to artificially increase the number of symbols and therefore the block size.
しかしながら、他の問題は存在できます。 例えば、Eパラメタは作られていて、物の機能が長さを移すということであるかもしれません。 本当に、LDPCコードが大量株のために、より良い保護を提供するのが知られています。 小さい物のケースでは、コード化しているシンボルの長さを減少させるのは、(E) シンボルの数としたがって、ブロック・サイズを人工的に増加させるように有利である場合があります。
In order to minimize the protocol header overhead, several symbols can be grouped in the same Encoding Symbol Group (i.e., G > 1). Depending on how many symbols are grouped (G) and on the packet loss rate (G symbols are lost for each packet erasure), this strategy might or might not be appropriate. A balance must therefore be found.
プロトコルヘッダーオーバーヘッドを最小にするために、同じEncoding Symbol Group(すなわち、G>1)でいくつかのシンボルを分類できます。 いくつのシンボルが(G)とパケット損失率(Gシンボルはそれぞれのパケット消去のために失われている)で分類されるかによって、この戦略は、適切であるかもしれない、または適切でないかもしれません。 したがって、バランスを見つけなければなりません。
The current specification does not mandate any value for either E or G. The current specification only provides an example of possible choices for E and G. Note that this choice is made by the sender, and the E and G parameters are then communicated to the receiver thanks to the FEC OTI. Note also that the decoding algorithm used influences the choice of the E and G parameters. Indeed, increasing the number of symbols will negatively impact the processing load when decoding is based (in part or totally) on Gaussian elimination, whereas the impacts will be rather low when decoding is based on the trivial algorithm sketched in Section 6.4.
現在の仕様は、G. Eか現在の仕様のどちらかのためのどんな値もこの選択が送付者によってされるEとG.Noteに可能な選択に関する例を供給するだけであるのを強制しません、そして、次に、EとGパラメタはFEC OTIのおかげで受信機に伝えられます。 また、使用される解読アルゴリズムがEとGパラメタの選択に影響を及ぼすことに注意してください。 本当に、解読がガウス消去法のときに基づいているとき(一部か完全に)、シンボルについて数を増やすのは否定的に処理負荷に影響を与えるでしょうが、解読がセクション6.4にスケッチされた些細なアルゴリズムに基づいているとき、衝撃はかなり低くなるでしょう。
Example:
例:
Let us assume that the trivial decoding algorithm sketched in Section 6.4 is used. First, define the target packet payload size, pkt_sz (at most equal to the PMTU minus the size of the various protocol headers). The pkt_sz must be chosen in such a way that the symbol size is an integer. This can require that pkt_sz be a multiple of 4, 8, or 16 (see the table below). Then calculate the number of packets in the object: nb_pkts = ceil(L / pkt_sz). Finally, thanks to nb_pkts, use the following table to find a possible G value.
セクション6.4にスケッチされた些細な解読アルゴリズムが使用されていると仮定しましょう。 まず最初に、目標パケットペイロードサイズを定義してください、pkt_sz(様々なプロトコルヘッダーのサイズはPMTUマイナスと高々等しいです)。 シンボルサイズが整数であるように方法でpkt_szを選ばなければなりません。 これは、pkt_szが4、8、または16の倍数であることを必要とすることができます(以下のテーブルを見てください)。 次に、物のパケットの数について計算してください: Nb_pktsはceil(L/pkt_sz)と等しいです。 Nb_pktsのおかげで最終的に以下のテーブルを使用して、可能なGが値であることがわかってください。
Roca, et al. Standards Track [Page 12] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[12ページ]RFC5170LDPC階段と三角形FEC2008年6月
+------------------------+----+-------------+-------------------+ | Number of packets | G | Symbol size | k | +------------------------+----+-------------+-------------------+ | 4000 <= nb_pkts | 1 | pkt_sz | 4000 <= k | | | | | | | 1000 <= nb_pkts < 4000 | 4 | pkt_sz / 4 | 4000 <= k < 16000 | | | | | | | 500 <= nb_pkts < 1000 | 8 | pkt_sz / 8 | 4000 <= k < 8000 | | | | | | | 1 <= nb_pkts < 500 | 16 | pkt_sz / 16 | 16 <= k < 8000 | +------------------------+----+-------------+-------------------+
+------------------------+----+-------------+-------------------+ | パケットの数| G| シンボルサイズ| k| +------------------------+----+-------------+-------------------+ | 4000<はNb_pktsと等しいです。| 1 | pkt_sz| 4000<はkと等しいです。| | | | | | | Nb_pkts<1000<=4000| 4 | pkt_sz / 4| 4000<はk<16000と等しいです。| | | | | | | 500 Nb_pkts<<=1000| 8 | pkt_sz / 8| k<4000<=8000| | | | | | | 1 <はNb_pkts<500と等しいです。| 16 | pkt_sz / 16| 16 k<<=8000| +------------------------+----+-------------+-------------------+
5.4. Determining the Maximum Number of Encoding Symbols Generated for Any Source Block (max_n)
5.4. シンボルがどんなソースブロックにも発生させたコード化の最大数を測定します。(最大)
The following algorithm MAY be used by a sender to determine the maximum number of encoding symbols generated for any source block (max_n) as a function of B and the target code rate. Since the max_n parameter is communicated to the decoder by means of the FEC OTI, another method MAY be used to determine max_n.
以下のアルゴリズムは、シンボルがBの機能と目標コードレートとしてどんなソースブロック(最大)にも発生させたコード化の最大数を測定するのに送付者によって使用されるかもしれません。 最大パラメタがFEC OTIによってデコーダに伝えられるので、別の方法は最大を決定するのに使用されるかもしれません。
Input:
以下を入力してください。
B: Maximum source block length, for any source block. Section 5.2 MAY be used to determine its value.
B: どんなソースブロック最大のソースブロック長。 セクション5.2は、値を決定するのに使用されるかもしれません。
CR: FEC code rate, which is provided by the user (e.g., when starting a FLUTE sending application). It is expressed as a floating point value. The CR value must be such that the resulting number of encoding symbols per block is at most equal to 2^^20 (Section 4.1).
CR: FECはレートをコード化します(例えば、FLUTEがアプリケーションを送り始めるとき)。(それは、ユーザによって提供されます)。 それは浮動小数点値として言い表されます。 CR値がそのようなものでなければならないので、1ブロックあたりのコード化シンボルの結果として起こる数は2^^20(セクション4.1)と高々等しいです。
Output:
出力:
max_n: Maximum number of encoding symbols generated for any source block.
最大: 最大数についてどんなソースブロックにも発生するシンボルをコード化すること。
Algorithm:
アルゴリズム:
max_n = ceil(B / CR);
最大はceilと等しいです(B/CR)。
if (max_n > 2^^20), then return an error ("invalid code rate");
(最大>2^^20)であるなら、誤り(「無効のコードレート」)を返してください。
(NB: if B has been defined as explained in Section 5.2, this error should never happen.)
(ネブラスカ: Bが説明されると定義されたなら、セクションでは、5.2、この誤りは決して起こるべきではありません。)
Roca, et al. Standards Track [Page 13] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[13ページ]RFC5170LDPC階段と三角形FEC2008年6月
5.5. Determining the Number of Encoding Symbols of a Block (n)
5.5. 1ブロックのコード化シンボルの数を測定します。(n)
The following algorithm, also called "n-algorithm", MUST be used by the sender and the receiver to determine the number of encoding symbols for a given block (n) as a function of B, k, and max_n.
送付者と受信機で以下のまた、「n-アルゴリズム」と呼ばれたアルゴリズムを使用して、B、k、および最大の機能としてコード化シンボルの与えられたブロック(n)数を測定しなければなりません。
Input:
以下を入力してください。
B: Maximum source block length, for any source block. At a sender, Section 5.2 MAY be used to determine its value. At a receiver, this value MUST be extracted from the received FEC OTI.
B: どんなソースブロック最大のソースブロック長。 送付者では、セクション5.2は、値を決定するのに使用されるかもしれません。 受信機では、容認されたFEC OTIからこの値を抽出しなければなりません。
k: Current source block length. At a sender or receiver, the block partitioning algorithm MUST be used to determine its value.
k: 現在のソースブロック長。 送付者か受信機では、値を決定するのにブロック仕切りのアルゴリズムを使用しなければなりません。
max_n: Maximum number of encoding symbols generated for any source block. At a sender, Section 5.4 MAY be used to determine its value. At a receiver, this value MUST be extracted from the received FEC OTI.
最大: 最大数についてどんなソースブロックにも発生するシンボルをコード化すること。 送付者では、セクション5.4は、値を決定するのに使用されるかもしれません。 受信機では、容認されたFEC OTIからこの値を抽出しなければなりません。
Output:
出力:
n: Number of encoding symbols generated for this source block.
n: シンボルがこのソースブロックに発生させたコード化の数。
Algorithm:
アルゴリズム:
n = floor(k * max_n / B);
nは床(k*最大/B)と等しいです。
5.6. Identifying the G Symbols of an Encoding Symbol Group
5.6. コード化シンボルのGシンボルを特定して、分類してください。
When multiple encoding symbols are sent in the same packet, the FEC Payload ID information of the packet MUST refer to the first encoding symbol. It MUST then be possible to identify each symbol from this single FEC Payload ID. To that purpose, the symbols of an Encoding Symbol Group (i.e., packet):
同じパケットで複数のコード化シンボルを送るとき、パケットのFEC有効搭載量ID情報は最初のコード化シンボルを示さなければなりません。 この単一のFEC Payload IDから各シンボルを特定するのはその時、可能であるに違いありません。 その目的、Encoding Symbol Group(すなわち、パケット)のシンボルに:
o MUST all be either source symbols or repair symbols. Therefore, only source packets and repair packets are permitted, not mixed ones.
o すべてソースシンボルであるかシンボルを修理しなければなりません。 ソースパケットと修理パケットだけがものを混ぜるのではなく、受入れられます。
o are identified by a function, sender(resp. receiver)_find_ESIs_of_group(), that takes as argument:
o それが議論としてみなす送付者(resp受信機)_が、__グループ()のESIs_がわかる機能で、特定されます:
* for a sender, the index of the Encoding Symbol Group (i.e., packet) that the application wants to create,
* 送付者、アプリケーションが作成したがっているEncoding Symbol Group(すなわち、パケット)のインデックスのために
* for a receiver, the ESI information contained in the FEC Payload ID.
* 受信機に関しては、ESI情報はFECにPayload IDを含みました。
Roca, et al. Standards Track [Page 14] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[14ページ]RFC5170LDPC階段と三角形FEC2008年6月
and returns a list of G Encoding Symbol IDs. In the case of a source packet, the G Encoding Symbol IDs are chosen consecutively, by incrementing the ESI. In the case of a repair packet, the G repair symbols are chosen randomly, as explained below.
そして、G Encoding Symbol IDのリターンaリスト。 ソースパケットのケースでは、G Encoding Symbol IDは、連続してESIを増加することによって、選ばれています。 修理パケットのケースでは、G修理シンボルは以下で説明されるように手当たりしだいに選ばれています。
o are stored in sequence in the packet, without any padding. In other words, the last byte of the i-th symbol is immediately followed by the first byte of (i+1)-th symbol.
o 連続してパケットでは、少しも詰め物なしで格納されます。 言い換えれば、最後のバイト、i、-、(i+1)の最初のバイトがすぐにシンボルの第あとに続く、-、第シンボル。
The system must first be initialized by creating a random permutation of the n-k indexes. This initialization function MUST be called immediately after creating the parity check matrix. More precisely, since the PRNG seed is not re-initialized, there must not have been a call to the PRNG function between the time the parity check matrix has been initialized and the time the following initialization function is called. This is true both at a sender and at a receiver.
最初に、n-kインデックスの無作為の順列を作成することによって、システムを初期化しなければなりません。 パリティチェックマトリクスを作成する直後この初期化機能を呼ばなければなりません。 より正確に、PRNG種子が再初期化されないので、パリティチェックマトリクスが初期化された時、以下の初期化機能が呼ばれる時の間のPRNG機能への呼び出しがあるはずがありませんでした。 これは送付者において受信機で本当です。
int *txseqToID; int *IDtoTxseq;
int*txseqToID。 int*IDtoTxseq。
/* * Initialization function. * Warning: use only when G > 1. */ void initialize_tables () { int i; int randInd; int backup;
/**初期設定機能。 * 警告: G>1であるときにだけ、使用します。 */空間が_テーブル()を初期化する、int i; int randInd; intバックアップ。
txseqToID = malloc((n-k) * sizeof(int)); IDtoTxseq = malloc((n-k) * sizeof(int)); if (txseqToID == NULL || IDtoTxseq == NULL) handle the malloc failures as appropriate... /* initialize the two tables that map ID * (i.e., ESI-k) to/from TxSequence. */ for (i = 0; i < n - k; i++) { IDtoTxseq[i] = i; txseqToID[i] = i; } /* now randomize everything */ for (i = 0; i < n - k; i++) { randInd = pmms_rand(n - k); backup = IDtoTxseq[i]; IDtoTxseq[i] = IDtoTxseq[randInd]; IDtoTxseq[randInd] = backup; txseqToID[IDtoTxseq[i]] = i;
txseqToIDはmalloc((n-k)*sizeof(int))と等しいです。 IDtoTxseqはmalloc((n-k)*sizeof(int))と等しいです。 (NULL| | txseqToID=IDtoTxseq=NULL)が適宜mallocの故障を扱うなら… /*はID*(すなわち、ESI-k)をTxSequenceからの/に写像する2個のテーブルを初期化します。 *randIndはpmms_底ならし革(n--k); IDtoTxseq[i]; IDtoTxseq[i]=IDtoTxseq[randInd]; IDtoTxseq[randInd]=がバックアップをとるバックアップ=; txseqToIDと等しいです。(i=0; i<n--k; i++)IDtoTxseq[i]=i; txseqToID[i]=i;/*のための/が現在すべてをランダマイズする、(i=0; i<n--k; i++)のための*/、[IDtoTxseq[i]]はiと等しいです。
Roca, et al. Standards Track [Page 15] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[15ページ]RFC5170LDPC階段と三角形FEC2008年6月
txseqToID[IDtoTxseq[randInd]] = randInd; } return; }
txseqToID[IDtoTxseq[randInd]]はrandIndと等しいです。 戻ってください。 }
It is then possible, at the sender, to determine the sequence of G Encoding Symbol IDs that will be part of the group.
それは、その時、グループの一部になるG Encoding Symbol IDの系列を決定するために送付者で可能です。
/* * Determine the sequence of ESIs for the packet under construction * at a sender. * Warning: use only when G > 1. * PktIdx (IN): index of the packet, in * {0..ceil(k/G)+ceil((n-k)/G)} range * ESIs[] (OUT): list of ESIs for the packet */ void sender_find_ESIs_of_group (int PktIdx, ESI_t ESIs[]) { int i;
/**はパケットのために送付者で工事*でESIsの系列を決定します。 * 警告: G>1であるときにだけ、使用します。 * PktIdx(IN): *0..ceil(k/G)+ceil(n-k)/G)範囲*ESIs[]のパケットのインデックス(OUT): __グループのパケット*/空間送付者_掘り出し物のESIs_のためのESIsのリスト、(int PktIdx、ESI_t ESIs[])、int i。
if (PktIdx < nbSourcePkts) { /* this is a source packet */ ESIs[0] = PktIdx * G; for (i = 1; i < G; i++) { ESIs[i] = (ESIs[0] + i) % k; } } else { /* this is a repair packet */ for (i = 0; i < G; i++) { ESIs[i] = k + txseqToID[(i + (PktIdx - nbSourcePkts) * G) % (n - k)]; } } return; }
(PktIdx<nbSourcePkts)である、/、*これが(i=1; i<G; i++)のためのaソースパケット*/ESIs[0]=PktIdx*Gである、ESIs[i]=(ESIs[0]+i)%k;、ほか、/、*これが(i=0; i<G; i++)のためのa修理パケット*/である、ESIs[i]=k+txseqToID(i+(PktIdx--nbSourcePkts)*G)%(n--k)];、戻ってください。 }
Similarly, upon receiving an Encoding Symbol Group (i.e., packet), a receiver can determine the sequence of G Encoding Symbol IDs from the first ESI, esi0, that is contained in the FEC Payload ID.
同様に、Encoding Symbol Group(すなわち、パケット)を受けるとき、受信機は最初のESI、FEC Payload IDに保管されているesi0からG Encoding Symbol IDの系列を決定できます。
Roca, et al. Standards Track [Page 16] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[16ページ]RFC5170LDPC階段と三角形FEC2008年6月
/* * Determine the sequence of ESIs for the packet received. * Warning: use only when G > 1. * esi0 (IN): : ESI contained in the FEC Payload ID * ESIs[] (OUT): list of ESIs for the packet */ void receiver_find_ESIs_of_group (ESI_t esi0, ESI_t ESIs[]) { int i;
/**は、パケットのためのESIsの系列が受けたことを決定します。 * 警告: G>1であるときにだけ、使用します。 * esi0(IN): : ESIはFECに有効搭載量ID*ESIs[](OUT)を含みました: __グループのパケット*/空間受信機_掘り出し物のESIs_のためのESIsのリスト、(ESI_t esi0、ESI_t ESIs[])、int i。
if (esi0 < k) { /* this is a source packet */ ESIs[0] = esi0; for (i = 1; i < G; i++) { ESIs[i] = (esi0 + i) % k; } } else { /* this is a repair packet */ for (i = 0; i < G; i++) { ESIs[i] = k + txseqToID[(i + IDtoTxseq[esi0 - k]) % (n - k)]; } } }
(esi0<k)である、/、*これが(i=1; i<G; i++)のためのaソースパケット*/ESIs[0]=esi0である、ESIs[i]=(esi0+i)%k;、ほか、/、*これが(i=0; i<G; i++)のためのa修理パケット*/である、ESIs[i]=k+txseqToID(i+IDtoTxseq[esi0--k])%(n--k)]。
5.7. Pseudo-Random Number Generator
5.7. 疑似乱数生成器
The FEC Encoding IDs 3 and 4 rely on a pseudo-random number generator (PRNG) that must be fully specified, in particular in order to enable the receivers and the senders to build the same parity check matrix.
FEC Encoding ID3と4は受信機を可能にするために特定で完全に指定されていて同じパリティチェックマトリクスを造る送付者であるに違いない疑似乱数生成器(PRNG)を当てにします。
The Park-Miler "minimal standard" PRNG [PM88] MUST be used. It defines a simple multiplicative congruential algorithm: Ij+1 = A * Ij (modulo M), with the following choices: A = 7^^5 = 16807 and M = 2^^31 - 1 = 2147483647. A validation criteria of such a PRNG is the following: if seed = 1, then the 10,000th value returned MUST be equal to 1043618065.
Park-マイル走者「最小量の規格」PRNG[PM88]を使用しなければなりません。 それは簡単な乗法的なcongruentialアルゴリズムを定義します: Ij+1は以下の選択で*Ij(法M)と等しいです: =7^^5 = 16807とMは2^^31と等しいです--1 = 2147483647。 そのようなPRNGの合法化評価基準は以下です: 種子=1であるなら、返された10,000番目の値は1043618065と等しいに違いありません。
Several implementations of this PRNG are known and discussed in the literature. An optimized implementation of this algorithm, using only 32-bit mathematics, and which does not require any division, can be found in [rand31pmc]. It uses the Park and Miller algorithm [PM88] with the optimization suggested by D. Carta in [CA90]. The history behind this algorithm is detailed in [WI08]. Yet, any other
文学でこのPRNGのいくつかの実現について、知られて、議論します。 このアルゴリズムの最適化された実現、32ビットだけを使用して、数学とどれがそうしないかは分割を必要として、[rand31pmc]で見つけることができます。 それは[CA90]でD.Cartaによって勧められる最適化と共にParkとミラーアルゴリズム[PM88]を使用します。 このアルゴリズムの後ろの歴史は[WI08]で詳細です。 まだ、いかなる他のも
Roca, et al. Standards Track [Page 17] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[17ページ]RFC5170LDPC階段と三角形FEC2008年6月
implementation of the PRNG algorithm that matches the above validation criteria, like the ones detailed in [PM88], is appropriate.
[PM88]で詳細なもののように上の合法化評価基準に合っているPRNGアルゴリズムの実現は適切です。
This PRNG produces, natively, a 31-bit value between 1 and 0x7FFFFFFE (2^^31-2) inclusive. Since it is desired to scale the pseudo-random number between 0 and maxv-1 inclusive, one must keep the most significant bits of the value returned by the PRNG (the least significant bits are known to be less random, and modulo-based solutions should be avoided [PTVF92]). The following algorithm MUST be used:
このPRNGは1と0x7FFFFFFE(2^^31-2)の間でネイティブに包括的に31ビットの値を生産します。 包括的に0とmaxv-1の間の擬似乱数をスケーリングすることが望まれていて、PRNGが価値の最も重要なビットを返し続けなければなりません(最下位ビットがそれほど無作為でないことが知られて、法ベースの解決策は避けられるべきです[PTVF92])。 以下のアルゴリズムを使用しなければなりません:
Input:
以下を入力してください。
raw_value: random integer generated by the inner PRNG algorithm, between 1 and 0x7FFFFFFE (2^^31-2) inclusive.
生の_値: 1と0x7FFFFFFEの間の内側のPRNGアルゴリズム(2^^31-2)で包括的に発生する無作為の整数。
maxv: upper bound used during the scaling operation.
maxv: スケーリング操作の間に使用される上限。
Output:
出力:
scaled_value: random integer between 0 and maxv-1 inclusive.
スケーリングされた_値: 0とmaxv-1の間で包括的な無作為の整数。
Algorithm:
アルゴリズム:
scaled_value = (unsigned long) ((double)maxv * (double)raw_value / (double)0x7FFFFFFF);
スケーリングされた_値は(長さ無記名の)と等しいです((二重)のmaxv*(二重)の生の_価値/(二重)の0x7FFFFFFF)。
(NB: the above C type casting to unsigned long is equivalent to using floor() with positive floating point values.)
(ネブラスカ: なかなか無記名に投げかけない上のCタイプは上向きの浮動小数点値のために床()を使用するのに同等です。)
In this document, pmms_rand(maxv) denotes the PRNG function that implements the Park-Miller "minimal standard" algorithm, defined above, and that scales the raw value between 0 and maxv-1 inclusive, using the above scaling algorithm. Additionally, a function should be provided to enable the initialization of the PRNG with a seed (i.e., a 31-bit integer between 1 and 0x7FFFFFFE inclusive) before calling pmms_rand(maxv) the first time.
本書では、pmms_底ならし革(maxv)は上で定義されたPark-ミラー「最小量の規格」アルゴリズムを実行して、包括的に0とmaxv-1の間の生の値をスケーリングするPRNG機能を指示します、上のスケーリングアルゴリズムを使用して。 さらに、1回目にpmmsを_底ならし革(maxv)と呼ぶ前の種子(すなわち、1と0x7FFFFFFEの間で包括的な31ビットの整数)によるPRNGの初期化を可能にするために機能を提供するべきです。
Roca, et al. Standards Track [Page 18] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[18ページ]RFC5170LDPC階段と三角形FEC2008年6月
6. Full Specification of the LDPC-Staircase Scheme
6. LDPC-階段計画の完全な仕様
6.1. General
6.1. 一般
The LDPC-Staircase scheme is identified by the Fully-Specified FEC Encoding ID 3.
LDPC-階段計画はFullyによって指定されたFEC Encoding ID3によって特定されます。
The PRNG used by the LDPC-Staircase scheme must be initialized by a seed. This PRNG seed is an instance-specific FEC OTI attribute (Section 4.2.3).
種子でLDPC-階段計画によって使用されるPRNGを初期化しなければなりません。 このPRNG種子は例の特有のFEC OTI属性(セクション4.2.3)です。
6.2. Parity Check Matrix Creation
6.2. パリティチェックマトリクス創造
The LDPC-Staircase matrix can be divided into two parts: the left side of the matrix defines in which equations the source symbols are involved; the right side of the matrix defines in which equations the repair symbols are involved.
LDPC-階段マトリクスを2つの部品に分割できます: マトリクスの左側は、ソースシンボルがどの方程式にかかわるかを定義します。 マトリクスの右側は、修理シンボルがどの方程式にかかわるかを定義します。
The left side MUST be generated by using the following function:
左側は以下の機能を使用することによって、発生しなければなりません:
/* * Initialize the left side of the parity check matrix. * This function assumes that an empty matrix of size n-k * k has * previously been allocated/reset and that the matrix_has_entry(), * matrix_insert_entry() and degree_of_row() functions can access it. * (IN): the k, n and N1 parameters. */ void left_matrix_init (int k, int n, int N1) { int i; /* row index or temporary variable */ int j; /* column index */ int h; /* temporary variable */ int t; /* left limit within the list of possible choices u[] */ int u[N1*MAX_K]; /* table used to have a homogeneous 1 distrib. */
/**はパリティチェックマトリクスの左側を初期化します。 * *この機能はサイズn-k*kの空のマトリクスには以前に割り当てたか、またはリセットした*があって、マトリクス_に_エントリー()があると仮定して、_列()機能のマトリクス_挿入_エントリー()と度_はそれにアクセスできます。 * (中): k、n、およびN1パラメタ。 */空間左_マトリクス_イニット(int k、int n、int N1)、int i; /*列インデックスか一時的数値変数**/int j; /*列番号*/int h;/一時的な可変*/int t; /*は可能な選択のリストの中の限界をu[]*/int uに残しました[N1*MAX_K]; /*テーブルには、a均質の1distrib*/がありました。
/* Initialize a list of all possible choices in order to * guarantee a homogeneous "1" distribution */ for (h = N1*k-1; h >= 0; h--) { u[h] = h % (n-k); }
/*がすべての可能な選択のリストを初期化する、*均質の「(h=N1*k-1; h>=0(h))のための1インチ分配*/」を保証してください。h u[h]=%(n-k)。
Roca, et al. Standards Track [Page 19] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[19ページ]RFC5170LDPC階段と三角形FEC2008年6月
/* Initialize the matrix with N1 "1s" per column, homogeneously */ t = 0; for (j = 0; j < k; j++) { /* for each source symbol column */ for (h = 0; h < N1; h++) { /* add N1 "1s" */ /* check that valid available choices remain */ for (i = t; i < N1*k && matrix_has_entry(u[i], j); i++); if (i < N1*k) { /* choose one index within the list of possible * choices */ do { i = t + pmms_rand(N1*k-t); } while (matrix_has_entry(u[i], j)); matrix_insert_entry(u[i], j);
/*は*/t=0をN1「1」との1コラムあたりのマトリクスと、等質的に初期化します。 for (j = 0; j < k; j++) { /* for each source symbol column */ for (h = 0; h < N1; h++) { /* add N1 "1s" */ /* check that valid available choices remain */ for (i = t; i < N1*k && matrix_has_entry(u[i], j); i++); if (i < N1*k) { /* choose one index within the list of possible * choices */ do { i = t + pmms_rand(N1*k-t); } while (matrix_has_entry(u[i], j)); matrix_insert_entry(u[i], j);
/* replace with u[t] which has never been chosen */ u[i] = u[t]; t++; } else { /* no choice left, choose one randomly */ do { i = pmms_rand(n-k); } while (matrix_has_entry(i, j)); matrix_insert_entry(i, j); } } }
*が*/u[i]が一度も選ばれたことがないu[t]に取り替える/はu[t]と等しいです。 t++。 ほか、/、*選択が全く残されないで、手当たりしだいに1つを選んでください、*/がそうする、i=pmms_底ならし革(n-k); ゆったり過ごします(マトリクス_には、_エントリー(i、j)があります)。 マトリクス_挿入_エントリー(i、j)。 } } }
/* Add extra bits to avoid rows with less than two "1s". * This is needed when the code rate is smaller than 2/(2+N1) */ for (i = 0; i < n-k; i++) { /* for each row */ if (degree_of_row(i) == 0) { j = pmms_rand(k); matrix_insert_entry(i, j); } if (degree_of_row(i) == 1) { do { j = pmms_rand(k); } while (matrix_has_entry(i, j)); matrix_insert_entry(i, j); } } }
/*は、2「1」に従った列を避けるために余分なビットを加えます。 * 必要..コード..レート..小さい..こぐ..度..列..底ならし革..マトリクス..差し込み..エントリー..度..列..底ならし革..ゆったり過ごす..マトリクス..持つ..エントリー..マトリクス..差し込み..エントリー
Roca, et al. Standards Track [Page 20] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[20ページ]RFC5170LDPC階段と三角形FEC2008年6月
The right side (the staircase) MUST be generated by using the following function:
右側(階段)は以下の機能を使用することによって、発生しなければなりません:
/* * Initialize the right side of the parity check matrix with a * staircase structure. * (IN): the k and n parameters. */ void right_matrix_staircase_init (int k, int n) { int i; /* row index */
/**は*階段構造でパリティチェックマトリクスの右側を初期化します。 * (中): kとnパラメタ。 */空間権利_マトリクス_階段_イニット(int k、int n)、int i、; /*列インデックス*/
matrix_insert_entry(0, k); /* first row */ for (i = 1; i < n-k; i++) { /* for the following rows */ matrix_insert_entry(i, k+i); /* identity */ matrix_insert_entry(i, k+i-1); /* staircase */ } }
マトリクス_挿入_エントリー(0、k)。 /*は最初に、(iは1と等しいです; i<n-k; i++) 以下の列の*/マトリクス_差し込み_エントリー(i、k+i)への/*; /*アイデンティティ*/マトリクス_差し込み_エントリー(i、k+i-1); /*階段*/}によって*/をこぎます。
Note that just after creating this parity check matrix, when Encoding Symbol Groups are used (i.e., G > 1), the function initializing the two random permutation tables (Section 5.6) MUST be called. This is true both at a sender and at a receiver.
Encoding Symbol Groupsが使用されているとき(すなわち、G>1)このパリティチェックマトリクスを作成したすぐ後に2個の無作為の置換表(セクション5.6)を初期化する機能を呼ばなければならないことに注意してください。 これは送付者において受信機で本当です。
6.3. Encoding
6.3. コード化
Thanks to the staircase matrix, repair symbol creation is straightforward: each repair symbol is equal to the sum of all source symbols in the associated equation, plus the previous repair symbol (except for the first repair symbol). Therefore, encoding MUST follow the natural repair symbol order: start with the first repair symbol and generate a repair symbol with ESI i before a symbol with ESI i+1.
階段マトリクスのおかげで、修理シンボル創造は簡単です: それぞれの修理シンボルは関連方程式、および前の修理シンボル(最初の修理シンボルを除いた)でのすべてのソースシンボルの合計と等しいです。 したがって、コード化は自然な修理シンボル命令に従わなければなりません: 最初の修理シンボルから始まってください、そして、シンボルの前のESI iと共にESI i+1で修理シンボルを発生させてください。
6.4. Decoding
6.4. 解読します。
Decoding basically consists in solving a system of n-k linear equations whose variables are the n source and repair symbols. Of course, the final goal is to recover the value of the k source symbols only.
基本的に解読するのは、変数がnソースと修理シンボルであるn-k一次方程式のシステムを解決しながら、存します。 もちろん、究極の目標はkソースシンボルの値だけを回復することです。
To that purpose, many techniques are possible. One of them is the following trivial algorithm [ZP74]: given a set of linear equations, if one of them has only one remaining unknown variable, then the value of this variable is that of the constant term. So, replace this variable by its value in all the remaining linear equations and reiterate. The value of several variables can therefore be found recursively. Applied to LDPC FEC codes working over an erasure
その目的に、多くのテクニックが可能です。 それらの1つは以下の些細なアルゴリズム[ZP74]です: 1セットの一次方程式を考えて、彼らのひとりに1つしか未知の変数のままで残りながらないなら、この変数の値は定数項のものです。 そして、したがって、この変数をすべての残っている一次方程式の値に取り替えてください、繰り返します。 したがって、いくつかの変数の値を再帰的に見つけることができます。 消去の上で働いているLDPC FECコードに適用されます。
Roca, et al. Standards Track [Page 21] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[21ページ]RFC5170LDPC階段と三角形FEC2008年6月
channel, the parity check matrix defines a set of linear equations whose variables are the source symbols and repair symbols. Receiving or decoding a symbol is equivalent to having the value of a variable. Appendix A sketches a possible implementation of this algorithm.
精神を集中してください、そして、パリティチェックマトリクスは変数がソースシンボルと修理シンボルである1セットの一次方程式を定義します。 シンボルを受け取るか、または解読するのが変数値を持っているのに同等です。 付録Aはこのアルゴリズムの可能な実現についてスケッチします。
A Gaussian elimination (or any optimized derivative) is another possible decoding technique. Hybrid solutions that start by using the trivial algorithm above and finish with a Gaussian elimination are also possible [CR08].
ガウス消去法(または、どんな最適化された派生物も)は別の可能な解読のテクニックです。 また、上から些細なアルゴリズムを使用することによって始まって、ガウス消去法で終わるハイブリッド解決策も可能です[CR08]。
Because interoperability does not depend on the decoding algorithm used, the current document does not recommend any particular technique. This choice is left to the codec developer.
相互運用性が使用される解読アルゴリズムによらないので、現在のドキュメントは少しの特定のテクニックも推薦しません。 この選択はコーデック開発者に任せます。
However, choosing a decoding technique will have great practical impacts. It will impact the erasure capabilities: a Gaussian elimination enables to solve the system with a smaller number of known symbols compared to the trivial technique. It will also impact the CPU load: a Gaussian elimination requires more processing than the above trivial algorithm. Depending on the target use case, the codec developer will favor one feature or the other.
しかしながら、解読のテクニックを選ぶと、かなりの実用的な影響は与えられるでしょう。 それは消去能力に影響を与えるでしょう: ガウス消去法は、より少ない数の知られているシンボルが些細なテクニックにたとえられているシステムを解決するのを可能にします。 また、それはCPU荷重に影響を与えるでしょう: ガウス消去法は、上の些細なアルゴリズムよりさらに処理するのを必要とします。 目標によって、ケースを使用してください、そして、コーデック開発者は1つの特徴かもう片方を支持するでしょう。
7. Full Specification of the LDPC-Triangle Scheme
7. LDPC-三角形計画の完全な仕様
7.1. General
7.1. 一般
LDPC-Triangle is identified by the Fully-Specified FEC Encoding ID 4.
LDPC-三角形はFullyによって指定されたFEC Encoding ID4によって特定されます。
The PRNG used by the LDPC-Triangle scheme must be initialized by a seed. This PRNG seed is an instance-specific FEC OTI attribute (Section 4.2.3).
種子でLDPC-三角形計画によって使用されるPRNGを初期化しなければなりません。 このPRNG種子は例の特有のFEC OTI属性(セクション4.2.3)です。
7.2. Parity Check Matrix Creation
7.2. パリティチェックマトリクス創造
The LDPC-Triangle matrix can be divided into two parts: the left side of the matrix defines in which equations the source symbols are involved; the right side of the matrix defines in which equations the repair symbols are involved.
LDPC-三角形マトリクスを2つの部品に分割できます: マトリクスの左側は、ソースシンボルがどの方程式にかかわるかを定義します。 マトリクスの右側は、修理シンボルがどの方程式にかかわるかを定義します。
The left side MUST be generated by using the same left_matrix_init() function as with LDPC-Staircase (Section 6.2).
左側は、LDPC-階段(セクション6.2)のように同じ左の_マトリクス_イニット()機能を使用することによって、発生しなければなりません。
Roca, et al. Standards Track [Page 22] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[22ページ]RFC5170LDPC階段と三角形FEC2008年6月
The right side (the triangle) MUST be generated by using the following function:
右側(三角形)は以下の機能を使用することによって、発生しなければなりません:
/* * Initialize the right side of the parity check matrix with a * triangle structure. * (IN): the k and n parameters. */ void right_matrix_staircase_init (int k, int n) { int i; /* row index */ int j; /* randomly chosen column indexes in 0..n-k-2 */ int l; /* limitation of the # of "1s" added per row */
/**は*三角形構造でパリティチェックマトリクスの右側を初期化します。 * (中): kとnパラメタ。 */空間権利_マトリクス_階段_イニット(int k、int n)、int i; /*列のインデックス*/int j; コラムが手当たりしだいに選ばれた/*は中で0..n-k-2*/int lに索引をつけます; 「1」の#の/*制限は列*/単位で加えました。
matrix_insert_entry(0, k); /* first row */ for (i = 1; i < n-k; i++) { /* for the following rows */ matrix_insert_entry(i, k+i); /* identity */ matrix_insert_entry(i, k+i-1); /* staircase */ /* now fill the triangle */ j = i-1; for (l = 0; l < j; l++) { /* limit the # of "1s" added */ j = pmms_rand(j); matrix_insert_entry(i, k+j); } } }
マトリクス_挿入_エントリー(0、k)。 /*は最初に、(i=1; i<n-k; i++)のための*/をこぎます。
Note that just after creating this parity check matrix, when Encoding Symbol Groups are used (i.e., G > 1), the function initializing the two random permutation tables (Section 5.6) MUST be called. This is true both at a sender and at a receiver.
Encoding Symbol Groupsが使用されているとき(すなわち、G>1)このパリティチェックマトリクスを作成したすぐ後に2個の無作為の置換表(セクション5.6)を初期化する機能を呼ばなければならないことに注意してください。 これは送付者において受信機で本当です。
7.3. Encoding
7.3. コード化
Here also, repair symbol creation is straightforward: each repair symbol of ESI i is equal to the sum of all source and repair symbols (with ESI lower than i) in the associated equation. Therefore, encoding MUST follow the natural repair symbol order: start with the first repair symbol, and generate repair symbol with ESI i before symbol with ESI i+1.
また、ここで、修理シンボル創造も簡単です: ESI iのそれぞれの修理シンボルは関連方程式によるすべてのソースと修理シンボル(ESIがiより低い)の合計と等しいです。 したがって、コード化は自然な修理シンボル命令に従わなければなりません: 最初の修理シンボルから始まってください、そして、シンボルの前のESI iと共にESI i+1で修理シンボルを発生させてください。
7.4. Decoding
7.4. 解読します。
Decoding basically consists in solving a system of n-k linear equations, whose variables are the n source and repair symbols. Of course, the final goal is to recover the value of the k source symbols only. To that purpose, many techniques are possible, as explained in Section 6.4.
基本的に解読するのは、変数がnソースと修理シンボルであるn-k一次方程式のシステムを解決しながら、存します。 もちろん、究極の目標はkソースシンボルの値だけを回復することです。 その目的に、多くのテクニックがセクション6.4で説明されるように可能です。
Roca, et al. Standards Track [Page 23] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[23ページ]RFC5170LDPC階段と三角形FEC2008年6月
Because interoperability does not depend on the decoding algorithm used, the current document does not recommend any particular technique. This choice is left to the codec implementer.
相互運用性が使用される解読アルゴリズムによらないので、現在のドキュメントは少しの特定のテクニックも推薦しません。 この選択はコーデックimplementerに残されます。
8. Security Considerations
8. セキュリティ問題
8.1. Problem Statement
8.1. 問題声明
A content delivery system is potentially subject to many attacks: some of them target the network (e.g., to compromise the routing infrastructure, by compromising the congestion control component), others target the Content Delivery Protocol (CDP) (e.g., to compromise its normal behavior), and finally some attacks target the content itself. Since this document focuses on an FEC building block independently of any particular CDP (even if ALC and NORM are two natural candidates), this section only discusses the additional threats that an arbitrary CDP may be exposed to when using this building block.
内容物配送システムは潜在的に多くの攻撃を受けることがあります: 彼らの何人かがネットワーク(例えば輻輳制御の部品で妥協することによってルーティングインフラストラクチャで妥協する)を狙います、そして、他のものはContent Deliveryプロトコル(CDP)(例えば正常な行動で妥協する)を狙います、そして、最終的にいくつかの攻撃が内容自体を狙います。 このドキュメントがどんな特定のCDPの如何にかかわらずFECブロックに焦点を合わせるので(ALCとNORMが2人の生まれながらの候補であっても)、このセクションはこのブロックを使用するとき任意のCDPが露出されるかもしれない追加脅威について論ずるだけです。
More specifically, several kinds of attacks exist:
より明確に、数種類の攻撃は存在しています:
o those that are meant to give access to a confidential content (e.g., in case of a non-free content),
o 秘密の内容(例えば、無非の内容の場合の)へのアクセスを与えることになっているもの
o those that try to corrupt the object being transmitted (e.g., to inject malicious code within an object, or to prevent a receiver from using an object), and
o そして伝えられる(例えば物の中に悪質なコードを注入するか、または受信機が物を使用するのを防ぐ)物を崩壊させようとするもの。
o those that try to compromise the receiver's behavior (e.g., by making the decoding of an object computationally expensive).
o 受信機の振舞い(例えば、物の解読を計算上高価にするのによる)で妥協しようとするもの。
These attacks can be launched either against the data flow itself (e.g., by sending forged symbols) or against the FEC parameters that are sent either in-band (e.g., in an EXT_FTI or FDT Instance) or out- of-band (e.g., in a session description).
データフロー(例えば、送付の偽造シンボルによる)自体に対して、または、バンド(例えば、セッション記述における)のバンド(例えば、EXT_FTIかFDT Instanceの)か外のどちらかに送られるFECパラメタに対してこれらの攻撃に着手できます。
8.2. Attacks Against the Data Flow
8.2. データフローに対する攻撃
First of all, let us consider the attacks against the data flow.
まず、データフローに対して攻撃を考えましょう。
8.2.1. Access to Confidential Objects
8.2.1. 秘密の物へのアクセス
Access control to a confidential object being transmitted is typically provided by means of encryption. This encryption can be done over the whole object (e.g., by the content provider, before the FEC encoding process), or be done on a packet per packet basis (e.g., when IPsec/ESP is used [RFC4303]). If confidentiality is a concern,
暗号化によって伝えられる秘密の物へのアクセス管理を通常提供します。 この暗号化が全体の物(例えば、過程をコード化するFECの前のコンテンツプロバイダーによる)の上にするか、またはパケット基礎あたり1つのパケットでできます(例えば、IPsec/超能力はいつ使用されていますか[RFC4303])。 秘密性が関心であるなら
Roca, et al. Standards Track [Page 24] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[24ページ]RFC5170LDPC階段と三角形FEC2008年6月
it is RECOMMENDED that one of these solutions be used. Even if we mention these attacks here, they are not related or facilitated by the use of FEC.
これらの解決策の1つが使用されるのは、RECOMMENDEDです。 私たちがこれらの攻撃についてここに言及しても、それらは、FECの使用で関係づけられもしませんし、容易にもされません。
8.2.2. Content Corruption
8.2.2. 満足している不正
Protection against corruptions (e.g., after sending forged packets) is achieved by means of a content integrity verification/sender authentication scheme. This service can be provided at the object level, but in that case a receiver has no way to identify which symbol(s) is(are) corrupted if the object is detected as corrupted. This service can also be provided at the packet level. In this case, after removing all forged packets, the object may be, in some cases, recovered. Several techniques can provide this source authentication/content integrity service:
贈収賄(例えば、送付がパケットを鍛造した後に)に対する保護は満足している保全検証/送付者認証計画によって達成されます。 物のレベルでこのサービスを提供できますが、受信機には、その場合、物が崩壊するように検出されるならどのシンボルが崩壊するかを(あります)特定する方法が全くありません。 また、パケット・レベルでこのサービスを提供できます。 いくつかの場合、この場合、すべての偽造パケットを取り除いた後に、物は回収されるかもしれません。 いくつかのテクニックがこのソース認証/内容保全サービスを提供できます:
o at the object level, the object MAY be digitally signed (with public key cryptography), for instance, by using RSASSA-PKCS1-v1_5 [RFC3447]. This signature enables a receiver to check the object integrity, once the latter has been fully decoded. Even if digital signatures are computationally expensive, this calculation occurs only once per object, which is usually acceptable;
o 例えば、物のレベルでは、RSASSA-PKCS1-v1_5[RFC3447]を使用することによって、物はデジタルにサインされるかもしれません(公開鍵暗号で)。 後者がいったん完全に解読されると、この署名は、受信機が物の保全をチェックするのを可能にします。 デジタル署名が計算上高価であっても、この計算は通常、許容できる物に一度だけ起こります。
o at the packet level, each packet can be digitally signed. A major limitation is the high computational and transmission overheads that this solution requires (unless perhaps if Elliptic Curve Cryptography (ECC) is used). To avoid this problem, the signature may span a set of symbols (instead of a single one) in order to amortize the signature calculation. But if a single symbol is missing, the integrity of the whole set cannot be checked;
o パケット・レベルでは、各パケットにデジタルにサインできます。 主要な制限はこの解決策が必要とするコンピュータとトランスミッションの高いオーバーヘッド((ECC)が恐らくElliptic Curve Cryptographyであるなら使用されていない場合)です。 この問題を避けるために、署名はかかるかもしれません。署名計算を清算するために、1セットのシンボル(ただ一つのものの代わりに)にかかってください。 しかし、ただ一つのシンボルがなくなるなら、全体集合の保全をチェックできません。
o at the packet level, a Group Message Authentication Code (MAC) [RFC2104] scheme can be used, for instance, by using HMAC-SHA-1 with a secret key shared by all the group members, senders, and receivers. This technique creates a cryptographically secured (thanks to the secret key) digest of a packet that is sent along with the packet. The Group MAC scheme does not create a prohibitive processing load or transmission overhead, but it has a major limitation: it only provides a group authentication/ integrity service since all group members share the same secret group key, which means that each member can send a forged packet. It is therefore restricted to situations where group members are fully trusted (or in association with another technique such as a pre-check);
o 例えば、パケット・レベルでは、すべてのグループのメンバー、送付者、および受信機による秘密鍵が共有されているHMAC-SHA-1を使用することによって、Groupメッセージ立証コード(MAC)[RFC2104]計画を使用できます。 このテクニックはパケットと共に送られるパケットの暗号で安全にされた(秘密鍵のおかげで)ダイジェストを作成します。 Group MAC計画は禁止の処理負荷かトランスミッションオーバーヘッドを作成しませんが、それには、主要な制限があります: すべてのグループのメンバーが各メンバーが偽造パケットを送ることができることを意味するのと同じ秘密のグループキーを共有するので、それはグループ認証/保全サービスを提供するだけです。 したがって、それはグループのメンバーが完全に信じられる(またはプレチェックなどの別のテクニックと関連して)状況に制限されます。
o at the packet level, Timed Efficient Stream Loss-Tolerant Authentication (TESLA) [RFC4082] is an attractive solution that is robust to losses, provides a true authentication/integrity
o パケット・レベルでは、Timed Efficient Stream Loss許容性があるAuthentication(テスラ)[RFC4082]は損失に強健であり、本当の認証/保全を提供する魅力的な解決策です。
Roca, et al. Standards Track [Page 25] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[25ページ]RFC5170LDPC階段と三角形FEC2008年6月
service, and does not create any prohibitive processing load or transmission overhead. Yet, checking a packet requires a small delay (a second or more) after its reception.
少しの禁止の処理負荷やトランスミッションオーバーヘッドも修理して、作成しません。 しかし、パケットをチェックするのはレセプションの(1秒以上)後に小さい遅れを必要とします。
Techniques relying on public key cryptography (digital signatures and TESLA during the bootstrap process, when used) require that public keys be securely associated to the entities. This can be achieved by a Public Key Infrastructure (PKI), or by a PGP Web of Trust, or by pre-distributing the public keys of each group member.
公開鍵暗号(摘み皮の過程、使用されるいつの間のデジタル署名とテスラ)を当てにするテクニックは、公開鍵がしっかりと実体に関連づけられるのを必要とします。 公開鍵暗号基盤(PKI)、TrustのPGPウェブ、またはそれぞれのグループのメンバーの公開鍵をあらかじめ分配することによって、これを達成できます。
Techniques relying on symmetric key cryptography (Group MAC) require that a secret key be shared by all group members. This can be achieved by means of a group key management protocol, or simply by pre-distributing the secret key (but this manual solution has many limitations).
対称鍵暗号(グループMAC)を当てにするテクニックは、秘密鍵がすべてのグループのメンバーによって共有されるのを必要とします。 単にグループかぎ管理プロトコルによる秘密鍵をあらかじめ分配することによって、これを達成できます(この手動の解決策には、多くの制限があります)。
It is up to the CDP developer, who knows the security requirements and features of the target application area, to define which solution is the most appropriate. Nonetheless, in case there is any concern of the threat of object corruption, it is RECOMMENDED that at least one of these techniques be used.
どの解決策が最も適切であるかを定義するのは、CDP開発者次第です。(その開発者は、目標アプリケーション部のセキュリティ要件と特徴を知っています)。 それにもかかわらず、物の不正の脅威のどんな関心もあるといけないので、少なくともこれらのテクニックの1つが使用されるのは、RECOMMENDEDです。
8.3. Attacks Against the FEC Parameters
8.3. FECパラメタに対する攻撃
Let us now consider attacks against the FEC parameters (or FEC OTI). The FEC OTI can either be sent in-band (i.e., in an EXT_FTI or in an FDT Instance containing FEC OTI for the object) or out-of-band (e.g., in a session description). Attacks on these FEC parameters can prevent the decoding of the associated object: for instance, modifying the B parameter will lead to a different block partitioning.
現在、FECパラメタ(または、FEC OTI)に対して攻撃を考えましょう。 バンド(すなわち、EXT_FTIか物のためのFEC OTIを含むFDT Instanceの)かバンドの外(例えば、セッション記述で)にFEC OTIを送ることができます。 これらのFECパラメタに対する攻撃は関連物の解読を防ぐことができます: 例えば、Bパラメタを変更するのは異なったブロック仕切りに通じるでしょう。
It is therefore RECOMMENDED that security measures be taken to guarantee the FEC OTI integrity. To that purpose, the packets carrying the FEC parameters sent in-band in an EXT_FTI header extension SHOULD be protected by one of the per-packet techniques described above: digital signature, Group MAC, or TESLA. When FEC OTI is contained in an FDT Instance, this object SHOULD be protected, for instance, by digitally signing it with XML digital signatures [RFC3275]. Finally, when FEC OTI is sent out-of-band (e.g., in a session description) the latter SHOULD be protected, for instance, by digitally signing it with [RFC3852].
したがって、FEC OTI保全を保証するために安全策を取るのは、RECOMMENDEDです。 その目的、パラメタがEXT_FTIヘッダー拡張子におけるバンドのSHOULDを送ったFECを運ぶパケットに、以下の上で説明された1パケットあたりのテクニックの1つで保護されてください。 デジタル署名、Group MAC、またはテスラ。 FEC OTIであるときに、含まれたコネはFDT Instance、例えば、保護されて、XMLデジタル署名[RFC3275]をそれとデジタルに契約することでのこの物のSHOULDですか? FEC OTIであるときに、最終的に、バンドの送られたアウト(例えば、セッション記述における)は例えば、保護されて、[RFC3852]をそれとデジタルに契約することでの後者のSHOULDですか?
The same considerations concerning the key management aspects apply here, also.
また、かぎ管理局面に関する同じ問題はここに適用されます。
Roca, et al. Standards Track [Page 26] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[26ページ]RFC5170LDPC階段と三角形FEC2008年6月
9. IANA Considerations
9. IANA問題
Values of FEC Encoding IDs and FEC Instance IDs are subject to IANA registration. For general guidelines on IANA considerations as they apply to this document, see [RFC5052].
FEC Encoding IDとFEC Instance IDの値はIANA登録を受けることがあります。 IANA問題に関する一般的ガイドラインに関しては、それらがこのドキュメントに適用するとき、[RFC5052]を見てください。
This document assigns the Fully-Specified FEC Encoding ID 3 under the "ietf:rmt:fec:encoding" name-space to "LDPC Staircase Codes".
このドキュメントは「LDPC階段コード」とスペースを命名している「ietf:rmt:fec: コード化」でFullyによって指定されたFEC Encoding ID3を割り当てます。
This document assigns the Fully-Specified FEC Encoding ID 4 under the "ietf:rmt:fec:encoding" name-space to "LDPC Triangle Codes".
このドキュメントは「LDPC三角形コード」とスペースを命名している「ietf:rmt:fec: コード化」でFullyによって指定されたFEC Encoding ID4を割り当てます。
10. Acknowledgments
10. 承認
Section 5.5 is derived from an earlier document, and we would like to thank S. Peltotalo and J. Peltotalo for their contribution. We would also like to thank Pascal Moniot, Laurent Fazio, Mathieu Cunche, Aurelien Francillon, Shao Wenjian, Magnus Westerlund, Brian Carpenter, Tim Polk, Jari Arkko, Chris Newman, Robin Whittle, and Alfred Hoenes for their comments.
以前のドキュメントからセクション5.5を得ます、そして、彼らの貢献についてS.PeltotaloとJ.Peltotaloに感謝申し上げます。 また、彼らのコメントについてパスカルMoniot、ローラン・ファジオ、マチューCunche、Aurelien Francillon、シャオWenjian、マグヌスWesterlund、ブライアンCarpenter、ティム・ポーク、ヤリArkko、クリス・ニューマン、ロビンWhittle、およびアルフレッドHoenesに感謝申し上げます。
Last but not least, the authors are grateful to Radford M. Neal (University of Toronto) whose LDPC software (http://www.cs.toronto.edu/~radford/ldpc.software.html) inspired this work.
作者はLDPCソフトウェア( http://www.cs.toronto.edu/~radford/ldpc.software.html )がこの仕事を奮い立たせたラッドフォードM.ニール(トロント大学)に最後、しかし、特に、感謝しています。
11. References
11. 参照
11.1. Normative References
11.1. 引用規格
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, BCP 14, March 1997.
[RFC2119] ブラドナー、S.、「Indicate Requirement LevelsへのRFCsにおける使用のためのキーワード」、RFC2119、BCP14、1997年3月。
[RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error Correction (FEC) Building Block", RFC 5052, August 2007.
[RFC5052] ワトソンとM.とLuby、M.とL.Vicisano、「前進型誤信号訂正(FEC)ブロック」、RFC5052、2007年8月。
11.2. Informative References
11.2. 有益な参照
[ZP74] Zyablov, V. and M. Pinsker, "Decoding Complexity of Low-Density Codes for Transmission in a Channel with Erasures", Translated from Problemy Peredachi Informatsii, Vol.10, No. 1, pp.15-28, January- March 1974.
Problemy Peredachi Informatsii、Vol.10、No.1、pp.15-28(1974年の1月の行進)からの[ZP74]ZyablovとV.とM.Pinsker、「トランスミッションのために消去でチャンネルで低密度コードの複雑さを解読する」Translated。
Roca, et al. Standards Track [Page 27] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[27ページ]RFC5170LDPC階段と三角形FEC2008年6月
[RN04] Roca, V. and C. Neumann, "Design, Evaluation and Comparison of Four Large Block FEC Codecs: LDPC, LDGM, LDGM-Staircase and LDGM-Triangle, Plus a Reed-Solomon Small Block FEC Codec", INRIA Research Report RR-5225, June 2004.
[RN04] ロカ、V.、およびC.ノイマン、「4多のデザイン、評価、および比較はFECコーデックを妨げます」。 INRIAは、「LDPC、LDGM、LDGM-階段、LDGM-三角形、およびリード-ソロモンの小さいブロックFECコーデック」と研究します。2004年6月のレポートRR-5225。
[NRFF05] Neumann, C., Roca, V., Francillon, A., and D. Furodet, "Impacts of Packet Scheduling and Packet Loss Distribution on FEC Performances: Observations and Recommendations", ACM CoNEXT'05 Conference, Toulouse, France (an extended version is available as INRIA Research Report RR-5578), October 2005.
[NRFF05] ノイマン、C.、ロカ、V.、Francillon、A.、およびD.Furodet、「パケットスケジューリングとパケット損失分配のFECパフォーマンスへの影響:」 「観測とRecommendations」、トゥールーズ(フランス)(拡張版はINRIA Research Report RR-5578として利用可能である)2005'年10月のACM CoNEXT'05コンファレンス。
[CR08] Cunche, M. and V. Roca, "Improving the Decoding of LDPC Codes for the Packet Erasure Channel with a Hybrid Zyablov Iterative Decoding/Gaussian Elimination Scheme", INRIA Research Report RR-6473, March 2008.
[CR08] Cunche、M.、およびINRIA対「パケット消去チャンネルのためにハイブリッドZyablov繰り返しの解読/ガウスの除去計画でLDPCコードの解読を改良する」ロカがレポートRR-6473(2008年3月)について研究します。
[LDPC-codec] Roca, V., Neumann, C., Cunche, M., and J. Laboure, "LDPC-Staircase/LDPC-Triangle Codec Reference Implementation", INRIA Rhone-Alpes and STMicroelectronics, <http://planete-bcast.inrialpes.fr/>.
[LDPC-コーデック]のロカとV.とノイマンとC.とCuncheとM.とJ.Laboureと「LDPC LDPC-階段/三角形コーデックリファレンスインプリメンテーション」とINRIAローヌアルプとSTMicroelectronics、<http://planete-bcast.inrialpes.fr/>。
[MK03] MacKay, D., "Information Theory, Inference and Learning Algorithms", Cambridge University Press, ISBN: 0-521-64298-1, 2003.
[MK03] マッケイと、D.と、「情報理論、推論、および学習アルゴリズム」、ケンブリッジ大学出版局、ISBN: 0-521-64298-1, 2003.
[PM88] Park, S. and K. Miller, "Random Number Generators: Good Ones are Hard to Find", Communications of the ACM, Vol. 31, No. 10, pp.1192-1201, 1988.
[PM88] 公園、S.、およびK.ミラー、「乱数発生器:」 「良いOnesはFindへのHardです」、ACMのCommunications、Vol.31、No.10、pp.1192-1201、1988。
[CA90] Carta, D., "Two Fast Implementations of the Minimal Standard Random Number Generator", Communications of the ACM, Vol. 33, No. 1, pp.87-88, January 1990.
[CA90] Carta、D.、「最小量の標準の乱数発生器の2つの速い実現」、ACM、Vol.33、No.1、pp.87-88(1990年1月)のCommunications。
[WI08] Whittle, R., "Park-Miller-Carta Pseudo-Random Number Generator", January 2008, <http://www.firstpr.com.au/dsp/rand31/>.
[WI08]が削る、R.、「公園ミラーCarta疑似乱数生成器」、2008年1月、<http://www.firstpr.com.au/dsp/rand31/>。
[rand31pmc] Whittle, R., "31 bit pseudo-random number generator", September 2005, <http://www.firstpr.com.au/dsp/rand31/ rand31-park-miller-carta.cc.txt>.
[rand31pmc]が削る、R.、「31ビットの疑似乱数生成器」、2005年9月、<rand31-公園製粉業者http://www.firstpr.com.au/dsp/rand31/carta.cc.txt>。
[PTVF92] Press, W., Teukolsky, S., Vetterling, W., and B. Flannery, "Numerical Recipes in C; Second Edition", Cambridge University Press, ISBN: 0-521-43108-5, 1992.
[PTVF92] プレス、W.、Teukolsky、S.、Vetterling、W.、およびB.フラナリー、「Cの数字のレシピ」。 「第2版」、ケンブリッジ大学出版局、ISBN: 0-521-43108-5, 1992.
Roca, et al. Standards Track [Page 28] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[28ページ]RFC5170LDPC階段と三角形FEC2008年6月
[RMT-PI-ALC] Luby, M., Watson, M., and L. Vicisano, "Asynchronous Layered Coding (ALC) Protocol Instantiation", Work in Progress, November 2007.
[RMTパイALC] M.、ワトソン、M.、およびL.Vicisano、「非同期な層にされたコード化(ALC)プロトコル具体化」というLubyは進歩、2007年11月に働いています。
[RMT-PI-NORM] Adamson, B., Bormann, C., Handley, M., and J. Macker, "Negative-acknowledgment (NACK)-Oriented Reliable Multicast (NORM) Protocol", Work in Progress, January 2008.
[RMTパイ標準] アダムソン、B.、ボルマン、C.、ハンドレー、M.、およびJ.Macker、「否定応答の(ナック)指向の信頼できるマルチキャスト(標準)プロトコル」が進行中(2008年1月)で働いています。
[RMT-FLUTE] Paila, T., Walsh, R., Luby, M., Lehtonen, R., and V. Roca, "FLUTE - File Delivery over Unidirectional Transport", Work in Progress, October 2007.
[RMT-フルート] Paila、T.、ウォルシュ、R.、Luby、M.、レヒトネン、R.、およびV.ロカ、「フルート--単方向の輸送の上の配送をファイルしてください」、処理中の作業、2007年10月。
[RFC3447] Jonsson, J. and B. Kaliski, "Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1", RFC 3447, February 2003.
[RFC3447] イェンソン、J.、およびB.Kaliski、「公開鍵暗号化標準(PKCS)#1:」 RSA暗号仕様バージョン2.1インチ、RFC3447、2月2003日
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005.
[RFC4303]ケント、S.、「セキュリティ有効搭載量(超能力)を要約するIP」、RFC4303、2005年12月。
[RFC2104] "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.
[RFC2104]、「HMAC:」 「通報認証のための合わせられた論じ尽くす」RFC2104、1997年2月。
[RFC4082] "Timed Efficient Stream Loss-Tolerant Authentication (TESLA): Multicast Source Authentication Transform Introduction", RFC 4082, June 2005.
[RFC4082] 「効率的な状態で調節されて、損失許容性がある認証(テスラ)を流してください」 「マルチキャストソース認証変換序論」、RFC4082、2005年6月。
[RFC3275] Eastlake, D., Reagle, J., and D. Solo, "(Extensible Markup Language) XML-Signature Syntax and Processing", RFC 3275, March 2002.
[RFC3275] イーストレーク、D.、Reagle、J.、およびD.は独奏されて、「(拡張マークアップ言語)XML-署名構文と処理」(RFC3275)は2002を行進させます。
[RFC3453] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley, M., and J. Crowcroft, "The Use of Forward Error Correction (FEC) in Reliable Multicast", RFC 3453, December 2002.
[RFC3453] Luby、M.、Vicisano、L.、Gemmell、J.、リゾー、L.、ハンドレー、M.、およびJ.クロウクロフト、「信頼できるマルチキャストにおける前進型誤信号訂正(FEC)の使用」、RFC3453(2002年12月)。
[RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC 3852, July 2004.
[RFC3852] Housley、R.、「暗号のメッセージ構文(cm)」、RFC3852、2004年7月。
[RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, October 2006.
[RFC4648]Josefsson、2006年10月のS.、「Base16、Base32、およびBase64データEncodings」RFC4648。
Roca, et al. Standards Track [Page 29] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[29ページ]RFC5170LDPC階段と三角形FEC2008年6月
Appendix A. Trivial Decoding Algorithm (Informative Only)
付録のA.の些細な解読アルゴリズム(有益である、単に)
A trivial decoding algorithm is sketched below (please see [LDPC-codec] for the details omitted here):
些細な解読アルゴリズムは以下にスケッチされます(ここで詳細のための[LDPC-コーデック]が省略されるのを見てください):
Initialization: allocate a table partial_sum[n-k] of buffers, each buffer being of size the symbol size. There's one entry per equation since the buffers are meant to store the partial sum of each equation; Reset all the buffers to zero;
初期設定: バッファの部分的な_合計[n-k]、サイズのものである各バッファをテーブルに割り当ててください。シンボルサイズ。 バッファがそれぞれの方程式の部分和を格納することになっているので、1方程式あたり1つのエントリーがあります。 ゼロへのすべてのバッファをリセットしてください。
/* * For each newly received or decoded symbol, try to make progress * in the decoding of the associated source block. * NB: in case of a symbol group (G>1), this function is called for * each symbol of the received packet. * NB: a callback function indicates to the caller that new symbol(s) * has(have) been decoded. * new_esi (IN): ESI of the new symbol received or decoded * new_symb (IN): Buffer of the new symbol received or decoded */ void decoding_step(ESI_t new_esi, symbol_t *new_symb) { If (new_symb is an already decoded or received symbol) { Return; /* don't waste time with this symbol */ }
それぞれのための/**は、新たにシンボルを受け取ったか、または解読して、進歩を関連ソースブロックの解読における*にするようにしてください。 * ネブラスカ: シンボルグループ(G>1)の場合には、この機能はそれぞれが象徴する容認されたパケットの*のために呼ばれます。 * ネブラスカ: 回収機能は、新しいシンボル*が解読された(have)を持っているのを訪問者に示します。 * 新しい_esi(IN): 新しいシンボルのESIは*新しい_symb(IN)を受けたか、または解読しました: 新しいシンボルに関するバッファが*/空の解読_ステップ(ESI_t新しい_esi、シンボル_t*新しい_symb)を受けたか、または解読した、(新しい_symbは既に解読されたか、容認されたシンボルです)戻ってください; /*はこのシンボル*/で時間を浪費しません。
If (new_symb is the last missing source symbol) { Remember that decoding is finished; Return; /* work is over now... */ }
(新しい_symbは最後のなくなったソースシンボルです)解読が終わっているのを覚えていてください; 戻ってください; /*仕事は現在、終わっています… */
Create an empty list of equations having symbols decoded during this decoding step;
この解読ステップの間にシンボルを解読する方程式の空のリストを作成してください。
/* * First add this new symbol to the partial sum of all the * equations where the symbol appears. */ For (each equation eq in which new_symb is a variable and having more than one unknown variable) {
/**は最初に、シンボルが現れるすべての*方程式の部分和にこの新しいシンボルを加えます。 *(新しい_がsymbに変数と1つ以上の未知の変数を持っていることである各方程式eq)のための/
Add new_symb to partial_sum[eq];
部分的な_合計[eq]に新しい_symbを加えてください。
Remove entry(eq, new_esi) from the H matrix;
Hマトリクスからエントリー(eq、新しい_esi)を取り除いてください。
Roca, et al. Standards Track [Page 30] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[30ページ]RFC5170LDPC階段と三角形FEC2008年6月
If (the new degree of equation eq == 1) { /* a new symbol can be decoded, remember the * equation */ Append eq to the list of equations having symbols decoded during this decoding step; } }
(方程式eq=1の新しい度)である、/*a新しいシンボルを解読できて、*方程式*/がこの解読ステップの間にシンボルを解読する方程式のリストにeqを追加するのを覚えていてください。
/* * Then finish with recursive calls to decoding_step() for each * newly decoded symbol. */ For (each equation eq in the list of equations having symbols decoded during this decoding step) {
新たに_各*のためのステップ()を解読することへの再帰的呼び出しがある/**当時の終わりはシンボルを解読しました。 *(この解読ステップの間にシンボルを解読する方程式のリストの各方程式eq)のための/
/* * Because of the recursion below, we need to check that * decoding is not finished, and that the equation is * __still__ of degree 1 */ If (decoding is finished) { break; /* exit from the loop */ }
/* * Because of the recursion below, we need to check that * decoding is not finished, and that the equation is * __still__ of degree 1 */ If (decoding is finished) {壊れてください; 輪*/からの/*出口}
If ((degree of equation eq == 1) { Let dec_esi be the ESI of the newly decoded symbol in equation eq;
(方程式eq=1の度)である、DEC社_esiが方程式eqの新たに解読されたシンボルのESIであることをさせてください。
Remove entry(eq, dec_esi);
エントリー(eq、DEC社_esi)を取り除いてください。
Allocate a buffer, dec_symb, for this symbol and copy partial_sum[eq] to dec_symb;
バッファ、このシンボルのためのDEC社_symb、およびDEC社_symbへのコピーの部分的な_合計[eq]を割り当ててください。
Inform the caller that a new symbol has been decoded via a callback function;
新しいシンボルが回収機能で解読されたことを訪問者に知らせてください。
/* finally, call this function recursively */ decoding_step(dec_esi, dec_symb); } }
*最終的に、この機能に再帰的に電話をしてください。/、*/解読_は(__DEC社esi、DEC社symb)を踏みます。 } }
Free the list of equations having symbols decoded; Return; }
シンボルを解読する方程式のリストを解放してください。 戻ってください。 }
Roca, et al. Standards Track [Page 31] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[31ページ]RFC5170LDPC階段と三角形FEC2008年6月
Authors' Addresses
作者のアドレス
Vincent Roca INRIA 655, av. de l'Europe Inovallee; Montbonnot ST ISMIER cedex 38334 France
ヴィンセントロカINRIA655、av. de l'Europe Inovallee。 Montbonnot通りISMIER cedex38334フランス
EMail: vincent.roca@inria.fr URI: http://planete.inrialpes.fr/people/roca/
メール: vincent.roca@inria.fr ユリ: http://planete.inrialpes.fr/people/roca/
Christoph Neumann Thomson 12, bd de Metz Rennes 35700 France
クリストフ・ノイマン・bd deメスレンヌ35700トムソン12(フランス)
EMail: christoph.neumann@thomson.net URI: http://planete.inrialpes.fr/people/chneuman/
メール: christoph.neumann@thomson.net ユリ: http://planete.inrialpes.fr/people/chneuman/
David Furodet STMicroelectronics 12, Rue Jules Horowitz BP217 Grenoble Cedex 38019 France
デヴィッドFurodet STMicroelectronics12、悔悟ジュールズ・ホロビッツ・BP217グルノーブルCedex38019フランス
EMail: david.furodet@st.com URI: http://www.st.com/
メール: david.furodet@st.com ユリ: http://www.st.com/
Roca, et al. Standards Track [Page 32] RFC 5170 LDPC Staircase and Triangle FEC June 2008
ロカ、他 標準化過程[32ページ]RFC5170LDPC階段と三角形FEC2008年6月
Full Copyright Statement
完全な著作権宣言文
Copyright (C) The IETF Trust (2008).
IETFが信じる著作権(C)(2008)。
This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.
このドキュメントはBCP78に含まれた権利、ライセンス、および制限を受けることがあります、そして、そこに詳しく説明されるのを除いて、作者は彼らのすべての権利を保有します。
This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
このドキュメントとここに含まれた情報はその人が代理をするか、または(もしあれば)後援される組織、インターネットの振興発展を目的とする組織、「そのままで」という基礎と貢献者の上で提供していて、IETFはそして、インターネット・エンジニアリング・タスク・フォースがすべての保証を放棄すると信じます、急行である、または暗示していて、他を含んでいて、情報の使用がここに侵害しないどんな保証も少しもまっすぐになるということであるかいずれが市場性か特定目的への適合性の黙示的な保証です。
Intellectual Property
知的所有権
The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.
IETFはどんなIntellectual Property Rightsの正当性か範囲、実現に関係すると主張されるかもしれない他の権利、本書では説明された技術の使用またはそのような権利の下におけるどんなライセンスも利用可能であるかもしれない、または利用可能でないかもしれない範囲に関しても立場を全く取りません。 または、それはそれを表しません。どんなそのような権利も特定するためのどんな独立している努力もしました。 BCP78とBCP79でRFCドキュメントの権利に関する手順に関する情報を見つけることができます。
Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.
IPR公開のコピーが利用可能に作られるべきライセンスの保証、または一般的な免許を取得するのが作られた試みの結果をIETF事務局といずれにもしたか、または http://www.ietf.org/ipr のIETFのオンラインIPR倉庫からこの仕様のimplementersかユーザによるそのような所有権の使用のために許可を得ることができます。
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.
IETFはこの規格を実行するのに必要であるかもしれない技術をカバーするかもしれないどんな著作権もその注目していただくどんな利害関係者、特許、特許出願、または他の所有権も招待します。 ietf-ipr@ietf.org のIETFに情報を記述してください。
Roca, et al. Standards Track [Page 33]
ロカ、他 標準化過程[33ページ]
一覧
スポンサーリンク