MPEG-1 - MPEG-1

Faza 1 a grupului de experți în imagini în mișcare (MPEG-1)
Extensie nume de fișier
.dat, .mpg, .mpeg, .mp1, .mp2, .mp3, .m1v, .m1a, .m2a, .mpa, .mpv
Tipul media internet
audio / mpeg, video / mpeg
Dezvoltat de MPEG (parte a ISO / IEC JTC 1 )
Eliberarea inițială 1991
Tipul formatului audio, video, container
Extins de la JPEG , H.261
Extins la MPEG-2
Standard ISO / IEC 11172

MPEG-1 este un standard pentru compresia video și audio cu pierderi . Este conceput pentru a comprima VHS - video digital brut de calitate și CD audio până la aproximativ 1,5 Mbit / s (raporturi de compresie 26: 1 și respectiv 6: 1) fără pierderi excesive de calitate, realizând CD-uri video , TV prin cablu / satelit digital și audio digital difuzare (DAB) practic.

Astăzi, MPEG-1 a devenit cel mai compatibil format audio / video cu pierderi din lume și este utilizat într-un număr mare de produse și tehnologii. Poate că cea mai cunoscută parte a standardului MPEG-1 este prima versiune a formatului audio MP3 pe care l-a introdus.

Standardul MPEG-1 este publicat ca ISO / IEC 11172 - Tehnologia informației — Codificarea imaginilor în mișcare și a sunetului asociat pentru medii de stocare digitale până la aproximativ 1,5 Mbit / s.
Standardul constă din următoarele cinci părți :

  1. Sisteme (stocare și sincronizare video, audio și alte date împreună)
  2. Video (conținut video comprimat)
  3. Audio (conținut audio comprimat)
  4. Testarea conformității (testarea corectitudinii implementărilor standardului)
  5. Software de referință (exemplu de software care arată cum se codifică și decodează conform standardului)

Istorie

Predecesorul MPEG-1 pentru codarea video a fost standardul H.261 produs de CCITT (cunoscut acum ca ITU-T ). Arhitectura de bază stabilită în H.261 a fost structura de codificare video hibridă DCT compensată de mișcare . Folosește macroblocuri de dimensiuni 16 × 16 cu estimarea mișcării bazată pe blocuri în codificator și compensarea mișcării folosind vectori de mișcare selectați de codificator în decodor, cu codificarea diferenței reziduale utilizând o transformată de cosinus discret (DCT) de dimensiune 8 × 8, cuantificare scalară și coduri cu lungime variabilă (cum ar fi codurile Huffman ) pentru codificarea entropiei . H.261 a fost primul standard practic de codificare video și toate elementele sale de design descrise au fost utilizate și în MPEG-1.

Modelat pe abordarea colaborativă de succes și pe tehnologiile de compresie dezvoltate de Joint Photographic Experts Group și CCITT 's Experts Group on Telephony (creatorii standardului de compresie a imaginilor JPEG și respectiv al standardului H.261 pentru videoconferințe ), Moving Picture Experts Group (MPEG) a fost înființat în ianuarie 1988, la inițiativa lui Hiroshi Yasuda ( Nippon Telegraph and Telephone ) și Leonardo Chiariglione ( CSELT ). MPEG a fost format pentru a răspunde nevoii de formate video și audio standard și pentru a construi pe H.261 pentru a obține o calitate mai bună prin utilizarea unor metode de codificare oarecum mai complexe (de exemplu, acceptând o precizie mai mare pentru vectorii de mișcare).

Dezvoltarea standardului MPEG-1 a început în mai 1988. Paisprezece propuneri de codecuri video și paisprezece au fost prezentate de către companii și instituții individuale pentru evaluare. Codecurile au fost testate pe scară largă pentru complexitate de calcul și calitate subiectivă (percepută de om), la viteze de date de 1,5 Mbit / s. Această rată de biți specifică a fost aleasă pentru transmisie pe linii T-1 / E-1 și ca viteză de date aproximativă a CD-urilor audio . Codecurile care au excelat în această testare au fost utilizate ca bază pentru standard și rafinate în continuare, cu caracteristici suplimentare și alte îmbunătățiri fiind încorporate în proces.

După 20 de întâlniri ale întregului grup în diferite orașe din lume și după 4 ani și jumătate de dezvoltare și testare, standardul final (pentru părțile 1-3) a fost aprobat la începutul lunii noiembrie 1992 și publicat câteva luni mai târziu. Data de finalizare raportată a standardului MPEG-1 variază foarte mult: un proiect de standard în mare parte complet a fost produs în septembrie 1990 și, din acel moment, au fost introduse doar modificări minore. Proiectul standardului era disponibil public pentru cumpărare. Standardul a fost finalizat cu întâlnirea din 6 noiembrie 1992. Grupul de cercetare multimedia Berkeley Plateau a dezvoltat un decodor MPEG-1 în noiembrie 1992. În iulie 1990, înainte de a fi scris chiar primul proiect al standardului MPEG-1, a început lucrarea la un al doilea standard, MPEG-2 , destinat extinderii MPEG -1 tehnologie pentru a furniza un videoclip complet de calitate difuzată (conform CCIR 601 ) la viteze mari de biți (3–15 Mbit / s) și suport pentru videoclipuri întrețesute . Datorită parțial similitudinii dintre cele două codecuri, standardul MPEG-2 include compatibilitate completă înapoi cu videoclipurile MPEG-1, astfel încât orice decodor MPEG-2 poate reda videoclipuri MPEG-1.

În special, standardul MPEG-1 definește foarte strict funcția de flux de biți și decodor, dar nu definește modul în care trebuie efectuată codificarea MPEG-1, deși o implementare de referință este furnizată în ISO / IEC-11172-5. Aceasta înseamnă că eficiența codării MPEG-1 poate varia drastic în funcție de codificatorul utilizat și, în general, înseamnă că codificatoarele mai noi au performanțe semnificativ mai bune decât predecesorii lor. Primele trei părți (Sisteme, Video și Audio) ale ISO / IEC 11172 au fost publicate în august 1993.

Piese MPEG-1
Parte Număr Prima
dată de lansare publică
(prima ediție)
ultima
corecție
Titlu Descriere
Partea 1 ISO / IEC 11172-1 1993 1999 Sisteme
Partea 2 ISO / IEC 11172-2 1993 2006 Video
Partea 3 ISO / IEC 11172-3 1993 1996 Audio
Partea 4 ISO / IEC 11172-4 1995 2007 Testarea conformității
Partea 5 ISO / IEC TR 11172-5 1998 2007 Simulare software

Brevete

Datorită vechimii sale, MPEG-1 nu mai este acoperit de niciun brevet esențial și poate fi astfel utilizat fără obținerea unei licențe sau plata unor taxe. Baza de date ISO a brevetelor listează un brevet pentru ISO 11172, US 4.472.747, care a expirat în 2003. Proiectul aproape complet al standardului MPEG-1 a fost disponibil public ca ISO CD 11172 până la 6 decembrie 1991. Nici articolul din iulie 2008 Kuro5hin " Starea brevetului MPEG-1, H.261 și MPEG-2 "și nici un fir din luna august 2008 pe lista de distribuție gstreamer-devel au reușit să enumere un singur brevet MPEG-1 neexpirat și un brevet MPEG-1 Audio Layer I / II. O discuție din mai 2009 cu privire la lista de corespondență whatwg a menționat brevetul SUA 5.214.678 ca acoperind posibil MPEG-1 Audio Layer II. Depus în 1990 și publicat în 1993, acest brevet este acum expirat.

Un decodor și codificator complet MPEG-1, cu „Layer III audio”, nu a putut fi implementat fără redevențe, deoarece au existat companii care solicitau taxe de brevet pentru implementarea MPEG-1 Audio Layer III, așa cum s-a discutat în articolul MP3 . Toate brevetele din lume conectate la MP3 au expirat la 30 decembrie 2017, ceea ce face acest format complet gratuit pentru utilizare. La 23 aprilie 2017, Fraunhofer IIS a încetat să plătească pentru programul de licențiere MP3 al Technicolor pentru anumite brevete și software legate de MP3.

Foști titulari de brevete

Următoarele corporații au depus declarații la ISO spunând că dețin brevete pentru formatul MPEG-1 Video (ISO / IEC-11172-2), deși toate aceste brevete au expirat de atunci.

Aplicații

  • Cel mai popular software pentru redarea video include decodarea MPEG-1, pe lângă orice alte formate acceptate.
  • Popularitatea audio MP3 a stabilit o bază masivă instalată de hardware care poate reda audio MPEG-1 (toate cele trei straturi).
  • „Practic toate dispozitivele audio digitale ” pot reda audio MPEG-1. Multe milioane au fost vândute până în prezent.
  • Înainte ca MPEG-2 să se răspândească, multe servicii digitale TV prin satelit / cablu foloseau exclusiv MPEG-1.
  • Popularitatea pe scară largă a MPEG-2 cu radiodifuzorii înseamnă MPEG-1 poate fi redat de majoritatea de cablu digital și prin satelit , cutii set-top , și discuri și playere digitale de bandă, din cauza compatibilitate.
  • MPEG-1 a fost folosit pentru video pe ecran complet pe Green Book CD-i și pe Video CD (VCD).
  • Standardul Super Video CD , bazat pe VCD, folosește exclusiv audio MPEG-1, precum și video MPEG-2.
  • Formatul DVD-Video folosește în principal video MPEG-2, dar suportul MPEG-1 este definit în mod explicit în standard.
  • Standardul DVD-Video cerea inițial MPEG-1 Audio Layer II pentru țările PAL, dar a fost schimbat pentru a permite AC-3 / Dolby Digital - numai discuri. MPEG-1 Audio Layer II este încă permis pe DVD-uri, deși extensiile mai noi pentru format, cum ar fi MPEG Multicanal , sunt rareori acceptate.
  • Majoritatea playerelor DVD acceptă și redarea Video CD și MP3 CD , care utilizează MPEG-1.
  • Standardul internațional de difuzare video digitală (DVB) utilizează în principal MPEG-1 Audio Layer II și MPEG-2 video.
  • Standardul internațional Digital Audio Broadcasting (DAB) utilizează MPEG-1 Audio Layer II exclusiv, datorită calității sale deosebit de ridicate, a cerințelor modeste de performanță a decodorului și a toleranței la erori.
  • Caseta digitală compactă utilizează PASC (Precision Adaptive Sub-band Coding) pentru a-și codifica sunetul. PASC este o versiune timpurie a MPEG-1 Audio Layer I cu o rată de biți fixă ​​de 384 kilobiți pe secundă.

Partea 1: Sisteme

Partea 1 a standardului MPEG-1 acoperă sistemele și este definită în ISO / IEC-11172-1.

Sistemele MPEG-1 specifică aspectul logic și metodele utilizate pentru a stoca audio, video și alte date codificate într-un flux de biți standard și pentru a menține sincronizarea între diferitele conținuturi. Acest format de fișier este special conceput pentru stocare pe suport media și transmisie pe canale de comunicații , care sunt considerate relativ fiabile. Numai protecția limitată împotriva erorilor este definită de standard, iar erorile mici din fluxul de biți pot provoca defecte vizibile.

Această structură a fost denumită ulterior flux de program MPEG : „Proiectarea sistemelor MPEG-1 este în esență identică cu structura fluxului de programe MPEG-2”. Această terminologie este mai populară, mai precisă (o diferențiază de un flux de transport MPEG ) și va fi utilizată aici.

Fluxuri elementare, pachete și referințe de ceas

  • Fluxurile elementare (ES) sunt fluxurile de biți brute ale datelor codificate audio și video MPEG-1 (ieșire de la un codificator). Aceste fișiere pot fi distribuite singure, cum este cazul fișierelor MP3.
  • Fluxurile elementare pachetizate (PES) sunt fluxuri elementare împachetate în pachete cu lungimi variabile, adică împărțite ES în bucăți independente unde suma de verificare a redundanței ciclice (CRC) a fost adăugată la fiecare pachet pentru detectarea erorilor.
  • System Clock Reference (SCR) este o valoare de sincronizare stocată într-un antet de 33 de biți din fiecare PES, la o frecvență / precizie de 90 kHz, cu o extensie suplimentară de 9 biți care stochează date de sincronizare suplimentare cu o precizie de 27 MHz. Acestea sunt inserate de codificator, derivat din ceasul de timp al sistemului (STC). Fluxurile audio și video codificate simultan nu vor avea valori SCR identice, totuși, din cauza tamponării, codificării, jitterului și altor întârzieri.

Fluxuri de programe

Fluxurile de programe (PS) sunt preocupate de combinarea mai multor fluxuri elementare pachetate (de obicei doar un PES audio și video) într-un singur flux, asigurând livrarea simultană și menținerea sincronizării. Structura PS este cunoscută sub numele de multiplex sau format de container .

Timpurile de prezentare (PTS) există în PS pentru a corecta disparitatea inevitabilă între valorile SCR audio și video (corecție bazată pe timp). Valorile PTS de 90 kHz din antetul PS indică decodorului ce valori SCR video se potrivesc cu valorile SCR audio. PTS determină când se afișează o porțiune a unui program MPEG și este, de asemenea, utilizat de decodor pentru a determina când datele pot fi aruncate din buffer . Fie video, fie audio va fi întârziat de decodor până când ajunge segmentul corespunzător al celuilalt și poate fi decodat.

Manipularea PTS poate fi problematică. Decodoarele trebuie să accepte mai multe fluxuri de programe care au fost concatenate (unite secvențial). Acest lucru face ca valorile PTS din mijlocul videoclipului să fie resetate la zero, care apoi încep să crească din nou. Astfel de disparități PTS înfășurate pot provoca probleme de sincronizare care trebuie tratate special de decodor.

Ștampilele de decodare (DTS), în plus, sunt necesare din cauza cadrelor B. Cu cadrele B în fluxul video, cadrele adiacente trebuie codificate și decodificate în afara ordinii (cadre reordonate). DTS este destul de asemănător cu PTS, dar în loc să trateze doar cadre secvențiale, acesta conține marcajele de timp adecvate pentru a spune decodorului când să decodeze și să afișeze următorul cadru B (tipurile de cadre explicate mai jos), înaintea ancorei sale (P - sau I-) cadru. Fără cadre B în videoclip, valorile PTS și DTS sunt identice.

Multiplexare

Pentru a genera PS, multiplexorul va intercala fluxurile elementare (două sau mai multe) pachetizate. Acest lucru se face astfel încât pachetele fluxurilor simultane să poată fi transferate pe același canal și să fie garantate că ambele ajung la decodor exact în același timp. Acesta este un caz de multiplexare prin divizare în timp .

