From patchwork Tue Aug 8 10:59:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 43174 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9329:b0:130:ccc6:6c4b with SMTP id r41csp2187131pzh; Tue, 8 Aug 2023 04:00:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE7t/ZaA+7PloIjp95htsfr6fnktBBlB9qMzmM7UenZSWQkYzek4HSnYC3RljOUzpH3PH5r X-Received: by 2002:a17:907:270a:b0:992:b3a3:81f9 with SMTP id w10-20020a170907270a00b00992b3a381f9mr10114193ejk.71.1691492408918; Tue, 08 Aug 2023 04:00:08 -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 z1-20020a170906714100b009937e7c4e50si7138883ejj.546.2023.08.08.04.00.07; Tue, 08 Aug 2023 04:00:08 -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=pAwYkZ3k; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F17CF68C7C5; Tue, 8 Aug 2023 13:59:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01olkn2062.outbound.protection.outlook.com [40.92.107.62]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5A3D868C2BF for ; Tue, 8 Aug 2023 13:59:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jMuRb8G1TVDPfdlkJIR1N2CSSLAIR6coeEdds7oIQneb4kEkVYEAYhJUF4thmD3IA7WS/Kx62sHTJEtkkgiteYG/IoKTwUy3eJpue7kVUnDvzoirb6H7nUwmrdN7qZC98qpS6hHEDOrwUE59CJ9/B33EHJpBVXLXDVfC4UQxokxrkzrLeSGMNULIYlC9jcYFUbGgrFsLf46ChWNOy9vArs1fQ915d5J0q/EEbVdc065ETcPN1BcciGHhRQOuUD62niV2iVx+Yj+D61iDhgjphbZ7A46EKRLTo6Zi9x77lnqWtimri4paKU2msL0FdjlXCzayxRj/I7v4s4FxcWY7eg== 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=QmL1qmWuRpmApOTlWTu7+OqC5FAPL/3nEB0sJsuHbcs=; b=JsH1m4WnmAXq8ErkcFjJzpPTdCPlir7ztyeXYQvQt9vADnEModh3YuqVq6TOnCbELAK7epV6YOSTfqARL7Eqak8JcYIlmJ6JAoBFLxhO5AUSj2137u0O+D2HviM7m8soIlc9op50WUg6yLZBDK9lXkm7LKMgq8tGRu6klcFIAhNh7Sp6HB6d9nUE6hcFT8TOhiBKsCY6T1/zrO6Dll3sYPh1hdXKyXcLJDhwcR5Utucg4v9agmAoGtXcaBy8LB6RGVSzsC+YNlqniSB5nd1ZkyFyFom6agoD+DxQLqpR0LAgPQWglSbZWaPbUR7m2525aTMVXK1lyEIlgByKKGn4uQ== 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=QmL1qmWuRpmApOTlWTu7+OqC5FAPL/3nEB0sJsuHbcs=; b=pAwYkZ3k836mOhq4W56L7/BhO9AZ40Nfu/yKHDCbZgCSuZU54jB1CHwmYhUZzqBYIxuJ+RHXPUcBEtpie2n40Z0+e9NciC0ijePkzNXHHGWBbZeodA9ThebdTUbzUeX5JV1mBppJGy02WIp5cE2pIyb+7wHLAFjLDbujD6Mdt4jIZdUno/WDWq5jtunQjf9dqbMT+w5GiRwYxCiiqUYJjr6M05vAY3B7K7iHQ6VH5TIVh9PPyZlx5gT3GW9IXtJmVcyjtWe1J/2e1QwvvqyFcO3pT3NFzuCF2OJpKZhecPhkc6qu4vOQ9EheMHU+zV05WduXQMRFU5qINqws1OmBGw== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by SEZPR06MB5692.apcprd06.prod.outlook.com (2603:1096:101:ae::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.26; Tue, 8 Aug 2023 10:59:08 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::f1a4:bbff:7592:ee31]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::f1a4:bbff:7592:ee31%5]) with mapi id 15.20.6652.026; Tue, 8 Aug 2023 10:59:08 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Tue, 8 Aug 2023 18:59:01 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230808105903.6667-1-nuomi2021@gmail.com> References: <20230808105903.6667-1-nuomi2021@gmail.com> X-TMN: [GaJK2eycDhRE9Q2AGdPzAJzTVXPXUrSj] X-ClientProxiedBy: TYCPR01CA0046.jpnprd01.prod.outlook.com (2603:1096:405:1::34) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20230808105903.6667-6-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|SEZPR06MB5692:EE_ X-MS-Office365-Filtering-Correlation-Id: 338a5500-2452-40e0-255e-08db97fe7cfe X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: j8ANQCEG2DUESjXeENUAAzBULqJPeMETR9mtB4ucLoHgsGjpm5rGGg+vAkDIoQjrDZq/IPuDLNKv9HsxrNRiv/uKXQhPDaalQRepSOyKR52f4kXg01VO5UBWiHh1DrIqrvLv6oD7U5/6wG93REjtvrXrMBOTBWt96jZQM0vPhlCAvJY44qGNXGIFQ/GJZ6j1reztu7w5NlQA30n8v/cfzAWc96sPSyLUXMEbIRUURrG4ziH8E9PTvAi9qXlTHTLHoXE11965QI7Zilob8Hodz9HgtSGfFFpHMll5Uf2QRpTN/qJJwJWtYCEsG704p7xs4BGki6ruBZdX+LP1WQ1Ch/Cf7Ad5XPbKA910iaPX+/VnCD/HXYnfk6T1RFkOnp6tbWm+XKDnoY94E88SAUpYDzlUqJ2Z4WDZwDJI+liCGIfxVUW8L0BKrhdmSvqjIVhYQYsnS0lXNNCGk5aC3sAXXLJgF5fGO+IdQoNDYhB9YheGQp7t9OGGpOP3XJHZ1+f3i3KfXIq6cG4LvbWvv+iEqkadK6BNVGEapQ3AH3qzOCA7LNsVSlvi23bHev2zSaTMZVLEXb1unhvpiWdAPnrQson5yHke7Z2vxmIeueAH0nrBlqbGd8T54aGf9eSk2t8B X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vfMYmABLcwW8HrikP+gWjT/AJ9fdNXAhKUqdBEWnkPAgdeSkXEUeQadLY7nIuRc+GYEug6h90zJwOUhrzBuoZITsNzLOh3YEbyW6iFi6CEvHMEDvHWkaqe6IGAIg+VZfJnkT6Qn98hfxrtIwRCoKNxHHtnVaMwqASRRnF8Y4U+wscnsihUg/epuHoBIiVPnZN3G1EsWLQaYO2+87wWLUO3yGY6Chduv65yw+/DZ5e973Vg4FfyYM+C4un0HWvbkJcHuwhXtlQT0RbW6cbwq53kR+oHs99+SYowbu0CLZM8/Wb+ErHoUAB06VEhdKrsyHrlJyU/ekH2dESI7pvxZPWcZzotVepeDTvTUnyN2N6LFxZ/vTwY7rlaVc1Sv+8ETLqXfw7fInDHUXWuaI4iRKWIcc8kIk8qmLLUcLnTixPwbA8Ccublz1KbAqAWeqYHAiZ+9DfjUqe6HVTqVnbDPASB4jH08lV8Hfc9o8RPQz6q8gIiZz//RYCbGoJGFV9Hl7xHBFR8pBFnyN55afYfum/yM75zBCTaxHWAMv1g+NMZa5Ca6wHFO8LatLHKzpRIRNCkK1yYFfjCxb+t05OIGtU67fF2QxNC0L+dW0ctB22VQ2GwKFcSOfQssbqIRO18GIyU+BDnCAKTCVyNvOHXHwVyJSkfq8Uce5X4o+izwSu+ZRv3LrrHPtWUeeQTLNpR2+Pt5hEtDCdYYad6fPTx6ItcJwj2H7nvfd3Mn+CWkbF6JnxX8rf27eNC/PHJXbjo4EThDNYfG3OfkYCiQycDI9V1FLww1AxOW5Dl8wDuiwwX+fY2GFXcnBrwabZqo7I3iMYqOWGgkwFvxZ8kGkwbOwfJtIc5EoVu3rp9v5YhQ2PBS59Kp38WrcEi675xr4lrKF8zFbbFWB4JAFCEaPHIQYU3a4jn7lScEKZnS31UpAtXgeFF7LwsNvfPiXZ8TunQAhFgmE6JktwIszh8ggJfwTRU9MGHnT7GrdcVpuTzZy8Jj29uxPeMQ7/zaCZCCE9smJYMr2++rr2GWbVl1tVH3opnzhyKMECjovsRd9CBoPI4kyoHxhtclnVmfPm7CXJw2a7ihMJ5SapzE1i2lIkl+ts+N0zgpBTL+c4YJh9KBu9VGzaOzmtcI9C6HG7GteH46Fbv7Y6EPBxKi/gejeLECItGGQahlHydTC/Y76oBErrIw7Oi6JzFL/u6R3NvOl0YUdPKVMiA6laesuo/BTrp/4K/9f6x5hXCtl9qjwQtDRFJn2i5OxRdxIdsiKjo3RmUZB X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 338a5500-2452-40e0-255e-08db97fe7cfe X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2023 10:59:08.0514 (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: SEZPR06MB5692 Subject: [FFmpeg-devel] [PATCH v2 6/8] cbs_h266: H266RawPredWeightTable, expose num_weights_l0 and num_weights_l1 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: Nuo Mi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Hv+hf0bu1vL0 --- libavcodec/cbs_h266.h | 3 ++ libavcodec/cbs_h266_syntax_template.c | 43 +++++++++++++-------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/libavcodec/cbs_h266.h b/libavcodec/cbs_h266.h index 1d80c74feb..87a2d02cfd 100644 --- a/libavcodec/cbs_h266.h +++ b/libavcodec/cbs_h266.h @@ -666,6 +666,9 @@ typedef struct H266RawPredWeightTable { int8_t luma_offset_l1[15]; int8_t delta_chroma_weight_l1[15][2]; int16_t delta_chroma_offset_l1[15][2]; + + uint8_t num_weights_l0; ///< NumWeightsL0 + uint8_t num_weights_l1; ///< NumWeightsL1 } H266RawPredWeightTable; typedef struct H266RawPictureHeader { diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c index d0d1ccadd2..501c066faa 100644 --- a/libavcodec/cbs_h266_syntax_template.c +++ b/libavcodec/cbs_h266_syntax_template.c @@ -2507,7 +2507,6 @@ static int FUNC(pred_weight_table) (CodedBitstreamContext *ctx, RWContext *rw, H266RawPredWeightTable *current) { int err, i, j; - uint8_t num_weights_l0, num_weights_l1; ue(luma_log2_weight_denom, 0, 7); if (sps->sps_chroma_format_idc != 0) { se(delta_chroma_log2_weight_denom, @@ -2516,21 +2515,21 @@ static int FUNC(pred_weight_table) (CodedBitstreamContext *ctx, RWContext *rw, } else { infer(delta_chroma_log2_weight_denom, 0); } - if (pps->pps_wp_info_in_ph_flag) + if (pps->pps_wp_info_in_ph_flag) { ue(num_l0_weights, 0, FFMIN(15, ref_lists->rpl_ref_list[0].num_ref_entries)); - else - infer(num_l0_weights, 0); - num_weights_l0 = pps->pps_wp_info_in_ph_flag ? - current->num_l0_weights : num_ref_idx_active[0]; - for (i = 0; i < num_weights_l0; i++) { + infer(num_weights_l0, current->num_l0_weights); + } else { + infer(num_weights_l0, num_ref_idx_active[0]); + } + for (i = 0; i < current->num_weights_l0; i++) { flags(luma_weight_l0_flag[i], 1, i); } if (sps->sps_chroma_format_idc != 0) { - for (i = 0; i < num_weights_l0; i++) + for (i = 0; i < current->num_weights_l0; i++) flags(chroma_weight_l0_flag[i], 1, i); } - for (i = 0; i < num_weights_l0; i++) { + for (i = 0; i < current->num_weights_l0; i++) { if (current->luma_weight_l0_flag[i]) { ses(delta_luma_weight_l0[i], -128, 127, 1, i); ses(luma_offset_l0[i], -128, 127, 1, i); @@ -2546,28 +2545,26 @@ static int FUNC(pred_weight_table) (CodedBitstreamContext *ctx, RWContext *rw, } } - if (pps->pps_weighted_bipred_flag && pps->pps_wp_info_in_ph_flag && + if (pps->pps_weighted_bipred_flag && ref_lists->rpl_ref_list[1].num_ref_entries > 0) { - ue(num_l1_weights, 0, - FFMIN(15, ref_lists->rpl_ref_list[1].num_ref_entries)); - } - if (!pps->pps_weighted_bipred_flag || - (pps->pps_wp_info_in_ph_flag && - ref_lists->rpl_ref_list[1].num_ref_entries == 0)) { - num_weights_l1 = 0; - } else if (pps->pps_wp_info_in_ph_flag) { - num_weights_l1 = current->num_l1_weights; + if (pps->pps_wp_info_in_ph_flag) { + ue(num_l1_weights, 0, + FFMIN(15, ref_lists->rpl_ref_list[1].num_ref_entries)); + infer(num_weights_l1, current->num_l1_weights); + } else { + infer(num_weights_l1, num_ref_idx_active[1]); + } } else { - num_weights_l1 = num_ref_idx_active[1]; + infer(num_weights_l1, 0); } - for (i = 0; i < num_weights_l1; i++) + for (i = 0; i < current->num_weights_l1; i++) flags(luma_weight_l1_flag[i], 1, i); if (sps->sps_chroma_format_idc != 0) { - for (i = 0; i < num_weights_l1; i++) + for (i = 0; i < current->num_weights_l1; i++) flags(chroma_weight_l1_flag[i], 1, i); } - for (i = 0; i < num_weights_l1; i++) { + for (i = 0; i < current->num_weights_l1; i++) { if (current->luma_weight_l1_flag[i]) { ses(delta_luma_weight_l1[i], -128, 127, 1, i); ses(luma_offset_l1[i], -128, 127, 1, i);