From patchwork Tue Jan 23 18:17:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wu Jianhua X-Patchwork-Id: 45752 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:120f:b0:199:de12:6fa6 with SMTP id v15csp801938pzf; Tue, 23 Jan 2024 10:18:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IHut7ShgDTU9vxgs6dyKhYV5fX73JlmKLOqq/kci5d1Ztcj69BxdBzEP4BV4ROz5OnrPOby X-Received: by 2002:a17:906:fa0a:b0:a30:d9b0:ce6e with SMTP id lo10-20020a170906fa0a00b00a30d9b0ce6emr80663ejb.191.1706033914625; Tue, 23 Jan 2024 10:18:34 -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 j2-20020a170906254200b00a2b12e231b1si11575173ejb.334.2024.01.23.10.18.33; Tue, 23 Jan 2024 10:18:34 -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="Dj/sqZp8"; 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 6978F68D106; Tue, 23 Jan 2024 20:17:49 +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-tycjpn01olkn2040.outbound.protection.outlook.com [40.92.99.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A6E9168D0CE for ; Tue, 23 Jan 2024 20:17:45 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fl0Y8w9ix5Y5GWNYZbPVdZSx45H0MwQBg8PuaHd0h2kA1xLfwcr3c2qZH6bOaZ3zhTPWfl3CbT+1E49tkERilvx9oGVw8IDwFWwGcoIrr/Y9Qgmlod86TVmhsh8g4WK7QrmqXKfzXk9xC0NB75fOnSg/zCaNenxLamWUAbBpcHyBpR7Qb6GjIENHrTwCbYTJFnGS/Ml1/2w3ShtvJcq1OJb5UZDZK+7udOJKcoMpljKSjpauVtdRv4iBXc3JstoceVHN4gLwBSd3vzeEVagz8V3TNPRXxik4jlWdlnueG4+6HFznMGO+IwYxQ48Nyjhl3YCqQbf0MjdnOeLX+Mf+3A== 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=I1uco28y1DQbJN7P7xBD81GcnZ7SDsI3CrC82ok1JqMtExf/OSr5v5tTS1riZvWENS4GzR4HY3fOV/OA59qkckgXVr/dD4Z0d3mdKZgrKEIJhElJauEn1+g0rdpvsErKQoPYz32Fo1JKJ4Teua1QCXSIWSbloNlGg3CH73LNgWOt3NeJQ4maZirtvl6e3HlyuS4D5ueQHIf4HDqLLbOz5kMMzyys18sOdeO6dKHv24neY5ccGDQQGWZTafGzf/joZ6fgv0n7c41TKNH3tSf9h4ZvVvzWu3D9Rj1E4AIWFSWoNSJty/sz24qVzYyXtwVyGifvqg8mh7gLRrhKkZD1kg== 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=Dj/sqZp8MJxf2SGRP3zqdVAXiCQFUJC6v7isyhR06f54+eBZKq8XaxcGIVAuHa/q4cb2YoWKFLM2F4A7ZrI3zLVH9svkJ255iZb/gDiN2Kt5qCZgnK1/ubbhf+xEYg0G6iiUKvWfXgHSk0Y6jq5clzYJF1evsD4frb5XhKr5+frCsruy29KGH72bavzVH78Buf9GbMe27Q4Px+/E6ucR1giogcrukrZgdt+PbnlltA5nGgbTSjy+ImqD9kTuz4YjhI+0CcoQp2+IGSNLDaVRRcvY5UchnJO+JJWlqjYUYwM2c9zJ9YE3crp5Nu98AgGVD7U07NPwAVimbFc1LbT0eQ== Received: from TYWP286MB2172.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:173::5) by TYWP286MB3822.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:447::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.36; Tue, 23 Jan 2024 18:17:27 +0000 Received: from TYWP286MB2172.JPNP286.PROD.OUTLOOK.COM ([fe80::2fb1:781b:3f26:a080]) by TYWP286MB2172.JPNP286.PROD.OUTLOOK.COM ([fe80::2fb1:781b:3f26:a080%3]) with mapi id 15.20.7228.022; Tue, 23 Jan 2024 18:17:27 +0000 From: toqsxw@outlook.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 24 Jan 2024 02:17:11 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240123181711.402946-1-toqsxw@outlook.com> References: <20240123181711.402946-1-toqsxw@outlook.com> X-TMN: [Pi39DCj58ed6gbDRTEBVVeYjZ3iUvjYM] X-ClientProxiedBy: SI2P153CA0030.APCP153.PROD.OUTLOOK.COM (2603:1096:4:190::15) To TYWP286MB2172.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:173::5) X-Microsoft-Original-Message-ID: <20240123181711.402946-8-toqsxw@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYWP286MB2172:EE_|TYWP286MB3822:EE_ X-MS-Office365-Filtering-Correlation-Id: 14b7e8f5-5910-47d3-f512-08dc1c3f8ddc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZnQgLcT1GiTopUFufYC7HrFf/AMN+6V9XGMZxDbjT6PDVeGoKI+oHQLyNnPJVU/doWRTWMIwXONnuQDvPOx1VDLC/d9RCUZh6mdJTxUFGLOF7ib0RhqjJOfqWiI0JmMrBPAEOVoideQPCjecf141ex2rNGvJfoPfbWXfe8+HmTDuxRW7mBcZ5eJYIjqkV+bi/21b34lbml4K/B/ZolliPy/HmoQ2HePceT1mpvuuqi5NpOTUlwx/EXkgT4kcoaetOyygO+5ZBlz0zznXi72lqZxs68T7HEM4NT2q5kKrMUziN84MMALZlYgm3Elp5/RXljHpANYtp59C/P1DNuBW3I2j/apxgDzSoEsYxZH5tyW/EnXkfIStC/RhCoI6NclgFL9NTr8PF5ezE2bd5o3+wpMGc0qtaDiP+ZCubwu38ovLgnkkyMBAxaCoWNriGZyq25Vg4q6DOhfFc2foTNkcKQCXvkMRVttsk0pVlpXPovtw1E4I9lANnDbcoG87z3gAAQehdx0gnil7CwkoZ8Y0bWY/XXst/YgoILPXkEfn+0/kXvoK9yviVGUSXurb01AMRzsynjGW5PKtahUxMDJxl/Tk1Nj6CUQ0UEw/Jsu3uCbJ4VZZLUatLgWiCyje+jYG X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: eOGy+joVGnc2L27ec+I+duqfDAHR9XOfFbv5UJh0dgovmFBj+WicjQWF9HMUB7c2smttHhKGdtud94+SH/0KJYglerHSBMIHsJUCw7Trs4/YB2UhdT7MgsVssB1pkuV5+amCn4zv3pkfR3pTOkx02NJUyUI5hgAmD+UNSmXmX0Z0w+c72RBgjBS1ew+kV+wkZLkJQx6fgI04aUZdhfrNRcrI+q3D6HlqGU8bjc9bmCjOIOxZNkoVhmPfkGZ327FltCWPDFq9dCnxnhROIhyLKhELxLM8qEC4RETwx6rnkyPjA0dxwv0ssUtxSQEjgiJuwWKkSR+19c28XmexbsYP0kgkOny72VUqDoU8DDKipUzJeWYxXogNYRtgmERNDCjX8L9qzpgFVkevY/yWGxagteKJaqBHK2HACjJt/Ef+iBtiqM8EfPZCknmb+bnf1KonAR57QjhkIrky3jDlHyhx2+2uOtqNgFAiEdiXKuSZXX/anZZDKB7ejImjkWBBtuBpLAJpuTosgu6qmnFRba1Qt5/BFaWkUoNXFsQ8ICjN45OIkAEM3gsXo0aGWOhdxwnAmzBSTHasdTPEdJkALVY8ylzazzd/XljdzYGh0pz15qw46ItKY+HWoAhFpjRH7biIFvObdHHRRYL/NOveNKSQ/6kGgNbgVrC6YaLqipCfLC2hKtAEQ8OiJFUNzcrvJVgsETwdKnT1yDRdNpCzlSQKl/9xLqiBxIrxqiPIoesfb6lzQ76QKwrZKKCfoAnTudZ6d3pTeROMo7pHW5y/iVFsttZGFtWKj/cBEc99bwYA5LjyMaRcngNNCUEut3dqxlwpS7MGp6+bEBitSeGdJzaip707Z/mKl1kFs9MuDR1nad+HcBRXQMvONEZM0VrTYtqwz9QanmUhEDqYXZK94p0d1df11A5or0WyauAcxZtVCe1WiuiziWpWfroIUAJo4tfxr1CiPvGR2jZ1KLhYhbfe2VGdV5wVjH+wzr2U5bR/TV00b3Iw4XaZfm9rYqdmbLC6uSESjLlqpk3VTKF3niZKeJNawz1CJPtCcnR3WA+5RYKjkTRYd2skBXZl6hVoXBmwn+MGRprvm2okgtOhnkbeWFQjk3KshwDcpqtd/QhiltCHt1Lz49YxXqvkWbWODJYWdCQzIAve9SZuHRVSAFh5IaZCiqSBsuFBzD13Wj/izdU72dYKmJEVlwvqiQ5eIemot1lyiy29759xtr0UDf0x/08Vw2PLoN23/oEQVjFCde0= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14b7e8f5-5910-47d3-f512-08dc1c3f8ddc X-MS-Exchange-CrossTenant-AuthSource: TYWP286MB2172.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2024 18:17:27.0245 (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: TYWP286MB3822 Subject: [FFmpeg-devel] [PATCH v4 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: 3MzvF+UaXNiz 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(); }