- Изображение увеличено в 3 раза с помощью интерполяции ближайшего соседа
- Изображение увеличено в 3 раза с помощью hq3x
Разработчик(и) | Максим Степин |
---|---|
Первоначальный выпуск | 25 июля 2003 г. ( 2003-07-25 ) |
Стабильный релиз | 1.1 / 29 сентября 2003 г. (2003-09-29) |
Написано в | С++ |
Тип | Алгоритм масштабирования пиксельной графики |
Лицензия | LGPL 2.1 |
Веб-сайт | gimp.org |
hqx («масштаб высокого качества») — это набор из 3 алгоритмов масштабирования изображений, разработанных Максимом Степиным. Алгоритмы — hq2x , hq3x и hq4x , которые увеличивают в 2, 3 и 4 раза соответственно. Первоначально он был создан в 2003 году для эмулятора Super NES ZSNES [ 1] и используется в таких эмуляторах , как Nestopia , F. CEUX Snes9x. и Snes9x .
Пиксели исходного изображения перебираются сверху слева направо. Для каждого пикселя окружающие 8 пикселей сравниваются с цветом исходного пикселя. Формы определяются путем проверки пикселей похожего цвета в соответствии с пороговым значением YUV . hqx использует цветовое пространство YUV для вычисления цветовых различий, так что различия в яркости взвешиваются выше, чтобы имитировать человеческое восприятие. [2] Это дает общее количество комбинаций похожих или непохожих соседей. Чтобы расширить один пиксель в блок пикселей 2×2, 3×3 или 4×4, расположение соседей ищется в предопределенной таблице, которая содержит необходимые шаблоны интерполяции. [2]
Данные интерполяции в таблицах поиска ограничены требованием сохранения непрерывности сегментов линий при оптимизации для гладкости. Генерация этих таблиц поиска с 256 фильтрами относительно медленная и является основным источником сложности алгоритма: этап рендеринга очень прост и быстр и разработан для выполнения в реальном времени на процессоре с поддержкой MMX . [2]
В исходном коде данные интерполяции представлены как макросы препроцессора , которые вставляются в операторы switch case , и нет исходного кода, приводящего к генерации таблицы поиска. Автор описывает процесс генерации таблицы поиска следующим образом: [2]
... для каждой комбинации необходимо определить наиболее вероятное векторное представление области, при этом необходимо сохранить идею краев между различными цветными областями изображения, при этом направление края должно быть максимально приближено к правильному. Затем это векторное представление растеризуется с более высоким (3x) разрешением с использованием сглаживания, а результат сохраняется в таблице поиска.
ffmpeg -i %1 -filter_complex hqx=2 hqx2-%1
для создания изображения или видео 2x.{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )