From patchwork Mon Jan 22 15:25:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wu Jianhua X-Patchwork-Id: 45714 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:120f:b0:199:de12:6fa6 with SMTP id v15csp45004pzf; Mon, 22 Jan 2024 07:27:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IGhHCrwA8JWWq5xkWO5yiURO3VYR5oCVSdr8razS+B4v65bSNpTXZXnjk3p6Gxp8/PQmHEV X-Received: by 2002:a05:600c:5188:b0:40e:a5b8:a27a with SMTP id fa8-20020a05600c518800b0040ea5b8a27amr2100379wmb.106.1705937226416; Mon, 22 Jan 2024 07:27:06 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l3-20020a17090615c300b00a28a73c3711si6409316ejd.968.2024.01.22.07.27.05; Mon, 22 Jan 2024 07:27:06 -0800 (PST) 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="g/Q9TIxr"; 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 D0AAF68D0C1; Mon, 22 Jan 2024 17:26:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01olkn2050.outbound.protection.outlook.com [40.92.99.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6FC6B68D0C9 for ; Mon, 22 Jan 2024 17:26:07 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HS2ngJRpeSdNcvUakdtFxaRFkQv8wKnTcHvo5PFKQOFAg4TgJyFsKXwrRkG9q9RC2/SnM990dU9PW9c2/pKaYHgPXyFd5xmyMC4nNiWQVlWtgXsxtgggw6yugL6H8PcMWTCrQo5CefdsNR9rH0rS+8kPLK3AU/sD5SSF/AqotgWo2sWYxFXk5INMJeQkdYn9ygesPT70SoGKauPfO5qCdFFoY0AKLKiIIURVc2SeZJDCxfnK9iSyuJlVETE3DOF6FEsOyBdD67gqWUhNzosxZ4A0TCLa9FFH44QfsSTVogr9n0p6OKpg74BtiDpYAV9mzo3KijJq4Nkt38NVs9RvUg== 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=cTQRBaCRGC5C6v+J0FtP0SeAXPgnVftQTwbk5pBby9M=; b=ZWJNwYINruzXrsMd35akARMVNjcOi4xTpqn7S7cQjj1icPoBMz5Q0Q6xtv4slLl3QmaBYbLWGMU/XCwHn8qV3CXGBdfV1xvpkvbdif6MryKlHc0z/MkDLfUR8xt7zK06/9xwk9oWj8Iv1DytP/qLqrhvSJAYny2/n4KrLeJCfQziyv/pxw62t5uLqkIpjSnacRuFlDmN7Az9PcaxA7N5bTNJbEKMjM98k43yQ9TBKJf5IlFUnJkS4l8WvyUjffxCNXC2T/QiSFDdUq56fwXdVcxh+BxFdXFWADbEsOxytyssa2ekrzQvQwxxQom+nHs9x5vec7VH1GkC0xS1jdi3Dw== 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=cTQRBaCRGC5C6v+J0FtP0SeAXPgnVftQTwbk5pBby9M=; b=g/Q9TIxrdFuQLlQGJ9HH44JXr+ujH24hR8iTdL6h5rq7pdj2GY5EFuoAMvGfywLlvJJSG0hpyGpJYrdGk/rpOFpMMMFcpjCkDWAHnZlIdwX8xuTfnECuf3gZBeIRqC2NkVldHEUYbpcCMGQazLVx+pfiqbfQ0nP3mADhUIje7hVW8GB06r8XhXTOSodUQbL4IcZmOC6Wg/rwtBhyKoIIADckxsLmXxZFnCVHyYRU99oHtRCImDTSVM05jhjVQQpid9gLsGuP45jRboDZ5rOOJ7h1FcS11e5/cYtG2ebpAvgRnJByah7zDnPfZxrHYwa3sJC1njrkGGX23OL2/aXrfg== Received: from OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:186::5) by TYCP286MB1682.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:184::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.36; Mon, 22 Jan 2024 15:25:50 +0000 Received: from OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM ([fe80::86fc:6255:f4c1:a076]) by OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM ([fe80::86fc:6255:f4c1:a076%3]) with mapi id 15.20.7202.035; Mon, 22 Jan 2024 15:25:50 +0000 From: toqsxw@outlook.com To: ffmpeg-devel@ffmpeg.org Date: Mon, 22 Jan 2024 23:25:27 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240122152527.601122-1-toqsxw@outlook.com> References: <20240122152527.601122-1-toqsxw@outlook.com> X-TMN: [372WLFKpOwV+geYlLIpPcpsD6qbiQ/Z9] X-ClientProxiedBy: SI1PR02CA0022.apcprd02.prod.outlook.com (2603:1096:4:1f4::16) To OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:186::5) X-Microsoft-Original-Message-ID: <20240122152527.601122-8-toqsxw@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2173:EE_|TYCP286MB1682:EE_ X-MS-Office365-Filtering-Correlation-Id: 3a385635-3cac-4b30-49c2-08dc1b5e6a5a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C2UZvvy5+6/c45zV70/Y95vtzQ1272uKs3ViPzsPIGeNMrdp/Shgpoeefzppr1vMrO+RY/GbgYkMaNEn7HY1A9L21jjTcDtKEGgth2LIH5s8V3d7ekobD81cPMJWaDSeKWPpteyhgIRVbtONbT+Y5qjsQkhTt5N72MvebvTFUStfnixgPXgTQs4h25RjJeoE1Jafuso5lRwk46EcKezRNa1kkljkitVYGAmauvvQWDkzh8QfE7X3U7CYQlkGdCPbsIaCs+VBSC49PoUjyCir0TnlgDVsldETDz5jetRq4gtpXfMAW0ylT/yCK+odjk0TXhXz0cg361W8gWZeOBMOfmBd/yz2cq68W4xwcolkzQDQSb68X9q6xrj0V5kc67bx5mOnpoVMrS7WzsGKSRG0I49HKLOdz87hO1mzbDviyJM32T4C1HODQZMfcyD3euvSrR2ctEppNiMpNORnuh8bdiig1GKZoT5tNGYtuF8YQMjCxigGWpGH7pLbfc7V1YJ8wpxPAer8f3SoBdgvvWnKWUlXBzgrWstm/aN6xFDp98qbTBsC1MU+eOBskSHg98jPRV5Uc1lGCUzMI3fFLuqDNntmneOqxjwgDdsP0oMPPGvMg09ytdjc0xbRiAywO3nC X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: e+mLPEj8hOcpfMXSEtaL526/ZE59rwh4EtXn6jdqUHkEEIpZKgaPgv9WBK9az8lGqnIH4S1JrZF3L4FAXNwcP3RtagM+DgQFsEBOsP/guEDodUkWB8UaYrvn/2310oL04MH6nTzsx+xxiDXWdT8M6LAwBHZPEhHzSZnoOJL5jRGZqB7yVaKEdpF1/DSxgsZr3NkY7Qon0kI5mIuPccvqSGiV53nnrgYJc/GA5GLikmLl/qIkP3VoKz/mKvx6T7pHp+i43rXgEiX1JDtJa4y4rcot+8pJVCFVJDgSw4o55hWN2WCG8ZZdS/TW1mNJrotQJgq8uZtDWDsmB/FX/oz2mf/4o+xDvbjffRlp/tSRzJoMNyAuZZvEGSH9J4lh2fTykHiGvbkJD6sFnynpG7DnQ/3ZUpaZaPxqmHBM0ipOr/zyrt9z8N2EcRQig99575BbDo9eLJbCKe6UeHmQJjYi20i0mz5aSBHenEeCWCup8z1ims01fP9LYPdzXoOSO6uk++HZdbVeJPp9SPAUaGZgeq81ElHJ5QxovgUnMEI3MSCmEd96iVXSy4+7Y72FEu4OsmBJFIRYOzoTEB5bUlgX6bwpjG1XwK3C3hOK+OVZ/9ZorTzld2DGHIMyIbgxjefvt+uRpQ0/yNsDzs4Xz8/iJPSdQX6xA1MRzGg26ySCn675ckufDs3KrkCknuY4/+f2l4qPvk+43p+d9sYKGXRnvbn+En7A6F4ThNj2WRckve1i3PDzZAlvzwRGsTDirQyE4uY2vr03k5eE/ztkqM/1X9ijCN7RFMnwFkmHh/McnO+GBsCCptVONTlzNny3NnBEmQc2CQnrztUAIdYHNLVoxf0N/NDosSofN63vPfBrigYnsfCNvK2oZAzHmf21pvc5Y0ZjsoQsg7NJemi9fdody96S+m4LOCVJBaTEgCb9qL8fl2FxDkiVlMoK1y4zXZQP8NKPXaUXqOZJwOaerh1HUz0Efa03roG2zMmGIpgo65E0mNOim+/8kh1AUkivkkSWe1cWw/YdyUepCOMSpRe0SFkEgTNjwjy+jkfZCW4E3g2bSnL6s2CPeefoIa+cRor971mcoi/LQygTNVNXRRU6eFEIT7f6dZUD5IaW9IxyYWks0hIiiZNqbfe1noffxGIBz0v2eUqN3ip+gUVuQB8Ync62/DI7zyQ4w70va8KJ3SX5K1UW45MNGSXOs/nGVYYbZkyEm+uDS4yfPTi8Lxi6VGjOXaVyFgui3fZlQ7IstG4= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3a385635-3cac-4b30-49c2-08dc1b5e6a5a X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2173.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2024 15:25:50.7487 (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: TYCP286MB1682 Subject: [FFmpeg-devel] [PATCH v3 8/8] tests/checkasm/vvc_mc: add check_avg 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: FqcmFuWsqTDb From: Wu Jianhua Signed-off-by: Wu Jianhua --- tests/checkasm/vvc_mc.c | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/tests/checkasm/vvc_mc.c b/tests/checkasm/vvc_mc.c index 711280deec..8adb00573f 100644 --- a/tests/checkasm/vvc_mc.c +++ b/tests/checkasm/vvc_mc.c @@ -35,6 +35,7 @@ static const uint32_t pixel_mask[] = { 0xffffffff, 0x03ff03ff, 0x0fff0fff, 0x3fff3fff, 0xffffffff }; static const int sizes[] = { 2, 4, 8, 16, 32, 64, 128 }; +#define SIZEOF_PIXEL ((bit_depth + 7) / 8) #define PIXEL_STRIDE (MAX_CTU_SIZE * 2) #define EXTRA_BEFORE 3 #define EXTRA_AFTER 4 @@ -261,10 +262,73 @@ static void check_put_vvc_chroma_uni(void) report("put_uni_chroma"); } +#define AVG_SRC_BUF_SIZE (MAX_CTU_SIZE * MAX_CTU_SIZE) +#define AVG_DST_BUF_SIZE (MAX_PB_SIZE * MAX_PB_SIZE * 2) + +static void check_avg(void) +{ + LOCAL_ALIGNED_32(int16_t, src00, [AVG_SRC_BUF_SIZE]); + LOCAL_ALIGNED_32(int16_t, src01, [AVG_SRC_BUF_SIZE]); + LOCAL_ALIGNED_32(int16_t, src10, [AVG_SRC_BUF_SIZE]); + LOCAL_ALIGNED_32(int16_t, src11, [AVG_SRC_BUF_SIZE]); + LOCAL_ALIGNED_32(uint8_t, dst0, [AVG_DST_BUF_SIZE]); + LOCAL_ALIGNED_32(uint8_t, dst1, [AVG_DST_BUF_SIZE]); + VVCDSPContext c; + + for (int bit_depth = 8; bit_depth <= 12; bit_depth += 2) { + randomize_avg_src((uint8_t*)src00, (uint8_t*)src10, AVG_SRC_BUF_SIZE * sizeof(int16_t)); + randomize_avg_src((uint8_t*)src01, (uint8_t*)src11, AVG_SRC_BUF_SIZE * sizeof(int16_t)); + ff_vvc_dsp_init(&c, bit_depth); + for (int h = 2; h <= MAX_CTU_SIZE; h *= 2) { + for (int w = 2; w <= MAX_CTU_SIZE; w *= 2) { + { + declare_func_emms(AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMXEXT, void, uint8_t *dst, ptrdiff_t dst_stride, + const int16_t *src0, const int16_t *src1, int width, int height); + if (check_func(c.inter.avg, "avg_%d_%dx%d", bit_depth, w, h)) { + memset(dst0, 0, AVG_DST_BUF_SIZE); + memset(dst1, 0, AVG_DST_BUF_SIZE); + call_ref(dst0, MAX_CTU_SIZE * SIZEOF_PIXEL, src00, src01, w, h); + call_new(dst1, MAX_CTU_SIZE * SIZEOF_PIXEL, src10, src11, w, h); + if (memcmp(dst0, dst1, DST_BUF_SIZE)) + fail(); + if (w == h) + bench_new(dst0, MAX_CTU_SIZE * SIZEOF_PIXEL, src00, src01, w, h); + } + } + { + declare_func_emms(AV_CPU_FLAG_MMX | AV_CPU_FLAG_MMXEXT, void, 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); + { + const int denom = rnd() % 8; + const int w0 = rnd() % 256 - 128; + const int w1 = rnd() % 256 - 128; + const int o0 = rnd() % 256 - 128; + const int o1 = rnd() % 256 - 128; + if (check_func(c.inter.w_avg, "w_avg_%d_%dx%d", bit_depth, w, h)) { + memset(dst0, 0, AVG_DST_BUF_SIZE); + memset(dst1, 0, AVG_DST_BUF_SIZE); + + call_ref(dst0, MAX_CTU_SIZE * SIZEOF_PIXEL, src00, src01, w, h, denom, w0, w1, o0, o1); + call_new(dst1, MAX_CTU_SIZE * SIZEOF_PIXEL, src10, src11, w, h, denom, w0, w1, o0, o1); + if (memcmp(dst0, dst1, DST_BUF_SIZE)) + fail(); + if (w == h) + bench_new(dst0, MAX_CTU_SIZE * SIZEOF_PIXEL, src00, src01, w, h, denom, w0, w1, o0, o1); + } + } + } + } + } + } + report("avg"); +} + void checkasm_check_vvc_mc(void) { check_put_vvc_luma(); check_put_vvc_luma_uni(); check_put_vvc_chroma(); check_put_vvc_chroma_uni(); + check_avg(); }