Klangunterschiede trotz Bit-Identität ("bit-perfect")

Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Klangunterschiede trotz Bit-Identität ("bit-perfect")

Beitrag von Thias »

Die nachfolgende Diskussion nahm ihren Ursprung bei der Diskussion von Philipps "Core Edition" für Win Server 2012: http://www.aktives-hoeren.de/viewtopic. ... 043#p69043
AudioPhil hat geschrieben: Das Betriebssystem wird schlichtweg von allem befreit was nicht für den Task der Musikwiedergabe nötig ist. Und genau dieses rigorose und gnadenlose Vorgehen ermöglicht diesen unheimlich magischen Klang, der CD-Player in der 10.000 € Liga längst hinter sich gelassen hat. :)

Ich hoffe ich konnte diese komplexe Thematik etwas verständlicher darstellen. :cheers:
... vielen Dank für die Erläuterungen. Ja, das ist mir schon klar, der Prozessor wird deutlich entlastet ... und läuft wahrscheinlich im Leerlauf.

Was mir aber nicht klar ist: Du sagst die Ergebnisse die an den DAC geschickt werden sind bitidentisch. Aber richtiger als richtig rechnen kann eine CPU doch nicht. Ein im Puffer liegendes Bitmuster kann doch nicht verjittern, entweder ist es bitidentisch oder nicht. Ob die Rechenoperationen in einem Ritt durchgeführt wurden oder in einzelnen Paketen ist doch egal - wenn das Ergebnis identisch ist. Das versteh ich nicht.

Wie gesagt es geht um asynchronen DAC, bei Sampel-Taktvorgabe durch den PC kann ich mir das schon vorstellen. Bei asynchroner Verarbeitung hat der PC mit Samlingraten und DA-Wandlung gar nichts mehr zu tun, es kann nicht jittern in mathematischen Operationen, der Takt wird erst im DAC erzeugt.

Was sind Software- und Applikationsjitter? Besteht in einem PC die Gefahr "unscharf" zu rechnen?
Bild
AudioPhil
Aktiver Hörer
Beiträge: 129
Registriert: 11.05.2013, 16:33
Kontaktdaten:

Beitrag von AudioPhil »

Hallo Thias

Du hast natürlich absolut recht. Du musst Dich vom Gedanken an die Quelle etwas lösen, es geht hier in diesem Beispiel um etwas anderes. Das ganze hat mit Musik im Grund ja gar nichts zu tun. Es geht einzig und alleine darum wie das Betriebssystem (in welchen Abständen, und wie grosse die "Häppchen" sind) mit dem Prozessor umgeht, und mit welchen Prioritäten die vorhandenen Tasks behandelt werden. Und dies führt, obwohl es unlogisch klingt, zu klanglichen Unterschieden. Wie die Erfahrung der letzten Monate zeigt machen diese Dinge eben einen ganz frappanten Unterschied. Am Schluss gelingt es mit den richtien Tricks einem (oder auch zwei :mrgreen: ) Computer Klänge zu entlocken, die ein Streamer/CD-Player im 5-stelligen Bereich nicht in der Lage ist von sich zu geben.

Darum ist das ganze bit genau, und klingt eben trotzdem anders. Aber ich gebe Dir recht, es ist nicht ganz einfach zu verstehen. Vor allem ich als Berufsinformatiker hatte anfangs doch sehr grosse Schwierigkeiten von der "es gibt nur null und eins" Denkweise wegzukommen, die mir die letzten 20 Jahre eingeimpft wurden. Computer Audio ist ein wirklich sehr komplizerites Thema.

Ich glaube ich habe so gar mal ein T-Shirt mit dem Aufdruck "bit perfect?" gesehen. Die einen werden nun etwas schmunzeln. :)


Beste Grüsse,
Philipp
Bild
Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Beitrag von Thias »

AudioPhil hat geschrieben: Darum ist das ganze bit genau, und klingt eben trotzdem anders.
hm, genau das kann ich eben nicht verstehen...

In einem PC sind Bits nun mal die einzigsten Informationen. Was soll es da sonst noch für Informationen geben, die CPU-Temperatur hat doch keinen Einfluss auf das richtige Ergebnis. Die zeitliche Zuordnung der Bits erfolgt ja erst im externen asynchronen DAC und hat mit dem PC nichts zu tun.

In dieser Konstellation habe ich noch keinen Unterschied ausmachen und hören können. Meine CPU-Auslastung mit FIR-Faltung beträgt etwa 20 % Eine gestresste CPU mit 80% verursacht Dropouts, eine Klangverschlechterung habe ich auch bei vielen Tests noch nicht feststellen können ... vielleicht Glück für mich. :wink: Sollte eine nur 5 % ausgelastete CPU plötzlich besser "klingen"?
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 4003
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo,
Thias hat geschrieben:Die zeitliche Zuordnung der Bits erfolgt ja erst im externen asynchronen DAC und hat mit dem PC nichts zu tun.
so isses. Aber was anderes könnte davon profitieren.

Nehmen wir mal ein Bild für den Receiverbuffer im USB-Chip:

Ein Raum mit 2 gegenüberliegenden Türen, eine geht auf und alle gehen etwas ungeordnet rein, bis fast kein Platz mehr ist, und erst wenn die richtige Person erkannt wird, geht die andere Türe auf. Was für ein unnötiges Gedränge und Durcheinander, das da gesteuert werden muss.

Ein Raum mit 2 Türen, eine geht auf, der Richtige geht rein, die andere Tür geht auf und raus ist er, bevor es wieder von vorne recht geordnet anfängt.

Ist nur ein simples Denkmodell ohne jeglichen Anspruch auf Richtigkeit.

Gruß

Bernd Peter
Bild
Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Beitrag von Thias »

Bernd Peter hat geschrieben:Nehmen wir mal ein Bild für den Receiverbuffer im USB-Chip:

Ein Raum mit 2 gegenüberliegenden Türen, eine geht auf und alle gehen etwas ungeordnet rein, bis fast kein Platz mehr ist, und erst wenn die richtige Person erkannt wird, geht die andere Türe auf. Was für ein unnötiges Gedränge und Durcheinander, das da gesteuert werden muss.

Ein Raum mit 2 Türen, eine geht auf, der Richtige geht rein, die andere Tür geht auf und raus ist er, bevor es wieder von vorne recht geordnet anfängt.
Hallo Bernd

... aber warum sollte ein Durcheinander in dem Raum sein, first in first out, simpler fifo Puffer.

Anderes Beispiel:
Jedes von der CPU richtig berechnete Datenwort steht auf einem Blatt Papier. Dieses wird in eine Ablage gelegt. Je nach Rechenkapazität kommt mal ein kleiner Stapel mit Zetteln, mal ein großer Stapel. Die Zettel liegen aber schon immer in der richtigen Reihenfolge. Der DAC nimmt immer den untersten Zettel zum richtigen Zeitpunkt (von der DAC-Clock gesteuert) liest den Zettel und erzeugt aus dem Zahlenwert eine analoge Spannung... Es versteht sich von selbst, dass also immer ein Zettel in der Ablage liegen muss und dass sie Ablage nicht überlaufen darf.

Um bei deinem Beispiel zu bleiben mit den Räumen, auch das geht... siehe Arbeitsamt... jeder der rein kommt bekommt eine Nummer, egal wie voll und stickig der Raum ist, am Ausgang blinkt immer eine Nummer auf und nur der darf raus und Arbeit empfangen :wink: Wenn das Arbeitsamt das auf die Reihe bekommt, dann bestimmt doch auch ein paar fähige Entwickler.

Aber leider konnte mir bisher noch NIEMAND meine eigentliche Frage befriedigend beantworten: Wieso kann ein bitidentisches Ergebnis unterschiedlich klingen, je nachdem, ob es in Stress oder in Ruhe zusammengerechnet wird?

Um bei meinem ersten Beispiel zu bleiben, das was der PC zu tun hat ist die Ablage mit den Zettel-Stapel zu füllen. Die Zahlen darauf sind alle richtig gerechnet, egal ob im Streß oder in Ruhe (bitidentisch). Die Zettel zu entnehmen und Musik daraus zu machen ist Aufgabe des DAC und sollte in dieser Diskussion außen vor sein.

Grüße
Thias

P.S. Vielleicht fühlen sich von meinen Fragen schon einige genervt, aber ich möchte das für mich unerklärbare gern verstehen. Die Frage habe ich schon oft gestellt, wurde aber bisher immer umgangen, ignoriert, ausgesessen... Wenn in diesem Thread Informatiker dabei sind habe ich Hoffnung. :wink:
Die Erklärung muss vielleicht auch nicht so ganz volkstümlich sein, habe Elektrotechnik studiert. :wink:
Bild
Rudolf
Webmaster
Beiträge: 4937
Registriert: 25.12.2007, 08:59
Wohnort: Bergisch Gladbach

Beitrag von Rudolf »

