Dropbox kısa süre önce JPEG görüntülerini gidiş- dönüşte kayıpsız bir şekilde sıkıştıran ve ortalama% 22 tasarruf sağlayan bir yöntem olan Lepton'u ( GitHub ) piyasaya sürdü .
Güvercin deliği prensibi nedeniyle , herhangi bir genel sıkıştırma algoritması daha küçük bir dosyaya neden garanti edilemez ( genel , belirli bir formatla kısıtlanmış girişler için geçerli değildir). Lepton, JPEG'lerle ilgili ortak özelliklerden yararlanır; bu, altta bırakılırsa, kaynaktan daha büyük bir dosya oluşturmak için güvercin deliğine neden olabilir.
Gereksinimler
Üreten bir program yazın:
- Geçerli bir JPEG / JFIF görüntüsü,
- 0,5 MB ile 1 MB arasında bir boyuta sahip,
- 256 × 256 pikselden daha küçük değil,
- en fazla 4096 × 4096 piksel,
- Lepton tarafından tanınabilir (başarılı bir şekilde "sıkıştırabilir"
.lep
görüntüye ) ve - Bir için açar özdeş
.jpg
(giriş olarak) . APPx
,COM
ve diğer meta verilerde, grafiksel olmayan işaretleyici bölümleri JPEG'de sınırlandırılmıştır (asimtotik olarak 1: 1 sıkıştırma yaklaşması için görüntüye rastgele miktarda rastgele bayt enjekte edilir.)- Bir
APP0
JFıF markör izin verilir ancak küçük (tam olarak 16 bayt olmalıdır) bırakılır - tl; dr Meta verileri bir EXIF segmentine kasıtlı olarak sokmuyorsanız ve tercih ettiğiniz dil kitaplığınızın resme koymak istediği herhangi bir küçük resmi devre dışı bırakırsanız, bu tamam olmalıdır.
- Bir
Kodu ve resmi yayınlayın.
Dönüştürüldüğünde kriterleri karşılayan bir JPEG veren bir Lepton görüntüsü üreten bir program yazmak istiyorsanız , sorun değil. Rastgele birçok JPEG → Lepton → JPEG → ... döngüsünde aynı kalmalıdır.
puanlama
Lepton görüntüsünün bayt boyutunun kaynak JPEG görüntüsüne bölümü. Daha yüksek (daha kötü Lepton sıkıştırması) daha iyidir. Lepton'u varsayılan bayraklar ve anahtarlarla çalıştırın.
Lepton Başlarken
Lepton'u inşa etmek için 5 saniyelik bir çarpışma rotası:
git clone https://github.com/dropbox/lepton.git
cd lepton
./autogen.sh && ./configure && make
# fish shell: ./autogen.sh ;and ./configure ;and make
O zaman ./lepton --help
size bir şeyler söylemeliyiz.