# Codificació 8b/10b

En telecomunicacions, la codificació 8b/10b és un codi de línia que mapeja paraules de 8 bits amb símbols de 10 bits per aconseguir l'equilibri de CC i la disparitat limitada, i alhora proporcionar prou canvis d'estat per permetre una recuperació raonable del rellotge. Això vol dir que la diferència entre els recomptes d'uns i zeros en una cadena d' almenys 20 bits no és superior a dos i que no hi ha més de cinc uns o zeros seguits. Això ajuda a reduir la demanda del límit inferior d'ample de banda del canal necessari per transferir el senyal.
Un codi 8b/10b es pot implementar de diverses maneres, on el disseny es pot centrar en paràmetres específics com ara requisits de maquinari, equilibri de CC, etc. Una implementació va ser dissenyada per K. Odaka per a la gravadora d'àudio digital DAT. Kees Schouhamer Immink va dissenyar un codi 8b/10b per a la gravadora d'àudio DCC. La implementació d'IBM va ser descrita el 1983 per Al Widmer i Peter Franaszek.
Com indica el nom de l'esquema, vuit bits de dades es transmeten com una entitat de 10 bits anomenada símbol o caràcter. Els cinc bits inferiors de dades es codifiquen en un grup de 6 bits (la part 5b/6b) i els tres bits superiors es codifiquen en un grup de 4 bits (la part 3b/4b). Aquests grups de codis es concatenen per formar el símbol de 10 bits que es transmet pel cable. Els símbols de dades sovint s'anomenen Dxy on x oscil·la entre 0–31 i y entre 0–7. Els estàndards que utilitzen la codificació 8b/10b també defineixen fins a 12 símbols especials (o caràcters de control) que es poden enviar en lloc d'un símbol de dades. Sovint s'utilitzen per indicar l'inici del fotograma, el final del fotograma, l'enllaç inactiu, l'omissió i condicions similars a nivell d'enllaç. Almenys un d'ells (és a dir, un símbol de "coma") s'ha d'utilitzar per definir l'alineació dels símbols de 10 bits. S'anomenen Kxy i tenen codificacions diferents de qualsevol dels símbols Dxy.
Com que la codificació 8b/10b utilitza símbols de 10 bits per codificar paraules de 8 bits, es poden excloure alguns dels possibles símbols de 1024 (10 bits, 2$^{10}$) per atorgar un límit de longitud d'execució de 5 bits iguals consecutius i per garantir la diferència. entre el nombre de zeros i uns no sigui superior a dos. Algunes de les 256 paraules de 8 bits possibles es poden codificar de dues maneres diferents. Utilitzant aquestes codificacions alternatives, l'esquema és capaç d'aconseguir un equilibri DC a llarg termini en el flux de dades en sèrie. Això permet que el flux de dades es transmeti a través d'un canal amb una característica de pas alt, per exemple, un parell trenat sense blindatge acoblat a un transformador d'Ethernet o receptors òptics que utilitzen control automàtic de guany.
Taules de codificació:
codi 5b/6b (abcdei)
| Input | Input | RD = −1 | RD = +1 | Input | Input | RD = −1 | RD = +1 |
| Code | EDCBA | a b c d e i | a b c d e i | Code | EDCBA | a b c d e i | a b c d e i |
| D.00 | 00000 | 100111 | 011000 | D.16 | 10000 | 011011 | 100100 |
| D.01 | 00001 | 011101 | 100010 | D.17 | 10001 | 100011 | 100011 |
| D.02 | 00010 | 101101 | 010010 | D.18 | 10010 | 010011 | 010011 |
| D.03 | 00011 | 110001 | 110001 | D.19 | 10011 | 110010 | 110010 |
| D.04 | 00100 | 110101 | 001010 | D.20 | 10100 | 001011 | 001011 |
| D.05 | 00101 | 101001 | 101001 | D.21 | 10101 | 101010 | 101010 |
| D.06 | 00110 | 011001 | 011001 | D.22 | 10110 | 011010 | 011010 |
| D.07 | 00111 | 111000 | 000111 | D.23 † | 10111 | 111010 | 000101 |
| D.08 | 01000 | 111001 | 000110 | D.24 | 11000 | 110011 | 001100 |
| D.09 | 01001 | 100101 | 100101 | D.25 | 11001 | 100110 | 100110 |
| D.10 | 01010 | 010101 | 010101 | D.26 | 11010 | 010110 | 010110 |
| D.11 | 01011 | 110100 | 110100 | D.27 † | 11011 | 110110 | 001001 |
| D.12 | 01100 | 001101 | 001101 | D.28 | 11100 | 001110 | 001110 |
| D.13 | 01101 | 101100 | 101100 | D.29 † | 11101 | 101110 | 010001 |
| D.14 | 01110 | 011100 | 011100 | D.30 † | 11110 | 011110 | 100001 |
| D.15 | 01111 | 010111 | 101000 | D.31 | 11111 | 101011 | 010100 |
| not used | not used | 111100 | 000011 | K.28 ‡ | 11100 | 001111 | 110000 |
Codi 3b/4b (fghj)
| Entrada | Entrada | RD = −1 | RD = +1 | Entrada | Entrada | RD = −1 | RD = +1 |
| Codi | HGF | f g h j | f g h j | Codi | HGF | f g h j | f g h j |
| Dx0 | 000 | 1011 | 0100 | Kx0 | 000 | 1011 | 0100 |
| Dx1 | 001 | 1001 | 1001 | Kx1 ‡ | 001 | 0110 | 1 001 |
| Dx2 | 010 | 0101 | 0101 | Kx2 | 010 | 1010 | 0101 |
| Dx3 | 011 | 1100 | 0011 | Kx3 | 011 | 1100 | 0011 |
| Dx4 | 100 | 1101 | 0010 | Kx4 | 100 | 1101 | 0010 |
| Dx5 | 101 | 1010 | 1010 | Kx5 ‡ | 101 | 0101 | 1 010 |
| Dx6 | 110 | 0110 | 0110 | Kx6 | 110 | 1001 | 0110 |
| Dx P7 † | 111 | 1110 | 0001 | Kx7 ‡ | 111 | 0111 | 1 000 |
| Dx A7 † | 111 | 0111 | 1000 | | | | |

## Referències

* ↑ Kees Schouhamer Immink IEEE Transactions on Communications, 45, 3, 3-1997, pàg. 293–299. DOI: 10.1109/26.558690. «The dc-balanced or dc-free codes, as they are often called, have a long history and their application is certainly not confined to recording practice.»
* ↑ Codificació 8b/10b a l'USPTO (anglès) Method and apparatus for encoding binary data, October 1984.
* ↑ Codificació 8b/10b a l'USPTO (anglès) Method of transmitting information, encoding device for use in the method, and decoding device for use in the method, June 1986.
* ↑ Al X. Widmer, Peter A. Franaszek «Còpia arxivada». IBM Journal of Research and Development, 27, 5, 1983, pàg. 440–451. Arxivat de l'original el 2009-05-30. DOI: 10.1147/rd.275.0440 [Consulta: 29 desembre 2022].
* ↑ Codificació 8b/10b a l'USPTO (anglès) Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code, December 1984.