यह पता लगाने के लिए दो वीडियो फ़ाइलों की तुलना करें कि किसमें सबसे अच्छी गुणवत्ता है


30

मान लीजिए कि मेरे पास समान वीडियो सामग्री दो (या अधिक) फ़ाइलों में एन्कोडेड है। मैं उन पर कुछ उपयोगिता चलाना चाहता हूं, जो गुणवत्ता के आधार पर बताई गई है कि कौन सी फाइल "सर्वश्रेष्ठ" है। "ग्राउंडली" का अर्थ है कि मैं ऐसी रिपोर्ट प्राप्त करना चाहता हूँ जो विभिन्न पहलुओं (जैसे वीडियो रिज़ॉल्यूशन, वीडियो बिटरेट, ऑडियो सैंपलिंग दर, ऑडियो बिटरेट, इत्यादि) की तुलना एक-एक करके करती है, और फिर कुछ अभिन्न अंक जो सभी के लिए खाते हैं। उनमें से।

यह कार्यक्षमता के बारे में है, लेकिन उस उपयोगिता के लिए वास्तव में प्रयोग करने योग्य होने के लिए, यह ओपन-सोर्स और कमांड-लाइन होना चाहिए।


कुछ संबंधित जानकारी नहीं है (वास्तव में उपरोक्त मानदंडों के अनुसार एक समाधान) एकत्रित करने के लिए, वहाँ repo.or.cz/w/mplayer.git/blob/HEAD:/TOOLS/psnr-video.sh यहाँ सामान "एक पेशेवर की तरह" है: संपीड़न वाओ / वीडियो / quality_measure /… । लेकिन यह ओपन-सोर्स नहीं है, और "मूल" और "कॉपी" की तुलना करता है, न कि केवल 2 निष्पक्ष फाइलें।
pfalcon

संबंधित प्रश्न: stackoverflow.com/questions/3518417/…
pfalcon

जवाबों:


88

मैं वीडियो गुणवत्ता अनुसंधान में काम करता हूं, और आपके प्रश्न का सरल उत्तर देना कठिन है। आप जो चाहते हैं वह एक ऐसा कार्यक्रम है जो आपको एक वीडियो का माध्य ओपिनियन स्कोर (MOS) प्रदान करता है, अर्थात 1 और 5 के बीच की संख्या, या 0 और 100 के बीच, जो कि एक इंसान के अनुसार गुणवत्ता से मेल खाती है।

आप केवल बिटरेट / रिज़ॉल्यूशन / आदि की तुलना क्यों नहीं कर सकते।

बस वीडियो रिज़ॉल्यूशन की तुलना करने से गुणवत्ता के बारे में कुछ भी नहीं बताया जाएगा। वास्तव में, यह पूरी तरह से भ्रामक हो सकता है। 700MB साइज में 1080p मूवी चीर, 700MB पर 720p रिप से भी बदतर दिख सकती है, क्योंकि पूर्व के लिए, बिटरेट बहुत कम है, जो सभी प्रकार की संपीड़न कलाकृतियों का परिचय देता है।

समान फ्रेम आकार में बिटरेट की तुलना करने के लिए समान है, क्योंकि विभिन्न एन्कोडर वास्तव में कम बिटरेट या इसके विपरीत में बेहतर गुणवत्ता प्रदान कर सकते हैं। उदाहरण के लिए, XviD के साथ निर्मित एक 720p 700MB रिप x264 के साथ निर्मित 700MB चीर से भी बदतर दिखाई देगा, क्योंकि उत्तरार्द्ध अधिक कुशल है।

आपको यह भी परिभाषित करना होगा कि एक अंतिम "इंटीग्रल स्कोर" (एमओएस) व्यक्तिगत गुणवत्ता कारकों से कैसे बना है। यह बहुत सी चीज़ों पर निर्भर करता है, जिनमें शामिल हैं:

  • आपके द्वारा तुलना किए जा रहे वीडियो (कार्टून, फिल्में, समाचार आदि)
  • उनकी लंबाई
  • उनके दर्शकों को देखने
  • उनके मूल फ्रेम का आकार
  • उनके मूल "गुणवत्ता" से पहले वे एन्कोडेड थे

