வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

முதல் பகுதி: வீடியோ மற்றும் படங்களுடன் வேலை செய்வதற்கான அடிப்படைகள்

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

என்ன? வீடியோ கோடெக் என்பது டிஜிட்டல் வீடியோவை சுருக்க மற்றும்/அல்லது டிகம்ப்ரஸ் செய்யும் மென்பொருள்/வன்பொருள்.

என்ன? அலைவரிசையின் அடிப்படையில் சில வரம்புகள் இருந்தாலும்
தரவு சேமிப்பக இடத்தின் அடிப்படையில், சந்தை அதிக தரம் வாய்ந்த வீடியோவைக் கோருகிறது. கடந்த இடுகையில், 30x24 தெளிவுத்திறனுடன், வினாடிக்கு 480 பிரேம்கள், பிக்சலுக்கு 240 பிட்கள் எனத் தேவையான குறைந்தபட்சத்தை எப்படிக் கணக்கிட்டோம் என்பது உங்களுக்கு நினைவிருக்கிறதா? சுருக்கம் இல்லாமல் 82,944 Mbit/s ஐப் பெற்றோம். பொதுவாக HD/FullHD/4Kஐ தொலைக்காட்சித் திரைகள் மற்றும் இணையத்திற்கு அனுப்புவதற்கான ஒரே வழி சுருக்கம் மட்டுமே. இது எவ்வாறு அடையப்படுகிறது? இப்போது முக்கிய முறைகளைப் பற்றி சுருக்கமாகப் பார்ப்போம்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

EDISON மென்பொருளின் ஆதரவுடன் மொழிபெயர்ப்பு செய்யப்பட்டது.

நாங்கள் நிச்சயதார்த்தம் செய்துள்ளோம் வீடியோ கண்காணிப்பு அமைப்புகளின் ஒருங்கிணைப்புமேலும் நாங்கள் மைக்ரோடோமோகிராஃப் உருவாக்குகிறோம்.

கோடெக் vs கொள்கலன்

புதியவர்கள் செய்யும் பொதுவான தவறு டிஜிட்டல் வீடியோ கோடெக் மற்றும் டிஜிட்டல் வீடியோ கொள்கலனை குழப்புவதாகும். கொள்கலன் என்பது ஒரு குறிப்பிட்ட வடிவம். வீடியோ (மற்றும் ஆடியோ) மெட்டாடேட்டாவைக் கொண்ட ரேப்பர். சுருக்கப்பட்ட வீடியோவை ஒரு கொள்கலன் பேலோட் என்று கருதலாம்.

பொதுவாக, வீடியோ கோப்பின் நீட்டிப்பு அதன் வகை கொள்கலனைக் குறிக்கிறது. எடுத்துக்காட்டாக, video.mp4 கோப்பு ஒரு கொள்கலனாக இருக்கலாம் MPEG-4 பகுதி 14, மற்றும் video.mkv என்ற கோப்பு பெரும்பாலும் இருக்கலாம் matrёshka. கோடெக் மற்றும் கொள்கலன் வடிவமைப்பை முழுமையாக உறுதிப்படுத்த, நீங்கள் பயன்படுத்தலாம் ffmpeg அல்லது MediaInfo.

வரலாற்றின் ஒரு பிட்

நாம் வருவதற்கு முன் எப்படி?, சில பழைய கோடெக்குகளை இன்னும் கொஞ்சம் நன்றாகப் புரிந்துகொள்ள, வரலாற்றில் கொஞ்சம் டைவ் செய்வோம்.

வீடியோ கோடெக் H.261 1990 இல் தோன்றியது (தொழில்நுட்ப ரீதியாக - 1988 இல்) மற்றும் 64 Kbps தரவு பரிமாற்ற விகிதத்தில் செயல்பட உருவாக்கப்பட்டது. இது ஏற்கனவே வண்ண துணை மாதிரிகள், மேக்ரோபிளாக்ஸ் போன்ற யோசனைகளைப் பயன்படுத்தியது. வீடியோ கோடெக் தரநிலை 1995 இல் வெளியிடப்பட்டது H.263, இது 2001 வரை உருவாக்கப்பட்டது.

முதல் பதிப்பு 2003 இல் நிறைவடைந்தது H.264 / AVC என்பது. அதே ஆண்டில், TrueMotion அதன் இலவச நஷ்ட வீடியோ கோடெக்கை வெளியிட்டது VP3. கூகுள் நிறுவனம் 2008 இல் வாங்கியது, வெளியிட்டது VP8 அதே ஆண்டு. டிசம்பர் 2012 இல், கூகுள் வெளியிட்டது VP9, மேலும் இது உலாவி சந்தையில் சுமார் ¾ இல் ஆதரிக்கப்படுகிறது (மொபைல் சாதனங்கள் உட்பட).

AV1 புதிய இலவச மற்றும் திறந்த மூல வீடியோ கோடெக் உருவாக்கியது திறந்த ஊடகத்திற்கான கூட்டணி (AOMedia), இதில் Google, Mozilla, Microsoft, Amazon, Netflix, AMD, ARM, NVidia, Intel மற்றும் Cisco போன்ற மிகவும் பிரபலமான நிறுவனங்கள் அடங்கும். கோடெக்கின் முதல் பதிப்பு, 0.1.0, ஏப்ரல் 7, 2016 அன்று வெளியிடப்பட்டது.

AV1 இன் பிறப்பு

