~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 1DD619FC14B461BDF1A1543D4FCECF9C__1716747060 ✰
Заголовок документа оригинал.:
✰ QOI (image format) - Wikipedia ✰
Заголовок документа перевод.:
✰ QOI (формат изображения) — Википедия, бесплатная энциклопедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/QOI_(image_format) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/1d/9c/1dd619fc14b461bdf1a1543d4fcecf9c.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/1d/9c/1dd619fc14b461bdf1a1543d4fcecf9c__translat.html ✰
Дата и время сохранения документа:
✰ 23.06.2024 11:41:42 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 26 May 2024, at 21:11 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

QOI (формат изображения) — Википедия, бесплатная энциклопедия Jump to content

QOI (формат изображения)

Из Википедии, бесплатной энциклопедии
Вполне нормальное изображение
Расширение имени файла
.который
Магическое число qoif (4 байта, ASCII)
Разработан Доминик Шаблевски
Начальная версия 24 ноября 2021 г.
Последний релиз
1.0
5 января 2022 г .; 2 года назад ( 05.01.2022 )
Тип формата изображения без потерь растрового Формат
Стандартный Спецификация
Открытый формат ? Да
Свободный формат ? Да
Веб-сайт qoiformat.org

Формат изображения Quite OK ( QOI ) — это спецификация для без потерь сжатия изображений 24 -битных (8 бит на цвет RGB ) или 32-битных (8 бит на цвет с 8-битным альфа- каналом RGBA ) цветных растровых (растровых) изображений, изобретен Домиником Шаблевски и впервые анонсирован 24 ноября 2021 года. [1]

Описание [ править ]

Предполагаемой целью было создание открытым исходным кодом метода сжатия без потерь с , который был бы быстрее и проще в реализации, чем PNG . Цифры, указанные в сообщении блога, анонсирующем формат, утверждают, что кодирование происходит в двадцать-пятьдесят раз быстрее, а скорость декодирования в три-четыре раза выше, чем в PNG, при аналогичных размерах файлов. [1] Автор передал спецификацию в общественное достояние ( CC0 ). [2]

языковая поддержка Программное обеспечение и

QOI изначально поддерживается ImageMagick , [3] Imagine (v1.3.9+), IrfanView (v4.60+), [4] FFmpeg (v5.1+), [5] и Графический конвертер (v11.8+). [6] Microsoft PowerToys (v0.76+) для Windows 10 и 11 добавляет поддержку предварительного просмотра изображений QOI в проводнике Windows. [7] [8] созданные сообществом, Плагины, доступны в GIMP , Paint.NET и XnView MP . [9]

Игровой движок GameMaker определяет bzip2 + QOI в качестве формата групп текстур по умолчанию , начиная с версии 2022.1.0.609, для достижения лучшего сжатия, но при этом более быстрого распаковывания, в то время как автономные форматы QOI и PNG являются необязательными для еще большей производительности и лучшей совместимости соответственно. . [10] [11]

Существуют также реализации для различных языков, таких как Rust , Python , Java , C++ , C# и других. [12] Полный список можно найти в README репозитория Git(Hub) проекта .

Формат файла [ править ]

Заголовок [ править ]

Файл QOI состоит из 14-байтового заголовка, за которым следует любое количество «фрагментов» данных и 8-байтовый маркер конца.

qoi_header   { 
     символ   магии  [  4  ];    // магические байты "qoif" 
     uint32_t   width  ;    // ширина изображения в пикселях (BE) 
     uint32_t   height  ;    // высота изображения в пикселях (BE) 
     uint8_t   каналы  ;    // 3 = RGB, 4 = 
     RGBA uint8_t   цветовое пространство  ;    // 0 = sRGB с линейным альфа-каналом 
 // 1 = все каналы линейные 
 }; 

Поля цветового пространства и канала носят чисто информативный характер. Они не меняют способ кодирования фрагментов данных.

Кодировка [ править ]

