2014년 2월 14일 금요일

압축 알고리즘 (Huffman)

자주쓰이는 문자에 가장 작은 비트(자릿수)를 할당
적게 쓰이는 문자일수록 큰 비트(자릿수) 할당
예)
대상 문자열 : CDDCACBCBCCCBBCDA

A -> 2번 출현
B -> 4번 출현
C -> 8번 출현
D -> 3번 출현


위에서 부터 빈도수가 큰 트리에 0, 작은 트리에 1 의 비트값을 부여함

부모 노드에서 부터 읽은 비트값 = 문자를 대체할 '비트열' 이 됨!

A -> 001
B -> 01
C -> 1
D -> 000


CDDCACBCBCCCBBCDA -> 1000000100110110111101011000001
( 17 바이트 )                          ( 8바이트 (31비트) )

약 50%의 압축륙을 보이고 있음






댓글 1개: