데이터 통신에서는 지속의 데이터를 고속의 회선을 전송 매체로 하여 전송할 때 회선을 효율적으로 사용하기 위해 다중화기 또는 집중기 등과 같은 전송 장비를 사용하지만, 이보다 더 근본적으로는 데이터를 압축해 보냄으로써 전송 효율을 높일 수 있음
데이터 압축
데이터 압축은 크게 무손실 압축과 손실 압축으로 구분
무손실 압축이란 압축 후 원래의 데이터로 전부 복원되는 방식으로, 허프만 부호화, Run Length 부호화 등이 이에 속함
손실압축은 압축 후 원래의 데이터를 복원시 손실이 발생되는 방식으로 DCT, DM, ADM, ADPCM, DPCM 등이 이에 속함
허프만 부호(Huffman Coding)
허프만 부호화는 문자의 사용 빈도에 따라 가변 길이를 적용하는 방식
가장 사용 빈도가 높은 문자는 가장 짧은 코드로 표현하고, 가장 사용 빈도가 적은 문자는 가장 긴 코드로 표현하는 방식
예를 들어 문자 A, B, C, D가 전체 문자 구성 요소일 경우, 이 중 전송 트래픽에 A가 50%, B가 25%, C가 15%, D가 10% 발생한다고 하면, 데이터 전송 시 4가지 경우 2진수 00,01,10,11로 표현되며, 문자당 평균 비트 수는 각각 2 비트씩 2 * 0.5 + 2 * 0.25 + 2 * 0.15 + 2 * 0.1 = 2, 즉 2비트가 평균 비트가 됨
불균형 문자 분포를 이용하는 허프만 코드로 표현하면, 가장 사용 빈도가 높은 A에 한 비트 '0'을 배정하고, 그 다음 B에 '10', C에 '110', D에 '111'을 배정하면 문자당 평균 비트 수는 1 * 0.5 + 2 * 0.25 + 3 * 0.15 + 3 * 0.1 = 1.75, 즉 평균 문자당 비트수는 1.75 비트가 되어 전송 효율이 높아짐
Run Length 부호화
허프만 부호화는 문자의 사용 빈도를 미리 알아야 효율적인 압축이 가능하지만, 그래픽이나 2진 데이터 파일 등 많은 경우는 이에 해당하지 않음
Run Length 부호화는 전송하는 압축 기법으로, 이 압축 기법은 동일한 비트가 길게 자주 발생하는 비트 열의 경우에 효과적