2015 ஆம் ஆண்டின் தொடக்கத்தில், கூகுள் வேலை செய்து கொண்டிருந்தது VP10Xiph (இது Mozilla க்கு சொந்தமானது) வேலை செய்து கொண்டிருந்தது டாலா, மற்றும் சிஸ்கோ தனது சொந்த இலவச வீடியோ கோடெக்கை உருவாக்கியது தோர்.

பின்னர் MPEG LA முதலில் ஆண்டு வரம்புகளை அறிவித்தது HEVC (H.265) மற்றும் H.8ஐ விட 264 மடங்கு அதிகமான கட்டணம், ஆனால் அவர்கள் விரைவில் விதிகளை மீண்டும் மாற்றினர்:

ஆண்டு வரம்பு இல்லை,
உள்ளடக்க கட்டணம் (வருவாயில் 0,5%) மற்றும்
யூனிட் கட்டணம் H.10 ஐ விட 264 மடங்கு அதிகம்.

திறந்த ஊடகத்திற்கான கூட்டணி பல்வேறு துறைகளைச் சேர்ந்த நிறுவனங்களால் உருவாக்கப்பட்டது: உபகரண உற்பத்தியாளர்கள் (Intel, AMD, ARM, Nvidia, Cisco), உள்ளடக்க வழங்குநர்கள் (Google, Netflix, Amazon), உலாவி உருவாக்குபவர்கள் (Google, Mozilla) மற்றும் பலர்.

நிறுவனங்களுக்கு பொதுவான குறிக்கோள் இருந்தது - ராயல்டி இல்லாத வீடியோ கோடெக். பின்னர் தோன்றும் AV1 மிகவும் எளிமையான காப்புரிமை உரிமத்துடன். டிமோதி பி. டெர்ரிபெர்ரி ஒரு அற்புதமான விளக்கக்காட்சியை வழங்கினார், இது தற்போதைய AV1 கருத்து மற்றும் அதன் உரிம மாதிரியின் தோற்றம் ஆனது.

நீங்கள் AV1 கோடெக்கை உலாவி மூலம் பகுப்பாய்வு செய்யலாம் என்பதை அறிந்து நீங்கள் ஆச்சரியப்படுவீர்கள் (ஆர்வமுள்ளவர்கள் செல்லலாம் aomanalyzer.org).

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

யுனிவர்சல் கோடெக்

உலகளாவிய வீடியோ கோடெக்கின் அடிப்படையிலான முக்கிய வழிமுறைகளைப் பார்ப்போம். இந்தக் கருத்துகளில் பெரும்பாலானவை பயனுள்ளவை மற்றும் நவீன கோடெக்குகளில் பயன்படுத்தப்படுகின்றன VP9, AV1 и HEVC. விளக்கப்பட்ட பல விஷயங்கள் எளிமைப்படுத்தப்படும் என்று எச்சரிக்கிறேன். சில நேரங்களில் நிஜ உலக உதாரணங்கள் (H.264 போன்றது) தொழில்நுட்பத்தை நிரூபிக்க பயன்படுத்தப்படும்.

1 வது படி - படத்தை பிரித்தல்

முதல் படி சட்டத்தை பல பிரிவுகள், துணைப்பிரிவுகள் மற்றும் அதற்கு அப்பால் பிரிக்க வேண்டும்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

எதற்காக? பல காரணங்கள் உள்ளன. நாம் ஒரு படத்தைப் பிரிக்கும்போது, ​​சிறிய நகரும் பகுதிகளுக்கு சிறிய பகுதிகளைப் பயன்படுத்தி இயக்க வெக்டரை இன்னும் துல்லியமாக கணிக்க முடியும். நிலையான பின்னணியில் நீங்கள் பெரிய பிரிவுகளுக்கு உங்களை கட்டுப்படுத்தலாம்.

கோடெக்குகள் பொதுவாக இந்த பிரிவுகளை பிரிவுகளாக (அல்லது துகள்கள்), மேக்ரோபிளாக்ஸ் (அல்லது குறியீட்டு மரத் தொகுதிகள்) மற்றும் பல துணைப்பிரிவுகளாக ஒழுங்கமைக்கின்றன. இந்த பகிர்வுகளின் அதிகபட்ச அளவு மாறுபடும், HEVC அதை 64x64 ஆக அமைக்கிறது, AVC 16x16 ஐப் பயன்படுத்துகிறது, மேலும் துணைப் பகிர்வுகளை 4x4 அளவுகள் வரை பிரிக்கலாம்.

கடந்த கட்டுரையிலிருந்து பிரேம்களின் வகைகள் உங்களுக்கு நினைவிருக்கிறதா?! தொகுதிகளுக்கும் இதைப் பயன்படுத்தலாம், எனவே நாம் ஒரு I-துண்டு, ஒரு B-பிளாக், ஒரு P-மேக்ரோபிளாக் போன்றவற்றைக் கொண்டிருக்கலாம்.

பயிற்சி செய்ய விரும்புவோர், படம் எவ்வாறு பிரிவுகளாகவும் துணைப்பிரிவுகளாகவும் பிரிக்கப்பட்டுள்ளது என்பதைப் பாருங்கள். இதைச் செய்ய, முந்தைய கட்டுரையில் ஏற்கனவே குறிப்பிட்டுள்ள ஒன்றைப் பயன்படுத்தலாம். இன்டெல் வீடியோ ப்ரோ அனலைசர் (பணம் செலுத்தப்பட்ட ஒன்று, ஆனால் முதல் 10 பிரேம்களுக்கு மட்டுப்படுத்தப்பட்ட இலவச சோதனை பதிப்பு). பகுதிகள் இங்கே பகுப்பாய்வு செய்யப்பட்டுள்ளன VP9:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

