Skip to content
Snippets Groups Projects
Commit 790a3612 authored by Mathis Rosenhauer's avatar Mathis Rosenhauer Committed by Thomas Jahns
Browse files

Revert "Let compiler decide how to unroll"

This reverts commit fdc6797ea6f3865ca079ebc260814a6f584b1cff.
parent 1ed96518
No related branches found
No related tags found
No related merge requests found
......@@ -278,6 +278,33 @@ static void preprocess_signed(struct aec_stream *strm)
state->uncomp_len = (strm->block_size - 1) * strm->bits_per_sample;
}
static uint64_t block_fs(struct aec_stream *strm, int k)
{
/**
Sum FS of all samples in block for given splitting position.
*/
int i;
uint64_t fs = 0;
struct internal_state *state = strm->state;
for (i = 0; i < strm->block_size; i += 8)
fs +=
(uint64_t)(state->block[i + 0] >> k)
+ (uint64_t)(state->block[i + 1] >> k)
+ (uint64_t)(state->block[i + 2] >> k)
+ (uint64_t)(state->block[i + 3] >> k)
+ (uint64_t)(state->block[i + 4] >> k)
+ (uint64_t)(state->block[i + 5] >> k)
+ (uint64_t)(state->block[i + 6] >> k)
+ (uint64_t)(state->block[i + 7] >> k);
if (state->ref)
fs -= (uint64_t)(state->block[0] >> k);
return fs;
}
static uint32_t assess_splitting_option(struct aec_stream *strm)
{
/**
......@@ -305,7 +332,7 @@ static uint32_t assess_splitting_option(struct aec_stream *strm)
analogue check can be done for decreasing k.
*/
int i, k;
int k;
int k_min;
int this_bs; /* Block size of current block */
int no_turn; /* 1 if we shouldn't reverse */
......@@ -323,9 +350,7 @@ static uint32_t assess_splitting_option(struct aec_stream *strm)
dir = 1;
for (;;) {
fs_len = 0;
for (i = state->ref; i < strm->block_size; i++)
fs_len += (uint64_t)(state->block[i] >> k);
fs_len = block_fs(strm, k);
len = fs_len + this_bs * (k + 1);
if (len < len_min) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment