{"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/classsr-a-general-framework-to-accelerate","title":"ClassSR: A General Framework to Accelerate Super-Resolution Networks by Data Characteristic","arxiv_id":"2103.04039","date":"2021-03-06","proceeding":"CVPR 2021 1","authors":["Xiangtao Kong","Hengyuan Zhao","Yu Qiao","Chao Dong"],"abstract":"We aim at accelerating super-resolution (SR) networks on large images (2K-8K). The large images are usually decomposed into small sub-images in practical usages. Based on this processing, we found that different image regions have different restoration difficulties and can be processed by networks with different capacities. Intuitively, smooth areas are easier to super-solve than complex textures. To utilize this property, we can adopt appropriate SR networks to process different sub-images after the decomposition. On this basis, we propose a new solution pipeline -- ClassSR that combines classification and SR in a unified framework. In particular, it first uses a Class-Module to classify the sub-images into different classes according to restoration difficulties, then applies an SR-Module to perform SR for different classes. The Class-Module is a conventional classification network, while the SR-Module is a network container that consists of the to-be-accelerated SR network and its simplified versions. We further introduce a new classification method with two losses -- Class-Loss and Average-Loss to produce the classification results. After joint training, a majority of sub-images will pass through smaller networks, thus the computational cost can be significantly reduced. Experiments show that our ClassSR can help most existing methods (e.g., FSRCNN, CARN, SRResNet, RCAN) save up to 50% FLOPs on DIV8K datasets. This general framework can also be applied in other low-level vision tasks.","url_abs":"https://arxiv.org/abs/2103.04039v1","url_pdf":"https://arxiv.org/pdf/2103.04039v1.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":"classsr-a-general-framework-to-accelerate","repo_url":"https://github.com/Xiangtaokong/ClassSR","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"classsr-a-general-framework-to-accelerate","repo_url":"https://github.com/Scallions/ClassSR_paddle","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"unanswered"}},{"paper_slug":"classsr-a-general-framework-to-accelerate","repo_url":"https://github.com/icey-zhang/ClassSR_paddle","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"2k","task_name":"2k"},{"task_slug":null,"task_name":"8k"},{"task_slug":"classification-1","task_name":"Classification"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[{"method_slug":"classsr","method_name":"ClassSR"}],"datasets_introduced":[],"methods_introduced":[{"slug":"classsr","name":"ClassSR","full_name":"ClassSR"}],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.04039","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.04039"}},"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/Scallions/ClassSR_paddle","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/icey-zhang/ClassSR_paddle","reach":{"status":"unanswered"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/Xiangtaokong/ClassSR","reach":null}],"summary":{"ran":7,"unverified":2},"by_repo_kind":{"official":{"samples":9,"ran":7,"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":9,"samples":[{"code_sha256_prefix":"1d015756864ede42","entry":"BasicBlock","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1d015756864ede42"}},{"code_sha256_prefix":"da7195515f58c81b","entry":"Block","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"da7195515f58c81b"}},{"code_sha256_prefix":"d9699df8ce968e10","entry":"Classifier","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d9699df8ce968e10"}},{"code_sha256_prefix":"9125e696cbb525ac","entry":"EResidualBlock","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9125e696cbb525ac"}},{"code_sha256_prefix":"fae1914cfd5a9cfc","entry":"MeanShift","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fae1914cfd5a9cfc"}},{"code_sha256_prefix":"f02bd3c8d9853c45","entry":"UpsampleBlock","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f02bd3c8d9853c45"}},{"code_sha256_prefix":"5c2c794b3162404e","entry":"_UpsampleBlock","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5c2c794b3162404e"}},{"code_sha256_prefix":"5d2dfa698c063043","entry":"CARN_M","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5d2dfa698c063043"}},{"code_sha256_prefix":"3d569ca0fa85d5b9","entry":"ClassSR","repo":"Xiangtaokong/ClassSR","repo_kind":"official","path":"codes/models/archs/classSR_carn_arch.py","file_url":"https://github.com/Xiangtaokong/ClassSR/blob/HEAD/codes/models/archs/classSR_carn_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3d569ca0fa85d5b9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}