Sample Rate Converter (SRC) im Vergleich

play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Forum,

Das Upsampling haben wir eigentlich schon mal diskutiert :

http://www.aktives-hoeren.de/viewtopic.php?f=30&t=1847

Das Upsampling hat verschiedene Techniken die im letzten Thread immer noch (so scheint mir) nicht ganz verstanden geworden zu sein.

Das uralte Upsampling dass schon zu CD-Player Zeiten verwendet wurde, und auch ähnlich noch bei vielen DACs die ein 2- oder 4-faches Upsampling erstellt, hat Ulli (Modmix) schon vorgestellt. Diese Art von Upsampling wo, salopp gesagt, einige Nullen ins Signal geschrieben wird, dient nur der Erhöhung der Samplingfrequenz und hat nur einen sehr begrenzten (wenn überhaupt) Effekt.

Die zweite Variante ist die, die Linn mit dem "linearen" und "echten" Upsampling einen neuen Punkt ins Signal schreibt. Dieser Punkt ist genau in der Mitte (also linear berechnet) von den zwei Samplepunkten der original Datei.

Die dritte Variante, ist das berechnen eines neuen Samplepunkts mit Hilfe von Algorithmen. Um nicht diesen Punkt dem Zufallsprinzip zu überlassen, errechnet der Secret Rabbit Code innerhalb eines genau definierten Spektrums (Bandbreiten begrenzt, aka -sinc) den wahrscheinlichsten Wert des Punktes.
Um die Genauigkeit eines solchen Verfahrens zu kapieren, muss man sich jedoch mit der Mathematik der Algorithmen beschäftigen.

Das Resultat einer solchen Berechnung ist mit Garantie näher an der originalen Aufzeichnung des Mikrofons als im Falle der linearen Interpolation. Denn die ist jedenfalls mit Sicherheit falsch !

Leif
Bild
wgh52
Aktiver Hörer
Beiträge: 5681
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Leif,

Ich bezog mich mit
wgh52 hat geschrieben:Wenn bei off-line und on-line resampling jeweils unterschiedliche Daten erzeugt werden (= anderer Klang), dann stimmt was mit dem Algorithmus nicht...
auf diese Äusserung
play-mate hat geschrieben:Das batch-Upsampling vorab, also offline, ist schon mal bei einigen cMP-Fans probiert worden, und wurde einstimmig als weniger gut eingestuft als im on-line Betrieb mit cPlay.
Upsamplingfreunde!

Ich hatte eine Idee zur Erzeugung einer Secret Rabbit Code -sinc- interpolierten 24/96 Datei ohne die Gnade des Erfinders strapazieren zu müssen! Denn ich habe doch ein Fireface UC! Also:

Ich gebe den 24/96 cPlay Datenstrom (errechnet aus den 16/44,1 Daten von der USB Disk) über USB am SPDIF Ausgang des Fireface aus und gehe gleich wieder in einen Fireface UC SPDIF Eingang, von dem aus ich dann (wieder über USB) eine 24/96 WAV oder FLAC Datei aufnehme und auf der USB Disk speichere. Bing! Ich habe beide Dateien auf der USB Disk und kann vergleichen. Leider ist das vom Zeitaufwand nicht praktikabel für evtl. späteres batch processing, aber es geht ja erstmal um den Vergleichstest.

Gruss,
Winfried

1940
Bild
Kienberg
Aktiver Hörer
Beiträge: 1616
Registriert: 13.05.2008, 13:00
Wohnort: Inzell

Beitrag von Kienberg »

Hallo Leif,
play-mate hat geschrieben:Die zweite Variante ist die, die Linn mit dem "linearen" und "echten" Upsampling einen neuen Punkt ins Signal schreibt. Dieser Punkt ist genau in der Mitte (also linear berechnet) von den zwei Samplepunkten der original Datei.
wie kommst Du denn zu dieser Aussage ? Bitte um genaue Quellenangabe.

In den von mir geposteten LINNDOCS steht das so nicht drin !

Gruss
Sigi
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4670
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Bild
Hallo Leute,

lasst Euch nicht von netten Bildern blenden. Das cPlay-Bild mit dem so schön verrundeten Verlauf muss richtig interpretiert werden !
Ich hab dazu mal obiges Bild erzeugt.
1. Der Einfachheit halber bin ich von einer 48 kHz-Abtastrate ausgegangen. Das ist die rote Kurve. Die Stützpunkte sind linear interpoliert, also durch Geradenstücke verbunden. An den Knickpunkten befinden sich die jeweiligen Abtastwerte.
2. Nun habe ich auf 96 kHz upgesampelt. Dabei eine sinc-Funktion mit 65536 Stützpunkten verwendet (das sind sicher deutlich mehr als z.B. zuletzt diskutierte 71 Punkte). Damit ergibt sich ein neuer Zwischenwert genau mittig zwischen zwei originalen Abtastpunkten. Damit man die besser sieht, habe ich diese mit einer Treppenfunktion verbunden. Ihr könnt klar bei der grünen Kurve sehen, dass die jeweiligen Eckpunkte linear verbunden einen feineren Verlauf ergibt. Trotzdem wird man noch erkennen, dass das Eckige noch nicht ganz ins Runde will.
3. Weiterhin habe ich ein 16-fach Upsampling auf 768 kHz durchgeführt, ebenfalls mit sinc-Interpolation. Das Resultat vermittelt nun schon viel mehr einen runden Verlauf. Damit man sich nicht täuschen lässt, habe ich auch hier eine stufige Darstellung gewählt.

