Mẫu nén ít nhất JPG là gì? (máy ảnh chụp mảnh vải, tỷ lệ / góc / ánh sáng có thể thay đổi)


46

Tôi đang cố gắng thiết kế một miếng vải, theo quan điểm của máy ảnh, rất khó nén với JPG, dẫn đến các tệp kích thước lớn (hoặc dẫn đến chất lượng hình ảnh thấp nếu kích thước tệp được cố định).

Nó phải hoạt động ngay cả khi miếng vải cách xa máy ảnh hoặc xoay (giả sử tỷ lệ có thể thay đổi từ 1x đến 10 x).

Tiếng ồn khá tốt (khó nén), nhưng nó trở nên xám khi nhìn từ xa, trở nên dễ nén. Một mô hình tốt sẽ là loại fractal , trông tương tự ở tất cả các quy mô.
Tán lá tốt hơn (lá, cành nhỏ, cành nhỏ, cành lớn), nhưng nó sử dụng quá ít màu sắc.

Đây là lần thử đầu tiên: Không thể nén nhất

Tôi chắc chắn có nhiều mẫu tối ưu hơn.
Có lẽ hình lục giác hoặc hình tam giác tessellations sẽ thực hiện tốt hơn.

JPG sử dụng không gian màu Y ′ Cb Cr , tôi nghĩ rằng Cb Cr có thể được tạo theo cách tương tự, nhưng tôi đoán tốt hơn là không sử dụng thống nhất toàn bộ phạm vi của Y '(độ sáng) vì máy ảnh sẽ bão hòa các vùng sáng hoặc tối ( ánh sáng không bao giờ hoàn hảo).

HỎI: Mẫu vải tối ưu cho vấn đề này là gì?


1
Tôi sẽ phải theo dõi câu hỏi này .... nếu đạt được câu trả lời thú vị, tôi có thể dự đoán một đơn đặt hàng vải tại www.spoonflower.com (hoặc một dịch vụ tương tự) và thực sự khó nhìn vào áo để thêm vào vào bộ sưu tập của tôi ;-)
RBerteig

Một dự án cạnh tranh mẫu thú vị có thể là: 1) Chụp ảnh độ nét cao của mẫu đó 2) Xoay nó, lấy một phần ngẫu nhiên của nó (ở tỷ lệ ngẫu nhiên), làm mờ một chút, thêm một chút nhiễu và màu ngẫu nhiên nhỏ độ lệch 3) Nén nó với JPG 4) Xem kích thước tệp, tính toán số liệu về mất chất lượng và tính "điểm số" bằng các số liệu này. 5) Lặp lại nhiều lần để hội tụ đến điểm trung bình của mẫu này 6) Lặp lại với các mẫu khác và so sánh điểm số
Nicolas Raoul

1
Vì các thuật toán mất dữ liệu luôn có thể nén nhiều hơn bằng cách vứt bỏ nhiều dữ liệu hơn, có vẻ như bạn sẽ gặp nhiều may mắn hơn khi sử dụng các mẫu phụ thuộc vào chi tiết tần số cao. Ví dụ, dòng tốt. Nói cách khác, nó có thể nén tốt, nhưng nó suy giảm chất lượng rất nhanh. Phụ thuộc vào những gì bạn muốn thực hiện tôi cho rằng. Hãy nghĩ về dấu vân tay - đó là một trường hợp cổ điển trong đó các bước sóng được yêu cầu để nén tốt hơn JPEG vì cần phải bảo toàn chi tiết.
datageist

@datageist: Một hình ảnh (đầu ra camera thô) của một miếng vải có các đường có thể khó nén, nhưng lùi lại, chụp một bức ảnh khác: nó sẽ chỉ chứa các pixel màu xám, rất dễ nén mà hầu như không bị mất. Mẫu tôi đang tìm kiếm phải dẫn đến hình ảnh (đầu ra camera thô) khó nén ở phạm vi tỷ lệ rộng.
Nicolas Raoul

