Dimensionamento da imagem - Image scaling

Uma imagem dimensionada com escala do vizinho mais próximo (esquerda) e escala 2 × SaI (direita)

Na computação gráfica e na imagem digital , o dimensionamento da imagem se refere ao redimensionamento de uma imagem digital. Na tecnologia de vídeo, a ampliação do material digital é conhecida como aumento de escala ou aprimoramento da resolução .

Ao dimensionar uma imagem gráfica vetorial , as primitivas gráficas que compõem a imagem podem ser dimensionadas usando transformações geométricas, sem perda de qualidade da imagem . Ao dimensionar uma imagem de gráfico raster , uma nova imagem com um número maior ou menor de pixels deve ser gerada. No caso de diminuir o número de pixels (diminuir a escala), isso geralmente resulta em uma perda de qualidade visível. Do ponto de vista do processamento de sinal digital , o dimensionamento de gráficos raster é um exemplo bidimensional de conversão de taxa de amostragem , a conversão de um sinal discreto de uma taxa de amostragem (neste caso, a taxa de amostragem local) para outra.

Matemático

O dimensionamento da imagem pode ser interpretado como uma forma de reamostragem ou reconstrução da imagem a partir do teorema de amostragem de Nyquist . De acordo com o teorema, a redução da resolução para uma imagem menor a partir de um original de alta resolução só pode ser realizada após a aplicação de um filtro anti-aliasing 2D adequado para evitar artefatos de aliasing. A imagem é reduzida à informação que pode ser transportada pela imagem menor.

No caso de up sampling, um filtro de reconstrução toma o lugar do filtro anti-aliasing.

Uma abordagem mais sofisticada de aumento de escala trata o problema como um problema inverso , resolvendo a questão de gerar uma imagem plausível que, quando reduzida, se pareceria com a imagem de entrada. Uma variedade de técnicas tem sido aplicada para isso, incluindo técnicas de otimização com termos de regularização e o uso de aprendizado de máquina a partir de exemplos.

Algoritmos

O tamanho de uma imagem pode ser alterado de várias maneiras.

Interpolação do vizinho mais próximo

Uma das maneiras mais simples de aumentar o tamanho da imagem é a interpolação do vizinho mais próximo , substituindo cada pixel pelo pixel mais próximo na saída; para aumentar a escala, isso significa que vários pixels da mesma cor estarão presentes. Isso pode preservar detalhes nítidos na arte de pixel, mas também introduzir irregularidades em imagens antes suaves. 'Mais próximo' no vizinho mais próximo não precisa ser o mais próximo matemático. Uma implementação comum é sempre arredondar para zero. O arredondamento dessa forma produz menos artefatos e é mais rápido de calcular.

Algoritmos bilinear e bicúbico

A interpolação bilinear funciona interpolando valores de cor de pixel, introduzindo uma transição contínua na saída, mesmo quando o material original tem transições discretas. Embora isso seja desejável para imagens de tons contínuos, esse algoritmo reduz o contraste (bordas nítidas) de uma forma que pode ser indesejável para arte de linha. A interpolação bicúbica produz resultados substancialmente melhores, com um aumento no custo computacional.

Reamostragem de Sinc e Lanczos

A reamostragem Sinc, em teoria, fornece a melhor reconstrução possível para um sinal perfeitamente limitado em banda. Na prática, os pressupostos por trás da reamostragem sinc não são totalmente atendidos por imagens digitais do mundo real. A reamostragem de Lanczos , uma aproximação do método sinc, produz melhores resultados. A interpolação bicúbica pode ser considerada uma aproximação computacionalmente eficiente para a reamostragem de Lanczos.

Amostragem de caixa

Um ponto fraco dos algoritmos bilineares, bicúbicos e relacionados é que eles amostram um número específico de pixels. Ao diminuir a escala abaixo de um determinado limite, como mais de duas vezes para todos os algoritmos de bi-amostragem, os algoritmos amostram pixels não adjacentes, o que resulta na perda de dados e resulta em resultados aproximados.

A solução trivial para esse problema é a amostragem de caixa, que é considerar o pixel de destino uma caixa na imagem original e amostrar todos os pixels dentro da caixa. Isso garante que todos os pixels de entrada contribuam para a saída. A principal fraqueza desse algoritmo é que ele é difícil de otimizar.

Mipmap

Outra solução para o problema de escala reduzida de dimensionamento de bi-amostragem são os mipmaps . Um mipmap é um conjunto predefinido de cópias em escala reduzida. Ao diminuir a escala, o mipmap maior mais próximo é usado como a origem, para garantir que nenhuma escala abaixo do limite útil da escala bilinear seja usada. Este algoritmo é rápido e fácil de otimizar. É padrão em muitas estruturas, como OpenGL . O custo é usar mais memória de imagem, exatamente um terço a mais na implementação padrão.

Métodos de transformada de Fourier

