№1 amaliyot ishi mavzu: Axborot xarakteristikalarini hisoblash Ishdan maqsad


Download 122.28 Kb.
Pdf ko'rish
bet8/9
Sana04.11.2023
Hajmi122.28 Kb.
#1746356
1   2   3   4   5   6   7   8   9
Bog'liq
1-dedlayn (2)

№ 5 Amaliy mashg’ulot 
Mavzu:Ma’lumotlarni siqish algoritmlarini samaradorligini baholash 
Ma'lumotlarni yozish yoki uzatishda ko'pincha qayta ishlanayotgan 
ma'lumotlar hajmini kamaytirish foydali bo'ladi. Ushbu maqsadga erishadigan 
texnologiya ma'lumotlarni siqish deb ataladi. Ma'lumotlarni siqishning ko'plab 
usullari mavjud bo'lib, ularning har biri o'ziga xos dastur sohasiga ega, ularda u eng 
yaxshi yoki aksincha, eng yomon natijalarni beradi. 
Ishlash uzunligini kodlash usuli 
Agar siqilishi kerak bo'lgan ma'lumotlar bir xil qiymatlarning uzun ketma-
ketliklaridan iborat bo'lsa, ish uzunligini kodlash eng yaxshi natijalarni beradi. 
Aslini olganda, bunday kodlash usuli aynan shunday ketma-ketliklarni ma'lum bir 
qatordagi takroriy qiymat va uning takrorlanish sonini aniqlaydigan kod qiymati 
bilan almashtirishdan iborat. Masalan, bit ketma-ketligi 253 tadan, undan keyin 118 
ta noldan va yana 87 tadan iborat bo'lgan kodlangan ma'lumotni yozish uchun ushbu 
458 bitning barchasini sanab o'tishdan ko'ra ancha kam joy talab qilinadi. 
Misol. Seriya uzunligini kodlash usulidan foydalanib, ketma-ketlik: 
111111111100000000000000000 - quyidagicha ifodalanishi mumkin: 10. 
Nisbiy kodlash usuli 
Ba'zi hollarda ma'lumotlar ma'lumotlar bloklaridan iborat bo'lishi mumkin, 
ularning har biri avvalgisidan bir oz farq qiladi. Misol tariqasida ketma-ket video 
ramkalar bo'lishi mumkin. Bunday holatlar uchun nisbiy kodlash usuli qo'llaniladi. 
Ushbu yondashuv ketma-ket ma'lumotlar bloklari o'rtasida mavjud bo'lgan farqlarni 
qayd etishni o'z ichiga oladi, bu bloklarning o'zini qayd etish o'rniga, ya'ni. har bir 
blok oldingi blokga munosabati nuqtai nazaridan kodlangan. 
Misol. Nisbiy kodlash usulidan foydalanib, raqamlar ketma-ketligi: 1476; 
1473; 1480; 1477 - quyidagicha ifodalanishi mumkin: 1476; -3; +7; -3. 
Chastotaga bog'liq kodlash 
Ma'lumotni siqishning ushbu usuli chastotaga bog'liq kodlashdan 
foydalanishni o'z ichiga oladi, bunda ma'lumotlar elementini ifodalovchi bit 
naqshining uzunligi element ishlatilgan chastotaga teskari proportsionaldir. Bunday 
kodlar o'zgaruvchan uzunlikdagi kodlar guruhiga kiritilgan, ya'ni. ushbu kodlardagi 
ma'lumotlar elementlari turli uzunlikdagi bit naqshlari bilan ifodalanadi. Agar biz 
chastotaga bog'liq usul yordamida kodlangan inglizcha matnni oladigan bo'lsak, u 
holda eng keng tarqalgan belgilar [e, t, a, i] qisqa bit birikmalari bilan, kamroq 
tarqalgan belgilar esa uzunroq bit kombinatsiyalari bilan ifodalanadi. Natijada, biz 
Unicode yoki ASCII kabi oddiy kodlardan foydalangandan ko'ra butun matnning 
qisqaroq tasvirini olamiz. Chastotaga bog'liq kodlarni loyihalashda keng 
qo'llaniladigan algoritmning qurilishi Devid Xaffmanga tegishli, shuning uchun 
bunday kodlar ko'pincha Huffman kodlari deb ataladi. Hozirgi kunda ishlatiladigan 
chastotaga bog'liq kodlarning aksariyati Huffman kodlari. 
Misol. Ketma-ketlikni kodlash talab qilinsin: chastotaga bog'liq usuldan 
foydalanib, to'rtta a, b, g va l belgilardan iborat bo'lgan agababababa: Bundan 
tashqari, bu ketma-ketlikda a 15 marta, b - 6 marta, g - 2 marta va l - 1 marta 
uchraydi. 


