From patchwork Tue Jan 16 16:16:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45617 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:8199:b0:199:de12:6fa6 with SMTP id pd25csp2091561pzb; Tue, 16 Jan 2024 08:16:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IHjALvqII9Dt3f3ZI7vZfornNd/1pmSvBAv6mJHZRzCbi4nz8+6n0L2U1Gr8ni06bTdtzMT X-Received: by 2002:a17:907:2089:b0:a29:906e:b8f4 with SMTP id pv9-20020a170907208900b00a29906eb8f4mr2187243ejb.46.1705421807408; Tue, 16 Jan 2024 08:16:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1705421807; cv=none; d=google.com; s=arc-20160816; b=c35H8x/llic8/eGysZinLlQkenjgOBpApvxEiOI2Z5rbEHf1ISPDjTcXVIWGrQqjmN v/M9ojGewCcS6O1UGm01kFE8kbcZ92+9bFkc1lHGCXk/uvG4viRm9HTS9dRt3aX9RyVK gJ+GsS/RyQxe8+f45NizHrn7UnKcopTcbYW54sdWUi3jmonHZ2u934GBpW4lpaFOlFlV MZwaZ+TyJz9ayzUtHkLEltme8Q1qcP5JlCgti0PDYOKtyjcIM9h1NB3B8dZZKu7wmwi2 Ty8ogXGuZCc2cpx5UV0uNPV6qWMCGfchukkXXp313wX4jQ8R6mho7I0aTwrOzOH3pCAt Z8Bw== 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=q3kfTUNN7nWAFRp5z3/mDZ0sqIAFUiolINF4yroesIg=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=hAZzBQR4t9/zSPsbqMBRqgSOLokYjfVpt4bLmpZzOwj5urKMh7LTSYeTlWZHUC5EeQ daQA1Qy2qA2mI8mHgNY2KFSLZEsx2vpY6nVF1R9GfwyXxfiY3wWF24f+oA8+0n26mf/h 6KoEzoJurbRzxaQSFJV7bE3OxGzZBxUnh9vC89JdlcK/ecKj4j2KjIsmuSG/OjoTRCbt suVoSXGK2p6mu1zwrXHx6tIXYLl6/t/ABF4y10IyZKL+I+VQjJhq6ggPscT7AAgURdVD 3QyFpauUfBXM6xDqzX02gUw0GnTaIfg27BrFPS82hkhQQ7GFvAgs8Zpu/lZOONg4g03p 5Jig== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=JTAvLhru; 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 a8-20020a170906684800b00a2c3d26de57si4890014ejs.50.2024.01.16.08.16.34; Tue, 16 Jan 2024 08:16:47 -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=JTAvLhru; 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 05D4168D057; Tue, 16 Jan 2024 18:16:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 91D2968D023 for ; Tue, 16 Jan 2024 18:16:24 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-67f5c0be04cso67806766d6.0 for ; Tue, 16 Jan 2024 08:16:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705421783; x=1706026583; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=m7+/WdAgwH/Lcqt2TYM9GOOIAPEgfOu26FHF2LigT8I=; b=JTAvLhruf1Shsz0jK/Ny65+4WCK0KKA/95ZhmTfDF+uw1OSPYDwlvWdeUhUEwl1rFC 4EJe+jJs9QPynH5OhE8f0Rpp/v6GE/17s2zMVuMxtbLrGhYt6BS45qKK6Y4XC/v3HCUu rVcLic35ZEV4/o+0CwqCwwDXKf7p0mBrCFEoASMkn8lYUxsMNlBuOHq4btsCfbFk0FXO Ntb4rTlnvXLlNUWL5vapgVaY3SkjXbxC9xxsXGqmJzz4nvPi7XZth8hKint1kwk0klew F7IycdF2aRDICdOnmLQ/SXqlpQWh4dPzzyQN4ndncjJT21QYrbJmRiipDg0yIXyyCQ5b 6HLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705421783; x=1706026583; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=m7+/WdAgwH/Lcqt2TYM9GOOIAPEgfOu26FHF2LigT8I=; b=k7+SHi83pAjsMJsJERR8pv8fpUp4y+MWlNsuI8JORJrQvsUBwLQSLerrgJ+i2KO60F abjgvY1RoiV4OYyA6JlqDfb3Fr0HkFSC8LG5rN9Y5yb24eT7QvQIQtAFGEguBcJcvyJe 85SWUAKNPQQ6YSV1GdMUIdI1NJMqO3OmJnVfKJFVU2Q45wFP5qwlPMHIpne+9tyfS0xV k0P6UsCrQVLj8dZFkZCnUTrg3tBO3EjFqZaN6fs7dfl/qmPA+AkWIH690qjLJteQjzTd iZB+6Alna+NRGO2GNw3Q0LfYwHp8LCFT6wzyUuJxdpPeKK+yb/V+aktMPpEtgXHJDFgA s0aA== X-Gm-Message-State: AOJu0Yz0P9hFBrVMGJ9lhUZtL9AUxbcdcmmLrHxlurDRXxqeQ0bk/RL3 PBXxaXwrRYGOJTFf2+jWImQDEPHf1kTyPZdMfeGvpXGB X-Received: by 2002:a05:6214:2689:b0:681:5959:ed3d with SMTP id gm9-20020a056214268900b006815959ed3dmr4712536qvb.41.1705421783304; Tue, 16 Jan 2024 08:16:23 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Wed, 17 Jan 2024 00:16:12 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 3/3] lavc/h264pred: R-V V pred16x16_dc_8 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: Zo7UpEhDTLQj From 8c5fdbfea42e9ad6ba6e1df5e4ea3c583d59537a Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Tue, 16 Jan 2024 23:57:53 +0800 Subject: [PATCH 3/3] lavc/h264pred: R-V V pred16x16_dc_8 C908 pred16x16_dc_8_c: 2.5 pred16x16_dc_8_rvv_i32: 1.7 --- libavcodec/riscv/h264pred_init.c | 2 ++ libavcodec/riscv/h264pred_rvv.S | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/libavcodec/riscv/h264pred_init.c b/libavcodec/riscv/h264pred_init.c index 8665bc729e..e8d5b7dd8f 100644 --- a/libavcodec/riscv/h264pred_init.c +++ b/libavcodec/riscv/h264pred_init.c @@ -26,6 +26,7 @@ void ff_pred16x16_vertical_8_rvv(uint8_t *src, ptrdiff_t stride); void ff_pred16x16_horizontal_8_rvv(uint8_t *src, ptrdiff_t stride); +void ff_pred16x16_dc_8_rvv(uint8_t *src, ptrdiff_t stride); av_cold void ff_h264_pred_init_riscv(H264PredContext *h, int codec_id, const int bit_depth, @@ -38,6 +39,7 @@ av_cold void ff_h264_pred_init_riscv(H264PredContext *h, int codec_id, if (flags & AV_CPU_FLAG_RVV_I32) { h->pred16x16[VERT_PRED8x8] = ff_pred16x16_vertical_8_rvv; h->pred16x16[HOR_PRED8x8] = ff_pred16x16_horizontal_8_rvv; + h->pred16x16[DC_PRED8x8] = ff_pred16x16_dc_8_rvv; } #endif } diff --git a/libavcodec/riscv/h264pred_rvv.S b/libavcodec/riscv/h264pred_rvv.S index ba1e9045e1..1492991ef4 100644 --- a/libavcodec/riscv/h264pred_rvv.S +++ b/libavcodec/riscv/h264pred_rvv.S @@ -48,3 +48,31 @@ func ff_pred16x16_horizontal_8_rvv, zve32x ret endfunc + +func ff_pred16x16_dc_8_rvv, zve32x + vsetivli zero, 1, e16, m1, ta, ma + vmv.v.x v16, zero + + vsetivli zero, 16, e8, m1, ta, ma + sub t2, a0, a1 + vle8.v v8, (t2) + vwredsumu.vs v16, v8, v16 + addi t2, a0, -1 + vlse8.v v8, (t2), a1 + vwredsumu.vs v16, v8, v16 + vsetivli zero, 1, e16, m1, ta, ma + vmv.x.s t1, v16 + addi t1, t1, 16 + srai t1, t1, 5 + vsetivli zero, 16, e8, m1, ta, ma + vmv.v.x v0, t1 + vsetivli zero, 4, e8, mf4, ta, ma + li t0, 16 +1: + vse32.v v0, (a0) + addi t0, t0, -1 + add a0, a0, a1 + bnez t0, 1b + + ret +endfunc -- 2.43.0