@NicolasRaoul Phải, tôi hiểu điều đó, tôi chỉ nói bất cứ điều gì đều có thể nén được nếu bạn vứt đi đủ thông tin. Bạn chỉ muốn một mẫu có sự khác biệt là "khó nén" (nghĩa là để giải trí), hay bạn đang cố gắng chủ động ngăn cản mọi người cố gắng nén hình ảnh có chứa mẫu đó?
datageist

Câu trả lời:


15

Tiếng ồn khá tốt (khó nén), nhưng nó trở nên xám khi nhìn từ xa, trở nên dễ nén. Một mô hình tốt sẽ là loại fractal, trông tương tự ở tất cả các quy mô.

Vâng, có tiếng ồn fractal . Tôi nghĩ tiếng ồn của Brown là fractal, trông giống như bạn phóng to nó. Wikipedia nói về việc thêm tiếng ồn Perlin vào chính nó ở các quy mô khác nhau để tạo ra tiếng ồn fractal, có thể giống hệt nhau, tôi không chắc chắn:

Tiếng ồn fractal Perlin

Tôi không nghĩ rằng điều này sẽ khó nén, mặc dù. Tiếng ồn khó khăn cho nén lossless, nhưng JPEG là lossy, vì vậy nó chỉ cần đi để vứt bỏ các chi tiết thay vì phải vật lộn với nó. Tôi không chắc liệu có thể tạo ra thứ gì đó "khó nén JPEG" hay không vì nó sẽ bỏ qua mọi thứ quá khó để nén ở mức chất lượng đó.

Một cái gì đó với các cạnh cứng ở bất kỳ quy mô nào có lẽ sẽ tốt hơn, như mặt phẳng bàn cờ vô hạn:

máy bay bàn cờ vô hạn

Ngoài ra một cái gì đó với rất nhiều màu sắc. Có thể nhìn vào fractals thực tế thay vì tiếng ồn fractal. Có thể là một fractal Mondrian ? :)

Fractal Mondrian


1
Cảm ơn rất nhiều! Tiếng ồn fractal chắc chắn là loại thứ tôi đang tìm kiếm, nhưng trong các thử nghiệm của tôi, nó được nén tốt, tôi đoán nó có thể sử dụng quá trình chuyển đổi đột ngột hơn, thay vì độ mịn giống như bản đồ nhiệt. Vấn đề của bảng kiểm tra là hiệu suất sẽ thực sự phụ thuộc vào phần nào của tấm vải được chụp. Mondal fractal là tuyệt vời, và hoạt động tốt nhất trong các thử nghiệm của tôi cho đến nay. Có lẽ nó có thể sử dụng nhiều màu sắc hơn và các thông số hơi khác nhau.
Nicolas Raoul

@NicolasRaoul: Hmm .. Có lẽ thảm Sierpinki với màu sắc ? Đó là một mẫu chăn phổ biến rồi.
endolith

Một phần ba của hình tam giác hoặc hình vuông Sierpinki có thể thực sự tuyệt vời!
Nicolas Raoul

14

Nếu chúng ta đang nói về hình ảnh do máy tính tạo ra, nhiễu sẽ là phương pháp phù hợp. Nhưng ở đây, có bước chụp camera.

Các bit fractal là rất quan trọng vì vấn đề bất biến quy mô. Tuy nhiên, nó không nhất thiết phải là fractal, nếu bạn cho rằng có một khoảng cách giới hạn mà người đó sẽ được chụp ảnh. Ý tôi là, nếu người mặc vải nằm trong nền của bức tranh, dù sao nó cũng sẽ không ảnh hưởng nhiều ...

Tôi nghĩ rằng cách tốt nhất để lừa bộ mã hóa JPEG là có các khối có hệ số tần số rất cao sẽ tồn tại lượng tử hóa = rất nhiều chi tiết và các cạnh sắc nét; do đó, toàn bộ chuỗi hệ số phải được viết rõ ràng (thay vì EOB ở hệ số thứ 15 hoặc hơn). Mẫu bàn cờ là một cách tốt để đạt được điều đó. Nhược điểm duy nhất tôi thấy là độ phân giải thấp của ống kính + bộ lọc khử răng cưa của máy ảnh có khả năng làm mờ điều đó! Mọi thứ sẽ xảy ra trong các khối 8 x 8 (hoặc 16x16 khối sắc độ) vì JPEG không làm được gì nhiều ở quy mô vĩ mô. Bạn phải làm cho các khối 8x8 của mình trở nên lộn xộn nhất có thể, bất kể ống kính sẽ làm mờ chúng như thế nào.

