Chất lượng JPEG lũy tiến so với JPEG bình thường?


10

Tôi đang cố gắng chuyển đổi một số tệp BMP thành định dạng JPEG với chất lượng cao nhất (Q = 100) cho đến khi tôi nhận thấy có tùy chọn "Tiến bộ" ở đây.

Một trong những tệp BMP của tôi là 2,9 MB. Sau khi chuyển đổi sang định dạng JPEG mà không tăng dần, kích thước tệp mới là 338.2KB và với tiến bộ, kích thước tệp mới chỉ giảm xuống còn 283.2KB.

Tôi đã đọc bài viết trên Wikipedia về việc JPEG tiến bộ này dùng để làm gì, nhưng mối quan tâm của tôi là so sánh với JPEG bình thường, chất lượng của JPEG tiến bộ trở nên tồi tệ hơn hay chúng sẽ giống nhau?


Tôi nghi ngờ hiệu quả chất lượng là một mối quan tâm, nhưng hãy để tôi thêm vào vấn đề tải web: Mặc dù lũy tiến là tốt đối với các hình ảnh nhỏ là một phần của thiết kế, chẳng hạn như nhiều giao diện, khung và nền khác nhau, nhưng nó là sai đối với hình ảnh tải trọng như như ảnh lớn. Có một cách để tối ưu hóa trải nghiệm người dùng tốt hơn với tải từ trên xuống dưới tiêu chuẩn, thúc đẩy thực tế là các hình thu nhỏ đã có trong bộ đệm của trình duyệt: Thiết kế trang web kéo dài hình thu nhỏ được lưu trong bộ nhớ cache phía sau hình ảnh được tải. Điều này nhanh hơn và đẹp hơn nhiều so với kết quả lởm chởm của JPEG tiến bộ.
Zdenek

Câu trả lời:


9

Có một số bài viết hay ở đây dường như mô tả lý do tại sao nén lũy tiến có thể tốt hơn và dường như thực tế là trong JPEG lũy tiến, dữ liệu nén được sắp xếp hiệu quả hơn và dữ liệu hình ảnh khối và nhiễu được tách riêng và nén .

Tôi đã nhấn mạnh những phần quan trọng dưới đây, họ mô tả nó tốt hơn bao giờ hết.

Kết quả là tôi hy vọng rằng JPEG lũy tiến sẽ nén tốt hơn , nhưng không có bất kỳ thay đổi đáng kể nào về chất lượng hình ảnh.

JPEG lũy tiến có hai tính năng mã hóa khác nhau:

  1. Lựa chọn quang phổ
  2. Xấp xỉ liên tiếp

Những gì bạn mô tả chỉ là tính năng đầu tiên (đầu tiên là DC, sau đó là các dải AC). Tuy nhiên, đây là tính năng thứ hai là lý do chính cho hiệu quả mã hóa khác nhau của JPEG lũy tiến. Với xấp xỉ liên tiếp, trước tiên bạn lưu trữ các bit cao hơn của các hệ số (độ chính xác thấp, hình ảnh thô), sau đó là các bit thấp hơn (độ chính xác cao, hình ảnh chi tiết). Trong các hình ảnh thông thường, nhiễu được tập trung ở các bit thấp hơn. Do đó, bộ mã hóa Huffman có thể hiệu quả hơn trong việc mã hóa ký hiệu ở dải bit cao hơn, nơi ít nhiễu hơn. Do đó, mã hóa xấp xỉ liên tiếp do đó tách nhiễu khỏi hình ảnh và đó là lý do cho hiệu quả mã hóa tốt hơn (nhiễu khó có thể nén được).

Hình ảnh càng nhiễu (chi tiết), hiệu quả mã hóa của Progressive JPEG càng tốt. Hình ảnh càng ít nhiễu (làm mờ), hiệu quả mã hóa của Sequential (Không tiến bộ) càng tốt.

Lưu ý rằng hầu hết các bộ mã hóa JPEG lũy tiến sử dụng hỗn hợp mã hóa Lựa chọn quang phổ và mã hóa xấp xỉ liên tiếp. Để có hiệu quả mã hóa tốt hơn, chủ yếu là xấp xỉ liên tiếp có liên quan và bạn có thể thử tìm các tham số xấp xỉ liên tiếp tối ưu (điểm để phân tách độ chính xác - Ah / Al trong tiêu chuẩn JPEG) cho lớp hình ảnh của bạn. Ví dụ, đôi khi tôi tìm thấy một điểm tối ưu Al = 4 cho hình ảnh của mình (4 bit thấp hơn được mã hóa riêng).


2

Ưu điểm của JPEG lũy tiến là nếu một hình ảnh đang được xem một cách nhanh chóng khi nó được truyền đi, người ta có thể thấy một sự gần đúng cho toàn bộ hình ảnh rất nhanh, với sự cải thiện dần dần về chất lượng khi một người chờ đợi lâu hơn; cái này đẹp hơn nhiều so với màn hình hiển thị từ trên xuống dưới chậm. Nhược điểm là mỗi lần quét mất khoảng cùng một lượng tính toán để hiển thị như toàn bộ tệp JPEG cơ sở.

Hình ảnh phải giống hệt nhau, chỉ cần xử lý nhiều hơn để hiển thị.

Nguồn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.