Hqx - Hqx
Эта статья включает в себя список общих Рекомендации, но он остается в основном непроверенным, потому что ему не хватает соответствующих встроенные цитаты.Февраль 2019 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В обработка изображений, hqx («шкала высокого качества») является одним из алгоритмы масштабирования пиксельной графики разработан Максим Степин, используется в эмуляторы Такие как Нестопия, FCEUX, Хиган, Snes9x, ЗСНЭС и многое другое. Определены три фильтра hqx: hq2x, hq3x, и hq4x, которые увеличиваются в 2, 3 и 4 раза соответственно. Для других коэффициентов увеличения этот фильтр используется с ближайший сосед масштабирование.
Изображение увеличено в 3 раза с помощью интерполяция ближайшего соседа
Изображение увеличено в 3 раза по алгоритму hq3x
Алгоритм
Сначала цвет каждого из 8 пикселей вокруг исходного пикселя сравнивается с цветом исходного пикселя. Формы обнаруживаются путем проверки пиксели аналогичного цвета по порогу. Это дает всего 28 = 256 комбинаций похожих или разных соседей. Чтобы развернуть отдельный пиксель в блок пикселей 2 × 2, 3 × 3 или 4 × 4, расположение соседей ищется в заранее определенной таблице, которая содержит необходимые шаблоны интерполяции.[1]
Hqx использует Цветовое пространство YUV для расчета цветовых различий, чтобы различия в яркости имели больший вес, чтобы имитировать человеческое восприятие. Можно использовать справочную таблицу для преобразования цветового пространства, если исходное изображение имеет 16 бит на пиксель.[1]
Данные интерполяции в справочных таблицах ограничены требованием, чтобы непрерывность линейных сегментов была сохранена при оптимизации плавности. Создание этих таблиц поиска с 256 фильтрами происходит относительно медленно и является основным источником сложности алгоритма: этап рендеринга очень простой и быстрый, и его можно выполнять в реальном времени на MMX -мощный процессор.[1]
В исходном коде данные интерполяции представлены как препроцессор макросы быть вставленным в переключатель случае заявления, и нет исходный код что приводит к созданию таблицы поиска. Автор описывает процесс создания справочной таблицы как:[1]
... для каждой комбинации должно быть определено наиболее вероятное векторное представление области, с сохранением идеи краев между разноцветными областями изображения, с направлением краев, которое должно быть как можно ближе к правильному . Это векторное представление затем растрируется с более высоким (3x) разрешением с использованием сглаживания, и результат сохраняется в справочной таблице.
Реализации
- Исходный алгоритм был перенесен на DevIL (но сохранен на языке C).[1]
- Доступны порты на языки Java и C #. Эти реализации расширяют макросы.[2][3]
- А C ++ порт byuu, автор бснес, который кодирует LUT компактным способом. Бюу использовал симметрию шаблонов для создания такой кодировки и написал несколько примечаний по интерпретации исходных справочных таблиц.[4]
- либретро реализует два семейства шейдеров в Slang /HLSL, GLSL, и Cg:
- В hqx семья, что правда hqx.[5] Как это работает на современном GPU, таблицы поиска заменяются текстурами.[6] Текстуры были сгенерированы путем опроса модифицированной версии hqx для ее переключателя / корпуса.
- В scalehq family, которую часто путают с hqx. Это не связано с hqx, а скорее представляет собой общий алгоритм масштабирования-сглаживания.[7]
- hqx также был реализован в ffmpeg для увеличения изображения и видео в 2, 3 или 4 раза. Отчет о создании перевода для ffmpeg находится здесь: http://blog.pkh.me/p/19-butchering-hqx-scaling-filters.html и использование может быть примерно таким: ffmpeg -i% 1 -filter_complex hqx = 2 hqx2-% 1 для создания 2-кратного изображения или видео.
Смотрите также
Рекомендации
- ^ а б c d е Земек, Кэмерон (6 мая 2019 г.). "hqx README (порт grom358)". Цитировать журнал требует
| журнал =
(помощь) - ^ Гарсия, Эду (6 марта 2019 г.). "hqx-java". GitHub.
- ^ Тамски. "hqxsharp". битбакет.
- ^ Бюу. Объявление о выпуске Проверено 14 августа 2011 г. реализация общественного достояния выпущена на pastebin
- ^ "hqx". Либретро Документы.
- ^ Блок, Жюль (12 апреля 2019 г.). "hqx-шейдер". GitHub.
- ^ К., Хантер (20 июня 2014 г.). "Filthy Pants: компьютерный блог: сравнение истинных шейдеров Hq2x с xBR". Грязные штаны.
внешняя ссылка
- hq2x, hq3x, и hq4x на Wayback Machine
- Порт оригинального проекта с использованием DevIL Инструмент командной строки и библиотека C
- проект hqxSharp порт hqx с добавленной поддержкой прозрачности, настраиваемых допусков и бесшовной мозаики (C #)
- Проект фильтра 2d изображений на code.google.com, включая фильтры hqx и многое другое (C #)
- проект hqx-java Проект Arcnor - бесплатный Java-порт hqxSharp с демонстрацией использования (Java)
- HqxCli-Java Инструмент командной строки, использующий реализацию Arcnor (Java)
- история реализации ffmpeg ffmpeg -i% 1 -filter_complex hqx = 2 hqx2-% 1 для создания двукратного изображения или видео.