Entropy coding

transform이후에 통계적인 처리를 통해서 정보를 압축한다.

부호의 발생확률의 편중을 이용해서 압축할 수 있다.

한정된 sample space에서 부호는 편중된다. 그럼 정보의 편중을 활용해서 가변길이코딩을 하면 된다.

확률이 1이면 정보는 0이다. 확률이 작으면 정보의 양이 많다.

정보의 단위는 2진법 yes/no이고 엔트로피는 모든 심볼의 평균 정보량을 뜻한다

확률*정보량의 합이 entropy다 == 모든 심볼의 평균 정보량

같은 길이의 stream을 보내도 entropy는 다를 수 있다. 정보량은 확률이 균일할수록 더 많아진다.

확률이 편중되는 경우와 똑같은 확률을 갖는 경우에서 편중된 경우가 더 적다.

모든 symbol의 확률이 똑같은 경우 엔트로피는 최대가 된다.

스크린샷 2024-10-27 오전 12.36.25.png

스크린샷 2024-10-27 오전 12.37.28.png

확률이 편중되면 symbol에 이름 붙일때 발생확률이 높으면 짧은 이름을 붙인다 = entropy coding

uniqueness를 만족하지 않으면 앞자리를 늘린다 = prefix code

fixed length coding은 00 01 10 11이 된다.

parsing process

prefix code를 어떻게 디코딩할까? 받는쪽은 어떤 데이터가 오는지 모름 고정장이면 4개의 심볼이 있을때 두 비트씩 잘라서 파싱하면 되는데 VLC인 경우 디코더는 알수가 없다.

이를 해결하기 위해서 디코더가 vlc테이블을 가지고 있어야한다.

예를 들어 1이면 10 111 등 구분 안된다. 10으로 unique한 심볼로 완결되면 parsing마치고 그 다음 심볼로 인식

⇒ 1이면 진행하고 0이면 parsing마친다.