{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/designing-a-practical-degradation-model-for","title":"Designing a Practical Degradation Model for Deep Blind Image Super-Resolution","arxiv_id":"2103.14006","date":"2021-03-25","proceeding":"ICCV 2021 10","authors":["Kai Zhang","Jingyun Liang","Luc van Gool","Radu Timofte"],"abstract":"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.","url_abs":"https://arxiv.org/abs/2103.14006v2","url_pdf":"https://arxiv.org/pdf/2103.14006v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"designing-a-practical-degradation-model-for","repo_url":"https://github.com/cszn/BSRGAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"designing-a-practical-degradation-model-for","repo_url":"https://github.com/kadirnar/bsrgan-pip","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"designing-a-practical-degradation-model-for","repo_url":"https://github.com/pilot7747/sldl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"super-resolution","task_name":"Super-Resolution"},{"task_slug":"video-super-resolution","task_name":"Video Super-Resolution"}],"methods":[],"datasets_introduced":[{"slug":"realsrset","name":"RealSRSet","full_name":""}],"methods_introduced":[],"results":[{"leaderboard":"/sota/video-super-resolution-on-msu-video-upscalers","task":"Video Super-Resolution","dataset":"MSU Video Upscalers: Quality Enhancement","model":"BSRGAN","rank_in_archive_order":1,"of":48,"metrics":{"LPIPS":"0.177","PSNR":"29.27","SSIM":"0.836"},"uses_additional_data":false},{"leaderboard":"/sota/video-super-resolution-on-msu-video-upscalers","task":"Video Super-Resolution","dataset":"MSU Video Upscalers: Quality Enhancement","model":"BSRNET","rank_in_archive_order":24,"of":48,"metrics":{"LPIPS":"0.301","PSNR":"30.19","SSIM":"0.859"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.14006","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.14006"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pilot7747/sldl","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kadirnar/bsrgan-pip","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cszn/BSRGAN","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"official":{"samples":3,"ran":1,"repositories":1},"listed":{"samples":9,"ran":6,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"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"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"b04722a19845dc90","entry":"analytic_kernel","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_blindsr.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_blindsr.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b04722a19845dc90"}},{"code_sha256_prefix":"83daf8f77e32f15b","entry":"anisotropic_Gaussian","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_blindsr.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_blindsr.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"83daf8f77e32f15b"}},{"code_sha256_prefix":"f9d4c247328f3337","entry":"get_image_paths","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_image.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_image.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f9d4c247328f3337"}},{"code_sha256_prefix":"226f6afcd57ff476","entry":"is_image_file","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_image.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_image.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"226f6afcd57ff476"}},{"code_sha256_prefix":"c04a23de0531da4a","entry":"make_layer","repo":"cszn/BSRGAN","repo_kind":"official","path":"models/network_rrdbnet.py","file_url":"https://github.com/cszn/BSRGAN/blob/HEAD/models/network_rrdbnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c04a23de0531da4a"}},{"code_sha256_prefix":"234d6e4ddfb2bd2b","entry":"modcrop_np","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_blindsr.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_blindsr.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"234d6e4ddfb2bd2b"}},{"code_sha256_prefix":"8afaf26fe2391d00","entry":"test","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_model.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_model.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8afaf26fe2391d00"}},{"code_sha256_prefix":"08caa2c6cc22235a","entry":"attempt_download_from_hub","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/main_download_pretrained_models.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/main_download_pretrained_models.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"08caa2c6cc22235a"}},{"code_sha256_prefix":"a81b59f721cab8ed","entry":"find_last_checkpoint","repo":"cszn/BSRGAN","repo_kind":"official","path":"utils/utils_model.py","file_url":"https://github.com/cszn/BSRGAN/blob/HEAD/utils/utils_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a81b59f721cab8ed"}},{"code_sha256_prefix":"135b3dc835ffe6ad","entry":"get_confirm_token","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_googledownload.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_googledownload.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"135b3dc835ffe6ad"}},{"code_sha256_prefix":"3984b3ec31e90ef0","entry":"patches_from_image","repo":"kadirnar/bsrgan-pip","repo_kind":"listed","path":"bsrgan/utils/utils_image.py","file_url":"https://github.com/kadirnar/bsrgan-pip/blob/HEAD/bsrgan/utils/utils_image.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3984b3ec31e90ef0"}},{"code_sha256_prefix":"8e2cdf074541b1a3","entry":"sizeof_fmt","repo":"cszn/BSRGAN","repo_kind":"official","path":"utils/utils_googledownload.py","file_url":"https://github.com/cszn/BSRGAN/blob/HEAD/utils/utils_googledownload.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e2cdf074541b1a3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}