title: Coded mark inversion
text: # 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.
  
  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.
  
  