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 9B8044A3C8 for ; Wed, 27 Mar 2024 13:04:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CCBF868D6EB; Wed, 27 Mar 2024 15:01:57 +0200 (EET) Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01olkn2011.outbound.protection.outlook.com [40.92.107.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 73F8A68D6E0 for ; Wed, 27 Mar 2024 15:01:47 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XF3jIx1X/1X5lWnJ8SXbhZmCaa2r9+2FTkQCVIjN+bvgazrqK6P8oxjLG7t2VM4PZ2zM2rYe6en5tU23rGudT8IGjQC+1q3kvPoxIkfdj5fSYRT9upK41ogf/fg4tXa3jO5olisj3pl30fcuNVUqsCag0KVaGY8pSkyq+iCi+rKWNMFDJ2ADEJfATBeMNVheuEYe4Nqbp4t6Zoi1VSd5OJHZcnnfm8W8/e1VktaAUHzViw876z76eSpPiHLx6gbtjbPAyyZ389gKcP/oFz7xGCenRKBvBjOgYS/KaJu3E3LylfYQejWDK5Ts9DYywr7xd0HeLndbwn7iAohAlkd89Q== 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=9FlncXTUF6cSgtrQbX0+fsFsv6N1asYEpyBexJrPDFM=; b=ZMYrALr2uNjxU8rpvr5iw1pLpr7vPvlw+iRf21hVnwFK/lVcmZ3iDxrDj80OOq4jioOJcMRU4Eh1BOAkmhuFGlbmBkyBEOF0EQ8bgUfeTYCbVNRuHP4SdTTbdYM4vI7zbinLji1pPJSIu1jIAh4SSiN1k6he2M954OiMR4diDGsY52ZdPhZ6/6H5wryA5SCVRHuBxBm4rJIWbTyzoLKS60cIDCwh8KKqh2eWsc8PQq/OD0o/GEa4Pc8XYcD+fDRk+B1AshfEKR8OWn9o84G4xsx8XLEZVhHZIOzlc2YBLmKCGBYmJgRoiXNPxczVoCEpWM9qqiPvoDUV39y/WJAHDQ== 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=9FlncXTUF6cSgtrQbX0+fsFsv6N1asYEpyBexJrPDFM=; b=lxNxodrpM9R840Ad1n7iIIEuRBh0kLGPPzw4VAkFYrq2FIUAGwX5buk+zwj6UHNIkigc5lw3gFSGjdxEdjTicS/pcwBbSdzpuF8iw3JBMj4ArjSJwZcBGYKXjrwyiR3vmmqOf2cVbK0/ZD3WMkxr5fodnJeNEfZviw5PgmZdHa2fMOCGMGx4VQMvQw6rg3Ug/HuDxsz+dsNbYj5Uh9vhhzIbzvuQmMFdFeB9EBkraUW0PgotCbJndvEynfa3PvEkaA4UU24QCchT9hxVPns+HrCAtQo/w94OvcwkTTv1YcZoCMdv5SeleTz/RCZcBbvbzjXSsEKRcqYRPpg+AuTSZA== 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:28 +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:28 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Mar 2024 21:01:07 +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: [GYZvbkg94gYVZ36LemfL/QynACj1q7BA] 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-12-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: 92c3e460-cb9e-4e3f-0aa5-08dc4e5e0449 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1HpEudTcaQHiOyuKiEcgyU6NNAUdebt5UHOrWrJXfLGXEjJ5kpxohsKGeG70C5LFGPgzwBNMJ81j4xjerPPVcFCB9Oy6zI1cgSdxsR4/5dDXLGUFll28RfOVHR2WMISwlJ43uBfFVuVur9eNaDEwu76VaPVakD/5VSoWGQ9taf+L0+1Et+ujxe7sviu5oRIKY5tVl/ftakS1mOxfJGguJybEnX0hPhcAcM4b7va9m0m7MxW5sl2yM5k5Vm8LuAlqtI2h0SZPeJ4RPmlyW53kvi0DAtZgUiYCl1WXYddui+6PSOC06bv2bwQ9YiJdYlO3cAax9ypQ+Erphrxek46dWmiMZflqcjyRQDnCPAGO6lkCHZoE/ZDnpGisxyD/Sl4oBw3EASOqMZhRrVEXFc1OreJyD2TgB40hnAVFbeDr+rKYQzwPAw4TLo4h18W24nH4HvN5kEc3/hYzsTYA4VuACtzMjkGJ+AY0l0UDRIHGvi5p7SednsfWQO3qA7gPEn82i7RaFGtF4h1DpJN/k1BeV7qFczEhHlDG9Bc93+l07ocL3bbvfjHD501+CtovXO1XDK+zLuXK7hnSw8KvMXHfYHBEnrjdrfC5l7T7THtjBHEM+MQSF+Z1gdHDWI+YENoF X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rHkF9yMKbGB/0FhxI/3u6+3YYOmVs9FRpjkJ+jO7ny9ICyU2eDZ8+T6MT91Y?= =?us-ascii?Q?ONnjEFxYupkW8jvXR2TzjM7vCvjdkRrgyDUPfZqT0X68R1JB+mhQJ6/n0x2V?= =?us-ascii?Q?aweVe+0aCf6DHtD1UW3jgOyokrsrNFokiwqniYduKEOv1ieNWJrm7nTOmp+1?= =?us-ascii?Q?gHhe+ojigWq/uyeFtQ8XNmQpCl1208B7rqrPnOt5PQm/5D0DnAkoLSOsWMJY?= =?us-ascii?Q?HBBFjbAhNiaI0mWzixs1Zx+L9MLRuUg1YXFiGImd1UnVsaHciGUhyBptwvbO?= =?us-ascii?Q?n/QETzIKRcr4mgrECxtkEhEkMuaDFZ066vMaZ96DfkxBpwRDN3wsDN1m/GY1?= =?us-ascii?Q?fdtpXgK82nGWtr0UcE5PXwTVanICuZLakCW98HTTqnBl3YbGZgAFbMx5xzBs?= =?us-ascii?Q?xcPAlagibzxetDcfTj/BsWofTBshvNaYMWYEXJiJobXkiAN1KWhFt11kTjIS?= =?us-ascii?Q?tn5ymeb9pnY/ELEBClA8u9gFDfXZUjdA1uzmegs4PHGB6q1CD8T7yhY07Ezu?= =?us-ascii?Q?y3yg89Lt9i25wnX+2iK4lQgwg0bObm0k7hGBQ8vox8vMnJoTOLKbML5eybjn?= =?us-ascii?Q?2xMvGm1wanTYdQTr5AMRRn6H8Py8bfBHZN0qSwYH0o9dYxmfjaKcbZm9Tmbb?= =?us-ascii?Q?Xqf7JiDNTMeb/hh1I62j8D+Xxe6r1pI737wBjsY3vGcduHyq9QYKD0hPIZcg?= =?us-ascii?Q?/JMvKqxwA2KYseuk89J5yd6sRyGWOmUx7k9Moa3Fp4bzh6PKc5mKxrFHRYQQ?= =?us-ascii?Q?9qFSGHul+UW+gp1QSiiTCTD5TUiv55so4PtbXWCtpCZCKrX8L/VEocEehVhH?= =?us-ascii?Q?4HH2z+MgipLk1qLJRYouJ0G4m4w8dF2zWWNUCwzNH1qbZ2i4ip5LPtAfg3L6?= =?us-ascii?Q?BR37rRa98Rt4+8/g5jWIsiul+xLGjAxZEFu4PMEwCmJsPHjRjYh3ef5q4Mtg?= =?us-ascii?Q?tMGYreqb1CDe1Yby72lBpWY3veLO2izlzRPxbFnFU/bfJdFksNTnuR4Kej88?= =?us-ascii?Q?bzpJ6SeQoHVMwoc6IRVAe4abkQCNeabV93sJW0RuTSQfWCExR3yWwwc0/WDY?= =?us-ascii?Q?CjVy8owglbEV80jMt7XEiWOxYtHNAs9Yu12YVkmr0mjDWgJpuADbaf3NzgCR?= =?us-ascii?Q?Nhnhmn5tjbR4MUemL9FXW9ZQ20/mCgFPP+gvgkCFxDu9yM4OVPNXbl88Hk8l?= =?us-ascii?Q?Hq24KXbl0KsV8Z5VTV83l2iGoMoL4VdKAN5EE+65GDhxwBLcw/zNqbOHdY2j?= =?us-ascii?Q?TlVY6ndnyZH3vjFsrLaTPMCo9f2iAscj1yGo/TyksA=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92c3e460-cb9e-4e3f-0aa5-08dc4e5e0449 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:28.7525 (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 11/16] avcodec/vvcdec: refact, movie the lc->sc assignment to task_run_stage to simplify the code 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: This change also make the lc->sc assigned for run_sao --- libavcodec/vvc/vvc_thread.c | 66 ++++++++++--------------------------- 1 file changed, 17 insertions(+), 49 deletions(-) diff --git a/libavcodec/vvc/vvc_thread.c b/libavcodec/vvc/vvc_thread.c index 5d2e8c67b9..8f23b8138b 100644 --- a/libavcodec/vvc/vvc_thread.c +++ b/libavcodec/vvc/vvc_thread.c @@ -416,7 +416,6 @@ static int run_parse(VVCContext *s, VVCLocalContext *lc, VVCTask *t) const int rs = t->rs; const CTU *ctu = fc->tab.ctus + rs; - lc->sc = t->sc; lc->ep = t->ep; ret = ff_vvc_coding_tree_unit(lc, t->ctu_idx, rs, t->rx, t->ry); @@ -432,15 +431,9 @@ static int run_parse(VVCContext *s, VVCLocalContext *lc, VVCTask *t) static int run_inter(VVCContext *s, VVCLocalContext *lc, VVCTask *t) { VVCFrameContext *fc = lc->fc; - VVCFrameThread *ft = fc->ft; - const int rs = t->ry * ft->ctu_width + t->rx; - const CTU *ctu = fc->tab.ctus + rs; - const int slice_idx = fc->tab.slice_idx[rs]; + const CTU *ctu = fc->tab.ctus + t->rs; - if (slice_idx != -1) { - lc->sc = fc->slices[slice_idx]; - ff_vvc_predict_inter(lc, rs); - } + ff_vvc_predict_inter(lc, t->rs); if (ctu->has_dmvr) report_frame_progress(fc, t->ry, VVC_PROGRESS_MV); @@ -450,14 +443,7 @@ static int run_inter(VVCContext *s, VVCLocalContext *lc, VVCTask *t) static int run_recon(VVCContext *s, VVCLocalContext *lc, VVCTask *t) { - VVCFrameContext *fc = lc->fc; - const int rs = t->rs; - const int slice_idx = fc->tab.slice_idx[rs]; - - if (slice_idx != -1) { - lc->sc = fc->slices[slice_idx]; - ff_vvc_reconstruct(lc, rs, t->rx, t->ry); - } + ff_vvc_reconstruct(lc, t->rs, t->rx, t->ry); return 0; } @@ -469,13 +455,8 @@ static int run_lmcs(VVCContext *s, VVCLocalContext *lc, VVCTask *t) const int ctu_size = ft->ctu_size; const int x0 = t->rx * ctu_size; const int y0 = t->ry * ctu_size; - const int rs = t->ry * ft->ctu_width + t->rx; - const int slice_idx = fc->tab.slice_idx[rs]; - if (slice_idx != -1) { - lc->sc = fc->slices[slice_idx]; - ff_vvc_lmcs_filter(lc, x0, y0); - } + ff_vvc_lmcs_filter(lc, x0, y0); return 0; } @@ -484,18 +465,13 @@ static int run_deblock_v(VVCContext *s, VVCLocalContext *lc, VVCTask *t) { VVCFrameContext *fc = lc->fc; VVCFrameThread *ft = fc->ft; - const int rs = t->ry * ft->ctu_width + t->rx; const int ctb_size = ft->ctu_size; const int x0 = t->rx * ctb_size; const int y0 = t->ry * ctb_size; - const int slice_idx = fc->tab.slice_idx[rs]; - if (slice_idx != -1) { - lc->sc = fc->slices[slice_idx]; - if (!lc->sc->sh.r->sh_deblocking_filter_disabled_flag) { - ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, rs); - ff_vvc_deblock_vertical(lc, x0, y0, rs); - } + if (!lc->sc->sh.r->sh_deblocking_filter_disabled_flag) { + ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, t->rs); + ff_vvc_deblock_vertical(lc, x0, y0, t->rs); } return 0; @@ -506,20 +482,15 @@ static int run_deblock_h(VVCContext *s, VVCLocalContext *lc, VVCTask *t) VVCFrameContext *fc = lc->fc; VVCFrameThread *ft = fc->ft; const int ctb_size = ft->ctu_size; - const int rs = t->ry * ft->ctu_width + t->rx; const int x0 = t->rx * ctb_size; const int y0 = t->ry * ctb_size; - const int slice_idx = fc->tab.slice_idx[rs]; - if (slice_idx != -1) { - lc->sc = fc->slices[slice_idx]; - if (!lc->sc->sh.r->sh_deblocking_filter_disabled_flag) { - ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, rs); - ff_vvc_deblock_horizontal(lc, x0, y0, rs); - } - if (fc->ps.sps->r->sps_sao_enabled_flag) - ff_vvc_sao_copy_ctb_to_hv(lc, t->rx, t->ry, t->ry == ft->ctu_height - 1); + if (!lc->sc->sh.r->sh_deblocking_filter_disabled_flag) { + ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, t->rs); + ff_vvc_deblock_horizontal(lc, x0, y0, t->rs); } + if (fc->ps.sps->r->sps_sao_enabled_flag) + ff_vvc_sao_copy_ctb_to_hv(lc, t->rx, t->ry, t->ry == ft->ctu_height - 1); return 0; } @@ -528,13 +499,12 @@ static int run_sao(VVCContext *s, VVCLocalContext *lc, VVCTask *t) { VVCFrameContext *fc = lc->fc; VVCFrameThread *ft = fc->ft; - const int rs = t->ry * fc->ps.pps->ctb_width + t->rx; const int ctb_size = ft->ctu_size; const int x0 = t->rx * ctb_size; const int y0 = t->ry * ctb_size; if (fc->ps.sps->r->sps_sao_enabled_flag) { - ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, rs); + ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, t->rs); ff_vvc_sao_filter(lc, x0, y0); } @@ -553,12 +523,8 @@ static int run_alf(VVCContext *s, VVCLocalContext *lc, VVCTask *t) const int y0 = t->ry * ctu_size; if (fc->ps.sps->r->sps_alf_enabled_flag) { - const int slice_idx = CTB(fc->tab.slice_idx, t->rx, t->ry); - if (slice_idx != -1) { - lc->sc = fc->slices[slice_idx]; - ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, t->rs); - ff_vvc_alf_filter(lc, x0, y0); - } + ff_vvc_decode_neighbour(lc, x0, y0, t->rx, t->ry, t->rs); + ff_vvc_alf_filter(lc, x0, y0); } report_frame_progress(fc, t->ry, VVC_PROGRESS_PIXEL); @@ -602,6 +568,8 @@ static void task_run_stage(VVCTask *t, VVCContext *s, VVCLocalContext *lc) av_log(s->avctx, AV_LOG_DEBUG, "frame %5d, %s(%3d, %3d)\r\n", (int)t->fc->decode_order, task_name[stage], t->rx, t->ry); #endif + lc->sc = t->sc; + if (!atomic_load(&ft->ret)) { if ((ret = run[stage](s, lc, t)) < 0) { #ifdef COMPAT_ATOMICS_WIN32_STDATOMIC_H -- 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".