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.27.1 | Download |
| ONNX | w8a16 | Universal | QAIRT 2.45, ONNX Runtime 1.27.1 | 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:
- Input resolution: 128x128
- Model checkpoint: ESRGAN_x4
- Model size (float): 63.9 MB
- Number of parameters: 16.7M
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| ESRGAN | ONNX | float | Snapdragon® X2 Elite | 34.318 ms | 8 - 8 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® X Elite | 65.423 ms | 38 - 38 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 51.062 ms | 0 - 745 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 118.049 ms | 4 - 741 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ IQ-8275 | 127.563 ms | 6 - 10 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 63.529 ms | 0 - 43 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® QCS8450 | 118.049 ms | 4 - 741 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ IQ-9075 | 105.926 ms | 6 - 9 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ IQ-X7181 | 65.423 ms | 38 - 38 MB | NPU |
| ESRGAN | ONNX | float | Qualcomm® Dragonwing™ Q-8750 | 38.69 ms | 7 - 358 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Elite Mobile | 38.69 ms | 7 - 358 MB | NPU |
| ESRGAN | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 26.12 ms | 5 - 361 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® X2 Elite | 21.996 ms | 4 - 4 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® X Elite | 43.397 ms | 26 - 26 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Gen 3 Mobile | 31.981 ms | 3 - 1115 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Gen 1 Mobile | 83.95 ms | 4 - 1198 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ QCS6490 | 323.654 ms | 4 - 7 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ IQ-8275 | 43.191 ms | 3 - 7 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 41.903 ms | 0 - 725 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® QCS8450 | 83.95 ms | 4 - 1198 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ IQ-9075 | 38.006 ms | 3 - 6 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ IQ-X7181 | 43.397 ms | 26 - 26 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ Q-6690 | 1128.366 ms | 0 - 696 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ Q-7790 | 89.102 ms | 3 - 784 MB | NPU |
| ESRGAN | ONNX | w8a16 | Qualcomm® Dragonwing™ Q-8750 | 26.489 ms | 3 - 907 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Elite Mobile | 26.489 ms | 3 - 907 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 8 Elite Gen 5 Mobile | 16.934 ms | 3 - 1072 MB | NPU |
| ESRGAN | ONNX | w8a16 | Snapdragon® 7 Gen 4 Mobile | 89.102 ms | 3 - 784 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® X2 Elite | 34.371 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® X Elite | 65.02 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 48.702 ms | 0 - 706 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 112.305 ms | 0 - 709 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-8275 | 127.079 ms | 0 - 6 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 62.121 ms | 0 - 4 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8775P | 105.485 ms | 1 - 351 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8650P | 105.485 ms | 1 - 351 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8255P | 105.485 ms | 1 - 351 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® QCS8450 | 112.305 ms | 0 - 709 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-9075 | 105.513 ms | 0 - 5 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-X7181 | 65.02 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® Dragonwing™ Q-8750 | 37.969 ms | 0 - 332 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA7255P | 452.028 ms | 1 - 352 MB | NPU |
| ESRGAN | QNN_DLC | float | Qualcomm® SA8295P | 111.356 ms | 0 - 358 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Elite Mobile | 37.969 ms | 0 - 332 MB | NPU |
| ESRGAN | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 25.47 ms | 0 - 334 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® X2 Elite | 21.845 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® X Elite | 43.152 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Gen 3 Mobile | 31.436 ms | 0 - 1030 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Gen 1 Mobile | 89.46 ms | 0 - 1114 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ QCS6490 | 320.624 ms | 0 - 3 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ IQ-8275 | 42.732 ms | 0 - 4 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 41.399 ms | 0 - 3 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8775P | 37.636 ms | 0 - 667 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8650P | 37.636 ms | 0 - 667 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8255P | 37.636 ms | 0 - 667 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® QCS8450 | 89.46 ms | 0 - 1114 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ IQ-9075 | 37.347 ms | 0 - 3 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ IQ-X7181 | 43.152 ms | 0 - 0 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ Q-6690 | 1125.268 ms | 0 - 621 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ Q-7790 | 87.728 ms | 2 - 710 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® Dragonwing™ Q-8750 | 28.284 ms | 0 - 837 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA7255P | 132.81 ms | 0 - 666 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Qualcomm® SA8295P | 68.189 ms | 0 - 713 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Elite Mobile | 28.284 ms | 0 - 837 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 8 Elite Gen 5 Mobile | 16.427 ms | 0 - 995 MB | NPU |
| ESRGAN | QNN_DLC | w8a16 | Snapdragon® 7 Gen 4 Mobile | 87.728 ms | 2 - 710 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 49.895 ms | 3 - 750 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 114.837 ms | 2 - 743 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ IQ-8275 | 126.871 ms | 3 - 46 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 63.901 ms | 3 - 6 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8775P | 105.574 ms | 0 - 391 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8650P | 105.574 ms | 0 - 391 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8255P | 105.574 ms | 0 - 391 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® QCS8450 | 114.837 ms | 2 - 743 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ IQ-9075 | 105.353 ms | 3 - 46 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® Dragonwing™ Q-8750 | 37.53 ms | 3 - 374 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA7255P | 452.042 ms | 4 - 396 MB | NPU |
| ESRGAN | TFLITE | float | Qualcomm® SA8295P | 111.359 ms | 3 - 392 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Elite Mobile | 37.53 ms | 3 - 374 MB | NPU |
| ESRGAN | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 25.558 ms | 3 - 375 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.