Determinarea cantității de date din fiecare flux ar trebui să fie în fiecare segment intercalat (dimensiunea intercalării) este complicată, dar este o cerință importantă. O intercalare necorespunzătoare va avea ca rezultat subfluxuri sau deborduri de tampon, deoarece receptorul primește mai mult de un flux decât poate stoca (de exemplu, audio), înainte de a obține suficiente date pentru a decoda celălalt flux simultan (de exemplu, video). MPEG Video Buffering Verifier (VBV) ajută la determinarea dacă un PS multiplexat poate fi decodat de un dispozitiv cu o viteză de transfer specifică a datelor și dimensiunea bufferului. Acest lucru oferă feedback muxerului și codificatorului, astfel încât să poată schimba dimensiunea mux-ului sau să ajusteze ratele de biți după cum este necesar pentru conformare.

Partea 2: Video

Partea 2 a standardului MPEG-1 acoperă videoclipurile și este definită în ISO / IEC-11172-2. Designul a fost puternic influențat de H.261 .

MPEG-1 Video exploatează metode de compresie perceptivă pentru a reduce semnificativ rata de date cerută de un flux video. Reduce sau aruncă complet informațiile din anumite frecvențe și zone ale imaginii pe care ochiul uman are o capacitate limitată de a le percepe pe deplin. De asemenea, exploatează redundanța temporală (în timp) și spațială (într-o imagine) obișnuită în video pentru a obține o compresie a datelor mai bună decât ar fi posibil altfel. (Vezi: Compresie video )

Spațiul de culoare

Exemplu de subeșantionare 4: 2: 0. Cele două cercuri centrale suprapuse reprezintă pixeli albastru crom și roșu crom (culoare), în timp ce cele 4 cercuri exterioare reprezintă lumina (luminozitatea).

Înainte de codificarea videoclipului la MPEG-1, spațiul de culoare este transformat în Y′CbCr (Y ′ = Luma, Cb = Chroma Blue, Cr = Chroma Red). Luma (luminozitate, rezoluție) este stocată separat de crom (culoare, nuanță, fază) și chiar mai departe separată în componente roșii și albastre.

Croma este, de asemenea, submasionată la 4: 2: 0 , ceea ce înseamnă că este redusă la jumătate de rezoluție pe verticală și jumătate de rezoluție pe orizontală, adică la doar un sfert din numărul de probe utilizate pentru componenta luma a videoclipului. Această utilizare a rezoluției mai mari pentru unele componente de culoare este similară ca concept cu filtrul model Bayer, care este utilizat în mod obișnuit pentru senzorul de captare a imaginilor în camerele digitale color. Deoarece ochiul uman este mult mai sensibil la micile schimbări de luminozitate (componenta Y) decât la culoare (componentele Cr și Cb), subeșantionarea cromatică este o modalitate foarte eficientă de a reduce cantitatea de date video care trebuie comprimate. Cu toate acestea, la videoclipurile cu detalii fine ( complexitate spațială ridicată ) acest lucru se poate manifesta ca artefacte aliasing cromă. În comparație cu alte artefacte de compresie digitală , această problemă pare să fie foarte rar o sursă de enervare. Datorită submasionării, videoclipul Y′CbCr 4: 2: 0 este stocat în mod obișnuit folosind dimensiuni pare ( divizibile cu 2 orizontal și vertical).

Culoarea Y′CbCr este deseori numită informal YUV pentru a simplifica notația, deși acest termen se aplică mai corect unui format de culoare oarecum diferit. În mod similar, termenii luminanță și crominanță sunt adesea folosiți în locul termenilor (mai exacți) luma și cromă.

Rezoluție / bitrate

MPEG-1 acceptă rezoluții de până la 4095 × 4095 (12 biți) și viteze de biți de până la 100 Mbit / s.

Videoclipurile MPEG-1 sunt văzute cel mai frecvent utilizând rezoluția Format de intrare sursă (SIF): 352 × 240, 352 × 288 sau 320 × 240. Aceste rezoluții relativ scăzute, combinate cu un bitrate mai mic de 1,5 Mbit / s, alcătuiesc ceea ce este cunoscut sub numele de parametri constrânși de flux de biți (CPB), redenumit ulterior profilul „Low Level” (LL) în MPEG-2. Aceasta este specificațiile video minime pe care orice decodor ar trebui să le poată gestiona, pentru a fi considerate conforme MPEG-1 . Aceasta a fost selectată pentru a oferi un echilibru bun între calitate și performanță, permițând utilizarea unui hardware rezonabil de ieftin al vremii.

Tipuri de cadre / imagini / blocuri

MPEG-1 are mai multe tipuri de cadre / imagini care au scopuri diferite. Cea mai importantă, dar simplă, este I-frame .

I-cadre

„I-frame” este o abreviere pentru „ Intra-frame ”, așa-numitele deoarece pot fi decodate independent de orice alte cadre. Ele pot fi, de asemenea, cunoscute sub numele de imagini I sau cadre cheie datorită funcției lor oarecum similare cu cadrele cheie utilizate în animație. Cadrele I pot fi considerate efectiv identice cu imaginile JPEG de bază .

Căutarea de mare viteză printr-un videoclip MPEG-1 este posibilă numai la cel mai apropiat cadru I. Atunci când tăiați un videoclip, nu este posibil să porniți redarea unui segment de videoclip înainte de primul cadru I din segment (cel puțin nu fără o recodare intensivă din punct de vedere computerizat). Din acest motiv, videoclipurile MPEG numai cu cadru I sunt utilizate în aplicațiile de editare.

Compresia numai cadru I este foarte rapidă, dar produce dimensiuni de fișiere foarte mari: un factor de 3 × (sau mai mult) mai mare decât un videoclip MPEG-1 codificat în mod normal, în funcție de cât de complex este un anumit videoclip. Numai videoclipul MPEG-1 I-frame este foarte asemănător cu videoclipul MJPEG . Atât de mult încât conversia foarte rapidă și teoretic fără pierderi (în realitate, există erori de rotunjire) poate fi făcută de la un format la altul, cu condiția să fie urmate câteva restricții (spațiu de culoare și matrice de cuantizare) la crearea bitstream.

Lungimea dintre cadrele I este cunoscută ca dimensiunea grupului de imagini (GOP). MPEG-1 folosește cel mai frecvent o dimensiune GOP de 15-18. adică 1 cadru I pentru fiecare 14-17 cadre non-I (o combinație de cadre P- și B-). Cu codificatoare mai inteligente, dimensiunea GOP este aleasă dinamic, până la o limită maximă preselectată.

Limitele sunt plasate asupra numărului maxim de cadre între cadrele I datorită complexării decodificării, dimensiunii bufferului decodificatorului, timpului de recuperare după erorile de date, capacității de căutare și acumulării de erori IDCT în implementările de precizie redusă, cele mai frecvente în decodoarele hardware (Vezi: IEEE -1180).

Rame P

„P-cadru” este o abreviere pentru „Predict-frame”. Acestea pot fi, de asemenea, numite cadre anticipate sau inter-cadre ( cadrele B sunt, de asemenea, inter-cadre).

Există cadre P pentru a îmbunătăți compresia prin exploatarea redundanței temporale (în timp) într-un videoclip. Cadrele P stochează doar diferența de imagine față de cadru (fie un cadru I, fie un cadru P) imediat anterior acestuia (acest cadru de referință este numit și cadru ancoră ).

Diferența dintre un cadru P și cadrul său de ancorare este calculată utilizând vectori de mișcare pe fiecare macrobloc al cadrului (vezi mai jos). Astfel de date de vector de mișcare vor fi încorporate în cadrul P pentru utilizare de către decodor.

Un cadru P poate conține orice număr de blocuri intra-codificate, în plus față de orice blocuri anticipate.

