Кодирование и сжатие информации
Понятие кодового слова. Сравнительный анализ построения оптимального (с минимальным значением средней длины кодового слова) префиксного кода для дискретных источников информации со свойством однозначного декодирования методами Шеннона-Фено и Хаффмана.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 21.10.2013 |
Размер файла | 51,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Тема: Кодирование и сжатие информации
В этом разделе будут рассмотрены два метода построения оптимального неравномерного кода: Шеннона-Фено и Хаффмана для дискретного ансамбля {Х,р(х)}, а также будет проведен их сравнительный анализ.
Оба метода Шеннона-Фено и Хаффмана предназначены для получения оптимального (т.е. кода с минимальным значением средней длины кодового слова) префиксного кода для дискретных источников информации со свойством однозначного декодирования.
Префиксный код -- набор кодовых слов, в котором ни одно кодовое слово не похоже на начало любого другого. Именно этим и достигается условие однозначной декодируемости.
1. Лабораторная работа № 1. Кодирование информации методом Шеннона-Фено
1.1 Теоретическая часть
Обозначим через А некоторое множество, состоящее из D, D>1, элементов: А={а1,....,аD}.
Назовём его алфавитом кода источника. Элементы множества А будем называть кодовыми символами. Последовательность кодовых символов называется кодовым словом, а любое семейство кодовых слов -- кодом над алфавитом А.
Код называется равномерным, если все его слова имеют одинаковую длину m, это число называется длинной кода. Если хотя бы два кодовых слова имеют различные длины, то код называется неравномерным.
Если длина кода m разрядов, то таким двоичным кодом можно представить максимум 2m различных слов. Если все разряды слова служат для представления информации, то код называется простым (неизбыточным). Коды, в которых лишь часть кодовых слов используется для представления информации, называются избыточными. Часть слов в избыточных кодах является запрещённой, и появление таких слов при передаче информации свидетельствует о наличии ошибки.
Принадлежность слова к разрешённым или запрещённым словам определяется правилами кодирования, и для различных кодов эти правила различны.
Кодовым расстоянием между двумя словами называется число разрядов, в которых символы слов не совпадают. Если длина слова т, то кодовое расстояние может принимать значение от 1 до т.
Минимальным кодовым расстоянием кода называется минимальное расстояние между двумя любыми словами данного кода. Если имеется хотя бы одна пара слов, отличающихся друг от друга только в одном разряде, то минимальное кодовое расстояние данного кода равно 1. Неизбыточный код имеет минимальное расстояние dmin = 1. Для избыточных кодов dmin > 1.
1.2 Метод Шеннона-Фено
Алгоритм Шеннона-Фено состоит из двух следующих этапов:
1) Подразделить множество сообщений на D подмножеств (по числу слов кодового алфавита), так, чтобы вероятности каждого из подмножеств были примерно одинаковыми, произвольным образом пронумеровать подмножества. Для всех сообщений из i -го подмножества, i = 1,2,...,D, положить первый символ кодовых слов равным аi A, где А={а1,....,аD}.
2) Каждое из подмножеств рассматривается как некоторое новое множество сообщений. Выполнить на j-ом шаге j=2,3,..., действия указанные в п.1 для определения j-го символа кодовых слов. Считать, что действия над данным подмножеством закончены, если оно содержит одно сообщение.
По завершении работы данного алгоритма будет получен префиксный неравномерный код. Кодовые слова в данном коде будут содержать D различных символов, так как кодовый алфавит состоит из D различных символов.
Рассмотрим этот алгоритм на конкретном примере для ансамбля Х содержащего всего 6 сообщений с вероятностями 0,35 0,2 0,2 0,1 0,08 0,07 соответственно. Будем рассматривать наиболее простой случай, когда кодирующий алфавит состоит всего из двух кодовых символов: 1 и 0.
Для наглядности заполним таблицу, столбцы которой соответствуют шагу алгоритма и содержат очередной кодовый символ.
На первом этапе исходное множество разделится на два подмножества с вероятностями 0,55 и 0,45 соответственно, всем элементам из первого множества в качестве первого символа соответствующего им кодового слова будет записана 1, а всем элементам второго подмножества 0. Затем на втором шаге первое подмножество разделится еще на два подмножества, состоящих из одного элемента, для которых будет повторена эта же операция. Второе подмножество, полученное на первом этапе, будет разделено на множество из одного элемента и подмножество из двух элементов. В общей сложности работа алгоритма будет продолжаться 4 шага.
1.3 Задание
Выбрав произвольный текст (русский или латинский) объёмом в 5-6 машинописных страниц, подсчитать для каждого символа его частоту вхождения. Вычисление проводить с точностью до 3-го знака после запятой. Закодировать символы кодом Шеннона-Фено. Для полученного кода подсчитать среднюю длину кодового слова и энтропию, приходящуюся на 1 символ. Сравнив их, сделать вывод.
Закодировать сообщения:
1) теория информации;
2) своё сообщение.
Форма отчёта:
1) задание на лабораторную работу;
2) исходный текст;
3) таблица соответствия кодируемым символам их частот и кодовых слов;
4) закодированные сообщения, энтропия, средняя длина кодового слова.
2. Лабораторная работа №2. Кодирование информации методом Хаффмана
2.1 Теоретическая часть
Второй метод, метод Хаффмана, основан на следующем:
Рассмотрим Х', ансамбль, состоящий из М-1 сообщения (х'1, ..., х'M-1) с вероятностями
р(хi), i=1,2,...,М-2
р (х'i) =
р(хM-1)+ р(хM), i = М -1
Любой однозначно декодируемый префиксный код для ансамбля Х' можно превратить в однозначно декодируемый префиксный код для ансамбля Х приписыванием к кодовому слову, кодирующему сообщение х'M-1, символы 0, 1 для получения слов, кодирующих сообщения хM-1, хM. Следовательно, задача построения оптимального префиксного кода сводится к задаче построения оптимального префиксного кода для ансамбля, содержащего на одно сообщение меньше. В этом ансамбле снова можно выделить два наименее вероятных сообщения и, объединяя их, получить новый ансамбль, содержащий теперь уже на два сообщения меньше, чем исходный. Очевидно, что таким образом рано или поздно возникнет ситуация, когда в ансамбле останется всего два слова, оптимальным кодом, для которого является 0 для одного и 1 для другого.
Рассмотрим пример, приведенный в лабораторной работе №1. Для наглядности метод кодирования Хаффмана изображается в виде бинарного дерева. Дерево получается путем последовательного объединения двух минимальных вероятностей в одну и повторения данного действия до тех пор, пока исходное множество вероятностей не сведется к одному элементу.
Кодовая последовательность восстанавливается по следующему правилу: за начальное положение принимается вершина дерева. При движении от вершины в крайней ветви дерева в качестве очередного кодового сообщения выписывается (например) 0, если произошло смещение влево и 1 при смещении вправо. Для указанного примера получим следующее дерево:
2.2 Задание
префиксный код хаффман шеннон фено
Закодировать символы текста из лабораторной работы №1 кодом Хаффмана. Подсчитать среднюю длину кодового слова для полученного кода. Сравнить её с энтропией, приходящейся на один символ и со средней длиной кодового слова кода Шеннона-Фена. Сделать вывод. Закодировать те же сообщения, что и в лабораторной работе №1. Сравнив с кодом Шеннона-Фено, сделать вывод.
Форма отчёта:
1) задание на лабораторную работу;
2) кодовое дерево;
3) таблица соответствия кодируемым символам их частот и кодовых слов;
4) закодированные сообщения, энтропия, средняя длина кодового слова.
Размещено на Allbest.ru
...Подобные документы
Анализ эффективности способов кодирования. Средний размер одного разряда и средняя длина кодового слова. Кодирование по методу Хаффмена. Кодирование информации по методу Шенона-Фано. Построение кодового дерево для различных методов кодирования.
контрольная работа [491,4 K], добавлен 15.10.2013Типы сжатия данных: с потерями (lossy) и без потерь (lossless). Сжатие с минимальной избыточностью. Кодирование методом Шеннона-Фано. Проверка работы программы по сжатию файлов формата bmp и xls. Реализация на Delphi алгоритма сжатия Шеннона и Хаффмана.
курсовая работа [2,6 M], добавлен 26.01.2011Общее число неповторяющихся сообщений. Вычисление скорости передачи информации и пропускной способности каналов связи. Определение избыточности сообщений и оптимальное кодирование. Процедура построения оптимального кода по методике Шеннона-Фано.
курсовая работа [59,4 K], добавлен 17.04.2009Описание и особенности некоторых алгоритмов архивации. Построение кода Хаффмана. Динамический алгоритм построения кода Хаффмана. Обратное восстановление текста. Способы двухступенчатого кодирования информации. Практическая реализация алгоритма LZ77.
курсовая работа [51,7 K], добавлен 24.12.2012Определение понятий кода, кодирования и декодирования, виды, правила и задачи кодирования. Применение теорем Шеннона в теории связи. Классификация, параметры и построение помехоустойчивых кодов. Методы передачи кодов. Пример построения кода Шеннона.
курсовая работа [212,6 K], добавлен 25.02.2009Изучение методов кодирования Хаффмана, Фано. Модель информационной системы Шеннона. Среднестатистическая информационная емкость сообщений для эргодических источников с заданным распределением частот символов. Формулы Хартли для удельной емкости на символ.
презентация [528,9 K], добавлен 19.10.2014Обзор существующих программ сжатия данных без потерь. Анализ методов сжатия: алгоритмов группы, KWE, Lossless JPEG, кодирование Хаффмана. Обзор составляющих компонентов. Разработка кода программы-архиватора, работающей на основе алгоритма Хаффмена.
курсовая работа [487,3 K], добавлен 14.07.2011Аналоговое и цифровое представление информации. Понятие, классификация и характеристика методов сжатия данных: алгоритмы одно- и двухпараметрической адаптации, линейной экстра- и интерполяции. Кодирование информации и вычисление циклического кода.
курсовая работа [157,4 K], добавлен 07.12.2012Определение среднего количества информации. Зависимость между символами матрицы условных вероятностей. Кодирование методом Шеннона–Фано. Пропускная способность канала связи. Эффективность кодирования сообщений методом Д. Хаффмана, характеристика кода.
контрольная работа [94,6 K], добавлен 04.05.2015Системы сбора и передачи информации. Обоснование выбора кода, способа передачи и синхронизации. Выбор длины посылки, формата кодового перехода. Расчет помехоустойчивости и времени запаздывания. Разработка структурной схемы передающего устройства.
курсовая работа [412,8 K], добавлен 24.06.2013Задачи обработки и хранения информации при помощи ЭВМ. Сжатие и кодирование информации в информационно-вычислительных комплексах. Метод Лавинского как простейший метод сжатия информации (числовых массивов) путем уменьшения разрядности исходного числа.
курсовая работа [66,0 K], добавлен 09.03.2009Генерация порождающего полинома для циклического кода. Преобразование порождающей матрицы в проверочную и обратно. Расчет кодового расстояния для линейного блокового кода. Генерация таблицы зависимости векторов ошибок от синдрома для двоичных кодов.
доклад [12,6 K], добавлен 11.11.2010Особенности кодирования информации с помощью метода Хаффмана. Реализация кодера и декодера с использованием статического алгоритма Хаффмана. Структура программы, оценка ее эффективности (степени сжатия) в зависимости от типа и размера сжимаемых файлов.
курсовая работа [136,2 K], добавлен 15.06.2013Характеристика, механизм и назначение кодового и фазового метода определения дальностей. Их сравнительный анализ и значение при различных способах позиционирования. Особенности применения при измерениях кодового и фазового методов определения дальностей.
курсовая работа [79,4 K], добавлен 25.12.2012Сущность линейного и двухмерного кодирования. Схема проверки подлинности штрих-кода. Анализ способов кодирования информации. Расчет контрольной цифры. Штриховое кодирование как эффективное направление автоматизации процесса ввода и обработки информации.
презентация [1,1 M], добавлен 05.10.2014Непрерывная и дискретная информация. Кодирование как процесс представления информации в виде кода. Особенности процедуры дискретизации непрерывного сообщения. Позиционные и непозиционные системы счисления. Представление информации в двоичном коде.
реферат [117,3 K], добавлен 11.06.2010Общее понятие архивации. Особенности программ архиваторов. Основные методы сжатия информации. Методические основы изучения темы "Архивация данных и сжатие информации" на уроках информатики в базовом курсе. Разработка блока уроков по сжатию информации.
курсовая работа [3,0 M], добавлен 03.06.2012Описание метода сжатия информации на основе двоичных кодирующих деревьев Хаффмана. Среда разработки Delphi версии 7.0. Понятия объектно-ориентированного программирования. Программа, разработанная в Delphi. Реализация на Delphi метода кодирования Хаффмана.
курсовая работа [2,1 M], добавлен 26.03.2013Понятие и отличительные черты аналоговой и цифровой информации. Изучение единиц измерения цифровой информации: бит (двоичная цифра) и байт. Особенности передачи, методы кодирования и декодирования текстовой, звуковой и графической цифровой информации.
реферат [479,4 K], добавлен 22.03.2010Лічильником є послідовностний цифровий автомат, що забезпечує збереження кодового слова і виконання над ним операції рахування, яка полягає у зміні значення числа С у лічильнику на задану константу: мікрооперація С:=С+1 - додаюча, а С:=С-1 - віднімаюча.
лекция [183,2 K], добавлен 13.04.2008