Dropbox baru-baru ini merilis Lepton ( GitHub ), sebuah metode yang tanpa kompres memadatkan gambar perjalanan JPEG, menghemat rata-rata 22%.
Karena prinsip pigeonhole , algoritma kompresi umum apa pun tidak dapat dijamin menghasilkan file yang lebih kecil ( umum karena tidak berlaku untuk input yang dibatasi ke format tertentu). Lepton mengeksploitasi karakteristik umum tentang JPEG, yang jika ditumbangkan, mungkin akan membuatnya jadi file yang lebih besar dari sumbernya.
Persyaratan
Tulis program yang menghasilkan:
- Gambar JPEG / JFIF yang valid,
- dengan ukuran antara 0,5 MB dan 1 MB,
- tidak lebih kecil dari 256 × 256 px,
- tidak lebih besar dari 4096 × 4096 px,
- dikenali oleh Lepton (berhasil dapat "kompres" ke
.lep
gambar), dan - mendekompresi menjadi identik
.jpg
(sebagai input). APPx
,,COM
dan metadata lainnya, bagian marker non-grafis dibatasi dalam JPEG (menyuntikkan jumlah acak byte ke dalam gambar untuk secara asimptotik mendekati kompresi 1: 1 lumpuh.)- sebuah
APP0
JFIF penanda diperbolehkan tetapi tidak ada thumbnail diperbolehkan (harus tepat 16 bytes) - tl; dr Jika Anda tidak sengaja mendorong metadata ke dalam segmen EXIF dan Anda menonaktifkan segala jenis thumbnail yang ingin dimasukkan ke dalam pustaka bahasa Anda ke dalam gambar, itu tidak masalah.
- sebuah
Posting kode dan gambar.
Jika Anda ingin menulis sebuah program yang menghasilkan gambar Lepton yang ketika dikonversi menghasilkan JPEG yang memenuhi kriteria, itu bagus. Itu harus tetap identik di banyak siklus JPEG → Lepton → JPEG → sewenang-wenang.
Mencetak gol
Ukuran byte dari gambar Lepton dibagi dengan gambar JPEG sumber. Lebih tinggi (kompresi Lepton yang lebih buruk) lebih baik. Jalankan Lepton dengan flag dan sakelar default.
Mendapatkan Lepton
Kursus kilat 5 detik untuk membangun Lepton:
git clone https://github.com/dropbox/lepton.git
cd lepton
./autogen.sh && ./configure && make
# fish shell: ./autogen.sh ;and ./configure ;and make
Maka ./lepton --help
harus memberi tahu Anda hal-hal.