From patchwork Fri Jul 7 14:05:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 34952 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1e:b0:12b:9ae3:586d with SMTP id c30csp7317843pzh; Fri, 7 Jul 2023 07:06:06 -0700 (PDT) X-Google-Smtp-Source: APBJJlFbZL4mJnjfp56OpcuAhsxu6BMmkbCthilFwvtR9lLEx/ypESOZIIe6BQsAlxmL53WwjsbI X-Received: by 2002:aa7:d503:0:b0:51d:a488:3b3d with SMTP id y3-20020aa7d503000000b0051da4883b3dmr3865732edq.35.1688738766647; Fri, 07 Jul 2023 07:06:06 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l25-20020aa7c3d9000000b0051e33b22db7si2055522edr.497.2023.07.07.07.06.05; Fri, 07 Jul 2023 07:06:06 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=IMlPzDZL; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E66CC68C71F; Fri, 7 Jul 2023 17:06:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01olkn2103.outbound.protection.outlook.com [40.92.107.103]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9BF3668C71F for ; Fri, 7 Jul 2023 17:05:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hXiE5HSonWKDF2zfYNlq3P5Z470WzoM3R5C7QQofo0r22f0cuSd4Ef5ifIskiYsyqD1w6yRjoKErKo7qJg17rKgvRWAZTHTDPLLGJCS337AACdUGwutswKhs5OWWNiUpodwXxDP5bB2nMSdkJ62HoRhXEZ1vjLXfX1uLfpUcwL3Q2e66J20Yj+PI9VU5KQZK0R+ACnKdvLJdbO3mbNANkWfd05sjfEORqsiJbMgZ4N6A0rsBVERMDii3k84uKcYAwlucW6u2I3OCq4/Hkkod0XNwc7ZIUnbJSBfzI+DGWGS8GuIg+CYo3CJi+Cir3J7xpGca3VM8WiXpE2xuUrYJpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XgMdl05Eh5asZVRyRw+3/hAIOabW4pa6wrizpCJot7Y=; b=TWVQqJPN3uyudi7GHiGyTPrfkJRRLsvsbUwghvBf59hRPfaEksNJRCEOhiRGJPUWIBA85Y4FBjD0l3jN5hsDqXYDNLpUZSe0eAYQGaAb7XNaqu9YQBQ1k+AE8Ly7kWND2ZQPk3Kxqd7t9jMF6rcxiYBvwsWvn+n6q1Z2k2rTgmczghB9xCjPoKa3gbZOsFUz52pNUWMDByUHn86hCGxwe5Dz2SAgifQt6ETHtcuMsO8p+o+yasHwY68ecagCdSzAvZhgSxIK5NFn/KnbmWmai4P9kOI10xaghVlk4aHXgv/E0kLHWTceaDz4nb81ATmqOviDpM0w5aBU4HHpgJJG/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XgMdl05Eh5asZVRyRw+3/hAIOabW4pa6wrizpCJot7Y=; b=IMlPzDZLcGitTY5GOu9RwmBSIUJyvB6ud/PD+lKXeh0JsFJLsDM/WLoPZWj1obdHAqQeqvmhZSmjbyfJrEbtn3TbTf4c3OpeSgrRYxVDxuZGnC3G2hUKAsZK+RYZ1gMxhUztvysOwlDVDFtx3syEbjxBnwysggsEqR/k0lDsLAyLdkc+tVO9Z72e4G4RIcru60GSXZrosIx7bSfHDNqHYo0nEDie35/xFfS2dF23ocZPzsv+nRHEwC1A+fwjeO9gcSzMuEcr2Q8x9vWdEMZ7yRkQ0yzNVQJqh0ORvcNIc4s2AYN/puzUKmRIFkJORxRvTmP0yrhXetJWSBhOHt5tfQ== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by KL1PR0601MB5445.apcprd06.prod.outlook.com (2603:1096:820:c0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.25; Fri, 7 Jul 2023 14:05:50 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::7d80:1294:fd54:a7f]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::7d80:1294:fd54:a7f%7]) with mapi id 15.20.6565.016; Fri, 7 Jul 2023 14:05:50 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Fri, 7 Jul 2023 22:05:26 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 X-TMN: [3JuyVsn3fUsu+q+h6XzwQQRmz3GXLAZx] X-ClientProxiedBy: TYCP286CA0251.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:456::20) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20230707140540.10279-1-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|KL1PR0601MB5445:EE_ X-MS-Office365-Filtering-Correlation-Id: ea75607c-98e7-4dd5-605a-08db7ef344bb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LRBTv9JVwirRYGIjh+AxrLI7su4kMYLnjfT2huZUj86v5d+/+luhmb8uM0gcbmA4D1TP/T3NnDN5nwSOf4Qj26tXRbd4E1IoAPG139epPoN0b6a979r/srHvTusBcKYjQ2izoZvA0etZcJF4jB9oiBxvTOmVkBA4hv3geY0rGwL/4hjSBP+dzINjGuvooLZTzIe1o+Mgsa0poDDt4NvK42WR9me9T4q7bwqExrQtkDTmtIUt3gqn0kDwanPcCc3inaanEzaw/UFLCSXodYy1dTZAdHASVUXNo4g2ua0LiS3hYtZv4NDVgTu5gVo92TpLlDtsM4ilotlU2IhuHuujA9cEKbI2b4womdoZdmpZ1UDv/5umE2c3j0iXppSPDHiQaYvBZ1P68625la0FiNeEvubg1qSck89ORTcmammgR5WW2pjxnwRaPldju3wD7Xa4AQhEXT57hEsdCL3rOjVzLur6B1tEHtuOHyD4qa1E6d/dcU2NqXmu5qg4ptbnqEbZC82UikBrl+6Rs79hAvl1mDqLjGe2KiGwMbgimdiRxWBmdqJ0SWLZizvnj9xPuHZaZSica//1uRflJYQ0nEfP5JuGqN3d3RCOgEw8I2jc6ZVdgUytdu+5ELDYBKDYXluk X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?jpj7iYkeN5Hr89UyNVpDCvC2grgR?= =?utf-8?q?IPBcVsIO/DFjxfJ0U2R0TPsDB94Rye4ytwCUIrJleeBdHH52XHsLjuE+Ig8UuoA2o?= =?utf-8?q?UIGBXUw3xGUzYKQIZRCA9eHVypG/x0KSUj4twJVHZxxYF1bJwLQ0yjMMYo2+g0PbJ?= =?utf-8?q?sz414TO+oKGbRsWrpnwakc/EYLtK6h2JfCBjXgiPZSAhWE5XyQy+AeWuaikd8sV1h?= =?utf-8?q?YTevuhShESptX8TQ6Shkf1RJ4pXHTaApCMtDNOoGjS5eTe/aKVA4HDs8XmMc0XBv/?= =?utf-8?q?IdWwQzi6VJU81gqQZv6D/JwQcyGWe1he3zsr7IdM9SylT4/owmolj9KFxsmaRwP0L?= =?utf-8?q?u4LUTmBg9nBywYzpmzLy9YFoaffUGadH/FyClBnZiebeeqhMGfjOUkJZrm/qbjGzM?= =?utf-8?q?21xqnNBwG4SpssS6VxTO3wJYLn6Zky+pNOfirxKHdtHUq3EwPKLOsOivqWO5+lDrg?= =?utf-8?q?ayNMLeZVNdRrfHEvH6PcW8j3ee9gHFvJ6rMmpVGOoefxzV/kLBL/f19yGFjTrtaSS?= =?utf-8?q?UWh0XnXcwgO3yh/uke9hTTnDetYnD/2T5Ctuy7GblSkfYm5Mu/mu6GyE2z+agAA6P?= =?utf-8?q?EwXGug2rI/u0gSK/RtSHVeCHyuFauANXwQ+k7FJrh4c07W746hmhtAAvTeSV9wyha?= =?utf-8?q?l0rdyJ+I1v3O+YhDv52gu/IivPwJmE5zIGAFKIEtzjZTslYS5tKwQOhORpE30bQ1N?= =?utf-8?q?sW3W46fhi/HewAE1XUotYiXGCeWetxUFRxeslY4LvMXsZXCzRUdRirVBwrPFGif7G?= =?utf-8?q?/D5NBNuj0Xr2ZOyRodxJhJjvsAs8nUnroWTqG26LqffJ9rCzF03Dwl91tnmP46GNX?= =?utf-8?q?35OhGNHids2ptCzT1/xCmKbPbstHp/MyX3njuyG0QLsnDXiR9KveRnVlsWJ4yGaB9?= =?utf-8?q?47MwEwxdMp7vCSM4XFBIXFnpCUKNw2gC7WZZlwP+AOLQqgxbE+9rVxSrFkF8iu+kA?= =?utf-8?q?dVx5Y+GNKyZyEDGtBI6tuDKwsyOEV82qazeXaOmLdXNNMz+g8Ujn6H2ebIE2aDRAd?= =?utf-8?q?btOvqJjeBTn0eQZ3GBAPnAV+reRqSUDR0CvFJhY1WfFvvgEv+ehY9ya6ZH0jouc8p?= =?utf-8?q?BgERYD2lSXLA6SeZn5A6vIiwpMn5wmJf1dUsvZXfLfIwCgFNduhZoFDDXEpKNZZpZ?= =?utf-8?q?tMMM2f0tNi0BBZK2JoQyN7uUCX0NkA/7PQBS3Z+tMrBq4aUYbcd7dYy7pRRWdYXy+?= =?utf-8?q?dFmuXLbmLogkxdUDP?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ea75607c-98e7-4dd5-605a-08db7ef344bb X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2023 14:05:50.1854 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB5445 Subject: [FFmpeg-devel] [PATCH v2 00/14] add vvc decoder X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Nuo Mi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: fL1R66Qd7DCm Major changes since v1: * 12 bits and range extension support added. Thanks to GSOC contributor frankplow. * Make parser and inter prediction blockless to improve performance on high core count CPU. Fixed following review comment since v1: * Rename vvc prefix for executor, thanks to Lynne and Rémi * Remove ff_vvc_executor_wakeup and ThreadInfo.idx, thanks to Rémi Nuo Mi (14): vvcdec: add thread executor vvcdec: add vvc decoder stub vvcdec: add sps, pps, sh parser vvcdec: add cabac decoder vvcdec: add reference management vvcdec: add motion vector decoder vvcdec: add inter prediction vvcdec: add inv transform 1d vvcdec: add intra prediction vvcdec: add LMCS, Deblocking, SAO, and ALF filters vvcdec: add dsp init and inv transform vvcdec: add CTU parser vvcdec: add CTU thread logical vvcdec: add full vvc decoder configure | 1 + libavcodec/Makefile | 1 + libavcodec/allcodecs.c | 1 + libavcodec/executor.c | 182 ++ libavcodec/executor.h | 67 + libavcodec/vvc/Makefile | 17 + libavcodec/vvc/vvc_cabac.c | 2483 +++++++++++++++++++ libavcodec/vvc/vvc_cabac.h | 126 + libavcodec/vvc/vvc_ctu.c | 2457 ++++++++++++++++++ libavcodec/vvc/vvc_ctu.h | 421 ++++ libavcodec/vvc/vvc_data.c | 3295 ++++++++++++++++++++++++ libavcodec/vvc/vvc_data.h | 69 + libavcodec/vvc/vvc_filter.c | 1330 ++++++++++ libavcodec/vvc/vvc_filter.h | 70 + libavcodec/vvc/vvc_filter_template.c | 1088 ++++++++ libavcodec/vvc/vvc_inter.c | 992 ++++++++ libavcodec/vvc/vvc_inter.h | 42 + libavcodec/vvc/vvc_inter_template.c | 1473 +++++++++++ libavcodec/vvc/vvc_intra.c | 771 ++++++ libavcodec/vvc/vvc_intra.h | 49 + libavcodec/vvc/vvc_intra_template.c | 1018 ++++++++ libavcodec/vvc/vvc_itx_1d.c | 713 ++++++ libavcodec/vvc/vvc_itx_1d.h | 52 + libavcodec/vvc/vvc_mvs.c | 1803 ++++++++++++++ libavcodec/vvc/vvc_mvs.h | 46 + libavcodec/vvc/vvc_ps.c | 3436 ++++++++++++++++++++++++++ libavcodec/vvc/vvc_ps.h | 828 +++++++ libavcodec/vvc/vvc_refs.c | 502 ++++ libavcodec/vvc/vvc_refs.h | 51 + libavcodec/vvc/vvc_thread.c | 804 ++++++ libavcodec/vvc/vvc_thread.h | 73 + libavcodec/vvc/vvcdec.c | 1204 +++++++++ libavcodec/vvc/vvcdec.h | 314 +++ libavcodec/vvc/vvcdsp.c | 323 +++ libavcodec/vvc/vvcdsp.h | 182 ++ libavcodec/vvc/vvcdsp_template.c | 119 + 36 files changed, 26403 insertions(+) create mode 100644 libavcodec/executor.c create mode 100644 libavcodec/executor.h create mode 100644 libavcodec/vvc/Makefile create mode 100644 libavcodec/vvc/vvc_cabac.c create mode 100644 libavcodec/vvc/vvc_cabac.h create mode 100644 libavcodec/vvc/vvc_ctu.c create mode 100644 libavcodec/vvc/vvc_ctu.h create mode 100644 libavcodec/vvc/vvc_data.c create mode 100644 libavcodec/vvc/vvc_data.h create mode 100644 libavcodec/vvc/vvc_filter.c create mode 100644 libavcodec/vvc/vvc_filter.h create mode 100644 libavcodec/vvc/vvc_filter_template.c create mode 100644 libavcodec/vvc/vvc_inter.c create mode 100644 libavcodec/vvc/vvc_inter.h create mode 100644 libavcodec/vvc/vvc_inter_template.c create mode 100644 libavcodec/vvc/vvc_intra.c create mode 100644 libavcodec/vvc/vvc_intra.h create mode 100644 libavcodec/vvc/vvc_intra_template.c create mode 100644 libavcodec/vvc/vvc_itx_1d.c create mode 100644 libavcodec/vvc/vvc_itx_1d.h create mode 100644 libavcodec/vvc/vvc_mvs.c create mode 100644 libavcodec/vvc/vvc_mvs.h create mode 100644 libavcodec/vvc/vvc_ps.c create mode 100644 libavcodec/vvc/vvc_ps.h create mode 100644 libavcodec/vvc/vvc_refs.c create mode 100644 libavcodec/vvc/vvc_refs.h create mode 100644 libavcodec/vvc/vvc_thread.c create mode 100644 libavcodec/vvc/vvc_thread.h create mode 100644 libavcodec/vvc/vvcdec.c create mode 100644 libavcodec/vvc/vvcdec.h create mode 100644 libavcodec/vvc/vvcdsp.c create mode 100644 libavcodec/vvc/vvcdsp.h create mode 100644 libavcodec/vvc/vvcdsp_template.c --- 2.25.1