먼저 디지털 데이터 스트림을 m비트 길이의 그룹으로 나눈다. mB/nB 블록 코드형은 그룹으로 나뉜 m비트 길이의 디지털 데이터를 n비트 길이의 코드로 변환하다. 주로 동기화 문제를 해결하기 위해 사용되며 4B/5B, 8B/10B, 64B/66B, 1024B/1027B 등이 있다.

4B/5B

4비트 길이의 그룹을 5비트 길이의 코드 비트로 변환하는 방식이며, 0 또는 1이 연속으로 전송되지 않도록 코드화하였다. [ 표 4-2 ]의 변환표를 보면 비트 0이 3개 이상 연속되지 않음을 알 수 있다. 4비트 그룹은 16(=2의 4승)개의 조합이 생기지만, 5비트 그룹은 32(=2의 5승)개의 조합이 생기므로 34개 중에서 16개 조합은 사용되지 않는다. 이 중 일부는 제어 목적으로 사용되며 나머지 조합은 사용되지 않는다. 사용되지 않는 조합은 일종의 오류 검출에 사용된다. 만일 사용되지 않는 조합이 전송되면 수신자는 전송 중에 오류가 발생하였다고 판단한다.

4B/5B는 NRZ-I와 혼합하여 사용한다. NRZ-I 부호화는 신호 레벨의 변화가 비교적 작기 때문에 사용 대역폭도 작다는 장점이 있지만 0이나 1이 연속으로 발생하는 경우 직류 성분의 문제가 발생할 수 있고 신호 동기를 위한 타이밍을 얻을 수 없다는 단점이 있었다. 따라서 4B/5B 부호화를 통해 동기화 문제를 해결하고 이를 NRZ-I로 전송하면 된다. [ 그림 4-11 ] 은 고속 이더넷(100Base-FX)에서 4B/5B를 NRZ-I와 혼합하여 부호화하고 복호화하는 과정을 나타낸다.

8B/10B

8비트 길이의 그룹을 10비트 길이의 코드 비트로 변환하는 블록 코드 방식이다. 1024(=2의 10승)개 코드 중 비트 반전이 많은 260여 개의 코드들만 유효 코드로 사용해서 연속으로 0 또는 1이 나오는 것을 최소화한다. 그에 따라 동기화가 가능해진다. 또한 0과 1의 발생 비율을 평균적으로 동일하게 함(각각 5개씩 또는 4개, 6개)으로써 직류 성분 문제를 해결하였다. 8B/10Bdptjsms 768(=2의 10승 -2의 8승)개의 사용하지 않는 조합이 생기며, 사용하지 않는 조합은 비트 불균형 확인과 오류 검출에 사용된다. 일반적으로 8B/10B는 향상된 오류 확인 기능과 동기화 때문에 4B/5B에 비해 우수하다. 8B/10B는 광 채널(Fiber channel), 기가비트 이더넷(100Base-X), USB 3.0 등에서 활용되고 있다.