Aşağı doğru ölçeklendirme kaliteyi düşürür mü?


10

Photoshop'ta, bir raster % 50 oranında iki kez küçültülmek yerine bir kez% 75 oranında ölçeklendirildiğinde kalite farkı olur mu? Her iki durumda da, son boyut aynı olacaktır: orijinalin% 25'i.

Sormamın nedeni, bazen daha önce ölçeklendirildiğini bildiğim bir görüntüyü ölçeklendirmek istiyorum. Resmin orijinal boyutunda olduğu duruma yüzlerce kez CTRL + Z'den (geri al) nefret ediyorum. Nihai kalite etkilenmezse, görüntüyü hemen orada ölçeklendirmeyi tercih ederim.


1
"Bir kez% 50'ye karşı iki kez% 25" demek istediğini mi sanıyorum? Buna rağmen (100%-75%)*(100%-75%) != 50%. Ama ne demek istediğini bildiğime inanıyorum ve bunun cevabı "hayır" dır ve eğer varsa, farkı gerçekten anlatamazsın.
Mateen Ulhaq

2
Yanıt değil in2'deki sorununuz için olası bir çözüm: mümkünse, yeniden boyutlandırmak üzere olduğunuz katmanı Akıllı Nesneye dönüştürün, orijinal dosyanın kalitesine herhangi bir etkisi olmadan ileri geri ölçeklendirilebilir.
Jari Keinänen

1
@muntoo Bir kez% 75 ve iki kez% 50 söylemek üzere düzenlendi. % 25 iki kez bir kez% 50'den daha büyük.
JoJo

Yanıtlar:


10

Böylece, topluluk wiki var sen bu korkunç, korkunç yazı çözebilirsiniz.


Grrr, LaTeX yok. :) Sanırım elimden gelenin en iyisini yapmam gerekecek.


Tanım:

Biz bir görüntü (PNG veya başka kayıpsız * biçimi) adında var bir boyutu A x tarafından bir y . Hedefimiz p =% 50 ölçeklendirmektir .

Resim ("dizi") B , A'nın "doğrudan ölçeklenmiş" bir sürümü olacaktır . Bu olacaktır B s = 1 adım sayısı.

A = B B s = B 1

Resim ("dizi") C , A'nın "aşamalı olarak ölçeklenmiş" bir sürümü olacaktır . Bu olacaktır C s = 2 adım sayısı.

A ≅ C C s = C 2


Eğlenceli Şeyler:

A = B 1 = B 0 × p

C 1 = C 0 × p 1 ÷ C s

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

Bu kesirli güçleri görüyor musun? Raster görüntülerle teorik olarak kaliteyi düşürürler (vektörlerin içindeki rasterler uygulamaya bağlıdır). Ne kadar? Bundan sonra anlayacağız ...


İyi Şeyler:

P 1 if C s ∈ ℤ ise C e = 0

C e = C s eğer p 1 ÷ C s ∉ ℤ

Burada e , tamsayı yuvarlama hataları nedeniyle maksimum hatayı (en kötü senaryo) temsil eder.

Şimdi, her şey ölçek küçültme algoritmasına (Süper Örnekleme, Bikübik, Lanczos örneklemesi, En Yakın Komşu, vb.) Bağlıdır.

Biz Yakın Komşu (kullanıyorsanız kötü herhangi kalitede şey için algoritma), "gerçek maksimum hatası" ( C t ) eşit olacaktır C e . Diğer algoritmalardan herhangi birini kullanırsak, karmaşıklaşır, ancak o kadar da kötü olmaz. (Neden En Yakın Komşu kadar kötü olmayacağına dair teknik bir açıklama yapmak istiyorsanız, size sadece bir tahmin veremem çünkü size bir tahmin veremem. NOT: Hey matematikçiler! Bunu düzeltin!)


Komşunu seviyorum:

Diyelim görüntüler bir "dizi" hale D ile D x = 100 , D y = 100 ve D s = 10 . p hala aynı: p =% 50 .

En Yakın Komşu algoritması (korkunç tanım, biliyorum):

N (I, p) = sadece x, y kendilerinin çarpıldığı mergeXYDuplicates (floorAllImageXYs (I x, y × p), I) ; renk (RGB) değerleri değil! Bunu matematikte gerçekten yapamayacağınızı biliyorum ve bu yüzden kehanetin EFSANEVİ MATEMATİKÇİSİ değilim .

