Differences Between ISO 15415 and ISO 29158 Grading Standards

ISO 15415 2D code on paper next to DPM code on metal part banner image

There are two verification standards from the International Organization for Standardization (ISO) that govern two-dimensional (2D) and direct part mark (DPM) codes.

ISO/IEC TR 29158, the standard for DPM codes, is a modification to the ISO/IEC 15415 standard to accommodate the variety of substrates and marking types for DPM codes. The modifications that make 29158 different from 15415 are often oversimplified, so let’s examine what makes these two grading standards different.  


Aperture refers to the circular sample that is captured at grid intersections. Each of those sample circles are what the software will use to determine whether a cell is dark or light. The size of the aperture can greatly affect the result. Any time the sample circle captures both dark and light cells within it, it will result in a shade of gray. Ideally, you want your aperture to be perfectly centered in the middle of a cell that is the correct color. Cells that start off without a crisp edge or have other cell colors bleeding into them will most certainly result in a gray color. The decode process will convert the image to binary, so anything that was gray will have to be converted into either black or white. Any cell that is gray leaves room for error. Too big or too little aperture will cause your grade to be less accurate. 

Aperture example

In ISO 15415, you can select your own aperture size. It is typically recommended that the aperture size is 80% of the module size. With the ISO/IEC TR 29158 (AIM DPM) standard, the software will vary the size of the aperture until the symbol is decoded, and then the grading is repeated with two different aperture sizes (50% and 80%). The better of the two grades is reported as the final grade. When the reference decode algorithm fails to decode a symbol with both 50% and 80% aperture, the DECODE grade will be “F” and a note will be printed on the grade section of the report, even if the symbol is recognized and decoded with a different aperture size in an earlier phase of the grading procedure. 

Global Threshold 

The global threshold is essentially the point on a scale from dark to light that determines if a cell is closer to light or closer to dark. In ISO 15415, the global threshold is a simple calculation of the median between the highest and lowest reflectivity values. The highest brightness (Rmax or RL) and the lowest brightness (Rmin or RD) are identified and then the global threshold is just the midpoint between these two extreme values. In the case of paper labels, the Rmax value will normally come from a space within the code or the quiet zone. Usually this value will not be very different from most other spaces within the code because paper label spaces do not have specular reflection, or a spot of glare with intense reflection.  
With DPM codes however, there are often some spots of glare which causes Rmax to be very different from most of the other spaces in the code. This is a problem because it makes the global threshold higher, and then some of the other spaces are close to that threshold which makes them get a low modulation value. In the ISO 29158 standard for DPM codes, a more optimal threshold is calculated using an algorithm commonly known as “Otsu’s Algorithm.” At a high level, this algorithm computes the minimum of the variances between dark and light elements. This is a more ideal global threshold that will result in higher values of modulation. This is the most important reason why ISO /IEC TR 29158 gives higher grades than ISO 15415, especially on DPM codes.  

Lighting Options 

Another significant difference between ISO/IEC TR 29158 and ISO 15415 is the allowance for a variety of lighting options. Four-sided 45˚ light is the default for ISO 15415. ISO/IEC TR 29158 allows additional lighting angles to make illuminating challenging DPM codes possible: 30˚ lighting from four sides, 30˚ from two sides (which can be either north/south or east/west), and 90˚diffuse on-axis lighting. The light source that is used is reported using a notation that includes the angle, and a letter (Q for 4, T for 2, and S for 1).

Lighting options

Image Sensor

The image sensor works the same for ISO 15415 as with ISO/IEC TR 29158. However, in 29158, the exposure is adjusted automatically to brighten the image so that a darker code will look brighter and the full range of grayscale is used in the sensor. For both 15415 and 29158 the illumination intensity is very high so that ambient light has no practical contribution to the image. However, the exposure value is changed in 29158 compared to 15415. The best indication (or “measurement”) of light intensity is the shortness of the exposure time, because the short exposure time is only possible because of the bright light. If the light is stronger, the exposure time will be shorter (which is better). Since the changed exposure time is known, the true brightness can be computed. This is why the parameter Minimum Reflectance or “MR” near the bottom of the list of 29158 parameter grades checks to make sure the reflectance of the pre-adjusted image has at least 5% contrast.  


Calibration is the process of mapping a camera’s measurement to actual reflectance levels. The process is done to find an exposure time that is needed to give a full brightness image on the calibration card. A calibration card has barcode symbols that are measured against a National Institute of Standards and Technology (NIST) traceable judge card to determine the exact Symbol Contrast Rmin/Rmax values. These values are entered into the verification software at the beginning of the process so that the software can adjust the camera accordingly. 

Calibration card

The benefit of calibration is that when an image is captured of any other code, if that code is darker, it will appear darker when captured using that exposure time. Essentially it establishes a baseline for the verification software reflectance values. Currently, there are no DPM-specific calibration cards to challenge ISO 29158. A Data Matrix conformance test card can be used, but the contrast values will never perfectly match the value on the card because of the image adjustment used in 29158. Testing with the 29158 grading standard can be done to check for correct operation but will yield results that are different than those shown on the conformance card. It is recommended that the verifier also be tested using ISO 15415.

The aperture, global threshold, lighting options, image sensor, and calibration all differ between the ISO 15416 and ISO/IEC TR 29158 grading standards. To learn more about the grading process and quality parameters of ISO standards, download the Understanding Verification Results Whitepaper.

Naomi Brown

More Posts on


Join MyCognex


Cognex representatives are available worldwide to support your vision and industrial barcode reading needs.

Contact Us