Dacă un videoclip se schimbă drastic de la un cadru la altul (cum ar fi o tăiere ), este mai eficient să îl codificați ca cadru I.

B-cadre

„Cadru B” înseamnă „cadru bidirecțional” sau „cadru bipredictiv”. Ele pot fi, de asemenea, cunoscute sub numele de cadre anticipate înapoi sau imagini B. Cadrele B sunt destul de similare cu cadrele P, cu excepția faptului că pot face predicții folosind atât cadrele anterioare cât și cele viitoare (adică două cadre ancore).

Prin urmare, este necesar ca jucătorul să decodeze mai întâi următorul cadru de ancorare I sau P secvențial după cadrul B, înainte ca cadrul B să poată fi decodat și afișat. Aceasta înseamnă că decodarea cadrelor B necesită tampoane de date mai mari și provoacă o întârziere crescută atât la decodare, cât și în timpul codificării. Acest lucru necesită, de asemenea, caracteristica de marcare a timpului de decodare (DTS) în fluxul container / sistem (a se vedea mai sus). Ca atare, cadrele B au fost mult timp supuse multor controverse, sunt adesea evitate în videoclipuri și uneori nu sunt pe deplin acceptate de decodoarele hardware.

Nu sunt prevăzute alte cadre dintr-un cadru B. Din această cauză, poate fi inserat un cadru B cu rate de biți foarte mici, acolo unde este necesar, pentru a ajuta la controlul bitrate-ului. Dacă acest lucru s-ar face cu un cadru P, cadrele P viitoare ar fi prezise din acesta și ar scădea calitatea întregii secvențe. Cu toate acestea, în mod similar, viitorul cadru P trebuie să codifice în continuare toate modificările dintre acesta și cadrul de ancorare I sau P anterior. Cadrele B pot fi benefice și în videoclipurile în care fundalul din spatele unui obiect este dezvăluit pe mai multe cadre sau în tranziții decolorate, cum ar fi schimbările de scenă.

Un cadru B poate conține orice număr de blocuri intra-codificate și blocuri anticipate, în plus față de blocurile predite înapoi sau preduse bidirecțional.

Rame D

MPEG-1 are un tip unic de cadru care nu se găsește în standardele video ulterioare. „Cadrele D” sau imaginile DC sunt imagini codificate independent (intra-cadre) care au fost codificate folosind numai coeficienți de transformare DC (coeficienții AC sunt eliminați la codificarea cadrelor D - vezi DCT mai jos) și, prin urmare, sunt de calitate foarte scăzută. Cadrele D nu sunt niciodată menționate prin cadre I-, P- sau B-. Cadrele D sunt utilizate numai pentru previzualizări rapide ale videoclipului, de exemplu atunci când căutați un videoclip la viteză mare.

Având în vedere echipamente de decodare cu performanțe moderate, previzualizarea rapidă poate fi realizată prin decodarea cadrelor I în locul cadrelor D. Aceasta oferă previzualizări de calitate superioară, deoarece cadrele I conțin coeficienți de curent alternativ, precum și coeficienți de curent continuu. Dacă codificatorul poate presupune că capacitatea de decodare rapidă a cadrelor I este disponibilă în decodificatoare, poate economisi biți prin nu trimite cadre D (îmbunătățind astfel compresia conținutului video). Din acest motiv, cadrele D sunt rareori folosite efectiv în codificarea video MPEG-1, iar caracteristica cadrului D nu a fost inclusă în alte standarde de codare video ulterioare.

Macroblocuri

MPEG-1 funcționează pe video într-o serie de blocuri 8 × 8 pentru cuantificare. Cu toate acestea, pentru a reduce rata de biți necesară pentru vectorii de mișcare și pentru că croma (culoarea) este sub-eșantionată cu un factor de 4, fiecare pereche de blocuri de cromă (roșu și albastru) corespunde a 4 blocuri de lumină diferite. Acest set de 6 blocuri, cu o rezoluție de 16 × 16, este procesat împreună și denumit macrobloc .

Un macrobloc este cea mai mică unitate independentă de video (color). Vectorii de mișcare (vezi mai jos) funcționează exclusiv la nivelul macroblocului.

Dacă înălțimea sau lățimea videoclipului nu sunt multipli exacți de 16, rândurile și coloanele complete ale macroblocurilor trebuie încă codificate și decodificate pentru a completa imaginea (deși pixelii suplimentari decodificați nu sunt afișați).

Vectorii de mișcare

Pentru a reduce cantitatea de redundanță temporală într-un videoclip, doar blocurile care se modifică sunt actualizate (până la dimensiunea maximă a GOP). Acest lucru este cunoscut sub numele de reaprovizionare condiționată. Cu toate acestea, acest lucru nu este foarte eficient de la sine. Mișcarea obiectelor și / sau a camerei poate duce la necesitatea actualizării unor porțiuni mari ale cadrului, chiar dacă s-a modificat doar poziția obiectelor codate anterior. Prin estimarea mișcării, codificatorul poate compensa această mișcare și poate elimina o cantitate mare de informații redundante.

Codificatorul compară cadrul curent cu părțile adiacente ale videoclipului din cadrul ancorei (cadrul anterior I- sau P-) într-un model diamantat, până la o limită de rază predefinită (specifică codificatorului) din zona macroblocului curent. Dacă este găsită o potrivire, doar direcția și distanța (adică vectorul a mișcării ) din zona de film anterior la necesitatea macrobloc curent care trebuie codificat în inter-cadru (P- sau B- cadru). Reversul acestui proces, realizat de decodor pentru reconstituirea imaginii, se numește compensare a mișcării .

Cu toate acestea, un macrobloc prezis rareori se potrivește perfect cu imaginea actuală. Diferențele dintre zona de potrivire estimată și cadrul / macroblocul real se numește eroare de predicție. Cu cât este mai mare cantitatea de eroare de predicție, cu atât mai multe date trebuie codificate suplimentar în cadru. Pentru o compresie video eficientă, este foarte important ca codificatorul să fie capabil să efectueze în mod eficient și precis estimarea mișcării.

Vectorii de mișcare înregistrează distanța dintre două zone de pe ecran pe baza numărului de pixeli (numit și pels). Videoclipul MPEG-1 folosește o precizie vector mișcare (MV) de o jumătate de pixel sau jumătate de pel. Cu cât este mai precisă precizia MV-urilor, cu atât este mai exactă potrivirea și este mai eficientă compresia. Cu toate acestea, există compromisuri cu o precizie mai mare. O precizie mai bună a VM are ca rezultat utilizarea unei cantități mai mari de date pentru a reprezenta VM, deoarece numerele mai mari trebuie stocate în cadru pentru fiecare VM, complexitate crescută a codificării, deoarece nivelurile crescute de interpolare pe macrobloc sunt necesare atât pentru codificator, cât și pentru decodor, și randamente diminuate (câștiguri minime) cu MV de precizie mai mare. Precizia half-pel a fost aleasă ca compromis ideal pentru acel moment. (Vezi: qpel )

Deoarece macroblocurile vecine sunt susceptibile de a avea vectori de mișcare foarte asemănători, aceste informații redundante pot fi comprimate destul de eficient prin stocarea codificată DPCM . Doar cantitatea (mai mică) de diferență dintre MV-urile pentru fiecare macrobloc trebuie stocată în fluxul de biți final.

Cadrele P au un vector de mișcare per macrobloc, în raport cu cadrul de ancorare anterior. Cu toate acestea, cadrele B pot utiliza doi vectori de mișcare; unul din cadrul de ancorare anterior și unul din cadrul de ancorare viitor.