( mergeXYDuplicates () , bulduğu tüm kopyalar için orijinal görüntü I'de yalnızca en altta / en solda x, y "öğeleri" tutar ve gerisini atar.)

Rastgele bir piksel alalım: D 0 39,23 . Sonra tekrar tekrar D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~% 93,3) uygulayın .

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

c 1 = kat ((39,23) × ~% 93,3) = kat ((36,3,21,4)) = (36,21)

c 2 = kat ((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)

Basit bir ölçeği sadece bir kez yapsaydık, sahip olacağız:

b 1 = kat ((39,23) ×% 50) = kat ((19.5,11.5)) = (19,11)

B ve c'yi karşılaştıralım :

b 1 = (19,11)

c 10 = (15,8)

Bu (4,3) piksellik bir hata ! Bunu uç piksellerle (99,99) deneyelim ve hatadaki gerçek boyutu hesaba katalım . Burada yine tüm matematik yapmayacağım, ama olur anlatacağım (46,46) , bir hata (3,3) olması gerektiği kadarıyla, (49,49) .

Bu sonuçları orijinal ile birleştirelim: "gerçek hata" (1,0) . Bunun her pikselde meydana gelip gelmediğini düşünün ... bir fark yaratabilir. Hmm ... Muhtemelen daha iyi bir örnek var. :)


Sonuç:

Resminiz başlangıçta büyük bir boyuttaysa, birden fazla küçültme yapmadıkça gerçekten önemli olmaz (aşağıdaki "Gerçek dünya örneği" bölümüne bakın).

En Yakın Komşu'da artan adım başına (aşağı) maksimum bir piksel daha kötüleşir. On ölçek küçültürseniz, görüntünüzün kalitesi biraz düşer.


Gerçek dünya örneği:

(Daha büyük görünüm için küçük resimlere tıklayın .)

Süper Örnekleme kullanılarak% 1 kademeli olarak küçültülür:

orijinal Ölçeksiz x1 Ölçek küçültme x10 Ölçeksiz x1'e yakınlaştır Ölçeksiz x10

Gördüğünüz gibi, Süper Örnekleme birkaç kez uygulanırsa "bulanıklaştırır". Bir ölçek küçültüyorsanız, bu "iyi" dir. Bu kötü sen aşamalı yapıyoruz eğer.


* Editör bağlı ve format, bu olabilir bunu basit tutmak ve kayıpsız onu arıyorum böylece potansiyel bir fark yaratır.


lol çok çaba sarf ettiniz .... + 1
Jack

2
Çaba için +1… -1000 bizi iddialı tipte insanlar olarak düşünmek için hepsini okuyacak. Ben pix'e kaydırdım :-). Ve anlattın.
Dawson

Harika cevap, ancak en iyi komşu veya süper örneklemeyi ne kadar iyi örneklerle kullandığından emin değilim; özellikle bikubik enterpolasyon Photoshop varsayılanıdır. Ayrıca bir görüntüyü büyütürken de tersi okudum : kademeli büyütme, tek noktadan büyütmekten biraz daha iyi sonuçlar verir: photo.stackexchange.com/a/3985/1913 Neden küçültme için böyle olmaz?
Jari Keinänen

1
@koiyu Bicubic Supersampling, IIRC'den daha kötüdür. Ölçek küçültmede görüntü veri kaybediyor. [Tamamen doğru değil, ama:] Çoğu ölçek küçültme algoritması, kenarları biraz 'bulanıklaştırarak' en yakın komşunun ürettiği kenarlığı kaldırırken bu verileri kaybetmek için tasarlanmıştır. Bu bulanıklaşma toplanır. [Tahmin et] Görüntü büyütülüyorsa, 'özyineli olarak' iyileştiriliyor. Bu yinelemeli kalitesi, CPU pahalı iken, bir kerede bütün upscaling zaman göre resimde daha az bulanıklık ürettiği, bir algoritma (ler) vardır bahis [/ tahmin].
Mateen Ulhaq

Hareketsiz kaldıktan sonra görüntülerimi sildiğim için lanet imgur. Görüntülerin 'kalıcı' olduğu bir hizmeti bilen var mı?
Mateen Ulhaq

5

JoJo kaliteyi soruyor. Yanıtların çoğu , bir tasarımcı, hatta bir fotoğrafçı için önemsiz olan piksel doğruluğu ile ilgilidir.

Kalite, sonucun ne kadar ikna edici ve memnun edici olduğunun bir ölçüsüdür, ne kadar "doğru" değil. Klonlama veya İçerik Duyarlı Dolgu, görüntünün istenmeyen kısımlarını makul piksellerle değiştirir: doğru görünüyorlar, ancak kesinlikle doğru olarak kabul edilemezler.

Photoshop'ta, tek bir çekimde küçültme ile küçültme arasındaki temel pratik fark, çok daha uzun sürmesidir. Saatte şarj ederseniz, elbette bir seferde% 1 gidin. Değilse, tek çekimde küçültün. Daha sonra daha büyük bir sürüm yapmak istemeniz durumunda, görüntüyü önce Akıllı Nesne yapın.

Hangi algoritmayı kullanırsanız kullanın (ve Dawson'un bu algoritmalar hakkındaki yorumu öldü - şaşırtıcılar), küçülme pikselleri atar. Algoritma pikselleri çıkarır ve nasıl doğru görüneceklerini tahmin ederek diğerlerini değiştirir. İyi bir algoritma iyi tahminler yapar; size ikna edici bir sonuç verir, ancak anlamlı bir anlamda doğru değildir . Dürüst olmak gerekirse, doğru - renk dışında! - bir bilim adamı olmadıkça aradığınız şey değildir, bu durumda muhtemelen ilk etapta küçülmezsiniz.

Her zamanki bikubik algoritma kullanılarak küçültülmüş bir görüntü genellikle biraz keskinleştirmeden yararlanır, ancak web için jpeg oluşturuyorsanız, keskinleştirme dosya boyutunu artıracaktır.

Tasarımda doğru kalite , son ürününüz için ihtiyacınız olan kalitedir . Bunun ötesinde her şey işinize değer katar, ancak değer katmaz.

[Düzenle: Koiyu'nun bu soruyu yeniden canlandırmasında genişleme söz konusu olduğundan. Bu konuda bazı yorumlar ekledim.]

Tek bir dev sıçramanın aksine, bir görüntüyü küçük adımlarla yükseltirseniz, biraz daha iyi ("biraz daha az kötü" daha doğru) bir sonuç elde edeceğiniz konusunda bir fikir var. Scott Kelby bu fikri birkaç yıl önce tanıttı ve PS 7'den itibaren doğru olabilir. Bugün doğru olduğuna ikna eden hiçbir şey görmedim. Kendi testlerimde, PS CS2 ve 3'ün etrafında kanıtlanmadı, ancak onlara çok fazla zaman harcadığım söylenmemeli.

Derin testlere zaman ayırmadım çünkü "bozulmuş görüntü kalitesi" ile "biraz daha az bozulmuş görüntü kalitesi" arasındaki küçük farkın pratik bir değeri yoktur: ikisi de kullanılabilir değildir. Kendi işimde basit kuralım "Yükseltme." Tasarım çalışmalarında pratiklik olarak, belirli bir amaç için biraz çok düşük çözünürlüklü bir görüntü her zaman daha iyi kullanılmış gibi görünür - aynı görüntüden "yukarı boyutlu" herhangi bir işlemle "doğru" çözünürlüğe kadar fraktal ve bikubik varyasyonlar da dahil olmak üzere rastlamak.


"Saatte şarj ederseniz, her seferinde% 1 gidin." ...Geleneklere uymayan? :)
Mateen Ulhaq

BTW, algılanan 'bulanıklaştırma' küçültme algoritmaları tarafından bilerek yapılmıyor mu?
Mateen Ulhaq

Bikübik niyetle bulanıklaşmaz, ancak hafif bir yumuşama yaygın bir eserdir. Bu meydana geldiğinde, mütevazı bir keskinleştirme onu düzeltir.
Alan Gilbertson

1
@muntoo: "Saatte şarj ederseniz ...", tasarım iş akışlarıyla ilgili tartışmalarda yaygın olan hafif bir alaycılıktır, çalışma süresinin verimsiz ve savurgan kullanımının hem verimsiz hem de israf olduğunu vurgulamak için.
Alan Gilbertson

+1 Çok sayıda iyi bit: "Kalite, sonucun ne kadar ikna edici ve memnun edici olduğunun bir ölçüsüdür, ne kadar" doğru "olduğu değil.", "Doğru ... bilim adamı "," "bozulmuş görüntü kalitesi" ile "biraz daha az bozulmuş görüntü kalitesi" arasındaki ufak farkın pratik bir değeri yoktur "
Farray

3

Genellikle birden fazla ölçeklendirme, tek bir ölçeklendirmeden sonra kaliteyi son boyuta indirir, ancak çoğu zaman fark minimum olacaktır. Özellikle, (2: 1, 2: 1) ve (4: 1) örneğiniz gibi kesin oranlara göre daha küçük ölçeklendirmenin, tek ölçeklendirmeye kıyasla çok küçük bir bozulması olacaktır. Elbette, tüm değişiklikleri en yüksek çözünürlükte yapmak ve sonunda sadece bir kez ölçeklendirmek en iyisidir. Tam ölçeklendirme başlangıçta bilinmediğinde, doğru boyutu bulmak için bir dizi test ölçeği yapılabilir, ardından boyutu not edin, test görüntüsünü atın ve orijinalden bu boyuta tek bir ölçeklendirme yapın.


1
Artımlı ölçeklemenin daha kötü olduğunu söylüyorsunuz, ancak teorik bir kanıt var mı?
JoJo

1
Çok monitörlü kurulumumun ekran görüntüsünü aldım ve sonra bir sürümü% 25 ve bir 50 sonra 50'ye ölçeklemek için photoshop'u kullandım. İki sonuç pikselle aynıydı. Ben şaşırdım
horatio

@Jojo: Sunmak için teorik bir kanıtım yok (ve kanıt, ölçeklemede birkaç enterpolasyon algoritmasından hangisinin kullanıldığına bağlı olacaktır). Sanırım pratik olarak gösterebilirsiniz: 400x400 diyelim, önemsiz olmayan bir görüntü alın, 380px'e, 360'a ve 340'a ölçekleyin. Orijinalinden 340px'e ölçeklendirilmiş biriyle karşılaştırın. Bunu denemedim, ancak görsel olarak algılanabilen her şey olmasa da, daha büyük bir bulanıklık olacak. Önerilen ölçeklendirmenin hoş oranlar kullanmadığını unutmayın.
mgkrebbs

1
Ben egzersizi yaptım. İşte 1 ölçekli versiyon ve işte 3x ölçekli versiyon . Alt ortadaki ince çizgilerde detay kaybını görebilirsiniz. Yakınlaştırma ile benzerleri birçok yerde görebilirsiniz. Bu Gimp aracılığıyla kübik bir enterpolasyondu ve kayıplı sıkıştırmayı önlemek için PNG dosyaları kullandı.
mgkrebbs

1

Bu soru MUHTEŞEM! ... sanırım hepimiz çok teknik hale geliyoruz.

100 x 100 piksel görüntü = toplam 10000 piksel

Görüntüyü küçültmek pikselleri dışarı çeker. Ölçeklendirmek onları ekler. Her iki şekilde de yazılım dosyayı değiştirmek için "eğitimli bir tahmin" alır.

Tek bir küçültme: 90 x 90 (orijinal dosya bilgilerinden 1900 piksel kaldırıldı)

2 Adım azaltma: 95 x 95 (975 piksel kaldırıldı), 90 x 90 (başka bir 925). Burada yakalanacak detay, kaldırılan toplam 1900 pikselin detayıdır - 975 tanesi orijinal bilgilerin bir parçası DEĞİLDİR .

Orijinal görüntü her zaman en iyisidir. Daha az sayıda "nesil" her zaman daha iyi kaliteye eşittir (orijinal kaliteye en yakın).

PROOF (ve @ mutoo'nun yorumuna bir yanıt)

resim açıklamasını buraya girin

Çok basit ... bir algoritma ... bir dizi insan gözü değil. Burada 3 renk var. % 100 siyah,% 50 siyah ve beyaz (gri tonlamalı görüntü). Nasıl ölçeklendirirsem değiştirelim - görüntü boyutu menüsü, dönüştürme aracı, RGB, CMYK, 100 x 100 piksel, 10 x 10 inç, sonuçlar aynıdır:

Siyah / gri kenar boyunca% 80 siyah bulunur (var olmayan bir renk). Beyaz / gri kenar boyunca% 7 siyah bulunur (mevcut değildir). [burada takma ad argümanına davet değil]

Hepimizin bildiği gibi (insan ve hepsi) mükemmel bir küçültme veya genişleme, Siyah / Gri / Beyaz çizgili bir kutu üretir. Ve hala tek bir yinelemenin (yukarı veya aşağı) çokludan daha iyi bir kopya oluşturduğunu gördüm.


"Orijinal bilgilerin bir kısmı DEĞİL" bölümü tamamen doğru değildir. Örneğin, En Yakın Komşu algoritması piksellerin değerlerini asla değiştirmez; yalnızca seçilen pikselleri kaldırır. Sonunda, "yanlış pikseller" tamsayı yuvarlama hataları nedeniyle kaldırılmaya başlar, bu nedenle kalite düşer. Bu arada "Daha iyi" algoritmalar piksellerin renklerini karıştırabilir ve bazı piksel sanat ölçekleme algoritmaları "tahminler" bile alabilir. Bu, tek bir ölçek aşağı yapılırken arzu edilen, ancak birden fazla olmayan bulanıklığa yol açar.
Mateen Ulhaq

[devamı] En Yakın Komşu hala daha kötü: "yanlış pikselleri" kaldırıyor ve resminizi gerçekten tuhaf bir merdiven gibi görüyor (üstten görünüm).
Mateen Ulhaq

Beni stat kamera günlerime geri götürüyor - inşa et / mümkün olan en iyi üreme için ihtiyacınız olan boyutta çek. Bu algoritmaları yazan insanlara büyük destek ... "HER ŞEYİ işleyecek ve zamanın% 99'unu gerçekten iyi gösterecek BİR şey yaratalım." <- oldukça sert şeyler, cidden.
Dawson

-1

Büyük olasılıkla evet, ancak çoğu durumda farkı fark edemezsiniz.

Edit: Görüyorum ki insanlar benim cevabımı sevmiyor :). Belki de basit olduğu için. IMHO daha az doğru yapmıyor. Şey ... bana yanlış olduğunu kanıtla :).

