A redução gradual prejudicará a qualidade?


10

No Photoshop, haverá uma diferença de qualidade quando uma varredura é reduzida em 75% uma vez, em vez de ser reduzida em 50% duas vezes ? Nos dois casos, o tamanho final será o mesmo: 25% do original.

A razão pela qual pergunto é porque às vezes eu quero reduzir uma imagem que eu sei que foi reduzida anteriormente. Eu odeio ter que CTRL + Z (desfazer) cem vezes para o estado em que a imagem estava no tamanho original. Se a qualidade final não for afetada, prefiro apenas reduzir a imagem ali mesmo.


11
Suponho que você queira dizer "50% uma vez vs 25% duas vezes"? Mesmo assim (100%-75%)*(100%-75%) != 50%. Mas acredito que sei o que você quer dizer, e a resposta para isso é "não", e você realmente não será capaz de dizer a diferença, se houver.
Mateen Ulhaq

2
Não é uma resposta, mas uma solução possível para o seu problema no ⁋2: se possível, converta a camada que você está prestes a redimensionar em um Objeto Inteligente, ela pode ser dimensionada para frente e para trás sem afetar a qualidade do arquivo original.
Jari Keinänen

11
@muntoo Editado para dizer 75% uma vez e 50% duas vezes. 25% duas vezes é realmente maior que 50% uma vez.
JoJo

Respostas:


10

É um wiki da comunidade, para que você possa consertar este post terrível.


Grrr, sem LaTeX. :) Acho que vou ter que fazer o melhor que puder.


Definição:

Temos uma imagem (PNG ou outro formato sem perdas *) chamada A do tamanho A x por A y . Nosso objetivo é escalá-lo em p = 50% .

Imagem ( "array") B será uma versão "diretamente escalado" de A . Ele terá B s = 1 número de etapas.

A = B B s = B 1

Imagem ( "array") C será uma "forma incremental escalado" versão do A . Ele terá C s = 2 número de etapas.

A ≅ C C s = C 2


O material divertido:

A = B 1 = B 0 × p

C 1 = C 0 × p 1 ÷ C s

A ≅ C 2 = C 1 × p 1 ÷ C s

Você vê esses poderes fracionários? Teoricamente, eles degradam a qualidade com imagens raster (rasters dentro de vetores dependem da implementação). Quanto? Vamos descobrir isso a seguir ...


As coisas boas:

C e = 0 se p 1 ÷ C s ∈ ℤ

C e = C s se p 1 ÷ C s ∉ ℤ

Onde e representa o erro máximo (pior cenário), devido a erros de arredondamento de número inteiro.

Agora, tudo depende do algoritmo de redução de escala (Super Sampling, Bicubic, Lanczos, Lanczos, Nearest Neighbor, etc).

Se estivermos usando o vizinho mais próximo (o pior algoritmo para qualquer coisa de qualquer qualidade), o "erro máximo verdadeiro" ( C t ) será igual a C e . Se estamos usando qualquer um dos outros algoritmos, fica complicado, mas não será tão ruim assim. (Se você quiser uma explicação técnica sobre por que não será tão ruim quanto o vizinho mais próximo, não posso lhe dar uma causa, é apenas um palpite. NOTA: Ei matemáticos! Corrija isso!)


Ame o seu próximo:

Vamos fazer um "array" de imagens D com D x = 100 , D y = 100 , e D s = 10 . p ainda é o mesmo: p = 50% .

Algoritmo de vizinho mais próximo (definição terrível, eu sei):

N (I, p) = mesclarXYDuplicados (floorAllImageXYs (I x, y × p), I) , onde apenas o próprio x, y está sendo multiplicado; não seus valores de cores (RGB)! Eu sei que você realmente não pode fazer isso em matemática, e é exatamente por isso que eu não sou O MATEMÁTICO LEGENDÁRIO da profecia.

( mergeXYDuplicates () mantém apenas os " x " elementos mais à esquerda / mais à esquerda na imagem original I para todas as duplicatas que encontrar e descarta o resto.)