A interpolação simples com base na transformada de Fourier acolchoa o domínio da frequência com componentes zero (uma abordagem baseada em janela suave reduziria o zumbido ). Além da boa conservação (ou recuperação) dos detalhes, destaca-se o zumbido e o sangramento circular do conteúdo da borda esquerda para a direita (e vice-versa).

Interpolação direcionada à borda

Os algoritmos de interpolação direcionada à borda visam preservar as bordas na imagem após o dimensionamento, ao contrário de outros algoritmos, que podem introduzir artefatos em escada.

Exemplos de algoritmos para esta tarefa incluem New Edge-Directed Interpolation (NEDI), Edge-Guided Image Interpolation (EGGI), Iterative Curvature-Based Interpolation (ICBI) e Directional Cubic Convolution Interpolation (DCCI). Uma análise de 2013 descobriu que o DCCI teve as melhores pontuações no PSNR e SSIM em uma série de imagens de teste.

hqx

Para ampliar gráficos de computador com baixa resolução e / ou poucas cores (geralmente de 2 a 256 cores), melhores resultados podem ser obtidos por hqx ou outros algoritmos de escala de pixel-art . Eles produzem bordas nítidas e mantêm um alto nível de detalhes.

Vetorização

A extração vetorial, ou vetorização , oferece outra abordagem. A vetorização primeiro cria uma representação vetorial independente da resolução do gráfico a ser dimensionado. Em seguida, a versão independente da resolução é renderizada como uma imagem raster na resolução desejada. Esta técnica é usada pelo Adobe Illustrator , Live Trace e Inkscape . Os gráficos vetoriais escaláveis são adequados para imagens geométricas simples, enquanto as fotografias não se saem bem com a vetorização devido à sua complexidade.

Redes neurais convolucionais profundas

Este método usa aprendizado de máquina para imagens mais detalhadas, como fotografias e obras de arte complexas. Os programas que usam esse método incluem waifu2x , Imglarger e Neural Enhance.

Demonstração de upscaling convencional vs upscaling Waifu2x com redução de ruído, usando um detalhe de Fósforo e Hesperus por Evelyn De Morgan . Clique para tamanhos completos.
Imagem original
Imagem aumentada em 200% usando o PaintShop Pro
Imagem aumentada em 200% usando waifu2x no modo Foto com redução de ruído média
Imagem aumentada em 400% usando Topaz AI Gigapixel com baixa redução de ruído
Imagem aumentada em 400% usando RealSR DF2K-JPEG

Formulários

Em geral

O dimensionamento de imagens é usado, entre outros aplicativos, em navegadores da web , editores de imagens , visualizadores de imagens e arquivos, ampliadores de software, zoom digital, o processo de geração de imagens em miniatura e na saída de imagens por meio de telas ou impressoras.

Vídeo

Este aplicativo é a ampliação de imagens para home theaters para dispositivos de saída prontos para HDTV a partir de conteúdo de resolução PAL, por exemplo, de um DVD player. O aumento de escala é executado em tempo real e o sinal de saída não é salvo.

Dimensionamento de pixel art

Como os gráficos de pixel art são geralmente de baixa resolução, eles dependem do posicionamento cuidadoso de pixels individuais, geralmente com uma paleta de cores limitada. Isso resulta em gráficos que contam com dicas visuais estilizadas para definir formas complexas com pouca resolução, até pixels individuais. Isso torna o dimensionamento da arte em pixel um problema particularmente difícil.

Algoritmos especializados foram desenvolvidos para lidar com gráficos de pixel-art, já que os algoritmos de escalonamento tradicionais não levam em conta as dicas de percepção.

Uma vez que uma aplicação típica é para melhorar a aparência de videogames de quarta geração e anteriores em emuladores de arcade e console , muitos são projetados para rodar em tempo real para pequenas imagens de entrada a 60 quadros por segundo.

Em hardware rápido, esses algoritmos são adequados para jogos e outro processamento de imagem em tempo real. Esses algoritmos fornecem gráficos nítidos e nítidos, enquanto minimizam o desfoque. Algoritmos de arte de escalonamento foram implementados em uma ampla gama de emuladores, como HqMAME e DOSBox , bem como motores de jogo 2D e recriações de motor de jogo , como ScummVM . Eles ganharam reconhecimento entre os jogadores, para quem essas tecnologias encorajaram um renascimento das experiências de jogos dos anos 1980 e 1990.

Esses filtros são usados ​​atualmente em emuladores comerciais no Xbox Live , Virtual Console e PSN para permitir que os jogos clássicos de baixa resolução sejam mais atraentes visualmente em monitores HD modernos . Os jogos lançados recentemente que incorporam esses filtros incluem Sonic's Ultimate Genesis Collection , Castlevania: The Dracula X Chronicles , Castlevania: Symphony of the Night e Akumajō Dracula X Chi no Rondo .

Veja também

Referências