1. nrLDPC_coding_segment_encoding: Clarifying encoder parameters
The way the encoder implementation params was used could be made clearer:
* `macro_num` was always used in order to calculate segment indexes.
It is clearer to pass directly the first segment index.
* The initialisation of a common implementation parameters structure can be made clearer.
2. nrLDPC_coding_segment_encoder: Remove multi segment dimension in encoder output
The output of `LDPCencoder` was a 2D unsigned char array.
But all the segments were actually packed in the first segment, 8 bits of different segments per byte of the first segment.
So the first dimension was useless. This commit removes this dimension.
3. nrLDPC_coding_segment_encoder: Rename `nrLDPC_prepare_TB_encoding` into `nrLDPC_launch_TB_encoding`
4. nrLDPC_coding_segment_encoder: Remove the useless second rate matching for E2, one rate matching with max(E, E2) does the job.
5. nr_interleaving_ldpc: cleanup
Rewrite code to use different SIMD sizes in a linear fashion.
This means cascading preprocessor directives are used to start from a high SIMD size an decrease it progressively.
6. ldpc_encoder_optim8segmulti: linear usage of SIMD
Use cascading preprocessor directives to include different SIMD sizes and types depending on which are available on the system.
The different loops use a common index that is progressively incremented.
Also add AVX512 version of bits distribution from 8 segments into one byte.
Co-authored-by: Laurent Thomas <laurent.thomas@open-cells.com>
PHY/CODING/TESTBENCH This directory contains a testbench for performance evalulation (antipodal modulation) of the various channel decoding algorithms. Files: Makefile : Makefile for generating the two testbenches ltetest.c : Testbench for LTE Turbo code (rate 1/3 terminated code). Performs LTE rate-matching for different mcs. viterbi_test.c : Testbench for 802.11 Viterbi decoder (rate 1/2 terminated code) pdcch_test.c : Testbench for LTE PDCCH/DCI encoding/decoding (rate 1/3 Tail-biting code). Performs LTE rate-matching and allows testing different aggregation levels and DCI sizes.