हम इस बारे में भी बात नहीं कर रहे हैं कि मानव वीडियो को कैसे देखेगा। मान लेते हैं कि आपका कोई दोस्त है जो फिल्में देख रहा है क्योंकि वह कुरकुरा विवरण और उच्च गति के प्रस्ताव का आनंद लेता है। वे बहुत अधिक महत्वपूर्ण होंगे जब एक दोस्त की तुलना में कम गुणवत्ता वाले चीर को देखते हैं जो केवल अपनी सामग्री के लिए फिल्में देख रहे हैं । वे शायद गुणवत्ता की इतनी परवाह नहीं करते, जब तक कि फिल्म मज़ेदार या मनोरंजक नहीं होती।

वीडियो गुणवत्ता मैट्रिक्स के विभिन्न प्रकार हैं!

आज मैं आपको वीडियो की गुणवत्ता के बुनियादी मूल्यांकन के लिए सबसे अधिक इस्तेमाल होने वाली चीजों की एक सूची देता हूं। कई वीडियो गुणवत्ता मीट्रिक मौजूद हैं, जिन्हें गुणवत्ता निर्धारित करने के लिए किस प्रकार की जानकारी का उपयोग किया जाता है, इसके अनुसार वर्गीकृत किया जा सकता है। सिद्धांत रूप में और बहुत ही सरलता से, आप निम्नलिखित में अंतर करते हैं:

  • नो-रेफरेंस मेट्रिक्स - उनके पास इनपुट और आउटपुट क्वालिटी स्कोर के रूप में सिर्फ एक वीडियो है। आपके मामले में आप एक नो-रेफरेंस मेट्रिक की तलाश में हैं , क्योंकि आपके पास अक्सर मूल वीडियो भी नहीं होता है। ऐसा मीट्रिक एक वीडियो लेगा और एक गुणवत्ता स्कोर का उत्पादन करेगा। यहां उन समस्याओं के कुछ उदाहरण दिए गए हैं जो एक एनआर मीट्रिक का पता लगाएगा (जैसे धुंधला)।

  • पूर्ण-संदर्भ मीट्रिक - उनके पास दो इनपुट होते हैं, एक मूल इनपुट वीडियो और दूसरा एन्कोडेड वीडियो होता है। उदाहरण के लिए, आप एक डीवीडी मूवी ले सकते हैं, फिर उसमें से दो रिप्स बना सकते हैं, और मूल डीवीडी मूवी (डिस्क पर एमपीईजी -2 वीडियो) और आपके रिप्स के बीच गुणवत्ता के नुकसान का अनुमान लगाने के लिए एक पूर्ण-संदर्भ मीट्रिक का उपयोग करें। यह गणना करने में लंबा समय लेगा, लेकिन यह अधिक सटीक है।

उपरोक्त मीट्रिक वीडियो कोडिंग गुणवत्ता को देखते हैं, लेकिन ऐसे मैट्रिक्स भी हैं जो वीडियो को स्ट्रीमिंग करते समय प्रारंभिक लोडिंग समय और स्टॉलिंग इवेंट जैसी समस्याओं को शामिल करते हैं (जैसे ITU-T P.1203 )।

मैं किस सॉफ्टवेयर का उपयोग कर सकता हूं?

यहां कुछ ऐसे रेडी-टू-यूज़ टूल्स की सूची दी गई है, जिनका उपयोग आप कुछ मेट्रिक्स (कुछ केवल विंडोज के लिए) का परीक्षण करने के लिए कर सकते हैं:

अब क्या मेट्रिक्स हैं?

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 का उपयोग कर सकते हैं । इन उपकरणों में एमएस-एसएसआईएम भी शामिल है, जो एसएसआईएम की तुलना में बेहतर (यानी, अधिक प्रतिनिधि) परिणाम देता है, साथ ही कुछ अन्य डेरिवेटिव भी।

परिणाम PSNR के समान होना चाहिए। फिर, आपको काम करने के लिए एक संसाधित वीडियो के संदर्भ की तुलना करने की आवश्यकता है, और दोनों वीडियो समान आकार के होने चाहिए।

VMAF

नेटफ्लिक्स द्वारा वीडियो मल्टी-मेथड असेसमेंट फ्यूजन कुछ मौजूदा मैट्रिक्स के आधार पर वीडियो की गुणवत्ता की गणना करने के लिए उपकरणों का एक सेट है, जो कि मशीन लर्निंग के तरीकों से 0 और 100 के बीच एक अंतिम स्कोर में जुड़े हुए हैं। नेटफ्लिक्स ने पूरी बात यहां बताई है :

[VMAF] कई प्राथमिक गुणवत्ता मैट्रिक्स को मिलाकर व्यक्तिपरक गुणवत्ता की भविष्यवाणी करता है। मूल तर्क यह है कि प्रत्येक प्राथमिक मीट्रिक के पास स्रोत सामग्री विशेषताओं, कलाकृतियों के प्रकार और विरूपण की डिग्री के संबंध में अपनी ताकत और कमजोरियां हो सकती हैं। मशीन-लर्निंग एल्गोरिथ्म का उपयोग करते हुए प्राथमिक मीट्रिक में 'फ्यूजिंग' द्वारा - हमारे मामले में, एक सपोर्ट वेक्टर मशीन (SVM) रेजिस्टर - जो प्रत्येक प्राथमिक मीट्रिक को भार प्रदान करता है, अंतिम मीट्रिक व्यक्तिगत मीट्रिक की सभी शक्तियों को संरक्षित कर सकता है। , और अधिक सटीक अंतिम स्कोर वितरित करें।

आप VMAF स्कोर की गणना करने के ffmpegलिए भी उपयोग कर सकते हैं ।

VQM

वीडियो की गुणवत्ता मीट्रिक में मान्य किया गया था वीडियो क्वालिटी विशेषज्ञ समूह (VQEG) और एक बहुत अच्छा पूर्ण संदर्भ एल्गोरिथ्म है। आप मुफ्त में वीक्यूएम डाउनलोड कर सकते हैं या एमएसयू से कार्यान्वयन का उपयोग कर सकते हैं।

जब आप पंजीकरण करते हैं और डाउनलोड करते हैं, तो आप एनटीआईए जनरल मॉडल या वीडियो क्वालिटी मॉडल को चर फ्रेम विलंब के साथ उपयोग करना चाहते हैं ।

अन्य मेट्रिक्स

  • PEVQ ITU-T J.246 के तहत एक मानकीकृत पूर्ण-संदर्भ मीट्रिक है। यह मल्टीमीडिया संकेतों के उद्देश्य से है, लेकिन एचडी वीडियो नहीं।
  • VQuad-HD ITU-T J.341 के रूप में मानकीकृत एक और पूर्ण-संदर्भ मीट्रिक है। चूंकि यह नया है, एचडी वीडियो के लिए इसका बेहतर अनुकूल है।

वे दोनों व्यावसायिक समाधान हैं और आपको उनके लिए एक सॉफ्टवेयर नहीं मिलेगा।

नो-रेफरेंस मेट्रिक्स पर कुछ ITU मानक भी हैं, जैसे ITU-T P.1201 और ITU-T P.1202 , जो IPTV स्ट्रीमिंग के लिए बिटस्ट्रीम के मापदंडों के साथ काम करते हैं। ITU-T P.1203 का उपयोग अनुकूली स्ट्रीमिंग मामलों के लिए किया जा सकता है।


सारांश

यदि आप केवल साधारण उद्देश्यपूर्ण मापदण्ड की तुलना करना चाहते हैं जैसे:

  • ढांचे का आकर
  • बिट दर
  • चित्र हर क्षण में
  • वीडियो संकल्प

