En az JPG sıkıştırılabilir patern nedir? (bezin kamera çekim parçası, ölçek / açı / aydınlatma değişebilir)


46

Bir kameranın bakış açısından JPG ile sıkıştırılmasının çok zor olduğu bir bez tasarlamaya çalışıyorum, bu da büyük boyutlu dosyalar (veya dosya boyutu sabitlenmişse düşük görüntü kalitesine neden oluyor) ile sonuçlanıyor.

Kumaş fotoğraf makinesinden uzakta olsa veya döndürülmüş olsa bile çalışması gerekir (diyelim ki ölçek 1x ile 10x arasında değişebilir).

Gürültü oldukça iyi (sıkıştırması zor), ancak uzaklardan bakıldığında grileşerek sıkıştırılması kolaylaşıyor. İyi bir örnek, tüm ölçeklerde benzer gözüken birçeşit fraktal olacaktır.
Yeşillik daha iyi (yapraklar, küçük dallar, küçük dallar, büyük dallar), ancak çok az renk kullanır.

İşte ilk deneme: Sıkıştırılamaz

Daha optimum kalıplar olduğundan eminim.
Belki altıgen veya üçgen mozaikler daha iyi performans gösterirdi.

JPG Y ′ Cb Cr renk uzayını kullanıyor , Cb Cr'in benzer şekilde üretilebileceğini düşünüyorum, ancak fotoğraf makinesi parlak veya karanlık alanları doygun hale getireceği için Y 'nin (parlaklık) kapsamını aynı anda kullanmamanın daha iyi olacağını düşünüyorum ( aydınlatma asla mükemmel değildir).

SORU: Bu sorun için en uygun kumaş deseni nedir?


1
Bu soruya dikkat etmem gerekecek .... ilginç bir cevap elde edilirse, www.spoonflower.com adresinde (veya benzer bir hizmette) bir kumaş siparişi ve eklemek için çok zor bir gömlek siparişi verebilirim. benim koleksiyonuna ;-)
RBerteig 11:12

İlginç bir desen yarışması projesi şöyle olabilir: 1) Böyle bir modelin yüksek çözünürlüklü bir resmini çekin 2) Döndürün, rastgele bir kısmını alın (rastgele ölçekte), biraz bulanıklaştırın, biraz gürültü ve küçük rastgele renk ekleyin sapma 3) JPG ile sıkıştırın 4) Dosya boyutuna bakın, kalite kaybıyla ilgili ölçümleri hesaplayın ve bu ölçümleri kullanarak "puanı" hesaplayın. 5) Bu kalıbın ortalama puanına yakışmak için birçok kez tekrarlayın 6) Diğer kalıplarla tekrarlayın ve puanları karşılaştırın
Nicolas Raoul

1
Kayıplı algoritmalar, daha fazla veri atarak her zaman daha fazla sıkıştırabildiğinden, yüksek frekanslı ayrıntıya bağlı kalıpları kullanırken daha fazla şansınız var gibi görünüyor. Örneğin, ince çizgiler. Başka bir deyişle, iyi sıkıştırabilir, ancak kalitesi çok hızlı bir şekilde düşer. Sanırım başarmak istediğine bağlı. Parmak izlerini düşünün - ayrıntıların korunması gerektiğinden, dalgalanmaların JPEG üzerinde iyi sıkıştırma için gerekli olduğu klasik bir durum.
datageist

@datageist: Çizgileri olan bir bezin bir fotoğrafını (ham kamera çıkışı) sıkıştırmak zor olabilir, ancak geri çekilir, başka bir fotoğraf çeker: sadece gri pikseller içerecektir, neredeyse hiç kayıp olmadan sıkıştırılması çok kolaydır. Aradığım model, çok çeşitli ölçeklerde sıkıştırılması zor resimlere (ham kamera çıkışı) neden olmalıdır.
Nicolas Raoul

@NicolasRaoul Doğru, anladım, eğer yeterince bilgiyi atarsan, her şeyin sıkıştırılabilir olduğunu söylüyorum. “Sıkıştırılması zor” (yani eğlence için) olma özelliğini taşıyan bir kalıp mı istiyorsunuz, yoksa insanları kalıbı içeren görüntüleri sıkıştırmaya çalışma konusunda aktif olarak caydırmaya mı çalışıyorsunuz?
datageist

Yanıtlar:


15

Gürültü oldukça iyi (sıkıştırması zor), ancak uzaklardan bakıldığında grileşerek sıkıştırılması kolaylaşıyor. İyi bir örnek, tüm ölçeklerde benzer gözüken bir çeşit fraktal olacaktır.

