10 Pulse Coding
Ten-pulse coding was developed to save power, increase range, and be very speed tolerant.  It consists of ten pulses with nine timed gaps between them.  The first gap is the reference time.  The eight remaining gaps are either longer (one) or shorter (zero) than the reference.  My conventions is to transmit data LSB first as in standard serial (async) data.  Depending on how the data is to be transmitted (wire, RF, IR, etc.), the width of the pulses, the timing between them and the 'spread' between zero and one values can be selected.   For instance, if you want to increase range of an IR data link, you can run the IR emitter well beyond its designed continuous power limits due to the short pulses.  This increases range without increasing average power consumption.

RC clocking can be used at both ends, if necessary.  Each data byte contains its own reference time so even timing drift between successive bytes can be tolerated.