Fazit:
Das Upsampeln erzeugt mehr Zwischenpunkte. Die Amplitude der Zwischenpunkte wird mit einem langen sinc-Filter genauer ermittelt als mit einem kurzen Filter. Die üblicherweise verwendeten 96 kHz beim Upsampeln machen nun aber nicht eine soo runden Kurvenverlauf wie in Grafiken gern dargestellt. Sicher besser als vorher, aber eben immer noch nicht perfekt. Das Hochsampeln auf 192 kHz hilft auch nicht unbedingt, wenn richtig ist, dass allgemein die DA-Wandler bei Abtastraten > 96 kHz ihr internes Oversampling um den Faktor 2 reduzieren. Das hier gilt alles für Daten vor dem DA-Wandler. Der endgültige Kurvenvrlauf ergibt sich dann nach der DA-Wandlung im Zusammenhang mit dem dabei eingesetzten analogen Tiefpassfilter.

Grüsse,
Uli

PS: das durchgeführte Upsampling incl. sinc-Interpolation entspricht dem beim secret rabbit verwendeten Verfahren.
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4670
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

wgh52 hat geschrieben:Ich gebe den 24/96 cPlay Datenstrom (errechnet aus den 16/44,1 Daten von der USB Disk) über USB am SPDIF Ausgang des Fireface aus und gehe gleich wieder in einen Fireface UC SPDIF Eingang, von dem aus ich dann (wieder über USB) eine 24/96 WAV oder FLAC Datei aufnehme
Winfried,
Du kannst dann im Fireface-Mixer direkt den Ausgang zum Eingang routen, ohne noch eine Leitung ziehen zu müssen. Dann geht auch definitiv nix verloren.

Grüsse, Uli
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Winfried,

Ich finde die Stelle wo cics sich zu off-line Upsampling äussert, aber so wie ich mich erinnere, bezieht sich der Algorithmus im on-line Verfahren auf eine sich stets ändernde & fortlaufenden Anzahl von Samples, und nicht auf die gesamte Datei.
Darum ist zu Verstehen, dass sich die Berechnung dynamisch zum fortlaufendem Signal verändert.
Würde man die gesamte Datei auf einem Schlag neu Berechnen, so würde der Algorithmus sich auf alle Interpolationspunkte insgesamt beziehen, und dass wäre sogar theoretisch sub-optimal.
-abgesehen von der schier unglaublich großen Kalkulation.


Gruß Leif
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Uli !

ABSOLUT HERVORRAGENDE DARSTELLUNG !

BRAVO

Hier kann man auch prima sehen wo es beim linearen Upsampling hapert.
Es bleibt natürlich immer noch das Abhören eines solchen Verfahrens, aber wer erstmal seine CD Daten so hören kann, den braucht man keine Kurven vor die Nase zu setzen.

Danke Uli !


Leif
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 4016
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo Leif,

damit wir nicht völlig abtriften:

Die lineare Interpolation geht auf Isaac Newton zurück. Ich glaube, der lebte schon vor der Einführung des CD Players.

Algorithmen sind definierte Rechenvorschriften, das ist schon alles.

In vielen Anwendungen von Interpolationsverfahren wird behauptet, dass durch Interpolation neue Daten aus bestehenden Daten hinzugewonnen werden. Dies ist falsch. Durch Interpolation kann nur der Verlauf einer kontinuierlichen Funktion zwischen bekannten Abtastpunkten abgeschätzt werden. Diese Abschätzung basiert meist auf der Annahme, dass der Verlauf einigermaßen „glatt“ ist, was in den meisten Fällen zu plausiblen Resultaten führt. Die Annahme muss aber nicht notwendigerweise zutreffen. Höhere Frequenzanteile, die bei der Digitalisierung eines Signals aufgrund des Abtasttheorems verloren gegangen sind, können auch durch anschließende Interpolation nicht wieder rekonstruiert werden.

Gruß

