섀넌-파노-엘리아스 부호화
Shannon–Fano–Elias coding정보 이론에서, 섀넌-파노-엘리아스 부호화는 산술 부호화의 전조이며, 여기서 확률은 코드 워드를 [1]결정하기 위해 사용된다.
알고리즘 설명
부호화할 순서가 지정된 값의 이산 랜덤 변수 X가 주어지면 p() { p를 X 내의 임의의 x에 대한 확률로 .함수의 정의
알고리즘:
- 각 X in X에 대해
- Z를 F ( 의 바이너리 전개라고 합니다.
- x, () { L ( ) 2p ( )+ \ \\ _ { } { \ { 1} { ( x ) } \ \ } 의 부호화 길이를 선택합니다.
- x, de () \ code ( )\ L ()の choose choose after afterafter after after비트를 선택합니다.
예
X = {A, B, C, D}, 확률 p = {1/3, 1/4, 1/6, 1/4}이라고 가정합니다.
- A의 경우
- 이진법에서 Z(A) = 0.0010101010...
- L(A) = 2 1 1 + 1 {\ \ 2} {3 } \ \ += 3
- 코드(A)는 001입니다.
- B의 경우
- 이진수에서 Z(B) = 0.0111010101...
- L(B) 1 11 + { \ lceil \ _ 2 { } \ \ += 3
- 코드(B)는 011 입니다.
- C의 경우
- 이진법에서 Z(C) = 0.101010101010...
- L(C) = 2 1 + { \ lceil \ _ 2 { } \ \ + = 4
- 코드(C)는 1010입니다.
- D의 경우
- 이진법에서 Z(D) = 0.120
- L(D) 1 11 + { \ lceil \ _ 2 {\ } \ \ += 3
- 코드(D)는 111입니다.
알고리즘 분석
프리픽스 코드
Shannon-Fano-Elias 부호화는 바이너리 프리픽스코드를 생성하여 직접 디코딩을 가능하게 합니다.
bcode(x)는 바이너리 코드 앞에 소수점을 추가하여 형성되는 유리수라고 합니다.예를 들어 코드(C)=1010이면 bcode(C)= 0.1010입니다.모든 x에 대해, 그러한 y가 존재하지 않는 경우
모든 코드가 프리픽스 코드를 형성합니다.
F를 X의 CDF와 비교함으로써 이 성질은 섀넌-파노-엘리아스 부호화에 대해 그래픽으로 입증될 수 있다.
L의 정의에 따르면 다음과 같다.
그리고 L(y) 뒤의 비트는 F(y)에서 잘려서 코드(y)를 형성하기 때문에 다음과 같이 된다.
따라서 bcode(y)는 CDF(x) 이상이어야 합니다.
위의 그래프는 e () - d ()> ( )≥ -L ( x ) 、 \ () - ( )> ( x )> p ( x )\ 2^ { - ( x이므로 프리픽스속성이 됩니다.
코드 길이
평균 코드 길이는 L (X ) x X ( ) ( ) x p () ( x ) ( 2p ( ) + ( X ) = \ _ { \ X( x \ ) _
따라서 랜덤 변수 X의 엔트로피인 H(X)에 대해서는
Shannon Fano Elias는 엔트로피보다 X에서 심볼당 1~2비트의 추가 비트를 코드하기 때문에 실제로는 사용되지 않습니다.
레퍼런스
- ^ T. M. Cover and Joy A. Thomas (2006). Elements of information theory (2nd ed.). John Wiley and Sons. pp. 127–128. ISBN 978-0-471-24195-9.