허프만 인코딩은 항상 최적입니까?


9

프리픽스가없는 인코딩의 요구는 트리가 완료되어야하기 때문에 큰 트리를 초래한다. 고정 길이의 비 인코딩 된 데이터 스토리지가 데이터를 인코딩하는 것보다 더 효율적인 임계 값이 있습니까?


일반적으로 '아니오'. 평균 데이터의 경우 각 문자의 빈도는 1보다 크며 고정 길이 코드 대신 허프만 인코딩을 사용하는 것이 좋습니다

@arunmoezhi 위에서 제공 한 예제를 말씀해 주시겠습니까? 각 문자의 빈도는 1보다 크지 만 고정 길이가 더 좋습니다.

이 예제는 흥미 롭습니다. 그러나 이러한 시나리오에 빈도 대신 각 캐릭터의 확률을 제공하고 모든 캐릭터의 확률이 1에 추가되도록 할 수

@arunmoezhi 나는 문자의 확률을 포함 시켰고 그들은 1을

답변:


4

H(A)이 문제 의 엔트로피 는 1.998입니다. 이 문제에 대한 허프만 코딩과 고정 길이 코딩의 평균 코드 워드 길이는 2입니다. 참고로 허프만 인코딩을 사용하여 얻은 코딩이 잘못되었습니다. 허프만 인코딩은이 문제에 대해 고정 길이와 유사한 코드를 생성합니다. 탐욕스러운 접근 방식을 사용합니다. 따라서 a코드를 0얻지 않고 대신 가져옵니다 00. 허프만 코딩을 사용하여 생성 한 트리에서 재 작업하십시오. 당신이 얻을 나무는 :여기에 이미지 설명을 입력하십시오


감사합니다. 허프만 인코딩이 항상 고정 길이보다 최적이라는 증거를 제시해 주시겠습니까?

1
당신은 참조 할 수 있습니다 Introduction to AlgorithmsCLRS. 이 장에서는에 greedy algorithms대한 공식적인 증거를 얻을 수 있습니다 Huffman algorithm. 긴 증거이며 읽기 위해 인내심이 필요합니다.

8

허프만 코딩은 2 개의 거듭 제곱으로 모집단 분포를 추정합니다. 실제 분포가 두 확률의 거듭 제곱으로 구성되고 입력 기호가 완전히 상관되지 않은 경우 허프만 코딩이 최적입니다. 그렇지 않으면 범위 인코딩으로 더 잘 수행 할 수 있습니다. 그러나 특정 비트 세트를 입력의 특정 심볼에 할당하는 것은 모든 인코딩 중에서 최적입니다.


"인구 분포 근사치"는 무슨 뜻입니까?

3
이론적으로 전송 될 수있는 이론적 인 메시지 분배가 있습니다. 이상적으로는 각 메시지는 확률의 로그에 비례하는 방식으로 인코딩되어야하지만 허프만 코드는 정수 비트 수이므로 2의 거듭 제곱 인 확률에 암시 적으로 해당됩니다. 따라서 근사치입니다. Shannons Coding Theorem을 찾아보십시오.

8

예, 항상 최적입니다.

아니요, 고정 길이의 비 인코딩 된 데이터를 사용하기 위해 더 적은 공간을 사용하는 임계 값은 없습니다.

웹에서 여러 가지 증거를 찾았지만 Wikipedia 기사 Huffman coding 에 충분한 토론이 있습니다.

여기에는 더 높은 압축률을 달성하는 다른 기술 (Huffman 코드가 최적의 공간 밖에서 작업)도 포함됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.