[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Openexr-devel] Tiled Exr question re: dataWindowForLevel
From: |
Florian Kainz |
Subject: |
Re: [Openexr-devel] Tiled Exr question re: dataWindowForLevel |
Date: |
Fri, 14 Nov 2008 11:15:00 -0800 |
User-agent: |
Mozilla Thunderbird 1.0 (X11/20041207) |
Hi Jeremy,
you are right, the the origin of the data window does not
change from level to level. Only the width and height of the
window change. Mipmapped files have always behaved this way;
the corresponding code has not changed since the first version
of OpenEXR that supported tiled images in 2004.
If I remember correctly, the rationale for the current behavior
was this: if we scaled the coordinates of the upper left and lower
right corners of the data window by 0.5 while going from one level
to the next, then the size of each level would depend not only on
the level size rounding mode but also on the location of the data
window. For example, in ROUND_DOWN mode, we'd might get:
level xMin xMax width = xMax-xMin+1
0 5 10 6
1 2 5 4
level xMin xMax width
0 6 11 6 <-- same as in level 0 above
1 3 5 3 <-- differs from level 1 above
Alternatively, we could scale the coordinates of the upper left
corner and the size of the window. Then we'd get an unexpected
location for the lower right corner:
level xMin width xMax = xMin+width-1
0 5 6 10
1 2 3 4 <-- not equal to floor(10/2)
Keeping the origin the same from level to level may not be great,
but the alternatives aren't perfect either.
Florian