Ich bin dabei, ein Signalmanagement- und Routing-Modul für ein integriertes audiovisuelles System zu entwickeln und entwerfe es mit der Absicht, über verschiedene Signalverteilungsnetze hinweg so flexibel wie möglich zu sein. Die Absicht des Moduls ist es, das Routing über eine Anzahl von gestapelten Matrixschaltern 1 und die erforderliche Formatkonvertierung zu handhaben.
Die beste Lösung, die ich an dieser Stelle untersucht habe, besteht darin, das Netzwerk auf einen Graphen mit diskreten Eckpunkten für jeden von den Switchern unterstützten Signaltyp abzubilden, die dann über Knoten verbunden werden, die die Videoprozessoren darstellen, die die Formatkonvertierung handhaben.
Farben repräsentieren Signalformate. Runde Knoten sind entweder Switcher, Quellen oder Senken. Quadratknoten sind Videoprozessoren, die eine Formatkonvertierung durchführen.
Von dort aus kann ich mit einer Implementierung des Dijkstra-Algorithmus den Pfad identifizieren, der gebildet werden muss, um die Eingabe X zur Ausgabe Y zu bringen. Dies sollte die Übergabe der Daten über die Eingabe- / Ausgabekonfiguration aller Switches und Prozessoren ermöglichen und das Modul entsprechend anpassen.
Ist dies eine angemessene Lösung oder gibt es einen alternativen Ansatz, der möglicherweise untersucht werden sollte?
1 auch als "Crossbar-Switch" bezeichnet, ein Video-Router mit M Eingängen und N Ausgängen, der 1: 1-Verbindungen unterstützt. Jedes physikalische Gerät kann mehrere Signalformate verarbeiten und ist möglicherweise nicht in der Lage, eine Formatkonvertierung durchzuführen.
edit: Wie von Péter Török erwähnt, wird die Grafik nicht unbedingt ein Baum sein, das Diagramm ist ein einfaches Beispiel, um die Idee zu veranschaulichen. Bei der Implementierung in der "realen Welt" können mehrere Pfade existieren, die unterschiedliche Definitionsebenen bieten (DVI> VGA> Component> Composite), die ich mit Kantengewichtung darstellen wollte.
edit 2: Hier ist ein etwas umfassenderes Beispiel mit angegebener Richtwirkung und einem Netzwerk, das aus zwei Signaltypen besteht. Das erste Beispiel wurde geringfügig geändert, sodass jeder Ein- und Ausgang eines Geräts als diskreter Knoten definiert ist, da hierdurch die zur Steuerung des Matrixroutings / der Eingangsauswahl erforderlichen Daten bereitgestellt werden.