Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Екінші бөлім: Бейне кодек қалай жұмыс істейді

Кез келген растр сурет түрінде көрсетуге болады екі өлшемді матрица. Түстерге келетін болсақ, идеяны суретке қарау арқылы дамытуға болады үш өлшемді матрица, онда әр түс үшін деректерді сақтау үшін қосымша өлшемдер пайдаланылады.

Егер біз соңғы түсті деп аталатын комбинациясы ретінде қарастырсақ. негізгі түстер (қызыл, жасыл және көк), үш өлшемді матрицамызда біз үш жазықтықты анықтаймыз: біріншісі қызыл үшін, екіншісі жасыл үшін және соңғысы көк үшін.
Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер
Бұл матрицаның әрбір нүктесін пиксель (бейне элементі) деп атаймыз. Әрбір пикселде әр түстің қарқындылығы (әдетте сандық мән ретінде) туралы ақпарат бар. Мысалы, қызыл пиксел оның құрамында 0 жасыл, 0 көк және максималды қызыл бар екенін білдіреді. Қызғылт пиксел үш түстің комбинациясын қолдану арқылы жасауға болады. 0-ден 255-ке дейінгі сандық ауқымды пайдаланып, қызғылт пиксел ретінде анықталады Қызыл = 255, Жасыл = 192 и Көк = 203.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бұл мақала EDISON қолдауымен жарияланды.

Біз дамып жатырмыз бейнебақылау, бейне ағынды жіберуге арналған қосымшалар, сонымен қатар біз айналысамыз хирургиялық бөлмеде бейне жазба.

Түсті кескінді кодтаудың балама тәсілдері

Кескінді құрайтын түстерді көрсетуге арналған көптеген басқа модельдер бар. Мысалы, RGB үлгісін пайдалану кезінде талап етілетін үш байттың орнына әрбір пикселді көрсету үшін тек бір байт қажет болатын индекстелген палитраны пайдалануға болады. Мұндай модельде әр түсті көрсету үшін 2D матрицасының орнына 3D матрицасын қолдануға болады. Бұл жадты үнемдейді, бірақ азырақ түсті гамма береді.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

RGB

Мысалы, төмендегі суретке назар аударыңыз. Бірінші бет толығымен боялған. Қалғандары қызыл, жасыл және көк жазықтықтар (сәйкес түстердің қарқындылығы сұр реңкте көрсетілген).

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Түпнұсқадағы қызыл реңктердің екінші беттің ең жарқын бөліктері байқалатын жерлерде болатынын көреміз. Көгілдірдің үлесін негізінен Марионың көзінен (соңғы бетінде) және оның киімінің элементтерінен көруге болады. Барлық үш түсті ұшақтар қай жерде ең аз үлес қосатынына назар аударыңыз (суреттердің ең қараңғы бөліктері) - Марио мұрты.

Әрбір түстің қарқындылығын сақтау үшін биттердің белгілі бір саны қажет - бұл шама деп аталады бит тереңдігі. Бір түс жазықтығы үшін 8 бит (0-ден 255-ке дейінгі мәнге негізделген) жұмсалды делік. Содан кейін бізде түс тереңдігі 24 бит (8 бит * 3 R/G/B жазықтықтары).

Кескіннің тағы бір қасиеті авторизациялау, бұл бір өлшемдегі пикселдер саны. Көбінесе ретінде белгіленеді ені × биіктігі, төмендегі 4-тен 4-ке дейінгі мысал суретіндегідей.
Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Суреттермен/бейнелермен жұмыс істегенде біз айналысатын тағы бір қасиет арақатынасы, кескіннің немесе пикселдің ені мен биіктігі арасындағы қалыпты пропорционалды қатынасты сипаттайтын.

Олар белгілі бір фильмнің немесе суреттің өлшемі 16-дан 9-ға дейін екенін айтқанда, олар әдетте білдіреді дисплей арақатынасы (DAR Қайдан Дисплей арақатынасы). Дегенмен, кейде жеке пикселдердің әртүрлі пішіндері болуы мүмкін - бұл жағдайда біз айтып отырмыз пиксель қатынасы (PAR Қайдан Пиксель арақатынасы).

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Үй иесіне ескерту: DVD сәйкес келеді DAR 4-тен 3-ке дейін

Нақты DVD ажыратымдылығы 704x480 болса да, ол әлі де 4:3 арақатынасын сақтайды, себебі PAR 10:11 (704x10 / 480x11).

Ақырында, біз анықтай аламыз видео тізбегі сияқты n кезеңге арналған кадрлар уақыт, бұл қосымша өлшем деп санауға болады. А n онда кадр жиілігі немесе секундына кадр саны (FPS Қайдан Секундтағы кадрлар).

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бейнені көрсету үшін секундына қажет бит саны оның беру жылдамдығы - бит жылдамдығы.

бит жылдамдығы = ені * биіктік * бит тереңдігі * секундына кадрлар

Мысалы, 30 кадр, 24 бит/сек, 480x240 бейнеге 82,944,000 82,944 30 бит/сек немесе 480 240 Мбит/с (24xXNUMXxXNUMXxXNUMX) қажет болады, бірақ бұл қысу әдісі пайдаланылмаса.

Тасымалдау жылдамдығы болса тұрақты дерлік, содан кейін ол аталады тұрақты жіберу жылдамдығы (CBR Қайдан тұрақты бит жылдамдығы). Бірақ ол да әртүрлі болуы мүмкін, бұл жағдайда ол аталады ауыспалы жіберу жылдамдығы (VBR Қайдан ауыспалы бит жылдамдығы).

Бұл график толық қараңғы жақтау жағдайында тым көп бит жұмсалмайтын шектеулі VBR көрсетеді.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Инженерлер бастапқыда қосымша өткізу қабілеттілігін пайдаланбай, бейне дисплейдің қабылданатын кадр жиілігін екі еселеу әдісін әзірледі. Бұл әдіс ретінде белгілі аралас бейне; Негізінде ол экранның жартысын бірінші «кадрға», ал екінші жартысын келесі «кадрға» жібереді.

Қазіргі уақытта көріністер көбінесе пайдалану арқылы көрсетіледі прогрессивті сканерлеу технологиялары. Бұл әр кадрдың барлық сызықтары дәйекті түрде сызылған қозғалатын кескіндерді көрсету, сақтау немесе беру әдісі.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Жақсы! Енді біз кескіннің цифрлық түрде қалай көрсетілетінін, оның түстерінің қалай орналасатынын, бит жылдамдығы тұрақты (CBR) немесе айнымалы (VBR) болса, бейнені көрсету үшін секундына қанша бит жұмсайтынымызды білеміз. Біз берілген кадр жиілігін пайдаланатын берілген ажыратымдылық туралы білеміз, біз өзара байланысты бейне, PAR және басқалары сияқты көптеген басқа терминдермен таныспыз.

Артықшылықты жою

Қысымсыз бейне қалыпты түрде пайдаланылмайтыны белгілі. 720p ажыратымдылықтағы және секундына 30 кадрмен бір сағаттық бейне 278 ГБ орын алады. Бұл мәнге 1280 x 720 x 24 x 30 x 3600 (ені, биіктігі, пиксельге бит, FPS және секундпен уақыт) көбейту арқылы келеміз.

Пайдаланыңыз шығынсыз қысу алгоритмдері, DEFLATE сияқты (PKZIP, Gzip және PNG-де пайдаланылады) қажетті өткізу қабілеттілігін жеткілікті түрде азайтпайды. Біз бейнені қысудың басқа жолдарын іздеуіміз керек.

Мұны істеу үшін сіз біздің көзқарасымыздың мүмкіндіктерін пайдалана аласыз. Біз түске қарағанда жарықтықты жақсырақ ажыратамыз. Бейне - бұл уақыт өте келе қайталанатын дәйекті кескіндер тізбегі. Бір көріністің іргелес кадрлары арасында шамалы айырмашылықтар бар. Сонымен қатар, әрбір кадр бірдей (немесе ұқсас) түсті пайдаланатын көптеген аймақтарды қамтиды.

