Đó là wiki cộng đồng, vì vậy bạn có thể sửa bài đăng khủng khiếp này.
Grrr, không có LaTeX. :) Tôi đoán tôi sẽ phải làm tốt nhất có thể.
Định nghĩa:
Chúng tôi đã có một hình ảnh (PNG hoặc định dạng lossless * khác) có tên A có kích thước A x bởi A y . Mục tiêu của chúng tôi là mở rộng nó bằng p = 50% .
Hình ảnh ( "mảng") B sẽ là một "quy mô trực tiếp" phiên bản của Một . Nó sẽ có B s = 1 số bước.
A = B B s = B 1
Hình ảnh ( "mảng") C sẽ là một "từng bước thu nhỏ" phiên bản của Một . Nó sẽ có C s = 2 số bước.
A C C s = C 2
Những điều thú vị:
A = B 1 = B 0 × p
C 1 = C 0 × p 1 C s
A ≅ C 2 = C 1 × p 1 C s
Bạn có thấy những sức mạnh phân số đó không? Về mặt lý thuyết, chúng sẽ làm giảm chất lượng với hình ảnh raster (raster bên trong các vectơ phụ thuộc vào việc thực hiện). Bao nhiêu? Chúng ta sẽ tìm ra điều đó tiếp theo ...
Đồ đạc tốt:
C e = 0 nếu p 1 C s ∈
C e = C s nếu p 1 C s ∉
Trong đó e đại diện cho lỗi tối đa (trường hợp xấu nhất), do lỗi làm tròn số nguyên.
Bây giờ, mọi thứ phụ thuộc vào thuật toán thu nhỏ (Siêu lấy mẫu, Lấy mẫu nhị phân, Lấy mẫu Lanczos, Hàng xóm gần nhất, v.v.).
Nếu chúng tôi đang sử dụng Hàng xóm gần nhất ( thuật toán tồi tệ nhất cho bất kỳ chất lượng nào), "lỗi tối đa thực sự" ( C t ) sẽ bằng với C e . Nếu chúng ta sử dụng bất kỳ thuật toán nào khác, nó sẽ trở nên phức tạp, nhưng nó sẽ không tệ như vậy. (Nếu bạn muốn một lời giải thích kỹ thuật về lý do tại sao nó sẽ không tệ như Hàng xóm gần nhất, tôi không thể đưa ra cho bạn một nguyên nhân, đó chỉ là phỏng đoán.
Yêu hàng xóm:
Chúng ta hãy tạo một "mảng" hình ảnh D với D x = 100 , D y = 100 và D s = 10 . p vẫn như cũ: p = 50% .
Thuật toán Neighbor gần nhất (định nghĩa khủng khiếp, tôi biết):
N (I, p) = mergeXYD repeatates (floorAllImageXYs (I x, y × p), I) , trong đó chỉ bản thân x, y đang được nhân lên; không phải giá trị màu (RGB) của chúng! Tôi biết bạn không thể thực sự làm điều đó trong toán học, và đây chính xác là lý do tại sao tôi không phải là nhà toán học PHÁP LÝ của lời tiên tri.
( MergeXYDuplicates () giữ chỉ nhất trái từ dưới nhất / x, y "yếu tố" trong ảnh gốc Tôi cho tất cả các bản sao mà nó tìm thấy, và vứt bỏ phần còn lại.)
Hãy lấy một pixel ngẫu nhiên: D 0 39,23 . Sau đó áp dụng D n + 1 = N (D n , p 1 D s ) = N (D n , ~ 93,3%) nhiều lần.
c n + 1 = sàn (c n × ~ 93,3%)
c 1 = sàn ((39,23) × ~ 93,3%) = sàn ((36,3,21,4)) = (36,21)
c 2 = sàn ((36,21) × ~ 93,3%) = (33,19)
c 3 = (30,17)
c 4 = (27,15)
c 5 = (25,13)
c 6 = (23,12)
c 7 = (21,11)
c 8 = (19,10)
c 9 = (17,9)
c 10 = (15,8)
Nếu chúng tôi đã giảm quy mô đơn giản chỉ một lần, chúng tôi sẽ có:
b 1 = sàn ((39,23) × 50%) = sàn ((19,5,11,5)) = (19,11)
Hãy so sánh b và c :
b 1 = (19,11)
c 10 = (15,8)
Đó là lỗi của (4,3) pixel! Hãy thử điều này với các pixel cuối (99,99) và tính đến kích thước thực tế trong lỗi. Tôi sẽ không làm lại tất cả các phép toán ở đây một lần nữa, nhưng tôi sẽ nói với bạn rằng nó trở thành (46,46) , một lỗi (3,3) so với những gì nó cần, (49,49) .
Hãy kết hợp những kết quả này với bản gốc: "lỗi thực sự" là (1,0) . Hãy tưởng tượng nếu điều này xảy ra với mọi pixel ... nó có thể sẽ tạo ra sự khác biệt. Hmm ... Chà, có lẽ có một ví dụ tốt hơn. :)
Phần kết luận:
Nếu hình ảnh của bạn ban đầu có kích thước lớn, nó sẽ không thực sự quan trọng, trừ khi bạn thực hiện nhiều lần thu nhỏ (xem "ví dụ trong thế giới thực" bên dưới).
Nó trở nên tồi tệ hơn bởi tối đa một pixel trên mỗi bước tăng dần (xuống) trong Vùng lân cận gần nhất. Nếu bạn thực hiện mười lần hạ cấp, hình ảnh của bạn sẽ bị giảm chất lượng một chút.
Ví dụ thực tế:
(Nhấp vào hình thu nhỏ để xem lớn hơn.)
Giảm dần 1% khi sử dụng Siêu lấy mẫu:
Như bạn có thể thấy, Super Sampling "làm mờ" nó nếu được áp dụng một số lần. Điều này là "tốt" nếu bạn đang thực hiện một hạ cấp. Điều này là xấu nếu bạn đang làm nó tăng dần.
* Tùy thuộc vào trình chỉnh sửa và định dạng, điều này có khả năng tạo ra sự khác biệt, vì vậy tôi sẽ giữ nó đơn giản và gọi nó là lossless.
(100%-75%)*(100%-75%) != 50%
. Nhưng tôi tin rằng tôi biết ý của bạn là gì, và câu trả lời là "không", và bạn sẽ không thực sự có thể nói ra sự khác biệt, nếu có.