Video kodek necə işləyir? 1-ci hissə: Əsaslar

İkinci hissə: Video kodek necə işləyir

İstənilən rastr təsvir şəklində təmsil oluna bilər iki ölçülü matris. Rənglərə gəldikdə, fikir bir şəkilə baxaraq inkişaf etdirilə bilər üçölçülü matris, rənglərin hər biri üçün məlumatları saxlamaq üçün əlavə ölçülərdən istifadə olunur.

Son rəngi sözdə birləşmə kimi qəbul etsək. əsas rənglər (qırmızı, yaşıl və mavi), üç ölçülü matrisimizdə üç təyyarə təyin edirik: birincisi qırmızı, ikincisi yaşıl və sonuncusu mavi üçün.
Video kodek necə işləyir? 1-ci hissə: Əsaslar
Bu matrisin hər bir nöqtəsini piksel (şəkil elementi) adlandıracağıq. Hər bir piksel hər rəngin intensivliyi (adətən rəqəmli dəyər kimi) haqqında məlumat ehtiva edir. Misal üçün, qırmızı piksel 0 yaşıl, 0 mavi və maksimum qırmızı ehtiva edir. Çəhrayı piksel üç rəngin birləşməsindən istifadə etməklə formalaşa bilər. 0-dan 255-ə qədər rəqəmsal diapazondan istifadə edərək, çəhrayı piksel kimi müəyyən edilir Qırmızı = 255, Yaşıl = 192 и Mavi = 203.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Bu məqalə EDISON-un dəstəyi ilə dərc edilmişdir.

Biz inkişaf edirik video nəzarət, video axını üçün proqramlar, həm də biz nişanlıyıq cərrahiyyə otağında video çəkiliş.

Rəngli təsviri kodlaşdırmağın alternativ yolları

Təsviri təşkil edən rəngləri təmsil etmək üçün bir çox başqa modellər var. Məsələn, RGB modelindən istifadə edərkən tələb olunan üç deyil, hər pikseli təmsil etmək üçün yalnız bir bayt tələb edən indeksləşdirilmiş palitradan istifadə edə bilərsiniz. Belə bir modeldə hər rəngi təmsil etmək üçün 2D matris əvəzinə 3D matrisdən istifadə etmək mümkündür. Bu yaddaşa qənaət edir, lakin daha kiçik rəng gamutu verir.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

RGB

Məsələn, aşağıdakı şəkilə nəzər salın. Birinci üz tamamilə boyanmışdır. Digərləri qırmızı, yaşıl və mavi müstəvilərdir (uyğun rənglərin intensivliyi boz rəngdə göstərilir).

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Görürük ki, orijinalda qırmızı çalarları ikinci üzün ən parlaq hissələrinin müşahidə olunduğu yerlərdə eyni olacaq. Mavi qatqı əsasən yalnız Marionun gözlərində (son üzü) və geyiminin elementlərində görünə bilər. Diqqət yetirin ki, hər üç rəng təyyarəsinin ən az töhfə verdiyi yer (şəkillərin ən qaranlıq hissələri) - Marionun bığları.

Hər bir rəngin intensivliyini saxlamaq üçün müəyyən sayda bit tələb olunur - bu kəmiyyət deyilir bit dərinliyi. Deyək ki, hər bir rəng müstəvisinə 8 bit sərf olunub (0-dan 255-ə qədər olan dəyər əsasında). Sonra 24 bit (8 bit * 3 R/G/B təyyarəsi) rəng dərinliyinə sahibik.

Təsvirin başqa bir xüsusiyyəti icazə, bu bir ölçüdə piksellərin sayıdır. Çox vaxt kimi işarələnir en × hündürlük, aşağıdakı 4-dən 4-ə qədər nümunə şəklində olduğu kimi.
Video kodek necə işləyir? 1-ci hissə: Əsaslar

Şəkillər/videolarla işləyərkən qarşılaşdığımız digər xüsusiyyətdir aspekt nisbəti, şəkil və ya pikselin eni və hündürlüyü arasında normal mütənasib əlaqəni təsvir edir.

Müəyyən bir filmin və ya şəklin 16 ilə 9 ölçüsündə olduğunu deyəndə, adətən nəzərdə tuturlar ekran aspekt nisbəti (DAR - dən Ekran Aspekt nisbəti). Ancaq bəzən fərdi piksellərin müxtəlif formaları ola bilər - bu halda biz danışırıq piksel nisbəti (PAR - dən Piksel Aspekt Nisbəti).

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Sahibə üçün qeyd: DVD uyğun gəlir DAR 4-dən 3-ə qədər

Faktiki DVD qətnaməsi 704x480 olsa da, PAR 4:3 (10x11 / 704x10) olduğu üçün hələ də 480:11 aspekt nisbətini saxlayır.

Və nəhayət, müəyyən edə bilərik video ardıcıllığı kimi n dövr üçün çərçivələr vaxt, bu da əlavə ölçü sayıla bilər. A n sonra kadr sürəti və ya saniyədə kadrların sayı (FPS - dən Saniyədə Çərçivələr).

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Videonu göstərmək üçün saniyədə tələb olunan bitlərin sayı onundur ötürmə sürəti - bit sürəti.

bit sürəti = en * hündürlük * bit dərinliyi * saniyədə kadr

Məsələn, 30 fps, 24 bps, 480x240 video üçün 82,944,000 bps və ya 82,944 Mbps (30x480x240x24) tələb olunur - lakin bu, heç bir sıxılma metodundan istifadə edilmədiyi təqdirdə olur.

Əgər köçürmə sürəti demək olar ki, daimi, sonra çağırılır sabit ötürmə sürəti (CBR - dən sabit bit sürəti). Amma bu da dəyişə bilər, bu halda deyilir dəyişən ötürmə sürəti (VBR - dən dəyişən bit dərəcəsi).

Bu qrafik məhdud VBR-ni göstərir, burada tamamilə qaranlıq çərçivə vəziyyətində çox bit sərf edilmir.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Mühəndislər əvvəlcə əlavə bant genişliyi istifadə etmədən video ekranın qəbul edilən kadr sürətini ikiqat artırmaq üçün bir üsul hazırladılar. Bu üsul kimi tanınır qarışmış video; Əsasən o, ekranın yarısını birinci “çərçivə”yə, digər yarısını isə növbəti “çərçivə”yə göndərir.

Hazırda səhnələr əsasən istifadə olunur mütərəqqi skan texnologiyaları. Bu, hər bir çərçivənin bütün xətlərinin ardıcıl olaraq çəkildiyi hərəkətli şəkilləri göstərmək, saxlamaq və ya ötürmək üsuludur.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Yaxşı! İndi biz təsvirin rəqəmsal şəkildə necə təmsil olunduğunu, rənglərinin necə düzüldüyünü, bit sürəti sabit (CBR) və ya dəyişən (VBR) olduqda videonu göstərmək üçün saniyədə neçə bit sərf etdiyimizdən xəbərdarıq. Müəyyən bir çərçivə sürətindən istifadə edərək verilən qətnamə haqqında bilirik, biz interlaced video, PAR və digərləri kimi bir çox başqa terminlərlə tanışıq.

Artıqlığın aradan qaldırılması

Məlumdur ki, sıxılmadan video normal istifadə edilə bilməz. 720p qətnamə və saniyədə 30 kadr olan bir saatlıq video 278 GB tutacaq. Bu dəyərə 1280 x 720 x 24 x 30 x 3600 (en, hündürlük, piksel başına bit, FPS və saniyələrdə vaxt) vurmaqla çatırıq.

Istifadə itkisiz sıxılma alqoritmləri, DEFLATE kimi (PKZIP, Gzip və PNG-də istifadə olunur) tələb olunan bant genişliyini kifayət qədər azaltmayacaq. Videonu sıxışdırmağın başqa yollarını axtarmalıyıq.

Bunun üçün vizyonumuzun xüsusiyyətlərindən istifadə edə bilərsiniz. Biz parlaqlığı rəngdən daha yaxşı fərqləndiririk. Video zaman keçdikcə təkrarlanan bir sıra ardıcıl şəkillərdir. Eyni səhnənin bitişik kadrları arasında kiçik fərqlər var. Bundan əlavə, hər bir çərçivə eyni (və ya oxşar) rəngdən istifadə edən bir çox sahəni ehtiva edir.

Rəng, parlaqlıq və gözlərimiz