Түс, жарықтық және біздің көзіміз

Біздің көзіміз түске қарағанда жарықтылыққа сезімтал. Мұны мына суретке қарап өз көзіңізбен көре аласыз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Кескіннің сол жақ жартысында квадраттардың түстерін көрмесеңіз A и B шын мәнінде бірдей, онда бұл қалыпты жағдай. Миымыз түске емес, жарық пен көлеңкеге көбірек көңіл бөлуге мәжбүр етеді. Белгіленген квадраттардың арасындағы оң жақта бірдей түсті секіргіш бар - сондықтан біз (яғни миымыз) олардың бір түсті екенін оңай анықтаймыз.

Көзіміз қалай жұмыс істейтінін (жеңілдетілген түрде) қарастырайық. Көз – көптеген бөліктерден тұратын күрделі мүше. Дегенмен, бізді конустар мен таяқшалар қызықтырады. Көзде шамамен 120 миллион таяқша және 6 миллион конус бар.

Түс пен жарықтықты қабылдауды көздің белгілі бір бөліктерінің жеке функциялары ретінде қарастырайық (шын мәнінде бәрі біршама күрделірек, бірақ біз оны жеңілдетеміз). Таяқша жасушалары негізінен жарықтыққа жауап береді, ал конус жасушалары түс үшін жауап береді. Конустар құрамындағы пигментке байланысты үш түрге бөлінеді: S-конустар (көк), М-конустар (жасыл), L-конустар (қызыл).

Бізде конустарға (түске) қарағанда таяқшалар (жарықтық) көп болғандықтан, біз түстерге қарағанда қараңғы және ашық ауысуларды ажырата алатынымыз туралы қорытынды жасауға болады.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Контраст сезімталдық мүмкіндіктері

Эксперименттік психология және басқа да көптеген салалардағы зерттеушілер адамның көруінің көптеген теорияларын жасады. Және олардың бірі деп аталады контраст сезімталдық функциялары. Олар кеңістіктік және уақыттық жарықтандырумен байланысты. Қысқасы, бұл бақылаушы оларды байқағанға дейін қанша өзгерту қажет екендігі туралы. «Функция» сөзінің көпше түріне назар аударыңыз. Бұл тек қара және ақ кескіндер үшін ғана емес, сонымен қатар түсті суреттер үшін де контраст сезімталдық функцияларын өлшей алатынымызға байланысты. Бұл эксперименттердің нәтижелері көп жағдайда біздің көзіміздің түске қарағанда жарықтылыққа сезімтал екенін көрсетеді.

Біз кескін жарықтығына сезімтал екенімізді білетіндіктен, біз бұл фактіні қолдануға тырысамыз.

Түс үлгісі

Біз RGB схемасын пайдаланып түрлі-түсті кескіндермен қалай жұмыс істеу керектігін түсіндік. Басқа модельдер де бар. Жарықтықты хромадан бөлетін модель бар және ол белгілі YCbCr. Айтпақшы, ұқсас бөлімді жасайтын басқа модельдер бар, бірақ біз тек осыны қарастырамыз.

Бұл түсті модельде Y жарықтықтың көрінісі болып табылады, сонымен қатар екі түсті арнаны пайдаланады: Cb (бай көк) және Cr (бай қызыл). YCbCr RGB-ден алынуы мүмкін және кері түрлендіру де мүмкін. Бұл үлгіні пайдалана отырып, төменде көрсетілгендей толық түсті кескіндерді жасай аламыз:

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

YCbCr және RGB арасында түрлендіру

Біреу қарсы болады: жасыл түс пайдаланылмаса, барлық түстерді қалай алуға болады?

