How to install RMVideo

Users have encountered significant difficulty configuring a newer Linux system to run the most recent version of RMVideo, which was built in 2014 on a 2009-era workstation running a rather old kernel (2.6) and using now-outdated versions of the libraries on which the program depends. This triggered an effort in May 2016 to rebuild RMVideo on a more recent Linux system, and to prepare a more thorough guide on how to configure the Linux machine to run RMVideo successfully. We have prepared guides for setting up Linux workstations under two different long-term support (LTS) versions of Ubuntu Linux: 14.04.x and 18.04.x. Ubuntu 14.04 LTS reached "end of life" status in April 2019, but RMVideo workstations in the Lisberger lab continue to use that version as of Oct 2020. Running RMVideo under 18.04 LTS required some code changes, and a version of the program is now available that is compatible with that OS release (18.04 LTS end-of-life in April 2023).

Configuring a Linux workstation to run RMVideo
‎‎‎‎[DRAFT]‎‎‎‎ Configuring...orkstation to run RMVideo

Notes on gamma-correcting the RMVideo display

[Disclaimer: I am no expert on this issue. I got some of the general ideas from a paper by Charles Poynton, and this discussion on monitor calibration and gamma by Norman Koren. Check out other links at these sites for further information.]

Cathode ray tube (CRT) luminance L does not vary linearly with the voltage V applied to the monitor input; rather, it varies as a power function: L = (V + ε)γ, where ε is known as the "black level". If the black level is properly accounted for, the exponent γ is typically 2.2-2.5. The drive voltage V, in turn, is proportional to the 8-bit digital-to-analog converter (DAC) value C that represents the "encoded luminance" within the graphics system. [To be more precise, the R, G and B monitor inputs are driven by separate voltage signals which, in turn, are proportional to separate DAC values Cr, Cg, and Cb. However, it is often the case that γ is nearly the same for all three color components -- which is our assumption here.]. If we wish the 8-bit integer C to map linearly to measured luminance L, we must "gamma-correct" the output of the video card to compensate for the monitor's nonlinear transfer function. Most modern video cards support gamma-correction by including an internal lookup-table that implements a power function of the form V = C1/γ´; in Linux, if the video driver supports the XFree86-VidModeExtension (the NVidia driver does so), one can use the xgamma command to set the value of the gamma-correction factor γ´. As of Maestro v2.5.0, you no longer need to do this; RMVideo now uses the XF86VidMode extension to do gamma correction, and you can change the R/G/B gamma factors directly on Video Display tab in the Maestro GUI.

Note that if you gamma-correct the monitor such that L varies linearly with C, perceived luminance P will NOT vary linearly with C. This is because the human visual system has a nonlinear response to luminance. This response is roughly logarithmic; in fact, it is nearly the inverse of the CRT transfer function: P ~ L1/2.2 + constant. Therefore, if you want perceived rather than measured luminance to vary linearly with the encoded luminance C, then use gamma-correction to achieve an overall "monitor gamma" of 2.2 (the gamma-correction factor γ´ is set to 2.5/2.2 = 1.136). This is typically what is done when "gamma-correcting" a desktop PC display.