NATL INST. OF STAND &

REFERENCE NIST

publications

U.S. DEPARTMENT OF COMMERCE

Technology Administration

National Institute of Standards and Technology

FIPS PUB 128-2

L=tL‘£

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION

(Supersedes FIPS PUB 128-1—1993 May 11)

COMPUTER GRAPHICS METAFILE (CGM)

Category: Software Standard

1996 APRIL 17

Subcategory: Graphics

FIPS PUB 128-2

FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION

(Supersedes FIPS PUB 128-1—1993 May 11)

COMPUTER GRAPHICS METAFILE (CGM)

Category: Software Standard Subcategory: Graphics

Computer Systems Laboratory

National Institute of Standards and Technology

Gaithersburg, MD 20899-0001

Issued April 17, 1996

U.S. Department of Commerce

Michael Kantor, Secretary

Technology Administration

Mary L. Good, Under Secretary for Technology

National Institute of Standards

and Technology

Arati Prabhakar, Director
Foreword

The Federal Information Processing Standards Publications Senes of the National

Institute of Standards and Technology (NIST) is the official publication relating to

standards and guidelines adopted and promulgated under the provisions of Section 5131

of the Information Technology Management Reform Act of 1996, and the Computer

Security Act of 1987, Public Law 104-106. These mandates have given the Secretary of

Commerce and NIST important responsibilities for improving the utilization and manage¬

ment of computer and related telecommunications systems in the Federal Government.

The NIST through its Computer Systems Laboratory provides leadership, technical

guidance, and coordination of Government efforts in the development of standards and

guidelines in these areas.

Comments concerning the Federal Information Processing Standards Publications

are welcomed and should be addressed to the Director, Computer Systems Laboratory,

National Institute of Standards and Technology, Gaithersburg, MD 20899.

Shukri A. Wakid, Director

Computer Systems Laboratory

Abstract

This revision supersedes FIPS PUB 128-1 in its entirety and modifies the standard

by: (1) adopting the Computer Graphics Metafile standard designated, ANSI/ISO 8632.1-

4:1992 [1994], and CGM Amendment 1: Rules for Profiles, ISO 8632:1992/Amd. 1:1994,

and CGM Amendment 2: Application structuring extensions, ISO 8632:1992/Amd.

2:1995; (2) requiring the use of conforming profiles. Conformance of metafiles (i.e., data

files) and implementations (i.e., generators and interpreters) is defined in terms of confor¬

mance to profiles; and (3) adopting several profiles, one of which is required for

implementation of this FIPS PUB.

Key words: Computer Graphics Metafile (CGM), CGM profile; Federal Information

Processing Standard (FIPS); graphics data interface standard; metafile; MIL-D-28003A;

picture transfer; software.

National Institute of Standards

and Technology

FIPS PUB 128-2

12 pages (Apr. 17, 1996)

CODEN: FIPPAT

U.S. Government Printing Office

Washington: 1996

For sale by the National

Technical Information

Service

U.S. Department of Commerce

Springfield, VA 22161
FIPS PUB 128-2

Federal Information

Processing Standards Publication 128-2

1996 April 17

Announcing the Standard for

COMPUTER GRAPHICS METAFILE (CGM)

Federal Information Processing Standards Publications (FIPS PUBS) are issued by the National Institute of Standards and Technology

(NIST) after approval by the Secretary of Commerce pursuant to Section 5131 of the Information Technology Management Reform Act

of 1996 and the Computer Security Act of 1987, Public Law 104-106.

1. Name of Standard. Computer Graphics Metafile (CGM) (FIPS PUB 128-2).

2. Category of Standard. Software Standard, Graphics.

3. Explanation. This publication is a revision of FIPS PUB 128-1. This revision supersedes FIPS PUB

128-1 in its entirety and modifies the standard by:

(1) adopting the Computer Graphics Metafile standard designated, ANSI/ISO 8632.1-4:1992[1994],

and CGM Amendment T. Rules for Profiles, ISO 8632:1992/Amd. 1:1994, and CGM Amendment

2: Application structuring extensions, ISO 8632:1992/Amd. 2:1995;

(2) requiring the use of conforming profiles. Conformance of metafiles (i.e., data files) and implemen¬

tations (i.e., generators and interpreters) is defined in terms of conformance to profiles; and

(3) adopting several profiles, one of which is required for implementation of this FIPS PUB.

FIPS PUB 128-2 adopts the American National Standards Institute/International Organization for Stan¬

dardization (ANSI/ISO) 8632.1-4:1992[1994], ISO 8632:1992/Amd. 1:1994, ISO 8632:1992/Amd. 2:1995,

and the following profiles:

(1) Model Profile as contained in CGM Amendment 1;

(2) Air Transport Association (ATA) Specification 2100, Graphics Exchange Specification

(GREXCHANGE) for CGM;

(3) Continuous Acquisition and Life-Cycle Support (CALS), MIL-D-28003A.

CGM is a graphics data interchange standard which defines a neutral computer-interpretable represen¬

tation of 2D graphical (pictorial) information in a manner that is independent from any particular application

or system. The purpose of the standard is to facilitate the storage and retrieval of graphical information

between applications, software systems, and/or devices. A CGM can contain:

- vector graphics (e.g., polylines, ellipses, NURBS);

- raster graphics (e.g., tile array); and

- text.

The CGM standard definesthree upward compatible versions. Each version provides additional function¬

ality.

1
FIPS PUB 128-2

CGM Amendment 1 provides the rules for defining profiles of CGM and conformance requirements for

profiles, metafiles, and implementations. Since a proliferation of CGM profiles is not desirable, only those

profiles needed for Federal agency use have been added to the FIPS CGM. The exact specification is in

Section 10 of this standard.

CGM Amendment 2 defines the mechanism for application-related structuring of metafiles.

4. Approving Authority. Secretary of Commerce.

5. Maintenance Agency. Department of Commerce, National Institute of Standards and Technology

(NIST), Computer Systems Laboratory (CSL).

6. Cross Index.

a. American National Standard/International Organization for Standardization (ANSI/ISO) Computer

Graphics Metafile (CGM), ANSI/ISO 8632.1-4:1992[1994] (Part 1: Functional Specifications; Part 2: Charac¬

ter Encoding; Part 3: Binary Encoding; Part 4: Clear Text Encoding).

b. International Organization for Standardization (ISO) Computer Graphics Metafile (CGM), ISO

8632:1992/Amd. 1:1994.

c. International Organization for Standardization (ISO) Computer Graphics Metafile (CGM), ISO

8632:1992/Amd. 2:1995.

d. Air Transport Association Specification 2100, Digital Data Standards for Aircraft Support, GREXCHANGE v2.1, March 1995.

e. Military Specification, Digital Representation of Illustration Data: CGM Application Profile (AP),

MIL-D-28003A, November 15, 1991.

7. Related Documents. Related ISO documents are listed in the reference section of the CGM standard,

ANSI/ISO 8632.1 -4:1992[1994],

a. Federal Information Processing Standards Publication (FIPS PUB) 29-3, Interpretation Procedures

for FIPS Software.

b. Federal Information Processing Standards Publication (FIPS PUB) 120-1, Graphical Kernel System

(GKS).

c. Federal Information Resources Management Regulations 201 -20.303, Standards, and subpart 201 -

39.1002, Federal Standards.

d. NISTIR 5475, Validated Products List, J. Kailey and P. Himes, editors, republished quarterly.

e. NISTIR 5372, CGM: Procedures for NIST CGM Validation Test Service, L. Rosenthal and

J. Schneider, February 1994.

f. ISO 10641-1992, Conformance Testing of Implementations of Graphics Standards.

8. Objectives. The primary objectives of this standard are:

- To reduce the overall life-cycle cost for digital systems by establishing a common exchange format

for storing, transferring, and archiving graphical data across organizational boundaries and indepen¬

dent from any particular system.

- To promote the exchange of graphical information enabling applications to share data and reduce

time spent recomputing in efforts to regenerate pictorial information.

2
FIPS PUB 128-2

