Ruby Adaptive Video Link
If you have the adaptive video link option enabled in Ruby (enabled by default), then Ruby will continously measure a set of parameters and based on those measurements the video parameters are automatically adjusted on the fly with the goal to maintain a robust video link, with no glitches or breakups, even when the radio link quality goes lower.
How it works:
Ruby continuously measures (on both ends of the radio link: on your vehicle and your controller) an extensive set of parameters (missing data, receive strength, the amount of error correction data that is used, retransmissions requests, latency of the radio link) in order to gauge the video link quality and detect potential upcoming video breakups.
Based on these input parameters Ruby computes a set of synthesized parameters (VQP: Video Quality and Prediction parameters) about overall radio link quality and video stream quality in the present and in the near future.
Based on these VQP parameters, small, descrete adjustments steps in error correction rate, H264 parameters and video bitrate are done when needed to prevent a breakup in the video.
If such small changes would not suffice, then more aggresive changes are done and the actual radio datarate is lowered too and then only small adjustments are performed again (see the right side picture);
The vehicle code, when performing all these computations of VQP parameters and does adjustments, also uses feedback from the controller about the input parameters above. If for some reason feedback from the controller stops beeing received, than Ruby will switch to a different algorithm and use only information available on the vehicle itself to compute VQP parameters. When feedback from the controller is received again, the algorithms are switched back.
How to enable/disable and configure adaptive video link:
By default, adaptive video link is enabled. If for some reason you want to disable it, you can do so from
Menu->Vehicle->Video->Advanced Video Profile Parameters.
When doing long range flights, usually the controller has lower range than the vehicle, so when the vehicle can't communicate with the controller Ruby will automatically switch to a different method of computing the video link quality. If you want to never use the feedback from the controller, you can disable it in the same menu.
If you feel that the strength of the auto adjustments is too slow or too fast, you can tweak it from the Developer menu.