Мета роботи: набуття практичних навичок з імітаційного моделювання паралельних аналого-цифрових картинних перетворювачів оптичних зображень.
1. Ознайомитись з методами кодування оптичної інформації та принципами роботи аналого-цифрового картинного перетворювача (АЦКП), користуючись рекомендованою літературою.
2. Задати в матричній формі вхідне напівтонове зображення розмірністю N*N з L рівнями квантування, де параметри N і L обираються відповідно до варіанту з таблиці 6.1.
3. Обрати за своїм варіантом вигляд функції перетворення f енергетичної характеристики сформованого оптичного зображення в часовий інтервал тривалості t.
4. Скласти блок-схему алгоритму обчислень і програмну реалізацію для процесу визначення керуючих сигналів логіко-часового АЦКП розгорнутого перетворення і двійкового кодування з кількістю розрядів log L (2год.).
5. Скласти блок-схему алгоритму роботи і її програмну реалізацію для імітації роботи логіко-часового АЦКП для перетворення вхідного зображення в набір розрядних зрізів. Навести контрольний приклад (4 год.).
6. Роздрукувати тексти програм, початкові та кінцеві результати.
7. Оформити звіт по роботі.
№ п/п |
N |
L |
F(p) |
№ п/п |
N |
L |
F(p) |
|
1 |
8 |
8 |
2x+5x |
9 |
8 |
4 |
x3-sinx |
|
2 |
4 |
8 |
ln(1,5x) |
10 |
8 |
4 |
ctgx |
|
3 |
4 |
16 |
4sinx |
11 |
16 |
8 |
|
|
4 |
8 |
16 |
cosx-3x |
12 |
4 |
16 |
x2-cosx |
|
5 |
8 |
16 |
2x3-4 |
13 |
4 |
16 |
x3+4x-6 |
|
6 |
16 |
8 |
2ex |
14 |
16 |
4 |
sinx-0,2x |
|
7 |
16 |
8 |
|
15 |
16 |
8 |
x2+2x-1 |
|
8 |
16 |
4 |
2xsinx |
Теоретичні відомості
Візуальна інформація, яка має бути оброблена, вводиться в пристрій пам’яті з спеціального пристрою введення (спеціального датчика) або може бути результатом попередніх обчислень. В любому випадку така інформація порівнюється з деякою картиною, що сприймається людиною за допомогою зору. Це співставлення і є принциповою відмінністю візуальної інформації від числової, символьної або будь-якої іншої, яка може бути представлена в пам’яті ЕОМ.
Зрозуміло, що візуальна інформація має достатньо точно відображати стан яскравості або прозорості кожної точки картини, що сприймається зором. Для того, щоб представити візуальну інформацію в цифровій формі, необхідно дискретизувати простір і проквантувати значення яркості в кожній точці дискретизації. Найпростіше і природніше дискретизація досягається за допомогою координатної сітки, що утворена лініями, які паралельні осям декартової системи координат. В кожному вузлі такої решітки виконується відлік яскравості або прозорості носія інформації, яка сприймається зором, а потім квантується і представляється в пам’яті ЕОМ.
Таке представлення візуальної інформації називається рецепторним, природнім, поелементним або матричним. Таке представлення заслуговує на увагу в першу чергу найбільш зручного способу для описання процесу введення і виведення зображень і дозволяє легко встановити однозначну відповідність між картиною і її представленням в пам’яті ЕОМ.
Визначення 1 Аналого-цифровим картинним перетворювачем (АЦКП) називається пристрій, що має оптичний картинний вхід і один або декілька оптичних картинних виходи і призначене для одночасного перетворення всіх точок вхідного напівтонового зображення в набір бінарних картин (розрядних зрізів).
Визначення 2 Розрядним зрізом (РЗ) – називається двоградаційна (бінарна) картина, що складається із оптичних сигналів, що відповідають однойменним розрядним кодам інтенсивностей відліків вихідного напівтонового зображення.
В розглянутому логіко-часовому (ЛЧ) способі картинного аналого-цифрового перетворення розгортаючого типу використовується перетворення енергетичної характеристики оптичного випромінювання (оптичної потужності, інтенсивності, яркості) точок вхідного напівтонового зображення в тривалості часових інтервалів. Причому перетворення виконується в блоці 1 рис.6.2. одночасно для всіх просторових відліків вхідного напівтонового зображення. Іншими словами, оптичній потужності кожного відліку pkl з координатами (k,l) в матриці P із M´N дискретних відліків ставиться в відповідність часовий інтервал тривалістю tkl відповідно до функції перетворення f блоку 1.
tkl=f(pkl), (6.1)
Функція f не обов’язково повинна бути лінійною, головне щоб вона була монотонною (неперервною і однозначною).
Рис.6.2. Структурна схема логіко-часового АЦКП розгортаючого перетворення.
Тривалість часових інтервалів tkl задається часом затримки коротких оптичних імпульсів відносно часу початку перетворення. Сукупність оптичних імпульсів з виходу блоку перетворення 1 подається на вхід мультиплікатора зображень 2, який розмножує цю сукупність на n однакових зображень, кожне з яких поступає на інформаційний вхід відповідної двовимірної оптичної D-защіпки 35 (s=) з стробуванням. На входи стробування 45 D-защіпки подаються керуючі сигнали y1-yn від блоку управління 5, який також виробляє імпульс запуску перетворювача 1 в момент t0. D-защіпка працює таким чином, що вхідний оптичний імпульс переведе її комірку в одиничний стан, якщо в момент його приходу на вхід стробування буде одиничний керуючий y=1. Якщо в момент подання оптичного імпульсу y=0, то стан D-защіпки залишається нульовим. Процес квантування і кодування часових інтервалів здійснюється на двовимірних D-защіпках 31-3n шляхом фіксації в моменти їх закінчення логічних розрядних кодових послідовностей y1-y2 коду, що використовується. Оскільки кодова послідовність y1 старшого розряду коду поступає на вхід стробування D-защіпки 31, то в ній буде зафіксована бінарна матриця , що є старшим розрядним зрізом В1 вхідного напівтонового зображення Р, на D-защіпки 32 – другий розрядний зріз В2 і т.д., а на D-защіпки 3n – молодший розрядний зріз Bn. Для пояснення роботи ЛВ АЦКП на рис.6.3. подані часові діаграми його роботи для прикладу перетворення оптичних потужностей двох точок pkl=5,4·Dp і puv=2,8·Dp в прямий трирозрядний код, розрядні кодові послідовності якого мають вигляд y1, y2 і y3 на рис.6.3. На рис.6.3 видно, що оптичні потужності 5,4·Dp і 2,8·Dp перетворюються в відповідні часові інтервали 5,4·Dt і 2,8·Dt. В момент часу (t0+5,4·Dt) логічні стани розрядних кодів послідовностей були: y1=1, y2=0 і y3=1. Отже, оптичній потужності точки pkl=5,4·Dp буде поставлено в відповідність код [101], причому логічний стан y1=1 буде зафіксовано в комірці (k,l) D-защіпки 31, y2=0 буде зафіксовано в комірці (k,l) D-защіпки 32, а y3=1 буде зафіксовано в комірці (k,l) D-защіпки 33. В момент часу (t0+2,8·Dt) стани розрядних кодових послідовностей: y1=0, y2=1 і y3=0. Отже, оптичній потужності точки pkl=2,8·Dp буде поставлено в відповідність код [010], а стани y1=0, y2=1 і y3=0 буде зафіксовано відповідно в комірках (u,v) D-защіпок 31, 32 і 33.
Рис.6.3. Часова діаграма роботи ЛЧ АЦКП.
На цьому період перетворення (Тпр на рис.6.3) закінчується, потім йде інтервал часу Тч для зчитування інформації з D-защіпок 31-3n на зовнішні пристрої, після чого за сигналом “Запуск” з виходу блоку управління 5 D-защіпки обнуляються і починається наступний період перетворення. На рис.6.3 в другому періоді перетворення значення точок інтенсивності змінились: pkl=4,2·Dp і puv=7,7·Dp, як видно з рис.6.3. вони будуть закодовані відповідно [100] і [111].
Алгоритм синтезу управляючих сигналів при заданих функції перетворення f і коді перетворення є наступним:
1. Будуємо графік передаточної функції f блоку 1 в координатах (р,t) – рис.6.4, де р – оптична потужність відліку вхідного зображення, t – тривалість відповідного часового інтервалу. Для прикладу на рис.6.4 представлений графік гіперболічного закону перетворення:
, (6.2)
де А і В – постійні величини.
2. На осі абсцис відкладаємо точки pj (j=) оптичної потужності . Для прикладу на рис.6.4 j= і вибрані однакові кроки квантування Dpj, рівні Dp.
3. За заданими значеннями оптичних потужностей pj, що обмежують інтервал квантування, визначаємо граничні значення тривалостей часових інтервалів tj (j=):
tj=f(pj). (6.3)
4. Значення логічних рівнянь керуючих сигналів yi (i=) (y1¸y3 на рис.6.4.) на інтервалі [tj,tj-1] (при j=) визначається відповідними цифрами в коді числа (j-1), що використовується. Для функції f що зростає t0=0, а для спадаючої (як на рис.6.4) t0=+¥. Наприклад, на рис.6.4 інтервалу [t1,t2] відповідають вхідні оптичні потужності пікселів, що відповідають 1 градації оптичної потужності, а прямий двійковий код числа 1 рівний [001], отже на інтервалі [t1,t2] і y1=0, y2=0, y3=1 т.д.
ЛЧ спосіб картинного аналого-цифрового перетворення дозволяє без змін конфігурації системи (рис.6.2) здійснювати функціональне перетворення оптичний сигнал – код. Для цього потрібно сформувати визначеним способом керуючі сигнали yi за описаним вище алгоритмом, але з одним уточненням. В цьому випадку п.2 алгоритму буде наступний: “По осі абсцис відкладаються точки p’j (j=) з кроками, рівними , де F – функція перетворення (наприклад, логарифмічна, експоненціальна або друга), pj-pj-1=Dpj – кроки квантування оптичної потужності.
Рис.6.4. Приклад отримання керуючих сигналів y1 – yn за заданою функцією f блоку перетворення 1
#include <stdlib.h>
#include <stdio.h>
int main(){
int i,N,L;
printf("\nVvedite razmernost’ matricu: ");
scanf("%d",&N);
printf("\nVvedite chislo gradatsiy: ");
scanf("%d",&L);
int *A;
for(i=0;i<N*N;i++){
*(A+i)=random(L);}
printf("Ishodnaya matrica\n");
for(i=0;i<N*N;i++){
if(i%N==0) printf("\n");
printf(" %2d ", *(A+i));}
int m,l,n;
m=L;
n=0;
for(i=0;;i++){
l=m%2;
m=m/2;
if(l==1) break;
n++;}
int *B,j;
for(i=0;i<N*N;i++){
m=*(A+i);
for(j=n-1;j>=0;j–){
l=m%2;
m=m/2;
*(B+i+j*N*N)=l;}}
printf("\n Porozryadnye srezu \n");
for(i=0;i<N*N*n;i++){
if(i%N==0) printf("\n");
if((i%(N*N))==0) printf("\n \n");
printf(" %2d ",*(B+i));}
printf("\n");
system("pause");
return 0;
}