... आपको एक सरल कॉल ffmpeg -iआपको शुरुआत में आवश्यक सभी विवरण देना चाहिए। -vstatsविकल्प पर भी एक नजर । फिर आप इसे एक स्प्रेडशीट में सारांशित कर सकते हैं। ध्यान दें कि जब आप वीडियो को एन्कोड करते हैं, x264उदाहरण के लिए यदि आवश्यक हो तो सीधे PSNR की तरह सामान को एक फ़ाइल में लॉग इन करेंगे, ताकि आप बाद में इन मानों का उपयोग कर सकें।

इन मानदंडों को कैसे तौलना चाहिए, आपको शायद बिट दर पर जोर देना चाहिए - लेकिन केवल अगर आप जानते हैं कि कोडेक समान है। आप आमतौर पर कह सकते हैं कि जब दोनों वीडियो x264 का उपयोग करते हैं, तो उच्च बिटरेट वाला बेहतर होता है। आम तौर पर और भी अधिक, आपको कम रिज़ॉल्यूशन का चयन करना चाहिए जब आपके पास एक ही बिटरेट के साथ दो वीडियो हों, क्योंकि उतार-चढ़ाव के कारण गिरावट कम बिटरेट के कारण गिरावट के रूप में खराब नहीं होती है।

जब तक आप सामग्री और व्यक्तिगत एन्कोडिंग सेटिंग्स के बारे में अधिक नहीं जानते हैं, तब तक उनके बिट दर के अनुसार विभिन्न कोडेक्स की तुलना करना संभव नहीं है । फ़्रेम दर बहुत व्यक्तिपरक चीज़ है और इसे आपके माप में गिना जाना चाहिए अगर यह 25 हर्ट्ज से कम है।

संक्षेप में कहें, तो बिटरेट पर जोर दें यदि आपके पास केवल यही चीज है। अपनी आँखों का उपयोग करना न भूलें, :)


सबसे पहले, सवाल के मूल लेखक के रूप में, मुझे पहले टिप्पणी नहीं करने के लिए खेद है। पोस्ट वास्तव में भयानक और अच्छी तरह से सराहना की है। दुर्भाग्य से, मैं इसे अपने मूल प्रश्न के उत्तर के रूप में स्वीकार नहीं कर सकता। कारण यह है: मैंने जानबूझकर यहां सवाल पोस्ट किया और स्टैकऑवरफ्लो पर नहीं, क्योंकि मुझे मौजूदा, रेडी-टू-यूज टूल का सुझाव चाहिए था। यह सवाल करें कि इस तरह के टूल को कैसे लिखना है, आपका उत्तर पूर्ण विजेता होगा। लेकिन क्षमा करें, मैं स्क्रैच से अपनी जरूरत की हर चीज नहीं लिख सकता, इसलिए उपयोगकर्ता मुझ में सवाल पूछें और जवाब की उम्मीद करें (शायद कल या आज नहीं, शायद भविष्य में ;-)
pfalcon

1
महान, जानकारीपूर्ण उत्तर। हालांकि इसका सीधा जवाब नहीं है, फिर भी मुझे यह देखना पसंद है कि लोग ऐसी सूचनात्मक सामग्री लिखने के लिए अपना समय लेते हैं। +1
सुपरडक

1

मैं किसी भी उपकरण से अनभिज्ञ हूं जो आपको अंतिम सिफारिश या स्कोर देगा, लेकिन FFmpeg का उपयोग करके , आप प्रश्न में सूचीबद्ध सभी विवरणों को आउटपुट कर सकते हैं।

कमांड लाइन पर, ffmpeg -i वीडियो से सूचना को सूचीबद्ध करेगा। वहां से, आप सूचना को पार्स करने के लिए एक स्क्रिप्ट लिख सकते हैं और इसे उपयुक्त रूप में देख सकते हैं।


धन्यवाद, हाँ, यह वही है जो मैं कुछ घंटों के लिए तय करने से पहले कर रहा था कि क्या कुछ बेहतर, "जादू" टूल मौजूद है; ;-)
pfalcon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.