Papers › Designing a Practical Degradation Model for Deep Blind Image Super-Resolution

Designing a Practical Degradation Model for Deep Blind Image Super-Resolution

25 Mar 2021ICCV 2021 10arXiv:2103.14006archive 2025-07-28

Kai Zhang, Jingyun Liang, Luc van Gool, Radu Timofte

It is widely acknowledged that single image super-resolution (SISR) methods would not perform well if the assumed degradation model deviates from those in real images. Although several degradation models take additional factors into consideration, such as blur, they are still not effective enough to cover the diverse degradations of real images. To address this issue, this paper proposes to design a more complex but practical degradation model that consists of randomly shuffled blur, downsampling and noise degradations. Specifically, the blur is approximated by two convolutions with isotropic and anisotropic Gaussian kernels; the downsampling is randomly chosen from nearest, bilinear and bicubic interpolations; the noise is synthesized by adding Gaussian noise with different noise levels, adopting JPEG compression with different quality factors, and generating processed camera sensor noise via reverse-forward camera image signal processing (ISP) pipeline model and RAW image noise model. To verify the effectiveness of the new degradation model, we have trained a deep blind ESRGAN super-resolver and then applied it to super-resolve both synthetic and real images with diverse degradations. The experimental results demonstrate that the new degradation model can help to significantly improve the practicability of deep super-resolvers, thus providing a powerful alternative solution for real SISR applications.

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2103.14006")

Code

Syntology Ran 7 of 12 code samples harvested from 2 repositories linked to this paper; 5 have no recorded run. Of those that ran: 1 ran · our draft was wrong; 6 ran with no contract checked.

By repository: official repository: 3 samples from 1 repository, 1 ran; community (archive-listed): 9 samples from 1 repository, 6 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

cszn/BSRGAN officialmentioned in papermentioned on GitHubpytorchApache-2.0 report
kadirnar/bsrgan-pip pytorchApache-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

12 samples harvested; 7 ran; 0 honoured the contract we drafted; 5 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · our draft was wrong
6ran
5unverified

Licence: 0 of the 12 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

make_layer cszn/BSRGAN/models/network_rrdbnet.py official repository ran · our draft was wrong Apache-2.0 (permissive) · c04a23de0531da4a · report
find_last_checkpoint cszn/BSRGAN/utils/utils_model.py official repository unverified Apache-2.0 (permissive) · a81b59f721cab8ed · report
sizeof_fmt cszn/BSRGAN/utils/utils_googledownload.py official repository unverified Apache-2.0 (permissive) · 8e2cdf074541b1a3 · report
analytic_kernel kadirnar/bsrgan-pip/bsrgan/utils/utils_blindsr.py community (archive-listed) ran fingerprinted Apache-2.0 (permissive) · b04722a19845dc90 · report
anisotropic_Gaussian kadirnar/bsrgan-pip/bsrgan/utils/utils_blindsr.py community (archive-listed) ran Apache-2.0 (permissive) · 83daf8f77e32f15b · report
get_image_paths kadirnar/bsrgan-pip/bsrgan/utils/utils_image.py community (archive-listed) ran Apache-2.0 (permissive) · f9d4c247328f3337 · report
is_image_file kadirnar/bsrgan-pip/bsrgan/utils/utils_image.py community (archive-listed) ran Apache-2.0 (permissive) · 226f6afcd57ff476 · report
modcrop_np kadirnar/bsrgan-pip/bsrgan/utils/utils_blindsr.py community (archive-listed) ran fingerprinted Apache-2.0 (permissive) · 234d6e4ddfb2bd2b · report
test kadirnar/bsrgan-pip/bsrgan/utils/utils_model.py community (archive-listed) ran Apache-2.0 (permissive) · 8afaf26fe2391d00 · report
attempt_download_from_hub kadirnar/bsrgan-pip/bsrgan/main_download_pretrained_models.py community (archive-listed) unverified Apache-2.0 (permissive) · 08caa2c6cc22235a · report
get_confirm_token kadirnar/bsrgan-pip/bsrgan/utils/utils_googledownload.py community (archive-listed) unverified Apache-2.0 (permissive) · 135b3dc835ffe6ad · report
patches_from_image kadirnar/bsrgan-pip/bsrgan/utils/utils_image.py community (archive-listed) unverified Apache-2.0 (permissive) · 3984b3ec31e90ef0 · report

Tasks

Image Super-ResolutionSuper-ResolutionVideo Super-Resolution

Datasets

Introduced by this paper, per the archive.

RealSRSet

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Video Super-Resolution MSU Video Upscalers: Quality Enhancement BSRGAN LPIPS 0.177 #1 of 48 Archive leaderboard report
Video Super-Resolution MSU Video Upscalers: Quality Enhancement BSRGAN PSNR 29.27 #1 of 48 Archive leaderboard report
Video Super-Resolution MSU Video Upscalers: Quality Enhancement BSRGAN SSIM 0.836 #1 of 48 Archive leaderboard report
Video Super-Resolution MSU Video Upscalers: Quality Enhancement BSRNET LPIPS 0.301 #24 of 48 Archive leaderboard report
Video Super-Resolution MSU Video Upscalers: Quality Enhancement BSRNET PSNR 30.19 #24 of 48 Archive leaderboard report
Video Super-Resolution MSU Video Upscalers: Quality Enhancement BSRNET SSIM 0.859 #24 of 48 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections