{"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/cpga-coding-priors-guided-aggregation-network","title":"CPGA: Coding Priors-Guided Aggregation Network for Compressed Video Quality Enhancement","arxiv_id":"2403.10362","date":"2024-03-15","proceeding":"CVPR 2024 1","authors":["Qiang Zhu","Jinhua Hao","Yukang Ding","Yu Liu","Qiao Mo","Ming Sun","Chao Zhou","Shuyuan Zhu"],"abstract":"Recently, numerous approaches have achieved notable success in compressed video quality enhancement (VQE). However, these methods usually ignore the utilization of valuable coding priors inherently embedded in compressed videos, such as motion vectors and residual frames, which carry abundant temporal and spatial information. To remedy this problem, we propose the Coding Priors-Guided Aggregation (CPGA) network to utilize temporal and spatial information from coding priors. The CPGA mainly consists of an inter-frame temporal aggregation (ITA) module and a multi-scale non-local aggregation (MNA) module. Specifically, the ITA module aggregates temporal information from consecutive frames and coding priors, while the MNA module globally captures spatial information guided by residual frames. In addition, to facilitate research in VQE task, we newly construct the Video Coding Priors (VCP) dataset, comprising 300 videos with various coding priors extracted from corresponding bitstreams. It remedies the shortage of previous datasets on the lack of coding information. Experimental results demonstrate the superiority of our method compared to existing state-of-the-art methods. The code and dataset will be released at https://github.com/VQE-CPGA/CPGA.git .","url_abs":"https://arxiv.org/abs/2403.10362v2","url_pdf":"https://arxiv.org/pdf/2403.10362v2.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":"cpga-coding-priors-guided-aggregation-network","repo_url":"https://github.com/vqe-cpga/cpga","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.10362","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.10362"}},"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/VQE-CPGA/CPGA","reach":{"status":"ok"}}],"summary":{"ran":17,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":20,"ran":18,"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":20,"samples":[{"code_sha256_prefix":"67c4716f1ba53a65","entry":"L1_regularization","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/deep_learning.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/deep_learning.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":"67c4716f1ba53a65"}},{"code_sha256_prefix":"a121859b3e73f10a","entry":"calculate_mse","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/metrics.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":"a121859b3e73f10a"}},{"code_sha256_prefix":"de8815c7134a7637","entry":"calculate_psnr","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/metrics.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":"de8815c7134a7637"}},{"code_sha256_prefix":"795e702374efc75e","entry":"create_dataloader","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/deep_learning.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/deep_learning.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":"795e702374efc75e"}},{"code_sha256_prefix":"02138db9739f7e5c","entry":"dict2str","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/file_io.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/file_io.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":"02138db9739f7e5c"}},{"code_sha256_prefix":"0560994daa568124","entry":"flow_to_image","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/flow_viz.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/flow_viz.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":"0560994daa568124"}},{"code_sha256_prefix":"ae9446901af6b9a8","entry":"flow_uv_to_colors","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/flow_viz.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/flow_viz.py","link_basis":"harvester_set","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":"ae9446901af6b9a8"}},{"code_sha256_prefix":"39bfca801ff4ff40","entry":"flow_warp","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"net_CPGA.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/net_CPGA.py","link_basis":"plan_row","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":"39bfca801ff4ff40"}},{"code_sha256_prefix":"07a290e75cb5cef3","entry":"img2float32","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/conversion.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/conversion.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":"07a290e75cb5cef3"}},{"code_sha256_prefix":"421cfca9753c594e","entry":"import_yuv","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/file_io.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/file_io.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":"421cfca9753c594e"}},{"code_sha256_prefix":"dc9e8ec2d94d6059","entry":"ndarray2img","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/conversion.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/conversion.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":"dc9e8ec2d94d6059"}},{"code_sha256_prefix":"5aff7f28f8946442","entry":"optical_flow_warp","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/deep_learning.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/deep_learning.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":"5aff7f28f8946442"}},{"code_sha256_prefix":"04de40832d91cecb","entry":"readFlowKITTI","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/frame_utils.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/frame_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":"04de40832d91cecb"}},{"code_sha256_prefix":"7c3fbc1f552de802","entry":"readPFM","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/frame_utils.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/frame_utils.py","link_basis":"harvester_set","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":"7c3fbc1f552de802"}},{"code_sha256_prefix":"5529419eec474197","entry":"rgb2ycbcr","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/conversion.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/conversion.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":"5529419eec474197"}},{"code_sha256_prefix":"00d4f1d780d60c5a","entry":"rgb_import","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/YUV_RGB.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/YUV_RGB.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":"00d4f1d780d60c5a"}},{"code_sha256_prefix":"2b87e342bb14f755","entry":"yuv2rgb","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/YUV_RGB.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/YUV_RGB.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":"2b87e342bb14f755"}},{"code_sha256_prefix":"4eaa1738c15f3f7f","entry":"yuv_import","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/YUV_RGB.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/YUV_RGB.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":"4eaa1738c15f3f7f"}},{"code_sha256_prefix":"911df2ed7ec70759","entry":"calculate_ssim","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/metrics.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":"911df2ed7ec70759"}},{"code_sha256_prefix":"1662ea0b62b0229c","entry":"readFlow","repo":"VQE-CPGA/CPGA","repo_kind":"official","path":"utils/frame_utils.py","file_url":"https://github.com/VQE-CPGA/CPGA/blob/HEAD/utils/frame_utils.py","link_basis":"harvester_set","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":"1662ea0b62b0229c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}