Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Суть роботи алгоритму

Читайте также:
  1. I. Мета роботи
  2. II.Мета роботи.
  3. Аспекти роботи над зв'язним мовленням
  4. Будова і принцип роботи металевого дифузійного насоса ММ-40А
  5. ВАРІАНТИ ЗАВДАНЬ РОБОТИ
  6. ВАРІАНТИ ЗАВДАНЬ РОБОТИ
  7. ВАРІАНТИ ЗАВДАНЬ РОБОТИ

Наприклад у нас є зображення 7 на 7 пікселів:

1 8 15 22 29 36  
2 9 16 23 30 37  
3 10 17 24 31 38  
4 11 18 25 32 39  
5 12 19 26 33 40  
6 13 20 27 34 41  
7 14 21 28 35 42 49

Ми їх групуємо у квадрати 2 на 2 піклеля зверху вниз і зліва на право:

І IV VII  
 
ІІ V VIII  
 
ІІІ VI IX  
 
7 14 21 28 35 42 49
             

Чому ми виділили крайні пікселі: справа у тому, що ці крайні пікселі не можуть утворити квадрати, тому їх переміщення є проблемо, а вирішенням є не переміщення цих пікселі, тому якщо виразити цей підхід псевдокодом[4], то переміщувані пікселі це пікселі від [номер_стрічки][1][5] до

[номер_стрічки][ширина_зображення - ширина_зображення mod[6] ширина_квадрата] і від [1][номер_стовбчика] до [висота_зображення - висота_зображення mod висота_квадрата][1].

Далі ми переміщаємо квадрати симетрично до горизонтальної центральної вісі (квадрати II, V, VIII):

ІII IV IX  
 
ІІ V VIII  
 
I VI VII  
 
7 14 21 28 35 42 49
             

 

Квадрати центральної вісі (II, V, VIII) не переміщаються тому, що їх нікуди переміщати (ні з ким міняти). Але якщо б буде щось на кшталт цього:

І  
 
ІІ  
 
III  
 
IV  

То при переміщенні квадратів центральна вісь буде на межі II і III, і квадратів, що не будуть переміщатися не буде:

ІV  
 
ІІI  
 
II  
 
I  

Щоб «заплутати» очі людини, що бачить зашифроване зображення парні стовпчики шифруватись не будуть!

Тобто стовпчик 2 шифруватись не буде:

IV  
 
V  
 
VI  
 

Далі буде виконуватись перемішування по вертикалі, реалізація та ж, що і у перемішуванні по горизонталі:

III IV IX  
 
ІІ V VIII  
 
I VI VII  
 
7 14 21 28 35 42 49
             

 

IX IV III  
 
ІІ V VIII  
 
VII VI I  
 
7 14 21 28 35 42 49
             

Отже, я гадаю, що алгоритм шифрування досить зрозумілий.

2.4 Фактична реалізація алгоритму

Фактично весь алгоритм є 2 блоками з 4 вкладених циклів: перший блок відповідає за шифрування по вертикалі, а другий – по горизонталі. Бо обидва блоки можна узагальнити однією формулою, бо шифрування по горизонталі можна представити як шифрування по вертикалі, де ширина – це висота оригінального зображення, а висота – зрозуміло, ширина оригінального зображення.

Отже приступимо[7]:

Нехай:

const Середина = ( Висота - Висота mod Розмір_Квадрата ) / 2

– (( Висота - Висота % Розмір_Квадрата) / 2) mod Розмір_Квадрата

const Кінець_ширини = Ширина Ширина mod Розмір_Квадрата Розмір_Квадрата

Варто зазначити, що при кодуванні по горизонталі замість Висота потрібно поставити Ширина і, звичайно, навпаки.

Формули, що вираховують const Середина і const Кінець встановлені експериментально.

const Кінець – це не власне кінець зображення, а крайня межа пікселів, що шифруються Розмір_Квадрата.

в – тимчасова висота.

ш – тимчасова ширина.

 

Отже:

1| Від в := 0 поки в < Середина, в := в + Розмір_Квадрата;

2| Від ш := 0 поки ш < Кінець, в := в + Розмір_Квадрата * 2;

3| Від зміщення_по_висоті := 0 поки зміщення_по_висоті < 10,

4| зміщення_по_висоті = зміщення_по_висоті + 1;

5| Від зміщення_по_ширині := 0 поки зміщення_по_висоті < 10,

6| зміщення_по_висоті = зміщення_по_висоті + 1;

7| Переміняти місцями пікселі

8| [ в + зміщення_по_висоті ] [ ш + зміщення_по_ширині ] і

9| [ Кінець _висотив + зміщення_по_висоті ] [ ш + зміщення_по_ширині ];

 

Додаткові пояснення:

· 2| в := в + Розмір_Квадрата * 2 – мы «перескакуємо» 1 квадрат.


Дата добавления: 2015-07-20; просмотров: 56 | Нарушение авторских прав


Читайте в этой же книге: Етапи шифрування | Структура файлу | Обрання мови програмування | Висновки |
<== предыдущая страница | следующая страница ==>
Види шифрування| Висновки

mybiblioteka.su - 2015-2024 год. (0.008 сек.)