문제

적응 산술 코딩의 요점에 대해 혼란 스럽습니다.

정전기 산술 코딩은 전체 프로세스 중에 정적으로 유지되는 심볼의 미리 설정된 확률을 사용하는 것을 이해합니다.또한 적응 형 산술 코딩은 각 기호가 발생한 각 기호 후에 모든 확률을 변경하는 것도 이해합니다.

그러나 각 기호 후에 확률을 변경하는 점은 무엇입니까?왜 전체 파일을 먼저 훑어보고 확률을 결정한 다음 산술 코딩을 두 번째 패스로 수행하지 않겠습니까?

또한 심볼의 확률 변경이 압축에 영향을 미치는지 이해하지 못합니까?우리가 압축하고있는 파일의 심볼의 진정한 확률을 알고 있으면 파일을 더 작게 만들 수 있습니까?

도움이 되었습니까?

해결책

첫째, "전체 파일을 통과하는"고려하십시오. 여기에 대해 생각할 가치가있는 몇 가지 가정이 있습니다.

파일은 매우 크고 두 번 횡단 할 수 있습니다. 이것은 대부분의 실제 압축 표준이 블록이나 창을 기반으로하는 한 가지 이유입니다.

통신 채널과 같이 "전체 파일"이있는 상황이 있습니다. TLS (적어도 1.3 이전)는 압축을 지원합니다 (예 :

파일은 항상 균질하지는 않습니다. 아카이브 (예 : tar )입니다. 파일의 한 부분에 적합한 통계 모델은 다른 부분에 적합하지 않을 수 있습니다. 적응 형 코딩도 이에도 적응합니다.

마지막 질문에 대해서는 인코더와 디코더가 우리가 압축하는 파일의 기호의 진정한 확률을 알고 있으면 전송 될 필요가 없습니다. 그리고 실제로, 우리는 때로는 실제 세계에서 이것을합니다. 예를 들어, JPEG 표준은 해당 시간에 대한 기본 코딩 테이블을 지정하고 인코더가 아닌 경우 인코더를 제공 할 수 있습니다.

정적 코딩 테이블을 효율적으로 (즉, 압축)하는 것은 특히 대용량 코드 알파벳에 대해서는 중요하지 않은 문제점이다. 잘 설계된 방식의 경우, 을 송신하는 비용은 적응 코드를 사용하는 "학습 비용"과 동일해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top