Bernd Peter
Bild
wgh52
Aktiver Hörer
Beiträge: 5681
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Tut mir Leid Leif,
play-mate hat geschrieben:...so wie ich mich erinnere, bezieht sich der Algorithmus im on-line Verfahren auf eine sich stets ändernde & fortlaufenden Anzahl von Samples, und nicht auf die gesamte Datei.
Darum ist zu Verstehen, dass sich die Berechnung dynamisch zum fortlaufendem Signal verändert. ...
das ist leider nicht schlüssig, denn ich kann eine Datei sequentiell, off-line, Byte-für-Byte, mit dem gleichen Algorithmus, genauso durcharbeiten wie beim on-line Verfahren und die Ergebnisse einfach speichern anstatt sie an die Soundkarte weiterzugeben. Das ist dem PC grundsätzlich und glücklicherweise egal.

Das Ergebnis muss bei on- und off-line Berechnung "bitidentisch" gleich sein, sonst werden bei off-line und on-line ganz einfach zwei verschiedene Verfahren oder Algorithmen benutzt - wobei ich nicht verstehe warum das nötig oder auch nur sinnvoll wäre. Es könnte "ein Schuh" draus werden, wenn off-line besser wäre, weil ohne die on-line nötige Echtzeitverarbeitung dann ein "rechenintensiverer" Algorithmus benutzt werden könnte.

Gut - wir wissen keine Antwort. Aber da passt irgendwie noch einiges nicht zusammen.

Uli,

Danke für den Tipp!

Gruss,
Winfried

1941
Bild
wgh52
Aktiver Hörer
Beiträge: 5681
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Hallo Bernd-Peter,
Bernd Peter hat geschrieben:Höhere Frequenzanteile, die bei der Digitalisierung eines Signals aufgrund des Abtasttheorems verloren gegangen sind, können auch durch anschließende Interpolation nicht wieder rekonstruiert werden.
Das ist, denke ich, unbestritten. Die hochgesamplete Datei wird natürlich nicht "richtig"!

Sagen wir so: Es wird empfunden, dass sie sich richtiger und "runder", also angenehmer anhört, was subjektiv ist. Und das könnte doch gut sein.

Ich kann mir schon vostellen, dass, wenn man über eine gewisse Menge Samples (71?) eine Art "best fit" Glättung oder Kurve, unter Beibehaltung der ursprünglich vorhandenen Unterstützungspunkte rechnet, etwas angenehm klingendes herauskommen kann, aber sicher nicht das (unbekannte) Original. Je höher die "Zielrate" umso eher würden die Interpolationsprodukte von der linearen Interpolation abweichen.

Wir wissen halt vielleicht nicht gut genug wie das (patentverdächtige) SRC -sinc- wirklich arbeitet.

Gruss,
Winfried

1942
Bild
Kienberg
Aktiver Hörer
Beiträge: 1616
Registriert: 13.05.2008, 13:00
Wohnort: Inzell

Beitrag von Kienberg »

Hallo Winfried,
wgh52 hat geschrieben:Das Ergebnis muss bei on- und off-line Berechnung "bitidentisch" gleich sein, sonst werden bei off-line und on-line ganz einfach zwei verschiedene Verfahren oder Algorithmen benutzt - wobei ich nicht verstehe warum das nötig oder auch nur sinnvoll wäre.
absolut richtig, alles andere ist Quatsch und widerspricht den simpelsten Regeln der Informatik....es sei denn.....
.... Mr.cics dreht während des Abhörens, z.B. durch "Neurofeedback", andauernd an den Parametern seiner Berechnung......wer weiss :roll: :mrgreen:

Gruss
Sigi
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Bernd Peter,

Keiner hat behauptet dass ein Upsampling wie es cPlay macht, neue Tatsachen herbeibringen. Auch nicht dass das Upsampling das ultimative non-plus-ultra sei, oder gar eine hochaufgelöste 24/96 Datei ersetzen kann.

Es geht darum, das wir alle sehr viele CDs haben, und um diese so hochwertig Abzuspielen wie technisch möglich.
Ich habe Verständniss dafür dass viele dieses Verfahren von Upsampling sehr kritisch hinterfragen und es auch kaum theoretisch glauben können, aber Tatsache ist das es unglaublich gut funktioniert !
Das ist nicht meine alleinige Erfahrung, aber in vielen Hörtest eindeutig bestätigt.

Der Knackpunkt ist dass es einen Computer benötigt (Netzwerkplayer können das einfach vergessen) und dass es unglaublich viele Probleme mit Computern gibt.
Ich bin sehr dafür dass Netzwerkplayer sich weiter verbreiten und das wir mehr hochaufgelöstes Material kaufen können, aber keiner kann zur Zeit einfach die 16/44.1 Daten des CD Formats einfach ignorieren, wegwerfen und nur Hochaufgelöstes haben.