Hallo Thias,
Thias hat geschrieben:Aber leider konnte mir bisher noch NIEMAND meine eigentliche Frage befriedigend beantworten: Wieso kann ein bitidentisches Ergebnis unterschiedlich klingen, je nachdem, ob es in Stress oder in Ruhe zusammengerechnet wird?
gerne unterstütze ich deine Fragestellung nach dem auch für mich noch nicht geklärten "Warum?".

Dass es funktioniert, kann ich als zufriedener JPlay-Nutzer bestätigen. An Philipps Core Edition werde ich mich demnächst herantasten.

Viele Grüße
Rudolf
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 4003
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo Thias,
Thias hat geschrieben:Vielleicht fühlen sich von meinen Fragen schon einige genervt, aber ich möchte das für mich unerklärbare gern verstehen.
da bist du nicht allein.

Brainstorming ist angesagt.

Meine These läuft darauf hinaus, daß bei dem elektronischen Bauteil USB-Chip die Qualität der Musiktaktung umso besser ist, je weniger der Chip mit anderen Aufgaben (Steuerung des Buffers usw.) beschäftigt wird.

Messungen, wie ein Chip bei verschiedenen Graden der Gesamtbeanspruchung arbeitet, würden uns wohl weiterhelfen.

Gruß

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

Beitrag von wgh52 »

Hallo Computeraudiophilisten,

ich erinnere mich irgendwie, dass vor längerer Zeit irgendwo hier im Forum mal eine gewisse Korrelation zwischen CPU- u. Netzteil-Belastung, Netzteilbauart analog oder Schaltnetzteil diskutiert wurde. Als Übertragungsweg von aus diesen Quellen stammenden Störungen zum DAC wurde die USB Verbindungsmasse diskutiert. So richtig bewiesen und geklärt wurde die Sache, glaube ich, nicht. Aber vielleicht sind das Ansatzpunkte für Erklärungen und Experimente, immerhin produziert ja ein "möglichst untätiger" nach hiesiger Erkenntnis wohl die bessere Reproduktion.

my 2 Cents...
Winfried

2740
Bild
Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Beitrag von Thias »

Bernd Peter hat geschrieben:Meine These läuft darauf hinaus, daß bei dem elektronischen Bauteil USB-Chip die Qualität der Musiktaktung umso besser ist, je weniger der Chip mit anderen Aufgaben (Steuerung des Buffers usw.) beschäftigt wird.
Wenn wir von einem asynchronen DAC ausgehen hat der USB Chip nichts mit der Musiktaktung zu tun. Der Systemtakt dient lediglich zur Übertragung der Daten völlig ohne Musiktaktung. Wenn der Puffer im DAC ein RAM mit 16 GB wäre (oder SSD), könnten die Daten dort viiiele Stunden zwischengepuffert werden und sich "beruhigen". Die Daten sollten ja dort bitidentisch sein.
ich erinnere mich irgendwie, dass vor längerer Zeit irgendwo hier im Forum mal eine gewisse Korrelation zwischen CPU- u. Netzteil-Belastung, Netzteilbauart analog oder Schaltnetzteil diskutiert wurde. Als Übertragungsweg von aus diesen Quellen stammenden Störungen zum DAC wurde die USB Verbindungsmasse diskutiert. So richtig bewiesen und geklärt wurde die Sache, glaube ich, nicht.
Das kann durchaus klangliche Einflüsse haben. Allerdings wäre das vom DAC bzw. vom Netzteil abhängig und immer wieder individuell anders. Wie ist das dann bei galvanischer Trennung durch optische Übertragung?

Eine Frage an alle, die Klangunterschiede hören, werden wirklich asynchrone DACs verwendet?

Grüße
Thias
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4659
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Bevor Rudolf evtl. die (OT)-Beitrage verschiebt, mal eine These meinerseits:

Ich nehme an dass im DAC eine Pufferung verwendet wird. Und dass eben das mysteriöse Verhalten auftritt wo trotz der Pufferung der ankommende gleichmässige bzw. ungleichmässige Datenstrom das Klangergebnis beeinflusst.

Nun, das wäre für mich erklärbar, wenn der Puffer ein einfacher FIFO-Puffer ist. Der Puffer ist dabei wahrscheinlich ein Ringpuffer. Es gibt nicht unendlich Speicherplatz und wenn man hinten ankommt fängt man wieder von vorne an. Und der Puffer im Speicher ist dabei wohl ein shared memory. D.h. dass sowohl reingeschrieben wird und ausgelesen wird und zwar quasiparallel. Unter Benutzung derselben Adress- und Datenleitungen.

