KnigaRead.com/

Вадим Грибунин - Цифровая стеганография

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Вадим Грибунин, "Цифровая стеганография" бесплатно, без регистрации.
Перейти на страницу:

— I-кадры — intra-кадры, кодируются без ссылок на другие кадры, содержат неподвижное изображение и вдобавок используются для построения других типов кадров;

— Р-кадры — предсказуемые кадры, которые кодируются со ссылкой на предыдущий (с точки зрения приемника) принятый (I) или (Р) кадр;

— В-кадры двусторонне интерполируемые кадры, которые кодируются наиболее сложным образом. Такой кадр может строиться и на основе предыдущего кадра, и на основе последующего кадра, и как интерполяция между предыдущим и последующим кадрами.

Закодированная ГК всегда начинается с I-кадра для обеспечения доступа к потоку видеоданных с любой случайной точки. ГК образуется из 12 кадров. Таким образом, при частоте 25 кадров в секунду, I-кадр приходит не реже чем один раз в 0,48 секунды. Вместе с ним восстанавливается полная в той или иной мере идентичность изображения.

На рисунке 8.4 показан пример группы кадров с использованием трех типов кадров и связями между ними.

Рис. 8.4. ГК с использованием трех типов кадров и связями между ними.


Изображение представляется в формате YUV, то есть одним каналом яркости и двумя каналам цветности. Изображение в канале яркости — это, по существу, черно-белое изображение. Известно, что зрительная система человека более чувствительна к изменениям в канале яркости, нежели в каналах цветности. Поэтому компоненты U и V могут быть подвергнуты большему сжатию, чем Y.

Каждый компонент I-кадра разбивается на блоки 8*8 пикселов, затем каждый блок подвергается дискретному косинусному преобразованию (ДКП).

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

Р-кадры (В-кадры кодируются практически аналогично) также разбиваются на блоки 8*8 пикселов и затем сравниваются с некоторым опорным кадром. Затем возможны 3 случая:

1. Отдельный блок в кодируемом Р-кадре совпадает с расположенным в этой же позиции блоком опорного кадра. Тогда достаточно указать, что блок остался таким же.

2. Отдельный блок в кодируемом кадре совпадает с блоком опорного кадра, находящимся в другой позиции. Тогда для его кодирования необходимо задать вектор смещения.

3. Отдельный блок в кодируемом кадре может не совпадать ни с одним из блоков опорного кадра. Тогда он будет кодироваться полностью.

ДКП концентрирует энергию в области низких частот, а, так как человеческий глаз менее чувствителен к высокочастотным колебаниям, то ВЧ компоненты могут быть оцифрованы более грубо. Коэффициент ДКП с индексом (0,0) называется DC-коэффициентом (постоянного тока), и он представляет среднее значение по блоку пикселов. Другие коэффициенты ДКП называются AC-коэффициентами (переменного тока).

Рис. 8.5. Уровни представления блока ДКП.


Таким образом, на низшем уровне синтаксической структуры MPEG находятся блоки пикселов 8*8, представляемые 64 коэффициентами ДКП. Рисунок 8.5 показывает три области, на которые может быть разделен блоковый уровень.

Первый уровень — коэффициентов, где блок содержит 8*8 оцифрованных коэффициентов ДКП, представленных целыми числами. Многие из них обычно равны нулю, особенно высокочастотные.

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

Третий уровень — битовый, в нем сформированные ранее пары кодируются кодом Хаффмана. Каждый блок коэффициентов ДКП заканчивается маркером конец блока (КБ).

Наиболее вычислительно простым будет алгоритм внедрения данных на блоковом уровне. Также невысокую сложность имеет алгоритм встраивания ЦВЗ на уровне коэффициентов, требующий только осуществления кодирования Хаффмана, кодирования длин серий и квантования, как показано на рисунке 8.6.

Рис. 8.6. Встраивание ЦВЗ в области коэффициентов.


