Ignore:
Timestamp:
08/11/08 22:02:29 (5 years ago)
Author:
sam
Message:
  • floydsteinberg.c: minor optimisation in the FStein error propagation.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpipi/trunk/pipi/dither/floydsteinberg.c

    r2670 r2699  
    5252 
    5353            /* FIXME: according to our 2008 paper, [7 4 5 0] is a better 
    54              * error diffusion kernel for serpentine scan. */ 
    55             e = p - q; 
     54             * error diffusion kernel for serpentine scan than [7 3 5 1]. */ 
     55            e = (p - q) / 16; 
    5656            if(x < w - 1) 
    57                 dstdata[y * w + x2 + s] += e * .4375; 
     57                dstdata[y * w + x2 + s] += e * 7; 
    5858            if(y < h - 1) 
    5959            { 
    6060                if(x > 0) 
    61                     dstdata[(y + 1) * w + x2 - s] += e * .1875; 
    62                 dstdata[(y + 1) * w + x2] += e * .3125; 
     61                    dstdata[(y + 1) * w + x2 - s] += e * 3; 
     62                dstdata[(y + 1) * w + x2] += e * 5; 
    6363                if(x < w - 1) 
    64                     dstdata[(y + 1) * w + x2 + s] += e * .0625; 
     64                    dstdata[(y + 1) * w + x2 + s] += e; 
    6565            } 
    6666        } 
Note: See TracChangeset for help on using the changeset viewer.