RV SDI Manual

Chapter 1 Overview

This manual describes RV's implementation of the BlackMagic and AJA SDI hardware as a presentation mode device. For more information on presentation mode and how it relates to RV in general see the RV User's Manual. 

RV can be used to output either to the Blackmagic or the AJA SDI hardware.

  • RV 7.5.0+:  RV and RVSDI executables have been merged, you can now use RV executable for both applications.
  • RVSDI 7.2.0+:  Suppport for NVIDIA-SDI has been removed from RVSDI. Please use RVSDI executable for versions prior to RV 7.5.0.

Getting Started

Prior to RV 7.5.0, the SDI hardware capability was only available via a separate RV app : RVSDI. Since RV 7.5.0, both RV and RVSDI have been combined into the same RV executable.
In order to configure RV to use your SDI hardware, once the RVSDI executable has started, the first thing you should do is open the video preferences tab under RVPreferencesVideo. This is the primary interface to configure the SDI device for presentation mode.

1.1.1 Quick Start

  1. Start RVSDI go to the RV → Preferences → Video prefs.
  2. For SDI select the Blackmagic or AJA video module.
  3. Select the SDI device (e.g. the DeckLink 8K Pro or Kona5 or Io 4K in the AJA case)
  4. Select the video and data formats and sync method.
  5. Click the Use as Presentation Device check box.
  6. If you want audio output to SDI check Output audio to this device.
  7. Exit preferences.
  8. Select ViewPresentation Mode to start SDI output.
Next time you're in RV you only need to do step #8. You can always start the prefs to change the SDI parameters as described below.

Chapter 2 AJA

RV will drive a number of AJA products but not all features are available with all hardware. RV can use the AJA drivers on Mac OS X (with the Kona 3G, Kona 4, Kona 5, or thunderbolt devices), Linux (Kona 3G, Kona 4, Kona 5), and Windows (Kona 3G, Kona 4, Kona 5, and thunderbolt devices). Other AJA cards may also work on each of the platforms.
As of RV 7.7.0, for the AJA SDI hardware to be recognized by RV, the AJA 15.5.1 drivers must be installed. Please refer to the AJA documentation to install those drivers.

The “AJA” and “AJA (Control Panel)” SDI Modules

From the RV -> Preferences -> Video prefs, RV lists two different Video Modules that can operate the AJA hardware:
  • The “AJA” module operates like the NVIDIA SDI module; it allows you to set all aspects of the video and data output formats as well as set up stereo output and ancillary HDMI output.
  • The “AJA (Control Panel)” module does not set up the hardware formats itself, but will use the current settings from the AJA control panel and/or cables program. This makes it possible to set up unique routing on the AJA card.

HD, DCI 2K, UHD, DCI 4K, UHD2, and 8K Output

AJA products may support mono and stereo HD (1920 x 1080), DCI 2K (2048 x 1080), quad UHD 4K (3840 x 2160), quad DCI 4K (4096 x 2160),  quad UHD2 8K (7680 x 2160), and quad DCI 8K (8192 x 2160) depending on the hardware and the installed firmware. 

Not all formats are available on all platforms and devices.

Starting with AJA SDK 15.5 4K/UHD/8K/UHD2 SDI output can use two different modes:

  1. quadrant mode : the image is split into 4 quadrants, one quadrant per cable; the receiving device will then combine these four quadrants into a single image. This is the “traditional” way of outputting 4K.
  2. two-sample-interleave (aka 2SI aka TSI) mode: the image is split into 4 HD-resolution images, one image per cable; the receiving device, if it supports 2SI, can then combine these four images into a full 4K-resolution image. Note that each cable then provides a valid HD image that can be fed to non-2SI equipment (the HD image is formed by taking one out of every four pixels of the original 4K image, therefore the result is not as good as if going through a more elaborate downconverter).

This also affects HDMI: in quadrant-mode, HDMI will be downconverted to HD by the AJA board; in two-sample-interleave mode, HDMI will be a proper full-resolution 4K image. This is a limitation imposed by the AJA board.

To select Quadrant vs Two-sample-interleave mode, use the “4K Transport” drop-down menu in the Video preferences.

Note that this only affects 4K/UHD/8K/UHD2 resolutions.

High Frame Rate (HFR) DCI 2K and 4K at 60hz and 48hz

With recent firmware and drivers (late 2014) its possible to run the Kona3G using RVSDI with mono or stereo DCI 2K 60hz. The Kona4 additionally supports mono and stereo DCI 2K and 4K at 48hz and 60hz.

AJA Specific Configuration Options

There are additional options which can be passed to the AJA device via environment variables or from the preferences Additional Options field.
The preferences field takes command line-like syntax:
AJA NTV2 Device Options:
-h [ --help ] Usage Message
-v [ --verbose ] Verbose
--rec601 Use Rec.601 Color Matrix (default is
Rec.709)
--limiting-broadcast-range Force limiting to broadcast video range
--limiting-legal-range Force limiting to legal SDI range
--limiting-full-range Force limiting to full SDI range (no limiting)
-p [ --profile ] Output Debugging Profile
(twk_aja_profile_<ID>.dat)
-m [ --method ] arg Method (dvp, sdvp, ipbo, ppbo, basic, p2p)
--flip Flip Image Orientation
--hdmi-stereo-mode arg HDMI stereo mode (side-by-side, top-and-bottom,
Or frame-packed)
--hdmi-hdr-metadata arg HDMI HDR Metadata - comma-separated values:
rx,ry,gx,gy,bx,by,wx,wy,minML,maxML,mCLL,
mFALL,eotf,smdID
--no-set-desired-frame Don’t set desiredFrame field in transfer struct
--enable-hardware-pause Enable hardware pause states
--allow-segmented-transfer Enable segmented DMA transfers
--simple-routing Omit all but minimal routing requirements
-s [--ring-buffer-size] arg(=3) Ring Buffer Size
-n [--no-acquire] Do not attempt to acquire device from AJA
control panel
-a [ --level-a ] Enable Level A timing when possible.
--disable-tasks Set card control to ‘Disable tasks’ mode.
So for example the following forces the use of Rec.601 color conversion matrix and a ring buffer size of 4:
--rec601 --ring-buffer-size 4
Its possible to use environment variables instead which correspond to the command options above:
        TWK_AJA_HELP
        TWK_AJA_VERBOSE
        TWK_AJA_REC601_MATRIX
        TWK_AJA_PROFILE
        TWK_AJA_METHOD <method>
        TWK_AJA_FLIP
TWK_AJA_ENABLE_HARDWARE_PAUSE
TWK_AJA_RING_BUFFER_SIZE <size>
TWK_AJA_NO_ACQUIRE
TWK_AJA_LEVEL_A
TWK_AJA_DISABLE_TASKS
TWK_AJA_HDMI_HDR_METADATA
In the case of TWK_AJA_METHOD and TWK_AJA_RING_BUFFER_SIZE the value of the environment variable determines the argument. In the other cases the presence of the environment determines the value (i.e. if TWK_AJA_VERBOSE is not set there will not be verbose output).

2.4.1 Method

 Normally, the best possible method given the hardware and OS will be used. However, you can override this behavior using the method argument with one of these values:
Method
Description
dvp
Use NVIDIA DVP when available (default on Windows)
sdvp
Use NVIDIA DVP without overlapping DMA (useful for profiling only)
ipbo
Use immediate copy OpenGL PBOs for read back
ppbo
Use shared pointer OpenGL PBOs for read back (mac only)
basic
Use simplest possible GL read back scheme (not recommended)
p2p
Use SDI-Link (AMD firepro only)

2.4.2 Ring Buffer Size

There is a minimum and maximum ring buffer size for a given hardware setup. The lowest possible value is 2, but in practice 3 or 4 is usually required. The maximum value is 4 to 6 depending on the format being used. For example 10-bit DCI 2K stereo requires extra memory limiting the ring buffer size to a maximum of 4. The ring buffer size should be set to the lowest possible value in order to reduce latency.

When the size is set too small, playback will be slow and will stutter.

HDMI Output