Бұл сұраққа жауап беру үшін RGB-ді YCbCr-ге түрлендірейік. Стандартта қабылданған коэффициенттерді қолданайық БТ.601, оны бөлімше ұсынған ITU-R. Бұл бөлім сандық бейнеге арналған стандарттарды белгілейді. Мысалы: 4K дегеніміз не? Кадр жиілігі, ажыратымдылық, түс үлгісі қандай болуы керек?

Алдымен жарықтығын есептейік. МӘС ұсынған тұрақтыларды қолданып, RGB мәндерін ауыстырайық.

Y = 0.299R + 0.587G + 0.114B

Жарықтықты алғаннан кейін көк және қызыл түстерді ажыратамыз:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

Сондай-ақ, біз YCbCr көмегімен кері түрлендіруге және тіпті жасыл түске ие бола аламыз:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Әдетте дисплейлер (мониторлар, теледидарлар, экрандар және т.б.) тек RGB үлгісін пайдаланады. Бірақ бұл модель әртүрлі жолдармен ұйымдастырылуы мүмкін:

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Түсті қосалқы үлгілеу

Жарықтық пен хроминанттылықтың тіркесімі ретінде ұсынылған кескін арқылы ақпаратты таңдап алып тастау арқылы адамның визуалды жүйесінің хроминацияға қарағанда жарықтыққа көбірек сезімталдығын пайдалана аламыз. Chroma subsempling - жарықтыққа қарағанда хрома үшін азырақ ажыратымдылықты пайдаланып кескіндерді кодтау әдісі.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Түс ажыратымдылығын қаншалықты азайтуға болады?! Ажыратымдылықты және біріктіруді қалай өңдеу керектігін сипаттайтын кейбір диаграммалар бар екен (Нәтиже түсі = Y + Cb + Cr).

Бұл схемалар ретінде белгілі төмен сынамалау жүйелері және 3 еселік қатынас ретінде өрнектеледі - a:x:y, ол жарықтық пен түс айырмашылығы сигналдарының үлгілерінің санын анықтайды.

a — көлденең сынама алу стандарты (әдетте 4-ке тең)
x — пикселдердің бірінші жолындағы хрома үлгілерінің саны (көлденең ажыратымдылық a)
y — пикселдердің бірінші және екінші қатарлары арасындағы хрома үлгілеріндегі өзгерістер саны.

Ерекшелік 4:1:0, әрбір 4-тен 4-ке дейінгі жарықтық ажыратымдылық блогында бір хрома үлгісін қамтамасыз ету.

Қазіргі кодектерде қолданылатын жалпы схемалар:

  • 4:4:4 (төмен үлгіні алу жоқ)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - біріктіру мысалы

Мұнда YCbCr 4:2:0 көмегімен біріктірілген кескін берілген. Бір пиксельге тек 12 бит жұмсайтынымызды ескеріңіз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Түсті ішкі іріктеудің негізгі түрлерімен кодталған бірдей кескін осылай көрінеді. Бірінші жол соңғы YCbCr, төменгі жол хрома ажыратымдылығын көрсетеді. Сападағы шамалы жоғалтуды ескере отырып, өте лайықты нәтижелер.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бір сағаттық бейне файлды 278p ажыратымдылықпен және секундына 720 кадрмен сақтау үшін 30 ГБ сақтау орнын санағанымыз есіңізде ме? Егер YCbCr 4:2:0 қолдансақ, онда бұл өлшем екі есе азаяды - 139 ГБ. Әзірге бұл қолайлы нәтижеден әлі алыс.

FFmpeg көмегімен YCbCr гистограммасын өзіңіз ала аласыз. Бұл суретте көгілдір түс қызылға қарағанда басым, ол гистограмманың өзінде анық көрінеді.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Түс, жарықтық, түс гаммасы - бейне шолу

Бұл керемет бейнені көруді ұсынамыз. Ол жарықтықтың не екенін түсіндіреді және жалпы барлық нүктелер нүктелі ё жарықтық пен түс туралы.

Жақтау түрлері