Dann wird ein gleichmässiges Auslesen aus dem Puffer dadurch gestört, dass währenddessen (z.B. per DMA) die nächsten Daten (asynchron) reinkommen. Zwar auf anderen Speicherplätzen, weil FIFO, aber eben unter Nutzung derselben Adress- und Datenleitungen.

Für mich würde eine korrekte Logik so aussehen:
Es gibt zwei Speicherchips, also zwei Puffer (es könnten auch mehr sein). In diese Puffer wird abwechsend geschrieben und gelesen. Die Speicher haben z.B. zwei Adress- und Datenbusse. Wenn also in Puffer 1 geschrieben wird, ist der Bus freigegeben, über den der USB-Receiver Zugriff auf Adressen und Dateinleitungen hat. Der Puffer 2 befindet sich während dieser Zeit für diese Busleitungen im hochohmigen Zustand (klassische Tri-State-Logik). Dafür sind die Leitungen freigeschaltet, über die der DAC die Daten ausliest. Wohingehend der Puffer 1 zu diesem Zeitpunkt für den DAC nicht sichtbar ist, weil hochohmig. Und wenn das Auslesen eines Puffers durch den DAC beendet ist, wird unmittelbar umgeschaltet. Was dann aber bedeutet, dass der neu Puffer korrekterweise gefüllt ist. Da muss also das Schreiben schneller geschehen als das Lesen.

Fazit: wenn USB-Receiver und DAC dieselben Adress- und Datenleitungen quasiparallel verwenden, geht es schief, selbst wenn der Speicher 10 GB gross ist. Jede Baugruppe sollte ihre eigenen Leitungen verwenden. Der Übergabespeicher kann wahlweise den einen oder anderen Bus aktivieren.

Frage meinerseits: welcher DAC verwendet dieses Prinzip der Tri-State-Logik? Ich geh mal davon aus, dass das wohl eher ein Wunsch ist und bleibt.

Grüsse
Uli
Bild
Bernd Peter
Aktiver Hörer
Beiträge: 4003
Registriert: 04.05.2010, 19:37

Beitrag von Bernd Peter »

Hallo Thias,
Thias hat geschrieben:Wenn wir von einem asynchronen DAC ausgehen hat der USB Chip nichts mit der Musiktaktung zu tun. Der Systemtakt dient lediglich zur Übertragung der Daten völlig ohne Musiktaktung.
Ich lerne gern dazu, also dann: Wo wird denn dMn getaktet?

Noch eine Verständnisfrage: Warum gibt der USB-Chip dann ein I2S Signal aus?
Wenn der Puffer im DAC ein RAM mit 16 GB wäre (oder SSD), könnten die Daten dort viiiele Stunden zwischengepuffert werden und sich "beruhigen".
Hier handelt es sich mW um UARTs, die sind nicht mit Arbeitsspeicher zu verwechseln.

Vielleicht als Arbeitspapier:

http://www.redhat.com/mirrors/LDP/HOWTO ... ml#toc19.3

Gruß

Bernd Peter
Bild
axxxxx

Beitrag von axxxxx »

Junx,

hier gibt es auch noch ein paar erhellende Ausführungen zu dem Thema:

The myth of the asynchronous DAC

So wie ich das verstehe, geht es nur darum, wer die Taktung vorgibt: Die Quelle oder der DAC. Wenn von einem synchronen DAC gesprochen wird, dann gibt die Quelle (PC/Streamer/Laufwerk) die Taktung vor, bei einem asynchronen DAC wird die interne Clock des DAC genutzt. Dies ist (wohl) hauptsächlich der Fall bei USB-Eingängen/DACs.

Gruß,
Kai
Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Beitrag von Thias »

Bernd Peter hat geschrieben:Ich lerne gern dazu, also dann: Wo wird denn dMn getaktet?

Noch eine Verständnisfrage: Warum gibt der USB-Chip dann ein I2S Signal aus?
Hier eine gut verständliche Seite, auch ist dort sehr schön das Rippen erklärt, welches ohne Fehlerkorrektur arbeitet, dafür bitidentisch (es liest eine fehlerhafte Stelle mehrmals):
www.friends-of-audio.de hat geschrieben:
6. Asynchron Mode