Eh, fraktal gürültü var . Bence Brown gürültüsü fraktal, yakınlaştırdığın gibi görünüyor. Vikipedi , belki de aynı olan fraktal gürültü üretmek için farklı ölçeklerde kendi başına Perlin gürültüsü eklemekten bahsediyor , emin değilim:

Perlin fraktal gürültü

Yine de bunun sıkıştırılması zor olacağını sanmıyorum. Gürültü ise kayıpsız sıkıştırma için sert, ama sadece detay uzağa atacak yerine onunla mücadele eden, böylece JPEG, kayıplı. "Sıkıştırmak için JPEG için zor" bir şey yapmanın mümkün olup olmadığından emin değilim, çünkü bu kalite düzeyinde sıkıştırılması çok zor olan herhangi bir şeyi yoksayır.

Sonsuz dama tahtası düzlemi gibi, herhangi bir ölçekte sert kenarlı bir şey muhtemelen daha iyi olacaktır:

sonsuz damalı uçak

Ayrıca çok renkli bir şey. Belki fraktal gürültüsü yerine gerçek fraktallara bakarız. Belki bir Mondrian fraktal ? :)

Mondrian fraktal


1
Çok teşekkürler! Fraktal gürültü kesinlikle aradığım türden bir şeydi, ama testlerimde iyi sıkıştırıldı, sanırım ısı haritası benzeri bir pürüzsüzlük yerine daha ani bir geçiş kullandı. Kontrol panosunun sorunu, performansın gerçekten kumaşın hangi kısmının resim çekildiğine bağlı olmasıdır. Mondrian fraktal harika ve şimdiye kadarki testlerimde en iyi performans. Belki daha fazla renk ve biraz farklı parametreler kullanabilir.
Nicolas Raoul

@NicolasRaoul: Hmm .. Belki Sierpinski halı ile renk ? Bu zaten yaygın bir yorgan deseni .
Endolith

Sierpinski üçgenleri veya karelerinden oluşan bir mozaikleme gerçekten harika olabilir!
Nicolas Raoul

14

Bilgisayar tarafından oluşturulan görüntülerden bahsediyor olsaydık, gürültü doğru yaklaşım olurdu. Ancak burada kamera yakalama adımı var.

Fraktal bit çünkü ölçek değişmezliği konunun çok önemlidir. Bununla birlikte, gerçekten fraktal olmak zorunda değildir, ancak kişinin fotoğraflanacağı sınırlı bir mesafe aralığı olduğunu düşünüyorsanız. Demek istediğim, elbiseyi giyen kişi bir resmin arka planındaysa, zaten bir etkisi olmaz.

JPEG kodlayıcısını kandırmanın en iyi yolunun, nicelendirme işleminden kurtulacak çok yüksek frekans katsayılı bloklara sahip olması olduğunu düşünmek = çok fazla ayrıntı ve keskin kenar; bu yüzden, tüm katsayı dizisinin açıkça yazılması gerekir (15. katsayıdaki EOB yerine veya benzeri). Dama Tahtası deseni, bunu başarmanın iyi bir yoludur. Gördüğüm tek dezavantajı lensin düşük çözünürlüğünün + kamera antialiasing filtrelerinin bulanıklaştırma şansının yüksek olması! Her şey 8x8 blok (veya 16x16 blok renkte) içinde gerçekleşmelidir çünkü JPEG makro ölçekte pek bir şey yapmaz. Lensi ne kadar bulanıklaştıracak olursa olsun, 8x8 bloklarınızı mümkün olduğunca karışık hale getirmelisiniz.

İşte bir öneri:

ölçek değişmez, JPEG sıkıştırmalı zor desen

Burada daha az kontrastlı blokların ne yaptığını merak ediyor olabilirsiniz, ancak olay uzaklaştırıldığında kontrastlı bölge tutmaya yardımcı oluyorlar. Buradaki zorluk, görüntüleme ölçeği ne olursa olsun, kontrastlı bir desene sahip bir şeye sahip olmaktır.

Bunu resmen değerlendirmedim. En iyi yol, görüntüyü alan bir komut dosyası kullanmak, çeşitli parametrelerle bir düzine kırpma / yeniden boyutlandırma / bulanıklaştırma uygulayarak ve JPEG'lerin toplam boyutunu tükürmek olacaktır.


Çok teşekkürler! Sorudaki resim kavramıma oldukça benziyor, aslında, ama çok daha hoş. “Fraktalitenin” faktör 4'e göre olmasının bir nedeni var mı? Faktör 2'den daha mı iyi?
Nicolas Raoul

Sebep yok, daha renkli tonlarla daha güzel görünmesini sağlamaya çalıştım, bu yüzden 4x4 kare ile başladım.
pichenettes

