Четверг, 28.03.2024, 19:10

..



Главная Регистрация Вход
Приветствую Вас, Гость · Браузер: « v»
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Всё об «Электроника БК0010(-01), БК0011(М)»! » Программы | Утилиты | ДОСы » Упаковщики (Архиваторы) данных » «Komp» » «Komp 2» [25.08.90] (Автор: Бабкин В.А.)
«Komp 2» [25.08.90]
-=RUS=-Дата: Суббота, 29.11.2014, 13:29 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 352
Репутация: 1
Статус: Offline
(Komp 2.doc)

           ▓▓┐  ▓▓┐ ▓▓▓▓▓┐ ▓▓┐   ▓▓┐ ▓▓▓▓▓▓┐    ▓▓▓▓▓┐
           ▓▓┤ ▓▓┼┘▓▓┼┴┴▓▓┐▓▓▓┐ ▓▓▓┤ ▓▓┼┴┴▓▓┐  ▓▓┼┴┴▓▓┐
           ▓▓▓▓▓┼┘ ▓▓┤  ▓▓┤▓▓▓▓▓▓▓▓┤ ▓▓┤  ▓▓┤  └┴┘ ▓▓┼┘
           ▓▓┼┴▓▓┐ ▓▓┤  ▓▓┤▓▓┼▓▓┼▓▓┤ ▓▓▓▓▓▓┼┘    ▓▓┼┴┘
           ▓▓┤  ▓▓┐▓▓┤  ▓▓┤▓▓┤└┴┘▓▓┤ ▓▓┼┴┴┴┘   ▓▓┼┴┘
           ▓▓┤  ▓▓┤└▓▓▓▓▓┼┘▓▓┤   ▓▓┤ ▓▓┤       ▓▓▓▓▓▓▓┐
           └┴┘  └┴┘ └┴┴┴┴┘ └┴┘   └┴┘ └┴┘       └┴┴┴┴┴┴┘

┌──────────────────────────────────────────────────────────────┐
│                ОПИСАНИЕ ПРОГРАММЫ 'Komp 2'                   │
└──────────────────────────────────────────────────────────────┘

   Программа 'Komp 2' предназначена  для сжатия графических фай-
лов или, проще говоря, изображений,  созданных в каком-либо гра-
фическом редакторе.  'Komp 2'  является новой версией  программы
'Komp'.  Эта модификация была разработана автором с учётом пред-
ложений и замечаний некоторых  пользователей и имеет ряд преиму-
ществ относительно первоначального  варианта. Особенности  новой
версии таковы:  во-первых, в отличие от старого 'Komp'а, для ра-
боты с программой подходят файлы,  созданные в любом из редакто-
ров, известных автору на данный момент; во-вторых, с самого фай-
ла сняты какие-либо ограничения (по количеству "свободного" фона
в картинке и по длине файла:  не более  40004);  кроме того, для
удобства добавлен  новый режим,  который  выводит  на  экран уже
закодированное изображение.  Наконец, повысилось качество самого
сжатия - как пример, можно привести тот факт,  что заставка, по-
являющаяся на экране после запуска,  занимала в редакторе  'ГР4'
1642 байта,  после сжатия программой 'Komp' она  сократилась  до
744 байт, а с использованием 'Komp 2' её длина стала 612.

   Перед началом работы выводится меню для выбора режима:

   1) Выход с сохранением программы.  После реализации этого ре-
      жима программу можно перезапустить с адреса 1000.

   2) Ввод количества байт в строке  и  количества строк. В этом
      режиме можно установить или изменить данные, характеризую-
      щие размер картинки.  Для файлов, записанных из редакторов
      типа 'ГР4' или 'ГРЕД0' использование  этого режима не тре-
      буется, так как  их  первые два слова уже содержат необхо-
      димую информацию.
      После выбора этого пункта меню, можно выбрать один из под-
      режимов: при нажатии  '1'  будет производиться ввод данных
      с клавиатуры, а при нажатии клавиши '2' число байт и строк
      можно установить наглядно: при помощи стрелок  '←'  и  '→'
      картинка на экране  будет изменяться,  а  когда она примет
      свой нормальный вид, остается нажать  'ВВОД',  чтобы число
      байт и строк было зафиксировано. Следует помнить, что чис-
      ло байт в строке лежит в пределах от  1  до  100,  а число
      строк от 1 до 400.

   3) Загрузка файла, предназначенного для сжатия.

   4) Запись сжатого файла.

   5) Запись сжатого файла с перемещаемым блоком,  который выво-
      дит картинку на экран.  Если загрузить полученный  в  этом
      режиме модуль с любого адреса и осуществить запуск с этого
      же адреса,то изображение появится в заданном месте экрана.

   6) Режим вывода изображения на экран.  Перед выводом запраши-
      вается адрес верхнего левого угла картинки,  причём  прог-
      рамма контролирует введенный адрес так,  чтобы изображение
      не вышло за пределы экрана.

   Если в памяти отсутствует сжатая картинка, то режимы 4), 5) и
6) недоступны.

   Необходимо подробнее сказать о режиме загрузки исходного фай-
