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 133EB4A3D9 for ; Wed, 27 Mar 2024 13:04:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EFB8C68D6FF; Wed, 27 Mar 2024 15:01:58 +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 9CE9168D6E5 for ; Wed, 27 Mar 2024 15:01:49 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LVIhobYitX9DCr6wRWjFNP5B/6pqFKle6yzDJvT2GlS364W+K3eG+nwvKJ+w0n/LZ1YT4sUclupQV2I4Kn+XM8ShgEZ4yLo/AlpMK4ztJTRZ9zE2uQkxQorHVUoZ0nLcYPH7cwCDs/7Hxq/jr5QO60ysyC8uZv/crxEShOn3gsH9+0D68SfHY2ayK77iUXlHOA2KIm2y8vwDMFn5ziZD1kUwbNtfe49GN8xBOrafh5GXQCay98EGWqoUD6RxgqhyyN6C0QBNR39MWFNX2dE2/4IGAYtg3KyHZU5GiUpHOWmtL2mp/r8weEv2iCLeCvsFvO9ru1dYiTesMOWZrGJADg== 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=4sDd2FozXmsj+8fUfPNCQVdq0ZK3YBBlEl2U0eOaXMo=; b=botSov5T8iNgEay7hNH5mbsf8irUbif0iZDS6KBbczUGC9fniZ5W6zBWm1/0Vw8GWjo6+SJafeTzLCiyeTsTejLjb+s3p3bOYCYNQVPlxk75W+E+104qUNuE3/5lhl1XIb2KevC0iPhpRCI1j0Dhz1BUGYdXIVc2VXRZ3CDAMUH3TRidMZRy26XftDIsoUUcWf5qg8bPzjsKUiSzR0Xo4gjKXweOM/Ws0FXc9Rv8zb5wLJBlFT8/NEi60uaUjex0PmiGHHxi/wxHfmbLjaL8i2A9COX69Afrx9kb8LHEjROusY6JaYFDL9eec3lKwwfkPVVdTPsEHxKH0ezvTjPu0A== 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=4sDd2FozXmsj+8fUfPNCQVdq0ZK3YBBlEl2U0eOaXMo=; b=eUr4kAlSACcXWddx4tV7LBtpskR0jCILhvTckjgZoXpEG8lgkbTaATk7jqFitvN9K36HOmBqJbP3iXoWxUvtfHtKseszgdJpjOQzIxFC1PGpjnsUNJeQpnjhwdqZC0d9/fuO24Jb7NJRyWA2awsyLETozVa4T+fxecbYPJ8pnYpELcvCMhWG8freGlOflE/G5v5XqxKaFJ955JMjQ2031BIK+4k84oZM5FzyzycQMBbigP++C0zkU27fB303cFe9h9TwJ9U6UCOX3M9IVGipQz5RpLMUSUXYI/3iwAwBllx3WyHFB84aHVzog75eJhfx2i4Twm1euAe9IAVNz03tEA== 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:29 +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:29 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Mar 2024 21:01:08 +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: [b+lXmZ0myqM+P62rioMoGLjE+nOGY12M] 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-13-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: 5117c862-f7d9-4c76-8d0a-08dc4e5e04d2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /odxQ46YsM+E/9zM+mmuFHWRaFfwKl0hAOHjYq77U6uYUCQzYVTvd6cmLtOODMBiK2o5Lo2SUjNpJgqAJT+++7/YG6czsBRam2oXlE6FLcGrFRSCRzOhj9HKmTMV0yjvcnR2ZXzPpPOq8OvptY+ItK+9xC4AJgmCx+AnF5RYrKlWUYjE0nlep8Bl9B6Z4jH4TZyfmW04KHVegpMVzaSg48O1E1zKte7uUYoBbstE8xPZJDP87ErpUrkxZ87VISM4jt56Nq16tI4vi2T3/h7gkcBMcmHRpZOqE/Tq88uA1Q9zFANTtn5U1dmUWBMN1BxAHBdK0CaNuJEhaidrhJhkKYXx4Hidt5qzb0EztmxXCre83igMr6GMnG9DhPHUU2WkYeSHANGiTvfchoSuIrAlcy/eHjI5ZdZDP9A/gIC4iBzaEm82BvTvrIGmkELeAsbeq+xp3IpIelY+gwk0b08xUHQYBBqTzjCVYTjxEvmzOxxmPd5PGbw5d9SlzX556Y0OeRLY6PQWZkgX2D/hrpl5deuZNXLLrbf2QdoegJgrF5D7r6/knwKn+/iDEQGoyIYyrLAE3NmzToaRwiD5ID/C/iu2LvUO+Y8y0B10OP074Lin6jkJrSqwiTYfyEBzbRvn X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FDWYOdy1C8HT61FUXBC0/l0mxVAdngsdAjteDFNxKlZmmXB40OLqqS4mD9gl?= =?us-ascii?Q?Rt6KhRXCpcdMHQfbQ0GqR7UcCbEymtm6c3b47USS3WnHHaBJjTdlZRk0KpfQ?= =?us-ascii?Q?kJBP6CME3g7/h5IyCiGE/N83PkjxTMJTHCYORGRtuwQRI6pyemX5g/HtbVL6?= =?us-ascii?Q?klakBgLfqjBdV7LS86ow0BIE2IWlw6LbDJgMpOFVKQyBQnmGaNIXe2ZRUCgU?= =?us-ascii?Q?Nrwj4b9lcWxx5JNnClJTP6oVSm6SH2oq+hjthX7xyu36Utxm2+g4C5CgsLtS?= =?us-ascii?Q?vRKE4CxsR1MafChpGEx+3Ez5eNFzShMBvDgMu9xworyX9asgXqpfvcuwue+s?= =?us-ascii?Q?CL2iiheDksdrgNxvp5s8lun3RkqTkZxo21QlSBd6+bJelbG2YzMYq2+NuR/i?= =?us-ascii?Q?haWz3UOiTUZznX6QcS4tJm2dcid49Y0hkyuxuKrZ1yUFSgni21nhILkhMDWJ?= =?us-ascii?Q?z59DzvnZXTl04g181fu1NwOpv+cZQMgN54QOk/vNVy2ESSzf5ygMXRquzgWb?= =?us-ascii?Q?r38ydu9zCb7tRSJIu1nvv8Q3wYMp+Fkf51gLp0CSLLgPoYdmftwmgms+xXPU?= =?us-ascii?Q?8FoytoQmjgnj4g8PX5au2D/kwzju/WbvpsQZ8vgFNffSy65CMpURlvT2UqDC?= =?us-ascii?Q?UE4c9841BZ94U4QLefrXM+8cHUJ2HmVGR7gaAbWkXafJTAv7NqfUd7EoxW5T?= =?us-ascii?Q?HZWu5bWNDmDoBAP6AEpSzgT4kwVYP1JNsgSRwBjfdOgzn3Dg38seRAQvEqYP?= =?us-ascii?Q?5RklsCak82a/zNffnUcxiO2przCUwYDYPNvxgazGFu36PzrktfT/F2J9S9Db?= =?us-ascii?Q?lbLgHQDNgnN3xl34eD6sIQqpCHPPfPh98SePzSmpSUadsxxG+ixIh19kvZ4D?= =?us-ascii?Q?5frOJ/WsF/sXo77TtM7jQUZU7BZzuRwogzGKqWduGoWsHSS9tFHOz5gb3Li9?= =?us-ascii?Q?Eo0lHfElobWaGDOkoZWWN0lajbrSg4t7/1N7rxpX5zAIRfiqWj5ajcS9R7OC?= =?us-ascii?Q?cgzpgBJBZw7W0f5o4U3Xq8BOEBP5oObY7Ic2lQ9j1TAUGdM//Fzo+LtOGtSx?= =?us-ascii?Q?LDexgFvoK8KZQoRgTOh3q7DfgUP1qA0QeeMHsAqIzruvdJqM0noyhioLpVYa?= =?us-ascii?Q?AGu0WiMf8Mgnhdpqxhe1TOxe2HoHJLEQTCvz2o/bgCwsaePztjMfIk0N+GKP?= =?us-ascii?Q?FacRkgPKWGCLYM0rjMzAYaHCBG96QtCSCQiDa/8c8F/QVNuHdbjQpBcqaAiS?= =?us-ascii?Q?QJne+vT7WT6Y+YPczQtvVuHJl39MGXzMxpGJfsetAw=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5117c862-f7d9-4c76-8d0a-08dc4e5e04d2 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:29.6759 (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 12/16] avcodec/vvcdec: sao, refact out tile_edge arrays 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 | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/libavcodec/vvc/vvc_filter.c b/libavcodec/vvc/vvc_filter.c index ecb004d245..1a3cd02a9f 100644 --- a/libavcodec/vvc/vvc_filter.c +++ b/libavcodec/vvc/vvc_filter.c @@ -157,56 +157,48 @@ void ff_vvc_sao_filter(VVCLocalContext *lc, int x, int y) const int ctb_size_y = fc->ps.sps->ctb_size_y; static const uint8_t sao_tab[16] = { 0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8 }; int c_idx; - int edges[4]; // 0 left 1 top 2 right 3 bottom const int rx = x >> fc->ps.sps->ctb_log2_size_y; const int ry = y >> fc->ps.sps->ctb_log2_size_y; + int edges[4] = { !rx, !ry, rx == fc->ps.pps->ctb_width - 1, ry == fc->ps.pps->ctb_height - 1 }; const SAOParams *sao = &CTB(fc->tab.sao, rx, ry); // flags indicating unfilterable edges uint8_t vert_edge[] = { 0, 0 }; uint8_t horiz_edge[] = { 0, 0 }; uint8_t diag_edge[] = { 0, 0, 0, 0 }; + uint8_t tile_edge[] = { 0, 0, 0, 0 }; const uint8_t lfase = fc->ps.pps->r->pps_loop_filter_across_slices_enabled_flag; const uint8_t no_tile_filter = fc->ps.pps->r->num_tiles_in_pic > 1 && !fc->ps.pps->r->pps_loop_filter_across_tiles_enabled_flag; const uint8_t restore = no_tile_filter || !lfase; - uint8_t left_tile_edge = 0; - uint8_t right_tile_edge = 0; - uint8_t up_tile_edge = 0; - uint8_t bottom_tile_edge = 0; - - edges[LEFT] = rx == 0; - edges[TOP] = ry == 0; - edges[RIGHT] = rx == fc->ps.pps->ctb_width - 1; - edges[BOTTOM] = ry == fc->ps.pps->ctb_height - 1; if (restore) { if (!edges[LEFT]) { - left_tile_edge = no_tile_filter && fc->ps.pps->ctb_to_col_bd[rx] == rx; - vert_edge[0] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx - 1, ry)) || left_tile_edge; + tile_edge[LEFT] = no_tile_filter && fc->ps.pps->ctb_to_col_bd[rx] == rx; + vert_edge[0] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx - 1, ry)) || tile_edge[LEFT]; } if (!edges[RIGHT]) { - right_tile_edge = no_tile_filter && fc->ps.pps->ctb_to_col_bd[rx] != fc->ps.pps->ctb_to_col_bd[rx + 1]; - vert_edge[1] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx + 1, ry)) || right_tile_edge; + tile_edge[RIGHT] = no_tile_filter && fc->ps.pps->ctb_to_col_bd[rx] != fc->ps.pps->ctb_to_col_bd[rx + 1]; + vert_edge[1] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx + 1, ry)) || tile_edge[RIGHT]; } if (!edges[TOP]) { - up_tile_edge = no_tile_filter && fc->ps.pps->ctb_to_row_bd[ry] == ry; - horiz_edge[0] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx, ry - 1)) || up_tile_edge; + tile_edge[TOP] = no_tile_filter && fc->ps.pps->ctb_to_row_bd[ry] == ry; + horiz_edge[0] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx, ry - 1)) || tile_edge[TOP]; } if (!edges[BOTTOM]) { - bottom_tile_edge = no_tile_filter && fc->ps.pps->ctb_to_row_bd[ry] != fc->ps.pps->ctb_to_row_bd[ry + 1]; - horiz_edge[1] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx, ry + 1)) || bottom_tile_edge; + tile_edge[BOTTOM] = no_tile_filter && fc->ps.pps->ctb_to_row_bd[ry] != fc->ps.pps->ctb_to_row_bd[ry + 1]; + horiz_edge[1] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx, ry + 1)) || tile_edge[BOTTOM]; } if (!edges[LEFT] && !edges[TOP]) { - diag_edge[0] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx - 1, ry - 1)) || left_tile_edge || up_tile_edge; + diag_edge[0] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx - 1, ry - 1)) || tile_edge[LEFT] || tile_edge[TOP]; } if (!edges[TOP] && !edges[RIGHT]) { - diag_edge[1] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx + 1, ry - 1)) || right_tile_edge || up_tile_edge; + diag_edge[1] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx + 1, ry - 1)) || tile_edge[RIGHT] || tile_edge[TOP]; } if (!edges[RIGHT] && !edges[BOTTOM]) { - diag_edge[2] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx + 1, ry + 1)) || right_tile_edge || bottom_tile_edge; + diag_edge[2] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx + 1, ry + 1)) || tile_edge[RIGHT] || tile_edge[BOTTOM]; } if (!edges[LEFT] && !edges[BOTTOM]) { - diag_edge[3] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx - 1, ry + 1)) || left_tile_edge || bottom_tile_edge; + diag_edge[3] = (!lfase && CTB(fc->tab.slice_idx, rx, ry) != CTB(fc->tab.slice_idx, rx - 1, ry + 1)) || tile_edge[LEFT] || tile_edge[BOTTOM]; } } -- 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".