Encoding-Programme für Vergleiche

  • Hi Leute,

    Wie ich in nem anderen Thread bereits erwähnt habe würde ich gerne einige Statistiken zu einigen Codecs aufstellen.

    Ich frage mich nun, ob es dabei wichtig ist, mit welchem Encoder man genau arbeitet?

    Da ich unter anderem auch die Encoding-Dauer messen will, dachte ich, dass es am besten wäre wenn ich nur ein einziges Programm benutze, welches alle gewünschten Programme unterstützt.
    Da ist mir unter anderem "TotalAudioConverter" ins Auge gestochen.

    Allerdings musste ich nun feststellen, dass da nirgendwo eine Info darüber steht, welche Encoder genau von dem Programm benutzt werden :hm:
    Ich denke aber, dass es bei einer Statistik wichtig wäre, auch den genauen Encoder angeben zu können...

    Wie würdet ihr das machen bzw was würdet ihr mir raten?

  • "Encoding-Dauer" ist bei den meisten aktuellen Codecs kaum noch relevant. Wenn ich eine CD gegrabbt habe, ist die z.B. mit LAME oder Ogg Vorbis jeweils innerhalb weniger Minuten konvertiert (mit heutigen Prozessoren).

    In der Tat spielt es eine Rolle, welcher Encoder genau zum Einsatz kommt. Nicht nur qualitativ, auch von der Geschwindigkeit her unterscheiden sie sich durchaus. Für den besten MP3-Encoder, LAME, gibt es beispielsweise optimierte Encoder für verschiedene Prozessorklassen (MMX / SSE / SSE2...) bei RareWares.

    Universelle Transcoder bringen oft ihre jeweils eigenen Encoder mit, von denen man aber nur selten weiß, wie gut die sind. Bei BeSweet ist das offensichtlich, hier werden ganz klar dokumentiert die DLL-Versionen gut optimierter Freeware-Encoder eingesetzt. Und über die BSN- und Dimzon-Plugins ist es auch nach dem Entwicklungsstop noch erweiterbar.

    Mehr dazu im englischen doom9-Forum.

  • Verstehe... =/
    Und was würdest du mir empfehlen?
    Für jedes Format einen eigenen Encoder benutzen oder doch lieber einen universellen für alle nehmen?

    Ich nehme mal an dass es wahrscheinlich besser wäre, für jedes Format einen eigenen Encoder zu nehmen..
    Könntest du mir vielleicht Encoder zu den folgenden Formaten empfehlen?:
    Wav, Mp3, Flac, Ogg vorbis, Aac, Wma

  • Was verstehst du bitte unter "Encodierung in WAV"? WAV ist kein Codec. WAV ist ein Kontainer, der alles mögliche enthalten kann.

    - MP3: aktuelle LAME-Version (3.98), CPU-optimiert, von RareWares (evtl. als DLL in BeSweet)
    - Ogg Vorbis: aktuelle OggEnc2-Version (2.83) von RareWares (evtl. als 4 DLLs in BeSweet)
    - AAC: Nero Audio Encoder mit GUI, evtl. auch via Plugin mit BeSweet - das unterstützt BeLight
    - WMA: vielleicht Nic's Encoder? Schon lange nicht mehr versucht...
    - FLAC: SourceForge-Projekt "flac"

  • Sorry, meine natürlich das verlustfreie PCM-Format ^^
    Nenne es immer nur WAV weil es fast überall so genannt wird.. :hm:
    Aber wenn ich so drüber nachdenke.. hm.. stimmt, eigentlich gibt es da nichts zu kodieren weil es ja einfach nur verlustfrei abgespeichert wird..

    Danke für die Tipps =)

    Ach ja übrigens:
    Fallen dir vielleicht noch andre Kriterien ein, die man in einer Statistik mit einbeziehen sollte?

  • Also wenn du dir nicht über die Kriterien sicher bist, ist der ganze "Vergleich" zwecklos... man könnte ja schon tagelang nur allein verlustlose Audioencoder vergleichen. Deine Auswahl ist schlicht zu vielfältig, als das ich verstehen könnte, worauf es dir ankommt.

  • Doch, klar hab ich da schon bestimmte Vorstellungen, also bis jetzt habe ich folgende Kriterien eingeplant: Encoding-Dauer (Tests auf mehreren PCs), Datei-Größe, Effizienz der Komprimierung (im Vergleich zum benötigten Speicherplatz auf einer CD) und der hörbare Qualitätsverlust (beim Anhören auf Lautsprecher/mit Kopfhörer etc.)... und das alles natürlich mit verschiedenen Bitraten/Qualitätseinstellungen bei den jeweiligen Formaten.

    Wollte nur mal fragen ob dir vielleicht noch was passendes einfällt, was ich dazu nehmen könnte

  • Eigentlich ist dieser Test recht zweckfrei.

    Nehmen wir an, Du hast PCM-Daten.
    Diese lossless zu komprimieren spart 30-60% Größe (je nach Musik). Bei Flac dauert es länger, wenn Du die Files kleiner haben willst. Da hast Du also eine Schraube bei der auf der einen Seite Komprimierung und auf der anderen Seite Geschwindigkeit ist.

    Neros AAC, OggEnc2, Lame u.s.w arbeiten alle bei ähnlichen Einstellungen gleich schnell und je nach eingestellter Bitrate ist das Ergebnis auch ähnlich groß. Hier um Bits zu feilschen macht keinen Sinn, da es vermutlich beim nächsten Track schon wieder anders aussieht. Im Schnitt bleibt da alles gleich. Und auch bei der Qualität sieht es so aus. Bei 128kbps wird einfache Musik noch gut bis sehr gut klingen (auch abhängig von Deinen Ohren, Deiner Schallerzeugungsanlage und Deiner Einbildungskraft). In den Bitraten darunter gewinnen Vorbis und gerade AAC ein paar Meter auf MP3, gut klingt das dann aber trotzdem nicht mehr. So ab ca. 192kbps wird auch mittel-komplexe Musik mit allen genannten Encodern gut - sehr gut klingen. 256 oder gar 320kbps sind dann das, was die psychoakustischen Modelle halt als hörenswert empfinden.

    Die lossy-Fraktion gibt sich einfach nicht mehr wirklich etwas. Weder bei der Dauer der Kompression, noch bei der Qualität. Und da man direkt oder indirekt über Profile, die Bitrate vorgibt, erziehlen auch alle eine sehr ähnliche Größe.

    Wäre hilfreich zu erfahren, was Du mit diesem Test für Dich raus finden willst.
    Wenn Dein Ziel die kleinst-möglichen Files sind, dann kannst Du Flac gleich aussen vor lassen. Dann kannst Du mit niedrigen Bitraten anfangen und wenn Du zwischen AAC bei 92kbps, Vorbis bei 128kbps und MP3 bei 192kbps keinen Unterschied bei Deinen Schallerzeugern mehr herraus hörst, dann hast Du Dein Ziel erreicht.
    Wenn es Dir auf Qualität ankommt, dann geht kein Weg zu lossy. Und wenn es dann Platz sparen soll, dann halt FLAC. Wenn es schnell gehen soll, dann halt etwas größer.
    Lossy ist immer mehr oder minder ein Kompromiss. Und es kann auch mal vorkommen, das Deine Teststücke bei einem Encoder bei bestimmten Einstellungen sehr gut klingen, die nächste CD aber dem Encoder schon Bauchweh verursacht und eher grausig klingt.

    cu
    Jens

  • Nun ja, was ich bei diesem Test rausfinden will ist ne gute Frage ^^
    Es ist einfach so, dass ich ne Diplomarbeit zu dem Thema schreibe und dabei ist eines der Themen das Untersuchen der Effizienz von den Codecs...
    Also dachte ich mir dass ich einfach ein paar Tests dazu mache.. auch wenn ich schon von vornherein weiß, wie die ungefähr ausfallen werden... x)
    Ich denke das ist wohl der einzige Weg, die Effizienz der Codecs rauszufinden.. bzw selbst rauszufinden.. es wird ja unter anderem auch von mir verlangt, dass ich ne gewisse Eigenleistung erbringe und nicht nur irgendwelche Texte aus Websites kopiere oder umformuliere.. x)

    Aber falls du ne Idee hast wie ich das besser machen könnte, dann schieß los ^^

  • Nö, dazu keine Ideen. Das ist wie ein Aufsatz darüber, wieso einem ein Auto der Golfklasse vielleicht besser gefallen könnte als ein anderes. Wobei da die Unterschiede deutlich größer ausfallen sollten.

    Um Deine Arbeit aber so halbwegs komplett zu machen, sollten auch Musepak, Wavpack, MonkeyAudio und vielleicht sogar Sprachcodecs mit einbringen (die gewinnen durch VOIP immer mehr an Bedeutung). Einen kleinen Überblick über die zur Verfügung stehende Vielfalt bietet: http://de.wikipedia.org/wiki/Audioformat - eigentlich kann man alle verlinkten Codecs als erwähnenswert ansehen.

    cu
    Jens

  • Wenn deine Arbeit so ausfallen sollte, dass im Ergebnis die drei Hauptklassen von Audiocodecs klar getrennt werden (verlustlos / allgemeiner Einsatz bei guter Qualität mit Verlusten / minimale Größe für spezielle Einsatzgebiete), und du zu dem Ergebnis kommst, dass jede der drei Gruppen aufgrund ihres Zweckes jeweils verschiedene Techniken verwenden und dadurch schwer miteinander zu vergleichen sind, ist das schon mal der beste Ansatz; und dann kannst du noch Vergleiche innerhalb der jeweiligen Gruppen anstellen.

    Dabei ist es auf jeden Fall hilfreich zu wissen, was die Codecs eigentlich überhaupt tun. Den Unterschied zwischen (F)FT und DCT sollte man dabei mindestens erklären können (die Erklärung von CELP oder PPMd ist da im Vergleich sicher nicht so interessant). Dann würde in die zweite Gruppe auch noch AC3 gehören.

    Erst wennn man versteht, warum und wie etwas funktioniert, wird auch klar, wie viel Aussagekraft Vergleiche haben.

  • jmittelst: Danke, werd mir diese Codecs auf jeden Fall noch genauer ansehen :)

    LigH: So in der Art habe ich mir das eh vorgestellt.
    Von dem FFT/DCT-Zeugs habe ich leider noch keine Ahnung.. :nein:
    Ich denke aber, dass das in meine zweite Aufgabenstellung gut reinpassen würde, weil ich abgesehen von der Effizienz auch noch die verschiedenen angewandten Algorithmen analysieren soll. Bisher habe ich nur etwas zu den Unterschieden zwischen verlustbehafteten und verlustfreien Algorithmen geschrieben. Inwiefern könnte ich FFT und DCT denn da eingliedern?

  • Bevor du die Unterschiede zwischen der "Fourier-Transformation" und der "Diskreten Cosinus-Transformation" betrachtest, lohnt sich ein Blick auf die Gemeinsamkeiten: Beide sind geeignet, eine Sample-Folge (Zahlenwert-Folge) als eine Summe aus gewichteten Frequenzanteilen darzustellen. Warum eine Transformation in eine Frequenz-Darstellung nützlich ist, wirst du sicher auch noch herausfinden können (dazu sind vielleicht auch Hinweise über den Aufbau des Innenohres, v.a. der Schnecke, wichtig); und wenn es nicht sinnvoll wäre, dann würde nicht die Mehrzahl der aktuellen Video- und Audio-Codecs eine DCT durchführen.

  • Soweit ich das richtig verstanden habe lässt sich FFT und DCT den verlustbehafteten Verfahren zugliedern. Gibt es solche vergleichbaren Algorithmen (in Bezug auf Wichtigkeit) auch bei den verlustfreien Codecs?

    Meine Gliederung würde im Moment so aussehen:

    • Verlustfreie Verfahren
    • Verlustbehaftete Verfahren

      • FFT
      • DCT
  • Kein Codec wird eine echte Fourier-Transformation durchführen. -- Warum nicht?

    ...

    Weil die nur zur Annäherung für unendliche periodische Funktionen geeignet ist. Musik ist aber nicht unendlich periodisch. Man kann also immer nur ein kurzzeitiges Fenster analysieren. Und das tut die DCT (was einem als "Fast Fourier Transformation" in Frequenz-Spektralanalysen verkauft wird, ist auch nur eine DCT; allerdings sind beide sehr ähnlich: Sie bilden Summen von Cosinus-Funktionen).
    __

    Sicher gibt es auch bei verlustfreier Audiokomprimierung typische Verfahren. Die Delta-Codierung (Vergleich von Differenzen statt der direkten Werte) gehört auf jeden Fall dazu, weil Differenzen zwischen Samples im Allgemeinen einen kleineren Wertebereich (weniger verschiedenartige Zahlenwerte) haben.

    Darüber hinaus jedoch geht es schon in komplexere Themengebiete, wie die Automatentheorie, statistische Vorhersagen, abhängige Wahrscheinlichkeiten, Markov-Ketten, "Prediction by Partial Matching"... Das wird kaum ein Nicht-Informatikstudent verstehen. Kurzgefasst vielleicht soviel: Man betrachtet nicht nur zwei aufeinander folgende Samples, sondern mehrere, schätzt das nächste Sample als wahrscheinlichsten Folge-Wert ab, und speichert die Differenz zum tatsächlich vorhandenen Samplewert (meist durch eine Entropiecodierung wie Huffman).

    - Delta
    - PPM
    - Huffman

  • Hmm... das klingt jetzt alles sehr spezifisch.. ich habe eigentlich eingeplant, dass ich den Großteil meiner Diplomarbeit den Statistiken widme, und den Teil mit den Algorithmen vielleicht maximal nur 6-8 Seiten lang mache.. (nur dass du mal weisst in was für einer Größenordnung ich das Ganze einplane :ja:)
    Würdest du mir da wirklich raten all diese Themen miteinzubeziehen?
    Ich bin mir noch immer ziemlich unsicher was und inwiefern ich jedes einzelne Thema genau behandeln soll.. :hm:

    Ansonsten würde meine Gliederung dann wohl so in etwa aussehen:

    • Verlustfreie Algorithmen

      • Delta
      • PPM
      • Huffman
    • Verlustbehaftete Algorithmen

      • FFT
      • DCT
  • Immer noch falsch... habe ich nicht gesagt, dass die FT nicht verwendet werden kann, weil der Klang sich dauernd verändert?

    Und dann gibt es noch mehr Unterschiede, schon allein Vorbis unterscheidet sich recht erheblich von den MPEG-Audio-Varianten (be deien man hinsichtlich AAC eigentlich auch noch VQF hinzuziehen müsste)...

    Mehr Grundlagen, sonst wird aus Halbwissen Vollverwirrung.

  • Aber du sagtest doch vorher dass ich zumindest den Unterschied zwischen FFT und DCT erklären sollte. Außerdem kann DCT doch nicht das einzige bei verlustbehafteten Codecs sein(!?)

  • Sicher - du sollst dir selbst den Unterschied erklären und feststellen, warum nur eine der beiden mathematisch sehr ähnlichen Transformationen bei Audio und Video funktioniert.

    Und die DCT wird vor allem bei den Audio-Codecs der MPEG-Spezifikationen verwendet. Natürlich auch bei Codecs anderer Entwickler, eine Frequenzzerlegung ist mehr oder weniger grundsätzlich empfehlenswert (so sind z.B. MP3, AC3 und ATRAC3 grundsätzlich recht ähnlich, was die Auswahl der Algorithmen angeht, die zur Kompression verwendet werden).

    Selbstverständlich gibt es auch noch ein paar andere Transformationen, im Videobereich beispielsweise Wavelets (die sind mir bei Audio bisher noch nicht klar erkennbar untergekommen). Und wie schon geschrieben, Ogg Vorbis macht einiges anders als die verbreiteten Techniken, so wie auch das nicht mehr verbreitete VQF.

  • Audio Codecs zu vergleichen ergibt schon einen Sinn, wenn man dies meßtechnisch durchführt.
    Dazu sind aber bestimmte Hard- und Softwarebedingungen erfordelich:


    1. Eine Soundkarte mit hochauflösendem DAC, z.B. die "EWS 24/96" (Terratec)

    2. Eine Software die sowohl dreieck-, sinus-, pulsartige Signale (Dirac) als auch weißes Rauschen erzeugen kann.
    Um das weiße Rauschen "rosa" zu färben, wird noch ein Terzfilter benötigt

    3. Einen softwarebasierten, hochauflösenden Spektrumanalyzer mit der Möglichkeit, verschiedene "Fenster" zu wählen (Gauss, Hanning, Blackmann, Rechteck usw.)

    4) Klirrfaktormessung zur globalen Bestimmung des Quantisierungsgeräuschabstandes.


    Damit können u.a. folgende Messungen durchgeführt und graphisch dokumentiert werden:

    1. Frequenzgang in Abhängigkeit von der SampleRate (rosa Rauschen):

    Kein ("guter") Codec erfüllt die Regel: fo = fs/2 sondern es erfogt eine Begrenzung von fo unterhalb der theoretischen oberen Eckfrequenz.
    Sie wird mit einem Tiefpaß, dessen Wirksamkeit in erster Linie von der Anzahl und Güte (Q) der Polstellen abhängig ist (Flankensteilheit), erzeugt.
    Die Messung mit rosa Rauschen zeigt direkt den Verlauf der Flankensteilheit des Tiefpasses an.

    2. Aliasing-Geräuschabstand

    Dazu wird dem Codec ein 10kHz-Dreiecksignal (Spitzenwert=0dBu) zugeführt und über den Ausgang der Soundkarte das Amplitudenspektrum oberhalb von 20 kHz gemessen. (Klirrfaktormessung). Das Meßergebnis muß noch mit der spektralen Energieverteilung des Dreiecksignals korreliert werden. Man erhält damit den "Faltungsverzerrungsabstand" (Aliasing) der Kette:

    10kHz Signal => WAV => Codec (=> Soundkarte)

    Alternativ kann ein Puls-Signal verwendet werden, dessen Oberschwingungsamplituden alle gleich derjenigen der 1. Harmonischen entsprechen (Dirac). Dann entfällt der Korrelierungszwang.

    3) Impulsantwort

    Der Codec wird mit Pulsen (Dirac us=0dBu) gefüttert und die Impulsantwort direkt in einer Audio-Software gezeigt.

    Da AudioCodecs das Audiofrequenzband in kleine Abschnitte (z.B. 256 oder 512) unterteilen, muß der Codec Bandpaßfilter enthalten, die aber "klingeln" (ringing). Die Messung mit Dirac-Pulsen zeigt quantitativ die dabei entstehenden Überschwinger an.

    => Je höher die Ordnungszahl der Bandpaßfilter, desto besser die Trennung aber desto stärker das Polklingeln. Dies hat einen großen Einfluß auf den Inband-Geräuschabstand.

    4. Inband-Geräuschabstand

    Diese Messung entspricht einer herkömmlichen Klirrfaktormessung und zeigt
    den tatsächlichen Oberton-/Geräuschabstand eines Codecs.

    Führt man die Messung mit verschiedenen Eingangsamplituden durch, erkennt
    man, daß mit kleiner werdender Eingangsamplitude die harmonischen Verzerrungen abnehmen während die unharmonischen (Quantisierungsgeräusche) zunehmen.
    Diese Messung zeigt das Verhalten des Codecs im Hörbereich.

    Dabei wird die Spreu vom Weizen getrennt und eine gut - schlechter - Aussage unmittelbar möglich.

    5. Kanaltrennung

    Die sollte eigentlich gegen unendlich streben, aber dem ist nicht immer so.
    Ein Kanal wird mit einem 10kHz/0dBu-Dirac-Signal gespeist und am Ausgang des 2. Kanals wird gemessen. Das Ergbenis ist manchmal verblüffend !
    Die Messung darf nicht über die Soundkarte erfolgen sondern PC-intern über einen Audioeditor.

    6. Referenzmessung mit WAV

    Alle Messungen sollten auch ohne Codec durchgeführt werden, um die Grenzen der Meßreihe aufzeigen zu können.
    Aussagen können dann als zuverläßlich gelten, wenn der Abstand zwischen WAV- und Codec - Messung >40dB ist.


    Das soll jetzt hier keine Werbung sein ...:D aber fast alle diese Messungen lassen sich z.B. mit dem "WellenLabor" einer norddeutschen Firma durchführen (ab vers. 5.0x)

    Und nicht zuletzt: Die Ohren messen auch mit ...:) aber man kann sie täuschen ...:mad:


    Hilft Dir das weiter ? :)

    :winken:

    SixdeeBee

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!