산술부호화 예제

산술부호화 예제
2 Agosto, 2019 fabio

산술 인코딩의 모든 프로그래밍 방식 구현은 서로 다른 압축 비율과 성능을 가합니다. 압축 비율은 약간만 다르지만(일반적으로 1%미만) [7] 코드 실행 시간은 10배까지 달라질 수 있습니다. 성능 및 압축 비율은 특히 알파벳의 크기 (다른 기호의 수)에 따라 데이터 유형에 의존하기 때문에 공개적으로 사용할 수있는 인코더 목록에서 올바른 인코더를 선택하는 것은 간단한 작업이 아닙니다. 두 개의 특정 인코더 중 하나는 작은 알파벳에 대해 더 나은 성능을 가질 수 있고 다른 하나는 큰 알파벳에 대해 더 나은 성능을 나타낼 수 있습니다. 대부분의 인코더는 알파벳 의 크기에 제한이 있으며, 그들 중 많은 정확히 두 기호 (0과 1)의 알파벳에 대한 전문. 산술 압축기가 나빠지면 무엇이 잘못되었는지 확인하는 것이 매우 어려울 수 있습니다. 그것은 엔트로피 인코딩 기술, 자주 본 기호는 거의 볼 기호 보다 적은 비트로 인코딩 되는. 허프만 코딩과 같은 잘 알려진 기술에 비해 몇 가지 장점이 있습니다. 이 문서에서는 CACM87 산술 코딩 구현에 대해 자세히 설명하여 이를 구현하는 데 필요한 모든 세부 사항을 잘 이해할 수 있도록 합니다. 보다 효율적인 해결책은 이러한 세 심볼의 시퀀스를 각 숫자가 기호를 나타내는 기본 3의 합리적인 숫자로 나타내는 것입니다. 예를 들어, “ABBCAB” 시퀀스는 간격 [0, 1)의 값으로 산술 코딩에서 0.0112013이 될 수 있습니다. 다음 단계는 0.00101110102와 같이 복구하기에 충분한 정밀도의 고정 소수점 이진 수를 사용하여 이 삼자 번호를 인코딩하는 것입니다.

2 비트는 순진한 블록 인코딩과 비교하여 저장됩니다. 임의로 정확한 숫자의 베이스를 변환하기 위한 효율적인 인플레이스 알고리즘이 있기 때문에 긴 시퀀스에서는 이 방법이 가능합니다. 이 인코딩 프로세스는 점진적으로 수행됩니다. 파일의 각 문자가 인코딩되면 인코딩된 메시지에 몇 비트가 추가되므로 알고리즘이 진행됨에 따라 시간이 지남에 따라 빌드됩니다. 다른 유사한 데이터 압축 방법에 비해 산술 코딩의 한 가지 장점은 적응의 편리성입니다. 적응은 데이터를 처리하는 동안 빈도(또는 확률) 테이블을 변경하는 것입니다. 디코딩된 데이터는 디코딩의 주파수 테이블이 인코딩과 동일한 방식으로 대체되는 한 원래 데이터와 일치합니다. 동기화는 일반적으로 인코딩 및 디코딩 프로세스 중에 발생하는 기호의 조합에 따라 이루어집니다. 가장 간단한 경우 각 심볼이 발생할 확률은 동일합니다.