Gegründet 2006

허프만 예제

섀넌의 소스 코딩 정리의 결과로, 엔트로피는 관련 가중치와 주어진 알파벳에 대해 이론적으로 가능한 가장 작은 코드 워드 길이의 측정이다. 이 예에서 가중 평균 codeword 길이는 기호당 2.25비트이며, 심볼당 2.205비트의 계산된 엔트로피보다 약간 더 큽니다. 따라서 이 코드는 다른 실행 가능한 코드가 더 잘 수행되지 않는다는 점에서 최적일 뿐만 아니라 섀넌이 정한 이론적 한계에 매우 가깝습니다. 산술 코딩과 허프만 코딩은 모든 심볼이 1/2k 형식의 확률을 가지면 엔트로피를 달성하는 동등한 결과를 생성합니다. 다른 상황에서산술 코딩은 허프만 코딩보다 더 나은 압축을 제공할 수 있습니다 왜냐하면 직관적으로 „코드 단어“는 효과적으로 정수가 아닌 비트 길이를 가질 수 있는 반면 허프만 코드와 같은 접두사 코드의 코드 단어는 정수만 가질 수 있기 때문입니다. 비트 수입니다. 따라서 길이 k의 코드 단어는 확률 1/2k의 기호와 최적으로 일치하며 다른 확률은 최적으로 표현되지 않습니다. 산술 코딩의 코드 단어 길이는 기호의 실제 확률과 정확히 일치하도록 만들 수 있습니다. 이 차이는 특히 작은 알파벳 크기에 대 한 눈에 띄는. 불평등 문자 비용으로 허프만 코딩은 이 가정없이 일반화됩니다 : 인코딩 알파벳의 문자는 전송 매체의 특성으로 인해 균일하지 않은 길이를 가질 수 있습니다. 예를 들어 모스 코드의 인코딩 알파벳은 `대시`가 `점`보다 보내는 데 시간이 오래 걸리므로 전송 시간에 대시 비용이 더 높습니다.

목표는 여전히 가중 평균 코드워드 길이를 최소화하는 것이지만 메시지에 사용되는 기호 수를 최소화하기에는 더 이상 충분하지 않습니다. 어떤 알고리즘도 기존의 허프만 코딩과 동일한 방식으로 또는 동일한 효율로 이 문제를 해결하는 것으로 알려져 있지 않지만, 골린에 의한 정수 비용의 경우 솔루션이 개선된 Karp에 의해 해결되었습니다. 적응 허프만 코딩이라는 변형에는 소스 기호 시퀀스의 최근 실제 주파수를 기반으로 확률을 동적으로 계산하고 업데이트된 확률 추정치에 맞게 코딩 트리 구조를 변경하는 작업이 포함됩니다. 트리를 업데이트하는 비용이 최적화된 적응형 산술 코딩보다 느리기 때문에 실제로는 거의 사용되지 않으며, 이는 더 유연하고 압축이 더 좋습니다. 컴퓨터 과학 및 정보 이론에서 허프맨 코드는 무손실 데이터 압축에 일반적으로 사용되는 특정 유형의 최적의 접두사 코드입니다. 이러한 코드를 찾거나 사용하는 과정은 MIT에서 Sc.D. 학생이었을 때 David A. Huffman이 개발한 알고리즘인 허프만 코딩을 통해 진행되며 1952년 „최소 중복 코드 의 구성 방법“에 발표되었습니다. [1] 허프만 코드는 무손실 데이터 압축에 일반적으로 사용되는 특정 유형의 최적의 접두사 코드입니다. 압축되는 데이터의 특성에 따라 데이터를 20%에서 90%까지 매우 효과적으로 절약합니다.

데이터를 문자 시퀀스로 간주합니다.

Comments are closed.