示例#1
0
int16 __ext_viterbiSig11a_brick_decode_fast(char* intInput, int len1, uchar* bit, int len2)
{
	static const int state_size = 64;
	static const int input_size = 48; // always 48 soft-values

	vub   trellis[state_size / 16 * input_size];
	uint output = 0;

	Viterbi_sig11(trellis, (char *)intInput, (char *)(bit));
	*((uint *)bit) >>= 6; // remove the prefix 6 zeros

	return 0;
}
示例#2
0
FORCE_INLINE
int16 __ext_viterbiSig11a_brick_decode_fast(num8 * intInput, int len1, unsigned char* bit, int len2)
{
	static const int state_size = 64;
	static const int input_size = 48; // always 48 soft-values

#if defined(__GNUC__) && !defined(__ARM_NEON__)
	__m128i trellis[state_size / 16 * input_size];
#else
	vub trellis[state_size / 16 * input_size];
#endif

	unsigned int output = 0;

	Viterbi_sig11(trellis, intInput, (num8 *)(bit));
	*((unum32 *)bit) >>= 6; // remove the prefix 6 zeros

	return 0;
}