From patchwork Mon Dec 18 15:14:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45226 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7400762pzf; Mon, 18 Dec 2023 07:14:49 -0800 (PST) X-Google-Smtp-Source: AGHT+IGHlqs8IvH0HrlCeGqEbz5LEQBX8HTk8DkUtU3hCeWFebvMYQCqB8ikC6LPIAozHIJEBABt X-Received: by 2002:ac2:5108:0:b0:50e:3284:d86d with SMTP id q8-20020ac25108000000b0050e3284d86dmr1178291lfb.123.1702912488354; Mon, 18 Dec 2023 07:14:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702912488; cv=none; d=google.com; s=arc-20160816; b=AoMFL0cP4xsIY1NQn6o7eJJXkOxb2dfVLH9bDCMYenaqNg/XJsYvTQui20/a91FQ8e JaAYgX7n6cr9hrpOpQylSObtaPGHptoREU6Dv2f1LzNB61OUgn4rsUcC6L7or3bs5CBj ijyr6K9lzUKea8jGtnuXASF+b/MTVqD49Y73LNPygmGAsiZRftDQSjVWB9WvPEFwzSay SBhNNwicMNjG+GiYbKLiJH1fOUEisk/kALGUnXxNyxUXqw4T2zKo5uOXHDkmMTbdfyHn Dh6yAqBm4YQRuLrDLpja7BBYD1bBEJRSYW9esfuxnjgWl+CkdCLhCOGNyqtKyAE3PTe9 b+Mw== 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=ne7uXyC/NQVyFqnGle3wteTECeALNI56RmLyCo3hI+E=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=vWFvEV1nNK9YjQl/zighQJsZdUzh5r2nseY92fq9osBKjPHl3m/TOyiZGmSYxQOpwN UQYyWWoSC5xd5ddHvSOnZcAm8D5hya3dcmCcDccLXd6blbqXv7clz6K+F3MBUmxrfbZH f1JO31lE+3Jj5ESq1FGW3V6tZqvxCFQH9LlKGnTXnjoKHiSg50JwfrvSX+iUnPz634ej 2veYx3H+onw5PllMnkdIXk4uiwxsfUepdyoG5vp+ZOBzdPfRRlUVCHSY2xu5bc5Oh/rW Ey+qswUsG0Hwf2HOBIxYE/e+EbR0YGcpVwQsbGPJqU4YJIgmDowSstUysVxX+w1aOGcl d+gQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=iyUZzhHs; 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 b8-20020a056402084800b0054c82b4cbeesi9821341edz.147.2023.12.18.07.14.47; Mon, 18 Dec 2023 07:14:48 -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=iyUZzhHs; 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 CA58E68D21D; Mon, 18 Dec 2023 17:14:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A20EE68D02B for ; Mon, 18 Dec 2023 17:14:37 +0200 (EET) Received: by mail-oi1-f174.google.com with SMTP id 5614622812f47-3b9e6262fccso2391511b6e.3 for ; Mon, 18 Dec 2023 07:14:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702912475; x=1703517275; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=gZvQw9ozE/v5+FAxd3KBJ/EP8jtBKUO4E34gdUmCFLk=; b=iyUZzhHsM58st0NjL6oBZqdqP/ciACjbT1pd9P+iq7BeakZ2S3poeStAMCe7Fy6eYv AS9KWzKCFEGrMMGpG5Vw/VNMbAeWiqpL46lgPsXY2lIk9CBPLMTUjzakeQZoYiwJL6QZ 14uQeRbHlxQsEUiSwDMLyAwG5VQTDA5whai98yEkf796AtqpdduZvpT4sjzwYUULoLc9 cbEz3UWwU6Mx8IVdFvF3gAV/YMpiLMrvhFdAm8yZU5YwKmDYY4UArL4KTsTMLl83ACNv 1WDnd/+k6KvfVoCLiQyEEaAqJYTwiquTrbcPXYkhYnthXPkHZnMr2XmQJfrTxMNKZy25 TQCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702912475; x=1703517275; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=gZvQw9ozE/v5+FAxd3KBJ/EP8jtBKUO4E34gdUmCFLk=; b=X3jI4wUH92/SxKWtFMhd021wdhzPHHyX6B3pmSMJZFwkDF+ToIfWuoPoK6Tad3LzbC h6YI3aIBHu9k6T4ZbD4H52575tD8/SUIAc6MhiUV1fJvaUDJfdiX4Eb4T9+4wPQBQiiG 6g+UYLmRZKGd+wXT5+Tpd5+4HNgXGoNPq9Zy+qr24mYRU/hKj4Ty4jEFQhm8RaNloOx3 LCUqTrE4/fzTs4b0C68V64O1G96cvvJKRu+QIHgbkBVADWUl8HjzsEgK8thuDMbw0FCe NA5xLYJdFGX+TOtmmU7vzzAYXUEnVS+vINcciayXcIlBOiAxuuhxw0RPpUwqFQ6mPPur 33ew== X-Gm-Message-State: AOJu0YwKkjsBmDPr0bbFZ9mbcoqDvd0d5N9JKgfzDDWtKzQiazx7YOks DSeSt/Wmysl+zd8IsXDl66KfN2fjuPVD3JknMqapuMH5YP1WwQ== X-Received: by 2002:a05:6358:6f94:b0:16d:fcfd:bb88 with SMTP id s20-20020a0563586f9400b0016dfcfdbb88mr17548921rwn.6.1702912475426; Mon, 18 Dec 2023 07:14:35 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Mon, 18 Dec 2023 23:14:24 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 1/6] checkasm/takdsp: add decorrelate_ls test 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: pJNKMN15Ns4S From 960f70964521e1dc94647d70e2631351c0bb51bb Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:39:13 +0800 Subject: [PATCH 1/6] checkasm/takdsp: add decorrelate_ls test --- tests/checkasm/Makefile | 1 + tests/checkasm/checkasm.c | 3 ++ tests/checkasm/checkasm.h | 1 + tests/checkasm/takdsp.c | 68 +++++++++++++++++++++++++++++++++++++++ tests/fate/checkasm.mak | 1 + 5 files changed, 74 insertions(+) create mode 100644 tests/checkasm/takdsp.c diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile index a46c32926b..e6d732d8de 100644 --- a/tests/checkasm/Makefile +++ b/tests/checkasm/Makefile @@ -33,6 +33,7 @@ AVCODECOBJS-$(CONFIG_JPEG2000_DECODER) += jpeg2000dsp.o AVCODECOBJS-$(CONFIG_OPUS_DECODER) += opusdsp.o AVCODECOBJS-$(CONFIG_PIXBLOCKDSP) += pixblockdsp.o AVCODECOBJS-$(CONFIG_HEVC_DECODER) += hevc_add_res.o hevc_deblock.o hevc_idct.o hevc_sao.o hevc_pel.o +AVCODECOBJS-$(CONFIG_TAK_DECODER) += takdsp.o AVCODECOBJS-$(CONFIG_UTVIDEO_DECODER) += utvideodsp.o AVCODECOBJS-$(CONFIG_V210_DECODER) += v210dec.o AVCODECOBJS-$(CONFIG_V210_ENCODER) += v210enc.o diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c index 6318d9296b..51a8cdf3a0 100644 --- a/tests/checkasm/checkasm.c +++ b/tests/checkasm/checkasm.c @@ -159,6 +159,9 @@ static const struct { #if CONFIG_PIXBLOCKDSP { "pixblockdsp", checkasm_check_pixblockdsp }, #endif + #if CONFIG_TAK_DECODER + { "takdsp", checkasm_check_takdsp }, + #endif #if CONFIG_UTVIDEO_DECODER { "utvideodsp", checkasm_check_utvideodsp }, #endif diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h index e3c19510fa..cb57eeeddf 100644 --- a/tests/checkasm/checkasm.h +++ b/tests/checkasm/checkasm.h @@ -85,6 +85,7 @@ void checkasm_check_synth_filter(void); void checkasm_check_sw_gbrp(void); void checkasm_check_sw_rgb(void); void checkasm_check_sw_scale(void); +void checkasm_check_takdsp(void); void checkasm_check_utvideodsp(void); void checkasm_check_v210dec(void); void checkasm_check_v210enc(void); diff --git a/tests/checkasm/takdsp.c b/tests/checkasm/takdsp.c new file mode 100644 index 0000000000..4c7442f922 --- /dev/null +++ b/tests/checkasm/takdsp.c @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include + +#include "libavutil/mem.h" +#include "libavutil/mem_internal.h" + +#include "libavcodec/takdsp.h" + +#include "checkasm.h" + +#define randomize(buf, len) \ + do { \ + for (int i = 0; i < len; i++) \ + buf[i] = rnd(); \ + } while (0) + +static void test_decorrelate_ls(TAKDSPContext *s) { +#define BUF_SIZE 1024 + declare_func(void, int32_t *, int32_t *, int); + + if (check_func(s->decorrelate_ls, "decorrelate_ls")) { + LOCAL_ALIGNED_32(int32_t, p1, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2_2, [BUF_SIZE]); + + randomize(p1, BUF_SIZE); + randomize(p2, BUF_SIZE); + memcpy(p2_2, p2, BUF_SIZE); + + call_ref(p1, p2, BUF_SIZE); + call_new(p1, p2_2, BUF_SIZE); + + if (memcmp(p2, p2_2, BUF_SIZE) != 0){ + fail(); + } + + bench_new(p1, p2, BUF_SIZE); + } + + report("decorrelate_ls"); +} + +void checkasm_check_takdsp(void) +{ + TAKDSPContext s = { 0 }; + ff_takdsp_init(&s); + + test_decorrelate_ls(&s); +} diff --git a/tests/fate/checkasm.mak b/tests/fate/checkasm.mak index 65bace892b..34e1a0a048 100644 --- a/tests/fate/checkasm.mak +++ b/tests/fate/checkasm.mak @@ -37,6 +37,7 @@ FATE_CHECKASM = fate-checkasm-aacencdsp \ fate-checkasm-sw_gbrp \ fate-checkasm-sw_rgb \ fate-checkasm-sw_scale \ + fate-checkasm-takdsp \ fate-checkasm-utvideodsp \ fate-checkasm-v210dec \ fate-checkasm-v210enc \ -- 2.43.0 From patchwork Mon Dec 18 15:14:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45227 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7401099pzf; Mon, 18 Dec 2023 07:15:13 -0800 (PST) X-Google-Smtp-Source: AGHT+IHXZ6ZWLQkvsyDM04sqpJK26YNPgR3h8LSPEhTeMvcXK9Sh16Dm764mgyfYrSdz22mX71ml X-Received: by 2002:a50:bae1:0:b0:54c:61ba:79ff with SMTP id x88-20020a50bae1000000b0054c61ba79ffmr19438211ede.4.1702912512758; Mon, 18 Dec 2023 07:15:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702912512; cv=none; d=google.com; s=arc-20160816; b=R7sfYcq18F+OI/7ikNRa96o3e0I2vGwBynqYV+Fv49uQLJFRWYRGQgHyIvdq3kILaB Hm8SLFJ6iUsvAOKSz6hSDbp6OJx3PsWDy0TS7bGnuqlSTClonc+mR7O2dtxSHnmNICl1 G/dqF73CmjK3ddofW/g/gg6qSfq3k0eCy3laPcKh5dVQYk4KwgJN7Qd7z5r2nK9RlwSq TZjOJfq2Zt+yPMliir1CWES1+vMhwgtp8Z+UV8KXZKeumvjaICnYEUVcEAJ929AzPm1D 0PSqVnmzxm4KCdNaMDVeu/wwJIVn1FWIN3IMsMDf+vLB+eWpjheABt36yGS9gHR+ArmE JRmg== 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=yfOO+kXlmTu7wgagvQwv4v38z5RU3gdywW3Gf1DQyHA=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=ooP7qiyT0Mb9La+ZBbXm8to8S0KkWXAsLhlN7QfzM1ih4tfVSbJRtklztbKZ2dWeg9 Xkp5+jxQMvhnMSUrVvo81LnVnqJs7jDS7R6kEU0C4P8JXzHiVAbaAjcMH7tNnRqCjVgO ekJ0+aT4sJOLC9jDs40TEct1FCoalgmO6I1tT3DrHjmvs2TmWbAnweLlMj+s68NSpUyo 1EdV5UrnkIKLPN3vX/EbXg6P/xTqTth2oKbEkTp3GKS6HJxz522vOYyjJ99OAHzE4icA Vlk+eKqiQzxbbbG1VC9Bncs9pYRF4Hte2ap19G40sDHA1DifI56/HFRNxpVe/uwzop32 +YVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=afOgMdaG; 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 eg32-20020a05640228a000b00553811dcf36si36431edb.683.2023.12.18.07.15.12; Mon, 18 Dec 2023 07:15:12 -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=afOgMdaG; 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 EB4DB68D283; Mon, 18 Dec 2023 17:15:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5962F68CFAA for ; Mon, 18 Dec 2023 17:15:03 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id 6a1803df08f44-67f5132e8fcso2528146d6.2 for ; Mon, 18 Dec 2023 07:15:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702912502; x=1703517302; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=2hfS6gXtpM+a8tUACykwyHWFfGhSkEpZetrhmIPTZu4=; b=afOgMdaGDrjwFEcO+4QfeXunS+6iuElSP2GAYFvN0sTIL6Q3dsh1sFiNwJWmaqRRTO WtlFgC/xIvX4fO2u5BxlRmEPnSeazDd7yDUuPYMt9nAO2ZsE0+mfK4b0Q8xKPEdknkXJ qmvOwP9xnCwmbHiQ17Ge7G8oUMiPJ5kdttUOQeiT1WXCqqJIFQOEfM2M6Xq82FHvknyI ryMKFhy1SXvf5cVVAMATWgKgmEspZ5P1c8pNxGRyvEd5RkISJMPaNO8c+gksoXMnr/oV sXJqZ/WtaKDgUc/k2DHX8zyvcuiw1l0LwSjOUqmITdnzzkekHc7bUFs3PNGmT+OF35Fr 1zsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702912502; x=1703517302; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2hfS6gXtpM+a8tUACykwyHWFfGhSkEpZetrhmIPTZu4=; b=mwKVmA+wH3VodSQMLEINmnIEOL83g5sjn+3l+vtrGZueqIs6BaqqXsEXU09IFx8sig lrFAG6KNasVI7UKTj/UPKzyiUiggfcD+vAl7XXPjrm5wAjUSa/Dps/OukklAwYWS+hAS bjQv8mCSGZOBdP2wf4OmsN1Cp6bcg70LtXayPEJta0eWq3ZZgm50RvoYhNPHpUWD7dJ5 f8SbD+DNd6lXt6ZoHPzae/SQEyNOe7xq8pehw89ky5g0Zd6zZ04nJnHDjNxAi1+yvFej vVPXPZJQ2DSsEoiTAZmSsaIAuVsC0azviEB6/kV5qNfq1HK1+2X6nU50La4RGpeoaMDs 7pEw== X-Gm-Message-State: AOJu0YwyzTOFj8cwfajY21oJlYMAkGlftBUuX/3/zldKoF9aGDLLW83N 5b3NnznwsqiLpgYxvavbtyrLMVYhirFVD2FXS3BcUK7P0bLWpj56 X-Received: by 2002:ad4:5aea:0:b0:67f:29a0:fd56 with SMTP id c10-20020ad45aea000000b0067f29a0fd56mr7102401qvh.36.1702912501543; Mon, 18 Dec 2023 07:15:01 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Mon, 18 Dec 2023 23:14:50 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 2/6] checkasm/takdsp: add decorrelate_sr test 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: ctKSgEkcI9QM From 9254ae1f72498568857357059eb514e8cb90b5f1 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:47:29 +0800 Subject: [PATCH 2/6] checkasm/takdsp: add decorrelate_sr test --- tests/checkasm/takdsp.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/checkasm/takdsp.c b/tests/checkasm/takdsp.c index 4c7442f922..2fa639bfc1 100644 --- a/tests/checkasm/takdsp.c +++ b/tests/checkasm/takdsp.c @@ -59,10 +59,37 @@ static void test_decorrelate_ls(TAKDSPContext *s) { report("decorrelate_ls"); } +static void test_decorrelate_sr(TAKDSPContext *s) { +#define BUF_SIZE 1024 + declare_func(void, int32_t *, int32_t *, int); + + if (check_func(s->decorrelate_sr, "decorrelate_sr")) { + LOCAL_ALIGNED_32(int32_t, p1, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2_2, [BUF_SIZE]); + + randomize(p1, BUF_SIZE); + randomize(p2, BUF_SIZE); + memcpy(p2_2, p2, BUF_SIZE); + + call_ref(p1, p2, BUF_SIZE); + call_new(p1, p2_2, BUF_SIZE); + + if (memcmp(p2, p2_2, BUF_SIZE) != 0){ + fail(); + } + + bench_new(p1, p2, BUF_SIZE); + } + + report("decorrelate_sr"); +} + void checkasm_check_takdsp(void) { TAKDSPContext s = { 0 }; ff_takdsp_init(&s); test_decorrelate_ls(&s); + test_decorrelate_sr(&s); } -- 2.43.0 From patchwork Mon Dec 18 15:15:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45225 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7401438pzf; Mon, 18 Dec 2023 07:15:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IHV/V+Uxusy08oSWPNrhld/mIOXkMxjfwyvJFxRJlI/524GXxFguPfT9zIL/GG1x4YhuXNF X-Received: by 2002:a50:8749:0:b0:552:bc3b:b19e with SMTP id 9-20020a508749000000b00552bc3bb19emr6638253edv.4.1702912534743; Mon, 18 Dec 2023 07:15:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702912534; cv=none; d=google.com; s=arc-20160816; b=vS7SiL5gKtF1IeZ0+FVTQKQOnWcPZEblme1ohvv87+HKiCmfoih2WQnW3A0ecjWsJ6 XbAjfXf1fbT2K0pUsTr3yKz2lgjX0xqrozjqR40RTFikJMym6Kx0QZJSWJiiE9Bfy3Ep 4XGLlvV5e5+aD+y06XK2oL0J0XqCoiYO70zeiY0Gw9K+1YRduLGqk6NC+lZ8JHBYcVBb zQd+Sb022vXwR3wnoE5PY/dYGEd+oSlcNA/Z6LN0cU0UqNhlE6uIqCUAJT9jAn4b7iEs pzqnLMkWDkSYG8QG8S6A/tAWqooHFiCowTPy10W+gtRyYLY+qj1xN7GlyO5NotTrFXBg IrNQ== 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=62mRc55SU0XoVzIvWk9XDtd9ckI2MZq3W6iIJzRhA4c=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=m4cvNsTgDxilQxCqS40orflavhO73fEl87+LizsydFD6P+jTottZRuEPJz4DZi4YxX bSn5lqDH3It5ESEx9UI2mONxnk9s/BbXmh7xDHupDJ5KqTzVNHSflWwMVNTYK+N5ExxN TIKwdTo1UtQMZhlOBdYCoRKWxZpZmUFKd5cSNNQubHG+BGtIwAxTVb+bY1czLGZdB/HL FoFCtiW721vWkmBXXo8gyC5VRKDEtZRrLWro7DixHSk5z6DmZpww/MVe/QsvWzdZ+oWR f5Ciz/xKpsMIOu/5QwaQqdHLPyN5ULPZ+1Maud1cnwalddsovbwDsYbhLglth5s17l9C 1p5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=RH0fhPsP; 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 y21-20020a056402359500b0054b3cc9e676si10496500edc.111.2023.12.18.07.15.34; Mon, 18 Dec 2023 07:15:34 -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=RH0fhPsP; 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 0E5F968D213; Mon, 18 Dec 2023 17:15: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 BF8EB68D228 for ; Mon, 18 Dec 2023 17:15:24 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id 6a1803df08f44-67ee17ab697so29279476d6.0 for ; Mon, 18 Dec 2023 07:15:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702912523; x=1703517323; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ZGUTchR3WuSSdlaA9udU/Ay5nytm/JzHCgnzBTHsIxs=; b=RH0fhPsPm8JGnDpfUhhi5vIUwbdd11Oiiut8he6Saifzq2RoziUvjHtzMLcsRDLFtb XAkDr1w8VfYqkW/3V+HV7VHmX1dYAxUhCZ98A2gnh4Sbnx0RUIoz8b+eQ8ClFtPd6NZR /UqSTk3+LzUNPgXE3Hvxqmnl43d7QVZ05DZ0LzM7IhU1fQdkj88Tg8OmpRmo3RR/xdLJ aK9VU3MNJqcwc3IXB1fFlzCHkokt4M/Xw+dpn7THgnHOUPITvM/7r+e83HH7Z8VFgi47 H8fkbI1zZiKFkZ0Oc7ccd/et+tNzb6ktBh72aHTP5Z92CxOf9BD042oDFs0hnLmTNW/N p/sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702912523; x=1703517323; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ZGUTchR3WuSSdlaA9udU/Ay5nytm/JzHCgnzBTHsIxs=; b=oapWWF9Syb66BCTZaeBCsIXPiedGp8PSCTyiVr2bXJphFQyQROhfrEkxGU3OecF+yK 215+OIISQIhcsQsX5PUO3iu6cA7q1v0wqiv7ZKKjPBnwue84RyFA0jXI6fRPAj9rrlsU pPIvZYxY4aokv/iPtLcss3cVCXGZ48cddzFVPcfPmcAL/NrDOpKfz6rwnrgMTkEeR8yI ysh3DVORDt+WxeiacvB32isrTuaKToRv3X7GmR8JkJf8YKxZuWAXLBwJk2IcGt/k/w6K LZ9isSneTOw3tiIiMmeE4SkLB6ZZJ8poJZxGfJ/fJpPNFpYw9EYRsXIMzrZFFmNd9nr0 IBlg== X-Gm-Message-State: AOJu0Yxipca4zV0xTaIdwXYNlxCog2FGIUoJ/snostN031UOHxShz9cb TikJ1fUt3hoYEyZtoyeecT1kMTnuvmrrPs5ZNGt0qrhDKuVk3g== X-Received: by 2002:a05:6214:1c84:b0:67a:bff7:5ea6 with SMTP id ib4-20020a0562141c8400b0067abff75ea6mr20178716qvb.68.1702912523314; Mon, 18 Dec 2023 07:15:23 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Mon, 18 Dec 2023 23:15:12 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 3/6] checkasm/takdsp: add decorrelate_sm test 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: Bvpw+5RWtd/x From 9e09f52403058e1bc87653bfd9980c7d5a6ce33c Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:48:09 +0800 Subject: [PATCH 3/6] checkasm/takdsp: add decorrelate_sm test --- tests/checkasm/takdsp.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/checkasm/takdsp.c b/tests/checkasm/takdsp.c index 2fa639bfc1..495b7242c5 100644 --- a/tests/checkasm/takdsp.c +++ b/tests/checkasm/takdsp.c @@ -85,6 +85,34 @@ static void test_decorrelate_sr(TAKDSPContext *s) { report("decorrelate_sr"); } +static void test_decorrelate_sm(TAKDSPContext *s) { +#define BUF_SIZE 1024 + declare_func(void, int32_t *, int32_t *, int); + + if (check_func(s->decorrelate_sm, "decorrelate_sm")) { + LOCAL_ALIGNED_32(int32_t, p1, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p1_2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2_2, [BUF_SIZE]); + + randomize(p1, BUF_SIZE); + memcpy(p1, p1_2, BUF_SIZE); + randomize(p2, BUF_SIZE); + memcpy(p2_2, p2, BUF_SIZE); + + call_ref(p1, p2, BUF_SIZE); + call_new(p1_2, p2_2, BUF_SIZE); + + if (memcmp(p2, p2_2, BUF_SIZE) != 0){ + fail(); + } + + bench_new(p1, p2, BUF_SIZE); + } + + report("decorrelate_sm"); +} + void checkasm_check_takdsp(void) { TAKDSPContext s = { 0 }; @@ -92,4 +120,5 @@ void checkasm_check_takdsp(void) test_decorrelate_ls(&s); test_decorrelate_sr(&s); + test_decorrelate_sm(&s); } -- 2.43.0 From patchwork Mon Dec 18 15:15:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45228 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7401809pzf; Mon, 18 Dec 2023 07:16:04 -0800 (PST) X-Google-Smtp-Source: AGHT+IHP7BjRTIH0AufgiZL9jhi1I3wy6Ldb8i/8dbm/OhqGpU8u3lPPqQDq2Net6wQ5cTqYW4ew X-Received: by 2002:a05:600c:1e0c:b0:40d:1c37:c4fd with SMTP id ay12-20020a05600c1e0c00b0040d1c37c4fdmr401923wmb.175.1702912563845; Mon, 18 Dec 2023 07:16:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702912563; cv=none; d=google.com; s=arc-20160816; b=q7jUrer9xcFZBNHBKaTus9gMzupxXhJ1N2+6crsqtU5HJcJUd8djV/gZAWQwcFMK6U OIuT9JGN91uCsuMWo/bm/XoBb4rsDMJq5+fjDhRxD7cjd+xkQJtqR3k0KfRIW6O69giq cKQgEen7ZUNalPLkEzvM3Lrcq86OiL7gfEV87huOQwiSuadi2WwjfpeIdwG8jQZLO93D qRK5DKcYkfUSvYrIE+d1PWqtp9J2ZVKL4wr3he2iG4hF/urLuLM4t0BvxRwEpXaXzDlx on78SkUtMOClCQnJwLumhPWjAIhii0OqwZtgMCXoqYhwe1iSp6DvEqOmnjZ4WdZ/+lRK syIw== 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=RkM7MlBWKfQbe+w0QrLshHZ/5CG4vyrESGa+5NNbXAU=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=V6X183Gw3pdkVlfa7KDoYK11qx4g2daAcGbtSGDH/mrYJ+9UMjjfftLHcnTqhi4HDt d86Vbl+yNYxOLFJnXorRuYep510OK9CCVCGDYdyyj2vN/LztKPBNi3SuZgF/hGg8zua6 +sBJDYqK8hvjdguXxtCLAVdZLQblg2ik5fUT9AoEmyFv9jea2j9cAiDbbVi0UPlZFVwC gDKYORCvxD+ZrvewKc/4qH3NJ1wieb+W/N+4Lkx7Vk47Ryf3SAXW/QwQaQcWnWxtBJjG 1/03Qr4xdHKcWpEqUrGRZO8IMh7e67o1WxEVmquZtOnAM/WKOJtnwN1kHfE9yZk9T/1Z 8DGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=X3bFw9aU; 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 gt19-20020a170906f21300b00a23490602a1si1379364ejb.84.2023.12.18.07.16.03; Mon, 18 Dec 2023 07:16:03 -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=X3bFw9aU; 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 389E868D294; Mon, 18 Dec 2023 17:16:01 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f172.google.com (mail-oi1-f172.google.com [209.85.167.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7EB3468CFAA for ; Mon, 18 Dec 2023 17:15:54 +0200 (EET) Received: by mail-oi1-f172.google.com with SMTP id 5614622812f47-3b9f8c9307dso3213663b6e.0 for ; Mon, 18 Dec 2023 07:15:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702912552; x=1703517352; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=IMLrxox4igr3rotY3+NXs3gCwsMJlJYMfxoWX7NEuBc=; b=X3bFw9aU7dJaQ7RSM6+KzAdCeChHpHXEKgpy6mzjaDMvK0OoHoX7VghiwUMiSzRdC0 nJINmEypiK33vUfNhhc9qC+vMph0/Px9I4nygjG2xN7a/xOazjlgloDGR6m5WWV0DpuG NECnduK/kNraNGxeX12mG08X75dtbstsZMmyuVlJOXE0jErygEimfZcAn8vpyzVfOkG0 Fbuvsg+3m+0/OgIrnjIa0wQSyYnRl3Agls9uLJDFoIyaUvFeBLV55tu7TLHw0xop4Ay8 Qa8A62uQ6rQrpAO4NGuIpR4czVHtEw/Y1t8GbTbNmZMXIu6Walhx0ECqUf4tnm3BzDIf 6Qmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702912552; x=1703517352; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=IMLrxox4igr3rotY3+NXs3gCwsMJlJYMfxoWX7NEuBc=; b=a8hQkfuWKiBZGvzhcOnYieLAvj9nSMktF8SZgREa3Fmb2DkTkoDG1eV6PeFpI1EZhD pb9nE80kIrFj4D6qWaihLo8mcmWbC++cb7Q7Nc8rOOCXZocT/wtHZtPJHjquvJevt3Ph LqwHTWgop4QmzKWEq7j9I5/sS12xqFDOn11+SHf8O2fmtyGpUyTmdqGtLLB+f7su4ern YEuaz7YTLrBfISFR4X12zNfKFgnf2Q6NYKhVUs+suq69cneru0Kjr/SIrQl4bwIo3juW Ii80lrWSgKUtLS0UtMi0kPipss0rz7GdCSmzJpQReeLvf5flLcrmIEuxmnpLVuibkThI n8PQ== X-Gm-Message-State: AOJu0Yz7Z/QMXS3DeFTnNZPEXd5Pz2c+d9Kwb2ZOzK0Cri7JqqqdyNEx zdofh5ecZ5YqLprbmLSuhXtppjsm9m/wnYrZNzhf6phnJJG5QGf7 X-Received: by 2002:a05:6358:419d:b0:170:936d:8afe with SMTP id w29-20020a056358419d00b00170936d8afemr20481938rwc.49.1702912552524; Mon, 18 Dec 2023 07:15:52 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Mon, 18 Dec 2023 23:15:41 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 4/6] lavc/takdsp: R-V V decorrelate_ls 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: Tm4iYUVGw+BU C908: decorrelate_ls_c: 69.7 decorrelate_ls_rvv_i32: 27.2 From 03fad46e6db1846596c31918fc4e34b58246efc4 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:49:21 +0800 Subject: [PATCH 4/6] lavc/takdsp: R-V V decorrelate_ls C908: decorrelate_ls_c: 69.7 decorrelate_ls_rvv_i32: 27.2 --- libavcodec/riscv/Makefile | 2 ++ libavcodec/riscv/takdsp_init.c | 39 ++++++++++++++++++++++++++++++++++ libavcodec/riscv/takdsp_rvv.S | 35 ++++++++++++++++++++++++++++++ libavcodec/takdsp.c | 4 +++- libavcodec/takdsp.h | 1 + 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 libavcodec/riscv/takdsp_init.c create mode 100644 libavcodec/riscv/takdsp_rvv.S diff --git a/libavcodec/riscv/Makefile b/libavcodec/riscv/Makefile index 6f7cb8791f..aa758eba1c 100644 --- a/libavcodec/riscv/Makefile +++ b/libavcodec/riscv/Makefile @@ -42,6 +42,8 @@ RVV-OBJS-$(CONFIG_OPUS_DECODER) += riscv/opusdsp_rvv.o OBJS-$(CONFIG_PIXBLOCKDSP) += riscv/pixblockdsp_init.o RV-OBJS-$(CONFIG_PIXBLOCKDSP) += riscv/pixblockdsp_rvi.o RVV-OBJS-$(CONFIG_PIXBLOCKDSP) += riscv/pixblockdsp_rvv.o +OBJS-$(CONFIG_TAK_DECODER) += riscv/takdsp_init.o +RVV-OBJS-$(CONFIG_TAK_DECODER) += riscv/takdsp_rvv.o OBJS-$(CONFIG_UTVIDEO_DECODER) += riscv/utvideodsp_init.o RVV-OBJS-$(CONFIG_UTVIDEO_DECODER) += riscv/utvideodsp_rvv.o OBJS-$(CONFIG_VC1DSP) += riscv/vc1dsp_init.o diff --git a/libavcodec/riscv/takdsp_init.c b/libavcodec/riscv/takdsp_init.c new file mode 100644 index 0000000000..fcf0c5f37b --- /dev/null +++ b/libavcodec/riscv/takdsp_init.c @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#include "libavutil/attributes.h" +#include "libavutil/cpu.h" +#include "libavutil/riscv/cpu.h" +#include "libavcodec/takdsp.h" + +void ff_decorrelate_ls_rvv(int32_t *p1, int32_t *p2, int length); + +av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) +{ +#if HAVE_RVV + int flags = av_get_cpu_flags(); + + if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) { + dsp->decorrelate_ls = ff_decorrelate_ls_rvv; + } +#endif +} diff --git a/libavcodec/riscv/takdsp_rvv.S b/libavcodec/riscv/takdsp_rvv.S new file mode 100644 index 0000000000..00e8e38fdf --- /dev/null +++ b/libavcodec/riscv/takdsp_rvv.S @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavutil/riscv/asm.S" + +func ff_decorrelate_ls_rvv, zve32x +1: + vsetvli t0, a2, e32, m8, ta, ma + vle32.v v0, (a0) + sub a2, a2, t0 + vle32.v v8, (a1) + vadd.vv v16, v0, v8 + vse32.v v16, (a1) + sh2add a0, t0, a0 + sh2add a1, t0, a1 + bnez a2, 1b + ret +endfunc diff --git a/libavcodec/takdsp.c b/libavcodec/takdsp.c index b646a063db..25cac558ce 100644 --- a/libavcodec/takdsp.c +++ b/libavcodec/takdsp.c @@ -77,7 +77,9 @@ av_cold void ff_takdsp_init(TAKDSPContext *c) c->decorrelate_sm = decorrelate_sm; c->decorrelate_sf = decorrelate_sf; -#if ARCH_X86 +#if ARCH_RISCV + ff_takdsp_init_riscv(c); +#elif ARCH_X86 ff_takdsp_init_x86(c); #endif } diff --git a/libavcodec/takdsp.h b/libavcodec/takdsp.h index c05b5741a4..55f1a10cd3 100644 --- a/libavcodec/takdsp.h +++ b/libavcodec/takdsp.h @@ -29,6 +29,7 @@ typedef struct TAKDSPContext { } TAKDSPContext; void ff_takdsp_init(TAKDSPContext *c); +void ff_takdsp_init_riscv(TAKDSPContext *c); void ff_takdsp_init_x86(TAKDSPContext *c); #endif /* AVCODEC_TAKDSP_H */ -- 2.43.0 From patchwork Mon Dec 18 15:16:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45229 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7402102pzf; Mon, 18 Dec 2023 07:16:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IG3B+TYMCso04Pmzm0j3tt6vHHJ+pZJPEw0bN8d6wiSddcmFUHpSVi+T0NEiepIEbz3Qlg+ X-Received: by 2002:a05:651c:1a0c:b0:2cc:767d:e2ac with SMTP id by12-20020a05651c1a0c00b002cc767de2acmr1392566ljb.0.1702912583843; Mon, 18 Dec 2023 07:16:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702912583; cv=none; d=google.com; s=arc-20160816; b=Y6PZplI6U9XMsv4RD/mQII1kf0u3bxUVhVRN16vDtgxi2RK4f+OuvVALqSZmfGLJ/8 9LQIlP9Dsp8LySdVyjV4nQ0eXWrw5wQ8dE+5venxS/kW5e57Vbk1g+xiY57YBWbp6FG3 HbZWgFzoSLMXQK2gxMoJINxxIz/aGiCTK8DNUk4JcJDctqfDxMff9Qba+Nr7gw/ZxGtD i5XjWqJpTS1LyMykZoh0TQ8hMAsJ//bOShUxb8Z8cqFGHf5t3ZNxCq8/dkCUM6wS0C1U Of3cHo6nzeG5L0e7BWj4TZ7YODT4chlUgQ+udFlpy+bVS7zU9zMy+GQEgYS6H7yHGTDK c9Ow== 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=Lj0BQ6KOUKE6Rf8k3ZTHkj9wYFf4ViqcelwWQ3Td7+Q=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=HrT4FO9dHGB0Daynnz/lkl8z1nuqRzSd0GRixsQ7ZKpOETWhmAZ3BRIv8UbiIjXWDi pcWth3FKkIflwglQVnq/EKWisSjnI+1cwaqy+0DXAt7dwBb4BFWXKYsfQ58TecTh6Ft7 tZjfoMs1Zv6VllJvNVq3lJMgu/qMnaK3C6obsThtFumGOmREXy/LGSs143uqlePhKWKp GChFvmo3VkGEQ7QlLAmssaFq4LBX4eTFujXc1DrJPWmuIXEtob0eYJSgs5zsFwVGWRs1 X71750Btog3DPfvpVLdhTsklAdQf6+me3kgToswrlJLVGUJkXBHgvIhw6ckj7e2ihm+m qwBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b="CpBa/gJl"; 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 u15-20020a50c04f000000b00552eb91d465si2597046edd.550.2023.12.18.07.16.23; Mon, 18 Dec 2023 07:16:23 -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="CpBa/gJl"; 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 5596A68D2C3; Mon, 18 Dec 2023 17:16:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2734468CFAA for ; Mon, 18 Dec 2023 17:16:15 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-67f27b7f412so21282396d6.3 for ; Mon, 18 Dec 2023 07:16:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702912573; x=1703517373; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=C0EJtPVYnpalwFfjt1Tn9aKrwZw9Q4xXDp7FI1ZwDfg=; b=CpBa/gJldQeVxo99TFXJ3joSUtebyV5zSNcfFYd9YnR/CZCX7LaFPkPrpk3jp3Wt5W wyBBSNWQROwMOdG2ODCpBAszsXsZELKexlXrD4YEpUBpzSKwnalguIFC5992kg0vpgtt 1cGU4t5OsqyNnO7E2FYlOjSBTngHWViDtXAK+pGDa1VGyVqfEuSqrWkpFUmkjFFbXkxH GLs162A6AKAYzbVeUoGRfBFJaWsvNmtyZ+wxnv3WJlpNNfYaqTeqy/sJxKyKPJIE2G+J h3Qlr5ZRBj9UZjp0uqefcsPaKsRVPhEhOtxYVSjmJ7Y5CT/ScFVwl8WdRETCg2ttrmcp 1ZgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702912573; x=1703517373; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=C0EJtPVYnpalwFfjt1Tn9aKrwZw9Q4xXDp7FI1ZwDfg=; b=e3pu58t4+augDUROUl5iAkKstGHxZr9J25/6tS4bCQf77uIh2u2bKbZc/RCOLVkNnC S6eC3C8l7LhCKJNBEv9FsZgGCQE6Vt1iJZ0WuFqFCGEF5Xd0Tt5w85Xh0qxJnU/07FCj xa1bZ2TUzV9AuNB4893meyOr/PYLjNQXUhU4qbZjZD3aEsHldqYS3CgYYNXR17UAILmV ZigSZsWlxWlgMyiUTI7QROeOekpqtWu96X+t6dzp4sVjiiAAM1JxEGsz4+HzAyaaW2k6 zyMPObCZX8h0wtHQogy0Se8L133ic7/7uth6d+D7fhHzl4vmmSPUmpOdTnzNTMm4ZWSb 1BUw== X-Gm-Message-State: AOJu0Yz0cAyQEJzRSRcxKyg3LamLPPTx7eBor8cq+iw8QYLdRWLL1ebt n9iWm/psk39f4ws8dUw3DpEhisN16TAEVX5fUkQO3KchrdwuWYWC X-Received: by 2002:a05:6214:1bc7:b0:67f:3541:6dff with SMTP id m7-20020a0562141bc700b0067f35416dffmr5139723qvc.13.1702912573605; Mon, 18 Dec 2023 07:16:13 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Mon, 18 Dec 2023 23:16:02 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 5/6] lavc/takdsp: R-V V decorrelate_sr 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: RRmgM+MbWhR6 C908: decorrelate_sr_c: 95.5 decorrelate_sr_rvv_i32: 28.2 From fa1a84337a7cd2a62c26a9d5f8d707a97e917f77 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:52:20 +0800 Subject: [PATCH 5/6] lavc/takdsp: R-V V decorrelate_sr C908: decorrelate_sr_c: 95.5 decorrelate_sr_rvv_i32: 28.2 --- libavcodec/riscv/takdsp_init.c | 2 ++ libavcodec/riscv/takdsp_rvv.S | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/libavcodec/riscv/takdsp_init.c b/libavcodec/riscv/takdsp_init.c index fcf0c5f37b..0b4ec18086 100644 --- a/libavcodec/riscv/takdsp_init.c +++ b/libavcodec/riscv/takdsp_init.c @@ -26,6 +26,7 @@ #include "libavcodec/takdsp.h" void ff_decorrelate_ls_rvv(int32_t *p1, int32_t *p2, int length); +void ff_decorrelate_sr_rvv(int32_t *p1, int32_t *p2, int length); av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) { @@ -34,6 +35,7 @@ av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) { dsp->decorrelate_ls = ff_decorrelate_ls_rvv; + dsp->decorrelate_sr = ff_decorrelate_sr_rvv; } #endif } diff --git a/libavcodec/riscv/takdsp_rvv.S b/libavcodec/riscv/takdsp_rvv.S index 00e8e38fdf..65c79e1aa9 100644 --- a/libavcodec/riscv/takdsp_rvv.S +++ b/libavcodec/riscv/takdsp_rvv.S @@ -33,3 +33,17 @@ func ff_decorrelate_ls_rvv, zve32x bnez a2, 1b ret endfunc + +func ff_decorrelate_sr_rvv, zve32x +1: + vsetvli t0, a2, e32, m8, ta, ma + vle32.v v0, (a0) + sub a2, a2, t0 + vle32.v v8, (a1) + sh2add a1, t0, a1 + vsub.vv v16, v8, v0 + vse32.v v16, (a0) + sh2add a0, t0, a0 + bnez a2, 1b + ret +endfunc -- 2.43.0 From patchwork Mon Dec 18 15:16:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: flow gg X-Patchwork-Id: 45230 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7402461pzf; Mon, 18 Dec 2023 07:16:48 -0800 (PST) X-Google-Smtp-Source: AGHT+IGd5r7tIj5U/8h/jR0Gq/LLtUDN5YxkDuL4ytLI4RpHs8pvHSDIK/jueT8osTBFEtenUBem X-Received: by 2002:a17:907:d384:b0:a1a:541c:561b with SMTP id vh4-20020a170907d38400b00a1a541c561bmr18047272ejc.6.1702912608013; Mon, 18 Dec 2023 07:16:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702912607; cv=none; d=google.com; s=arc-20160816; b=tyooyFhoWpzUOXWDWActPj4OFebBPs6GBla/nMYKZqklUDpDC1WyXqnVQ8c9ScDpzN fIjnoMvtfbQdiRRM9Gye1M9+owL3manWB1vatplNETSdwcufk5y+z52SwEOZAt9RwePK rk46hbpuNW4ZrVxbc9S24eYYlk1hi85BkfErFNN3L+3sYDSvOsj3FTQPBTFeAKg9cuOb BhiD2nqY2oEV8eUKQ0sAt/eLeHmhVvV0g6cUM6+LnejbhPVRbMG1sNSFZ3IHPZCoH2/H xOlzt5elDjTFY32cQmdwDtrlvhZicnCgLecUp0aHKEFBwS073/BiMcvAstBIqWg+RgBI yrVQ== 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=zDyQrxteyyA1y4qwq4C6b58jCMjls9t8JT6JfblrH6M=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=lUK9Ked/4UQ8QGvtRkQiTlM/NHnd/JkkuTZGfPDk0ublmq61b4LtbQAV8iBErIQE3/ flSEHFdsjbO8PejET8vOvjiKcV92qiwfWTIf+6HHsrCetK3pTCzniGBViOR80LQ1H5+t IeTCvOJUS3BL6DujTL1qnDjNkgCK3PI5KknFaUVnY2fpJOEeXYs02Q+TY6xznKxf2T6Q HiwnwcZBD2sraUPDf+tFhkQPIy9wXS7QusLzsBR2hrn+731XZIEmKWO4E/5NLkwQYQI2 GIQW6PqrhsAgLT932ZKkN/g4m6T+JJ/NdSWp8QVRKxWh7drTMjdQZVLwBejuOSdjM8UY SL6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=brWpnQCQ; 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 cd21-20020a170906b35500b00a1d5dd75972si9461873ejb.666.2023.12.18.07.16.47; Mon, 18 Dec 2023 07: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=brWpnQCQ; 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 7BFDB68D2D8; Mon, 18 Dec 2023 17:16:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5C3E668D213 for ; Mon, 18 Dec 2023 17:16:39 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id 6a1803df08f44-67f040e6722so14708916d6.3 for ; Mon, 18 Dec 2023 07:16:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702912598; x=1703517398; darn=ffmpeg.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=bWzAkDRHZ7krMtcQeeS11tjjoCqTnRslfrS4oPXg/rQ=; b=brWpnQCQwYYUIbt72Jw/B/StQSO3mKpsQA83YOCjF0jzvSm8VC/iD3bLh2n9bfTCSX fVYDbg+/buIh+dxjCcpz7o1KcByB63czHyN0j0mRNJKp+F24slLTYuxzkUG699g3UvZT 9bAS13DPN7XTEkc/i6GGGfwoSSCHoSCJmG0NDBtvXmJ+IgLTA3pmTK4YRySSmQljRPVH 7f5jLSvfQWIQAMuYZO9ZkXYqQxuD2fE3KIOnmqMOxaLL3oI7kVNKV4zWzN3kCWSdm7CZ ZFkW7xDebFMObLqN5stNZMPrI5Z7jEE4qTkyCM2yHuhkWDA5RnOqcjfM5XQA7cxLYxSv NPIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702912598; x=1703517398; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bWzAkDRHZ7krMtcQeeS11tjjoCqTnRslfrS4oPXg/rQ=; b=CzrZ6TcKqF6NhhJcckbweTi7Lm2CbLC9rAEn4C3A1AIDyQW+vD005f/ycnqS/sYV2+ oWuoWeI8D0fr81xFV5WdxYNuiGrz7i7PyfJ5o4BFs9eK7TnIa5N0GXjbTjoTTkxhXOoX tzQGlcMv+O5ZYlBNu7jhS+4gPhZGNRnzhX9rYoQ2Wm49z/bLyuwLqca3Qr3TMGIcUXFI Tw+0wjoL+y0H+UaGXHbvpGvjY1SB6sw43dUYwrN1CudESmp2farAv5KcQpVmUbw5dv3h Qyu8n3svZ6EZf7AGcE0Bn8z2BaSfDiF9CyWQPbNo3/YBU4FYTSnHrAJR8kClAO1QqmhE +Isg== X-Gm-Message-State: AOJu0YwKHAcWfc6Pq6LHn9UYGvJ+nluuE97Bd3jIrqETKeLCfNFgJiIR sRZVDMFnq2IvkKz6kPuNhp65gmdFi7VigrYUvSxRXgneUEkQV+rc X-Received: by 2002:ad4:5ec8:0:b0:67f:39aa:3de9 with SMTP id jm8-20020ad45ec8000000b0067f39aa3de9mr2250173qvb.88.1702912598038; Mon, 18 Dec 2023 07:16:38 -0800 (PST) MIME-Version: 1.0 From: flow gg Date: Mon, 18 Dec 2023 23:16:27 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH 6/6] lavc/takdsp: R-V V decorrelate_sm 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: s7k7HCU3oYAJ C908: decorrelate_sm_c: 130.0 decorrelate_sm_rvv_i32: 43.7 From 3dc613feaa6c38a7df47a3fc385e2140716e0ae2 Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:53:39 +0800 Subject: [PATCH 6/6] lavc/takdsp: R-V V decorrelate_sm C908: decorrelate_sm_c: 130.0 decorrelate_sm_rvv_i32: 43.7 --- libavcodec/riscv/takdsp_init.c | 2 ++ libavcodec/riscv/takdsp_rvv.S | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libavcodec/riscv/takdsp_init.c b/libavcodec/riscv/takdsp_init.c index 0b4ec18086..85634d6db6 100644 --- a/libavcodec/riscv/takdsp_init.c +++ b/libavcodec/riscv/takdsp_init.c @@ -27,6 +27,7 @@ void ff_decorrelate_ls_rvv(int32_t *p1, int32_t *p2, int length); void ff_decorrelate_sr_rvv(int32_t *p1, int32_t *p2, int length); +void ff_decorrelate_sm_rvv(int32_t *p1, int32_t *p2, int length); av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) { @@ -36,6 +37,7 @@ av_cold void ff_takdsp_init_riscv(TAKDSPContext *dsp) if ((flags & AV_CPU_FLAG_RVV_I32) && (flags & AV_CPU_FLAG_RVB_ADDR)) { dsp->decorrelate_ls = ff_decorrelate_ls_rvv; dsp->decorrelate_sr = ff_decorrelate_sr_rvv; + dsp->decorrelate_sm = ff_decorrelate_sm_rvv; } #endif } diff --git a/libavcodec/riscv/takdsp_rvv.S b/libavcodec/riscv/takdsp_rvv.S index 65c79e1aa9..816e765039 100644 --- a/libavcodec/riscv/takdsp_rvv.S +++ b/libavcodec/riscv/takdsp_rvv.S @@ -47,3 +47,20 @@ func ff_decorrelate_sr_rvv, zve32x bnez a2, 1b ret endfunc + +func ff_decorrelate_sm_rvv, zve32x +1: + vsetvli t0, a2, e32, m8, ta, ma + vle32.v v0, (a0) + sub a2, a2, t0 + vle32.v v8, (a1) + vsra.vi v16, v8, 1 + vsub.vv v0, v0, v16 + vse32.v v0, (a0) + sh2add a0, t0, a0 + vadd.vv v0, v0, v8 + vse32.v v0, (a1) + sh2add a1, t0, a1 + bnez a2, 1b + ret +endfunc -- 2.43.0