Г Ф Конахович - Комп'ютерна стеганографія теорія і практика - страница 19

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51 

2) Визначаємо розмірність масиву контейнера X та Y, а також задаємо розмірність сегментів (блоків), на які він розбиватиметься: X := rows(B), X = 128; Y := cols(B), Y = 128; N := 8. При цьому загальна кількість сегментів N3 := X-Y/N , N3 = 256 сегментів.

3) За допомогою програмного модуля (М.35) проводимо розбиття S:= загального масиву В на окремі блоки. При цьому останні виокремлюються від з масиву за допомогою функції submatrix і зберігаються як елементи вектора S. На початковому етапі, стов­пці, що обмежують виокремлюваний з масиву сегмент, мають індекси с1 <-1, c2-^N. Поступово нарощуючи значе­ння індексів рядків г1 і г2, повністю проходиться ділянка, обмежена

стовпцями сі і с2. У випадку, коли індекс r2 співпадає з індексом останнього рядка, індекси стовпців збільшуються на ширину виокремлюваних сегментів N і т. д. Зазначимо, що даний модуль не розрахований на поділ зображення на сегменти, розмірність яких не є кратною розмірності зображення. Останній випадок можна врахувати введенням до тіла програмного модуля відповідних обмежуючих умов. У даному випадку, в результаті обчислення програм­ного модуля повертається вектор S з 256 елементів, кожен з яких являє собою матрицю 8x8.

Кожен сегмент 3 призначено для приховування одного біта секретного повідомлення M. Тому бажано перевірити достатність кількості сегментів для цієї операції. Повідомлення є ідентичним використовуваному при розгляді попередніх методів; його довжина Lm = 200 біт. Таким чином, кількість сегментів є цілком достатньою.

4) Проводимо класифікацію пікселів кожного з блоків на зони 1 і 2 (М.36). До уваги береться лише кількість сегментів, достатня для вбудовування даного повідомлення M. На початку циклу зміни s змінній Б присвоюється значення s-го сегмента S. Одержаний масив Б

jbmatrixf

(М.35)розгортається у вектор f, який у відсортованому ви­гляді присвоюється змінній F. Таким чином вектор F має N елементів, що йдуть по зростанню.

Для існування мо­жливості прийняття одна­кових рішень як на пере­давальній стороні при вбу­довуванні, так і на прий­мальній при видобуванні стосовно точки, при якій функція F має найбільшу крутизну (див. рис.5.17), останню бажано згладити, використовуючи в якості вузлових точок лише деяку частину (r) від загальної їх кількості (N2). Зрозуміло, що абсциса першої вузлової точки повинна дорівнювати одиниці і <- 1), останньої - Xr N. Абсциси промі­жних вузлових точок фор­муються за виразом, зміст якого є очевидним. До ма­сиву ф заносяться відпові­дні ординати вузлових то­чок.

Користуючись вбу­дованою функцією lspline формуємо вектор кубічних сплайн-коефіцієнтів других похідних при наближенні до опорних точок (при цьо­му граничні точки лінійні). Для проведення сплайн-апроксимації використову­ємо функцію interp(spline, X, ф, «>), яка для кожної шуканої абсциси и обчис­лює значення апроксимо-ваної функції.

З основ диференці­ального обчислення відомо [101], що кут нахилу доти­чної в заданій точці до гра­фіку функції дорівнює арк­тангенсу від похідної цієї функції при даному зна­ченні аргументу. Отже,

(М.36)абсцису точки а максимальної крутизни сплайн-апроксимованої функції ф можна знайти за максимумом першої похідної (d/ do) даної функції серед усіх можливих значень ю. У випадку знайдення максимального значення крутизни, змінній а присвоюється відповідне значення ю. Якщо для будь-якого ю не знайдено похідної, більшої за Smax (усі пікселі сегмента мають однакову інтенсивність), змінній а присвоюється значення N2/2. Якщо точка максимальної крутизни є граничною (тобто дорівнює 1 або N2), то вона зсувається на один крок праворуч або ліворуч відповідно (за відсутності такої поправки будуть відсутніми пікселі, що належать, відповідно, до 1 або 2-ї зони).

У тому випадку, якщо одержане значення крутизни буде меншим за порогове і), пікселі діляться між зонами 1 і 2 порівну у шаховому порядку. Якщо Smax > Ті, проводиться пошук абсцис Р_ та Р+. При значення інтенсивності пікселя Bjj < Fp останній відноситься до

