OSDN Git Service

stagefright aacenc/amrwbenc: Remove trailing whitespace
authorMans Rullgard <mans@mansr.com>
Tue, 5 Apr 2011 14:40:06 +0000 (17:40 +0300)
committerMartin Storsjo <martin@martin.st>
Thu, 12 Jan 2012 09:14:04 +0000 (11:14 +0200)
This was applied in AOSP master earlier, in commit
b21611e5b0f1797e39e781d91ade023bac87637f, but when merged
into the Google internal tree in
88c2d4d26d79384f32a25bd775cf873cb678b12a, none of these
changes have been brought in. (The diff of this merge commit
and its first parent, d94b71d, is empty.)

Therefore, reapply the rest of these changes on the files
that still are present in the current version.

Change-Id: I645a9b9134769958a11808a06163123d28d83e46

133 files changed:
media/libstagefright/codecs/aacenc/Android.mk
media/libstagefright/codecs/aacenc/SampleCode/AAC_E_SAMPLES.c
media/libstagefright/codecs/aacenc/basic_op/basic_op.h
media/libstagefright/codecs/aacenc/basic_op/basicop2.c
media/libstagefright/codecs/aacenc/basic_op/oper_32b.c
media/libstagefright/codecs/aacenc/basic_op/oper_32b.h
media/libstagefright/codecs/aacenc/basic_op/typedef.h
media/libstagefright/codecs/aacenc/basic_op/typedefs.h
media/libstagefright/codecs/aacenc/inc/aac_rom.h
media/libstagefright/codecs/aacenc/inc/aacenc_core.h
media/libstagefright/codecs/aacenc/inc/adj_thr.h
media/libstagefright/codecs/aacenc/inc/adj_thr_data.h
media/libstagefright/codecs/aacenc/inc/bitenc.h
media/libstagefright/codecs/aacenc/inc/interface.h
media/libstagefright/codecs/aacenc/inc/line_pe.h
media/libstagefright/codecs/aacenc/inc/psy_const.h
media/libstagefright/codecs/aacenc/inc/psy_main.h
media/libstagefright/codecs/aacenc/inc/qc_main.h
media/libstagefright/codecs/aacenc/inc/quantize.h
media/libstagefright/codecs/aacenc/inc/sf_estim.h
media/libstagefright/codecs/aacenc/inc/stat_bits.h
media/libstagefright/codecs/aacenc/inc/tns_param.h
media/libstagefright/codecs/aacenc/inc/transform.h
media/libstagefright/codecs/aacenc/src/aac_rom.c
media/libstagefright/codecs/aacenc/src/aacenc.c
media/libstagefright/codecs/aacenc/src/aacenc_core.c
media/libstagefright/codecs/aacenc/src/adj_thr.c
media/libstagefright/codecs/aacenc/src/asm/ARMV5E/AutoCorrelation_v5.s
media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s
media/libstagefright/codecs/aacenc/src/asm/ARMV5E/PrePostMDCT_v5.s
media/libstagefright/codecs/aacenc/src/asm/ARMV5E/R4R8First_v5.s
media/libstagefright/codecs/aacenc/src/asm/ARMV5E/Radix4FFT_v5.s
media/libstagefright/codecs/aacenc/src/asm/ARMV5E/band_nrg_v5.s
media/libstagefright/codecs/aacenc/src/asm/ARMV7/PrePostMDCT_v7.s
media/libstagefright/codecs/aacenc/src/asm/ARMV7/R4R8First_v7.s
media/libstagefright/codecs/aacenc/src/asm/ARMV7/Radix4FFT_v7.s
media/libstagefright/codecs/aacenc/src/band_nrg.c
media/libstagefright/codecs/aacenc/src/bit_cnt.c
media/libstagefright/codecs/aacenc/src/bitbuffer.c
media/libstagefright/codecs/aacenc/src/bitenc.c
media/libstagefright/codecs/aacenc/src/block_switch.c
media/libstagefright/codecs/aacenc/src/channel_map.c
media/libstagefright/codecs/aacenc/src/dyn_bits.c
media/libstagefright/codecs/aacenc/src/grp_data.c
media/libstagefright/codecs/aacenc/src/interface.c
media/libstagefright/codecs/aacenc/src/line_pe.c
media/libstagefright/codecs/aacenc/src/memalign.c
media/libstagefright/codecs/aacenc/src/ms_stereo.c
media/libstagefright/codecs/aacenc/src/pre_echo_control.c
media/libstagefright/codecs/aacenc/src/psy_configuration.c
media/libstagefright/codecs/aacenc/src/psy_main.c
media/libstagefright/codecs/aacenc/src/qc_main.c
media/libstagefright/codecs/aacenc/src/quantize.c
media/libstagefright/codecs/aacenc/src/sf_estim.c
media/libstagefright/codecs/aacenc/src/stat_bits.c
media/libstagefright/codecs/aacenc/src/tns.c
media/libstagefright/codecs/aacenc/src/transform.c
media/libstagefright/codecs/amrwbenc/Android.mk
media/libstagefright/codecs/amrwbenc/inc/basic_op.h
media/libstagefright/codecs/amrwbenc/inc/homing.tab
media/libstagefright/codecs/amrwbenc/inc/isp_isf.tab
media/libstagefright/codecs/amrwbenc/inc/log2.h
media/libstagefright/codecs/amrwbenc/inc/mime_io.tab
media/libstagefright/codecs/amrwbenc/inc/stream.h
media/libstagefright/codecs/amrwbenc/inc/typedef.h
media/libstagefright/codecs/amrwbenc/inc/typedefs.h
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Deemph_32_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Dot_p_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Filt_6k_7k_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Norm_Corr_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/Syn_filt_32_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/convolve_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/cor_h_vec_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/pred_lt4_1_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/residu_asm_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/scale_sig_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Deemph_32_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Dot_p_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Filt_6k_7k_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Norm_Corr_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/Syn_filt_32_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/convolve_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/cor_h_vec_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/residu_asm_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s
media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/syn_filt_neon.s
media/libstagefright/codecs/amrwbenc/src/autocorr.c
media/libstagefright/codecs/amrwbenc/src/az_isp.c
media/libstagefright/codecs/amrwbenc/src/bits.c
media/libstagefright/codecs/amrwbenc/src/c2t64fx.c
media/libstagefright/codecs/amrwbenc/src/c4t64fx.c
media/libstagefright/codecs/amrwbenc/src/convolve.c
media/libstagefright/codecs/amrwbenc/src/cor_h_x.c
media/libstagefright/codecs/amrwbenc/src/decim54.c
media/libstagefright/codecs/amrwbenc/src/deemph.c
media/libstagefright/codecs/amrwbenc/src/dtx.c
media/libstagefright/codecs/amrwbenc/src/g_pitch.c
media/libstagefright/codecs/amrwbenc/src/gpclip.c
media/libstagefright/codecs/amrwbenc/src/hp400.c
media/libstagefright/codecs/amrwbenc/src/hp50.c
media/libstagefright/codecs/amrwbenc/src/hp6k.c
media/libstagefright/codecs/amrwbenc/src/hp_wsp.c
media/libstagefright/codecs/amrwbenc/src/int_lpc.c
media/libstagefright/codecs/amrwbenc/src/isp_az.c
media/libstagefright/codecs/amrwbenc/src/isp_isf.c
media/libstagefright/codecs/amrwbenc/src/levinson.c
media/libstagefright/codecs/amrwbenc/src/log2.c
media/libstagefright/codecs/amrwbenc/src/lp_dec2.c
media/libstagefright/codecs/amrwbenc/src/math_op.c
media/libstagefright/codecs/amrwbenc/src/mem_align.c
media/libstagefright/codecs/amrwbenc/src/p_med_ol.c
media/libstagefright/codecs/amrwbenc/src/pitch_f4.c
media/libstagefright/codecs/amrwbenc/src/pred_lt4.c
media/libstagefright/codecs/amrwbenc/src/preemph.c
media/libstagefright/codecs/amrwbenc/src/q_gain2.c
media/libstagefright/codecs/amrwbenc/src/q_pulse.c
media/libstagefright/codecs/amrwbenc/src/qisf_ns.c
media/libstagefright/codecs/amrwbenc/src/qpisf_2s.c
media/libstagefright/codecs/amrwbenc/src/residu.c
media/libstagefright/codecs/amrwbenc/src/scale.c
media/libstagefright/codecs/amrwbenc/src/stream.c
media/libstagefright/codecs/amrwbenc/src/syn_filt.c
media/libstagefright/codecs/amrwbenc/src/updt_tar.c
media/libstagefright/codecs/amrwbenc/src/voAMRWBEnc.c
media/libstagefright/codecs/amrwbenc/src/voicefac.c
media/libstagefright/codecs/amrwbenc/src/wb_vad.c
media/libstagefright/codecs/amrwbenc/src/weight_a.c
media/libstagefright/codecs/common/Config.mk
media/libstagefright/codecs/common/include/voAMRWB.h
media/libstagefright/codecs/common/include/voAudio.h
media/libstagefright/codecs/common/include/voIndex.h

index f9cc6a3..8318ba4 100644 (file)
@@ -59,7 +59,7 @@ LOCAL_MODULE := libstagefright_aacenc
 
 LOCAL_ARM_MODE := arm
 
-LOCAL_STATIC_LIBRARIES := 
+LOCAL_STATIC_LIBRARIES :=
 
 LOCAL_SHARED_LIBRARIES :=
 
index 2ea9449..2f31de4 100644 (file)
 #include               "cmnMemory.h"
 
 #define  VO_AAC_E_OUTPUT         1
-#define READ_SIZE      (1024*8)        
+#define READ_SIZE      (1024*8)
 unsigned char outBuf[1024*8];
 unsigned char inBuf[READ_SIZE];
 
-const char* HelpString = 
+const char* HelpString =
 "VisualOn AAC encoder Usage:\n"
 "voAACEncTest -if <inputfile.pcm> -of <outputfile.aac> -sr <samplerate> -ch <channel> -br <bitrate> -adts <adts> \n"
 "-if input file name \n"
@@ -49,7 +49,7 @@ static int parsecmdline(int argc, char **argv,char  **input_filename, char  **ou
 {
        // notice that:
        // bitRate/nChannels > 8000
-       // bitRate/nChannels < 160000 
+       // bitRate/nChannels < 160000
        // bitRate/nChannels < sampleRate*6
        param->adtsUsed = 1;
        param->bitRate = 0;
@@ -69,7 +69,7 @@ static int parsecmdline(int argc, char **argv,char  **input_filename, char  **ou
                {
                        argv++;
                        argc--;
-                       *input_filename = *argv; 
+                       *input_filename = *argv;
                }
                else if (!strcmp(*argv, "-of"))
                {
index 8291684..ef3c31b 100644 (file)
@@ -91,7 +91,7 @@ __inline Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2);
 #else
 Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2);
 #endif
-    
+
 /* Long sub,        2 */
 #if (L_SUB_IS_INLINE)
 __inline Word32 L_sub(Word32 L_var1, Word32 L_var2);
@@ -119,7 +119,7 @@ __inline Word16 add (Word16 var1, Word16 var2);
 #else
 Word16 add (Word16 var1, Word16 var2);
 #endif
-    
+
 /* Short sub,           1   */
 #if (SUB_IS_INLINE)
 __inline Word16 sub(Word16 var1, Word16 var2);
@@ -227,48 +227,48 @@ Word32 L_shr_r (Word32 L_var1, Word16 var2);
 #if ARMV4_INASM
 __inline Word32 ASM_L_shr(Word32 L_var1, Word16 var2)
 {
-       Word32 result; 
-       asm volatile( 
-               "MOV %[result], %[L_var1], ASR %[var2] \n" 
+       Word32 result;
+       asm volatile(
+               "MOV %[result], %[L_var1], ASR %[var2] \n"
                :[result]"=r"(result)
                :[L_var1]"r"(L_var1), [var2]"r"(var2)
-               ); 
-       return result;  
+               );
+       return result;
 }
+
 __inline Word32 ASM_L_shl(Word32 L_var1, Word16 var2)
 {
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "MOV    r2, %[L_var1] \n"
                "MOV    r3, #0x7fffffff\n"
-               "MOV    %[result], %[L_var1], ASL %[var2] \n" 
+               "MOV    %[result], %[L_var1], ASL %[var2] \n"
                "TEQ    r2, %[result], ASR %[var2]\n"
                "EORNE  %[result],r3,r2,ASR#31\n"
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1), [var2]"r"(var2)
                :"r2", "r3"
-               ); 
-       return result;  
+               );
+       return result;
 }
 
 __inline Word32 ASM_shr(Word32 L_var1, Word16 var2)
 {
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "CMP    %[var2], #15\n"
                "MOVGE  %[var2], #15\n"
                "MOV    %[result], %[L_var1], ASR %[var2]\n"
                :[result]"=r"(result)
-               :[L_var1]"r"(L_var1), [var2]"r"(var2) 
-               ); 
-       return result;  
-} 
+               :[L_var1]"r"(L_var1), [var2]"r"(var2)
+               );
+       return result;
+}
 
 __inline Word32 ASM_shl(Word32 L_var1, Word16 var2)
 {
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "CMP    %[var2], #16\n"
                "MOVGE  %[var2], #16\n"
                "MOV    %[result], %[L_var1], ASL %[var2]\n"
@@ -280,9 +280,9 @@ __inline Word32 ASM_shl(Word32 L_var1, Word16 var2)
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1), [var2]"r"(var2)
                :"r2", "r3"
-               ); 
-       return result;  
-} 
+               );
+       return result;
+}
 #endif
 
 /*___________________________________________________________________________
@@ -300,17 +300,17 @@ __inline Word16 saturate(Word32 L_var1)
                "MOV    r3, #1\n"
                "MOV    r2,%[L_var1],ASR#15\n"
                "RSB    r3, r3, r3, LSL #15\n"
-               "TEQ    r2,%[L_var1],ASR#31\n"  
+               "TEQ    r2,%[L_var1],ASR#31\n"
                "EORNE  %[result],r3,%[L_var1],ASR#31\n"
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1)
-               :"r2", "r3"                     
+               :"r2", "r3"
        );
 
        return result;
 #else
     Word16 var_out;
-    
+
     //var_out = (L_var1 > (Word32)0X00007fffL) ? (MAX_16) : ((L_var1 < (Word32)0xffff8000L) ? (MIN_16) : ((Word16)L_var1));
 
     if (L_var1 > 0X00007fffL)
@@ -419,13 +419,13 @@ __inline Word16 shr (Word16 var1, Word16 var2)
 __inline Word32 L_mult(Word16 var1, Word16 var2)
 {
 #if ARMV5TE_L_MULT
-       Word32 result; 
-       asm volatile( 
-               "SMULBB %[result], %[var1], %[var2] \n" 
-               "QADD %[result], %[result], %[result] \n" 
+       Word32 result;
+       asm volatile(
+               "SMULBB %[result], %[var1], %[var2] \n"
+               "QADD %[result], %[result], %[result] \n"
                :[result]"+r"(result)
                :[var1]"r"(var1), [var2]"r"(var2)
-               ); 
+               );
        return result;
 #else
     Word32 L_var_out;
@@ -449,14 +449,14 @@ __inline Word32 L_mult(Word16 var1, Word16 var2)
 __inline Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2)
 {
 #if ARMV5TE_L_MSU
-       Word32 result; 
-       asm volatile( 
-               "SMULBB %[result], %[var1], %[var2] \n" 
+       Word32 result;
+       asm volatile(
+               "SMULBB %[result], %[var1], %[var2] \n"
                "QADD %[result], %[result], %[result] \n"
                "QSUB %[result], %[L_var3], %[result]\n"
                :[result]"+r"(result)
                :[L_var3]"r"(L_var3), [var1]"r"(var1), [var2]"r"(var2)
-               ); 
+               );
        return result;
 #else
     Word32 L_var_out;
@@ -473,12 +473,12 @@ __inline Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2)
 __inline Word32 L_sub(Word32 L_var1, Word32 L_var2)
 {
 #if ARMV5TE_L_SUB
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "QSUB %[result], %[L_var1], %[L_var2]\n"
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1), [L_var2]"r"(L_var2)
-               ); 
+               );
        return result;
 #else
     Word32 L_var_out;
@@ -588,9 +588,9 @@ __inline Word32 L_shr (Word32 L_var1, Word16 var2)
 __inline Word16 add (Word16 var1, Word16 var2)
 {
 #if ARMV5TE_ADD
-       Word32 result; 
-       asm volatile( 
-               "ADD  %[result], %[var1], %[var2] \n" 
+       Word32 result;
+       asm volatile(
+               "ADD  %[result], %[var1], %[var2] \n"
                "MOV  r3, #0x1\n"
                "MOV  r2, %[result], ASR #15\n"
                "RSB  r3, r3, r3, LSL, #15\n"
@@ -599,7 +599,7 @@ __inline Word16 add (Word16 var1, Word16 var2)
                :[result]"+r"(result)
                :[var1]"r"(var1), [var2]"r"(var2)
                :"r2", "r3"
-               ); 
+               );
        return result;
 #else
     Word16 var_out;
@@ -618,18 +618,18 @@ __inline Word16 add (Word16 var1, Word16 var2)
 __inline Word16 sub(Word16 var1, Word16 var2)
 {
 #if ARMV5TE_SUB
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "MOV   r3, #1\n"
-               "SUB   %[result], %[var1], %[var2] \n"          
+               "SUB   %[result], %[var1], %[var2] \n"
                "RSB   r3,r3,r3,LSL#15\n"
-               "MOV   r2, %[var1], ASR #15 \n" 
+               "MOV   r2, %[var1], ASR #15 \n"
                "TEQ   r2, %[var1], ASR #31 \n"
                "EORNE %[result], r3, %[result], ASR #31 \n"
                :[result]"+r"(result)
                :[var1]"r"(var1), [var2]"r"(var2)
                :"r2", "r3"
-               ); 
+               );
        return result;
 #else
     Word16 var_out;
@@ -637,7 +637,7 @@ __inline Word16 sub(Word16 var1, Word16 var2)
 
     L_diff = (Word32) var1 - var2;
     var_out = saturate(L_diff);
-   
+
     return (var_out);
 #endif
 }
@@ -657,16 +657,16 @@ __inline Word16 div_s (Word16 var1, Word16 var2)
     {
        var_out = 0;
        L_num = (Word32) var1;
-    
+
        L_denom = (Word32) var2;
-       
+
                //return (L_num<<15)/var2;
 
        for (iteration = 0; iteration < 15; iteration++)
        {
                var_out <<= 1;
                L_num <<= 1;
-               
+
                if (L_num >= L_denom)
                {
                        L_num -= L_denom;
@@ -683,8 +683,8 @@ __inline Word16 div_s (Word16 var1, Word16 var2)
 __inline Word16 mult (Word16 var1, Word16 var2)
 {
 #if ARMV5TE_MULT
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "SMULBB r2, %[var1], %[var2] \n"
                "MOV    r3, #1\n"
                "MOV    %[result], r2, ASR #15\n"
@@ -695,7 +695,7 @@ __inline Word16 mult (Word16 var1, Word16 var2)
                :[result]"+r"(result)
                :[var1]"r"(var1), [var2]"r"(var2)
                :"r2", "r3"
-               ); 
+               );
        return result;
 #else
     Word16 var_out;
@@ -718,8 +718,8 @@ __inline Word16 mult (Word16 var1, Word16 var2)
 __inline Word16 norm_s (Word16 var1)
 {
 #if ARMV5TE_NORM_S
-       Word16 result; 
-       asm volatile( 
+       Word16 result;
+       asm volatile(
                "MOV   r2,%[var1] \n"
                "CMP   r2, #0\n"
                "RSBLT %[var1], %[var1], #0 \n"
@@ -727,11 +727,11 @@ __inline Word16 norm_s (Word16 var1)
                "SUBNE %[result], %[result], #17\n"
                "MOVEQ %[result], #0\n"
                "CMP   r2, #-1\n"
-               "MOVEQ %[result], #15\n" 
+               "MOVEQ %[result], #15\n"
                :[result]"+r"(result)
                :[var1]"r"(var1)
                :"r2"
-               ); 
+               );
        return result;
 #else
     Word16 var_out;
@@ -768,15 +768,15 @@ __inline Word16 norm_s (Word16 var1)
 __inline Word16 norm_l (Word32 L_var1)
 {
 #if ARMV5TE_NORM_L
-       Word16 result; 
-       asm volatile( 
+       Word16 result;
+       asm volatile(
                "CMP    %[L_var1], #0\n"
                "CLZNE  %[result], %[L_var1]\n"
-               "SUBNE  %[result], %[result], #1\n" 
+               "SUBNE  %[result], %[result], #1\n"
                "MOVEQ  %[result], #0\n"
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1)
-               ); 
+               );
        return result;
 #else
     //Word16 var_out;
@@ -805,84 +805,84 @@ __inline Word16 norm_l (Word32 L_var1)
     //}
     //return (var_out);
   Word16 a16;
-  Word16 r = 0 ;       
+  Word16 r = 0 ;
+
 
-   
   if ( L_var1 < 0 ) {
-    L_var1 = ~L_var1; 
+    L_var1 = ~L_var1;
   }
 
   if (0 == (L_var1 & 0x7fff8000)) {
     a16 = extract_l(L_var1);
     r += 16;
-       
+
     if (0 == (a16 & 0x7f80)) {
       r += 8;
-         
+
       if (0 == (a16 & 0x0078)) {
         r += 4;
-           
+
         if (0 == (a16 & 0x0006)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x0001)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x0004)) {
             r += 1;
           }
         }
       }
       else {
-           
+
         if (0 == (a16 & 0x0060)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x0010)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x0040)) {
             r += 1;
           }
         }
       }
-    } 
-    else { 
-         
+    }
+    else {
+
       if (0 == (a16 & 0x7800)) {
         r += 4;
-           
+
         if (0 == (a16 & 0x0600)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x0100)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x0400)) {
             r += 1;
           }
         }
       }
       else {
-           
+
         if (0 == (a16 & 0x6000)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x1000)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x4000)) {
             r += 1;
           }
@@ -892,38 +892,38 @@ __inline Word16 norm_l (Word32 L_var1)
   }
   else {
     a16 = extract_h(L_var1);
-       
+
     if (0 == (a16 & 0x7f80)) {
       r += 8;
-         
+
       if (0 == (a16 & 0x0078)) {
         r += 4 ;
-           
+
         if (0 == (a16 & 0x0006)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x0001)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x0004)) {
             r += 1;
           }
         }
       }
       else {
-           
+
         if (0 == (a16 & 0x0060)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x0010)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x0040)) {
             r += 1;
           }
@@ -931,35 +931,35 @@ __inline Word16 norm_l (Word32 L_var1)
       }
     }
     else {
-         
+
       if (0 == (a16 & 0x7800)) {
         r += 4;
-           
+
         if (0 == (a16 & 0x0600)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x0100)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x0400)) {
             r += 1;
           }
         }
       }
       else {
-           
+
         if (0 == (a16 & 0x6000)) {
           r += 2;
-             
+
           if (0 == (a16 & 0x1000)) {
             r += 1;
           }
         }
         else {
-             
+
           if (0 == (a16 & 0x4000)) {
             return 1;
           }
@@ -967,7 +967,7 @@ __inline Word16 norm_l (Word32 L_var1)
       }
     }
   }
-  
+
   return r ;
 #endif
 }
@@ -978,17 +978,17 @@ __inline Word16 norm_l (Word32 L_var1)
 __inline Word16 round16(Word32 L_var1)
 {
 #if ARMV5TE_ROUND
-       Word16 result; 
-       asm volatile( 
+       Word16 result;
+       asm volatile(
                "MOV   r1,#0x00008000\n"
                "QADD  %[result], %[L_var1], r1\n"
-               "MOV   %[result], %[result], ASR #16 \n" 
+               "MOV   %[result], %[result], ASR #16 \n"
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1)
                :"r1"
-               ); 
+               );
        return result;
-#else   
+#else
     Word16 var_out;
     Word32 L_rounded;
 
@@ -1004,14 +1004,14 @@ __inline Word16 round16(Word32 L_var1)
 __inline Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2)
 {
 #if ARMV5TE_L_MAC
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "SMULBB %[result], %[var1], %[var2]\n"
                "QADD   %[result], %[result], %[result]\n"
                "QADD   %[result], %[result], %[L_var3]\n"
                :[result]"+r"(result)
                : [L_var3]"r"(L_var3), [var1]"r"(var1), [var2]"r"(var2)
-               ); 
+               );
        return result;
 #else
     Word32 L_var_out;
@@ -1028,12 +1028,12 @@ __inline Word32 L_mac (Word32 L_var3, Word16 var1, Word16 var2)
 __inline Word32 L_add (Word32 L_var1, Word32 L_var2)
 {
 #if ARMV5TE_L_ADD
-       Word32 result; 
-       asm volatile( 
+       Word32 result;
+       asm volatile(
                "QADD %[result], %[L_var1], %[L_var2]\n"
                :[result]"+r"(result)
                :[L_var1]"r"(L_var1), [L_var2]"r"(L_var2)
-               ); 
+               );
        return result;
 #else
     Word32 L_var_out;
@@ -1114,7 +1114,7 @@ __inline Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2)
 
     L_var3 = L_msu (L_var3, var1, var2);
     var_out = (Word16)((L_var3 + 0x8000L) >> 16);
-    
+
     return (var_out);
 }
 #endif
index 82d3f38..d43bbd9 100644 (file)
@@ -16,7 +16,7 @@
 /*******************************************************************************
        File:           basicop2.c
 
-       Content:        Basic arithmetic operators. 
+       Content:        Basic arithmetic operators.
 
 *******************************************************************************/
 
@@ -462,7 +462,7 @@ Word32 L_mult(Word16 var1, Word16 var2)
     {
         L_var_out = MAX_32;
     }
-        
+
     return (L_var_out);
 }
 #endif
index 0ad82f0..e48af9d 100644 (file)
@@ -17,7 +17,7 @@
        File:           oper_32b.c
 
        Content:          This file contains operations in double precision.
+
 *******************************************************************************/
 
 #include "typedef.h"
@@ -200,12 +200,12 @@ Word32 Div_32 (Word32 L_num, Word32 denom)
 }
 
 /*!
-  \brief  calculates the log dualis times 4 of argument 
+
+  \brief  calculates the log dualis times 4 of argument
           iLog4(x) = (Word32)(4 * log(value)/log(2.0))
 
   \return ilog4 value
+
 */
 Word16 iLog4(Word32 value)
 {
@@ -225,7 +225,7 @@ Word16 iLog4(Word32 value)
     iLog4 = (-(iLog4 << 2) - norm_s(tmp16)) - 1;
   }
   else {
-    iLog4 = -128; /* -(INT_BITS*4); */                                          
+    iLog4 = -128; /* -(INT_BITS*4); */
   }
 
   return iLog4;
@@ -268,79 +268,79 @@ Word32 rsqrt(Word32 value,     /*!< Operand to square root (0.0 ... 1) */
 }
 
 static const Word32 pow2Table[POW2_TABLE_SIZE] = {
-0x7fffffff, 0x7fa765ad, 0x7f4f08ae, 0x7ef6e8da, 
-0x7e9f0606, 0x7e476009, 0x7deff6b6, 0x7d98c9e6, 
-0x7d41d96e, 0x7ceb2523, 0x7c94acde, 0x7c3e7073, 
-0x7be86fb9, 0x7b92aa88, 0x7b3d20b6, 0x7ae7d21a, 
-0x7a92be8b, 0x7a3de5df, 0x79e947ef, 0x7994e492, 
-0x7940bb9e, 0x78ecccec, 0x78991854, 0x78459dac, 
-0x77f25cce, 0x779f5591, 0x774c87cc, 0x76f9f359, 
-0x76a7980f, 0x765575c8, 0x76038c5b, 0x75b1dba2, 
-0x75606374, 0x750f23ab, 0x74be1c20, 0x746d4cac, 
-0x741cb528, 0x73cc556d, 0x737c2d55, 0x732c3cba, 
-0x72dc8374, 0x728d015d, 0x723db650, 0x71eea226, 
-0x719fc4b9, 0x71511de4, 0x7102ad80, 0x70b47368, 
-0x70666f76, 0x7018a185, 0x6fcb096f, 0x6f7da710, 
-0x6f307a41, 0x6ee382de, 0x6e96c0c3, 0x6e4a33c9, 
-0x6dfddbcc, 0x6db1b8a8, 0x6d65ca38, 0x6d1a1057, 
-0x6cce8ae1, 0x6c8339b2, 0x6c381ca6, 0x6bed3398, 
-0x6ba27e66, 0x6b57fce9, 0x6b0daeff, 0x6ac39485, 
-0x6a79ad56, 0x6a2ff94f, 0x69e6784d, 0x699d2a2c, 
-0x69540ec9, 0x690b2601, 0x68c26fb1, 0x6879ebb6, 
-0x683199ed, 0x67e97a34, 0x67a18c68, 0x6759d065, 
-0x6712460b, 0x66caed35, 0x6683c5c3, 0x663ccf92, 
-0x65f60a80, 0x65af766a, 0x6569132f, 0x6522e0ad, 
-0x64dcdec3, 0x64970d4f, 0x64516c2e, 0x640bfb41, 
-0x63c6ba64, 0x6381a978, 0x633cc85b, 0x62f816eb, 
-0x62b39509, 0x626f4292, 0x622b1f66, 0x61e72b65, 
-0x61a3666d, 0x615fd05f, 0x611c6919, 0x60d9307b, 
-0x60962665, 0x60534ab7, 0x60109d51, 0x5fce1e12, 
-0x5f8bccdb, 0x5f49a98c, 0x5f07b405, 0x5ec5ec26, 
-0x5e8451d0, 0x5e42e4e3, 0x5e01a540, 0x5dc092c7, 
-0x5d7fad59, 0x5d3ef4d7, 0x5cfe6923, 0x5cbe0a1c, 
-0x5c7dd7a4, 0x5c3dd19c, 0x5bfdf7e5, 0x5bbe4a61, 
-0x5b7ec8f2, 0x5b3f7377, 0x5b0049d4, 0x5ac14bea, 
-0x5a82799a, 0x5a43d2c6, 0x5a055751, 0x59c7071c, 
-0x5988e209, 0x594ae7fb, 0x590d18d3, 0x58cf7474, 
-0x5891fac1, 0x5854ab9b, 0x581786e6, 0x57da8c83, 
-0x579dbc57, 0x57611642, 0x57249a29, 0x56e847ef, 
-0x56ac1f75, 0x567020a0, 0x56344b52, 0x55f89f70, 
-0x55bd1cdb, 0x5581c378, 0x55469329, 0x550b8bd4, 
-0x54d0ad5b, 0x5495f7a1, 0x545b6a8b, 0x542105fd, 
-0x53e6c9db, 0x53acb607, 0x5372ca68, 0x533906e0, 
-0x52ff6b55, 0x52c5f7aa, 0x528cabc3, 0x52538786, 
-0x521a8ad7, 0x51e1b59a, 0x51a907b4, 0x5170810b, 
-0x51382182, 0x50ffe8fe, 0x50c7d765, 0x508fec9c, 
-0x50582888, 0x50208b0e, 0x4fe91413, 0x4fb1c37c, 
-0x4f7a9930, 0x4f439514, 0x4f0cb70c, 0x4ed5ff00, 
-0x4e9f6cd4, 0x4e69006e, 0x4e32b9b4, 0x4dfc988c, 
-0x4dc69cdd, 0x4d90c68b, 0x4d5b157e, 0x4d25899c, 
-0x4cf022ca, 0x4cbae0ef, 0x4c85c3f1, 0x4c50cbb8, 
-0x4c1bf829, 0x4be7492b, 0x4bb2bea5, 0x4b7e587d, 
-0x4b4a169c, 0x4b15f8e6, 0x4ae1ff43, 0x4aae299b, 
-0x4a7a77d5, 0x4a46e9d6, 0x4a137f88, 0x49e038d0, 
-0x49ad1598, 0x497a15c4, 0x4947393f, 0x49147fee, 
-0x48e1e9ba, 0x48af768a, 0x487d2646, 0x484af8d6, 
-0x4818ee22, 0x47e70611, 0x47b5408c, 0x47839d7b, 
-0x47521cc6, 0x4720be55, 0x46ef8210, 0x46be67e0, 
-0x468d6fae, 0x465c9961, 0x462be4e2, 0x45fb521a, 
-0x45cae0f2, 0x459a9152, 0x456a6323, 0x453a564d, 
-0x450a6abb, 0x44daa054, 0x44aaf702, 0x447b6ead, 
-0x444c0740, 0x441cc0a3, 0x43ed9ac0, 0x43be9580, 
-0x438fb0cb, 0x4360ec8d, 0x433248ae, 0x4303c517, 
-0x42d561b4, 0x42a71e6c, 0x4278fb2b, 0x424af7da, 
-0x421d1462, 0x41ef50ae, 0x41c1aca8, 0x41942839, 
-0x4166c34c, 0x41397dcc, 0x410c57a2, 0x40df50b8, 
-0x40b268fa, 0x4085a051, 0x4058f6a8, 0x402c6be9 
+0x7fffffff, 0x7fa765ad, 0x7f4f08ae, 0x7ef6e8da,
+0x7e9f0606, 0x7e476009, 0x7deff6b6, 0x7d98c9e6,
+0x7d41d96e, 0x7ceb2523, 0x7c94acde, 0x7c3e7073,
+0x7be86fb9, 0x7b92aa88, 0x7b3d20b6, 0x7ae7d21a,
+0x7a92be8b, 0x7a3de5df, 0x79e947ef, 0x7994e492,
+0x7940bb9e, 0x78ecccec, 0x78991854, 0x78459dac,
+0x77f25cce, 0x779f5591, 0x774c87cc, 0x76f9f359,
+0x76a7980f, 0x765575c8, 0x76038c5b, 0x75b1dba2,
+0x75606374, 0x750f23ab, 0x74be1c20, 0x746d4cac,
+0x741cb528, 0x73cc556d, 0x737c2d55, 0x732c3cba,
+0x72dc8374, 0x728d015d, 0x723db650, 0x71eea226,
+0x719fc4b9, 0x71511de4, 0x7102ad80, 0x70b47368,
+0x70666f76, 0x7018a185, 0x6fcb096f, 0x6f7da710,
+0x6f307a41, 0x6ee382de, 0x6e96c0c3, 0x6e4a33c9,
+0x6dfddbcc, 0x6db1b8a8, 0x6d65ca38, 0x6d1a1057,
+0x6cce8ae1, 0x6c8339b2, 0x6c381ca6, 0x6bed3398,
+0x6ba27e66, 0x6b57fce9, 0x6b0daeff, 0x6ac39485,
+0x6a79ad56, 0x6a2ff94f, 0x69e6784d, 0x699d2a2c,
+0x69540ec9, 0x690b2601, 0x68c26fb1, 0x6879ebb6,
+0x683199ed, 0x67e97a34, 0x67a18c68, 0x6759d065,
+0x6712460b, 0x66caed35, 0x6683c5c3, 0x663ccf92,
+0x65f60a80, 0x65af766a, 0x6569132f, 0x6522e0ad,
+0x64dcdec3, 0x64970d4f, 0x64516c2e, 0x640bfb41,
+0x63c6ba64, 0x6381a978, 0x633cc85b, 0x62f816eb,
+0x62b39509, 0x626f4292, 0x622b1f66, 0x61e72b65,
+0x61a3666d, 0x615fd05f, 0x611c6919, 0x60d9307b,
+0x60962665, 0x60534ab7, 0x60109d51, 0x5fce1e12,
+0x5f8bccdb, 0x5f49a98c, 0x5f07b405, 0x5ec5ec26,
+0x5e8451d0, 0x5e42e4e3, 0x5e01a540, 0x5dc092c7,
+0x5d7fad59, 0x5d3ef4d7, 0x5cfe6923, 0x5cbe0a1c,
+0x5c7dd7a4, 0x5c3dd19c, 0x5bfdf7e5, 0x5bbe4a61,
+0x5b7ec8f2, 0x5b3f7377, 0x5b0049d4, 0x5ac14bea,
+0x5a82799a, 0x5a43d2c6, 0x5a055751, 0x59c7071c,
+0x5988e209, 0x594ae7fb, 0x590d18d3, 0x58cf7474,
+0x5891fac1, 0x5854ab9b, 0x581786e6, 0x57da8c83,
+0x579dbc57, 0x57611642, 0x57249a29, 0x56e847ef,
+0x56ac1f75, 0x567020a0, 0x56344b52, 0x55f89f70,
+0x55bd1cdb, 0x5581c378, 0x55469329, 0x550b8bd4,
+0x54d0ad5b, 0x5495f7a1, 0x545b6a8b, 0x542105fd,
+0x53e6c9db, 0x53acb607, 0x5372ca68, 0x533906e0,
+0x52ff6b55, 0x52c5f7aa, 0x528cabc3, 0x52538786,
+0x521a8ad7, 0x51e1b59a, 0x51a907b4, 0x5170810b,
+0x51382182, 0x50ffe8fe, 0x50c7d765, 0x508fec9c,
+0x50582888, 0x50208b0e, 0x4fe91413, 0x4fb1c37c,
+0x4f7a9930, 0x4f439514, 0x4f0cb70c, 0x4ed5ff00,
+0x4e9f6cd4, 0x4e69006e, 0x4e32b9b4, 0x4dfc988c,
+0x4dc69cdd, 0x4d90c68b, 0x4d5b157e, 0x4d25899c,
+0x4cf022ca, 0x4cbae0ef, 0x4c85c3f1, 0x4c50cbb8,
+0x4c1bf829, 0x4be7492b, 0x4bb2bea5, 0x4b7e587d,
+0x4b4a169c, 0x4b15f8e6, 0x4ae1ff43, 0x4aae299b,
+0x4a7a77d5, 0x4a46e9d6, 0x4a137f88, 0x49e038d0,
+0x49ad1598, 0x497a15c4, 0x4947393f, 0x49147fee,
+0x48e1e9ba, 0x48af768a, 0x487d2646, 0x484af8d6,
+0x4818ee22, 0x47e70611, 0x47b5408c, 0x47839d7b,
+0x47521cc6, 0x4720be55, 0x46ef8210, 0x46be67e0,
+0x468d6fae, 0x465c9961, 0x462be4e2, 0x45fb521a,
+0x45cae0f2, 0x459a9152, 0x456a6323, 0x453a564d,
+0x450a6abb, 0x44daa054, 0x44aaf702, 0x447b6ead,
+0x444c0740, 0x441cc0a3, 0x43ed9ac0, 0x43be9580,
+0x438fb0cb, 0x4360ec8d, 0x433248ae, 0x4303c517,
+0x42d561b4, 0x42a71e6c, 0x4278fb2b, 0x424af7da,
+0x421d1462, 0x41ef50ae, 0x41c1aca8, 0x41942839,
+0x4166c34c, 0x41397dcc, 0x410c57a2, 0x40df50b8,
+0x40b268fa, 0x4085a051, 0x4058f6a8, 0x402c6be9
 };
 
 /*!
-  \brief calculates 2 ^ (x/y) for x<=0, y > 0, x <= 32768 * y 
-  
+
+  \brief calculates 2 ^ (x/y) for x<=0, y > 0, x <= 32768 * y
+
   avoids integer division
-  
-  \return 
+
+  \return
 */
 Word32 pow2_xy(Word32 x, Word32 y)
 {
@@ -355,7 +355,7 @@ Word32 pow2_xy(Word32 x, Word32 y)
   fPart = tmp2 - iPart*y;
   iPart = min(iPart,INT_BITS-1);
 
-  res = pow2Table[(POW2_TABLE_SIZE*fPart)/y] >> iPart; 
+  res = pow2Table[(POW2_TABLE_SIZE*fPart)/y] >> iPart;
+
   return(res);
 }
\ No newline at end of file
index 1d35e5e..9ebd1c2 100644 (file)
@@ -51,21 +51,21 @@ __inline Word32 L_mpy_ls(Word32 L_var2, Word16 var1)
     swHigh1 = (Word16)(L_var2 >> 16);
 
     l_var_out = (long)swLow1 * (long)var1 >> 15;
-    
+
     l_var_out += swHigh1 * var1 << 1;
-    
+
     return(l_var_out);
 }
 
 __inline Word32 L_mpy_wx(Word32 L_var2, Word16 var1)
 {
 #if ARMV5TE_L_MPY_LS
-       Word32 result; 
-       asm volatile( 
-               "SMULWB  %[result], %[L_var2], %[var1] \n" 
+       Word32 result;
+       asm volatile(
+               "SMULWB  %[result], %[L_var2], %[var1] \n"
                :[result]"+r"(result)
                :[L_var2]"r"(L_var2), [var1]"r"(var1)
-               ); 
+               );
        return result;
 #else
     unsigned short swLow1;
@@ -75,9 +75,9 @@ __inline Word32 L_mpy_wx(Word32 L_var2, Word16 var1)
     swLow1 = (unsigned short)(L_var2);
     swHigh1 = (Word16)(L_var2 >> 16);
 
-    l_var_out = (long)swLow1 * (long)var1 >> 16;    
+    l_var_out = (long)swLow1 * (long)var1 >> 16;
     l_var_out += swHigh1 * var1;
-    
+
     return(l_var_out);
 #endif
 }
index 1030803..b1f8225 100644 (file)
@@ -30,7 +30,7 @@
 /*
  * this is the original code from the ETSI file typedef.h
  */
-   
+
 #if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(_MSC_VER) || defined(__ZTC__)
 typedef signed char Word8;
 typedef short Word16;
index c7e774b..c924e2c 100644 (file)
@@ -55,7 +55,7 @@
 #define INT_BITS   32
 /*
 ********************************************************************************
-*                         DEFINITION OF CONSTANTS 
+*                         DEFINITION OF CONSTANTS
 ********************************************************************************
 */
 /*
@@ -120,12 +120,12 @@ typedef unsigned __int64 UWord64;
     #define ARMV5TE_L_MULT        1
     #define ARMV5TE_L_MAC         1
     #define ARMV5TE_L_MSU         1
-   
-    
+
+
     #define ARMV5TE_DIV_S         1
     #define ARMV5TE_ROUND         1
     #define ARMV5TE_MULT          1
-    
+
     #define ARMV5TE_NORM_S        1
     #define ARMV5TE_NORM_L        1
        #define ARMV5TE_L_MPY_LS          1
@@ -149,7 +149,7 @@ typedef unsigned __int64 UWord64;
 #define ROUND_IS_INLINE                 1   //define round as inline function
 #define L_MAC_IS_INLINE                 1   //define L_mac as inline function
 #define L_ADD_IS_INLINE                 1   //define L_add as inline function
-#define EXTRACT_H_IS_INLINE             1   //define extract_h as inline function 
+#define EXTRACT_H_IS_INLINE             1   //define extract_h as inline function
 #define EXTRACT_L_IS_INLINE             1   //define extract_l as inline function        //???
 #define MULT_R_IS_INLINE                1   //define mult_r as inline function
 #define SHR_R_IS_INLINE                 1   //define shr_r as inline function
index 784bb70..8e206b7 100644 (file)
@@ -16,7 +16,7 @@
 /*******************************************************************************
        File:           aac_rom.h
 
-       Content:        constant tables 
+       Content:        constant tables
 
 *******************************************************************************/
 
index 41ba756..1acdbbc 100644 (file)
@@ -47,7 +47,7 @@ typedef  struct {
 
 
 typedef struct {
-       
+
   AACENC_CONFIG config;     /* Word16 size: 8 */
 
   ELEMENT_INFO elInfo;      /* Word16 size: 4 */
index f7cb888..0f4bb5e 100644 (file)
@@ -16,7 +16,7 @@
 /*******************************************************************************
        File:           adj_thr.h
 
-       Content:        Threshold compensation function 
+       Content:        Threshold compensation function
 
 *******************************************************************************/
 
@@ -44,7 +44,7 @@ void AdjustThresholds(ADJ_THR_STATE *adjThrState,
                       PSY_OUT_ELEMENT *psyOutElement,
                       Word16 *chBitDistribution,
                       Word16 logSfbEnergy[MAX_CHANNELS][MAX_GROUPED_SFB],
-                      Word16 sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],                      
+                      Word16 sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
                       QC_OUT_ELEMENT* qcOE,
                                          ELEMENT_BITS* elBits,
                                          const Word16 nChannels,
index 9ac4664..30132d8 100644 (file)
@@ -16,7 +16,7 @@
 /*******************************************************************************
        File:           adj_thr_data.h
 
-       Content:        Threshold compensation parameter 
+       Content:        Threshold compensation parameter
 
 *******************************************************************************/
 
index 6ded3c6..6a58aeb 100644 (file)
@@ -26,7 +26,7 @@
 #include "qc_data.h"
 #include "tns.h"
 #include "channel_map.h"
-#include "interface.h"  
+#include "interface.h"
 
 struct BITSTREAMENCODER_INIT
 {
index 966ac99..a42e6a9 100644 (file)
@@ -55,11 +55,11 @@ typedef struct {
   Word16  windowShape;
   Word16  groupingMask;
   Word16  sfbOffsets[MAX_GROUPED_SFB+1];
-  Word16  mdctScale; 
-  Word32 *sfbEnergy; 
+  Word16  mdctScale;
+  Word32 *sfbEnergy;
   Word32 *sfbSpreadedEnergy;
-  Word32 *sfbThreshold;       
-  Word32 *mdctSpectrum;        
+  Word32 *sfbThreshold;
+  Word32 *mdctSpectrum;
   Word32  sfbEnSumLR;
   Word32  sfbEnSumMS;
   Word32 sfbDist[MAX_GROUPED_SFB];
index 038d5a3..116d5a8 100644 (file)
@@ -24,8 +24,8 @@
 #define __LINE_PE_H
 
 
-#include "psy_const.h" 
-#include "interface.h" 
+#include "psy_const.h"
+#include "interface.h"
 
 
 typedef struct {
@@ -72,4 +72,4 @@ void calcSfbPe(PE_DATA *peData,
 
 
 
-#endif 
+#endif
index b05d683..19fb9b2 100644 (file)
@@ -69,7 +69,7 @@ enum
 
 #define BLOCK_SWITCHING_OFFSET            (1*1024+3*128+64+128)
 #define BLOCK_SWITCHING_DATA_SIZE          FRAME_LEN_LONG
-                                                                                   
+
 #define TRANSFORM_OFFSET_LONG    0
 #define TRANSFORM_OFFSET_SHORT   448
 
index 5fcbe13..2ccac60 100644 (file)
@@ -54,9 +54,9 @@ Word16 psyMainInit( PSY_KERNEL *hPsy,
                     Word16 bandwidth);
 
 
-Word16 psyMain(Word16                   nChannels,   /*!< total number of channels */              
+Word16 psyMain(Word16                   nChannels,   /*!< total number of channels */
                ELEMENT_INFO             *elemInfo,
-               Word16                   *timeSignal, /*!< interleaved time signal */ 
+               Word16                   *timeSignal, /*!< interleaved time signal */
                PSY_DATA                 psyData[MAX_CHANNELS],
                TNS_DATA                 tnsData[MAX_CHANNELS],
                PSY_CONFIGURATION_LONG*  psyConfLong,
index 924a06d..8f83973 100644 (file)
@@ -35,7 +35,7 @@ void QCOutDelete(QC_OUT *hQC, VO_MEM_OPERATOR *pMemOP);
 
 Word16 QCNew(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP);
 
-Word16 QCInit(QC_STATE *hQC, 
+Word16 QCInit(QC_STATE *hQC,
               struct QC_INIT *init);
 
 void QCDelete(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP);
index 7dac2bf..1cafef6 100644 (file)
@@ -28,7 +28,7 @@
 
 #define MAX_QUANT 8191
 
-void QuantizeSpectrum(Word16 sfbCnt, 
+void QuantizeSpectrum(Word16 sfbCnt,
                       Word16 maxSfbPerGroup,
                       Word16 sfbPerGroup,
                       Word16 *sfbOffset, Word32 *mdctSpectrum,
index 11436a2..9039f25 100644 (file)
@@ -23,7 +23,7 @@
 #ifndef __SF_ESTIM_H__
 #define __SF_ESTIM_H__
 /*
-   Scale factor estimation 
+   Scale factor estimation
  */
 #include "psy_const.h"
 #include "interface.h"
index fff3d14..9cddc1d 100644 (file)
@@ -28,7 +28,7 @@
 
 Word16 countStaticBitdemand(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
                             PSY_OUT_ELEMENT *psyOutElement,
-                            Word16 nChannels, 
+                            Word16 nChannels,
                                                        Word16 adtsUsed);
 
 #endif /* __STAT_BITS_H */
index 78265bb..0aa33c3 100644 (file)
@@ -44,7 +44,7 @@ typedef struct{
 }TNS_INFO_TAB;
 
 
-void GetTnsParam(TNS_CONFIG_TABULATED *tnsConfigTab, 
+void GetTnsParam(TNS_CONFIG_TABULATED *tnsConfigTab,
                  Word32 bitRate, Word16 channels, Word16 blockType);
 
 void GetTnsMaxBands(Word32 samplingRate, Word16 blockType, Word16* tnsMaxSfb);
index 93d5ffe..fbac7aa 100644 (file)
@@ -24,7 +24,7 @@
 #define __TRANSFORM_H__
 
 #include "typedef.h"
-                  
+
 void Transform_Real(Word16 *mdctDelayBuffer,
                     Word16 *timeSignal,
                     Word16 chIncrement,     /*! channel increment */
index 16b44e0..08792e8 100644 (file)
 
 #if defined (ARMV5E) && !defined (ARMV7Neon)
 
-/* 
- *  Q30 for 128 and 1024 
+/*
+ *  Q30 for 128 and 1024
  *
  * for (i = 0; i < num/4; i++) {
  *   angle = (i + 0.125) * M_PI / num;
  *   x = cos(angle) * (1 << 30);
  *   x = sin(angle) * (1 << 30);
- * 
+ *
  *   angle = (num/2 - 1 - i + 0.125) * M_PI / num;
  *   x = cos(angle) * (1 << 30);
  *   x = sin(angle) * (1 << 30);
  */
 const int cossintab[128 + 1024] = {
        /* 128 */
-       0x3fffec43, 0x003243f1, 0x015fd4d2, 0x3ffc38d1, 0x3ff9c13a, 0x01c454f5, 0x02f1b755, 0x3feea776, 
-       0x3fe9b8a9, 0x03562038, 0x0483259d, 0x3fd73a4a, 0x3fcfd50b, 0x04e767c5, 0x0613e1c5, 0x3fb5f4ea, 
-       0x3fac1a5b, 0x0677edbb, 0x07a3adff, 0x3f8adc77, 0x3f7e8e1e, 0x08077457, 0x09324ca7, 0x3f55f796, 
-       0x3f473759, 0x0995bdfd, 0x0abf8043, 0x3f174e70, 0x3f061e95, 0x0b228d42, 0x0c4b0b94, 0x3eceeaad, 
-       0x3ebb4ddb, 0x0cada4f5, 0x0dd4b19a, 0x3e7cd778, 0x3e66d0b4, 0x0e36c82a, 0x0f5c35a3, 0x3e212179, 
-       0x3e08b42a, 0x0fbdba40, 0x10e15b4e, 0x3dbbd6d4, 0x3da106bd, 0x11423ef0, 0x1263e699, 0x3d4d0728, 
-       0x3d2fd86c, 0x12c41a4f, 0x13e39be9, 0x3cd4c38b, 0x3cb53aaa, 0x144310dd, 0x15604013, 0x3c531e88, 
-       0x3c314060, 0x15bee78c, 0x16d99864, 0x3bc82c1f, 0x3ba3fde7, 0x173763c9, 0x184f6aab, 0x3b3401bb, 
-       0x3b0d8909, 0x18ac4b87, 0x19c17d44, 0x3a96b636, 0x3a6df8f8, 0x1a1d6544, 0x1b2f971e, 0x39f061d2, 
-       0x39c5664f, 0x1b8a7815, 0x1c997fc4, 0x39411e33, 0x3913eb0e, 0x1cf34baf, 0x1dfeff67, 0x38890663, 
-       0x3859a292, 0x1e57a86d, 0x1f5fdee6, 0x37c836c2, 0x3796a996, 0x1fb7575c, 0x20bbe7d8, 0x36fecd0e, 
-       0x36cb1e2a, 0x21122240, 0x2212e492, 0x362ce855, 0x35f71fb1, 0x2267d3a0, 0x2364a02e, 0x3552a8f4, 
-       0x351acedd, 0x23b836ca, 0x24b0e699, 0x34703095, 0x34364da6, 0x250317df, 0x25f78497, 0x3385a222, 
-       0x3349bf48, 0x264843d9, 0x273847c8, 0x329321c7, 0x32554840, 0x27878893, 0x2872feb6, 0x3198d4ea, 
-       0x31590e3e, 0x28c0b4d2, 0x29a778db, 0x3096e223, 0x30553828, 0x29f3984c, 0x2ad586a3, 0x2f8d713a, 
-       0x2f49ee0f, 0x2b2003ac, 0x2bfcf97c, 0x2e7cab1c, 0x2e37592c, 0x2c45c8a0, 0x2d1da3d5, 0x2d64b9da, 
+       0x3fffec43, 0x003243f1, 0x015fd4d2, 0x3ffc38d1, 0x3ff9c13a, 0x01c454f5, 0x02f1b755, 0x3feea776,
+       0x3fe9b8a9, 0x03562038, 0x0483259d, 0x3fd73a4a, 0x3fcfd50b, 0x04e767c5, 0x0613e1c5, 0x3fb5f4ea,
+       0x3fac1a5b, 0x0677edbb, 0x07a3adff, 0x3f8adc77, 0x3f7e8e1e, 0x08077457, 0x09324ca7, 0x3f55f796,
+       0x3f473759, 0x0995bdfd, 0x0abf8043, 0x3f174e70, 0x3f061e95, 0x0b228d42, 0x0c4b0b94, 0x3eceeaad,
+       0x3ebb4ddb, 0x0cada4f5, 0x0dd4b19a, 0x3e7cd778, 0x3e66d0b4, 0x0e36c82a, 0x0f5c35a3, 0x3e212179,
+       0x3e08b42a, 0x0fbdba40, 0x10e15b4e, 0x3dbbd6d4, 0x3da106bd, 0x11423ef0, 0x1263e699, 0x3d4d0728,
+       0x3d2fd86c, 0x12c41a4f, 0x13e39be9, 0x3cd4c38b, 0x3cb53aaa, 0x144310dd, 0x15604013, 0x3c531e88,
+       0x3c314060, 0x15bee78c, 0x16d99864, 0x3bc82c1f, 0x3ba3fde7, 0x173763c9, 0x184f6aab, 0x3b3401bb,
+       0x3b0d8909, 0x18ac4b87, 0x19c17d44, 0x3a96b636, 0x3a6df8f8, 0x1a1d6544, 0x1b2f971e, 0x39f061d2,
+       0x39c5664f, 0x1b8a7815, 0x1c997fc4, 0x39411e33, 0x3913eb0e, 0x1cf34baf, 0x1dfeff67, 0x38890663,
+       0x3859a292, 0x1e57a86d, 0x1f5fdee6, 0x37c836c2, 0x3796a996, 0x1fb7575c, 0x20bbe7d8, 0x36fecd0e,
+       0x36cb1e2a, 0x21122240, 0x2212e492, 0x362ce855, 0x35f71fb1, 0x2267d3a0, 0x2364a02e, 0x3552a8f4,
+       0x351acedd, 0x23b836ca, 0x24b0e699, 0x34703095, 0x34364da6, 0x250317df, 0x25f78497, 0x3385a222,
+       0x3349bf48, 0x264843d9, 0x273847c8, 0x329321c7, 0x32554840, 0x27878893, 0x2872feb6, 0x3198d4ea,
+       0x31590e3e, 0x28c0b4d2, 0x29a778db, 0x3096e223, 0x30553828, 0x29f3984c, 0x2ad586a3, 0x2f8d713a,
+       0x2f49ee0f, 0x2b2003ac, 0x2bfcf97c, 0x2e7cab1c, 0x2e37592c, 0x2c45c8a0, 0x2d1da3d5, 0x2d64b9da,
        /* 1024 */
-       0x3fffffb1, 0x0006487f, 0x002bfb74, 0x3ffff0e3, 0x3fffe705, 0x00388c6e, 0x005e3f4c, 0x3fffba9b, 
-       0x3fffa6de, 0x006ad03b, 0x009082ea, 0x3fff5cd8, 0x3fff3f3c, 0x009d13c5, 0x00c2c62f, 0x3ffed79b, 
-       0x3ffeb021, 0x00cf56ef, 0x00f508fc, 0x3ffe2ae5, 0x3ffdf98c, 0x01019998, 0x01274b31, 0x3ffd56b5, 
-       0x3ffd1b7e, 0x0133dba3, 0x01598cb1, 0x3ffc5b0c, 0x3ffc15f7, 0x01661cf0, 0x018bcd5b, 0x3ffb37ec, 
-       0x3ffae8f9, 0x01985d60, 0x01be0d11, 0x3ff9ed53, 0x3ff99483, 0x01ca9cd4, 0x01f04bb4, 0x3ff87b44, 
-       0x3ff81896, 0x01fcdb2e, 0x02228924, 0x3ff6e1bf, 0x3ff67534, 0x022f184d, 0x0254c544, 0x3ff520c5, 
-       0x3ff4aa5d, 0x02615414, 0x0286fff3, 0x3ff33858, 0x3ff2b813, 0x02938e62, 0x02b93914, 0x3ff12878, 
-       0x3ff09e56, 0x02c5c71a, 0x02eb7086, 0x3feef126, 0x3fee5d28, 0x02f7fe1c, 0x031da62b, 0x3fec9265, 
-       0x3febf48b, 0x032a3349, 0x034fd9e5, 0x3fea0c35, 0x3fe96480, 0x035c6682, 0x03820b93, 0x3fe75e98, 
-       0x3fe6ad08, 0x038e97a9, 0x03b43b17, 0x3fe48990, 0x3fe3ce26, 0x03c0c69e, 0x03e66852, 0x3fe18d1f, 
-       0x3fe0c7da, 0x03f2f342, 0x04189326, 0x3fde6945, 0x3fdd9a27, 0x04251d77, 0x044abb73, 0x3fdb1e06, 
-       0x3fda450f, 0x0457451d, 0x047ce11a, 0x3fd7ab64, 0x3fd6c894, 0x04896a16, 0x04af03fc, 0x3fd4115f, 
-       0x3fd324b7, 0x04bb8c42, 0x04e123fa, 0x3fd04ffc, 0x3fcf597c, 0x04edab83, 0x051340f6, 0x3fcc673b, 
-       0x3fcb66e4, 0x051fc7b9, 0x05455ad1, 0x3fc8571f, 0x3fc74cf3, 0x0551e0c7, 0x0577716b, 0x3fc41fac, 
-       0x3fc30baa, 0x0583f68c, 0x05a984a6, 0x3fbfc0e3, 0x3fbea30c, 0x05b608eb, 0x05db9463, 0x3fbb3ac7, 
-       0x3fba131b, 0x05e817c3, 0x060da083, 0x3fb68d5b, 0x3fb55bdc, 0x061a22f7, 0x063fa8e7, 0x3fb1b8a2, 
-       0x3fb07d50, 0x064c2a67, 0x0671ad71, 0x3facbc9f, 0x3fab777b, 0x067e2df5, 0x06a3ae00, 0x3fa79954, 
-       0x3fa64a5f, 0x06b02d81, 0x06d5aa77, 0x3fa24ec6, 0x3fa0f600, 0x06e228ee, 0x0707a2b7, 0x3f9cdcf7, 
-       0x3f9b7a62, 0x0714201b, 0x073996a1, 0x3f9743eb, 0x3f95d787, 0x074612eb, 0x076b8616, 0x3f9183a5, 
-       0x3f900d72, 0x0778013d, 0x079d70f7, 0x3f8b9c28, 0x3f8a1c29, 0x07a9eaf5, 0x07cf5726, 0x3f858d79, 
-       0x3f8403ae, 0x07dbcff2, 0x08013883, 0x3f7f579b, 0x3f7dc405, 0x080db016, 0x083314f1, 0x3f78fa92, 
-       0x3f775d31, 0x083f8b43, 0x0864ec4f, 0x3f727661, 0x3f70cf38, 0x08716159, 0x0896be80, 0x3f6bcb0e, 
-       0x3f6a1a1c, 0x08a3323a, 0x08c88b65, 0x3f64f89b, 0x3f633de2, 0x08d4fdc6, 0x08fa52de, 0x3f5dff0e, 
-       0x3f5c3a8f, 0x0906c3e0, 0x092c14ce, 0x3f56de6a, 0x3f551026, 0x09388469, 0x095dd116, 0x3f4f96b4, 
-       0x3f4dbeac, 0x096a3f42, 0x098f8796, 0x3f4827f0, 0x3f464626, 0x099bf44c, 0x09c13831, 0x3f409223, 
-       0x3f3ea697, 0x09cda368, 0x09f2e2c7, 0x3f38d552, 0x3f36e006, 0x09ff4c78, 0x0a24873a, 0x3f30f181, 
-       0x3f2ef276, 0x0a30ef5e, 0x0a56256c, 0x3f28e6b6, 0x3f26ddec, 0x0a628bfa, 0x0a87bd3d, 0x3f20b4f5, 
-       0x3f1ea26e, 0x0a94222f, 0x0ab94e8f, 0x3f185c43, 0x3f164001, 0x0ac5b1dc, 0x0aead944, 0x3f0fdca5, 
-       0x3f0db6a9, 0x0af73ae5, 0x0b1c5d3d, 0x3f073621, 0x3f05066d, 0x0b28bd2a, 0x0b4dda5c, 0x3efe68bc, 
-       0x3efc2f50, 0x0b5a388d, 0x0b7f5081, 0x3ef5747b, 0x3ef3315a, 0x0b8bacf0, 0x0bb0bf8f, 0x3eec5965, 
-       0x3eea0c8e, 0x0bbd1a33, 0x0be22766, 0x3ee3177e, 0x3ee0c0f4, 0x0bee8038, 0x0c1387e9, 0x3ed9aecc, 
-       0x3ed74e91, 0x0c1fdee1, 0x0c44e0f9, 0x3ed01f55, 0x3ecdb56a, 0x0c513610, 0x0c763278, 0x3ec66920, 
-       0x3ec3f585, 0x0c8285a5, 0x0ca77c47, 0x3ebc8c31, 0x3eba0ee9, 0x0cb3cd84, 0x0cd8be47, 0x3eb2888f, 
-       0x3eb0019c, 0x0ce50d8c, 0x0d09f85b, 0x3ea85e41, 0x3ea5cda3, 0x0d1645a0, 0x0d3b2a64, 0x3e9e0d4c, 
-       0x3e9b7306, 0x0d4775a1, 0x0d6c5443, 0x3e9395b7, 0x3e90f1ca, 0x0d789d71, 0x0d9d75db, 0x3e88f788, 
-       0x3e8649f5, 0x0da9bcf2, 0x0dce8f0d, 0x3e7e32c6, 0x3e7b7b90, 0x0ddad406, 0x0dff9fba, 0x3e734778, 
-       0x3e70869f, 0x0e0be28e, 0x0e30a7c5, 0x3e6835a4, 0x3e656b2b, 0x0e3ce86b, 0x0e61a70f, 0x3e5cfd51, 
-       0x3e5a2939, 0x0e6de580, 0x0e929d7a, 0x3e519e86, 0x3e4ec0d1, 0x0e9ed9af, 0x0ec38ae8, 0x3e46194a, 
-       0x3e4331fa, 0x0ecfc4d9, 0x0ef46f3b, 0x3e3a6da4, 0x3e377cbb, 0x0f00a6df, 0x0f254a53, 0x3e2e9b9c, 
-       0x3e2ba11b, 0x0f317fa5, 0x0f561c15, 0x3e22a338, 0x3e1f9f21, 0x0f624f0c, 0x0f86e460, 0x3e168480, 
-       0x3e1376d5, 0x0f9314f5, 0x0fb7a317, 0x3e0a3f7b, 0x3e07283f, 0x0fc3d143, 0x0fe8581d, 0x3dfdd432, 
-       0x3dfab365, 0x0ff483d7, 0x10190352, 0x3df142ab, 0x3dee1851, 0x10252c94, 0x1049a49a, 0x3de48aef, 
-       0x3de15708, 0x1055cb5b, 0x107a3bd5, 0x3dd7ad05, 0x3dd46f94, 0x1086600e, 0x10aac8e6, 0x3dcaa8f5, 
-       0x3dc761fc, 0x10b6ea90, 0x10db4baf, 0x3dbd7ec7, 0x3dba2e48, 0x10e76ac3, 0x110bc413, 0x3db02e84, 
-       0x3dacd481, 0x1117e088, 0x113c31f3, 0x3da2b834, 0x3d9f54af, 0x11484bc2, 0x116c9531, 0x3d951bde, 
-       0x3d91aed9, 0x1178ac53, 0x119cedaf, 0x3d87598c, 0x3d83e309, 0x11a9021d, 0x11cd3b50, 0x3d797145, 
-       0x3d75f147, 0x11d94d02, 0x11fd7df6, 0x3d6b6313, 0x3d67d99b, 0x12098ce5, 0x122db583, 0x3d5d2efe, 
-       0x3d599c0e, 0x1239c1a7, 0x125de1da, 0x3d4ed50f, 0x3d4b38aa, 0x1269eb2b, 0x128e02dc, 0x3d40554e, 
-       0x3d3caf76, 0x129a0954, 0x12be186c, 0x3d31afc5, 0x3d2e007c, 0x12ca1c03, 0x12ee226c, 0x3d22e47c, 
-       0x3d1f2bc5, 0x12fa231b, 0x131e20c0, 0x3d13f37e, 0x3d10315a, 0x132a1e7e, 0x134e1348, 0x3d04dcd2, 
-       0x3d011145, 0x135a0e0e, 0x137df9e7, 0x3cf5a082, 0x3cf1cb8e, 0x1389f1af, 0x13add481, 0x3ce63e98, 
-       0x3ce2603f, 0x13b9c943, 0x13dda2f7, 0x3cd6b71e, 0x3cd2cf62, 0x13e994ab, 0x140d652c, 0x3cc70a1c, 
-       0x3cc318ff, 0x141953cb, 0x143d1b02, 0x3cb7379c, 0x3cb33d22, 0x14490685, 0x146cc45c, 0x3ca73fa9, 
-       0x3ca33bd3, 0x1478acbc, 0x149c611d, 0x3c97224c, 0x3c93151d, 0x14a84652, 0x14cbf127, 0x3c86df8e, 
-       0x3c82c909, 0x14d7d32a, 0x14fb745e, 0x3c76777b, 0x3c7257a2, 0x15075327, 0x152aeaa3, 0x3c65ea1c, 
-       0x3c61c0f1, 0x1536c62b, 0x155a53d9, 0x3c55377b, 0x3c510501, 0x15662c18, 0x1589afe3, 0x3c445fa2, 
-       0x3c4023dd, 0x159584d3, 0x15b8fea4, 0x3c33629d, 0x3c2f1d8e, 0x15c4d03e, 0x15e83fff, 0x3c224075, 
-       0x3c1df21f, 0x15f40e3a, 0x161773d6, 0x3c10f935, 0x3c0ca19b, 0x16233eac, 0x16469a0d, 0x3bff8ce8, 
-       0x3bfb2c0c, 0x16526176, 0x1675b286, 0x3bedfb99, 0x3be9917e, 0x1681767c, 0x16a4bd25, 0x3bdc4552, 
-       0x3bd7d1fa, 0x16b07d9f, 0x16d3b9cc, 0x3bca6a1d, 0x3bc5ed8d, 0x16df76c3, 0x1702a85e, 0x3bb86a08, 
-       0x3bb3e440, 0x170e61cc, 0x173188be, 0x3ba6451b, 0x3ba1b620, 0x173d3e9b, 0x17605ad0, 0x3b93fb63, 
-       0x3b8f6337, 0x176c0d15, 0x178f1e76, 0x3b818ceb, 0x3b7ceb90, 0x179acd1c, 0x17bdd394, 0x3b6ef9be, 
-       0x3b6a4f38, 0x17c97e93, 0x17ec7a0d, 0x3b5c41e8, 0x3b578e39, 0x17f8215e, 0x181b11c4, 0x3b496574, 
-       0x3b44a8a0, 0x1826b561, 0x18499a9d, 0x3b36646e, 0x3b319e77, 0x18553a7d, 0x1878147a, 0x3b233ee1, 
-       0x3b1e6fca, 0x1883b097, 0x18a67f3f, 0x3b0ff4d9, 0x3b0b1ca6, 0x18b21791, 0x18d4dad0, 0x3afc8663, 
-       0x3af7a516, 0x18e06f50, 0x1903270f, 0x3ae8f38b, 0x3ae40926, 0x190eb7b7, 0x193163e1, 0x3ad53c5b, 
-       0x3ad048e3, 0x193cf0a9, 0x195f9128, 0x3ac160e1, 0x3abc6458, 0x196b1a09, 0x198daec8, 0x3aad6129, 
-       0x3aa85b92, 0x199933bb, 0x19bbbca6, 0x3a993d3e, 0x3a942e9d, 0x19c73da3, 0x19e9baa3, 0x3a84f52f, 
-       0x3a7fdd86, 0x19f537a4, 0x1a17a8a5, 0x3a708906, 0x3a6b6859, 0x1a2321a2, 0x1a45868e, 0x3a5bf8d1, 
-       0x3a56cf23, 0x1a50fb81, 0x1a735442, 0x3a47449c, 0x3a4211f0, 0x1a7ec524, 0x1aa111a6, 0x3a326c74, 
-       0x3a2d30cd, 0x1aac7e6f, 0x1acebe9d, 0x3a1d7066, 0x3a182bc8, 0x1ada2746, 0x1afc5b0a, 0x3a08507f, 
-       0x3a0302ed, 0x1b07bf8c, 0x1b29e6d2, 0x39f30ccc, 0x39edb649, 0x1b354727, 0x1b5761d8, 0x39dda55a, 
-       0x39d845e9, 0x1b62bdf8, 0x1b84cc01, 0x39c81a36, 0x39c2b1da, 0x1b9023e5, 0x1bb22530, 0x39b26b6d, 
-       0x39acfa2b, 0x1bbd78d2, 0x1bdf6d4a, 0x399c990d, 0x39971ee7, 0x1beabca1, 0x1c0ca432, 0x3986a324, 
-       0x3981201e, 0x1c17ef39, 0x1c39c9cd, 0x397089bf, 0x396afddc, 0x1c45107c, 0x1c66ddfe, 0x395a4ceb, 
-       0x3954b82e, 0x1c72204f, 0x1c93e0ab, 0x3943ecb6, 0x393e4f23, 0x1c9f1e96, 0x1cc0d1b6, 0x392d692f, 
-       0x3927c2c9, 0x1ccc0b35, 0x1cedb106, 0x3916c262, 0x3911132d, 0x1cf8e611, 0x1d1a7e7d, 0x38fff85e, 
-       0x38fa405e, 0x1d25af0d, 0x1d473a00, 0x38e90b31, 0x38e34a69, 0x1d52660f, 0x1d73e374, 0x38d1fae9, 
-       0x38cc315d, 0x1d7f0afb, 0x1da07abc, 0x38bac795, 0x38b4f547, 0x1dab9db5, 0x1dccffbf, 0x38a37142, 
-       0x389d9637, 0x1dd81e21, 0x1df9725f, 0x388bf7ff, 0x3886143b, 0x1e048c24, 0x1e25d282, 0x38745bdb, 
-       0x386e6f60, 0x1e30e7a4, 0x1e52200c, 0x385c9ce3, 0x3856a7b6, 0x1e5d3084, 0x1e7e5ae2, 0x3844bb28, 
-       0x383ebd4c, 0x1e8966a8, 0x1eaa82e9, 0x382cb6b7, 0x3826b030, 0x1eb589f7, 0x1ed69805, 0x38148f9f, 
-       0x380e8071, 0x1ee19a54, 0x1f029a1c, 0x37fc45ef, 0x37f62e1d, 0x1f0d97a5, 0x1f2e8911, 0x37e3d9b7, 
-       0x37ddb945, 0x1f3981ce, 0x1f5a64cb, 0x37cb4b04, 0x37c521f6, 0x1f6558b5, 0x1f862d2d, 0x37b299e7, 
-       0x37ac6841, 0x1f911c3d, 0x1fb1e21d, 0x3799c66f, 0x37938c34, 0x1fbccc4d, 0x1fdd8381, 0x3780d0aa, 
-       0x377a8ddf, 0x1fe868c8, 0x2009113c, 0x3767b8a9, 0x37616d51, 0x2013f196, 0x20348b35, 0x374e7e7b, 
-       0x37482a9a, 0x203f6699, 0x205ff14f, 0x3735222f, 0x372ec5c9, 0x206ac7b8, 0x208b4372, 0x371ba3d4, 
-       0x37153eee, 0x209614d9, 0x20b68181, 0x3702037c, 0x36fb9618, 0x20c14ddf, 0x20e1ab63, 0x36e84135, 
-       0x36e1cb58, 0x20ec72b1, 0x210cc0fc, 0x36ce5d10, 0x36c7debd, 0x21178334, 0x2137c232, 0x36b4571b, 
-       0x36add058, 0x21427f4d, 0x2162aeea, 0x369a2f69, 0x3693a038, 0x216d66e2, 0x218d870b, 0x367fe608, 
-       0x36794e6e, 0x219839d8, 0x21b84a79, 0x36657b08, 0x365edb09, 0x21c2f815, 0x21e2f91a, 0x364aee7b, 
-       0x3644461b, 0x21eda17f, 0x220d92d4, 0x36304070, 0x36298fb4, 0x221835fb, 0x2238178d, 0x361570f8, 
-       0x360eb7e3, 0x2242b56f, 0x22628729, 0x35fa8023, 0x35f3beba, 0x226d1fc1, 0x228ce191, 0x35df6e03, 
-       0x35d8a449, 0x229774d7, 0x22b726a8, 0x35c43aa7, 0x35bd68a1, 0x22c1b496, 0x22e15655, 0x35a8e621, 
-       0x35a20bd3, 0x22ebdee5, 0x230b707e, 0x358d7081, 0x35868def, 0x2315f3a8, 0x23357509, 0x3571d9d9, 
-       0x356aef08, 0x233ff2c8, 0x235f63dc, 0x35562239, 0x354f2f2c, 0x2369dc29, 0x23893cdd, 0x353a49b2, 
-       0x35334e6f, 0x2393afb2, 0x23b2fff3, 0x351e5056, 0x35174ce0, 0x23bd6d48, 0x23dcad03, 0x35023636, 
-       0x34fb2a92, 0x23e714d3, 0x240643f4, 0x34e5fb63, 0x34dee795, 0x2410a639, 0x242fc4ad, 0x34c99fef, 
-       0x34c283fb, 0x243a215f, 0x24592f13, 0x34ad23eb, 0x34a5ffd5, 0x2463862c, 0x2482830d, 0x34908768, 
-       0x34895b36, 0x248cd487, 0x24abc082, 0x3473ca79, 0x346c962f, 0x24b60c57, 0x24d4e757, 0x3456ed2f, 
-       0x344fb0d1, 0x24df2d81, 0x24fdf775, 0x3439ef9c, 0x3432ab2e, 0x250837ed, 0x2526f0c1, 0x341cd1d2, 
-       0x34158559, 0x25312b81, 0x254fd323, 0x33ff93e2, 0x33f83f62, 0x255a0823, 0x25789e80, 0x33e235df, 
-       0x33dad95e, 0x2582cdbc, 0x25a152c0, 0x33c4b7db, 0x33bd535c, 0x25ab7c30, 0x25c9efca, 0x33a719e8, 
-       0x339fad70, 0x25d41369, 0x25f27584, 0x33895c18, 0x3381e7ac, 0x25fc934b, 0x261ae3d6, 0x336b7e7e, 
-       0x33640223, 0x2624fbbf, 0x26433aa7, 0x334d812d, 0x3345fce6, 0x264d4cac, 0x266b79dd, 0x332f6435, 
-       0x3327d808, 0x267585f8, 0x2693a161, 0x331127ab, 0x3309939c, 0x269da78b, 0x26bbb119, 0x32f2cba1, 
-       0x32eb2fb5, 0x26c5b14c, 0x26e3a8ec, 0x32d45029, 0x32ccac64, 0x26eda322, 0x270b88c2, 0x32b5b557, 
-       0x32ae09be, 0x27157cf5, 0x27335082, 0x3296fb3d, 0x328f47d5, 0x273d3eac, 0x275b0014, 0x327821ee, 
-       0x327066bc, 0x2764e82f, 0x27829760, 0x3259297d, 0x32516686, 0x278c7965, 0x27aa164c, 0x323a11fe, 
-       0x32324746, 0x27b3f235, 0x27d17cc1, 0x321adb83, 0x3213090f, 0x27db5288, 0x27f8caa5, 0x31fb8620, 
-       0x31f3abf5, 0x28029a45, 0x281fffe2, 0x31dc11e8, 0x31d4300b, 0x2829c954, 0x28471c5e, 0x31bc7eee, 
-       0x31b49564, 0x2850df9d, 0x286e2002, 0x319ccd46, 0x3194dc14, 0x2877dd07, 0x28950ab6, 0x317cfd04, 
-       0x3175042e, 0x289ec17a, 0x28bbdc61, 0x315d0e3b, 0x31550dc6, 0x28c58cdf, 0x28e294eb, 0x313d00ff, 
-       0x3134f8f1, 0x28ec3f1e, 0x2909343e, 0x311cd564, 0x3114c5c0, 0x2912d81f, 0x292fba40, 0x30fc8b7d, 
-       0x30f47449, 0x293957c9, 0x295626da, 0x30dc235e, 0x30d404a0, 0x295fbe06, 0x297c79f5, 0x30bb9d1c, 
-       0x30b376d8, 0x29860abd, 0x29a2b378, 0x309af8ca, 0x3092cb05, 0x29ac3dd7, 0x29c8d34d, 0x307a367c, 
-       0x3072013c, 0x29d2573c, 0x29eed95b, 0x30595648, 0x30511991, 0x29f856d5, 0x2a14c58b, 0x30385840, 
-       0x30301418, 0x2a1e3c8a, 0x2a3a97c7, 0x30173c7a, 0x300ef0e5, 0x2a440844, 0x2a604ff5, 0x2ff6030a, 
-       0x2fedb00d, 0x2a69b9ec, 0x2a85ee00, 0x2fd4ac04, 0x2fcc51a5, 0x2a8f516b, 0x2aab71d0, 0x2fb3377c, 
-       0x2faad5c1, 0x2ab4cea9, 0x2ad0db4e, 0x2f91a589, 0x2f893c75, 0x2ada318e, 0x2af62a63, 0x2f6ff63d, 
-       0x2f6785d7, 0x2aff7a05, 0x2b1b5ef8, 0x2f4e29af, 0x2f45b1fb, 0x2b24a7f6, 0x2b4078f5, 0x2f2c3ff2, 
-       0x2f23c0f6, 0x2b49bb4a, 0x2b657844, 0x2f0a391d, 0x2f01b2de, 0x2b6eb3ea, 0x2b8a5cce, 0x2ee81543, 
-       0x2edf87c6, 0x2b9391c0, 0x2baf267d, 0x2ec5d479, 0x2ebd3fc4, 0x2bb854b4, 0x2bd3d53a, 0x2ea376d6, 
-       0x2e9adaee, 0x2bdcfcb0, 0x2bf868ed, 0x2e80fc6e, 0x2e785958, 0x2c01899e, 0x2c1ce181, 0x2e5e6556, 
-       0x2e55bb17, 0x2c25fb66, 0x2c413edf, 0x2e3bb1a4, 0x2e330042, 0x2c4a51f3, 0x2c6580f1, 0x2e18e16d, 
-       0x2e1028ed, 0x2c6e8d2e, 0x2c89a79f, 0x2df5f4c7, 0x2ded352f, 0x2c92ad01, 0x2cadb2d5, 0x2dd2ebc7, 
-       0x2dca251c, 0x2cb6b155, 0x2cd1a27b, 0x2dafc683, 0x2da6f8ca, 0x2cda9a14, 0x2cf5767c, 0x2d8c8510, 
+       0x3fffffb1, 0x0006487f, 0x002bfb74, 0x3ffff0e3, 0x3fffe705, 0x00388c6e, 0x005e3f4c, 0x3fffba9b,
+       0x3fffa6de, 0x006ad03b, 0x009082ea, 0x3fff5cd8, 0x3fff3f3c, 0x009d13c5, 0x00c2c62f, 0x3ffed79b,
+       0x3ffeb021, 0x00cf56ef, 0x00f508fc, 0x3ffe2ae5, 0x3ffdf98c, 0x01019998, 0x01274b31, 0x3ffd56b5,
+       0x3ffd1b7e, 0x0133dba3, 0x01598cb1, 0x3ffc5b0c, 0x3ffc15f7, 0x01661cf0, 0x018bcd5b, 0x3ffb37ec,
+       0x3ffae8f9, 0x01985d60, 0x01be0d11, 0x3ff9ed53, 0x3ff99483, 0x01ca9cd4, 0x01f04bb4, 0x3ff87b44,
+       0x3ff81896, 0x01fcdb2e, 0x02228924, 0x3ff6e1bf, 0x3ff67534, 0x022f184d, 0x0254c544, 0x3ff520c5,
+       0x3ff4aa5d, 0x02615414, 0x0286fff3, 0x3ff33858, 0x3ff2b813, 0x02938e62, 0x02b93914, 0x3ff12878,
+       0x3ff09e56, 0x02c5c71a, 0x02eb7086, 0x3feef126, 0x3fee5d28, 0x02f7fe1c, 0x031da62b, 0x3fec9265,
+       0x3febf48b, 0x032a3349, 0x034fd9e5, 0x3fea0c35, 0x3fe96480, 0x035c6682, 0x03820b93, 0x3fe75e98,
+       0x3fe6ad08, 0x038e97a9, 0x03b43b17, 0x3fe48990, 0x3fe3ce26, 0x03c0c69e, 0x03e66852, 0x3fe18d1f,
+       0x3fe0c7da, 0x03f2f342, 0x04189326, 0x3fde6945, 0x3fdd9a27, 0x04251d77, 0x044abb73, 0x3fdb1e06,
+       0x3fda450f, 0x0457451d, 0x047ce11a, 0x3fd7ab64, 0x3fd6c894, 0x04896a16, 0x04af03fc, 0x3fd4115f,
+       0x3fd324b7, 0x04bb8c42, 0x04e123fa, 0x3fd04ffc, 0x3fcf597c, 0x04edab83, 0x051340f6, 0x3fcc673b,
+       0x3fcb66e4, 0x051fc7b9, 0x05455ad1, 0x3fc8571f, 0x3fc74cf3, 0x0551e0c7, 0x0577716b, 0x3fc41fac,
+       0x3fc30baa, 0x0583f68c, 0x05a984a6, 0x3fbfc0e3, 0x3fbea30c, 0x05b608eb, 0x05db9463, 0x3fbb3ac7,
+       0x3fba131b, 0x05e817c3, 0x060da083, 0x3fb68d5b, 0x3fb55bdc, 0x061a22f7, 0x063fa8e7, 0x3fb1b8a2,
+       0x3fb07d50, 0x064c2a67, 0x0671ad71, 0x3facbc9f, 0x3fab777b, 0x067e2df5, 0x06a3ae00, 0x3fa79954,
+       0x3fa64a5f, 0x06b02d81, 0x06d5aa77, 0x3fa24ec6, 0x3fa0f600, 0x06e228ee, 0x0707a2b7, 0x3f9cdcf7,
+       0x3f9b7a62, 0x0714201b, 0x073996a1, 0x3f9743eb, 0x3f95d787, 0x074612eb, 0x076b8616, 0x3f9183a5,
+       0x3f900d72, 0x0778013d, 0x079d70f7, 0x3f8b9c28, 0x3f8a1c29, 0x07a9eaf5, 0x07cf5726, 0x3f858d79,
+       0x3f8403ae, 0x07dbcff2, 0x08013883, 0x3f7f579b, 0x3f7dc405, 0x080db016, 0x083314f1, 0x3f78fa92,
+       0x3f775d31, 0x083f8b43, 0x0864ec4f, 0x3f727661, 0x3f70cf38, 0x08716159, 0x0896be80, 0x3f6bcb0e,
+       0x3f6a1a1c, 0x08a3323a, 0x08c88b65, 0x3f64f89b, 0x3f633de2, 0x08d4fdc6, 0x08fa52de, 0x3f5dff0e,
+       0x3f5c3a8f, 0x0906c3e0, 0x092c14ce, 0x3f56de6a, 0x3f551026, 0x09388469, 0x095dd116, 0x3f4f96b4,
+       0x3f4dbeac, 0x096a3f42, 0x098f8796, 0x3f4827f0, 0x3f464626, 0x099bf44c, 0x09c13831, 0x3f409223,
+       0x3f3ea697, 0x09cda368, 0x09f2e2c7, 0x3f38d552, 0x3f36e006, 0x09ff4c78, 0x0a24873a, 0x3f30f181,
+       0x3f2ef276, 0x0a30ef5e, 0x0a56256c, 0x3f28e6b6, 0x3f26ddec, 0x0a628bfa, 0x0a87bd3d, 0x3f20b4f5,
+       0x3f1ea26e, 0x0a94222f, 0x0ab94e8f, 0x3f185c43, 0x3f164001, 0x0ac5b1dc, 0x0aead944, 0x3f0fdca5,
+       0x3f0db6a9, 0x0af73ae5, 0x0b1c5d3d, 0x3f073621, 0x3f05066d, 0x0b28bd2a, 0x0b4dda5c, 0x3efe68bc,
+       0x3efc2f50, 0x0b5a388d, 0x0b7f5081, 0x3ef5747b, 0x3ef3315a, 0x0b8bacf0, 0x0bb0bf8f, 0x3eec5965,
+       0x3eea0c8e, 0x0bbd1a33, 0x0be22766, 0x3ee3177e, 0x3ee0c0f4, 0x0bee8038, 0x0c1387e9, 0x3ed9aecc,
+       0x3ed74e91, 0x0c1fdee1, 0x0c44e0f9, 0x3ed01f55, 0x3ecdb56a, 0x0c513610, 0x0c763278, 0x3ec66920,
+       0x3ec3f585, 0x0c8285a5, 0x0ca77c47, 0x3ebc8c31, 0x3eba0ee9, 0x0cb3cd84, 0x0cd8be47, 0x3eb2888f,
+       0x3eb0019c, 0x0ce50d8c, 0x0d09f85b, 0x3ea85e41, 0x3ea5cda3, 0x0d1645a0, 0x0d3b2a64, 0x3e9e0d4c,
+       0x3e9b7306, 0x0d4775a1, 0x0d6c5443, 0x3e9395b7, 0x3e90f1ca, 0x0d789d71, 0x0d9d75db, 0x3e88f788,
+       0x3e8649f5, 0x0da9bcf2, 0x0dce8f0d, 0x3e7e32c6, 0x3e7b7b90, 0x0ddad406, 0x0dff9fba, 0x3e734778,
+       0x3e70869f, 0x0e0be28e, 0x0e30a7c5, 0x3e6835a4, 0x3e656b2b, 0x0e3ce86b, 0x0e61a70f, 0x3e5cfd51,
+       0x3e5a2939, 0x0e6de580, 0x0e929d7a, 0x3e519e86, 0x3e4ec0d1, 0x0e9ed9af, 0x0ec38ae8, 0x3e46194a,
+       0x3e4331fa, 0x0ecfc4d9, 0x0ef46f3b, 0x3e3a6da4, 0x3e377cbb, 0x0f00a6df, 0x0f254a53, 0x3e2e9b9c,
+       0x3e2ba11b, 0x0f317fa5, 0x0f561c15, 0x3e22a338, 0x3e1f9f21, 0x0f624f0c, 0x0f86e460, 0x3e168480,
+       0x3e1376d5, 0x0f9314f5, 0x0fb7a317, 0x3e0a3f7b, 0x3e07283f, 0x0fc3d143, 0x0fe8581d, 0x3dfdd432,
+       0x3dfab365, 0x0ff483d7, 0x10190352, 0x3df142ab, 0x3dee1851, 0x10252c94, 0x1049a49a, 0x3de48aef,
+       0x3de15708, 0x1055cb5b, 0x107a3bd5, 0x3dd7ad05, 0x3dd46f94, 0x1086600e, 0x10aac8e6, 0x3dcaa8f5,
+       0x3dc761fc, 0x10b6ea90, 0x10db4baf, 0x3dbd7ec7, 0x3dba2e48, 0x10e76ac3, 0x110bc413, 0x3db02e84,
+       0x3dacd481, 0x1117e088, 0x113c31f3, 0x3da2b834, 0x3d9f54af, 0x11484bc2, 0x116c9531, 0x3d951bde,
+       0x3d91aed9, 0x1178ac53, 0x119cedaf, 0x3d87598c, 0x3d83e309, 0x11a9021d, 0x11cd3b50, 0x3d797145,
+       0x3d75f147, 0x11d94d02, 0x11fd7df6, 0x3d6b6313, 0x3d67d99b, 0x12098ce5, 0x122db583, 0x3d5d2efe,
+       0x3d599c0e, 0x1239c1a7, 0x125de1da, 0x3d4ed50f, 0x3d4b38aa, 0x1269eb2b, 0x128e02dc, 0x3d40554e,
+       0x3d3caf76, 0x129a0954, 0x12be186c, 0x3d31afc5, 0x3d2e007c, 0x12ca1c03, 0x12ee226c, 0x3d22e47c,
+       0x3d1f2bc5, 0x12fa231b, 0x131e20c0, 0x3d13f37e, 0x3d10315a, 0x132a1e7e, 0x134e1348, 0x3d04dcd2,
+       0x3d011145, 0x135a0e0e, 0x137df9e7, 0x3cf5a082, 0x3cf1cb8e, 0x1389f1af, 0x13add481, 0x3ce63e98,
+       0x3ce2603f, 0x13b9c943, 0x13dda2f7, 0x3cd6b71e, 0x3cd2cf62, 0x13e994ab, 0x140d652c, 0x3cc70a1c,
+       0x3cc318ff, 0x141953cb, 0x143d1b02, 0x3cb7379c, 0x3cb33d22, 0x14490685, 0x146cc45c, 0x3ca73fa9,
+       0x3ca33bd3, 0x1478acbc, 0x149c611d, 0x3c97224c, 0x3c93151d, 0x14a84652, 0x14cbf127, 0x3c86df8e,
+       0x3c82c909, 0x14d7d32a, 0x14fb745e, 0x3c76777b, 0x3c7257a2, 0x15075327, 0x152aeaa3, 0x3c65ea1c,
+       0x3c61c0f1, 0x1536c62b, 0x155a53d9, 0x3c55377b, 0x3c510501, 0x15662c18, 0x1589afe3, 0x3c445fa2,
+       0x3c4023dd, 0x159584d3, 0x15b8fea4, 0x3c33629d, 0x3c2f1d8e, 0x15c4d03e, 0x15e83fff, 0x3c224075,
+       0x3c1df21f, 0x15f40e3a, 0x161773d6, 0x3c10f935, 0x3c0ca19b, 0x16233eac, 0x16469a0d, 0x3bff8ce8,
+       0x3bfb2c0c, 0x16526176, 0x1675b286, 0x3bedfb99, 0x3be9917e, 0x1681767c, 0x16a4bd25, 0x3bdc4552,
+       0x3bd7d1fa, 0x16b07d9f, 0x16d3b9cc, 0x3bca6a1d, 0x3bc5ed8d, 0x16df76c3, 0x1702a85e, 0x3bb86a08,
+       0x3bb3e440, 0x170e61cc, 0x173188be, 0x3ba6451b, 0x3ba1b620, 0x173d3e9b, 0x17605ad0, 0x3b93fb63,
+       0x3b8f6337, 0x176c0d15, 0x178f1e76, 0x3b818ceb, 0x3b7ceb90, 0x179acd1c, 0x17bdd394, 0x3b6ef9be,
+       0x3b6a4f38, 0x17c97e93, 0x17ec7a0d, 0x3b5c41e8, 0x3b578e39, 0x17f8215e, 0x181b11c4, 0x3b496574,
+       0x3b44a8a0, 0x1826b561, 0x18499a9d, 0x3b36646e, 0x3b319e77, 0x18553a7d, 0x1878147a, 0x3b233ee1,
+       0x3b1e6fca, 0x1883b097, 0x18a67f3f, 0x3b0ff4d9, 0x3b0b1ca6, 0x18b21791, 0x18d4dad0, 0x3afc8663,
+       0x3af7a516, 0x18e06f50, 0x1903270f, 0x3ae8f38b, 0x3ae40926, 0x190eb7b7, 0x193163e1, 0x3ad53c5b,
+       0x3ad048e3, 0x193cf0a9, 0x195f9128, 0x3ac160e1, 0x3abc6458, 0x196b1a09, 0x198daec8, 0x3aad6129,
+       0x3aa85b92, 0x199933bb, 0x19bbbca6, 0x3a993d3e, 0x3a942e9d, 0x19c73da3, 0x19e9baa3, 0x3a84f52f,
+       0x3a7fdd86, 0x19f537a4, 0x1a17a8a5, 0x3a708906, 0x3a6b6859, 0x1a2321a2, 0x1a45868e, 0x3a5bf8d1,
+       0x3a56cf23, 0x1a50fb81, 0x1a735442, 0x3a47449c, 0x3a4211f0, 0x1a7ec524, 0x1aa111a6, 0x3a326c74,
+       0x3a2d30cd, 0x1aac7e6f, 0x1acebe9d, 0x3a1d7066, 0x3a182bc8, 0x1ada2746, 0x1afc5b0a, 0x3a08507f,
+       0x3a0302ed, 0x1b07bf8c, 0x1b29e6d2, 0x39f30ccc, 0x39edb649, 0x1b354727, 0x1b5761d8, 0x39dda55a,
+       0x39d845e9, 0x1b62bdf8, 0x1b84cc01, 0x39c81a36, 0x39c2b1da, 0x1b9023e5, 0x1bb22530, 0x39b26b6d,
+       0x39acfa2b, 0x1bbd78d2, 0x1bdf6d4a, 0x399c990d, 0x39971ee7, 0x1beabca1, 0x1c0ca432, 0x3986a324,
+       0x3981201e, 0x1c17ef39, 0x1c39c9cd, 0x397089bf, 0x396afddc, 0x1c45107c, 0x1c66ddfe, 0x395a4ceb,
+       0x3954b82e, 0x1c72204f, 0x1c93e0ab, 0x3943ecb6, 0x393e4f23, 0x1c9f1e96, 0x1cc0d1b6, 0x392d692f,
+       0x3927c2c9, 0x1ccc0b35, 0x1cedb106, 0x3916c262, 0x3911132d, 0x1cf8e611, 0x1d1a7e7d, 0x38fff85e,
+       0x38fa405e, 0x1d25af0d, 0x1d473a00, 0x38e90b31, 0x38e34a69, 0x1d52660f, 0x1d73e374, 0x38d1fae9,
+       0x38cc315d, 0x1d7f0afb, 0x1da07abc, 0x38bac795, 0x38b4f547, 0x1dab9db5, 0x1dccffbf, 0x38a37142,
+       0x389d9637, 0x1dd81e21, 0x1df9725f, 0x388bf7ff, 0x3886143b, 0x1e048c24, 0x1e25d282, 0x38745bdb,
+       0x386e6f60, 0x1e30e7a4, 0x1e52200c, 0x385c9ce3, 0x3856a7b6, 0x1e5d3084, 0x1e7e5ae2, 0x3844bb28,
+       0x383ebd4c, 0x1e8966a8, 0x1eaa82e9, 0x382cb6b7, 0x3826b030, 0x1eb589f7, 0x1ed69805, 0x38148f9f,
+       0x380e8071, 0x1ee19a54, 0x1f029a1c, 0x37fc45ef, 0x37f62e1d, 0x1f0d97a5, 0x1f2e8911, 0x37e3d9b7,
+       0x37ddb945, 0x1f3981ce, 0x1f5a64cb, 0x37cb4b04, 0x37c521f6, 0x1f6558b5, 0x1f862d2d, 0x37b299e7,
+       0x37ac6841, 0x1f911c3d, 0x1fb1e21d, 0x3799c66f, 0x37938c34, 0x1fbccc4d, 0x1fdd8381, 0x3780d0aa,
+       0x377a8ddf, 0x1fe868c8, 0x2009113c, 0x3767b8a9, 0x37616d51, 0x2013f196, 0x20348b35, 0x374e7e7b,
+       0x37482a9a, 0x203f6699, 0x205ff14f, 0x3735222f, 0x372ec5c9, 0x206ac7b8, 0x208b4372, 0x371ba3d4,
+       0x37153eee, 0x209614d9, 0x20b68181, 0x3702037c, 0x36fb9618, 0x20c14ddf, 0x20e1ab63, 0x36e84135,
+       0x36e1cb58, 0x20ec72b1, 0x210cc0fc, 0x36ce5d10, 0x36c7debd, 0x21178334, 0x2137c232, 0x36b4571b,
+       0x36add058, 0x21427f4d, 0x2162aeea, 0x369a2f69, 0x3693a038, 0x216d66e2, 0x218d870b, 0x367fe608,
+       0x36794e6e, 0x219839d8, 0x21b84a79, 0x36657b08, 0x365edb09, 0x21c2f815, 0x21e2f91a, 0x364aee7b,
+       0x3644461b, 0x21eda17f, 0x220d92d4, 0x36304070, 0x36298fb4, 0x221835fb, 0x2238178d, 0x361570f8,
+       0x360eb7e3, 0x2242b56f, 0x22628729, 0x35fa8023, 0x35f3beba, 0x226d1fc1, 0x228ce191, 0x35df6e03,
+       0x35d8a449, 0x229774d7, 0x22b726a8, 0x35c43aa7, 0x35bd68a1, 0x22c1b496, 0x22e15655, 0x35a8e621,
+       0x35a20bd3, 0x22ebdee5, 0x230b707e, 0x358d7081, 0x35868def, 0x2315f3a8, 0x23357509, 0x3571d9d9,
+       0x356aef08, 0x233ff2c8, 0x235f63dc, 0x35562239, 0x354f2f2c, 0x2369dc29, 0x23893cdd, 0x353a49b2,
+       0x35334e6f, 0x2393afb2, 0x23b2fff3, 0x351e5056, 0x35174ce0, 0x23bd6d48, 0x23dcad03, 0x35023636,
+       0x34fb2a92, 0x23e714d3, 0x240643f4, 0x34e5fb63, 0x34dee795, 0x2410a639, 0x242fc4ad, 0x34c99fef,
+       0x34c283fb, 0x243a215f, 0x24592f13, 0x34ad23eb, 0x34a5ffd5, 0x2463862c, 0x2482830d, 0x34908768,
+       0x34895b36, 0x248cd487, 0x24abc082, 0x3473ca79, 0x346c962f, 0x24b60c57, 0x24d4e757, 0x3456ed2f,
+       0x344fb0d1, 0x24df2d81, 0x24fdf775, 0x3439ef9c, 0x3432ab2e, 0x250837ed, 0x2526f0c1, 0x341cd1d2,
+       0x34158559, 0x25312b81, 0x254fd323, 0x33ff93e2, 0x33f83f62, 0x255a0823, 0x25789e80, 0x33e235df,
+       0x33dad95e, 0x2582cdbc, 0x25a152c0, 0x33c4b7db, 0x33bd535c, 0x25ab7c30, 0x25c9efca, 0x33a719e8,
+       0x339fad70, 0x25d41369, 0x25f27584, 0x33895c18, 0x3381e7ac, 0x25fc934b, 0x261ae3d6, 0x336b7e7e,
+       0x33640223, 0x2624fbbf, 0x26433aa7, 0x334d812d, 0x3345fce6, 0x264d4cac, 0x266b79dd, 0x332f6435,
+       0x3327d808, 0x267585f8, 0x2693a161, 0x331127ab, 0x3309939c, 0x269da78b, 0x26bbb119, 0x32f2cba1,
+       0x32eb2fb5, 0x26c5b14c, 0x26e3a8ec, 0x32d45029, 0x32ccac64, 0x26eda322, 0x270b88c2, 0x32b5b557,
+       0x32ae09be, 0x27157cf5, 0x27335082, 0x3296fb3d, 0x328f47d5, 0x273d3eac, 0x275b0014, 0x327821ee,
+       0x327066bc, 0x2764e82f, 0x27829760, 0x3259297d, 0x32516686, 0x278c7965, 0x27aa164c, 0x323a11fe,
+       0x32324746, 0x27b3f235, 0x27d17cc1, 0x321adb83, 0x3213090f, 0x27db5288, 0x27f8caa5, 0x31fb8620,
+       0x31f3abf5, 0x28029a45, 0x281fffe2, 0x31dc11e8, 0x31d4300b, 0x2829c954, 0x28471c5e, 0x31bc7eee,
+       0x31b49564, 0x2850df9d, 0x286e2002, 0x319ccd46, 0x3194dc14, 0x2877dd07, 0x28950ab6, 0x317cfd04,
+       0x3175042e, 0x289ec17a, 0x28bbdc61, 0x315d0e3b, 0x31550dc6, 0x28c58cdf, 0x28e294eb, 0x313d00ff,
+       0x3134f8f1, 0x28ec3f1e, 0x2909343e, 0x311cd564, 0x3114c5c0, 0x2912d81f, 0x292fba40, 0x30fc8b7d,
+       0x30f47449, 0x293957c9, 0x295626da, 0x30dc235e, 0x30d404a0, 0x295fbe06, 0x297c79f5, 0x30bb9d1c,
+       0x30b376d8, 0x29860abd, 0x29a2b378, 0x309af8ca, 0x3092cb05, 0x29ac3dd7, 0x29c8d34d, 0x307a367c,
+       0x3072013c, 0x29d2573c, 0x29eed95b, 0x30595648, 0x30511991, 0x29f856d5, 0x2a14c58b, 0x30385840,
+       0x30301418, 0x2a1e3c8a, 0x2a3a97c7, 0x30173c7a, 0x300ef0e5, 0x2a440844, 0x2a604ff5, 0x2ff6030a,
+       0x2fedb00d, 0x2a69b9ec, 0x2a85ee00, 0x2fd4ac04, 0x2fcc51a5, 0x2a8f516b, 0x2aab71d0, 0x2fb3377c,
+       0x2faad5c1, 0x2ab4cea9, 0x2ad0db4e, 0x2f91a589, 0x2f893c75, 0x2ada318e, 0x2af62a63, 0x2f6ff63d,
+       0x2f6785d7, 0x2aff7a05, 0x2b1b5ef8, 0x2f4e29af, 0x2f45b1fb, 0x2b24a7f6, 0x2b4078f5, 0x2f2c3ff2,
+       0x2f23c0f6, 0x2b49bb4a, 0x2b657844, 0x2f0a391d, 0x2f01b2de, 0x2b6eb3ea, 0x2b8a5cce, 0x2ee81543,
+       0x2edf87c6, 0x2b9391c0, 0x2baf267d, 0x2ec5d479, 0x2ebd3fc4, 0x2bb854b4, 0x2bd3d53a, 0x2ea376d6,
+       0x2e9adaee, 0x2bdcfcb0, 0x2bf868ed, 0x2e80fc6e, 0x2e785958, 0x2c01899e, 0x2c1ce181, 0x2e5e6556,
+       0x2e55bb17, 0x2c25fb66, 0x2c413edf, 0x2e3bb1a4, 0x2e330042, 0x2c4a51f3, 0x2c6580f1, 0x2e18e16d,
+       0x2e1028ed, 0x2c6e8d2e, 0x2c89a79f, 0x2df5f4c7, 0x2ded352f, 0x2c92ad01, 0x2cadb2d5, 0x2dd2ebc7,
+       0x2dca251c, 0x2cb6b155, 0x2cd1a27b, 0x2dafc683, 0x2da6f8ca, 0x2cda9a14, 0x2cf5767c, 0x2d8c8510,
        0x2d83b04f, 0x2cfe6728, 0x2d192ec1, 0x2d692784, 0x2d604bc0, 0x2d22187a, 0x2d3ccb34, 0x2d45adf6
 };
 
 
 const int twidTab512[(8*6 + 32*6 + 128*6)/2] = {
-       0x40000000, 0x40000000, 0x40000000, 0x3b20187d, 
-       0x3ec50c7c, 0x3536238e, 0x2d412d41, 0x3b20187d, 
-       0x187d3b20, 0x187d3b20, 0x3536238e, 0xf3843ec5, 
-       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xe7833b20, 
-       0x238e3536, 0xc13b0c7c, 0xd2bf2d41, 0x187d3b20, 
-       0xc4e0e783, 0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 
-
-       0x40000000, 0x40000000, 0x40000000, 0x3fb10645, 
-       0x3fec0323, 0x3f4e0964, 0x3ec50c7c, 0x3fb10645, 
-       0x3d3e1294, 0x3d3e1294, 0x3f4e0964, 0x39da1b5d, 
-       0x3b20187d, 0x3ec50c7c, 0x3536238e, 0x38711e2b, 
-       0x3e140f8c, 0x2f6b2afa, 0x3536238e, 0x3d3e1294, 
-       0x28993179, 0x31792899, 0x3c42158f, 0x20e736e5, 
-       0x2d412d41, 0x3b20187d, 0x187d3b20, 0x28993179, 
-       0x39da1b5d, 0x0f8c3e14, 0x238e3536, 0x38711e2b, 
-       0x06453fb1, 0x1e2b3871, 0x36e520e7, 0xfcdd3fec, 
-       0x187d3b20, 0x3536238e, 0xf3843ec5, 0x12943d3e, 
-       0x3367261f, 0xea713c42, 0x0c7c3ec5, 0x31792899, 
-       0xe1d53871, 0x06453fb1, 0x2f6b2afa, 0xd9e13367, 
-       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xf9bb3fb1, 
-       0x2afa2f6b, 0xcc99261f, 0xf3843ec5, 0x28993179, 
-       0xc78f1e2b, 0xed6c3d3e, 0x261f3367, 0xc3be158f, 
-       0xe7833b20, 0x238e3536, 0xc13b0c7c, 0xe1d53871, 
-       0x20e736e5, 0xc0140323, 0xdc723536, 0x1e2b3871, 
-       0xc04ff9bb, 0xd7673179, 0x1b5d39da, 0xc1ecf074, 
-       0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xce872899, 
-       0x158f3c42, 0xc91bdf19, 0xcaca238e, 0x12943d3e, 
-       0xce87d767, 0xc78f1e2b, 0x0f8c3e14, 0xd506d095, 
-       0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 0xc2c21294, 
-       0x09643f4e, 0xe4a3c626, 0xc13b0c7c, 0x06453fb1, 
-       0xed6cc2c2, 0xc04f0645, 0x03233fec, 0xf69cc0b2, 
-
-       0x40000000, 0x40000000, 0x40000000, 0x3ffb0192, 
-       0x3ffe00c9, 0x3ff4025b, 0x3fec0323, 0x3ffb0192, 
-       0x3fd304b5, 0x3fd304b5, 0x3ff4025b, 0x3f9c070d, 
-       0x3fb10645, 0x3fec0323, 0x3f4e0964, 0x3f8407d5, 
-       0x3fe103ec, 0x3eeb0bb6, 0x3f4e0964, 0x3fd304b5, 
-       0x3e710e05, 0x3f0e0af1, 0x3fc3057d, 0x3de2104f, 
-       0x3ec50c7c, 0x3fb10645, 0x3d3e1294, 0x3e710e05, 
-       0x3f9c070d, 0x3c8414d1, 0x3e140f8c, 0x3f8407d5, 
-       0x3bb61708, 0x3dae1111, 0x3f6a089c, 0x3ad21937, 
-       0x3d3e1294, 0x3f4e0964, 0x39da1b5d, 0x3cc51413, 
-       0x3f2f0a2a, 0x38cf1d79, 0x3c42158f, 0x3f0e0af1, 
-       0x37af1f8b, 0x3bb61708, 0x3eeb0bb6, 0x367c2192, 
-       0x3b20187d, 0x3ec50c7c, 0x3536238e, 0x3a8219ef, 
-       0x3e9c0d41, 0x33de257d, 0x39da1b5d, 0x3e710e05, 
-       0x3274275f, 0x392a1cc6, 0x3e440ec9, 0x30f82934, 
-       0x38711e2b, 0x3e140f8c, 0x2f6b2afa, 0x37af1f8b, 
-       0x3de2104f, 0x2dce2cb2, 0x36e520e7, 0x3dae1111, 
-       0x2c212e5a, 0x3612223d, 0x3d7711d3, 0x2a652ff1, 
-       0x3536238e, 0x3d3e1294, 0x28993179, 0x345324da, 
-       0x3d021354, 0x26c032ee, 0x3367261f, 0x3cc51413, 
-       0x24da3453, 0x3274275f, 0x3c8414d1, 0x22e635a5, 
-       0x31792899, 0x3c42158f, 0x20e736e5, 0x307629cd, 
-       0x3bfd164c, 0x1edc3811, 0x2f6b2afa, 0x3bb61708, 
-       0x1cc6392a, 0x2e5a2c21, 0x3b6c17c3, 0x1aa63a2f, 
-       0x2d412d41, 0x3b20187d, 0x187d3b20, 0x2c212e5a, 
-       0x3ad21937, 0x164c3bfd, 0x2afa2f6b, 0x3a8219ef, 
-       0x14133cc5, 0x29cd3076, 0x3a2f1aa6, 0x11d33d77, 
-       0x28993179, 0x39da1b5d, 0x0f8c3e14, 0x275f3274, 
-       0x39831c12, 0x0d413e9c, 0x261f3367, 0x392a1cc6, 
-       0x0af13f0e, 0x24da3453, 0x38cf1d79, 0x089c3f6a, 
-       0x238e3536, 0x38711e2b, 0x06453fb1, 0x223d3612, 
-       0x38111edc, 0x03ec3fe1, 0x20e736e5, 0x37af1f8b, 
-       0x01923ffb, 0x1f8b37af, 0x374b2039, 0xff373ffe, 
-       0x1e2b3871, 0x36e520e7, 0xfcdd3fec, 0x1cc6392a, 
-       0x367c2192, 0xfa833fc3, 0x1b5d39da, 0x3612223d, 
-       0xf82b3f84, 0x19ef3a82, 0x35a522e6, 0xf5d63f2f, 
-       0x187d3b20, 0x3536238e, 0xf3843ec5, 0x17083bb6, 
-       0x34c62434, 0xf1373e44, 0x158f3c42, 0x345324da, 
-       0xeeef3dae, 0x14133cc5, 0x33de257d, 0xecac3d02, 
-       0x12943d3e, 0x3367261f, 0xea713c42, 0x11113dae, 
-       0x32ee26c0, 0xe83d3b6c, 0x0f8c3e14, 0x3274275f, 
-       0xe6113a82, 0x0e053e71, 0x31f727fd, 0xe3ee3983, 
-       0x0c7c3ec5, 0x31792899, 0xe1d53871, 0x0af13f0e, 
-       0x30f82934, 0xdfc7374b, 0x09643f4e, 0x307629cd, 
-       0xddc33612, 0x07d53f84, 0x2ff12a65, 0xdbcc34c6, 
-       0x06453fb1, 0x2f6b2afa, 0xd9e13367, 0x04b53fd3, 
-       0x2ee32b8e, 0xd80331f7, 0x03233fec, 0x2e5a2c21, 
-       0xd6333076, 0x01923ffb, 0x2dce2cb2, 0xd4722ee3, 
-       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xfe6e3ffb, 
-       0x2cb22dce, 0xd11d2b8e, 0xfcdd3fec, 0x2c212e5a, 
-       0xcf8a29cd, 0xfb4b3fd3, 0x2b8e2ee3, 0xce0927fd, 
-       0xf9bb3fb1, 0x2afa2f6b, 0xcc99261f, 0xf82b3f84, 
-       0x2a652ff1, 0xcb3a2434, 0xf69c3f4e, 0x29cd3076, 
-       0xc9ee223d, 0xf50f3f0e, 0x293430f8, 0xc8b52039, 
-       0xf3843ec5, 0x28993179, 0xc78f1e2b, 0xf1fb3e71, 
-       0x27fd31f7, 0xc67d1c12, 0xf0743e14, 0x275f3274, 
-       0xc57e19ef, 0xeeef3dae, 0x26c032ee, 0xc49417c3, 
-       0xed6c3d3e, 0x261f3367, 0xc3be158f, 0xebed3cc5, 
-       0x257d33de, 0xc2fe1354, 0xea713c42, 0x24da3453, 
-       0xc2521111, 0xe8f83bb6, 0x243434c6, 0xc1bc0ec9, 
-       0xe7833b20, 0x238e3536, 0xc13b0c7c, 0xe6113a82, 
-       0x22e635a5, 0xc0d10a2a, 0xe4a339da, 0x223d3612, 
-       0xc07c07d5, 0xe33a392a, 0x2192367c, 0xc03d057d, 
-       0xe1d53871, 0x20e736e5, 0xc0140323, 0xe07537af, 
-       0x2039374b, 0xc00200c9, 0xdf1936e5, 0x1f8b37af, 
-       0xc005fe6e, 0xddc33612, 0x1edc3811, 0xc01ffc14, 
-       0xdc723536, 0x1e2b3871, 0xc04ff9bb, 0xdb263453, 
-       0x1d7938cf, 0xc096f764, 0xd9e13367, 0x1cc6392a, 
-       0xc0f2f50f, 0xd8a13274, 0x1c123983, 0xc164f2bf, 
-       0xd7673179, 0x1b5d39da, 0xc1ecf074, 0xd6333076, 
-       0x1aa63a2f, 0xc289ee2d, 0xd5062f6b, 0x19ef3a82, 
-       0xc33bebed, 0xd3df2e5a, 0x19373ad2, 0xc403e9b4, 
-       0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xd1a62c21, 
-       0x17c33b6c, 0xc5d1e55a, 0xd0952afa, 0x17083bb6, 
-       0xc6d6e33a, 0xcf8a29cd, 0x164c3bfd, 0xc7efe124, 
-       0xce872899, 0x158f3c42, 0xc91bdf19, 0xcd8c275f, 
-       0x14d13c84, 0xca5bdd1a, 0xcc99261f, 0x14133cc5, 
-       0xcbaddb26, 0xcbad24da, 0x13543d02, 0xcd12d940, 
-       0xcaca238e, 0x12943d3e, 0xce87d767, 0xc9ee223d, 
-       0x11d33d77, 0xd00fd59b, 0xc91b20e7, 0x11113dae, 
-       0xd1a6d3df, 0xc8511f8b, 0x104f3de2, 0xd34ed232, 
-       0xc78f1e2b, 0x0f8c3e14, 0xd506d095, 0xc6d61cc6, 
-       0x0ec93e44, 0xd6cccf08, 0xc6261b5d, 0x0e053e71, 
-       0xd8a1cd8c, 0xc57e19ef, 0x0d413e9c, 0xda83cc22, 
-       0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 0xc44a1708, 
-       0x0bb63eeb, 0xde6ec984, 0xc3be158f, 0x0af13f0e, 
-       0xe075c851, 0xc33b1413, 0x0a2a3f2f, 0xe287c731, 
-       0xc2c21294, 0x09643f4e, 0xe4a3c626, 0xc2521111, 
-       0x089c3f6a, 0xe6c9c52e, 0xc1ec0f8c, 0x07d53f84, 
-       0xe8f8c44a, 0xc18f0e05, 0x070d3f9c, 0xeb2fc37c, 
-       0xc13b0c7c, 0x06453fb1, 0xed6cc2c2, 0xc0f20af1, 
-       0x057d3fc3, 0xefb1c21e, 0xc0b20964, 0x04b53fd3, 
-       0xf1fbc18f, 0xc07c07d5, 0x03ec3fe1, 0xf44ac115, 
-       0xc04f0645, 0x03233fec, 0xf69cc0b2, 0xc02d04b5, 
-       0x025b3ff4, 0xf8f3c064, 0xc0140323, 0x01923ffb, 
-       0xfb4bc02d, 0xc0050192, 0x00c93ffe, 0xfda5c00c  
+       0x40000000, 0x40000000, 0x40000000, 0x3b20187d,
+       0x3ec50c7c, 0x3536238e, 0x2d412d41, 0x3b20187d,
+       0x187d3b20, 0x187d3b20, 0x3536238e, 0xf3843ec5,
+       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xe7833b20,
+       0x238e3536, 0xc13b0c7c, 0xd2bf2d41, 0x187d3b20,
+       0xc4e0e783, 0xc4e0187d, 0x0c7c3ec5, 0xdc72caca,
+
+       0x40000000, 0x40000000, 0x40000000, 0x3fb10645,
+       0x3fec0323, 0x3f4e0964, 0x3ec50c7c, 0x3fb10645,
+       0x3d3e1294, 0x3d3e1294, 0x3f4e0964, 0x39da1b5d,
+       0x3b20187d, 0x3ec50c7c, 0x3536238e, 0x38711e2b,
+       0x3e140f8c, 0x2f6b2afa, 0x3536238e, 0x3d3e1294,
+       0x28993179, 0x31792899, 0x3c42158f, 0x20e736e5,
+       0x2d412d41, 0x3b20187d, 0x187d3b20, 0x28993179,
+       0x39da1b5d, 0x0f8c3e14, 0x238e3536, 0x38711e2b,
+       0x06453fb1, 0x1e2b3871, 0x36e520e7, 0xfcdd3fec,
+       0x187d3b20, 0x3536238e, 0xf3843ec5, 0x12943d3e,
+       0x3367261f, 0xea713c42, 0x0c7c3ec5, 0x31792899,
+       0xe1d53871, 0x06453fb1, 0x2f6b2afa, 0xd9e13367,
+       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xf9bb3fb1,
+       0x2afa2f6b, 0xcc99261f, 0xf3843ec5, 0x28993179,
+       0xc78f1e2b, 0xed6c3d3e, 0x261f3367, 0xc3be158f,
+       0xe7833b20, 0x238e3536, 0xc13b0c7c, 0xe1d53871,
+       0x20e736e5, 0xc0140323, 0xdc723536, 0x1e2b3871,
+       0xc04ff9bb, 0xd7673179, 0x1b5d39da, 0xc1ecf074,
+       0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xce872899,
+       0x158f3c42, 0xc91bdf19, 0xcaca238e, 0x12943d3e,
+       0xce87d767, 0xc78f1e2b, 0x0f8c3e14, 0xd506d095,
+       0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 0xc2c21294,
+       0x09643f4e, 0xe4a3c626, 0xc13b0c7c, 0x06453fb1,
+       0xed6cc2c2, 0xc04f0645, 0x03233fec, 0xf69cc0b2,
+
+       0x40000000, 0x40000000, 0x40000000, 0x3ffb0192,
+       0x3ffe00c9, 0x3ff4025b, 0x3fec0323, 0x3ffb0192,
+       0x3fd304b5, 0x3fd304b5, 0x3ff4025b, 0x3f9c070d,
+       0x3fb10645, 0x3fec0323, 0x3f4e0964, 0x3f8407d5,
+       0x3fe103ec, 0x3eeb0bb6, 0x3f4e0964, 0x3fd304b5,
+       0x3e710e05, 0x3f0e0af1, 0x3fc3057d, 0x3de2104f,
+       0x3ec50c7c, 0x3fb10645, 0x3d3e1294, 0x3e710e05,
+       0x3f9c070d, 0x3c8414d1, 0x3e140f8c, 0x3f8407d5,
+       0x3bb61708, 0x3dae1111, 0x3f6a089c, 0x3ad21937,
+       0x3d3e1294, 0x3f4e0964, 0x39da1b5d, 0x3cc51413,
+       0x3f2f0a2a, 0x38cf1d79, 0x3c42158f, 0x3f0e0af1,
+       0x37af1f8b, 0x3bb61708, 0x3eeb0bb6, 0x367c2192,
+       0x3b20187d, 0x3ec50c7c, 0x3536238e, 0x3a8219ef,
+       0x3e9c0d41, 0x33de257d, 0x39da1b5d, 0x3e710e05,
+       0x3274275f, 0x392a1cc6, 0x3e440ec9, 0x30f82934,
+       0x38711e2b, 0x3e140f8c, 0x2f6b2afa, 0x37af1f8b,
+       0x3de2104f, 0x2dce2cb2, 0x36e520e7, 0x3dae1111,
+       0x2c212e5a, 0x3612223d, 0x3d7711d3, 0x2a652ff1,
+       0x3536238e, 0x3d3e1294, 0x28993179, 0x345324da,
+       0x3d021354, 0x26c032ee, 0x3367261f, 0x3cc51413,
+       0x24da3453, 0x3274275f, 0x3c8414d1, 0x22e635a5,
+       0x31792899, 0x3c42158f, 0x20e736e5, 0x307629cd,
+       0x3bfd164c, 0x1edc3811, 0x2f6b2afa, 0x3bb61708,
+       0x1cc6392a, 0x2e5a2c21, 0x3b6c17c3, 0x1aa63a2f,
+       0x2d412d41, 0x3b20187d, 0x187d3b20, 0x2c212e5a,
+       0x3ad21937, 0x164c3bfd, 0x2afa2f6b, 0x3a8219ef,
+       0x14133cc5, 0x29cd3076, 0x3a2f1aa6, 0x11d33d77,
+       0x28993179, 0x39da1b5d, 0x0f8c3e14, 0x275f3274,
+       0x39831c12, 0x0d413e9c, 0x261f3367, 0x392a1cc6,
+       0x0af13f0e, 0x24da3453, 0x38cf1d79, 0x089c3f6a,
+       0x238e3536, 0x38711e2b, 0x06453fb1, 0x223d3612,
+       0x38111edc, 0x03ec3fe1, 0x20e736e5, 0x37af1f8b,
+       0x01923ffb, 0x1f8b37af, 0x374b2039, 0xff373ffe,
+       0x1e2b3871, 0x36e520e7, 0xfcdd3fec, 0x1cc6392a,
+       0x367c2192, 0xfa833fc3, 0x1b5d39da, 0x3612223d,
+       0xf82b3f84, 0x19ef3a82, 0x35a522e6, 0xf5d63f2f,
+       0x187d3b20, 0x3536238e, 0xf3843ec5, 0x17083bb6,
+       0x34c62434, 0xf1373e44, 0x158f3c42, 0x345324da,
+       0xeeef3dae, 0x14133cc5, 0x33de257d, 0xecac3d02,
+       0x12943d3e, 0x3367261f, 0xea713c42, 0x11113dae,
+       0x32ee26c0, 0xe83d3b6c, 0x0f8c3e14, 0x3274275f,
+       0xe6113a82, 0x0e053e71, 0x31f727fd, 0xe3ee3983,
+       0x0c7c3ec5, 0x31792899, 0xe1d53871, 0x0af13f0e,
+       0x30f82934, 0xdfc7374b, 0x09643f4e, 0x307629cd,
+       0xddc33612, 0x07d53f84, 0x2ff12a65, 0xdbcc34c6,
+       0x06453fb1, 0x2f6b2afa, 0xd9e13367, 0x04b53fd3,
+       0x2ee32b8e, 0xd80331f7, 0x03233fec, 0x2e5a2c21,
+       0xd6333076, 0x01923ffb, 0x2dce2cb2, 0xd4722ee3,
+       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xfe6e3ffb,
+       0x2cb22dce, 0xd11d2b8e, 0xfcdd3fec, 0x2c212e5a,
+       0xcf8a29cd, 0xfb4b3fd3, 0x2b8e2ee3, 0xce0927fd,
+       0xf9bb3fb1, 0x2afa2f6b, 0xcc99261f, 0xf82b3f84,
+       0x2a652ff1, 0xcb3a2434, 0xf69c3f4e, 0x29cd3076,
+       0xc9ee223d, 0xf50f3f0e, 0x293430f8, 0xc8b52039,
+       0xf3843ec5, 0x28993179, 0xc78f1e2b, 0xf1fb3e71,
+       0x27fd31f7, 0xc67d1c12, 0xf0743e14, 0x275f3274,
+       0xc57e19ef, 0xeeef3dae, 0x26c032ee, 0xc49417c3,
+       0xed6c3d3e, 0x261f3367, 0xc3be158f, 0xebed3cc5,
+       0x257d33de, 0xc2fe1354, 0xea713c42, 0x24da3453,
+       0xc2521111, 0xe8f83bb6, 0x243434c6, 0xc1bc0ec9,
+       0xe7833b20, 0x238e3536, 0xc13b0c7c, 0xe6113a82,
+       0x22e635a5, 0xc0d10a2a, 0xe4a339da, 0x223d3612,
+       0xc07c07d5, 0xe33a392a, 0x2192367c, 0xc03d057d,
+       0xe1d53871, 0x20e736e5, 0xc0140323, 0xe07537af,
+       0x2039374b, 0xc00200c9, 0xdf1936e5, 0x1f8b37af,
+       0xc005fe6e, 0xddc33612, 0x1edc3811, 0xc01ffc14,
+       0xdc723536, 0x1e2b3871, 0xc04ff9bb, 0xdb263453,
+       0x1d7938cf, 0xc096f764, 0xd9e13367, 0x1cc6392a,
+       0xc0f2f50f, 0xd8a13274, 0x1c123983, 0xc164f2bf,
+       0xd7673179, 0x1b5d39da, 0xc1ecf074, 0xd6333076,
+       0x1aa63a2f, 0xc289ee2d, 0xd5062f6b, 0x19ef3a82,
+       0xc33bebed, 0xd3df2e5a, 0x19373ad2, 0xc403e9b4,
+       0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xd1a62c21,
+       0x17c33b6c, 0xc5d1e55a, 0xd0952afa, 0x17083bb6,
+       0xc6d6e33a, 0xcf8a29cd, 0x164c3bfd, 0xc7efe124,
+       0xce872899, 0x158f3c42, 0xc91bdf19, 0xcd8c275f,
+       0x14d13c84, 0xca5bdd1a, 0xcc99261f, 0x14133cc5,
+       0xcbaddb26, 0xcbad24da, 0x13543d02, 0xcd12d940,
+       0xcaca238e, 0x12943d3e, 0xce87d767, 0xc9ee223d,
+       0x11d33d77, 0xd00fd59b, 0xc91b20e7, 0x11113dae,
+       0xd1a6d3df, 0xc8511f8b, 0x104f3de2, 0xd34ed232,
+       0xc78f1e2b, 0x0f8c3e14, 0xd506d095, 0xc6d61cc6,
+       0x0ec93e44, 0xd6cccf08, 0xc6261b5d, 0x0e053e71,
+       0xd8a1cd8c, 0xc57e19ef, 0x0d413e9c, 0xda83cc22,
+       0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 0xc44a1708,
+       0x0bb63eeb, 0xde6ec984, 0xc3be158f, 0x0af13f0e,
+       0xe075c851, 0xc33b1413, 0x0a2a3f2f, 0xe287c731,
+       0xc2c21294, 0x09643f4e, 0xe4a3c626, 0xc2521111,
+       0x089c3f6a, 0xe6c9c52e, 0xc1ec0f8c, 0x07d53f84,
+       0xe8f8c44a, 0xc18f0e05, 0x070d3f9c, 0xeb2fc37c,
+       0xc13b0c7c, 0x06453fb1, 0xed6cc2c2, 0xc0f20af1,
+       0x057d3fc3, 0xefb1c21e, 0xc0b20964, 0x04b53fd3,
+       0xf1fbc18f, 0xc07c07d5, 0x03ec3fe1, 0xf44ac115,
+       0xc04f0645, 0x03233fec, 0xf69cc0b2, 0xc02d04b5,
+       0x025b3ff4, 0xf8f3c064, 0xc0140323, 0x01923ffb,
+       0xfb4bc02d, 0xc0050192, 0x00c93ffe, 0xfda5c00c
 };
 
 const int twidTab64[(4*6 + 16*6)/2] = {
-       0x40000000, 0x40000000, 0x40000000, 0x2d412d41, 
-       0x3b20187d, 0x187d3b20, 0x00004000, 0x2d412d41, 
-       0xd2bf2d41, 0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 
-
-       0x40000000, 0x40000000, 0x40000000, 0x3ec50c7c, 
-       0x3fb10645, 0x3d3e1294, 0x3b20187d, 0x3ec50c7c, 
-       0x3536238e, 0x3536238e, 0x3d3e1294, 0x28993179, 
-       0x2d412d41, 0x3b20187d, 0x187d3b20, 0x238e3536, 
-       0x38711e2b, 0x06453fb1, 0x187d3b20, 0x3536238e, 
-       0xf3843ec5, 0x0c7c3ec5, 0x31792899, 0xe1d53871, 
-       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xf3843ec5, 
-       0x28993179, 0xc78f1e2b, 0xe7833b20, 0x238e3536, 
-       0xc13b0c7c, 0xdc723536, 0x1e2b3871, 0xc04ff9bb, 
-       0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xcaca238e, 
-       0x12943d3e, 0xce87d767, 0xc4e0187d, 0x0c7c3ec5, 
-       0xdc72caca, 0xc13b0c7c, 0x06453fb1, 0xed6cc2c2 
+       0x40000000, 0x40000000, 0x40000000, 0x2d412d41,
+       0x3b20187d, 0x187d3b20, 0x00004000, 0x2d412d41,
+       0xd2bf2d41, 0xd2bf2d41, 0x187d3b20, 0xc4e0e783,
+
+       0x40000000, 0x40000000, 0x40000000, 0x3ec50c7c,
+       0x3fb10645, 0x3d3e1294, 0x3b20187d, 0x3ec50c7c,
+       0x3536238e, 0x3536238e, 0x3d3e1294, 0x28993179,
+       0x2d412d41, 0x3b20187d, 0x187d3b20, 0x238e3536,
+       0x38711e2b, 0x06453fb1, 0x187d3b20, 0x3536238e,
+       0xf3843ec5, 0x0c7c3ec5, 0x31792899, 0xe1d53871,
+       0x00004000, 0x2d412d41, 0xd2bf2d41, 0xf3843ec5,
+       0x28993179, 0xc78f1e2b, 0xe7833b20, 0x238e3536,
+       0xc13b0c7c, 0xdc723536, 0x1e2b3871, 0xc04ff9bb,
+       0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xcaca238e,
+       0x12943d3e, 0xce87d767, 0xc4e0187d, 0x0c7c3ec5,
+       0xdc72caca, 0xc13b0c7c, 0x06453fb1, 0xed6cc2c2
 };
 
 #elif defined ARMV7Neon
-/* 
- *  Q29 for 128 and 1024 
+/*
+ *  Q29 for 128 and 1024
  *
  * for (i = 0; i < num/4; i++) {
  *   angle = (i + 0.125) * M_PI / num;
  *   x = cos(angle) * (1 << 29);
  *   x = sin(angle) * (1 << 29);
- * 
+ *
  *   angle = (num/2 - 1 - i + 0.125) * M_PI / num;
  *   x = cos(angle) * (1 << 29);
  *   x = sin(angle) * (1 << 29);
@@ -353,313 +353,313 @@ const int twidTab64[(4*6 + 16*6)/2] = {
  */
 const int cossintab[128 + 1024] = {
        /* 128 */
-       0x1ffff621, 0x001921f9, 0x00afea69, 0x1ffe1c68, 0x1ffce09d, 0x00e22a7a, 0x0178dbaa, 0x1ff753bb, 
-       0x1ff4dc55, 0x01ab101c, 0x024192cf, 0x1feb9d25, 0x1fe7ea85, 0x0273b3e2, 0x0309f0e2, 0x1fdafa75, 
-       0x1fd60d2e, 0x033bf6dd, 0x03d1d700, 0x1fc56e3b, 0x1fbf470f, 0x0403ba2b, 0x04992653, 0x1faafbcb, 
-       0x1fa39bac, 0x04cadefe, 0x055fc022, 0x1f8ba738, 0x1f830f4a, 0x059146a1, 0x062585ca, 0x1f677557, 
-       0x1f5da6ed, 0x0656d27a, 0x06ea58cd, 0x1f3e6bbc, 0x1f33685a, 0x071b6415, 0x07ae1ad2, 0x1f1090bd, 
-       0x1f045a15, 0x07dedd20, 0x0870ada7, 0x1eddeb6a, 0x1ed0835f, 0x08a11f78, 0x0931f34d, 0x1ea68394, 
-       0x1e97ec36, 0x09620d27, 0x09f1cdf5, 0x1e6a61c5, 0x1e5a9d55, 0x0a21886e, 0x0ab02009, 0x1e298f44, 
-       0x1e18a030, 0x0adf73c6, 0x0b6ccc32, 0x1de4160f, 0x1dd1fef4, 0x0b9bb1e5, 0x0c27b555, 0x1d9a00de, 
-       0x1d86c484, 0x0c5625c3, 0x0ce0bea2, 0x1d4b5b1b, 0x1d36fc7c, 0x0d0eb2a2, 0x0d97cb8f, 0x1cf830e9, 
-       0x1ce2b328, 0x0dc53c0a, 0x0e4cbfe2, 0x1ca08f1a, 0x1c89f587, 0x0e79a5d7, 0x0eff7fb3, 0x1c448331, 
-       0x1c2cd149, 0x0f2bd437, 0x0fafef73, 0x1be41b61, 0x1bcb54cb, 0x0fdbabae, 0x105df3ec, 0x1b7f6687, 
-       0x1b658f15, 0x10891120, 0x11097249, 0x1b16742a, 0x1afb8fd9, 0x1133e9d0, 0x11b25017, 0x1aa9547a, 
-       0x1a8d676e, 0x11dc1b65, 0x1258734d, 0x1a38184a, 0x1a1b26d3, 0x12818bef, 0x12fbc24b, 0x19c2d111, 
-       0x19a4dfa4, 0x132421ec, 0x139c23e4, 0x194990e4, 0x192aa420, 0x13c3c44a, 0x14397f5b, 0x18cc6a75, 
-       0x18ac871f, 0x14605a69, 0x14d3bc6d, 0x184b7112, 0x182a9c14, 0x14f9cc26, 0x156ac352, 0x17c6b89d, 
+       0x1ffff621, 0x001921f9, 0x00afea69, 0x1ffe1c68, 0x1ffce09d, 0x00e22a7a, 0x0178dbaa, 0x1ff753bb,
+       0x1ff4dc55, 0x01ab101c, 0x024192cf, 0x1feb9d25, 0x1fe7ea85, 0x0273b3e2, 0x0309f0e2, 0x1fdafa75,
+       0x1fd60d2e, 0x033bf6dd, 0x03d1d700, 0x1fc56e3b, 0x1fbf470f, 0x0403ba2b, 0x04992653, 0x1faafbcb,
+       0x1fa39bac, 0x04cadefe, 0x055fc022, 0x1f8ba738, 0x1f830f4a, 0x059146a1, 0x062585ca, 0x1f677557,
+       0x1f5da6ed, 0x0656d27a, 0x06ea58cd, 0x1f3e6bbc, 0x1f33685a, 0x071b6415, 0x07ae1ad2, 0x1f1090bd,
+       0x1f045a15, 0x07dedd20, 0x0870ada7, 0x1eddeb6a, 0x1ed0835f, 0x08a11f78, 0x0931f34d, 0x1ea68394,
+       0x1e97ec36, 0x09620d27, 0x09f1cdf5, 0x1e6a61c5, 0x1e5a9d55, 0x0a21886e, 0x0ab02009, 0x1e298f44,
+       0x1e18a030, 0x0adf73c6, 0x0b6ccc32, 0x1de4160f, 0x1dd1fef4, 0x0b9bb1e5, 0x0c27b555, 0x1d9a00de,
+       0x1d86c484, 0x0c5625c3, 0x0ce0bea2, 0x1d4b5b1b, 0x1d36fc7c, 0x0d0eb2a2, 0x0d97cb8f, 0x1cf830e9,
+       0x1ce2b328, 0x0dc53c0a, 0x0e4cbfe2, 0x1ca08f1a, 0x1c89f587, 0x0e79a5d7, 0x0eff7fb3, 0x1c448331,
+       0x1c2cd149, 0x0f2bd437, 0x0fafef73, 0x1be41b61, 0x1bcb54cb, 0x0fdbabae, 0x105df3ec, 0x1b7f6687,
+       0x1b658f15, 0x10891120, 0x11097249, 0x1b16742a, 0x1afb8fd9, 0x1133e9d0, 0x11b25017, 0x1aa9547a,
+       0x1a8d676e, 0x11dc1b65, 0x1258734d, 0x1a38184a, 0x1a1b26d3, 0x12818bef, 0x12fbc24b, 0x19c2d111,
+       0x19a4dfa4, 0x132421ec, 0x139c23e4, 0x194990e4, 0x192aa420, 0x13c3c44a, 0x14397f5b, 0x18cc6a75,
+       0x18ac871f, 0x14605a69, 0x14d3bc6d, 0x184b7112, 0x182a9c14, 0x14f9cc26, 0x156ac352, 0x17c6b89d,
        0x17a4f708, 0x159001d6, 0x15fe7cbe, 0x173e558e, 0x171bac96, 0x1622e450, 0x168ed1eb, 0x16b25ced,
        /* 1024 */
-       0x1fffffd9, 0x0003243f, 0x0015fdba, 0x1ffff872, 0x1ffff382, 0x001c4637, 0x002f1fa6, 0x1fffdd4d, 
-       0x1fffd36f, 0x0035681d, 0x00484175, 0x1fffae6c, 0x1fff9f9e, 0x004e89e3, 0x00616318, 0x1fff6bce, 
-       0x1fff5811, 0x0067ab77, 0x007a847e, 0x1fff1572, 0x1ffefcc6, 0x0080cccc, 0x0093a599, 0x1ffeab5b, 
-       0x1ffe8dbf, 0x0099edd2, 0x00acc658, 0x1ffe2d86, 0x1ffe0afc, 0x00b30e78, 0x00c5e6ad, 0x1ffd9bf6, 
-       0x1ffd747c, 0x00cc2eb0, 0x00df0688, 0x1ffcf6aa, 0x1ffcca41, 0x00e54e6a, 0x00f825da, 0x1ffc3da2, 
-       0x1ffc0c4b, 0x00fe6d97, 0x01114492, 0x1ffb70e0, 0x1ffb3a9a, 0x01178c27, 0x012a62a2, 0x1ffa9063, 
-       0x1ffa552e, 0x0130aa0a, 0x01437ffa, 0x1ff99c2c, 0x1ff95c09, 0x0149c731, 0x015c9c8a, 0x1ff8943c, 
-       0x1ff84f2b, 0x0162e38d, 0x0175b843, 0x1ff77893, 0x1ff72e94, 0x017bff0e, 0x018ed316, 0x1ff64932, 
-       0x1ff5fa46, 0x019519a5, 0x01a7ecf2, 0x1ff5061b, 0x1ff4b240, 0x01ae3341, 0x01c105c9, 0x1ff3af4c, 
-       0x1ff35684, 0x01c74bd5, 0x01da1d8c, 0x1ff244c8, 0x1ff1e713, 0x01e0634f, 0x01f33429, 0x1ff0c68f, 
-       0x1ff063ed, 0x01f979a1, 0x020c4993, 0x1fef34a3, 0x1feecd14, 0x02128ebb, 0x02255db9, 0x1fed8f03, 
-       0x1fed2287, 0x022ba28f, 0x023e708d, 0x1febd5b2, 0x1feb644a, 0x0244b50b, 0x025781fe, 0x1fea08b0, 
-       0x1fe9925c, 0x025dc621, 0x027091fd, 0x1fe827fe, 0x1fe7acbe, 0x0276d5c1, 0x0289a07b, 0x1fe6339d, 
-       0x1fe5b372, 0x028fe3dd, 0x02a2ad69, 0x1fe42b90, 0x1fe3a679, 0x02a8f063, 0x02bbb8b6, 0x1fe20fd6, 
-       0x1fe185d5, 0x02c1fb46, 0x02d4c253, 0x1fdfe071, 0x1fdf5186, 0x02db0475, 0x02edca32, 0x1fdd9d64, 
-       0x1fdd098e, 0x02f40be2, 0x0306d042, 0x1fdb46ae, 0x1fdaadee, 0x030d117c, 0x031fd474, 0x1fd8dc51, 
-       0x1fd83ea8, 0x03261534, 0x0338d6b8, 0x1fd65e4f, 0x1fd5bbbd, 0x033f16fb, 0x0351d700, 0x1fd3ccaa, 
-       0x1fd32530, 0x035816c1, 0x036ad53c, 0x1fd12763, 0x1fd07b00, 0x03711477, 0x0383d15c, 0x1fce6e7c, 
-       0x1fcdbd31, 0x038a100e, 0x039ccb51, 0x1fcba1f5, 0x1fcaebc3, 0x03a30975, 0x03b5c30b, 0x1fc8c1d2, 
-       0x1fc806b9, 0x03bc009f, 0x03ceb87c, 0x1fc5ce14, 0x1fc50e14, 0x03d4f57a, 0x03e7ab93, 0x1fc2c6bd, 
-       0x1fc201d7, 0x03ede7f9, 0x04009c42, 0x1fbfabcd, 0x1fbee202, 0x0406d80b, 0x04198a78, 0x1fbc7d49, 
-       0x1fbbae99, 0x041fc5a1, 0x04327628, 0x1fb93b31, 0x1fb8679c, 0x0438b0ac, 0x044b5f40, 0x1fb5e587, 
-       0x1fb50d0e, 0x0451991d, 0x046445b2, 0x1fb27c4e, 0x1fb19ef1, 0x046a7ee3, 0x047d296f, 0x1faeff87, 
-       0x1fae1d47, 0x048361f0, 0x04960a67, 0x1fab6f35, 0x1faa8813, 0x049c4235, 0x04aee88b, 0x1fa7cb5a, 
-       0x1fa6df56, 0x04b51fa1, 0x04c7c3cb, 0x1fa413f8, 0x1fa32313, 0x04cdfa26, 0x04e09c18, 0x1fa04912, 
-       0x1f9f534c, 0x04e6d1b4, 0x04f97163, 0x1f9c6aa9, 0x1f9b7003, 0x04ffa63c, 0x0512439d, 0x1f9878c1, 
-       0x1f97793b, 0x051877af, 0x052b12b6, 0x1f94735b, 0x1f936ef6, 0x053145fd, 0x0543de9e, 0x1f905a7a, 
-       0x1f8f5137, 0x054a1117, 0x055ca748, 0x1f8c2e21, 0x1f8b2000, 0x0562d8ee, 0x05756ca2, 0x1f87ee52, 
-       0x1f86db55, 0x057b9d73, 0x058e2e9f, 0x1f839b10, 0x1f828336, 0x05945e95, 0x05a6ed2e, 0x1f7f345e, 
-       0x1f7e17a8, 0x05ad1c47, 0x05bfa840, 0x1f7aba3e, 0x1f7998ad, 0x05c5d678, 0x05d85fc7, 0x1f762cb2, 
-       0x1f750647, 0x05de8d19, 0x05f113b3, 0x1f718bbf, 0x1f70607a, 0x05f7401c, 0x0609c3f5, 0x1f6cd766, 
-       0x1f6ba748, 0x060fef71, 0x0622707d, 0x1f680fab, 0x1f66dab5, 0x06289b08, 0x063b193c, 0x1f633490, 
-       0x1f61fac3, 0x064142d3, 0x0653be23, 0x1f5e4619, 0x1f5d0775, 0x0659e6c2, 0x066c5f24, 0x1f594448, 
-       0x1f5800ce, 0x067286c6, 0x0684fc2e, 0x1f542f21, 0x1f52e6d2, 0x068b22d0, 0x069d9532, 0x1f4f06a6, 
-       0x1f4db983, 0x06a3bad0, 0x06b62a22, 0x1f49cadc, 0x1f4878e5, 0x06bc4eb9, 0x06cebaee, 0x1f447bc4, 
-       0x1f4324fb, 0x06d4de79, 0x06e74786, 0x1f3f1963, 0x1f3dbdc8, 0x06ed6a03, 0x06ffcfdd, 0x1f39a3bc, 
-       0x1f384350, 0x0705f147, 0x071853e3, 0x1f341ad2, 0x1f32b595, 0x071e7436, 0x0730d388, 0x1f2e7ea9, 
-       0x1f2d149d, 0x0736f2c0, 0x07494ebd, 0x1f28cf43, 0x1f276069, 0x074f6cd7, 0x0761c574, 0x1f230ca5, 
-       0x1f2198fd, 0x0767e26c, 0x077a379d, 0x1f1d36d2, 0x1f1bbe5d, 0x07805370, 0x0792a52a, 0x1f174dce, 
-       0x1f15d08d, 0x0798bfd3, 0x07ab0e0a, 0x1f11519c, 0x1f0fcf91, 0x07b12786, 0x07c37230, 0x1f0b4240, 
-       0x1f09bb6b, 0x07c98a7a, 0x07dbd18c, 0x1f051fbe, 0x1f03941f, 0x07e1e8a1, 0x07f42c0e, 0x1efeea19, 
-       0x1efd59b3, 0x07fa41eb, 0x080c81a9, 0x1ef8a155, 0x1ef70c28, 0x0812964a, 0x0824d24d, 0x1ef24577, 
-       0x1ef0ab84, 0x082ae5ad, 0x083d1dea, 0x1eebd682, 0x1eea37ca, 0x08433007, 0x08556473, 0x1ee5547a, 
-       0x1ee3b0fe, 0x085b7548, 0x086da5d8, 0x1edebf64, 0x1edd1724, 0x0873b562, 0x0885e209, 0x1ed81742, 
-       0x1ed66a41, 0x088bf044, 0x089e18f9, 0x1ed15c1a, 0x1ecfaa57, 0x08a425e1, 0x08b64a98, 0x1eca8def, 
-       0x1ec8d76c, 0x08bc562a, 0x08ce76d8, 0x1ec3acc6, 0x1ec1f184, 0x08d4810f, 0x08e69da8, 0x1ebcb8a3, 
-       0x1ebaf8a3, 0x08eca681, 0x08febefb, 0x1eb5b18a, 0x1eb3eccd, 0x0904c673, 0x0916dac2, 0x1eae977f, 
-       0x1eacce07, 0x091ce0d4, 0x092ef0ed, 0x1ea76a87, 0x1ea59c55, 0x0934f596, 0x0947016e, 0x1ea02aa7, 
-       0x1e9e57bb, 0x094d04aa, 0x095f0c36, 0x1e98d7e2, 0x1e97003e, 0x09650e01, 0x09771136, 0x1e91723e, 
-       0x1e8f95e3, 0x097d118d, 0x098f1060, 0x1e89f9bf, 0x1e8818ad, 0x09950f3f, 0x09a709a4, 0x1e826e69, 
-       0x1e8088a2, 0x09ad0707, 0x09befcf4, 0x1e7ad041, 0x1e78e5c7, 0x09c4f8d8, 0x09d6ea40, 0x1e731f4c, 
-       0x1e71301f, 0x09dce4a1, 0x09eed17b, 0x1e6b5b8f, 0x1e6967b1, 0x09f4ca56, 0x0a06b296, 0x1e63850e, 
-       0x1e618c80, 0x0a0ca9e6, 0x0a1e8d81, 0x1e5b9bce, 0x1e599e91, 0x0a248343, 0x0a36622e, 0x1e539fd4, 
-       0x1e519dea, 0x0a3c565e, 0x0a4e308f, 0x1e4b9126, 0x1e498a8e, 0x0a542329, 0x0a65f894, 0x1e436fc7, 
-       0x1e416485, 0x0a6be995, 0x0a7dba2f, 0x1e3b3bbd, 0x1e392bd1, 0x0a83a993, 0x0a957551, 0x1e32f50e, 
-       0x1e30e079, 0x0a9b6315, 0x0aad29ec, 0x1e2a9bbd, 0x1e288281, 0x0ab3160c, 0x0ac4d7f1, 0x1e222fd1, 
-       0x1e2011ee, 0x0acac26a, 0x0adc7f52, 0x1e19b14f, 0x1e178ec7, 0x0ae2681f, 0x0af41fff, 0x1e11203b, 
-       0x1e0ef910, 0x0afa071d, 0x0b0bb9eb, 0x1e087c9b, 0x1e0650ce, 0x0b119f56, 0x0b234d07, 0x1dffc674, 
-       0x1dfd9606, 0x0b2930bb, 0x0b3ad943, 0x1df6fdcc, 0x1df4c8bf, 0x0b40bb3e, 0x0b525e92, 0x1dee22a9, 
-       0x1debe8fd, 0x0b583ecf, 0x0b69dce6, 0x1de5350f, 0x1de2f6c6, 0x0b6fbb62, 0x0b81542f, 0x1ddc3504, 
-       0x1dd9f220, 0x0b8730e6, 0x0b98c45f, 0x1dd3228e, 0x1dd0db10, 0x0b9e9f4d, 0x0bb02d68, 0x1dc9fdb2, 
-       0x1dc7b19b, 0x0bb6068a, 0x0bc78f3b, 0x1dc0c676, 0x1dbe75c8, 0x0bcd668e, 0x0bdee9ca, 0x1db77cdf, 
-       0x1db5279c, 0x0be4bf4a, 0x0bf63d07, 0x1dae20f4, 0x1dabc71d, 0x0bfc10af, 0x0c0d88e2, 0x1da4b2ba, 
-       0x1da25450, 0x0c135ab0, 0x0c24cd4e, 0x1d9b3237, 0x1d98cf3b, 0x0c2a9d3e, 0x0c3c0a3d, 0x1d919f70, 
-       0x1d8f37e5, 0x0c41d84b, 0x0c533fa0, 0x1d87fa6d, 0x1d858e53, 0x0c590bc9, 0x0c6a6d68, 0x1d7e4332, 
-       0x1d7bd28b, 0x0c7037a8, 0x0c819388, 0x1d7479c5, 0x1d720493, 0x0c875bdb, 0x0c98b1f0, 0x1d6a9e2e, 
-       0x1d682472, 0x0c9e7854, 0x0cafc894, 0x1d60b070, 0x1d5e322c, 0x0cb58d04, 0x0cc6d764, 0x1d56b094, 
-       0x1d542dc9, 0x0ccc99de, 0x0cddde53, 0x1d4c9e9f, 0x1d4a174f, 0x0ce39ed2, 0x0cf4dd52, 0x1d427a97, 
-       0x1d3feec3, 0x0cfa9bd2, 0x0d0bd452, 0x1d384483, 0x1d35b42d, 0x0d1190d1, 0x0d22c347, 0x1d2dfc68, 
-       0x1d2b6791, 0x0d287dc1, 0x0d39aa21, 0x1d23a24e, 0x1d2108f8, 0x0d3f6292, 0x0d5088d3, 0x1d19363a, 
-       0x1d169867, 0x0d563f38, 0x0d675f4e, 0x1d0eb833, 0x1d0c15e4, 0x0d6d13a3, 0x0d7e2d85, 0x1d04283f, 
-       0x1d018176, 0x0d83dfc6, 0x0d94f369, 0x1cf98666, 0x1cf6db24, 0x0d9aa393, 0x0dabb0ec, 0x1ceed2ad, 
-       0x1cec22f4, 0x0db15efc, 0x0dc26600, 0x1ce40d1b, 0x1ce158ed, 0x0dc811f3, 0x0dd91298, 0x1cd935b7, 
-       0x1cd67d15, 0x0ddebc69, 0x0defb6a5, 0x1cce4c87, 0x1ccb8f74, 0x0df55e51, 0x0e065219, 0x1cc35192, 
-       0x1cc0900f, 0x0e0bf79c, 0x0e1ce4e6, 0x1cb844df, 0x1cb57eee, 0x0e22883e, 0x0e336eff, 0x1cad2675, 
-       0x1caa5c17, 0x0e391027, 0x0e49f055, 0x1ca1f65b, 0x1c9f2792, 0x0e4f8f4b, 0x0e6068db, 0x1c96b497, 
-       0x1c93e165, 0x0e66059a, 0x0e76d883, 0x1c8b6131, 0x1c888997, 0x0e7c7308, 0x0e8d3f3e, 0x1c7ffc2f, 
-       0x1c7d202f, 0x0e92d787, 0x0ea39d00, 0x1c748599, 0x1c71a535, 0x0ea93308, 0x0eb9f1ba, 0x1c68fd75, 
-       0x1c6618ae, 0x0ebf857d, 0x0ed03d5e, 0x1c5d63ca, 0x1c5a7aa4, 0x0ed5ceda, 0x0ee67fdf, 0x1c51b8a1, 
-       0x1c4ecb1c, 0x0eec0f10, 0x0efcb92f, 0x1c45fc00, 0x1c430a1d, 0x0f024612, 0x0f12e941, 0x1c3a2ded, 
-       0x1c3737b0, 0x0f1873d2, 0x0f291006, 0x1c2e4e72, 0x1c2b53db, 0x0f2e9842, 0x0f3f2d71, 0x1c225d94, 
-       0x1c1f5ea6, 0x0f44b354, 0x0f554175, 0x1c165b5b, 0x1c135818, 0x0f5ac4fc, 0x0f6b4c03, 0x1c0a47cf, 
-       0x1c074038, 0x0f70cd2a, 0x0f814d0e, 0x1bfe22f8, 0x1bfb170f, 0x0f86cbd3, 0x0f974489, 0x1bf1ecdb, 
-       0x1beedca2, 0x0f9cc0e7, 0x0fad3265, 0x1be5a582, 0x1be290fb, 0x0fb2ac5a, 0x0fc31697, 0x1bd94cf4, 
-       0x1bd63421, 0x0fc88e1e, 0x0fd8f10f, 0x1bcce337, 0x1bc9c61a, 0x0fde6626, 0x0feec1c0, 0x1bc06855, 
-       0x1bbd46f0, 0x0ff43464, 0x1004889e, 0x1bb3dc55, 0x1bb0b6a9, 0x1009f8cb, 0x101a459a, 0x1ba73f3d, 
-       0x1ba4154d, 0x101fb34d, 0x102ff8a8, 0x1b9a9117, 0x1b9762e4, 0x103563dc, 0x1045a1b9, 0x1b8dd1ea, 
-       0x1b8a9f77, 0x104b0a6c, 0x105b40c1, 0x1b8101be, 0x1b7dcb0c, 0x1060a6ef, 0x1070d5b1, 0x1b74209b, 
-       0x1b70e5ac, 0x10763958, 0x1086607e, 0x1b672e88, 0x1b63ef5f, 0x108bc19a, 0x109be119, 0x1b5a2b8e, 
-       0x1b56e82c, 0x10a13fa6, 0x10b15775, 0x1b4d17b4, 0x1b49d01c, 0x10b6b371, 0x10c6c385, 0x1b3ff304, 
-       0x1b3ca737, 0x10cc1cec, 0x10dc253c, 0x1b32bd84, 0x1b2f6d85, 0x10e17c0b, 0x10f17c8d, 0x1b25773d, 
-       0x1b22230e, 0x10f6d0c0, 0x1106c96a, 0x1b182038, 0x1b14c7da, 0x110c1afe, 0x111c0bc6, 0x1b0ab87c, 
-       0x1b075bf1, 0x11215ab8, 0x11314395, 0x1afd4012, 0x1af9df5d, 0x11368fe1, 0x114670c8, 0x1aefb702, 
-       0x1aec5225, 0x114bba6b, 0x115b9354, 0x1ae21d54, 0x1adeb451, 0x1160da4b, 0x1170ab2a, 0x1ad47311, 
-       0x1ad105e9, 0x1175ef72, 0x1185b83f, 0x1ac6b841, 0x1ac346f8, 0x118af9d4, 0x119aba84, 0x1ab8ecec, 
-       0x1ab57784, 0x119ff964, 0x11afb1ee, 0x1aab111c, 0x1aa79796, 0x11b4ee14, 0x11c49e6f, 0x1a9d24d9, 
-       0x1a99a737, 0x11c9d7d9, 0x11d97ff9, 0x1a8f282b, 0x1a8ba670, 0x11deb6a4, 0x11ee5682, 0x1a811b1b, 
-       0x1a7d9549, 0x11f38a6a, 0x120321fa, 0x1a72fdb2, 0x1a6f73ca, 0x1208531c, 0x1217e256, 0x1a64cff8, 
-       0x1a6141fd, 0x121d10af, 0x122c9789, 0x1a5691f5, 0x1a52ffeb, 0x1231c316, 0x12414186, 0x1a4843b4, 
-       0x1a44ad9b, 0x12466a44, 0x1255e041, 0x1a39e53d, 0x1a364b17, 0x125b062b, 0x126a73ac, 0x1a2b7698, 
-       0x1a27d868, 0x126f96c1, 0x127efbbb, 0x1a1cf7ce, 0x1a195597, 0x12841bf6, 0x12937861, 0x1a0e68e9, 
-       0x1a0ac2ac, 0x129895c0, 0x12a7e991, 0x19ffc9f1, 0x19fc1fb1, 0x12ad0412, 0x12bc4f40, 0x19f11af0, 
-       0x19ed6caf, 0x12c166de, 0x12d0a960, 0x19e25bee, 0x19dea9ae, 0x12d5be18, 0x12e4f7e5, 0x19d38cf4, 
-       0x19cfd6b8, 0x12ea09b4, 0x12f93ac2, 0x19c4ae0c, 0x19c0f3d6, 0x12fe49a6, 0x130d71eb, 0x19b5bf3f, 
-       0x19b20111, 0x13127de0, 0x13219d53, 0x19a6c096, 0x19a2fe73, 0x1326a656, 0x1335bcef, 0x1997b21b, 
-       0x1993ec04, 0x133ac2fc, 0x1349d0b0, 0x198893d6, 0x1984c9ce, 0x134ed3c5, 0x135dd88c, 0x197965d0, 
-       0x197597da, 0x1362d8a6, 0x1371d476, 0x196a2815, 0x19665632, 0x1376d191, 0x1385c461, 0x195adaab, 
-       0x195704df, 0x138abe7b, 0x1399a841, 0x194b7d9e, 0x1947a3eb, 0x139e9f56, 0x13ad800a, 0x193c10f7, 
-       0x1938335e, 0x13b27417, 0x13c14bb0, 0x192c94bf, 0x1928b343, 0x13c63cb2, 0x13d50b26, 0x191d08ff, 
-       0x191923a3, 0x13d9f91b, 0x13e8be60, 0x190d6dc1, 0x19098488, 0x13eda944, 0x13fc6553, 0x18fdc310, 
-       0x18f9d5fa, 0x14014d23, 0x140ffff1, 0x18ee08f4, 0x18ea1805, 0x1414e4aa, 0x14238e2f, 0x18de3f77, 
-       0x18da4ab2, 0x14286fce, 0x14371001, 0x18ce66a3, 0x18ca6e0a, 0x143bee83, 0x144a855b, 0x18be7e82, 
-       0x18ba8217, 0x144f60bd, 0x145dee30, 0x18ae871e, 0x18aa86e3, 0x1462c670, 0x14714a76, 0x189e8080, 
-       0x189a7c78, 0x14761f8f, 0x14849a1f, 0x188e6ab2, 0x188a62e0, 0x14896c0f, 0x1497dd20, 0x187e45be, 
-       0x187a3a25, 0x149cabe4, 0x14ab136d, 0x186e11af, 0x186a0250, 0x14afdf03, 0x14be3cfa, 0x185dce8e, 
-       0x1859bb6c, 0x14c3055e, 0x14d159bc, 0x184d7c65, 0x18496583, 0x14d61eeb, 0x14e469a6, 0x183d1b3e, 
-       0x1839009e, 0x14e92b9e, 0x14f76cad, 0x182cab24, 0x18288cc8, 0x14fc2b6a, 0x150a62c6, 0x181c2c20, 
-       0x18180a0c, 0x150f1e45, 0x151d4be3, 0x180b9e3d, 0x18077873, 0x15220422, 0x153027fb, 0x17fb0185, 
-       0x17f6d807, 0x1534dcf6, 0x1542f700, 0x17ea5602, 0x17e628d3, 0x1547a8b5, 0x1555b8e8, 0x17d99bbe, 
-       0x17d56ae0, 0x155a6754, 0x15686da7, 0x17c8d2c4, 0x17c49e3b, 0x156d18c7, 0x157b1532, 0x17b7fb1f, 
-       0x17b3c2ec, 0x157fbd03, 0x158daf7c, 0x17a714d7, 0x17a2d8fe, 0x159253fb, 0x15a03c7a, 0x17961ff9, 
-       0x1791e07b, 0x15a4dda5, 0x15b2bc22, 0x17851c8e, 0x1780d96f, 0x15b759f5, 0x15c52e67, 0x17740aa1, 
-       0x176fc3e3, 0x15c9c8e0, 0x15d7933f, 0x1762ea3d, 0x175e9fe2, 0x15dc2a5a, 0x15e9ea9d, 0x1751bb6b, 
-       0x174d6d77, 0x15ee7e58, 0x15fc3477, 0x17407e37, 0x173c2cac, 0x1600c4cf, 0x160e70c1, 0x172f32ab, 
-       0x172add8c, 0x1612fdb3, 0x16209f70, 0x171dd8d2, 0x17198021, 0x162528fa, 0x1632c078, 0x170c70b7, 
-       0x17081477, 0x16374697, 0x1644d3d0, 0x16fafa64, 0x16f69a97, 0x16495680, 0x1656d96a, 0x16e975e4, 
-       0x16e5128e, 0x165b58aa, 0x1668d13e, 0x16d7e341, 0x16d37c65, 0x166d4d0a, 0x167abb3e, 0x16c64288, 
+       0x1fffffd9, 0x0003243f, 0x0015fdba, 0x1ffff872, 0x1ffff382, 0x001c4637, 0x002f1fa6, 0x1fffdd4d,
+       0x1fffd36f, 0x0035681d, 0x00484175, 0x1fffae6c, 0x1fff9f9e, 0x004e89e3, 0x00616318, 0x1fff6bce,
+       0x1fff5811, 0x0067ab77, 0x007a847e, 0x1fff1572, 0x1ffefcc6, 0x0080cccc, 0x0093a599, 0x1ffeab5b,
+       0x1ffe8dbf, 0x0099edd2, 0x00acc658, 0x1ffe2d86, 0x1ffe0afc, 0x00b30e78, 0x00c5e6ad, 0x1ffd9bf6,
+       0x1ffd747c, 0x00cc2eb0, 0x00df0688, 0x1ffcf6aa, 0x1ffcca41, 0x00e54e6a, 0x00f825da, 0x1ffc3da2,
+       0x1ffc0c4b, 0x00fe6d97, 0x01114492, 0x1ffb70e0, 0x1ffb3a9a, 0x01178c27, 0x012a62a2, 0x1ffa9063,
+       0x1ffa552e, 0x0130aa0a, 0x01437ffa, 0x1ff99c2c, 0x1ff95c09, 0x0149c731, 0x015c9c8a, 0x1ff8943c,
+       0x1ff84f2b, 0x0162e38d, 0x0175b843, 0x1ff77893, 0x1ff72e94, 0x017bff0e, 0x018ed316, 0x1ff64932,
+       0x1ff5fa46, 0x019519a5, 0x01a7ecf2, 0x1ff5061b, 0x1ff4b240, 0x01ae3341, 0x01c105c9, 0x1ff3af4c,
+       0x1ff35684, 0x01c74bd5, 0x01da1d8c, 0x1ff244c8, 0x1ff1e713, 0x01e0634f, 0x01f33429, 0x1ff0c68f,
+       0x1ff063ed, 0x01f979a1, 0x020c4993, 0x1fef34a3, 0x1feecd14, 0x02128ebb, 0x02255db9, 0x1fed8f03,
+       0x1fed2287, 0x022ba28f, 0x023e708d, 0x1febd5b2, 0x1feb644a, 0x0244b50b, 0x025781fe, 0x1fea08b0,
+       0x1fe9925c, 0x025dc621, 0x027091fd, 0x1fe827fe, 0x1fe7acbe, 0x0276d5c1, 0x0289a07b, 0x1fe6339d,
+       0x1fe5b372, 0x028fe3dd, 0x02a2ad69, 0x1fe42b90, 0x1fe3a679, 0x02a8f063, 0x02bbb8b6, 0x1fe20fd6,
+       0x1fe185d5, 0x02c1fb46, 0x02d4c253, 0x1fdfe071, 0x1fdf5186, 0x02db0475, 0x02edca32, 0x1fdd9d64,
+       0x1fdd098e, 0x02f40be2, 0x0306d042, 0x1fdb46ae, 0x1fdaadee, 0x030d117c, 0x031fd474, 0x1fd8dc51,
+       0x1fd83ea8, 0x03261534, 0x0338d6b8, 0x1fd65e4f, 0x1fd5bbbd, 0x033f16fb, 0x0351d700, 0x1fd3ccaa,
+       0x1fd32530, 0x035816c1, 0x036ad53c, 0x1fd12763, 0x1fd07b00, 0x03711477, 0x0383d15c, 0x1fce6e7c,
+       0x1fcdbd31, 0x038a100e, 0x039ccb51, 0x1fcba1f5, 0x1fcaebc3, 0x03a30975, 0x03b5c30b, 0x1fc8c1d2,
+       0x1fc806b9, 0x03bc009f, 0x03ceb87c, 0x1fc5ce14, 0x1fc50e14, 0x03d4f57a, 0x03e7ab93, 0x1fc2c6bd,
+       0x1fc201d7, 0x03ede7f9, 0x04009c42, 0x1fbfabcd, 0x1fbee202, 0x0406d80b, 0x04198a78, 0x1fbc7d49,
+       0x1fbbae99, 0x041fc5a1, 0x04327628, 0x1fb93b31, 0x1fb8679c, 0x0438b0ac, 0x044b5f40, 0x1fb5e587,
+       0x1fb50d0e, 0x0451991d, 0x046445b2, 0x1fb27c4e, 0x1fb19ef1, 0x046a7ee3, 0x047d296f, 0x1faeff87,
+       0x1fae1d47, 0x048361f0, 0x04960a67, 0x1fab6f35, 0x1faa8813, 0x049c4235, 0x04aee88b, 0x1fa7cb5a,
+       0x1fa6df56, 0x04b51fa1, 0x04c7c3cb, 0x1fa413f8, 0x1fa32313, 0x04cdfa26, 0x04e09c18, 0x1fa04912,
+       0x1f9f534c, 0x04e6d1b4, 0x04f97163, 0x1f9c6aa9, 0x1f9b7003, 0x04ffa63c, 0x0512439d, 0x1f9878c1,
+       0x1f97793b, 0x051877af, 0x052b12b6, 0x1f94735b, 0x1f936ef6, 0x053145fd, 0x0543de9e, 0x1f905a7a,
+       0x1f8f5137, 0x054a1117, 0x055ca748, 0x1f8c2e21, 0x1f8b2000, 0x0562d8ee, 0x05756ca2, 0x1f87ee52,
+       0x1f86db55, 0x057b9d73, 0x058e2e9f, 0x1f839b10, 0x1f828336, 0x05945e95, 0x05a6ed2e, 0x1f7f345e,
+       0x1f7e17a8, 0x05ad1c47, 0x05bfa840, 0x1f7aba3e, 0x1f7998ad, 0x05c5d678, 0x05d85fc7, 0x1f762cb2,
+       0x1f750647, 0x05de8d19, 0x05f113b3, 0x1f718bbf, 0x1f70607a, 0x05f7401c, 0x0609c3f5, 0x1f6cd766,
+       0x1f6ba748, 0x060fef71, 0x0622707d, 0x1f680fab, 0x1f66dab5, 0x06289b08, 0x063b193c, 0x1f633490,
+       0x1f61fac3, 0x064142d3, 0x0653be23, 0x1f5e4619, 0x1f5d0775, 0x0659e6c2, 0x066c5f24, 0x1f594448,
+       0x1f5800ce, 0x067286c6, 0x0684fc2e, 0x1f542f21, 0x1f52e6d2, 0x068b22d0, 0x069d9532, 0x1f4f06a6,
+       0x1f4db983, 0x06a3bad0, 0x06b62a22, 0x1f49cadc, 0x1f4878e5, 0x06bc4eb9, 0x06cebaee, 0x1f447bc4,
+       0x1f4324fb, 0x06d4de79, 0x06e74786, 0x1f3f1963, 0x1f3dbdc8, 0x06ed6a03, 0x06ffcfdd, 0x1f39a3bc,
+       0x1f384350, 0x0705f147, 0x071853e3, 0x1f341ad2, 0x1f32b595, 0x071e7436, 0x0730d388, 0x1f2e7ea9,
+       0x1f2d149d, 0x0736f2c0, 0x07494ebd, 0x1f28cf43, 0x1f276069, 0x074f6cd7, 0x0761c574, 0x1f230ca5,
+       0x1f2198fd, 0x0767e26c, 0x077a379d, 0x1f1d36d2, 0x1f1bbe5d, 0x07805370, 0x0792a52a, 0x1f174dce,
+       0x1f15d08d, 0x0798bfd3, 0x07ab0e0a, 0x1f11519c, 0x1f0fcf91, 0x07b12786, 0x07c37230, 0x1f0b4240,
+       0x1f09bb6b, 0x07c98a7a, 0x07dbd18c, 0x1f051fbe, 0x1f03941f, 0x07e1e8a1, 0x07f42c0e, 0x1efeea19,
+       0x1efd59b3, 0x07fa41eb, 0x080c81a9, 0x1ef8a155, 0x1ef70c28, 0x0812964a, 0x0824d24d, 0x1ef24577,
+       0x1ef0ab84, 0x082ae5ad, 0x083d1dea, 0x1eebd682, 0x1eea37ca, 0x08433007, 0x08556473, 0x1ee5547a,
+       0x1ee3b0fe, 0x085b7548, 0x086da5d8, 0x1edebf64, 0x1edd1724, 0x0873b562, 0x0885e209, 0x1ed81742,
+       0x1ed66a41, 0x088bf044, 0x089e18f9, 0x1ed15c1a, 0x1ecfaa57, 0x08a425e1, 0x08b64a98, 0x1eca8def,
+       0x1ec8d76c, 0x08bc562a, 0x08ce76d8, 0x1ec3acc6, 0x1ec1f184, 0x08d4810f, 0x08e69da8, 0x1ebcb8a3,
+       0x1ebaf8a3, 0x08eca681, 0x08febefb, 0x1eb5b18a, 0x1eb3eccd, 0x0904c673, 0x0916dac2, 0x1eae977f,
+       0x1eacce07, 0x091ce0d4, 0x092ef0ed, 0x1ea76a87, 0x1ea59c55, 0x0934f596, 0x0947016e, 0x1ea02aa7,
+       0x1e9e57bb, 0x094d04aa, 0x095f0c36, 0x1e98d7e2, 0x1e97003e, 0x09650e01, 0x09771136, 0x1e91723e,
+       0x1e8f95e3, 0x097d118d, 0x098f1060, 0x1e89f9bf, 0x1e8818ad, 0x09950f3f, 0x09a709a4, 0x1e826e69,
+       0x1e8088a2, 0x09ad0707, 0x09befcf4, 0x1e7ad041, 0x1e78e5c7, 0x09c4f8d8, 0x09d6ea40, 0x1e731f4c,
+       0x1e71301f, 0x09dce4a1, 0x09eed17b, 0x1e6b5b8f, 0x1e6967b1, 0x09f4ca56, 0x0a06b296, 0x1e63850e,
+       0x1e618c80, 0x0a0ca9e6, 0x0a1e8d81, 0x1e5b9bce, 0x1e599e91, 0x0a248343, 0x0a36622e, 0x1e539fd4,
+       0x1e519dea, 0x0a3c565e, 0x0a4e308f, 0x1e4b9126, 0x1e498a8e, 0x0a542329, 0x0a65f894, 0x1e436fc7,
+       0x1e416485, 0x0a6be995, 0x0a7dba2f, 0x1e3b3bbd, 0x1e392bd1, 0x0a83a993, 0x0a957551, 0x1e32f50e,
+       0x1e30e079, 0x0a9b6315, 0x0aad29ec, 0x1e2a9bbd, 0x1e288281, 0x0ab3160c, 0x0ac4d7f1, 0x1e222fd1,
+       0x1e2011ee, 0x0acac26a, 0x0adc7f52, 0x1e19b14f, 0x1e178ec7, 0x0ae2681f, 0x0af41fff, 0x1e11203b,
+       0x1e0ef910, 0x0afa071d, 0x0b0bb9eb, 0x1e087c9b, 0x1e0650ce, 0x0b119f56, 0x0b234d07, 0x1dffc674,
+       0x1dfd9606, 0x0b2930bb, 0x0b3ad943, 0x1df6fdcc, 0x1df4c8bf, 0x0b40bb3e, 0x0b525e92, 0x1dee22a9,
+       0x1debe8fd, 0x0b583ecf, 0x0b69dce6, 0x1de5350f, 0x1de2f6c6, 0x0b6fbb62, 0x0b81542f, 0x1ddc3504,
+       0x1dd9f220, 0x0b8730e6, 0x0b98c45f, 0x1dd3228e, 0x1dd0db10, 0x0b9e9f4d, 0x0bb02d68, 0x1dc9fdb2,
+       0x1dc7b19b, 0x0bb6068a, 0x0bc78f3b, 0x1dc0c676, 0x1dbe75c8, 0x0bcd668e, 0x0bdee9ca, 0x1db77cdf,
+       0x1db5279c, 0x0be4bf4a, 0x0bf63d07, 0x1dae20f4, 0x1dabc71d, 0x0bfc10af, 0x0c0d88e2, 0x1da4b2ba,
+       0x1da25450, 0x0c135ab0, 0x0c24cd4e, 0x1d9b3237, 0x1d98cf3b, 0x0c2a9d3e, 0x0c3c0a3d, 0x1d919f70,
+       0x1d8f37e5, 0x0c41d84b, 0x0c533fa0, 0x1d87fa6d, 0x1d858e53, 0x0c590bc9, 0x0c6a6d68, 0x1d7e4332,
+       0x1d7bd28b, 0x0c7037a8, 0x0c819388, 0x1d7479c5, 0x1d720493, 0x0c875bdb, 0x0c98b1f0, 0x1d6a9e2e,
+       0x1d682472, 0x0c9e7854, 0x0cafc894, 0x1d60b070, 0x1d5e322c, 0x0cb58d04, 0x0cc6d764, 0x1d56b094,
+       0x1d542dc9, 0x0ccc99de, 0x0cddde53, 0x1d4c9e9f, 0x1d4a174f, 0x0ce39ed2, 0x0cf4dd52, 0x1d427a97,
+       0x1d3feec3, 0x0cfa9bd2, 0x0d0bd452, 0x1d384483, 0x1d35b42d, 0x0d1190d1, 0x0d22c347, 0x1d2dfc68,
+       0x1d2b6791, 0x0d287dc1, 0x0d39aa21, 0x1d23a24e, 0x1d2108f8, 0x0d3f6292, 0x0d5088d3, 0x1d19363a,
+       0x1d169867, 0x0d563f38, 0x0d675f4e, 0x1d0eb833, 0x1d0c15e4, 0x0d6d13a3, 0x0d7e2d85, 0x1d04283f,
+       0x1d018176, 0x0d83dfc6, 0x0d94f369, 0x1cf98666, 0x1cf6db24, 0x0d9aa393, 0x0dabb0ec, 0x1ceed2ad,
+       0x1cec22f4, 0x0db15efc, 0x0dc26600, 0x1ce40d1b, 0x1ce158ed, 0x0dc811f3, 0x0dd91298, 0x1cd935b7,
+       0x1cd67d15, 0x0ddebc69, 0x0defb6a5, 0x1cce4c87, 0x1ccb8f74, 0x0df55e51, 0x0e065219, 0x1cc35192,
+       0x1cc0900f, 0x0e0bf79c, 0x0e1ce4e6, 0x1cb844df, 0x1cb57eee, 0x0e22883e, 0x0e336eff, 0x1cad2675,
+       0x1caa5c17, 0x0e391027, 0x0e49f055, 0x1ca1f65b, 0x1c9f2792, 0x0e4f8f4b, 0x0e6068db, 0x1c96b497,
+       0x1c93e165, 0x0e66059a, 0x0e76d883, 0x1c8b6131, 0x1c888997, 0x0e7c7308, 0x0e8d3f3e, 0x1c7ffc2f,
+       0x1c7d202f, 0x0e92d787, 0x0ea39d00, 0x1c748599, 0x1c71a535, 0x0ea93308, 0x0eb9f1ba, 0x1c68fd75,
+       0x1c6618ae, 0x0ebf857d, 0x0ed03d5e, 0x1c5d63ca, 0x1c5a7aa4, 0x0ed5ceda, 0x0ee67fdf, 0x1c51b8a1,
+       0x1c4ecb1c, 0x0eec0f10, 0x0efcb92f, 0x1c45fc00, 0x1c430a1d, 0x0f024612, 0x0f12e941, 0x1c3a2ded,
+       0x1c3737b0, 0x0f1873d2, 0x0f291006, 0x1c2e4e72, 0x1c2b53db, 0x0f2e9842, 0x0f3f2d71, 0x1c225d94,
+       0x1c1f5ea6, 0x0f44b354, 0x0f554175, 0x1c165b5b, 0x1c135818, 0x0f5ac4fc, 0x0f6b4c03, 0x1c0a47cf,
+       0x1c074038, 0x0f70cd2a, 0x0f814d0e, 0x1bfe22f8, 0x1bfb170f, 0x0f86cbd3, 0x0f974489, 0x1bf1ecdb,
+       0x1beedca2, 0x0f9cc0e7, 0x0fad3265, 0x1be5a582, 0x1be290fb, 0x0fb2ac5a, 0x0fc31697, 0x1bd94cf4,
+       0x1bd63421, 0x0fc88e1e, 0x0fd8f10f, 0x1bcce337, 0x1bc9c61a, 0x0fde6626, 0x0feec1c0, 0x1bc06855,
+       0x1bbd46f0, 0x0ff43464, 0x1004889e, 0x1bb3dc55, 0x1bb0b6a9, 0x1009f8cb, 0x101a459a, 0x1ba73f3d,
+       0x1ba4154d, 0x101fb34d, 0x102ff8a8, 0x1b9a9117, 0x1b9762e4, 0x103563dc, 0x1045a1b9, 0x1b8dd1ea,
+       0x1b8a9f77, 0x104b0a6c, 0x105b40c1, 0x1b8101be, 0x1b7dcb0c, 0x1060a6ef, 0x1070d5b1, 0x1b74209b,
+       0x1b70e5ac, 0x10763958, 0x1086607e, 0x1b672e88, 0x1b63ef5f, 0x108bc19a, 0x109be119, 0x1b5a2b8e,
+       0x1b56e82c, 0x10a13fa6, 0x10b15775, 0x1b4d17b4, 0x1b49d01c, 0x10b6b371, 0x10c6c385, 0x1b3ff304,
+       0x1b3ca737, 0x10cc1cec, 0x10dc253c, 0x1b32bd84, 0x1b2f6d85, 0x10e17c0b, 0x10f17c8d, 0x1b25773d,
+       0x1b22230e, 0x10f6d0c0, 0x1106c96a, 0x1b182038, 0x1b14c7da, 0x110c1afe, 0x111c0bc6, 0x1b0ab87c,
+       0x1b075bf1, 0x11215ab8, 0x11314395, 0x1afd4012, 0x1af9df5d, 0x11368fe1, 0x114670c8, 0x1aefb702,
+       0x1aec5225, 0x114bba6b, 0x115b9354, 0x1ae21d54, 0x1adeb451, 0x1160da4b, 0x1170ab2a, 0x1ad47311,
+       0x1ad105e9, 0x1175ef72, 0x1185b83f, 0x1ac6b841, 0x1ac346f8, 0x118af9d4, 0x119aba84, 0x1ab8ecec,
+       0x1ab57784, 0x119ff964, 0x11afb1ee, 0x1aab111c, 0x1aa79796, 0x11b4ee14, 0x11c49e6f, 0x1a9d24d9,
+       0x1a99a737, 0x11c9d7d9, 0x11d97ff9, 0x1a8f282b, 0x1a8ba670, 0x11deb6a4, 0x11ee5682, 0x1a811b1b,
+       0x1a7d9549, 0x11f38a6a, 0x120321fa, 0x1a72fdb2, 0x1a6f73ca, 0x1208531c, 0x1217e256, 0x1a64cff8,
+       0x1a6141fd, 0x121d10af, 0x122c9789, 0x1a5691f5, 0x1a52ffeb, 0x1231c316, 0x12414186, 0x1a4843b4,
+       0x1a44ad9b, 0x12466a44, 0x1255e041, 0x1a39e53d, 0x1a364b17, 0x125b062b, 0x126a73ac, 0x1a2b7698,
+       0x1a27d868, 0x126f96c1, 0x127efbbb, 0x1a1cf7ce, 0x1a195597, 0x12841bf6, 0x12937861, 0x1a0e68e9,
+       0x1a0ac2ac, 0x129895c0, 0x12a7e991, 0x19ffc9f1, 0x19fc1fb1, 0x12ad0412, 0x12bc4f40, 0x19f11af0,
+       0x19ed6caf, 0x12c166de, 0x12d0a960, 0x19e25bee, 0x19dea9ae, 0x12d5be18, 0x12e4f7e5, 0x19d38cf4,
+       0x19cfd6b8, 0x12ea09b4, 0x12f93ac2, 0x19c4ae0c, 0x19c0f3d6, 0x12fe49a6, 0x130d71eb, 0x19b5bf3f,
+       0x19b20111, 0x13127de0, 0x13219d53, 0x19a6c096, 0x19a2fe73, 0x1326a656, 0x1335bcef, 0x1997b21b,
+       0x1993ec04, 0x133ac2fc, 0x1349d0b0, 0x198893d6, 0x1984c9ce, 0x134ed3c5, 0x135dd88c, 0x197965d0,
+       0x197597da, 0x1362d8a6, 0x1371d476, 0x196a2815, 0x19665632, 0x1376d191, 0x1385c461, 0x195adaab,
+       0x195704df, 0x138abe7b, 0x1399a841, 0x194b7d9e, 0x1947a3eb, 0x139e9f56, 0x13ad800a, 0x193c10f7,
+       0x1938335e, 0x13b27417, 0x13c14bb0, 0x192c94bf, 0x1928b343, 0x13c63cb2, 0x13d50b26, 0x191d08ff,
+       0x191923a3, 0x13d9f91b, 0x13e8be60, 0x190d6dc1, 0x19098488, 0x13eda944, 0x13fc6553, 0x18fdc310,
+       0x18f9d5fa, 0x14014d23, 0x140ffff1, 0x18ee08f4, 0x18ea1805, 0x1414e4aa, 0x14238e2f, 0x18de3f77,
+       0x18da4ab2, 0x14286fce, 0x14371001, 0x18ce66a3, 0x18ca6e0a, 0x143bee83, 0x144a855b, 0x18be7e82,
+       0x18ba8217, 0x144f60bd, 0x145dee30, 0x18ae871e, 0x18aa86e3, 0x1462c670, 0x14714a76, 0x189e8080,
+       0x189a7c78, 0x14761f8f, 0x14849a1f, 0x188e6ab2, 0x188a62e0, 0x14896c0f, 0x1497dd20, 0x187e45be,
+       0x187a3a25, 0x149cabe4, 0x14ab136d, 0x186e11af, 0x186a0250, 0x14afdf03, 0x14be3cfa, 0x185dce8e,
+       0x1859bb6c, 0x14c3055e, 0x14d159bc, 0x184d7c65, 0x18496583, 0x14d61eeb, 0x14e469a6, 0x183d1b3e,
+       0x1839009e, 0x14e92b9e, 0x14f76cad, 0x182cab24, 0x18288cc8, 0x14fc2b6a, 0x150a62c6, 0x181c2c20,
+       0x18180a0c, 0x150f1e45, 0x151d4be3, 0x180b9e3d, 0x18077873, 0x15220422, 0x153027fb, 0x17fb0185,
+       0x17f6d807, 0x1534dcf6, 0x1542f700, 0x17ea5602, 0x17e628d3, 0x1547a8b5, 0x1555b8e8, 0x17d99bbe,
+       0x17d56ae0, 0x155a6754, 0x15686da7, 0x17c8d2c4, 0x17c49e3b, 0x156d18c7, 0x157b1532, 0x17b7fb1f,
+       0x17b3c2ec, 0x157fbd03, 0x158daf7c, 0x17a714d7, 0x17a2d8fe, 0x159253fb, 0x15a03c7a, 0x17961ff9,
+       0x1791e07b, 0x15a4dda5, 0x15b2bc22, 0x17851c8e, 0x1780d96f, 0x15b759f5, 0x15c52e67, 0x17740aa1,
+       0x176fc3e3, 0x15c9c8e0, 0x15d7933f, 0x1762ea3d, 0x175e9fe2, 0x15dc2a5a, 0x15e9ea9d, 0x1751bb6b,
+       0x174d6d77, 0x15ee7e58, 0x15fc3477, 0x17407e37, 0x173c2cac, 0x1600c4cf, 0x160e70c1, 0x172f32ab,
+       0x172add8c, 0x1612fdb3, 0x16209f70, 0x171dd8d2, 0x17198021, 0x162528fa, 0x1632c078, 0x170c70b7,
+       0x17081477, 0x16374697, 0x1644d3d0, 0x16fafa64, 0x16f69a97, 0x16495680, 0x1656d96a, 0x16e975e4,
+       0x16e5128e, 0x165b58aa, 0x1668d13e, 0x16d7e341, 0x16d37c65, 0x166d4d0a, 0x167abb3e, 0x16c64288,
        0x16c1d827, 0x167f3394, 0x168c9760, 0x16b493c2, 0x16b025e0, 0x16910c3d, 0x169e659a, 0x16a2d6fb
 };
 
 const int twidTab512[8*6 + 32*6 + 128*6] = {
-       0x20000000, 0x00000000, 0x1d906bcf, 0x0c3ef153, 0x16a09e66, 0x16a09e66, 0x0c3ef153, 0x1d906bcf, 
-       0x20000000, 0x00000000, 0x1f6297d0, 0x063e2e0f, 0x1d906bcf, 0x0c3ef153, 0x1a9b6629, 0x11c73b3a, 
-       0x20000000, 0x00000000, 0x1a9b6629, 0x11c73b3a, 0x0c3ef153, 0x1d906bcf, 0xf9c1d1f1, 0x1f6297d0, 
-       0x00000000, 0x20000000, 0xf3c10ead, 0x1d906bcf, 0xe95f619a, 0x16a09e66, 0xe26f9431, 0x0c3ef153, 
-       0x16a09e66, 0x16a09e66, 0x11c73b3a, 0x1a9b6629, 0x0c3ef153, 0x1d906bcf, 0x063e2e0f, 0x1f6297d0, 
-       0xe95f619a, 0x16a09e66, 0xe09d6830, 0x063e2e0f, 0xe26f9431, 0xf3c10ead, 0xee38c4c6, 0xe56499d7, 
-
-       0x20000000, 0x00000000, 0x1fd88da4, 0x0322f4d8, 0x1f6297d0, 0x063e2e0f, 0x1e9f4157, 0x094a0317, 
-       0x20000000, 0x00000000, 0x1ff621e3, 0x0191f65f, 0x1fd88da4, 0x0322f4d8, 0x1fa7557f, 0x04b2041c, 
-       0x20000000, 0x00000000, 0x1fa7557f, 0x04b2041c, 0x1e9f4157, 0x094a0317, 0x1ced7af4, 0x0dae8805, 
-       0x1d906bcf, 0x0c3ef153, 0x1c38b2f2, 0x0f15ae9c, 0x1a9b6629, 0x11c73b3a, 0x18bc806b, 0x144cf325, 
-       0x1f6297d0, 0x063e2e0f, 0x1f0a7efc, 0x07c67e5f, 0x1e9f4157, 0x094a0317, 0x1e212105, 0x0ac7cd3b, 
-       0x1a9b6629, 0x11c73b3a, 0x17b5df22, 0x157d6935, 0x144cf325, 0x18bc806b, 0x10738799, 0x1b728345, 
-       0x16a09e66, 0x16a09e66, 0x144cf325, 0x18bc806b, 0x11c73b3a, 0x1a9b6629, 0x0f15ae9c, 0x1c38b2f2, 
-       0x1d906bcf, 0x0c3ef153, 0x1ced7af4, 0x0dae8805, 0x1c38b2f2, 0x0f15ae9c, 0x1b728345, 0x10738799, 
-       0x0c3ef153, 0x1d906bcf, 0x07c67e5f, 0x1f0a7efc, 0x0322f4d8, 0x1fd88da4, 0xfe6e09a1, 0x1ff621e3, 
-       0x0c3ef153, 0x1d906bcf, 0x094a0317, 0x1e9f4157, 0x063e2e0f, 0x1f6297d0, 0x0322f4d8, 0x1fd88da4, 
-       0x1a9b6629, 0x11c73b3a, 0x19b3e048, 0x130ff7fd, 0x18bc806b, 0x144cf325, 0x17b5df22, 0x157d6935, 
-       0xf9c1d1f1, 0x1f6297d0, 0xf53832c5, 0x1e212105, 0xf0ea5164, 0x1c38b2f2, 0xecf00803, 0x19b3e048, 
-       0x00000000, 0x20000000, 0xfcdd0b28, 0x1fd88da4, 0xf9c1d1f1, 0x1f6297d0, 0xf6b5fce9, 0x1e9f4157, 
-       0x16a09e66, 0x16a09e66, 0x157d6935, 0x17b5df22, 0x144cf325, 0x18bc806b, 0x130ff7fd, 0x19b3e048, 
-       0xe95f619a, 0x16a09e66, 0xe64c1fb8, 0x130ff7fd, 0xe3c74d0e, 0x0f15ae9c, 0xe1dedefb, 0x0ac7cd3b, 
-       0xf3c10ead, 0x1d906bcf, 0xf0ea5164, 0x1c38b2f2, 0xee38c4c6, 0x1a9b6629, 0xebb30cdb, 0x18bc806b, 
-       0x11c73b3a, 0x1a9b6629, 0x10738799, 0x1b728345, 0x0f15ae9c, 0x1c38b2f2, 0x0dae8805, 0x1ced7af4, 
-       0xe09d6830, 0x063e2e0f, 0xe009de1d, 0x0191f65f, 0xe027725c, 0xfcdd0b28, 0xe0f58104, 0xf83981a1, 
-       0xe95f619a, 0x16a09e66, 0xe7437f95, 0x144cf325, 0xe56499d7, 0x11c73b3a, 0xe3c74d0e, 0x0f15ae9c, 
-       0x0c3ef153, 0x1d906bcf, 0x0ac7cd3b, 0x1e212105, 0x094a0317, 0x1e9f4157, 0x07c67e5f, 0x1f0a7efc, 
-       0xe26f9431, 0xf3c10ead, 0xe48d7cbb, 0xef8c7867, 0xe7437f95, 0xebb30cdb, 0xea8296cb, 0xe84a20de, 
-       0xe26f9431, 0x0c3ef153, 0xe160bea9, 0x094a0317, 0xe09d6830, 0x063e2e0f, 0xe027725c, 0x0322f4d8, 
-       0x063e2e0f, 0x1f6297d0, 0x04b2041c, 0x1fa7557f, 0x0322f4d8, 0x1fd88da4, 0x0191f65f, 0x1ff621e3, 
-       0xee38c4c6, 0xe56499d7, 0xf25177fb, 0xe312850c, 0xf6b5fce9, 0xe160bea9, 0xfb4dfbe4, 0xe058aa81, 
-
-       0x20000000, 0x00000000, 0x1ffd8861, 0x00c90ab0, 0x1ff621e3, 0x0191f65f, 0x1fe9cdad, 0x025aa412, 
-       0x20000000, 0x00000000, 0x1fff6217, 0x00648748, 0x1ffd8861, 0x00c90ab0, 0x1ffa72f0, 0x012d8657, 
-       0x20000000, 0x00000000, 0x1ffa72f0, 0x012d8657, 0x1fe9cdad, 0x025aa412, 0x1fce15fd, 0x0386f0b9, 
-       0x1fd88da4, 0x0322f4d8, 0x1fc26471, 0x03eac9cb, 0x1fa7557f, 0x04b2041c, 0x1f8764fa, 0x05788511, 
-       0x1ff621e3, 0x0191f65f, 0x1ff09566, 0x01f656e8, 0x1fe9cdad, 0x025aa412, 0x1fe1cafd, 0x02beda01, 
-       0x1fa7557f, 0x04b2041c, 0x1f7599a4, 0x05db7678, 0x1f38f3ac, 0x0702e09b, 0x1ef178a4, 0x0827dc07, 
-       0x1f6297d0, 0x063e2e0f, 0x1f38f3ac, 0x0702e09b, 0x1f0a7efc, 0x07c67e5f, 0x1ed740e7, 0x0888e931, 
-       0x1fd88da4, 0x0322f4d8, 0x1fce15fd, 0x0386f0b9, 0x1fc26471, 0x03eac9cb, 0x1fb57972, 0x044e7c34, 
-       0x1e9f4157, 0x094a0317, 0x1e426a4b, 0x0a68f121, 0x1ddb13b7, 0x0b844298, 0x1d696174, 0x0c9b9532, 
-       0x1e9f4157, 0x094a0317, 0x1e6288ec, 0x0a09ae4a, 0x1e212105, 0x0ac7cd3b, 0x1ddb13b7, 0x0b844298, 
-       0x1fa7557f, 0x04b2041c, 0x1f97f925, 0x05155dac, 0x1f8764fa, 0x05788511, 0x1f7599a4, 0x05db7678, 
-       0x1ced7af4, 0x0dae8805, 0x1c678b35, 0x0ebcbbae, 0x1bd7c0ac, 0x0fc5d26e, 0x1b3e4d3f, 0x10c9704d, 
-       0x1d906bcf, 0x0c3ef153, 0x1d4134d1, 0x0cf7bca2, 0x1ced7af4, 0x0dae8805, 0x1c954b21, 0x0e63374d, 
-       0x1f6297d0, 0x063e2e0f, 0x1f4e603b, 0x06a0a809, 0x1f38f3ac, 0x0702e09b, 0x1f2252f7, 0x0764d3f9, 
-       0x1a9b6629, 0x11c73b3a, 0x19ef43ef, 0x12bedb26, 0x193a224a, 0x13affa29, 0x187c4010, 0x149a449c, 
-       0x1c38b2f2, 0x0f15ae9c, 0x1bd7c0ac, 0x0fc5d26e, 0x1b728345, 0x10738799, 0x1b090a58, 0x111eb354, 
-       0x1f0a7efc, 0x07c67e5f, 0x1ef178a4, 0x0827dc07, 0x1ed740e7, 0x0888e931, 0x1ebbd8c9, 0x08e9a220, 
-       0x17b5df22, 0x157d6935, 0x16e74455, 0x16591926, 0x1610b755, 0x172d0838, 0x15328293, 0x17f8ece3, 
-       0x1a9b6629, 0x11c73b3a, 0x1a29a7a0, 0x126d054d, 0x19b3e048, 0x130ff7fd, 0x193a224a, 0x13affa29, 
-       0x1e9f4157, 0x094a0317, 0x1e817bab, 0x09aa0861, 0x1e6288ec, 0x0a09ae4a, 0x1e426a4b, 0x0a68f121, 
-       0x144cf325, 0x18bc806b, 0x136058b1, 0x19777ef5, 0x126d054d, 0x1a29a7a0, 0x11734d64, 0x1ad2bc9e, 
-       0x18bc806b, 0x144cf325, 0x183b0e0c, 0x14e6cabc, 0x17b5df22, 0x157d6935, 0x172d0838, 0x1610b755, 
-       0x1e212105, 0x0ac7cd3b, 0x1dfeae62, 0x0b263eef, 0x1ddb13b7, 0x0b844298, 0x1db65262, 0x0be1d499, 
-       0x10738799, 0x1b728345, 0x0f6e0ca9, 0x1c08c426, 0x0e63374d, 0x1c954b21, 0x0d536416, 0x1d17e774, 
-       0x16a09e66, 0x16a09e66, 0x1610b755, 0x172d0838, 0x157d6935, 0x17b5df22, 0x14e6cabc, 0x183b0e0c, 
-       0x1d906bcf, 0x0c3ef153, 0x1d696174, 0x0c9b9532, 0x1d4134d1, 0x0cf7bca2, 0x1d17e774, 0x0d536416, 
-       0x0c3ef153, 0x1d906bcf, 0x0b263eef, 0x1dfeae62, 0x0a09ae4a, 0x1e6288ec, 0x08e9a220, 0x1ebbd8c9, 
-       0x144cf325, 0x18bc806b, 0x13affa29, 0x193a224a, 0x130ff7fd, 0x19b3e048, 0x126d054d, 0x1a29a7a0, 
-       0x1ced7af4, 0x0dae8805, 0x1cc1f0f4, 0x0e0924ec, 0x1c954b21, 0x0e63374d, 0x1c678b35, 0x0ebcbbae, 
-       0x07c67e5f, 0x1f0a7efc, 0x06a0a809, 0x1f4e603b, 0x05788511, 0x1f8764fa, 0x044e7c34, 0x1fb57972, 
-       0x11c73b3a, 0x1a9b6629, 0x111eb354, 0x1b090a58, 0x10738799, 0x1b728345, 0x0fc5d26e, 0x1bd7c0ac, 
-       0x1c38b2f2, 0x0f15ae9c, 0x1c08c426, 0x0f6e0ca9, 0x1bd7c0ac, 0x0fc5d26e, 0x1ba5aa67, 0x101cfc87, 
-       0x0322f4d8, 0x1fd88da4, 0x01f656e8, 0x1ff09566, 0x00c90ab0, 0x1ffd8861, 0xff9b78b8, 0x1fff6217, 
-       0x0f15ae9c, 0x1c38b2f2, 0x0e63374d, 0x1c954b21, 0x0dae8805, 0x1ced7af4, 0x0cf7bca2, 0x1d4134d1, 
-       0x1b728345, 0x10738799, 0x1b3e4d3f, 0x10c9704d, 0x1b090a58, 0x111eb354, 0x1ad2bc9e, 0x11734d64, 
-       0xfe6e09a1, 0x1ff621e3, 0xfd4125ff, 0x1fe1cafd, 0xfc153635, 0x1fc26471, 0xfaeaa254, 0x1f97f925, 
-       0x0c3ef153, 0x1d906bcf, 0x0b844298, 0x1ddb13b7, 0x0ac7cd3b, 0x1e212105, 0x0a09ae4a, 0x1e6288ec, 
-       0x1a9b6629, 0x11c73b3a, 0x1a63091b, 0x121a7999, 0x1a29a7a0, 0x126d054d, 0x19ef43ef, 0x12bedb26, 
-       0xf9c1d1f1, 0x1f6297d0, 0xf89b2c07, 0x1f2252f7, 0xf77716cf, 0x1ed740e7, 0xf655f79f, 0x1e817bab, 
-       0x094a0317, 0x1e9f4157, 0x0888e931, 0x1ed740e7, 0x07c67e5f, 0x1f0a7efc, 0x0702e09b, 0x1f38f3ac, 
-       0x19b3e048, 0x130ff7fd, 0x19777ef5, 0x136058b1, 0x193a224a, 0x13affa29, 0x18fbcca4, 0x13fed953, 
-       0xf53832c5, 0x1e212105, 0xf41e2b67, 0x1db65262, 0xf308435e, 0x1d4134d1, 0xf1f6db14, 0x1cc1f0f4, 
-       0x063e2e0f, 0x1f6297d0, 0x05788511, 0x1f8764fa, 0x04b2041c, 0x1fa7557f, 0x03eac9cb, 0x1fc26471, 
-       0x18bc806b, 0x144cf325, 0x187c4010, 0x149a449c, 0x183b0e0c, 0x14e6cabc, 0x17f8ece3, 0x15328293, 
-       0xf0ea5164, 0x1c38b2f2, 0xefe30379, 0x1ba5aa67, 0xeee14cac, 0x1b090a58, 0xede58667, 0x1a63091b, 
-       0x0322f4d8, 0x1fd88da4, 0x025aa412, 0x1fe9cdad, 0x0191f65f, 0x1ff621e3, 0x00c90ab0, 0x1ffd8861, 
-       0x17b5df22, 0x157d6935, 0x1771e75f, 0x15c77bbe, 0x172d0838, 0x1610b755, 0x16e74455, 0x16591926, 
-       0xecf00803, 0x19b3e048, 0xec0126ad, 0x18fbcca4, 0xeb193544, 0x183b0e0c, 0xea388442, 0x1771e75f, 
-       0x00000000, 0x20000000, 0xff36f550, 0x1ffd8861, 0xfe6e09a1, 0x1ff621e3, 0xfda55bee, 0x1fe9cdad, 
-       0x16a09e66, 0x16a09e66, 0x16591926, 0x16e74455, 0x1610b755, 0x172d0838, 0x15c77bbe, 0x1771e75f, 
-       0xe95f619a, 0x16a09e66, 0xe88e18a1, 0x15c77bbe, 0xe7c4f1f4, 0x14e6cabc, 0xe704335c, 0x13fed953, 
-       0xfcdd0b28, 0x1fd88da4, 0xfc153635, 0x1fc26471, 0xfb4dfbe4, 0x1fa7557f, 0xfa877aef, 0x1f8764fa, 
-       0x157d6935, 0x17b5df22, 0x15328293, 0x17f8ece3, 0x14e6cabc, 0x183b0e0c, 0x149a449c, 0x187c4010, 
-       0xe64c1fb8, 0x130ff7fd, 0xe59cf6e5, 0x121a7999, 0xe4f6f5a8, 0x111eb354, 0xe45a5599, 0x101cfc87, 
-       0xf9c1d1f1, 0x1f6297d0, 0xf8fd1f65, 0x1f38f3ac, 0xf83981a1, 0x1f0a7efc, 0xf77716cf, 0x1ed740e7, 
-       0x144cf325, 0x18bc806b, 0x13fed953, 0x18fbcca4, 0x13affa29, 0x193a224a, 0x136058b1, 0x19777ef5, 
-       0xe3c74d0e, 0x0f15ae9c, 0xe33e0f0c, 0x0e0924ec, 0xe2becb2f, 0x0cf7bca2, 0xe249ad9e, 0x0be1d499, 
-       0xf6b5fce9, 0x1e9f4157, 0xf5f651b6, 0x1e6288ec, 0xf53832c5, 0x1e212105, 0xf47bbd68, 0x1ddb13b7, 
-       0x130ff7fd, 0x19b3e048, 0x12bedb26, 0x19ef43ef, 0x126d054d, 0x1a29a7a0, 0x121a7999, 0x1a63091b, 
-       0xe1dedefb, 0x0ac7cd3b, 0xe17e8455, 0x09aa0861, 0xe128bf19, 0x0888e931, 0xe0ddad09, 0x0764d3f9, 
-       0xf3c10ead, 0x1d906bcf, 0xf308435e, 0x1d4134d1, 0xf25177fb, 0x1ced7af4, 0xf19cc8b3, 0x1c954b21, 
-       0x11c73b3a, 0x1a9b6629, 0x11734d64, 0x1ad2bc9e, 0x111eb354, 0x1b090a58, 0x10c9704d, 0x1b3e4d3f, 
-       0xe09d6830, 0x063e2e0f, 0xe06806db, 0x05155dac, 0xe03d9b8f, 0x03eac9cb, 0xe01e3503, 0x02beda01, 
-       0xf0ea5164, 0x1c38b2f2, 0xf03a2d92, 0x1bd7c0ac, 0xef8c7867, 0x1b728345, 0xeee14cac, 0x1b090a58, 
-       0x10738799, 0x1b728345, 0x101cfc87, 0x1ba5aa67, 0x0fc5d26e, 0x1bd7c0ac, 0x0f6e0ca9, 0x1c08c426, 
-       0xe009de1d, 0x0191f65f, 0xe0009de9, 0x00648748, 0xe002779f, 0xff36f550, 0xe00f6a9a, 0xfe09a918, 
-       0xee38c4c6, 0x1a9b6629, 0xed92fab3, 0x1a29a7a0, 0xecf00803, 0x19b3e048, 0xec5005d7, 0x193a224a, 
-       0x0f15ae9c, 0x1c38b2f2, 0x0ebcbbae, 0x1c678b35, 0x0e63374d, 0x1c954b21, 0x0e0924ec, 0x1cc1f0f4, 
-       0xe027725c, 0xfcdd0b28, 0xe04a868e, 0xfbb183cc, 0xe0789b06, 0xfa877aef, 0xe0b19fc5, 0xf95f57f7, 
-       0xebb30cdb, 0x18bc806b, 0xeb193544, 0x183b0e0c, 0xea8296cb, 0x17b5df22, 0xe9ef48ab, 0x172d0838, 
-       0x0dae8805, 0x1ced7af4, 0x0d536416, 0x1d17e774, 0x0cf7bca2, 0x1d4134d1, 0x0c9b9532, 0x1d696174, 
-       0xe0f58104, 0xf83981a1, 0xe1442737, 0xf7165de0, 0xe19d7714, 0xf5f651b6, 0xe201519e, 0xf4d9c111, 
-       0xe95f619a, 0x16a09e66, 0xe8d2f7c8, 0x1610b755, 0xe84a20de, 0x157d6935, 0xe7c4f1f4, 0x14e6cabc, 
-       0x0c3ef153, 0x1d906bcf, 0x0be1d499, 0x1db65262, 0x0b844298, 0x1ddb13b7, 0x0b263eef, 0x1dfeae62, 
-       0xe26f9431, 0xf3c10ead, 0xe2e8188c, 0xf2ac9bea, 0xe36ab4df, 0xf19cc8b3, 0xe3f73bda, 0xf091f357, 
-       0xe7437f95, 0x144cf325, 0xe6c5ddb6, 0x13affa29, 0xe64c1fb8, 0x130ff7fd, 0xe5d65860, 0x126d054d, 
-       0x0ac7cd3b, 0x1e212105, 0x0a68f121, 0x1e426a4b, 0x0a09ae4a, 0x1e6288ec, 0x09aa0861, 0x1e817bab, 
-       0xe48d7cbb, 0xef8c7867, 0xe52d4362, 0xee8cb29c, 0xe5d65860, 0xed92fab3, 0xe688810b, 0xec9fa74f, 
-       0xe56499d7, 0x11c73b3a, 0xe4f6f5a8, 0x111eb354, 0xe48d7cbb, 0x10738799, 0xe4283f54, 0x0fc5d26e, 
-       0x094a0317, 0x1e9f4157, 0x08e9a220, 0x1ebbd8c9, 0x0888e931, 0x1ed740e7, 0x0827dc07, 0x1ef178a4, 
-       0xe7437f95, 0xebb30cdb, 0xe807131d, 0xeacd7d6d, 0xe8d2f7c8, 0xe9ef48ab, 0xe9a6e6da, 0xe918bbab, 
-       0xe3c74d0e, 0x0f15ae9c, 0xe36ab4df, 0x0e63374d, 0xe312850c, 0x0dae8805, 0xe2becb2f, 0x0cf7bca2, 
-       0x07c67e5f, 0x1f0a7efc, 0x0764d3f9, 0x1f2252f7, 0x0702e09b, 0x1f38f3ac, 0x06a0a809, 0x1f4e603b, 
-       0xea8296cb, 0xe84a20de, 0xeb65bb64, 0xe783bff0, 0xec5005d7, 0xe6c5ddb6, 0xed4124da, 0xe610bc11, 
-       0xe26f9431, 0x0c3ef153, 0xe224ec49, 0x0b844298, 0xe1dedefb, 0x0ac7cd3b, 0xe19d7714, 0x0a09ae4a, 
-       0x063e2e0f, 0x1f6297d0, 0x05db7678, 0x1f7599a4, 0x05788511, 0x1f8764fa, 0x05155dac, 0x1f97f925, 
-       0xee38c4c6, 0xe56499d7, 0xef368fb3, 0xe4c1b2c1, 0xf03a2d92, 0xe4283f54, 0xf1434452, 0xe39874cb, 
-       0xe160bea9, 0x094a0317, 0xe128bf19, 0x0888e931, 0xe0f58104, 0x07c67e5f, 0xe0c70c54, 0x0702e09b, 
-       0x04b2041c, 0x1fa7557f, 0x044e7c34, 0x1fb57972, 0x03eac9cb, 0x1fc26471, 0x0386f0b9, 0x1fce15fd, 
-       0xf25177fb, 0xe312850c, 0xf3646ace, 0xe2969e8c, 0xf47bbd68, 0xe224ec49, 0xf5970edf, 0xe1bd95b5, 
-       0xe09d6830, 0x063e2e0f, 0xe0789b06, 0x05788511, 0xe058aa81, 0x04b2041c, 0xe03d9b8f, 0x03eac9cb, 
-       0x0322f4d8, 0x1fd88da4, 0x02beda01, 0x1fe1cafd, 0x025aa412, 0x1fe9cdad, 0x01f656e8, 0x1ff09566, 
-       0xf6b5fce9, 0xe160bea9, 0xf7d823f9, 0xe10e875c, 0xf8fd1f65, 0xe0c70c54, 0xfa248988, 0xe08a665c, 
-       0xe027725c, 0x0322f4d8, 0xe0163253, 0x025aa412, 0xe009de1d, 0x0191f65f, 0xe002779f, 0x00c90ab0, 
-       0x0191f65f, 0x1ff621e3, 0x012d8657, 0x1ffa72f0, 0x00c90ab0, 0x1ffd8861, 0x00648748, 0x1fff6217, 
+       0x20000000, 0x00000000, 0x1d906bcf, 0x0c3ef153, 0x16a09e66, 0x16a09e66, 0x0c3ef153, 0x1d906bcf,
+       0x20000000, 0x00000000, 0x1f6297d0, 0x063e2e0f, 0x1d906bcf, 0x0c3ef153, 0x1a9b6629, 0x11c73b3a,
+       0x20000000, 0x00000000, 0x1a9b6629, 0x11c73b3a, 0x0c3ef153, 0x1d906bcf, 0xf9c1d1f1, 0x1f6297d0,
+       0x00000000, 0x20000000, 0xf3c10ead, 0x1d906bcf, 0xe95f619a, 0x16a09e66, 0xe26f9431, 0x0c3ef153,
+       0x16a09e66, 0x16a09e66, 0x11c73b3a, 0x1a9b6629, 0x0c3ef153, 0x1d906bcf, 0x063e2e0f, 0x1f6297d0,
+       0xe95f619a, 0x16a09e66, 0xe09d6830, 0x063e2e0f, 0xe26f9431, 0xf3c10ead, 0xee38c4c6, 0xe56499d7,
+
+       0x20000000, 0x00000000, 0x1fd88da4, 0x0322f4d8, 0x1f6297d0, 0x063e2e0f, 0x1e9f4157, 0x094a0317,
+       0x20000000, 0x00000000, 0x1ff621e3, 0x0191f65f, 0x1fd88da4, 0x0322f4d8, 0x1fa7557f, 0x04b2041c,
+       0x20000000, 0x00000000, 0x1fa7557f, 0x04b2041c, 0x1e9f4157, 0x094a0317, 0x1ced7af4, 0x0dae8805,
+       0x1d906bcf, 0x0c3ef153, 0x1c38b2f2, 0x0f15ae9c, 0x1a9b6629, 0x11c73b3a, 0x18bc806b, 0x144cf325,
+       0x1f6297d0, 0x063e2e0f, 0x1f0a7efc, 0x07c67e5f, 0x1e9f4157, 0x094a0317, 0x1e212105, 0x0ac7cd3b,
+       0x1a9b6629, 0x11c73b3a, 0x17b5df22, 0x157d6935, 0x144cf325, 0x18bc806b, 0x10738799, 0x1b728345,
+       0x16a09e66, 0x16a09e66, 0x144cf325, 0x18bc806b, 0x11c73b3a, 0x1a9b6629, 0x0f15ae9c, 0x1c38b2f2,
+       0x1d906bcf, 0x0c3ef153, 0x1ced7af4, 0x0dae8805, 0x1c38b2f2, 0x0f15ae9c, 0x1b728345, 0x10738799,
+       0x0c3ef153, 0x1d906bcf, 0x07c67e5f, 0x1f0a7efc, 0x0322f4d8, 0x1fd88da4, 0xfe6e09a1, 0x1ff621e3,
+       0x0c3ef153, 0x1d906bcf, 0x094a0317, 0x1e9f4157, 0x063e2e0f, 0x1f6297d0, 0x0322f4d8, 0x1fd88da4,
+       0x1a9b6629, 0x11c73b3a, 0x19b3e048, 0x130ff7fd, 0x18bc806b, 0x144cf325, 0x17b5df22, 0x157d6935,
+       0xf9c1d1f1, 0x1f6297d0, 0xf53832c5, 0x1e212105, 0xf0ea5164, 0x1c38b2f2, 0xecf00803, 0x19b3e048,
+       0x00000000, 0x20000000, 0xfcdd0b28, 0x1fd88da4, 0xf9c1d1f1, 0x1f6297d0, 0xf6b5fce9, 0x1e9f4157,
+       0x16a09e66, 0x16a09e66, 0x157d6935, 0x17b5df22, 0x144cf325, 0x18bc806b, 0x130ff7fd, 0x19b3e048,
+       0xe95f619a, 0x16a09e66, 0xe64c1fb8, 0x130ff7fd, 0xe3c74d0e, 0x0f15ae9c, 0xe1dedefb, 0x0ac7cd3b,
+       0xf3c10ead, 0x1d906bcf, 0xf0ea5164, 0x1c38b2f2, 0xee38c4c6, 0x1a9b6629, 0xebb30cdb, 0x18bc806b,
+       0x11c73b3a, 0x1a9b6629, 0x10738799, 0x1b728345, 0x0f15ae9c, 0x1c38b2f2, 0x0dae8805, 0x1ced7af4,
+       0xe09d6830, 0x063e2e0f, 0xe009de1d, 0x0191f65f, 0xe027725c, 0xfcdd0b28, 0xe0f58104, 0xf83981a1,
+       0xe95f619a, 0x16a09e66, 0xe7437f95, 0x144cf325, 0xe56499d7, 0x11c73b3a, 0xe3c74d0e, 0x0f15ae9c,
+       0x0c3ef153, 0x1d906bcf, 0x0ac7cd3b, 0x1e212105, 0x094a0317, 0x1e9f4157, 0x07c67e5f, 0x1f0a7efc,
+       0xe26f9431, 0xf3c10ead, 0xe48d7cbb, 0xef8c7867, 0xe7437f95, 0xebb30cdb, 0xea8296cb, 0xe84a20de,
+       0xe26f9431, 0x0c3ef153, 0xe160bea9, 0x094a0317, 0xe09d6830, 0x063e2e0f, 0xe027725c, 0x0322f4d8,
+       0x063e2e0f, 0x1f6297d0, 0x04b2041c, 0x1fa7557f, 0x0322f4d8, 0x1fd88da4, 0x0191f65f, 0x1ff621e3,
+       0xee38c4c6, 0xe56499d7, 0xf25177fb, 0xe312850c, 0xf6b5fce9, 0xe160bea9, 0xfb4dfbe4, 0xe058aa81,
+
+       0x20000000, 0x00000000, 0x1ffd8861, 0x00c90ab0, 0x1ff621e3, 0x0191f65f, 0x1fe9cdad, 0x025aa412,
+       0x20000000, 0x00000000, 0x1fff6217, 0x00648748, 0x1ffd8861, 0x00c90ab0, 0x1ffa72f0, 0x012d8657,
+       0x20000000, 0x00000000, 0x1ffa72f0, 0x012d8657, 0x1fe9cdad, 0x025aa412, 0x1fce15fd, 0x0386f0b9,
+       0x1fd88da4, 0x0322f4d8, 0x1fc26471, 0x03eac9cb, 0x1fa7557f, 0x04b2041c, 0x1f8764fa, 0x05788511,
+       0x1ff621e3, 0x0191f65f, 0x1ff09566, 0x01f656e8, 0x1fe9cdad, 0x025aa412, 0x1fe1cafd, 0x02beda01,
+       0x1fa7557f, 0x04b2041c, 0x1f7599a4, 0x05db7678, 0x1f38f3ac, 0x0702e09b, 0x1ef178a4, 0x0827dc07,
+       0x1f6297d0, 0x063e2e0f, 0x1f38f3ac, 0x0702e09b, 0x1f0a7efc, 0x07c67e5f, 0x1ed740e7, 0x0888e931,
+       0x1fd88da4, 0x0322f4d8, 0x1fce15fd, 0x0386f0b9, 0x1fc26471, 0x03eac9cb, 0x1fb57972, 0x044e7c34,
+       0x1e9f4157, 0x094a0317, 0x1e426a4b, 0x0a68f121, 0x1ddb13b7, 0x0b844298, 0x1d696174, 0x0c9b9532,
+       0x1e9f4157, 0x094a0317, 0x1e6288ec, 0x0a09ae4a, 0x1e212105, 0x0ac7cd3b, 0x1ddb13b7, 0x0b844298,
+       0x1fa7557f, 0x04b2041c, 0x1f97f925, 0x05155dac, 0x1f8764fa, 0x05788511, 0x1f7599a4, 0x05db7678,
+       0x1ced7af4, 0x0dae8805, 0x1c678b35, 0x0ebcbbae, 0x1bd7c0ac, 0x0fc5d26e, 0x1b3e4d3f, 0x10c9704d,
+       0x1d906bcf, 0x0c3ef153, 0x1d4134d1, 0x0cf7bca2, 0x1ced7af4, 0x0dae8805, 0x1c954b21, 0x0e63374d,
+       0x1f6297d0, 0x063e2e0f, 0x1f4e603b, 0x06a0a809, 0x1f38f3ac, 0x0702e09b, 0x1f2252f7, 0x0764d3f9,
+       0x1a9b6629, 0x11c73b3a, 0x19ef43ef, 0x12bedb26, 0x193a224a, 0x13affa29, 0x187c4010, 0x149a449c,
+       0x1c38b2f2, 0x0f15ae9c, 0x1bd7c0ac, 0x0fc5d26e, 0x1b728345, 0x10738799, 0x1b090a58, 0x111eb354,
+       0x1f0a7efc, 0x07c67e5f, 0x1ef178a4, 0x0827dc07, 0x1ed740e7, 0x0888e931, 0x1ebbd8c9, 0x08e9a220,
+       0x17b5df22, 0x157d6935, 0x16e74455, 0x16591926, 0x1610b755, 0x172d0838, 0x15328293, 0x17f8ece3,
+       0x1a9b6629, 0x11c73b3a, 0x1a29a7a0, 0x126d054d, 0x19b3e048, 0x130ff7fd, 0x193a224a, 0x13affa29,
+       0x1e9f4157, 0x094a0317, 0x1e817bab, 0x09aa0861, 0x1e6288ec, 0x0a09ae4a, 0x1e426a4b, 0x0a68f121,
+       0x144cf325, 0x18bc806b, 0x136058b1, 0x19777ef5, 0x126d054d, 0x1a29a7a0, 0x11734d64, 0x1ad2bc9e,
+       0x18bc806b, 0x144cf325, 0x183b0e0c, 0x14e6cabc, 0x17b5df22, 0x157d6935, 0x172d0838, 0x1610b755,
+       0x1e212105, 0x0ac7cd3b, 0x1dfeae62, 0x0b263eef, 0x1ddb13b7, 0x0b844298, 0x1db65262, 0x0be1d499,
+       0x10738799, 0x1b728345, 0x0f6e0ca9, 0x1c08c426, 0x0e63374d, 0x1c954b21, 0x0d536416, 0x1d17e774,
+       0x16a09e66, 0x16a09e66, 0x1610b755, 0x172d0838, 0x157d6935, 0x17b5df22, 0x14e6cabc, 0x183b0e0c,
+       0x1d906bcf, 0x0c3ef153, 0x1d696174, 0x0c9b9532, 0x1d4134d1, 0x0cf7bca2, 0x1d17e774, 0x0d536416,
+       0x0c3ef153, 0x1d906bcf, 0x0b263eef, 0x1dfeae62, 0x0a09ae4a, 0x1e6288ec, 0x08e9a220, 0x1ebbd8c9,
+       0x144cf325, 0x18bc806b, 0x13affa29, 0x193a224a, 0x130ff7fd, 0x19b3e048, 0x126d054d, 0x1a29a7a0,
+       0x1ced7af4, 0x0dae8805, 0x1cc1f0f4, 0x0e0924ec, 0x1c954b21, 0x0e63374d, 0x1c678b35, 0x0ebcbbae,
+       0x07c67e5f, 0x1f0a7efc, 0x06a0a809, 0x1f4e603b, 0x05788511, 0x1f8764fa, 0x044e7c34, 0x1fb57972,
+       0x11c73b3a, 0x1a9b6629, 0x111eb354, 0x1b090a58, 0x10738799, 0x1b728345, 0x0fc5d26e, 0x1bd7c0ac,
+       0x1c38b2f2, 0x0f15ae9c, 0x1c08c426, 0x0f6e0ca9, 0x1bd7c0ac, 0x0fc5d26e, 0x1ba5aa67, 0x101cfc87,
+       0x0322f4d8, 0x1fd88da4, 0x01f656e8, 0x1ff09566, 0x00c90ab0, 0x1ffd8861, 0xff9b78b8, 0x1fff6217,
+       0x0f15ae9c, 0x1c38b2f2, 0x0e63374d, 0x1c954b21, 0x0dae8805, 0x1ced7af4, 0x0cf7bca2, 0x1d4134d1,
+       0x1b728345, 0x10738799, 0x1b3e4d3f, 0x10c9704d, 0x1b090a58, 0x111eb354, 0x1ad2bc9e, 0x11734d64,
+       0xfe6e09a1, 0x1ff621e3, 0xfd4125ff, 0x1fe1cafd, 0xfc153635, 0x1fc26471, 0xfaeaa254, 0x1f97f925,
+       0x0c3ef153, 0x1d906bcf, 0x0b844298, 0x1ddb13b7, 0x0ac7cd3b, 0x1e212105, 0x0a09ae4a, 0x1e6288ec,
+       0x1a9b6629, 0x11c73b3a, 0x1a63091b, 0x121a7999, 0x1a29a7a0, 0x126d054d, 0x19ef43ef, 0x12bedb26,
+       0xf9c1d1f1, 0x1f6297d0, 0xf89b2c07, 0x1f2252f7, 0xf77716cf, 0x1ed740e7, 0xf655f79f, 0x1e817bab,
+       0x094a0317, 0x1e9f4157, 0x0888e931, 0x1ed740e7, 0x07c67e5f, 0x1f0a7efc, 0x0702e09b, 0x1f38f3ac,
+       0x19b3e048, 0x130ff7fd, 0x19777ef5, 0x136058b1, 0x193a224a, 0x13affa29, 0x18fbcca4, 0x13fed953,
+       0xf53832c5, 0x1e212105, 0xf41e2b67, 0x1db65262, 0xf308435e, 0x1d4134d1, 0xf1f6db14, 0x1cc1f0f4,
+       0x063e2e0f, 0x1f6297d0, 0x05788511, 0x1f8764fa, 0x04b2041c, 0x1fa7557f, 0x03eac9cb, 0x1fc26471,
+       0x18bc806b, 0x144cf325, 0x187c4010, 0x149a449c, 0x183b0e0c, 0x14e6cabc, 0x17f8ece3, 0x15328293,
+       0xf0ea5164, 0x1c38b2f2, 0xefe30379, 0x1ba5aa67, 0xeee14cac, 0x1b090a58, 0xede58667, 0x1a63091b,
+       0x0322f4d8, 0x1fd88da4, 0x025aa412, 0x1fe9cdad, 0x0191f65f, 0x1ff621e3, 0x00c90ab0, 0x1ffd8861,
+       0x17b5df22, 0x157d6935, 0x1771e75f, 0x15c77bbe, 0x172d0838, 0x1610b755, 0x16e74455, 0x16591926,
+       0xecf00803, 0x19b3e048, 0xec0126ad, 0x18fbcca4, 0xeb193544, 0x183b0e0c, 0xea388442, 0x1771e75f,
+       0x00000000, 0x20000000, 0xff36f550, 0x1ffd8861, 0xfe6e09a1, 0x1ff621e3, 0xfda55bee, 0x1fe9cdad,
+       0x16a09e66, 0x16a09e66, 0x16591926, 0x16e74455, 0x1610b755, 0x172d0838, 0x15c77bbe, 0x1771e75f,
+       0xe95f619a, 0x16a09e66, 0xe88e18a1, 0x15c77bbe, 0xe7c4f1f4, 0x14e6cabc, 0xe704335c, 0x13fed953,
+       0xfcdd0b28, 0x1fd88da4, 0xfc153635, 0x1fc26471, 0xfb4dfbe4, 0x1fa7557f, 0xfa877aef, 0x1f8764fa,
+       0x157d6935, 0x17b5df22, 0x15328293, 0x17f8ece3, 0x14e6cabc, 0x183b0e0c, 0x149a449c, 0x187c4010,
+       0xe64c1fb8, 0x130ff7fd, 0xe59cf6e5, 0x121a7999, 0xe4f6f5a8, 0x111eb354, 0xe45a5599, 0x101cfc87,
+       0xf9c1d1f1, 0x1f6297d0, 0xf8fd1f65, 0x1f38f3ac, 0xf83981a1, 0x1f0a7efc, 0xf77716cf, 0x1ed740e7,
+       0x144cf325, 0x18bc806b, 0x13fed953, 0x18fbcca4, 0x13affa29, 0x193a224a, 0x136058b1, 0x19777ef5,
+       0xe3c74d0e, 0x0f15ae9c, 0xe33e0f0c, 0x0e0924ec, 0xe2becb2f, 0x0cf7bca2, 0xe249ad9e, 0x0be1d499,
+       0xf6b5fce9, 0x1e9f4157, 0xf5f651b6, 0x1e6288ec, 0xf53832c5, 0x1e212105, 0xf47bbd68, 0x1ddb13b7,
+       0x130ff7fd, 0x19b3e048, 0x12bedb26, 0x19ef43ef, 0x126d054d, 0x1a29a7a0, 0x121a7999, 0x1a63091b,
+       0xe1dedefb, 0x0ac7cd3b, 0xe17e8455, 0x09aa0861, 0xe128bf19, 0x0888e931, 0xe0ddad09, 0x0764d3f9,
+       0xf3c10ead, 0x1d906bcf, 0xf308435e, 0x1d4134d1, 0xf25177fb, 0x1ced7af4, 0xf19cc8b3, 0x1c954b21,
+       0x11c73b3a, 0x1a9b6629, 0x11734d64, 0x1ad2bc9e, 0x111eb354, 0x1b090a58, 0x10c9704d, 0x1b3e4d3f,
+       0xe09d6830, 0x063e2e0f, 0xe06806db, 0x05155dac, 0xe03d9b8f, 0x03eac9cb, 0xe01e3503, 0x02beda01,
+       0xf0ea5164, 0x1c38b2f2, 0xf03a2d92, 0x1bd7c0ac, 0xef8c7867, 0x1b728345, 0xeee14cac, 0x1b090a58,
+       0x10738799, 0x1b728345, 0x101cfc87, 0x1ba5aa67, 0x0fc5d26e, 0x1bd7c0ac, 0x0f6e0ca9, 0x1c08c426,
+       0xe009de1d, 0x0191f65f, 0xe0009de9, 0x00648748, 0xe002779f, 0xff36f550, 0xe00f6a9a, 0xfe09a918,
+       0xee38c4c6, 0x1a9b6629, 0xed92fab3, 0x1a29a7a0, 0xecf00803, 0x19b3e048, 0xec5005d7, 0x193a224a,
+       0x0f15ae9c, 0x1c38b2f2, 0x0ebcbbae, 0x1c678b35, 0x0e63374d, 0x1c954b21, 0x0e0924ec, 0x1cc1f0f4,
+       0xe027725c, 0xfcdd0b28, 0xe04a868e, 0xfbb183cc, 0xe0789b06, 0xfa877aef, 0xe0b19fc5, 0xf95f57f7,
+       0xebb30cdb, 0x18bc806b, 0xeb193544, 0x183b0e0c, 0xea8296cb, 0x17b5df22, 0xe9ef48ab, 0x172d0838,
+       0x0dae8805, 0x1ced7af4, 0x0d536416, 0x1d17e774, 0x0cf7bca2, 0x1d4134d1, 0x0c9b9532, 0x1d696174,
+       0xe0f58104, 0xf83981a1, 0xe1442737, 0xf7165de0, 0xe19d7714, 0xf5f651b6, 0xe201519e, 0xf4d9c111,
+       0xe95f619a, 0x16a09e66, 0xe8d2f7c8, 0x1610b755, 0xe84a20de, 0x157d6935, 0xe7c4f1f4, 0x14e6cabc,
+       0x0c3ef153, 0x1d906bcf, 0x0be1d499, 0x1db65262, 0x0b844298, 0x1ddb13b7, 0x0b263eef, 0x1dfeae62,
+       0xe26f9431, 0xf3c10ead, 0xe2e8188c, 0xf2ac9bea, 0xe36ab4df, 0xf19cc8b3, 0xe3f73bda, 0xf091f357,
+       0xe7437f95, 0x144cf325, 0xe6c5ddb6, 0x13affa29, 0xe64c1fb8, 0x130ff7fd, 0xe5d65860, 0x126d054d,
+       0x0ac7cd3b, 0x1e212105, 0x0a68f121, 0x1e426a4b, 0x0a09ae4a, 0x1e6288ec, 0x09aa0861, 0x1e817bab,
+       0xe48d7cbb, 0xef8c7867, 0xe52d4362, 0xee8cb29c, 0xe5d65860, 0xed92fab3, 0xe688810b, 0xec9fa74f,
+       0xe56499d7, 0x11c73b3a, 0xe4f6f5a8, 0x111eb354, 0xe48d7cbb, 0x10738799, 0xe4283f54, 0x0fc5d26e,
+       0x094a0317, 0x1e9f4157, 0x08e9a220, 0x1ebbd8c9, 0x0888e931, 0x1ed740e7, 0x0827dc07, 0x1ef178a4,
+       0xe7437f95, 0xebb30cdb, 0xe807131d, 0xeacd7d6d, 0xe8d2f7c8, 0xe9ef48ab, 0xe9a6e6da, 0xe918bbab,
+       0xe3c74d0e, 0x0f15ae9c, 0xe36ab4df, 0x0e63374d, 0xe312850c, 0x0dae8805, 0xe2becb2f, 0x0cf7bca2,
+       0x07c67e5f, 0x1f0a7efc, 0x0764d3f9, 0x1f2252f7, 0x0702e09b, 0x1f38f3ac, 0x06a0a809, 0x1f4e603b,
+       0xea8296cb, 0xe84a20de, 0xeb65bb64, 0xe783bff0, 0xec5005d7, 0xe6c5ddb6, 0xed4124da, 0xe610bc11,
+       0xe26f9431, 0x0c3ef153, 0xe224ec49, 0x0b844298, 0xe1dedefb, 0x0ac7cd3b, 0xe19d7714, 0x0a09ae4a,
+       0x063e2e0f, 0x1f6297d0, 0x05db7678, 0x1f7599a4, 0x05788511, 0x1f8764fa, 0x05155dac, 0x1f97f925,
+       0xee38c4c6, 0xe56499d7, 0xef368fb3, 0xe4c1b2c1, 0xf03a2d92, 0xe4283f54, 0xf1434452, 0xe39874cb,
+       0xe160bea9, 0x094a0317, 0xe128bf19, 0x0888e931, 0xe0f58104, 0x07c67e5f, 0xe0c70c54, 0x0702e09b,
+       0x04b2041c, 0x1fa7557f, 0x044e7c34, 0x1fb57972, 0x03eac9cb, 0x1fc26471, 0x0386f0b9, 0x1fce15fd,
+       0xf25177fb, 0xe312850c, 0xf3646ace, 0xe2969e8c, 0xf47bbd68, 0xe224ec49, 0xf5970edf, 0xe1bd95b5,
+       0xe09d6830, 0x063e2e0f, 0xe0789b06, 0x05788511, 0xe058aa81, 0x04b2041c, 0xe03d9b8f, 0x03eac9cb,
+       0x0322f4d8, 0x1fd88da4, 0x02beda01, 0x1fe1cafd, 0x025aa412, 0x1fe9cdad, 0x01f656e8, 0x1ff09566,
+       0xf6b5fce9, 0xe160bea9, 0xf7d823f9, 0xe10e875c, 0xf8fd1f65, 0xe0c70c54, 0xfa248988, 0xe08a665c,
+       0xe027725c, 0x0322f4d8, 0xe0163253, 0x025aa412, 0xe009de1d, 0x0191f65f, 0xe002779f, 0x00c90ab0,
+       0x0191f65f, 0x1ff621e3, 0x012d8657, 0x1ffa72f0, 0x00c90ab0, 0x1ffd8861, 0x00648748, 0x1fff6217,
        0xfb4dfbe4, 0xe058aa81, 0xfc790f47, 0xe031ea03, 0xfda55bee, 0xe0163253, 0xfed279a9, 0xe0058d10
 };
 
 const int twidTab64[4*6 + 16*6] = {
-       0x20000000, 0x00000000, 0x16a09e66, 0x16a09e66, 0x00000000, 0x20000000, 0xe95f619a, 0x16a09e66, 
-       0x20000000, 0x00000000, 0x1d906bcf, 0x0c3ef153, 0x16a09e66, 0x16a09e66, 0x0c3ef153, 0x1d906bcf, 
-       0x20000000, 0x00000000, 0x0c3ef153, 0x1d906bcf, 0xe95f619a, 0x16a09e66, 0xe26f9431, 0xf3c10ead, 
-
-       0x20000000, 0x00000000, 0x1f6297d0, 0x063e2e0f, 0x1d906bcf, 0x0c3ef153, 0x1a9b6629, 0x11c73b3a, 
-       0x20000000, 0x00000000, 0x1fd88da4, 0x0322f4d8, 0x1f6297d0, 0x063e2e0f, 0x1e9f4157, 0x094a0317, 
-       0x20000000, 0x00000000, 0x1e9f4157, 0x094a0317, 0x1a9b6629, 0x11c73b3a, 0x144cf325, 0x18bc806b, 
-       0x16a09e66, 0x16a09e66, 0x11c73b3a, 0x1a9b6629, 0x0c3ef153, 0x1d906bcf, 0x063e2e0f, 0x1f6297d0, 
-       0x1d906bcf, 0x0c3ef153, 0x1c38b2f2, 0x0f15ae9c, 0x1a9b6629, 0x11c73b3a, 0x18bc806b, 0x144cf325, 
-       0x0c3ef153, 0x1d906bcf, 0x0322f4d8, 0x1fd88da4, 0xf9c1d1f1, 0x1f6297d0, 0xf0ea5164, 0x1c38b2f2, 
-       0x00000000, 0x20000000, 0xf9c1d1f1, 0x1f6297d0, 0xf3c10ead, 0x1d906bcf, 0xee38c4c6, 0x1a9b6629, 
-       0x16a09e66, 0x16a09e66, 0x144cf325, 0x18bc806b, 0x11c73b3a, 0x1a9b6629, 0x0f15ae9c, 0x1c38b2f2, 
-       0xe95f619a, 0x16a09e66, 0xe3c74d0e, 0x0f15ae9c, 0xe09d6830, 0x063e2e0f, 0xe027725c, 0xfcdd0b28, 
-       0xe95f619a, 0x16a09e66, 0xe56499d7, 0x11c73b3a, 0xe26f9431, 0x0c3ef153, 0xe09d6830, 0x063e2e0f, 
-       0x0c3ef153, 0x1d906bcf, 0x094a0317, 0x1e9f4157, 0x063e2e0f, 0x1f6297d0, 0x0322f4d8, 0x1fd88da4, 
+       0x20000000, 0x00000000, 0x16a09e66, 0x16a09e66, 0x00000000, 0x20000000, 0xe95f619a, 0x16a09e66,
+       0x20000000, 0x00000000, 0x1d906bcf, 0x0c3ef153, 0x16a09e66, 0x16a09e66, 0x0c3ef153, 0x1d906bcf,
+       0x20000000, 0x00000000, 0x0c3ef153, 0x1d906bcf, 0xe95f619a, 0x16a09e66, 0xe26f9431, 0xf3c10ead,
+
+       0x20000000, 0x00000000, 0x1f6297d0, 0x063e2e0f, 0x1d906bcf, 0x0c3ef153, 0x1a9b6629, 0x11c73b3a,
+       0x20000000, 0x00000000, 0x1fd88da4, 0x0322f4d8, 0x1f6297d0, 0x063e2e0f, 0x1e9f4157, 0x094a0317,
+       0x20000000, 0x00000000, 0x1e9f4157, 0x094a0317, 0x1a9b6629, 0x11c73b3a, 0x144cf325, 0x18bc806b,
+       0x16a09e66, 0x16a09e66, 0x11c73b3a, 0x1a9b6629, 0x0c3ef153, 0x1d906bcf, 0x063e2e0f, 0x1f6297d0,
+       0x1d906bcf, 0x0c3ef153, 0x1c38b2f2, 0x0f15ae9c, 0x1a9b6629, 0x11c73b3a, 0x18bc806b, 0x144cf325,
+       0x0c3ef153, 0x1d906bcf, 0x0322f4d8, 0x1fd88da4, 0xf9c1d1f1, 0x1f6297d0, 0xf0ea5164, 0x1c38b2f2,
+       0x00000000, 0x20000000, 0xf9c1d1f1, 0x1f6297d0, 0xf3c10ead, 0x1d906bcf, 0xee38c4c6, 0x1a9b6629,
+       0x16a09e66, 0x16a09e66, 0x144cf325, 0x18bc806b, 0x11c73b3a, 0x1a9b6629, 0x0f15ae9c, 0x1c38b2f2,
+       0xe95f619a, 0x16a09e66, 0xe3c74d0e, 0x0f15ae9c, 0xe09d6830, 0x063e2e0f, 0xe027725c, 0xfcdd0b28,
+       0xe95f619a, 0x16a09e66, 0xe56499d7, 0x11c73b3a, 0xe26f9431, 0x0c3ef153, 0xe09d6830, 0x063e2e0f,
+       0x0c3ef153, 0x1d906bcf, 0x094a0317, 0x1e9f4157, 0x063e2e0f, 0x1f6297d0, 0x0322f4d8, 0x1fd88da4,
        0xe26f9431, 0xf3c10ead, 0xe7437f95, 0xebb30cdb, 0xee38c4c6, 0xe56499d7, 0xf6b5fce9, 0xe160bea9
 };
 
 #else
 
-/* 
- *  Q30 for 128 and 1024 
+/*
+ *  Q30 for 128 and 1024
  *
  * for (i = 0; i < num/4; i++) {
  *   angle = (i + 0.125) * M_PI / num;
  *   x = cos(angle) * (1 << 30);
  *   x = sin(angle) * (1 << 30);
- * 
+ *
  *   angle = (num/2 - 1 - i + 0.125) * M_PI / num;
  *   x = cos(angle) * (1 << 30);
  *   x = sin(angle) * (1 << 30);
@@ -667,379 +667,379 @@ const int twidTab64[4*6 + 16*6] = {
  */
 const int cossintab[128 + 1024] = {
        /* 128 */
-       0x3fffec43, 0x003243f1, 0x015fd4d2, 0x3ffc38d1, 0x3ff9c13a, 0x01c454f5, 0x02f1b755, 0x3feea776, 
-       0x3fe9b8a9, 0x03562038, 0x0483259d, 0x3fd73a4a, 0x3fcfd50b, 0x04e767c5, 0x0613e1c5, 0x3fb5f4ea, 
-       0x3fac1a5b, 0x0677edbb, 0x07a3adff, 0x3f8adc77, 0x3f7e8e1e, 0x08077457, 0x09324ca7, 0x3f55f796, 
-       0x3f473759, 0x0995bdfd, 0x0abf8043, 0x3f174e70, 0x3f061e95, 0x0b228d42, 0x0c4b0b94, 0x3eceeaad, 
-       0x3ebb4ddb, 0x0cada4f5, 0x0dd4b19a, 0x3e7cd778, 0x3e66d0b4, 0x0e36c82a, 0x0f5c35a3, 0x3e212179, 
-       0x3e08b42a, 0x0fbdba40, 0x10e15b4e, 0x3dbbd6d4, 0x3da106bd, 0x11423ef0, 0x1263e699, 0x3d4d0728, 
-       0x3d2fd86c, 0x12c41a4f, 0x13e39be9, 0x3cd4c38b, 0x3cb53aaa, 0x144310dd, 0x15604013, 0x3c531e88, 
-       0x3c314060, 0x15bee78c, 0x16d99864, 0x3bc82c1f, 0x3ba3fde7, 0x173763c9, 0x184f6aab, 0x3b3401bb, 
-       0x3b0d8909, 0x18ac4b87, 0x19c17d44, 0x3a96b636, 0x3a6df8f8, 0x1a1d6544, 0x1b2f971e, 0x39f061d2, 
-       0x39c5664f, 0x1b8a7815, 0x1c997fc4, 0x39411e33, 0x3913eb0e, 0x1cf34baf, 0x1dfeff67, 0x38890663, 
-       0x3859a292, 0x1e57a86d, 0x1f5fdee6, 0x37c836c2, 0x3796a996, 0x1fb7575c, 0x20bbe7d8, 0x36fecd0e, 
-       0x36cb1e2a, 0x21122240, 0x2212e492, 0x362ce855, 0x35f71fb1, 0x2267d3a0, 0x2364a02e, 0x3552a8f4, 
-       0x351acedd, 0x23b836ca, 0x24b0e699, 0x34703095, 0x34364da6, 0x250317df, 0x25f78497, 0x3385a222, 
-       0x3349bf48, 0x264843d9, 0x273847c8, 0x329321c7, 0x32554840, 0x27878893, 0x2872feb6, 0x3198d4ea, 
-       0x31590e3e, 0x28c0b4d2, 0x29a778db, 0x3096e223, 0x30553828, 0x29f3984c, 0x2ad586a3, 0x2f8d713a, 
-       0x2f49ee0f, 0x2b2003ac, 0x2bfcf97c, 0x2e7cab1c, 0x2e37592c, 0x2c45c8a0, 0x2d1da3d5, 0x2d64b9da, 
+       0x3fffec43, 0x003243f1, 0x015fd4d2, 0x3ffc38d1, 0x3ff9c13a, 0x01c454f5, 0x02f1b755, 0x3feea776,
+       0x3fe9b8a9, 0x03562038, 0x0483259d, 0x3fd73a4a, 0x3fcfd50b, 0x04e767c5, 0x0613e1c5, 0x3fb5f4ea,
+       0x3fac1a5b, 0x0677edbb, 0x07a3adff, 0x3f8adc77, 0x3f7e8e1e, 0x08077457, 0x09324ca7, 0x3f55f796,
+       0x3f473759, 0x0995bdfd, 0x0abf8043, 0x3f174e70, 0x3f061e95, 0x0b228d42, 0x0c4b0b94, 0x3eceeaad,
+       0x3ebb4ddb, 0x0cada4f5, 0x0dd4b19a, 0x3e7cd778, 0x3e66d0b4, 0x0e36c82a, 0x0f5c35a3, 0x3e212179,
+       0x3e08b42a, 0x0fbdba40, 0x10e15b4e, 0x3dbbd6d4, 0x3da106bd, 0x11423ef0, 0x1263e699, 0x3d4d0728,
+       0x3d2fd86c, 0x12c41a4f, 0x13e39be9, 0x3cd4c38b, 0x3cb53aaa, 0x144310dd, 0x15604013, 0x3c531e88,
+       0x3c314060, 0x15bee78c, 0x16d99864, 0x3bc82c1f, 0x3ba3fde7, 0x173763c9, 0x184f6aab, 0x3b3401bb,
+       0x3b0d8909, 0x18ac4b87, 0x19c17d44, 0x3a96b636, 0x3a6df8f8, 0x1a1d6544, 0x1b2f971e, 0x39f061d2,
+       0x39c5664f, 0x1b8a7815, 0x1c997fc4, 0x39411e33, 0x3913eb0e, 0x1cf34baf, 0x1dfeff67, 0x38890663,
+       0x3859a292, 0x1e57a86d, 0x1f5fdee6, 0x37c836c2, 0x3796a996, 0x1fb7575c, 0x20bbe7d8, 0x36fecd0e,
+       0x36cb1e2a, 0x21122240, 0x2212e492, 0x362ce855, 0x35f71fb1, 0x2267d3a0, 0x2364a02e, 0x3552a8f4,
+       0x351acedd, 0x23b836ca, 0x24b0e699, 0x34703095, 0x34364da6, 0x250317df, 0x25f78497, 0x3385a222,
+       0x3349bf48, 0x264843d9, 0x273847c8, 0x329321c7, 0x32554840, 0x27878893, 0x2872feb6, 0x3198d4ea,
+       0x31590e3e, 0x28c0b4d2, 0x29a778db, 0x3096e223, 0x30553828, 0x29f3984c, 0x2ad586a3, 0x2f8d713a,
+       0x2f49ee0f, 0x2b2003ac, 0x2bfcf97c, 0x2e7cab1c, 0x2e37592c, 0x2c45c8a0, 0x2d1da3d5, 0x2d64b9da,
        /* 1024 */
-       0x3fffffb1, 0x0006487f, 0x002bfb74, 0x3ffff0e3, 0x3fffe705, 0x00388c6e, 0x005e3f4c, 0x3fffba9b, 
-       0x3fffa6de, 0x006ad03b, 0x009082ea, 0x3fff5cd8, 0x3fff3f3c, 0x009d13c5, 0x00c2c62f, 0x3ffed79b, 
-       0x3ffeb021, 0x00cf56ef, 0x00f508fc, 0x3ffe2ae5, 0x3ffdf98c, 0x01019998, 0x01274b31, 0x3ffd56b5, 
-       0x3ffd1b7e, 0x0133dba3, 0x01598cb1, 0x3ffc5b0c, 0x3ffc15f7, 0x01661cf0, 0x018bcd5b, 0x3ffb37ec, 
-       0x3ffae8f9, 0x01985d60, 0x01be0d11, 0x3ff9ed53, 0x3ff99483, 0x01ca9cd4, 0x01f04bb4, 0x3ff87b44, 
-       0x3ff81896, 0x01fcdb2e, 0x02228924, 0x3ff6e1bf, 0x3ff67534, 0x022f184d, 0x0254c544, 0x3ff520c5, 
-       0x3ff4aa5d, 0x02615414, 0x0286fff3, 0x3ff33858, 0x3ff2b813, 0x02938e62, 0x02b93914, 0x3ff12878, 
-       0x3ff09e56, 0x02c5c71a, 0x02eb7086, 0x3feef126, 0x3fee5d28, 0x02f7fe1c, 0x031da62b, 0x3fec9265, 
-       0x3febf48b, 0x032a3349, 0x034fd9e5, 0x3fea0c35, 0x3fe96480, 0x035c6682, 0x03820b93, 0x3fe75e98, 
-       0x3fe6ad08, 0x038e97a9, 0x03b43b17, 0x3fe48990, 0x3fe3ce26, 0x03c0c69e, 0x03e66852, 0x3fe18d1f, 
-       0x3fe0c7da, 0x03f2f342, 0x04189326, 0x3fde6945, 0x3fdd9a27, 0x04251d77, 0x044abb73, 0x3fdb1e06, 
-       0x3fda450f, 0x0457451d, 0x047ce11a, 0x3fd7ab64, 0x3fd6c894, 0x04896a16, 0x04af03fc, 0x3fd4115f, 
-       0x3fd324b7, 0x04bb8c42, 0x04e123fa, 0x3fd04ffc, 0x3fcf597c, 0x04edab83, 0x051340f6, 0x3fcc673b, 
-       0x3fcb66e4, 0x051fc7b9, 0x05455ad1, 0x3fc8571f, 0x3fc74cf3, 0x0551e0c7, 0x0577716b, 0x3fc41fac, 
-       0x3fc30baa, 0x0583f68c, 0x05a984a6, 0x3fbfc0e3, 0x3fbea30c, 0x05b608eb, 0x05db9463, 0x3fbb3ac7, 
-       0x3fba131b, 0x05e817c3, 0x060da083, 0x3fb68d5b, 0x3fb55bdc, 0x061a22f7, 0x063fa8e7, 0x3fb1b8a2, 
-       0x3fb07d50, 0x064c2a67, 0x0671ad71, 0x3facbc9f, 0x3fab777b, 0x067e2df5, 0x06a3ae00, 0x3fa79954, 
-       0x3fa64a5f, 0x06b02d81, 0x06d5aa77, 0x3fa24ec6, 0x3fa0f600, 0x06e228ee, 0x0707a2b7, 0x3f9cdcf7, 
-       0x3f9b7a62, 0x0714201b, 0x073996a1, 0x3f9743eb, 0x3f95d787, 0x074612eb, 0x076b8616, 0x3f9183a5, 
-       0x3f900d72, 0x0778013d, 0x079d70f7, 0x3f8b9c28, 0x3f8a1c29, 0x07a9eaf5, 0x07cf5726, 0x3f858d79, 
-       0x3f8403ae, 0x07dbcff2, 0x08013883, 0x3f7f579b, 0x3f7dc405, 0x080db016, 0x083314f1, 0x3f78fa92, 
-       0x3f775d31, 0x083f8b43, 0x0864ec4f, 0x3f727661, 0x3f70cf38, 0x08716159, 0x0896be80, 0x3f6bcb0e, 
-       0x3f6a1a1c, 0x08a3323a, 0x08c88b65, 0x3f64f89b, 0x3f633de2, 0x08d4fdc6, 0x08fa52de, 0x3f5dff0e, 
-       0x3f5c3a8f, 0x0906c3e0, 0x092c14ce, 0x3f56de6a, 0x3f551026, 0x09388469, 0x095dd116, 0x3f4f96b4, 
-       0x3f4dbeac, 0x096a3f42, 0x098f8796, 0x3f4827f0, 0x3f464626, 0x099bf44c, 0x09c13831, 0x3f409223, 
-       0x3f3ea697, 0x09cda368, 0x09f2e2c7, 0x3f38d552, 0x3f36e006, 0x09ff4c78, 0x0a24873a, 0x3f30f181, 
-       0x3f2ef276, 0x0a30ef5e, 0x0a56256c, 0x3f28e6b6, 0x3f26ddec, 0x0a628bfa, 0x0a87bd3d, 0x3f20b4f5, 
-       0x3f1ea26e, 0x0a94222f, 0x0ab94e8f, 0x3f185c43, 0x3f164001, 0x0ac5b1dc, 0x0aead944, 0x3f0fdca5, 
-       0x3f0db6a9, 0x0af73ae5, 0x0b1c5d3d, 0x3f073621, 0x3f05066d, 0x0b28bd2a, 0x0b4dda5c, 0x3efe68bc, 
-       0x3efc2f50, 0x0b5a388d, 0x0b7f5081, 0x3ef5747b, 0x3ef3315a, 0x0b8bacf0, 0x0bb0bf8f, 0x3eec5965, 
-       0x3eea0c8e, 0x0bbd1a33, 0x0be22766, 0x3ee3177e, 0x3ee0c0f4, 0x0bee8038, 0x0c1387e9, 0x3ed9aecc, 
-       0x3ed74e91, 0x0c1fdee1, 0x0c44e0f9, 0x3ed01f55, 0x3ecdb56a, 0x0c513610, 0x0c763278, 0x3ec66920, 
-       0x3ec3f585, 0x0c8285a5, 0x0ca77c47, 0x3ebc8c31, 0x3eba0ee9, 0x0cb3cd84, 0x0cd8be47, 0x3eb2888f, 
-       0x3eb0019c, 0x0ce50d8c, 0x0d09f85b, 0x3ea85e41, 0x3ea5cda3, 0x0d1645a0, 0x0d3b2a64, 0x3e9e0d4c, 
-       0x3e9b7306, 0x0d4775a1, 0x0d6c5443, 0x3e9395b7, 0x3e90f1ca, 0x0d789d71, 0x0d9d75db, 0x3e88f788, 
-       0x3e8649f5, 0x0da9bcf2, 0x0dce8f0d, 0x3e7e32c6, 0x3e7b7b90, 0x0ddad406, 0x0dff9fba, 0x3e734778, 
-       0x3e70869f, 0x0e0be28e, 0x0e30a7c5, 0x3e6835a4, 0x3e656b2b, 0x0e3ce86b, 0x0e61a70f, 0x3e5cfd51, 
-       0x3e5a2939, 0x0e6de580, 0x0e929d7a, 0x3e519e86, 0x3e4ec0d1, 0x0e9ed9af, 0x0ec38ae8, 0x3e46194a, 
-       0x3e4331fa, 0x0ecfc4d9, 0x0ef46f3b, 0x3e3a6da4, 0x3e377cbb, 0x0f00a6df, 0x0f254a53, 0x3e2e9b9c, 
-       0x3e2ba11b, 0x0f317fa5, 0x0f561c15, 0x3e22a338, 0x3e1f9f21, 0x0f624f0c, 0x0f86e460, 0x3e168480, 
-       0x3e1376d5, 0x0f9314f5, 0x0fb7a317, 0x3e0a3f7b, 0x3e07283f, 0x0fc3d143, 0x0fe8581d, 0x3dfdd432, 
-       0x3dfab365, 0x0ff483d7, 0x10190352, 0x3df142ab, 0x3dee1851, 0x10252c94, 0x1049a49a, 0x3de48aef, 
-       0x3de15708, 0x1055cb5b, 0x107a3bd5, 0x3dd7ad05, 0x3dd46f94, 0x1086600e, 0x10aac8e6, 0x3dcaa8f5, 
-       0x3dc761fc, 0x10b6ea90, 0x10db4baf, 0x3dbd7ec7, 0x3dba2e48, 0x10e76ac3, 0x110bc413, 0x3db02e84, 
-       0x3dacd481, 0x1117e088, 0x113c31f3, 0x3da2b834, 0x3d9f54af, 0x11484bc2, 0x116c9531, 0x3d951bde, 
-       0x3d91aed9, 0x1178ac53, 0x119cedaf, 0x3d87598c, 0x3d83e309, 0x11a9021d, 0x11cd3b50, 0x3d797145, 
-       0x3d75f147, 0x11d94d02, 0x11fd7df6, 0x3d6b6313, 0x3d67d99b, 0x12098ce5, 0x122db583, 0x3d5d2efe, 
-       0x3d599c0e, 0x1239c1a7, 0x125de1da, 0x3d4ed50f, 0x3d4b38aa, 0x1269eb2b, 0x128e02dc, 0x3d40554e, 
-       0x3d3caf76, 0x129a0954, 0x12be186c, 0x3d31afc5, 0x3d2e007c, 0x12ca1c03, 0x12ee226c, 0x3d22e47c, 
-       0x3d1f2bc5, 0x12fa231b, 0x131e20c0, 0x3d13f37e, 0x3d10315a, 0x132a1e7e, 0x134e1348, 0x3d04dcd2, 
-       0x3d011145, 0x135a0e0e, 0x137df9e7, 0x3cf5a082, 0x3cf1cb8e, 0x1389f1af, 0x13add481, 0x3ce63e98, 
-       0x3ce2603f, 0x13b9c943, 0x13dda2f7, 0x3cd6b71e, 0x3cd2cf62, 0x13e994ab, 0x140d652c, 0x3cc70a1c, 
-       0x3cc318ff, 0x141953cb, 0x143d1b02, 0x3cb7379c, 0x3cb33d22, 0x14490685, 0x146cc45c, 0x3ca73fa9, 
-       0x3ca33bd3, 0x1478acbc, 0x149c611d, 0x3c97224c, 0x3c93151d, 0x14a84652, 0x14cbf127, 0x3c86df8e, 
-       0x3c82c909, 0x14d7d32a, 0x14fb745e, 0x3c76777b, 0x3c7257a2, 0x15075327, 0x152aeaa3, 0x3c65ea1c, 
-       0x3c61c0f1, 0x1536c62b, 0x155a53d9, 0x3c55377b, 0x3c510501, 0x15662c18, 0x1589afe3, 0x3c445fa2, 
-       0x3c4023dd, 0x159584d3, 0x15b8fea4, 0x3c33629d, 0x3c2f1d8e, 0x15c4d03e, 0x15e83fff, 0x3c224075, 
-       0x3c1df21f, 0x15f40e3a, 0x161773d6, 0x3c10f935, 0x3c0ca19b, 0x16233eac, 0x16469a0d, 0x3bff8ce8, 
-       0x3bfb2c0c, 0x16526176, 0x1675b286, 0x3bedfb99, 0x3be9917e, 0x1681767c, 0x16a4bd25, 0x3bdc4552, 
-       0x3bd7d1fa, 0x16b07d9f, 0x16d3b9cc, 0x3bca6a1d, 0x3bc5ed8d, 0x16df76c3, 0x1702a85e, 0x3bb86a08, 
-       0x3bb3e440, 0x170e61cc, 0x173188be, 0x3ba6451b, 0x3ba1b620, 0x173d3e9b, 0x17605ad0, 0x3b93fb63, 
-       0x3b8f6337, 0x176c0d15, 0x178f1e76, 0x3b818ceb, 0x3b7ceb90, 0x179acd1c, 0x17bdd394, 0x3b6ef9be, 
-       0x3b6a4f38, 0x17c97e93, 0x17ec7a0d, 0x3b5c41e8, 0x3b578e39, 0x17f8215e, 0x181b11c4, 0x3b496574, 
-       0x3b44a8a0, 0x1826b561, 0x18499a9d, 0x3b36646e, 0x3b319e77, 0x18553a7d, 0x1878147a, 0x3b233ee1, 
-       0x3b1e6fca, 0x1883b097, 0x18a67f3f, 0x3b0ff4d9, 0x3b0b1ca6, 0x18b21791, 0x18d4dad0, 0x3afc8663, 
-       0x3af7a516, 0x18e06f50, 0x1903270f, 0x3ae8f38b, 0x3ae40926, 0x190eb7b7, 0x193163e1, 0x3ad53c5b, 
-       0x3ad048e3, 0x193cf0a9, 0x195f9128, 0x3ac160e1, 0x3abc6458, 0x196b1a09, 0x198daec8, 0x3aad6129, 
-       0x3aa85b92, 0x199933bb, 0x19bbbca6, 0x3a993d3e, 0x3a942e9d, 0x19c73da3, 0x19e9baa3, 0x3a84f52f, 
-       0x3a7fdd86, 0x19f537a4, 0x1a17a8a5, 0x3a708906, 0x3a6b6859, 0x1a2321a2, 0x1a45868e, 0x3a5bf8d1, 
-       0x3a56cf23, 0x1a50fb81, 0x1a735442, 0x3a47449c, 0x3a4211f0, 0x1a7ec524, 0x1aa111a6, 0x3a326c74, 
-       0x3a2d30cd, 0x1aac7e6f, 0x1acebe9d, 0x3a1d7066, 0x3a182bc8, 0x1ada2746, 0x1afc5b0a, 0x3a08507f, 
-       0x3a0302ed, 0x1b07bf8c, 0x1b29e6d2, 0x39f30ccc, 0x39edb649, 0x1b354727, 0x1b5761d8, 0x39dda55a, 
-       0x39d845e9, 0x1b62bdf8, 0x1b84cc01, 0x39c81a36, 0x39c2b1da, 0x1b9023e5, 0x1bb22530, 0x39b26b6d, 
-       0x39acfa2b, 0x1bbd78d2, 0x1bdf6d4a, 0x399c990d, 0x39971ee7, 0x1beabca1, 0x1c0ca432, 0x3986a324, 
-       0x3981201e, 0x1c17ef39, 0x1c39c9cd, 0x397089bf, 0x396afddc, 0x1c45107c, 0x1c66ddfe, 0x395a4ceb, 
-       0x3954b82e, 0x1c72204f, 0x1c93e0ab, 0x3943ecb6, 0x393e4f23, 0x1c9f1e96, 0x1cc0d1b6, 0x392d692f, 
-       0x3927c2c9, 0x1ccc0b35, 0x1cedb106, 0x3916c262, 0x3911132d, 0x1cf8e611, 0x1d1a7e7d, 0x38fff85e, 
-       0x38fa405e, 0x1d25af0d, 0x1d473a00, 0x38e90b31, 0x38e34a69, 0x1d52660f, 0x1d73e374, 0x38d1fae9, 
-       0x38cc315d, 0x1d7f0afb, 0x1da07abc, 0x38bac795, 0x38b4f547, 0x1dab9db5, 0x1dccffbf, 0x38a37142, 
-       0x389d9637, 0x1dd81e21, 0x1df9725f, 0x388bf7ff, 0x3886143b, 0x1e048c24, 0x1e25d282, 0x38745bdb, 
-       0x386e6f60, 0x1e30e7a4, 0x1e52200c, 0x385c9ce3, 0x3856a7b6, 0x1e5d3084, 0x1e7e5ae2, 0x3844bb28, 
-       0x383ebd4c, 0x1e8966a8, 0x1eaa82e9, 0x382cb6b7, 0x3826b030, 0x1eb589f7, 0x1ed69805, 0x38148f9f, 
-       0x380e8071, 0x1ee19a54, 0x1f029a1c, 0x37fc45ef, 0x37f62e1d, 0x1f0d97a5, 0x1f2e8911, 0x37e3d9b7, 
-       0x37ddb945, 0x1f3981ce, 0x1f5a64cb, 0x37cb4b04, 0x37c521f6, 0x1f6558b5, 0x1f862d2d, 0x37b299e7, 
-       0x37ac6841, 0x1f911c3d, 0x1fb1e21d, 0x3799c66f, 0x37938c34, 0x1fbccc4d, 0x1fdd8381, 0x3780d0aa, 
-       0x377a8ddf, 0x1fe868c8, 0x2009113c, 0x3767b8a9, 0x37616d51, 0x2013f196, 0x20348b35, 0x374e7e7b, 
-       0x37482a9a, 0x203f6699, 0x205ff14f, 0x3735222f, 0x372ec5c9, 0x206ac7b8, 0x208b4372, 0x371ba3d4, 
-       0x37153eee, 0x209614d9, 0x20b68181, 0x3702037c, 0x36fb9618, 0x20c14ddf, 0x20e1ab63, 0x36e84135, 
-       0x36e1cb58, 0x20ec72b1, 0x210cc0fc, 0x36ce5d10, 0x36c7debd, 0x21178334, 0x2137c232, 0x36b4571b, 
-       0x36add058, 0x21427f4d, 0x2162aeea, 0x369a2f69, 0x3693a038, 0x216d66e2, 0x218d870b, 0x367fe608, 
-       0x36794e6e, 0x219839d8, 0x21b84a79, 0x36657b08, 0x365edb09, 0x21c2f815, 0x21e2f91a, 0x364aee7b, 
-       0x3644461b, 0x21eda17f, 0x220d92d4, 0x36304070, 0x36298fb4, 0x221835fb, 0x2238178d, 0x361570f8, 
-       0x360eb7e3, 0x2242b56f, 0x22628729, 0x35fa8023, 0x35f3beba, 0x226d1fc1, 0x228ce191, 0x35df6e03, 
-       0x35d8a449, 0x229774d7, 0x22b726a8, 0x35c43aa7, 0x35bd68a1, 0x22c1b496, 0x22e15655, 0x35a8e621, 
-       0x35a20bd3, 0x22ebdee5, 0x230b707e, 0x358d7081, 0x35868def, 0x2315f3a8, 0x23357509, 0x3571d9d9, 
-       0x356aef08, 0x233ff2c8, 0x235f63dc, 0x35562239, 0x354f2f2c, 0x2369dc29, 0x23893cdd, 0x353a49b2, 
-       0x35334e6f, 0x2393afb2, 0x23b2fff3, 0x351e5056, 0x35174ce0, 0x23bd6d48, 0x23dcad03, 0x35023636, 
-       0x34fb2a92, 0x23e714d3, 0x240643f4, 0x34e5fb63, 0x34dee795, 0x2410a639, 0x242fc4ad, 0x34c99fef, 
-       0x34c283fb, 0x243a215f, 0x24592f13, 0x34ad23eb, 0x34a5ffd5, 0x2463862c, 0x2482830d, 0x34908768, 
-       0x34895b36, 0x248cd487, 0x24abc082, 0x3473ca79, 0x346c962f, 0x24b60c57, 0x24d4e757, 0x3456ed2f, 
-       0x344fb0d1, 0x24df2d81, 0x24fdf775, 0x3439ef9c, 0x3432ab2e, 0x250837ed, 0x2526f0c1, 0x341cd1d2, 
-       0x34158559, 0x25312b81, 0x254fd323, 0x33ff93e2, 0x33f83f62, 0x255a0823, 0x25789e80, 0x33e235df, 
-       0x33dad95e, 0x2582cdbc, 0x25a152c0, 0x33c4b7db, 0x33bd535c, 0x25ab7c30, 0x25c9efca, 0x33a719e8, 
-       0x339fad70, 0x25d41369, 0x25f27584, 0x33895c18, 0x3381e7ac, 0x25fc934b, 0x261ae3d6, 0x336b7e7e, 
-       0x33640223, 0x2624fbbf, 0x26433aa7, 0x334d812d, 0x3345fce6, 0x264d4cac, 0x266b79dd, 0x332f6435, 
-       0x3327d808, 0x267585f8, 0x2693a161, 0x331127ab, 0x3309939c, 0x269da78b, 0x26bbb119, 0x32f2cba1, 
-       0x32eb2fb5, 0x26c5b14c, 0x26e3a8ec, 0x32d45029, 0x32ccac64, 0x26eda322, 0x270b88c2, 0x32b5b557, 
-       0x32ae09be, 0x27157cf5, 0x27335082, 0x3296fb3d, 0x328f47d5, 0x273d3eac, 0x275b0014, 0x327821ee, 
-       0x327066bc, 0x2764e82f, 0x27829760, 0x3259297d, 0x32516686, 0x278c7965, 0x27aa164c, 0x323a11fe, 
-       0x32324746, 0x27b3f235, 0x27d17cc1, 0x321adb83, 0x3213090f, 0x27db5288, 0x27f8caa5, 0x31fb8620, 
-       0x31f3abf5, 0x28029a45, 0x281fffe2, 0x31dc11e8, 0x31d4300b, 0x2829c954, 0x28471c5e, 0x31bc7eee, 
-       0x31b49564, 0x2850df9d, 0x286e2002, 0x319ccd46, 0x3194dc14, 0x2877dd07, 0x28950ab6, 0x317cfd04, 
-       0x3175042e, 0x289ec17a, 0x28bbdc61, 0x315d0e3b, 0x31550dc6, 0x28c58cdf, 0x28e294eb, 0x313d00ff, 
-       0x3134f8f1, 0x28ec3f1e, 0x2909343e, 0x311cd564, 0x3114c5c0, 0x2912d81f, 0x292fba40, 0x30fc8b7d, 
-       0x30f47449, 0x293957c9, 0x295626da, 0x30dc235e, 0x30d404a0, 0x295fbe06, 0x297c79f5, 0x30bb9d1c, 
-       0x30b376d8, 0x29860abd, 0x29a2b378, 0x309af8ca, 0x3092cb05, 0x29ac3dd7, 0x29c8d34d, 0x307a367c, 
-       0x3072013c, 0x29d2573c, 0x29eed95b, 0x30595648, 0x30511991, 0x29f856d5, 0x2a14c58b, 0x30385840, 
-       0x30301418, 0x2a1e3c8a, 0x2a3a97c7, 0x30173c7a, 0x300ef0e5, 0x2a440844, 0x2a604ff5, 0x2ff6030a, 
-       0x2fedb00d, 0x2a69b9ec, 0x2a85ee00, 0x2fd4ac04, 0x2fcc51a5, 0x2a8f516b, 0x2aab71d0, 0x2fb3377c, 
-       0x2faad5c1, 0x2ab4cea9, 0x2ad0db4e, 0x2f91a589, 0x2f893c75, 0x2ada318e, 0x2af62a63, 0x2f6ff63d, 
-       0x2f6785d7, 0x2aff7a05, 0x2b1b5ef8, 0x2f4e29af, 0x2f45b1fb, 0x2b24a7f6, 0x2b4078f5, 0x2f2c3ff2, 
-       0x2f23c0f6, 0x2b49bb4a, 0x2b657844, 0x2f0a391d, 0x2f01b2de, 0x2b6eb3ea, 0x2b8a5cce, 0x2ee81543, 
-       0x2edf87c6, 0x2b9391c0, 0x2baf267d, 0x2ec5d479, 0x2ebd3fc4, 0x2bb854b4, 0x2bd3d53a, 0x2ea376d6, 
-       0x2e9adaee, 0x2bdcfcb0, 0x2bf868ed, 0x2e80fc6e, 0x2e785958, 0x2c01899e, 0x2c1ce181, 0x2e5e6556, 
-       0x2e55bb17, 0x2c25fb66, 0x2c413edf, 0x2e3bb1a4, 0x2e330042, 0x2c4a51f3, 0x2c6580f1, 0x2e18e16d, 
-       0x2e1028ed, 0x2c6e8d2e, 0x2c89a79f, 0x2df5f4c7, 0x2ded352f, 0x2c92ad01, 0x2cadb2d5, 0x2dd2ebc7, 
-       0x2dca251c, 0x2cb6b155, 0x2cd1a27b, 0x2dafc683, 0x2da6f8ca, 0x2cda9a14, 0x2cf5767c, 0x2d8c8510, 
+       0x3fffffb1, 0x0006487f, 0x002bfb74, 0x3ffff0e3, 0x3fffe705, 0x00388c6e, 0x005e3f4c, 0x3fffba9b,
+       0x3fffa6de, 0x006ad03b, 0x009082ea, 0x3fff5cd8, 0x3fff3f3c, 0x009d13c5, 0x00c2c62f, 0x3ffed79b,
+       0x3ffeb021, 0x00cf56ef, 0x00f508fc, 0x3ffe2ae5, 0x3ffdf98c, 0x01019998, 0x01274b31, 0x3ffd56b5,
+       0x3ffd1b7e, 0x0133dba3, 0x01598cb1, 0x3ffc5b0c, 0x3ffc15f7, 0x01661cf0, 0x018bcd5b, 0x3ffb37ec,
+       0x3ffae8f9, 0x01985d60, 0x01be0d11, 0x3ff9ed53, 0x3ff99483, 0x01ca9cd4, 0x01f04bb4, 0x3ff87b44,
+       0x3ff81896, 0x01fcdb2e, 0x02228924, 0x3ff6e1bf, 0x3ff67534, 0x022f184d, 0x0254c544, 0x3ff520c5,
+       0x3ff4aa5d, 0x02615414, 0x0286fff3, 0x3ff33858, 0x3ff2b813, 0x02938e62, 0x02b93914, 0x3ff12878,
+       0x3ff09e56, 0x02c5c71a, 0x02eb7086, 0x3feef126, 0x3fee5d28, 0x02f7fe1c, 0x031da62b, 0x3fec9265,
+       0x3febf48b, 0x032a3349, 0x034fd9e5, 0x3fea0c35, 0x3fe96480, 0x035c6682, 0x03820b93, 0x3fe75e98,
+       0x3fe6ad08, 0x038e97a9, 0x03b43b17, 0x3fe48990, 0x3fe3ce26, 0x03c0c69e, 0x03e66852, 0x3fe18d1f,
+       0x3fe0c7da, 0x03f2f342, 0x04189326, 0x3fde6945, 0x3fdd9a27, 0x04251d77, 0x044abb73, 0x3fdb1e06,
+       0x3fda450f, 0x0457451d, 0x047ce11a, 0x3fd7ab64, 0x3fd6c894, 0x04896a16, 0x04af03fc, 0x3fd4115f,
+       0x3fd324b7, 0x04bb8c42, 0x04e123fa, 0x3fd04ffc, 0x3fcf597c, 0x04edab83, 0x051340f6, 0x3fcc673b,
+       0x3fcb66e4, 0x051fc7b9, 0x05455ad1, 0x3fc8571f, 0x3fc74cf3, 0x0551e0c7, 0x0577716b, 0x3fc41fac,
+       0x3fc30baa, 0x0583f68c, 0x05a984a6, 0x3fbfc0e3, 0x3fbea30c, 0x05b608eb, 0x05db9463, 0x3fbb3ac7,
+       0x3fba131b, 0x05e817c3, 0x060da083, 0x3fb68d5b, 0x3fb55bdc, 0x061a22f7, 0x063fa8e7, 0x3fb1b8a2,
+       0x3fb07d50, 0x064c2a67, 0x0671ad71, 0x3facbc9f, 0x3fab777b, 0x067e2df5, 0x06a3ae00, 0x3fa79954,
+       0x3fa64a5f, 0x06b02d81, 0x06d5aa77, 0x3fa24ec6, 0x3fa0f600, 0x06e228ee, 0x0707a2b7, 0x3f9cdcf7,
+       0x3f9b7a62, 0x0714201b, 0x073996a1, 0x3f9743eb, 0x3f95d787, 0x074612eb, 0x076b8616, 0x3f9183a5,
+       0x3f900d72, 0x0778013d, 0x079d70f7, 0x3f8b9c28, 0x3f8a1c29, 0x07a9eaf5, 0x07cf5726, 0x3f858d79,
+       0x3f8403ae, 0x07dbcff2, 0x08013883, 0x3f7f579b, 0x3f7dc405, 0x080db016, 0x083314f1, 0x3f78fa92,
+       0x3f775d31, 0x083f8b43, 0x0864ec4f, 0x3f727661, 0x3f70cf38, 0x08716159, 0x0896be80, 0x3f6bcb0e,
+       0x3f6a1a1c, 0x08a3323a, 0x08c88b65, 0x3f64f89b, 0x3f633de2, 0x08d4fdc6, 0x08fa52de, 0x3f5dff0e,
+       0x3f5c3a8f, 0x0906c3e0, 0x092c14ce, 0x3f56de6a, 0x3f551026, 0x09388469, 0x095dd116, 0x3f4f96b4,
+       0x3f4dbeac, 0x096a3f42, 0x098f8796, 0x3f4827f0, 0x3f464626, 0x099bf44c, 0x09c13831, 0x3f409223,
+       0x3f3ea697, 0x09cda368, 0x09f2e2c7, 0x3f38d552, 0x3f36e006, 0x09ff4c78, 0x0a24873a, 0x3f30f181,
+       0x3f2ef276, 0x0a30ef5e, 0x0a56256c, 0x3f28e6b6, 0x3f26ddec, 0x0a628bfa, 0x0a87bd3d, 0x3f20b4f5,
+       0x3f1ea26e, 0x0a94222f, 0x0ab94e8f, 0x3f185c43, 0x3f164001, 0x0ac5b1dc, 0x0aead944, 0x3f0fdca5,
+       0x3f0db6a9, 0x0af73ae5, 0x0b1c5d3d, 0x3f073621, 0x3f05066d, 0x0b28bd2a, 0x0b4dda5c, 0x3efe68bc,
+       0x3efc2f50, 0x0b5a388d, 0x0b7f5081, 0x3ef5747b, 0x3ef3315a, 0x0b8bacf0, 0x0bb0bf8f, 0x3eec5965,
+       0x3eea0c8e, 0x0bbd1a33, 0x0be22766, 0x3ee3177e, 0x3ee0c0f4, 0x0bee8038, 0x0c1387e9, 0x3ed9aecc,
+       0x3ed74e91, 0x0c1fdee1, 0x0c44e0f9, 0x3ed01f55, 0x3ecdb56a, 0x0c513610, 0x0c763278, 0x3ec66920,
+       0x3ec3f585, 0x0c8285a5, 0x0ca77c47, 0x3ebc8c31, 0x3eba0ee9, 0x0cb3cd84, 0x0cd8be47, 0x3eb2888f,
+       0x3eb0019c, 0x0ce50d8c, 0x0d09f85b, 0x3ea85e41, 0x3ea5cda3, 0x0d1645a0, 0x0d3b2a64, 0x3e9e0d4c,
+       0x3e9b7306, 0x0d4775a1, 0x0d6c5443, 0x3e9395b7, 0x3e90f1ca, 0x0d789d71, 0x0d9d75db, 0x3e88f788,
+       0x3e8649f5, 0x0da9bcf2, 0x0dce8f0d, 0x3e7e32c6, 0x3e7b7b90, 0x0ddad406, 0x0dff9fba, 0x3e734778,
+       0x3e70869f, 0x0e0be28e, 0x0e30a7c5, 0x3e6835a4, 0x3e656b2b, 0x0e3ce86b, 0x0e61a70f, 0x3e5cfd51,
+       0x3e5a2939, 0x0e6de580, 0x0e929d7a, 0x3e519e86, 0x3e4ec0d1, 0x0e9ed9af, 0x0ec38ae8, 0x3e46194a,
+       0x3e4331fa, 0x0ecfc4d9, 0x0ef46f3b, 0x3e3a6da4, 0x3e377cbb, 0x0f00a6df, 0x0f254a53, 0x3e2e9b9c,
+       0x3e2ba11b, 0x0f317fa5, 0x0f561c15, 0x3e22a338, 0x3e1f9f21, 0x0f624f0c, 0x0f86e460, 0x3e168480,
+       0x3e1376d5, 0x0f9314f5, 0x0fb7a317, 0x3e0a3f7b, 0x3e07283f, 0x0fc3d143, 0x0fe8581d, 0x3dfdd432,
+       0x3dfab365, 0x0ff483d7, 0x10190352, 0x3df142ab, 0x3dee1851, 0x10252c94, 0x1049a49a, 0x3de48aef,
+       0x3de15708, 0x1055cb5b, 0x107a3bd5, 0x3dd7ad05, 0x3dd46f94, 0x1086600e, 0x10aac8e6, 0x3dcaa8f5,
+       0x3dc761fc, 0x10b6ea90, 0x10db4baf, 0x3dbd7ec7, 0x3dba2e48, 0x10e76ac3, 0x110bc413, 0x3db02e84,
+       0x3dacd481, 0x1117e088, 0x113c31f3, 0x3da2b834, 0x3d9f54af, 0x11484bc2, 0x116c9531, 0x3d951bde,
+       0x3d91aed9, 0x1178ac53, 0x119cedaf, 0x3d87598c, 0x3d83e309, 0x11a9021d, 0x11cd3b50, 0x3d797145,
+       0x3d75f147, 0x11d94d02, 0x11fd7df6, 0x3d6b6313, 0x3d67d99b, 0x12098ce5, 0x122db583, 0x3d5d2efe,
+       0x3d599c0e, 0x1239c1a7, 0x125de1da, 0x3d4ed50f, 0x3d4b38aa, 0x1269eb2b, 0x128e02dc, 0x3d40554e,
+       0x3d3caf76, 0x129a0954, 0x12be186c, 0x3d31afc5, 0x3d2e007c, 0x12ca1c03, 0x12ee226c, 0x3d22e47c,
+       0x3d1f2bc5, 0x12fa231b, 0x131e20c0, 0x3d13f37e, 0x3d10315a, 0x132a1e7e, 0x134e1348, 0x3d04dcd2,
+       0x3d011145, 0x135a0e0e, 0x137df9e7, 0x3cf5a082, 0x3cf1cb8e, 0x1389f1af, 0x13add481, 0x3ce63e98,
+       0x3ce2603f, 0x13b9c943, 0x13dda2f7, 0x3cd6b71e, 0x3cd2cf62, 0x13e994ab, 0x140d652c, 0x3cc70a1c,
+       0x3cc318ff, 0x141953cb, 0x143d1b02, 0x3cb7379c, 0x3cb33d22, 0x14490685, 0x146cc45c, 0x3ca73fa9,
+       0x3ca33bd3, 0x1478acbc, 0x149c611d, 0x3c97224c, 0x3c93151d, 0x14a84652, 0x14cbf127, 0x3c86df8e,
+       0x3c82c909, 0x14d7d32a, 0x14fb745e, 0x3c76777b, 0x3c7257a2, 0x15075327, 0x152aeaa3, 0x3c65ea1c,
+       0x3c61c0f1, 0x1536c62b, 0x155a53d9, 0x3c55377b, 0x3c510501, 0x15662c18, 0x1589afe3, 0x3c445fa2,
+       0x3c4023dd, 0x159584d3, 0x15b8fea4, 0x3c33629d, 0x3c2f1d8e, 0x15c4d03e, 0x15e83fff, 0x3c224075,
+       0x3c1df21f, 0x15f40e3a, 0x161773d6, 0x3c10f935, 0x3c0ca19b, 0x16233eac, 0x16469a0d, 0x3bff8ce8,
+       0x3bfb2c0c, 0x16526176, 0x1675b286, 0x3bedfb99, 0x3be9917e, 0x1681767c, 0x16a4bd25, 0x3bdc4552,
+       0x3bd7d1fa, 0x16b07d9f, 0x16d3b9cc, 0x3bca6a1d, 0x3bc5ed8d, 0x16df76c3, 0x1702a85e, 0x3bb86a08,
+       0x3bb3e440, 0x170e61cc, 0x173188be, 0x3ba6451b, 0x3ba1b620, 0x173d3e9b, 0x17605ad0, 0x3b93fb63,
+       0x3b8f6337, 0x176c0d15, 0x178f1e76, 0x3b818ceb, 0x3b7ceb90, 0x179acd1c, 0x17bdd394, 0x3b6ef9be,
+       0x3b6a4f38, 0x17c97e93, 0x17ec7a0d, 0x3b5c41e8, 0x3b578e39, 0x17f8215e, 0x181b11c4, 0x3b496574,
+       0x3b44a8a0, 0x1826b561, 0x18499a9d, 0x3b36646e, 0x3b319e77, 0x18553a7d, 0x1878147a, 0x3b233ee1,
+       0x3b1e6fca, 0x1883b097, 0x18a67f3f, 0x3b0ff4d9, 0x3b0b1ca6, 0x18b21791, 0x18d4dad0, 0x3afc8663,
+       0x3af7a516, 0x18e06f50, 0x1903270f, 0x3ae8f38b, 0x3ae40926, 0x190eb7b7, 0x193163e1, 0x3ad53c5b,
+       0x3ad048e3, 0x193cf0a9, 0x195f9128, 0x3ac160e1, 0x3abc6458, 0x196b1a09, 0x198daec8, 0x3aad6129,
+       0x3aa85b92, 0x199933bb, 0x19bbbca6, 0x3a993d3e, 0x3a942e9d, 0x19c73da3, 0x19e9baa3, 0x3a84f52f,
+       0x3a7fdd86, 0x19f537a4, 0x1a17a8a5, 0x3a708906, 0x3a6b6859, 0x1a2321a2, 0x1a45868e, 0x3a5bf8d1,
+       0x3a56cf23, 0x1a50fb81, 0x1a735442, 0x3a47449c, 0x3a4211f0, 0x1a7ec524, 0x1aa111a6, 0x3a326c74,
+       0x3a2d30cd, 0x1aac7e6f, 0x1acebe9d, 0x3a1d7066, 0x3a182bc8, 0x1ada2746, 0x1afc5b0a, 0x3a08507f,
+       0x3a0302ed, 0x1b07bf8c, 0x1b29e6d2, 0x39f30ccc, 0x39edb649, 0x1b354727, 0x1b5761d8, 0x39dda55a,
+       0x39d845e9, 0x1b62bdf8, 0x1b84cc01, 0x39c81a36, 0x39c2b1da, 0x1b9023e5, 0x1bb22530, 0x39b26b6d,
+       0x39acfa2b, 0x1bbd78d2, 0x1bdf6d4a, 0x399c990d, 0x39971ee7, 0x1beabca1, 0x1c0ca432, 0x3986a324,
+       0x3981201e, 0x1c17ef39, 0x1c39c9cd, 0x397089bf, 0x396afddc, 0x1c45107c, 0x1c66ddfe, 0x395a4ceb,
+       0x3954b82e, 0x1c72204f, 0x1c93e0ab, 0x3943ecb6, 0x393e4f23, 0x1c9f1e96, 0x1cc0d1b6, 0x392d692f,
+       0x3927c2c9, 0x1ccc0b35, 0x1cedb106, 0x3916c262, 0x3911132d, 0x1cf8e611, 0x1d1a7e7d, 0x38fff85e,
+       0x38fa405e, 0x1d25af0d, 0x1d473a00, 0x38e90b31, 0x38e34a69, 0x1d52660f, 0x1d73e374, 0x38d1fae9,
+       0x38cc315d, 0x1d7f0afb, 0x1da07abc, 0x38bac795, 0x38b4f547, 0x1dab9db5, 0x1dccffbf, 0x38a37142,
+       0x389d9637, 0x1dd81e21, 0x1df9725f, 0x388bf7ff, 0x3886143b, 0x1e048c24, 0x1e25d282, 0x38745bdb,
+       0x386e6f60, 0x1e30e7a4, 0x1e52200c, 0x385c9ce3, 0x3856a7b6, 0x1e5d3084, 0x1e7e5ae2, 0x3844bb28,
+       0x383ebd4c, 0x1e8966a8, 0x1eaa82e9, 0x382cb6b7, 0x3826b030, 0x1eb589f7, 0x1ed69805, 0x38148f9f,
+       0x380e8071, 0x1ee19a54, 0x1f029a1c, 0x37fc45ef, 0x37f62e1d, 0x1f0d97a5, 0x1f2e8911, 0x37e3d9b7,
+       0x37ddb945, 0x1f3981ce, 0x1f5a64cb, 0x37cb4b04, 0x37c521f6, 0x1f6558b5, 0x1f862d2d, 0x37b299e7,
+       0x37ac6841, 0x1f911c3d, 0x1fb1e21d, 0x3799c66f, 0x37938c34, 0x1fbccc4d, 0x1fdd8381, 0x3780d0aa,
+       0x377a8ddf, 0x1fe868c8, 0x2009113c, 0x3767b8a9, 0x37616d51, 0x2013f196, 0x20348b35, 0x374e7e7b,
+       0x37482a9a, 0x203f6699, 0x205ff14f, 0x3735222f, 0x372ec5c9, 0x206ac7b8, 0x208b4372, 0x371ba3d4,
+       0x37153eee, 0x209614d9, 0x20b68181, 0x3702037c, 0x36fb9618, 0x20c14ddf, 0x20e1ab63, 0x36e84135,
+       0x36e1cb58, 0x20ec72b1, 0x210cc0fc, 0x36ce5d10, 0x36c7debd, 0x21178334, 0x2137c232, 0x36b4571b,
+       0x36add058, 0x21427f4d, 0x2162aeea, 0x369a2f69, 0x3693a038, 0x216d66e2, 0x218d870b, 0x367fe608,
+       0x36794e6e, 0x219839d8, 0x21b84a79, 0x36657b08, 0x365edb09, 0x21c2f815, 0x21e2f91a, 0x364aee7b,
+       0x3644461b, 0x21eda17f, 0x220d92d4, 0x36304070, 0x36298fb4, 0x221835fb, 0x2238178d, 0x361570f8,
+       0x360eb7e3, 0x2242b56f, 0x22628729, 0x35fa8023, 0x35f3beba, 0x226d1fc1, 0x228ce191, 0x35df6e03,
+       0x35d8a449, 0x229774d7, 0x22b726a8, 0x35c43aa7, 0x35bd68a1, 0x22c1b496, 0x22e15655, 0x35a8e621,
+       0x35a20bd3, 0x22ebdee5, 0x230b707e, 0x358d7081, 0x35868def, 0x2315f3a8, 0x23357509, 0x3571d9d9,
+       0x356aef08, 0x233ff2c8, 0x235f63dc, 0x35562239, 0x354f2f2c, 0x2369dc29, 0x23893cdd, 0x353a49b2,
+       0x35334e6f, 0x2393afb2, 0x23b2fff3, 0x351e5056, 0x35174ce0, 0x23bd6d48, 0x23dcad03, 0x35023636,
+       0x34fb2a92, 0x23e714d3, 0x240643f4, 0x34e5fb63, 0x34dee795, 0x2410a639, 0x242fc4ad, 0x34c99fef,
+       0x34c283fb, 0x243a215f, 0x24592f13, 0x34ad23eb, 0x34a5ffd5, 0x2463862c, 0x2482830d, 0x34908768,
+       0x34895b36, 0x248cd487, 0x24abc082, 0x3473ca79, 0x346c962f, 0x24b60c57, 0x24d4e757, 0x3456ed2f,
+       0x344fb0d1, 0x24df2d81, 0x24fdf775, 0x3439ef9c, 0x3432ab2e, 0x250837ed, 0x2526f0c1, 0x341cd1d2,
+       0x34158559, 0x25312b81, 0x254fd323, 0x33ff93e2, 0x33f83f62, 0x255a0823, 0x25789e80, 0x33e235df,
+       0x33dad95e, 0x2582cdbc, 0x25a152c0, 0x33c4b7db, 0x33bd535c, 0x25ab7c30, 0x25c9efca, 0x33a719e8,
+       0x339fad70, 0x25d41369, 0x25f27584, 0x33895c18, 0x3381e7ac, 0x25fc934b, 0x261ae3d6, 0x336b7e7e,
+       0x33640223, 0x2624fbbf, 0x26433aa7, 0x334d812d, 0x3345fce6, 0x264d4cac, 0x266b79dd, 0x332f6435,
+       0x3327d808, 0x267585f8, 0x2693a161, 0x331127ab, 0x3309939c, 0x269da78b, 0x26bbb119, 0x32f2cba1,
+       0x32eb2fb5, 0x26c5b14c, 0x26e3a8ec, 0x32d45029, 0x32ccac64, 0x26eda322, 0x270b88c2, 0x32b5b557,
+       0x32ae09be, 0x27157cf5, 0x27335082, 0x3296fb3d, 0x328f47d5, 0x273d3eac, 0x275b0014, 0x327821ee,
+       0x327066bc, 0x2764e82f, 0x27829760, 0x3259297d, 0x32516686, 0x278c7965, 0x27aa164c, 0x323a11fe,
+       0x32324746, 0x27b3f235, 0x27d17cc1, 0x321adb83, 0x3213090f, 0x27db5288, 0x27f8caa5, 0x31fb8620,
+       0x31f3abf5, 0x28029a45, 0x281fffe2, 0x31dc11e8, 0x31d4300b, 0x2829c954, 0x28471c5e, 0x31bc7eee,
+       0x31b49564, 0x2850df9d, 0x286e2002, 0x319ccd46, 0x3194dc14, 0x2877dd07, 0x28950ab6, 0x317cfd04,
+       0x3175042e, 0x289ec17a, 0x28bbdc61, 0x315d0e3b, 0x31550dc6, 0x28c58cdf, 0x28e294eb, 0x313d00ff,
+       0x3134f8f1, 0x28ec3f1e, 0x2909343e, 0x311cd564, 0x3114c5c0, 0x2912d81f, 0x292fba40, 0x30fc8b7d,
+       0x30f47449, 0x293957c9, 0x295626da, 0x30dc235e, 0x30d404a0, 0x295fbe06, 0x297c79f5, 0x30bb9d1c,
+       0x30b376d8, 0x29860abd, 0x29a2b378, 0x309af8ca, 0x3092cb05, 0x29ac3dd7, 0x29c8d34d, 0x307a367c,
+       0x3072013c, 0x29d2573c, 0x29eed95b, 0x30595648, 0x30511991, 0x29f856d5, 0x2a14c58b, 0x30385840,
+       0x30301418, 0x2a1e3c8a, 0x2a3a97c7, 0x30173c7a, 0x300ef0e5, 0x2a440844, 0x2a604ff5, 0x2ff6030a,
+       0x2fedb00d, 0x2a69b9ec, 0x2a85ee00, 0x2fd4ac04, 0x2fcc51a5, 0x2a8f516b, 0x2aab71d0, 0x2fb3377c,
+       0x2faad5c1, 0x2ab4cea9, 0x2ad0db4e, 0x2f91a589, 0x2f893c75, 0x2ada318e, 0x2af62a63, 0x2f6ff63d,
+       0x2f6785d7, 0x2aff7a05, 0x2b1b5ef8, 0x2f4e29af, 0x2f45b1fb, 0x2b24a7f6, 0x2b4078f5, 0x2f2c3ff2,
+       0x2f23c0f6, 0x2b49bb4a, 0x2b657844, 0x2f0a391d, 0x2f01b2de, 0x2b6eb3ea, 0x2b8a5cce, 0x2ee81543,
+       0x2edf87c6, 0x2b9391c0, 0x2baf267d, 0x2ec5d479, 0x2ebd3fc4, 0x2bb854b4, 0x2bd3d53a, 0x2ea376d6,
+       0x2e9adaee, 0x2bdcfcb0, 0x2bf868ed, 0x2e80fc6e, 0x2e785958, 0x2c01899e, 0x2c1ce181, 0x2e5e6556,
+       0x2e55bb17, 0x2c25fb66, 0x2c413edf, 0x2e3bb1a4, 0x2e330042, 0x2c4a51f3, 0x2c6580f1, 0x2e18e16d,
+       0x2e1028ed, 0x2c6e8d2e, 0x2c89a79f, 0x2df5f4c7, 0x2ded352f, 0x2c92ad01, 0x2cadb2d5, 0x2dd2ebc7,
+       0x2dca251c, 0x2cb6b155, 0x2cd1a27b, 0x2dafc683, 0x2da6f8ca, 0x2cda9a14, 0x2cf5767c, 0x2d8c8510,
        0x2d83b04f, 0x2cfe6728, 0x2d192ec1, 0x2d692784, 0x2d604bc0, 0x2d22187a, 0x2d3ccb34, 0x2d45adf6
 };
 
 const int twidTab512[8*6 + 32*6 + 128*6] = {
-       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3b20d79e, 0x187de2a6, 
-       0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 
-       0x187de2a6, 0x3b20d79e, 0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 
-       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xe7821d5a, 0x3b20d79e, 
-       0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 
-       0xc4df2862, 0xe7821d5a, 0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 
-
-       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3fb11b47, 0x0645e9af, 
-       0x3fec43c6, 0x0323ecbe, 0x3f4eaafe, 0x09640837, 0x3ec52f9f, 0x0c7c5c1e, 0x3fb11b47, 0x0645e9af, 
-       0x3d3e82ad, 0x1294062e, 0x3d3e82ad, 0x1294062e, 0x3f4eaafe, 0x09640837, 0x39daf5e8, 0x1b5d1009, 
-       0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x387165e3, 0x1e2b5d38, 
-       0x3e14fdf7, 0x0f8cfcbd, 0x2f6bbe44, 0x2afad269, 0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 
-       0x2899e64a, 0x317900d6, 0x317900d6, 0x2899e64a, 0x3c424209, 0x158f9a75, 0x20e70f32, 0x36e5068a, 
-       0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x2899e64a, 0x317900d6, 
-       0x39daf5e8, 0x1b5d1009, 0x0f8cfcbd, 0x3e14fdf7, 0x238e7673, 0x3536cc52, 0x387165e3, 0x1e2b5d38, 
-       0x0645e9af, 0x3fb11b47, 0x1e2b5d38, 0x387165e3, 0x36e5068a, 0x20e70f32, 0xfcdc1342, 0x3fec43c6, 
-       0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 0x1294062e, 0x3d3e82ad, 
-       0x3367c08f, 0x261feff9, 0xea70658b, 0x3c424209, 0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 
-       0xe1d4a2c8, 0x387165e3, 0x0645e9af, 0x3fb11b47, 0x2f6bbe44, 0x2afad269, 0xd9e01007, 0x3367c08f, 
-       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xf9ba1651, 0x3fb11b47, 
-       0x2afad269, 0x2f6bbe44, 0xcc983f71, 0x261feff9, 0xf383a3e2, 0x3ec52f9f, 0x2899e64a, 0x317900d6, 
-       0xc78e9a1d, 0x1e2b5d38, 0xed6bf9d2, 0x3d3e82ad, 0x261feff9, 0x3367c08f, 0xc3bdbdf7, 0x158f9a75, 
-       0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xe1d4a2c8, 0x387165e3, 
-       0x20e70f32, 0x36e5068a, 0xc013bc3a, 0x0323ecbe, 0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 
-       0xc04ee4b9, 0xf9ba1651, 0xd76619b6, 0x317900d6, 0x1b5d1009, 0x39daf5e8, 0xc1eb0209, 0xf0730343, 
-       0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xce86ff2a, 0x2899e64a, 
-       0x158f9a75, 0x3c424209, 0xc91af976, 0xdf18f0ce, 0xcac933ae, 0x238e7673, 0x1294062e, 0x3d3e82ad, 
-       0xce86ff2a, 0xd76619b6, 0xc78e9a1d, 0x1e2b5d38, 0x0f8cfcbd, 0x3e14fdf7, 0xd5052d97, 0xd09441bc, 
-       0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 0xc2c17d53, 0x1294062e, 
-       0x09640837, 0x3f4eaafe, 0xe4a2eff7, 0xc6250a18, 0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 
-       0xed6bf9d2, 0xc2c17d53, 0xc04ee4b9, 0x0645e9af, 0x0323ecbe, 0x3fec43c6, 0xf69bf7c9, 0xc0b15502, 
-
-       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3ffb10c1, 0x0192155f, 
-       0x3ffec42d, 0x00c90e8f, 0x3ff4e5df, 0x025b0cae, 0x3fec43c6, 0x0323ecbe, 0x3ffb10c1, 0x0192155f, 
-       0x3fd39b5a, 0x04b54824, 0x3fd39b5a, 0x04b54824, 0x3ff4e5df, 0x025b0cae, 0x3f9c2bfa, 0x070de171, 
-       0x3fb11b47, 0x0645e9af, 0x3fec43c6, 0x0323ecbe, 0x3f4eaafe, 0x09640837, 0x3f84c8e1, 0x07d59395, 
-       0x3fe12acb, 0x03ecadcf, 0x3eeb3347, 0x0bb6ecef, 0x3f4eaafe, 0x09640837, 0x3fd39b5a, 0x04b54824, 
-       0x3e71e758, 0x0e05c135, 0x3f0ec9f4, 0x0af10a22, 0x3fc395f9, 0x057db402, 0x3de2f147, 0x104fb80e, 
-       0x3ec52f9f, 0x0c7c5c1e, 0x3fb11b47, 0x0645e9af, 0x3d3e82ad, 0x1294062e, 0x3e71e758, 0x0e05c135, 
-       0x3f9c2bfa, 0x070de171, 0x3c84d496, 0x14d1e242, 0x3e14fdf7, 0x0f8cfcbd, 0x3f84c8e1, 0x07d59395, 
-       0x3bb6276d, 0x17088530, 0x3dae81ce, 0x1111d262, 0x3f6af2e3, 0x089cf867, 0x3ad2c2e7, 0x19372a63, 
-       0x3d3e82ad, 0x1294062e, 0x3f4eaafe, 0x09640837, 0x39daf5e8, 0x1b5d1009, 0x3cc511d8, 0x14135c94, 
-       0x3f2ff249, 0x0a2abb58, 0x38cf1669, 0x1d79775b, 0x3c424209, 0x158f9a75, 0x3f0ec9f4, 0x0af10a22, 
-       0x37af8158, 0x1f8ba4db, 0x3bb6276d, 0x17088530, 0x3eeb3347, 0x0bb6ecef, 0x367c9a7d, 0x2192e09a, 
-       0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x3a8269a2, 0x19ef7943, 
-       0x3e9cc076, 0x0d415012, 0x33de87de, 0x257db64b, 0x39daf5e8, 0x1b5d1009, 0x3e71e758, 0x0e05c135, 
-       0x32744493, 0x275ff452, 0x392a9642, 0x1cc66e99, 0x3e44a5ee, 0x0ec9a7f2, 0x30f8801f, 0x29348937, 
-       0x387165e3, 0x1e2b5d38, 0x3e14fdf7, 0x0f8cfcbd, 0x2f6bbe44, 0x2afad269, 0x37af8158, 0x1f8ba4db, 
-       0x3de2f147, 0x104fb80e, 0x2dce88a9, 0x2cb2324b, 0x36e5068a, 0x20e70f32, 0x3dae81ce, 0x1111d262, 
-       0x2c216eaa, 0x2e5a106f, 0x361214b0, 0x223d66a8, 0x3d77b191, 0x11d3443f, 0x2a650525, 0x2ff1d9c6, 
-       0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 0x2899e64a, 0x317900d6, 0x34534f40, 0x24da0a99, 
-       0x3d02f756, 0x135410c2, 0x26c0b162, 0x32eefde9, 0x3367c08f, 0x261feff9, 0x3cc511d8, 0x14135c94, 
-       0x24da0a99, 0x34534f40, 0x32744493, 0x275ff452, 0x3c84d496, 0x14d1e242, 0x22e69ac7, 0x35a5793c, 
-       0x317900d6, 0x2899e64a, 0x3c424209, 0x158f9a75, 0x20e70f32, 0x36e5068a, 0x30761c17, 0x29cd9577, 
-       0x3bfd5cc4, 0x164c7ddd, 0x1edc1952, 0x3811884c, 0x2f6bbe44, 0x2afad269, 0x3bb6276d, 0x17088530, 
-       0x1cc66e99, 0x392a9642, 0x2e5a106f, 0x2c216eaa, 0x3b6ca4c4, 0x17c3a931, 0x1aa6c82b, 0x3a2fcee8, 
-       0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x2c216eaa, 0x2e5a106f, 
-       0x3ad2c2e7, 0x19372a63, 0x164c7ddd, 0x3bfd5cc4, 0x2afad269, 0x2f6bbe44, 0x3a8269a2, 0x19ef7943, 
-       0x14135c94, 0x3cc511d8, 0x29cd9577, 0x30761c17, 0x3a2fcee8, 0x1aa6c82b, 0x11d3443f, 0x3d77b191, 
-       0x2899e64a, 0x317900d6, 0x39daf5e8, 0x1b5d1009, 0x0f8cfcbd, 0x3e14fdf7, 0x275ff452, 0x32744493, 
-       0x3983e1e7, 0x1c1249d8, 0x0d415012, 0x3e9cc076, 0x261feff9, 0x3367c08f, 0x392a9642, 0x1cc66e99, 
-       0x0af10a22, 0x3f0ec9f4, 0x24da0a99, 0x34534f40, 0x38cf1669, 0x1d79775b, 0x089cf867, 0x3f6af2e3, 
-       0x238e7673, 0x3536cc52, 0x387165e3, 0x1e2b5d38, 0x0645e9af, 0x3fb11b47, 0x223d66a8, 0x361214b0, 
-       0x3811884c, 0x1edc1952, 0x03ecadcf, 0x3fe12acb, 0x20e70f32, 0x36e5068a, 0x37af8158, 0x1f8ba4db, 
-       0x0192155f, 0x3ffb10c1, 0x1f8ba4db, 0x37af8158, 0x374b54ce, 0x2039f90e, 0xff36f171, 0x3ffec42d, 
-       0x1e2b5d38, 0x387165e3, 0x36e5068a, 0x20e70f32, 0xfcdc1342, 0x3fec43c6, 0x1cc66e99, 0x392a9642, 
-       0x367c9a7d, 0x2192e09a, 0xfa824bfe, 0x3fc395f9, 0x1b5d1009, 0x39daf5e8, 0x361214b0, 0x223d66a8, 
-       0xf82a6c6b, 0x3f84c8e1, 0x19ef7943, 0x3a8269a2, 0x35a5793c, 0x22e69ac7, 0xf5d544a8, 0x3f2ff249, 
-       0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 0x17088530, 0x3bb6276d, 
-       0x34c61236, 0x2434f332, 0xf136580e, 0x3e44a5ee, 0x158f9a75, 0x3c424209, 0x34534f40, 0x24da0a99, 
-       0xeeee2d9e, 0x3dae81ce, 0x14135c94, 0x3cc511d8, 0x33de87de, 0x257db64b, 0xecabef3e, 0x3d02f756, 
-       0x1294062e, 0x3d3e82ad, 0x3367c08f, 0x261feff9, 0xea70658b, 0x3c424209, 0x1111d262, 0x3dae81ce, 
-       0x32eefde9, 0x26c0b162, 0xe83c56cf, 0x3b6ca4c4, 0x0f8cfcbd, 0x3e14fdf7, 0x32744493, 0x275ff452, 
-       0xe61086bd, 0x3a8269a2, 0x0e05c135, 0x3e71e758, 0x31f79947, 0x27fdb2a6, 0xe3edb628, 0x3983e1e7, 
-       0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 0xe1d4a2c8, 0x387165e3, 0x0af10a22, 0x3f0ec9f4, 
-       0x30f8801f, 0x29348937, 0xdfc606f2, 0x374b54ce, 0x09640837, 0x3f4eaafe, 0x30761c17, 0x29cd9577, 
-       0xddc29958, 0x361214b0, 0x07d59395, 0x3f84c8e1, 0x2ff1d9c6, 0x2a650525, 0xdbcb0cce, 0x34c61236, 
-       0x0645e9af, 0x3fb11b47, 0x2f6bbe44, 0x2afad269, 0xd9e01007, 0x3367c08f, 0x04b54824, 0x3fd39b5a, 
-       0x2ee3cebe, 0x2b8ef77c, 0xd8024d5a, 0x31f79947, 0x0323ecbe, 0x3fec43c6, 0x2e5a106f, 0x2c216eaa, 
-       0xd6326a89, 0x30761c17, 0x0192155f, 0x3ffb10c1, 0x2dce88a9, 0x2cb2324b, 0xd4710884, 0x2ee3cebe, 
-       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xfe6deaa1, 0x3ffb10c1, 
-       0x2cb2324b, 0x2dce88a9, 0xd11c3142, 0x2b8ef77c, 0xfcdc1342, 0x3fec43c6, 0x2c216eaa, 0x2e5a106f, 
-       0xcf89e3e9, 0x29cd9577, 0xfb4ab7dc, 0x3fd39b5a, 0x2b8ef77c, 0x2ee3cebe, 0xce0866b9, 0x27fdb2a6, 
-       0xf9ba1651, 0x3fb11b47, 0x2afad269, 0x2f6bbe44, 0xcc983f71, 0x261feff9, 0xf82a6c6b, 0x3f84c8e1, 
-       0x2a650525, 0x2ff1d9c6, 0xcb39edca, 0x2434f332, 0xf69bf7c9, 0x3f4eaafe, 0x29cd9577, 0x30761c17, 
-       0xc9edeb50, 0x223d66a8, 0xf50ef5de, 0x3f0ec9f4, 0x29348937, 0x30f8801f, 0xc8b4ab32, 0x2039f90e, 
-       0xf383a3e2, 0x3ec52f9f, 0x2899e64a, 0x317900d6, 0xc78e9a1d, 0x1e2b5d38, 0xf1fa3ecb, 0x3e71e758, 
-       0x27fdb2a6, 0x31f79947, 0xc67c1e19, 0x1c1249d8, 0xf0730343, 0x3e14fdf7, 0x275ff452, 0x32744493, 
-       0xc57d965e, 0x19ef7943, 0xeeee2d9e, 0x3dae81ce, 0x26c0b162, 0x32eefde9, 0xc4935b3c, 0x17c3a931, 
-       0xed6bf9d2, 0x3d3e82ad, 0x261feff9, 0x3367c08f, 0xc3bdbdf7, 0x158f9a75, 0xebeca36c, 0x3cc511d8, 
-       0x257db64b, 0x33de87de, 0xc2fd08aa, 0x135410c2, 0xea70658b, 0x3c424209, 0x24da0a99, 0x34534f40, 
-       0xc2517e32, 0x1111d262, 0xe8f77ad0, 0x3bb6276d, 0x2434f332, 0x34c61236, 0xc1bb5a12, 0x0ec9a7f2, 
-       0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xe61086bd, 0x3a8269a2, 
-       0x22e69ac7, 0x35a5793c, 0xc0d00db7, 0x0a2abb58, 0xe4a2eff7, 0x39daf5e8, 0x223d66a8, 0x361214b0, 
-       0xc07b371f, 0x07d59395, 0xe3399167, 0x392a9642, 0x2192e09a, 0x367c9a7d, 0xc03c6a07, 0x057db402, 
-       0xe1d4a2c8, 0x387165e3, 0x20e70f32, 0x36e5068a, 0xc013bc3a, 0x0323ecbe, 0xe0745b25, 0x37af8158, 
-       0x2039f90e, 0x374b54ce, 0xc0013bd3, 0x00c90e8f, 0xdf18f0ce, 0x36e5068a, 0x1f8ba4db, 0x37af8158, 
-       0xc004ef3f, 0xfe6deaa1, 0xddc29958, 0x361214b0, 0x1edc1952, 0x3811884c, 0xc01ed535, 0xfc135231, 
-       0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 0xc04ee4b9, 0xf9ba1651, 0xdb25f567, 0x34534f40, 
-       0x1d79775b, 0x38cf1669, 0xc0950d1d, 0xf7630799, 0xd9e01007, 0x3367c08f, 0x1cc66e99, 0x392a9642, 
-       0xc0f1360c, 0xf50ef5de, 0xd8a00bae, 0x32744493, 0x1c1249d8, 0x3983e1e7, 0xc1633f8a, 0xf2beafee, 
-       0xd76619b6, 0x317900d6, 0x1b5d1009, 0x39daf5e8, 0xc1eb0209, 0xf0730343, 0xd6326a89, 0x30761c17, 
-       0x1aa6c82b, 0x3a2fcee8, 0xc2884e6f, 0xee2cbbc1, 0xd5052d97, 0x2f6bbe44, 0x19ef7943, 0x3a8269a2, 
-       0xc33aee28, 0xebeca36c, 0xd3de9156, 0x2e5a106f, 0x19372a63, 0x3ad2c2e7, 0xc402a33c, 0xe9b38223, 
-       0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xd1a5ef91, 0x2c216eaa, 
-       0x17c3a931, 0x3b6ca4c4, 0xc5d03118, 0xe55937d5, 0xd09441bc, 0x2afad269, 0x17088530, 0x3bb6276d, 
-       0xc6d569be, 0xe3399167, 0xcf89e3e9, 0x29cd9577, 0x164c7ddd, 0x3bfd5cc4, 0xc7ee77b4, 0xe123e6ae, 
-       0xce86ff2a, 0x2899e64a, 0x158f9a75, 0x3c424209, 0xc91af976, 0xdf18f0ce, 0xcd8bbb6d, 0x275ff452, 
-       0x14d1e242, 0x3c84d496, 0xca5a86c4, 0xdd196539, 0xcc983f71, 0x261feff9, 0x14135c94, 0x3cc511d8, 
-       0xcbacb0c0, 0xdb25f567, 0xcbacb0c0, 0x24da0a99, 0x135410c2, 0x3d02f756, 0xcd110217, 0xd93f4e9e, 
-       0xcac933ae, 0x238e7673, 0x1294062e, 0x3d3e82ad, 0xce86ff2a, 0xd76619b6, 0xc9edeb50, 0x223d66a8, 
-       0x11d3443f, 0x3d77b191, 0xd00e263a, 0xd59afadb, 0xc91af976, 0x20e70f32, 0x1111d262, 0x3dae81ce, 
-       0xd1a5ef91, 0xd3de9156, 0xc8507ea8, 0x1f8ba4db, 0x104fb80e, 0x3de2f147, 0xd34dcdb5, 0xd2317757, 
-       0xc78e9a1d, 0x1e2b5d38, 0x0f8cfcbd, 0x3e14fdf7, 0xd5052d97, 0xd09441bc, 0xc6d569be, 0x1cc66e99, 
-       0x0ec9a7f2, 0x3e44a5ee, 0xd6cb76c9, 0xcf077fe1, 0xc6250a18, 0x1b5d1009, 0x0e05c135, 0x3e71e758, 
-       0xd8a00bae, 0xcd8bbb6d, 0xc57d965e, 0x19ef7943, 0x0d415012, 0x3e9cc076, 0xda8249b5, 0xcc217822, 
-       0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 0xc449d893, 0x17088530, 
-       0x0bb6ecef, 0x3eeb3347, 0xde6d1f66, 0xc9836583, 0xc3bdbdf7, 0x158f9a75, 0x0af10a22, 0x3f0ec9f4, 
-       0xe0745b25, 0xc8507ea8, 0xc33aee28, 0x14135c94, 0x0a2abb58, 0x3f2ff249, 0xe28688a5, 0xc730e997, 
-       0xc2c17d53, 0x1294062e, 0x09640837, 0x3f4eaafe, 0xe4a2eff7, 0xc6250a18, 0xc2517e32, 0x1111d262, 
-       0x089cf867, 0x3f6af2e3, 0xe6c8d59d, 0xc52d3d19, 0xc1eb0209, 0x0f8cfcbd, 0x07d59395, 0x3f84c8e1, 
-       0xe8f77ad0, 0xc449d893, 0xc18e18a8, 0x0e05c135, 0x070de171, 0x3f9c2bfa, 0xeb2e1dbe, 0xc37b2b6a, 
-       0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 0xed6bf9d2, 0xc2c17d53, 0xc0f1360c, 0x0af10a22, 
-       0x057db402, 0x3fc395f9, 0xefb047f2, 0xc21d0eb9, 0xc0b15502, 0x09640837, 0x04b54824, 0x3fd39b5a, 
-       0xf1fa3ecb, 0xc18e18a8, 0xc07b371f, 0x07d59395, 0x03ecadcf, 0x3fe12acb, 0xf4491311, 0xc114ccb9, 
-       0xc04ee4b9, 0x0645e9af, 0x0323ecbe, 0x3fec43c6, 0xf69bf7c9, 0xc0b15502, 0xc02c64a6, 0x04b54824, 
-       0x025b0cae, 0x3ff4e5df, 0xf8f21e8f, 0xc063d406, 0xc013bc3a, 0x0323ecbe, 0x0192155f, 0x3ffb10c1, 
+       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3b20d79e, 0x187de2a6,
+       0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6,
+       0x187de2a6, 0x3b20d79e, 0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f,
+       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xe7821d5a, 0x3b20d79e,
+       0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e,
+       0xc4df2862, 0xe7821d5a, 0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae,
+
+       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3fb11b47, 0x0645e9af,
+       0x3fec43c6, 0x0323ecbe, 0x3f4eaafe, 0x09640837, 0x3ec52f9f, 0x0c7c5c1e, 0x3fb11b47, 0x0645e9af,
+       0x3d3e82ad, 0x1294062e, 0x3d3e82ad, 0x1294062e, 0x3f4eaafe, 0x09640837, 0x39daf5e8, 0x1b5d1009,
+       0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x387165e3, 0x1e2b5d38,
+       0x3e14fdf7, 0x0f8cfcbd, 0x2f6bbe44, 0x2afad269, 0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e,
+       0x2899e64a, 0x317900d6, 0x317900d6, 0x2899e64a, 0x3c424209, 0x158f9a75, 0x20e70f32, 0x36e5068a,
+       0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x2899e64a, 0x317900d6,
+       0x39daf5e8, 0x1b5d1009, 0x0f8cfcbd, 0x3e14fdf7, 0x238e7673, 0x3536cc52, 0x387165e3, 0x1e2b5d38,
+       0x0645e9af, 0x3fb11b47, 0x1e2b5d38, 0x387165e3, 0x36e5068a, 0x20e70f32, 0xfcdc1342, 0x3fec43c6,
+       0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 0x1294062e, 0x3d3e82ad,
+       0x3367c08f, 0x261feff9, 0xea70658b, 0x3c424209, 0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a,
+       0xe1d4a2c8, 0x387165e3, 0x0645e9af, 0x3fb11b47, 0x2f6bbe44, 0x2afad269, 0xd9e01007, 0x3367c08f,
+       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xf9ba1651, 0x3fb11b47,
+       0x2afad269, 0x2f6bbe44, 0xcc983f71, 0x261feff9, 0xf383a3e2, 0x3ec52f9f, 0x2899e64a, 0x317900d6,
+       0xc78e9a1d, 0x1e2b5d38, 0xed6bf9d2, 0x3d3e82ad, 0x261feff9, 0x3367c08f, 0xc3bdbdf7, 0x158f9a75,
+       0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xe1d4a2c8, 0x387165e3,
+       0x20e70f32, 0x36e5068a, 0xc013bc3a, 0x0323ecbe, 0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3,
+       0xc04ee4b9, 0xf9ba1651, 0xd76619b6, 0x317900d6, 0x1b5d1009, 0x39daf5e8, 0xc1eb0209, 0xf0730343,
+       0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xce86ff2a, 0x2899e64a,
+       0x158f9a75, 0x3c424209, 0xc91af976, 0xdf18f0ce, 0xcac933ae, 0x238e7673, 0x1294062e, 0x3d3e82ad,
+       0xce86ff2a, 0xd76619b6, 0xc78e9a1d, 0x1e2b5d38, 0x0f8cfcbd, 0x3e14fdf7, 0xd5052d97, 0xd09441bc,
+       0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 0xc2c17d53, 0x1294062e,
+       0x09640837, 0x3f4eaafe, 0xe4a2eff7, 0xc6250a18, 0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47,
+       0xed6bf9d2, 0xc2c17d53, 0xc04ee4b9, 0x0645e9af, 0x0323ecbe, 0x3fec43c6, 0xf69bf7c9, 0xc0b15502,
+
+       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3ffb10c1, 0x0192155f,
+       0x3ffec42d, 0x00c90e8f, 0x3ff4e5df, 0x025b0cae, 0x3fec43c6, 0x0323ecbe, 0x3ffb10c1, 0x0192155f,
+       0x3fd39b5a, 0x04b54824, 0x3fd39b5a, 0x04b54824, 0x3ff4e5df, 0x025b0cae, 0x3f9c2bfa, 0x070de171,
+       0x3fb11b47, 0x0645e9af, 0x3fec43c6, 0x0323ecbe, 0x3f4eaafe, 0x09640837, 0x3f84c8e1, 0x07d59395,
+       0x3fe12acb, 0x03ecadcf, 0x3eeb3347, 0x0bb6ecef, 0x3f4eaafe, 0x09640837, 0x3fd39b5a, 0x04b54824,
+       0x3e71e758, 0x0e05c135, 0x3f0ec9f4, 0x0af10a22, 0x3fc395f9, 0x057db402, 0x3de2f147, 0x104fb80e,
+       0x3ec52f9f, 0x0c7c5c1e, 0x3fb11b47, 0x0645e9af, 0x3d3e82ad, 0x1294062e, 0x3e71e758, 0x0e05c135,
+       0x3f9c2bfa, 0x070de171, 0x3c84d496, 0x14d1e242, 0x3e14fdf7, 0x0f8cfcbd, 0x3f84c8e1, 0x07d59395,
+       0x3bb6276d, 0x17088530, 0x3dae81ce, 0x1111d262, 0x3f6af2e3, 0x089cf867, 0x3ad2c2e7, 0x19372a63,
+       0x3d3e82ad, 0x1294062e, 0x3f4eaafe, 0x09640837, 0x39daf5e8, 0x1b5d1009, 0x3cc511d8, 0x14135c94,
+       0x3f2ff249, 0x0a2abb58, 0x38cf1669, 0x1d79775b, 0x3c424209, 0x158f9a75, 0x3f0ec9f4, 0x0af10a22,
+       0x37af8158, 0x1f8ba4db, 0x3bb6276d, 0x17088530, 0x3eeb3347, 0x0bb6ecef, 0x367c9a7d, 0x2192e09a,
+       0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x3a8269a2, 0x19ef7943,
+       0x3e9cc076, 0x0d415012, 0x33de87de, 0x257db64b, 0x39daf5e8, 0x1b5d1009, 0x3e71e758, 0x0e05c135,
+       0x32744493, 0x275ff452, 0x392a9642, 0x1cc66e99, 0x3e44a5ee, 0x0ec9a7f2, 0x30f8801f, 0x29348937,
+       0x387165e3, 0x1e2b5d38, 0x3e14fdf7, 0x0f8cfcbd, 0x2f6bbe44, 0x2afad269, 0x37af8158, 0x1f8ba4db,
+       0x3de2f147, 0x104fb80e, 0x2dce88a9, 0x2cb2324b, 0x36e5068a, 0x20e70f32, 0x3dae81ce, 0x1111d262,
+       0x2c216eaa, 0x2e5a106f, 0x361214b0, 0x223d66a8, 0x3d77b191, 0x11d3443f, 0x2a650525, 0x2ff1d9c6,
+       0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 0x2899e64a, 0x317900d6, 0x34534f40, 0x24da0a99,
+       0x3d02f756, 0x135410c2, 0x26c0b162, 0x32eefde9, 0x3367c08f, 0x261feff9, 0x3cc511d8, 0x14135c94,
+       0x24da0a99, 0x34534f40, 0x32744493, 0x275ff452, 0x3c84d496, 0x14d1e242, 0x22e69ac7, 0x35a5793c,
+       0x317900d6, 0x2899e64a, 0x3c424209, 0x158f9a75, 0x20e70f32, 0x36e5068a, 0x30761c17, 0x29cd9577,
+       0x3bfd5cc4, 0x164c7ddd, 0x1edc1952, 0x3811884c, 0x2f6bbe44, 0x2afad269, 0x3bb6276d, 0x17088530,
+       0x1cc66e99, 0x392a9642, 0x2e5a106f, 0x2c216eaa, 0x3b6ca4c4, 0x17c3a931, 0x1aa6c82b, 0x3a2fcee8,
+       0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x2c216eaa, 0x2e5a106f,
+       0x3ad2c2e7, 0x19372a63, 0x164c7ddd, 0x3bfd5cc4, 0x2afad269, 0x2f6bbe44, 0x3a8269a2, 0x19ef7943,
+       0x14135c94, 0x3cc511d8, 0x29cd9577, 0x30761c17, 0x3a2fcee8, 0x1aa6c82b, 0x11d3443f, 0x3d77b191,
+       0x2899e64a, 0x317900d6, 0x39daf5e8, 0x1b5d1009, 0x0f8cfcbd, 0x3e14fdf7, 0x275ff452, 0x32744493,
+       0x3983e1e7, 0x1c1249d8, 0x0d415012, 0x3e9cc076, 0x261feff9, 0x3367c08f, 0x392a9642, 0x1cc66e99,
+       0x0af10a22, 0x3f0ec9f4, 0x24da0a99, 0x34534f40, 0x38cf1669, 0x1d79775b, 0x089cf867, 0x3f6af2e3,
+       0x238e7673, 0x3536cc52, 0x387165e3, 0x1e2b5d38, 0x0645e9af, 0x3fb11b47, 0x223d66a8, 0x361214b0,
+       0x3811884c, 0x1edc1952, 0x03ecadcf, 0x3fe12acb, 0x20e70f32, 0x36e5068a, 0x37af8158, 0x1f8ba4db,
+       0x0192155f, 0x3ffb10c1, 0x1f8ba4db, 0x37af8158, 0x374b54ce, 0x2039f90e, 0xff36f171, 0x3ffec42d,
+       0x1e2b5d38, 0x387165e3, 0x36e5068a, 0x20e70f32, 0xfcdc1342, 0x3fec43c6, 0x1cc66e99, 0x392a9642,
+       0x367c9a7d, 0x2192e09a, 0xfa824bfe, 0x3fc395f9, 0x1b5d1009, 0x39daf5e8, 0x361214b0, 0x223d66a8,
+       0xf82a6c6b, 0x3f84c8e1, 0x19ef7943, 0x3a8269a2, 0x35a5793c, 0x22e69ac7, 0xf5d544a8, 0x3f2ff249,
+       0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 0x17088530, 0x3bb6276d,
+       0x34c61236, 0x2434f332, 0xf136580e, 0x3e44a5ee, 0x158f9a75, 0x3c424209, 0x34534f40, 0x24da0a99,
+       0xeeee2d9e, 0x3dae81ce, 0x14135c94, 0x3cc511d8, 0x33de87de, 0x257db64b, 0xecabef3e, 0x3d02f756,
+       0x1294062e, 0x3d3e82ad, 0x3367c08f, 0x261feff9, 0xea70658b, 0x3c424209, 0x1111d262, 0x3dae81ce,
+       0x32eefde9, 0x26c0b162, 0xe83c56cf, 0x3b6ca4c4, 0x0f8cfcbd, 0x3e14fdf7, 0x32744493, 0x275ff452,
+       0xe61086bd, 0x3a8269a2, 0x0e05c135, 0x3e71e758, 0x31f79947, 0x27fdb2a6, 0xe3edb628, 0x3983e1e7,
+       0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 0xe1d4a2c8, 0x387165e3, 0x0af10a22, 0x3f0ec9f4,
+       0x30f8801f, 0x29348937, 0xdfc606f2, 0x374b54ce, 0x09640837, 0x3f4eaafe, 0x30761c17, 0x29cd9577,
+       0xddc29958, 0x361214b0, 0x07d59395, 0x3f84c8e1, 0x2ff1d9c6, 0x2a650525, 0xdbcb0cce, 0x34c61236,
+       0x0645e9af, 0x3fb11b47, 0x2f6bbe44, 0x2afad269, 0xd9e01007, 0x3367c08f, 0x04b54824, 0x3fd39b5a,
+       0x2ee3cebe, 0x2b8ef77c, 0xd8024d5a, 0x31f79947, 0x0323ecbe, 0x3fec43c6, 0x2e5a106f, 0x2c216eaa,
+       0xd6326a89, 0x30761c17, 0x0192155f, 0x3ffb10c1, 0x2dce88a9, 0x2cb2324b, 0xd4710884, 0x2ee3cebe,
+       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xfe6deaa1, 0x3ffb10c1,
+       0x2cb2324b, 0x2dce88a9, 0xd11c3142, 0x2b8ef77c, 0xfcdc1342, 0x3fec43c6, 0x2c216eaa, 0x2e5a106f,
+       0xcf89e3e9, 0x29cd9577, 0xfb4ab7dc, 0x3fd39b5a, 0x2b8ef77c, 0x2ee3cebe, 0xce0866b9, 0x27fdb2a6,
+       0xf9ba1651, 0x3fb11b47, 0x2afad269, 0x2f6bbe44, 0xcc983f71, 0x261feff9, 0xf82a6c6b, 0x3f84c8e1,
+       0x2a650525, 0x2ff1d9c6, 0xcb39edca, 0x2434f332, 0xf69bf7c9, 0x3f4eaafe, 0x29cd9577, 0x30761c17,
+       0xc9edeb50, 0x223d66a8, 0xf50ef5de, 0x3f0ec9f4, 0x29348937, 0x30f8801f, 0xc8b4ab32, 0x2039f90e,
+       0xf383a3e2, 0x3ec52f9f, 0x2899e64a, 0x317900d6, 0xc78e9a1d, 0x1e2b5d38, 0xf1fa3ecb, 0x3e71e758,
+       0x27fdb2a6, 0x31f79947, 0xc67c1e19, 0x1c1249d8, 0xf0730343, 0x3e14fdf7, 0x275ff452, 0x32744493,
+       0xc57d965e, 0x19ef7943, 0xeeee2d9e, 0x3dae81ce, 0x26c0b162, 0x32eefde9, 0xc4935b3c, 0x17c3a931,
+       0xed6bf9d2, 0x3d3e82ad, 0x261feff9, 0x3367c08f, 0xc3bdbdf7, 0x158f9a75, 0xebeca36c, 0x3cc511d8,
+       0x257db64b, 0x33de87de, 0xc2fd08aa, 0x135410c2, 0xea70658b, 0x3c424209, 0x24da0a99, 0x34534f40,
+       0xc2517e32, 0x1111d262, 0xe8f77ad0, 0x3bb6276d, 0x2434f332, 0x34c61236, 0xc1bb5a12, 0x0ec9a7f2,
+       0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xe61086bd, 0x3a8269a2,
+       0x22e69ac7, 0x35a5793c, 0xc0d00db7, 0x0a2abb58, 0xe4a2eff7, 0x39daf5e8, 0x223d66a8, 0x361214b0,
+       0xc07b371f, 0x07d59395, 0xe3399167, 0x392a9642, 0x2192e09a, 0x367c9a7d, 0xc03c6a07, 0x057db402,
+       0xe1d4a2c8, 0x387165e3, 0x20e70f32, 0x36e5068a, 0xc013bc3a, 0x0323ecbe, 0xe0745b25, 0x37af8158,
+       0x2039f90e, 0x374b54ce, 0xc0013bd3, 0x00c90e8f, 0xdf18f0ce, 0x36e5068a, 0x1f8ba4db, 0x37af8158,
+       0xc004ef3f, 0xfe6deaa1, 0xddc29958, 0x361214b0, 0x1edc1952, 0x3811884c, 0xc01ed535, 0xfc135231,
+       0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 0xc04ee4b9, 0xf9ba1651, 0xdb25f567, 0x34534f40,
+       0x1d79775b, 0x38cf1669, 0xc0950d1d, 0xf7630799, 0xd9e01007, 0x3367c08f, 0x1cc66e99, 0x392a9642,
+       0xc0f1360c, 0xf50ef5de, 0xd8a00bae, 0x32744493, 0x1c1249d8, 0x3983e1e7, 0xc1633f8a, 0xf2beafee,
+       0xd76619b6, 0x317900d6, 0x1b5d1009, 0x39daf5e8, 0xc1eb0209, 0xf0730343, 0xd6326a89, 0x30761c17,
+       0x1aa6c82b, 0x3a2fcee8, 0xc2884e6f, 0xee2cbbc1, 0xd5052d97, 0x2f6bbe44, 0x19ef7943, 0x3a8269a2,
+       0xc33aee28, 0xebeca36c, 0xd3de9156, 0x2e5a106f, 0x19372a63, 0x3ad2c2e7, 0xc402a33c, 0xe9b38223,
+       0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xd1a5ef91, 0x2c216eaa,
+       0x17c3a931, 0x3b6ca4c4, 0xc5d03118, 0xe55937d5, 0xd09441bc, 0x2afad269, 0x17088530, 0x3bb6276d,
+       0xc6d569be, 0xe3399167, 0xcf89e3e9, 0x29cd9577, 0x164c7ddd, 0x3bfd5cc4, 0xc7ee77b4, 0xe123e6ae,
+       0xce86ff2a, 0x2899e64a, 0x158f9a75, 0x3c424209, 0xc91af976, 0xdf18f0ce, 0xcd8bbb6d, 0x275ff452,
+       0x14d1e242, 0x3c84d496, 0xca5a86c4, 0xdd196539, 0xcc983f71, 0x261feff9, 0x14135c94, 0x3cc511d8,
+       0xcbacb0c0, 0xdb25f567, 0xcbacb0c0, 0x24da0a99, 0x135410c2, 0x3d02f756, 0xcd110217, 0xd93f4e9e,
+       0xcac933ae, 0x238e7673, 0x1294062e, 0x3d3e82ad, 0xce86ff2a, 0xd76619b6, 0xc9edeb50, 0x223d66a8,
+       0x11d3443f, 0x3d77b191, 0xd00e263a, 0xd59afadb, 0xc91af976, 0x20e70f32, 0x1111d262, 0x3dae81ce,
+       0xd1a5ef91, 0xd3de9156, 0xc8507ea8, 0x1f8ba4db, 0x104fb80e, 0x3de2f147, 0xd34dcdb5, 0xd2317757,
+       0xc78e9a1d, 0x1e2b5d38, 0x0f8cfcbd, 0x3e14fdf7, 0xd5052d97, 0xd09441bc, 0xc6d569be, 0x1cc66e99,
+       0x0ec9a7f2, 0x3e44a5ee, 0xd6cb76c9, 0xcf077fe1, 0xc6250a18, 0x1b5d1009, 0x0e05c135, 0x3e71e758,
+       0xd8a00bae, 0xcd8bbb6d, 0xc57d965e, 0x19ef7943, 0x0d415012, 0x3e9cc076, 0xda8249b5, 0xcc217822,
+       0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 0xc449d893, 0x17088530,
+       0x0bb6ecef, 0x3eeb3347, 0xde6d1f66, 0xc9836583, 0xc3bdbdf7, 0x158f9a75, 0x0af10a22, 0x3f0ec9f4,
+       0xe0745b25, 0xc8507ea8, 0xc33aee28, 0x14135c94, 0x0a2abb58, 0x3f2ff249, 0xe28688a5, 0xc730e997,
+       0xc2c17d53, 0x1294062e, 0x09640837, 0x3f4eaafe, 0xe4a2eff7, 0xc6250a18, 0xc2517e32, 0x1111d262,
+       0x089cf867, 0x3f6af2e3, 0xe6c8d59d, 0xc52d3d19, 0xc1eb0209, 0x0f8cfcbd, 0x07d59395, 0x3f84c8e1,
+       0xe8f77ad0, 0xc449d893, 0xc18e18a8, 0x0e05c135, 0x070de171, 0x3f9c2bfa, 0xeb2e1dbe, 0xc37b2b6a,
+       0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 0xed6bf9d2, 0xc2c17d53, 0xc0f1360c, 0x0af10a22,
+       0x057db402, 0x3fc395f9, 0xefb047f2, 0xc21d0eb9, 0xc0b15502, 0x09640837, 0x04b54824, 0x3fd39b5a,
+       0xf1fa3ecb, 0xc18e18a8, 0xc07b371f, 0x07d59395, 0x03ecadcf, 0x3fe12acb, 0xf4491311, 0xc114ccb9,
+       0xc04ee4b9, 0x0645e9af, 0x0323ecbe, 0x3fec43c6, 0xf69bf7c9, 0xc0b15502, 0xc02c64a6, 0x04b54824,
+       0x025b0cae, 0x3ff4e5df, 0xf8f21e8f, 0xc063d406, 0xc013bc3a, 0x0323ecbe, 0x0192155f, 0x3ffb10c1,
        0xfb4ab7dc, 0xc02c64a6, 0xc004ef3f, 0x0192155f, 0x00c90e8f, 0x3ffec42d, 0xfda4f352, 0xc00b1a21
 };
 
 const int twidTab64[4*6 + 16*6] = {
-       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x2d413ccc, 0x2d413ccc, 
-       0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 
-       0xd2bec334, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 
-
-       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3ec52f9f, 0x0c7c5c1e, 
-       0x3fb11b47, 0x0645e9af, 0x3d3e82ad, 0x1294062e, 0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 
-       0x3536cc52, 0x238e7673, 0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 0x2899e64a, 0x317900d6, 
-       0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x238e7673, 0x3536cc52, 
-       0x387165e3, 0x1e2b5d38, 0x0645e9af, 0x3fb11b47, 0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 
-       0xf383a3e2, 0x3ec52f9f, 0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 0xe1d4a2c8, 0x387165e3, 
-       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xf383a3e2, 0x3ec52f9f, 
-       0x2899e64a, 0x317900d6, 0xc78e9a1d, 0x1e2b5d38, 0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 
-       0xc13ad061, 0x0c7c5c1e, 0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 0xc04ee4b9, 0xf9ba1651, 
-       0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xcac933ae, 0x238e7673, 
-       0x1294062e, 0x3d3e82ad, 0xce86ff2a, 0xd76619b6, 0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 
-       0xdc71898d, 0xcac933ae, 0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 0xed6bf9d2, 0xc2c17d53 
+       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x2d413ccc, 0x2d413ccc,
+       0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc,
+       0xd2bec334, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a,
+
+       0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3ec52f9f, 0x0c7c5c1e,
+       0x3fb11b47, 0x0645e9af, 0x3d3e82ad, 0x1294062e, 0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e,
+       0x3536cc52, 0x238e7673, 0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 0x2899e64a, 0x317900d6,
+       0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x238e7673, 0x3536cc52,
+       0x387165e3, 0x1e2b5d38, 0x0645e9af, 0x3fb11b47, 0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673,
+       0xf383a3e2, 0x3ec52f9f, 0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 0xe1d4a2c8, 0x387165e3,
+       0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xf383a3e2, 0x3ec52f9f,
+       0x2899e64a, 0x317900d6, 0xc78e9a1d, 0x1e2b5d38, 0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52,
+       0xc13ad061, 0x0c7c5c1e, 0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 0xc04ee4b9, 0xf9ba1651,
+       0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xcac933ae, 0x238e7673,
+       0x1294062e, 0x3d3e82ad, 0xce86ff2a, 0xd76619b6, 0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f,
+       0xdc71898d, 0xcac933ae, 0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 0xed6bf9d2, 0xc2c17d53
 };
 #endif  //ARMV5E
 
-const int ShortWindowSine[FRAME_LEN_SHORT/2] ={  
-       0x00c97fff, 0x025b7ffa, 0x03ed7ff1, 0x057f7fe2, 0x07117fce, 0x08a27fb5, 0x0a337f98, 0x0bc47f75, 
-       0x0d547f4e, 0x0ee47f22, 0x10737ef0, 0x12017eba, 0x138f7e7f, 0x151c7e3f, 0x16a87dfb, 0x18337db1, 
-       0x19be7d63, 0x1b477d0f, 0x1cd07cb7, 0x1e577c5a, 0x1fdd7bf9, 0x21627b92, 0x22e57b27, 0x24677ab7, 
-       0x25e87a42, 0x276879c9, 0x28e5794a, 0x2a6278c8, 0x2bdc7840, 0x2d5577b4, 0x2ecc7723, 0x3042768e, 
-       0x31b575f4, 0x33277556, 0x349774b3, 0x3604740b, 0x3770735f, 0x38d972af, 0x3a4071fa, 0x3ba57141, 
-       0x3d087083, 0x3e686fc2, 0x3fc66efb, 0x41216e31, 0x427a6d62, 0x43d16c8f, 0x45246bb8, 0x46756add, 
-       0x47c469fd, 0x490f691a, 0x4a586832, 0x4b9e6747, 0x4ce16657, 0x4e216564, 0x4f5e646c, 0x50986371, 
+const int ShortWindowSine[FRAME_LEN_SHORT/2] ={
+       0x00c97fff, 0x025b7ffa, 0x03ed7ff1, 0x057f7fe2, 0x07117fce, 0x08a27fb5, 0x0a337f98, 0x0bc47f75,
+       0x0d547f4e, 0x0ee47f22, 0x10737ef0, 0x12017eba, 0x138f7e7f, 0x151c7e3f, 0x16a87dfb, 0x18337db1,
+       0x19be7d63, 0x1b477d0f, 0x1cd07cb7, 0x1e577c5a, 0x1fdd7bf9, 0x21627b92, 0x22e57b27, 0x24677ab7,
+       0x25e87a42, 0x276879c9, 0x28e5794a, 0x2a6278c8, 0x2bdc7840, 0x2d5577b4, 0x2ecc7723, 0x3042768e,
+       0x31b575f4, 0x33277556, 0x349774b3, 0x3604740b, 0x3770735f, 0x38d972af, 0x3a4071fa, 0x3ba57141,
+       0x3d087083, 0x3e686fc2, 0x3fc66efb, 0x41216e31, 0x427a6d62, 0x43d16c8f, 0x45246bb8, 0x46756add,
+       0x47c469fd, 0x490f691a, 0x4a586832, 0x4b9e6747, 0x4ce16657, 0x4e216564, 0x4f5e646c, 0x50986371,
        0x51cf6272, 0x5303616f, 0x54336068, 0x55605f5e, 0x568a5e50, 0x57b15d3e, 0x58d45c29, 0x59f45b10
 };
 
-const int LongWindowKBD[FRAME_LEN_LONG/2]={  
-       0x000a7fff, 0x000e7fff, 0x00127fff, 0x00157fff, 0x00197fff, 0x001c7fff, 0x00207fff, 0x00237fff, 
-       0x00267fff, 0x002a7fff, 0x002d7fff, 0x00307fff, 0x00347fff, 0x00387fff, 0x003b7fff, 0x003f7fff, 
-       0x00437fff, 0x00477fff, 0x004b7fff, 0x004f7fff, 0x00537fff, 0x00577fff, 0x005b7fff, 0x00607fff, 
-       0x00647fff, 0x00697fff, 0x006d7fff, 0x00727fff, 0x00777fff, 0x007c7fff, 0x00817fff, 0x00867fff, 
-       0x008b7fff, 0x00917fff, 0x00967fff, 0x009c7fff, 0x00a17fff, 0x00a77fff, 0x00ad7fff, 0x00b37fff, 
-       0x00b97fff, 0x00bf7fff, 0x00c67fff, 0x00cc7fff, 0x00d37fff, 0x00da7fff, 0x00e07fff, 0x00e77fff, 
-       0x00ee7fff, 0x00f57fff, 0x00fd7fff, 0x01047fff, 0x010c7fff, 0x01137fff, 0x011b7fff, 0x01237fff, 
-       0x012b7fff, 0x01337fff, 0x013c7ffe, 0x01447ffe, 0x014d7ffe, 0x01567ffe, 0x015f7ffe, 0x01687ffe, 
-       0x01717ffe, 0x017a7ffe, 0x01837ffe, 0x018d7ffe, 0x01977ffd, 0x01a17ffd, 0x01ab7ffd, 0x01b57ffd, 
-       0x01bf7ffd, 0x01ca7ffd, 0x01d47ffd, 0x01df7ffc, 0x01ea7ffc, 0x01f57ffc, 0x02007ffc, 0x020c7ffc, 
-       0x02177ffc, 0x02237ffb, 0x022f7ffb, 0x023b7ffb, 0x02477ffb, 0x02537ffb, 0x02607ffa, 0x026d7ffa, 
-       0x027a7ffa, 0x02877ffa, 0x02947ff9, 0x02a17ff9, 0x02af7ff9, 0x02bc7ff9, 0x02ca7ff8, 0x02d87ff8, 
-       0x02e77ff8, 0x02f57ff7, 0x03047ff7, 0x03127ff7, 0x03217ff6, 0x03317ff6, 0x03407ff5, 0x034f7ff5, 
-       0x035f7ff5, 0x036f7ff4, 0x037f7ff4, 0x038f7ff3, 0x03a07ff3, 0x03b07ff2, 0x03c17ff2, 0x03d27ff1, 
-       0x03e37ff1, 0x03f57ff0, 0x04067ff0, 0x04187fef, 0x042a7fef, 0x043c7fee, 0x044f7fed, 0x04617fed, 
-       0x04747fec, 0x04877feb, 0x049a7feb, 0x04ae7fea, 0x04c17fe9, 0x04d57fe9, 0x04e97fe8, 0x04fd7fe7, 
-       0x05127fe6, 0x05277fe5, 0x053b7fe5, 0x05507fe4, 0x05667fe3, 0x057b7fe2, 0x05917fe1, 0x05a77fe0, 
-       0x05bd7fdf, 0x05d37fde, 0x05ea7fdd, 0x06017fdc, 0x06187fdb, 0x062f7fda, 0x06467fd9, 0x065e7fd7, 
-       0x06767fd6, 0x068e7fd5, 0x06a67fd4, 0x06bf7fd2, 0x06d87fd1, 0x06f17fd0, 0x070a7fce, 0x07237fcd, 
-       0x073d7fcc, 0x07577fca, 0x07717fc9, 0x078c7fc7, 0x07a67fc5, 0x07c17fc4, 0x07dc7fc2, 0x07f77fc0, 
-       0x08137fbf, 0x082f7fbd, 0x084b7fbb, 0x08677fb9, 0x08847fb7, 0x08a07fb6, 0x08bd7fb4, 0x08da7fb2, 
-       0x08f87faf, 0x09167fad, 0x09347fab, 0x09527fa9, 0x09707fa7, 0x098f7fa5, 0x09ae7fa2, 0x09cd7fa0, 
-       0x09ec7f9d, 0x0a0c7f9b, 0x0a2c7f98, 0x0a4c7f96, 0x0a6c7f93, 0x0a8d7f91, 0x0aae7f8e, 0x0acf7f8b, 
-       0x0af07f88, 0x0b127f85, 0x0b337f82, 0x0b557f7f, 0x0b787f7c, 0x0b9a7f79, 0x0bbd7f76, 0x0be07f73, 
-       0x0c047f6f, 0x0c277f6c, 0x0c4b7f69, 0x0c6f7f65, 0x0c937f61, 0x0cb87f5e, 0x0cdd7f5a, 0x0d027f56, 
-       0x0d277f53, 0x0d4d7f4f, 0x0d737f4b, 0x0d997f47, 0x0dbf7f43, 0x0de67f3e, 0x0e0c7f3a, 0x0e347f36, 
-       0x0e5b7f31, 0x0e837f2d, 0x0eaa7f28, 0x0ed37f24, 0x0efb7f1f, 0x0f237f1a, 0x0f4c7f15, 0x0f757f10, 
-       0x0f9f7f0b, 0x0fc87f06, 0x0ff27f01, 0x101c7efb, 0x10477ef6, 0x10717ef0, 0x109c7eeb, 0x10c87ee5, 
-       0x10f37edf, 0x111f7eda, 0x114a7ed4, 0x11777ece, 0x11a37ec7, 0x11d07ec1, 0x11fd7ebb, 0x122a7eb4, 
-       0x12577eae, 0x12857ea7, 0x12b37ea0, 0x12e17e9a, 0x130f7e93, 0x133e7e8c, 0x136d7e84, 0x139c7e7d, 
-       0x13cc7e76, 0x13fb7e6e, 0x142b7e67, 0x145b7e5f, 0x148c7e57, 0x14bc7e4f, 0x14ed7e47, 0x151e7e3f, 
-       0x15507e37, 0x15817e2e, 0x15b37e26, 0x15e57e1d, 0x16187e14, 0x164a7e0b, 0x167d7e02, 0x16b07df9, 
-       0x16e47df0, 0x17177de6, 0x174b7ddd, 0x177f7dd3, 0x17b37dc9, 0x17e87dbf, 0x181d7db5, 0x18527dab, 
-       0x18877da1, 0x18bc7d96, 0x18f27d8c, 0x19287d81, 0x195e7d76, 0x19957d6b, 0x19cb7d60, 0x1a027d54, 
-       0x1a397d49, 0x1a717d3d, 0x1aa87d31, 0x1ae07d26, 0x1b187d19, 0x1b507d0d, 0x1b897d01, 0x1bc27cf4, 
-       0x1bfb7ce8, 0x1c347cdb, 0x1c6d7cce, 0x1ca77cc1, 0x1ce17cb3, 0x1d1b7ca6, 0x1d557c98, 0x1d8f7c8a, 
-       0x1dca7c7c, 0x1e057c6e, 0x1e407c60, 0x1e7b7c51, 0x1eb77c43, 0x1ef37c34, 0x1f2f7c25, 0x1f6b7c16, 
-       0x1fa77c06, 0x1fe47bf7, 0x20217be7, 0x205e7bd7, 0x209b7bc7, 0x20d87bb7, 0x21167ba6, 0x21547b96, 
-       0x21927b85, 0x21d07b74, 0x220e7b63, 0x224d7b52, 0x228c7b40, 0x22cb7b2e, 0x230a7b1c, 0x23497b0a, 
-       0x23897af8, 0x23c87ae6, 0x24087ad3, 0x24487ac0, 0x24897aad, 0x24c97a9a, 0x250a7a86, 0x254b7a73, 
-       0x258c7a5f, 0x25cd7a4b, 0x260e7a36, 0x26507a22, 0x26917a0d, 0x26d379f8, 0x271579e3, 0x275779ce, 
-       0x279a79b8, 0x27dc79a3, 0x281f798d, 0x28627977, 0x28a57960, 0x28e8794a, 0x292b7933, 0x296f791c, 
-       0x29b27905, 0x29f678ed, 0x2a3a78d6, 0x2a7e78be, 0x2ac278a6, 0x2b07788d, 0x2b4b7875, 0x2b90785c, 
-       0x2bd47843, 0x2c19782a, 0x2c5e7810, 0x2ca477f7, 0x2ce977dd, 0x2d2e77c3, 0x2d7477a8, 0x2dba778e, 
-       0x2dff7773, 0x2e457758, 0x2e8b773d, 0x2ed27721, 0x2f187706, 0x2f5e76ea, 0x2fa576cd, 0x2fec76b1, 
-       0x30327694, 0x30797677, 0x30c0765a, 0x3107763d, 0x314e761f, 0x31967601, 0x31dd75e3, 0x322575c5, 
-       0x326c75a6, 0x32b47588, 0x32fc7569, 0x33447549, 0x338c752a, 0x33d4750a, 0x341c74ea, 0x346474ca, 
-       0x34ac74a9, 0x34f57488, 0x353d7467, 0x35857446, 0x35ce7424, 0x36177403, 0x365f73e1, 0x36a873be, 
-       0x36f1739c, 0x373a7379, 0x37837356, 0x37cc7333, 0x3815730f, 0x385e72ec, 0x38a772c8, 0x38f172a3, 
-       0x393a727f, 0x3983725a, 0x39cd7235, 0x3a167210, 0x3a6071ea, 0x3aa971c4, 0x3af3719e, 0x3b3c7178, 
-       0x3b867151, 0x3bd0712b, 0x3c197104, 0x3c6370dc, 0x3cad70b5, 0x3cf7708d, 0x3d407065, 0x3d8a703c, 
-       0x3dd47014, 0x3e1e6feb, 0x3e686fc2, 0x3eb16f98, 0x3efb6f6f, 0x3f456f45, 0x3f8f6f1b, 0x3fd96ef0, 
-       0x40236ec6, 0x406d6e9b, 0x40b66e70, 0x41006e44, 0x414a6e19, 0x41946ded, 0x41de6dc1, 0x42286d94, 
-       0x42716d68, 0x42bb6d3b, 0x43056d0d, 0x434f6ce0, 0x43986cb2, 0x43e26c84, 0x442c6c56, 0x44756c28, 
-       0x44bf6bf9, 0x45086bca, 0x45526b9b, 0x459b6b6b, 0x45e56b3c, 0x462e6b0c, 0x46786adb, 0x46c16aab, 
-       0x470a6a7a, 0x47536a49, 0x479c6a18, 0x47e569e7, 0x482e69b5, 0x48776983, 0x48c06951, 0x4909691e, 
-       0x495268ec, 0x499b68b9, 0x49e36885, 0x4a2c6852, 0x4a74681e, 0x4abd67ea, 0x4b0567b6, 0x4b4d6782, 
-       0x4b95674d, 0x4bde6718, 0x4c2666e3, 0x4c6d66ae, 0x4cb56678, 0x4cfd6642, 0x4d45660c, 0x4d8c65d6, 
-       0x4dd4659f, 0x4e1b6568, 0x4e626531, 0x4ea964fa, 0x4ef064c3, 0x4f37648b, 0x4f7e6453, 0x4fc5641b, 
-       0x500b63e2, 0x505263aa, 0x50986371, 0x50df6338, 0x512562fe, 0x516b62c5, 0x51b1628b, 0x51f66251, 
-       0x523c6217, 0x528161dc, 0x52c761a2, 0x530c6167, 0x5351612c, 0x539660f1, 0x53db60b5, 0x54206079, 
-       0x5464603d, 0x54a96001, 0x54ed5fc5, 0x55315f88, 0x55755f4b, 0x55b95f0e, 0x55fc5ed1, 0x56405e94, 
-       0x56835e56, 0x56c75e18, 0x570a5dda, 0x574d5d9c, 0x578f5d5e, 0x57d25d1f, 0x58145ce0, 0x58565ca1, 
+const int LongWindowKBD[FRAME_LEN_LONG/2]={
+       0x000a7fff, 0x000e7fff, 0x00127fff, 0x00157fff, 0x00197fff, 0x001c7fff, 0x00207fff, 0x00237fff,
+       0x00267fff, 0x002a7fff, 0x002d7fff, 0x00307fff, 0x00347fff, 0x00387fff, 0x003b7fff, 0x003f7fff,
+       0x00437fff, 0x00477fff, 0x004b7fff, 0x004f7fff, 0x00537fff, 0x00577fff, 0x005b7fff, 0x00607fff,
+       0x00647fff, 0x00697fff, 0x006d7fff, 0x00727fff, 0x00777fff, 0x007c7fff, 0x00817fff, 0x00867fff,
+       0x008b7fff, 0x00917fff, 0x00967fff, 0x009c7fff, 0x00a17fff, 0x00a77fff, 0x00ad7fff, 0x00b37fff,
+       0x00b97fff, 0x00bf7fff, 0x00c67fff, 0x00cc7fff, 0x00d37fff, 0x00da7fff, 0x00e07fff, 0x00e77fff,
+       0x00ee7fff, 0x00f57fff, 0x00fd7fff, 0x01047fff, 0x010c7fff, 0x01137fff, 0x011b7fff, 0x01237fff,
+       0x012b7fff, 0x01337fff, 0x013c7ffe, 0x01447ffe, 0x014d7ffe, 0x01567ffe, 0x015f7ffe, 0x01687ffe,
+       0x01717ffe, 0x017a7ffe, 0x01837ffe, 0x018d7ffe, 0x01977ffd, 0x01a17ffd, 0x01ab7ffd, 0x01b57ffd,
+       0x01bf7ffd, 0x01ca7ffd, 0x01d47ffd, 0x01df7ffc, 0x01ea7ffc, 0x01f57ffc, 0x02007ffc, 0x020c7ffc,
+       0x02177ffc, 0x02237ffb, 0x022f7ffb, 0x023b7ffb, 0x02477ffb, 0x02537ffb, 0x02607ffa, 0x026d7ffa,
+       0x027a7ffa, 0x02877ffa, 0x02947ff9, 0x02a17ff9, 0x02af7ff9, 0x02bc7ff9, 0x02ca7ff8, 0x02d87ff8,
+       0x02e77ff8, 0x02f57ff7, 0x03047ff7, 0x03127ff7, 0x03217ff6, 0x03317ff6, 0x03407ff5, 0x034f7ff5,
+       0x035f7ff5, 0x036f7ff4, 0x037f7ff4, 0x038f7ff3, 0x03a07ff3, 0x03b07ff2, 0x03c17ff2, 0x03d27ff1,
+       0x03e37ff1, 0x03f57ff0, 0x04067ff0, 0x04187fef, 0x042a7fef, 0x043c7fee, 0x044f7fed, 0x04617fed,
+       0x04747fec, 0x04877feb, 0x049a7feb, 0x04ae7fea, 0x04c17fe9, 0x04d57fe9, 0x04e97fe8, 0x04fd7fe7,
+       0x05127fe6, 0x05277fe5, 0x053b7fe5, 0x05507fe4, 0x05667fe3, 0x057b7fe2, 0x05917fe1, 0x05a77fe0,
+       0x05bd7fdf, 0x05d37fde, 0x05ea7fdd, 0x06017fdc, 0x06187fdb, 0x062f7fda, 0x06467fd9, 0x065e7fd7,
+       0x06767fd6, 0x068e7fd5, 0x06a67fd4, 0x06bf7fd2, 0x06d87fd1, 0x06f17fd0, 0x070a7fce, 0x07237fcd,
+       0x073d7fcc, 0x07577fca, 0x07717fc9, 0x078c7fc7, 0x07a67fc5, 0x07c17fc4, 0x07dc7fc2, 0x07f77fc0,
+       0x08137fbf, 0x082f7fbd, 0x084b7fbb, 0x08677fb9, 0x08847fb7, 0x08a07fb6, 0x08bd7fb4, 0x08da7fb2,
+       0x08f87faf, 0x09167fad, 0x09347fab, 0x09527fa9, 0x09707fa7, 0x098f7fa5, 0x09ae7fa2, 0x09cd7fa0,
+       0x09ec7f9d, 0x0a0c7f9b, 0x0a2c7f98, 0x0a4c7f96, 0x0a6c7f93, 0x0a8d7f91, 0x0aae7f8e, 0x0acf7f8b,
+       0x0af07f88, 0x0b127f85, 0x0b337f82, 0x0b557f7f, 0x0b787f7c, 0x0b9a7f79, 0x0bbd7f76, 0x0be07f73,
+       0x0c047f6f, 0x0c277f6c, 0x0c4b7f69, 0x0c6f7f65, 0x0c937f61, 0x0cb87f5e, 0x0cdd7f5a, 0x0d027f56,
+       0x0d277f53, 0x0d4d7f4f, 0x0d737f4b, 0x0d997f47, 0x0dbf7f43, 0x0de67f3e, 0x0e0c7f3a, 0x0e347f36,
+       0x0e5b7f31, 0x0e837f2d, 0x0eaa7f28, 0x0ed37f24, 0x0efb7f1f, 0x0f237f1a, 0x0f4c7f15, 0x0f757f10,
+       0x0f9f7f0b, 0x0fc87f06, 0x0ff27f01, 0x101c7efb, 0x10477ef6, 0x10717ef0, 0x109c7eeb, 0x10c87ee5,
+       0x10f37edf, 0x111f7eda, 0x114a7ed4, 0x11777ece, 0x11a37ec7, 0x11d07ec1, 0x11fd7ebb, 0x122a7eb4,
+       0x12577eae, 0x12857ea7, 0x12b37ea0, 0x12e17e9a, 0x130f7e93, 0x133e7e8c, 0x136d7e84, 0x139c7e7d,
+       0x13cc7e76, 0x13fb7e6e, 0x142b7e67, 0x145b7e5f, 0x148c7e57, 0x14bc7e4f, 0x14ed7e47, 0x151e7e3f,
+       0x15507e37, 0x15817e2e, 0x15b37e26, 0x15e57e1d, 0x16187e14, 0x164a7e0b, 0x167d7e02, 0x16b07df9,
+       0x16e47df0, 0x17177de6, 0x174b7ddd, 0x177f7dd3, 0x17b37dc9, 0x17e87dbf, 0x181d7db5, 0x18527dab,
+       0x18877da1, 0x18bc7d96, 0x18f27d8c, 0x19287d81, 0x195e7d76, 0x19957d6b, 0x19cb7d60, 0x1a027d54,
+       0x1a397d49, 0x1a717d3d, 0x1aa87d31, 0x1ae07d26, 0x1b187d19, 0x1b507d0d, 0x1b897d01, 0x1bc27cf4,
+       0x1bfb7ce8, 0x1c347cdb, 0x1c6d7cce, 0x1ca77cc1, 0x1ce17cb3, 0x1d1b7ca6, 0x1d557c98, 0x1d8f7c8a,
+       0x1dca7c7c, 0x1e057c6e, 0x1e407c60, 0x1e7b7c51, 0x1eb77c43, 0x1ef37c34, 0x1f2f7c25, 0x1f6b7c16,
+       0x1fa77c06, 0x1fe47bf7, 0x20217be7, 0x205e7bd7, 0x209b7bc7, 0x20d87bb7, 0x21167ba6, 0x21547b96,
+       0x21927b85, 0x21d07b74, 0x220e7b63, 0x224d7b52, 0x228c7b40, 0x22cb7b2e, 0x230a7b1c, 0x23497b0a,
+       0x23897af8, 0x23c87ae6, 0x24087ad3, 0x24487ac0, 0x24897aad, 0x24c97a9a, 0x250a7a86, 0x254b7a73,
+       0x258c7a5f, 0x25cd7a4b, 0x260e7a36, 0x26507a22, 0x26917a0d, 0x26d379f8, 0x271579e3, 0x275779ce,
+       0x279a79b8, 0x27dc79a3, 0x281f798d, 0x28627977, 0x28a57960, 0x28e8794a, 0x292b7933, 0x296f791c,
+       0x29b27905, 0x29f678ed, 0x2a3a78d6, 0x2a7e78be, 0x2ac278a6, 0x2b07788d, 0x2b4b7875, 0x2b90785c,
+       0x2bd47843, 0x2c19782a, 0x2c5e7810, 0x2ca477f7, 0x2ce977dd, 0x2d2e77c3, 0x2d7477a8, 0x2dba778e,
+       0x2dff7773, 0x2e457758, 0x2e8b773d, 0x2ed27721, 0x2f187706, 0x2f5e76ea, 0x2fa576cd, 0x2fec76b1,
+       0x30327694, 0x30797677, 0x30c0765a, 0x3107763d, 0x314e761f, 0x31967601, 0x31dd75e3, 0x322575c5,
+       0x326c75a6, 0x32b47588, 0x32fc7569, 0x33447549, 0x338c752a, 0x33d4750a, 0x341c74ea, 0x346474ca,
+       0x34ac74a9, 0x34f57488, 0x353d7467, 0x35857446, 0x35ce7424, 0x36177403, 0x365f73e1, 0x36a873be,
+       0x36f1739c, 0x373a7379, 0x37837356, 0x37cc7333, 0x3815730f, 0x385e72ec, 0x38a772c8, 0x38f172a3,
+       0x393a727f, 0x3983725a, 0x39cd7235, 0x3a167210, 0x3a6071ea, 0x3aa971c4, 0x3af3719e, 0x3b3c7178,
+       0x3b867151, 0x3bd0712b, 0x3c197104, 0x3c6370dc, 0x3cad70b5, 0x3cf7708d, 0x3d407065, 0x3d8a703c,
+       0x3dd47014, 0x3e1e6feb, 0x3e686fc2, 0x3eb16f98, 0x3efb6f6f, 0x3f456f45, 0x3f8f6f1b, 0x3fd96ef0,
+       0x40236ec6, 0x406d6e9b, 0x40b66e70, 0x41006e44, 0x414a6e19, 0x41946ded, 0x41de6dc1, 0x42286d94,
+       0x42716d68, 0x42bb6d3b, 0x43056d0d, 0x434f6ce0, 0x43986cb2, 0x43e26c84, 0x442c6c56, 0x44756c28,
+       0x44bf6bf9, 0x45086bca, 0x45526b9b, 0x459b6b6b, 0x45e56b3c, 0x462e6b0c, 0x46786adb, 0x46c16aab,
+       0x470a6a7a, 0x47536a49, 0x479c6a18, 0x47e569e7, 0x482e69b5, 0x48776983, 0x48c06951, 0x4909691e,
+       0x495268ec, 0x499b68b9, 0x49e36885, 0x4a2c6852, 0x4a74681e, 0x4abd67ea, 0x4b0567b6, 0x4b4d6782,
+       0x4b95674d, 0x4bde6718, 0x4c2666e3, 0x4c6d66ae, 0x4cb56678, 0x4cfd6642, 0x4d45660c, 0x4d8c65d6,
+       0x4dd4659f, 0x4e1b6568, 0x4e626531, 0x4ea964fa, 0x4ef064c3, 0x4f37648b, 0x4f7e6453, 0x4fc5641b,
+       0x500b63e2, 0x505263aa, 0x50986371, 0x50df6338, 0x512562fe, 0x516b62c5, 0x51b1628b, 0x51f66251,
+       0x523c6217, 0x528161dc, 0x52c761a2, 0x530c6167, 0x5351612c, 0x539660f1, 0x53db60b5, 0x54206079,
+       0x5464603d, 0x54a96001, 0x54ed5fc5, 0x55315f88, 0x55755f4b, 0x55b95f0e, 0x55fc5ed1, 0x56405e94,
+       0x56835e56, 0x56c75e18, 0x570a5dda, 0x574d5d9c, 0x578f5d5e, 0x57d25d1f, 0x58145ce0, 0x58565ca1,
        0x58995c62, 0x58da5c23, 0x591c5be3, 0x595e5ba4, 0x599f5b64, 0x59e05b24, 0x5a215ae3, 0x5a625aa3
 };
 
@@ -1070,277 +1070,277 @@ const Word32 formfac_sqrttable[96] = {
 
   \brief   these tables are used for the non
            linear quantizer and inverse quantizer
-           
+
 */
 const Word32 mTab_3_4[512] = {
-       0x4c1bf829, 0x4c3880de, 0x4c550603, 0x4c71879c, 
-       0x4c8e05aa, 0x4caa8030, 0x4cc6f72f, 0x4ce36aab, 
-       0x4cffdaa4, 0x4d1c471d, 0x4d38b019, 0x4d55159a, 
-       0x4d7177a1, 0x4d8dd631, 0x4daa314b, 0x4dc688f3, 
-       0x4de2dd2a, 0x4dff2df2, 0x4e1b7b4d, 0x4e37c53d, 
-       0x4e540bc5, 0x4e704ee6, 0x4e8c8ea3, 0x4ea8cafd, 
-       0x4ec503f7, 0x4ee13992, 0x4efd6bd0, 0x4f199ab4, 
-       0x4f35c640, 0x4f51ee75, 0x4f6e1356, 0x4f8a34e4, 
-       0x4fa65321, 0x4fc26e10, 0x4fde85b2, 0x4ffa9a0a, 
-       0x5016ab18, 0x5032b8e0, 0x504ec362, 0x506acaa1, 
-       0x5086cea0, 0x50a2cf5e, 0x50becce0, 0x50dac725, 
-       0x50f6be31, 0x5112b205, 0x512ea2a3, 0x514a900d, 
-       0x51667a45, 0x5182614c, 0x519e4524, 0x51ba25cf, 
-       0x51d60350, 0x51f1dda7, 0x520db4d6, 0x522988e0, 
-       0x524559c6, 0x52612789, 0x527cf22d, 0x5298b9b1, 
-       0x52b47e19, 0x52d03f65, 0x52ebfd98, 0x5307b8b4, 
-       0x532370b9, 0x533f25aa, 0x535ad789, 0x53768656, 
-       0x53923215, 0x53addac6, 0x53c9806b, 0x53e52306, 
-       0x5400c298, 0x541c5f24, 0x5437f8ab, 0x54538f2e, 
-       0x546f22af, 0x548ab330, 0x54a640b3, 0x54c1cb38, 
-       0x54dd52c2, 0x54f8d753, 0x551458eb, 0x552fd78d, 
-       0x554b5339, 0x5566cbf3, 0x558241bb, 0x559db492, 
-       0x55b9247b, 0x55d49177, 0x55effb87, 0x560b62ad, 
-       0x5626c6eb, 0x56422842, 0x565d86b4, 0x5678e242, 
-       0x56943aee, 0x56af90b9, 0x56cae3a4, 0x56e633b2, 
-       0x570180e4, 0x571ccb3b, 0x573812b8, 0x5753575e, 
-       0x576e992e, 0x5789d829, 0x57a51450, 0x57c04da6, 
-       0x57db842b, 0x57f6b7e1, 0x5811e8c9, 0x582d16e6, 
-       0x58484238, 0x58636ac0, 0x587e9081, 0x5899b37c, 
-       0x58b4d3b1, 0x58cff123, 0x58eb0bd3, 0x590623c2, 
-       0x592138f2, 0x593c4b63, 0x59575b19, 0x59726812, 
-       0x598d7253, 0x59a879da, 0x59c37eab, 0x59de80c6, 
-       0x59f9802d, 0x5a147ce0, 0x5a2f76e2, 0x5a4a6e34, 
-       0x5a6562d6, 0x5a8054cb, 0x5a9b4414, 0x5ab630b2, 
-       0x5ad11aa6, 0x5aec01f1, 0x5b06e696, 0x5b21c895, 
-       0x5b3ca7ef, 0x5b5784a6, 0x5b725ebc, 0x5b8d3631, 
-       0x5ba80b06, 0x5bc2dd3e, 0x5bddacd9, 0x5bf879d8, 
-       0x5c13443d, 0x5c2e0c09, 0x5c48d13e, 0x5c6393dc, 
-       0x5c7e53e5, 0x5c99115a, 0x5cb3cc3c, 0x5cce848d, 
-       0x5ce93a4e, 0x5d03ed80, 0x5d1e9e24, 0x5d394c3b, 
-       0x5d53f7c7, 0x5d6ea0c9, 0x5d894742, 0x5da3eb33, 
-       0x5dbe8c9e, 0x5dd92b84, 0x5df3c7e5, 0x5e0e61c3, 
-       0x5e28f920, 0x5e438dfc, 0x5e5e2059, 0x5e78b037, 
-       0x5e933d99, 0x5eadc87e, 0x5ec850e9, 0x5ee2d6da, 
-       0x5efd5a53, 0x5f17db54, 0x5f3259e0, 0x5f4cd5f6, 
-       0x5f674f99, 0x5f81c6c8, 0x5f9c3b87, 0x5fb6add4, 
-       0x5fd11db3, 0x5feb8b23, 0x6005f626, 0x60205ebd, 
-       0x603ac4e9, 0x605528ac, 0x606f8a05, 0x6089e8f7, 
-       0x60a44583, 0x60be9fa9, 0x60d8f76b, 0x60f34cca, 
-       0x610d9fc7, 0x6127f062, 0x61423e9e, 0x615c8a7a, 
-       0x6176d3f9, 0x61911b1b, 0x61ab5fe1, 0x61c5a24d, 
-       0x61dfe25f, 0x61fa2018, 0x62145b7a, 0x622e9485, 
-       0x6248cb3b, 0x6262ff9d, 0x627d31ab, 0x62976167, 
-       0x62b18ed1, 0x62cbb9eb, 0x62e5e2b6, 0x63000933, 
-       0x631a2d62, 0x63344f45, 0x634e6edd, 0x63688c2b, 
-       0x6382a730, 0x639cbfec, 0x63b6d661, 0x63d0ea90, 
-       0x63eafc7a, 0x64050c1f, 0x641f1982, 0x643924a2, 
-       0x64532d80, 0x646d341f, 0x6487387e, 0x64a13a9e, 
-       0x64bb3a81, 0x64d53828, 0x64ef3393, 0x65092cc4, 
-       0x652323bb, 0x653d1879, 0x65570b00, 0x6570fb50, 
-       0x658ae96b, 0x65a4d550, 0x65bebf01, 0x65d8a680, 
-       0x65f28bcc, 0x660c6ee8, 0x66264fd3, 0x66402e8f, 
-       0x665a0b1c, 0x6673e57d, 0x668dbdb0, 0x66a793b8, 
-       0x66c16795, 0x66db3949, 0x66f508d4, 0x670ed636, 
-       0x6728a172, 0x67426a87, 0x675c3177, 0x6775f643, 
-       0x678fb8eb, 0x67a97971, 0x67c337d5, 0x67dcf418, 
-       0x67f6ae3b, 0x6810663f, 0x682a1c25, 0x6843cfed, 
-       0x685d8199, 0x68773129, 0x6890de9f, 0x68aa89fa, 
-       0x68c4333d, 0x68ddda67, 0x68f77f7a, 0x69112277, 
-       0x692ac35e, 0x69446230, 0x695dfeee, 0x6977999a, 
-       0x69913232, 0x69aac8ba, 0x69c45d31, 0x69ddef98, 
-       0x69f77ff0, 0x6a110e3a, 0x6a2a9a77, 0x6a4424a8, 
-       0x6a5daccc, 0x6a7732e6, 0x6a90b6f6, 0x6aaa38fd, 
-       0x6ac3b8fb, 0x6add36f2, 0x6af6b2e2, 0x6b102ccd, 
-       0x6b29a4b2, 0x6b431a92, 0x6b5c8e6f, 0x6b76004a, 
-       0x6b8f7022, 0x6ba8ddf9, 0x6bc249d0, 0x6bdbb3a7, 
-       0x6bf51b80, 0x6c0e815a, 0x6c27e537, 0x6c414718, 
-       0x6c5aa6fd, 0x6c7404e7, 0x6c8d60d7, 0x6ca6bace, 
-       0x6cc012cc, 0x6cd968d2, 0x6cf2bce1, 0x6d0c0ef9, 
-       0x6d255f1d, 0x6d3ead4b, 0x6d57f985, 0x6d7143cc, 
-       0x6d8a8c21, 0x6da3d283, 0x6dbd16f5, 0x6dd65976, 
-       0x6def9a08, 0x6e08d8ab, 0x6e221560, 0x6e3b5027, 
-       0x6e548902, 0x6e6dbff1, 0x6e86f4f5, 0x6ea0280e, 
-       0x6eb9593e, 0x6ed28885, 0x6eebb5e3, 0x6f04e15a, 
-       0x6f1e0aea, 0x6f373294, 0x6f505859, 0x6f697c39, 
-       0x6f829e35, 0x6f9bbe4e, 0x6fb4dc85, 0x6fcdf8d9, 
-       0x6fe7134d, 0x70002be0, 0x70194293, 0x70325767, 
-       0x704b6a5d, 0x70647b76, 0x707d8ab1, 0x70969811, 
-       0x70afa394, 0x70c8ad3d, 0x70e1b50c, 0x70fabb01, 
-       0x7113bf1d, 0x712cc161, 0x7145c1ce, 0x715ec064, 
-       0x7177bd24, 0x7190b80f, 0x71a9b124, 0x71c2a866, 
-       0x71db9dd4, 0x71f49170, 0x720d8339, 0x72267331, 
-       0x723f6159, 0x72584db0, 0x72713838, 0x728a20f1, 
-       0x72a307db, 0x72bbecf9, 0x72d4d049, 0x72edb1ce, 
-       0x73069187, 0x731f6f75, 0x73384b98, 0x735125f3, 
-       0x7369fe84, 0x7382d54d, 0x739baa4e, 0x73b47d89, 
-       0x73cd4efd, 0x73e61eab, 0x73feec94, 0x7417b8b8, 
-       0x74308319, 0x74494bb6, 0x74621291, 0x747ad7aa, 
-       0x74939b02, 0x74ac5c98, 0x74c51c6f, 0x74ddda86, 
-       0x74f696de, 0x750f5178, 0x75280a54, 0x7540c174, 
-       0x755976d7, 0x75722a7e, 0x758adc69, 0x75a38c9b, 
-       0x75bc3b12, 0x75d4e7cf, 0x75ed92d4, 0x76063c21, 
-       0x761ee3b6, 0x76378994, 0x76502dbc, 0x7668d02e, 
-       0x768170eb, 0x769a0ff3, 0x76b2ad47, 0x76cb48e7, 
-       0x76e3e2d5, 0x76fc7b10, 0x7715119a, 0x772da673, 
-       0x7746399b, 0x775ecb13, 0x77775adc, 0x778fe8f6, 
-       0x77a87561, 0x77c1001f, 0x77d98930, 0x77f21095, 
-       0x780a964d, 0x78231a5b, 0x783b9cbd, 0x78541d75, 
-       0x786c9c84, 0x788519e9, 0x789d95a6, 0x78b60fbb, 
-       0x78ce8828, 0x78e6feef, 0x78ff740f, 0x7917e78a, 
-       0x7930595f, 0x7948c990, 0x7961381d, 0x7979a506, 
-       0x7992104c, 0x79aa79f0, 0x79c2e1f1, 0x79db4852, 
-       0x79f3ad11, 0x7a0c1031, 0x7a2471b0, 0x7a3cd191, 
-       0x7a552fd3, 0x7a6d8c76, 0x7a85e77d, 0x7a9e40e6, 
-       0x7ab698b2, 0x7aceeee3, 0x7ae74378, 0x7aff9673, 
-       0x7b17e7d2, 0x7b303799, 0x7b4885c5, 0x7b60d259, 
-       0x7b791d55, 0x7b9166b9, 0x7ba9ae86, 0x7bc1f4bc, 
-       0x7bda395c, 0x7bf27c66, 0x7c0abddb, 0x7c22fdbb, 
-       0x7c3b3c07, 0x7c5378c0, 0x7c6bb3e5, 0x7c83ed78, 
-       0x7c9c2579, 0x7cb45be9, 0x7ccc90c7, 0x7ce4c414, 
-       0x7cfcf5d2, 0x7d152600, 0x7d2d549f, 0x7d4581b0, 
-       0x7d5dad32, 0x7d75d727, 0x7d8dff8f, 0x7da6266a, 
-       0x7dbe4bba, 0x7dd66f7d, 0x7dee91b6, 0x7e06b264, 
-       0x7e1ed188, 0x7e36ef22, 0x7e4f0b34, 0x7e6725bd, 
-       0x7e7f3ebd, 0x7e975636, 0x7eaf6c28, 0x7ec78093, 
-       0x7edf9378, 0x7ef7a4d7, 0x7f0fb4b1, 0x7f27c307, 
-       0x7f3fcfd8, 0x7f57db25, 0x7f6fe4ef, 0x7f87ed36, 
+       0x4c1bf829, 0x4c3880de, 0x4c550603, 0x4c71879c,
+       0x4c8e05aa, 0x4caa8030, 0x4cc6f72f, 0x4ce36aab,
+       0x4cffdaa4, 0x4d1c471d, 0x4d38b019, 0x4d55159a,
+       0x4d7177a1, 0x4d8dd631, 0x4daa314b, 0x4dc688f3,
+       0x4de2dd2a, 0x4dff2df2, 0x4e1b7b4d, 0x4e37c53d,
+       0x4e540bc5, 0x4e704ee6, 0x4e8c8ea3, 0x4ea8cafd,
+       0x4ec503f7, 0x4ee13992, 0x4efd6bd0, 0x4f199ab4,
+       0x4f35c640, 0x4f51ee75, 0x4f6e1356, 0x4f8a34e4,
+       0x4fa65321, 0x4fc26e10, 0x4fde85b2, 0x4ffa9a0a,
+       0x5016ab18, 0x5032b8e0, 0x504ec362, 0x506acaa1,
+       0x5086cea0, 0x50a2cf5e, 0x50becce0, 0x50dac725,
+       0x50f6be31, 0x5112b205, 0x512ea2a3, 0x514a900d,
+       0x51667a45, 0x5182614c, 0x519e4524, 0x51ba25cf,
+       0x51d60350, 0x51f1dda7, 0x520db4d6, 0x522988e0,
+       0x524559c6, 0x52612789, 0x527cf22d, 0x5298b9b1,
+       0x52b47e19, 0x52d03f65, 0x52ebfd98, 0x5307b8b4,
+       0x532370b9, 0x533f25aa, 0x535ad789, 0x53768656,
+       0x53923215, 0x53addac6, 0x53c9806b, 0x53e52306,
+       0x5400c298, 0x541c5f24, 0x5437f8ab, 0x54538f2e,
+       0x546f22af, 0x548ab330, 0x54a640b3, 0x54c1cb38,
+       0x54dd52c2, 0x54f8d753, 0x551458eb, 0x552fd78d,
+       0x554b5339, 0x5566cbf3, 0x558241bb, 0x559db492,
+       0x55b9247b, 0x55d49177, 0x55effb87, 0x560b62ad,
+       0x5626c6eb, 0x56422842, 0x565d86b4, 0x5678e242,
+       0x56943aee, 0x56af90b9, 0x56cae3a4, 0x56e633b2,
+       0x570180e4, 0x571ccb3b, 0x573812b8, 0x5753575e,
+       0x576e992e, 0x5789d829, 0x57a51450, 0x57c04da6,
+       0x57db842b, 0x57f6b7e1, 0x5811e8c9, 0x582d16e6,
+       0x58484238, 0x58636ac0, 0x587e9081, 0x5899b37c,
+       0x58b4d3b1, 0x58cff123, 0x58eb0bd3, 0x590623c2,
+       0x592138f2, 0x593c4b63, 0x59575b19, 0x59726812,
+       0x598d7253, 0x59a879da, 0x59c37eab, 0x59de80c6,
+       0x59f9802d, 0x5a147ce0, 0x5a2f76e2, 0x5a4a6e34,
+       0x5a6562d6, 0x5a8054cb, 0x5a9b4414, 0x5ab630b2,
+       0x5ad11aa6, 0x5aec01f1, 0x5b06e696, 0x5b21c895,
+       0x5b3ca7ef, 0x5b5784a6, 0x5b725ebc, 0x5b8d3631,
+       0x5ba80b06, 0x5bc2dd3e, 0x5bddacd9, 0x5bf879d8,
+       0x5c13443d, 0x5c2e0c09, 0x5c48d13e, 0x5c6393dc,
+       0x5c7e53e5, 0x5c99115a, 0x5cb3cc3c, 0x5cce848d,
+       0x5ce93a4e, 0x5d03ed80, 0x5d1e9e24, 0x5d394c3b,
+       0x5d53f7c7, 0x5d6ea0c9, 0x5d894742, 0x5da3eb33,
+       0x5dbe8c9e, 0x5dd92b84, 0x5df3c7e5, 0x5e0e61c3,
+       0x5e28f920, 0x5e438dfc, 0x5e5e2059, 0x5e78b037,
+       0x5e933d99, 0x5eadc87e, 0x5ec850e9, 0x5ee2d6da,
+       0x5efd5a53, 0x5f17db54, 0x5f3259e0, 0x5f4cd5f6,
+       0x5f674f99, 0x5f81c6c8, 0x5f9c3b87, 0x5fb6add4,
+       0x5fd11db3, 0x5feb8b23, 0x6005f626, 0x60205ebd,
+       0x603ac4e9, 0x605528ac, 0x606f8a05, 0x6089e8f7,
+       0x60a44583, 0x60be9fa9, 0x60d8f76b, 0x60f34cca,
+       0x610d9fc7, 0x6127f062, 0x61423e9e, 0x615c8a7a,
+       0x6176d3f9, 0x61911b1b, 0x61ab5fe1, 0x61c5a24d,
+       0x61dfe25f, 0x61fa2018, 0x62145b7a, 0x622e9485,
+       0x6248cb3b, 0x6262ff9d, 0x627d31ab, 0x62976167,
+       0x62b18ed1, 0x62cbb9eb, 0x62e5e2b6, 0x63000933,
+       0x631a2d62, 0x63344f45, 0x634e6edd, 0x63688c2b,
+       0x6382a730, 0x639cbfec, 0x63b6d661, 0x63d0ea90,
+       0x63eafc7a, 0x64050c1f, 0x641f1982, 0x643924a2,
+       0x64532d80, 0x646d341f, 0x6487387e, 0x64a13a9e,
+       0x64bb3a81, 0x64d53828, 0x64ef3393, 0x65092cc4,
+       0x652323bb, 0x653d1879, 0x65570b00, 0x6570fb50,
+       0x658ae96b, 0x65a4d550, 0x65bebf01, 0x65d8a680,
+       0x65f28bcc, 0x660c6ee8, 0x66264fd3, 0x66402e8f,
+       0x665a0b1c, 0x6673e57d, 0x668dbdb0, 0x66a793b8,
+       0x66c16795, 0x66db3949, 0x66f508d4, 0x670ed636,
+       0x6728a172, 0x67426a87, 0x675c3177, 0x6775f643,
+       0x678fb8eb, 0x67a97971, 0x67c337d5, 0x67dcf418,
+       0x67f6ae3b, 0x6810663f, 0x682a1c25, 0x6843cfed,
+       0x685d8199, 0x68773129, 0x6890de9f, 0x68aa89fa,
+       0x68c4333d, 0x68ddda67, 0x68f77f7a, 0x69112277,
+       0x692ac35e, 0x69446230, 0x695dfeee, 0x6977999a,
+       0x69913232, 0x69aac8ba, 0x69c45d31, 0x69ddef98,
+       0x69f77ff0, 0x6a110e3a, 0x6a2a9a77, 0x6a4424a8,
+       0x6a5daccc, 0x6a7732e6, 0x6a90b6f6, 0x6aaa38fd,
+       0x6ac3b8fb, 0x6add36f2, 0x6af6b2e2, 0x6b102ccd,
+       0x6b29a4b2, 0x6b431a92, 0x6b5c8e6f, 0x6b76004a,
+       0x6b8f7022, 0x6ba8ddf9, 0x6bc249d0, 0x6bdbb3a7,
+       0x6bf51b80, 0x6c0e815a, 0x6c27e537, 0x6c414718,
+       0x6c5aa6fd, 0x6c7404e7, 0x6c8d60d7, 0x6ca6bace,
+       0x6cc012cc, 0x6cd968d2, 0x6cf2bce1, 0x6d0c0ef9,
+       0x6d255f1d, 0x6d3ead4b, 0x6d57f985, 0x6d7143cc,
+       0x6d8a8c21, 0x6da3d283, 0x6dbd16f5, 0x6dd65976,
+       0x6def9a08, 0x6e08d8ab, 0x6e221560, 0x6e3b5027,
+       0x6e548902, 0x6e6dbff1, 0x6e86f4f5, 0x6ea0280e,
+       0x6eb9593e, 0x6ed28885, 0x6eebb5e3, 0x6f04e15a,
+       0x6f1e0aea, 0x6f373294, 0x6f505859, 0x6f697c39,
+       0x6f829e35, 0x6f9bbe4e, 0x6fb4dc85, 0x6fcdf8d9,
+       0x6fe7134d, 0x70002be0, 0x70194293, 0x70325767,
+       0x704b6a5d, 0x70647b76, 0x707d8ab1, 0x70969811,
+       0x70afa394, 0x70c8ad3d, 0x70e1b50c, 0x70fabb01,
+       0x7113bf1d, 0x712cc161, 0x7145c1ce, 0x715ec064,
+       0x7177bd24, 0x7190b80f, 0x71a9b124, 0x71c2a866,
+       0x71db9dd4, 0x71f49170, 0x720d8339, 0x72267331,
+       0x723f6159, 0x72584db0, 0x72713838, 0x728a20f1,
+       0x72a307db, 0x72bbecf9, 0x72d4d049, 0x72edb1ce,
+       0x73069187, 0x731f6f75, 0x73384b98, 0x735125f3,
+       0x7369fe84, 0x7382d54d, 0x739baa4e, 0x73b47d89,
+       0x73cd4efd, 0x73e61eab, 0x73feec94, 0x7417b8b8,
+       0x74308319, 0x74494bb6, 0x74621291, 0x747ad7aa,
+       0x74939b02, 0x74ac5c98, 0x74c51c6f, 0x74ddda86,
+       0x74f696de, 0x750f5178, 0x75280a54, 0x7540c174,
+       0x755976d7, 0x75722a7e, 0x758adc69, 0x75a38c9b,
+       0x75bc3b12, 0x75d4e7cf, 0x75ed92d4, 0x76063c21,
+       0x761ee3b6, 0x76378994, 0x76502dbc, 0x7668d02e,
+       0x768170eb, 0x769a0ff3, 0x76b2ad47, 0x76cb48e7,
+       0x76e3e2d5, 0x76fc7b10, 0x7715119a, 0x772da673,
+       0x7746399b, 0x775ecb13, 0x77775adc, 0x778fe8f6,
+       0x77a87561, 0x77c1001f, 0x77d98930, 0x77f21095,
+       0x780a964d, 0x78231a5b, 0x783b9cbd, 0x78541d75,
+       0x786c9c84, 0x788519e9, 0x789d95a6, 0x78b60fbb,
+       0x78ce8828, 0x78e6feef, 0x78ff740f, 0x7917e78a,
+       0x7930595f, 0x7948c990, 0x7961381d, 0x7979a506,
+       0x7992104c, 0x79aa79f0, 0x79c2e1f1, 0x79db4852,
+       0x79f3ad11, 0x7a0c1031, 0x7a2471b0, 0x7a3cd191,
+       0x7a552fd3, 0x7a6d8c76, 0x7a85e77d, 0x7a9e40e6,
+       0x7ab698b2, 0x7aceeee3, 0x7ae74378, 0x7aff9673,
+       0x7b17e7d2, 0x7b303799, 0x7b4885c5, 0x7b60d259,
+       0x7b791d55, 0x7b9166b9, 0x7ba9ae86, 0x7bc1f4bc,
+       0x7bda395c, 0x7bf27c66, 0x7c0abddb, 0x7c22fdbb,
+       0x7c3b3c07, 0x7c5378c0, 0x7c6bb3e5, 0x7c83ed78,
+       0x7c9c2579, 0x7cb45be9, 0x7ccc90c7, 0x7ce4c414,
+       0x7cfcf5d2, 0x7d152600, 0x7d2d549f, 0x7d4581b0,
+       0x7d5dad32, 0x7d75d727, 0x7d8dff8f, 0x7da6266a,
+       0x7dbe4bba, 0x7dd66f7d, 0x7dee91b6, 0x7e06b264,
+       0x7e1ed188, 0x7e36ef22, 0x7e4f0b34, 0x7e6725bd,
+       0x7e7f3ebd, 0x7e975636, 0x7eaf6c28, 0x7ec78093,
+       0x7edf9378, 0x7ef7a4d7, 0x7f0fb4b1, 0x7f27c307,
+       0x7f3fcfd8, 0x7f57db25, 0x7f6fe4ef, 0x7f87ed36,
        0x7f9ff3fb, 0x7fb7f93e, 0x7fcffcff, 0x7fe7ff40
 };
 
 const Word32 mTab_4_3[512]={
-       0x32cbfd4a, 0x32eddd70, 0x330fc339, 0x3331aea3, 
-       0x33539fac, 0x33759652, 0x33979294, 0x33b99470, 
-       0x33db9be4, 0x33fda8ed, 0x341fbb8b, 0x3441d3bb, 
-       0x3463f17c, 0x348614cc, 0x34a83da8, 0x34ca6c10, 
-       0x34eca001, 0x350ed979, 0x35311877, 0x35535cfa, 
-       0x3575a6fe, 0x3597f683, 0x35ba4b87, 0x35dca607, 
-       0x35ff0603, 0x36216b78, 0x3643d665, 0x366646c7, 
-       0x3688bc9e, 0x36ab37e8, 0x36cdb8a2, 0x36f03ecb, 
-       0x3712ca62, 0x37355b64, 0x3757f1d1, 0x377a8da5, 
-       0x379d2ee0, 0x37bfd580, 0x37e28184, 0x380532e8, 
-       0x3827e9ad, 0x384aa5d0, 0x386d674f, 0x38902e2a, 
-       0x38b2fa5d, 0x38d5cbe9, 0x38f8a2ca, 0x391b7eff, 
-       0x393e6088, 0x39614761, 0x3984338a, 0x39a72501, 
-       0x39ca1bc4, 0x39ed17d1, 0x3a101928, 0x3a331fc6, 
-       0x3a562baa, 0x3a793cd2, 0x3a9c533d, 0x3abf6ee9, 
-       0x3ae28fd5, 0x3b05b5ff, 0x3b28e165, 0x3b4c1206, 
-       0x3b6f47e0, 0x3b9282f2, 0x3bb5c33a, 0x3bd908b7, 
-       0x3bfc5368, 0x3c1fa349, 0x3c42f85b, 0x3c66529c, 
-       0x3c89b209, 0x3cad16a2, 0x3cd08065, 0x3cf3ef51, 
-       0x3d176364, 0x3d3adc9c, 0x3d5e5af8, 0x3d81de77, 
-       0x3da56717, 0x3dc8f4d6, 0x3dec87b4, 0x3e101fae, 
-       0x3e33bcc3, 0x3e575ef2, 0x3e7b063a, 0x3e9eb298, 
-       0x3ec2640c, 0x3ee61a93, 0x3f09d62d, 0x3f2d96d8, 
-       0x3f515c93, 0x3f75275b, 0x3f98f731, 0x3fbccc11, 
-       0x3fe0a5fc, 0x400484ef, 0x402868ea, 0x404c51e9, 
-       0x40703fee, 0x409432f5, 0x40b82afd, 0x40dc2806, 
-       0x41002a0d, 0x41243111, 0x41483d12, 0x416c4e0d, 
-       0x41906401, 0x41b47eed, 0x41d89ecf, 0x41fcc3a7, 
-       0x4220ed72, 0x42451c30, 0x42694fde, 0x428d887d, 
-       0x42b1c609, 0x42d60883, 0x42fa4fe8, 0x431e9c37, 
-       0x4342ed70, 0x43674390, 0x438b9e96, 0x43affe82, 
-       0x43d46351, 0x43f8cd03, 0x441d3b95, 0x4441af08, 
-       0x44662758, 0x448aa487, 0x44af2690, 0x44d3ad75, 
-       0x44f83933, 0x451cc9c8, 0x45415f35, 0x4565f977, 
-       0x458a988d, 0x45af3c76, 0x45d3e531, 0x45f892bc, 
-       0x461d4516, 0x4641fc3e, 0x4666b832, 0x468b78f2, 
-       0x46b03e7c, 0x46d508cf, 0x46f9d7e9, 0x471eabca, 
-       0x47438470, 0x476861d9, 0x478d4406, 0x47b22af3, 
-       0x47d716a1, 0x47fc070e, 0x4820fc39, 0x4845f620, 
-       0x486af4c3, 0x488ff820, 0x48b50035, 0x48da0d03, 
-       0x48ff1e87, 0x492434c0, 0x49494fad, 0x496e6f4d, 
-       0x4993939f, 0x49b8bca2, 0x49ddea54, 0x4a031cb4, 
-       0x4a2853c1, 0x4a4d8f7a, 0x4a72cfde, 0x4a9814eb, 
-       0x4abd5ea1, 0x4ae2acfd, 0x4b080000, 0x4b2d57a8, 
-       0x4b52b3f3, 0x4b7814e1, 0x4b9d7a70, 0x4bc2e49f, 
-       0x4be8536e, 0x4c0dc6db, 0x4c333ee4, 0x4c58bb89, 
-       0x4c7e3cc9, 0x4ca3c2a2, 0x4cc94d14, 0x4ceedc1c, 
-       0x4d146fbb, 0x4d3a07ef, 0x4d5fa4b6, 0x4d854611, 
-       0x4daaebfd, 0x4dd09679, 0x4df64585, 0x4e1bf91f, 
-       0x4e41b146, 0x4e676dfa, 0x4e8d2f38, 0x4eb2f501, 
-       0x4ed8bf52, 0x4efe8e2b, 0x4f24618a, 0x4f4a3970, 
-       0x4f7015d9, 0x4f95f6c6, 0x4fbbdc36, 0x4fe1c626, 
-       0x5007b497, 0x502da787, 0x50539ef5, 0x50799ae1, 
-       0x509f9b48, 0x50c5a02a, 0x50eba985, 0x5111b75a, 
-       0x5137c9a6, 0x515de069, 0x5183fba2, 0x51aa1b4f, 
-       0x51d03f70, 0x51f66803, 0x521c9508, 0x5242c67d, 
-       0x5268fc62, 0x528f36b5, 0x52b57575, 0x52dbb8a2, 
-       0x5302003a, 0x53284c3c, 0x534e9ca8, 0x5374f17c, 
-       0x539b4ab7, 0x53c1a858, 0x53e80a5f, 0x540e70ca, 
-       0x5434db98, 0x545b4ac8, 0x5481be5a, 0x54a8364b, 
-       0x54ceb29c, 0x54f5334c, 0x551bb858, 0x554241c1, 
-       0x5568cf85, 0x558f61a3, 0x55b5f81b, 0x55dc92eb, 
-       0x56033212, 0x5629d590, 0x56507d63, 0x5677298a, 
-       0x569dda05, 0x56c48ed3, 0x56eb47f2, 0x57120562, 
-       0x5738c721, 0x575f8d2f, 0x5786578a, 0x57ad2633, 
-       0x57d3f927, 0x57fad066, 0x5821abef, 0x58488bc0, 
-       0x586f6fda, 0x5896583b, 0x58bd44e2, 0x58e435ce, 
-       0x590b2aff, 0x59322473, 0x59592229, 0x59802420, 
-       0x59a72a59, 0x59ce34d0, 0x59f54387, 0x5a1c567b, 
-       0x5a436dac, 0x5a6a8919, 0x5a91a8c1, 0x5ab8cca3, 
-       0x5adff4be, 0x5b072111, 0x5b2e519c, 0x5b55865e, 
-       0x5b7cbf54, 0x5ba3fc80, 0x5bcb3ddf, 0x5bf28371, 
-       0x5c19cd35, 0x5c411b2a, 0x5c686d4f, 0x5c8fc3a4, 
-       0x5cb71e27, 0x5cde7cd7, 0x5d05dfb4, 0x5d2d46bd, 
-       0x5d54b1f0, 0x5d7c214e, 0x5da394d4, 0x5dcb0c83, 
-       0x5df28859, 0x5e1a0856, 0x5e418c78, 0x5e6914be, 
-       0x5e90a129, 0x5eb831b7, 0x5edfc667, 0x5f075f38, 
-       0x5f2efc29, 0x5f569d3a, 0x5f7e426a, 0x5fa5ebb7, 
-       0x5fcd9921, 0x5ff54aa8, 0x601d004a, 0x6044ba06, 
-       0x606c77dc, 0x609439ca, 0x60bbffd0, 0x60e3c9ee, 
-       0x610b9821, 0x61336a6a, 0x615b40c8, 0x61831b39, 
-       0x61aaf9bd, 0x61d2dc53, 0x61fac2fa, 0x6222adb2, 
-       0x624a9c79, 0x62728f4f, 0x629a8633, 0x62c28123, 
-       0x62ea8020, 0x63128329, 0x633a8a3c, 0x63629559, 
-       0x638aa47f, 0x63b2b7ad, 0x63dacee2, 0x6402ea1e, 
-       0x642b0960, 0x64532ca6, 0x647b53f1, 0x64a37f3f, 
-       0x64cbae8f, 0x64f3e1e2, 0x651c1935, 0x65445488, 
-       0x656c93db, 0x6594d72c, 0x65bd1e7b, 0x65e569c7, 
-       0x660db90f, 0x66360c53, 0x665e6391, 0x6686bec9, 
-       0x66af1dfa, 0x66d78123, 0x66ffe844, 0x6728535b, 
-       0x6750c268, 0x6779356b, 0x67a1ac62, 0x67ca274c, 
-       0x67f2a629, 0x681b28f9, 0x6843afb9, 0x686c3a6a, 
-       0x6894c90b, 0x68bd5b9b, 0x68e5f219, 0x690e8c84, 
-       0x69372add, 0x695fcd21, 0x69887350, 0x69b11d6a, 
-       0x69d9cb6d, 0x6a027d5a, 0x6a2b332f, 0x6a53eceb, 
-       0x6a7caa8d, 0x6aa56c16, 0x6ace3184, 0x6af6fad6, 
-       0x6b1fc80c, 0x6b489925, 0x6b716e20, 0x6b9a46fd, 
-       0x6bc323bb, 0x6bec0458, 0x6c14e8d5, 0x6c3dd130, 
-       0x6c66bd69, 0x6c8fad80, 0x6cb8a172, 0x6ce19940, 
-       0x6d0a94e9, 0x6d33946d, 0x6d5c97ca, 0x6d859eff, 
-       0x6daeaa0d, 0x6dd7b8f1, 0x6e00cbad, 0x6e29e23e, 
-       0x6e52fca4, 0x6e7c1adf, 0x6ea53cee, 0x6ece62cf, 
-       0x6ef78c83, 0x6f20ba09, 0x6f49eb5f, 0x6f732085, 
-       0x6f9c597b, 0x6fc59640, 0x6feed6d3, 0x70181b33, 
-       0x70416360, 0x706aaf59, 0x7093ff1d, 0x70bd52ab, 
-       0x70e6aa04, 0x71100525, 0x7139640f, 0x7162c6c1, 
-       0x718c2d3a, 0x71b5977a, 0x71df057f, 0x72087749, 
-       0x7231ecd8, 0x725b662a, 0x7284e33f, 0x72ae6417, 
-       0x72d7e8b0, 0x7301710a, 0x732afd24, 0x73548cfe, 
-       0x737e2097, 0x73a7b7ee, 0x73d15303, 0x73faf1d5, 
-       0x74249462, 0x744e3aac, 0x7477e4b0, 0x74a1926e, 
-       0x74cb43e6, 0x74f4f917, 0x751eb201, 0x75486ea1, 
-       0x75722ef9, 0x759bf307, 0x75c5baca, 0x75ef8642, 
-       0x7619556f, 0x7643284f, 0x766cfee2, 0x7696d928, 
-       0x76c0b71f, 0x76ea98c7, 0x77147e20, 0x773e6728, 
-       0x776853df, 0x77924445, 0x77bc3858, 0x77e63019, 
-       0x78102b85, 0x783a2a9e, 0x78642d62, 0x788e33d1, 
-       0x78b83de9, 0x78e24bab, 0x790c5d15, 0x79367228, 
-       0x79608ae1, 0x798aa742, 0x79b4c748, 0x79deeaf4, 
-       0x7a091245, 0x7a333d3a, 0x7a5d6bd2, 0x7a879e0e, 
-       0x7ab1d3ec, 0x7adc0d6b, 0x7b064a8c, 0x7b308b4d, 
-       0x7b5acfae, 0x7b8517ae, 0x7baf634c, 0x7bd9b289, 
-       0x7c040563, 0x7c2e5bda, 0x7c58b5ec, 0x7c83139b, 
-       0x7cad74e4, 0x7cd7d9c7, 0x7d024244, 0x7d2cae5a, 
-       0x7d571e09, 0x7d81914f, 0x7dac082d, 0x7dd682a1, 
-       0x7e0100ac, 0x7e2b824b, 0x7e560780, 0x7e809048, 
-       0x7eab1ca5, 0x7ed5ac94, 0x7f004015, 0x7f2ad729, 
+       0x32cbfd4a, 0x32eddd70, 0x330fc339, 0x3331aea3,
+       0x33539fac, 0x33759652, 0x33979294, 0x33b99470,
+       0x33db9be4, 0x33fda8ed, 0x341fbb8b, 0x3441d3bb,
+       0x3463f17c, 0x348614cc, 0x34a83da8, 0x34ca6c10,
+       0x34eca001, 0x350ed979, 0x35311877, 0x35535cfa,
+       0x3575a6fe, 0x3597f683, 0x35ba4b87, 0x35dca607,
+       0x35ff0603, 0x36216b78, 0x3643d665, 0x366646c7,
+       0x3688bc9e, 0x36ab37e8, 0x36cdb8a2, 0x36f03ecb,
+       0x3712ca62, 0x37355b64, 0x3757f1d1, 0x377a8da5,
+       0x379d2ee0, 0x37bfd580, 0x37e28184, 0x380532e8,
+       0x3827e9ad, 0x384aa5d0, 0x386d674f, 0x38902e2a,
+       0x38b2fa5d, 0x38d5cbe9, 0x38f8a2ca, 0x391b7eff,
+       0x393e6088, 0x39614761, 0x3984338a, 0x39a72501,
+       0x39ca1bc4, 0x39ed17d1, 0x3a101928, 0x3a331fc6,
+       0x3a562baa, 0x3a793cd2, 0x3a9c533d, 0x3abf6ee9,
+       0x3ae28fd5, 0x3b05b5ff, 0x3b28e165, 0x3b4c1206,
+       0x3b6f47e0, 0x3b9282f2, 0x3bb5c33a, 0x3bd908b7,
+       0x3bfc5368, 0x3c1fa349, 0x3c42f85b, 0x3c66529c,
+       0x3c89b209, 0x3cad16a2, 0x3cd08065, 0x3cf3ef51,
+       0x3d176364, 0x3d3adc9c, 0x3d5e5af8, 0x3d81de77,
+       0x3da56717, 0x3dc8f4d6, 0x3dec87b4, 0x3e101fae,
+       0x3e33bcc3, 0x3e575ef2, 0x3e7b063a, 0x3e9eb298,
+       0x3ec2640c, 0x3ee61a93, 0x3f09d62d, 0x3f2d96d8,
+       0x3f515c93, 0x3f75275b, 0x3f98f731, 0x3fbccc11,
+       0x3fe0a5fc, 0x400484ef, 0x402868ea, 0x404c51e9,
+       0x40703fee, 0x409432f5, 0x40b82afd, 0x40dc2806,
+       0x41002a0d, 0x41243111, 0x41483d12, 0x416c4e0d,
+       0x41906401, 0x41b47eed, 0x41d89ecf, 0x41fcc3a7,
+       0x4220ed72, 0x42451c30, 0x42694fde, 0x428d887d,
+       0x42b1c609, 0x42d60883, 0x42fa4fe8, 0x431e9c37,
+       0x4342ed70, 0x43674390, 0x438b9e96, 0x43affe82,
+       0x43d46351, 0x43f8cd03, 0x441d3b95, 0x4441af08,
+       0x44662758, 0x448aa487, 0x44af2690, 0x44d3ad75,
+       0x44f83933, 0x451cc9c8, 0x45415f35, 0x4565f977,
+       0x458a988d, 0x45af3c76, 0x45d3e531, 0x45f892bc,
+       0x461d4516, 0x4641fc3e, 0x4666b832, 0x468b78f2,
+       0x46b03e7c, 0x46d508cf, 0x46f9d7e9, 0x471eabca,
+       0x47438470, 0x476861d9, 0x478d4406, 0x47b22af3,
+       0x47d716a1, 0x47fc070e, 0x4820fc39, 0x4845f620,
+       0x486af4c3, 0x488ff820, 0x48b50035, 0x48da0d03,
+       0x48ff1e87, 0x492434c0, 0x49494fad, 0x496e6f4d,
+       0x4993939f, 0x49b8bca2, 0x49ddea54, 0x4a031cb4,
+       0x4a2853c1, 0x4a4d8f7a, 0x4a72cfde, 0x4a9814eb,
+       0x4abd5ea1, 0x4ae2acfd, 0x4b080000, 0x4b2d57a8,
+       0x4b52b3f3, 0x4b7814e1, 0x4b9d7a70, 0x4bc2e49f,
+       0x4be8536e, 0x4c0dc6db, 0x4c333ee4, 0x4c58bb89,
+       0x4c7e3cc9, 0x4ca3c2a2, 0x4cc94d14, 0x4ceedc1c,
+       0x4d146fbb, 0x4d3a07ef, 0x4d5fa4b6, 0x4d854611,
+       0x4daaebfd, 0x4dd09679, 0x4df64585, 0x4e1bf91f,
+       0x4e41b146, 0x4e676dfa, 0x4e8d2f38, 0x4eb2f501,
+       0x4ed8bf52, 0x4efe8e2b, 0x4f24618a, 0x4f4a3970,
+       0x4f7015d9, 0x4f95f6c6, 0x4fbbdc36, 0x4fe1c626,
+       0x5007b497, 0x502da787, 0x50539ef5, 0x50799ae1,
+       0x509f9b48, 0x50c5a02a, 0x50eba985, 0x5111b75a,
+       0x5137c9a6, 0x515de069, 0x5183fba2, 0x51aa1b4f,
+       0x51d03f70, 0x51f66803, 0x521c9508, 0x5242c67d,
+       0x5268fc62, 0x528f36b5, 0x52b57575, 0x52dbb8a2,
+       0x5302003a, 0x53284c3c, 0x534e9ca8, 0x5374f17c,
+       0x539b4ab7, 0x53c1a858, 0x53e80a5f, 0x540e70ca,
+       0x5434db98, 0x545b4ac8, 0x5481be5a, 0x54a8364b,
+       0x54ceb29c, 0x54f5334c, 0x551bb858, 0x554241c1,
+       0x5568cf85, 0x558f61a3, 0x55b5f81b, 0x55dc92eb,
+       0x56033212, 0x5629d590, 0x56507d63, 0x5677298a,
+       0x569dda05, 0x56c48ed3, 0x56eb47f2, 0x57120562,
+       0x5738c721, 0x575f8d2f, 0x5786578a, 0x57ad2633,
+       0x57d3f927, 0x57fad066, 0x5821abef, 0x58488bc0,
+       0x586f6fda, 0x5896583b, 0x58bd44e2, 0x58e435ce,
+       0x590b2aff, 0x59322473, 0x59592229, 0x59802420,
+       0x59a72a59, 0x59ce34d0, 0x59f54387, 0x5a1c567b,
+       0x5a436dac, 0x5a6a8919, 0x5a91a8c1, 0x5ab8cca3,
+       0x5adff4be, 0x5b072111, 0x5b2e519c, 0x5b55865e,
+       0x5b7cbf54, 0x5ba3fc80, 0x5bcb3ddf, 0x5bf28371,
+       0x5c19cd35, 0x5c411b2a, 0x5c686d4f, 0x5c8fc3a4,
+       0x5cb71e27, 0x5cde7cd7, 0x5d05dfb4, 0x5d2d46bd,
+       0x5d54b1f0, 0x5d7c214e, 0x5da394d4, 0x5dcb0c83,
+       0x5df28859, 0x5e1a0856, 0x5e418c78, 0x5e6914be,
+       0x5e90a129, 0x5eb831b7, 0x5edfc667, 0x5f075f38,
+       0x5f2efc29, 0x5f569d3a, 0x5f7e426a, 0x5fa5ebb7,
+       0x5fcd9921, 0x5ff54aa8, 0x601d004a, 0x6044ba06,
+       0x606c77dc, 0x609439ca, 0x60bbffd0, 0x60e3c9ee,
+       0x610b9821, 0x61336a6a, 0x615b40c8, 0x61831b39,
+       0x61aaf9bd, 0x61d2dc53, 0x61fac2fa, 0x6222adb2,
+       0x624a9c79, 0x62728f4f, 0x629a8633, 0x62c28123,
+       0x62ea8020, 0x63128329, 0x633a8a3c, 0x63629559,
+       0x638aa47f, 0x63b2b7ad, 0x63dacee2, 0x6402ea1e,
+       0x642b0960, 0x64532ca6, 0x647b53f1, 0x64a37f3f,
+       0x64cbae8f, 0x64f3e1e2, 0x651c1935, 0x65445488,
+       0x656c93db, 0x6594d72c, 0x65bd1e7b, 0x65e569c7,
+       0x660db90f, 0x66360c53, 0x665e6391, 0x6686bec9,
+       0x66af1dfa, 0x66d78123, 0x66ffe844, 0x6728535b,
+       0x6750c268, 0x6779356b, 0x67a1ac62, 0x67ca274c,
+       0x67f2a629, 0x681b28f9, 0x6843afb9, 0x686c3a6a,
+       0x6894c90b, 0x68bd5b9b, 0x68e5f219, 0x690e8c84,
+       0x69372add, 0x695fcd21, 0x69887350, 0x69b11d6a,
+       0x69d9cb6d, 0x6a027d5a, 0x6a2b332f, 0x6a53eceb,
+       0x6a7caa8d, 0x6aa56c16, 0x6ace3184, 0x6af6fad6,
+       0x6b1fc80c, 0x6b489925, 0x6b716e20, 0x6b9a46fd,
+       0x6bc323bb, 0x6bec0458, 0x6c14e8d5, 0x6c3dd130,
+       0x6c66bd69, 0x6c8fad80, 0x6cb8a172, 0x6ce19940,
+       0x6d0a94e9, 0x6d33946d, 0x6d5c97ca, 0x6d859eff,
+       0x6daeaa0d, 0x6dd7b8f1, 0x6e00cbad, 0x6e29e23e,
+       0x6e52fca4, 0x6e7c1adf, 0x6ea53cee, 0x6ece62cf,
+       0x6ef78c83, 0x6f20ba09, 0x6f49eb5f, 0x6f732085,
+       0x6f9c597b, 0x6fc59640, 0x6feed6d3, 0x70181b33,
+       0x70416360, 0x706aaf59, 0x7093ff1d, 0x70bd52ab,
+       0x70e6aa04, 0x71100525, 0x7139640f, 0x7162c6c1,
+       0x718c2d3a, 0x71b5977a, 0x71df057f, 0x72087749,
+       0x7231ecd8, 0x725b662a, 0x7284e33f, 0x72ae6417,
+       0x72d7e8b0, 0x7301710a, 0x732afd24, 0x73548cfe,
+       0x737e2097, 0x73a7b7ee, 0x73d15303, 0x73faf1d5,
+       0x74249462, 0x744e3aac, 0x7477e4b0, 0x74a1926e,
+       0x74cb43e6, 0x74f4f917, 0x751eb201, 0x75486ea1,
+       0x75722ef9, 0x759bf307, 0x75c5baca, 0x75ef8642,
+       0x7619556f, 0x7643284f, 0x766cfee2, 0x7696d928,
+       0x76c0b71f, 0x76ea98c7, 0x77147e20, 0x773e6728,
+       0x776853df, 0x77924445, 0x77bc3858, 0x77e63019,
+       0x78102b85, 0x783a2a9e, 0x78642d62, 0x788e33d1,
+       0x78b83de9, 0x78e24bab, 0x790c5d15, 0x79367228,
+       0x79608ae1, 0x798aa742, 0x79b4c748, 0x79deeaf4,
+       0x7a091245, 0x7a333d3a, 0x7a5d6bd2, 0x7a879e0e,
+       0x7ab1d3ec, 0x7adc0d6b, 0x7b064a8c, 0x7b308b4d,
+       0x7b5acfae, 0x7b8517ae, 0x7baf634c, 0x7bd9b289,
+       0x7c040563, 0x7c2e5bda, 0x7c58b5ec, 0x7c83139b,
+       0x7cad74e4, 0x7cd7d9c7, 0x7d024244, 0x7d2cae5a,
+       0x7d571e09, 0x7d81914f, 0x7dac082d, 0x7dd682a1,
+       0x7e0100ac, 0x7e2b824b, 0x7e560780, 0x7e809048,
+       0x7eab1ca5, 0x7ed5ac94, 0x7f004015, 0x7f2ad729,
        0x7f5571cd, 0x7f801003, 0x7faab1c8, 0x7fd5571d
 };
 
 
 const Word32 invSBF[24] = {
-  0x3FFD34FC, 0x2D3F8000, 0x24F18C7E, 0x1FFE9A7E, 
-  0x1C9DF10C, 0x1A1F851A, 0x182FE994, 0x169FC000, 
-  0x15542AAA, 0x143C31C2, 0x134B1B6C, 0x127920BE, 
-  0x11BF2FCC, 0x111A749E, 0x1085FC42, 0x0FFFA7BE, 
-  0x0F855818, 0x0F14EE56, 0x0EAE6A78, 0x0E4EF886, 
+  0x3FFD34FC, 0x2D3F8000, 0x24F18C7E, 0x1FFE9A7E,
+  0x1C9DF10C, 0x1A1F851A, 0x182FE994, 0x169FC000,
+  0x15542AAA, 0x143C31C2, 0x134B1B6C, 0x127920BE,
+  0x11BF2FCC, 0x111A749E, 0x1085FC42, 0x0FFFA7BE,
+  0x0F855818, 0x0F14EE56, 0x0EAE6A78, 0x0E4EF886,
   0x0DF69880, 0x0DA49568, 0x0D578542, 0x0D101D0C
 };
 
@@ -1353,40 +1353,40 @@ const Word16 pow2tominusNover16[17] = {
 };
 
 const Word16 sideInfoTabLong[MAX_SFB_LONG + 1] = {
-  9, 9, 9, 9, 9, 9, 9, 9, 9, 
-  9, 9, 9, 9, 9, 9, 9, 9, 9, 
-  9, 9, 9, 9, 9, 9, 9, 9, 9, 
-  9, 9, 9, 9, 14, 14, 14, 14, 
-  14, 14, 14, 14, 14, 14, 14, 
-  14, 14, 14, 14, 14, 14, 14, 
+  9, 9, 9, 9, 9, 9, 9, 9, 9,
+  9, 9, 9, 9, 9, 9, 9, 9, 9,
+  9, 9, 9, 9, 9, 9, 9, 9, 9,
+  9, 9, 9, 9, 14, 14, 14, 14,
+  14, 14, 14, 14, 14, 14, 14,
+  14, 14, 14, 14, 14, 14, 14,
   14, 14, 14
 };
 
 const Word16 sideInfoTabShort[MAX_SFB_SHORT + 1] = {
-  7, 7, 7, 7, 7, 7, 7, 10, 10, 
+  7, 7, 7, 7, 7, 7, 7, 10, 10,
   10, 10, 10, 10, 10, 13, 13
 };
 
 Word32 specExpMantTableComb_enc[4][14] =
 {
-  {0x40000000,  0x50a28be6,  0x6597fa95,  0x40000000, 
-   0x50a28be6,  0x6597fa95,  0x40000000,  0x50a28be6, 
-   0x6597fa95,  0x40000000,  0x50a28be6,  0x6597fa95, 
-   0x40000000,  0x50a28be6}, 
-
-  {0x4c1bf829,  0x5fe4435e,  0x78d0df9c,  0x4c1bf829, 
-   0x5fe4435e,  0x78d0df9c,  0x4c1bf829,  0x5fe4435e, 
-   0x78d0df9c,  0x4c1bf829,  0x5fe4435e,  0x78d0df9c, 
-   0x4c1bf829,  0x5fe4435e}, 
-
-  {0x5a82799a,  0x7208f81d,  0x47d66b0f,  0x5a82799a, 
-   0x7208f81d,  0x47d66b0f,  0x5a82799a,  0x7208f81d, 
-   0x47d66b0f,  0x5a82799a,  0x7208f81d,  0x47d66b0f, 
-   0x5a82799a,  0x7208f81d}, 
-
-  {0x6ba27e65,  0x43ce3e4b,  0x556e0424,  0x6ba27e65, 
-   0x43ce3e4b,  0x556e0424,  0x6ba27e65,  0x43ce3e4b, 
-   0x556e0424,  0x6ba27e65,  0x43ce3e4b,  0x556e0424, 
+  {0x40000000,  0x50a28be6,  0x6597fa95,  0x40000000,
+   0x50a28be6,  0x6597fa95,  0x40000000,  0x50a28be6,
+   0x6597fa95,  0x40000000,  0x50a28be6,  0x6597fa95,
+   0x40000000,  0x50a28be6},
+
+  {0x4c1bf829,  0x5fe4435e,  0x78d0df9c,  0x4c1bf829,
+   0x5fe4435e,  0x78d0df9c,  0x4c1bf829,  0x5fe4435e,
+   0x78d0df9c,  0x4c1bf829,  0x5fe4435e,  0x78d0df9c,
+   0x4c1bf829,  0x5fe4435e},
+
+  {0x5a82799a,  0x7208f81d,  0x47d66b0f,  0x5a82799a,
+   0x7208f81d,  0x47d66b0f,  0x5a82799a,  0x7208f81d,
+   0x47d66b0f,  0x5a82799a,  0x7208f81d,  0x47d66b0f,
+   0x5a82799a,  0x7208f81d},
+
+  {0x6ba27e65,  0x43ce3e4b,  0x556e0424,  0x6ba27e65,
+   0x43ce3e4b,  0x556e0424,  0x6ba27e65,  0x43ce3e4b,
+   0x556e0424,  0x6ba27e65,  0x43ce3e4b,  0x556e0424,
    0x6ba27e65,  0x43ce3e4b}
 };
 
@@ -1417,12 +1417,12 @@ const Word16 quantRecon[4][3] = {
 };
 
 const int sampRateTab[NUM_SAMPLE_RATES] = {
-    96000, 88200, 64000, 48000, 44100, 32000, 
+    96000, 88200, 64000, 48000, 44100, 32000,
        24000, 22050, 16000, 12000, 11025,  8000
 };
 
 
-const int      rates[8] = {            
+const int      rates[8] = {
        160, 240, 320, 400, 480, 560, 640, 0
 };
 
@@ -1507,7 +1507,7 @@ const short sfBandTabLong[325] = {
 };
 
 /*
-  these tables are used only for counting and 
+  these tables are used only for counting and
   are stored in packed format
 */
 const UWord16 huff_ltab1_2[3][3][3][3]=
@@ -2260,12 +2260,12 @@ const UWord32 huff_ctabscf[121]=
 };
 
 const Word32 m_log2_table[INT_BITS] = {
-  0x00000000,0x4ae00d00,0x2934f080,0x15c01a3f, 
-  0x0b31fb80,0x05aeb4e0,0x02dcf2d0,0x016fe50c, 
+  0x00000000,0x4ae00d00,0x2934f080,0x15c01a3f,
+  0x0b31fb80,0x05aeb4e0,0x02dcf2d0,0x016fe50c,
   0x00b84e23,0x005c3e10,0x002e24ca,0x001713d6,
   0x000b8a47,0x0005c53b,0x0002e2a3,0x00017153,
   0x0000b8aa,0x00005c55,0x00002e2b,0x00001715,
-  0x00000b8b,0x000005c5,0x000002e3,0x00000171, 
+  0x00000b8b,0x000005c5,0x000002e3,0x00000171,
   0x000000b9,0x0000005c,0x0000002e,0x00000017,
   0x0000000c,0x00000006,0x00000003,0x00000001
 };
@@ -2344,7 +2344,7 @@ const Word32 tnsCoeff4Borders[16]=
 };
 
 
-const unsigned char bitrevTab[17 + 129] = 
+const unsigned char bitrevTab[17 + 129] =
 {
 /* 64 */
 0x01, 0x08, 0x02, 0x04, 0x03, 0x0c, 0x05, 0x0a, 0x07, 0x0e, 0x0b, 0x0d, 0x00, 0x06, 0x09, 0x0f,
index 975f598..b5e8a9c 100644 (file)
@@ -48,7 +48,7 @@ VO_U32 VO_API voAACEncInit(VO_HANDLE * phCodec,VO_AUDIO_CODINGTYPE vType, VO_COD
 
        interMem = 0;
        error = 0;
-       
+
        /* init the memory operator */
        if(pUserData == NULL || pUserData->memflag != VO_IMF_USERMEMOPERATOR || pUserData->memData == NULL )
        {
@@ -113,7 +113,7 @@ VO_U32 VO_API voAACEncInit(VO_HANDLE * phCodec,VO_AUDIO_CODINGTYPE vType, VO_COD
                {
                        mem_free(pMemOP, hAacEnc, VO_INDEX_ENC_AAC);
                        hAacEnc = NULL;
-               }               
+               }
                *phCodec = NULL;
                return VO_ERR_OUTOF_MEMORY;
        }
@@ -168,9 +168,9 @@ VO_U32 VO_API voAACEncSetInputData(VO_HANDLE hCodec, VO_CODECBUFFER * pInput)
        {
                return VO_ERR_INVALID_ARG;
        }
-       
+
        hAacEnc = (AAC_ENCODER *)hCodec;
-       
+
        /* init input pcm buffer and length*/
        hAacEnc->inbuf = (short *)pInput->Buffer;
        hAacEnc->inlen = pInput->Length / sizeof(short);
@@ -178,12 +178,12 @@ VO_U32 VO_API voAACEncSetInputData(VO_HANDLE hCodec, VO_CODECBUFFER * pInput)
 
        hAacEnc->encbuf = hAacEnc->inbuf;
        hAacEnc->enclen = hAacEnc->inlen;
-       
+
        /* rebuild intra pcm buffer and length*/
        if(hAacEnc->intlen)
        {
                length = min(hAacEnc->config.nChannelsIn*AACENC_BLOCKSIZE - hAacEnc->intlen, hAacEnc->inlen);
-               hAacEnc->voMemop->Copy(VO_INDEX_ENC_AAC, hAacEnc->intbuf + hAacEnc->intlen, 
+               hAacEnc->voMemop->Copy(VO_INDEX_ENC_AAC, hAacEnc->intbuf + hAacEnc->intlen,
                        hAacEnc->inbuf, length*sizeof(short));
 
                hAacEnc->encbuf = hAacEnc->intbuf;
@@ -192,7 +192,7 @@ VO_U32 VO_API voAACEncSetInputData(VO_HANDLE hCodec, VO_CODECBUFFER * pInput)
                hAacEnc->inbuf += length;
                hAacEnc->inlen -= length;
        }
-       
+
        return VO_ERR_NONE;
 }
 
@@ -219,11 +219,11 @@ VO_U32 VO_API voAACEncGetOutputData(VO_HANDLE hCodec, VO_CODECBUFFER * pOutput,
         /* check the input pcm buffer and length*/
         if(NULL == hAacEnc->encbuf || hAacEnc->enclen < inbuflen)
         {
-               length = hAacEnc->enclen;               
+               length = hAacEnc->enclen;
                if(hAacEnc->intlen == 0)
-               {       
-                       hAacEnc->voMemop->Copy(VO_INDEX_ENC_AAC, hAacEnc->intbuf, 
-                               hAacEnc->encbuf, length*sizeof(short));         
+               {
+                       hAacEnc->voMemop->Copy(VO_INDEX_ENC_AAC, hAacEnc->intbuf,
+                               hAacEnc->encbuf, length*sizeof(short));
                        hAacEnc->uselength += length*sizeof(short);
                }
                else
@@ -236,7 +236,7 @@ VO_U32 VO_API voAACEncGetOutputData(VO_HANDLE hCodec, VO_CODECBUFFER * pOutput,
                pOutput->Length = 0;
                if(pOutInfo)
                        pOutInfo->InputUsed = hAacEnc->uselength;
-               return VO_ERR_INPUT_BUFFER_SMALL;       
+               return VO_ERR_INPUT_BUFFER_SMALL;
         }
 
         /* check the output aac buffer and length*/
@@ -254,7 +254,7 @@ VO_U32 VO_API voAACEncGetOutputData(VO_HANDLE hCodec, VO_CODECBUFFER * pOutput,
         /* update the input pcm buffer and length*/
         if(hAacEnc->intlen)
         {
-               length = inbuflen - hAacEnc->intlen;            
+               length = inbuflen - hAacEnc->intlen;
                hAacEnc->encbuf = hAacEnc->inbuf;
                hAacEnc->enclen = hAacEnc->inlen;
                hAacEnc->uselength += length*sizeof(short);
@@ -265,7 +265,7 @@ VO_U32 VO_API voAACEncGetOutputData(VO_HANDLE hCodec, VO_CODECBUFFER * pOutput,
                 hAacEnc->encbuf = hAacEnc->encbuf + inbuflen;
                 hAacEnc->enclen = hAacEnc->enclen - inbuflen;
                 hAacEnc->uselength += inbuflen*sizeof(short);
-        }       
+        }
 
         /* update the output aac information */
        if(pOutInfo)
@@ -287,7 +287,7 @@ VO_U32 VO_API voAACEncGetOutputData(VO_HANDLE hCodec, VO_CODECBUFFER * pOutput,
 VO_U32 VO_API voAACEncUninit(VO_HANDLE hCodec)
 {
        AAC_ENCODER* hAacEnc = (AAC_ENCODER*)hCodec;
-       
+
        if(NULL != hAacEnc)
        {
                /* close the aac encoder */
@@ -296,7 +296,7 @@ VO_U32 VO_API voAACEncUninit(VO_HANDLE hCodec)
                /* free the aac encoder handle*/
                mem_free(hAacEnc->voMemop, hAacEnc, VO_INDEX_ENC_AAC);
                hAacEnc = NULL;
-       }       
+       }
 
        return VO_ERR_NONE;
 }
@@ -319,7 +319,7 @@ VO_U32 VO_API voAACEncSetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR pData)
 
        if(NULL == hAacEnc)
                return VO_ERR_INVALID_ARG;
-       
+
        switch(uParamID)
        {
        case VO_PID_AAC_ENCPARAM:  /* init aac encoder parameter*/
@@ -354,11 +354,11 @@ VO_U32 VO_API voAACEncSetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR pData)
                SampleRateIdx = i;
 
                tmp = 441;
-               if(config.sampleRate%8000 == 0) 
+               if(config.sampleRate%8000 == 0)
                        tmp =480;
                /* check the bitrate */
                if(config.bitRate!=0 && (config.bitRate/config.nChannelsOut < 4000) ||
-           (config.bitRate/config.nChannelsOut > 160000) || 
+           (config.bitRate/config.nChannelsOut > 160000) ||
                   (config.bitRate > config.sampleRate*6*config.nChannelsOut))
                {
                        config.bitRate = 640*config.sampleRate/tmp*config.nChannelsOut;
@@ -385,7 +385,7 @@ VO_U32 VO_API voAACEncSetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR pData)
 
                /* init aac encoder core */
                ret = AacEncOpen(hAacEnc, config);
-               if(ret) 
+               if(ret)
                        return VO_ERR_AUDIO_UNSFEATURE;
                break;
        case VO_PID_AUDIO_FORMAT:       /* init pcm channel and samplerate*/
@@ -426,7 +426,7 @@ VO_U32 VO_API voAACEncSetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR pData)
 
                /* update the bitrates */
                tmp = 441;
-               if(config.sampleRate%8000 == 0) 
+               if(config.sampleRate%8000 == 0)
                        tmp =480;
 
                config.bitRate = 640*config.sampleRate/tmp*config.nChannelsOut;
@@ -449,10 +449,10 @@ VO_U32 VO_API voAACEncSetParam(VO_HANDLE hCodec, VO_S32 uParamID, VO_PTR pData)
                }
 
                config.bandWidth = BandwithCoefTab[i][SampleRateIdx];
-               
+
                /* init aac encoder core */
                ret = AacEncOpen(hAacEnc, config);
-               if(ret) 
+               if(ret)
                        return VO_ERR_AUDIO_UNSFEATURE;
                break;
        default:
@@ -483,7 +483,7 @@ VO_S32 VO_API voGetAACEncAPI(VO_AUDIO_CODECAPI * pDecHandle)
 {
        if(pDecHandle == NULL)
                return VO_ERR_INVALID_ARG;
-               
+
        pDecHandle->Init = voAACEncInit;
        pDecHandle->SetInputData = voAACEncSetInputData;
        pDecHandle->GetOutputData = voAACEncGetOutputData;
index b69a017..2b3bd48 100644 (file)
@@ -43,8 +43,8 @@ void AacInitDefaultConfig(AACENC_CONFIG *config)
   config->adtsUsed        = 1;
   config->nChannelsIn     = 2;
   config->nChannelsOut    = 2;
-  config->bitRate         = 128000;                      
-  config->bandWidth       = 0;                           
+  config->bitRate         = 128000;
+  config->bandWidth       = 0;
 }
 
 /********************************************************************************
@@ -63,11 +63,11 @@ Word16  AacEncOpen(  AAC_ENCODER*      hAacEnc,        /* pointer to an encoder
   Word16 profile = 1;
 
   ELEMENT_INFO *elInfo = NULL;
-   
+
   if (hAacEnc==0) {
-    error=1;                                  
+    error=1;
   }
-   
+
   if (!error) {
     hAacEnc->config = config;
   }
@@ -83,7 +83,7 @@ Word16  AacEncOpen(  AAC_ENCODER*      hAacEnc,        /* pointer to an encoder
 
   if (!error) {
     /* use or not tns tool for long and short block */
-        Word16 tnsMask=3;      
+        Word16 tnsMask=3;
 
        /* init encoder psychoacoustic */
     error = psyMainInit(&hAacEnc->psyKernel,
@@ -107,10 +107,10 @@ Word16  AacEncOpen(  AAC_ENCODER*      hAacEnc,        /* pointer to an encoder
     qcInit.elInfo = &hAacEnc->elInfo;
 
     qcInit.maxBits = (Word16) (MAXBITS_COEF*elInfo->nChannelsInEl);
-    qcInit.bitRes = qcInit.maxBits;                                      
+    qcInit.bitRes = qcInit.maxBits;
     qcInit.averageBits = (Word16) ((config.bitRate * FRAME_LEN_LONG) / config.sampleRate);
 
-    qcInit.padding.paddingRest = config.sampleRate;                          
+    qcInit.padding.paddingRest = config.sampleRate;
 
     qcInit.meanPe = (Word16) ((10 * FRAME_LEN_LONG * hAacEnc->config.bandWidth) /
                                               (config.sampleRate>>1));
@@ -118,17 +118,17 @@ Word16  AacEncOpen(  AAC_ENCODER*      hAacEnc,        /* pointer to an encoder
     qcInit.maxBitFac = (Word16) ((100 * (MAXBITS_COEF-MINBITS_COEF)* elInfo->nChannelsInEl)/
                                                  (qcInit.averageBits?qcInit.averageBits:1));
 
-    qcInit.bitrate = config.bitRate;                                     
+    qcInit.bitrate = config.bitRate;
 
     error = QCInit(&hAacEnc->qcKernel, &qcInit);
   }
 
   /* init bitstream encoder */
   if (!error) {
-    hAacEnc->bseInit.nChannels   = elInfo->nChannelsInEl;                
-    hAacEnc->bseInit.bitrate     = config.bitRate;                       
-    hAacEnc->bseInit.sampleRate  = config.sampleRate;                    
-    hAacEnc->bseInit.profile     = profile;                              
+    hAacEnc->bseInit.nChannels   = elInfo->nChannelsInEl;
+    hAacEnc->bseInit.bitrate     = config.bitRate;
+    hAacEnc->bseInit.sampleRate  = config.sampleRate;
+    hAacEnc->bseInit.profile     = profile;
   }
 
   return error;
@@ -152,14 +152,14 @@ Word16 AacEncEncode(AAC_ENCODER *aacEnc,          /*!< an encoder handle */
   ELEMENT_INFO *elInfo = &aacEnc->elInfo;
   Word16 globUsedBits;
   Word16 ancDataBytes, ancDataBytesLeft;
-  
-  ancDataBytes = ancDataBytesLeft = *numAncBytes;                          
+
+  ancDataBytes = ancDataBytesLeft = *numAncBytes;
 
   /* init output aac data buffer and length */
   aacEnc->hBitStream = CreateBitBuffer(&aacEnc->bitStream, outBytes, *numOutBytes);
 
   /* psychoacoustic process */
-  psyMain(aacEnc->config.nChannelsOut,    
+  psyMain(aacEnc->config.nChannelsOut,
           elInfo,
           timeSignal,
           &aacEnc->psyKernel.psyData[elInfo->ChannelIndex[0]],
@@ -175,9 +175,9 @@ Word16 AacEncEncode(AAC_ENCODER *aacEnc,            /*!< an encoder handle */
   AdjustBitrate(&aacEnc->qcKernel,
                 aacEnc->config.bitRate,
                 aacEnc->config.sampleRate);
-    
+
   /* quantization and coding process */
-  QCMain(&aacEnc->qcKernel,         
+  QCMain(&aacEnc->qcKernel,
          &aacEnc->qcKernel.elementBits,
          &aacEnc->qcKernel.adjThr.adjThrStateElem,
          &aacEnc->psyOut.psyOutChannel[elInfo->ChannelIndex[0]],
@@ -193,11 +193,11 @@ Word16 AacEncEncode(AAC_ENCODER *aacEnc,          /*!< an encoder handle */
                          &aacEnc->qcOut);
 
   /* write bitstream process */
-  WriteBitstream(aacEnc->hBitStream,                            
+  WriteBitstream(aacEnc->hBitStream,
                  *elInfo,
                  &aacEnc->qcOut,
                  &aacEnc->psyOut,
-                 &globUsedBits,                                 
+                 &globUsedBits,
                  ancBytes,
                                 aacEnc->psyKernel.sampleRateIdx);
 
@@ -219,7 +219,7 @@ Word16 AacEncEncode(AAC_ENCODER *aacEnc,            /*!< an encoder handle */
 **********************************************************************************/
 void AacEncClose (AAC_ENCODER* hAacEnc, VO_MEM_OPERATOR *pMemOP)
 {
-  if (hAacEnc) {  
+  if (hAacEnc) {
     QCDelete(&hAacEnc->qcKernel, pMemOP);
 
     QCOutDelete(&hAacEnc->qcOut, pMemOP);
index 83b43a1..c656f65 100644 (file)
@@ -71,7 +71,7 @@ static void calcThreshExp(Word32 thrExp[MAX_CHANNELS][MAX_GROUPED_SFB],
   Word32 *pthrExp, *psfbThre;
   for (ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
-        for(sfbGrp = 0; sfbGrp < psyOutChan->sfbCnt; sfbGrp+= psyOutChan->sfbPerGroup)  
+        for(sfbGrp = 0; sfbGrp < psyOutChan->sfbCnt; sfbGrp+= psyOutChan->sfbPerGroup)
          pthrExp = &(thrExp[ch][sfbGrp]);
          psfbThre = psyOutChan->sfbThreshold + sfbGrp;
          for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
@@ -96,21 +96,21 @@ static void adaptMinSnr(PSY_OUT_CHANNEL     psyOutChannel[MAX_CHANNELS],
   Word32 nSfb, avgEn;
   Word16 log_avgEn = 0;
   Word32 startRatio_x_avgEn = 0;
-                                                                           
+
 
   for (ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL* psyOutChan = &psyOutChannel[ch];
 
     /* calc average energy per scalefactor band */
-    avgEn = 0;                                                           
-    nSfb = 0;                                                            
+    avgEn = 0;
+    nSfb = 0;
     for (sfbOffs=0; sfbOffs<psyOutChan->sfbCnt; sfbOffs+=psyOutChan->sfbPerGroup) {
       for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
         avgEn = L_add(avgEn, psyOutChan->sfbEnergy[sfbOffs+sfb]);
         nSfb = nSfb + 1;
       }
     }
-     
+
     if (nSfb > 0) {
          avgEn = avgEn / nSfb;
 
@@ -118,7 +118,7 @@ static void adaptMinSnr(PSY_OUT_CHANNEL     psyOutChannel[MAX_CHANNELS],
       startRatio_x_avgEn = fixmul(msaParam->startRatio, avgEn);
     }
 
-    
+
     /* reduce minSnr requirement by minSnr^minSnrRed dependent on avgEn/sfbEn */
     for (sfbOffs=0; sfbOffs<psyOutChan->sfbCnt; sfbOffs+=psyOutChan->sfbPerGroup) {
       for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
@@ -126,22 +126,22 @@ static void adaptMinSnr(PSY_OUT_CHANNEL     psyOutChannel[MAX_CHANNELS],
           Word16 dbRatio, minSnrRed;
           Word32 snrRed;
           Word16 newMinSnr;
-          
+
           dbRatio = log_avgEn - logSfbEnergy[ch][sfbOffs+sfb];
           dbRatio = dbRatio + (dbRatio << 1);
 
           minSnrRed = 110 - ((dbRatio + (dbRatio << 1)) >> 2);
-          minSnrRed = max(minSnrRed, 20); /* 110: (0.375(redOffs)+1)*80,  
+          minSnrRed = max(minSnrRed, 20); /* 110: (0.375(redOffs)+1)*80,
                                                3: 0.00375(redRatioFac)*80
                                                20: 0.25(maxRed) * 80 */
 
-          snrRed = minSnrRed * iLog4((psyOutChan->sfbMinSnr[sfbOffs+sfb] << 16)); 
-          /* 
+          snrRed = minSnrRed * iLog4((psyOutChan->sfbMinSnr[sfbOffs+sfb] << 16));
+          /*
              snrRedI si now scaled by 80 (minSnrRed) and 4 (ffr_iLog4)
           */
-        
+
           newMinSnr = round16(pow2_xy(snrRed,80*4));
-         
+
           psyOutChan->sfbMinSnr[sfbOffs+sfb] = min(newMinSnr, minSnrLimit);
         }
       }
@@ -169,7 +169,7 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
 
   for (ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
-     
+
     if (psyOutChan->windowSequence != SHORT_WINDOW) {
       for(sfbGrp = 0;sfbGrp < psyOutChan->sfbCnt;sfbGrp+= psyOutChan->sfbPerGroup){
          psfbSpreadEn = psyOutChan->sfbSpreadedEnergy + sfbGrp;
@@ -194,7 +194,7 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
   if (ahParam->modifyMinSnr) {
     for(ch=0; ch<nChannels; ch++) {
       PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
-         
+
       if (psyOutChan->windowSequence != SHORT_WINDOW)
         threshold = HOLE_THR_LONG;
       else
@@ -204,39 +204,39 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
         Word16 *psfbMinSnr = psyOutChan->sfbMinSnr + sfbGrp;
                for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
           Word32 sfbEn, sfbEnm1, sfbEnp1, avgEn;
-             
+
           if (sfb > 0)
             sfbEnm1 = psyOutChan->sfbEnergy[sfbGrp+sfb-1];
           else
             sfbEnm1 = psyOutChan->sfbEnergy[sfbGrp];
-             
+
           if (sfb < (psyOutChan->maxSfbPerGroup-1))
             sfbEnp1 = psyOutChan->sfbEnergy[sfbGrp+sfb+1];
           else
             sfbEnp1 = psyOutChan->sfbEnergy[sfbGrp+sfb];
           avgEn = (sfbEnm1 + sfbEnp1) >> 1;
-          sfbEn = psyOutChan->sfbEnergy[sfbGrp+sfb];                             
-             
+          sfbEn = psyOutChan->sfbEnergy[sfbGrp+sfb];
+
           if (sfbEn > avgEn && avgEn > 0) {
             Word32 tmpMinSnr;
             shift = norm_l(sfbEn);
                        tmpMinSnr = Div_32(L_mpy_ls(avgEn, minSnrLimit) << shift, sfbEn << shift );
-            tmpMinSnr = max(tmpMinSnr, HOLE_THR_LONG);                  
+            tmpMinSnr = max(tmpMinSnr, HOLE_THR_LONG);
             tmpMinSnr = max(tmpMinSnr, threshold);
             *psfbMinSnr = min(*psfbMinSnr, tmpMinSnr);
           }
           /* valley ? */
-             
+
           if ((sfbEn < (avgEn >> 1)) && (sfbEn > 0)) {
             Word32 tmpMinSnr;
-            Word32 minSnrEn = L_mpy_wx(avgEn, *psfbMinSnr);                 
-             
+            Word32 minSnrEn = L_mpy_wx(avgEn, *psfbMinSnr);
+
             if(minSnrEn < sfbEn) {
                          shift = norm_l(sfbEn);
               tmpMinSnr = Div_32( minSnrEn << shift, sfbEn<<shift);
             }
             else {
-              tmpMinSnr = MAX_16;                                             
+              tmpMinSnr = MAX_16;
             }
             tmpMinSnr = min(minSnrLimit, tmpMinSnr);
 
@@ -251,7 +251,7 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
 
   /* stereo: adapt the minimum requirements sfbMinSnr of mid and
      side channels */
-   
+
   if (nChannels == 2) {
     PSY_OUT_CHANNEL *psyOutChanM = &psyOutChannel[0];
     PSY_OUT_CHANNEL *psyOutChanS = &psyOutChannel[1];
@@ -260,30 +260,30 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
         Word32 sfbEnM = psyOutChanM->sfbEnergy[sfb];
         Word32 sfbEnS = psyOutChanS->sfbEnergy[sfb];
         Word32 maxSfbEn = max(sfbEnM, sfbEnS);
-        Word32 maxThr = L_mpy_wx(maxSfbEn, psyOutChanM->sfbMinSnr[sfb]) >> 1;        
-         
+        Word32 maxThr = L_mpy_wx(maxSfbEn, psyOutChanM->sfbMinSnr[sfb]) >> 1;
+
         if(maxThr >= sfbEnM) {
-          psyOutChanM->sfbMinSnr[sfb] = MAX_16;                                          
+          psyOutChanM->sfbMinSnr[sfb] = MAX_16;
         }
         else {
-          shift = norm_l(sfbEnM); 
-                 psyOutChanM->sfbMinSnr[sfb] = min(max(psyOutChanM->sfbMinSnr[sfb], 
+          shift = norm_l(sfbEnM);
+                 psyOutChanM->sfbMinSnr[sfb] = min(max(psyOutChanM->sfbMinSnr[sfb],
                          round16(Div_32(maxThr<<shift, sfbEnM << shift))), minSnrLimit);
         }
-         
+
         if(maxThr >= sfbEnS) {
           psyOutChanS->sfbMinSnr[sfb] = MAX_16;
         }
         else {
                  shift = norm_l(sfbEnS);
-          psyOutChanS->sfbMinSnr[sfb] = min(max(psyOutChanS->sfbMinSnr[sfb], 
+          psyOutChanS->sfbMinSnr[sfb] = min(max(psyOutChanS->sfbMinSnr[sfb],
                          round16(Div_32(maxThr << shift, sfbEnS << shift))), minSnrLimit);
         }
 
-         
+
         if (sfbEnM > psyOutChanM->sfbSpreadedEnergy[sfb])
           psyOutChanS->sfbSpreadedEnergy[sfb] = L_mpy_ls(sfbEnS, MS_THRSPREAD_COEF);
-         
+
         if (sfbEnS > psyOutChanS->sfbSpreadedEnergy[sfb])
           psyOutChanM->sfbSpreadedEnergy[sfb] = L_mpy_ls(sfbEnM, MS_THRSPREAD_COEF);
       }
@@ -297,7 +297,7 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
     for(sfbGrp = 0;sfbGrp < psyOutChan->sfbCnt;sfbGrp+= psyOutChan->sfbPerGroup){
       Word16 *pahFlag = ahFlag[ch] + sfbGrp;
          for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
-               
+
         if ((psyOutChan->sfbSpreadedEnergy[sfbGrp+sfb] > psyOutChan->sfbEnergy[sfbGrp+sfb]) ||
             (psyOutChan->sfbEnergy[sfbGrp+sfb] <= psyOutChan->sfbThreshold[sfbGrp+sfb]) ||
             (psyOutChan->sfbMinSnr[sfbGrp+sfb] == MAX_16)) {
@@ -308,7 +308,7 @@ static void initAvoidHoleFlag(Word16 ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
         }
       }
       for (sfb=psyOutChan->maxSfbPerGroup; sfb<psyOutChan->sfbPerGroup; sfb++) {
-        *pahFlag++ = NO_AH;                                                          
+        *pahFlag++ = NO_AH;
       }
     }
   }
@@ -331,15 +331,15 @@ static void calcPeNoAH(Word16          *pe,
   Word16 ch, sfb, sfbGrp;
   int ipe, iconstPart, inActiveLines;
 
-  ipe = 0;                                                       
-  iconstPart = 0;                                                
-  inActiveLines = 0;                                             
+  ipe = 0;
+  iconstPart = 0;
+  inActiveLines = 0;
   for(ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
     PE_CHANNEL_DATA *peChanData = &peData->peChannelData[ch];
     for(sfbGrp = 0;sfbGrp < psyOutChan->sfbCnt;sfbGrp+= psyOutChan->sfbPerGroup){
       for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
-         
+
         if (ahFlag[ch][sfbGrp+sfb] < AH_ACTIVE) {
           ipe = ipe + peChanData->sfbPe[sfbGrp+sfb];
           iconstPart = iconstPart + peChanData->sfbConstPart[sfbGrp+sfb];
@@ -349,9 +349,9 @@ static void calcPeNoAH(Word16          *pe,
     }
   }
 
-  *pe = saturate(ipe);                                                       
-  *constPart = saturate(iconstPart);                                                
-  *nActiveLines = saturate(inActiveLines);  
+  *pe = saturate(ipe);
+  *constPart = saturate(iconstPart);
+  *nActiveLines = saturate(inActiveLines);
 }
 
 /********************************************************************************
@@ -367,16 +367,16 @@ static void reduceThresholds(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
                              const Word32     redVal)
 {
   Word32 sfbThrReduced;
-  Word32 *psfbEn, *psfbThr;     
+  Word32 *psfbEn, *psfbThr;
   Word16 ch, sfb, sfbGrp;
 
   for(ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
     for(sfbGrp=0; sfbGrp<psyOutChan->sfbCnt; sfbGrp+=psyOutChan->sfbPerGroup) {
-         psfbEn  = psyOutChan->sfbEnergy + sfbGrp;                                      
+         psfbEn  = psyOutChan->sfbEnergy + sfbGrp;
       psfbThr = psyOutChan->sfbThreshold + sfbGrp;
          for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
-         
+
         if (*psfbEn > *psfbThr) {
           /* threshold reduction formula */
           Word32 tmp = thrExp[ch][sfbGrp+sfb] + redVal;
@@ -384,11 +384,11 @@ static void reduceThresholds(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
           sfbThrReduced = fixmul(tmp, tmp);
           /* avoid holes */
           tmp = L_mpy_ls(*psfbEn, psyOutChan->sfbMinSnr[sfbGrp+sfb]);
-             
-          if ((sfbThrReduced > tmp) && 
+
+          if ((sfbThrReduced > tmp) &&
               (ahFlag[ch][sfbGrp+sfb] != NO_AH)){
             sfbThrReduced = max(tmp, *psfbThr);
-            ahFlag[ch][sfbGrp+sfb] = AH_ACTIVE;                                          
+            ahFlag[ch][sfbGrp+sfb] = AH_ACTIVE;
           }
                  *psfbThr = sfbThrReduced;
         }
@@ -426,7 +426,7 @@ static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
   Word32 sfbThrReduced;
 
   /* for each sfb calc relative factors for pe changes */
-  normFactor = 1;                                                                        
+  normFactor = 1;
   for(ch=0; ch<nChannels; ch++) {
     psyOutChan = &psyOutChannel[ch];
     peChanData = &peData->peChannelData[ch];
@@ -436,22 +436,22 @@ static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
          pahFlag = ahFlag[ch] + sfbGrp;
          for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
         Word32 redThrExp = thrExp[ch][sfbGrp+sfb] + redVal;
-             
+
         if (((*pahFlag < AH_ACTIVE) || (deltaPe > 0)) && (redThrExp > 0) ) {
-            
+
           *psfbPeFactors = (*psfbNActiveLines) * (0x7fffffff / redThrExp);
           normFactor = L_add(normFactor, *psfbPeFactors);
         }
         else {
-          *psfbPeFactors = 0;                                              
+          *psfbPeFactors = 0;
         }
-               psfbPeFactors++; 
+               psfbPeFactors++;
                pahFlag++; psfbNActiveLines++;
       }
     }
   }
 
+
   /* calculate new thresholds */
   for(ch=0; ch<nChannels; ch++) {
     psyOutChan = &psyOutChannel[ch];
@@ -464,7 +464,7 @@ static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
         /* pe difference for this sfb */
         deltaSfbPe = *psfbPeFactors * deltaPe;
 
-               /* thr3(n) = thr2(n)*2^deltaSfbPe/b(n) */         
+               /* thr3(n) = thr2(n)*2^deltaSfbPe/b(n) */
         if (*psfbNActiveLines > 0) {
           /* new threshold */
           Word32 thrFactor;
@@ -476,7 +476,7 @@ static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
               reduce threshold
             */
             thrFactor = pow2_xy(L_negate(deltaSfbPe), (normFactor* (*psfbNActiveLines)));
-              
+
             sfbThrReduced = L_mpy_ls(sfbThr, round16(thrFactor));
           }
           else {
@@ -484,28 +484,28 @@ static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
               increase threshold
             */
             thrFactor = pow2_xy(deltaSfbPe, (normFactor * (*psfbNActiveLines)));
-              
-             
+
+
             if(thrFactor > sfbThr) {
               shift = norm_l(thrFactor);
                          sfbThrReduced = Div_32( sfbThr << shift, thrFactor<<shift );
             }
             else {
-              sfbThrReduced = MAX_32;                                                                            
+              sfbThrReduced = MAX_32;
             }
 
           }
-            
+
           /* avoid hole */
           sfbEn = L_mpy_ls(sfbEn, psyOutChan->sfbMinSnr[sfbGrp+sfb]);
-             
+
           if ((sfbThrReduced > sfbEn) &&
               (*pahFlag == AH_INACTIVE)) {
             sfbThrReduced = max(sfbEn, sfbThr);
-            *pahFlag = AH_ACTIVE;                                                                  
+            *pahFlag = AH_ACTIVE;
           }
 
-          psyOutChan->sfbThreshold[sfbGrp+sfb] = sfbThrReduced;  
+          psyOutChan->sfbThreshold[sfbGrp+sfb] = sfbThrReduced;
         }
 
                pahFlag++; psfbNActiveLines++; psfbPeFactors++;
@@ -521,8 +521,8 @@ static void correctThresh(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
 * description: if the desired pe can not be reached, reduce pe by reducing minSnr
 *
 **********************************************************************************/
-static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS], 
-                         PE_DATA         *peData, 
+static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
+                         PE_DATA         *peData,
                          Word16           ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
                          const Word16     nChannels,
                          const Word16     desiredPe)
@@ -531,9 +531,9 @@ static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
   Word16 deltaPe;
 
   /* start at highest freq down to 0 */
-  sfbSubWin = psyOutChannel[0].maxSfbPerGroup;                                                 
+  sfbSubWin = psyOutChannel[0].maxSfbPerGroup;
   while (peData->pe > desiredPe && sfbSubWin > 0) {
-       
+
     sfbSubWin = sfbSubWin - 1;
     /* loop over all subwindows */
     for (sfb=sfbSubWin; sfb<psyOutChannel[0].sfbCnt;
@@ -541,10 +541,10 @@ static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
       /* loop over all channels */
                PE_CHANNEL_DATA* peChan = peData->peChannelData;
                PSY_OUT_CHANNEL* psyOutCh = psyOutChannel;
-               for (ch=0; ch<nChannels; ch++) {           
+               for (ch=0; ch<nChannels; ch++) {
         if (ahFlag[ch][sfb] != NO_AH &&
             psyOutCh->sfbMinSnr[sfb] < minSnrLimit) {
-          psyOutCh->sfbMinSnr[sfb] = minSnrLimit;                                      
+          psyOutCh->sfbMinSnr[sfb] = minSnrLimit;
           psyOutCh->sfbThreshold[sfb] =
             L_mpy_ls(psyOutCh->sfbEnergy[sfb], psyOutCh->sfbMinSnr[sfb]);
 
@@ -552,12 +552,12 @@ static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
           deltaPe = ((peChan->sfbNLines4[sfb] + (peChan->sfbNLines4[sfb] >> 1)) >> 2) -
               peChan->sfbPe[sfb];
           peData->pe = peData->pe + deltaPe;
-          peChan->pe = peChan->pe + deltaPe;             
+          peChan->pe = peChan->pe + deltaPe;
         }
                peChan += 1; psyOutCh += 1;
       }
       /* stop if enough has been saved */
-       
+
       if (peData->pe <= desiredPe)
         break;
     }
@@ -567,13 +567,13 @@ static void reduceMinSnr(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
 /********************************************************************************
 *
 * function name:allowMoreHoles
-* description: if the desired pe can not be reached, some more scalefactor bands  
+* description: if the desired pe can not be reached, some more scalefactor bands
 *              have to be quantized to zero
 *
 **********************************************************************************/
-static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS], 
+static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
                            PSY_OUT_ELEMENT *psyOutElement,
-                           PE_DATA         *peData, 
+                           PE_DATA         *peData,
                            Word16           ahFlag[MAX_CHANNELS][MAX_GROUPED_SFB],
                            const AH_PARAM  *ahParam,
                            const Word16     nChannels,
@@ -582,46 +582,46 @@ static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
   Word16 ch, sfb;
   Word16 actPe, shift;
 
-  actPe = peData->pe;                                                                    
+  actPe = peData->pe;
 
   /* for MS allow hole in the channel with less energy */
-     
+
   if (nChannels==2 &&
       psyOutChannel[0].windowSequence==psyOutChannel[1].windowSequence) {
     PSY_OUT_CHANNEL *psyOutChanL = &psyOutChannel[0];
     PSY_OUT_CHANNEL *psyOutChanR = &psyOutChannel[1];
     for (sfb=0; sfb<psyOutChanL->sfbCnt; sfb++) {
       Word32 minEn;
-       
+
       if (psyOutElement->toolsInfo.msMask[sfb]) {
         /* allow hole in side channel ? */
         minEn = L_mpy_ls(psyOutChanL->sfbEnergy[sfb], (minSnrLimit * psyOutChanL->sfbMinSnr[sfb]) >> 16);
-           
+
         if (ahFlag[1][sfb] != NO_AH &&
             minEn > psyOutChanR->sfbEnergy[sfb]) {
-          ahFlag[1][sfb] = NO_AH;                                                                
+          ahFlag[1][sfb] = NO_AH;
           psyOutChanR->sfbThreshold[sfb] = L_add(psyOutChanR->sfbEnergy[sfb], psyOutChanR->sfbEnergy[sfb]);
           actPe = actPe - peData->peChannelData[1].sfbPe[sfb];
         }
         /* allow hole in mid channel ? */
         else {
         minEn = L_mpy_ls(psyOutChanR->sfbEnergy[sfb], (minSnrLimit * psyOutChanR->sfbMinSnr[sfb]) >> 16);
-             
+
           if (ahFlag[0][sfb]!= NO_AH &&
               minEn > psyOutChanL->sfbEnergy[sfb]) {
-            ahFlag[0][sfb] = NO_AH;                                                              
+            ahFlag[0][sfb] = NO_AH;
             psyOutChanL->sfbThreshold[sfb] = L_add(psyOutChanL->sfbEnergy[sfb], psyOutChanL->sfbEnergy[sfb]);
             actPe = actPe - peData->peChannelData[0].sfbPe[sfb];
           }
         }
-         
+
         if (actPe < desiredPe)
           break;
       }
     }
   }
 
-  /* subsequently erase bands */   
+  /* subsequently erase bands */
   if (actPe > desiredPe) {
     Word16 startSfb[2];
     Word32 avgEn, minEn;
@@ -634,20 +634,20 @@ static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
 
     /* do not go below startSfb */
     for (ch=0; ch<nChannels; ch++) {
-         
+
       if (psyOutChannel[ch].windowSequence != SHORT_WINDOW)
         startSfb[ch] = ahParam->startSfbL;
       else
         startSfb[ch] = ahParam->startSfbS;
     }
 
-    avgEn = 0;                                                           
-    minEn = MAX_32;                                                      
-    ahCnt = 0;                                                           
+    avgEn = 0;
+    minEn = MAX_32;
+    ahCnt = 0;
     for (ch=0; ch<nChannels; ch++) {
       PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
       for (sfb=startSfb[ch]; sfb<psyOutChan->sfbCnt; sfb++) {
-           
+
         if ((ahFlag[ch][sfb] != NO_AH) &&
             (psyOutChan->sfbEnergy[sfb] > psyOutChan->sfbThreshold[sfb])) {
           minEn = min(minEn, psyOutChan->sfbEnergy[sfb]);
@@ -656,7 +656,7 @@ static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
         }
       }
     }
-     
+
     if(ahCnt) {
       Word32 iahCnt;
       shift = norm_l(ahCnt);
@@ -674,46 +674,46 @@ static void allowMoreHoles(PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],
 
     /* start with lowest energy border at highest sfb */
     maxSfb = psyOutChannel[0].sfbCnt - 1;
-    minSfb = startSfb[0];                                                                
-     
+    minSfb = startSfb[0];
+
     if (nChannels == 2) {
       maxSfb = max(maxSfb, (psyOutChannel[1].sfbCnt - 1));
       minSfb = min(minSfb, startSfb[1]);
     }
 
-    sfb = maxSfb;                                                                        
-    enIdx = 0;                                                                           
-    done = 0;                                                                            
+    sfb = maxSfb;
+    enIdx = 0;
+    done = 0;
     while (!done) {
-       
+
       for (ch=0; ch<nChannels; ch++) {
         PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
-           
+
         if (sfb>=startSfb[ch] && sfb<psyOutChan->sfbCnt) {
           /* sfb energy below border ? */
-             
+
           if (ahFlag[ch][sfb] != NO_AH && psyOutChan->sfbEnergy[sfb] < en[enIdx]){
             /* allow hole */
-            ahFlag[ch][sfb] = NO_AH;                                                     
+            ahFlag[ch][sfb] = NO_AH;
             psyOutChan->sfbThreshold[sfb] = L_add(psyOutChan->sfbEnergy[sfb], psyOutChan->sfbEnergy[sfb]);
             actPe = actPe - peData->peChannelData[ch].sfbPe[sfb];
           }
-           
+
           if (actPe < desiredPe) {
-            done = 1;                                                                    
+            done = 1;
             break;
           }
         }
       }
       sfb = sfb - 1;
-       
+
       if (sfb < minSfb) {
         /* restart with next energy border */
-        sfb = maxSfb;                                                                    
+        sfb = maxSfb;
         enIdx = enIdx + 1;
-         
+
         if (enIdx - 4 >= 0)
-          done = 1;                                                                      
+          done = 1;
       }
     }
   }
@@ -748,13 +748,13 @@ static void adaptThresholdsToPe(PSY_OUT_CHANNEL     psyOutChannel[MAX_CHANNELS],
 
   initAvoidHoleFlag(peData->ahFlag, psyOutChannel, psyOutElement, nChannels, ahParam);
 
-  noRedPe = peData->pe;                                                          
-  constPart = peData->constPart;                                                 
-  nActiveLines = peData->nActiveLines;       
+  noRedPe = peData->pe;
+  constPart = peData->constPart;
+  nActiveLines = peData->nActiveLines;
 
   /* first guess of reduction value t^0.25 = 2^((a-pen)/4*b) */
   avgThrExp = pow2_xy((constPart - noRedPe), (nActiveLines << 2));
-  
+
   /* r1 = 2^((a-per)/4*b) - t^0.25 */
   redVal = pow2_xy((constPart - desiredPe), (nActiveLines << 2)) - avgThrExp;
 
@@ -763,40 +763,40 @@ static void adaptThresholdsToPe(PSY_OUT_CHANNEL     psyOutChannel[MAX_CHANNELS],
 
   /* pe after first guess */
   calcSfbPe(peData, psyOutChannel, nChannels);
-  redPe = peData->pe;                                                            
+  redPe = peData->pe;
 
-  iter = 0;                                                                      
+  iter = 0;
   do {
     /* pe for bands where avoid hole is inactive */
     calcPeNoAH(&redPeNoAH, &constPartNoAH, &nActiveLinesNoAH,
                peData, peData->ahFlag, psyOutChannel, nChannels);
 
     desiredPeNoAH = desiredPe -(redPe - redPeNoAH);
-     
+
     if (desiredPeNoAH < 0) {
-      desiredPeNoAH = 0;                                                         
+      desiredPeNoAH = 0;
     }
 
     /* second guess */
-     
+
     if (nActiveLinesNoAH > 0) {
-               
+
                avgThrExp = pow2_xy((constPartNoAH - redPeNoAH), (nActiveLinesNoAH << 2));
-               
+
                redVal = (redVal + pow2_xy((constPartNoAH - desiredPeNoAH), (nActiveLinesNoAH << 2))) - avgThrExp;
-               
+
                /* reduce thresholds */
                reduceThresholds(psyOutChannel, peData->ahFlag, peData->thrExp, nChannels, redVal);
     }
 
     calcSfbPe(peData, psyOutChannel, nChannels);
-    redPe = peData->pe;                                                          
+    redPe = peData->pe;
 
     iter = iter+1;
-       
+
   } while ((20 * abs_s(redPe - desiredPe) > desiredPe) && (iter < 2));
 
-   
+
   if ((100 * redPe < 115 * desiredPe)) {
     correctThresh(psyOutChannel, peData->ahFlag, peData, peData->thrExp, redVal,
                   nChannels, desiredPe - redPe);
@@ -863,7 +863,7 @@ static Word16 calcBitSpend(Word16 fillLevel,
   if(clipHigh-clipLow)
   bitspend = (minBitSpend + ((maxBitSpend - minBitSpend)*(fillLevel - clipLow) /
                                 (clipHigh-clipLow)));
-                            
+
   return (bitspend);
 }
 
@@ -884,19 +884,19 @@ static void adjustPeMinMax(const Word16 currPe,
   Word16 minFacHi, maxFacHi, minFacLo, maxFacLo;
   Word16 diff;
   Word16 minDiff = extract_l(currPe / 6);
-  minFacHi = 30;                                                         
-  maxFacHi = 100;                                                        
-  minFacLo = 14;                                                         
-  maxFacLo = 7;                                                          
+  minFacHi = 30;
+  maxFacHi = 100;
+  minFacLo = 14;
+  maxFacLo = 7;
 
   diff = currPe - *peMax ;
-   
+
   if (diff > 0) {
     *peMin = *peMin + ((diff * minFacHi) / 100);
     *peMax = *peMax + ((diff * maxFacHi) / 100);
   } else {
     diff = *peMin - currPe;
-     
+
     if (diff > 0) {
       *peMin = *peMin - ((diff * minFacLo) / 100);
       *peMax = *peMax - ((diff * maxFacLo) / 100);
@@ -906,7 +906,7 @@ static void adjustPeMinMax(const Word16 currPe,
     }
   }
 
-   
+
   if ((*peMax - *peMin) < minDiff) {
     Word16 partLo, partHi;
 
@@ -969,7 +969,7 @@ static Word16 bitresCalcBitFac( const Word16   bitresBits,
                     (adjThrChan->peMax - adjThrChan->peMin));
   else
        bitresFac = 0x7fff;
-               
+
   bitresFac = min(bitresFac,
                     (100-30 + extract_l((100 * bitresBits) / avgBits)));
 
@@ -995,23 +995,23 @@ void AdjThrInit(ADJ_THR_STATE *hAdjThr,
 
   /* common for all elements: */
   /* parameters for bitres control */
-  hAdjThr->bresParamLong.clipSaveLow   =  20;                    
-  hAdjThr->bresParamLong.clipSaveHigh  =  95;                    
-  hAdjThr->bresParamLong.minBitSave    =  -5;                    
-  hAdjThr->bresParamLong.maxBitSave    =  30;                    
-  hAdjThr->bresParamLong.clipSpendLow  =  20;                    
-  hAdjThr->bresParamLong.clipSpendHigh =  95;                    
-  hAdjThr->bresParamLong.minBitSpend   = -10;                    
-  hAdjThr->bresParamLong.maxBitSpend   =  40;                    
-
-  hAdjThr->bresParamShort.clipSaveLow   =  20;                   
-  hAdjThr->bresParamShort.clipSaveHigh  =  75;                   
-  hAdjThr->bresParamShort.minBitSave    =   0;                   
-  hAdjThr->bresParamShort.maxBitSave    =  20;                   
-  hAdjThr->bresParamShort.clipSpendLow  =  20;                   
-  hAdjThr->bresParamShort.clipSpendHigh =  75;                   
-  hAdjThr->bresParamShort.minBitSpend   = -5;                    
-  hAdjThr->bresParamShort.maxBitSpend   =  50;                   
+  hAdjThr->bresParamLong.clipSaveLow   =  20;
+  hAdjThr->bresParamLong.clipSaveHigh  =  95;
+  hAdjThr->bresParamLong.minBitSave    =  -5;
+  hAdjThr->bresParamLong.maxBitSave    =  30;
+  hAdjThr->bresParamLong.clipSpendLow  =  20;
+  hAdjThr->bresParamLong.clipSpendHigh =  95;
+  hAdjThr->bresParamLong.minBitSpend   = -10;
+  hAdjThr->bresParamLong.maxBitSpend   =  40;
+
+  hAdjThr->bresParamShort.clipSaveLow   =  20;
+  hAdjThr->bresParamShort.clipSaveHigh  =  75;
+  hAdjThr->bresParamShort.minBitSave    =   0;
+  hAdjThr->bresParamShort.maxBitSave    =  20;
+  hAdjThr->bresParamShort.clipSpendLow  =  20;
+  hAdjThr->bresParamShort.clipSpendHigh =  75;
+  hAdjThr->bresParamShort.minBitSpend   = -5;
+  hAdjThr->bresParamShort.maxBitSpend   =  50;
 
   /* specific for each element: */
 
@@ -1020,7 +1020,7 @@ void AdjThrInit(ADJ_THR_STATE *hAdjThr,
   atsElem->peMax = extract_l(((120*meanPe) / 100));
 
   /* additional pe offset to correct pe2bits for low bitrates */
-  atsElem->peOffset = 0;                             
+  atsElem->peOffset = 0;
   if (chBitrate < 32000) {
     atsElem->peOffset = max(50, (100 - extract_l((100 * chBitrate) / 32000)));
   }
@@ -1039,24 +1039,24 @@ void AdjThrInit(ADJ_THR_STATE *hAdjThr,
 
   /* minSnr adaptation */
   /* maximum reduction of minSnr goes down to minSnr^maxRed */
-  msaParam->maxRed = 0x20000000;     /* *0.25f /                        
+  msaParam->maxRed = 0x20000000;     /* *0.25f /
   /* start adaptation of minSnr for avgEn/sfbEn > startRatio */
-  msaParam->startRatio = 0x0ccccccd; /* 10 */                        
+  msaParam->startRatio = 0x0ccccccd; /* 10 */
   /* maximum minSnr reduction to minSnr^maxRed is reached for
      avgEn/sfbEn >= maxRatio */
-  msaParam->maxRatio =  0x0020c49c; /* 1000 */                         
+  msaParam->maxRatio =  0x0020c49c; /* 1000 */
   /* helper variables to interpolate minSnr reduction for
      avgEn/sfbEn between startRatio and maxRatio */
 
-  msaParam->redRatioFac = 0xfb333333; /* -0.75/20 */         
+  msaParam->redRatioFac = 0xfb333333; /* -0.75/20 */
+
+  msaParam->redOffs = 0x30000000;  /* msaParam->redRatioFac * 10*log10(msaParam->startRatio) */
 
-  msaParam->redOffs = 0x30000000;  /* msaParam->redRatioFac * 10*log10(msaParam->startRatio) */  
 
-       
   /* pe correction */
-  atsElem->peLast = 0;                                                 
-  atsElem->dynBitsLast = 0;                                            
-  atsElem->peCorrectionFactor = 100; /* 1.0 */                         
+  atsElem->peLast = 0;
+  atsElem->dynBitsLast = 0;
+  atsElem->peCorrectionFactor = 100; /* 1.0 */
 
 }
 
@@ -1069,20 +1069,20 @@ void AdjThrInit(ADJ_THR_STATE *hAdjThr,
 *****************************************************************************/
 static void calcPeCorrection(Word16 *correctionFac,
                              const Word16 peAct,
-                             const Word16 peLast, 
-                             const Word16 bitsLast) 
+                             const Word16 peLast,
+                             const Word16 bitsLast)
 {
   Word32 peAct100 = 100 * peAct;
   Word32 peLast100 = 100 * peLast;
   Word16 peBitsLast = bits2pe(bitsLast);
-           
+
   if ((bitsLast > 0) &&
       (peAct100 < (150 * peLast)) &&  (peAct100 > (70 * peLast)) &&
       ((120 * peBitsLast) > peLast100 ) && (( 65 * peBitsLast) < peLast100))
     {
       Word16 newFac = (100 * peLast) / peBitsLast;
       /* dead zone */
-       
+
       if (newFac < 100) {
         newFac = min(((110 * newFac) / 100), 100);
         newFac = max(newFac, 85);
@@ -1091,13 +1091,13 @@ static void calcPeCorrection(Word16 *correctionFac,
         newFac = max(((90 * newFac) / 100), 100);
         newFac = min(newFac, 115);
       }
-         
+
       if ((newFac > 100 && *correctionFac < 100) ||
           (newFac < 100 && *correctionFac > 100)) {
-        *correctionFac = 100;                                                    
+        *correctionFac = 100;
       }
       /* faster adaptation towards 1.0, slower in the other direction */
-             
+
       if ((*correctionFac < 100 && newFac < *correctionFac) ||
           (*correctionFac > 100 && newFac > *correctionFac))
         *correctionFac = (85 * *correctionFac + 15 * newFac) / 100;
@@ -1107,7 +1107,7 @@ static void calcPeCorrection(Word16 *correctionFac,
       *correctionFac = max(*correctionFac, 85);
     }
   else {
-    *correctionFac = 100;                                                        
+    *correctionFac = 100;
   }
 }
 
@@ -1123,40 +1123,40 @@ void AdjustThresholds(ADJ_THR_STATE   *adjThrState,
                       PSY_OUT_ELEMENT *psyOutElement,
                       Word16          *chBitDistribution,
                       Word16           logSfbEnergy[MAX_CHANNELS][MAX_GROUPED_SFB],
-                      Word16           sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],                      
+                      Word16           sfbNRelevantLines[MAX_CHANNELS][MAX_GROUPED_SFB],
                       QC_OUT_ELEMENT  *qcOE,
                                          ELEMENT_BITS    *elBits,
                                          const Word16     nChannels,
                       const Word16     maxBitFac)
 {
-  PE_DATA peData;  
+  PE_DATA peData;
   Word16 noRedPe, grantedPe, grantedPeCorr;
   Word16 curWindowSequence;
   Word16 bitFactor;
   Word16 avgBits = (elBits->averageBits - (qcOE->staticBitsUsed + qcOE->ancBitsUsed));
-  Word16 bitresBits = elBits->bitResLevel; 
+  Word16 bitresBits = elBits->bitResLevel;
   Word16 maxBitresBits = elBits->maxBits;
   Word16 sideInfoBits = (qcOE->staticBitsUsed + qcOE->ancBitsUsed);
   Word16 ch;
-   
+
   prepareSfbPe(&peData, psyOutChannel, logSfbEnergy, sfbNRelevantLines, nChannels, AdjThrStateElement->peOffset);
-   
+
   /* pe without reduction */
   calcSfbPe(&peData, psyOutChannel, nChannels);
-  noRedPe = peData.pe;                                                   
+  noRedPe = peData.pe;
 
 
-  curWindowSequence = LONG_WINDOW;                                       
-   
+  curWindowSequence = LONG_WINDOW;
+
   if (nChannels == 2) {
-       
+
     if ((psyOutChannel[0].windowSequence == SHORT_WINDOW) ||
         (psyOutChannel[1].windowSequence == SHORT_WINDOW)) {
-      curWindowSequence = SHORT_WINDOW;                                  
+      curWindowSequence = SHORT_WINDOW;
     }
   }
   else {
-    curWindowSequence = psyOutChannel[0].windowSequence;                 
+    curWindowSequence = psyOutChannel[0].windowSequence;
   }
 
 
@@ -1170,13 +1170,13 @@ void AdjustThresholds(ADJ_THR_STATE   *adjThrState,
   grantedPe = ((bitFactor * bits2pe(avgBits)) / 100);
 
   /* correction of pe value */
-  calcPeCorrection(&(AdjThrStateElement->peCorrectionFactor), 
+  calcPeCorrection(&(AdjThrStateElement->peCorrectionFactor),
                    min(grantedPe, noRedPe),
-                   AdjThrStateElement->peLast, 
+                   AdjThrStateElement->peLast,
                    AdjThrStateElement->dynBitsLast);
   grantedPeCorr = (grantedPe * AdjThrStateElement->peCorrectionFactor) / 100;
 
-     
+
   if (grantedPeCorr < noRedPe && noRedPe > peData.offset) {
     /* calc threshold necessary for desired pe */
     adaptThresholdsToPe(psyOutChannel,
@@ -1192,8 +1192,8 @@ void AdjustThresholds(ADJ_THR_STATE   *adjThrState,
   /* calculate relative distribution */
   for (ch=0; ch<nChannels; ch++) {
     Word16 peOffsDiff = peData.pe - peData.offset;
-    chBitDistribution[ch] = 200;                                                 
-     
+    chBitDistribution[ch] = 200;
+
     if (peOffsDiff > 0) {
       Word32 temp = 1000 - (nChannels * 200);
       chBitDistribution[ch] = chBitDistribution[ch] +
@@ -1202,10 +1202,10 @@ void AdjustThresholds(ADJ_THR_STATE   *adjThrState,
   }
 
   /* store pe */
-  qcOE->pe = noRedPe;                                                            
+  qcOE->pe = noRedPe;
 
   /* update last pe */
-  AdjThrStateElement->peLast = grantedPe;                                        
+  AdjThrStateElement->peLast = grantedPe;
 }
 
 /********************************************************************************
@@ -1217,7 +1217,7 @@ void AdjustThresholds(ADJ_THR_STATE   *adjThrState,
 void AdjThrUpdate(ATS_ELEMENT *AdjThrStateElement,
                   const Word16 dynBitsUsed)
 {
-  AdjThrStateElement->dynBitsLast = dynBitsUsed;                                 
+  AdjThrStateElement->dynBitsLast = dynBitsUsed;
 }
 
 
index e0885f1..e705197 100644 (file)
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
 
-       .section .text  
+       .section .text
        .global AutoCorrelation
 
 AutoCorrelation:
        stmdb     sp!, {r4 - r11, lr}
 
-  sub     r13, r13, #20                     
+  sub     r13, r13, #20
 
-  mov     r5, r0                            
-  mov     r7, r1                            
-  mov     r9, r3                            
-  mov     r2, r2, lsl #16                      
-  mov     r0, #0          
-  mov     r4, r2, asr #16                   
-  mov     r8, #0                            
-  cmp     r4, #0                            
-  ble     L136        
-       
-       cmp     r4, #8 
-       mov               r2, #0 
-  blt     L133   
+  mov     r5, r0
+  mov     r7, r1
+  mov     r9, r3
+  mov     r2, r2, lsl #16
+  mov     r0, #0
+  mov     r4, r2, asr #16
+  mov     r8, #0
+  cmp     r4, #0
+  ble     L136
 
-       sub     r12, r4, #8                
-L132:  
-  ldr     r6, [r5, r2]  
+       cmp     r4, #8
+       mov               r2, #0
+  blt     L133
+
+       sub     r12, r4, #8
+L132:
+  ldr     r6, [r5, r2]
        add               r2, r2, #4
        smulbb  r3, r6, r6
-       ldr     r1, [r5, r2] 
+       ldr     r1, [r5, r2]
        smultt  r10, r6, r6
        mov               r3, r3, asr #9
        smulbb  r6, r1, r1
@@ -72,95 +72,95 @@ L132:
        add     r8, r8, #6
 
        qadd      r0, r0, r6
-       cmp     r8, r12                            
-  blt     L132                   
-L133:                         
-  ldrsh   r6, [r5, r2]                      
-  mul     r10, r6, r6   
-       add     r2, r2, #2                     
-  mov     r1, r10, asr #9                    
+       cmp     r8, r12
+  blt     L132
+L133:
+  ldrsh   r6, [r5, r2]
+  mul     r10, r6, r6
+       add     r2, r2, #2
+  mov     r1, r10, asr #9
   qadd    r0, r0, r1
-L134:                         
-  add     r8, r8, #1                        
-  cmp     r8, r4                            
-  blt     L133                            
-L135:                        
-L136:                         
-  str     r0, [r7, #0]                      
-  cmp     r0, #0                            
-  beq     L1320                           
-L137:                         
-  mov     r2, r9, lsl #16                   
-       mov     r8, #1                                
-  mov     r2, r2, asr #16                   
-  cmp     r2, #1                            
-  ble     L1319                           
-L138:                        
-L139:                         
-  sub     r4, r4, #1                        
-  mov     r14, #0                           
-  mov     r3, #0                            
-  cmp     r4, #0                            
-  ble     L1317                           
-L1310:                       
-  cmp     r4, #6                            
-  addlt   r6, r5, r8, lsl #1                
-  blt     L1314                           
-L1311:                        
-  add     r6, r5, r8, lsl #1                
-  sub     r12, r4, #6                       
-  str     r8, [r13, #8]                     
-  str     r7, [r13, #4]                     
-L1312:                        
-  mov     r1, r3, lsl #1                    
-  ldrsh   r7, [r6, r1]                      
-  ldrsh   r10, [r5, r1]  
-  add     r8, r1, r6 
-       add     r9, r5, r1                       
+L134:
+  add     r8, r8, #1
+  cmp     r8, r4
+  blt     L133
+L135:
+L136:
+  str     r0, [r7, #0]
+  cmp     r0, #0
+  beq     L1320
+L137:
+  mov     r2, r9, lsl #16
+       mov     r8, #1
+  mov     r2, r2, asr #16
+  cmp     r2, #1
+  ble     L1319
+L138:
+L139:
+  sub     r4, r4, #1
+  mov     r14, #0
+  mov     r3, #0
+  cmp     r4, #0
+  ble     L1317
+L1310:
+  cmp     r4, #6
+  addlt   r6, r5, r8, lsl #1
+  blt     L1314
+L1311:
+  add     r6, r5, r8, lsl #1
+  sub     r12, r4, #6
+  str     r8, [r13, #8]
+  str     r7, [r13, #4]
+L1312:
+  mov     r1, r3, lsl #1
+  ldrsh   r7, [r6, r1]
+  ldrsh   r10, [r5, r1]
+  add     r8, r1, r6
+       add     r9, r5, r1
        mul     r7, r10, r7
-  ldrsh   r1, [r8, #2] 
-       ldrsh   r10, [r8, #4]   
-  add     r7, r14, r7, asr #9                                                       
-  ldrsh   r0, [r9, #2]                          
-  ldrsh   r11, [r9, #4]                   
-  mul     r1, r0, r1                        
-  ldrsh   r14, [r8, #6]                     
-  mul     r10, r11, r10          
-       add     r7, r7, r1, asr #9            
-  ldrsh   r8, [r8, #8] 
+  ldrsh   r1, [r8, #2]
+       ldrsh   r10, [r8, #4]
+  add     r7, r14, r7, asr #9
+  ldrsh   r0, [r9, #2]
+  ldrsh   r11, [r9, #4]
+  mul     r1, r0, r1
+  ldrsh   r14, [r8, #6]
+  mul     r10, r11, r10
+       add     r7, r7, r1, asr #9
+  ldrsh   r8, [r8, #8]
        add     r3, r3, #5
-       ldrsh   r11, [r9, #6]                  
-  ldrsh   r1, [r9, #8]                      
-  mul     r14, r11, r14                     
-  add     r7, r7, r10, asr #9       
-  mul     r1, r1, r8                             
-  add     r14, r7, r14, asr #9              
-       cmp     r3, r12 
-  add     r14, r14, r1, asr #9              
-  ble     L1312                           
-L1313:                        
-  ldr     r8, [r13, #8]                     
-  ldr     r7, [r13, #4]                     
-L1314:                        
-L1315:                        
-  mov     r12, r3, lsl #1                   
-  ldrsh   r9, [r6, r12]                     
-  ldrsh   r12, [r5, r12]                    
-  add     r3, r3, #1                        
-  cmp     r3, r4                            
-  mul     r12, r12, r9                      
-  add     r14, r14, r12, asr #9             
-  blt     L1315                           
-L1316:                        
-L1317:                        
-  str     r14, [r7, +r8, lsl #2]            
-  add     r8, r8, #1                        
-  cmp     r8, r2                            
-  blt     L139   
-                                
+       ldrsh   r11, [r9, #6]
+  ldrsh   r1, [r9, #8]
+  mul     r14, r11, r14
+  add     r7, r7, r10, asr #9
+  mul     r1, r1, r8
+  add     r14, r7, r14, asr #9
+       cmp     r3, r12
+  add     r14, r14, r1, asr #9
+  ble     L1312
+L1313:
+  ldr     r8, [r13, #8]
+  ldr     r7, [r13, #4]
+L1314:
+L1315:
+  mov     r12, r3, lsl #1
+  ldrsh   r9, [r6, r12]
+  ldrsh   r12, [r5, r12]
+  add     r3, r3, #1
+  cmp     r3, r4
+  mul     r12, r12, r9
+  add     r14, r14, r12, asr #9
+  blt     L1315
+L1316:
+L1317:
+  str     r14, [r7, +r8, lsl #2]
+  add     r8, r8, #1
+  cmp     r8, r2
+  blt     L139
+
 L1319:
 L1320:
-       add     r13, r13, #20                    
+       add     r13, r13, #20
        ldmia   sp!, {r4 - r11, pc}
 
        @ENDP  @ |AutoCorrelation|
index 75b916c..b30e8cb 100644 (file)
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 
        .section .text
-       
+
        .global CalcWindowEnergy
 
 CalcWindowEnergy:
        stmdb   sp!, {r4 - r11, lr}
-       sub     r13, r13, #20 
+       sub     r13, r13, #20
 
-  mov     r3, r3, lsl #16                         
+  mov     r3, r3, lsl #16
        ldr     r10, [r0, #168]                    @ states0 = blockSwitchingControl->iirStates[0];
-  mov     r3, r3, asr #16 
+  mov     r3, r3, asr #16
        ldr     r11, [r0, #172]                    @ states1 = blockSwitchingControl->iirStates[1];
 
        mov     r2, r2, lsl #16
-       ldr     r12, hiPassCoeff                   @ Coeff0 = hiPassCoeff[0];      
+       ldr     r12, hiPassCoeff                   @ Coeff0 = hiPassCoeff[0];
   mov     r2, r2, asr #16
        ldr     r14, hiPassCoeff + 4                             @ Coeff1 = hiPassCoeff[1];
-       
+
        mov                     r8, #0                                                                 @ w=0
        mov                     r5, #0                                                                 @ wOffset = 0;
-       
+
 BLOCK_BEGIN:
-       mov                     r6, #0                             @ accuUE = 0; 
-       mov                     r7, #0                                                                       @ accuFE = 0; 
+       mov                     r6, #0                             @ accuUE = 0;
+       mov                     r7, #0                                                                       @ accuFE = 0;
        mov                     r4, #0                                                                 @ i=0
-                                  
-       str                     r8, [r13, #4]   
-       str                     r0, [r13, #8]   
+
+       str                     r8, [r13, #4]
+       str                     r0, [r13, #8]
        str                     r3, [r13, #12]
-       
-ENERGY_BEG:    
-       mov     r9, r5, lsl #1  
+
+ENERGY_BEG:
+       mov     r9, r5, lsl #1
        ldrsh   r9, [r1, r9]                                                                                    @ tempUnfiltered = timeSignal[tidx];
 
        add                     r5, r5, r2                                                                                              @ tidx = tidx + chIncrement;
-       
-       smulwb  r3, r14, r9                                                                                             @ accu1 = L_mpy_ls(Coeff1, tempUnfiltered);     
+
+       smulwb  r3, r14, r9                                                                                             @ accu1 = L_mpy_ls(Coeff1, tempUnfiltered);
        smull           r0, r8, r12, r11                                                                        @ accu2 = fixmul( Coeff0, states1 );
-       
+
        mov                     r3, r3, lsl #1
        mov                     r8, r8, lsl #1
 
-       sub                     r0, r3, r10                                                                                             @ accu3 = accu1 - states0;      
+       sub                     r0, r3, r10                                                                                             @ accu3 = accu1 - states0;
        sub                     r8,     r0, r8                                                                                          @ out = accu3 - accu2;
 
        mov               r10, r3                                                                                                               @ states0 = accu1;
-       mov               r11, r8                                                                                                               @ states1 = out;  
-       
-       mul               r3, r9, r9    
+       mov               r11, r8                                                                                                               @ states1 = out;
+
+       mul               r3, r9, r9
        mov     r8, r8, asr #16
-       
+
        add               r4, r4, #1
        add     r6, r6, r3, asr #7
 
-       mul               r9, r8, r8    
+       mul               r9, r8, r8
        ldr               r3, [r13, #12]
 
        add               r7, r7, r9, asr #7
-               
-       cmp     r4, r3                            
-  blt     ENERGY_BEG       
-       
+
+       cmp     r4, r3
+  blt     ENERGY_BEG
+
        ldr               r0, [r13, #8]
        ldr               r8, [r13, #4]
-       
+
 ENERGY_END:
        add               r4, r0, r8, lsl #2
 
-       str     r6, [r4, #72]         
-       add               r8, r8, #1               
-  str     r7, [r4, #136]                   
+       str     r6, [r4, #72]
+       add               r8, r8, #1
+  str     r7, [r4, #136]
 
        cmp               r8, #8
-       blt               BLOCK_BEGIN                                           
+       blt               BLOCK_BEGIN
 
 BLOCK_END:
-       str     r10, [r0, #168]                    
-  str     r11, [r0, #172]                    
-  mov     r0, #1            
-                       
-  add     r13, r13, #20   
-       ldmia   sp!, {r4 - r11, pc}                  
+       str     r10, [r0, #168]
+  str     r11, [r0, #172]
+  mov     r0, #1
+
+  add     r13, r13, #20
+       ldmia   sp!, {r4 - r11, pc}
 
 hiPassCoeff:
        .word 0xbec8b439
        .word   0x609d4952
-               
+
        @ENDP
        .end
index 38fe092..103cc91 100644 (file)
 
 PreMDCT:
        stmdb       sp!, {r4 - r11, lr}
-       
+
        add         r9, r0, r1, lsl #2
        sub         r3, r9, #8
 
        movs        r1, r1, asr #2
        beq         PreMDCT_END
-       
+
 PreMDCT_LOOP:
        ldr                                     r8, [r2], #4
        ldr                                     r9, [r2], #4
-       
+
        ldrd                            r4, [r0]
        ldrd                            r6, [r3]
-       
+
        smull                           r14, r11, r4, r8                                        @ MULHIGH(tr1, cosa)
        smull                           r10, r12, r7, r8                                        @ MULHIGH(ti1, cosa)
-               
+
        smull                           r14, r8, r7, r9                                         @ MULHIGH(ti1, sina)
-       smull                           r7, r10, r4, r9                                         @ MULHIGH(tr1, sina)    
-               
-       add                                     r11, r11, r8                                            @ MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@      
+       smull                           r7, r10, r4, r9                                         @ MULHIGH(tr1, sina)
+
+       add                                     r11, r11, r8                                            @ MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@
        sub                                     r7, r12, r10                                            @ MULHIGH(ti1, cosa) - MULHIGH(tr1, sina)
-       
+
        ldr                                     r8, [r2], #4
        ldr                                     r9, [r2], #4
-       
+
        smull                           r14, r4, r6, r8                                         @ MULHIGH(tr2, cosa)
        smull                           r10, r12, r5, r8                                        @ MULHIGH(ti2, cosa)
-               
+
        smull                           r14, r8, r5, r9                                         @ MULHIGH(ti2, sina)
        smull                           r5, r10, r6, r9                                         @ MULHIGH(tr2, sina)
-       
+
        add                                     r8, r8, r4
        sub                                     r9, r12, r10
-       
-       mov                                     r6, r11         
 
-       strd                            r6, [r0]        
+       mov                                     r6, r11
+
+       strd                            r6, [r0]
        strd                            r8, [r3]
-       
+
        subs                            r1, r1, #1
        sub                                     r3, r3, #8
        add                             r0, r0, #8
@@ -74,52 +74,52 @@ PreMDCT_LOOP:
 PreMDCT_END:
        ldmia       sp!, {r4 - r11, pc}
        @ENDP  @ |PreMDCT|
-       
+
        .section .text
        .global PostMDCT
 
 PostMDCT:
        stmdb       sp!, {r4 - r11, lr}
-       
+
        add         r9, r0, r1, lsl #2
        sub         r3, r9, #8
 
        movs        r1, r1, asr #2
        beq         PostMDCT_END
-       
+
 PostMDCT_LOOP:
-       ldr                                     r8, [r2], #4                                    
+       ldr                                     r8, [r2], #4
        ldr                                     r9, [r2], #4
-       
+
        ldrd                            r4, [r0]
        ldrd                            r6, [r3]
-       
+
        smull                           r14, r11, r4, r8                                        @ MULHIGH(tr1, cosa)
        smull                           r10, r12, r5, r8                                        @ MULHIGH(ti1, cosa)
-               
+
        smull                           r14, r8, r5, r9                                         @ MULHIGH(ti1, sina)
-       smull                           r5, r10, r4, r9                                         @ MULHIGH(tr1, sina)    
-               
-       add                                     r4, r11, r8                                                     @ MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@      
+       smull                           r5, r10, r4, r9                                         @ MULHIGH(tr1, sina)
+
+       add                                     r4, r11, r8                                                     @ MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@
        sub                                     r11, r10, r12                                           @ MULHIGH(ti1, cosa) - MULHIGH(tr1, sina)@
-       
+
        ldr                                     r8, [r2], #4                                            @
        ldr                                     r9, [r2], #4
-       
+
        smull                           r14, r5, r6, r8                                         @ MULHIGH(tr2, cosa)
        smull                           r10, r12, r7, r8                                        @ MULHIGH(ti2, cosa)
-               
+
        smull                           r14, r8, r7, r9                                         @ MULHIGH(ti2, sina)
        smull                           r7, r10, r6, r9                                         @ MULHIGH(tr2, sina)
-       
+
        add                                     r6, r8, r5                                                      @ MULHIGH(cosb, tr2) + MULHIGH(sinb, ti2)@
        sub                                     r5, r10, r12                                            @ MULHIGH(sinb, tr2) - MULHIGH(cosb, ti2)@
-       
-       mov                                     r7, r11                         
+
+       mov                                     r7, r11
 
        strd                            r4, [r0]
        strd                            r6, [r3]
-       
+
        subs                            r1, r1, #1
        sub                                     r3, r3, #8
        add                             r0, r0, #8
index b30881a..72cb9a3 100644 (file)
 
 Radix4First:
        stmdb       sp!, {r4 - r11, lr}
-       
+
        movs                            r10, r1
        mov                                     r11, r0
        beq                                     Radix4First_END
-               
+
 Radix4First_LOOP:
        ldrd                            r0, [r11]
        ldrd                            r2, [r11, #8]
        ldrd                            r4, [r11, #16]
        ldrd                            r6, [r11, #24]
-       
+
        add                                     r8, r0, r2
        add                                     r9, r1, r3
-       
+
        sub                                     r0, r0, r2
        sub                                     r1, r1, r3
-       
+
        add                                     r2, r4, r6
        add                                     r3, r5, r7
-       
+
        sub                                     r4, r4, r6
        sub                                     r5, r5, r7
-       
+
        add                                     r6, r8, r2
        add                                     r7, r9, r3
-       
+
        sub                                     r8, r8, r2
        sub                                     r9, r9, r3
-       
+
        add                                     r2, r0, r5
        sub                                     r3, r1, r4
-       
+
        sub                                     r0, r0, r5
        add                                     r1, r1, r4
-       
+
        strd                            r6, [r11]
        strd                            r2, [r11, #8]
        strd                            r8, [r11, #16]
        strd                            r0, [r11, #24]
-       
+
        subs                            r10, r10, #1
        add                                     r11, r11, #32
        bne                                     Radix4First_LOOP
@@ -73,180 +73,180 @@ Radix4First_LOOP:
 Radix4First_END:
        ldmia       sp!, {r4 - r11, pc}
        @ENDP  @ |Radix4First|
-       
+
        .section .text
        .global Radix8First
 
 Radix8First:
        stmdb       sp!, {r4 - r11, lr}
        sub         sp, sp, #0x24
-       
+
        mov                               r12, r1
        mov                                     r14, r0
        cmp                                     r12, #0
        beq                                     Radix8First_END
-       
+
 Radix8First_LOOP:
-       ldrd                            r0, [r14]               
+       ldrd                            r0, [r14]
        ldrd                            r2, [r14, #8]
        ldrd                            r4, [r14, #16]
        ldrd                            r6, [r14, #24]
-       
+
        add                                     r8, r0, r2                                      @ r0 = buf[0] + buf[2]@
        add                                     r9, r1, r3                                      @ i0 = buf[1] + buf[3]@
-       
+
        sub                                     r0, r0, r2                                      @ r1 = buf[0] - buf[2]@
        sub                                     r1, r1, r3                                      @ i1 = buf[1] - buf[3]@
-       
+
        add                                     r2, r4, r6                                      @       r2 = buf[4] + buf[6]@
        add                                     r3, r5, r7                                      @ i2 = buf[5] + buf[7]@
-       
+
        sub                                     r4, r4, r6                                      @       r3 = buf[4] - buf[6]@
        sub                                     r5, r5, r7                                      @ i3 = buf[5] - buf[7]@
-       
+
        add                                     r6, r8, r2                                      @ r4 = (r0 + r2) >> 1@
        add                                     r7, r9, r3                                      @ i4 = (i0 + i2) >> 1@
-       
+
        sub                                     r8, r8, r2                                      @       r5 = (r0 - r2) >> 1@
        sub                                     r9, r9, r3                                      @ i5 = (i0 - i2) >> 1@
-       
+
        sub                                     r2, r0, r5                                      @ r6 = (r1 - i3) >> 1@
        add                                     r3, r1, r4                                      @ i6 = (i1 + r3) >> 1@
-       
+
        add                                     r0, r0, r5                                      @ r7 = (r1 + i3) >> 1@
        sub                                     r1, r1, r4                                      @ i7 = (i1 - r3) >> 1@
-       
+
        mov                                     r6, r6, asr #1                  @
        mov                                     r7, r7, asr #1                  @
-       
+
        mov                                     r8, r8, asr #1
        mov                                     r9, r9, asr #1
-       
+
        mov                                     r2, r2, asr #1
        mov                                     r3, r3, asr #1
-       
+
        mov                                     r0, r0, asr #1
-       mov                                     r1, r1, asr #1  
-       
+       mov                                     r1, r1, asr #1
+
        str                                     r6, [sp]
        str                                     r7, [sp, #4]
-       
+
        str                                     r8, [sp, #8]
        str                                     r9, [sp, #12]
-       
+
        str                                     r2, [sp, #16]
-       str                                     r3, [sp, #20]   
-       
+       str                                     r3, [sp, #20]
+
        str                                     r0, [sp, #24]
-       str                                     r1, [sp, #28]   
-       
-       ldrd                            r2, [r14, #32]          
+       str                                     r1, [sp, #28]
+
+       ldrd                            r2, [r14, #32]
        ldrd                            r4, [r14, #40]
        ldrd                            r6, [r14, #48]
        ldrd                            r8, [r14, #56]
-       
+
        add                                     r0, r2, r4                                      @ r0 = buf[ 8] + buf[10]@
        add                                     r1, r3, r5                                      @ i0 = buf[ 9] + buf[11]@
-       
+
        sub                                     r2, r2, r4                                      @ r1 = buf[ 8] - buf[10]@
        sub                                     r3, r3, r5                                      @ i1 = buf[ 9] - buf[11]@
-       
+
        add                                     r4, r6, r8                                      @ r2 = buf[12] + buf[14]@
        add                                     r5, r7, r9                                      @ i2 = buf[13] + buf[15]@
-       
+
        sub                                     r6, r6, r8                                      @ r3 = buf[12] - buf[14]@
        sub                                     r7, r7, r9                                      @       i3 = buf[13] - buf[15]@
-       
+
        add                                     r8, r0, r4                                      @ t0 = (r0 + r2)
        add                                     r9, r1, r5                                      @ t1 = (i0 + i2)
-       
+
        sub                                     r0, r0, r4                                      @ t2 = (r0 - r2)
        sub                                     r1, r1, r5                                      @ t3 = (i0 - i2)
-       
+
        mov                                     r8, r8, asr #1
        ldr                                     r4, [sp]
-       
+
        mov                                     r9, r9, asr #1
        ldr                                     r5, [sp, #4]
-       
-       mov                                     r0, r0, asr #1          
+
+       mov                                     r0, r0, asr #1
        mov                                     r1, r1, asr #1
-       
+
        add                                     r10, r4, r8                                     @ buf[ 0] = r4 + t0@
        add                                     r11, r5, r9                                     @ buf[ 1] = i4 + t1@
-       
+
        sub                                     r4,  r4, r8                                     @ buf[ 8] = r4 - t0@
        sub                                     r5,  r5, r9                                     @       buf[ 9] = i4 - t1@
-       
+
        strd                            r10, [r14]
        strd                            r4,  [r14, #32]
-       
+
        ldr                                     r10, [sp, #8]
        ldr                                     r11, [sp, #12]
-       
+
        add                                     r4, r10, r1                                     @ buf[ 4] = r5 + t3@
        sub                                     r5, r11, r0                                     @       buf[ 5] = i5 - t2@
-       
+
        sub                                     r10, r10, r1                            @ buf[12] = r5 - t3@
        add                                     r11, r11, r0                            @ buf[13] = i5 + t2@
-       
+
        strd                            r4,  [r14, #16]
        strd                            r10, [r14, #48]
-       
+
        sub                                     r0, r2, r7                                      @ r0 = r1 - i3@
        add                                     r1, r3, r6                                      @ i0 = i1 + r3@
+
   ldr                                  r11, DATATab
-       
+
        add                                     r2, r2, r7                                      @ r2 = r1 + i3@
        sub                                     r3, r3, r6                                      @ i2 = i1 - r3@
-       
+
        sub                                     r4, r0, r1                                      @ r0 - i0
        add                                     r5, r0, r1                                      @ r0 + i0
-       
+
        sub                                     r0, r2, r3                                      @ r2 - i2
        add                                     r1, r2, r3                                      @ r2 + i2
-       
-       smull                           r8, r6, r4, r11                                                         
-       smull                           r9, r7, r5, r11                                                         
-       
+
+       smull                           r8, r6, r4, r11
+       smull                           r9, r7, r5, r11
+
        ldr                                     r2, [sp, #16]
        ldr                                     r3, [sp, #20]
-       
-       smull                           r8, r4, r0, r11                                                         
-       smull                           r9, r5, r1, r11                                                         
-       
+
+       smull                           r8, r4, r0, r11
+       smull                           r9, r5, r1, r11
+
        ldr                                     r10, [sp, #24]
        ldr                                     r11, [sp, #28]
-       
+
        sub                                     r8, r2, r6
        sub                                     r9, r3, r7
-       
+
        add                                     r2, r2, r6
        add                                     r3, r3, r7
-       
+
        add                                     r6, r10, r5
        sub                                     r7, r11, r4
-       
+
        sub                                     r0, r10, r5
        add                                     r1, r11, r4
-       
+
        strd                            r6, [r14, #8]
        strd                            r8, [r14, #24]
        strd                            r0, [r14, #40]
        strd                            r2, [r14, #56]
-       
+
        subs                            r12, r12, #1
        add                                     r14, r14, #64
-       
+
        bne                                     Radix8First_LOOP
-       
+
 Radix8First_END:
        add         sp, sp, #0x24
        ldmia       sp!, {r4 - r11, pc}
-       
+
 DATATab:
        .word       0x5a82799a
-       
+
        @ENDP  @ |Radix8First|
        .end
\ No newline at end of file
index bc069b4..e81c82e 100644 (file)
 
 Radix4FFT:
        stmdb     sp!, {r4 - r11, lr}
-       sub       sp, sp, #32                     
+       sub       sp, sp, #32
 
        mov                     r1, r1, asr #2
-       cmp     r1, #0       
-       beq     Radix4FFT_END                            
-                       
-Radix4FFT_LOOP1:          
-       mov     r14, r0                                                                 @ xptr = buf@          
+       cmp     r1, #0
+       beq     Radix4FFT_END
+
+Radix4FFT_LOOP1:
+       mov     r14, r0                                                                 @ xptr = buf@
        mov             r10, r1                                                                                                 @ i = num@
        mov     r9, r2, lsl #3                                                          @ step = 2*bgn@
-       cmp     r10, #0  
-       str             r0, [sp] 
-       str             r1, [sp, #4]      
+       cmp     r10, #0
+       str             r0, [sp]
+       str             r1, [sp, #4]
        str             r2, [sp, #8]
-       str             r3, [sp, #12]  
-       beq     Radix4FFT_LOOP1_END                                 
-     
-Radix4FFT_LOOP2:                       
+       str             r3, [sp, #12]
+       beq     Radix4FFT_LOOP1_END
+
+Radix4FFT_LOOP2:
        mov     r12, r3                                                                 @ csptr = twidTab@
        mov             r11, r2                                                                                         @ j = bgn
-       cmp     r11, #0        
+       cmp     r11, #0
        str             r10, [sp, #16]
-       beq     Radix4FFT_LOOP2_END                         
-        
-Radix4FFT_LOOP3:                          
-       str                     r11, [sp, #20]   
-       
+       beq     Radix4FFT_LOOP2_END
+
+Radix4FFT_LOOP3:
+       str                     r11, [sp, #20]
+
        ldrd            r0, [r14, #0]                                                                   @ r0 = xptr[0]@ r1 = xptr[1]@
        add                     r14, r14, r9                                                                    @ xptr += step@
-       
-       ldrd            r10,    [r14, #0]                                                               @ r2 = xptr[0]@ r3 = xptr[1]@   
+
+       ldrd            r10,    [r14, #0]                                                               @ r2 = xptr[0]@ r3 = xptr[1]@
        ldr                     r8, [r12], #4                                                                   @ cosxsinx = csptr[0]@
-       
+
        smulwt  r4, r10, r8                                                                             @ L_mpy_wx(cosx, t0)
        smulwt  r3, r11, r8                                                                             @ L_mpy_wx(cosx, t1)
-       
+
        smlawb  r2, r11, r8, r4                                                         @ r2 = L_mpy_wx(cosx, t0) + L_mpy_wx(sinx, t1)@
        smulwb  r5, r10, r8                                                                             @ L_mpy_wx(sinx, t0)
-       
+
        mov                     r10, r0, asr #2                                                         @ t0 = r0 >> 2@
        mov                     r11, r1, asr #2                                                         @       t1 = r1 >> 2@
-               
+
        sub                     r3, r3, r5                                                                              @ r3 = L_mpy_wx(cosx, t1) - L_mpy_wx(sinx, t0)@
        add     r14, r14, r9                                                                    @ xptr += step@
-       
+
        sub                     r0, r10, r2                                                                             @ r0 = t0 - r2@
        sub                     r1, r11, r3                                                                       @ r1 = t1 - r3@
-       
+
        add                     r2, r10, r2                                                                             @ r2 = t0 + r2@
        add                     r3, r11, r3                                                                             @ r3 = t1 + r3@
-       
+
        str                     r2, [sp, #24]
        str                     r3, [sp, #28]
-       
+
        ldrd            r10, [r14, #0]                                                          @ r4 = xptr[0]@ r5 = xptr[1]@
        ldr                     r8, [r12], #4                                                                   @ cosxsinx = csptr[1]@
-       
+
        smulwt  r6, r10, r8                                                                             @ L_mpy_wx(cosx, t0)
        smulwt  r5, r11, r8                                                                             @ L_mpy_wx(cosx, t1)
-       
+
        smlawb  r4, r11, r8, r6                                                         @ r4 = L_mpy_wx(cosx, t0) + L_mpy_wx(sinx, t1)@
        smulwb  r7, r10, r8                                                                             @ L_mpy_wx(sinx, t0)
-       
+
        add                     r14, r14, r9                                                                    @ xptr += step@
        sub                     r5, r5, r7                                                                              @ r5 = L_mpy_wx(cosx, t1) - L_mpy_wx(sinx, t0)@
-               
+
        ldrd            r10, [r14]                                                                              @ r6 = xptr[0]@ r7 = xptr[1]@
        ldr                     r8, [r12], #4                                                                   @ cosxsinx = csptr[1]@
-       
+
        smulwt  r2, r10, r8                                                                             @ L_mpy_wx(cosx, t0)
        smulwt  r7, r11, r8                                                                             @ L_mpy_wx(cosx, t1)
-       
+
        smlawb  r6, r11, r8, r2                                                         @ r4 = L_mpy_wx(cosx, t0) + L_mpy_wx(sinx, t1)@
        smulwb  r3, r10, r8                                                                             @ L_mpy_wx(sinx, t0)
-       
+
        mov                     r10, r4                                                                                         @ t0 = r4@
-       mov                     r11, r5                                                                                         @ t1 = r5@      
-       
+       mov                     r11, r5                                                                                         @ t1 = r5@
+
        sub                     r7, r7, r3                                                                              @ r5 = L_mpy_wx(cosx, t1) - L_mpy_wx(sinx, t0)@
-       
 
-       add                     r4,  r10, r6                                                                    @       r4 = t0 + r6@   
+
+       add                     r4,  r10, r6                                                                    @       r4 = t0 + r6@
        sub                     r5, r7, r11                                                                             @ r5 = r7 - t1@
-       
+
        sub                     r6, r10, r6                                                                             @ r6 = t0 - r6@
        add                     r7, r7, r11                                                                             @ r7 = r7 + t1@
-       
+
        ldr                     r2, [sp, #24]
        ldr                     r3, [sp, #28]
-       
+
        add                     r10, r0, r5                                                                             @ xptr[0] = r0 + r5@
        add                     r11, r1, r6                                                                             @ xptr[0] = r1 + r6
-       
-       strd            r10, [r14]                                                                              
+
+       strd            r10, [r14]
        sub                     r14, r14, r9                                                                    @ xptr -= step@
-       
+
        sub                     r10, r2, r4                                                                             @       xptr[0] = r2 - r4@
        sub                     r11, r3, r7                                                                             @ xptr[1] = r3 - r7@
-       
-       strd            r10, [r14]                              
+
+       strd            r10, [r14]
        sub                     r14, r14, r9                                                                    @ xptr -= step@
-       
+
        sub                     r10, r0, r5                                                                             @ xptr[0] = r0 - r5@
        sub                     r11, r1, r6                                                                             @ xptr[0] = r1 - r6
-       
-       strd            r10, [r14]                                                                              
+
+       strd            r10, [r14]
        sub                     r14, r14, r9                                                                    @ xptr -= step@
-       
+
        add                     r10, r2, r4                                                                             @       xptr[0] = r2 - r4@
        add                     r11, r3, r7                                                                             @ xptr[1] = r3 - r7@
-       
-       strd            r10, [r14]                              
+
+       strd            r10, [r14]
        add                     r14, r14, #8                                                                    @ xptr += 2@
-       
+
        ldr                     r11, [sp, #20]
        subs            r11, r11, #1
-       bne                     Radix4FFT_LOOP3 
-        
-Radix4FFT_LOOP2_END:           
+       bne                     Radix4FFT_LOOP3
+
+Radix4FFT_LOOP2_END:
        ldr                     r10, [sp, #16]
        ldr                     r3, [sp, #12]
        ldr                     r2, [sp, #8]
-       rsb                     r8, r9, r9, lsl #2   
+       rsb                     r8, r9, r9, lsl #2
        sub                     r10, r10, #1
-       add                     r14, r14, r8                  
-       cmp                     r10, #0  
-       bhi     Radix4FFT_LOOP2           
-                        
-Radix4FFT_LOOP1_END:               
-       ldr     r0, [sp]    
+       add                     r14, r14, r8
+       cmp                     r10, #0
+       bhi     Radix4FFT_LOOP2
+
+Radix4FFT_LOOP1_END:
+       ldr     r0, [sp]
        ldr             r1, [sp, #4]
        add     r3, r3, r8, asr #1
-       mov     r2, r2, lsl #2 
-       movs    r1, r1, asr #2 
-       bne     Radix4FFT_LOOP1          
-                        
-Radix4FFT_END:                        
-       add     sp, sp, #32                  
+       mov     r2, r2, lsl #2
+       movs    r1, r1, asr #2
+       bne     Radix4FFT_LOOP1
+
+Radix4FFT_END:
+       add     sp, sp, #32
        ldmia   sp!, {r4 - r11, pc}
-               
+
        @ENDP  @ |Radix4FFT|
        .end
\ No newline at end of file
index 3b88810..4789f6d 100644 (file)
        .global CalcBandEnergy
 
 CalcBandEnergy:
-       stmdb   sp!, {r4 - r11, lr}     
-                   
-  mov     r2, r2, lsl #16                   
+       stmdb   sp!, {r4 - r11, lr}
+
+  mov     r2, r2, lsl #16
        ldr     r12, [r13, #36]
        mov                     r9, #0
-  mov     r5, r2, asr #16    
-       mov                     r4, #0               
-  cmp     r5, #0       
-       ble     L212 
+  mov     r5, r2, asr #16
+       mov                     r4, #0
+  cmp     r5, #0
+       ble     L212
 
 L22:
-  mov     r2, r4, lsl #1                    
-  ldrsh   r10, [r1, r2]                     
-  add     r11, r1, r2                       
-  ldrsh   r2, [r11, #2]    
-       mov     r14, #0                 
-  cmp     r10, r2                           
-  bge     L28 
-       
+  mov     r2, r4, lsl #1
+  ldrsh   r10, [r1, r2]
+  add     r11, r1, r2
+  ldrsh   r2, [r11, #2]
+       mov     r14, #0
+  cmp     r10, r2
+  bge     L28
+
 L23:
-       ldr     r11, [r0, +r10, lsl #2] 
-  add     r10, r10, #1    
-       ldr     r6, [r0, +r10, lsl #2]  
+       ldr     r11, [r0, +r10, lsl #2]
+  add     r10, r10, #1
+       ldr     r6, [r0, +r10, lsl #2]
        smull   r11, r7, r11, r11
-       add     r10, r10, #1 
+       add     r10, r10, #1
        smull     r6, r8, r6, r6
        ldr     r11, [r0, +r10, lsl #2]
        qadd      r14, r14, r7
@@ -59,71 +59,71 @@ L23:
        ldr     r6, [r0, +r10, lsl #2]
        qadd      r14, r14, r8
        smull     r6, r8, r6, r6
-  add     r10, r10, #1 
+  add     r10, r10, #1
        qadd      r14, r14, r7
        cmp     r10, r2
        qadd      r14, r14, r8
-       blt     L23   
+       blt     L23
 
-L28:   
+L28:
        qadd      r14, r14, r14
        str     r14, [r3, +r4, lsl #2]
-       add     r4, r4, #1 
+       add     r4, r4, #1
        qadd      r9, r9, r14
-       cmp     r4, r5                          
+       cmp     r4, r5
 
-  blt     L22          
+  blt     L22
 
-L212:  
-       str     r9, [r12, #0]                     
+L212:
+       str     r9, [r12, #0]
        ldmia   sp!, {r4 - r11, pc}
-       
+
        @ENDP  ; |CalcBandEnergy|
-       
+
        .global CalcBandEnergyMS
 
 CalcBandEnergyMS:
        stmdb   sp!, {r4 - r11, lr}
        sub     r13, r13, #24
-       
-       mov     r12, #0 
-  mov     r3, r3, lsl #16  
-  mov     r14, #0 
-       mov     r3, r3, asr #16      
-       cmp     r3, #0          
-       mov               r4, #0                  
-  ble     L315    
-       
-L32:   
+
+       mov     r12, #0
+  mov     r3, r3, lsl #16
+  mov     r14, #0
+       mov     r3, r3, asr #16
+       cmp     r3, #0
+       mov               r4, #0
+  ble     L315
+
+L32:
        mov               r5, r4, lsl #1
        mov               r6, #0
        ldrsh   r10, [r2, r5]
        add     r5, r2, r5
        mov               r7, #0
-       ldrsh     r11, [r5, #2]                        
-       cmp     r10, r11                          
-  bge     L39    
+       ldrsh     r11, [r5, #2]
+       cmp     r10, r11
+  bge     L39
 
        str               r3, [r13, #4]
        str               r4, [r13, #8]
        str               r12, [r13, #12]
        str               r14, [r13, #16]
 
-L33:   
-       ldr     r8, [r0, +r10, lsl #2]                    
+L33:
+       ldr     r8, [r0, +r10, lsl #2]
        ldr     r9, [r1, +r10, lsl #2]
        mov               r8, r8, asr #1
        add               r10, r10, #1
        mov               r9, r9, asr #1
 
-       ldr     r12, [r0, +r10, lsl #2]          
-       add               r5, r8, r9              
+       ldr     r12, [r0, +r10, lsl #2]
+       add               r5, r8, r9
        ldr     r14, [r1, +r10, lsl #2]
        sub               r8, r8, r9
 
-       smull   r5, r3, r5, r5 
+       smull   r5, r3, r5, r5
        mov               r12, r12, asr #1
-       smull   r8, r4, r8, r8 
+       smull   r8, r4, r8, r8
        mov               r14, r14, asr #1
 
        qadd      r6, r6, r3
@@ -131,27 +131,27 @@ L33:
        qadd      r7, r7, r4
        sub               r8, r12, r14
 
-       smull   r5, r3, r5, r5 
+       smull   r5, r3, r5, r5
        add               r10, r10, #1
-       smull   r8, r4, r8, r8 
-               
+       smull   r8, r4, r8, r8
+
        qadd      r6, r6, r3
        qadd      r7, r7, r4
 
-       ldr     r8, [r0, +r10, lsl #2]                    
+       ldr     r8, [r0, +r10, lsl #2]
        ldr     r9, [r1, +r10, lsl #2]
        mov               r8, r8, asr #1
        add               r10, r10, #1
        mov               r9, r9, asr #1
 
-       ldr     r12, [r0, +r10, lsl #2]          
-       add               r5, r8, r9              
+       ldr     r12, [r0, +r10, lsl #2]
+       add               r5, r8, r9
        ldr     r14, [r1, +r10, lsl #2]
        sub               r8, r8, r9
 
-       smull   r5, r3, r5, r5 
+       smull   r5, r3, r5, r5
        mov               r12, r12, asr #1
-       smull   r8, r4, r8, r8 
+       smull   r8, r4, r8, r8
        mov               r14, r14, asr #1
 
        qadd      r6, r6, r3
@@ -159,37 +159,37 @@ L33:
        qadd      r7, r7, r4
        sub               r8, r12, r14
 
-       smull   r5, r3, r5, r5 
+       smull   r5, r3, r5, r5
        add               r10, r10, #1
-       smull   r8, r4, r8, r8 
-               
+       smull   r8, r4, r8, r8
+
        qadd      r6, r6, r3
        qadd      r7, r7, r4
 
        cmp     r10, r11
-       
+
        blt               L33
 
        ldr               r3, [r13, #4]
-       ldr               r4, [r13, #8] 
+       ldr               r4, [r13, #8]
        ldr               r12, [r13, #12]
        ldr               r14, [r13, #16]
-L39:   
+L39:
        qadd      r6, r6, r6
-       qadd      r7, r7, r7    
-       
+       qadd      r7, r7, r7
+
        ldr               r8, [r13, #60]
        ldr               r9, [r13, #68]
 
        qadd      r12, r12, r6
        qadd      r14, r14, r7
-       
-       str               r6, [r8, +r4, lsl #2]       
-       str     r7, [r9, +r4, lsl #2]    
-       
+
+       str               r6, [r8, +r4, lsl #2]
+       str     r7, [r9, +r4, lsl #2]
+
        add               r4, r4, #1
        cmp               r4, r3
-       blt     L32            
+       blt     L32
 
 L315:
        ldr               r8, [r13, #64]
index a04c105..64d767a 100644 (file)
 
 PreMDCT:
        stmdb     sp!, {r4 - r11, lr}
-       
+
        add         r9, r0, r1, lsl #2
        sub         r3, r9, #32
 
        movs        r1, r1, asr #2
-       beq         PreMDCT_END 
-       
+       beq         PreMDCT_END
+
 PreMDCT_LOOP:
        VLD4.I32                        {d0, d2, d4, d6}, [r2]!                         @ cosa = *csptr++@ sina = *csptr++@
        VLD4.I32                        {d1, d3, d5, d7}, [r2]!                         @ cosb = *csptr++@ sinb = *csptr++@
        VLD2.I32                        {d8, d9, d10, d11}, [r0]                        @ tr1 = *(buf0 + 0)@ ti2 = *(buf0 + 1)@
        VLD2.I32                        {d13, d15}, [r3]!                                       @ tr2 = *(buf1 - 1)@ ti1 = *(buf1 + 0)@
        VLD2.I32                        {d12, d14}, [r3]!                                       @ tr2 = *(buf1 - 1)@ ti1 = *(buf1 + 0)@
-               
-       VREV64.32                       Q8, Q7  
+
+       VREV64.32                       Q8, Q7
        VREV64.32                       Q9, Q6
 
-       
+
        VQDMULH.S32             Q10, Q0, Q4                                                             @ MULHIGH(cosa, tr1)
        VQDMULH.S32             Q11, Q1, Q8                                                             @ MULHIGH(sina, ti1)
        VQDMULH.S32             Q12, Q0, Q8                                                             @ MULHIGH(cosa, ti1)
        VQDMULH.S32             Q13, Q1, Q4                                                             @ MULHIGH(sina, tr1)
-               
+
        VADD.S32                        Q0, Q10, Q11                                            @ *buf0++ = MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@
        VSUB.S32                        Q1, Q12, Q13                                            @ *buf0++ = MULHIGH(cosa, ti1) - MULHIGH(sina, tr1)@
-       
+
        VST2.I32                        {d0, d1, d2, d3}, [r0]!
        sub                                             r3, r3, #32
-       
+
        VQDMULH.S32             Q10, Q2, Q9                                                                             @ MULHIGH(cosb, tr2)
        VQDMULH.S32             Q11, Q3, Q5                                                                             @ MULHIGH(sinb, ti2)
        VQDMULH.S32             Q12, Q2, Q5                                                                             @ MULHIGH(cosb, ti2)
        VQDMULH.S32             Q13, Q3, Q9                                                                             @ MULHIGH(sinb, tr2)
-               
+
        VADD.S32                        Q0, Q10, Q11                                                                    @ MULHIGH(cosa, tr2) + MULHIGH(sina, ti2)@
        VSUB.S32                        Q1, Q12, Q13                                                                    @ MULHIGH(cosa, ti2) - MULHIGH(sina, tr2)@
-       
+
        VREV64.32                       Q3, Q1
        VREV64.32                       Q2, Q0
-               
-       VST2.I32                {d5, d7}, [r3]! 
-       VST2.I32                {d4, d6}, [r3]! 
-       
+
+       VST2.I32                {d5, d7}, [r3]!
+       VST2.I32                {d4, d6}, [r3]!
+
        subs                    r1, r1, #4
-       sub                             r3, r3, #64     
+       sub                             r3, r3, #64
        bne             PreMDCT_LOOP
-       
+
 PreMDCT_END:
        ldmia     sp!, {r4 - r11, pc}
        @ENDP  @ |PreMDCT|
@@ -82,50 +82,50 @@ PreMDCT_END:
 
 PostMDCT:
        stmdb     sp!, {r4 - r11, lr}
-       
+
        add         r9, r0, r1, lsl #2
        sub         r3, r9, #32
 
        movs        r1, r1, asr #2
        beq         PostMDCT_END
-       
+
 PostMDCT_LOOP:
        VLD4.I32                        {d0, d2, d4, d6}, [r2]!                         @ cosa = *csptr++@ sina = *csptr++@
        VLD4.I32                        {d1, d3, d5, d7}, [r2]!                         @ cosb = *csptr++@ sinb = *csptr++@
        VLD2.I32                        {d8, d9, d10, d11}, [r0]                        @ tr1 = *(zbuf1 + 0)@ ti1 = *(zbuf1 + 1)@
        VLD2.I32                        {d13, d15}, [r3]!                                                       @ tr2 = *(zbuf2 - 1)@ ti2 = *(zbuf2 + 0)@
-       VLD2.I32                        {d12, d14}, [r3]!                                                       @ tr2 = *(zbuf2 - 1)@ ti2 = *(zbuf2 + 0)@       
+       VLD2.I32                        {d12, d14}, [r3]!                                                       @ tr2 = *(zbuf2 - 1)@ ti2 = *(zbuf2 + 0)@
+
+       VREV64.32                       Q8, Q6
+       VREV64.32                       Q9, Q7
 
-       VREV64.32                       Q8, Q6  
-       VREV64.32                       Q9, Q7                  
-       
        VQDMULH.S32             Q10, Q0, Q4                                                                             @ MULHIGH(cosa, tr1)
        VQDMULH.S32             Q11, Q1, Q5                                                                             @ MULHIGH(sina, ti1)
        VQDMULH.S32             Q12, Q0, Q5                                                                             @ MULHIGH(cosa, ti1)
        VQDMULH.S32             Q13, Q1, Q4                                                                             @ MULHIGH(sina, tr1)
-               
+
        VADD.S32                        Q0, Q10, Q11                                                                    @ *buf0++ = MULHIGH(cosa, tr1) + MULHIGH(sina, ti1)@
        VSUB.S32                        Q5, Q13, Q12                                                                    @ *buf1-- = MULHIGH(sina, tr1) - MULHIGH(cosa, ti1)@
-       
+
        VQDMULH.S32             Q10, Q2, Q8                                                                             @ MULHIGH(cosb, tr2)
        VQDMULH.S32             Q11, Q3, Q9                                                                             @ MULHIGH(sinb, ti2)
        VQDMULH.S32             Q12, Q2, Q9                                                                             @ MULHIGH(cosb, ti2)
        VQDMULH.S32             Q13, Q3, Q8                                                                             @ MULHIGH(sinb, tr2)
-               
+
        VADD.S32                        Q4, Q10, Q11                                                                    @ *buf1-- = MULHIGH(cosa, tr2) + MULHIGH(sina, ti2)@
-       VSUB.S32                        Q1, Q13, Q12                                                                    @ *buf0++ = MULHIGH(sina, tr2) - MULHIGH(cosa, ti2)@    
-       
+       VSUB.S32                        Q1, Q13, Q12                                                                    @ *buf0++ = MULHIGH(sina, tr2) - MULHIGH(cosa, ti2)@
+
        VREV64.32                       Q2, Q4
-       VREV64.32                       Q3, Q5  
-       
-       sub                                             r3, r3, #32     
+       VREV64.32                       Q3, Q5
+
+       sub                                             r3, r3, #32
        VST2.I32                        {d0, d1, d2, d3}, [r0]!
-               
-       VST2.I32                        {d5, d7}, [r3]! 
-       VST2.I32                        {d4, d6}, [r3]! 
-       
+
+       VST2.I32                        {d5, d7}, [r3]!
+       VST2.I32                        {d4, d6}, [r3]!
+
        subs                            r1, r1, #4
-       sub                                     r3, r3, #64             
+       sub                                     r3, r3, #64
        bne             PostMDCT_LOOP
 
 PostMDCT_END:
index defd45d..7fc5520 100644 (file)
@@ -29,86 +29,86 @@ Radix8First:
 
        ldr                     r3, SQRT1_2
        cmp                     r1, #0
-       
-       VDUP.I32                Q15, r3 
+
+       VDUP.I32                Q15, r3
        beq                     Radix8First_END
-       
+
 Radix8First_LOOP:
        VLD1.I32                        {d0, d1, d2, d3},       [r0]!
        VLD1.I32                        {d8, d9, d10, d11},     [r0]!
-               
+
        VADD.S32                        d4, d0, d1              @ r0 = buf[0] + buf[2]@i0 = buf[1] + buf[3]@
-       VSUB.S32                        d5, d0, d1              @ r1 = buf[0] - buf[2]@i1 = buf[1] - buf[3]@    
-       VSUB.S32                        d7, d2, d3              @ r2 = buf[4] - buf[6]@i2 = buf[5] - buf[7]@    
+       VSUB.S32                        d5, d0, d1              @ r1 = buf[0] - buf[2]@i1 = buf[1] - buf[3]@
+       VSUB.S32                        d7, d2, d3              @ r2 = buf[4] - buf[6]@i2 = buf[5] - buf[7]@
        VADD.S32                        d6, d2, d3              @ r3 = buf[4] + buf[6]@i3 = buf[5] + buf[7]@
-       VREV64.I32                      d7, d7  
-       
+       VREV64.I32                      d7, d7
+
        VADD.S32                        Q0, Q2, Q3              @ r4 = (r0 + r2)@i4 = (i0 + i2)@i6 = (i1 + r3)@r7 = (r1 + i3)
        VSUB.S32                        Q1, Q2, Q3              @ r5 = (r0 - r2)@i5 = (i0 - i2)@r6 = (r1 - i3)@i7 = (i1 - r3)@
 
-       VREV64.I32                      d3, d3  
+       VREV64.I32                      d3, d3
 
        VADD.S32                        d4, d8, d9              @ r0 = buf[ 8] + buf[10]@i0 = buf[ 9] + buf[11]@
-       VSUB.S32                        d7, d10, d11    @ r1 = buf[12] - buf[14]@i1 = buf[13] - buf[15]@        
+       VSUB.S32                        d7, d10, d11    @ r1 = buf[12] - buf[14]@i1 = buf[13] - buf[15]@
        VADD.S32                        d6, d10, d11    @ r2 = buf[12] + buf[14]@i2 = buf[13] + buf[15]@
-       VREV64.I32                      d7, d7  
+       VREV64.I32                      d7, d7
        VSUB.S32                        d5, d8, d9              @ r3 = buf[ 8] - buf[10]@i3 = buf[ 9] - buf[11]@
-       
-       VTRN.32                         d1, d3  
-       
+
+       VTRN.32                         d1, d3
+
        VADD.S32                        Q4, Q2, Q3              @ t0 = (r0 + r2) >> 1@t1 = (i0 + i2) >> 1@i0 = i1 + r3@r2 = r1 + i3@
        VSUB.S32                        Q5, Q2, Q3              @ t2 = (r0 - r2) >> 1@t3 = (i0 - i2) >> 1@r0 = r1 - i3@i2 = i1 - r3@
-       
+
        VREV64.I32                      d3, d3
-       
-       VSHR.S32                        d8, d8, #1               
+
+       VSHR.S32                        d8, d8, #1
        VSHR.S32                        Q0, Q0, #1
        VREV64.I32                      d10, d10
        VTRN.32                         d11, d9
        VSHR.S32                        Q1, Q1, #1
        VSHR.S32                        d10, d10, #1
        VREV64.I32                      d9, d9
-       
+
        sub                             r0, r0, #0x40
-       
+
        VADD.S32                        d12, d0, d8
-       VSUB.S32                        d16, d0, d8     
+       VSUB.S32                        d16, d0, d8
        VADD.S32                        d14, d2, d10
        VSUB.S32                        d18, d2, d10
-       
+
        VSUB.S32                        d4, d11, d9
        VADD.S32                        d5, d11, d9
-       
+
        VREV64.I32                      d18, d18
-       
+
        VQDMULH.S32                     Q3, Q2, Q15
        VTRN.32                         d14, d18
        VTRN.32                         d6, d7
-       VREV64.I32                      d18, d18        
-       
+       VREV64.I32                      d18, d18
+
        VSUB.S32                        d15, d3, d6
        VREV64.I32                      d7, d7
        VADD.S32                        d19, d3, d6
        VADD.S32                        d13, d1, d7
        VSUB.S32                        d17, d1, d7
-       
+
        VREV64.I32                      d17, d17
        VTRN.32                         d13, d17
        VREV64.I32                      d17, d17
-       
-       subs                            r1, r1, #1      
-       
+
+       subs                            r1, r1, #1
+
        VST1.I32                        {d12, d13, d14, d15}, [r0]!
-       VST1.I32                        {d16, d17, d18, d19}, [r0]!     
+       VST1.I32                        {d16, d17, d18, d19}, [r0]!
        bne                             Radix8First_LOOP
-       
+
 Radix8First_END:
-       ldmia     sp!, {r4 - r11, pc}   
+       ldmia     sp!, {r4 - r11, pc}
 SQRT1_2:
        .word      0x2d413ccd
-       
+
        @ENDP  @ |Radix8First|
-       
+
        .section .text
        .global Radix4First
 
@@ -117,28 +117,28 @@ Radix4First:
 
        cmp             r1, #0
        beq             Radix4First_END
-       
+
 Radix4First_LOOP:
-       VLD1.I32                        {d0, d1, d2, d3}, [r0]                                  
-       
-       VADD.S32                        d4, d0, d1                                                      @ r0 = buf[0] + buf[2]@ r1 = buf[1] + buf[3]@           
+       VLD1.I32                        {d0, d1, d2, d3}, [r0]
+
+       VADD.S32                        d4, d0, d1                                                      @ r0 = buf[0] + buf[2]@ r1 = buf[1] + buf[3]@
        VSUB.S32                        d5, d0, d1                                                      @ r2 = buf[0] - buf[2]@ r3 = buf[1] - buf[3]@
        VSUB.S32                        d7, d2, d3                                                      @ r4 = buf[4] + buf[6]@ r5 = buf[5] + buf[7]@
        VADD.S32                        d6, d2, d3                                                      @ r6 = buf[4] - buf[6]@ r7 = buf[5] - buf[7]@
-       
-       VREV64.I32              d7, d7                                                                  @ 
-       
+
+       VREV64.I32              d7, d7                                                                  @
+
        VADD.S32                        Q4, Q2, Q3
        VSUB.S32                        Q5, Q2, Q3
-       
+
        VREV64.I32              d11, d11
        VTRN.32                         d9, d11
-       subs                    r1, r1, #1      
+       subs                    r1, r1, #1
        VREV64.I32              d11, d11
        VST1.I32                        {d8, d9, d10, d11}, [r0]!
 
        bne                     Radix4First_LOOP
-       
+
 Radix4First_END:
        ldmia                   sp!, {r4 - r11, pc}
 
index 84a4a80..b8655ae 100644 (file)
@@ -28,116 +28,116 @@ Radix4FFT:
        stmdb    sp!, {r4 - r11, lr}
 
        mov                     r1, r1, asr #2
-       cmp             r1, #0                            
-       beq             Radix4FFT_END                            
-                        
-Radix4FFT_LOOP1:                         
-       mov             r5, r2, lsl #1  
-       mov             r8, r0          
-       mov             r7, r1  
-       mov             r5, r5, lsl #2   
-       cmp             r1, #0          
-       rsbeq           r12, r5, r5, lsl #2 
-       beq             Radix4FFT_LOOP1_END              
-                         
-       rsb             r12, r5, r5, lsl #2   
-        
-Radix4FFT_LOOP2:                        
-       mov             r6, r3 
-       mov             r4, r2  
-       cmp             r2, #0        
-       beq             Radix4FFT_LOOP2_END         
-  
-Radix4FFT_LOOP3:                          
+       cmp             r1, #0
+       beq             Radix4FFT_END
+
+Radix4FFT_LOOP1:
+       mov             r5, r2, lsl #1
+       mov             r8, r0
+       mov             r7, r1
+       mov             r5, r5, lsl #2
+       cmp             r1, #0
+       rsbeq           r12, r5, r5, lsl #2
+       beq             Radix4FFT_LOOP1_END
+
+       rsb             r12, r5, r5, lsl #2
+
+Radix4FFT_LOOP2:
+       mov             r6, r3
+       mov             r4, r2
+       cmp             r2, #0
+       beq             Radix4FFT_LOOP2_END
+
+Radix4FFT_LOOP3:
        @r0 = xptr[0]@
        @r1 = xptr[1]@
-       VLD2.I32                        {D0, D1, D2, D3}, [r8]                          
+       VLD2.I32                        {D0, D1, D2, D3}, [r8]
        VLD2.I32                        {D28, D29, D30, D31}, [r6]!             @ cosx = csptr[0]@ sinx = csptr[1]@
-       
-       add                                     r8, r8, r5                                                                              @ xptr += step@ 
+
+       add                                     r8, r8, r5                                                                              @ xptr += step@
        VLD2.I32                        {D4, D5, D6,D7}, [r8]                                   @ r2 = xptr[0]@ r3 = xptr[1]@
-       
+
        VQDMULH.S32             Q10, Q2, Q14                                                                    @ MULHIGH(cosx, t0)
        VQDMULH.S32             Q11, Q3, Q15                                                                    @ MULHIGH(sinx, t1)
        VQDMULH.S32             Q12, Q3, Q14                                                                    @ MULHIGH(cosx, t1)
        VQDMULH.S32             Q13, Q2, Q15                                                                    @ MULHIGH(sinx, t0)
-               
+
        VADD.S32                        Q2, Q10, Q11                                                                    @ MULHIGH(cosx, t0) + MULHIGH(sinx, t1)
        VSUB.S32                        Q3, Q12, Q13                                                                    @ MULHIGH(cosx, t1) - MULHIGH(sinx, t0)
-       
+
        add                                     r8, r8, r5                                                                              @ xptr += step@
        VSHR.S32                        Q10, Q0, #2                                                                             @ t0 = r0 >> 2@
        VSHR.S32                        Q11, Q1, #2                                                                             @ t1 = r1 >> 2@
-       
+
        VSUB.S32                        Q0,     Q10, Q2                                                                         @ r0 = t0 - r2@
        VSUB.S32                        Q1,     Q11, Q3                                                                         @ r1 = t1 - r3@
        VADD.S32                        Q2, Q10, Q2                                                                             @ r2 = t0 + r2@
        VADD.S32                        Q3, Q11, Q3                                                                             @ r3 = t1 + r3@
-               
-       VLD2.I32                        {D8, D9, D10, D11}, [r8]        
-       VLD2.I32                        {D28, D29, D30, D31}, [r6]!     
+
+       VLD2.I32                        {D8, D9, D10, D11}, [r8]
+       VLD2.I32                        {D28, D29, D30, D31}, [r6]!
        add                                             r8, r8, r5
 
        VQDMULH.S32             Q10, Q4, Q14                                                                    @ MULHIGH(cosx, t0)
        VQDMULH.S32             Q11, Q5, Q15                                                                    @ MULHIGH(sinx, t1)
        VQDMULH.S32             Q12, Q5, Q14                                                                    @ MULHIGH(cosx, t1)
        VQDMULH.S32             Q13, Q4, Q15                                                                    @ MULHIGH(sinx, t0)
-               
+
        VADD.S32                        Q8, Q10, Q11                                                                    @ MULHIGH(cosx, t0) + MULHIGH(sinx, t1)
-       VSUB.S32                        Q9, Q12, Q13                                                                    @ MULHIGH(cosx, t1) - MULHIGH(sinx, t0) 
-       
-       VLD2.I32                {D12, D13, D14, D15}, [r8]      
+       VSUB.S32                        Q9, Q12, Q13                                                                    @ MULHIGH(cosx, t1) - MULHIGH(sinx, t0)
+
+       VLD2.I32                {D12, D13, D14, D15}, [r8]
        VLD2.I32                {D28, D29, D30, D31}, [r6]!
-       
+
        VQDMULH.S32             Q10, Q6, Q14                                                                    @ MULHIGH(cosx, t0)
        VQDMULH.S32             Q11, Q7, Q15                                                                    @ MULHIGH(sinx, t1)
        VQDMULH.S32             Q12, Q7, Q14                                                                    @ MULHIGH(cosx, t1)
        VQDMULH.S32             Q13, Q6, Q15                                                                    @ MULHIGH(sinx, t0)
-               
+
        VADD.S32                        Q6, Q10, Q11                                                                    @ MULHIGH(cosx, t0) + MULHIGH(sinx, t1)
-       VSUB.S32                        Q7, Q12, Q13                                                                    @ MULHIGH(cosx, t1) - MULHIGH(sinx, t0)         
-       
+       VSUB.S32                        Q7, Q12, Q13                                                                    @ MULHIGH(cosx, t1) - MULHIGH(sinx, t0)
+
        VADD.S32                        Q4, Q8, Q6                                                                              @ r4 = t0 + r6@
        VSUB.S32                        Q5, Q7, Q9                                                                              @ r5 = r7 - t1@
        VSUB.S32                        Q6, Q8, Q6                                                                              @ r6 = t0 - r6@
        VADD.S32                        Q7, Q7, Q9                                                                              @ r7 = r7 + t1@
-       
+
        VADD.S32                        Q8, Q0, Q5                                                                              @ xptr[0] = r0 + r5@
        VADD.S32                        Q9, Q1, Q6                                                                              @ xptr[1] = r1 + r6@
        VST2.I32                        {D16, D17, D18, D19}, [r8]
-       
+
        VSUB.S32                        Q10, Q2, Q4                                                                             @ xptr[0] = r2 - r4@
        sub                                     r8, r8, r5                                                                              @ xptr -= step@
        VSUB.S32                        Q11, Q3, Q7                                                                             @ xptr[1] = r3 - r7@
        VST2.I32                        {D20, D21, D22, D23}, [r8]
-               
+
        VSUB.S32                        Q8, Q0, Q5                                                                              @ xptr[0] = r0 - r5@
        sub                                     r8, r8, r5                                                                              @ xptr -= step@
        VSUB.S32                        Q9, Q1, Q6                                                                              @ xptr[1] = r1 - r6@
        VST2.I32                        {D16, D17, D18, D19}, [r8]
-               
+
        VADD.S32                        Q10, Q2, Q4                                                                             @ xptr[0] = r2 + r4@
        sub                                     r8, r8, r5                                                                              @ xptr -= step@
        VADD.S32                        Q11, Q3, Q7                                                                             @ xptr[1] = r3 + r7@
        VST2.I32                        {D20, D21, D22, D23}, [r8]!
-               
-       subs                            r4, r4, #4 
-       bne                             Radix4FFT_LOOP3 
-                                
-Radix4FFT_LOOP2_END:                         
-       add                             r8, r8, r12    
-       sub                             r7, r7, #1     
+
+       subs                            r4, r4, #4
+       bne                             Radix4FFT_LOOP3
+
+Radix4FFT_LOOP2_END:
+       add                             r8, r8, r12
+       sub                             r7, r7, #1
        cmp                                     r7, #0
-       bhi                             Radix4FFT_LOOP2           
-                        
-Radix4FFT_LOOP1_END:                        
-       add                             r3, r12, r3    
-       mov                             r2, r2, lsl #2 
-       movs                            r1, r1, asr #2 
-       bne                             Radix4FFT_LOOP1          
-                        
-Radix4FFT_END:        
+       bhi                             Radix4FFT_LOOP2
+
+Radix4FFT_LOOP1_END:
+       add                             r3, r12, r3
+       mov                             r2, r2, lsl #2
+       movs                            r1, r1, asr #2
+       bne                             Radix4FFT_LOOP1
+
+Radix4FFT_END:
        ldmia                           sp!, {r4 - r11, pc}
-               
+
        @ENDP  @ |Radix4FFT|
        .end
\ No newline at end of file
index 89c39b6..7501af1 100644 (file)
@@ -37,18 +37,18 @@ void CalcBandEnergy(const Word32 *mdctSpectrum,
                     Word32       *bandEnergySum)
 {
   Word32 i, j;
-  Word32 accuSum = 0;                                            
+  Word32 accuSum = 0;
 
   for (i=0; i<numBands; i++) {
-    Word32 accu = 0;                                             
+    Word32 accu = 0;
     for (j=bandOffset[i]; j<bandOffset[i+1]; j++)
       accu = L_add(accu, MULHIGH(mdctSpectrum[j], mdctSpectrum[j]));
 
        accu = L_add(accu, accu);
     accuSum = L_add(accuSum, accu);
-    bandEnergy[i] = accu;                                        
+    bandEnergy[i] = accu;
   }
-  *bandEnergySum = accuSum;                                      
+  *bandEnergySum = accuSum;
 }
 
 /********************************************************************************
@@ -68,15 +68,15 @@ void CalcBandEnergyMS(const Word32 *mdctSpectrumLeft,
 {
 
   Word32 i, j;
-  Word32 accuMidSum = 0;        
-  Word32 accuSideSum = 0;                                          
+  Word32 accuMidSum = 0;
+  Word32 accuSideSum = 0;
+
 
   for(i=0; i<numBands; i++) {
     Word32 accuMid = 0;
-    Word32 accuSide = 0;                                           
+    Word32 accuSide = 0;
     for (j=bandOffset[i]; j<bandOffset[i+1]; j++) {
-      Word32 specm, specs; 
+      Word32 specm, specs;
       Word32 l, r;
 
       l = mdctSpectrumLeft[j] >> 1;
@@ -86,17 +86,17 @@ void CalcBandEnergyMS(const Word32 *mdctSpectrumLeft,
       accuMid = L_add(accuMid, MULHIGH(specm, specm));
       accuSide = L_add(accuSide, MULHIGH(specs, specs));
     }
-    
+
        accuMid = L_add(accuMid, accuMid);
        accuSide = L_add(accuSide, accuSide);
-       bandEnergyMid[i] = accuMid;                                  
+       bandEnergyMid[i] = accuMid;
     accuMidSum = L_add(accuMidSum, accuMid);
-    bandEnergySide[i] = accuSide;                                
+    bandEnergySide[i] = accuSide;
     accuSideSum = L_add(accuSideSum, accuSide);
-    
+
   }
-  *bandEnergyMidSum = accuMidSum;                                
-  *bandEnergySideSum = accuSideSum;                              
+  *bandEnergyMidSum = accuMidSum;
+  *bandEnergySideSum = accuSideSum;
 }
 
 #endif
\ No newline at end of file
index 8853efc..9fe511c 100644 (file)
 #define HI_LTAB(a) (a>>8)
 #define LO_LTAB(a) (a & 0xff)
 
-#define EXPAND(a)  ((((Word32)(a&0xff00)) << 8)|(Word32)(a&0xff)) 
+#define EXPAND(a)  ((((Word32)(a&0xff00)) << 8)|(Word32)(a&0xff))
 
 
 /*****************************************************************************
 *
 * function name: count1_2_3_4_5_6_7_8_9_10_11
-* description:  counts tables 1-11 
-* returns:      
+* description:  counts tables 1-11
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for tables 1-11
 *
@@ -46,51 +46,51 @@ static void count1_2_3_4_5_6_7_8_9_10_11(const Word16 *values,
   Word32 t0,t1,t2,t3,i;
   Word32 bc1_2,bc3_4,bc5_6,bc7_8,bc9_10;
   Word16 bc11,sc;
-  
-  bc1_2=0;                               
-  bc3_4=0;                               
-  bc5_6=0;                               
-  bc7_8=0;                               
-  bc9_10=0;                              
-  bc11=0;                                
-  sc=0;                                  
+
+  bc1_2=0;
+  bc3_4=0;
+  bc5_6=0;
+  bc7_8=0;
+  bc9_10=0;
+  bc11=0;
+  sc=0;
 
   for(i=0;i<width;i+=4){
-    
-    t0= values[i+0];                     
-    t1= values[i+1];                     
-    t2= values[i+2];                     
-    t3= values[i+3];                     
-  
+
+    t0= values[i+0];
+    t1= values[i+1];
+    t2= values[i+2];
+    t3= values[i+3];
+
     /* 1,2 */
 
-    bc1_2 = bc1_2 + EXPAND(huff_ltab1_2[t0+1][t1+1][t2+1][t3+1]);              
+    bc1_2 = bc1_2 + EXPAND(huff_ltab1_2[t0+1][t1+1][t2+1][t3+1]);
 
     /* 5,6 */
-    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t0+4][t1+4]);                          
-    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t2+4][t3+4]);                          
+    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t0+4][t1+4]);
+    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t2+4][t3+4]);
 
     t0=ABS(t0);
     t1=ABS(t1);
     t2=ABS(t2);
     t3=ABS(t3);
 
-    
-    bc3_4 = bc3_4 + EXPAND(huff_ltab3_4[t0][t1][t2][t3]);                      
-    
-    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);                              
-    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t2][t3]);                              
-    
-    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);                           
-    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t2][t3]);                           
-    
+
+    bc3_4 = bc3_4 + EXPAND(huff_ltab3_4[t0][t1][t2][t3]);
+
+    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);
+    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t2][t3]);
+
+    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);
+    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t2][t3]);
+
     bc11 = bc11 + huff_ltab11[t0][t1];
     bc11 = bc11 + huff_ltab11[t2][t3];
-   
-           
+
+
     sc = sc + (t0>0) + (t1>0) + (t2>0) + (t3>0);
   }
-  
+
   bitCount[1]=extract_h(bc1_2);
   bitCount[2]=extract_l(bc1_2);
   bitCount[3]=extract_h(bc3_4) + sc;
@@ -108,8 +108,8 @@ static void count1_2_3_4_5_6_7_8_9_10_11(const Word16 *values,
 /*****************************************************************************
 *
 * function name: count3_4_5_6_7_8_9_10_11
-* description:  counts tables 3-11 
-* returns:      
+* description:  counts tables 3-11
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for tables 3-11
 *
@@ -122,26 +122,26 @@ static void count3_4_5_6_7_8_9_10_11(const Word16 *values,
   Word32 t0,t1,t2,t3, i;
   Word32 bc3_4,bc5_6,bc7_8,bc9_10;
   Word16 bc11,sc;
-    
-  bc3_4=0;                               
-  bc5_6=0;                               
-  bc7_8=0;                               
-  bc9_10=0;                              
-  bc11=0;                                
-  sc=0;                                  
+
+  bc3_4=0;
+  bc5_6=0;
+  bc7_8=0;
+  bc9_10=0;
+  bc11=0;
+  sc=0;
 
   for(i=0;i<width;i+=4){
 
-    t0= values[i+0];                     
-    t1= values[i+1];                     
-    t2= values[i+2];                     
-    t3= values[i+3];                     
-    
+    t0= values[i+0];
+    t1= values[i+1];
+    t2= values[i+2];
+    t3= values[i+3];
+
     /*
       5,6
     */
-    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t0+4][t1+4]);                          
-    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t2+4][t3+4]);                          
+    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t0+4][t1+4]);
+    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t2+4][t3+4]);
 
     t0=ABS(t0);
     t1=ABS(t1);
@@ -149,23 +149,23 @@ static void count3_4_5_6_7_8_9_10_11(const Word16 *values,
     t3=ABS(t3);
 
 
-    bc3_4 = bc3_4 + EXPAND(huff_ltab3_4[t0][t1][t2][t3]);                      
-                                                                                                                
-    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);                              
-    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t2][t3]);                              
-    
-    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);                           
-    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t2][t3]);                           
-                                                                                                                
+    bc3_4 = bc3_4 + EXPAND(huff_ltab3_4[t0][t1][t2][t3]);
+
+    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);
+    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t2][t3]);
+
+    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);
+    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t2][t3]);
+
     bc11 = bc11 + huff_ltab11[t0][t1];
     bc11 = bc11 + huff_ltab11[t2][t3];
 
-           
-    sc = sc + (t0>0) + (t1>0) + (t2>0) + (t3>0);   
+
+    sc = sc + (t0>0) + (t1>0) + (t2>0) + (t3>0);
   }
-  
-  bitCount[1]=INVALID_BITCOUNT;                          
-  bitCount[2]=INVALID_BITCOUNT;                          
+
+  bitCount[1]=INVALID_BITCOUNT;
+  bitCount[2]=INVALID_BITCOUNT;
   bitCount[3]=extract_h(bc3_4) + sc;
   bitCount[4]=extract_l(bc3_4) + sc;
   bitCount[5]=extract_h(bc5_6);
@@ -175,7 +175,7 @@ static void count3_4_5_6_7_8_9_10_11(const Word16 *values,
   bitCount[9]=extract_h(bc9_10) + sc;
   bitCount[10]=extract_l(bc9_10) + sc;
   bitCount[11]=bc11 + sc;
-  
+
 }
 
 
@@ -183,8 +183,8 @@ static void count3_4_5_6_7_8_9_10_11(const Word16 *values,
 /*****************************************************************************
 *
 * function name: count5_6_7_8_9_10_11
-* description:  counts tables 5-11 
-* returns:      
+* description:  counts tables 5-11
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for tables 5-11
 *
@@ -198,33 +198,33 @@ static void count5_6_7_8_9_10_11(const Word16 *values,
   Word32 bc5_6,bc7_8,bc9_10;
   Word16 bc11,sc;
 
-  bc5_6=0;                               
-  bc7_8=0;                               
-  bc9_10=0;                              
-  bc11=0;                                
-  sc=0;                                  
+  bc5_6=0;
+  bc7_8=0;
+  bc9_10=0;
+  bc11=0;
+  sc=0;
 
   for(i=0;i<width;i+=2){
 
-    t0 = values[i+0];                    
-    t1 = values[i+1];                    
+    t0 = values[i+0];
+    t1 = values[i+1];
 
-    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t0+4][t1+4]);                  
+    bc5_6 = bc5_6 + EXPAND(huff_ltab5_6[t0+4][t1+4]);
 
     t0=ABS(t0);
     t1=ABS(t1);
-     
-    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);                      
-    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);                   
+
+    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);
+    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);
     bc11 = bc11 + huff_ltab11[t0][t1];
-    
-       
+
+
     sc = sc + (t0>0) + (t1>0);
   }
-  bitCount[1]=INVALID_BITCOUNT;                          
-  bitCount[2]=INVALID_BITCOUNT;                          
-  bitCount[3]=INVALID_BITCOUNT;                          
-  bitCount[4]=INVALID_BITCOUNT;                          
+  bitCount[1]=INVALID_BITCOUNT;
+  bitCount[2]=INVALID_BITCOUNT;
+  bitCount[3]=INVALID_BITCOUNT;
+  bitCount[4]=INVALID_BITCOUNT;
   bitCount[5]=extract_h(bc5_6);
   bitCount[6]=extract_l(bc5_6);
   bitCount[7]=extract_h(bc7_8) + sc;
@@ -232,15 +232,15 @@ static void count5_6_7_8_9_10_11(const Word16 *values,
   bitCount[9]=extract_h(bc9_10) + sc;
   bitCount[10]=extract_l(bc9_10) + sc;
   bitCount[11]=bc11 + sc;
-  
+
 }
 
 
 /*****************************************************************************
 *
 * function name: count7_8_9_10_11
-* description:  counts tables 7-11 
-* returns:      
+* description:  counts tables 7-11
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for tables 7-11
 *
@@ -253,43 +253,43 @@ static void count7_8_9_10_11(const Word16 *values,
   Word32 t0,t1, i;
   Word32 bc7_8,bc9_10;
   Word16 bc11,sc;
-    
-  bc7_8=0;                       
-  bc9_10=0;                      
-  bc11=0;                        
-  sc=0;                          
+
+  bc7_8=0;
+  bc9_10=0;
+  bc11=0;
+  sc=0;
 
   for(i=0;i<width;i+=2){
 
     t0=ABS(values[i+0]);
     t1=ABS(values[i+1]);
 
-    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);                      
-    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);                   
+    bc7_8 = bc7_8 + EXPAND(huff_ltab7_8[t0][t1]);
+    bc9_10 = bc9_10 + EXPAND(huff_ltab9_10[t0][t1]);
     bc11 = bc11 + huff_ltab11[t0][t1];
-   
-       
+
+
     sc = sc + (t0>0) + (t1>0);
   }
-  bitCount[1]=INVALID_BITCOUNT;                  
-  bitCount[2]=INVALID_BITCOUNT;                  
-  bitCount[3]=INVALID_BITCOUNT;                  
-  bitCount[4]=INVALID_BITCOUNT;                  
-  bitCount[5]=INVALID_BITCOUNT;                  
-  bitCount[6]=INVALID_BITCOUNT;                  
+  bitCount[1]=INVALID_BITCOUNT;
+  bitCount[2]=INVALID_BITCOUNT;
+  bitCount[3]=INVALID_BITCOUNT;
+  bitCount[4]=INVALID_BITCOUNT;
+  bitCount[5]=INVALID_BITCOUNT;
+  bitCount[6]=INVALID_BITCOUNT;
   bitCount[7]=extract_h(bc7_8) + sc;
   bitCount[8]=extract_l(bc7_8) + sc;
   bitCount[9]=extract_h(bc9_10) + sc;
   bitCount[10]=extract_l(bc9_10) + sc;
   bitCount[11]=bc11 + sc;
-  
+
 }
 
 /*****************************************************************************
 *
 * function name: count9_10_11
-* description:  counts tables 9-11 
-* returns:      
+* description:  counts tables 9-11
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for tables 9-11
 *
@@ -299,45 +299,45 @@ static void count9_10_11(const Word16 *values,
                          Word16       *bitCount)
 {
 
-  Word32 t0,t1,i;  
+  Word32 t0,t1,i;
   Word32 bc9_10;
   Word16 bc11,sc;
 
-  bc9_10=0;                              
-  bc11=0;                                
-  sc=0;                                  
+  bc9_10=0;
+  bc11=0;
+  sc=0;
 
   for(i=0;i<width;i+=2){
 
     t0=ABS(values[i+0]);
     t1=ABS(values[i+1]);
-    
 
-    bc9_10 += EXPAND(huff_ltab9_10[t0][t1]);           
+
+    bc9_10 += EXPAND(huff_ltab9_10[t0][t1]);
     bc11 = bc11 + huff_ltab11[t0][t1];
 
-       
+
     sc = sc + (t0>0) + (t1>0);
   }
-  bitCount[1]=INVALID_BITCOUNT;          
-  bitCount[2]=INVALID_BITCOUNT;          
-  bitCount[3]=INVALID_BITCOUNT;          
-  bitCount[4]=INVALID_BITCOUNT;          
-  bitCount[5]=INVALID_BITCOUNT;          
-  bitCount[6]=INVALID_BITCOUNT;          
-  bitCount[7]=INVALID_BITCOUNT;          
-  bitCount[8]=INVALID_BITCOUNT;          
+  bitCount[1]=INVALID_BITCOUNT;
+  bitCount[2]=INVALID_BITCOUNT;
+  bitCount[3]=INVALID_BITCOUNT;
+  bitCount[4]=INVALID_BITCOUNT;
+  bitCount[5]=INVALID_BITCOUNT;
+  bitCount[6]=INVALID_BITCOUNT;
+  bitCount[7]=INVALID_BITCOUNT;
+  bitCount[8]=INVALID_BITCOUNT;
   bitCount[9]=extract_h(bc9_10) + sc;
   bitCount[10]=extract_l(bc9_10) + sc;
   bitCount[11]=bc11 + sc;
-  
+
 }
+
 /*****************************************************************************
 *
 * function name: count11
-* description:  counts table 11 
-* returns:      
+* description:  counts table 11
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for table 11
 *
@@ -347,37 +347,37 @@ static void count9_10_11(const Word16 *values,
                     Word16        *bitCount)
 {
   Word32 t0,t1,i;
-  Word16 bc11,sc;  
+  Word16 bc11,sc;
 
-  bc11=0;                        
-  sc=0;                          
+  bc11=0;
+  sc=0;
   for(i=0;i<width;i+=2){
     t0=ABS(values[i+0]);
     t1=ABS(values[i+1]);
     bc11 = bc11 + huff_ltab11[t0][t1];
 
-       
+
     sc = sc + (t0>0) + (t1>0);
   }
 
-  bitCount[1]=INVALID_BITCOUNT;                  
-  bitCount[2]=INVALID_BITCOUNT;                  
-  bitCount[3]=INVALID_BITCOUNT;                  
-  bitCount[4]=INVALID_BITCOUNT;                  
-  bitCount[5]=INVALID_BITCOUNT;                  
-  bitCount[6]=INVALID_BITCOUNT;                  
-  bitCount[7]=INVALID_BITCOUNT;                  
-  bitCount[8]=INVALID_BITCOUNT;                  
-  bitCount[9]=INVALID_BITCOUNT;                  
-  bitCount[10]=INVALID_BITCOUNT;                 
+  bitCount[1]=INVALID_BITCOUNT;
+  bitCount[2]=INVALID_BITCOUNT;
+  bitCount[3]=INVALID_BITCOUNT;
+  bitCount[4]=INVALID_BITCOUNT;
+  bitCount[5]=INVALID_BITCOUNT;
+  bitCount[6]=INVALID_BITCOUNT;
+  bitCount[7]=INVALID_BITCOUNT;
+  bitCount[8]=INVALID_BITCOUNT;
+  bitCount[9]=INVALID_BITCOUNT;
+  bitCount[10]=INVALID_BITCOUNT;
   bitCount[11]=bc11 + sc;
 }
 
 /*****************************************************************************
 *
 * function name: countEsc
-* description:  counts table 11 (with Esc) 
-* returns:      
+* description:  counts table 11 (with Esc)
+* returns:
 * input:        quantized spectrum
 * output:       bitCount for tables 11 (with Esc)
 *
@@ -388,31 +388,31 @@ static void countEsc(const Word16 *values,
                      Word16       *bitCount)
 {
   Word32 t0,t1,t00,t01,i;
-  Word16 bc11,ec,sc;  
+  Word16 bc11,ec,sc;
 
-  bc11=0;                                
-  sc=0;                                  
-  ec=0;                                  
+  bc11=0;
+  sc=0;
+  ec=0;
   for(i=0;i<width;i+=2){
     t0=ABS(values[i+0]);
     t1=ABS(values[i+1]);
-    
-       
+
+
     sc = sc + (t0>0) + (t1>0);
 
     t00 = min(t0,16);
     t01 = min(t1,16);
     bc11 = bc11 + huff_ltab11[t00][t01];
-    
-     
+
+
     if(t0 >= 16){
       ec = ec + 5;
       while(sub(t0=(t0 >> 1), 16) >= 0) {
         ec = ec + 2;
       }
     }
-    
-     
+
+
     if(t1 >= 16){
       ec = ec + 5;
       while(sub(t1=(t1 >> 1), 16) >= 0) {
@@ -420,16 +420,16 @@ static void countEsc(const Word16 *values,
       }
     }
   }
-  bitCount[1]=INVALID_BITCOUNT;          
-  bitCount[2]=INVALID_BITCOUNT;          
-  bitCount[3]=INVALID_BITCOUNT;          
-  bitCount[4]=INVALID_BITCOUNT;          
-  bitCount[5]=INVALID_BITCOUNT;          
-  bitCount[6]=INVALID_BITCOUNT;          
-  bitCount[7]=INVALID_BITCOUNT;          
-  bitCount[8]=INVALID_BITCOUNT;          
-  bitCount[9]=INVALID_BITCOUNT;          
-  bitCount[10]=INVALID_BITCOUNT;         
+  bitCount[1]=INVALID_BITCOUNT;
+  bitCount[2]=INVALID_BITCOUNT;
+  bitCount[3]=INVALID_BITCOUNT;
+  bitCount[4]=INVALID_BITCOUNT;
+  bitCount[5]=INVALID_BITCOUNT;
+  bitCount[6]=INVALID_BITCOUNT;
+  bitCount[7]=INVALID_BITCOUNT;
+  bitCount[8]=INVALID_BITCOUNT;
+  bitCount[9]=INVALID_BITCOUNT;
+  bitCount[10]=INVALID_BITCOUNT;
   bitCount[11]=bc11 + sc + ec;
 }
 
@@ -463,7 +463,7 @@ static COUNT_FUNCTION countFuncTable[CODE_BOOK_ESC_LAV+1] =
 /*****************************************************************************
 *
 * function name: bitCount
-* description:  count bits 
+* description:  count bits
 *
 *****************************************************************************/
 Word16 bitCount(const Word16 *values,
@@ -474,7 +474,7 @@ Word16 bitCount(const Word16 *values,
   /*
     check if we can use codebook 0
   */
-     
+
   if(maxVal == 0)
     bitCount[0] = 0;
   else
@@ -489,7 +489,7 @@ Word16 bitCount(const Word16 *values,
 /*****************************************************************************
 *
 * function name: codeValues
-* description:  write huffum bits 
+* description:  write huffum bits
 *
 *****************************************************************************/
 Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF hBitstream)
@@ -499,85 +499,85 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
   UWord16 codeWord, codeLength;
   Word16 sign, signLength;
 
-   
+
   switch (codeBook) {
     case CODE_BOOK_ZERO_NO:
       break;
 
     case CODE_BOOK_1_NO:
       for(i=0; i<width; i+=4) {
-        t0         = values[i+0];                                        
-        t1         = values[i+1];                                        
-        t2         = values[i+2];                                        
-        t3         = values[i+3];                                        
-        codeWord   = huff_ctab1[t0+1][t1+1][t2+1][t3+1];                 
-        codeLength = HI_LTAB(huff_ltab1_2[t0+1][t1+1][t2+1][t3+1]);      
-        WriteBits(hBitstream, codeWord, codeLength);        
+        t0         = values[i+0];
+        t1         = values[i+1];
+        t2         = values[i+2];
+        t3         = values[i+3];
+        codeWord   = huff_ctab1[t0+1][t1+1][t2+1][t3+1];
+        codeLength = HI_LTAB(huff_ltab1_2[t0+1][t1+1][t2+1][t3+1]);
+        WriteBits(hBitstream, codeWord, codeLength);
       }
       break;
 
     case CODE_BOOK_2_NO:
       for(i=0; i<width; i+=4) {
-        t0         = values[i+0];                                        
-        t1         = values[i+1];                                        
-        t2         = values[i+2];                                        
-        t3         = values[i+3];                                        
-        codeWord   = huff_ctab2[t0+1][t1+1][t2+1][t3+1];                 
-        codeLength = LO_LTAB(huff_ltab1_2[t0+1][t1+1][t2+1][t3+1]);      
+        t0         = values[i+0];
+        t1         = values[i+1];
+        t2         = values[i+2];
+        t3         = values[i+3];
+        codeWord   = huff_ctab2[t0+1][t1+1][t2+1][t3+1];
+        codeLength = LO_LTAB(huff_ltab1_2[t0+1][t1+1][t2+1][t3+1]);
         WriteBits(hBitstream,codeWord,codeLength);
       }
       break;
 
     case CODE_BOOK_3_NO:
       for(i=0; i<width; i+=4) {
-        sign=0;                                                          
-        signLength=0;                                                    
-        t0 = values[i+0];                                                
-         
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
         if(t0 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
+          sign = sign << 1;
+
           if(t0 < 0){
-            sign|=1;                                                     
+            sign|=1;
             t0=-t0;
           }
         }
-        t1 = values[i+1];                                                
-         
+        t1 = values[i+1];
+
         if(t1 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
+          sign = sign << 1;
+
           if(t1 < 0){
-            sign|=1;                                                     
+            sign|=1;
             t1=-t1;
           }
         }
-        t2 = values[i+2];                                                
-         
+        t2 = values[i+2];
+
         if(t2 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
+          sign = sign << 1;
+
           if(t2 < 0){
-            sign|=1;                                                     
+            sign|=1;
             t2=-t2;
           }
         }
-        t3 = values[i+3];                                                
+        t3 = values[i+3];
         if(t3 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
+          sign = sign << 1;
+
           if(t3 < 0){
-            sign|=1;                                                     
+            sign|=1;
             t3=-t3;
           }
         }
 
-        codeWord   = huff_ctab3[t0][t1][t2][t3];                         
-        codeLength = HI_LTAB(huff_ltab3_4[t0][t1][t2][t3]);              
+        codeWord   = huff_ctab3[t0][t1][t2][t3];
+        codeLength = HI_LTAB(huff_ltab3_4[t0][t1][t2][t3]);
         WriteBits(hBitstream,codeWord,codeLength);
         WriteBits(hBitstream,sign,signLength);
       }
@@ -585,107 +585,107 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
 
     case CODE_BOOK_4_NO:
       for(i=0; i<width; i+=4) {
-        sign=0;                                                          
-        signLength=0;                                                    
-        t0 = values[i+0];                                                
-         
-        if(t0 != 0){                                                             
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
+        if(t0 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-          if(t0 < 0){                                                            
-            sign|=1;                                                     
-            t0=-t0;                                                          
+          sign = sign << 1;
+          if(t0 < 0){
+            sign|=1;
+            t0=-t0;
           }
-        }                                                                        
-        t1 = values[i+1];                                                
-         
-        if(t1 != 0){                                                             
+        }
+        t1 = values[i+1];
+
+        if(t1 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
-          if(t1 < 0){                                                            
-            sign|=1;                                                     
-            t1=-t1;                                                          
-          }                                                                      
-        }                                                                        
-        t2 = values[i+2];                                                
-         
-        if(t2 != 0){                                                    
+          sign = sign << 1;
+
+          if(t1 < 0){
+            sign|=1;
+            t1=-t1;
+          }
+        }
+        t2 = values[i+2];
+
+        if(t2 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
-          if(t2 < 0){                                                   
-            sign|=1;                                                     
-            t2=-t2;                                                 
-          }                                                             
-        }                                                               
-        t3 = values[i+3];                                                
-         
-        if(t3 != 0){                                                    
+          sign = sign << 1;
+
+          if(t2 < 0){
+            sign|=1;
+            t2=-t2;
+          }
+        }
+        t3 = values[i+3];
+
+        if(t3 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
-          if(t3 < 0){                                                   
-            sign|=1;                                                     
-            t3=-t3;                                                 
-          }                                                             
-        }                                                               
-        codeWord   = huff_ctab4[t0][t1][t2][t3];                         
-        codeLength = LO_LTAB(huff_ltab3_4[t0][t1][t2][t3]);              
-        WriteBits(hBitstream,codeWord,codeLength);                      
-        WriteBits(hBitstream,sign,signLength);                          
-      }                                                                 
-      break;                                                            
-                                                                        
-    case CODE_BOOK_5_NO:                                                
-      for(i=0; i<width; i+=2) {                                         
-        t0         = values[i+0];                                         
-        t1         = values[i+1];                                        
-        codeWord   = huff_ctab5[t0+4][t1+4];                             
-        codeLength = HI_LTAB(huff_ltab5_6[t0+4][t1+4]);                  
+          sign = sign << 1;
+
+          if(t3 < 0){
+            sign|=1;
+            t3=-t3;
+          }
+        }
+        codeWord   = huff_ctab4[t0][t1][t2][t3];
+        codeLength = LO_LTAB(huff_ltab3_4[t0][t1][t2][t3]);
+        WriteBits(hBitstream,codeWord,codeLength);
+        WriteBits(hBitstream,sign,signLength);
+      }
+      break;
+
+    case CODE_BOOK_5_NO:
+      for(i=0; i<width; i+=2) {
+        t0         = values[i+0];
+        t1         = values[i+1];
+        codeWord   = huff_ctab5[t0+4][t1+4];
+        codeLength = HI_LTAB(huff_ltab5_6[t0+4][t1+4]);
         WriteBits(hBitstream,codeWord,codeLength);
       }
       break;
 
     case CODE_BOOK_6_NO:
       for(i=0; i<width; i+=2) {
-        t0         = values[i+0];                                        
-        t1         = values[i+1];                                        
-        codeWord   = huff_ctab6[t0+4][t1+4];                             
-        codeLength = LO_LTAB(huff_ltab5_6[t0+4][t1+4]);                  
+        t0         = values[i+0];
+        t1         = values[i+1];
+        codeWord   = huff_ctab6[t0+4][t1+4];
+        codeLength = LO_LTAB(huff_ltab5_6[t0+4][t1+4]);
         WriteBits(hBitstream,codeWord,codeLength);
       }
       break;
 
     case CODE_BOOK_7_NO:
       for(i=0; i<width; i+=2){
-        sign=0;                                                          
-        signLength=0;                                                    
-        t0 = values[i+0];                                                
-         
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
         if(t0 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
+          sign = sign << 1;
+
           if(t0 < 0){
-            sign|=1;                                                     
+            sign|=1;
             t0=-t0;
           }
         }
 
-        t1 = values[i+1];                                                
-         
+        t1 = values[i+1];
+
         if(t1 != 0){
           signLength = signLength + 1;
-          sign = sign << 1; 
-           
+          sign = sign << 1;
+
           if(t1 < 0){
-            sign|=1;                                                     
+            sign|=1;
             t1=-t1;
           }
         }
-        codeWord   = huff_ctab7[t0][t1];                                 
-        codeLength = HI_LTAB(huff_ltab7_8[t0][t1]);                      
+        codeWord   = huff_ctab7[t0][t1];
+        codeLength = HI_LTAB(huff_ltab7_8[t0][t1]);
         WriteBits(hBitstream,codeWord,codeLength);
         WriteBits(hBitstream,sign,signLength);
       }
@@ -693,33 +693,33 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
 
     case CODE_BOOK_8_NO:
       for(i=0; i<width; i+=2) {
-        sign=0;                                                          
-        signLength=0;                                                    
-        t0 = values[i+0];                                                
-                                                                           
-        if(t0 != 0){                                                             
-          signLength = signLength + 1;                                       
-          sign = sign << 1;                                                   
-                                                                           
-          if(t0 < 0){                                                            
-            sign|=1;                                                     
-            t0=-t0;                                                        
-          }                                                                      
-        }                                                                        
-                                                                                 
-        t1 = values[i+1];                                                
-                                                                           
-        if(t1 != 0){                                                             
-          signLength = signLength + 1;                                       
-          sign = sign << 1;                                                   
-                                                                           
-          if(t1 < 0){                                                            
-            sign|=1;                                                     
-            t1=-t1;                                                        
-          }                                                                      
-        }                                                                        
-        codeWord   = huff_ctab8[t0][t1];                                 
-        codeLength = LO_LTAB(huff_ltab7_8[t0][t1]);                      
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
+        if(t0 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t0 < 0){
+            sign|=1;
+            t0=-t0;
+          }
+        }
+
+        t1 = values[i+1];
+
+        if(t1 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t1 < 0){
+            sign|=1;
+            t1=-t1;
+          }
+        }
+        codeWord   = huff_ctab8[t0][t1];
+        codeLength = LO_LTAB(huff_ltab7_8[t0][t1]);
         WriteBits(hBitstream,codeWord,codeLength);
         WriteBits(hBitstream,sign,signLength);
       }
@@ -727,33 +727,33 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
 
     case CODE_BOOK_9_NO:
       for(i=0; i<width; i+=2) {
-        sign=0;                                                          
-        signLength=0;                                                    
-        t0 = values[i+0];                                                
-                                                                           
-        if(t0 != 0){                                                             
-          signLength = signLength + 1;                                       
-          sign = sign << 1;                                                   
-                                                                           
-          if(t0 < 0){                                                            
-            sign|=1;                                                     
-            t0=-t0;                                                        
-          }                                                                      
-        }                                                                        
-                                                                                 
-        t1 = values[i+1];                                                
-                                                                           
-        if(t1 != 0){                                                             
-          signLength = signLength + 1;                                       
-          sign = sign << 1;                                                   
-                                                                           
-          if(t1 < 0){                                                            
-            sign|=1;                                                     
-            t1=-t1;                                                        
-          }                                                                      
-        }                                                                        
-        codeWord   = huff_ctab9[t0][t1];                                 
-        codeLength = HI_LTAB(huff_ltab9_10[t0][t1]);                     
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
+        if(t0 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t0 < 0){
+            sign|=1;
+            t0=-t0;
+          }
+        }
+
+        t1 = values[i+1];
+
+        if(t1 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t1 < 0){
+            sign|=1;
+            t1=-t1;
+          }
+        }
+        codeWord   = huff_ctab9[t0][t1];
+        codeLength = HI_LTAB(huff_ltab9_10[t0][t1]);
         WriteBits(hBitstream,codeWord,codeLength);
         WriteBits(hBitstream,sign,signLength);
       }
@@ -761,33 +761,33 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
 
     case CODE_BOOK_10_NO:
       for(i=0; i<width; i+=2) {
-        sign=0;                                                          
-        signLength=0;                                                    
-        t0 = values[i+0];                                                
-                                                                           
-        if(t0 != 0){                                                             
-          signLength = signLength + 1;                                       
-          sign = sign << 1;                                                   
-                                                                           
-          if(t0 < 0){                                                            
-            sign|=1;                                                     
-            t0=-t0;                                                        
-          }                                                                      
-        }                                                                        
-                                                                                 
-        t1 = values[i+1];                                                
-                                                                           
-        if(t1 != 0){                                                             
-          signLength = signLength + 1;                                       
-          sign = sign << 1;                                                   
-                                                                           
-          if(t1 < 0){                                                            
-            sign|=1;                                                     
-            t1=-t1;                                                        
-          }                                                                      
-        }                                                                        
-        codeWord   = huff_ctab10[t0][t1];                                
-        codeLength = LO_LTAB(huff_ltab9_10[t0][t1]);                     
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
+        if(t0 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t0 < 0){
+            sign|=1;
+            t0=-t0;
+          }
+        }
+
+        t1 = values[i+1];
+
+        if(t1 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t1 < 0){
+            sign|=1;
+            t1=-t1;
+          }
+        }
+        codeWord   = huff_ctab10[t0][t1];
+        codeLength = LO_LTAB(huff_ltab9_10[t0][t1]);
         WriteBits(hBitstream,codeWord,codeLength);
         WriteBits(hBitstream,sign,signLength);
       }
@@ -795,45 +795,45 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
 
     case CODE_BOOK_ESC_NO:
       for(i=0; i<width; i+=2) {
-        sign=0;                                                  
-        signLength=0;                                            
-        t0 = values[i+0];                                        
-                                                                   
-        if(t0 != 0){                                                     
-          signLength = signLength + 1;                               
-          sign = sign << 1;                                           
-                                                                   
-          if(t0 < 0){                                                    
-            sign|=1;                                             
-            t0=-t0;                                                
-          }                                                              
-        }                                                                
-                                                                         
-        t1 = values[i+1];                                        
-                                                                   
-        if(t1 != 0){                                                     
-          signLength = signLength + 1;                               
-          sign = sign << 1;                                           
-                                                                   
-          if(t1 < 0){                                                    
-            sign|=1;                                             
-            t1=-t1;                                                
-          }                                                              
-        }                                                                
+        sign=0;
+        signLength=0;
+        t0 = values[i+0];
+
+        if(t0 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t0 < 0){
+            sign|=1;
+            t0=-t0;
+          }
+        }
+
+        t1 = values[i+1];
+
+        if(t1 != 0){
+          signLength = signLength + 1;
+          sign = sign << 1;
+
+          if(t1 < 0){
+            sign|=1;
+            t1=-t1;
+          }
+        }
         t00 = min(t0,16);
         t01 = min(t1,16);
 
-        codeWord   = huff_ctab11[t00][t01];                      
-        codeLength = huff_ltab11[t00][t01];                      
+        codeWord   = huff_ctab11[t00][t01];
+        codeLength = huff_ltab11[t00][t01];
         WriteBits(hBitstream,codeWord,codeLength);
         WriteBits(hBitstream,sign,signLength);
-         
+
         if(t0 >= 16){
           Word16 n, p;
-          n=0;                                                   
-          p=t0;                                                  
+          n=0;
+          p=t0;
           while(sub(p=(p >> 1), 16) >= 0){
-             
+
             WriteBits(hBitstream,1,1);
             n = n + 1;
           }
@@ -841,13 +841,13 @@ Word16 codeValues(Word16 *values, Word16 width, Word16 codeBook, HANDLE_BIT_BUF
           n = n + 4;
           WriteBits(hBitstream,(t0 - (1 << n)),n);
         }
-         
+
         if(t1 >= 16){
           Word16 n, p;
-          n=0;                                                   
-          p=t1;                                                  
+          n=0;
+          p=t1;
           while(sub(p=(p >> 1), 16) >= 0){
-             
+
             WriteBits(hBitstream,1,1);
             n = n + 1;
           }
@@ -871,15 +871,15 @@ Word16 bitCountScalefactorDelta(Word16 delta)
 
 Word16 codeScalefactorDelta(Word16 delta, HANDLE_BIT_BUF hBitstream)
 {
-  Word32 codeWord; 
+  Word32 codeWord;
   Word16 codeLength;
-  
-   
+
+
   if(delta > CODE_BOOK_SCF_LAV || delta < -CODE_BOOK_SCF_LAV)
     return(1);
-  
-  codeWord   = huff_ctabscf[delta + CODE_BOOK_SCF_LAV];            
-  codeLength = huff_ltabscf[delta + CODE_BOOK_SCF_LAV];            
+
+  codeWord   = huff_ctabscf[delta + CODE_BOOK_SCF_LAV];
+  codeLength = huff_ltabscf[delta + CODE_BOOK_SCF_LAV];
   WriteBits(hBitstream,codeWord,codeLength);
   return(0);
 }
index ef13c13..5615ac3 100644 (file)
@@ -32,15 +32,15 @@ static void updateBitBufWordPtr(HANDLE_BIT_BUF hBitBuf,
                                 UWord8 **pBitBufWord,
                                 Word16   cnt)
 {
-  *pBitBufWord += cnt;                                                                  
+  *pBitBufWord += cnt;
+
 
-                                                                                        
   if(*pBitBufWord > hBitBuf->pBitBufEnd) {
-    *pBitBufWord -= (hBitBuf->pBitBufEnd - hBitBuf->pBitBufBase + 1);                   
+    *pBitBufWord -= (hBitBuf->pBitBufEnd - hBitBuf->pBitBufBase + 1);
   }
-                                                                                        
+
   if(*pBitBufWord < hBitBuf->pBitBufBase) {
-    *pBitBufWord += (hBitBuf->pBitBufEnd - hBitBuf->pBitBufBase + 1);                   
+    *pBitBufWord += (hBitBuf->pBitBufEnd - hBitBuf->pBitBufBase + 1);
   }
 }
 
@@ -57,18 +57,18 @@ HANDLE_BIT_BUF CreateBitBuffer(HANDLE_BIT_BUF hBitBuf,
 {
   assert(bitBufSize*8 <= 32768);
 
-  hBitBuf->pBitBufBase = pBitBufBase;                                                    
-  hBitBuf->pBitBufEnd  = pBitBufBase + bitBufSize - 1;                                  
+  hBitBuf->pBitBufBase = pBitBufBase;
+  hBitBuf->pBitBufEnd  = pBitBufBase + bitBufSize - 1;
 
-  hBitBuf->pWriteNext  = pBitBufBase;                                                    
+  hBitBuf->pWriteNext  = pBitBufBase;
 
   hBitBuf->cache       = 0;
-  
-  hBitBuf->wBitPos     = 0;                                                              
-  hBitBuf->cntBits     = 0;   
-  
-  hBitBuf->size        = (bitBufSize << 3);                                             
-  hBitBuf->isValid     = 1;                                                              
+
+  hBitBuf->wBitPos     = 0;
+  hBitBuf->cntBits     = 0;
+
+  hBitBuf->size        = (bitBufSize << 3);
+  hBitBuf->isValid     = 1;
 
   return hBitBuf;
 }
@@ -82,8 +82,8 @@ HANDLE_BIT_BUF CreateBitBuffer(HANDLE_BIT_BUF hBitBuf,
 void DeleteBitBuffer(HANDLE_BIT_BUF *hBitBuf)
 {
   if(*hBitBuf)
-       (*hBitBuf)->isValid = 0;                                                               
-  *hBitBuf = NULL;                                                                       
+       (*hBitBuf)->isValid = 0;
+  *hBitBuf = NULL;
 }
 
 /*****************************************************************************
@@ -96,15 +96,15 @@ void ResetBitBuf(HANDLE_BIT_BUF hBitBuf,
                  UWord8 *pBitBufBase,
                  Word16  bitBufSize)
 {
-  hBitBuf->pBitBufBase = pBitBufBase;                                                    
-  hBitBuf->pBitBufEnd  = pBitBufBase + bitBufSize - 1;                                  
+  hBitBuf->pBitBufBase = pBitBufBase;
+  hBitBuf->pBitBufEnd  = pBitBufBase + bitBufSize - 1;
+
 
-                                                 
-  hBitBuf->pWriteNext  = pBitBufBase;                                                    
+  hBitBuf->pWriteNext  = pBitBufBase;
+
+  hBitBuf->wBitPos     = 0;
+  hBitBuf->cntBits     = 0;
 
-  hBitBuf->wBitPos     = 0;    
-  hBitBuf->cntBits     = 0;    
-  
   hBitBuf->cache          = 0;
 }
 
@@ -117,7 +117,7 @@ void ResetBitBuf(HANDLE_BIT_BUF hBitBuf,
 void CopyBitBuf(HANDLE_BIT_BUF hBitBufSrc,
                 HANDLE_BIT_BUF hBitBufDst)
 {
-  *hBitBufDst = *hBitBufSrc;                                                             
+  *hBitBufDst = *hBitBufSrc;
 }
 
 /*****************************************************************************
@@ -148,25 +148,25 @@ Word16 WriteBits(HANDLE_BIT_BUF hBitBuf,
   if(noBitsToWrite == 0)
          return noBitsToWrite;
 
-  hBitBuf->cntBits += noBitsToWrite;   
+  hBitBuf->cntBits += noBitsToWrite;
 
   wBitPos = hBitBuf->wBitPos;
   wBitPos += noBitsToWrite;
-  writeValue <<= 32 - wBitPos; 
+  writeValue <<= 32 - wBitPos;
   writeValue |= hBitBuf->cache;
-  
-  while (wBitPos >= 8) 
+
+  while (wBitPos >= 8)
   {
          UWord8 tmp;
          tmp = (UWord8)((writeValue >> 24) & 0xFF);
-         
-         *hBitBuf->pWriteNext++ = tmp;         
+
+         *hBitBuf->pWriteNext++ = tmp;
          writeValue <<= 8;
          wBitPos -= 8;
   }
-  
+
   hBitBuf->wBitPos = wBitPos;
   hBitBuf->cache = writeValue;
-                                                                                     
+
   return noBitsToWrite;
 }
index ea34407..fcc12dd 100644 (file)
@@ -46,7 +46,7 @@ static Word32 encodeSpectralData(Word16             *sfbOffset,
   Word16 i,sfb;
   Word16 dbgVal;
   SECTION_INFO* psectioninfo;
-  dbgVal = GetBitsAvail(hBitStream);                                     
+  dbgVal = GetBitsAvail(hBitStream);
 
   for(i=0; i<sectionData->noOfSections; i++) {
     psectioninfo = &(sectionData->sectionInfo[i]);
@@ -100,7 +100,7 @@ static void encodeIcsInfo(Word16 blockType,
   WriteBits(hBitStream,blockType,2);
   WriteBits(hBitStream,windowShape,1);
 
-   
+
   switch(blockType){
     case LONG_WINDOW:
     case START_WINDOW:
@@ -137,30 +137,30 @@ static Word32 encodeSectionData(SECTION_DATA *sectionData,
   Word16 sectLen;
   Word16 i;
   Word16 dbgVal=GetBitsAvail(hBitStream);
-       
 
-   
+
+
   switch(sectionData->blockType)
   {
     case LONG_WINDOW:
     case START_WINDOW:
     case STOP_WINDOW:
-      sectEscapeVal = SECT_ESC_VAL_LONG;                 
-      sectLenBits   = SECT_BITS_LONG;                    
+      sectEscapeVal = SECT_ESC_VAL_LONG;
+      sectLenBits   = SECT_BITS_LONG;
       break;
 
     case SHORT_WINDOW:
-      sectEscapeVal = SECT_ESC_VAL_SHORT;                
-      sectLenBits   = SECT_BITS_SHORT;                   
+      sectEscapeVal = SECT_ESC_VAL_SHORT;
+      sectLenBits   = SECT_BITS_SHORT;
       break;
   }
 
   for(i=0;i<sectionData->noOfSections;i++) {
     WriteBits(hBitStream,sectionData->sectionInfo[i].codeBook,4);
-    sectLen = sectionData->sectionInfo[i].sfbCnt;        
+    sectLen = sectionData->sectionInfo[i].sfbCnt;
 
     while(sectLen >= sectEscapeVal) {
-       
+
       WriteBits(hBitStream,sectEscapeVal,sectLenBits);
       sectLen = sectLen - sectEscapeVal;
     }
@@ -183,24 +183,24 @@ static Word32 encodeScaleFactorData(UWord16        *maxValueInSfb,
 {
   Word16 i,j,lastValScf,deltaScf;
   Word16 dbgVal = GetBitsAvail(hBitStream);
-  SECTION_INFO* psectioninfo; 
+  SECTION_INFO* psectioninfo;
 
-  lastValScf=scalefac[sectionData->firstScf];                    
+  lastValScf=scalefac[sectionData->firstScf];
 
   for(i=0;i<sectionData->noOfSections;i++){
-    psectioninfo = &(sectionData->sectionInfo[i]); 
+    psectioninfo = &(sectionData->sectionInfo[i]);
     if (psectioninfo->codeBook != CODE_BOOK_ZERO_NO){
       for (j=psectioninfo->sfbStart;
            j<psectioninfo->sfbStart+psectioninfo->sfbCnt; j++){
-         
+
         if(maxValueInSfb[j] == 0) {
-          deltaScf = 0;                                          
+          deltaScf = 0;
         }
         else {
           deltaScf = lastValScf - scalefac[j];
-          lastValScf = scalefac[j];                              
+          lastValScf = scalefac[j];
         }
-         
+
         if(codeScalefactorDelta(deltaScf,hBitStream)){
           return(1);
         }
@@ -227,7 +227,7 @@ static void encodeMSInfo(Word16          sfbCnt,
 {
   Word16 sfb, sfbOff;
 
-   
+
   switch(msDigest)
   {
     case MS_NONE:
@@ -242,7 +242,7 @@ static void encodeMSInfo(Word16          sfbCnt,
       WriteBits(hBitStream,SI_MS_MASK_SOME,2);
       for(sfbOff = 0; sfbOff < sfbCnt; sfbOff+=grpSfb) {
         for(sfb=0; sfb<maxSfb; sfb++) {
-             
+
           if(jsFlags[sfbOff+sfb] & MS_ON) {
             WriteBits(hBitStream,1,1);
           }
@@ -272,7 +272,7 @@ static void encodeTnsData(TNS_INFO tnsInfo,
   Word16 coefBits;
   Flag isShort;
 
-       
+
   if (blockType==2) {
     isShort = 1;
     numOfWindows = TRANS_FAC;
@@ -282,52 +282,52 @@ static void encodeTnsData(TNS_INFO tnsInfo,
     numOfWindows = 1;
   }
 
-  tnsPresent=0;                                                  
+  tnsPresent=0;
   for (i=0; i<numOfWindows; i++) {
-     
+
     if (tnsInfo.tnsActive[i]) {
-      tnsPresent=1;                                              
+      tnsPresent=1;
     }
   }
-   
+
   if (tnsPresent==0) {
     WriteBits(hBitStream,0,1);
   }
   else{ /* there is data to be written*/
     WriteBits(hBitStream,1,1); /*data_present */
     for (i=0; i<numOfWindows; i++) {
-       
+
       WriteBits(hBitStream,tnsInfo.tnsActive[i],(isShort?1:2));
-       
+
       if (tnsInfo.tnsActive[i]) {
-         
+
         WriteBits(hBitStream,((tnsInfo.coefRes[i] - 4)==0?1:0),1);
-         
+
         WriteBits(hBitStream,tnsInfo.length[i],(isShort?4:6));
-         
+
         WriteBits(hBitStream,tnsInfo.order[i],(isShort?3:5));
-         
+
         if (tnsInfo.order[i]){
           WriteBits(hBitStream, FILTER_DIRECTION, 1);
-           
+
           if(tnsInfo.coefRes[i] == 4) {
-            coefBits = 3;                                                
+            coefBits = 3;
             for(k=0; k<tnsInfo.order[i]; k++) {
-                 
+
               if (tnsInfo.coef[i*TNS_MAX_ORDER_SHORT+k] > 3 ||
                   tnsInfo.coef[i*TNS_MAX_ORDER_SHORT+k] < -4) {
-                coefBits = 4;                                            
+                coefBits = 4;
                 break;
               }
             }
           }
           else {
-            coefBits = 2;                                                
+            coefBits = 2;
             for(k=0; k<tnsInfo.order[i]; k++) {
-                 
+
               if (tnsInfo.coef[i*TNS_MAX_ORDER_SHORT+k] > 1 ||
                   tnsInfo.coef[i*TNS_MAX_ORDER_SHORT+k] < -2) {
-                coefBits = 3;                                            
+                coefBits = 3;
                 break;
               }
             }
@@ -335,7 +335,7 @@ static void encodeTnsData(TNS_INFO tnsInfo,
           WriteBits(hBitStream, tnsInfo.coefRes[i] - coefBits, 1); /*coef_compres*/
           for (k=0; k<tnsInfo.order[i]; k++ ) {
             static const Word16 rmask[] = {0,1,3,7,15};
-             
+
             WriteBits(hBitStream,tnsInfo.coef[i*TNS_MAX_ORDER_SHORT+k] & rmask[coefBits],coefBits);
           }
         }
@@ -397,7 +397,7 @@ writeIndividualChannelStream(Flag   commonWindow,
 
   encodeGlobalGain(globalGain, logNorm,scf[sectionData->firstScf], hBitStream);
 
-   
+
   if(!commonWindow) {
     encodeIcsInfo(sectionData->blockType, windowShape, groupingMask, sectionData, hBitStream);
   }
@@ -536,7 +536,7 @@ static void writeFillElement( const UWord8 *ancBytes,
     Write fill Element(s):
     amount of a fill element can be 7+X*8 Bits, X element of [0..270]
   */
-    
+
   while(totFillBits >= (3+4)) {
     cnt = min(((totFillBits - (3+4)) >> 3), ((1<<4)-1));
 
@@ -545,7 +545,7 @@ static void writeFillElement( const UWord8 *ancBytes,
 
     totFillBits = totFillBits - (3+4);
 
-     
+
     if ((cnt == (1<<4)-1)) {
 
       esc_count = min( ((totFillBits >> 3) - ((1<<4)-1)), (1<<8)-1);
@@ -555,7 +555,7 @@ static void writeFillElement( const UWord8 *ancBytes,
     }
 
     for(i=0;i<cnt;i++) {
-       
+
       if(ancBytes)
         WriteBits(hBitStream, *ancBytes++,8);
       else
@@ -576,7 +576,7 @@ Word16 WriteBitstream (HANDLE_BIT_BUF hBitStream,
                        ELEMENT_INFO elInfo,
                        QC_OUT *qcOut,
                        PSY_OUT *psyOut,
-                       Word16 *globUsedBits,                                      
+                       Word16 *globUsedBits,
                        const UWord8 *ancBytes,
                                           Word16 sampindex
                        ) /* returns error code */
@@ -586,7 +586,7 @@ Word16 WriteBitstream (HANDLE_BIT_BUF hBitStream,
   Word16 frameBits=0;
 
   /*   struct bitbuffer bsWriteCopy; */
-  bitMarkUp = GetBitsAvail(hBitStream); 
+  bitMarkUp = GetBitsAvail(hBitStream);
   if(qcOut->qcElement.adtsUsed)  /*  write adts header*/
   {
          WriteBits(hBitStream, 0xFFF, 12); /* 12 bit Syncword */
@@ -601,23 +601,23 @@ Word16 WriteBitstream (HANDLE_BIT_BUF hBitStream,
                                                                        6 channels or less, else a channel
                                                                        configuration should be written */
          WriteBits(hBitStream, 0, 1); /* original/copy */
-         WriteBits(hBitStream, 0, 1); /* home */         
-         
+         WriteBits(hBitStream, 0, 1); /* home */
+
          /* Variable ADTS header */
          WriteBits(hBitStream, 0, 1); /* copyr. id. bit */
          WriteBits(hBitStream, 0, 1); /* copyr. id. start */
          WriteBits(hBitStream, *globUsedBits >> 3, 13);
          WriteBits(hBitStream, 0x7FF, 11); /* buffer fullness (0x7FF for VBR) */
-         WriteBits(hBitStream, 0, 2); /* raw data blocks (0+1=1) */  
+         WriteBits(hBitStream, 0, 2); /* raw data blocks (0+1=1) */
   }
 
-  *globUsedBits=0;                                               
+  *globUsedBits=0;
 
   {
 
     Word16 *sfbOffset[2];
     TNS_INFO tnsInfo[2];
-    elementUsedBits = 0;                                         
+    elementUsedBits = 0;
 
     switch (elInfo.elType) {
 
@@ -636,7 +636,7 @@ Word16 WriteBitstream (HANDLE_BIT_BUF hBitStream,
         {
           Word16 msDigest;
           Word16 *msFlags = psyOut->psyOutElement.toolsInfo.msMask;
-          msDigest = psyOut->psyOutElement.toolsInfo.msDigest;                        
+          msDigest = psyOut->psyOutElement.toolsInfo.msDigest;
           sfbOffset[0] =
             psyOut->psyOutChannel[elInfo.ChannelIndex[0]].sfbOffsets;
           sfbOffset[1] =
@@ -668,20 +668,20 @@ Word16 WriteBitstream (HANDLE_BIT_BUF hBitStream,
   }
 
   writeFillElement(NULL,
-                   qcOut->totFillBits, 
+                   qcOut->totFillBits,
                    hBitStream);
 
   WriteBits(hBitStream,ID_END,3);
 
   /* byte alignement */
-  WriteBits(hBitStream,0, (8 - (hBitStream->cntBits & 7)) & 7);          
-  
+  WriteBits(hBitStream,0, (8 - (hBitStream->cntBits & 7)) & 7);
+
   *globUsedBits = *globUsedBits- bitMarkUp;
-  bitMarkUp = GetBitsAvail(hBitStream);                                  
+  bitMarkUp = GetBitsAvail(hBitStream);
   *globUsedBits = *globUsedBits + bitMarkUp;
   frameBits = frameBits + *globUsedBits;
 
-   
+
   if (frameBits !=  (qcOut->totStaticBitsUsed+qcOut->totDynBitsUsed + qcOut->totAncBitsUsed +
                      qcOut->totFillBits + qcOut->alignBits)) {
     return(-1);
index d54e32f..47fd15e 100644 (file)
@@ -52,7 +52,7 @@ CalcWindowEnergy(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
   IIR high pass coeffs
 */
 Word32 hiPassCoeff[BLOCK_SWITCHING_IIR_LEN] = {
-  0xbec8b439, 0x609d4952  /* -0.5095f, 0.7548f */ 
+  0xbec8b439, 0x609d4952  /* -0.5095f, 0.7548f */
 };
 
 static const Word32 accWindowNrgFac = 0x26666666;                   /* factor for accumulating filtered window energies 0.3 */
@@ -76,8 +76,8 @@ Word16 InitBlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
                           const Word32 bitRate, const Word16 nChannels)
 {
   /* select attackRatio */
-           
-  if ((sub(nChannels,1)==0 && L_sub(bitRate, 24000) > 0) || 
+
+  if ((sub(nChannels,1)==0 && L_sub(bitRate, 24000) > 0) ||
       (sub(nChannels,1)>0 && bitRate > (nChannels * 16000))) {
     blockSwitchingControl->invAttackRatio = invAttackRatioHighBr;
   }
@@ -116,7 +116,7 @@ Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
 
   /* Reset grouping info */
   for (i=0; i<TRANS_FAC; i++) {
-    blockSwitchingControl->groupLen[i] = 0;                                      
+    blockSwitchingControl->groupLen[i] = 0;
   }
 
 
@@ -125,21 +125,21 @@ Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
                                                           &blockSwitchingControl->attackIndex,
                                                           BLOCK_SWITCH_WINDOWS);
 
-  blockSwitchingControl->attackIndex = blockSwitchingControl->lastAttackIndex;   
+  blockSwitchingControl->attackIndex = blockSwitchingControl->lastAttackIndex;
 
   /* Set grouping info */
-  blockSwitchingControl->noOfGroups = MAX_NO_OF_GROUPS;                          
+  blockSwitchingControl->noOfGroups = MAX_NO_OF_GROUPS;
 
   for (i=0; i<MAX_NO_OF_GROUPS; i++) {
-    blockSwitchingControl->groupLen[i] = suggestedGroupingTable[blockSwitchingControl->attackIndex][i];  
+    blockSwitchingControl->groupLen[i] = suggestedGroupingTable[blockSwitchingControl->attackIndex][i];
   }
-       
+
   /* if the samplerate is less than 16000, it should be all the short block, avoid pre&post echo */
   if(sampleRate >= 16000) {
          /* Save current window energy as last window energy */
          for (w=0; w<BLOCK_SWITCH_WINDOWS; w++) {
-                 blockSwitchingControl->windowNrg[0][w] = blockSwitchingControl->windowNrg[1][w];             
-                 blockSwitchingControl->windowNrgF[0][w] = blockSwitchingControl->windowNrgF[1][w];           
+                 blockSwitchingControl->windowNrg[0][w] = blockSwitchingControl->windowNrg[1][w];
+                 blockSwitchingControl->windowNrgF[0][w] = blockSwitchingControl->windowNrgF[1][w];
          }
 
 
@@ -147,10 +147,10 @@ Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
          CalcWindowEnergy(blockSwitchingControl, timeSignal, chIncrement, BLOCK_SWITCH_WINDOW_LEN);
 
          /* reset attack */
-         blockSwitchingControl->attack = FALSE;                                         
+         blockSwitchingControl->attack = FALSE;
 
-         enMax = 0;                                                                     
-         enM1 = blockSwitchingControl->windowNrgF[0][BLOCK_SWITCH_WINDOWS-1];           
+         enMax = 0;
+         enM1 = blockSwitchingControl->windowNrgF[0][BLOCK_SWITCH_WINDOWS-1];
 
          for (w=0; w<BLOCK_SWITCH_WINDOWS; w++) {
                  Word32 enM1_Tmp, accWindowNrg_Tmp, windowNrgF_Tmp;
@@ -172,15 +172,15 @@ Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
                  /* if the energy with the ratio is bigger than the average, and the attack and short block  */
                  if ((fixmul(windowNrgF_Tmp, blockSwitchingControl->invAttackRatio) >> windowNrgF_Shf) >
                          blockSwitchingControl->accWindowNrg ) {
-                                 blockSwitchingControl->attack = TRUE;                                      
-                                 blockSwitchingControl->lastAttackIndex = w;                                
+                                 blockSwitchingControl->attack = TRUE;
+                                 blockSwitchingControl->lastAttackIndex = w;
                  }
-                 enM1 = blockSwitchingControl->windowNrgF[1][w];                              
+                 enM1 = blockSwitchingControl->windowNrgF[1][w];
                  enMax = max(enMax, enM1);
          }
 
          if (enMax < minAttackNrg) {
-                 blockSwitchingControl->attack = FALSE;                                       
+                 blockSwitchingControl->attack = FALSE;
          }
   }
   else
@@ -188,22 +188,22 @@ Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
          blockSwitchingControl->attack = TRUE;
   }
 
-  /* Check if attack spreads over frame border */     
+  /* Check if attack spreads over frame border */
   if ((!blockSwitchingControl->attack) && (blockSwitchingControl->lastattack)) {
-     
+
     if (blockSwitchingControl->attackIndex == TRANS_FAC-1) {
-      blockSwitchingControl->attack = TRUE;                                      
+      blockSwitchingControl->attack = TRUE;
     }
 
-    blockSwitchingControl->lastattack = FALSE;                                   
+    blockSwitchingControl->lastattack = FALSE;
   }
   else {
-    blockSwitchingControl->lastattack = blockSwitchingControl->attack;           
+    blockSwitchingControl->lastattack = blockSwitchingControl->attack;
   }
 
-  blockSwitchingControl->windowSequence =  blockSwitchingControl->nextwindowSequence;    
+  blockSwitchingControl->windowSequence =  blockSwitchingControl->nextwindowSequence;
+
 
-     
   if (blockSwitchingControl->attack) {
     blockSwitchingControl->nextwindowSequence = SHORT_WINDOW;
   }
@@ -211,27 +211,27 @@ Word16 BlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
     blockSwitchingControl->nextwindowSequence = LONG_WINDOW;
   }
 
-  /* update short block group */ 
+  /* update short block group */
   if (blockSwitchingControl->nextwindowSequence == SHORT_WINDOW) {
-     
+
     if (blockSwitchingControl->windowSequence== LONG_WINDOW) {
-      blockSwitchingControl->windowSequence = START_WINDOW;                      
+      blockSwitchingControl->windowSequence = START_WINDOW;
     }
-     
+
     if (blockSwitchingControl->windowSequence == STOP_WINDOW) {
-      blockSwitchingControl->windowSequence = SHORT_WINDOW;                      
-      blockSwitchingControl->noOfGroups = 3;                                     
-      blockSwitchingControl->groupLen[0] = 3;                                    
-      blockSwitchingControl->groupLen[1] = 3;                                    
-      blockSwitchingControl->groupLen[2] = 2;                                    
+      blockSwitchingControl->windowSequence = SHORT_WINDOW;
+      blockSwitchingControl->noOfGroups = 3;
+      blockSwitchingControl->groupLen[0] = 3;
+      blockSwitchingControl->groupLen[1] = 3;
+      blockSwitchingControl->groupLen[2] = 2;
     }
   }
 
-  /* update block type */  
+  /* update block type */
   if (blockSwitchingControl->nextwindowSequence == LONG_WINDOW) {
-     
+
     if (blockSwitchingControl->windowSequence == SHORT_WINDOW) {
-      blockSwitchingControl->nextwindowSequence = STOP_WINDOW;                   
+      blockSwitchingControl->nextwindowSequence = STOP_WINDOW;
     }
   }
 
@@ -252,17 +252,17 @@ static Word32 SrchMaxWithIndex(const Word32 in[], Word16 *index, Word16 n)
   Word32 i, idx;
 
   /* Search maximum value in array and return index and value */
-  max = 0;                                                       
-  idx = 0;                                                       
+  max = 0;
+  idx = 0;
 
   for (i = 0; i < n; i++) {
-     
+
     if (in[i+1]  > max) {
-      max = in[i+1];                                             
-      idx = i;                                                   
+      max = in[i+1];
+      idx = i;
     }
   }
-  *index = idx;                                                  
+  *index = idx;
 
   return(max);
 }
@@ -292,11 +292,11 @@ Word32 CalcWindowEnergy(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
   states1 = blockSwitchingControl->iirStates[1];
   Coeff0 = hiPassCoeff[0];
   Coeff1 = hiPassCoeff[1];
-  tidx = 0;                                                   
+  tidx = 0;
   for (w=0; w < BLOCK_SWITCH_WINDOWS; w++) {
 
-    accuUE = 0;                                                  
-    accuFE = 0;                                                  
+    accuUE = 0;
+    accuFE = 0;
 
     for(i=0; i<windowLen; i++) {
          Word32 accu1, accu2, accu3;
@@ -309,16 +309,16 @@ Word32 CalcWindowEnergy(BLOCK_SWITCHING_CONTROL *blockSwitchingControl,
          accu3 = accu1 - states0;
          out = accu3 - accu2;
 
-         states0 = accu1;             
-         states1 = out;               
+         states0 = accu1;
+         states1 = out;
 
-      tempFiltered = extract_h(out);     
+      tempFiltered = extract_h(out);
       accuUE += (tempUnfiltered * tempUnfiltered) >> ENERGY_SHIFT;
       accuFE += (tempFiltered * tempFiltered) >> ENERGY_SHIFT;
     }
 
-    blockSwitchingControl->windowNrg[1][w] = accuUE;             
-    blockSwitchingControl->windowNrgF[1][w] = accuFE;            
+    blockSwitchingControl->windowNrg[1][w] = accuUE;
+    blockSwitchingControl->windowNrgF[1][w] = accuFE;
 
   }
 
@@ -346,8 +346,8 @@ static Word16 IIRFilter(const Word16 in, const Word32 coeff[], Word32 states[])
   accu2 = fixmul( coeff[0], states[1] );
   out = accu3 - accu2;
 
-  states[0] = accu1;             
-  states[1] = out;               
+  states[0] = accu1;
+  states[1] = out;
 
   return round16(out);
 }
@@ -374,54 +374,54 @@ Word16 SyncBlockSwitching(BLOCK_SWITCHING_CONTROL *blockSwitchingControlLeft,
                           const Word16 nChannels)
 {
   Word16 i;
-  Word16 patchType = LONG_WINDOW;                
+  Word16 patchType = LONG_WINDOW;
+
 
-   
   if (nChannels == 1) { /* Mono */
     if (blockSwitchingControlLeft->windowSequence != SHORT_WINDOW) {
-      blockSwitchingControlLeft->noOfGroups = 1;                         
-      blockSwitchingControlLeft->groupLen[0] = 1;                        
+      blockSwitchingControlLeft->noOfGroups = 1;
+      blockSwitchingControlLeft->groupLen[0] = 1;
 
       for (i=1; i<TRANS_FAC; i++) {
-        blockSwitchingControlLeft->groupLen[i] = 0;                      
+        blockSwitchingControlLeft->groupLen[i] = 0;
       }
     }
   }
   else { /* Stereo common Window */
-    patchType = synchronizedBlockTypeTable[patchType][blockSwitchingControlLeft->windowSequence];        
-    patchType = synchronizedBlockTypeTable[patchType][blockSwitchingControlRight->windowSequence];       
+    patchType = synchronizedBlockTypeTable[patchType][blockSwitchingControlLeft->windowSequence];
+    patchType = synchronizedBlockTypeTable[patchType][blockSwitchingControlRight->windowSequence];
 
     /* Set synchronized Blocktype */
-    blockSwitchingControlLeft->windowSequence = patchType;               
-    blockSwitchingControlRight->windowSequence = patchType;              
+    blockSwitchingControlLeft->windowSequence = patchType;
+    blockSwitchingControlRight->windowSequence = patchType;
 
-    /* Synchronize grouping info */     
+    /* Synchronize grouping info */
     if(patchType != SHORT_WINDOW) { /* Long Blocks */
       /* Set grouping info */
-      blockSwitchingControlLeft->noOfGroups = 1;                         
-      blockSwitchingControlRight->noOfGroups = 1;                        
-      blockSwitchingControlLeft->groupLen[0] = 1;                        
-      blockSwitchingControlRight->groupLen[0] = 1;                       
+      blockSwitchingControlLeft->noOfGroups = 1;
+      blockSwitchingControlRight->noOfGroups = 1;
+      blockSwitchingControlLeft->groupLen[0] = 1;
+      blockSwitchingControlRight->groupLen[0] = 1;
 
       for (i=1; i<TRANS_FAC; i++) {
-        blockSwitchingControlLeft->groupLen[i] = 0;                      
-        blockSwitchingControlRight->groupLen[i] = 0;                     
+        blockSwitchingControlLeft->groupLen[i] = 0;
+        blockSwitchingControlRight->groupLen[i] = 0;
       }
     }
     else {
-       
+
       if (blockSwitchingControlLeft->maxWindowNrg > blockSwitchingControlRight->maxWindowNrg) {
         /* Left Channel wins */
-        blockSwitchingControlRight->noOfGroups = blockSwitchingControlLeft->noOfGroups;          
+        blockSwitchingControlRight->noOfGroups = blockSwitchingControlLeft->noOfGroups;
         for (i=0; i<TRANS_FAC; i++) {
-          blockSwitchingControlRight->groupLen[i] = blockSwitchingControlLeft->groupLen[i];      
+          blockSwitchingControlRight->groupLen[i] = blockSwitchingControlLeft->groupLen[i];
         }
       }
       else {
         /* Right Channel wins */
-        blockSwitchingControlLeft->noOfGroups = blockSwitchingControlRight->noOfGroups;          
+        blockSwitchingControlLeft->noOfGroups = blockSwitchingControlRight->noOfGroups;
         for (i=0; i<TRANS_FAC; i++) {
-          blockSwitchingControlLeft->groupLen[i] = blockSwitchingControlRight->groupLen[i];      
+          blockSwitchingControlLeft->groupLen[i] = blockSwitchingControlRight->groupLen[i];
         }
       }
     }
index 2d41f8c..f6552ed 100644 (file)
@@ -29,32 +29,32 @@ static const Word16 maxChannelBits = MAXBITS_COEF;
 
 static Word16 initElement(ELEMENT_INFO* elInfo, ELEMENT_TYPE elType)
 {
-  Word16 error=0;                                    
+  Word16 error=0;
 
-  elInfo->elType=elType;                             
+  elInfo->elType=elType;
 
   switch(elInfo->elType) {
 
     case ID_SCE:
-      elInfo->nChannelsInEl=1;                       
+      elInfo->nChannelsInEl=1;
 
-      elInfo->ChannelIndex[0]=0;                     
+      elInfo->ChannelIndex[0]=0;
 
-      elInfo->instanceTag=0;                         
+      elInfo->instanceTag=0;
       break;
 
     case ID_CPE:
 
-      elInfo->nChannelsInEl=2;                        
+      elInfo->nChannelsInEl=2;
 
-      elInfo->ChannelIndex[0]=0;                      
-      elInfo->ChannelIndex[1]=1;                      
+      elInfo->ChannelIndex[0]=0;
+      elInfo->ChannelIndex[1]=1;
 
-      elInfo->instanceTag=0;                    
+      elInfo->instanceTag=0;
       break;
 
     default:
-      error=1;                                  
+      error=1;
   }
 
   return error;
@@ -64,11 +64,11 @@ static Word16 initElement(ELEMENT_INFO* elInfo, ELEMENT_TYPE elType)
 Word16 InitElementInfo (Word16 nChannels, ELEMENT_INFO* elInfo)
 {
   Word16 error;
-  error = 0;                                        
+  error = 0;
 
   switch(nChannels) {
 
-    case 1: 
+    case 1:
       initElement(elInfo, ID_SCE);
       break;
 
@@ -77,7 +77,7 @@ Word16 InitElementInfo (Word16 nChannels, ELEMENT_INFO* elInfo)
       break;
 
     default:
-      error=4;                                         
+      error=4;
   }
 
   return error;
@@ -91,18 +91,18 @@ Word16 InitElementBits(ELEMENT_BITS *elementBits,
                        Word16 staticBitsTot)
 {
   Word16 error;
-  error = 0;                                    
+  error = 0;
 
    switch(elInfo.nChannelsInEl) {
     case 1:
-      elementBits->chBitrate = bitrateTot;                     
+      elementBits->chBitrate = bitrateTot;
       elementBits->averageBits = averageBitsTot - staticBitsTot;
-      elementBits->maxBits = maxChannelBits;                   
+      elementBits->maxBits = maxChannelBits;
 
       elementBits->maxBitResBits = maxChannelBits - averageBitsTot;
-      elementBits->maxBitResBits = elementBits->maxBitResBits - (elementBits->maxBitResBits & 7); 
-      elementBits->bitResLevel = elementBits->maxBitResBits;   
-      elementBits->relativeBits  = 0x4000; /* 1.0f/2 */        
+      elementBits->maxBitResBits = elementBits->maxBitResBits - (elementBits->maxBitResBits & 7);
+      elementBits->bitResLevel = elementBits->maxBitResBits;
+      elementBits->relativeBits  = 0x4000; /* 1.0f/2 */
       break;
 
     case 2:
@@ -111,13 +111,13 @@ Word16 InitElementBits(ELEMENT_BITS *elementBits,
       elementBits->maxBits     = maxChannelBits << 1;
 
       elementBits->maxBitResBits = (maxChannelBits << 1) - averageBitsTot;
-      elementBits->maxBitResBits = elementBits->maxBitResBits - (elementBits->maxBitResBits & 7);   
-      elementBits->bitResLevel = elementBits->maxBitResBits;     
-      elementBits->relativeBits = 0x4000; /* 1.0f/2 */           
+      elementBits->maxBitResBits = elementBits->maxBitResBits - (elementBits->maxBitResBits & 7);
+      elementBits->bitResLevel = elementBits->maxBitResBits;
+      elementBits->relativeBits = 0x4000; /* 1.0f/2 */
       break;
 
     default:
-      error = 1;                                                 
+      error = 1;
   }
   return error;
 }
index f3b3e02..3d2efdc 100644 (file)
@@ -45,12 +45,12 @@ buildBitLookUp(const Word16 *quantSpectrum,
   for (i=0; i<maxSfb; i++) {
     Word16 sfbWidth, maxVal;
 
-    sectionInfo[i].sfbCnt = 1;                                   
-    sectionInfo[i].sfbStart = i;                                 
-    sectionInfo[i].sectionBits = INVALID_BITCOUNT;               
-    sectionInfo[i].codeBook = -1;                                
-    sfbWidth = sfbOffset[i + 1] - sfbOffset[i];              
-    maxVal = sfbMax[i];                                          
+    sectionInfo[i].sfbCnt = 1;
+    sectionInfo[i].sfbStart = i;
+    sectionInfo[i].sectionBits = INVALID_BITCOUNT;
+    sectionInfo[i].codeBook = -1;
+    sfbWidth = sfbOffset[i + 1] - sfbOffset[i];
+    maxVal = sfbMax[i];
     bitCount(quantSpectrum + sfbOffset[i], sfbWidth, maxVal, bitLookUp[i]);
   }
 }
@@ -66,13 +66,13 @@ static Word16
 findBestBook(const Word16 *bc, Word16 *book)
 {
   Word32 minBits, j;
-  minBits = INVALID_BITCOUNT;                                    
+  minBits = INVALID_BITCOUNT;
 
   for (j=0; j<=CODE_BOOK_ESC_NDX; j++) {
-     
+
     if (bc[j] < minBits) {
-      minBits = bc[j];                                           
-      *book = j;                                                 
+      minBits = bc[j];
+      *book = j;
     }
   }
   return extract_l(minBits);
@@ -82,12 +82,12 @@ static Word16
 findMinMergeBits(const Word16 *bc1, const Word16 *bc2)
 {
   Word32 minBits, j, sum;
-  minBits = INVALID_BITCOUNT;                                    
+  minBits = INVALID_BITCOUNT;
 
   for (j=0; j<=CODE_BOOK_ESC_NDX; j++) {
     sum = bc1[j] + bc2[j];
     if (sum < minBits) {
-      minBits = sum;                                             
+      minBits = sum;
     }
   }
   return extract_l(minBits);
@@ -109,13 +109,13 @@ findMaxMerge(const Word16 mergeGainLookUp[MAX_SFB_LONG],
              const Word16 maxSfb, Word16 *maxNdx)
 {
   Word32 i, maxMergeGain;
-  maxMergeGain = 0;                                              
+  maxMergeGain = 0;
 
   for (i=0; i+sectionInfo[i].sfbCnt < maxSfb; i += sectionInfo[i].sfbCnt) {
-     
+
     if (mergeGainLookUp[i] > maxMergeGain) {
-      maxMergeGain = mergeGainLookUp[i];                         
-      *maxNdx = i;                                               
+      maxMergeGain = mergeGainLookUp[i];
+      *maxNdx = i;
     }
   }
   return extract_l(maxMergeGain);
@@ -159,7 +159,7 @@ gmStage0(SECTION_INFO * sectionInfo,
 
   for (i=0; i<maxSfb; i++) {
     /* Side-Info bits will be calculated in Stage 1!  */
-     
+
     if (sectionInfo[i].sectionBits == INVALID_BITCOUNT) {
       sectionInfo[i].sectionBits = findBestBook(bitLookUp[i], &(sectionInfo[i].codeBook));
     }
@@ -180,13 +180,13 @@ gmStage1(SECTION_INFO * sectionInfo,
   SECTION_INFO * sectionInfo_s;
   SECTION_INFO * sectionInfo_e;
   Word32 mergeStart, mergeEnd;
-  mergeStart = 0;                                                        
+  mergeStart = 0;
 
   do {
 
     sectionInfo_s = sectionInfo + mergeStart;
        for (mergeEnd=mergeStart+1; mergeEnd<maxSfb; mergeEnd++) {
-      sectionInfo_e = sectionInfo + mergeEnd; 
+      sectionInfo_e = sectionInfo + mergeEnd;
       if (sectionInfo_s->codeBook != sectionInfo_e->codeBook)
         break;
       sectionInfo_s->sfbCnt += 1;
@@ -196,11 +196,11 @@ gmStage1(SECTION_INFO * sectionInfo,
     }
 
     sectionInfo_s->sectionBits += sideInfoTab[sectionInfo_s->sfbCnt];
-    sectionInfo[mergeEnd - 1].sfbStart = sectionInfo_s->sfbStart;      /* speed up prev search */  
+    sectionInfo[mergeEnd - 1].sfbStart = sectionInfo_s->sfbStart;      /* speed up prev search */
+
+    mergeStart = mergeEnd;
 
-    mergeStart = mergeEnd;                                               
 
-     
   } while (mergeStart - maxSfb < 0);
 }
 
@@ -230,7 +230,7 @@ gmStage2(SECTION_INFO *sectionInfo,
 
     maxMergeGain = findMaxMerge(mergeGainLookUp, sectionInfo, maxSfb, &maxNdx);
 
-     
+
     if (maxMergeGain <= 0)
       break;
 
@@ -244,7 +244,7 @@ gmStage2(SECTION_INFO *sectionInfo,
 
     mergeBitLookUp(bitLookUp[maxNdx], bitLookUp[maxNdxNext]);
 
-     
+
     if (maxNdx != 0) {
       maxNdxLast = sectionInfo[maxNdx - 1].sfbStart;
       mergeGainLookUp[maxNdxLast] = CalcMergeGain(sectionInfo,
@@ -255,9 +255,9 @@ gmStage2(SECTION_INFO *sectionInfo,
     }
     maxNdxNext = maxNdx + sectionInfo[maxNdx].sfbCnt;
 
-    sectionInfo[maxNdxNext - 1].sfbStart = sectionInfo[maxNdx].sfbStart;             
+    sectionInfo[maxNdxNext - 1].sfbStart = sectionInfo[maxNdx].sfbStart;
+
 
-     
     if (maxNdxNext - maxSfb < 0) {
       mergeGainLookUp[maxNdx] = CalcMergeGain(sectionInfo,
                                               bitLookUp,
@@ -286,7 +286,7 @@ noiselessCounter(SECTION_DATA *sectionData,
 
   /*
     use appropriate side info table
-  */   
+  */
   switch (blockType)
   {
     case LONG_WINDOW:
@@ -300,11 +300,11 @@ noiselessCounter(SECTION_DATA *sectionData,
   }
 
 
-  sectionData->noOfSections = 0;                                         
-  sectionData->huffmanBits = 0;                                          
-  sectionData->sideInfoBits = 0;                                         
+  sectionData->noOfSections = 0;
+  sectionData->huffmanBits = 0;
+  sectionData->sideInfoBits = 0;
+
 
-   
   if (sectionData->maxSfbPerGroup == 0)
     return;
 
@@ -353,7 +353,7 @@ noiselessCounter(SECTION_DATA *sectionData,
       sectionData->huffmanBits = (sectionData->huffmanBits +
                                      (sectionInfo[i].sectionBits - sideInfoTab[sectionInfo[i].sfbCnt]));
       sectionData->sideInfoBits = (sectionData->sideInfoBits + sideInfoTab[sectionInfo[i].sfbCnt]);
-      sectionData->sectionInfo[sectionData->noOfSections] = sectionInfo[i];             
+      sectionData->sectionInfo[sectionData->noOfSections] = sectionInfo[i];
       sectionData->noOfSections = sectionData->noOfSections + 1;
     }
   }
@@ -386,25 +386,25 @@ static void scfCount(const Word16 *scalefacGain,
   Word32 lastValScf     = 0;
   Word32 deltaScf       = 0;
   Flag found            = 0;
-  Word32 scfSkipCounter = 0;           
-         
+  Word32 scfSkipCounter = 0;
+
+
+  sectionData->scalefacBits = 0;
 
-  sectionData->scalefacBits = 0;                                 
 
-   
   if (scalefacGain == NULL) {
     return;
   }
 
-  lastValScf = 0;                                                
-  sectionData->firstScf = 0;        
-  
+  lastValScf = 0;
+  sectionData->firstScf = 0;
+
   psectionInfo = sectionData->sectionInfo;
   for (i=0; i<sectionData->noOfSections; i++) {
-     
+
     if (psectionInfo->codeBook != CODE_BOOK_ZERO_NO) {
-      sectionData->firstScf = psectionInfo->sfbStart;      
-      lastValScf = scalefacGain[sectionData->firstScf];                  
+      sectionData->firstScf = psectionInfo->sfbStart;
+      lastValScf = scalefacGain[sectionData->firstScf];
       break;
     }
        psectionInfo += 1;
@@ -412,38 +412,38 @@ static void scfCount(const Word16 *scalefacGain,
 
   psectionInfo = sectionData->sectionInfo;
   for (i=0; i<sectionData->noOfSections; i++, psectionInfo += 1) {
-       
+
     if (psectionInfo->codeBook != CODE_BOOK_ZERO_NO
         && psectionInfo->codeBook != CODE_BOOK_PNS_NO) {
       for (j = psectionInfo->sfbStart;
            j < (psectionInfo->sfbStart + psectionInfo->sfbCnt); j++) {
         /* check if we can repeat the last value to save bits */
-         
+
         if (maxValueInSfb[j] == 0) {
-          found = 0;                                                     
-           
+          found = 0;
+
           if (scfSkipCounter == 0) {
             /* end of section */
-             
+
             if (j - ((psectionInfo->sfbStart + psectionInfo->sfbCnt) - 1) == 0) {
-              found = 0;                                                 
+              found = 0;
             }
             else {
               for (k = j + 1; k < psectionInfo->sfbStart + psectionInfo->sfbCnt; k++) {
-                 
+
                 if (maxValueInSfb[k] != 0) {
                   int tmp = L_abs(scalefacGain[k] - lastValScf);
-                                 found = 1;                                             
-                   
+                                 found = 1;
+
                   if ( tmp < CODE_BOOK_SCF_LAV) {
                     /* save bits */
-                    deltaScf = 0;                                        
+                    deltaScf = 0;
                   }
                   else {
                     /* do not save bits */
                     deltaScf = lastValScf - scalefacGain[j];
-                    lastValScf = scalefacGain[j];                        
-                    scfSkipCounter = 0;                                  
+                    lastValScf = scalefacGain[j];
+                    scfSkipCounter = 0;
                   }
                   break;
                 }
@@ -451,26 +451,26 @@ static void scfCount(const Word16 *scalefacGain,
                 scfSkipCounter = scfSkipCounter + 1;
               }
             }
-                       
+
                        psectionInfom = psectionInfo + 1;
             /* search for the next maxValueInSfb[] != 0 in all other sections */
             for (m = i + 1; (m < sectionData->noOfSections) && (found == 0); m++) {
-                 
+
               if ((psectionInfom->codeBook != CODE_BOOK_ZERO_NO) &&
                   (psectionInfom->codeBook != CODE_BOOK_PNS_NO)) {
                 for (n = psectionInfom->sfbStart;
                      n < (psectionInfom->sfbStart + psectionInfom->sfbCnt); n++) {
-                   
+
                   if (maxValueInSfb[n] != 0) {
-                    found = 1;                                           
-                     
+                    found = 1;
+
                     if ( (abs_s(scalefacGain[n] - lastValScf) < CODE_BOOK_SCF_LAV)) {
-                      deltaScf = 0;                                      
+                      deltaScf = 0;
                     }
                     else {
                       deltaScf = (lastValScf - scalefacGain[j]);
-                      lastValScf = scalefacGain[j];                      
-                      scfSkipCounter = 0;                                
+                      lastValScf = scalefacGain[j];
+                      scfSkipCounter = 0;
                     }
                     break;
                   }
@@ -481,20 +481,20 @@ static void scfCount(const Word16 *scalefacGain,
 
                          psectionInfom += 1;
             }
-             
+
             if (found == 0) {
-              deltaScf = 0;                                              
-              scfSkipCounter = 0;                                        
+              deltaScf = 0;
+              scfSkipCounter = 0;
             }
           }
           else {
-            deltaScf = 0;                                                
+            deltaScf = 0;
             scfSkipCounter = scfSkipCounter - 1;
           }
         }
         else {
           deltaScf = lastValScf - scalefacGain[j];
-          lastValScf = scalefacGain[j];                                  
+          lastValScf = scalefacGain[j];
         }
         sectionData->scalefacBits += bitCountScalefactorDelta(deltaScf);
       }
@@ -517,14 +517,14 @@ dynBitCount(const Word16  *quantSpectrum,
             const Word16  *sfbOffset,
             SECTION_DATA  *sectionData)
 {
-  sectionData->blockType      = blockType;                       
-  sectionData->sfbCnt         = sfbCnt;                          
-  sectionData->sfbPerGroup    = sfbPerGroup;           
+  sectionData->blockType      = blockType;
+  sectionData->sfbCnt         = sfbCnt;
+  sectionData->sfbPerGroup    = sfbPerGroup;
   if(sfbPerGroup)
-       sectionData->noOfGroups   = sfbCnt/sfbPerGroup; 
+       sectionData->noOfGroups   = sfbCnt/sfbPerGroup;
   else
        sectionData->noOfGroups   = 0x7fff;
-  sectionData->maxSfbPerGroup = maxSfbPerGroup;                  
+  sectionData->maxSfbPerGroup = maxSfbPerGroup;
 
   noiselessCounter(sectionData,
                    sectionData->mergeGainLookUp,
@@ -539,7 +539,7 @@ dynBitCount(const Word16  *quantSpectrum,
            sectionData);
 
 
-  return (sectionData->huffmanBits + sectionData->sideInfoBits + 
+  return (sectionData->huffmanBits + sectionData->sideInfoBits +
              sectionData->scalefacBits);
 }
 
index fb88654..7861e1c 100644 (file)
@@ -57,29 +57,29 @@ groupShortData(Word32        *mdctSpectrum,
 
   /* for short: regroup and  */
   /* cumulate energies und thresholds group-wise . */
-  
+
   /* calculate sfbCnt */
-  highestSfb = 0;                                        
+  highestSfb = 0;
   for (wnd=0; wnd<TRANS_FAC; wnd++) {
     for (sfb=sfbCnt - 1; sfb>=highestSfb; sfb--) {
       for (line=(sfbOffset[sfb + 1] - 1); line>=sfbOffset[sfb]; line--) {
-        
-        if (mdctSpectrum[wnd*FRAME_LEN_SHORT+line] != 0) break; 
+
+        if (mdctSpectrum[wnd*FRAME_LEN_SHORT+line] != 0) break;
       }
-      
+
       if (line >= sfbOffset[sfb]) break;
     }
     highestSfb = max(highestSfb, sfb);
   }
-  
+
   if (highestSfb < 0) {
-    highestSfb = 0;                                      
+    highestSfb = 0;
   }
   *maxSfbPerGroup = highestSfb + 1;
 
   /* calculate sfbOffset */
-  i = 0;                                                 
-  offset = 0;                                            
+  i = 0;
+  offset = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
       groupedSfbOffset[i] = offset + sfbOffset[sfb] * groupLen[grp];
@@ -87,15 +87,15 @@ groupShortData(Word32        *mdctSpectrum,
     }
     offset += groupLen[grp] * FRAME_LEN_SHORT;
   }
-  groupedSfbOffset[i] = FRAME_LEN_LONG;                  
+  groupedSfbOffset[i] = FRAME_LEN_LONG;
   i += 1;
 
   /* calculate minSnr */
-  i = 0;                                                 
-  offset = 0;                                            
+  i = 0;
+  offset = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
-      groupedSfbMinSnr[i] = sfbMinSnr[sfb];              
+      groupedSfbMinSnr[i] = sfbMinSnr[sfb];
       i += 1;
     }
     offset += groupLen[grp] * FRAME_LEN_SHORT;
@@ -103,74 +103,74 @@ groupShortData(Word32        *mdctSpectrum,
 
 
   /* sum up sfbThresholds */
-  wnd = 0;                                                       
-  i = 0;                                                         
+  wnd = 0;
+  i = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
-      Word32 thresh = sfbThreshold->sfbShort[wnd][sfb];          
+      Word32 thresh = sfbThreshold->sfbShort[wnd][sfb];
       for (j=1; j<groupLen[grp]; j++) {
         thresh = L_add(thresh, sfbThreshold->sfbShort[wnd+j][sfb]);
       }
-      sfbThreshold->sfbLong[i] = thresh;                         
+      sfbThreshold->sfbLong[i] = thresh;
       i += 1;
     }
     wnd += groupLen[grp];
   }
 
   /* sum up sfbEnergies left/right */
-  wnd = 0;                                                       
-  i = 0;                                                         
+  wnd = 0;
+  i = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
-      Word32 energy = sfbEnergy->sfbShort[wnd][sfb];             
+      Word32 energy = sfbEnergy->sfbShort[wnd][sfb];
       for (j=1; j<groupLen[grp]; j++) {
         energy = L_add(energy, sfbEnergy->sfbShort[wnd+j][sfb]);
       }
-      sfbEnergy->sfbLong[i] = energy;                            
+      sfbEnergy->sfbLong[i] = energy;
       i += 1;
     }
     wnd += groupLen[grp];
   }
 
   /* sum up sfbEnergies mid/side */
-  wnd = 0;                                                       
-  i = 0;                                                         
+  wnd = 0;
+  i = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
-      Word32 energy = sfbEnergyMS->sfbShort[wnd][sfb];           
+      Word32 energy = sfbEnergyMS->sfbShort[wnd][sfb];
       for (j=1; j<groupLen[grp]; j++) {
         energy = L_add(energy, sfbEnergyMS->sfbShort[wnd+j][sfb]);
       }
-      sfbEnergyMS->sfbLong[i] = energy;                          
+      sfbEnergyMS->sfbLong[i] = energy;
       i += 1;
     }
     wnd += groupLen[grp];
   }
 
   /* sum up sfbSpreadedEnergies */
-  wnd = 0;                                                       
-  i = 0;                                                         
+  wnd = 0;
+  i = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
-      Word32 energy = sfbSpreadedEnergy->sfbShort[wnd][sfb];     
+      Word32 energy = sfbSpreadedEnergy->sfbShort[wnd][sfb];
       for (j=1; j<groupLen[grp]; j++) {
         energy = L_add(energy, sfbSpreadedEnergy->sfbShort[wnd+j][sfb]);
       }
-      sfbSpreadedEnergy->sfbLong[i] = energy;                    
+      sfbSpreadedEnergy->sfbLong[i] = energy;
       i += 1;
     }
     wnd += groupLen[grp];
   }
 
   /* re-group spectrum */
-  wnd = 0;                                                       
-  i = 0;                                                         
+  wnd = 0;
+  i = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     for (sfb = 0; sfb < sfbCnt; sfb++) {
       for (j = 0; j < groupLen[grp]; j++) {
         Word16 lineOffset = FRAME_LEN_SHORT * (wnd + j);
         for (line = lineOffset + sfbOffset[sfb]; line < lineOffset + sfbOffset[sfb+1]; line++) {
-          tmpSpectrum[i] = mdctSpectrum[line];                   
+          tmpSpectrum[i] = mdctSpectrum[line];
           i = i + 1;
         }
       }
@@ -179,10 +179,10 @@ groupShortData(Word32        *mdctSpectrum,
   }
 
   for(i=0;i<FRAME_LEN_LONG;i+=4) {
-    mdctSpectrum[i] = tmpSpectrum[i];  
-       mdctSpectrum[i+1] = tmpSpectrum[i+1];  
-       mdctSpectrum[i+2] = tmpSpectrum[i+2];  
-       mdctSpectrum[i+3] = tmpSpectrum[i+3];   
+    mdctSpectrum[i] = tmpSpectrum[i];
+       mdctSpectrum[i+1] = tmpSpectrum[i+1];
+       mdctSpectrum[i+2] = tmpSpectrum[i+2];
+       mdctSpectrum[i+3] = tmpSpectrum[i+3];
   }
 }
 
index 34fee00..f2472d8 100644 (file)
@@ -49,56 +49,56 @@ void BuildInterface(Word32                  *groupedMdctSpectrum,
                     PSY_OUT_CHANNEL         *psyOutCh)
 {
   Word32 j;
-  Word32 grp; 
+  Word32 grp;
   Word32 mask;
   Word16 *tmpV;
 
   /*
   copy values to psyOut
   */
-  psyOutCh->maxSfbPerGroup    = maxSfbPerGroup;                             
-  psyOutCh->sfbCnt            = groupedSfbCnt;   
+  psyOutCh->maxSfbPerGroup    = maxSfbPerGroup;
+  psyOutCh->sfbCnt            = groupedSfbCnt;
   if(noOfGroups)
        psyOutCh->sfbPerGroup     = groupedSfbCnt/ noOfGroups;
   else
        psyOutCh->sfbPerGroup     = 0x7fff;
-  psyOutCh->windowSequence    = windowSequence;                             
-  psyOutCh->windowShape       = windowShape;                                
-  psyOutCh->mdctScale         = mdctScale;                                  
+  psyOutCh->windowSequence    = windowSequence;
+  psyOutCh->windowShape       = windowShape;
+  psyOutCh->mdctScale         = mdctScale;
   psyOutCh->mdctSpectrum      = groupedMdctSpectrum;
   psyOutCh->sfbEnergy         = groupedSfbEnergy->sfbLong;
   psyOutCh->sfbThreshold      = groupedSfbThreshold->sfbLong;
   psyOutCh->sfbSpreadedEnergy = groupedSfbSpreadedEnergy->sfbLong;
-  
+
   tmpV = psyOutCh->sfbOffsets;
   for(j=0; j<groupedSfbCnt + 1; j++) {
       *tmpV++ = groupedSfbOffset[j];
   }
-  
+
   tmpV = psyOutCh->sfbMinSnr;
   for(j=0;j<groupedSfbCnt; j++) {
          *tmpV++ =   groupedSfbMinSnr[j];
   }
-  
+
   /* generate grouping mask */
-  mask = 0;                                                                      
+  mask = 0;
   for (grp = 0; grp < noOfGroups; grp++) {
     mask = mask << 1;
     for (j=1; j<groupLen[grp]; j++) {
       mask = mask << 1;
-      mask |= 1;                                                                 
+      mask |= 1;
     }
   }
-  psyOutCh->groupingMask = mask; 
-  
+  psyOutCh->groupingMask = mask;
+
   if (windowSequence != SHORT_WINDOW) {
-    psyOutCh->sfbEnSumLR =  sfbEnergySumLR.sfbLong;                              
-    psyOutCh->sfbEnSumMS =  sfbEnergySumMS.sfbLong;                              
+    psyOutCh->sfbEnSumLR =  sfbEnergySumLR.sfbLong;
+    psyOutCh->sfbEnSumMS =  sfbEnergySumMS.sfbLong;
   }
   else {
     Word32 i;
     Word32 accuSumMS=0;
-    Word32 accuSumLR=0;        
+    Word32 accuSumLR=0;
        Word32 *pSumMS = sfbEnergySumMS.sfbShort;
        Word32 *pSumLR = sfbEnergySumLR.sfbShort;
 
@@ -106,7 +106,7 @@ void BuildInterface(Word32                  *groupedMdctSpectrum,
       accuSumLR = L_add(accuSumLR, *pSumLR); pSumLR++;
       accuSumMS = L_add(accuSumMS, *pSumMS); pSumMS++;
     }
-    psyOutCh->sfbEnSumMS = accuSumMS;                                            
-    psyOutCh->sfbEnSumLR = accuSumLR;                                            
+    psyOutCh->sfbEnSumMS = accuSumMS;
+    psyOutCh->sfbEnSumLR = accuSumLR;
   }
 }
index 5e93cd0..480dc28 100644 (file)
@@ -45,20 +45,20 @@ void prepareSfbPe(PE_DATA *peData,
                   const Word16 peOffset)
 {
   Word32 sfbGrp, sfb;
-  Word32 ch;     
+  Word32 ch;
 
   for(ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
     PE_CHANNEL_DATA *peChanData=&peData->peChannelData[ch];
     for(sfbGrp=0;sfbGrp<psyOutChan->sfbCnt; sfbGrp+=psyOutChan->sfbPerGroup){
       for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
-           peChanData->sfbNLines4[sfbGrp+sfb] = sfbNRelevantLines[ch][sfbGrp+sfb];          
-        sfbNRelevantLines[ch][sfbGrp+sfb] = sfbNRelevantLines[ch][sfbGrp+sfb] >> 2;    
-           peChanData->sfbLdEnergy[sfbGrp+sfb] = logSfbEnergy[ch][sfbGrp+sfb];              
+           peChanData->sfbNLines4[sfbGrp+sfb] = sfbNRelevantLines[ch][sfbGrp+sfb];
+        sfbNRelevantLines[ch][sfbGrp+sfb] = sfbNRelevantLines[ch][sfbGrp+sfb] >> 2;
+           peChanData->sfbLdEnergy[sfbGrp+sfb] = logSfbEnergy[ch][sfbGrp+sfb];
       }
     }
   }
-  peData->offset = peOffset;                                                             
+  peData->offset = peOffset;
 }
 
 
@@ -78,23 +78,23 @@ void calcSfbPe(PE_DATA *peData,
   Word32 ldThr, ldRatio;
   Word32 pe, constPart, nActiveLines;
 
-  peData->pe = peData->offset;                                           
-  peData->constPart = 0;                                                 
-  peData->nActiveLines = 0;                                              
+  peData->pe = peData->offset;
+  peData->constPart = 0;
+  peData->nActiveLines = 0;
   for(ch=0; ch<nChannels; ch++) {
     PSY_OUT_CHANNEL *psyOutChan = &psyOutChannel[ch];
     PE_CHANNEL_DATA *peChanData = &peData->peChannelData[ch];
     const Word32 *sfbEnergy = psyOutChan->sfbEnergy;
     const Word32 *sfbThreshold = psyOutChan->sfbThreshold;
 
-    pe = 0;                                                  
-    constPart = 0;                                           
-    nActiveLines = 0;                                        
+    pe = 0;
+    constPart = 0;
+    nActiveLines = 0;
 
     for(sfbGrp=0; sfbGrp<psyOutChan->sfbCnt; sfbGrp+=psyOutChan->sfbPerGroup) {
       for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
-        Word32 nrg = sfbEnergy[sfbGrp+sfb];                             
-        Word32 thres = sfbThreshold[sfbGrp+sfb];                           
+        Word32 nrg = sfbEnergy[sfbGrp+sfb];
+        Word32 thres = sfbThreshold[sfbGrp+sfb];
         Word32 sfbLDEn = peChanData->sfbLdEnergy[sfbGrp+sfb];
 
         if (nrg > thres) {
@@ -102,8 +102,8 @@ void calcSfbPe(PE_DATA *peData,
 
           ldRatio = sfbLDEn - ldThr;
 
-          nLines4 = peChanData->sfbNLines4[sfbGrp+sfb];                    
-           
+          nLines4 = peChanData->sfbNLines4[sfbGrp+sfb];
+
           /* sfbPe = nl*log2(en/thr)*/
                  if (ldRatio >= C1_I) {
             peChanData->sfbPe[sfbGrp+sfb] = (nLines4*ldRatio + 8) >> 4;
@@ -120,26 +120,26 @@ void calcSfbPe(PE_DATA *peData,
           peChanData->sfbNActiveLines[sfbGrp+sfb] = nLines4 >> 2;
         }
         else {
-          peChanData->sfbPe[sfbGrp+sfb] = 0;                             
-          peChanData->sfbConstPart[sfbGrp+sfb] = 0;                      
-          peChanData->sfbNActiveLines[sfbGrp+sfb] = 0;                   
+          peChanData->sfbPe[sfbGrp+sfb] = 0;
+          peChanData->sfbConstPart[sfbGrp+sfb] = 0;
+          peChanData->sfbNActiveLines[sfbGrp+sfb] = 0;
         }
         pe = pe + peChanData->sfbPe[sfbGrp+sfb];
         constPart = constPart + peChanData->sfbConstPart[sfbGrp+sfb];
         nActiveLines = nActiveLines + peChanData->sfbNActiveLines[sfbGrp+sfb];
       }
     }
-       
-       peChanData->pe = saturate(pe);                                                  
-    peChanData->constPart = saturate(constPart);                                           
-    peChanData->nActiveLines = saturate(nActiveLines);                                        
 
-    
+       peChanData->pe = saturate(pe);
+    peChanData->constPart = saturate(constPart);
+    peChanData->nActiveLines = saturate(nActiveLines);
+
+
        pe += peData->pe;
-       peData->pe = saturate(pe); 
+       peData->pe = saturate(pe);
     constPart += peData->constPart;
-       peData->constPart = saturate(constPart); 
+       peData->constPart = saturate(constPart);
     nActiveLines += peData->nActiveLines;
        peData->nActiveLines = saturate(nActiveLines);
-  } 
+  }
 }
index 44dd4ba..bb266dc 100644 (file)
@@ -32,7 +32,7 @@
 /*****************************************************************************
 *
 * function name: mem_malloc
-* description:  malloc the alignments memory 
+* description:  malloc the alignments memory
 * returns:      the point of the memory
 *
 **********************************************************************************/
index 44d45cc..2e34f14 100644 (file)
@@ -30,7 +30,7 @@
 *
 * function name: MsStereoProcessing
 * description:  detect use ms stereo or not
-*                              if ((min(thrLn, thrRn)*min(thrLn, thrRn))/(enMn*enSn)) 
+*                              if ((min(thrLn, thrRn)*min(thrLn, thrRn))/(enMn*enSn))
 *                              >= ((thrLn *thrRn)/(enLn*enRn)) then ms stereo
 *
 **********************************************************************************/
@@ -51,7 +51,7 @@ void MsStereoProcessing(Word32       *sfbEnergyLeft,
                         const Word16  maxSfbPerGroup,
                         const Word16 *sfbOffset) {
   Word32 temp;
-  Word32 sfb,sfboffs, j; 
+  Word32 sfb,sfboffs, j;
   Word32 msMaskTrueSomewhere = 0;
   Word32 msMaskFalseSomewhere = 0;
 
@@ -64,12 +64,12 @@ void MsStereoProcessing(Word32       *sfbEnergyLeft,
       Word32 thrL, thrR, nrgL, nrgR;
       Word32 idx, shift;
 
-      idx = sfb + sfboffs;                                                                       
+      idx = sfb + sfboffs;
 
-      thrL = sfbThresholdLeft[idx];                                                                 
-      thrR = sfbThresholdRight[idx];                                                                
-      nrgL = sfbEnergyLeft[idx];                                                                    
-      nrgR = sfbEnergyRight[idx];                                                                   
+      thrL = sfbThresholdLeft[idx];
+      thrR = sfbThresholdRight[idx];
+      nrgL = sfbEnergyLeft[idx];
+      nrgR = sfbEnergyRight[idx];
 
       minThreshold = min(thrL, thrR);
 
@@ -82,8 +82,8 @@ void MsStereoProcessing(Word32       *sfbEnergyLeft,
 
          pnlr = fixmul(nrgL, nrgR);
 
-      nrgL = sfbEnergyMid[idx];                                                                     
-      nrgR = sfbEnergySide[idx];                                                                    
+      nrgL = sfbEnergyMid[idx];
+      nrgR = sfbEnergySide[idx];
 
       nrgL = max(nrgL,minThreshold) + 1;
       shift = norm_l(nrgL);
@@ -97,42 +97,42 @@ void MsStereoProcessing(Word32       *sfbEnergyLeft,
 
       temp = (pnlr + 1) / ((pnms >> 8) + 1);
 
-      temp = pnms - pnlr;                                                                     
+      temp = pnms - pnlr;
       if( temp > 0 ){
 
-        msMask[idx] = 1;                                                                            
-        msMaskTrueSomewhere = 1;                                                                    
+        msMask[idx] = 1;
+        msMaskTrueSomewhere = 1;
 
         for (j=sfbOffset[idx]; j<sfbOffset[idx+1]; j++) {
           Word32 left, right;
           left  = (mdctSpectrumLeft[j] >>  1);
           right = (mdctSpectrumRight[j] >> 1);
-          mdctSpectrumLeft[j] =  left + right;                                               
-          mdctSpectrumRight[j] =  left - right;                                              
+          mdctSpectrumLeft[j] =  left + right;
+          mdctSpectrumRight[j] =  left - right;
         }
-        
-        sfbThresholdLeft[idx] = minThreshold;                                                       
-        sfbThresholdRight[idx] = minThreshold;                                                      
-        sfbEnergyLeft[idx] = sfbEnergyMid[idx];                                                     
-        sfbEnergyRight[idx] = sfbEnergySide[idx];                                                   
-
-        sfbSpreadedEnRight[idx] = min(sfbSpreadedEnLeft[idx],sfbSpreadedEnRight[idx]) >> 1;  
-        sfbSpreadedEnLeft[idx] = sfbSpreadedEnRight[idx];                                           
-        
+
+        sfbThresholdLeft[idx] = minThreshold;
+        sfbThresholdRight[idx] = minThreshold;
+        sfbEnergyLeft[idx] = sfbEnergyMid[idx];
+        sfbEnergyRight[idx] = sfbEnergySide[idx];
+
+        sfbSpreadedEnRight[idx] = min(sfbSpreadedEnLeft[idx],sfbSpreadedEnRight[idx]) >> 1;
+        sfbSpreadedEnLeft[idx] = sfbSpreadedEnRight[idx];
+
       }
       else {
-        msMask[idx]  = 0;                                                                           
-        msMaskFalseSomewhere = 1;                                                                   
+        msMask[idx]  = 0;
+        msMaskFalseSomewhere = 1;
       }
-    }                                                                                               
-    if ( msMaskTrueSomewhere ) {                                                                    
+    }
+    if ( msMaskTrueSomewhere ) {
       if(msMaskFalseSomewhere ) {
-        *msDigest = SI_MS_MASK_SOME;                                                                
+        *msDigest = SI_MS_MASK_SOME;
       } else {
-        *msDigest = SI_MS_MASK_ALL;                                                                 
+        *msDigest = SI_MS_MASK_ALL;
       }
     } else {
-      *msDigest = SI_MS_MASK_NONE;                                                                  
+      *msDigest = SI_MS_MASK_NONE;
     }
   }
 
index 1e818a2..1406e11 100644 (file)
@@ -29,7 +29,7 @@
 
 /*****************************************************************************
 *
-* function name:InitPreEchoControl 
+* function name:InitPreEchoControl
 * description: init pre echo control parameter
 *
 *****************************************************************************/
@@ -40,13 +40,13 @@ void InitPreEchoControl(Word32 *pbThresholdNm1,
   Word16 pb;
 
   for(pb=0; pb<numPb; pb++) {
-    pbThresholdNm1[pb] = pbThresholdQuiet[pb];                                   
+    pbThresholdNm1[pb] = pbThresholdQuiet[pb];
   }
 }
 
 /*****************************************************************************
 *
-* function name:PreEchoControl 
+* function name:PreEchoControl
 * description: update shreshold to avoid pre echo
 *                         thr(n) = max(rpmin*thrq(n), min(thrq(n), rpelev*thrq1(n)))
 *
@@ -68,22 +68,22 @@ void PreEchoControl(Word32 *pbThresholdNm1,
   (void)maxAllowedIncreaseFactor;
 
   scaling = ((mdctScale - mdctScalenm1) << 1);
-   
+
   if ( scaling > 0 ) {
     for(i = 0; i < numPb; i++) {
       tmpThreshold1 = pbThresholdNm1[i] >> (scaling-1);
       tmpThreshold2 = L_mpy_ls(pbThreshold[i], minRemainingThresholdFactor);
 
       /* copy thresholds to internal memory */
-      pbThresholdNm1[i] = pbThreshold[i];                                        
+      pbThresholdNm1[i] = pbThreshold[i];
+
 
-       
       if(pbThreshold[i] > tmpThreshold1) {
-        pbThreshold[i] = tmpThreshold1;                                          
+        pbThreshold[i] = tmpThreshold1;
       }
-       
+
       if(tmpThreshold2 > pbThreshold[i]) {
-        pbThreshold[i] = tmpThreshold2;                                          
+        pbThreshold[i] = tmpThreshold2;
       }
 
     }
@@ -96,15 +96,15 @@ void PreEchoControl(Word32 *pbThresholdNm1,
       tmpThreshold2 = L_mpy_ls(pbThreshold[i], minRemainingThresholdFactor);
 
       /* copy thresholds to internal memory */
-      pbThresholdNm1[i] = pbThreshold[i];                                        
+      pbThresholdNm1[i] = pbThreshold[i];
+
 
-       
       if(((pbThreshold[i] >> scaling) > tmpThreshold1)) {
         pbThreshold[i] = tmpThreshold1 << scaling;
       }
-       
+
       if(tmpThreshold2 > pbThreshold[i]) {
-        pbThreshold[i] = tmpThreshold2;                                          
+        pbThreshold[i] = tmpThreshold2;
       }
 
     }
index 8e599b0..02d92ab 100644 (file)
@@ -88,17 +88,17 @@ Word32 GetSRIndex(Word32 sampleRate)
 *
 * function name: atan_1000
 * description:  calculates 1000*atan(x/1000)
-*               based on atan approx for x > 0                         
+*               based on atan approx for x > 0
 *                              atan(x) = x/((float)1.0f+(float)0.280872f*x*x)  if x < 1
 *                                              = pi/2 - x/((float)0.280872f +x*x)          if x >= 1
 * return:       1000*atan(x/1000)
 *
 **********************************************************************************/
-static Word16 atan_1000(Word32 val) 
+static Word16 atan_1000(Word32 val)
 {
   Word32 y;
 
-   
+
   if(L_sub(val, 1000) < 0) {
     y = extract_l(((1000 * val) / (1000 + ((val * val) / ATAN_COEF1))));
   }
@@ -126,9 +126,9 @@ static Word16 BarcLineValue(Word16 noOfLines, Word16 fftLine, Word32 samplingFre
   /* center frequency of fft line */
   center_freq = (fftLine * samplingFreq) / (noOfLines << 1);
   temp =  atan_1000((center_freq << 2) / (3*10));
-  bvalFFTLine = 
+  bvalFFTLine =
     (26600 * atan_1000((center_freq*76) / 100) + 7*temp*temp) / (2*1000*1000 / BARC_SCALE);
-  
+
   return saturate(bvalFFTLine);
 }
 
@@ -148,17 +148,17 @@ static void initThrQuiet(Word16  numPb,
   for(i=0; i<numPb; i++) {
     Word16 bv1, bv2;
 
-     
+
     if (i>0)
       bv1 = (pbBarcVal[i] + pbBarcVal[i-1]) >> 1;
     else
       bv1 = pbBarcVal[i] >> 1;
 
-     
+
     if (i < (numPb - 1))
       bv2 = (pbBarcVal[i] + pbBarcVal[i+1]) >> 1;
     else {
-      bv2 = pbBarcVal[i];                                        
+      bv2 = pbBarcVal[i];
     }
 
     bv1 = min((bv1 / BARC_SCALE), max_bark);
@@ -166,9 +166,9 @@ static void initThrQuiet(Word16  numPb,
 
     barcThrQuiet = min(BARC_THR_QUIET[bv1], BARC_THR_QUIET[bv2]);
 
-    
+
     /*
-      we calculate 
+      we calculate
       pow(10.0f,(float)(barcThrQuiet - ABS_LEV)*0.1)*(float)ABS_LOW*(pbOffset[i+1] - pbOffset[i]);
     */
 
@@ -196,47 +196,47 @@ static void initSpreading(Word16  numPb,
   Word16 i;
   Word16 maskLowSprEn, maskHighSprEn;
 
-   
+
   if (sub(blockType, SHORT_WINDOW) != 0) {
-    maskLowSprEn = maskLowSprEnLong;                                     
-       
+    maskLowSprEn = maskLowSprEnLong;
+
     if (bitrate > 22000)
       maskHighSprEn = maskHighSprEnLong;
     else
       maskHighSprEn = maskHighSprEnLongLowBr;
   }
   else {
-    maskLowSprEn = maskLowSprEnShort;            
-    maskHighSprEn = maskHighSprEnShort;          
+    maskLowSprEn = maskLowSprEnShort;
+    maskHighSprEn = maskHighSprEnShort;
   }
 
   for(i=0; i<numPb; i++) {
-     
+
     if (i > 0) {
       Word32 dbVal;
       Word16 dbark = pbBarcValue[i] - pbBarcValue[i-1];
 
       /*
-        we calulate pow(10.0f, -0.1*dbVal/BARC_SCALE) 
+        we calulate pow(10.0f, -0.1*dbVal/BARC_SCALE)
       */
       dbVal = (maskHigh * dbark);
       pbMaskHiFactor[i] = round16(pow2_xy(L_negate(dbVal), (Word32)LOG2_1000));             /* 0.301 log10(2) */
-       
+
       dbVal = (maskLow * dbark);
-      pbMaskLoFactor[i-1] = round16(pow2_xy(L_negate(dbVal),(Word32)LOG2_1000)); 
-       
-      
+      pbMaskLoFactor[i-1] = round16(pow2_xy(L_negate(dbVal),(Word32)LOG2_1000));
+
+
       dbVal = (maskHighSprEn * dbark);
-      pbMaskHiFactorSprEn[i] =  round16(pow2_xy(L_negate(dbVal),(Word32)LOG2_1000)); 
+      pbMaskHiFactorSprEn[i] =  round16(pow2_xy(L_negate(dbVal),(Word32)LOG2_1000));
       dbVal = (maskLowSprEn * dbark);
       pbMaskLoFactorSprEn[i-1] = round16(pow2_xy(L_negate(dbVal),(Word32)LOG2_1000));
     }
     else {
-      pbMaskHiFactor[i] = 0;                     
-      pbMaskLoFactor[numPb-1] = 0;               
+      pbMaskHiFactor[i] = 0;
+      pbMaskLoFactor[numPb-1] = 0;
 
-      pbMaskHiFactorSprEn[i] = 0;                
-      pbMaskLoFactorSprEn[numPb-1] = 0;          
+      pbMaskHiFactorSprEn[i] = 0;
+      pbMaskLoFactorSprEn[numPb-1] = 0;
     }
   }
 
@@ -258,12 +258,12 @@ static void initBarcValues(Word16  numPb,
   Word16 i;
   Word16 pbBval0, pbBval1;
 
-  pbBval0 = 0;                                       
+  pbBval0 = 0;
 
   for(i=0; i<numPb; i++){
     pbBval1 = BarcLineValue(numLines, pbOffset[i+1], samplingFrequency);
     pbBval[i] = (pbBval0 + pbBval1) >> 1;
-    pbBval0 = pbBval1;                              
+    pbBval0 = pbBval1;
   }
 }
 
@@ -295,38 +295,38 @@ static void initMinSnr(const Word32  bitrate,
 
   pePerWindow = bits2pe(extract_l((bitrate * numLines) / samplerate));
 
-  pbVal0 = 0;                                                    
+  pbVal0 = 0;
 
   for (sfb=0; sfb<sfbActive; sfb++) {
 
     pbVal1 = (pbBarcVal[sfb] << 1) - pbVal0;
     barcWidth = pbVal1 - pbVal0;
-    pbVal0 = pbVal1;                                             
+    pbVal0 = pbVal1;
 
     /* allow at least 2.4% of pe for each active barc */
        pePart = ((pePerWindow * 24) * (max_bark * barcWidth)) /
         (pbBarcVal[sfbActive-1] * (sfbOffset[sfb+1] - sfbOffset[sfb]));
-   
-      
-    pePart = min(pePart, 8400); 
+
+
+    pePart = min(pePart, 8400);
     pePart = max(pePart, 1400);
 
     /* minSnr(n) = 1/(2^sfbPemin(n)/w(n) - 1.5)*/
        /* we add an offset of 2^16 to the pow functions */
        /* 0xc000 = 1.5*(1 << 15)*/
-      
+
     snr = pow2_xy((pePart - 16*1000),1000) - 0x0000c000;
-      
+
     if(snr > 0x00008000)
        {
                shift = norm_l(snr);
-               snr = Div_32(0x00008000 << shift, snr << shift);  
+               snr = Div_32(0x00008000 << shift, snr << shift);
        }
        else
        {
                snr = 0x7fffffff;
        }
-      
+
     /* upper limit is -1 dB */
     snr = min(snr, c_maxsnr);
     /* lower limit is -25 dB */
@@ -354,7 +354,7 @@ Word16 InitPsyConfigurationLong(Word32 bitrate,
   /*
     init sfb table
   */
-  samplerateindex = GetSRIndex(samplerate);  
+  samplerateindex = GetSRIndex(samplerate);
   psyConf->sfbCnt = sfBandTotalLong[samplerateindex];
   psyConf->sfbOffset = sfBandTabLong + sfBandTabLongOffset[samplerateindex];
   psyConf->sampRateIdx = samplerateindex;
@@ -391,19 +391,19 @@ Word16 InitPsyConfigurationLong(Word32 bitrate,
   /*
     init ratio
   */
-  psyConf->ratio = c_ratio;      
+  psyConf->ratio = c_ratio;
 
-  psyConf->maxAllowedIncreaseFactor = 2;              
-  psyConf->minRemainingThresholdFactor = c_minRemainingThresholdFactor;    /* 0.01 *(1 << 15)*/  
+  psyConf->maxAllowedIncreaseFactor = 2;
+  psyConf->minRemainingThresholdFactor = c_minRemainingThresholdFactor;    /* 0.01 *(1 << 15)*/
 
-  psyConf->clipEnergy = c_maxClipEnergyLong;                   
+  psyConf->clipEnergy = c_maxClipEnergyLong;
   psyConf->lowpassLine = extract_l((bandwidth<<1) * FRAME_LEN_LONG / samplerate);
 
   for (sfb = 0; sfb < psyConf->sfbCnt; sfb++) {
     if (sub(psyConf->sfbOffset[sfb], psyConf->lowpassLine) >= 0)
       break;
   }
-  psyConf->sfbActive = sfb;                 
+  psyConf->sfbActive = sfb;
 
   /*
     calculate minSnr
@@ -429,7 +429,7 @@ Word16 InitPsyConfigurationLong(Word32 bitrate,
 Word16 InitPsyConfigurationShort(Word32 bitrate,
                                  Word32 samplerate,
                                  Word16 bandwidth,
-                                 PSY_CONFIGURATION_SHORT *psyConf) 
+                                 PSY_CONFIGURATION_SHORT *psyConf)
 {
   Word32 samplerateindex;
   Word16 sfbBarcVal[MAX_SFB_SHORT];
@@ -437,7 +437,7 @@ Word16 InitPsyConfigurationShort(Word32 bitrate,
   /*
     init sfb table
   */
-  samplerateindex = GetSRIndex(samplerate);  
+  samplerateindex = GetSRIndex(samplerate);
   psyConf->sfbCnt = sfBandTotalShort[samplerateindex];
   psyConf->sfbOffset = sfBandTabShort + sfBandTabShortOffset[samplerateindex];
   psyConf->sampRateIdx = samplerateindex;
@@ -473,21 +473,21 @@ Word16 InitPsyConfigurationShort(Word32 bitrate,
   /*
     init ratio
   */
-  psyConf->ratio = c_ratio;                                                      
+  psyConf->ratio = c_ratio;
 
-  psyConf->maxAllowedIncreaseFactor = 2;                                         
-  psyConf->minRemainingThresholdFactor = c_minRemainingThresholdFactor;                                 
+  psyConf->maxAllowedIncreaseFactor = 2;
+  psyConf->minRemainingThresholdFactor = c_minRemainingThresholdFactor;
 
-  psyConf->clipEnergy = c_maxClipEnergyShort;                                    
+  psyConf->clipEnergy = c_maxClipEnergyShort;
 
   psyConf->lowpassLine = extract_l(((bandwidth << 1) * FRAME_LEN_SHORT) / samplerate);
+
   for (sfb = 0; sfb < psyConf->sfbCnt; sfb++) {
-     
+
     if (psyConf->sfbOffset[sfb] >= psyConf->lowpassLine)
       break;
   }
-  psyConf->sfbActive = sfb;                                                      
+  psyConf->sfbActive = sfb;
 
   /*
     calculate minSnr
index 3d0a355..085acb8 100644 (file)
@@ -81,7 +81,7 @@ Word16 PsyNew(PSY_KERNEL *hPsy, Word32 nChan, VO_MEM_OPERATOR *pMemOP)
   Word32 *mdctSpectrum;
   Word32 *scratchTNS;
   Word16 *mdctDelayBuffer;
-  
+
   mdctSpectrum = (Word32 *)mem_malloc(pMemOP, nChan * FRAME_LEN_LONG * sizeof(Word32), 32, VO_INDEX_ENC_AAC);
   if(NULL == mdctSpectrum)
          return 1;
@@ -99,7 +99,7 @@ Word16 PsyNew(PSY_KERNEL *hPsy, Word32 nChan, VO_MEM_OPERATOR *pMemOP)
   }
 
   for (i=0; i<nChan; i++){
-    hPsy->psyData[i].mdctDelayBuffer = mdctDelayBuffer + i*BLOCK_SWITCHING_OFFSET;      
+    hPsy->psyData[i].mdctDelayBuffer = mdctDelayBuffer + i*BLOCK_SWITCHING_OFFSET;
     hPsy->psyData[i].mdctSpectrum = mdctSpectrum + i*FRAME_LEN_LONG;
   }
 
@@ -124,12 +124,12 @@ Word16 PsyDelete(PSY_KERNEL  *hPsy, VO_MEM_OPERATOR *pMemOP)
   {
        if(hPsy->psyData[0].mdctDelayBuffer)
                mem_free(pMemOP, hPsy->psyData[0].mdctDelayBuffer, VO_INDEX_ENC_AAC);
-      
+
     if(hPsy->psyData[0].mdctSpectrum)
                mem_free(pMemOP, hPsy->psyData[0].mdctSpectrum, VO_INDEX_ENC_AAC);
 
     for (nch=0; nch<MAX_CHANNELS; nch++){
-         hPsy->psyData[nch].mdctDelayBuffer = NULL;      
+         hPsy->psyData[nch].mdctDelayBuffer = NULL;
          hPsy->psyData[nch].mdctSpectrum = NULL;
        }
 
@@ -216,14 +216,14 @@ Word16 psyMainInit(PSY_KERNEL *hPsy,
 
   if (!err)
     for(ch=0;ch < channels;ch++){
-  
+
       InitBlockSwitching(&hPsy->psyData[ch].blockSwitchingControl,
                          bitRate, channels);
 
       InitPreEchoControl(hPsy->psyData[ch].sfbThresholdnm1,
                          hPsy->psyConfLong.sfbCnt,
                          hPsy->psyConfLong.sfbThresholdQuiet);
-      hPsy->psyData[ch].mdctScalenm1 = 0;                                
+      hPsy->psyData[ch].mdctScalenm1 = 0;
     }
 
        return(err);
@@ -241,7 +241,7 @@ Word16 psyMainInit(PSY_KERNEL *hPsy,
 
 Word16 psyMain(Word16                   nChannels,
                ELEMENT_INFO            *elemInfo,
-               Word16                  *timeSignal, 
+               Word16                  *timeSignal,
                PSY_DATA                 psyData[MAX_CHANNELS],
                TNS_DATA                 tnsData[MAX_CHANNELS],
                PSY_CONFIGURATION_LONG  *hPsyConfLong,
@@ -260,8 +260,8 @@ Word16 psyMain(Word16                   nChannels,
   Word16 channels;
   Word16 maxScale;
 
-  channels = elemInfo->nChannelsInEl;                            
-  maxScale = 0;                                                  
+  channels = elemInfo->nChannelsInEl;
+  maxScale = 0;
 
   /* block switching */
   for(ch = 0; ch < channels; ch++) {
@@ -291,7 +291,7 @@ Word16 psyMain(Word16                   nChannels,
   /* common scaling for all channels */
   for (ch=0; ch<channels; ch++) {
     Word16 scaleDiff = maxScale - mdctScalingArray[ch];
-     
+
     if (scaleDiff > 0) {
       Word32 *Spectrum = psyData[ch].mdctSpectrum;
          for(line=0; line<FRAME_LEN_LONG; line++) {
@@ -299,11 +299,11 @@ Word16 psyMain(Word16                   nChannels,
                Spectrum++;
       }
     }
-    psyData[ch].mdctScale = maxScale;                                    
+    psyData[ch].mdctScale = maxScale;
   }
 
   for (ch=0; ch<channels; ch++) {
-     
+
     if(psyData[ch].blockSwitchingControl.windowSequence != SHORT_WINDOW) {
       /* update long block parameter */
          advancePsychLong(&psyData[ch],
@@ -317,7 +317,7 @@ Word16 psyMain(Word16                   nChannels,
       /* determine maxSfb */
       for (sfb=hPsyConfLong->sfbCnt-1; sfb>=0; sfb--) {
         for (line=hPsyConfLong->sfbOffset[sfb+1] - 1; line>=hPsyConfLong->sfbOffset[sfb]; line--) {
-           
+
           if (psyData[ch].mdctSpectrum[line] != 0) break;
         }
         if (line >= hPsyConfLong->sfbOffset[sfb]) break;
@@ -326,7 +326,7 @@ Word16 psyMain(Word16                   nChannels,
 
       /* Calc bandwise energies for mid and side channel
          Do it only if 2 channels exist */
-       
+
       if (ch == 1)
         advancePsychLongMS(psyData, hPsyConfLong);
     }
@@ -341,7 +341,7 @@ Word16 psyMain(Word16                   nChannels,
 
       /* Calc bandwise energies for mid and side channel
          Do it only if 2 channels exist */
-       
+
       if (ch == 1)
         advancePsychShortMS (psyData, hPsyConfShort);
     }
@@ -349,7 +349,7 @@ Word16 psyMain(Word16                   nChannels,
 
   /* group short data */
   for(ch=0; ch<channels; ch++) {
-     
+
     if (psyData[ch].blockSwitchingControl.windowSequence == SHORT_WINDOW) {
       groupShortData(psyData[ch].mdctSpectrum,
                      pScratchTns,
@@ -374,10 +374,10 @@ Word16 psyMain(Word16                   nChannels,
     stereo Processing
   */
   if (channels == 2) {
-    psyOutElement->toolsInfo.msDigest = MS_NONE;                 
+    psyOutElement->toolsInfo.msDigest = MS_NONE;
     maxSfbPerGroup[0] = maxSfbPerGroup[1] = max(maxSfbPerGroup[0], maxSfbPerGroup[1]);
 
-     
+
     if (psyData[0].blockSwitchingControl.windowSequence != SHORT_WINDOW)
       MsStereoProcessing(psyData[0].sfbEnergy.sfbLong,
                          psyData[1].sfbEnergy.sfbLong,
@@ -420,7 +420,7 @@ Word16 psyMain(Word16                   nChannels,
     build output
   */
   for(ch=0;ch<channels;ch++) {
-     
+
     if (psyData[ch].blockSwitchingControl.windowSequence != SHORT_WINDOW)
       BuildInterface(psyData[ch].mdctSpectrum,
                      psyData[ch].mdctScale,
@@ -483,7 +483,7 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
   /* low pass */
   data0 = psyData->mdctSpectrum + hPsyConfLong->lowpassLine;
   for(i=hPsyConfLong->lowpassLine; i<FRAME_LEN_LONG; i++) {
-    *data0++ = 0;                                
+    *data0++ = 0;
   }
 
   /* Calc sfb-bandwise mdct-energies for left and right channel */
@@ -505,7 +505,7 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
             psyData->blockSwitchingControl.windowSequence,
             psyData->sfbEnergy.sfbLong);
 
-  /*  TnsSync */   
+  /*  TnsSync */
   if (ch == 1) {
     TnsSync(tnsData,
             tnsData2,
@@ -514,7 +514,7 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
             psyData->blockSwitchingControl.windowSequence);
   }
 
-  /*  Tns Encoder */ 
+  /*  Tns Encoder */
   TnsEncode(&psyOutChannel->tnsInfo,
             tnsData,
             hPsyConfLong->sfbCnt,
@@ -532,15 +532,15 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
     *data1++ = min(tdata, clipEnergy);
   }
 
-  /* Calc sfb-bandwise mdct-energies for left and right channel again */   
+  /* Calc sfb-bandwise mdct-energies for left and right channel again */
   if (tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive!=0) {
-    Word16 tnsStartBand = hPsyConfLong->tnsConf.tnsStartBand;                            
+    Word16 tnsStartBand = hPsyConfLong->tnsConf.tnsStartBand;
     CalcBandEnergy( psyData->mdctSpectrum,
                     hPsyConfLong->sfbOffset+tnsStartBand,
                     hPsyConfLong->sfbActive - tnsStartBand,
                     psyData->sfbEnergy.sfbLong+tnsStartBand,
                     &psyData->sfbEnergySum.sfbLong);
-    
+
        data0 = psyData->sfbEnergy.sfbLong;
        tdata = psyData->sfbEnergySum.sfbLong;
        for (i=0; i<tnsStartBand; i++)
@@ -565,13 +565,13 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
          data0++; data1++;
   }
 
-  /* preecho control */   
+  /* preecho control */
   if (psyData->blockSwitchingControl.windowSequence == STOP_WINDOW) {
     data0 = psyData->sfbThresholdnm1;
        for (i=hPsyConfLong->sfbCnt; i; i--) {
-      *data0++ = MAX_32;                              
+      *data0++ = MAX_32;
     }
-    psyData->mdctScalenm1 = 0;                                           
+    psyData->mdctScalenm1 = 0;
   }
 
   PreEchoControl( psyData->sfbThresholdnm1,
@@ -581,15 +581,15 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
                   psyData->sfbThreshold.sfbLong,
                   psyData->mdctScale,
                   psyData->mdctScalenm1);
-  psyData->mdctScalenm1 = psyData->mdctScale;                            
+  psyData->mdctScalenm1 = psyData->mdctScale;
+
 
-   
   if (psyData->blockSwitchingControl.windowSequence== START_WINDOW) {
     data0 = psyData->sfbThresholdnm1;
        for (i=hPsyConfLong->sfbCnt; i; i--) {
-      *data0++ = MAX_32;                              
+      *data0++ = MAX_32;
     }
-    psyData->mdctScalenm1 = 0;                                           
+    psyData->mdctScalenm1 = 0;
   }
 
   /* apply tns mult table on cb thresholds */
@@ -603,13 +603,13 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
   data0 = psyData->sfbSpreadedEnergy.sfbLong;
   data1 = psyData->sfbEnergy.sfbLong;
   for (i=hPsyConfLong->sfbCnt; i; i--) {
-    //psyData->sfbSpreadedEnergy.sfbLong[i] = psyData->sfbEnergy.sfbLong[i];       
+    //psyData->sfbSpreadedEnergy.sfbLong[i] = psyData->sfbEnergy.sfbLong[i];
          *data0++ = *data1++;
   }
 
   /* spreading energy */
   SpreadingMax(hPsyConfLong->sfbCnt,
-               hPsyConfLong->sfbMaskLowFactorSprEn, 
+               hPsyConfLong->sfbMaskLowFactorSprEn,
                hPsyConfLong->sfbMaskHighFactorSprEn,
                psyData->sfbSpreadedEnergy.sfbLong);
 
@@ -619,7 +619,7 @@ static Word16 advancePsychLong(PSY_DATA* psyData,
 /*****************************************************************************
 *
 * function name: advancePsychLongMS
-* description:   update mdct-energies for left add or minus right channel 
+* description:   update mdct-energies for left add or minus right channel
 *                              for long block
 *
 *****************************************************************************/
@@ -657,7 +657,7 @@ static Word16 advancePsychShort(PSY_DATA* psyData,
   Word32 w;
   Word32 normEnergyShift = (psyData->mdctScale + 1) << 1; /* in reference code, mdct spectrum must be multipied with 2, so +1 */
   Word32 clipEnergy = hPsyConfShort->clipEnergy >> normEnergyShift;
-  Word32 wOffset = 0;     
+  Word32 wOffset = 0;
   Word32 *data0, *data1;
 
   for(w = 0; w < TRANS_FAC; w++) {
@@ -666,7 +666,7 @@ static Word16 advancePsychShort(PSY_DATA* psyData,
     /* low pass */
     data0 = psyData->mdctSpectrum + wOffset + hPsyConfShort->lowpassLine;
        for(i=hPsyConfShort->lowpassLine; i<FRAME_LEN_SHORT; i++){
-      *data0++ = 0;                                      
+      *data0++ = 0;
     }
 
     /* Calc sfb-bandwise mdct-energies for left and right channel */
@@ -713,9 +713,9 @@ static Word16 advancePsychShort(PSY_DATA* psyData,
       *data0++ = min(tdata, clipEnergy);
     }
 
-    /* Calc sfb-bandwise mdct-energies for left and right channel again */     
+    /* Calc sfb-bandwise mdct-energies for left and right channel again */
     if (tnsData->dataRaw.tnsShort.subBlockInfo[w].tnsActive != 0) {
-      Word16 tnsStartBand = hPsyConfShort->tnsConf.tnsStartBand;                            
+      Word16 tnsStartBand = hPsyConfShort->tnsConf.tnsStartBand;
       CalcBandEnergy( psyData->mdctSpectrum+wOffset,
                       hPsyConfShort->sfbOffset+tnsStartBand,
                       (hPsyConfShort->sfbActive - tnsStartBand),
@@ -748,7 +748,7 @@ static Word16 advancePsychShort(PSY_DATA* psyData,
        }
 
 
-    /* preecho */     
+    /* preecho */
     PreEchoControl( psyData->sfbThresholdnm1,
                     hPsyConfShort->sfbCnt,
                     hPsyConfShort->maxAllowedIncreaseFactor,
@@ -770,14 +770,14 @@ static Word16 advancePsychShort(PSY_DATA* psyData,
          *data0++ = *data1++;
     }
     SpreadingMax(hPsyConfShort->sfbCnt,
-                 hPsyConfShort->sfbMaskLowFactorSprEn, 
+                 hPsyConfShort->sfbMaskLowFactorSprEn,
                  hPsyConfShort->sfbMaskHighFactorSprEn,
                  psyData->sfbSpreadedEnergy.sfbShort[w]);
 
     wOffset += FRAME_LEN_SHORT;
   } /* for TRANS_FAC */
 
-  psyData->mdctScalenm1 = psyData->mdctScale;              
+  psyData->mdctScalenm1 = psyData->mdctScale;
 
   return 0;
 }
@@ -785,7 +785,7 @@ static Word16 advancePsychShort(PSY_DATA* psyData,
 /*****************************************************************************
 *
 * function name: advancePsychShortMS
-* description:   update mdct-energies for left add or minus right channel 
+* description:   update mdct-energies for left add or minus right channel
 *                              for short block
 *
 *****************************************************************************/
@@ -793,7 +793,7 @@ static Word16 advancePsychShortMS (PSY_DATA psyData[MAX_CHANNELS],
                                    const PSY_CONFIGURATION_SHORT *hPsyConfShort)
 {
   Word32 w, wOffset;
-  wOffset = 0;                                   
+  wOffset = 0;
   for(w=0; w<TRANS_FAC; w++) {
     CalcBandEnergyMS(psyData[0].mdctSpectrum+wOffset,
                      psyData[1].mdctSpectrum+wOffset,
index e8c39e4..df6d46e 100644 (file)
@@ -68,12 +68,12 @@ static Word16 calcFrameLen(Word32 bitRate,
   result = (FRAME_LEN_LONG >> 3) * bitRate;
   quot = result / sampleRate;
 
-   
+
   if (mode == FRAME_LEN_BYTES_MODULO) {
     result -= quot * sampleRate;
   }
   else { /* FRAME_LEN_BYTES_INT */
-    result = quot;                                      
+    result = quot;
   }
 
   return result;
@@ -83,7 +83,7 @@ static Word16 calcFrameLen(Word32 bitRate,
 *
 *  function name:framePadding
 *  description: Calculates if padding is needed for actual frame
-*  returns: paddingOn or not 
+*  returns: paddingOn or not
 *
 *****************************************************************************/
 static Word16 framePadding(Word32 bitRate,
@@ -93,16 +93,16 @@ static Word16 framePadding(Word32 bitRate,
   Word16 paddingOn;
   Word16 difference;
 
-  paddingOn = 0;                                                 
+  paddingOn = 0;
 
   difference = calcFrameLen( bitRate,
                              sampleRate,
                              FRAME_LEN_BYTES_MODULO );
   *paddingRest = *paddingRest - difference;
 
-   
+
   if (*paddingRest <= 0 ) {
-    paddingOn = 1;                                               
+    paddingOn = 1;
     *paddingRest = *paddingRest + sampleRate;
   }
 
@@ -123,12 +123,12 @@ Word16 QCOutNew(QC_OUT *hQC, Word16 nChannels, VO_MEM_OPERATOR *pMemOP)
   Word32 i;
   Word16 *quantSpec;
   Word16 *scf;
-  UWord16 *maxValueInSfb;      
-       
+  UWord16 *maxValueInSfb;
+
   quantSpec = (Word16 *)mem_malloc(pMemOP, nChannels * FRAME_LEN_LONG * sizeof(Word16), 32, VO_INDEX_ENC_AAC);
   if(NULL == quantSpec)
          return 1;
-  scf = (Word16 *)mem_malloc(pMemOP, nChannels * MAX_GROUPED_SFB * sizeof(Word16), 32, VO_INDEX_ENC_AAC);     
+  scf = (Word16 *)mem_malloc(pMemOP, nChannels * MAX_GROUPED_SFB * sizeof(Word16), 32, VO_INDEX_ENC_AAC);
   if(NULL == scf)
   {
          return 1;
@@ -141,12 +141,12 @@ Word16 QCOutNew(QC_OUT *hQC, Word16 nChannels, VO_MEM_OPERATOR *pMemOP)
 
   for (i=0; i<nChannels; i++) {
     hQC->qcChannel[i].quantSpec = quantSpec + i*FRAME_LEN_LONG;
-    
+
     hQC->qcChannel[i].maxValueInSfb = maxValueInSfb + i*MAX_GROUPED_SFB;
-    
+
     hQC->qcChannel[i].scf = scf + i*MAX_GROUPED_SFB;
   }
+
   return 0;
 }
 
@@ -165,21 +165,21 @@ void QCOutDelete(QC_OUT* hQC, VO_MEM_OPERATOR *pMemOP)
    {
       if(hQC->qcChannel[0].quantSpec);
                 mem_free(pMemOP, hQC->qcChannel[0].quantSpec, VO_INDEX_ENC_AAC);
-    
+
       if(hQC->qcChannel[0].maxValueInSfb)
                  mem_free(pMemOP, hQC->qcChannel[0].maxValueInSfb, VO_INDEX_ENC_AAC);
-    
+
          if(hQC->qcChannel[0].scf)
                  mem_free(pMemOP, hQC->qcChannel[0].scf, VO_INDEX_ENC_AAC);
 
          for (i=0; i<MAX_CHANNELS; i++) {
                  hQC->qcChannel[i].quantSpec = NULL;
-                 
+
                  hQC->qcChannel[i].maxValueInSfb = NULL;
-                 
+
                  hQC->qcChannel[i].scf = NULL;
          }
-   } 
+   }
 }
 
 /*********************************************************************************
@@ -204,8 +204,8 @@ Word16 QCNew(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP)
 **********************************************************************************/
 void QCDelete(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP)
 {
-  /* 
+
+  /*
      nothing to do
   */
   hQC=NULL;
@@ -221,15 +221,15 @@ void QCDelete(QC_STATE *hQC, VO_MEM_OPERATOR *pMemOP)
 Word16 QCInit(QC_STATE *hQC,
               struct QC_INIT *init)
 {
-  hQC->nChannels       = init->elInfo->nChannelsInEl;              
-  hQC->maxBitsTot      = init->maxBits;                            
+  hQC->nChannels       = init->elInfo->nChannelsInEl;
+  hQC->maxBitsTot      = init->maxBits;
   hQC->bitResTot       = sub(init->bitRes, init->averageBits);
-  hQC->averageBitsTot  = init->averageBits;                        
-  hQC->maxBitFac       = init->maxBitFac;                          
+  hQC->averageBitsTot  = init->averageBits;
+  hQC->maxBitFac       = init->maxBitFac;
 
-  hQC->padding.paddingRest = init->padding.paddingRest;            
+  hQC->padding.paddingRest = init->padding.paddingRest;
 
-  hQC->globStatBits    = 3;                          /* for ID_END */ 
+  hQC->globStatBits    = 3;                          /* for ID_END */
 
   /* channel elements init */
   InitElementBits(&hQC->elementBits,
@@ -248,13 +248,13 @@ Word16 QCInit(QC_STATE *hQC,
 
 
 /*********************************************************************************
-* 
+*
 * function name: QCMain
 * description:  quantization and coding the spectrum
 * returns:      0 if success
 *
 **********************************************************************************/
-Word16 QCMain(QC_STATE* hQC,              
+Word16 QCMain(QC_STATE* hQC,
               ELEMENT_BITS* elBits,
               ATS_ELEMENT* adjThrStateElement,
               PSY_OUT_CHANNEL  psyOutChannel[MAX_CHANNELS],  /* may be modified in-place */
@@ -262,34 +262,34 @@ Word16 QCMain(QC_STATE* hQC,
               QC_OUT_CHANNEL  qcOutChannel[MAX_CHANNELS],    /* out                      */
               QC_OUT_ELEMENT* qcOutElement,
               Word16 nChannels,
-                         Word16 ancillaryDataBytes)      
+                         Word16 ancillaryDataBytes)
 {
   Word16 maxChDynBits[MAX_CHANNELS];
-  Word16 chBitDistribution[MAX_CHANNELS];  
+  Word16 chBitDistribution[MAX_CHANNELS];
   Word32 ch;
-   
+
   if (elBits->bitResLevel < 0) {
     return -1;
   }
-   
+
   if (elBits->bitResLevel > elBits->maxBitResBits) {
     return -1;
   }
 
   qcOutElement->staticBitsUsed = countStaticBitdemand(psyOutChannel,
                                                       psyOutElement,
-                                                      nChannels, 
+                                                      nChannels,
                                                                                                          qcOutElement->adtsUsed);
 
-   
+
   if (ancillaryDataBytes) {
     qcOutElement->ancBitsUsed = 7 + (ancillaryDataBytes << 3);
-     
+
     if (ancillaryDataBytes >= 15)
       qcOutElement->ancBitsUsed = qcOutElement->ancBitsUsed + 8;
   }
   else {
-    qcOutElement->ancBitsUsed = 0; 
+    qcOutElement->ancBitsUsed = 0;
   }
 
   CalcFormFactor(hQC->logSfbFormFactor, hQC->sfbNRelevantLines, hQC->logSfbEnergy, psyOutChannel, nChannels);
@@ -301,7 +301,7 @@ Word16 QCMain(QC_STATE* hQC,
                    psyOutElement,
                    chBitDistribution,
                    hQC->logSfbEnergy,
-                   hQC->sfbNRelevantLines,                   
+                   hQC->sfbNRelevantLines,
                    qcOutElement,
                                   elBits,
                                   nChannels,
@@ -323,14 +323,14 @@ Word16 QCMain(QC_STATE* hQC,
     maxChDynBits[ch] = extract_l(chBitDistribution[ch] * maxDynBits / 1000);
   }
 
-  qcOutElement->dynBitsUsed = 0;                                         
+  qcOutElement->dynBitsUsed = 0;
   for (ch = 0; ch < nChannels; ch++) {
     Word32 chDynBits;
     Flag   constraintsFulfilled;
     Word32 iter;
-    iter = 0;                                                          
+    iter = 0;
     do {
-      constraintsFulfilled = 1;                                        
+      constraintsFulfilled = 1;
 
       QuantizeSpectrum(psyOutChannel[ch].sfbCnt,
                        psyOutChannel[ch].maxSfbPerGroup,
@@ -340,14 +340,14 @@ Word16 QCMain(QC_STATE* hQC,
                        qcOutChannel[ch].globalGain,
                        qcOutChannel[ch].scf,
                        qcOutChannel[ch].quantSpec);
-       
+
       if (calcMaxValueInSfb(psyOutChannel[ch].sfbCnt,
                             psyOutChannel[ch].maxSfbPerGroup,
                             psyOutChannel[ch].sfbPerGroup,
                             psyOutChannel[ch].sfbOffsets,
                             qcOutChannel[ch].quantSpec,
                             qcOutChannel[ch].maxValueInSfb) > MAX_QUANT) {
-        constraintsFulfilled = 0;                                        
+        constraintsFulfilled = 0;
       }
 
       chDynBits = dynBitCount(qcOutChannel[ch].quantSpec,
@@ -359,24 +359,24 @@ Word16 QCMain(QC_STATE* hQC,
                               psyOutChannel[ch].sfbPerGroup,
                               psyOutChannel[ch].sfbOffsets,
                               &qcOutChannel[ch].sectionData);
-       
+
       if (chDynBits >= maxChDynBits[ch]) {
-        constraintsFulfilled = 0;                                        
+        constraintsFulfilled = 0;
       }
-       
+
       if (!constraintsFulfilled) {
         qcOutChannel[ch].globalGain = qcOutChannel[ch].globalGain + 1;
       }
 
       iter = iter + 1;
-       
+
     } while(!constraintsFulfilled);
 
     qcOutElement->dynBitsUsed = qcOutElement->dynBitsUsed + chDynBits;
 
-    qcOutChannel[ch].mdctScale    = psyOutChannel[ch].mdctScale;         
-    qcOutChannel[ch].groupingMask = psyOutChannel[ch].groupingMask;      
-    qcOutChannel[ch].windowShape  = psyOutChannel[ch].windowShape;       
+    qcOutChannel[ch].mdctScale    = psyOutChannel[ch].mdctScale;
+    qcOutChannel[ch].groupingMask = psyOutChannel[ch].groupingMask;
+    qcOutChannel[ch].windowShape  = psyOutChannel[ch].windowShape;
   }
 
   /* save dynBitsUsed for correction of bits2pe relation */
@@ -411,13 +411,13 @@ static Word16 calcMaxValueInSfb(Word16 sfbCnt,
   Word16 sfbOffs, sfb;
   Word16 maxValueAll;
 
-  maxValueAll = 0;                                       
+  maxValueAll = 0;
 
   for(sfbOffs=0;sfbOffs<sfbCnt;sfbOffs+=sfbPerGroup) {
     for (sfb = 0; sfb < maxSfbPerGroup; sfb++) {
       Word16 line;
       Word16 maxThisSfb;
-      maxThisSfb = 0;                                    
+      maxThisSfb = 0;
 
       for (line = sfbOffset[sfbOffs+sfb]; line < sfbOffset[sfbOffs+sfb+1]; line++) {
         Word16 absVal;
@@ -425,7 +425,7 @@ static Word16 calcMaxValueInSfb(Word16 sfbCnt,
         maxThisSfb = max(maxThisSfb, absVal);
       }
 
-      maxValue[sfbOffs+sfb] = maxThisSfb;                
+      maxValue[sfbOffs+sfb] = maxThisSfb;
       maxValueAll = max(maxValueAll, maxThisSfb);
     }
   }
@@ -441,15 +441,15 @@ static Word16 calcMaxValueInSfb(Word16 sfbCnt,
 **********************************************************************************/
 void updateBitres(QC_STATE* qcKernel,
                   QC_OUT*   qcOut)
-                  
+
 {
   ELEMENT_BITS *elBits;
-  qcKernel->bitResTot = 0;                               
+
+  qcKernel->bitResTot = 0;
 
   elBits = &qcKernel->elementBits;
 
-   
+
   if (elBits->averageBits > 0) {
     /* constant bitrate */
     Word16 bitsUsed;
@@ -460,8 +460,8 @@ void updateBitres(QC_STATE* qcKernel,
   }
   else {
     /* variable bitrate */
-    elBits->bitResLevel = elBits->maxBits;           
-    qcKernel->bitResTot = qcKernel->maxBitsTot;      
+    elBits->bitResLevel = elBits->maxBits;
+    qcKernel->bitResTot = qcKernel->maxBitsTot;
   }
 }
 
@@ -476,55 +476,55 @@ Word16 FinalizeBitConsumption(QC_STATE *qcKernel,
 {
   Word32 nFullFillElem;
   Word32 totFillBits;
-  Word16 diffBits;  
+  Word16 diffBits;
   Word16 bitsUsed;
 
-  totFillBits = 0;                                       
+  totFillBits = 0;
 
-  qcOut->totStaticBitsUsed = qcKernel->globStatBits;     
+  qcOut->totStaticBitsUsed = qcKernel->globStatBits;
   qcOut->totStaticBitsUsed += qcOut->qcElement.staticBitsUsed;
   qcOut->totDynBitsUsed    = qcOut->qcElement.dynBitsUsed;
   qcOut->totAncBitsUsed    = qcOut->qcElement.ancBitsUsed;
   qcOut->totFillBits       = qcOut->qcElement.fillBits;
-   
+
   if (qcOut->qcElement.fillBits) {
     totFillBits += qcOut->qcElement.fillBits;
   }
 
   nFullFillElem = (max((qcOut->totFillBits - 1), 0) / maxFillElemBits) * maxFillElemBits;
-  
+
   qcOut->totFillBits = qcOut->totFillBits - nFullFillElem;
 
   /* check fill elements */
-   
+
   if (qcOut->totFillBits > 0) {
     /* minimum Fillelement contains 7 (TAG + byte cnt) bits */
     qcOut->totFillBits = max(7, qcOut->totFillBits);
     /* fill element size equals n*8 + 7 */
-    qcOut->totFillBits = qcOut->totFillBits + ((8 - ((qcOut->totFillBits - 7) & 0x0007)) & 0x0007);     
+    qcOut->totFillBits = qcOut->totFillBits + ((8 - ((qcOut->totFillBits - 7) & 0x0007)) & 0x0007);
   }
 
   qcOut->totFillBits = qcOut->totFillBits + nFullFillElem;
 
   /* now distribute extra fillbits and alignbits over channel elements */
   qcOut->alignBits = 7 - ((qcOut->totDynBitsUsed + qcOut->totStaticBitsUsed +
-                           qcOut->totAncBitsUsed + qcOut->totFillBits - 1) & 0x0007);             
+                           qcOut->totAncBitsUsed + qcOut->totFillBits - 1) & 0x0007);
+
 
-     
   if ( (qcOut->alignBits + qcOut->totFillBits - totFillBits == 8) &&
        (qcOut->totFillBits > 8))
     qcOut->totFillBits = qcOut->totFillBits - 8;
 
-   
+
   diffBits = qcOut->alignBits + qcOut->totFillBits - totFillBits;
-   
+
   if(diffBits>=0) {
     qcOut->qcElement.fillBits += diffBits;
   }
 
   bitsUsed = qcOut->totDynBitsUsed + qcOut->totStaticBitsUsed + qcOut->totAncBitsUsed;
   bitsUsed = bitsUsed + qcOut->totFillBits + qcOut->alignBits;
-   
+
   if (bitsUsed > qcKernel->maxBitsTot) {
     return -1;
   }
@@ -564,9 +564,9 @@ Word16 AdjustBitrate(QC_STATE        *hQC,
   codeBitsLast = hQC->averageBitsTot - hQC->globStatBits;
   codeBits     = frameLen - hQC->globStatBits;
 
-  /* calculate bits for every channel element */   
+  /* calculate bits for every channel element */
   if (codeBits != codeBitsLast) {
-    Word16 totalBits = 0;                                       
+    Word16 totalBits = 0;
 
     hQC->elementBits.averageBits = (hQC->elementBits.relativeBits * codeBits) >> 16; /* relativeBits was scaled down by 2 */
     totalBits += hQC->elementBits.averageBits;
@@ -574,7 +574,7 @@ Word16 AdjustBitrate(QC_STATE        *hQC,
     hQC->elementBits.averageBits = hQC->elementBits.averageBits + (codeBits - totalBits);
   }
 
-  hQC->averageBitsTot = frameLen;                        
+  hQC->averageBitsTot = frameLen;
 
   return 0;
 }
index 973554e..54add2f 100644 (file)
@@ -34,32 +34,32 @@ static const Word32 XROUND = 0x33e425af; /* final rounding constant (-0.0946f+ 0
 
 /*****************************************************************************
 *
-* function name:pow34 
-* description: calculate $x^{\frac{3}{4}}, for 0.5 < x < 1.0$.  
+* function name:pow34
+* description: calculate $x^{\frac{3}{4}}, for 0.5 < x < 1.0$.
 *
 *****************************************************************************/
 __inline Word32 pow34(Word32 x)
 {
   /* index table using MANT_DIGITS bits, but mask out the sign bit and the MSB
-     which is always one */   
+     which is always one */
   return mTab_3_4[(x >> (INT_BITS-2-MANT_DIGITS)) & (MANT_SIZE-1)];
 }
 
 
 /*****************************************************************************
 *
-* function name:quantizeSingleLine 
-* description: quantizes spectrum  
-*              quaSpectrum = mdctSpectrum^3/4*2^(-(3/16)*gain)    
+* function name:quantizeSingleLine
+* description: quantizes spectrum
+*              quaSpectrum = mdctSpectrum^3/4*2^(-(3/16)*gain)
 *
 *****************************************************************************/
 static Word16 quantizeSingleLine(const Word16 gain, const Word32 absSpectrum)
 {
   Word32 e, minusFinalExp, finalShift;
   Word32 x;
-  Word16 qua = 0;                        
+  Word16 qua = 0;
+
 
-   
   if (absSpectrum) {
     e = norm_l(absSpectrum);
     x = pow34(absSpectrum << e);
@@ -71,7 +71,7 @@ static Word16 quantizeSingleLine(const Word16 gain, const Word32 absSpectrum)
 
     /* separate the exponent into a shift, and a multiply */
     finalShift = minusFinalExp >> 4;
-     
+
     if (finalShift < INT_BITS) {
       x = L_mpy_wx(x, pow2tominusNover16[minusFinalExp & 15]);
 
@@ -84,7 +84,7 @@ static Word16 quantizeSingleLine(const Word16 gain, const Word32 absSpectrum)
                  x >>= finalShift;
          else
                  x <<= (-finalShift);
-               
+
          qua = saturate(x);
     }
   }
@@ -94,10 +94,10 @@ static Word16 quantizeSingleLine(const Word16 gain, const Word32 absSpectrum)
 
 /*****************************************************************************
 *
-* function name:quantizeLines 
-* description: quantizes spectrum lines  
-*              quaSpectrum = mdctSpectrum^3/4*2^(-(3/16)*gain)    
-*  input: global gain, number of lines to process, spectral data         
+* function name:quantizeLines
+* description: quantizes spectrum lines
+*              quaSpectrum = mdctSpectrum^3/4*2^(-(3/16)*gain)
+*  input: global gain, number of lines to process, spectral data
 *  output: quantized spectrum
 *
 *****************************************************************************/
@@ -116,15 +116,15 @@ static void quantizeLines(const Word16 gain,
   pquat = quantBorders[m];
 
   g += 16;
-  
+
   if(g >= 0)
   {
        for (line=0; line<noOfLines; line++) {
          Word32 qua;
-         qua = 0;                                                     
-    
+         qua = 0;
+
          mdctSpeL = mdctSpectrum[line];
-       
+
          if (mdctSpeL) {
                Word32 sa;
                Word32 saShft;
@@ -134,27 +134,27 @@ static void quantizeLines(const Word16 gain,
            saShft = sa >> g;
 
         if (saShft > pquat[0]) {
-         
+
           if (saShft < pquat[1]) {
-             
+
             qua = mdctSpeL>0 ? 1 : -1;
                  }
           else {
-           
+
             if (saShft < pquat[2]) {
-               
+
               qua = mdctSpeL>0 ? 2 : -2;
                        }
             else {
-             
+
               if (saShft < pquat[3]) {
-                 
+
                 qua = mdctSpeL>0 ? 3 : -3;
                          }
               else {
                 qua = quantizeSingleLine(gain, sa);
                 /* adjust the sign. Since 0 < qua < 1, this cannot overflow. */
-               
+
                 if (mdctSpeL < 0)
                   qua = -qua;
                          }
@@ -162,17 +162,17 @@ static void quantizeLines(const Word16 gain,
                  }
                }
          }
-      quaSpectrum[line] = qua ;                                    
+      quaSpectrum[line] = qua ;
        }
   }
   else
   {
        for (line=0; line<noOfLines; line++) {
          Word32 qua;
-         qua = 0;                                                     
-    
+         qua = 0;
+
          mdctSpeL = mdctSpectrum[line];
-       
+
          if (mdctSpeL) {
                Word32 sa;
                Word32 saShft;
@@ -181,27 +181,27 @@ static void quantizeLines(const Word16 gain,
         saShft = sa << g;
 
         if (saShft > pquat[0]) {
-         
+
           if (saShft < pquat[1]) {
-             
+
             qua = mdctSpeL>0 ? 1 : -1;
                  }
           else {
-           
+
             if (saShft < pquat[2]) {
-               
+
               qua = mdctSpeL>0 ? 2 : -2;
                        }
             else {
-             
+
               if (saShft < pquat[3]) {
-                 
+
                 qua = mdctSpeL>0 ? 3 : -3;
                          }
               else {
                 qua = quantizeSingleLine(gain, sa);
                 /* adjust the sign. Since 0 < qua < 1, this cannot overflow. */
-               
+
                 if (mdctSpeL < 0)
                   qua = -qua;
                          }
@@ -209,8 +209,8 @@ static void quantizeLines(const Word16 gain,
                  }
                }
          }
-      quaSpectrum[line] = qua ;                                    
-       }         
+      quaSpectrum[line] = qua ;
+       }
   }
 
 }
@@ -218,10 +218,10 @@ static void quantizeLines(const Word16 gain,
 
 /*****************************************************************************
 *
-* function name:iquantizeLines 
+* function name:iquantizeLines
 * description: iquantizes spectrum lines without sign
-*              mdctSpectrum = iquaSpectrum^4/3 *2^(0.25*gain) 
-* input: global gain, number of lines to process,quantized spectrum        
+*              mdctSpectrum = iquaSpectrum^4/3 *2^(0.25*gain)
+* input: global gain, number of lines to process,quantized spectrum
 * output: spectral data
 *
 *****************************************************************************/
@@ -234,11 +234,11 @@ static void iquantizeLines(const Word16 gain,
   Word32   iquantizershift;
   Word32   line;
 
-  iquantizermod = gain & 3;                              
+  iquantizermod = gain & 3;
   iquantizershift = gain >> 2;
 
   for (line=0; line<noOfLines; line++) {
-     
+
     if( quantSpectrum[line] != 0 ) {
       Word32 accu;
       Word32 ex;
@@ -252,19 +252,19 @@ static void iquantizeLines(const Word16 gain,
       accu = accu << ex;
       specExp = INT_BITS-1 - ex;
 
-      tabIndex = (accu >> (INT_BITS-2-MANT_DIGITS)) & (~MANT_SIZE);        
+      tabIndex = (accu >> (INT_BITS-2-MANT_DIGITS)) & (~MANT_SIZE);
 
       /* calculate "mantissa" ^4/3 */
-      s = mTab_4_3[tabIndex];                                                    
+      s = mTab_4_3[tabIndex];
 
       /* get approperiate exponent multiplier for specExp^3/4 combined with scfMod */
-      t = specExpMantTableComb_enc[iquantizermod][specExp];                      
+      t = specExpMantTableComb_enc[iquantizermod][specExp];
 
       /* multiply "mantissa" ^4/3 with exponent multiplier */
       accu = MULHIGH(s, t);
 
       /* get approperiate exponent shifter */
-      specExp = specExpTableComb_enc[iquantizermod][specExp];                    
+      specExp = specExpTableComb_enc[iquantizermod][specExp];
 
       specExp += iquantizershift + 1;
          if(specExp >= 0)
@@ -273,7 +273,7 @@ static void iquantizeLines(const Word16 gain,
                  mdctSpectrum[line] = accu >> (-specExp);
     }
     else {
-      mdctSpectrum[line] = 0;                                                    
+      mdctSpectrum[line] = 0;
     }
   }
 }
@@ -301,7 +301,7 @@ void QuantizeSpectrum(Word16 sfbCnt,
   for(sfbOffs=0;sfbOffs<sfbCnt;sfbOffs+=sfbPerGroup) {
     Word32 sfbNext ;
     for (sfb = 0; sfb < maxSfbPerGroup; sfb = sfbNext) {
-      Word16 scalefactor = scalefactors[sfbOffs+sfb];                          
+      Word16 scalefactor = scalefactors[sfbOffs+sfb];
       /* coalesce sfbs with the same scalefactor */
       for (sfbNext = sfb+1;
            sfbNext < maxSfbPerGroup && scalefactor == scalefactors[sfbOffs+sfbNext];
@@ -318,7 +318,7 @@ void QuantizeSpectrum(Word16 sfbCnt,
 
 /*****************************************************************************
 *
-* function name:calcSfbDist 
+* function name:calcSfbDist
 * description: quantizes and requantizes lines to calculate distortion
 * input:  number of lines to be quantized, ...
 * output: distortion
@@ -338,14 +338,14 @@ Word32 calcSfbDist(const Word32 *spec,
 
   pquat = quantBorders[m];
   repquat = quantRecon[m];
-       
-  dist = 0;  
+
+  dist = 0;
   g += 16;
   if(g2 < 0 && g >= 0)
-  {      
+  {
          g2 = -g2;
-         for(line=0; line<sfbWidth; line++) {            
-                 if (spec[line]) {                       
+         for(line=0; line<sfbWidth; line++) {
+                 if (spec[line]) {
                          Word32 diff;
                          Word32 distSingle;
                          Word32 sa;
@@ -359,19 +359,19 @@ Word32 calcSfbDist(const Word32 *spec,
                                  distSingle = (saShft * saShft) >> g2;
                          }
                          else {
-                                 
+
                                  if (saShft < pquat[1]) {
                                          diff = saShft - repquat[0];
                                          distSingle = (diff * diff) >> g2;
                                  }
                                  else {
-                                         
+
                                          if (saShft < pquat[2]) {
                                                  diff = saShft - repquat[1];
                                                  distSingle = (diff * diff) >> g2;
                                          }
                                          else {
-                                                 
+
                                                  if (saShft < pquat[3]) {
                                                          diff = saShft - repquat[2];
                                                          distSingle = (diff * diff) >> g2;
@@ -387,15 +387,15 @@ Word32 calcSfbDist(const Word32 *spec,
                                          }
                                  }
                          }
-                         
+
                          dist = L_add(dist, distSingle);
                  }
          }
   }
   else
   {
-         for(line=0; line<sfbWidth; line++) {            
-                 if (spec[line]) {                       
+         for(line=0; line<sfbWidth; line++) {
+                 if (spec[line]) {
                          Word32 diff;
                          Word32 distSingle;
                          Word32 sa;
@@ -408,19 +408,19 @@ Word32 calcSfbDist(const Word32 *spec,
                                  distSingle = L_shl((saShft * saShft), g2);
                          }
                          else {
-                                 
+
                                  if (saShft < pquat[1]) {
                                          diff = saShft - repquat[0];
                                          distSingle = L_shl((diff * diff), g2);
                                  }
                                  else {
-                                         
+
                                          if (saShft < pquat[2]) {
                                                  diff = saShft - repquat[1];
                                                  distSingle = L_shl((diff * diff), g2);
                                          }
                                          else {
-                                                 
+
                                                  if (saShft < pquat[3]) {
                                                          diff = saShft - repquat[2];
                                                          distSingle = L_shl((diff * diff), g2);
@@ -438,7 +438,7 @@ Word32 calcSfbDist(const Word32 *spec,
                          }
                          dist = L_add(dist, distSingle);
                  }
-         }       
+         }
   }
 
   return dist;
index ffe2e83..fe40137 100644 (file)
 static const Word16 MAX_SCF_DELTA = 60;
 
 /*!
-constants reference in comments 
+constants reference in comments
 
  C0 = 6.75f;
- C1 = -69.33295f;   -16/3*log(MAX_QUANT+0.5-logCon)/log(2) 
+ C1 = -69.33295f;   -16/3*log(MAX_QUANT+0.5-logCon)/log(2)
  C2 = 4.0f;
  C3 = 2.66666666f;
-  PE_C1 = 3.0f;        log(8.0)/log(2) 
-  PE_C2 = 1.3219281f;  log(2.5)/log(2) 
-  PE_C3 = 0.5593573f;  1-C2/C1 
-  
+
+  PE_C1 = 3.0f;        log(8.0)/log(2)
+  PE_C2 = 1.3219281f;  log(2.5)/log(2)
+  PE_C3 = 0.5593573f;  1-C2/C1
+
 */
 
 #define FF_SQRT_BITS                    7
@@ -55,15 +55,15 @@ constants reference in comments
 /*********************************************************************************
 *
 * function name: formfac_sqrt
-* description:  calculates sqrt(x)/256 
+* description:  calculates sqrt(x)/256
 *
 **********************************************************************************/
 __inline Word32 formfac_sqrt(Word32 x)
 {
        Word32 y;
        Word32 preshift, postshift;
-       
-       
+
+
        if (x==0) return 0;
        preshift  = norm_l(x) - (INT_BITS-1-FF_SQRT_BITS);
        postshift = preshift >> 1;
@@ -74,12 +74,12 @@ __inline Word32 formfac_sqrt(Word32 x)
        else
                y = x >> (-preshift);
        y = formfac_sqrttable[y-32];
-       
+
        if(postshift >= 0)
                y = y >> postshift;
        else
                y = y << (-postshift);
-       
+
        return y;
 }
 
@@ -100,19 +100,19 @@ CalcFormFactorChannel(Word16 *logSfbFormFactor,
        Word32 sfbw, sfbw1;
        Word32 i, j;
        Word32 sfbOffs, sfb, shift;
-       
+
        sfbw = sfbw1 = 0;
        for (sfbOffs=0; sfbOffs<psyOutChan->sfbCnt; sfbOffs+=psyOutChan->sfbPerGroup){
                for (sfb=0; sfb<psyOutChan->maxSfbPerGroup; sfb++) {
-                       i = sfbOffs+sfb;      
-                       
+                       i = sfbOffs+sfb;
+
                        if (psyOutChan->sfbEnergy[i] > psyOutChan->sfbThreshold[i]) {
                                Word32 accu, avgFormFactor,iSfbWidth;
                                Word32 *mdctSpec;
                                sfbw = psyOutChan->sfbOffsets[i+1] - psyOutChan->sfbOffsets[i];
                                iSfbWidth = invSBF[(sfbw >> 2) - 1];
                                mdctSpec = psyOutChan->mdctSpectrum + psyOutChan->sfbOffsets[i];
-                               accu = 0;                                                                       
+                               accu = 0;
                                /* calc sum of sqrt(spec) */
                                for (j=sfbw; j; j--) {
                                        accu += formfac_sqrt(L_abs(*mdctSpec)); mdctSpec++;
@@ -129,7 +129,7 @@ CalcFormFactorChannel(Word16 *logSfbFormFactor,
                        }
                        else {
                                /* set number of lines to zero */
-                               sfbNRelevantLines[i] = 0;                                                       
+                               sfbNRelevantLines[i] = 0;
                        }
                }
        }
@@ -141,68 +141,68 @@ CalcFormFactorChannel(Word16 *logSfbFormFactor,
 * description:  find better scalefactor with analysis by synthesis
 *
 **********************************************************************************/
-static Word16 improveScf(Word32 *spec, 
-                         Word16  sfbWidth, 
-                         Word32  thresh, 
+static Word16 improveScf(Word32 *spec,
+                         Word16  sfbWidth,
+                         Word32  thresh,
                          Word16  scf,
                          Word16  minScf,
-                         Word32 *dist, 
+                         Word32 *dist,
                          Word16 *minScfCalculated)
 {
        Word32 cnt;
        Word32 sfbDist;
        Word32 scfBest;
        Word32 thresh125 = L_add(thresh, (thresh >> 2));
-       
-       scfBest = scf;                                                       
-       
+
+       scfBest = scf;
+
        /* calc real distortion */
        sfbDist = calcSfbDist(spec, sfbWidth, scf);
-       *minScfCalculated = scf;     
+       *minScfCalculated = scf;
        if(!sfbDist)
          return scfBest;
-       
+
        if (sfbDist > thresh125) {
                Word32 scfEstimated;
                Word32 sfbDistBest;
-               scfEstimated = scf;                                               
-               sfbDistBest = sfbDist;                                            
-               
-               cnt = 0;                                                          
+               scfEstimated = scf;
+               sfbDistBest = sfbDist;
+
+               cnt = 0;
                while (sfbDist > thresh125 && (cnt < 3)) {
-                       
+
                        scf = scf + 1;
                        sfbDist = calcSfbDist(spec, sfbWidth, scf);
-                       
+
                        if (sfbDist < sfbDistBest) {
-                               scfBest = scf;                                              
-                               sfbDistBest = sfbDist;                                      
+                               scfBest = scf;
+                               sfbDistBest = sfbDist;
                        }
                        cnt = cnt + 1;
                }
-               cnt = 0;                                                          
-               scf = scfEstimated;                                               
-               sfbDist = sfbDistBest;                                            
+               cnt = 0;
+               scf = scfEstimated;
+               sfbDist = sfbDistBest;
                while ((sfbDist > thresh125) && (cnt < 1) && (scf > minScf)) {
-                       
+
                        scf = scf - 1;
                        sfbDist = calcSfbDist(spec, sfbWidth, scf);
-                       
+
                        if (sfbDist < sfbDistBest) {
-                               scfBest = scf;                                              
-                               sfbDistBest = sfbDist;                                      
+                               scfBest = scf;
+                               sfbDistBest = sfbDist;
                        }
-                       *minScfCalculated = scf;                                       
+                       *minScfCalculated = scf;
                        cnt = cnt + 1;
                }
-               *dist = sfbDistBest;                                              
+               *dist = sfbDistBest;
        }
        else {
-               Word32 sfbDistBest; 
+               Word32 sfbDistBest;
                Word32 sfbDistAllowed;
                Word32 thresh08 = fixmul(COEF08_31, thresh);
-               sfbDistBest = sfbDist;                                            
-               
+               sfbDistBest = sfbDist;
+
                if (sfbDist < thresh08)
                        sfbDistAllowed = sfbDist;
                else
@@ -210,16 +210,16 @@ static Word16 improveScf(Word32 *spec,
                for (cnt=0; cnt<3; cnt++) {
                        scf = scf + 1;
                        sfbDist = calcSfbDist(spec, sfbWidth, scf);
-                       
+
                        if (fixmul(COEF08_31,sfbDist) < sfbDistAllowed) {
                                *minScfCalculated = scfBest + 1;
-                               scfBest = scf;                                              
-                               sfbDistBest = sfbDist;                                      
+                               scfBest = scf;
+                               sfbDistBest = sfbDist;
                        }
                }
-               *dist = sfbDistBest;                                              
+               *dist = sfbDistBest;
        }
-       
+
        /* return best scalefactor */
        return scfBest;
 }
@@ -233,10 +233,10 @@ static Word16 improveScf(Word32 *spec,
 static Word16 countSingleScfBits(Word16 scf, Word16 scfLeft, Word16 scfRight)
 {
        Word16 scfBits;
-       
+
        scfBits = bitCountScalefactorDelta(scfLeft - scf) +
                bitCountScalefactorDelta(scf - scfRight);
-       
+
        return scfBits;
 }
 
@@ -245,7 +245,7 @@ static Word16 countSingleScfBits(Word16 scf, Word16 scfLeft, Word16 scfRight)
 * function name: calcSingleSpecPe
 * description:  ldRatio = log2(en(n)) - 0,375*scfGain(n)
 *                              nbits = 0.7*nLines*ldRation for ldRation >= c1
-*                              nbits = 0.7*nLines*(c2 + c3*ldRatio) for ldRation < c1 
+*                              nbits = 0.7*nLines*(c2 + c3*ldRatio) for ldRation < c1
 *
 **********************************************************************************/
 static Word16 calcSingleSpecPe(Word16 scf, Word16 sfbConstPePart, Word16 nLines)
@@ -253,18 +253,18 @@ static Word16 calcSingleSpecPe(Word16 scf, Word16 sfbConstPePart, Word16 nLines)
        Word32 specPe;
        Word32 ldRatio;
        Word32 scf3;
-       
+
        ldRatio = sfbConstPePart << 3; /*  (sfbConstPePart -0.375*scf)*8 */
        scf3 = scf + scf + scf;
        ldRatio = ldRatio - scf3;
-    
+
        if (ldRatio < PE_C1_8) {
-               /* 21 : 2*8*PE_C2, 2*PE_C3 ~ 1*/ 
+               /* 21 : 2*8*PE_C2, 2*PE_C3 ~ 1*/
                ldRatio = (ldRatio + PE_C2_16) >> 1;
        }
        specPe = nLines * ldRatio;
        specPe = (specPe * PE_SCALE) >> 14;
-       
+
        return saturate(specPe);
 }
 
@@ -275,53 +275,53 @@ static Word16 calcSingleSpecPe(Word16 scf, Word16 sfbConstPePart, Word16 nLines)
 * description:  count different scf bits used
 *
 **********************************************************************************/
-static Word16 countScfBitsDiff(Word16 *scfOld, Word16 *scfNew, 
+static Word16 countScfBitsDiff(Word16 *scfOld, Word16 *scfNew,
                                Word16 sfbCnt, Word16 startSfb, Word16 stopSfb)
 {
        Word32 scfBitsDiff;
        Word32 sfb, sfbLast;
        Word32 sfbPrev, sfbNext;
-       
-       scfBitsDiff = 0;                                                      
-       sfb = 0;                                                              
-       
+
+       scfBitsDiff = 0;
+       sfb = 0;
+
        /* search for first relevant sfb */
-       sfbLast = startSfb;                                                   
+       sfbLast = startSfb;
        while (sfbLast < stopSfb && scfOld[sfbLast] == VOAAC_SHRT_MIN) {
-               
+
                sfbLast = sfbLast + 1;
        }
        /* search for previous relevant sfb and count diff */
        sfbPrev = startSfb - 1;
        while ((sfbPrev>=0) && scfOld[sfbPrev] == VOAAC_SHRT_MIN) {
-               
+
                sfbPrev = sfbPrev - 1;
        }
-       
+
        if (sfbPrev>=0) {
                scfBitsDiff += bitCountScalefactorDelta(scfNew[sfbPrev] - scfNew[sfbLast]) -
                        bitCountScalefactorDelta(scfOld[sfbPrev] - scfOld[sfbLast]);
        }
        /* now loop through all sfbs and count diffs of relevant sfbs */
        for (sfb=sfbLast+1; sfb<stopSfb; sfb++) {
-               
+
                if (scfOld[sfb] != VOAAC_SHRT_MIN) {
                        scfBitsDiff += bitCountScalefactorDelta(scfNew[sfbLast] - scfNew[sfb]) -
                                bitCountScalefactorDelta(scfOld[sfbLast] - scfOld[sfb]);
-                       sfbLast = sfb;                                                    
+                       sfbLast = sfb;
                }
        }
        /* search for next relevant sfb and count diff */
-       sfbNext = stopSfb;                                                    
+       sfbNext = stopSfb;
        while (sfbNext < sfbCnt && scfOld[sfbNext] == VOAAC_SHRT_MIN) {
-               
+
                sfbNext = sfbNext + 1;
        }
-       
+
        if (sfbNext < sfbCnt)
                scfBitsDiff += bitCountScalefactorDelta(scfNew[sfbLast] - scfNew[sfbNext]) -
                bitCountScalefactorDelta(scfOld[sfbLast] - scfOld[sfbNext]);
-       
+
        return saturate(scfBitsDiff);
 }
 
@@ -331,52 +331,52 @@ static Word16 calcSpecPeDiff(Word16 *scfOld,
                              Word16 *logSfbEnergy,
                              Word16 *logSfbFormFactor,
                              Word16 *sfbNRelevantLines,
-                             Word16 startSfb, 
+                             Word16 startSfb,
                              Word16 stopSfb)
 {
        Word32 specPeDiff;
        Word32 sfb;
-       
-       specPeDiff = 0;                                                       
-       
+
+       specPeDiff = 0;
+
        /* loop through all sfbs and count pe difference */
        for (sfb=startSfb; sfb<stopSfb; sfb++) {
-               
-               
+
+
                if (scfOld[sfb] != VOAAC_SHRT_MIN) {
                        Word32 ldRatioOld, ldRatioNew;
                        Word32 scf3;
-                       
-                       
+
+
                        if (sfbConstPePart[sfb] == MIN_16) {
                                sfbConstPePart[sfb] = ((logSfbEnergy[sfb] -
                                        logSfbFormFactor[sfb]) + 11-8*4+3) >> 2;
                        }
-                       
-                       
+
+
                        ldRatioOld = sfbConstPePart[sfb] << 3;
                        scf3 = scfOld[sfb] + scfOld[sfb] + scfOld[sfb];
                        ldRatioOld = ldRatioOld - scf3;
                        ldRatioNew = sfbConstPePart[sfb] << 3;
                        scf3 = scfNew[sfb] + scfNew[sfb] + scfNew[sfb];
                        ldRatioNew = ldRatioNew - scf3;
-                       
+
                        if (ldRatioOld < PE_C1_8) {
                                /* 21 : 2*8*PE_C2, 2*PE_C3 ~ 1*/
                                ldRatioOld = (ldRatioOld + PE_C2_16) >> 1;
                        }
-                       
+
                        if (ldRatioNew < PE_C1_8) {
                                /* 21 : 2*8*PE_C2, 2*PE_C3 ~ 1*/
                                ldRatioNew = (ldRatioNew + PE_C2_16) >> 1;
                        }
-                       
+
                        specPeDiff +=  sfbNRelevantLines[sfb] * (ldRatioNew - ldRatioOld);
                }
        }
-       
+
        specPeDiff = (specPeDiff * PE_SCALE) >> 14;
-       
+
        return saturate(specPeDiff);
 }
 
@@ -390,9 +390,9 @@ static Word16 calcSpecPeDiff(Word16 *scfOld,
 *
 **********************************************************************************/
 static void assimilateSingleScf(PSY_OUT_CHANNEL *psyOutChan,
-                                Word16 *scf, 
+                                Word16 *scf,
                                 Word16 *minScf,
-                                Word32 *sfbDist, 
+                                Word32 *sfbDist,
                                 Word16 *sfbConstPePart,
                                 Word16 *logSfbEnergy,
                                 Word16 *logSfbFormFactor,
@@ -411,94 +411,94 @@ static void assimilateSingleScf(PSY_OUT_CHANNEL *psyOutChan,
        Word16 *prevScfNext = psyOutChan->prevScfNext;
        Word16 *deltaPeLast = psyOutChan->deltaPeLast;
        Flag   updateMinScfCalculated;
-       
-       success = 0;                                                                  
-       deltaPe = 0;                                                                  
-       
+
+       success = 0;
+       deltaPe = 0;
+
        for(j=0;j<psyOutChan->sfbCnt;j++){
-               prevScfLast[j] = MAX_16;                                                    
-               prevScfNext[j] = MAX_16;                                                    
-               deltaPeLast[j] = MAX_16;                                                    
+               prevScfLast[j] = MAX_16;
+               prevScfNext[j] = MAX_16;
+               deltaPeLast[j] = MAX_16;
        }
-       
-       sfbLast = -1;                                                                 
-       sfbAct = -1;                                                                  
-       sfbNext = -1;                                                                 
+
+       sfbLast = -1;
+       sfbAct = -1;
+       sfbNext = -1;
        scfLast = 0;
        scfNext = 0;
-       scfMin = MAX_16;                                                              
+       scfMin = MAX_16;
        do {
                /* search for new relevant sfb */
                sfbNext = sfbNext + 1;
                while (sfbNext < psyOutChan->sfbCnt && scf[sfbNext] == MIN_16) {
-                       
+
                        sfbNext = sfbNext + 1;
                }
-               
+
                if ((sfbLast>=0) && (sfbAct>=0) && sfbNext < psyOutChan->sfbCnt) {
                        /* relevant scfs to the left and to the right */
-                       scfAct  = scf[sfbAct];                                                    
+                       scfAct  = scf[sfbAct];
                        scfLast = scf + sfbLast;
                        scfNext = scf + sfbNext;
                        scfMin  = min(*scfLast, *scfNext);
                }
                else {
-                       
+
                        if (sfbLast == -1 && (sfbAct>=0) && sfbNext < psyOutChan->sfbCnt) {
                                /* first relevant scf */
-                               scfAct  = scf[sfbAct];                                                  
+                               scfAct  = scf[sfbAct];
                                scfLast = &scfAct;
                                scfNext = scf + sfbNext;
-                               scfMin  = *scfNext;                                                     
+                               scfMin  = *scfNext;
                        }
                        else {
-                               
+
                                if ((sfbLast>=0) && (sfbAct>=0) && sfbNext == psyOutChan->sfbCnt) {
                                        /* last relevant scf */
-                                       scfAct  = scf[sfbAct];                                                
+                                       scfAct  = scf[sfbAct];
                                        scfLast = scf + sfbLast;
                                        scfNext = &scfAct;
-                                       scfMin  = *scfLast;                                                   
+                                       scfMin  = *scfLast;
                                }
                        }
                }
-               
+
                if (sfbAct>=0)
                        scfMin = max(scfMin, minScf[sfbAct]);
-               
-               if ((sfbAct >= 0) && 
-                       (sfbLast>=0 || sfbNext < psyOutChan->sfbCnt) && 
-                       scfAct > scfMin && 
-                       (*scfLast != prevScfLast[sfbAct] || 
-                       *scfNext != prevScfNext[sfbAct] || 
+
+               if ((sfbAct >= 0) &&
+                       (sfbLast>=0 || sfbNext < psyOutChan->sfbCnt) &&
+                       scfAct > scfMin &&
+                       (*scfLast != prevScfLast[sfbAct] ||
+                       *scfNext != prevScfNext[sfbAct] ||
                        deltaPe < deltaPeLast[sfbAct])) {
-                       success = 0;                                                              
-                       
-                       /* estimate required bits for actual scf */                     
+                       success = 0;
+
+                       /* estimate required bits for actual scf */
                        if (sfbConstPePart[sfbAct] == MIN_16) {
                                sfbConstPePart[sfbAct] = logSfbEnergy[sfbAct] -
                                        logSfbFormFactor[sfbAct] + 11-8*4; /* 4*log2(6.75) - 32 */
-                               
+
                                if (sfbConstPePart[sfbAct] < 0)
                                        sfbConstPePart[sfbAct] = sfbConstPePart[sfbAct] + 3;
                                sfbConstPePart[sfbAct] = sfbConstPePart[sfbAct] >> 2;
                        }
-                       
+
                        sfbPeOld = calcSingleSpecPe(scfAct, sfbConstPePart[sfbAct], sfbNRelevantLines[sfbAct]) +
                                countSingleScfBits(scfAct, *scfLast, *scfNext);
-                       deltaPeNew = deltaPe;                                                     
-                       updateMinScfCalculated = 1;                                               
+                       deltaPeNew = deltaPe;
+                       updateMinScfCalculated = 1;
                        do {
                                scfAct = scfAct - 1;
                                /* check only if the same check was not done before */
-                               
+
                                if (scfAct < minScfCalculated[sfbAct]) {
                                        sfbPeNew = calcSingleSpecPe(scfAct, sfbConstPePart[sfbAct], sfbNRelevantLines[sfbAct]) +
                                                countSingleScfBits(scfAct, *scfLast, *scfNext);
-                                       /* use new scf if no increase in pe and 
+                                       /* use new scf if no increase in pe and
                                        quantization error is smaller */
                                        deltaPeTmp = deltaPe + sfbPeNew - sfbPeOld;
-                                       
+
                                        if (deltaPeTmp < 10) {
                                                sfbDistNew = calcSfbDist(psyOutChan->mdctSpectrum+
                                                        psyOutChan->sfbOffsets[sfbAct],
@@ -506,46 +506,46 @@ static void assimilateSingleScf(PSY_OUT_CHANNEL *psyOutChan,
                                                        scfAct);
                                                if (sfbDistNew < sfbDist[sfbAct]) {
                                                        /* success, replace scf by new one */
-                                                       scf[sfbAct] = scfAct;                                     
-                                                       sfbDist[sfbAct] = sfbDistNew;                             
-                                                       deltaPeNew = deltaPeTmp;                                  
-                                                       success = 1;                                              
+                                                       scf[sfbAct] = scfAct;
+                                                       sfbDist[sfbAct] = sfbDistNew;
+                                                       deltaPeNew = deltaPeTmp;
+                                                       success = 1;
                                                }
                                                /* mark as already checked */
-                                               
+
                                                if (updateMinScfCalculated) {
-                                                       minScfCalculated[sfbAct] = scfAct;                        
+                                                       minScfCalculated[sfbAct] = scfAct;
                                                }
                                        }
                                        else {
-                                               updateMinScfCalculated = 0;                                 
+                                               updateMinScfCalculated = 0;
                                        }
                                }
-                               
+
                        } while (scfAct > scfMin);
-                       deltaPe = deltaPeNew;                                             
+                       deltaPe = deltaPeNew;
                        /* save parameters to avoid multiple computations of the same sfb */
-                       prevScfLast[sfbAct] = *scfLast;                                   
-                       prevScfNext[sfbAct] = *scfNext;                                   
-                       deltaPeLast[sfbAct] = deltaPe;                                    
+                       prevScfLast[sfbAct] = *scfLast;
+                       prevScfNext[sfbAct] = *scfNext;
+                       deltaPeLast[sfbAct] = deltaPe;
                }
-               
+
                if (success && restartOnSuccess) {
                        /* start again at first sfb */
-                       sfbLast = -1;                                                     
-                       sfbAct  = -1;                                                     
-                       sfbNext = -1;                                                     
+                       sfbLast = -1;
+                       sfbAct  = -1;
+                       sfbNext = -1;
                        scfLast = 0;
                        scfNext = 0;
-                       scfMin  = MAX_16;                                                 
-                       success = 0;                                                      
+                       scfMin  = MAX_16;
+                       success = 0;
                }
                else {
                        /* shift sfbs for next band */
-                       sfbLast = sfbAct;                                                 
-                       sfbAct  = sfbNext;                                                
+                       sfbLast = sfbAct;
+                       sfbAct  = sfbNext;
                }
-               
+
   } while (sfbNext < psyOutChan->sfbCnt);
 }
 
@@ -557,9 +557,9 @@ static void assimilateSingleScf(PSY_OUT_CHANNEL *psyOutChan,
 *
 **********************************************************************************/
 static void assimilateMultipleScf(PSY_OUT_CHANNEL *psyOutChan,
-                                  Word16 *scf, 
+                                  Word16 *scf,
                                   Word16 *minScf,
-                                  Word32 *sfbDist, 
+                                  Word32 *sfbDist,
                                   Word16 *sfbConstPePart,
                                   Word16 *logSfbEnergy,
                                   Word16 *logSfbFormFactor,
@@ -574,95 +574,95 @@ static void assimilateMultipleScf(PSY_OUT_CHANNEL *psyOutChan,
        Word32 *sfbDistNew = psyOutChan->sfbDistNew;
        Word16 *scfTmp = psyOutChan->prevScfLast;
 
-       deltaPe = 0;                                                          
-       sfbCnt = psyOutChan->sfbCnt;                                          
-       
+       deltaPe = 0;
+       sfbCnt = psyOutChan->sfbCnt;
+
        /* calc min and max scalfactors */
-       scfMin = MAX_16;                                                      
-       scfMax = MIN_16;                                                      
+       scfMin = MAX_16;
+       scfMax = MIN_16;
        for (sfb=0; sfb<sfbCnt; sfb++) {
-               
+
                if (scf[sfb] != MIN_16) {
                        scfMin = min(scfMin, scf[sfb]);
                        scfMax = max(scfMax, scf[sfb]);
                }
        }
-       
+
        if (scfMax !=  MIN_16) {
-               
-               scfAct = scfMax;                                             
-               
+
+               scfAct = scfMax;
+
                do {
                        scfAct = scfAct - 1;
                        for (sfb=0; sfb<sfbCnt; sfb++) {
-                               scfTmp[sfb] = scf[sfb];                                         
+                               scfTmp[sfb] = scf[sfb];
                        }
-                       stopSfb = 0;                                                      
+                       stopSfb = 0;
                        do {
-                               sfb = stopSfb;                                                  
-                               
+                               sfb = stopSfb;
+
                                while (sfb < sfbCnt && (scf[sfb] == MIN_16 || scf[sfb] <= scfAct)) {
                                        sfb = sfb + 1;
                                }
-                               startSfb = sfb;                                                 
+                               startSfb = sfb;
                                sfb = sfb + 1;
-                               
+
                                while (sfb < sfbCnt && (scf[sfb] == MIN_16 || scf[sfb] > scfAct)) {
                                        sfb = sfb + 1;
                                }
-                               stopSfb = sfb;                                                  
-                               
-                               possibleRegionFound = 0;                                        
-                               
+                               stopSfb = sfb;
+
+                               possibleRegionFound = 0;
+
                                if (startSfb < sfbCnt) {
-                                       possibleRegionFound = 1;                                      
+                                       possibleRegionFound = 1;
                                        for (sfb=startSfb; sfb<stopSfb; sfb++) {
-                                               
+
                                                if (scf[sfb]!=MIN_16) {
-                                                       
+
                                                        if (scfAct < minScf[sfb]) {
-                                                               possibleRegionFound = 0;                                
+                                                               possibleRegionFound = 0;
                                                                break;
                                                        }
                                                }
                                        }
                                }
-                               
-                               
+
+
                                if (possibleRegionFound) { /* region found */
-                                       
+
                                        /* replace scfs in region by scfAct */
                                        for (sfb=startSfb; sfb<stopSfb; sfb++) {
-                                               
+
                                                if (scfTmp[sfb]!=MIN_16)
-                                                       scfTmp[sfb] = scfAct;                                     
+                                                       scfTmp[sfb] = scfAct;
                                        }
-                                       
+
                                        /* estimate change in bit demand for new scfs */
                                        deltaScfBits = countScfBitsDiff(scf,scfTmp,sfbCnt,startSfb,stopSfb);
                                        deltaSpecPe = calcSpecPeDiff(scf, scfTmp, sfbConstPePart,
-                                               logSfbEnergy, logSfbFormFactor, sfbNRelevantLines, 
+                                               logSfbEnergy, logSfbFormFactor, sfbNRelevantLines,
                                                startSfb, stopSfb);
                                        deltaPeNew = deltaPe + deltaScfBits + deltaSpecPe;
-                                       
-                                       
+
+
                                        if (deltaPeNew < 10) {
                                                Word32 distOldSum, distNewSum;
-                                               
+
                                                /* quantize and calc sum of new distortion */
-                                               distOldSum = 0;                                                     
-                                               distNewSum = 0;                                                     
+                                               distOldSum = 0;
+                                               distNewSum = 0;
                                                for (sfb=startSfb; sfb<stopSfb; sfb++) {
-                                                       
+
                                                        if (scfTmp[sfb] != MIN_16) {
                                                                distOldSum = L_add(distOldSum, sfbDist[sfb]);
-                                                               
+
                                                                sfbDistNew[sfb] = calcSfbDist(psyOutChan->mdctSpectrum +
-                                                                       psyOutChan->sfbOffsets[sfb], 
+                                                                       psyOutChan->sfbOffsets[sfb],
                                                                        (psyOutChan->sfbOffsets[sfb+1] - psyOutChan->sfbOffsets[sfb]),
                                                                        scfAct);
-                                                               
-                                                               
+
+
                                                                if (sfbDistNew[sfb] > psyOutChan->sfbThreshold[sfb]) {
                                                                        distNewSum = distOldSum << 1;
                                                                        break;
@@ -670,20 +670,20 @@ static void assimilateMultipleScf(PSY_OUT_CHANNEL *psyOutChan,
                                                                distNewSum = L_add(distNewSum, sfbDistNew[sfb]);
                                                        }
                                                }
-                                               
+
                                                if (distNewSum < distOldSum) {
-                                                       deltaPe = deltaPeNew;                                             
+                                                       deltaPe = deltaPeNew;
                                                        for (sfb=startSfb; sfb<stopSfb; sfb++) {
-                                                               
+
                                                                if (scf[sfb]!=MIN_16) {
-                                                                       scf[sfb] = scfAct;                                            
-                                                                       sfbDist[sfb] = sfbDistNew[sfb];                               
+                                                                       scf[sfb] = scfAct;
+                                                                       sfbDist[sfb] = sfbDistNew[sfb];
                                                                }
                                                        }
                                                }
                                        }
-                               }        
-                       } while (stopSfb <= sfbCnt);      
+                               }
+                       } while (stopSfb <= sfbCnt);
                } while (scfAct > scfMin);
        }
 }
@@ -710,125 +710,125 @@ EstimateScaleFactorsChannel(PSY_OUT_CHANNEL *psyOutChan,
        Word32 *sfbDist = psyOutChan->sfbDist;
        Word16 *minSfMaxQuant = psyOutChan->minSfMaxQuant;
        Word16 *minScfCalculated = psyOutChan->minScfCalculated;
-       
-       
+
+
        for (i=0; i<psyOutChan->sfbCnt; i++) {
                Word32 sbfwith, sbfStart;
                Word32 *mdctSpec;
-               thresh = psyOutChan->sfbThreshold[i];                                       
-               energy = psyOutChan->sfbEnergy[i];                                          
-               
+               thresh = psyOutChan->sfbThreshold[i];
+               energy = psyOutChan->sfbEnergy[i];
+
                sbfStart = psyOutChan->sfbOffsets[i];
                sbfwith = psyOutChan->sfbOffsets[i+1] - sbfStart;
                mdctSpec = psyOutChan->mdctSpectrum+sbfStart;
-               
-               maxSpec = 0;                                                                
+
+               maxSpec = 0;
                /* maximum of spectrum */
                for (j=sbfwith; j; j-- ) {
                        Word32 absSpec = L_abs(*mdctSpec); mdctSpec++;
-                       maxSpec |= absSpec;                                                       
+                       maxSpec |= absSpec;
                }
-               
+
                /* scfs without energy or with thresh>energy are marked with MIN_16 */
-               scf[i] = MIN_16;                                                            
-               minSfMaxQuant[i] = MIN_16;    
-               
+               scf[i] = MIN_16;
+               minSfMaxQuant[i] = MIN_16;
+
                if ((maxSpec > 0) && (energy > thresh)) {
-                       
-                       energyPart = logSfbFormFactor[i];                                         
-                       thresholdPart = iLog4(thresh);  
+
+                       energyPart = logSfbFormFactor[i];
+                       thresholdPart = iLog4(thresh);
                        /* -20 = 4*log2(6.75) - 32 */
                        scfInt = ((thresholdPart - energyPart - 20) * SCALE_ESTIMATE_COEF) >> 15;
-                       
+
                        minSfMaxQuant[i] = iLog4(maxSpec) - 68; /* 68  -16/3*log(MAX_QUANT+0.5-logCon)/log(2) + 1 */
-                       
-                       
+
+
                        if (minSfMaxQuant[i] > scfInt) {
-                               scfInt = minSfMaxQuant[i];                                              
+                               scfInt = minSfMaxQuant[i];
                        }
-                       
+
                        /* find better scalefactor with analysis by synthesis */
                        scfInt = improveScf(psyOutChan->mdctSpectrum+sbfStart,
                                sbfwith,
-                               thresh, scfInt, minSfMaxQuant[i], 
+                               thresh, scfInt, minSfMaxQuant[i],
                                &sfbDist[i], &minScfCalculated[i]);
-                       
-                       scf[i] = scfInt;                                                          
+
+                       scf[i] = scfInt;
                }
        }
-       
-       
+
+
        /* scalefactor differece reduction  */
        {
                Word16 sfbConstPePart[MAX_GROUPED_SFB];
                for(i=0;i<psyOutChan->sfbCnt;i++) {
-                       sfbConstPePart[i] = MIN_16;                                               
+                       sfbConstPePart[i] = MIN_16;
                }
-               
-               assimilateSingleScf(psyOutChan, scf, 
+
+               assimilateSingleScf(psyOutChan, scf,
                        minSfMaxQuant, sfbDist, sfbConstPePart, logSfbEnergy,
                        logSfbFormFactor, sfbNRelevantLines, minScfCalculated, 1);
-               
-               assimilateMultipleScf(psyOutChan, scf, 
+
+               assimilateMultipleScf(psyOutChan, scf,
                        minSfMaxQuant, sfbDist, sfbConstPePart, logSfbEnergy,
                        logSfbFormFactor, sfbNRelevantLines);
        }
 
        /* get max scalefac for global gain */
-       maxScf = MIN_16;                                                              
-       minScf = MAX_16;                                                              
+       maxScf = MIN_16;
+       minScf = MAX_16;
        for (i=0; i<psyOutChan->sfbCnt; i++) {
-               
+
                if (maxScf < scf[i]) {
-                       maxScf = scf[i];                                                          
+                       maxScf = scf[i];
                }
-               
+
                if ((scf[i] != MIN_16) && (minScf > scf[i])) {
-                       minScf = scf[i];                                                          
+                       minScf = scf[i];
                }
        }
        /* limit scf delta */
        maxAllowedScf = minScf + MAX_SCF_DELTA;
        for(i=0; i<psyOutChan->sfbCnt; i++) {
-               
+
                if ((scf[i] != MIN_16) && (maxAllowedScf < scf[i])) {
-                       scf[i] = maxAllowedScf;                                                   
+                       scf[i] = maxAllowedScf;
                }
        }
        /* new maxScf if any scf has been limited */
-       
+
        if (maxAllowedScf < maxScf) {
-               maxScf = maxAllowedScf;                                                     
+               maxScf = maxAllowedScf;
        }
-       
+
        /* calc loop scalefactors */
-       
+
        if (maxScf > MIN_16) {
-               *globalGain = maxScf;                                                       
-               lastSf = 0;                                                                 
-               
+               *globalGain = maxScf;
+               lastSf = 0;
+
                for(i=0; i<psyOutChan->sfbCnt; i++) {
-                       
+
                        if (scf[i] == MIN_16) {
-                               scf[i] = lastSf;                                                        
+                               scf[i] = lastSf;
                                /* set band explicitely to zero */
                                for (j=psyOutChan->sfbOffsets[i]; j<psyOutChan->sfbOffsets[i+1]; j++) {
-                                       psyOutChan->mdctSpectrum[j] = 0;                                      
+                                       psyOutChan->mdctSpectrum[j] = 0;
                                }
                        }
                        else {
                                scf[i] = maxScf - scf[i];
-                               lastSf = scf[i];                                                        
+                               lastSf = scf[i];
                        }
                }
        }
        else{
-               *globalGain = 0;                                                            
+               *globalGain = 0;
                /* set spectrum explicitely to zero */
                for(i=0; i<psyOutChan->sfbCnt; i++) {
-                       scf[i] = 0;                                                               
+                       scf[i] = 0;
                        for (j=psyOutChan->sfbOffsets[i]; j<psyOutChan->sfbOffsets[i+1]; j++) {
-                               psyOutChan->mdctSpectrum[j] = 0;                                        
+                               psyOutChan->mdctSpectrum[j] = 0;
                        }
                }
        }
@@ -848,7 +848,7 @@ CalcFormFactor(Word16 logSfbFormFactor[MAX_CHANNELS][MAX_GROUPED_SFB],
                const Word16 nChannels)
 {
        Word16 j;
-       
+
        for (j=0; j<nChannels; j++) {
                CalcFormFactorChannel(logSfbFormFactor[j], sfbNRelevantLines[j], logSfbEnergy[j], &psyOutChannel[j]);
        }
@@ -869,7 +869,7 @@ EstimateScaleFactors(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
                      const Word16    nChannels)
 {
        Word16 j;
-       
+
        for (j=0; j<nChannels; j++) {
                EstimateScaleFactorsChannel(&psyOutChannel[j],
                        qcOutChannel[j].scf,
index baa289c..c2bd8bd 100644 (file)
@@ -52,9 +52,9 @@ static Word16 countMsMaskBits(Word16   sfbCnt,
                               struct TOOLSINFO *toolsInfo)
 {
   Word16 msBits, sfbOff, sfb;
-  msBits = 0;                                            
+  msBits = 0;
+
 
-   
   switch(toolsInfo->msDigest) {
     case MS_NONE:
     case MS_ALL:
@@ -85,34 +85,34 @@ static Word16 tnsCount(TNS_INFO *tnsInfo, Word16 blockType)
   Word32 coefBits;
   Word16 *ptcoef;
 
-  count = 0;       
-  
+  count = 0;
+
   if (blockType == 2)
     numOfWindows = 8;
   else
     numOfWindows = 1;
-  tnsPresent = 0;                                        
+  tnsPresent = 0;
 
   for (i=0; i<numOfWindows; i++) {
-     
+
     if (tnsInfo->tnsActive[i]!=0) {
-      tnsPresent = 1;                                    
+      tnsPresent = 1;
     }
   }
-   
+
   if (tnsPresent) {
     /* there is data to be written*/
     /*count += 1; */
     for (i=0; i<numOfWindows; i++) {
-       
+
       if (blockType == 2)
         count += 1;
       else
         count += 2;
-       
+
       if (tnsInfo->tnsActive[i]) {
         count += 1;
-         
+
         if (blockType == 2) {
           count += 4;
           count += 3;
@@ -121,29 +121,29 @@ static Word16 tnsCount(TNS_INFO *tnsInfo, Word16 blockType)
           count += 6;
           count += 5;
         }
-         
+
         if (tnsInfo->order[i]) {
           count += 1; /*direction*/
-          count += 1; /*coef_compression */    
-           
+          count += 1; /*coef_compression */
+
           if (tnsInfo->coefRes[i] == 4) {
             ptcoef = tnsInfo->coef + i*TNS_MAX_ORDER_SHORT;
-                       coefBits = 3;                                        
+                       coefBits = 3;
             for(k=0; k<tnsInfo->order[i]; k++) {
-                 
+
               if ((ptcoef[k] > 3) || (ptcoef[k] < -4)) {
-                coefBits = 4;                                    
+                coefBits = 4;
                 break;
               }
             }
           }
           else {
-            coefBits = 2;                                        
+            coefBits = 2;
             ptcoef = tnsInfo->coef + i*TNS_MAX_ORDER_SHORT;
                        for(k=0; k<tnsInfo->order[i]; k++) {
-                 
+
               if ((ptcoef[k] > 1) || (ptcoef[k] < -2)) {
-                coefBits = 3;                                    
+                coefBits = 3;
                 break;
               }
             }
@@ -155,14 +155,14 @@ static Word16 tnsCount(TNS_INFO *tnsInfo, Word16 blockType)
       }
     }
   }
-  
+
   return count;
 }
 
 /**********************************************************************************
 *
 * function name: countTnsBits
-* description:   count tns bit demand  
+* description:   count tns bit demand
 *
 **********************************************************************************/
 static Word16 countTnsBits(TNS_INFO *tnsInfo,Word16 blockType)
@@ -173,29 +173,29 @@ static Word16 countTnsBits(TNS_INFO *tnsInfo,Word16 blockType)
 /*********************************************************************************
 *
 * function name: countStaticBitdemand
-* description:   count static bit demand include tns  
+* description:   count static bit demand include tns
 *
 **********************************************************************************/
 Word16 countStaticBitdemand(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
                             PSY_OUT_ELEMENT *psyOutElement,
-                            Word16 channels, 
+                            Word16 channels,
                                                        Word16 adtsUsed)
 {
   Word32 statBits;
   Word32 ch;
-  
-  statBits = 0;                                                  
+
+  statBits = 0;
 
   /* if adts used, add 56 bits */
   if(adtsUsed) statBits += 56;
 
-   
+
   switch (channels) {
     case 1:
       statBits += SI_ID_BITS+SI_SCE_BITS+SI_ICS_BITS;
       statBits += countTnsBits(&(psyOutChannel[0].tnsInfo),
                                psyOutChannel[0].windowSequence);
-       
+
       switch(psyOutChannel[0].windowSequence){
         case LONG_WINDOW:
         case START_WINDOW:
@@ -215,7 +215,7 @@ Word16 countStaticBitdemand(PSY_OUT_CHANNEL psyOutChannel[MAX_CHANNELS],
                                                                  psyOutChannel[0].sfbPerGroup,
                                                                  psyOutChannel[0].maxSfbPerGroup,
                                                                  &psyOutElement->toolsInfo);
-       
+
       switch (psyOutChannel[0].windowSequence) {
         case LONG_WINDOW:
         case START_WINDOW:
index 473e0a0..455a864 100644 (file)
@@ -100,20 +100,20 @@ static Word16 FreqToBandWithRounding(Word32 freq,                   /*!< frequen
   /*  assert(freq >= 0);  */
   shift = norm_l(fs);
   lineNumber = (extract_l(fixmul((bandStartOffset[numOfBands] << 2),Div_32(freq << shift,fs << shift))) + 1) >> 1;
+
   /* freq > fs/2 */
-  temp = lineNumber - bandStartOffset[numOfBands] ;                                            
+  temp = lineNumber - bandStartOffset[numOfBands] ;
   if (temp >= 0)
     return numOfBands;
 
   /* find band the line number lies in */
   for (band=0; band<numOfBands; band++) {
-    temp = bandStartOffset[band + 1] - lineNumber;                                           
+    temp = bandStartOffset[band + 1] - lineNumber;
     if (temp > 0) break;
   }
 
   temp = (lineNumber - bandStartOffset[band]);
-  temp = (temp - (bandStartOffset[band + 1] - lineNumber));                                   
+  temp = (temp - (bandStartOffset[band + 1] - lineNumber));
   if ( temp > 0 )
   {
     band = band + 1;
@@ -139,25 +139,25 @@ Word16 InitTnsConfigurationLong(Word32 bitRate,          /*!< bitrate */
 {
 
   Word32 bitratePerChannel;
-  tC->maxOrder     = TNS_MAX_ORDER;                                           
+  tC->maxOrder     = TNS_MAX_ORDER;
   tC->tnsStartFreq = 1275;
-  tC->coefRes      = 4;                                                                                 
-  
+  tC->coefRes      = 4;
+
   /* to avoid integer division */
-  if ( sub(channels,2) == 0 ) { 
-    bitratePerChannel = bitRate >> 1;    
+  if ( sub(channels,2) == 0 ) {
+    bitratePerChannel = bitRate >> 1;
   }
   else {
-    bitratePerChannel = bitRate;                                                                    
+    bitratePerChannel = bitRate;
   }
 
   tC->tnsMaxSfb = tnsMaxBandsLongMainLow[pC->sampRateIdx];
 
-  tC->tnsActive = active;                                                                           
+  tC->tnsActive = active;
 
   /* now calc band and line borders */
   tC->tnsStopBand = min(pC->sfbCnt, tC->tnsMaxSfb);
-  tC->tnsStopLine = pC->sfbOffset[tC->tnsStopBand];                                                 
+  tC->tnsStopLine = pC->sfbOffset[tC->tnsStopBand];
 
   tC->tnsStartBand = FreqToBandWithRounding(tC->tnsStartFreq, sampleRate,
                                             pC->sfbCnt, (const Word16*)pC->sfbOffset);
@@ -173,18 +173,18 @@ Word16 InitTnsConfigurationLong(Word32 bitRate,          /*!< bitrate */
                                                      (const Word16*)pC->sfbOffset);
 
 
-  tC->tnsStartLine = pC->sfbOffset[tC->tnsStartBand];                                                                                                             
+  tC->tnsStartLine = pC->sfbOffset[tC->tnsStartBand];
 
   tC->lpcStopBand = tnsMaxBandsLongMainLow[pC->sampRateIdx];
   tC->lpcStopBand = min(tC->lpcStopBand, pC->sfbActive);
 
-  tC->lpcStopLine = pC->sfbOffset[tC->lpcStopBand];   
-  
+  tC->lpcStopLine = pC->sfbOffset[tC->lpcStopBand];
+
   tC->lpcStartBand = tnsMinBandNumberLong[pC->sampRateIdx];
 
-  tC->lpcStartLine = pC->sfbOffset[tC->lpcStartBand];                                               
+  tC->lpcStartLine = pC->sfbOffset[tC->lpcStartBand];
 
-  tC->threshold = TNS_GAIN_THRESH;                                                             
+  tC->threshold = TNS_GAIN_THRESH;
 
 
   return(0);
@@ -207,23 +207,23 @@ Word16 InitTnsConfigurationShort(Word32 bitRate,              /*!< bitrate */
   Word32 bitratePerChannel;
   tC->maxOrder     = TNS_MAX_ORDER_SHORT;
   tC->tnsStartFreq = 2750;
-  tC->coefRes      = 3;                                                                                 
-  
+  tC->coefRes      = 3;
+
   /* to avoid integer division */
   if ( sub(channels,2) == 0 ) {
-    bitratePerChannel = L_shr(bitRate,1);    
+    bitratePerChannel = L_shr(bitRate,1);
   }
   else {
-    bitratePerChannel = bitRate;                                                                    
+    bitratePerChannel = bitRate;
   }
 
   tC->tnsMaxSfb = tnsMaxBandsShortMainLow[pC->sampRateIdx];
 
-  tC->tnsActive = active;                                                                           
+  tC->tnsActive = active;
 
   /* now calc band and line borders */
   tC->tnsStopBand = min(pC->sfbCnt, tC->tnsMaxSfb);
-  tC->tnsStopLine = pC->sfbOffset[tC->tnsStopBand];                                                 
+  tC->tnsStopLine = pC->sfbOffset[tC->tnsStopBand];
 
   tC->tnsStartBand=FreqToBandWithRounding(tC->tnsStartFreq, sampleRate,
                                           pC->sfbCnt, (const Word16*)pC->sfbOffset);
@@ -239,19 +239,19 @@ Word16 InitTnsConfigurationShort(Word32 bitRate,              /*!< bitrate */
                                                      (const Word16*)pC->sfbOffset);
 
 
-  tC->tnsStartLine = pC->sfbOffset[tC->tnsStartBand];                                               
+  tC->tnsStartLine = pC->sfbOffset[tC->tnsStartBand];
 
   tC->lpcStopBand = tnsMaxBandsShortMainLow[pC->sampRateIdx];
 
   tC->lpcStopBand = min(tC->lpcStopBand, pC->sfbActive);
 
-  tC->lpcStopLine = pC->sfbOffset[tC->lpcStopBand];                                                 
+  tC->lpcStopLine = pC->sfbOffset[tC->lpcStopBand];
 
   tC->lpcStartBand = tnsMinBandNumberShort[pC->sampRateIdx];
 
-  tC->lpcStartLine = pC->sfbOffset[tC->lpcStartBand];                                               
+  tC->lpcStartLine = pC->sfbOffset[tC->lpcStartBand];
 
-  tC->threshold = TNS_GAIN_THRESH;                                                             
+  tC->threshold = TNS_GAIN_THRESH;
 
   return(0);
 }
@@ -259,7 +259,7 @@ Word16 InitTnsConfigurationShort(Word32 bitRate,              /*!< bitrate */
 /**
 *
 * function name: TnsDetect
-* description:  Calculate TNS filter and decide on TNS usage 
+* description:  Calculate TNS filter and decide on TNS usage
 * returns:             0 if success
 *
 */
@@ -278,7 +278,7 @@ Word32 TnsDetect(TNS_DATA* tnsData,        /*!< tns data structure (modified) */
   Word32* pWork32 = &pScratchTns[subBlockNumber >> 8];
   Word16* pWeightedSpectrum = (Word16 *)&pScratchTns[subBlockNumber >> 8];
 
-                                                                                                    
+
   if (tC.tnsActive) {
     CalcWeightedSpectrum(spectrum,
                          pWeightedSpectrum,
@@ -290,7 +290,7 @@ Word32 TnsDetect(TNS_DATA* tnsData,        /*!< tns data structure (modified) */
                          tC.lpcStopBand,
                          pWork32);
 
-    temp = blockType - SHORT_WINDOW;                                                          
+    temp = blockType - SHORT_WINDOW;
     if ( temp != 0 ) {
         predictionGain = CalcTnsFilter( &pWeightedSpectrum[tC.lpcStartLine],
                                         tC.acfWindow,
@@ -299,15 +299,15 @@ Word32 TnsDetect(TNS_DATA* tnsData,        /*!< tns data structure (modified) */
                                         tnsData->dataRaw.tnsLong.subBlockInfo.parcor);
 
 
-        temp = predictionGain - tC.threshold;                                                  
+        temp = predictionGain - tC.threshold;
         if ( temp > 0 ) {
-          tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive = 1;                                      
+          tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive = 1;
         }
         else {
-          tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive = 0;                                      
+          tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive = 0;
         }
 
-        tnsData->dataRaw.tnsLong.subBlockInfo.predictionGain = predictionGain;                      
+        tnsData->dataRaw.tnsLong.subBlockInfo.predictionGain = predictionGain;
     }
     else{
 
@@ -317,28 +317,28 @@ Word32 TnsDetect(TNS_DATA* tnsData,        /*!< tns data structure (modified) */
                                         tC.maxOrder,
                                         tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].parcor);
 
-        temp = predictionGain - tC.threshold;                                                 
+        temp = predictionGain - tC.threshold;
         if ( temp > 0 ) {
-          tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].tnsActive = 1;                     
+          tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].tnsActive = 1;
         }
         else {
-          tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].tnsActive = 0;                     
+          tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].tnsActive = 0;
         }
 
-        tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].predictionGain = predictionGain;     
+        tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].predictionGain = predictionGain;
     }
 
   }
   else{
 
-    temp = blockType - SHORT_WINDOW;                                                          
+    temp = blockType - SHORT_WINDOW;
     if ( temp != 0 ) {
-        tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive = 0;                                        
-        tnsData->dataRaw.tnsLong.subBlockInfo.predictionGain = 0;                                   
+        tnsData->dataRaw.tnsLong.subBlockInfo.tnsActive = 0;
+        tnsData->dataRaw.tnsLong.subBlockInfo.predictionGain = 0;
     }
     else {
-        tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].tnsActive = 0;                       
-        tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].predictionGain = 0;                  
+        tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].tnsActive = 0;
+        tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber].predictionGain = 0;
     }
   }
 
@@ -362,21 +362,21 @@ void TnsSync(TNS_DATA *tnsDataDest,
    const TNS_SUBBLOCK_INFO *sbInfoSrc;
    Word32 i, temp;
 
-   temp =  blockType - SHORT_WINDOW;                                                           
+   temp =  blockType - SHORT_WINDOW;
    if ( temp != 0 ) {
-      sbInfoDest = &tnsDataDest->dataRaw.tnsLong.subBlockInfo;                                      
-      sbInfoSrc  = &tnsDataSrc->dataRaw.tnsLong.subBlockInfo;                                       
+      sbInfoDest = &tnsDataDest->dataRaw.tnsLong.subBlockInfo;
+      sbInfoSrc  = &tnsDataSrc->dataRaw.tnsLong.subBlockInfo;
    }
    else {
-      sbInfoDest = &tnsDataDest->dataRaw.tnsShort.subBlockInfo[subBlockNumber];                     
-      sbInfoSrc  = &tnsDataSrc->dataRaw.tnsShort.subBlockInfo[subBlockNumber];                      
+      sbInfoDest = &tnsDataDest->dataRaw.tnsShort.subBlockInfo[subBlockNumber];
+      sbInfoSrc  = &tnsDataSrc->dataRaw.tnsShort.subBlockInfo[subBlockNumber];
    }
 
    if (100*abs_s(sbInfoDest->predictionGain - sbInfoSrc->predictionGain) <
        (3 * sbInfoDest->predictionGain)) {
-      sbInfoDest->tnsActive = sbInfoSrc->tnsActive;                                                 
+      sbInfoDest->tnsActive = sbInfoSrc->tnsActive;
       for ( i=0; i< tC.maxOrder; i++) {
-        sbInfoDest->parcor[i] = sbInfoSrc->parcor[i];                                               
+        sbInfoDest->parcor[i] = sbInfoSrc->parcor[i];
       }
    }
 }
@@ -402,11 +402,11 @@ Word16 TnsEncode(TNS_INFO* tnsInfo,     /*!< tns info structure (modified) */
   Word32 temp;
   TNS_SUBBLOCK_INFO *psubBlockInfo;
 
-  temp_s = blockType - SHORT_WINDOW;                                                             
-  if ( temp_s != 0) {                                                                               
+  temp_s = blockType - SHORT_WINDOW;
+  if ( temp_s != 0) {
     psubBlockInfo = &tnsData->dataRaw.tnsLong.subBlockInfo;
        if (psubBlockInfo->tnsActive == 0) {
-      tnsInfo->tnsActive[subBlockNumber] = 0;                                                       
+      tnsInfo->tnsActive[subBlockNumber] = 0;
       return(0);
     }
     else {
@@ -422,22 +422,22 @@ Word16 TnsEncode(TNS_INFO* tnsInfo,     /*!< tns info structure (modified) */
                    tC.coefRes);
 
       for (i=tC.maxOrder - 1; i>=0; i--)  {
-        temp = psubBlockInfo->parcor[i] - TNS_PARCOR_THRESH;         
+        temp = psubBlockInfo->parcor[i] - TNS_PARCOR_THRESH;
         if ( temp > 0 )
           break;
-        temp = psubBlockInfo->parcor[i] + TNS_PARCOR_THRESH;         
+        temp = psubBlockInfo->parcor[i] + TNS_PARCOR_THRESH;
         if ( temp < 0 )
           break;
       }
-      tnsInfo->order[subBlockNumber] = i + 1;                                                    
+      tnsInfo->order[subBlockNumber] = i + 1;
 
 
-      tnsInfo->tnsActive[subBlockNumber] = 1;                                                       
+      tnsInfo->tnsActive[subBlockNumber] = 1;
       for (i=subBlockNumber+1; i<TRANS_FAC; i++) {
-        tnsInfo->tnsActive[i] = 0;                                                                  
+        tnsInfo->tnsActive[i] = 0;
       }
-      tnsInfo->coefRes[subBlockNumber] = tC.coefRes;                                                
-      tnsInfo->length[subBlockNumber] = numOfSfb - tC.tnsStartBand;                                 
+      tnsInfo->coefRes[subBlockNumber] = tC.coefRes;
+      tnsInfo->length[subBlockNumber] = numOfSfb - tC.tnsStartBand;
 
 
       AnalysisFilterLattice(&(spectrum[tC.tnsStartLine]),
@@ -448,10 +448,10 @@ Word16 TnsEncode(TNS_INFO* tnsInfo,     /*!< tns info structure (modified) */
 
     }
   }     /* if (blockType!=SHORT_WINDOW) */
-  else /*short block*/ {                                                                            
+  else /*short block*/ {
     psubBlockInfo = &tnsData->dataRaw.tnsShort.subBlockInfo[subBlockNumber];
        if (psubBlockInfo->tnsActive == 0) {
-      tnsInfo->tnsActive[subBlockNumber] = 0;                                                       
+      tnsInfo->tnsActive[subBlockNumber] = 0;
       return(0);
     }
     else {
@@ -466,19 +466,19 @@ Word16 TnsEncode(TNS_INFO* tnsInfo,     /*!< tns info structure (modified) */
                    tC.maxOrder,
                    tC.coefRes);
       for (i=(tC.maxOrder - 1); i>=0; i--)  {
-        temp = psubBlockInfo->parcor[i] - TNS_PARCOR_THRESH;    
+        temp = psubBlockInfo->parcor[i] - TNS_PARCOR_THRESH;
          if ( temp > 0 )
           break;
 
-        temp = psubBlockInfo->parcor[i] + TNS_PARCOR_THRESH;    
+        temp = psubBlockInfo->parcor[i] + TNS_PARCOR_THRESH;
         if ( temp < 0 )
           break;
       }
-      tnsInfo->order[subBlockNumber] = i + 1;                                                    
+      tnsInfo->order[subBlockNumber] = i + 1;
 
-      tnsInfo->tnsActive[subBlockNumber] = 1;                                                       
-      tnsInfo->coefRes[subBlockNumber] = tC.coefRes;                                                
-      tnsInfo->length[subBlockNumber] = numOfSfb - tC.tnsStartBand;                             
+      tnsInfo->tnsActive[subBlockNumber] = 1;
+      tnsInfo->coefRes[subBlockNumber] = tC.coefRes;
+      tnsInfo->length[subBlockNumber] = numOfSfb - tC.tnsStartBand;
 
 
       AnalysisFilterLattice(&(spectrum[tC.tnsStartLine]), (tC.tnsStopLine - tC.tnsStartLine),
@@ -507,14 +507,14 @@ static Word32 m_pow2_cordic(Word32 x, Word16 scale)
 {
   Word32 k;
 
-  Word32 accu_y = 0x40000000;                                                                     
+  Word32 accu_y = 0x40000000;
   accu_y = L_shr(accu_y,scale);
 
   for(k=1; k<INT_BITS; k++) {
-    const Word32 z = m_log2_table[k];                                                             
+    const Word32 z = m_log2_table[k];
 
     while(L_sub(x,z) >= 0) {
-       
+
       x = L_sub(x, z);
       accu_y = L_add(accu_y, (accu_y >> k));
     }
@@ -548,43 +548,43 @@ static void CalcWeightedSpectrum(const Word32  spectrum[],         /*!< input sp
     Word32 maxWS;
     Word32 tnsSfbMean[MAX_SFB];    /* length [lpcStopBand-lpcStartBand] should be sufficient here */
 
-    maxWS = 0;                                                                                   
-  
+    maxWS = 0;
+
     /* calc 1.0*2^-INT_BITS/2/sqrt(en) */
     for( sfb = lpcStartBand; sfb < lpcStopBand; sfb++) {
 
-      tmp2 = sfbEnergy[sfb] - 2;                                                            
+      tmp2 = sfbEnergy[sfb] - 2;
       if( tmp2 > 0) {
         tmp = rsqrt(sfbEnergy[sfb], INT_BITS);
-               if(tmp > INT_BITS_SCAL) 
+               if(tmp > INT_BITS_SCAL)
                {
                        shift =  norm_l(tmp);
-                       tmp = Div_32( INT_BITS_SCAL << shift, tmp << shift ); 
+                       tmp = Div_32( INT_BITS_SCAL << shift, tmp << shift );
                }
                else
                {
-                       tmp = 0x7fffffff; 
+                       tmp = 0x7fffffff;
                }
       }
       else {
-        tmp = 0x7fffffff;                                                                           
-      } 
-      tnsSfbMean[sfb] = tmp;                                                                        
+        tmp = 0x7fffffff;
+      }
+      tnsSfbMean[sfb] = tmp;
     }
 
     /* spread normalized values from sfbs to lines */
-    sfb = lpcStartBand;                                                                             
-    tmp = tnsSfbMean[sfb];                                                                          
+    sfb = lpcStartBand;
+    tmp = tnsSfbMean[sfb];
     for ( i=lpcStartLine; i<lpcStopLine; i++){
-      tmp_s = sfbOffset[sfb + 1] - i;                                                      
+      tmp_s = sfbOffset[sfb + 1] - i;
       if ( tmp_s == 0 ) {
         sfb = sfb + 1;
-        tmp2_s = sfb + 1 - lpcStopBand;                                                       
+        tmp2_s = sfb + 1 - lpcStopBand;
         if (tmp2_s <= 0) {
-          tmp = tnsSfbMean[sfb];                                                                    
+          tmp = tnsSfbMean[sfb];
         }
       }
-      pWork32[i] = tmp;                                                                    
+      pWork32[i] = tmp;
     }
     /*filter down*/
     for (i=(lpcStopLine - 2); i>=lpcStartLine; i--){
@@ -597,8 +597,8 @@ static void CalcWeightedSpectrum(const Word32  spectrum[],         /*!< input sp
 
     /* weight and normalize */
     for (i=lpcStartLine; i<lpcStopLine; i++){
-      pWork32[i] = MULHIGH(pWork32[i], spectrum[i]);                               
-      maxWS |= L_abs(pWork32[i]);                                                          
+      pWork32[i] = MULHIGH(pWork32[i], spectrum[i]);
+      maxWS |= L_abs(pWork32[i]);
     }
     maxShift = norm_l(maxWS);
 
@@ -646,7 +646,7 @@ static Word16 CalcTnsFilter(const Word16 *signal,
   assert(tnsOrder <= TNS_MAX_ORDER);      /* remove asserts later? (btg) */
 
   for(i=0;i<tnsOrder;i++) {
-    parcor[i] = 0;                               
+    parcor[i] = 0;
   }
 
   AutoCorrelation(signal, parcorWorkBuffer, numOfLines, tnsOrderPlus1);
@@ -678,15 +678,15 @@ void AutoCorrelation(const Word16          input[],
   Word32 accu;
   Word32 scf;
 
-  scf = 10 - 1;                                                                                      
+  scf = 10 - 1;
 
   isamples = samples;
   /* calc first corrCoef:  R[0] = sum { t[i] * t[i] } ; i = 0..N-1 */
-  accu = 0;                                                                                      
+  accu = 0;
   for(j=0; j<isamples; j++) {
     accu = L_add(accu, ((input[j] * input[j]) >> scf));
   }
-  corr[0] = accu;                                                                                
+  corr[0] = accu;
 
   /* early termination if all corr coeffs are likely going to be zero */
   if(corr[0] == 0) return ;
@@ -694,13 +694,13 @@ void AutoCorrelation(const Word16          input[],
   /* calc all other corrCoef:  R[j] = sum { t[i] * t[i+j] } ; i = 0..(N-j-1), j=1..p */
   for(i=1; i<corrCoeff; i++) {
     isamples = isamples - 1;
-    accu = 0;                                                                                    
+    accu = 0;
     for(j=0; j<isamples; j++) {
       accu = L_add(accu, ((input[j] * input[j+i]) >> scf));
     }
-    corr[i] = accu;                                                                              
+    corr[i] = accu;
   }
-}    
+}
 #endif
 
 /*****************************************************************************
@@ -720,20 +720,20 @@ static Word16 AutoToParcor(Word32 workBuffer[], Word32 reflCoeff[], Word16 numOf
   Word32 predictionGain = 0;
   Word32 num, denom;
   Word32 temp, workBuffer0;
-   
 
-  num = workBuffer[0];                                                                           
-  temp = workBuffer[numOfCoeff];                                                                 
+
+  num = workBuffer[0];
+  temp = workBuffer[numOfCoeff];
 
   for(i=0; i<numOfCoeff-1; i++) {
-    workBuffer[i + numOfCoeff] = workBuffer[i + 1];                                        
+    workBuffer[i + numOfCoeff] = workBuffer[i + 1];
   }
-  workBuffer[i + numOfCoeff] = temp;                                                                           
-  
+  workBuffer[i + numOfCoeff] = temp;
+
   for(i=0; i<numOfCoeff; i++) {
     Word32 refc;
 
-     
+
     if (workBuffer[0] < L_abs(workBuffer[i + numOfCoeff])) {
       return 0 ;
     }
@@ -742,21 +742,21 @@ static Word16 AutoToParcor(Word32 workBuffer[], Word32 reflCoeff[], Word16 numOf
     /* calculate refc = -workBuffer[numOfCoeff+i] / workBuffer[0]; -1 <= refc < 1 */
        refc = L_negate(fixmul(workBuffer[numOfCoeff + i], workBuffer0));
 
-    reflCoeff[i] = refc;                                                                           
+    reflCoeff[i] = refc;
 
-    pWorkBuffer = &(workBuffer[numOfCoeff]);                                                        
+    pWorkBuffer = &(workBuffer[numOfCoeff]);
 
     for(j=i; j<numOfCoeff; j++) {
       Word32 accu1, accu2;
       accu1 = L_add(pWorkBuffer[j], fixmul(refc, workBuffer[j - i]));
       accu2 = L_add(workBuffer[j - i], fixmul(refc, pWorkBuffer[j]));
-      pWorkBuffer[j] = accu1;                                                                       
-      workBuffer[j - i] = accu2;                                                                 
+      pWorkBuffer[j] = accu1;
+      workBuffer[j - i] = accu2;
     }
   }
 
   denom = MULHIGH(workBuffer[0], NORM_COEF);
-   
+
   if (denom != 0) {
     Word32 temp;
        shift = norm_l(denom);
@@ -774,11 +774,11 @@ static Word16 Search3(Word32 parcor)
   Word32 index = 0;
   Word32 i;
   Word32 temp;
-   
+
   for (i=0;i<8;i++) {
-    temp = L_sub( parcor, tnsCoeff3Borders[i]);                                                     
+    temp = L_sub( parcor, tnsCoeff3Borders[i]);
     if (temp > 0)
-      index=i;                                                                                      
+      index=i;
   }
   return extract_l(index - 4);
 }
@@ -788,12 +788,12 @@ static Word16 Search4(Word32 parcor)
   Word32 index = 0;
   Word32 i;
   Word32 temp;
-   
+
 
   for (i=0;i<16;i++) {
-    temp = L_sub(parcor, tnsCoeff4Borders[i]);                                                      
+    temp = L_sub(parcor, tnsCoeff4Borders[i]);
     if (temp > 0)
-      index=i;                                                                                      
+      index=i;
   }
   return extract_l(index - 8);
 }
@@ -814,12 +814,12 @@ static void Parcor2Index(const Word32 parcor[],   /*!< parcor coefficients */
   Word32 temp;
 
   for(i=0; i<order; i++) {
-    temp = bitsPerCoeff - 3;                                                                    
+    temp = bitsPerCoeff - 3;
     if (temp == 0) {
-      index[i] = Search3(parcor[i]);                                                                
-    } 
+      index[i] = Search3(parcor[i]);
+    }
     else {
-      index[i] = Search4(parcor[i]);                                                                
+      index[i] = Search4(parcor[i]);
     }
   }
 }
@@ -839,12 +839,12 @@ static void Index2Parcor(const Word16 index[],  /*!< quantized values */
   Word32 temp;
 
   for (i=0; i<order; i++) {
-    temp = bitsPerCoeff - 4;                                                                     
+    temp = bitsPerCoeff - 4;
     if ( temp == 0 ) {
-        parcor[i] = tnsCoeff4[index[i] + 8];                                                     
+        parcor[i] = tnsCoeff4[index[i] + 8];
     }
     else {
-        parcor[i] = tnsCoeff3[index[i] + 4];                                                  
+        parcor[i] = tnsCoeff3[index[i] + 4];
     }
   }
 }
@@ -865,20 +865,20 @@ static Word32 FIRLattice(Word16 order,           /*!< filter order */
    Word32 accu,tmp,tmpSave;
 
    x = x >> 1;
-   tmpSave = x;                                                                                     
+   tmpSave = x;
 
    for (i=0; i<(order - 1); i++) {
 
      tmp = L_add(fixmul(coef_par[i], x), state_par[i]);
      x   = L_add(fixmul(coef_par[i], state_par[i]), x);
 
-     state_par[i] = tmpSave;                                                                        
-     tmpSave = tmp;                                                                                 
+     state_par[i] = tmpSave;
+     tmpSave = tmp;
   }
 
   /* last stage: only need half operations */
   accu = fixmul(state_par[order - 1], coef_par[(order - 1)]);
-  state_par[(order - 1)] = tmpSave;                                                                
+  state_par[(order - 1)] = tmpSave;
 
   x = L_add(accu, x);
   x = L_add(x, x);
@@ -903,11 +903,11 @@ static void AnalysisFilterLattice(const  Word32 signal[],  /*!< input spectrum *
   Word32 j;
 
   for ( j=0; j<TNS_MAX_ORDER; j++ ) {
-    state_par[j] = 0;                                                                               
+    state_par[j] = 0;
   }
 
   for(j=0; j<numOfLines; j++) {
-    output[j] = FIRLattice(order,signal[j],state_par,parCoeff);                                     
+    output[j] = FIRLattice(order,signal[j],state_par,parCoeff);
   }
 }
 
@@ -922,11 +922,11 @@ void ApplyTnsMultTableToRatios(Word16 startCb,
                                TNS_SUBBLOCK_INFO subInfo, /*!< TNS subblock info */
                                Word32 *thresholds)        /*!< thresholds (modified) */
 {
-  Word32 i;                                                                                         
+  Word32 i;
   if (subInfo.tnsActive) {
     for(i=startCb; i<stopCb; i++) {
       /* thresholds[i] * 0.25 */
-      thresholds[i] = (thresholds[i] >> 2);                                                      
+      thresholds[i] = (thresholds[i] >> 2);
     }
   }
 }
index 4d11f78..a154a2f 100644 (file)
@@ -31,7 +31,7 @@
 #define swap2(p0,p1) \
        t = p0; t1 = *(&(p0)+1);        \
        p0 = p1; *(&(p0)+1) = *(&(p1)+1);       \
-       p1 = t; *(&(p1)+1) = t1 
+       p1 = t; *(&(p1)+1) = t1
 
 /*********************************************************************************
 *
@@ -47,18 +47,18 @@ static void Shuffle(int *buf, int num, const unsigned char* bitTab)
 
        part0 = buf;
     part1 = buf + num;
-       
+
        while ((i = *bitTab++) != 0) {
         j = *bitTab++;
 
-        swap2(part0[4*i+0], part0[4*j+0]);     
-        swap2(part0[4*i+2], part1[4*j+0]);     
-        swap2(part1[4*i+0], part0[4*j+2]);     
-        swap2(part1[4*i+2], part1[4*j+2]);     
+        swap2(part0[4*i+0], part0[4*j+0]);
+        swap2(part0[4*i+2], part1[4*j+0]);
+        swap2(part1[4*i+0], part0[4*j+2]);
+        swap2(part1[4*i+2], part1[4*j+2]);
     }
 
     do {
-        swap2(part0[4*i+2], part1[4*i+0]);     
+        swap2(part0[4*i+2], part1[4*i+0]);
     } while ((i = *bitTab++) != 0);
 }
 
@@ -74,8 +74,8 @@ static void Radix4First(int *buf, int num)
 {
     int r0, r1, r2, r3;
        int r4, r5, r6, r7;
-       
-       for (; num != 0; num--) 
+
+       for (; num != 0; num--)
        {
                r0 = buf[0] + buf[2];
                r1 = buf[1] + buf[3];
@@ -113,7 +113,7 @@ static void Radix8First(int *buf, int num)
    int i4, i5, i6, i7;
    int t0, t1, t2, t3;
 
-       for ( ; num != 0; num--) 
+       for ( ; num != 0; num--)
        {
                r0 = buf[0] + buf[2];
                i0 = buf[1] + buf[3];
@@ -194,23 +194,23 @@ static void Radix4FFT(int *buf, int num, int bgn, int *twidTab)
        int i, j, step;
        int *xptr, *csptr;
 
-       for (num >>= 2; num != 0; num >>= 2) 
+       for (num >>= 2; num != 0; num >>= 2)
        {
                step = 2*bgn;
                xptr = buf;
 
-       for (i = num; i != 0; i--) 
+       for (i = num; i != 0; i--)
                {
                        csptr = twidTab;
 
-                       for (j = bgn; j != 0; j--) 
+                       for (j = bgn; j != 0; j--)
                        {
                                r0 = xptr[0];
                                r1 = xptr[1];
                                xptr += step;
-                               
+
                                t0 = xptr[0];
-                               t1 = xptr[1];                           
+                               t1 = xptr[1];
                                cosx = csptr[0];
                                sinx = csptr[1];
                                r2 = MULHIGH(cosx, t0) + MULHIGH(sinx, t1);             /* cos*br + sin*bi */
@@ -223,7 +223,7 @@ static void Radix4FFT(int *buf, int num, int bgn, int *twidTab)
                                r1 = t1 - r3;
                                r2 = t0 + r2;
                                r3 = t1 + r3;
-                               
+
                                t0 = xptr[0];
                                t1 = xptr[1];
                                cosx = csptr[2];
@@ -231,7 +231,7 @@ static void Radix4FFT(int *buf, int num, int bgn, int *twidTab)
                                r4 = MULHIGH(cosx, t0) + MULHIGH(sinx, t1);             /* cos*cr + sin*ci */
                                r5 = MULHIGH(cosx, t1) - MULHIGH(sinx, t0);             /* cos*ci - sin*cr */
                                xptr += step;
-                               
+
                                t0 = xptr[0];
                                t1 = xptr[1];
                                cosx = csptr[4];
@@ -282,25 +282,25 @@ static void PreMDCT(int *buf0, int num, const int *csptr)
        int tr1, ti1, tr2, ti2;
        int cosa, sina, cosb, sinb;
        int *buf1;
-       
+
        buf1 = buf0 + num - 1;
 
        for(i = num >> 2; i != 0; i--)
        {
-               cosa = *csptr++;        
-               sina = *csptr++;        
-               cosb = *csptr++;        
-               sinb = *csptr++;                
+               cosa = *csptr++;
+               sina = *csptr++;
+               cosb = *csptr++;
+               sinb = *csptr++;
 
                tr1 = *(buf0 + 0);
                ti2 = *(buf0 + 1);
                tr2 = *(buf1 - 1);
                ti1 = *(buf1 + 0);
-               
+
                *buf0++ = MULHIGH(cosa, tr1) + MULHIGH(sina, ti1);
-               *buf0++ = MULHIGH(cosa, ti1) - MULHIGH(sina, tr1);              
-               
-               *buf1-- = MULHIGH(cosb, ti2) - MULHIGH(sinb, tr2);              
+               *buf0++ = MULHIGH(cosa, ti1) - MULHIGH(sina, tr1);
+
+               *buf1-- = MULHIGH(cosb, ti2) - MULHIGH(sinb, tr2);
                *buf1-- = MULHIGH(cosb, tr2) + MULHIGH(sinb, ti2);
        }
 }
@@ -319,12 +319,12 @@ static void PostMDCT(int *buf0, int num, const int *csptr)
        int *buf1;
 
        buf1 = buf0 + num - 1;
-       
+
        for(i = num >> 2; i != 0; i--)
        {
-               cosa = *csptr++;        
-               sina = *csptr++;        
-               cosb = *csptr++;        
+               cosa = *csptr++;
+               sina = *csptr++;
+               cosb = *csptr++;
                sinb = *csptr++;
 
                tr1 = *(buf0 + 0);
@@ -333,10 +333,10 @@ static void PostMDCT(int *buf0, int num, const int *csptr)
                tr2 = *(buf1 - 1);
 
                *buf0++ = MULHIGH(cosa, tr1) + MULHIGH(sina, ti1);
-               *buf1-- = MULHIGH(sina, tr1) - MULHIGH(cosa, ti1);              
-               
+               *buf1-- = MULHIGH(sina, tr1) - MULHIGH(cosa, ti1);
+
                *buf0++ = MULHIGH(sinb, tr2) - MULHIGH(cosb, ti2);
-               *buf1-- = MULHIGH(cosb, tr2) + MULHIGH(sinb, ti2);      
+               *buf1-- = MULHIGH(cosb, tr2) + MULHIGH(sinb, ti2);
        }
 }
 #endif
@@ -353,17 +353,17 @@ void Mdct_Long(int *buf)
        PreMDCT(buf, 1024, cossintab + 128);
 
        Shuffle(buf, 512, bitrevTab + 17);
-       Radix8First(buf, 512 >> 3);                                             
+       Radix8First(buf, 512 >> 3);
        Radix4FFT(buf, 512 >> 3, 8, (int *)twidTab512);
 
-       PostMDCT(buf, 1024, cossintab + 128);   
+       PostMDCT(buf, 1024, cossintab + 128);
 }
 
 
 /**********************************************************************************
 *
 * function name: Mdct_Short
-* description:  the short block mdct 
+* description:  the short block mdct
 *
 **********************************************************************************/
 void Mdct_Short(int *buf)
@@ -371,10 +371,10 @@ void Mdct_Short(int *buf)
        PreMDCT(buf, 128, cossintab);
 
        Shuffle(buf, 64, bitrevTab);
-       Radix4First(buf, 64 >> 2);                                              
-       Radix4FFT(buf, 64 >> 2, 4, (int *)twidTab64);   
+       Radix4First(buf, 64 >> 2);
+       Radix4FFT(buf, 64 >> 2, 4, (int *)twidTab64);
 
-       PostMDCT(buf, 128, cossintab);  
+       PostMDCT(buf, 128, cossintab);
 }
 
 
@@ -382,7 +382,7 @@ void Mdct_Short(int *buf)
 *
 * function name: shiftMdctDelayBuffer
 * description:    the mdct delay buffer has a size of 1600,
-*  so the calculation of LONG,STOP must be  spilt in two 
+*  so the calculation of LONG,STOP must be  spilt in two
 *  passes with 1024 samples and a mid shift,
 *  the SHORT transforms can be completed in the delay buffer,
 *  and afterwards a shift
@@ -409,7 +409,7 @@ static void shiftMdctDelayBuffer(Word16 *mdctDelayBuffer, /*! start of mdct dela
        dsBuf = timeSignal;
 
        for(i=0; i<FRAME_LEN_LONG; i+=8)
-       {   
+       {
                *srBuf++ = *dsBuf; dsBuf += chIncrement;
                *srBuf++ = *dsBuf; dsBuf += chIncrement;
                *srBuf++ = *dsBuf; dsBuf += chIncrement;
@@ -470,10 +470,10 @@ void Transform_Real(Word16 *mdctDelayBuffer,
 
        Word32 delayBufferSf,timeSignalSf,minSf;
        Word32 headRoom=0;
-       
+
        switch(blockType){
-               
-               
+
+
        case LONG_WINDOW:
                /*
                we access BLOCK_SWITCHING_OFFSET (1600 ) delay buffer samples + 448 new timeSignal samples
@@ -483,15 +483,15 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                timeSignalSf  = getScalefactorOfShortVectorStride(timeSignal,2*FRAME_LEN_LONG-BLOCK_SWITCHING_OFFSET,chIncrement);
                minSf = min(delayBufferSf,timeSignalSf);
                minSf = min(minSf,14);
-               
+
                dctIn0 = mdctDelayBuffer;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1;
                outData0 = realOut + FRAME_LEN_LONG/2;
-               
+
                /* add windows and pre add for mdct to last buffer*/
                winPtr = (int *)LongWindowKBD;
                for(i=0;i<FRAME_LEN_LONG/2;i++){
-                       timeSignalSample = (*dctIn0++) << minSf; 
+                       timeSignalSample = (*dctIn0++) << minSf;
                        ws1 = timeSignalSample * (*winPtr >> 16);
                        timeSignalSample = (*dctIn1--) << minSf;
                        ws2 = timeSignalSample * (*winPtr & 0xffff);
@@ -499,30 +499,30 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                        /* shift 2 to avoid overflow next */
                        *outData0++ = (ws1 >> 2) - (ws2 >> 2);
                }
-               
+
                shiftMdctDelayBuffer(mdctDelayBuffer,timeSignal,chIncrement);
-               
+
                /* add windows and pre add for mdct to new buffer*/
                dctIn0 = mdctDelayBuffer;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1;
-               outData0 = realOut + FRAME_LEN_LONG/2 - 1; 
+               outData0 = realOut + FRAME_LEN_LONG/2 - 1;
                winPtr = (int *)LongWindowKBD;
-               for(i=0;i<FRAME_LEN_LONG/2;i++){    
+               for(i=0;i<FRAME_LEN_LONG/2;i++){
                        timeSignalSample = (*dctIn0++) << minSf;
                        ws1 = timeSignalSample * (*winPtr & 0xffff);
                        timeSignalSample = (*dctIn1--) << minSf;
                        ws2 = timeSignalSample * (*winPtr >> 16);
                        winPtr++;
                        /* shift 2 to avoid overflow next */
-                       *outData0-- = -((ws1 >> 2) + (ws2 >> 2)); 
+                       *outData0-- = -((ws1 >> 2) + (ws2 >> 2));
                }
 
                Mdct_Long(realOut);
                /* update scale factor */
                minSf = 14 - minSf;
-               *mdctScale=minSf; 
+               *mdctScale=minSf;
                break;
-               
+
        case START_WINDOW:
                /*
                we access BLOCK_SWITCHING_OFFSET (1600 ) delay buffer samples + no timeSignal samples
@@ -533,7 +533,7 @@ void Transform_Real(Word16 *mdctDelayBuffer,
 
                dctIn0 = mdctDelayBuffer;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1;
-               outData0 = realOut + FRAME_LEN_LONG/2;          
+               outData0 = realOut + FRAME_LEN_LONG/2;
                winPtr = (int *)LongWindowKBD;
 
                /* add windows and pre add for mdct to last buffer*/
@@ -545,18 +545,18 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                        winPtr ++;
                        *outData0++ = (ws1 >> 2) - (ws2 >> 2);  /* shift 2 to avoid overflow next */
                }
-               
+
                shiftMdctDelayBuffer(mdctDelayBuffer,timeSignal,chIncrement);
-               
-               outData0 = realOut + FRAME_LEN_LONG/2 - 1; 
+
+               outData0 = realOut + FRAME_LEN_LONG/2 - 1;
                for(i=0;i<LS_TRANS;i++){
-                       *outData0-- = -mdctDelayBuffer[i] << (15 - 2 + minSf);  
+                       *outData0-- = -mdctDelayBuffer[i] << (15 - 2 + minSf);
                }
-               
+
                /* add windows and pre add for mdct to new buffer*/
                dctIn0 = mdctDelayBuffer + LS_TRANS;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1 - LS_TRANS;
-               outData0 = realOut + FRAME_LEN_LONG/2 - 1 -LS_TRANS; 
+               outData0 = realOut + FRAME_LEN_LONG/2 - 1 -LS_TRANS;
                winPtr = (int *)ShortWindowSine;
                for(i=0;i<FRAME_LEN_SHORT/2;i++){
                        timeSignalSample= (*dctIn0++) << minSf;
@@ -572,7 +572,7 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                minSf = 14 - minSf;
                *mdctScale= minSf;
                break;
-               
+
        case STOP_WINDOW:
                /*
                we access BLOCK_SWITCHING_OFFSET-LS_TRANS (1600-448 ) delay buffer samples + 448 new timeSignal samples
@@ -580,19 +580,19 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                */
                delayBufferSf = getScalefactorOfShortVectorStride(mdctDelayBuffer+LS_TRANS,BLOCK_SWITCHING_OFFSET-LS_TRANS,1);
                timeSignalSf  = getScalefactorOfShortVectorStride(timeSignal,2*FRAME_LEN_LONG-BLOCK_SWITCHING_OFFSET,chIncrement);
-               minSf = min(delayBufferSf,timeSignalSf);    
+               minSf = min(delayBufferSf,timeSignalSf);
                minSf = min(minSf,13);
-               
+
                outData0 = realOut + FRAME_LEN_LONG/2;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1;
                for(i=0;i<LS_TRANS;i++){
-                       *outData0++ = -(*dctIn1--) << (15 - 2 + minSf);    
+                       *outData0++ = -(*dctIn1--) << (15 - 2 + minSf);
                }
-               
+
                /* add windows and pre add for mdct to last buffer*/
                dctIn0 = mdctDelayBuffer + LS_TRANS;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1 - LS_TRANS;
-               outData0 = realOut + FRAME_LEN_LONG/2 + LS_TRANS; 
+               outData0 = realOut + FRAME_LEN_LONG/2 + LS_TRANS;
                winPtr = (int *)ShortWindowSine;
                for(i=0;i<FRAME_LEN_SHORT/2;i++){
                        timeSignalSample = (*dctIn0++) << minSf;
@@ -602,13 +602,13 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                        winPtr++;
                        *outData0++ = (ws1 >> 2) - (ws2 >> 2);  /* shift 2 to avoid overflow next */
                }
-               
+
                shiftMdctDelayBuffer(mdctDelayBuffer,timeSignal,chIncrement);
-               
+
                /* add windows and pre add for mdct to new buffer*/
                dctIn0 = mdctDelayBuffer;
                dctIn1 = mdctDelayBuffer + FRAME_LEN_LONG - 1;
-               outData0 = realOut + FRAME_LEN_LONG/2 - 1; 
+               outData0 = realOut + FRAME_LEN_LONG/2 - 1;
                winPtr = (int *)LongWindowKBD;
                for(i=0;i<FRAME_LEN_LONG/2;i++){
                        timeSignalSample= (*dctIn0++) << minSf;
@@ -618,26 +618,26 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                        *outData0-- =  -((ws1 >> 2) + (ws2 >> 2));  /* shift 2 to avoid overflow next */
                        winPtr++;
                }
-               
+
                Mdct_Long(realOut);
                minSf = 14 - minSf;
                *mdctScale= minSf; /* update scale factor */
                break;
-               
+
        case SHORT_WINDOW:
                /*
                we access BLOCK_SWITCHING_OFFSET (1600 ) delay buffer samples + no new timeSignal samples
                and get the biggest scale factor for next calculate more precise
-               */              
+               */
                minSf = getScalefactorOfShortVectorStride(mdctDelayBuffer+TRANSFORM_OFFSET_SHORT,9*FRAME_LEN_SHORT,1);
                minSf = min(minSf,10);
-               
-               
+
+
                for(w=0;w<TRANS_FAC;w++){
                        dctIn0 = mdctDelayBuffer+w*FRAME_LEN_SHORT+TRANSFORM_OFFSET_SHORT;
                        dctIn1 = mdctDelayBuffer+w*FRAME_LEN_SHORT+TRANSFORM_OFFSET_SHORT + FRAME_LEN_SHORT-1;
-                       outData0 = realOut + FRAME_LEN_SHORT/2; 
-                       outData1 = realOut + FRAME_LEN_SHORT/2 - 1; 
+                       outData0 = realOut + FRAME_LEN_SHORT/2;
+                       outData1 = realOut + FRAME_LEN_SHORT/2 - 1;
 
                        winPtr = (int *)ShortWindowSine;
                        for(i=0;i<FRAME_LEN_SHORT/2;i++){
@@ -646,7 +646,7 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                                timeSignalSample= *dctIn1 << minSf;
                                ws2 = timeSignalSample * (*winPtr & 0xffff);
                                *outData0++ = (ws1 >> 2) - (ws2 >> 2);  /* shift 2 to avoid overflow next */
-                               
+
                                timeSignalSample= *(dctIn0 + FRAME_LEN_SHORT) << minSf;
                                ws1 = timeSignalSample * (*winPtr & 0xffff);
                                timeSignalSample= *(dctIn1 + FRAME_LEN_SHORT) << minSf;
@@ -661,10 +661,10 @@ void Transform_Real(Word16 *mdctDelayBuffer,
                        Mdct_Short(realOut);
                        realOut += FRAME_LEN_SHORT;
                }
-               
+
                minSf = 11 - minSf;
                *mdctScale = minSf; /* update scale factor */
-               
+
                shiftMdctDelayBuffer(mdctDelayBuffer,timeSignal,chIncrement);
                break;
   }
index 5179380..ae43870 100644 (file)
@@ -3,7 +3,7 @@ include $(CLEAR_VARS)
 include frameworks/base/media/libstagefright/codecs/common/Config.mk
 
 
-       
+
 LOCAL_SRC_FILES := \
        AMRWBEncoder.cpp \
        src/autocorr.c \
@@ -91,7 +91,7 @@ LOCAL_MODULE := libstagefright_amrwbenc
 
 LOCAL_ARM_MODE := arm
 
-LOCAL_STATIC_LIBRARIES := 
+LOCAL_STATIC_LIBRARIES :=
 
 LOCAL_SHARED_LIBRARIES :=
 
index 7734913..c23dce6 100644 (file)
@@ -33,7 +33,7 @@
 #define  static_vo  static __inline__
 #else
 #define  static_vo  static __inline
-#endif 
+#endif
 
 #define saturate(L_var1) (((L_var1) > 0X00007fffL) ? (MAX_16): (((L_var1) < (Word32) 0xffff8000L) ? (MIN_16): ((L_var1) & 0xffff)))
 
@@ -87,7 +87,7 @@ static_vo Word32 L_shr (Word32 L_var1, Word16 var2);                          /* Long shift right
 static_vo Word32 L_shr_r (Word32 L_var1, Word16 var2);                                 /* Long shift right with round,  3   */
 static_vo Word16 norm_s (Word16 var1);                                         /* Short norm,           15  */
 static_vo Word16 div_s (Word16 var1, Word16 var2);                             /* Short division,       18  */
-static_vo Word16 norm_l (Word32 L_var1);                                       /* Long norm,            30  */   
+static_vo Word16 norm_l (Word32 L_var1);                                       /* Long norm,            30  */
 
 /*___________________________________________________________________________
 |                                                                           |
@@ -1030,8 +1030,8 @@ static_vo Word16 div_s (Word16 var1, Word16 var2)
                                L_num <<= 1;
                                if (L_num >= L_denom)
                                {
-                                       L_num -= L_denom;      
-                                       var_out += 1;          
+                                       L_num -= L_denom;
+                                       var_out += 1;
                                }
                        }
                }
index edcccdd..e399fb8 100644 (file)
 
 static const Word16 dfh_M7k[PRMN_7k] =
 {
-  3168, 29954, 29213, 16121, 
-       64, 13440, 30624, 16430, 
+  3168, 29954, 29213, 16121,
+       64, 13440, 30624, 16430,
  19008
 };
 
 static const Word16 dfh_M9k[PRMN_9k] =
 {
-   3168, 31665,  9943, 9123, 
-  15599,  4358, 20248, 2048, 
+   3168, 31665,  9943, 9123,
+  15599,  4358, 20248, 2048,
   17040, 27787, 16816, 13888
 };
 
 static const Word16 dfh_M12k[PRMN_12k] =
 {
-  3168, 31665,  9943,  9128, 
-  3647,  8129, 30930, 27926, 
- 18880, 12319,   496,  1042, 
-  4061, 20446, 25629, 28069, 
+  3168, 31665,  9943,  9128,
+  3647,  8129, 30930, 27926,
+ 18880, 12319,   496,  1042,
+  4061, 20446, 25629, 28069,
  13948
 };
 
 static const Word16 dfh_M14k[PRMN_14k] =
 {
-    3168, 31665,  9943,  9131, 
-   24815,   655, 26616, 26764, 
-    7238, 19136,  6144,    88, 
-       4158, 25733, 30567, 30494, 
+    3168, 31665,  9943,  9131,
+   24815,   655, 26616, 26764,
+    7238, 19136,  6144,    88,
+       4158, 25733, 30567, 30494,
        221, 20321, 17823
 };
 
 static const Word16 dfh_M16k[PRMN_16k] =
 {
-    3168, 31665,  9943,  9131, 
-   24815,   700,  3824,  7271, 
-   26400,  9528,  6594, 26112, 
-     108,  2068, 12867, 16317, 
-   23035, 24632,  7528,  1752, 
+    3168, 31665,  9943,  9131,
+   24815,   700,  3824,  7271,
+   26400,  9528,  6594, 26112,
+     108,  2068, 12867, 16317,
+   23035, 24632,  7528,  1752,
     6759, 24576
 };
 
 static const Word16 dfh_M18k[PRMN_18k] =
 {
-     3168, 31665,  9943,  9135, 
-       14787, 14423, 30477, 24927, 
-       25345, 30154,   916,  5728, 
-       18978,  2048,   528, 16449, 
-        2436,  3581, 23527, 29479, 
-        8237, 16810, 27091, 19052, 
+     3168, 31665,  9943,  9135,
+       14787, 14423, 30477, 24927,
+       25345, 30154,   916,  5728,
+       18978,  2048,   528, 16449,
+        2436,  3581, 23527, 29479,
+        8237, 16810, 27091, 19052,
            0
 };
 
 static const Word16 dfh_M20k[PRMN_20k] =
 {
-     3168, 31665,  9943,  9129, 
-        8637, 31807, 24646,   736, 
-       28643,  2977,  2566, 25564, 
-       12930, 13960,  2048,   834, 
-        3270,  4100, 26920, 16237, 
-       31227, 17667, 15059, 20589, 
+     3168, 31665,  9943,  9129,
+        8637, 31807, 24646,   736,
+       28643,  2977,  2566, 25564,
+       12930, 13960,  2048,   834,
+        3270,  4100, 26920, 16237,
+       31227, 17667, 15059, 20589,
        30249, 29123, 0
 };
 
 static const Word16 dfh_M23k[PRMN_23k] =
 {
-        3168, 31665,  9943,  9132, 
-       16748,  3202, 28179, 16317, 
-       30590, 15857, 19960,  8818, 
-       21711, 21538,  4260, 16690, 
-       20224,  3666,  4194,  9497, 
-       16320, 15388,  5755, 31551, 
-       14080,  3574, 15932,    50, 
+        3168, 31665,  9943,  9132,
+       16748,  3202, 28179, 16317,
+       30590, 15857, 19960,  8818,
+       21711, 21538,  4260, 16690,
+       20224,  3666,  4194,  9497,
+       16320, 15388,  5755, 31551,
+       14080,  3574, 15932,    50,
        23392, 26053, 31216
 };
 
 static const Word16 dfh_M24k[PRMN_24k] =
 {
-        3168, 31665,  9943,  9134, 
-       24776,  5857, 18475, 28535, 
-       29662, 14321, 16725,  4396, 
-       29353, 10003, 17068, 20504, 
-         720,     0,  8465, 12581, 
-       28863, 24774,  9709, 26043, 
-        7941, 27649, 13965, 15236, 
+        3168, 31665,  9943,  9134,
+       24776,  5857, 18475, 28535,
+       29662, 14321, 16725,  4396,
+       29353, 10003, 17068, 20504,
+         720,     0,  8465, 12581,
+       28863, 24774,  9709, 26043,
+        7941, 27649, 13965, 15236,
        18026, 22047, 16681,  3968
 };
 
index 2322845..97c3b68 100644 (file)
@@ -42,7 +42,7 @@ const static Word16 table[129] = {
 
 /* slope in Q11 used to compute y = acos(x) */
 
-const static Word16 slope[128] = { 
+const static Word16 slope[128] = {
  -26214, -9039, -5243, -3799, -2979, -2405, -2064, -1771,
  -1579, -1409, -1279, -1170, -1079, -1004, -933, -880,
  -827, -783, -743, -708, -676, -647, -621, -599,
index 6a35019..b065eb4 100644 (file)
 */
 #ifndef __LOG2_H__
 #define __LOG2_H__
+
 /*
 ********************************************************************************
 *                         INCLUDE FILES
 ********************************************************************************
 */
 #include "typedef.h"
+
 /*
 ********************************************************************************
 *                         DEFINITION OF DATA TYPES
 ********************************************************************************
 */
+
 /*
 ********************************************************************************
 *                         DECLARATION OF PROTOTYPES
index 5f85dd0..7b485ea 100644 (file)
@@ -98,7 +98,7 @@ static Word16 sort_1265[253] = {
    244,  61, 111, 164, 214,  65, 115, 168, 218,  70,
    120, 173, 223,  74, 124, 177, 227,  79, 129, 182,
    232,  83, 133, 186, 236,  88, 138, 191, 241,  92,
-   142, 195, 245                         
+   142, 195, 245
 };
 
 static Word16 sort_1425[285] = {
@@ -205,7 +205,7 @@ static Word16 sort_1825[365] = {
    257, 243, 229, 356, 159, 119,  67, 187, 173, 145,
    240,  77, 304, 332, 314, 342, 109, 254,  81, 278,
    105,  91, 346, 318, 183, 250, 197, 328,  95, 155,
-   169, 268, 226, 236, 264                 
+   169, 268, 226, 236, 264
 };
 
 static Word16 sort_1985[397] = {
@@ -248,7 +248,7 @@ static Word16 sort_1985[397] = {
    128, 118, 303, 104, 379, 182, 114, 375, 200,  96,
    293, 172, 214, 365, 279,  86, 289, 351, 347, 357,
    261, 186, 176, 271,  90, 100, 147, 322, 275, 361,
-    71, 332,  61, 265, 157, 246, 236         
+    71, 332,  61, 265, 157, 246, 236
 };
 
 static Word16 sort_2305[461] = {
@@ -349,7 +349,7 @@ static Word16 sort_2385[477] = {
    132, 453, 336, 425, 325, 347, 126, 104, 137, 458,
    352, 243, 447, 115, 341, 210, 330, 221, 232, 436,
    465, 319, 359, 111, 454, 228, 217, 122, 443, 348,
-   239, 250, 133, 144, 432, 337, 326         
+   239, 250, 133, 144, 432, 337, 326
 };
 
 static Word16 sort_SID[35] = {
index 3e5336a..4c1d0f0 100644 (file)
@@ -26,7 +26,7 @@ Contains:       VOME API Buffer Operator Implement Header
 #define __STREAM_H__
 
 #include "voMem.h"
-#define Frame_Maxsize  1024 * 2  //Work Buffer 10K 
+#define Frame_Maxsize  1024 * 2  //Work Buffer 10K
 #define Frame_MaxByte  640        //AMR_WB Encoder one frame 320 samples = 640 Bytes
 #define MIN(a,b)        ((a) < (b)? (a) : (b))
 
@@ -35,7 +35,7 @@ typedef struct{
        unsigned char *frame_ptr;
        unsigned char *frame_ptr_bk;
        int  set_len;
-       int  framebuffer_len; 
+       int  framebuffer_len;
        int  frame_storelen;
        int  used_len;
 }FrameStream;
index 533e68b..f08a678 100644 (file)
@@ -31,7 +31,7 @@
 /*
  * this is the original code from the ETSI file typedef.h
  */
-   
+
 #if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(_MSC_VER) || defined(__ZTC__)
 typedef signed char Word8;
 typedef short Word16;
index f30d255..0062584 100644 (file)
@@ -45,7 +45,7 @@
 *        OSF           only defined if the current platform is an Alpha
 *        PC            only defined if the current platform is a PC
 *        SUN           only defined if the current platform is a Sun
-*        
+*
 *        LSBFIRST      is defined if the byte order on this platform is
 *                      "least significant byte first" -> defined on DEC Alpha
 *                      and PC, undefined on Sun
@@ -68,7 +68,7 @@
 
 /*
 ********************************************************************************
-*                         DEFINITION OF CONSTANTS 
+*                         DEFINITION OF CONSTANTS
 ********************************************************************************
 */
 /*
@@ -197,7 +197,7 @@ typedef int Bool;
 #define     Syn_filt_32      voAWB_Syn_filt_32
 #define     Isf_isp          voAWB_Isf_isp
 #define     Levinson         voAWB_Levinson
-#define     median5          voAWB_median5           
+#define     median5          voAWB_median5
 #define     Pred_lt4         voAWB_Pred_lt4
 #define     Reorder_isf      voAWB_Reorder_isf
 #define     Dpisf_2s_36b     voAWB_Dpisf_2s_36b
index c1c74e6..282db92 100644 (file)
 
            .section  .text
            .global   Deemph_32_asm
-          
+
 Deemph_32_asm:
 
-           STMFD       r13!, {r4 - r12, r14} 
+           STMFD       r13!, {r4 - r12, r14}
           MOV          r4, #2                   @i=0
           LDRSH        r6, [r0], #2             @load x_hi[0]
           LDRSH        r7, [r1], #2             @load x_lo[0]
@@ -47,9 +47,9 @@ Deemph_32_asm:
           ADD          r12, r10, r7, LSL #4     @L_tmp += x_lo[0] << 4
           MOV          r10, r12, LSL #3         @L_tmp <<= 3
           MUL          r9, r5, r8
-          LDRSH        r6, [r0], #2             @load x_hi[1] 
+          LDRSH        r6, [r0], #2             @load x_hi[1]
           QDADD        r10, r10, r9
-          LDRSH        r7, [r1], #2             @load x_lo[1]  
+          LDRSH        r7, [r1], #2             @load x_lo[1]
           MOV          r12, r10, LSL #1         @L_tmp = L_mac(L_tmp, *mem, fac)
           QADD         r10, r12, r11
           MOV          r14, r10, ASR #16        @y[0] = round(L_tmp)
@@ -94,9 +94,9 @@ LOOP:
 
            BLT          LOOP
            STR          r14, [r3]
-           STRH         r14, [r2]         
+           STRH         r14, [r2]
 
-           LDMFD       r13!, {r4 - r12, r15} 
+           LDMFD       r13!, {r4 - r12, r15}
 
           @ENDP
           .END
index 02bdcab..4aa317e 100644 (file)
@@ -31,7 +31,7 @@
 
 Dot_product12_asm:
 
-          STMFD            r13!, {r4 - r12, r14} 
+          STMFD            r13!, {r4 - r12, r14}
           MOV               r4, #0                                 @ L_sum = 0
           MOV               r5, #0                                 @ i = 0
 
@@ -41,13 +41,13 @@ LOOP:
           LDR           r8, [r0], #4
           SMLABB        r4, r6, r7, r4
           LDR           r9, [r1], #4
-         SMLATT        r4, r6, r7, r4 
+         SMLATT        r4, r6, r7, r4
 
          LDR           r6, [r0], #4
          SMLABB        r4, r8, r9, r4
 
          LDR           r7, [r1], #4
-         SMLATT        r4, r8, r9, r4    
+         SMLATT        r4, r8, r9, r4
          LDR           r8, [r0], #4
 
          SMLABB        r4, r6, r7, r4
@@ -58,7 +58,7 @@ LOOP:
          CMP           r5, r2
          SMLATT        r4, r8, r9, r4
          BLT           LOOP
-              
+
           MOV           r12, r4, LSL #1
           ADD           r12, r12, #1                         @ L_sum = (L_sum << 1)  + 1
          MOV           r4, r12
@@ -69,12 +69,12 @@ LOOP:
           SUB           r10, r10, #1                         @ sft = norm_l(L_sum)
           MOV           r0, r12, LSL r10                     @ L_sum = L_sum << sft
           RSB           r11, r10, #30                        @ *exp = 30 - sft
-          STRH          r11, [r3]                     
+          STRH          r11, [r3]
 
 Dot_product12_end:
-                    
-          LDMFD            r13!, {r4 - r12, r15} 
+
+          LDMFD            r13!, {r4 - r12, r15}
           @ENDFUNC
           .END
+
 
index 1ce2a85..856ada8 100644 (file)
@@ -23,7 +23,7 @@
 @******************************************************************
 @ r0    ---  signal[]
 @ r1    ---  lg
-@ r2    ---  mem[] 
+@ r2    ---  mem[]
 
           .section  .text
           .global  Filt_6k_7k_asm
@@ -32,7 +32,7 @@
 
 Filt_6k_7k_asm:
 
-          STMFD                r13!, {r4 - r12, r14} 
+          STMFD                r13!, {r4 - r12, r14}
           SUB                  r13, r13, #240              @ x[L_SUBFR16k + (L_FIR - 1)]
           MOV                  r8, r0                      @ copy signal[] address
           MOV                  r4, r1                      @ copy lg address
@@ -43,9 +43,9 @@ Filt_6k_7k_asm:
           MOV                  r2, #30                     @ L_FIR - 1
           BL                   voAWB_Copy                   @ memcpy(x, mem, (L_FIR - 1)<<1)
 
-          LDR                  r10, Lable1                 @ get fir_7k address     
+          LDR                  r10, Lable1                 @ get fir_7k address
 
-          MOV                  r14, #0  
+          MOV                  r14, #0
           MOV                   r3, r8                      @ change myMemCopy to Copy, due to Copy will change r3 content
           ADD                  r6, r13, #60                @ get x[L_FIR - 1] address
           MOV                  r7, r3                      @ get signal[i]
@@ -76,14 +76,14 @@ LOOP1:
           STRH                 r12, [r6], #2
           ADD                  r14, r14, #8
           CMP                  r14, #80
-          BLT                  LOOP1          
+          BLT                  LOOP1
 
 
           STR                  r5, [sp, #-4]               @ PUSH  r5 to stack
 
           @ not use registers: r4, r10, r12, r14, r5
-          MOV                  r4, r13 
-          MOV                  r5, #0                      @ i = 0              
+          MOV                  r4, r13
+          MOV                  r5, #0                      @ i = 0
 LOOP2:
           LDR                  r0, [r10]
 
@@ -111,13 +111,13 @@ LOOP2:
           LDRSH                 r8, [r4, #10]              @ load x[i+5]
           LDRSH                 r9, [r4, #50]              @ load x[i+25]
           SMLABT                r14, r1, r0, r14           @ (x[i+3] + x[i+27]) * fir_7k[3]
-          ADD                   r8, r8, r9                 @ x[i+5] + x[i+25] 
+          ADD                   r8, r8, r9                 @ x[i+5] + x[i+25]
+
           LDR                   r0, [r10, #8]
           LDRSH                 r1, [r4, #12]              @ x[i+6]
           LDRSH                 r2, [r4, #48]              @ x[i+24]
           SMLABB                r14, r6, r0, r14           @ (x[i+4] + x[i+26]) * fir_7k[4]
-          LDRSH                 r6, [r4, #14]              @ x[i+7] 
+          LDRSH                 r6, [r4, #14]              @ x[i+7]
           LDRSH                 r7, [r4, #46]              @ x[i+23]
           SMLABT                r14, r8, r0, r14           @ (x[i+5] + x[i+25]) * fir_7k[5]
           LDR                   r0, [r10, #12]
@@ -125,8 +125,8 @@ LOOP2:
           ADD                   r6, r6, r7                 @ (x[i+7] + x[i+23])
           SMLABB                r14, r1, r0, r14           @ (x[i+6] + x[i+24]) * fir_7k[6]
           LDRSH                 r8, [r4, #16]              @ x[i+8]
-          LDRSH                 r9, [r4, #44]              @ x[i+22] 
-          SMLABT                r14, r6, r0, r14           @ (x[i+7] + x[i+23]) * fir_7k[7]  
+          LDRSH                 r9, [r4, #44]              @ x[i+22]
+          SMLABT                r14, r6, r0, r14           @ (x[i+7] + x[i+23]) * fir_7k[7]
           LDR                   r0, [r10, #16]
           LDRSH                 r1, [r4, #18]              @ x[i+9]
           LDRSH                 r2, [r4, #42]              @ x[i+21]
@@ -144,7 +144,7 @@ LOOP2:
           LDRSH                 r2, [r4, #36]              @ x[i+18]
           SMLABB                r14, r6, r0, r14           @ (x[i+10] + x[i+20]) * fir_7k[10]
           LDRSH                 r6, [r4, #26]              @ x[i+13]
-          ADD                   r8, r8, r9                 @ (x[i+11] + x[i+19])  
+          ADD                   r8, r8, r9                 @ (x[i+11] + x[i+19])
           LDRSH                 r7, [r4, #34]              @ x[i+17]
           SMLABT                r14, r8, r0, r14           @ (x[i+11] + x[i+19]) * fir_7k[11]
           LDR                   r0, [r10, #24]
@@ -152,31 +152,31 @@ LOOP2:
           LDRSH                 r8, [r4, #28]              @ x[i+14]
           SMLABB                r14, r1, r0, r14           @ (x[i+12] + x[i+18]) * fir_7k[12]
           ADD                   r6, r6, r7                 @ (x[i+13] + x[i+17])
-          LDRSH                 r9, [r4, #32]              @ x[i+16] 
+          LDRSH                 r9, [r4, #32]              @ x[i+16]
           SMLABT                r14, r6, r0, r14           @ (x[i+13] + x[i+17]) * fir_7k[13]
-          LDR                   r0, [r10, #28]         
+          LDR                   r0, [r10, #28]
           ADD                   r8, r8, r9                 @ (x[i+14] + x[i+16])
           LDRSH                 r1, [r4, #30]              @ x[i+15]
           SMLABB                r14, r8, r0, r14           @ (x[i+14] + x[i+16]) * fir_7k[14]
-          SMLABT                r14, r1, r0, r14           @ x[i+15] * fir_7k[15]                              
+          SMLABT                r14, r1, r0, r14           @ x[i+15] * fir_7k[15]
 
           ADD                  r5, r5, #1
           ADD                  r14, r14, #0x4000
-          ADD                  r4, r4, #2                
+          ADD                  r4, r4, #2
           MOV                  r1, r14, ASR #15
           CMP                  r5, #80
           STRH                 r1, [r3], #2               @signal[i] = (L_tmp + 0x4000) >> 15
-          BLT                  LOOP2      
-           
+          BLT                  LOOP2
+
           LDR                  r1, [sp, #-4]               @mem address
           ADD                  r0, r13, #160               @x + lg
           MOV                  r2, #30
           BL                   voAWB_Copy
-                    
+
 Filt_6k_7k_end:
-          ADD                  r13, r13, #240  
-          LDMFD                r13!, {r4 - r12, r15} 
+          ADD                  r13, r13, #240
+          LDMFD                r13!, {r4 - r12, r15}
+
 Lable1:
           .word                fir_6k_7k
           @ENDFUNC
index b440a31..49bdc2b 100644 (file)
@@ -32,8 +32,8 @@
 @ r6 --- corr_norm[]
 
 
-       .section  .text 
-        .global   Norm_corr_asm 
+       .section  .text
+        .global   Norm_corr_asm
         .extern   Convolve_asm
         .extern   Isqrt_n
 @******************************
 .equ         T_MIN         ,   212
 .equ         T_MAX         ,   216
 .equ         CORR_NORM     ,   220
-                  
+
 Norm_corr_asm:
 
-        STMFD      r13!, {r4 - r12, r14}  
+        STMFD      r13!, {r4 - r12, r14}
         SUB        r13, r13, #voSTACK
-  
+
         ADD        r8, r13, #20                 @get the excf[L_SUBFR]
         LDR        r4, [r13, #T_MIN]            @get t_min
         RSB        r11, r4, #0                  @k = -t_min
-        ADD        r5, r0, r11, LSL #1          @get the &exc[k]   
-        
+        ADD        r5, r0, r11, LSL #1          @get the &exc[k]
+
         @transfer Convolve function
         STMFD       sp!, {r0 - r3}
         MOV         r0, r5
@@ -68,7 +68,7 @@ Norm_corr_asm:
 
         @ r8 --- excf[]
 
-       MOV         r14, r1                       @copy xn[] address                      
+       MOV         r14, r1                       @copy xn[] address
         MOV         r5, #64
         MOV         r6, #0                       @L_tmp = 0
         MOV         r7, #1
@@ -93,21 +93,21 @@ LOOP1:
        CLZ         r7, r9
        SUB         r6, r7, #1                   @exp = norm_l(L_tmp)
         RSB         r7, r6, #32                  @exp = 32 - exp
-       MOV         r6, r7, ASR #1         
+       MOV         r6, r7, ASR #1
        RSB         r7, r6, #0                   @scale = -(exp >> 1)
-       
+
         @loop for every possible period
        @for(t = t_min@ t <= t_max@ t++)
        @r7 --- scale r4 --- t_min r8 --- excf[]
 
-LOOPFOR:       
+LOOPFOR:
         MOV         r5, #0                       @L_tmp  = 0
        MOV         r6, #0                       @L_tmp1 = 0
-       MOV         r9, #64  
+       MOV         r9, #64
        MOV         r12, r1                      @copy of xn[]
        ADD         r14, r13, #20                @copy of excf[]
        MOV         r8, #0x8000
-               
+
 LOOPi:
        LDR         r11, [r14], #4               @load excf[i], excf[i+1]
         LDR         r10, [r12], #4               @load xn[i], xn[i+1]
@@ -128,13 +128,13 @@ LOOPi:
        MOV         r10, #1
        ADD         r5, r10, r5, LSL #1          @L_tmp = (L_tmp << 1) + 1
        ADD         r6, r10, r6, LSL #1          @L_tmp1 = (L_tmp1 << 1) + 1
-       CLZ         r10, r5        
+
+       CLZ         r10, r5
        CMP         r5, #0
        RSBLT       r11, r5, #0
        CLZLT       r10, r11
        SUB         r10, r10, #1                 @exp = norm_l(L_tmp)
-     
+
        MOV         r5, r5, LSL r10              @L_tmp = (L_tmp << exp)
        RSB         r10, r10, #30                @exp_corr = 30 - exp
        MOV         r11, r5, ASR #16             @corr = extract_h(L_tmp)
@@ -150,7 +150,7 @@ LOOPi:
        @Isqrt_n(&L_tmp, &exp_norm)
 
        MOV         r14, r0
-       MOV         r12, r1 
+       MOV         r12, r1
 
         STMFD       sp!, {r0 - r4, r7 - r12, r14}
        ADD         r1, sp, #4
@@ -168,7 +168,7 @@ LOOPi:
        MOV         r6, r6, ASR #16              @norm = extract_h(L_tmp)
        MUL         r12, r6, r11
        ADD         r12, r12, r12                @L_tmp = vo_L_mult(corr, norm)
-  
+
        ADD         r6, r10, r5
        ADD         r6, r6, r7                   @exp_corr + exp_norm + scale
 
@@ -187,9 +187,9 @@ LOOPi:
 
        CMP         r4, r6
        BEQ         Norm_corr_asm_end
+
        ADD         r4, r4, #1                   @ t_min ++
-        
+
        RSB         r5, r4, #0                   @ k
 
        MOV         r6, #63                      @ i = 63
@@ -216,16 +216,16 @@ LOOPK:
        MUL         r14, r11, r8
         LDR         r6, [r13, #T_MAX]            @ get t_max
        MOV         r8, r14, ASR #15
-       STRH        r8, [r10]                    
+       STRH        r8, [r10]
 
        CMP         r4, r6
        BLE         LOOPFOR
 
-Norm_corr_asm_end: 
-        
-        ADD            r13, r13, #voSTACK      
+Norm_corr_asm_end:
+
+        ADD            r13, r13, #voSTACK
         LDMFD          r13!, {r4 - r12, r15}
-    
+
         .END
 
 
index 70464e4..3f4930c 100644 (file)
@@ -38,7 +38,7 @@
 
 Syn_filt_32_asm:
 
-          STMFD        r13!, {r4 - r12, r14} 
+          STMFD        r13!, {r4 - r12, r14}
           LDR           r4,  [r13, #40]                  @ get sig_hi[] address
           LDR           r5,  [r13, #44]                  @ get sig_lo[] address
 
@@ -55,7 +55,7 @@ Syn_filt_32_asm:
           AND           r8, r8, r14
           ORR           r10, r6, r7, LSL #16             @ Aq[2] -- Aq[1]
           ORR           r11, r8, r9, LSL #16             @ Aq[4] -- Aq[3]
-          STR           r10, [r13, #-4]                  
+          STR           r10, [r13, #-4]
           STR           r11, [r13, #-8]
 
           LDRSH         r6, [r0, #10]                    @ load Aq[5]
@@ -73,12 +73,12 @@ Syn_filt_32_asm:
           LDRSH         r7, [r0, #20]                    @ load Aq[10]
           LDRSH         r8, [r0, #22]                    @ load Aq[11]
           LDRSH         r9, [r0, #24]                    @ load Aq[12]
-          AND           r6, r6, r14 
+          AND           r6, r6, r14
           AND           r8, r8, r14
           ORR           r10, r6, r7, LSL #16             @ Aq[10] -- Aq[9]
           ORR           r11, r8, r9, LSL #16             @ Aq[12] -- Aq[11]
           STR           r10, [r13, #-20]
-          STR           r11, [r13, #-24]  
+          STR           r11, [r13, #-24]
 
           LDRSH         r6, [r0, #26]                    @ load Aq[13]
           LDRSH         r7, [r0, #28]                    @ load Aq[14]
@@ -90,14 +90,14 @@ Syn_filt_32_asm:
           ORR           r11, r8, r9, LSL #16             @ Aq[16] -- Aq[15]
           STR           r10, [r13, #-28]
           STR           r11, [r13, #-32]
-          
+
           MOV           r8, #0                           @ i = 0
-              
-LOOP:            
+
+LOOP:
           LDRSH         r6, [r5, #-2]                    @ load sig_lo[i-1]
           LDRSH         r7, [r5, #-4]                    @ load sig_lo[i-2]
 
-          LDR           r11, [r13, #-4]                  @ Aq[2] -- Aq[1]        
+          LDR           r11, [r13, #-4]                  @ Aq[2] -- Aq[1]
           LDRSH         r9, [r5, #-6]                    @ load sig_lo[i-3]
           LDRSH         r10, [r5, #-8]                   @ load sig_lo[i-4]
 
@@ -135,12 +135,12 @@ LOOP:
           LDRSH         r10, [r5, #-32]                  @ load sig_lo[i-16]
           SMLABB        r12, r6, r11, r12                @ sig_lo[i-13] * Aq[13]
           SMLABT        r12, r7, r11, r12                @ sig_lo[i-14] * Aq[14]
+
           LDR           r11, [r13, #-32]                 @ Aq[16] -- Aq[15]
-          LDRSH         r6, [r2],#2                      @ load exc[i] 
+          LDRSH         r6, [r2],#2                      @ load exc[i]
           SMLABB        r12, r9, r11, r12                @ sig_lo[i-15] * Aq[15]
           SMLABT        r12, r10, r11, r12               @ sig_lo[i-16] * Aq[16]
-          MUL           r7, r6, r3                       @ exc[i] * a0 
+          MUL           r7, r6, r3                       @ exc[i] * a0
           RSB           r14, r12, #0                     @ L_tmp
           MOV           r14, r14, ASR #11                @ L_tmp >>= 11
           ADD           r14, r14, r7, LSL #1             @ L_tmp += (exc[i] * a0) << 1
@@ -149,7 +149,7 @@ LOOP:
           LDRSH         r6, [r4, #-2]                    @ load sig_hi[i-1]
           LDRSH         r7, [r4, #-4]                    @ load sig_hi[i-2]
 
-          LDR           r11, [r13, #-4]                  @ Aq[2] -- Aq[1]        
+          LDR           r11, [r13, #-4]                  @ Aq[2] -- Aq[1]
           LDRSH         r9, [r4, #-6]                    @ load sig_hi[i-3]
           LDRSH         r10, [r4, #-8]                   @ load sig_hi[i-4]
           SMULBB        r12, r6, r11                     @ sig_hi[i-1] * Aq[1]
@@ -198,14 +198,14 @@ LOOP:
           LDRSH         r10, [r4, #-32]                  @ load sig_hi[i-16]
           SMLABB        r12, r6, r11, r12                @ sig_hi[i-13] * Aq[13]
           SMLABT        r12, r7, r11, r12                @ sig_hi[i-14] * Aq[14]
+
           LDR           r11, [r13, #-32]                 @ Aq[16] -- Aq[15]
           SMLABB        r12, r9, r11, r12                @ sig_hi[i-15] * Aq[15]
-          SMLABT        r12, r10, r11, r12               @ sig_hi[i-16] * Aq[16]       
+          SMLABT        r12, r10, r11, r12               @ sig_hi[i-16] * Aq[16]
           ADD           r6, r12, r12                     @ r12 << 1
-          SUB           r14, r14, r6                     
+          SUB           r14, r14, r6
           MOV           r14, r14, LSL #3                 @ L_tmp <<=3
-  
+
           MOV           r7, r14, ASR #16                 @ L_tmp >> 16
 
           MOV           r14, r14, ASR #4                 @ L_tmp >>=4
@@ -213,14 +213,14 @@ LOOP:
           SUB           r9, r14, r7, LSL #12             @ sig_lo[i] = L_tmp - (sig_hi[i] << 12)
 
           ADD           r8, r8, #1
-          STRH          r9, [r5], #2   
+          STRH          r9, [r5], #2
           CMP           r8, #64
-          BLT           LOOP                            
-         
+          BLT           LOOP
+
 Syn_filt_32_end:
-                    
-          LDMFD            r13!, {r4 - r12, r15} 
+
+          LDMFD            r13!, {r4 - r12, r15}
           @ENDFUNC
           .END
+
 
index 0228bda..71bb532 100644 (file)
 @  r3 --- L
 
        .section  .text
-        .global   Convolve_asm 
+        .global   Convolve_asm
 
 Convolve_asm:
 
-        STMFD          r13!, {r4 - r12, r14}  
+        STMFD          r13!, {r4 - r12, r14}
         MOV            r3,  #0                           @ n
        MOV            r11, #0x8000
-        
-LOOP: 
+
+LOOP:
         ADD            r4, r1, r3, LSL #1                @ tmpH address
         ADD            r5, r3, #1                        @ i = n + 1
         MOV            r6, r0                            @ tmpX = x
         LDRSH          r9,  [r6], #2                     @ *tmpX++
         LDRSH          r10, [r4], #-2                    @ *tmpH--
         SUB            r5, r5, #1
-        MUL            r8,  r9, r10 
+        MUL            r8,  r9, r10
 
-LOOP1:                    
+LOOP1:
         CMP            r5, #0
         BLE            L1
        LDRSH          r9,  [r6], #2                     @ *tmpX++
@@ -58,12 +58,12 @@ LOOP1:
        LDRSH          r12, [r6], #2                     @ *tmpX++
        LDRSH          r14, [r4], #-2                    @ *tmpH--
        MLA            r8, r9, r10, r8
-        SUBS           r5, r5, #4 
+        SUBS           r5, r5, #4
        MLA            r8, r12, r14, r8
-    
-        B              LOOP1  
 
-L1:                  
+        B              LOOP1
+
+L1:
 
         ADD            r5, r11, r8, LSL #1
         MOV            r5, r5, LSR #16                   @extract_h(s)
@@ -75,14 +75,14 @@ L1:
         ADD            r5, r3, #1
         MOV            r6, r0
         LDRSH          r9,  [r6], #2                     @ *tmpX++
-        LDRSH          r10, [r4], #-2                     
+        LDRSH          r10, [r4], #-2
         LDRSH          r12, [r6], #2
         LDRSH          r14, [r4], #-2
 
         MUL            r8, r9, r10
         SUB            r5, r5, #2
         MLA            r8, r12, r14, r8
-        
+
 LOOP2:
         CMP            r5, #0
         BLE            L2
@@ -97,14 +97,14 @@ LOOP2:
        LDRSH          r12, [r6], #2                     @ *tmpX++
        LDRSH          r14, [r4], #-2                    @ *tmpH--
        MLA            r8, r9, r10, r8
-        SUBS           r5, r5, #4 
+        SUBS           r5, r5, #4
        MLA            r8, r12, r14, r8
         B              LOOP2
 
 L2:
         ADD            r8, r11, r8, LSL #1
         MOV            r8, r8, LSR #16                   @extract_h(s)
-        ADD            r3, r3, #1  
+        ADD            r3, r3, #1
         STRH           r8, [r2], #2                      @y[n]
 
         ADD            r4, r1, r3, LSL #1
@@ -117,7 +117,7 @@ L2:
         MUL            r8, r9, r10
         LDRSH          r9,  [r6], #2
         LDRSH          r10, [r4], #-2
-        MLA            r8, r12, r14, r8 
+        MLA            r8, r12, r14, r8
         SUB            r5, r5, #3
         MLA            r8, r9, r10, r8
 
@@ -135,9 +135,9 @@ LOOP3:
        LDRSH          r12, [r6], #2                     @ *tmpX++
        LDRSH          r14, [r4], #-2                    @ *tmpH--
        MLA            r8, r9, r10, r8
-        SUBS           r5, r5, #4 
-       MLA            r8, r12, r14, r8 
-        B              LOOP3   
+        SUBS           r5, r5, #4
+       MLA            r8, r12, r14, r8
+        B              LOOP3
 
 L3:
         ADD            r8, r11, r8, LSL #1
@@ -150,7 +150,7 @@ L3:
         MOV            r6, r0
         MOV            r8, #0
 
-LOOP4:                    
+LOOP4:
         CMP            r5, #0
         BLE            L4
        LDRSH          r9,  [r6], #2                     @ *tmpX++
@@ -164,22 +164,22 @@ LOOP4:
        LDRSH          r12, [r6], #2                     @ *tmpX++
        LDRSH          r14, [r4], #-2                    @ *tmpH--
        MLA            r8, r9, r10, r8
-        SUBS           r5, r5, #4 
-       MLA            r8, r12, r14, r8        
-        B              LOOP4    
-L4:                  
+        SUBS           r5, r5, #4
+       MLA            r8, r12, r14, r8
+        B              LOOP4
+L4:
         ADD            r5, r11, r8, LSL #1
         MOV            r5, r5, LSR #16                   @extract_h(s)
         ADD            r3, r3, #1
         STRH           r5, [r2], #2                      @y[n]
-        
+
         CMP            r3, #64
         BLT            LOOP
-                
-Convolve_asm_end: 
+
+Convolve_asm_end:
+
         LDMFD      r13!, {r4 - r12, r15}
-    
+
         @ENDFUNC
         .END
 
index 8f32733..2d4c7cc 100644 (file)
@@ -51,12 +51,12 @@ LOOPi:
          RSB           r11, r2, #62                      @j=62-pos
 
 LOOPj1:
-        LDRSH         r12, [r10], #2  
+        LDRSH         r12, [r10], #2
         LDRSH         r8,  [r9], #2
         LDRSH         r14, [r9]
         SUBS          r11, r11, #1
          MLA           r5, r12, r8, r5
-         MLA           r6, r12, r14, r6         
+         MLA           r6, r12, r14, r6
         BGE           LOOPj1
 
         LDRSH         r12, [r10], #2                     @*p1++
@@ -64,7 +64,7 @@ LOOPj1:
          MLA           r5, r12, r14, r5
          MOV           r14, #0x8000
          MOV           r5, r5, LSL #2                     @L_sum1 = (L_sum1 << 2)
-         ADD           r10, r6, r14         
+         ADD           r10, r6, r14
          ADD           r9, r5, r14
          MOV           r5, r9, ASR #16
          MOV           r6, r10, ASR #16
@@ -76,7 +76,7 @@ LOOPj1:
         MUL           r14, r6, r11
         MOV           r5, r12, ASR #15
         MOV           r6, r14, ASR #15
-        LDR           r9,  [r13, #44]                   
+        LDR           r9,  [r13, #44]
         LDR           r12, [r13, #48]
          LDRSH         r10, [r7], #2                      @*p0++
         LDRSH         r11, [r8]                          @*p3++
@@ -88,7 +88,7 @@ LOOPj1:
         STRH          r6, [r12]
 
          ADD           r2, r2, #4
+
          MOV           r5, #0                            @L_sum1 = 0
         MOV           r6, #0                            @L_sum2 = 0
         ADD           r9, r1, r2, LSL #1                @p2 = &vec[pos]
@@ -97,12 +97,12 @@ LOOPj1:
         ADD           r4, r4, #1                        @i++
 
 LOOPj2:
-        LDRSH         r12, [r10], #2  
+        LDRSH         r12, [r10], #2
         LDRSH         r8,  [r9], #2
         LDRSH         r14, [r9]
         SUBS          r11, r11, #1
          MLA           r5, r12, r8, r5
-         MLA           r6, r12, r14, r6         
+         MLA           r6, r12, r14, r6
         BGE           LOOPj2
 
         LDRSH         r12, [r10], #2                     @*p1++
@@ -110,7 +110,7 @@ LOOPj2:
          MLA           r5, r12, r14, r5
          MOV           r14, #0x8000
          MOV           r5, r5, LSL #2                     @L_sum1 = (L_sum1 << 2)
-         ADD           r10, r6, r14        
+         ADD           r10, r6, r14
          ADD           r9, r5, r14
 
          MOV           r5, r9, ASR #16
@@ -123,7 +123,7 @@ LOOPj2:
         MUL           r14, r6, r11
         MOV           r5, r12, ASR #15
         MOV           r6, r14, ASR #15
-        LDR           r9,  [r13, #44]                   
+        LDR           r9,  [r13, #44]
         LDR           r12, [r13, #48]
          LDRSH         r10, [r7], #2                      @*p0++
         LDRSH         r11, [r8]                          @*p3++
@@ -136,16 +136,16 @@ LOOPj2:
         ADD           r4, r4, #1                         @i+1
         ADD           r2, r2, #4                         @pos += STEP
         CMP           r4, #16
-        
+
         BLT           LOOPi
-         
+
 the_end:
          LDMFD         r13!, {r4 - r12, r15}
-      
+
          @ENDFUNC
-         .END   
-        
-       
-         
+         .END
+
+
+
 
 
index d7b4509..e0b338d 100644 (file)
@@ -35,7 +35,7 @@
 
 pred_lt4_asm:
 
-         STMFD     r13!, {r4 - r12, r14} 
+         STMFD     r13!, {r4 - r12, r14}
          RSB       r4, r1, #0                         @-T0
          RSB       r2, r2, #0                         @frac = -frac
          ADD       r5, r0, r4, LSL #1                 @x = exc - T0
@@ -45,7 +45,7 @@ pred_lt4_asm:
          SUB       r5, r5, #30                        @x -= 15
          RSB       r4, r2, #3                         @k = 3 - frac
          LDR       r6, Table
-        MOV       r8, r4, LSL #6                    
+        MOV       r8, r4, LSL #6
          @MOV       r7, #0                             @j = 0
          ADD       r8, r6, r8                         @ptr2 = &(inter4_2[k][0])
 
@@ -63,7 +63,7 @@ THREE_LOOP:
         LDRSH     r6, [r1], #2                       @x[1]
         LDRSH     r9, [r1], #2                       @x[2]
 
-        SMULBB    r10, r4, r3                        @x[0] * h[0]                  
+        SMULBB    r10, r4, r3                        @x[0] * h[0]
         SMULBB    r11, r6, r3                        @x[1] * h[0]
         SMULBB    r12, r9, r3                        @x[2] * h[0]
 
@@ -285,7 +285,7 @@ Last2LOOP:
 
         SMLABB    r10, r9, r3, r10                   @x[2] * h[2]
          SMLABB    r11, r4, r3, r11                   @x[3] * h[2]
-      
+
         SMLABT    r10, r4, r3, r10                   @x[3] * h[3]
         SMLABT    r11, r6, r3, r11                   @x[4] * h[3]
 
@@ -435,7 +435,7 @@ Last2LOOP:
         MOV       r11, r11, LSL #1
 
         QADD      r10, r10, r10
-        QADD      r11, r11, r11 
+        QADD      r11, r11, r11
 
         QADD      r10, r10, r5
         QADD      r11, r11, r5
index 86b3bd6..5ff0964 100644 (file)
@@ -34,12 +34,12 @@ Residu_opt:
 
         LDRH    r5, [r0], #2
         LDRH    r6, [r0], #2
-        ORR     r5, r6, r5, LSL #16                  @r5 --- a0, a1    
+        ORR     r5, r6, r5, LSL #16                  @r5 --- a0, a1
 
         LDRH    r6, [r0], #2
        LDRH    r7, [r0], #2
        ORR     r6, r7, r6, LSL #16                  @r6 --- a2, a3
-       
+
         LDRH    r7, [r0], #2
        LDRH    r8, [r0], #2
        ORR     r7, r8, r7, LSL #16                  @r7 --- a4, a5
@@ -59,13 +59,13 @@ Residu_opt:
         LDRH    r11, [r0], #2
        LDRH    r12, [r0], #2
        ORR     r11, r12, r11, LSL #16               @r11 --- a12, a13
-       
+
        LDRH    r12, [r0], #2
        LDRH    r4, [r0], #2
        ORR     r12, r4, r12, LSL #16                @r12 --- a14, a15
-       
 
-       STMFD   r13!, {r8 - r12}                     @store r8-r12 
+
+       STMFD   r13!, {r8 - r12}                     @store r8-r12
        LDRH    r4, [r0], #2                         @load a16
         MOV     r14, r3, ASR #2                      @one loop get 4 outputs
        ADD     r1, r1, #4
@@ -78,7 +78,7 @@ residu_loop:
        LDR     r2,  [r1], #-4                       @r2   --- x[1], x[0]
 
        SMULTB  r3, r5, r2                           @i1(0)  --- r3 = x[0] * a0
-        SMULTT  r4, r5, r2                           @i2(0)  --- r4 = x[1] * a0        
+        SMULTT  r4, r5, r2                           @i2(0)  --- r4 = x[1] * a0
        SMULTB  r11, r5, r10                         @i3(0)  --- r11 = x[2] * a0
        SMULTT  r12, r5, r10                         @i4(0)  --- r12 = x[3] * a0
 
@@ -88,20 +88,20 @@ residu_loop:
 
        SMLATB  r11, r6, r2, r11                     @i3(2)  --- r11 += x[0] * a2
        SMLATT  r12, r6, r2, r12                     @i4(2)  --- r12 += x[1] * a2
-       SMLABB  r12, r6, r2, r12                     @i4(3)  --- r12 += x[0] * a3                 
-       
+       SMLABB  r12, r6, r2, r12                     @i4(3)  --- r12 += x[0] * a3
+
        LDR     r2, [r1], #-4                        @r2 ---- x[-1], x[-2]
 
        SMLABT  r3, r5, r2, r3                       @i1(1) --- r3 += x[-1] * a1
        SMLATT  r4, r6, r2, r4                       @i2(2) --- r4 += x[-1] * a2
        SMLABT  r11, r6, r2, r11                     @i3(3) --- r11 += x[-1] * a3
        SMLATT  r12, r7, r2, r12                     @i4(4) --- r12 += x[-1] * a4
-        SMLATB  r3, r6, r2, r3                       @i1(2) --- r3 += x[-2] * a2       
+        SMLATB  r3, r6, r2, r3                       @i1(2) --- r3 += x[-2] * a2
 
        SMLABB  r4, r6, r2, r4                          @ i2    (3)
        SMLATB  r11,r7, r2, r11                         @ i3    (4)
        SMLABB  r12,r7, r2, r12                         @ i4    (5)
-       
+
        LDR     r2,[r1],#-4
        SMLABT  r3, r6, r2, r3                          @ i1    (3)
        SMLATT  r4, r7, r2, r4                          @ i2    (4)
@@ -111,7 +111,7 @@ residu_loop:
        SMLABB  r4, r7, r2, r4                          @ i2    (5)
        SMLATB  r11,r8, r2, r11                         @ i3    (6)
        SMLABB  r12,r8, r2, r12                         @ i4    (7)
-               
+
        LDR     r2,[r1],#-4
        SMLABT  r3, r7, r2, r3                          @ i1    (5)
        SMLATT  r4, r8, r2, r4                          @ i2    (6)
@@ -122,7 +122,7 @@ residu_loop:
        SMLATB  r11,r9, r2, r11                         @ i3    (8)
        SMLABB  r12,r9, r2, r12                         @ i4    (9)
        LDR     r10, [r13, #8]                          @ [ a10 | a11]
-       
+
        LDR     r2,[r1],#-4
        SMLABT  r3, r8, r2, r3                          @ i1    (7)
        SMLATT  r4, r9, r2, r4                          @ i2    (8)
@@ -133,7 +133,7 @@ residu_loop:
        SMLATB  r11,r10, r2, r11                        @ i3    (10)
        SMLABB  r12,r10, r2, r12                        @ i4    (11)
        LDR     r8, [r13, #12]                          @ [ a12 | a13 ]
-               
+
        LDR     r2,[r1],#-4
        SMLABT  r3, r9, r2, r3                          @ i1    (9)
        SMLATT  r4, r10, r2, r4                         @ i2    (10)
@@ -144,7 +144,7 @@ residu_loop:
        SMLATB  r11,r8, r2, r11                         @ i3    (12)
        SMLABB  r12,r8, r2, r12                         @ i4    (13)
        LDR     r9, [r13, #16]                          @ [ a14 | a15 ]
-       
+
        LDR     r2,[r1],#-4
        SMLABT  r3, r10, r2, r3                         @ i1    (11)
        SMLATT  r4, r8, r2, r4                          @ i2    (12)
@@ -154,7 +154,7 @@ residu_loop:
        SMLABB  r4, r8, r2, r4                          @ i2    (13)
        SMLATB  r11,r9, r2, r11                         @ i3    (14)
        SMLABB  r12,r9, r2, r12                         @ i4    (15)
-       
+
 
        LDR     r2,[r1],#-4
        SMLABT  r3, r8, r2, r3                          @ i1    (13)
@@ -165,64 +165,64 @@ residu_loop:
        SMLABB  r4, r9, r2, r4                          @ i2    (15)
        SMLABB  r11,r14, r2, r11                        @ i3    (16)
        LDR             r8, [r13]                                       @ [ a6 | a7 ]
-                       
+
         LDR     r2,[r1],#44                    @ Change
        SMLABT  r3, r9, r2, r3
        SMLABB  r3, r14, r2, r3
        SMLABT  r4, r14, r2, r4
        LDR             r9, [r13, #4]                           @ [ a8 | a9 ]
-       
-
-       QADD    r3,r3,r3                                        
-       QADD    r4,r4,r4                                        
-       QADD    r11,r11,r11                                     
-       QADD    r12,r12,r12                                     
-               
-       QADD    r3,r3,r3                                        
-       QADD    r4,r4,r4                                        
-       QADD    r11,r11,r11                                     
-       QADD    r12,r12,r12                                     
-       
-       QADD    r3,r3,r3                                        
-       QADD    r4,r4,r4                                        
-       QADD    r11,r11,r11                                     
-       QADD    r12,r12,r12                                     
-       
-       QADD    r3,r3,r3                                        
-       QADD    r4,r4,r4                                        
-       QADD    r11,r11,r11                                     
-       QADD    r12,r12,r12                                     
-       
-       MOV     r2,#32768       
-       
-       QDADD   r3,r2,r3                                        
-       QDADD   r4,r2,r4                                        
-       QDADD   r11,r2,r11                                      
-       QDADD   r12,r2,r12                                      
-               
-       
+
+
+       QADD    r3,r3,r3
+       QADD    r4,r4,r4
+       QADD    r11,r11,r11
+       QADD    r12,r12,r12
+
+       QADD    r3,r3,r3
+       QADD    r4,r4,r4
+       QADD    r11,r11,r11
+       QADD    r12,r12,r12
+
+       QADD    r3,r3,r3
+       QADD    r4,r4,r4
+       QADD    r11,r11,r11
+       QADD    r12,r12,r12
+
+       QADD    r3,r3,r3
+       QADD    r4,r4,r4
+       QADD    r11,r11,r11
+       QADD    r12,r12,r12
+
+       MOV     r2,#32768
+
+       QDADD   r3,r2,r3
+       QDADD   r4,r2,r4
+       QDADD   r11,r2,r11
+       QDADD   r12,r2,r12
+
+
        MOV     r3,r3,asr #16
        MOV     r4,r4,asr #16
        MOV     r11,r11,asr #16
        MOV     r12,r12,asr #16
-       
+
        STRH    r3,[r0],#2
        STRH    r4,[r0],#2
        STRH    r11,[r0],#2
        STRH    r12,[r0],#2
-       
+
        MOV     r2,r14,asr #16
        SUB     r14, r14, #0x10000
        SUBS    r2,r2,#1
-       BNE     residu_loop     
+       BNE     residu_loop
 end:
-       LDMFD   r13!, {r8 -r12} 
+       LDMFD   r13!, {r8 -r12}
        LDMFD   r13!, {r4 -r12,pc}
 
         @ENDFUNC
-        .END    
-        
-       
-         
+        .END
+
+
+
 
 
index f83e688..b300224 100644 (file)
@@ -38,7 +38,7 @@ Scale_sig_opt:
         MOV           r8, #0x7fffffff
         MOV           r9, #0x8000
         BLE           LOOP2
-        
+
 LOOP1:
 
          LDRSH          r5, [r4]                    @load x[i]
@@ -65,11 +65,11 @@ LOOP2:
 
 The_end:
          LDMFD         r13!, {r4 - r12, r15}
-     
+
          @ENDFUNC
-         .END   
-        
-       
-         
+         .END
+
+
+
 
 
index f4700cd..0c287a4 100644 (file)
 
 Syn_filt_asm:
 
-          STMFD        r13!, {r4 - r12, r14} 
+          STMFD        r13!, {r4 - r12, r14}
           SUB           r13, r13, #700                   @ y_buf[L_FRAME16k + M16k]
-   
+
           MOV           r4, r3                           @ copy mem[] address
           MOV           r5, r13                          @ copy yy = y_buf address
 
           @ for(i = 0@ i < m@ i++)
           @{
           @    *yy++ = mem[i]@
-          @} 
+          @}
 
-          LDRH          r6,  [r4], #2          
+          LDRH          r6,  [r4], #2
           LDRH          r7,  [r4], #2
           LDRH          r8,  [r4], #2
           LDRH          r9,  [r4], #2
@@ -62,7 +62,7 @@ Syn_filt_asm:
           STRH          r12, [r5], #2
           STRH          r14, [r5], #2
 
-          LDRH          r6,  [r4], #2          
+          LDRH          r6,  [r4], #2
           LDRH          r7,  [r4], #2
           LDRH          r8,  [r4], #2
           LDRH          r9,  [r4], #2
@@ -92,45 +92,45 @@ Syn_filt_asm:
           LDRSH         r9, [r0, #6]                     @ load a[3]
           LDRSH         r11,[r0, #8]                     @ load a[4]
           AND           r6, r6, r14
-          AND           r9, r9, r14          
+          AND           r9, r9, r14
           ORR           r10, r6, r7, LSL #16             @ -a[2] -- -a[1]
           ORR           r12, r9, r11, LSL #16            @ -a[4] -- -a[3]
           STR           r10, [r13, #-4]
           STR           r12, [r13, #-8]
-          
+
           LDRSH         r6, [r0, #10]                    @ load a[5]
           LDRSH         r7, [r0, #12]                    @ load a[6]
           LDRSH         r9, [r0, #14]                    @ load a[7]
           LDRSH         r11,[r0, #16]                    @ load a[8]
           AND           r6, r6, r14
-          AND           r9, r9, r14          
+          AND           r9, r9, r14
           ORR           r10, r6, r7, LSL #16             @ -a[6] -- -a[5]
           ORR           r12, r9, r11, LSL #16            @ -a[8] -- -a[7]
           STR           r10, [r13, #-12]
-          STR           r12, [r13, #-16]          
-           
+          STR           r12, [r13, #-16]
+
           LDRSH         r6, [r0, #18]                    @ load a[9]
           LDRSH         r7, [r0, #20]                    @ load a[10]
           LDRSH         r9, [r0, #22]                    @ load a[11]
           LDRSH         r11,[r0, #24]                    @ load a[12]
           AND           r6, r6, r14
-          AND           r9, r9, r14          
+          AND           r9, r9, r14
           ORR           r10, r6, r7, LSL #16             @ -a[10] -- -a[9]
           ORR           r12, r9, r11, LSL #16            @ -a[12] -- -a[11]
           STR           r10, [r13, #-20]
-          STR           r12, [r13, #-24]    
+          STR           r12, [r13, #-24]
 
           LDRSH         r6, [r0, #26]                    @ load a[13]
           LDRSH         r7, [r0, #28]                    @ load a[14]
           LDRSH         r9, [r0, #30]                    @ load a[15]
           LDRSH         r11,[r0, #32]                    @ load a[16]
           AND           r6, r6, r14
-          AND           r9, r9, r14          
+          AND           r9, r9, r14
           ORR           r10, r6, r7, LSL #16             @ -a[14] -- -a[13]
           ORR           r12, r9, r11, LSL #16            @ -a[16] -- -a[15]
           STR           r10, [r13, #-28]
-          STR           r12, [r13, #-32]                
-                     
+          STR           r12, [r13, #-32]
+
           ADD           r4, r13, #32
 LOOP:
           LDRSH         r6,  [r1], #2                    @ load x[i]
@@ -155,8 +155,8 @@ LOOP:
           SMLABB        r14, r6, r7, r14                 @ -a[3] * (*(temp_p -3))
 
           LDRSH         r9,  [r10, #-10]                 @ *(temp_p - 5)
-   
-          SMLABT        r14, r11, r7, r14                @ -a[4] * (*(temp_p -4))        
+
+          SMLABT        r14, r11, r7, r14                @ -a[4] * (*(temp_p -4))
 
           LDR           r7,  [r13, #-12]                 @ -a[6]  -a[5]
           LDRSH         r12, [r10, #-12]                 @ *(temp_p - 6)
@@ -169,13 +169,13 @@ LOOP:
 
           LDR           r7,  [r13, #-16]                 @ -a[8] -a[7]
           LDRSH         r11, [r10, #-16]                 @ *(temp_p - 8)
-         
+
           SMLABB        r14, r6, r7, r14                 @ -a[7] * (*(temp_p -7))
 
           LDRSH         r9,  [r10, #-18]                 @ *(temp_p - 9)
 
-          SMLABT        r14, r11, r7, r14                @ -a[8] * (*(temp_p -8))          
+          SMLABT        r14, r11, r7, r14                @ -a[8] * (*(temp_p -8))
+
           LDR           r7,  [r13, #-20]                 @ -a[10]  -a[9]
           LDRSH         r12, [r10, #-20]                 @ *(temp_p - 10)
 
@@ -192,11 +192,11 @@ LOOP:
 
           LDRSH         r9,  [r10, #-26]                 @ *(temp_p - 13)
 
-          SMLABT        r14, r11, r7, r14                @ -a[12] * (*(temp_p -12))           
+          SMLABT        r14, r11, r7, r14                @ -a[12] * (*(temp_p -12))
 
           LDR           r7,  [r13, #-28]                 @ -a[14] -a[13]
           LDRSH         r12, [r10, #-28]                 @ *(temp_p - 14)
+
           SMLABB        r14, r9, r7, r14                 @ -a[13] * (*(temp_p -13))
 
           LDRSH         r6,  [r10, #-30]                 @ *(temp_p - 15)
@@ -211,28 +211,28 @@ LOOP:
           SMLABT        r14, r11, r7, r14                @ -a[16] * (*(temp_p -16))
 
           RSB           r14, r14, r0
-                                  
+
           MOV           r7, r14, LSL #4                  @ L_tmp <<=4
           ADD           r8, r8, #1
-          ADD           r14, r7, #0x8000                 
+          ADD           r14, r7, #0x8000
           MOV           r7, r14, ASR #16                 @ (L_tmp + 0x8000) >> 16
           CMP           r8, #80
           STRH          r7, [r10]                        @ yy[i]
           STRH          r7, [r2], #2                     @ y[i]
           BLT           LOOP
+
           @ update mem[]
           ADD           r5, r13, #160                    @ yy[64] address
           MOV           r1, r3
           MOV           r0, r5
           MOV           r2, #16
-          BL            voAWB_Copy          
+          BL            voAWB_Copy
 
 Syn_filt_asm_end:
-          ADD           r13, r13, #700              
-          LDMFD        r13!, {r4 - r12, r15} 
+
+          ADD           r13, r13, #700
+          LDMFD        r13!, {r4 - r12, r15}
           @ENDFUNC
           .END
+
 
index 2afc146..1d5893f 100644 (file)
 
            .section  .text
            .global   Deemph_32_asm
-          
+
 Deemph_32_asm:
 
-           STMFD       r13!, {r4 - r12, r14} 
+           STMFD       r13!, {r4 - r12, r14}
           MOV          r4, #2                   @i=0
           LDRSH        r6, [r0], #2             @load x_hi[0]
           LDRSH        r7, [r1], #2             @load x_lo[0]
@@ -47,9 +47,9 @@ Deemph_32_asm:
           ADD          r12, r10, r7, LSL #4     @L_tmp += x_lo[0] << 4
           MOV          r10, r12, LSL #3         @L_tmp <<= 3
           MUL          r9, r5, r8
-          LDRSH        r6, [r0], #2             @load x_hi[1] 
+          LDRSH        r6, [r0], #2             @load x_hi[1]
           QDADD        r10, r10, r9
-          LDRSH        r7, [r1], #2             @load x_lo[1]  
+          LDRSH        r7, [r1], #2             @load x_lo[1]
           MOV          r12, r10, LSL #1         @L_tmp = L_mac(L_tmp, *mem, fac)
           QADD         r10, r12, r11
           MOV          r14, r10, ASR #16        @y[0] = round(L_tmp)
@@ -94,9 +94,9 @@ LOOP:
 
            BLT          LOOP
            STR          r14, [r3]
-           STRH         r14, [r2]         
+           STRH         r14, [r2]
 
-           LDMFD       r13!, {r4 - r12, r15} 
+           LDMFD       r13!, {r4 - r12, r15}
 
           .END
 
index 678f1d0..8230944 100644 (file)
@@ -45,14 +45,14 @@ Dot_product12_asm:
          VLD1.S16          {Q12, Q13}, [r1]!             @load 16 Word16 y[]
 
           VMULL.S16         Q15, D16, D0
-          VMLAL.S16         Q15, D17, D1               
+          VMLAL.S16         Q15, D17, D1
           VMLAL.S16         Q15, D18, D2
           VMLAL.S16         Q15, D19, D3
-         VLD1.S16          {Q0, Q1}, [r1]!               @load 16 Word16 y[]   
-          VMLAL.S16         Q15, D20, D4       
+         VLD1.S16          {Q0, Q1}, [r1]!               @load 16 Word16 y[]
+          VMLAL.S16         Q15, D20, D4
           VMLAL.S16         Q15, D21, D5
           VMLAL.S16         Q15, D22, D6
-          VMLAL.S16         Q15, D23, D7                                       
+          VMLAL.S16         Q15, D23, D7
           VMLAL.S16         Q15, D24, D8
           VMLAL.S16         Q15, D25, D9
           VMLAL.S16         Q15, D26, D10
@@ -64,9 +64,9 @@ Dot_product12_asm:
 
           CMP               r2, #64
           BEQ               Lable1
-          VLD1.S16          {Q0, Q1}, [r0]!               @load 16 Word16 x[]  
-         VLD1.S16          {Q2, Q3}, [r1]! 
-          VMLAL.S16         Q15, D4, D0             
+          VLD1.S16          {Q0, Q1}, [r0]!               @load 16 Word16 x[]
+         VLD1.S16          {Q2, Q3}, [r1]!
+          VMLAL.S16         Q15, D4, D0
           VMLAL.S16         Q15, D5, D1
           VMLAL.S16         Q15, D6, D2
           VMLAL.S16         Q15, D7, D3
@@ -102,11 +102,11 @@ LOOP_EQ:
          VMLAL.S16         Q15, D2, D2
          VMLAL.S16         Q15, D3, D3
 
-Lable1: 
+Lable1:
 
           VQADD.S32         D30, D30, D31
           VPADD.S32         D30, D30, D30
-          VMOV.S32          r12, D30[0]        
+          VMOV.S32          r12, D30[0]
 
          ADD               r12, r12, r12
           ADD               r12, r12, #1                         @ L_sum = (L_sum << 1)  + 1
@@ -117,11 +117,11 @@ Lable1:
           SUB               r10, r10, #1                         @ sft = norm_l(L_sum)
           MOV               r0, r12, LSL r10                     @ L_sum = L_sum << sft
           RSB               r11, r10, #30                        @ *exp = 30 - sft
-          STRH              r11, [r3]                     
+          STRH              r11, [r3]
 
 Dot_product12_end:
-                    
-          LDMFD            r13!, {r4 - r12, r15} 
+
+          LDMFD            r13!, {r4 - r12, r15}
 
           .END
 
index 5389a1c..14ba828 100644 (file)
@@ -13,7 +13,7 @@
 @ ** See the License for the specific language governing permissions and
 @ ** limitations under the License.
 @ */
-@                             
+@
 @**********************************************************************/
 @void Filt_6k_7k(
 @     Word16 signal[],                      /* input:  signal                  */
@@ -23,7 +23,7 @@
 @***********************************************************************
 @ r0    ---  signal[]
 @ r1    ---  lg
-@ r2    ---  mem[] 
+@ r2    ---  mem[]
 
           .section  .text
           .global   Filt_6k_7k_asm
@@ -31,7 +31,7 @@
 
 Filt_6k_7k_asm:
 
-          STMFD                r13!, {r0 - r12, r14} 
+          STMFD                r13!, {r0 - r12, r14}
           SUB                  r13, r13, #240              @ x[L_SUBFR16k + (L_FIR - 1)]
           MOV                  r8, r0                      @ copy signal[] address
           MOV                  r5, r2                      @ copy mem[] address
@@ -49,7 +49,7 @@ Filt_6k_7k_asm:
 
 
 
-          LDR                  r10, Lable1                 @ get fir_7k address     
+          LDR                  r10, Lable1                 @ get fir_7k address
           MOV                   r3, r8                      @ change myMemCopy to Copy, due to Copy will change r3 content
           ADD                  r6, r13, #60                @ get x[L_FIR - 1] address
           MOV                  r7, r3                      @ get signal[i]
@@ -81,9 +81,9 @@ Filt_6k_7k_asm:
          MOV                   r12, r5
           @STR                 r5, [sp, #-4]               @ PUSH  r5 to stack
           @ not use registers: r4, r10, r12, r14, r5
-          MOV                  r4, r13 
-          MOV                  r5, #0                      @ i = 0    
-         
+          MOV                  r4, r13
+          MOV                  r5, #0                      @ i = 0
+
           @ r4 --- x[i], r10 ---- fir_6k_7k
           VLD1.S16              {Q0, Q1}, [r10]!           @fir_6k_7k[0]  ~ fir_6k_7k[15]
          VLD1.S16              {Q2, Q3}, [r10]!           @fir_6k_7k[16] ~ fir_6k_7k[31]
@@ -91,20 +91,20 @@ Filt_6k_7k_asm:
 
          VLD1.S16              {Q4, Q5}, [r4]!            @x[0]  ~ x[15]
          VLD1.S16              {Q6, Q7}, [r4]!            @x[16] ~ X[31]
-         VLD1.S16              {Q8}, [r4]! 
-          VMOV.S16              Q15, #0          
-          
+         VLD1.S16              {Q8}, [r4]!
+          VMOV.S16              Q15, #0
+
 LOOP_6K7K:
 
-          VMULL.S16             Q9,D8,D0[0]                 
-          VMULL.S16             Q10,D9,D1[0] 
-          VMULL.S16             Q11,D9,D0[0]                 
+          VMULL.S16             Q9,D8,D0[0]
+          VMULL.S16             Q10,D9,D1[0]
+          VMULL.S16             Q11,D9,D0[0]
           VMULL.S16             Q12,D10,D1[0]
           VEXT.8                Q4,Q4,Q5,#2
           VMLAL.S16             Q9,D10,D2[0]
           VMLAL.S16             Q10,D11,D3[0]
           VMLAL.S16             Q11,D11,D2[0]
-          VMLAL.S16             Q12,D12,D3[0]    
+          VMLAL.S16             Q12,D12,D3[0]
           VEXT.8                Q5,Q5,Q6,#2
           VMLAL.S16             Q9,D12,D4[0]
           VMLAL.S16             Q10,D13,D5[0]
@@ -115,18 +115,18 @@ LOOP_6K7K:
           VMLAL.S16             Q10,D15,D7[0]
           VMLAL.S16             Q11,D15,D6[0]
          VMLAL.S16             Q12,D16,D7[0]
-         VEXT.8                Q7,Q7,Q8,#2 
+         VEXT.8                Q7,Q7,Q8,#2
 
-         VMLAL.S16             Q9,D8,D0[1]                
+         VMLAL.S16             Q9,D8,D0[1]
          VMLAL.S16             Q10,D9,D1[1]
-         VEXT.8                Q8,Q8,Q15,#2 
-         VMLAL.S16             Q11,D9,D0[1]                
+         VEXT.8                Q8,Q8,Q15,#2
+         VMLAL.S16             Q11,D9,D0[1]
          VMLAL.S16             Q12,D10,D1[1]
          VEXT.8                Q4,Q4,Q5,#2
          VMLAL.S16             Q9,D10,D2[1]
          VMLAL.S16             Q10,D11,D3[1]
          VMLAL.S16             Q11,D11,D2[1]
-         VMLAL.S16             Q12,D12,D3[1]    
+         VMLAL.S16             Q12,D12,D3[1]
          VEXT.8                Q5,Q5,Q6,#2
          VMLAL.S16             Q9,D12,D4[1]
          VMLAL.S16             Q10,D13,D5[1]
@@ -137,18 +137,18 @@ LOOP_6K7K:
          VMLAL.S16             Q10,D15,D7[1]
          VMLAL.S16             Q11,D15,D6[1]
          VMLAL.S16             Q12,D16,D7[1]
-         VEXT.8                Q7,Q7,Q8,#2 
+         VEXT.8                Q7,Q7,Q8,#2
 
-         VMLAL.S16             Q9,D8,D0[2]           
+         VMLAL.S16             Q9,D8,D0[2]
          VMLAL.S16             Q10,D9,D1[2]
-         VEXT.8                Q8,Q8,Q15,#2 
-         VMLAL.S16             Q11,D9,D0[2]           
+         VEXT.8                Q8,Q8,Q15,#2
+         VMLAL.S16             Q11,D9,D0[2]
          VMLAL.S16             Q12,D10,D1[2]
          VEXT.8                Q4,Q4,Q5,#2
          VMLAL.S16             Q9,D10,D2[2]
          VMLAL.S16             Q10,D11,D3[2]
          VMLAL.S16             Q11,D11,D2[2]
-         VMLAL.S16             Q12,D12,D3[2]    
+         VMLAL.S16             Q12,D12,D3[2]
          VEXT.8                Q5,Q5,Q6,#2
          VMLAL.S16             Q9,D12,D4[2]
          VMLAL.S16             Q10,D13,D5[2]
@@ -159,18 +159,18 @@ LOOP_6K7K:
          VMLAL.S16             Q10,D15,D7[2]
          VMLAL.S16             Q11,D15,D6[2]
          VMLAL.S16             Q12,D16,D7[2]
-         VEXT.8                Q7,Q7,Q8,#2 
+         VEXT.8                Q7,Q7,Q8,#2
 
-         VMLAL.S16             Q9,D8,D0[3]              
+         VMLAL.S16             Q9,D8,D0[3]
          VMLAL.S16             Q10,D9,D1[3]
-         VEXT.8                Q8,Q8,Q15,#2 
-         VMLAL.S16             Q11,D9,D0[3]              
+         VEXT.8                Q8,Q8,Q15,#2
+         VMLAL.S16             Q11,D9,D0[3]
          VMLAL.S16             Q12,D10,D1[3]
          VEXT.8                Q4,Q4,Q5,#2
          VMLAL.S16             Q9,D10,D2[3]
          VMLAL.S16             Q10,D11,D3[3]
          VMLAL.S16             Q11,D11,D2[3]
-         VMLAL.S16             Q12,D12,D3[3]    
+         VMLAL.S16             Q12,D12,D3[3]
          VEXT.8                Q5,Q5,Q6,#2
          VMLAL.S16             Q9,D12,D4[3]
          VMLAL.S16             Q10,D13,D5[3]
@@ -181,10 +181,10 @@ LOOP_6K7K:
          VMLAL.S16             Q10,D15,D7[3]
          VMLAL.S16             Q11,D15,D6[3]
          VMLAL.S16             Q12,D16,D7[3]
-         VEXT.8                Q7,Q7,Q8,#2     
+         VEXT.8                Q7,Q7,Q8,#2
 
          VMOV.S16              D8,D9
-         VEXT.8                Q8,Q8,Q15,#2 
+         VEXT.8                Q8,Q8,Q15,#2
          VMOV.S16              D9,D10
          VADD.S32              Q9,Q9,Q10
          VMOV.S16              D10,D11
@@ -214,12 +214,12 @@ LOOP_6K7K:
          VST1.S16              {D4, D5, D6}, [r1]!
          VST1.S16              D7[0], [r1]!
          VST1.S16              D7[1], [r1]!
-                    
+
 Filt_6k_7k_end:
 
-          ADD                  r13, r13, #240  
-          LDMFD                r13!, {r0 - r12, r15} 
+          ADD                  r13, r13, #240
+          LDMFD                r13!, {r0 - r12, r15}
+
 Lable1:
           .word                fir_6k_7k
           @ENDFUNC
index 60e9ade..4263cd4 100644 (file)
@@ -33,7 +33,7 @@
 
 
        .section  .text
-        .global    Norm_corr_asm 
+        .global    Norm_corr_asm
         .extern    Convolve_asm
         .extern    Isqrt_n
 @******************************
 .equ    T_MIN             , 212
 .equ    T_MAX             , 216
 .equ    CORR_NORM         , 220
-                  
+
 Norm_corr_asm:
 
-        STMFD          r13!, {r4 - r12, r14}  
+        STMFD          r13!, {r4 - r12, r14}
         SUB            r13, r13, #voSTACK
-  
+
         ADD            r8, r13, #20                 @get the excf[L_SUBFR]
         LDR            r4, [r13, #T_MIN]            @get t_min
         RSB            r11, r4, #0                  @k = -t_min
-        ADD            r5, r0, r11, LSL #1          @get the &exc[k]   
-        
+        ADD            r5, r0, r11, LSL #1          @get the &exc[k]
+
         @transfer Convolve function
         STMFD          sp!, {r0 - r3}
         MOV            r0, r5
@@ -68,7 +68,7 @@ Norm_corr_asm:
 
         @ r8 --- excf[]
 
-       MOV            r14, r1                       @copy xn[] address                      
+       MOV            r14, r1                       @copy xn[] address
         MOV            r7, #1
        VLD1.S16       {Q0, Q1}, [r14]!
        VLD1.S16       {Q2, Q3}, [r14]!
@@ -95,34 +95,34 @@ Norm_corr_asm:
         VQADD.S32      D20, D20, D21
         VMOV.S32       r9,  D20[0]
         VMOV.S32       r10, D20[1]
-        QADD           r6, r9, r10 
+        QADD           r6, r9, r10
        QADD           r6, r6, r6
         QADD           r9, r6, r7                   @L_tmp = (L_tmp << 1) + 1;
        CLZ            r7, r9
        SUB            r6, r7, #1                   @exp = norm_l(L_tmp)
         RSB            r7, r6, #32                  @exp = 32 - exp
-       MOV            r6, r7, ASR #1         
+       MOV            r6, r7, ASR #1
        RSB            r7, r6, #0                   @scale = -(exp >> 1)
-       
+
         @loop for every possible period
        @for(t = t_min@ t <= t_max@ t++)
        @r7 --- scale r4 --- t_min r8 --- excf[]
 
-LOOPFOR:       
+LOOPFOR:
        ADD            r14, r13, #20                @copy of excf[]
        MOV            r12, r1                      @copy of xn[]
        MOV            r8, #0x8000
 
         VLD1.S16       {Q0, Q1}, [r14]!                 @ load 16 excf[]
-        VLD1.S16       {Q2, Q3}, [r14]!                 @ load 16 excf[]       
+        VLD1.S16       {Q2, Q3}, [r14]!                 @ load 16 excf[]
         VLD1.S16       {Q4, Q5}, [r12]!                 @ load 16 x[]
        VLD1.S16       {Q6, Q7}, [r12]!                 @ load 16 x[]
         VMULL.S16    Q10, D0, D0                      @L_tmp1 += excf[] * excf[]
-        VMULL.S16    Q11, D0, D8                      @L_tmp  += x[] * excf[]                   
+        VMULL.S16    Q11, D0, D8                      @L_tmp  += x[] * excf[]
         VMLAL.S16    Q10, D1, D1
         VMLAL.S16    Q11, D1, D9
         VMLAL.S16    Q10, D2, D2
-        VMLAL.S16    Q11, D2, D10        
+        VMLAL.S16    Q11, D2, D10
         VMLAL.S16    Q10, D3, D3
         VMLAL.S16    Q11, D3, D11
         VMLAL.S16    Q10, D4, D4
@@ -143,7 +143,7 @@ LOOPFOR:
         VMLAL.S16    Q10, D1, D1
         VMLAL.S16    Q11, D1, D9
         VMLAL.S16    Q10, D2, D2
-        VMLAL.S16    Q11, D2, D10        
+        VMLAL.S16    Q11, D2, D10
         VMLAL.S16    Q10, D3, D3
         VMLAL.S16    Q11, D3, D11
         VMLAL.S16    Q10, D4, D4
@@ -162,19 +162,19 @@ LOOPFOR:
        VPADD.S32      D22, D22, D22                   @D22[0] --- L_tmp << 1
 
        VMOV.S32       r6, D20[0]
-        VMOV.S32       r5, D22[0]      
+        VMOV.S32       r5, D22[0]
 
        @r5 --- L_tmp, r6 --- L_tmp1
        MOV            r10, #1
        ADD            r5, r10, r5, LSL #1                     @L_tmp = (L_tmp << 1) + 1
        ADD            r6, r10, r6, LSL #1                     @L_tmp1 = (L_tmp1 << 1) + 1
-       CLZ            r10, r5        
+
+       CLZ            r10, r5
        CMP            r5, #0
        RSBLT          r11, r5, #0
        CLZLT          r10, r11
        SUB            r10, r10, #1                 @exp = norm_l(L_tmp)
-     
+
        MOV            r5, r5, LSL r10              @L_tmp = (L_tmp << exp)
        RSB            r10, r10, #30                @exp_corr = 30 - exp
        MOV            r11, r5, ASR #16             @corr = extract_h(L_tmp)
@@ -190,7 +190,7 @@ LOOPFOR:
        @Isqrt_n(&L_tmp, &exp_norm)
 
        MOV            r14, r0
-       MOV            r12, r1 
+       MOV            r12, r1
 
         STMFD          sp!, {r0 - r4, r7 - r12, r14}
        ADD            r1, sp, #4
@@ -208,7 +208,7 @@ LOOPFOR:
        MOV            r6, r6, ASR #16              @norm = extract_h(L_tmp)
        MUL            r12, r6, r11
        ADD            r12, r12, r12                @L_tmp = vo_L_mult(corr, norm)
-  
+
        ADD            r6, r10, r5
        ADD            r6, r6, r7                   @exp_corr + exp_norm + scale
 
@@ -227,8 +227,8 @@ LOOPFOR:
 
        CMP            r4, r6
        BEQ            Norm_corr_asm_end
-       ADD            r4, r4, #1                   @ t_min ++ 
+
+       ADD            r4, r4, #1                   @ t_min ++
        RSB            r5, r4, #0                   @ k
 
        MOV            r6, #63                      @ i = 63
@@ -255,16 +255,16 @@ LOOPK:
        MUL            r14, r11, r8
         LDR            r6, [r13, #T_MAX]            @ get t_max
        MOV            r8, r14, ASR #15
-       STRH           r8, [r10]                    
+       STRH           r8, [r10]
 
        CMP            r4, r6
        BLE            LOOPFOR
 
-Norm_corr_asm_end: 
-        
-        ADD            r13, r13, #voSTACK      
+Norm_corr_asm_end:
+
+        ADD            r13, r13, #voSTACK
         LDMFD          r13!, {r4 - r12, r15}
-    
+
         .END
 
 
index 1e65efa..e786dde 100644 (file)
 @ sig_lo[] --- r5
 @ lg       --- r6
 
-          .section  .text 
+          .section  .text
           .global   Syn_filt_32_asm
 
 Syn_filt_32_asm:
 
-          STMFD        r13!, {r4 - r12, r14} 
+          STMFD        r13!, {r4 - r12, r14}
           LDR           r4,  [r13, #40]                  @ get sig_hi[] address
           LDR           r5,  [r13, #44]                  @ get sig_lo[] address
 
@@ -49,8 +49,8 @@ Syn_filt_32_asm:
          SUB           r10, r4, #32                     @ sig_hi[-16] address
          SUB           r11, r5, #32                     @ sig_lo[-16] address
 
-         VLD1.S16      {D0, D1, D2, D3}, [r0]!          @a[1] ~ a[16] 
-  
+         VLD1.S16      {D0, D1, D2, D3}, [r0]!          @a[1] ~ a[16]
+
           MOV           r8, #0                           @ i = 0
 
          VLD1.S16      {D4, D5, D6, D7}, [r10]!         @ sig_hi[-16] ~ sig_hi[-1]
@@ -58,9 +58,9 @@ Syn_filt_32_asm:
           VREV64.16     D1, D1
          VLD1.S16      {D8, D9, D10, D11}, [r11]!       @ sig_lo[-16] ~ sig_lo[-1]
           VREV64.16     D2, D2
-          VREV64.16     D3, D3 
+          VREV64.16     D3, D3
           VDUP.S32      Q15, r8
-              
+
 SYN_LOOP:
 
           LDRSH         r6, [r2], #2                     @exc[i]
@@ -73,12 +73,12 @@ SYN_LOOP:
 
          VEXT.8        D9, D9, D10, #2
          VEXT.8        D10, D10, D11, #2
-         
+
          VPADD.S32     D28, D20, D21
           MUL           r12, r6, r3                      @exc[i] * a0
          VPADD.S32     D29, D28, D28
          VDUP.S32      Q10, D29[0]                      @result1
-          
+
          VMULL.S16     Q11, D4, D3
          VMLAL.S16     Q11, D5, D2
           VSUB.S32      Q10, Q15, Q10
@@ -101,7 +101,7 @@ SYN_LOOP:
 
          VSHR.S32      Q10, Q10, #11                    @result1 >>= 11
          VSHL.S32      Q11, Q11, #1                     @result2 <<= 1
-         VDUP.S32      Q12, r14                         
+         VDUP.S32      Q12, r14
          VADD.S32      Q12, Q12, Q10                    @L_tmp = L_tmp - (result1 >>= 11) - (result2 <<= 1)
          VSUB.S32      Q12, Q12, Q11
 
@@ -122,12 +122,12 @@ SYN_LOOP:
          STRH          r12, [r5], #2                    @stroe sig_lo[i]
 
           CMP           r8, #64
-          BLT           SYN_LOOP                          
-         
+          BLT           SYN_LOOP
+
 Syn_filt_32_end:
-                    
-          LDMFD            r13!, {r4 - r12, r15} 
+
+          LDMFD            r13!, {r4 - r12, r15}
           @ENDFUNC
           .END
+
 
index 189e33b..8efa9fb 100644 (file)
 @*    Word16 y[],        /* (o)     : output vector                          */
 @*    Word16 L           /* (i)     : vector size                            */
 @*)
-@ 
+@
 @ r0 --- x[]
 @ r1 --- h[]
 @ r2 --- y[]
 @ r3 --- L
 
-       .section  .text 
-        .global   Convolve_asm 
+       .section  .text
+        .global   Convolve_asm
 
 Convolve_asm:
 
-        STMFD          r13!, {r4 - r12, r14}  
-        MOV            r3,  #0                        
+        STMFD          r13!, {r4 - r12, r14}
+        MOV            r3,  #0
        MOV            r11, #0x8000
-        
-LOOP: 
+
+LOOP:
         @MOV            r8, #0                            @ s = 0
         ADD            r4, r1, r3, LSL #1                @ tmpH address
         ADD            r5, r3, #1                        @ i = n + 1
@@ -43,21 +43,21 @@ LOOP:
         LDRSH          r9,  [r6], #2                     @ *tmpX++
         LDRSH          r10, [r4]                         @ *tmpH--
         SUB            r5, r5, #1
-        VMOV.S32       Q10, #0 
-        MUL            r8,  r9, r10 
+        VMOV.S32       Q10, #0
+        MUL            r8,  r9, r10
 
-LOOP1:                    
+LOOP1:
         CMP            r5, #0
         BLE            L1
         SUB            r4, r4, #8
         MOV            r9, r4
-        VLD1.S16       D0, [r6]!   
+        VLD1.S16       D0, [r6]!
         VLD1.S16       D1, [r9]!
         VREV64.16      D1, D1
-        SUBS           r5, r5, #4  
-        VMLAL.S16      Q10, D0, D1         
-        B              LOOP1    
-L1:                  
+        SUBS           r5, r5, #4
+        VMLAL.S16      Q10, D0, D1
+        B              LOOP1
+L1:
         VADD.S32       D20, D20, D21
         VPADD.S32      D20, D20, D20
         VMOV.S32       r5, D20[0]
@@ -73,25 +73,25 @@ L1:
         ADD            r5, r3, #1
         MOV            r6, r0
         LDRSH          r9,  [r6], #2                     @ *tmpX++
-        LDRSH          r10, [r4], #-2                     
+        LDRSH          r10, [r4], #-2
         LDRSH          r12, [r6], #2
         LDRSH          r14, [r4]
 
         MUL            r8, r9, r10
         SUB            r5, r5, #2
         MLA            r8, r12, r14, r8
-        
+
         VMOV.S32       Q10, #0
 LOOP2:
         CMP            r5, #0
         BLE            L2
         SUB            r4, r4, #8
         MOV            r9, r4
-        VLD1.S16       D0, [r6]!   
+        VLD1.S16       D0, [r6]!
         VLD1.S16       D1, [r9]!
         SUBS           r5, r5, #4
         VREV64.16      D1, D1
-        VMLAL.S16      Q10, D0, D1 
+        VMLAL.S16      Q10, D0, D1
         B              LOOP2
 L2:
         VADD.S32       D20, D20, D21
@@ -100,7 +100,7 @@ L2:
         ADD            r8, r8, r5
         ADD            r8, r11, r8, LSL #1
         MOV            r8, r8, LSR #16                   @extract_h(s)
-        ADD            r3, r3, #1  
+        ADD            r3, r3, #1
         STRH           r8, [r2], #2                      @y[n]
 
 
@@ -115,7 +115,7 @@ L2:
         MUL            r8, r9, r10
         LDRSH          r9,  [r6], #2
         LDRSH          r10, [r4]
-        MLA            r8, r12, r14, r8 
+        MLA            r8, r12, r14, r8
         SUB            r5, r5, #3
         MLA            r8, r9, r10, r8
 
@@ -125,12 +125,12 @@ LOOP3:
         BLE            L3
         SUB            r4, r4, #8
         MOV            r9, r4
-        VLD1.S16       D0, [r6]!   
+        VLD1.S16       D0, [r6]!
         VLD1.S16       D1, [r9]!
         VREV64.16      D1, D1
         SUBS           r5, r5, #4
-        VMLAL.S16      Q10, D0, D1 
-        B              LOOP3   
+        VMLAL.S16      Q10, D0, D1
+        B              LOOP3
 
 L3:
         VADD.S32       D20, D20, D21
@@ -146,18 +146,18 @@ L3:
         ADD            r4, r1, r5, LSL #1                @ tmpH address
         MOV            r6, r0
         VMOV.S32       Q10, #0
-LOOP4:                    
+LOOP4:
         CMP            r5, #0
         BLE            L4
         SUB            r4, r4, #8
         MOV            r9, r4
-        VLD1.S16       D0, [r6]!   
+        VLD1.S16       D0, [r6]!
         VLD1.S16       D1, [r9]!
         VREV64.16      D1, D1
-        SUBS           r5, r5, #4  
-        VMLAL.S16      Q10, D0, D1         
-        B              LOOP4    
-L4:                  
+        SUBS           r5, r5, #4
+        VMLAL.S16      Q10, D0, D1
+        B              LOOP4
+L4:
         VADD.S32       D20, D20, D21
         VPADD.S32      D20, D20, D20
         VMOV.S32       r5,  D20[0]
@@ -165,14 +165,14 @@ L4:
         MOV            r5, r5, LSR #16                   @extract_h(s)
         ADD            r3, r3, #1
         STRH           r5, [r2], #2                      @y[n]
-        
+
         CMP            r3, #64
         BLT            LOOP
-                
-Convolve_asm_end: 
+
+Convolve_asm_end:
+
         LDMFD      r13!, {r4 - r12, r15}
-    
+
         @ENDFUNC
         .END
 
index c314a88..8904289 100644 (file)
@@ -31,7 +31,7 @@
 @r5 ---- cor_1[]
 @r6 ---- cor_2[]
 
-              .section .text 
+              .section .text
              .global  cor_h_vec_012_asm
 
 cor_h_vec_012_asm:
@@ -52,12 +52,12 @@ LOOPi:
             RSB           r11, r2, #62                      @j=62-pos
 
 LOOPj1:
-            LDRSH         r12, [r10], #2  
+            LDRSH         r12, [r10], #2
             LDRSH         r8,  [r9], #2
             LDRSH         r14, [r9]
             SUBS          r11, r11, #1
              MLA           r5, r12, r8, r5
-             MLA           r6, r12, r14, r6     
+             MLA           r6, r12, r14, r6
             BGE           LOOPj1
 
             LDRSH         r12, [r10], #2                     @*p1++
@@ -65,7 +65,7 @@ LOOPj1:
              MLA           r5, r12, r14, r5
              MOV           r14, #0x8000
              MOV           r5, r5, LSL #2                     @L_sum1 = (L_sum1 << 2)
-             ADD           r10, r6, r14         
+             ADD           r10, r6, r14
              ADD           r9, r5, r14
              MOV           r5, r9, ASR #16
              MOV           r6, r10, ASR #16
@@ -77,7 +77,7 @@ LOOPj1:
             MUL           r14, r6, r11
             MOV           r5, r12, ASR #15
             MOV           r6, r14, ASR #15
-            LDR           r9,  [r13, #44]                   
+            LDR           r9,  [r13, #44]
             LDR           r12, [r13, #48]
              LDRSH         r10, [r7], #2                      @*p0++
             LDRSH         r11, [r8]                          @*p3++
@@ -89,7 +89,7 @@ LOOPj1:
             STRH          r6, [r12]
 
              ADD           r2, r2, #4
+
              MOV           r5, #0                            @L_sum1 = 0
             MOV           r6, #0                            @L_sum2 = 0
             ADD           r9, r1, r2, LSL #1                @p2 = &vec[pos]
@@ -98,12 +98,12 @@ LOOPj1:
             ADD           r4, r4, #1                        @i++
 
 LOOPj2:
-            LDRSH         r12, [r10], #2  
+            LDRSH         r12, [r10], #2
             LDRSH         r8,  [r9], #2
             LDRSH         r14, [r9]
             SUBS          r11, r11, #1
              MLA           r5, r12, r8, r5
-             MLA           r6, r12, r14, r6     
+             MLA           r6, r12, r14, r6
             BGE           LOOPj2
 
             LDRSH         r12, [r10], #2                     @*p1++
@@ -111,7 +111,7 @@ LOOPj2:
              MLA           r5, r12, r14, r5
              MOV           r14, #0x8000
              MOV           r5, r5, LSL #2                     @L_sum1 = (L_sum1 << 2)
-             ADD           r10, r6, r14        
+             ADD           r10, r6, r14
              ADD           r9, r5, r14
 
              MOV           r5, r9, ASR #16
@@ -124,7 +124,7 @@ LOOPj2:
             MUL           r14, r6, r11
             MOV           r5, r12, ASR #15
             MOV           r6, r14, ASR #15
-            LDR           r9,  [r13, #44]                   
+            LDR           r9,  [r13, #44]
             LDR           r12, [r13, #48]
              LDRSH         r10, [r7], #2                      @*p0++
             LDRSH         r11, [r8]                          @*p3++
@@ -137,15 +137,15 @@ LOOPj2:
             ADD           r4, r4, #1                         @i+1
             ADD           r2, r2, #4                         @pos += STEP
             CMP           r4, #16
-            
+
             BLT           LOOPi
-         
+
 the_end:
              LDMFD         r13!, {r4 - r12, r15}
-             
-            .END        
-        
-       
-         
+
+            .END
+
+
+
 
 
index dffb750..6b782cb 100644 (file)
 @ r1    ---  T0
 @ r2    ---  frac
 @ r3    ---  L_subfr
-          .section  .text 
+
+          .section  .text
           .global   pred_lt4_asm
           .extern   inter4_2
 
 pred_lt4_asm:
 
-          STMFD        r13!, {r4 - r12, r14} 
+          STMFD        r13!, {r4 - r12, r14}
           SUB           r4, r0, r1, LSL #1                        @ x = exc - T0
           RSB           r2, r2, #0                                @ frac = - frac
           SUB           r4, r4, #30                               @ x -= L_INTERPOL2 - 1
@@ -47,8 +47,8 @@ pred_lt4_asm:
 
          VLD1.S16      {Q0, Q1}, [r11]!
          VLD1.S16      {Q2, Q3}, [r11]!
-          
-         MOV           r6, #0x8000 
+
+         MOV           r6, #0x8000
 
           VLD1.S16      {Q4, Q5}, [r4]!                           @load 16 x[]
           VLD1.S16      {Q6, Q7}, [r4]!                           @load 16 x[]
@@ -58,14 +58,14 @@ LOOP:
           VQDMLAL.S16   Q15, D9, D1
           VQDMLAL.S16   Q15, D10, D2
           VQDMLAL.S16   Q15, D11, D3
-        
+
           VQDMLAL.S16   Q15, D12, D4
           VQDMLAL.S16   Q15, D13, D5
           VQDMLAL.S16   Q15, D14, D6
           VQDMLAL.S16   Q15, D15, D7
 
-          LDRSH         r12, [r4], #2                
-          
+          LDRSH         r12, [r4], #2
+
           VEXT.S16      D8, D8, D9, #1
           VEXT.S16      D9, D9, D10, #1
           VEXT.S16      D10, D10, D11, #1
@@ -73,26 +73,26 @@ LOOP:
           VDUP.S16      D24, r12
           VEXT.S16      D12, D12, D13, #1
           VEXT.S16      D13, D13, D14, #1
-     
+
           VQADD.S32     D30, D30, D31
-         MOV           r11, #0x8000          
+         MOV           r11, #0x8000
           VPADD.S32     D30, D30, D30
           ADD           r8, r8, #1
           VMOV.S32      r12, D30[0]
-          VEXT.S16      D14, D14, D15, #1          
+          VEXT.S16      D14, D14, D15, #1
 
           QADD          r1, r12, r12                              @ L_sum = (L_sum << 2)
           VEXT.S16      D15, D15, D24, #1
-          QADD          r5, r1, r6                         
+          QADD          r5, r1, r6
           MOV           r1, r5, ASR #16
           CMP           r8, r3
           STRH          r1, [r0], #2                              @ exc[j] = (L_sum + 0x8000) >> 16
           BLT           LOOP
-                    
+
 pred_lt4_end:
-                    
-          LDMFD        r13!, {r4 - r12, r15} 
+
+          LDMFD        r13!, {r4 - r12, r15}
+
 Lable1:
           .word        inter4_2
           @ENDFUNC
index b9e6b23..394fa83 100644 (file)
 @lg         RN     r3
 
        .section   .text
-        .global    Residu_opt 
+        .global    Residu_opt
 
 Residu_opt:
 
-        STMFD          r13!, {r4 - r12, r14} 
+        STMFD          r13!, {r4 - r12, r14}
         SUB            r7, r3, #4                       @i = lg - 4
-        
-        VLD1.S16       {D0, D1, D2, D3}, [r0]!              @get all a[]  
+
+        VLD1.S16       {D0, D1, D2, D3}, [r0]!              @get all a[]
        VLD1.S16       {D4}, [r0]!
         VMOV.S32       Q8,  #0x8000
-        
+
 LOOP1:
         ADD            r9, r1, r7, LSL #1               @copy the address
         ADD            r10, r2, r7, LSL #1
@@ -45,7 +45,7 @@ LOOP1:
         VQDMULL.S16    Q10, D5, D0[0]                  @finish the first L_mult
 
         SUB            r8, r9, #2                       @get the x[i-1] address
-        VLD1.S16       D5, [r8]! 
+        VLD1.S16       D5, [r8]!
         VQDMLAL.S16    Q10, D5, D0[1]
 
         SUB            r8, r9, #4                       @load the x[i-2] address
@@ -53,36 +53,36 @@ LOOP1:
         VQDMLAL.S16    Q10, D5, D0[2]
 
         SUB            r8, r9, #6                       @load the x[i-3] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D0[3]                    
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D0[3]
 
         SUB            r8, r9, #8                       @load the x[i-4] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D1[0]  
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D1[0]
 
         SUB            r8, r9, #10                      @load the x[i-5] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D1[1] 
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D1[1]
 
         SUB            r8, r9, #12                      @load the x[i-6] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D1[2]  
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D1[2]
 
         SUB            r8, r9, #14                      @load the x[i-7] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D1[3]  
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D1[3]
 
         SUB            r8, r9, #16                      @load the x[i-8] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D2[0]  
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D2[0]
 
         SUB            r8, r9, #18                      @load the x[i-9] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D2[1]         
-           
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D2[1]
+
         SUB            r8, r9, #20                      @load the x[i-10] address
-        VLD1.S16       D5, [r8]!     
-        VQDMLAL.S16    Q10, D5, D2[2]  
+        VLD1.S16       D5, [r8]!
+        VQDMLAL.S16    Q10, D5, D2[2]
 
        SUB            r8, r9, #22                      @load the x[i-11] address
        VLD1.S16       D5, [r8]!
@@ -117,10 +117,10 @@ LOOP1:
 
         BGE            LOOP1
 
-Residu_asm_end: 
+Residu_asm_end:
+
         LDMFD      r13!, {r4 - r12, r15}
-    
+
         @ENDFUNC
         .END
 
index bbd354d..e45daac 100644 (file)
@@ -13,7 +13,7 @@
 @ ** See the License for the specific language governing permissions and
 @ ** limitations under the License.
 @ */
-@                   
+@
 @**********************************************************************/
 @void Scale_sig(
 @               Word16 x[],                           /* (i/o) : signal to scale               */
 @  lg    ---  r1
 @  exp   ---  r2
 
-          .section  .text 
+          .section  .text
           .global   Scale_sig_opt
 
 Scale_sig_opt:
 
-          STMFD        r13!, {r4 - r12, r14} 
+          STMFD        r13!, {r4 - r12, r14}
           MOV           r4, #4
-          VMOV.S32      Q15, #0x8000       
-          VDUP.S32      Q14, r2  
-          MOV           r5, r0                          @ copy x[] address    
+          VMOV.S32      Q15, #0x8000
+          VDUP.S32      Q14, r2
+          MOV           r5, r0                          @ copy x[] address
           CMP           r1, #64
           MOVEQ         r4, #1
           BEQ           LOOP
@@ -48,7 +48,7 @@ Scale_sig_opt:
          BEQ           LOOP1
 
 LOOP1:
-          VLD1.S16      {Q0, Q1}, [r5]!                 @load 16 Word16 x[]     
+          VLD1.S16      {Q0, Q1}, [r5]!                 @load 16 Word16 x[]
           VSHLL.S16     Q10, D0, #16
           VSHLL.S16     Q11, D1, #16
           VSHLL.S16     Q12, D2, #16
@@ -63,7 +63,7 @@ LOOP1:
           VADDHN.S32    D19, Q13, Q15
           VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]
 
-LOOP:                
+LOOP:
           VLD1.S16      {Q0, Q1}, [r5]!                 @load 16 Word16 x[]
           VLD1.S16      {Q2, Q3}, [r5]!                 @load 16 Word16 x[]
           VLD1.S16      {Q4, Q5}, [r5]!                 @load 16 Word16 x[]
@@ -72,7 +72,7 @@ LOOP:
           VSHLL.S16     Q8, D0, #16
           VSHLL.S16     Q9, D1, #16
           VSHLL.S16     Q10, D2, #16
-          VSHLL.S16     Q11, D3, #16     
+          VSHLL.S16     Q11, D3, #16
           VSHL.S32      Q8, Q8, Q14
           VSHL.S32      Q9, Q9, Q14
           VSHL.S32      Q10, Q10, Q14
@@ -83,7 +83,7 @@ LOOP:
           VADDHN.S32    D19, Q11, Q15
           VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]
 
-   
+
           VSHLL.S16     Q12, D4, #16
           VSHLL.S16     Q13, D5, #16
           VSHLL.S16     Q10, D6, #16
@@ -112,7 +112,7 @@ LOOP:
           VADDHN.S32    D19, Q13, Q15
           VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]
 
-          VSHLL.S16     Q10, D12, #16   
+          VSHLL.S16     Q10, D12, #16
           VSHLL.S16     Q11, D13, #16
           VSHLL.S16     Q12, D14, #16
           VSHLL.S16     Q13, D15, #16
@@ -123,16 +123,16 @@ LOOP:
           VADDHN.S32    D16, Q10, Q15
           VADDHN.S32    D17, Q11, Q15
           VADDHN.S32    D18, Q12, Q15
-          VADDHN.S32    D19, Q13, Q15 
-          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]  
+          VADDHN.S32    D19, Q13, Q15
+          VST1.S16      {Q8, Q9}, [r0]!                 @store 16 Word16 x[]
           SUBS          r4, r4, #1
-          BGT           LOOP     
-                
-                          
+          BGT           LOOP
+
+
 Scale_sig_asm_end:
 
-          LDMFD        r13!, {r4 - r12, r15} 
+          LDMFD        r13!, {r4 - r12, r15}
           @ENDFUNC
           .END
+
 
index db4559c..5731bdb 100644 (file)
 @ mem[]  ---   r3
 @ m ---  16  lg --- 80  update --- 1
 
-          .section  .text 
+          .section  .text
           .global   Syn_filt_asm
 
 Syn_filt_asm:
 
-          STMFD        r13!, {r4 - r12, r14} 
+          STMFD        r13!, {r4 - r12, r14}
           SUB           r13, r13, #700                   @ y_buf[L_FRAME16k + M16k]
-   
+
           MOV           r4, r3                           @ copy mem[] address
           MOV           r5, r13                          @ copy yy = y_buf address
 
           @ for(i = 0@ i < m@ i++)
           @{
           @    *yy++ = mem[i]@
-          @} 
+          @}
           VLD1.S16      {D0, D1, D2, D3}, [r4]!          @load 16 mems
          VST1.S16      {D0, D1, D2, D3}, [r5]!          @store 16 mem[] to *yy
 
@@ -54,7 +54,7 @@ Syn_filt_asm:
          VREV64.16     D0, D0
          VREV64.16     D1, D1
          VREV64.16     D2, D2
-         VREV64.16     D3, D3 
+         VREV64.16     D3, D3
          MOV           r8, #0                           @ loop times
          MOV           r10, r13                         @ temp = y_buf
          ADD           r4, r13, #32                     @ yy[i] address
@@ -68,7 +68,7 @@ SYN_LOOP:
          ADD           r10, r4, r8, LSL #1              @ y[i], yy[i] address
 
          VDUP.S32      Q10, r12
-         VMULL.S16     Q5, D3, D4                    
+         VMULL.S16     Q5, D3, D4
           VMLAL.S16     Q5, D2, D5
           VMLAL.S16     Q5, D1, D6
           VMLAL.S16     Q5, D0, D7
@@ -82,25 +82,25 @@ SYN_LOOP:
          VDUP.S32      Q7, D10[0]
 
          VSUB.S32      Q9, Q10, Q7
-          VQRSHRN.S32   D20, Q9, #12   
+          VQRSHRN.S32   D20, Q9, #12
           VMOV.S16      r9, D20[0]
           VEXT.8        D7, D7, D20, #2
           CMP           r8, #80
           STRH          r9, [r10]                        @ yy[i]
-          STRH          r9, [r2], #2                     @ y[i]                         
-         
+          STRH          r9, [r2], #2                     @ y[i]
+
           BLT           SYN_LOOP
+
           @ update mem[]
           ADD           r5, r13, #160                    @ yy[64] address
          VLD1.S16      {D0, D1, D2, D3}, [r5]!
-         VST1.S16      {D0, D1, D2, D3}, [r3]!              
+         VST1.S16      {D0, D1, D2, D3}, [r3]!
 
 Syn_filt_asm_end:
-          ADD           r13, r13, #700              
-          LDMFD        r13!, {r4 - r12, r15} 
+
+          ADD           r13, r13, #700
+          LDMFD        r13!, {r4 - r12, r15}
           @ENDFUNC
           .END
+
 
index 9baa937..8c477ca 100644 (file)
@@ -70,19 +70,19 @@ void Autocorr(
                p1 = y;
                for (i = 0; i < L_WINDOW; i+=4)
                {
-                       *p1 = vo_shr_r(*p1, shift); 
+                       *p1 = vo_shr_r(*p1, shift);
                        p1++;
-                       *p1 = vo_shr_r(*p1, shift); 
+                       *p1 = vo_shr_r(*p1, shift);
                        p1++;
                        *p1 = vo_shr_r(*p1, shift);
                        p1++;
-                       *p1 = vo_shr_r(*p1, shift); 
+                       *p1 = vo_shr_r(*p1, shift);
                        p1++;
                }
        }
 
        /* Compute and normalize r[0] */
-       L_sum = 1; 
+       L_sum = 1;
        for (i = 0; i < L_WINDOW; i+=4)
        {
                L_sum += vo_L_mult(y[i], y[i]);
index 9333d19..43db27a 100644 (file)
@@ -90,9 +90,9 @@ void Az_isp(
                f1[i] = vo_round(t0 + (a[M - i] << 15));        /* =(a[i]+a[M-i])/2 */
                f2[i] = vo_round(t0 - (a[M - i] << 15));        /* =(a[i]-a[M-i])/2 */
        }
-       f1[NC] = a[NC];                        
+       f1[NC] = a[NC];
        for (i = 2; i < NC; i++)               /* Divide by (1-z^-2) */
-               f2[i] = add1(f2[i], f2[i - 2]);     
+               f2[i] = add1(f2[i], f2[i - 2]);
 
        /*---------------------------------------------------------------------*
         * Find the ISPs (roots of F1(z) and F2(z) ) using the                 *
@@ -107,17 +107,17 @@ void Az_isp(
         *---------------------------------------------------------------------*/
        nf = 0;                                  /* number of found frequencies */
        ip = 0;                                  /* indicator for f1 or f2      */
-       coef = f1;                             
-       order = NC;                            
-       xlow = vogrid[0];                        
+       coef = f1;
+       order = NC;
+       xlow = vogrid[0];
        ylow = Chebps2(xlow, coef, order);
        j = 0;
        while ((nf < M - 1) && (j < GRID_POINTS))
        {
                j ++;
-               xhigh = xlow;                     
-               yhigh = ylow;                      
-               xlow = vogrid[j];                    
+               xhigh = xlow;
+               yhigh = ylow;
+               xlow = vogrid[j];
                ylow = Chebps2(xlow, coef, order);
                if ((ylow * yhigh) <= (Word32) 0)
                {
@@ -128,12 +128,12 @@ void Az_isp(
                                ymid = Chebps2(xmid, coef, order);
                                if ((ylow * ymid) <= (Word32) 0)
                                {
-                                       yhigh = ymid;         
-                                       xhigh = xmid;          
+                                       yhigh = ymid;
+                                       xhigh = xmid;
                                } else
                                {
-                                       ylow = ymid;           
-                                       xlow = xmid;          
+                                       ylow = ymid;
+                                       xlow = xmid;
                                }
                        }
                        /*-------------------------------------------------------------*
@@ -144,10 +144,10 @@ void Az_isp(
                        y = yhigh - ylow;
                        if (y == 0)
                        {
-                               xint = xlow;               
+                               xint = xlow;
                        } else
                        {
-                               sign = y;                 
+                               sign = y;
                                y = abs_s(y);
                                exp = norm_s(y);
                                y = y << exp;
@@ -161,19 +161,19 @@ void Az_isp(
                                t0 = (t0 >> 10);        /* result in Q15 */
                                xint = vo_sub(xlow, vo_extract_l(t0));        /* xint = xlow - ylow*y */
                        }
-                       isp[nf] = xint;                
-                       xlow = xint;                   
-                       nf++;                          
+                       isp[nf] = xint;
+                       xlow = xint;
+                       nf++;
                        if (ip == 0)
                        {
-                               ip = 1;                    
-                               coef = f2;                
-                               order = NC - 1;           
+                               ip = 1;
+                               coef = f2;
+                               order = NC - 1;
                        } else
                        {
-                               ip = 0;                   
-                               coef = f1;                 
-                               order = NC;              
+                               ip = 0;
+                               coef = f1;
+                               order = NC;
                        }
                        ylow = Chebps2(xlow, coef, order);
                }
@@ -183,7 +183,7 @@ void Az_isp(
        {
                for (i = 0; i < M; i++)
                {
-                       isp[i] = old_isp[i];          
+                       isp[i] = old_isp[i];
                }
        } else
        {
@@ -243,9 +243,9 @@ static __inline Word16 Chebps2(Word16 x, Word16 f[], Word32 n)
                b0_l = (t0 & 0xffff) >> 1;
 
                b2_l = b1_l;                         /* b2 = b1; */
-               b2_h = b1_h;                       
+               b2_h = b1_h;
                b1_l = b0_l;                         /* b1 = b0; */
-               b1_h = b0_h;                       
+               b1_h = b0_h;
        }
 
        t0 = ((b1_h * x)<<1) + (((b1_l * x)>>15)<<1);
index 61cac3d..e78dc1f 100644 (file)
@@ -34,8 +34,8 @@
 
 int PackBits(Word16 prms[],             /*  i: analysis parameters */
                         Word16 coding_mode,        /*  i: coding bit-stream ratio mode */
-                        Word16 mode,               /*  i: coding bit-stream ratio mode*/ 
-                        Coder_State *st            /*i/o: coder global parameters struct */           
+                        Word16 mode,               /*  i: coding bit-stream ratio mode*/
+                        Coder_State *st            /*i/o: coder global parameters struct */
                         )
 {
        Word16 i, frame_type;
@@ -46,7 +46,7 @@ int PackBits(Word16 prms[],             /*  i: analysis parameters */
        unsigned short* dataOut = st->outputStream;
 
        if (coding_mode == MRDTX)
-       {          
+       {
                st->sid_update_counter--;
 
                if (st->prev_ft == TX_SPEECH)
@@ -92,7 +92,7 @@ int PackBits(Word16 prms[],             /*  i: analysis parameters */
        } else
        {
                if (bitstreamformat == 1)               /* ITU file format */
-               {                                               
+               {
                        *(dataOut) = 0x6b21;
                        if(frame_type != TX_NO_DATA && frame_type != TX_SID_FIRST)
                        {
@@ -100,17 +100,17 @@ int PackBits(Word16 prms[],             /*  i: analysis parameters */
                                for (i = 0; i < nb_of_bits[coding_mode]; i++)
                                {
                                        if(prms[i] == BIT_0){
-                                               *(dataOut + 2 + i) = BIT_0_ITU;                         
+                                               *(dataOut + 2 + i) = BIT_0_ITU;
                                        }
                                        else{
                                                *(dataOut + 2 + i) = BIT_1_ITU;
                                        }
                                }
-                               return (2 + nb_of_bits[coding_mode])<<1;   
+                               return (2 + nb_of_bits[coding_mode])<<1;
                        } else
                        {
                                *(dataOut + 1) = 0;
-                               return 2<<1;       
+                               return 2<<1;
                        }
                } else                                                  /* MIME/storage file format */
                {
@@ -191,7 +191,7 @@ void Parm_serial(
                )
 {
        Word16 i, bit;
-       *prms += no_of_bits;                  
+       *prms += no_of_bits;
        for (i = 0; i < no_of_bits; i++)
        {
                bit = (Word16) (value & 0x0001);    /* get lsb */
@@ -199,9 +199,9 @@ void Parm_serial(
                        *--(*prms) = BIT_0;
                else
                        *--(*prms) = BIT_1;
-               value >>= 1;          
+               value >>= 1;
        }
-       *prms += no_of_bits;                  
+       *prms += no_of_bits;
        return;
 }
 
index 80990d9..18698e2 100644 (file)
@@ -79,7 +79,7 @@ void ACELP_2t64_fx(
 #endif
 
        Isqrt_n(&s, &exp);
-       s = L_shl(s, add1(exp, 5));             
+       s = L_shl(s, add1(exp, 5));
        k_cn = vo_round(s);
 
        /* set k_dn = 32..512 (ener_dn = 2^30..2^22) */
@@ -107,22 +107,22 @@ void ACELP_2t64_fx(
                s = (k_cn* (*p0++))+(k_dn * (*p1++));
                *p2++ = s >> 7;
                s = (k_cn* (*p0++))+(k_dn * (*p1++));
-               *p2++ = s >> 7; 
+               *p2++ = s >> 7;
        }
 
        /* set sign according to dn2[] = k_cn*cn[] + k_dn*dn[]    */
        for (i = 0; i < L_SUBFR; i ++)
        {
-               val = dn[i];                   
-               ps = dn2[i];                   
+               val = dn[i];
+               ps = dn2[i];
                if (ps >= 0)
                {
                        sign[i] = 32767;             /* sign = +1 (Q12) */
-                       vec[i] = -32768;           
+                       vec[i] = -32768;
                } else
                {
                        sign[i] = -32768;            /* sign = -1 (Q12) */
-                       vec[i] = 32767;            
+                       vec[i] = 32767;
                        dn[i] = -val;
                }
        }
@@ -130,13 +130,13 @@ void ACELP_2t64_fx(
         * Compute h_inv[i].                                          *
         *------------------------------------------------------------*/
        /* impulse response buffer for fast computation */
-       h = h_buf + L_SUBFR;                             
-       h_inv = h + (L_SUBFR<<1);         
+       h = h_buf + L_SUBFR;
+       h_inv = h + (L_SUBFR<<1);
 
        for (i = 0; i < L_SUBFR; i++)
        {
-               h[i] = H[i];                       
-               h_inv[i] = vo_negate(h[i]);           
+               h[i] = H[i];
+               h_inv[i] = vo_negate(h[i]);
        }
 
        /*------------------------------------------------------------*
@@ -144,46 +144,46 @@ void ACELP_2t64_fx(
         * Result is multiplied by 0.5                                *
         *------------------------------------------------------------*/
        /* Init pointers to last position of rrixix[] */
-       p0 = &rrixix[0][NB_POS - 1];           
-       p1 = &rrixix[1][NB_POS - 1];           
+       p0 = &rrixix[0][NB_POS - 1];
+       p1 = &rrixix[1][NB_POS - 1];
 
-       ptr_h1 = h;                            
+       ptr_h1 = h;
        cor = 0x00010000L;                          /* for rounding */
        for (i = 0; i < NB_POS; i++)
        {
                cor += ((*ptr_h1) * (*ptr_h1) << 1);
                ptr_h1++;
-               *p1-- = (extract_h(cor) >> 1);            
+               *p1-- = (extract_h(cor) >> 1);
                cor += ((*ptr_h1) * (*ptr_h1) << 1);
                ptr_h1++;
-               *p0-- = (extract_h(cor) >> 1);            
+               *p0-- = (extract_h(cor) >> 1);
        }
 
        /*------------------------------------------------------------*
         * Compute rrixiy[][] needed for the codebook search.         *
         *------------------------------------------------------------*/
-       pos = MSIZE - 1;                       
-       pos2 = MSIZE - 2;                      
-       ptr_hf = h + 1;                        
+       pos = MSIZE - 1;
+       pos2 = MSIZE - 2;
+       ptr_hf = h + 1;
 
        for (k = 0; k < NB_POS; k++)
        {
-               p1 = &rrixiy[pos];                 
-               p0 = &rrixiy[pos2];                
+               p1 = &rrixiy[pos];
+               p0 = &rrixiy[pos2];
                cor = 0x00008000L;                        /* for rounding */
-               ptr_h1 = h;                        
-               ptr_h2 = ptr_hf;                   
+               ptr_h1 = h;
+               ptr_h2 = ptr_hf;
 
                for (i = (k + 1); i < NB_POS; i++)
                {
                        cor += ((*ptr_h1) * (*ptr_h2))<<1;
                        ptr_h1++;
                        ptr_h2++;
-                       *p1 = extract_h(cor);          
+                       *p1 = extract_h(cor);
                        cor += ((*ptr_h1) * (*ptr_h2))<<1;
                        ptr_h1++;
                        ptr_h2++;
-                       *p0 = extract_h(cor);         
+                       *p0 = extract_h(cor);
 
                        p1 -= (NB_POS + 1);
                        p0 -= (NB_POS + 1);
@@ -191,7 +191,7 @@ void ACELP_2t64_fx(
                cor += ((*ptr_h1) * (*ptr_h2))<<1;
                ptr_h1++;
                ptr_h2++;
-               *p1 = extract_h(cor);              
+               *p1 = extract_h(cor);
 
                pos -= NB_POS;
                pos2--;
@@ -201,17 +201,17 @@ void ACELP_2t64_fx(
        /*------------------------------------------------------------*
         * Modification of rrixiy[][] to take signs into account.     *
         *------------------------------------------------------------*/
-       p0 = rrixiy;                          
+       p0 = rrixiy;
        for (i = 0; i < L_SUBFR; i += STEP)
        {
-               psign = sign;                      
+               psign = sign;
                if (psign[i] < 0)
                {
-                       psign = vec;                   
+                       psign = vec;
                }
                for (j = 1; j < L_SUBFR; j += STEP)
                {
-                       *p0 = vo_mult(*p0, psign[j]);     
+                       *p0 = vo_mult(*p0, psign[j]);
                        p0++;
                }
        }
@@ -220,20 +220,20 @@ void ACELP_2t64_fx(
         * ~@~~~~~~~~~~~~~~                                                  *
         * 32 pos x 32 pos = 1024 tests (all combinaisons is tested)         *
         *-------------------------------------------------------------------*/
-       p0 = rrixix[0];                        
-       p1 = rrixix[1];                        
-       p2 = rrixiy;                          
+       p0 = rrixix[0];
+       p1 = rrixix[1];
+       p2 = rrixiy;
 
-       psk = -1;                              
-       alpk = 1;                              
-       ix = 0;                                
-       iy = 1;                                
+       psk = -1;
+       alpk = 1;
+       ix = 0;
+       iy = 1;
 
        for (i0 = 0; i0 < L_SUBFR; i0 += STEP)
        {
-               ps1 = dn[i0];                      
-               alp1 = (*p0++);                    
-               pos = -1;                          
+               ps1 = dn[i0];
+               alp1 = (*p0++);
+               pos = -1;
                for (i1 = 1; i1 < L_SUBFR; i1 += STEP)
                {
                        ps2 = add1(ps1, dn[i1]);
@@ -242,16 +242,16 @@ void ACELP_2t64_fx(
                        s = vo_L_mult(alpk, sq) - ((psk * alp2)<<1);
                        if (s > 0)
                        {
-                               psk = sq;                  
-                               alpk = alp2;               
-                               pos = i1;                  
+                               psk = sq;
+                               alpk = alp2;
+                               pos = i1;
                        }
                }
                p1 -= NB_POS;
                if (pos >= 0)
                {
-                       ix = i0;                      
-                       iy = pos;                      
+                       ix = i0;
+                       iy = pos;
                }
        }
        /*-------------------------------------------------------------------*
@@ -260,7 +260,7 @@ void ACELP_2t64_fx(
 
        for (i = 0; i < L_SUBFR; i++)
        {
-               code[i] = 0;                       
+               code[i] = 0;
        }
 
        i0 = (ix >> 1);                       /* pos of pulse 1 (0..31) */
@@ -268,24 +268,24 @@ void ACELP_2t64_fx(
        if (sign[ix] > 0)
        {
                code[ix] = 512;                     /* codeword in Q9 format */
-               p0 = h - ix;                       
+               p0 = h - ix;
        } else
        {
-               code[ix] = -512;                   
-               i0 += NB_POS;                      
-               p0 = h_inv - ix;                   
+               code[ix] = -512;
+               i0 += NB_POS;
+               p0 = h_inv - ix;
        }
        if (sign[iy] > 0)
        {
-               code[iy] = 512;                    
-               p1 = h - iy;                       
+               code[iy] = 512;
+               p1 = h - iy;
        } else
        {
-               code[iy] = -512;                   
-               i1 += NB_POS;                      
-               p1 = h_inv - iy;                   
+               code[iy] = -512;
+               i1 += NB_POS;
+               p1 = h_inv - iy;
        }
-       *index = add1((i0 << 6), i1);          
+       *index = add1((i0 << 6), i1);
        for (i = 0; i < L_SUBFR; i++)
        {
                y[i] = vo_shr_r(add1((*p0++), (*p1++)), 3);
index 17f3d47..1ecc11f 100644 (file)
@@ -151,58 +151,58 @@ void ACELP_4t64_fx(
                case 20:                               /* 20 bits, 4 pulses, 4 tracks */
                        nbiter = 4;                          /* 4x16x16=1024 loop */
                        alp = 8192;                          /* alp = 2.0 (Q12) */
-                       nb_pulse = 4;                      
-                       nbpos[0] = 4;                      
-                       nbpos[1] = 8;                      
+                       nb_pulse = 4;
+                       nbpos[0] = 4;
+                       nbpos[1] = 8;
                        break;
                case 36:                               /* 36 bits, 8 pulses, 4 tracks */
                        nbiter = 4;                          /* 4x20x16=1280 loop */
                        alp = 4096;                          /* alp = 1.0 (Q12) */
-                       nb_pulse = 8;                      
-                       nbpos[0] = 4;                      
-                       nbpos[1] = 8;                      
-                       nbpos[2] = 8;                      
+                       nb_pulse = 8;
+                       nbpos[0] = 4;
+                       nbpos[1] = 8;
+                       nbpos[2] = 8;
                        break;
                case 44:                               /* 44 bits, 10 pulses, 4 tracks */
                        nbiter = 4;                          /* 4x26x16=1664 loop */
                        alp = 4096;                          /* alp = 1.0 (Q12) */
-                       nb_pulse = 10;                     
-                       nbpos[0] = 4;                      
-                       nbpos[1] = 6;                      
-                       nbpos[2] = 8;                      
-                       nbpos[3] = 8;                      
+                       nb_pulse = 10;
+                       nbpos[0] = 4;
+                       nbpos[1] = 6;
+                       nbpos[2] = 8;
+                       nbpos[3] = 8;
                        break;
                case 52:                               /* 52 bits, 12 pulses, 4 tracks */
                        nbiter = 4;                          /* 4x26x16=1664 loop */
                        alp = 4096;                          /* alp = 1.0 (Q12) */
-                       nb_pulse = 12;                     
-                       nbpos[0] = 4;                      
-                       nbpos[1] = 6;                      
-                       nbpos[2] = 8;                      
-                       nbpos[3] = 8;                      
+                       nb_pulse = 12;
+                       nbpos[0] = 4;
+                       nbpos[1] = 6;
+                       nbpos[2] = 8;
+                       nbpos[3] = 8;
                        break;
                case 64:                               /* 64 bits, 16 pulses, 4 tracks */
                        nbiter = 3;                          /* 3x36x16=1728 loop */
                        alp = 3277;                          /* alp = 0.8 (Q12) */
-                       nb_pulse = 16;                     
-                       nbpos[0] = 4;                      
-                       nbpos[1] = 4;                      
-                       nbpos[2] = 6;                      
-                       nbpos[3] = 6;                      
-                       nbpos[4] = 8;                      
-                       nbpos[5] = 8;                      
+                       nb_pulse = 16;
+                       nbpos[0] = 4;
+                       nbpos[1] = 4;
+                       nbpos[2] = 6;
+                       nbpos[3] = 6;
+                       nbpos[4] = 8;
+                       nbpos[5] = 8;
                        break;
                case 72:                               /* 72 bits, 18 pulses, 4 tracks */
                        nbiter = 3;                          /* 3x35x16=1680 loop */
                        alp = 3072;                          /* alp = 0.75 (Q12) */
-                       nb_pulse = 18;                     
-                       nbpos[0] = 2;                      
-                       nbpos[1] = 3;                      
-                       nbpos[2] = 4;                      
-                       nbpos[3] = 5;                      
-                       nbpos[4] = 6;                      
-                       nbpos[5] = 7;                      
-                       nbpos[6] = 8;                      
+                       nb_pulse = 18;
+                       nbpos[0] = 2;
+                       nbpos[1] = 3;
+                       nbpos[2] = 4;
+                       nbpos[3] = 5;
+                       nbpos[4] = 6;
+                       nbpos[5] = 7;
+                       nbpos[6] = 8;
                        break;
                case 88:                               /* 88 bits, 24 pulses, 4 tracks */
                        if(ser_size > 462)
@@ -211,17 +211,17 @@ void ACELP_4t64_fx(
                                nbiter = 2;                    /* 2x53x16=1696 loop */
 
                        alp = 2048;                          /* alp = 0.5 (Q12) */
-                       nb_pulse = 24;                     
-                       nbpos[0] = 2;                      
-                       nbpos[1] = 2;                      
-                       nbpos[2] = 3;                      
-                       nbpos[3] = 4;                      
-                       nbpos[4] = 5;                      
-                       nbpos[5] = 6;                      
-                       nbpos[6] = 7;                      
-                       nbpos[7] = 8;                      
-                       nbpos[8] = 8;                      
-                       nbpos[9] = 8;                      
+                       nb_pulse = 24;
+                       nbpos[0] = 2;
+                       nbpos[1] = 2;
+                       nbpos[2] = 3;
+                       nbpos[3] = 4;
+                       nbpos[4] = 5;
+                       nbpos[5] = 6;
+                       nbpos[6] = 7;
+                       nbpos[7] = 8;
+                       nbpos[8] = 8;
+                       nbpos[9] = 8;
                        break;
                default:
                        nbiter = 0;
@@ -231,7 +231,7 @@ void ACELP_4t64_fx(
 
        for (i = 0; i < nb_pulse; i++)
        {
-               codvec[i] = i;                     
+               codvec[i] = i;
        }
 
        /*----------------------------------------------------------------*
@@ -246,7 +246,7 @@ void ACELP_4t64_fx(
 #endif
 
        Isqrt_n(&s, &exp);
-       s = L_shl(s, (exp + 5)); 
+       s = L_shl(s, (exp + 5));
        k_cn = extract_h(L_add(s, 0x8000));
 
        /* set k_dn = 32..512 (ener_dn = 2^30..2^22) */
@@ -274,22 +274,22 @@ void ACELP_4t64_fx(
                s = (k_cn* (*p0++))+(k_dn * (*p1++));
                *p2++ = s >> 7;
                s = (k_cn* (*p0++))+(k_dn * (*p1++));
-               *p2++ = s >> 7; 
+               *p2++ = s >> 7;
        }
 
        /* set sign according to dn2[] = k_cn*cn[] + k_dn*dn[]    */
        for(i = 0; i < L_SUBFR; i++)
        {
-               val = dn[i];                   
-               ps = dn2[i];                   
+               val = dn[i];
+               ps = dn2[i];
                if (ps >= 0)
                {
                        sign[i] = 32767;             /* sign = +1 (Q12) */
-                       vec[i] = -32768;           
+                       vec[i] = -32768;
                } else
                {
                        sign[i] = -32768;            /* sign = -1 (Q12) */
-                       vec[i] = 32767;            
+                       vec[i] = 32767;
                        dn[i] = -val;
                        dn2[i] = -ps;
                }
@@ -302,19 +302,19 @@ void ACELP_4t64_fx(
        {
                for (k = 0; k < NB_MAX; k++)
                {
-                       ps = -1;                       
+                       ps = -1;
                        for (j = i; j < L_SUBFR; j += STEP)
                        {
                                if(dn2[j] > ps)
                                {
-                                       ps = dn2[j];          
-                                       pos = j;               
+                                       ps = dn2[j];
+                                       pos = j;
                                }
                        }
                        dn2[pos] = (k - NB_MAX);     /* dn2 < 0 when position is selected */
                        if (k == 0)
                        {
-                               pos_max[i] = pos;          
+                               pos_max[i] = pos;
                        }
                }
        }
@@ -335,22 +335,22 @@ void ACELP_4t64_fx(
 
        /* impulse response buffer for fast computation */
 
-       h = h_buf;                             
-       h_inv = h_buf + (2 * L_SUBFR);   
+       h = h_buf;
+       h_inv = h_buf + (2 * L_SUBFR);
        L_tmp = 0;
        for (i = 0; i < L_SUBFR; i++)
        {
-               *h++ = 0;                          
-               *h_inv++ = 0;   
+               *h++ = 0;
+               *h_inv++ = 0;
                L_tmp += (H[i] * H[i]) << 1;
        }
        /* scale h[] down (/2) when energy of h[] is high with many pulses used */
        val = extract_h(L_tmp);
-       h_shift = 0;                           
+       h_shift = 0;
 
        if ((nb_pulse >= 12) && (val > 1024))
        {
-               h_shift = 1;                       
+               h_shift = 1;
        }
        p0 = H;
        p1 = h;
@@ -358,14 +358,14 @@ void ACELP_4t64_fx(
 
        for (i = 0; i < L_SUBFR/4; i++)
        {
-               *p1 = *p0++ >> h_shift;         
-               *p2++ = -(*p1++);  
-               *p1 = *p0++ >> h_shift;         
-               *p2++ = -(*p1++); 
-               *p1 = *p0++ >> h_shift;         
-               *p2++ = -(*p1++); 
-               *p1 = *p0++ >> h_shift;         
-               *p2++ = -(*p1++); 
+               *p1 = *p0++ >> h_shift;
+               *p2++ = -(*p1++);
+               *p1 = *p0++ >> h_shift;
+               *p2++ = -(*p1++);
+               *p1 = *p0++ >> h_shift;
+               *p2++ = -(*p1++);
+               *p1 = *p0++ >> h_shift;
+               *p2++ = -(*p1++);
        }
 
        /*------------------------------------------------------------*
@@ -377,27 +377,27 @@ void ACELP_4t64_fx(
        /* storage order --> i3i3, i2i2, i1i1, i0i0 */
 
        /* Init pointers to last position of rrixix[] */
-       p0 = &rrixix[0][NB_POS - 1];           
-       p1 = &rrixix[1][NB_POS - 1];           
-       p2 = &rrixix[2][NB_POS - 1];           
-       p3 = &rrixix[3][NB_POS - 1];           
+       p0 = &rrixix[0][NB_POS - 1];
+       p1 = &rrixix[1][NB_POS - 1];
+       p2 = &rrixix[2][NB_POS - 1];
+       p3 = &rrixix[3][NB_POS - 1];
 
-       ptr_h1 = h;                            
+       ptr_h1 = h;
        cor = 0x00008000L;                             /* for rounding */
        for (i = 0; i < NB_POS; i++)
        {
                cor += vo_L_mult((*ptr_h1), (*ptr_h1));
                ptr_h1++;
-               *p3-- = extract_h(cor);            
+               *p3-- = extract_h(cor);
                cor += vo_L_mult((*ptr_h1), (*ptr_h1));
                ptr_h1++;
-               *p2-- = extract_h(cor);            
+               *p2-- = extract_h(cor);
                cor += vo_L_mult((*ptr_h1), (*ptr_h1));
                ptr_h1++;
-               *p1-- = extract_h(cor);            
+               *p1-- = extract_h(cor);
                cor += vo_L_mult((*ptr_h1), (*ptr_h1));
                ptr_h1++;
-               *p0-- = extract_h(cor);            
+               *p0-- = extract_h(cor);
        }
 
        /*------------------------------------------------------------*
@@ -409,38 +409,38 @@ void ACELP_4t64_fx(
 
        /* storage order --> i2i3, i1i2, i0i1, i3i0 */
 
-       pos = MSIZE - 1;                       
-       ptr_hf = h + 1;                        
+       pos = MSIZE - 1;
+       ptr_hf = h + 1;
 
        for (k = 0; k < NB_POS; k++)
        {
-               p3 = &rrixiy[2][pos];              
-               p2 = &rrixiy[1][pos];              
-               p1 = &rrixiy[0][pos];              
-               p0 = &rrixiy[3][pos - NB_POS];     
+               p3 = &rrixiy[2][pos];
+               p2 = &rrixiy[1][pos];
+               p1 = &rrixiy[0][pos];
+               p0 = &rrixiy[3][pos - NB_POS];
 
                cor = 0x00008000L;                   /* for rounding */
-               ptr_h1 = h;                        
-               ptr_h2 = ptr_hf;                   
+               ptr_h1 = h;
+               ptr_h2 = ptr_hf;
 
                for (i = k + 1; i < NB_POS; i++)
                {
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p3 = extract_h(cor);          
+                       *p3 = extract_h(cor);
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p2 = extract_h(cor);          
+                       *p2 = extract_h(cor);
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p1 = extract_h(cor);          
+                       *p1 = extract_h(cor);
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p0 = extract_h(cor);         
+                       *p0 = extract_h(cor);
 
                        p3 -= (NB_POS + 1);
                        p2 -= (NB_POS + 1);
@@ -450,15 +450,15 @@ void ACELP_4t64_fx(
                cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                ptr_h1++;
                ptr_h2++;
-               *p3 = extract_h(cor);              
+               *p3 = extract_h(cor);
                cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                ptr_h1++;
                ptr_h2++;
-               *p2 = extract_h(cor);              
+               *p2 = extract_h(cor);
                cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                ptr_h1++;
                ptr_h2++;
-               *p1 = extract_h(cor);              
+               *p1 = extract_h(cor);
 
                pos -= NB_POS;
                ptr_hf += STEP;
@@ -466,38 +466,38 @@ void ACELP_4t64_fx(
 
        /* storage order --> i3i0, i2i3, i1i2, i0i1 */
 
-       pos = MSIZE - 1;                       
-       ptr_hf = h + 3;                        
+       pos = MSIZE - 1;
+       ptr_hf = h + 3;
 
        for (k = 0; k < NB_POS; k++)
        {
-               p3 = &rrixiy[3][pos];              
-               p2 = &rrixiy[2][pos - 1];          
-               p1 = &rrixiy[1][pos - 1];          
-               p0 = &rrixiy[0][pos - 1];          
+               p3 = &rrixiy[3][pos];
+               p2 = &rrixiy[2][pos - 1];
+               p1 = &rrixiy[1][pos - 1];
+               p0 = &rrixiy[0][pos - 1];
 
                cor = 0x00008000L;                                                              /* for rounding */
-               ptr_h1 = h;                        
-               ptr_h2 = ptr_hf;                   
+               ptr_h1 = h;
+               ptr_h2 = ptr_hf;
 
                for (i = k + 1; i < NB_POS; i++)
                {
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p3 = extract_h(cor);          
+                       *p3 = extract_h(cor);
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p2 = extract_h(cor);          
+                       *p2 = extract_h(cor);
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p1 = extract_h(cor);          
+                       *p1 = extract_h(cor);
                        cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                        ptr_h1++;
                        ptr_h2++;
-                       *p0 = extract_h(cor);          
+                       *p0 = extract_h(cor);
 
                        p3 -= (NB_POS + 1);
                        p2 -= (NB_POS + 1);
@@ -507,7 +507,7 @@ void ACELP_4t64_fx(
                cor += vo_L_mult((*ptr_h1), (*ptr_h2));
                ptr_h1++;
                ptr_h2++;
-               *p3 = extract_h(cor);              
+               *p3 = extract_h(cor);
 
                pos--;
                ptr_hf += STEP;
@@ -517,22 +517,22 @@ void ACELP_4t64_fx(
         * Modification of rrixiy[][] to take signs into account.     *
         *------------------------------------------------------------*/
 
-       p0 = &rrixiy[0][0];                    
+       p0 = &rrixiy[0][0];
 
        for (k = 0; k < NB_TRACK; k++)
        {
                j_temp = (k + 1)&0x03;
                for (i = k; i < L_SUBFR; i += STEP)
                {
-                       psign = sign;                  
+                       psign = sign;
                        if (psign[i] < 0)
                        {
-                               psign = vec;               
+                               psign = vec;
                        }
                        j = j_temp;
                        for (; j < L_SUBFR; j += STEP)
                        {
-                               *p0 = vo_mult(*p0, psign[j]);    
+                               *p0 = vo_mult(*p0, psign[j]);
                                p0++;
                        }
                }
@@ -542,8 +542,8 @@ void ACELP_4t64_fx(
         *                       Deep first search                           *
         *-------------------------------------------------------------------*/
 
-       psk = -1;                              
-       alpk = 1;                              
+       psk = -1;
+       alpk = 1;
 
        for (k = 0; k < nbiter; k++)
        {
@@ -553,12 +553,12 @@ void ACELP_4t64_fx(
 
                if(nbbits == 20)
                {
-                       pos = 0;                       
-                       ps = 0;                        
-                       alp = 0;                       
+                       pos = 0;
+                       ps = 0;
+                       alp = 0;
                        for (i = 0; i < L_SUBFR; i++)
                        {
-                               vec[i] = 0;                
+                               vec[i] = 0;
                        }
                } else if ((nbbits == 36) || (nbbits == 44))
                {
@@ -591,18 +591,18 @@ void ACELP_4t64_fx(
 
                        if(nbbits == 44)
                        {
-                               ipos[8] = 0;               
-                               ipos[9] = 1;               
+                               ipos[8] = 0;
+                               ipos[9] = 1;
                        }
                } else
                {
                        /* first stage: fix 4 pulses */
                        pos = 4;
 
-                       ix = ind[0] = pos_max[ipos[0]];  
-                       iy = ind[1] = pos_max[ipos[1]];  
-                       i = ind[2] = pos_max[ipos[2]];   
-                       j = ind[3] = pos_max[ipos[3]];   
+                       ix = ind[0] = pos_max[ipos[0]];
+                       iy = ind[1] = pos_max[ipos[1]];
+                       i = ind[2] = pos_max[ipos[2]];
+                       j = ind[3] = pos_max[ipos[3]];
                        ps = add1(add1(add1(dn[ix], dn[iy]), dn[i]), dn[j]);
 
                        if (sign[ix] < 0)
@@ -636,8 +636,8 @@ void ACELP_4t64_fx(
 
                        if(nbbits == 72)
                        {
-                               ipos[16] = 0;              
-                               ipos[17] = 1;              
+                               ipos[16] = 0;
+                               ipos[17] = 1;
                        }
                }
 
@@ -668,8 +668,8 @@ void ACELP_4t64_fx(
                        search_ixiy(nbpos[st], ipos[j], ipos[j + 1], &ps, &alp,
                                        &ix, &iy, dn, dn2, cor_x, cor_y, rrixiy);
 
-                       ind[j] = ix;                   
-                       ind[j + 1] = iy;               
+                       ind[j] = ix;
+                       ind[j + 1] = iy;
 
                        if (sign[ix] < 0)
                                p0 = h_inv - ix;
@@ -682,10 +682,10 @@ void ACELP_4t64_fx(
 
                        for (i = 0; i < L_SUBFR; i+=4)
                        {
-                               vec[i]   += add1((*p0++), (*p1++));       
-                               vec[i+1] += add1((*p0++), (*p1++));        
-                               vec[i+2] += add1((*p0++), (*p1++));        
-                               vec[i+3] += add1((*p0++), (*p1++));      
+                               vec[i]   += add1((*p0++), (*p1++));
+                               vec[i+1] += add1((*p0++), (*p1++));
+                               vec[i+2] += add1((*p0++), (*p1++));
+                               vec[i+3] += add1((*p0++), (*p1++));
                        }
                }
                /* memorise the best codevector */
@@ -693,15 +693,15 @@ void ACELP_4t64_fx(
                s = vo_L_msu(vo_L_mult(alpk, ps), psk, alp);
                if (s > 0)
                {
-                       psk = ps;                      
-                       alpk = alp;                    
+                       psk = ps;
+                       alpk = alp;
                        for (i = 0; i < nb_pulse; i++)
                        {
-                               codvec[i] = ind[i];        
+                               codvec[i] = ind[i];
                        }
                        for (i = 0; i < L_SUBFR; i++)
                        {
-                               y[i] = vec[i];             
+                               y[i] = vec[i];
                        }
                }
        }
@@ -710,11 +710,11 @@ void ACELP_4t64_fx(
         *-------------------------------------------------------------------*/
        for (i = 0; i < NPMAXPT * NB_TRACK; i++)
        {
-               ind[i] = -1;                       
+               ind[i] = -1;
        }
        for (i = 0; i < L_SUBFR; i++)
        {
-               code[i] = 0;                       
+               code[i] = 0;
                y[i] = vo_shr_r(y[i], 3);               /* Q12 to Q9 */
        }
        val = (512 >> h_shift);               /* codeword in Q9 format */
@@ -727,12 +727,12 @@ void ACELP_4t64_fx(
 
                if (j > 0)
                {
-                       code[i] += val;   
-                       codvec[k] += 128;  
+                       code[i] += val;
+                       codvec[k] += 128;
                } else
                {
-                       code[i] -= val;   
-                       index += NB_POS;    
+                       code[i] -= val;
+                       index += NB_POS;
                }
 
                i = (Word16)((vo_L_mult(track, NPMAXPT) >> 1));
@@ -741,10 +741,10 @@ void ACELP_4t64_fx(
                {
                        i += 1;
                }
-               ind[i] = index;                    
+               ind[i] = index;
        }
 
-       k = 0;                                 
+       k = 0;
        /* Build index of codevector */
        if(nbbits == 20)
        {
@@ -849,20 +849,20 @@ void cor_h_vec_30(
                p2 = &vec[pos];
                for (j=pos;j < L_SUBFR; j++)
                {
-                       L_sum1 += *p1 * *p2;            
+                       L_sum1 += *p1 * *p2;
                        p2-=3;
-                       L_sum2 += *p1++ * *p2;          
+                       L_sum2 += *p1++ * *p2;
                        p2+=4;
                }
                p2-=3;
-               L_sum2 += *p1++ * *p2++;        
-               L_sum2 += *p1++ * *p2++;        
-               L_sum2 += *p1++ * *p2++;        
+               L_sum2 += *p1++ * *p2++;
+               L_sum2 += *p1++ * *p2++;
+               L_sum2 += *p1++ * *p2++;
 
                L_sum1 = (L_sum1 << 2);
                L_sum2 = (L_sum2 << 2);
 
-               corr = vo_round(L_sum1);        
+               corr = vo_round(L_sum1);
                *cor_x++ = vo_mult(corr, sign[pos]) + (*p0++);
                corr = vo_round(L_sum2);
                *cor_y++ = vo_mult(corr, sign[pos-3]) + (*p3++);
@@ -873,20 +873,20 @@ void cor_h_vec_30(
                p2 = &vec[pos];
                for (j=pos;j < L_SUBFR; j++)
                {
-                       L_sum1 += *p1 * *p2;            
+                       L_sum1 += *p1 * *p2;
                        p2-=3;
-                       L_sum2 += *p1++ * *p2;          
+                       L_sum2 += *p1++ * *p2;
                        p2+=4;
                }
                p2-=3;
-               L_sum2 += *p1++ * *p2++;        
-               L_sum2 += *p1++ * *p2++;        
-               L_sum2 += *p1++ * *p2++;        
+               L_sum2 += *p1++ * *p2++;
+               L_sum2 += *p1++ * *p2++;
+               L_sum2 += *p1++ * *p2++;
 
                L_sum1 = (L_sum1 << 2);
                L_sum2 = (L_sum2 << 2);
 
-               corr = vo_round(L_sum1);        
+               corr = vo_round(L_sum1);
                *cor_x++ = vo_mult(corr, sign[pos]) + (*p0++);
                corr = vo_round(L_sum2);
                *cor_y++ = vo_mult(corr, sign[pos-3]) + (*p3++);
@@ -982,17 +982,17 @@ void search_ixiy(
        Word16 *p0, *p1, *p2;
        Word32 s, alp0, alp1, alp2;
 
-       p0 = cor_x;                            
-       p1 = cor_y;                            
-       p2 = rrixiy[track_x];                  
+       p0 = cor_x;
+       p1 = cor_y;
+       p2 = rrixiy[track_x];
 
        thres_ix = nb_pos_ix - NB_MAX;
 
        alp0 = L_deposit_h(*alp);
        alp0 = (alp0 + 0x00008000L);       /* for rounding */
 
-       sqk = -1;                              
-       alpk = 1;                              
+       sqk = -1;
+       alpk = 1;
 
        for (x = track_x; x < L_SUBFR; x += STEP)
        {
@@ -1014,17 +1014,17 @@ void search_ixiy(
 
                                if (s > 0)
                                {
-                                       sqk = sq;              
-                                       alpk = alp_16;         
-                                       pos = y;               
+                                       sqk = sq;
+                                       alpk = alp_16;
+                                       pos = y;
                                }
                        }
                        p1 -= NB_POS;
 
                        if (pos >= 0)
                        {
-                               *ix = x;                   
-                               *iy = pos;                 
+                               *ix = x;
+                               *iy = pos;
                        }
                } else
                {
@@ -1032,8 +1032,8 @@ void search_ixiy(
                }
        }
 
-       *ps = add1(*ps, add1(dn[*ix], dn[*iy])); 
-       *alp = alpk;                           
+       *ps = add1(*ps, add1(dn[*ix], dn[*iy]));
+       *alp = alpk;
 
        return;
 }
index 4f7fd8a..acba532 100644 (file)
@@ -49,7 +49,7 @@ void Convolve (
                        s += vo_mult32((*tmpX++), (*tmpH--));
                        i -= 4;
                }
-               y[n] = ((s<<1) + 0x8000)>>16;   
+               y[n] = ((s<<1) + 0x8000)>>16;
                n++;
 
                tmpH = h+n;
@@ -66,7 +66,7 @@ void Convolve (
                        s += vo_mult32((*tmpX++), (*tmpH--));
                        i -= 4;
                }
-               y[n] = ((s<<1) + 0x8000)>>16;    
+               y[n] = ((s<<1) + 0x8000)>>16;
                n++;
 
                tmpH = h+n;
@@ -84,7 +84,7 @@ void Convolve (
                        s += vo_mult32((*tmpX++), (*tmpH--));
                        i -= 4;
                }
-               y[n] = ((s<<1) + 0x8000)>>16;   
+               y[n] = ((s<<1) + 0x8000)>>16;
                n++;
 
                s = 0;
@@ -99,8 +99,8 @@ void Convolve (
                        s += vo_mult32((*tmpX++), (*tmpH--));
                        i -= 4;
                }
-               y[n] = ((s<<1) + 0x8000)>>16;   
-               n++;        
+               y[n] = ((s<<1) + 0x8000)>>16;
+               n++;
        }
        return;
 }
index b645fa3..d9245ed 100644 (file)
@@ -18,7 +18,7 @@
 *       File: cor_h_x.c                                                *
 *                                                                      *
 *         Description:Compute correlation between target "x[]" and "h[]"  *
-*                     Designed for codebook search (24 pulses, 4 tracks,  * 
+*                     Designed for codebook search (24 pulses, 4 tracks,  *
 *                                 4 pulses per track, 16 positions in each track) to  *
 *                                 avoid saturation.                                   *
 *                                                                      *
@@ -44,8 +44,8 @@ void cor_h_x(
        Word32 *p3;
        Word32 L_max, L_max1, L_max2, L_max3;
        /* first keep the result on 32 bits and find absolute maximum */
-       L_tot  = 1;                            
-       L_max  = 0; 
+       L_tot  = 1;
+       L_max  = 0;
        L_max1 = 0;
        L_max2 = 0;
        L_max3 = 0;
@@ -57,11 +57,11 @@ void cor_h_x(
                for (j = i; j < L_SUBFR; j++)
                        L_tmp += vo_L_mult(*p1++, *p2++);
 
-               y32[i] = L_tmp;               
+               y32[i] = L_tmp;
                L_tmp = (L_tmp > 0)? L_tmp:-L_tmp;
                if(L_tmp > L_max)
                {
-                       L_max = L_tmp;             
+                       L_max = L_tmp;
                }
 
                L_tmp = 1L;
@@ -70,11 +70,11 @@ void cor_h_x(
                for (j = i+1; j < L_SUBFR; j++)
                        L_tmp += vo_L_mult(*p1++, *p2++);
 
-               y32[i+1] = L_tmp;               
+               y32[i+1] = L_tmp;
                L_tmp = (L_tmp > 0)? L_tmp:-L_tmp;
                if(L_tmp > L_max1)
                {
-                       L_max1 = L_tmp;             
+                       L_max1 = L_tmp;
                }
 
                L_tmp = 1;
@@ -83,11 +83,11 @@ void cor_h_x(
                for (j = i+2; j < L_SUBFR; j++)
                        L_tmp += vo_L_mult(*p1++, *p2++);
 
-               y32[i+2] = L_tmp;               
+               y32[i+2] = L_tmp;
                L_tmp = (L_tmp > 0)? L_tmp:-L_tmp;
                if(L_tmp > L_max2)
                {
-                       L_max2 = L_tmp;             
+                       L_max2 = L_tmp;
                }
 
                L_tmp = 1;
@@ -96,11 +96,11 @@ void cor_h_x(
                for (j = i+3; j < L_SUBFR; j++)
                        L_tmp += vo_L_mult(*p1++, *p2++);
 
-               y32[i+3] = L_tmp;               
+               y32[i+3] = L_tmp;
                L_tmp = (L_tmp > 0)? L_tmp:-L_tmp;
                if(L_tmp > L_max3)
                {
-                       L_max3 = L_tmp;             
+                       L_max3 = L_tmp;
                }
        }
        /* tot += 3*max / 8 */
index 7bc5576..3b88514 100644 (file)
@@ -136,8 +136,8 @@ static void Down_samp(
                L_sum += vo_mult32((*x++),(*y++));
                L_sum += vo_mult32((*x),(*y));
 
-               L_sum = L_shl2(L_sum, 2);              
-               sig_d[j] = extract_h(L_add(L_sum, 0x8000)); 
+               L_sum = L_shl2(L_sum, 2);
+               sig_d[j] = extract_h(L_add(L_sum, 0x8000));
                pos += FAC5;              /* pos + 5/4 */
        }
        return;
index 4ee1449..0c49d6b 100644 (file)
@@ -39,16 +39,16 @@ void Deemph(
 
        L_tmp = L_deposit_h(x[0]);
        L_tmp = L_mac(L_tmp, *mem, mu);
-       x[0] = vo_round(L_tmp);                   
+       x[0] = vo_round(L_tmp);
 
        for (i = 1; i < L; i++)
        {
                L_tmp = L_deposit_h(x[i]);
                L_tmp = L_mac(L_tmp, x[i - 1], mu);
-               x[i] = voround(L_tmp);               
+               x[i] = voround(L_tmp);
        }
 
-       *mem = x[L - 1];                       
+       *mem = x[L - 1];
 
        return;
 }
@@ -65,14 +65,14 @@ void Deemph2(
        Word32 L_tmp;
        L_tmp = x[0] << 15;
        L_tmp += ((*mem) * mu)<<1;
-       x[0] = (L_tmp + 0x8000)>>16;                   
+       x[0] = (L_tmp + 0x8000)>>16;
        for (i = 1; i < L; i++)
        {
                L_tmp = x[i] << 15;
                L_tmp += (x[i - 1] * mu)<<1;
-               x[i] = (L_tmp + 0x8000)>>16;               
+               x[i] = (L_tmp + 0x8000)>>16;
        }
-       *mem = x[L - 1];                       
+       *mem = x[L - 1];
        return;
 }
 
@@ -95,8 +95,8 @@ void Deemph_32(
        L_tmp += (x_lo[0] * 8)<<1;
        L_tmp = (L_tmp << 3);
        L_tmp += ((*mem) * fac)<<1;
-       L_tmp = (L_tmp << 1);               
-       y[0] = (L_tmp + 0x8000)>>16;                  
+       L_tmp = (L_tmp << 1);
+       y[0] = (L_tmp + 0x8000)>>16;
 
        for (i = 1; i < L; i++)
        {
@@ -104,11 +104,11 @@ void Deemph_32(
                L_tmp += (x_lo[i] * 8)<<1;
                L_tmp = (L_tmp << 3);
                L_tmp += (y[i - 1] * fac)<<1;
-               L_tmp = (L_tmp << 1);           
-               y[i] = (L_tmp + 0x8000)>>16;               
+               L_tmp = (L_tmp << 1);
+               y[i] = (L_tmp + 0x8000)>>16;
        }
 
-       *mem = y[L - 1];                       
+       *mem = y[L - 1];
 
        return;
 }
index df53131..2cfaced 100644 (file)
@@ -105,30 +105,30 @@ Word16 dtx_enc_reset(dtx_encState * st, Word16 isf_init[])
                fprintf(stderr, "dtx_enc_reset: invalid parameter\n");
                return -1;
        }
-       st->hist_ptr = 0;                      
-       st->log_en_index = 0;                  
+       st->hist_ptr = 0;
+       st->log_en_index = 0;
 
        /* Init isf_hist[] */
        for (i = 0; i < DTX_HIST_SIZE; i++)
        {
                Copy(isf_init, &st->isf_hist[i * M], M);
        }
-       st->cng_seed = RANDOM_INITSEED;       
+       st->cng_seed = RANDOM_INITSEED;
 
        /* Reset energy history */
        Set_zero(st->log_en_hist, DTX_HIST_SIZE);
 
-       st->dtxHangoverCount = DTX_HANG_CONST; 
-       st->decAnaElapsedCount = 32767;        
+       st->dtxHangoverCount = DTX_HANG_CONST;
+       st->decAnaElapsedCount = 32767;
 
        for (i = 0; i < 28; i++)
        {
-               st->D[i] = 0;                      
+               st->D[i] = 0;
        }
 
        for (i = 0; i < DTX_HIST_SIZE - 1; i++)
        {
-               st->sumD[i] = 0;                   
+               st->sumD[i] = 0;
        }
 
        return 1;
@@ -279,7 +279,7 @@ Word16 dtx_enc(
        for (i = 0; i < L_FRAME; i++)
        {
                tmp = mult(exc2[i], gain);         /* Q0 * Q15 */
-               exc2[i] = shl(tmp, exp); 
+               exc2[i] = shl(tmp, exp);
        }
 
        return 0;
@@ -301,7 +301,7 @@ Word16 dtx_buffer(
 
        Word16 log_en_e;
        Word16 log_en_m;
-       st->hist_ptr = add(st->hist_ptr, 1); 
+       st->hist_ptr = add(st->hist_ptr, 1);
        if(st->hist_ptr == DTX_HIST_SIZE)
        {
                st->hist_ptr = 0;
@@ -345,7 +345,7 @@ void tx_dtx_handler(dtx_encState * st,     /* i/o : State struct           */
 {
 
        /* this state machine is in synch with the GSMEFR txDtx machine      */
-       st->decAnaElapsedCount = add(st->decAnaElapsedCount, 1); 
+       st->decAnaElapsedCount = add(st->decAnaElapsedCount, 1);
 
        if (vad_flag != 0)
        {
@@ -354,8 +354,8 @@ void tx_dtx_handler(dtx_encState * st,     /* i/o : State struct           */
        {                                      /* non-speech */
                if (st->dtxHangoverCount == 0)
                {                                  /* out of decoder analysis hangover  */
-                       st->decAnaElapsedCount = 0;    
-                       *usedMode = MRDTX;            
+                       st->decAnaElapsedCount = 0;
+                       *usedMode = MRDTX;
                } else
                {                                  /* in possible analysis hangover */
                        st->dtxHangoverCount = sub(st->dtxHangoverCount, 1);
@@ -394,8 +394,8 @@ static void aver_isf_history(
                {
                        for (i = 0; i < M; i++)
                        {
-                               isf_tmp[k * M + i] = isf_old[indices[k] * M + i];      
-                               isf_old[indices[k] * M + i] = isf_old[indices[2] * M + i];    
+                               isf_tmp[k * M + i] = isf_old[indices[k] * M + i];
+                               isf_old[indices[k] * M + i] = isf_old[indices[2] * M + i];
                        }
                }
        }
@@ -403,13 +403,13 @@ static void aver_isf_history(
        /* Perform the ISF averaging */
        for (j = 0; j < M; j++)
        {
-               L_tmp = 0;                      
+               L_tmp = 0;
 
                for (i = 0; i < DTX_HIST_SIZE; i++)
                {
                        L_tmp = L_add(L_tmp, L_deposit_l(isf_old[i * M + j]));
                }
-               isf_aver[j] = L_tmp;              
+               isf_aver[j] = L_tmp;
        }
 
        /* Retrieve from isf_tmp[][] the ISF vectors saved prior to averaging */
@@ -441,12 +441,12 @@ static void find_frame_indices(
        /* sum sumD[0..DTX_HIST_SIZE-1]. sumD[DTX_HIST_SIZE] is    */
        /* not updated since it will be removed later.           */
 
-       tmp = DTX_HIST_SIZE_MIN_ONE;           
-       j = -1;                                
+       tmp = DTX_HIST_SIZE_MIN_ONE;
+       j = -1;
        for (i = 0; i < DTX_HIST_SIZE_MIN_ONE; i++)
        {
                j = add(j, tmp);
-               st->sumD[i] = L_sub(st->sumD[i], st->D[j]);     
+               st->sumD[i] = L_sub(st->sumD[i], st->D[j]);
                tmp = sub(tmp, 1);
        }
 
@@ -458,86 +458,86 @@ static void find_frame_indices(
 
        for (i = DTX_HIST_SIZE_MIN_ONE; i > 0; i--)
        {
-               st->sumD[i] = st->sumD[i - 1];     
+               st->sumD[i] = st->sumD[i - 1];
        }
-       st->sumD[0] = 0;                       
+       st->sumD[0] = 0;
 
        /* Remove the oldest frame from the distance matrix.           */
        /* Note that the distance matrix is replaced by a one-         */
        /* dimensional array to save static memory.                    */
 
-       tmp = 0;                               
+       tmp = 0;
        for (i = 27; i >= 12; i = (Word16) (i - tmp))
        {
                tmp = add(tmp, 1);
                for (j = tmp; j > 0; j--)
                {
-                       st->D[i - j + 1] = st->D[i - j - tmp];   
+                       st->D[i - j + 1] = st->D[i - j - tmp];
                }
        }
 
        /* Compute the first column of the distance matrix D            */
        /* (squared Euclidean distances from isf1[] to isf_old_tx[][]). */
 
-       ptr = st->hist_ptr;                 
+       ptr = st->hist_ptr;
        for (i = 1; i < DTX_HIST_SIZE; i++)
        {
                /* Compute the distance between the latest isf and the other isfs. */
                ptr = sub(ptr, 1);
                if (ptr < 0)
                {
-                       ptr = DTX_HIST_SIZE_MIN_ONE;   
+                       ptr = DTX_HIST_SIZE_MIN_ONE;
                }
-               L_tmp = 0;                         
+               L_tmp = 0;
                for (j = 0; j < M; j++)
                {
                        tmp = sub(isf_old_tx[st->hist_ptr * M + j], isf_old_tx[ptr * M + j]);
                        L_tmp = L_mac(L_tmp, tmp, tmp);
                }
-               st->D[i - 1] = L_tmp;           
+               st->D[i - 1] = L_tmp;
 
                /* Update also the column sums. */
-               st->sumD[0] = L_add(st->sumD[0], st->D[i - 1]); 
-               st->sumD[i] = L_add(st->sumD[i], st->D[i - 1]); 
+               st->sumD[0] = L_add(st->sumD[0], st->D[i - 1]);
+               st->sumD[i] = L_add(st->sumD[i], st->D[i - 1]);
        }
 
        /* Find the minimum and maximum distances */
-       summax = st->sumD[0];                  
-       summin = st->sumD[0];                  
-       indices[0] = 0;                        
-       indices[2] = 0;                        
+       summax = st->sumD[0];
+       summin = st->sumD[0];
+       indices[0] = 0;
+       indices[2] = 0;
        for (i = 1; i < DTX_HIST_SIZE; i++)
        {
                if (L_sub(st->sumD[i], summax) > 0)
                {
-                       indices[0] = i;                
-                       summax = st->sumD[i];          
+                       indices[0] = i;
+                       summax = st->sumD[i];
                }
                if (L_sub(st->sumD[i], summin) < 0)
                {
-                       indices[2] = i;                
-                       summin = st->sumD[i];          
+                       indices[2] = i;
+                       summin = st->sumD[i];
                }
        }
 
        /* Find the second largest distance */
-       summax2nd = -2147483647L;              
-       indices[1] = -1;                       
+       summax2nd = -2147483647L;
+       indices[1] = -1;
        for (i = 0; i < DTX_HIST_SIZE; i++)
        {
                if ((L_sub(st->sumD[i], summax2nd) > 0) && (sub(i, indices[0]) != 0))
                {
-                       indices[1] = i;                
-                       summax2nd = st->sumD[i];       
+                       indices[1] = i;
+                       summax2nd = st->sumD[i];
                }
        }
 
        for (i = 0; i < 3; i++)
        {
-               indices[i] = sub(st->hist_ptr, indices[i]);     
+               indices[i] = sub(st->hist_ptr, indices[i]);
                if (indices[i] < 0)
                {
-                       indices[i] = add(indices[i], DTX_HIST_SIZE);       
+                       indices[i] = add(indices[i], DTX_HIST_SIZE);
                }
        }
 
@@ -549,7 +549,7 @@ static void find_frame_indices(
        L_tmp = L_mult(voround(summax), INV_MED_THRESH);
        if(L_tmp <= summin)
        {
-               indices[0] = -1; 
+               indices[0] = -1;
        }
        /* If second largest distance/MED_THRESH is smaller than     */
        /* minimum distance then the median ISF vector replacement is    */
@@ -558,7 +558,7 @@ static void find_frame_indices(
        L_tmp = L_mult(voround(summax2nd), INV_MED_THRESH);
        if(L_tmp <= summin)
        {
-               indices[1] = -1;                 
+               indices[1] = -1;
        }
        return;
 }
index f5112c5..d681f2e 100644 (file)
@@ -48,10 +48,10 @@ Word16 G_pitch(                            /* (o) Q14 : Gain of pitch lag satura
 
 #endif
 
-       g_coeff[0] = yy;                       
-       g_coeff[1] = exp_yy;                   
-       g_coeff[2] = xy;                       
-       g_coeff[3] = exp_xy;                   
+       g_coeff[0] = yy;
+       g_coeff[1] = exp_yy;
+       g_coeff[2] = xy;
+       g_coeff[3] = exp_xy;
 
        /* If (xy < 0) gain = 0 */
        if (xy < 0)
@@ -65,12 +65,12 @@ Word16 G_pitch(                            /* (o) Q14 : Gain of pitch lag satura
        i = exp_xy;
        i -= exp_yy;
 
-       gain = shl(gain, i);                   
+       gain = shl(gain, i);
 
        /* if (gain > 1.2) gain = 1.2  in Q14 */
        if(gain > 19661)
        {
-               gain = 19661;                      
+               gain = 19661;
        }
        return (gain);
 }
index 24158e3..800b3f9 100644 (file)
@@ -22,7 +22,7 @@
 *      case occurs                                                        *
 *      a resonance on LPC filter(lp_disp < 60Hz)                          *
 *      a good pitch prediction (lp_gp > 0.95)                             *
-*                                                                         *   
+*                                                                         *
 ***************************************************************************/
 #include "typedef.h"
 #include "basic_op.h"
@@ -38,8 +38,8 @@ void Init_gp_clip(
                Word16 mem[]                          /* (o) : memory of gain of pitch clipping algorithm */
                )
 {
-       mem[0] = DIST_ISF_MAX;                 
-       mem[1] = GAIN_PIT_MIN;                 
+       mem[0] = DIST_ISF_MAX;
+       mem[1] = GAIN_PIT_MIN;
 }
 
 
@@ -49,7 +49,7 @@ Word16 Gp_clip(
 {
        Word16 clip = 0;
        if ((mem[0] < DIST_ISF_THRES) && (mem[1] > GAIN_PIT_THRES))
-               clip = 1;                          
+               clip = 1;
 
        return (clip);
 }
@@ -70,7 +70,7 @@ void Gp_clip_test_isf(
                dist = vo_sub(isf[i], isf[i - 1]);
                if(dist < dist_min)
                {
-                       dist_min = dist;               
+                       dist_min = dist;
                }
        }
 
@@ -78,9 +78,9 @@ void Gp_clip_test_isf(
 
        if (dist > DIST_ISF_MAX)
        {
-               dist = DIST_ISF_MAX;               
+               dist = DIST_ISF_MAX;
        }
-       mem[0] = dist;                        
+       mem[0] = dist;
 
        return;
 }
@@ -100,9 +100,9 @@ void Gp_clip_test_gain_pit(
 
        if(gain < GAIN_PIT_MIN)
        {
-               gain = GAIN_PIT_MIN;              
+               gain = GAIN_PIT_MIN;
        }
-       mem[1] = gain;                         
+       mem[1] = gain;
        return;
 }
 
index fa66f1a..a6f9701 100644 (file)
@@ -68,8 +68,8 @@ void HP400_12k8(
        y2_lo = *mem++;
        y1_hi = *mem++;
        y1_lo = *mem++;
-       x0 = *mem++;   
-       x1 = *mem;   
+       x0 = *mem++;
+       x1 = *mem;
        num = (Word32)lg;
        do
        {
@@ -98,7 +98,7 @@ void HP400_12k8(
        *mem-- = y1_lo;
        *mem-- = y1_hi;
        *mem-- = y2_lo;
-       *mem   = y2_hi;  
+       *mem   = y2_hi;
        return;
 }
 
index 36dd1f1..c1c7b83 100644 (file)
@@ -70,7 +70,7 @@ void HP50_12k8(
        y2_lo = *mem++;
        y1_hi = *mem++;
        y1_lo = *mem++;
-       x0 = *mem++;   
+       x0 = *mem++;
        x1 = *mem;
        num = (Word32)lg;
        do
@@ -98,7 +98,7 @@ void HP50_12k8(
        *mem-- = y1_lo;
        *mem-- = y1_hi;
        *mem-- = y2_lo;
-       *mem-- = y2_hi;  
+       *mem-- = y2_hi;
 
        return;
 }
index 578633a..8e66eb0 100644 (file)
@@ -20,7 +20,7 @@
 *      Description:15th order band pass 6kHz to 7kHz FIR filter        *
 *       frequency: 4kHz   5kHz  5.5kHz  6kHz  6.5kHz  7kHz 7.5kHz 8kHz  *
 *      dB loss:  -60dB  -45dB  -13dB   -3dB   0dB    -3dB -13dB  -45dB *
-*                                                                      *                                                                 
+*                                                                      *
 ************************************************************************/
 
 #include "typedef.h"
@@ -63,7 +63,7 @@ void Filt_6k_7k(
        for (i = lg - 1; i >= 0; i--)
        {
                x[i + L_FIR - 1] = signal[i] >> 2;                         /* gain of filter = 4 */
-       }       
+       }
        for (i = 0; i < lg; i++)
        {
                L_tmp =  (x[i] + x[i+ 30]) * fir_6k_7k[0];
index 3510272..bc1ec49 100644 (file)
@@ -88,22 +88,22 @@ void Hp_wsp(
        Word16 y3_hi, y3_lo, y2_hi, y2_lo, y1_hi, y1_lo;
        Word32 i, L_tmp;
 
-       y3_hi = mem[0];                        
-       y3_lo = mem[1];                        
-       y2_hi = mem[2];                        
-       y2_lo = mem[3];                        
-       y1_hi = mem[4];                        
-       y1_lo = mem[5];                        
-       x0 = mem[6];                           
-       x1 = mem[7];                           
-       x2 = mem[8];                           
+       y3_hi = mem[0];
+       y3_lo = mem[1];
+       y2_hi = mem[2];
+       y2_lo = mem[3];
+       y1_hi = mem[4];
+       y1_lo = mem[5];
+       x0 = mem[6];
+       x1 = mem[7];
+       x2 = mem[8];
 
        for (i = 0; i < lg; i++)
        {
-               x3 = x2;                           
-               x2 = x1;                           
-               x1 = x0;                           
-               x0 = wsp[i];                       
+               x3 = x2;
+               x2 = x1;
+               x1 = x0;
+               x0 = wsp[i];
                /* y[i] = b[0]*x[i] + b[1]*x[i-1] + b140[2]*x[i-2] + b[3]*x[i-3]  */
                /* + a[1]*y[i-1] + a[2] * y[i-2]  + a[3]*y[i-3]  */
 
@@ -122,25 +122,25 @@ void Hp_wsp(
 
                L_tmp = L_tmp << 2;
 
-               y3_hi = y2_hi;                     
-               y3_lo = y2_lo;                     
-               y2_hi = y1_hi;                     
-               y2_lo = y1_lo; 
+               y3_hi = y2_hi;
+               y3_lo = y2_lo;
+               y2_hi = y1_hi;
+               y2_lo = y1_lo;
                y1_hi = L_tmp >> 16;
                y1_lo = (L_tmp & 0xffff) >>1;
 
-               hp_wsp[i] = (L_tmp + 0x4000)>>15;          
+               hp_wsp[i] = (L_tmp + 0x4000)>>15;
        }
 
-       mem[0] = y3_hi;                        
-       mem[1] = y3_lo;                        
-       mem[2] = y2_hi;                        
-       mem[3] = y2_lo;                        
-       mem[4] = y1_hi;                        
-       mem[5] = y1_lo;                        
-       mem[6] = x0;                           
-       mem[7] = x1;                           
-       mem[8] = x2;                           
+       mem[0] = y3_hi;
+       mem[1] = y3_lo;
+       mem[2] = y2_hi;
+       mem[3] = y2_lo;
+       mem[4] = y1_hi;
+       mem[5] = y1_lo;
+       mem[6] = x0;
+       mem[7] = x1;
+       mem[8] = x2;
 
        return;
 }
index 88285e8..1119bc7 100644 (file)
@@ -36,21 +36,21 @@ void Int_isp(
                Word16 Az[]                           /* output: LP coefficients in 4 subframes    */
            )
 {
-       Word32 i, k; 
+       Word32 i, k;
        Word16 fac_old, fac_new;
        Word16 isp[M];
        Word32 L_tmp;
 
        for (k = 0; k < 3; k++)
        {
-               fac_new = frac[k];                
+               fac_new = frac[k];
                fac_old = (32767 - fac_new) + 1;  /* 1.0 - fac_new */
 
                for (i = 0; i < M; i++)
                {
                        L_tmp = (isp_old[i] * fac_old)<<1;
                        L_tmp += (isp_new[i] * fac_new)<<1;
-                       isp[i] = (L_tmp + 0x8000)>>16;        
+                       isp[i] = (L_tmp + 0x8000)>>16;
                }
                Isp_Az(isp, Az, M, 0);
                Az += MP1;
index c235c5d..30a8bbd 100644 (file)
@@ -42,7 +42,7 @@ void Isp_Az(
                                                      /*     1   : adaptive scaling enabled  */
           )
 {
-       Word32 i, j; 
+       Word32 i, j;
        Word16 hi, lo;
        Word32 f1[NC16k + 1], f2[NC16k];
        Word16 nc;
@@ -92,14 +92,14 @@ void Isp_Az(
                lo = (f1[i] & 0xffff)>>1;
 
                t0 = Mpy_32_16(hi, lo, isp[m - 1]);
-               f1[i] = vo_L_add(f1[i], t0); 
+               f1[i] = vo_L_add(f1[i], t0);
 
                /* f2[i] *= (1.0 - isp[M-1]); */
 
                hi = f2[i] >> 16;
                lo = (f2[i] & 0xffff)>>1;
                t0 = Mpy_32_16(hi, lo, isp[m - 1]);
-               f2[i] = vo_L_sub(f2[i], t0); 
+               f2[i] = vo_L_sub(f2[i], t0);
        }
 
        /*-----------------------------------------------------*
@@ -108,20 +108,20 @@ void Isp_Az(
         *-----------------------------------------------------*/
 
        /* a[0] = 1.0; */
-       a[0] = 4096;  
-       tmax = 1;                            
+       a[0] = 4096;
+       tmax = 1;
        for (i = 1, j = m - 1; i < nc; i++, j--)
        {
                /* a[i] = 0.5*(f1[i] + f2[i]); */
 
                t0 = vo_L_add(f1[i], f2[i]);          /* f1[i] + f2[i]             */
-               tmax |= L_abs(t0);                 
+               tmax |= L_abs(t0);
                a[i] = (Word16)(vo_L_shr_r(t0, 12)); /* from Q23 to Q12 and * 0.5 */
 
                /* a[j] = 0.5*(f1[i] - f2[i]); */
 
                t0 = vo_L_sub(f1[i], f2[i]);          /* f1[i] - f2[i]             */
-               tmax |= L_abs(t0);                
+               tmax |= L_abs(t0);
                a[j] = (Word16)(vo_L_shr_r(t0, 12)); /* from Q23 to Q12 and * 0.5 */
        }
 
@@ -144,12 +144,12 @@ void Isp_Az(
                        t0 = vo_L_sub(f1[i], f2[i]);          /* f1[i] - f2[i]             */
                        a[j] = (Word16)(vo_L_shr_r(t0, q_sug)); /* from Q23 to Q12 and * 0.5 */
                }
-               a[0] = shr(a[0], q); 
+               a[0] = shr(a[0], q);
        }
        else
        {
-               q_sug = 12; 
-               q     = 0; 
+               q_sug = 12;
+               q     = 0;
        }
        /* a[NC] = 0.5*f1[NC]*(1.0 + isp[M-1]); */
        hi = f1[nc] >> 16;
@@ -196,7 +196,7 @@ static void Get_isp_pol(Word16 * isp, Word32 * f, Word16 n)
        isp += 2;                                /* Advance isp pointer        */
        for (i = 2; i <= n; i++)
        {
-               *f = f[-2];                        
+               *f = f[-2];
                for (j = 1; j < i; j++, f--)
                {
                        hi = f[-1]>>16;
@@ -228,7 +228,7 @@ static void Get_isp_pol_16kHz(Word16 * isp, Word32 * f, Word16 n)
 
        for (i = 2; i <= n; i++)
        {
-               *f = f[-2];                        
+               *f = f[-2];
                for (j = 1; j < i; j++, f--)
                {
                        VO_L_Extract(f[-1], &hi, &lo);
index fbe80eb..b4ba408 100644 (file)
@@ -51,9 +51,9 @@ void Isp_isf(
                /* acos(isp[i])= ind*128 + ( ( isp[i]-table[ind] ) * slope[ind] )/2048 */
                L_tmp = vo_L_mult(vo_sub(isp[i], table[ind]), slope[ind]);
                isf[i] = vo_round((L_tmp << 4));   /* (isp[i]-table[ind])*slope[ind])>>11 */
-               isf[i] = add1(isf[i], (ind << 7)); 
+               isf[i] = add1(isf[i], (ind << 7));
        }
-       isf[m - 1] = (isf[m - 1] >> 1);      
+       isf[m - 1] = (isf[m - 1] >> 1);
        return;
 }
 
@@ -69,7 +69,7 @@ void Isf_isp(
 
        for (i = 0; i < m - 1; i++)
        {
-               isp[i] = isf[i];                  
+               isp[i] = isf[i];
        }
        isp[m - 1] = (isf[m - 1] << 1);
 
@@ -80,7 +80,7 @@ void Isf_isp(
 
                /* isp[i] = table[ind]+ ((table[ind+1]-table[ind])*offset) / 128 */
                L_tmp = vo_L_mult(vo_sub(table[ind + 1], table[ind]), offset);
-               isp[i] = add1(table[ind], (Word16)((L_tmp >> 8)));   
+               isp[i] = add1(table[ind], (Word16)((L_tmp >> 8)));
        }
 
        return;
index a68845f..4b2f8ed 100644 (file)
@@ -122,8 +122,8 @@ void Levinson(
        Word16 *old_A, *old_rc;
 
        /* Last A(z) for case of unstable filter */
-       old_A = mem;                           
-       old_rc = mem + M;                      
+       old_A = mem;
+       old_rc = mem + M;
 
        /* K = A[1] = -R[1] / R[0] */
 
@@ -135,7 +135,7 @@ void Levinson(
 
        Kh = t0 >> 16;
        Kl = (t0 & 0xffff)>>1;
-       rc[0] = Kh;                            
+       rc[0] = Kh;
        t0 = (t0 >> 4);                        /* A[1] in Q27      */
 
        Ah[1] = t0 >> 16;
@@ -163,7 +163,7 @@ void Levinson(
        for (i = 2; i <= M; i++)
        {
                /* t0 = SUM ( R[j]*A[i-j] ,j=1,i-1 ) +  R[i] */
-               t0 = 0;                           
+               t0 = 0;
                for (j = 1; j < i; j++)
                        t0 = vo_L_add(t0, Mpy_32(Rh[j], Rl[j], Ah[i - j], Al[i - j]));
 
@@ -182,14 +182,14 @@ void Levinson(
                Kh = t2 >> 16;
                Kl = (t2 & 0xffff)>>1;
 
-               rc[i - 1] = Kh;                   
+               rc[i - 1] = Kh;
                /* Test for unstable filter. If unstable keep old A(z) */
                if (abs_s(Kh) > 32750)
                {
                        A[0] = 4096;                    /* Ai[0] not stored (always 1.0) */
                        for (j = 0; j < M; j++)
                        {
-                               A[j + 1] = old_A[j];       
+                               A[j + 1] = old_A[j];
                        }
                        rc[0] = old_rc[0];             /* only two rc coefficients are needed */
                        rc[1] = old_rc[1];
@@ -229,19 +229,19 @@ void Levinson(
                /* A[j] = An[j] */
                for (j = 1; j <= i; j++)
                {
-                       Ah[j] = Anh[j];               
-                       Al[j] = Anl[j];                
+                       Ah[j] = Anh[j];
+                       Al[j] = Anl[j];
                }
        }
        /* Truncate A[i] in Q27 to Q12 with rounding */
-       A[0] = 4096;                          
+       A[0] = 4096;
        for (i = 1; i <= M; i++)
        {
                t0 = (Ah[i] << 16) + (Al[i] << 1);
-               old_A[i - 1] = A[i] = vo_round((t0 << 1));      
+               old_A[i - 1] = A[i] = vo_round((t0 << 1));
        }
-       old_rc[0] = rc[0];                    
-       old_rc[1] = rc[1];                    
+       old_rc[0] = rc[0];
+       old_rc[1] = rc[1];
 
        return;
 }
index 646d6af..0f65541 100644 (file)
@@ -64,11 +64,11 @@ void Log2_norm (
        Word32 L_y;
        if (L_x <= (Word32) 0)
        {
-               *exponent = 0; 
-               *fraction = 0; 
+               *exponent = 0;
+               *fraction = 0;
                return;
        }
-       *exponent = (30 - exp); 
+       *exponent = (30 - exp);
        L_x = (L_x >> 9);
        i = extract_h (L_x);                /* Extract b25-b31 */
        L_x = (L_x >> 1);
@@ -78,7 +78,7 @@ void Log2_norm (
        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); 
+       *fraction = extract_h (L_y);
 
        return;
 }
index 29bd46b..1d5d076 100644 (file)
@@ -42,25 +42,25 @@ void LP_Decim2(
        Word32 i, j;
        Word32 L_tmp;
        /* copy initial filter states into buffer */
-       p_x = x_buf;                           
+       p_x = x_buf;
        for (i = 0; i < L_MEM; i++)
        {
-               *p_x++ = mem[i];  
-               mem[i] = x[l - L_MEM + i];  
+               *p_x++ = mem[i];
+               mem[i] = x[l - L_MEM + i];
        }
        for (i = 0; i < l; i++)
        {
-               *p_x++ = x[i];                     
+               *p_x++ = x[i];
        }
        for (i = 0, j = 0; i < l; i += 2, j++)
        {
-               p_x = &x_buf[i];  
+               p_x = &x_buf[i];
                L_tmp  = ((*p_x++) * h_fir[0]);
                L_tmp += ((*p_x++) * h_fir[1]);
                L_tmp += ((*p_x++) * h_fir[2]);
                L_tmp += ((*p_x++) * h_fir[3]);
                L_tmp += ((*p_x++) * h_fir[4]);
-               x[j] = (L_tmp + 0x4000)>>15;              
+               x[j] = (L_tmp + 0x4000)>>15;
        }
        return;
 }
index 1a7b513..7affbb2 100644 (file)
@@ -106,21 +106,21 @@ void Isqrt_n(
 
        if (*frac <= (Word32) 0)
        {
-               *exp = 0;                          
-               *frac = 0x7fffffffL;               
+               *exp = 0;
+               *frac = 0x7fffffffL;
                return;
        }
 
        if((*exp & 1) == 1)                       /*If exponant odd -> shift right */
                *frac = (*frac) >> 1;
 
-       *exp = negate((*exp - 1) >> 1);   
+       *exp = negate((*exp - 1) >> 1);
 
-       *frac = (*frac >> 9);               
+       *frac = (*frac >> 9);
        i = extract_h(*frac);                  /* Extract b25-b31 */
-       *frac = (*frac >> 1);              
+       *frac = (*frac >> 1);
        a = (Word16)(*frac);                  /* Extract b10-b24 */
-       a = (Word16) (a & (Word16) 0x7fff);    
+       a = (Word16) (a & (Word16) 0x7fff);
        i -= 16;
        *frac = L_deposit_h(table_isqrt[i]);   /* table[i] << 16         */
        tmp = vo_sub(table_isqrt[i], table_isqrt[i + 1]);      /* table[i] - table[i+1]) */
@@ -167,7 +167,7 @@ Word32 Pow2(                               /* (o) Q0  : result       (range: 0<=
        i = extract_h(L_x);                    /* Extract b10-b16 of fraction */
        L_x =L_x >> 1;
        a = (Word16)(L_x);                    /* Extract b0-b9   of fraction */
-       a = (Word16) (a & (Word16) 0x7fff); 
+       a = (Word16) (a & (Word16) 0x7fff);
 
        L_x = L_deposit_h(table_pow2[i]);      /* table[i] << 16        */
        tmp = vo_sub(table_pow2[i], table_pow2[i + 1]);        /* table[i] - table[i+1] */
index e58915a..a29baf3 100644 (file)
@@ -27,7 +27,7 @@
 /*****************************************************************************
 *
 * function name: mem_malloc
-* description:  malloc the alignments memory 
+* description:  malloc the alignments memory
 * returns:      the point of the memory
 *
 **********************************************************************************/
index 08f430f..b8174b9 100644 (file)
@@ -18,7 +18,7 @@
 *      File: p_med_ol.c                                                *
 *                                                                      *
 *      Description: Compute the open loop pitch lag                    *
-*                  output: open loop pitch lag                        *                            
+*                  output: open loop pitch lag                        *
 ************************************************************************/
 
 #include "typedef.h"
@@ -29,7 +29,7 @@
 #include "p_med_ol.tab"
 
 Word16 Pitch_med_ol(
-                  Word16      wsp[],        /*   i: signal used to compute the open loop pitch*/  
+                  Word16      wsp[],        /*   i: signal used to compute the open loop pitch*/
                                      /*      wsp[-pit_max] to wsp[-1] should be known */
                   Coder_State *st,          /* i/o: codec global structure */
                   Word16      L_frame       /*   i: length of frame to compute pitch */
@@ -52,8 +52,8 @@ Word16 Pitch_med_ol(
        ww = &corrweight[198];
        we = &corrweight[98 + L_max - L_0];
 
-       max = MIN_32;                          
-       Tm = 0;                                
+       max = MIN_32;
+       Tm = 0;
        for (i = L_max; i > L_min; i--)
        {
                /* Compute the correlation */
@@ -65,7 +65,7 @@ Word16 Pitch_med_ol(
                        R0 += vo_L_mult((*p1++), (*p2++));
                        R0 += vo_L_mult((*p1++), (*p2++));
                        R0 += vo_L_mult((*p1++), (*p2++));
-                       R0 += vo_L_mult((*p1++), (*p2++));     
+                       R0 += vo_L_mult((*p1++), (*p2++));
                }
                /* Weighting of the correlation function.   */
                hi = R0>>16;
@@ -90,13 +90,13 @@ Word16 Pitch_med_ol(
        }
 
        /* Hypass the wsp[] vector */
-       hp_wsp = old_hp_wsp + L_max;           
+       hp_wsp = old_hp_wsp + L_max;
        Hp_wsp(wsp, hp_wsp, L_frame, hp_wsp_mem);
 
        /* Compute normalize correlation at delay Tm */
-       R0 = 0;                                
-       R1 = 0;                               
-       R2 = 0; 
+       R0 = 0;
+       R1 = 0;
+       R2 = 0;
        p1 = hp_wsp;
        p2 = hp_wsp - Tm;
        for (j = 0; j < L_frame; j+=4)
@@ -174,57 +174,57 @@ Word16 median5(Word16 x[])
        Word16 x1, x2, x3, x4, x5;
        Word16 tmp;
 
-       x1 = x[-2];                            
-       x2 = x[-1];                            
-       x3 = x[0];                             
-       x4 = x[1];                             
-       x5 = x[2];                             
+       x1 = x[-2];
+       x2 = x[-1];
+       x3 = x[0];
+       x4 = x[1];
+       x5 = x[2];
 
        if (x2 < x1)
        {
                tmp = x1;
                x1 = x2;
-               x2 = tmp;                          
+               x2 = tmp;
        }
        if (x3 < x1)
        {
                tmp = x1;
                x1 = x3;
-               x3 = tmp;                          
+               x3 = tmp;
        }
        if (x4 < x1)
        {
                tmp = x1;
                x1 = x4;
-               x4 = tmp;                          
+               x4 = tmp;
        }
        if (x5 < x1)
        {
-               x5 = x1;                           
+               x5 = x1;
        }
        if (x3 < x2)
        {
                tmp = x2;
                x2 = x3;
-               x3 = tmp;                          
+               x3 = tmp;
        }
        if (x4 < x2)
        {
                tmp = x2;
                x2 = x4;
-               x4 = tmp;                          
+               x4 = tmp;
        }
        if (x5 < x2)
        {
-               x5 = x2;                           
+               x5 = x2;
        }
        if (x4 < x3)
        {
-               x3 = x4;                           
+               x3 = x4;
        }
        if (x5 < x3)
        {
-               x3 = x5;                           
+               x3 = x5;
        }
        return (x3);
 }
@@ -241,10 +241,10 @@ Word16 Med_olag(                           /* output : median of  5 previous ope
 
        for (i = 4; i > 0; i--)
        {
-               old_ol_lag[i] = old_ol_lag[i - 1]; 
+               old_ol_lag[i] = old_ol_lag[i - 1];
        }
 
-       old_ol_lag[0] = prev_ol_lag;           
+       old_ol_lag[0] = prev_ol_lag;
 
        i = median5(&old_ol_lag[2]);
 
index 41d7413..0d66c31 100644 (file)
@@ -90,7 +90,7 @@ Word16 Pitch_fr4(                          /* (o)     : pitch period.
     Norm_corr_asm(exc, xn, h, L_subfr, t_min, t_max, corr);
 #else
        Norm_Corr(exc, xn, h, L_subfr, t_min, t_max, corr);
-#endif 
+#endif
 
        /* Find integer pitch */
 
@@ -100,8 +100,8 @@ Word16 Pitch_fr4(                          /* (o)     : pitch period.
        {
                if (corr[i] >= max)
                {
-                       max = corr[i];                 
-                       t0 = i;                        
+                       max = corr[i];
+                       t0 = i;
                }
        }
        /* If first subframe and t0 >= t0_fr1, do not search fractionnal pitch */
@@ -182,7 +182,7 @@ static void Norm_Corr(
 #endif
 
        /* Compute rounded down 1/sqrt(energy of xn[]) */
-       L_tmp = 0; 
+       L_tmp = 0;
        for (i = 0; i < 64; i+=4)
        {
                L_tmp += (xn[i] * xn[i]);
@@ -202,7 +202,7 @@ static void Norm_Corr(
        for (t = t_min; t <= t_max; t++)
        {
                /* Compute correlation between xn[] and excf[] */
-               L_tmp  = 0;  
+               L_tmp  = 0;
                L_tmp1 = 0;
                for (i = 0; i < 64; i+=4)
                {
@@ -246,7 +246,7 @@ static void Norm_Corr(
                        L_tmp = L_tmp << L_tmp2;
                }
 
-               corr_norm[t] = vo_round(L_tmp);      
+               corr_norm[t] = vo_round(L_tmp);
                /* modify the filtered excitation excf[] for the next iteration */
 
                if(t != t_max)
@@ -310,10 +310,10 @@ static Word16 Interpol_4(                  /* (o)  : interpolated value  */
        L_sum += vo_mult32(x[1], (*ptr++));
        L_sum += vo_mult32(x[2], (*ptr++));
        L_sum += vo_mult32(x[3], (*ptr++));
-       L_sum += vo_mult32(x[4], (*ptr++));  
+       L_sum += vo_mult32(x[4], (*ptr++));
        L_sum += vo_mult32(x[5], (*ptr++));
        L_sum += vo_mult32(x[6], (*ptr++));
-       L_sum += vo_mult32(x[7], (*ptr++));   
+       L_sum += vo_mult32(x[7], (*ptr++));
 
        sum = extract_h(L_add(L_shl2(L_sum, 2), 0x8000));
        return (sum);
index b359651..8404cf9 100644 (file)
@@ -60,13 +60,13 @@ void Pred_lt4(
        Word16 *ptr, *ptr1;
        Word16 *ptr2;
 
-       x = exc - T0;   
+       x = exc - T0;
        frac = -frac;
        if (frac < 0)
        {
                frac += UP_SAMP;
                x--;
-       }   
+       }
        x -= 15;                                     /* x = L_INTERPOL2 - 1 */
        k = 3 - frac;                                /* k = UP_SAMP - 1 - frac */
 
index 5408617..c867bf7 100644 (file)
@@ -35,20 +35,20 @@ void Preemph(
        Word16 temp;
        Word32 i, L_tmp;
 
-       temp = x[lg - 1];                     
+       temp = x[lg - 1];
 
        for (i = lg - 1; i > 0; i--)
        {
                L_tmp = L_deposit_h(x[i]);
                L_tmp -= (x[i - 1] * mu)<<1;
-               x[i] = (L_tmp + 0x8000)>>16;               
+               x[i] = (L_tmp + 0x8000)>>16;
        }
 
        L_tmp = L_deposit_h(x[0]);
        L_tmp -= ((*mem) * mu)<<1;
-       x[0] = (L_tmp + 0x8000)>>16;                   
+       x[0] = (L_tmp + 0x8000)>>16;
 
-       *mem = temp;                           
+       *mem = temp;
 
        return;
 }
@@ -64,22 +64,22 @@ void Preemph2(
        Word16 temp;
        Word32 i, L_tmp;
 
-       temp = x[lg - 1];                     
+       temp = x[lg - 1];
 
        for (i = (Word16) (lg - 1); i > 0; i--)
        {
                L_tmp = L_deposit_h(x[i]);
                L_tmp -= (x[i - 1] * mu)<<1;
                L_tmp = (L_tmp << 1);
-               x[i] = (L_tmp + 0x8000)>>16;               
+               x[i] = (L_tmp + 0x8000)>>16;
        }
 
        L_tmp = L_deposit_h(x[0]);
        L_tmp -= ((*mem) * mu)<<1;
        L_tmp = (L_tmp << 1);
-       x[0] = (L_tmp + 0x8000)>>16;                   
+       x[0] = (L_tmp + 0x8000)>>16;
 
-       *mem = temp;                           
+       *mem = temp;
 
        return;
 }
index 7bc299f..e8ca043 100644 (file)
@@ -83,7 +83,7 @@ Word16 Q_gain2(                            /* Return index of quantization.
        Word32 i, j, L_tmp, dist_min;
        Word16 *past_qua_en, *t_qua_gain;
 
-       past_qua_en = mem;                     
+       past_qua_en = mem;
 
        /*-----------------------------------------------------------------*
         * - Find the initial quantization pitch index                     *
@@ -91,9 +91,9 @@ Word16 Q_gain2(                            /* Return index of quantization.
         *-----------------------------------------------------------------*/
        if (nbits == 6)
        {
-               t_qua_gain = t_qua_gain6b;         
-               min_ind = 0;                       
-               size = RANGE;                      
+               t_qua_gain = t_qua_gain6b;
+               min_ind = 0;
+               size = RANGE;
 
                if(gp_clip == 1)
                {
@@ -101,18 +101,18 @@ Word16 Q_gain2(                            /* Return index of quantization.
                }
        } else
        {
-               t_qua_gain = t_qua_gain7b;         
+               t_qua_gain = t_qua_gain7b;
 
                p = t_qua_gain7b + RANGE;            /* pt at 1/4th of table */
 
-               j = nb_qua_gain7b - RANGE;         
+               j = nb_qua_gain7b - RANGE;
 
                if (gp_clip == 1)
                {
                        j = j - 27;                /* limit gain pitch to 1.0 */
                }
-               min_ind = 0;                       
-               g_pitch = *gain_pit;               
+               min_ind = 0;
+               g_pitch = *gain_pit;
 
                for (i = 0; i < j; i++, p += 2)
                {
@@ -121,7 +121,7 @@ Word16 Q_gain2(                            /* Return index of quantization.
                                min_ind = min_ind + 1;
                        }
                }
-               size = RANGE;                      
+               size = RANGE;
        }
 
        /*------------------------------------------------------------------*
@@ -137,10 +137,10 @@ Word16 Q_gain2(                            /* Return index of quantization.
         * are in vector g_coeff[].                                         *
         *------------------------------------------------------------------*/
 
-       coeff[0] = g_coeff[0];                 
-       exp_coeff[0] = g_coeff[1];             
+       coeff[0] = g_coeff[0];
+       exp_coeff[0] = g_coeff[1];
        coeff[1] = negate(g_coeff[2]);                    /* coeff[1] = -2 xn y1 */
-       exp_coeff[1] = g_coeff[3] + 1;     
+       exp_coeff[1] = g_coeff[3] + 1;
 
        /* Compute scalar product <y2[],y2[]> */
 #ifdef ASM_OPT                   /* asm optimization branch */
@@ -242,20 +242,20 @@ Word16 Q_gain2(                            /* Return index of quantization.
         *-------------------------------------------------------------------------*/
 
        exp_code = (exp_gcode0 + 4);
-       exp_max[0] = (exp_coeff[0] - 13);    
-       exp_max[1] = (exp_coeff[1] - 14);    
-       exp_max[2] = (exp_coeff[2] + (15 + (exp_code << 1)));  
-       exp_max[3] = (exp_coeff[3] + exp_code);   
-       exp_max[4] = (exp_coeff[4] + (1 + exp_code));  
+       exp_max[0] = (exp_coeff[0] - 13);
+       exp_max[1] = (exp_coeff[1] - 14);
+       exp_max[2] = (exp_coeff[2] + (15 + (exp_code << 1)));
+       exp_max[3] = (exp_coeff[3] + exp_code);
+       exp_max[4] = (exp_coeff[4] + (1 + exp_code));
 
        /* Find maximum exponant */
 
-       e_max = exp_max[0];                   
+       e_max = exp_max[0];
        for (i = 1; i < 5; i++)
        {
                if(exp_max[i] > e_max)
                {
-                       e_max = exp_max[i];            
+                       e_max = exp_max[i];
                }
        }
 
@@ -271,14 +271,14 @@ Word16 Q_gain2(                            /* Return index of quantization.
        }
 
        /* Codebook search */
-       dist_min = MAX_32;                     
-       p = &t_qua_gain[min_ind << 1];      
+       dist_min = MAX_32;
+       p = &t_qua_gain[min_ind << 1];
 
-       index = 0;                             
+       index = 0;
        for (i = 0; i < size; i++)
        {
-               g_pitch = *p++;                    
-               g_code = *p++;                     
+               g_pitch = *p++;
+               g_code = *p++;
 
                g_code = ((g_code * gcode0) + 0x4000)>>15;
                g2_pitch = ((g_pitch * g_pitch) + 0x4000)>>15;
@@ -302,14 +302,14 @@ Word16 Q_gain2(                            /* Return index of quantization.
 
                if(L_tmp < dist_min)
                {
-                       dist_min = L_tmp;              
-                       index = i;                     
+                       dist_min = L_tmp;
+                       index = i;
                }
        }
 
        /* Read the quantized gains */
        index = index + min_ind;
-       p = &t_qua_gain[(index + index)];    
+       p = &t_qua_gain[(index + index)];
        *gain_pit = *p++;                       /* selected pitch gain in Q14 */
        g_code = *p++;                          /* selected code gain in Q11  */
 
@@ -333,10 +333,10 @@ Word16 Q_gain2(                            /* Return index of quantization.
 
        /* update table of past quantized energies */
 
-       past_qua_en[3] = past_qua_en[2];       
-       past_qua_en[2] = past_qua_en[1];       
-       past_qua_en[1] = past_qua_en[0];       
-       past_qua_en[0] = qua_ener;             
+       past_qua_en[3] = past_qua_en[2];
+       past_qua_en[2] = past_qua_en[1];
+       past_qua_en[1] = past_qua_en[0];
+       past_qua_en[0] = qua_ener;
 
        return (index);
 }
index 496ca80..80a0b73 100644 (file)
@@ -82,7 +82,7 @@ Word32 quant_2p_2N1(                       /* (o) return (2*N)+1 bits         */
                if (vo_sub((Word16) (pos1 & mask), (Word16) (pos2 & mask)) <= 0)
                {
                        /* index = ((pos2 & mask) << N) + (pos1 & mask); */
-                       index = L_deposit_l(add1((((Word16) (pos2 & mask)) << N), ((Word16) (pos1 & mask)))); 
+                       index = L_deposit_l(add1((((Word16) (pos2 & mask)) << N), ((Word16) (pos1 & mask))));
                        if ((pos2 & NB_POS) != 0)
                        {
                                tmp = (N << 1);           /* index += 1 << (2*N); */
@@ -91,7 +91,7 @@ Word32 quant_2p_2N1(                       /* (o) return (2*N)+1 bits         */
                } else
                {
                        /* index = ((pos1 & mask) << N) + (pos2 & mask);         */
-                       index = L_deposit_l(add1((((Word16) (pos1 & mask)) << N), ((Word16) (pos2 & mask)))); 
+                       index = L_deposit_l(add1((((Word16) (pos1 & mask)) << N), ((Word16) (pos2 & mask))));
                        if ((pos1 & NB_POS) != 0)
                        {
                                tmp = (N << 1);
@@ -120,14 +120,14 @@ Word32 quant_3p_3N1(                       /* (o) return (3*N)+1 bits         */
        {
                index = quant_2p_2N1(pos1, pos2, sub(N, 1));    /* index = quant_2p_2N1(pos1, pos2, (N-1)); */
                /* index += (pos1 & nb_pos) << N; */
-               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));  
+               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));
                /* index += quant_1p_N1(pos3, N) << (2*N); */
                index = vo_L_add(index, (quant_1p_N1(pos3, N)<<(N << 1)));
 
        } else if (((pos1 ^ pos3) & nb_pos) == 0)
        {
                index = quant_2p_2N1(pos1, pos3, sub(N, 1));    /* index = quant_2p_2N1(pos1, pos3, (N-1)); */
-               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N)); 
+               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));
                /* index += (pos1 & nb_pos) << N; */
                index = vo_L_add(index, (quant_1p_N1(pos2, N) << (N << 1)));
                /* index += quant_1p_N1(pos2, N) <<
@@ -136,7 +136,7 @@ Word32 quant_3p_3N1(                       /* (o) return (3*N)+1 bits         */
        {
                index = quant_2p_2N1(pos2, pos3, (N - 1));    /* index = quant_2p_2N1(pos2, pos3, (N-1)); */
                /* index += (pos2 & nb_pos) << N;                        */
-               index = vo_L_add(index, (L_deposit_l((Word16) (pos2 & nb_pos)) << N));  
+               index = vo_L_add(index, (L_deposit_l((Word16) (pos2 & nb_pos)) << N));
                /* index += quant_1p_N1(pos1, N) << (2*N);       */
                index = vo_L_add(index, (quant_1p_N1(pos1, N) << (N << 1)));
        }
@@ -162,21 +162,21 @@ Word32 quant_4p_4N1(                       /* (o) return (4*N)+1 bits         */
        {
                index = quant_2p_2N1(pos1, pos2, sub(N, 1));    /* index = quant_2p_2N1(pos1, pos2, (N-1)); */
                /* index += (pos1 & nb_pos) << N;        */
-               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));  
+               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));
                /* index += quant_2p_2N1(pos3, pos4, N) << (2*N); */
                index = vo_L_add(index, (quant_2p_2N1(pos3, pos4, N) << (N << 1)));
        } else if (((pos1 ^ pos3) & nb_pos) == 0)
        {
                index = quant_2p_2N1(pos1, pos3, (N - 1));
                /* index += (pos1 & nb_pos) << N; */
-               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));  
+               index = vo_L_add(index, (L_deposit_l((Word16) (pos1 & nb_pos)) << N));
                /* index += quant_2p_2N1(pos2, pos4, N) << (2*N); */
                index = vo_L_add(index, (quant_2p_2N1(pos2, pos4, N) << (N << 1)));
        } else
        {
                index = quant_2p_2N1(pos2, pos3, (N - 1));
                /* index += (pos2 & nb_pos) << N; */
-               index = vo_L_add(index, (L_deposit_l((Word16) (pos2 & nb_pos)) << N));  
+               index = vo_L_add(index, (L_deposit_l((Word16) (pos2 & nb_pos)) << N));
                /* index += quant_2p_2N1(pos1, pos4, N) << (2*N); */
                index = vo_L_add(index, (quant_2p_2N1(pos1, pos4, N) << (N << 1)));
        }
@@ -192,20 +192,20 @@ Word32 quant_4p_4N(                        /* (o) return 4*N bits             */
        Word16 posA[4], posB[4];
        Word32 i, j, k, index;
 
-       n_1 = (Word16) (N - 1);                
+       n_1 = (Word16) (N - 1);
        nb_pos = (1 << n_1);                  /* nb_pos = (1<<n_1); */
        mask = vo_sub((1 << N), 1);              /* mask = ((1<<N)-1); */
 
-       i = 0;                                 
-       j = 0;                                 
+       i = 0;
+       j = 0;
        for (k = 0; k < 4; k++)
        {
                if ((pos[k] & nb_pos) == 0)
                {
-                       posA[i++] = pos[k];            
+                       posA[i++] = pos[k];
                } else
                {
-                       posB[j++] = pos[k];            
+                       posB[j++] = pos[k];
                }
        }
 
@@ -258,19 +258,19 @@ Word32 quant_5p_5N(                        /* (o) return 5*N bits             */
        Word16 posA[5], posB[5];
        Word32 i, j, k, index, tmp2;
 
-       n_1 = (Word16) (N - 1);                
+       n_1 = (Word16) (N - 1);
        nb_pos = (1 << n_1);                  /* nb_pos = (1<<n_1); */
 
-       i = 0;                                 
-       j = 0;                                 
+       i = 0;
+       j = 0;
        for (k = 0; k < 5; k++)
        {
                if ((pos[k] & nb_pos) == 0)
                {
-                       posA[i++] = pos[k];            
+                       posA[i++] = pos[k];
                } else
                {
-                       posB[j++] = pos[k];            
+                       posB[j++] = pos[k];
                }
        }
 
@@ -333,19 +333,19 @@ Word32 quant_6p_6N_2(                      /* (o) return (6*N)-2 bits         */
        Word32 i, j, k, index;
 
        /* !!  N and n_1 are constants -> it doesn't need to be operated by Basic Operators */
-       n_1 = (Word16) (N - 1);                
+       n_1 = (Word16) (N - 1);
        nb_pos = (1 << n_1);                  /* nb_pos = (1<<n_1); */
 
-       i = 0;                                 
-       j = 0;                                 
+       i = 0;
+       j = 0;
        for (k = 0; k < 6; k++)
        {
                if ((pos[k] & nb_pos) == 0)
                {
-                       posA[i++] = pos[k];            
+                       posA[i++] = pos[k];
                } else
                {
-                       posB[j++] = pos[k];            
+                       posB[j++] = pos[k];
                }
        }
 
@@ -368,23 +368,23 @@ Word32 quant_6p_6N_2(                      /* (o) return (6*N)-2 bits         */
                        index = vo_L_add(index, quant_2p_2N1(posA[0], posA[1], n_1));      /* index += quant_2p_2N1(posA[0], posA[1], n_1); */
                        break;
                case 3:
-                       index = (quant_3p_3N1(posA[0], posA[1], posA[2], n_1) << (Word16) (3 * n_1 + 1));    
+                       index = (quant_3p_3N1(posA[0], posA[1], posA[2], n_1) << (Word16) (3 * n_1 + 1));
                                                          /* index = quant_3p_3N1(posA[0], posA[1], posA[2], n_1) << ((3*n_1)+1); */
-                       index =vo_L_add(index, quant_3p_3N1(posB[0], posB[1], posB[2], n_1));     
+                       index =vo_L_add(index, quant_3p_3N1(posB[0], posB[1], posB[2], n_1));
                                                         /* index += quant_3p_3N1(posB[0], posB[1], posB[2], n_1); */
                        break;
                case 4:
-                       i = 2;                            
+                       i = 2;
                        index = (quant_4p_4N(posA, n_1) << (Word16) (2 * n_1 + 1));  /* index = quant_4p_4N(posA, n_1) << ((2*n_1)+1); */
                        index = vo_L_add(index, quant_2p_2N1(posB[0], posB[1], n_1));      /* index += quant_2p_2N1(posB[0], posB[1], n_1); */
                        break;
                case 5:
-                       i = 1;                            
+                       i = 1;
                        index = (quant_5p_5N(posA, n_1) << N);       /* index = quant_5p_5N(posA, n_1) << N; */
                        index = vo_L_add(index, quant_1p_N1(posB[0], n_1));        /* index += quant_1p_N1(posB[0], n_1); */
                        break;
                case 6:
-                       i = 0;                             
+                       i = 0;
                        index = (quant_5p_5N(posA, n_1) << N);       /* index = quant_5p_5N(posA, n_1) << N; */
                        index = vo_L_add(index, quant_1p_N1(posA[5], n_1));        /* index += quant_1p_N1(posA[5], n_1); */
                        break;
index f6d53de..fc2f00d 100644 (file)
@@ -43,14 +43,14 @@ void Qisf_ns(
 
        for (i = 0; i < ORDER; i++)
        {
-               isf_q[i] = sub(isf1[i], mean_isf_noise[i]);     
+               isf_q[i] = sub(isf1[i], mean_isf_noise[i]);
        }
 
-       indice[0] = Sub_VQ(&isf_q[0], dico1_isf_noise, 2, SIZE_BK_NOISE1, &tmp);    
-       indice[1] = Sub_VQ(&isf_q[2], dico2_isf_noise, 3, SIZE_BK_NOISE2, &tmp);    
-       indice[2] = Sub_VQ(&isf_q[5], dico3_isf_noise, 3, SIZE_BK_NOISE3, &tmp);    
-       indice[3] = Sub_VQ(&isf_q[8], dico4_isf_noise, 4, SIZE_BK_NOISE4, &tmp);    
-       indice[4] = Sub_VQ(&isf_q[12], dico5_isf_noise, 4, SIZE_BK_NOISE5, &tmp);   
+       indice[0] = Sub_VQ(&isf_q[0], dico1_isf_noise, 2, SIZE_BK_NOISE1, &tmp);
+       indice[1] = Sub_VQ(&isf_q[2], dico2_isf_noise, 3, SIZE_BK_NOISE2, &tmp);
+       indice[2] = Sub_VQ(&isf_q[5], dico3_isf_noise, 3, SIZE_BK_NOISE3, &tmp);
+       indice[3] = Sub_VQ(&isf_q[8], dico4_isf_noise, 4, SIZE_BK_NOISE4, &tmp);
+       indice[4] = Sub_VQ(&isf_q[12], dico5_isf_noise, 4, SIZE_BK_NOISE5, &tmp);
 
        /* decoding the ISFs */
 
@@ -78,28 +78,28 @@ void Disf_ns(
 
        for (i = 0; i < 2; i++)
        {
-               isf_q[i] = dico1_isf_noise[indice[0] * 2 + i];  
+               isf_q[i] = dico1_isf_noise[indice[0] * 2 + i];
        }
        for (i = 0; i < 3; i++)
        {
-               isf_q[i + 2] = dico2_isf_noise[indice[1] * 3 + i];      
+               isf_q[i + 2] = dico2_isf_noise[indice[1] * 3 + i];
        }
        for (i = 0; i < 3; i++)
        {
-               isf_q[i + 5] = dico3_isf_noise[indice[2] * 3 + i];      
+               isf_q[i + 5] = dico3_isf_noise[indice[2] * 3 + i];
        }
        for (i = 0; i < 4; i++)
        {
-               isf_q[i + 8] = dico4_isf_noise[indice[3] * 4 + i];      
+               isf_q[i + 8] = dico4_isf_noise[indice[3] * 4 + i];
        }
        for (i = 0; i < 4; i++)
        {
-               isf_q[i + 12] = dico5_isf_noise[indice[4] * 4 + i];     
+               isf_q[i + 12] = dico5_isf_noise[indice[4] * 4 + i];
        }
 
        for (i = 0; i < ORDER; i++)
        {
-               isf_q[i] = add(isf_q[i], mean_isf_noise[i]);   
+               isf_q[i] = add(isf_q[i], mean_isf_noise[i]);
        }
 
        Reorder_isf(isf_q, ISF_GAP, ORDER);
index ac13a67..c711cd0 100644 (file)
@@ -70,30 +70,30 @@ void Qpisf_2s_46b(
        for (i = 0; i < ORDER; i++)
        {
                isf[i] = vo_sub(isf1[i], mean_isf[i]);
-               isf[i] = vo_sub(isf[i], vo_mult(MU, past_isfq[i])); 
+               isf[i] = vo_sub(isf[i], vo_mult(MU, past_isfq[i]));
        }
 
        VQ_stage1(&isf[0], dico1_isf, 9, SIZE_BK1, surv1, nb_surv);
 
-       distance = MAX_32;          
+       distance = MAX_32;
 
        for (k = 0; k < nb_surv; k++)
        {
                for (i = 0; i < 9; i++)
                {
-                       isf_stage2[i] = vo_sub(isf[i], dico1_isf[i + surv1[k] * 9]); 
+                       isf_stage2[i] = vo_sub(isf[i], dico1_isf[i + surv1[k] * 9]);
                }
-               tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico21_isf, 3, SIZE_BK21, &min_err); 
+               tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico21_isf, 3, SIZE_BK21, &min_err);
                temp = min_err;
-               tmp_ind[1] = Sub_VQ(&isf_stage2[3], dico22_isf, 3, SIZE_BK22, &min_err); 
+               tmp_ind[1] = Sub_VQ(&isf_stage2[3], dico22_isf, 3, SIZE_BK22, &min_err);
                temp = vo_L_add(temp, min_err);
-               tmp_ind[2] = Sub_VQ(&isf_stage2[6], dico23_isf, 3, SIZE_BK23, &min_err);  
+               tmp_ind[2] = Sub_VQ(&isf_stage2[6], dico23_isf, 3, SIZE_BK23, &min_err);
                temp = vo_L_add(temp, min_err);
 
                if(temp < distance)
                {
-                       distance = temp;               
-                       indice[0] = surv1[k];          
+                       distance = temp;
+                       indice[0] = surv1[k];
                        for (i = 0; i < 3; i++)
                        {
                                indice[i + 2] = tmp_ind[i];
@@ -104,24 +104,24 @@ void Qpisf_2s_46b(
 
        VQ_stage1(&isf[9], dico2_isf, 7, SIZE_BK2, surv1, nb_surv);
 
-       distance = MAX_32;                   
+       distance = MAX_32;
 
        for (k = 0; k < nb_surv; k++)
        {
                for (i = 0; i < 7; i++)
                {
-                       isf_stage2[i] = vo_sub(isf[9 + i], dico2_isf[i + surv1[k] * 7]);       
+                       isf_stage2[i] = vo_sub(isf[9 + i], dico2_isf[i + surv1[k] * 7]);
                }
 
                tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico24_isf, 3, SIZE_BK24, &min_err);
-               temp = min_err; 
+               temp = min_err;
                tmp_ind[1] = Sub_VQ(&isf_stage2[3], dico25_isf, 4, SIZE_BK25, &min_err);
                temp = vo_L_add(temp, min_err);
 
                if(temp < distance)
                {
-                       distance = temp;               
-                       indice[1] = surv1[k];          
+                       distance = temp;
+                       indice[1] = surv1[k];
                        for (i = 0; i < 2; i++)
                        {
                                indice[i + 5] = tmp_ind[i];
@@ -165,24 +165,24 @@ void Qpisf_2s_36b(
 
        VQ_stage1(&isf[0], dico1_isf, 9, SIZE_BK1, surv1, nb_surv);
 
-       distance = MAX_32;                  
+       distance = MAX_32;
 
        for (k = 0; k < nb_surv; k++)
        {
                for (i = 0; i < 9; i++)
                {
-                       isf_stage2[i] = vo_sub(isf[i], dico1_isf[i + surv1[k] * 9]); 
+                       isf_stage2[i] = vo_sub(isf[i], dico1_isf[i + surv1[k] * 9]);
                }
 
-               tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico21_isf_36b, 5, SIZE_BK21_36b, &min_err);        
-               temp = min_err;                  
-               tmp_ind[1] = Sub_VQ(&isf_stage2[5], dico22_isf_36b, 4, SIZE_BK22_36b, &min_err);        
+               tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico21_isf_36b, 5, SIZE_BK21_36b, &min_err);
+               temp = min_err;
+               tmp_ind[1] = Sub_VQ(&isf_stage2[5], dico22_isf_36b, 4, SIZE_BK22_36b, &min_err);
                temp = vo_L_add(temp, min_err);
 
                if(temp < distance)
                {
-                       distance = temp;               
-                       indice[0] = surv1[k];          
+                       distance = temp;
+                       indice[0] = surv1[k];
                        for (i = 0; i < 2; i++)
                        {
                                indice[i + 2] = tmp_ind[i];
@@ -191,23 +191,23 @@ void Qpisf_2s_36b(
        }
 
        VQ_stage1(&isf[9], dico2_isf, 7, SIZE_BK2, surv1, nb_surv);
-       distance = MAX_32;                    
+       distance = MAX_32;
 
        for (k = 0; k < nb_surv; k++)
        {
                for (i = 0; i < 7; i++)
                {
-                       isf_stage2[i] = vo_sub(isf[9 + i], dico2_isf[i + surv1[k] * 7]);     
+                       isf_stage2[i] = vo_sub(isf[9 + i], dico2_isf[i + surv1[k] * 7]);
                }
 
-               tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico23_isf_36b, 7, SIZE_BK23_36b, &min_err);  
-               temp = min_err;                  
+               tmp_ind[0] = Sub_VQ(&isf_stage2[0], dico23_isf_36b, 7, SIZE_BK23_36b, &min_err);
+               temp = min_err;
 
                if(temp < distance)
                {
-                       distance = temp;               
-                       indice[1] = surv1[k];          
-                       indice[4] = tmp_ind[0];        
+                       distance = temp;
+                       indice[1] = surv1[k];
+                       indice[4] = tmp_ind[0];
                }
        }
 
@@ -239,32 +239,32 @@ void Dpisf_2s_46b(
        {
                for (i = 0; i < 9; i++)
                {
-                       isf_q[i] = dico1_isf[indice[0] * 9 + i];    
+                       isf_q[i] = dico1_isf[indice[0] * 9 + i];
                }
                for (i = 0; i < 7; i++)
                {
-                       isf_q[i + 9] = dico2_isf[indice[1] * 7 + i];       
+                       isf_q[i + 9] = dico2_isf[indice[1] * 7 + i];
                }
 
                for (i = 0; i < 3; i++)
                {
-                       isf_q[i] = add1(isf_q[i], dico21_isf[indice[2] * 3 + i]);   
-                       isf_q[i + 3] = add1(isf_q[i + 3], dico22_isf[indice[3] * 3 + i]);  
-                       isf_q[i + 6] = add1(isf_q[i + 6], dico23_isf[indice[4] * 3 + i]); 
-                       isf_q[i + 9] = add1(isf_q[i + 9], dico24_isf[indice[5] * 3 + i]); 
+                       isf_q[i] = add1(isf_q[i], dico21_isf[indice[2] * 3 + i]);
+                       isf_q[i + 3] = add1(isf_q[i + 3], dico22_isf[indice[3] * 3 + i]);
+                       isf_q[i + 6] = add1(isf_q[i + 6], dico23_isf[indice[4] * 3 + i]);
+                       isf_q[i + 9] = add1(isf_q[i + 9], dico24_isf[indice[5] * 3 + i]);
                }
 
                for (i = 0; i < 4; i++)
                {
-                       isf_q[i + 12] = add1(isf_q[i + 12], dico25_isf[indice[6] * 4 + i]);  
+                       isf_q[i + 12] = add1(isf_q[i + 12], dico25_isf[indice[6] * 4 + i]);
                }
 
                for (i = 0; i < ORDER; i++)
                {
-                       tmp = isf_q[i];               
-                       isf_q[i] = add1(tmp, mean_isf[i]);  
+                       tmp = isf_q[i];
+                       isf_q[i] = add1(tmp, mean_isf[i]);
                        isf_q[i] = add1(isf_q[i], vo_mult(MU, past_isfq[i]));
-                       past_isfq[i] = tmp;  
+                       past_isfq[i] = tmp;
                }
 
                if (enc_dec)
@@ -273,9 +273,9 @@ void Dpisf_2s_46b(
                        {
                                for (j = (L_MEANBUF - 1); j > 0; j--)
                                {
-                                       isf_buf[j * M + i] = isf_buf[(j - 1) * M + i]; 
+                                       isf_buf[j * M + i] = isf_buf[(j - 1) * M + i];
                                }
-                               isf_buf[i] = isf_q[i]; 
+                               isf_buf[i] = isf_q[i];
                        }
                }
        } else
@@ -293,14 +293,14 @@ void Dpisf_2s_46b(
                /* use the past ISFs slightly shifted towards their mean */
                for (i = 0; i < ORDER; i++)
                {
-                       isf_q[i] = add1(vo_mult(ALPHA, isfold[i]), vo_mult(ONE_ALPHA, ref_isf[i])); 
+                       isf_q[i] = add1(vo_mult(ALPHA, isfold[i]), vo_mult(ONE_ALPHA, ref_isf[i]));
                }
 
                /* estimate past quantized residual to be used in next frame */
                for (i = 0; i < ORDER; i++)
                {
                        tmp = add1(ref_isf[i], vo_mult(past_isfq[i], MU));      /* predicted ISF */
-                       past_isfq[i] = vo_sub(isf_q[i], tmp); 
+                       past_isfq[i] = vo_sub(isf_q[i], tmp);
                        past_isfq[i] = (past_isfq[i] >> 1);        /* past_isfq[i] *= 0.5 */
                }
        }
@@ -332,32 +332,32 @@ void Dpisf_2s_36b(
        {
                for (i = 0; i < 9; i++)
                {
-                       isf_q[i] = dico1_isf[indice[0] * 9 + i];    
+                       isf_q[i] = dico1_isf[indice[0] * 9 + i];
                }
                for (i = 0; i < 7; i++)
                {
-                       isf_q[i + 9] = dico2_isf[indice[1] * 7 + i];       
+                       isf_q[i + 9] = dico2_isf[indice[1] * 7 + i];
                }
 
                for (i = 0; i < 5; i++)
                {
-                       isf_q[i] = add1(isf_q[i], dico21_isf_36b[indice[2] * 5 + i]);       
+                       isf_q[i] = add1(isf_q[i], dico21_isf_36b[indice[2] * 5 + i]);
                }
                for (i = 0; i < 4; i++)
                {
-                       isf_q[i + 5] = add1(isf_q[i + 5], dico22_isf_36b[indice[3] * 4 + i]);        
+                       isf_q[i + 5] = add1(isf_q[i + 5], dico22_isf_36b[indice[3] * 4 + i]);
                }
                for (i = 0; i < 7; i++)
                {
-                       isf_q[i + 9] = add1(isf_q[i + 9], dico23_isf_36b[indice[4] * 7 + i]);       
+                       isf_q[i + 9] = add1(isf_q[i + 9], dico23_isf_36b[indice[4] * 7 + i]);
                }
 
                for (i = 0; i < ORDER; i++)
                {
                        tmp = isf_q[i];
-                       isf_q[i] = add1(tmp, mean_isf[i]);   
-                       isf_q[i] = add1(isf_q[i], vo_mult(MU, past_isfq[i]));   
-                       past_isfq[i] = tmp;           
+                       isf_q[i] = add1(tmp, mean_isf[i]);
+                       isf_q[i] = add1(isf_q[i], vo_mult(MU, past_isfq[i]));
+                       past_isfq[i] = tmp;
                }
 
 
@@ -367,9 +367,9 @@ void Dpisf_2s_36b(
                        {
                                for (j = (L_MEANBUF - 1); j > 0; j--)
                                {
-                                       isf_buf[j * M + i] = isf_buf[(j - 1) * M + i];      
+                                       isf_buf[j * M + i] = isf_buf[(j - 1) * M + i];
                                }
-                               isf_buf[i] = isf_q[i];    
+                               isf_buf[i] = isf_q[i];
                        }
                }
        } else
@@ -381,20 +381,20 @@ void Dpisf_2s_36b(
                        {
                                L_tmp += (isf_buf[j * M + i] << 14);
                        }
-                       ref_isf[i] = vo_round(L_tmp);    
+                       ref_isf[i] = vo_round(L_tmp);
                }
 
                /* use the past ISFs slightly shifted towards their mean */
                for (i = 0; i < ORDER; i++)
                {
-                       isf_q[i] = add1(vo_mult(ALPHA, isfold[i]), vo_mult(ONE_ALPHA, ref_isf[i]));        
+                       isf_q[i] = add1(vo_mult(ALPHA, isfold[i]), vo_mult(ONE_ALPHA, ref_isf[i]));
                }
 
                /* estimate past quantized residual to be used in next frame */
                for (i = 0; i < ORDER; i++)
                {
                        tmp = add1(ref_isf[i], vo_mult(past_isfq[i], MU));      /* predicted ISF */
-                       past_isfq[i] = vo_sub(isf_q[i], tmp);  
+                       past_isfq[i] = vo_sub(isf_q[i], tmp);
                        past_isfq[i] = past_isfq[i] >> 1;         /* past_isfq[i] *= 0.5 */
                }
        }
@@ -424,15 +424,15 @@ void Reorder_isf(
                Word16 n                              /* (i)      : number of ISF                        */
                )
 {
-       Word32 i; 
+       Word32 i;
        Word16 isf_min;
 
-       isf_min = min_dist;                    
+       isf_min = min_dist;
        for (i = 0; i < n - 1; i++)
        {
                if(isf[i] < isf_min)
                {
-                       isf[i] = isf_min;              
+                       isf[i] = isf_min;
                }
                isf_min = (isf[i] + min_dist);
        }
@@ -452,13 +452,13 @@ Word16 Sub_VQ(                             /* output: return quantization index
        Word32 i, j, index;
        Word32 dist_min, dist;
 
-       dist_min = MAX_32;                     
-       p_dico = dico;                         
+       dist_min = MAX_32;
+       p_dico = dico;
 
-       index = 0;                             
+       index = 0;
        for (i = 0; i < dico_size; i++)
        {
-               dist = 0;  
+               dist = 0;
 
                for (j = 0; j < dim; j++)
                {
@@ -468,18 +468,18 @@ Word16 Sub_VQ(                             /* output: return quantization index
 
                if(dist < dist_min)
                {
-                       dist_min = dist;               
-                       index = i;                     
+                       dist_min = dist;
+                       index = i;
                }
        }
 
-       *distance = dist_min;                  
+       *distance = dist_min;
 
        /* Reading the selected vector */
-       p_dico = &dico[index * dim];           
+       p_dico = &dico[index * dim];
        for (j = 0; j < dim; j++)
        {
-               x[j] = *p_dico++;                  
+               x[j] = *p_dico++;
        }
 
        return index;
@@ -508,11 +508,11 @@ static void VQ_stage1(
        index[2] = 2;
        index[3] = 3;
 
-       p_dico = dico;                         
+       p_dico = dico;
 
        for (i = 0; i < dico_size; i++)
        {
-               dist = 0;                          
+               dist = 0;
                for (j = 0; j < dim; j++)
                {
                        temp = x[j] -  (*p_dico++);
@@ -525,11 +525,11 @@ static void VQ_stage1(
                        {
                                for (l = surv - 1; l > k; l--)
                                {
-                                       dist_min[l] = dist_min[l - 1];      
-                                       index[l] = index[l - 1];    
+                                       dist_min[l] = dist_min[l - 1];
+                                       index[l] = index[l - 1];
                                }
-                               dist_min[k] = dist;        
-                               index[k] = i;              
+                               dist_min[k] = dist;
+                               index[k] = i;
                                break;
                        }
                }
index 328aed2..b0c04b5 100644 (file)
@@ -56,7 +56,7 @@ void Residu(
                s += vo_mult32((*p1++), (*p2--));
                s += vo_mult32((*p1), (*p2));
 
-               s = L_shl2(s, 5); 
+               s = L_shl2(s, 5);
                y[i] = extract_h(L_add(s, 0x8000));
        }
 
index b203bec..418cc06 100644 (file)
@@ -36,8 +36,8 @@ void Scale_sig(
        {
                for (i = lg - 1 ; i >= 0; i--)
                {
-                       L_tmp = L_shl2(x[i], 16 + exp);  
-                       x[i] = extract_h(L_add(L_tmp, 0x8000));            
+                       L_tmp = L_shl2(x[i], 16 + exp);
+                       x[i] = extract_h(L_add(L_tmp, 0x8000));
                }
        }
        else
@@ -46,8 +46,8 @@ void Scale_sig(
                for (i = lg - 1; i >= 0; i--)
                {
                        L_tmp = x[i] << 16;
-                       L_tmp >>= exp; 
-                       x[i] = (L_tmp + 0x8000)>>16;            
+                       L_tmp >>= exp;
+                       x[i] = (L_tmp + 0x8000)>>16;
                }
        }
        return;
index bdf0d46..780f009 100644 (file)
@@ -29,11 +29,11 @@ void voAWB_InitFrameBuffer(FrameStream *stream)
        stream->frame_ptr_bk = stream->frame_ptr;
        stream->set_len = 0;
        stream->framebuffer_len = 0;
-       stream->frame_storelen = 0;     
+       stream->frame_storelen = 0;
 }
 
 void voAWB_UpdateFrameBuffer(
-               FrameStream *stream, 
+               FrameStream *stream,
                VO_MEM_OPERATOR *pMemOP
                )
 {
@@ -53,6 +53,6 @@ void voAWB_FlushFrameBuffer(FrameStream *stream)
        stream->frame_ptr_bk = stream->frame_ptr;
        stream->set_len = 0;
        stream->framebuffer_len = 0;
-       stream->frame_storelen = 0;     
+       stream->frame_storelen = 0;
 }
 
index 90fafb0..1bda05a 100644 (file)
@@ -39,11 +39,11 @@ void Syn_filt(
        Word16 y_buf[L_SUBFR16k + M16k];
        Word32 L_tmp;
        Word16 *yy, *p1, *p2;
-       yy = &y_buf[0];                        
+       yy = &y_buf[0];
        /* copy initial filter states into synthesis buffer */
        for (i = 0; i < 16; i++)
        {
-               *yy++ = mem[i];                    
+               *yy++ = mem[i];
        }
        a0 = (a[0] >> 1);                     /* input / 2 */
        /* Do the filtering. */
@@ -70,7 +70,7 @@ void Syn_filt(
                L_tmp -= vo_mult32((*p1), (*p2));
 
                L_tmp = L_shl2(L_tmp, 4);
-               y[i] = yy[i] = extract_h(L_add(L_tmp, 0x8000));  
+               y[i] = yy[i] = extract_h(L_add(L_tmp, 0x8000));
        }
        /* Update memory if required */
        if (update)
@@ -99,7 +99,7 @@ void Syn_filt_32(
        /* Do the filtering. */
        for (i = 0; i < lg; i++)
        {
-               L_tmp  = 0; 
+               L_tmp  = 0;
                L_tmp1 = 0;
                p1 = a;
                p2 = &sig_lo[i - 1];
@@ -138,18 +138,18 @@ void Syn_filt_32(
                L_tmp  -= vo_mult32((*p2--), (*p1));
                L_tmp1 -= vo_mult32((*p3--), (*p1++));
 
-               L_tmp = L_tmp >> 11;      
+               L_tmp = L_tmp >> 11;
                L_tmp += vo_L_mult(exc[i], a0);
 
                /* sig_hi = bit16 to bit31 of synthesis */
                L_tmp = L_tmp - (L_tmp1<<1);
 
                L_tmp = L_tmp >> 3;           /* ai in Q12 */
-               sig_hi[i] = extract_h(L_tmp);      
+               sig_hi[i] = extract_h(L_tmp);
 
                /* sig_lo = bit4 to bit15 of synthesis */
                L_tmp >>= 4;           /* 4 : sig_lo[i] >> 4 */
-               sig_lo[i] = (Word16)((L_tmp - (sig_hi[i] << 13)));  
+               sig_lo[i] = (Word16)((L_tmp - (sig_hi[i] << 13)));
        }
 
        return;
index eda2b1c..96779fd 100644 (file)
@@ -39,7 +39,7 @@ void Updt_tar(
        {
                L_tmp = x[i] << 15;
                L_tmp -= (y[i] * gain)<<1;
-               x2[i] = extract_h(L_shl2(L_tmp, 1)); 
+               x2[i] = extract_h(L_shl2(L_tmp, 1));
        }
 
        return;
index bac00dd..0f4d689 100644 (file)
@@ -84,11 +84,11 @@ void Reset_encoder(void *st, Word16 reset_all)
        Set_zero(cod_state->old_exc, PIT_MAX + L_INTERPOL);
        Set_zero(cod_state->mem_syn, M);
        Set_zero(cod_state->past_isfq, M);
-       cod_state->mem_w0 = 0;                 
-       cod_state->tilt_code = 0;              
-       cod_state->first_frame = 1;            
+       cod_state->mem_w0 = 0;
+       cod_state->tilt_code = 0;
+       cod_state->first_frame = 1;
        Init_gp_clip(cod_state->gp_clip);
-       cod_state->L_gc_thres = 0;             
+       cod_state->L_gc_thres = 0;
        if (reset_all != 0)
        {
                /* Static vectors to zero */
@@ -105,21 +105,21 @@ void Reset_encoder(void *st, Word16 reset_all)
                Copy(isp_init, cod_state->ispold, M);
                Copy(isp_init, cod_state->ispold_q, M);
                /* variable initialization */
-               cod_state->mem_preemph = 0;        
-               cod_state->mem_wsp = 0;            
-               cod_state->Q_old = 15;             
-               cod_state->Q_max[0] = 15;          
-               cod_state->Q_max[1] = 15;          
-               cod_state->old_wsp_max = 0;        
-               cod_state->old_wsp_shift = 0;      
+               cod_state->mem_preemph = 0;
+               cod_state->mem_wsp = 0;
+               cod_state->Q_old = 15;
+               cod_state->Q_max[0] = 15;
+               cod_state->Q_max[1] = 15;
+               cod_state->old_wsp_max = 0;
+               cod_state->old_wsp_shift = 0;
                /* pitch ol initialization */
-               cod_state->old_T0_med = 40;        
-               cod_state->ol_gain = 0;            
-               cod_state->ada_w = 0;              
-               cod_state->ol_wght_flg = 0;        
+               cod_state->old_T0_med = 40;
+               cod_state->ol_gain = 0;
+               cod_state->ada_w = 0;
+               cod_state->ol_wght_flg = 0;
                for (i = 0; i < 5; i++)
                {
-                       cod_state->old_ol_lag[i] = 40; 
+                       cod_state->old_ol_lag[i] = 40;
                }
                Set_zero(cod_state->old_hp_wsp, (L_FRAME / 2) / OPL_DECIM + (PIT_MAX / OPL_DECIM));
                Set_zero(cod_state->mem_syn_hf, M);
@@ -129,10 +129,10 @@ void Reset_encoder(void *st, Word16 reset_all)
                Init_Filt_6k_7k(cod_state->mem_hf);
                Init_HP400_12k8(cod_state->mem_hp400);
                Copy(isf_init, cod_state->isfold, M);
-               cod_state->mem_deemph = 0;         
-               cod_state->seed2 = 21845;          
+               cod_state->mem_deemph = 0;
+               cod_state->seed2 = 21845;
                Init_Filt_6k_7k(cod_state->mem_hf2);
-               cod_state->gain_alpha = 32767;     
+               cod_state->gain_alpha = 32767;
                cod_state->vad_hist = 0;
                wb_vad_reset(cod_state->vadSt);
                dtx_enc_reset(cod_state->dtx_encSt, isf_init);
@@ -212,8 +212,8 @@ void coder(
 
        st = (Coder_State *) spe_state;
 
-       *ser_size = nb_of_bits[*mode];         
-       codec_mode = *mode;                    
+       *ser_size = nb_of_bits[*mode];
+       codec_mode = *mode;
 
        /*--------------------------------------------------------------------------*
         *          Initialize pointers to speech vector.                           *
@@ -233,10 +233,10 @@ void coder(
 
        new_speech = old_speech + L_TOTAL - L_FRAME - L_FILT;         /* New speech     */
        speech = old_speech + L_TOTAL - L_FRAME - L_NEXT;             /* Present frame  */
-       p_window = old_speech + L_TOTAL - L_WINDOW; 
+       p_window = old_speech + L_TOTAL - L_WINDOW;
 
-       exc = old_exc + PIT_MAX + L_INTERPOL;  
-       wsp = old_wsp + (PIT_MAX / OPL_DECIM); 
+       exc = old_exc + PIT_MAX + L_INTERPOL;
+       wsp = old_wsp + (PIT_MAX / OPL_DECIM);
 
        /* copy coder memory state into working space */
        Copy(st->old_speech, old_speech, L_TOTAL - L_FRAME);
@@ -287,7 +287,7 @@ void coder(
                L_tmp = L_abs(L_tmp);
                if(L_tmp > L_max)
                {
-                       L_max = L_tmp;                 
+                       L_max = L_tmp;
                }
        }
 
@@ -297,50 +297,50 @@ void coder(
        tmp = extract_h(L_max);
        if (tmp == 0)
        {
-               shift = Q_MAX;                     
+               shift = Q_MAX;
        } else
        {
                shift = norm_s(tmp) - 1;
                if (shift < 0)
                {
-                       shift = 0;                     
+                       shift = 0;
                }
                if (shift > Q_MAX)
                {
-                       shift = Q_MAX;                 
+                       shift = Q_MAX;
                }
        }
-       Q_new = shift;                         
+       Q_new = shift;
        if (Q_new > st->Q_max[0])
        {
-               Q_new = st->Q_max[0];              
+               Q_new = st->Q_max[0];
        }
        if (Q_new > st->Q_max[1])
        {
-               Q_new = st->Q_max[1];              
+               Q_new = st->Q_max[1];
        }
        exp = (Q_new - st->Q_old);
-       st->Q_old = Q_new;                     
-       st->Q_max[1] = st->Q_max[0];           
-       st->Q_max[0] = shift;                  
+       st->Q_old = Q_new;
+       st->Q_max[1] = st->Q_max[0];
+       st->Q_max[0] = shift;
 
        /* preemphasis with scaling (L_FRAME+L_FILT) */
-       tmp = new_speech[L_FRAME - 1];         
+       tmp = new_speech[L_FRAME - 1];
 
        for (i = L_FRAME + L_FILT - 1; i > 0; i--)
        {
                L_tmp = new_speech[i] << 15;
                L_tmp -= (new_speech[i - 1] * mu)<<1;
                L_tmp = (L_tmp << Q_new);
-               new_speech[i] = vo_round(L_tmp);      
+               new_speech[i] = vo_round(L_tmp);
        }
 
        L_tmp = new_speech[0] << 15;
        L_tmp -= (st->mem_preemph * mu)<<1;
        L_tmp = (L_tmp << Q_new);
-       new_speech[0] = vo_round(L_tmp);          
+       new_speech[0] = vo_round(L_tmp);
 
-       st->mem_preemph = tmp;                 
+       st->mem_preemph = tmp;
 
        /* scale previous samples and memory */
 
@@ -364,13 +364,13 @@ void coder(
        Scale_sig(buf, L_FRAME, 1 - Q_new);
 #endif
 
-       vad_flag = wb_vad(st->vadSt, buf);          /* Voice Activity Detection */ 
+       vad_flag = wb_vad(st->vadSt, buf);          /* Voice Activity Detection */
        if (vad_flag == 0)
        {
-               st->vad_hist = (st->vad_hist + 1);        
+               st->vad_hist = (st->vad_hist + 1);
        } else
        {
-               st->vad_hist = 0;             
+               st->vad_hist = 0;
        }
 
        /* DTX processing */
@@ -378,7 +378,7 @@ void coder(
        {
                /* Note that mode may change here */
                tx_dtx_handler(st->dtx_encSt, vad_flag, mode);
-               *ser_size = nb_of_bits[*mode]; 
+               *ser_size = nb_of_bits[*mode];
        }
 
        if(*mode != MRDTX)
@@ -423,7 +423,7 @@ void coder(
         * - scale wsp[] to avoid overflow in pitch estimation                  *
         * - Find open loop pitch lag for whole speech frame                    *
         *----------------------------------------------------------------------*/
-       p_A = A;                             
+       p_A = A;
        for (i_subfr = 0; i_subfr < L_FRAME; i_subfr += L_SUBFR)
        {
                /* Weighting of LPC coefficients */
@@ -435,27 +435,27 @@ void coder(
                Residu(Ap, &speech[i_subfr], &wsp[i_subfr], L_SUBFR);
 #endif
 
-               p_A += (M + 1);                    
+               p_A += (M + 1);
        }
 
        Deemph2(wsp, TILT_FAC, L_FRAME, &(st->mem_wsp));
 
        /* find maximum value on wsp[] for 12 bits scaling */
-       max = 0;                              
+       max = 0;
        for (i = 0; i < L_FRAME; i++)
        {
                tmp = abs_s(wsp[i]);
                if(tmp > max)
                {
-                       max = tmp;                     
+                       max = tmp;
                }
        }
-       tmp = st->old_wsp_max;                 
+       tmp = st->old_wsp_max;
        if(max > tmp)
        {
                tmp = max;                         /* tmp = max(wsp_max, old_wsp_max) */
        }
-       st->old_wsp_max = max;                
+       st->old_wsp_max = max;
 
        shift = norm_s(tmp) - 3;
        if (shift > 0)
@@ -494,8 +494,8 @@ void coder(
 
        if(st->ol_gain > 19661)       /* 0.6 in Q15 */
        {
-               st->old_T0_med = Med_olag(T_op, st->old_ol_lag);       
-               st->ada_w = 32767;                 
+               st->old_T0_med = Med_olag(T_op, st->old_ol_lag);
+               st->ada_w = 32767;
        } else
        {
                st->ada_w = vo_mult(st->ada_w, 29491);
@@ -507,7 +507,7 @@ void coder(
                st->ol_wght_flg = 1;
 
        wb_vad_tone_detection(st->vadSt, st->ol_gain);
-       T_op *= OPL_DECIM;                     
+       T_op *= OPL_DECIM;
 
        if(*ser_size != NBBITS_7k)
        {
@@ -516,11 +516,11 @@ void coder(
 
                if(st->ol_gain > 19661)   /* 0.6 in Q15 */
                {
-                       st->old_T0_med = Med_olag(T_op2, st->old_ol_lag);  
-                       st->ada_w = 32767;             
+                       st->old_T0_med = Med_olag(T_op2, st->old_ol_lag);
+                       st->ada_w = 32767;
                } else
                {
-                       st->ada_w = mult(st->ada_w, 29491); 
+                       st->ada_w = mult(st->ada_w, 29491);
                }
 
                if(st->ada_w < 26214)
@@ -530,11 +530,11 @@ void coder(
 
                wb_vad_tone_detection(st->vadSt, st->ol_gain);
 
-               T_op2 *= OPL_DECIM;                
+               T_op2 *= OPL_DECIM;
 
        } else
        {
-               T_op2 = T_op;                      
+               T_op2 = T_op;
        }
        /*----------------------------------------------------------------------*
         *                              DTX-CNG                                 *
@@ -550,10 +550,10 @@ void coder(
 
                for (i = 0; i < L_FRAME; i++)
                {
-                       exc2[i] = shr(exc[i], Q_new);  
+                       exc2[i] = shr(exc[i], Q_new);
                }
 
-               L_tmp = 0;                         
+               L_tmp = 0;
                for (i = 0; i < L_FRAME; i++)
                        L_tmp += (exc2[i] * exc2[i])<<1;
 
@@ -617,23 +617,23 @@ void coder(
 
        /* Check stability on isf : distance between old isf and current isf */
 
-       L_tmp = 0;                           
+       L_tmp = 0;
        for (i = 0; i < M - 1; i++)
        {
                tmp = vo_sub(isf[i], st->isfold[i]);
                L_tmp += (tmp * tmp)<<1;
        }
 
-       tmp = extract_h(L_shl2(L_tmp, 8)); 
+       tmp = extract_h(L_shl2(L_tmp, 8));
 
        tmp = vo_mult(tmp, 26214);                /* tmp = L_tmp*0.8/256 */
        tmp = vo_sub(20480, tmp);                 /* 1.25 - tmp (in Q14) */
 
-       stab_fac = shl(tmp, 1); 
+       stab_fac = shl(tmp, 1);
 
        if (stab_fac < 0)
        {
-               stab_fac = 0;                      
+               stab_fac = 0;
        }
        Copy(isf, st->isfold, M);
 
@@ -642,7 +642,7 @@ void coder(
 
        if (st->first_frame != 0)
        {
-               st->first_frame = 0;              
+               st->first_frame = 0;
                Copy(ispnew_q, st->ispold_q, M);
        }
        /* Find the interpolated ISPs and convert to a[] for all subframes */
@@ -660,7 +660,7 @@ void coder(
 #else
                Residu(p_Aq, &speech[i_subfr], &exc[i_subfr], L_SUBFR);
 #endif
-               p_Aq += (M + 1);                   
+               p_Aq += (M + 1);
        }
 
        /* Buffer isf's and energy for dtx on non-speech frame */
@@ -670,7 +670,7 @@ void coder(
                {
                        exc2[i] = exc[i] >> Q_new;
                }
-               L_tmp = 0;                         
+               L_tmp = 0;
                for (i = 0; i < L_FRAME; i++)
                        L_tmp += (exc2[i] * exc2[i])<<1;
                L_tmp >>= 1;
@@ -682,14 +682,14 @@ void coder(
        T0_min = T_op - 8;
        if (T0_min < PIT_MIN)
        {
-               T0_min = PIT_MIN;                  
+               T0_min = PIT_MIN;
        }
        T0_max = (T0_min + 15);
 
        if(T0_max > PIT_MAX)
        {
-               T0_max = PIT_MAX;                  
-               T0_min = T0_max - 15;          
+               T0_max = PIT_MAX;
+               T0_min = T0_max - 15;
        }
        /*------------------------------------------------------------------------*
         *          Loop for every subframe in the analysis frame                 *
@@ -711,25 +711,25 @@ void coder(
         *     - update states of weighting filter                                *
         *     - find excitation and synthesis speech                             *
         *------------------------------------------------------------------------*/
-       p_A = A;                               
-       p_Aq = Aq;                             
+       p_A = A;
+       p_Aq = Aq;
        for (i_subfr = 0; i_subfr < L_FRAME; i_subfr += L_SUBFR)
        {
-               pit_flag = i_subfr;                
+               pit_flag = i_subfr;
                if ((i_subfr == 2 * L_SUBFR) && (*ser_size > NBBITS_7k))
                {
-                       pit_flag = 0;                 
+                       pit_flag = 0;
                        /* range for closed loop pitch search in 3rd subframe */
                        T0_min = (T_op2 - 8);
 
                        if (T0_min < PIT_MIN)
                        {
-                               T0_min = PIT_MIN;          
+                               T0_min = PIT_MIN;
                        }
                        T0_max = (T0_min + 15);
                        if (T0_max > PIT_MAX)
                        {
-                               T0_max = PIT_MAX;         
+                               T0_max = PIT_MAX;
                                T0_min = (T0_max - 15);
                        }
                }
@@ -776,7 +776,7 @@ void coder(
                /* first half: xn[] --> cn[] */
                Set_zero(code, M);
                Copy(xn, code + M, L_SUBFR / 2);
-               tmp = 0;                          
+               tmp = 0;
                Preemph2(code + M, TILT_FAC, L_SUBFR / 2, &tmp);
                Weight_a(p_A, Ap, GAMMA1, M);
                Syn_filt(Ap,code + M, code + M, L_SUBFR / 2, code, 0);
@@ -791,7 +791,7 @@ void coder(
                Copy(&exc[i_subfr + (L_SUBFR / 2)], cn + (L_SUBFR / 2), L_SUBFR / 2);
 
                /*---------------------------------------------------------------*
-                * Compute impulse response, h1[], of weighted synthesis filter  * 
+                * Compute impulse response, h1[], of weighted synthesis filter  *
                 *---------------------------------------------------------------*/
 
                Set_zero(error, M + L_SUBFR);
@@ -814,7 +814,7 @@ void coder(
                        *vo_p3++ = *vo_p0++ = vo_round((L_tmp <<4));
                }
                /* deemph without division by 2 -> Q14 to Q15 */
-               tmp = 0; 
+               tmp = 0;
                Deemph2(h1, TILT_FAC, L_SUBFR, &tmp);   /* h1 in Q14 */
 
                /* h2 in Q12 for codebook search */
@@ -917,7 +917,7 @@ void coder(
                                T0_min = (T0 - 8);
                                if (T0_min < PIT_MIN)
                                {
-                                       T0_min = PIT_MIN; 
+                                       T0_min = PIT_MIN;
                                }
                                T0_max = T0_min + 15;
 
@@ -964,18 +964,18 @@ void coder(
                        Convolve_asm(&exc[i_subfr], h1, y1, L_SUBFR);
 #else
                        Convolve(&exc[i_subfr], h1, y1, L_SUBFR);
-#endif 
+#endif
                        gain1 = G_pitch(xn, y1, g_coeff, L_SUBFR);
                        /* clip gain if necessary to avoid problem at decoder */
                        if ((clip_gain != 0) && (gain1 > GP_CLIP))
                        {
-                               gain1 = GP_CLIP; 
+                               gain1 = GP_CLIP;
                        }
                        /* find energy of new target xn2[] */
                        Updt_tar(xn, dn, y1, gain1, L_SUBFR);       /* dn used temporary */
                } else
                {
-                       gain1 = 0; 
+                       gain1 = 0;
                }
                /*-----------------------------------------------------------------*
                 * - find pitch excitation filtered by 1st order LP filter.        *
@@ -1002,7 +1002,7 @@ void coder(
                Convolve_asm(code, h1, y2, L_SUBFR);
 #else
                Convolve(code, h1, y2, L_SUBFR);
-#endif 
+#endif
 
                gain2 = G_pitch(xn, y2, g_coeff2, L_SUBFR);
 
@@ -1016,7 +1016,7 @@ void coder(
                /*-----------------------------------------------------------------*
                 * use the best prediction (minimise quadratic error).             *
                 *-----------------------------------------------------------------*/
-               select = 0; 
+               select = 0;
                if(*ser_size > NBBITS_9k)
                {
                        L_tmp = 0L;
@@ -1036,7 +1036,7 @@ void coder(
 
                        if (L_tmp <= 0)
                        {
-                               select = 1; 
+                               select = 1;
                        }
                        Parm_serial(select, 1, &prms);
                }
@@ -1154,7 +1154,7 @@ void coder(
                /*-------------------------------------------------------*
                 * - Add the fixed-gain pitch contribution to code[].    *
                 *-------------------------------------------------------*/
-               tmp = 0; 
+               tmp = 0;
                Preemph(code, st->tilt_code, L_SUBFR, &tmp);
                Pit_shrp(code, T0, PIT_SHARP, L_SUBFR);
                /*----------------------------------------------------------*
@@ -1175,7 +1175,7 @@ void coder(
                /* test quantized gain of pitch for pitch clipping algorithm */
                Gp_clip_test_gain_pit(gain_pit, st->gp_clip);
 
-               L_tmp = L_shl(L_gain_code, Q_new); 
+               L_tmp = L_shl(L_gain_code, Q_new);
                gain_code = extract_h(L_add(L_tmp, 0x8000));
 
                /*----------------------------------------------------------*
@@ -1218,7 +1218,7 @@ void coder(
                        L_tmp = (gain_code * code[i])<<1;
                        L_tmp = (L_tmp << 5);
                        L_tmp += (exc[i + i_subfr] * gain_pit)<<1;
-                       L_tmp = L_shl2(L_tmp, 1); 
+                       L_tmp = L_shl2(L_tmp, 1);
                        exc[i + i_subfr] = extract_h(L_add(L_tmp, 0x8000));
                }
 
@@ -1242,7 +1242,7 @@ void coder(
                         *------------------------------------------------------------*/
                        tmp = (16384 - (voice_fac >> 1));        /* 1=unvoiced, 0=voiced */
                        fac = vo_mult(stab_fac, tmp);
-                       L_tmp = L_gain_code; 
+                       L_tmp = L_gain_code;
                        if(L_tmp < st->L_gc_thres)
                        {
                                L_tmp = vo_L_add(L_tmp, Mpy_32_16(gain_code, gain_code_lo, 6226));
@@ -1276,19 +1276,19 @@ void coder(
 
                        L_tmp = L_deposit_h(code[0]);
                        L_tmp -= (code[1] * tmp)<<1;
-                       code2[0] = vo_round(L_tmp); 
+                       code2[0] = vo_round(L_tmp);
 
                        for (i = 1; i < L_SUBFR - 1; i++)
                        {
                                L_tmp = L_deposit_h(code[i]);
                                L_tmp -= (code[i + 1] * tmp)<<1;
                                L_tmp -= (code[i - 1] * tmp)<<1;
-                               code2[i] = vo_round(L_tmp); 
+                               code2[i] = vo_round(L_tmp);
                        }
 
                        L_tmp = L_deposit_h(code[L_SUBFR - 1]);
                        L_tmp -= (code[L_SUBFR - 2] * tmp)<<1;
-                       code2[L_SUBFR - 1] = vo_round(L_tmp); 
+                       code2[L_SUBFR - 1] = vo_round(L_tmp);
 
                        /* build excitation */
                        gain_code = vo_round(L_shl(L_gain_code, Q_new));
@@ -1381,7 +1381,7 @@ static Word16 synthesis(
        /* Original speech signal as reference for high band gain quantisation */
        for (i = 0; i < L_SUBFR16k; i++)
        {
-               HF_SP[i] = synth16k[i]; 
+               HF_SP[i] = synth16k[i];
        }
 
        /*------------------------------------------------------*
@@ -1454,7 +1454,7 @@ static Word16 synthesis(
                fac = div_s(tmp, ener);
        } else
        {
-               fac = 0; 
+               fac = 0;
        }
 
        /* modify energy of white noise according to synthesis tilt */
@@ -1550,7 +1550,7 @@ static Word16 synthesis(
 
 /*************************************************
 *
-* Breif: Codec main function 
+* Breif: Codec main function
 *
 **************************************************/
 
@@ -1622,7 +1622,7 @@ VO_U32 VO_API voAMRWB_Init(VO_HANDLE * phCodec,                   /* o: the audi
        else
        {
                pMemOP = (VO_MEM_OPERATOR *)pUserData->memData;
-       } 
+       }
        /*-------------------------------------------------------------------------*
         * Memory allocation for coder state.                                      *
         *-------------------------------------------------------------------------*/
@@ -1631,8 +1631,8 @@ VO_U32 VO_API voAMRWB_Init(VO_HANDLE * phCodec,                   /* o: the audi
                return VO_ERR_OUTOF_MEMORY;
        }
 
-       st->vadSt = NULL;                      
-       st->dtx_encSt = NULL;                  
+       st->vadSt = NULL;
+       st->dtx_encSt = NULL;
        st->sid_update_counter = 3;
        st->sid_handover_debt = 0;
        st->prev_ft = TX_SPEECH;
@@ -1764,7 +1764,7 @@ VO_U32 VO_API voAMRWB_GetOutputData(
        {
                pAudioFormat->Format.Channels = 1;
                pAudioFormat->Format.SampleRate = 8000;
-               pAudioFormat->Format.SampleBits = 16;   
+               pAudioFormat->Format.SampleBits = 16;
                pAudioFormat->InputUsed = stream->used_len;
        }
        return VO_ERR_NONE;
@@ -1792,14 +1792,14 @@ VO_U32 VO_API voAMRWB_SetParam(
                /* setting AMR-WB frame type*/
                case VO_PID_AMRWB_FRAMETYPE:
                        if(*lValue < VOAMRWB_DEFAULT || *lValue > VOAMRWB_RFC3267)
-                               return VO_ERR_WRONG_PARAM_ID; 
+                               return VO_ERR_WRONG_PARAM_ID;
                        gData->frameType = *lValue;
                        break;
                /* setting AMR-WB bit rate */
                case VO_PID_AMRWB_MODE:
                        {
                                if(*lValue < VOAMRWB_MD66 || *lValue > VOAMRWB_MD2385)
-                                       return VO_ERR_WRONG_PARAM_ID; 
+                                       return VO_ERR_WRONG_PARAM_ID;
                                gData->mode = *lValue;
                        }
                        break;
@@ -1839,7 +1839,7 @@ VO_U32 VO_API voAMRWB_GetParam(
        int    temp;
        Coder_State* gData = (Coder_State*)hCodec;
 
-       if (gData==NULL) 
+       if (gData==NULL)
                return VO_ERR_INVALID_ARG;
        switch(uParamID)
        {
index 17e4e55..d890044 100644 (file)
@@ -18,7 +18,7 @@
 *   File: voicefac.c                                                   *
 *                                                                      *
 *   Description: Find the voicing factors (1 = voice to -1 = unvoiced) *
-*                                                                      *                                                 
+*                                                                      *
 ************************************************************************/
 
 #include "typedef.h"
index 7e1d673..13dd2aa 100644 (file)
@@ -52,7 +52,7 @@ static Word16 ilog2(                       /* return: output value of the log2 *
 
        if (mant <= 0)
        {
-               mant = 1;                         
+               mant = 1;
        }
        ex = norm_s(mant);
        mant = mant << ex;
@@ -88,14 +88,14 @@ static void filter5(
 
        temp0 = vo_sub(*in0, vo_mult(COEFF5_1, data[0]));
        temp1 = add1(data[0], vo_mult(COEFF5_1, temp0));
-       data[0] = temp0;                      
+       data[0] = temp0;
 
        temp0 = vo_sub(*in1, vo_mult(COEFF5_2, data[1]));
        temp2 = add1(data[1], vo_mult(COEFF5_2, temp0));
-       data[1] = temp0;                       
+       data[1] = temp0;
 
-       *in0 = extract_h((vo_L_add(temp1, temp2) << 15));   
-       *in1 = extract_h((vo_L_sub(temp1, temp2) << 15));  
+       *in0 = extract_h((vo_L_add(temp1, temp2) << 15));
+       *in1 = extract_h((vo_L_sub(temp1, temp2) << 15));
 }
 
 /******************************************************************************
@@ -116,10 +116,10 @@ static void filter3(
 
        temp1 = vo_sub(*in1, vo_mult(COEFF3, *data));
        temp2 = add1(*data, vo_mult(COEFF3, temp1));
-       *data = temp1;                        
+       *data = temp1;
 
-       *in1 = extract_h((vo_L_sub(*in0, temp2) << 15));   
-       *in0 = extract_h((vo_L_add(*in0, temp2) << 15));   
+       *in1 = extract_h((vo_L_sub(*in0, temp2) << 15));
+       *in0 = extract_h((vo_L_add(*in0, temp2) << 15));
 }
 
 /******************************************************************************
@@ -149,14 +149,14 @@ static Word16 level_calculation(                      /* return: signal level */
        Word32 i, l_temp1, l_temp2;
        Word16 level;
 
-       l_temp1 = 0L;                          
+       l_temp1 = 0L;
        for (i = count1; i < count2; i++)
        {
                l_temp1 += (abs_s(data[ind_m * i + ind_a])<<1);
        }
 
        l_temp2 = vo_L_add(l_temp1, L_shl(*sub_level, 16 - scale));
-       *sub_level = extract_h(L_shl(l_temp1, scale));      
+       *sub_level = extract_h(L_shl(l_temp1, scale));
 
        for (i = 0; i < count1; i++)
        {
@@ -187,7 +187,7 @@ static void filter_bank(
        /* shift input 1 bit down for safe scaling */
        for (i = 0; i < FRAME_LEN; i++)
        {
-               tmp_buf[i] = in[i] >> 1;       
+               tmp_buf[i] = in[i] >> 1;
        }
 
        /* run the filter bank */
@@ -222,29 +222,29 @@ static void filter_bank(
        /* calculate levels in each frequency band */
 
        /* 4800 - 6400 Hz */
-       level[11] = level_calculation(tmp_buf, &st->sub_level[11], 16, 64, 4, 1, 14);   
+       level[11] = level_calculation(tmp_buf, &st->sub_level[11], 16, 64, 4, 1, 14);
        /* 4000 - 4800 Hz */
-       level[10] = level_calculation(tmp_buf, &st->sub_level[10], 8, 32, 8, 7, 15);   
+       level[10] = level_calculation(tmp_buf, &st->sub_level[10], 8, 32, 8, 7, 15);
        /* 3200 - 4000 Hz */
-       level[9] = level_calculation(tmp_buf, &st->sub_level[9],8, 32, 8, 3, 15);   
+       level[9] = level_calculation(tmp_buf, &st->sub_level[9],8, 32, 8, 3, 15);
        /* 2400 - 3200 Hz */
-       level[8] = level_calculation(tmp_buf, &st->sub_level[8],8, 32, 8, 2, 15);   
+       level[8] = level_calculation(tmp_buf, &st->sub_level[8],8, 32, 8, 2, 15);
        /* 2000 - 2400 Hz */
-       level[7] = level_calculation(tmp_buf, &st->sub_level[7],4, 16, 16, 14, 16);       
+       level[7] = level_calculation(tmp_buf, &st->sub_level[7],4, 16, 16, 14, 16);
        /* 1600 - 2000 Hz */
-       level[6] = level_calculation(tmp_buf, &st->sub_level[6],4, 16, 16, 6, 16);        
+       level[6] = level_calculation(tmp_buf, &st->sub_level[6],4, 16, 16, 6, 16);
        /* 1200 - 1600 Hz */
-       level[5] = level_calculation(tmp_buf, &st->sub_level[5],4, 16, 16, 4, 16);        
+       level[5] = level_calculation(tmp_buf, &st->sub_level[5],4, 16, 16, 4, 16);
        /* 800 - 1200 Hz */
-       level[4] = level_calculation(tmp_buf, &st->sub_level[4],4, 16, 16, 12, 16);       
+       level[4] = level_calculation(tmp_buf, &st->sub_level[4],4, 16, 16, 12, 16);
        /* 600 - 800 Hz */
-       level[3] = level_calculation(tmp_buf, &st->sub_level[3],2, 8, 32, 8, 17); 
+       level[3] = level_calculation(tmp_buf, &st->sub_level[3],2, 8, 32, 8, 17);
        /* 400 - 600 Hz */
-       level[2] = level_calculation(tmp_buf, &st->sub_level[2],2, 8, 32, 24, 17);        
+       level[2] = level_calculation(tmp_buf, &st->sub_level[2],2, 8, 32, 24, 17);
        /* 200 - 400 Hz */
-       level[1] = level_calculation(tmp_buf, &st->sub_level[1],2, 8, 32, 16, 17);        
+       level[1] = level_calculation(tmp_buf, &st->sub_level[1],2, 8, 32, 16, 17);
        /* 0 - 200 Hz */
-       level[0] = level_calculation(tmp_buf, &st->sub_level[0],2, 8, 32, 0, 17); 
+       level[0] = level_calculation(tmp_buf, &st->sub_level[0],2, 8, 32, 0, 17);
 }
 
 /******************************************************************************
@@ -266,31 +266,31 @@ static void update_cntrl(
        /* if a tone has been detected for a while, initialize stat_count */
        if (sub((Word16) (st->tone_flag & 0x7c00), 0x7c00) == 0)
        {
-               st->stat_count = STAT_COUNT;      
+               st->stat_count = STAT_COUNT;
        } else
        {
                /* if 8 last vad-decisions have been "0", reinitialize stat_count */
                if ((st->vadreg & 0x7f80) == 0)
                {
-                       st->stat_count = STAT_COUNT;   
+                       st->stat_count = STAT_COUNT;
                } else
                {
-                       stat_rat = 0;                  
+                       stat_rat = 0;
                        for (i = 0; i < COMPLEN; i++)
                        {
                                if(level[i] > st->ave_level[i])
                                {
-                                       num = level[i];        
-                                       denom = st->ave_level[i];   
+                                       num = level[i];
+                                       denom = st->ave_level[i];
                                } else
                                {
                                        num = st->ave_level[i];
-                                       denom = level[i];      
+                                       denom = level[i];
                                }
                                /* Limit nimimum value of num and denom to STAT_THR_LEVEL */
                                if(num < STAT_THR_LEVEL)
                                {
-                                       num = STAT_THR_LEVEL;  
+                                       num = STAT_THR_LEVEL;
                                }
                                if(denom < STAT_THR_LEVEL)
                                {
@@ -307,7 +307,7 @@ static void update_cntrl(
                        /* compare stat_rat with a threshold and update stat_count */
                        if(stat_rat > STAT_THR)
                        {
-                               st->stat_count = STAT_COUNT;    
+                               st->stat_count = STAT_COUNT;
                        } else
                        {
                                if ((st->vadreg & 0x4000) != 0)
@@ -315,7 +315,7 @@ static void update_cntrl(
 
                                        if (st->stat_count != 0)
                                        {
-                                               st->stat_count = st->stat_count - 1;       
+                                               st->stat_count = st->stat_count - 1;
                                        }
                                }
                        }
@@ -323,17 +323,17 @@ static void update_cntrl(
        }
 
        /* Update average amplitude estimate for stationarity estimation */
-       alpha = ALPHA4;                        
+       alpha = ALPHA4;
        if(st->stat_count == STAT_COUNT)
        {
-               alpha = 32767;                    
+               alpha = 32767;
        } else if ((st->vadreg & 0x4000) == 0)
        {
-               alpha = ALPHA5;                   
+               alpha = ALPHA5;
        }
        for (i = 0; i < COMPLEN; i++)
        {
-               st->ave_level[i] = add1(st->ave_level[i], vo_mult_r(alpha, vo_sub(level[i], st->ave_level[i])));   
+               st->ave_level[i] = add1(st->ave_level[i], vo_mult_r(alpha, vo_sub(level[i], st->ave_level[i])));
        }
 }
 
@@ -354,25 +354,25 @@ static Word16 hangover_addition(                      /* return: VAD_flag indica
        /* if the input power (pow_sum) is lower than a threshold, clear counters and set VAD_flag to "0"         */
        if (low_power != 0)
        {
-               st->burst_count = 0;               
-               st->hang_count = 0;                
+               st->burst_count = 0;
+               st->hang_count = 0;
                return 0;
        }
        /* update the counters (hang_count, burst_count) */
        if ((st->vadreg & 0x4000) != 0)
        {
-               st->burst_count = st->burst_count + 1;    
+               st->burst_count = st->burst_count + 1;
                if(st->burst_count >= burst_len)
                {
-                       st->hang_count = hang_len;     
+                       st->hang_count = hang_len;
                }
                return 1;
        } else
        {
-               st->burst_count = 0;               
+               st->burst_count = 0;
                if (st->hang_count > 0)
                {
-                       st->hang_count = st->hang_count - 1;    
+                       st->hang_count = st->hang_count - 1;
                        return 1;
                }
        }
@@ -391,7 +391,7 @@ static void noise_estimate_update(
                Word16 level[]                        /* i   : sub-band levels of the input frame */
                )
 {
-       Word32 i; 
+       Word32 i;
        Word16 alpha_up, alpha_down, bckr_add = 2;
 
        /* Control update of bckr_est[] */
@@ -400,19 +400,19 @@ static void noise_estimate_update(
        /* Choose update speed */
        if ((0x7800 & st->vadreg) == 0)
        {
-               alpha_up = ALPHA_UP1;              
-               alpha_down = ALPHA_DOWN1;          
+               alpha_up = ALPHA_UP1;
+               alpha_down = ALPHA_DOWN1;
        } else
        {
                if ((st->stat_count == 0))
                {
-                       alpha_up = ALPHA_UP2;          
-                       alpha_down = ALPHA_DOWN2;      
+                       alpha_up = ALPHA_UP2;
+                       alpha_down = ALPHA_DOWN2;
                } else
                {
-                       alpha_up = 0;                  
-                       alpha_down = ALPHA3;           
-                       bckr_add = 0;                  
+                       alpha_up = 0;
+                       alpha_down = ALPHA3;
+                       bckr_add = 0;
                }
        }
 
@@ -424,20 +424,20 @@ static void noise_estimate_update(
 
                if (temp < 0)
                {                                  /* update downwards */
-                       st->bckr_est[i] = add1(-2, add(st->bckr_est[i],vo_mult_r(alpha_down, temp))); 
+                       st->bckr_est[i] = add1(-2, add(st->bckr_est[i],vo_mult_r(alpha_down, temp)));
                        /* limit minimum value of the noise estimate to NOISE_MIN */
                        if(st->bckr_est[i] < NOISE_MIN)
                        {
-                               st->bckr_est[i] = NOISE_MIN;   
+                               st->bckr_est[i] = NOISE_MIN;
                        }
                } else
                {                                  /* update upwards */
-                       st->bckr_est[i] = add1(bckr_add, add1(st->bckr_est[i],vo_mult_r(alpha_up, temp)));   
+                       st->bckr_est[i] = add1(bckr_add, add1(st->bckr_est[i],vo_mult_r(alpha_up, temp)));
 
                        /* limit maximum value of the noise estimate to NOISE_MAX */
                        if(st->bckr_est[i] > NOISE_MAX)
                        {
-                               st->bckr_est[i] = NOISE_MAX;    
+                               st->bckr_est[i] = NOISE_MAX;
                        }
                }
        }
@@ -445,7 +445,7 @@ static void noise_estimate_update(
        /* Update signal levels of the previous frame (old_level) */
        for (i = 0; i < COMPLEN; i++)
        {
-               st->old_level[i] = level[i];      
+               st->old_level[i] = level[i];
        }
 }
 
@@ -473,7 +473,7 @@ static Word16 vad_decision(                           /* return value : VAD_flag
 
        /* Calculate squared sum of the input levels (level) divided by the background noise components
         * (bckr_est). */
-       L_snr_sum = 0;                        
+       L_snr_sum = 0;
        for (i = 0; i < COMPLEN; i++)
        {
                Word16 exp;
@@ -486,7 +486,7 @@ static Word16 vad_decision(                           /* return value : VAD_flag
        }
 
        /* Calculate average level of estimated background noise */
-       L_temp = 0;                           
+       L_temp = 0;
        for (i = 1; i < COMPLEN; i++)          /* ignore lowest band */
        {
                L_temp = vo_L_add(L_temp, st->bckr_est[i]);
@@ -498,7 +498,7 @@ static Word16 vad_decision(                           /* return value : VAD_flag
 
        if(st->speech_level < temp)
        {
-               st->speech_level = temp;          
+               st->speech_level = temp;
        }
        ilog2_noise_level = ilog2(noise_level);
 
@@ -511,33 +511,33 @@ static Word16 vad_decision(                           /* return value : VAD_flag
        temp2 = add1(SP_CH_MIN, vo_mult(SP_SLOPE, (ilog2_speech_level - SP_P1)));
        if (temp2 < SP_CH_MIN)
        {
-               temp2 = SP_CH_MIN;                 
+               temp2 = SP_CH_MIN;
        }
        if (temp2 > SP_CH_MAX)
        {
-               temp2 = SP_CH_MAX;                 
+               temp2 = SP_CH_MAX;
        }
        vad_thr = temp + temp2;
 
        if(vad_thr < THR_MIN)
        {
-               vad_thr = THR_MIN;                 
+               vad_thr = THR_MIN;
        }
        /* Shift VAD decision register */
-       st->vadreg = (st->vadreg >> 1);       
+       st->vadreg = (st->vadreg >> 1);
 
        /* Make intermediate VAD decision */
        if(L_snr_sum > vo_L_mult(vad_thr, (512 * COMPLEN)))
        {
-               st->vadreg = (Word16) (st->vadreg | 0x4000); 
+               st->vadreg = (Word16) (st->vadreg | 0x4000);
        }
        /* check if the input power (pow_sum) is lower than a threshold" */
        if(pow_sum < VAD_POW_LOW)
        {
-               low_power_flag = 1;               
+               low_power_flag = 1;
        } else
        {
-               low_power_flag = 0;               
+               low_power_flag = 0;
        }
        /* Update background noise estimates */
        noise_estimate_update(st, level);
@@ -546,7 +546,7 @@ static Word16 vad_decision(                           /* return value : VAD_flag
        hang_len = add1(vo_mult(HANG_SLOPE, (vad_thr - HANG_P1)), HANG_HIGH);
        if(hang_len < HANG_LOW)
        {
-               hang_len = HANG_LOW;              
+               hang_len = HANG_LOW;
        }
        burst_len = add1(vo_mult(BURST_SLOPE, (vad_thr - BURST_P1)), BURST_HIGH);
 
@@ -575,20 +575,20 @@ static void Estimate_Speech(
        /* if the required activity count cannot be achieved, reset counters */
        if((st->sp_est_cnt - st->sp_max_cnt) > (SP_EST_COUNT - SP_ACTIVITY_COUNT))
        {
-               st->sp_est_cnt = 0;                
-               st->sp_max = 0;                    
-               st->sp_max_cnt = 0;                
+               st->sp_est_cnt = 0;
+               st->sp_max = 0;
+               st->sp_max_cnt = 0;
        }
-       st->sp_est_cnt += 1; 
+       st->sp_est_cnt += 1;
 
        if (((st->vadreg & 0x4000)||(in_level > st->speech_level)) && (in_level > MIN_SPEECH_LEVEL1))
        {
                /* update sp_max */
                if(in_level > st->sp_max)
                {
-                       st->sp_max = in_level;         
+                       st->sp_max = in_level;
                }
-               st->sp_max_cnt += 1;        
+               st->sp_max_cnt += 1;
 
                if(st->sp_max_cnt >= SP_ACTIVITY_COUNT)
                {
@@ -599,19 +599,19 @@ static void Estimate_Speech(
                        /* select update speed */
                        if(tmp > st->speech_level)
                        {
-                               alpha = ALPHA_SP_UP;       
+                               alpha = ALPHA_SP_UP;
                        } else
                        {
-                               alpha = ALPHA_SP_DOWN;    
+                               alpha = ALPHA_SP_DOWN;
                        }
                        if(tmp > MIN_SPEECH_LEVEL2)
                        {
-                               st->speech_level = add1(st->speech_level, vo_mult_r(alpha, vo_sub(tmp, st->speech_level))); 
+                               st->speech_level = add1(st->speech_level, vo_mult_r(alpha, vo_sub(tmp, st->speech_level)));
                        }
                        /* clear all counters used for speech estimation */
-                       st->sp_max = 0;                
-                       st->sp_max_cnt = 0;            
-                       st->sp_est_cnt = 0;            
+                       st->sp_max = 0;
+                       st->sp_max_cnt = 0;
+                       st->sp_est_cnt = 0;
                }
        }
 }
@@ -767,22 +767,22 @@ Word16 wb_vad(                                /* Return value : VAD Decision, 1
        Word32 L_temp, pow_sum;
 
        /* Calculate power of the input frame. */
-       L_temp = 0L;                           
+       L_temp = 0L;
        for (i = 0; i < FRAME_LEN; i++)
        {
                L_temp = L_mac(L_temp, in_buf[i], in_buf[i]);
        }
 
        /* pow_sum = power of current frame and previous frame */
-       pow_sum = L_add(L_temp, st->prev_pow_sum);  
+       pow_sum = L_add(L_temp, st->prev_pow_sum);
 
        /* save power of current frame for next call */
-       st->prev_pow_sum = L_temp;             
+       st->prev_pow_sum = L_temp;
 
        /* If input power is very low, clear tone flag */
        if (pow_sum < POW_TONE_THR)
        {
-               st->tone_flag = (Word16) (st->tone_flag & 0x1fff);      
+               st->tone_flag = (Word16) (st->tone_flag & 0x1fff);
        }
        /* Run the filter bank and calculate signal levels at each band */
        filter_bank(st, in_buf, level);
@@ -791,7 +791,7 @@ Word16 wb_vad(                                /* Return value : VAD Decision, 1
        VAD_flag = vad_decision(st, level, pow_sum);
 
        /* Calculate input level */
-       L_temp = 0;                          
+       L_temp = 0;
        for (i = 1; i < COMPLEN; i++)          /* ignore lowest band */
        {
                L_temp = vo_L_add(L_temp, level[i]);
index 8f0fb39..a02b48d 100644 (file)
@@ -19,7 +19,7 @@
 *                                                                      *
 *       Description:Weighting of LPC coefficients                      *
 *                     ap[i] = a[i] * (gamma ** i)                     *
-*                                                                      * 
+*                                                                      *
 ************************************************************************/
 
 #include "typedef.h"
index 3d754e7..187f25c 100644 (file)
@@ -1,8 +1,8 @@
-# 
+#
 # This configure file is just for Linux projects against Android
 #
 
-VOPRJ := 
+VOPRJ :=
 VONJ :=
 
 # WARNING:
@@ -20,5 +20,5 @@ endif
 
 VOTEST := 0
 
-VO_CFLAGS:=-DLINUX 
+VO_CFLAGS:=-DLINUX
 
index 13290c7..d3eb537 100644 (file)
@@ -29,20 +29,20 @@ extern "C" {
 #pragma pack(push, 4)
 
 /*!* the bit rate the codec supports*/
-typedef enum { 
+typedef enum {
        VOAMRWB_MDNONE          = -1,   /*!< Invalid mode */
        VOAMRWB_MD66            = 0,    /*!< 6.60kbps   */
-       VOAMRWB_MD885           = 1,    /*!< 8.85kbps   */       
+       VOAMRWB_MD885           = 1,    /*!< 8.85kbps   */
        VOAMRWB_MD1265          = 2,    /*!< 12.65kbps  */
        VOAMRWB_MD1425          = 3,    /*!< 14.25kbps  */
        VOAMRWB_MD1585          = 4,    /*!< 15.85bps   */
        VOAMRWB_MD1825          = 5,    /*!< 18.25bps   */
        VOAMRWB_MD1985          = 6,    /*!< 19.85kbps  */
        VOAMRWB_MD2305          = 7,    /*!< 23.05kbps  */
-       VOAMRWB_MD2385          = 8,    /*!< 23.85kbps> */      
+       VOAMRWB_MD2385          = 8,    /*!< 23.85kbps> */
        VOAMRWB_N_MODES         = 9,    /*!< Invalid mode */
        VOAMRWB_MODE_MAX    = VO_MAX_ENUM_VALUE
-       
+
 }VOAMRWBMODE;
 
 /*!* the frame format the codec supports*/
@@ -51,17 +51,17 @@ typedef enum {
        /*One word (2-byte) for sync word (0x6b21)*/
        /*One word (2-byte) for frame length N.*/
        /*N words (2-byte) containing N bits (bit 0 = 0x007f, bit 1 = 0x0081).*/
-       VOAMRWB_ITU         = 1, 
+       VOAMRWB_ITU         = 1,
        /*One word (2-byte) for sync word (0x6b21).*/
-       /*One word (2-byte) to indicate the frame type.*/       
+       /*One word (2-byte) to indicate the frame type.*/
        /*One word (2-byte) to indicate the mode.*/
        /*N words  (2-byte) containing N bits (bit 0 = 0xff81, bit 1 = 0x007f).*/
-       VOAMRWB_RFC3267         = 2,    /* see RFC 3267 */  
-    VOAMRWB_TMAX        = VO_MAX_ENUM_VALUE    
+       VOAMRWB_RFC3267         = 2,    /* see RFC 3267 */
+    VOAMRWB_TMAX        = VO_MAX_ENUM_VALUE
 }VOAMRWBFRAMETYPE;
 
 
-#define    VO_PID_AMRWB_Module                                                 0x42261000 
+#define    VO_PID_AMRWB_Module                                                 0x42261000
 #define    VO_PID_AMRWB_FORMAT                          (VO_PID_AMRWB_Module | 0x0002)
 #define    VO_PID_AMRWB_CHANNELS                        (VO_PID_AMRWB_Module | 0x0003)
 #define    VO_PID_AMRWB_SAMPLERATE                      (VO_PID_AMRWB_Module | 0x0004)
index 21d0cf6..d8628ee 100644 (file)
@@ -135,7 +135,7 @@ typedef struct VO_AUDIO_CODECAPI
         * \param pOutInfo [OUT] The codec fills audio format and the input data size used in current call.
         *                                               pOutInfo->InputUsed is total used input data size in byte.
         * \retval  VO_ERR_NONE Succeeded.
-        *                      VO_ERR_INPUT_BUFFER_SMALL. The input was finished or the input data was not enought. Continue to input 
+        *                      VO_ERR_INPUT_BUFFER_SMALL. The input was finished or the input data was not enought. Continue to input
         *                                                                              data before next call.
         */
        VO_U32 (VO_API * GetOutputData) (VO_HANDLE hCodec, VO_CODECBUFFER * pOutBuffer, VO_AUDIO_OUTPUTINFO * pOutInfo);
index a409a6e..320a2f8 100644 (file)
@@ -173,7 +173,7 @@ enum
 // Module own error ID
 #define VO_ERR_Module                                  0x8xxx0X00
 */
+
 #define        VO_PID_COMMON_BASE                               0x40000000                                             /*!< The base of common param ID */
 #define        VO_PID_COMMON_QUERYMEM                  (VO_PID_COMMON_BASE | 0X0001)   /*!< Query the memory needed; Reserved. */
 #define        VO_PID_COMMON_INPUTTYPE                 (VO_PID_COMMON_BASE | 0X0002)   /*!< Set or get the input buffer type. VO_INPUT_TYPE */