From patchwork Tue Sep 26 22:17:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43945 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:2a18:b0:15d:8365:d4b8 with SMTP id e24csp2210264pzh; Tue, 26 Sep 2023 15:21:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGM/88ciPH6wehh/yXhTaqR57gPlZoEyVhLJkImbpadkdYT/7f6TcfedB43PNeaKXcW+wNw X-Received: by 2002:a17:907:9490:b0:9a5:aa43:1c7c with SMTP id dm16-20020a170907949000b009a5aa431c7cmr5417804ejc.26.1695766871816; Tue, 26 Sep 2023 15:21:11 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n25-20020a170906119900b009ad8acac02fsi12145199eja.29.2023.09.26.15.21.11; Tue, 26 Sep 2023 15:21:11 -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=@outlook.com header.s=selector1 header.b=FruxRUag; arc=fail (body hash mismatch); 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=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 898A568CB0F; Wed, 27 Sep 2023 01:19:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2090.outbound.protection.outlook.com [40.92.90.90]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 88BD468CAA7 for ; Wed, 27 Sep 2023 01:19:06 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aLGk58nzZuv7A9VSfvAhPc4Yw1gFAl0x+n/1cF3+Eh00lzymdxJ5KHcTZ8WqM3lwYmGzRn2fAcCbf3CLnMjSB0x+ZFUaS+ssnInuGXhca59osLHc+wbtS3T2cfZITuke1CN0g9HLVIqcZhTV28Uj45wSfj51PkRnFb53tReS5x8B4KFk0h++93nt5iesg5LuRGIBEdV5klROG5EdcksoRtlaiaf1hXvWIOPfyKyVSQacnu3D/vmDVaTH2PTuoor9iMYVWJ1oGicqYuHQzuPrXBg0S2+/fYCNRnz25T7/7j1SoN/oOhVFl9YEeN0QonkZeG4GAuL0J4sr8eZ0G5XYCw== 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=FqWynko3JIS/udIk09UJzNoYfUEqIZMK55rVEXIUWbg=; b=oOXkX+LHGebTbLbnwVv0pAH/5myO6OVRybP3zA3pTA9ABqHiC2U0unAP+h522iO376irRrMIr3sZnYt4CGyJmev5J7sKFlMO+rE55IDawB2xhvwRKqBZMqlJxTqjoYxREherWFhq5DFzM2K+0rppmWPdHE9WtaVc925JL0DSLcryvkanTMbCwaOTKmD1XGrNf7jFiIvmAg5ncfTmX9uyZnRijk4HOC1A+GdPaXVsa9FZxufVMvlOKnxZ4tLR/sqbQKRjDZvtQt5pX+lvLDA0Tnz6qVjQppYNCJ+AD1HeYKq+LACnsCS00j3B6XyqfrgnHd0psroX9n4bbkMBfiCItw== 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=FqWynko3JIS/udIk09UJzNoYfUEqIZMK55rVEXIUWbg=; b=FruxRUag5FshqgEflL45SZfhNBAFuNb2a5N69g9YHGMzVyjqhwbeiHG+u/zudldBHhVNDLreTQKKRTZ3JcDPAFJXSk26pAPBLraest0bjnK2mhwogReOmOOCkXdHYKQsmo6zZK6chPnMen6pvQmE4LjOQ+xx30ZHhBdZjbcCwbeL462fiLTPhvio1028uvQ3pglpmcFMptmEqsCGdrBSIkReqFiuIhxUsffXkRv7CJL1EiKDkB0UR3TIg8pIvhFlxZLqmQD1vEZsPX7fzSUhRCGPcGyVXs1400DhS4NTVZPIPgwCNb1tSRrk3l4svYBggWhKXJNUzwdKlHVJ3vfk/Q== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0189.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:275::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Tue, 26 Sep 2023 22:19:05 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::9d42:7b4f:71ef:c76a]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::9d42:7b4f:71ef:c76a%3]) with mapi id 15.20.6813.027; Tue, 26 Sep 2023 22:19:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Sep 2023 00:17:04 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [+jQycy1OqHraIh81t4HpKjURz35r2G5X] X-ClientProxiedBy: FR3P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20230926221732.3711507-32-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0189:EE_ X-MS-Office365-Filtering-Correlation-Id: aa6ea8f4-0277-459c-42db-08dbbede9853 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: heTj4JjCEsrLA3q8KbZH3JapZMyowrLm/C43JsVvG+SvsLI1H+pvL3h3rYwCzmM8BfMpzImdVAyqnp63v5/0xNbmvV/VY8l8rXUFLmF8TzfhFvR1WC85I1vfhTL5Yoa6rzvIGWCaHjHOZ9nWZzIeF2VB+xqd8Y6LNaCAIShLDtZMLgVdXi25MhejFbSPiCt9vQ4DY6GrWrvQkX0C1HyJH2xgSQaxM1WTeJzfj1EFLdx5P8htGY1PvAnmXCDclvWSfBVhrNMbhwY+YiKjVmPyhjzVgBM6yX7JW/+0XRk9skXFOCa7Xm8Z5a4lp77VFbIfLLyF/oYr2Lj3JWkn1GHcCK34fYjo5KbnueAKyAfCgaG6qE/GSo4REoWUqQFiN2zW9PS6CY9uPw31KNe+vwip9VXguyFgLUBa3EpBI7ZQfkvBv2ZSsuz5D4pRQxThaBpqqGh2qFdExGHVQJej9YEQ2ia9zn3qKp/+oigj0KhHZ/B9yWEgsDy3NkrkCPnJKTiB+5rAaZ/yPDILjB+JJGqgb9aOzfUUf/jwVyj7rkc1DJDXKySivH25VZlLT9zZtKKJ7z3DNT/BfAz+pTSM1j7ndjMl07kConx8N++kKKiMo8a+aKKboLUrmxIz1XeF4tJu X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: haYURybtI9TDvVrD1DQlOgIgYx9XBwI+VSof9qCg1W/8S1czVTS2n3VCBJeWGwTTjrbswBxikTq6Og7crYb8KsvGbRx7EOIrA9fwebnSLxKUfJYg5+jpM8FIo4NUk0NsIVRw6l/OWBGj92pA6fgXwdivRgwInv8FuyWY+JaChOZBBRpdFafifvMFAqA2xCvu0k0dXYL0L3/7owryBryecJwOQY4f6MjJn5mdqGjtd6f+0S6qfGwZ1oUZtkaZUwqOK33Sb6se5ttkTtUhADAdouMamvrDPHjj17Dd/6I/FGBCvxVj7imtlGlhxRJJdZUoobbLdtC6igWvtqtUndwlSsQ4FR/rvGletm1BLiI1ehIbt2EsgVOpxIBNW1B2fVkYOYdnavX2QIXgqkVugPPLgklw+0MiubBhXkTevKhdgHvm4vPePKCcebVy5nMEI6UmL/gn7z+HbTYZ9sgydyOtbWthJ3N45fDQ/lm3WZTV5HehIhqlq4DEJQpQHaKO6K46/as352xvNMKGNulCs1gj5V4jLXEy1vpyxhiRGKgJBmd2HfNQSxsiIKz4f6nD7YtdiZZzHM3aaDaioNf/uPIWtCqbr/qvQbF7t2PHgxzKShdWgi9iD00rHSZn1r087KupMoefOwIF/rLL7H/MopkJFTmUaHARKURjARLFzOwyWkjN+L+/uqMw2VLvWQ4eFGgM5BXfinBV8xyNJCIDW6mCMgiJyTsYLNM5bg6LYLN/X3SayfNwEHIz8mUIMHYX29/bAh2hrVd9b+9rM31s2/9ZrIEu2vZZJ8MIIlALb9e/PPZpPr5OznWY3n+6PXVJ6jNk6E2t6NKI6KN3YUnydlXkxpQA+pZAROR+yHYG6e6N4dMa6thRd+Bj7G+XRDVs9fGikbeGygX7gEozlihLCbvLwfih9Fii8XOwGi23uti05FxfaDQtt7WJbsViCKOLF2hSC3Za0c7mu0JbbH1V0v567cQokN1vq0GqM/Q6vWYyfAKHWVG96a1248hT7L6/cEDC9mSFVrcwDlksRR6z3eouKPFWa25Vyu7QrHYMzx/9dMZBvson20wy+wmKHLqFti9bY2LgZQgDNS2TN/WAjpVJJczeyaSZpYd29osrYZI9Vtn/Ox8HfIbltDRDa+h9+SmMxFZDmclM+cJBm2bS9ljKlPTr2FqnHxJZFV84rCnmktn2VSoTWROoDGNfwVJmRPEGtElYlxGHxPACOSVe5YbzfHGAoLSiF+NW3c2SdAfGM/ioYim0wtg7Yjddoy1Z5nkf X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa6ea8f4-0277-459c-42db-08dbbede9853 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2023 22:19:05.2991 (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: DU2P250MB0189 Subject: [FFmpeg-devel] [PATCH 33/61] avcodec/speedhqdec: Avoid unnecessary VLC structure 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UEzKoehq/dil Everything besides VLC.table is basically write-only and even VLC.table can be removed by accessing the underlying table directly. Signed-off-by: Andreas Rheinhardt --- libavcodec/speedhqdec.c | 52 ++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/libavcodec/speedhqdec.c b/libavcodec/speedhqdec.c index f3e84ab348..d3605b0649 100644 --- a/libavcodec/speedhqdec.c +++ b/libavcodec/speedhqdec.c @@ -71,10 +71,10 @@ static const uint8_t unscaled_quant_matrix[64] = { 27, 29, 35, 38, 46, 56, 69, 83 }; -static VLC dc_lum_vlc_le; -static VLC dc_chroma_vlc_le; -static VLC dc_alpha_run_vlc_le; -static VLC dc_alpha_level_vlc_le; +static VLCElem dc_lum_vlc_le[512]; +static VLCElem dc_chroma_vlc_le[514]; +static VLCElem dc_alpha_run_vlc_le[160]; +static VLCElem dc_alpha_level_vlc_le[288]; static RL_VLC_ELEM speedhq_rl_vlc[674]; @@ -83,9 +83,9 @@ static inline int decode_dc_le(GetBitContext *gb, int component) int code, diff; if (component == 0 || component == 3) { - code = get_vlc2(gb, dc_lum_vlc_le.table, DC_VLC_BITS, 2); + code = get_vlc2(gb, dc_lum_vlc_le, DC_VLC_BITS, 2); } else { - code = get_vlc2(gb, dc_chroma_vlc_le.table, DC_VLC_BITS, 2); + code = get_vlc2(gb, dc_chroma_vlc_le, DC_VLC_BITS, 2); } if (!code) { diff = 0; @@ -109,7 +109,7 @@ static inline int decode_alpha_block(const SHQContext *s, GetBitContext *gb, uin int run, level; UPDATE_CACHE_LE(re, gb); - GET_VLC(run, re, gb, dc_alpha_run_vlc_le.table, ALPHA_VLC_BITS, 2); + GET_VLC(run, re, gb, dc_alpha_run_vlc_le, ALPHA_VLC_BITS, 2); if (run < 0) break; i += run; @@ -117,7 +117,7 @@ static inline int decode_alpha_block(const SHQContext *s, GetBitContext *gb, uin return AVERROR_INVALIDDATA; UPDATE_CACHE_LE(re, gb); - GET_VLC(level, re, gb, dc_alpha_level_vlc_le.table, ALPHA_VLC_BITS, 2); + GET_VLC(level, re, gb, dc_alpha_level_vlc_le, ALPHA_VLC_BITS, 2); block[i++] = level; } @@ -506,11 +506,11 @@ static av_cold void compute_alpha_vlcs(void) av_assert0(entry == FF_ARRAY_ELEMS(run_code)); - VLC_INIT_LE_SPARSE_STATIC(&dc_alpha_run_vlc_le, ALPHA_VLC_BITS, - FF_ARRAY_ELEMS(run_code), - run_bits, 1, 1, - run_code, 2, 2, - run_symbols, 2, 2, 160); + VLC_INIT_STATIC_SPARSE_TABLE(dc_alpha_run_vlc_le, ALPHA_VLC_BITS, + FF_ARRAY_ELEMS(run_code), + run_bits, 1, 1, + run_code, 2, 2, + run_symbols, 2, 2, VLC_INIT_LE); /* Initialize VLC for alpha level. */ entry = 0; @@ -546,24 +546,24 @@ static av_cold void compute_alpha_vlcs(void) av_assert0(entry == FF_ARRAY_ELEMS(level_code)); - VLC_INIT_LE_SPARSE_STATIC(&dc_alpha_level_vlc_le, ALPHA_VLC_BITS, - FF_ARRAY_ELEMS(level_code), - level_bits, 1, 1, - level_code, 2, 2, - level_symbols, 2, 2, 288); + VLC_INIT_STATIC_SPARSE_TABLE(dc_alpha_level_vlc_le, ALPHA_VLC_BITS, + FF_ARRAY_ELEMS(level_code), + level_bits, 1, 1, + level_code, 2, 2, + level_symbols, 2, 2, VLC_INIT_LE); } static av_cold void speedhq_static_init(void) { /* Exactly the same as MPEG-2, except for a little-endian reader. */ - VLC_INIT_CUSTOM_STATIC(&dc_lum_vlc_le, DC_VLC_BITS, 12, - ff_mpeg12_vlc_dc_lum_bits, 1, 1, - ff_mpeg12_vlc_dc_lum_code, 2, 2, - VLC_INIT_OUTPUT_LE, 512); - VLC_INIT_CUSTOM_STATIC(&dc_chroma_vlc_le, DC_VLC_BITS, 12, - ff_mpeg12_vlc_dc_chroma_bits, 1, 1, - ff_mpeg12_vlc_dc_chroma_code, 2, 2, - VLC_INIT_OUTPUT_LE, 514); + VLC_INIT_STATIC_TABLE(dc_lum_vlc_le, DC_VLC_BITS, 12, + ff_mpeg12_vlc_dc_lum_bits, 1, 1, + ff_mpeg12_vlc_dc_lum_code, 2, 2, + VLC_INIT_OUTPUT_LE); + VLC_INIT_STATIC_TABLE(dc_chroma_vlc_le, DC_VLC_BITS, 12, + ff_mpeg12_vlc_dc_chroma_bits, 1, 1, + ff_mpeg12_vlc_dc_chroma_code, 2, 2, + VLC_INIT_OUTPUT_LE); ff_init_2d_vlc_rl(ff_speedhq_vlc_table, speedhq_rl_vlc, ff_speedhq_run, ff_speedhq_level, SPEEDHQ_RL_NB_ELEMS,