RV will hook up HDMI output on devices that have HDMI to mimic the SDI settings. In most cases you should be able to hook the output up to an HDMI capable device and get the same output that SDI is providing.

On the Io4K Plus, Io4K and Kona4 the HDMI output in UHD and DCI 4K will depend on the transport mode selected (quadrant vs two-sample-interleave) - see section 2.2. For devices which cannot do 4K HDMI the HDMI will have a downconverted image where available.

In stereo modes HDMI is currently set up to show the first eye.

AJA Device Firmware

2.6.1 Kona 5 available 4K/8K Firmwares

The Kona5 comes with 2 possible firmwares. Make sure to select the firmware that matches your needs otherwise your required video format won’t be listed in the RV -> Preferences -> Video preferences.

KONA 5 (4K)

Supported = 4K/UHD over 3G/12G. Color Space Conversion. Keyer

Unsupported = 8K/UHD2 video

 KONA 5 (8K)

Supported = 8K/UHD2 video

Unsupported = 4K/UHD over 3G/12G. Color Space Conversion. Keyer


2.6.2
Enabling 4K on the Kona 3G

The standard Kona 3G firmware is not able to output 4K formats. In order to enable 4K “Quad” firmware must be loaded onto the Kona card. This converts the card into either four inputs or four outputs but no mixed inputs and outputs (like the standard firmware can do).

RV only ever uses the Kona 3G for output. When the Quad firmware is detected, RV will enable 4K output in the Video preferences for the Kona device. The usual HD and DCI 2K formats are still available with the Quad firmware installed.

The Kona4 and Io4K support 4K with their standard firmware.

Rendering and Hardware Configuration

Throughput from main memory to the GPU, back to main memory, and finally to the AJA hardware requires fine tuning of RV's rendering options. There are a number of requirements that need to be met in order to obtain best results:

Most importantly, when using a Kona 3G/Kona 4 card in a PCIe2 or PCIe3 slot, make sure that the GPU and the Kona card reside in slots which have different controllers. For example in an HP z800 or z820 workstation the GPU is frequently used in slot #2. By putting the Kona card in slot #4 which is not serviced by the same controller maximum bandwidth between the two cards can be achieved. AJA's website has a page describing recommend configurations for various hardware:

2.7.1 NVIDIA Fermi and Kepler Quadros (Windows and Linux)

Supported Quadros with a properly installed Kona 3G on a fast machine (z800) is currently the only option for DCI and UHD 4K output.

NVIDIA fermi and kepler quadro GPUs allow the use of GPUDirect (called DVP in video applications) to transfer data between the GPU and an external video card like the Kona on Windows and Linux. RV can use DVP to parallelize IO between the two cards and main memory. This can result in a huge performance win if set up properly.

However, in order to fully utilize the bandwidth to and from the GPU multithreaded upload, prefetch, and PBOs must be enabled in RV's render preferences when the GPU has dual copy engines. Fermi 4000 and 6000 Quadros and Kepler 5000 and 6000 Quadros all have dual copy engines. The Kepler 4000 has only a single copy engine so using multithreaded upload is not a good idea on that card when using DVP.

In addition vertical sync (v-sync) must be enabled in the NVIDIA driver and disabled in RV on Linux.

2.7.2 AMD FirePro on Windows

RV can use SDI-Link to speed up communication between AMD FirePro GPUs and the Kona 3G. Special “GMA” firmware is required for the Kona 3G to use SDI-Link.

2.7.3 Geforce and Low end Quadro NVIDIA cards (Windows and Linux)

Geforce and lower end Quadro cards without dual copy engines are not supported for AJA SDI output on Windows and Linux. However, these may work using non-DVP methods (ipbo method). GPUs with one copy engine (k4000) are preferable to those with none.

With these GPUs try multithreaded upload, PBOs, and prefetch on in the Render preferences. If the results are not good try turning off multithreaded uploads.

In some cases you may get a GPU to work by increasing the size of the ring buffer. The maximum size for HD formats is 6.

2.7.4 NVIDIA Kepler GPUs on Apple Computers

