Я читаю официальный Спецификация WebP без потерь и у меня есть ощущение, что в документе отсутствуют некоторые пояснения.
Позвольте мне описать некоторые фрагменты спецификации:
1. Введение — ясно
2. Заголовок Riff — очистить
3. Преобразования
Преобразования используются только для изображения ARGB основного уровня:
изображения субразрешения не имеют преобразований, даже 0-битный
конец преобразований.
Нигде ранее не упоминалось, что в контейнере содержатся изображения с меньшим разрешением. Кто они такие? Где они описаны, если не в спецификации? Как они добавляют в окончательный образ?
Затем в Предикторное преобразование параграф:
Разобьем изображение на квадраты …
..какое изображение? главный изображение или изображение с меньшим разрешением? Что если изображение не может быть разделено на квадраты (кроме квадратов размером в пиксели)?
Первые 4 бита данных предсказания определяют ширину и высоту блока
в количестве бит. Количество столбцов блока, block_xsize, используется
в индексировании двумерно.
Означает ли это, что ширина изображения равна block_xsize * block_width?
Данные преобразования содержат режим прогнозирования для каждого блока изображения.
Каким образом, в каком формате?
Я не знаю, почему мне трудно это понять. Возможно, потому что я не являюсь носителем английского языка или потому что описание слишком лаконично.
Буду признателен за любую помощь в декодирование это спецификация 🙂
Это было упомянуто ранее. Справа вверху документа написано:
В формате используются изображения с разрешением, рекурсивно встроенные в
сам формат для хранения статистических данных об изображениях, таких как
используемые энтропийные коды, пространственные предикторы, преобразование цветового пространства,
и таблица цветов.
Это массивы (или вектор в случае таблицы цветов) данных, где каждый элемент применяется к блоку пикселей в реальном изображении, например, блок 16х16. Эти «изображения с разрешением» сами по себе не являются подвыборками сжатого изображения.
Описание формата называет их изображениями, потому что они хранятся точно так же, как основное изображение в формате. Преобразования являются инструкциями для декодера для применения к распакованным данным основного изображения. Энтропийное изображение используется для распаковки основного изображения посредством предоставления кодов Хаффмана для каждого блока.
Других решений пока нет …