Vamos pegar um pixel aleatório: D 0 39,23 . Em seguida, aplique D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~ 93,3%) repetidamente.

c n + 1 = piso (c n × ~ 93,3%)

c 1 = piso ((39,23) × ~ 93,3%) = piso ((36.3,21.4)) = (36,21)

c 2 = piso ((36,21) × ~ 93,3%) = (33,19)

c 3 = (30,17)

c 4 = (27,15)

c 5 = (25,13)

c 6 = (23,12)

c 7 = (21,11)

c 8 = (19,10)

c 9 = (17,9)

c 10 = (15,8)

Se reduzíssemos apenas uma vez, teríamos:

b 1 = piso ((39,23) × 50%) = piso ((19,5,11,5)) = (19,11)

Vamos comparar b e c :

b 1 = (19,11)

c 10 = (15,8)

Isso é um erro de (4,3) pixels! Vamos tentar isso com os pixels finais (99,99) e considerar o tamanho real do erro. Não vou fazer toda a matemática aqui novamente, mas vou lhe dizer que se torna (46,46) , um erro de (3,3) do que deveria ser (49,49) .

Vamos combinar estes resultados com o original: o "erro real" é (1,0) . Imagine se isso acontecer com todos os pixels ... pode acabar fazendo a diferença. Hmm ... Bem, provavelmente há um exemplo melhor. :)


Conclusão:

Se sua imagem é originalmente de tamanho grande, isso realmente não importa, a menos que você faça várias escalas inferiores (consulte "Exemplo do mundo real" abaixo).

Piora no máximo um pixel por etapa incremental (para baixo) no vizinho mais próximo. Se você fizer dez escalas inferiores, sua imagem será levemente degradada em qualidade.


Exemplo do mundo real:

(Clique nas miniaturas para ampliá-la.)

Reduzido em 1% incrementalmente usando Super Sampling:

Original Reduzido x1 Reduzido x10 Aumentar o zoom em x1 reduzido Ampliar em escala reduzida x10

Como você pode ver, a Super Sampling "desfoca" se aplicada várias vezes. Isso é "bom" se você estiver fazendo um downscale. Isso é ruim se você estiver fazendo isso de forma incremental.


* Dependendo do editor e do formato, isso pode fazer a diferença, por isso estou simplificando e chamando de sem perdas.


Você fez muito esforço lol .... + 1
Jack

2
+1 por esforço ... -1000 por pensar que gente do tipo artística lerá tudo isso. Eu rolei para o pix :-). E você fez o seu ponto.
Dawson

Ótima resposta, mas não tenho certeza de como bons exemplos estão usando o vizinho mais próximo ou a super amostragem; especialmente porque a interpolação bicúbica é o padrão do Photoshop. Também li o contrário ao ampliar uma imagem: o aumento por etapas produz resultados ligeiramente melhores do que o aumento de uma parada: photo.stackexchange.com/a/3985/1913 Por que esse não seria o caso de redução?
Jari Keinänen

11
@koiyu Bicubic é pior que Supersampling, IIRC. Na redução de escala, a imagem está perdendo dados. [Não é inteiramente verdade, mas:] A maioria dos algoritmos de redução de escala é projetada para perder esses dados enquanto remove a ousadia que o vizinho mais próximo produz ao "embaçar" as bordas um pouco. Esse desfoque se soma. [Adivinha] Se a imagem está sendo ampliada, ela é 'recursivamente' sendo aprimorada. Aposto que existe um algoritmo (s) em que esta qualidade recursiva, enquanto caro na CPU, produz menos borrão na imagem do que quando upscaling de uma só vez [/ Adivinha].
Mateen Ulhaq

Maldição imgur por excluir minhas imagens após inatividade. Alguém conhece um serviço no qual as imagens são 'permanentes'?
Mateen Ulhaq

5

JoJo pergunta sobre qualidade. A maioria das respostas é sobre precisão de pixels , o que é irrelevante para um designer ou mesmo um fotógrafo.

