Computer Graphics Metafile (CGM)
By Dr. Jørgen Vaaben Andersen
January 5, 2001
Computer Graphics Metafile (CGM) is an ISO
Standard - ISO 8632 originally defined in the 1987,
updated in 1992 and amended several times since then.
Today the standard comprises four versions of CGM, all
of which are upwardly compatible.
CGM is a rich, open standard format that can
encapsulate many kinds of graphic data including
vector, raster, or a combination of both. The standard
defines virtual two-dimensional static pictures (2D
graphics). The standard is designed to be application
and device independent.
The standard allows for various CGM Profiles to
deal with implementation issues such as maximum file
size, number of points allowed for some types of
objects, etc.
CGM is referenced by the ISO standard for SGML as
the companion format for graphics and recently for
XMLas well.
CGM is part of the US Department of Defense CALS
initiative for 2D graphics and is recommended format
for technical illustrations. (CGM CALS)
The Energy sector embraced CGM as their format of
choice and numerous extensions have been added to
cater for the special needs in dealing with Seismic
information such as Seismic Trace drawing primitives (CGM+,
and the Petroleum Industry Profile (CGM*PIP)
CGM has been adopted by a variety of industries:
The automotive industry in their standard SAE
J2008.
The commercial air transport industry has
profiled CGM as standard ATA 2100.
The ATA standard has been adopted by the
railroad industries Electronic Parts Exchange
Standard, EPES Version 1.0.
The Petroleum Industry has profiled CGM in CGM*PIP.
In this paper we will look at the four CGM
versions, how they impact the job of the technical
designer, the state of CGM in the market today and how
EasyCopy with EasyCGM provides robust support for the
various market needs.
CGM Version 1
CGM Version 1 is the original version of CGM defined
in 1987. This first version of CGM was criticized as
being insufficient for a number of reasons. A quite
serious one was the small number of graphic primitives
and no Bézier or spline curves being defined at all.
This resulted in all curves in a CGM Version 1 file
must be represented with polylines with major
disadvantages as a consequence. (This is the case for
other than standard ellipses and circles).
This makes a CGM Version 1 file very difficult to
edit.
Another limitation is poor Font/Text support
including lack of PostScript Compatibility. The
Standard permits multiple fonts to be used and allows
applications to specify font names. The drawback is
that the characteristics of the fonts are left
completely open in the Standard. This is one of the
reasons that a fully conformant CGM version 1 file
occasionally cannot be interpreted by other RIPs than
the one generating it.
With curves represented by polylines, a CGM Version
1 file can become very large if the graphics contain
multiple complex curves. Every curve is broken into a
huge number of individual lines requiring large
storage capacity.
CGM Version 1 is also lacking efficient compression
for raster elements which also results in large files.
CGM Version 2
Already in 1990 a small expansion of the CGM standard
corrected some of the defects in the original
standard. Segments were added together with some minor
new features. This is referred to as CGM Version 2.
Segments allow an element to be defined once with
any subsequent occurrences of the element referring to
the original definition. The improvements helped
reduce the size of files but did not address any of
the other shortcomings of Version 1.
CGM+, CGM*PIP
The Petroleum Industry Profile (CGM*PIP) specification
was established by the geophysical and earth sciences
community. This community requires rich intricate
details, color and raster and pattern control.
Included are also the Seismic Trace drawing
primitives.
CGM Version 3
In 1992 40 new elements were added. The combination of
original elements and these new ones provide a major
increase in graphical expressive power over CGM
Version 1 and Version 2. CGM does a much more
effective job of storing and exchanging complex 2D
graphics data.
CGM Version 3 includes
- Bézier Curves, Conic Arcs, and B-splines
- Raster Compression
- Advanced Area Fills
- Additional Color Models
- Improved Font and Text Support
With these additions CGM Version 3 gives sufficient
power to fulfill the original vision of the CGM
standardization committee.
CGM Version 4
This 1995 Amendment added application structures to
CGM. Application structures allow the inclusion of
non-graphic information in the file associated with
various graphic elements. CGM Version 4 is also
referred to as WEB-CGM (a specific variant but very
much the same as CGM 4) and provides a wide range of
new possibilities including interactive graphics,
hot-spots, hyperlinking, etc.
Profiles
Already in 1992 the CGM amendment defines formal rules
for writing application profiles and provides a
working Model Profile against which other profiles can
be compared. This has helped the various industry
groups who are developing their own profiles to
proceed in a consistent way and also assists
developers of the CGM interpreters to supply the
necessary profile support for files generated by the
large variety of applications.
CGM and the Applications
Shortly after the standardization of CGM a majority of
graphics software application vendors moved to support
CGM - ranging from high-end CAD systems to desktop
drawing programs. The effort were however based on CGM
Version 1 and therefor failed to give the required
efficiency and interchangeability.
The ambiguous wording of the standard has resulted
in a large amount of CGM file flavors which hinder the
target of easy transportability and interoperability -
increased by the shortcomings of CGM 1 which limits
the use for technically demanding applications.
Although the standard was improved in 1990, 1992
and 1995 most graphics software vendors continue to
provide only a rudimentary CGM Version 1 capability.
There are many questions to be asked when
evaluation vendors support of CGM and import/export
filters:
- What version(s) of CGM are supported
- Are all the features implemented within each
version
- Which specific profiles are supported (CALS,
ATA, J2008, PIP)
- Can the application read and write binary files,
character files, clear text files
EasyCopy, EasyCGM
EasyCopy (UNIX and Windows) converts screencaptures
and raster files to CGM with a choice between CALS,
ATA and PIP headers. Runlength encoding is supported
EasyCopy with EasyCGM
imports CGM 1, CGM+, CGM*PIP, CGM 3, CGM ATA and CGM
CALS files for easy viewing and printing via the well
known EasyCopy printer support. All the files can also
be exported to a large variety of raster formats
including CALS Type 1, Fax group 3 and 4 and JPEG.
A large number of application specific profiles are
included in the product and the number increases as
the need arises.
In addition to all of the above it is a fact that
most vendors have done a poor job in conforming to the
standard. Since the standard itself was not clear on
certain important points implementation has been
subject to differences between interpreters. All of
this has resulted in problems exchanging CGM Version 1
files.