Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
рэт гос(2).docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
4.71 Mб
Скачать

26.2 Шыгынсыз сыгу алгоритмдерi: rle, lzw (Лемпелла Зива-Уэлча), Хаффман.

Хаффман коды (Huffman code) - бул префикстан бос код, бул кіріс алфавиті үшін кодынын ен кыска орташа узындыгын бере алады. Кодтын ен кыска орташа узіндыгы белгілі бір алфавит үшін коздін алфавитінін энтропиясынан біршама үлкен болуы мүмкін жане бул деректерді сыгу мүмкіндігі алфавитпен байланысты болады, кодтау тасілімен емес. Алфавиттін бір болігі кенейту кодын алу үшін түрлендірілген болуы мүмкін жане бул тасіл барынша сыгуды жаксарту үшін кайта колданылады. Сыгу тиімділігі сыгу коэффициентімен аныкталады. Бул шара сыгуга дейінгі үлгіде биттін орташа санынын сыгудан кейінгі үлгіде биттін орташа санынa катынасына тен. Хаффман кодтау расімі кез келген екі алфавит арасында түрлендірулер үшін колданылады. Хаффман коды агаштын калыптасу процесінін бір болігі ретінде жинакталады. Бул процес туындайтын жиіліктін азаюы калпында олардын ыктималдылыктарынмен алфавиттін кіріс символнынын саныгымен басталады. Арбір тармакка онын салмактык коэффициенті тагайындалыды. Енді процесс осы тармактардан туратын агашты калыптастырады. Екі кірісі ен аз салыстрымалы жиіліктерімен жана тармакты калыптастыра отырып бірігеді. Арбір бірігуден сон жана тармак жане калган тармактары кайта реттееледі. Бул кайта реттелу (методом пузырька) деп аталады. Арбір бірігуден кейінгі кайта реттелу кезанде кестеде жана тармак ол енді улгая алмайтын кезгедейін котеріледі.Егер 0.2 салмактык коэффициентімен жана тармак калыптасса жане процес кезінде екі баска тармактары табылса жана тармак 0.2 салмактык коэффициентімен катардын жогаргы жагына дейін котеріледі.

Он алтылык жиынтыктар үшін Хаффман агаш таріздес кодтауы

Агаш калыптаскан сон екі тармакты ажырату үшін, арбір тармактын шынында екілік шешіммен “1/0” жинакталады. Тагайындап алу оз бетінше алынады, бірак арбір шында жогары багытталганын “1” деп, жане “0” томенге багытталган тармактарын аламыз. Тармактардын шынын белгілеп болган сон негізінен арбір кіріс тармактарына дейінгі агаш траекториясын карастырамыз.Траектория осы тармакка жету үшін арналган екілік ретттілік болып табылады.

Лемпель-Зив кодтары

Хаффман кодын колдануагы негізгі киындыгы символдардын ыктималдылыгы анык болуы немесе багалануы кажет жане декодер агаш кодтауын білуі кажет. Егер агаш ерекше алфавит кодері үшін курылса, кодер жане декодерді байланыстыратын арна кодтайтын агашты сыгылган файлдын такырыбы ретінде жіберуі керек. Бул шыгындар сыгу тиміділігін азайтады. Лемпель-Зив алгоритмдері жане онын коптеген түрлері кодтык создікті калыптастыратын, айнымалы узындыктын кодалык создерін итеративті куру үшін матінді оз бетінше колданады. Код бар создік алфавиттін реттелген символдарынын кодталган сегменттерінен туратынын жобалайды. Деректер ар создікті шолу комеггімен кодталады.Егер согласование табылса, код осындай философияга сүйенеді: егерде кабылдаушынын есте сактау кабілетінде осы сегмент коды болса, оны кайта жіберудін кажеттіліг жок, сегметті табу үшін тек кана мекен-жайды аныктау кажет. Код бос создіктен басталады, бірінші элементтер позициялар болып табылады. Создіктін бір формасында мекен-жайдын орындалатын реттілігі жане алфавит символынын сегменті калыптасады. Кодталган «деректер келесі деректер белгісі, создіктін мекен-жайы пакетінен турады, ал арбір создіктін жана кіріс элементі пакет тарізді калыптаскан.

Бастапкы <0,a> пакеті нолдік мекен-жайды корсетіп тур, себебі создікте ешкандай позиция жок. <0,b> пакеті екінші b белгісінен турады, b 2-ші мекен-жайга алынады.<1,0> пакеті осы мекен-жайга келесі аа белгісін косу үшін 1 шакыру мекен-жайынын комегімен келесі екі аа белгілерінін кодталуын корсетеді. Аа белгісі 3 мекен-жайга алынады. Лемпель-Зив алгоритмдері LZ77,Gzip,LZW,UNIX сыгуларынан туратын, коммерциялык жане сыналатын программаларында бар.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]