2012-01-06 13 views
5

Tôi có bản PDF của sách được quét, các hình ảnh có định dạng JBIG2 (B & W). Tôi muốn chuyển đổi nó thành một tệp PDF vector, mà tôi có thể thực hiện dễ dàng bằng cách trích xuất các hình ảnh và chuyển đổi chúng sang các hướng dẫn đồ họa vector bằng PDF với potrace.Nén/Tối ưu hóa Vectơ theo định dạng PDF

Lý do cho điều này là tôi muốn PDF hiển thị trơn tru và nhanh chóng trên thiết bị đọc sách điện tử, chẳng hạn như Kindle. Với JBIG2 nó không làm điều này rất tốt. Tùy thuộc vào các thiết lập, Kindle không thể hiển thị PDF, và thậm chí với nó cố định phải mất một thời gian dài để render mỗi trang. Với một véc tơ PDF hiệu suất tốt hơn nhiều, và kết xuất rất sắc nét.

Vấn đề là PDF kết quả là khổng lồ trong việc kích cỡ. Ngay cả với các dòng gzcompressed đến tối đa nó là 300KB cho mỗi trang (hình ảnh JBIG2 gốc là 30KB mỗi trang).

Có cách nào tôi có thể tối ưu hóa đồ họa véc tơ để các tệp được kích hoạt ít hơn nhiều không?

Dưới đây là một phân khúc của các hướng dẫn vẽ vector:

0.100000 0.000000 0.000000 0.100000 0.000000 0.000000 cm 
0 g 
8277 29404 m 
8263 29390 8270 29370 8289 29370 c 
8335 29370 8340 29361 8340 29284 c 
8340 29220 8338 29210 8323 29210 c 
8194 29207 8141 29208 8132 29214 c 
8125 29218 8120 29248 8120 29289 c 
8120 29356 8121 29358 8150 29370 c 
8201 29391 8184 29400 8095 29400 c 
8004 29400 7986 29388 8033 29357 c 
8056 29342 8057 29338 8057 29180 c 
8058 29018 l 
8029 29008 l 
8012 29002 8001 28993 8003 28986 c 
h 
f 

Tôi đã có thể nghĩ rằng những con số có thể được nén xuống rất dễ dàng, nhưng dường như không. Một trang là 800KB không nén (như trên) và 300KB gzcompressed. Tôi đã nghĩ rằng tỷ lệ nén có thể tốt hơn nhiều, xem xét các hướng dẫn là tất cả các con số trong các phạm vi tương tự.

+1

Bạn đã thử lưu lại hình ảnh trong CCITT-G4 chưa? Nó sẽ kết thúc khoảng 10-15% lớn hơn JBIG và có thể dễ dàng xem trên tất cả người xem. – BitBank

Trả lời

1

Tôi sợ không có nhiều điều có thể làm được về điều này.

Tất nhiên, bạn có thể thử sử dụng nén LZW trên luồng trang PDF (thay vì Giảm) nhưng có thể sẽ không tạo ra nhiều khác biệt.

Một gợi ý:

  • hình ảnh nguồn mượt mà càng nhiều càng tốt/loại bỏ càng nhiều chi tiết càng tốt. Điều này có thể khiến ít đường cong hơn (tức là ít dữ liệu hơn) trong khi chuyển đổi.
  • Cố gắng tối ưu hóa giá trị trong luồng trang PDF. Ví dụ: bạn có thể cố gắng sử dụng các kết hợp phức tạp của các toán tử quy mô/dịch và thay đổi dữ liệu. Mục tiêu ở đây là giảm độ dài của toán hạng.

Ví dụ: bạn có thể thử chia tất cả các toán hạng (sử dụng số nguyên, không phân chia dấu phẩy động) bằng 100 và thêm tỷ lệ trước toán tử đầu tiên. Cách tiếp cận này hầu hết có thể làm suy giảm chất lượng hình ảnh, mặc dù.

Và tất nhiên, nếu bạn định làm điều này chỉ với một số ít tệp thì tôi sẽ nói nó không đáng giá.

+0

Nhiều hơn một số ít các tập tin, nhưng vâng, tôi nhận được điểm của bạn. LZW thậm chí còn tệ hơn Deflate. Tùy chọn khác của tôi là chia nhỏ hình ảnh thành các phân đoạn và cố gắng phát hiện các điểm tương đồng, triển khai hiệu quả mã hóa biểu tượng của riêng tôi, sử dụng biểu mẫu xobject. Tôi đã làm một cái gì đó như thế trước đây, nhưng một cái gì đó có xu hướng đi sai ở đâu đó. – Alasdair