Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница

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

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (5.33)

где Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru — масштабный коэффициент; Q(1,1) — значение квантования для DC-коэффициента.

Обратное преобразование блоков контейнера

Модифицированные матрицы СЧ-коэффициентов Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru отображаются в общие матрицы коэффициентов ДКП Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (оператор put):

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (5.34)

К результату проведенного объединения применяется обратное ДКП (оператор IDСТ)

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Извлечение ЦВЗ из контейнера

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

Оба изображения (оригинальное — С, и исследуемое на наличие встроенного ЦВЗ — С*) подвергаются прямому ДКП: Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru = FDCT(C), Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru *=FDCT(C*).

Из полученных массивов коэффициентов ДКП проводится выделение матриц СЧ-коэффициентов, которые, в свою очередь, используются для получения шаблонов полярности:

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Применяя к полученным массивам полярностей операцию сложения по модулю 2, получают двоичные данные (пока еще переставленные в пространстве и псевдослучайно смешанные):

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (5.36)

где Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Выполняется обратная пространственная перестановка блоков полученных данных (оператор re-permutе). Индексы соответствующих пар блоков и извлекаемых данных могут быть получены либо путем их считывания из предварительно сохраненных в файле на этапе встраивания ЦВЗ, или же непосредственно при встраивании путем аналогичных действий над изображением-оригиналом и изображением-ЦВЗ:

W*rnd = re-permute( W*sort).

Аналогично проводится обратная псевдослучайная перестановка данных в полученном массиве: W*rnd = re-permute( W*rnd)

В рассмотренном алгоритме можно выделить три особенности, которые можно использовать в качестве секретного ключа:

1. начальное число генератора ПСЧ, которое будет определять первый элемент псевдослучайной перестановки (любое целое число из диапазона Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru );

2. выбор СЧ-коэффициентов ДКП (необходимо выбрать Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru коэффициенты из 64-х для каждого блока, следовательно, за каждым блоком можно закрепить свой набор коэффициентов);

3. алгоритм сведения (отображения) выбранных СЧ-коэффициентов в отдельную матрицу (на рис. 5.32 показан только один из возможных способов такого отображения).

Рассмотрим пример реализации метода Хсу и By в системе MathCAD.

Шаг 1

Пусть изображение-контейнер и изображение-ЦВЗ представляют собой графические файлы C.bmp и W.bmp соответственно (рис. 5.35):

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Рис. 5.35. Изображение-контейнер и внедряемый в него ЦВЗ

С:= READBMP ("C.bmp");

W:= READBMP("W.bmp").

При этом соответствующие характеристики указанных изображений составляют:

X:= rows(C), X= 128;

Y:=cols(C), Y= 128;

А:= rows(W), A = 64;

Z:= cols{W), Z = 64.

Шаг 2

Проводим нормирование массива ЦВЗ

 
  Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Элементы исходного массива W при этом принимают значение 0 или 1.

Шаг 3

Размерность блоков, на которые разбивается контейнер, принимаем равной N:= 8. Количество полученных в этом случае блоков: Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru .

Размерность, которую должны иметь блоки ЦВЗ для получения их количества Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , составляет Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Выполняем проверку количества получаемых блоков ЦВЗ: Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru блоков.

Шаг 4

Разбитие контейнера С на Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru блоков размерностью NxN выполняем при помощи программного модуля (М.55).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 5

Псевдослучайную перестановку элементов ЦВЗ проведем в том порядке, который был предложен Хсу и By. Во-первых, проведем индексацию каждого пикселя ЦВЗ (от 1 до Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru = 4096), для чего просто развернем массив ЦВЗ в вектор (программный модуль M.56)).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Во-вторых, полученные индексы расставим в произвольном (псевдослучайном) порядке, дня чего используем линейный регистр сдвига с обратной связью (ЛРСОС или LFSR — Linear Feedback Shift Register).

Как известно, ЛРСОС состоит из двух частей: собственно регистра сдвига и функции обратной связи (рис. 5.36) [65]. Регистр сдвига представляет собой последовательность битов (разрядов) R, количество которых d определяется длиной регистра сдвига. Обратная связь представляет собой сумму по модулю 2 определенных битов, регистра (эти биты называются отводной последовательностью).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Рис. 6.36. Обобщенный линейный регистр сдвига с обратной связью

Теоретически, d-битовый ЛРСОС может пребывать в одном из Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru внутренних состояний, то есть может генерировать ПСП с периодом в Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru бит. Все Т внутренних состояний регистр пройдет только при определенных отводных последовательностях. Такие ЛРСОС имеют максимальный период, а полученный при этом результат называют М-последовательностью.