Әрі қарай жүрейік. Уақыттың артықшылығын жоюға тырысайық. Бірақ алдымен кейбір негізгі терминологияны анықтайық. Бізде секундына 30 кадр бар фильм бар делік, міне оның алғашқы 4 кадры:

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Біз кадрларда көп қайталауды көреміз: мысалы, кадрдан кадрға өзгермейтін көк фон. Бұл мәселені шешу үшін біз оларды кадрдың үш түріне абстрактілі түрде жіктеуге болады.

I-кадр (Intro жақтау)

I-кадр (анықтамалық жақтау, кілттік жақтау, ішкі жақтау) дербес. Нені көргіңіз келетініне қарамастан, I-кадр негізінен статикалық фотосурет болып табылады. Бірінші кадр әдетте I-кадр болып табылады, бірақ біз I-кадрларды бірінші емес кадрлардың арасында да үнемі бақылап отырамыз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

P-кадр (Pқайталанған кадр)

P-кадр (болжамдық кадр) әрқашан дерлік ағымдағы кескінді алдыңғы кадрдың көмегімен қайта шығаруға болатынын пайдаланады. Мысалы, екінші кадрда доптың алға жылжуы жалғыз өзгеріс. Біз 2-ші жақтауды сәл ғана өзгерту арқылы 1-кадрды ала аламыз, тек осы кадрлар арасындағы айырмашылықты пайдалана отырып. 2-жақтауды тұрғызу үшін алдыңғы 1-кадрға жүгінеміз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: НегіздерБейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

B-кадр (Bi-болжамдық кадр)

Жақсырақ қысуды қамтамасыз ету үшін өткенге ғана емес, сонымен қатар болашақ кадрларға сілтемелер туралы не деуге болады?! Бұл негізінен В-кадр (екі бағытты жақтау).

Бейне кодек қалай жұмыс істейді? 1-бөлім: НегіздерБейне кодек қалай жұмыс істейді? 1-бөлім: НегіздерБейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Аралық шығару

Бұл жақтау түрлері ең жақсы қысуды қамтамасыз ету үшін пайдаланылады. Мұның қалай болатынын келесі бөлімде қарастырамыз. Әзірге, тұтынылатын жады бойынша ең «қымбат» I-кадр, P-кадры айтарлықтай арзанырақ, бірақ бейне үшін ең тиімді нұсқа B-кадр екенін атап өтейік.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Уақытша артықшылық (кадраралық болжау)

Уақыт өте келе қайталануды азайту үшін қандай опциялар бар екенін қарастырайық. Артықшылықтың бұл түрін айқас болжау әдістері арқылы шеше аламыз.

Біз 0 және 1 кадрлар тізбегін кодтау үшін мүмкіндігінше аз бит жұмсауға тырысамыз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Біз өндіре аламыз азайту, біз жай ғана 1 кадрдан 0 кадрды алып тастаймыз. Біз 1 кадрды аламыз, тек оның алдыңғы кадрдан айырмашылығын пайдаланамыз, шын мәнінде біз тек нәтиже қалдығын кодтаймыз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бірақ мен сізге бұдан да аз биттерді пайдаланатын одан да жақсы әдіс бар екенін айтсам ше?! Алдымен 0 жақтауын блоктардан тұратын айқын торға бөлейік. Содан кейін біз 0 жақтауындағы блоктарды 1 кадрмен сәйкестендіруге тырысамыз. Басқаша айтқанда, кадрлар арасындағы қозғалысты бағалаймыз.

Википедиядан - блок қозғалысының компенсациясы

