Кратко
- RFC 9639 стандартизирует точное восстановление тех целочисленных PCM-сэмплов, которые были переданы кодеру FLAC.
- Совпавший MD5 обнаруживает ограниченный класс изменений, но не является подписью происхождения и не проверяет смысл метаданных.
- Надёжная квитанция связывает хранение источника, кодирование, поток и контейнер, проверки, PCM, каналы, описания, реализации, ресурсы и конечный эффект.
MD5 аудио совпал. В карточке архива не было подписи поставщика, внешнего манифеста или независимой копии исходного PCM. Проверка отвечала уверенно — но на другой вопрос.
RFC 9639 описывает Free Lossless Audio Codec на Standards Track. Он задаёт кадры, подкадры, метаданные, проверки и потоковое подмножество. Благодаря этому можно доказать равенство декодированных сэмплов входу кодера. Нельзя автоматически доказать, что сам вход был подлинным.
Точность после выбранной точки
Если до кодирования выбрали другой дубль, выполнили ресэмплинг, поменяли каналы или обрезали конец, FLAC способен сохранить результат без единой потери. Это не недостаток кодека; это граница его полномочий.
Квитанция называет вход: частоту, разрядность, число и порядок каналов, количество сэмплов и внешний отпечаток. Она фиксирует кодер, сборку и параметры, декодер и процедуру сравнения. Формула «lossless verified» без двух сравниваемых объектов не воспроизводима.
Разные проверки — разные объекты
Заголовок каждого кадра содержит CRC-8, а конец — CRC-16. STREAMINFO может содержать 128-битный MD5 несжатых аудиоданных. Внешний хеш способен покрыть все байты файла или контейнера.
Верный кадр не подтверждает полноту последовательности. Совпавший PCM MD5 не проверяет индекс, обложку и время контейнера. Файловый хеш не делает истинным поле «исполнитель». В STREAMINFO допустимы неизвестные значения: нулевые размеры кадров, нулевое число сэмплов и полностью нулевой MD5.
RFC 6151 отделяет обнаружение ошибок от аутентификации. MD5 не следует применять там, где требуется стойкость к коллизиям. В FLAC это не цифровая подпись и не свидетельство цепочки хранения. Для происхождения нужен внешний доверенный идентификатор и подпись с явно названным объектом.
Теги сохраняют утверждение, а не его истинность
Комментарии Vorbis и блоки изображений переносят название, исполнителя, дату, лицензию и обложку. Формат не проверяет их содержание. Архив должен хранить исходные байты и отдельно указывать поставщика поля, опорный каталог, дату проверки и противоречия.
Каналы демонстрируют ту же проблему. Для обычных наборов есть стандартный порядок. Маска WAVEFORMATEXTENSIBLE может описывать иную схему, но сама не переставляет сэмплы. Пишущая и читающая стороны должны одинаково трактовать соответствие; зависимость от комментария выводит файл за пределы streamable subset.
Одинаковые сэмплы на других громкоговорителях дают иной результат. Поэтому многоканальный приём требует производственной документации или тестовых сигналов и наблюдения фактического маршрута.
Контейнер может не согласиться
FLAC бывает нативным или помещённым в Ogg и взаимодействует со структурами Matroska и MP4. Контейнер может дублировать длительность, время, частоту и сведения о каналах. Расхождение следует сохранять, а не устранять молча.
Квитанция фиксирует обе интерпретации, парсер, правило приоритета и поведение названных программ. MD5 аудио не разрешает спор о временной шкале контейнера; таблица контейнера не доказывает равенство PCM.
Потоковое подмножество повышает совместимость, но не выдаёт сертификат каждому декодеру. RFC 9639 отмечает, что ранние или низкокачественные реализации могут поддерживать только распространённые функции. Реальное доказательство — матрица продуктов, версий, функций, выходных отпечатков и ошибок.
Правильное декодирование требует ограничений
Кадр размером всего 49 байт может развернуться более чем в 2 MiB PCM, а метаданные способны содержать огромное число полей и символов. Корректность формата не отменяет лимиты памяти, времени и выхода. Непроверенный объект должен обрабатываться с изоляцией и измерением ресурсов.
Цепочка начинается с точного принятого объекта, поставщика, времени, канала передачи и внешнего отпечатка. Затем сохраняются PCM до кодера, преобразования, версия и параметры. Поток и контейнер получают отдельные идентичности. Нули STREAMINFO остаются видимыми; CRC, MD5 и точное сравнение PCM публикуются раздельно.
После этого согласуются частота, глубина, длительность, каналы и время контейнера без стирания конфликтов. Теги получают происхождение. Именованные декодеры запускаются в объявленных лимитах. Если обещано воспроизведение, требуется наблюдение именно этой стадии.
Так полномочия не смешиваются: хранение идентифицирует, кодер преобразует, поток переносит, проверки замечают ограниченные изменения, декодер восстанавливает, метаданные описывают, контейнер задаёт время, а тракт воспроизведения создаёт итог.
Источники
- Lu Heng — Минимальная начальная спецификация
- Lu Heng — Приоритет работающего кода
- Lu Heng — Слои реальности
- История RFC 9639
- Информация о RFC 9639
- RFC 9639 — Free Lossless Audio Codec
- Канонический текст RFC 9639
- Канонический XML RFC 9639
- Исправления RFC 9639
- Реестр FLAC IANA
- Реестр медиатипов IANA
- RFC 1321 — MD5
- RFC 6151 — безопасность MD5
- RFC 3533 — Ogg
- RFC 9559 — Matroska
- RFC 4732 — отказ в обслуживании
- RFC 2046 — медиатипы
- RFC 8126 — процедуры IANA
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

