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 93F7449371 for ; Sat, 9 Mar 2024 19:38:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A9DA168CD3F; Sat, 9 Mar 2024 21:38:37 +0200 (EET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2085.outbound.protection.outlook.com [40.92.90.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 35AA168C442 for ; Sat, 9 Mar 2024 21:38:35 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=INNocgGNSx2E5Ae+K5F/a6RU/NBWt27vGfXIkRCFv2BwcBnWKIDKE6OeELVcW/U9LgTaxDN0lLsZtTjC1M+OpYfHByyQP29/i0vTcA5k2dQuaf/+a9e/HJKQXksEuD20gKjfo9Z/U3N9Wwf9RC+cdN49Ehm/56WehO1EFsKWDHIVZ3OgxkBZPNcr5mABI8KHXkgX4P16ikRkbJk8Pw70/eNctJ79ZIvxjLtjlEVExLoU4Xz2NXKnx0MLnQwZxN0v0Ctcz4MGi5avKksBs2RbAZTMFxET47KqwyjwfoUqXNLlPRpYAPzK6Sx+/zGDuEbKa0dQUCNR1PNzYTNfkFMpMg== 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=ORBtsEUkTenAlD88funh2ZagMyay5Tin834mAjzoE/c=; b=nxbVigQP29d79oo9Av+dn8uLra+DWFFZIT24dFXRUTDAaSpKYCvsILW2t0MWg1IE00aB7+PslzVkcQEeF+XJ3C03tASUfNTiCaHuT9hmw5B21fuCr+JgEro0Npt+QGcs6dHEBUZahm5sZjHs9OaRjixL/XHpPfDVhR9rn+vkC/onWZQoxbPk1GQB9svpuTlt3qo0jFRYj3Dsl3F3fK4SR9DQFkmI4k9ZV/OVaphp3mRqImBaubZodj9VUPAFPNVJhWZSea+Vo1Ria/NpWqb02lGHFWnsgKqIWyvUZAuKQjnNBlVw9nugJf4Js9vR4FjxGmK9WjvNxWtUIy2MU3bYXw== 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=ORBtsEUkTenAlD88funh2ZagMyay5Tin834mAjzoE/c=; b=QHzpMvks26ZXH9A1ZiVeQ+oXG1EAg0XlRpulfSIRoZbg1sbQp2TaGzd0AxJCKtI4IIb3FcTBG4dF0QgYENGYYRefFqd8u40N33s8omEXvSWdk5Gd4ZCovm6tcoWS9XWybcPnO2at8yhKy4MEI93D42AgjsZhVPHjzNoQHWbBpzBBwMmZcbJiXH3Nme0HBFJj+OeW6Atn57sS03Yk9DSyVZQcyGzD06nGPpjw6F4S6TIEJ9Jqelt+xcjpwZEfrcjKBVVPwlXKewi/4UXy0kgFy6ulC7uDAu4N8zxb52lKc1TjgHnloB5qmuVHho5zznbip+NaRuwEGn7rJP/7GXWVIQ== 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:34 +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:34 +0000 Message-ID: Date: Sat, 9 Mar 2024 20:38:33 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: From: Andreas Rheinhardt In-Reply-To: X-TMN: [/lNAO5ngBPvfhl7YHLXVINUOHMOqa9Di6c/Mhwmo68k=] 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: <7c11aa75-ccf2-4bb1-8b94-9196d58a395c@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: 8dd48f07-28e2-433a-5611-08dc407081f1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KB30YsaaLYoRKpJRUlf2sJZB3BO3Fi2P4e6IYlvyj+YtNGBYW6RzD1LLkOpuXwpfrNemMDpUULw2trQNMOE7WB9FUTZu0r1wpvOrjBHN13oyy88xjW3xAUkADmFM7wErf4CVrTm6xyUwwCsiW4lkRxvXJ/oqx0fdOKB04D/MB/9aOyVBk4zhuywjQPFKw2dnEa9Ej5K7WddskTNc5vQhbmozJbX20bkkK1lFuHZH7vGmZwnb/RhGyt1czactjoFRvPaVLncCMzsSjdfTDsUHXz4yjMu+e+RgITjR732VqlDmpPmkmXUG9wSBkSlBsYGW+SZh07iLHEXpWR8Kig2cCAMyTyu+trO+H8xBk3qrVegmBT26AlhSakaTIpNtvn29mvRhO3K10VGCRufytM8HAlXSkRneYLrU5wUNDfMrHh1yeTceiPH3RM2sUE9cCTFCmmswcKBYEcfbCDy1QuMT8jPMTOgfCooDuaJ6gFBwUYsqclNxUsW7OMzxt1JUDVASzxGTfNVtwWol5PYNQ88WvTb7C9gjaooj1lpIgEl8PaNlCTYr2HgRYfdBGQxeL18sWljs0hw51bl0FQfRsMbX3rvy8gtFtbgkTgbo1JE2PFqsMJi1wCMhgcPIYuMHqEx7m4sLmk7fPrl0rSH0VbAY1fTXh+KBg5OXk+vTCrA5Qnc= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ekloMUhRMElLQXpwQ0d1OUdMTmtYNCtueGdsV1lvK3RkM1J4eDhyQXF5R1Ar?= =?utf-8?B?ZzhkUWVlUWlIS1l3RXhINHBibGJ5L1dyTnM3MVBhb3k2OVR5azZaa2UycGEz?= =?utf-8?B?c3hJSy9rS3pucXpFdE9yL0JVbDUrWk5kVXBMaFU1RWh2WEI4NnY4cDIyVURy?= =?utf-8?B?VHkwQ1c2SC9GSDh4elMwYm90T1BvR2lMenZzM1pSa1EzZlBIQVZYVWFRaHdn?= =?utf-8?B?eE9yNlptbHNlRnEyWFc0UWVPQ29GcHAzZmVpL0YxOWRLQlhadUtDMlNLUGhn?= =?utf-8?B?NitidGs4SUVpdW9EL2J3bDNsQnFZTUp2T2Z2ZXViOVRlL1c4UGo3a3FKQXdy?= =?utf-8?B?cnBCL1pRY3ZtR1NyaWtLa2VXRVV3dDdXNndIbjVYVEIrMWtIK08xQU1UdXVk?= =?utf-8?B?U3piWUVrTDcvUTdEenE5K1o0MU9TNExmUWw0MVBXRUlWcFVsM25EZjVwWllX?= =?utf-8?B?Vmxxbjh3QjdRQ2NXcXhFZEU0RlJEMWEvYUU5Tk5IbzFlNTRCcDBiamVhemJG?= =?utf-8?B?RitjL1dKbFgxOTNXVzR0aEZ3QmRrQWM4ekQrcURMY1FtbXE1SXJXa3BBRXAx?= =?utf-8?B?dzlaZ0NaZzRCUUNGbmQ1VlF4TERCOGg0NTRqejFsb1JRQzZnNDByejljY1VZ?= =?utf-8?B?SWx6dFFVRkh5eWhieG5pNWdRUStwUk9vZGpBbm5aOUtTanlrRXZGSEJIK0Vz?= =?utf-8?B?OERoMTF5SStGdmsyYXc3WXArbkdUUGsza2FuOVNPc1RVdGJmWHRVZjkyd3Za?= =?utf-8?B?T2JWNnYvd09iOExkb3hENDJyNGp1cTFtQUZwVUtNeExGSlNRMWlWQThJSUFC?= =?utf-8?B?OHN4TmxpYXJaL2V4N3RUNytMZGVmL1dzSFpEQ1F3b3NyU0NLeklZUWE4N2Jl?= =?utf-8?B?eDF2bjdQY3BDRWpVRmt0em9rRGdOT3g3SzcvUEhidm85NmtNZFpJNSt5Q25w?= =?utf-8?B?UG9sTWRoYXVwbmxuUzk5R2syM1l5NTE3WWk1NzQ3NkUwUlBXaFFBVmpxdWJi?= =?utf-8?B?dXN4SUFMemp0dWNrbGRJK0Fud0ZSajVVQm5nc1JoZ0w4L25US1g2V1NHK1Jl?= =?utf-8?B?SElkVTM0MFBVQmJ1djZaRklwRm9nSFpMbitqcmk0Y2FraktVRVJvSGRkZEZz?= =?utf-8?B?TmFwQjIwQUUwUzM3cWFpN0h6MUJIZU9CVStrMVg4dUxaWnpzNlZNOHRuVCtM?= =?utf-8?B?WkNjM3V2bDdNM2VmQmR1V2I5ZzFyTWZSYlVGNjhGQ2Q3T09LdGxWNWNsMXZ1?= =?utf-8?B?TzhIOEpiL2hkbXIxYjBWT2lpYS9BbnlxVkthWnRVdWdEZkRGeE1MQVlOd0ZO?= =?utf-8?B?Q3QwVk9lNzJhSTYyZWRSZHJQTWNuNURFUVB1ajVWY2gwMHQ3ckFMZ0ozbHdo?= =?utf-8?B?NUJNZWJkM1BIWlJWSHZSR3NjTWJidjNEY2JRRzIvZEV5eUJYaGZwZnVlK1h4?= =?utf-8?B?UVZLZGdNUUVEL2VKdk5VR2w2Q2o3ckdId0hkakRSbEVQV2lwb0h1a2krNkJ3?= =?utf-8?B?SFhudkh4UGV0RHk2UHZMWTJlTjNsU0hwOHZ1SGljRU0rY3Zrb2VGSlllem5N?= =?utf-8?B?d1AwK1ZtMVdZZGtUMDA2VlQxMVFnYTczYjRnNTdaNlRHT3o1ZW9iV1A4QTVQ?= =?utf-8?B?K2pOQUdlNURYYVg4U1EyYkdkUzRmNjFraW1TNUcrK01yd0RyS3ByYVRRL2Fo?= =?utf-8?B?cTVyWXFrdzYxelpGUHhpbE9FakNhcEpNNm5jd2RiVnBKRUh5OVNKbzJBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8dd48f07-28e2-433a-5611-08dc407081f1 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:34.1915 (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/xbmdec: 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: > Improves performance by about 30%. > > Signed-off-by: Andreas Rheinhardt > --- > [1] is a patch that would also move the bitreverse into the LUT; > it didn't make a difference in the benchmarks here, but if it is > an improvement for someone else, it could still be applied. > [1]: https://github.com/mkver/FFmpeg/commit/d4fdac5335d2ccf29f7b55fe3147edf388bb7efa > libavcodec/xbmdec.c | 27 ++++++++++++++++----------- > 1 file changed, 16 insertions(+), 11 deletions(-) > > diff --git a/libavcodec/xbmdec.c b/libavcodec/xbmdec.c > index ecfc957a3f..2d84327e02 100644 > --- a/libavcodec/xbmdec.c > +++ b/libavcodec/xbmdec.c > @@ -28,17 +28,22 @@ > > static int get_nibble(uint8_t x) > { > - int ret = 255; > - > - if (x <= '9') { > - if (x >= '0') > - ret = x - '0'; > - } else if (x >= 'a') { > - if (x <= 'f') > - ret = x - ('a' - 10); > - } else if (x >= 'A' && x <= 'F') > - ret = x - ('A' - 10); > - return ret; > +#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' : 255, > + > + static const uint8_t lut[] = { > + TIMES256(0) > + }; > + return lut[x]; > } > > static int parse_str_int(const uint8_t *p, const uint8_t *end, const uint8_t *key) 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".