Nén nhiều hình ảnh lớn tương tự?


16

Tôi đang xử lý một kho lưu trữ lớn hình ảnh vệ tinh của Trái đất, mỗi hình ảnh cách nhau 15 phút trên cùng một khu vực, do đó chúng khá giống nhau. Hai cái tiếp giáp nhau trông như thế này: nhập mô tả hình ảnh ở đây

Các thuật toán video thực hiện rất tốt việc nén nhiều hình ảnh tương tự nhau. Tuy nhiên, hình ảnh này quá lớn so với video (10848x10848) và sử dụng bộ mã hóa video sẽ xóa siêu dữ liệu của hình ảnh, do đó, trích xuất chúng và khôi phục siêu dữ liệu sẽ rất khó khăn ngay cả khi tôi có bộ mã hóa video để làm việc với những hình ảnh lớn như vậy.

Để thực hiện một số thử nghiệm, tôi đã giảm 96 hình ảnh trong một ngày xuống 1080x1080 pixel, tổng cộng 40,1 MB và thử nén khác nhau với kết quả sau:

  1. mã zip: 39,8 MB
  2. hiếm: 39,8 MB
  3. 7z: 39,6 MB
  4. tar.bz2: 39,7 MB
  5. zpaq v7,14: 38,3 MB
  6. fp8 v2: 32,5 MB
  7. paq8pxd v45: 30,9 MB

Ba phần cuối, được cho là tận dụng tốt hơn nhiều về bối cảnh và thực sự hoạt động tốt hơn so với nén truyền thống, nhưng tỷ lệ nén vẫn còn khá kém so với video mp4 có thể giảm đến 15 MB hoặc thậm chí ít hơn để duy trì chất lượng hình ảnh.

Tuy nhiên, không có thuật toán nào được sử dụng bởi các tiện ích nén đó dường như tận dụng sự giống nhau của hình ảnh như nén video. Trên thực tế, bằng cách sử dụng packJPG , nén riêng từng hình ảnh, toàn bộ thiết bị giảm xuống còn 32,9 MB, khá gần với fp8 và paq8pxd nhưng không tận dụng được sự tương đồng giữa các hình ảnh (vì mỗi hình ảnh được nén riêng lẻ).

Trong một thử nghiệm khác, tôi đã tính toán trong Matlab sự khác biệt của hai hình ảnh ở trên và nó trông như thế này:

nhập mô tả hình ảnh ở đây

Nén cả hai ảnh gốc (tổng cộng là 219,5 + 217,0 = 436,5 kB) với fp8 giảm xuống còn 350,0 kB (80%), nhưng nén một trong số chúng và hình ảnh khác biệt (dưới dạng jpg có cùng chất lượng và sử dụng 122,5 kB) trong một tệp 270,8 kB (62%), do đó, một lần nữa (như được tiết lộ bởi so sánh mp4 và packJPG), fp8 dường như không tận dụng được nhiều điểm tương đồng. Ngay cả khi được nén bằng rar, một hình ảnh cộng với sự khác biệt làm tốt hơn fp8 trên ảnh gốc. Trong trường hợp đó, rar giảm xuống còn 333,6 kB (76%).

Tôi đoán phải có một giải pháp nén tốt cho vấn đề này, vì tôi có thể hình dung ra nhiều ứng dụng. Bên cạnh trường hợp cụ thể của tôi, tôi đoán nhiều nhiếp ảnh gia chuyên nghiệp có nhiều bức ảnh tương tự do chụp liên tiếp hoặc hình ảnh thời gian trôi, v.v ... Tất cả các trường hợp sẽ được hưởng lợi từ việc nén như vậy.

Ngoài ra, tôi không yêu cầu nén không mất dữ liệu, ít nhất là không cho dữ liệu hình ảnh (siêu dữ liệu phải được bảo tồn).

Vậy ... Có phương pháp nén nào khai thác sự tương đồng giữa các hình ảnh được nén không?

