From patchwork Wed Jan 31 12:01:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45933 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:8786:b0:199:de12:6fa6 with SMTP id ph6csp2775552pzb; Wed, 31 Jan 2024 04:01:32 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU5XFUPq3pKXPzZSV0QWZXgjcESVlJ08QnxwluZHFMHno6dItIqshXZETu+Ke3LO5uLrs/jttc840kJqAON95runjs9EHkFY4bVUQ== X-Google-Smtp-Source: AGHT+IE/1w/frdZhvRybkYkiEQfstfU5lBH5gkZGvNXetoHtf9mqaU1RXCY18cRWxadg4zz3Sa5H X-Received: by 2002:a05:6402:349:b0:55f:5a36:a34c with SMTP id r9-20020a056402034900b0055f5a36a34cmr914076edw.4.1706702492540; Wed, 31 Jan 2024 04:01:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1706702492; cv=none; d=google.com; s=arc-20160816; b=U04Sh3QNX/uHxldqeLLWixtaQLbDoMwa1FiJTPbi+6wjSM+dcI7dNAWluLyhqUTB/0 NL+6DANgTwmbrCqFuKQyU5wBMIDhzCj5+SilWOFP5ykndd6msz0z08C4Eg+47k+muDmb KHttCIS4vmSAaHn3qd6VTDZv+OgwRwiXuQVVLlH8IeVdGCj3KJDCAahWR2N0bQCY8X9k OAVCleWq+TK6/QwJdPFdjHbwk/sJ8ej2x5kLM0Ox6DnFUln6r/sfqZxAyEvL/qexD6nx bMF1EtX644gNGMKpcbBU1fwKWljcvjdd8vcp9QzAmXIwKHfVYsl1x3uXX2wvNHcaUzqh Y/Hw== 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=60lm36FC3E5D9CcD2aJ19w+o4bNgN9bFFzRNjr/F5Rk=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=vA4cNrDd9cRJKbwtOoEHg5AYV9Kuvm4cvalWpfy2x5Pjwmypj03eLF27dnEa8UEldf xmYbLftCujkYTNAv3mNTSdwGn78ls8SKrSQ08wiadvvPMQgfH9b5aeV2CrqNP9wtrSj4 5g4lxULYIV+lyQ6mxgAvjS0SQsGEtu7gNhrqKwFXEnutAqWHFYMmpfe/8znEcLcbAtun gNbCe2YRuGHovxs+99+n+SkXzOBBuORj5boV+vy2VYKfE65LyxhfbeGtpo2QX/BLaEDi kx0OlTIaQGvk6FL2p+bNAiwjHa+uaj7Dvc3+pE253QBkDUxvV9wpjg+tSON119xFghFr LxxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=BqOjrFor; 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 q6-20020a50cc86000000b0055f9b95bd23si34894edi.309.2024.01.31.04.01.27; Wed, 31 Jan 2024 04:01:32 -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=BqOjrFor; 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 396BE68CBF7; Wed, 31 Jan 2024 14:01:24 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A669068C25D for ; Wed, 31 Jan 2024 14:01:17 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id 6a1803df08f44-68c3d51ecebso28102626d6.3 for ; Wed, 31 Jan 2024 04:01:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706702476; x=1707307276; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=GvcowzmBnYkTyGVx9ERb4K0GKNKJ93jEEaglIzTBBEY=; b=BqOjrForbXoEgk+ivgb93bV5LOVrc81NjCRDQW9VZh8KUQ5FhPfq2FuluDGV5oyqhA RGuEkZUDPA9Ly/52e7oE8CRHAfxZ+KNNK9gxsmR9Kt8PZ1YMOkkN2xsln+R6SVvz6yUU O8+MbqdqZmuNozm8V1wcRAd5HV/CF5ycD47R6fRQe25qNoGkEHFu3I8kAaoUEHBzWG/E Z7FqeEO8F2BwQU0L0Sh28zYoWBcm39RCLk0tBJYe31miFpC9qTcbrJYmpLEHipDL0i9J V8Z/jWFzfxh9edez0LELg/UCSlG5WqtBk8kpUyFRJbaL91eEjoF0YMhSMqlQAR9sDfPT E5Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706702476; x=1707307276; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=GvcowzmBnYkTyGVx9ERb4K0GKNKJ93jEEaglIzTBBEY=; b=boXD3hE+7Llcona/DUje65cnbU/R+JA3azzEP3B9ubyHcXFZLyfO9vDIyfAewG7X5N iGb/4YBM+H2NB4h4w2M1daUMDjHvSnQnYAuYlnCBstFfOb/7vrAL389428vy6jxUdOAt Zg0rwzZ9m8RjwD766J982qK6pwczZ40VgZaQwITDesCEHi1Ax0vcnj6yyPfwOnQhIo1p h59urx1JHX/o1jTHpd68EsA4EhvpK1U7YUNJ/VN7WICCE9dkjK7A60hw7KgQTQIF1tDL yblZCMEv00U1pI/R5meTln8YhS9Q9t6OoO/3x+FkYYt3jamYI1xxgNsHWRY3h7iXU9qI WnGw== X-Gm-Message-State: AOJu0YyIMItLJR4iZYBxMO6c4yv+Vuu+vNulkGBqKQnhnuy3Avr50TdY vuTK3Vn5IDFIYYOYFJmjiH+OzER8TxACSVAZx/UIW01bGYjdNc7DEeSbjUYwQPtkfnzN6NnTl27 yAJw3YpzbupS34l+b5MlJXyzVcFv0ac2/ X-Received: by 2002:a05:6214:e47:b0:68c:5453:402f with SMTP id o7-20020a0562140e4700b0068c5453402fmr1116104qvc.51.1706702476041; Wed, 31 Jan 2024 04:01:16 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Wed, 31 Jan 2024 20:01:04 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 4/4] lavc/rv34dsp: R-V V rv34_idct_dc_add 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: nfyJRGJmdzVq From aec115a7179f23642c2b1c1a1cae3253a40c38fc Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Wed, 31 Jan 2024 19:04:11 +0800 Subject: [PATCH 4/4] lavc/rv34dsp: R-V V rv34_idct_dc_add C908: rv34_idct_dc_add_c: 134.7 rv34_idct_dc_add_rvv_i32: 45.5 --- libavcodec/riscv/rv34dsp_init.c | 2 ++ libavcodec/riscv/rv34dsp_rvv.S | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/libavcodec/riscv/rv34dsp_init.c b/libavcodec/riscv/rv34dsp_init.c index 852c8ad9a8..7dcadc7e43 100644 --- a/libavcodec/riscv/rv34dsp_init.c +++ b/libavcodec/riscv/rv34dsp_init.c @@ -26,6 +26,7 @@ #include "libavcodec/rv34dsp.h" void ff_rv34_inv_transform_dc_rvv(int16_t *block); +void ff_rv34_idct_dc_add_rvv(uint8_t *dst, ptrdiff_t stride, int dc); av_cold void ff_rv34dsp_init_riscv(RV34DSPContext *c) { @@ -34,6 +35,7 @@ av_cold void ff_rv34dsp_init_riscv(RV34DSPContext *c) if (flags & AV_CPU_FLAG_RVV_I32 && ff_get_rv_vlenb() >= 16) { c->rv34_inv_transform_dc = ff_rv34_inv_transform_dc_rvv; + c->rv34_idct_dc_add = ff_rv34_idct_dc_add_rvv; } #endif } diff --git a/libavcodec/riscv/rv34dsp_rvv.S b/libavcodec/riscv/rv34dsp_rvv.S index acf5b0c3e8..c73b9c4555 100644 --- a/libavcodec/riscv/rv34dsp_rvv.S +++ b/libavcodec/riscv/rv34dsp_rvv.S @@ -36,3 +36,23 @@ func ff_rv34_inv_transform_dc_rvv, zve32x ret endfunc + +func ff_rv34_idct_dc_add_rvv, zve32x + vsetivli zero, 4, e8, mf4, ta, ma + vlse32.v v0, (a0), a1 + li t1, 169 + mulw t1, t1, a2 + li a2, 255 + addiw t1, t1, 512 + sraiw t1, t1, 10 + vsetivli zero, 4*4, e16, m2, ta, ma + vzext.vf2 v2, v0 + vadd.vx v2, v2, t1 + vmax.vx v2, v2, zero + vsetvli zero, zero, e8, m1, ta, ma + vnclipu.wi v0, v2, 0 + vsetivli zero, 4, e8, mf4, ta, ma + vsse32.v v0, (a0), a1 + + ret +endfunc -- 2.43.0