Copyright (c) Hyperion Entertainment and contributors.
FAXX IFF Facsimile Image
Jump to navigation
Jump to search
FAXX
FAXX (Facsimile image FORM) IFF FORM / CHUNK DESCRIPTION ============================ Form/Chunk IDs: FORM: FAXX Chunks: FXHD, PAGE, FLOG Date Submitted: 11/13/91 Submitted by: Christopher E. Darsch - Atlantis Design Group, Inc. Revision: 1.0 FXHD Chunk ========== The required property chunk "FXHD" contains a FaxHeader as defined in the following header file. The FaxHeader contains data necessary to interpret the data chunk "PAGE". The pixel size of the image can be determined from the contents of the FaxHeader structure, as well as the dimensions of the source document. The compression method used to encode the "PAGE" chunk is also part of the FaxHeader. PAGE Chunk ========== The required data chunk "PAGE" contains the encoded bit-packed fax image data that is transmitted/received during phase C of a facsimile communication. The data always begins with a fax EOL (End of line = 0x001) and ends with a fax RTC (Return to control = six consecutive EOLs). A multiple-page fax can be stored variously as multiple files or, most preferably, as an IFF LIST object with a shared FXHD chunk. FLOG Chunk ========== The optional data chunk "FLOG" contains log information about a received fax. The specification for this chunk will be submitted at a later date. /***************************************************************************/ /* FaxxIFF.h */ /***************************************************************************/ #define ID_FAXX MakeID('F','A','X','X') #define ID_FXHD MakeID('F','X','H','D') #define ID_PAGE MakeID('P','A','G','E') #define ID_FLOG MakeID('F','L','O','G') /* LineLength Codes */ #define FXLNGSTD 215 /* 1728 pixels along std line lng of 215mm */ #define FXLNGLONG 255 /* 2048 pixels along opt line lng of 255mm */ #define FXLNGLONGER 303 /* 2432 pixels along opt line lng of 303mm */ #define FXLNGA5 151 /* 1216/1728 pixels along opt line lng of 151mm */ #define FXLNGA6 107 /* 864/1728 pixels along opt line lng of 107mm */ /* VRes Codes */ #define FXVRESNORM 385 /* Normal resolution: 3.85 lines/mm */ #define FXVRESFINE 770 /* Fine resolution: 7.7 lines/mm */ /* Compression Codes */ /* Codes 129, 130, and 131 are reserved */ #define FXCMPNONE 0 /* No compression -- available under Group IV */ #define FXCMPMH 1 /* One-dimensional (MH) coding */ #define FXCMPMR 2 /* Two-dimensional (MR) coding */ #define FXCMPMMR 4 /* Modified Two-dimensional (MMR) coding */ typedef struct { UWORD Width, Height; /* Image width and height, in pixels */ UWORD LineLength; /* Scan line length, in millimeters */ UWORD VRes; /* Vertical Resolution, in lines/100mm */ UBYTE Compression; /* Compression method */ UBYTE Pad[11]; /* Room for expansion */ } FaxHeader; ========================== Note: You may also find "GPHD" chunks in FAXX files. This is an additional header used by one software producer. See "FAXX.GPHD.doc"
FAXX.GPHD
Additional header info for FAXX FORMs /************************************************************************ * FAX_IFF.H * * * * Defined by R Carde - GPSoftware * * 21 Aloomba Rd Ashgrove Auastralia 4060 * * UseNet cbmvax!cbmaus!vogue!richard * * * * Issue 1 12.12.91 * * Issue 2 01.02.92 * * * ************************************************************************/ /************************************************************************ * define as FAX form for any Group 3 fax * ************************************************************************/ #define ID_GPHD MakeID('G','P','H','D') /* our CHUNK */ #define VRES_STD 0 /* standard mode 98 DPI */ #define VRES_FINE 1 /* fine res 198 DPI */ #define COMP_NONE 255 /* no compression- binary file */ #define COMP_1D 0 /* 1-D modified HUFFMAN */ #define COMP_2D 1 /* 2-D modified REED */ #define COMP_2DU 2 /* 2-D uncompressed REED */ #define COMP_2DM 3 /* 2-D modified modified REED */ /* VR-std scan time VR-fine */ #define ST_0_0MS 0 /* 0ms 0ms */ #define ST_5_5MS 1 /* 5ms 5ms */ #define ST_10_5MS 2 /* 10ms 5ms */ #define ST_10_10MS 3 /* 10ms 10ms */ #define ST_20_10MS 4 /* 20ms 10ms */ #define ST_20_20MS 5 /* 20ms 20ms */ #define ST_40_20MS 6 /* 40ms 20ms */ #define ST_40_40MS 7 /* 40ms 40ms */ #define PW_1728 0 /* 1728 pels in 215 mm */ #define PW_2048 1 /* 2048 pels in 255 mm */ #define PW_2432 2 /* 2432 pels in 303 mm */ #define PW_1216 3 /* 1216 pels in 151 mm */ #define PW_864 4 /* 864 pels in 107 mm */ #define PH_UNLIM 0 /* unlimited page length */ #define PH_A4 1 /* A4 PAGE 297 mm */ #define PH_B4 2 /* B4 PAGE 364 mm */ #define BR_2400 0 /* 2400 bits per second */ #define BR_4800 1 #define BR_7200 2 #define BR_9600 3 #define BR_12000 4 #define BR_14400 5 #define ECM_NONE 0 /* Error Correction Disabled */ #define ECM_STD 1 /* Error Correction Enabled */ #define BFT_NONE 0 /* Binary Transfer Disabled */ #define BFT_STD 1 /* Binary Transfer Enabled */ struct GPHD { UWORD gp_Width; /* width in pels */ UWORD gp_Length; /* length / height in pels */ UWORD gp_Page; /* page number */ UBYTE gp_ID[22]; /* id string 20 ch NULL term */ UBYTE gp_VRes; /* Vertical Res dpi */ UBYTE gp_BitRate; /* connection bit rate */ UBYTE gp_PageWidth; /* page width */ UBYTE gp_PageLength; /* page length/height */ UBYTE gp_Compression; /* compression method */ UBYTE gp_ErrorCorrection; /* ECM mode */ UBYTE gp_BinaryFileTransfer; /* binary transfer mode */ UBYTE gp_ScanTime; /* Scan Time ms */ struct DateStamp gp_Date; /* date sent/received */ UBYTE gp_Pad[10]; };