На рис. 5.36 значения Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru являются весовыми коэффициентами полинома Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru степени d , ассоциированного с последовательностью:

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Если Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , то соответствующий ключ замкнут. В случае Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru — разомкнут.

Неудачное включение сумматоров в цепь обратной связи может привести к получению ПСП, период повторения которой будет меньшим максимально возможного при имеющейся разрядности регистра. Для того чтобы конкретный ЛРСОС имел максимальный период, полином Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru должен быть примитивным по модулю 2 (то есть не раскладываться на произведение двоичных полиномов меньшей степени). При этом коэффициенты Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru и Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru всегда равняются 1, поскольку, в случае Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , полином Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru делится на х и не является примитивным; в случае Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , даже если полином и примитивный, его степень меньше d. Другие коэффициенты выбранного полинома и будут определять схему формирователя ПСП.

В нашем случае, для перестановки чисел в диапазоне от 1 до Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru необходимым и достаточным является количество разрядов регистра Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . При этом период повторения ПСП составит Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru .

Для d-разрядного регистра в качестве примитивного полинома по модулю 2 выберем следующий: Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru Этот и некоторые другие возможные виды примитивных полиномов степени d = 12 приведены в табл. 5.2 [8].

Таблица 5.2 Примеры примитивных по модулю 2 полиномов степени d = 12

x0 х1 х2 x3 x4 x5 х6 х7 х8 х9 х10 х11 x12

ЛРСОС, имеющий d разрядов, реализует программный модуль (М.57), в котором аргумент s определяет собой начальное состояние регистра (в десятичном представлении) — произвольное целое число в пределах от 1 до Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru .

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

В начале модуля задается вектoр весовых коэффициентов примитивного полинома Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru для элементов отводной последовательности (для наглядности данный вектор изображен в виде матрицы-строки с последующим транспонированием).

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

Получение массива Vrnd индексов элементов вектора Wvec, расставленных в псевдослучайном порядке, позволяет в дальнейшем провести генерирование пар координат (по строкам и столбцам) каждого пикселя путем преобразования последовательности ПСЧ в двумерную последовательность. Это, в свою очередь, делает возможным после псевдослучайного выбора элемента из вектора Wvec поместить его значение в обусловленный сгенерированной парой координат элемент массива, размерность которого идентична размерности ЦВЗ.

Вышеприведенная процедура реализована в программном модуле (М.58), в котором для каждого элемента М-последовательности вычисляются индексы а и z элемента массива Wrnd. а который заносится текущий элемент вектора Wvec. Функция trunc(x) возвращает целую часть от аргумента х, отбрасывая его мантиссу; функция mod(k,m) возвращает остаток от деления к на т. Прибавлением единицы учтена возможность возвращения отмеченными функциями нулевого результата.

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Результат выполнения модуля (М.58) при s := 12 приведен на рис.5.37

Шаг 6

Модуль разбития массива ЦВЗ на Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru блоков размерностью Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru по своему строению аналогичен модулю (М.55). Отличия заключаются в следующем:

• переменная, которой присваивается результат выполнения модуля (как, собственно, и соответствующая переменная в теле модуля), обозначается как Бw(вместо Бс);

• выделение блоков проводится из массива Wrnd (вместо С);

• вместо размерности массива Nиспользуется размерность n;

• соответственно, изменяется и предельное значение индекса строки (вместо X - значение А).

Общее количество блоков, на которое разбивался контейнер Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , с учетом такого же их количества в ЦВЗ, можно не изменять.

Шаг 7

С помощью программных модулей (M.59) и (М.60) формируем таблицы результатов сортировки блоков контейнера (по значениям стандартного отклонения элементов блоков) и блоков ЦВЗ (по количеству значащих элементов).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

В первый столбец таблиц характеристик блоков контейнера (TC) и ЦВЗ (ТW) вносятся порядковые индексы исследуемых блоков. Во второй — результат вычисления, соответственно, стандартного отклонения Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru и количества значащих (единичных) элементов Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . После формирования таблиц, последние сортируются по значениям второго столбца (функция csort(T,2)).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Фрагмент результата сортировки для выбранных контейнера и ЦВЗ приведен в табл.5.3.

Таблица 5.3 Примеры сортировки блоков контейнера и ЦВЗ

№ п/п Индексы блоков контейнера Значения станд. отклонения Индексы блоков ЦВЗ Количество значащих элементов
66.676
65.551
65.236
... ... ... ... ...
44.565
44.394
44.318
... ... ... ... ...
33.562
33.462
33.287
... ... ... ... ...
22.564
22.396
21.151
... ... ... ... ...

Путем выделения первых столбцов из массивов ТC и ТW, сопоставляем индексы блоков контейнера с индексами блоков ЦВЗ:

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 8

