audiodatenformate
DESCRIPTION
Audiodatenformate. Ein kleiner Überblick Über die traditionellen Audiodatenformate. Gliederung. Überblick/Entwicklungsskizze Ausgewählte Formate im Detail Unkomprimierte Das SND-Format Das WAV(PCM) bzw. AU Format Das AIFF Format Komprinierte AIFF-C MOD-Format (MIDI-Format) Vergleich - PowerPoint PPT PresentationTRANSCRIPT
Audiodatenformate
Ein kleiner Überblick
Über die traditionellen
Audiodatenformate
Gliederung• Überblick/Entwicklungsskizze• Ausgewählte Formate im Detail
– Unkomprimierte– Das SND-Format– Das WAV(PCM) bzw. AU Format– Das AIFF Format
– Komprinierte– AIFF-C– MOD-Format– (MIDI-Format)
– Vergleich– ADAT
Überblick/Entwicklung
Das SND-FormatSND
Wird bei NeXT und Sun verwendet
Besteht aus Kopf (SNDSoundStruct) und Daten
Bei NeXT z.B. in eine Standartbibliothek (Sound Kit) einge- bunden, wodurch Bearbeitung des Klanges ohne Kenntnis vom inneren Aufbau einer SND Datei möglich ist
Aufbau des SNDSoundStruct
Aufbau in C Syntax
typedef struct {
int magic; /*magic number SND_Magic*/
int dataLocation; /*offset or pointer to the data*/
int dataSize; /*number of bytes of data*/
int dataFormat; /*the data format code*/
int samplingRate; /*the sampling rate*/
int channelCount; /*the number of channels*/
char info[4]; /*optional text information*/
}SNDSoundStruct;
WAV(PCM) AIFF
Die Entwicklung
EA IFF 85-Format
RIFF-Format
Microsoft
WAV-Format
Windows
AIFF
Apple /Mac
Der Aufbau der Wav-FormatesChunk Name Beschreibung*FORM Wave- Chunk Enthält alle weiteren Chunks
* FMT Format-Chunk Die Parameter der Audio-Daten
(Samplerate etc.)
* DATA Data-Chunk Die Audio-Daten, falls das (unkomprimierte)
PCM-Aufzeichnungsformat benutzt wird.
FACT Fact-Chunk Angaben zum Aufzeichnungsformat, falls nicht PCM benutzt wird.
??? CuePoint-Chunk Eine Liste von Markierungen
??? PlayList-Chunk Eine Reihenfolge, wie die Karkierungen abzuspielen sind.
??? AssocDataList-Chunk Eine Liste Anwendungsspezifischer Daten
Der FMT-ChunkName Beschreibung
Format-Typ Mono oder Stereo
Kanalzahl 1 oder 2
Sample-Rate
In Samples pro Sekunde (Hertz)
Byte-Rate In Bytes pro Sekunde (hilft bei der Bemessung des Audiopuffers
beim Abspielen)
Bytes pro Sample
Die Größe eines Samples (die Summe aller Kanäle)
Bits pro Sample
Diese Angabe ist PCM-Spezifisch .Werte des nächsten Abtastzeitpunktes (1-8 N+; 9-16 2er-Komplement)
Der Code des Wave Chunks in CForm Chunk
Typedef struct{
ID ckID; /*=Form*/
long ckSize; /*=Länge in byte*/
ID formType; /*= Wave */
char chunks[ ]; /*Korrektur-byte
falls ckSize
ungerade ist*/
}WaveChunk;
Format ChunkTypedef struct {ID ckID; /*= Format */long ckSize;unsigned short wFormatTag;
(= WAVE_FORMAT_PCM)unsigned short nChannels;unsigned long nSamplesPerSec;unsigned long nAvgBytesPerSec;unsigned short nBlockAlign;unsigned short nBitsPerSample;}FormatChunk
Der Data Chunk enthält nur die Audiodaten
Der Aufbau des AIFF-Formates
Chunk Name Beschreibung*FORM Format-Chunk Enthält alle weiteren Chunks in beliebiger
Reihenfolge
*COMM Common-Chunk Die Parameter der Audiodaten
*SSND Sound Data-Chunk Die Musikdaten
MARK Marker-Chunk Ermöglicht mehrere Zeitpunkte innerhalb der Abtastwerte zu kennzeichnen
INST Instrument-Chunk Kann zur Erzeugung digitalisierter Instrumentenklänge verwendet werden.
Enthält Marker
Darüber hinaus gibt es noch eine Reihe weiterer Chunks!
Der Common Chunk
typedef struct {
ID ckID; /* =COMM */
long ckSize; /* =18*/
short numChannels;
unsigned long numSampleFrames;
short sampleSize;
extended sampleRate;
} CommonChunk
Der Sound Data Chunk
typedef struct {
ID ckID; /* = SSND*/
long ckSize;
unsigned long offset;
unsigned long blockSize;
unsigned char soundData [ ];
} SoundDataChunk
Der Code des AIFF Chunks in CDie Syntax des Form Chunks gleicht der des Wave Chunks
Komprimierung von Musikdaten
• Digitalisierung von Musik
• Große Datenmengen möglicher Ausweg Komprimierung
• Probleme bei der Komprimierung
– Komplexität des Verfahrens
– Datenverlust
– Qualitätsverlust
Von AIFF zu AIFF-C
• AIFF-C ist eine Erweiterung von AIFF zur Verwendung von komprimierten Klangdaten.
• Der grundsätzliche Dateiaufbau bleibt unverändert.• Der Form Chunk hat den gleichen Aufbau wie bei AIFF. Der einzige
Unterschied besteht im Inhalt des Formtyps, der jetzt `AIFC‘ heißt. Außerdem muß er genau einen Format Version Chunk enthalten.
• Der Common Chunk wurde im Vergleich zu AIFF um zwei Angaben erweitert:
ID compressionType;Pstring compressionName;
• Im Sound Data Chunk folgen die komprimierten Daten der einzelnen Kanäle immer hintereinander, gefolgt von den Daten des nächsten Zeitintervalls.
Das MOD Audioformat
• völlig andere Herangehensweise an das Komprimieren der Daten
• kein pures Sampling
• mehrere kurze Samplings (Instrumente) und eine Partitur mit Noten
• Hoher Produktionsaufwand
• Bearbeitungsprobleme
• Kein Rechenaufwand bei der Komprimierung
Aufbau des Mod FormatesPos Länge Typ Beschreibung
1 20 Char Titel des Liedes (falls <20 mit Nullen
aufgefüllt)
21 22 Char Name des 1.Samples (Instrumentes)
43 2 BigEnd Länge des Samples in 2-byte words
45 1 SNibble Tonhöhe (variierbar in 1/8 Haltonschritten)
46 1 Byte Lautstärke ( 0 [-36.1dB]-64 [0.0dB] )
47 2 BigEnd Anzahl der zu spielenden Töne
49 2 BigEnd Länge der zu spielenden Töne
51 30 Information zum 2. Sample
921 30 Information zum 31. Sample
951 130 Byte Songinformationen , Partitur
1081 4 Char File Format Tag
Das Midi Format
• Noch „kleiner“ als das MOD-Format• Nur noch abspeichern von Nummern• Informationen zu den Nummern in Software
oder Hardware• Da genaue Instrumentendefinitionen häufig
nicht vorhanden sind,ist eine getreue Wiedergabe fast nicht möglich
Vergleich der Datenmengen der einzelnen Formate
Objekt Benötigte Datenmenge
Komplettes dickes Buch (300 Seiten) 700 KB
1 min. unkompr. Audioaufzeichnung (CD) 10 MB
1 min. hochkompr. Audioaufzeichnung (CD) 1 MB
1 min Audioaufzeichnung (Telefonqualität) 1 MB
Dateiformat Datenmenge(pro h) Bemerkung
Wav /AIFF ... 600 MB CD-Qualität (16bit, 44kH)
MOD 60 MB fast CD-Qualität
MIDI 200 KB schlechtere Qualität
ADAT (Datenübermittlung)
Problem: Übertragung digitaler Audiodaten ohne Informationsverlust.
1.Entfernung
2.Taktfrequenz
3. Kanalmenge
Lösung: ADAT
Aufbau Teil 1
Einsbit4 Daten
Informationsbits
1 Kanal
Kanal 1 Kanal 2 ..... Kanal 8User Bits
10 Nullbits
Aufbau Teil 2Stellenanzahl Inhalt(6*4)*8= 192 Kanalinformationen
48 1bit nach jedem 4er Block
4+1 Userbits plus 1bit
10+1 Nullbits am Ende
=256
Beispiel (vier Kanäle,kein Userbit)
0000 0000 0000 0000 Information von 4 Kanälen
0000100001000010000100000000001 im ADAT Format
0000111110000011111000000000001 kodiert