From patchwork Tue Feb 6 15:56:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 46081 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp1493294pzh; Tue, 6 Feb 2024 07:56:26 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVGK+ICvs1hKtKzFzHNN/IS7g2YF6Lde2EJ5NN8tSOQ1LO/JNgzJErtnNYv2BC4KRNmSiVaQbo5Hz8ttOONeYNtOzdgTMh5D9bDjA== X-Google-Smtp-Source: AGHT+IEr91nvn0jhxceH3+SuvQiyxtJy9v1AJl1IDrN8Lb1njN9gx3Wvbm6NgherC2Enk1IgFcsi X-Received: by 2002:aa7:c54b:0:b0:55f:8c5d:e55e with SMTP id s11-20020aa7c54b000000b0055f8c5de55emr1953261edr.26.1707234985733; Tue, 06 Feb 2024 07:56:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1707234985; cv=none; d=google.com; s=arc-20160816; b=RdE1nYx4WY6TLNsEeNOk/tM0s3EXK6PZiixTvIJ8Z0a+caFfs13yDhxqdAvezZZU5P al+mStQ3DWTz6d6VblHBd7jeF9YMv815W2yEDKwDDJXZkC3I010Vqhz2NquzlNIo9J4Y +gBinfvOd4MIT6mKJz9B/b/UUWWNGsXkZuc1YZ3sVSegV+AsAP0aA9ALy/NNss6kx2Hv P11hkSv/ooOHYB7zGXftnairRWOjCTarLyoP9rjZMjsOGEid26wyve49HSh9hNw7pNNS Dx6vBccvvykdwmkBVaThKSmw/XSvzK61KwKSX/0DDL/GspoMGJZlmvvo4b0+D/zcLoof wBFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to :message-id:date:from:mime-version:dkim-signature:delivered-to; bh=7c43yx6ow09f0VMAJok12EfBTfkINOg4rCWi28zG4mo=; fh=RMQvn5iFULidJQ9baw1gPa72f19kU/FchHoVCKr79q4=; b=t4XyE+Pz7ILLl0rEcah9ksAixwcB6ilMBrQiAaPqR+K/iuLbH+lQPZ1GYPt7tcR3W3 EHZq/jq4DCyufI6DbnEl+wByKH0e/QbhIfpbSUgmPMxj/dnxrCMIsAQXIiq1pzKCmNaa Mb5wGSQiDMpwfw/mYycFdx18xyfjoMWAFH4Hi+GdTlx7PxzBzxsx3NWD9luU8gIFwWuw BCFRzqp33M8zyThKCakYKneiFf4Fgfgor6V10KiqXBa/6uUh3uPGCg3iaUeO4aIBc+kq /BlbhP7Um8YZz3Um9ETHl4AsrIbP7P3F7d7ZedsniymaoQOxJ1st+FwrpBILT9SJDmyB fPwA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=UqqIWS7Z; 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 X-Forwarded-Encrypted: i=0; AJvYcCUEHNUsfrGWdynPRp6Y3SqxjXKpqyh5ews4OSu6agjX+81GMGKIhFoycLY11CiXv+F6zXObxoJpjbhV4lplyecoLP75xzi6Jumz4OFRt1gCw34DzKON9tJ2KETO59t2iS/wjAV7VsTnJkC4zYiupmO+nndpks/uTHSyAToOkkwRhTTI0XLjrei2Z47dFwTVPocc1xqYsEU8IN2UxnyyBsnZaT0vQ1Dxyqys8RxIeCBqTDWeKeLniqtils3u2INQf62EoKuz0ErHoTde69wpTTKS7FZyTZCOv+QygceSGDAaHivmgcMHWcKHM4aTBdIGGumE3mU62cL57FerBMtbzWSKKdB32pgjnoY8Oxe0co8i80jaOxw1IEgm3OndTBxZA0q5WAzlpmoWzhC3aK3ofFybtEs5UJORo52SSK5M9G/DW1cuPCs47lNVK49/3RLSKpKHdQfun+OEoTciSHU0gg0s6GwcKVSQGWQ7o/jk4ajgmbm6wDmjBUeoUbb/76A24bfWmZ4QOVua+SBKATibh17GXRrbnVt8Pi+0h7Td+yOiu09f6pwMOShm0tD+Nf53Ve+bQaVhgbrk/VVEJxn0U9yFyvxq3kCUi5w0Vz6K1cWHbYzUA0guNeKgWE22dJ+9IjCETESlwFs9EMDlk1J7JRo7w2P81m+BXav2G6W5f2rVafGVbNwet1XLJsL9vzOPJPx/7lSoboTaBxtTKE704swRwql8ht/MLhOYMWDuZfPwIpWa5aKakKibLqpyn4NLAtCEKCUETSztKAVjHSA1tlA4mHnI20/9DqbbXfFtdrC6SqZmSMITiWRY/crhGJGirwy9mi/rMdse4nifO5FyfQD8rNC5Zhm8w/07W8k/QNBlM8YgPh1KWfpuaIguGL3DxV/l77F/WswrTTFa8XpUhFozfH2H7rqbdV2qQLfdMzcwY8Enx9mVE2CmvdNqO/Bej5V835 H0u1EbHPKJHz7Xr31hREKCxq2Zl1vdUxfmThgkRBwWq5Ryj7+bCDsZXRI15DSjo5TZHTlSGezsYmF5Z/D64X4JeSNNoRub4T2CeYbuLKL2/k/rwroC3NrShWkUJ3K9FwGmD2vA9+Lndop3wT7eq38tQVvlFhXZkZCoxXz0lJ3benwEhAEm7jLr+VnDrd6rCx21ZRlhou69PjuFfYNvySz3woHjY3p1smNDnsQMxWm5//1Bd0uiFbTS3NposxaJWCisapH/K11VzmsmO20Zgv/Q27xvbbpmxEY31hLfLRQQsHhs8228IdSqdQgVctczRLd8DhQfMxXpS5Kr2q+jNj5DOxnYH0squaprqHEAznL+8VpKlFg99DfcpNyF3VvVETVGYlfF18TAV5dmchSyBmuPodHxQEcTQG/AhPoB8Lb4TSS/eu0rcXZm+gVuurIvtQgPbp6Hz+v3XuUVnb/XMj5xeQlxeFe2Tv/ww64bImPCOn4wJkkEfhl2lYJ3wZmmVimSJQBNbnsADFEdJJw+4hiEag4Kmu4LRRYGWJwqEAEedp/eNkoE+KBNl+n0FxRvR9QEgVie6XmIlE4QwENOOD6ZacJWJqgGrVy3RIKEHm9HUImqWTUCVGCJ5R5cAj1eXnjz Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n5-20020aa7c445000000b0055fd61c9be9si1241866edr.438.2024.02.06.07.56.25; Tue, 06 Feb 2024 07:56:25 -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=@gmail.com header.s=20230601 header.b=UqqIWS7Z; 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 4CCE668D01B; Tue, 6 Feb 2024 17:56:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oo1-f48.google.com (mail-oo1-f48.google.com [209.85.161.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ECDD268CAB8 for ; Tue, 6 Feb 2024 17:56:16 +0200 (EET) Received: by mail-oo1-f48.google.com with SMTP id 006d021491bc7-59a29a93f38so2336306eaf.0 for ; Tue, 06 Feb 2024 07:56:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707234975; x=1707839775; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=uisR0pcEiJN/R8S+4qmpWd/2KCuOzoU1voCwaMY+ybo=; b=UqqIWS7ZNYABaWLlOTfxVsKuboPEMfy3D22yLRmXiZhYYZtF2nzHpJBdZZ6pbduQZh iHLa9fgUtZj4sLilbNxGoYigc2JKXFLwLono3KioRM043VeH5SBTYqdHpfQI9GRQuptI B/BWcpvyFUfac6mYVJcW9LY/d12H/+kJdDku1TbWLsIsVagoHZYZzzv/ppOfpK9z+578 +TI/NS1sNRfIYEUOUJwCCIEdwOQ4ZJFdgXTFr1F0utTmb4PedwvX6D18Oa9Dswx+X4kS TDYX+ZmhircuJPDarSUBnx2g+tWKGphSPvRDyatU36fkrTiry+C3PPHn7k1BNhQsx0oW UJ7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707234975; x=1707839775; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=uisR0pcEiJN/R8S+4qmpWd/2KCuOzoU1voCwaMY+ybo=; b=hDsfc7dmK0hGzXZjRMRNdf7ZRdFXBHWefH+h7rAoKKqMa/XpMUfTv2eXcQgH4G5AEi 4Jsu1ZQWXPPsa6g+hxYi1fWmH6VjFgD1UkffGHjbV6d+fc6OIn+4HalTETN25hxZS6DU HOeZ//cN4d8VLPCabM71Svrd987Igo9+QVyYIXqIHK+A9C6Ue5vSy+9oPAwXkCdfxJF2 xvJvjimWPmjeJSh059kJNHzVYSidbBNQWG7NtTdd0BEGbsILegJD+YBCeMw37PZVcH3H 7W1mQMNYnfsXDFzOTLhLUICE/XQegPAsBM1qbznhm7/bw5T9vdEYvp+xW6djhrog//5a lQPw== X-Gm-Message-State: AOJu0YzGk8R5O4y8bJsXyTj8B+IGWgVx/rlVwFjqlOKD1CUOZDQYB1ms DtPQkR/P0pF52UagO9GQPDmal4SoL5bDGD6M5E2j42V7Ycn4EyQnH09Ldta98psm5cPndHNhgBT l8iV+jRXkHga05KGLys8OFfOMfHfgp9+C X-Received: by 2002:a05:6358:9044:b0:178:b0c5:9aef with SMTP id f4-20020a056358904400b00178b0c59aefmr3619295rwf.9.1707234974841; Tue, 06 Feb 2024 07:56:14 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Tue, 6 Feb 2024 23:56:02 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 3/7] lavc/me_cmp: R-V V pix_abs_y2 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: XPNm2XHONYKI From 01cdfde56c4a88022f0ed8c12a2442e6bebb6a60 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Tue, 6 Feb 2024 21:46:07 +0800 Subject: [PATCH 3/7] lavc/me_cmp: R-V V pix_abs_y2 C908: pix_abs_0_2_c: 904.0 pix_abs_0_2_rvv_i32: 172.2 pix_abs_1_2_c: 460.0 pix_abs_1_2_rvv_i32: 168.2 --- libavcodec/riscv/me_cmp_init.c | 6 ++++ libavcodec/riscv/me_cmp_rvv.S | 50 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/libavcodec/riscv/me_cmp_init.c b/libavcodec/riscv/me_cmp_init.c index e46fb09c11..72c3248b01 100644 --- a/libavcodec/riscv/me_cmp_init.c +++ b/libavcodec/riscv/me_cmp_init.c @@ -34,6 +34,10 @@ int ff_pix_abs16_x2_rvv(MpegEncContext *v, const uint8_t *pix1, const uint8_t *p ptrdiff_t stride, int h); int ff_pix_abs8_x2_rvv(MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t stride, int h); +int ff_pix_abs16_y2_rvv(MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2, + ptrdiff_t stride, int h); +int ff_pix_abs8_y2_rvv(MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2, + ptrdiff_t stride, int h); av_cold void ff_me_cmp_init_riscv(MECmpContext *c, AVCodecContext *avctx) { @@ -47,6 +51,8 @@ av_cold void ff_me_cmp_init_riscv(MECmpContext *c, AVCodecContext *avctx) c->sad[1] = ff_pix_abs8_rvv; c->pix_abs[0][1] = ff_pix_abs16_x2_rvv; c->pix_abs[1][1] = ff_pix_abs8_x2_rvv; + c->pix_abs[0][2] = ff_pix_abs16_y2_rvv; + c->pix_abs[1][2] = ff_pix_abs8_y2_rvv; } #endif } diff --git a/libavcodec/riscv/me_cmp_rvv.S b/libavcodec/riscv/me_cmp_rvv.S index cc60219466..308d707136 100644 --- a/libavcodec/riscv/me_cmp_rvv.S +++ b/libavcodec/riscv/me_cmp_rvv.S @@ -115,3 +115,53 @@ func ff_pix_abs8_x2_rvv, zve32x pix_abs_ret endfunc + +func ff_pix_abs16_y2_rvv, zve32x + csrwi vxrm, 0 + vsetivli zero, 1, e32, m1, ta, ma + add t1, a2, a3 + vmv.s.x v0, zero +1: + vsetivli zero, 16, e8, m1, tu, ma + vle8.v v12, (a2) + vle8.v v24, (t1) + addi a4, a4, -1 + vle8.v v4, (a1) + vaaddu.vv v12, v12, v24 + vwsubu.vv v16, v4, v12 + vwsubu.vv v20, v12, v4 + add a1, a1, a3 + vsetvli zero, zero, e16, m2, tu, ma + add a2, a2, a3 + vmax.vv v16, v16, v20 + add t1, t1, a3 + vwredsum.vs v0, v16, v0 + bnez a4, 1b + + pix_abs_ret +endfunc + +func ff_pix_abs8_y2_rvv, zve32x + csrwi vxrm, 0 + vsetivli zero, 1, e32, m1, ta, ma + add t1, a2, a3 + vmv.s.x v0, zero +1: + vsetivli zero, 8, e8, mf2, tu, ma + vle8.v v12, (a2) + vle8.v v24, (t1) + addi a4, a4, -1 + vle8.v v4, (a1) + vaaddu.vv v12, v12, v24 + vwsubu.vv v16, v4, v12 + vwsubu.vv v20, v12, v4 + add a1, a1, a3 + vsetvli zero, zero, e16, m1, tu, ma + add a2, a2, a3 + vmax.vv v16, v16, v20 + add t1, t1, a3 + vwredsum.vs v0, v16, v0 + bnez a4, 1b + + pix_abs_ret +endfunc -- 2.43.0