주요 콘텐츠

huffmandict

알려진 확률 모델을 사용하여 소스에 대한 허프만 코드 사전을 생성

설명

[dict,avglen] = huffmandict(symbols,prob)는 최대 분산 알고리즘을 사용하여 소스 심볼 symbols에 대한 이진 허프만 코드 사전 dict를 생성합니다. 이 함수는 입력값 prob의 확률에 따라 가중치가 적용된 평균 사전 코드워드 길이(avglen)도 반환합니다.

예제

[dict,avglen] = huffmandict(symbols,prob,N)은 최대 분산 알고리즘을 사용하여 N진 허프만 코드 사전을 생성합니다.

예제

[dict,avglen] = huffmandict(symbols,prob,N,variance)는 지정된 분산 알고리즘을 사용하여 N진 허프만 코드 사전을 생성합니다.

예제

모두 축소

이진 허프만 코드 사전을 생성하고, 평균 코드 길이를 추가로 반환합니다.

심볼 알파벳 벡터 symbols와 심볼 확률 벡터 prob를 지정합니다.

symbols = (1:5);
prob = [.3 .3 .2 .1 .1];

이진 허프만 코드를 생성하고, 평균 코드 길이와 코드워드 사전이 포함된 셀형 배열을 표시합니다.

[dict,avglen] = huffmandict(symbols,prob)
dict=5×2 cell array
    {[1]}    {[  0 1]}
    {[2]}    {[  0 0]}
    {[3]}    {[  1 0]}
    {[4]}    {[1 1 1]}
    {[5]}    {[1 1 0]}

avglen = 
2.2000

사전에서 다섯 번째 코드워드를 표시합니다.

samplecode = dict{5,2}
samplecode = 1×3

     1     1     0

허프만 코더 함수를 위한 코드 사전 생성기를 사용하여 이진 허프만 코드와 3진 허프만 코드를 생성합니다.

심볼 알파벳 벡터 symbols와 심볼 확률 벡터 prob를 지정합니다.

symbols = (1:5);
prob = [.3 .3 .2 .1 .1];

이진 허프만 코드를 생성하고, 코드워드 사전이 포함된 셀형 배열을 표시합니다.

[dict,avglen] = huffmandict(symbols,prob);
dict(:,2) = cellfun(@num2str,dict(:,2),UniformOutput=false)
dict=5×2 cell array
    {[1]}    {'0  1'   }
    {[2]}    {'0  0'   }
    {[3]}    {'1  0'   }
    {[4]}    {'1  1  1'}
    {[5]}    {'1  1  0'}

최소 분산 알고리즘을 사용하여 3진 허프만 코드를 생성하고, 코드워드 사전이 포함된 셀형 배열을 표시합니다.

[dict,avglen] = huffmandict(symbols,prob,3,'min');
dict(:,2) = cellfun(@num2str,dict(:,2),UniformOutput=false)
dict=5×2 cell array
    {[1]}    {'2'   }
    {[2]}    {'1'   }
    {[3]}    {'0  0'}
    {[4]}    {'0  2'}
    {[5]}    {'0  1'}

입력 인수

모두 축소

소스 심볼로, 벡터, 셀형 배열 또는 영숫자 셀형 배열로 지정됩니다. symbols는 소스가 생성하는 고유한 신호 값을 나열합니다. symbols가 셀형 배열인 경우 1×S 또는 S×1 셀형 배열이어야 합니다. 여기서 S는 심볼 개수입니다.

데이터형: double | cell

각 심볼의 발생 확률로, [0, 1] 범위의 벡터로 지정됩니다. 이 벡터의 요소는 합이 1이어야 합니다. 이 벡터의 길이는 입력값 symbols의 길이와 같아야 합니다.

데이터형: double

N진 허프만 코드 사전으로, [2, 10] 범위의 스칼라로 지정됩니다. 이 값은 입력값 symbols의 길이보다 작거나 같아야 합니다.

데이터형: double

허프만 코드의 분산 알고리즘으로, 'max' 또는 'min'으로 지정됩니다.

  • 'max' — 함수가 최대 분산 알고리즘을 사용하여 N진 허프만 코드 사전을 생성합니다.

  • 'min' — 함수가 최소 분산 알고리즘을 사용하여 N진 허프만 코드 사전을 생성합니다.

출력 인수

모두 축소

허프만 코드 사전으로, 2열 셀형 배열로 반환됩니다. 첫 번째 열에는 입력값 symbols의 고유한 신호 값이 나열됩니다. 두 번째 열은 허프만 코드워드에 대응됩니다. 여기서 각 허프만 코드워드는 행 벡터로 표현됩니다. 입력 인수 N을 지정한 경우 함수는 N진 허프만 코드 사전 dict를 반환합니다.

데이터형: double | cell

사전의 평균 코드워드 길이로, 입력값 prob의 확률에 따라 가중치가 적용된 양의 스칼라로 반환됩니다.

데이터형: double

참고 문헌

[1] Sayood, Khalid. Introduction to Data Compression. 2nd ed. San Francisco: Morgan Kaufmann Publishers, 2000.

버전 내역

R2006a 이전에 개발됨

참고 항목

함수

도움말 항목