TigerVNC and libjpeg-turbo
Transcript of TigerVNC and libjpeg-turbo
![Page 1: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/1.jpg)
TigerVNC and libjpeg-turboThe best remote desktop
Red HatAdam TkacFebruary 11, 2011
![Page 2: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/2.jpg)
Agenda
1 TigerVNC & Remote desktopUse casesProjectArchitectureTigerVNC 1.1
2 libjpeg-turboBackgroundSpeedup 1 - SSE2Speedup 2 - Colorspace extensionsSpeed comparation
![Page 3: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/3.jpg)
TigerVNC
![Page 4: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/4.jpg)
TigerVNC & Remote desktop Use cases
Use cases
working on remote computerGUI is more user friendly for many people than CLIsome programs don’t have CLI interface
share desktop with multiple users (teaching)
thin clients
![Page 5: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/5.jpg)
TigerVNC & Remote desktop Project
TigerVNC project
http://tigervnc.org
forked from TightVNC in 2009 by someTightVNC and TurboVNC developersgoals of the TigerVNC project
maintaining specification of RFB extensionsminimal consumption of CPU timeTigerVNC server based on the newest X.Orgsupport wide range of platforms (Windows, Linux,Solaris, OS X)
![Page 6: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/6.jpg)
TigerVNC & Remote desktop Architecture
Architecture
uses RFB (Remote FrameBuffer) protocol
client – server architecture over TCP/IP
server sends rectangular differences in it’sframebuffer to clients
client sends key/mouse events to server
Xvnc (UN*X) and winvnc4 (Windows) servers
vncviewer client
libvnc.so module to Xorg server
![Page 7: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/7.jpg)
TigerVNC & Remote desktop TigerVNC 1.1
TigerVNC 1.1
upcomming major feature release (the firstbeta is planned to the next week)interesting features
TLS encryption supportX.509 authentication supportbasic PAM supportmajor speed improvements on x86 64 architecture
![Page 8: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/8.jpg)
libjpeg-turbo
![Page 9: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/9.jpg)
libjpeg-turbo Background
Background
http://sourceforge.net/projects/
libjpeg-turbo
TigerVNC uses JPEG for compression of imagerectangles
JPEG compression/decompression consumesmost of CPU time
fast JPEG routines decrease CPU utilization
fork of libjpeg implementation, 100% API/ABIcompatible
the fastest open source JPEG implementation
![Page 10: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/10.jpg)
libjpeg-turbo Speedup 1 - SSE2
Speedup 1 - SSE2
JPEG consumes most CPU time by arithmeticoperations with vectors
instructions supported on vast majority ofcurrent x86 and x86 64 CPUs
arithmetic operation on multiple integers/floatsper instruction
separate registers, don’t conflict withCPU/FPU registers
![Page 11: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/11.jpg)
libjpeg-turbo Speedup 2 - Colorspace extensions
Speedup 2 - Colorspaceextensions
original libjpeg supports only RGB pixel format
VNC server/client can run on differentendianesses
reordering of pixel RGB elements is expensive
libjpeg-turbo allows native conversion from/toRGB, BGR and other widely used formats
![Page 12: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/12.jpg)
libjpeg-turbo Speed comparation
Speed comparation
1.8x – 4.5x faster than libjpeg
comparable with IPP library on x86 64, slightlyslower on x86
visible difference between libjpeg-turbo andlibjpeg when working with large images
the fastest open source JPEG implementation
![Page 13: TigerVNC and libjpeg-turbo](https://reader030.fdocuments.net/reader030/viewer/2022012209/61df082c4da24f0f6503c939/html5/thumbnails/13.jpg)
The end.Thanks for listening.