[Flake-enc-svnlog] SF.net SVN: flake-enc:[248] libflake/encode.c
Status: Beta
                
                Brought to you by:
                
                    jbr79
                    
                
            | 
      
      
      From: <jb...@us...> - 2009-05-20 02:35:47
      
     | 
| Revision: 248
          http://flake-enc.svn.sourceforge.net/flake-enc/?rev=248&view=rev
Author:   jbr79
Date:     2009-05-20 02:35:40 +0000 (Wed, 20 May 2009)
Log Message:
-----------
faster counting of wasted bits
Modified Paths:
--------------
    libflake/encode.c
Modified: libflake/encode.c
===================================================================
--- libflake/encode.c	2009-05-20 01:09:12 UTC (rev 247)
+++ libflake/encode.c	2009-05-20 02:35:40 UTC (rev 248)
@@ -564,17 +564,17 @@
         wasted = ctx->bps-1;
         samples = frame->subframes[ch].samples;
         for (i = 0; i < frame->blocksize; i++) {
-            int32_t s = samples[i];
-            uint32_t mask = 0x1;
-            for (b = 0; b <= wasted; b++) {
-                if (s & mask)
+            uint32_t s = samples[i];
+            if (s) {
+                s = (s ^ (s - 1)) >> 1;
+                for (b = 0; s; b++) {
+                    s >>= 1;
+                }
+                if (b < wasted)
+                    wasted = b;
+                if (!wasted)
                     break;
-                mask <<= 1;
             }
-            if (b < wasted)
-                wasted = b;
-            if (!wasted)
-                break;
         }
         if (wasted == ctx->bps-1) {
             wasted = 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |