Оқулық Алматы, 2012 2 (075. 8) Ббк 32. 81 А 99



Pdf көрінісі
бет27/30
Дата17.04.2020
өлшемі8,17 Mb.
#62878
түріОқулық
1   ...   22   23   24   25   26   27   28   29   30
Байланысты:
aiajanov-akparattyk-juielerdin


59-сурет8 х 8 DСТ үшін базистік атқарымдар жүйесі

355
 
қарайтын болсақ, онда олардың жартысы – нөлдік немесе ең кіші 
мəнге ие (1–2) болатынын көретін боламыз. Бұл ешқандай нұқсан 
келтірусіз алып тасталуы мүмкін немесе ең жуық бүтін мəнге дейін 
дөңгелектенуі мүмкін жоғары жиіліктер. 
DCT əрбір коэффициентін кванттау матрицасына сəйкес белгілі 
бір санға бөлу кванттау болып табылады. Бұл матрица, я тіркелген 
болуы, я неғұрлым сапалы жəне тиімді қысу үшін алғашқы суреттерді 
талдау нəтижесінде алынған болуы мүмкін. Бөлінетін сан неғұрлым 
үлкен болса, бөлу нəтижесінде нөлдік мəн соғұрлым үлкен, қысу 
күштірек жəне жоғалтулар елеулі болады. 
11-кесте.
 JPEG алгоритм жұмысы
Бұрын алынған DCT нəтижесі
235,6
-1
-12,1
-5,2
2,1
-1,7
-2,7
1,3
-22,6
-17,5
-6,2
-3,2
-2,9
-0,1
0,4
-1,2
-10,9
-9,3
-1,6
1,5
0,2
-0,9
-0,6
-0,1
-7,1
-1,9
0,2
1,5
0,9
-0,1
0
0,3
-0,6
-0,8
1,5
1,6
-0,1
-0,7
0,6
1,3
1,8
-0,2
1,6
-0,3
-0,8
1,5
1
-1
-1,3
-0,4
-0,3
-1,5
-0,5
1,7
1,1
-0,8
-2,6
1,6
-3,8
-1,8
1,9
1,2
-0,6
-0,4
Кванттау кестесі
16
11
10
16
24
40
51
61
12
12
14
19
26
58
60
55
14
13
16
24
40
57
69
56
14
17
22
29
51
87
80
62
18
22
37
56
68
109
103
77
24
35
55
64
81
104
113
92
49
64
78
87
103
121
120
101
72
92
95
98
112
100
103
99
Кванттау нəтижесі 
15
0
-1
0
0
0
0
0
-2
-1
0
0
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

356
60-сурет. Сызықтық тізбектіліктегі DCT-спектр матрицаларының 8х8 
түрлендірілуі
Сызықтық тізбектіліктегі DCT-спектрі матрицаларының 8х8 
түрлендіруі JPEG алгоритм жұмысының келесі кезеңі болып санала-
ды. Бірақ, бұл, мүмкіндік бойынша бүкіл үлкен мəні мен спектрдің 
бүкіл нөлдік мəнін бірге топтастыратындай етіп жасалады. Бұл 
үшін, DCT коэффициенттері матрицаларының элементтерін (60-су-
рет) сол жақ жоғарғы бұрыштан оң жақ төменгі бұрышқа қарай таза-
лау қажет болатыны анық. Бұл рəсім иректіксканирлеу деп аталады. 
Осындай түрлендіру нəтижесінде DCT квантталған 
коэффициенттердің 8х8 квадраттық матрицасы 64 саннан тұратын 
сызықтық тізбектілікке айналады, оның үлкен бөлігі – қатар жүретін 
нөлдер. Осындай ағындарды қайталау ұзындықтарын кодтау жо-
лымен өте тиімді қысуға болады. 
Алынған тізбектіліктерді белгілі бір статистикалық алгоритм-
мен кодтау (қайыра қысу) JPEG алгоритм жұмысының келесі кезеңі 
болып саналады. Əдетте арифметикалық кодтау немесе Хаффмен 
алгоритмі пайдаланылады. Нəтижесінде, өлшемі алғашқы дерек-
тер массивінің өлшемінен түбегейлі кіші болатын жаңа тізбектілік 
алынады. 
JPEG алгоритмге сəйкес қысылған деректерді декодтау, код-
тау сияқты, дəл сондай түрде жүргізіледі. Хаффмен (немесе LZW) 
арифметикалық кодтау əдісімен бұзбайтындай етіп ашу жəне 

357
 
сызықтық тізбектіліктерді өлшемі 8х8 сандардың блоктарына қою 
кезінде,  спектрлік компоненттер кодтау кезінде сақталған квант-
тау кестелерінің көмегімен деквантталады. Бұл үшін DCT-тың 
ашылған 64 мəні кестелердің тиісті сандарына көбейтіледі. Осыдан 
кейін əрбір блок, оның рəсімі тікелей түрлендіруге сəйкес келетін 
жəне түрлендіру матрицасындағы таңбалармен ғана ерекшеленетін, 
кері косинустық түрлендіруге тартылады. Декодтау кезіндегі 
əрекеттердің тізбектілігі мен алынған нəтиже төменде берілген 
12-кестеде кескінделген.
Қалпына келтірілген деректер алғашқы деректерден біршама 
өзгешеленетіні анық. Бұл заңды болып саналады, өйткені JPEG, 
жоғалтулармен қысу сияқты əзірленген болатын. 
12-кесте. 
Əрекеттер тізбектілігі жəне декодтау кезінде алынған нəтиже
Квантталған деректер
15
0
-1
0
0
0
0
0
-2
-1
0
0
0
0
0
0
-1
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Декквантталған деректер
240
0
-10
0
0
0
0
0
-24
-12
0
0
0
0
0
0
-14
-13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

358
Кері DCT нəтижесі
144
146
149
152
154
156
156
156
148
150
152
154
156
156
156
156
155
156
157
158
158
157
156
155
160
161
161
162
161
159
157
155
163
163
164
163
162
160
158
156
163
164
164
164
162
160
158
157
160
161
162
162
162
161
159
158
158
159
161
161
162
161
159
158
Салыстыру үшін – алғашқы деректер
139
144
149
153
155
155
155
155
144
151
153
156
159
156
156
156
150
155
160
163
158
156
156
156
159
161
161
160
160
159
159
159
159
160
161
162
162
155
155
155
161
161
161
161
160
157
157
157
161
162
161
163
162
157
157
157
162
162
161
161
163
158
158
15
Төменде көрсетілген 61-суретте алғашқы бейне, сондай-ақ JPEG 
алгоритмдерді пайдалана отырып, 10 есе (сол жақтан) жəне 45 есе 
(ортасында) қосылған бейне кескінделген. Соңғы жағдайда са-
паны жоғалту толықтай байқалады, бірақ көлемі бойынша ұту да 
айтарлықтай болады. 
 
61-сурет. JPEG алгоритм пайдаланылған алғашқы жəне қысылған бейне

359
 
Фрактальді кодтау – бұл, нақты бейнелерден, бейненің 
фрактальді қасиетін сипаттайтын математикалық деректердің 
жиынтығынан тұратын, растрларды кодтау үшін қолданылатын 
математикалық үдеріс. Фрактальді кодтау, бүкіл жасанды жəне ба-
сым көпшілік табиғи объектілер, фрактальдар деп аталатын, бірдей, 
қайталанатын суреттер түріндегі артық ақпараттан тұратын фактіге 
негізделеді. Фрактальді қысу бейне, итерирленетін атқарымдар 
(Iterated Function System – IFS) жүйелері коэффициенттерінің 
көмегімен неғұрлым жиынтық (компактілі) формада көрсетілетініне 
негізделеді. 
Фрактальді қысу үдерісінің өзін қарастырмас бұрын, IFS қалай 
бейнені жасайтынын анықтап аламыз, яғни декомпрессиялау 
үдерісін қарастырамыз. 
Нақтырақ айтатын болсақ, IFS, біздің жағдайымызда бір 
бейнені екінші бейнеге ауыстыратын үшөлшемді аффиналық 
түрлендіргіштердің жиыны бөлып көрсетіледі. Үшөлшемдік 
кеңістіктегі нүктелер (Х бейне нүктелерінің координатасы, Y 
бейне нүктелерінің координатасы жəне І нүктелер жарықтығы) 
түрлендіруге тартылады. 
Бұл үдерісті ықшамдап мынадай түрде түсіндіруге болады. 
Алғашқы сурет бейнеленген экраннан жəне екінші экранға бейнені 
кескіндейтін линзалар жүйесінен тұратын, суретті көшіргілейтін 
машинаны (62-сурет) қарастырамыз. Суретті көшіргілейтін машина 
мынадай əрекеттерді орындауы мүмкін:
• линзалар еркін формада бейненің бөлігін жаңа бейненің кез кел-
ген өзге орнына кескіндеуі мүмкін;
• бейнелеу кескінделетін аймақтар, қиылыспайды;
• линза жарықтықты өзгертуі жəне контрастылықты кішірейтуі 
мүмкін;
• линза айнадай көрсетуі жəне өз бейнесінің фрагментін бұруы 
мүмкін;
• линза өз бейнесінің фрагментін масштабтауы (кішірейтуі) тиіс.
Линзаны орнына қойып жəне олардың сипаттамаларын өзгертіп, 
алынатын бейнемен басқаруға болады. Машина жұмысының бір 
итерациясы мынадан тұрады: алғашқы бейне бойынша жобалау 
көмегімен жаңасы құрылады, содан кейін жаңа алғашқы ретінде алы-
натын болады. Итерациялар үдерісінде біздің, өзгеруін тоқтататын 
бейнені алатынымыз расталатын болады. Ол линзаның орналасуы 

360
мен сипаттамаларына ғана қатысты болады жəне алғашқы сурет-
терге тəуелді болмайды. Бұл бейне «қозғалмайтын нүкте» немесе 
аталған IFS-тің аттракторы деп аталады. Тиісті теория, əрбір IFS 
үшін тура бір қозғалмайтын нүктенің болуына кепілдік береді. 
 
 
 
Ⱥɥԑɚɲԕɵ
 ɛɟɣɧɟ 
 
Ⱥɥɵɧɚɬɵɧ
 ɛɟɣɧɟ 
ɒɚɦ
 
Ʌɢɧɡɚɥɚɪ
62-сурет. Суретті көшіргілейтін машина
Өйткені линза бейнесі қысушы болып саналады, əрбір лин-
за, біздің бейнедегі өзіне ұқсас аймақты анық береді. Өзіне 
ұқсастығының арқасында қалай үлкейтсек те, бейненің күрделі 
құрылымын аламыз. Осылайша, итерацияланатын атқарымдар 
жүйесі фрактальді – өзіне ұқсас математикалық объектіні беретіні 
түйсік арқылы түсінікті болады. 
Төрт аффиналық түрлендіргіштермен (немесе біздің термино-
логияларымыздағы «линзалармен» берілетін, «папоротник Барнсли» 
(63 а-суреті) жəне үш аффиналық түрлендіргіштермен берілетін 
«Серпинский үшбұрышы» (63 б-суреті)  IFS көмегімен алынған 
бейнелердің белгісі болып саналады. Əрбір түрлендіру, саналған 
байттармен кодталады, сол уақытта олардың көмегімен құрылған 
бейне ретінде, бірнеше мегабайтқа ие болуы мүмкін. 
Жоғарыда айтылғандардан, фрактальді кодердің қалай жұмыс 
істейтіні түсінікті болады жəне сондай-ақ, қысу үшін оған өте көп 
уақыт қажет екендігі анықталады. 
p
 

361
 
Нақты фрактальдік компрессия – бұл бейнелердегі өзіне ұқсас 
аймақтарды іздеу жəне ол үшін аффиналық түрлендіргіштер 
параметрлерін анықтау. Бұл үшін асып кетуді орындау жəне əртүрлі 
өлшемдегі бейненің бүкіл мүмкін фрагменттерін салыстыру қажет бо-
лады. Тіпті шағын бейнелер үшін дискреттілікті есепке алған кезде біз 
іріктеп алатын нұсқалардың астрономиялық санын алатын боламыз
əрі түрлендіру саныптарын (кластарын), мысалы, масштабтау есебінен 
күрт тартылу белгілі бір санда ғана уақыт бойынша айтарлықтай ұтуға 
əкелмейді. Бұдан өзге, бұл ретте бейне сапасы жоғалады. Фрактальдік 
қысу саласындағы зерттеулердің басым көпшілігі сапалы бейне алу 
үшін қажет архивтендіру уақытын азайтуға бағытталған. 
Рекурсивтік қысудың ағылшынша атауы – wavelet. Орыс тіліне ол 
толқынды қысу жəне су сылдырларын пайдаланып қысу ретінде ау-
дарылады. Алгоритм бірқалыпты ауысатын түрлі-түсті жəне ақ-қара 
бейнеге бағдарланған, рентгендік суретке түсіру типіндегі суреттер 
үшін мінсіз. Қысу коэффициенті 5 - 100 шектерінде беріледі жəне 
өзгереді. Əсіресе, диагональ бойынша өтетін шекараларда үлкен 
коэффициенттер беруге ұмтылыс жасау кезінде, «баспалдақтық эф-
фект» - өлшемі бірнеше пиксельдер болатын əртүрлі жарықтық са-
тылар көрінетін болады. 
Өз бейнесін кодтаудың орнына, əдетте 0-ге жуық мəні 
қабылданатын, бейнелердегі көрші блоктардың орташа мəндері 
 
ɚ
)   
 
 
 
