Skip to content

alexOnOff/OTIK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Архиватор

Разработано в рамках курса по предмету "Основы теории информации и кодирования".


Формат файла: .nkvd

Заголовок формата

  1. Сигнатура: 4 байта
    Для формата nkvd: { 0x6e , 0x6b, 0x76, 0x64 }
  2. Версия: 1 байт
  3. Код шифрования: 1 байт
  4. Запасной код: 1 байт

Контент (для каждого файла)

  1. Длина названия файла lenFileName: 4 байта
  2. Название файла: lenFileName байт
  3. Длина содержания файла lenFile: 4 байта
  4. Содержимое файла: lenFile байт

Кодирование (код Шеннона)

Кодирует массив байтов из папки. Таблица символов:

  1. Количество символов (байтов): 1 байт Далее в цикле для каждого символа
  2. Символ: 1 байт
  3. Длина кода в битах: 1 байт
  4. Код (бинарный): 1-3 байта

Кодирование (RLE)

Если символ повторяется более 2х раз, то он будет закодирован в следующем формате:

  • Сначала идет байт-флаг. Его старший бит 1, а остальные 7 бит означают (число повторений байта - 2);
  • Далее идет тот самый байт, который повторяется.
    Например, последовательность байт [80 80 80 80 80 80] будет закодирована как:
    10000100 80 (первое число в двоичном формате). Или 132 80 в десятичном формате.

Если символы не повторяются, они закодированы следующим образом:

  • Сначала идет байт флаг. Если старший бит равен 0. А остальные 7 бит означают cnt = (сколько символов далее нужно считать - 1);
  • Далее идут cnt символов.
    Например, последовательность байт [0 4 2 0] будет закодирована как:
    00000011 0 4 2 0 или 3 0 4 2 0.

About

OTIK Labs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages