PC Nén PDF mã hóa JBIG2

Thảo luận trong 'Hướng dẫn chung' bắt đầu bởi tran ngoc anh, 5/9/23.

  1. tran ngoc anh

    tran ngoc anh Cử nhân

    Hôm nay khai giảng năm học mới, mình sẽ bắt đầu thread này để giới thiệu về JBIG2. Tham khảo định nghĩa: Vui lòng đăng nhập hoặc đăng ký để xem link. Nói chung là để nén PDF được nhỏ gọn, tăng cao hiệu quả lưu trữ, truyền tải nhanh qua internet.

    Khi xuất pdf trắng đen từ Abbyy, Abbyy nén jbig2. Khi Acrobat nén pdf siêu nhỏ nhẹ, cũng chính là jbig2. Sau một thời gian dài dùng Acrobat nén pdf mà không rõ bên trong là gì, đến cuối 2020 thì cụ @iamtnl bảo cho mình biết đó là jbig2 và dí cho cái link này: Vui lòng đăng nhập hoặc đăng ký để xem link; song bản này chỉ đang dùng được cho Linux hay macOS, Windows muốn xài phải cài hệ thống con Linux tức là cái WSL - Windows Subsystem for Linux.

    Vậy ngoài Acrobat rất dễ dùng rồi, mình muốn giới thiệu công cụ dòng lệnh khác nhỏ gọn hơn rất nhiều đó là: Vui lòng đăng nhập hoặc đăng ký để xem link; là bản fork của Vui lòng đăng nhập hoặc đăng ký để xem link dành cho Windows; hãy cắt gọt lề jpg bằng scantailor trước, công cụ này sẽ tự threshold và nén thành pdf jbig2, nếu có ảnh minh họa cần dither thì nên dither trước rồi hãy dùng công cụ này, xem video bên dưới:



    Ngoài ra còn một vài công cụ khác mà mình đang kiểm tra tính khả thi trên Windows, cũng như sẽ bổ sung video chi tiết cách nén bằng Acrobat sau.
     
    Anan Két, amylee, tungxdbt and 2 others like this.
  2. tran ngoc anh

    tran ngoc anh Cử nhân

    Giữ chỗ cho công cụ tiếp theo.
     
  3. tran ngoc anh

    tran ngoc anh Cử nhân

    Giữ chỗ cho công cụ tiếp theo.
     
  4. Narga

    Narga Lớp 5

    Có một lưu ý với thuật toán JBIG2
    JBIG2 là thuật toán nén mất dữ liệu hình ảnh cho tỷ lệ nén gần như là tối đa trong các thuật toán tối ưu hình ảnh đơn sắc (bitonal) . Tuy nhiên có một vấn đề nghiêm trọng của JBIG2 là thuật toán này cố gắng khớp với các biểu tượng trông tương tự, ví dụ: các số "6" và "8". Hậu quả là các ký tự này có thể bị lẫn lộn khi người dùng xem hình ảnh đã được nén (bởi thuật toán JBIG2).
    Xerox scanners_photocopiers randomly alter numbers.png
    Thực tế là, vào năm 2013 rất nhiều báo cáo về vấn đề này đã xảy ra đối với các máy in, máy photocopy của Xenon.
    Văn phòng Bảo mật Thông tin Liên bang của Đức đã ban hành luật cấm sử dụng các thiết bị có sử dụng thuật toán nén tương tự JBIG2. Gần đây nhất lỗi tấn công từ xa làm treo máy và xóa thông tin đối với các thiết bị iOS bằng cách gửi gói dữ liệu nén theo JBIG2 qua iMessage vào năm 2021.
    Chính vì vậy mà mặc dù bản quyền của JBIG2 hết hạn năm 2017 nhưng cho đến nay không nhiều thiết bị, phần mềm sử dụng thuật toán này.
    Vì vậy nếu sử dụng JBIG2 thì cần cân nhắc và có sự đối chiếu giữa bản nén và bản không nén.
     
    tran ngoc anh, amylee and Anan Két like this.
  5. tran ngoc anh

    tran ngoc anh Cử nhân

    Lỗi này được viết rõ trên trang wiki mà mình đã đề cập ở đầu thread rồi, mục Vui lòng đăng nhập hoặc đăng ký để xem link. Nhân tiện hãng máy photocopy dính lỗi là Xeros chớ không phải Xenon, Xenon hình như chỉ search Google thấy máy đọc mã vạch. Và trường hợp bị lỗi là khi nén lossy (nén mất mát dữ liệu), trong khi jbig2 hỗ trợ cả lossy và lossless (nén rất ít mất mát dữ liệu), nếu không nhìn rõ vấn đề ở mọi khía cạnh, rất dễ bị thiên kiến.

    Đọc kỹ sẽ thấy Xeros đã xác nhận lỗi do phần mềm cũ, và đã phát hành các bản vá để khắc phục toàn diện vấn đề từ tháng 8-2013. Và cái đoạn mà "Germany the Vui lòng đăng nhập hoặc đăng ký để xem link" khuyên không nên dùng jbig2 có lẽ là đối với các máy in/photocopy cũ chưa được cập nhật bản vá. Cũng như có thể họ nhắc nhở đối với các tài liệu có sử dụng máy Xeros trước bản vá phần mềm này.

    Jbig2enc thì đến 2017-2018 mới xuất hiện trên github và cũng độc lập với Xeros. Hay nói rộng ra thì các phần mềm thương mại khác cũng phải tự triển khai jbig2 bên trong sản phẩm của mình nên có thể không gặp tình trạng tương tự như Xeros và thực tế là không thấy được báo cáo.

    Nhân tiện thử dùng một phần mềm thương mại như Acrobat để nén jbig2 ảnh mà bạn đưa xem thế nào, nén lossy luôn nhé, cho giống với cách nén bị lỗi như wiki báo cáo:



    Rõ ràng là không có gì, đơn giản vì mình dùng Acrobat bản 2015, phát hành 2 năm sau sự kiện vá lỗi toàn diện. Mình cũng nghĩ các bạn tránh dùng cái này với các đơn thuốc y tế, dùng ảnh gốc cho chắc, hay ít nhất cũng nên dùng Acrobat hay các phần mềm thương mại để có gì cũng có người chịu trách nhiệm, github họ tuyên bố miễn trừ mọi trách nhiệm mà :D
     
    Anan Két and Narga like this.

Chia sẻ trang này