From patchwork Tue Sep 27 20:04:26 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: 38390 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp776734pzh; Tue, 27 Sep 2022 13:05:32 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7O7FT+kqXoss+j2SvNhKoC81zlL9H2vB7G6JQrziX5xkZ42XceGmj0NAH+fOBxXEWVYH3o X-Received: by 2002:a17:907:6eaa:b0:783:84e0:3823 with SMTP id sh42-20020a1709076eaa00b0078384e03823mr10336715ejc.601.1664309132681; Tue, 27 Sep 2022 13:05:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664309132; cv=none; d=google.com; s=arc-20160816; b=imWb+Fs6rTRPAcvyXDbB6kjlcUH30cioCWrSLZzh7d+YUQtRBq5Qzh0JTnecQAGPUg 6Uxm5/4wliiy7+Gpn1wMmjGFDyJgZidZEHHIdhNTlUeeE7xFywwdjbPG487W9lCj+SwR oJBQ6L6N1IkEQqYn9+KzheIvplC1mUiQLRNZi6isvmWPPPOPifEvU8ebnAEtiF9wMzCt nCeR6Dr/6/G3fPwrfnUNKYZH4LLbtRmw2vOSh2FS6uaAiVA+urWkjNSuZgKdBa4tdyL0 79p/WtuE8oTg8KUQKiS/flmProE4y+sJvBGlbQAfqcjfjsMsy/5vly/luUSL4S85ZZ2T +baQ== 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=1w4rPw75Vum14snVa7i0LyQzlxmMzxd/Ut5qyiYrg2s=; b=mAAsok9y+FlcIY+M4rZG65yx8EJgLhl2rGOUIT7ggQFBe5svbm+HOsJSv1Fhe6WjHp z9tKTfivkrC0rR5xN9eflu9zK1omJAwDE4ZtCEp8rAasYleR/g9bzGiQIaujHLGnlj0Z wkJcQ2cWX1qLG9ZaukKAg3BPqV0wR3yLcpKjMFcNqAWOAuErFFsRDJdLooI+/IJnyg8d MEFltbuHS0lhS3wipKBdkb1akdYtd4Ie5jYk0TbsfZQZhYBYxT/s4AIgNRJMjIiHTnf7 rNByWs5GstIa+NLyh8pvgyli+tr0TUz/I4ko5RNnLKRnBCHTJ9QOY1Ir+3RpSZ0V5HE8 ObSA== 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 hd16-20020a170907969000b0077fad1e7d16si2786447ejc.371.2022.09.27.13.05.32; Tue, 27 Sep 2022 13:05:32 -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 084F668BB2A; Tue, 27 Sep 2022 23:04:43 +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 7A4B068BB14 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 C9D23C00B2 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:26 +0300 Message-Id: <20220927200427.11811-6-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 6/7] lavc/pixblockdsp: RISC-V V 16-bit get_pixels & get_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: /NqnResJzEr1 From: RĂ©mi Denis-Courmont --- libavcodec/riscv/pixblockdsp_init.c | 6 +++++- libavcodec/riscv/pixblockdsp_rvv.S | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libavcodec/riscv/pixblockdsp_init.c b/libavcodec/riscv/pixblockdsp_init.c index 69dbd18918..bbda381c12 100644 --- a/libavcodec/riscv/pixblockdsp_init.c +++ b/libavcodec/riscv/pixblockdsp_init.c @@ -34,6 +34,8 @@ void ff_get_pixels_16_rvi(int16_t *block, const uint8_t *pixels, 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); av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c, AVCodecContext *avctx, @@ -50,7 +52,9 @@ av_cold void ff_pixblockdsp_init_riscv(PixblockDSPContext *c, #if HAVE_RVV if ((cpu_flags & AV_CPU_FLAG_RVV_I32) && ff_get_rv_vlenb() >= 16) { - if (!high_bit_depth) + if (high_bit_depth) + 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; } #endif diff --git a/libavcodec/riscv/pixblockdsp_rvv.S b/libavcodec/riscv/pixblockdsp_rvv.S index b7c74b88b5..5bf83ebe5e 100644 --- a/libavcodec/riscv/pixblockdsp_rvv.S +++ b/libavcodec/riscv/pixblockdsp_rvv.S @@ -35,3 +35,10 @@ func ff_get_pixels_8_rvv, zve32x vsseg8e16.v v8, (a0) ret endfunc + +func ff_get_pixels_16_rvv, zve32x + vsetivli zero, 8, e16, m1, ta, ma + vlsseg8e16.v v0, (a1), a2 + vsseg8e16.v v0, (a0) + ret +endfunc