Раздел каталога
Данные: форматы и направления конвертации
Модель данных определяет, что переносится точно, а что — с потерей структуры.
Состав класса
Как устроены эти форматы
Различие между форматами обмена лежит в модели, а не в синтаксисе. JSON описывает дерево из объектов и массивов с пятью типами значений: строка, число, логическое, null и вложенная структура. YAML описывает то же дерево, добавляя комментарии, якоря и ссылки на общие фрагменты. XML — дерево элементов с атрибутами, пространствами имён и внешней схемой. CSV — двумерная таблица без типов.
Отсюда пределы преобразования. JSON и YAML переводятся друг в друга взаимно однозначно с точностью до комментариев и якорей. XML → JSON теряет различие между атрибутом и дочерним элементом, порядок узлов и пространства имён, если не задано соглашение об именовании. Любая вложенная структура → CSV требует разворачивания уровней в колонки; глубина больше одного уровня восстановлению не подлежит.
Программный обмен
JSON по RFC 8259: кодировка UTF-8, числа в двоичной форме двойной точности, порядок ключей объекта незначим. Разбор входит в стандартную библиотеку большинства языков, ограничения описываются отдельной схемой.
Конфигурации
YAML 1.2: значащие отступы пробелами, табуляция запрещена, комментарии со знака решётки, повторяющиеся фрагменты выносятся якорями. Всякий корректный JSON является корректным YAML; обратное неверно.
Востребованные преобразования
Направления для данных, упорядоченные по частоте обращений к странице.
| Направление | Что получится | Точность |
|---|---|---|
| .json.csv | Конвертация JSON в CSV | близкая |
| .xml.json | Конвертация XML в JSON | близкая |
| .json.xml | Конвертация JSON в XML | близкая |
| .json.xlsx | Конвертация JSON в XLSX | близкая |
| .xml.csv | Конвертация XML в CSV | приблизительная |
| .yaml.json | Конвертация YAML в JSON | близкая |
| .json.yaml | Конвертация JSON в YAML | точная |
| .xml.yaml | Конвертация XML в YAML | близкая |
| .yaml.xml | Конвертация YAML в XML | близкая |
| .yaml.csv | Конвертация YAML в CSV | приблизительная |
Вопросы по работе сервиса: данных
Как понять, будет ли файл перекодирован или просто перепакован?
По времени работы и по паре форматов. Смена контейнера при совместимых потоках (MKV → MP4 с H.264 внутри, WAV → FLAC, ZIP → 7Z) обрабатывается со скоростью чтения диска — секунды даже на гигабайтных файлах. Перекодирование ограничено производительностью кодировщика: минута исходного видео в 1080p занимает от нескольких секунд до минуты машинного времени в зависимости от CRF и пресета.
Почему после конвертации файл стал больше исходного?
Так ведёт себя переход из формата с потерями в формат без потерь. JPEG на 900 КБ после распаковки — это 24 бита на пиксель сырых данных; PNG сохранит их полностью и займёт 5–8 МБ. Новой информации в файле при этом не появляется: артефакты предыдущего сжатия записываются с той же точностью, что и полезное изображение.
Какое значение качества выбрать, чтобы не увидеть разницу?
Для JPEG рабочий диапазон — 82–92: ниже 75 на однотонных участках проступает блочность 8×8 пикселей, выше 95 файл растёт быстрее, чем улучшается изображение. Для H.264 то же место занимает CRF 18–23, где 18 практически неотличим от источника. Для MP3 порог прозрачности для большинства слушателей лежит в районе 192 кбит/с при кодировании VBR.
Сохранятся ли цветовой профиль и глубина цвета?
Профиль ICC переносится, если целевой формат его поддерживает: JPEG, PNG, TIFF и WebP умеют, BMP — нет. Глубина ограничивается возможностями формата: 10-битный HEIC при переводе в JPEG сводится к 8 битам на канал, и на плавных градиентах может проступить полосатость. Файлы в CMYK пересчитываются в sRGB и на экране выглядят иначе, чем на бумаге.
Что происходит с несколькими файлами в одном задании?
Направления, помеченные пакетной обработкой, принимают набор файлов и применяют к ним одинаковые параметры. Файлы обрабатываются последовательно, а результат доступен и по одному, и общим ZIP-архивом. Видео и другие тяжёлые преобразования пакетную обработку не поддерживают: одно задание заняло бы очередь на десятки минут.
Почему направление может быть недоступно?
Две причины. Первая — движок не установлен или временно не отвечает: страница направления остаётся, но кнопка запуска выключена. Вторая — преобразование не имеет корректной реализации: обратное восстановление RAW из JPEG, снятие DRM с книги, распознавание текста на сканах. Такие направления не включаются в реестр, чтобы не выдавать за конвертацию переупаковку без результата.