เปรียบเทียบไฟล์วิดีโอสองไฟล์เพื่อค้นหาว่าไฟล์ใดมีคุณภาพดีที่สุด


30

สมมติว่าฉันมีวัสดุวิดีโอเดียวกันที่เข้ารหัสในสองไฟล์ (หรือมากกว่า) ฉันต้องการเรียกใช้ยูทิลิตี้บางอย่างซึ่งระบุอย่างชัดเจนว่าไฟล์ใดมีคุณภาพดีที่สุด "Groundly" หมายความว่าฉันต้องการรับรายงานซึ่งเปรียบเทียบแง่มุมที่แตกต่างกัน (เช่นความละเอียดวิดีโอ, บิตเรตวิดีโอ, อัตราการสุ่มตัวอย่างเสียง, บิตเรตเสียง, ฯลฯ ) หนึ่งต่อหนึ่งและจากนั้นคะแนนอินทิกรัลทั้งหมด ของพวกเขา.

นั่นเป็นเรื่องเกี่ยวกับการทำงาน แต่สำหรับยูทิลิตี้นั้นจะสามารถใช้งานได้จริงมันควรเป็นโอเพ่นซอร์สและบรรทัดคำสั่ง


ในการเริ่มรวบรวมข้อมูลที่เกี่ยวข้อง (ไม่ใช่วิธีแก้ปัญหาตามเกณฑ์ด้านบน) มีrepo.or.cz/w/mplayer.git/blob/HEAD:/TOOLS/psnr-video.sh นี่คือ "สิ่งที่เป็นมืออาชีพ": การบีบอัด .ru / วิดีโอ / quality_measure / ... แต่มันไม่ใช่โอเพ่นซอร์สและเปรียบเทียบ "ต้นฉบับ" และ "คัดลอก" ไม่ใช่แค่ 2 ไฟล์ที่ไม่มีอคติ
pfalcon

คำถามที่เกี่ยวข้อง: stackoverflow.com/questions/3518417/…
pfalcon

คำตอบ:


88

ฉันทำงานวิจัยคุณภาพวิดีโอและยากที่จะตอบคำถามของคุณ สิ่งที่คุณต้องการคือโปรแกรมที่ให้คะแนนความคิดเห็นเฉลี่ย (MOS) ของวิดีโอเช่นตัวเลขระหว่าง 1 ถึง 5 หรือระหว่าง 0 ถึง 100 ซึ่งสอดคล้องกับคุณภาพตามที่มนุษย์รับรู้

ทำไมคุณไม่สามารถเปรียบเทียบบิตเรต / ความละเอียด / ฯลฯ ได้

เพียงเปรียบเทียบความละเอียดของวิดีโอจะไม่บอกอะไรเกี่ยวกับคุณภาพ ในความเป็นจริงมันอาจทำให้เข้าใจผิดอย่างสมบูรณ์ การตัดภาพยนตร์ 1080p ที่ขนาด 700MB อาจดูแย่กว่าความคมชัด 720p ที่ 700MB เนื่องจากในอดีตบิตเรตต่ำเกินไปซึ่งแนะนำการบีบอัดทุกชนิด

การเปรียบเทียบบิตเรตที่ขนาดเฟรมที่ใกล้เคียงกันเนื่องจากตัวเข้ารหัสที่ต่างกันสามารถให้คุณภาพที่ดีกว่าที่บิตเรตน้อยกว่าหรือในทางกลับกัน ตัวอย่างเช่นการฉีกแบบ 720p 700MB ที่ผลิตด้วย XviD จะดูแย่กว่าการฉีกแบบ 700MB ที่สร้างด้วย x264 เพราะหลังนั้นมีประสิทธิภาพมากกว่า

คุณจะต้องกำหนดว่า "คะแนนรวม" สุดท้าย (MOS) นั้นประกอบด้วยองค์ประกอบคุณภาพแต่ละประการอย่างไร นี้หนักขึ้นอยู่กับหลายสิ่งหลายอย่างรวมถึง แต่ไม่ จำกัด เพียง:

  • ประเภทของวิดีโอที่คุณกำลังเปรียบเทียบ (การ์ตูนภาพยนตร์ข่าว ฯลฯ )
  • ความยาวของพวกเขา
  • ผู้ชมกำลังดู
  • ขนาดเฟรมดั้งเดิมของมัน
  • "คุณภาพ" ดั้งเดิมของพวกเขาก่อนที่จะถูกเข้ารหัส

