|
|
@ -73,7 +73,7 @@ int decode37(void *o, uint8_t *symbols, uint8_t *data, uint32_t frame_length) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
update_viterbi37_blk_port(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
update_viterbi37_blk_port(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
chainback_viterbi37_port(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
chainback_viterbi37_port(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
memcpy(data, q->tmp, frame_length*sizeof(uint8_t));
|
|
|
|
memcpy(data, &q->tmp[((int) (TB_ITER/2))*frame_length], frame_length*sizeof(uint8_t));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
update_viterbi37_blk_port(q->ptr, symbols, frame_length + q->K - 1, NULL);
|
|
|
|
update_viterbi37_blk_port(q->ptr, symbols, frame_length + q->K - 1, NULL);
|
|
|
|
chainback_viterbi37_port(q->ptr, data, frame_length, 0);
|
|
|
|
chainback_viterbi37_port(q->ptr, data, frame_length, 0);
|
|
|
@ -105,7 +105,7 @@ int decode37_sse(void *o, uint8_t *symbols, uint8_t *data, uint32_t frame_length
|
|
|
|
}
|
|
|
|
}
|
|
|
|
update_viterbi37_blk_sse(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
update_viterbi37_blk_sse(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
chainback_viterbi37_sse(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
chainback_viterbi37_sse(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
memcpy(data, q->tmp, frame_length*sizeof(uint8_t));
|
|
|
|
memcpy(data, &q->tmp[((int) (TB_ITER/2))*frame_length], frame_length*sizeof(uint8_t));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
update_viterbi37_blk_sse(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
update_viterbi37_blk_sse(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
chainback_viterbi37_sse(q->ptr, data, frame_length, 0);
|
|
|
|
chainback_viterbi37_sse(q->ptr, data, frame_length, 0);
|
|
|
@ -151,7 +151,7 @@ int decode37_avx2_16bit(void *o, uint16_t *symbols, uint8_t *data, uint32_t fram
|
|
|
|
}
|
|
|
|
}
|
|
|
|
update_viterbi37_blk_avx2_16bit(q->ptr, q->tmp_s, TB_ITER*frame_length, &best_state);
|
|
|
|
update_viterbi37_blk_avx2_16bit(q->ptr, q->tmp_s, TB_ITER*frame_length, &best_state);
|
|
|
|
chainback_viterbi37_avx2_16bit(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
chainback_viterbi37_avx2_16bit(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
memcpy(data, q->tmp, frame_length*sizeof(uint8_t));
|
|
|
|
memcpy(data, &q->tmp[((int) (TB_ITER/2))*frame_length], frame_length*sizeof(uint8_t));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
update_viterbi37_blk_avx2_16bit(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
update_viterbi37_blk_avx2_16bit(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
chainback_viterbi37_avx2_16bit(q->ptr, data, frame_length, 0);
|
|
|
|
chainback_viterbi37_avx2_16bit(q->ptr, data, frame_length, 0);
|
|
|
@ -192,7 +192,7 @@ int decode37_avx2(void *o, uint8_t *symbols, uint8_t *data, uint32_t frame_lengt
|
|
|
|
}
|
|
|
|
}
|
|
|
|
update_viterbi37_blk_avx2(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
update_viterbi37_blk_avx2(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
chainback_viterbi37_avx2(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
chainback_viterbi37_avx2(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
memcpy(data, q->tmp, frame_length*sizeof(uint8_t));
|
|
|
|
memcpy(data, &q->tmp[((int) (TB_ITER/2))*frame_length], frame_length*sizeof(uint8_t));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
update_viterbi37_blk_avx2(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
update_viterbi37_blk_avx2(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
chainback_viterbi37_avx2(q->ptr, data, frame_length, 0);
|
|
|
|
chainback_viterbi37_avx2(q->ptr, data, frame_length, 0);
|
|
|
@ -237,7 +237,7 @@ int decode37_neon(void *o, uint8_t *symbols, uint8_t *data, uint32_t frame_lengt
|
|
|
|
}
|
|
|
|
}
|
|
|
|
update_viterbi37_blk_neon(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
update_viterbi37_blk_neon(q->ptr, q->tmp, TB_ITER*frame_length, &best_state);
|
|
|
|
chainback_viterbi37_neon(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
chainback_viterbi37_neon(q->ptr, q->tmp, TB_ITER*frame_length, best_state);
|
|
|
|
memcpy(data, q->tmp, frame_length*sizeof(uint8_t));
|
|
|
|
memcpy(data, &q->tmp[((int) (TB_ITER/2))*frame_length], frame_length*sizeof(uint8_t));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
update_viterbi37_blk_neon(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
update_viterbi37_blk_neon(q->ptr, symbols, frame_length+q->K-1, NULL);
|
|
|
|
chainback_viterbi37_neon(q->ptr, data, frame_length, 0);
|
|
|
|
chainback_viterbi37_neon(q->ptr, data, frame_length, 0);
|
|
|
|