TL; DR
Khi lấy mẫu xuống: Sử dụng bộ lọc Lanczos hoặc Spline.
Khi lấy mẫu: Sử dụng bộ lọc bicubic hoặc Lanczos.
Những tài liệu này dựa trên tài liệu tôi đã đọc trong nhiều năm qua và từ những gì tôi thấy được sử dụng trong ngành. Các khuyến nghị có thể thay đổi tùy thuộc vào loại nội dung và khu vực ứng dụng.
Tại sao nó quan trọng?
Có thể lập luận rằng các bộ lọc thay đổi kích thước không quan trọng lắm khi bạn hạ thấp video. Quan trọng hơn, chúng có ảnh hưởng đến chất lượng khi nâng cấp, bởi vì bạn cần tạo dữ liệu ở nơi không có ở nơi đầu tiên.
Tất cả các bộ lọc này chỉ có tác động nhỏ đến kích thước tệp. Do đó, bạn không nên lo lắng về sự khác biệt lớn ở đó.
Thực tế là, như mọi khi khi mã hóa video, kết quả phụ thuộc rất nhiều vào tài liệu nguồn. Bạn không thể luôn dự đoán kết quả, nhưng chỉ cần xem những gì phù hợp nhất với bạn.
Các thuật toán khác nhau
Ví dụ, đây là phép nội suy bicubic so với song tuyến tính :
Xem rằng nội suy bicubic dẫn đến các cạnh mịn hơn? Đó là một tuyên bố rất chung chung nhưng bạn có thể tìm thấy tổng quan về các thuật toán chia tỷ lệ hình ảnh ở đây .
Nội suy song phương sử dụng môi trường 2x2 của pixel và sau đó lấy trung bình của các pixel này để nội suy giá trị mới. Đây không phải là thuật toán tốt nhất, nhưng khá nhanh.
Nội suy bicubic sử dụng môi trường 4 x 4 pixel, cân nhắc các pixel trong cùng cao hơn, sau đó lấy trung bình để nội suy giá trị mới. Đó là - theo như tôi quan tâm - phổ biến nhất.
Tính trung bình diện tích sử dụng ánh xạ các pixel nguồn và pixel đích, tính trung bình các pixel nguồn liên quan đến tỷ lệ pixel đích được che phủ. Theo trang này , nó sẽ tạo ra kết quả tốt hơn khi downsampling.
Spline và sinc suy do đó khó khăn hơn để tính toán hơn suy bicubic sử dụng bậc cao đa thức và đang có. Tôi không nghĩ rằng việc tăng tổng thời gian xử lý là đáng để sử dụng chúng.
Lanczos resampling liên quan đến một bộ lọc chân thành là tốt. Nó đắt hơn về mặt tính toán nhưng thường được mô tả là chất lượng rất cao và có thể được sử dụng để lấy mẫu lên và xuống.
HQX cũng như 2xSaI bộ lọc được sử dụng để mở rộng quy mô pixel nghệ thuật (ví dụ như trò chơi giả lập). Tôi không nghĩ có một lý do chính đáng để sử dụng chúng trong video.
So sánh của Jeff Atwood
Hóa ra Jeff Atwood đã so sánh các thuật toán nội suy ảnh . Quy tắc ngón tay cái của ông là sử dụng phép nội suy hai chiều cho phép ghép xuống và phép nội suy song tuyến khi lấy mẫu. Điều đó nói rằng, đây không phải là những gì thường được khuyến nghị cho mã hóa video - và một số nhà bình luận đã đặt ra nghi ngờ về chuyên môn của Atwood trong lĩnh vực này.
Tuy nhiên, anh cũng đề cập đến đó
Giảm hình ảnh là một hoạt động hoàn toàn an toàn và hợp lý. Bạn chỉ đơn giản là giảm độ chính xác và độ phân giải bằng cách loại bỏ thông tin. Làm cho hình ảnh nhỏ như bạn muốn và bạn có độ trung thực hoàn toàn-- trong giới hạn số lượng pixel bạn cho phép. Bạn sẽ nhận được kết quả tốt cho dù bạn chọn thuật toán nào. (Chà, trừ khi bạn chọn thuật toán thay đổi kích thước Pixel hoặc hàng xóm gần nhất.)
Những ví dụ khác
Dưới đây là một số ví dụ khác về thuật toán nội suy ảnh , bao gồm cả các thuật toán tôi đã đề cập ở trên.
Tôi cũng tìm thấy các tài liệu (quy tắc cảnh) từ cảnh mã hóa video rõ ràng cấm lọc bicubic để lấy mẫu xuống. Thay vào đó, họ chứng thực việc tái cấu trúc Lanczos, Spline hoặc "Blackman".