From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id AFB5E496A6 for ; Sat, 17 Feb 2024 20:03:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 70DE568D2EB; Sat, 17 Feb 2024 22:03:26 +0200 (EET) Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03olkn2089.outbound.protection.outlook.com [40.92.59.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 477B268D2D2 for ; Sat, 17 Feb 2024 22:03:20 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PuCv4QC4Xoq2bPNBYMHOvu6hHZwqT+rVwTj9TJHSgeKAr1RPFpE5W62ir2bHVhjXpuTrxOQk7d4LZxUr4oaJy58Ym67gufrKEsBDqf+dOJxgXJhw+ZCz9ZShLh+LId+44T4vzBDlqu66Cvk8TaAxG0xbzLjKbVviV2gGY7L4iX+L73I2OPfVwHCDrFRCmRl8cZptMSr/TKgbICAvay6QWN2RscMoUr5zEnc+fVyocm1EuNChhzk/qjlcjfTGP8LkCFYq3wpRsA06d0NOgu98LUCqywieUDt8K7z4nfNRcLBhaHQ3syc1t53aXQ+1dr8Aew4uGW5Wcd0QOvoyoXidjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ydWh8V7CEHfkG+uTXlivYteHKVqMF34hzCxdXro3V9A=; b=Lf0jkvNQvThFKuqRfW8V0rfjSBbeoi27IVMr/3rMKyBOmHMRUFOtB3oz2ok0Etf7Uc5zR1tb8fSUTa2qezaKEfuyB4nkqX/qVgrGYi5r1Zv4wNCjBEtaTz1mf0VSJn3RiXZL9IIkvh/XN1lL0Gf1ij6tzVAX1zO65LFfJEV2xFcYgefg8KF+PeakmWy7lpvl147u1tAqowHvb1ihg+P2r2KruFJwe/tCXMEwh7RlB1D8U5wstQlRwsM7T2OAFwrXUGbdApDpwRDCGXAA/txTex0O9wCHTFQW8wpmCGhAOCDHNk/ujvjM5xGPIyvbr+zFjCPD1WZ4ygDmJ678DWWGJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ydWh8V7CEHfkG+uTXlivYteHKVqMF34hzCxdXro3V9A=; b=N3UzWLMAdOesPZdJVxKC/Q4xf/DBW7gH4HZEmfpGiN4e9QZwLw60IdgJJ+8c5pJoyUcUWFlLxFdlHeMyFBMn2CE0OYxKIZqN7MjedIfbDBErZndIggE6lZw2jw4G46KUh1Q5ftIGrN/LJgbPwwDhBLtQDobiy5k06Qb7fXxGMZNCdpyp4y3QhZU2/HjCs5e0LRai4YAqc7NcwUdO3Tm6GisLHUcbd2Xb2H4NdPrj2dDnpOdQ0WIq3FFvfU3Zs7nEQ2jEpqRvA8EtuwmJohdrmv0aEbbLvL/+3th9OT1fILzFI+11pQZhKiz05Nc7sQ4uVWQU+3h3RUT2VI015tr8hQ== Received: from GV1SPRMB0063.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:109::7) by DU2P250MB0397.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:27c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.31; Sat, 17 Feb 2024 20:03:16 +0000 Received: from GV1SPRMB0063.EURP250.PROD.OUTLOOK.COM ([fe80::ffe3:46c:6214:2504]) by GV1SPRMB0063.EURP250.PROD.OUTLOOK.COM ([fe80::ffe3:46c:6214:2504%6]) with mapi id 15.20.7292.026; Sat, 17 Feb 2024 20:03:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Feb 2024 21:05:02 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [XjPaXriTdm3A5VoDAj44gEn/JyZRWYBF9HGJnGKmAzY=] X-ClientProxiedBy: FR0P281CA0233.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b2::6) To GV1SPRMB0063.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:109::7) X-Microsoft-Original-Message-ID: <20240217200503.2524467-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1SPRMB0063:EE_|DU2P250MB0397:EE_ X-MS-Office365-Filtering-Correlation-Id: b0713865-4d1c-432e-bf73-08dc2ff37ae6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5a5NsaYQjLpAMdASR0oin0b0sisxDwB4lt4YbpWQRBNmAoOm+PA1czl9tooWg08CRg4TkitKyyAFRxtw5eF2p7EvwhN7+m5U6Jr82+yurwk8dVhCnLd0SHw5pprkmBsqst5FSJsnMj9k1bDVhk6Owv+F0IcEq3G2BceMfbpL1c3c6+A/7qdOgbV9U4/wHtmxmJStsKemh62AM4V80+jFDfn4deT5iAbH0SdoX9GgSYra+zTHmlM9/E+5iPhk+KT7JC6nBZgncO2Gat5WIrjyLsvaQ+vLXPA7iG/6WOYtLQCsW44dEc8r5VqUuzhssjDMaWR/4pAo/oeDum+MbkqJ+AZBCyl1F7EqnJ5hf3DJnQ2+204zzAMiIQN9/WSZI06QmRkRmZA5dKiW/FusKwrO7dAoJT0r98TbruEoY0Ht9ZpkNyrv4CwFuBSd3AmThBo4ksdV+wWQNfu3S/RXeLRoJAB2ZlN2rhXuZ/OFOUgWMNFzr3g6Qg7nyZAzFC7k7DRhBdASsc8nuRK0TCZf4FGqdRMDT6LhAkZJMG0B6EKmt/gg75nuc8MjIlxZm7ZJZ9u3NZHbkV9/5CLq9xlBy5uTstpZ0yqr9xga49l/E7ACvbY= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5BPHLoEuyiJUml13LmquxVupjMFVcdom681yy9oAaLdoeibU5KqONhLidcnG?= =?us-ascii?Q?RCxEY64D9QTujY5FSRRMJdNu/RbcnNKk3TwGKuvmC57RBr6/EUCOaV/DtDrX?= =?us-ascii?Q?zO9AgV6TZ/vkQnTNtSU82YKLhtCCKejj9StUPi5HFMgjLJnOzklZ6RdPwGKa?= =?us-ascii?Q?V5AAX0v2Bti99cyZpuJ8zY4gFhqUSp4xs9zLbSN+4YUkzdihn/g824ERKFGz?= =?us-ascii?Q?eCGrbrjFNOzP/yoZjlDC3HXAyaXu6Sa3hSax++cAHawxnrf5gmPXpatVyJHi?= =?us-ascii?Q?hiy16lDpyDem5Hfmf9hrEG6Tjs2EiRC6NaxWes+3U7KaitmEZRALcjD/4wc8?= =?us-ascii?Q?0ijRzbuDHpbOR74NHbh3Xu0QVw9nhb5AIIL3SaW8jjQddZreBMZ1wnjAqGAd?= =?us-ascii?Q?J4kQ9WnYR46IxUwJNJPcTOUllXDhOKYYeFp1mcdXxRvn1g0Par3toF+N2bhm?= =?us-ascii?Q?5i8HfQlzoDg7hmm3KhbFBS/jbnoKBb/pCVdaYPClbnwIXgDAtSS5qkN4ZnXO?= =?us-ascii?Q?JxcAmVozkPludjmeWFTjxF+LMFNP0u2cvUwLInJFK1Wdl0EWxokWA3L0YPp6?= =?us-ascii?Q?nvP6DUAZuQXY4mKbzCL/Q6o8pviW1tPcV7cizynxPhZsJLPhSpDJ0+iv6K8/?= =?us-ascii?Q?JW6chUPfi+Reo6p7fU3J/FdYvH7OSvqElbIhCAwGIY6YC0xfOxhyN0lf1rqJ?= =?us-ascii?Q?atbrdcQm0fc9jbaVUpnfVYQNHimX+1NvQ66Vi8Jz2tR+C7BxU7aAyc3f6KjJ?= =?us-ascii?Q?lqDkafPraF4spS7zNhcyqgYi4zkaDuka5nATSeTA5CFikP05sv9bgNB92jb0?= =?us-ascii?Q?v+kg2k0bfacPJDGDfaRjyfqrAbst1F5Rc7/iKz85yCO04AsLf7uVoiqG5r2f?= =?us-ascii?Q?FkTIMCEe94Zvj9/7gIQOyaTVFUYGlmEaDryFKKyIvgQ6fP/51lYjmkD6sja3?= =?us-ascii?Q?Rtvtp6sACu7DZegjRKKD9aMBg+7DIlsg7IlqzTMI3qCCrgiQKbG/8ain81um?= =?us-ascii?Q?4PhbcVooe86Y3ntkpjuxMxfIeGtJ1G07SPE87bKaUoAgIBxJFOaBV+Fdk7W6?= =?us-ascii?Q?ee7hRm946XWBIJnuEE+Nvkg2xleZK8cW3d+0vzDcrUpSwfyPTSxLJ1CABa/r?= =?us-ascii?Q?inhgVFcs6kgb8YLxdCemn/7ilcjCVI05GiaLQ4C8eBxZS4fHlvT0BSopR0Jf?= =?us-ascii?Q?ezNazhYvVqn193FBVuTCq54seXe6o4yH/vgFs3AJMK51OFGORhoO4hdhId/h?= =?us-ascii?Q?zNMiiXQOVZW8SGWFMttAzlCdT++zz3iMBjLpoaav+Q=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0713865-4d1c-432e-bf73-08dc2ff37ae6 X-MS-Exchange-CrossTenant-AuthSource: GV1SPRMB0063.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2024 20:03:16.6723 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2P250MB0397 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/jpeg2000: Simplify exp2fi for numbers used here 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 Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: The call to ff_exp2fi() here always uses arguments in the normal range, so that the branches in ff_exp2fi() are unnecessary. This is so because JPEG2000 itself only supports up to 128 bits per component per pixel (we only support far less); furthermore, expn is always 0..31 for the decoder and also sane for the encoder, so that the difference between these two values is always in the normal range of -126..128. Signed-off-by: Andreas Rheinhardt --- libavcodec/jpeg2000.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/libavcodec/jpeg2000.c b/libavcodec/jpeg2000.c index 0aa984bc53..d6ffb02319 100644 --- a/libavcodec/jpeg2000.c +++ b/libavcodec/jpeg2000.c @@ -32,7 +32,6 @@ #include "libavutil/mem.h" #include "libavutil/thread.h" #include "avcodec.h" -#include "internal.h" #include "jpeg2000.h" #define SHL(a, n) ((n) >= 0 ? (a) << (n) : (a) >> -(n)) @@ -201,6 +200,17 @@ void ff_jpeg2000_set_significance(Jpeg2000T1Context *t1, int x, int y, // static const uint8_t lut_gain[2][4] = { { 0, 0, 0, 0 }, { 0, 1, 1, 2 } }; (unused) +/** + * 2^(x) for integer x in the range -126..128. + * @return correctly rounded float + */ +static av_always_inline float exp2fi(int x) +{ + av_assert2(-126 <= x && x <= 128); + /* Normal range */ + return av_int2float((x+127) << 23); +} + static void init_band_stepsize(AVCodecContext *avctx, Jpeg2000Band *band, Jpeg2000CodingStyle *codsty, @@ -230,7 +240,7 @@ static void init_band_stepsize(AVCodecContext *avctx, * R_b = R_I + log2 (gain_b ) * see ISO/IEC 15444-1:2002 E.1.1 eqn. E-3 and E-4 */ gain = cbps; - band->f_stepsize = ff_exp2fi(gain - qntsty->expn[gbandno]); + band->f_stepsize = exp2fi(gain - qntsty->expn[gbandno]); band->f_stepsize *= qntsty->mant[gbandno] / 2048.0 + 1.0; break; default: @@ -391,7 +401,7 @@ static int init_band(AVCodecContext *avctx, Jpeg2000CodingStyle *codsty, Jpeg2000QuantStyle *qntsty, int bandno, int gbandno, int reslevelno, - int cbps, int dx, int dy) + const int cbps, int dx, int dy) { Jpeg2000Band *band = reslevel->band + bandno; uint8_t log2_band_prec_width, log2_band_prec_height; @@ -466,7 +476,7 @@ static int init_band(AVCodecContext *avctx, int ff_jpeg2000_init_component(Jpeg2000Component *comp, Jpeg2000CodingStyle *codsty, Jpeg2000QuantStyle *qntsty, - int cbps, int dx, int dy, + const int cbps, int dx, int dy, AVCodecContext *avctx) { int reslevelno, bandno, gbandno = 0, ret, i, j; -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".