Для выполнения классификации значения яркости сортируются по возрастанию (рис. 5.4(а) и (б)). Далее находится точка, в которой наклон касательной к получившейся кривой максимален (α). Эта точка является границей, разделяющей две зоны в том случае, если наклон больше некоторого порога. В противном случае пикселы делятся между зонами поровну.
2) Для сортировки пикселов по категориям на блоки накладываются маски, разные для каждой зоны и каждого блока. Назначение масок состоит в обеспечении секретности внедрения. Пример масок для двух зон приведен на рис. 5.5(а) и (б).
Рис. 5.4. Сортированные значения яркостей блоков
Рис. 5.5. Пример используемых масок
3) Модификация. Итак, множество пикселов оказалось разделенным на пять подмножеств: две зоны * две категории + пикселы, не принадлежащие какой-либо зоне (для блоков первого типа). Обозначим среднее значение яркости для пикселов двух зон и категорий через
С другой стороны, необходимо обеспечить равенство значений яркости в каждой зоне:
Для достижения этого яркость всех пикселов одной зоны меняется одинаково. Например, для зоны 1, категории А это изменение составит
Алгоритм извлечения ЦВЗ является обратным алгоритму внедрения. При этом вычисляются средние значения яркостей и находятся разности
А3. (Langelaar[10]). Данный алгоритм также работает с блоками 8х8. Вначале создается псевдослучайная маска нулей и единиц такого же размера
Если условие (5.9) не выполняется, мы изменяем значение яркости пикселов субблока
А.5. (Pitas[11]). ЦВЗ представляет собой двумерный массив бит размером с изображение, причем число единиц в нем равно числу нулей. Существует несколько версий алгоритма, предложенного Питасом. Вначале предлагалось встраивать бит ЦВЗ в каждый пиксел изображения, но позже благоразумно было решено использовать для этой цели блоки размером 2х2 или 3х3 пиксела, что делает алгоритм более робастным к сжатию или фильтрации. ЦВЗ складывается с изображением:
В случае использования для внедрения блоков детектор ЦВЗ вычисляет среднее значение яркости этого блока. Отсюда появляется возможность неравномерного внедрения ЦВЗ в пикселы, то есть величина
Рис. 5.6. Оптимизация ЦВЗ: а) до оптимизации; б) после оптимизации
В работе [11] также приведена модификация этого алгоритма, устойчивая к атаке удаления линий из изображения.
А5. (Rongen [12]). Также, как и в предыдущем алгоритме, ЦВЗ представляет собой двумерную матрицу единиц и нулей с примерно равным их количеством. Пикселы, в которые можно внедрять единицы (то есть робастные к искажениям), определяются на основе некоторой характеристической функции (характеристические пикселы). Эта функция вычисляется локально, на основе анализа соседних пикселов. Характеристические пикселы составляют примерно 1/100 от общего числа, так что не все единицы ЦВЗ встраиваются именно в эти позиции. Для повышения количества характеристических пикселов в случае необходимости предлагается осуществлять небольшое предыскажение изображения.
Детектор находит значения характеристических пикселов и сравнивает с имеющимся у него ЦВЗ. Если в изображении ЦВЗ не содержится, то в характеристических пикселах количество единиц и нулей будет примерно поровну. Авторы рассчитали значение порога принятия решения, минимизирующего вероятность ложной тревоги.
А6. Алгоритм PatchWork([13]). В основе алгоритма Patchwork лежит статистический подход. Вначале псевдослучайным образом на основе ключа выбираются два пиксела изображения. Затем значение яркости одного из них увеличивается на некоторое значение (от 1 до 5), значение яркости другого — уменьшается на то же значение. Далее этот процесс повторяется большое число раз (~10000) и находится сумма значений всех разностей. По значению этой суммы судят о наличии или отсутствии ЦВЗ в изображении.
Для пояснения работы алгоритма введем ряд обозначений. Пусть значения выбираемых на каждом шаге пикселов