Gözlərimiz rəngdən çox parlaqlığa daha həssasdır. Bunu bu şəkilə baxaraq özünüz görə bilərsiniz.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Şəklin sol yarısında kvadratların rənglərini görmürsünüzsə A и B əslində eynidir, onda bu normaldır. Beynimiz bizi rəngdən çox işığa və kölgəyə daha çox diqqət yetirməyə məcbur edir. Təyin olunmuş kvadratlar arasında sağ tərəfdə eyni rəngli tullanan var - buna görə də biz (yəni beynimiz) asanlıqla onların eyni rəngdə olduğunu müəyyən edirik.

Gəlin (sadələşdirilmiş şəkildə) gözlərimizin necə işlədiyinə baxaq. Göz bir çox hissədən ibarət mürəkkəb bir orqandır. Bununla belə, bizi ən çox konuslar və çubuqlar maraqlandırır. Gözdə təxminən 120 milyon çubuq və 6 milyon konus var.

Rəng və parlaqlığın qavranılmasını gözün müəyyən hissələrinin ayrı-ayrı funksiyaları kimi nəzərdən keçirək (əslində hər şey bir qədər mürəkkəbdir, lakin biz onu sadələşdirəcəyik). Çubuq hüceyrələr əsasən parlaqlıqdan, konus hüceyrələr isə rəngdən məsuldur. Konuslar tərkibindəki piqmentdən asılı olaraq üç növə bölünür: S-konuslar (mavi), M-konuslar (yaşıl) və L-konuslar (qırmızı).

Bizdə konuslardan (rəngdən) daha çox çubuqlar (parlaqlıq) olduğundan belə nəticəyə gələ bilərik ki, biz qaranlıq və işıq arasındakı keçidləri rənglərdən daha çox ayırd edə bilirik.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Kontrast Həssaslıq Xüsusiyyətləri

Eksperimental psixologiya və bir çox digər sahələrdə tədqiqatçılar insan görmə ilə bağlı bir çox nəzəriyyələr hazırlamışlar. Və onlardan biri adlanır kontrast həssaslıq funksiyaları. Onlar məkan və müvəqqəti işıqlandırma ilə bağlıdır. Qısacası, müşahidəçi onları fərq etməzdən əvvəl nə qədər dəyişiklik tələb olunduğundan bəhs edir. “Funksiya” sözünün cəm halına diqqət yetirin. Bunun səbəbi kontrast həssaslıq funksiyalarını təkcə ağ-qara şəkillər üçün deyil, həm də rəngli şəkillər üçün ölçə bilməmizdir. Bu təcrübələrin nəticələri göstərir ki, əksər hallarda gözlərimiz rəngdən çox parlaqlığa daha həssas olur.

Şəkil parlaqlığına daha həssas olduğumuzu bildiyimiz üçün bu faktdan istifadə etməyə cəhd edə bilərik.

Rəng modeli

RGB sxemindən istifadə edərək rəngli şəkillərlə necə işləməyi bir az başa düşdük. Başqa modelləri də var. Parlaqlığı xromadan ayıran bir model var və o, kimi tanınır Ycbcr. Yeri gəlmişkən, oxşar bölgü aparan digər modellər də var, lakin biz yalnız bunu nəzərdən keçirəcəyik.

Bu rəng modelində Y parlaqlığın təmsilidir və həmçinin iki rəng kanalından istifadə edir: Cb (zəngin mavi) və Cr (zəngin qırmızı). YCbCr RGB-dən əldə edilə bilər və əks çevrilmə də mümkündür. Bu modeldən istifadə edərək aşağıda gördüyümüz kimi tam rəngli şəkillər yarada bilərik:

Video kodek necə işləyir? 1-ci hissə: Əsaslar

YCbCr və RGB arasında çevirin

Kimsə etiraz edəcək: yaşıldan istifadə olunmasa, bütün rəngləri necə əldə etmək olar?

Bu suala cavab vermək üçün gəlin RGB-ni YCbCr-ə çevirək. Standartda qəbul edilmiş əmsallardan istifadə edək BT.601vahid tərəfindən tövsiyə edilmişdir BTİ-R. Bu bölmə rəqəmsal video üçün standartları müəyyən edir. Məsələn: 4K nədir? Kadr sürəti, qətnamə, rəng modeli nə olmalıdır?

Əvvəlcə parlaqlığı hesablayaq. BTİ-nin təklif etdiyi sabitlərdən istifadə edək və RGB qiymətlərini əvəz edək.