Edit 2: Cevabımı kısa tutmak istedim ama… :)

S: Photoshop'ta, bir raster% 50 oranında iki kez küçültülmek yerine% 75 oranında küçültüldüğünde kalite farkı olacak mı? Her iki durumda da, son boyut aynı olacaktır: orijinalin% 25'i.

A:

  1. "Büyük olasılıkla evet" - muntoo'nun gönderisine bir göz atın. Her enterpolasyon adımının bazı küçük hatalar getirdiğini söylüyor. Yuvarlama veya temsil hatalarıdır ve kalite bozulmasına katkıda bulunabilirler. Basit sonuç: daha fazla adım, daha fazla olası bozulma. Yani "büyük olasılıkla" görüntü her ölçeklendirme adımı sırasında kaliteyi kaybedecektir. Daha fazla adım - daha olası kalite bozulması. Bu nedenle, "büyük olasılıkla" görüntü, bir kereden iki kez ölçeklendirilirse daha düşük olur. Kalite kaybı kesin değildir - örneğin düz renkli bir görüntü alın, ancak herhangi bir tasarımcı benzer görüntüleri ne sıklıkta ölçeklendirir?

  2. "ancak çoğu durumda farkı fark edemezsiniz " - yine - muntoo'nun gönderisi. Potansiyel hatalar ne kadar büyük? Onun örneklerinde 2 değil 75 adımda ölçeklendirilmiş görüntüler ve kalite değişiklikleri fark edilir ancak dramatik değildir. 75 adımda! Ps CS4'te görüntü% 25'e ölçeklendiğinde (buna göre bir ve iki adımda ölçeklendirilen bikubik, muntoo örneği) ne olur?

