{"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/self-asymmetric-invertible-network-for","title":"Self-Asymmetric Invertible Network for Compression-Aware Image Rescaling","arxiv_id":"2303.02353","date":"2023-03-04","proceeding":null,"authors":["Jinhai Yang","Mengxi Guo","Shijie Zhao","Junlin Li","Li Zhang"],"abstract":"High-resolution (HR) images are usually downscaled to low-resolution (LR) ones for better display and afterward upscaled back to the original size to recover details. Recent work in image rescaling formulates downscaling and upscaling as a unified task and learns a bijective mapping between HR and LR via invertible networks. However, in real-world applications (e.g., social media), most images are compressed for transmission. Lossy compression will lead to irreversible information loss on LR images, hence damaging the inverse upscaling procedure and degrading the reconstruction accuracy. In this paper, we propose the Self-Asymmetric Invertible Network (SAIN) for compression-aware image rescaling. To tackle the distribution shift, we first develop an end-to-end asymmetric framework with two separate bijective mappings for high-quality and compressed LR images, respectively. Then, based on empirical analysis of this framework, we model the distribution of the lost information (including downscaling and compression) using isotropic Gaussian mixtures and propose the Enhanced Invertible Block to derive high-quality/compressed LR images in one forward pass. Besides, we design a set of losses to regularize the learned LR images and enhance the invertibility. Extensive experiments demonstrate the consistent improvements of SAIN across various image rescaling datasets in terms of both quantitative and qualitative evaluation under standard image compression formats (i.e., JPEG and WebP).","url_abs":"https://arxiv.org/abs/2303.02353v2","url_pdf":"https://arxiv.org/pdf/2303.02353v2.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":"self-asymmetric-invertible-network-for","repo_url":"https://github.com/yang-jin-hai/sain","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-compression","task_name":"Image Compression"},{"task_slug":"image-rescaling","task_name":"Image Rescaling"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-rescaling-on-div2k-val-q30-2x","task":"Image Rescaling","dataset":"DIV2K val-q30-2x","model":"SAIN","rank_in_archive_order":2,"of":3,"metrics":{"PSNR":"31.47","SSIM":"0.8747"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q30-4x","task":"Image Rescaling","dataset":"DIV2K val-q30-4x","model":"SAIN","rank_in_archive_order":2,"of":4,"metrics":{"PSNR":"27.90","SSIM":"0.7745"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q50-2x","task":"Image Rescaling","dataset":"DIV2K val-q50-2x","model":"SAIN","rank_in_archive_order":2,"of":3,"metrics":{"PSNR":"33.17","SSIM":"0.9082"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q50-4x","task":"Image Rescaling","dataset":"DIV2K val-q50-4x","model":"SAIN","rank_in_archive_order":2,"of":4,"metrics":{"PSNR":"29.05","SSIM":"0.8088"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q70-2x","task":"Image Rescaling","dataset":"DIV2K val-q70-2x","model":"SAIN","rank_in_archive_order":2,"of":3,"metrics":{"PSNR":"34.73","SSIM":"0.9296"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q70-4x","task":"Image Rescaling","dataset":"DIV2K val-q70-4x","model":"SAIN","rank_in_archive_order":2,"of":4,"metrics":{"PSNR":"29.83","SSIM":"0.8272"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q90-2x","task":"Image Rescaling","dataset":"DIV2K val-q90-2x","model":"SAIN","rank_in_archive_order":2,"of":3,"metrics":{"PSNR":"35.96","SSIM":"0.9419"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q90-4x","task":"Image Rescaling","dataset":"DIV2K val-q90-4x","model":"SAIN","rank_in_archive_order":2,"of":4,"metrics":{"PSNR":"30.31","SSIM":"0.8367"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2303.02353","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.02353"}},"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":"deterministic:regex_extraction","url":"https://github.com/yang-jin-hai/SAIN","reach":null}],"summary":{"ran":4,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":"c48aa122343168e6","entry":"EnhancedInvBlock","repo":"yang-jin-hai/SAIN","repo_kind":"official","path":"codes/models/modules/inv_arch.py","file_url":"https://github.com/yang-jin-hai/SAIN/blob/HEAD/codes/models/modules/inv_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c48aa122343168e6"}},{"code_sha256_prefix":"8bcb0eacf71fa11c","entry":"GaussianMixture","repo":"yang-jin-hai/SAIN","repo_kind":"official","path":"codes/models/modules/inv_arch.py","file_url":"https://github.com/yang-jin-hai/SAIN/blob/HEAD/codes/models/modules/inv_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8bcb0eacf71fa11c"}},{"code_sha256_prefix":"6638ca9310bdc7bb","entry":"HaarDownsampling","repo":"yang-jin-hai/SAIN","repo_kind":"official","path":"codes/models/modules/inv_arch.py","file_url":"https://github.com/yang-jin-hai/SAIN/blob/HEAD/codes/models/modules/inv_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6638ca9310bdc7bb"}},{"code_sha256_prefix":"edd575de9595285c","entry":"VanillaInvBlock","repo":"yang-jin-hai/SAIN","repo_kind":"official","path":"codes/models/modules/inv_arch.py","file_url":"https://github.com/yang-jin-hai/SAIN/blob/HEAD/codes/models/modules/inv_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"edd575de9595285c"}},{"code_sha256_prefix":"4b2376db15a9ca0c","entry":"SAINet","repo":"yang-jin-hai/SAIN","repo_kind":"official","path":"codes/models/modules/inv_arch.py","file_url":"https://github.com/yang-jin-hai/SAIN/blob/HEAD/codes/models/modules/inv_arch.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":"4b2376db15a9ca0c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}