[Rawstudio-dev] image display quality
Martin Christensen
martin.sand.christensen at gmail.com
Sun Aug 9 14:58:09 CEST 2009
>>>>> "Klaus" == Klaus Post <klauspost at gmail.com> writes:
Klaus> Some things were very easy, if there are no spatial dependencies,
Klaus> then you just split the image in vertical slices and have each
Klaus> thread process each slice, very easy and scales very well.
Obviously. Most photo manipulations can be written as transformation
matrices and could in principle be split into a separate thread per
pixel.
Klaus> The sharpen/denoiser required a job/workqueue to be efficient.
Why's that? Isn't that basically just the same thing as above except
with a bit of (read-only) overlap?
Klaus> The only operation that cannot be multithreaded is image decoding
Klaus> (Lossless JPEG decoding to be specific), as it is a strictly
Klaus> linear process, where every pixel in the image is depending on
Klaus> the previous.
Well, if you do manage to parallelise that, I'm sure you'd be in for
some kind of award. :-)
Klaus> Currently these filters are multithreaded:
Klaus> Basic render (color correct), demosaic, denoise/sharpen, lensfun
Klaus> (the processing done outside of liblensfun), resample (image
Klaus> resize), rotate.
What other filters could we expect to be parallelised in future?
Klaus> Furthermore the RawSpeed loader is multithreaded when possible
Klaus> (DNG images).
Why can't they all be multi-threaded?
Thanks for the status update. It's quite interesting.
Martin
More information about the Rawstudio-dev
mailing list