[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.
|