- To specify application profiles which provide functional subsets of the CGM standard and maximize

the probability of interchange between systems implementing the profile.

- To promote the use and development of conforming profiles and the harmonization of conformance

testing efforts for metafiles, generators, and interpreters.

9. Applicability.

9.1 Applications acquired for government use which purport to create or read graphical pictures shall

contain a conforming CGM generator or CGM interpreter. FIPS CGM enables the representation, transfer,

and storage of graphical information between different software systems, graphics devices, and/or applica¬

tions (e.g., word processing, publishing, drawing, spreadsheet, computer-aided design).

9.2 FIPS CGM shall be used when one or more of the following situations exist:

- Graphical information (e.g., illustrations, clip art) will be acquired for government use and incorpo¬

rated into computer applications or documents.

- Computer applications, programs, systems, or devices will be acquired and used to create, modify,

display, or render graphical information.

- Graphical information created by an application will be reviewed, modified, or incorporated into

another application on the same or different computer systems.

- Graphical information will be used and maintained by other than the original designer.

- Graphical information will be used by multiple people, groups, or organizations within the Govern¬

ment or private sector.

9.3 The use of a profile is required for all metafiles and implementations of CGM. A profile defines the

options, elements, and parameters of ANSI/ISO 8632 necessary to accomplish a particular function and to

maximize the probability of interchange between systems implementing the profile. A profile addresses

metafile requirements as well as implementation requirements. The profiles added by this FIPS CGM are

required for industry specific and Federal government applications.

- Model Profile: The Model Profile is appropriate for basic scientific and technical graphics (e.g.,

computer-aided design, mapping, earth sciences, cartography) and presentation, visualization, and

publishing applications (graphics arts, high end desk top publishing). This is a general purpose profile

which supports all three CGM encodings at the CGM version 3 functionality level. For FIPS CGM, if

no profile is specified, the Model Profile will be assumed by default.

- ATA Specification 2100 GREXCHANGE: The ATA profile is appropriate for presentation, visualiza¬

tion, and publishing applications (e.g., graphical arts, imaging, electronic review of documents,

hypermedia, and multimedia documents). Although similar to the Model Profile, the ATA profile allows

for symbol libraries. This profile, developed by the Air Transport Association, supports the binary and

clear text encodings at the CGM version 3 functionality level. Except for metafiles containing symbols

or raster images, the ATA profile limits the number of pictures per metafiles to one.

- MIL-D-28003A: The CALS profile is appropriate for basic scientific and technical graphics, presenta¬

tion and publishing applications (e.g., business presentation graphics, desktop publishing). In addi¬

tion, this profile is appropriate for a basic level of general-purpose graphical interchange. This profile,

developed by CALS, supports only the binary encoding and is limited (by this FIPS CGM) to the CGM

version 1 functionality level.

3
FIPS PUB 128-2

The diagram illustrates the relationship between the profiles. The x-axis represents the level of function¬

ality by CGM version; the y-axis represents the complexity of problems that can be solved.

advanced

increasing

complexity

basic

k ATA

W

k Model

f>

4

CALS (vl)

1f

vl v2 v3

CGM version

10. Specifications. ANSI/ISO 8632.1-4:1992[1994], Computer Graphics Metafile, defines the scope of

the specifications, the syntax, and semantics of the CGM elements. The ANSI/ISO 8632 consists of four

parts: (Part 1: Functional Specifications; Part 2: Character and Coding; Part 3: Binding and Coding; Part

4: Clear Text Encoding). ISO 8632:1994/Amd. 1 defines the rules for profiles, conformance, and the Model

profile, an instance of a CGM profile. In addition, one of the following profiles shall be used when implement¬

ing FIPS CGM: the Model Profile as specified in ISO 8632:1992/Amd. 1:1994, the ATA Specification 2100

Graphics Exchange for CGM, or the Military Specification MIL-D-28003A.

All implementations claiming conformance to this FIPS CGM must adhere to the specific requirements

defined in the “Conformance” clause of ISO 8632:1992/Amd. 1:1994 and the application profile.

11. Implementation. The implementation of this standard involves four areas of consideration: effective

