Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты ОИТ.docx
Скачиваний:
192
Добавлен:
26.03.2015
Размер:
807.27 Кб
Скачать

17 Сжатие и распаковка информации по методу Шеннона-Фано.

Относится к статистическим (вероятностным) методам. Имеет две разновидности:

– статический; – динамический.

Статический предусматривает (вне зависим. от V сжимаемого документа или файла) использование априорной информации о вероятностных свойствах всех символов алфавита, на основе кот. м. б. создан произвольный документ. Символы этого документа сортируются в порядке убывания вероятности. Отсортированный массив символов исходного алфавита заменен бинарными последовательностями различной длины. Эти бинарные последовательности замещают каждый символ сж. текста и, наоборот, при распаковке. Т. о. важная задача – генерация (выработка) бинар. посл-ти.

Алгоритм генерации последовательностей (прямое преобразование) заключается в замене каждого символа соответствующим бинарным кодом:

1. Весь массив делится на 2 подмассива таким образом, чтобы сумма вероятностей в каждом подмассиве имела наименьшую разность. Каждому из символов обоих подмассивов приписываются старшие символы бинарного кода: 1 – первый подмассив, 0 – второй.

2. Делению подвергается каждый из подмассивов с приписыванием очередных символов бинарного кода, как и на предыдущем шаге. Деление продолжается до тех пор, пока каждый из конечных подмассивов не будет содержать только 1 символ алфавита.

Пример:

Сортировка

1

1

1

0

1

1

0

0

0

1

1

0

1

0

0

0

1

1

0

0

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

Как видно символам с наименьшей вероятностью соответствуют коды наибольшей длины, а с наибольшей вероятностью – наименьшие.

Сформированные бинарные коды должны отвечать следующим условиям:

1) все коды должны быть уникальными;

2) должно выполняться свойство префикса: ни один произвольный код меньшей длины не может быть началом произвольного кода большей длины.

Как видно, могут существовать различные (равнозначные) варианты разделения массива. Различные разделения будут соответствовать различные варианты кодов. Наилучший из возможных является тот вариант, которому соответствует наименьшее значение интегрального коэффициента С:

, где – вероятн. в соотв. с таблицей;li – длина кода.

Коэффициент С показывает среднее кол-во bit в сформировавшихся бинар. последовательностях, приходящихся на один символ алфавита А.

Алгоритм обратного преобразования (распаковки) наоборот, т.е. компрессор и декомпрессор должны пользоваться одинаковой таблицей код-символов и наоборот.

В этом процессе на выходе должны быть символы сообщения на основе исходного алфавита А. при этом важны два параметра: lmin, lmax.

Первый шаг: анализируется lmin первых символов в последовательности Yn2 на предмет их соответствия каких-либо из комбинаций в таблице. Если соответствие найдено, то на выходе преобразователя будет символ аi. Если не найдено – второй шаг: кол-во анализируемых символов увеличивается на 1 и выполняется процедура первого шага. Если на каком-либо шаге находится соответствие, то анализу подвергаются следующая lmin символов. Если ни на каком из шагов не найдено соответствие, то производится анализ последовательности: lmin+(i-1) = lmax. Если на этом i-том шаге не найдено соответствие, то либо работа преобразования закончена и принято решение, либо принято какое-либо другое решение.

Динамический метод или адаптивный метод: частота появления символов все время меняется и по мере считывания нового блока данных происходит перерасчет начальных значений частот.

Статические методы характеризуются хорошим быстродействием и не требуют значительных ресурсов оперативной памяти. Они нашли широкое применение в многочисленных программах-архиваторах, например ARC, PKZIP и др., но для сжатия передаваемых модемами данных используются редко — предпочтение отдается арифметическому кодированию и методу словарей, обеспечивающим большую степень сжатия.

17 Сжатие и распаковка информации по методу Шеннона-Фано. (а/в)

1. статические (д/ любого произвольн. док-та исп-ся неизмен. статистич. св-ва символов алфавита): а) метод Хафмона; б) мет. Шеннона-Фано (все символы алф. сортируются в порядке ↓ вероятности. Сортирован массив дел-ся на 2 части так, чтобы Σ вер-тей в кажд. из образован. подмассивов была max возможно близкой (0,5). Символам из каждого подмассива присваив-ся старшие символы бинарн. кода: один подмассив – 1, другой – 0. Кажд. из 2 подмасс. дел-ся опять на 2 на том же усл-ии. Процесс разделения массивов продолж. до те пор, пока массив не б. состоять т. из 1 симв. исходн. алфавита. Т.обр. созд. бинарн. коды, соотв. кажд. символу исходн. алфавита. Осн. цель — приписать символам с > вер-ю коды < длины и наоборот). Прямое преобраз-е — замена симв. сообщ-я хк соотв. бинарн. кодом. Обратное — обратная замена. Коды д. соотв. 2 требованиям: 1. они все д. б. различны; 2. любая кодовая комбинация < длины не м.б. началом любой комбинации > длины; 2. динамические (адаптивные) (предполаг. опред-е статист. св-в символов алф. д/ групп док-тов или д/ кадого док-та). Напр., хk= ‘информационный’, Σ=14 симв., Nи=2, Pи=2/14, Nн=3, Pн= 3/14. Р всех остальн. символов, не € в это сооб., = 0.

Пример исп-я мет. Шен.-Фано д/ сжатия данных

Пусть задан алф. р (аi), А={аi}, i=1,8, N=8. Σ р (аi)=1.

1. р (а1)=0,10

р (а2)=0,15

р (а3)=0,08

р (а4)=0,30

р (а5)=0,06

р (а6)=0,14

р (а7)=0,09

р (а8)=0,08

2. Сортируем от max к min

р (а4)=0,30

0,45

1

1

р (а2)=0,15

1

0

р (а6)=0,14

0,55

0

1

1

р (а1)=0,10

0

1

0

р (а7)=0,09

0

0

1

1

р (а8)=0,08

0

0

1

0

р (а3)=0,08

0

0

0

1

р (а5)=0,06

0

0

0

0

Эта табл. д.б. известна передающ. и принимающ. сторонам и д.б. неизмен.

3. Мет. Хаф. и Шен.-Фано после сортировки предусматривают генерацию бинарных последовательностей, кот. будут замещать символы исходн. алф. в сообщ. хк. Мет. Шен.-Фано предусм. генерацию бинарн. послед-тей на осн. след. алгоритма: отсортирован. множество символов дел-ся на 2 подмножества так, чтобы Σ вер-тей в кажд. из подмножеств отлич. на min возможн. величину.

Обратн. преобраз. предусматр. замену. lmin=2, lmax=4. На 1 шаге осущ. анализ первых lmin символов — 00. Если совпад. найдено, то на вых. формир-ся соотв. символ исходн. алфавита а; если не найдено — lmin + 1 из первых символов анализир-ся. Совпад. м.б. и найдено, и нет. Если нет — ещё +1 и т.д. Анализ — до тех пор, пока группу анализа не б. составл. интервал длиной lmax. Если совпад. найдено — замена этих 01 на символ и тд. Если в конце концов нет → ошибка в составлении кодировки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]