4551
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
== Постановка задачи == | == Постановка задачи == | ||
Часто возникает необходимость эффективно закодировать последовательность данных, чтобы минимизировать количество бит, необходимых для передачи или хранения этой последовательности. Последовательность может представлять собой файл или сообщение, состоящее из ''символов'' (также ''букв'' или ''знаков''), взятых из фиксированного входного алфавита. В более общем плане последовательность можно представить как состоящую из ''событий'', каждое из которых берется из своего собственного входного набора. Статистическое сжатие данных заключается в кодировании данных таким образом, чтобы использовать вероятностные оценки событий. Сжатие без потерь характеризуется тем свойством, что входная последовательность может быть точно восстановлена из закодированной | Часто возникает необходимость эффективно закодировать последовательность данных, чтобы минимизировать количество бит, необходимых для передачи или хранения этой последовательности. Последовательность может представлять собой файл или сообщение, состоящее из ''символов'' (также ''букв'' или ''знаков''), взятых из фиксированного входного алфавита. В более общем плане последовательность можно представить как состоящую из ''событий'', каждое из которых берется из своего собственного входного набора. Статистическое сжатие данных заключается в кодировании данных таким образом, чтобы использовать вероятностные оценки событий. Сжатие без потерь характеризуется тем свойством, что входная последовательность может быть точно восстановлена из закодированной. Арифметическое кодирование представляет собой близкий к оптимальному метод статистического кодирования, позволяющий получить кодировку без потерь. | ||
''' Задача (статистическое сжатие данных)''' | ''' Задача (статистическое сжатие данных)''' | ||
Дано: последовательность из m событий <math>a_1, a_2, ..., a_m</math>. | Дано: последовательность из m событий <math>a_1, a_2, ..., a_m</math>. i-е событие <math>a_i</math> берется из набора n различных возможных событий <math>e_{i, 1}, e_{i, 2}, ..., e_{i, n}</math> с точной оценкой распределения вероятностей <math>P_i</math> этих событий. Распределения <math>P_i</math> не обязательно должны быть одинаковыми для каждого события <math>a_i</math>. | ||
Цель заключается в достижении оптимальной или близкой к оптимальной длины кодирования. Шеннон [ ] доказал, что наименьшим возможным ожидаемым количеством бит, необходимым для кодирования i-го события, является ''энтропия'' <math>P_i</math>, обозначаемая как <math>H(P_i) = \sum_{k = 1}^n -p_{i, k} \; log_2 \; p_{i, k}</math> | Требуется: найти сокращенное кодирование событий, которое может быть декодировано для восстановления точной исходной последовательности событий. | ||
Цель заключается в достижении оптимальной или близкой к оптимальной длины кодирования. Шеннон [10] доказал, что наименьшим возможным ожидаемым количеством бит, необходимым для кодирования i-го события, является ''энтропия'' <math>P_i</math>, обозначаемая как <math>H(P_i) = \sum_{k = 1}^n -p_{i, k} \; log_2 \; p_{i, k}</math> | |||
где <math>p_{i, k}</math> – вероятность того, что в качестве i-го события произойдет <math>e_k</math>. Для кодирования события, вероятность наступления которого равна p, оптимальный код выдает <math>- log_2 \; p</math> бит. | где <math>p_{i, k}</math> – вероятность того, что в качестве i-го события произойдет <math>e_k</math>. Для кодирования события, вероятность наступления которого равна p, оптимальный код выдает <math>- log_2 \; p</math> бит. | ||
правка