Ентропійне кодування
З Вікіпедії, безкоштовно encyclopedia
Ентропі́йне кодува́ння — кодування послідовності значень з можливістю однозначного відновлення з метою зменшення обсягу даних (довжини послідовності) за допомогою усереднення ймовірностей появи елементів у закодованій послідовності.
Передбачається, що до кодування окремі елементи послідовності мають різну ймовірність появи. Після кодування в результуючій послідовності ймовірності появи окремих символів практично однакові (ентропія на символ максимальна).
Розрізняють декілька варіантів кодів:
- Зіставлення кожному елементу вхідної послідовності різного числа елементів результуючої послідовності. Чим більше імовірність появи вхідного елемента, тим коротше відповідна результуюча послідовність. Прикладом можуть служити код Шеннона — Фано, код Хаффмана.
- Зіставлення кількох елементів вхідної послідовності фіксованого числа елементів кінцевої послідовності. Прикладом є код Танстола.
- Інші структурні коди, засновані на операціях з послідовністю символів.
Прикладом є кодування довжин серій. Якщо приблизні характеристики ентропії потоку даних попередньо відомі, може бути корисний простіший статичний код, як-от Унарне кодування, гамма-код Еліаса, код Фібоначчі, код Голомба або кодування Райса.
Згідно з теоремою Шеннона, існує межа стиснення без втрат, що залежить від ентропії джерела. Чим більш передбачувані одержувані дані, тим краще їх можна стиснути. Випадкова незалежна рівноймовірна послідовність стисненню без втрат не піддається.