Y = 0.299R + 0.587G + 0.114B

Parlaqlığı əldə etdikdən sonra mavi və qırmızı rəngləri ayıracağıq:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

Biz də YCbCr istifadə edərək geri çevirə və hətta yaşıllaşa bilərik:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Tipik olaraq, displeylər (monitorlar, televizorlar, ekranlar və s.) yalnız RGB modelindən istifadə edirlər. Ancaq bu model müxtəlif yollarla təşkil edilə bilər:

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Rəng alt nümunəsi

Parlaqlıq və xrominasiyanın birləşməsi kimi təqdim olunan bir şəkil ilə biz məlumatı seçmə şəkildə silməklə, insanın vizual sisteminin parlaqlığa daha çox həssaslığından istifadə edə bilərik. Xroma subsempling, parlaqlığa nisbətən xroma üçün daha az ayırdetmə istifadə edərək şəkilləri kodlaşdırma üsuludur.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Rəng həllini nə qədər azaltmaq olar?! Məlum olub ki, qətnamə və birləşmənin necə idarə olunacağını təsvir edən bəzi diaqramlar artıq var (Nəticə Rəngi ​​= Y + Cb + Cr).

Bu sxemlər kimi tanınır aşağı nümunə sistemləri və 3 qat nisbəti ilə ifadə edilir - a:x:yparlaqlıq və rəng fərqi siqnallarının nümunələrinin sayını təyin edən .

a — üfüqi seçmə standartı (adətən 4-ə bərabərdir)
x — piksellərin birinci cərgəsindəki xrom nümunələrinin sayı (üfüqi ayırdetmə nisbəti a)
y — piksellərin birinci və ikinci sıraları arasında xrom nümunələrindəki dəyişikliklərin sayı.

İstisnadır 4:1:0, hər 4-ə 4 parlaqlıq ayırdetmə blokunda bir xrom nümunəsi təmin edir.

Müasir kodeklərdə istifadə olunan ümumi sxemlər:

  • 4:4:4 (aşağı seçmə yoxdur)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - birləşmə nümunəsi

Budur YCbCr 4:2:0 istifadə edərək birləşdirilən şəkil. Qeyd edək ki, biz hər piksel üçün yalnız 12 bit sərf edirik.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Rəng subsemplinginin əsas növləri ilə kodlanmış eyni görüntü belə görünür. Birinci cərgə son YCbCr-dir, alt cərgə xroma həllini göstərir. Keyfiyyətdə cüzi itki nəzərə alınmaqla çox layiqli nəticələr.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

278p qətnamə və saniyədə 720 kadr ilə bir saatlıq video faylı saxlamaq üçün 30 GB yaddaş sahəsi saydığımızı xatırlayırsınız? YCbCr 4:2:0 istifadə etsək, onda bu ölçü yarıya qədər azalacaq - 139 GB. Hələlik bu, məqbul nəticədən hələ də uzaqdır.

FFmpeg istifadə edərək YCbCr histoqramını özünüz əldə edə bilərsiniz. Bu şəkildə mavi qırmızı üzərində üstünlük təşkil edir, bu histoqramın özündə aydın görünür.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Rəng, parlaqlıq, rəng gamutu - video baxış

Bu möhtəşəm videoya baxmağı tövsiyə edirik. Parlaqlığın nə olduğunu izah edir və ümumiyyətlə bütün nöqtələr nöqtəlidir ё parlaqlıq və rəng haqqında.

Çərçivə növləri

Gəlin davam edək. Gəlin vaxt artığını aradan qaldırmağa çalışaq. Ancaq əvvəlcə bəzi əsas terminologiyanı müəyyənləşdirək. Tutaq ki, saniyədə 30 kadr olan bir filmimiz var, onun ilk 4 kadrı budur:

Video kodek necə işləyir? 1-ci hissə: Əsaslar Video kodek necə işləyir? 1-ci hissə: Əsaslar Video kodek necə işləyir? 1-ci hissə: Əsaslar Video kodek necə işləyir? 1-ci hissə: Əsaslar

Kadrlarda çoxlu təkrarlar görə bilərik: məsələn, çərçivədən kadra dəyişməyən mavi fon. Bu problemi həll etmək üçün onları mücərrəd şəkildə üç növ çərçivəyə təsnif edə bilərik.

