Re: MMX speedup for Floyd Steinberg error diffusion
- From: Jim Leonard <spamtrap@xxxxxxxxxx>
- Date: Thu, 8 May 2008 13:48:14 -0700 (PDT)
On May 8, 11:00 am, Terje Mathisen <spamt...@xxxxxxxxxx> wrote:
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!
The "off-screen" pixels as ignored, because they do not contribute to
the error information distributed to the visible pixels. A dumb but
easy way to implement this without conditional branches every
iteration (to check if you are operating on off-screen pixels) is to
operate on a bitmap that has a 1-pixel border around the right/left/
bottom sides.
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.
I don't see how you'd implement that, because the very top-left pixel
can conceivably promote enough error, distributed downward, to affect
the bottom-right pixel...
.
- Follow-Ups:
- Re: MMX speedup for Floyd Steinberg error diffusion
- From: Terje Mathisen
- Re: MMX speedup for Floyd Steinberg error diffusion
- References:
- MMX speedup for Floyd Steinberg error diffusion
- From: rep_movsd
- Re: MMX speedup for Floyd Steinberg error diffusion
- From: Maarten Kronenburg
- Re: MMX speedup for Floyd Steinberg error diffusion
- From: Maarten Kronenburg
- Re: MMX speedup for Floyd Steinberg error diffusion
- From: rep_movsd
- Re: MMX speedup for Floyd Steinberg error diffusion
- From: Terje Mathisen
- MMX speedup for Floyd Steinberg error diffusion
- Prev by Date: Re: MMX speedup for Floyd Steinberg error diffusion
- Next by Date: Re: MMX speedup for Floyd Steinberg error diffusion
- Previous by thread: Re: MMX speedup for Floyd Steinberg error diffusion
- Next by thread: Re: MMX speedup for Floyd Steinberg error diffusion
- Index(es):
Relevant Pages
|