Huffman usuliga muvofiq belgilarni ifodalash uchun quyidagi ikkilik kodni 
tanlaylik: 
a – 1 
b – 01 
g – 001 
l - 000 
Lempel-Ziv usuli 
Bu usul uning yaratuvchilari Avraam Lempel va Yakob Ziv sharafiga 
nomlangan. Lempel-Ziv kodlash tizimlari adaptiv lug'at kodlash texnologiyasidan 
foydalanadi. Shu nuqtai nazardan, lug'at atamasi siqilgan xabar tuzilgan qurilish 
bloklari to'plamini anglatadi. Agar inglizcha matn siqilgan bo'lsa, qurilish bloklari 
alifbo belgilari bo'lishi mumkin. Agar siz kompyuteringizda saqlanadigan 
ma'lumotlar hajmini kamaytirmoqchi bo'lsangiz, unda qurilish bloklari nolga va 
birlarga aylanishi mumkin. Moslashuvchan lug'at kodlash jarayonida lug'at tarkibi 
o'zgarishi mumkin. Misol uchun, ingliz tilidagi matnni siqishda lug'atga oxirini va 
maqolani qo'shish tavsiya etiladi. Bunday holda, tugatish va maqolaning kelajakdagi 
nusxalari egallagan joyni uchta turli havolalar birikmasi o'rniga bitta havola sifatida 
yozish orqali kamaytirish mumkin. Lempel-Ziv kodlash tizimlari kodlash yoki 
siqish paytida lug'atni moslashtirishning murakkab va yuqori samarali usullaridan 
foydalanadi. Xususan, kodlash jarayonining istalgan nuqtasida lug'at allaqachon 
kodlangan [siqilgan] kombinatsiyalardan iborat bo'ladi. 
Misol sifatida, LZ77 deb nomlanuvchi ma'lum bir Lempel-Ziv tizimi 
yordamida xabarlarni siqishni qanday amalga oshirishingiz mumkinligini ko'rib 
chiqing. Jarayon amalda xabarning boshlang'ich qismini qayta yozishdan 
boshlanadi, ammo ma'lum bir vaqtda, har biri ikkita butun sondan keyin matnning 
bitta belgisidan iborat bo'lgan uchlik yordamida kelajakdagi segmentlarni 
ko'rsatishga o'tish amalga oshiriladi. Har bir uchlik xabarning keyingi qismi qanday 
tuzilganligini tasvirlaydi. Masalan, ochilmagan matn quyidagicha ko'rinadi deylik: 
αβααβλβ 
Ababa satri allaqachon xabarning ochilmagan qismidir. Xabarning qolgan 
qismini ochish uchun, avvalo, unda mavjud bo'lgan qismni biriktirib, chiziqni 
kengaytirishingiz kerak. Uchlikdagi birinchi raqam qo'shilgan segmentning birinchi 
belgisini topish uchun qatorda qancha belgilarni orqaga qarab sanash kerakligini 
ko'rsatadi. Bunday holda, qarama-qarshi yo'nalishda 5 ta belgini hisoblash kerak va 
biz allaqachon ochilgan satrning chap tomonidagi ikkinchi a belgisiga o'tamiz. 
Uchlikdagi ikkinchi raqam qo'shilgan segmentni tashkil etuvchi bosh harfning o'ng 
tomonidagi ketma-ket belgilar sonini bildiradi. Bizning misolimizda bu raqam 4 ga 
teng, ya'ni qo'shilgan segment aab bo'ladi. Uni satr oxirigacha ko'chiring va 
xabarning ochilmagan qismining yangi qiymatini oling: ababab. 
Nihoyat, oxirgi element [bizning holatda, bu a belgisi] kengaytirilgan 
qatorning oxiriga joylashtirilishi kerak, buning natijasida biz to'liq ochilmagan 
xabarni olamiz: ababababa. 
Tasvirlarni siqish 
Zamonaviy raqamli tasvir konvertorlarida ishlatiladigan bitmap formati 
tasvirlarni piksel boshiga uch bayt formatda kodlaydi, bu esa bitmap fayllari bilan 