Macroblocurile parțiale și marginile / barele negre codate în videoclip care nu cad exact pe limita macroblocului provoacă ravagii cu predicția mișcării. Informațiile de umplere / bordură a blocurilor împiedică blocarea macroblocului cu orice altă zonă a videoclipului și, prin urmare, trebuie codificate informații de eroare de predicție semnificativ mai mari pentru fiecare dintre câteva zeci de macroblocuri parțiale de-a lungul marginii ecranului. Codificarea și cuantificarea DCT (a se vedea mai jos), de asemenea, nu sunt la fel de eficiente atunci când există un contrast de imagine mare / clar într-un bloc.

Există o problemă și mai gravă cu macroblocurile care conțin zgomot semnificativ, aleatoriu, de margine , unde imaginea trece la (de obicei) negru. Toate problemele de mai sus se aplică și zgomotului de margine. În plus, aleatoritatea adăugată este pur și simplu imposibil de comprimat semnificativ. Toate aceste efecte vor scădea substanțial calitatea (sau va crește rata de biți) a videoclipului.

DCT

Fiecare bloc 8 × 8 este codificat prin aplicarea mai întâi a unei transformate de cosinus discret înainte (FDCT) și apoi a unui proces de cuantificare. Procesul FDCT (de la sine) este teoretic fără pierderi și poate fi inversat prin aplicarea unui DCT invers ( IDCT ) pentru a reproduce valorile originale (în absența oricăror erori de cuantificare și de rotunjire). În realitate, există unele (uneori mari) erori de rotunjire introduse atât prin cuantificare în codificator (așa cum este descris în secțiunea următoare), cât și prin eroare de aproximare IDCT în decodor. Precizia minimă admisă a unei aproximări IDCT a decodorului este definită de ISO / IEC 23002-1. (Înainte de 2006, acesta era specificat de IEEE 1180-1990.)

Procesul FDCT convertește blocul 8 × 8 al valorilor pixelilor necomprimate (luminozitate sau valori ale diferenței de culoare) într-o matrice indexată 8 × 8 de valori ale coeficientului de frecvență . Unul dintre acestea este „coeficientul DC” (statistic ridicat în varianță), care reprezintă valoarea medie a întregului bloc 8 × 8. Ceilalți 63 de coeficienți sunt „coeficienții AC” statistic mai mici, care au valori pozitive sau negative fiecare reprezentând abateri sinusoidale de la valoarea blocului plat reprezentat de coeficientul DC.

Un exemplu de bloc codificat 8 × 8 FDCT:

Deoarece valoarea coeficientului de curent continuu este corelată statistic de la un bloc la altul, este comprimată folosind codificarea DPCM . Doar cantitatea (mai mică) de diferență dintre fiecare valoare DC și valoarea coeficientului DC din blocul din stânga acestuia trebuie reprezentată în fluxul de biți final.

În plus, conversia de frecvență efectuată prin aplicarea DCT oferă o funcție de decorelație statistică pentru a concentra eficient semnalul în mai puține valori de amplitudine mare înainte de aplicarea cuantificării (vezi mai jos).

Cuantizare

Cuantizarea este, în esență, procesul de reducere a preciziei unui semnal, prin împărțirea acestuia cu o dimensiune mai mare a pasului și rotunjirea la o valoare întreagă (adică găsirea celui mai apropiat multiplu și aruncarea restului).

Cuantificatorul la nivel de cadru este un număr de la 0 la 31 (deși codificatorii vor omite / dezactiva de obicei unele dintre valorile extreme) care determină câtă informație va fi eliminată dintr-un cadru dat. Cuantificatorul la nivel de cadru este de obicei fie selectat dinamic de către codificator pentru a menține o anumită rată de biți specificată de utilizator, fie (mult mai puțin frecvent) direct specificată de utilizator.

O „matrice de cuantificare” este un șir de 64 de numere (variind de la 0 la 255) care îi spune codificatorului cât de importantă sau neimportantă este fiecare informație vizuală. Fiecare număr din matrice corespunde unei anumite componente de frecvență a imaginii video.

Un exemplu de matrice de cuantizare:

Cuantificarea se realizează luând fiecare dintre cele 64 de valori de frecvență ale blocului DCT, împărțindu-le la cuantificatorul la nivel de cadru, apoi împărțindu-le la valorile lor corespunzătoare din matricea de cuantizare. În cele din urmă, rezultatul este rotunjit în jos. Acest lucru reduce semnificativ sau elimină complet informațiile din unele componente de frecvență ale imaginii. De obicei, informațiile de înaltă frecvență sunt mai puțin importante din punct de vedere vizual, astfel încât frecvențele înalte sunt mult mai puternic cuantificate (reduse drastic). MPEG-1 folosește de fapt două matrice de cuantificare separate, una pentru blocuri intra (blocuri I) și una pentru blocuri inter (blocuri P- și B), astfel încât cuantificarea diferitelor tipuri de blocuri poate fi realizată independent, și astfel, mai eficient .

Acest proces de cuantificare reduce de obicei un număr semnificativ de coeficienți AC la zero, (cunoscuți sub numele de date rare ), care pot fi apoi comprimate mai eficient prin codificarea entropiei (compresie fără pierderi) în etapa următoare.

Un exemplu de bloc DCT cuantificat:

Cuantificarea elimină o cantitate mare de date și este principalul pas de procesare cu pierderi în codificarea video MPEG-1. Aceasta este, de asemenea, sursa principală a majorității artefactelor de compresie video MPEG-1 , cum ar fi blocarea , bandarea culorilor , zgomotul , soneria , decolorarea și colab. Acest lucru se întâmplă atunci când videoclipul este codificat cu o rată de biți insuficientă și, prin urmare, codificatorul este forțat să utilizeze cuantificatoare la nivel de cadru ridicat (cuantificare puternică ) prin mare parte a videoclipului.

Codificarea entropiei

Mai mulți pași în codificarea videoclipului MPEG-1 sunt fără pierderi, ceea ce înseamnă că vor fi inversați la decodare, pentru a produce exact aceleași valori (originale). Deoarece acești pași de comprimare a datelor fără pierderi nu adaugă zgomot sau nu modifică conținutul (spre deosebire de cuantificare), este uneori denumit codare fără zgomot . Întrucât compresia fără pierderi are scopul de a elimina cât mai multă redundanță posibil, este cunoscută sub numele de codificare a entropiei în domeniul teoriei informației .

Coeficienții blocurilor DCT cuantificate tind să fie zero spre dreapta jos. Compresia maximă poate fi obținută printr-o scanare în zig-zag a blocului DCT începând din stânga sus și folosind tehnici de codare pe lungime.

Coeficienții DC și vectorii de mișcare sunt codificați DPCM .

Codificarea pe lungime de rulare (RLE) este o metodă simplă de comprimare a repetării. Un șir secvențial de caractere, indiferent de cât timp, poate fi înlocuit cu câțiva octeți, notând valoarea care se repetă și de câte ori. De exemplu, dacă cineva ar spune „cinci nouă”, ați ști că înseamnă numărul: 99999.

RLE este deosebit de eficient după cuantificare, deoarece un număr semnificativ de coeficienți AC sunt acum zero (numiți date rare ) și pot fi reprezentate cu doar câțiva octeți. Acesta este stocat într-un tabel special Huffman bidimensional care codifică lungimea de rulare și caracterul de sfârșit de rulare.

Codificarea Huffman este o metodă foarte populară și relativ simplă de codificare a entropiei și utilizată în videoclipurile MPEG-1 pentru a reduce dimensiunea datelor. Datele sunt analizate pentru a găsi șiruri care se repetă des. Aceste șiruri sunt apoi introduse într-un tabel special, cu cele mai frecvente date repetate atribuindu-se cel mai scurt cod. Acest lucru păstrează datele cât mai mici posibil cu această formă de compresie. Odată ce tabelul este construit, acele șiruri din date sunt înlocuite cu codurile lor (mult mai mici), care fac referire la intrarea corespunzătoare din tabel. Decodorul inversează pur și simplu acest proces pentru a produce datele originale.

Acesta este ultimul pas în procesul de codificare video, astfel încât rezultatul codificării Huffman este cunoscut sub numele de „bitstream” video MPEG-1.

Configurații GOP pentru aplicații specifice

Cadrele I stochează informații complete despre cadru în cadrul și sunt, prin urmare, potrivite pentru acces aleatoriu. Cadrele P oferă compresie utilizând vectori de mișcare în raport cu cadrul anterior (I sau P). Cadrele B oferă compresie maximă, dar necesită cadrele anterioare și următoare pentru calcul. Prin urmare, procesarea cadrelor B necesită mai mult buffer pe partea decodificată. Pe baza acestor factori, trebuie selectată o configurație a Grupului de imagini (GOP). Doar secvențele I-frame oferă compresie minimă, dar sunt utile pentru acces aleatoriu, FF / FR și editabilitate. Secvențele de cadre I și P oferă compresie moderată, dar adaugă un anumit grad de acces aleatoriu, funcționalitate FF / FR. Secvențele cadrelor I, P și B oferă o compresie foarte mare, dar cresc, de asemenea, semnificativ întârzierea de codare / decodare. Astfel de configurații nu sunt, prin urmare, potrivite pentru aplicații de video-telefonie sau conferințe video.

Rata de date tipică a unui cadru I este de 1 bit pe pixel, în timp ce cea a unui cadru P este de 0,1 biți pe pixel, iar pentru un cadru B, 0,015 biți pe pixel.

Partea 3: Audio

Partea 3 a standardului MPEG-1 acoperă sunetul și este definită în ISO / IEC-11172-3.

MPEG-1 Audio utilizează psihoacustica pentru a reduce semnificativ rata de date cerută de un flux audio. Reduce sau aruncă complet anumite părți ale sunetului pe care deduce că urechea umană nu le poate auzi , fie pentru că sunt în frecvențe în care urechea are o sensibilitate limitată, fie sunt mascate de alte sunete (de obicei mai puternice).

Codare canal:

  • Mono
  • Joint Stereo - intensitate codificată
  • Joint Stereo - M / S codificat doar pentru Layer III
  • Stereo
  • Dual (două canale mono necorelate )
  • Rata de eșantionare : 32000, 44100 și 48000 Hz
  • Rata de biți pentru stratul I: 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416 și 448 kbit / s
  • Rata de biți pentru stratul II: 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 și 384 kbit / s
  • Rata de biți pentru stratul III: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 și 320 kbit / s

MPEG-1 Audio este împărțit în 3 straturi. Fiecare strat superior este mai complex din punct de vedere al calculului și, în general, este mai eficient la rate de biți mai mici decât precedentul. Straturile sunt semi compatibile înapoi, deoarece straturile superioare reutilizează tehnologiile implementate de straturile inferioare. Un decodor „Full” Layer II poate reda și sunetul Layer I, dar nu și Layer III, deși nu toți jucătorii de nivel superior sunt „plini”.

Stratul I

MPEG-1 Audio Layer I este o versiune simplificată a MPEG-1 Audio Layer II. Stratul I folosește o dimensiune a cadrului de 384 eșantioane mai mică pentru o întârziere foarte mică și o rezoluție mai fină. Acest lucru este avantajos pentru aplicații precum teleconferința, editarea de studio etc. Are o complexitate mai mică decât Layer II pentru a facilita codificarea în timp real a hardware-ului disponibil c.  1990 .

Stratul I a fost adoptat la vremea sa și a fost utilizat în mod special pe caseta digitală compactă Philips , defunctă, la o rată de biți de 384 kbit / s. Odată cu îmbunătățirile substanțiale ale performanței procesării digitale de la introducerea sa, Layer I a devenit rapid inutil și învechit.

Fișierele audio de nivel I folosesc de obicei extensia „.mp1” sau uneori „.m1a”.

Stratul II

MPEG-1 Audio Layer II (prima versiune a MP2, adesea numită informal MUSICAM) este un format audio cu pierderi conceput pentru a oferi o calitate înaltă la aproximativ 192 kbit / s pentru sunetul stereo. Decodarea audio MP2 este simplă din punct de vedere al calculului în raport cu MP3, AAC etc.

Istorie / MUSICAM

MPEG-1 Audio Layer II a fost derivat din codecul audio MUSICAM ( Masking pattern adapter Universal Subband Integrated Coding And Multiplexing ), dezvoltat de Centre commun d'études de télévision et télécommunications (CCETT), Philips și Institut für Rundfunktechnik (IRT / CNET) ) ca parte a inițiativei paneuropene EUREKA 147 interguvernamentale de cercetare și dezvoltare pentru dezvoltarea difuzării audio digitale.

Cele mai multe caracteristici cheie ale MPEG-1 Audio au fost moștenite direct de la MUSICAM, inclusiv banca de filtre, procesarea domeniului de timp, dimensiunile cadrelor audio etc. Cu toate acestea, s-au făcut îmbunătățiri, iar algoritmul MUSICAM actual nu a fost utilizat în MPEG-1 final. Audio Layer II standard. Utilizarea pe scară largă a termenului MUSICAM pentru a se referi la Stratul II este complet incorectă și descurajată atât din motive tehnice, cât și din motive juridice.

Detalii tehnice

MP2 este un codificator de domeniu de timp. Folosește un filtru polifazat cu 32 de sub-benzi cu întârziere redusă pentru cartografierea frecvenței de timp; având intervale suprapuse (adică polifazate) pentru a preveni aliasarea. Modelul psihoacustic se bazează pe principiile mascării auditive , efectelor de mascare simultane și pragului absolut al auzului (ATH). Dimensiunea unui cadru Layer II este fixată la 1152 de probe (coeficienți).

Domeniul de timp se referă la modul în care se efectuează analiza și cuantificarea pe eșantioane scurte, discrete / bucăți ale formei de undă audio. Aceasta oferă o întârziere redusă, deoarece doar un număr mic de eșantioane sunt analizate înainte de codificare, spre deosebire de codificarea domeniului de frecvență (cum ar fi MP3), care trebuie să analizeze de multe ori mai multe eșantioane înainte ca acesta să poată decide cum să transforme și să scoată audio codat. Aceasta oferă, de asemenea, performanțe mai mari la impulsuri complexe, aleatorii și tranzitorii (cum ar fi instrumentele percutante și aplauzele), oferind evitarea artefactelor, cum ar fi pre-ecoul.

Banca de 32 de filtre de sub-bandă returnează 32 de coeficienți de amplitudine , unul pentru fiecare bandă / segment de frecvență de dimensiuni egale a sunetului, care are o lățime de aproximativ 700 Hz (în funcție de frecvența de eșantionare a sunetului). Codificatorul utilizează apoi modelul psihoacustic pentru a determina care sub-benzi conțin informații audio mai puțin importante și, așadar, unde cuantificarea va fi inaudibilă sau cel puțin mult mai puțin vizibilă.

