RFC 2880
Internet Fax T.30 Feature Mapping
Network Working Group ๐ Request for Comments: 2880 ๐ Category: Informational ๐ฆ Authors: L. McIntyre (Xerox Corporation) and G. Klyne (Content Technologies) ๐ Date: August 2000 ๐ธ Obsoletes / Updates: the title block doesn't list anything this RFC obsoletes or updates ๐
Internet Fax T.30 Feature Mapping ๐ง
Status of this Memo ๐ซถ
okay bestie, this memo is here to provide information for the Internet community. it does not specify an Internet standard of any kind, so it's not a spec you have to follow. distribution of this memo is unlimited, so share it with everyone ๐
Copyright Notice ๐
Copyright (C) The Internet Society (2000). All Rights Reserved.
Abstract โจ
so this doc explains how to take the Group 3 fax capability identification bits from ITU T.30 [6] and map them into the Internet fax feature schema from "Content feature schema for Internet fax" [4] ๐ฆ
it's a companion to that schema document [4]. the schema document is a profile of the media feature registration mechanisms [1,2,3], and it's used for capability identification between extended Internet fax systems [5]. main character energy for fax machines, honestly ๐
Table of Contents ๐
1. Introduction .............................................3
1.1 Organization of this document ........................3
1.2 Terminology and document conventions .................3
1.3 Discussion of this document ..........................4
2. Combining feature tags ...................................4
2.1 Relationship to Group 3 fax ..........................5
2.2 Feature set descriptions .............................5
2.3 Examples .............................................5
2.3.1 Data resource example ............................6
2.3.2 Recipient capabilities example ...................6
3. Survey of media-related T.30 capability bits .............6
3.1 DIS/DTC bit 15 (resolution) ..........................6
3.2 DIS/DTC bit 16 (MR coding) ...........................7
3.3 DIS/DTC bits 17,18 (width) ...........................7
3.4 DIS/DTC bits 19,20 (length) ..........................7
3.5 DIS/DTC bit 31 (MMR coding) ..........................7
3.6 DIS/DTC bit 36 (JBIG multi-level coding) .............8
3.7 DIS/DTC bit 37 (plane interleave) ....................8
3.8 DIS/DTC bits 41,42,43 (resolution) ...................8
3.9 DIS/DTC bits 44,45 (preferred units) .................9
3.10 DIS/DTC bit 68 (JPEG) ...............................9
3.11 DIS/DTC bit 69 (colour) .............................9
3.12 DIS/DTC bit 71 (bits/sample) .......................10
3.13 DIS/DTC bit 73 (no subsampling) ....................10
3.14 DIS/DTC bit 74 (custom illuminant) .................10
3.15 DIS/DTC bit 75 (custom gamut) ......................10
3.16 DIS/DTC bits 76,77 (paper size) ....................11
3.17 DIS/DTC bit 78 (JBIG bi-level coding) ..............11
3.18 DIS/DTC bit 79 (JBIG stripe size) ..................11
3.19 DIS/DTC bit 92,93,94 (MRC maximum functional mode) .11
3.20 DIS/DTC bit 95 (MRC stripe size) ...................12
3.21 DIS/DTC bit 97 (resolution) ........................12
3.22 DIS/DTC bit 98 (resolution) ........................12
4. Summary of T.30 capability dependencies .................12
4.1 Image coding ........................................13
4.1.1 Bi-level coding .................................13
4.1.2 Multi-level coding ..............................14
4.1.3 MRC format ......................................14
4.2 Resolution and units ................................15
4.3 Colour capabilities .................................17
4.4 Document size .......................................18
5. Mapping T.30 capabilities to fax feature schema .........18
5.1 Image coding ........................................20
5.1.1 Bi-level coding .................................20
5.1.2 Multi-level coding ..............................21
5.1.3 MRC format ......................................23
5.2 Resolution and units ................................23
5.3 Colour capabilities .................................24
5.4 Document size .......................................26
6. Examples ................................................26
6.1 Common black-and-white fax machine ..................27
6.1.1 Corresponding Internet fax capabilities .........29
6.2 Full-featured color fax machine .....................30
7. Security Considerations .................................34
8. Acknowledgements ........................................34
9. References ..............................................34
10. Authors' Addresses .....................................36
Full Copyright Statement ...................................37
1. Introduction โจ
okay so this section is the warm-up ๐ธ it says the same thing as the abstract: this doc maps Group 3 fax capability identification bits from ITU T.30 [6] into the Internet fax feature schema in "Content feature schema for Internet fax" [4].
it's still a companion to the schema doc [4]. that doc profiles the media feature registration mechanisms [1,2,3], and it's what gets used for capability identification between extended Internet fax systems [5]. iykyk ๐ง
1.1 Organization of this document ๐๏ธ
here's the tea on how the doc is laid out ๐
Section 2 covers the mechanisms that combine feature tag constraints so you can describe complex recipient capabilities.
Section 3 surveys the Group 3 fax (T.30) capability bits that relate to media handling.
Section 4 describes the dependencies between those T.30 capability bits. they're presented in a decision table format [16], with descriptive text sitting where the action bodies would normally go.
Section 5 describes a formal way to convert Group 3 fax (T.30) capability masks into fax feature schema statements. the conversion is driven by the decision tables from Section 4, and it uses fax feature schema statements and combining rules in the action bodies.
Section 6 shows an example of a Group 3 fax (T.30) capability mask and uses the formal mechanism from Section 5 to turn it into a matching fax feature schema statement. the glow-up montage ๐ฌโจ
1.2 Terminology and document conventions ๐
these are the words the doc uses, and what they mean. the table is kept exactly as written:
eifax system
is used to describe any software, device or combination
of these that conforms to the specification "Extended
Facsimile Using Internet Mail" [5].
Feature is used as defined in [15]. (See also section 2 of this
memo.)
Feature tag
is used as defined in [15]. (See also section 2.)
Feature collection
is used as defined in [2]. (See also section 2.)
Feature set
is used as defined in [2]. (See also section 2.)
1.3 Discussion of this document ๐ฌ
talk about this doc on the Internet fax mailing list, which is hosted by the Internet Mail Consortium (IMC). send your comments to:
ietf-fax@imc.org
to subscribe, send a message with the body 'subscribe' to "ietf-fax-request@imc.org" ๐ซถ
want to see what got discussed before you joined? the mailing list archive is here:
http://www.imc.org/ietf-fax/
3. Survey of media-related T.30 capability bits โจ
okay so this part is where we go bit by bit through the T.30 DIS/DTC bits that actually matter for media ๐ We'll be referencing Table 2/T.30 and its notes [6] the whole time. Any bit number that doesn't get mentioned below is basically not about media features, so it's not part of the Internet fax feature schema. Bye bye ๐
NOTE: some of the DIS/DTC bits identified below are documented in revisions of the T.30 specification that may be not yet publicly available from the ITU.
3.1 DIS/DTC bit 15 (resolution)
Every Group 3 fax system is required to support a basic resolution of 200*100dpi (dots per inch) or 8*3.85dpmm (dots per millimetre). Main character baseline ๐
Setting this bit means you also support 200*200dpi or 8*7.7dpmm. Upgrade unlocked ๐ฅ
For multi-level images, 200*200dpi is the basic resolution, and this bit must be set. The other basic resolution options only apply to bi-level images. Multi-level really said "no, 200*200 or nothing" ๐
See also: bits 44,45.
3.2 DIS/DTC bit 16 (MR coding)
Every Group 3 fax system is required to support Modified Huffman (MH) 1-dimensional coding for bi-level images. (A bi-level image is one with just two pixel states, like black and white, as opposed to a grey-scale or colour image.) ๐ค๐ค
Setting this bit means you also support Modified Read (MR) 2-dimensional coding for bi-level images. Extra skills, bestie โจ
Both MH and MR coding are described in ITU T.4 [7].
See also: bits 31,78,79.
3.3 DIS/DTC bits 17,18 (width)
Every Group 3 fax system is required to support 215mm paper width. Those two bits can be set to show extra support for 255mm and 303mm paper widths. Wide energy ๐๐
See also: bits 76,77.
3.4 DIS/DTC bits 19,20 (length)
Every Group 3 fax system is required to support 297mm paper length. These bits can be set to show extra support for 364mm and unlimited paper lengths. Long and loud, lowkey iconic ๐ง
See also: bits 76,77.
3.5 DIS/DTC bit 31 (MMR coding)
Setting this bit means you support Modified Modified Read (MMR) 2-dimensional coding for bi-level images, on top of the required MH coding. Double modified, double slay ๐
MMR coding is described in ITU T.6 [8].
See also: bits 16,78,79.
3.6 DIS/DTC bit 36 (JBIG multi-level coding)
If you're handling multi-level images, JPEG coding is required, which means bit 68 must be set. Setting bit 36 adds support for JBIG lossless coding of multi-level images. Lossless and iconic ๐ฆ
JBIG coding for multi-level images is described in ITU T.43 [10] and T.4 Annex G [7].
See also: bits 68,69.
3.7 DIS/DTC bit 37 (plane interleave)
Setting this bit means you support plane interleave for JBIG-coded multi-level images, in addition to stripe interleave. Stripe interleave is already the standard for JBIG multi-level images, so this one is the bonus ๐
JBIG coding for multi-level images is described in ITU T.43 [10] and T.4 Annex G [7].
See also: bit 36.
3.8 DIS/DTC bits 41,42,43 (resolution)
Setting these bits means you support resolutions beyond 200*100dpi and 200*200dpi (or 8*3.85dpmm and 8*7.7dpmm). If you're using a multi-level image mode, it's beyond the basic 200*200dpi instead. The resolution glow-up is real โจ
Bit 41 means you support 8*15.4dpmm bi-level images, and this is independent of what bits 44 and 45 are set to. ๐ธ
Bit 42 means you support 300*300dpi bi-level images, also independent of bits 44 and 45. It also covers multi-level images or the MRC mask if bit 97 is set. Triple threat ๐ฅ
Bit 43 means you support 400*400dpi and/or 16*15.4dpmm bi-level images, depending on the settings of bits 44 and 45. It also covers multi-level images or the MRC mask if bit 97 is set. Max resolution, max vibes ๐
See also: bits 15,44,45,97.
3.9 DIS/DTC bits 44,45 (preferred units)
These bits say which resolution units the receiver would like for incoming images. Because the exact resolution and x/y pixel density measures in dpi or dpmm are slightly different, you can get some image size and aspect ratio distortion if the sender and receiver use different units. Not ideal, not the end of the world ๐
Even when sender and recipient have different preferred units, the image transfer still has to happen. For most fax uses, the dpi and dpmm measurements are close enough that nobody will notice the difference. ๐ซถ
The preferred units setting changes how the following resolutions are interpreted:
dpi dpmm (dpi equivalent)
--- ----
Base 200*100 8*3.85 204*98
Bit 15 200*200 8*7.7 204*196
Bit 43 400*400 16*15.4 408*391
But terminals are required to accept the inch-based and metric-based measures above as equivalent, even if that means distorting the image a little to fit the difference. Accept the vibe, accept the vibe ๐
See also: bits 15, 43
3.10 DIS/DTC bit 68 (JPEG)
This bit indicates support for JPEG coding of multi-level images. Snap, that's a photo-friendly bit ๐ธ
JPEG coding for multi-level images is described in ITU T.81 [12] and T.4 Annex E [7].
See also: bits 15,69,73
3.11 DIS/DTC bit 69 (colour)
This bit indicates support for colour images, in addition to grey-scale. ๐
Both grey-scale and colour need multi-level coding. The difference is that grey is single component, while colour is multi-component. Grey is the chill sibling, colour is the extra one ๐จ
See also: bits 36,68,73.
3.12 DIS/DTC bit 71 (bits/sample)
Standard support for multi-level images uses 8 bits per sample. Setting this bit indicates extra support for 12 bits per sample. Bits per sample go brrr ๐ซ
For a grey-scale multi-level image there is just one sample per pixel, giving 256 or 4096 possible pixel values. For a full colour multi-level image there are three samples per pixel, giving 256^3 (16777216) or 4096^3 (6871946736) possible values. The math is giving main character ๐งฎ๐
When it comes to a mapped colour image, bit 71 also affects the maximum number of entries in the mapping table. When it's reset, up to 4096 different pixel values can be used. When it's set, up to 65536 different values can be used. ๐ฆ
See also: bit 68.
3.13 DIS/DTC bit 73 (no subsampling)
Standard support for JPEG-coded multi-level images uses 4:1:1 chrominance subsampling. That means for every 4 luminance samples in the image data there is one chrominance sample. Compression with a little bit of shade ๐
Setting this bit indicates that JPEG-coded colour images without subsampling can also be supported. This does not apply to JBIG coding (bit 36). ๐ซ
See also: bits 68,69.
3.14 DIS/DTC bit 74 (custom illuminant)
Standard support for multi-level images requires the D50 illuminant. Setting this bit indicates that a custom illuminant can also be supported for multi-level images (both grey-scale and colour). The details of the custom illuminant are contained in the image data. Custom lighting, custom mood โจ
Using a custom illuminant with multi-level images is described in ITU T.4 Annex E [7].
See also: bits 36,68.
3.15 DIS/DTC bit 75 (custom gamut)
Standard support for a default colour gamut is required for multi-level images. Setting this bit indicates that a custom gamut can also be supported for multi-level images (both grey-scale and colour). The details of the custom gamut are contained in the image data. Custom colours, same girl ๐ธ
The default gamut (L*=[0,100], a*=[-85, 85], b* = [-75, 125]), and the use of a custom gamut with multi-level images, are described in ITU T.42 [9] and T.4 Annex E [7].
See also: bits 36,68.
3.16 DIS/DTC bits 76,77 (paper size)
Every Group 3 fax is required to support A4 paper size. These bits can be set to show extra support for North American letter and legal paper sizes. Letter and legal are giving American classic ๐บ๐ธ๐
See also: bits 17,18,19,20.
3.17 DIS/DTC bit 78 (JBIG bi-level coding)
Setting bit 78 indicates support for JBIG coding of bi-level images (using T.85 encoding rules), on top of the required MH coding. ๐ง
JBIG coding of bi-level images is described in ITU T.85 [14].
See also: bits 16,31,79.
3.18 DIS/DTC bit 79 (JBIG stripe size)
Setting bit 79 (along with bit 78) indicates support for the 'LO' option with JBIG-coded bi-level images. Basic bi-level JBIG coding uses 128 lines per stripe. The 'LO' option lets other stripe sizes be used instead. Customisable stripes ๐ฆ
The stripe size applies to all stripes except the last one, which may have fewer lines than the indicated value. Last stripe, last chance ๐
JBIG coding of bi-level images is described in ITU T.85 [14].
See also: bits 16,31,78.
3.19 DIS/DTC bit 92,93,94 (MRC maximum functional mode)
If these bits are all zero, Mixed Raster Content (MRC) coding is not supported. Otherwise, they form a number in the range 1-7 that gives the MRC maximum functional mode. Zero means no, anything else means yes ๐
MRC coding of images is described in ITU T.44 [11] and T.4 Annex H [17].
See also: bits 68,95.
3.20 DIS/DTC bit 95 (MRC stripe size)
Standard support for MRC uses a maximum stripe size of 256 lines. When this bit is set, the maximum stripe size is a full page. Full page, full commitment ๐๐ฅ
This bit only means something if bits 92-94 indicate an MRC coding capability. MRC coding of images is described in ITU T.44 [11] and T.4 Annex H [17].
See also: bits 92,93,94.
3.21 DIS/DTC bit 97 (resolution)
Setting this bit indicates that the additional resolutions shown by bits 42 and 43 may be used for multi-level images and any MRC mask layer. ๐ฆ
When this bit is set, bit 42 means 300dpi and bit 43 means 400dpi for multi-level or MRC mask layer images. This applies regardless of the preferred units indicated by bits 44 and 45. โจ
See also: bits 42,43,68.
3.22 DIS/DTC bit 98 (resolution)
Setting this bit indicates that the additional resolution 100*100dpi may be used for multi-level images. ๐
NOTE: 100dpi is not used for bi-level images, including the MRC mask layer.
See also: bit 36,68,92-94.
4. Summary of T.30 capability dependencies ๐
This section is full of decision tables that show which combinations of T.30 DIS/DTC mask bits are allowed. They're the cheat sheet for not making a mess of your bits ๐
Inside the decision table bodies, the following symbols are used to show the values of T.30 DIS/DTC bits:
0 = bit set to '0'
1 = bit set to '1'
x = don't care bit value: may be '0' or '1'
*0 = bit must be '0' ('1' is invalid in given combination)
*1 = bit must be '1' ('0' is invalid in given combination)
# = bits in row combined to form a numeric value
4.1 Image coding
MH coding is required as a minimum for Group 3 fax operation. It's the floor, babe, nothing lower than this ๐ซถ
4.1.1 Bi-level coding
<------- T.30 bits --------->
15|16|31|36|37|68|69|73|78|79||Description
--+--+--+--+--+--+--+--+--+--++---------------------------------------
x| 0| 0| | | | | | 0| 0||Compression = [MH]
x| 1| 0| | | | | | 0| 0||Compression = [MH,MR]
x| 0| 1| | | | | | 0| 0||Compression = [MH,MMR]
x| 1| 1| | | | | | 0| 0||Compression = [MH,MR,MMR]
x| 0| 0| | | | | | 1| 0||Compression = [MH,T.85]
x| 1| 0| | | | | | 1| 0||Compression = [MH,MR,T.85]
x| 0| 1| | | | | | 1| 0||Compression = [MH,MMR,T.85]
x| 1| 1| | | | | | 1| 0||Compression = [MH,MR,MMR,T.85]
x| 0| 0| | | | | |*1| 1||Compression = [MH,T.85,T.85LO]
x| 1| 0| | | | | |*1| 1||Compression = [MH,MR,T.85,T.85LO]
x| 0| 1| | | | | |*1| 1||Compression = [MH,MMR,T.85,T.85LO]
x| 1| 1| | | | | |*1| 1||Compression = [MH,MR,MMR,T.85,T.85LO]
| | | | | | | | | ||MH = 1-D per T.4
| | | | | | | | | ||MR = 2-D per T.4
| | | | | | | | | ||MMR = 2-D per T.6
| | | | | | | | | ||T.85 = Basic JBIG per T.85
| | | | | | | | | ||T.85LO = Optional LO with T.85/JBIG
| | | | | | | | | ||(Basic JBIG is 128 lines/stripe; LO
| | | | | | | | | || allows other stripe sizes to be used)
--+--+--+--+--+--+--+--+--+--++---------------------------------------
4.1.2 Multi-level coding โจ
okay bestie, quick heads up ๐ when 37, 69, 73, 79 and 95 are set to "1", the feature represented by "0" is also available ๐ซถ like, if plane interleave is available, then stripe interleave is also available. no cap, it's giving bonus feature energy ๐
<------- T.30 bits --------->
15|16|31|36|37|68|69|73|78|79||Description
--+--+--+--+--+--+--+--+--+--++---------------------------------------
x| | |*0| x| 0| x| x| | ||No grey or colour (no T.43 or JPEG)
*1| | | 0| x| 1| 0| x| | ||JPEG, grey scale only
*1| | | 0| x| 1| 1| 0| | ||JPEG, full colour, subsampling
*1| | | 0| x| 1| 1| 1| | ||JPEG, full colour, no subsampling
*1| | | 1| 0|*1| 0| x| | ||T.43, JPEG, grey only, stripe i/l
*1| | | 1| 1|*1| 0| x| | ||T.43, JPEG, grey only, plane i/l
*1| | | 1| 0|*1| 1| 0| | ||T.43, JPEG, colour, stripe i/l, s/s
*1| | | 1| 0|*1| 1| 1| | ||T.43, JPEG, colour, stripe i/l, no s/s
*1| | | 1| 1|*1| 1| 0| | ||T.43, JPEG, colour, plane i/l, s/s
*1| | | 1| 1|*1| 1| 1| | ||T.43, JPEG, colour, plane i/l, no s/s
| | | | | | | | | ||'s/s' is 4:1:1 L*:a*:b* subsampling
| | | | | | | | | ||'No s/s' is 1:1:1 L*:a*:b* subsampling
| | | | | | | | | ||'stripe i/l' is stripe interleave
| | | | | | | | | ||'plane i/l' is full-plane interleave
--+--+--+--+--+--+--+--+--+--++---------------------------------------
4.1.3 MRC format ๐ฆ
so the multi-level coders from above (the colour and grey ones) handle the foreground and background images inside an MRC-format document ๐, and the bi-level codes take care of the mask layer ๐.
<---- T.30 bits ------>
15|92|93|94|95| | | ||Description
--+--+--+--+--+--+--+--++---------------------------------------
x| 0| 0| 0| x| | | ||MRC not accepted
*1| #| #| #| 0| | | ||MRC level, max strip 256 lines
*1| #| #| #| 1| | | ||MRC level, max strip full page
| | | | | | | ||### is MRC performance level (1-7, per T.44)
--+--+--+--+--+--+--+--++---------------------------------------
4.2 Resolution and units ๐ง
okay so bi-level coding has to support at least one of 200*100dpi or 8*3.85dpmm, and that's required in every case for Group 3 fax conformance ๐ โจ. For multi-level coders (colour/grey) and MRC mask layers, the base resolution is 200*200dpi, which means bit 15 must be set ๐.
when multi-level coders (JPEG or T.43) or MRC are in use, only inch-based square resolutions are available ๐ . BUT the base non-square resolution (i.e. 200x100dpi or 8x3.85dpmm) must still be available as a capability, for use with the mandatory bi-level coder (MH). so any references to metric and non-square resolutions in the table below apply only to bi-level coders ๐ธ.
when describing MRC capabilities, the complete set of usable resolutions is listed. however, there are some restrictions on their use: (a) 100dpi resolution can be used only with multi-level images, and (b) any multi-level image resolution is required to be an integral sub-multiple of the applicable mask resolution ๐ซถ.
in the following table:
dpi= dots per inchdpmm= dots per millimetre
preferred resolutions are indicated here, even though inch- or mm-based units must be accepted, according to the T.30 protocol [6] ๐.
<------- T.30 bits ------>
15|41|42|43|44|45|68|97|98||Description
--+--+--+--+--+--+--+--+--++-----------------------------------------
0| | | 0| x| x| | | ||Resolution = base only
| | | | | | | | ||
1| | | 0| 0| 0| | | ||Invalid
1| | | 0| 0| 1| | | ||Resolution = 8*3.85dpmm or 8*7.7dpmm
1| | | 0| 1| 0| | | ||Resolution = 200*100dpi or 200*200dpi
1| | | 0| 1| 1| | | ||Resolution = 8*3.85dpmm or 8*7.7dpmm
| | | | | | | | || or 200*100dpi or 200*200dpi
| | | | | | | | ||
0| | | 1| 0| 0| | | ||Invalid
0| | | 1| 0| 1| | | ||Resolution = 8*3.85dpmm or 16*15.4dpmm
0| | | 1| 1| 0| | | ||Resolution = 200*100dpi or 400*400dpi
0| | | 1| 1| 1| | | ||Resolution = 8*3.85dpmm or 16*15.4dpmm
| | | | | | | | || or 200*100dpi or 400*400dpi
| | | | | | | | ||
1| | | 1| 0| 0| | | ||Invalid
1| | | 1| 0| 1| | | ||Resolution = 8*3.85dpmm or 8*7.7dpmm
| | | | | | | | || or 16*15.4dpmm
1| | | 1| 1| 0| | | ||Resolution = 200*100dpi or 200*200dpi
| | | | | | | | || or 400*400dpi
1| | | 1| 1| 1| | | ||Resolution = 8*7.7dpmm or 8*7.7dpmm
| | | | | | | | || or 16*15.4dpmm
| | | | | | | | || or 200*100dpi or 200*200dpi
| | | | | | | | || or 400*400dpi
--+--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | | | | | | ||Resolutions as above
| 1| | | | | | | ||Also supports 8*15.4dpmm (bi-level only)
| | | | | | | | ||Independent of bits 44,45
--+--+--+--+--+--+--+--+--++-----------------------------------------
| | 0| | | | | | ||Resolutions as above
| | 1| | | | | | ||Also supports 300*300dpi
| | | | | | | | ||Independent of bits 44,45
--+--+--+--+--+--+--+--+--++-----------------------------------------
| | | | | | x| 0| ||Resolutions as above
| | | | | |*1| 1| ||Also 300*300dpi or 400*400dpi (see below)
| | | | | | | | ||(Applies colour, grey-scale or MRC mask)
| | | | | | | | ||(Valid only when bit 42 or 43 is set.)
| | | | | | | | ||(42 => 300dpi, 43=>400dpi)
--+--+--+--+--+--+--+--+--++-----------------------------------------
| | | | | | x| | 0||Resolutions as above
| | | | | |*1| | 1||Also 100*100dpi
| | | | | | | | ||(Applies colour or grey-scale only)
| | | | | | | | ||(Independent of bits 44,45)
--+--+--+--+--+--+--+--+--++-----------------------------------------
4.3 Colour capabilities ๐
bit 68 (JPEG) is required for any colour/grey scale mode, and bit 36 is the one that flags the extra T.43 capability ๐.
<------- T.30 bits --->
36|68|69|71|74|75| | ||Description
--+--+--+--+--+--+--+--+-----------------------------------------
0| 0| x| | | | | ||No grey scale or colour
x| 1| 0| | | | | ||Grey scale only
0| 1| 1| | | | | ||Full colour capability (CIE L*a*b*)
1|*1| 1| | | | | ||Full and limited colour capability:
| | | | | | | || (CIE L*a*b*, palette, RGB 1 bit/colour
| | | | | | | || and CMY(K)1 bit/colour)
--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | x| | | | ||
| 1| | 0| | | | ||8 bits/pixel and up to 4096 palette entries
| 1| | 1| | | | ||8 or 12 bits/pixel, 65536 palette entries
--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | | x| | | ||
| 1| | | 0| | | ||CIE standard illuminant D50 (per T.42)
| 1| | | 1| | | ||Custom illuminants (definition provided)
--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | | | x| | ||
| 1| | | | 0| | ||Default gamut (per T.42)
| 1| | | | 1| | ||Custom gamuts (definition provided)
--+--+--+--+--+--+--+--++-----------------------------------------
4.4 Document size ๐
A4 width (215mm) is required as a minimum for Group 3 fax conformance ๐. A Group 3 fax machine must always be able to receive an A4 image ๐ซถ.
<---- T.30 bits ------>
17|18|19|20|76|77| | ||Description
--+--+--+--+--+--+--+--++-----------------------------------------
0| 0| | | | | | ||Width = 215mm
1| 0| | | | | | ||Width = 215mm or 255mm
0| 1| | | | | | ||Width = 215mm, 255mm or 303mm
1| 1| | | | | | ||Invalid - interpret as (17=0,18=1)
| | | | | | | ||(measurements described as scan line length)
| | | | | | | ||(corresp. inch measurements: T.4 sect 2.2)
--+--+--+--+--+--+--+--++-----------------------------------------
| | 0| 0| | | | ||Length = 297mm (A4)
| | 1| 0| | | | ||Length = 297mm (A4) or 364mm (B4)
| | 0| 1| | | | ||Length = unlimited
| | 1| 1| | | | ||Invalid
--+--+--+--+--+--+--+--++-----------------------------------------
| | | | 0| 0| | ||Papersize = A4
| | | | 1| 0| | ||Papersize = A4 or NA-Letter
| | | | 0| 1| | ||Papersize = A4 or NA-Legal
| | | | 1| 1| | ||Papersize = A4 or NA-Letter or NA-Legal
| | | | | | | ||(These in addition to paper sizes implied
| | | | | | | || by bits 17-20 above)
--+--+--+--+--+--+--+--++-----------------------------------------
5. Mapping T.30 capabilities to fax feature schema ๐งฉ
this section follows the structure of the previous one, except the decision tables are restated with feature set expression mappings in the action stub ๐ . the feature set expressions use media feature tags presented in "Content feature schema for Internet fax" [4] โจ.
to build a feature set expression for a collection of DIS frame bits:
- compare the DIS bits with each decision table in the following sections (5.1 to 5.4). some decision tables are made of a number of sub-tables separated by horizontal lines ๐ฆ.
- the DIS bits will match exactly one row from each table or sub-table: collect the matching feature set expression from the action stub (the right hand column of the table) ๐.
- for the table in section 5.2, which has several sub-tables, combine the feature set expressions from each sub-table with a logical-OR:
(| s1 s2 ... sn ), where's1','s2'etc. are the feature set expressions selected from each sub-table. this gives one single feature set expression for the table ๐ธ. - for the tables in sections 5.3 and 5.4, combine the sub-table expressions with a logical-AND:
(& s1 s2 ... sn )๐. - combine the feature set expressions for each table like this:
(& (| T511 T512 ) T513 T52 T53 T54 )
where:
- T511 is the feature set expression obtained from the table in section 5.1.1
- T512 is obtained from the table in section 5.1.2
- T513 is obtained from the table in section 5.1.3
- T52 is obtained from the table in section 5.2
- T53 is obtained from the table in section 5.3
- T54 is obtained from the table in section 5.4
the resulting expression is the feature set expression for the DIS bits you gave. remember that there may be other capabilities not expressed by the DIS bits that should be folded into the final feature expression (e.g. TIFF image file structure) ๐.
to go the reverse way, match the feature set to each row of each decision table using the matching algorithm in RFC 2533 [2], then OR together the DIS bit masks for each row whose feature set expression is completely contained by (i.e. is a subset of) that one (where the bit value in a table is 'x', use '0') ๐ซถ.
a feature set A is completely contained by B if the feature set match of A and B (obtained by applying the feature set matching algorithm in [2]) is equal to A ๐.
5.1 Image coding ๐ธ
5.1.1 Bi-level coding โจ
<------- T.30 bits --------->
15|16|31|36|37|68|69|73|78|79||Feature set expression
x| 0| 0| | | | | | 0| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH]) )
x| 1| 0| | | | | | 0| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MR])
x| 0| 1| | | | | | 0| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MMR])
x| 1| 1| | | | | | 0| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MR,MMR])
x| 0| 0| | | | | | 1| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size=128) )
x| 1| 0| | | | | | 1| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MR,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size=128) )
x| 0| 1| | | | | | 1| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MMR,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size=128) )
x| 1| 1| | | | | | 1| 0||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MR,MMR,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size=128) )
x| 0| 0| | | | | |*1| 1||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size>=0) )
x| 1| 0| | | | | |*1| 1||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MR,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size>=0) )
x| 0| 1| | | | | |*1| 1||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MMR,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size>=0) )
x| 1| 1| | | | | |*1| 1||(& (color=binary)
| | | | | | | | | || (image-coding=[MH,MR,MMR,JBIG])
| | | | | | | | | || (image-coding-constraint=JBIG-T85)
| | | | | | | | | || (JBIG-stripe-size>=0) )
--+--+--+--+--+--+--+--+--+--++---------------------------------------
5.1.2 Multi-level coding โจ
Okay, bestie, this next one is where the multi-level coding combos live ๐ Look at how the T.30 bits line up with the grey, full, and limited colour options, and how JPEG and JBIG show up in the feature set expressions ๐
<------- T.30 bits --------->
15|16|31|36|37|68|69|73|78|79||Feature set expression
--+--+--+--+--+--+--+--+--+--++---------------------------------------
x| | |*0| x| 0| x| x| | ||
*1| | | 0| x| 1| 0| x| | ||(& (color=grey)
| | | | | | | | | || (image-coding=JPEG)
| | | | | | | | | || (image-coding-constraint=JPEG-T4E) )
*1| | | 0| x| 1| 1| 0| | ||(& (color=[grey,full])
| | | | | | | | | || (image-coding=JPEG)
| | | | | | | | | || (image-coding-constraint=JPEG-T4E)
| | | | | | | | | || (& (color=full)
| | | | | | | | | || (color-subsampling="4:1:1") ) )
*1| | | 0| x| 1| 1| 1| | ||(& (color=[grey,full])
| | | | | | | | | || (image-coding=JPEG)
| | | | | | | | | || (image-coding-constraint=JPEG-T4E)
| | | | | | | | | || (& (color=full)
| | | | | | | | | || (color-subsampling=
| | | | | | | | | || ["1:1:1","4:1:1"]) ) )
*1| | | 1| 0|*1| 0| x| | ||(& (color=grey)
| | | | | | | | | || (image-coding=[JPEG,JBIG])
| | | | | | | | | || (image-coding-constraint=
| | | | | | | | | || [JPEG-T4E,JBIG-T43])
| | | | | | | | | || (image-interleave=stripe) )
*1| | | 1| 1|*1| 0| x| | ||(& (color=grey)
| | | | | | | | | || (image-coding=[JPEG,JBIG])
| | | | | | | | | || (image-coding-constraint=
| | | | | | | | | || [JPEG-T4E,JBIG-T43])
| | | | | | | | | || (image-interleave=[stripe,plane]) )
*1| | | 1| 0|*1| 1| 0| | ||(& (color=[limited,mapped,grey,full])
| | | | | | | | | || (image-coding=[JPEG,JBIG])
| | | | | | | | | || (image-coding-constraint=
| | | | | | | | | || [JPEG-T4E,JBIG-T43])
| | | | | | | | | || (& (color=full)
| | | | | | | | | || (color-subsampling="4:1:1"]) )
| | | | | | | | | || (image-interleave=stripe) )
*1| | | 1| 0|*1| 1| 1| | ||(& (color=[limited,mapped,grey,full])
| | | | | | | | | || (image-coding=[JPEG,JBIG])
| | | | | | | | | || (image-coding-constraint=
| | | | | | | | | || [JPEG-T4E,JBIG-T43])
| | | | | | | | | || (& (color=full)
| | | | | | | | | || (color-subsampling=
| | | | | | | | | || ["1:1:1","4:1:1"]) )
| | | | | | | | | || (image-interleave=stripe) )
*1| | | 1| 1|*1| 1| 0| | ||(& (color=[limited,mapped,grey,full])
| | | | | | | | | || (image-coding=[JPEG,JBIG])
| | | | | | | | | || (image-coding-constraint=
| | | | | | | | | || [JPEG-T4E,JBIG-T43])
| | | | | | | | | || (& (color=full)
| | | | | | | | | || (color-subsampling="4:1:1"]) )
| | | | | | | | | || (image-interleave=[stripe,plane]) )
*1| | | 1| 1|*1| 1| 1| | ||(& (color=[limited,mapped,grey,full])
| | | | | | | | | || (image-coding=[JPEG,JBIG])
| | | | | | | | | || (image-coding-constraint=
| | | | | | | | | || [JPEG-T4E,JBIG-T43])
| | | | | | | | | || (& (color=full)
| | | | | | | | | || (image-coding=JPEG)
| | | | | | | | | || (color-subsampling=
| | | | | | | | | || ["1:1:1","4:1:1"]) )
| | | | | | | | | || (image-interleave=[stripe,plane]) )
--+--+--+--+--+--+--+--+--+--++---------------------------------------
15|16|31|36|37|68|69|73|78|79||
--+--+--+--+--+--+--+--+--+--++---------------------------------------
5.1.3 MRC format ๐ฆ
Next up is the MRC format, and honestly the table is giving bit-level drama ๐
<---- T.30 bits ------>
15|92|93|94|95| | | ||Feature set expression
--+--+--+--+--+--+--+--++---------------------------------------
x| 0| 0| 0| x| | | ||(MRC-mode=0)
*1| #| #| #| 0| | | ||(& (MRC-mode<=###)
| | | | | | | || (MRC-max-stripe-size=[0..256]) )
*1| #| #| #| 1| | | ||(& (MRC-mode<=###)
| | | | | | | || (MRC-max-stripe-size>=0) )
--+--+--+--+--+--+--+--++---------------------------------------
5.2 Resolution and units ๐
Resolution time, bestie ๐ธ This table lines up the T.30 bits for dpi and the xyratio values, and it's a whole vibe.
<------- T.30 bits ------>
15|41|42|43|44|45|68|97|98||Feature set expression
--+--+--+--+--+--+--+--+--+--++-----------------------------------------
0| | | 0| | | | | ||(& (color=binary)
| | | | | | | | || (| (& (dpi=200) (dpi-xyratio=200/100) )
| | | | | | | | || (& (dpi=204)
| | | | | | | | || (dpi-xyratio=204/98) ) ) )
| | | | | | | | ||
1| | | 0| | | | | ||(| (& (color=binary)
| | | | | | | | || (| (& (dpi=204)
| | | | | | | | || (dpi-xyratio=204/98) )
| | | | | | | | || (& (dpi=204)
| | | | | | | | || (dpi-xyratio=204/196) )
| | | | | | | | || (& (dpi=200)
| | | | | | | | || (dpi-xyratio=200/100) ) ) )
| | | | | | | | || (& (dpi=200) (dpi-xyratio=1) ) )
0| | | 1| | | | | ||(| (& (color=binary)
| | | | | | | | || (| (& (dpi=204)
| | | | | | | | || (dpi-xyratio=204/98) )
| | | | | | | | || (& (dpi=408)
| | | | | | | | || (dpi-xyratio=408/391) )
| | | | | | | | || (& (dpi=200)
| | | | | | | | || (dpi-xyratio=200/100) ) ) )
| | | | | | | | || (& (dpi=400) (dpi-xyratio=1) ) )
1| | | 1| | | | | ||(| (& (color=binary)
| | | | | | | | || (| (& (dpi=204)
| | | | | | | | || (dpi-xyratio=204/98) )
| | | | | | | | || (& (dpi=204)
| | | | | | | | || (dpi-xyratio=204/196) )
| | | | | | | | || (& (dpi=408)
| | | | | | | | || (dpi-xyratio=408/391) )
| | | | | | | | || (& (dpi=200)
| | | | | | | | || (dpi-xyratio=200/100) ) ) )
| | | | | | | | || (& (dpi=200) (dpi-xyratio=1) )
| | | | | | | | || (& (dpi=400) (dpi-xyratio=1) ) )
--+--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | | | | | | ||
| 1| | | | | | | ||(& (color=binary)
| | | | | | | | || (dpi=204)
| | | | | | | | || (dpi-xyratio=204/391) )
--+--+--+--+--+--+--+--+--++-----------------------------------------
| | 0| | | | | | ||
| | 1| | | | | | ||(& (dpi=300) (dpi-xyratio=1) )
--+--+--+--+--+--+--+--+--++-----------------------------------------
| | x| x| | | x| 0| ||
| | x| 1| | |*1| 1| ||(& (dpi=400) (dpi-xyratio=1) )
| |*1| 0| | |*1| 1| ||
--+--+--+--+--+--+--+--+--++-----------------------------------------
| | | | | | x| | 0||
| | | | | |*1| | 1||(| (color=binary)
| | | | | | | | || (& (color=[limited,mapped,grey,full])
| | | | | | | | || (dpi=100) (dpi-xyratio=1) ) )
--+--+--+--+--+--+--+--+--++-----------------------------------------
15|41|42|43|44|45|68|97|98||
--+--+--+--+--+--+--+--+--++-----------------------------------------
Quick note ๐ : every number in these media feature expressions is an integer or a rational value, which is why you'll see the n/m fraction format used here ๐
Also note ๐ซถ: the preferred unit bits (44,45) aren't tested in this section, because a Group 3 fax machine has to accept and process either form of units for binary images. Every resolution is expressed in dpi, and here are the metric unit equivalents ๐
204 ~= (1728/215)*25.4 ~= 8.04dpmm expressed in dpi
408 ~= (3456/215)*25.4 ~= 16.08dpmm expressed in dpi
98 ~= 3.85*25.4 ~= 3.85dpmm expressed in dpi
196 ~= 7.70*25.4 ~= 7.70dpmm expressed in dpi
391 ~= 15.40*25.4 ~= 15.40dpmm expressed in dpi
5.3 Colour capabilities ๐
Last stop in this part: colour capabilities, where the CIELAB, Device-RGB, Device-CMY and Device-CMYK options get sorted out ๐
<------- T.30 bits --->
36|68|69|71|74|75| | ||Feature set expression
--+--+--+--+--+--+--+--++-----------------------------------------
0| 0| x| | | | | ||
x| 1| 0| | | | | ||(| (color=binary)
| | | | | | | || (& (color=grey)
| | | | | | | || (color-space=CIELAB) ) )
0| 1| 1| | | | | ||(| (color=binary)
| | | | | | | || (& (color=[grey,full])
| | | | | | | || (color-space=CIELAB) ) )
1|*1| 1| | | | | ||(| (color=binary)
| | | | | | | || (& (color=limited)
| | | | | | | || (color-space=[Device-RGB,Device-CMY])
| | | | | | | || (color-levels<=8) )
| | | | | | | || (& (color=limited)
| | | | | | | || (color-space=Device-CMYK)
| | | | | | | || (color-levels<=16) )
| | | | | | | || (& (color=[mapped,grey,full])
| | | | | | | || (color-space=CIELAB) ) )
--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | x| | | | ||
| 1| | 0| | | | ||(| (color=[binary,limited])
| | | | | | | || (& (color=mapped)
| | | | | | | || (color-levels<=4096) )
| | | | | | | || (& (color=grey)
| | | | | | | || (color-levels<=256) )
| | | | | | | || (& (color=full)
| | | | | | | || (color-levels<=16777216) ) )
| 1| | 1| | | | ||(| (color=[binary,limited])
| | | | | | | || (& (color=mapped)
| | | | | | | || (color-levels<=65536) )
| | | | | | | || (& (color=grey)
| | | | | | | || (color-levels<=4096) )
| | | | | | | || (& (color=full)
| | | | | | | || (color-levels<=68719476736) ) )
--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | | x| | | ||
| 1| | | 0| | | ||(| (color=[binary,limited])
| | | | | | | || (& (color=[mapped,grey,full])
| | | | | | | || (color-illuminant=D50) ) )
| 1| | | 1| | | || -- Any color illuminant: D50 or custom
| | | | | | | || -- See note below
--+--+--+--+--+--+--+--++-----------------------------------------
| 0| | | | x| | ||
| 1| | | | 0| | ||(| (color=[binary,limited])
| | | | | | | || (& (color=grey)
| | | | | | | || (CIELAB-L-min>=0)
| | | | | | | || (CIELAB-L-max<=100) )
| | | | | | | || (& (color=[mapped,full])
| | | | | | | || (CIELAB-L-min>=0)
| | | | | | | || (CIELAB-L-max<=100)
| | | | | | | || (CIELAB-a-min>=-85)
| | | | | | | || (CIELAB-a-max<=85)
| | | | | | | || (CIELAB-b-min>=-75)
| | | | | | | || (CIELAB-b-max<=125) ) )
| 1| | | | 1| | || -- Any color gamut: default or custom
--+--+--+--+--+--+--+--++-----------------------------------------
36|68|69|71|74|75| | ||Feature set expression
--+--+--+--+--+--+--+--++-----------------------------------------
Okay so that last bit was the colour tables wrapping up ๐จโจ The big takeaway is that the colour illuminant and colour gamut bits each get their own little rules, and you just match your bits to the right row. Easy peasy ๐
NOTE: the above table assumes the registration of a feature tag for color illuminant, values of which are tokens that are the same as those described by ITU T.4 [7], Annex E, section E.6.7. ๐ง
5.4 Document size ๐
Okay bestie, so A4 width (215mm) is required as a minimum for Group 3 fax conformance ๐จ๏ธ That means a Group 3 fax machine must always be able to receive an A4 image. No cap, that one's non-negotiable ๐ซถ
<---- T.30 bits ------>
17|18|19|20|76|77| | ||Feature set expression
--+--+--+--+--+--+--+--++-----------------------------------------
0| 0| | | | | | ||(Size-x <= 2150/254)
1| 0| | | | | | ||(Size-x <= 2550/254)
x| 1| | | | | | ||(Size-x <= 3030/254)
--+--+--+--+--+--+--+--++-----------------------------------------
| | 0| 0| | | | ||(Size-y <= 2970/254)
| | 1| 0| | | | ||(Size-y <= 3640/254)
| | 0| 1| | | | || -- unlimited
| | 1| 1| | | | || -- invalid
--+--+--+--+--+--+--+--++-----------------------------------------
| | | | 0| 0| | ||(Paper-size=A4)
| | | | 1| 0| | ||(Paper-size=[A4,Letter])
| | | | 0| 1| | ||(Paper-size=[A4,Legal])
| | | | 1| 1| | ||(Paper-size=[A4,Letter,Legal])
--+--+--+--+--+--+--+--++-----------------------------------------
6. Examples ๐
NOTE: Although motivated by the requirements of eifax [5], this document is concerned with describing capabilities of Group 3 fax systems [6]. As such, the algorithms do not of themselves create equivalent Internet fax capability statements but, rather, they construct capability expressions that might be incorporated into those for eifax systems. ๐
This point is illustrated at the end of the first example below, where subsection 6.1.1 has been added. It combines T.30 capabilities with an appropriate TIFF file format capability to yield an expression that might be used to describe an Internet fax system ๐ฆ
6.1 Common black-and-white fax machine ๐
Okay this first example is the main character ๐ Here's the DIS/DTC frame, bit by bit:
DIS/DTC
Bit No. DIS/DTC bit description Value
------- ----------------------- -----
15 R8 x 7.7 lines/mm and/or 1
200 x 200 pels/25.4 mm
16 Two dimensional coding capability 1
17,18 Recording width capabilities: 0,0
Scan line length 215 mm + 1%
19,20 Recording length capability: 01
unlimited
31 T.6 (MMR) coding capability 1
36 T.43 (JBIG) coding capability 0
37 Plane interleave 0
41 Resolution: 8x15.4 dpmm 0
42 Resolution: 300x300 dpi 1
43 Resolution: 16x15.4 dpmm and/or 400x400 0
dpi
68 JPEG coding: not supported 0
69 Full color mode: not supported 0
71 12 bits/pel component: not supported 0
73 No subsampling (1:1:1): not supported 0
74 Custom illuminant: not supported 0
75 Custom gamut range: not supported 0
76 North American Letter paper size 1
(8.5"x11") capability
77 North American Legal paper size 0
(8.5"x14") capability: not supported
78 Single-progression sequential coding 0
(T.85, bi-level JBIG) basic capability:
not supported
79 Single-progression sequential coding 0
(T.85, bi-level JBIG) optional L0
capability for other than 128
lines/stripe: not supported
92,93,94 T.44 (Mixed Raster Content) mode: 0,0,0
not supported
95 Page length maximum stripe size for MRC 0
coding: not supported.
97 Multi-level resolution 300x300dpi or 0
400x400dpi: not supported
98 Multi-level resolution 100x100dpi: 0
not supported
Following the procedure in section 5, we match these DIS bits against the decision tables in sections 5.1 to 5.4 and get:
5.1.1 [Bits 16,31,78,79 = 1,1,0,0]
(& (color=binary) (image-coding=[MH,MR,MMR]) )
5.1.2 [Bits 15,36,37,68,69,73 = 1,0,0,0,0,0]
-- no capabilities
5.1.3 [Bits 15,92,93,94,95 = 1,0,0,0,0]
(MRC-mode=0)
5.2 [Bits 15,43 = 1,0]
(| (& (color=binary)
(| (& (dpi=204)
(dpi-xyratio=204/98) )
(& (dpi=204)
(dpi-xyratio=204/196) )
(& (dpi=200)
(dpi-xyratio=200/100) ) ) )
(& (dpi=200) (dpi-xyratio=1) ) )
[Bit 41 = 0]
-- no capabilities
[Bit 42 = 1]
(& (dpi=300) (dpi-xyratio=1) )
[Bits 42,43,68,97 = 0,0,0,0]
-- no capabilities
[Bits 68,98 = 0,0]
-- no capabilities
5.3 [Bits 36,68,69 = 0,0,0]
-- no capabilities
[Bits 68,71 = 0,0]
-- no capabilities
[Bits 68,74 = 0,0]
-- no capabilities
[Bits 68,75 = 0,0]
-- no capabilities
5.4 [Bits 17,18 = 0,0]
(size-x<=2150/254)
[Bits 19,20 = 0,1]
-- no capability constraint
[Bits 76,77 = 1,0]
(Paper-size=[A4,Letter])
Now we combine these as section 5 says. The initial expression is built verbatim using the rules in the first part of section 5, even though it has some redundancy in it ๐
(& (| (& (color=binary) (image-coding=[MH,MR,MMR]) ) )
(MRC-mode=0)
(| (| (& (color=binary)
(| (& (dpi=204) (dpi-xyratio=204/98) )
(& (dpi=204) (dpi-xyratio=204/196) )
(& (dpi=200) (dpi-xyratio=200/100) ) ) )
(& (dpi=200) (dpi-xyratio=1) ) )
(& (dpi=300) (dpi-xyratio=1) ) )
(& (size-x<=2150/254)
(Paper-size=[A4,Letter]) ) )
And this gets simplified next. The expression (& (| (& A B ) ) C ... ) simplifies to just (& A B C ... ), so we end up with:
(& (color=binary)
(image-coding=[MH,MR,MMR])
(MRC-mode=0)
(| (& (dpi=204) (dpi-xyratio=204/98) )
(& (dpi=204) (dpi-xyratio=204/196) )
(& (dpi=200) (dpi-xyratio=200/100) )
(& (dpi=200) (dpi-xyratio=1) )
(& (dpi=300) (dpi-xyratio=1) ) )
(size-x<=2150/254)
(Paper-size=[A4,Letter]) )
6.1.1 Corresponding Internet fax capabilities ๐
Okay so for an Internet fax device, you should include extra capabilities that the T.30 DIS frame doesn't cover ๐ง For example, the supported TIFF file structure. Here's how that looks:
(& (color=binary)
(image-file-structure=[TIFF-Limited,TIFF-Minimal])
(image-coding=[MH,MR,MMR])
(MRC-mode=0)
(| (& (dpi=204) (dpi-xyratio=204/98) )
(& (dpi=204) (dpi-xyratio=205/196) )
(& (dpi=200) (dpi-xyratio=200/100) )
(& (dpi=200) (dpi-xyratio=1) )
(& (dpi=300) (dpi-xyratio=1) ) )
(size-x<=2150/254)
(Paper-size=[A4,Letter]) )
6.2 Full-featured color fax machine ๐
okay bestie, now we're doing the full-featured COLOR fax machine ๐ this one's giving everything: color, JPEG, the whole buffet ๐ here's its DIS/DTC bit table, bit by bit:
DIS/DTC
Bit No. DIS/DTC bit description Value
------- ----------------------- -----
15 R8 x 7.7 lines/mm and/or 1
200 x 200 pels/25.4 mm
16 Two dimensional coding capability 1
17,18 Recording width capabilities: 0,0
Scan line length 215 mm + 1%
19,20 Recording length capability: 01
unlimited
31 T.6 (MMR) coding capability 1
36 T.43 (JBIG) coding capability 0
37 Plane interleave 0
41 Resolution: 8x15.4 dpmm 1
42 Resolution: 300x300 dpi 0
43 Resolution: 16x15.4 dpmm and/or 400x400 1
dpi
68 JPEG coding: supported 1
69 Full color mode: supported 1
71 12 bits/pel component: not supported 0
73 No subsampling (1:1:1): supported 1
74 Custom illuminant: not supported 0
75 Custom gamut range: not supported 0
76 North American Letter paper size 1
(8.5"x11") capability
77 North American Legal paper size 0
(8.5"x14") capability: not supported
78 Single-progression sequential coding 0
(T.85, bi-level JBIG) basic capability:
not supported
79 Single-progression sequential coding 0
(T.85, bi-level JBIG) optional L0
capability for other than 128
lines/stripe: not supported
92,93,94 T.44 (Mixed Raster Content) mode: 0,0,1
mode 1 supported
95 Page length maximum stripe size for MRC 1
coding.
97 Multi-level resolution 300x300dpi or 1
400x400dpi: supported
98 Multi-level resolution 100x100dpi: 1
supported
okay so now we take these DIS bits and match them up against the decision tables in sections 5.1 to 5.4 ๐ฅ and here's what pops out:
5.1.1 [Bits 16,31,78,79 = 1,1,0,0]
(& (color=binary) (image-coding=[MH,MR,MMR]) )
5.1.2 [Bits 15,36,37,68,69,73 = 1,0,0,1,1,1]
(& (color=[grey,full])
(image-coding=JPEG)
(image-coding-constraint=JPEG-T4E)
(& (color=full)
(image-coding=JPEG)
(color-subsampling=["1:1:1","4:1:1"]) ) )
5.1.3 [Bits 15,92,93,94,95 = 1,0,0,1,1]
(& (MRC-mode<=1) (MRC-max-stripe-size>=0) )
5.2 [Bits 15,43 = 1,1]
(| (& (color=binary)
(| (& (dpi=204)
(dpi-xyratio=204/98) )
(& (dpi=204)
(dpi-xyratio=204/196) )
(& (dpi=408)
(dpi-xyratio=408/391) )
(& (dpi=200)
(dpi-xyratio=200/100) ) ) )
(& (dpi=200) (dpi-xyratio=1) )
(& (dpi=400) (dpi-xyratio=1) ) )
[Bit 41 = 1]
(& (color=binary)
(dpi=204) (dpi-xyratio=204/391) )
[Bit 42 = 0]
-- no capabilities
[Bits 42,43,68,97 = 0,1,1,1]
(& (dpi=400) (dpi-xyratio=1) )
[Bits 68,98 = 1,1]
(| (color=binary)
(& (color=[limited,mapped,grey,full])
(dpi=100) (dpi-xyratio=1) ) )
5.3 [Bits 36,68,69 = 0,1,1]
(| (color=binary)
(& (color=[grey,full])
(color-space=CIELAB) ) )
[Bits 68,71 = 1,0]
(| (color=[binary,limited])
(& (color=mapped)
(color-levels<=4096) )
(& (color=grey)
(color-levels<=256) )
(& (color=full)
(color-levels<=16777216) ) )
[Bits 68,74 = 1,0]
(| (color=[binary,limited])
(& (color=[mapped,grey,full])
(color-illuminant=D50) ) )
[Bits 68,75 = 1,0]
(| (color=[binary,limited])
(& (color=grey)
(CIELAB-L-min>=0)
(CIELAB-L-max<=100) )
(& (color=[mapped,full])
(CIELAB-L-min>=0)
(CIELAB-L-max<=100)
(CIELAB-a-min>=-85)
(CIELAB-a-max<=85)
(CIELAB-b-min>=-75)
(CIELAB-b-max<=125) ) )
5.4 [Bits 17,18 = 0,0]
(size-x<=2150/254)
[Bits 19,20 = 0,1]
-- no capability constraint
[Bits 76,77 = 1,0]
(Paper-size=[A4,Letter])
then we smush everything together like section 5 says โจ and end up with this big combined vibe:
(& (| (& (color=binary)
(image-coding=[MH,MR,MMR]) )
(& (color=[grey,full])
(image-coding=JPEG)
(image-coding-constraint=JPEG-T4E)
(& (color=full)
(image-coding=JPEG)
(color-subsampling=["1:1:1","4:1:1"]) ) )
(& (MRC-mode<=1) (MRC-max-stripe-size>=0) )
(| (| (& (color=binary)
(| (& (dpi=204) (dpi-xyratio=204/98) )
(& (dpi=204) (dpi-xyratio=204/196) )
(& (dpi=408) (dpi-xyratio=408/391) )
(& (dpi=200) (dpi-xyratio=200/100) ) ) )
(& (dpi=200) (dpi-xyratio=1) )
(& (dpi=400) (dpi-xyratio=1) ) )
(& (color=binary)
(dpi=204) (dpi-xyratio=204/391) )
(& (dpi=400) (dpi-xyratio=1) )
(| (color=binary)
(& (color=[limited,mapped,grey,full])
(dpi=100) (dpi-xyratio=1) ) ) )
(& (| (color=binary)
(& (color=[grey,full]) (color-space=CIELAB) ) )
(| (color=[binary,limited])
(& (color=mapped) (color-levels<=4096) )
(& (color=grey) (color-levels<=256) )
(& (color=full) (color-levels<=16777216) ) )
(| (color=[binary,limited])
(& (color=[mapped,grey,full]) (color-illuminant=D50) ) )
(| (color=[binary,limited])
(& (color=grey)
(CIELAB-L-min>=0)
(CIELAB-L-max<=100) )
(& (color=[mapped,full])
(CIELAB-L-min>=0)
(CIELAB-L-max<=100)
(CIELAB-a-min>=-85)
(CIELAB-a-max<=85)
(CIELAB-b-min>=-75)
(CIELAB-b-max<=125) ) ) )
(& (size-x<=2150/254)
(Paper-size=[A4,Letter]) ) )
and then it simplifies down to this clean lil expression ๐ง
(| (& (color=binary)
(image-coding=[MH,MR,MMR])
(MRC-mode<=1) (MRC-max-stripe-size>=0)
(| (& (dpi=204) (dpi-xyratio=204/98) )
(& (dpi=204) (dpi-xyratio=204/196) )
(& (dpi=204) (dpi-xyratio=204/391) )
(& (dpi=408) (dpi-xyratio=408/391) )
(& (dpi=200) (dpi-xyratio=200/100) )
(& (dpi=200) (dpi-xyratio=1) )
(& (dpi=400) (dpi-xyratio=1) ) )
(size-x<=2150/254)
(Paper-size=[A4,Letter]) )
(& (color=grey)
(image-coding=JPEG)
(image-coding-constraint=JPEG-T4E)
(MRC-mode<=1) (MRC-max-stripe-size>=0)
(dpi=[100,200,400]) (dpi-xyratio=1)
(color-space=CIELAB)
(color-levels<=256)
(color-illuminant=D50)
(CIELAB-L-min>=0)
(CIELAB-L-max<=100)
(size-x<=2150/254)
(Paper-size=[A4,Letter]) )
(& (color=full)
(image-coding=JPEG)
(image-coding-constraint=JPEG-T4E)
(color-subsampling=["1:1:1","4:1:1"])
(MRC-mode<=1) (MRC-max-stripe-size>=0)
(dpi=[100,200,400]) (dpi-xyratio=1)
(color-space=CIELAB)
(color-levels<=16777216)
(color-illuminant=D50)
(CIELAB-L-min>=0)
(CIELAB-L-max<=100)
(CIELAB-a-min>=-85)
(CIELAB-a-max<=85)
(CIELAB-b-min>=-75)
(CIELAB-b-max<=125)
(size-x<=2150/254)
(Paper-size=[A4,Letter]) ) )
7. Security Considerations ๐ก
okay this part is serious, so listen up ๐ the security considerations are discussed in the fax feature schema description [4]. this memo is not believed to introduce any additional security concerns ๐
8. Acknowledgements ๐ซถ
the authors gratefully acknowledge the following persons who made comments on earlier versions of this memo: Mr. Hiroshi Tamura and and Dr. Robert Buckley ๐
9. References ๐โจ
okay these are the receipts ๐งพ๐ every single source the spec leans on, so you can go check them yourself bestie
[1] Holtman, K., Mutz, A. and T. Hardie, "Media Feature Tag Registration Procedure", RFC 2506, March 1999.
[2] Graham, K., "A syntax for describing media feature sets" RFC 2533, March 1999.
[3] Masinter, L., Holtman, K., Mutz, A. and D. Wing, "Media Features for Display, Print, and Fax", RFC 2534, March 1999.
[4] Klyne, G. and L. McIntyre, "Content Feature Schema for Internet Fax (V2)", RFC 2879, July 2000.
[5] Masinter, L. and D. Wing, "Extended Facsimile Using Internet Mail", RFC 2532, March 1999.
[6] "Procedures for document facsimile transmission in the general switched telephone network" ITU-T Recommendation T.30 (1996), including Amendment 1 (1997), Amendment 2 (1997), Amendment 3 (1998) and Amendment 4 (1999) International Telecommunications Union
[7] "Standardization of Group 3 facsimile terminals for document transmission" ITU-T Recommendation T.4 (1996), including Amendment 1 (1997), Amendment 2 (1997) and Amendment 3 (1999) International Telecommunications Union (Covers basic fax coding formats: MH, MR; Annex E deals with some color image related matters, including codes for optional custom illuminants. Annex G deals with some aspects of JBIG encoding of multi-level images.)
[8] "Facsimile coding schemes and coding control functions for Group 4 facsimile apparatus" ITU Recommendation T.6 International Telecommunications Union (Commonly referred to as the MMR standard; covers extended 2-D fax coding format)
[9] "Continuous-tone colour representation method for facsimile" ITU-T Recommendation T.42 (1996) International Telecommunications Union (Covers custom illuminant, gamut)
[10] "Colour and gray-scale image representation using lossless coding scheme for facsimile" ITU-T Recommendation T.43 (1997) International Telecommunications Union (Covers JBIG for colour/grey images)
[11] "Mixed Raster Content (MRC)" ITU-T Recommendation T.44 (1999) International Telecommunications Union
[12] "Information technology - Digital compression and coding of continuous-tone still image - Requirements and guidelines" ITU-T Recommendation T.81 (1992) | ISO/IEC 10918-1:1993 International Telecommunications Union (Commonly referred to as JPEG standard)
[13] "Information technology - Coded representation of picture and audio information - Progressive bi-level image compression" ITU-T Recommendation T.82 (1993) | ISO/IEC 11544:1993 International Telecommunications Union (Commonly referred to as JBIG1 standard)
[14] "Application profile for Recommendation T.82 - Progressive bi-level image compression (JBIG1 coding scheme for facsimile apparatus)" ITU-T Recommendation T.85 (1995), including Amendment 1 (1996), Amendment 2 (1997) and Corrigendum 1 (1997) International Telecommunications Union (Covers bi-level JBIG)
[15] Klyne, G., "Protocol-independent Content Negotiation Framework", RFC 2703, September 1999.
[16] "Programs from Decision Tables" E. Humbey Macdonald/American Elsevier computer monographs (19), 1973 ISBN 0-444-19569-6/0-356-04126-3 (This is an old title, and may not be still in print. It contains a number of references to decision table articles published in Communications of the ACM: August 1967, September 1970, January 1966, November 1966, October 1968, January 1965, February 1964, June 1970, November 1965, June 1965, February 1971.)
[17] "Mixed Raster Content (MRC) mode for G3 facsimile" ITU-T Recommendation T.4, Annex H (1999) International Telecommunications Union (Covers stripe size)
10. Authors' Addresses ๐
the people who wrote this ๐ซถ here's how to reach them
Lloyd McIntyre
Xerox Corporation
Mailstop PAHV-121
3400 Hillview Ave.
Palo Alto, CA 94304 USA
Phone: +1-650-813-6762
Fax: +1-650-845-2340
EMail: Lloyd.McIntyre@pahv.xerox.com
Graham Klyne
Content Technologies Ltd.
1220 Parkview,
Arlington Business Park
Theale
Reading, RG7 4SA
United Kingdom
Phone: +44 118 930 1300
Fax: +44 118 930 1301
EMail: GK@ACM.ORG
11. Full Copyright Statement โ๏ธ๐
Copyright (C) The Internet Society (2000). All Rights Reserved.
okay the legal part, and it's actually pretty chill ๐ฆ anyone can copy this document and share it, and they can write derivative works that comment on it, explain it, or help people implement it, and they can publish and distribute those too, in whole or in part, with no restriction at all. The one catch is that the copyright notice and this paragraph have to stay on every copy and every derivative work ๐
The document itself can't be modified in any way, though. You can't strip out the copyright notice or the references to the Internet Society or other Internet organizations. The exceptions are when you're developing Internet standards, in which case the copyright procedures in the Internet Standards process have to be followed, or when you're translating it into a language other than English ๐ธ
The permissions above are perpetual, so the Internet Society and its successors or assigns can't take them back later ๐
Now the boring-but-important bit ๐ This document and the information in it is provided "AS IS", and:
THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
โ ๏ธ translation: they're not promising this is perfect for your use case, so read it carefully before you build on it, bestie ๐
Acknowledgement ๐โจ
Funding for the RFC Editor function is currently provided by the Internet Society. ๐
๐ฆ where this page comes from
- ietf: rfc2880 2000-08
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms