From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E291B4A3C2 for ; Wed, 27 Mar 2024 13:03:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8204F68D6DB; Wed, 27 Mar 2024 15:01:50 +0200 (EET) Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01olkn2014.outbound.protection.outlook.com [40.92.53.14]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 18F3868D6CF for ; Wed, 27 Mar 2024 15:01:44 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CJlpO3WElV7GTv47fAKHpVUKujtI/NeMzReDghENX2+FQLvquLqwehHoHnd9q7gScMBPkd+rO7sxePxZIJwxSCfTOyDcIud2hqUhUmvYvcwJrW356gGfXs3uMFTM+EWQVF2ECYIEeTjjAsbsFabmEbg8BpuDW0T+lVL0cutW9Jy93Cg+HXHqNr7eWB5qkYRh4uGhPe/17Y8iCyCN28EM0eGtIFiq1j6J9gJSaA3Q08X4FwI8F4wAItb3fFezCIO5F6E1/msAAikWhjpYk2GYaGpz9b29NlGkVVmvt+Ldln2aPBns5ISi56WLOkDJn8cVwAsfDyL+wkVVC/E4dKon+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=/2JtCP0x9zUOKSmAixxljMReLCurMfDvm5V0WW9MHNA=; b=fBvG8h1WrLawpK4CTtDefQMtbkcqIhFhxlI49IM98oyG43B7gQ19DU8WXpNuNOKLyqwqpdIL1LKdcqFMT9fonC7XmTOxB2deFe5Ytqyu1a8qNyGUI5b9B8kJwV7zx4XC5rkSCW/qfUJ2pSiz4a68QxGwQW13I8iRm4oLFOK3pNihdwZIKvZwt795tmB0Wpa2t3eBlDJaiRa32nAd4GIK4Vc74deM7meJ3K8XGd2I03gWQf87HDs01gwejgLlcDtNneMXYcWqQrRo4x9eyVmPlODyN43FmqlYVUCiCXea0MEADLfHRBTaeNOh6x8Pmo+eAms68ioRNWIIP69d4adyYA== 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=/2JtCP0x9zUOKSmAixxljMReLCurMfDvm5V0WW9MHNA=; b=FhiXouvHdhHIMA9DbqyfdZbxH2HLVdseqcnj25wz5glqXbNcUZfhkFH9PSfjENH5Mi9/yRWeHzvZ5wRx3NodlTSaW9kV0jHYi6oY4KJmkP3SQqLL1JnZRFevNmmXFaoVodVll4iNjoF+1hdb6whXKk2IpZyhL5zrZYrCrmky+nJt4i1IUTazooYSRtslSmBuw/ACSmHOMJ3llWH5w4f0MPBVqxiRmH7AVQMKWeMpuEMiXdXydCoR5WXuyhIoxRKpXBzHQniU00GcuzbHeT6ptYB7tVEE+yi4jFnsazuDjKNMdLiY6BoRT5sn7XIxPFAfuUvlu0GxhufH8jdqUNnM1g== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by JH0PR06MB7107.apcprd06.prod.outlook.com (2603:1096:990:9b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.33; Wed, 27 Mar 2024 13:01:27 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::d001:da90:518b:ec1c]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::d001:da90:518b:ec1c%3]) with mapi id 15.20.7409.031; Wed, 27 Mar 2024 13:01:27 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Mar 2024 21:01:05 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240327130112.6111-1-nuomi2021@gmail.com> References: <20240327130112.6111-1-nuomi2021@gmail.com> X-TMN: [F/l5Aou7Q9dLiG1/8sBndu505VSol6x4] X-ClientProxiedBy: SG2PR01CA0117.apcprd01.prod.exchangelabs.com (2603:1096:4:40::21) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20240327130112.6111-10-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|JH0PR06MB7107:EE_ X-MS-Office365-Filtering-Correlation-Id: f63c52d3-c5cd-4109-a9a8-08dc4e5e0335 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 38tESl8uNDiiyuaZJu/fhq9wEy8CR6/iGXh6hapzjSz4ygatL1G+cLRGkBv2dMkVCaKsN0tvQ8MMzF1vv3fdg0OO5iVCXllzf3zcLebXVJeLdZeUZtI7ljESFiQgMzagyt/MIoChWp5J8KwPEJCljU+sUCA+zc1jYQnFLmsw5aju/ybZzfj673Rob4gInuY9Lfiq2IN8FZT3NGGbCn/eA8Z0DvGpAoCkl87DrbLGxzIzTqxBKc1fuISAxRos3rT/bm7zzCTwZgOMvT7djcsxtMa5D1UQzLLXRIuGLZpGCNVBFxjYd23mcnVcSzNKd1jej13ia8NHY0PNjB512UpMqnd2oB28f5QSfTL5svgysLr8W3ASRzDLVZx/ht8y2fZHSATcG0PQmsKdIA2fbt/pXVYxtXqM8MASy0hLQSraqP5i2+eQsxoAN2eABBjw7qJ5BXR/NTXAJxNH0HTZN0tF9IaZzjRVel73XSRlzqnB9YJD1FvCFY6NZmXErRG/Xb4qCMUrB0oGxSRFlN4tq3NyNfjR+RyBP2JEpH9XT4LMzYZaWIsFSoxy860n5gV5Aj55Lo+77fS91YRA1EhxIzIEaVTVcNV1hmuPb+Qz2S7DT0RMdPbRCXOl7991c1HbScI0 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tM7n5RKoJG8pvzQmXT5Fd7HeKM2UjRH6uRpYyz9Zddpp2Wh5dmeH/1ReVlcW?= =?us-ascii?Q?hgYIl37HZfGMSS3AEZFjCcAnU9830hN/nnQsCYl6pNBOZszR4T5vEqqWrdv2?= =?us-ascii?Q?Z1+z7mza6+/eKRF5o5Q76rPSIgSZd2ztnvjowTxEQmzfk1Qd6ZKev4kaHqmf?= =?us-ascii?Q?BNN+Xy5hjcXcFm5+ov7kZKBUCv1+cTPw9H2HWkOOcNhfw65dFv1LeySWPmdr?= =?us-ascii?Q?1YsYuMHg5gDvdVEaITY0TXgQSCf3R/HFQdp+0qw05bAsHb2LKa3b/lbam3O5?= =?us-ascii?Q?1igxgJf/TM13zJ6zT9UV7LbT4uy9+miCmKgRwNOI+7a+N8gmp6NpCtlOQAt/?= =?us-ascii?Q?jiKQ6qutO9lsyU3Cjp0mHZRbo09OrMrLQHgn+mea9EDh1tY1bv6GyG25Jnqy?= =?us-ascii?Q?nQFT9njWzPv0l0JnCA7jiCvo8m4afrHCGLupznzLPOiFLb6wW3VF9OWsMM5X?= =?us-ascii?Q?k0IqEhLCYB+QzJzrqk3gE6mpnhEyk1WbnsIerdArFj9dfGA8sqTQrrkWiaZB?= =?us-ascii?Q?s/04KSL1/dSFxCl035Yqhgp6Fqotobqr34tRV6bqaili8AX1d2Wk0xiLjouP?= =?us-ascii?Q?DDt2+Nhj6LnlSFsGVtYLryb8FPTZqe9P8WUtkaLjT8blwRruFpTO1h5JHHLD?= =?us-ascii?Q?gM1w/YjC8BD2nKCNNg8YiwEV1oqxp/dJSzAku9F+yhGokoiRnfcKoDKZncm6?= =?us-ascii?Q?n123S2+40PeNU11FXzrfc7OAP1Lxw9d2qxknENPN7g7WoLTI7L9szT5V07c1?= =?us-ascii?Q?SUDJb+sI/p4epPz25UIxKsx/2dN9MAkk/oQusEaHrrN4IgbcJE/KOrbYxN9f?= =?us-ascii?Q?UxiUwP/nV8wy4eDZlfj7ZeG971J9QDgJykw7XSHs/xvSfKRQ5KaRgdw7saT3?= =?us-ascii?Q?kWNr64p5qwi3sDDB/EiA34aTU5+CrGO0JXgyCN0ZMOYS5ZaZXBuMchGol3aP?= =?us-ascii?Q?agBpC2TfamLm13J/T8PykDyEBrGHfUnFoSxoWJUBlQv9lBDQPglRaJhUwJo1?= =?us-ascii?Q?pcxWX2kwJvDUwZl7W/Zk5q+ep6uvlkY4KRo6Eaowk5tqsj9hSYopl2W/kC2N?= =?us-ascii?Q?J4SqpcfyqDrKkRmCwxsIiLdMa2DCPrKP0xw4dhnFFOcsUPcb3VMMB2DvAcCu?= =?us-ascii?Q?QGBRHF9W8kjVz7qiMWnQ3PL3v/El1rd7kcoeblsu2wkBTyWbfR+VaFLnUKge?= =?us-ascii?Q?Du3x7uvZr9I/WU602E6t4x985mz8lDAK/11C0Yg1OpfwjfECmo4ay1a2DsHy?= =?us-ascii?Q?7xLqVzfhcfjzMbmOQZPuEi/kxWZt08dOzdBpaH3kjg=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f63c52d3-c5cd-4109-a9a8-08dc4e5e0335 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2024 13:01:26.9374 (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: JH0PR06MB7107 Subject: [FFmpeg-devel] [PATCH v2 09/16] avcodec/vvcdec: refact out deblock_is_boundary 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --- libavcodec/vvc/vvc_filter.c | 66 +++++++++++++++---------------------- 1 file changed, 26 insertions(+), 40 deletions(-) diff --git a/libavcodec/vvc/vvc_filter.c b/libavcodec/vvc/vvc_filter.c index 10bd57e078..11972bde41 100644 --- a/libavcodec/vvc/vvc_filter.c +++ b/libavcodec/vvc/vvc_filter.c @@ -528,6 +528,26 @@ static av_always_inline int deblock_bs(const VVCLocalContext *lc, return boundary_strength(lc, mvf_q, mvf_p, rpl_p); } +static int deblock_is_boundary(const VVCLocalContext *lc, const int boundary, + const int pos, const int vertical) +{ + const VVCFrameContext *fc = lc->fc; + const H266RawPPS *rpps = fc->ps.pps->r; + int flag; + if (boundary && (pos % fc->ps.sps->ctb_size_y) == 0) { + flag = vertical ? BOUNDARY_LEFT_SLICE : BOUNDARY_UPPER_SLICE; + if (lc->boundary_flags & flag && + !rpps->pps_loop_filter_across_slices_enabled_flag) + return 0; + + flag = vertical ? BOUNDARY_LEFT_TILE : BOUNDARY_UPPER_TILE; + if (lc->boundary_flags & flag && + !rpps->pps_loop_filter_across_tiles_enabled_flag) + return 0; + } + return boundary; +} + static void vvc_deblock_bs_luma_vertical(const VVCLocalContext *lc, const int x0, const int y0, const int width, const int height) { @@ -554,15 +574,7 @@ static void vvc_deblock_bs_luma_vertical(const VVCLocalContext *lc, } // bs for vertical TU boundaries - boundary_left = x0 > 0 && !(x0 & 3); - if (boundary_left && - ((!fc->ps.pps->r->pps_loop_filter_across_slices_enabled_flag && - lc->boundary_flags & BOUNDARY_LEFT_SLICE && - (x0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0) || - (!fc->ps.pps->r->pps_loop_filter_across_tiles_enabled_flag && - lc->boundary_flags & BOUNDARY_LEFT_TILE && - (x0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0))) - boundary_left = 0; + boundary_left = deblock_is_boundary(lc, x0 > 0 && !(x0 & 3), x0, 1); if (boundary_left) { const RefPicList *rpl_left = @@ -610,15 +622,7 @@ static void vvc_deblock_bs_luma_horizontal(const VVCLocalContext *lc, has_horizontal_sb = cb_height > 8; } - boundary_upper = y0 > 0 && !(y0 & 3); - if (boundary_upper && - ((!fc->ps.pps->r->pps_loop_filter_across_slices_enabled_flag && - lc->boundary_flags & BOUNDARY_UPPER_SLICE && - (y0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0) || - (!fc->ps.pps->r->pps_loop_filter_across_tiles_enabled_flag && - lc->boundary_flags & BOUNDARY_UPPER_TILE && - (y0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0))) - boundary_upper = 0; + boundary_upper = deblock_is_boundary(lc, y0 > 0 && !(y0 & 3), y0, 0); if (boundary_upper) { const RefPicList *rpl_top = @@ -646,18 +650,9 @@ static void vvc_deblock_bs_chroma_vertical(const VVCLocalContext *lc, const int x0, const int y0, const int width, const int height) { const VVCFrameContext *fc = lc->fc; - int boundary_left; - // bs for vertical TU boundaries - boundary_left = x0 > 0 && !(x0 & ((CHROMA_GRID << fc->ps.sps->hshift[1]) - 1)); - if (boundary_left && - ((!fc->ps.pps->r->pps_loop_filter_across_slices_enabled_flag && - lc->boundary_flags & BOUNDARY_LEFT_SLICE && - (x0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0) || - (!fc->ps.pps->r->pps_loop_filter_across_tiles_enabled_flag && - lc->boundary_flags & BOUNDARY_LEFT_TILE && - (x0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0))) - boundary_left = 0; + const int boundary_left = deblock_is_boundary(lc, + x0 > 0 && !(x0 & ((CHROMA_GRID << fc->ps.sps->hshift[CHROMA]) - 1)), x0, 1); if (boundary_left) { for (int i = 0; i < height; i += 2) { @@ -674,17 +669,8 @@ static void vvc_deblock_bs_chroma_horizontal(const VVCLocalContext *lc, const int x0, const int y0, const int width, const int height) { const VVCFrameContext *fc = lc->fc; - int boundary_upper; - - boundary_upper = y0 > 0 && !(y0 & ((CHROMA_GRID << fc->ps.sps->vshift[1]) - 1)); - if (boundary_upper && - ((!fc->ps.pps->r->pps_loop_filter_across_slices_enabled_flag && - lc->boundary_flags & BOUNDARY_UPPER_SLICE && - (y0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0) || - (!fc->ps.pps->r->pps_loop_filter_across_tiles_enabled_flag && - lc->boundary_flags & BOUNDARY_UPPER_TILE && - (y0 % (1 << fc->ps.sps->ctb_log2_size_y)) == 0))) - boundary_upper = 0; + const int boundary_upper = deblock_is_boundary(lc, + y0 > 0 && !(y0 & ((CHROMA_GRID << fc->ps.sps->vshift[CHROMA]) - 1)), y0, 0); if (boundary_upper) { for (int i = 0; i < width; i += 2) { -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".