- Định dạng tệp PNG được sửa đổi lớn lần đầu sau 20 năm, lấy lại vị thế trước đây
- Đặc tả lần này phản ánh nhiều công nghệ hiện đại như hỗ trợ HDR, APNG (ảnh động), dữ liệu Exif dưới dạng hỗ trợ chính thức
- Các công ty IT lớn như Adobe, Apple, Google cùng các đơn vị phát sóng đã cùng tham gia phát triển
- Đặc tả mới nhất đã được Chrome, Safari, Photoshop và nhiều chương trình khác hỗ trợ
- Trong tương lai còn có kế hoạch cập nhật thêm như công nghệ nén tốt hơn và mã hóa/giải mã song song
Mở đầu: Sự trở lại và tầm quan trọng của PNG
- Gần đây, định dạng tệp PNG đã vượt qua gần 20 năm đình trệ để được cập nhật bằng một đặc tả mới
- PNG đang được các tổ chức lớn như Thư viện Quốc hội Mỹ, Thư viện và Lưu trữ Canada, Cơ quan Lưu trữ Quốc gia Úc lựa chọn làm định dạng khuyến nghị chính thức
- Thông qua đặc tả mới, PNG giành lại sức cạnh tranh trên thị trường và cho thấy tính đổi mới
Tính năng và đặc điểm mới
Hỗ trợ HDR phù hợp và khả năng tương thích trong tương lai
- PNG mới cung cấp hỗ trợ HDR (High Dynamic Range)
- Trong hình ảnh so sánh không gian màu Rec. 2020 và Rec. 709, vùng rộng hơn (tam giác bên ngoài) cho thấy dải màu mà ảnh HDR có thể biểu diễn
- Thông tin HDR này chỉ cần thêm 4 byte (cùng phần overhead chunk PNG hiện có)
- Các tác giả ban đầu và chuyên gia kỹ thuật chủ chốt như Chris Lilley đã tham gia để giải thích rõ ràng công nghệ mới
APNG (Animated PNG) được công nhận chính thức
- Animated PNG (APNG), ban đầu do Mozilla đề xuất và được Firefox hỗ trợ, nay cũng đã được đưa vào đặc tả chính thức
- Trước đây chỉ một phần mềm số ít hỗ trợ, nhưng hiện đã được chấp nhận rộng rãi trong nhiều chương trình khác nhau
Hỗ trợ chính thức cho dữ liệu Exif
- Thông qua Exif, có thể lưu metadata như bản quyền, thông tin máy ảnh, thông tin GPS
- Điều này mang lại hiệu quả cao trong tạo ảnh, lưu trữ và quản lý bản quyền
Cải tiến tổng thể và sửa lỗi
- Việc sửa lỗi (Errata) và làm rõ đặc tả cũ cũng được thực hiện cùng lúc
Bối cảnh và quá trình phát triển
- Đặc tả PNG trước đó được công bố cách đây khoảng 20 năm (trước khi iPhone ra mắt 3 năm rưỡi)
- Việc phát triển được khởi động lại khi W3C Timed Text Working Group (nhóm tiêu chuẩn hóa công nghệ phụ đề) nêu ra nhu cầu hỗ trợ HDR cho PNG
- Sau khi đề xuất được đưa ra, các công ty công nghệ lớn như Adobe, Apple, BBC, Google, MovieLabs, W3C đã cùng tham gia
- Một liên minh mạnh đã được hình thành để đưa PNG trở thành định dạng hình ảnh thế hệ tiếp theo
- Hiện tại, hai bản cập nhật tiếp theo cũng đã được chuẩn bị sẵn
Tình hình đã được áp dụng rộng rãi
- Đặc tả PNG mới nhất đã được hỗ trợ trong nhiều chương trình như Chrome, Safari, Firefox, iOS/macOS, Photoshop, DaVinci Resolve, Avid Media Composer
- Hỗ trợ cũng đang mở rộng trong các đơn vị phát sóng và phần cứng, công cụ liên quan
- Các hình ảnh phát sóng như thanh cuộn tin tức, banner tỷ số thể thao là ví dụ sử dụng PNG HDR mới
Kế hoạch sắp tới
- Ở bản tiếp theo, có kế hoạch cải thiện hơn nữa khả năng tương thích giữa HDR & SDR
- Ngoài ra, phương thức nén tốt hơn và mã hóa/giải mã song song cũng đang được thúc đẩy
- Phiên bản thứ tư dự kiến sẽ là một bản cập nhật tương đối ngắn, sau đó phiên bản thứ năm sẽ được phát triển dựa trên nghiên cứu về công nghệ nén
2 bình luận
Ban đầu cộng đồng đã từ chối APNG vì cho rằng nó không phải là tiêu chuẩn cho hình ảnh, giờ thì cuối cùng cũng đã công nhận rồi nhỉ.
Ý kiến Hacker News
Tự nhận là tác giả và cho biết luôn sẵn sàng trả lời mọi câu hỏi
Nhấn mạnh rằng lần này PNG không phải là một định dạng hoàn toàn mới mà là phiên bản cập nhật của định dạng hiện có
Khẳng định khả năng tương thích ngược rất cao
Giải thích rằng ngay cả các chương trình cũ cũng có thể đọc các tệp PNG mới tốt nhất có thể, ví dụ vẫn nhận ra đó là ảnh một quả táo đỏ
Cho rằng có thể có sự nhầm lẫn về cách PNG hoạt động bên trong nên tóm tắt các ý chính
Bày tỏ mong muốn có các tệp mẫu sử dụng tính năng của đặc tả PNG mới, đặc biệt là một trang demo cho phép tải trực tiếp ảnh động hoặc ảnh HDR để thử khả năng tương thích của chương trình
Tôi ủng hộ meta-format và bộ công cụ dùng chung
Trong công cụ vẽ web của tôi, tôi dùng một mẹo là lưu biểu diễn JSON của tài liệu vào trường chú thích của PNG
Làm vậy thì tệp đã lưu có thể dùng ngay như một hình ảnh, đồng thời cũng có thể nạp lại vào editor
Ưu điểm là thư mục tải xuống không bị chất đầy những tệp JSON khó nhận biết
Khá thú vị, nhưng lại hơi khó giải thích cho người dùng vì sao tệp được lưu thành
.png, hoặc vì sao khi mở rồi lưu lại bằng Paint chẳng hạn thì dữ liệu bị mấtKrita cũng lưu thiết lập cọ theo cách này, nhưng khi dữ liệu quá lớn thì có thể gây ra những vấn đề ngoài dự kiến
Macromedia Fireworks đã dùng PNG làm định dạng lưu mặc định từ 20 năm trước
Nhiều frontend tạo ảnh AI cũng dùng cách tương tự
Macromedia Fireworks lưu tệp Fireworks trong PNG,
Đặc tả này gần như là việc chính thức hóa những gì đã được triển khai rộng rãi
Dù gọi là PNG thế hệ tiếp theo, nếu cần decoder mới thì có lẽ gọi là PNG2 cũng được
JPEG-XL đã đáp ứng phần lớn những điều mọi người muốn ở một codec lossless
Hiện tại codec ảnh lossless tốt nhất là HALIC
Nhưng xem chuỗi thảo luận HALIC thì thực tế LEA 0.5 còn tốt hơn
Thành thật mà nói, trước đây tôi từng nghĩ JPEG XL chỉ dành cho “ảnh siêu lớn” nên đã bỏ qua nó một thời gian
Tôi dùng png trong công cụ annotation ảnh thị giác máy tính (XLabel)
Nén lossless của WebP thuộc hàng đầu ngành nhưng vẫn không được dùng rộng rãi
Vấn đề tốc độ encode/decode có thể được cải thiện theo thời gian
Tin tốt nhất là hỗ trợ dữ liệu Exif cuối cùng đã được phản ánh chính thức
Trước đây cũng có thể ghi dữ liệu tùy chỉnh vào header, nhưng hỗ trợ Exif là rất đáng hoan nghênh
Nhân tiện cũng thắc mắc liệu Exif có trường nào liên quan đến con quay hồi chuyển (xoay) hoặc gia tốc kế (trọng lực) hay không
Có trường gia tốc kế (Exif.Photo.Acceleration) và trường dành cho độ cao góc máy ảnh (Exif.Photo.CameraElevationAngle),
Exif có thể gây ra nhầm lẫn trong cách xử lý xoay khi render ảnh
Không có trường tiêu chuẩn nào để ghi dữ liệu từ gia tốc kế hay hệ thống dẫn đường quán tính của camera
Thực tế nhiều website xóa phần lớn dữ liệu Exif khi tải ảnh lên
Cá nhân tôi mong mọi người dùng XMP thay vì Exif
Đặc tả PNG lần này chính thức hóa những cách làm vốn đã được dùng rộng rãi
Codec tốt nhất phải hoạt động ở mọi nơi, trong bất kỳ ứng dụng nào, từ OS shell, API cho đến Linux
Các định dạng như HEIC hay AV1 nếu không có hỗ trợ ở cấp hệ điều hành thì thậm chí rất khó preview tệp
Một định dạng không lưu hành đúng nghĩa thì không nên trở thành mặc định của nền tảng
Tôi làm công việc phải xử lý nhiều định dạng ảnh, kể cả những định dạng hiếm chỉ dùng trong các lĩnh vực cụ thể
Đặc tả mới này thậm chí có thể còn gây rối hơn HEIC hay AV1
Đây là lần đầu tôi thấy HDR được dùng theo nghĩa “không gian màu rộng hơn” chứ không phải theo nghĩa mở rộng độ sáng/tỷ lệ tương phản một cách rõ ràng
Không biết có phải đã quá muộn hay chưa
Và JPEG XL vốn đã có đủ mọi tính năng như nén lossy/lossless, animation, HDR, Exif, cùng các kỹ thuật nén tiên tiến như finite state entropy, ZStandard
Tôi nghĩ không cần cập nhật PNG riêng nữa, cứ dùng JPEG XL là được
Nhưng thực tế “chỉ cần được chấp nhận” lại không đơn giản
Về nhắc đến “kỹ thuật nén tiên tiến (ZStandard v.v.)”
“Không cần cập nhật PNG, cứ chấp nhận JPEG XL là được”
Tôi không hiểu vì sao lại tạo thêm một tiêu chuẩn khác, hay một biến thể phái sinh nữa
Giờ thì có thể thay GIF bằng APNG (alpha blending + nền trong suốt + nén lossless), nên cảm giác web của thập niên 2000 có thể sống lại
Không biết Animated SVG có tiêu chuẩn hay không
Animated SVG là có tồn tại
set,animate,animateTransform,animateMotionTôi hiểu là ngày nay thay vì GIF, video không tiếng như mp4 được dùng nhiều hơn vì nén tốt hơn
Phần lớn dịch vụ hỗ trợ tải lên GIF gần như không hỗ trợ APNG hay animated WEBP
Khi chuyển video ngắn thành đồ họa động, WEBP vốn đã tốt hơn APNG
Vài năm trước tôi từng dùng thư viện Lottie (Bodymovin)
Trong PR có khẳng định rằng “nhiều chương trình đã hỗ trợ đặc tả PNG mới”
Nhưng việc nói Photoshop hỗ trợ APNG là sai
Photoshop có hỗ trợ phần HDR, nhưng không hỗ trợ phần APNG
Có người nhắc đến việc con người cần quản lý sự không chắc chắn về ngày giờ theo cách nhất quán bằng phần mềm
Sự cần thiết phải quản lý thông tin thời gian mơ hồ như “ảnh được scan năm 2025, nội dung vào khoảng lễ Phục sinh, trong giai đoạn 1920~1940”
EXIF có trường DateTimeDigitized
Google Photos và Apple Photos cho phép đặt ngày trực tiếp, nhưng thực tế lại không lưu vào EXIF