Допоможіть з правильною відповіддю

1.завжди можна запропонувати спосіб кодування, при якому надмірність буде як завгодно малою величиною

2. кодовий знак відноситься відразу до кількох букв первинного алфавіту або навіть до цілого слова первинної мови. Кодування блоків знижує надмірність.

3.при кодуванні за методом Хаффмана — для українського алфавіту надмірність виявилася меншою за 0.01%

4. за методом Хаффмана середня інформація на знак первинного алфавіту виявляється більш ніж 2 рази менше, ніж за рівномірному алфавітному кодуванні.

Кодування Шеннона-Фано (англ. Shannon-Fano coding) — алгоритм префіксного неоднорідного кодування. Належить до ймовірнісних методів стиснення (точніше, методів контекстного моделювання нульового порядку). Подібно до алгоритму Хаффмана алгоритм Шеннона-Фано використовує надмірність повідомлення, укладену в неоднорідному розподілі частот символів його (первинного) алфавіту, тобто замінює коди частіших символів короткими двійковими послідовностями, а коди більш рідкісних символів — довшими двійковими послідовностями.

Основні етапи

  1. Символи первинного алфавіту m 1 виписують у порядку зменшення ймовірностей .
  2. Символи отриманого алфавіту ділять на частини, сумарні ймовірності символів яких максимально близькі одне одному.
  3. У префіксному коді першій частині алфавіту присвоюється двійкова цифра « 0 », другої частини — « 1 ».
  4. Отримані частини рекурсивно діляться та його частинам призначаються відповідні двійкові цифри у префіксному коді.

Коли розмір подалфавіту стає рівним нулю або одиниці, то подальшого подовженняпрефіксного коду для відповідних йому символів первинного алфавіту немає, таким чином, алгоритм присвоює різним символам префіксні коди різної довжини. На кроці поділу алфавіту існує неоднозначність , оскільки різниця сумарних ймовірностей p 0 − p 1 може бути однаковою для двох варіантів поділу (враховуючи , що всі символи первинного алфавіту мають ймовірність велику нуля ).

Алгоритм обчислення кодів Шеннона - Фано

Код Шеннона - Фано будується за допомогою дерева. Побудова цього дерева починається від кореня. Все безліч кодованих елементів відповідає кореню дерева (вершині першого рівня). Воно розбивається на два підмножини з приблизно однаковими сумарними ймовірностями. Ці підмножини відповідають двом вершинам другого рівня, які з'єднуються з коренем. Далі кожна з цих підмножин розбивається на два підмножини з приблизно однаковими сумарними ймовірностями. Їм відповідають вершини третього рівня. Якщо підмножина містить єдиний елемент, йому відповідає кінцева вершина кодового дерева; таке підмножина розбиття не підлягає. Подібним чином чинимо доти, доки не отримаємо всі кінцеві вершини. Гілки кодового дерева розмічаємо символами 1 і 0, як у коді Хаффмана.

При побудові коду Шеннона - Фано розбиття безлічі елементів може бути проведено, взагалі кажучи, декількома способами. Вибір розбиття на рівні n може погіршити варіанти розбиття на наступному рівні (n+1) та призвести до неоптимальності коду загалом. Іншими словами, оптимальна поведінка на кожному кроці шляху ще не гарантує оптимальності всієї сукупності дій. Томукод Шеннона - Фано не є оптимальним у загальному сенсі, хоча і даєоптимальні результати при деяких розподілах ймовірностей. Для того самого розподілу ймовірностей можна побудувати , взагалі кажучи , кілька кодів Шеннона - Фано , і вони можуть дати різні результати . Якщо побудувати всі можливі коди Шеннона - Фано для даного розподілу ймовірностей, то серед них будуть і всі коди Хаффмана, тобто оптимальні коди.

Приклад кодового дерева

A ( частота народження 50 ), B ( частота народження 39 ), C ( частота народження 18 ), D ( частота народження 49 ), E ( частота народження 35 ), F ( частота народження 24 ).

допоможіть
Кодове дерево

A - 11, B - 101, C - 100, D - 00, E - 011, F - 010.

Кодування Шеннона - Фано є досить старим методом стиснення, і на сьогоднішній день воно не становить особливого практичного інтересу. У більшості випадків довжина стиснутої послідовності, за даним методом, дорівнює довжині стиснутої послідовності з використанням кодування Хаффмана. Але на деяких послідовностях все ж таки формуються неоптимальні коди Шеннона - Фано, тому стиснення методом Хаффмана прийнято вважати більш ефективним.

Wikimedia Foundation. 2010 .

Алгоритм Шеннона - Фано Алгоритм Шеннона Фано один з перших алгоритмів стиснення, який вперше сформулювали американські вчені Шеннон і Фано (англ. Fano). Даний метод стиснення має велику схожість з алгоритмом Хаффмана, який з'явився на кілька років.

Код Шеннона-Фано — Алгоритм Шеннона Фано один із перших алгоритмів стиснення, який вперше сформулювали американські вчені Шеннон та Фано. Даний метод стиснення має велику подібність до алгоритму Хаффмана, який з'явився на кілька років пізніше.Алгоритм… … Вікіпедія

Кодування ентропії - кодування словами (кодами) змінної довжини, при якій довжина коду символу має зворотну залежність від ймовірності появи символу в повідомленні. Зазвичай ентропійні кодувальники використовують для стиснення даних коди, довжини яких ... Вікіпедія

Кодування з мінімальною надмірністю — Кодування ентропії кодування словами (кодами) змінної довжини, при якій довжина коду символу має зворотну залежність від ймовірності появи символу в повідомленні. Зазвичай ентропійні кодувальники використовують для стиснення даних.

Кодування довжин серій (англ. Run length encoding, RLE) або Кодування повторів простий алгоритм стиснення даних, який оперує серіями даних, тобто послідовностями, в яких один і той же символ зустрічається кілька разів поспіль. При кодуванні… … Вікіпедія

Кодування Хаффмана - Алгоритм Хаффмана (англ. Huffman) адаптивний жадібний алгоритм оптимального префіксного кодування алфавіту з мінімальною надмірністю. Був розроблений 1952 року доктором Массачусетського технологічного інституту Девідом Хаффманом. В даний час ... Вікіпедія

Шеннона теорема - Теорема Котельникова (в англомовній літературі теорема Найквіста) свідчить, що, якщо аналоговий сигнал x(t) має обмежений спектр, то він може бути відновлений однозначно і без втрат за своїми дискретними відрахунками, взятими з частотою більше… … Вікіпедія

Кодування Голомба — Коди Голомба це сімейство ентропійних кодерів, які є спільним випадком унарного коду. Також під кодом Голомба може матися на увазі один із представників цього сімейства. Код Голомба дозволяє уявити послідовність символів у вигляді… … Вікіпедія

Алгоритм Шеннона Алгоритм Шеннона Фано один з перших алгоритмів стиснення, який вперше сформулювали американські вчені Шеннон і Фано (англ. Robert Fano). Даний метод стиснення має велику подібність до алгоритму Хаффмана, який з'явився на… … Вікіпедія

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