Ahmet Inan
da9d47b95d
don't forget the last bit, even though last two are parity vectors
2019-11-06 21:04:55 +01:00
Ahmet Inan
3b5a4088fc
create write disable mask for next visit on the fly
2019-11-06 17:43:12 +01:00
Ahmet Inan
1eef4c3df5
detect special parity word using offset and shift
2019-11-05 09:59:55 +01:00
Ahmet Inan
b6313b9087
added code to print offset and shift tables
2019-11-05 09:44:37 +01:00
Ahmet Inan
79ddb18876
simplified by removing loop over blocks
2019-11-05 09:05:57 +01:00
Ahmet Inan
838c02ae9f
merged bad() into update()
2019-10-03 22:14:05 +02:00
Ahmet Inan
422b405596
simplified by merging pty and msg arrays into var
...
while using location array for parity as well
2019-10-03 20:53:49 +02:00
Ahmet Inan
87153003e9
instead of rotating back, store current shift value
...
and compute the delta shift needed to achieve the same result.
Idea taken from:
Conflict Resolution by Matrix Reordering for DVB-T2 LDPC Decoders
By Cédric Marchand, Jean-Baptiste Doré, Laura Conde-Canencia, Emmanuel Boutillon - 2009
2019-10-03 18:23:14 +02:00
Ahmet Inan
1f4da1bed3
only need write disable masks for write conflicts
2019-10-03 17:44:26 +02:00
Ahmet Inan
cf035084e3
rotate write disable bits right
2019-10-03 17:24:28 +02:00
Ahmet Inan
4afdb249da
don't allow mixing of SSE and AVX code
2019-10-02 12:16:20 +02:00
Ahmet Inan
0b37102383
getting rid of obsolete version
2019-10-01 22:17:04 +02:00
Ahmet Inan
e8b43ce90f
relax size of wd_t by two parity links
2019-10-01 16:11:51 +02:00
Ahmet Inan
776a5d4657
streamline check node processing
2019-10-01 15:53:51 +02:00
Ahmet Inan
c6999ccf52
bug fix: we need to handle the last one too
2019-09-30 22:49:03 +02:00
Ahmet Inan
2a52a4bb59
instead of repeating layers, spread the write disables
2019-09-30 17:08:56 +02:00
Ahmet Inan
3688d55b0a
use a write disable mask instead of array
2019-09-30 14:20:39 +02:00
Ahmet Inan
00246f2a69
skip write disable code if no repeat is necessary
2019-09-30 12:44:13 +02:00
Ahmet Inan
bd3bf1d277
use do while instead of for loop
2019-09-29 22:25:55 +02:00
Ahmet Inan
65863e76b6
repeat layers with DDSMs to resolve write conflicts
...
Idea taken from:
HIGH-SPEED CONFLICT-FREE LAYERED LDPC DECODER FOR THE DVB-S2, -T2 AND -C2 STANDARDS
By Cédric Marchand, Laura Conde-Canencia and Emmanuel Boutillon - 2013
2019-09-29 13:06:23 +02:00
Ahmet Inan
488a8cbe2b
keep locations sorted by offset per layer
2019-09-29 10:06:14 +02:00
Ahmet Inan
02d5b5f12c
keep word offset and shift paired
2019-09-29 10:02:01 +02:00
Ahmet Inan
a61a7d05cf
step pointers after updating at the end
2019-09-28 23:50:34 +02:00
Ahmet Inan
65dd0fab50
moved word offset and shift calc code to the top
2019-09-28 23:23:18 +02:00
Ahmet Inan
2b25cd3dcc
added code to explain rotate.hh
2019-09-24 10:53:40 +02:00
Ahmet Inan
c7769bb1ec
added ARM NEON support
2019-09-24 10:25:32 +02:00
Ahmet Inan
969c43f016
use horizontal rotation helper
2019-09-24 00:07:14 +02:00
Ahmet Inan
8de487af88
added SIMD horizontal rotation helper
2019-09-24 00:05:57 +02:00
Ahmet Inan
a10cc6afcb
disable OMS code path if BETA is zero
2019-09-23 14:14:53 +02:00
Ahmet Inan
e7dbd7400f
added self correcting update of outgoing values
2019-09-23 13:54:23 +02:00
Ahmet Inan
974c4c582d
clamp outgoing values before adding
2019-09-23 13:37:15 +02:00
Ahmet Inan
8f5d8d42ae
renamed finalp() to cnp() and changed args
2019-09-23 13:07:38 +02:00
Ahmet Inan
762c18d234
positions array only needed for initialization
2019-09-23 12:45:00 +02:00
Ahmet Inan
8718380786
use exact size for number of positions
2019-09-23 12:44:03 +02:00
Ahmet Inan
717d482822
shuffle codeword for SIMD aligned memory access
...
Idea taken from:
Low cost LDPC decoder for DVB-S2
by John Dielissen, Andries Hekstra and Vincent Berg - 2006
2019-09-23 12:00:06 +02:00
Ahmet Inan
95e471b966
added normal 5/6 code table
2019-09-12 17:39:05 +02:00
Ahmet Inan
baf2327276
silly search replace mistake
2019-09-12 16:50:02 +02:00
Ahmet Inan
53d1a10eeb
removed AVX-512 instructions from AVX2 wrapper
2019-02-05 11:32:06 +01:00
Ahmet Inan
67949bcb76
renamed some variables and improved status output
2018-12-19 09:52:24 +01:00
Ahmet Inan
b41799c84d
added LDPC decoder version with fully computed LUT
2018-12-16 09:42:02 +01:00
Ahmet Inan
e06c954148
pre-calculate R entries from directly computed first q entries
2018-12-15 22:19:52 +01:00
Ahmet Inan
6af9798553
calculate first q entries directly
2018-12-15 19:42:58 +01:00
Ahmet Inan
86bf81dd2d
got rid of some modulo operations
2018-12-15 17:09:03 +01:00
Ahmet Inan
4e39392acf
only need first q entries
2018-12-15 15:05:19 +01:00
Ahmet Inan
ce9674883c
flattened first parity handling
2018-12-15 12:12:56 +01:00
Ahmet Inan
584f6c0d9d
use max value for fake parity bit to stay on the safe side
2018-12-14 20:42:25 +01:00
Ahmet Inan
5c77e514ae
added DVB T2 table B.7
2018-12-13 13:23:50 +01:00
Ahmet Inan
3060e82da6
got rid of exclusive_reduce
2018-12-13 13:23:41 +01:00
Ahmet Inan
3e881ce049
accelerate decoder using SIMD
...
Also added a fake parity bit to reduce code duplication.
The fake parity bit seems not to affect the decoding performance.
2018-12-13 11:21:58 +01:00
Ahmet Inan
199a988def
added LDPC encoder and layered decoder
...
lifted from my LDPC project:
https://github.com/xdsopl/LDPC
2018-12-13 11:19:31 +01:00