Graphics Plugin Administrator Guide
Version 2.1 | Published October 06, 2017 ©
Introduction to Tuning the NLE System
The Graphics Plugin is designed to give the NLE system direct access to preview, edit and apply graphics to the NLE project and consequently onto the video on the timeline. In addition the Graphics Plugin is designed around the concept of one renderer being shared by several concurrent users on a fast network. The complexities of this design is hidden from the normal user and to a certain extent to the system administrator. Hence, there are multiple challenges with this approach when effects are rendered.
The following can be described as a common workflow for most NLE systems:
-
The NLE system (Final Cut Pro, Avid Media Composer and others) demands a frame or field from the Graphics Plugin.
-
The Graphics Plugin checks its configuration and tries to connect to Viz Engine over the network.
-
When connected, the plugin will query Viz Engine for basic information, load the graphical scene in question and set the correct values in the scene, and stretch the graphics to fit the effect in the NLE project.
-
The plugin will then start requesting fields and frames from Viz Engine depending on what the NLE system has requested.
-
Viz Engine will receive the requests and ensure that the right scene is loaded and move to the right frame or field and grab the graphics and send them back over the network.
-
Graphics Plugin will receive the graphics and hand them back to the NLE system.
-
The NLE system will process the data it received before requesting more graphics, thus repeating the steps above.
The procedure described above is simple to follow, it works fine and is easy to test. The problem with it is that it is not very fast. The most obvious problem is that NLE systems ask for a simple frame or field at a time and blocks until it gets a reply. The Graphics Plugin sends the request to Viz Engine and has to wait for a reply before it replies back to the NLE system.
The first concern is the amount of data being sent, for example a simple interlaced HD (1080i) field with full alpha is 4MB (1920*540*4 bytes) in size which will take some time to transmit. To render a 5 second interlaced HD clip at 50 frames a second means that more than a gigabyte of raw data has to be rendered and then processed by Viz Engine, sent over the network, received by the Graphics Plugin, and then moved into the buffers provided by the NLE system whereupon the NLE system needs to process the gigabyte of data.
Every network also has latency and is affected by other traffic on the network. Waiting for every request returning with 4MB of graphic will take time, and then waiting for the NLE system to process it further also means that there is a lot of inactivity. Therefore, the Graphics Plugin has a goal of whenever the NLE system asks for a frame or a field it will have it ready to cut the delay. The plugin tries to accomplish this by keeping the network and Viz Engine continuously busy. It will try to predict what the NLE system will ask for next by asking Viz Engine in advance for graphics. Once Viz Engine has received the request it will render the graphics, have it sent back to the plugin which will process it to fit the format of the NLE system and have it ready.
To keep this workflow going there are a number of factors affecting it:
-
What tv-standard to use, for example PAL is a lot smaller than 1080i and will be quicker to render, process and send over the network.
-
The CPU and GPU of the Viz Engine defines how fast it can deliver graphics. As always, a better graphics card, faster CPU and more memory will help.
-
The network card on Viz Engine and the NLE client machine.
-
The network capacity defines how much data can be sent over the network.
-
The compression of the data decides both how much CPU is used on Viz Engine to compress and on the client to uncompress, as well as how much data is sent over the network.
-
The amount of ask-in-advance requests keeping the renderer and the network busy.
-
The processing the NLE system needs to do with the data it receives (affected by CPU and/or GPU, memory, software and so on).
Some things can be improved by adding hardware to the renderer and the clients, and by using as fast a network as possible. Other things, such as File Compression , Prefetching and Concurrent Graphics Plugin Users , can be configured, either by the plugin or by convention. In addition the processing done by the NLE system will have a great impact on the performance as well.
See Also