Đây là một gợi ý:

mô hình nén bất biến tỷ lệ, khó nén

Bạn có thể tự hỏi những khối ít tương phản đang làm gì ở đây, nhưng chúng đang giúp giữ vùng tương phản khi vật được thu nhỏ. Thách thức ở đây là có một cái gì đó có hoa văn tương phản bất kể quy mô xem.

Tôi chưa chính thức đánh giá điều này. Cách tốt nhất là có một tập lệnh lấy hình ảnh, áp dụng hàng tá cắt / thay đổi kích thước / làm mờ với các tham số khác nhau và tăng tổng kích thước của các JPEG.


Cảm ơn rất nhiều! Trông khá giống với khái niệm của tôi về bức tranh trong câu hỏi, thực ra, nhưng đẹp hơn nhiều. Bất kỳ lý do cụ thể tại sao "gãy" là bởi yếu tố 4? Có tốt hơn yếu tố 2 không?
Nicolas Raoul

không có lý do, tôi chỉ cố gắng làm cho nó trông đẹp hơn với nhiều màu sắc hơn, vì vậy tôi bắt đầu với một hình vuông 4 x 4.
pichenettes

Bất kỳ lý do để chọn hình vuông thay vì hình tam giác? Tôi đang cố gắng ngay bây giờ, hình tam giác tạo ra nhiều cạnh sắc nét, mà tôi nghĩ là một suy nghĩ tốt. Một "gãy xương" thấp có thể đạt được với một tam giác lai → hình thoi → hình lục giác → hình tam giác. Tôi nghĩ rằng một yếu tố thấp là một điều tốt vì nó làm tăng xác suất cho máy ảnh phát hiện các hình dạng sắc nét đến giới hạn độ phân giải của nó.
Nicolas Raoul

Squares là điều dễ nhất để mã hóa. Tôi không chắc chắn nếu các hình dạng khác có "mật độ cạnh" tốt hơn so với hình vuông.
pichenettes

11

Có một sự khác biệt giữa JPEG có thể khai thác và Transform Compressible.

Lấy tiếng ồn hạt trắng của TV chẳng hạn.

Một tiếng ồn trắng nói chung được lan truyền tối đa trong tần số và do đó không có ví dụ nào tốt hơn tiếng ồn trắng mà bất kỳ kỹ thuật mã hóa miền biến đổi nào cũng không thể nén được. Nếu bạn có tiếng ồn như vậy và lấy DCT (hoặc DFT nếu được yêu cầu), chúng tôi sẽ thấy rằng miền tần số cũng có phạm vi rộng và tất cả các đồng hiệu quả sẽ có tầm quan trọng.

Tuy nhiên, vẫn không ai ngăn bạn tích cực từ lượng tử hóa. Bằng cách này, bạn vẫn có thể loại bỏ lượng lớn từ các vùng tần số cao. Kết quả sẽ có lỗi trung bình-lỗi nặng. Tuy nhiên, về mặt nhận thức, nó vẫn sẽ là tiếng ồn. Nó có thể bị mờ rất nhiều mặc dù.

Mặt khác, bây giờ chụp ảnh ở những nơi có cạnh sắc nét.

Các cạnh sắc nét cũng sẽ có sự lan truyền ở tần số cao hơn (nhưng có thể nó chỉ có thể ít hơn một chút so với trường hợp trước). Tuy nhiên, trong khi cố gắng nén nó và giảm tần số cao, bây giờ sẽ có những trở ngại sever trực quan. Nó sẽ giới thiệu làm mờ các cạnh, hiệu ứng đổ chuông, v.v. Mặc dù độ rộng băng thông cho những hình ảnh đó không phải là cao nhất có thể, đối với JPEG hoặc bất kỳ nén tương đương nào như vậy, việc giữ cho những hình ảnh đó có chất lượng cảm nhận như nhau sẽ rất khó khăn.

Đối với bất kỳ nén mất mát, khó khăn và đơn giản phụ thuộc vào mức độ và loại biến dạng được dung nạp.


Giả sử vải của tôi là một bảng 10 ^ 8x10 ^ 8 pixel đen / trắng ngẫu nhiên. Máy ảnh chụp ảnh 10 x 10 pixel của vải. Theo thống kê, hình ảnh 10 x 10 này sẽ có tất cả các pixel có màu xám rất giống nhau, do đó dễ nén với ít biến dạng (dưới bất kỳ hình thức nào) so với hình ảnh kém đồng nhất?
Nicolas Raoul

10

Các thành phần dưới đây cho thấy một cấu trúc loại fractal của mô hình. Mỗi bức ảnh tiếp theo là kết quả của việc tính trung bình trên mỗi khối 2x2 pixel của hình trước đó. Tổng số ký tự của mẫu vẫn giữ nguyên nhưng độ tương phản hình ảnh đang giảm dần. Như đã nói ngay trước đó, bức ảnh trở nên xám xịt khi chúng ta thu nhỏ.

Hành vi mở rộng

Nhưng bằng cách sử dụng thuộc tính fractal, chúng ta có thể chồng các mẫu có độ phân giải khác nhau lại với nhau để duy trì độ tương phản hình ảnh ổn định trong phạm vi mong muốn. Dưới đây là ví dụ về mẫu 4 lớp (512x512 GIF). Kết quả này gần với nhiễu Brown hơn và cũng khó nén JPEG.

Kết hợp 4 lớp


5

Tôi đoán là mô hình nén tồi tệ nhất sẽ là nhiễu trắng (với phân bố đồng đều). Nó cần nhìn nhiễu trên các độ phân giải khác nhau, vì vậy bạn có thể tạo các hình ảnh nhiễu trong không gian tỷ lệ và hơn là đặt chúng lại với nhau:

Tôi= =ΣTôiviết sai rồiVIẾT SAI RỒITôi*GTôi

TôiVIẾT SAI RỒITôiTôiGTôiTôiσ*

Có lẽ cách tốt hơn để xây dựng hình ảnh như vậy sẽ là làm việc trực tiếp trong miền tần số, do đó:

  1. Tạo một hình ảnh chứa đầy tiếng ồn trắng.
  2. Thực hiện IDCT khối 8x8 (Biến đổi Cosine rời rạc) trên hình ảnh.

Kết quả sẽ là mẫu có thể nén tồi tệ nhất cho JPEG, vì nó có entropy cao nhất trong miền DCT. Nhưng tôi không chắc điều này sẽ hành xử như thế nào dưới các nghị quyết khác nhau.


5

IIRC, thuật toán giải nén JPEG được chỉ định, tuy nhiên thuật toán nén chính xác thì không. Các thuật toán khác nhau có thể tạo ra một tệp JPEG hợp pháp. Vì vậy, bạn sẽ cần phải kiểm tra điều này trên (các) máy nén hình ảnh bạn đã chọn.

Bất cứ thứ gì cũng có thể được nén bằng cùng một lượng bằng máy nén mất mát, chẳng hạn như JPEG. Chỉ là, ở bất kỳ mức nén cố định nào, chất lượng nén có thể khác nhau (nhiễu hoặc lỗi trong kết quả giải nén sẽ tăng) tùy theo hình ảnh. Vì vậy, bạn muốn một cái gì đó thêm một lượng nhiễu tối đa cho kết quả giải nén. Đối với điều này, bạn muốn có lỗi tối đa để loại bỏ các hệ số macroblock tần số cao và để định lượng bất kỳ hệ số nào.

Điều này có thể có nghĩa là các bộ lọc tần số cao và khác nhau, cũng như các thang màu xám và màu khác nhau xảy ra giữa các mức lượng tử hóa có thể có của máy nén đã cho tại một số cài đặt đã cho.

