[sane-devel] SANE2 standard revisited: image data format

Henning Meier-Geinitz henning@meier-geinitz.de
Tue, 10 Dec 2002 00:55:40 +0100


Hi,

On Mon, Dec 09, 2002 at 06:21:30PM -0500, Matto Marjanovic wrote:
>  >this is very similar to the frame type. In fact you do not change a lot with
>  >this. When we want to remove the frames then I suggest to do it right:
>  >only channel-interleaved data, no planes in SANE_(FRAME_)RAW.
> 
> Hi, Oliver,
> 
> The difference isn't so much the data format as the code flow:  all the
>  planar data is returned after a single sane_start(), and the multi-frame
>  flags for determining which 'frame' is currently being scanned can be
>  removed from the standard.

I support this proposal. That was my original intention. I also don't
like the mulitiple call of sane_start.

This way, it's just a differnt image format. No problem at all. No
need to call sane_start three time, no need to call frames.

So we have only the image and the channel paradigm. One image per
sane_start. One ore more channels per image. The channels can be
ordered either interleaved or as planes.

>  >In fact this makes the sane standard more simple. Three pass scanners
>  >are not produced any more.
> 
> But people still keep using them (and sending bug reports).  :)

And we want to wtite some sane2-sane1 compatibility dll, so we
shouldn't get too incompatible, if possible.

> I envision three SANE_Frame types:
> 
>   o SANE_FRAME_PACKED  --- sample-interleaved channels, following all the
>                             current RAW specs.
>   o SANE_FRAME_PLANAR  --- planar channels, following all the current RAW
>                             specs.
>   o SANE_FRAME_MIME    --- opaque image data, with a MIME type.
> 
> Each sane_start() cycle would return a single frame, and each frame would
>  be a complete image.

This also avois explanations that SANE_FRAME_MIME can only use one
frame.

An alternative would be to use only two frame types SANE_FRAME_RAW and
SANE_FRAME_MIME and put the plane/interleaved distinction in the
format_desc:

"red:8,green:8,blue:8": interleaved
"red:8;green:8;blue:8": planes

BUT: Someone could try to use:

"red:8,green:8;blue:8": well?
And I guess we don't want that confusion with ";" and ",".

So the three distinct types seem to be easier.

Bye,
  Henning