summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/amrwbenc/src/log2.c
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/codecs/amrwbenc/src/log2.c')
-rw-r--r--media/libstagefright/codecs/amrwbenc/src/log2.c222
1 files changed, 111 insertions, 111 deletions
diff --git a/media/libstagefright/codecs/amrwbenc/src/log2.c b/media/libstagefright/codecs/amrwbenc/src/log2.c
index cd3d815..646d6af 100644
--- a/media/libstagefright/codecs/amrwbenc/src/log2.c
+++ b/media/libstagefright/codecs/amrwbenc/src/log2.c
@@ -1,111 +1,111 @@
-/*
- ** Copyright 2003-2010, VisualOn, Inc.
- **
- ** Licensed under the Apache License, Version 2.0 (the "License");
- ** you may not use this file except in compliance with the License.
- ** You may obtain a copy of the License at
- **
- ** http://www.apache.org/licenses/LICENSE-2.0
- **
- ** Unless required by applicable law or agreed to in writing, software
- ** distributed under the License is distributed on an "AS IS" BASIS,
- ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ** See the License for the specific language governing permissions and
- ** limitations under the License.
- */
-
-/***********************************************************************
-* *
-* File : log2.c *
-* Purpose : Computes log2(L_x) *
-* *
-************************************************************************/
-
-#include "log2.h"
-/********************************************************************************
-* INCLUDE FILES
-*********************************************************************************/
-#include "typedef.h"
-#include "basic_op.h"
-
-/*********************************************************************************
-* LOCAL VARIABLES AND TABLES
-**********************************************************************************/
-#include "log2_tab.h" /* Table for Log2() */
-
-/*************************************************************************
-*
-* FUNCTION: Log2_norm()
-*
-* PURPOSE: Computes log2(L_x, exp), where L_x is positive and
-* normalized, and exp is the normalisation exponent
-* If L_x is negative or zero, the result is 0.
-*
-* DESCRIPTION:
-* The function Log2(L_x) is approximated by a table and linear
-* interpolation. The following steps are used to compute Log2(L_x)
-*
-* 1- exponent = 30-norm_exponent
-* 2- i = bit25-b31 of L_x; 32<=i<=63 (because of normalization).
-* 3- a = bit10-b24
-* 4- i -=32
-* 5- fraction = table[i]<<16 - (table[i] - table[i+1]) * a * 2
-*
-*************************************************************************/
-
-void Log2_norm (
- Word32 L_x, /* (i) : input value (normalized) */
- Word16 exp, /* (i) : norm_l (L_x) */
- Word16 *exponent, /* (o) : Integer part of Log2. (range: 0<=val<=30) */
- Word16 *fraction /* (o) : Fractional part of Log2. (range: 0<=val<1) */
- )
-{
- Word16 i, a, tmp;
- Word32 L_y;
- if (L_x <= (Word32) 0)
- {
- *exponent = 0;
- *fraction = 0;
- return;
- }
- *exponent = (30 - exp);
- L_x = (L_x >> 9);
- i = extract_h (L_x); /* Extract b25-b31 */
- L_x = (L_x >> 1);
- a = (Word16)(L_x); /* Extract b10-b24 of fraction */
- a = (Word16)(a & (Word16)0x7fff);
- i -= 32;
- L_y = L_deposit_h (table[i]); /* table[i] << 16 */
- tmp = vo_sub(table[i], table[i + 1]); /* table[i] - table[i+1] */
- L_y = vo_L_msu (L_y, tmp, a); /* L_y -= tmp*a*2 */
- *fraction = extract_h (L_y);
-
- return;
-}
-
-/*************************************************************************
-*
-* FUNCTION: Log2()
-*
-* PURPOSE: Computes log2(L_x), where L_x is positive.
-* If L_x is negative or zero, the result is 0.
-*
-* DESCRIPTION:
-* normalizes L_x and then calls Log2_norm().
-*
-*************************************************************************/
-
-void Log2 (
- Word32 L_x, /* (i) : input value */
- Word16 *exponent, /* (o) : Integer part of Log2. (range: 0<=val<=30) */
- Word16 *fraction /* (o) : Fractional part of Log2. (range: 0<=val<1) */
- )
-{
- Word16 exp;
-
- exp = norm_l(L_x);
- Log2_norm ((L_x << exp), exp, exponent, fraction);
-}
-
-
-
+/*
+ ** Copyright 2003-2010, VisualOn, Inc.
+ **
+ ** Licensed under the Apache License, Version 2.0 (the "License");
+ ** you may not use this file except in compliance with the License.
+ ** You may obtain a copy of the License at
+ **
+ ** http://www.apache.org/licenses/LICENSE-2.0
+ **
+ ** Unless required by applicable law or agreed to in writing, software
+ ** distributed under the License is distributed on an "AS IS" BASIS,
+ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ** See the License for the specific language governing permissions and
+ ** limitations under the License.
+ */
+
+/***********************************************************************
+* *
+* File : log2.c *
+* Purpose : Computes log2(L_x) *
+* *
+************************************************************************/
+
+#include "log2.h"
+/********************************************************************************
+* INCLUDE FILES
+*********************************************************************************/
+#include "typedef.h"
+#include "basic_op.h"
+
+/*********************************************************************************
+* LOCAL VARIABLES AND TABLES
+**********************************************************************************/
+#include "log2_tab.h" /* Table for Log2() */
+
+/*************************************************************************
+*
+* FUNCTION: Log2_norm()
+*
+* PURPOSE: Computes log2(L_x, exp), where L_x is positive and
+* normalized, and exp is the normalisation exponent
+* If L_x is negative or zero, the result is 0.
+*
+* DESCRIPTION:
+* The function Log2(L_x) is approximated by a table and linear
+* interpolation. The following steps are used to compute Log2(L_x)
+*
+* 1- exponent = 30-norm_exponent
+* 2- i = bit25-b31 of L_x; 32<=i<=63 (because of normalization).
+* 3- a = bit10-b24
+* 4- i -=32
+* 5- fraction = table[i]<<16 - (table[i] - table[i+1]) * a * 2
+*
+*************************************************************************/
+
+void Log2_norm (
+ Word32 L_x, /* (i) : input value (normalized) */
+ Word16 exp, /* (i) : norm_l (L_x) */
+ Word16 *exponent, /* (o) : Integer part of Log2. (range: 0<=val<=30) */
+ Word16 *fraction /* (o) : Fractional part of Log2. (range: 0<=val<1) */
+ )
+{
+ Word16 i, a, tmp;
+ Word32 L_y;
+ if (L_x <= (Word32) 0)
+ {
+ *exponent = 0;
+ *fraction = 0;
+ return;
+ }
+ *exponent = (30 - exp);
+ L_x = (L_x >> 9);
+ i = extract_h (L_x); /* Extract b25-b31 */
+ L_x = (L_x >> 1);
+ a = (Word16)(L_x); /* Extract b10-b24 of fraction */
+ a = (Word16)(a & (Word16)0x7fff);
+ i -= 32;
+ L_y = L_deposit_h (table[i]); /* table[i] << 16 */
+ tmp = vo_sub(table[i], table[i + 1]); /* table[i] - table[i+1] */
+ L_y = vo_L_msu (L_y, tmp, a); /* L_y -= tmp*a*2 */
+ *fraction = extract_h (L_y);
+
+ return;
+}
+
+/*************************************************************************
+*
+* FUNCTION: Log2()
+*
+* PURPOSE: Computes log2(L_x), where L_x is positive.
+* If L_x is negative or zero, the result is 0.
+*
+* DESCRIPTION:
+* normalizes L_x and then calls Log2_norm().
+*
+*************************************************************************/
+
+void Log2 (
+ Word32 L_x, /* (i) : input value */
+ Word16 *exponent, /* (o) : Integer part of Log2. (range: 0<=val<=30) */
+ Word16 *fraction /* (o) : Fractional part of Log2. (range: 0<=val<1) */
+ )
+{
+ Word16 exp;
+
+ exp = norm_l(L_x);
+ Log2_norm ((L_x << exp), exp, exponent, fraction);
+}
+
+
+