8b/10b

8b/10b編碼把8比特的子元转换成10比特的子元。目的是以便在串行传输中達到直流平衡（DC Balance），明晰边界，并提供足够的状态改变来利于时钟恢复。目标是至少在20比特“1”的个数与“0”的个数的差距不超过2个，并且没有连续的5个“1”或“0”。

8b/10b編碼是1983年由IBM的 Al Widmer 與 Peter Franaszek 所提出，应用于ESCON，後來申請成專利。目前廣受串列匯流排所採用。例如：IEEE 1394b、SATA、PCI Express、Infini-band、Fiber Channel、RapidIO等匯流排，都是採用8b/10b編碼。2008年推出的USB 3.0規格書亦明言采用了8b/10b編碼。

8b/10b編碼的提出即是因應光纖的傳輸技術，8b/10b技術是將8個位元經過某種映射的機制轉化為10個位元的字碼，分兩個部位分別進行映射的處理，分別是 5B/6B 與 3B/4B 的處理，另外「D.a.b」是資料碼（D即是Data），「K.a.b」指控制碼（K即是Key），a與b表示输入的原始資料。

工作原理 
8b/10b編碼輸出位元數目總共是10個位元，但只有「+2」「+0」「-2」三種組合。其中「+2」是指4個位元0，與6個位元1；「+0」是指5個位元“0”，與5個位元“1”；「-2」是指6個位元“0”，與4個位元“1”，利用這種「不均等性— Disparity」的特性而具有強大的直流平衡（DC Balance）功能，可使得发送的“0”、“1”数量保持一致，连续的“1”或“0”基本上不超过5位。

(Disparity = number of "1" - number of "0")

編碼表 
8b/10b编码将一组8位元資料分成两组，一组3位元，一组5位元，經過編碼後形成一组4位元和一组6位元，故送發時是一組10位元的資料，解码時再将10位元的資料变换得到8位元資料。編碼過程中低位5位元的資料会进行5B/6B编码，高位3位元的資料则进行3B/4B编码。

例如一組8位元的資料是 10110101：

首先，分成兩組 101 與 10101

a=10101（21） b=101（5），符號為 D21.5，在下表中的位序为HGFEDCBA，a（EDCBA）经过5B/6B编码为abcdei，b（HGF）经过3B/4B编码为fghj。

RD = Running Disparity.

5b/6b 

† Same code is used for K.x.7

3b/4b

Control symbols 

5b/6b 與 3b/4b 表可能導致下列 12 控制符號（control symbols）允許被發送，K.28.1， K.28.5， K.28.7 是逗号（，）序列：

與 8b/10b 相關技術 

目前IBM的專利已過期，此方案已成為大眾化的技術。

8B/10B 編碼的應用如下
 PCI Express 1.0/2.0
 IEEE 1394b
 Serial ATA
 SAS
 SSA
 Gigabit Ethernet
 光纖通道
 InfiniBand
 XAUI
 
 DVI和HDMI（最小化傳輸差分訊號）
 DVB Asynchronous Serial Interface（ASI）
 DisplayPort Main Link
 HyperTransport
 Common Public Radio Interface（CPRI）
 USB 3.0

數位音效 
重要的應用面:
 Digital Audio Tape
 Digital Compact Cassette (DCC).
用於 audio 與 data CDs:
 Compact Disc Eight-to-Fourteen Modulation

與 128b/13xb 相關技術 
128b/13xb編碼的應用如下：
PCI Express 3.0/4.0（128b/130b）
USB 3.1 Gen2（128b/132b）
SAS 4
DisplayPort 2.0
NVLink

外部連結 
 Original paper by Franaszek and Widmer.
 （于2002年6月30日失效）

电信标准
线路码
光纤通道