Qualidade é uma medida de quão convincente e agradável é o resultado final, e não o quão "preciso" é. Como um ótimo exemplo, a clonagem ou o preenchimento com reconhecimento de conteúdo substituem partes indesejadas de uma imagem por pixels plausíveis : elas parecem corretas, mas certamente não podem ser consideradas precisas.

No Photoshop, a principal diferença prática entre o downsizing incremental e o downsizing de uma só vez é que leva muito mais tempo. Se você cobrar por hora, suba 1% de cada vez. Caso contrário, reduza o tamanho de uma só vez. Torne a imagem um objeto inteligente primeiro, caso deseje criar uma versão maior posteriormente.

Não importa qual algoritmo você use (e o comentário de Dawson sobre esses algoritmos está morto - eles são incríveis), o downsizing joga fora os pixels. O algoritmo subtrai pixels e modifica outros, adivinhando como fazê-los parecerem corretos. Um bom algoritmo faz boas suposições; fornece um resultado que parece convincente, mas não é preciso em nenhum sentido significativo. Honestamente, preciso - além da cor! - não é o que você está procurando, a menos que seja um cientista; nesse caso, você provavelmente não reduziria o tamanho do equipamento em primeiro lugar.

Uma imagem que foi redimensionada usando o algoritmo bicúbico usual geralmente se beneficia de um pouco de nitidez, mas se você estiver criando jpegs para a Web, a nitidez aumentará o tamanho do arquivo.

Qualidade correta no design é a qualidade que você precisa para o seu produto final. Qualquer coisa além disso acrescenta tempo, mas não valor, ao seu trabalho.

[Edit: Desde que houve uma menção ao aumento no reavivamento desta pergunta por koiyu. Eu adicionei alguns comentários sobre esse assunto.]

Existe uma ideia: se você repetir uma imagem em pequenas etapas, em oposição a um único salto gigante, você obtém um resultado um pouco melhor ("um pouco menos ruim" seria mais preciso). Scott Kelby promoveu a idéia há alguns anos, e pode ter sido verdade a partir do PS 7. Não vi nada que me convenceu de que ela está correta hoje. Não foi comprovado nos meus próprios testes, em torno do PS CS2 e 3, mas é preciso dizer que não perdi muito tempo com eles.

Não gastei tempo em testes profundos porque a pequena diferença entre "qualidade de imagem degradada" e "qualidade de imagem ligeiramente menos degradada" não tem valor prático: nem é utilizável. No meu próprio trabalho, minha regra simples é: "Não faça upsizing". Por uma questão de praticidade no trabalho de design, uma imagem com resolução um pouco baixa para uma finalidade específica sempre parece melhor usada do que a mesma imagem "dimensionada" para a resolução "correta" em qualquer processo encontrar, incluindo variações fractal e bicúbicas.


"Se você cobrar por hora, suba 1% de cada vez." ...Não ortodoxo? :)
Mateen Ulhaq 4/11/11

BTW, o 'embaçamento' percebido não é feito por meio da redução de algoritmos de propósito?
Mateen Ulhaq 4/11/11

Bicubic não se confunde por intenção, mas um leve amolecimento é um artefato comum. Quando ocorre, uma nitidez modesta o corrige.
Alan Gilbertson

11
@muntoo: "Se você cobra por hora ..." é um sarcasmo moderado, comum nas discussões sobre fluxos de trabalho de design, para enfatizar que o uso ineficiente e desnecessário do tempo de trabalho é ineficiente e desnecessário.
Alan Gilbertson

+1 Muitas partes boas: "Qualidade é uma medida de quão convincente e agradável é o resultado final, não o quão" preciso "é.", "Preciso ... não é o que você procura, a menos que você seja um cientista "," a pequena diferença entre "qualidade de imagem degradada" e "qualidade de imagem ligeiramente menos degradada" não tem valor prático "
Farray 9/11/11

3

