Основы теории информации и криптографии - -Учебное пособие (В.В. Лидовский)

7. лекция: сжатие информации с потерями

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

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

Сжатие с потерями используется в основном для трех видов данных: полноцветная графика (2^{24}approx16 млн. цветов), звук и видеоинформация.

Сжатие с потерями обычно проходит в два этапа. На первом из них исходная информация приводится (с потерями) к виду, в котором ее можно эффективно сжимать алгоритмами 2-го этапа сжатия без потерь.

Основная идея сжатия графической информации с потерями заключается в следующем. Каждая точка в картинке характеризуется тремя равноважными атрибутами: яркостью, цветом и насыщенностью. Но глаз человека воспринимает эти атрибуты не как равные. Глаз воспринимает полностью только информацию о яркости и в гораздо меньшей степени о цвете и насыщенности, что позволяет отбрасывать часть информации о двух последних атрибутах без потери качества изображения. Это свойство зрения используется, в частности, в цветном телевизоре, в котором на базовое черно-белое изображение наносят цветовую раскраску.

Для сжатия графической информации с потерями в конце 1980-х установлен один стандарт - формат JPEG (Joint Photographic Experts Group - название объединения его разработчиков). В этом формате можно регулировать степень сжатия, задавая степень потери качества.

Сжатие видеоинформации основано на том, что при переходе от одного кадра фильма к другому на экране обычно почти ничего не меняется. Таким образом, сжатая видеоинформация представляет собой запись некоторых базовых кадров и последовательности изменений в них. При этом часть информации может отбрасываться. Сжатую подобным образом информацию можно далее сжимать и другими методами. Хотя существует не один стандарт для сжатия видеоданных, наиболее распространенными являются стандарты MPEG (Motion Picture Experts Group), первый из которых был опубликован в 1988 году. MPEG - практически единственный стандарт для записи видео и звуковой информации на CD-ROM, DVD-ROM и в цифровом спутниковом телевидении. Видеоинформацию можно сжать необыкновенно плотно, до 100 и более раз, что позволяет, например, на одну видеокассету, записать более ста различных художественных фильмов. Но из-за очень сложных проблем, связанных с правами на интеллектуальную собственность, реально возможности сжатия информации таким образом используются сравнительно редко.

Для сжатии звуковой информации с потерями существует несколько стандартов. Наиболее широко используемый из них - это MPEG без видеоданных. Стандарт LPC (Linear Predictive Coding) используется для сжатия речи. Алгоритм LPC пытается промоделировать речевой тракт человека и выдает на выходе буквально текущее состояние участвующих в формировании звуков органов.

Информационный канал

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

Линии связи обеспечивают прохождение информационных сигналов между устройствами канала. Информация обычно передается при помощи электрического тока (по проводам), света (по оптоволокну), электромагнитных волн радиодиапазона (в пространстве) и, редко, звука (в плотной среде: атмосфере, воде и т.п.) и прочих.

Устройства канала связи - это, как правило, репитеры, просто передающие усиленным принятый сигнал (пример, радиорелейные линии). К устройствам канала иногда относят и кодеры/декодеры, но в только тех случаях, когда кодирование/декодирование происходит с высокой скоростью, не требующей ее специального учета, как замедляющего фактора; обычно же кодеры/декодеры относят к источникам или приемникам информации.

Технические характеристики канала определяются принципом действия входящих в него устройств, видом сигнала, свойствами и составом физической среды, в которой распространяются сигналы, свойствами применяемого кода.

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

Задержка сигнала во времени - это интервал времени от отправки сигнала передатчиком до его приема приемником.

Математически канал задается множеством допустимых сообщений на входе, множеством допустимых сообщений на выходе и набором условных вероятностей P(y/x)получения сигнала yна выходе при входном сигнале x. Условные вероятности описывают статистические свойства "шумов" (или помех), искажающих сигнал в процессе передачи. В случае, когда P(y/x)=1при y=xи P(y/x)=0при y
eq x, канал называется каналом без "шумов". В соответствии со структурой входных и выходных сигналов выделяют дискретные и непрерывные каналы. В дискретных каналах сигналы на входе и выходе представляют собой последовательность символов одного или двух (по одному для входа и выхода) алфавитов. В непрерывных каналах входной и выходной сигналы представляют собой функции от непрерывного параметра-времени. Бывают также смешанные или гибридные каналы, но тогда обычно рассматривают их дискретные и непрерывные компоненты раздельно. Далее рассматриваются только дискретные каналы.

