First blog, but hopefully one which Raspberry Pi enthusiasts will find interesting!
I’m Muhammad and I’ve been at Citrix for close to 9 years now. For the last 2 of those years, I’ve been working on the “Citrix Receiver for SoC” effort with various SoC partners. In short, we provide a “pluggable” ARM version of the Citrix Receiver for Linux (currently working on version 13) and partners choose to hardware accelerate various aspects, for example, JPEG decoding, to improve the performance.
We’ve seen some good results in the past on a wide range of devices, but it’s always been in the back of mind to try and eeek out as much performance as I can from the Raspberry Pi – a $30 ARM device targeted at the hobby programmer.
The first job was to build a Raspberry Pi ARM hard-float version of the Receiver for Linux. Once this was done, I launched a Windows 7 session on the Pi over XenDesktop 7 to see what the baseline performance of a 720p host-rendered video was.
3 FPS. Yes, you read correctly, a whole THREE frames per second. Granted the Pi is hugely under-powered when compared to some of the other devices I’ve been used to working with, but 3 FPS is hardly usable, even for office-worker type scenarios let alone playing 720p movies or games.
So, I got to work, and in my spare time learnt a little more about the Pi’s hardware capabilities. There’s lots of useful info out there about the Pi, but when it comes to H.264 decoding, documentation is a little scarce. However, after reading up on the various decoding APIs and about a day’s effort on the decoder, I managed to get something working and, with the help of a colleague, shot a short video (be sure to view in full screen!) showing “before vs. after”.
We’re now hopeful that the Pi might after all be a perfectly usable everyday thin client 🙂
18/03/2014 Update; download the latest Receiver for Pi here!: /blogs/2014/03/17/raspberry-pi-xendesktop-pt-3-download-receiver-here/