From patchwork Mon Apr 15 17:35:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wu Jianhua X-Patchwork-Id: 48079 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:670b:b0:1a9:af23:56c1 with SMTP id wh11csp1995369pzb; Mon, 15 Apr 2024 10:36:32 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWg1319Nsx8bvxcUGtsBCa8Q+6HfZgzpWCVkCmgcDQyTQy720AjMLZo9oy8M83a5X7rAWTxipiVUE9dxZDmuTKe7y79bg9Vgl3KXg== X-Google-Smtp-Source: AGHT+IHZHdb0f0wKLTQsuqA7x0v7g1nkYX0k1vs4VWr16PsfisGIeockDinERLxSehx6LDIXQGim X-Received: by 2002:a2e:7d15:0:b0:2d4:49d1:38e with SMTP id y21-20020a2e7d15000000b002d449d1038emr8320666ljc.28.1713202591732; Mon, 15 Apr 2024 10:36:31 -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 nc35-20020a1709071c2300b00a51d7627d64si4810947ejc.101.2024.04.15.10.36.31; Mon, 15 Apr 2024 10:36:31 -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=Z63hWJpj; 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 02B7268CF0F; Mon, 15 Apr 2024 20:36:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01olkn2018.outbound.protection.outlook.com [40.92.99.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35EBC68CD53 for ; Mon, 15 Apr 2024 20:36:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BBkFyPt+7OvabLegROth+rrJH/j4rxpYKWZ/bM/VK7DJt/LFnGwgRnHV4xcGRqJcRJMnGVNQT8GFb8WTjUiq13jm0GGa8kvvzi/n9nqLefC91E/bUNUkN4XYcWjSLovDIiEVW0p2jSNEAZ68PnrrCsnYzIBieomgzZIatWvkf2sFgXIlSKu7DRpvp2aj5ayTZGwr6E1OmCDCyqNdruDegLmYlCyombrMlgvYMGeFPJ9OG+wibl0H9osCK/SC46iDSibzBUEIhn9MJQ2MIf2q/en8GzuGBd3XeX8HlWOBB6IZjESPECsavEfhLvytTnXkNDUzjRDV++gtXi/FAepJSQ== 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=Qp2PRp0EC1YfAHy7PO1CXrAXscHKwalqUBtUIvuw6Bg=; b=gQpRPCPrrBwEuCx85yT5tEDUa5/W/S3GKrbcGLEOlUX5fRmNao93iNiKnJW8xCacnCx7bD/AkCa94WlxNGYq+bK69jOnAABncFVE2ok/z/2nWiREro6bVLDpYAlsUjonimVlRZCLOojf6Uadg41Q5IqikQsDx7YmC85sVx4UUCnSgq+eUwoPhSOJqpQCZEg6ll05vBk+UgKTH2PFz3+hl0Aus01cZxsdJK8ItXHHnTtN20y20QwL97sRSiEl9NlA5PE9CiTS+PcIaEBngW3zUeEXG8inQGx3tzyH+UnTVpaqW1zj45Snk0bejl3HlftkXdGEB0U8LmvFYgIInlEt9Q== 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=Qp2PRp0EC1YfAHy7PO1CXrAXscHKwalqUBtUIvuw6Bg=; b=Z63hWJpjpz2R55W70XRahntNA//3xeajavh5H092MHv1FUzviA2dL8HSR/S4EkSKogJxuq6A7knKHCT80ufQhyG9q8z2tfQuRm+whMflUISd7XIFV0nneYloONOsZdCC4sTohNm+A6vWDXK6gB/4lbui9L/3v1XVTphLLXWRPGNUk+srXu8gRdfkyzWomlzH5KoT7bwH+g70ReNPm/uzFy42LU4NtpIDlJQzIjgWx/vetYS99K9Qzk/79Ig5WPwJk/Wn3hKdOeWPLl2H9eVtB8nq/Jwo8gqjmdH8/PipF3s1qwpOonRfMtH92lHQYLIFjtWaneul8b9vA2KlKMqCoQ== Received: from OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:186::5) by TY3P286MB3030.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:319::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.50; Mon, 15 Apr 2024 17:36:11 +0000 Received: from OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM ([fe80::c2ed:24ae:fd4c:fee7]) by OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM ([fe80::c2ed:24ae:fd4c:fee7%5]) with mapi id 15.20.7452.049; Mon, 15 Apr 2024 17:36:11 +0000 From: toqsxw@outlook.com To: ffmpeg-devel@ffmpeg.org Date: Tue, 16 Apr 2024 01:35:49 +0800 Message-ID: X-Mailer: git-send-email 2.44.0.windows.1 In-Reply-To: <20240415173550.657-1-toqsxw@outlook.com> References: <20240415173550.657-1-toqsxw@outlook.com> X-TMN: [4vW1UQPuTdNeMtEOXcoesWbdcx5+5kBl] X-ClientProxiedBy: PU1PR06CA0014.apcprd06.prod.outlook.com (2603:1096:803:2a::26) To OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:186::5) X-Microsoft-Original-Message-ID: <20240415173550.657-2-toqsxw@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2173:EE_|TY3P286MB3030:EE_ X-MS-Office365-Filtering-Correlation-Id: d36ac7fb-d48c-458c-5870-08dc5d728a20 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qOFL5Bgx2r/Jc1ln4UZlkNy7ypjvou+d2dmyM6yCRTXj7qlbe1VGYb0OW3LE3af+RZmX2a3HbO9bEgYjKm+uMfTRlZRtpVaXWMYUazy36KRkZQNiMp6xAvm+SvYhm60LnLjHvPy3Nx+bpk2zyz6aN2NT+jBPgLb7nQcekhG548OFBkyW/Z31sZG4D3FGNZGYAFXSV0S+gUuPiV2AaLqA5NcOfYqji9J3d6bSaT4iVCt5F9s2aHQ66TcEK3rHPn4xXCHWF51qhMcsX2CA12O+RE0XhS3p4cwx7ZcoSeds4ZpL2SPJ4Usd5ZwlrRhfsYiTH57GzNsxU0e1p69W2T1QFS7ezBQjVw7Z+dTw9sXFK/r3OjrHdqRRgaapBkJ5g1NqvuVVXLqT4uNv1LZAvNPsESXY3zJ3BGrYcB+tCvxnL08OM0//EPU7nY3jHYbCqilVC97eGBPdRioFXsLI5ClzF2bQRQtTaIk2w8BnsC1PaEL6uq92u9OPTim9w5S8u+Xw1gFVR8gGOuHOEjGTR+QLEA8tsGkroKgAezzN3T4737qSd7pI/Ot0csTNFL+ixHUW21Oz2U4yfu/8Sx35GrbpFwvyjAw9KqiSEcQF5/BaW9cw/m32mEAfRm9+SRNBFfW/ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TDwCuKnjkvBUykSWNqy/9eDtUNV/ozKV2G4QYb+grhEqWM+IVt7NcZb0AihLvUvHs8DBM3inz0SPoZaCiKSgLvv174N1Cc/8EPQpyb8dOKRaWeDtbWKvqOJnTVAV4746fPazkULJrTK2gDDydxd3EhKPUteKkaTuPQCPVaTs69k/EwdK2Evvh4JN/BCj98dMNB8AwcR28ZPu9rFf9vtMO7A6aVIaBjy3T9DHO6zUlo1tLhKWgokVc91sJpAP9py7cnFFZtcYWEPN5CWPqnLTS3VvIjZana4V8OmaNmARicspTtjeDNyRhqCe/pjP44MFVJcb8b3D95QAW4ef34iwpd7jOrDgpUaNVjWMnAH0EpwpLcmHkD9iGlnEYXBTWDe1eXSuFiJYHTJx+tJ3u0htcgNNKnmS0RA82MyV8Nb9N67AEe5xaH4r4ceHWeIh8XeESdtZ2s/zsIfD4hX79DhdOdXrrePgb3sfssud0UF7i615/HVdVNcQIOAWbLZBXdw6z2lDStuQj9+7vkNZ86N6wFdhDROKmp0OanuGWgUb2P36k6gBd05ZpasraAPGcEHkq6mXgv7nRNxBfMJJZBXHNYa4l1mPOnhTf4LCo90f/fogEg1bZN8jPmAQ1U7z9K5HuDLCH4k5Is7s7bBKS9nJGPILhiOwPgUDh1PXt7tRphgmh6HRIvObwQ9bUC4MlXOKQqoXxFuBZnBlSFgQiYOEuHNpuLsFHQXXLCtK33owHB6VM/j20GI/LozF/qTxBKiej6bdQBCjzhF8BWzDWhYW8EaTuYi6ojGr+Ryst1Md3Vf47w1N2Y8gbvL56gmFZ04OjXqjZ0wSZTEwUkH0lqyR5kllM+M0OxtOpafKF5aF+tpSqPawUY0NmW6uxzX0jAI/cbHGs1njPGD3Qd0W3ktxiJ2znI5qYgNyrjMmd0JyQaAt4HO5/bNp4pCWro2Swe1PZYYiQQzG1iotDc39OEbFlEkjC04qWlpvXYD/dKjcRd1vfVn8osMr8r3N8Z8E+6xkS1At3Ank+Mgmcs2J7/eCoXcIbHSkoby2I+F5BKjKixA3MBlSc4IltAOJOy+onGznVUmc4FFovlJIHl3rqdK1d+Ii93gVOv4kwh77e4Qvg88h566a7JfiAi604RNSe+TLBjyqyig7w5chnBjAbn7AZ/qarSxXyMNh/y4DthOl3A184agXe0e5heREiD1ewFTnopWth8K0SLzJHlufsdB9WPvm0YLQ8QkZjRXuUz90r2U= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d36ac7fb-d48c-458c-5870-08dc5d728a20 X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2024 17:36:11.1214 (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: TY3P286MB3030 Subject: [FFmpeg-devel] [PATCH v2 2/3] avcodec/x86/vvc/vvcdsp_init: add avg prototypes 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: Wu Jianhua Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9oaK8ylSECMS From: Wu Jianhua Signed-off-by: Wu Jianhua --- libavcodec/x86/vvc/vvcdsp_init.c | 45 ++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/libavcodec/x86/vvc/vvcdsp_init.c b/libavcodec/x86/vvc/vvcdsp_init.c index d9203f4d5f..aef6699c35 100644 --- a/libavcodec/x86/vvc/vvcdsp_init.c +++ b/libavcodec/x86/vvc/vvcdsp_init.c @@ -63,6 +63,30 @@ PUT_TAP_PROTOTYPES(8, sse4) PUT_TAP_PROTOTYPES(4, avx2) PUT_TAP_PROTOTYPES(8, avx2) +#define bf(fn, bd, opt) fn##_##bd##_##opt +#define BF(fn, bpc, opt) fn##_##bpc##bpc_##opt + +#define AVG_BPC_PROTOTYPES(bpc, opt) \ +void BF(ff_vvc_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, intptr_t pixel_max); \ +void BF(ff_vvc_w_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, \ + intptr_t denom, intptr_t w0, intptr_t w1, intptr_t o0, intptr_t o1, intptr_t pixel_max); + +#define AVG_PROTOTYPES(bd, opt) \ +void bf(ff_vvc_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, int width, int height); \ +void bf(ff_vvc_w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ + const int16_t *src0, const int16_t *src1, int width, int height, \ + int denom, int w0, int w1, int o0, int o1); + +AVG_BPC_PROTOTYPES( 8, avx2) +AVG_BPC_PROTOTYPES(16, avx2) + +AVG_PROTOTYPES( 8, avx2) +AVG_PROTOTYPES(10, avx2) +AVG_PROTOTYPES(12, avx2) + #if ARCH_X86_64 #define FW_PUT(name, depth, opt) \ void ff_vvc_put_ ## name ## _ ## depth ## _##opt(int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, \ @@ -202,23 +226,13 @@ FW_PUT_16BPC_AVX2(12) MC_TAP_LINKS_16BPC_AVX2(LUMA, 8, bd); \ MC_TAP_LINKS_16BPC_AVX2(CHROMA, 4, bd); -#define bf(fn, bd, opt) fn##_##bd##_##opt -#define BF(fn, bpc, opt) fn##_##bpc##bpc_##opt - -#define AVG_BPC_FUNC(bpc, opt) \ -void BF(ff_vvc_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ - const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, intptr_t pixel_max); \ -void BF(ff_vvc_w_avg, bpc, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ - const int16_t *src0, const int16_t *src1, intptr_t width, intptr_t height, \ - intptr_t denom, intptr_t w0, intptr_t w1, intptr_t o0, intptr_t o1, intptr_t pixel_max); - #define AVG_FUNCS(bpc, bd, opt) \ -static void bf(avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ +void bf(ff_vvc_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ const int16_t *src0, const int16_t *src1, int width, int height) \ { \ BF(ff_vvc_avg, bpc, opt)(dst, dst_stride, src0, src1, width, height, (1 << bd) - 1); \ } \ -static void bf(w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ +void bf(ff_vvc_w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, \ const int16_t *src0, const int16_t *src1, int width, int height, \ int denom, int w0, int w1, int o0, int o1) \ { \ @@ -226,16 +240,13 @@ static void bf(w_avg, bd, opt)(uint8_t *dst, ptrdiff_t dst_stride, denom, w0, w1, o0, o1, (1 << bd) - 1); \ } -AVG_BPC_FUNC(8, avx2) -AVG_BPC_FUNC(16, avx2) - AVG_FUNCS(8, 8, avx2) AVG_FUNCS(16, 10, avx2) AVG_FUNCS(16, 12, avx2) #define AVG_INIT(bd, opt) do { \ - c->inter.avg = bf(avg, bd, opt); \ - c->inter.w_avg = bf(w_avg, bd, opt); \ + c->inter.avg = bf(ff_vvc_avg, bd, opt); \ + c->inter.w_avg = bf(ff_vvc_w_avg, bd, opt); \ } while (0) #endif