ла (3).  Особенность состоит  в  том, что режим предназначен как
для загрузки картинки в обычном формате, так и для загрузки фай-
ла в формате редактора 'P1.0M'.  Этот редактор сам по себе запи-
сывает графику в сжатом виде,  но во-первых,  не совсем  приятно
хранить файл,  записанный по модулям (при том,  что расшифровать
его можно только в самом P1.0M) и во-вторых, 'Komp 2' даёт выиг-
рыш в сжатии порядка  1 Кбайта.  Для чтения обычного файла режим
(3) вызывается при помощи клавиши 'ВВОД', а для загрузки формата
'P0.1M' следует вызывать этот режим пробелом.

   После успешной загрузки файла,  если два его первых слова мо-
гут рассматриваться, как количество байт  в  строке и количество
строк, выдаётся запрос на сжатие. При ответе N (Н-РУС) снова вы-
водится меню;  при ответе D (Д) файл сжимается  "по  вертикали".
Сжатие по вертикали идаёт максимальный  эффект  для  большинства
картинок.  При желании сжать файл "по горизонтали"  в  ответ  на
запрос вместо N или D вводится H([аш], ЛАТ).

   Если длина модуля,  полученного в результате сжатия превышает
31600,  то  меню на экран не выводится.  В этом  случае возможна
только запись модуля, которая осуществляется после нажатия любой
клавиши. Выход в меню происходит по клавише 'СТОП'.

   Структура сжатого модуля такова: -служебная информация; -дан-
ные; -таблица.  Служебная информация - это 3 слова: 1-е содержит
смещение от начала файла  до  первого байта таблицы, 2-е и 3-е –
количество байт в строке и количество строк. Данные представляют
собой графическую информацию, в которой байты, повторяющиеся бо-
лее 2-х раз подряд заменены двумя байтами: в 1-ом записано коли-
чество  повторений  содержимого  2-го  байта.  Таблица  является
двоичным  массивом,  который служит ключом  к  расшифровке всего
изображения.

   Блок вывода сжатой картинки на экран, расположенный по адресу
6400,  универсален.  Он изменяется основной программой в зависи-
мости от характера сжатия  (по вертикали/по горизонтали).  Автор
предлагает следующий текст блока  (после ';' приведены изменения
для горизонтального сжатия):

----------------------------------------------------------------

          EMT    14
          MOV    PC,R3
          ADD    #164,R3
          MOV    (R3)+,R0
          MOV    R3,R5
          ADD    (R3)+,R5
          MOV    (R3)+,R1
          MOV    (R3)+,R2
          MOV    #200,R4
   MET1:  BITB   R4,@R5
          BEQ    MET7
          JSR    PC,MET5
          BITB   R4,@R5
          BEQ    MET2
          JSR    PC,MET9
   MET2:  MOV    R4,-(SP)
          MOVB   (R3)+,R4
          BIC    #177400,R4
      1:  MOVB   @R3,(R0)+
          JSR    PC,MET9+2
          SOB    R4,1
          INC    R3
   MET3:  MOV    (SP)+,R4
          JSR    PC,MET5
          BR     MET1
   MET4:  INC    R5
   MET5:  RORB   R4
          BCS    MET4
   MET6:  RTS    PC
   MET7:  MOV    R4,-(SP)
          MOV    #2,R4
   MET8:  JSR    PC,MET9
          SOB    R4,MET8
          BR     MET3
   MET9:  MOVB   (R3)+,(R0)+
          ADD    #77,R0          ;SOB    R1,MET6
          SOB    R2,MET6         ;MOV    BYTES,R1
          MOV    LINES,R2        ;SUB    R1,R0
          MOV    R5,-(SP)        ;ADD    #100,R0
          MOV    #100,R5         ;SOB    R2,MET6
      2:  SUB    R2,R0           ;EMT    6
          SOB    R5,2            ;CMP    (SP)+,(SP)+
          MOV    (SP)+,R5        ;RTS    PC
          INC    R0
          SOB    R1,MET6
          EMT    6
          CMP    (SP)+,(SP)+
          RTS    PC

----------------------------------------------------------------
                BUFADR:<Адрес вывода на экран>
                 BEGIN: <Смещение до таблицы>
              BYTES: <Количество  байт в строке>
                  LINES: <Количество  строк>
----------------------------------------------------------------

   Программа 'Komp 2' позволяет  сжать файл графики в 1.5-5 раз.
Следует заметить,  что чем более  детально  сделан рисунок,  тем
хуже он сжимается. Коэффициент сжатия резко падает (1.5-2), если
в  картинке  в  большом количестве  используются "нестандартные"
цвета - цвета, полученные смешением 4-х обычных.
   Не рекомендуется пытаться сжать при помощи  'Komp 2'  обычные
программы,  так как в основном сжатие будет мало результативным,
а в отдельных случаях может возникнуть даже обратный эффект.

----------------------------------------------------------------

 Автор: В.А.Бабкин,                       г.Москва, 25.08.1990.


 
Всё об «Электроника БК0010(-01), БК0011(М)»! » Программы | Утилиты | ДОСы » Упаковщики (Архиваторы) данных » «Komp» » «Komp 2» [25.08.90] (Автор: Бабкин В.А.)
  • Страница 1 из 1
  • 1
Поиск:

-=RUS=-
ICQ: 320867225
asr-corp@yandex.ru
bk001x@yandex.ru