Information technology - Computer graphics - Metafile for the storage and transfer of picture description information - Part 3: Binary encoding

Technologies de l'information — Infographie — Métafichier de stockage et de transfert des informations de description d'images — Partie 3: Codage binaire

General Information

Status
Withdrawn
Publication Date
04-Nov-1992
Withdrawal Date
04-Nov-1992
Current Stage
9599 - Withdrawal of International Standard
Start Date
16-Dec-1999
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 8632-3:1992 - Information technology -- Computer graphics -- Metafile for the storage and transfer of picture description information
English language
71 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 8632-3:1992 - Technologies de l'information -- Infographie -- Métafichier de stockage et de transfert des informations de description d'images
French language
72 pages
sale 15% off
Preview
sale 15% off
Preview

Frequently Asked Questions

ISO/IEC 8632-3:1992 is a standard published by the International Organization for Standardization (ISO). Its full title is "Information technology - Computer graphics - Metafile for the storage and transfer of picture description information - Part 3: Binary encoding". This standard covers: Information technology - Computer graphics - Metafile for the storage and transfer of picture description information - Part 3: Binary encoding

Information technology - Computer graphics - Metafile for the storage and transfer of picture description information - Part 3: Binary encoding

ISO/IEC 8632-3:1992 is classified under the following ICS (International Classification for Standards) categories: 35.140 - Computer graphics. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC 8632-3:1992 has the following relationships with other standards: It is inter standard links to ISO/IEC 8632-3:1992/Amd 1:1994, ISO/IEC 8632-3:1992/Amd 2:1995, ISO 8632-3:1987/Amd 1:1990, ISO/IEC 8632-3:1999, ISO 8632-3:1987; is excused to ISO/IEC 8632-3:1992/Amd 1:1994, ISO/IEC 8632-3:1992/Amd 2:1995. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

You can purchase ISO/IEC 8632-3:1992 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
STANDARD
8632-3
Second edition
1992-l O-01
Information technology - Computer graphics -
Metafile for the storage and transfer of picture
description information -
Part 3:
Binary encoding
Teclwoloqies de I’information - Infoqraphie -- Mhtafichier de stockaqe
c
et de trarisfert des informations de d&cripfion d’images ---
Par-tie 3: Codaqe binaire
.
Reference number
ISOll EC 8632-3: 1992(E)
ISO/IEC 8632-3: 1992 (E)
CONTENTS
. . . 1
. . . . . . . . . .
. . .
1 Scope . . . . . .
. . 2
* . . . . . . .
. . . . . .
2 Normative references .
. . . . . . .
. . . . . . . . .
3 Notational conventions .
. 4
. . . . e . . . . .
. . . . .
4 Overall structure . . .
. . 4
. . . . . . . . . .
. . . .
4.1 General form of metafile
. . . 4
. . . . . . . . . . * .
.
4.2 General form of pictures
l . . . . . 4
. . . . . . . . .
.
4.3 General structure of the binary metafile
. . . . . . . . 5
. . . . . . . .
4.4 Structure of the command header . .
. . 8
. . . . . . . . . .
. . . .
5 Primitive data forms . . . . . . .
. . . . 8
. . . * . . . . . .
. .
5.1 Signed integer . . . . . . . .
. . . . . . . 8
. . . . . . . . .
5.1.1 Signed integer at &bit precision
. . . . . . . . 8
. . . . . . . .
5.1.2 Signed integer at 1 &bit precision
. . . . . . . . . . 9
. . l . . 0,
5.1.3 Signed integer at 24-bit precision
. . . . . . . . . . . 9
. . . a .
5.1.4 Signed integer at 32-bit precision
n . . . . . . . . 9
. . . . . . .
5.2 Unsigned integer . . . . . . .
. . . . . . . . 9
. . . . . . .
5.2.1 Unsigned integers at &bit precision
. . . . . . * . . 9
. . . . . .
5.2.2 Unsigned integers at 16-bit precision
. . . . . . . . . 9
. . . . . .
5.2.3 Unsigned integers at 24-bit precision
. . . . . . . . . . . . l 10
. .
5.2.4 Unsigned integers at 32-bit precision
. . . . . . . . . . . . .
. .
5.3 Character . . . . . . . . . .
. . . . . . * . . . . . 10
. . .
5.4 Fixed point real . . . . . . . .
. . . . . . . . . . . . . 10
. .
5.4.1 Fixed point real at 32-bit precision .
. . . . . . . . . . a . . . 10
. .
5.4.2 Fixed point real at 64-bit precision
. . . . . . . . . . . . . .
5.4.3 Value of fixed point reals . . . .
. . . . . . . . e . . . . . .
5.5 Floating point . . . . . . . . .
. . . . . . . . . . . . . .
5.5.1 Floating point real at 32-bit precision .
. . * . . . . . . . . . 12
. . .
5.5.2 Floating point real at 64-bit precision
. . . 13
. . . . . . . . . . l .
6 Representation of abstract parameter types . .
0 ISO/IEC 1992
All rights reserved. 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 the
publisher.
ISWIEC Copyright Office l Case postale 56 l CH-1211 Gerkve 20 l Switzerland
Printed in Switzerland
ii
ISO/IEC 8632-3: 1992 (E)
. . . . . . . . . . . . . . . 18
7 Representation of each element . . . .
. . . . . . . . . . . . * . . 18
71 . Method of presentation . . . . .
. . . . . . . . . . . . . . . . . . . 19
72 . Delimiter elements
. . 21
. . . . . . . . . . . .
73 . Metafile descriptor elements . . . .
. . 28
. . . . . . . . . . . .
74 . Picture descriptor elements . . . . .
. . 33
. . . . . * . . . . . .
75 . Control elements . . . . . . . .
. . . 36
. . . . . . . . . . . .
76 . Graphical primitive elements . . .
. . . . . . . . . . 43
. . . . .
77 . Attribute elements . . . . . .
. . . . . . . . . . . . 52
. . .
78 . Escape element . . . . . . .
. . . . . . . . . . . 53
. . . .
79 External elements . . . . . . .
. . . . . . . . . . . . 54
.
7'10 . Segment control and segment attribute elements
. . . 58
. . . . . . . . . .
8 Defaults . . . . . . . . . . . l . .
. . 59
. . . . . . . . . . .
9 Conformance . . . . . . . . . . . . .
* . . . . . . . . . . . 60
.
A Formal grammar . . . . . . . . . . . .
. . . . . . . . . . . . . 63
B Examples . . . . . . . . . . . . . .
. . . . . . . . . . . . . 63
B. 1 Example 1 : BEGIN METAFILE ‘Example 1’ .
. . . . . . . . . . . . . 63
B.2 Example 2 : BEGIN PICTURE ‘Test’ . . . .
. . . . . 64
Example 3 : POLYLINE from 0,2 to l,3 to 2,l to 0,2 . . . * . . .
B.3
. . 64
B.4 Example 4 : TEXT ‘Hydrogen’ at 0,l . . . . . . . . . . . . . . .
. . . . . 65
B.5 Example 5 : Partitioned POLYLINE with 50 points . . . . . . .
. . . . . . . 66
B.6 Example 6 : METAFILE DEFAULT REPLACEMENT linewidth 0.5
. . . . . . . . 66
B.7 Example 7 : Application Data # 655 with 1OK octets (chars) of data
. . . . . . . 67
C List of binary encoding metafile element codes . . . . . . . . .
. . .
ISO/IEC 8632-3: 1992 (E)
Foreword
IS0 (the International Organization for Standardization) and IEC (the International Electrotechnical Conkssion)
National bodies that are members of IS0 or IEC
form the specialized system for worldwide standardization.
participate in the development of International Standards through technical committees established by the
IS0 and IEC technical conhttees
respective organization to deal with particular fields of technical activity.
collaborate in fields of mutual interest. Other international organizations, govemnlental and non-governmental, in
liaison with IS0 and IEC, also take part in the work.
In the field of information technology, IS0 and IEC have established a joint technical committee, ISO/IEC JTC 1.
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 ISOIIEC 8632-3 was prepared by Joint Technical Committee ISO/IEC JTC 1, Injhnation
technology.
which has been technically revised.
This second edition cancels and replaces the first edition (IS0 8632-3:1987),
ISOIIEC 8632 consists of the following parts, under the general title Information techology - Compzrtel
graphics - MetaJiIe for the storage and transfer of picture description information :
Part I: Functional specijkation
Part 2: Character encoding
Part 3: Binary encoding
Part 4: Clear text encoding
Annex A fomis an integral part of this part of ISO/IEC 8632. Annexes B and C are for infom~ation only.
iv
ISO/IEC 8632-3: 1992 (E)
Introduction
0.1 Purpose of the Binary Encoding
The Binary Encoding of the Computer Graphics Metafile (CGM) provides a representation of the Metafile
syntax that can be optimized for speed of generation and interpretation, while still providing a standard
means of interchange among computer systems. The encoding uses binary data formats that are much more
similar to the data representations used within computer systems than the data formats of the other encod-
ings.
Some of the data formats may exactly match those of some computer systems. In such cases processing is
reduced very much relative to the other standardized encodings. On most computer systems processing
requirements for the Binary Encoding will be substantially lower than for the other encodings.
In cases where a computer system’s architecture does not match the standard formats used in the Binary
Encoding, and where absolute minimization of processing requirements is critical, and where interchange
among dissimilar systems does not matter, it may be more appropriate to use a private encoding, conform-
ing to the rules specified in clause 7 of ISO/IEC 8632-l.
0.2 0 bjectives
This encoding has the following features.
metafile elements are coded in the Binary Encoding by one or
Partitioning of parameter lists:
a>
more partitions (see clause 4); the first (or only) partition of an element contains the opcodc (Ele-
ment Class plus Element Id).
Alignment of elements: every element begins on a word boundary. When the data of an element
b)
(whether partitioned or not) does not terminate on an even-octet boundary, then the following ele-
ment is aligned by padding after the data of the preceding element with zero bits to the next
even-octet boundary, A no-op element is available in this encoding. It is skipped and ignored by
interpreters. It may be used to align data on machine-dependent record boundaries for speed of
processing.
Uniformity of format: all elements have an associated parameter length value. The length is
C>
specified as an octet count. As a result, it is possible to scan the metafile, without interpreting it,
at high speed.
ISO/IEC 8632-3: 1992 (E)
Objectives
Introduction
at default precisions and by virtue of alignment of elements, coor-
Alignment of coordinate data:
d)
dinate data always start on word boundaries. This minimizes processing by ensuring, on a wide
class of computing systems, that single coordinates do not have to be assembled from pieces of
multiple computer words.
Efficiency of encoding integer data: other data such as indexes, colour and characters are
e>
encoded as one or more octets. The precision of every parameter is determined by the appropriate
precision as given in the Metafile Descriptor.
Order of bit data: in each word, or unit within a word, the bit with the highest number is the most
significant bit. Likewise, when data words are accessed sequentially, the least significant word
follows the most significant.
Extensibility: the arrangement of Element Class and Element Id values has been designed to
g)
allow future growth, such as new graphical elements.
Format of real data: real numbers are encoded using either IEEE floating point representation or
l-0
a metafile fixed-point representation.
Run length encoding: if many adjacent cells have the same colour (or colour index) efficient
encoding is possible. For each run a cell count is specified followed by the colour (or colour
index).
.
Packed list encoding: if adjacent colour cells do not have the same colour (or colour index) the
J)
metafile provides bit-stream lists in which the values are packed as close1 .y as possible.
0.3 Relationship to other International Standards
The floating point representation of real data in this part of ISO/IEC 8632 is that in ANSI/IEEE 754-1986.
The representation of character data in this part of ISO/IEC 8632 follows the rules of ISO/IEC 646 and IS0
2022.
For certain elements, the CGM defines value ranges as being reserved for registration. The values and their
vi
ISO/IEC 8632-3: 1992 (E)
Relationship to other International Standards Introduction
vi1
This page intentionally left blank

INTERNATIONAL STANDARD ISO/IEC 8632-3 : 1992 (E)
Information technology - Computer graphics - Metafile for
the storage and transfer of picture description information -
Part 3 :
Binary encoding
1 Scope
This part of ISO/IEC 8632 specifies a binary encoding of the Computer Graphics Metafile. For each of the
elements specified in ISO/IEC 8632-1, this part specifies an encoding in terms of data types. For each of
these data types, an explicit representation in terms of bits, octets and words is specified. For some data
types, the exact representation is a function of the precisions being used in the metafile, as recorded in the
METAFILE DESCRIPTOR.
This encoding of the Computer Graphics Metafile will, in many circumstances, minimize the effort required
to generate and interpret the metafile.

ISO/IEC 863293:1992 (E)
2 Normative references
The following standards contain provisions which, through reference in this text, constitute provisions of
this part of ISO/IEC 8632. At the time of publication, the editions indicated were valid. All standards are
subject to revision, and parties to agreements based on this part of ISO/IEC 8632 are encouraged to investi-
gate the possibility of applying the most recent editions of the standards listed below. Members of IEC and
IS0 maintain registers of currently valid International Standards.
ISOllEC 646: 1991, Information technology - IS0 7-bit coded character set for information interchange.
IS0 7-bit and a-bit coded character sets - Code extension techniques.
IS0 2022: 1986, Information processing -
ANSI/IEEE 754, Standard for Binary Floating Point Arithmetic.

ISO/IEC 8632-3: 1992 (E)
3 Notational conventions
“Command Header” is used throughout this part of ISO/IEC 8632 to refer to that portion of a Binary-
Encoded element that contains the opcode (element class plus element id) and parameter length information
(see clause 4).
Within this part, the terms “octet” and “word” have specific meanings. These meanings may not match
those of a particular computer system on which this encoding of the metafile is used.
An octet is an S-bit entity. All bits are significant. The bits are numbered from 7 (most significant) to 0
(least significant).
A word is a 16-bit entity. All bits are significant. The bits are numbered from 15 (most significant) to 0
(least significant).
ISO/IEC 8632-3: 1992 (E)
4 Overall structure
4.1 General form of metafile
All elements in the metafile are encoded using a uniform scheme. The elements are represented as variable
length data structures, each consisting of opcode information (element class plus element id) designating
the particular element, the length of its parameter data and finally the parameter data (if any).
The structure of the metafile is as follows. (For the purposes of this diagram only, MF is used as an abbre-
viation for METAFILE.)
BEGIN MF MD . . . END MF
The BEGIN METAFILE element is followed by the METAFILE DESCRIPTOR (MD). After this the pic-
Finally the Metafile is ended with an END
tures follow, each logically independent of each other.
METAFILE element.
4.2 General form of pictures
Apart from the BEGIN METAFILE, END METAFILE and Metafile Descriptor elements, the metafile is
partitioned into pictures. All pictures are mutually independent. A picture consists of a BEGIN PICTURE
element, a PICTURE DESCRIPTOR (PD) element, a BEGIN PICTURE BODY element, an arbitrary
number of control, graphical and attribute elements and finally an END PICTURE element. (For the pur-
pose of this diagram only, PIC is used as an abbreviation for PICTURE and BEGIN BODY for BEGIN
PICTURE BODY .)
1 BEGIN PIG 1 PD 1 BEGIN BODY 1 . . . I END PIG I
4.3 General structure of the binary metafile
The binary encoding of the metafile is a logical data structure consisting of a sequential collection of bits.
For convenience in describing the length and alignment of metafile elements, fields of two different sizes
are defined within the structure. These fields are used in the remainder of this part of ISO/IEC 8632 for
illustrating the contents and structure of elements and parameters.
For measuring the lengths of elements the metafile is partitioned into octets, which are 8-bit fields.
The structure is also partitioned into 16-bit fields called words (these are logical metafile words). To optim-
ize processing of the binary metafile on a wide collection of computers, metafile elements are constrained to
start on word boundaries within the binary data structure (this alignment may necessitate padding an ele-
ment with bits to a word boundary if the parameter data of the element does not fill to such a boundary).
The octet is the fundamental unit of organization of the binary metafile.
The bits of an octet are numbered 7 to 0, with 7 being the most significant bit. The bits of a word are num-
bered 15 to 0, with 15 being the most significant bit.

ISO/IEC 8632-3: 1992 (E)
General structure of the binary metafile
Overall structure
b7 b0
+-+-+-+-+-+-+-+-+
octet:
I I
+-+-+-+-+-+-+-+-+
msb Isb
b15 b8.b7 b0
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
word:
I I I
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
msb lsb
If the consecutive
bits of the binary data structure are numbered 1 .N, and the consecutive octets are num-
bered l.N/8, and the consecutive words are numbered l.N/16, then the logical correspondence of bits,
octets, and words in the binary data structure is as illustrated in the following table:
octet word
metafile
. . .
bit bit bit
number number number
1 b7/octet 1 bl5/wordl
. . .
.
8 bO/octet 1 b8/word 1
9 b7/octet2 b7/word 1
.
.
16 bO/octet2 bO/word 1
17 b7/octet3 bl5/word2
.
.
24 bO/octet3 b8/word2
b7/word2
25 b7/octet4
.
.
4.4 Structure of the command header
Throughout this sub-clause, the term “command” is used to denote a binary-encoded element. Metafile ele-
ments are represented in the Binary Encoding in one of two forms - short-form commands and long-form
commands. There are two differences between them:
- a short-form command always contains a complete element; the long-form command can accommo-
date partial elements (the data lists of elements can be partitioned);
- a short-form command only accommodates parameter lists up to 30 octets in length; the long-form
command accommodates lengths up to 32767 octets per data partition.
The forms differ in the format of the Command Header that precedes the parameter list. The command
form for an element (short or long) is established by the first word of the element. For the short-form, the
Command Header consists of a single word divided into three fields: element class, element id and parame-
ter list length.
ISO/IEC 8632-3: 1992 (E)
Overall structure
Structure of the command header
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
__-----------------_----------------
-------
element id I parm list lenl
1 elem class1
Word 1
____ _-----_------------- -_________---- I
_------ I I
I
Format of a short-form Command Header
Figure l-
The fields in the short-form Command Header are as follows:
element class (value range 0 to 15)
bits 15 to 12
element id (value range 0 to 127)
bits 11 to 5
parameter list length: the number of octets of parameter data that follow for this com-
bits 4 to 0
mand (value range 0 to 30)
This Command Header is then followed by the parameter list.
The first word of a long-form command is identical in structure to the first word of a short-form command.
The presence of the value 11111 binary (decimal 3 1) in parameter list length field indicates that the com-
mand is a long-form command. The Command Header for the long-form command consists of two words.
The second word contains the actual parameter list length. The two header words are then followed by the
parameter list.
In addition to allowing longer parameter lists, the long-form command allows the parameter list to be parti-
tioned. Bit 15 of the second word indicates whether the given data complete the element or more data fol-
low. For subsequent data partitions of the element, the first word of the long-form Command Header (con-
taining element class and element id) is omitted; only the second word, containing the parameter list length,
is given. The parameter list length for each partition specifies the length of that partition, not the length of
the complete element. The final partition of an element is indicated by bit 15 of the parameter list length
word being zero.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------___--___________
Word 1 1 elem class1 element id I1 11 111
----------- -------------------_ I -----_________
I I I
Word 2 parameter list length
I p I I
I s-s I ------------------------------------------- I
Figure 2 - Format of a long-form Command Header
The fields in the long-form Command Header are as follows:
Word 1
bits 15 to 12 element class (value range 0 to 15)
bits 11 to 5
element id (value range 0 to 127)
bits 4 to 0 binary value 11111 (decimal 31) indicating long-form
Word 2
bit 15 partition flag
- 0 for ‘last’ partition
- 1 for ‘not-last’ partition
bits 14 to 0
parameter list length: the number of octets of parameter data that follow for
this command or partition (value range 0 to 32767).
ISO/IEC 8632-3: 1992 (E)
Structure of the command header
Overall structure
The parameter values follow the parameter list length for either the long-form or short-form commands.
The number of values is determined from the parameter list length and the type and precision of the
operands. These parameter values have the format illustrated in clause 5 of this part of ISO/IEC 8632. The
For non-coordinate parameters, the
parameter type for coordinates is indicated in the Metafile Descriptor.
parameter type is as specified in clause 5 of ISO/IEC 8632-l. If the parameter type is encoding dependent,
Unless otherwise stated, the order of
its code is specified in the coding tables of clause 7 of this part.
parameters is as listed in clause 5 of ISO/IEC 8632-l.
Every command is constrained to begin on a word boundary. This necessitates padding the command with
a single null octet at the end of the command if the command contains an odd number of octets of parame-
ter data. In addition, in elements with parameters whose precisions are shorter than one octet (i.e., those
containing a ‘local colour precision’ parameter) it is necessary to pad the last data-containing octet with null
bits if the data do not fill the octet. In all cases, the parameter list length is the count of octets actually con-
taining parameter data - it does not include the padding octet if one is present. It is only at the end of a
command that padding is performed, with the single exception of the CELL ARRAY element.
The purpose of this command alignment constraint is to optimize processing on a wide class of computers.
At the default metafile precisions, the parameters which are expected to occur in greatest numbers (coordi-
nates, etc) will align on 16-bit boundaries, and Command Headers will align on l6-bit boundaries. Thus, at
the default precisions the most frequently parsed entities will lie entirely within machine words in a large
The avoidance of assembling single metafile parameters from pieces of
number of computer designs.
several computer words will approximately halve the amount of processing required to recover element
parameters and command header fields from a binary metafile data stream.
This optimization may be compromised or destroyed altogether if the metafile precisions are changed from
default. Commands are still constrained to begin on 16-bit boundaries, but the most frequently expected
parameters may no longer align on such boundaries as they do at the default precisions.
The short form command header with element class 15, element id 127, and parameter list length 0 is
reserved for extension of the number of available element classes in future revisions of this part of ISO/IEC
8632. It should be treated by interpreters as any other element, as far as parsing is concerned. The next
“normal” element encountered will have an actual class value different from that encountered in the “ele-
ment class” field of the command header - it will be adjusted by a bias as will be defined in a future revi-
sion of this part of ISO/IEC 8632.

