[comp.graphics] IFF 24 bit images

allanh@netcom.UUCP (Allan N. Hessenflow) (12/13/90)

I'm looking for information on the format of IFF 24 bit images.  I have
PBM & FBM, both of which will read IFF ILBM ham mode images; while I was
looking for sample images to test a reader in ham mode I kept finding
images which claim to be "IFF 24 bit images."  While I'm asking, are there
any other types of IFF images besides 1-8 bit mapped, ham, and 24 bit?

allan
-- 
Allan N. Hessenflow   {apple|claris}!netcom!allanh    allanh@netcom.uucp

rjc@wookumz.ai.mit.edu (Ray Cromwell) (12/13/90)

In article <18648@netcom.UUCP> allanh@netcom.UUCP (Allan N. Hessenflow) writes:
>I'm looking for information on the format of IFF 24 bit images.  I have
>PBM & FBM, both of which will read IFF ILBM ham mode images; while I was
>looking for sample images to test a reader in ham mode I kept finding
>images which claim to be "IFF 24 bit images."  While I'm asking, are there
>any other types of IFF images besides 1-8 bit mapped, ham, and 24 bit?

  Yes and quite a few. First, because of the Amiga's display coprocessor
(COPPER) there are some IFF Formats that overcome the Amiga's pallete
limitations (32 registers non-ham) by reloading the palette every scanline.
Among these are SHAM(Sliced HAM), AHAM & DHAM (Dynamic Ham, basically
they are almost identical to SHAM except for the chunk names being
different. These 2 were invented by ASDG & Newtek) Although I don't have
all the information availible, I know a little about them that can help.
SHAM format is almost the same as ILBM except that it has an extra chunk
called CTBL (I think) This chunk contains a palette for each scanline.
(the AHAM and DHAM formats changed the name of this to something else)
There is also an ARES format (and DRES too, or whatever Newtek calls it)
In this mode, you have a normal hi-res interlaced picture, but with
a seperate palette every scanline. NewTek has an IFF21? (21 bit format)
also (I think its obsolete now) that they used on Digiview 3.0.
You might try looking on bix, or ftping shamview from abcfd20.larc.nasa.gov.
some of the people on comp.sys.amiga can help too, Like Perry from ASDG
software. (sorry, I can't remember how to spell his last name.)

It would be great to have pbm support SHAM/DYnamic Hires modes, but
I scanline by scanline quantizer would be needed. (since the base palette
can be changed every scanline.)

>allan
>-- 
>Allan N. Hessenflow   {apple|claris}!netcom!allanh    allanh@netcom.uucp

jef@well.sf.ca.us (Jef Poskanzer) (12/13/90)

In the referenced message, rjc@wookumz.ai.mit.edu (Ray Cromwell) wrote:
}It would be great to have pbm support SHAM/DYnamic Hires modes, but
}I scanline by scanline quantizer would be needed. (since the base palette
}can be changed every scanline.)

It sounds like it would be easy to add support for this stuff to
ilbmtoppm.  Multiple colormaps is no problem, since ppm is not a
colormapped format.  All I need is a precise description of the
formats, and if possible a sample of each.

By the way, I already have a description of RGBN and RGB8 (fror Turbo
Silver), and they're pretty simple, so I'll be adding code to read them.
---
Jef

  Jef Poskanzer  jef@well.sf.ca.us  {ucbvax, apple, hplabs}!well!jef
 The compiler runs / Like a swift-flowing river. / I wait in silence.

lsmichae@medusa.informatik.uni-erlangen.de (Lars Michael ) (12/13/90)

allanh@netcom.UUCP (Allan N. Hessenflow) writes:

>I'm looking for information on the format of IFF 24 bit images.  I have
>PBM & FBM, both of which will read IFF ILBM ham mode images; while I was
>looking for sample images to test a reader in ham mode I kept finding
>images which claim to be "IFF 24 bit images."  While I'm asking, are there
>any other types of IFF images besides 1-8 bit mapped, ham, and 24 bit?

The IFF ILBM format is independent from the number of bitplanes. 

An IFF file has different types of data blocks, called _chunks_. Now you have
one chunk - I think it's CMAP-chunk (color map). This chunk has a description
of the bit image. E. g. picture width and height and if compression is used or
not. Actually you have there a byte which contents the number of (used)
planes.

If you want more info and if you have ftp you can get a whole description of
the InterchangeFileFormat a titan.rice.edu in /public/graphics.formats.

"May the Schwartz be with you"
								Lars

mark@calvin..westford.ccur.com (Mark Thompson) (12/14/90)

In article <18648@netcom.UUCP> allanh@netcom.UUCP (Allan N. Hessenflow) writes:
>I'm looking for information on the format of IFF 24 bit images.  I have
>PBM & FBM, both of which will read IFF ILBM ham mode images; while I was
>looking for sample images to test a reader in ham mode I kept finding
>images which claim to be "IFF 24 bit images."  While I'm asking, are there
>any other types of IFF images besides 1-8 bit mapped, ham, and 24 bit?

I have modified the ilbmtoppm converter to handle IFF24 if this is of
interest to you. As for the format, it is basically identical to
the standard Amiga IFF accept that the bitplanes have been extended to
24 bit RGB as follows:

  IFF24 bit ordering for one scanline of an N width image

Pixel         0   1   2   3   4   5   . . . . . --> N

Scanline 0    R0  R0  R0  R0  R0  R0  . . . . .
              R1  R1  R1  R1  R1  R1  . . . . .
              R2  R2  R2  R2  R2  R2  . . . . .
              R3  R3  R3  R3  R3  R3  . . . . .
              R4  R4  R4  R4  R4  R4  . . . . .
              R5  R5  R5  R5  R5  R5  . . . . .
              R6  R6  R6  R6  R6  R6  . . . . .
              R7  R7  R7  R7  R7  R7  . . . . .

              G0  G0  G0  G0  G0  G0  . . . . .
              G1  G1  G1  G1  G1  G1  . . . . .
              G2  G2  G2  G2  G2  G2  . . . . .
              G3  G3  G3  G3  G3  G3  . . . . .
              G4  G4  G4  G4  G4  G4  . . . . .
              G5  G5  G5  G5  G5  G5  . . . . .
              G6  G6  G6  G6  G6  G6  . . . . .
              G7  G7  G7  G7  G7  G7  . . . . .

              B0  B0  B0  B0  B0  B0  . . . . .
              B1  B1  B1  B1  B1  B1  . . . . .
              B2  B2  B2  B2  B2  B2  . . . . .
              B3  B3  B3  B3  B3  B3  . . . . .
              B4  B4  B4  B4  B4  B4  . . . . .
              B5  B5  B5  B5  B5  B5  . . . . .
              B6  B6  B6  B6  B6  B6  . . . . .
              B7  B7  B7  B7  B7  B7  . . . . .

Scanline 1    . . . . . . . . . . . . . . . . . 
  .
  .

The storage sequence goes horizontally for each bit of the color
component by scanline width based on the above.
So the first byte in an IFF24 ILBM would represent 8 bits from the
first 8 least significant bits of red of the first horizontal 8 pixels:

  Pixel  0  1  2  3  4  5  6  7 --> N
        R0 R0 R0 R0 R0 R0 R0 R0  = first byte in the body CHUNK.

Hope this isn't too confusing! 
+--------------------------------------------------------------------------+
|  Mark Thompson                                                           |
|  mark@westford.ccur.com                                                  |
|  ...!{decvax,uunet}!masscomp!mark   Designing high performance graphics  |
|  (508)392-2480                      engines today for a better tomorrow. |
+------------------------------------------------------------------------- +