I-çərçivə (Intro Çərçivə)

I-çərçivə (istinad çərçivəsi, açar çərçivə, daxili çərçivə) müstəqildir. Nə vizuallaşdırmaq istədiyinizdən asılı olmayaraq, I-çərçivə əslində statik bir fotoşəkildir. Birinci kadr adətən I-çərçivədir, lakin biz müntəzəm olaraq ilk kadrlar olmasa da, I-çərçivələrini müşahidə edəcəyik.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

P-çərçivə (Predaktə edilmiş çərçivə)

P-çərçivə (proqnozlaşdırılan çərçivə) demək olar ki, həmişə cari təsvirin əvvəlki kadrdan istifadə edərək təkrar istehsal oluna bilməsindən istifadə edir. Məsələn, ikinci kadrda yeganə dəyişiklik topun irəliləməsidir. Biz 2-ci çərçivəni sadəcə olaraq bu çərçivələr arasındakı fərqdən istifadə edərək 1-ci çərçivəni bir az dəyişdirməklə əldə edə bilərik. 2-ci çərçivəni qurmaq üçün əvvəlki çərçivə 1-ə müraciət edirik.

Video kodek necə işləyir? 1-ci hissə: ƏsaslarVideo kodek necə işləyir? 1-ci hissə: Əsaslar

B çərçivəsi (Bi-proqnozlaşdırma çərçivəsi)

Daha yaxşı sıxılma təmin etmək üçün təkcə keçmişə deyil, həm də gələcək çərçivələrə keçidlər haqqında nə demək olar?! Bu, əsasən B-çərçivədir (iki istiqamətli çərçivə).

Video kodek necə işləyir? 1-ci hissə: ƏsaslarVideo kodek necə işləyir? 1-ci hissə: ƏsaslarVideo kodek necə işləyir? 1-ci hissə: Əsaslar

Aralıq çəkilmə

Bu çərçivə növləri mümkün olan ən yaxşı sıxılma təmin etmək üçün istifadə olunur. Bunun necə baş verdiyinə növbəti hissədə baxacağıq. Hələlik qeyd edək ki, istehlak edilən yaddaş baxımından ən “bahalı” I-çərçivədir, P-çərçivə nəzərəçarpacaq dərəcədə ucuzdur, lakin video üçün ən sərfəli seçim B-çərçivədir.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Müvəqqəti artıqlıq (çərçivələrarası proqnoz)

Vaxt keçdikcə təkrarları minimuma endirmək üçün hansı variantlara sahib olduğumuza baxaq. Çapraz proqnozlaşdırma metodlarından istifadə edərək bu tip artıqlığı həll edə bilərik.

0 və 1 çərçivələrinin ardıcıllığını kodlaşdırmaq üçün mümkün qədər az bit sərf etməyə çalışacağıq.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

istehsal edə bilərik çıxma, biz sadəcə olaraq 1-ci çərçivəni 0-dan çıxarırıq. Biz 1-ci kadrı alırıq, yalnız onunla əvvəlki kadr arasındakı fərqdən istifadə edirik, əslində biz yalnız nəticədə olan qalığı kodlayırıq.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Amma sizə desəm ki, daha da az bit istifadə edən daha yaxşı bir üsul var?! Əvvəlcə 0 çərçivəsini bloklardan ibarət aydın bir şəbəkəyə bölək. Və sonra 0-cı çərçivədəki blokları 1-ci çərçivə ilə uyğunlaşdırmağa çalışacağıq. Başqa sözlə, çərçivələr arasında hərəkəti təxmin edəcəyik.

Vikipediyadan - blok hərəkət kompensasiyası

