एक ही रिज़ॉल्यूशन और फ्रैमरेट के लिए बिटरेट कैसे भिन्न होता है?


15

वीडियो की गुणवत्ता के बारे में पढ़ते हुए मैंने पाया कि यह रिज़ॉल्यूशन, फ्रेम प्रति सेकंड और बिटरेट पर निर्भर करता है, जो वीडियो के आकार को तय करता है।

मेरा सवाल यह है कि बिटरेट की गणना कैसे की जाती है और यह कैसे भिन्न हो सकती है।

मान लीजिए कि एक वीडियो में 360x240 रिज़ॉल्यूशन है। इसमें प्रति फ्रेम 86400 पिक्सेल लगते हैं। फ्रेम दर 30 हर्ट्ज है। तो वीडियो 86400 × 30 = 2592000 पिक्सेल प्रति सेकंड लेता है।

तो मान लें कि 1 पिक्सेल डेटा का 3 बाइट्स (24 बिट्स) है: हमारे पास 2592000 × 24 बिट्स प्रति सेकंड वीडियो (62208000 बिट्स) है, जो कि 62208 kBits है (यह सही नहीं लगता है, शायद मेरी गणना में कुछ समस्या है)।

लेकिन यह अलग कैसे हो सकता है और गुणवत्ता में अंतर कैसे करता है?


यदि वीडियो बिटमैप छवियों का एक क्रम था। आपका गणित png / jpg छवि फ़ाइलों के लिए पहले से ही बंद है।
डैनियल बेक

दो मौजूदा जवाब वीडियो संपीड़न के बारे में मुख्य विशेषता पर जोर नहीं देते हैं: सबसे (यदि सभी नहीं) सभी वीडियो कोडेक हानिपूर्ण संपीड़न को रोजगार देते हैं । अर्थात्, जब कच्चे वीडियो को संपीड़ित और एन्कोड किया जाता है, तो कुछ चित्र जानकारी को छोड़ दिया जाता है। छूट गई और खोई गई छवि जानकारी / विवरण की मात्रा या डिग्री एक गुणवत्ता कारक द्वारा निर्धारित की जाती है । ऑडियो संपीड़न के लिए, हानिपूर्ण और दोषरहित संपीड़न तकनीक दोनों हैं।
सायं

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

@sawdust आप सही हैं, यह कुछ हद तक जेपीईजी भाग में दफन था। मैंने थोड़ा और विवरण जोड़ा।
slhck

जवाबों:


21

आपने जो गणना की है वह कच्चे, असम्पीडित वीडियो के लिए बिटरेट है। आप आमतौर पर शोध या अन्य विशेष अनुप्रयोगों को छोड़कर नहीं पाएंगे। यहां तक ​​कि ब्रॉडकास्टर्स संपीड़ित वीडियो का उपयोग करते हैं, यद्यपि आपके सामान्य YouTube वीडियो की तुलना में बहुत अधिक बिटरेट पर।

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

यह समझने के लिए कि यह क्यों है, आपको वीडियो का उपयोग करने वाले दो मुख्य सिद्धांतों से अवगत होने की आवश्यकता है। इन्हें "स्थानिक" और "लौकिक अतिरेक" कहा जाता है।

स्थानिक अतिरेक

प्राकृतिक सामग्री दिखाने वाली छवियों में स्थानिक अतिरेक मौजूद है। यही कारण है कि जेपीईजी इतनी अच्छी तरह से काम करता है - यह छवि डेटा को संपीड़ित करता है क्योंकि पिक्सेल के ब्लॉक एक साथ कोडित किए जा सकते हैं। उदाहरण के लिए, ये 8 × 8 पिक्सेल हैं। इन्हें "मैक्रोब्लॉक्स" कहा जाता है।

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

अब आप आगे भी जा सकते हैं और मैक्रोब्लॉक से मैक्रोब्लॉक की भविष्यवाणी कर सकते हैं जो पहले एक ही छवि में एन्कोडेड हैं। इसे इंट्रा प्रिडिक्शन कहा जाता है । उदाहरण के लिए, एक भूरे रंग की दीवार का एक हिस्सा पहले से ही फ्रेम के ऊपरी बाएं कोने में एन्कोड किया गया था, इसलिए हम उसी फ्रेम में फिर से मैक्रोब्लॉक का उपयोग कर सकते हैं, उदाहरण के लिए मैक्रोबलॉक इसके ठीक बगल में। हम केवल उस अंतर को संग्रहित करेंगे जो पिछले एक के पास था और डेटा को बचाएगा। इस तरह, हमें दो मैक्रोब्लॉक को एनकोड करना नहीं है, जो एक-दूसरे के समान हैं।

एक ही छवि आकार के लिए बिटरेट क्यों बदलता है? खैर, कुछ छवियों को दूसरों की तुलना में सांकेतिक शब्दों में बदलना आसान है। उच्च स्थानिक गतिविधि, जितना अधिक आप वास्तव में सांकेतिक शब्दों में बदलना है। चिकनी बनावट विस्तृत लोगों की तुलना में कम बिट्स लेती है। वही इंट्रा भविष्यवाणी के लिए जाता है: एक ग्रे दीवार का एक फ्रेम आपको सभी दूसरों की भविष्यवाणी करने के लिए एक मैक्रोब्लॉक का उपयोग करने की अनुमति देगा, जबकि बहने वाले पानी का एक फ्रेम भी अच्छी तरह से काम नहीं कर सकता है।

लौकिक अतिरेक

यह मौजूद है क्योंकि किसी अन्य फ्रेम का अनुसरण करने वाला फ्रेम संभवतः अपने पूर्ववर्ती के समान है। ज्यादातर, बस एक छोटा सा परिवर्तन होता है, और यह पूरी तरह से इसे सांकेतिक शब्दों में बदलना नहीं होगा। वीडियो एन्कोडर जो करते हैं, वह दो बाद के फ़्रेमों के बीच अंतर को बताता है, ठीक उसी तरह जैसे वे macroblocks के लिए कर सकते हैं।

गति क्षतिपूर्ति पर विकिपीडिया के लेख से एक उदाहरण लेते हुए , आइए बताते हैं कि यह आपका मूल ढांचा है:

फिर अगले फ्रेम का अंतर सिर्फ इतना है:

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

  • I- फ्रेम (उर्फ कीफ्रेम) - ये पूरी तरह से एन्कोडेड हैं
  • पी-फ्रेम - ये वे हैं जो बस अंतर को स्टोर करते हैं

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


+1 - यही मेरा मतलब था, लेकिन मेरा कम्प्रेशन अल्गोरिथम थोड़ा बाहर निकल गया। :)
मार्टी फ्राइड

+1 यह वह सब है जिसकी मुझे आवश्यकता थी। विशेष रूप से गति मुआवजा। धन्यवाद
विन्सेन्ट मैथ्यू '

6

मेरा मानना ​​है कि आपका गणित वास्तव में सही है, लेकिन इसके लिए थोड़ा अधिक है; संपीड़न यहाँ गायब लिंक है।

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

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

संपादित करें: जोड़ना भूल गया, लेकिन संपीड़न विधि को लागू करने वाले भाग कोडेक हैं; मैंने देखा कि आपने अपनी पोस्ट में इसे टैग के रूप में उपयोग किया है।


3
प्लस तथ्य यह है कि वीडियो संपीड़न आमतौर पर पिक्सेल-आधारित नहीं होता है, लेकिन पिक्सेल के ब्लॉक पर काम करता है, जिसे मैक्रोब्लॉक्स कहा जाता है
'18
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.