Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Метод кодування Хаффмана

Реферат Метод кодування Хаффмана





e (f, 'табліца.txt'); (f); i: = 1 to krs do (f, s [i], '', inttostr (c [i]));

closefile (f);

Тепер, коли дерево створено, можна обчислити коди (бітові ланцюжка для кодування вихідних чисел) і закодувати дані. Спираючись на малюнок 8, потрібно усвідомити, що обчислення коду числа починається від кореня дерева. Для обчислення коду, необхідно, рухаючись по дереву від кореня до числа у вихідній таблиці, підрахувати число пройдених вузлів. Це значення дорівнюватиме довжині бітової ланцюжка коду. І простежити для кожного вузла повороти, якщо поворот у вузлі здійснюється наліво, то в ланцюжку бітів встановлюється значення 0, якщо направо - 1. br/>В 

Рисунок 8 - Остаточне дерево кодування Хаффмана


Тривалість передачі кожного окремого коду ti, очевидно, може бути знайдена таким чином: ti = ki , де ki - кількість елементарних сигналів (біт) в коді символу i. Згідно з наведеними вище правилами отримуємо наступну таблицю кодів:


А01Б100В101Г110Д111 Рисунок 9 - Кодування символів


Розглянемо опис процедури кодування:

for i: = 1 to krs do to krs dorod [i] = r1 then begin [i]: = '1 '+ kod [i]; [i]: = r2; rod [i] = r2 then kod [i]: = '0' + kod [ i]; [n2]: = c [n2] + c [n1];: = kvo-1; kvo = 1; i: = 1 to length (s1) doj: = 1 to krs do begins1 [i] = s [j] then s2: = s2 + kod [j];;

Отриманий результат записується в полі memo2:

Form1.memo2.text: = s2;

На малюнку 10 показано, що відбудеться при натисканні кнопки В«КодуванняВ».

В 

Рисунок 10 - Кодування вираження


При цьому в кореневій папці програми створюється текстовий файл з назвою В«кодуванняВ», в якому відображається розрахована таблиця частот. У програмі це описано наступним чином:

assignfile (ff, 'кодіровка.txt'); (ff);

writeln (ff, s2); (ff);

Отже, нам вдалося стиснути вираз, де вартість зберігання вхідного потоку дорівнює 312біт в 87 біт.

У додатку до програми, була створена кнопка В«очистити всіВ», яка дозволяє очистити таблицю частот, поля memo1 і memo2. Для цього створена кнопка Button3Click. Розглянемо лістинг тег-коду:

for i: = 0 to Form1.ComponentCount-1 do (Form1.Components [i] is TMemo) then (Form1.Components [i] as TMemo). Clear; (Form1.Components [i ] is TEdit) then (Form1.Components [i] as TEdit). Text: ='';; k: = 0 to StringGrid1.RowCount - 1 doj: = 0 to StringGrid1.ColCount - 1 do.Cells [j, k ]: ='';

Таким чином, при натисканні кнопки В«Очистити всеВ» зовнішній вигляд програми ста...


Назад | сторінка 8 з 10 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка програми кодування за алгоритмом Хеммінга
  • Реферат на тему: Прості обчислення і кодування повідомлень
  • Реферат на тему: Коді БЧХ. Алгоритми кодування та декодування
  • Реферат на тему: Коди та кодування інформації. Штрихкодирование
  • Реферат на тему: Коди та пристрої завадостійкого кодування інформації