В соответствии с полученным массивом приведенных в соответствие друг с другом индексов, проводим перестановку блоков ЦВЗ в порядке, отвечающем данному соответствию. Реализацию данного этапа осуществляет модуль (М.61).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

В качестве примера приведем результат выполнения программного модуля (М.61) для первой строки табл. 5.3:

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 9

Используя программные модули (М.46,47) (при этом следует предельное количество блоков контейнера в цикле for заменить с NС на Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , а вместо Сb под знаком суммы следует использовать Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru ), выполняем прямое ДКП блоков контейнера.

Из полученных массивов коэффициентов ДКП Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . которые имеют размерность Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , извлекаем только среднечастотные коэффициенты (см. рис. 5.32), параллельно сворачивая их в массив Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . Перед началом проведения операции извлечения формируется массив координат выделяемых СЧ-коэффициентов (М.62):

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (M.62)

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

В данном случае, массив Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru будет содержать 16 строк, элементы каждой из которых несут информацию об индексах строки и столбца соответствующего СЧ-коэффициента в массиве Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (рис.5.38).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru   Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru
  Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru
  Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Рис. 5.38. Таблица координат СЧ-коэффициентов ДКП

С помощью программного модуля (М.63), в соответствии с таблицей рис. 5.38, для каждого блока b выполняется формирование матрицы Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru выбранных для модификации коэффициентов. Результат извлечения проиллюстрирован на рис. 5.39.

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Рис. 5.39 Пример извлечения СЧ-коэффициентов из массива Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru для 232-го блока контейнера

Шаг 10

Проводим вычисление массива полярностей блоков контейнера. При этом в основу программного модуля (М.64) положена реализация выражения (5.29). Матрица СЧ-коэффициентов 1-го блока сравнивается с матрицей последнего ( Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru -го) блока. Для создания более стойкого встраивания ЦВЗ данный модуль можно модифицировать в соответствии с (5.33) путем внесения соответствующей замены.

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 11

В соответствии с выражением (5.30) проводим изменение текущего массива полярности согласно значениям элементов переставленного ЦВЗ — модуль (М.65).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 12

На основании текущих матриц СЧ-коэффициентов Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru формируем новые Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . причем претерпевают изменения те элементы первичной матрицы, по координатам которых выполняется неравенство вида Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru (программный модуль (М.66)).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Модификация проводится таким образом, чтобы при выполнении программного модуля (М.64) можно было получить массив Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru идентичный массиву Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru , в том случае, если при вычислении параметра Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru в качестве уменьшаемого будет выступать элемент матрицы Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . В случае же модификации отношения между значениями коэффициентов в пределах одного блока (то есть полярность Р предварительно определялась по формуле (5.33)), в модуле (М.66 а) выражение, вычисляемое при выполнении условия Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru . необходимо заменить программным блоком (М.66 б).

Шаг 13

Модифицированные для каждого блока матрицы СЧ-коэффициентов ( Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru ) отображаются в общие матрицы коэффициентов ДКП Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru — программный модуль (М.67). При этом также используется таблица координат среднечастотных коэффициентов ДКП (см. (М.62) и рис. 5.38).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 14

После объединения, к модифицированным матрицам Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru необходимо применить операцию обратного ДКП (модуль (М.68)) и сформировать на основе полученных блоков общий массив изображения-контейнера (модуль (М.69)).

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Полученное при этом изображение с встроенным ЦВЗ при определенных обстоятельствах может существенно потерять в яркости, что вызвано несколькими причинами: во-первых, для упрощения программных модулей не была проведена оптимизация встраивания по формуле (5.31); во-вторых, соседние блоки контейнера могут иметь достаточно разные значения интенсивностей и, соответственно. СЧ-коэффициентов ДКП, что вызывает необходимость при построении алгоритма по (5.29) существенно изменять значения этих коэффициентов для удовлетворения поставленных условий. В комплексе эти две причины вызывают появление пикселей контейнера, яркость которых после проведения обратного ДКП выходит за пределы диапазона [0. 255]. Последнее устраняется путем нормирования значений элементов массива Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru в конце модуля (M.69), которое и вызывает снижение общей яркости изображения.

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Результаты встраивания ЦВЗ в контейнер путем модификации отношения между значениями коэффициентов соседних блоков и в пределах одного блока приведены, соответственно, на рис. 5.40 а и б.

Встраивание путем модификации отношения между значениями коэффициентов в пределах одного блока 1 страница - student2.ru

Шаг 15

Рассмотрим процесс извлечения ЦВЗ из изображения-контейнера. Как было указано выше, для извлечения ЦВЗ помимо контейнера с, возможно, встроенным водяным знаком (С*), необходимо наличие оригинального (незаполненного) контейнера (С) и изображения ЦВЗ (W).

Наши рекомендации