O que são artefatos jpeg e o que pode ser feito sobre eles?

25

Eu sei que o JPEG é um algoritmo de compactação "com perdas" que descarta informações para economizar espaço. Qual é o impacto visual disso? Já ouvi falar de "artefatos JPEG". Como eles são?

Existem situações em que o mesmo nível de compactação cria mais artefatos e parece pior? O conteúdo da imagem é importante? Com o que o algoritmo lida bem e com o que ele tem problemas?

Supondo que o JPEG seja um requisito, existe uma maneira de reduzir artefatos? Se eu estiver carregando para um serviço da Web que aplicará sua própria compactação fora do meu controle, há algo que eu possa fazer com a imagem com antecedência para sobreviver melhor?

mattdm
fonte
Algumas respostas para partes desta pergunta existem aqui: photo.stackexchange.com/questions/5317/…
dpollitt
Obrigado @dpollit. Não o vi devido à ortografia britânica e à falta de tags. Além disso, trata-se especificamente de baixa resolução e baixo tamanho de arquivo.
mattdm
Eu adoraria ver alguns exemplos em nível de pixel (ou maiores) nas respostas.
mattdm
11
Direcionaria você para minha resposta sobre o tópico @dpollit vinculado anteriormente, especificamente o site vinculado a ele, que possui uma grande quantidade de imagens de amostra de todos os principais níveis de "qualidade", com detalhes em nível de pixel, para vários tipos de imagens.
jrista
11
@BBking - Eu adoraria ver uma resposta elaborando isso, com referências.
amigos estão dizendo sobre mattdm

Respostas:

19

Um exemplo

Usando a foto atual da imagem da semana. Este é o JPEG de alta qualidade:

gimp Q = 99

salvo novamente no Gimp com qualidade JPEG 80 (baixa); observe a perda geral de nitidez, "pontos" nas bordas de alto contraste, perda de detalhes em áreas de baixo contraste:

gimp Q = 80

e salvo novamente no GIMP com qualidade JPEG 30 (muito baixo); observe blocos 8x8 evidentes e severa perda de nitidez e detalhes de cores:

gimp Q = 30

Três tipos de distorções

O JPEG tende a introduzir dois três tipos de distorções:

  • perda geral de nitidez e oscilações em torno das bordas de alto contraste: são devidas a transições de intensidade aproximadas com funções suaves (cossenos); você os vê como pequenos "pontos" ou "halos" nas bordas; eles são particularmente fáceis de ver nas imagens do texto de desenhos à mão.
  • estrutura de bloqueio: a imagem é processada separadamente para cada bloco de 8x8 (ou maior no caso de redução da amostragem por croma), as bordas do bloco se tornam visíveis em altas taxas de compressão.
  • perda de detalhes de cores: depende de salvar os parâmetros, o programa pode "reduzir a amostra" agressivamente (reduzir a resolução de) canais de cromaticidade; raramente é um problema para a fotografia natural.

Estrutura de bloco visível e halos em torno das bordas são geralmente chamados de artefatos JPEG. Vamos dar um zoom no nosso exemplo para vê-los melhor. Da esquerda para a direita, um recorte das imagens originais, JPEG Q80 e JPEG Q30. Marquei artefatos em verde (círculos para halos e pontos para blocos de 8x8):

comparação de três vias

Como qualquer perda de informação, você não pode recuperá-la. A nitidez pode ajudar a recuperar o contraste da borda perdida, mas torna os "halos" mais evidentes; denoising pode ajudar a remover "halos", mas reduz ainda mais a nitidez. Se a estrutura do bloco estiver visível, provavelmente é tarde demais. Mantenha as imagens originais de alta resolução e alta qualidade por perto e não as substitua.

Estratégias de hospedagem

Se você controla os parâmetros de compactação JPEG e deseja maximizar a qualidade da imagem:

  • mantenha a taxa de compressão o mais baixa possível (use configurações de alta qualidade)
  • considere a redução de amostragem dos canais de cromaticidade (pode ser quase imperceptível para algumas imagens e permite menor taxa de compactação no canal de luminosidade, com a mesma restrição de tamanho de arquivo)
  • considere usar a transformação discreta de cosseno de ponto flutuante (isso pode aumentar a precisão da transformação, mas o salvamento do arquivo levará mais tempo)
  • considere usar resolução mais baixa em vez de uma taxa de compactação mais alta (dado o mesmo limite no tamanho do arquivo)

Se você fizer o upload para um serviço de terceiros e não controlar os parâmetros de compactação, não poderá fazer muito a respeito:

  • escolha um serviço que é conhecido por preferir JPEG de alta qualidade (Flickr, SmugMug, 23hq, 500px) sobre serviços que são conhecidos por compactar demais para economizar tráfego (Picasa, Imgur, Dropbox); geralmente você recebe pelo que paga.
  • tente redimensionar as fotos você mesmo e fazer o upload do tamanho certo (alguns serviços a compactam novamente de qualquer maneira, alguns podem servir o arquivo como carregado)
sastanina
fonte
16