Изображения кодируются построчно, слева направо, сверху вниз. декодер и кодер начинаются с {r: 0, g: 0, b: 0, a: 255}как предыдущее значение пикселя. Изображение считается полным, когда все пиксели, указанные в width * heightбыли покрыты. Пиксели кодируются как:

  • Кодирование длины серии предыдущего пикселя ( QOI_OP_RUN)
  • индекс в массиве ранее увиденных пикселей ( QOI_OP_INDEX)
  • разница по сравнению с предыдущим значением пикселя в r,g,b ( QOI_OP_DIFF или QOI_OP_LUMA)
  • Полные значения r,g,b или r,g,b,a ( QOI_OP_RGB или QOI_OP_RGBA)

Предполагается, что цветовые каналы не умножаются предварительно на альфа-канал («альфа без предварительного умножения»). Бег array[64](инициализировано нулем) ранее увиденного пикселя значения поддерживаются кодером и декодером. Каждый пиксель, видимый кодером и декодером, помещается в этот массив в позицию, образованную хэш-функцией значения цвета.

В кодировщике, если значение пикселя по индексу соответствует текущему пикселю, эта позиция индекса записывается в поток как QOI_OP_INDEX. Хэш-функция для индекса:

index_position   =   (  r   *   3   +   g   *   5   +   b   *   7   +   a   *   11  )   %   64 

Каждый фрагмент начинается с 2- или 8-битного тега, за которым следует несколько битов данных. Разрядность фрагментов делится на 8, т.е. все фрагменты выровнены по байтам. Все значения, закодированные в этих битах данных, имеют старший бит слева. 8-битные теги имеют приоритет над 2-битными тегами. Декодер должен сначала проверить наличие 8-битного тега. Конец потока байтов отмечен цифрой 7. 0x00 байты, за которыми следует один 0x01 байт.

Возможные фрагменты:

QOI_OP_RGB[ редактировать ]

Байт[0] Байт[1] Байт[2] Байт[3]
7 6 5 4 3 2 1 0 7 .. 0 7 .. 0 7 .. 0
1 1 1 1 1 1 1 0 красный зеленый синий
  • 8-битный день b11111110 (254)
  • 8-битное значение красного канала
  • 8-битное значение зеленого канала
  • 8-битное значение синего канала

Значение альфа остается неизменным по сравнению с предыдущим пикселем.

QOI_OP_RGBA[ редактировать ]

Байт[0] Байт[1] Байт[2] Байт[3] Байт[4]
7 6 5 4 3 2 1 0 7 .. 0 7 .. 0 7 .. 0 7 .. 0
1 1 1 1 1 1 1 1 красный зеленый синий альфа
  • 8-битный день b11111111 (255)
  • 8-битное значение красного канала
  • 8-битное значение зеленого канала
  • 8-битное значение синего канала
  • 8-битное значение альфа-канала

QOI_OP_INDEX[ редактировать ]

Байт[0] (диапазон: 0 .. 63)
7 6 5 4 3 2 1 0
0 0 индекс
  • 2-битный день b00
  • 6-битный индекс в массиве индексов цвета: 0..63

Действительный кодер не должен выдавать 2 или более последовательных QOI_OP_INDEX фрагменты по одному и тому же индексу. QOI_OP_RUN вместо этого следует использовать.

QOI_OP_DIFF[ редактировать ]

Байт[0] (диапазон: 64 .. 127)
7 6 5 4 3 2 1 0
0 1 доктор дг БД
  • 2-битный день b01
  • 2-битная разница красного канала с предыдущим пикселем -2..1
  • Отличие зеленого канала на 2 бита от предыдущего пикселя -2..1
  • 2-битная разница синего канала с предыдущим пикселем -2..1

Разница с текущими значениями канала заключается в использовании операции переноса , поэтому 1 - 2 приведет к 255, в то время как 255 + 1 приведет к 0.

Значения сохраняются как целые числа без знака со смещением 2. Например, −2 сохраняется как 0 ( b00). 1 сохраняется как 3 ( b11). Значение альфа остается неизменным по сравнению с предыдущим пикселем.

QOI_OP_LUMA[ редактировать ]

Байт[0] (диапазон: 128 .. 191) Байт[1]
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
1 0 дг доктор - дг дб - дг
  • 2-битный день b10
  • Отличие 6-битного зеленого канала от предыдущего пикселя -32..31
  • 4-битная разница красного канала минус разница зеленого канала -8..7
  • 4-битная разница синего канала минус разница зеленого канала -8..7

