Since the release of VMware View 4.0 and the software-only implementation of the Teradici PC over IP (PCoIP) remoting protocol, there’s a lot of discussion about its performance in local area networks and its efficiency across WAN links.
BrianMadden.com recently published an insightful interview with VMware about how PCoIP works in deep, technical details.
It’s just three questions and answers, but it’s well worth a read:
…As part of image decomposition, the PCoIP protocol makes use of motion estimation and compensation. The host side attempts to detect groups of pixels that have moved between screen changes. This is called motion estimation for some subtle technical reasons, but it’s probably easier to think of it as motion detection. The details of any detected motion are sent to the client device which copies the pixels from their original location to their new location. This is a form of caching, but currently only applies to pixels that were visible in the immediate prior screen.
As you can imagine, motion detection could be very CPU-intensive if you search every possible position on the screen (e.g. 2+ million comparisons for each pixel block for a 19×10 screen). Since it is much more likely that a block of pixels has moved only a small distance between screens, most motion estimation algorithms limit their search to a region of nearby pixels rather than the full screen…