Định dạng ảnh PEP mới hứa hẹn khả năng nén vượt trội cho Pixel Art, nhưng sự đánh đổi về tốc độ gây tranh luận trong cộng đồng

Nhóm Cộng đồng BigGo
Định dạng ảnh PEP mới hứa hẹn khả năng nén vượt trội cho Pixel Art, nhưng sự đánh đổi về tốc độ gây tranh luận trong cộng đồng

Một định dạng ảnh thử nghiệm mới có tên PEP ( Prediction-Encoded Pixels ) đã xuất hiện, nhắm mục tiêu cụ thể vào pixel art và các hình ảnh ít màu với lời hứa nén tốt hơn đáng kể so với các định dạng đã được thiết lập như PNG và GIF . Định dạng này sử dụng công nghệ nén Prediction by Partial Matching để đạt được kích thước tệp nhỏ hơn 20-50% so với các định dạng truyền thống, mặc dù điều này phải trả giá bằng tốc độ xử lý.

Các Tính Năng Chính Của Định Dạng PEP

  • Trường Hợp Sử Dụng Mục Tiêu: Pixel art ít màu (tối ưu ≤16 màu, hỗ trợ tối đa 256 màu)
  • Phương Pháp Nén: Prediction by Partial Matching, Order-2 ( PPM-2 )
  • Định Dạng File: Nén không mất dữ liệu với hỗ trợ bảng màu
  • Các Hàm API: pep_compress(), pep_decompress(), pep_save(), pep_load()
  • Định Dạng Màu: Hỗ trợ RGBA và BGRA
  • Trạng Thái Hiện Tại: Giai đoạn thử nghiệm

Hiệu suất nén cho thấy kết quả hỗn hợp

Các bài kiểm tra benchmark ban đầu cho thấy hiệu quả của PEP thay đổi đáng kể tùy thuộc vào loại hình ảnh. Đối với những hình ảnh rất đơn giản như sprite cây 4 màu, PEP đạt được 901 byte so với 984 byte của PNG và 1,047 byte của GIF . Tuy nhiên, lợi thế của định dạng này trở nên kém rõ ràng hơn với các loại hình ảnh khác nhau. Trong một bài kiểm tra với hình ảnh font 2 màu, PNG thực sự vượt trội hơn PEP một chút với 1,318 byte so với 1,357 byte của PEP .

Những cải thiện ấn tượng nhất xuất hiện với các hình ảnh có số lượng màu cao hơn. Một cảnh 251 màu được nén xuống 73,542 byte với PEP , so với 84,657 byte của PNG và 96,997 byte của GIF , thể hiện sự tiết kiệm không gian có ý nghĩa cho các nhà phát triển làm việc với pixel art phức tạp hơn.

So sánh nén PEP vs PNG vs GIF

Loại hình ảnh Kích thước PEP Kích thước PNG Kích thước GIF Ưu thế của PEP
Tree1 (4 màu, 112x96) 901 bytes 984 bytes 1,047 bytes Nhỏ hơn PNG 8.4%
Font (2 màu, 192x144) 1,357 bytes 1,318 bytes 1,919 bytes Lớn hơn PNG 3%
NZ Scene (251 màu, 640x200) 73,542 bytes 84,657 bytes 96,997 bytes Nhỏ hơn PNG 13.1%

Mối quan ngại về tốc độ chiếm ưu thế trong thảo luận cộng đồng

Thời gian xử lý chậm hơn của định dạng này đã trở thành chủ đề thảo luận chính trong số các nhà phát triển. PEP mất thời gian nén và giải nén lâu hơn 2-10 lần so với các định dạng hiện có. Đối với cảnh phức tạp 251 màu, việc giải nén mất hơn 32 mili giây với PEP so với chỉ 3 mili giây đối với PNG .

Các thành viên cộng đồng đang đặt câu hỏi liệu lợi ích về kích thước tệp có biện minh cho hình phạt hiệu suất hay không. Một số nhà phát triển đã lưu ý rằng việc giải mã PNG đã đủ nhanh cho hầu hết các ứng dụng, khiến sự đánh đổi tốc độ của PEP trở nên đáng ngờ đối với nhiều trường hợp sử dụng.

So sánh Tốc độ Xử lý

Định dạng Thời gian Nén Thời gian Giải nén Hệ số Tốc độ
PEP 0.383-25.652 ms 0.412-32.121 ms Chậm hơn 2-10 lần
QOI 0.023-1.03 ms 0.028-1.004 ms Tốc độ chuẩn nhanh
PNG Không xác định ~0.25-3.069 ms Tốc độ tiêu chuẩn

Các ứng dụng thích hợp thúc đẩy sự quan tâm

Bất chấp những lo ngại về tốc độ, định dạng này đã tìm được những người ủng hộ trong số các nhà phát triển game pixel art, những người ưu tiên kích thước tệp hơn tốc độ xử lý. Thiết kế của định dạng này nhắm mục tiêu cụ thể vào game và nén sprite, nơi kích thước tệp nhỏ hơn có thể rất quan trọng cho việc phân phối và lưu trữ.

Đây là một định dạng lossless được tối ưu hóa cho kích thước tệp thay vì tốc độ giải nén; README có vẻ đủ rõ ràng. Được tạo bởi một nhà phát triển game pixel art, để nén sprite trong các game pixel art, vì vậy tôi cho rằng nó phù hợp với một thích hợp hữu ích.

Những người áp dụng sớm đã bắt đầu triển khai hỗ trợ PEP trong các công cụ của họ, với ít nhất một nhà phát triển tạo giao diện dòng lệnh và thêm hỗ trợ vào một ứng dụng pixel art trong vòng vài giờ sau khi định dạng được công bố.

Triển khai kỹ thuật đặt ra câu hỏi

Định dạng này sử dụng một mô hình dự đoán tương đối đơn giản chỉ xem xét hai pixel trước đó để dự đoán pixel tiếp theo, so với cách tiếp cận tinh vi hơn của PNG là kiểm tra bốn pixel lân cận. Phương pháp dự đoán đơn giản hơn này, kết hợp với mã hóa số học và nén bảng màu, có thể giải thích tại sao hiệu suất của PEP thay đổi rất đáng kể giữa các loại hình ảnh khác nhau.

Định dạng này vẫn ở trạng thái thử nghiệm, và người tạo ra nó thừa nhận rằng cần có thêm phát triển và phản hồi từ cộng đồng để tinh chỉnh khả năng của nó và xác định vị trí cuối cùng trong bối cảnh định dạng hình ảnh.

Tham khảo: Prediction-Encoded Pixels