ɛ

 
63-сурет. Итерацияланатын атқарымдар жүйелері 
коэффициенттерінің көмегімен алынған бейне

362
арасындағы айырма сақталатыны алгоритм идеясы болып табылады. 
Мəселен, a
2i
 жəне a
2i+1
 екі санды əрқашанда b
1
i
=(a
2i
+a
2i+1
)/2 жəне 
b
2
i
=(a
2i
-a
2i+1
)/2 түрде көрсетуге болады. Осыған ұқсас a
i
 тізбектілігі 
b
1,2
i
 тізбектілікке жұп болып ауыстырылуы мүмкін. 
Мысалдарды қарастырамыз. Біз пиксельдердің a
i
 жарықтығының 
сегіз мəнінен жолды қысамыз: (220, 211, 212, 218, 217, 214, 210, 
202). Мынадай b
1i
, и b
2i
 тізбектілік аламыз: ( 215.5, 215, 215.5, 206 ) 
жəне ( 4.5, -3, 1.5, 4). b
2i
 мəнінің 0-ге аса жақын екенін байқаймыз. 
b
1i 
-ні  a
i
 ретінде қарастырып, операцияны қайталаймыз. Аталған 
əрекет рекурсивті сияқты орындалады жəне алгоритм атауы содан 
шыққан. (215.5, 215, 215.5, 206)-дан (215.25, 210.75) (0.25, 4.75) 
аламыз. Алынған коэффициенттерді бүтінге дейін дөңгелектеп 
жəне қысып (мысалы, Хаффман алгоритмінің көмегімен), кодтау 
нəтижесі деп санауға болады. Біз өзіміздің түрлендіруімізді тізбекке 
екі рет қана қолданғанымызды байқаймыз. wavelet – түрлендіруді 
4 - 6 рет қолдану үшін өзімізге нақты мүмкіндік берсек, қысудың 
айтарлықтай коэффициенттеріне жетуге болады.
Екі өлшемдер үшін алгоритм жоғарыдағыға ұқсас жүзеге асыры-
лады.
Егер бізде анықтықтары a
2i,2j
, a
2i+1
, a
 2j, 
a
2i,2j+1
жəне a
2i+1
, a
2j+1
, төрт 
нүктелерден тұратын квадрат бар болса, онда
 
ԝɪ
ɪ
ɪ
1
j
,
i
b
=( a
2i,2j
+ a
2i+1,2j
+ a
2i,2j+1
+ a
2i+1,2j+1
)/4, 
2
j
,
i
b
=( a
2i,2j
+ a
2i+1,2j
- a
2i,2j+1
- a
2i+1,2j+1
)/4,
  
  
 
