[기본원리] 압축기법 - 런 렝스 코딩 기법
- 프로그래밍 정보
- 2010. 11. 23.
반응형
읽기전에 손가락 한번 클릭~ >_<
고마워요 ~ Chu ~ ♥
런 렝스 코딩
보통 알파벳은 한 문자가 1바이트의 데이터로 저장이 되어 있습니다.
예를들어 'AABBBBCC' 라는 문자가 있다면 이것은 8 바이트 겠지요.
이처럼 같은 문자가 여러번 반복이 되고 있으면 이것은 'A2B4C2' 로 줄여서 나타낼 수가 있습니다. 'A2B4C2' 는 6바이트 입니다.
즉, 8바이트를 6바이트로 압축한 것이지요~
이처럼 파일의 내용을 '데이터 * 반복횟수' 로 나타내어 압축하는 방식을 런 렝스 코딩(Run Length Coding) 이라고 부릅니다.
런 렝스 코딩은 팩시밀리에서 쓰이고 있구요, 그림파일도 결국에는 바이트가 모인 것이므로 런 렝스 코딩으로 압축이 가능하긴 합니다;;
런 렝스 코딩의 단점
대부분의 실제 문서 파일에서는 같은 문자가 여러번 계속해서 반복되는 부분이 많지가 않습니다 실제로;; .
그렇기 때문에 런 렝스 코딩은 그림 파일처럼 같은 데이터가 계속 반복될때는 효과가 있겠지만, 문서파일 압축에는 부적합 합니다
예를들어 'Java' 라는 4글자를 런 렝스 코딩으로 바꾸면 'J1a1v1a1' 으로써
8문자 (즉 이전의 2배) 의 크기가 되어버립니다. 연속되는 문자가 없으므로 모든 문자의 뒤에 '1' 이 붙기 때문이지요.
따라서 문자 파일이 아닌 그림 파일 압축에만 사용하여야 합니다.
반응형