mirror of https://github.com/PentHertz/srsLTE.git
Moved bit interleaver to bit utils
This commit is contained in:
parent
d2a17a631b
commit
7c09f79911
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
uint8_t tcod_lut_next_state[188][8][256];
|
uint8_t tcod_lut_next_state[188][8][256];
|
||||||
uint8_t tcod_lut_output[188][8][256];
|
uint8_t tcod_lut_output[188][8][256];
|
||||||
uint16_t tcod_per_fw[188][6114];
|
uint32_t tcod_per_fw[188][6114];
|
||||||
|
|
||||||
int srslte_tcod_init(srslte_tcod_t *h, uint32_t max_long_cb) {
|
int srslte_tcod_init(srslte_tcod_t *h, uint32_t max_long_cb) {
|
||||||
|
|
||||||
|
@ -198,15 +198,7 @@ int srslte_tcod_encode_lut(srslte_tcod_t *h, uint8_t *input, uint8_t *output, ui
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Interleave input */
|
/* Interleave input */
|
||||||
for (uint32_t i=0;i<long_cb/8;i++) {
|
srslte_bit_interleave(input, h->temp, tcod_per_fw[len_idx], long_cb);
|
||||||
h->temp[i] = 0;
|
|
||||||
for (uint32_t j=0;j<8;j++) {
|
|
||||||
uint32_t i_p = tcod_per_fw[len_idx][i*8+j];
|
|
||||||
if (input[i_p/8] & (1<<(7-i_p%8))) {
|
|
||||||
h->temp[i] |= 1<<(7-j);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Parity bits for the 2nd constituent encoders */
|
/* Parity bits for the 2nd constituent encoders */
|
||||||
uint8_t state1 = 0;
|
uint8_t state1 = 0;
|
||||||
|
|
|
@ -31,6 +31,24 @@
|
||||||
|
|
||||||
#include "srslte/utils/bit.h"
|
#include "srslte/utils/bit.h"
|
||||||
|
|
||||||
|
void srslte_bit_interleave(uint8_t *input, uint8_t *output, uint32_t *interleaver, uint32_t nof_bits) {
|
||||||
|
for (uint32_t i=0;i<nof_bits/8;i++) {
|
||||||
|
output[i] = 0;
|
||||||
|
for (uint32_t j=0;j<8;j++) {
|
||||||
|
uint32_t i_p = interleaver[i*8+j];
|
||||||
|
if (input[i_p/8] & (1<<(7-i_p%8))) {
|
||||||
|
output[i] |= 1<<(7-j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (uint32_t j=0;j<nof_bits%8;j++) {
|
||||||
|
uint32_t i_p = interleaver[(nof_bits/8)*8+j];
|
||||||
|
if (input[i_p/8] & (1<<(7-i_p%8))) {
|
||||||
|
output[nof_bits/8] |= 1<<(7-j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void srslte_bit_unpack_vector(uint8_t *bits_unpacked, uint8_t *bits_packed, int nof_bits)
|
void srslte_bit_unpack_vector(uint8_t *bits_unpacked, uint8_t *bits_packed, int nof_bits)
|
||||||
{
|
{
|
||||||
uint32_t i, nbytes;
|
uint32_t i, nbytes;
|
||||||
|
|
Loading…
Reference in New Issue