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

Страницы:
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 

"А"

її ^711

и ^711

"А"

її ^711

"А"

"А"

її ^711

"А"

її ^711

и ^711

"А"

її ^711

її ^711

"А"

її ^711

"А"

"А"

"Z'

"Z'

"А"

"Z'

"А"

"А"

"Z'

"А"

"А"

"Z'

"А"

"Z'

"Z'

"А"

"Z'

"А"

"А"

"Z'

"Z'

"А"

"Z'

"А"

"А"

"Z'

"Z'

"А"

"Z'

"А"

"А"

"Z'

"А"

"Z'

и ^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'

"А"

"Z'

"А"

"А"

"Z'

1

2

1

1A

1Z

2A

2Z

Рис.5.20. Приклади масок розбиття по категоріям для сегментів 1-3.

6) Модуль вбудовування бітів (М.38) побудований на основі виразів (5.10)-(5.12). На початку модуля створюється вектор двійкових даних на основі приховуваного повідомлення M.

Циклом зміни s проводиться вбудовування окремого біта b <г- Mvec_bins до блоку Б <г- Ss з

урахуванням відповідного масиву зон Z <- Zones та маски м <- цs.

Розглянемо процедуру вбудовування більш детально. На основі даних стосовно нале­жності пікселів s-го блоку до зони 1 або 2, а також до категорії "А" або "Z", проводиться підрахунок кількості пікселів, що задовольняють одній з можливих комбінацій зон і категорій (1А, 1Z, 2А, 2Z). Результати заносяться до відповідного елеме­нту масиву n (рис.5.21), який на початку підрахунку мав ну­льове значення. Аналогічно проводиться підрахунок загальної яскравості Ек пікселів, що належать тій або іншій парі зон і категорій (конфігурація заповнюваного при цьому масиву відповідає попередньому випадку - рис.5.21). За одержаними результатами обчислюється масив к середніх значень яскра­вості кожної з чотирьох груп пікселів. Для скорочення про­грамних рядків дане обчислення ведеться з використанням операції векторизації - одночасного проведення деякої скаляр­ної математичної операції (у нашому випадку - ділення) над

усіма елементами масиву(-ів), поміченими знаком векторизації «"*». Звичайно, така паралель­ність обчислення відноситься не до самих обчислень, а лише до їх алгоритмічного запису. Тому кардинального зменшення часу виконання операції чекати при цьому не доводиться.

Далі для кожної зони проводиться розрахунок середніх значень яскравості Л (формули (5.11)), які необхідно зберегти і після проведення вбудовування біту до сегменту зображення.

Для розв'язку системи рівнянь (5.10), (5.11) з двома невідомими (Я,^ і "кц або А2a і "2z) використано вбудовану функцію MathCAD розв'язку лінійної системи з n рівнянь при n невідомих - lsolve(H, V), де H - квадратна несингулярна матриця; V - вектор, що має ту саму кількість рядків, що й матриця H.

Для зручності пояснення, перепишемо дані системи у відповідності до прийнятих у програмному модулі (М.38) позначень:

категорії

Рис.5.21. Конфігурація масивів n та Ек.

- при b = 1: nx,1 x,1 + nx,2 x,2 x '(nx,1 + nx,2) ,]

к x,1 x,2 = E ;

- при b = 0: nx,1 x,1 + nx,2 x,2 x '(nx,1 + nx,2),]

кx,2 x,1 = E ;

де x - номер зони.

=> H

{ nx,1   nx,2 Л 1       -1

f

nx,1 nx,2

-1 1

V

V

Лx '(nx,1 + nx,2E

Лx '(nx,1 + nx,2Y

E

(М.38)

При будь-якому значенні біта b, функція lsolve обчислюється двічі (для кожної із зон). Результатом обчислення функції lsolve є вектор з двох елементів, значення яких відповідають шуканим невідомим. Одержані два вектори об'єднуємо стовпець до стовпця, а результат об' єднання транспонуємо (щоб перейти до конфігурації, зображеної на рис.5.21).

На завершальному етапі обчислюється різниця (5.12). Результат обчислення (який, звичайно, також має конфігурацію, що відповідає рис.5.12) присвоюється s-му елементу век­тора А.

7) Проводимо модифікацію блоків зображення, використовуючи програмний модуль (М.39). При цьому, якщо номер блоку s перевищує загальну кількість біт у повідомленні (Lm), модифікація блоку не проводиться.

(М.39)

stack'

(М.40)

stack

8) Повертаємо блоки на відповідні їм місця у зображенні, ВМ ;;

користуючись модулем (М.40). На першому етапі перші X/N блоків (у нашому випадку - 16) об'єднуються в один спільний масив шляхом об'єднання остан­нього рядка попереднього блоку з першим рядком наступного (функція stack). В подальшому за допомогою циклу подібна операція повторюється над кож­ною наступною групою з X/N блоків. Згруповані таким чином блоки паралельно об'єднуються між собою стовпець до стовпця (функція augment).

Відтворене на основі масиву BM зображення у більшості випадків буде занадто спотвореним (рис.5.22) через вже згаданий вище вихід значень інтенсивностей пікселів за межі [0; 255]. Тому даний масив необхідно додатково пронормувати, для чого, наприклад, можна використати програмний модуль (М.41).

(М.41)

Рис.5.22. Порівняння первинного (B), модифікованого (BM) (при значенні E = 35) і додатково нормованого (BMnorm) зображень

9) Перейдемо до видобування прихованого повідомлення. Прийняті позначення: BM* -заповнений контейнер; X* та Y* - відповідно, розміри контейнера по вертикалі (кількість рядків пікселів) та горизонталі (кількість стовпців); N* - розмірність виокремлюваного блоку контей­нера; N*s - загальна кількість блоків; T*1, T*2 - значення 1-го і 2-го порогів порівняння; ц* -масив секретних масок.

Програмні модулі поділу зображення на блоки (sM*), класифікації пікселів блоку на зони (Zone*) є аналогічними, відповідно, (М.35) і (М.36).

На відміну від операції вбудовування, коли обчислення кількості пікселів n, що за­довольняють одній з можливих комбінацій зон і категорій, а також середніх значень яскравості к кожної з чотирьох груп пікселів велося безпосередньо у програмному модулі (див. (М.38)), при видобуванні зазначені масиви необхідно сформувати окремо (М.42), .43).

(М.42)

Порівняння середніх значень яскраво­сті для кожної з зон (формула (5.13)) прово­димо, використовуючи модуль (М.44).

Безпосередньо модуль видобування -.45), в якому реалізовано перевірку умов, викладених у теоретичному описі даного ме­тоду. Параметр є обирається достатньо близь­ким до нуля (~ 0.05).

Страницы:
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 


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

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

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