Ufungaji wa vielelezo. Kurejesha mazingira ya kazi katika Adobe Illustrator. Kuunda violezo maalum

Kama ilivyoelezwa hapo juu, moja ya kazi muhimu za utayarishaji wa awali wa data kwa usimbaji fiche ni kupunguza upunguzaji wa matumizi na kuoanisha mifumo ya takwimu ya lugha inayotumiwa. Kuondoa kwa sehemu ya upungufu hupatikana kwa ukandamizaji wa data.

Ukandamizaji wa habari ni mchakato wa kubadilisha ujumbe asilia kutoka mfumo mmoja wa msimbo hadi mwingine, kama matokeo ya ambayo saizi ya ujumbe. Algorithms iliyoundwa kwa ajili ya ukandamizaji wa habari inaweza kugawanywa katika vikundi viwili vikubwa: yale ambayo yanatekeleza ukandamizaji usio na hasara (ukandamizaji unaoweza kurekebishwa) na wale wanaotekeleza ukandamizaji wa hasara (ukandamizaji usioweza kurekebishwa).

Ukandamizaji unaoweza kugeuzwa inamaanisha urejeshaji sahihi wa data baada ya kusimbua na inaweza kutumika kubana habari yoyote. Daima husababisha kupungua kwa kiasi cha mtiririko wa habari ya pato bila kubadilisha maudhui yake ya habari, yaani, bila kupoteza muundo wa habari. Kwa kuongezea, kutoka kwa mkondo wa pato, kwa kutumia algorithm ya ujenzi au upunguzaji, inawezekana kupata pembejeo, na mchakato wa uokoaji unaitwa decompression au decompression, na tu baada ya mchakato wa kupunguka ni data inayofaa kusindika kwa mujibu wa ndani yake. umbizo. Ukandamizaji usio na hasara hutumiwa kwa maandishi, faili zinazoweza kutekelezeka, sauti ya hali ya juu na michoro.

Ukandamizaji usioweza kutenduliwa kwa kawaida huwa na uwiano wa juu zaidi wa mgandamizo kuliko usimbaji usio na hasara, lakini huruhusu mkengeuko fulani wa data iliyosimbuliwa kutoka ya asili. Katika mazoezi, kuna matatizo mbalimbali ya vitendo ambayo kufuata mahitaji ya urejesho sahihi wa habari ya awali baada ya kupunguzwa sio lazima. Hii, hasa, inatumika kwa ukandamizaji wa habari za multimedia: sauti, picha au picha za video. Kwa mfano, muundo wa JPEG na MPEG wa multimedia, ambao hutumia ukandamizaji usioweza kurekebishwa, hutumiwa sana. Mfinyazo usioweza kutenduliwa kwa kawaida hautumiwi pamoja na usimbaji fiche wa kriptografia, kwani hitaji kuu la mfumo wa siri ni kwamba data iliyosimbwa inafanana na ile ya asili. Hata hivyo, unapotumia teknolojia za media titika, data ya dijiti mara nyingi hubanwa bila kutenduliwa kabla ya kuwasilishwa kwa mfumo wa kriptografia kwa usimbaji fiche. Baada ya habari kupitishwa kwa watumiaji na kusimbwa, faili za media titika hutumiwa kwa fomu iliyoshinikwa (yaani, haijarejeshwa).

Hebu tuangalie kwa karibu baadhi ya mbinu za kawaida za ukandamizaji wa data unaoweza kubadilishwa.

Njia rahisi inayojulikana zaidi na algorithm ya kukandamiza habari kwa njia inayoweza kubadilishwa ni kusimba safu ya mlolongo (Run Length Encoding - RLE). Kiini cha mbinu katika mbinu hii ni kuchukua nafasi ya minyororo au mfululizo wa byte za kurudia kwa byte moja ya encoding filler na counter kwa idadi ya marudio yao. Tatizo la mbinu zote zinazofanana ni kubainisha tu njia ambayo algorithm ya kufinyuza inaweza kutofautisha mfululizo uliosimbwa kutoka kwa mfuatano mwingine wa baiti ambao haujasimbwa katika mtiririko wa byte unaosababisha. Suluhisho la tatizo kawaida hupatikana kwa kuweka alama mwanzoni mwa minyororo iliyo na kanuni. Alama kama hizo zinaweza kuwa tabia ya maadili kidogo katika byte ya kwanza ya safu iliyosimbwa, maadili ya baiti ya kwanza ya safu iliyosimbwa. Hasara ya njia ya RLE ni uwiano wa chini wa ukandamizaji au gharama ya faili za encoding na idadi ndogo ya mfululizo na, mbaya zaidi, na idadi ndogo ya kurudia ka katika mfululizo.

Kwa encoding sare ya habari, idadi sawa ya bits imetengwa kwa ujumbe, bila kujali uwezekano wa kutokea kwake. Wakati huo huo, ni busara kudhani kwamba urefu wa jumla wa ujumbe unaotumwa utapungua ikiwa ujumbe unaotokea mara kwa mara umesimbwa kwa maneno mafupi ya msimbo, na mara chache hujitokeza ujumbe wenye ndefu zaidi. Matatizo yanayotokea katika kesi hii yanahusiana na haja ya kutumia misimbo yenye urefu wa neno msimbo tofauti. Kuna njia nyingi za kuunda nambari kama hizo.

Mojawapo ya njia zinazotumiwa sana katika mazoezi ni njia za kamusi, wawakilishi wakuu ambao ni pamoja na algorithms ya familia ya Ziv na Lempel. Wazo lao la msingi ni kwamba vipande vya mkondo wa pembejeo ("maneno") hubadilishwa na kielekezi mahali ambapo vilionekana hapo awali kwenye maandishi. Katika fasihi, algorithms kama hizo hurejelewa kama algorithms Ukandamizaji wa LZ.

Njia hii inabadilika haraka kwa muundo wa maandishi na inaweza kusimba maneno mafupi ya kazi, kwani yanaonekana mara nyingi sana ndani yake. Maneno mapya na vishazi vinaweza pia kuundwa kutoka kwa sehemu za maneno yaliyokutana hapo awali. Uainishaji wa maandishi yaliyoshinikizwa hufanywa moja kwa moja - pointer inabadilishwa tu na kifungu kilichotengenezwa tayari kutoka kwa kamusi ambayo inaelekeza. Kwa mazoezi, njia ya LZ inafikia ukandamizaji mzuri; mali yake muhimu ni operesheni ya haraka sana ya decoder.

Mbinu nyingine ya kubana habari ni Kanuni ya Huffman, encoder na decoder ambayo ina utekelezaji rahisi wa maunzi. Wazo la algorithm ni kama ifuatavyo: kujua uwezekano wa alama zinazoonekana kwenye ujumbe, inawezekana kuelezea utaratibu wa kuunda nambari za urefu tofauti zinazojumuisha idadi kamili ya bits. Herufi zina uwezekano mkubwa wa kupewa misimbo mifupi zaidi, huku herufi zisizotokea mara kwa mara hupewa misimbo mirefu. Kutokana na hili, kupunguzwa kwa urefu wa wastani wa neno la msimbo na ufanisi mkubwa wa mbano hupatikana. Nambari za Huffman zina kiambishi awali cha kipekee (mwanzo wa neno la msimbo), ambayo huwaruhusu kutatuliwa bila utata, licha ya urefu wao tofauti.

Utaratibu wa kuunganisha msimbo wa kitamaduni wa Huffman unachukua uwepo wa maelezo ya awali kuhusu sifa za takwimu za chanzo cha ujumbe. Kwa maneno mengine, msanidi lazima ajue uwezekano wa kutokea kwa alama fulani ambazo ujumbe huundwa. Wacha tuangalie usanisi wa msimbo wa Huffman kwa kutumia mfano rahisi.

p(S 1)=0.2, p(S 2)=0.15, p(S 3)=0.55, p(S 4)=0.1. Hebu tupange alama kwa utaratibu wa kushuka wa uwezekano wa tukio na uwasilishe kwa namna ya meza (Mchoro 14.3, a).

Utaratibu wa usanisi wa msimbo una hatua tatu kuu. Katika hatua ya kwanza, safu za meza zimeanguka: safu mbili zinazofanana na wahusika na uwezekano wa chini kabisa wa kutokea hubadilishwa na moja yenye uwezekano wa jumla, baada ya hapo meza inapangwa tena. Convolution inaendelea mpaka mstari mmoja tu unabaki kwenye meza na uwezekano wa jumla sawa na moja (Mchoro 14.3, b).


Mchele. 14.3.

Katika hatua ya pili, mti wa kanuni hujengwa kwa kutumia meza iliyoanguka (Mchoro 14.4, a). Mti umejengwa kuanzia safu ya mwisho ya meza.


Mchele. 14.4.

Mzizi wa mti huundwa na kitengo kilicho kwenye safu ya mwisho. Katika mfano unaozingatiwa, kitengo hiki kimeundwa kutokana na uwezekano wa 0.55 na 0.45, unaoonyeshwa kama nodi mbili za miti zinazohusiana na mzizi. Wa kwanza wao anafanana na ishara S 3 na, kwa hiyo, matawi zaidi ya node hii haifanyiki.

Nodi ya pili, iliyoandikwa na uwezekano wa 0.45, inaunganishwa na nodi mbili za ngazi ya tatu, na uwezekano wa 0.25 na 0.2. Uwezekano wa 0.2 unafanana na ishara S 1 , na uwezekano wa 0.25, kwa upande wake, hutengenezwa kutoka kwa uwezekano wa 0.15 ya kuonekana kwa ishara S 2 na 0.1 ya kuonekana kwa ishara S 4 .

Kingo zinazounganisha nodi za kibinafsi za mti wa kificho zimehesabiwa 0 na 1 (kwa mfano, kingo za kushoto ni 0 na kingo za kulia ni 1). Katika hatua ya tatu, ya mwisho, jedwali linaundwa ambamo alama za chanzo na maneno yanayolingana ya msimbo wa Huffman yanalinganishwa. Maneno haya ya msimbo huundwa kwa kusoma nambari zinazoashiria kingo zinazounda njia kutoka kwa mzizi wa mti hadi kwa ishara inayolingana. Kwa mfano unaozingatiwa, kanuni ya Huffman itachukua fomu iliyoonyeshwa kwenye meza upande wa kulia (Mchoro 14.4, b).

Walakini, algorithm ya kawaida ya Huffman ina shida moja muhimu. Ili kuunda upya yaliyomo ya ujumbe uliobanwa, avkodare lazima ijue jedwali la masafa ambayo kisimbaji kilitumia. Kwa hivyo, urefu wa ujumbe uliobanwa huongezeka kwa urefu wa jedwali la masafa ambayo lazima itumwe mbele ya data, ambayo inaweza kukataa juhudi zote za kukandamiza ujumbe.

Lahaja nyingine usimbaji tuli wa Huffman inajumuisha kutazama mtiririko wa ingizo na kuunda usimbaji kulingana na takwimu zilizokusanywa. Hii inahitaji njia mbili kupitia faili - moja ya kutazama na kukusanya habari za takwimu, ya pili kwa usimbaji. Katika coding tuli ya Huffman, alama za pembejeo (biti minyororo ya urefu mbalimbali) zinahusishwa na minyororo ya bit pia ya urefu wa kutofautiana - kanuni zao. Urefu wa msimbo wa kila ishara huchukuliwa kuwa sawia na logaritimu ya binary ya mzunguko wake, ikichukuliwa na ishara kinyume. Na seti ya jumla ya alama zote tofauti zilizokutana zinajumuisha alfabeti ya mtiririko.

Kuna njia nyingine - adaptive au usimbaji wa nguvu wa Huffman. Kanuni yake ya jumla ni kubadilisha mpango wa usimbaji kulingana na asili ya mabadiliko katika mkondo wa uingizaji. Mbinu hii ina algoriti ya pasi moja na haihitaji kuhifadhi maelezo kuhusu usimbaji unaotumiwa kwa uwazi. Usimbaji unaojirekebisha unaweza kutoa uwiano wa juu wa mbano kuliko usimbaji tuli, kwa kuwa mabadiliko katika masafa ya mtiririko wa ingizo huzingatiwa kikamilifu zaidi. Wakati wa kutumia msimbo unaoweza kubadilika wa Huffman, utata wa algorithm ni hitaji la kurekebisha mti na nambari za herufi za alfabeti kuu kulingana na takwimu zinazobadilika za mkondo wa kuingiza.

Mbinu za Huffman hutoa kasi ya juu kiasi na ubora mzuri wa mgandamizo. Walakini, usimbaji wa Huffman una upungufu mdogo mradi kila herufi imesimbwa katika alfabeti ya msimbo wa herufi kama mfuatano tofauti wa biti mbili - (0, 1) . Hasara kuu ya njia hii ni utegemezi wa kiwango cha ukandamizaji juu ya ukaribu wa uwezekano wa ishara hadi 2 kwa kiwango fulani hasi, ambayo ni kutokana na ukweli kwamba kila ishara imefungwa na idadi kamili ya bits.

Inatoa suluhisho tofauti kabisa usimbaji hesabu. Njia hii inategemea wazo la kubadilisha mtiririko wa ingizo kuwa nambari moja ya sehemu inayoelea. Usimbaji wa hesabu ni mbinu inayoruhusu vibambo vya alfabeti ya ingizo kupakiwa bila hasara, mradi tu usambaaji wa marudio wa herufi hizi unajulikana.

Mlolongo unaotarajiwa wa alama unapobanwa na usimbaji wa hesabu huzingatiwa kama sehemu ya binary kutoka kwa muda )