{"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/towards-flexible-blind-jpeg-artifacts-removal","title":"Towards Flexible Blind JPEG Artifacts Removal","arxiv_id":"2109.14573","date":"2021-09-29","proceeding":"ICCV 2021 10","authors":["Jiaxi Jiang","Kai Zhang","Radu Timofte"],"abstract":"Training a single deep blind model to handle different quality factors for JPEG image artifacts removal has been attracting considerable attention due to its convenience for practical usage. However, existing deep blind methods usually directly reconstruct the image without predicting the quality factor, thus lacking the flexibility to control the output as the non-blind methods. To remedy this problem, in this paper, we propose a flexible blind convolutional neural network, namely FBCNN, that can predict the adjustable quality factor to control the trade-off between artifacts removal and details preservation. Specifically, FBCNN decouples the quality factor from the JPEG image via a decoupler module and then embeds the predicted quality factor into the subsequent reconstructor module through a quality factor attention block for flexible control. Besides, we find existing methods are prone to fail on non-aligned double JPEG images even with only a one-pixel shift, and we thus propose a double JPEG degradation model to augment the training data. Extensive experiments on single JPEG images, more general double JPEG images, and real-world JPEG images demonstrate that our proposed FBCNN achieves favorable performance against state-of-the-art methods in terms of both quantitative metrics and visual quality.","url_abs":"https://arxiv.org/abs/2109.14573v1","url_pdf":"https://arxiv.org/pdf/2109.14573v1.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":"towards-flexible-blind-jpeg-artifacts-removal","repo_url":"https://github.com/jiaxi-jiang/fbcnn","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"towards-flexible-blind-jpeg-artifacts-removal","repo_url":"https://github.com/olaviinha/NeuralImageSuperResolution","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"image-compression","task_name":"Image Compression"},{"task_slug":"image-compression-artifact-reduction","task_name":"Image Compression Artifact Reduction"},{"task_slug":"image-deblocking","task_name":"Image Deblocking"},{"task_slug":"image-denoising","task_name":"Image Denoising"},{"task_slug":"image-forensics","task_name":"Image Forensics"},{"task_slug":"image-restoration","task_name":"Image Restoration"},{"task_slug":"jpeg-artifact-correction","task_name":"JPEG Artifact Correction"},{"task_slug":"jpeg-artifact-removal","task_name":"JPEG Artifact Removal"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/jpeg-artifact-correction-on-bsds500-quality","task":"JPEG Artifact Correction","dataset":"BSDS500 (Quality 10 Color)","model":"FBCNN","rank_in_archive_order":1,"of":2,"metrics":{"PSNR":"27.85","PSNR-B":"27.52","SSIM":"0.799"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-bsds500-quality-3","task":"JPEG Artifact Correction","dataset":"BSDS500 (Quality 10 Grayscale)","model":"FBCNN","rank_in_archive_order":1,"of":2,"metrics":{"PSNR":"29.67","PSNR-B":"29.22","SSIM":"0.821"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-bsds500-quality-1","task":"JPEG Artifact Correction","dataset":"BSDS500 (Quality 20 Color)","model":"FBCNN","rank_in_archive_order":1,"of":2,"metrics":{"PSNR":"30.14","PSNR-B":"29.56","SSIM":"0.867"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-bsds500-quality-4","task":"JPEG Artifact Correction","dataset":"BSDS500 (Quality 20 Grayscale)","model":"FBCNN","rank_in_archive_order":1,"of":2,"metrics":{"PSNR":"32.00","PSNR-B":"31.19","SSIM":"0.885"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-bsds500-quality-2","task":"JPEG Artifact Correction","dataset":"BSDS500 (Quality 30 Color)","model":"FBCNN","rank_in_archive_order":1,"of":2,"metrics":{"PSNR":"31.45","PSNR-B":"30.72","SSIM":"0.897"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-bsds500-quality-5","task":"JPEG Artifact Correction","dataset":"BSDS500 (Quality 30 Grayscale)","model":"FBCNN","rank_in_archive_order":1,"of":2,"metrics":{"PSNR":"33.37","PSNR-B":"32.32","SSIM":"0.913"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-classic5-quality","task":"JPEG Artifact Correction","dataset":"Classic5 (Quality 10 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":7,"metrics":{"PSNR":"30.12","PSNR-B":"29.80","SSIM":"0.822"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-classic5-quality-1","task":"JPEG Artifact Correction","dataset":"Classic5 (Quality 20 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":6,"metrics":{"PSNR":"32.31","PSNR-B":"31.74","SSIM":"0.872"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-classic5-quality-2","task":"JPEG Artifact Correction","dataset":"Classic5 (Quality 30 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":6,"metrics":{"PSNR":"33.54","PSNR-B":"32.78","SSIM":"0.894"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-classic5-quality-3","task":"JPEG Artifact Correction","dataset":"Classic5 (Quality 40 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":5,"metrics":{"PSNR":"34.35","SSIM":"0.907"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-icb-quality-10","task":"JPEG Artifact Correction","dataset":"ICB (Quality 10 Color)","model":"FBCNN","rank_in_archive_order":1,"of":6,"metrics":{"PSNR":"32.18","PSNR-B":"32.15","SSIM":"0.815"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-icb-quality-20","task":"JPEG Artifact Correction","dataset":"ICB (Quality 20 Color)","model":"FBCNN","rank_in_archive_order":1,"of":6,"metrics":{"PSNR":"34.38","PSNR-B":"34.34","SSIM":"0.844"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-icb-quality-30","task":"JPEG Artifact Correction","dataset":"ICB (Quality 30 Color)","model":"FBCNN","rank_in_archive_order":1,"of":4,"metrics":{"PSNR":"35.41","PSNR-B":"35.35","SSIM":"0.857"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-10","task":"JPEG Artifact Correction","dataset":"LIVE1 (Quality 10 Color)","model":"FBCNN","rank_in_archive_order":2,"of":9,"metrics":{"PSNR":"27.77","PSNR-B":"27.51","SSIM":"0.803"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-20","task":"JPEG Artifact Correction","dataset":"LIVE1 (Quality 20 Color)","model":"FBCNN","rank_in_archive_order":2,"of":9,"metrics":{"PSNR":"30.11","PSNR-B":"29.70","SSIM":"0.868"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-20-1","task":"JPEG Artifact Correction","dataset":"LIVE1 (Quality 20 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":12,"metrics":{"PSNR":"32.13","PSNR-B":"31.57","SSIM":"0.889"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-30","task":"JPEG Artifact Correction","dataset":"LIVE1 (Quality 30 Color)","model":"FBCNN","rank_in_archive_order":2,"of":3,"metrics":{"PSNR":"31.43","PSNR-B":"30.92","SSIM":"0.897"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-30-1","task":"JPEG Artifact Correction","dataset":"LIVE1 (Quality 30 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":7,"metrics":{"PSNR":"33.54","PSNR-B":"32.83","SSIM":"0.916"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-40","task":"JPEG Artifact Correction","dataset":"LIVE1 (Quality 40 Grayscale)","model":"FBCNN","rank_in_archive_order":3,"of":5,"metrics":{"PSNR":"34.53","SSIM":"0.931"},"uses_additional_data":false},{"leaderboard":"/sota/jpeg-artifact-correction-on-live1-quality-10-1","task":"JPEG Artifact Correction","dataset":"Live1 (Quality 10 Grayscale)","model":"FBCNN","rank_in_archive_order":2,"of":13,"metrics":{"PSNR":"29.75","PSNR-B":"29.40","SSIM":"0.827"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2109.14573","atlas_url":"https://app.syntology.ai/?focus=2109.14573","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.14573"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/jiaxi-jiang/fbcnn","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/olaviinha/NeuralImageSuperResolution","reach":{"status":"ok"}}],"summary":{"ran":2,"ran_draft_wrong":7,"unverified":2},"by_repo_kind":{"official":{"samples":11,"ran":9,"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":"504364eda535d2ec","entry":"QFAttention","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","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":"504364eda535d2ec"}},{"code_sha256_prefix":"2cfea441b848a2ad","entry":"ResBlock","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","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":"2cfea441b848a2ad"}},{"code_sha256_prefix":"0bb3503f833a6f8e","entry":"conv","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0bb3503f833a6f8e"}},{"code_sha256_prefix":"bf45710301b68ac5","entry":"downsample_avgpool","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bf45710301b68ac5"}},{"code_sha256_prefix":"b6aa67b647a44a13","entry":"downsample_maxpool","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b6aa67b647a44a13"}},{"code_sha256_prefix":"229a83919d75f9b5","entry":"downsample_strideconv","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"229a83919d75f9b5"}},{"code_sha256_prefix":"f71abbb00f56cc8a","entry":"upsample_convtranspose","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f71abbb00f56cc8a"}},{"code_sha256_prefix":"60cf0c34b7b63cb0","entry":"upsample_pixelshuffle","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"60cf0c34b7b63cb0"}},{"code_sha256_prefix":"6281229c06037ca0","entry":"upsample_upconv","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"6281229c06037ca0"}},{"code_sha256_prefix":"9e6c6a1d38878851","entry":"FBCNN","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.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":"9e6c6a1d38878851"}},{"code_sha256_prefix":"17f1c0ea54159076","entry":"sequential","repo":"jiaxi-jiang/fbcnn","repo_kind":"official","path":"models/network_fbcnn.py","file_url":"https://github.com/jiaxi-jiang/fbcnn/blob/HEAD/models/network_fbcnn.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":"17f1c0ea54159076"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}