On Apple computers PBOs with prefetch are also recommended, but multithreaded upload may or may not be helpful. Alternatively, using Apple Client Storage (also in the Render tab of the preferences) instead of PBOs may be more beneficial with some GPUs.

RV will use a specialized asynchronous read back scheme on Apple computers (corresponding to the “ppbo” method).

Thunderbolt AJA devices are supported along with Kona 3G in older Mac Pro desktop machines.

2.7.5 AMD GPUs on Apple Computers

On Apple machines with AMD GPU always use Apple Client Storage (with prefetch) instead of PBOs.

RV will use a specialized asynchronous read back scheme on Apple computers (corresponding to the “ppbo” method).

Thunderbolt AJA devices are supported along with Kona 3G in older Mac Pro desktop machines.

2.7.6 Intel Graphics on Apple Computers

The Intel 4000 or earlier integrated graphics GPUs are unlikely to work with RV and are not supported.

Chapter 3 Blackmagic Design

RV can output to Blackmagic Design devices which use the DeckLink API. This includes the DeckLink capture and playback cards and thunderbolt UltraStudio devices. Although it may work with other devices like the UltraStudio for USB 3.0 they have not yet been tested.

RV can drive stereo SDI and HDMI when available.

As of RV 7.7.0, for the Blackmagic Design Decklink SDI hardware to be recognized by RV, the Decklink 11.5 drivers must be installed. Please refer to the Blackmagic Design documentation to install those drivers.

HD, DCI 2K, UHD, DCI 4K, UHD2, and 8K Output

Blackmagic's DCI 2K and 4K output is supported when available but only on machines capable of sustaining 4K throughput from the GPU to the SDI device.

Not all formats are available on all platforms and devices.

Blackmagic Specific Configuration Options

There are additional options which can be passed to the AJA device via environment variables or from the preferences Additional Options field.

The preferences field takes command line-like syntax:

Blackmagic Device Options:
  -h [ --help ]                      Usage
  -v [ --verbose ]                   Verbose
  -m [ --method ] arg                Method (dvp, ipbo, basic)
  -s [ --ring-buffer-size ] arg (=4) Ring Buffer Size
Alternatively, it is also possible to use environment variables instead which correspond to the command options above:
        TWK_BLACKMAGIC_HELP
        TWK_BLACKMAGIC_VERBOSE
        TWK_BLACKMAGIC_METHOD <method>
        TWK_BLACKMAGIC_RING_BUFFER_SIZE <size>
In the case of TWK_BLACKMAGIC_METHOD and TWK_BLACKMAGIC_RING_BUFFER_SIZE the value of the environment variable determines the argument. In the other cases the presence of the environment determines the value (i.e. if TWK_BKACKMAGIC_VERBOSE is not set then there won’t be a verbose output).

3.2.1 Method

Normally, the best possible method given the hardware and OS will be used. However, you can override this behavior using the method argument with one of these values:
Method
Description
ipbo
Use immediate copy OpenGL PBOs for read back
basic
Use simplest possible GL read back scheme (not recommended)


3.2.2
Ring Buffer Size

There is a minimum and maximum ring buffer size for a given hardware setup. The lowest possible value is 2, but in practice 3 or 4 is usually required. The maximum value is 4 to 6 depending on the format begin used. For example 10 bit DCI 2K stereo requires extra memory limiting the ring buffer size to a maximum of 4. The ring buffer size should be set to the lowest possible value in order to reduce latency.

When the size is set too small, play back will be slow and stutter.

HDMI Output

HDMI output is always enabled for devices which have HDMI.

Rendering and Hardware Configuration

Throughput from main memory to the GPU, back to main memory, and finally to the Blackmagic hardware requires fine tuning of RV's rendering options. There are a number of requirements that need to be met in order to obtain best results:

Most importantly, when using a DeckLink card in a PCIe2 or PCIe3 slot, make sure that the GPU and the DeckLink card reside in slots which have different controllers. For example in an HP z800 or z820 workstation the GPU is frequently used in slot #2. By putting the DeckLink card in slot #4 which is not serviced by the same controller maximum bandwidth between the two cards can be achieved.