O JPEG, na verdade, usa dois tipos de compactação, uma com e sem perdas. A compactação sem perdas não causa artefatos, portanto podemos ignorar essa parte. O tipo específico de compactação com perdas em JPEG, chamado de transformação discreta de cosseno para os knurds matemáticos, permite uma troca entre a taxa de compactação e a fidelidade. A maioria dos softwares apresenta isso como um valor de "qualidade", geralmente na escala de 0 a 100, com 100 sendo efetivamente nenhuma ou muito pouca perda e as coisas acontecendo a partir daí.

Esse algoritmo de compactação em particular foi adotado porque é bom em jogar fora o tipo de coisa que o sistema visual humano não percebe tanto quanto outros componentes da cena. Isso é em parte porque as imagens com aparência decente podem ter taxas de compressão impressionantemente altas. É também por isso que funciona bem em fotografias reais em tons contínuos e não tão bem em imagens sintéticas e arte de linha.

Aqui está uma região de 200 x 300 de uma fotografia maior com os pixels replicados 2x para vê-los melhor. Este JPEG usado comprime "qualidade" 100:

Qualidade 80, 79% de redução no tamanho do arquivo:

Qualidade 60, 86% de redução:

Qualidade 40, redução de 90%:

As reduções de tamanho de arquivo foram baseadas nas compressões JPEG de todo o arquivo, de modo que as estruturas de cabeçalho e outras despesas gerais fixas constituíam uma pequena parte dos dados.

Observe que você precisa procurar artefatos na segunda foto, mesmo que quase 4/5 da informação original tenha sido descartada. Os artefatos de compactação JPEG geralmente são mais visíveis em bordas afiadas e em áreas planas que mudam lentamente. Como a arte da linha tem bordas nítidas, a compactação JPEG não é apropriada para isso.

Você pode ver os artefatos de compactação piorando progressivamente com taxas de compactação mais altas. Lembre-se, porém, de que a imagem inferior retém uma quantidade incrível de informações visuais por ter 9 / 10th de suas informações brutas excluídas.

Os tipos de artefatos característicos da compactação com perda de JPEG são "blocos" em áreas planas que mudam lentamente e "sujeira" em torno das bordas de alto contraste. Por exemplo, veja a área inferior direita na figura acima. Como o fundo está desfocado, os valores estão mudando lentamente. O bloqueio é bastante evidente. Para exemplos de "sujeira", olhe em volta do chifre esquerdo da cabra. Esses dois tipos de artefatos geralmente são uma forte pista de que a compactação JPEG estava envolvida. Além disso, procure-os nas outras imagens acima para ter uma ideia de como eles são quando começam a aparecer e que tipo de taxa de compressão você pode tolerar em várias circunstâncias.

Olin Lathrop
fonte
11
A perda visível não vem do próprio DCT, mas da quantização dos coeficientes do DCT após a transformação.
Sarge Borsch
10

A compactação JPG é feita em blocos de pixels. Em uma imagem JPG altamente compactada, as bordas desses blocos podem ser vistas: na imagem original, dois pixels podem estar muito próximos em brilho e cor, mas se estiverem em blocos diferentes, depois da compactação e descompressão (quando visualizadas), cada uma das seus valores podem diferir do original, então você perde essa mistura gradual e começa a ver esse "bloqueio".

insira a descrição da imagem aqui

Aqui está um exemplo típico em um céu - JPG salvo com qualidade 0.

Se você fez o upload para um site que usa compactação JPG, poderá obter melhores resultados fazendo duas coisas (você precisará experimentar o site para ver o que funciona):

  • redimensione as dimensões da sua imagem para dentro da altura / largura máxima permitida pelo site, para que o site não redimensione suas imagens para você

  • faça sua própria compactação para obter um tamanho de arquivo menor e de boa qualidade. Dependendo de como o site funciona, se a imagem já for pequena o suficiente, ela poderá não causar mais compactação, ou mesmo se o fizer, poderá ter um efeito menor.

No que diz respeito à remoção de artefatos JPG de uma imagem, os artefatos JPG podem parecer semelhantes ao ruído normal do sensor. O software de redução de ruído será bem-sucedido na remoção de alguns artefatos menores de JPG, mas com a perda de detalhes.

ruído como artefatos jpg

Aqui está um exemplo com qualidade JPG de 50%, com bloqueios, mas também pixels mais escuros e brilhantes que se assemelham a ruídos.

O Topaz Labs possui um produto chamado DeJpeg , que atua especificamente em artefatos JPG. Ele faz um bom trabalho sem muita perda de detalhes. O plugin também pode fazer alguma nitidez e redução geral de ruído. O plug-in é compatível com o Photoshop CS, Photoshop Elements e Paint Shop Pro. Não acho que funcione com o Lightroom ou o Aperture.

MikeW
fonte
Você pode dar um exemplo de um artefato jpeg que parece semelhante ao ruído do sensor?
mattdm
Adicionamos um céu escuro salvo com 50% de qualidade JPG.
MikeW
5

Para sites que compactam arquivos até atingirem um determinado tamanho de arquivo de destino, existe uma maneira de melhorar a qualidade das imagens em determinadas circunstâncias.

