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 3B1F54A622 for ; Tue, 2 Apr 2024 01:38:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2747668D0EA; Tue, 2 Apr 2024 04:37:36 +0300 (EEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04olkn2066.outbound.protection.outlook.com [40.92.75.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 96DE868D092 for ; Tue, 2 Apr 2024 04:37:33 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N7VFCL5itI+I5B+OTAXeX4Ew1v3EwMUsi5pyH0jqpuT0D52jX5Sz82ATbgbE+lwy9yAJIcp835IeD4Dv11EFA3bWHrlF+sYme8W+gvFxnO0639+Sl4DtCw/tCxZxLyYrs5f1x/LpIy0tn3ecgvbJ2YdAROa/3e2ao195c5dzHfvPGHMca8Xsg1MDXpTCPSr+zyZdlrKxtPE1qNSWB6veoxj9nKsBpLoibzGNt19+ntOEELzEkOTyhkTEaGGktwyuVDKhPdF6CIPi82ZwQpOg8f06hL7cEGVrkKz2sXJO2odmTi2peF6DUvAH1f0LyYhRY8gWbsNZvXIP4oQnE+vNDw== 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=skmtGMrFfvpMMGlWgJd9EIf07xwDI2+6F3f02POnukY=; b=MXDSS9x4grFMt7AATzP+dRTISMhiDNEXFMVIR8COKxlmVOaqsldHyUyk9FjMy2Sa+p0ttCKdh8ygNTN0bvrRF58n81a2Mp8DqURXnR3lFDoD7ikrgKUf3YwA+9pTrDfZKd31xrW3oVQrlcpaEW7gGcxI00tgA8awnvkbheAHV+5hDligIAYqk+YbutQ6vrHLFXNPs8Ekow0AZ0x2qmksFGHYjNtQn8v6F2/j70aP2d/GVVwn445kDQFmTINfz6ahMe4B3dT4eh0TGmgWv/3bKXbNFn3f8BvQSeSNWQHFQtWcVK5yk9Jcapn7HSxLAuVfAEfbem3Il34YJdAbeJ+Uuw== 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=skmtGMrFfvpMMGlWgJd9EIf07xwDI2+6F3f02POnukY=; b=bhns1DRQmCX+qS6IUBQV3NyFOKIsERdeIiM1ozOwEaLlR0EPyL/yX64IHLN8zWg7/ODjaK9CIvQsIQqCt7urq6iLlC7SfvPkRd7H6zyfToZIx2CDJYvPANuLyiZxfIh8Vk7vEfDJqoEDgxYfoH8abRlgpg9loq9cjkzVVxODYDJq14TsDMqlT3HyzHw4bvXYX/+8PuHDDNjEAiJnge9D1yGU11G4sCW5s4ZDxddmoXn5EwlzudTvC0O+Pts1lCO1i7tju0LBEq+bjr4WE5Sml17Nv/l3htjwC8Ywzcx/TSLLbJICxuZYgSZLsCErkX9V9sIa9JZSqsnN03L9VUKd5w== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS4P250MB0416.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4c3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 01:37:22 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Tue, 2 Apr 2024 01:37:22 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 03:37:07 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [7r0dnWt7Lu4LWXrh41TLquLR7pehUaMXATuDyvFvM+I=] X-ClientProxiedBy: FR0P281CA0191.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:ab::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240402013708.1510327-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS4P250MB0416:EE_ X-MS-Office365-Filtering-Correlation-Id: 72d49391-266e-4ec5-4810-08dc52b57138 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cEAewtTImZgfVx9f1iwPVeNQpTB3UzQPSIGT+mIjdJe1PSIl8bfcfEBdkjYOo2h7CTbiljvBRluHVKeEGJwXxF9SMKvFAtp3Piilf1xOBE8IQ4G8I69bWHOj3mzkG4FKdH65WBSXd0rGtTV38Rn6nt+f1aeQUBNbs+vqIRez8RKU5kzHtJc4kc1c5/npsDnO2x3Kq0On1cNYuyLdBUdfkIo6+98k1DBvbu031Pn1XWTzsGbp53N/RJ1QrYsTjCTUhYzxzYVL7zFtnL/yfGeJK9RQkyWXKDn/DbPIWk5ZZQGzqgonWd7iQ5Hf0pnOor4FTEzoEWwkWkKfr9xumYJfRkDaWbyHEPC1rHanbXyYBqeWM3qpT331IVzgt4K5lGOTde+JSQG74cCzqVA+GzZxaK7XowwcsXSvCjHxdqDGC90BSPmCyEFCb+wpD5Gh1+MyfIYqZq2Ux8I9UARxYSzZvgn8aBl5lX4TcCwnGtHpx7wSmDNj25MrYabzOThkIAPg2YpLP/2JFFFhIPThH6sS0EdSAFmFZuTbWj5l9OIogxKZ1XXXleUYz+YJOTHtEGxu6sdBF8++pqtLqznXQz9/fvh5MHnsqO0a7JUqSCgg5BKfMOK9Cx4ro1/Xy/x+vM5q X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QS2EzNHpfFY//QqRxFNoY3oOpfnyBSIjdW3ZRTuVmi2FOS+oqynHlpJGz76r?= =?us-ascii?Q?r5gVKkcqmEbBXH4dJQtVWo/O8Q6y4I8WDjAYJXhw0LZlx0YSm3vJxw5NFHGi?= =?us-ascii?Q?ylolPvQsIRZisvzJQkNC/CJz3k0Enj3jRrbogDLOJ8kxoLYIdjZoSCs2MwXj?= =?us-ascii?Q?R2rZYARIbw+upPXDnsMveDvmhYcG8/PALjH5zJtQrfoekHbIwZN+q0HGuSAC?= =?us-ascii?Q?Abu8DqG7/AeQ7sNnhqyFc9id/Zm95uDE3LuLXK6hPK5add9V3HZD83jLB4Lg?= =?us-ascii?Q?Zz851tObU+dvXLfZ2cey1TnUCfgvOxhOJlSu5THFPq7XhkZWm+W1BCdNbLc0?= =?us-ascii?Q?P0ZY2bs2iSavE9nSsI3qpCzP8eQE5aC7Gg/W5hXdLpuT/a6JC9JvDg6ZNclJ?= =?us-ascii?Q?dp7T1oS1V6xV1xneG4T8KLlerMcFik06uhjD1bWyrxJfbB9hF/PkOEKMDhXf?= =?us-ascii?Q?ihCFRQGDukpoxInFDUXhB8KGbGXasZe6o1399ygiyKz8cHx1r0WvFBOT9/MU?= =?us-ascii?Q?QaW53kCX813nnqmwb4XhW5H4irnyYYpHjlVn+LIozVNjIBCnCJcZPTHPv9Xx?= =?us-ascii?Q?m1VzB7DAT03HcDg9EBK0TNB23HnaX4nga8LBfj4cZs9SjosUBYqT7e6plZ3g?= =?us-ascii?Q?OcvWHJPh4MeUJLatx9bfEAQ6k6TbBOEEr4K0gK9n8yYM1/eNKsWbWkx8JCWK?= =?us-ascii?Q?XkvOQg2qU2qNwa0dGzN1sJ5NKpy1vC7e6R0SY7uNQBZsLa6Eo42cmVwcgPaZ?= =?us-ascii?Q?GCn3P/1aIq4n/be0xHGrWh6kCOhaJwPble2t74+OoELU5GSr0vUvW+uINOiA?= =?us-ascii?Q?LCtN+HdK00bjsdBqGQR338cHtKeosOn6MeBeCrVcaQPZSvmX8u4r/RIx+rAt?= =?us-ascii?Q?SNyaRSUPddzLFET3xHq5UgJ4IF+kXSi484g10oTiA9ZdJ8YmITzhbMLEWRTd?= =?us-ascii?Q?iA9SImadgCjXBnoIOWvUdN3AltsHJqEZ0IHeJpUT1CESzWMP3ld0ppXJofWU?= =?us-ascii?Q?ph0TwH7fX1F0egKpQr9imcJewUoHlohoi9Q0q/GhOh2Rqiza/5E+XsBeJAEp?= =?us-ascii?Q?EY+x0xATEAJD7ZHh2MERqpto0OvNa3IqRp/j7NtaxA2yrxI6OTCSsvgl4z0T?= =?us-ascii?Q?MCm8tSP7c0vBqjtb4BF/L+06oryfr7Ar7nUTgMeEWIkDS1h5DjYYLIweYOqF?= =?us-ascii?Q?HbME1Nb+v2BVd6hVTwIkRUjrL/sbL/sVRBJrWGuJIRAGrELbl5e5QI5mXz6n?= =?us-ascii?Q?EG6Q/tAUFMVGIs19VuT43qxXP4/2WZVM4xLwUANQ3Q=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72d49391-266e-4ec5-4810-08dc52b57138 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 01:37:22.3313 (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: AS4P250MB0416 Subject: [FFmpeg-devel] [PATCH 6/7] avcodec/dsd: Hoist branch out of loop 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: This is possible by not converting from LSBF to MSBF; instead add LSBF LUTs. This approach necessitates reversing the initial values. Signed-off-by: Andreas Rheinhardt --- libavcodec/dsd.c | 12 ++++++++---- libavcodec/dsddec.c | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/libavcodec/dsd.c b/libavcodec/dsd.c index ec63a706f6..1093c5e2dd 100644 --- a/libavcodec/dsd.c +++ b/libavcodec/dsd.c @@ -68,7 +68,8 @@ static const double htaps[HTAPS] = { 3.423230509967409e-07, 1.244182214744588e-07, 3.130441005359396e-08 }; -static double ctables[CTABLES][256]; +static double ctables_lsbf[CTABLES][256]; +static double ctables_msbf[CTABLES][256]; static av_cold void dsd_ctables_tableinit(void) { @@ -81,8 +82,10 @@ static av_cold void dsd_ctables_tableinit(void) for (t = 0; t < CTABLES; ++t) acc[t] += sign * htaps[t * 8 + m]; } - for (t = 0; t < CTABLES; ++t) - ctables[CTABLES - 1 - t][e] = acc[t]; + for (t = 0; t < CTABLES; ++t) { + ctables_msbf[CTABLES - 1 - t][e] = acc[t]; + ctables_lsbf[CTABLES - 1 - t][ff_reverse[e]] = acc[t]; + } } } @@ -100,13 +103,14 @@ void ff_dsd2pcm_translate(DSDContext* s, size_t samples, int lsbf, unsigned pos, i; uint8_t* p; double sum; + const double (*const ctables)[256] = lsbf ? ctables_lsbf : ctables_msbf; pos = s->pos; memcpy(buf, s->buf, sizeof(buf)); while (samples-- > 0) { - buf[pos] = lsbf ? ff_reverse[*src] : *src; + buf[pos] = *src; src += src_stride; p = buf + ((pos - CTABLES) & FIFOMASK); diff --git a/libavcodec/dsddec.c b/libavcodec/dsddec.c index 2bb2e73b75..dd1ea83784 100644 --- a/libavcodec/dsddec.c +++ b/libavcodec/dsddec.c @@ -56,7 +56,8 @@ static av_cold int decode_init(AVCodecContext *avctx) if (!s) return AVERROR(ENOMEM); - silence = DSD_SILENCE; + silence = avctx->codec_id == AV_CODEC_ID_DSD_LSBF_PLANAR || + avctx->codec_id == AV_CODEC_ID_DSD_LSBF ? DSD_SILENCE_REVERSED : DSD_SILENCE; for (i = 0; i < avctx->ch_layout.nb_channels; i++) { s[i].pos = 0; memset(s[i].buf, silence, sizeof(s[i].buf)); -- 2.40.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".