Saya mencoba mendesain kain yang, dari sudut pandang kamera, sangat sulit untuk dikompres dengan JPG, menghasilkan file ukuran besar (atau mengarah ke kualitas gambar rendah jika ukuran file diperbaiki).
Ini harus bekerja bahkan jika kain jauh dari kamera, atau diputar (misalkan skalanya dapat bervariasi dari 1x hingga 10x).
Kebisingan cukup baik (sulit dikompres), tetapi menjadi abu-abu saat melihat dari jauh, menjadi mudah dikompres. Pola yang baik akan menjadi semacam fraktal , terlihat serupa di semua skala.
Dedaunan lebih baik (daun, cabang kecil, cabang kecil, cabang besar), tetapi menggunakan terlalu sedikit warna.
Ini adalah percobaan pertama:
Saya yakin ada pola yang lebih optimal.
Mungkin tessellations segi enam atau segitiga akan tampil lebih baik.
JPG menggunakan ruang warna Y ′ Cb Cr , saya pikir Cb Cr dapat dihasilkan dengan cara yang serupa, tapi saya kira lebih baik untuk tidak menggunakan seragam Y 'secara keseluruhan (kecerahan) karena kamera akan memenuhi area terang atau gelap ( pencahayaan tidak pernah sempurna).
PERTANYAAN: Apa pola kain yang optimal untuk masalah ini?
sumber
Jawaban:
Nah, ada suara fraktal . Saya pikir noise Brown adalah fraktal, terlihat sama seperti Anda memperbesarnya. Wikipedia berbicara tentang menambahkan suara Perlin ke dirinya sendiri pada skala yang berbeda untuk menghasilkan suara fraktal, yang mungkin identik, saya tidak yakin:
Saya pikir ini tidak akan sulit untuk dikompres. Kebisingan adalah sulit untuk kompresi lossless, tetapi JPEG adalah lossy, sehingga hanya akan membuang detail bukannya berjuang dengan itu. Saya tidak yakin apakah mungkin membuat sesuatu "sulit untuk dikompresi JPEG" karena itu akan mengabaikan apa pun yang terlalu sulit untuk dikompres pada tingkat kualitas itu.
Sesuatu dengan tepi yang keras pada skala berapa pun mungkin akan lebih baik, seperti bidang kotak-kotak tanpa batas:
Juga sesuatu dengan banyak warna. Mungkin melihat fraktal yang sebenarnya, bukan suara fraktal. Mungkin fraktal Mondrian ? :)
sumber
Jika kita berbicara tentang gambar yang dihasilkan komputer, noise akan menjadi pendekatan yang tepat. Tapi di sini, ada langkah pengambilan kamera.
The fraktal bit sangat penting karena masalah skala invarian. Namun, itu tidak harus benar-benar fraktal, jika Anda menganggap ada rentang jarak terbatas di mana orang tersebut akan difoto. Maksudku, jika orang yang memakai kain itu di latar belakang gambar, itu tidak akan berdampak banyak ...
Saya pikir cara terbaik untuk mengelabui encoder JPEG adalah memiliki blok dengan koefisien frekuensi tinggi yang sangat tinggi yang akan bertahan dalam kuantisasi = banyak detail dan tepi tajam; jadi seluruh urutan koefisien harus ditulis secara eksplisit (bukan EOB pada koefisien ke-15 atau lebih). Pola kotak-kotak adalah cara yang baik untuk mencapainya. Satu-satunya downside yang saya lihat adalah bahwa resolusi rendah lensa + filter antialiasing kamera memiliki peluang bagus untuk mengaburkan itu! Semuanya harus terjadi dalam 8x8 blok (atau 16x16 blok chroma-wise) karena JPEG tidak berbuat banyak pada skala makro. Anda harus membuat blok 8x8 semaca mungkin, tidak peduli seberapa buram lensa akan membuatnya.
Berikut ini sarannya:
Anda mungkin bertanya-tanya apa yang dilakukan blok yang kurang kontras di sini, tetapi mereka membantu menjaga zona kontras ketika hal tersebut diperbesar. Tantangannya di sini adalah memiliki sesuatu dengan pola yang kontras tidak peduli skala penayangannya.
Saya belum secara resmi mengevaluasi ini. Cara terbaik adalah dengan memiliki skrip yang mengambil gambar, menerapkan selusin crop / resize / blur dengan berbagai parameter, dan meludahkan ukuran total JPEG.
sumber
Ada perbedaan antara JPEG yang dapat dieksploitasi dan Transform Compressible.
Ambil suara kasar putih dari TV misalnya.
White noise umum tersebar maksimal dalam frekuensi dan karenanya tidak ada contoh yang lebih baik daripada white noise yang tidak dapat dikompres oleh teknik transformasi domain. Jika Anda mengambil noise seperti itu dan mengambil DCT (atau DFT jika diperlukan), kami akan menemukan bahwa domain frekuensi juga tersebar luas dan semua co-efisien akan memiliki kepentingan.
Namun, tetap tidak ada yang menghentikan Anda untuk menjadi agresif dari kuantisasi. Dengan cara ini, Anda masih dapat membuang jumlah besar dari daerah frekuensi tinggi. Hasilnya akan memiliki kesalahan Mean-Square-heavy. Namun, secara perseptual masih akan menjadi kebisingan. Mungkin sangat kabur.
Di sisi lain, sekarang ambil gambar dengan tepi tajam.
Tepi yang tajam juga akan menyebar dalam frekuensi yang lebih tinggi (tetapi mungkin itu hanya sedikit kurang dari kasus sebelumnya). Namun, dalam mencoba mengompres dan menjatuhkan frekuensi tinggi, sekarang akan ada beberapa hambatan visual. Ini akan memperkenalkan pengaburan tepi, efek dering dll. Meskipun penyebaran bandwidth untuk gambar tersebut tidak setinggi mungkin, Untuk JPEG atau kompresi setara lainnya, menjaga kualitas gambar yang sama secara persepsi akan sulit.
Untuk kompresi lossy, tangguh dan sederhana tergantung pada seberapa banyak dan jenis distorsi yang ditoleransi
sumber
Komposisi di bawah ini menunjukkan struktur pola fraktal. Setiap gambar berikutnya adalah hasil rata-rata setiap blok 2x2 piksel dari yang sebelumnya. Karakter total pola tetap sama tetapi kontras gambar secara bertahap menurun. Seperti yang dikatakan sebelumnya, gambar menjadi abu-abu saat kita memperkecil tampilan.
Tetapi dengan menggunakan properti fraktal, kita dapat melapisi bersama beberapa pola resolusi yang berbeda untuk mempertahankan kontras gambar agar stabil dalam kisaran yang diinginkan. Di bawah ini adalah contoh pola 4-layer (512x512 GIF). Hasil ini lebih dekat dengan noise Brown dan juga kompresi JPEG.
sumber
Dugaan saya adalah bahwa pola kompresif terburuk adalah white noise (dengan distribusi seragam). Ini perlu terlihat berisik pada resolusi yang berbeda, sehingga Anda dapat membuat gambar berisik dalam ruang skala dan kemudian menggabungkannya:
Mungkin cara yang lebih baik untuk membuat gambar seperti itu adalah bekerja secara langsung dalam domain frekuensi, dengan demikian:
Hasilnya akan menjadi pola kompresibel terburuk untuk JPEG, karena memiliki entropi tertinggi dalam domain DCT. Tetapi saya tidak yakin bagaimana ini akan berperilaku di bawah berbagai resolusi.
sumber
IIRC, algoritma dekompresi JPEG ditentukan, namun algoritma kompresi yang tepat tidak. Algoritme yang berbeda dapat menghasilkan file JPEG yang legal. Jadi, Anda perlu menguji ini pada kompresor gambar yang Anda pilih.
Apa pun dapat dikompresi dengan jumlah yang sama dengan kompresor yang hilang, seperti JPEG. Hanya saja, pada tingkat kompresi tetap apa pun, kualitas kompresi mungkin bervariasi (noise atau kesalahan dalam hasil dekompresi akan meningkat) tergantung pada gambar. Jadi Anda menginginkan sesuatu yang menambahkan jumlah maksimum noise ke hasil dekompresi. Untuk ini, Anda menginginkan kesalahan maksimum untuk menghapus koefisien macroblock frekuensi tinggi dan untuk mengukur koefisien apa pun.
Yang mungkin berarti piket bervariasi dan frekuensi tinggi, serta berbagai skala abu-abu dan warna yang kebetulan berada di antara tingkat kuantisasi yang mungkin dari kompresor yang diberikan pada pengaturan tertentu.
Karena Anda ingin ini bekerja pada jarak berapa pun dalam pencahayaan apa pun, Anda perlu memvariasikan frekuensi piket (mungkin fraktal, atau mungkin hanya menggenjot modulasi frekuensi acak) dan tingkat warna dan abu-abu (tidak koheren, mis. warna dan level secara independen). Varians rona akan kurang bergantung pada jarak, sehingga yang hanya perlu dipilih menjadi kasus yang lebih buruk untuk kuantizer pilihan Anda. Ukuran rata-rata dari pola warna dapat dua kali ukuran dari pola luminance agar sesuai dengan komposisi makroblok YUV 4: 1: 1 (area).
Saya akan mulai dengan sekelompok pola Moire yang sangat berwarna pada skala yang sangat bervariasi yang ditindih dan / atau ditambal bersamaan.
sumber
Biarkan saya berbagi pola yang memiliki spektrum yang sangat datar (seperti white noise). Jadi pola ini sangat sulit untuk dikompres dengan JPG. Gambar sampel di bawah diperbesar 4 kali.
Polanya sendiri teratur, tetapi non-periodik, dan dapat dengan mudah dihasilkan oleh algoritma deterministik. Ia juga memiliki properti fraktal.
Dilihat dari jauh:
sumber
Kebisingan acak memang kompres sangat buruk. Anda dapat memproduksinya dalam warna dengan menghasilkan nilai R, G, B yang independen.
Melihat dari jauh memang akan menghapus noise (dengan penyaringan lowpass), dan Anda dapat menghindarinya dengan menghasilkan gambar noise pada resolusi yang berbeda, yaitu menggunakan piksel yang lebih besar dan lebih besar, dan menempatkan di atasnya.
Saat menambahkan gambar, Anda menghadapi masalah kisaran nilai, yang tumbuh sebagai jumlah gambar, misalkan N. Jika Anda hanya meratakannya, amplitudo noise akan berkurang sebagai 1 / N.
Jika Anda memilih noise seragam yang tidak berkorelasi, superposisi akan menghasilkan distribusi quasi-Gaussian dengan √N standar deviasi, jadi alih-alih membaginya dengan N, Anda dapat membaginya dengan √N (dengan pemusatan ulang yang sesuai) untuk membatasi pengurangan amplitudo.
Terakhir, saya kira lebih baik membiarkan nilai-nilai yang dibungkus daripada menjenuhkannya, karena nilai-nilai jenuh akan membentuk area seragam yang besar.
sumber
Berikut ini adalah pendekatan lain yang mendapatkan noise RGB Brown (4096x4096 GIF).
sumber
Pertanyaan yang luar biasa! Dalam konsepnya, white noise adalah sinyal yang tidak berubah ketika waktu diskalakan. Dengan cara yang sama fraktal tidak berubah ketika ukurannya diskalakan. Proses kompresi lossy hanya mengambil yang paling penting dari spektrum (waktu atau ukuran) tidak semua, sehingga fraktal dan suara seperti cookie. Karena itu, Anda harus bermain dengan warna dan pola kain Anda. Mereka harus fraktal dan perilaku fraktal harus dihasilkan secara acak. Anda harus mendapatkan kain yang dalam foto terlihat hitam (dalam ruang warna CMY) tetapi di dunia nyata, ia memiliki pola warna-warni.
Semoga berhasil! , dan jika Anda mendapatkan anwser, silakan kirim !!!
sumber