RE: CFD: Proposed new PNG public sTER chunk (MNG aspects)

John Bowler <[email protected]> Mon, 15 Nov 2004 10:16:49 -0800
Newsgroups gmane.comp.graphics.png.general,gmane.comp.graphics.mng.general
Message-ID <000101c4cb3f$47a57360$6401a8c0@kalmiopsis>
I hacked the subject line to include "MNG aspects" 'cause I believe the PNG
aspects of this are pretty much clear whereas the interaction with MNG
requires clarification.  (It is my belief that a PNG proposal can be adopted
even if the MNG aspects are ill defined - MNG has an independent approval
process.)

The message is cross posted - I suggest continuing this thread just on
mng-list on the basis that it shouldn't affect PNG issues of sTER.

From: Glenn Randers-Pehrson
>Also, neither pHYs nor pHYg will work with all MNG datastreams.  pHYs
>must be ignored, and pHYg applies to the entire frame, not just the
>stereo object.

All the arguments which lead to pHYg to be created for MNG apply equally to
sTER.

Suppose Glenn's (implicit) suggestion is followed and sTER occurs in
individual PNG streams within the MNG stream.  Is the MNG frame stereo or
not?  If it is not (e.g. suppose a non-sTER PNG is used to fill the whole
frame) how is a sTER PNG going to be composited correctly onto the non-sTER
MNG frame?  What are the sTER properties of an abstract object, how are
these specified?  (I.e. is an abstract object stereo or not?)  Even if this
can be resolved, if the resolution involves special treatment of sTER it
won't work in older decoders (which do not see sTER).

I seem to remember that I did argue that pHYs in a concrete object/PNG
stream *can* be handled but that it obliges the decoder to rescale such
objects to the frame pixel size.  It also means that composition onto a
concrete object requires the source to have the same physical pixel size.
Anyway, the result of the debate was that pHYs is ignored and pHYg applies
to the resultant frames.

Likewise for sTER.  The (original) sTER chunk proposal may contain an
implicit 2:1 pHYs "...HALFHEIGHT" - that should show that the same arguments
apply.  However, even in the absence of the "HALFHEIGHT" option, where the
sTER image has square samples by default, there is a physical transformation
implied by sTER.  This is because the two sub-images it contains correspond
to just one, half-width, physical area (imaged by the right and left eye of
the original viewer.)

My conclusion is that sTER in a PNG stream must be ignored by MNG and that
some chunk, e.g. sTEG, is necessary to make the whole MNG frame be stereo.
This has all the compatibility features of sTER in PNG - when viewed on a
sTEG capable decoder the result has half the frame width and is a full
stereo animation, when viewed on pre-sTEG decoder the user sees a double
width frame and must use the "cross eyed" technique to see the stereo.

sTEG also makes it very easy to produce well defined stereo animations.
Such animations may well use the same concrete object for both left and
right image halves with the differences encoded in a different PNG stream.
These PNG streams are neither stereo images nor mono images - they are
building blocks which can be composited into a stereo (or, for that matter,
mono) frame.  sTER is meaningless for such an incomplete image!

John Bowler <[email protected]>


--
Send the message body "help" to [email protected]