Guest User

UMK3 Decompression Description

a guest
Apr 2nd, 2021
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.50 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. 0 - нет сжатия, просто скопировать один байт из источника в приёмник
  21. 1 - есть сжатие.
  22.  
  23. LZ:
  24. 1 XXX YYYY XXXXXXXX
  25. | | | |
  26. | | | 8 младших бит смещения строки
  27. | | 4 бита относительный адрес на подпрограмму копирования lz строки
  28. | 3 старших бита смещения строки
  29. знак сжатия LZ
  30.  
  31. RLE:
  32. 00 YY YYYY AAAAAAAA
  33. | | |
  34. | | байт повторения
  35. | 6 бит относительный адрес на подпрограмму копировния rle байта
  36. код RLE сжатия
  37.  
  38. RLE_plus_Arith:
  39. 01 YY YYYY AAAAAAAA
  40. | | |
  41. | | байт повторения
  42. | 6 бит относительный адрес на подпрограмму копировния rle байта
  43. код сжатия - RLE + арифметическая прогрессия
  44.  
  45.  
  46. ********************************************************************
  47. Метод 2-2: Распаковка карты тайлов
  48. Отличается от предыдущего метода сжатия только тем, что
  49. сначала распаковываются старшие байты карты тайлов(приоритет, номер палитры, отражение),
  50. а затем младшие байты. При этом после каждой записи в приёмник, адрес приёмника увеличивается
  51. на два байта. Также во время распаковки младших байт, lz строка может копироваться из старших байт.
  52.  
  53. Флаг-байт:
  54. XXXXXXXX
  55. 0 - нет сжатия, просто скопировать один байт из источника в приёмник
  56. 1 - есть сжатие.
  57.  
  58. EndOfDecompress:
  59. 0000 0000 - необходимо записывать после сжатия младших и старших байт
  60.  
  61. LZ:
  62. 1 XXX YYYY XXXXXXXX
  63. | | | |
  64. | | | 8 младших бит смещения lz строки
  65. | | 4 бита относительный адрес на подпрограмму копирования lz строки
  66. | 3 старших бит смещения lz строки
  67. знак сжатия LZ
  68.  
  69. RLE:
  70. 00 YY YYYY AAAAAAAA
  71. | | |
  72. | | байт повторения
  73. | 6 бит относительный адрес на подпрограмму копировния rle байта
  74. код RLE сжатия
  75.  
  76. RLE_plus_Arith:
  77. 01 YY YYYY AAAAAAAA
  78. | | |
  79. | | байт повторения
  80. | 6 бит относительный адрес на подпрограмму копировния rle байта
  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 бита относительный адрес на подпрограмму копирования lz строки
  96. | 3 старших бит смещения lz строки
  97. код сжатия lz
  98.  
  99. RAW:
  100. 01 YY YYYY
  101. | |
  102. | |
  103. | 6 бит количество несжатых байт
  104. код несжатых данных
  105.  
  106. RLE:
  107. 000 Y YYYY AAAAAAAA
  108. | | |
  109. | | rle байт
  110. | 5 бит количества повторения rle байта
  111. код сжатия RLE
  112.  
  113. LZ_One_Byte:
  114. 001 Y YYYY AAAAAAAA
  115. | | |
  116. | | rle байт
  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 бита относительный адрес на подпрограмму копирования lz строки
  136. | 3 старших бит смещения lz строки
  137. код сжатия lz
  138.  
  139. RLE:
  140. 00 YY YYYY AAAAAAAA
  141. | | |
  142. | | rle байт
  143. | 6 бит количества повторения rle байта
  144. код сжатия RLE
  145.  
  146. RAW:
  147. 01 YY YYYY
  148. | |
  149. | |
  150. | 6 бит количество несжатых байт
  151. код несжатых данных
  152.  
  153. -----------------------------------------------------------------------
  154.  
  155.  
  156.  
  157. Метод 3:
  158.  
  159. END Of Decompress:
  160. 0000 0000
  161.  
  162. RLE16bit:
  163. 0 XXXXXXX YYYYYYYY YYYYYYYY
  164. | | |
  165. | | 16 бит rle word
  166. | 7 бит относительный адрес на подпрограмму копирования
  167. код сжатия RLE
  168.  
  169. RAW:
  170. 1 XXXXXXX YYYYYYYY YYYYYYY...
  171. | | |
  172. | | 16 бит word
  173. | 7 бит относительный адрес на подпрограмму копирования
  174. код несжатых данных
  175.  
  176.  
  177.  
  178.  
Add Comment
Please, Sign In to add comment