канням в цьому стовпці значення поточного октету. Рядок, в якій знаходиться поточний октет, визначає лексему точно так само, як в описаному вище випадку кодування з використанням коду Хаффмена Після того як кожен октет буде закодований, порядок проходження записів (октетів) у вибраному стовпці змінюється відповідно з новими відносними частотами появи октетів. p> На рис. 5.2 показаний приклад кодування послідовності октетів 3120 в припущенні, що перед цим був переданий октет 0. З рис. 5.2. видно, що в стовпці, відповідному попередньому октету 0, відшукується запис (рядок) октету 3. Після цього передається код Хаффмена для цього запису (октету 3) в таблиці. Далі в стовпці, відповідному цьому щойно переданою октету 3, відшукується рядок із записом наступного октету - в даному випадку октету 1, і передається код Хаффмена для цього рядка і т.д. У цьому прикладі відсутня ілюстрація адаптивної частини алгоритму, изменяющей порядок розташування октетів в кожному стовпці. p>
5.3. Стиснення даних за стандартом V.42bis В даний час методи стиснення даних, включені до протоколи MNP5 і MNP7, цілеспрямовано замінюються на метод, заснований на алгоритмі словникового типу Лемпеля-Зіва-Уелча (LZW-алгоритмі). LZW-алгоритм має дві головні переваги: ​​
Г? забезпечує досягнення коефіцієнта стиснення 4:1 файлів з оптимальною структурою;
Г? LZW-метод затверджений ITU-T як складова частина стандарту V.42bis. . p> Метод стиснення даних LZW заснований на створенні деревовидного словника послідовностей символів, в якому кожній послідовності відповідає єдине кодове слово. Вхідний потік даних послідовно, символ за символом, порівнюється з наявними в словнику послідовностями. Після того, як у словнику буде знайдена кодована послідовність, ідентична вхідний, модем передає відповідне їй кодове слово. Алгоритм динамічно створює і оновлює словник символьних послідовностей. p>В
Розглянемо, наприклад, послідовності А, АУ, БАР, БАС, БІС, КРОК, ШАР і ШУМ. На рис. 5.3 показано, як ці послідовності будуть виглядати у вигляді дерев у словнику стандарту V.42bis. Кожен шлях від кореневого вузла до вершини дерева являє собою послідовність, яка може бути закодована за допомогою одного кодового слова. Наявні послідовності можуть розширюватися до тих пір, поки не буде досягнута їх максимальна довжина. Можна додавати нові послідовності, причому єдиним обмеженням є обсяг використовуваного словника. <В
Рис. 5.3. Приклад структури деревовидного словника послідовностей стандарту V.42bis
Алгоритм стиску, обумовлений стандартом V.42bis, вельми гнучкий. До параметрів, значення яких можуть бути узгоджені між модемами, відносяться: максимальний розмір кодового слова, загальне число кодових слів, розмір символу, число символів в алфавіті і максимальна довжина послідовності. Крім того, алгоритм здійснює моніторинг вхідного та вихідного потоку даних для визначення ефективності стиснення. Якщо стиску не в...