Способность канала передавать информацию характеризуется числом - пропускной способностью или емкостью канала (обозначение - C).

Для случая канала без шума формула расчета емкости канала имеет вид

C=limlimits_{T
ightarrowinfty}{log_2N(T)over
T},

где N(T)- число всех возможных сигналов за время T.

Пример. Пусть алфавит канала без "шумов" состоит из двух символов - 0 и 1, длительность 	auсекунд каждый. За время Tуспеет пройти n=T/	auсигналов, всего возможны 2^nразличных сообщений длиной n. В этом случае C=limlimits_{T
ightarrowinfty}{log_22^{T/	au}over
T}=1/	auбод.

На рис.7.1 приведена схема, на которой изображен процесс прохождения информации по каналу с описанными в примере характеристиками.

Здесь для кодирования используется уровень сигнала: низкий для 0 и высокий для 1. Недостатки этого способа проявляются в случаях, когда нужно передавать много сплошных нулей или единиц. Малейшее рассогласование синхронизации между приемником и передатчиком приводит тогда к неисправимым ошибкам. Кроме того, многие носители информации, в частности, магнитные, не могут поддерживать длительный постоянный уровень сигнала.

Рис. 7.1. 

Для передачи информации используется обычно другой способ, когда для представления 0 и 1 используются две разные частоты, отличающиеся друг от друга ровно в два раза (См. рис. 7.2) - это так называемая частотная модуляция (ЧМ или FM).

Рис. 7.2. 

Таким образом, при таком кодировании, если сигнал 1 имеет длительность 	au, то 0 - 2	au.

Рассчитаем емкость этого канала. Нужно рассчитать N(T). Пусть n=T/	au, тогда получается, что нужно рассчитать сколькими способами можно разбить отрезок длины nотрезками длины 2 и 1. Получаем, что N(T)=S_n=C^n_n + C^{n-2}_{n-1} + C^{n-4}_{n-2} + cdots, где первое слагаемое - это количество способов, которыми можно разбить отрезок длины nnотрезками длины 1, второе слагаемое - это количество способов, которыми можно разбить отрезок длины n(n-2)отрезками длины 1 и одним отрезком длины 2, третье слагаемое - это количество способов, которыми можно разбить отрезок длины n(n-4)отрезками длины 1 и двумя отрезками длины 2 и т.д. Таким образом, S_1=1. Вследствие того, что C^k_m+C^{k+1}_m=C^{k+1}_{m+1}для любых k<m, получается, что

$$matrix{S_{n-1}&=&&&C^{n-1}_{n-1}&+&C^{n-3}_{n-2}&+&C^{n-5}_{n-3}&+ cdotscr\
S_n&=&C^n_n&+&C^{n-2}_{n-1}&+&C^{n-4}_{n-2}&+&C^{n-6}_{n-3}&+cdotscr\
S_{n+1}&=&C^{n+1}_{n+1}&+&C^{n-1}_n&+&C^{n-3}_{n-1}&+&C^{n-5}_{n-2}&+ cdotscr},$$

т.е. S_{n+1}=S_n+S_{n-1}при n>1. Если положить, что S_0=1, то S_0,S_1,ldots- это последовательность 1,1,2,3,5,8,13,21,34,ldots, т.е. числа Фибоначчи. C XIX века для вычисления n-го члена последовательности Фибоначчи известна формула

S_n={1oversqrt5}iggl(Bigl({1+sqrt5over2}Bigr)^{n+1}-
Bigl({1-sqrt5over2}Bigr)^{n+1}iggr).

Таким образом, C=limlimits_{T
ightarrowinfty}{log_2N(T)over T}=
limlimits_{n
ightarrowinfty}{log_2S_nover n	au}=
{log_2	extstyle{1+sqrt5over2}over	au}approx0.69/	auбод.