Блок қозғалысының компенсациясы ағымдағы кадрды қабаттаспайтын блоктарға бөледі және қозғалыс компенсациясы векторы блоктардың шығу тегі туралы хабарлайды (жалпы қате түсінік - бұл алдыңғы жақтау қабаттаспайтын блоктарға бөлінеді және қозғалыс компенсациясы векторлары бұл блоктардың қайда баратынын айтады. Бірақ іс жүзінде бәрі керісінше - бұл алдыңғы кадр емес, келесі талданады; блоктардың қайда қозғалып жатқаны анық емес, бірақ олардың қайдан келгені). Әдетте бастапқы блоктар бастапқы жақтауда қабаттасады. Кейбір бейнелерді қысу алгоритмдері ағымдағы кадрды тіпті бір емес, бірнеше бұрын жіберілген кадрлардың бөліктерінен жинайды.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бағалау барысында доптың ( орнынан қозғалғанын көреміз.x= 0, y=25) бойынша (x= 6, y=26), мәндер x и y қозғалыс векторын анықтаңыз. Биттерді сақтау үшін біз жасай алатын тағы бір қадам - ​​соңғы блок орны мен болжамды арасындағы қозғалыс векторларының айырмашылығын ғана кодтау, сондықтан соңғы қозғалыс векторы (x=6-0=6, y=26-25=1) болады. ).

Нақты жағдайда бұл доп екіге бөлінеді n блоктар, бірақ бұл мәселенің мәнін өзгертпейді.

Жақтаудағы нысандар үш өлшемде қозғалады, сондықтан доп қозғалған кезде ол көрнекі түрде кішірейе алады (немесе ол көрушіге қарай жылжыса үлкенірек). Блоктар арасында тамаша сәйкестік болмайтыны қалыпты жағдай. Міне, біздің бағалауымыз бен нақты суреттің біріктірілген көрінісі.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бірақ біз қозғалысты бағалауды пайдаланған кезде, кадрлар арасындағы үшбұрышты есептеудің қарапайым әдісін пайдаланғанға қарағанда кодтау үшін деректер айтарлықтай аз екенін көреміз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Нақты қозғалыс өтемі қандай болады

Бұл әдіс барлық блоктарға бірден қолданылады. Көбінесе біздің шартты қозғалатын доп бірден бірнеше блокқа бөлінеді.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Сіз бұл ұғымдарды өз бетіңізше пайдалана аласыз Юпитер.

Қозғалыс векторларын көру үшін көмегімен сыртқы болжау бейнесін жасауға болады ffmpeg.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Сіз де пайдалана аласыз Intel Video Pro Analyzer (бұл ақылы, бірақ тек алғашқы он кадрмен шектелетін тегін сынақ нұсқасы бар).

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Кеңістіктік артықшылық (ішкі болжам)

Бейнежазбадағы әрбір кадрды талдасақ, өзара байланысты көптеген аймақтарды табамыз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Осы мысалды қарастырайық. Бұл көрініс негізінен көк және ақ түстерден тұрады.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Бұл I-кадр. Біз болжау үшін алдыңғы кадрларды ала алмаймыз, бірақ біз оны қыса аламыз. Қызыл блокты таңдауды кодтайық. Оның көршілеріне қарасақ, оның айналасында кейбір түсті үрдістер бар екенін байқаймыз.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Түстер жақтауда тігінен таралады деп есептейміз. Бұл белгісіз пикселдердің түсі көршілерінің мәндерін қамтитынын білдіреді.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Мұндай болжам дұрыс емес болып шығуы мүмкін. Дәл осы себепті бұл әдісті (ішкі болжамды) қолдану керек, содан кейін нақты мәндерді алып тастау керек. Бұл бізге қалдық блокты береді, бұл түпнұсқамен салыстырғанда әлдеқайда сығылған матрицаға әкеледі.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Ішкі болжамдармен тәжірибе жасағыңыз келсе, ffmpeg көмегімен макроблоктар мен олардың болжамдарының бейнесін жасауға болады. Әрбір блок түсінің мағынасын түсіну үшін ffmpeg құжаттамасын оқу керек.

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Немесе Intel Video Pro Analyzer қолданбасын пайдалануға болады (жоғарыда айтқанымдай, тегін сынақ нұсқасы алғашқы 10 кадрмен шектелген, бірақ бұл сізге алдымен жеткілікті болады).

Бейне кодек қалай жұмыс істейді? 1-бөлім: Негіздер

Екінші бөлім: Бейне кодек қалай жұмыс істейді

Ақпарат көзі: www.habr.com

пікір қалдыру