câu hỏi này có thể là "Câu hỏi mở" và nhiều người trong số các bạn có thể mong muốn đóng nó, nhưng xin đừng. Hãy để tôi giải thích.Ngoài tiêu chuẩn/tiến bộ, loại nén JPEG thứ 3: tải theo kênh?
Như chúng ta đều biết, JPEG có hai loại nén (ít nhất là trong Photoshop lưu thoại)
- tối ưu hóa, nơi hình ảnh đã được nạp kinda như line-by-line
- tiến bộ, nơi hình ảnh là nạp hình khảm đầu tiên, dần dần tốt hơn cho đến độ phân giải ban đầu
Tôi đã đọc rất nhiều PNG/JPEG tối ưu hóa trước đây, nhưng bây giờ tôi đã gặp phải loại nén thứ ba tuyệt vời này. Các JPEG trong câu hỏi là này
http://storage.googleapis.com/marc-pres/boston-event-1012/images/google-data-center.jpg
Hãy thử tải các liên kết trong Chrome/Firefox (trong IE/Safari chỉ đến khi hình ảnh đã được nạp đầy đủ sau đó hiển thị)
bạn có thể quan sát:
-
Hình ảnh
- được tải đầu tiên màu đen & trắng
- sau đó trông giống như Đỏ kênh được tải
- tiếp theo kênh Xanh nạp
- kéo dài kênh xanh nạp
Tôi đã cố gắng tải nó một lần nữa với một kết nối rất chậm mô phỏng và quan sát thấy rằng các JPEG không phải là chỉ tải theo lệnh kênh , nhưng theo cách tiến bộ là tốt. Vì vậy, hình ảnh được tải đầu tiên là bức tranh trắng và trắng sau đó là mosaic màu xanh lá cây-ish sau đó dần dần khảm đầy đủ màu sắc và cuối cùng là độ phân giải đầy đủ và hình ảnh đầy đủ màu sắc. Đây là công nghệ tuyệt vời, giả sử bạn đang xây dựng một tạp chí điện tử, nơi mỗi trang có rất nhiều hình ảnh, bạn muốn người dùng lướt nhanh qua các trang và loại hình ảnh này chính xác là những gì hoạt động tốt nhất. Để xem trước nhanh, tải hình thu nhỏ trắng-n-trắng, nếu người dùng ở lại, hãy tải đầy đủ hình ảnh gốc.
Vì vậy, câu hỏi của tôi là: Làm thế nào tôi có thể tạo ra hình ảnh ví dụ sử dụng Python Gối hoặc ImageMagick, hay bất kỳ loại mở phần mềm mã nguồn?
Nếu bạn cho rằng câu hỏi này không phù hợp, hãy bình luận, đừng chỉ đóng nó lại.
Cập nhật 1:
Hóa ra Google đã sử dụng công nghệ này trong tất cả các hình ảnh JPEG của nó 1, 2 ví dụ this
Cập nhật 2: Tôi tìm thấy một clue
Có vẻ như một hình ảnh tiến bộ không phải là loại JPEG thứ 3. Hình ảnh JPEG lũy tiến chứa nhiều "lần quét". Mỗi lần quét thường chứa thông tin chi tiết dần dần (hệ số AC) cho MCUs. Không có gì ngăn cản bạn điền vào mỗi lần quét với thông tin cho mỗi kênh riêng lẻ (Luma/Cr/Cb) mỗi lần một. – BitBank
Để tìm hiểu về các cách khác nhau mà mã JPEG có thể được mã hóa, người ta có thể đọc về [tài liệu ITU T.81 (có sẵn trên mạng trực tuyến của w3.org)] (http://www.w3.org/Graphics/JPEG/ itu-t81.pdf) và đọc về đánh dấu SOF (Start of Frame) và SOS (Start of Scan). Cụ thể, SOF phải chỉ định tổng số thành phần (kênh màu), trong khi SOS có thể chỉ định bất kỳ tập hợp con nào của chúng. Một hình ảnh JPEG có thể bao gồm nhiều SOS (quét). Đó là một lỗi thực hiện bộ giải mã JPEG phổ biến để bỏ bê tất cả trừ lần quét đầu tiên. – rwong