# Video super-resolution
Source: [https://docs.qualcomm.com/doc/80-70018-50/topic/video-super-resolution.html](https://docs.qualcomm.com/doc/80-70018-50/topic/video-super-resolution.html)
The **gst-ai-superresolution** application allows you to generate high resolution
video frames from low-resolution input.
Note: This application isn't supported on QCS9075.
The figure shows the pipeline, which accepts a video stream from a file source as input,
processes it through the super resolution module using LiteRT, and displays the
output.
For information about the plugins used in the pipeline, see [Pipeline flow](https://docs.qualcomm.com/doc/80-70018-50/topic/video-super-resolution.html#video-super-resolution__section_kkk_xhz_lcc).
Figure : gst-ai-superresolution pipeline (Wayland display)

Figure : gst-ai-superresolution pipeline (file sink)

## Sample model files
Table : Sample model for gst-ai-superresolution
| Runtime | Model files |
| :--- | :--- |
| LiteRT | quicksrnetsmall_quantized.tflite |
## Prerequisites
- [Download model and label files](https://docs.qualcomm.com/doc/80-70018-50/topic/download-model-and-label-files.html).
- To access your host device, enable SSH. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh).
Note: If SSH is already enabled, you can skip this
step.
- Start two SSH shells–one to enable Weston and the other to run the use
cases:
ssh root@Copy to clipboard
- Connect the display to the device using the HDMI port. For instructions, see
[Set up HDMI display](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-18/samples.html).
- Enable the
display:
export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1Copy to clipboard
- Push the model files from the Linux host
computer:
scp root@:/etc/modelsCopy to clipboard
- Note that the [downloaded
script](https://docs.qualcomm.com/doc/80-70018-50/topic/download-model-and-label-files.html) downloads the sample video.mp4 video to
the /etc/media directory. If you are using a custom video,
then ensure that you push the video to /etc/media and
update the file path in the application config. JSON file.
Note: The expected resolution of the video file is 128 ×
128.
If you face issues while enabling camera or display, see [Camera troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-17/troubleshooting.html) and [Display troubleshooting](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-18/debug.html).
## Run the application
- Display the output with Wayland
display:
gst-ai-superresolution --input-file=/etc/media/video.mp4 --displayCopy to clipboard
- Save the output to a file using
filesink:
gst-ai-superresolution --input-file=/etc/media/video.mp4 --output-file=/etc/media/out.mp4Copy to clipboard
- Run a model with constants using LiteRT:
gst-ai-superresolution --input-file=/etc/media/video.mp4 --model=/etc/models/quicksrnetsmall_quantized.tflite --constants="srnet,q-offsets=<0.0>,q-scales=<1.0>;"Copy to clipboard
Note: The values for the `q-scales` and
`q-offsets` constants are `<1.0>` and
`<0.0>` respectively.
To display the available help options, run the following command in the SSH
shell:
gst-ai-superresolution -hCopy to clipboard
To stop the use case, use CTRL + C.
## Expected output
The output is displayed on an HDMI monitor.
Figure : Expected output for VSR

## Pipeline flow
The table lists the plugins used in the video super resolution
pipeline:| Plugin | Description |
| --- | --- |
| filesrc | Captures the video stream and uses tee to split the stream for
inferencing. |
| [qtimlvconverter](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvconverter.html) | Used by AI processing stream for preprocessing:
- Receives the video stream on its sink pad.
- Performs the following preprocessing on the stream data.
This preprocessing is done when the model expects
floating-point values as input.
- Color conversion
- Scaling (up or down)
- Normalization
- Converts the preprocessed video stream to a tensor stream on
its source pad.
The tensor stream is used for inferencing in the later
stages of the pipeline. |
| [qtimltflite](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimltflite.html) | Runs on LiteRT and uses the
quicksrnetsmall\_quantizedmodel.
- The inference runtime receives the tensor stream on its sink
pad.
- The runtime runs the inference.
- Produces a tensor stream with the inference results on its
source pad.
|
| [qtimlvsuperresolution](https://docs.qualcomm.com/doc/80-70018-50/topic/qtimlvsuperresolution.html) | Handles inference results from any super resolution mode.
- Loads SRNet module.
- Produces results as video frames.
- Sends them to the sink pad of qtivcomposer.
For the INT8 model, add the following constants:
|
| [qtivcomposer](https://docs.qualcomm.com/doc/80-70018-50/topic/qtivcomposer.html) |
- Composes frames with contents from its sink pads.
- Pushes the GStreamer buffers containing these composed
frames to its source pad.
|
| [Waylandsink](https://docs.qualcomm.com/doc/80-70018-50/topic/waylandsink.html) |
- Waylandsink submits the video stream received on its sink
pad to Weston.
- Weston renders the video stream on a local display.
|
**Parent Topic:** [Run AI/ML sample applications](https://docs.qualcomm.com/doc/80-70018-50/topic/ai-ml-sample-applications.html)
**Related Resources**
- [Video super resolution and display with LiteRT](https://docs.qualcomm.com/doc/80-70018-50/topic/video-super-resolution-and-display-with-litert.html)
Last Published: Jan 30, 2026
[Previous Topic
Monodepth from video](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/mono-depth-from-video.md) [Next Topic
Multistream inference](https://docs.qualcomm.com/bundle/publicresource/80-70018-50/topics/multistream-inference.md)