2015-01-14 7 views
0

16 진수 문자로 파일을 압축하려고하지만 RLE가 파일과 문자에 의존하기 때문에 Huffman 코드를 사용하는 것이 효율적인지 알 수 없습니다. 내가 파일을 압축하도록 변경하면 절대 동일하지 않습니다.16 진수의 Huffman 대 RLE

허프만을 사용해야합니까? 비효율적이라면 왜 그럴까요? 더 나은 압축 알고리즘을 사용할 수있는 알려진 algorythm이 있습니까? 모든 언어로 코드로 작성할 수 있습니까?

+1

항상 16 진수일까요? 그렇다면 그 파일을 기본 256으로 변환하면 절반 만 보장되고 완전히 "무료"(헤더가없고 심각한 처리 비용도없고 16 진수가 아닌 내용의 조건부는 아님) – harold

+0

"16 진수를 가진 파일 문자 "? – Peter

답변

1

RLE가 작동하면 허프만이 더 잘 작동합니다. 파일 크기가 클 경우 허프만은 가능한 최대 엔트로피로 수렴하여 압축을 극대화한다는 증거가 있습니다.

+0

그리고 허프만 인코딩으로 파일을 확장 할 수 있습니까? 그래서 이런 방식으로, RLE는 Huffman보다 파일을 더 많이 확장 할 것입니까? – Ender

+0

RLE은 특정 상황에서 더 나은 압축을 제공 할 수 있습니다. 즉, 동일한 문자의 매우 긴 실행이있는 경우. – user3344003

+0

음, 아니, 허프만 "기호"가 정말로 긴 문자열 인 경우가 아니면, 긴 파일로 인해 이익을 얻을 수 없습니다. RLE는 바이트 기호에 대해 허프만 코딩이 할 수없는 중복성을 활용할 수 있습니다. –

2

먼저 두 개의 16 진수 문자를 모두 한 바이트로 변환해야합니다. 그게 바로 박쥐에서 2 루타가되는 요인입니다.

둘째, RLE (또는 RLE의 일반화 인 더 우수한 LZ77 일치하는 문자열) 및 허프만을 결과 바이트에있는 중복성에 따라 적용 할 수 있습니다 (있는 경우). zlib와 같은 기존 압축 방법은이 작업을 모두 적용하여 적용 할 수 있습니다.

+0

정확하게! Upvoting 순수한 품질에 대한 경쟁 대답 :) –