6.21: Теорема кодування джерела
- Теорема про кодування джерела стверджує, що ентропія алфавіту символів вказує в межах одного біта, скільки бітів в середньому потрібно використовувати для надсилання алфавіту.
Значення ентропії алфавіту полягає в тому, як ми можемо представляти його з послідовністю бітів. Бітові послідовності утворюють «монету царства» в цифрових комунікаціях: вони є універсальним способом подання символічних сигналів. Ми перетворюємо між символами в бітові послідовності з тим, що відомо як кодова книга: таблиця, яка асоціює символи з бітовими послідовностями. Створюючи цю таблицю, ми повинні мати можливість призначити унікальну бітову послідовність кожному символу, щоб ми могли без помилок переходити між послідовностями символів та бітів.
Ви можете викликати поняття приховування інформації від інших, коли ми використовуємо назву кодової книги для таблиці послідовності символів до бітів. Немає ніякого відношення до криптології, яка включає математично доведені методи захисту інформації. Термінологія кодової книги була розроблена під час початку теорії інформації відразу після Другої світової війни.
Як ми детально вивчимо в іншому місці, цифровий зв'язок - це передача символічних сигналів з одного місця в інше. Зіткнувшись з проблемою, наприклад, відправки файлу через Інтернет, ми повинні спочатку представляти кожен символ бітовою послідовністю. Оскільки ми хочемо, щоб відправити файл швидко, ми хочемо використовувати якомога менше бітів. Однак ми не хочемо використовувати так мало бітів, що приймач не може визначити, що кожен символ був з бітової послідовності. Наприклад, ми могли б використовувати один біт для кожного символу: передача файлів була б швидкою, але марною, оскільки кодова книга створює помилки. Шеннон довів у своїй монументальній роботі те, що ми сьогодні називаємо теоремою кодування джерела. Нехай B (a k) позначають кількість бітів, які використовуються для представлення символу a k. Середня кількість бітів,¯B(A) необхідних для представлення всього алфавіту, дорівнює
K∑k=1B(ak)Pr[ak]
Теорема про кодування джерела стверджує, що середня кількість бітів, необхідних для точного представлення алфавіту, потрібно лише задовольнити.
H(A)≤¯B(A)≤H(A)+1
Таким чином, ентропія алфавіту вказує в межах одного біта, скільки бітів в середньому потрібно використовувати для відправки алфавіту. Чим менше ентропія алфавіту, тим менше бітів потрібно для цифрової передачі файлів, виражених у цьому алфавіті.
Чотирисимвольний алфавіт має такі ймовірності.
Pr[a0]=12
Pr[a1]=14
Pr[a2]=18
Pr[a3]=18
і ентропія 1,75 біт. Давайте подивимося, чи зможемо ми знайти кодову книгу для цього чотирилітерного алфавіту, який задовольняє теоремі кодування джерела. Найпростіший код для спроби відомий як простий двійковий код: перетворіть індекс символу в двійкове число і використовуйте однакову кількість бітів для кожного символу, включивши провідні нулі, де це необхідно.
a0↔00a1↔01a2↔10a3↔11
Всякий раз, коли кількість символів в алфавіті дорівнює двом (як у цьому випадку), середня кількість бітів
¯B(A)=log2K
що дорівнює 2 в даному випадку. Оскільки ентропія дорівнює 1.75 біт, простий двійковий код дійсно задовольняє теорему про кодування джерела - ми знаходимося в межах одного біта межі ентропії - але ви можете задатися питанням, чи можете ви зробити краще. Якщо ми виберемо кодову книгу з різною кількістю бітів для символів, то дійсно можна отримати меншу середню кількість бітів. Ідея полягає у використанні коротших бітових послідовностей для символів, які зустрічаються частіше. Одна кодова книга, як це
a0↔0a1↔01a2↔110a3↔111
¯B(A)=1⋅×12+2⋅×14+3⋅×18+3⋅×18=1.75
Ми можемо досягти межі ентропії! Простий двійковий код в даному випадку менш ефективний, ніж код нерівної довжини. Використовуючи ефективний код, ми можемо передати символічно-значний сигнал, який має цей алфавіт на 12,5% швидше. Крім того, ми знаємо, що не можна знайти більш ефективну кодову книгу через теорему Шеннона.