Skip to content

Commit

Permalink
chore: README-RU updated
Browse files Browse the repository at this point in the history
  • Loading branch information
petrlipatov committed Sep 1, 2024
1 parent 5daceba commit 5a5da09
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
24 changes: 12 additions & 12 deletions README-RU.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
# rutf8-toolkit

Библиотека для сериализации и сжатия небольших кириллических текстов. Она предлагает различные алгоритмы для кодирования, сжатия и декодирования данных, поддерживая такие методы, как RUTF-8, Хаффман, LZSS, LZ77, BWT и RLE.
Библиотека для сериализации и сжатия небольших кириллических текстов. Включает алгоритмы для кодирования, сжатия и декодирования данных, такие как RUTF8, Хаффман, LZSS, LZ77, BWT и RLE.

## Особенности

- **rutf8:** Храните и передавайте кириллические буквы в формате `uint8` c поддержкой Unicode.
- **Хаффман:** Кодирование переменной длины с использованием дерева Хаффмана.
- **LZSS и LZ77:** Компрессия текста через алгоритмы со скользящим окном.
- **BWT:** Преобразование Барроуза-Уилера для улучшения сжатия.
- **RLE:** Простое и эффективное кодирование повторяющихся символов.
- **Оптимальное сжатие:** Подсчет теоретически возможного минимального размера строки с помощью энтропии Шеннона.
- **BWT:** Обратимые перестановки Барроуза-Уилера для улучшения сжатия.
- **RLE:** Простое кодирование повторяющихся символов.
- **Оптимальное сжатие:** Подсчет теоретически возможного минимального\* размера строки с помощью энтропии Шеннона.

## Комбинирование алгоритмов

Для более интересных результатов рекомендуется использовать несколько алгоритмов последовательно. Комбинация различных методов сжатия и кодирования может значительно повысить эффективность хранения и передачи данных. Например, можно предварительно обработать текст с помощью `RUTF8` или `BWT`, а затем применить `RLE` и кодирование Хаффмана для более эффективного сжатия.
Для интересных результатов рекомендуется использовать несколько алгоритмов последовательно. Комбинация различных методов сжатия и кодирования может значительно повысить эффективность хранения и передачи данных. Например, можно предварительно обработать текст с помощью `RUTF8`, после `BWT`, а затем применить `RLE` и кодирование Хаффмана.

## Модули

### 1) rutf8

`RUTF-8` — это собственный метод кодирования, который отображает русские символы Unicode в символы ASCII и наоборот. Это позволяет представлять русский текст однобайтовыми символами ASCII, сохраняя полную поддержку всех остальных символов Unicode.
`RUTF-8` — это кастомный метод кодирования, который меняет местами кириллические символы и символы ASCII в таблице Unicode. Это позволяет представлять русский текст однобайтовыми символами ASCII, сохраняя полную поддержку всех остальных символов Unicode.

#### Как это работает:

Expand All @@ -37,12 +37,12 @@

### 2) Хаффман

Модуль кодирования Хаффмана использует алгоритм дерева Хаффмана для кодирования текста переменной длины, что позволяет сжимать данные, присваивая короткие коды частым символам.
Модуль кодирования Хаффмана использует алгоритм дерева Хаффмана для кодирования текста с помощью "variable-length encoding", что позволяет сжимать данные, присваивая короткие коды частым символам.

#### Как это работает:

- Анализирует частоту символов и генерирует оптимальные кодировки.
- Создает коды переменной длины для каждого символа с использованием дерева Хаффмана.
- Анализирует частоту символов.
- Создает коды переменной длины для каждого символа.
- Кодирует текст с использованием этих кодов и упаковывает дерево Хаффмана вместе с закодированными данными в двоичный буфер.
- Декодирует текст без необходимости в дополнительной схеме (безсхемное декодирование).

Expand Down Expand Up @@ -94,11 +94,11 @@

#### Двоичное кодирование

![LZ77 Schema](images/lz77-schema.webp)
![LZ77 Schema](https://i.imgur.com/j25RpK8.jpeg)

### 5) BWT

Преобразование Барроуза-Уилера (BWT) — это алгоритм предварительной обработки данных, который переставляет символы текста для улучшения последующего сжатия.
Обратимая сортировка Барроуза-Уилера (BWT) — это алгоритм предварительной обработки данных, который переставляет символы текста для улучшения последующего сжатия. Одно из преимуществ этого метода — простота восстановления оригинального текста, достаточно сохранить всего одно число.

#### Основные функции:

Expand All @@ -107,7 +107,7 @@

### 6) RLE (Run-Length Encoding)

`RLE` — это простой, но эффективный алгоритм сжатия, который особенно хорошо работает с данными, содержащими длинные последовательности повторяющихся символов.
`RLE` — это простой, но эффективный алгоритм сжатия, который особенно хорошо работает с данными, содержащими длинные последовательности повторяющихся символов. Поэтому его часто применяют после BWT.

#### Основные функции:

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rutf8-toolkit",
"version": "0.1.4-alpha.1",
"version": "0.1.5-alpha.1",
"description": "Serialization and compression toolkit for cyrillic payloads",
"scripts": {
"build": "tsc",
Expand Down

0 comments on commit 5a5da09

Please sign in to comment.