เราไม่ได้พูดถึงว่ามนุษย์จะรับรู้วิดีโออย่างไร สมมติว่าคุณมีเพื่อนที่กำลังดูภาพยนตร์อยู่เพราะเขาสนุกกับรายละเอียดที่คมชัดและความละเอียดภาพเคลื่อนไหวสูง พวกเขาจะมีความสำคัญมากขึ้นเมื่อเห็นฉีกที่มีคุณภาพต่ำกว่าเพื่อนที่เป็นเพียงการชมภาพยนตร์สำหรับเนื้อหาของพวกเขา พวกเขาอาจไม่สนใจคุณภาพมากนักตราบใดที่หนังตลกหรือสนุกสนาน

การวัดคุณภาพวิดีโอมีหลายประเภท!

ให้ฉันแสดงรายการสิ่งที่ฉันคิดว่าใช้บ่อยที่สุดสำหรับการประเมินคุณภาพวิดีโอขั้นพื้นฐานวันนี้ มีการวัดคุณภาพวิดีโอหลายประการซึ่งสามารถจำแนกได้ตามประเภทของข้อมูลที่ใช้ในการกำหนดคุณภาพ ในหลักการและพูดง่าย ๆ คุณแยกแยะระหว่างสิ่งต่อไปนี้

  • ตัวชี้วัดที่ไม่มีการอ้างอิง - พวกเขามีเพียงหนึ่งวิดีโอในการป้อนข้อมูลและให้คะแนนคุณภาพ ในกรณีของคุณคุณกำลังมองหาตัวชี้วัดที่ไม่มีการอ้างอิงเนื่องจากบ่อยครั้งที่คุณไม่มีวิดีโอต้นฉบับ การวัดดังกล่าวจะใช้วิดีโอหนึ่งรายการและให้คะแนนคุณภาพหนึ่งคะแนน นี่คือตัวอย่างของปัญหาที่ตัวชี้วัด NR จะตรวจจับ (เช่นการเบลอ)

  • ตัวชี้วัดที่อ้างอิงเต็ม - พวกเขามีสองอินพุตหนึ่งคนเป็นวิดีโออินพุตต้นฉบับและอื่น ๆ ที่เป็นวิดีโอที่เข้ารหัส ตัวอย่างเช่นคุณสามารถนำภาพยนตร์ DVD จากนั้นสร้างสอง rips จากนั้นและใช้ตัวอ้างอิงแบบเต็มเพื่อประเมินการสูญเสียคุณภาพระหว่างภาพยนตร์ดีวีดีดั้งเดิม (เช่นวิดีโอ MPEG-2 บนแผ่นดิสก์) และ rips ของคุณ การคำนวณนี้ใช้เวลานาน แต่ก็แม่นยำกว่า

ตัวชี้วัดด้านบนดูคุณภาพการเข้ารหัสวิดีโอ แต่ยังมีตัวชี้วัดที่รวมปัญหาเช่นเวลาโหลดเริ่มต้นและเหตุการณ์การหยุดชะงักเมื่อสตรีมวิดีโอ (เช่นITU-T P.1203 )

ฉันสามารถใช้ซอฟต์แวร์ใดได้บ้าง

นี่คือรายการเครื่องมือพร้อมใช้ที่คุณสามารถใช้เพื่อทดสอบตัวชี้วัดบางตัว (บางตัวใช้สำหรับ Windows เท่านั้น):

ตอนนี้มีตัวชี้วัดอะไรบ้าง

PSNR, PSNR-HVS และ PSNR-HVS-M

สำหรับผู้เริ่มต้นPSNR (อัตราส่วนสัญญาณต่อเสียงรบกวน) เป็นวิธีที่ใช้งานง่าย แต่ค่อนข้างแย่ในการประเมินคุณภาพวิดีโอ มันใช้งานได้ค่อนข้างดีสำหรับการใช้งานส่วนใหญ่ แต่ก็ไม่ได้ให้การประเมินที่ดีว่ามนุษย์จะรับรู้คุณภาพได้อย่างไร

สามารถคำนวณ PSNR แบบเฟรมต่อเฟรมจากนั้นคุณจะหาค่าเฉลี่ย PSNR ของลำดับวิดีโอทั้งหมดเพื่อให้ได้คะแนนสุดท้าย PSNR ที่สูงขึ้นนั้นดีกว่า

PSNR-HVS และ PSNR-HVS-M เป็นส่วนเสริมของ PSNR ที่พยายามเลียนแบบการรับรู้ภาพของมนุษย์ดังนั้นจึงควรแม่นยำยิ่งขึ้น VQMTและMSUสามารถคำนวณ PSNR, PSNR-HVS และ PSNR-HVS-M ระหว่างสองวิดีโอ

SSIM, MS-SSIM