Bei Verwendung des asynchron Mode arbeitet der DAC mit einer eigenen, vom Rechner vollkommen unabhängigen Taktung. Dies macht die anschließende Digital/Analog-Wandlung praktisch unabhängig von allen Ungenauigkeiten der Zeitbasis im Rechner und minimiert den damit normalerweise verbundenen Jitter. Anders als beim adaptive Mode wertet der DAC die ankommenden Datenpakete bei der asynchronen Kopplung ausschließlich in Bezug auf die darin vorhandenen digitalisierten Musiksignale aus. Dabei berechnet der DAC aus den Datenpaketen die ursprüngliche Abtastfrequenz sowie die zu Grunde liegende Auflösung von 16 oder 24 Bit. Die Daten werden - wie auch im adaptive Mode - zunächst in einen Zwischenspeicher geladen und von dort aus weiter verarbeitet. Im Unterschied zur adaptiven Methode kann der DAC über den Rückkanal der USB-Verbindung dem Rechner jedoch vorschreiben, mit welcher Geschwindigkeit er die Daten liefern soll. So ist sichergestellt, dass der Pufferspeicher immer optimal gefüllt ist – also weder unterfüllt ist noch überläuft. Beide Zustände würden sonst zu hörbaren „Klicks“ oder lautem Rauschen im zurück gewandelten Analogsignal führen.

Da der Rechner im asynchron Mode ausschließlich die Daten anliefert und der Datentransfer vom DAC gesteuert wird, spricht man auch davon, dass der DAC als Master und der Rechner als Slave agiert. Im adaptive Mode ist dies genau umgekehrt.

Die Unabhängigkeit des DACs vom Zeittakt des Rechners garantiert den Ausschluss vom Rechner induzierten Jitters. Gleichzeitig befindet sich der eigentliche DAC-Baustein im Wandler auf der Platine in unmittelbarer Nähe des Quarzes, der den Takt für den DAC generiert. Dies wiederum reduziert Jitter, der durch eine räumliche Entfernung zwischen DAC-Baustein und Taktgeber entstehen kann. Wird für die Taktgenerierung ein möglichst hochwertiger Quarz benutzt, so ist man dem Ideal der digitalen Übertragung schon sehr nah.

Doch wie kann der DAC alle diese Vorgaben des bidirektionalen Datenaustauschs erfüllen?

Um alle Einzelschritte der Übertragung genau aufeinander abzustimmen, ist es notwendig, dass auf dem Rechner entsprechende Treiber installiert sind, die es dem DAC erlauben, die Kontrolle über den Datentransfer zu erlangen. Auch bei dieser Anwendung gibt es unterschiedliche Implementierungen seitens der verschiedenen Hersteller von DAC´s mit asynchroner Übertragungsprotokoll
Bild
Thias
Aktiver Hörer
Beiträge: 233
Registriert: 25.12.2011, 08:53
Kontaktdaten:

Beitrag von Thias »

uli.brueggemann hat geschrieben:Fazit: wenn USB-Receiver und DAC dieselben Adress- und Datenleitungen quasiparallel verwenden, geht es schief, selbst wenn der Speicher 10 GB gross ist. Jede Baugruppe sollte ihre eigenen Leitungen verwenden. Der Übergabespeicher kann wahlweise den einen oder anderen Bus aktivieren.

Frage meinerseits: welcher DAC verwendet dieses Prinzip der Tri-State-Logik? Ich geh mal davon aus, dass das wohl eher ein Wunsch ist und bleibt.
Hallo Uli,

ja, du hast die Problematik auf den Punkt gebracht.

Allerdings muss man jetzt in die Hardware bzw. Firmware eines DAC eintauchen. Das Auslesen eines Samplingwertes aus dem Puffer und die damit direkt verbundene Erzeugung eines Spannungssignales muss natürlich ganz genau in der Samplingtaktung erfolgen. Das ist das Herzstück eines DAC. Sonst entsteht starker Jitter.

Deshalb DENKE ich, das sind Hardwarelösungen, die darauf spezialisiert sind. Ein DAC ist ja eine sehr spezialisierte Lösung und kein allgemein und universell einsetzbarer PC mehr. Ein "Softwarepuffer" der über die gleichen Daten- und Adressleitungen diesen Puffer bedient würde nicht funktionieren bzw. extrem verjittern.

Aber wer steckt so tief in der Firmware eines DAC? Im Netz habe ich dazu nicht viel gefunden.

Grüße
Thias
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4659
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Thias,

produktbezogen und natürlich auch "rosa gefärbt" findest Du z.B. hier etwas. Dort sind denn auch Patente angezogen und in denen wird dann sicherlich mehr Detailliertes stehen.

Wie ansonsten bei üblichen seriellen I²S-Verbindungen die weitere nachfolgende Dekodierung und evtl. Zwischenspeicherung im DAC stattfinden scheint nicht besonders gut dokumentiert. Blockschaltbilder von DAC-Chips sind da nicht besonders aussagekräftig.

Grüsse
Uli
Bild
Antworten