Commit graph

307 commits

Author SHA1 Message Date
Ahmet Inan
5cf0ff2297 added soft Chase decoding for short BCH codes
gives about 1.5dB gain while only half the speed of hard decision.
2020-06-08 18:22:54 +02:00
Ahmet Inan
130af67e08 these codes are short .. 2020-06-08 10:15:50 +02:00
Ahmet Inan
5d944ca7a9 added encoder and syndrome decoder for short BCH codes 2020-06-07 18:28:25 +02:00
Ahmet Inan
1b4899c66d added simplex code encoder and soft decoder entries 2020-06-02 12:09:44 +02:00
Ahmet Inan
65a6feb6e0 divide and conquer unrolled decoders 2020-06-02 11:49:21 +02:00
Ahmet Inan
af29e0434a increased iterations 2020-06-01 12:08:07 +02:00
Ahmet Inan
994e9dc912 added unrolled decoders for K = 2, 3, 4, 5 and 6 2020-06-01 12:02:36 +02:00
Ahmet Inan
2adfe54c76 added test for msg len 2 2020-06-01 09:31:42 +02:00
Ahmet Inan
620466021b added encoder and soft decoder for simplex codes 2020-05-31 17:43:29 +02:00
Ahmet Inan
e2b46aed76 added test for the Maximum length sequence 2020-05-29 12:37:23 +02:00
Ahmet Inan
33d34555ae added bad() to test sequence 2020-05-29 11:33:37 +02:00
Ahmet Inan
2a4681aa74 added reset() 2020-04-22 14:25:13 +02:00
Ahmet Inan
1e7a25e1a8 added maximum length sequence 2020-03-31 23:55:17 +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