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 91C314934D for ; Sat, 9 Mar 2024 19:38:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 70C8368CCB8; Sat, 9 Mar 2024 21:38:11 +0200 (EET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2072.outbound.protection.outlook.com [40.92.90.72]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9200268C463 for ; Sat, 9 Mar 2024 21:38:10 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oJGagCVButfogu32kKiMa+xUy9EjpfhLvXg8cXg83pYkm0ynT2gEDRAQsKxP69ueDpe05ePhhd7vNaFOKE3v7x9eCd2e26WIuAxrNtP8wuJRnv4L9WtusWbm/4imhqk1Va8XKiEIOi8vy+oDsIK3QtzZSp1GfydryFic1+kQCsg/GxPFtPEFKcgn10n8KhlON4OKIwWwu+IOHrRVNkEfT//Ofvcxv8Ckxi2ZfUwczF9wWQt/mdpVUhItD+Q+IWrx1f7JBN8pvfuIQIWjWJ+HvjVGtxQJ/KQoHdcsDkkpUvdG4LX5AmdGAId8HLhAWFb+qnkQFB+mgCEygDVo/w47xQ== 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=7onAQx2RBxMZUIv3Ckc1hXNUcc7bIShHFb3A+86cijE=; b=hwA+PcWr+GbsMcqYLkVo+MT3Xb2R81WbvPkNGn9uu3siYwz1NXZG5HZ5HAN4tnDCv8U7WqFwrH8afNLiyUic/z5Aj2OlsIXo5bsRE/9p3pntsj4f6nCdLdNUpFg18FEcxCgCpkYsgU99ic+wV9jGoMk3MCh0Z3BQciixrPZolFBBqnDu8KslZ+DQg4Y6ps4+lco2Ra/MLOJ8ddVL1X5Xs0w1W3J5KVLG+C0vDk1eV0yvY1GKf5cgVHt/b3TA6ZdPtcGhImlCcTDtJTfOUVOvYalTX1K04rr4hlCu21kkSXpiP2NAFVlG2TfiiAzEn3m00jFxsnMfbyHLYrbGemZtrw== 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=7onAQx2RBxMZUIv3Ckc1hXNUcc7bIShHFb3A+86cijE=; b=A4M92EPu5xww2CGZZ4b9xf8pzX58F0PkRfzMlbL3RGu2SESFwHhMLwFD2I4S2HuKX/ZHoehKz5/ODqHe6Xwz9LRRLjJJy3qQuUZoRb44ZNpKvuArim/U8GkjeBkttY80b/0ySd4RgAO9ZOa/1GHau05u0IC+QV+9w/H+SCFQbk1PyIBe9NOyvaBZgq+eNnbS0LbFKwBwQSrD9D4XgDqC5+OZ9DMXboOlWJrLsVfKFybabIlofb6VNnry6iYxvfj1gnB/os+JTS3nFSrUl5Ia2GKgy6L0D4Ujtnc/4Y0zbUrBmVA+qGDQMNfj2l+CtTQ2VIy+Nv56BMAspF7T7xVIwg== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by PRAP250MB0614.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:294::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.33; Sat, 9 Mar 2024 19:38:08 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::8230:ffad:27e5:20bf]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::8230:ffad:27e5:20bf%3]) with mapi id 15.20.7362.031; Sat, 9 Mar 2024 19:38:08 +0000 Message-ID: Date: Sat, 9 Mar 2024 20:38:07 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [ZagKiSS1l++XA4z1ZFPJcdp5o5sERDl2oGWNEPq7NsM=] X-ClientProxiedBy: ZR2P278CA0066.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::20) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: <8566bc06-8c12-4811-8cdc-38d311598452@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|PRAP250MB0614:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a3e5543-d37e-4ed3-2258-08dc40707255 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b4J0r4hSTaWjBqClWc9Ay+ihJ99QvNLUN+z1RlddmtjdO9E+6O//BklhM/G0GrwQs/Mejg7W3sqkpKr01LrZg/66NGX3gWe/qyPO6U7uBZWMs0/7fzEhwoQXL1ihlmy1dBVRnm0uoiIg3it8J0ae59ZfiuJOiXa+lkVNJ7bduAqrDFzjjaTTAvStU5i0lIG+hC+g7rG++AWKHyTTZwql5N1t0e2e4A133twima6ia0aWbUCJMJoCK4umq53BAJcKRPgkNd+vUSG/aylCIHdk3VR4yEJ38sqqUIYNY/t/nFMsk/8laX7/H4BUS+FjY7R9RFTRbrWqCPmgXoHELCIGUOaX836EoF0IvHyxr7Xr3TFlyeuIMusybiiXP4r93wSQJIDGFBBDCzqyud1UDLRya64Mf0XyqSxGLZLHAYReVTYaI6oeXq7pINumCrooUpQbZWatem8lIjj4HXJA3Aj2dCmovpuolhNYwwI1mHrGu23qffH2gvnBsCWrVpUUROCePnds3NIEia9+DJhRXd4Rmp1tRBLuJo9bdePI03n3rg3V3ANZA++xuvPKt+2g3WJ8 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VHF4TWJUajVzR0pRZlhyUTh6em1GemZVem9XUVR2amtoRVNWQ2htVlZvY2Nv?= =?utf-8?B?UjJhTUR1dVQ4SmZVSFczWE9qcmxVeGtVWjUvUFVKT3JNdG1QT2hEdXNKS3lN?= =?utf-8?B?YTRSMzBva0ZjbTBuSmNSRWdyb3VQWk92Mzlia0lVVHZPNzVSdFFlbVlrZG9O?= =?utf-8?B?aTE2NE8wR1NKdVdnajk1eVp1bUVRVURmN0ZrRDZUZ2Z3ZFhsTFBacU5iSy9M?= =?utf-8?B?WEpGbjNZVmxkSWVKSHBjNkRsYTNtYTAwUXRWZHc1cDhHWXBnN2RCUXI0S04z?= =?utf-8?B?ZzFpY2F3Nndmb0lmTEpHYnpVSEZHLzd0amRmK2ZkSEIzTHIrVFNoaHZGT0pw?= =?utf-8?B?bUFHM050cEsxS1MyVzhCYUY4RDJyVGhmQlhFbmNlY1dSaE1zWHdaUUpiZW4w?= =?utf-8?B?ZTZpYmxIVTVOWmhqd1A1ekFSZFBQYWJuKzVaZzhxU01kcUJjR3BhQXlmYTdM?= =?utf-8?B?dGZFa0FBNnQyeUlFeFdBM2hZU3ZGSUZGNEJ0Njg4V1F4aytvNDljRXBDeWRO?= =?utf-8?B?dXloWHZQZGJkNHU1d1FLZW5hUnBGRnpxQ1VwdUEzdjkzSVY0RUNGMW1LZ0FS?= =?utf-8?B?cnNSWXQ2eG9oVHJlS2pKQnNWWWhhbDViRGZUSW50MHk2SFpTaFo4NlhLcG1R?= =?utf-8?B?alIzN2Z2TVZNdmp5N1p0aHFoYTVOVW5tbHpFNXdjYUNXZk4xQWd3d25Lbzgy?= =?utf-8?B?MEhzRFVCSm9NTGE5TVlZK211OENBWTMrZzZkazVoWVh1ei94eHBXckZNRXpD?= =?utf-8?B?YUtIcDIzeDNTdW1nL1NGN2tFUXhXbWlZbmFJN3ppTXg2V2hTRlN5TVNIMDZG?= =?utf-8?B?dFlhSWZ3ZithSU42L3diWDhLdld6bTl3dXVQWExqVGJybEFGa0tUUXl2N0tq?= =?utf-8?B?bGcyeEpQTWc4UStUaFRCZVUzb1dabkVpejRIN1NyNG9HSlFMaVBGNDc1WndY?= =?utf-8?B?WHJzRjUyb1UrdGhNRzVMY1drQythWmpqalYxRUV1bk1oTGJUekUyOHdZeDFX?= =?utf-8?B?T1d0STVBM3dJaWxpbkxTYmZYdEJpdk8rNEtZR014TkRSbDV4Z0U3Lyt6QXd6?= =?utf-8?B?cnZrUU9UcHdGd1hJNHJNRnNvQUl2TTJFQ1praXk4dEpmNzBRV0dhaUgrTzV6?= =?utf-8?B?Vlh1ZzQyRDd1L1lOdElZSWM5OWs2Yy9vL0lyaC9lQUFsTldoZ24yQW1TZ1Jn?= =?utf-8?B?ZmFJa2dLVXBweWNvR0hPVjVpMTBMYlVYdVJ6M1A1UTRDVUJYUGdsbFlOZWJV?= =?utf-8?B?MHlaSzBDcVpzL1RsQXpES2ZCaGxNaWk1UytDTEpoaWZwY2xBVUNzenI0anRX?= =?utf-8?B?aUQ1eEp5NWV2WEVoaHJJU01ONUhtT25KaGxvSkZxZEFQZ2RBRE84T0t3QUdK?= =?utf-8?B?aDB1QmtYV3ZmSU1EMy9rMUwzN2xzeHpiS04yb3kxYlUwcVY2ZGJCTExRN0hL?= =?utf-8?B?Q3ltbHN3akozMlVkZTIzNGs3cm0vYk8wTE04dHRzUkdSei9JSkFUK3d6QUZr?= =?utf-8?B?a0NkZkd2ZGF0akJZQjk5ODRUclV2aUhiZi9ZRm1obkMzaDVPZzBNaS9wQnpY?= =?utf-8?B?b2JOMExXRjRndkpFdnVLUnBjYnZBQk9rUlBpYUNLaG1XT0VFcVh3c1h5OFBE?= =?utf-8?B?WkN2alFWQ3BJQmtsQyt1TkVqeTU1RlpxOXNDeVdOYldCaEljdjhDOENEMlln?= =?utf-8?B?YWJCcXVGYVo5QVQ2UEJIUEVvZ0tZaXU4VFoxd2VTZE1xSzJEOWZRV09BPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a3e5543-d37e-4ed3-2258-08dc40707255 X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2024 19:38:08.0259 (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: PRAP250MB0614 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/xpmdec: Use LUT for hex char->number conversion 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 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: Andreas Rheinhardt: > Speeds up decoding and also reduces binary size. > > Signed-off-by: Andreas Rheinhardt > --- > libavcodec/xpmdec.c | 25 ++++++++++++++++--------- > 1 file changed, 16 insertions(+), 9 deletions(-) > > diff --git a/libavcodec/xpmdec.c b/libavcodec/xpmdec.c > index 5bc02378c8..804cf8568d 100644 > --- a/libavcodec/xpmdec.c > +++ b/libavcodec/xpmdec.c > @@ -193,15 +193,22 @@ static const ColorEntry color_table[] = { > > static unsigned hex_char_to_number(uint8_t x) > { > - if (x >= 'a' && x <= 'f') > - x -= 'a' - 10; > - else if (x >= 'A' && x <= 'F') > - x -= 'A' - 10; > - else if (x >= '0' && x <= '9') > - x -= '0'; > - else > - x = 0; > - return x; > +#define TIMES256(idx) \ > +TIMES64(4 * (idx)) TIMES64(4 * (idx) + 1) TIMES64(4 * (idx) + 2) TIMES64(4 * (idx) + 3) > +#define TIMES64(idx) \ > +TIMES16(4 * (idx)) TIMES16(4 * (idx) + 1) TIMES16(4 * (idx) + 2) TIMES16(4 * (idx) + 3) > +#define TIMES16(idx) \ > +TIMES4(4 * (idx)) TIMES4(4 * (idx) + 1) TIMES4(4 * (idx) + 2) TIMES4(4 * (idx) + 3) > +#define TIMES4(idx) \ > +ENTRY(4 * (idx)) ENTRY(4 * (idx) + 1) ENTRY(4 * (idx) + 2) ENTRY(4 * (idx) + 3) > +#define ENTRY(x) [x] = ((x) >= 'a' && (x) <= 'f') ? (x) - ('a' - 10) : \ > + ((x) >= 'A' && (x) <= 'F') ? (x) - ('A' - 10) : \ > + ((x) >= '0' && (x) <= '9') ? (x) - '0' : 0, > + > + static const uint8_t lut[] = { > + TIMES256(0) > + }; > + return lut[x]; > } > > /* Will apply. - Andreas _______________________________________________ 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".