Re: [Gimp-developer] Slow, artifact-prone redraw when panning in 2.8.0-RC1



On Thu, Apr 12, 2012 at 2:12 PM, Simone Karin Lehmann <simone lisanet de> wrote:
> AFACIS at 100% zoom only the visible part of the image is used for color correction. At 15% zoom, the whole image is visible, and so all pixels are processed although the image is scaled down to fit into the image window.
>
> IMO color management routines should be done on the already zoomed down view. There should be no visible difference to the actual behaviour if you do so, but it will be much faster.

I think this is already the case, the problem is probably that the
display is being updated too frequently - thus the same pixels being
changed multiple times rather than too many pixels being transformed.

When a single 64x64 tile changes and you have zoomed out to 25% only a
16x16 area of the screen should need to be updated. It might be that
GIMP is dirtying the next two levels of mipmap up. In that case
leading to 16x as many re-conversions as strictly neccesary.

If each of these X's represent a 64x64 tile, this is 100% or 1:1:

XXXX
XXXX
XXXX

Zoomed to 50% this would be represented by 4 scaled down tiles:

XX
XX

Which at 25% and below is one tile that is to be shown on screen.

X

If changes to this 25% scale tile cause a full re-update of the screen
area it covers, and we succesively change just one and one tile at the
1:1 level we will end up recomputing the transform for every pixel in
the image 16 times,. at 12.5% zoom level and below it would be 64
times. The color conversion done with lcms is already expensive doing
it an excessive amount of times will make it even worse.

(I have not fully confirmed that this is how things behave, but based
on observations and some slight profiling this is my best guess.)

It should also be noted that if GIMP is using color management because
it picked up a globally set, _and_ used color profile then you most
likely are better off working directly in sRGB in GIMP with color
management disabled. Letting colord / gnome-color-manager or similar
do it's job of adjusting sRGB according to your displays profile.
Having both global color correction and GIMP's display filter would
lead to double correction and thus incorrect results.

/Øyvind K.
-- 
«The future is already here. It's just not very evenly distributed»
                                                 -- William Gibson
http://pippin.gimp.org/ ;                           http://ffii.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]