Алгоритм встраивания ЦВЗ, работающий в битовой области, требует только осуществления дополнительного кодирования Хаффмана. Из этого следует, что вся процедура встраивания может состоять из декодирования Хаффмана, специальной модификации и кодирования с Хаффмана. Этот процесс показан на рисунке 8.7.

Рис. 8.7. Встраивание водяных знаков в битовой области.


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

8.2. Методы встраивания информации на уровне коэффициентов

В методе, предложенном в работе [7], осуществляется добавление псевдослучайного массива к DC-коэффициентам видео, сжатого по стандарту MPEG. В процессе встраивания ЦВЗ непосредственно участвуют только значения яркости в I-кадрах.

Для внедрения водяного знака осуществляется следующая процедура:

1. На секретном ключе генерируется массив псевдослучайных целых чисел {-1,1}, имеющий те же размеры, что и I-кадр.

2. Полученный массив модифицируется в соответствии водяным знаком и умножается на некоторый коэффициент усиления.

3. Значения коэффициентов постоянного тока каждого из I-кадров складываются с соответствующими числами модифицированного массива.

Авторы этого метода утверждают, что при его применении значительно ухудшается качество видео. Следовательно, чтобы сохранить необходимое качество получаемого в результате видео, коэффициент усиления необходимо брать низким (<1), и количество пикселов на один бит ЦВЗ должно быть достаточно большим (>>100,000). Это происходит, главным образом, из-за того, что элементы массива ЦВЗ внедряются только в один из 64 коэффициентов ДКП — коэффициент постоянного тока. А к изменениям в этой области человеческий глаз особенно чувствителен.

В статьях [9]-[11] предложен более тонкий метод встраивания битов ЦВЗ в коэффициенты ДКП. При использовании этого метода осуществляется внедрение информации не только в коэффициенты постоянного тока, но и в коэффициенты переменного тока в I, Р, В-кадров. ЦВЗ, как и в предыдущем случае, представляет собой массив псевдослучайных чисел. Для того, чтобы встроить ЦВЗ, массив W(x,y) делится на блоки размером 8*8. Затем над этими блоками осуществляется ДКП, и коэффициенты преобразования обозначаются, как Wx,y(u,v), где х, у=0,8,16,… и u,v=0,…,7. После этого выполняется зигзагоообразное сканирование блоков Wx,y(u,v), в результате чего получается одномерный массив Wx,y(i), где I=0….,63. Тогда Wx,y(0) — это коэффициент постоянного тока, а Wx,y(63) — коэффициент переменного тока, соответствующий наивысшей частоте. Такой же обработке подвергаются и блоки видеоданных, и массив Ix,y(i) поэлементно складывается с ЦВЗ. Таким образом, для каждого массива видеоданных Ix,y(i) любого из типов кадров осуществляются действия:

1. Изменяется коэффициент постоянного тока:


. (8.1)


Это означает, что среднее значение ЦВЗ складывается со средним значением блока видеоданных.

2. Для встраивания информации в коэффициенты переменного тока поток бит кодируемого блока просматривается по кодовым словам (код Хаффмана) на предмет нахождения ненулевого коэффициента ДКП. Длина серии и значение этого кодового слова декодируются для определения позиции и амплитуды Ix,y(i) коэффициента — кандидата для внедрения информации.

3. Определяется стегообраз этого коэффициента


. (8.2)


Размер SzI кодовых слов, необходимых для кодирования Ix,y(i) и размер SzIw кодовых слов, необходимых для кодирования IWx,y(i), определяются с использованием таблицы кода переменной длины В.14 и В.15 стандарта MPEG-2 [8]. Если размер кодового слова, предназначенного для кодирования стегообраза коэффициента ДКП, меньше или равен длине кодового слова, предназначенного для кодирования исходного коэффициента ДКП, то исходное кодовое слово заменяется. В противном случае оно остается неизменным. Это означает, что коэффициент ДКП Ix,y(i) модифицируется следующим образом:

Если


4. Процедура кодирования повторяется до тех пор, пока все коэффициенты переменного тока блока видеоданных не будут обработаны таким же образом.

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*