Codec-Programmierung

zyro

Mitglied
Hallo zusammen,

ich hätte da mal eine grundsätzliche Frage zu der Programmierung von Codecs. In den letzten Semestern habe ich so ziemlich alles über Modulationsverfahren, Signalverarbeitung usw gelernt aber eines belibt mir nach wie vor fern.

Angenommen sích wollte den MP3 Codec nachbauen. Wie bzw. auf welche Weise stelle ich es an eine Adiodatei so aufzubereiten bzw. zu lesen um damit letztlich rechnen zu können?

Hier geht es nicht darum das Rad neu zu erfinden aber eben auch nicht darum einfach nunr blind LAME einzusetzen (oder respektive den Sourcecode durch zu gehen, um das zu verstehen).

Viele Grüße

zyro
 
Hi,

ich weiß momentan nicht, wo genau dein Problem mit den Codecs ist. Die Theorie ist folgende: Um einen Ton zu erzeugen, benötigst du Daten. Je höher die Abtastrate ist, desto mehr Daten benötigst du. Je mehr Frequenzen (Bandbreite) du hast, desto mehr Daten hast du. Indem du die Datenmenge einsparst und die Daten komprimierst, wird die Gesamtdatenmenge verkleinert.

Wenn du mal ein bissl herumspielen möchtest, würde ich dir mal die Signal Processing Toolbox von Matlab empfehlen.
 
Ich verstehe die Anfrage anders. Du weisst scheinbar nicht, wie Du Dein Programmierkonstrukt in das OS einbindest. Dein OS (zB Windows) bietet die über die jeweilige API (sicherlich DirectX/Directshow) die Schnittstelle an. Dein Code nimmt über die Schnittstelle die Daten an und gibt sie am anderen Ende wieder an die Schnittstelle aus.

Nicht vergessen : CODEC ist Encode und Decode.

Also gibt es einen Code (Encode), der Rohdaten annimmt, verarbeitet und speichert oder streamt (was damit passiert, ist eigentlich auch Aufgabe des darüberliegenden Layers). Der andere Code (Decode) nimmt die verarbeiteten Daten an und gibt Rohdaten wieder raus. An wen auch immer, Mediaplayer, Festplatte etc..

Vielleicht ist das das Richtige : http://msdn.microsoft.com/en-us/library/dd387886(VS.85).aspx

mfg chmee
 
Ich verstehe die Anfrage anders. Du weisst scheinbar nicht, wie Du Dein Programmierkonstrukt in das OS einbindest. Dein OS (zB Windows) bietet die über die jeweilige API (sicherlich DirectX/Directshow) die Schnittstelle an. Dein Code nimmt über die Schnittstelle die Daten an und gibt sie am anderen Ende wieder an die Schnittstelle aus.

Nicht vergessen : CODEC ist Encode und Decode.

Also gibt es einen Code (Encode), der Rohdaten annimmt, verarbeitet und speichert oder streamt (was damit passiert, ist eigentlich auch Aufgabe des darüberliegenden Layers). Der andere Code (Decode) nimmt die verarbeiteten Daten an und gibt Rohdaten wieder raus. An wen auch immer, Mediaplayer, Festplatte etc..

Vielleicht ist das das Richtige : http://msdn.microsoft.com/en-us/library/dd387886(VS.85).aspx

mfg chmee

Vielen Dank an alle, aber die Antwort von "chmee" war genau was ich gesucht habe.
 

Neue Beiträge

Zurück