2வது படி - முன்னறிவிப்பு

பிரிவுகள் கிடைத்தவுடன், அவற்றுக்கான ஜோதிட கணிப்புகளைச் செய்யலாம். க்கு INTER கணிப்புகள் மாற்றப்பட வேண்டும் இயக்க திசையன்கள் மற்றும் மீதி, மற்றும் INTRA முன்னறிவிப்புக்கு இது அனுப்பப்படுகிறது முன்னறிவிப்பு திசை மற்றும் மீதமுள்ளவை.

3 வது படி - மாற்றம்

எஞ்சிய தொகுதி (முன்கணிக்கப்பட்ட பகுதி → உண்மையான பிரிவு) இருந்தால், ஒட்டுமொத்த தரத்தை பராமரிக்கும் போது எந்த பிக்சல்களை நிராகரிக்க முடியும் என்பதை நாம் அறியும் வகையில் அதை மாற்ற முடியும். சரியான நடத்தையை வழங்கும் சில மாற்றங்கள் உள்ளன.

மற்ற முறைகள் இருந்தாலும், அவற்றை இன்னும் விரிவாகப் பார்ப்போம். தனித்த கொசைன் மாற்றம் (DCT - இருந்து தனித்த கொசைன் மாற்றம்) DCT இன் முக்கிய செயல்பாடுகள்:

  • பிக்சல்களின் தொகுதிகளை அதிர்வெண் குணகங்களின் சம அளவிலான தொகுதிகளாக மாற்றுகிறது.
  • இடஞ்சார்ந்த பணிநீக்கத்தை அகற்ற உதவும் சக்தியை ஒடுக்குகிறது.
  • மீள்தன்மையை வழங்குகிறது.

பிப்ரவரி 2, 2017 சின்ட்ரா ஆர்.ஜே. (Cintra, RJ) மற்றும் பேயர் F.M. (பேயர் எஃப்எம்) பட சுருக்கத்திற்கான டிசிடி போன்ற உருமாற்றம் பற்றிய கட்டுரையை வெளியிட்டது, அதற்கு 14 சேர்த்தல்கள் மட்டுமே தேவை.

ஒவ்வொரு புள்ளியின் நன்மைகளையும் நீங்கள் புரிந்து கொள்ளவில்லை என்றால் கவலைப்பட வேண்டாம். இப்போது அவற்றின் உண்மையான மதிப்பைக் காண குறிப்பிட்ட எடுத்துக்காட்டுகளைப் பயன்படுத்துவோம்.

இந்த 8x8 தொகுதி பிக்சல்களை எடுத்துக்கொள்வோம்:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இந்தத் தொகுதி பின்வரும் 8 பை 8 பிக்சல் படமாக வழங்கப்பட்டுள்ளது:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இந்த பிக்சல்களின் தொகுதிக்கு DCT ஐப் பயன்படுத்தவும் மற்றும் குணகங்களின் 8x8 தொகுதியைப் பெறவும்:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இந்த குணகங்களின் தொகுப்பை நாம் வழங்கினால், பின்வரும் படத்தைப் பெறுவோம்:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

நீங்கள் பார்க்க முடியும், இது அசல் படம் போல் இல்லை. முதல் குணகம் மற்ற எல்லாவற்றிலிருந்தும் மிகவும் வித்தியாசமாக இருப்பதை நீங்கள் காணலாம். இந்த முதல் குணகம் DC குணகம் என அழைக்கப்படுகிறது, இது உள்ளீட்டு வரிசையில் உள்ள அனைத்து மாதிரிகளையும் சராசரியாக பிரதிபலிக்கிறது.

குணகங்களின் இந்த தொகுதி ஒரு சுவாரஸ்யமான சொத்து உள்ளது: இது குறைந்த அதிர்வெண் இருந்து உயர் அதிர்வெண் கூறுகளை பிரிக்கிறது.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

ஒரு படத்தில், பெரும்பாலான சக்தி குறைந்த அதிர்வெண்களில் குவிந்துள்ளது, எனவே நீங்கள் படத்தை அதன் அதிர்வெண் கூறுகளாக மாற்றி, அதிக அதிர்வெண் குணகங்களை நிராகரித்தால், அதிக பட தரத்தை தியாகம் செய்யாமல் படத்தை விவரிக்க தேவையான தரவின் அளவைக் குறைக்கலாம்.

அதிர்வெண் என்பது சமிக்ஞை எவ்வளவு விரைவாக மாறுகிறது என்பதைக் குறிக்கிறது.

டிசிடியைப் பயன்படுத்தி அசல் படத்தை அதன் அதிர்வெண்ணுக்கு (குறைவுகளின் தொகுதி) மாற்றுவதன் மூலம் சோதனை வழக்கில் பெறப்பட்ட அறிவைப் பயன்படுத்த முயற்சிப்போம், பின்னர் குறைந்த முக்கிய குணகங்களின் பகுதியை நிராகரிப்போம்

முதலில் அதை அதிர்வெண் டொமைனாக மாற்றுவோம்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

அடுத்து, குணகங்களின் பகுதியை (67%) நிராகரிக்கிறோம், முக்கியமாக கீழ் வலது பகுதி.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இறுதியாக, இந்த நிராகரிக்கப்பட்ட குணகங்களின் தொகுதியிலிருந்து படத்தைப் புனரமைக்கிறோம் (நினைவில் கொள்ளுங்கள், அது தலைகீழாக இருக்க வேண்டும்) மற்றும் அதை அசலுடன் ஒப்பிடுகிறோம்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இது அசல் படத்தை ஒத்திருப்பதைக் காண்கிறோம், ஆனால் அசலில் இருந்து பல வேறுபாடுகள் உள்ளன. நாங்கள் 67,1875% வீதத்தை எறிந்தோம், இன்னும் அசலைப் போன்ற ஒன்றைப் பெற்றுள்ளோம். இன்னும் சிறந்த தரத்தில் ஒரு படத்தைப் பெற குணகங்களை மிகவும் சிந்தனையுடன் நிராகரிக்க முடிந்தது, ஆனால் அது அடுத்த தலைப்பு.