При использовании частотной модуляции на практике нули, как правило, кодируются в два раза плотнее. Это достигается тем, что учитываются не уровни сигнала, а смена уровня (полярности). Если частота 
uсоответствует 1, то с частотой 2
uпроизводится проверка уровня сигнала. Если он меняется, то это сигнал 1, если нет, то - 0. На практике частота 
u- это частота синхронизации, т.е. частота импульса, который независимо от данных меняет полярность сигнала. 0 не генерирует импульса смены полярности, а 1 генерирует (См. рис. 7.3).

Рис. 7.3. 

Для записи информации на первые магнитные диски и ленты использовался метод FM. На гибкие диски 5.25" и 3.5" информация записывается методом MFM (Modified FM) - модификацией метода FM, позволяющей в 2 раза повысить плотность записи. Это достигается тем, что частота синхронизации увеличивается вдвое. MFM можно использовать с теми же физическими каналами, что и FM, потому что импульсы синхронизации не передаются перед 1 и первым 0 в серии нулей (См. рис. 7.4).

Рис. 7.4. 

Метод записи с групповым кодированием, RLL - Run Limited Length, не использует импульсы синхронизации, применяется, в частности, в жестких дисках "винчестер'' и существует в нескольких разновидностях. Одна из них основана на замене тетрад байта на 5-битные группы. Эти группы подбираются таким образом, чтобы при передаче данных нули не встречались подряд более двух раз, что делает код самосинхронизирующимся. Например, тетрада 0000 заменяется группой бит 11001, тетрада 1000 - 11010, тетрада 0001 - 11011, тетрада 1111 - 01111 (См. рис. 7.5). Существуют разновидности RLL, в которых заменяются последовательности бит различной длины. Кодирование MFM или FM можно представить как частный случай RLL.

Рис. 7.5. 

При необходимости передачи записанных с помощью некоторого кода сообщений по данному каналу приходиться преобразовывать эти сообщения в допустимые сигналы канала, т.е. производить надлежащее кодирование, а при приеме данных - декодирование. Кодирование целесообразно производить так, чтобы среднее время, затрачиваемое на передачу, было как можно меньше. Получается, что исходному входному алфавиту нужно однозначно сопоставить новый алфавит, обеспечивающий большую скорость передачи. В этом случае возникает явление задержки или запаздывания.

Поясним последнее на примере. Пусть источник сообщений посылает через промежутки времени длиной 1/u(т.е. со скоростью u) независимые символы x_1,x_2,x_3,x_4с вероятностями 1/2, 1/4, 1/8, 1/8, т.е., можно сказать, что источник характеризуется некоторой д.с.в. X. Пусть канал - без шумов. Символ либо передается по каналу, если тот свободен, либо ожидает (помещается в память) до тех пор, пока канал не освободится. Выберем в качестве кода для передачи символов источника по каналу следующий: x_1-00,x_2-01, x_3-10, x_4-11. Пусть время, необходимое для передачи как 0, так и 1, равно 	au. Тогда если 2	aule1/u, то за время между появлениями двух последовательных значений Xкодовое значение успеет передаться и канал освобождается. Если же 2	au>1/u, то n-й символ появится в момент n/u, а его кодовое обозначение будет передано по каналу в момент 2n	au. Следовательно, промежуток времени между появлением n-го символа и моментом его получения равен n(2	au-1/u), т.е. этот промежуток стремится к бесконечности при n
ightarrowinftyи передача будет вестись с неограниченным запаздыванием. Выбором более удачного кода (например, Хаффмена) можно увеличить скорость передачи.

Следующий, основной факт теории передачи информации или основная теорема о кодировании при наличии помех позволяет при знании емкости канала и энтропии передатчика вычислить максимальную скорость передачи данных в канале.

Теорема Шеннона. Пусть источник характеризуется д.с.в. X. Рассматривается канал с шумом, т.е. для каждого передаваемого сообщения задана вероятность varepsilonего искажения в процессе передачи (вероятность ошибки). Тогда существует такая скорость передачи u, зависящая только от X, что forallvarepsilon>0\; exists
u'<uсколь угодно близкая к uтакая, что существует способ передавать значения Xсо скоростью u'и с вероятностью ошибки меньшей varepsilon, причем

u={Cover HX}.

Упомянутый способ образует помехоустойчивый код.

