Browse Source

aacenc_tns: re-enable coefficient compression

This time in a platform/compiler-generic way.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
tags/n2.8
Rostislav Pehlivanov 10 years ago
parent
commit
5df166e430
1 changed files with 11 additions and 7 deletions
  1. +11
    -7
      libavcodec/aacenc_tns.c

+ 11
- 7
libavcodec/aacenc_tns.c View File

@@ -49,12 +49,16 @@ static inline void conv_to_float(float *arr, int32_t *cof, int num)
/* Input: quantized 4 bit coef, output: 1 if first (MSB) 2 bits are the same */
static inline int coef_test_compression(int coef)
{
int res = 0;
/*coef = coef >> 3;
res += ffs(coef);
coef = coef >> 1;
res += ffs(coef);*/
return 0;
int tmp = coef >> 2;
int res = ff_ctz(tmp);
if (res > 1)
return 1; /* ...00 -> compressable */
else if (res == 1)
return 0; /* ...10 -> uncompressable */
else if (ff_ctz(tmp >> 1) > 0)
return 0; /* ...0 1 -> uncompressable */
else
return 1; /* ...1 1 -> compressable */
}

static inline int compress_coef(int *coefs, int num)
@@ -62,7 +66,7 @@ static inline int compress_coef(int *coefs, int num)
int i, res = 0;
for (i = 0; i < num; i++)
res += coef_test_compression(coefs[i]);
return 0;
return res == num ? 1 : 0;
}

/**


Loading…
Cancel
Save