Sunet, Audio, Video, WAV, AVI, Container, Etc
-
Upload
andreibanc -
Category
Documents
-
view
684 -
download
2
description
Transcript of Sunet, Audio, Video, WAV, AVI, Container, Etc
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 1/10
Introducere
Ceea ce noi numim „sunet” reprezintă, de fapt, o perturbaţie (energie mecani că) propagată prin mediu (aer)
sub forma unor unde. Când undele sonore ajung la timpanul nostru, nervii auditivi sunt stimulaţi şi trimit
impulsuri electrice către creier, acesta realizând o interpretare a informaţiei primite. În mod asemănătorfuncţionează, spre exemplu, un microfon: mica membrană a microfonului, de care este fixată o bobină, este
pusă în vibraţie de undele sonore care s e ciocnesc de ea şi , datorită unui magnet permanent aflat în apropiere,
se induce curent electric alternativ în bobină, „interpretat” mai apoi de un dispozitiv fie de amplificare, fie de
înregistrare.
Înregistrarea digitală constă în următoarele etape:
Semnalul analog (curentul sinusoidal) este transmis de către dispozitivul de captare al s unetului către
un convertor analog→digital (en. „ADC” – analog to digital converter );
ADC-ul transformă semnalul primit într-un şir de biţi (1 şi 0). Cantitatea de biţi „produşi” pe secundă
poartă numele de SAMPLE RATE.
Informaţia este apoi stocată, spre exemplu, pe hard-disk sau CD-ROM.
Pentru a reda sunetul, s e parcurg paşii în sens invers:
Secvenţa binară este trimisă unei unităţi „DAC” (en. digital to analog converter ), ce transformă biţii
înapoi, în semnal analog.
Semnalul este eventual amplificat pentru a fi trimis apoi spre difuzoare.
Salvarea sunetelor într-un calculator se bazează pe procedeul de eşantionare a semnalului audio, de reţinere a
valorilor amplitudinii (voltajului), la anumite interval e de timp. Numărul de biţi folosi t în formatul audio pentru
reprezentarea binară a valorii unei măsurări de amplitudine s e numeşte rezoluţie, sau adâncime de biţi (en.
resolution, bits per sample, bit depth ). Intervalele de timp la care se măsoară această amplitudine poartă
numele d e perioadă, ajungându-se astfel la noţiunea de frecvenţă (en. sample rate) – numărul de măsurări
într-un interval de o secundă.
Datele pot fi stocate necomprimate sau comprimate, pentru a se reduce dimensiunea fişierului.
Bit Depth & Sample Rate
Calitatea unei secvenţe audio este determinată deci de doi factori:
De câte ori pe secundă este măsurată amplitudinea semnalului analog ( SAMPLE RATE);
Intervalul numeric în care se a flă datele fiecărei măsurători (BIT DEPTH).
Primul factor se măsoară în kHz, kilohertzi . Spre exemplu, CD-uril e audio sunt înregistrate la o rată de 44.1 kHz,
adică fiecare secundă de audio s-a constitut prin măsurarea de 44,100 de ori a amplitudinii semnalului. Într-o secvenţă audio nu poate fi captat un sunet ce are o înălţime mai mare decât jumătate din valoarea„sample rate” a s ecvenţei respective. Prin urmare, pentru o va loare de 44.1 kHz, nu pot fi ca ptate sunete ce
depăşesc frecvenţa de 22.05 kHz. Experţii s pun că majoritatea oamenilor nu pot auzi oricum peste pragul de 20 kHz şi de aceea s -a stabilitvaloarea de 44.1 kHz pentru CD-uri le audio.
Cel de-al doilea factor, „bit depth”, determină intervalul val orilor numerice ce s unt asociate fiecărei citiri deamplitudine. Bineînţeles, o creştere a „bit depth” impli că o reprezentare digitală a sunetului de o mai mareacurateţe şi fineţe. Şi, fii ndcă urechea umană este sensibilă la mici variaţii ale i ntensităţii sunetului, este de
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 2/10
dorit un interval cât mai mare de reprezentare. Pentru CD-uril e audio, intervalul este cuprins între 0 şi 65,535,„bit depth” având valoarea 16 (16 biţi = 2 octeţi).
Iată o comparaţie în funcţie de valorile factorilor „Sample rate” şi „bit depth”:
Sample rate Bit depth Avantaje Dezavantajeminimum 44.1 kHz 16 biţi Nu este necesară conversia pentru „arderea” secvenţei
pe un CD audio.Ocupă mai puţin spaţiu per secundă înregistrată. Necesită puţin timp de procesare (ex. la redare). Reprezintă standardul internaţional pentru compact-discuri (aşa-zisul Red Book Standard).
Calitatea oferită ar putea fiinsuficientă pentruformate audio viitoare.
recomandat 44.1 kHz 24 biţi O reprezentare de o mai mare acurateţe a sursei sonoreoriginale.„Dinamicitate” sonoră sporită.Reprezintă standardul profesioniştilor în domeniul audio.
optim 96 kHz 24 biţi Standardul pentru DVD/HD Audio.Domeniu al frecvenţelor reprezentabile mult mai mare. O ca litate superioară, alegerea ideală pentru înregistrărimuzicale.
Mai mult potenţial pentru aplicaţii vii toare. Reflectă noile tendinţe pentru profesioniştii î n domeniulaudio.
Ocupă mult spaţiu persecundă înregistrată. Timp de procesare mare.Pentru unele secvenţe
audio nu prezintă îmbunătăţiri perceptibile. Necesită conversie pentrufolosirea pe un CD Audiostandard.
Următorul tabel prezintă dimensiuni ale unor fişiere ce conţin O ORĂ de sunet în format digital, pentru valori
diferite ale ratei de eşantionare (sample rate) şi rezoluţiei de biţi (bit depth).
Sample Rate Bit depth Număr de canale Mărime, în MB
44.1 kHz 16 2 (stereo) 591 MB
44.1 kHz 16 1 (mono) 296 MB
44.1 kHz 24 2 (stereo) 887 MB44.1 kHz 24 1 (mono) 444 MB
96 kHz 24 2 (stereo) 1931 MB
96 kHz 24 1 (mono) 966 MB
Ce este un format audio? Ce este un codec?
Un format de fişier audio este un format dedicat s tocării datelor audi o pe un sistem de calcul. Un astfel de
format se poate compune dintr-un flux brut de biţi , dar, în general , constă într-un format-container cu o
structură fixă. Acesta conţine, în afara datelor audio propriu -zise şi o serie informaţii necesare, dispuse sub
aspectul unui strat ce „înveleşte” datele.
Este important să ştim să facem diferenţa între un format de fişiere şi un codec. Un codec este un mic
program ce se ocupă cu compresia şi decompresia fluxului brut de biţi, în timp ce formatul de fişiere audio este
containerul în care se află „depozitat” acest flux de biţi. Cuvântul codec s -a format prin l egarea celor două
cuvinte-cheie: compress -decompress. Iată definiţia codecului, preluată de pe Wikipedia:
Un codec este un program sau o bibliotecă de software, eventual chiar şi un aparat hardware corespunzător, care asigură
codarea şi decodarea unei informaţii. Termenul este folosit în general referitor la mediile audio sau video analoage, care
trebuie transformate într-un format digital. Cu această ocazie datele rezultate sunt de obicei şi comprimate, de exemplu
pentru a accelera transmiterea lor prin reţeaua de telefonie mobilă sau prin Internet. Prin extensie se numesc tot "codec" şi
unele programe care transformă informaţia deja digitaliz ată dintr -un format în altul ("transcodare").
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 3/10
Majoritatea formatelor audio suportă multiple codecuri . Sa zicem că un fişier de format audio XYZ are extensi a
„.xyz” . Vom crea două a stfel de fişiere ce conţin exact acelaşi sunet. Dacă nu ar fi aplicat niciun codec, atunci
datele din ambele fişiere ar fi perfect identice . Însă un fişier îl salvăm folosind codecul A, iar pe celălalt folosind
codecul B. Fiecare fişier va conţine la o anumită adresă numele codecului folosi t, iar datele nu vor mai fi
aceleași, ele fiind salvate prin algoritmi diferiţi . Mărimea celor două fişiere nu va mai fi nici ea aceeași,
depinzând de gradul de comprimare al fiecărui codec.
Cu toate că datele sunt di ferite, informaţia (sunetul) rămâne, de obicei , neschimbată. Când vom rula un player
audio pentru redarea secvenţei înregistrate, acesta „observă” codecul specificat şi va importa proceduri din
librăriile dinamice ale fiecărui codec (un exemplu a r fi fişierele „DLL” , pentru platforma Windows) pentru
interpretarea datelor din fişierele noas tre. Dacă codecul s pecificat nu este instalat pe calculator, atunci datele
nu vor putea fi citi te, deci sunetul nu va fi redat.
Tipuri de formate
Există trei mari grupe de formate audio:
Formate ce conţin date audio necomprim ate (en. uncompressed audio formats) – cum ar fi WAV,
AIFF, AU;
Formate ce conţin date audio comprim ate, însă fără pierdere de informaţie (en. lossless
compression) – cum ar fi FLAC, Monkey’s audio (extensia .ape), WavPack (extensia .wv ), Windows
Media Audio Lossless (WMA Lossless).
Formate cu conţin date comprimate, cu pierdere de date şi informaţie (en. lossy ) – MP3, Vorbis
(extensia .ogg), AAC, Windows Media Audio (WMA).
1. Formate fără compresie
Există un format principal de reprezentare necomprimată a s unetului, şi anume PCM (Pulse-codemodulation – „împărţirea” curentului sinusoidal pe eşantioane dreptunghiulare, un mod de
aproximare fidelă a sunetului), folosit în fişierele WAV (platforma Windows) şi AIFF (pentru Mac OS).
Formatele WAV şi AIFF sunt deosebit de flexibile şi sunt concepute astfel încât să poată stoca flux de
date la diverse combinaţii de rezoluţie şi rate de eşantionare (en. bit rate, sample rate). Sunt folosite
pentru s tocarea înregistrărilor originale.
Formatul AIFF (Audio Interchange File Format) se bazează pe formatul IFF (Interchange File Format)
dezvoltat de Apple. Formatul WAV se bazează pe RIFF (Resource Interchange File Format), replica
Microsoft la IFF-ul celor de la Apple.
BWF (Broadcast Wave Format - http://en.wikipedia.org/wiki/Broadcast_Wave_Format ) este un
format audio standard creat de European Broadcasting Union, ca un succesor al lui WAV. BWFpermite metadatelor (metadate = date despre date) să fie stocate în fişi er. Este foarte uti liza t de către
profesioniştii în domeniul audio, în televiziune şi i ndustria cinematografică. Fişierele conţin şi o linie
temporală ce permite si ncronizarea perfectă a sunetului cu anumite imagini, etc.
2. Formate cu compresie, fără pierdere de informaţie
O secvenţă de date dintr-un fişi er cu un astfel de format necesi tă mai mult timp de procesare înainte
de a fi încărcat în memoria principală, dar ocupă mai puţin spaţiu pe hard -disk.
Formatele fără compresie reţin acela şi număr de biţi pentru reprezentarea f iecărui sample (eşantion)
astfel încât, spre exemplu, un minut de li nişte depli nă rezultă într-un fişier de aceeaşi mărime cu un
fişier ce reţine un minut de muzică orchestrală. În cazul comprimării fără pierdere de informaţii ,lucrurile stau altfel. Minutul de muzică va ocupa ceva mai puţin spaţiu decât iniţial (necomprimat), iar
minutul de linişte aproape că nu va ocupa deloc spaţiu. Formatele comprimate fără pierdere de
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 4/10
informaţii asigură o rată de compresie de aproximativ 50%. Dezvoltarea a lgoritmilor de comprimare
are ca s cop reducerea timpului de procesare, menţinând totuşi o rată bună de compresi e.
3. Formate cu compresie, cu pierdere de informaţie
Codarea cu pierdere de informaţie se foloseşte pentru a reduce cantitatea de date, eventual pe
seama calităţii. Intenţia este de a elimina numai informaţiile pe care omul obişnuit nu le percepe (deexemplu detalii le ultrafine ale unei interpretări muzicale, sunetele foarte înalte sau cele cu o
amplitudine foarte mică). Pe măsură ce se doreşte obţinerea unei c antităţi din ce în ce mai mici a
materialului codat, pierderea de i nformaţie poate deveni totuşi vizibilă/auzibilă şi chiar deranjantă (de
exemplu, în cazul codării unei imagini, cerul cu nori poate fi înlocuit pur şi si mplu printr -o pată
albastră uniformă).
Fişierele cu o astfel de compresi e pot duce la o dimensi une a datelor de 5-20% din fluxul de date
audio iniţial. Exemple: MP3, OGG, WMA .
Formate audio (şi codecurile asociate lor)
WAV – formatul s tandard pentru pl atforma Windows. În general , folos eşte stocarea necomprimată, PCM,
ceea ce înseamnă că fişierele WAV pot avea dimensiuni mari, de aproape 10 MB pe minut. Pot fi totuşi
folosite o varietate de codecuri pentru reducerea dimensiunii. Formatul WAV este un „descendent” al
formatului RIFF.
OGG – un format gratis, cu sursa deschisă (en. open-source), ce suportă o mulţime de codecuri , cel mai
folosit fiind codecul Vorbis, care oferă o compresie similară celei oferite de MP3, dar nu este chiar atât de
răspândit ca acesta.
MPC – Musepack (denumit ini ţial MPEG+; extensii: .mpp, .mpc) este un format cu sursa deschisă, ce oferăo compresie cu pierdere de informaţie. Musepack şi Vorbis sunt considerate de mulţi cele mai bune
codecuri existente, oferind o bună compresie şi o calitate foarte mare a sunetului. Cu toate acestea,
Musepack e foarte puţin popular, fiind folosit în principal de audiofili.
FLAC – (Free Lossless Audio Codec) - Specificaţiile acestui format (codecul i mplicit) pot fi găsite la adresa
http://flac.sourceforge.net/format.html .
AIFF – formatul standard pentru platforma Mac OS.
AU – formatul standard folosit de Sun, Unix şi Java. Fluxul a udio poate fi PCM (necomprimat) sau
comprimat cu codecurile „ μ-law ”, „a-law ” sau G729.
MIDI (Musical Instrument Digital Interface) – protocolul standard de comunicare dintre instrumentele
muzicale electronice şi computer. Un fişier MIDI conţine mai multe piste (en. tracks) paralele de date cereţin, fiecare, înălţimea, intensitatea , durata fiecărei note muzicale transmis e de un instrument electronic
muzical. Spre exemplu, un fişier MIDI ce „înregistrează” un duet cla viatură -tobe electronice va a vea două
piste. De reţinut este faptul că MIDI nu reţine semnale audio, ci doar caracteristici ale notelor.
GSM (codec) – creat pentru a fi folosit în telefonie (comunicaţii) în Europa, şi este foarte practic pentru că
reprezintă un bun compromis între dimensiunea datelor şi calitatea sunetului. Fluxurile audio din fi şierele
WAV pot fi comprimate cu codecul GSM.
VOX – acest format folos eşte în general codecul ADPCM ( Adaptive Differential Pulse Code Modulation)
pentru stocarea fluxului de date. Fişierele VOX se aseamănă cu cele WAV, însă nu conţin un antet cu
informaţii despre rata de eşantionare sau compresia folosită, ele trebuind s pecificate înainte de redarea
fişierului. Dacă nu sunt specificate, se cons ideră că fişierul este „codat” cu ADPCM, iar rata lui de
eşantionare este de 8000 Hz.
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 5/10
AAC ( Advanced Audio Coding) – acest format se bazează pe standardele MPEG2 şi MPEG4 . Se regăseşte în
fişiere cu extensiile .acc, .m4a, .mp4, .3gp, etc.
MP3 (MPEG-1 Layer 3) – cel mai popular format de stocare şi răspândire a muzicii , dezvoltat de Institutul
Fraunofer . Eliminând date redundante din fl uxul de date (sunetele greu de p erceput de urechea umană),
poate determina o compresie de aproape 90% a unui fişier WAV de exemplu (în format PCM), menţinând
în acelaşi timp o calitate foarte bună. WMA (Windows Media Audio) – format cu compresie, deţinut de Micros oft.
RA (Real Audio) – format conceput pentru transmiterea fl uxurilor audio prin Internet (poate fi redat în
timpul descărcării – en. streaming).
AVI & WAV
Ce înseamnă FourCC?
Termenul de FourCC înseamnă „ four-character code” – o înşirui re de 4 caractere, sau, altfel spus , un întreg de
32 de bi ţi rezultat în urma concatenării a 4 caractere ASCII. De exemplu, FourCC-ul „abcd ” se reprezintă ca
0x64636261 (hexazecimal, sistem little-endian) sau 0x61626364 (hexazecimal, sis tem big-endian). Formatul
AVI (ca şi cel WAV) se bazează pe FourCC -uri pentru i dentificarea tipurilor de date (flux audio, flux video), a
porţiilor de date (data chunks) şi a al tor informaţii, precum va fi descris ulterior.
Ce înseamnă RIFF?
Formatul de fişiere RIFF (Resource Interchange File Format ) este baza pentru WAV, AVI, ANI. Un document
RIFF constă într-un antet RIFF urmat d e 0 sau mai multe liste şi porţii ( lists & chunks).
Antetul RIFF are următoarea formă: 'RIFF' fileSize fileType (data), unde 'RIFF' este un
FourCC,fileSize este un întreg pe 4 octeţi (mărimea întregului fişi er minus 8 octeţi), fileType este tot
un FourCC (fie „AVI ”, fie „WAVE”), ia r data conţine porţii sau liste, în orice ordine.
O porţie (chunk ) are următoarea formă: ckID ckSize ckData, unde ckID este un identificator FourCC
pentru data din porţie, ckSize este un întreg pe 4 octeţi ce reprezintă mărimea (în octeţi) a datelor din
ckData, iar ckData conţine 0 sau mai mulţi octeţi de date. Data este întotdeauna „rotunjită, aranjată” (en.
padded ) spre un număr fix de cuvinte (WORDS), în cazul în care ckSize nu are valoarea divizibilă cu
sizeof(WORD). Să reţinem însă că ckSize oferă strict numărul octeţilor valizi din porţia de date, nu include şi
numărul octeţilor de „aranjare” (en. padding).
O listă are următoarea formă: 'LIST' listSize listType listData, unde 'LIST' este un
FourCC,listSize este un întreg pe 4 octeţi ce oferă numărul octeţilor din listă, listType este un FourCC,
iar listData constă în porţii sau liste, în ori ce ordine. listSize numără şi cei 4 octeţi ai FourCC-ului
listType, nu doar numărul octeţilor din listData, însă nu include (cum este şi normal) cei 4 octeţi ai
FourCC-ului 'LIST' sau cei 4 octeţi ce reprezintă câ mpul însuşi (listSize).
În continuare, vom folosi următoarea notaţie pentru a reprezenta o porţie de date:
ckID ( ckData ), câmpul ckSize (mărimea porţiei) fiind subînţeles (implicit).
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 6/10
În aceeaşi manieră, o listă va fi reprezentată astfel:
'LIST' ( listType ( listData ) )
Elementele opţionale vor fi cuprinse între paranteze drepte: [ optional element ].
Audio Video Interleave
Formatul Microsoft AVI (acronimul pentru Audio Video Interleave) este un derivat al tipului de fişiere RIFF, la
fel ca şi formatul WAV , folosit de aplicaţii pentru captarea, editarea şi redarea s ecvenţelor audio -video. Deci, în
general , fişierul AVI conţine multiple fluxuri de date, atât audio, cât şi video, însă nu e necesar ca acestea să
apară împreună (exemplul unui clip fără sunet).
Secţiunea ce urmează nu descri e formatul OpenDML AVI (aşa numit-ul "AVI 2.0" ), dezvoltat de compania
Matrox , ci doar specificaţiile Microsoft.
Fişierele AVI s unt identificate după FourCC -ul „AVI ” (inclusiv spaţiul , al patrulea caracter) din antetul RIFF.
Toate AVI-uri le au cel puţin două liste esenţial e de „chunk-uri”, care conţin formatele fluxurilor, respectiv
fluxurile de date propriu-zis e. Un AVI poate avea, opţional, o porţie ce conţine locaţiile celorlalte porţii de date
din fişier. Atunci AVI-ul ar avea următoarea structură:
RIFF ('AVI 'LIST ('hdrl' ... )
LIST ('movi' ... )['idx1' (<AVI Index>) ]
)
Aici, „hdrl” şi „movi” sunt ID-uri le celor două liste esenţia le despre care vorbeam. „hdrl” defineşte formatul de
date şi este prima listă necesară. „movi” conţine datele pentru s ecvenţa audi o-video şi este cea de-a doua listă
necesară. Porţia cu ID-ul „idx1” conţine indecşii. Fi şierele TREBUIE să aibă aceste trei componente în ordi ne.
Listele „hdrl” şi „movi” au ca date subporţii (subchunks). Următorul exemplu prezintă într-un mod
ceva mai extins structura RIFF AVI:
RIFF ('AVI '
LIST ('hdrl'
'avih'(<Main AVI Header>)
LIST ('strl'
'strh'(<Stream header>)
'strf'(<Stream format>)[ 'strd'(<Additional header data>) ]
[ 'strn'(<Stream name>) ]
...
)
...)
LIST ('movi'
{SubChunk | LIST ('rec '
SubChunk1
SubChunk2
...
)
...
}
...
)['idx1' (<AVI Index>) ]
)
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 7/10
Antetul AVI principal
Lista „hdrl” începe cu sub-chunkul „avih” ( AVI header ), ce conţine antetul AVI principal, informaţii valabile
pentru întregul fişier AVI, cum ar fi numărul de fluxuri din fişier (en. streams – spre exemplu, un fişier şi video şi
audio are două fluxuri), lăţimea şi înălţimea secvenţei AVI (în pixeli ), numărul de microsecunde dintre cadre,
numărul total de cadre şi alte informaţii. Pentru mai multe detalii , urmăreşte li nkul
http://msdn.microsoft.com/en-us/library/ms779632(VS.85).aspx , unde este definită structuraAVIMAINHEADER.
Anteturile fluxurilor AVI
După „avih” ( AVI main header ) urmează una sau mai multe lis te „strl”. Pentru fiecare flux de date (audio,
video) este nec esară o listă „strl”. O astfel de listă conţine informaţii despre fluxul asociat ei şi trebuie s ă aibă o
porţie pentru antetul fluxului ( „strh” – stream header chunk ) şi o porţie pentru formatul fluxului („strf ” –
stream format chunk ). Opţiona l, o listă „strl” poate conţine porţi ile „strd” (stream header data chunk ) şi „strn”
(stream name chunk ).
Porţia cu ID-ul „strh” alcătuieşte o structură AVISTREAMHEADER . Pentru mai multe informaţii, urmează linkul
http://msdn.microsoft.com/en-us/library/ms779638(VS.85).aspx.
Porţia cu ID-ul „strf ” trebuie să urmeze imediat după „strh”. Acesta descrie formatul datelor din flux, deci
depinde de tipul a cestuia. Pentru fluxuri video, informaţia regăsită în porţia „strf ” alcătuieşte o structură
BITMAPINFO (vezi http://msdn.microsoft.com/en-us/library/dd183375(VS.85).aspx) , iar pentru fluxuri audio, o
structură WAVEFORMATEX (http://msdn.microsoft.com/en-us/library/ms788112(VS.85).aspx).
Dacă porţia „strd” este prezentă, atunci ea trebuie să urmeze porţiei „strf ”. Formatul şi conţinutul ei sunt
defini te de driver-ul codec. În general, driverele fol osesc i nformaţia din această porţie pentru configurări.
Aplicaţiil e care redau, creează sau modifică fişiere AVI nu au nevoie s ă interpreteze informaţia de aici. Ele doar
o transferă la sa u de la driver ca un simplu bloc de memorie.
Porţia opţională cu ID-ul „strn” conţine un şir de caractere (cu caracterul nul la sfârşit) descriind fluxul.
Anteturile fluxurilor din li sta „strl” sunt as ociate cu fluxuril e propriu -zise (datele audio sau video) di n lis ta
„movi” în funcţie de ordinea în care apar listele „strl”. Astfel, pri ma lista „strl” se aplică fluxului 0 , a doua
fluxului 1, şi aşa mai departe.
Datele fluxurilor (lista „movi”)
După toate informaţiile din antet, urmează lis ta „movi”, ce conţine datele propri u-zise, altfel s pus, cadrele
pentru fluxurile video şi sample-urile pentru fluxurile audio. Porţiile de date pot fi aşezate direct în conţinutul
listei „movi” sau grupate în liste „rec ” ce sunt aşezate, bineînţeles în interiorul lui „movi”. Listele-grup cu ID-ul
„rec ” (li terele r, e, c, urmate de un spaţiu) sunt folosite pentru a determina aplicaţia de redare (orice AVI
Player) să citească datele din fişier grupate „dintr-un singur foc”. Acest lucru este util , spre exemplu, pentru
vizionarea filmelor în format AVI de pe un CD.
În „rec ” se află, aşadar, o mulţime de sub-porţii , fie conţinând date audio, fie vizuale. ID-ul fiecărei sub-porţii
este un FourCC format din doi octeţi ce reprezintă index-ul fluxului de date de care aparţine (aici se ţine cont
de ordinea în care apar listele „strl” în fişi er) la care se adaugă două caractere ASCII ce definesc tipul de date
din porţie (deci în total 2+2=4 octeţi). În următorul tabel s unt prezentate cele două caractere ASCI I, a doua
jumătate a Four -CC-ului.
Codul de 2 caractere Descriere
db Un cadru, pentru flux video necomprimat
dc Un cadru, pentru flux video comprimatpc Schimbare de paletă de culori
wb Sample audio, pentru flux audio
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 8/10
De exemplu, dacă fluxul cu indexul 0 conţine date audio, atunci chunk-urile despre care vorbim au FourCC-ul
„00wb”. Dacă fluxul 1 conţine date video, atunci FourCC-ul va fi „01db” sau „01dc”. Un sub-chunk cu ID-ul
„ xxpc” defineşte o actualizare (schimbare) a paletei de culori în timpul derulării secvenţei AVI. Acest fel de sub -
chunk alcătuieşte o structură AVIPALCHANGE (http://msdn.microsoft.com/en-
us/library/ms779635(VS.85).aspx). Pentru ca schimbarea să fie aplicată unui flux video, atunci acel flux ar
trebui să accepte astfel de schimbări. După cum am precizat pe parcursul acestui document, antetul unui flux(„strh”) alcătuieşte o structură AVISTREAMHEADER . Câmpul dwFlags din structură trebuie să aibă s etată
caracteristica AVISF_VIDEO_PALCHANGES .
Pentru fluxurile de text (existente şi ele într-un fișier AVI) nu se specifică niciun cod de 2 caractere. Se pot
utiliza combinaţii a rbitrare.
Porţia AVI Index („idx1”)
Această porţie este opţională, putând urma după lista „movi”. Conţine o listă cu ID-urile chunk-urilor de date
(cadrele, sample-urile audio), mărimea, locaţiile lor în fişier. În listă sunt incluse, de asemenea, şi grupurile de
chunk-uri de date, acele porţii „rec ”. Porţia „idx1” alcătuieşte o structură AVIOLDINDEX
(http://msdn.microsoft.com/en-us/library/ms779634(VS.85).aspx). Dacă fişierul AVI conţine această porţiefinală, atunci câmpul dwFlags din s tructura AVIMAINHEADER (adică porţia „avih”) trebuie să aibă setată
caracteristica AVIF_HASINDEX.
Alte Chunk-uri pot fi cele cu ID-ul „JUNK”. Aceste sunt folosite pentru alinierea datelor în fi şierul AVI. O
aplicaţie ar trebui să ignore conţinutul unui astfel de chunk.
Sursă: http://msdn.microsoft.com/en-us/l ibrary/ms779636(VS.85).aspx
DIGITAL VIDEO DATA (DV DATA) în fişierele AVI
În cele ce urmează va fi prezentată speci ficaţia Microsoft pentru stocarea digitală a secvenţelor video.Conformându-se la această specificaţie, fişierele AVI sunt şi vor compatibile cu versiuni curente şi vii toare ale
arhitecturii video pentru platforma Windows.
Articolul de faţă descrie structura AVI-urilor ce conţin DV data. Se definesc FourCC-uri specifice pentru fluxurile
DV data şi obiecte de comandă (en. handlers) p entru compresia /decompresia fluxurilor. De asemenea, se
defineşte structura unui flux de DV data şi se specifică cele două metode de stocare a DV data într-un fişier
AVI. Toate, în cele ce urmează…
Există două tipuri de fişiere AVI: AVI -uri ce conţin un singur flux DV data (numite şi fişiere type-1) şi AVI-uri ce
conţin atât un flux „vids”, cât şi un flux „auds” (numite fişiere type-2).
// TODO: de tradus restul articolului http://msdn.microsoft.com/en-us/library/ms783421(VS.85).aspx
// *********************************************************************************
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 9/10
WAVE Audio
Formatul WAV este o ramificaţie e specificaţiei RIFF a Microsoft,destinată păstrării fişierelor multimedia. Un fişier RIFF începe cu un antet
( file header ) urmat de o secvenţă de porţ ii de date (data chunks). Unfişier WAV conţine o s ingură porţie, „WAVE chunk”, ce constă în douăsub-porţii (sub-chunks), „fmt ” (detaliile formatului) şi „data” (ce conţinesecvenţa audio propriu-zisă, sample-urile). Să numim construcţiaalăturată „forma canonică a unui fişi er WAV”.
Tabelul următor prezintă câmpuril e ce compun un fişier de tip wav FĂRĂ
compresie, format PCM, adresele şi mărimile lor:
Tipul de ordonare a
octeţilor
Adresa –
offset-ul (în
octeţi)
Numele câmpului
Mărimea
câmpului (în
octeţi)
Observaţii
A n t e t u l
R I F F
Big endian 0 Chunk ID 4 Literele „RIFF”, în format ASCII
Little endian 4 Chunk Size 4Mărimea întregului fişier, minus 8 octeţi, mărimea
însumată a primelor două câmpuri.
C H U N K - u l R I F F W A
V E
Big endian 8Format (RIFF typeID)
4 Conţine literele „WAVE”, în format ASCII
Big endian 12 SubChunk1ID 4 Literele „fmt ” (inclusiv un spaţiu) în ASCII
S u b c h u n k - u
l „
f m t ”
Little endian 16 SubChunk1 Size 4 16 pentru PCM, format necompresat
Li ttle endian 20 CompressionCode 2Tipul de compresie folosit pentru Data, 1 pentruPCM
Little endian 22 Num Channels 2Numărul de canale, 1 pentru mono, 2 pentrustereo, etc.
Li ttle endian 24 Sample Rate 4 8000, 44100, etc.
Li ttle endian 28 BytesPerSec 4Valoarea expresiei:
Li ttle endian 32 Block Align 2Valoarea expresiei:
Li ttle endian 34 BitsPerSample 2 8, 16, 24 sau 32 de biţi pentru fiecare sample
Big endian 36 SubChunk2ID 4 Literele „data”, în ASCII
S u b c h u n k - u
l
„ d a t a ”
Little endian 40 SubChunk2 Size 4 , NumSamples
depinzând bineînţeles de durata secvenţei audio
Li ttle endian 44 Data SubChunk2 Size Data audio propriu-zisă
5/10/2018 Sunet, Audio, Video, WAV, AVI, Container, Etc - slidepdf.com
http://slidepdf.com/reader/full/sunet-audio-video-wav-avi-container-etc 10/10
Valori posibile pentru CompressionCode, al şaselea câmp din fişierul WAV:
Cod Hex Descriere Link
0 0x0000 Necunoscut
1 0x0001 PCM (fără compresie) http://en.wikipedia.org/wiki/Pulse-code_modulation 2 0x0002 Microsoft ADPCM http://wiki.multimedia.cx/index.php?title=Microsoft_ADPCM
6 0x0006 ITU G.711 a-lawhttp://en.wikipedia.org/wiki/G.711 7 0x0007 ITU G.711 µ-law
65,535 0xFFFF Experimental
Varianta completă a acestui tabel poate fi găsită în articolul http://msdn.microsoft.com/en-
us/library/ms867195.aspx.
Iată un exemplu de fişier WAV, în stânga este deschisă căsuţa de dialog Properties, iar în dreapta fişierul estedeschis cu editorul de text Notepad:
Pentru i nformaţii despre cele două tipuri de ordonare a octeţilor în cadrul unui cuvânt (WORD), veziurmătoarele articole: http://en.wiki pedia.org/wiki/Endianness http://betterexplained.com/articles/understanding-big-and-little-endian-byte-order/
De asemenea, poţi găsi informaţii utile pe următoarele linkuri: http://en.wikipedia.org/wiki/Pulse-code_modulation- PCM, un mod de reprezentare digitală a s emnalelor
analogice, standardul pentru secvenţe audio digitale în computere şi CD-uri Audio „Red Book” .
Sursă: https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ , http://www.sonicspot.com/guide/wavefiles.html , http://www-
mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html .
// TODO: de tradus articolul http://en.wikipedia.org/wiki/Flv + specificaţii ale Flash Video
http://www.adobe.com/devnet/flv/pdf/video_file_format_spec_v10.pdf
Formatele FLAC, MP3, etc.
Informaţii despre standardele MPEG.
// *********************************************************************************