Зеленый канал используется для указания общего направления изменения и кодируется 6 битами. Красный и синий каналы (dr и db) основывают свои различия на разнице зеленых каналов. Т.е.:

dr_dg   =   (  cur_px  .  r   -   prev_px  .  r  )   -   (  cur_px  .  g   -   prev_px  .  g  ) 
 db_dg   =   (  cur_px  .  b   -   prev_px  .  b  )   -   (  cur_px  .  g   -   prev_px  .  g  ) 

Разница с текущими значениями канала заключается в использовании операции переноса, поэтому 10 - 13 приведет к 253, в то время как 250 + 7 приведет к 1.

Значения сохраняются как целые числа без знака со смещением 32 для зеленого канала и смещением 8 для красного и синего каналов. Значение альфа остается неизменным по сравнению с предыдущим пикселем.

QOI_OP_RUN[ редактировать ]

Байт[0] (диапазон: 192 .. 253)
7 6 5 4 3 2 1 0
1 1 бегать
  • 2-битный день b11
  • 6-битная длина серии, повторяющая предыдущий пиксель

Длина серии сохраняется со смещением -1. Обратите внимание, что длины 63 и 64 ( b111110 и b111111) являются незаконными, поскольку они заняты QOI_OP_RGB и QOI_OP_RGBA теги. [13]

Ссылки [ править ]

  1. ^ Перейти обратно: а б «Сжатие изображений без потерь за время O(n)» . Phoboslab.org . 2021-11-24. Архивировано из оригинала 8 мая 2022 г. Проверено 1 мая 2022 г.
  2. ^ «QOI Вполне приемлемый формат изображения» . qoiformat.org . 14 декабря 2023 г. Архивировано из оригинала 16 декабря 2023 г. Проверено 14 декабря 2023 г.
  3. ^ «ImageMagick — Форматы изображений» . Архивировано из оригинала 2 января 2022 года . Проверено 4 мая 2022 г.
  4. ^ «История изменений/версий IrfanView» . www.irfanview.com . Архивировано из оригинала 14 января 2021 г. Проверено 10 мая 2022 г.
  5. ^ «Журнал изменений FFmpeg — Gitweb» . ffmpeg.org . Архивировано из оригинала 13 июля 2022 г. Проверено 13 июля 2022 г.
  6. ^ «Примечания к выпуску GraphicsConverter, версия 11.8 (сборка 5762)» . Программное обеспечение Лемке . Архивировано из оригинала 11 февраля 2023 года . Проверено 21 февраля 2023 г.
  7. ^ «Релиз v0.76.0» . Майкрософт . Проверено 26 марта 2024 г.
  8. ^ «Утилита дополнений PowerToys File Explorer для Windows» . Learn.microsoft.com . 04.12.2023 . Проверено 5 февраля 2024 г.
  9. ^ Джеймс Хейн. «Перемещение изображений на новый уровень» . Почта Бангкока . Проверено 1 апреля 2022 г.
  10. ^ «Версия 2022.1.0.609» . Примечания к выпуску GameMaker . Йо-йо игры. 26 января 2022 г. Проверено 26 марта 2024 г.
  11. ^ «Группы текстур» . Руководство гейммейкера . Йо-йо игры . Проверено 26 марта 2024 г.
  12. ^ Саймон Шарвуд. «Разработчик создает «вполне приемлемый формат изображения», но он работает лучше, чем просто «хороший» . Регистр . Архивировано из оригинала 2 июня 2023 г. Проверено 30 декабря 2023 г.
  13. ^ Шаблевски, Доминик (05 января 2022 г.). «Вполне хорошая спецификация формата изображения» (PDF) . Архивировано (PDF) из оригинала 30 апреля 2022 г. Проверено 5 июня 2022 г. Всеобщее достояние В данную статью включен текст из этого источника, находящегося в свободном доступе .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 1DD619FC14B461BDF1A1543D4FCECF9C__1716747060
URL1:https://en.wikipedia.org/wiki/QOI_(image_format)
Заголовок, (Title) документа по адресу, URL1:
QOI (image format) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)