Coded mark inversion

In telecommunication, coded mark inversion (CMI) is a non-return-to-zero (NRZ) line code. It encodes zero bits as a half bit time of zero followed by a half bit time of one, and while one bits are encoded as a full bit time of a constant level. The level used for one bits alternates each time one is coded.

CMI line coding

This is vaguely reminiscent of, but quite different from, Miller encoding, which also uses half-bit and full-bit pulses, but additionally uses the half-one/half-zero combination and arranges them so that the signal always spends at least a full bit time at a particular level before transitioning again.

CMI doubles the bitstream frequency, when compared to its simple NRZ equivalent, but allows easy and reliable clock recovery.


  • ITU-T G.703 (11/2001), Annex A, A.3 Definition of CMI.
  • US 4325053, Pierre Le Brozec; Francois Ferret & Pierre Doussoux, "Method and a circuit for decoding a C.M.I. encoded binary signal", issued 1982-04-13┬á (google patents link)

See alsoEdit