Copy link to clipboard
Copied
My image tile is laid out as follows:
p00 p01 p02 p03
p10 p11 p12 p13
p20 p21 p22 p23
p30 p31 p32 p33
When using a RowInterleaveFactor = 2, the order within the file becomes:
p00 p01 p02 p03 p20 p21 p22 p23 p10 p11 p12 p13 p30 p31 p32 p33
When using a SubTileBlockSize = (2, 2), the order within the file becomes:
p00 p01 p10 p11 p02 p03 p12 p13 p20 p21 p30 p31 p22 p23 p32 p33
(This is neat, if you want to use a 4-channel predictor for compressing Bayer-patterned data)
When combining both (why-ever), the order of their application matters:
Row-interleaving first temporarily results in:
p00 p01 p02 p03
p20 p21 p22 p23
p10 p11 p12 p13
p30 p31 p32 p33
Sub-tiling afterwards:
p00 p01 p20 p21 p02 p03 p22 p23 p10 p11 p30 p31 p12 p13 p32 p33
But sub-tiling first temporarily results in something like:
p00 p01 p10 p11
p02 p03 p12 p13
p20 p21 p30 p31
p22 p23 p32 p33
Row-interleaving afterwards:
p00 p01 p10 p11 p20 p21 p30 p31 p02 p03 p12 p13 p22 p23 p32 p33
(this feels plain wrong!)
Which result is expected? Don't get me wrong on this: I don't see a single reason to combine both methods, but a conforming reader has to cope with this case since it's not forbidden by the specification.
Bonus question: What happens if the dimensions given in RowInterleaveFactor or SubTileBlockSize (or their product, if combining is allowed) cannot equally divide the tiles' dimensions? This also should be forbidden IMHO.
Have something to add?