{"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/learning-truncated-causal-history-model-for","title":"Learning Truncated Causal History Model for Video Restoration","arxiv_id":"2410.03936","date":"2024-10-04","proceeding":null,"authors":["Amirhosein Ghasemabadi","Muhammad Kamran Janjua","Mohammad Salameh","Di Niu"],"abstract":"One key challenge to video restoration is to model the transition dynamics of video frames governed by motion. In this work, we propose TURTLE to learn the truncated causal history model for efficient and high-performing video restoration. Unlike traditional methods that process a range of contextual frames in parallel, TURTLE enhances efficiency by storing and summarizing a truncated history of the input frame latent representation into an evolving historical state. This is achieved through a sophisticated similarity-based retrieval mechanism that implicitly accounts for inter-frame motion and alignment. The causal design in TURTLE enables recurrence in inference through state-memorized historical features while allowing parallel training by sampling truncated video clips. We report new state-of-the-art results on a multitude of video restoration benchmark tasks, including video desnowing, nighttime video deraining, video raindrops and rain streak removal, video super-resolution, real-world and synthetic video deblurring, and blind video denoising while reducing the computational cost compared to existing best contextual methods on all these tasks.","url_abs":"https://arxiv.org/abs/2410.03936v2","url_pdf":"https://arxiv.org/pdf/2410.03936v2.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":"learning-truncated-causal-history-model-for","repo_url":"https://github.com/Ascend-Research/Turtle","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"deblurring","task_name":"Deblurring"},{"task_slug":"denoising","task_name":"Denoising"},{"task_slug":"rain-removal","task_name":"Rain Removal"},{"task_slug":"raindrop-removal","task_name":"Raindrop Removal"},{"task_slug":"snow-removal","task_name":"Snow Removal"},{"task_slug":"super-resolution","task_name":"Super-Resolution"},{"task_slug":"video-deblurring","task_name":"Video Deblurring"},{"task_slug":"video-denoising","task_name":"Video Denoising"},{"task_slug":"video-restoration","task_name":"Video Restoration"},{"task_slug":"video-super-resolution","task_name":"Video Super-Resolution"},{"task_slug":"video-deraining","task_name":"Video deraining"},{"task_slug":"model","task_name":"model"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/deblurring-on-beam-splitter-deblurring-bsd","task":"Deblurring","dataset":"Beam-Splitter Deblurring (BSD)","model":"Turtle","rank_in_archive_order":1,"of":5,"metrics":{"PSNR":"33.58"},"uses_additional_data":false},{"leaderboard":"/sota/deblurring-on-gopro","task":"Deblurring","dataset":"GoPro","model":"Turtle","rank_in_archive_order":8,"of":56,"metrics":{"PSNR":"34.5","SSIM":"0.972"},"uses_additional_data":false},{"leaderboard":"/sota/rain-removal-on-nighrain","task":"Rain Removal","dataset":"Nightrain","model":"Turtle","rank_in_archive_order":1,"of":4,"metrics":{"PSNR":"29.26"},"uses_additional_data":false},{"leaderboard":"/sota/video-denoising-on-set8-sigma50","task":"Video Denoising","dataset":"Set8 sigma50","model":"Turtle","rank_in_archive_order":4,"of":9,"metrics":{"PSNR":"30.29"},"uses_additional_data":false},{"leaderboard":"/sota/video-deraining-on-vrds","task":"Video deraining","dataset":"VRDS","model":"Turtle","rank_in_archive_order":1,"of":8,"metrics":{"PSNR":"32.01","SSIM":"0.9590"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.03936","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.03936"}},"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/Ascend-Research/Turtle","reach":null}],"summary":{"ran":6,"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"official":{"samples":12,"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":0,"samples":[{"code_sha256_prefix":"b07cc66e024e5802","entry":"ChannelAttention","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b07cc66e024e5802"}},{"code_sha256_prefix":"e9335a8b80d8981e","entry":"FeedForward","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e9335a8b80d8981e"}},{"code_sha256_prefix":"2d6705f2ef6c4ea6","entry":"FrameHistoryRouter","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2d6705f2ef6c4ea6"}},{"code_sha256_prefix":"050d409ebfd41fdc","entry":"GatedFeedForward","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"050d409ebfd41fdc"}},{"code_sha256_prefix":"c2ca119c6231cc68","entry":"ReducedAttn","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2ca119c6231cc68"}},{"code_sha256_prefix":"ddecee6c9e2c9a1b","entry":"StateAlignBlock","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ddecee6c9e2c9a1b"}},{"code_sha256_prefix":"b590a818f9cac7b0","entry":"clipped_softmax","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b590a818f9cac7b0"}},{"code_sha256_prefix":"5cdfb9da933b6657","entry":"CausalHistoryModel","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5cdfb9da933b6657"}},{"code_sha256_prefix":"e5f9638afc133d36","entry":"LatentCacheBlock","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e5f9638afc133d36"}},{"code_sha256_prefix":"0e0dc3c7bedb50e1","entry":"LevelBlock","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0e0dc3c7bedb50e1"}},{"code_sha256_prefix":"fd6c108754209f62","entry":"Turtle","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fd6c108754209f62"}},{"code_sha256_prefix":"d3be814b170e0f4b","entry":"TurtleAttnBlock","repo":"Ascend-Research/Turtle","repo_kind":"official","path":"basicsr/models/archs/turtle_arch.py","file_url":"https://github.com/Ascend-Research/Turtle/blob/HEAD/basicsr/models/archs/turtle_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d3be814b170e0f4b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}