[기본원리] 압축기법 - 런 렝스 코딩 기법





읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥


런 렝스 코딩


보통 알파벳은 한 문자가 1바이트의 데이터로 저장이 되어 있습니다.
예를들어 'AABBBBCC' 라는 문자가 있다면 이것은 8 바이트 겠지요.
이처럼 같은 문자가 여러번 반복이 되고 있으면 이것은 'A2B4C2' 로 줄여서 나타낼 수가 있습니다. 'A2B4C2' 는 6바이트 입니다.
즉, 8바이트를 6바이트로 압축한 것이지요~

이처럼 파일의 내용을 '데이터 * 반복횟수' 로 나타내어 압축하는 방식을 런 렝스 코딩(Run Length Coding) 이라고 부릅니다.

런 렝스 코딩은 팩시밀리에서 쓰이고 있구요, 그림파일도 결국에는 바이트가 모인 것이므로 런 렝스 코딩으로 압축이 가능하긴 합니다;;




런 렝스 코딩의 단점

대부분의 실제 문서 파일에서는 같은 문자가 여러번 계속해서 반복되는 부분이 많지가 않습니다 실제로;; .

그렇기 때문에 런 렝스 코딩은 그림 파일처럼 같은 데이터가 계속 반복될때는 효과가 있겠지만, 문서파일 압축에는 부적합 합니다

예를들어 'Java' 라는 4글자를 런 렝스 코딩으로 바꾸면 'J1a1v1a1' 으로써
8문자 (즉 이전의 2배) 의 크기가 되어버립니다. 연속되는 문자가 없으므로 모든 문자의 뒤에 '1' 이 붙기 때문이지요.

따라서 문자 파일이 아닌 그림 파일 압축에만 사용하여야 합니다.




댓글(7)

  • 2010.11.24 00:21 신고

    덕분에 좋은 것을 알고가네요..
    흔히들 쓰이는 알집의 압축은 어떤 방식으로 이루어지는 건가요??

    • 2010.11.24 09:10 신고

      흠... 압축기법은 수없이 많이 있습니다.
      대표적인 예로 MP3 파일을 들 수 있는데요,
      흔히들 mp3 라고하면 음악파일을 생각하는데,
      실제로는 mp1 mp2 mp3 mp4 등으로 해가지고, 압축기법을 나타내는 것이지요 ㅎㅎ

      mp3 파일같은 경우에는 음악파일의 불필요한 부분을 줄여서 용량을 줄여주는 기법이 되겠습니다.

      알집이나, winzip 기타 등등의 압축기법은
      그 기업만의 특색이 있어서 쉽게 예측할 수가 없네요.

      대부분은 파일 자체의 용량을 줄이기 보다는
      zip 형태로 변환할 때 잠깐 용량을 줄였다가,
      압축을 풀면 다시 원상태로 복원되는 형태를 가지게 될텐데, 압축률에 따라 여러기법을 동시에 적용하는것으로 보입니다만 정확하진 않습니다 ㅜ

      댓글 감사합니다!

    • 2010.11.24 11:48 신고

      아 그렇군요.. ㅋㅋ
      mp4는 영상이랑은 다 나오던데
      화질이 좋지 않은게 대부분이더군요..
      핸드폰 영상이 거의다 mp4던데.. 아닌가? ㅋㅋ

  • 2010.11.24 11:13 신고

    답방왔습니다^^
    어렵지만... 댓글에 적어주신 mp3의 개념은 잘 배우고가네요.
    그래서 알집으로 mp3를 압축해봤자 크게 용량이.ㅎㅎ
    잘보고갑니다^^

  • 온프아님
    2011.07.21 18:13 신고

    오 좋은 정보 감사합니다. 덕분에 프로그램 개발에 도움이 되겠네요 ^.^

Designed by JB FACTORY