Üçgenler yerine kareleri seçmek için herhangi bir sebep var mı? Şu an deniyorum, üçgenler çok keskin kenarlar oluşturuyor, ki bence bu iyi bir fikir. Düşük bir "fraktalite", bir karma üçgen → eşkenar dörtgen → altıgen → üçgen yaklaşımıyla ulaşılabilir. Düşük faktörün kameranın çözünürlük sınırına kadar keskin şekilleri algılama olasılığını artırması nedeniyle iyi bir şey olduğunu düşünüyorum.
Nicolas Raoul

Kareler kodlanması en kolay şeydi. Diğer şekillerin karelerden daha iyi bir "kenar yoğunluğu" olup olmadığından emin değilim.
pichenettes

11

JPEG özellikli ve Dönüştürülebilir Sıkıştırma arasında bir fark var.

Örneğin televizyonun beyaz grenli sesini alın.

Genel bir beyaz gürültü frekansta maksimum yayılır ve bu nedenle herhangi bir dönüşüm alanı kodlama tekniğinin sıkıştıramayacağı beyaz gürültüden daha iyi bir örnek yoktur. Eğer böyle bir ses ve DCT (veya gerekirse DFT) alırsanız, frekans alanının da geniş yayıldığını ve tüm ko-vericilerin önem taşıyacağını bulmalıyız.

Ancak, yine de kimse sizi nicelemeden agresif olmanızı engelleyemez. Bu sayede ağır miktarda yüksek frekanslı bölgeleri hala atabilirsiniz. Sonuçta ağır Ortalama-Kare hatası oluşacaktır. Ancak, algısal olarak yine de gürültü olurdu. Yine de çok bulanık olabilir.

Öte yandan, şimdi keskin kenarların olduğu görüntüleri çekin.

Keskin kenarlar daha yüksek frekansta da yayılır (ancak önceki durumdan biraz daha az olabilir). Ancak, onu sıkıştırmaya çalışırken ve yüksek frekansta düşerken, şimdi görsel olarak ciddi engeller olacaktır. Kenarlarda bulanıklık oluşması, zil sesi efekti vb. Oluşacaktır.

Herhangi bir kayıplı sıkıştırma için, sert ve basit, ne kadar ve ne tür bir bozulmaya tolere edildiğine bağlıdır.


Diyelim ki kumaşım 10 ^ 8x10 ^ 8 rasgele siyah / beyaz piksel tablosudur. Kamera, kumaştan 10x10 piksel bir resim çeker. İstatistiksel olarak, bu 10x10 görüntünün tüm pikselleri çok benzer bir gri olmayacak, böylece daha az tek biçimli bir görüntüden daha az bozulma (herhangi bir türde) ile sıkıştırılması kolay olmayacak mı?
Nicolas Raoul

10

Aşağıdaki kompozisyon, desenin bir fraktal tür yapısını göstermektedir. Bir sonraki her resim, bir öncekinin her 2x2 piksel bloğunun ortalamasının sonucudur. Desenin toplam karakteri aynı kalır ancak görüntü kontrastı giderek azalır. Daha önce söylendiği gibi, uzaklaştıkça resim gri oluyor.

Ölçekleme davranışı

Ancak fraktal özelliğini kullanarak, görüntü kontrastını istenen aralıkta sabit tutmak için farklı çözünürlükteki birkaç deseni bir araya getirebiliriz. Aşağıda 4 katmanlı desen örneği (512x512 GIF). Bu sonuç Brown gürültüsüne daha yakın ve aynı zamanda JPEG formatta sıkıştırılabilir.

4 katmanlı kombinasyon


5

Tahminim, en kötü sıkıştırılabilir paternin (eşit dağılımlı) beyaz gürültü olacağı yönündedir. Farklı çözünürlüklerde gürültülü görünmesi gerekir, bu nedenle gürültülü görüntüleri ölçek uzayda oluşturabilir ve bunları bir araya getirebilirsiniz:

ben=ΣbennN-ben*G,ben

benN-benbenG,benbenσ*

Belki bu tür bir görüntüyü inşa etmenin daha iyi bir yolu, doğrudan frekans alanında çalışmak olacaktır;

  1. Beyaz gürültü ile dolu bir görüntü oluşturun.
  2. Görüntü üzerinde 8x8 blok IDCT (Ters Kesikli Kosinüs Dönüşümü) gerçekleştirin.

DCT etki alanında en yüksek entropiye sahip olduğundan, sonuç JPEG için en kötü sıkıştırılabilir model olacaktır. Ancak bunun çeşitli kararlar altında nasıl davranacağından emin değilim.


5

IIRC, JPEG dekompresyon algoritması belirtilmiş, ancak tam sıkıştırma algoritması belirtilmemiştir. Farklı algoritmalar yasal bir JPEG dosyası oluşturabilir. Bu yüzden, seçtiğiniz görüntü kompresörlerinde bunu test etmeniz gerekecek.