Exemplu de analiză FFT pe un eșantion de undă audio.

Modelul psihoacustic este aplicat folosind o transformată Fourier rapidă (FFT) de 1024 puncte . Din cele 1152 de eșantioane pe cadru, 64 de eșantioane în partea de sus și de jos a intervalului de frecvență sunt ignorate pentru această analiză. Probabil că nu sunt suficient de semnificative pentru a schimba rezultatul. Modelul psihoacustic folosește un model de mascare determinat empiric pentru a determina care sub-benzi contribuie mai mult la pragul de mascare și cât de mult zgomot de cuantificare poate conține fiecare fără a fi perceput. Orice sunete sub pragul absolut al auzului (ATH) sunt complet eliminate. Biții disponibili sunt apoi atribuiți fiecărei sub-benzi în consecință.

De obicei, sub-benzile sunt mai puțin importante dacă conțin sunete mai liniștite (coeficient mai mic) decât o sub-bandă vecină (adică frecvență similară) cu sunete mai puternice (coeficient mai mare). De asemenea, componentele „de zgomot” au de obicei un efect de mascare mai semnificativ decât componentele „tonale”.

Sub-benzile mai puțin semnificative sunt reduse în precizie prin cuantificare. Aceasta implică practic comprimarea intervalului de frecvență (amplitudinea coeficientului), adică ridicarea zgomotului. Apoi calculează un factor de amplificare, pentru ca decodorul să-l folosească pentru a re-extinde fiecare sub-bandă la intervalul de frecvență adecvat.

Stratul II poate folosi opțional codarea stereo de intensitate , o formă de stereo comun. Aceasta înseamnă că frecvențele de peste 6 kHz ale ambelor canale sunt combinate / mixate în jos într-un singur canal (mono), dar informațiile despre „canalul lateral” privind intensitatea relativă (volum, amplitudine) a fiecărui canal sunt păstrate și codificate în bitstream separat. La redare, canalul unic este redat prin difuzoarele stânga și dreapta, cu informațiile de intensitate aplicate fiecărui canal pentru a da iluzia sunetului stereo. Acest truc perceptiv este cunoscut sub numele de „irelevanță stereo”. Acest lucru poate permite o reducere suplimentară a ratei de biți audio fără pierderi semnificative de fidelitate, dar în general nu este utilizat cu rate de biți mai mari, deoarece nu oferă un sunet de calitate foarte înalt (transparent).

Calitate

Testarea audio subiectivă de către experți, în cele mai critice condiții implementate vreodată, a arătat că MP2 oferă compresie audio transparentă la 256 kbit / s pentru CD-ul de 16 biți de 44,1 kHz folosind cea mai veche implementare de referință (codificatoarele mai recente ar trebui să funcționeze probabil și mai bine) . Raportul de compresie (aproximativ) 1: 6 pentru CD audio este deosebit de impresionant, deoarece este destul de aproape de limita superioară estimată a entropiei perceptive , la puțin peste 1: 8. Realizarea unei compresii mult mai mari pur și simplu nu este posibilă fără a arunca unele informații perceptibile.

MP2 rămâne un standard de codificare audio cu pierderi favorizat datorită performanțelor sale deosebit de ridicate de codare audio pe materiale audio importante, cum ar fi castanetă, orchestră simfonică, voci masculine și feminine și tranzitorii (impulsuri) deosebit de complexe și de mare energie (sunete percutante: triunghi, glockenspiel și audiență) aplauze. Testări mai recente au arătat că MPEG Multicanal (bazat pe MP2), în ciuda faptului că este compromis de un mod matricial inferior (de dragul compatibilității cu versiunile anterioare), este puțin mai mic decât codecurile audio mult mai recente, cum ar fi Dolby Digital (AC-3) și Advanced Audio Coding (AAC) (mai ales în marja de eroare - și substanțial superior în unele cazuri, cum ar fi aplauzele audienței). Acesta este unul dintre motivele pentru care sunetul MP2 continuă să fie utilizat pe scară largă. Testele de verificare stereo MPEG-2 AAC au ajuns la o concluzie foarte diferită, însă, arătând că AAC oferă performanțe superioare MP2 la jumătate din bitrate. Motivul acestei disparități atât cu testele anterioare, cât și cu cele ulterioare nu este clar, dar în mod ciudat, un eșantion de aplauze este în mod special absent din testul din urmă.

Fișierele audio de nivel II folosesc de obicei extensia „.mp2” sau uneori „.m2a”.

Stratul III

MPEG-1 Audio Layer III (prima versiune de MP3 ) este un format audio cu pierderi conceput pentru a oferi o calitate acceptabilă la aproximativ 64 kbit / s pentru audio mono pe legături ISDN cu un singur canal ( BRI ) și 128 kbit / s pentru sunet stereo .

Istorie / ASPEC

ASPEC 91 în Deutsches Museum Bonn , cu codificator (mai jos) și decodor

MPEG-1 Audio Layer III a fost derivat din codecul Adaptive Spectral Perceptual Entropy Coding (ASPEC) dezvoltat de Fraunhofer ca parte a inițiativei de cercetare și dezvoltare interguvernamentale paneuropene EUREKA 147 pentru dezvoltarea difuzării audio digitale. ASPEC a fost adaptat pentru a se potrivi cu modelul Layer II (dimensiunea cadrului, banca de filtrare, FFT etc.), pentru a deveni Layer III.

ASPEC s-a bazat el însuși pe Multiple adaptive Spectral audio Coding (MSC) de EF Schroeder , Optimum Coding in the Frequency domain (OCF) teza de doctorat de Karlheinz Brandenburg la Universitatea din Erlangen-Nürnberg , Perceptual Transform Coding (PXFM) de JD Johnston la AT&T Bell Labs și codificarea Transform a semnalelor audio de către Y. Mahieux și J. Petit la Institut für Rundfunktechnik (IRT / CNET).

Detalii tehnice

MP3 este un codificator de transformare audio de domeniu de frecvență . Chiar dacă folosește unele dintre funcțiile stratului inferior, MP3 este destul de diferit de MP2.

MP3 funcționează pe 1152 de eșantioane precum MP2, dar trebuie să ia mai multe cadre pentru analiză înainte ca procesarea și cuantificarea domeniului de frecvență (MDCT) să poată fi eficiente. Emite un număr variabil de eșantioane, utilizând un buffer de biți pentru a activa această codificare a ratei de biți variabile (VBR), menținând în același timp 1152 de cadre de ieșire pentru dimensiunea eșantionului. Acest lucru determină o întârziere semnificativ mai mare înainte de ieșire, ceea ce a făcut ca MP3-ul să fie considerat nepotrivit pentru aplicațiile de studio în care trebuie să aibă loc editarea sau alte procesări.

MP3-ul nu beneficiază de banca de filtru polifazată cu 32 de sub-benzi, ci doar folosește o transformare MDCT în 18 puncte pe fiecare ieșire pentru a împărți datele în 576 de componente de frecvență și pentru a le prelucra în domeniul frecvenței. Această granularitate suplimentară permite MP3-ului să aibă un model psihoacustic mult mai fin și să aplice cu mai multă atenție cuantificarea adecvată fiecărei benzi, oferind performanțe mult mai bune la bitrate redus.