3.4.1 NVIDIA Fermi and Kepler Quadros (Windows and Linux)

Supported Quadros with a properly installed DeckLink on a fast machine (z800) is currently the only option for DCI and UHD 4K output.

NVIDIA fermi and kepler quadro GPUs allow the use of GPUDirect (called DVP in video applications) to transfer data between the GPU and an external video device. RV can use DVP to parallelize IO between the two cards and main memory. This can result in a huge performance win if set up properly.

However, in order to fully utilize the bandwidth to and from the GPU multithreaded upload, prefetch, and PBOs must be enabled in RV's render preferences when the GPU has dual copy engines. Fermi 4000 and 6000 Quadros and Kepler 5000 and 6000 Quadros all have dual copy engines. The Kepler 4000 has only a single copy engine so using multithreaded upload is not a good idea on that card when using DVP.

In addition vertical sync (v-sync) must be enabled in the NVIDIA driver and disabled in RV on Linux.

3.4.2 AMD FirePro on Windows

SDI-Link is not yet supported with Blackmagic devices.

3.4.3 Geforce and Low end Quadro NVIDIA cards (Windows and Linux)

Geforce and lower end Quadro cards without dual copy engines are not supported for Blackmagic SDI output on Windows and Linux. However, these may work using non-DVP methods (ipbo method). GPUs with one copy engine (k4000) are preferable to those with none.

With these GPUs try multithreaded upload, PBOs, and prefetch on in the Render preferences. If the results are not good try turning off multithreaded uploads.

In some cases you may get a GPU to work by increasing the size of the ring buffer. The maximum size for HD formats is 6.

3.4.4 NVIDIA Kepler GPUs on Apple Computers

On Apple computers PBOs with prefetch are also recommended, but multithreaded upload may or may not be helpful. Alternately, using Apple Client Storage (also in the Render tab of the preferences) instead of PBOs may be more beneficial with some GPUs.

RV will use a specialized asynchronous read back scheme on Apple computers (corresponding to the “ppbo” method).

Thunderbolt UltraStudio devices are supported along with DeckLink cards for older Mac Pro desktop machines.

3.4.5 AMD GPUs on Apple Computers

On Apple machines with AMD GPU always use Apple Client Storage (with prefetch) instead of PBOs.

RV will use a specialized asynchronous read back scheme on Apple computers (corresponding to the “ppbo” method).

Thunderbolt UltraStudio devices are supported along with DeckLink cards for older Mac Pro desktop machines.

3.4.6 Intel Graphics on Apple Computers

The Intel 4000 or earlier integrated graphics GPUs are unlikely to work with RV and are not supported.

Chapter 4 Configuring the SDI Device

In the Video preferences tab choose the AJA/Blackmagic video module. Make sure you understand what data and video formats your output device will accept. In the case of stereo, make sure it can use dual SDI outputs — one for each eye.

The AJA hardware can output progressive, interlaced, and progressive segmented frame (PsF) video formats up to 4096x2160 resolution.

2_Users_labergb_work_2019_git_shotgun-rv_rv-cxx___ease-qt-python_html_temp_images_video_prefs.png
Figure 4.1:
Video Preferences Showing NVIDIA-SDI Configuration

3_Users_labergb_work_2019_git_shotgun-rv_rv-cxx98-release-qt-python_html_temp_images_latency.png
Figure 4.2:
Latency Configuration Panel With a Manually Added External Frame Latency
Output Module
This should be set to Blackmagic or AJA. If you don't see Blackmagic or AJA as an option you may be using the vanilla rv binary or you don't have SDI hardware drivers installed. Make sure you are using rv on a machine with the proper hardware.
Output Device
In the AJA/Blackmagic case the hardware product name will be displayed for each device detected.
Output Video Format
The video format determines the resolution, frame rate, and whether or not the video scanlines are sent interlaced or progressive. Most projectors will use either a progressive or progressive segmented frame (PsF) format.
Output Data Format
The data format indicates how the the pixels are to be presented to the device. This can include the numerical precision as well as color space (e.g. RGB or YCbCr). The current version of RV can output stereo via dual SDI outputs by choosing the Stereo Dual 4:2:2 data format. This is the only stereo SDI format which we currently support. You can still use the typical anaglyph, side-by-side, and similar formats found under the View → Stereo menu; these will work regardless of SDI data format.
Sync Method
Typically in the scenarios RV is used in this will be set to free running.
Sync Source
If the synchronization can come from an external device it can be configured here. This option will usually change depending on the sync method.
Use as Presentation Device
Check this box to make RV use the SDI device for presentation mode.
Output Audio to this Device
If checked, audio will be packaged as ancillary data in the SDI frames. Otherwise, audio will be output through the selected audio device on the computer. RV currently will output audio data on the first four audio channels. Only a left and right channel is supported and each is duplicated.
Incorporate Video Latency into Audio Offset
If checked, the total latency as indicated in the Configure Latency dialog box will be applied to the audio offset – but only if audio is being played by the controller instead of the output device (i.e. Output Audio to this Device is not checked). This is especially useful with SDI output because the device can have up to five frames of latency. The buffer size can vary over time so RVSDI can measure and automatically add latency to the computer's audio output to aid in keeping audio synced with video. When outputting the audio in the SDI packets directly (Output Audio to this Device) then this is not an issue. If you have additional SDI devices that also buffer frames connected to the output, you may have incorporate that into the total latency in the Configure Latency dialog box.

Issues with Stereo

The SDI device has a single additional stereo mode beyond stereo emulation that RV already has — stereo dual output. This data format outputs the left and right eyes each on its own SDI output.

When using SDI stereo you do not need to set any of the stereo modes under the View → Stereo menu; you should leave this off for most situations.

The View → Stereo → Hardware mode is not only unnecessary, but can be confusing in this situation. That mode is for use only by the controller window — it has no effect on the SDI output. This mode enables Quad-Buffered Stereo which is only available with Quadro cards connected to 120 Hz or faster DVI or DisplayPort monitors.

The other stereo emulation modes (anaglyph, etc) will function with SDI when not using the dual output format. When the dual stereo output format is selected, the stereo emulation modes will output images for each eye. So for example, anaglyph will output a red left eye image and cyan right eye image for each SDI output. Right and left eye only modes will duplicate the eye on each output.

Chapter 5 Command Line Invocation

NOTE: Prior to RV 7.5.0, you will need to run the rvsdi exectuable instead of rv! It's in the same directory as rv.

You can start RV like this to fully specify command line options.
To use the -presentDevice option you could do e.g. for the first SDI device:
rv -presentDevice AJA/Kona3GQuad

These can also be set using the prefs by selecting the "Use as Presentation Device" check box.

The -presentVideoFormat and -presentDataFormat will search for a video or data format that contains the passed in string. So for SDI you could do:

rv -presentVideoFormat "1080p 24Hz" -presentDataFormat "Dual"
which would find "1080p 24Hz SMPTE274" as the video format and "Dual 8 Bit YCrCb 4:2:2" as the data format. Some other examples:
rv -presentVideoFormat "720p" -presentDataFormat "4:4:4" 
would be 8 bit 720p 59.94Hz because that is the first 720p format. The first matching data format to 4:4:4 is 8 bit YCrCb 4:4:4. You can be more specific like:
rv -presentVideoFormat "720p 60Hz" -presentDataFormat "10 Bit YCrCb 4:4:4" 
RV will pick the first video or data format that contains the passed in string. These strings are device dependent. Ideally you specify the entire string as it appears in the preferences.
To force audio output:
rv -presentAudio 1
or
rv -presentAudio 0
for no audio.

Chapter 6 Useful RV Features for SDI Output

There are a number of features of RV which are particularly useful with SDI output. RV 4 has added some new ones which can be used to provide fine control over color.

Display Profiles

RV 4 adds the ability to save a display configuration and assign it whenever a certain video device is being used.

Hierarchical Preferences

View station setup

Remote Sync

See user manual

Shotgun Screening Room

Shotgun for dailies
Follow