Selective Gaussian -> Early test app posted
- From: Eric Grange <egrangeNO@xxxxxxxxxxxxxxx>
- Date: Wed, 13 Jul 2005 17:33:42 +0200
to attachments.
Includes ability to generate a test noise bitmap, load a test JPG/BMP bitmap, perform noise reduction with a reference algorithm and an experimental one and then construct a bitmaps with the per-pixel delta between the two.
Notes: - parameters are currently hardcoded - if you don't have an AMD CPU, it will crash until you deactivate the hardcoded call to 3DNow optimized version (sorry) - gives some rough timing and deviation figures (metrics to be refined) - includes source for a 128 bit version, though the Graphics128 unit isn't included (if enough participants are willing to go the 128 bit way, I'll probably included, for now this is for eyes only).
Performance-wise, the 3DNow version is close to commercial products (yet more simplistic feature-wise), SSE version runs at similar speed on 128bit data and looks to have quite some "easy optimisation" headroom left (still has plenty of free registers).
Purpose isn't as much to benchmark things yet, but rather to get started on specifics and requirements such as:
- should the function operate on bitmaps or on rasters/scanlines?
- should it operate on 32 bits and produce 32 bits, or on 128 and
produce 128? (ie. work well on 16bits TIFF and not lose precision
for subsequent sharpening/constrast/whatever PP)
- should the matrix/kernel be passed to the function (and thus assumed
arbitrary) or should the function compute its own?
- is the current reference implementation numerically correct?
Also should the function support tiling/banding?
This somewhat affects the bitmap vs scanlines and 32 vs 128 bits issues, as scanlines provide implicit support for banding, banding allows to process only part of the image at a time, and that considerably lessens the memory usage issues of 128 bits... (no need to have the whole bitmap converted to 128 bits anymore).
128 bits makes SSE usage straightforward, 32bits makes SSE2 compulsory (but is it an issue? are there many CPUs out there that support SSE and do not support neither 3DNow nor SSE2? Are they worth cattering to?).
Eric .
- Follow-Ups:
- Re: Selective Gaussian -> Early test app posted
- From: Mattias Andersson
- Re: Selective Gaussian -> Early test app posted
- From: Mattias Andersson
- Re: Selective Gaussian -> Early test app posted
- From: John
- Re: Selective Gaussian -> Early test app posted
- Prev by Date: Re: Yet another implementation...
- Next by Date: Re: Selective Gaussian -> Early test app posted
- Previous by thread: Compiling FastCode libraries
- Next by thread: Re: Selective Gaussian -> Early test app posted
- Index(es):
Relevant Pages
|