Скачиваний:
20
Добавлен:
03.10.2020
Размер:
960.28 Кб
Скачать

Теорема Шеннона

Эта теорема гласит, что если источник сообщений имеет энтропию Н [бит/символ], а канал обладает пропускной способностью С [бит/сек] (пропускная способность характеризует максимально возможное значение скорости передачи информации), то всегда можно найти способ кодирования, который обеспечит передачу символов сообщения по каналу со средней скоростью где ε — сколь угодно малая величина.

Обратное утверждение говорит, что передача символов сообщения по каналу со средней скоростью Vср. > Н невозможна и, следовательно,

Эта теорема часто приводится в иной формулировке: сообщения источника сообщений с энтропией Н всегда можно закодировать последовательностями элементов кодовых символов с объемом алфавита k так, что среднее число элементов символов кода на один символ кодируемого сообщения (l ср. ) будет сколь угодно близко к величине H / log2 k, но не менее ее.

Отметим, что эта теорема показывает возможность наилучшего эффективного кодирования, при котором обеспечивается равновероятное и независимое поступление элементов символов кода, а следовательно, и максимальное количество переносимой каждым из них информации, равное log2 k (бит/элемент) .

Условие оптимальности кодов

1. Каждый элементарный символ должен переносить максимальное количество информации, для этого необходимо, чтобы элементарные символы (0 и 1) в закодированном тексте встречались в среднем одинаково часто. Энтропия в этом случае будет максимальной.

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

Арифмитическое кодирование

Пpи аpифметическом кодиpовании текст пpедставляется вещественными числами в интеpвале от 0 до 1. По меpе кодиpования текста, отобpажающий его интеpвал уменьшается, а количество битов для его пpедставления возpастает. Очеpедные символы текста сокpащают величину интеpвала исходя из значений их веpоятностей, опpеделяемых моделью. Более веpоятные символы делают это в меньшей степени, чем менее веpоятные, и, следовательно, добавляют меньше битов к pезультату.

Пеpед началом pаботы соответствующий тексту интеpвал есть [0; 1). Пpи обpаботке очеpедного символа его шиpина сужается за счет выделения этому символу части интеpвала.

Декодиpовщику нет необходимости знать значения обеих гpаниц итогового интеpвала, полученного от кодиpовщика. Даже единственного значения, лежащего внутpи него, напpимеp 0.23355, уже достаточно. Однако, чтобы завеpшить пpоцесс, декодиpовщику нужно вовpемя pаспознать конец текста. Кpоме того, одно и то же число 0.0 можно пpедставить и как "a", и как "aa", "aaa" и т.д. Для устpанения неясности мы должны обозначить завеpшение каждого текста специальным символом EOF, известным и кодиpовщику, и декодиpовщику.

Словарное кодирование, алгоритм Лемпеля – Зива –Велча

Процесс сжатия выглядит следующим образом: последовательно считываются символы входного потока и происходит проверка, существует ли в созданной таблице строк такая строка. Если такая строка существует, считывается следующий символ, а если строка не существует, в поток заносится код для предыдущей найденной строки, строка заносится в таблицу, а поиск начинается снова.

Для декодирования на вход подается только закодированный текст, поскольку алгоритм LZW может воссоздать соответствующую таблицу преобразования непосредственно по закодированному тексту. Алгоритм генерирует однозначно декодируемый код за счет того, что каждый раз, когда генерируется новый код, новая строка добавляется в таблицу строк. LZW постоянно проверяет, является ли строка уже известной, и, если так, выводит существующий код без генерации нового. Таким образом, каждая строка будет храниться в единственном экземпляре и иметь свой уникальный номер.

Кодирование

  • Начало.

  • Шаг 1. Все возможные символы заносятся в словарь. Во входную фразу XX заносится первый символ сообщения.

  • Шаг 2. Считать очередной символ YY из сообщения.

  • Шаг 3. Если YY — это символ конца сообщения, то выдать код для XX, иначе:

    • Если фраза XYXY уже имеется в словаре, то присвоить входной фразе значение XYXY и перейти к Шагу 2 ,

    • Иначе выдать код для входной фразы XX, добавить XYXY в словарь и присвоить входной фразе значение YY. Перейти к Шагу 2.

  • Конец.

Декодирование

  • Начало.

  • Шаг 1. Все возможные символы заносятся в словарь. Во входную фразу XX заносится первый код декодируемого сообщения.

  • Шаг 2. Считать очередной код YY из сообщения.

  • Шаг 3. Если YY — это конец сообщения, то выдать символ, соответствующий коду XX, иначе:

    • Если фразы под кодом XYXY нет в словаре, вывести фразу, соответствующую коду XX, а фразу с кодом XYXY занести в словарь.

    • Иначе присвоить входной фразе код XYXY и перейти к Шагу 2 .

  • Конец.

Соседние файлы в папке Нет уверенности, кста купите Аджемова
  • #
    03.10.2020159.57 Кб2011.docx
  • #
    03.10.2020144.8 Кб1512.docx
  • #
    03.10.2020848.93 Кб1613.docx
  • #
    03.10.20205.31 Mб1714_Тема.docx
  • #
    03.10.20201.7 Mб1315.docx
  • #
    03.10.2020960.28 Кб2016.docx
  • #
    03.10.2020672.83 Кб1317.docx
  • #
    03.10.2020378.04 Кб1818.docx
  • #
    03.10.20201.15 Mб1319.docx
  • #
    03.10.2020482.05 Кб1320.docx
  • #
    03.10.20201.65 Mб21OTS_1-10voprosy_ЗЩ НЕ ПРОВЕРЯЛ.docx