ESRGAN: Optimized for Qualcomm Devices
ESRGAN is a machine learning model that upscales an image with minimal loss in quality.
This is based on the implementation of ESRGAN found here. This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the Qualcomm® AI Hub Models library to export with custom configurations. More details on model performance across various devices, can be found here.
Qualcomm AI Hub Models uses Qualcomm AI Hub Workbench to compile, profile, and evaluate this model. Sign up to run these models on a hosted Qualcomm® device.
Getting Started
There are two ways to deploy this model on your device:
Option 1: Download Pre-Exported Models
Below are pre-exported model assets ready for deployment.
| Runtime | Precision | Chipset | SDK Versions | Download |
|---|---|---|---|---|
| ONNX | float | Universal | QAIRT 2.45, ONNX Runtime 1.25.0 | Download |
| ONNX | w8a16 | Universal | QAIRT 2.45, ONNX Runtime 1.25.0 | Download |
| QNN_DLC | float | Universal | QAIRT 2.45 | Download |
| QNN_DLC | w8a16 | Universal | QAIRT 2.45 | Download |
| TFLITE | float | Universal | QAIRT 2.45 | Download |
For more device-specific assets and performance metrics, visit ESRGAN on Qualcomm® AI Hub.
Option 2: Export with Custom Configurations
Use the Qualcomm® AI Hub Models Python library to compile and export the model with your own:
- Custom weights (e.g., fine-tuned checkpoints)
- Custom input shapes
- Target device and runtime configurations
This option is ideal if you need to customize the model beyond the default configuration provided here.
See our repository for ESRGAN on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.super_resolution
Model Stats:
- Model checkpoint: ESRGAN_x4
- Input resolution: 128x128
- Number of parameters: 16.7M
- Model size (float): 63.9 MB
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| ESRGAN | ONNX | float | Snapdragon® X2 Elite | 34.373 ms | 8 - 8 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® X Elite | 65.409 ms | 38 - 38 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 49.614 ms | 0 - 745 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 148.068 ms | 1 - 735 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 67.114 ms | 0 - 43 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® QCS8450 | 148.068 ms | 1 - 735 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 26.907 ms | 5 - 357 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Elite Mobile | 38.622 ms | 8 - 357 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ Q-8750 | 38.622 ms | 8 - 357 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ IQ-X7181 | 65.409 ms | 38 - 38 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ IQ-9075 | 107.039 ms | 7 - 52 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® X2 Elite | 22.012 ms | 4 - 4 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® X Elite | 43.476 ms | 26 - 26 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Gen 3 Mobile | 32.056 ms | 3 - 1130 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Gen 1 Mobile | 84.013 ms | 4 - 1214 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ QCS6490 | 323.426 ms | 3 - 6 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 42.546 ms | 0 - 32 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® QCS8450 | 84.013 ms | 4 - 1214 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 7 Gen 4 Mobile | 89.842 ms | 3 - 781 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Elite Gen 5 Mobile | 16.936 ms | 3 - 1090 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ Q-6690 | 1077.961 ms | 0 - 725 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ IQ-9075 | 45.393 ms | 3 - 48 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Elite Mobile | 26.47 ms | 3 - 923 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ Q-7790 | 89.842 ms | 3 - 781 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ Q-8750 | 26.47 ms | 3 - 923 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ IQ-X7181 | 43.476 ms | 26 - 26 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® X2 Elite | 34.365 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® X Elite | 64.979 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 49.483 ms | 0 - 706 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 130.701 ms | 0 - 708 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® QCS8275 | 452.056 ms | 1 - 353 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 65.392 ms | 0 - 2 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8775P | 105.496 ms | 1 - 352 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8650P | 105.496 ms | 1 - 352 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8255P | 105.496 ms | 1 - 352 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® QCS8450 | 130.701 ms | 0 - 708 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 26.21 ms | 0 - 335 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA7255P | 452.056 ms | 1 - 353 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Elite Mobile | 37.79 ms | 0 - 335 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8295P | 111.355 ms | 0 - 359 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ Q-8750 | 37.79 ms | 0 - 335 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-X7181 | 64.979 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-9075 | 106.612 ms | 0 - 5 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® X2 Elite | 21.863 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® X Elite | 43.234 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Gen 3 Mobile | 31.539 ms | 0 - 1037 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Gen 1 Mobile | 81.224 ms | 1 - 1115 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ QCS6490 | 320.157 ms | 2 - 5 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® QCS8275 | 132.843 ms | 1 - 672 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 42.106 ms | 0 - 610 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8775P | 37.667 ms | 0 - 672 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8650P | 37.667 ms | 0 - 672 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8255P | 37.667 ms | 0 - 672 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® QCS8450 | 81.224 ms | 1 - 1115 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 7 Gen 4 Mobile | 88.736 ms | 0 - 697 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Elite Gen 5 Mobile | 16.471 ms | 0 - 1003 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ Q-6690 | 1156.873 ms | 0 - 635 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ IQ-9075 | 38.041 ms | 2 - 5 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA7255P | 132.843 ms | 1 - 672 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Elite Mobile | 28.069 ms | 0 - 843 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8295P | 65.063 ms | 0 - 717 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ Q-7790 | 88.736 ms | 0 - 697 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ Q-8750 | 28.069 ms | 0 - 843 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ IQ-X7181 | 43.234 ms | 0 - 0 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 51.37 ms | 3 - 747 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 128.931 ms | 3 - 746 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® QCS8275 | 451.996 ms | 4 - 396 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 65.104 ms | 3 - 433 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8775P | 105.572 ms | 3 - 396 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8650P | 105.572 ms | 3 - 396 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8255P | 105.572 ms | 3 - 396 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® QCS8450 | 128.931 ms | 3 - 746 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 26.204 ms | 1 - 364 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA7255P | 451.996 ms | 4 - 396 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Elite Mobile | 38.455 ms | 14 - 377 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8295P | 111.369 ms | 3 - 392 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ Q-8750 | 38.455 ms | 14 - 377 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ IQ-9075 | 108.259 ms | 3 - 46 MB | NPU |
License
- The license for the original implementation of ESRGAN can be found here.
References
Community
- Join our AI Hub Slack community to collaborate, post questions and learn more about on-device AI.
- For questions or feedback please reach out to us.