зони 1; при Bjj > Fp+ - до зони 2; при Fp < Bjj < Fp+ - до перехідної зони ("--").

В результаті обчислення модуля одержується вектор Zone, кожен елемент якого являє собою матрицю ідентичної розмірності із відповідним сегментом зображення (NxN). У свою чергу кожен елемент такої матриці може приймати три значення: 1, 2 або що визначає, до якої з можливих зон належить піксель сегмента S з ідентичними координатами.

Наведемо результати поділу зображення на сегменти та класифікації пікселів по зонам для деяких з цих сегментів (рис.5.19). Нумерація сегментів наступна: у першому стовпці - з 1-го по 16-й, у другому - з 17-го по 32-й і т.д. Значення порогів: Ті := 6, Т2 := 3.

□□□□□□ННИНПИЯППП Zone =

□□□□юипниннаяшп

□□□ШПаЕЭННННЕЗПППП

□□□□□иаииннннппп □□□ипннаияиншнпп

□□□ЕШЕННШНННІЇІСП □□□ЕЕННИПЕОЕОИЕП □□□ЕЕВПЕПСОЕШПЕП □□□■ЯНаННЕІНЕЗИНИЕП □□□ЯНКИИНЯНИЕМЮ □□□□■□□□ННИЕИЕПП □□□□НЕЕЭСЮВОЭНПИН

□□□□□□ииннанзиаи яаияншшшняшн

Zonen

Zone

1

2

1

2

1

2

1

2

2

1

2

1

2

1

2

1

1

2

1

2

1

2

1

2

2

1

2

1

2

1

2

1

1

2

1

2

1

2

1

2

2

1

2

1

2

1

2

1

1

2

1

2

1

2

1

2

2

1

2

1

2

1

2

1

2

2

2

11

1

1

1

1

2

2

2

1

1

1

1

1

2

2

2

1

1

1

1

1

2

2

1

1

1

1

1

1

-"

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

40

2

2

2

2

и

1

1

1

2

2

2

2

1

1

1

1

2

2

2

2

1

1

1

1

2

2

2

2

1

1

1

1

2

2

2

2

1

1

1

1

2

2

2

2

2

1

1

1

2

2

2

2

2

2

1

1

2

2

2

2

2

2

1

1

а)

б)

в)

г)

Рис.5.19. Схема поділу зображення на сегменти (а) і приклади класифікації пікселів 3-го (б),

7-го (в) і 40-го (г) сегментів по зонам.

5) Проводимо поділ кожної зони на категорії "A" і "Z" у відповідності до індивідуальної маски. Простий програмний модуль генерування псевдовипадкових масок зображено нижче.

(М.37)

Для кожного з Ns сегментів зображення генерується масив ц розмірністю NxN. На початку такого генерування створюється вектор ц' нульових елементів розмірністю N . Поло­вині з цих елементів присвоюється символьне значення "А", причому присвоєння відбувається з псевдовипадковим кроком, який визначається заданим значенням параметру Ko і поточними значенням змінних циклу i та j (для того, щоб не вийти за межі розмірності вектора, вико­ристовується функція повернення залишку від ділення). Всім іншим елементам присвоюється значення "Z". Після заповнення, вектор ц' згортається до матриці ц. Приклади деяких масок, одержаних для Ko := 123, зображені на рис.5.20.

М-1 =

М-2 =

"А"

її ^711

її ^711

"А"

її ^711

"А"

"А"

її ^711

її ^711

"А"

її ^711

"А"

"А"

її ^711

"А"

її ^711

и ^711

"А"

її ^711

її ^711

"А"

її ^711

"А"

"А"

и ^711

її ^711

"А"

її ^711

"А"

"А"

її ^711

"А"

"А"

"Z"

"А"

"Z'

"Z'

"А"

"Z'

"А"

"А"

"Z'

"Z'

"А"

"Z'

"А"

"А"

"Z'

"Z"

"А"

"А"

"А"

"Z'

"А"

"Z'

"Z"

"А"

"Z'

"А"

"Z'

"А"

"А"

йди

її ^711

"А"

її ^711

її ^711

"А"

її ^711

"А"

"А"

її ^711

її ^711

"А"

її ^711

"А"

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51 


Похожие статьи

Г Ф Конахович - Оцінка ефективності систем захисту інформації в телекомунікаційних системах

Г Ф Конахович - Комп'ютерна стеганографія теорія і практика