From patchwork Fri Dec 22 16:18:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 45298 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6623:b0:194:e134:edd4 with SMTP id n35csp1169649pzh; Fri, 22 Dec 2023 08:18:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IGuUqyujtcEUfAtG2QDSmX8RJOciXAmkCwVRn+E9LJg0myeofgwmcxW7SdgxdKXiBUpKFdU X-Received: by 2002:a05:6402:1251:b0:553:5927:5da7 with SMTP id l17-20020a056402125100b0055359275da7mr2864312edw.11.1703261916195; Fri, 22 Dec 2023 08:18:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703261916; cv=none; d=google.com; s=arc-20160816; b=sRQdko2EocOAhD2RTFQw6r0Ne2v6PTZeNpqlr8/157kDDu+qJmnVnp3HKE8JX1JvNY IMjogThK/st8dSnid+SzkQV9m6PTTcnfzG2ulY76E3DJ5gGqs0XQ+vf8zoshwAr8F1M1 v9NyTLS+TpgVskBn6smb/66T5jnOlduaZDdCgXVoaLe7Q8fpHHb+S1Yhypj0BxXSLqa1 ea+AicuMDLcsxmF7r9Gk0bsrD+S8B9mHUDf9HwQcvyxGxPZs+7YXY1mX2W/fueIdawV9 Asv+sGFD045PN45dcC1w+H6qjUgEaFdmiySycDEdfmcb+hi8gVUR9HL0L/A+B2VMHV3J P48Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=SPLQfYtNDlGAh83wOkwpAAnmg97fAY1FF3XenMIIm3k=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=X8RDl0pKyQp4H2xpphWqk5BZEnieeydOfpCK7oAZOLGffRzEsktfrGFBDKpoHXK8LF +djSHFm9MPUzsBsUSQD2AsTGhDTafw08dkA8SRgNEZURb0aTyo+vb2LVqsuGqL5H6OXP ldOwbzMTirQUp9tbtAUPsOk72p70lZWDCkGjh4TM4wcj3+2onb1EswphvnLDgXLKIyhP hpqFrfVYZVsq1VD1NIEwDo04bPcnlKXiQXDuTcJwmyGfB1Y2duWEW67mkhPzzqQ4XYNM twoxKa4z/+MGDERFB8JziKvP0qc2lWHVHKW62NRZrEdccWhvL48lhlt5zyxkUl9JjgkC dJ/A== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s8-20020a056402036800b00554268e4b7csi1488728edw.284.2023.12.22.08.18.35; Fri, 22 Dec 2023 08:18:36 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 055B868D341; Fri, 22 Dec 2023 18:18:33 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D744F68D0A4 for ; Fri, 22 Dec 2023 18:18:26 +0200 (EET) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 41AA9C018A for ; Fri, 22 Dec 2023 18:18:26 +0200 (EET) From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 22 Dec 2023 18:18:25 +0200 Message-ID: <20231222161826.23511-1-remi@remlab.net> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavc/takdsp: R-V V decorrelate_sf 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: wnOg/+erbNUp decorrelate_sf_c: 259.2 decorrelate_sf_rvv_i32: 45.5 --- libavcodec/riscv/takdsp_init.c | 2 ++ libavcodec/riscv/takdsp_rvv.S | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/libavcodec/riscv/takdsp_init.c b/libavcodec/riscv/takdsp_init.c index 4312c8d99d..58be83860b 100644 --- a/libavcodec/riscv/takdsp_init.c +++ b/libavcodec/riscv/takdsp_init.c @@ -28,6 +28,7 @@ void ff_decorrelate_ls_rvv(const int32_t *p1, int32_t *p2, int length); void ff_decorrelate_sr_rvv(int32_t *p1, const int32_t *p2, int length); void ff_decorrelate_sm_rvv(int32_t *p1, int32_t *p2, int length); +void ff_decorrelate_sf_rvv(int32_t *p1, const int32_t *p2, int len, int, int); av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) { @@ -38,6 +39,7 @@ av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) dsp->decorrelate_ls = ff_decorrelate_ls_rvv; dsp->decorrelate_sr = ff_decorrelate_sr_rvv; dsp->decorrelate_sm = ff_decorrelate_sm_rvv; + dsp->decorrelate_sf = ff_decorrelate_sf_rvv; } #endif } diff --git a/libavcodec/riscv/takdsp_rvv.S b/libavcodec/riscv/takdsp_rvv.S index b593d9139a..fa942a3be6 100644 --- a/libavcodec/riscv/takdsp_rvv.S +++ b/libavcodec/riscv/takdsp_rvv.S @@ -1,5 +1,6 @@ /* * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * Copyright (c) 2023 RĂ©mi Denis-Courmont * * This file is part of FFmpeg. * @@ -65,3 +66,23 @@ func ff_decorrelate_sm_rvv, zve32x ret endfunc + +func ff_decorrelate_sf_rvv, zve32x + csrwi vxrm, 0 +1: + vsetvli t0, a2, e32, m8, ta, ma + vle32.v v8, (a1) + sub a2, a2, t0 + vsra.vx v8, v8, a3 + sh2add a1, t0, a1 + vle32.v v0, (a0) + vmul.vx v8, v8, a4 + vssra.vi v8, v8, 8 + vsll.vx v8, v8, a3 + vsub.vv v0, v8, v0 + vse32.v v0, (a0) + sh2add a0, t0, a0 + bnez a2, 1b + + ret +endfunc