date, acquisition, interpretation, and validation.

11.1 Effective Date. This publication is effective November 1, 1996. A transition period of six (6)

months, beginning on the effective date, allows industry to produce CGM implementations and CGM files

conforming to this standard. Agencies are encouraged to use this standard for solicitation proposals during

the transition period. This standard is mandatory for use in all solicitation proposals for CGM files and

implementations (i.e., products or software containing CGM generators and/or interpreters) acquired six (6)

months after the effective date.

11.2 Acquisition of CGM Files and Implementations. The use of one of the profiles specified in

Section 9.3 is required for conformance to CGM. Agencies should specify a profile in all acquisitions.

Conformance to this standard shall be considered whether CGM files or implementations are developed

internally, acquired as part of a system procurement, acquired by separate procurement, used under a

leasing agreement, or specified for use in contracts for programming services. Recommended terminology

for procurement of FIPS CGM is contained in the U.S. General Services Administration publication Federal

ADP and Telecommunications Standards Index, Chapter 5, Part 1.

11.3 Interpretation of FIPS CGM. Resolution of questions regarding this standard will be provided

by NIST. Procedures for interpretations are specified in FIPS PUB 29-3. Questions concerning the content

and specifications should be addressed to:

4
FIPS PUB 128-2

Director

Computer Systems Laboratory

ATTN: CGM Interpretation

National Institute of Standards and Technology

Building 820, Room 562

Gaithersburg, MD 20899-0001

11.4 Validation of CGM Files and Implementations. CGM files and implementations of FIPS CGM

shall be validated in accordance with the NIST Computer Systems Laboratory (CSL) validation procedures

for FIPS CGM, NISTIR 5372, Procedures forthe NISTCGM Validation Test Service. Recommended procure¬

ment terminology for validation of FIPS CGM is contained in the U.S. General Services Administration

publication Federal ADP and Telecommunications Standards Index, Chapter 5, Part 2. This GSA publication

provides terminology for three validation options: Delayed Validation, Prior Validation Testing, and Prior

Validation. The agency shall select the appropriate validation option and shall specify appropriate time frames

for validation and correction of nonconformities. The agency is advised to refer to the NIST publication

Validated Products List for information about the validation status of CGM products. This information may be

used to specify validation time frames that are not unduly restrictive of competition.

Metafiles and implementations shall be evaluated in terms of conformance to a particular profile of CGM,

using the NIST CGM Test Service. If no profile is specified, the Model Profile will be used. The goal of the

NIST CGM Test Service, is to assist users and vendors in determining compliance to FIPS PUB 128-2. The

results of validation testing by the NIST CGM Validation Test Service are published on a quarterly basis in

the Validated Products List, available from the National Technical Information Service (NTIS).

Current information about the NIST CGM Validation Test Service and validation procedures for FIPS

CGM is available from:

National Institute of Standards and Technology

Computer Systems Laboratory

Conformance Testing Group, CGM Test Service

Building 820, Room 562

Gaithersburg, MD 20899

(301) 975-3283

e-mail: cgminfo@nist.gov

12. Waivers.

Under certain exceptional circumstances, the heads of Federal departments and agencies may approve

waivers to Federal Information Processing Standards (FIPS). The head of such agency may redelegate such

authority only to a senior official designated pursuant to section 3506(b) of Title 44, U.S. Code. Waivers shall

be granted only when:

a. Compliance with a standard would adversely affect the accomplishment of the mission of an oper¬

ator of a Federal computer system, or

b. Cause a major adverse financial impact on the operator which is not offset by Governmentwide

savings.

Agency heads may act upon a written waiver request containing the information detailed above. Agency

heads may also act without a written waiver request when they determine that conditions for meeting the

standard cannot be met. Agency heads may approve waivers only by a written decision which explains the

basis on which the agency head made the required finding(s). A copy of each such decision, with procure¬

ment sensitive or classified portions clearly identified, shall be sent to: National Institute of Standards and

Technology: ATTN: FIPS Waiver Decisions, Building 820, Room 509; Gaithersburg, MD 20899.

5
FIPS PUB 128-2

In addition, notice of each waiver granted and each delegation of authority to approve waivers shall be

sent promptly to the Committee on Government Reform and Oversight of the House of Representatives and

the Committee on Governmental Affairs of the Senate and shall be published promptly in the Federal

Register.

When the determination on a waiver applies to the procurement of equipment and/or services, a notice

of the waiver determination must be published in the Commerce Business Daily as a part of the notice of

solicitation for offers of an acquisition or, if the waiver determination is made after that notice is published,

by amendment to such notice.

A copy of the waiver, any supporting documents, the document approving the waiver and any supporting

and accompanying documents, with such deletions as the agency is authorized and decides to make under

5 U.S.C. Sec. 552(b), shall be part of the procurement documentation and retained by the agency.

13. Where to Obtain Copies. Copies of this publication are for sale by the National Technical Information

Service, U.S. Department of Commerce, Springfield, VA 22161. (Sale of the included specifications docu¬

ment is by arrangement with the American National Standards Institute.) When ordering, refer to Federal

Information Processing Standards Publication 128-2 (FIPSPUB128-2), and title. Payment may be made by

check, money order, or NTIS deposit account.

6
APPENDIX A

FIPS PUB 128-2

The Family of Graphics Standards

The following computer graphics standards are now available to address the needs of government

applications in creating, modifying, manipulating, and exchanging computer-generated pictures:

• FIPS PUB 120-1, Graphical Kernel System (GKS), which adopts ANSI X3.124-1985(R1991),

X3.124.1-1985(R1991), X3.124.2-1988(1994), X3.124.3-1989, and ISO/IEC 8651-4:1991;

• FIPS PUB 153-1, Programmer’s Hierarchical Interactive Graphics System (PHIGS), which adopts

ANSI/ISO 9592.1,2,3:1989, 9592.1 a,2a,3a,4:1992, 9593.1:1990, 9593.3-1990, 9593.4:1991, and

9593.1/AMI, 3/AMI, 4/AMI:1991;

• FIPS PUB 128-2, Computer Graphics Metafile (CGM), which adopts ANSI/ISO 8632:1992(1994],

8632:1992/Amd. 1:1994,8632:1992/Amd. 2:1995, ATA Spec. 2100, Working Draft, Version 2.1, June

1994, and Model Profile contained in ISO 8632:1992/Amd. 1:1994;

• FIPS PUB 177-1, Initial Graphics Exchange Specification (IGES), which adopts ANSI/US PRO/IPO100-1993, Version 5.2, Layered Electrical Product (LEP) Application Protocol, IPO-110-1994, 3-D

Piping Application Protocol, and Engineering Drawing (Class II) Subset (MIL-D-28000A), Dec. 1992

Version.

These standards fall into two categories: Application Programmer’s Interface (API) standards, and

Interoperability standards. The goal of API standards is to enhance the portability of graphics programs (and

programmers) between installations and environments. The goal of Interoperability standards is to enable

graphics data to be exchanged successfully between graphics systems and devices.

Figure 1 is a very simple reference model of a computer graphics operating environment. The model

emphasizes that a graphics application program interacts with physical devices and human operators via a

computer graphics environment. Figure 1 also shows that the application may receive information from an

external database.

Currant Terminal Future "CGrTermlnal Current Printer

Figure 1. Computer Graphics Reference Model.

7
FIPS PUB 128-2

The output of the graphics program, as shown in Figure 1, is directed to a virtual graphics device (i.e.,

Virtual Device Interface or VDI) rather than directly to a physical device. A Device Drive provides an interface,

implemented in either hardware or software, for translating virtual device commands to commands under¬

stood by a particular physical device. By substituting one device drive for another, an application can run on

a different physical device. This device independence is a central concept of this graphics reference model.

In Figure 1, the API standards reside in the box labelled the Device Independent Graphics Package.

Interoperability standards are related to the boxes in Figure 1 labelled Metafile, Database and Virtual Device

Interface. Figure 2 depicts the various graphics standards associated with the general model shown in

Figure 1. These are discussed below.

