2009-04-15 6 views
1

Angenommen, ich muss jedes Bild im Stream kopieren (ich kann nicht einfach mit jedem Mutex-Schutz auf diese Daten zugreifen, es muss trotzdem kopiert werden), welche Methode ist besser, Pro/Contra?Welche Methode eignet sich besser zum Senden eines Bilderstroms zwischen zwei Prozessen, lokaler TCP/IP-Verbindung oder Interprozesskommunikation?

Ich möchte auch wissen, wie viel Leistungsverlust impliziert im Vergleich zur Verwendung der Bilder in demselben Prozess.

Dank

Antwort

1

Zumindest Windows-Firewalls können sogar lokale TCP/IP-Verbindungen stören. Daher würde ich Shared Memory bevorzugen.

1

In Bezug auf die Leistung, IPC durch Shared Memory ist die beste Option, aber IMHO, selbst wenn Sockets ein wenig mehr Verarbeitung verbrauchen, werden sie Ihnen ein besseres Ergebnis in Bezug auf die Entwicklung Ihrer Software geben.

+0

Evolutivität ftw! – unwind

+0

Was ist ftw? (Ich kann mir F * ck das Wort vorstellen, aber ich bin kein Engländer ...) – alvatar

+0

(haha, ftw = "für den Sieg") – poundifdef

1

Google "Memory Mapped Files"

+0

Ich lese darüber, aber ich kann nicht herausfinden, wie gut die I/O einer Memory-Mapped-Datei im Vergleich zu IPC durchführen. – alvatar

+0

Memory-mapped IO * ist * eine Form von IPC. – poundifdef

1

ich das VCAM Beispiel eines Directshow-Capture-Gerät übernehmen würde (verfügbar unter: http://tmhare.mvps.org/downloads/vcam.zip)

Dieser Treiber auf das Gerät O/S als Video-Capture erscheint und würde im Zielprozess ausgeführt werden. Die Quelle würde Shared-Memory-Puffer verwenden, um ihre Frames zu injizieren.

Während komplizierter als ein minimales Shared-Memory-IPC-Schema, es einen unglaublichen Vorteil gibt in, dass Ihre Videoleitungen zu den meist Media-Player-Programmen verbinden können, Aufzeichnen und Bearbeiten von Werkzeugen usw.

ich diese einige getan haben, Zeiten, einschließlich Funktionen wie Senken, Mixer, Freeframe-Effekt-Plugins und so weiter. Es sollte ein oder zwei Tage dauern, um zusammen zu hacken.

+0

Kennen Sie eine ähnliche Multiplattformlösung? Vielen Dank! – alvatar

Verwandte Themen