In den meisten Fällen kann ein gertifizierter Sonos, ein Linn DS oder andere hochwertige Lösungen sehr, sehr gut sein, und meist auch viel besser als ein XY-Laptop mit Foobar z.B.
-Einfach weil ein Computer von Natur aus ein ausgesprochen unruhiges (Jitter-behaftetes) Audiogerät ist.

Dennoch gibt es einige Methoden einen Computer zu einem wirklich hochwertigem Audioplayer zu machen und dieses Upsamplingverfahren zu nutzen, aber dies bedarf dann wiederum Hard- und Softwarelösungen die das Signal mehr als nur Bit-Perfekt an einen DAC liefert.
Sorry Guys, dieses Algorithmen-Upsampling von cPlay braucht ganz einfach einen Computer, und das cMP2 Projekt beschreibt ganz ausführlich worauf es bei Computern im Audiozusammenhang ankommt.
...und zudem sind alle Erkenntnisse von diesem Projekt aus der professionellen Studiotechnik gewonnen, die ja schon seit Jahrzehnten mit Audio und PCs arbeiten.

Klar ist das cMP2 Projekt nicht eine 0-8-15 Lösung für alle die nur anspruchsvoll Musik hören wollen, aber mit ein wenig Einsicht und konsequentes Handeln, steht hier ein Memoryplayer der seines gleichen sucht (und dass zu einem Preis der wirklich lächerlich wirkt).
....und warum diese Ausnahmetechnik nicht schon kommerziell anderswo umgesetzt ist erklärt sich sehr einfach : Prozessorleistung !
Denn wie im FAZ Interview mit Gilad Tiefenbrun von Linn ist die Verschmelzung von Audio und Informationstechnik die große Herausforderung !

Gruß Leif
Bild
wgh52
Aktiver Hörer
Beiträge: 5681
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Hallo Leif,

ich denke wir beenden die Diskussion an dieser Stelle, denn sie schweift vom eigentlichen Thema, siehe Eingangspost, ab. Hier geht es nicht um cmp² oder so, sondern um den SRC upsampling Algorithmus und wie man testweise Unterschiede hörbar machen kann.

Ich werfe Dir nicht vor, dass Du nicht in allen angesprochenen Belangen sattelfest bist - wer ist das schon... Aber geh doch bitte nicht in den Schmollwinkel oder wechsele das Thema wenn etwas Gegenwind kommt...

Wenn man eine Datei upsamplet ist es halt so, dass bei gleichem Algorithmus mit gleichen Daten identische Ergebnisse resultieren. Dass sich das vom PC on-line und off-line unterschiedlich anhören kann mag sein, der PC macht ja dann auch unterschiedliche Sachen, aber das ist hier auch nicht mein Thema gewesen, sondern wie man in den Genuss dieses "gesmoothten" Upsamplings kommen kann ohne einen cmp² oder sonstigen PC bauen zu müssen, sondern dur Dateien umrechnen lässt. Wir sprechen hier nur von Datenverarbeitung.

Fazit: Für einen Test ist ein Weg zur Generierung einer upgesampleten VSRC -sinc- Vergleichsdatei gefunden, das ist momentan ausreichend.
Schön wäre halt ein batch Prozess falls sich das gut anhört. Sei's drum.

Danke für die Auskünfte! :cheers:
Gruss,
Winfried

1943
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Sigi & Winfried,

Ich verstehe euren Zweifel, aber der Kernpunkt des on- versus offline Upsamplens liegt nicht in dem Upsampling aber in dem Algorithmus.
Wenn der Algorithmus sich auf die gesamte Datei aus einem Batch beziehen soll, entsteht ein anderer Wert in den Interpolationspunkten, als wenn diese in einer begrenzteren Sequenz von beispielsweise 340239 Koeffizienten.

Ich habe immer noch das Gefühl dass ihr nicht ganz versteht was ein Algorithmus wirklich ist....

Secret Rabbit Code ist nicht patentiert. Es ist Quell offen -das hat Uli doch schon betont !

Sigi :
Mr.cics dreht während des Abhörens, z.B. durch "Neurofeedback", andauernd an den Parametern seiner Berechnung......
....ich glaube Mr.cics hat erheblich mehr Einsicht in diese Materie als du. Übrigens ist der Secret Rabbit Code nicht von cics konzipiert.

Gruß Leif
Bild
wgh52
Aktiver Hörer
Beiträge: 5681
Registriert: 25.01.2008, 15:17
Wohnort: Schweitenkirchen
Kontaktdaten:

Beitrag von wgh52 »

Leif,

lass es bitte Gut sein!

Ich hatte bereits ausgeführt, dass man eine Datei sequentiell durchrechnen kann und Ergebnisse entweder auf Disk speichert oder an die Soundkarte ausgibt. Das ändert nichts am Ergebnis. Von "Datei als Ganzes" hatte ich nicht gesprochen.

Gruss,
Winfried

1944
Bild
Antworten