bir adımda iki adımda

Farkı görebilen var mı? Ama fark orada:

#: 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

Ve düzgün işaretlenmişse görülebilir (gm karşılaştır -highlight-renk mor -file diff.png one-step.png two-step.png):

bir ve iki kademeli ölçekleme arasındaki fark

1 ve 2, kısa tutmayı umduğum cevabımı veriyor, çünkü diğerleri oldukça ayrıntılı;).

Bu kadar! :) Kendiniz karar verin.


1
-1 çünkü bu gerçek bir cevap değil. "muhtemelen evet" ... neye göre ? "Farkı fark edemezsiniz" ... Bu KG sitesi, resimlerdeki küçük farkları tam olarak fark edecek insanlar olan tasarım profesyonellerine yöneliktir . Desteklenmeyen teoriyi ve desteklenmeyen iddiayı kaldırırsanız, yayınınızda başka içerik yoktur.
Farray

Deneyimlerime dayanarak. Bunu denediniz mi? İyi profesyonel, rengin yüzde bir kısmı farklıysa saymayı denemek yerine yaklaşık ne zaman kullanılacağını bilir :)
thebodzio

Demek istediğim: bir görüntüyü aşamalı olarak yeniden örneklemeye ve sonuçları tek adımda yeniden örneklenen görüntüyle karşılaştırmaya çalıştınız mı? Deneyimlerinize bağlı kalmadım.
thebodzio

1
@thebodzio ayrıntısı bu cevaba gerçekten yardımcı oldu - ve aşağı oylar kalıcı olmadığından, benimkini kaldırdım.
Jari Keinänen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.