ISO/IEC 8632-3: 1992 (E)
5 Primitive data forms
The Binary Encoding of the CGM uses five primitive data forms to represent the various abstract data types
used to describe parameters in ISO/IEC 8632-l.
The primitive data forms and the symbols used to represent them are as follows.
SI Signed Integer
UI Unsigned Integer
C Character
FX Fixed Point Real
FP Floating Point Real
Each of these primitive forms (except Character) can be used in a number of precisions. The definitions of
the primitive data forms in 5.1 to 5.5 show the allowed precisions for each primitive data form. The
definitions are in terms of ‘metafile words’ which are 16-bit units.
The following terms are used in the following diagrams when displaying the form of numeric values.
msb most significant bit
lsb least significant bit
sign bit
S
The data types in the following data diagrams are illustrated for the case that the parameter begins on a
metafile word boundary. In general, parameters may align on odd or even octet boundaries, because they
may be preceded by an odd or even number of octets of other parameter data. Elements containing the
local colour precision parameter may have parameters shorter than one octet. It is possible in such cases
that the parameters will not align on octet boundaries.
5.1 Signed integer
Four precisions may be specified for signed
Signed integers are represented in “two’s complement” format.
integers: &bit, 16-bit, 24-bit and 32-bit. (Integer coordinate data encoded with this primitive data form do
not use the 8-bit precision.) In the diagrams of the following subsections, ‘value’ indicates the value for
positive integers and the two’s complement of the value for negative integers.
5.1.1 Signed integer at S-bit precision
Each value occupies half a metafile word (one octet).
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
___-----e-s- ___--------------_________-_------
value i 1sblSlmsb value i+l IsbJ
1 S lmsb
- ___________---------- I - I -----_____---_____-- I
I I
5.1.2 Signed integer at 16,bit precision
Each value occupies one metafile word.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
_______________-------------------------------
value lsbl
ISlmsb
- ____________-------------------------------- I
I I
ISO/IEC 8632-3: 1992 (E)
Primitive data forms Signed integer
5.1.3 Signed integer at 24-bit precision
Each value straddles two successive metafile words.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
__-__--------_____----------------------------
Word 1 ISlmsb value i
I I _---_--___________-----------------------___
value i lsb(Slmsb value i+l
Word 2 -
-------___________--- ___ - -_-----------_______
I I
Word 3 value i+l lsbl
____________________---------------------------
I
5.1.4 Signed integer at 32-bit precision
Each value fills two complete metafile words.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
_______________----------------------------- --
value i
Word 1 ISlmsb
_____________----------------------------
I I
Word 2 value i lsbl
-
_________________------------------------------
I
5.2 Unsigned integer
Four precisions may be specified for unsigned integers: 8-bit, 16-bit, 24-bit and 32-bit.
5.2.1 Unsigned integers at S-bit precision
Each value occupies half a metafile word.
15 14 13 12 11 10 9 8 7 6 4 2
5 3 1 0
_________________------------------------------
value i lsblmsb value i+l lsbl
lmsb
I __________________--____ I --____---__----___---- I
5.2.2 Unsigned integers at 16-bit precision
Each value occupies one metafile word.
15 14 13 12 11 10 9 8
7 6 5 4 3 2 1 0
_-________________-_---------------------------
value lsbl
Imsb
_________________------------------------------
I I
5.2.3 Unsigned integers at 24.bit precision
Each value straddles two successive metafile words.

Primitive data forms
Unsigned integer
151413121110 9 8 7 6 5 4 3 2 10
_-__-- __-_-_________------ _______-_______-_----
Word 1 Imsb value i
________------_--__-~-~---~
_______-----__-____-
I
value i+l
value i 1 sb lmsb
Word 2
____-_------_-_____ ---
______---------_-__- I
value i+l lsbl
Word 3
_________-_--__-____------ _______-----------___ I
5.2.4 Unsigned integers at 32-bit precision
Each value fills two complete metafile words.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
_________________-------------------- --_-_-_-_-
value i
Word 1 Imsb
_________-______-_--- --------___-________------
I
value i lsbl
Word 2
-____________________
___________-_--_-__------- I
5.3 Character
Each character is stored in 1 or more consecutive octets, depending upon the coding of the partkular char-
acter set. The following illustrates characters which are coded with 1 octet each.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
____________________------------ -_-_-_-____-___
Character i+l
Character i
I I
I
-_-___-__-_-_--____---
_____________-_--------- I I
I
5.4 Fixed point real
Fixed point real values are stored as two integers; the first represents the “whole part” and has the same
form as a Signed Integer (SI; see 5.1); the second represents the “fractional part” and has the same form as
an Unsigned Integer (UI; see 5.2). Two precisions may be specified for Fixed Point Reals: 32-bit or 64-bit.
5.4-l Fixed point real at 32-bit precision
Each Fixed Point Red occupies 2 complete metafile words; the first has the form of a 16-bit Signed Integer
and the second the form of a 16-bit Unsigned Integer.
15 14 13 12 11 10 9 8 7
6 5 4 3 2 1 0
--_-_------------- _---_--__--___-__-__________c
Word 1 1 Slmsb Whole
part lsbl
I __ I ________________ ----__--~--_------_----~~-~~l
Word 2 Fraction part
Imsb lsbl
I ________________-_---------------- ---______-_-- I
5.4.2 Fixed point real at 64-bit precision
Each Fixed Point Real occupies 4 complete metafile words; the first has the form of a 32-bit Signed Integer
and the second the form of a 32-bit Unsigned Integer.
ISO/IEC 8632-3: 1992 (E)
Fixed point real
Primitive data forms
15 14 13 12 11 lo 9 8 7 6 5 4 3 2 1 0
--------______________------~------------_------
Word 1 1 SI msb whole part
I __ I __________________ ---------------------------
Word 2 whole part lsb 1
I
------_____________----------------------------
Word 3 1 msb fraction part
I ___I________________---------------------------
lsb I
Word 4 fraction part
____--____--_____-___---__---_-----------______ I
54.3 Value of fixed point reals
The values of the represented real numbers are given by:
for 32 bits:
uz
for 64 bits: real-value = SI + -
i 332 1
SI stands for the “whole part” and UI stands for the “fractional part” in these equations. SI, the whole part,
is the largest integer less than or equal to the real number being represented.
5.5 Floating point
Floating Point Real values are represented in the floating point format of ANSI/IEEE 754. This format con-
tains three parts:
- a sign bit (‘s’);
- a biased exponent part (‘e’);
- a fraction part (‘f’).
The value is a function of these three values (‘s’, ‘e’ and ‘f’). If ‘s’ is ‘0’, the value is positive; if ‘s’ is ‘ I’,
the value is negative. Two precisions may be specified for Floating Point Reals: 32-bit or 64-bit. The mag-
nitude of the value is calculated as follows for 32-bit representation.
If e = 255 and f ;f 0, then the value. is undefined.
a>
If e = 255 and f = 0, then the value is as large a positive (s=O) or negative (s=l) value as possible.
b)
If 0 < e < 255, then the magnitude of the value is (1 .f)(2e-‘27).
C>
If e = 0 and f ;f 0, then the magnitude of the value is (0.j)(2-‘26).
d)
If e = 0 and f = 0, then the value is 0.
e>
The magnitude of the value is calculated as follows for 64-bit representation.
If e = 2047 and f # 0, then the value is undefined.
a>
If e = 2047 and f = 0, then the value is as large a positive (s=O) or negative (s=l) value as possi-
b)
ble .
If 0 < e < 2047, then the magnitude of the value is ( l.j)(2e-‘023).
C>
ISO/IEC 8632-3: 1992 (E)
Primitive data forms
Floating point
If e = 0 and f of 0, then the magnitude of the value is (0.j’)(2-‘022).
d)
If e = 0 and f = 0, then the value is 0.
5.51 Floating point real at 32-bit precision
Each Floating Point Real value occupies 2 metafile words. The size of each field in the value is as follows:
sign 1 bit
exponent 8 bits
fraction 23 bits
2 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3
__________________________---_--I-__-__-____-__
lsblmsb Fraction
Word 1 1 Slmsb Exponent
l__l____-------------------l--------------------
lsbl
Fraction
Word 2
--- l
_-______________-___-__-_--_--------__--_--__
55.2 Floating point real at 64-bit precision
Each Floating Point Real value occupies 4 metafile words. The size of each field in the value is as follows:
sign 1 bit
exponent 11 bits
fraction 52 bits
15 12 10 9 8 7 6 5 4 3 2 1 0
14 13 11
_________________------------------------------
Exponent lsblmsb
Word 1 1 Slmsb
I __ I ______________-___ --__---__---__- I ---- - ____-
Fraction
Word 2
_-b----------b __--___-_-_----------------------
Word 3 Fraction
__________________-----------------------------
Word 4 Fraction lsbl
--
______________------------------------------- l
ISO/IEC 8632-3: 1992 (E)
6 Representation of abstract parameter types
Table 1 shows, for each of the abstract parameter types, how it is represented in the Binary Encoding of the
CGM in terms of primitive data forms. The columns of the table are as follows:
The symbol for the abstract parameter type, as it is specified in clause 5 of ISO/IEC 8632-l.
1)
The way the parameter type is constructed in terms of the primitive data forms, at the appropriate
2)
precisions. The precisions are those defined in clause 5 of ISO/IEC 8632-l.
The symbol for the number of octets required to represent one instance (occurance) of the given
3)
parameter, at the given precision, and the formula for computing the number.
The symbol for the range of values which the parameter can assume, followed by the numerical
4)
values which the parameter can assume, followed by the numerical values which define the range.
The symbols of columns 3 and 4 are used extensively in the code tables in clause 7. Also used in the code
tables are variations on those symbols:
denote the range of positive integers, range of positive reals, . .
+IR, +RR, . .
denote the range of negative integers, range of negative reals, . .
-IR, -RR, . .
denote the range of non-negative integers, range of non-negative reals, . .
++IR, ++RR, . .
m1, mR,. denotes ‘m’ integers, reals, . .
I*, R*,. denotes an unbounded number of integers, reals, . .
Combinations are used:
2R, 21, IX*,. indicates a parameter that is represented by 2 reals, then a parameter that is
represented by 2 integers and finally a parameter that contains an unlimited number
of index values.
Representation of abstract parameter types
- Representation of abstract data types
Table 1
Parameter Octets per parameter: Parameter range:
Abstract
construction from symbol and value symbol and value
symbol
primitive forms
UI at colour index BCI CIR
CI
( o.(2c@-l))
precision (tip) (=cip/8)
~~
CCOR
cc0 UI at direct BCCO
( o.(2dcp-l))
colour precision (=dcpBl
(see note 2)
(dcp)
BCD CCOR
CD (cco,cco,cco)
=(3*BCCO) (see notes 1,16)
or
BCD
(cco,cco,cco,cco)
=(4*BCCO)
BIX IXR ( -2’xp -’
IX SI at index
(=ixp/8} to
precision (ixp)
ixp -1
2 -1)
BE (-215 to 215-1 )
E SI at fixed
-
-
precision (16-bit) (see note 18)
t 23
(see note 3)
IR [-2’P-l
BI
I SI at integer
precision (ip) to
(=ip/81
2iP-1-l >
FP or FX at real BR (=sum(rp)/8) RR (=FPR or FXR,
R
precision (rp) (see note 4) see notes S,lO>
S ,SF,D UI,nC BS SR
(see note 6) (see notes 6,121
~-~
BVDC VDCR
VDC SI at VDC integer
vip-1 to
precision (vip) (=vip/8)
t-2
fpP-1-l >
or or or
FP or FX at VDC real BVDC (=sum(vrp)/8) VDCR
precision (w-p) {see note 4) (see notes 1,5,7,8)
P (VDC,VDC) BP VDCR
(=2*BVDC) (see notes 1,5,7,8)
co CI BCO (=BCI) COR (=CIR)
(see notes 9,111
or or or
CD BCO (=BCD) COR (=CCOR)
N SI at integer BN NR (-2”p-’
precision (np) to
(=np/8)
2”p-l-1)
vc I BVC (=BI} VCR (=IR)
{see note 13)
or or or
R BVC (=BR)
VCR (=RR)
VP BVP (=2*BVC)
VCR
wcvc)
(see notes 1,13,14)
ISO/IEC 8632-3: 1992 (E)
Representation of abstract parameter types
Table 1 - Representation of abstract data types (concluded)
Octets per parameter: Parameter range:
Abstract Parameter
construction from symbol and value
symbol symbol and value
primitive forms
BS BBS BSR
nU1 at fixed
precision ( 16-bit) (=2n) (see note 15)
(see note 15)
UI8 UI at fixed BUIS (=l) UI8R
precision (8-bit) (0.255)
BU132 (=4) UI32R
U132 UI at fixed
(o.232-1)
precision (32-bit)
BSDR
SDR {see note 17) n/a
VDC BSS (=BVDC) SSR (=VDCR)
ss
[see note 191
or
or or
BSS (=BR) SSR (=RR)
R
NOTES
For parameters that are composed of multiple identical components (e.g., DIRECT COLOUR, CD, and
1)
POINT, P) the range value represents the range of a single component.
For colour models RGB and CMYK a direct colour component is abstractly a real in the range [OJ]. For
2)
colour models CIELAB, CIELUV, and RGB-related it is abstractly a real in the respective colour spaces
with possibly different ranges for the direct colour components. The COLOUR VALUE EXTENT clement
provides for the mapping between a direct colour component represented as UI and the corresponding real
value.
Abstract parameter type Enumeration, E, is encoded identically to abstract type Index, IX, at 16-bit preci-
3)
sion.
The REAL PRECISION element contains an indicator (fixed or floating point) and two precision com-
4)
ponents. The symbol t’sum(rp)” in the table indicates the sum of the number of bits specified in the two
components. The same considerations apply to the VDC REAL PRECISION element and the symbol
“sum(vrp)” in the tables. The VDC REAL PRECISION control element may cause ‘vrp’ to be updated in
the body of metafile.
FPR and VDCR (when VDC are floating point reals) are computed following the ANSI/IEEE 754 floating
point standard (see clause 5 on the Floating Point Data Form).
The range for parameter types S and SF is not applicable. The range for character data is not applicable. A
6)
string is encoded as a count (unsigned integer) followed by characters. The count is a count of octets in the
string, not whole character codes (the two are equal for single byte codes, but not for multi-byte codes).
The encoding of the count is similar to the encoding of length information for metafile commands thcm-
selves. If the first octet is in the range 0.254, then it represents the character count for the complete string.
If the first octet is 255, then the next 16 bits contain the character count and a continuation flag. The first bit
is used as a continuation flag (allowing strings longer than 32767 characters) and the next 15 bits represent
the count, 0.32767, for the partial string. If the first bit is 0, then this partial string completes the string
parameter. If 1, then this partial string will be followed by another.
If the number of whole character codes in a string is ~1, and the number of octets per character code is con-
stant within the string and equal to WZ, and if the string is not continued (as a long-form string may be), then
the number of octets in the string parameter is either ~1.m + 1 or ~1.m + 3, depending upon whether the string
is short-form or long-form, respectively. If the number of octets per character code is not constant and/or
the string is a continued long-form string, then the number of octets is the string is not so easily expressed,
but is the total of the octets used in the “data” part of the string and the number of octets used for length
information.
ISO/IEC 8632-3: 1992 (E)
Representation of abstract parameter types
The abstract parameter type VDC, a single VDC value, is either a real or an integer, depending on the
7)
declaration of the metafile descriptor function VDC TYPE. Subsequent tables use a single set of symbols,
VDC, BVDC and VDCR, recognizing that they are computed differently depending on VDC TYPE.
The abstract parameter type VDC is a single value; a point, P, is an ordered pair of VDC.
s>
The parameter type symbol CO corresponds to the data type CO of ISO/IEC 8632-l. It is either direct
colour (CD) or indexed colour (CI), depending on the value specified in the COLOUR SELECTION MODE
element. The associated octets per parameter and range symbols, BCO and COR, are thus either BCI and
CIR or BCD and CDR respectively depending upon COLOUR SELECTION MODE.
10) To eliminate the need to support IEEE floating point in applications that do not need the dynamic range for
parameters of type R and VDC, a fixed point real format is provided for scalars (such as line width, charac-
ter spacing) and VDC. Fixed point reals consist of a (SI,UI) pair.
Fixed point reals (FX) apply to VDC, and to all metafile parameters of type R except for:
the metric scale factor parameter of the SCALING MODE element;
a>
the metric scde factor parameter of the DEVICE VIEWPORT SPECIFICATION MODE ele-
b)
ment;
In this encoding, these parameters are always encoded as floating point.
11) CELL ARRAY colour can optionally specify 1,2,4,8, 16,24 or 32 bit precisions for cell colours, as well as
using the default CI or CD precision.
The way in which the colour values in CELL ARRAY is represented is an extension of the representation of
single colour values. The CELL ARRAY element has a ‘cell representation flag’ which may take one of
two values:
0 run length representation
1 packed representation
For PACKED mode, each row of the cell array is represented by an array of colour values without compres-
sion. Each row starts on a word boundary. No row length information is stored since all rows arc the same
length.
The colour data thus occupies 2n,(l + [@n,--1)/16]) octets, where n, is the number of cells per row, n, is
the number of rows, p is the number of bits per colour, and [.I denotes “the greatest integer in .‘I
For RUN LENGTH encoding, the data for each row begins on a word boundary and consists of run-length-
lists for runs of constant colour value. Each ‘run-length-list’ consists of a count of a number of consecutive
cells and the representation of that colour. In terms of the abstract terms above, the colour list is of format
* and its length is *. With the exception of the first run of a row, the integer count of each
run immediately follows the colour specifier of the preceding run with no intervening padding.
12) Abstract parameter type Data Record, D, is encoded in this part similarly to string data. However, the con-
straints on character code values and the character set switching mechanisms (both those related to CHAR-
ACTER SET INDEX, and the purely IS0 2022 switching methods) do not necessarily apply to data records,
as they do to the structurally similar S and SF parameters.
How the data are encoded, the meaning of the data bytes in the record, and the effect (if any) of character set
switching mechanisms are part of the definitions of the individual Escape, GDP, and External elements to
which the data record belongs.
The coding technique of the SDR data type (see ref 2086) is one valid form for a Data Record parameter.
This form is recommended for GDP, Escape, and External element proposals submitted for Graphical Regis-
tration.
The coding tables in clause 7 will use the symbol D for the parameter type, and will use the S-ielated sym-
bols for other information about the parameter.
13) The abstract parameter type VC, a single VC value, is either a real or an integer, depending on the declara-
tion of the picture descriptor element DEVICE VIEWPORT SPECIFICATION MODE. When DEVICE
VIEWPORT SPECIFICATION MODE is ‘fraction of display surface’, the value is real. When DEVICE
ISO/IEC 8632-3: 1992 (E)
Representation of abstract parameter types
VIEWPORT SPECIFICATION MODE is ‘millimetres with scale factor’ or ‘physical device coordinates’,
the value is integer. Subsequent tables use a single set of values, VC, BVC and VCR, recognising that they
are computed differently depending on DEVICE VIEWPORT SPECIFICATION MODE.
The abstract parameter type VC is a single value; a viewport point, VP, is an ordered pair of VC.
14)
The bitstream (BS) data type is encoded as a stream of binary digits (bits)
...


NORME
ISO/CEI
I N TE R NAT I O NA LE
8632-3
Deuxième édition
1992-1 0-01
Technologies de l'information -
Infographie - Métafichier de stockage et
de transfert des informations de
-
description d'images
Partie 3:
Codage binai re
Information technology - Computer graphics - Metafile for the storage
and transfer of picture description information -
Part 3: Binary encoding
Numéro de référence
ISOKEI 86323:1992(F)
ISO/CEI 8632-3~1992 (F)
SOMMAIRE
1 Domaine d'application . 1
2 Références normatives . 2
3 Conventions de notation . 3
4 Structure générale . 4
4.1 Forme générale du métafichier . 4
4.2 Forme générale des images . 4
4.3 Structure générale du métafichier en codage binaire . 4
Structure de l'en-tête de commande . 6
4.4
5 Formes de base des données . 9
5.1 Entier signé . 9
5.1.1 Entier signé en précision 8 bits . 9
5.1.2 Entier signé en précision 16 bits . 10
5.1.3 Entier signé en précision 24 bits . 10
5.1.4 Entier signé en précision 32 bits . 10
Entier non signé . 10
5.2
5.2.1 Entier non signé en précision 8 bits . 1 0
5.2.2 Entier non signé en précision 16 bits . 10
5.2.3 Entier non signé en précision 24 bits . 11
5.2.4 Entier non signé en précision 32 bits . 11
5.3 Caractère . 11
Réel en virgule fixe . 11
5.4
5.4.1 Réel en virgule fixe en précision 32 bits . 12
5.4.2 Réel en virgule fixe en précision 64 bits . 12
5.4.3 Valeur des réels en virgule fixe . 12
5.5 Virgule flottante . 12
5.5.1 Réel en virgule flottante en précision 32 bits . 13
5.5.2 Réel en virgule flottante en précision 64 bits . 13
Représentation des types abstraits de paramètres . 15
Q ISO/CEI 1992
Droits de reproduction réservés . 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'éditeur .
ISO/CEI Copyright Office Case Postale 56 CH-1211 Genève 20 Suisse
Version française tirée en 1993
Imprimé en Suisse
ii
ISO/CEI 8632-31992 (F)
7 Représentation de chaque ékment . 20
7.1 Méthode de présentation . 20
7.2 Éléments délimiteurs . . 21
7.3 Éléments descripteurs de métafichier . 23
7.4 Éléments descripteurs d'image . 30
7.5 Éléments de contrôle . 35
7.6 Éléments de primitives graphiques . 38
7.7 Éléments attributs . 45
7.8 Élément d'échappement . 54
7.9 Éléments externes . 55
7.1 O Éléments de contrôle de segment et attributs de segment . 56
8 Valeurs par défaut . 60
9 Conformité . 61
A Grammaire formelle . 62
B Exemples . 64
B.l Exemple 1 : BEGIN METAFILE 'Exemple 1' . 64
B.2 Exemple 2 : BEGIN PICTURE 'Test' . 64
B.3 Exemple 3 : POLYLINE passant par O, 2 , 1, 3 , 2, 1 , O, 2 . 65
B.4 Exemple 4 : TEXT 'Hydrogen' à O, 1 . 65
B.5 Exemple 5 : POLYLINE partitionnée avec 50 points . 66
B.6 Exemple 6 : METAFILE DEFAULT REPLACEMENT épaisseur de trait 0.5 . 67
B.7 Exemple 7 : APPLICATION DATA # 655 avec 10K octets de données . 67
C Liste des codes d'éléments du métafichier en codage binaire . 68
iii
ISOICEI 8632-3:1992 (F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CE1 (Commission électrotechnique
internationale) forment ensemble un système consacré à la normalisation internationale considérée
comme un tout. Les organismes nationaux membres de I'ISO ou de la CE1 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 différents domaines particuliers de l'activité
technique. Les comités techniques de I'ISO et de la CE1 collaborent dans des domaines d'intérêt
commun. D'autres organisations internationales, gouvernementales ou non gouvernementales, en
liaison avec I'ISO et la CE1 participent également aux travaux.
Dans le domaine des technologies de l'information, I'ISO et la CE1 ont créé un comité technique
mixte, I'ISO/CEI JTC 1. Les projets de Normes internationales adoptés par le comité technique
mixte sont soumis aux organismes nationaux pour approbation, avant leur acceptation comme
Normes internationales. Les Normes internationales sont approuvées conformément aux
procédures qui requièrent l'approbation de 75 YO au moins des organismes nationaux votants.
La Norme internationale ISOGEI 8632-3 a été élaborée par le comité technique mixte
ISO/CEI JTC 1, Technologies de l'information.
Cette deuxième édition annule et remplace la premihre édition (IS0 8632-3:1987), qui a fait l'objet
d'une révision technique.
L'ISO/CEI 8632 comprend les parties suivantes, présentées sous le titre général Technologies de
l'information - Infographie - Méta fichier de stockage et de transfert des informations de
description d'images :
Partie 1 : Description fonctionnelle
Codage des caractères
Partie 2 :
Partie 3 : Codage binaire
Partie 4 : Codage en clair des textes
L'annexe A fait partie intégrante de la présente partie de I'ISO/CEI 8632. Les annexes B et C sont
donnees uniquement à titre d'information.
iv
ISOCEI 8632-3:1992 (F)
Introduction
0.1 Objet du codage binaire
Le codage binaire du métafichier CGM définit une représentation de la syntaxe du métafichier qui
peut être optimisée pour accélérer la génération et l'interprétation de métafichiers, tout en
constituant un moyen normalisé d'échange entre ordinateurs. Ce codage utilise des formats de
données binaires beaucoup plus proches des représentations internes de données des ordinateurs
que les autres codages.
Certains formats de données peuvent correspondre exactement aux formats propres à certains
d'ordinateurs. Dans ce cas, le traitement est fortement réduit par rapport aux autres codages
normalisés. Pour la plupart des ordinateurs, le traitement du codage binaire est nettement plus
simple que les autres codages.
Lorsque l'architecture d'un ordinateur ne correspond pas aux formats normalisés du codage binaire,
lorsqu'il est absolument nécessaire de minimiser le temps de traitement et, enfin, lorsque les
échanges entre systèmes de natures différentes sont sans importance, il peut être plus approprié
d'utiliser un codage privé conforme aux règles définies a l'article 7 de I'ISO/CEI 8632-1.
0.2 Objectifs
Ce codage a les caractéristiques suivantes :
Morcellement des listes de paramètres : les éléments du métafichier sont représentés en
a)
codage binaire en une ou plusieurs partitions (voir article 4) ; la première (ou la seule)
partition d'un élément contient le code opératoire (classe et identificateur de l'élément).
b) Alignement des éléments 1 chaque élément commence à une frontière de mot. Lorsque les
données dun élément (morcelé ou non) ne se terminent pas sur une frontière d'octet pair,
l'élément suivant est aligné en complétant par des bits à zéro les données de l'élément
précédent, jusqu'à la première frontière d'octet pair rencontrée. Un élément non-opératoire
est disponible dans ce codage. II est sauté et ignoré par les interpréteurs. II peut être utilisé
pour aligner des données sur des limites d'enregistrement dépendant de la machine, afin
d'accélérer le traitement.
V
ISO/CEI û632-3:1992 (F)
Objectifs
Introduction
Uniformité du format : à chaque élément est associée une valeur de longueur de
paramètres. Elle est spécifiée par un nombre d'octets. De ce fait, il est possible de lire le
métafichier très rapidement, sans l'interpréter.
Alignement des données de coordonnées : pour les précisions par défaut et compte tenu
de i'alignement des éléments, les données de coordonnées commencent toujours à des
frontières de mots. Ceci réduit le traitement en garantissant, sur une large gamme de
systèmes informatiques, qu'une même coordonnée n'a pas à être reconstituée à partir de
morceaux de plusieurs mots machine.
Efficacité du codage des données entières : d'autres données, comme les index, les
couleurs et les caractères, sont codées sur un ou plusieurs octets. La précision de chaque
paramètre est déterminée par la précision appropriée donnée dans le Descripteur de
Métafichier.
Ordre des bits de données : dans chaque mot ou chaque unité d'un mot, le bit dont le
numéro est le plus élevé est toujours le plus significatif. De même, en accès séquentiel, le
mot le moins significatif est placé après le mot le plus significatif.
Possibilité d'extension : l'organisation des valeurs de Classes d'Éléments et
d'Identificateurs d'Éléments a été conçue pour permettre une extension ultérieure, par
exemple l'adjonction de nouveaux éléments graphiques.
Format des données réelles : les nombres réels sont codés en utilisant soit la
représentation IEEE en virgule flottante soit une représentation en virgule fixe propre au
métafichier.
Codage par séquences : lorsque de nombreuses cellules adjacentes ont la même couleur
(ou le même index de couleur), il est possible d'utiliser un codage efficace. Pour chaque
séquence, un nombre de cellules est spécifié, suivi de la couleur (ou l'index de couleur).
Codage comprimé de listes : si des cellules de couleur adjacentes n'ont pas la même
couleur (ou le même index de couleur), le métafichier comporte des listes de flot binaire
dans lesquelles les valeurs sont comprimées autant que possible.
0.3 Relations avec d'autres Normes internationales
La représentation des données réelles, en virgule flottante de la présente partie de I'ISO/CEI 8632
est celle de la norme ANSMEEE 754-1986.
La représentation des données caractères de la présente partie de I'ISO/CEI 8632, est conforme
aux règles de I'ISOICEI 646 et de I'ISO 2022.
Pour certains éléments, le métafichier CGM définit des intervalles de valeurs qui sont réservés pour
enregistrement. Les valeurs et leurs significations seront définies à l'aide des procédures établies
(voir ISO/CEI 8632-1,4.11).
vi
NORME INTERNATIONALE
ISO/CEI 8632-3:1992 (F)
Technologies de l'information - Infographie -
Métafichier de stockage et de transfert des
informations de description d'images -
Partie 3 :
Codage binaire
1 Domaine d'application
La présente partie de I'ISO/CEI 8632 spécifie un codage binaire du métafichier CGM. Pour chacun
des éléments définis dans I'ISO/CEI 8632-1, la présente partie spécifie un codage en termes de
types de données. Chaque représentation de type de données est explicitée en termes d'éléments
(bits), octets et mots. Pour certains types, la représentation exacte est fonction des précisions
utilisées dans le métafichier, telles qu'elles sont enregistrées dans le METAFILE DESCRIPTOR.
Dans de nombreux cas, ce codage du métafichier CGM minimise le traitement de génération et
d'interprétation du métafichier.
ISO/CEI 8632-3:1992 (F)
2 Références normatives
Les normes suivantes contiennent des dispositions qui, par suite de la référence qui en est faite,
constituent des dispositions valables pour la présente Norme internationale. Au moment de la
publication, les éditions indiquées étaient en vigueur. Toute norme est sujette à révision et les
parties prenantes des accords fondés sur la présente Norme internationale sont invitées à
rechercher la possibilité d'appliquer les éditions les plus récentes des normes indiquées ci-après.
Les membres de la CE1 et de I'ISO possèdent le registre des Normes internationales en vigueur à
un moment donné.
ISO/CEI 646:1991, Technologies de l'information - Jeu IS0 de caractères codés à 7 éléments pour
l'échange d'informations.
IS0 2022:1986, Traitement de l'information - Jeux IS0 de caractères codés à 7 et à 8 éIéments -
Techniques d'extension de code.
a
ANSMEEE 754, Standard for Binary Floating Point Arithmetic.

ISOCEI 8632-3:1992 (F)
3 Conventions de notation
L'expression "en-tête de commande'' est utilisée dans la présente partie de I'ISO/CEI 8632 pour
désigner ta partie dun élément codé en binaire qui contient le code opératoire (classe de I'élément
et identificateur de l'élément) et l'information de longueur de paramètres (voir article 4).
Dans cette partie, les expressions "octet" et "mot" ont des significations spécifiques. II est possibte
que ces significations ne correspondent pas à celles d'un ordinateur particulier sur lequel ce codage
du métafichier est utilisé.
Un octet est une entité de 8 bits. Tous les bits sont significatifs. Les bits sont numérotés de 7 (le
plus significatif) à O (le moins significatif).
Un mot est une entité de 16 bits. Tous les bits sont significatifs. Les bits sont numérotés de 15 (le
plus significatif) à O (le moins significatif).
ISO/CEI 8632-3:1992 (F)
4 Structure générale
4.1 Forme générale du métafichier
Tous les éléments du métafichier sont codés suivant un schéma uniforme. Les éléments sont
représentés par des structures de données de longueur variable, chacune étant composée du code
opératoire (classe de I'élémenl et identificateur de I'élément) désignant l'élément particulier, de la
longueur de ses paramètres et, enfin des paramètres (s'il y en a).
La structure du métafichier est la suivante. (Pour ce schéma uniquement, MF est utilisé comme
abréviation de METAFICHIER).
I BEGIN MF I MD I . IENDMF I
L'éikment BEGiM METAFILE est suivi du descripteur de métafichier (MD). Viennent ensuite les
images, chacune étant logiquement indépendante des autres. Enfin, le métafichier se termine par
I'alérnent END METAFILE.
4.2 Forme générale des images
En dehors des éléments BEGIN METAFILE, END METAFILE et des éléments descripteurs di
métafichier, le métafichier est composé d'images. Toutes les images sont indépendantes les unes
des autres. Une image est composée dun élément BEGIN PICTURE, dun descripteur d'image
(PD), dun élément BEGIN PICTURE BODY, d'un nombre arbitraire d'éléments de contrôle,
d'Blhents graphiques et d'attributs et, enfin, d'un élément END PICTURE. (Pour le schéma
suivant seulement, PIC est 6 comme abréviation de PICTURE et BEGIN BODY comme
abréviation de BEGIN PICTURE BODY).
1 BEGIN' PIC I PD I BEGIN BODY I <élément> . I END PIC I
4.3 Structure genérale du métafichier en codage binaire
Le codage binaire du métafichier est une structure logique composée d'une séquence de bits. Pour
faciliter la description de la longueur et de l'alignement des éléments du métafichier, des champs de
deux tailles différentes sont définis dans la structure. Ces champs sont utilisés dans la suite de la
présente partie de l'ISO/CEI 8632 pour illustrer le contenu et la structure des éléments et des
paramètres.
Pour mesurer la longueur des éléments, le métafichier est divisé en octets, c'est-à-dire en champs
de 8 bits.
ISO/CEI 86329~1992 (F)
Structure générale Structure générale du métafichier en codage binaire
La structure est également divisée en champs de 16 bits appelés mots (ce sont des mots logiques
du métafichier). Pour optimiser le traitement du métafichier binaire sur une large gamme
d'ordinateurs, les éléments du métafichier doivent nécessairement commencer sur des frontières
de mots dans la structure de données binaires (cet alignement peut nécessiter de compléter un
élément à l'aide de bits jusqu'à une frontière de mot, si les données des paramètres de l'élément
n'atteignent pas cette frontière).
L'octet est i'unité de base d'organisation du métafichier en codage binaire.
Les bits dun octet sont numérotés de 7 à O, 7 étant le bit le plus significatif (msb), O le bit le moins
significatif (Isb).
Les bits d'un mot sont numérotés de 15 à O, 15 étant le bit le plus significatif (msb), O le bit le moins
significatif (Isb).
b7 bO
+- +- +- +- +- +- +- +- +
octet : I I
+- +- +- +- +- +- +- +- +
msb lsb
b15 b8 b7 bO
+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +
mot : I I I
+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +
msb lsb
Si les bits consécutifs de la structure de données binaires sont numérotés de 1 à N, si les octets
consécutifs sont numérotés de 1 à N/8, et enfin, si les mots consécutifs sont numérotés de 1 à
N/16, la correspondance logique des bits, octets et mots dans la structure de données binaires est
illustrée dans le tableau suivant :
numéro du bit numéro du numéro du
du métafichier bit de I'octet bit du mot
1 b7ioctetl bl5/mOtl
8 b0ioctet 1 b8/motl
9 b7/octet2 b7/motl
16 bO/octet2 bO/motl
17 b7/octet3 bl5/mot2
24 bO/octet3 b8/mot2
25 b7/octet4 b7/mot2
ISO/CEI 8632-3:1992 (F)
Structure générale du métafichier en codage
Structure de l'en-tête de commande
binai re
4.4 Structure de l'en-tête de commande
Dans ce paragraphe, le mot "commande" sert à désigner un élément codé en binaire. Les éléments
du métafichier sont codés en binaire selon l'une des deux formes suivantes : commande de forme
courte et commande de forme longue. II y a deux différences entre ces deux formes :
- une commande de forme courte contient toujours un élément complet ; une commande de
forme longue peut contenir des éléments partiels (les listes des données des éléments
peuvent être morcelées) ;
- une commande de forme courte ne peut contenir que des listes de paramètres dont la
longueur ne dépasse pas 30 octets ; une commande de forme longue peut contenir des
listes de longueur allant jusqu'à 32767 octets par partition de données.
Ces formes diffèrent dans le format de l'en-tête de commande qui précède la liste des paramètres.
La forme de la commande d'un élément (de forme courte ou longue) est définie par le premier mot
de l'élément. Pour une commande de forme courte, l'en-tête de commande est composé d'un seul
mot divisé en trois champs : classe de l'élément, identificateur de l'élément et longueur de la liste
des paramètres.
Mot 1 classe d'élém id d'élém long liste param
Figure 1 - Format de l'en-tête d'une commande de forme courte
Les champs de l'en-tête dune commande de forme courte sont les suivants :
bits 15 à 12 classe de l'élément (intervalle de valeurs O à 15)
identificateur de l'élément (intervalle de valeurs O à 127)
bits 1 1 à 5
bits 4 à O longueur de la liste des paramètres : le nombre d'octets de paramètres qui
suivent pour cette commande (intervalle de valeurs O à 30).
Cet en-tête de commande est ensuite suivi de la liste des paramètres.
Le premier mot d'une commande de forme longue a la même structure que le premier mot d'une
commande de forme courte. La présence de la valeur binaire 11 1 11 (31 en décimal) dans le champ
de longueur de la liste des paramètres signifie que la commande est une commande de forme
longue. L'en-tête de commande d'une commande de forme longue est composé de deux mots. Le
deuxième mot contient la longueur effective de la liste des paramètres. Les deux mots de l'en-tête
sont alors suivis par la liste des paramètres.
En plus de l'utilisation de listes de paramètres plus longues, la commande de forme longue permet
de morceler la liste des paramètres. Le bit 15 du deuxième mot indique si les données spécifiées
représentent un élément complet ou si d'autres données suivent. Pour les partitions suivantes des
données de l'élément, le premier mot de l'en-tête de commande de forme longue (contenant la
classe de l'élément et son identificateur) est omis ; seul le deuxième mot précisant la longueur de la
liste des paramètres est présent. La longueur de la liste des paramètres de chaque partition donne
la longueur de cette partition et non la longueur de l'élément complet. La dernière partition d'un
élément est repérée par le fait que le bit 15 du mot de longueur de la liste de paramètres est à zéro.
ISO/CEI 8632-3:1992 (F)
Structure générale
Structure de l'en-tête de commande
Mot 1 classedélém id d'élém 11111
I I
P
Mot2 longueur de la liste des paramètres
Figure 2 - Format de I'en-tête d'une commande de forme longue
:
Les champs de l'en-tête de commande de forme longue sont les suivants
Mot 1
bits 15 à 12 classe de l'élément (intervalle de valeurs O à 15)
bits 1 1 à 5 identificateur de l'élément (intervalle de valeurs O à 127)
bits 4 à O valeur binaire 11 11 1 (31 en décimal) indiquant qu'il s'agit d'une commande
de forme longue
Mot 2
bit 15 indicateur de partition
- O pour "dernière" partition
- 1 pour "autre" partition
longueur de la liste des paramètres : le nombre d'octets de données de
bits 14 à O
paramètres qui suivent, pour cette commande ou cette partition (intervalle
de valeurs O à 32767).
Le valeurs des paramètres sont placées après la longueur de ta liste des paramètres, que ce soit
pour les commandes de forme courte ou de forme longue. Le nombre de valeurs est déterminé à
partir de la longueur de la liste des paramètres, du type et de la précision des opérandes. Ces
valeurs de paramètres sont codées suivant le format présenté à l'article 5 de la présente partie de
I'ISO/CEI 8632. Le type de paramètre des coordonnées est indiqué dans le Descripteur du
Metafichier. Pour les paramètres autres que les coordonnées, le type du paramètre est spécifié à
l'article 5 de I'ISO/CEI 8632-1. Si le type du paramètre dépend du codage, son code est spécifié
dans les tables de codage de I'article 7 de la présente partie de I'ISO/CEI 8632. Sauf indication
contraire, l'ordre des paramètres est celui qui a été défini à l'article 5 de I'ISO/CEI 8632-1.
Chaque commande doit obligatoirement commencer sur une frontière de mots. Ceci nécessite de
compléter la commande par un octet nul placé à la fin de la commande, lorsque cette dernière
contient un nombre impair d'octets de données de paramètres. De plus, pour les éléments dont les
paramètres ont une précision plus courte qu'un octet (c'est-à-dire ceux contenant un paramètre
'précision locale de couleur'), il faut compléter le dernier octet de données par des bits nuls si les
données ne remplissent pas cet octet. Dans tous les cas, la longueur de la liste des paramètres est
le nombre d'octets contenant réellement des données de paramètres ; cette longueur ne comprend
pas l'octet de remplissage s'il y en a un. C'est uniquement à la fin d'une commande que le
remplissage a lieu, à une seule exception près, l'élément CELL ARRAY.
lSO/CEl8632-3:1992 (E)
Structure de l'en-tête de commande
Structure générale
Le but de cette contrainte d'alignement des commandes est d'optimiser le traitement pour une large
gamme d'ordinateurs. Aux précisions par défaut du métafichier, les paramètres supposés
apparaitre le plus fréquemment (coordonnées, etc.), et les en-têtes de commande sont alignés sur
des frontières de 16 bits. Ainsi, pour les précisions par défaut, les entités les plus fréquemment
analysées se trouvent entièrement sur des mots machine pour un nombre important d'architectures
d'ordinateurs. Le fait d'éviter d'avoir à assembler un même paramètre du métafichier à partir de
plusieurs mots machine se traduit par une réduction de 50 % environ du traitement nécessaire pour
générer les champs des en-têtes de commandes et les paramètres des éléments dans un flot de
données binaires de métafichier.
Cette optimisation peut être compromise ou réduite à néant si les précisions du métafichier sont
modifiées, c'est-à-dire ne sont pas les précisions par défaut. Les commandes doivent néanmoins
être alignées sur des frontières de 16 bits mais les paramètres qui apparaissent le plus
fréquemment ne sont plus nécessairement alignés sur ces frontières, comme c'est le cas pour les
précisions par défaut.
L'en-tête de commande de forme courte, avec classe d'élément 15, identificateur d'élément 127 et
longueur de liste de paramètres O, est réservé pour une extension du nombre de classes
d'éléments dans de futures révisions de la présente partie I'ISO/CEI 8632. En ce qui concerne
l'analyse, les interpréteurs doivent le traiter comme tout autre élément. L'élément "normal" suivant
rencontré aura une classe réelle différente de celle figurant dans le champ "classe d'élément" de
l'en-tête de commande. Elle sera ajustée par une valeur appropriée à définir dans une future
extension de la présente partie de I'ISO/CEI 8632.
ISO/CEI 8632-3:1992 (F)
5 Formes de base des données
Le codage binaire du métafichier CGM utilise cinq formes de base de données pour représenter les
différents types abstraits de données utilisés pour décrire les paramètres dans I'ISO/CEI 8632-1.
:
Les formes et les symboles de base utilisés pour cette représentation sont les suivants
SI Entier signé
UI Entier non signé
C Caractère
FX Réel en virgule fixe
FP Réel en virgule flottante
Chacune de ces formes de base (sauf caractère) peut être utilisée avec plusieurs précisions. Les
définitions des formes de base données aux paragraphes 5.1 à 5.5 indiquent les précisions
autorisées pour chaque forme de base. Les définitions sont exprimées en 'mots de métafichier',
c'est-à-dire en unités de 16 bits.
Les expressions suivantes sont utilisées dans Les schémas ci-après pour représenter la forme des
valeurs numériques :
msb bit le plus significatif
Isb bit le moins significatif
S bit de signe
L'illustration des types de données dans les diagrammes suivants correspond au cas où le
paramètre commence sur une frontière de mot de métafichier. En général, les paramètres peuvent
commencer à des adresses paires ou impaires d'octet, car ils peuvent être précédés dun nombre
pair ou impair d'octets contenant les autres paramètres. Les éléments qui contiennent le paramètre
précision hale de couleur peuvent avoir des paramètres de longueur inférieure à un octet. Dans
ce cas il est possible que les paramètres ne soient pas alignés sur une frontière d'octet.
5.1 Entier signé
Les entiers signés sont représentés dans le format "complément à deux". Quatre précisions
peuvent être spécifiées pour les entiers signés : 8 bits, 16 bits, 24 bits et 32 bits. (Les coordonnées
entières codées suivant ce format de base n'utilisent pas la précision 8 bits). Dans les diagrammes
des sous-paragraphes suivants, 'valeur' indique la valeur pour les entiers positifs, et le complement
à deux de la valeur pour les entiers négatifs.
5.1.1 Entier signé en précision 8 bits
Chaque valeur occupe la moitié d'un mot du métafichier (un octet).
1514131211109 8 7 6 5 4 3 2 1 O
S msb valeur i Isb S msb valeur i+l Isb
ISO/CEI 8632-3:1992 (F)
Entier signé Formes de base des données
5.1.2 Entier signé en précision 6 bits
Chaque valeur occupe un mot du nétafichier.
1514131211109 8 7 6 5 4 3 2 1 O
IS lmsb valeur Isb I
5.1.3 Entier signé en précision 24 bits
Mot 1 S msb valeur i
valeur i+l
Mot 3 Isb I
S msb valeur i
Mot 1
msb valeur i Isb msb valeur i+l Isb
Chaque valeur occupe un mot du métafichier.
1514131211109 8 7 6 5 4 3 2 1 O
1 msb valeur i Isb 1
msb valeur i
Mot 1
Mot 3 valeur i+l Isb 1
5.2.4 Entier non signé en précision 32 bits
Chaque valeur remplit complètement deux mots du métafichier.
1514131211109 8 7 6 5 4 3 2 1 O
Mot 1 lmsb valeur i
Mot 2 valeur i Isb
5.3 Caractère
Caractère i Caractère i+l
5.4 Réel en virgule fixe
Les valeurs réelles en virgule fixe sont stockées sur deux entiers ; le premier représente la "partie
entière", et est du même format qu'un entier signe (SI ; voir 5.1) ; le deuxième représente la "partie
fractionnaire", et est du même format qu'un entier non signé (U1 ; voir 5.2). Deux précisions
peuvent être spécifiées pour les reels en virgule fixe : 32 bits ou 64 bits.
ISO/CEI 8632-3:1992 (F)
Formes de base des données
Réei en virgule fixe
5.4.1 Réel en virgule fixe en précision 32 bits
Chaque réel en virgule fixe occupe deux mots complets du métafichier ; le premier a la forme d'un
entier signé de 16 bits et le deuxième d'un entier non signé de 16 bits.
1514131211109 8 7 6 5 4 3 2 1 O
Mot 1 S msb Partie entière isb
Partie Fractionnaire Isb
Mot 2 msb
5.4.2 Réel en virgule fixe en précision 64 bits
Chaque réel en virgule fixe occupe quatre mots complets du métafichier ; les deux premiers ont la
forme d'un entier signé de 32 bits et les deux derniers, celle d'un entier non signé de 32 bits.
1514131211109 8 7 6 5 4 3 2 1 O
S msb Partie entière
Mot 1
Mot 3 msb Partie Fractionnaire
I
5.4.3 Valeur des réels en virgule fixe
Les valeurs des nombres réels représentés sont données par les formules suivantes :
pour 32 bits : valeur-réelle = SI.[#]
pour 64 bits : valeur-réelle = Si+[#]
Dans ces équations, SI signifie "partie entière" et UI désigne la "partie fractionnaire". La partie
entière SI est le plus grand entier inférieur ou égal au nombre réel à représenter.
5.5 Virgule flottante
Les valeurs réelles en virgule flottante sont représentées suivant le format virgule flottante de la
norme ANSVIEEE 754. Ce format est composé de trois parties :
-
un bit de signe ('s') ;
-
une partie exposant ('e') ;
- une partie fractionnaire (Y').

lSOlCEl8632-3:1992 (F)
Formesdebasedesdonnées Virgule flottante
Ca valeur est une fonction de ces trois valeurs ('s', 'e' et If'). Si 's' est 'U, la valeur est positive ; si 's'
est Y', la valeur est négative. Deux précisions peuvent être spécifiées pour les réels en virgule
flottante :32 ou 64 bits. La grandeur de la valeur est calculée comme suit pour la représentation 32
bits.
a) Si e = 255 et f # O, la vateur est indéterminée.
b) Si e = 255 et f = O, la valeur est la valeur positive (s=O) ou négative (s=1) la plus grande
possible.
Si OC e ~255, la grandeur de la valeur est (1 .f) (2e127).
c)
d) Si e = O et f z O, la grandeur de la valeur est (0.f) (2-12'3.
Si e = O et f = O, la valeur est O.
e)
La grandeur de la valeur est calculée comme suit pour la représentation 64 bits.
Si e = 2047 et f # O, la valeur est indéterminée.
a)
Si e = 2047 et f = O, la valeur est la valeur positive (s=O) ou négative (s=1) la plus grande
b)
possible ;
Si OC e ~2047, la grandeur de la valeur est (1 .f)
c)
Si e = O et f # O, la grandeur de la valeur est (0.f) (2-1°22).
d)
Si e = O et f = O, la valeur est O.
e)
5.5.1 Réel en virgule flottante en précision 32 bits
Chaque valeur de réel en virgule flottante occupe deux mots du métafichier. La taille de chaque
champ de la valeur est comme suit :
signe 1 bit
exposant 8 bits
fraction 23 bits
15 14 13 12 10 9 7 3
Mot 1 S msb Exposant Isb msb Fraction
5.5.2 Réel en virgule flottante en précision 64 bits
Chaque valeur de réel en virgule flottante occupe 4 mots du métafichier. La taille de chaque champ
de la valeur est comme suit :
signe 1 bit
exposant 11 bits
fraction 52 bits
Formes de base des données
Virgule.flottante
1514131211109 8 7 6 5 4 3 2 1 O
Mot 1 S mçb Exposant Isb msb
Mot 2 Fraction
Mot 3 Fraction
Mot 4 Fraction Isb
ISO/CEI 8632-W 992 (F)
6 Représentation des types abstraits de paramètres
Le tableau 1 montre la représentation, en codage binaire CGM, de chaque type abstrait de
paramètre, exprimée en termes de données de base. Les colonnes du tableau sont les suivantes :
Le symbole représentant le type abstrait de paramètre, tel qu'il est spécifié a i'article 5 de
1)
I'ISO/CEI 8632-1.
2) La façon dont le type de paramètre est construit, en termes de données de base, aux
précisions appropriées. Les précisions sont celles définies à l'article 5 de I'ISO/CEI 8632-1.
3) Le symbole représentant le nombre d'octets nécessaires à la représentation d'une
Occurence du paramètre considéré, à la précision spécifiée, et la formule pour calculer ce
nombre.
Le symbole représentant l'intervalle des valeurs que peut prendre le paramètre, suivi des
4)
valeurs numériques que peut prendre le paramètre, suivi des valeurs numériques qui
définissent l'intervalle.
Les symboles des colonnes 3 et 4 sont largement utilisés dans les tables de code de l'article 7.
Sont également utilisées dans les tables de code des variantes de ces symboles :
+IR, +RR, . désigne un intervalle dentiers positifs, un intervalle de réels positifs, .
-IR, -RR, . désigne un intervalle d'entiers négatifs, un intervalle de réels négatifs, .
++IR, ++FIR, . désigne un intervalle d'entiers non négatifs, un intervalle de réels non
négatifs, .
ml, mR, . désigne 'm' entiers, réels, .
I*, R*, . désigne un nombre non limité d'entiers, réels, .
Des combinaisons sont utilisées :
pour indiquer un paramètre représenté par 2 réels, puis un paramètre
2R, 21, IX*, .
représenté par 2 entiers et enfin un paramètre contenant un nombre illimité
de valeurs d'index.
ISOCEI 8632-3~1992 (F)
Représentation des types abstraits de paramètres
Tableau 1 - Représentation des types abstraits de données
-
ntervalle du
ktets par
hnstruction du
iymbole
,aramètre :
,aramètre :
baramètre à partir
ibst rait
;ymbole et valeur
symbole et valeur
les formes de base
;IR
3CI
JI'à la précison de
o. .( 2@7- 1 ))
=cip/8)
'index de couleur(cip)
:COR
3CCO
JI à la précison
o. .( 2dCP- 1 ))
=dcp/8)
ie couleur directe
voir note 2)
dcp)
>COR
3CD={3*BCCO}
cco,cco,cco)
voir notes 1,l 6)
XI
nl
__
3CD={4*BCCO)
~cco,cco,cco,cco)
IXR
31X
31 à la précision
X
f-2ixpl à 2ixp1-1)
(=ixp/8}
J'index (ixp)
BE IXR
SI à la précision
(-215 à 215-1 1
fixe (1 6-bit) (=2)
(voir note 18)
[voir note 3)
IR
BI
SI à la précision
(-2Pl à 2'PI-l)
I=ip/8)
entière (ip)
__
RR
BR
FP ou FX à la
R
(=FPR OU FXR,
précision (=SU m( rp)/8}
voir notes 5,l O}
jvoir note 41
réelle(rp)
BS SR
S,SF,D Ul,nC
lvoir note 6) jvoir notes 6,121
VDCR
BVDC
VDC SI à la précision
{-2v@I à 2WL1)
{ =vip/8}
entière'VDC (vip)
OU
ou
ou
VDCR
BVDC
FP ou FX à la
{voir notes 1,5,7,8}
{=SU m(vrp)/8)
précision réelle
jvoir note 4)
VDC (vrp)
VDCR
BP
P (VDC,VDC)
{ =2* BV D C) jvoir notes 1,5,7,8)
COR {=CIR)
BCO {=BCI}
CI
CO
{voir notes 9,l I}
ou
ou
ou
BCO (=BCD} COR {=CCOR)
CD
NR
BN
N SI à la précision
j-2nPl à 2"P-'-1)
{ =np/8}
entière (np)
VCR {=IR)
I BVC {=BI)
vc
{voir note 13)
ou
ou
BVC (=BR} VCR {=RR}
BVP {=2*BVC) VCR
VP
{voir notes 1,13,14)
lSOlCEl86326r1992 (F)
Représentation des types abstraits de paramètres
Tableau 1 - Représentation des types abstraits de données (fin)
Symbole Construction du
Octets par Intervalle du
abstrait paramètre à partir
paramètre : paramètre :
des formes de base symeole et valeur 'symbole et valeur
BS nUI à la précision BBS
BSR
fixe (1 6-bit) {voir note 15)
{=2n}
{voir note 15)
U I8 UI à la précision BU18 U18R
fixe (8-bit) {=O .255}
{=l}
U132 UI à la précision BU132 U132R
fixe (32-bit) {0.232-1)
{ =4}
17) BSDR
SDR jvoir note nla
ss VDC BSS {=BVDC} SSR {=VDCR}
{voir note 19)
ou ou ou
R BSS {=BR} SSR {=RR}
NOTES
Pour les paramètres constitués de plusieurs composantes identiques (par exemple, COULEUR
DIRECTE, CD, et POINT, P) la valeur de l'intervalle représente l'intervalle d'une seule composante.
Pour les modèles de couleur RVB et CMJK, la représentation abstraite d'une composante de
couleur directe est un réel de l'intervalle [0,1]. Pour les modèles de couleur CIELAB, CIELUV, et
apparentés à RVB, c'est un réel des espaces de couleur respectifs, avec possibilité d'intervalles
différents d'une composante de couleur directe à l'autre. L'élément COLOUR VALUE EXTENT
donne la transformation permettant de passer d'une composante de couleur directe représentée
comme UI, à la valeur réelle correspondante.
Le type abstrait de paramètre Énumération, E, est codé de la même façon que le type abstrait
Index, IX, à la précision 16 bits.
L'élément REAL PRECISION contient un indicateur (virgule fixe ou flottante) et deux composantes
de précision. Le symbole "sum(rp)" du tableau indique le nombre total de bits spécifiés dans les
deux composantes. Les mêmes remarques s'appliquent à l'élément VDC REAL PRECISION et au
symbole "sum(vrp)" dans les tableaux. L'élément de contrôle VDC REAL PRECISION peut
provoquer une mise à jour de 'vrp' dans le corps du métafichier.
FPR et VDCR (lorsque les coordonnées VDC sont des réels en virgule flottante) sont calculés selon
la norme ANSIAEEE 754 sur la virgule flottante (voir à l'article 5 la forme des données en Virgule
Flottante).
La notion d'intervalle de valeurs ne s'applique pas aux paramètres de type S et SF, ni aux données
de type caractère. Une chaîne de caractères est codée comme un nombre (un entier non signé),
suivi de caractères. Ce nombre est le nombre d'octets de la chaîne, et non pas le nombre de codes
de caractères (les deux sont égaux pour les codes utilisant un octet par caractère, mais pas dans le
cas de codes à plusieurs octets par caractère).
Le codage de ce nombre est semblable à celui de la longueur des commandes du métafichier. Si le
premier octet est dans l'intervalle 0.254, il représente le nombre de caractères de la chaîne
complète. Si le premier octet est 255, les 16 bits suivants contiennent le nombre de caractères et
l'indicateur de suite. Le premier bit est utilisé comme indicateur de suite (pour permettre d'utiliser
des chaînes contenant plus de 32767 caractères) et les 15 bits suivants représentent le nombre,
0.32767, de caractères de la chaîne partielle. Si le premier bit est O, cette chaîne partielle termine le
paramètre chaîne. Si le premier bit est 1, cette chaîne partielle sera suivie par une autre chaîne.
ISO/CEI 8632-3:1992 (F)
Représentation des types abstraits de paramètres
Si n est le nombre de codes de caractères dans une cha'lne, si le nombre d'octets par code de
caractère est constant pour toute la chalne et vaut m, et si le codage de la chaîne ne contient pas
de partition suite, comme cela peut être le cas pour une chaîne de forme longue, alors le nombre
d'octets du paramètre chaîne vaut soit nm + 1, soit nm + 3, selon que la chaîne est de forme
longue ou de forme courte. Si le nombre d'octets par code de caractère n'est pas constant etiou si la
cha'lne est une chaTne de forme longue partitionnée, alors le nombre d'octets ne s'exprime pas de
façon simple, mais c'est la somme du nombre d'octets utilisés pour coder la partie "données" de la
chaîne et du nombre d'octets utilisés pour coder sa longueur.
Le type abstrait de paramètre VDC, une seule valeur VDC, est un entier ou un réel, selon la
déclaration de la fonction VDC TYPE du descripteur du métafichier. Les tableaux suivants utilisent
un seul ensemble de symboles, VDC, BVDC et VDCR, bien qu'ils soient calculés différemment selon
VDC TYPE.
Le type abstrait de paramètre VDC est une valeur unique : un point, P, est une paire ordonnée de
VDC.
Le symbole de type de paramètre CO correspond au type de donnée CO de I'ISOCEI 8632-1. C'est
soit une couleur directe (CD), soit une couleur indexée (Ci), selon la valeur spécifiée dans l'élément
COLOUR SELECTION MODE. Les octets associés par paramètre et les symboles d'intervalles,
BCO et COR, sont donc soit BCI et CIR, soit BCD et CDR, selon la valeur de COLOUR SELECTION
MODE.
Pour éviter d'avoir à supporter la représentation IEEE en virgule flottante dans les applications qui
ne nécessitent pas d'intervalle dynamique pour les paramètres de type R et VDC, un format de réel
en virgule fixe est prévu pour les scalaires (comme épaisseur de trait, espacement inter-caractères)
et les valeurs VDC. Les réels en virgule fixe sont composés d'une paire (Sl,Ul).
Les réels en virgule fixe (FX) s'appliquent aux valeurs VDC et à tous les paramètres de type R sauf :
le paramètre facteur d'échelle métrique de l'élément SCALING MODE ;
a)
le paramètre facteur d'échelle métrique de l'élément DEVICE VIEWPORT SPECIFICATION
b)
MODE ;
Dans ce codage, ces paramètres sont toujours codés en virgule flottante.
La couleur de CELL ARRAY peut spécifier optionnellement une précision à 1, 2, 4, 8, 16, 24 ou 32
bits pour les couleurs des cellules, ou bien utiliser la précision par défaut CI ou
...

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...