From patchwork Fri Mar 22 06:04:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 47301 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a4a:b0:1a3:31a3:7958 with SMTP id zu10csp1007844pzb; Thu, 21 Mar 2024 23:05:14 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUfW/o7PDZF1e4I+Fy6Cg8s9ST9YjumUE6GKBniX56d8L17NXvUJzGYh3sVA2UhsKAGLfKe2b07tu4eMmfDCb+QCa0PIBOC3JZRnA== X-Google-Smtp-Source: AGHT+IG8HKZZ3WZspUj1b/mA9xxvCopwHZHx32EWkaXn0CeITMiTOf5AnHord63zszX1/TbWF5EO X-Received: by 2002:a17:907:7248:b0:a47:33f1:419 with SMTP id ds8-20020a170907724800b00a4733f10419mr246693ejc.2.1711087514639; Thu, 21 Mar 2024 23:05:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1711087514; cv=none; d=google.com; s=arc-20160816; b=BUsFx9jE7ca/iVzTmnlM5CJsVwvRz3jSqPJhTVa59fAmqevivaBE2mYDuI69Sv+a7K 9VuDY8H2PLdHRW6AayYjot6CNLFz/W6J1O8556Hb2+Vq6NwHP0VTUdZ1opuDsxe+RH5i HltOV+e6ysRGDytVIsbF2CnSioL4Bv8adTUjLR0dWmHOvH3Q2JK32N/tNL0fKsIlMHbw iwqVdyGXUtaLEPqkDsjYfYquO64UWVPY8n42XO8kCRDgRuc3TEgTSbr4WABp7XyYPb9m NEE6MQX+/IIM6GFcaGVbHvpuvYMU5XcKebM+RxToHK189KlMs1sLjfLQTeIy9j52S6xO cfYg== 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=Vpr4UkfkITbVwenQuXOLiUYPk25jQxZeT3XrerO234k=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=cx5fzw2Y/mBcJSq8wxCYcWKYuQI+vDx4baV38UHh+XzZylKPjcaCv7dpjDPUHjfSB8 b39LovZ0FEsd4rL5pBjGGSMLWjr9bMbzYT0ZlXGh4j4Hp1DivBqxTP8p2VzhT258IUpt sEd3cfoymQTRES+s0E8utsgNw8HFEFpB+2BsWQ/B4pR7eUmn+cBd82SDBj7lwjU2zN/w z3NT8v6upTMzIfOakeU4RITsLkP4GyNdtyUqJguXgnZxqUBibxTjXvvn8+jcC4v/6U92 IVy2vqc9PMEoh+yZUEnGMNJcv5D8sd0xLsog1XYSrfKjBPM0C2e1T+2JC2rMM+Fy0B60 +jyg==; 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=BR1fuEVu; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id pv28-20020a170907209c00b00a46bda1dbf5si629575ejb.567.2024.03.21.23.05.14; Thu, 21 Mar 2024 23:05:14 -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=@gmail.com header.s=20230601 header.b=BR1fuEVu; 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 15FBA68D598; Fri, 22 Mar 2024 08:05:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yb1-f170.google.com (mail-yb1-f170.google.com [209.85.219.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 776AC68D587 for ; Fri, 22 Mar 2024 08:05:05 +0200 (EET) Received: by mail-yb1-f170.google.com with SMTP id 3f1490d57ef6-dc74e33fe1bso1788685276.0 for ; Thu, 21 Mar 2024 23:05:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711087504; x=1711692304; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Dz6Q8SUggSG8TIsQVduhySdgzwY1aXe/jTuF7AXmKHQ=; b=BR1fuEVuFIKyBHmqXoz+vZiLKDmFUhsuM25gtf9E0YxgZu+uc76E0a91hURnYWAh1a pTTE74g4yT5zBK6n5X8Pqdfgs7OrsxkGRQSGpzceu5HzCFULjp8OJBXt8sMbX6vPw5DW R4D8WYhV3szVg51W1q+lCG9sCPaQsmi4tC6AXashxzYZboq/UuXqPC4daEoH7kRdSDoF hIwo8IF9oYbjpDAFhOThMpxoaCywpf/9kmQBDgdlj5uurTSlwtoL2MU1fjx3aH+ADO4v 3GAaM43t20HUEC0iW86ocivlH9npHDQN+BglN3wWUK5ZA698hfl7r7Zif2x9GsVkQpse dK7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711087504; x=1711692304; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Dz6Q8SUggSG8TIsQVduhySdgzwY1aXe/jTuF7AXmKHQ=; b=NjYDfo+NiP+9cHzrujh44tMdIFrjm2X0/LJgh9i2f0aEGqqGP8U2AC6ImYBkc0JZtK ct6iVhu/csbRRk8DjsyIrC7JlZJnLtpiuZ8mHZxfUEhQ9XRs+3RFAHoMAadWgsjl8CIM USna7CnfZ1HA3mGT7x9g1mx93YBUpI4dTPkHGqKJhP4jbG8bF1bND8VZJbtYlXYFFDix e5Rl4IXsJcRz15YsKuCDJjjdNA8UBYuJc/H/ioNfbvdaBlOxYSacsJWRR5gPXaFI9P+X Sa4bkZmYpPT8DWs8CKL01lQNRpQgYZVI9q+fulIbyf1DWb65fhMI2RW8qcwNHElJNNT+ mGkg== X-Gm-Message-State: AOJu0YxVJlSBSfw5fKIYCcUIhzmHgnRds4rwEyjCk7+HfOpcqzTfEOoX MQCqkDi7eEu1qY5DG4VwgRIjksH12dR3twlSj1dGcAF2UGO3oI5afKoILDSrimnpjAN4VYwgNiA qVmCWAc/1EURNheiooo55X7zURwvhz/RUUtw= X-Received: by 2002:a25:aa8a:0:b0:dc6:9d35:f9aa with SMTP id t10-20020a25aa8a000000b00dc69d35f9aamr1337333ybi.19.1711087503600; Thu, 21 Mar 2024 23:05:03 -0700 (PDT) MIME-Version: 1.0 From: flow gg Date: Fri, 22 Mar 2024 14:04:52 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 4/7] lavc/vp9dsp: R-V V mc bilin v 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: SIn8j64LeqlP From eb004dcf5cc6a3c379cb6cb7b8592afa65626c5c Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Thu, 21 Mar 2024 23:00:19 +0800 Subject: [PATCH 4/7] lavc/vp9dsp: R-V V mc bilin v C908: vp9_avg_bilin_4v_8bpp_c: 5.5 vp9_avg_bilin_4v_8bpp_rvv_i64: 2.2 vp9_avg_bilin_8v_8bpp_c: 20.7 vp9_avg_bilin_8v_8bpp_rvv_i64: 4.2 vp9_avg_bilin_16v_8bpp_c: 82.2 vp9_avg_bilin_16v_8bpp_rvv_i64: 9.0 vp9_avg_bilin_32v_8bpp_c: 342.5 vp9_avg_bilin_32v_8bpp_rvv_i64: 27.0 vp9_avg_bilin_64v_8bpp_c: 1319.2 vp9_avg_bilin_64v_8bpp_rvv_i64: 93.2 vp9_put_bilin_4v_8bpp_c: 4.7 vp9_put_bilin_4v_8bpp_rvv_i64: 1.7 vp9_put_bilin_8v_8bpp_c: 17.7 vp9_put_bilin_8v_8bpp_rvv_i64: 3.2 vp9_put_bilin_16v_8bpp_c: 69.2 vp9_put_bilin_16v_8bpp_rvv_i64: 7.5 vp9_put_bilin_32v_8bpp_c: 274.2 vp9_put_bilin_32v_8bpp_rvv_i64: 23.2 vp9_put_bilin_64v_8bpp_c: 1109.5 vp9_put_bilin_64v_8bpp_rvv_i64: 82.2 --- libavcodec/riscv/vp9_mc_rvv.S | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/libavcodec/riscv/vp9_mc_rvv.S b/libavcodec/riscv/vp9_mc_rvv.S index eacc174bc4..9458a2e82b 100644 --- a/libavcodec/riscv/vp9_mc_rvv.S +++ b/libavcodec/riscv/vp9_mc_rvv.S @@ -117,6 +117,49 @@ ret .endm +.macro bilin_v len type +.ifc \type,avg + csrwi vxrm, 0 +.endif +.ifc \len,4 + vsetivli zero, 4, e8, mf4, ta, ma +.elseif \len == 8 + vsetivli zero, 8, e8, mf2, ta, ma +.elseif \len == 16 + vsetivli zero, 16, e8, m1, ta, ma +.elseif \len == 32 + li t0, 32 + vsetvli zero, t0, e8, m2, ta, ma +.elseif \len == 64 + li t0, 64 + vsetvli zero, t0, e8, m4, ta, ma +.endif + li t4, 8 + neg t1, a6 +1: + add t2, a2, a3 + addi a4, a4, -1 + vle8.v v0, (a2) + vle8.v v8, (t2) +.ifc \type,avg + vle8.v v16, (a0) +.endif + vwmulu.vx v24, v8, a6 + vwmaccsu.vx v24, t1, v0 + vwadd.wx v24, v24, t4 + vnsra.wi v24, v24, 4 + vadd.vv v0, v24, v0 +.ifc \type,avg + vaaddu.vv v0, v0, v16 +.endif + vse8.v v0, (a0) + add a2, a2, a3 + add a0, a0, a1 + bnez a4, 1b + + ret +.endm + .irp len 64, 32, 16 func ff_copy\len\()_rvv, zve32x copy_avg \len copy @@ -358,6 +401,12 @@ endfunc func ff_avg_bilin_\len\()h_rvv, zve32x bilin_h \len avg endfunc +func ff_put_bilin_\len\()v_rvv, zve32x + bilin_v \len put +endfunc +func ff_avg_bilin_\len\()v_rvv, zve32x + bilin_v \len avg +endfunc .irp name regular sharp smooth .irp do put avg -- 2.44.0