Skip to content

Commit

Permalink
Changes
Browse files Browse the repository at this point in the history
  • Loading branch information
cyanreg committed Feb 16, 2024
1 parent 0fe4ae2 commit c78e993
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
23 changes: 18 additions & 5 deletions draft-avtransport-spec.bs
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,16 @@ Markup Shorthands: http no, markup no
"published-by": "International Standards Organization",
"date": "October 2019",
"href": "https://www.iso.org/standard/76621.html"
},
"LDPC-encoding": {
"title": "Efficient encoding of low-density parity-check codes",
"authors": [
"T. J. Richardson",
"R. L. Urbanke",
],
"published-by": "Institute of Electrical and Electronics Engineers",
"date": "February 2001",
"href": "https://ieeexplore.ieee.org/document/910579"
}
}
</pre>
Expand Down Expand Up @@ -4533,9 +4543,9 @@ The full block, along with the check data, shall be sent to an LDPC decoder.

To ease implementations, only two different lengths are used:
- <dfn>LDPC(288, 224)</dfn>
:: 224-bit message, 64-bit parity, rate of <code>2/9</code>, [[#ldpc_h_matrix_288_224|H₆₄ₓ₂₈₈-matrix]]
:: 224-bit message, 64-bit parity, rate of <code>7/9</code>, [[#ldpc_h_matrix_288_224|H₆₄ₓ₂₈₈-matrix]]
- <dfn>LDPC(2784, 2016)</dfn>
:: 2016-bit message, 768-bit parity, rate of <code>8/29</code>, [[#ldpc_h_matrix_2784_2016|H₇₆₈ₓ₂₇₈₄-matrix]]
:: 2016-bit message, 768-bit parity, rate of <code>21/29</code>, [[#ldpc_h_matrix_2784_2016|H₇₆₈ₓ₂₇₈₄-matrix]]

For reference, the following code may be used to compute the LDPC parity data:

Expand Down Expand Up @@ -4574,8 +4584,11 @@ void ldpc_encode(uint8_t *pkt, const uint64_t *H,
}
</pre>

Implementations are advised to use faster algorithms for encoding, such as back-substitution,
if the overhead becomes a problem.
This algorithm is quite inefficient, but even 10-year old embedded devices can
do at least 2 million [=LDPC(288, 224)=] encodings per second.

Implementations should consider using more advanced encoding algorithms, such
as the [[LDPC-encoding|Richardson-Urbanke method]] to reduce the overhead further.


### LDPC H-matrices ### {#ldpc-h-matrices}
Expand Down Expand Up @@ -4705,7 +4718,7 @@ alist code:
Generated data:

<pre line-numbers highlight=c id="ldpc_h_matrix_2784_2016">
const uint64_t ldpc_h_matrix_2784_2016[33408 /* (768 rows/64) * 2784 col */] = {
const uint64_t ldpc_h_matrix_2784_2016[33408 /* (768 rows/64) * 2784 cols */] = {
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000,
Expand Down
2 changes: 1 addition & 1 deletion libavtransport/tests/ldpc_encode.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#include "../ldpc_tables.h"

#define DATA_LEN 1024
#define PARITY_LEN 512
#define PARITY_LEN 1024

int main(void)
{
Expand Down

0 comments on commit c78e993

Please sign in to comment.