Does SVT-AV1 Support Internal Resolution Scaling?
This article explores whether the libsvtav1 encoder natively supports internal resolution scaling during the encoding process. We will examine SVT-AV1’s built-in scaling features, including Reference Picture Resampling (RPR) and Super-Resolution, and explain how these settings function to optimize video compression.
Yes, libsvtav1 natively supports internal resolution scaling during the encoding process. Unlike traditional encoders that require external filters (like FFmpeg’s scale filter) to resize video before encoding, SVT-AV1 can dynamically scale frames internally. This is achieved through two primary features defined in the AV1 specification: Frame Resizing (Reference Picture Resampling) and Super-Resolution.
1. Frame Resizing (Resize Mode)
SVT-AV1 allows the encoder to change the frame resolution on the fly. This is highly useful for adaptive streaming, where the encoder can downscale the resolution during complex scenes to maintain a target bitrate without introducing severe blocky artifacts, and then scale it back up when the scene complexity decreases.
This is controlled via the following parameters: *
--resize-mode: Defines how the resize is
guided. * 0: None (No resizing). * 1: Fixed
(Resizes all frames to a fixed scale). * 2: Random (Resizes
frames randomly, mostly used for testing). * 3: Dynamic
(Automatically resizes frames based on buffer levels and bitrate
demands). * --resize-denom: The
denominator used to determine the scaling factor (e.g., a denominator of
16 represents the original size, while larger values scale the image
down). * --resize-kf-denom: The
denominator specifically used for keyframes.
2. Super-Resolution (Super-Res Mode)
Super-Resolution is a hardware-friendly feature where the encoder processes the video at a lower internal resolution but signals the decoder to upscale the reconstructed frame back to the original source resolution before outputting it. This allows for significant bitrate savings at low bitrates while preserving structural layout.
This is configured using: *
--super-res-mode: Sets the
super-resolution integration mode. * 0: None (Disabled). *
1: Fixed (A fixed scaling factor is applied to all frames).
* 2: Random (Randomly scales frames for testing). *
3: Dynamic (Automatically scales frames based on the video
content and bitrate constraints). *
--super-res-denom: The denominator
determining the downscaling ratio for normal frames (ranging from 9 to
16, where 16/16 is no scaling, and 9/16 is the maximum downscaling). *
--super-res-kf-denom: The denominator
determining the downscaling ratio for keyframes.
Benefits of Internal Scaling in SVT-AV1
Using libsvtav1’s native scaling features offers several advantages over pre-encoding scaling: * Saves Bandwidth: By reducing the internal resolution of highly complex frames, the encoder prevents bitrate spikes. * Saves CPU Cycles: When using Super-Resolution, the encoder performs the heavy encoding math on a smaller pixel canvas, which can speed up encoding times. * Seamless Playback: Because the scaling happens within the AV1 bitstream, the output file retains its original container dimensions. The playback device handles the upscaling natively, preventing video players from stuttering due to container-level resolution changes.