ஒவ்வொரு குணகமும் அனைத்து பிக்சல்களைப் பயன்படுத்தி உருவாக்கப்படுகிறது

முக்கியமானது: ஒவ்வொரு குணகமும் நேரடியாக ஒரு பிக்சலுக்கு மாற்றப்படவில்லை, ஆனால் இது அனைத்து பிக்சல்களின் எடையுள்ள தொகையாகும். இந்த அற்புதமான வரைபடம், முதல் மற்றும் இரண்டாவது குணகங்கள் ஒவ்வொரு குறியீட்டிற்கும் தனிப்பட்ட எடையைப் பயன்படுத்தி எவ்வாறு கணக்கிடப்படுகின்றன என்பதைக் காட்டுகிறது.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

டிசிடியை அதன் அடிப்படையில் ஒரு எளிய பட உருவாக்கத்தைப் பார்த்து நீங்கள் காட்சிப்படுத்த முயற்சி செய்யலாம். எடுத்துக்காட்டாக, ஒவ்வொரு குணக எடையைப் பயன்படுத்தி உருவாக்கப்பட்ட சின்னம் A இங்கே உள்ளது:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

4 வது படி - அளவீடு

முந்தைய கட்டத்தில் சில குணகங்களை வெளியேற்றிய பிறகு, கடைசி கட்டத்தில் (உருமாற்றம்) ஒரு சிறப்பு வடிவ அளவீடு செய்கிறோம். இந்த கட்டத்தில் தகவலை இழப்பது ஏற்றுக்கொள்ளத்தக்கது. அல்லது, இன்னும் எளிமையாக, சுருக்கத்தை அடைய குணகங்களை அளவிடுவோம்.

குணகங்களின் தொகுதியை எவ்வாறு அளவிடுவது? எளிமையான முறைகளில் ஒன்று சீரான அளவீடு ஆகும், நாம் ஒரு தொகுதியை எடுக்கும்போது, ​​​​அதை ஒரு மதிப்பால் (10 ஆல்) வகுத்து, முடிவைச் சுற்றவும்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இந்த குணகங்களின் தொகுதியை மாற்ற முடியுமா? ஆம், நாம் வகுத்த அதே மதிப்பால் பெருக்கலாம்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இந்த அணுகுமுறை சிறந்தது அல்ல, ஏனெனில் இது ஒவ்வொரு குணகத்தின் முக்கியத்துவத்தையும் கணக்கில் எடுத்துக்கொள்ளவில்லை. ஒரு ஒற்றை மதிப்பிற்குப் பதிலாக குவாண்டிசர்களின் மேட்ரிக்ஸைப் பயன்படுத்தலாம், மேலும் இந்த மேட்ரிக்ஸ் கீழ் வலதுபுறத்தின் பெரும்பகுதியையும் மேல் இடதுபுறத்தின் சிறுபான்மையையும் அளவிடுவதன் மூலம் DCT சொத்தை சுரண்டலாம்.

படி 5 - என்ட்ரோபி குறியீட்டு முறை

தரவுகளை (படத் தொகுதிகள், துண்டுகள், பிரேம்கள்) அளவீடு செய்தவுடன், அதை இழப்பின்றி சுருக்கலாம். தரவுகளை சுருக்க பல வழிமுறை வழிகள் உள்ளன. அவற்றில் சிலவற்றை நாங்கள் விரைவாகப் பார்க்கப் போகிறோம், ஆழ்ந்த புரிதலுக்கு சுருக்கத்தைப் புரிந்துகொள்வது: நவீன டெவலப்பர்களுக்கான தரவு சுருக்கம் ("சுருக்கத்தைப் புரிந்துகொள்வது: நவீன டெவலப்பர்களுக்கான தரவு சுருக்கம்").

VLC ஐப் பயன்படுத்தி வீடியோ குறியாக்கம்

எங்களிடம் எழுத்துக்களின் ஸ்ட்ரீம் உள்ளது என்று வைத்துக்கொள்வோம்: a, e, r и t. ஸ்ட்ரீமில் ஒவ்வொரு எழுத்தும் எவ்வளவு அடிக்கடி தோன்றும் என்பதற்கான நிகழ்தகவு (0 முதல் 1 வரை) இந்த அட்டவணையில் வழங்கப்படுகிறது.

a e r t
நிகழ்தகவு 0,3 0,3 0,2 0,2

தனித்தன்மை வாய்ந்த பைனரி குறியீடுகளை (முன்னுரிமை சிறியவை) அதிக வாய்ப்புள்ளவற்றுக்கு ஒதுக்கலாம், மேலும் பெரிய குறியீடுகளை குறைவாக உள்ளவற்றுக்கு ஒதுக்கலாம்.

a e r t
நிகழ்தகவு 0,3 0,3 0,2 0,2
பைனரி குறியீடு 0 10 110 1110

