Floyd-Steinberg : Indexed color?

All feature requests and suggestions for upcoming releases of Nuendo 7 can be posted here.
New Member
Posts: 1
Joined: Mon Mar 04, 2019 10:20 am

Floyd-Steinberg : Indexed color?

Post by Bethany196 »

I'm having a hard time working out how to convert the 2 color Floyd-Steinberg algol into an X color algorithm. (indexed?)

I see the calculation would have to be from this line:

Code: Select all

var rc = (cc<127?0:255);
Which at the moment is choosing between black and white based on the greyscale value.

So I need to adjust this to find which color of several the pixel should be. I've had a think, and I think a LUT would be fastest?

Code: Select all

newCol = greyscaleReduced[currentPixelGreyscale];
Is that it? Do I need to adjust the error diffusion in some way?

Code: Select all

function floydSteinberg8(sb, w, h){
  for(var i=0; i<h-1; i++)
    for(var j=0; j<w; j++){
      var ci = i*w+j;
      var cc = sb[ci];
          var rc = (cc<127?0:255); // This one changed to 
          var rc = lockedGreyscale[cc];// this one
      var err = cc-rc;
      sb[ci] = rc;
      sb[ci+1] += (err*7)>>4;
      sb[ci+w-1] += (err*3)>>4;
      sb[ci+w] += (err*5)>>4;
      sb[ci+w+1] += (err*1)>>4;
EDIT: I've been adjusting my code - is this algorithm ok? I think the weighing of the pixel brightness in indexedGreyscale might be off? So that's it - just a LUT for the tutuapp brightness!? (The program needs the Play button pressing, Dithering, and to turn color off)


Return to “Feature Requests and Suggestions”

Who is online

Users browsing this forum: No registered users and 2 guests