Кроме того, Фэно доказана1) следующая обратная теорема о кодировании при наличии помех. Для u'>uможно найти такое положительное число varepsilon, что в случае передачи информации по линии связи со скоростью u'вероятность ошибки varepsilonпередачи каждого символа сообщения при любом методе кодирования и декодирования будет не меньше varepsilon(varepsilon очевидно растет вслед за ростом u').

Упражнение 33 По каналу связи без шума могут передаваться четыре сигнала длительностью 1 мс каждый. Вычислить емкость такого канала.

Упражнение 34 Три передатчика задаются случайными величинами со следующими законами распределениями вероятностей:

P(X_1=-1)=1/4, P(X_1=0)=1/2, P(X_1=1)=1/4;

P(X_2=-1)=1/3, P(X_2=0)=1/3, P(X_2=1)=1/3;

P(X_3=n)=2^{-n},, n=1, 2, ldots

Емкость канала связи с шумом равна 4000 бод. Вычислить максимальную скорость передачи данных по этому каналу каждым из передатчиков, обеспечивающую сколь угодно высокую надежность передачи.

Помехозащитное кодирование

Простейший код для борьбы с шумом - это контроль четности, он, в частности, широко используется в модемах. Кодирование заключается в добавлении к каждому байту девятого бита таким образом, чтобы дополнить количество единиц в байте до заранее выбранного для кода четного (even) или нечетного (odd) значения. Используя этот код, можно лишь обнаруживать большинство ошибок.

Простейший код, исправляющий ошибки, - это тройное повторение каждого бита. Если с ошибкой произойдет передача одного бита из трех, то ошибка будет исправлена, но если случится двойная или тройная ошибка, то будут получены неправильные данные. Часто коды для исправления ошибок используют совместно с кодами для обнаружения ошибок. При тройном повторении для повышения надежности три бита располагают не подряд, а на фиксированном расстоянии друг от друга. Использование тройного повторения естественно значительно снижает скорость передачи данных.

Рис. 7.6. 

Двоичный симметричный канал изображен на рис. 7.6, где p- это вероятность безошибочной передачи бита, а q- вероятность передачи бита с ошибкой. Предполагается, что в таком канале ошибки происходят независимо. Далее рассматриваются только такие каналы.

Двоичный симметричный канал реализует схему Бернулли, поэтому вероятность передачи nбит по двоичному симметричному каналу с kошибками равна

P_n(k)=C^k_np^{n-k}q^k.

Пример. Вероятность передачи одного бита информации с ошибкой равна q=0.01и нас интересует вероятность безошибочной передачи 1000 бит (125 байт). Искомую вероятность можно подсчитать по формуле P_{1000}(0)=C^0_{1000}p^{1000}q^0=0.99^{1000}approx4.32*10^{-5}, т.е. она ничтожно мала.

Добиться минимальности вероятности ошибки при передаче данных можно используя специальные коды. Обычно используют помехозащитные коды. Идея систематических кодов состоит в добавлении к символам исходных кодов, предназначенных для передачи в канале, нескольких контрольных символов по определенной схеме кодирования. Принятая такая удлиненная последовательность кодов декодируется по схеме декодирования в первоначально переданную. Приемник способен распознавать и/или исправлять ошибки, вызванные шумом, анализируя дополнительную информацию, содержащуюся в удлиненных кодах.

Двоичным (m,n)-кодом называется пара, состоящая из схемы кодирования EcolonZ_2^m
ightarrowZ_2^nи схемы декодирования DcolonZ_2^n
ightarrowZ_2^m, где Z_2^n- множество всех двоичных последовательностей длины n, m<n(случай m=nрассматривается в криптографии).

Функции Dи Eвыбираются так, чтобы функция H=Dcirc Tcirc E, где T- функция ошибок, с вероятностью, близкой к единице, была тождественной. Функции Dи Eсчитаются безошибочными, т.е. функция Dcirc E- тождественная (См. рис. 7.7).

Рис. 7.7. 

Упражнение 35 Пусть двоичный симметричный канал используется для передачи строк из двух бит. Построить таблицу вероятностей приема.

Упражнение 36 По двоичному симметричному каналу передаются строки длины 14. Какова вероятность того, что ровно пять символов будут приняты неправильно? Какова вероятность того, что менее пяти символов будут приняты неправильно? Сколько имеется строк, отличающихся от данной не больше, чем в четырех позициях?