Differenzen von Bildern berechnen - Remote control

Kr0e

Gesperrter Benutzer
Hallo Zusammen!

Ich hab mal wieder die ZEit gefunden an meinem RemoteControl-Programm weiterzuarbeiten. DAs Problem, dass jedes Bild knapp 120 ms braucht um gecaptured zu werden, hab ich inzwischen mit Reflection gelöst und ist nahezu instant.

Nun wäre der nächste Schritt angebracht: Wie kann ich eine Art Delta zu einem vorherigem bild erstellen, damit ich beim Netzwerk nicht gleich die Bandbreite spränge...

Gibt es für sowas bereits Java-interne lösungen ?

Gruß,

Chris
 
Das mit dem "Delta" ist so eine Sache.... Zu diesem Thema ("Remote Desktop" etc) gibt's schon einige Threads (z.B. http://www.java-forum.org/awt-swing-swt/99632-bildqualitaet-verringern.html ). Wie soll denn die "Differenz" aussehen? Bei einem naiven Ansatz würde, wenn sich bei einem 1000x1000-Desktop der Pixel (0,0) und der Pixel (999,999) (oder meinetrwegen auch der Rahmen um den Desktop mit diesen Eckkoordinaten) ändert, doch wieder alles übertragen.
Allgemein kann man wohl sagen, dass die beste Strategie, um herauszufinden, WAS man übertragen will, davon abhängt, WAS man übertragen will 😀 Bei einem 3D-Spiel würde sich bei der kleinsten Kamerabewegung ALLES ändern, d.h. man könnte sich die "Differenzberechnung" schenken. Bei einem riesen-Desktop wo ein 8x1 Pixel großer Cursor blinkt würde es sich aber dann doch wieder lohnen...
 
Ja, das ist wohl wahr =) Jetzt, wo das capturen schnell genug ist (instant war vlt übertrieben, aber ~20-30 statt 120 vorher ist schon eine Besserung), ist das speichern/verschicken/komprimieren nämlich das Nadelöhr. Hm, dann werde ich mal grübeln wie man das vlt geschickt machen könnte. Vlt mit Xuggler und dann live streamen (Mit einem effektiven Codec). Aber das ist wieder viel Aufwand.
 

Zurück
Oben