From patchwork Fri Oct 21 20:12:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38887 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp956351pzb; Fri, 21 Oct 2022 13:14:21 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4p6b3p2fzoy+NQau32aj++oOTfsg/BiVYA9Xi8kf2UOMp2ZCJ7mhJVWVDeYzYN6YQ4V1N3 X-Received: by 2002:a05:6402:1906:b0:45d:db20:7709 with SMTP id e6-20020a056402190600b0045ddb207709mr18605304edz.406.1666383261136; Fri, 21 Oct 2022 13:14:21 -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 tx7-20020a1709078e8700b00783b75ec298si18274340ejc.395.2022.10.21.13.14.20; Fri, 21 Oct 2022 13:14:21 -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=ZL0DXdIK; 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 BCD6668BF1A; Fri, 21 Oct 2022 23:13:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073097.outbound.protection.outlook.com [40.92.73.97]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 45D6E68BEF5 for ; Fri, 21 Oct 2022 23:13:30 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B9YrPyFTqN+utnUy5ODCMabHK90cbIFIDv1rsVSRAdjvvTDAbeIiFazUYmSD0GY96jxbBlM89wwcxbtvEyErxZkTMe7vTGy4vdMcPo81FGbG/fbaP23OXu0Fjdjs1jnzCE89PCRI2hJljyKE8X6+dGj0oNTzqowbn6tfYRLBLgKs3XACkkQHth7MMpF2LoN3rsT2VpPZPUaI32QERFNIbwZopuTkk4fnJpdxl3gpVxaTB6UHC1JqxhwhRo8qyvZSEhF3OGVX/L6MrZv57kj3if/3h2GREArGpOxT2Vm7fJxjdPufUcBxpq4Da1/ZkRxsoeyJ+GZI8jOtuhxNpXIC/Q== 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=qy3lJdh2s0CyQKsBGaA59LAcVm1qp4wHHAzklLb9O/0=; b=EUsxL0tC0h34AngS46pCzP1Z6HHaHcM6ngEDXPePs/n877DGl92puhDRdGjZwjoRCQQK82BZMb2eLsEPhoRzj/AFAyk/9Oy/qv1HgKWfUBtUnL50r8J6mTtO1C7ElxiqRQgoaL4cfD4IRuyac3ubpa4C+pUulhOld0Y3RQJ3B9jsMZC2/O+WMy/7lGB0p5KCwEisCbFmuxFEvHbsaQBPzxaoirj6ET5U4y4FgTd7kSviwJRfVMJTaNHJL5WgKbmiHx134U0pcfdwYxd/O5iVWEjwVzWoxNNgkPzX3VpoDtTctfkhTmoFYOVqX5+iK10QlobWJ0r0tgmWgxdfYqjhmw== 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=qy3lJdh2s0CyQKsBGaA59LAcVm1qp4wHHAzklLb9O/0=; b=ZL0DXdIKgxpkGkvQ3z/lixQ2Otl4oYsCogc1QbR7Zsx9w43UwbFYcthk+YTym/HXHYpKIcncgwhqZPGwEbwOGzaGhAPSMHXWpuRMGyb3sblEi3TtwssZm+/8d0RdkCt3c8y3i1twOfLQqsSNsmmOT7uthy5U5COhtkyNRfPHcCwLlXJJ+MelPnRPwFOY/3pWZH1IKlxd0D0eICm9l9H+a4/OQTB6IRzmcy9floXU5R3PlEllxMT/xfmDjY8ezMjYv7YMG/575Od6G/zFg+2iPFMUJJiKDldRanVKG8QJUv27gUCHPBoXaS3UYgGOyNODuc+a4TZjPsUFFPzYlB8dgw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU0P250MB0818.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3e2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.34; Fri, 21 Oct 2022 20:13:28 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f9d7:680f:70c4:44fe%7]) with mapi id 15.20.5709.015; Fri, 21 Oct 2022 20:13:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 Oct 2022 22:12:45 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [zefGmh+4EuOelJC2GasrxaIiUw6VuMc06nGnkiU/J58=] X-ClientProxiedBy: AM5PR0101CA0027.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::40) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221021201300.3565913-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU0P250MB0818:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a198ebb-bc7d-42b3-7c28-08dab3a0b791 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3nnHDnbJ910YUAai4EXr73266XZnnKr8kwpin7mcA6O2/VkN2m7QS5aKsVLGsU+wDQmQPgiyVPA2rC1+Zeks5s6ak806AfUXaTTcMdEuuiQ7YrPtFT2l+qjDwTJZbl4OYrCxvav/trcWH0VdmHCsLCMhTQWAnavbRJxqNLFFmXCqd32iz43crgI6xqkVbPKCU+yuz4GgQV8JtrXW0F4s3gbebFwFyGew64cKFfVI0NSe/JP5Zs+F4sqdRRAF21mKPg/e6fyDvQAQKR1u2GFpHOuPKpjTxNkXSDXlC8PitZv9eNlC/y34R0BSy+yb5zRS15mwRdLFXV2lMHETefXgeBmDp5d1eDW0vNq26U7bXasHvvr/u6bexENHdpqCl1xXjQZF3NyCH8sK/POTgtVsmrvFlQiUhw7SA/e/B+tkHT6+61wqeOBUrp17ZI4vh4StLf4wm2nADdNVWZxqOI3UmzOGZ4oK+dzWZ0hpFBQ7G2fiNkGcl1kxOH1JM4S0If4853dWRTIQTZ8D9WhC7Ia99O+nMv48uuRZO/tQSSeMJC8VAMUIScWrfveXKtJgSLEZlVvIQ/FpURjxZN5da0sixf+cOGMBYAZiKdJVDslITit2uqh9AlRG7e2ryUCB6nG+cM/qu9FX8u1/aPiUVnZxZ2cDeUXZkFZLb85c2y6TtMh19mslDygmJ+TKHDWGnD2yJrWfCosXqv3aEf5XAcp2eqSy2GfN3H65qtfQ4qlUu3X1C8O9hR88qOPds1eJ8Sbok8ELwN2XbMXkQorR+CxvHWB X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0u/sXq+vZ9+UGttRe51xT+q99fBHRMKIEED593WPirbSp9OaZcxzICqOudmuCKTojKBXyjhQ7u82WPgg9wZCIdoofLXXfTAxEFxyeJMHbf2qgWhqo0L/3krE4K/71m2ANPzazkuidw5+Z2wk7rnPCDVzMDh/VhhlPVMoxCeynhO8dhgnaan5s7LTMo2gsX0wjqxU5OF5z1HBLG1vyQ6LxsnErxZ3yK4l4WbDOHXKOJFrvtFOuxM6C0g2kXOtdsYi0hLhRIYept16NzuIoDwxaifj5JMqlRF/0JUnVkh5Nf5utYSN3rxnffx0B3lbgSRSi15mZGdn0PDEYoHj957YAtdNnqRK31ZLWAYddG2B3WUV6c3DuqApp9b2JyIyo6KW9wVT8syxTg3RbEFJ0M9cnDe6ENB8hn3Kz6YbeoB8aq2lb1dVQyzJLUo0lgAUL3DPR9C54ujpA2ZyEN5QeX2ci7QU/H4ggN5Tazj2h7d51Z8PAuvySP0uslYAd+GXHqtpsjeF9GJmm9sisXqB3ei4UFyySef/dFEeRqQKzKA1hHhGzFLqKNNh8q4YPlN0o+04Jb0mxRvmDETKyaG52IJPbbJRvHDka2Rhxl9bDcfVPabKvUQ84R8+ylqSbun9HHoU5u9NyyQPbFgtKwNX9PIvJ2/xdKIceX8eYLRamU9/lt4azV+7dcrFkN06waVNu29V X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YaY0mZNfVOhjwOl7G6PxkbuH5aN/oGDTOrBw0OINAdoFiD7OINB3w+4mabqtY7qG2gY+cl6TW9620sc0MTs0wfocc3nlz1OSyrBcG81LHM1jhn7KZzz5tUBLlJyRtC8HtzyyIFpE3WnNaFDrgnKMyU8ZCFoldo29JYd4y6RTylvmvRzV30SFJS5b96HIxduiqlPNp/viX5alBR7u1YY64XERZ3arN9T2CsYQZiViAk7uOU9CMEyQSVBp8KSqPqL7WJP7Jw6UjXBlNkE32ugdaxt8DN1khKdg5sOfXjX/PfqNEbtj3S+8d3ftRvk2rd7dymm61yliGEeQZXuptOAb/UilkF02dtInhfBL11cwDgRp3FRvQl3Qu9X754VKjW3cveQErouNEYgktCee/E69g37NLuHA4jhI8fUgLnSwjw3aRYicRjH2UfFo8ADKQrmch/XXOw086e9QsMwf4/v3cxtCKdZnSs5Z93LNIJR4YJgd87loF6IGyb7sUYcvZh+Mmxhvd3Y6Da3/KX3bEC0Md71NCKu+CZqIlzH5fw3DL7SYVmfssQUHWjtLf710RjGJa6hcesYoIEFrKuj4492gnlAlIpEb6rwyi+qEwyWETX/vmYgvuyNgIoIQKmi4MKnnqEnoEmr5hy/CQk+wTGc/5aHE4SFCWPps3Qvum+FNbjTJ9ZcTPxErJHQ2RkvZRQlV7AwrQDrajrsBUrhryit1jku8mQusVMnrmqLDzcBV2PKP7RUMhJg46PW9r9ePKdMdQGQnOe0Ukj76LER0ffXUKpGrQp/D/FYOLhgsNiNMzu2N2geWtb5mJiNAESqRMZuxfMgbVtua0V5SZBTduZBwe7+YYDuYnVOD1Wa9JudfdsoVqMH5yLidg+cT1iQraeGeKVLhnBD5lJ04CqTMvtMVd+ZlKyhqxUxpwWXoCICIpIm25DOayFGU8gI97yPSnt2AAv/Qvn82z2jqDcO6+aGKq/WJ1TNuTQZMMJuz+cI0fRKll+lcdP45j6qFWmOF1mLoCDfJqUUXkAMgGJ6XUlxqgbST2BdfaCqS96xELp/ZGfSOheYEzMPOvTnHCDwX8cwApZ1cSJ4iz8YLe2jJ9XNeapNux5GUoinySCMkOO+RGI155xrWEj6f5+L9NJIRyBX1ModyqExngLV4iRJVEPnfy59QqRvAKCmI+AwmofqYe6q/JYeQkJ4JJRDSbpyKfel7z86yNzEhJBwLq73+ZGrx+JAomg8uynz3O3WXF7tMQYiPDrw27o/bGaHrMQXbSt9UbSRJV5APCrnBN0Ck/wpn6Y4r9Q+ZekuFA10M8dm+E9K5NaYvuispwJWLo67Mm6r1 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a198ebb-bc7d-42b3-7c28-08dab3a0b791 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2022 20:13:28.3968 (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: DU0P250MB0818 Subject: [FFmpeg-devel] [PATCH v2 09/24] avcodec/asvdec: Only keep what is used from ScanTable 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: yqrA0R9gpNd2 Namely ScanTable.permutated. Signed-off-by: Andreas Rheinhardt --- libavcodec/asvdec.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/libavcodec/asvdec.c b/libavcodec/asvdec.c index be89544732..699aab9f8f 100644 --- a/libavcodec/asvdec.c +++ b/libavcodec/asvdec.c @@ -58,7 +58,7 @@ typedef struct ASVDecContext { BlockDSPContext bdsp; IDCTDSPContext idsp; - ScanTable scantable; + uint8_t permutated_scantable[64]; DECLARE_ALIGNED(32, int16_t, block)[6][64]; uint16_t intra_matrix[64]; uint8_t *bitstream_buffer; @@ -141,13 +141,13 @@ static inline int asv1_decode_block(ASVDecContext *a, int16_t block[64]) } if (ccp & 8) - block[a->scantable.permutated[4 * i + 0]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 0]) >> 4; + block[a->permutated_scantable[4 * i + 0]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 0]) >> 4; if (ccp & 4) - block[a->scantable.permutated[4 * i + 1]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 1]) >> 4; + block[a->permutated_scantable[4 * i + 1]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 1]) >> 4; if (ccp & 2) - block[a->scantable.permutated[4 * i + 2]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 2]) >> 4; + block[a->permutated_scantable[4 * i + 2]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 2]) >> 4; if (ccp & 1) - block[a->scantable.permutated[4 * i + 3]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 3]) >> 4; + block[a->permutated_scantable[4 * i + 3]] = (asv1_get_level(&a->gb) * a->intra_matrix[4 * i + 3]) >> 4; } } @@ -165,11 +165,11 @@ static inline int asv2_decode_block(ASVDecContext *a, int16_t block[64]) ccp = asv2_get_vlc2(&a->gb, dc_ccp_vlc.table, DC_CCP_VLC_BITS); if (ccp) { if (ccp & 4) - block[a->scantable.permutated[1]] = (asv2_get_level(&a->gb) * a->intra_matrix[1]) >> 4; + block[a->permutated_scantable[1]] = (asv2_get_level(&a->gb) * a->intra_matrix[1]) >> 4; if (ccp & 2) - block[a->scantable.permutated[2]] = (asv2_get_level(&a->gb) * a->intra_matrix[2]) >> 4; + block[a->permutated_scantable[2]] = (asv2_get_level(&a->gb) * a->intra_matrix[2]) >> 4; if (ccp & 1) - block[a->scantable.permutated[3]] = (asv2_get_level(&a->gb) * a->intra_matrix[3]) >> 4; + block[a->permutated_scantable[3]] = (asv2_get_level(&a->gb) * a->intra_matrix[3]) >> 4; } for (i = 1; i < count + 1; i++) { @@ -177,13 +177,13 @@ static inline int asv2_decode_block(ASVDecContext *a, int16_t block[64]) if (ccp) { if (ccp & 8) - block[a->scantable.permutated[4 * i + 0]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 0]) >> 4; + block[a->permutated_scantable[4 * i + 0]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 0]) >> 4; if (ccp & 4) - block[a->scantable.permutated[4 * i + 1]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 1]) >> 4; + block[a->permutated_scantable[4 * i + 1]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 1]) >> 4; if (ccp & 2) - block[a->scantable.permutated[4 * i + 2]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 2]) >> 4; + block[a->permutated_scantable[4 * i + 2]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 2]) >> 4; if (ccp & 1) - block[a->scantable.permutated[4 * i + 3]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 3]) >> 4; + block[a->permutated_scantable[4 * i + 3]] = (asv2_get_level(&a->gb) * a->intra_matrix[4 * i + 3]) >> 4; } } @@ -311,7 +311,8 @@ static av_cold int decode_init(AVCodecContext *avctx) ff_asv_common_init(avctx); ff_blockdsp_init(&a->bdsp); ff_idctdsp_init(&a->idsp, avctx); - ff_init_scantable(a->idsp.idct_permutation, &a->scantable, ff_asv_scantab); + ff_permute_scantable(a->permutated_scantable, ff_asv_scantab, + a->idsp.idct_permutation); avctx->pix_fmt = AV_PIX_FMT_YUV420P; if (avctx->extradata_size < 1 || (inv_qscale = avctx->extradata[0]) == 0) {