Chain code

A chain code is a lossless compression algorithm for monochrome images. The basic principle of chain codes is to separately encode each connected component, or "blob", in the image.

For each such region, a point on the boundary is selected and its coordinates are transmitted. The encoder then moves along the boundary of the region and, at each step, transmits a symbol representing the direction of this movement.

This continues until the encoder returns to the starting position, at which point the blob has been completely described, and encoding continues with the next blob in the image.

This encoding method is particularly effective for images consisting of a reasonably small number of large connected components.


Some popular chain codes include:

  • the Freeman Chain Code of Eight Directions[1] (FCCE)
  • Directional Freeman Chain Code of Eight Directions[2] (DFCCE)
  • Vertex Chain Code[3] (VCC)
  • Three OrThogonal symbol chain code[4] (3OT)
  • Unsigned Manhattan Chain Code[5] (UMCC)

In particular, FCCE, VCC, 3OT and DFCCE can be transformed from one to another [6]

A related blob encoding method is crack code.[7] Algorithms exist to convert between chain code, crack code, and run-length encoding.

In use

Recently, the combination of move-to-front transform and adaptive run-length encoding accomplished efficient compression of the popular chain codes.[8] Chain codes also can be used to obtain high levels of compression for image documents, outperforming standards like DjVu and JBIG2.[9]

See also


  1. H. Freeman. On the encoding of arbitrary geometric configurations, IRE Transactions on Electronic Computers EC- 10(1961) 260-268.
  2. Y.K. Liu, B.Zalik, An efficient chain code with Huffman coding, Pattern Recognition 38 (4) (2005) 553-557.
  3. E. Bribiesca, A new chain code, Pattern Recognition 32 (1999) 235–251.
  4. H. Sánchez-Cruz, R. M. Rodríguez-Dagnino. Compressing bi-level images by means of a 3-bit chain code. Optical Engineering. SPIE. 44 (9) 097004 (2005) 1-8.
  5. B. Žalik, D. Mongus, Y.-K. Liu, N. Lukač, Unsigned Manhattan Chain Code, Journal of Visual Communication and Image Representation 38 (2016) 186-194.
  6. H, Sánchez-Cruz; H. H. López-Valdéz (2014). "Equivalence of chain codes". Electronic Imaging. 23: 013031. doi:10.1117/1.JEI.23.1.013031.
  7. A. Rosenfeld, A. C. Kak. Digital Picture Processing, 2nd edition (1982). Page 220. Academic Press, Inc. Orlando, FL, USA.
  8. Žalik, Borut; Lukač Niko (2013). "Chain code lossless compression using move-to-front transform and adaptive run-length encoding". Signal Processing: Image Communication. 29: 96–106. doi:10.1016/j.image.2013.09.002.
  9. M, Rodríguez-Díaz; H. Sánchez-Cruz (2014). "Refined fixed double pass binary object classification for document image compression". Digital Signal Processing. 30: 114–130. doi:10.1016/j.dsp.2014.03.007.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.