From patchwork Thu Oct 20 08:45:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38843 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp45721pzb; Thu, 20 Oct 2022 01:46:57 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Q9brL//MagUvZt0x1dexusju8ut32ANYasY6xVRywefbNvOvojOfye8LPuPMAl5EkmDmi X-Received: by 2002:a05:6402:1e88:b0:45d:88f:4b99 with SMTP id f8-20020a0564021e8800b0045d088f4b99mr11425602edf.236.1666255617059; Thu, 20 Oct 2022 01:46:57 -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 dv1-20020a170906b80100b0073c14b6560bsi14702284ejb.177.2022.10.20.01.46.55; Thu, 20 Oct 2022 01:46:57 -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=XycwSgrV; 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 A7EAB68BE65; Thu, 20 Oct 2022 11:46:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2054.outbound.protection.outlook.com [40.92.91.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 22F3568BE5E for ; Thu, 20 Oct 2022 11:46:24 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C0qqL2aBz+quiR9yk98JJkrBLGeScF9O+l5Q9cwoHUenYAIQAZnF7UTADkBa0hog1Z+DLTcOBb4IF4i+tzM/fAcs6TI9BhvAgwRTyp06UrYLMzwXNnF0KYADzlAsGw2T5grbeMcyGaD0st5BjCzeTr0ywDShC1PS9QzN2LExLQBvkpCVLZNkTWiwDSS6n5354krd/lDKuVkwZ1ZYIyUHF+/FDgDkRPlpsKeXFhFKxENzZTQZh/VLpJnzBwzA4/g+713Unhv8SNx1j6dlLxOLk2/QCtvpoIqJk1MGEBDoBUPcVMJWBbYXw/kKvuet3DhFU5xNlprkJE++XT6gzTcH4g== 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=qtQACNsZTTcAVMe0AvVqs7E6HkXItMS4Otzv+4DvOzc=; b=nSULebi0eFI4bBCIS1/Mu6iwFa4X57+LQcn2WXel/kPtg2nUgGVyDEcNWybqmcauSwUZFIE5WmgOeBCs6BZVku4YJ1y53DAA/XKxch+765WuRD/UM2cb422scJxPCzDd7o00tW1nBizB+ibwbjKElyyGUKCl3g7Jx2rH5Zu6hTIWBSvSzKScGCcOsiiG5oee7VImNJeGFfwBG9sHxnry5y0kI55DYs18I75KttRj2azxBkLvlUckKIAQa6GWogPjIcbJdUt/0WzDkTsTddmeRMlaWNz/TgEVV1C+pmVSAQw2HrUOmIzEJdXGsrMnOWbX//el/d79bqOezrj7kM6jog== 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=qtQACNsZTTcAVMe0AvVqs7E6HkXItMS4Otzv+4DvOzc=; b=XycwSgrVX2GBrV7V9zWhlA02Xyuh5H/IVm/oZmAx9PxdZcG4Q87pJ+EuIyn2dDYblNP4PkJ5tdDzlmnOd1znnJn51aJRQp5TtiuHol4Kep4tShuLw8VCI1i8pYlbSm1BGPYTU7tF4OknVLfVVS2bYEP423h+GovsWAIhZ4UBBXguzsir5VQEu+CvtJPYBfv9Yehshxbtu+R/AJAGz1xMfEKPImJrdKj5ezg+mvDsLTUiv5oR4WKS0VZZeivHzUpoOMBS1zxB2duetU+6DYWhS2h91kMr8dIWYTEXUg+sOks7h79o1XO4L3gRksqMLBwDcaWIQOw1s8cLZzUw51JuPQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by GV2P250MB0825.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:aa::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.34; Thu, 20 Oct 2022 08:46:23 +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; Thu, 20 Oct 2022 08:46:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Oct 2022 10:45:27 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [IL3EslAdK6pa/rf/LOjiFBxkS3K5JIuYFUpC4CR6oYE=] X-ClientProxiedBy: AS9PR06CA0774.eurprd06.prod.outlook.com (2603:10a6:20b:484::29) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20221020084540.2378553-8-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|GV2P250MB0825:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a317467-f675-41e8-768c-08dab27790d9 X-MS-Exchange-SLBlob-MailProps: ZILSnhm0P3kEq9VXjGDAyurdVkDmkI7qLvFLG/OGubRIPlBfPX/MmnLZtAgyHwLFhjj9bGp772qtkPj6tyi3lvxIbfH5lJHQLTePyin2CqIco7ygCIjgU6QNeeIYRlfGWtuXZOn47CfYLtVFWHpQAR1U0zKv80k4GrYyoAWJx53k4I8VxpOqQLH8+T3glZvwjyPa1QdyVVTleCYBpuLhXD5eUyrVPVO//HEuwmDktcedXuw+7ajuLlXGzzNxf8aQuJNeMfZ75i8gMnzFWVkiMd6MrxTHYbDbg1c56Lb2Hpv2hTx5QDgpioZYDGvKYhm4lHmkwJ+HoFbsFu4uAoMIq2Td6GOuRt1GOWazTNxpQiBnY/LuD1HXvHFe+PxiXFwZrZM8agljYLrVDH03CnUy0Gt0zRWiaJps+JUZs4sfkL3ValEU+09gEFqMdGpgpWbDOxSkzrnXnXJxqPw2ZpWywKkgZk0G7yhuhpeNCkvPSCQe/pzqwrjGmgPwZUQW6yjCTlzVHNqy1KU2DROXsRQyq7UqKRnWYDpCQAzUfjAnuxDiZ/AGzNlgIvuFD2LJ/4TeP5AMEsry21Jk8w6FpxCCJ0HBWrxgVwNPYZRFCHJUEtqP853gTUpWvQWqdtISGdE8rKKad3j38bL81l/oxEtmnkx3fD+Ssp4VlsrtIARq+TbmaWhkgGZMfLPanv3/zuD6U8hiclGRuolO2op8PgzZL1hBY0Y3g+7bd9qff237W/Nsv2V2OBsLq8fuHM4FeziCuQs8u3ypz+ROwYOnqDOzDwQ5BIB84GHg X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mKQv/97UcMjyjYHwDza2FYSaPYTWz7Kr3xGIvYi0tX2L5Gc+z1u9bRdMfXBi0e1P0b6spnZYfU861NX2GChgRXAKDao5aQ3YURCPmuFLsuiebN9rhJwp1JZPUXE1np0/c2Z50+YCIZvHwVCZhcKLBDoyOZh4dct6A9+PtLP5+lgm/A0wRpgRz26MKyFMeZMQSGXDyIn2D98BdI0XLYy4c7uxzKjDwzQ9WkNnJ7u4JMxPPwMsnuIhkCbSjNBzzs/GDyYZMYuMA3+l97TMlwfcAd+fkZKumAk6cz8vy8FaxsgtWKdRB6m+NYmf82T4Dl8rJ66UDGX5aqGPUKqUXqkUPkso827ZYIKyIGd6FAJDCAuD27N+ml7Y+VtcHL0W8bocvaSN0QKluWKk4A6DzEvPLbgFVDH3jrvmOj6OupzfZjluHG2rwNdSWivGu+92cSmGXcpW0UsblfszcELPQVZSe5JDi56Dt6/wxBEQyvhzoU9z1gBVGRWVdjP0+CRVmYuxiRWjtTAZQcYNtWXQgZP1o3MncUtWhZHtzKvniHnutKYjr9AV44sKQiJpc3EyJd5Sr2/Uay6fAVVfekqVScfz9zEgGYIADuud3Uy7CASNwG9oymsmGT8R843reR05x/tfdWEuJBSivTz1KFNuw5F/ajYpG8gkkVH7QdbfyeNMINp5DW/RnXfC5j5f2H7r5MFv X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7rHkcjoxAw3QZUlgHdYZjp2RJFc+K5dt0G2OeREnomXR2c7mZRHdEdPH2TD//BzJkBMu2SV2wo00yeDfRpidnIND85AuE2MurL3PGBWi1vmik/mVnS7ksM07M376wp9HFTtYdZCW9i5UxkC+N10QeMyZaIKDJhLj8cpZZw63DqpdlNSNzQff5XLpBSS8w9SKHB++ujL0a4V57+rEK6Kp4cVxaCs1WLd4caclNwK5OETdwwAMGtq1GMSYKcQhRuNpfQwIsvzu0QXaLi4Mz3lDl1OgHBMglr9ujsioxsHOjoY8ty2ZCV5JGg4k+8AmD/+TgzlKxq3WRAlDt3y5tciCn5qvTjBlKxPm8fgtgu8JRimT53Dy0+TUTqUFAS0k25W4ICGB0ezjIwpjODBNJ/ctrB3g+9yJayIVQ/8O1rjSIroYeciNUrBya7UiwanRqg0rPcw/0+GdcZf+qBYTDRxE5VuuypCvzggWzbPcxiQfIvdQKDZxm11Xw/NmQWFVMDqDp3du6GpXF99EJV6JBO1vKiKnA9NqsgHhaigsTRV4Ys26OqK8WKCvE7BLhXwMaZ9QAVDwyhpXXw6qDRg+x4KcMReoIUFpP3d7UaPLy5WS11a+0WtPWyBXW5XKl4pe+SnnADs0Lk+c+HYXx9ORBRZxPaAMj8bv0vX6j05010WuYyWhSXtwGn1zYLbxxwn7h+vAoqAE5x+rhnB4UdImtknpH6cxoO5EmolhkkMEjTH+CiU5rf+9Ym+iixVG7UcXvblYt7IIeI0OFch+blde7+iiL8tl0YyasaGlSMOJCSu7M0X/i7weR7Y6rm+UBVez6BIPrZSU3b4qgBXoRplJbMtIS7R69LQ71zzy2h5dic+Tc26RmpRgQIzdUVnSvFfQv5RrcSKEItfrSbYs+Y/FoOrdCiNi6ylTpG+nozK92Xg1+Tsfpeh9tKTZe5oKFmgBzzCh31bm2jSD32i4QnVnFRhLnWS72CFbnu4L4jC4i670999shJWZvQbUrkdOxr0fNpUwdUEzgfTdW/sRU8F0TJyX1TdIVGrE3K0NHEsUqMOxm2ntVy9/Fu5gL1flakmbKLroGvV7MIjnSB8qG95S41X4G1wiV2luCrIrHgRkJf1B94PMM2xGvVkc3aTRLXOZFmPlcbJrCNlwfw9EK5K7UAbCmZx9JbLKpfv58efDlCE9cTdRXEz5v7aIw20XS6uS9RibG/VRlFCU3uIqia5Qd4JRyzBlQNWakfnHhI7UbTZj6c96nlNoWkrpprm6pfZ47N01WBFW19tkjYphP2IDITyMMFyDOSZlxWWKFpg0VgIhyxqVnKnAqHTRRX4eQmaxp4TA X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a317467-f675-41e8-768c-08dab27790d9 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2022 08:46:22.9882 (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: GV2P250MB0825 Subject: [FFmpeg-devel] [PATCH 09/22] 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: NVTaZ78X5NNR 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..11cf105d08 100644 --- a/libavcodec/asvdec.c +++ b/libavcodec/asvdec.c @@ -58,7 +58,7 @@ typedef struct ASVDecContext { BlockDSPContext bdsp; IDCTDSPContext idsp; - ScanTable scantable; + uint8_t 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->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->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->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->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->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->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->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->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->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->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->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->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) {