ஒவ்வொரு எழுத்துக்கும் 8 பிட்கள் செலவழிப்போம் என்று கருதி, ஸ்ட்ரீமை சுருக்குகிறோம். சுருக்கம் இல்லாமல், ஒரு எழுத்துக்கு 24 பிட்கள் தேவைப்படும். ஒவ்வொரு எழுத்தையும் அதன் குறியீட்டைக் கொண்டு மாற்றினால், சேமிப்பைப் பெறுவீர்கள்!

முதல் படி பாத்திரத்தை குறியாக்கம் செய்வது e, இது 10 க்கு சமம், மற்றும் இரண்டாவது எழுத்து a, இது சேர்க்கப்பட்டது (கணித வழியில் அல்ல): [10][0], இறுதியாக மூன்றாவது எழுத்து t, இது நமது இறுதி சுருக்கப்பட்ட பிட்ஸ்ட்ரீமை [10][0][1110] அல்லது சமமாக ஆக்குகிறது 1001110, இதற்கு 7 பிட்கள் மட்டுமே தேவை (அசலலை விட 3,4 மடங்கு குறைவான இடம்).

ஒவ்வொரு குறியீடும் முன்னொட்டுடன் கூடிய தனிப்பட்ட குறியீடாக இருக்க வேண்டும் என்பதை நினைவில் கொள்ளவும். ஹஃப்மேன் அல்காரிதம் இந்த எண்களைக் கண்டறிய உதவும். இந்த முறை அதன் குறைபாடுகள் இல்லாமல் இல்லை என்றாலும், சுருக்கத்திற்கான இந்த அல்காரிதம் முறையை இன்னும் வழங்கும் வீடியோ கோடெக்குகள் உள்ளன.

குறியாக்கி மற்றும் குறிவிலக்கி இரண்டும் அவற்றின் பைனரி குறியீடுகளுடன் குறியீட்டு அட்டவணையை அணுக வேண்டும். எனவே, ஒரு அட்டவணையை உள்ளீடாக அனுப்புவதும் அவசியம்.

எண்கணித குறியீட்டு முறை

எங்களிடம் எழுத்துக்களின் ஸ்ட்ரீம் உள்ளது என்று வைத்துக்கொள்வோம்: a, e, r, s и t, மற்றும் அவற்றின் நிகழ்தகவு இந்த அட்டவணையில் வழங்கப்பட்டுள்ளது.

a e r s t
நிகழ்தகவு 0,3 0,3 0,15 0,05 0,2

இந்த அட்டவணையைப் பயன்படுத்தி, சாத்தியமான அனைத்து எழுத்துக்களையும் கொண்ட வரம்புகளை உருவாக்குவோம், அவை மிகப்பெரிய எண்ணால் வரிசைப்படுத்தப்படும்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

இப்போது மூன்று எழுத்துகளின் ஸ்ட்ரீமை குறியாக்கம் செய்வோம்: சாப்பிட.

முதலில் முதல் எழுத்தைத் தேர்ந்தெடுக்கவும் e, இது 0,3 முதல் 0,6 வரையிலான துணைப் பகுதியில் உள்ளது (உள்ளடங்காது). நாங்கள் இந்த துணைப்பிரிவை எடுத்து மீண்டும் அதே விகிதத்தில் பிரித்தோம், ஆனால் இந்த புதிய வரம்பிற்கு.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

எங்கள் ஸ்ட்ரீமைக் குறியிடுவதைத் தொடர்வோம் சாப்பிட. இப்போது இரண்டாவது பாத்திரத்தை எடுத்துக் கொள்ளுங்கள் a, இது 0,3 முதல் 0,39 வரையிலான புதிய துணைப்பிரிவில் உள்ளது, பின்னர் எங்கள் கடைசி எழுத்தை எடுத்துக் கொள்ளுங்கள் t அதே செயல்முறையை மீண்டும் மீண்டும் செய்தால், 0,354 முதல் 0,372 வரையிலான இறுதி துணை வரம்பைப் பெறுகிறோம்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

0,354 முதல் 0,372 வரையிலான கடைசி துணைப் பகுதியில் உள்ள எண்ணைத் தேர்ந்தெடுக்க வேண்டும். 0,36 ஐ தேர்வு செய்வோம் (ஆனால் இந்த துணை வரம்பில் வேறு எந்த எண்ணையும் நீங்கள் தேர்வு செய்யலாம்). இந்த எண்ணைக் கொண்டு மட்டுமே எங்களின் அசல் ஸ்ட்ரீமை மீட்டெடுக்க முடியும். எங்கள் ஸ்ட்ரீமை குறியாக்கம் செய்ய வரம்புகளுக்குள் ஒரு கோடு வரைவது போல் இருக்கிறது.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

தலைகீழ் செயல்பாடு (அதாவது, டிகோடிங்) மிகவும் எளிமையானது: எங்கள் எண் 0,36 மற்றும் எங்கள் ஆரம்ப வரம்பைக் கொண்டு, அதே செயல்முறையை இயக்கலாம். ஆனால் இப்போது, ​​இந்த எண்ணைப் பயன்படுத்தி, இந்த எண்ணைப் பயன்படுத்தி குறியிடப்பட்ட ஸ்ட்ரீமை அடையாளம் காண்கிறோம்.

முதல் வரம்பில், எங்கள் எண் துண்டுக்கு ஒத்திருப்பதை நாங்கள் கவனிக்கிறோம், எனவே இது எங்கள் முதல் எழுத்து. இப்போது இந்த துணை வரம்பை மீண்டும் பழைய அதே செயல்முறையைப் பின்பற்றி பிரிக்கிறோம். இங்கே நீங்கள் 0,36 குறியீட்டுடன் ஒத்திருப்பதைக் காணலாம் a, மற்றும் செயல்முறையை மீண்டும் செய்த பிறகு நாங்கள் கடைசி எழுத்துக்கு வந்தோம் t (எங்கள் அசல் குறியிடப்பட்ட ஸ்ட்ரீமை உருவாக்குகிறது சாப்பிட).