(187)
        
)
2
j
,
i
b
=( a
2i,2j
- a
2i+1,2j
+ a
2i,2j+1
- a
2i+1,2j+1
)/4, 
3
j
,
i
b
=( a
2i,2j
- a
2i+1,2j
- a
2i,2j+1
+ a
2i+1,2j+1
)/4, 
512х512 пиксельдер бейнесі үшін осы формулаларды пайдала-
нып, бірінші түрлендіруден кейін элементтердің өлшемі 256х256 4 
матрицаларын аламыз. (64 а жəне б-суреттер):
Алғашты 
бейне
B
1
B
2
B
3
B
4
 
Біріншісінде, бейненің кішірейтілген көшірмесі сақталатынына 


363
 
оңай көз жеткізуге болады, екіншісінде – горизонталь бойынша 
пиксельдер мəндері жұптардың орташа айырмдары, үшіншісінде – 
вертикаль бойынша пиксельдер мəндерінің орташа айырымдары, 
төртіншіде – диагональ бойынша пиксельдер мəндерінің орташа ай-
ырымдары. 
Екіөлшемді жағдай ұқастықтары бойынша түрлендіруді 
қайталауға жəне бірінші матрицаның орнына өлшемі 128х128 
4 матрица алуға болады. Түрлендіруді үшінші рет қайталап, 
қорытындысында 64х64 4 матрица, 128х1283 матрица жəне 256х256 
3 матрица аламыз. Əрі қарай қысу айырымдық матрицаларда, 
квантталғаннан кейін тиімді қысылатын көптеген нөлдік немесе 
нөлге жақын мəндердің болуы есебінен орындалады. 
Желілер бойынша бейнені беру кезінде бейненің бірте-бірте 
өзге, бейне басталар алдында біз оның кішірейтілген көшірмесін 
нақты сақтаймыз, тақырыбы (басы) бойынша «тереңдетілген» 
бейнесін көрсету оңайлатылады. JPEG жəне фрактальдік алгорит-
мнен өзгешелігі - аталған əдіс блоктармен, мысалы, 8х8 пиксельдер-
мен асып түспейді. Дəлірек айтқанда, біз 2х2, 4х4, 8х8 блоктармен 
асып түсеміз. Бірақ осы блоктар үшін коэффициенттердің тəуелсіз 
сақталатындығы есебінен, бейненің «мозаикалық» квадраттарға 
бөлшектенуін оңай болдырмауға болады. 
 
 
 
 
 
 
 
 
ɚ
)       ɛ) 
64-сурет. Wavelet түрлендіруді қолдану
«көріну» мүмкіндігін, оның өте оңай жүзеге асыруға мүмкіндік бере-
тін осы алгоритмінің артықшылықтарына жатқызуға болады. Бұдан 

364
ҚОРЫТЫНДЫ
• Бұзумен кодтау дəлелдерді деректерді жуықтап қалпына 
келтіру пайдасы үшін ескереді жəне шамасы бойынша кейбір 
бақыланатын қателер есебінен қысу коэффициенттерін алуға 
мүмкіндік береді, бұл кейбір уақытта бұзбайтын əдістер үшін қысу 
дəрежесінен ондаған есе артып кетеді. 
• Бұзатын қысу əдістерінің басым көпшілігі, деректердің 
өзін емес, одан, мысалы, Фурье дискреттік түрлендіруінің 
коэффициенттерінен, косинустық түрлендірудің коэффициенттері 
сияқты сызықтық түрлендірулерді кодтауға негізделген. 
• JPEG – аса қуатты алгоритм. Тəжірибеде ол, толық түрлі-түсті 
бейнелер үшін де-факто стандарты болып саналады. Анықтығы 
мен түсі салыстырмалы түрде бірқалыпты өзгеретін алгоритм 8x8 
аймақтарында сүйеніп пайдаланылады.
• Дабыл спектрі – бұл тиісті спектрлік құраушылар, нəтижесінде 
осы дабылды беретін жиынға кіретін коэффициенттер шамалары. 
Дабыл соған өзара бөлінетін, жекелеген спектрлік құраушылар, 
көбінесе базистік атқарымдар деп аталады.
• DCT əрбір коэффициентін кванттау матрицасына сəйкес белгілі 
бір санға бөлу кванттау болып табылады. Бұл матрица, я тіркелген 
болуы, я неғұрлым сапалы жəне тиімді қысу үшін алғашқы суреттерді 
талдау нəтижесінде алынған болуы мүмкін.
• Фрактальді кодтау – бұл, нақты бейнелерден, бейненің 
фрактальді қасиетін сипаттайтын математикалық деректердің 
жиынтығынан тұратын, растрларды кодтау үшін қолданылатын 
математикалық үдеріс. 
• Нақты фрактальдік компрессия – бұл бейнелердегі өзіне 
ұқсас аймақтарды іздеу жəне ол үшін аффиналық түрлендіргіштер 
параметрлерін анықтау. Бұл үшін асып кетуді орындау жəне əртүрлі 
өлшемдегі бейненің бүкіл мүмкін фрагменттерін салыстыру қажет 
болады.
• Өз бейнесін кодтаудың орнына, əдетте 0-ге жуық мəні 
қабылданатын, бейнелердегі көрші блоктардың орташа мəндері 
арасындағы айырма сақталатыны, алгоритм идеясы болып табыла-
ды.
• Желілер бойынша бейнені беру кезінде бейненің бірте-бірте 
«көріну» мүмкіндігін оның өте оңай жүзеге асыруға мүмкіндік 

