From patchwork Mon Aug 7 15:53:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 43163 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9329:b0:130:ccc6:6c4b with SMTP id r41csp1693821pzh; Mon, 7 Aug 2023 08:53:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFdN4LQ3tmqU5L5EIozQ4LiQuS1AHL+u5m4NkKOa8T97+hu+gi400e5W2Ty0WsauGdiQDqr X-Received: by 2002:a17:906:76c8:b0:993:dcca:9607 with SMTP id q8-20020a17090676c800b00993dcca9607mr7522356ejn.2.1691423636996; Mon, 07 Aug 2023 08:53:56 -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 hk6-20020a170906c9c600b0099bc57f3882si5881015ejb.369.2023.08.07.08.53.56; Mon, 07 Aug 2023 08:53:56 -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=RK03laNl; 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 8F38368C5ED; Mon, 7 Aug 2023 18:53:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01olkn2082.outbound.protection.outlook.com [40.92.53.82]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AEB7968C4AC for ; Mon, 7 Aug 2023 18:53:46 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TS3zXkzHExFI41N1GrUWtq+3hzJqsodc6SAuX02ZMhaBkUFInRFH2HluvSBje7zf3BtPWSZ1IiudwPuRa+yTcDb9XgQ9drSIBlhm27gDpenaWOM8wHGrpvCEz+fgKZFlBbX/U5pBuyf+8ZtzEcfrfB5LZ7Ou9TrMfCtvi6IaqmzVpQ6LUhsrIHxvuBQxhEV59LXEqfP7JfIv+JW5C+cWym9YQ0GZhRu2QrZzrGpwtDV+U/N5oMhiXsr1rbT6Nh+DTWn5IoMWK8mkVGd9cTysvQU0lsk4p3/O1ki+pe7jqRS67ecJwEXN4KgCUCpSZTEMslhiZJDxW0vz6H8NvxQoIA== 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=kObE4+HD5jfHSlcajyhvFROYjwXuO7xjH0hyANZr+LH5213UD4mMNxN2dyZEQ+dY8+F4YBCPQVXKK329Poklj0A7RsiPHGauW9nUe9jOP/KAFkuwNq8JGgTlLiRk6lGx6Y7VLfzxiZGWaqJYIfLJGYp+Mcj+h/Xa47aIE9yu7mBxEW0J71ur8wA5PRhR6dfpccgLTrTEHHTaoNxQawnWn980pEmddbgYXX3M8kMXxldPk6FFm+ahBUlGOTcfwwTsjHZTu1XeW+rkvjIKA7KIQrKcYU+iAIwDWAFsqPUZzB1eTRG1r2vcoeVFNTNGKjkDOolXgDC35tfyLXtGh3ob5Q== 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=RK03laNlIH2c5WhRxuJuWK+I6pL+mIJR4J9x8E9HjqERZJhphxJGnd14nUE9KSOpJsuyDTkaHstfDMuzl0DlEnMj1V9u4G5zq17ZfZwadiThYEmH5IDCizT4OIznnVDTpD+Cbrfy/dWTu6G1nOsYXuNuNbJkz9Fi9fUvrajnd6kShsCa6mUJI/Y8exq52HuWumptIqNx13Sdfopq2ZpwTnLptHJSpKJvp06r9A0A3KGwQegfLntw7APCWIYEBGSERqbMK+cquEdev8rd673JCofSbZy3FF6Ji22DR5MDU/lJu6X6DnB6GKpC3dvqwFiLYNieb29onItAj6215jr13A== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by TYUPR06MB5873.apcprd06.prod.outlook.com (2603:1096:400:345::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.22; Mon, 7 Aug 2023 15:53:43 +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.025; Mon, 7 Aug 2023 15:53:42 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Mon, 7 Aug 2023 23:53:39 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 X-TMN: [M57N1FXIDLlGSxN8J2XJMgneKPmIDNSJ] X-ClientProxiedBy: TYCPR01CA0147.jpnprd01.prod.outlook.com (2603:1096:400:2b7::12) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20230807155341.21438-1-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|TYUPR06MB5873:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ac9c9fd-6b02-4230-cf0a-08db975e79a0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Zi1rs9NPkk2VIVkxobVo6azoJIKmP+V1f0ykrOGi3vuAElNfhr5seUA/FT/P9U3AM5YN2nixBBvt5AJtHS+hnxjAJf9lUg1gXFIfyLLP0YwNLj++w/2igX5AFY7jDjhmV7L/cVl3QKfz8TgcL1k5Hyr6wVMCDKHK0Gtt9x/1riE8VSfZNni05V1gGmHQ1eKbSUP9lEU/O3buEktkzt20lEi7KjK+sTY2qiU/PNFRe+lFac0KHks+xeaPsc5PbDcJNs9FdQImRBXF23//+LN1fxYGo7oIIluktIYqEfSJRFffIWcpX4TDyMY/4NKGCdM7QcQUQaW6uqbclqeuLEyZAz+DbSqP5lUPn3uGamdUXsh8QKMAlyGCeCA5qxmBmBYE5h+fPgWBhCBQk5gV52tc3FYITodjyALQYHKViI9CDH9RsXcEEAOXmhT1d0R2q/S1BqQJR/RzsQfWNKnUXnu/oEqV6W08qW8gOX1g99JQ9KGUeScMOlvhXqqOF35V4doBxFNlh5KsI9Bbw25yZgFjqtpikVlYnspXvsbNYr7Bn7qPWxQNlEWlhal9u6JRu4+ek8jF3f91EtkH8uiN73ewZMnnB1MlZ6lvrSgcvsmxZzqD5tM1bFRsBf9WY/sT29ev X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TlohE7aN4uIcRud1uT3Kff3AgTUsFKfGYlgctwekxdCow1XDOrLIel6Xd189pwm49Tf10ll4IEIzexhv5UnMbjhdtJJOA57BW5hu0LK1MmuQzknZ1SqBHMpuXgZnsE+jHEA1axQ4JPRcDoezrzSJtXhNYUtPAvlQ9rgtQb6vMSoapz24FyA4BEMEwXrTmXlgsBmAO5Il2bpxNqGeqpehZ6zhogJdAu0VJ7bJomJf4jFTfA31Vih0oxFv7naj5XNlohgaKVEWGvKHGqpjZS0XxqMtbyMqjKjb4U5qKZt1jK3k1hLywTam50MbWG8z8o5tQBzr1CKBvploPU4OSyC7N9yF6uab/qjRsoQykABcRVcHsCApsZ1tjIACcisrIbt8J+NcD0DQ5YtBrI8Ktdoz/2A3p1SOiTAMxGNg/2+en/oQAjXn/aoi5OmydwUrffi/Zg9vqFLIbFbXziCNSXzjygAUp3t4nNy+UiSfbHI+k1Rl7wzaBX/tEaMSA1wSySXtLwKZ4WcY3KO8UkvZp4oeVWdyzl4xC9tZ9Te9pCvpDDiUeOISAEVplt2mjagzlOUuCQk1WfR04gjdkB8daLCLF2ZY02SZGcuYPHmhUpdQwLmgBXAo3n8pLLDnywnsYnXCAMzkIF7Cot+RcXFUi2mf6eHw6325H9RS0XJEN+jG00X0bneLhxb7f6sPyrGct/BsqLnpvNaI76UwB+vK2bBfamlwn7HRF8gWBtjaYjUYwuQQ/JXInOONmy3mpenDGw6DX5gTgmHaCIADTpnAXawChZXFgrx47b4d7P+wvAKbpxC0iRJVxpw4Vx7+NXR+9THaYarsAbldj0v4K0AB1XOt4o0dVWLqxd6XCp/ejALYkZuB+cdbBfeD+JdDCfBKKuEKL4fXqmeY0Lxrt3mwPpnZz9Bcpmb1O4OQe4R1Vu7Lxg0f5v1GY/DLCziX0kGfMuJaDiGeLGyHVzZNiqzqmM40MYSNb5x+np4rjaMsHzrskVf/9EnWaHV/BIz+bHXXjVGz7GN4a20hsYL2RBaUJqzgaV69sPCHmkOR3ZJseOGoaY6QjJKyyaA+jlmHsExCuaRG3/xXsbkwKAimvR5+9DIabj73YMp4pR1oBOngf+bxazE6FQARu5T55JqWHPew6133ZkchGhZBxIAtJcLIlzdxykT7Kfl2D1QFuXQlpyO8fQqIVug/FHY6/2kuSTPZiesctiHKkkHuT2Wi6uratAIqFk9ESlMxEUfiStEJGD/WeCwJfHxUrINSHUo3s84dW92i X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ac9c9fd-6b02-4230-cf0a-08db975e79a0 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2023 15:53:42.9043 (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: TYUPR06MB5873 Subject: [FFmpeg-devel] [PATCH 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: 5p45N7tH3VE/ --- 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);