T
tuxedo
Gast
Hi,
für eine VNC-Server artige Implementierung muss ich aufeinander folgende Bilder (kein Video, aber ein nahezu live-Bild des Desktops eines PCs) miteinander vergleichen, und die Bereiche erkennen, in denen sich etwas geändert hat. Ziel ist es, nicht immer das ganze Bild übertragen zu müssen, sondern nur den Teil, der sich seit dem letzten übertragenen Bild geändert hat.
Bisher mach ich es "naiv" etwa so:
1) Rastere VORHER und NACHHER Bild jeweils in x waagerechte und y senkrechte Blöcke
2) Nimm Block X des VORHER Bildes und vergleiche Pixel für Pixel mit dem Block X des NACHHER Bildes.
3) Unterscheidet sich ein Pixel innerhalb eines Blocks zum gleichen Pixel des anderen Blocks, so übertrage den ganzen Block.
4) inkrementiere X und springe zurück zu 2), solange bis alle Blöcke verglichen wurden.
Gibts irgend einen tollen, intelligenten Algorithmus mit dem ich nicht Pixel für Pixel vergleichen muss? Auf den ersten Blick würde ich sagen: Nein. Aber vielleicht gibts ja irgendwas das größere Bildbereiche schneller vergleicht? Keine Ahnung. Deshalb frag ich hier ja...
Gruß
Alex
für eine VNC-Server artige Implementierung muss ich aufeinander folgende Bilder (kein Video, aber ein nahezu live-Bild des Desktops eines PCs) miteinander vergleichen, und die Bereiche erkennen, in denen sich etwas geändert hat. Ziel ist es, nicht immer das ganze Bild übertragen zu müssen, sondern nur den Teil, der sich seit dem letzten übertragenen Bild geändert hat.
Bisher mach ich es "naiv" etwa so:
1) Rastere VORHER und NACHHER Bild jeweils in x waagerechte und y senkrechte Blöcke
2) Nimm Block X des VORHER Bildes und vergleiche Pixel für Pixel mit dem Block X des NACHHER Bildes.
3) Unterscheidet sich ein Pixel innerhalb eines Blocks zum gleichen Pixel des anderen Blocks, so übertrage den ganzen Block.
4) inkrementiere X und springe zurück zu 2), solange bis alle Blöcke verglichen wurden.
Gibts irgend einen tollen, intelligenten Algorithmus mit dem ich nicht Pixel für Pixel vergleichen muss? Auf den ersten Blick würde ich sagen: Nein. Aber vielleicht gibts ja irgendwas das größere Bildbereiche schneller vergleicht? Keine Ahnung. Deshalb frag ich hier ja...
Gruß
Alex