From patchwork Tue Sep 27 20:04:27 2022 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: 38389 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp776646pzh; Tue, 27 Sep 2022 13:05:24 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4boLcjyFWXI/DPsVuRXoQOZZhNOPjys7lNBoCnPXoclXscPZNGm37XmIqd/OKP2ELJ8tBy X-Received: by 2002:a05:6402:1053:b0:455:27b7:f1 with SMTP id e19-20020a056402105300b0045527b700f1mr27578680edu.370.1664309123809; Tue, 27 Sep 2022 13:05:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664309123; cv=none; d=google.com; s=arc-20160816; b=og+amU+rQZXbzV+9mFwnMkNLbuWT4Ybs3zb23RsWMpzJiwEWT/o8gT/Jwuvv46sjTQ bU6OgJ7M4V1kCONkjQvNO3e1gjG/myW6+X2op1m/D2zr4l0C223fWlgpn/fZVvW0cbrz 3dzP+hd8Y6afeLlKmDmCOnLJmNI6LSPGap5HwQTrUqDvVjXWUd9IjK5oem982LVIwmY0 /Y4tJpCqRPEb90H+upQryDciRWCTGENpJpMscmod/WO2hqPGgF7rctxlJ50m0x61Xotr aW8D4EQVDysi0X9N3+bkfhWRYs6aJNeHcqh3Lk56NVQj6TtjyaW4v54Z1NbpUr7iaBy5 hFTg== 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:references:in-reply-to:message-id :date:to:from:delivered-to; bh=f/QpOJZdPm3/p857YEHnFwFkH7DwdAY5Mj77wPkGtjo=; b=Ld5YrHPmCb0+ddhUhttFYNBw/ibtUMMaJ4EPYFm0tNIA++xIqbxZH2p2qPQd+GilcQ Pvy0yUBYGB2sVOANuDKKCGM2qCH1NhvBwsf75xz8bvEVcU+WHEvEPcbTwoR8SXIpWaJg IYwGp5edPMX0zTyro21laYFf1BLx5s7pxCuJUZmNzt5FrZA4ARp73HHOvq0Wj0+JCgsv uvscPjrwVU3pKuXHoNwUDYqluAT+YAzuMtQCQ9bA2PQ/NyYY6zatKv0e8TzlfladINeO C59FrdYe9TBuOwweew+zt5RN0kfDK72uohcnXP1FMl2Rul8/dnKdYSs0IttcBcnEoHKP yu0Q== 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 ho44-20020a1709070eac00b00781b5f92182si2772162ejc.38.2022.09.27.13.05.23; Tue, 27 Sep 2022 13:05:23 -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; 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 1C3E168BAB7; Tue, 27 Sep 2022 23:04:42 +0300 (EEST) 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 7C5D968BB15 for ; Tue, 27 Sep 2022 23:04:33 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id F29B9C00B3 for ; Tue, 27 Sep 2022 23:04:28 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Tue, 27 Sep 2022 23:04:27 +0300 Message-Id: <20220927200427.11811-7-remi@remlab.net> X-Mailer: git-send-email 2.37.2 In-Reply-To: <2846208.e9J7NaK4W3@basile.remlab.net> References: <2846208.e9J7NaK4W3@basile.remlab.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 7/7] lavc/pixblockdsp: RISC-V diff_pixels & diff_pixels_unaligned 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: SwMtLz2bs5Fm From: RĂ©mi Denis-Courmont --- libavcodec/riscv/pixblockdsp_init.c | 4 ++++ libavcodec/riscv/pixblockdsp_rvv.S | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libavcodec/riscv/pixblockdsp_init.c b/libavcodec/riscv/pixblockdsp_init.c index bbda381c12..aa39a8a665 100644 --- a/libavcodec/riscv/pixblockdsp_init.c +++ b/libavcodec/riscv/pixblockdsp_init.c @@ -36,6 +36,8 @@ void ff_get_pixels_8_rvv(int16_t *block, const uint8_t *pixels, ptrdiff_t stride); void ff_get_pixels_16_rvv(int16_t *block, const uint8_t *pixels, ptrdiff_t stride); +void ff_diff_pixels_rvv(int16_t *block, const uint8_t *s1, const uint8_t *s2, + ptrdiff_t stride); av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c, AVCodecContext *avctx, @@ -56,6 +58,8 @@ av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c, c->get_pixels_unaligned = c->get_pixels = ff_get_pixels_16_rvv; else c->get_pixels_unaligned = c->get_pixels = ff_get_pixels_8_rvv; + + c->diff_pixels_unaligned = c->diff_pixels = ff_diff_pixels_rvv; } #endif } diff --git a/libavcodec/riscv/pixblockdsp_rvv.S b/libavcodec/riscv/pixblockdsp_rvv.S index 5bf83ebe5e..62cdfe22b1 100644 --- a/libavcodec/riscv/pixblockdsp_rvv.S +++ b/libavcodec/riscv/pixblockdsp_rvv.S @@ -42,3 +42,19 @@ func ff_get_pixels_16_rvv, zve32x vsseg8e16.v v0, (a0) ret endfunc + +func ff_diff_pixels_rvv, zve32x + vsetivli zero, 8, e8, mf2, ta, ma + vlsseg8e8.v v16, (a1), a3 + vlsseg8e8.v v24, (a2), a3 + vwsubu.vv v8, v16, v24 + vwsubu.vv v9, v17, v25 + vwsubu.vv v10, v18, v26 + vwsubu.vv v11, v19, v27 + vwsubu.vv v12, v20, v28 + vwsubu.vv v13, v21, v29 + vwsubu.vv v14, v22, v30 + vwsubu.vv v15, v23, v31 + vsseg8e16.v v8, (a0) + ret +endfunc