O JPEG funciona convertendo a imagem em uma [série de] representações de espaço de frequência (s) em que X e Y representam frequências horizontais e verticais e "brilho" representa a amplitude da frequência). As frequências abaixo de uma certa amplitude são ignoradas, reduzindo a quantidade de dados armazenados e alcançando a compactação.

O ruído possui um amplo espectro de frequências que o JPEG não pode compactar. É por isso que você pode ter duas imagens, aplicar o mesmo nível de compactação e obter dois tamanhos de arquivo diferentes após a compactação JPEG.

Se você capturar sua imagem e desfocar intencionalmente as áreas sem importância do plano de fundo, reduz a quantidade total de informações e obtém uma compressão muito maior dessas áreas, deixando mais kilobytes para codificar as áreas em que os detalhes são importantes. Isso funciona particularmente bem com imagens nas quais o fundo já está desfocado.

Matt Grum
fonte
3

Aqui está um exemplo de um JPEG ampliado:

insira a descrição da imagem aqui

Imagem do usuário da Wikipedia FelixH. Esta imagem está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0 Unported.

Nesta imagem, você pode ver claramente os chamados "artefatos" na área azul. Observe como a imagem parece ser dividida em blocos e os limites dos blocos não coincidem.

Há várias coisas que podem ser feitas para evitar ou reduzir esse problema:

  • O mais óbvio: não use jpeg. Você pode trabalhar com suas imagens usando um formato de compactação sem perdas, como RAW, PNG ou TIFF sem perdas. Você só faz o downgrade para jpeg na última etapa, quando deseja fazer upload da imagem para a web, email, etc.

  • O formato jpeg permite a configuração do nível de compactação. Você pode obter menos artefatos, se quiser, mas o arquivo será maior.

  • Evite salvar um jpeg repetidamente, pois cada geração diminui ainda mais a qualidade.

Miguel
fonte
Até RAW e PNG podem obter artefatos devido à quantização de pixels. Desde que você não altere nenhum valor, esse é apenas um efeito único e nenhuma perda adicional ocorre devido à digitalização. No entanto, se você alterar os valores em qualquer etapa, como escurecer ou clarear uma cena ou misturar-se com outros valores, etc., as alterações de valor poderão resultar em novos artefatos no próximo salvamento (mesmo sem compactação) devido à quantização (sem dúvida uma forma de compactação) para salvar a nova imagem calculada. Para minimizar esses efeitos, use o maior número de bits possível a cada etapa e mantenha todo o fluxo de trabalho.
Skaperen
@ Skaperen: você está confundindo duas coisas diferentes aqui. Esta pergunta é sobre perda de detalhes devido à compactação jpeg. O que você está descrevendo é a perda de detalhes introduzida por certos algoritmos de processamento de imagem. O que você está descrevendo está correto, mas não está relacionado aos formatos de imagem; portanto, dizendo que RAW e PNG estão associados à quantização de pixels está errado, esses formatos de arquivo não causam perda de qualidade.
Miguel
Esta imagem também demonstra outro problema, a propósito: mostra uma auréola da máscara de nitidez.
mattdm
1

Os artefatos são os efeitos colaterais indesejados do processamento de uma imagem. Nesse caso, eles resultam da maneira como os dados são compactados pelo algoritmo JPEG.

Geralmente, as pessoas querem poder armazenar fotos digitalmente, sem usar muito espaço de armazenamento. Como resultado, a maioria das fotos é armazenada no formato JPEG. Este é um formato que compacta os dados que compõem a imagem de uma maneira que tenta preservar o máximo de detalhes possível. O nível de compactação pode ser alterado quando o arquivo é criado. No entanto, é um algoritmo "com perdas", o que significa que descarta alguns dados - não é possível voltar de um arquivo JPEG compactado para os dados originais.

Essa perda de dados ocorre em detrimento da qualidade da imagem. A compactação foi projetada para criar um impacto mínimo na imagem geral, mas pode ser percebida em altos níveis de compactação.

Os artefatos JPEG geralmente parecem seções de cores em blocos. Eles podem ser vistos onde há uma mudança sutil de cor graduada em uma grande quantidade de cores - por exemplo, em um céu azul ou em uma cena de neblina. Os artefatos parecem contornos irregulares de uma cor específica em vez de uma mistura suave.

Com cenas mais compactadas, os artefatos também podem ser vistos ao redor das bordas dos objetos - por exemplo, os galhos de uma árvore contra um céu claro. Eles parecem blocos manchados ao redor do assunto.

A melhor abordagem para reduzir artefatos é:

  1. Mantenha sempre a imagem original - não salve um JPEG compactado, abra-o mais tarde e salve-o novamente. Para um exemplo extremo disso, consulte Generation Loss , um vídeo que mostra uma imagem compactada novamente 600 vezes.
  2. Salve a mais alta qualidade possível, considerando as restrições de tamanho de arquivo.
  3. Evite usar serviços que comprimam severamente suas imagens - se necessário, hospede-as em outro lugar e vincule-as diretamente.

Para mais informações, consulte http://photo.net/learn/jpeg/

Maynard Case
fonte