ความคล้ายคลึงกันของโครงสร้าง (SSIM) นั้นง่ายต่อการคำนวณเช่นเดียวกับ PSNR และให้ผลลัพธ์ที่แม่นยำยิ่งขึ้น แต่ยังคงอยู่บนพื้นฐานแบบทีละเฟรม คุณจะพบการใช้งานบางอย่างภายใต้การเชื่อมโยงวิกิพีเดียหรือคุณสามารถใช้VQMTหรือMSU เครื่องมือเหล่านี้ยังรวมถึง MS-SSIM ซึ่งให้ผลลัพธ์ที่ดีกว่า (เช่นตัวแทนมากขึ้น) กว่า SSIM เช่นเดียวกับอนุพันธ์อื่น ๆ

ผลลัพธ์ควรคล้ายกับ PSNR อีกครั้งคุณต้องเปรียบเทียบการอ้างอิงกับวิดีโอที่ประมวลผลเพื่อให้สามารถใช้งานได้และวิดีโอทั้งสองควรมีขนาดเท่ากัน

VMAF

Video Fusion Multi-Method Assessmentโดย Netflix เป็นชุดเครื่องมือในการคำนวณคุณภาพวิดีโอตามเมตริกที่มีอยู่แล้วซึ่งหลอมรวมโดยวิธีการเรียนรู้ของเครื่องเป็นคะแนนสุดท้ายระหว่าง 0 และ 100 Netflix ได้อธิบายสิ่งต่าง ๆ ทั้งหมดที่นี่ :

[VMAF] ทำนายคุณภาพเชิงอัตวิสัยโดยการรวมการวัดคุณภาพเบื้องต้นเข้าด้วยกัน เหตุผลพื้นฐานคือแต่ละเมตริกเบื้องต้นอาจมีจุดแข็งและจุดอ่อนของตัวเองเกี่ยวกับลักษณะเนื้อหาต้นฉบับประเภทของสิ่งประดิษฐ์และระดับความเพี้ยน โดย 'หลอมรวม' ตัวชี้วัดขั้นต้นเป็นตัวชี้วัดสุดท้ายโดยใช้อัลกอริทึมการเรียนรู้เครื่อง - ในกรณีของเรา regressor สนับสนุน Vector Machine (SVM) - ซึ่งกำหนดน้ำหนักให้กับตัวชี้วัดหลักแต่ละตัวชี้วัดสุดท้ายสามารถรักษาจุดแข็งทั้งหมดของแต่ละตัวชี้วัด และมอบคะแนนสุดท้ายให้แม่นยำยิ่งขึ้น

นอกจากนี้คุณยังสามารถใช้ffmpegในการคำนวณคะแนน VMAF

VQM

การวัดคุณภาพวิดีโอได้รับการตรวจสอบในกลุ่มผู้เชี่ยวชาญด้านคุณภาพวิดีโอ (VQEG) และเป็นอัลกอริธึมอ้างอิงเต็มรูปแบบที่ดีมาก คุณสามารถดาวน์โหลด VQM ได้ฟรีหรือใช้งานจาก MSU

เมื่อคุณลงทะเบียนและดาวน์โหลดคุณต้องการใช้รุ่นทั่วไปของ NTIAหรือรุ่นคุณภาพวิดีโอที่มีความล่าช้าเฟรมที่เปลี่ยนแปลงได้

ตัวชี้วัดอื่น ๆ

  • PEVQเป็นตัวชี้วัดอ้างอิงเต็มมาตรฐานภายใต้ ITU-T J.246 มันมีจุดมุ่งหมายที่สัญญาณมัลติมีเดีย แต่ไม่ใช่วิดีโอ HD
  • VQuad-HDเป็นอีกหนึ่งตัวชี้วัดอ้างอิงแบบเต็มมาตรฐานตามมาตรฐาน ITU-T J.341 เนื่องจากเป็นรุ่นที่ใหม่กว่าจึงเหมาะสำหรับวิดีโอ HD

ทั้งคู่เป็นโซลูชันเชิงพาณิชย์และคุณจะไม่พบซอฟต์แวร์สำหรับดาวน์โหลด

นอกจากนี้ยังมีมาตรฐาน ITU บางอย่างในตัวชี้วัดที่ไม่มีการอ้างอิงเช่นITU-T P.1201และITU-T P.1202ซึ่งทำงานกับพารามิเตอร์จากบิตสตรีมสำหรับการสตรีม IPTV ITU-T P.1203สามารถใช้สำหรับกรณีสตรีมแบบปรับตัวได้


สรุป

หากคุณเพียงแค่พยายามเปรียบเทียบเกณฑ์ที่สามารถวัดได้อย่างง่าย ๆ เช่น:

  • ขนาดเฟรม
  • อัตราบิต
  • เฟรมต่อวินาที
  • ความละเอียดวิดีโอ

