Tovushli axborotlarni kodlash.
Fizika kursidan ma’lumki tovush bu havoning tebranishidir. O’zining tabiatiga ko’ra tovush uzluksiz to’lqindir. Agar tovushni elektr signalga o’zgartirsak(masalan, mikrofon yordamida), biz vaqt o’tishi bilan o’zgaruvchi bir tekis kuchlanishni ko’rishimiz mumkin. Kompyuter analog signalni qayta ishlashi uchun uni qandaydir ikkilik ko’rinishdagi sonlar ketma-ketligi ko’rinishiga o’zgartirishimiz kerak. Buning uchun esa diskretizatsiya va raqamlash kerak. Bu ish bunday shaklda ham bo’lishi mumkin: ma’lum bir vaqt oralig’idagi signal amplitudalarini aniqlash va olingan raqamli ma’lumotlarni kompyuter xotirasiga yozish.
Ushbu jarayonda axborotni uzatish uchun ishlatiladigan signal uzatish kanalining xususiyatlariga mos kelishi kerak. Axborotni kodlash xabarni signalga aylantirish uchun, ya'ni xabar kodlarga kodlangan signal ma'lumotlarini kodlash uchun ishlatiladi. Huffman kodlash va Shannon fano kodlash o'rtasidagi oldingi farq shundaki, Huffman kodlash o'zgaruvchan uzunlikdagi kodlashni taklif qiladi. Aksincha, Shannon fano-da kod so'zining uzunligini kodlash Kraft tengsizligini qondirishi kerak, bu erda kod so'zining uzunligi prefiks kodi bilan cheklangan. Buni misol bilan izohlash mumkin, agar har bir amaldagi kod so'zning uzunligi eksponent shaklda olingan bo'lsa, natijada olingan qiymatlar guruhi ehtimollik massasi funktsiyasi kabi ko'rinishi kerak. Huffman kodlash ta'rifi
Huffman kodlash - bu ASCII belgilar ma'lumotlarini siqishni bilan ishlaydigan siqishni algoritmi. Ushbu algoritmda prefiks kodlari bilan majburiy bo'lmagan va ehtimolliklar guruhidan hosil bo'lgan Huffman kodlari. Uni Devid Xaffman 1952 yilda MITda axborot nazariyasi sohasida o'qiyotganda ishlab chiqqan. Algoritm eng past ketma-ketlikni yaratish uchun yuqoridan pastga qarab ikkilik daraxt yaratiladigan yuqoridan pastga qarab yondashishga asoslangan.
Ma'lumotlar faylidagi belgilarni ikkilik kodga aylantirish orqali ishlaydi. Shu bilan birga, fayldagi asosiy belgilar eng kichik ikkilik kodga ega, eng kam uchraydigan belgilar esa eng uzun ikkilik kodlarga ega. Siqilgan ma'lumotni asl formatida tiklash mumkin bo'lgan bu matnni yo'qotishsiz siqish uchun keng qo'llaniladigan usul.
Keling, algoritmni ba'zi qadamlar yordamida tushunaylik:
Birinchi bosqichda ramzlar yoki belgilar ehtimolligi bo'yicha kamayish tartibida saralanadi.
Agar ehtimollik bir xil bo'lsa, unda belgi yoki harf indeksini kamayish tartibida saralash.
Keyin eng yuqori ehtimollik "1" bit va "0" bit ostida "0" belgisi berilgan eng kichik ehtimoli bo'lgan ikkita belgini tanlang va ehtimollikni qo'shing.
Birinchi qadam kabi ramzlarni qayta ko'rib chiqing.
Agar ehtimollik bir xil bo'lsa, eng yangi belgi eski belgi ostida.
Endi 2 va 3 bosqichlarni takroriy takrorlang, ehtimollik summasi = 1,0 bo'lguncha.
Ikkilik bilan har bir belgining kod so'zlarini aniqlang.
Shannon Fano kodlash ta'rifi
Huffman Shannon Fano algoritmini noyob dekodlash kodini yaratish uchun kodlashni o'xshash. Bu 1949 yilda Klod Shannon va Robert Fano tomonidan kodlangan Huffman kodlash algoritmidan oldin ishlab chiqilgan. Ushbu metodika uni kodlash uchun ma'lumotlarning ehtimolliklaridan ham foydalanadi. Shunga qaramay, u optimal kod ishlab chiqarishni ta'minlamaydi. Belgilar va ehtimolliklar guruhiga muvofiq prefiks kodlarini qurish texnikasi sifatida qaraladi.
|