TL; DR
เมื่อสุ่มตัวอย่างลง: ใช้การกรอง Lanczos หรือ Spline
เมื่อสุ่มตัวอย่างขึ้น: ใช้การกรอง Bicubic หรือ Lanczos
สิ่งเหล่านี้ขึ้นอยู่กับเนื้อหาที่ฉันได้อ่านมาหลายปีและจากสิ่งที่ฉันเคยเห็นใช้ในอุตสาหกรรม คำแนะนำอาจแตกต่างกันไปขึ้นอยู่กับประเภทเนื้อหาและพื้นที่ใช้งาน
ทำไมมันถึงสำคัญ?
อาจเป็นที่ถกเถียงกันอยู่ว่าตัวกรองการปรับขนาดไม่สำคัญว่าเมื่อคุณลดขนาดวิดีโอ ที่สำคัญกว่านั้นคือพวกเขามีผลกระทบต่อคุณภาพเมื่อลดอัตราการสุ่มสัญญาณเนื่องจากคุณจำเป็นต้องสร้างข้อมูลที่ไม่มีในตอนแรก
ตัวกรองเหล่านี้ล้วนมีผลกระทบกับขนาดไฟล์เพียงเล็กน้อย คุณไม่ควรกังวลเกี่ยวกับความแตกต่างที่มีขนาดใหญ่
ความจริงคือเช่นเคยเมื่อมีการเข้ารหัสวิดีโอผลที่ได้นั้นขึ้นอยู่กับแหล่งข้อมูล คุณไม่สามารถคาดการณ์ผลลัพธ์ได้เสมอ แต่ดูว่าอะไรดีที่สุดสำหรับคุณ
อัลกอริธึมที่แตกต่างกัน
ตัวอย่างเช่นนี่คือการแก้ไขbicubicเทียบกับbilinear :
เห็นว่าการแก้ไข bicubic ในขอบเรียบ? นั่นเป็นคำสั่งทั่วไปมาก ... แต่คุณสามารถหาภาพรวมของขั้นตอนวิธีการปรับภาพที่นี่
การแก้ไข Bilinearใช้สภาพแวดล้อม 2x2 ของพิกเซลและจากนั้นใช้ค่าเฉลี่ยของพิกเซลเหล่านี้เพื่อแก้ไขค่าใหม่ มันไม่ใช่อัลกอริทึมที่ดีที่สุด แต่ค่อนข้างเร็ว
การแก้ไข Bicubicใช้สภาพแวดล้อมแบบ 4x4 ของพิกเซลชั่งพิกเซลที่อยู่ด้านในสุดให้สูงขึ้นจากนั้นใช้ค่าเฉลี่ยเพื่อแก้ไขค่าใหม่ มัน - เท่าที่ฉันกังวล - เป็นที่นิยมที่สุด
การหาพื้นที่เฉลี่ยใช้การแมปพิกเซลต้นทางและพิกเซลปลายทางโดยเฉลี่ยพิกเซลต้นทางโดยคำนึงถึงเศษส่วนของพิกเซลปลายทางที่ครอบคลุม ตามหน้านี้มันควรจะให้ผลลัพธ์ที่ดีกว่าเมื่อมีการสุ่มตัวอย่าง
การแก้ไขเส้นโค้งและ sincใช้พหุนามที่มีลำดับสูงกว่าและดังนั้นจึงยากที่จะคำนวณได้มากกว่าการแก้ไขแบบกึ่ง bicubic ฉันไม่คิดว่าเวลาประมวลผลที่เพิ่มขึ้นโดยรวมนั้นคุ้มค่ากับการใช้งาน
การสุ่มใหม่ Lanczosเกี่ยวข้องกับตัวกรอง sinc เช่นกัน มันมีราคาแพงกว่าการคำนวณ แต่มักจะอธิบายว่ามีคุณภาพสูงมากและสามารถใช้สำหรับการสุ่มตัวอย่างขึ้นและลง
hqxรวมถึงตัวกรอง 2xSaIใช้สำหรับการปรับขนาดพิกเซล (เช่นตัวเลียนแบบเกม) ฉันไม่คิดว่ามันมีเหตุผลที่ดีที่จะใช้มันในวิดีโอ
การเปรียบเทียบของ Jeff Atwood
มันจะเปิดออก Jeff Atwood ได้เปรียบเทียบของขั้นตอนวิธีการแก้ไขภาพ กฎของหัวแม่มือของเขาคือการใช้การแก้ไข bicubic สำหรับการลดลงของการสุ่มตัวอย่างและการแก้ไข bilinear เมื่อ upampling ที่กล่าวมานี่ไม่ใช่สิ่งที่แนะนำสำหรับการเข้ารหัสวิดีโอโดยทั่วไปและผู้แสดงความคิดเห็นบางคนได้ตั้งข้อสงสัยเกี่ยวกับความเชี่ยวชาญของ Atwood ในสาขานี้
อย่างไรก็ตามเขายังพูดถึงว่า ...
การลดขนาดรูปภาพเป็นการทำงานที่ปลอดภัยและมีเหตุผลอย่างสมบูรณ์ คุณเพียงแค่ลดความแม่นยำและความละเอียดลงโดยการทิ้งข้อมูล ทำให้ภาพมีขนาดเล็กตามที่คุณต้องการและคุณมีความเที่ยงตรงสมบูรณ์ - ภายในขอบเขตของจำนวนพิกเซลที่คุณอนุญาต คุณจะได้รับผลลัพธ์ที่ดีไม่ว่าคุณจะเลือกอัลกอริทึมแบบใดก็ตาม (ดียกเว้นว่าคุณเลือกอัลกอริธึม Pixel Resize หรือ Neighbor Neighbor ที่ใกล้ที่สุด)
ตัวอย่างอื่น ๆ
ต่อไปนี้เป็นตัวอย่างเพิ่มเติมของอัลกอริธึมการแก้ไขภาพรวมถึงขั้นตอนที่กล่าวถึงข้างต้น
ฉันยังพบเอกสาร (กฎของฉาก) จากฉากการเข้ารหัสวิดีโอที่แบนตัวกรอง bicubic สำหรับการสุ่มตัวอย่างอย่างชัดเจน แต่พวกเขารับรองการกลับมาใช้งาน Lanczos, Spline หรือ "Blackman" แทน