Information technology - Lossy/lossless coding of bi-level images

Technologies de l'information — Codage avec ou sans perte des images au trait

General Information

Status
Withdrawn
Publication Date
12-Dec-2001
Withdrawal Date
12-Dec-2001
Current Stage
9599 - Withdrawal of International Standard
Start Date
13-Mar-2019
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 14492:2001 - Information technology -- Lossy/lossless coding of bi-level images
English language
149 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 14492:2001 - Technologies de l'information -- Codage avec ou sans perte des images au trait
French language
154 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 14492:2001 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Lossy/lossless coding of bi-level images". This standard covers: Information technology - Lossy/lossless coding of bi-level images

Information technology - Lossy/lossless coding of bi-level images

ISO/IEC 14492:2001 is classified under the following ICS (International Classification for Standards) categories: 35.040 - Information coding; 35.040.30 - Coding of graphical and photographical information. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 14492:2001 has the following relationships with other standards: It is inter standard links to ISO/IEC 14492:2001/Amd 2:2003, ISO/IEC 14492:2001/Amd 1:2004, ISO/IEC 14492:2001/Amd 3:2012, ISO/IEC 14492:2019; is excused to ISO/IEC 14492:2001/Amd 2:2003, ISO/IEC 14492:2001/Amd 1:2004. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 14492:2001 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 14492
First edition
2001-12-15
Information technology — Lossy/lossless
coding of bi-level images
Technologies de l'information — Codage avec/sans perte d'images à deux
niveaux
Reference number
©
ISO/IEC 2001
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.

©  ISO/IEC 2001
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic
or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or ISO's member body
in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
Printed in Switzerland
ii © ISO/IEC 2001 – All rights reserved

CONTENTS
Page
0 Introduction . viii
0.1 Interpretation and use of the requirements. viii
0.1.1 Subject matter for JBIG2 coding. viii
0.1.2 Relationship between segments and documents. ix
0.1.3 Structure and use of segments. ix
0.1.4 Internal representations . ix
0.1.5 Decoding results. xi
0.1.6 Decoding procedures. xi
0.2 Lossy coding. xii
0.2.1 Symbol coding. xii
0.2.2 Generic coding. xii
0.2.3 Halftone coding. xiii
0.2.4 Consequences of inadequate segmentation. xiii
1 Scope. 1
2 Normative References . 1
3 Terms and Definitions. 1
4 Symbols and Abbreviations. 3
4.1 Abbreviations. 3
4.2 Symbol definitions . 4
4.3 Operator definitions . 10
5 Conventions. 10
5.1 Typographic conventions . 10
5.2 Binary notation . 10
5.3 Hexadecimal notation. 11
5.4 Integer value syntax . 11
5.4.1 Bit packing. 11
5.4.2 Multi-byte values . 11
5.4.3 Bit numbering. 11
5.4.4 Signedness. 11
5.5 Array notation and conventions . 11
5.6 Image and bitmap conventions .11
6 Decoding Procedures. 12
6.1 Introduction to decoding procedures . 12
6.2 Generic region decoding procedure. 13
6.2.1 General description . 13
6.2.2 Input parameters. 13
6.2.3 Return value. 13
6.2.4 Variables used in decoding. 14
6.2.5 Decoding using a template and arithmetic coding. 14
6.2.6 Decoding using MMR coding. 18
6.3 Generic Refinement Region Decoding Procedure. 19
6.3.1 General description . 19
6.3.2 Input parameters. 19
6.3.3 Return value. 19
6.3.4 Variables used in decoding. 20
6.3.5 Decoding using a template and arithmetic coding. 20
© ISO/IEC 2001 – All rights reserved iii

Page
6.4 Text Region Decoding Procedure . 23
6.4.1 General description . 23

6.4.2 Input parameters. 23
6.4.3 Return value. 24
6.4.4 Variables used in decoding. 24
6.4.5 Decoding the text region. 25
6.4.6 Strip delta T . 28
6.4.7 First symbol instance S coordinate. 28
6.4.8 Subsequent symbol instance S coordinate . 28
6.4.9 Symbol instance T coordinate. 29
6.4.10 Symbol instance symbol ID. 29
6.4.11 Symbol instance bitmap . 29
6.5 Symbol Dictionary Decoding Procedure . 30
6.5.1 General description . 30
6.5.2 Input parameters. 30
6.5.3 Return value. 30
6.5.4 Variables used in decoding. 30
6.5.5 Decoding the symbol dictionary . 32
6.5.6 Height class delta height. 34
6.5.7 Delta width . 34
6.5.8 Symbol bitmap. 34
6.5.9 Height class collective bitmap . 37
6.5.10 Exported symbols. 37
6.6 Halftone Region Decoding Procedure. 38
6.6.1 General description . 38
6.6.2 Input parameters. 38
6.6.3 Return value. 39
6.6.4 Variables used in decoding. 39
6.6.5 Decoding the halftone region. 39
6.7 Pattern Dictionary Decoding Procedure . 42
6.7.1 General description . 42
6.7.2 Input parameters. 42
6.7.3 Return value. 42
6.7.4 Variables used in decoding. 43
6.7.5 Decoding the pattern dictionary. 43
7 Control Decoding Procedure . 44
7.1 General description . 44
7.2 Segment header syntax. 45
7.2.1 Segment header fields . 45
7.2.2 Segment number . 45
7.2.3 Segment header flags . 45
7.2.4 Referred-to segment count and retention flags. 45
7.2.5 Referred-to segment numbers. 47
7.2.6 Segment page association. 47
7.2.7 Segment data length . 47
7.2.8 Segment header example. 47
7.3 Segment types. 48
7.3.1 Rules for segment references . 49
7.3.2 Rules for page associations. 50
7.4 Segment syntaxes. 50
7.4.1 Region segment information field. 50
7.4.2 Symbol dictionary segment syntax. 51
7.4.3 Text region segment syntax. 56
7.4.4 Pattern dictionary segment syntax. 66
7.4.5 Halftone region segment syntax. 67
7.4.6 Generic region segment syntax. 70
7.4.7 Generic refinement region syntax . 72
7.4.8 Page information segment syntax . 73
iv © ISO/IEC 2001 – All rights reserved

Page
7.4.9 End of page segment syntax . 76
7.4.10 End of stripe segment syntax. 76

7.4.11 End of file segment syntax . 76
7.4.12 Profiles segment syntax. 76
7.4.13 Code table segment syntax . 77
7.4.14 Extension segment syntax. 77
7.4.15 Defined extension types . 77
8 Page Make-up. 78
8.1 Decoder model. 78
8.2 Page image composition. 78
Annex A – Arithmetic Integer Decoding Procedure . 82
A.1 General description . 82
A.2 Procedure for decoding values (except IAID). 82
A.3 The IAID decoding procedure .84
Annex B – Huffman Table Decoding Procedure . 86
B.1 General description . 86
B.2 Code table structure. 86
B.2.1 Code table flags . 87
B.2.2 Code table lowest value. 87
B.2.3 Code table highest value. 87
B.3 Assigning the prefix codes. 87
B.4 Using a Huffman table . 88
B.5 Standard Huffman tables . 89
Annex C – Gray-scale Image Decoding Procedure. 97
C.1 General description . 97
C.2 Input parameters. 97
C.3 Return value. 97
C.4 Variables used in decoding. 97
C.5 Decoding the gray-scale image. 98
Annex D – File Formats. 99
D.1 Sequential organisation . 99
D.2 Random-access organisation. 99
D.3 Embedded organisation . 100
D.4 File header syntax . 100
D.4.1 ID string. 100
D.4.2 File header flags. 100
D.4.3 Number of pages. 100
Annex E – Arithmetic Coding . 101
E.1 Binary encoding. 101
E.1.1 Recursive interval subdivision. 101
E.1.2 Coding conventions and approximations. 101
E.2 Description of the arithmetic encoder. 102
E.2.1 Encoder code register conventions. 103
E.2.2 Encoding a decision (ENCODE). 103
E.2.3 Encoding a 1 or 0 (CODE1 and CODE0). 103
E.2.4 Encoding an MPS or LPS (CODEMPS and CODELPS) . 104
E.2.5 Probability estimation. 105
E.2.6 Renormalisation in the encoder (RENORME). 105
E.2.7 Compressed data output (BYTEOUT) . 106
E.2.8 Initialisation of the encoder (INITENC). 107
E.2.9 Termination of encoding (FLUSH) . 107
E.2.10 Minimisation of the compressed data. 107
© ISO/IEC 2001 – All rights reserved v

Page
E.3 Arithmetic decoding procedure. 109
E.3.1 Decoder code register conventions. 111

E.3.2 Decoding a decision (DECODE) . 111
E.3.3 Renormalisation in the decoder (RENORMD) . 111
E.3.4 Compressed data input (BYTEIN). 111
E.3.5 Initialisation of the decoder (INITDEC). 114
E.3.6 Resynchronisation of the decoder . 114
E.3.7 Resetting arithmetic coding statistics . 115
E.3.8 Saving arithmetic coding statistics. 115
Annex F – Profiles . 116
Annex G – Arithmetic Decoding Procedure (Software Conventions). 119
Annex H – Datastream Example and Test Sequence . 121
H.1 Datastream example. 121
H.2 Test sequence for arithmetic coder. 142
Annex I –  P atents . 147
Bibliography. 149
vi © ISO/IEC 2001 – All rights reserved

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission)
form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC
participate in the development of International Standards through technical committees established by the
respective organization to deal with particular fields of technical activity. ISO and IEC technical committees
collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in
liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have
established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 3.
The main task of the joint technical committee is to prepare International Standards. Draft International Standards
adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International
Standard requires approval by at least 75 % of the national bodies casting a vote.
International Standard ISO/IEC 14492 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information
technology, Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information, in
collaboration with ITU-T. The identical text is published as ITU-T Recommandation T.88.
Annexes A, B, C, D, E and F form a normative part of ISO/IEC 14492. Annexes G, H and I are for information only.

© ISO/IEC 2001 – All rights reserved vii

0 Introduction
This Recommendation | International Standard, informally called JBIG2, defines a coding method for bi-level images
(e.g. black and white printed matter). These are images consisting of a single rectangular bit plane, with each pixel taking
on one of just two possible colours. Multiple colours are to be handled using an appropriate higher level standard such as
ITU-T Recommendation T.44. It is being drafted by the Joint Bi-level Image Experts Group (JBIG), a "Collaborative
Team", established in 1988, that reports both to ISO/IEC JTC 1/SC29/WG1 and to ITU-T.
Compression of this type of image is also addressed by existing facsimile standards, for example by the compression
algorithms in ITU-T Recommendations T.4 (MH, MR), T.6 (MMR), T.82 (JBIG1), and T.85 (Application profile of
JBIG1 for facsimile). Besides the obvious facsimile application, JBIG2 will be useful for document storage and
archiving, coding images on the World Wide Web, wireless data transmission, print spooling, and even teleconferencing.
As the result of a process that ended in 1993, JBIG produced a first coding standard formally designated ITU-T
Recommendation T.82 | International Standard ISO/IEC 11544, which is informally known as JBIG or JBIG1. JBIG1 is
intended to behave as lossless and progressive (lossy-to-lossless) coding. Though it has the capability of lossy coding,
the lossy images produced by JBIG1 have significantly lower quality than the original images because the number of
pixels in the lossy image cannot exceed one quarter of those in the original image.
On the contrary, JBIG2 was explicitly prepared for lossy, lossless, and lossy-to-lossless image compression. The design
goal for JBIG2 was to allow for lossless compression performance better than that of the existing standards, and to allow
for lossy compression at much higher compression ratios than the lossless ratios of the existing standards, with almost no
visible degradation of quality. In addition, JBIG2 allows both quality-progressive coding, with the progression going
from lower to higher (or lossless) quality, and content-progressive coding, successively adding different types of image
data (for example, first text, then halftones). A typical JBIG2 encoder decomposes the input bi-level image into several
regions and codes each of the regions separately using a different coding method. Such content-based decomposition is
very desirable especially in interactive multimedia applications. JBIG2 can also handle a set of images (multiple page
document) in an explicit manner.
As is typical with image compression standards, JBIG2 explicitly defines the requirements of a compliant bitstream, and
thus defines decoder behaviour. JBIG2 does not explicitly define a standard encoder, but instead is flexible enough to
allow sophisticated encoder design. In fact, encoder design will be a major differentiator among competing JBIG2
implementations.
Although this Recommendation | International Standard is phrased in terms of actions to be taken by decoders to
interpret a bitstream, any decoder that produces the correct result (as defined by those actions) is compliant, regardless of
the actions it actually takes.
Annexes A, B, C, D, E, and F are normative, and thus form an integral part of this This Recommendation | International
Standard. Annexes G and H are informative, and thus do not form an integral part of this Recommendation | International
Standard.
0.1 Interpretation and use of the requirements
This section is informative and designed to aid in interpreting the requirements of this Recommendation | International
Standard. The requirements are written to be as general as possible to allow a large amount of implementation flexibility.
Hence the language of the requirements is not specific about applications or implementations. In this section a
correspondence is drawn between the general wording of the requirements and the intended use of this Recom-
mendation | International Standard in typical applications.
0.1.1 Subject matter for JBIG2 coding
JBIG2 is used to code bi-level documents. A bi-level document contains one or more pages. A typical page contains
some text data, that is, some characters of a small size arranged in horizontal or vertical rows. The characters in the text
part of a page are called symbols in JBIG2. A page may also contain "halftone data", that is, gray-scale or colour multi-
level images (e.g. photographs) that have been dithered to produce bi-level images. The periodic bitmap cells in the
halftone part of the page are called patterns in JBIG2. In addition, a page may contain other data, such as line art and
noise. Such non-text, non-halftone data is called generic data in JBIG2.
The JBIG2 image model treats text data and halftone data as special cases. It is expected that a JBIG2 encoder will divide
the content of a page into a text region containing digitised text, a halftone region containing digitised halftones, and a
generic region containing the remaining digitised image data, such as line-art. In some circumstances, it is better (in
image quality or compressed data size) to consider text or halftones as generic data; conversely, in some circumstances it
is better to consider generic data using one of the special cases.
viii © ISO/IEC 2001 – All rights reserved

