Vergleich und Implementierung von MP3, WAV


Free Download Mp4Gain
picture

Vergleich und Implementierung von MP3, WAV

WAV vs MP3

Klang besteht aus drei Elementen: Tonhöhe, Lautstärke und Klangfarbe:

WAV vs MP3

Die Tonhöhe wird durch die Frequenz der Schallwelle bestimmt, je höher die Frequenz, desto höher die Tonhöhe.
Die Lautstärke wird durch die Amplitude der Schallwelle bestimmt, je größer die Amplitude, desto lauter der Ton.
Die Klangfarbe wird durch die “Form” der Wellenform bestimmt (Klänge wie Rechteck, Dreieck und Sägezahn werden Impulswellen genannt und klingen individuell).
Eine Audiodatei ist eine Datei, die durch Umwandlung eines analogen Signals in ein digitales Signal erhalten wird. Im Allgemeinen gibt es 5 wichtige Parameter: Codierungsmethode, Anzahl der Kanäle, Abtastrate, Bittiefe und Bitrate.

Codierung: Wie dieses Format Binärdaten organisiert und wie sie komprimiert werden.
Anzahl der Kanäle: Mono-, Dual- oder 5.1-Kanäle usw.
Abtastrate: Die Anzahl der Abtastungen pro Sekunde.
Bittiefe: Die Anzahl der binären Bits, die verwendet werden, um den y-Wert des Abtastpunkts zu speichern.
Bitrate – Die gewünschte Anzahl von Bits pro Sekunde für die Datei.
Wir wissen, dass es im WAV-Format keine Komprimierung gibt, daher besteht seine Codierungsmethode darin, alle abgetasteten Punkte der Reihe nach direkt in die Datei zu schreiben.

WAV-Dateigröße (B) = Anzahl der Kanäle * Abtastrate (Hz) * Bittiefe (Bit) / 8 + Größe des Datei-Headers (B, es sind 44B)

Implementierung
Wenn Sie eine MP3- oder WAV-Datei mit einem Texteditor öffnen, sehen Sie Zahlen wie diese:
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
Das obige ist das mp3/wav-Format desselben Songs. Was ist der Unterschied zwischen ihnen?

WAV
Struktur
Dateikopf
Das WAV-Format folgt dem RIFF Resource Interchange File Format, also ist das WAV-Format eigentlich eine dreischichtige Beziehung, die hier vereinfacht wird. Sein Datei-Header-Format ist wie folgt:

Adressieren Sie Inhalte vom Carving-Typ
00H-03H 4 Zeichen * 4 Flag für den Austausch von RIFF-Ressourcendateien
04H-07H 4 unsigned int Die Anzahl der Bytes von der nächsten Adresse bis zum Ende der Datei.
08H-0BH 4 Zeichen * 4 WAV-Datei WAVE-Logo
0CH-0FH 4 Zeichen * 4 fmt Wave-Datei-Flag, die letzte Ziffer ist 0x20 Leerzeichen
10H-13H 4 unsigned int Die Größe des Subchunk-Dateiheaders. Für das WAV-Subfragment ist der Wert 0x10.
14H-15H 2 kurz ohne Vorzeichen Formattyp, wenn der Wert 1 ist, bedeutet dies, dass die Daten lineare PCM-Codierung sind
16H-17H 2 kurze vorzeichenlose Anzahl von Kanälen
18H-1BH 4 int unsigned Abtastrate
1CH-1FH 4 int unsigned Wavefile Bytes pro Sekunde = Abtastrate Bittiefe PCM / 8 Kanäle
20H-21H 2 kurze vorzeichenlose DATA-Datenblockeinheitslänge = Anzahl der Kanäle * PCM-Bittiefe / 8
22H-23H 2 kurze vorzeichenlose Bittiefe PCM
24H-27H 4 Zeichen * 4 Datenstempeldaten
28H-2BH 4 unsigned int Gesamtlänge des Datenteils (Bytes)
struct WAVHeader
{ Zeichen RIFF[ 4 ]; ///Ressourcendatei-Austausch-Flag RIFF unsigned LEN; ///Anzahl Bytes von der nächsten Adresse bis zum Ende der Datei char WAV[ 4 ]; ///WAV-Datei-Flag WAVE char FMT [ 4 ]; ///FMT-Dateizeiger winken, letzte Ziffer ist 0x20 Leerzeichen unsigned SubchunkSize; ///Die Größe des Sub-Chunk-Dateiheaders, für WAV ist dieser Sub-Chunk der Wert 0x10 DATATYPE short unsigned; / //Formattyp, wenn der Wert 1 ist, bedeutet dies, dass die Daten vorzeichenlose lineare PCM-Codierung short CH sind; ///Anzahl der vorzeichenlosen Kanäle F; ///Vorzeichenlose Abtastrate BYTERATE; ///Anzahl der Bytes pro Sekunde der Wave-Datei = Abtastrate*PCM-Bittiefe/8*Anzahl der vorzeichenlosen Kanäle

kurz DATAUNITLEN; ///Länge der Datenblockeinheit = Kanalnummer * PCM-Bittiefe / unsigned 8 short BITDEPTH; ///PCM-Bittiefenzeichen DATA[ 4 ]; ///Unsigned data mark data DATALEN ; ///Gesamtlänge des Datenabschnitts (Bytes) };


Free Download Mp4Gain
picture