№1 amaliyot ishi mavzu: Axborot xarakteristikalarini hisoblash Ishdan maqsad
Download 122.28 Kb. Pdf ko'rish
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling