Rust движок сжатия

Собственный движок сжатия с интеллектуальным распределением стратегий по типу файла

Обзор движка

Написан на Rust, распределяет по специализированным компрессорам по типу файла

Движок сжатия SmartSlim написан на Rust. Основной подход заключается в распределении входных файлов по соответствующим специализированным компрессорам (изображения, PDF, видео, аудио, документы Office, OFD и т.д.) в зависимости от типа файла, причём каждый компрессор применяет оптимальную стратегию сжатия для данного формата. Движок интеллектуально анализирует характеристики изображений для автоматического выбора схем сжатия, использует нативные привязки библиотек для видео/аудио для достижения наилучшей производительности и применяет стратегию структурированной перепаковки для документов Office.

Ключевые особенности: Написан на нативном Rust · Интеллектуальное распределение по типу · Нативные привязки библиотек без накладных расходов процесса · Мультиплатформенная предкомпиляция

Интеллектуальное сжатие изображений

Анализирует характеристики изображения и автоматически выбирает оптимальную стратегию кодирования

1. Интеллектуальный анализ изображения

Движок автоматически анализирует характеристики изображения, такие как распределение оттенков серого и сложность деталей, определяя, является ли изображение бинарным, документом, смешанным или фотографическим типом, предоставляя основу для решения о последующей стратегии сжатия.

2. Автоматическая классификация

Изображения классифицируются на 4 категории по нескольким индикаторам: Бинарные (например, сканированные документы), Документ (немного цветов), Смешанные (текст + фото), Фото (богатые цвета). Разные категории используют разные параметры качества.

3. Распределение форматов и оптимизация кодирования

На основе формата ввода и результата классификации движок распределяет по специализированным кодировщикам для целевой оптимизации. Параметры качества регулируются по уровню сжатия (низкий/средний/высокий/ультра) для балансировки степени сжатия и чёткости.

Сжатие PDF

Субдискретизация и контроль DPI для значительного уменьшения размера

Сжатие видео и аудио

Нативные привязки библиотек, без накладных расходов процесса

Сжатие видео

На основе нативных привязок библиотек (не вызов командной строки, без накладных расходов процесса), поддерживает основные форматы видеокодирования. Управляет качеством изображения через постоянный фактор качества, выбирает оптимальные пресеты кодирования по сценарию для балансировки скорости и коэффициента сжатия. Поддерживает специфичные для сценария параметры для веб-публикации, потоковой передачи, социальных сетей, прямого эфира, прокси для монтажа и т.д.

Сжатие аудио

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

Сжатие документов Office

Структурированная перепаковка + интеллектуальное сжатие встроенных изображений

Word (docx), Excel (xlsx), PPT (pptx) и другие документы Office по сути являются архивными форматами, содержащими XML и встроенные медиаресурсы. Движок применяет следующую стратегию:

Параллелизм и пакетная обработка

Гибкая стратегия контроля параллелизма

Для сжатия отдельных файлов движок внутренне использует многопоточность для кодирования/декодирования, полностью задействуя многоядерную производительность. Пакетные задачи сжатия поддерживают управление количеством одновременных задач через конфигурацию авторизации. Серверная редакция может горизонтально масштабировать процессы Worker для повышения общей пропускной способности.

Узнать больше

Изучить архитектуру безопасности и поддержку форматов

Архитектура безопасности Список поддерживаемых форматов