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