{"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/listening-to-the-noise-blind-denoising-with","title":"Listening to the Noise: Blind Denoising with Gibbs Diffusion","arxiv_id":"2402.19455","date":"2024-02-29","proceeding":null,"authors":["David Heurtel-Depeiges","Charles C. Margossian","Ruben Ohana","Bruno Régaldo-Saint Blancard"],"abstract":"In recent years, denoising problems have become intertwined with the development of deep generative models. In particular, diffusion models are trained like denoisers, and the distribution they model coincide with denoising priors in the Bayesian picture. However, denoising through diffusion-based posterior sampling requires the noise level and covariance to be known, preventing blind denoising. We overcome this limitation by introducing Gibbs Diffusion (GDiff), a general methodology addressing posterior sampling of both the signal and the noise parameters. Assuming arbitrary parametric Gaussian noise, we develop a Gibbs algorithm that alternates sampling steps from a conditional diffusion model trained to map the signal prior to the family of noise distributions, and a Monte Carlo sampler to infer the noise parameters. Our theoretical analysis highlights potential pitfalls, guides diagnostic usage, and quantifies errors in the Gibbs stationary distribution caused by the diffusion model. We showcase our method for 1) blind denoising of natural images involving colored noises with unknown amplitude and spectral index, and 2) a cosmology problem, namely the analysis of cosmic microwave background data, where Bayesian inference of \"noise\" parameters means constraining models of the evolution of the Universe.","url_abs":"https://arxiv.org/abs/2402.19455v2","url_pdf":"https://arxiv.org/pdf/2402.19455v2.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":"listening-to-the-noise-blind-denoising-with","repo_url":"https://github.com/rubenohana/gibbs-diffusion","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"bayesian-inference","task_name":"Bayesian Inference"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"diagnostic","task_name":"Diagnostic"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2402.19455","atlas_url":"https://app.syntology.ai/?focus=2402.19455","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2402.19455"}},"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/rubenohana/gibbs-diffusion","reach":{"status":"ok"}}],"summary":{"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":8,"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":8,"samples":[{"code_sha256_prefix":"3f86925e331be4ad","entry":"get_colored_noise_2d","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/data.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/data.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":"3f86925e331be4ad"}},{"code_sha256_prefix":"14e4a8826e19d3f7","entry":"get_noise_level_estimate","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/hmc_utils.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/hmc_utils.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":"14e4a8826e19d3f7"}},{"code_sha256_prefix":"637dfedd1b00cd8a","entry":"get_phi_bounds","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/hmc_utils.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/hmc_utils.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":"637dfedd1b00cd8a"}},{"code_sha256_prefix":"1748b5892e99f108","entry":"normalize_phi","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/hmc_utils.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/hmc_utils.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":"1748b5892e99f108"}},{"code_sha256_prefix":"fa13fea1e2a64181","entry":"power_spectrum","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/utils.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/utils.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":"fa13fea1e2a64181"}},{"code_sha256_prefix":"1efb4eeff09cff0c","entry":"psnr","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/utils.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/utils.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":"1efb4eeff09cff0c"}},{"code_sha256_prefix":"c1ba3a81897dde8b","entry":"load_model","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/model.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/model.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":"c1ba3a81897dde8b"}},{"code_sha256_prefix":"142b9f2e643b9629","entry":"ssim","repo":"rubenohana/gibbs-diffusion","repo_kind":"official","path":"gdiff/utils.py","file_url":"https://github.com/rubenohana/gibbs-diffusion/blob/HEAD/gdiff/utils.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":"142b9f2e643b9629"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}