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