Selective Gaussian -> Early test app posted



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
.



Relevant Pages

  • RE: Bitmap displayed in ToolBox of Visual Studio for a control
    ... populated automatically in the Toolbox and the component appears under this ... The bitmap next to the component is the default bitmap. ... Microsoft Online Community Support ... where an initial response from the community or a Microsoft Support ...
    (microsoft.public.dotnet.framework)
  • Re: Display a bitmap from Win32, unmanaged code?
    ... related to deleting the underlying bitmap. ... If the image is still be displayed in the PictureBox, ... Microsoft Online Community Support ... You can send feedback directly to my manager at: ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: GDI+ to draw on canvas with alpha channel
    ... have the alpha accumulate in the bitmap. ... Microsoft Online Community Support ... where an initial response from the community or a Microsoft Support ... project analysis and dump analysis issues. ...
    (microsoft.public.win32.programmer.gdi)
  • Re: tcl/tk wish for seismic data display
    ... bringing SU to tcl/tk.So So i need to get support ... from SU data processing people as well.This ... write the data as a bitmap and that can be used by our tcl/tk program. ... The BLT stripchart widget does not need or want a bitmap. ...
    (comp.lang.tcl)
  • Re: Selective Gaussian -> Early test app posted
    ... > Includes ability to generate a test noise bitmap, ... we are planning to add support for 128 bit bitmaps to the ... If you have a routine that operates on scanlines, ...
    (borland.public.delphi.language.basm)