From patchwork Mon Apr 19 20:19:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lynne X-Patchwork-Id: 27108 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:5014:0:0:0:0:0 with SMTP id e20csp835465iob; Mon, 19 Apr 2021 13:19:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyev5QIVrSrArekJMD826aJ7zwKT1OIWodBcdrUY7JIHmytDkJv8YFUDqi7EprlcOABFDo8 X-Received: by 2002:aa7:c98f:: with SMTP id c15mr27863288edt.309.1618863591353; Mon, 19 Apr 2021 13:19:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618863591; cv=none; d=google.com; s=arc-20160816; b=xlMBJCW4/g4MaENlulFBCURrUHpY+UTPJNRvIOJN16lroFcRaV/eie+xMjLC1sgNxK NVpdgv/FzWB/J0Qr6wRnDRGqzsOlnYXjLGiZNVTwy9MhVWEPpi+uEO5gFjDKk0OVmsId T6tIt8JUQ+jlSjF91QLSdpolfrOzcXPQEe/6Uz6OIQQYclw2AjJvYJlk/3YOClfsmTqz Ct5iJMWxV4jxTUcrQqtTVZxEvTUFAK7MJm6SvWWoYoDmcZV8UqMUv9/JMUoIStCkMSL9 PF0iR+6equQ8RjlRIHN8+gqUrZTA2aUHAxL2zBkeUu/hHBt0rmQIWei73CKuOgAgISQT dRgQ== 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 :mime-version:message-id:to:from:date:dkim-signature:delivered-to; bh=/PTL6N0D2+v8keA6ahsxBp1OKyHDlpOvWqitNc+HsTc=; b=Hva9UB781cYNKO5x/RdWom2OCZCn5wfmfDoI7gQpXsCJEmxHd+DAQ/qS1y5XgQESsB X8La/y4zq4hGGhlLBDVa9BlCg8pDoINzwxvugH/EvF139fFQpy60b3VcvKGXUXq7CSVT VaPBBVhnQJNNY2Qp/maMc3spJiO/id6lrIHsLJc8p84oUIUsv5sUCcIbT/s6325/kcNt CjLWqCR6aS0wyTsJLgkYUAUWrIGbHOTRvU8IeVeYelmNuNa19/4UoobJuLl9pfKCihsA bvam6V4b4zk2cMkNyKuu7Lk+PFkB+tu322qD6R43YdWFyRWsSViWbmn/D8AXpgXaZ17P 20GA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@lynne.ee header.s=s1 header.b=neCX0nE5; 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=NONE dis=NONE) header.from=lynne.ee Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id kj15si9893885ejc.385.2021.04.19.13.19.50; Mon, 19 Apr 2021 13:19:51 -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; dkim=neutral (body hash did not verify) header.i=@lynne.ee header.s=s1 header.b=neCX0nE5; 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=NONE dis=NONE) header.from=lynne.ee Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D72436898F1; Mon, 19 Apr 2021 23:19:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DBF2A680150 for ; Mon, 19 Apr 2021 23:19:39 +0300 (EEST) Received: from w3.tutanota.de (unknown [192.168.1.164]) by w4.tutanota.de (Postfix) with ESMTP id 6F7851060289 for ; Mon, 19 Apr 2021 20:19:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1618863579; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:Sender; bh=ISGDWy/RKS0m5xRLhNUF6OzxL4ZdgVGPXS00b3quJKk=; b=neCX0nE5ZYbLG5N+Pe5XDuiAsfClV1UHz2BVKPqfZpGkizXUnz1hMEEGMj8Nd4O5 PkTwLp8DMD+uY6BZgAfUFYE2UuJZfnVm/rV5aWP6zDyGzAywmr6DHiYRWY9KMQHAMnH ptAGwOOEsndLUeM+M5mhsD9MIVGV/XohyURl4+qcgHrbJla84pPfnE9k0THQRNZH/+O fznReLosgYDzpcoBupN99RdhUKoz80ZzvXH9U0BFDf4cFd5ZCfWE8//FDpJOtXYRxA2 aTpg52pt4n9vGOzkx6KjlD+0hVzr8tvA2lE8L30HgZDHPS866aL10b3fYullvC+knOC 7aTqCybmbw== Date: Mon, 19 Apr 2021 22:19:39 +0200 (CEST) From: Lynne To: Ffmpeg Devel Message-ID: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 00/11] lavu/tx: FFT improvements, additions and assembly 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: 6fCJkU9ltl/w This patchset cleans up and improves the power-of-two C code, adds a 7-point and a 9-point FFT, and adds a power-of-two length floating-point assembly. Subject: [PATCH 00/11] lavu/tx: FFT improvements, additions and assembly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patchset cleans up and improves the power-of-two C code, adds a 7-point and a 9-point FFT, and adds a power-of-two length floating-point assembly. Lynne (11): lavu/tx: minor code style improvements and additional comments lavu/tx: refactor power-of-two FFT lavu/tx: add a 7-point FFT and (i)MDCT lavu/tx: add a 9-point FFT and (i)MDCT lavu/tx: add unaligned flag to the API lavu/tx: add full-sized iMDCT transform flag lavu: bump minor and add APIchanges entry for the lavu/tx changes lavu/tx: add parity revtab generator version checkasm: add av_tx FFT SIMD testing code doc/transforms: add documentation for the FFT transforms lavu/x86: add FFT assembly doc/APIchanges | 3 + doc/transforms.md | 706 +++++++++++++++++++ libavutil/tx.c | 83 ++- libavutil/tx.h | 21 +- libavutil/tx_priv.h | 103 ++- libavutil/tx_template.c | 481 ++++++++++--- libavutil/version.h | 2 +- libavutil/x86/Makefile | 2 + libavutil/x86/tx_float.asm | 1216 +++++++++++++++++++++++++++++++++ libavutil/x86/tx_float_init.c | 101 +++ tests/checkasm/Makefile | 1 + tests/checkasm/av_tx.c | 109 +++ tests/checkasm/checkasm.c | 1 + tests/checkasm/checkasm.h | 1 + tests/fate/checkasm.mak | 1 + 15 files changed, 2684 insertions(+), 147 deletions(-) create mode 100644 doc/transforms.md create mode 100644 libavutil/x86/tx_float.asm create mode 100644 libavutil/x86/tx_float_init.c create mode 100644 tests/checkasm/av_tx.c