குறியாக்கி மற்றும் குறிவிலக்கி இரண்டும் குறியீடு நிகழ்தகவுகளின் அட்டவணையைக் கொண்டிருக்க வேண்டும், எனவே உள்ளீட்டுத் தரவிலும் அதை அனுப்புவது அவசியம்.

மிகவும் நேர்த்தியானது, இல்லையா? இந்த தீர்வைக் கொண்டு வந்தவர் மிகவும் புத்திசாலி. சில வீடியோ கோடெக்குகள் இந்த நுட்பத்தைப் பயன்படுத்துகின்றன (அல்லது குறைந்தபட்சம் அதை ஒரு விருப்பமாக வழங்குகின்றன).

ஒரு அளவிடப்பட்ட பிட் ஸ்ட்ரீமை இழப்பின்றி சுருக்க வேண்டும் என்பதே இதன் யோசனை. நிச்சயமாக இந்தக் கட்டுரையில் பல விவரங்கள், காரணங்கள், பரிவர்த்தனைகள் போன்றவை இல்லை. ஆனால் நீங்கள் ஒரு டெவலப்பர் என்றால், நீங்கள் மேலும் தெரிந்து கொள்ள வேண்டும். புதிய கோடெக்குகள் வெவ்வேறு என்ட்ரோபி என்கோடிங் அல்காரிதம்களைப் பயன்படுத்த முயல்கின்றன .

படி 6 - பிட்ஸ்ட்ரீம் வடிவம்

இதையெல்லாம் செய்த பிறகு, நிகழ்த்தப்பட்ட படிகளின் சூழலில் சுருக்கப்பட்ட பிரேம்களைத் திறக்க வேண்டும். குறியாக்கியால் எடுக்கப்பட்ட முடிவுகளை டிகோடருக்கு வெளிப்படையாகத் தெரிவிக்க வேண்டும். டிகோடருக்கு தேவையான அனைத்து தகவல்களும் வழங்கப்பட வேண்டும்: பிட் ஆழம், வண்ண இடம், தெளிவுத்திறன், கணிப்புத் தகவல் (இயக்க திசையன்கள், திசை INTER கணிப்பு), சுயவிவரம், நிலை, பிரேம் வீதம், சட்ட வகை, சட்ட எண் மற்றும் பல.

பிட்ஸ்ட்ரீமை விரைவாகப் பார்ப்போம் H.264. எங்களின் முதல் படி, குறைந்தபட்ச H.264 பிட்ஸ்ட்ரீமை உருவாக்குவது (FFmpeg இயல்பாகவே அனைத்து குறியாக்க விருப்பங்களையும் சேர்க்கிறது SEI NAL - அது என்ன என்பதை இன்னும் சிறிது நேரம் கண்டுபிடிப்போம்). எங்கள் சொந்த களஞ்சியம் மற்றும் FFmpeg ஐப் பயன்படுத்தி இதைச் செய்யலாம்.

./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264

இந்த கட்டளை ஒரு ரா பிட்ஸ்ட்ரீமை உருவாக்கும் H.264 ஒரு சட்டத்துடன், 64×64 தெளிவுத்திறன், வண்ண இடைவெளியுடன் YUV420. இந்த வழக்கில், பின்வரும் படம் ஒரு சட்டமாக பயன்படுத்தப்படுகிறது.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

H.264 பிட்ஸ்ட்ரீம்

ஸ்டாண்டர்ட் எவிசி (H.264) எனப்படும் மேக்ரோஃப்ரேம்களில் (நெட்வொர்க் அர்த்தத்தில்) தகவல் அனுப்பப்படும் என்று தீர்மானிக்கிறது நல் (இது ஒரு பிணைய சுருக்க நிலை). NAL இன் முக்கிய குறிக்கோள் "இணைய நட்பு" வீடியோ விளக்கக்காட்சியை வழங்குவதாகும். இந்த தரநிலை தொலைக்காட்சிகள் (ஸ்ட்ரீம் அடிப்படையிலானது), இணையம் (பாக்கெட் அடிப்படையிலானது) ஆகியவற்றில் வேலை செய்ய வேண்டும்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

NAL உறுப்புகளின் எல்லைகளை வரையறுக்க ஒரு ஒத்திசைவு குறிப்பான் உள்ளது. ஒவ்வொரு ஒத்திசைவு டோக்கனுக்கும் ஒரு மதிப்பு இருக்கும் 0x00 0x00 0x01, சமமான முதல் ஒன்றைத் தவிர 0x00 0x00 0x00 0x01. நாம் துவக்கினால் ஹெக்ஸ்டம்ப் உருவாக்கப்பட்ட H.264 பிட்ஸ்ட்ரீமுக்கு, கோப்பின் தொடக்கத்தில் குறைந்தது மூன்று NAL பேட்டர்ன்களை அடையாளம் காண்கிறோம்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

குறிப்பிட்டுள்ளபடி, டிகோடர் படத் தரவை மட்டுமல்ல, வீடியோவின் விவரங்கள், சட்டகம், வண்ணங்கள், பயன்படுத்தப்பட்ட அளவுருக்கள் மற்றும் பலவற்றையும் அறிந்திருக்க வேண்டும். ஒவ்வொரு NAL இன் முதல் பைட் அதன் வகை மற்றும் வகையை வரையறுக்கிறது.

