Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Структура архива:
- ______________________________________
- Смещение |Размер| Описание
- _________|______|_____________________
- 0-1 |Ворд | Метод сжатия
- _________|______|_____________________
- 2-3 |Ворд | Размер сжатых данных
- _________|______|_____________________
- 4* |Байт | Тип данных
- _________|______|_____________________
- 5..n |Байт | сжатые данные
- _________|______|_____________________
- *Этот параметр не используется в 3 методе сжатия
- Метод 2-1: Распаковка графики
- Флаг-байт:
- XXXXXXXX
- 1 - нет сжатия, просто скопировать один байт из источника в приёмник
- 0 - есть сжатие.
- LZ:
- 1 XXX YYYY XXXXXXXX
- | | | |
- | | | 8 младших бит смещения строки
- | | 4 бита (18 - длина строки)
- | 3 старших бита смещения строки
- код сжатия LZ
- RLE:
- 01 YY YYYY AAAAAAAA
- | | |
- | | байт повторения
- | 6 бит (66 - кол-во повторений)
- код RLE сжатия
- RLE_plus_Arith:
- 00 YY YYYY AAAAAAAA
- | | |
- | | байт повторения
- | 6 бит (66 - кол-во последовательностей) максимум 65 байт
- код сжатия - RLE + арифметическая прогрессия
- ********************************************************************
- Метод 2-2: Распаковка карты тайлов
- Отличается от предыдущего метода сжатия только тем, что
- сначала распаковываются старшие байты карты тайлов(приоритет, номер палитры, отражение),
- а затем младшие байты. При этом после каждой записи в приёмник, адрес приёмника увеличивается
- на два байта. Также во время распаковки младших байт, lz строка может копироваться из старших байт.
- Флаг-байт:
- XXXXXXXX
- 1 - нет сжатия, просто скопировать один байт из источника в приёмник
- 0 - есть сжатие.
- EndOfDecompress:
- 0000 0000 - необходимо записывать после сжатия младших и старших байт
- LZ:
- 1 XXX YYYY XXXXXXXX
- | | | |
- | | | 8 младших бит смещения lz строки
- | | 4 бита (18 - длина строки)
- | 3 старших бит смещения lz строки
- знак сжатия LZ
- RLE:
- 01 YYYYYY AAAAAAAA
- | | |
- | | байт повторения
- | 6 бит (66 - кол-во повторений)
- код RLE сжатия
- RLE_plus_Arith:
- 00 YYYYYY AAAAAAAA
- | | |
- | | байт повторения
- | 6 бит (66 - кол-во последовательностей) максимум 65 байт
- код сжатия - RLE + арифметическая прогрессия
- ----------------------------------------------------------------------
- Метод 1-1: Распаковка графики
- EndOfDecompress:
- 0000 0000
- LZ:
- 1 XXX YYYY XXXXXXXX
- | | | |
- | | | 8 младших бит смещения lz строки
- | | 4 бита (18 - длина строки)
- | 3 старших бит смещения lz строки
- код сжатия lz
- RAW:
- 01 YYYYYY AAAAAAAA...
- | | |
- | | байты для копирования
- | 6 бит - кол-во байт для копирования
- код несжатых данных
- RLE:
- 000 YYYYY AAAAAAAA
- | | |
- | | rle байт
- | 5 бит (34 - кол-во повторений) максимум 33 байта
- код сжатия RLE
- LZ_One_Byte:
- 001 YYYYY
- | |
- | |
- | 5 бит смещения lz строки
- код сжатия LZ_One_Byte
- **********************************************************************
- Метод 1-2: Распаковка карты тайлов
- Отличается от предыдущего метода сжатия только тем, что
- сначала распаковываются старшие байты карты тайлов(приоритет, номер палитры, отражение),
- а затем младшие байты. При этом после каждой записи в приёмник, адрес приёмника увеличивается
- на два байта. Также во время распаковки младших байт, lz строка может копироваться из старших байт.
- EndOfDecompress:
- 0000 0000 - необходимо записывать после сжатия младших и старших байт
- LZ:
- 1 XXX YYYY XXXXXXXX
- | | | |
- | | | 8 младших бит смещения lz строки
- | | 4 бита (18 - длина строки)
- | 3 старших бит смещения lz строки
- код сжатия lz
- RAW:
- 01 YYYYYY
- | |
- | |
- | 6 бит количество несжатых байт
- код несжатых данных
- RLE:
- 000 YYYYY AAAAAAAA
- | | |
- | | rle байт
- | 5 бит (34 - кол-во повторений) максимум 33 байта
- код сжатия RLE
- RLE_SEQ:
- 001 YYYYY AAAAAAAA
- | | |
- | | rle байт
- | 5 бит (34 - кол-во последовательностей)
- код сжатия RLE + арифметическая прогрессия
- -----------------------------------------------------------------------
- Метод 3:
- END Of Decompress:
- 0000 0000
- RLE16bit:
- 0 XXXXXXX YYYYYYYY YYYYYYYY
- | | |
- | | 16 бит rle word
- | 7 бит (130 - кол-во повторений) максимум 129 байт
- код сжатия RLE
- RAW:
- 1 XXXXXXX YYYYYYYY YYYYYYY...
- | | |
- | | 16 бит word
- | 7 бит (128 - кол-во слов для копирования)
- код несжатых данных
Add Comment
Please, Sign In to add comment