Guest User

UMK3 Decompression Description

a guest
Apr 5th, 2021
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.27 KB | None | 0 0
  1. Структура архива:
  2. ______________________________________
  3. Смещение |Размер| Описание
  4. _________|______|_____________________
  5. 0-1 |Ворд | Метод сжатия
  6. _________|______|_____________________
  7. 2-3 |Ворд | Размер сжатых данных
  8. _________|______|_____________________
  9. 4* |Байт | Тип данных
  10. _________|______|_____________________
  11. 5..n |Байт | сжатые данные
  12. _________|______|_____________________
  13.  
  14. *Этот параметр не используется в 3 методе сжатия
  15.  
  16. Метод 2-1: Распаковка графики
  17.  
  18. Флаг-байт:
  19. XXXXXXXX
  20. 1 - нет сжатия, просто скопировать один байт из источника в приёмник
  21. 0 - есть сжатие.
  22.  
  23. LZ:
  24. 1 XXX YYYY XXXXXXXX
  25. | | | |
  26. | | | 8 младших бит смещения строки
  27. | | 4 бита (18 - длина строки)
  28. | 3 старших бита смещения строки
  29. код сжатия LZ
  30.  
  31. RLE:
  32. 01 YY YYYY AAAAAAAA
  33. | | |
  34. | | байт повторения
  35. | 6 бит (66 - кол-во повторений)
  36. код RLE сжатия
  37.  
  38. RLE_plus_Arith:
  39. 00 YY YYYY AAAAAAAA
  40. | | |
  41. | | байт повторения
  42. | 6 бит (66 - кол-во последовательностей) максимум 65 байт
  43. код сжатия - RLE + арифметическая прогрессия
  44.  
  45.  
  46. ********************************************************************
  47. Метод 2-2: Распаковка карты тайлов
  48. Отличается от предыдущего метода сжатия только тем, что
  49. сначала распаковываются старшие байты карты тайлов(приоритет, номер палитры, отражение),
  50. а затем младшие байты. При этом после каждой записи в приёмник, адрес приёмника увеличивается
  51. на два байта. Также во время распаковки младших байт, lz строка может копироваться из старших байт.
  52.  
  53. Флаг-байт:
  54. XXXXXXXX
  55. 1 - нет сжатия, просто скопировать один байт из источника в приёмник
  56. 0 - есть сжатие.
  57.  
  58. EndOfDecompress:
  59. 0000 0000 - необходимо записывать после сжатия младших и старших байт
  60.  
  61. LZ:
  62. 1 XXX YYYY XXXXXXXX
  63. | | | |
  64. | | | 8 младших бит смещения lz строки
  65. | | 4 бита (18 - длина строки)
  66. | 3 старших бит смещения lz строки
  67. знак сжатия LZ
  68.  
  69. RLE:
  70. 01 YYYYYY AAAAAAAA
  71. | | |
  72. | | байт повторения
  73. | 6 бит (66 - кол-во повторений)
  74. код RLE сжатия
  75.  
  76. RLE_plus_Arith:
  77. 00 YYYYYY AAAAAAAA
  78. | | |
  79. | | байт повторения
  80. | 6 бит (66 - кол-во последовательностей) максимум 65 байт
  81. код сжатия - RLE + арифметическая прогрессия
  82.  
  83. ----------------------------------------------------------------------
  84.  
  85.  
  86. Метод 1-1: Распаковка графики
  87.  
  88. EndOfDecompress:
  89. 0000 0000
  90.  
  91. LZ:
  92. 1 XXX YYYY XXXXXXXX
  93. | | | |
  94. | | | 8 младших бит смещения lz строки
  95. | | 4 бита (18 - длина строки)
  96. | 3 старших бит смещения lz строки
  97. код сжатия lz
  98.  
  99. RAW:
  100. 01 YYYYYY AAAAAAAA...
  101. | | |
  102. | | байты для копирования
  103. | 6 бит - кол-во байт для копирования
  104. код несжатых данных
  105.  
  106. RLE:
  107. 000 YYYYY AAAAAAAA
  108. | | |
  109. | | rle байт
  110. | 5 бит (34 - кол-во повторений) максимум 33 байта
  111. код сжатия RLE
  112.  
  113. LZ_One_Byte:
  114. 001 YYYYY
  115. | |
  116. | |
  117. | 5 бит смещения lz строки
  118. код сжатия LZ_One_Byte
  119.  
  120. **********************************************************************
  121.  
  122. Метод 1-2: Распаковка карты тайлов
  123. Отличается от предыдущего метода сжатия только тем, что
  124. сначала распаковываются старшие байты карты тайлов(приоритет, номер палитры, отражение),
  125. а затем младшие байты. При этом после каждой записи в приёмник, адрес приёмника увеличивается
  126. на два байта. Также во время распаковки младших байт, lz строка может копироваться из старших байт.
  127.  
  128. EndOfDecompress:
  129. 0000 0000 - необходимо записывать после сжатия младших и старших байт
  130.  
  131. LZ:
  132. 1 XXX YYYY XXXXXXXX
  133. | | | |
  134. | | | 8 младших бит смещения lz строки
  135. | | 4 бита (18 - длина строки)
  136. | 3 старших бит смещения lz строки
  137. код сжатия lz
  138.  
  139. RAW:
  140. 01 YYYYYY
  141. | |
  142. | |
  143. | 6 бит количество несжатых байт
  144. код несжатых данных
  145.  
  146. RLE:
  147. 000 YYYYY AAAAAAAA
  148. | | |
  149. | | rle байт
  150. | 5 бит (34 - кол-во повторений) максимум 33 байта
  151. код сжатия RLE
  152.  
  153. RLE_SEQ:
  154. 001 YYYYY AAAAAAAA
  155. | | |
  156. | | rle байт
  157. | 5 бит (34 - кол-во последовательностей)
  158. код сжатия RLE + арифметическая прогрессия
  159.  
  160. -----------------------------------------------------------------------
  161.  
  162.  
  163.  
  164. Метод 3:
  165.  
  166. END Of Decompress:
  167. 0000 0000
  168.  
  169. RLE16bit:
  170. 0 XXXXXXX YYYYYYYY YYYYYYYY
  171. | | |
  172. | | 16 бит rle word
  173. | 7 бит (130 - кол-во повторений) максимум 129 байт
  174. код сжатия RLE
  175.  
  176. RAW:
  177. 1 XXXXXXX YYYYYYYY YYYYYYY...
  178. | | |
  179. | | 16 бит word
  180. | 7 бит (128 - кол-во слов для копирования)
  181. код несжатых данных
  182.  
  183.  
  184.  
  185.  
Add Comment
Please, Sign In to add comment