An encoder is permitted to divide a single page into any number of regions, but often three regions will be sufficient, one
for textual symbols, one for halftone patterns, and the third for the generic remainder. In some cases, not all types of data
may be present, and the page may consist of fewer than three regions.
The various regions may overlap on the physical page. JBIG2 provides the means to specify how the overlapping regions
are recombined to form the final page image.
A text region consists of a number of symbols placed at specified locations on a background. The symbols usually
correspond to individual text characters. JBIG2 obtains much of its effectiveness by using individual symbols more than
once. To reuse a symbol, an encoder or decoder must have a succinct way of referring to it. In JBIG2, the symbols are
collected into one or more symbol dictionaries. A symbol dictionary is a set of bitmaps of text symbols, indexed so that a
symbol bitmap may be referred to by an index number.
A halftone region consists of a number of patterns placed along a regular grid. The patterns usually correspond to gray-
scale values. Indeed, the coding method of the pattern indices is designed as a gray-scale coder. Compression can be
realised by representing the binary pixels of one grid cell by a single integer, the halftone index (which is usually a
rendered gray-scale value). This many-to-one mapping (the pattern in a cell into a gray-scale value) may have the effect
that edge information present in the original bitmap is lost by halftone coding. For this reason, lossless or near-lossless
coding of halftones will often be better in image quality (though larger in size) if the halftone is coded with generic
coding rather than halftone coding.
0.1.2 Relationship between segments and documents
A JBIG2 file contains the information needed to decode a bi-level document. A JBIG2 file is composed of segments.A
typical page is coded using several segments. In a simple case, there will be a page information segment, a symbol
dictionary segment, a text region segment, a pattern dictionary segment, a halftone region segment, and an end-of-page
segment. The page information segment provides general information about the page, such as its size and resolution. The
dictionary segments collect bitmaps referred to in the region segments. The region segments describe the appearance of
the text and halftone regions by referencing bitmaps from a dictionary and specifying where they should appear on the
page. The end-of-page segment marks the end of the page.
0.1.3 Structure and use of segments
Each segment contains a segment header, a data header, and data. The segment header is used to convey segment
reference information and, in the case of multi-page documents, page association information. A data header gives
information used for decoding the data in the segment. The data describes an image region or a dictionary, or provides
other information.
Segments are numbered sequentially. A segment may refer to a lower-numbered, or earlier, segment. A region segment
is always associated with one specific page of the document. A dictionary segment may be associated with one page of
the document, or it may be associated with the document as a whole.
A region segment may refer to one or more earlier dictionary segments. The purpose of such a reference is to allow the
decoder to identify symbols in a dictionary segment that are present into the image.
A region segment may refer to an earlier region segment. The purpose of such a reference is to combine the image
described by the earlier segment with the current representation of the page.
A dictionary segment may refer to earlier dictionary segments. The symbols added to a dictionary segment may be
described directly, or may be described as refinements of symbols described previously, either in the same dictionary
segment or in earlier dictionary segments.
A JBIG2 file may be organised in two ways, sequential or random access. In the sequential organisation, each segment's
segment header immediately precedes that segment's data header and data, all in sequential order. In the random access
organisation, all the segment headers are collected together at the beginning of the file, followed by the data (including
data headers) for all the segments, in the same order. This second organisation permits a decoder to determine all
segment dependencies without reading the entire file.
A third way of encapsulating of JBIG2-encoded data is to embed it in a non-JBIG2 file – this is sometimes called the
embedded organisation. In this case a different file format carries JBIG2 segments. The segment header, data header, and
data of each segment are stored together, but the embedding file format may store the segments in any order, at any set of
locations within its own structure.
0.1.4 Internal representations
Decoded data must be stored before printing or display. While this Recommendation | International Standard does not
specify how to store it, its decoding model presumes certain data structures, specifically buffers and dictionaries.
© ISO/IEC 2001 – All rights reserved ix

Figure 1 illustrates major decoder components and associated buffers. In this figure, decoding procedures are outlined in
bold lines, and memory components are outlined in non-bold lines. Also, bold arrows indicate that one decoding
procedure invokes another decoding procedure; for example, the symbol dictionary decoding procedure invokes the
generic region decoding procedure to decode the bitmaps for the symbols that it defines. Non-bold arrows indicate flow
of data: the text region decoding procedure reads symbols from the symbol memory and draws them into the page buffer
or an auxiliary buffer. Although it is not shown in Figure 1, the encoded data stream flows to the decoding procedures,
and the block labeled "Page and auxiliary buffers" produces the final decoded page images.
Text
Symbol
region dictionary Symbol
decoding memory
decoding
procedure
procedure
Generic
refinement
Context
region
memory
decoding
procedure
Page and
auxiliary
buffers
Generic
region
decoding
procedure
Halftone Pattern
region dictionary Pattern
decoding decoding memory
procedure procedure
T0828730-99/d01
Figure 1 – Block diagram of major decoder components
FIGURE 1/T.88.[D01]
The resources required to decode any given JBIG2 bitstream depend on the complexity of that bitstream. Some
techniques such as striping can be used to reduce decoder memory requirements. It is estimated that a full-featured
decoder may need two full-page buffers, plus about the same amount of dictionary memory, plus about 100 kilobytes of
arithmetic coding context memory, to decode most bitstreams.
A buffer is a representation of a bitmap. A buffer is intended to hold a large amount of data, typically the size of a page.
A buffer may contain the description of a region or of an entire page. Even if the buffer describes only a region, it has
information associated with it that specifies its placement on the page. Decoding a region segment modifies the contents
of a buffer.
x © ISO/IEC 2001 – All rights reserved

