Google công bố thuật toán mới giúp ảnh JPEG giảm 35% dung lượng mà vẫn giữ được chất lượng ảnh cao

Tuấn Hưng , Theo Trí Thức Trẻ
Bình luận 0

Sử dụng Guetzli giúp các quản trị web tạo ra trang mạng có tốc độ tải nhanh hơn và thậm chí sử dụng dữ liệu ít hơn.

Google đã phát triển và công bố mã nguồn mở của một thuật toán JPEG cho phép thu nhỏ kích thước ảnh lại đến 35% mà không làm giảm chất lượng của nó. Nhưng yếu tố quan trọng và đáng chú ý nhất, đó là không giống như những nỗ lực nén ảnh trước đây của họ như WebP hay WebM, loại JPEG mới của Google hoàn toàn tương thích với những trình duyệt, các thiết bị di động, ứng dụng chỉnh sửa hình ảnh và không khác gì ảnh JPEG bình thường.

Tên gọi của nó là Guetzli, đây là một từ tiếng Đức, có nghĩa là cookie (dự án này do văn phòng nghiên cứu của Google tại Zurich thực hiện). Bạn đọc cũng đừng nên quá để tâm vào tên gọi của nó làm gì: sau khi phân tích kỹ lưỡng, tôi cũng chẳng tìm được bất cứ thông tin gì liên quan đến cookie hay loại đồ ăn nào trong Repository của nó trên Github cả.

Có rất nhiều cách để thay đổi dung lượng và chất lượng của ảnh JPEG, tuy nhiên Guetzli lại tập trung vào giai đoạn lượng tử hóa của quá trình nén. Lượng tử hóa, có thể được định nghĩa một cách khái quát rằng: đó là một quá trình biến đổi một tập đại lượng có giá trị tương đối lớn hoặc thay đổi liên tục (rất khó để nén) bằng một lượng có giá trị nhỏ hơn (rất dễ để nén). Trong lĩnh vực giải nén và mã hóa ảnh JPEG, quá trình này thường thu gọn những gam màu nhẹ thành một khối màu duy nhất và thường loại bỏ đi hoàn toàn những chi tiết nhỏ trong ảnh.

Trở ngại lớn nhất mà họ gặp phải đó là tìm được sự cân bằng giữa loại bỏ đi chi tiết nhỏ nhặt, và giữ cho kích thước của tập tin tối thiểu nhất có thể. Các encoder khác, ví dụ như libjpeg, x264 hay lame đều có cách thức thực hiện điều này khác nhau.

Guetzli, theo lời của đội ngũ nghiên cứu Google Research, sử dụng một mẫu hình ảnh mới – có tên Butteraugli, nó có tác dụng phân biệt được màu sắc và chi tiết nào nên giữ lại, và cái nào nên bỏ đi. Hình ảnh ở đây có nghĩa là nó sẽ dựa trên hệ thống xử lý hình ảnh của con người. Thông tin chi tiết về Butteraugli được “chôn vùi” trong hàng trăm những hằng số có độ chính xác cao, chúng có khả năng cho ra một mẫu hình ảnh “tái tạo được màu sắc và chi tiết rõ ràng hơn rất nhiều” so với các encoder khác.


Trái là ảnh gốc, giữa là xử lý bằng libjpeg, phải là ảnh đã được Guetzli xử lý

Trái là ảnh gốc, giữa là xử lý bằng libjpeg, phải là ảnh đã được Guetzli xử lý

Điều mà chúng ta chưa biết là, làm cách nào mà Google Research lại tìm ra được những hằng số nói trên. Có vẻ như chúng là do máy tính tạo nên, hoặc chí ít là được máy tính tối ưu hóa. Google Research vốn nổi tiếng với lĩnh vực machine learning và neural networks: có thể một lượng lớn hình ảnh đã được mạng neural xử lý để cho ra những hình ảnh chi tiết nhất.

Mặc dù tác dụng chính của Guetzli là giảm thiểu dung lượng của tập tin, Google Research còn hé lộ rằng nó có thể được sử dụng để gia tăng chất lượng hình ảnh của JPEG trong khi giữ nguyên kích thước của nó. Khi so sánh những hình ảnh của Guetzli với libjpeg (một encoder với mã nguồn mở khá phổ biến), “75% đánh giá của người dùng nghiêng về phía Guetzli". Điều này đồng nghĩa với việc mẫu hình ảnh của Butteraugli - thành phần cốt yếu của Guetzli, đã thực hiện tốt công việc của mình và là minh chứng cho việc nó đạt rất gần đến chuẩn mực thị giác của con người.”


Ảnh gốc nằm bên trái, libjpeg ở giữa và Guetzli nằm bên phải, kích thước file Guetzli nhỏ hơn.

Ảnh gốc nằm bên trái, libjpeg ở giữa và Guetzli nằm bên phải, kích thước file Guetzli nhỏ hơn.

Sử dụng Guetzli giúp các quản trị web tạo ra trang mạng có tốc độ tải nhanh hơn và thậm chí sử dụng dữ liệu ít hơn. Tuy nhiên, Google cũng nói thêm rằng, trong khi Guetzli tạo ra kích thước tập tin hình ảnh nhỏ hơn thì quá trình xử lý nén hình ảnh sẽ mất nhiều thời gian hơn đáng kể so với các phương pháp hiện có.

Link về Guetzli trên GitHub

Theo arstechnica

Bình luận

Tin cùng chuyên mục
Xem theo ngày