Geralmente, várias escalas reduzirão a qualidade em uma única escala até o tamanho final, mas geralmente a diferença será mínima. Em particular, o dimensionamento menor por proporções exatas, como o exemplo de (2: 1, 2: 1) versus (4: 1), terá uma degradação muito pequena em comparação com o dimensionamento único. É melhor, é claro, fazer todas as modificações na resolução mais alta e depois escalar apenas uma vez no final. Quando a escala exata não é conhecida inicialmente, pode-se fazer uma série de escalas de teste para encontrar o tamanho certo, anote o tamanho, jogue fora a imagem de teste e execute uma única escala nesse tamanho a partir do original.


11
Você diz que a escala incremental é pior, mas existe uma prova teórica?
JoJo

11
Eu apenas peguei um screencap da minha configuração de multimonitor e usei o photoshop para escalar uma versão para 25% e uma 50 e 50. Os dois resultados foram idênticos em pixels. Fiquei surpreso #
211 horatio

@Jojo: Não tenho uma prova teórica a oferecer (e uma prova dependeria de qual dos vários algoritmos de interpolação foi usado na escala). Eu acho que você poderia mostrá-lo praticamente: pegue uma imagem não trivial, como 400x400, dimensione-a para 380px, para 360 e para 340. Compare-a com uma escala do original para 340px. Eu não tentei isso, mas acho que haverá um borrão maior, embora possa não ser tão visualmente perceptível. Observe que a escala sugerida não está usando proporções agradáveis.
mgkrebbs

11
Eu fiz o exercício. Aqui está a versão em 1 escala e a versão em escala 3x . Você pode ver a perda de detalhes nas linhas finas do meio inferior. Com o zoom, você pode ver similar em muitos lugares. Essa foi uma interpolação cúbica via Gimp e usou arquivos PNG para evitar a compactação com perdas.
mgkrebbs

1

Esta pergunta é IMPRESSIONANTE! ... Acho que todos nós estamos ficando muito técnicos.

Imagem de 100 x 100 pixels = 10000 pixels totais

Escalar uma imagem para baixo retira os pixels. Aumentar a escala os adiciona. De qualquer maneira, o software adota um "palpite" para alterar o arquivo.

Uma única redução: 90 x 90 (1900 pixels removidos das informações do arquivo original)

Redução em 2 etapas: 95 x 95 (975 px removidos), 90 x 90 (outros 925). O detalhe a ser capturado aqui é o total de 1900 pixels removidos - 975 deles NÃO fizeram parte da informação original .

A imagem original é sempre a melhor. Menos "gerações" sempre equivale a melhor qualidade (mais próxima da qualidade original).

PROOF (e uma resposta ao comentário de @ mutoo)

insira a descrição da imagem aqui

É simples ... é um algoritmo ... não é um conjunto de olhos humanos. Existem 3 cores aqui. 100% preto, 50% preto e branco (imagem em escala de cinza). Não importa como eu o dimensione - menu tamanho da imagem, ferramenta de transformação, RGB, CMYK, 100 x 100px, 10 x 10in, os resultados são os mesmos:

Ao longo da borda preta / cinza, você encontra 80% de preto (uma cor que não existe). Ao longo da borda branca / cinza, você encontra 7% de preto (não existe). [não é um convite para o argumento anti-alias aqui]

Como todos sabemos (sendo humano e tudo), uma redução ou ampliação perfeita produziria uma caixa listrada de preto / cinza / branco. E ainda descobri que uma única iteração (para cima ou para baixo) criava uma réplica melhor do que várias.


A parte sobre "NÃO faz parte da informação original" não está totalmente correta. O algoritmo do vizinho mais próximo, por exemplo, nunca altera os valores dos pixels; ele remove apenas os pixels selecionados. Eventualmente, os "pixels errados" começam a ser removidos devido a erros de arredondamento inteiro, portanto a qualidade diminui. Enquanto isso, algoritmos "melhores" podem misturar as cores dos pixels, e alguns algoritmos de escala de pixel art podem até ter "palpites". Isso leva à desfocagem, o que é desejável ao reduzir uma única escala, mas não várias.
Permita-se