There is one special buffer, the page buffer. It is intended that the decoder accumulate region data directly in the page
buffer until the page has been completely decoded; then the data can be sent to an output device or file. Decoding an
immediate region segment modifies the contents of the page buffer. The usual way of preparing a page is to decode one
or more immediate region segments, each one modifying the page buffer. The decoder may output an incomplete page
buffer, either as part of progressive transmission or in response to user input. Such output is optional, and its content is
not specified by this Recommendation | International Standard.
All other buffers are auxiliary buffers. It is intended that the decoder fill an auxiliary buffer, then later use it to refine the
page buffer. In an application, it will often be unnecessary to have any auxiliary buffers. Decoding an intermediate
region segment modifies the contents of an auxiliary buffer. The decoder may use auxiliary buffers to output pages other
than those found in a complete page buffer, either as part of progressive transmission or in response to user input. Such
output is optional, and its content is not specified by this Recommendation | International Standard.
A symbol dictionary consists of an indexed set of bitmaps. The bitmaps in a dictionary are typically small, approximately
the size of text characters. Unlike a buffer, a bitmap in a dictionary does not have page location information associated
with it.
0.1.5 Decoding results
Decoding a segment involves invocation of one or more decoding procedures. The decoding procedures to be invoked
are determined by the segment type.
The result of decoding a region segment is a bitmap stored in a buffer, possibly the page buffer. Decoding a region
segment may fill a new buffer, or may modify an existing buffer. In typical applications, placing the data into a buffer
involves changing pixels from the background colour to the foreground colour, but this Recommendation | International
Standard specifies other permissible ways of changing a buffer's pixels.
A typical page will be described by one or more immediate region segments, each one resulting in modification of the
page buffer.
Just as it is possible to specify a new symbol in a dictionary by refining a previously specified symbol, it is also possible
to specify a new buffer by refining an existing buffer. However, a region may be refined only by the generic refinement
decoding procedure. Such a refinement does not make use of the internal structure of the region in the buffer being
refined. After a buffer has been refined, the original buffer is no longer available.
The result of decoding a dictionary segment is a new dictionary. The symbols in the dictionary may later be placed into a
buffer by the text region decoding procedure.
0.1.6 Decoding procedures
The generic region decoding procedure fills or modifies a buffer directly, pixel-by-pixel if arithmetic coding is being
used, or by runs of foreground and background pixels if MMR and Huffman coding are being used. In the arithmetic
coding case, the prediction context contains only pixels determined by data already decoded within the current segment.
The generic refinement region decoding procedure modifies a buffer pixel-by-pixel using arithmetic coding. The
prediction context uses pixels determined by data already decoded within the current segment as well as pixels already
present either in the page buffer or in an auxiliary buffer.
The text region decoding procedure takes symbols from one or more symbol dictionaries and places them in a buffer.
This procedure is invoked during the decoding of a text region segment. The text region segment contains the position
and index information for each symbol to be placed in the buffer; the bitmaps of the symbols are taken from the symbol
dictionaries.
The symbol dictionary decoding procedure creates a symbol dictionary, that is, an indexed set of symbol bitmaps. A
bitmap in the dictionary may be coded directly; it may be coded as a refinement of a symbol already in a dictionary; or it
may be coded as an aggregation of two or more symbols already in dictionaries. This decoding procedure is invoked
during the decoding of a symbol dictionary segment.
The halftone region decoding procedure takes patterns from a pattern dictionary and places them in a buffer. This
procedure is invoked during the decoding of a halftone region segment. The halftone region segment contains the
position information for all the patterns to be placed in the buffer, as well as index information for the patterns
themselves. The patterns, the fixed-size bitmaps of the halftone, are taken from the halftone dictionaries.
The pattern dictionary decoding procedure creates a dictionary, that is, an indexed set of fixed-size bitmaps (patterns).
The bitmaps in the dictionary are coded directly and jointly. This decoding procedure is invoked during the decoding of a
pattern dictionary segment.
© ISO/IEC 2001 – All rights reserved xi
...


NORME ISO/CEI
INTERNATIONALE 14492
Première édition
2001-12-15
Technologies de l'information — Codage
avec ou sans perte des images au trait
Information technology — Lossy/lossless coding of bi-level images

Numéro de référence
ISO/CEI 14492:2001(F)
©
ISO/CEI 2001
ISO/CEI 14492:2001(F)
PDF – Exonération de responsabilité
Le présent fichier PDF peut contenir des polices de caractères intégrées. Conformément aux conditions de licence d'Adobe, ce fichier
peut être imprimé ou visualisé, mais ne doit pas être modifié à moins que l'ordinateur employé à cet effet ne bénéficie d'une licence
autorisant l'utilisation de ces polices et que celles-ci y soient installées. Lors du téléchargement de ce fichier, les parties concernées
acceptent de fait la responsabilité de ne pas enfreindre les conditions de licence d'Adobe. Le Secrétariat central de l'ISO décline toute
responsabilité en la matière.
Adobe est une marque déposée d'Adobe Systems Incorporated.
Les détails relatifs aux produits logiciels utilisés pour la création du présent fichier PDF sont disponibles dans la rubrique General Info
du fichier; les paramètres de création PDF ont été optimisés pour l'impression. Toutes les mesures ont été prises pour garantir
l'exploitation de ce fichier par les comités membres de l'ISO. Dans le cas peu probable où surviendrait un problème d'utilisation,
veuillez en informer le Secrétariat central à l'adresse donnée ci-dessous.

©  ISO/CEI 2001
Droits de reproduction réservés. Sauf prescription différente, aucune partie de cette publication ne peut être reproduite ni utilisée sous
quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et les microfilms, sans l'accord écrit
de l'ISO à l'adresse ci-après ou du comité membre de l'ISO dans le pays du demandeur.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax. + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Version française parue en 2004
Publié en Suisse
ii © ISO/CEI 2001 – Tous droits réservés

