Așa funcționează codarea H.264
Un codec video bun este universal; Ideal pentru comprimarea imaginilor de orice rezoluție, indiferent de conținut sau platformă. H.264 îndeplinește pe deplin toate cerințele unui codec modern, iar întreținătorul de format, MPEG-LA, lucrează pentru a-l face un cvasi-standard nu numai pentru videoclipurile „offline”, ci și pentru cele online. În plus față de unele dintre exemplele menționate în introducere, formatul H.264 este mult mai utilizat, nu există o zonă la nivelul în care nu ar fi găsit. Este folosit de mulți furnizori de servicii IPTV și DVB-T/C, printre alții, dar versiunea sa optimizată poate fi găsită și în camere video, iar în forma extinsă este potrivită și pentru codificarea materialelor 3D. În cele ce urmează, vă vom arăta cum funcționează codecul în practică.
Noțiuni de bază
Probabil că nu vom spune nimănui o mare noutate spunând că un videoclip nu este altceva decât o serie de imagini statice. De aceea, dacă vrem să înțelegem modul în care funcționează un codec video, nu putem tăia în mijlocul lucrurilor, trebuie mai întâi să înțelegem cum funcționează stocarea unei imagini (fotografie). În special, trebuie să fim conștienți de funcționarea metodei de compresie cu pierderi, cum ar fi formatul JPG, deoarece H.264 este, de asemenea, cu pierderi.
Majoritatea metodelor de comprimare a imaginii și de compresie video sunt de pierdere, ceea ce înseamnă că materialul comprimat - indiferent dacă este fotografie sau video (sau audio) - nu este exact la fel ca originalul. Scopul utilizării metodelor de compresie cu pierderi este de a putea stoca informații informaționale aproape identice cu originalul într-un spațiu mult mai mic, menținând în același timp diferența dintre materialul de imagine comprimat și cel original. Există o serie de motive pentru care acest lucru ar putea fi necesar, trebuie doar să luați cele mai banale două: pentru videoclipurile de pe internet, trebuie să împingeți cea mai bună calitate video posibilă pe o lățime de bandă relativ îngustă, în timp ce pentru discurile Blu-ray, trebuie să vă asigurați că filmul are extra și multe altele. se potrivesc pe un disc de 25 (sau 50) Gbyte. Codecurile pot varia în ceea ce privește eficiența, cele mai bune fiind JPG, PNG și H.264, dar cu setările corecte, pot produce o calitate a imaginii comprimate, pe care ochii noștri nu o pot face diferența față de original.
La fel ca standardele MPEG-2 și MPEG-4, standardul H.264 definește doar un cadru, o bară de instrumente și nu descrie procesul specific de compresie - oferă libertate dezvoltatorilor, dar asigură, de asemenea, compatibilitatea prin introducerea de profiluri între dispozitive.
Compresie pierdută a imaginii
Indiferent dacă utilizați formatul RGB sau YCbCr, videoclipul trebuie împărțit în canale. În cazul codificării YPbPr, al doilea și al treilea canal au un conținut de informații mai mic. Compresorul efectuează pașii următori pe fiecare canal.
Primul pas este împărțirea imaginii în zone mai mici, blocuri. Dimensiunea zonei depinde și de codec, H.264 folosește macroblocuri de 16 × 16 pixeli, în cadrul cărora, opțional, 8 × 8 și/sau 4 × 4 microblocuri. Cu cât dimensiunea blocului este mai mică, cu atât rămân mai multe informații utile - cu toate acestea, este necesar mai mult spațiu pentru stocarea datelor. Vom continua să folosim 8 × 8 pixeli în descriere pentru simplitate - în acest caz, fiecare bloc conține 64 de pixeli.
Al doilea pas este de a determina cât de mult conține informații „importante” în fiecare zonă. Pentru aceasta, compresoarele sunt cel mai adesea așa-numitele. Ei folosesc un algoritm DCT (transformare discretă a cosinusului) pentru a descrie spectrul de frecvență al unei zone date. Rezultatul transformării este o matrice întregi de 8 × 8, care arată frecvența pixelilor. În matrice, valoarea din stânga sus este de obicei cea mai mică, iar valoarea coeficienților crește (de obicei) atât la dreapta, cât și în jos. Cu cât gama de frecvențe este mai mică, cu atât ochii noștri sunt mai sensibili la o anumită informație. Adică, cu cât conținutul de frecvență al unui pixel dat este mai mic, cu atât este mai important. Codecurile folosesc date despre spectrul de frecvență pentru a determina cât de precis trebuie stocat un anumit pixel, adică, în cele din urmă, cât spațiu de stocare (relativ) ar trebui utilizat pentru a stoca un pixel dat.
Pe matricea calculată anterior, compresorul este apoi așa-numitul efectuează cuantificare, ceea ce poate reduce semnificativ „intervalul dinamic” al matricei. În practică, aceasta înseamnă o operație de divizare simplă utilizând o altă matrice, în mare parte predefinită. În cazul lui H.264, matricea de cuantificare este de 52 de grade, iar în unele profiluri este posibil să se utilizeze propria matrice.) În timpul cuantizării, coeficienții din dreapta și în jos pot deveni 0, ceea ce înseamnă că există niciun coeficient relevant la locația dată.abaterie. Rezultă deja că imaginea originală nu poate fi restaurată perfect din setul de date obținut prin cuantificare.
În timpul compresiei, codecul efectuează calculele de mai sus pe toate blocurile, rezultând o mulțime de „numere”. Nu este exact cazul H.264, unde codecul estimează conținutul blocului curent pe baza conținutului de informații al blocurilor învecinate care au fost deja procesate și apoi stochează diferența dintre valorile estimate și cele reale - acesta este de obicei este posibil în mai puțini (dar nu mai mulți) biți, deoarece blocurile sunt de obicei similare între ele. Rezultatul final este același, obținem o mulțime de „numere”.
Sarcina acum este de a stoca aceste numere într-un spațiu cât mai mic posibil. În cazul unui flux H.264, pot fi utilizate două metode pentru a stoca setul de date, în funcție de profil (vom reveni la aceasta mai târziu). Ambele sunt entropice; unul este CAVLC și celălalt este CABAC. CAVLC este o compresie standard, bazată pe dicționar, fără pierderi, care folosește o cheie mai scurtă pentru termenii utilizați în mod obișnuit, reducând spațiul de stocare. CABAC, pe de altă parte, este o procedură în mai mulți pași bazată pe un model probabilistic și codare aritmetică. Avantajul este cu o eficiență cu până la 10-15% mai mare, dar dezavantajul este că necesită o capacitate de calcul mult mai mare în timpul redării, până la jumătate din capacitatea totală de calcul utilizată.!
- Codificare pentru fumat acupunctură, cancer pulmonar, fumat - mână în mână, pagina de codare pentru fumat
- Codificare în Fumatul Sochi, 25 de cadre renunță la forum - Cum să renunți
- Fidea instantanee unghiile artificiale sunt foarte bizare, dar funcționează
- Codificare nelimitată (răspuns rapid); Ziar
- Gy lucrează arma miraculoasă a guvernului - arătăm numerele vorbărețe