Khác biệt về chiến lược áp dụng giữa BXT và deconvolution truyền thống
Gần đây khi dùng BlurXTerminator (BXT) để xử lý ảnh, có người cùng sở thích hỏi tôi: so với deconvolution truyền thống thì cách dùng nó có gì khác không? Ở đây tôi chia sẻ vài điều rút ra được.
Deconvolution truyền thống: chỉ áp dụng cho kênh luminance
Theo truyền thống, deconvolution chỉ được áp dụng cho kênh luminance. Vì vậy:
- với ảnh của camera đơn sắc (mono), ta làm deconvolution thẳng trên kênh L, còn các kênh RGB thì bỏ qua;
- với ảnh của camera màu (OSC), ta trích kênh luminance trong ảnh RGB ra để làm trước, còn ảnh RGB ban đầu thì bỏ qua.
Cách làm này đã được dùng nhiều năm, bởi thứ mà deconvolution xử lý chủ yếu là chi tiết ở các mức độ sáng và độ nét của sao.
BXT hơi khác một chút: sao sẽ nhỏ đi rất nhiều
Trong khi dùng, BXT có một khác biệt then chốt — nó làm sao nhỏ đi rất nhiều. Nếu vẫn theo cách làm truyền thống “chỉ áp dụng cho kênh luminance”, sẽ xuất hiện tình huống ở phía bên phải ảnh dưới: sao của các kênh RGB lớn hơn hẳn so với kênh L, thế là quanh sao xuất hiện hiện tượng màu tràn ra ngoài. Ngược lại, nếu áp dụng đồng thời cho cả L và RGB thì vấn đề này gần như không xảy ra (như ảnh bên trái).

Chiến lược áp dụng được khuyến nghị
Tùy theo loại camera, cách làm tôi khuyến nghị là:
- Ảnh camera đơn sắc: áp dụng đồng thời cho L và RGB; hoặc chỉ áp dụng cho L, nhưng khi đó các kênh RGB cần được thu nhỏ sao riêng để khớp với sao L đã nhỏ lại.
- Ảnh camera màu: không cần trích L ra trước, cứ áp dụng thẳng lên ảnh RGB là được, sau đó mới trích L ra để làm các xử lý khác cần thiết hoặc để kéo giãn.
BXT làm cho deconvolution vừa nhanh vừa tốt, nhưng nó đã thay đổi kích thước của sao, và do đó cũng thay đổi luôn chiến lược phối hợp giữa các kênh. Hiểu được điểm này thì mới tránh được cảnh vất vả tăng độ nét xong lại chuốc về một vòng quang sai màu. Cũng rất mong mọi người chia sẻ những điều mình rút ra được khi dùng BXT hoặc deconvolution truyền thống.