Ентропійне кодування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Ентропі́йне кодува́ння - кодування послідовності значень з можливістю однозначного відновлення з метою зменшення обсягу даних (довжини послідовності) за допомогою усереднення ймовірностей появи елементів у закодованій послідовності.

Передбачається, що до кодування окремі елементи послідовності мають різну ймовірність появи. Після кодування в результуючій послідовності ймовірності появи окремих символів практично однакові (ентропія на символ максимальна).

Розрізняють декілька варіантів кодів:

  • Зіставлення кожному елементу вихідної послідовності різного числа елементів результуючої послідовності.
    Чим більше вірогідність появи вихідного елемента, тим коротше відповідна результуюча послідовність. Прикладом можуть служити код Шеннона - Фано, код Хаффмана
  • Зіставлення кількох елементів вихідної послідовності фіксованого числа елементів кінцевої послідовності.
    Прикладом є код Танстола.
  • Інші структурні коди, засновані на операціях з послідовністю символів.
    Прикладом є кодування довжин серій.

Якщо приблизні характеристики ентропії потоку даних попередньо відомі, може бути корисний більш простий статичний код, такий як Унарне кодування, гамма-код Еліаса, код Фібоначчі, код Голомба або кодування Райса.

Згідно з теоремою Шеннона, існує межа стиснення без втрат, що залежить від ентропії джерела. Чим більш передбачувані одержувані дані, тим краще їх можна стиснути. Випадкова незалежна рівноймовірна послідовність стисненню без втрат не піддається.[1]

Примітки[ред.ред. код]

Див. також[ред.ред. код]