Wie kann ich den Ton mehrerer verschiedener Videos auf meinem Computer hören?

397
Yokhen

Ich lese dieses Buch, und soweit ich in Kapitel 3 bin, verstehe ich, dass Multiprogramming und Multiprocessing die schnellere Ausführung mehrerer vorhandener Prozesse / Threads ermöglichen. Ich lese in all ihre Feinheiten und verstehe bisher alles gut. Es wird jedoch auch erwähnt, dass, während ein Programm E / A-Module verwendet, ein anderes Programm warten muss, was zahlreiche Male impliziert, dass zwei Programme E / A-Module nicht gleichzeitig verwenden können.

Vielleicht frage ich mich zu früh und das wird irgendwann später in diesem Buch behandelt, aber im Augenblick kann ich mich nicht wundern, wie ich etwa VLC Media Player und Windows Media Player abspielen kann, die jeweils verschiedene Videos abspielen Mein Computer und doch muss das Audio eine Kombination aus dem Sound beider Videos sein. Kann es sein, dass die Ausführung von Prozessen in der E / A auch eine Art Zeitgeber hat? Oder hat mein Computer möglicherweise mehrere E / A-Module (in diesem Fall Audio / Lautsprecher)? Wenn ja, gibt es ein Limit? Gibt es irgendwo in diesem Buch, an dem ich kurz vorbeischauen kann, um es zu lesen? Oder vielleicht eine Website, die es erklärt?

0

2 Antworten auf die Frage

2
David Schwartz

Es gibt mehrere Softwaremodule, die in das Softwaremischermodul einspeisen, das die Hardware versorgt. Jede Anwendung hält eine Warteschlange mit Tondaten nicht leer, da das Mischermodul die Eingänge kombiniert, um einen einzigen Ausgang zu erzeugen, der die Hardware steuert.

Überall wo ich mehr darüber lesen kann? Yokhen vor 9 Jahren 0
2
Frank Thomas

Es gibt ein paar Dinge zu beachten. Beachten Sie zunächst, dass sich analoges Audio von digitalem Audio unterscheidet, das normalerweise mit einer Bitrate von 48 kHz übertragen wird (die analoge Bitrate ist theoretisch unendlich). Wenn Sie es häufiger betrachten (wie vielleicht 1 MHz), würden Sie "Löcher" zwischen den Bits sehen, und Sie können die Zeit nutzen, um andere Dinge zu tun, beispielsweise einen zweiten Stream zu verarbeiten.

Zweitens beachten Sie, dass die Southbridge die Audiocodec-Verarbeitung übernimmt, sodass der Stream nicht die gesamte Länge des Systembusses durchlaufen muss. zwischen der Southbridge und der Soundkarte selbst wird ein großer Teil der Verarbeitung in der Nähe des Quellbusses (des SuperIO-Controllers ) durchgeführt.

Drittens ist zu beachten, dass die Southbridge mehrere Verbindungen zum SuperIO-Controller hat, und der Bus zwischen ihnen (bei der modernen Datenverarbeitung) und die Sata-Bitrate in GHz gemessen werden.

Viertens ist zu beachten, dass Streams ein kontinuierliches Phänomen sind, sodass ein Thread, der einen Stream von der Festplatte liest, nicht rechtzeitig abgeschlossen wird, so dass er die Ausführung auf einen anderen Thread synchron ausführen kann. In diesem Fall wird die Eingabe gepuffert, während andere Threads ausgeführt werden, wenn das System dem Thread nicht kontinuierlich eine Ausführungseinheit bereitstellen kann. Das System muss in der Lage sein, sie zeitlich zu schneiden, oder ein Kernsystem könnte niemals eine Sounddatei abspielen. Die CPU verarbeitet jedoch nicht viel mit der Audiobearbeitung.

HD-Audio bei hohen Bitraten kann Systembusse belasten und Probleme mit Multithreading bei gleichbleibender Wiedergabe verursachen. Windows Vista + drosselt andere Southbridge-Stream-Dienste wie die Netzwerkkarte, um eine reibungslose Wiedergabe zu gewährleisten. Ein gut bereitgestelltes System ohne signifikante Auslastung hätte jedoch kaum Probleme, ein paar Streams scheinbar gleichzeitig zu rendern.

Alles in allem: Selbst wenn Ihr System auf E / A-Module beschränkt war, ist der Ton langsam genug für die Zeitaufteilung, er setzt Hardware und Busse zusammen, um Flaschenhälse mit anderen Systemkomponenten zu vermeiden, und belastet den eigentlichen E / A-Kanal nicht .

In meinem kleinen Wissen machte das sehr viel Sinn. Vielen Dank! Yokhen vor 9 Jahren 0