-
Romain Beurdouche authored
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>
06c81030