|
Shennon-Fano siqish algoritmi xaraktristikalarini hisoblash
|
bet | 5/5 | Sana | 20.02.2024 | Hajmi | 0,92 Mb. | | #159700 |
{ { k = h – j; pack1 = pack2 = 0; for (i = l; i <= k; i++) pack1 = pack1 + p[i].pro; for (i = h; i > k; i--) pack2 = pack2 + p[i].pro; diff2 = pack1 – pack2; if (diff2 < 0) diff2 = diff2 * -1; if (diff2 >= diff1) break; diff1 = diff2; j++; } k++; for (i = l; i <= k; i++) p[i].arr[++(p[i].top)] = 1; for (i = k + 1; i <= h; i++) p[i].arr[++(p[i].top)] = 0; } }
{
int i, j;
node temp;
for (j = 1; j <= n – 1; j++) {
for (i = 0; i < n – 1; i++) {
if ((p[i].pro) > (p[i + 1].pro)) {
temp.pro = p[i].pro;
temp.sym = p[i].sym;
p[i].pro = p[i + 1].pro;
p[i].sym = p[i + 1].sym;
p[i + 1].pro = temp.pro;
p[i + 1].sym = temp.sym;
}
}
}
}
// function to display Shannon codes
void display(int n, node p[])
{
{ k = h – j; pack1 = pack2 = 0; for (i = l; i <= k; i++) pack1 = pack1 + p[i].pro; for (i = h; i > k; i--) pack2 = pack2 + p[i].pro; diff2 = pack1 – pack2; if (diff2 < 0) diff2 = diff2 * -1; if (diff2 >= diff1) break; diff1 = diff2; j++; } k++; for (i = l; i <= k; i++) p[i].arr[++(p[i].top)] = 1; for (i = k + 1; i <= h; i++) p[i].arr[++(p[i].top)] = 0; } } Natija Enter number of symbols: 5 Enter symbol 1 : A Enter symbol 2 : B Enter symbol 3 : C Enter symbol 4 : D Enter symbol 5 : E Enter probability of A : 0.22 Enter probability of B : 0.28 Enter probability of C : 0.15 Enter probability of D : 0.3 Enter probability of E : .05 D 0.3 00 B 0.28 01 A 0.22 10 C 0.15 110 E 0.05 111 XULOSA Saqlash paytida kamroq xotira ishlatadigan ma’lumotlarni kodlash jarayoni ma’lumotlarni siqish deb nomlanadi. Ma’lumotlarni kodlashning ikkita usuli – Huffman kodlash va Shannon Fano algoritmi. Matn ma’lumotlari Shannon-Fano texnikasi yordamida siqilganda, yakuniy fayl hajmi ASCII kodlashdan foydalanilgandan kamroq bo’ladi. ASCII va Shannon-Fano algoritmi o’rtasidagi siqish nisbatiga ko’ra, katta hajmdagi ba’zi ma’lumotlar kichik o’lchamdagi ba’zi ma’lumotlarga aylantiriladi. ASCII belgilar uchun ma’lumotlarni siqish Huffman kodlash siqish texnikasi orqali amalga oshiriladi. Ushbu yondashuv ehtimollar to’plamidan yaratilgan va prefiks kodlariga ega bo’lishi shart bo’lmagan Huffman kodlaridan foydalanadi. Texnika minimal ketma-ketlikni ta’minlash uchun pastdan yuqoriga ikkilik daraxtni qurish uchun yuqoridan pastga strategiyasidan foydalanadi. Shannon Fano usuli faqat dekodlash mumkin bo’lgan va Huffman kodlash bilan solishtirish mumkin bo’lgan kod ishlab chiqarish uchun qo’llaniladi. Bundan tashqari, ma’lumotlar ushbu usulning ehtimollikdan foydalanish yordamida kodlanadi. Biroq, eng yaxshi kod ishlab chiqarish kafolatlanmaydi. Bu belgilar va ehtimollar to’plamiga mos keladigan prefiks kodlarini yaratish usuli deb tushuniladi. 1. «Radio» jurnali, 9-son, 1999 yil. Fanlar, Moskva 2. Klovskiy D.D. Signal uzatish nazariyasi. –M .: Aloqa, 1984 yil. // Axborot uzatish muammolari 1999 yil V.35, 95-son – 108-bet. 5. Semenyuk V.V. Diskret ma’lumotni iqtisodiy kodlash SPb .: SPbGITMO (TU), 2001 yil 6. Dmitriev V.I. Amaliy axborot nazariyasi. M .: Oliy maktab, 7. Nefedov V.N., Osipova V.A. Diskret matematika kursi. M .: MAI, 8. Kolesnik V.D.Poltyrev G.Sh. Axborot nazariyasi kursi. M .: fan,
|
| |