“Windows Photo Viewer” dönüşleri kayıpsız mıdır?


58

Sıkıştırmak için daha fazla bilgi kaybetmekten endişe duymadan Windows Fotoğraf Görüntüleyicisi'nde görüntülediğim, zararsız sıkıştırılmış fotoğrafları döndürebilir miyim ?


1
- Bildiğim kadarıyla - 90 derecelik bir dönme (ve 180, 270) kendi içinde kayıpsızdır çünkü x ve y koordinatlarının bir takasıdır (diğer açılar enterpolasyon gerektirir). Dolayısıyla, dönüşüme atfedilen herhangi bir kayıp, yeniden sıkıştırmadan kaynaklanmaktadır. Dönüştürülen görüntüyü kayıpsız bir biçimde kaydederek bu yeniden hesaplamayı önleyebilirsiniz, ancak bu açıkça sorunuzun bir parçası değildir, bu yüzden bunu önermeyeceğim
horatio

5
@horatio, 90 derecenin katları JPG sıkıştırması için özel bir durumdur, burada sıkıştırılmış verileri "basitçe" yeniden düzenleyerek görüntüyü bir sıkıştırma döngüsü olmadan döndürmek teknik olarak mümkündür. Kayıpsız sıkıştırma katmanının kaldırılması ve uygulanmasını içerir, böylece dosya boyutu değişebilir, ancak kayıplı işlem gerekmez.
RBerteig

1
Sanırım sizi anlıyorum, ama demek istediğim, jpeg'in bir disk depolama formatı olduğu ve dönüşümlerin kalitesi üzerinde hiçbir etkisi olmadığı. Başka bir deyişle, çoğu kez jpeg'ler vb. İle çalışmaktan bahsetse de, dosya ekranda görüntülenirken ve manipüle edilirken, bir jpeg değildir.
horatio

1
Adamım HER ZAMAN bu sorunun cevabını bilmek istedim. IMO onlar olmalı. Ancak JPEG standardı nedeniyle büyük olasılıkla ... Bu işlemi kayıpsız hale getirmenin teknik olarak mümkün olduğunu sanmıyorum.
Trevor Boyd Smith

2
Google Picasa resim görüntüleyicisi kayıpsızdır. ama hile yapıyor. görüntüyü döndürmez. sadece "bu resmi döndürülmüş göster" meta verilerinde işaretler.
Trevor Boyd Smith

Yanıtlar:


64

Görüntünün boyutları 8'in katları ise (veya kroma örnekleme kullanılıyorsa 16), dönüşler kayıpsızdır. Aksi takdirde, görüntüyü blokları yeniden hesaplamadan döndürmek mümkün değildir, yani görüntüyü yeniden sıkıştırmak, kayıp olan.

Bunun nedeni, jpeg görüntülerinin ayrı ayrı sıkıştırılmış 8x8 veya 16x16 blok dizisine bölünmesidir. Tamamlanmamış bloklara yalnızca sağ ve alt kenarlarda izin verilir. Bu nedenle, görüntünüz 8 / 16'nın tam bir katı değildir, döndürmeden sonra yanlış kenara gelecek olan tamamlanmamış bloklar içerecektir.

Yukarıdaki iddiayı Windows 7 ile birlikte gelen Windows Photo Viewer sürümünü kullanarak doğruladım. İki renkli görüntü gürültüsü kullandım. Bir görüntü 256x256 idi, yani her ikisi de 8'in katlarıydı. Diğer görüntü aynıydı, ancak 253x253'e kırpıldı, yani her ikisi de 8 katı değildi. Burada görüntüler:

256x256

253x253

Daha sonra dört saat yönünün tersine dönüş yaptım, her dönüşten sonra görüntünün döndüğü konumda kaydedilmesini sağlamak için fotoğraf görüntüleyiciyi kapattım.

256x256

253x253

253 piksellik görüntüdeki farkı görmek için bir çıkarma işlemi gerçekleştirmeye gerek yok, gözle görülür derecede karanlık ve çamurlu!

Diğer görüntünün bir fark bu gibi görünüyor:

yani görüntüler aynı, dönüşler kayıpsızdı.


1
Geçmişte rotasyon yaptığımda, rotasyonun kayıp olacağı konusunda uyarıldığını, uyarının gösterilmediği durumlarda dönüşümün kayıpsız olduğu, ancak kontrol etmediğim anlamına geldiğini biliyorum. Hangi WPV sürümünü kullandığımı da hatırlamıyorum, MS'in kod tabanını değiştirme olasılığını engellemek yerine, emin olamıyorum.
Matt Grum

1
@Tim saf ses görüntüsü tanım gereği jpeg (veya herhangi bir sıkıştırma algoritması) için en kötü durumdur, bu yüzden onu seçtim! Gerçek görüntüler üzerindeki sonuçlar daha iyi görünür.
Matt Grum

1
@MattGrum, çok güzel bir demo. Umarım tüm dijital kamera üreticileri görüntü boyutlarını 8'in tam katlarında!
Trevor Boyd Smith

1
@MattGrum WPV ekibinde çalışıyordum. AFAIK, (ve oldukça eminim) cevabınız doğru. Ayrıca, hipotezinizi ispatlamak için çok kapsamlı bir yöntem için +1
:)

@TrevorBoydSmith Gördüğüm her kamera 8 ya da 16 katı olan görüntü boyutlarına sahip.
Mark Ransom
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.