Figure 2. Standards in the Computer Graphics Reference Model.

Application Programmer’s Interface (API) Standards

Standards at the API promote program and programmer portability. A standard at this level specifies a

set of operations on a variety of graphics objects. An API standard provides for the portability of applications

across a wide range of computer hardware, operating systems, programming languages, and graphics

devices. A program written to an API standard at one facility in one environment should be easily transferable

to another facility in a different environment. Facility dependencies should be the major area requiring

modification.

The specific functions supported by a particular API standard provide certain capabilities. The applica¬

tion programmer, by identifying the capabilities needed, determines the API better suited for the application.

As shown in Figure 2, there are currently two graphics API standards, GKS and PHIGS.

GKS provides a functional description of a two-dimensional (2D) graphics interface. It provides the basic

graphics support required by a wide variety of applications requiring the production of computer-generated

pictures. A procedural language binding of a functional standard specifies the exact name for each operation,

its parameter sequence, and the data types for the parameters. FORTRAN, Pascal, Ada and C language

bindings are parts of GKS.

8
FIPS PUB 12&-2

GKS is suitable for use in graphics programming applications that employ a broad spectrum of graphics,

from simple passive graphics output (where pictures are produced solely by output functions without interac¬

tion with an operator) to interactive applications; and which control a whole range of graphics devices,

including but not limited to vector and raster devices, microfilm recorders, storage tube displays, refresh

displays, and color displays.

PHIGS provides for the definition, display, modification, and manipulation of 2D and 3D graphical data.

It provides functionality to support storage of graphics and application data in a hierarchical form. Information

may be inserted, changed, and deleted from the hierarchical data storage with the functions provided by

PHIGS. Language binding specifications for PHIGS include FORTRAN, C and Ada.

PHIGS is specifically designed to meet the performance requirements of such demanding applications

as Computer Aided Design/Computer Aided Engineering/Computer Aided Manufacturing, command and

control, molecular modeling, simulation and process control.

Capabilities in PHIGS but not in GKS include; the centralized hierarchical data storage; the dynamic and

responsive nature of interactions; the addition of a modeling capability; and support for color models other

than Red-Green-Blue (RGB).

Interoperability Standards

Graphics Interoperability standards allow graphical data to be interchanged between graphics devices.

As shown in Figure 2, there are three graphics interoperability standards, CGM (future), CGI, and IGES.

CGM is used for the storage and transfer of picture description information. It enables pictures to be

recorded for long term storage, and to be exchanged between graphics devices, systems, and installations.

As indicated in Figure 2, the storage mechanism for CGM is in the form of a neutral file format called metafile.

The software which creates the metafile is known as a CGM Generator. The software which reads and

displays a CGM metafile is known as an interpreter.

CGM specifies a semantic interface that describes 2D graphical entities using primitives (like polyline,

text, and ellipse) and attributes (like color, line width, interior style, and fonts). CGM is compatible with the

specification of 2D elements in GKS. A data encoding specifies the exact sequence of bits used to represent

each operation and its parameters. CGM contains three types of data stream encodings (binary, character,

and clear text) to provide the implementor choices depending on the particular application.

IGES provides a method for representing and storing geometric, topological, and nongeometric product

definition data that is independent of any one system. Where CGM transfers graphical pictures, IGES

transfers a graphical database which can be processed to represent a picture. Thus IGES represents more

than just purely graphical data. As Figure 2 indicates, the storage mechanism for IGES is in the form of a

neutral file format that must be translated by a Preprocessor and Postprocessor for conversion between

systems. IGES permits the compatible exchange of product definition data used by various computer aided

design/computer aided manufacturing (CAD/CAM) systems.

The future CGI standard is designed to specify the exchange of information at the Virtual Device

Interface. It will provide an interface between the device independent and device dependent parts of a

graphics system. Since CGI contains information at a virtual level, it can be used to create a CGM. A CGM

can also be output on a CGI device in a straightforward manner.

9
«
»I
U.S. Department of Commerce

National Technical Information Service5285 Port Royal Road

Springfield, VA 22161

1)

t)