Commit graph

95 commits

Author SHA1 Message Date
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
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
Ahmet Inan
e51425e121 added vclamp() 2018-12-13 11:19:31 +01:00
Ahmet Inan
09945a18b5 added example how to test with a cross-compiler 2018-12-12 12:13:58 +01:00
Ahmet Inan
bede1046d6 redirect stdout to /dev/null 2018-12-12 12:13:58 +01:00
Ahmet Inan
72d7c6d57f added vclez() 2018-12-12 12:13:58 +01:00
Ahmet Inan
4a3d113433 fixed copy / paste error 2018-12-12 12:13:58 +01:00
Ahmet Inan
4f11a22311 added SIMD wrappers for ARM NEON, Intel SSE4.1 and AVX2 2018-12-11 09:05:12 +01:00
Ahmet Inan
bd202fa2f7 added DVB-S2X FULL BCH(32767, 32587) T=12 2018-10-29 10:07:28 +01:00
Ahmet Inan
3092fa68ee fixed compilation for g++ and stay c++11 compatible 2018-10-25 08:37:52 +02:00