

We now offer a subscription for just 10 cents a day**h1>
You will always enjoy the full version of Mp4Gain with all its features and benefits.
For just 10 cents a day*
*Unlimited FULL version of Mp4Gain, billed $US12.50 Quarterly (+ $5 USD one time subscription payment JUST in the first payment).
All other payments will be just $3.12 per month, billed quaterly.
That's only 10 cents per day!
CLICK TO PURCHASE
THIS PRICE ONLY LASTS FOR A FEW DAYS
For just 10 cents a day*
Vergelijking en implementatie van MP3, WAV

Geluid heeft drie elementen: toonhoogte, volume en timbre:

De toonhoogte wordt bepaald door de frequentie van de geluidsgolf, hoe hoger de frequentie, hoe hoger de toonhoogte.
Het volume wordt bepaald door de amplitude van de geluidsgolf, hoe groter de amplitude, hoe luider het geluid.
Het timbre wordt bepaald door de “vorm” van de golfvorm (geluiden als vierkant, driehoek en zaagtand worden impulsgolven genoemd en klinken individueel).
Een audiobestand is een bestand dat wordt verkregen door een analoog signaal om te zetten in een digitaal signaal. Over het algemeen zijn er 5 belangrijke parameters: coderingsmethode, aantal kanalen, bemonsteringssnelheid, bitdiepte en bitsnelheid.
Codering: hoe dit formaat binaire gegevens organiseert en hoe het wordt gecomprimeerd.
Aantal kanalen: mono, dual of 5.1 kanalen, etc.
Sampling rate: Het aantal samples per seconde.
Bitdiepte: Het aantal binaire bits dat wordt gebruikt om de y-waarde van het monsterpunt op te slaan.
Bitrate – Het gewenste aantal bits per seconde voor het bestand.
We weten dat er geen compressie is in het WAV-formaat, dus de coderingsmethode is om alle gesamplede punten direct in volgorde naar het bestand te schrijven.
WAV-bestandsgrootte (B) = aantal kanalen * samplefrequentie (Hz) * bitdiepte (bit) / 8 + de bestandskopgrootte (B, het is 44B)
Implementatie
Wanneer je een mp3- of wav-bestand opent met een teksteditor, zie je getallen als deze:
4944 3303 0000 0000 3d48 5459 4552 0000
0006 0000 0032 3031 3800 5444 4154 0000
0006 0000 0032 3230 3300 5449 4d45 0000
0006 0000 0031 3430 3600 5052 4956 0000
168e 0000 584d 5000 3c3f 7870 6163 6b65
7420 6265 6769 6e3d 22ef bbbf 2220 6964
3d22 5735 4D30 4D70 4365 6869 487A 7265
537A 4E54 637A 6B63 3964 223F 3E0A 3A78
6D70 6D65 7461 2078 6D6C 6E78 3D22
6F62 653A 6574 612F
5249 4646 2e3d 0e05 5741 5645 666d 7420
1200 0000 0300 0200 44ac 0000 2062 0500
0800 2000 0000 6461 7461 a026 0e05 8089
00bc 00e8 f0bb c09e 8dbc 00c2 87bc 80f1
d3bc 8063 ccbc c030 fcbc 8012 f4bc 20bb
13bd e051 0fbd c0b0 2dbd 6079 28bd 4012
46bd 6032 40bd c0e3 5dbd 6040 57bd c015
7cbd e035 74bd b058 8dbd 50e2 88bd f0a7 9dbd e0dd 98bd 70d3 acbd e0a9 a7bd
d043 b8bd b0da b2bd
00e3 c4bd 605c bfbd
Deze hierboven is het mp3/wav-formaat van hetzelfde nummer. Wat is het verschil tussen hen?
WAV
structuur
bestandskop
Het WAV-formaat volgt het RIFF Resource Interchange-bestandsformaat, dus het WAV-formaat is eigenlijk een relatie met drie lagen, wat hier vereenvoudigd wordt. Het bestandsheaderformaat is als volgt:
Adres Carving type inhoud
00H-03H 4 tekens * 4 RIFF-vlag voor uitwisseling van bronbestanden
04H-07H 4 unsigned int Het aantal bytes vanaf het volgende adres tot het einde van het bestand.
08H-0BH 4 karakters * 4 WAV-bestand WAVE-logo
0CH-0FH 4 karakters * 4 fmt wave-bestandsvlag, het laatste cijfer is 0x20 spatie
10H-13H 4 unsigned int De grootte van de subchunk-bestandskop. Voor het WAV-subfragment is de waarde 0x10.
14H-15H 2 korte niet-ondertekende Formaattype, wanneer de waarde 1 is, betekent dit dat de gegevens lineaire PCM-codering zijn;
16H-17H 2 kort niet-ondertekend aantal kanalen
18H-1BH 4 int unsigned Sampling rate
1CH-1FH 4 int unsigned Wave file bytes per seconde = sample rate Bitdiepte PCM / 8 kanalen
20H-21H 2 korte unsigned DATA data block unit lengte = aantal kanalen * PCM bitdiepte / 8
22H-23H 2 kort unsigned Bitdiepte PCM
24H-27H 4 karakters * 4 gegevensstempelgegevens
28H-2BH 4 unsigned int Totale lengte van datadeel (bytes)
struct WAVHeader
{ char RIFF [ 4 ]; ///Resource bestandsuitwisselingsvlag RIFF niet-ondertekende LEN; ///Aantal bytes vanaf het volgende adres tot het einde van het bestand char WAV [ 4 ]; ///WAV-bestandsvlag WAVE char FMT [4]; ///Wave fmt-bestandsaanwijzer, laatste cijfer is 0x20 spatie unsigned SubchunkSize; ///De grootte van de sub-chunk bestandsheader, voor WAV deze sub-chunk is de waarde 0x10 DATATYPE short unsigned; / //Formaattype, wanneer de waarde 1 is, betekent dit dat de gegevens niet-ondertekende lineaire PCM-codering kort CH zijn; ///Aantal niet-ondertekende kanalen F; /// Niet-ondertekende samplefrequentie BYTERATE; ///Aantal bytes per seconde van wave-bestand = sample rate*PCM bit depth/8*Aantal niet-ondertekende kanalen
korte DATAUNITLEN; /// DATA blokeenheid lengte = kanaalnummer * PCM bitdiepte/unsigned 8 korte BITDEPTH; ///PCM bitdiepte karakter DATA [ 4 ]; /// Niet-ondertekende gegevensmarkeringsgegevens DATALEN ; /// Totale lengte van gegevenssectie (bytes) };