ishlash uchun noqulay, noqulay yaratishga olib keladi. Ko'pgina siqish sxemalari 
ushbu format uchun maxsus ishlab chiqilgan bo'lib, ular diskdagi bunday fayllar 
egallagan joyni qisqartirish uchun mo'ljallangan. Shunday sxemalardan biri 
CompuServe tomonidan ishlab chiqilgan GIF. Unda ishlatiladigan usul pikselning 
rang soyalari sonini 256 tagacha kamaytirishdan iborat bo'lib, buning natijasida har 
bir pikselning rangi uchta o'rniga bir bayt bilan ifodalanishi mumkin. Ranglar 
palitrasi deb ataladigan jadvaldan foydalanib, har bir haqiqiy piksel ranglari qizil-
yashil-ko'k ranglarning bir nechta kombinatsiyasi bilan bog'langan. Amaldagi 
palitrani o'zgartirish orqali siz tasvirda ko'rinadigan ranglarni o'zgartirishingiz 
mumkin. 
Odatda, GIF palitrasidagi ranglardan biri "shaffoflik" ma'nosida talqin 
qilinadi. Bu shuni anglatadiki, tasvirning ushbu rang bilan to'ldirilgan joylarida u 
joylashgan fonning rangi ko'rsatiladi. Bu va tasvirlardan foydalanishning nisbatan 
qulayligi tufayli GIF formati o'sha kompyuter o'yinlarida keng tarqaldi, bu erda 
ko'plab turli xil rasmlar ekran bo'ylab harakatlanadi. 
Rasmni siqish tizimining yana bir misoli JPEG formatidir. Bu ISO tashkiloti 
doirasida qo'shma fotosuratlar bo'yicha ekspertlar guruhi [shuning uchun bu 
standartning nomi] tomonidan ishlab chiqilgan standartdir. JPEG formati rangli 
fotosuratlarni taqdim etishning samarali usuli ekanligini isbotladi. Aynan shuning 
uchun ushbu standart zamonaviy raqamli kameralar ishlab chiqaruvchilari 
tomonidan qo'llaniladi. Kelajakda raqamli tasvir sanoatiga sezilarli ta'sir ko'rsatishi 
kutilmoqda. 
Aslida, JPEG standarti tasvirni aks ettirishning bir necha usullarini o'z ichiga 
oladi, ularning har biri o'z maqsadiga ega. Misol uchun, tasvirning maksimal aniqligi 
talab qilinganda, JPEG formati "yo'qotishsiz" rejimni taklif qiladi, uning nomi 
to'g'ridan-to'g'ri tasvirni kodlash jarayoni hech qanday ma'lumot yo'qotmasdan 
bajarilishini ko'rsatadi. Ushbu rejimda bo'sh joy har bir pikselning yorqinligini 
alohida emas, balki ketma-ket piksellar orasidagi farqlarni saqlash orqali saqlanadi. 
Nazariyaga ko'ra, aksariyat hollarda qo'shni piksellar orasidagi farq darajasini 
alohida piksellarning haqiqiy yorqinligi qiymatlariga qaraganda qisqaroq bit 
naqshlarida kodlash mumkin. Mavjud farqlar o'zgaruvchan uzunlikdagi kod 
yordamida kodlangan bo'lib, u xotiradan foydalanishni yanada kamaytirish uchun 
ishlatiladi. 
Afsuski, "yo'qotishsiz" rejimdan foydalanganda, yaratilgan rastr tasvir fayllari 
juda katta bo'lib, ularni zamonaviy texnologiyalar yordamida qayta ishlash qiyin va 
shuning uchun amalda kam qo'llaniladi. Ko'pgina mavjud ilovalar JPEG formatining 
boshqa standart usulidan foydalanadi - asosiy rejim. Ushbu rejimda piksellarning 
har biri uchta komponent bilan ifodalanadi, ammo bu holda u allaqachon bitta 
yorqinlik komponenti va ikkita rang komponentidir. Taxminan aytganda, agar biz 
faqat yorug'lik komponentlaridan tasvir yaratadigan bo'lsak, unda biz tasvirning qora 
va oq versiyasini ko'ramiz, chunki bu komponentlar faqat pikselning yorug'lik 
darajasini aks ettiradi. 
Rang va yorqinlik o'rtasidagi bu farqning mantiqiy sababi shundaki, inson 
ko'zining yorqinligi o'zgarishiga ranglardan ko'ra ko'proq sezgir. Misol uchun, ikkita 
bir xil rangdagi ko'k to'rtburchaklarni ko'rib chiqaylik, ulardan birida kichik yorqin 


nuqta bo'lsa, ikkinchisida ko'k fon bilan bir xil yorqinlikdagi kichik yashil nuqta bor. 
Ko'z uchun yashil rangni emas, balki yorqin nuqtani aniqlash osonroq bo'ladi. JPEG 
standartining asosiy rejimi har bir pikselning yorqinlik komponentini kodlash, lekin 
toʻrt pikselli bloklar uchun rang komponentlarini oʻrtacha hisoblash va faqat shu 
bloklar uchun rang komponentlarini yozish orqali ushbu xususiyatdan foydalanadi. 

Download 122.28 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling