Bemjo / OBS-RTX-SuperResolution

An OBS plugin to enable nVidia RTX Video Super Resolution, Upscaling, and Artifact Reduction as a filter.
GNU General Public License v2.0
52 stars 2 forks source link

OBS RTX Super Resolution

An Open Broadcaster Software (OBS) plugin to enable nVidia RTX Video Super Resolution features as an OBS filter.

https://blogs.nvidia.com/blog/2023/02/28/rtx-video-super-resolution/

Features:

nVidia Artifact Reduction Filter pre-pass: https://docs.nvidia.com/deeplearning/maxine/vfx-sdk-programming-guide/index.html#artifact-red-filter
nVidia Super Resolution Filter: https://docs.nvidia.com/deeplearning/maxine/vfx-sdk-programming-guide/index.html#super-res-filter
nVidia Upscaling Filter: https://docs.nvidia.com/deeplearning/maxine/vfx-sdk-programming-guide/index.html#upscale-filter

Examples:

See the Examples Gallery

Prequisites:

nVidia Video Effects SDK

Manual Installation:

Usage

  1. Add a filter to a source.
    Add Source Filter

  2. Add NVIDIA Super Resolution.
    Add SuperResolution Filter

  3. Select Upscaling Type.
    Upscaling Type

  4. Choose a scale that is valid for your source resolution.

    • NOTE: Super Resolution has limits on the accepted resolutions of your source size, it cannot accept anything lower than 160x90, with the maximum limit defined by the scaling multiplier. Aspect ratios other than 16:9 are supported.
    • Upscaling does not have these limits, any multiplier will work with any size input, limited only by your hardware.
    • These are the only options available, as this is a limit of the nVidia VFX SDK. 4/3x is not supported. See Table 1.
      Scale Multiplier
  5. Optional. Apply Artifact Reduction pre-pass and select AR Mode.

    • NOTE: Artifact Reduction has more limited resolution ranged available to it - your sources cannot be smaller than 160x90 or larger than 1920x1080 if you wish to use Artifact Reduction. Other aspect ratios besides 16:9 are allowed.
      Artifact Reduction
  6. Click Verify Source Button.

    • If you get a white message, your source is being upscaled. You can also verify this visually in OBS if your source resizes in the scene.
      Valid Source
    • If you get other messages, your source is NOT being upscaled. You will need to select a different scaling option, or apply a Scale/Aspect Ratio filter BEFORE this NVIDIA SuperResolution filter to resize your source before this filter has a chance to process it.
      Invalid Source

From the nVidia video fx sdk itself, here are some general recommendations

    If a video without encoding artifacts needs a fast resolution increase, use Upscale.
    If a video has no encoding artifacts, to increase the resolution, use SuperRes with mode 1 (strong) for greater enhancement.
    If a video has fewer encoding artifacts, to remove artifacts, use ArtifactReduction only with mode 0.
    If a video has more encoding artifacts, to remove artifacts, use ArtifactReduction only with mode 1.
    To increase the resolution of a video with encoding artifacts:
        For light artifacts, use SuperRes with mode 0 (weak).
        Otherwise, use ArtifactReduction followed by SuperRes with mode 1.

Build System Configuration

See the OBS Plugin Template for more information about the build system.

To create a build configuration, cmake needs to be installed on the system. The plugin template supports CMake presets using the CMakePresets.json file and ships with default presets:

While linux build configurations are supplied, currently only windows builds are supported. Linux support will come at a later date TBD.

Presets can be either specified on the command line (cmake --preset <PRESET>) or via the associated select field in the CMake Windows GUI. Only presets appropriate for the current build host are available for selection.

Additional build system options are available to developers: