From patchwork Sat Oct 1 12:32:14 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: 34826 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp251805pzh; Sat, 1 Oct 2022 05:32:30 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6CExfant7YKqhoKQ3dqeVh4es731U4xivJv5S9s6e4A6UnE1dtCa3P57tlmeHao3Vrw0Tp X-Received: by 2002:a17:906:8448:b0:77b:e6d0:58a5 with SMTP id e8-20020a170906844800b0077be6d058a5mr9872561ejy.347.1664627550122; Sat, 01 Oct 2022 05:32:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664627550; cv=none; d=google.com; s=arc-20160816; b=AqrcAOFg61Kz+KJSFtujTres1oTBljFxhOwh+NlKAj9QzWv+0qH3ICaq7P+l0VR28I 0zgePU+P4OR/eFNLO1gH7T7+sQCG6l8eK3zc05RUROckINHOpr1k4PXonYVgk/P1k3t3 dtkGShnFx/GUv3G/nqx8FScU82QvM2fOgd0rYJRQvx5DV3aXLAYu34uIgNWQBu37vq+l uwBGeomU2vwEDbeBj1r5t0q4AJDQepzfgAC1nbwW4T1t/ai1YpuQ6Fe1mw/Pq3onW+jt 4gRLa1LBilxdCB9xAZNj47tFhU9Q3rWV6P6mTXW/QBhJQx+YXMYuN3Ekngyg7rzhUypl +zRw== 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:organization:message-id:date:to :from:delivered-to; bh=R0rL21FJU7Jbe67ycLjmNGdZLVFcl+/qYIPAWgPSgOk=; b=kr9mKGjxOINhPgyeO/DQn0LnSPLR4zPCTZrJ8qqSV0iuxKfxZRO9ly3Y7jdByR/Or1 BCPcFrg+yyiTnIDzZBh0xYbaBRU0w+7LyfJLLlMpUFZd2hufRPdv4blH+F0cVAAFY/Me /fPv9ITOt9vMfv9drZZ6KnrXgpYUNy/KRorjJATChs4shsUEi7icjdgSvIYyEnA8K+3j T844OaQADriHxKBubDp+Ynz+n4PB+/XDMZfKh/zK5SObR191OnvvoFL0IsFRIQ978ANj 312Z4zIxgBO+Frpx1c0TmMNRGsZt/IseWGrsG2n28ep2srqU5saC1ERSH3neAcBn7QfJ usTg== 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 h7-20020a05640250c700b0045723aa55d2si4573368edb.453.2022.10.01.05.32.25; Sat, 01 Oct 2022 05:32:30 -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 03FBC68BAE5; Sat, 1 Oct 2022 15:32:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (unknown [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 96BC468B2A8 for ; Sat, 1 Oct 2022 15:32:15 +0300 (EEST) Received: from ursule.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 05DE9C0003 for ; Sat, 1 Oct 2022 15:32:14 +0300 (EEST) Received: from basile.remlab.net ([2001:14ba:a080:a501:23a6:ebae:8f2a:4d73]) by ursule.remlab.net with ESMTPSA id 1kIbOk4zOGP1RwoAwZXkwQ (envelope-from ) for ; Sat, 01 Oct 2022 15:32:14 +0300 From: =?iso-8859-1?q?R=E9mi?= Denis-Courmont To: ffmpeg-devel@ffmpeg.org Date: Sat, 01 Oct 2022 15:32:14 +0300 Message-ID: <5606030.DvuYhMxLoT@basile.remlab.net> Organization: Remlab MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/3] RISC-V V Opus post-filter 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: U2NiM9qzGapB Hello, This adds the Opus post-filter. Opus deemphasis is not included as it (IMHO) involves too many unknowns to write a good implementation without benchmarking. This post-filter implementation merely vectors the scalar product. It does purposed not vector the memory accesses to avoid reconfiguring the vector unit too often. It might be possible to work it out, but again, I cannot really tell without real hardware The following changes since commit b0c7352cd494c88d33f032be60b5e1c4e8b092a0: avcodec/mjpegdec: Fix compilation (2022-09-30 19:30:29 +0200) are available in the Git repository at: git.remlab.net:git/ffmpeg.git rvv-vtype for you to fetch changes up to 1aa3efa0563aaaed376a35c0e7c9fe53089c3a7e: lavc/opusdsp: RISC-V V (256-bit vectors) postfilter (2022-10-01 15:24:42 +0300) ---------------------------------------------------------------- RĂ©mi Denis-Courmont (4): QEMU hack lavc/opusdsp: RISC-V V postfilter lavu/riscv: helper macro for VTYPE encoding lavc/opusdsp: RISC-V V (256-bit vectors) postfilter libavcodec/opusdsp.c | 2 ++ libavcodec/opusdsp.h | 1 + libavcodec/riscv/Makefile | 2 ++ libavcodec/riscv/opusdsp_init.c | 49 +++++++++++++++++++++++++++ libavcodec/riscv/opusdsp_rvv.S | 59 ++++++++++++++++++++++++++++++++ libavutil/riscv/asm.S | 75 +++++++++++++++++++++++++++++++++++++++++ libavutil/riscv/cpu.c | 2 +- 7 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 libavcodec/riscv/opusdsp_init.c create mode 100644 libavcodec/riscv/opusdsp_rvv.S