- •Що таке економне кодування інформації? з якою метою воно здійснюється? Які існують способи задання кодів?
- •Що таке рівномірні й нерівномірні коди? з якою метою використовуються оптимальні нерівномірні коди?
- •Що таке надлишковість коду? Як вона визначається?
- •4. Учомуполягає принцип кодування з перевіркою на парність? Яка надлишковість коду? у чомупереваги та недолікикодування?
- •5. Щотакетвірнаматрицялінійногоблокового коду? Якіїївластивості? Яка структура твірноїматриці?
- •6. Щотакеоптимальнекодуванняінформації? Якийкритерійоптимальностістатистичнихкодів?
- •7. Які існують класи завадостійких кодів? Які коди належать до блокових завадостійких кодів? в яких випадках їх доцільно використовувати?
- •8. Які коди належать до завадостійких? Якими загальними властивостями вони характеризуються? Для чого в завадостійкі коди вводиться надлишковість?
- •9. Які коди називаються префіксними? Що таке вектор Крафта? Як записується нерівність Крафта? у чому полягає умова оптимальності префіксних кодів?
- •11.У чомуполягає алгоритм побудовиоптимального коду Шеннона-Фано?
- •12. У чому полягає алгоритм побудови оптимального коду Хаффмена?
- •13 Які необхідна і достатня умови існування завадостійкого коду?
- •14 Які існують способи задання лінійних блокових кодів? Які основні частини мають кодові слова лінійного блокового коду?
- •15 Які коди належать до лінійних блокових кодів? Які коди мають властивість систематичності?
- •16 Що таке система перевірних рівнянь лінійного блокового коду?
- •17 Що таке перевірна матриця лінійного блокового коду? Які її властивості? Яка структура перевірної матриці?
- •18 Як, скориставшись перевірною матрицею, побудувати систему перевірних рівнянь лінійного блокового коду?
- •19. Що таке кодовий синдром лінійного коду? Як він визначається?
- •20. У чому полягає алгоритм кодування циклічним кодом? Що таке перевірний поліном циклічного коду? Які його властивості?
- •21. Яким чином виявляються помилки поліноміальним кодом? в яких випадках помилки залишаються не знайденими?
- •22 Як побудувати твірну матрицю лінійного блокового коду із заданими характеристиками?
- •23 Які коди називаються блоковими? Що таке порядок блокового коду?
- •24 Які коди називаються поліноміальними?
- •25. Які поліноміальні коди називаються циклічними? Які їх властивості?
- •26. У чому полягає відмінність блокових і згорткових кодів?
- •27. У чому полягає метод блокування повідомлень? Як будується блоковий код Хаффмена?
- •Адаптивний алгоритм хаффмена з упорядкованим деревом
- •28.Які лінійні блокові коди називаються кодом Хеммінга? Як знаходиться кількість інформаційних і перевірних символів для коду Хеммінга? Як утворюються кодові слова коду Хеммінга?
- •29.Як складається перевірна та твірна матриці коду Хеммінга?
- •30.Як виконується декодування коду Хеммінга?
- •31. Як визначаються основні арифметичні операції над поліномами в полі двійкових символів gf(2)?
- •32. Як визначається поліном синдрому для циклічних кодів?
- •33. Як виявляються і виправляються помилки циклічним кодом?
- •34. Як визначаєтьсядовжинакомбінації у двійковихкодах бчх?
- •35. Як побудувати твірну матрицю коду бчх
- •36. Як визначаєтьсямінімальнакількістьперевірнихсимволів для лінійногоблокового коду іззаданими характеристиками?
- •37 Як побудувати твірну та перевірну матриці циклічного коду?
- •38 Яким чином за допомогою кодового синдрому виявляються та виправляються помилки лінійним блоковим кодом?
- •39 Як записуються необхідна і достатня умови виявлення лінійним блоковим кодом помилок заданої кратності?
- •40. Як побудувати твірну матрицю поліноміального коду?
- •41. Як записуються необхідна і достатня умови виправлення лінійним блоковим кодом помилок заданої кратності?
- •42. Який канал передачі інформації описується моделлю двійкового симетричного каналу?
- •43 Як визначається вектор помилок у двійковому каналі зв'язку? у чому полягає задача декодування переданого кодового слова?
- •44 Яку властивість має кодовий синдром прийнятої кодованої послідовності? у яких випадках синдром не дозволяє знайти помилки у переданій послідовності?
- •45 Яке кодування інформації називається статистичним? Які алгоритми стиснення даних відносять до статистичних?
- •46. За якими ознаками класифікують системи й методи стиснення даних?
- •47. Чим визначається верхня границя стиснення інформації? Які існують границі стиснення при використанні оптимального кодування Шеннона-Фано і Хаффмена?
- •48. Які переваги та недоліки використання оптимального кодування Шеннона-Фано і Хаффмена?
- •49 Які системи характеризуються стисненням без втрат інформації? Які основні елементи вони включають?
- •50 У чому полягає арифметичний алгоритм кодування інформації? Які його переваги в порівнянні з іншими статистичними методами стиснення інформації?
- •51 Як здійснюється декодування даних за арифметичним алгоритмом?
- •.У чому полягає основна ідея словникових методів стиснення інформації? у чому переваги використання словникових методів у порівнянні із статистичними? (ст.104)
- •Які основні елементи включає система стиснення інформації? Які функції вони виконують?
- •На які основні групи поділяються словникові алгоритми стиснення? Які їх характерні риси? (ст.104)
- •55 .У чому полягають словникові методи стиснення з використанням «ковзного» вікна lz77, lzss? Чим визначається довжина кодів цих алгоритмів?
- •56 Які переваги модифікованого алгоритму lzss у порівнянні з lz77?
- •57 У чому полягають словникові методи стиснення lz78, lzw? Чим визначається довжина кодів для цих алгоритмів? Які переваги модифікації lzw?
- •58 У чому полягає метод стиснення інформації способом кодування серій (алгоритм rle)
- •59 ЯкінедолікисловниковихалгоритмівLz77, lzss?
- •60 ЯкіперевагиалгоритмівLz78, lzw у порівнянні з lz77, lzss?
- •61 Якісистемихарактеризуютьсястисненнямізвтратамиінформації? у чомурізниця систем ізвтратами й без втратінформації?
- •62 У чому суть дискретного косинус-перетворення у стисканні зображень?
- •63 Яку функцію покладено на етап квантування у алгоритмі jpeg?
46. За якими ознаками класифікують системи й методи стиснення даних?
47. Чим визначається верхня границя стиснення інформації? Які існують границі стиснення при використанні оптимального кодування Шеннона-Фано і Хаффмена?
48. Які переваги та недоліки використання оптимального кодування Шеннона-Фано і Хаффмена?
До оптимальних методів статистичного кодування повідомлень належать алгоритми Шеннона-Фано і Хаффмана. Ці алгоритми є найпростішими методами стиснення інформації і належать до так званих кодів без пам'яті, що не враховують значення попередніх символів.
Розглянемо алгоритми побудови оптимальних кодів Шеннона-Фано і Хаффмена.
Метод Шеннона-Фано. Значення д. в. в. розміщуються у порядку спадання ймовірностей. Потім уся сукупність розділяється на дві приблизно рівні за сумою ймовірностей частини: до коду першої частини додається 0, а до коду другої - 1. Кожна з частин за тим самим принципом знову розділяється (якщо це можливо) на дві частини і т.д.
Приклад 3 Побудуємо таблицю кодів за методом Шеннона-Фано для повідомлень, заданих розподілом ймовірностей (табл. 2.2).
Середня довжина коду
(біт/сим).
Надлишковість коду
,
тобто на порядок менше, ніж для
рівномірного кодування (приклад
1).
Метод Хаффмана. Код будується за допомогою бінарного дерева. Ймовірності д. в. в. розміщуються у спадному порядку і приписуються листю кодового дерева. Величина, що приписується вузлу дерева, називається його вагою. Два листи або вузли з найменшими значеннями ваги утворюють батьківський вузол, вага якого дорівнює сумарній вазі вузлів, що його складають. Надалі цей вузол враховується нарівні з вершинами, що залишилися, а листя або вузли, що його утворили, більше не розглядаються. Після побудови кореня кожна визначена гілка, що виходить з батьківського вузла, позначається 0 (як правило, якщо це ліва гілка) або 1 (права гілка). Коди значень д. в. в. – це послідовності 0 і 1, що утворюються, на шляху від кореня кодового дерева до листа із заданою імовірністю д. в. в.
Звернемо увагу, що для кодів Хаффмена і Шеннона-Фано середня кількість бітів на одне елементарне повідомлення хi наближається до ентропії джерела Н(Х), але не може бути менше. Такий висновок є наслідком теореми кодування джерела у відсутності шуму3:
Будь-яке джерело дискретних повідомлень можна закодувати двійковою послідовністю з середньою кількістю двійкових символів (бітів) на одне елементарне повідомлення, скільки завгодно близькою до ентропії джерела Н(Х), і неможливо досягти середньої довжини коду, меншої за Н(Х).
Недоліки алгоритмів Шеннона-Фано і Хаффмена:
1 Необхідність побудови таблиці ймовірностей для кожного типу даних, що стискаються. Цей недолік неістотний, якщо стисненню підлягає російський або англійський текст. Проте в загальному випадку, коли імовірність символів невідома, ці алгоритми реалізуються в два проходи: у перший здійснюється збирання частот символів, оцінка їхніх ймовірностей і складання таблиці кодів, другий - використовується саме для стиснення.
2 Необхідність зберігання (передачі) таблиці кодів разом із стисненим повідомленням, що знижує ефект стиснення.
3 Мінімальна довжина кодових слів не може бути менше одиниці, тоді як ентропія повідомлень може бути близькою до нуля. У цьому випадку оптимальні методи кодування виявляються істотно надмірними. Цей недолік долається використанням алгоритму до блоків символів, але при цьому ускладнюється процедура кодування/ декодування і значно розширюється таблиця кодів.
4 Найкращий ефект стиснення досягається тільки у випадку, коли імовірності символів є цілими від'ємними степенями двійки, тобто 1/2, 1/4, 1/8, 1/16 і т.д. На практиці такі ситуації досить рідкі або можуть бути штучно створені розбиттям повідомлень на блоки різної довжини і кодуванням цих блоків, розглядаючи їх як одиниці повідомлення, що викликає відповідне ускладнення алгоритму.
Стиснення даних не може бути більше деякої теоретичної границі. теорема Шеннона про кодування каналу без шуму встановлює верхню границю стиснення інформації як ентропію джерела H(X).
Позначимо через L(X) функцію, що повертає довжину коду повідомлень
L(X)=len(code(X)),
де code(X) кожному значенню X ставить у відповідність деякий бітовий код; len( ) - повертає довжину цього коду.
Оскільки L(X) - функція від д. в. в. X, тобто також є д. в. в., то її середнє значення обчислюється як математичне сподівання:
. (2.3)
Наслідком теореми Шеннона про кодування джерела у відсутності шуму є те, що середня кількість бітів коду, що припадає на одне значення д. в. в., не може бути менше її ентропії, тобто
(2.4)
для будь-якої д. в. в. X і будь-якого її коду.
Нехай
-
вектор даних завдовжки n;
- вектор частот символів у
.
Тоді середня кількість бітів коду на
одиницю повідомлення
обчислюється
так:
, (2.5)
де
- довжина коду повідомлення
:
;
- вектор Крафта для
.
Ентропія повідомлення обчислюється так:
.
(2.6)
,
визначає верхню границю стиснення даних.
.
Таким чином, границі стиснення інформації при оптимальному статистичному кодуванні визначаються так:
.
