В компьютерной графике и цифровой обработке изображений масштабирование изображения относится к изменению размера цифрового изображения. В видеотехнологиях увеличение цифрового материала известно как масштабирование или повышение разрешения .
При масштабировании векторного графического изображения графические примитивы, из которых состоит изображение, можно масштабировать с помощью геометрических преобразований без потери качества изображения . При масштабировании растрового графического изображения необходимо сгенерировать новое изображение с большим или меньшим числом пикселей. В случае уменьшения числа пикселей (масштабирования в сторону уменьшения) это обычно приводит к видимой потере качества. С точки зрения цифровой обработки сигналов масштабирование растровой графики представляет собой двумерный пример преобразования частоты дискретизации , преобразования дискретного сигнала из одной частоты дискретизации (в данном случае локальной частоты дискретизации) в другую.
Масштабирование изображения можно интерпретировать как форму повторной выборки изображения или реконструкции изображения с точки зрения теоремы Найквиста . Согласно теореме, понижение разрешения изображения до меньшего размера с исходного изображения с более высоким разрешением может быть выполнено только после применения подходящего 2D -фильтра сглаживания для предотвращения артефактов сглаживания. Изображение уменьшается до информации, которую может нести меньшее изображение.
В случае повышающей дискретизации фильтр реконструкции заменяет фильтр сглаживания.
Более сложный подход к масштабированию рассматривает проблему как обратную задачу , решая вопрос генерации правдоподобного изображения, которое при уменьшении масштаба будет выглядеть как входное изображение. Для этого применялись различные методы, включая методы оптимизации с терминами регуляризации и использование машинного обучения на примерах.
Размер изображения можно изменить несколькими способами.
Одним из самых простых способов увеличения размера изображения является интерполяция ближайшего соседа , при которой каждый пиксель заменяется ближайшим пикселем на выходе; для масштабирования это означает, что будет присутствовать несколько пикселей одного цвета. Это может сохранить четкие детали, но также внести неровности в ранее гладкие изображения. «Ближайший» в ближайшем соседе не обязательно должен быть математически ближайшим. Одна из распространенных реализаций — всегда округлять до нуля. Округление таким образом дает меньше артефактов и быстрее вычисляется. [ необходима цитата ]
Этот алгоритм часто предпочитают для изображений, которые имеют мало или совсем не имеют гладких краев. Распространенное применение этого можно найти в пиксельной графике .
Билинейная интерполяция работает путем интерполяции значений цвета пикселей, вводя непрерывный переход в выходной сигнал, даже если исходный материал имеет дискретные переходы. Хотя это желательно для изображений с непрерывным тоном, этот алгоритм снижает контрастность (резкие края) таким образом, что это может быть нежелательным для штрихового рисунка. Бикубическая интерполяция дает существенно лучшие результаты, но с увеличением вычислительных затрат. [ необходима цитата ]
Sinc-передискретизация , в теории, обеспечивает наилучшую возможную реконструкцию для идеально ограниченного по полосе сигнала. На практике предположения, лежащие в основе sinc-передискретизации, не полностью выполняются реальными цифровыми изображениями. Lanczos resampling , приближение к sinc-методу, дает лучшие результаты. Бикубическая интерполяция может рассматриваться как вычислительно эффективное приближение Lanczos resampling. [ необходима цитата ]
Одной из слабостей билинейных, бикубических и родственных алгоритмов является то, что они производят выборку определенного количества пикселей. При уменьшении масштаба ниже определенного порога, например, более чем в два раза для всех алгоритмов би-выборки, алгоритмы будут производить выборку несмежных пикселей, что приводит как к потере данных, так и к грубым результатам. [ необходима цитата ]
Тривиальное решение этой проблемы — выборка по ящику, которая заключается в том, чтобы считать целевой пиксель ящиком на исходном изображении и выбирать все пиксели внутри ящика. Это гарантирует, что все входные пиксели будут способствовать выходу. Главной слабостью этого алгоритма является то, что его трудно оптимизировать. [ необходима цитата ]
Другим решением проблемы уменьшения масштаба при масштабировании с би-выборкой являются mip-карты . Mip-карта — это предварительно масштабированный набор уменьшенных копий. При уменьшении масштаба ближайшая большая mip-карта используется в качестве начала координат, чтобы гарантировать отсутствие масштабирования ниже полезного порога билинейного масштабирования. Этот алгоритм быстр и прост в оптимизации. Он является стандартным во многих фреймворках, таких как OpenGL . Стоимость заключается в использовании большего объема памяти изображения, ровно на треть больше в стандартной реализации.
Простая интерполяция на основе преобразования Фурье дополняет частотную область нулевыми компонентами (подход на основе плавного окна уменьшил бы звон ) . Помимо хорошего сохранения (или восстановления) деталей, следует отметить звон и круговое просачивание контента от левой границы к правой (и наоборот).
Алгоритмы интерполяции, ориентированные на края, направлены на сохранение краев изображения после масштабирования, в отличие от других алгоритмов, которые могут приводить к появлению ступенчатых артефактов.
Примерами алгоритмов для этой задачи являются New Edge-Directed Interpolation (NEDI), [1] [2] Edge-Guided Image Interpolation (EGGI), [3] Iterative Curvature-Based Interpolation (ICBI), [ требуется ссылка ] и Directional Cubic Convolution Interpolation (DCCI). [4] Анализ 2013 года показал, что DCCI показал наилучшие результаты по пиковому соотношению сигнал/шум и структурному сходству на серии тестовых изображений. [5]
Для увеличения компьютерной графики с низким разрешением и/или небольшим количеством цветов (обычно от 2 до 256 цветов) лучшие результаты могут быть достигнуты с помощью hqx или других алгоритмов масштабирования пиксельной графики . Они создают четкие края и поддерживают высокий уровень детализации.
Извлечение векторов, или векторизация , предлагает другой подход. Векторизация сначала создает независимое от разрешения векторное представление графики, которую нужно масштабировать. Затем независимая от разрешения версия визуализируется как растровое изображение с желаемым разрешением. Этот метод используется в Adobe Illustrator , Live Trace и Inkscape . [6] Масштабируемая векторная графика хорошо подходит для простых геометрических изображений, в то время как фотографии не очень хорошо поддаются векторизации из-за своей сложности.
Этот метод использует машинное обучение для более подробных изображений, таких как фотографии и сложные произведения искусства. Программы, которые используют этот метод, включают waifu2x , Imglarger и Neural Enhance.
Демонстрация обычного масштабирования против waifu2x с шумоподавлением, с использованием фрагмента Phosphorus и Hesperus Эвелин Де Морган . [Нажмите на изображение для полного размера]
Программное обеспечение на основе искусственного интеллекта, такое как MyHeritage Photo Enhancer, позволяет добавлять детали и резкость историческим фотографиям, отсутствующим в оригинале.
Масштабирование изображений используется, среди прочего, в веб-браузерах , [7] редакторах изображений , средствах просмотра изображений и файлов, программных лупах, цифровом зуме, процессе создания миниатюрных изображений , а также при выводе изображений на экраны или принтеры.
Это приложение представляет собой увеличение изображений для домашних кинотеатров для устройств вывода HDTV-ready из контента PAL-Resolution, например, с DVD-плеера. Масштабирование выполняется в реальном времени, а выходной сигнал не сохраняется.
Поскольку пиксельная графика обычно имеет низкое разрешение, она полагается на тщательное размещение отдельных пикселей, часто с ограниченной палитрой цветов. Это приводит к графике, которая полагается на стилизованные визуальные подсказки для определения сложных форм с небольшим разрешением, вплоть до отдельных пикселей. Это делает масштабирование пиксельной графики особенно сложной проблемой.
Для обработки пиксельной графики были разработаны специализированные алгоритмы [8] , поскольку традиционные алгоритмы масштабирования не учитывают перцептивные сигналы.
Поскольку типичным применением является улучшение внешнего вида видеоигр четвертого поколения и более ранних версий на аркадных и консольных эмуляторах , многие из них предназначены для работы в реальном времени с небольшими входными изображениями со скоростью 60 кадров в секунду.
На быстром оборудовании эти алгоритмы подходят для игр и другой обработки изображений в реальном времени. Эти алгоритмы обеспечивают четкую, ясную графику, минимизируя размытость. Алгоритмы масштабирования искусства были реализованы в широком спектре эмуляторов, таких как HqMAME и DOSBox , а также в 2D- игровых движках и игровых движках-рекреациях, таких как ScummVM . Они получили признание среди геймеров, для которых эти технологии способствовали возрождению игрового опыта 1980-х и 1990-х годов. [ необходима цитата ]
Такие фильтры в настоящее время используются в коммерческих эмуляторах Xbox Live , Virtual Console и PSN , чтобы сделать классические игры с низким разрешением более визуально привлекательными на современных HD- дисплеях. Недавно выпущенные игры, которые включают эти фильтры, включают Sonic's Ultimate Genesis Collection , Castlevania: The Dracula X Chronicles , Castlevania: Symphony of the Night и Akumajō Dracula X Chi no Rondo .
Ряд компаний разработали методы масштабирования видеокадров в реальном времени , например, когда они прорисовываются на экране в видеоигре. Глубокое обучение суперсэмплинга (DLSS) от Nvidia использует глубокое обучение для повышения разрешения изображений с низким разрешением до более высокого для отображения на компьютерных мониторах с более высоким разрешением. [9] FidelityFX Super Resolution 1.0 (FSR) от AMD не использует машинное обучение, вместо этого используя традиционные рукописные алгоритмы для достижения пространственного масштабирования на традиционных шейдерных блоках. FSR 2.0 использует временное масштабирование, снова с настроенным вручную алгоритмом. Стандартизированные предустановки FSR не применяются, и некоторые игры, такие как Dota 2, предлагают ползунки разрешения. [10] Другие технологии включают Intel XeSS и Nvidia Image Scaler (NIS). [11] [12]