From patchwork Tue Jun 14 14:44:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Tomas_H=C3=A4rdin?= X-Patchwork-Id: 36231 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a22:b0:84:42e0:ad30 with SMTP id cj34csp1115782pzb; Tue, 14 Jun 2022 07:45:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhNxRHXJbpcjUrCA5ARm1t/YyZReegIct+ERnnENsd3H6DwaxqcOyNI8MQUeDKZMRj5hjU X-Received: by 2002:a17:906:6946:b0:70e:e904:8e87 with SMTP id c6-20020a170906694600b0070ee9048e87mr4567551ejs.629.1655217900831; Tue, 14 Jun 2022 07:45:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655217900; cv=none; d=google.com; s=arc-20160816; b=N2j8G3oy3n9NOGN+KJGSBY2t1UMyeFxaZs65Inz6aSOT2Ke2an29y78xfRZ/xRHjwW LuQL8uFzY9bliaXYg0L1lnGtSA1w/qCaYj6AblwJymWrNpc7f78Mou+rzML8lY1PmXnu i4fsFUkMAixKKr+Y4D4OfN2rr7LJ2vkhyp+VBil8T+5ODGJZoWGksPYJbxKwHomE/0bn DkLveBK/B1NrSfuRqXbBASxIWflGK1w5cqQcl5rHKULmA/TRXV91JSP6BlduAdhta6uz nttadP5aamV2C8Fa2QmMmyUkX2bFwVcYzUXKhZouRQnO6MIf6eQVHzNQmllzywCa+5Hd NMEA== 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:user-agent:references:in-reply-to:date:to:from :message-id:dkim-signature:dkim-signature:delivered-to; bh=SeNpFLNjNkNP+oxiT8yyAkD2M1xNd5M2ccoEuBr3gZ8=; b=XZ9WjamIBuF9KF9sc2vg1KOrblCnQYNNRfYYQqKL3lwljXg35hdziF32GnLahqvMwY bKpc13mTryOAd2uPbwMiMvnjdbOIGVM9GnKURJIigycLbcKhuNh1onu0J3lEoRx0VIrI vkNObBaRZRpgrvvbqhLhW/77nzGeDQrH56ERblnCH/1Btkf7Wz5c7GQ8Ca/8wbasE2UH T+v+2g74ZYMgWUtHJ+abpKBV0ohb0rrXxbgHfpezta5gw7dOfGw6FYe2EXZBp32njLgw rUE7e/bwLV2qYWc0FQZTIwlWAKG1EMVl7UQp7FRe5fVYei7DY/ptICf8ZQXFGL/5LnJW Gn2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@acc.umu.se header.s=mail1 header.b=nEeDTcDn; dkim=neutral (body hash did not verify) header.i=@acc.umu.se header.s=mail1 header.b=fr6ROuIE; 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=acc.umu.se Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hb36-20020a170907162400b0071209f03c59si12801242ejc.630.2022.06.14.07.45.00; Tue, 14 Jun 2022 07:45:00 -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=@acc.umu.se header.s=mail1 header.b=nEeDTcDn; dkim=neutral (body hash did not verify) header.i=@acc.umu.se header.s=mail1 header.b=fr6ROuIE; 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=acc.umu.se Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B48CB68B6AE; Tue, 14 Jun 2022 17:44:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail.acc.umu.se (mail.acc.umu.se [130.239.18.156]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 87B2B68B687 for ; Tue, 14 Jun 2022 17:44:56 +0300 (EEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by amavisd-new (Postfix) with ESMTP id 0C75244DCB for ; Tue, 14 Jun 2022 16:44:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=acc.umu.se; s=mail1; t=1655217896; bh=AT+8gOIKoOXEp62pLohNRsgnlLZWgPe2Tqt5XRodzR8=; h=Subject:From:To:Date:In-Reply-To:References:From; b=nEeDTcDniyObmWZHmklZqll0zd24p1c2G69APupL3aVlizSCGxD6z//EQRB8kCD31 q9+Zmi0Y6hGtdb3RaNsNZ2d2QGy+B5U5BJZrT2gzD6AZ1iSqhFMILUk+Om740wpdCS 9ty30N9yhFwachdUubP/1bExOwMgrkrQkOP4qX4PBx9RMS3mEQIEmmP/Fm2GUn+mWP 55JgD1K05f8NfkHAT09RTTk5aUgfZjgYVGHFUAzk97BMaX+3WGs6Uk7ctiAjj2j/xW 2bPyy6gA9DSbFQNzP1gXWA82qSoOcqTzh2SUlUOAejiIAw8BfUcIvmgmjQWYp5fSg+ KuHSzCKwY5nBw== Received: from debian.lan (unknown [IPv6:2a00:66c0:a::72c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: tjoppen) by mail.acc.umu.se (Postfix) with ESMTPSA id 8F43144DC6 for ; Tue, 14 Jun 2022 16:44:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=acc.umu.se; s=mail1; t=1655217895; bh=AT+8gOIKoOXEp62pLohNRsgnlLZWgPe2Tqt5XRodzR8=; h=Subject:From:To:Date:In-Reply-To:References:From; b=fr6ROuIEiHjFqnacQ+YfWykVZVVLXIb5mpUjBb3Wv2zkPC/1dVgo0t0qQW8m4xTlh xolHfFuU//qHXWB7I7rmGLiGlJL93x+gwDHnxxFmEDVqtA37yX4yhb81I1kkvMBlJW tCw0HtZZzeH245G9yiOhU1GsGKz9fNSuLcl5hO/LDNOWrA9A7zDhEkiXBGvf8mK1wb qd3ShyFQ7Vbh5QG2BsKtYsZIQZCTQ34WU8ZJkRKmgfZYbq4CH7l1zs80U8vnVwGBxZ R1vzfk7k2Of9GuxJa6IS4Rc2XsPxWQ/FcVWX69uZx/br0etS0V9/YFyKqCv1IeW7pj rbY7+KW2Kfa/Q== Message-ID: From: Tomas =?iso-8859-1?q?H=E4rdin?= To: FFmpeg development discussions and patches Date: Tue, 14 Jun 2022 16:44:55 +0200 In-Reply-To: <10ec51ef44325c2de6d5de7b994a9b6c8eb5e3a2.camel@acc.umu.se> References: <10ec51ef44325c2de6d5de7b994a9b6c8eb5e3a2.camel@acc.umu.se> User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 12/13] lavc/jpeg2000dec: Use coarser slicing for initial reslevels 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: bxC3rvLI2OnH From 15761070d1cdc622ffbc5d6aeb0a50e063361012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= Date: Tue, 14 Jun 2022 11:19:06 +0200 Subject: [PATCH 12/13] lavc/jpeg2000dec: Use coarser slicing for initial reslevels This brings -lowres 2 lossless 4K J2K on an AMD EPYC 7R32 to 52 fps (2080% CPU). --- libavcodec/jpeg2000dec.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index a2b9f0166b..18ebe5219d 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -2679,7 +2679,16 @@ static int jpeg2000_decode_frame(AVCodecContext *avctx, AVFrame *picture, for (s->reslevel = 0; s->reslevel < maxreslevels; s->reslevel++) { for (s->dir = 0; s->dir < 2; s->dir++) { + int before = s->slices; + int div = s->slices >= 96 ? 7 : 5; + + if (s->reslevel < div) { + int halve = 1<<(div - s->reslevel + (s->slices >= 96 ? 0 : 1 - s->dir)); + s->slices = (s->slices + halve-1)/halve; + } + avctx->execute2(avctx, jpeg2000_idwt, NULL, NULL, s->numXtiles * s->numYtiles * s->ncomponents * s->slices); + s->slices = before; } } -- 2.30.2