In telecommunications, 6b/8b is a line code that expands 6bit codes to 8bit symbols for the purposes of maintaining DCbalance in a communications system.^{[1]}
Each 8bit output symbol contains 4 zero bits and 4 one bits, so the code can, like a parity bit, detect all singlebit errors.
The number of 8bit patterns with 4 bits set is the binomial coefficient = 70. Further excluding the patterns 11110000
and 00001111
, this allows 68 coded patterns: 64 data codes, plus 4 additional control codes.
Coding rules
The 64 possible 6bit input codes can be classified according to their disparity, the number of 1 bits minus the number of 0 bits:
Ones  Zeros  Disparity  Number 

0  6  −6  1 
1  5  −4  6 
2  4  −2  15 
3  3  0  20 
4  2  +2  15 
5  1  +4  6 
6  0  +6  1 
The 6bit input codes are mapped to 8bit output symbols as follows:
 The 20 6bit codes with disparity 0 are prefixed with
10
Example: 000111 → 10000111
Example: 101010 → 10101010  The 15 6bit codes with disparity +2, other than
001111
, are prefixed with00
Example: 010111 → 00010111  The 15 6bit codes with disparity −2, other than
110000
, are prefixed with11
Example: 101000 → 11101000  The remaining 20 codes: 12 with disparity ±4, 2 with disparity ±6,
001111
,110000
, and the 4 control codes, are assigned to codes beginning with01
as follows:
Type  Input  Output  Type  Input  Output  Complement  

−6  000000 
01011001

+6  111111 
01100110

01_xx__x  
−4  000001 
01110001

+4  111110 
01001110

01xx____  
000010 
01110010

111101 
01001101
 
000100 
01100101

111011 
01011010

01x____x  
001000 
01101001

110111 
01010110
 
010000 
01010011

101111 
01101100

01_____xx  
100000 
01100011

011111 
01011100
 
−2  110000 
01110100

+2  001111 
01001011

01____x__  
Control  K 000111 
01000111

Control  K 111000 
01111000


K 010101 
01010101

K 101010 
01101010

Obviously, no data symbol contains more than four consecutive matching bits, and because the patterns 11110000
and 00001111
are excluded, no data symbol begins or ends with more than three identical bits.
Thus, the longest run of identical bits that will be produced is 6. (I.e. this is a (0,5) RLL code, with a worstcase running disparity of +3 to −3.)
Any occurrence of 6 consecutive identical bits constitutes a comma sequence or sync mark or syncword; it identifies the symbol boundaries precisely. Those 6 bits straddle the intersymbol boundary with exactly 3 of those identical bits at the end of one symbol, and 3 of those identical bits at the start of the following next symbol.
See also
 8b/10b encoding, another fixedtable system with a higher code rate but less error detection.
 64b/66b encoding, linear feedback register.
References
 ^ Kees A. Schouhamer Immink (November 2004). Codes for Mass Data Storage Systems (Second fully revised ed.). Eindhoven, The Netherlands: Shannon Foundation Publishers. ISBN 9074249272. Retrieved 20150823.
External links
 Freepatents online, United States patent 6,876,315: DCbalanced 6B/8B transmission code with local parity.
This electronicsrelated article is a stub. You can help Wikipedia by expanding it. 