The DICOM Standard

The DICOM Standard
This guide gives is a brief description of the DICOM standard, which is commonly used for the transfer and storage of medical images.
  An introduction to the DICOM single-file format

The Digital Imaging and Communications in Medicine (DICOM) standard was created by the National Electrical Manufacturers Association (NEMA) to aid the distribution and viewing of medical images, such as CT scans, MRIs, and ultrasound. Part 10 of the standard describes a file format for the distribution of images. This format is an extension of the older NEMA standard. Most people refer to image files which are compliant with Part 10 of the DICOM standard as DICOM format files. A complete copy of the standard (in PDF format) is avaiable for download (drafts of the standard are organized by year).

A single DICOM file contains both a header (which stores information about the patient's name, the type of scan, image dimensions, etc), as well as all of the image data (which can contain information in three dimensions). This is different from the popular Analyze format, which stores the image data in one file (*.img) and the header data in another file (*.hdr). Another difference between DICOM and Analyze is that the DICOM image data can be compressed (encapsulated) to reduce the image size. Files can be compressed using lossy or lossless variants of the JPEG format, as well as a lossless Run-Length Encoding format (which is identical to the packed-bits compression found in some TIFF format images).

DICOM is the most common standard for receiving scans from a hospital. Neuroimagers and neuropsychologists who wish to use SPM to normalize scans to stereotaxic space will need to convert these files to Analyze format. My freeware MRIcro software will directly convert most DICOM images to and from Analyze format. Eric Nolf's free Medcon and XMedcon software can also convert between Analyze and DICOM.

Transfer Syntax UID Definition
1.2.840.10008.1.2 Raw data, Implicit VR, Little Endian
1.2.840.10008.1.2.x Raw data, Eplicit VR
   x = 1: Little Endian
   x = 2: Big Endian
1.2.840.10008.1.2.4.xx JPEG compression
   xx = 50-64: Lossy JPEG
   xx = 65-70: Lossless JPEG
1.2.840.10008.1.2.5 Lossless Run Length Encoding
The DICOM header

The Image on the left shows a hypothetical DICOM image file. In this example, the first 794 bytes are used for a DICOM format header, which describes the image dimensions and retains other text information about the scan. The size of this header varies depending on how much header information is stored. Here, the header defines an image which has the dimensions 109x91x2 voxels, with a data resolution of 1 byte per voxel (so the total image size will be 19838). The image data follows the header information (the header and the image data are stored in the same file).

Further down, I show a more detailed list of the DICOM header as displayed by my software. Note that DICOM requires a 128-byte preamble (these 128 bytes are usually all set to zero), followed by the letters 'D', 'I', 'C', 'M'. This is followed by the header information, which is organized in 'groups'. For example, the group 0002hex is the file meta information group, and (in the example on the left) contains 3 elements: one defines the group length, one stores the file version and the third stores the transfer syntax.

The DICOM elements required depends on the image type, and are listed in Part 3 of the DICOM standard. For example, this image modality is 'MR' (see group:element 0008:0060), so it should have elements to describe the MRI echo time. The absence of this information in this image is a violation of the DICOM standard. In practice, most DICOM format viewers (including MRIcro and ezDICOM) do not check for the presence of most of these elements, extracting only the header information which describes the image size.

The NEMA standard preceded DICOM, and the structure is very similar, with many of the same elements. The main difference is that the NEMA format does not have the 128-byte data offset buffer or the lead characters 'DICM'. In addition, NEMA did not explicitly define multi-frame(3D) images, so element 0028,0008 was not present.

Of particular importance is group:element 0002:0010. This defines the 'Transfer Syntax Unique Identification' (see the table on the left). This value reports the structure of the image data, revealing whether the data has been compressed. Note that many DICOM viewers can only handle uncompressed raw data. DICOM images can be compressed both by the common lossy JPEG compression scheme (where some high frequency information is lost) as well as a lossless JPEG scheme that is rarely seen outside of medical imaging (this is the original and rare Huffman lossless JPEG, not the more recent and efficient JPEG-LS algorithm). These codes are described in Part 5 of the DICOM standard. A nice introduction to this the transfer syntax is provided at http://www.barre.nom.fr/medical/samples/.

Note that as well as reporting the compression technique (if any), the Transfer Syntax UID also reports the byte order for raw data. Different computers store integer values differently, so called 'big endian' and 'little endian' ordering. Consider a 16-bit integer with the value 257: the most significant byte stores the value 01 (=255), while the least significant byte stores the value 02. Some computers would save this value as 01:02, while others will store it as 02:01. Therefore, for data with more than 8-bits per sample, a DICOM viewer may need to swap the byte-order of the data to match the ordering used by your computer.

In addition to the Transfer Syntax UID, the image is also specified by the Samples Per Pixel (0028:0002), Photometric Interpretation (0028:0004), the Bits Allocated (0028:0100). For most MRI and CT images, the photometric interpretation is a continuous monochrome (e.g. typically depicted with pixels in grayscale). In DICOM, these monochrome images are given a photometric interpretation of 'MONOCHROME1' (low values=bright, high values=dim) or 'MONOCHROME2' (low values=dark, high values=bright). However, many ultrasound images and medical photographs include color, and these are described by different photometric interpretations (e.g. Palette, RGB, CMYK, YBR, etc). Some colour images (e.g. RGB) store 3-samples per pixel (one each for red, green and blue), while monochrome and paletted images typically store only one sample per image. Each images store 8-bits (256 levels) or 16-bits per sample (65,535 levels), though some scanners save data in 12-bit or 32-bit resolution. So a RGB image that stores 3 samples per pixel at 8-bits per can potentially describe 16 million colours (256 cubed).

Window center and window width (aka brightness and contrast)

People familiar with the medical imaging typically talk about the 'window center' and the 'window width' of an image. This is simply a way of describing the 'brightness' and 'contrast' of the image. These values are particularly important for Xray/CT/PET scanners that tend to generate consistently calibrated intensities so you can use a specific C:W pair for every image you see (e.g. 400:2000 might be good for visualising bone, while 50:350 might be a better choice for soft tissue). Note that contrast in MRI scanners is relative, and so a C:W pair that works well for one protocol will probably be useless with a different protocol or on a different scanner. The figure on the right illustrates the concept of changes to'window center' and 'window width'. Along the top row you can see three views of the same image with different C:W settings. The bottom row illustrates the colour mapping for each image (with the vertical axis of the graph showing rendered brightness and the horizontal axis showing the image intensity). Consider this image with intensities ranging from 0 to 170. A good starting estimate for this image might be a center of 85 (mean intensity) and width of 171 (range of values), as shown in the middle panel. Reducing the width to 71 would increase the contrast (left panel). On the other hand, keeping a width of 171 but reducing the center to 40 would make the whole image appear brighter.

Links to free DICOM viewers

  • My free ezDICOM software runs on Windows computers. Availaible as a standalone Windows program or as an ActiveX component (allowing plug-and-play use with Delphi, VisualBasic, C#, VisualC, InternetExplorer and other ActiveX aware programs). It is able to display most types of DICOM image (many other viewers are limited to showing uncompressed grayscale DICOM images) and can automatically detect and open Analyze, DICOM, Genesis, Interfile, Magnetom, Somatom and NEMA images. ezDICOM is part of the Sourceforge community.
  • MRIcro is my freeware for Windows and Linux. MRIcro can view Analyze, DICOM, ECAT, Genesis, Interfile, Magnetom, Somatom and NEMA images and convert them to the popular Analyze format. This program uses the same dicom.pas Pascal unit as ezDICOM, but includes a number of additional features. It is more difficult to use than ezDICOM, but also more powerful.
  • MRIcron is my open source successor to MRIcro. It runs on Windows, Linux and Macintosh. the included dcm2nii can convert DICOM images to the popular Analyze and NIfTI standards.
  • Julius is a free DICOM viewer/browser and volume renderer for Windows and Linux computers. Julius is not only a DICOM viewer but also a software framework for medical applications.
  • FP Image is a free DICOM viewer/browser for Windows that can also anonymize images.
  • Rubo Medical Imaging has a free demo of their Windows DICOM software, with some functions disabled.
  • Inviweb has a free version of their Windows DICOM viewer.
  • Able Software has a free version of their "3D-Doctor" Windows software, with some functions disabled.
  • Comview's free ViewStarPC allows Windows users to view DICOM CDs.
  • MillenTech distributes a fairly capable DICOM viewer for Windows.
  • Sridhar Raja distributes a free ActiveX DICOM viewer, and his DICOM4india web site includes a lot of useful information about the DICOM format.
  • ImageMagick is a freeware Windows, OS2, Linux and Unix program which supports DICOM as well as a broad range of other 2D image formats. ImageMagick can batch convert DICOM images to popular graphics formats (JPEG, GIF, PNG, etc), as described in my FAQ.
  • Irfanview is a popular free image viewer for Windows. A plug-in is available for viewing 8-bit DICOM images. This is a useful tool for batch converting DICOM images to JPEG, GIF, PNG, TIF or other common graphics formats, as described in my FAQ.
  • NeuroModeller is PC freeware which can create volume rendering from DICOM files (currently beta release, appears to be unsupported).
  • DICOM Works is a promising free PC DICOM viewer.
  • MEDAL is a freeware Windows program which can view DICOM and Analyze files on the PC and generate surface reconstructions.
  • UnLimiter distribute a free DICOM viewer for Windows.
  • IDICON is a set of DOS and Unix tools for manipulating and converting DICOM and Interfile images.
  • CarDiCon is a free cardiac DICOM viewer (STD-XABC-CD format). It reads DICOM CDs only.
  • TomoVision is a free Windows viewer which can display DICOM, Papyrus, Siemens, Picker and GE files. They also distribute the readOmatic for extracting data from medical image tapes and sliceOmatic for segmentation and reconstruction.
  • Easymage is a free DICOM cardiac viewer for Windows.
  • ACTIV 2000 is free software for Windows that can view and render medical images (DICOM, GE, Analyze, etc). In addition, it can analye fMRI data. There is also a set of Diffusion and Perfusion tools.
  • maZda is a free tool from the Technical University of Lodz for creating and analysing regions of interest (ROIs). This Windows software can view NEMA, Siemens Vision, Siemens Numaris, Bruker Aspect Picker and GE Advantage images.
  • The University of Maryland Hospital distributes ImageNet, DICOM viewing freeware for Windows-based web browsers.
  • The freeware Osiris program is available for the Macintosh, PC, and some Unix systems.
  • XNView is available for Windows and Linux computers.
  • Sébastien Barré's free Dicom2 software (Linux, Sun, Windows) can anonymize and convert DICOM images
  • David Clunie's Dicom3Tools C toolkit supports a broad range of image formats.
  • Onega Wand's DCMviewer is based on the dicomlib toolkit.
  • George J. Grevera's C code for DICOM.
  • Eric Nolf's free Medcon and XMedcon image conversion packages (DOS, UNIX, Windows) can convert DICOM to the popular Analyze format.
  • AMIDE is a free Linux program that can display, overlay and render DICOM, Analyze or ECAT format images.
  • V is general purpose freeware for spectral reconstruction, processing and analysis. It is supported on the Sun and SGI platforms.
  • J-Mac systems have a DICOM plugin for netscape (only shows single-slice [single-frame] images).
  • Dr Razz is a freeware DICOM viewer for the Macintosh [if the web site is down, you can visit the ftp site: ftp://ftp.u.washington.edu/pub/user-supported/razz/].
  • Macintosh users can try Oracion, a freeware DICOM/Papyrus format viewer.
  • Madena is an impressive looking free Macintosh DICOM viewer.
  • iRad is an Objective C open source DICOM viewer for Macintosh OSX computers.
  • MacAngioView is a free XA [lossless JPEG compressed] Dicom viewer for Power Macintosh.
  • SimpleDICOM is a freeware Java-based DICOM viewer and receiver.
  • The Nagoya Institute of Technology provide a Java DICOM applet that can read DICOM images using a http connection
  • DICOMscope is a free Java DICOM viewer.
  • The Java-based EViewBox is freeware (also see JDICOMviewer by the same author).
  • DICOManonymizer and DICOMdumper are Java programs that can view, save and anonymize the data elements and data set of DICOM images. (also: Italian versions of DICOM Anonymizer and DICOMdumper).
  • MIPAV [Medical Image Processing, Analysis and Visualization] from the NIH is a powerful, promising and easy to use viewer. This Java based application can run on many platforms (Windows, Mac, Linux, etc).
  • Imread is a freeware Java-based DICOM viewer.
  • Jivex is a set of Java tools, with Jivex [dv] being the DICOM viewer. The free version can not save images.
  • ImageJ is a popular freeware Java-based DICOM viewer. Free plugins allow ImageJ to support a broad range of image formats (e.g. Analyze) and image processing functions (including volume rendering).

Links to DICOM servers and clients

Links to sample DICOM images

Links to DICOM resources

  • dcm2nii can convert DICOM images to the popular NIfTI file format (other excellent converters are also listed on the dcm2nii page).

Links to DICOM resources

  • NEMA hosts the Official DICOM home page, which includes most of the DICOM specification documents in electronic (pdf) format.
  • David Clunie's Medical Image FAQ is a great source for information about both medical imaging formats and software. Part 8 lists medical imaging software and images available on the web.

posted on 2008-08-15 15:34  Ariel Yang  阅读(1600)  评论(0编辑  收藏  举报

导航