[continuação] O vizinho mais próximo ainda é pior: remove os "pixels errados" e faz com que sua imagem pareça uma escada muito estranha (vista superior).
Mateen Ulhaq

Leva-me de volta aos meus dias de câmera stat - construa / fotografe do tamanho que você precisa para a melhor reprodução possível. Grandes adereços para as pessoas que escrevem esses algoritmos ... "Vamos criar UMA coisa que processe TUDO e faça com que pareça realmente bom 99% do tempo." <- coisas muito hardcore, sério.
Dawson

-1

Provavelmente sim, mas na maioria dos casos você nem perceberá a diferença.

Edit: Vejo que as pessoas não gostam da minha resposta :). Talvez porque seja simples. IMHO isso não torna menos verdade. Bem ... prove que estou errado :).

Edit 2: Eu queria manter minha resposta breve, mas… :)

P: No Photoshop, haverá uma diferença de qualidade quando uma varredura é reduzida em 75% uma vez, em vez de ser reduzida em 50% duas vezes? Nos dois casos, o tamanho final será o mesmo: 25% do original.

UMA:

  1. "Provavelmente sim" - veja a publicação de muntoo. Ele diz que cada etapa de interpolação apresenta alguns erros menores. São erros de arredondamento ou representação e podem contribuir para a degradação da qualidade. Conclusão simples: mais etapas, mais degradação possível. Portanto, a imagem "provavelmente" perderá qualidade durante cada etapa da escala. Mais etapas - maior degradação da qualidade possível. Portanto, a imagem "possivelmente" será mais degradada se dimensionada em duas vezes que em uma. A perda de qualidade não é certa - por exemplo, uma imagem em cores sólidas, mas com que frequência um designer dimensiona imagens semelhantes?

  2. "mas na maioria dos casos você nem perceberá a diferença" - novamente - no post do muntoo. Qual o tamanho dos erros em potencial? Nos exemplos dele, as imagens são dimensionadas não em 2, mas em 75 etapas e mudanças na qualidade são notáveis, mas não dramáticas. Em 75 etapas! O que acontece quando a imagem é dimensionada para 25% no Ps CS4 (bicúbica, a amostra do muntoo, dimensionada em uma e duas etapas de acordo)?

em uma etapa em duas etapas

Alguém pode ver a diferença? Mas a diferença está aí:

#: gm compare -metric mse one-step.png two-step.png Image Difference (MeanSquaredError):
           Normalized    Absolute
          ============  ==========
     Red: 0.0000033905        0.0
   Green: 0.0000033467        0.0
    Blue: 0.0000033888        0.0
   Total: 0.0000033754        0.0

E pode ser visto se marcado adequadamente (gm compare -highlight-color purple -file diff.png one-step.png two-step.png):

diferença entre uma e duas etapas

1 e 2 dá a minha resposta, que esperava ser breve, já que outras eram bastante elaboradas;).

É isso aí! :) Julgue você mesmo.


11
-1 porque esta não é uma resposta real. "provavelmente sim" ... com base no que ? "Você não será capaz de perceber a diferença" ... este site de controle de qualidade é destinado a profissionais de design , que são precisamente as pessoas que notariam pequenas diferenças nas imagens. Se você remover a teoria e a afirmação não suportadas, não haverá outro conteúdo em sua postagem.
Farray

Com base na minha experiência. Tentaste? Bom profissional sabe quando usar aproximação em vez de tentar um conte se difere de cor por uma fração do cento :)
thebodzio

Eu quis dizer: você tentou redimensionar algumas imagens gradualmente e comparar os resultados com a imagem redefinida em uma etapa? Eu não aderi à sua experiência.
thebodzio

11
A elaboração do @bodzio realmente ajudou essa resposta - e como os votos negativos não são permanentes, eu removi o meu.
Jari Keinänen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.