Blok hərəkətinin kompensasiyası cari çərçivəni üst-üstə düşməyən bloklara bölür və hərəkət kompensasiyası vektoru blokların mənşəyini bildirir (ümumi yanlış fikir ondan ibarətdir ki, əvvəlki çərçivə üst-üstə düşməyən bloklara bölünür və hərəkət kompensasiya vektorları həmin blokların hara getdiyini bildirir. Ancaq əslində bu, əksinədir - təhlil edilən əvvəlki çərçivə deyil, sonrakı; blokların harada hərəkət etdiyi aydın deyil, haradan gəldi). Adətən mənbə blokları mənbə çərçivəsində üst-üstə düşür. Bəzi video sıxılma alqoritmləri cari çərçivəni hətta bir deyil, əvvəllər ötürülən bir neçə çərçivənin hissələrindən toplayır.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Qiymətləndirmə prosesində topun (-dən hərəkət etdiyini görürük.x= 0, y=25) tərəfindən (x= 6, y=26), dəyərlər x и y hərəkət vektorunu təyin edin. Bitləri qorumaq üçün edə biləcəyimiz başqa bir addım yalnız sonuncu blok mövqeyi ilə proqnozlaşdırılan mövqe arasındakı hərəkət vektorlarının fərqini kodlaşdırmaqdır, beləliklə, son hərəkət vektoru (x=6-0=6, y=26-25=1) olacaqdır. ).

Real vəziyyətdə bu top bölünəcəkdi n bloklar, lakin bu, məsələnin mahiyyətini dəyişmir.

Çərçivədəki obyektlər üç ölçülü hərəkət edir, buna görə də top hərəkət etdikdə vizual olaraq kiçilə bilər (və ya tamaşaçıya doğru hərəkət edərsə daha da böyüyə bilər). Bloklar arasında mükəmməl uyğunlaşma olmayacağı normaldır. Budur təxminlərimizin və real mənzərənin birləşmiş görünüşü.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Ancaq görürük ki, hərəkətin qiymətləndirilməsindən istifadə etdikdə, çərçivələr arasında deltanın hesablanması üçün daha sadə üsuldan istifadə edərkən kodlaşdırma üçün nəzərəçarpacaq dərəcədə az məlumat var.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Həqiqi hərəkət kompensasiyası necə görünəcək

Bu texnika bir anda bütün bloklara tətbiq olunur. Çox vaxt şərti hərəkət edən topumuz bir anda bir neçə bloka bölünəcəkdir.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Bu anlayışları özünüz istifadə edərək hiss edə bilərsiniz Yupiter.

Hərəkət vektorlarını görmək üçün istifadə edərək xarici proqnoz videosu yarada bilərsiniz ffmpeg.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Siz də istifadə edə bilərsiniz Intel Video Pro Analizatoru (ödənişlidir, lakin yalnız ilk on kadrla məhdudlaşan pulsuz sınaq var).

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Məkan ehtiyatı (daxili proqnoz)

Videodakı hər bir kadrı təhlil etsək, bir-biri ilə əlaqəli çoxlu sahələr tapacağıq.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Gəlin bu nümunədən keçək. Bu səhnə əsasən mavi və ağ rənglərdən ibarətdir.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Bu I-çərçivədir. Proqnoz üçün əvvəlki kadrları götürə bilmərik, lakin onu sıxışdıra bilərik. Qırmızı blokun seçimini kodlaşdıraq. Qonşularına baxsaq, onun ətrafında bəzi rəng meyllərinin olduğunu müşahidə edirik.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Rənglərin çərçivədə şaquli olaraq yayıldığını güman edirik. Bu o deməkdir ki, naməlum piksellərin rəngi qonşularının dəyərlərini ehtiva edəcəkdir.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Belə bir proqnoz səhv ola bilər. Məhz bu səbəbdən bu metodu (daxili proqnoz) tətbiq etməli və sonra real dəyərləri çıxarmalısınız. Bu, bizə qalıq blok verəcək ki, bu da orijinalla müqayisədə daha çox sıxılmış matrislə nəticələnəcək.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Daxili proqnozlarla məşq etmək istəyirsinizsə, ffmpeg-dən istifadə edərək makroblokların və onların proqnozlarının videosunu yarada bilərsiniz. Hər blok rənginin mənasını başa düşmək üçün ffmpeg sənədlərini oxumalı olacaqsınız.

Video kodek necə işləyir? 1-ci hissə: Əsaslar

Və ya siz Intel Video Pro Analyzer-dən istifadə edə bilərsiniz (yuxarıda qeyd etdiyim kimi, pulsuz sınaq versiyası ilk 10 kadrla məhdudlaşır, lakin bu, ilk vaxtlar sizə kifayət edəcək).

Video kodek necə işləyir? 1-ci hissə: Əsaslar

İkinci hissə: Video kodek necə işləyir

Mənbə: www.habr.com

Добавить комментарий