Procesarea domeniului de frecvență impune și unele limitări, provocând un factor de rezoluție temporală de 12 sau 36 × mai slabă decât Stratul II. Acest lucru provoacă artefacte de cuantificare, datorită sunetelor tranzitorii, cum ar fi evenimente percutante și alte evenimente de înaltă frecvență care se răspândesc pe o fereastră mai mare. Acest lucru are ca rezultat pătarea sonoră și pre-ecou . MP3 folosește rutine de detecție pre-ecou și codificare VBR, care îi permite să crească temporar rata de biți în timpul pasajelor dificile, în încercarea de a reduce acest efect. De asemenea, poate comuta între fereastra normală de cuantificare a eșantionului 36 și, în schimb, folosește în schimb 3 × 12 ferestre de eșantionare scurte, pentru a reduce lungimea temporală (timp) a artefactelor de cuantificare. Și totuși, alegând o dimensiune a ferestrei destul de mică pentru a face răspunsul temporal al MP3-ului suficient de adecvat pentru a evita cele mai grave artefacte, MP3 devine mult mai puțin eficient în compresia domeniului de frecvență a componentelor staționale, tonale.

Fiind forțat să utilizeze un model de domeniu de timp hibrid (banc de filtre) / domeniu de frecvență (MDCT) pentru a se potrivi cu stratul II, pur și simplu pierde timpul de procesare și compromite calitatea prin introducerea artefactelor de aliasing. MP3 are o etapă de anulare aliasing specifică pentru a masca această problemă, dar care produce în schimb energie de domeniu de frecvență care trebuie codificată în audio. Acest lucru este împins în partea de sus a gamei de frecvențe, unde majoritatea oamenilor au auz limitat, în speranța că distorsiunea pe care o provoacă va fi mai puțin audibilă.

FFT-ul de 1024 puncte al stratului II nu acoperă în totalitate toate eșantioanele și ar omite câteva sub-benzi întregi MP3, unde trebuie determinați factorii de cuantificare. MP3 utilizează în schimb două treceri de analiză FFT pentru estimarea spectrală, pentru a calcula pragurile de mascare globale și individuale. Aceasta îi permite să acopere toate cele 1152 de probe. Dintre cele două, utilizează nivelul pragului de mascare global de la trecerea mai critică, cu cel mai dificil sunet.

În plus față de intensitatea stereo comună codificată a stratului II, MP3 poate folosi stereo comun articular / lateral (mijloc / lateral, m / s, MS, matriciat). Cu stereo mid / lateral, anumite intervale de frecvență ale ambelor canale sunt îmbinate într-un singur canal mono (mijlociu, mediu, L + R), în timp ce diferența de sunet dintre canalele stânga și dreapta este stocată ca un canal separat (lateral, LR) . Spre deosebire de intensitatea stereo, acest proces nu elimină nicio informație audio. Atunci când este combinat cu cuantificarea, poate exagera artefacte.

Dacă diferența dintre canalele stânga și dreapta este mică, canalul lateral va fi mic, ceea ce va oferi o economie de până la 50% a ratei de biți și îmbunătățirea calității asociate. Dacă diferența dintre stânga și dreapta este mare, codificarea stereo standard (discretă, stânga / dreapta) poate fi preferată, deoarece stereo de articulație mijloc / lateral nu va oferi niciun beneficiu. Un codificator MP3 poate comuta între stereo m / s și stereo complet pe cadru cu cadru.

Spre deosebire de straturile I și II, MP3 utilizează codarea Huffman cu lungime variabilă (după percepție) pentru a reduce în continuare bitrate-ul, fără alte pierderi de calitate.

Calitate

Cuantificarea mai fină și selectivă a MP3-ului se dovedește în mod deosebit superioară MP2 la rate de biți inferioare. Este capabil să ofere o calitate audio aproape echivalentă Layer II, cu o rată de biți mai mică cu 15% (aproximativ). 128 kbit / s este considerat „punctul dulce” pentru MP3; ceea ce înseamnă că oferă un sunet stereo de calitate acceptabil în general pe majoritatea muzicii și există îmbunătățiri ale calității în scădere de la creșterea ratei de biți în continuare. MP3 este, de asemenea, considerat ca prezentând artefacte care sunt mai puțin enervante decât Stratul II, atunci când ambele sunt utilizate la rate de biți care sunt prea mici pentru a asigura o reproducere fidelă.

Fișierele audio Layer III folosesc extensia „.mp3”.

Extensii audio MPEG-2

Standardul MPEG-2 include mai multe extensii pentru MPEG-1 Audio. Acestea sunt cunoscute ca MPEG-2 BC - compatibile cu MPEG-1 Audio. Audio MPEG-2 este definit în ISO / IEC 13818-3.

Aceste rate de eșantionare sunt exact jumătate din cele definite inițial pentru MPEG-1 Audio. Au fost introduse pentru a menține un sunet de calitate superioară atunci când codificați sunetul la viteze de biți mai mici. Ratele de biți chiar mai mici au fost introduse deoarece testele au arătat că MPEG-1 Audio ar putea oferi o calitate superioară oricărui codec audio existent ( c.  1994 ) cu rate de biți foarte scăzute (adică vorbire ).

Partea 4: Testarea conformității

Partea 4 a standardului MPEG-1 acoperă testarea conformității și este definită în ISO / IEC-11172-4.

Conformitate: Proceduri pentru testarea conformității.

Oferă două seturi de linii directoare și fluxuri de biți de referință pentru testarea conformității decodificatoarelor audio și video MPEG-1, precum și a fluxurilor de biți produse de un codificator.

Partea 5: Software de referință

Partea 5 a standardului MPEG-1 include software de referință și este definită în ISO / IEC TR 11172-5.

Simulare: software de referință.

Cod de referință C pentru codificarea și decodarea audio și video, precum și multiplexarea și demultiplexarea.

Aceasta include codul codificatorului audio ISO Dist10 , pe care se bazau inițial LAME și TooLAME .

Extensie de fișier

.mpg este una dintre numeroasele extensii de fișiere pentru compresia audio și video MPEG-1 sau MPEG-2 . Videoclipurile MPEG-1 Part 2 sunt rare în zilele noastre, iar această extensie se referă de obicei la un flux de programe MPEG (definit în MPEG-1 și MPEG-2) sau la un flux de transport MPEG (definit în MPEG-2). Există și alte sufixe, cum ar fi .m2ts, care specifică containerul precis, în acest caz MPEG-2 TS, dar acest lucru are o relevanță redusă pentru media MPEG-1.

.mp3 este cea mai frecventă extensie pentru fișierele care conțin audio MP3 (de obicei MPEG-1 Audio, uneori MPEG-2 Audio). Un fișier MP3 este de obicei un flux necontenit de audio brut; modul convențional de etichetare a fișierelor MP3 este prin scrierea datelor pe segmente „gunoi” ale fiecărui cadru, care păstrează informațiile media, dar sunt aruncate de către player. Acest lucru este similar în multe privințe cu modul în care sunt etichetate fișierele .AAC brute (dar acest lucru este mai puțin acceptat în zilele noastre, de exemplu iTunes ).

Rețineți că, deși s-ar aplica, .mpg nu adaugă în mod normal AAC sau AAC brute în containerele MPEG-2 partea 7 . Extensia .aac denotă în mod normal aceste fișiere audio.

Vezi si

Implementări
  • Libavcodec include codificatoare și decodoare video / audio MPEG-1/2
  • Codificatoare video / audio Mjpegtools MPEG-1/2
  • TooLAME Un codificator MPEG-1 Audio Layer II de înaltă calitate.
  • LAME Un codificator audio MP3 de înaltă calitate.
  • Musepack Un format bazat inițial pe MPEG-1 Audio Layer II, dar acum incompatibil.

Referințe

linkuri externe