• Romain Beurdouche's avatar
    fix(nrLDPC_coding_segment_encoder): address review · 06c81030
    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: default avatarLaurent Thomas <laurent.thomas@open-cells.com>
    06c81030
ldpc_encoder_optim8segmulti.c 8.54 KB