Dropbox vừa cho ra mắt Lepton ( GitHub ), một phương pháp mà losslessly nén ảnh JPEG khứ hồi, tiết kiệm trung bình 22%.
Do nguyên tắc pigeonhole , bất kỳ thuật toán nén chung nào cũng không thể được đảm bảo dẫn đến một tệp nhỏ hơn ( chung vì nó không áp dụng cho các đầu vào bị ràng buộc theo một định dạng cụ thể). Lepton khai thác các đặc điểm phổ biến về JPEG, nếu bị lật đổ, có thể điều chỉnh nó để tạo ra một tệp lớn hơn nguồn.
Yêu cầu
Viết chương trình tạo:
- Hình ảnh JPEG / JFIF hợp lệ,
- với kích thước từ 0,5 MB đến 1 MB,
- không nhỏ hơn 256 × 256 px,
- không lớn hơn 4096 × 4096 px,
- Lepton có thể nhận ra (nó có thể "nén" thành công
.lep
hình ảnh) và - giải nén thành một bản giống hệt
.jpg
(làm đầu vào). APPx
,COM
và các siêu dữ liệu khác, các phần đánh dấu phi đồ họa bị hạn chế trong JPEG (việc đưa một lượng byte ngẫu nhiên tùy ý vào hình ảnh để tiếp cận nén 1: 1 không theo triệu chứng là khập khiễng.)- một
APP0
điểm đánh dấu JFIF được cho phép nhưng không cho phép hình thu nhỏ (phải chính xác là 16 byte) - tl; dr Nếu bạn không cố tình đẩy siêu dữ liệu vào một phân đoạn EXIF và bạn vô hiệu hóa bất kỳ loại hình thu nhỏ nào mà thư viện ngôn ngữ bạn muốn đưa vào hình ảnh, điều đó sẽ ổn.
- một
Gửi mã và hình ảnh.
Nếu bạn muốn viết một chương trình tạo ra hình ảnh Lepton mà khi chuyển đổi sẽ mang lại một JPEG đáp ứng các tiêu chí, điều đó tốt. Nó phải giống hệt nhau qua nhiều chu kỳ JPEG → Lepton → JPEG → ....
Chấm điểm
Kích thước byte của hình ảnh Lepton chia cho hình ảnh JPEG nguồn. Cao hơn (nén Lepton tệ hơn) là tốt hơn. Chạy Lepton với cờ và công tắc mặc định.
Bắt Lepton
Một khóa học kéo dài 5 giây để xây dựng Lepton:
git clone https://github.com/dropbox/lepton.git
cd lepton
./autogen.sh && ./configure && make
# fish shell: ./autogen.sh ;and ./configure ;and make
Sau đó ./lepton --help
nên nói với bạn những điều.