Vì bạn muốn nó hoạt động ở bất kỳ khoảng cách nào trong bất kỳ ánh sáng nào, bạn sẽ cần thay đổi tần số của các pickets (có thể là fractal, hoặc có thể chỉ là điều chỉnh tần số ngẫu nhiên) và mức độ màu và màu xám (không kết hợp, ví dụ như thay đổi màu sắc và các cấp độ độc lập). Phương sai màu sắc sẽ ít phụ thuộc vào khoảng cách, vì vậy những thứ đó chỉ cần được chọn là trường hợp xấu hơn cho (các) bộ lượng tử đã chọn của bạn. Kích thước trung bình của các mẫu màu có thể gấp đôi kích thước của các mẫu độ chói để phù hợp với thành phần macroblock YUV 4: 1: 1 (diện tích).

Tôi sẽ bắt đầu với một loạt các mẫu Moire có màu sắc cao ở các tỷ lệ khác nhau được phủ chồng lên nhau và / hoặc được vá lại với nhau một cách ngẫu nhiên.


2

Hãy để tôi chia sẻ mô hình có phổ rất phẳng (như nhiễu trắng). Vì vậy, mẫu này rất khó nén với JPG. Hình ảnh mẫu bên dưới được phóng to 4 lần.

Bản thân mẫu là thường xuyên, nhưng không định kỳ và có thể dễ dàng được tạo bởi thuật toán xác định. Nó cũng có một tài sản fractal.

Mô hình không định kỳ với phổ nhiễu gần như trắng

Nhìn từ xa: nguyên xa


2

Tiếng ồn ngẫu nhiên thực sự nén rất kém. Bạn có thể tạo màu bằng cách tạo các giá trị R, G, B độc lập.

Nhìn từ xa thực sự sẽ xóa sạch nhiễu (bằng cách lọc thông thấp) và bạn có thể tránh điều đó bằng cách tạo ra các hình ảnh nhiễu ở các độ phân giải khác nhau, tức là sử dụng các pixel lớn hơn và lớn hơn và đặt chúng lên.

Khi thêm hình ảnh, bạn phải đối mặt với vấn đề về phạm vi của các giá trị, tăng theo số lượng hình ảnh, hãy để N. Nếu bạn chỉ cần trung bình chúng, biên độ nhiễu sẽ giảm xuống 1 / N.

Nếu bạn chọn nhiễu đồng nhất không tương thích, sự chồng chất sẽ dẫn đến phân phối gần đúng Gaussian với độ lệch chuẩn √N, vì vậy thay vì chia cho N, bạn có thể chia cho √N (với định tâm lại phù hợp) để hạn chế giảm biên độ.

Cuối cùng, tôi đoán rằng tốt hơn là để các giá trị được bao bọc hơn là bão hòa chúng, vì các giá trị bão hòa sẽ tạo thành các vùng đồng nhất lớn.


2

Đây là một cách tiếp cận khác để đạt được tiếng ồn RGB Brownian (4096x4096 GIF). Tiếng ồn RGB Brown


0

Câu hỏi tuyệt vời! Về khái niệm, nhiễu trắng là tín hiệu không thay đổi khi được thu nhỏ theo thời gian. Theo cách tương tự, một fractal không thay đổi khi nó có kích thước. Một quá trình nén mất mát chỉ mất phần quan trọng nhất của phổ (thời gian hoặc kích thước) chứ không phải tất cả, vì vậy fractal và tiếng ồn có mùi như bánh quy. Do đó, bạn nên chơi với màu sắc và hoa văn của vải. Chúng phải là fractals và hành vi fractal phải được tạo màu trắng ngẫu nhiên. Bạn sẽ có được một tấm vải trong ảnh trông có màu đen (trong không gian màu CMY) nhưng trong thế giới thực, nó có hoa văn nhiều màu sắc.

Chúc may mắn! , và nếu bạn nhận được anwser xin vui lòng gửi nó !!!.


"Bạn sẽ có được một loại vải trong ảnh trông có màu đen" <- Trong trường hợp đó, nó có dễ bị nén không?
Nicolas Raoul
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.