From patchwork Sat Mar 2 14:04:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 46699 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a919:b0:19e:cdac:8cce with SMTP id cd25csp1863419pzb; Sat, 2 Mar 2024 06:05:23 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWlCPR/rKjmI9vP75bnyDohKgkz9u7N791Q2/tY1pM+vh0qyvvFTIgr0saBDH+phy7tUkyLUt8PVjwk0TAt+ltwqFZyI738s2wO3Q== X-Google-Smtp-Source: AGHT+IGtkyKa6tZjRYUM0yYavyFd+e7ZLUiULLA4ixig/DIuYR+Deldv93cCHR7vbzPb2LrLCPZ+ X-Received: by 2002:a17:906:7f95:b0:a3f:52dc:786b with SMTP id f21-20020a1709067f9500b00a3f52dc786bmr3841256ejr.23.1709388323077; Sat, 02 Mar 2024 06:05:23 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h17-20020a1709063c1100b00a4367fec51esi2357982ejg.122.2024.03.02.06.05.20; Sat, 02 Mar 2024 06:05:23 -0800 (PST) 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=jjtvtHru; 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 4273D68C92A; Sat, 2 Mar 2024 16:05:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01olkn2032.outbound.protection.outlook.com [40.92.107.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BAB4368C92A for ; Sat, 2 Mar 2024 16:05:09 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kpK8eAvmd25ad/15InTlqWZLDYNvOD/7+FA/RbyFcKzLaeWPuPksohu+tnGM7LHY/2RM46P42sWWm0hKZvCsj9WIhE2S1BcOpY8QvqmvBDqQlWhLTwvneiHUUMI7958u3bTlDT7QEEduhxUtISnmguz8Z1vVhyid+Q4GjeMlJr9m1zsY7PR9Qh+QrWKretHz5dNeOYpuJ6u0lbM91Kj5lV0wnj5xTojL9RHviwj4Pq+M0laLJ+o8LOv3uAn6vRyzYayeaWteuKXfW6XtL3edV34/Lj0A/7Xk2g9DmjNOlMwxcU66XTo+87WedXdm2z/Fzr9haO0ioSahsRCrVMHmig== 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=E6E+QEu+Jr91wxGXdIGmXY2ujpdMPkSBH1cIfzLAL8Q=; b=UgF8xsi4oKQbAnopc6WWiPQJBZIjs43pKTRcowSaNjdxvs1aIim/PmPNo1FwlSK2/MeGOQ5rOjP0LdDIyrpLrtNWGVLcvNuc8odnJLc7ByOtXwUm8O9lcDu6NrCJ4f9R0h18sa/4056bgT4nxYUS9aZ2SeyfanjIoKfWsgR4mrWdFLPXB68FCbSrp1ap+cuKbW09IhgwwVvmsNOrhMAOfWoSbYhErDb1Jq4CooQ18V+TgQ0sEPWQ0Xl5fk0XsZXOmfoAuGdDlbFIe7r/zTtW7CXpDPd+o8wMVEeDcZen/bwlwEGESBqdprheqFn84Alx6rNkrlaM1Nuw0mU6QPz1rQ== 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=E6E+QEu+Jr91wxGXdIGmXY2ujpdMPkSBH1cIfzLAL8Q=; b=jjtvtHrugjicCsuhzZve0W9PrkRDEOLZb2ge1OUIEPUfNtD1tFdTsIU4hDu10kf8CezCCWOH2fDM/lrhdKVePm/djlde54HT4oP1sQjZZhqZeiKYhjzoM5SfCGtM8YSa/YpXw+npgorJ5EqYg7ioLu+ZxnW+jvtPP3YsJxC+We0iI9sp5oEEPSmpfe5K0l8l3/5jbxIbdLar+H/LdVTbLklnBKnlmZ8slN+fCPbRejQq/p6c6088Cbw2P0FTYoyf/TfkHfd5mxPDUqBFBORASe4EbAKmdmANcRqCQBzZzWVj/GnOMMSJGBtpVftcAlv5211qbTUa4y0pR+nps7S6Xg== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by TYZPR06MB5906.apcprd06.prod.outlook.com (2603:1096:400:333::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.41; Sat, 2 Mar 2024 14:05:05 +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.7316.039; Sat, 2 Mar 2024 14:05:04 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Sat, 2 Mar 2024 22:04:40 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 X-TMN: [SlLxLT9x1Uunn6w7uHl5s2VtdK3U3wTE] X-ClientProxiedBy: TYCP286CA0133.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b6::20) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20240302140440.2350-1-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|TYZPR06MB5906:EE_ X-MS-Office365-Filtering-Correlation-Id: 74ee219c-1287-4582-2355-08dc3ac1c21f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: racbLKyRKBF0oTkK2caMhNqMmvXxswvVFOdLDnuP8DJmmkRUyllcOJhE81mZ/2P5ZrLbGcLoQp7WUhnPZOZaEDBeeQ6HkYN+Ms+WbRm6oaf1fYnbNbSRTle5Unw2Bpga3m3HR8WYa8WAy5hMOqX8PPOBDNQklOGXub82ma22O7+0KE/IHPvIDcOrMRX4ViuSDQBN6WfD6i3zR8T4mx7wYcM3IVilKDMbQFYU33v+AwMI+RcaMxqZdNl6tN+XbIJ++oLNtm8GFLLuXsXLl0i0doCujFjCqAqNJ/m6jA9/40Djh6o04sBqs7SNKi+L+81XcAcC4DGEw7qeerF/S6Bk5XFpVmtuWwTplxQOX4gO6Dywot2W+jK35eaZinD15ALG5U0hdd15Xx1FScJb6MKaKFS6MtB8aGb3HyXxITTckvBPuFWmmLQ5y+jbnd+0h4eaeau/Zim+lVfHh/MnlhUFq0kEjNWL/n/PBs9aaFXvEamnLRFO7ljdqTBuvytowFa7TlBR8nF+29cb5UrR6Wi2YOCEOT/jF+PFZWeLWG/6uakS9R40+1jQYV4iDKYihFFx4YXYe15LpPk2iW0R9tsk8khS8Mk1Z7Tow0gXH4rlONbhG6TXjhBrA6ef7BPL+etNqWVTz7+Oth4tMAvABs07ZJ/KBqApQaHsr0FV3puFgAnPXT30vyJQc8ZU+M3UA2Yb X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NGAt3PY20e4uQFe5en1iz9amfiqIWA/R6jB8R6PxWPpFY5TTFhQXqSZZJnXrI/p2R2rP45KmuF43nUDOQCZTG34J52FgMLGKW7ZZKbZ/5cV87DHXFGRSkhHOIj9J56ikKttoyFBLf5MMmD+39iCWXAIXdO6bUvAQdF9tqjGlXO76pg2VmOz6KxOs3wWXE7UcLGhuuhgL7R3HWc8DjMMqLfrmuI5rbFFNMvQyvCjs9jBSKMSKtbb8gEoHTPz5cSkggAKaVNOy4svzsW2YZjBwcXLSUgZogEdCM9ryTnPqZY/+lPKFvCTXCf3y8vVTUc5z0OETCBtc3uqwXAGPoY8WrjQ/BqJSDhbYrgYsjEZPWIHjKTWbEx1IcfkN5i3iOFmVs50FJNYZmylAJzRUxZfOCLSntbECa7wpfeqDxgzkxNiqw3A1bSS2M04hrp3ztDYFbJnEUqmbgkxKrSyKhkTciHm1bv6coGng058cyv+EP5C/830fJAaD9Ias5r3kbqoGce1x4CwQiuabhBETMPXMUpW4HIYBlEpY9CshRsJswoOkmJSaCQ83NFME+z7v7vIgVwfwYRuLpNrre9OseLyozl+kSfnlXdfXXbx2It2o7Ug1IrOMUOV4NTghvx7q7w0SAnlnxPK9CL5zQaETmjqp8+SMiPP1DJDshbhkwRxloSD8fuKz/6K7vIJSPBwJ5vCeEBZop+7Szchk+LdC5m2X/MnzfuYUrf4F2stSDcJqj1/InDE4aIG5NMNCa36I0GctpjVR49nk1CdbYn3jsW1A/qGqbCf8eCfAV7ZVizLXS1EqFCd5fTiqZgY9eoqBSGf0axS4AN6utqbCxFiwdE0eB+O+kC4XBdpVvbiAkj/7wsrn2nU5EKdI9wJZ3eYz4n5KNQWwoiQGza5p6HmCFRKAbsCC4iQvohVto5YWuUqrbQN12NPTBQx1SniyB3N2XhQiz0aoLIdJIQwlEuXmzrTh0xZUtUpj+kQP8H3XaqbQVJdZ4Ha90PxR+jH8eSyFHxIFfqlVP8Id4wkocmpVPZFMKYRoylSG/BIAtpf8leaSCW8oSTc/0Xw3WOC9BTptBOXW+YwKQk2Jd6s1zOKk8d4INDJVfIfQXIf3eHQArWb5OpSVEuKo4Rv+HDe4dMMg/9UN5tyWgOMWDtP7ukaeRn7jVr5Wv75C8YUpXpFJBk+zPUevd/kTDMMCvZuQCCjGSJ03nXJ6g4KHAk+AIzTgxKdD0aJfkIB1UJURuFldK0mn/Z8GOE8hyEKru1eIig1UPEwgwKVy1n2ND1ySgYidhjYIWQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74ee219c-1287-4582-2355-08dc3ac1c21f X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2024 14:05:04.2876 (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: TYZPR06MB5906 Subject: [FFmpeg-devel] [PATCH] avcodec/vvcdec: fix boundary strength when IBC involved 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: LT+ftiwr6xJS The following cases should set bs to 1: If the prediction modes are not the same. If both prediction modes are MODE_IBC, but the motion vector delta is larger than 8 of 1/16 pixels. see 8.8.3.5 How to reproduce it: vvencapp -i sintel_trailer_2k_1080p24.y4m --preset fast --additional "IBC=1" -o sintel.266 ffmpeg -i sintel.266 -f md5 - md5 will mismatch Found-by: 6ws at https://github.com/ffvvc/FFmpeg/issues/187#issuecomment-1962842135 --- libavcodec/vvc/vvc_filter.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/vvc/vvc_filter.c b/libavcodec/vvc/vvc_filter.c index 379d90d02b..dded447bfa 100644 --- a/libavcodec/vvc/vvc_filter.c +++ b/libavcodec/vvc/vvc_filter.c @@ -309,6 +309,10 @@ static int boundary_strength(const VVCLocalContext *lc, const MvField *curr, con const RefPicList *neigh_rpl) { RefPicList *rpl = lc->sc->rpl; + + if (curr->pred_flag == PF_IBC) + return FFABS(neigh->mv[0].x - curr->mv[0].x) >= 8 || FFABS(neigh->mv[0].y - curr->mv[0].y) >= 8; + if (curr->pred_flag == PF_BI && neigh->pred_flag == PF_BI) { // same L0 and L1 if (rpl[0].list[curr->ref_idx[0]] == neigh_rpl[0].list[neigh->ref_idx[0]] && @@ -497,6 +501,7 @@ static av_always_inline int deblock_bs(const VVCLocalContext *lc, const int cb_p = (y_p >> log2_min_cb_size) * min_cb_width + (x_p >> log2_min_cb_size); const int cb_q = (y_q >> log2_min_cb_size) * min_cb_width + (x_q >> log2_min_cb_size); const uint8_t intra = fc->tab.cpm[chroma][cb_p] == MODE_INTRA || fc->tab.cpm[chroma][cb_q] == MODE_INTRA; + const uint8_t same_mode = fc->tab.cpm[chroma][cb_p] == fc->tab.cpm[chroma][cb_q]; if (pcmf) return 0; @@ -517,6 +522,9 @@ static av_always_inline int deblock_bs(const VVCLocalContext *lc, if ((off_to_cb && ((off_to_cb % 8) || !has_sub_block))) return 0; // inside a cu, not aligned to 8 or with no subblocks + if (!same_mode) + return 1; + return boundary_strength(lc, mvf_q, mvf_p, rpl_p); }