Her şey, JPEG gibi kayıplı bir kompresörle aynı miktarda sıkıştırılabilir. Sadece, herhangi bir sabit sıkıştırma seviyesinde, görüntüye bağlı olarak, sıkıştırma kalitesi değişebilir (dekompresyondaki gürültü veya hata artacaktır). Bu nedenle, dekompresyon sonucuna maksimum miktarda gürültü ekleyen bir şey istiyorsunuz. Bunun için, yüksek frekanslı makroblok katsayılarını kaldırmak ve tüm katsayıları ölçmek için en büyük hatayı istersiniz.

Muhtemelen değişken ve yüksek frekanslı kazıyıcıların yanı sıra, belirli bir ayarda verilen kompresörün olası kantitatif seviyeleri arasında olan değişen gri ve renkli skalaları anlamına gelir.

Bunun herhangi bir ışıklandırmada herhangi bir mesafede çalışmasını istediğiniz için, toplayıcıların frekansını (belki de fraktal veya belki de sadece rastgele frekans modülasyonuyla yükseltilmiş) sıklığını ve renk ve gri seviyelerini (tutarlı olmayan bir şekilde, örn. renkler ve bağımsız olarak düzeyleri. Tonların farkı, mesafeye daha az bağlı olacaktır, bu yüzden sadece seçili miktar belirleyiciler için daha kötü durumda olması için seçilmesi gerekir. Renk desenlerinin ortalama büyüklüğü, 4: 1: 1 (alan) YUV makroblok kompozisyonuna uyacak şekilde parlaklık desenlerinin iki katı olabilir.

Fraktal bir şekilde üst üste bindirilmiş ve / veya yamalı olarak çılgınca değişen ölçeklerde bir grup oldukça renkli Moire deseniyle başlayacağım.


2

Çok düz bir spektruma sahip olan deseni (beyaz ses gibi) paylaşmama izin verin. Bu yüzden JPG ile sıkıştırmak çok zor. Aşağıdaki örnek resim 4 kez büyütülmüştür.

Desenin kendisi düzenli, ancak periyodik değildir ve deterministik algoritma ile kolayca oluşturulabilir. Aynı zamanda bir fraktal özelliğe sahiptir.

Yarı beyaz gürültü spektrumu ile periyodik olmayan desen

Çok uzaklardan izlendi: orijinal Irak


2

Gerçekten de rastgele gürültü çok zayıf bir şekilde sıkıştırılıyor. Bağımsız R, G, B değerleri oluşturarak renkli üretebilirsiniz.

Uzak mesafeden bakmak gerçekten gürültüyü ortadan kaldıracak (alçak geçirgen filtreleme ile) ve farklı çözünürlüklerde, örneğin daha büyük ve daha büyük pikseller kullanarak ve bunları üst üste bindirerek gürültü görüntüleri üreterek bunu önleyebilirsiniz.

Görüntüleri eklerken, görüntü sayısı olarak büyüyen değer aralığı sorunuyla karşı karşıya kalırsınız, N'ye izin verin. Bunları ortalamanız durumunda, gürültü genliği 1 / N azalacaktır.

İlişkisiz tekdüze gürültü seçerseniz, süperpozisyon, standardN standart sapma ile yarı-Gauss dağılımına neden olur, bu nedenle N'ye bölmek yerine, genliği azaltmayı sınırlamak için √N (uygun yeniden merkezleme) ile bölebilirsiniz.

Son olarak, doymuş değerler büyük tek biçimli alanlar oluşturacağından, değerleri doymak yerine sargıya sarmanın daha iyi olacağını düşünüyorum.


2

İşte RGB Brownian gürültüsü (4096x4096 GIF) kazanan başka bir yaklaşım. Rgb brownian gürültü


0

Şaşırtıcı soru! Konsept olarak, beyaz gürültü zaman ölçeklendiğinde değişmeyen bir sinyaldir. Aynı şekilde bir fraktal, boyut ölçeklendiğinde değişmez. Kayıplı bir sıkıştırma işlemi sadece spektrumun en önemlisidir (zaman veya boyut), fraktal ve gürültü çerezler gibi kokar. Bu nedenle, kumaşınızın renk ve desenleriyle oynamalısınız. Fraktal olmalı ve fraktal davranış beyaz rastgele oluşturulmuş olmalıdır. Fotoğrafta siyah görünen (CMY renk alanında) bir kumaş elde etmelisiniz, ancak gerçek dünyada renkli bir desene sahip.

İyi şanslar! ve cevap alırsanız lütfen gönderin !!!


“Fotoğrafta siyah görünen bir kumaşa sahip olmalısınız” <- Bu durumda kolayca sıkıştırılamaz mıydı?
Nicolas Raoul
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.