Pi формат
| PIX (Pixel Interchange) | |
|---|---|
| Файл:PIX-logo.png Логотип формата PIX | |
| Расширение |
.pix |
| MIME |
image/pix |
| Разработчик |
Flashchat 2000 |
| Версия |
v4.2 (октябрь 15, 2025 (2025-10-15)) |
| Тип | |
| Содержит |
растровые, векторные и процедурные данные |
| Расширен |
PI (Power Image) |
| Открытость |
частично |
| Лицензия |
Apache 2.0 |
PIX (сокращение от англ. Pixel Interchange) — экспериментальный графический формат файлов, разработанный в 2024–2025 годах независимым разработчиком под псевдонимом Flashchat 2000. Формат предназначен для хранения растровых, векторных и процедурно генерируемых изображений, а также для описания логики их обработки с помощью ориентированного графа задач. PIX реализует часть более широкой спецификации под названием PI (англ. Power Image), ориентированной на мультимедийные данные.
Лицензия: Apache 2.0
История[править]
Идея создания формата возникла в начале 2024 года в рамках проекта PI (Power Image), нацеленного на разработку универсального контейнера для мультимедийных ресурсов. PIX был выделен как специализированный формат для 2D-графики, сочетающий хранение содержимого и описание его обработки.
В июле 2025 года автор опубликовал статьи, описывающие архитектуру формата, на платформах Habr[1] и Dev.to[2]. Исходный код доступен на GitHub[3].
Архитектура и особенности[править]
Гибридная структура[править]
Формат поддерживает одновременное хранение:
- растровых данных (включая поддержку JPEG, WebP и собственного кодека PIX_NATIVE),
- векторных объектов,
- процедурных элементов, определяемых математически в момент рендеринга.
Такой подход позволяет сохранять высокую степень редактируемости и гибкости, снижая объём выходного файла.
Граф задач (Task Graph)[править]
Основой внутренней модели документа является ориентированный ациклический граф (DAG), в котором каждый узел (нода) представляет собой операцию (например, фильтрацию, трансформацию, объединение слоёв). Это позволяет:
- реализовывать неразрушающее редактирование,
- оптимизировать производительность за счёт параллельной обработки,
- отслеживать и откатывать изменения.
Поддержка версий и "ленивой" загрузки[править]
PIX реализует механизм сохранения изменений в виде дельт и контрольных точек, что упрощает совместную работу и управление историей правок. Специальный INDX-блок позволяет загружать только необходимые части файла по мере обращения, что особенно важно при облачной работе с большими сценами.
Защита содержимого[править]
Для безопасной доставки ресурсов предусмотрена поддержка гибридного шифрования:
- содержимое шифруется при помощи AES‑256‑GCM,
- сессионный ключ передаётся с использованием схемы ECIES на кривой secp256k1,
- поддерживаются цифровые подписи и контроль целостности.
Концепции интеграции[править]
Гибридная модель взаимодействия (концепция)[править]
PIX предполагает возможность интеграции с профессиональными редакторами (например, Adobe Photoshop) через плагин, работающий как "интеллектуальный посредник". Согласно архитектурному описанию:
- при открытии .pix-файла он отображается как обычный многослойный документ;
- пользователь работает стандартными средствами редактора;
- при сохранении плагин отслеживает изменения и трансформирует их обратно в граф задач;
- деструктивные изменения обрабатываются через механизм «грациозной деградации», заменяя процедурный узел на растровый слой.
На момент публикации данная модель рассматривается как концептуальная и не имеет завершённой реализации.
Отношение к спецификации PI[править]
Формат PIX реализует графическую часть более общей спецификации PI (англ. Power Image), разрабатываемой как мультимедийный контейнер. В рамках PI предусмотрена поддержка не только 2D-графики, но и 3D-сцен, аудио, анимации и логики поведения объектов. Таким образом, PIX выступает как специализированное подмножество PI, фокусируясь на изображениях и визуальных эффектах.
Критика[править]
- Ограниченная совместимость. Формат не поддерживается большинством существующих графических редакторов и требует специализированных инструментов.
- Высокая сложность. Использование графов, криптографии и процедурных элементов усложняет реализацию и повышает порог входа.
- Ограниченная открытость. Несмотря на размещение исходного кода, спецификация формата документирована частично, что затрудняет стороннюю верификацию.