Лекция 8
Байланыс каналы – мәліметтерді тарату желісінің негізі.
Арифметикалық кодтау үшін, Хаффмен әдісі арқылы кодтау үшін де адаптивті алгоритмдербар. Олардың біірнің жүзеге асырылуын ІВМ фирмасы патенттеген.
Берілген жиындағы символдар кезектестігі үшін арифметикалық кодты құрастыруды келесі алгоритм бойынша жүзеге асыруға болады. Әр символға оның салмағы сәйкестендіріледі: алғашқыда ол бәрі үшін 1-ге тең. Барлық символдар нақты ретпен орналасады, мысал, өсуі бойынша. Әрбір символдың ықтималдылығын өз салмағын барлық символдардың салмағына бөліп анықтаймыз. Кезектегі символды алғаннан соң және ол үшін аралықты жазғаннан кейін, осы символдың салмағы 1-ге өседі(салмақты кез келген реттегіш тәсілмен өсіруге болады).
7-сурет
Берілген символдар жиыны-бұл ASCII+ . Сығылатын мәліметтің басында ашу алгоритмін тоқтатуды қамтамасыз ету үшін оның ұзындығын беру керек немесе қосымша мәлімет соңына символ- маркер енгіземіз. Егер сығу үшін файл форматынбілсек, онда салмақты алғашқы бірқалыпты үлестірудің орнына осы білімді есептей отырып үлестіруді таңдауға болады. Мысалы, мәтіндік файлда басқарушы символдары тізбегі болмауы керек және олардың саламғын нөлге теңестіруге болады.
Мысал. Берілген жиындар – бұл А, В, С символдары. Сығылатын мәлімет АССВСАААВС. Мәлімет соңының маркерін енгіземіз- Е. Берілген алгоритмге сәйкес кодтауды 7-суретте көрсетілген схема бойынша жасауға болады.
Соның нәтижесінде
және
Сондықтан бит/сим. Хаффмен адаптивті алгоритмімен алынған нәтиже 4,1 бит/сим, бірақ егер әріптерді 8 битпен емес, 2 битпен кодтасақ, онда нәтижеміз 2,3 бит/сим болады. Схемамыздың бірінші қатарында символдардың салмақтарының қосындылары, ал екіншісінде ағымдағы кесінділердің ұзындығы жазылған.
Адаптивті арифметикалық кодты ашу тәсілі келтірілген адаптивті емес тәсілмен ұқсас. Айырмашылығы екінші қадамда жаңа кодты алған соң символдар салмағын жаңадан үлестіруге сәйкес ортақ кесіндіні бөлуді қайта құрастыру керек. Мәлімет соңы және басынан берілген маркерімен символдар санын алу жұмыстың аяқталғанын білдіреді.
Мысалы. Мәліметтің символдар жиыны А, В, С және Е –ден тұратынын, соңғысы- мәлімет соңының маркері, біле отырып 0010111001010011101101 кодын ашайық.
Достарыңызбен бөлісу: |