Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Assembly x86 > Re: MMX speedup...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 7 of 26 Topic 4642 of 4724
Post > Topic >>

Re: MMX speedup for Floyd Steinberg error diffusion

by Terje Mathisen <spamtrap@[EMAIL PROTECTED] > May 8, 2008 at 06:00 PM

rep_movsd wrote:
> The thing is Floyd-Steinberg dithering works serially one pixel at a
> time... Each pixel processed affects the pixel to its right and the
> pixels on the next scanline.

Interesting algorithm, very serially dependent. :-(

How does it handle the corner/edge cases?

I.e. the last pixel on a scan line has no down-right neighbor, the first 
pixel has no down-left and the last scanline has nothing below at all!

> So the best I can hope for is to handle one pixels R, G and B byte
> values in one go.
> 
> Let me clarify with actual code ( highly unoptimal C++ , for clarities
> sake )

It seems to me like the getNearestPalColor() function could easily 
dominate the processing time here!

I guess a 3D space partition would be a good way to go, using an initial 
lookup table based on something like 3:3:3 bits to start in the proper 
subvolume, or simply use that table to point to lists of possible 
palColor candidates for each starting point.

(Due to truncation effects, several pal entries might belong to multiple 
lists, depending upon the value of the rounded/truncated RGB bits, but 
with a good set of palette colors, the number of values to test against 
should be (on average) pretty low.

Anyway, to speed up the dithering stage I would use MMX/SSE and work on 
multiple lines in parallel, keeping the intermediate results in 
registers until we're finished with them.

Terje

-- 
- <Terje.Mathisen@[EMAIL PROTECTED]
>
"almost all programming can be viewed as an exercise in caching"
 




 26 Posts in Topic:
MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-05 04:04:14 
Re: MMX speedup for Floyd Steinberg error diffusion
"Maarten Kronenburg&  2008-05-07 19:56:39 
Re: MMX speedup for Floyd Steinberg error diffusion
"Maarten Kronenburg&  2008-05-07 20:49:56 
Re: MMX speedup for Floyd Steinberg error diffusion
"Maarten Kronenburg&  2008-05-07 22:35:41 
Re: MMX speedup for Floyd Steinberg error diffusion
James Harris <spamtra  2008-05-07 16:26:13 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-08 00:57:41 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-08 18:00:18 
Re: MMX speedup for Floyd Steinberg error diffusion
"Maarten Kronenburg&  2008-05-08 17:14:21 
Re: MMX speedup for Floyd Steinberg error diffusion
Robert Redelmeier <red  2008-05-09 14:19:08 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-09 21:03:11 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-08 07:23:41 
Re: MMX speedup for Floyd Steinberg error diffusion
Jim Leonard <spamtrap  2008-05-08 13:48:14 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-09 10:21:40 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-09 00:24:23 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-09 15:31:53 
Re: MMX speedup for Floyd Steinberg error diffusion
Phil Carmody <thefatph  2008-05-09 17:18:44 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-09 21:03:09 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-10 00:28:25 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-10 21:25:29 
Re: MMX speedup for Floyd Steinberg error diffusion
Phil Carmody <thefatph  2008-05-10 22:48:49 
Re: MMX speedup for Floyd Steinberg error diffusion
Phil Carmody <thefatph  2008-05-10 22:07:04 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-10 02:28:42 
Re: MMX speedup for Floyd Steinberg error diffusion
Terje Mathisen <spamt  2008-05-10 21:17:34 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-11 01:33:13 
Re: MMX speedup for Floyd Steinberg error diffusion
Phil Carmody <thefatph  2008-05-11 13:14:37 
Re: MMX speedup for Floyd Steinberg error diffusion
rep_movsd <spamtrap@[  2008-05-11 01:25:56 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Sun Jul 20 17:32:14 CDT 2008.