Реферат: Алгоритм сжатия "Unbuffered RLE"

jnz Get_from_InputStream // если байты не одинаковы, взять следующий байт

//

in al, Number_of_InputPort // AL = следующий байт из входного потока

mov bl, al // BL = счетчик повторов

mov al, ah // восстановить в AL текущий байт

//

Copy_Byte: //------------------------

//

cmp bl, 0 // есть ли еще повторы байта?

jz Get_from_InputStream // если нет, взять следующий байт

out Number_of_OutputPort, al // записать байт в выходной поток

dec bl // BL = еще один байт скопировали

jmp Copy_Byte // копировать байт дальше

Все, рассказ закончен. Будем полагать, вы осведомлены теперь, а значит подготовлены. Возникни у вас похожая задача, решение готово. Напомню только, что алгоритм эффективен с позиций строгих ограничений, накладываемых на исполняющие аппаратные устройства. Никаких привилегий в степени сжатия он не дает, ибо это всего лишь собрат RLE, который используют ту же самую методику сжатия. Если в RLE за счет принудительного введения поля счетчика оказывается по одному лишнему байту на каждую "запись" для разнобоев, то в Unbuffered RLE этот байт не затрачивается ввиду отсутствия "записей" для разнобоев, но зато каждая "запись" для повторов теперь занимает по 3 байта, и вот здесь затрачивается один лишний байт.

К-во Просмотров: 251
Бесплатно скачать Реферат: Алгоритм сжатия "Unbuffered RLE"