{"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/look-back-and-forth-video-super-resolution","title":"Look Back and Forth: Video Super-Resolution with Explicit Temporal Difference Modeling","arxiv_id":"2204.07114","date":"2022-04-14","proceeding":"CVPR 2022 1","authors":["Takashi Isobe","Xu Jia","Xin Tao","Changlin Li","Ruihuang Li","Yongjie Shi","Jing Mu","Huchuan Lu","Yu-Wing Tai"],"abstract":"Temporal modeling is crucial for video super-resolution. Most of the video super-resolution methods adopt the optical flow or deformable convolution for explicitly motion compensation. However, such temporal modeling techniques increase the model complexity and might fail in case of occlusion or complex motion, resulting in serious distortion and artifacts. In this paper, we propose to explore the role of explicit temporal difference modeling in both LR and HR space. Instead of directly feeding consecutive frames into a VSR model, we propose to compute the temporal difference between frames and divide those pixels into two subsets according to the level of difference. They are separately processed with two branches of different receptive fields in order to better extract complementary information. To further enhance the super-resolution result, not only spatial residual features are extracted, but the difference between consecutive frames in high-frequency domain is also computed. It allows the model to exploit intermediate SR results in both future and past to refine the current SR output. The difference at different time steps could be cached such that information from further distance in time could be propagated to the current frame for refinement. Experiments on several video super-resolution benchmark datasets demonstrate the effectiveness of the proposed method and its favorable performance against state-of-the-art methods.","url_abs":"https://arxiv.org/abs/2204.07114v1","url_pdf":"https://arxiv.org/pdf/2204.07114v1.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":"look-back-and-forth-video-super-resolution","repo_url":"https://github.com/junpan19/ETDM","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"motion-compensation","task_name":"Motion Compensation"},{"task_slug":"optical-flow-estimation","task_name":"Optical Flow Estimation"},{"task_slug":"super-resolution","task_name":"Super-Resolution"},{"task_slug":"video-super-resolution","task_name":"Video Super-Resolution"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"deformable-convolution","method_name":"Deformable Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2204.07114","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2204.07114"}},"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/junpan19/ETDM","reach":null}],"summary":{"ran":5,"ran_draft_wrong":2,"unverified":3},"by_repo_kind":{"official":{"samples":10,"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":10,"samples":[{"code_sha256_prefix":"2af6fdb53cdcf9ae","entry":"PixelUnShuffle","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2af6fdb53cdcf9ae"}},{"code_sha256_prefix":"f136074979e5a6f6","entry":"ResidualBlock_noBN","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f136074979e5a6f6"}},{"code_sha256_prefix":"7ddb448f6e559c59","entry":"ResidualBlock_noBN_last","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7ddb448f6e559c59"}},{"code_sha256_prefix":"5a1ec8a42e3866e4","entry":"SpyNet","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/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":"5a1ec8a42e3866e4"}},{"code_sha256_prefix":"5cd863453558a09c","entry":"flow_warp","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/arch.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5cd863453558a09c"}},{"code_sha256_prefix":"1ff47c060dad2c5a","entry":"neuro_lv","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/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":"1ff47c060dad2c5a"}},{"code_sha256_prefix":"3739d13f4a583c2c","entry":"pixel_unshuffle","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3739d13f4a583c2c"}},{"code_sha256_prefix":"998af93184dbe16f","entry":"ETDM","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/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":"998af93184dbe16f"}},{"code_sha256_prefix":"f27572380c023c21","entry":"initialize_weights","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/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":"f27572380c023c21"}},{"code_sha256_prefix":"80feae59c52f5f28","entry":"neuro","repo":"junpan19/ETDM","repo_kind":"official","path":"ETDM-CVPR2022/arch.py","file_url":"https://github.com/junpan19/ETDM/blob/HEAD/ETDM-CVPR2022/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":"80feae59c52f5f28"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}