[sane-devel] Color depth upsampling and compressibility

Gregory C. Johnson lists.ix.sane-devel at gregjohnson.com
Mon Jul 18 12:13:41 UTC 2005


> On Mon, Jul 11, 2005 at 05:11:48PM +0200, Mattias Ellert wrote:
>> Even better would be:
>>
>>               *dst-- = ((*src << 4) & 0xf0) + ((*src)        & 0x0f);
>>               *dst-- = ((*src)      & 0xf0) + ((*src-- >> 4) & 0x0f);
>>
>> Then 0 would map to 0 and 15 to 255, i.e. white is white and black is
>> black.
>
> You're right. I've changed taht in sp15c.c in CVS.

Some quick Googling doesn't provide dispositive information on this
strategy's impact on compressibility.  However I suspect that introducing
pseudo-random data in the low nybble will reduce compressibility beyond
simply squaring the symbol table.  (Hence, my initial ponderings on
tweaking the constant)

This might be a good candidate for specification in the SANE 2 standard,
as there are clearly multiple strategies for getting from 4 to 8 bits, and
each has different tradeoffs.

Still, I can't imagine this dragon hasn't been slain many times before... 
Anyone know of a dispositive reference that we can just point to?  
Alternately, this should be trivial to explore exhaustively through
brute-force.

Thanks,
-Greg



More information about the sane-devel mailing list