Structura fișierului wav

Prezentăm în atenție un articol care detaliază antet parsing fișier WAV și structura sa.

Astfel, considerăm fișierul WAV cele mai frecvente (Windows PCM). Este în mod clar două divizibil, zona. Unul dintre ei - antetul fișierului, celălalt - zona de date. informații sunt stocate în antetul fișierului de:

  • Dimensiunea fișierului.
  • Numărul de canale.
  • Rata de eșantionare.
  • Numărul de biți din eșantion (această valoare se numește adâncimea sunetului).

Dar, pentru o mai bună înțelegere a sensului valorilor din antet trebuie să fie mai mult de spus despre zona de date, precum și digitalizarea sunetului. Sunetul este format din vibrații care, atunci când digitizarea căpătat forma în trepte. Acest tip este cauzat de faptul că computerul poate fi jucat în orice perioadă scurtă de timp, sunetul unui anumit amplitudine (volum), iar acest timp scurt, nu este infinit de scurt. Durata acestui interval, și determină rata de eșantionare. De exemplu, avem un fișier cu o frecvență de eșantionare de 44,1 kHz, acest lucru înseamnă că intervalul de timp scurt este egal cu 1/44100 secunde (acest lucru rezultă din valorile de dimensiuni ale Hz = 1 / s). Plăcile de sunet moderne de sprijin rata de eșantionare la 192 kHz. Așa că, în timp, ne-am înțeles.

Acum, ca amplitudinea (volumul într-o perioadă scurtă de timp). De la ea, aș spune, acuratețea sunetului depinde. Amplitudinea exprimat de numărul a avut loc în memorie (fișierul) 8, 16, 24, 32-biți (teoretic posibil și mai mult). Este cunoscut faptul că 8 biți = 1 octet, deci oricare amplitudine la un anumit interval de timp scurt într-o memorie (fișier) poate dura 1, 2, 3, 4 octeți, respectiv. Astfel, este mai mare numărul de are loc în memorie (fișier), cu atât mai mare gama de valori pentru acel număr, și, prin urmare amplitudinea.

  • 1 byte - 0..255
  • 2 octeți - 535 0..65
  • Byte 3 - 0..16 777216
  • 4 octeți - 0..4 294 967 296

Valorile amplitudinii mono exemplu de realizare sunt aranjate în serie. În stereo auto, de exemplu, în primul rând este valoarea amplitudinii pentru canalul din stânga, apoi spre dreapta, apoi înapoi la stânga și așa mai departe.

Totalitatea perioadei de amplitudine și scurtă de timp se numește o probă.

Acum tabel, care arată în mod clar structura unui fișier WAV.

Acesta conține caractere "Riff" în ASCII (0x52494646 în reprezentarea big-endian). Acesta este începutul Riff-lanț.

Aceasta rămâne mărimea lanțului, pornind de la această poziție. Cu alte cuvinte, este dimensiunea fișierului - 8, și anume, domeniul exclus chunkId și chunkSize.

Acesta conține caractere „val“ (0x57415645 în reprezentarea big-endian)

Conține caractere "FMT" (0x666d7420 în reprezentare big-endian)

16 la PCM. Această dimensiune substring rămasă, pornind de la această poziție.

Format audio, lista completă poate fi găsită aici. Pentru PCM = 1 (adică cuantizare liniară). Valori diferite de la 1, desemnează un format de compresie.