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