From patchwork Tue Jun 4 12:04:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 49538 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:9183:0:b0:460:55fa:d5ed with SMTP id s3csp2634913vqg; Tue, 4 Jun 2024 05:05:17 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWCHIGpTR+AjMTiZoj1vSv29JeYbSyQL7TOomy+d3/pD2oaOehnnI/R5rsI6jF7LTMKtNYIiQ/KCRUM6Aoj80fu+Ex3m1hu9YaSRA== X-Google-Smtp-Source: AGHT+IH47XIpiKe2H4s7ZMcV8v89Cc8rU6IOx5L0Hmf73X45oXj6aT4gF2a9DG8/AkbDu6uhetYr X-Received: by 2002:a2e:3a06:0:b0:2ea:97a3:74ce with SMTP id 38308e7fff4ca-2eabb750f94mr7681691fa.5.1717502716757; Tue, 04 Jun 2024 05:05:16 -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 38308e7fff4ca-2ea91d4cb1esi29242801fa.519.2024.06.04.05.05.16; Tue, 04 Jun 2024 05:05:16 -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=R1lsGQe3; 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 23EB968D701; Tue, 4 Jun 2024 15:05:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01olkn2047.outbound.protection.outlook.com [40.92.52.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 18EB768D6EF for ; Tue, 4 Jun 2024 15:04:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lOsqwDNfsDVSvp3A2RVRLaDYCtFsb3RcmqeSorBgK3bNTLMpPGxSMTq7sCi4euqezVfJECgC/DJ1WAwe6Koc1EBlQc3YPwunAHKJ7YQ2oBQmSScGEEiG+ZoethmrddQfL1rweXDXcbeSnHfUWMzEk39H4xkls/eGfkvCXJuQQHhTpcNGo3LzatVEUEs4OiTc8k6g1e9uZyPWMmYse/WOx5Rs2zwtLE+0uzml+kiiAGHNl2FOrj0l07rBgT4XDxFT6kcsHHaf5dN+8I8In5jlrVfg6qF7XYIhSDO0R7mASbDdDm5BSlqEEjDKdufeddBf/Pw+t9eSD5R6TC319L1D4Q== 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=mRTms3vDlp//iHJMJwmjjO6Q6Tpfjxc/VH6xBUnWDAg=; b=cS6V6nJUkKdFCZ6agxPg17FDxFUKKtYSHERtgHPqPZV5tzZHxuVnrad8G5GeICL93me1NOPn53OUq3poeV7WHvKUDMB2bOjhqIx+NmfS4TiTpEJDMJYiU0G8wF2fapWAnHv036i4fYnvIYcDwgUsedTwizOdP6crZQcTsk73kVsZXuhcu/swlDTw8nSii+GIDKmfD9gX3JTUgLDpC6HvqUgZ9AUSQpLo0C2bGbrciDp5MYhkO7VtTvX6y5OExWBXZ6zzNrOCJ7KOuw39fnYXUdgL+iHFJuDbG2If+EZARRQtHbvpztVEh0NraEBfI+CCegJTWBJU6ndZWg7nlNbeFQ== 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=mRTms3vDlp//iHJMJwmjjO6Q6Tpfjxc/VH6xBUnWDAg=; b=R1lsGQe3xpOlWlxfgKrURDLp4D0rBtTNdhHfndoV4MOnd0fkntmfYmf+KbKpoxN18ycE3Fz27UmczhXCSQgQJdv9wtW9IRube1r1qpdNOTWeYVjaWLM6KHyWy4EuuUoMXJqc06Rv0GI/VBu66IgWJ0tA4GyIZPw33P8GMG0mfbDQNWVbW2MAunexi2A/d99dEy2GtsjB1gjvhRPMaT1XxH1PuisaRguz/wiwvzOVReN9OtTm5LiJtBuvPmP+SNXQUEf3UDrXzobCMTVZhy8EA4bckcYGvMwwImKsSeYOe1VljnV+WIkbkW7vdsxLsYdOEd9bE50oTHpqjgDZdnDOVw== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by SEZPR06MB7187.apcprd06.prod.outlook.com (2603:1096:101:234::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.30; Tue, 4 Jun 2024 12:04:48 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::81f7:9125:583a:1cca]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::81f7:9125:583a:1cca%4]) with mapi id 15.20.7633.021; Tue, 4 Jun 2024 12:04:48 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Tue, 4 Jun 2024 20:04:08 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240604120411.435626-1-nuomi2021@gmail.com> References: <20240604120411.435626-1-nuomi2021@gmail.com> X-TMN: [/Umao9eYpulxy5t5OSK+eruGXX/iQqVL] X-ClientProxiedBy: TYCP286CA0038.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:29d::9) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20240604120411.435626-2-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|SEZPR06MB7187:EE_ X-MS-Office365-Filtering-Correlation-Id: 925309e8-2b92-4f53-a4b8-08dc848e8773 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: a7bVTctoKKWfpdMu9kqyYZFO0AgDDh0J7OL8j+CUGEMcl6i++4Oc8/icrgUgny4NBSNDrnzTNdGyNfc5PsJ0Q/efC2hT+jXVFxB63NtK0E11p+RmOAfbFWfgXQ1oYHleYOYkLOaJnrQ1BaWIDHeiL9E3Tn32lmksbygxAymgEuD9DPLcbqURAiiSnSh7Is6HRurmUqrlD6td28sf+CSLPtIjCyhRknSOAdct3fLwgS5d3KQ0/xH3OF5/54Xw9NcrofwEgM9ru7I+rQJNlr+eanyI7dPsvehFvHw9Mu5zFWOUeNZRNqocktL158LGV2IAGi8TMP5KssN0D6CiZg863b1ikZAG3sqYx3nwb5DCRehQCPb2+wne5BYwuvrd9Kv2ZGiJF4UMFOdKKMqoENcFa2w+IokWmizzdwcW128SY9xpgCoD49NTkH+jUiiKnu1E/UMnwAHWeHg+K6o1MnVdeqbtOl2Wql0n9mNIHHk1+RqNzCVmMdirGivzdKj3rHzAfpR6bEekqlnyXZcTOpudWo+OV2c5uRs7BtehHhdM404C88k8lSpKYDUQuJE8HeaesJ7OHX+Sk8BYQ/IWfhuBctHuiI5q5tOEbBaeClYq6zxdTpZaCt8Pf0pyDB8EW/y+ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nYT3peWpOwh296IGsm+ht8LLgYZhtd8gxe2nVcCLbBSEK7zOemw8jHmAk6FtOgHdbvV/nhE8Zi5+r1Ni9HU3s+wy5vSsOUQmIHO8VRUMhmhdcGmWaVSSuPhWdsJAsO26bfZ7co9rS2LlvZHBtnMRQhx0ZDdZzAdJAIAQy7r+d3n3xLSAhfutQa2jFT5vp23cgBo2XsDJh1zpmkTa4U+iMluIFWV7RDJ/wY9J4VZMWQUSJ9tEQBdq6cF6M7e8h4DZyb5TQFzOKSsJ3CRqhqEmTsooxt7bgS941U5VdBsQoRs1fI6PLPkstcPZgrrgV9fzKuIs+ML4L3tRKX0CtA4sAnEaspybDM1rnI0FobV1x/ZgTE8cUYA78HHH9fbSTunw32Yz0we3cRnIjU3yk1qZ9rZtTLD0bbW/m3nPKk9AK/ISzEGj37qFvCgOPbjYzpMPIWJhyDBwfYBEHEmUWXxQ3e9XzrkDrtE3RgFbQ3WbY1tS0fySQJNUXiMSe419kXQdeATUQrREgxyaA6e7d+Pd4o/ViUfFeXWcM+p7idWLKTwFMbU4rJqYg4qgo3xiT5Ehj9vyEcNgSsGHCF5bsbTqn+970mI6K+B92NO/YWJwrIuIRz1gI/15szswySjcj8LuE23j+KogkcOi+AlervJqABkvy14EkNpfkYIxM+2/4kVNs+Gf5Vbb1C5130lW7w9nVtTzK7mXn+ZS3TseKr/+uSP9Z2ADmhD3AoYSm/WV1MxBNTOPKwlFmy9aOXlJBmRa/RJW1jkr9wM8sAYzSVL2mxWRpTIIulEJAqVSBnP06NxPEtMBjZ1IQrLpcnt9hTX8CNVW7unYHsSt4rV419g/Tw0GZE6TDGuWZ2u5SHAmGfXBNFudm8RTWLt9ZjSxYyDVgbpoSljhcoOT8pe3kHlMb1un0WqdZrlBLlkxBSbGA5PBj8lurU7KIUuCNClPFzYM3S+gvuo176RWpzNn4oDteky5u4UkEKlwonjBjygQFFyz5Kl3eU1bzIlmHWcRWKrRC6itdKubfdpww2XobFn/6JRzgOuwJVJr8CDJi7dSUxDaR0pxh1lLi03dlxbP9bjpvx4UDPvRcosP2KpEhkVBY0fPm1TVflLB9XM7dnwwmM936yEQvFhbZRyEuGTuZv6pjnLGRtOf33vsDGVekyYYw7t3xHyK6vFEJqNq9WA+p7BRL1+zYA/1rOG1wEOdLPxPEkp5mzCQA76Eh8e39x/eJTsbSbTTeu7IOSzmtYLmrJUoeKB+gOIohgDZjMz0rJ/zNADaH/yOPU9pqGNeQTvftA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 925309e8-2b92-4f53-a4b8-08dc848e8773 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2024 12:04:47.4606 (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: SEZPR06MB7187 Subject: [FFmpeg-devel] [PATCH v2 2/5] avcodec/vvcdec: misc, move src offset inside emulated_edge 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: benjamin.bross@hhi.fraunhofer.de, Nuo Mi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 4GXEBop36zk0 --- libavcodec/vvc/inter.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/libavcodec/vvc/inter.c b/libavcodec/vvc/inter.c index 0843c99eb6..07b55c4bac 100644 --- a/libavcodec/vvc/inter.c +++ b/libavcodec/vvc/inter.c @@ -57,6 +57,8 @@ static void emulated_edge(const VVCLocalContext *lc, uint8_t *dst, const int dmvr_clip = x_sb != x_off || y_sb != y_off; int pic_width, pic_height; + *src += y_off * *src_stride + (x_off * (1 << fc->ps.sps->pixel_shift)); + subpic_offset(&x_off, &y_off, sps, pps, subpic_idx, is_chroma); subpic_offset(&x_sb, &y_sb, sps, pps, subpic_idx, is_chroma); subpic_width_height(&pic_width, &pic_height, sps, pps, subpic_idx, is_chroma); @@ -170,7 +172,6 @@ static void mc(VVCLocalContext *lc, int16_t *dst, const VVCFrame *ref, const Mv x_off += mv->x >> (4 + hs); y_off += mv->y >> (4 + vs); - src += y_off * src_stride + (x_off * (1 << fc->ps.sps->pixel_shift)); MC_EMULATED_EDGE(lc->edge_emu_buffer, &src, &src_stride, x_off, y_off); fc->vvcdsp.inter.put[is_chroma][idx][!!my][!!mx](dst, src, src_stride, block_h, hf, vf, block_w); @@ -199,7 +200,6 @@ static void mc_uni(VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride x_off += mv->x >> (4 + hs); y_off += mv->y >> (4 + vs); - src += y_off * src_stride + (x_off * (1 << fc->ps.sps->pixel_shift)); MC_EMULATED_EDGE(lc->edge_emu_buffer, &src, &src_stride, x_off, y_off); if (derive_weight_uni(&denom, &wx, &ox, lc, mvf, c_idx)) { @@ -236,7 +236,7 @@ static void mc_bi(VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst_stride, const int oy = y_off + (mv->y >> (4 + vs)); const VVCFrame *ref = refs[i]; ptrdiff_t src_stride = ref->frame->linesize[c_idx]; - const uint8_t *src = ref->frame->data[c_idx] + oy * src_stride + (ox * (1 << fc->ps.sps->pixel_shift)); + const uint8_t *src = ref->frame->data[c_idx]; const int8_t *hf = INTER_FILTER(hpel_if_idx, mx); const int8_t *vf = INTER_FILTER(hpel_if_idx, my); @@ -306,7 +306,6 @@ static void scaled_ref_pos_and_step(const VVCLocalContext *lc, const VVCRefPic * static void emulated_edge_scaled(VVCLocalContext *lc, const uint8_t **src, ptrdiff_t *src_stride, int *src_height, const VVCFrame *ref, const int x, const int y, const int dx, const int dy, const int w, const int h, const int is_chroma) { - const VVCFrameContext *fc = lc->fc; const int x_off = SCALED_INT(x); const int y_off = SCALED_INT(y); const int x_end = SCALED_INT(x + w * dx); @@ -316,8 +315,6 @@ static void emulated_edge_scaled(VVCLocalContext *lc, const uint8_t **src, ptrdi const int block_w = x_end - x_off + (x_end == x_last); const int block_h = *src_height = y_end - y_off + (y_end == y_last); - *src += y_off * *src_stride + (x_off * (1 << fc->ps.sps->pixel_shift)); - MC_EMULATED_EDGE(lc->edge_emu_buffer, src, src_stride, x_off, y_off); } @@ -414,7 +411,6 @@ static void luma_prof_uni(VVCLocalContext *lc, uint8_t *dst, const ptrdiff_t dst x_off += mv->x >> 4; y_off += mv->y >> 4; - src += y_off * src_stride + (x_off * (1 << fc->ps.sps->pixel_shift)); MC_EMULATED_EDGE(lc->edge_emu_buffer, &src, &src_stride, x_off, y_off); if (cb_prof_flag) { @@ -444,8 +440,8 @@ static void luma_prof(VVCLocalContext *lc, int16_t *dst, const VVCFrame *ref, const int idx = av_log2(block_w) - 1; const int is_chroma = 0; uint16_t *prof_tmp = lc->tmp2 + PROF_TEMP_OFFSET; - ptrdiff_t src_stride = ref->frame->linesize[0]; - const uint8_t *src = ref->frame->data[0] + oy * src_stride + (ox * (1 << fc->ps.sps->pixel_shift)); + ptrdiff_t src_stride = ref->frame->linesize[LUMA]; + const uint8_t *src = ref->frame->data[LUMA]; const int8_t *hf = ff_vvc_inter_luma_filters[VVC_INTER_LUMA_FILTER_TYPE_AFFINE][mx]; const int8_t *vf = ff_vvc_inter_luma_filters[VVC_INTER_LUMA_FILTER_TYPE_AFFINE][my]; @@ -704,7 +700,7 @@ static void dmvr_mv_refine(VVCLocalContext *lc, MvField *mvf, MvField *orig_mv, const int oy = y_off + (mv->y >> 4) - sr_range; const VVCFrame *ref = refs[i]; ptrdiff_t src_stride = ref->frame->linesize[LUMA]; - const uint8_t *src = ref->frame->data[LUMA] + oy * src_stride + (ox * (1 << fc->ps.sps->pixel_shift)); + const uint8_t *src = ref->frame->data[LUMA]; MC_EMULATED_EDGE_BILINEAR(lc->edge_emu_buffer, &src, &src_stride, ox, oy); fc->vvcdsp.inter.dmvr[!!my][!!mx](tmp[i], src, src_stride, pred_h, mx, my, pred_w); }