From: Mathis Rosenhauer Date: Thu, 13 Dec 2012 09:08:13 +0000 (+0100) Subject: Let compiler decide how to unroll X-Git-Tag: accepted/tizen/5.0/unified/20181102.025501~156 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ed965181ddffd4df88c25d47912a84358f8c549;p=platform%2Fupstream%2Flibaec.git Let compiler decide how to unroll --- diff --git a/src/encode.c b/src/encode.c index 8ae13e9..e06462b 100644 --- a/src/encode.c +++ b/src/encode.c @@ -278,33 +278,6 @@ 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) { /** @@ -332,7 +305,7 @@ static uint32_t assess_splitting_option(struct aec_stream *strm) analogue check can be done for decreasing k. */ - int k; + int i, k; int k_min; int this_bs; /* Block size of current block */ int no_turn; /* 1 if we shouldn't reverse */ @@ -350,7 +323,9 @@ static uint32_t assess_splitting_option(struct aec_stream *strm) dir = 1; for (;;) { - fs_len = block_fs(strm, k); + fs_len = 0; + for (i = state->ref; i < strm->block_size; i++) + fs_len += (uint64_t)(state->block[i] >> k); len = fs_len + this_bs * (k + 1); if (len < len_min) {