NAL வகை அடையாளங்காட்டி விளக்கம்
0 அறியப்படாத வகை
1 IDR இல்லாமல் குறியிடப்பட்ட படத் துண்டு
2 குறியிடப்பட்ட ஸ்லைஸ் தரவுப் பிரிவு A
3 குறியிடப்பட்ட ஸ்லைஸ் தரவுப் பிரிவு B
4 குறியிடப்பட்ட ஸ்லைஸ் தரவுப் பிரிவு C
5 IDR படத்தின் குறியிடப்பட்ட IDR துண்டு
6 SEI நீட்டிப்பு பற்றிய கூடுதல் தகவல்
7 SPS வரிசை அளவுரு தொகுப்பு
8 பிபிஎஸ் பட அளவுருக்களின் தொகுப்பு
9 அணுகல் பிரிப்பான்
10 வரிசையின் முடிவு
11 நூலின் முடிவு
... ...

பொதுவாக பிட்ஸ்ட்ரீமின் முதல் NAL எஸ்.பி.எஸ். இந்த வகை NAL ஆனது சுயவிவரம், நிலை, தெளிவுத்திறன் போன்ற பொதுவான குறியாக்க மாறிகளைப் பற்றி தெரிவிக்கும் பொறுப்பாகும்.

முதல் ஒத்திசைவு மார்க்கரைத் தவிர்த்தால், எந்த NAL வகை முதலில் உள்ளது என்பதைக் கண்டறிய முதல் பைட்டை டிகோட் செய்யலாம்.

எடுத்துக்காட்டாக, ஒத்திசைவு டோக்கனுக்குப் பிறகு முதல் பைட் 01100111, எங்கே முதல் பிட் (0) புலம் f இல் உள்ளதுorbidden_zero_bit. அடுத்த 2 பிட்கள் (11) நமக்கு புலம் கூறுகிறது nal_ref_idc, இந்த NAL ஒரு குறிப்பு புலமா இல்லையா என்பதைக் குறிக்கிறது. மீதமுள்ள 5 பிட்கள் (00111) நமக்கு புலம் கூறுகிறது nal_unit_type, இந்த வழக்கில் இது SPS தொகுதி (7) NAL.

இரண்டாவது பைட் (பைனரி=01100100, ஹெக்ஸ்=0x64, டிசம்பர்=100) SPS இல் NAL என்பது புலம் profile_idc, குறியாக்கி பயன்படுத்திய சுயவிவரத்தைக் காட்டுகிறது. இந்த வழக்கில், வரையறுக்கப்பட்ட உயர் சுயவிவரம் பயன்படுத்தப்பட்டது (அதாவது, இருதரப்பு B-பிரிவு ஆதரவு இல்லாத உயர் சுயவிவரம்).

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

பிட்ஸ்ட்ரீம் விவரக்குறிப்பைப் பார்த்தால் H.264 SPS NAL க்கு, அளவுரு பெயர், வகை மற்றும் விளக்கத்திற்கான பல மதிப்புகளைக் காண்போம். உதாரணமாக, புலங்களைப் பார்ப்போம் pic_width_in_mbs_minus_1 и pic_height_in_map_units_minus_1.

அளவுரு பெயர் வகை விளக்கம்
pic_width_in_mbs_minus_1 0 ue(v)
pic_height_in_map_units_minus_1 0 ue(v)

இந்த புலங்களின் மதிப்புகளுடன் சில கணித செயல்பாடுகளைச் செய்தால், நாம் தீர்மானத்தைப் பெறுவோம். 1920 x 1080 ஐப் பயன்படுத்தி ஒருவர் குறிப்பிடலாம் pic_width_in_mbs_minus_1 119 மதிப்புடன் ((119 + 1) * மேக்ரோபிளாக்_அளவு = 120 * 16 = 1920). மீண்டும், இடத்தை சேமிக்க, 1920 ஐ குறியாக்குவதற்கு பதிலாக, 119 ஐ கொண்டு செய்தோம்.

நாம் உருவாக்கிய வீடியோவை பைனரி வடிவத்தில் தொடர்ந்து சரிபார்த்தால் (உதாரணமாக: xxd -b -c 11 v/minimal_yuv420.h264), பின்னர் நீங்கள் கடைசி NAL க்கு செல்லலாம், இது சட்டமே ஆகும்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

அதன் முதல் 6 பைட் மதிப்புகளை இங்கே பார்க்கலாம்: 01100101 10001000 10000100 00000000 00100001 11111111. முதல் பைட் NAL வகையைக் குறிக்கும் என்பதால், இந்த விஷயத்தில் (00101) ஒரு IDR துண்டு (5), பின்னர் நீங்கள் அதை மேலும் ஆராயலாம்:

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

விவரக்குறிப்பு தகவலைப் பயன்படுத்தி, துண்டு வகையை டிகோட் செய்ய முடியும் (துண்டு_வகை) மற்றும் சட்ட எண் (சட்ட_எண்) மற்ற முக்கியமான துறைகளில்.

சில புலங்களின் மதிப்புகளைப் பெற (ue(v), me(v), se(v) அல்லது te(v)), இதன் அடிப்படையில் ஒரு சிறப்பு டிகோடரைப் பயன்படுத்தி துண்டுகளை டிகோட் செய்ய வேண்டும் அதிவேக கோலோம்ப் குறியீடு. இந்த முறை மாறி மதிப்புகளை குறியாக்க மிகவும் திறமையானது, குறிப்பாக பல இயல்புநிலை மதிப்புகள் இருக்கும்போது.

அதாவது துண்டு_வகை и சட்ட_எண் இந்த வீடியோவில் 7 (I-துண்டு) மற்றும் 0 (முதல் சட்டகம்) உள்ளன.

ஒரு பிட்ஸ்ட்ரீம் ஒரு நெறிமுறையாக கருதப்படலாம். நீங்கள் பிட்ஸ்ட்ரீம் பற்றி மேலும் அறிய விரும்பினால், நீங்கள் விவரக்குறிப்பைப் பார்க்க வேண்டும் ITU H.264. படத்தின் தரவு எங்குள்ளது என்பதைக் காட்டும் மேக்ரோ வரைபடம் இங்கே உள்ளது (யு.யு.வி சுருக்கப்பட்ட வடிவத்தில்).

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

போன்ற பிற பிட்ஸ்ட்ரீம்களை ஆய்வு செய்யலாம் VP9, H.265 (HEVC) அல்லது எங்களின் புதிய சிறந்த பிட்ஸ்ட்ரீம் AV1. அவர்கள் அனைவரும் ஒரே மாதிரியானவர்களா? இல்லை, ஆனால் குறைந்தபட்சம் ஒன்றைப் புரிந்துகொண்டால், மற்றவற்றைப் புரிந்துகொள்வது மிகவும் எளிதானது.

பயிற்சி செய்ய வேண்டுமா? H.264 பிட்ஸ்ட்ரீமை ஆராயுங்கள்

நீங்கள் ஒரு பிரேம் வீடியோவை உருவாக்கலாம் மற்றும் பிட்ஸ்ட்ரீமை ஆய்வு செய்ய MediaInfo ஐப் பயன்படுத்தலாம் H.264. உண்மையில், பிட் ஸ்ட்ரீமை பகுப்பாய்வு செய்யும் மூலக் குறியீட்டைப் பார்ப்பதிலிருந்து எதுவும் உங்களைத் தடுக்காது H.264 (எவிசி).

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

நடைமுறைக்கு, நீங்கள் இன்டெல் வீடியோ ப்ரோ அனலைசரைப் பயன்படுத்தலாம் (நிரல் பணம் செலுத்தப்பட்டது என்று நான் ஏற்கனவே சொன்னேன், ஆனால் 10 பிரேம்கள் வரம்புடன் இலவச சோதனை பதிப்பு உள்ளது?).

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

கண்ணோட்டம்

பல நவீன கோடெக்குகள் நாம் படித்த அதே மாதிரியைப் பயன்படுத்துகின்றன என்பதை நினைவில் கொள்க. இங்கே, வீடியோ கோடெக்கின் தொகுதி வரைபடத்தைப் பார்ப்போம் தோர். நாம் கடந்து வந்த அனைத்து படிகளும் இதில் உள்ளன. இந்த இடுகையின் முழுப் புள்ளியும் குறைந்தபட்சம் இந்த பகுதியில் உள்ள புதுமைகள் மற்றும் ஆவணங்கள் பற்றிய சிறந்த புரிதலை உங்களுக்கு வழங்குவதாகும்.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

முன்னதாக, 139p தரம் மற்றும் 720 fps இல் ஒரு மணிநேரம் நீடிக்கும் வீடியோ கோப்பை சேமிக்க 30 GB வட்டு இடம் தேவைப்படும் என்று கணக்கிடப்பட்டது. இந்த கட்டுரையில் விவாதிக்கப்பட்ட முறைகளை நீங்கள் பயன்படுத்தினால் (இடை-பிரேம் மற்றும் உள் கணிப்புகள், மாற்றம், அளவீடு, என்ட்ரோபி கோடிங் போன்றவை), நீங்கள் அடையலாம் (ஒரு பிக்சலுக்கு 0,031 பிட்கள் செலவழிக்கிறோம் என்ற உண்மையின் அடிப்படையில்), ஒரு வீடியோ திருப்திகரமான தரம், 367,82 MB மட்டுமே உள்ளது, 139 GB நினைவகம் அல்ல.

H.265 ஐ விட H.264 சிறந்த சுருக்க விகிதத்தை எவ்வாறு அடைகிறது?

கோடெக்குகள் எவ்வாறு செயல்படுகின்றன என்பதைப் பற்றி இப்போது எங்களுக்குத் தெரியும், புதிய கோடெக்குகள் குறைந்த பிட்களுடன் உயர் தெளிவுத்திறனை எவ்வாறு வழங்க முடியும் என்பதைப் புரிந்துகொள்வது எளிது.

நாம் ஒப்பிட்டுப் பார்த்தால் எவிசி и HEVC, இது எப்போதும் அதிக CPU சுமை மற்றும் சுருக்க விகிதத்திற்கு இடையேயான தேர்வாக இருக்கும் என்பதை நினைவில் கொள்வது மதிப்பு.

HEVC விட கூடுதல் பிரிவு (மற்றும் துணைப்பிரிவு) விருப்பங்கள் உள்ளன எவிசி, மேலும் உள் கணிப்பு திசைகள், மேம்படுத்தப்பட்ட என்ட்ரோபி குறியீட்டு முறை மற்றும் பல. இந்த முன்னேற்றங்கள் அனைத்தும் செய்யப்பட்டுள்ளன H.265 50% அதிகமாக அழுத்தும் திறன் கொண்டது H.264.

வீடியோ கோடெக் எப்படி வேலை செய்கிறது? பகுதி 2. என்ன, ஏன், எப்படி

முதல் பகுதி: வீடியோ மற்றும் படங்களுடன் வேலை செய்வதற்கான அடிப்படைகள்

ஆதாரம்: www.habr.com

கருத்தைச் சேர்