…การโทรอย่างง่ายffmpeg -iควรให้รายละเอียดทั้งหมดที่คุณต้องการในตอนเริ่มต้น ยังได้ดู-vstatsตัวเลือก จากนั้นคุณสามารถสรุปสิ่งนี้ในสเปรดชีต โปรดทราบว่าเมื่อคุณเข้ารหัสวิดีโอx264ตัวอย่างเช่นจะบันทึกสิ่งต่าง ๆ เช่น PSNR ไปยังไฟล์โดยตรงหากคุณต้องการดังนั้นคุณสามารถใช้ค่าเหล่านี้ได้ในภายหลัง

สำหรับวิธีการชั่งน้ำหนักเกณฑ์เหล่านี้คุณควรเน้นอัตราบิต - แต่ถ้าคุณรู้ว่าตัวแปลงสัญญาณเหมือนกัน โดยทั่วไปคุณสามารถพูดได้ว่าเมื่อวิดีโอทั้งสองใช้ x264 วิดีโอที่มีอัตราบิตสูงกว่าจะดีกว่า โดยทั่วไปยิ่งขึ้นคุณควรเลือกความละเอียดที่ต่ำกว่าเมื่อคุณมีวิดีโอสองรายการที่มีอัตราบิตเดียวกันเนื่องจากการลดขนาดเนื่องจากการลดอัตราการสุ่มสัญญาณไม่เลวเท่าการลดลงเนื่องจากอัตราบิตต่ำ

การเปรียบเทียบตัวแปลงสัญญาณที่แตกต่างกันตามอัตราบิตนั้นเป็นไปไม่ได้นอกจากคุณจะรู้เพิ่มเติมเกี่ยวกับเนื้อหาและการตั้งค่าการเข้ารหัสแต่ละรายการ อัตราเฟรมเป็นสิ่งที่เป็นอัตนัยมากเช่นกันและควรนับเป็นการวัดของคุณหากต่ำกว่า 25 Hz

เพื่อสรุปเน้นหนัก bitrate ถ้ามันเป็นสิ่งเดียวที่คุณมี อย่าลืมใช้สายตาของคุณเช่นกัน :)


ก่อนอื่นในฐานะผู้เขียนคำถามฉันขอโทษที่ไม่ได้แสดงความคิดเห็นก่อน โพสต์นั้นยอดเยี่ยมและน่าชื่นชมมาก น่าเสียดายที่ฉันไม่สามารถยอมรับมันเป็นคำตอบสำหรับคำถามเดิมของฉัน เหตุผลคือ: ฉันจงใจโพสต์คำถามที่นี่และไม่ได้อยู่ใน StackOverflow เพราะฉันต้องการคำแนะนำเกี่ยวกับเครื่องมือที่มีอยู่และพร้อมใช้งาน ไม่ว่าจะเป็นคำถามว่าจะเขียนเครื่องมืออย่างไรคำตอบของคุณจะเป็นผู้ชนะแน่นอน แต่ขอโทษฉันไม่สามารถเขียนทุกสิ่งที่ฉันต้องการตั้งแต่เริ่มต้นดังนั้นให้ผู้ใช้ในฉันถามคำถามและคาดหวังคำตอบ (อาจไม่ใช่เมื่อวานนี้หรือวันนี้อาจจะเป็นในอนาคต ;-)
pfalcon

1
ยอดเยี่ยมตอบกลับข้อมูล แม้ว่าจะไม่ใช่คำตอบโดยตรง แต่ฉันชอบเห็นคนใช้เวลาเขียนเนื้อหาข้อมูลดังกล่าว +1
SuperDuck

1

ฉันไม่ทราบว่าเครื่องมือใดที่จะให้คำแนะนำหรือคะแนนขั้นสุดท้ายแก่คุณ แต่เมื่อใช้FFmpegคุณสามารถส่งออกรายละเอียดทั้งหมดที่คุณระบุไว้ในคำถาม

บนบรรทัดคำสั่ง ffmpeg -i จะแสดงรายการข้อมูลจากวิดีโอ จากตรงนั้นคุณสามารถเขียนสคริปต์เพื่อวิเคราะห์ข้อมูลและกำหนดน้ำหนักตามที่เห็นเหมาะสม


ขอบคุณอ๋อนั่นคือสิ่งที่ฉันกำลังทำอยู่สองสามชั่วโมงก่อนที่จะตัดสินใจถามว่ามีเครื่องมือ "วิเศษ" ที่ดีกว่านี้อยู่หรือไม่
pfalcon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.