365
 
беретін осы алгоритмінің артықшылықтарына жатқызуға бола-
ды. Бұдан өзге, бейне басталар алдында біз оның кішірейтілген 
көшірмесін нақты сақтаймыз, тақырыбы бойынша «тереңдетілген» 
бейнесін көрсету оңайлатылады.
СОӨЖ жəне СӨЖ тапсырмалары
1. Тақырып бойынша бақылау сұрақтарына жауап беру:
1.  Түрлендірулер қалай кодталады? 
2.  JPEG деген не?
3.  Фрактальді əдістің мəні қандай?
4.  Рекурсивті алгоритм қалай құрылады?
5.  Базистік атқарымдар дегеніміз не?
6.  Көшіргілейтін машина қандай іс-əрекеттерді орындайды?
2. Тақырып бойынша тест тапсырмаларының сұрақтарына 
жауап беру:
1.
Ақпарат бірлігінің атын өзгерту деп нені айтады? 
A)
Анықтамалық ақпараттарды өзгертуді айтады
B)
Материалдық құндылықтарды сақтауды айтады
C)
Мəліметтерді қорғауды айтады
D)
Жаңа ат беруді айтады
E)
Аталғандардың барлығы жатады
2.
Іріктеу дегеніміз не?
A)
Бір облыстағы жинақталған АҚБ мəндері
B)
Бір аймақтағы АҚБ мəндер көпшісін бөлу операциясы 
C)
Кез келген АҚБ мəндер жиынтығы
D)
Барлық АҚБ мəндерін алу операциясы
E)
Алын ала қойылған іріктеу шартын қанағаттандыратын АҚБ мəндер 
көпшесін бөлу операциясы
3.
Өндіру деңгейлері қандай шектеулерді қамтамасыз етеді?
A)
Технологиялық, шикілік, адамдық
B)
Уақыттық, сандық
C)
Жылдық, шикілік, адамдық
D)
Орталық, уақыттық

366
E)
Технологиялық, уақыттық
4.
Сызықтық кодтардың негізгі қасиеттері қанша бөлімнен 
тұрады?
A)
Жеті
B)
Алты
C)
Бес
D)
Төрт
E)
Үш
5.
Экономикалық ақпараттық жүйеге астында аталғандардың 
қайсысы жатпайды?
A)
Сақтау
B)
Өңдеу
C)
Жинау
D)
Жою
E)
Тарату
6.
Дискриминатордың шығу жолына астында келтірілгендердің 
қайсысын қосқан жөн болады?
A)
Шектенушіні
B)
Сигналды
C)
Жиілікті
D)
Девиацияны
E)
Аталғандардың барлығы дұрыс
7.
Соңғы қолданушы арқылы пайдалы ретінде қабылданған, 
ұғынылған жəне бағаланған жаңа мəліметтер:
A)
Ақпарат
B)
Құбылыс
C)
Жағдай
D)
Жарнама
E)
Алгоритм
8.
Адамның ұғыну жəне бағалау жүйесіне салынған, адам 

Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   30




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет