From patchwork Fri Feb 23 14:46:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 46497 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:26a3:b0:19e:cdac:8cce with SMTP id h35csp1000050pze; Fri, 23 Feb 2024 06:46:24 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUgvywrFlvFiz9ffwoNC/sNr6glAdEV9pfD/VjuzR7Py69+U+d3Nx4/x1+LAJ//G+/ND99CNEpq6OPLaDddY8Mcq0w4AorE4y+jGQ== X-Google-Smtp-Source: AGHT+IEZ5r3+azma/TjOG+mBAtp5pt+K6vI/eiyclPc5eC22mRBkytzPb9dmV+Gb/hLbJlxktfqp X-Received: by 2002:a17:907:788b:b0:a3f:7ad0:2b00 with SMTP id ku11-20020a170907788b00b00a3f7ad02b00mr24901ejc.2.1708699583987; Fri, 23 Feb 2024 06:46:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1708699583; cv=none; d=google.com; s=arc-20160816; b=qfEbhAytl9L9tezbm9wGPRO+jcPB/jXiswiex62ZZd5mE5/J5/SDTRrQTAgMPKLlj0 xMpRxPcs60NIHcP5+VppIInqeH/+Fvg0LgkllPcylHns+Ihn+lPb2YHWWnzcrD+rfq89 N1R01UVaXa/5Y+IJovMBloCQoIsUmihxjp5WA/NUZcNEwbhwIE6xaZFPBt31nEwHfHMh 1uFAFjsUoBQqvQXHRtEQHkECPzq6wxw0NZ3jO6w0QCcWxxit84q/wYGSwMab5/PWr2tj fayIOIYSKhMHXfHFw+0JDHz76Git/nHT/vNmOVdOJL/W8BnLAJA8Dc6MuYruNKDONWar tp2g== 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=IHj8COc97QaAdxDGFUHWeQ7HhKg2ht7GzUS5aufZHgA=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=e78ikvPYReomdmSM4z94rxC9+dDMfapep58b8VLdsnktG+NVZ3AAbUBnXA0NqA0pp9 V5TSaW/9ZCHEFoSUe0bSM/Y2soIPGHjG/XdvXOjLjzUrRbjy/s3kNrD3PrMzDqGRA+b5 amP3/BUtwqZWCZRen1vwhtQIK81C597JQrcwd3R86HTsabPsxDcyniAtd3MCAowMH5pf 77UCvQidxcKMdaACSASDnLY//ajlD89Ejk9LUCJxe0jNx+udWcc7DFjYFvwhmzAg8gkR qOnYxdodgbHeHCdUhC6GKMTKNcR8BHsCfgEGoC3+UojU+g8+1dA0Vwq+me7tyKGbDRnt go4g==; 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=g8GzdvR0; 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 m13-20020a1709062acd00b00a3e4094408dsi5661698eje.356.2024.02.23.06.46.23; Fri, 23 Feb 2024 06:46:23 -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=g8GzdvR0; 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 089C368C8AE; Fri, 23 Feb 2024 16:46:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4454168BDB6 for ; Fri, 23 Feb 2024 16:46:14 +0200 (EET) Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-6869233d472so4691076d6.2 for ; Fri, 23 Feb 2024 06:46:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708699573; x=1709304373; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=IN2WHnSHuw6+SF6uyjusBTO9+CrQmI82oFmEKNRE+go=; b=g8GzdvR09w4dzKnIcOfv989IBnK3gMMUZK00Bm235XDR7W62egpo+KZ0ecR6KbGvsW dLOXpauuxv9TYtQ+dod8yFFBqxsH9GTnOTQm2dP9FxUboK/uE0QSfN5A6DJ57WCVv8bw SDrEtIWgXw2WH0yqinqnE0MrfyM4uBmfIePZDFrvXd2dPaYPgrQ7T3luTMMsuRiCctB5 1to4irmeqiUUCf92C/Zoh1n5xmmr1rKRfHLNsSArgZxaVhUZchNQYtyq7TP6UGz+zvbt xpO8GugnPgMi4/NQVWBSUoQDyyJl66SATyuzi/R+CIHrgzWX6ZZntQkaZYcfjQDcli7C ZkRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708699573; x=1709304373; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=IN2WHnSHuw6+SF6uyjusBTO9+CrQmI82oFmEKNRE+go=; b=uCBRHbmuiGyshs0qSDMy0sz1xognULUig6DoXhwTkvrHQwOSzj7gOm56DwcezrST5n JskGMBZwzPORBdOJuHsJ3/pG1K8q3J+2GEa86p7/wOK6DEKfuxvqk5C64HsjZ7M/f7DH NYuepqaNFK5W791xmV0shdu+OIqEpKUK0J5N20PDwPJZwDG/ICet6O42aAKKamEhq59i Q4/uUxH3nEShNdYUvaYsbl8XLr9C3shNJgnbVuwzg43/8jqH9/NIIi0WXxVQuTCwP7/Q OKkEK2+GeWiFiLjrTpY6hPfrxcv1En7nuMG9BtnJz9U30lvXf7ovmFrAhbDnVGK2tAZ2 2cLg== X-Gm-Message-State: AOJu0YyANL+A5cFz0PTYc98U3l3NY+Ckep3qT63Zeqg5zH8/blWVLjWI Lo4kV0c1GXQunu0sBm0YFK4Eo0w6S36MF0TLEc7veOK+HQmEZF++WPucYFaej8BjvnmUZuDPWcu Eks2W/4m2HPXdRPQkAbX6ZaWSt+GNyE8d/0s= X-Received: by 2002:a05:6214:268d:b0:68f:5ab1:a135 with SMTP id gm13-20020a056214268d00b0068f5ab1a135mr2538710qvb.47.1708699572895; Fri, 23 Feb 2024 06:46:12 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Fri, 23 Feb 2024 22:46:01 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 2/3] lavc/vp8dsp: R-V V put_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: Vw97zA20YJzw From 488d0cd6645b2c6936c3298e010615facb6d0bd0 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Fri, 23 Feb 2024 22:35:01 +0800 Subject: [PATCH 2/3] lavc/vp8dsp: R-V V put_bilin_v C908: vp8_put_bilin4_v_c: 383.5 vp8_put_bilin4_v_rvv_i32: 139.7 vp8_put_bilin8_v_c: 1455.7 vp8_put_bilin8_v_rvv_i32: 299.7 vp8_put_bilin16_v_c: 2863.7 vp8_put_bilin16_v_rvv_i32: 347.7 --- libavcodec/riscv/vp8dsp_init.c | 7 +++++++ libavcodec/riscv/vp8dsp_rvv.S | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/libavcodec/riscv/vp8dsp_init.c b/libavcodec/riscv/vp8dsp_init.c index 32cb4893a4..10e1498d01 100644 --- a/libavcodec/riscv/vp8dsp_init.c +++ b/libavcodec/riscv/vp8dsp_init.c @@ -58,6 +58,13 @@ av_cold void ff_vp78dsp_init_riscv(VP8DSPContext *c) c->put_vp8_bilinear_pixels_tab[1][0][2] = ff_put_vp8_bilin8_h_rvv; c->put_vp8_bilinear_pixels_tab[2][0][1] = ff_put_vp8_bilin4_h_rvv; c->put_vp8_bilinear_pixels_tab[2][0][2] = ff_put_vp8_bilin4_h_rvv; + + c->put_vp8_bilinear_pixels_tab[0][1][0] = ff_put_vp8_bilin16_v_rvv; + c->put_vp8_bilinear_pixels_tab[0][2][0] = ff_put_vp8_bilin16_v_rvv; + c->put_vp8_bilinear_pixels_tab[1][1][0] = ff_put_vp8_bilin8_v_rvv; + c->put_vp8_bilinear_pixels_tab[1][2][0] = ff_put_vp8_bilin8_v_rvv; + c->put_vp8_bilinear_pixels_tab[2][1][0] = ff_put_vp8_bilin4_v_rvv; + c->put_vp8_bilinear_pixels_tab[2][2][0] = ff_put_vp8_bilin4_v_rvv; } #endif } diff --git a/libavcodec/riscv/vp8dsp_rvv.S b/libavcodec/riscv/vp8dsp_rvv.S index c8d265e516..a58c197ba1 100644 --- a/libavcodec/riscv/vp8dsp_rvv.S +++ b/libavcodec/riscv/vp8dsp_rvv.S @@ -152,3 +152,39 @@ endfunc func ff_put_vp8_bilin4_h_rvv, zve32x put_vp8_bilin_h 4 endfunc + +.macro put_vp8_bilin_v + li t1, 8 + li t4, 4 + sub t1, t1, a6 +1: + add t2, a2, a3 + addi a4, a4, -1 + vle8.v v0, (a2) + vle8.v v2, (t2) + vwmulu.vx v28, v0, t1 + vwmaccu.vx v28, a6, v2 + vwaddu.wx v24, v28, t4 + vnsra.wi v0, v24, 3 + vse8.v v0, (a0) + add a2, a2, a3 + add a0, a0, a1 + bnez a4, 1b + + ret +.endm + +func ff_put_vp8_bilin16_v_rvv, zve32x + vsetivli zero, 16, e8, m1, ta, ma + put_vp8_bilin_v +endfunc + +func ff_put_vp8_bilin8_v_rvv, zve32x + vsetivli zero, 8, e8, mf2, ta, ma + put_vp8_bilin_v +endfunc + +func ff_put_vp8_bilin4_v_rvv, zve32x + vsetivli zero, 4, e8, mf4, ta, ma + put_vp8_bilin_v +endfunc -- 2.43.2