ISO/CEI 14492:2001 (F)
TABLE DES MATIÈRES
Page
0 Introduction . vii
0.1 Interprétation et utilisation des prescriptions . vii
0.1.1 Objet du codage JBIG2 . vii
0.1.2 Relation entre segments et documents. viii
0.1.3 Structure et utilisation des segments. viii
0.1.4 Représentations internes. ix
0.1.5 Résultats du décodage . ix
0.1.6 Procédures de décodage . xi
0.2 Codage avec pertes. xii
0.2.1 Codage des symboles . xii
0.2.2 Codage générique . xii
0.2.3 Codage des dégradés . xii
0.2.4 Conséquences d'une segmentation inadéquate . xiii
1 Domaine d'application . 1
2 Références normatives. 1
3 Termes et définitions . 1
4 Symboles et abréviations . 3
4.1 Abréviations . 4
4.2 Définition des symboles. 4
4.3 Définition des opérateurs . 12
5 Conventions. 12
5.1 Conventions typographiques . 12
5.2 Notation binaire. 12
5.3 Notation hexadécimale. 12
5.4 Syntaxe des valeurs d'entier . 12
5.4.1 Condensation du flux binaire. 12
5.4.2 Valeurs en octets multiples. 13
5.4.3 Numérotage des éléments binaires . 13
5.4.4 Signe des valeurs . 13
5.5 Notation et conventions relatives aux tables . 13
5.6 Conventions relatives aux images et aux phototrames. 13
6 Procédures de décodage. 13
6.1 Introduction aux procédures de décodage . 13
6.2 Procédure de décodage de la région générique . 14
6.2.1 Description générale. 14
6.2.2 Paramètres d'entrée. 15
6.2.3 Valeur de retour. 15
6.2.4 Variables utilisées lors du décodage. 16
6.2.5 Décodage par gabarit et codage arithmétique. 16
6.2.6 Décodage au moyen du codage MMR. 20
6.3 Procédure de décodage de la région générique par raffinement. 21
6.3.1 Description générale. 21
6.3.2 Paramètres d'entrée. 22
6.3.3 Valeur de retour. 22
6.3.4 Variables utilisées lors du décodage. 22
6.3.5 Décodage par gabarit et codage arithmétique. 23
© ISO/CEI 2001 – Tous droits réservés iii

ISO/CEI 14492:2001 (F)
Page
6.4 Procédure de décodage de la région alphanumérique. 26
6.4.1 Description générale. 26
6.4.2 Paramètres d'entrée. 26
6.4.3 Valeur de retour. 27
6.4.4 Variables utilisées lors du décodage. 28
6.4.5 Décodage de la région alphanumérique. 28
6.4.6 Différence delta T entre deux bandes . 31
6.4.7 Coordonnée S de la première instance de symbole . 31
6.4.8 Coordonnée S de l'instance de symbole suivante . 32
6.4.9 Coordonnée T d'une instance de symbole . 32
6.4.10 Identificateur symbolique d'instance de symbole . 32
6.4.11 Matrice d'instance de symbole. 32
6.5 Procédure de décodage par dictionnaire de symboles . 33
6.5.1 Description générale. 33
6.5.2 Paramètres d'entrée. 34
6.5.3 Valeur de retour. 35
6.5.4 Variables utilisées lors du décodage. 35
6.5.5 Décodage par dictionnaire de symboles . 35
6.5.6 Hauteur différentielle entre classes de hauteur. 38
6.5.7 Largeur différentielle. 38
6.5.8 Matrice de symbole . 38
6.5.9 Matrice collective des classes de hauteur . 41
6.5.10 Symboles exportés. 41
6.6 Procédure de décodage de la région de dégradé. 42
6.6.1 Description générale. 42
6.6.2 Paramètres d'entrée. 42
6.6.3 Valeur de retour. 42
6.6.4 Variables utilisées lors du décodage. 42
6.6.5 Décodage de la région de dégradé. 42
6.7 Procédure de décodage du dictionnaire de structures. 46
6.7.1 Description générale. 46
6.7.2 Paramètres d'entrée. 46
6.7.3 Valeur de retour. 47
6.7.4 Variables utilisées lors du décodage. 47
6.7.5 Décodage du dictionnaire de structures. 47
7 Procédure de décodage des commandes . 48
7.1 Description générale. 48
7.2 Syntaxe d'en-tête de segment . 49
7.2.1 Champs d'en-tête de segment . 49
7.2.2 Numéro de segment. 49
7.2.3 Fanions d'en-tête de segment. 49
7.2.4 Fanions de décompte et de rétention de segment référencé. 50
7.2.5 Numérotation des segments référencés . 51
7.2.6 Association de page à un segment. 51
7.2.7 Longueur des données de segment . 51
7.2.8 Exemple d'en-tête de segment . 52
7.3 Types de segment. 52
7.3.1 Règles de référenciation aux segments. 54
7.3.2 Règles d'association aux pages. 54
7.4 Syntaxes des segments . 55
7.4.1 Champ d'information de segment de région . 55
7.4.2 Syntaxe du segment de dictionnaire de symboles . 56
7.4.3 Syntaxe d'un segment de région alphanumérique. 60
7.4.4 Syntaxe d'un segment de dictionnaire de structures . 70
7.4.5 Syntaxe d'un segment de région de dégradé. 71
7.4.6 Syntaxe d'un segment de région générique. 74
7.4.7 Syntaxe d'une région générique par raffinement . 76
7.4.8 Syntaxe d'un segment d'informations de page. 78
iv © ISO/CEI 2001 – Tous droits réservés

ISO/CEI 14492:2001 (F)
Page
7.4.9 Syntaxe de segment de fin de page. 79
7.4.10 Syntaxe de segment de fin de bande. 80

7.4.11 Syntaxe de segment de fin de fichier. 80
7.4.12 Syntaxe de segment de profils. 80
7.4.13 Syntaxe de segment de table de codage. 81
7.4.14 Syntaxe de segment d'extension . 81
7.4.15 Types d'extension définis . 81
8 Mise en page. 82
8.1 Modèle du décodeur. 82
8.2 Composition d'une image de page. 82
Annexe A – Procédure de décodage arithmétique d'un entier. 86
A.1 Description générale. 86
A.2 Procédure de décodage de valeurs (sauf procédure IAID) . 86
A.3 Procédure de décodage IAID . 88
Annexe B – Procédure de décodage par table de Huffman. 90
B.1 Description générale. 90
B.2 Structure d'une table de codage. 90
B.2.1 Fanions d'une table de codage . 91
B.2.2 Valeur minimale d'une table de codage. 92
B.2.3 Valeur maximale d'une table de codage . 92
B.3 Attribution des codes de préfixe. 92
B.4 Utilisation d'une table de Huffman. 92
B.5 Tables de Huffman normalisées. 94
Annexe C – Procédure de décodage d'une image en échelle de gris. 101
C.1 Description générale. 101
C.2 Paramètres d'entrée. 101
C.3 Valeur de retour. 101
C.4 Variables utilisées lors du décodage . 101
C.5 Décodage de l'image en échelle de gris. 102
Annexe D – Formats de fichier . 103
D.1 Organisation séquentielle . 103
D.2 Organisation à accès aléatoire . 103
D.3 Organisation imbriquée. 104
D.4 Syntaxe d'en-tête de fichier . 104
D.4.1 Chaîne d'identificateur. 104
D.4.2 Fanions d'en-tête de fichier. 105
D.4.3 Nombre de pages . 105
Annexe E – Codage arithmétique . 106
E.1 Codage binaire . 106
E.1.1 Subdivision récurrente des intervalles. 106
E.1.2 Conventions et approximations de codage . 106
E.2 Description du codeur arithmétique . 107
E.2.1 Conventions du registre de séquences du codeur . 108
E.2.2 Codage d'une décision (ENCODE) . 108
E.2.3 Codage d'un 1 ou d'un 0 (CODE1 et CODE0) . 108
E.2.4 Codage d'un symbole MPS ou LPS (CODEMPS et CODELPS). 109
E.2.5 Estimateur de probabilité. 110
E.2.6 Renormalisation dans le codeur (RENORME). 111
E.2.7 Sortie de données comprimées (BYTEOUT) . 112
E.2.8 Initialisation du codeur (INITENC). 112
E.2.9 Terminaison du codage (FLUSH) . 112
E.2.10 Minimisation des données comprimées. 114
© ISO/CEI 2001 – Tous droits réservés v

ISO/CEI 14492:2001 (F)
Page
E.3 Procédure de décodage arithmétique. 115
E.3.1 Conventions du registre de séquences du décodeur. 115

E.3.2 Décodage d'une décision (DECODE). 116
E.3.3 Renormalisation dans le décodeur (RENORMD) . 116
E.3.4 Entrée de données comprimées (BYTEIN) . 119
E.3.5 Initialisation du décodeur (INITDEC). 119
E.3.6 Resynchronisation du décodeur. 119
E.3.7 Réinitialisation des statistiques de codage arithmétique. 120
E.3.8 Sauvegarde des statistiques de codage arithmétique . 120
Annexe F – Profils . 121
Annexe G – Procédure de décodage arithmétique (conventions logicielles) . 124
Annexe H – Exemple de flux de données et séquence d'essai . 126
H.1 Exemple de flux de données. 126
H.2 Séquence d'essai pour codeur arithmétique. 148
Bibliographie. 154

vi © ISO/CEI 2001 – Tous droits réservés

ISO/CEI 14492:2001 (F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CEI (Commission électrotechnique internationale) forment le
système spécialisé de la normalisation mondiale. Les organismes nationaux membres de l'ISO ou de la CEI participent au
développement de Normes internationales par l'intermédiaire des comités techniques créés par l'organisation concernée
afin de s'occuper des domaines particuliers de l'activité technique. Les comités techniques de l'ISO et de la CEI
collaborent dans des domaines d'intérêt commun. D'autres organisations internationales, gouvernementales et non
gouvernementales, en liaison avec l'ISO et la CEI participent également aux travaux. Dans le domaine des technologies
de l'information, l'ISO et la CEI ont créé un comité technique mixte, l'ISO/CEI JTC 1.
Les Normes internationales sont rédigées conformément aux règles données dans les Directives ISO/CEI, Partie 2.
La tâche principale du comité technique mixte est d'élaborer les Normes internationales. Les projets de Normes
internationales adoptés par le comité technique mixte sont soumis aux organismes nationaux pour vote. Leur publication
comme Normes internationales requiert l'approbation de 75 % au moins des organismes nationaux votants.
L'attention est appelée sur le fait que certains des éléments du présent document peuvent faire l'objet de droits de
propriété intellectuelle ou de droits analogues. L'ISO et la CEI ne sauraient être tenues pour responsables de ne pas avoir
identifié de tels droits de propriété et averti de leur existence.
L'ISO/CEI 14492 a été élaborée par le comité technique mixte ISO/CEI JTC 1, Technologies de l'information, sous-
comité SC 29, Codage du son, de l'image, de l'information multimédia et hypermédia, en collaboration avec l'UIT-T. Le
texte identique est publié en tant que Rec. UIT-T T.88.

© ISO/CEI 2001 – Tous droits réservés vii

ISO/CEI 14492:2001 (F)
0 Introduction
La présente Recommandation | Norme internationale, officieusement appelée JBIG2, définit une méthode de codage pour
les images à deux niveaux (par exemple imprimés en noir et blanc). Il s'agit d'images se composant d'un unique plan
binaire rectangulaire dont chaque pixel ne prend qu'une des deux couleurs possibles. Les images polychromes doivent
être traitées au moyen d'une norme de niveau supérieur comme la Recommandation UIT-T T.44, qui est en cours de
rédaction par le Groupe mixte d'experts en images à deux niveaux (JBIG), "équipe collaborative" créée en 1988, qui rend
compte à la fois au GT1 de l'ISO/CEI JTC 1/SC29 et à l'UIT-T.
La compression de ce type d'image est également traitée par des normes portant sur la télécopie, par exemple par les
algorithmes de compression des Recommandations UIT-T T.4 (MH, MR), T.6 (MMR), T.82 (JBIG1) et T.85 (profil
d'application du format JBIG1 pour la télécopie). En dehors de son application évidente à la télécopie, le format JBIG2
sera utile pour la mémorisation et l'archivage des documents, le codage des images sur la toile mondiale (WWW), la
transmission de données sans fil, la gestion des impressions différées et même les téléconférences.
A la suite d'un processus qui s'est achevé en 1993, le groupe JBIG a établi une première norme de codage, officiellement
désignée comme Recommandation UIT-T T.82 | Norme internationale ISO/CEI 11544, qui est officieusement connue
sous l'appellation JBIG ou JBIG1. Ce dernier format est destiné à permettre un codage sans pertes et progressif (à pertes
convergeant vers zéro). Bien que le format JBIG1 permette le codage avec pertes, les images avec pertes ainsi obtenues
ont une qualité nettement inférieure aux images originales parce que le nombre de pixels contenus dans ces images ne
peut pas dépasser un quart de ceux de l'image originale.
En revanche, le format JBIG2 a été explicitement élaboré pour une compression d'images avec pertes, sans pertes et avec
pertes convergeant vers zéro. L'objectif théorique assigné au format JBIG2 était d'obtenir une meilleure performance de
compression sans pertes que celle des normes existantes et de permettre une compression avec pertes à des taux
beaucoup plus élevés que ceux des normes existantes sans dégradation de qualité visuelle ou presque. Par ailleurs, le
format JBIG2 permet un codage qualitativement progressif (allant d'une qualité inférieure à une qualité supérieure ou
sans pertes) et un codage quantitativement progressif (ajoutant différents types de données d'image, par exemple du texte
d'abord puis des dégradés). Un codeur JBIG2 typique décompose l'image bitonale d'entrée en plusieurs régions et code
séparément ces régions au moyen d'une méthode de codage différente. Une telle décomposition fondée sur le contenu est
très souhaitable, en particulier dans les applications multimédias interactives. Le format JBIG2 peut également traiter une
série d'images (document de plusieurs pages) d'une façon explicite.
Comme cela est normal dans une norme de compression d'image, la norme JBIG2 définit explicitement les exigences
d'un flux binaire compatible et définit ensuite le comportement du décodeur. Elle ne définit pas explicitement un codeur
normalisé mais elle est assez flexible pour autoriser des codeurs de conception évoluée. En fait, la conception du codeur
sera un facteur déterminant pour différencier des réalisations JBIG2 concurrentes.
Bien que la présente Recommandation | Norme internationale soit rédigée en termes d'actions exécutées par des
décodeurs pour interpréter un flux binaire, tout décodeur qui produit le résultat correct (tel que défini par ces actions)
sera compatible, quelles que soient les actions qu'il exécute réellement.
Les Annexes A, B, C, D, E et F sont normatives et font donc partie intégrante de la présente Recommandation | Norme
internationale. Les Annexes G et H sont informatives et ne font donc pas partie intégrante de la présente
Recommandation | Norme internationale.
0.1 Interprétation et utilisation des prescriptions
Cette section est informative et conçue pour faciliter l'interprétation des prescriptions de la présente Recommandation |
Norme internationale. Ces prescriptions sont rédigées de façon à être aussi générales que possible afin d'autoriser un
niveau élevé de flexibilité lors de la réalisation. La rédaction des prescriptions ne donne donc pas de précisions sur les
applications ou les réalisations. Dans cette section, une correspondance est établie entre la rédaction générale des
prescriptions et l'usage prévu de la présente Recommandation | Norme internationale dans des applications typiques.
0.1.1 Objet du codage JBIG2
La présente norme JBIG2 est utilisée pour coder des documents à deux niveaux (bitonaux), contenant une ou plusieurs
pages. Une page normale contient quelques données alphanumériques, c'est-à-dire quelques caractères de petites
dimensions disposés en rangées horizontales ou verticales. Les caractères de la partie alphanumérique d'une page sont
appelés symboles dans la norme JBIG2. Une page peut également contenir des données de dégradé c'est-à-dire des
images en échelle de gris ou à plusieurs niveaux chromatiques (par exemple des photographies) qui ont été estompées
afin de produire des images à deux niveaux. Les cellules matricielles périodiques dans la partie en dégradé de l'image
sont appelées structures dans la présente norme JBIG2. Par ailleurs, une page peut contenir d'autres données comme du
trait et du bruit. De telles données en noir et blanc, qui ne sont ni des lettres ni du gris, sont appelées données génériques
dans la présente Recommandation | Norme internationale.
viii © ISO/CEI 2001 – Tous droits réservés

ISO/CEI 14492:2001 (F)
Le modèle d'image JBIG2 traite les données alphanumériques et de dégradé comme des cas particuliers. L'on s'attend
qu'un décodeur JBIG2 subdivisera le contenu d'une page en une région alphanumérique contenant du texte numérisé, en
une région de dégradé contenant des dégradés numérisés et en une région générique contenant le reste des données
d'image numérisées, comme le trait. Dans certaines circonstances, il est préférable (en termes de qualité d'image ou de
volume de données comprimées) de considérer les lettres ou les dégradés comme des données génériques; inversement, il
est parfois préférable de considérer des données génériques comme appartenant à des cas particuliers précédents.
Un codeur a la possibilité de subdiviser une page donnée en un nombre quelconque de régions mais souvent trois régions
seront suffisantes: l'une pour les symboles alphanumériques, l'autre pour les structures en dégradé et la troisième pour les
données génériques restantes. Dans certains cas, tous les types de données peuvent ne pas être présents et la page peut se
composer d'un nombre de régions inférieur à trois.
Les diverses régions peuvent se superposer sur la même page physique. La présente norme JBIG2 permet de spécifier la
façon dont les régions en superposition se recombinent afin de former l'image de la page finale.
Une région alphanumérique se compose d'un certain nombre de symboles placés à des emplacements spécifiés d'un fond
d'écran. Ces symboles correspondent habituellement à des caractères d'écriture individuels. La présente norme JBIG2 tire
beaucoup de son efficacité du fait qu'elle utilise plusieurs fois des symboles individuels. Pour réutiliser un symbole, un
codeur ou décodeur doit disposer d'un moyen rapide d'y faire référence. Dans la présente norme JBIG2, les symboles
sont collationnés dans un ou plusieurs dictionnaires de symboles. Un dictionnaire de symboles est un ensemble de
matrices de symboles alphanumériques, indexées de façon qu'une matrice de symbole puisse être citée en référence au
moyen d'un numéro indiciel.
Une région de dégradé se compose d'un certain nombre de structures placées selon une grille régulière. Les structures
correspondent habituellement à des valeurs d'échelle de gris. En réalité, la méthode de codage des indices structurels est
conçue comme un codeur de niveaux de gris. L'on peut effectuer la compression de ces données en représentant les
pixels binaires d'une cellule de grille donnée par un entier unique: l'indice de dégradé (qui est habituellement une valeur
restituée en échelle de gris). Cette application convergente (de la structure d'une cellule vers une valeur d'échelle de gris)
peut avoir pour effet que l'information de bordure, présente dans la phototrame originale, soit perdue par le codage du
dégradé. C'est pourquoi un codage sans pertes ou presque sans pertes des dégradés sera souvent préférable en terme de
qualité d'image (bien que les dimensions de celles-ci soient plus grandes) si ces dégradés sont analysés par codage des
données génériques plutôt que par codage des données de dégradé.
0.1.2 Relation entre segments et documents
Un fichier JBIG2 contient les informations nécessaires pour décoder un document à deux niveaux. Un tel fichier se
compose de segments. Une page type est codée au moyen de plusieurs segments. Dans un cas simple, il y a un segment
d'information de page, un segment de dictionnaire de symboles, un segment de région alphanumérique, un segment de
dictionnaire de structures, un segment de région de dégradé et un segment de fin de page. Le segment d'information de
page donne des renseignements généraux sur la page, comme ses dimensions et sa résolution. Les segments de
dictionnaire rassemblent les phototrames auxquelles il est fait référence dans les segments de région. Les segments
régionaux décrivent l'aspect des régions de texte et de dégradé en faisant référence à des phototrames issues d'un
dictionnaire et en spécifiant l'endroit où elles doivent apparaître sur la page. Le segment de fin de page indique la fin de
la page.
0.1.3 Structure et utilisation des segments
Chaque segment contient un en-tête de segment, un en-tête de données et des données. L'en-tête de segment sert à
acheminer des informations de référence de segment et, dans le cas de documents à pages multiples, des informations
d'association de page. L'en-tête de données contient des informations utilisées pour décoder les données contenues dans
le segment. Ces données décrivent une région d'image ou un dictionnaire, ou donnent d'autres informations.
Les segments sont numérotés en séquence. Un segment peut se rapporter à un segment de numéro inférieur ou antérieur.
Un segment de région est toujours associé à une page spécifique du document. Un segment de dictionnaire peut être
associé à une page spécifique du document ou être associé au document dans son ensemble.
Un segment de région peut faire référence à un ou plusieurs segments de dictionnaire antérieurs. L'objet d'une telle
référence est de permettre au décodeur d'identifier dans un segment de dictionnaire des symboles qui sont présents dans
l'image.
Un segment de région peut faire référence à un segment de région antérieur. L'objet d'une telle référence est de combiner
l'image décrite par le segment antérieur avec la représentation actuelle de la page.
Un segment de dictionnaire peut faire référence à des segments de dictionnaire antérieurs. Les symboles ajoutés à un
segment de dictionnaire peuvent être décrits directement ou en tant que raffinements de symboles déjà décrits, soit dans
le même segment de dictionnaire soit dans des segments de dictionnaire antérieurs.
© ISO/CEI 2001 – Tous droits réservés ix

ISO/CEI 14492:2001 (F)
Un fichier JBIG2 peut être organisé de deux façons: en séquence ou aléatoirement. Dans l'organisation séquentielle,
chaque en-tête de segment précède immédiatement l'en-tête de données et les données de ce segment, l'ordre séquentiel
étant appliqué à tous les éléments. Dans l'organisation à accès aléatoire, tous les en-têtes de segment sont rassemblés au
début du fichier et sont suivis des données (y compris les en-têtes de données) pour tous les segments, dans le même
ordre. Cette deuxième organisation permet à un décodeur de déterminer toutes les dépendances de segment sans lire le
fichier entier.
Une troisième façon d'encapsuler des données à codage JBIG2 consiste à les imbriquer dans un fichier non JBIG2, ce qui
est parfois appelé organisation imbriquée. Dans ce cas, un format de fichier différent achemine les segments JBG2. L'en-
tête de segment, l'en-tête de données et les données de chaque segment sont mémorisés ensemble mais le format du
fichier d'imbrication peut conserver les segments selon un ordre quelconque et à un emplacement quelconque de sa
propre structure.
0.1.4 Représentations internes
Les données décodées doivent toujours être mémorisées avant d'être imprimées ou affichées. Bien que la présente
Recommandation | Norme internationale ne spécifie pas leur mode de stockage, leur modèle de décodage présuppose
certaines structures de données, précisément des tampons et des dictionnaires. La Figure 1 décrit les principaux
composants du décodeur et leurs tampons associés. Dans cette figure, les procédures de décodage sont indiquées en traits
gras et les composants de mémoire en traits non gras. De même, les flèches en gras indiquent qu'une procédure de
décodage donnée invoque une autre procédure de décodage. Par exemple, la procédure de décodage par dictionnaire de
symboles invoque la procédure de décodage de région générique pour décoder les phototrames pour les symboles qu'elle
définit. Les flèches maigres indiquent les flux de données: la procédure de décodage de la région alphanumérique lit les
symboles dans la mémoire de symboles et les insère dans le tampon de page ou dans un tampon auxiliaire. Bien que cela
ne soit pas représenté sur la Figure 1, le flux de données codées s'écoule vers les procédures de décodage et le bloc
étiqueté "Tampons de page et tampons auxiliaires" produit les images finales des pages décodées.
Les ressources requises pour décoder un flux binaire JBIG2 donné dépendent de la complexité de ce flux. Certaines
techniques comme le découpage en bandes peuvent servir à réduire les besoins en mémoire du décodeur. L'on estime
qu'un décodeur à caractéristiques complètes peut nécessiter, afin de décoder la plupart des flux binaires, deux tampons de
page complète plus environ la même quantité de mémoire pour le dictionnaire, plus environ 100 kbits de mémoire pour
le contexte de codage arithmétique.
Un tampon est une représentation d'une phototrame. Il est destiné à conserver une grande quantité de données,
normalement du volume d'une page. Un tampon peut contenir la description d'une région ou d'une page entière. Même si
le tampon ne décrit qu'une région, il possède les informations qui y sont associées pour spécifier son emplacement dans
la page. Le décodage d'un segment de région modifie le contenu d'un tampon.
Il existe un tampon spécial: le tampon de page. Il permet au décodeur d'y accumuler directement des données de page
jusqu'à ce que celle-ci ait été complètement décodée; puis les données peuvent être envoyées vers un dispositif de sortie
ou vers un fichier. Le décodage d'un segment de région immédiate modifie le contenu du tampon de page. La façon
habituelle de préparer une page consiste à décoder un ou plusieurs segments de région immédiate dont chacun modifie le
tampon de page. Le décodeur peut produire en sortie un tampon de page incomplet, soit dans le cadre d'une transmission
en mode progressif soit en réponse à une commande de l'utilisateur. Ce type de sortie est facultatif et son contenu n'est
pas spécifié par la présente Recommandation | Norme internationale.
Tous les autres tampons sont des tampons auxiliaires. L'on prévoit que le décodeur remplit un tampon auxiliaire puis
l'utilise pour raffiner le tampon de page. Dans une application donnée, il sera souvent inutile d'avoir des tampons
auxiliaires. Le décodage d'un segment de région intermédiaire modifie le contenu d'un tampon auxiliaire. Le décodeur
peut utiliser des tampons auxiliaires pour produire des pages autres que celles qui se trouvent dans un tampon de page
complète, soit dans le cadre d'une transmission en mode progressif soit en réponse à une commande de l'utilisateur. Ce
type de sortie est facultatif et son contenu n'est pas spécifié par la présente Recommandation | Norme internationale.
Un dictionnaire de symboles se compose d'un ensemble de matrices indexées. Les matrices contenues dans un
dictionnaire sont normalement petites, de la dimension de caractères alphanumériques environ. A la différence d'un
tampon, une matrice de dictionnaire n'a pas d'information de mise en page associée.
0.1.5 Résultats du décodage
Le décodage d'un segment implique l'invocation d'une ou de plusieurs procédures d
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...