Hai hình ảnh của bài kiểm tra trên có thể được tải xuống ở đây và 96 hình ảnh của bài kiểm tra đầu tiên ở đây .


1
Nhiều phản hồi từ những người đặt câu hỏi sẽ được đánh giá cao. Tôi cảm thấy câu hỏi đủ chung chung và có thể được trả lời mà không cần chỉ đến một sản phẩm cụ thể, nhưng với một phương pháp, thuật toán hoặc kỹ thuật.
Camilo Rada

1
Đậu phộng gallery (Tôi không bỏ phiếu để đóng) nhưng Is there a compression utility that take advantage of the similarities between images better than zpaq and fp8?Is there a updated/maintained version of the fp8 utility?có nhiều khả năng các dòng xúc phạm. Ngược lại với ví dụ: Is there a compression *method, algorithm or technique* that take advantage of the similarities between images better than zpaq and fp8?Trọng tâm được cho là khác nhau nhiều. Yêu cầu phần mềm có lẽ là dư thừa, vì phần mềm cụ thể (nếu có) gần như chắc chắn sẽ được đề cập trong bất kỳ câu trả lời nào.
Anaksunaman

1
Tôi đồng ý. Và thực hiện. Chúc may mắn. =)
Anaksunaman

2
"Quá lớn cho video"? Không chắc chắn tôi đồng ý với điều này. Một số codec có độ phân giải tối đa rất cao hoặc không giới hạn. Bạn không cố gắng xây dựng một video có thể xem, chỉ cần nén một số hình ảnh tĩnh. Bạn có thể mã hóa siêu dữ liệu dưới dạng phụ đề hoặc dữ liệu khác không?
benshepherd

1
Để thêm vào danh sách các ứng dụng, tôi sẽ cần điều này để lưu trữ các khung ban đầu của dự án tua nhanh thời gian sẽ có thêm các phần trong tương lai. Các hình ảnh JPG 10 000 x 4K hiện tại chiếm 25 GB dung lượng, trong đó một MP4 gồm chúng chỉ mất 85 MB.
Akseli Palén

Câu trả lời:


5

Tôi không biết về một phần mềm cụ thể thực hiện việc này, nhưng có một số nghiên cứu về chủ đề này. Ví dụ, xem các bài viết Nén các bộ ảnh tương tự của Samy Ait-Aoudia, Abdelhalim Gabis, Amina Naimi và Nén các bộ ảnh tương tự bằng mô hình nén lai của Jiann-Der Lee, Shu-Yen Wan, Chemg-Min Ma, Rui -Feng Wu.

Ở mức độ thực tế hơn, bạn có thể mở rộng kỹ thuật trừ của mình, ví dụ bằng cách viết một tập lệnh sử dụng ImageMagick để tính toán sự khác biệt giữa các hình ảnh liên tiếp, lưu kết quả dưới dạng jpeg (hoặc png nén nếu bạn muốn nó không bị mất). Bạn sẽ nhận được một hình ảnh cơ sở và một bộ hình ảnh "delta" được nén nhỏ hơn nhiều. Để tính toán sự khác biệt bằng ImageMagick:

convert image2.png image1.png -compose MinusSrc -composite -depth 24 -define png:compression-filter=2 -define png:compression-level=9 -define png:compression-strategy=1 difference-2-1.png

Để tính lại bằng cách thêm lại:

convert image1.png difference-2-1.png -compose Plus -composite image2-reconstructed.png

(Bạn có thể làm tương tự bằng cách sử dụng jpg thay vào đó và tiết kiệm rất nhiều dung lượng).


Có vẻ như điều này không quản lý tràn. Tôi có một số hình ảnh tương tự với màu sắc rất khác nhau, và do đó, tôi có một số đồ tạo tác trong các hình ảnh được tính lại, bằng cách sử dụng Minus / Plus hoặc Subtract / Add.
Adrien Clerc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.