Vì sao ảnh JPEG siêu nhỏ trông khác hẳn trên Chrome
Cái icon JPEG nhỏ xíu trông mập hơn trên Chrome không phải lỗi hiển thị — mà là một mẹo tối ưu bộ nhớ cực khéo.
Lập trình viên Guillaume nhận ra một logo JPEG 15 pixel hiển thị nét dày hơn hẳn trên Chrome so với Firefox. Thủ phạm: thư viện ảnh của Chrome dùng một chiêu tối ưu tên là partial IDCT scaling. Thay vì giải nén toàn bộ file JPEG vào bộ nhớ rồi mới thu nhỏ, Chrome chỉ giải mã phần dữ liệu màu tần số thấp vừa đủ cho kích thước nhỏ.
Vì sao chuyện này quan trọng: Giải nén hoàn toàn một file JPEG lớn chỉ để làm cái ảnh thu nhỏ bé tẹo sẽ lãng phí hàng megabyte RAM, dù kết quả chỉ cần vài kilobyte. Mẹo này giúp Chrome tiết kiệm RAM và CPU. Điểm đánh đổi: bỏ qua chi tiết tần số cao sẽ làm mất viền mờ mềm mại, khiến icon nhỏ trông như vừa được "bôi đậm".
Nên biết: Đừng dùng JPEG làm icon — hãy dùng SVG. JPEG được thiết kế cho ảnh chụp, nơi việc mất chi tiết tần số cao không làm hỏng phom dáng bức ảnh.
Lần tới nếu thấy cái logo nào như vừa "tăng cân" trên Chrome, cứ đổ lỗi cho cái mẹo tiết kiệm RAM này nhé.
Nguồn
- Why tiny JPEGs look different in Chrome — https://guillaumetech.github.io/posts/jpg-scaling-chrome/
- Hacker News Discussion — https://news.ycombinator.com/item?id=49272549

