From patchwork Fri Oct 4 14:31:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nuo Mi X-Patchwork-Id: 52045 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:938f:0:b0:48e:c0f8:d0de with SMTP id z15csp461411vqg; Fri, 4 Oct 2024 07:39:05 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXRM9rBBVViQMF0vVtjl8l5KDHoXaVvqNoXcQDBuVhG1BrmRnjaNHi0llQFiMmIizPx0Xkeq9QuD7McBPspkU+6@gmail.com X-Google-Smtp-Source: AGHT+IFxbk+UpPmbWlqrIi7mFm92mi2j1+nTfN0jzpeLUoJaXKvLlmIsyAUQXvgOLfqgKzA6Q1FM X-Received: by 2002:a2e:be84:0:b0:2ef:2b38:879c with SMTP id 38308e7fff4ca-2faf3c0169cmr18243611fa.3.1728052745315; Fri, 04 Oct 2024 07:39:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1728052745; cv=none; d=google.com; s=arc-20240605; b=DRCLCFyMO2E+N18K65gsEsA9oTG0vd7ScuO6yszgRV3Pvk+n4kwVGYhordIh0v63vf DqxLkrGmMT9QE0yhrrgBUdXougK5j+7NfPP7jfWzSKC6Fck9Snd/gHmiHnQz4Y3Tf9vM pfYfnE2rMBpG/Ls8J4QcH+wDEQ8uDKQHpB+3Wh2Cml7DHXKiLZNtKzwBxt8RA+rwyb87 AFKFJnjhGKPmCotlvXB/4Q0U4eyVW97pAd5PmhPVJCJEsvg7Hw225PNi4hSMyzdIqLpu ZlJK60Ic3vwOSaWOclh05ojV8+mg5vxvJvrA1BxQmg1m77G3zoLJPLtQHu7DABcUoTzd AELA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=4/x7BWZixu/Skr6uvRUiz/TL49tTT43Q6sy2O9YGHlk=; fh=mZk9AfRmPBMGW9h158yccPeJgZmEjzU2tMQtLZcF184=; b=DPjAm8qJuuzJZJvoSm137dHcMSidmT0b6jn0O9jhb+61W0pBPlUszOCBoGHkS2og8O W12YefmSkc0EupKz/SQ/3BcPAMAsPTK3HMnpGxKzNrRAV2/e0yAFg4auDZgZn35GWNKe 5tauNCGj8TrRMV0QxtJgXKo2bVkCYCtTwLg37pznok2El/HwsV4op4HJYjVeVTB9aJ91 OrpjOIvfoUumVqJxLjJbhxcHRztzafN0ApZP08TdFIn1yRamiZMjqcYtpBXunAurwTNQ mIYEs3+8zDyxM0UnlwXXnAH8ExwCwFsMMl+4Dsm0LROzAL2uGySV8QKCWsklRVGsr04f r1tg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=NYSu0gb6; 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; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2faf9ab0552si7371fa.73.2024.10.04.07.39.04; Fri, 04 Oct 2024 07:39:05 -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=@gmail.com header.s=20230601 header.b=NYSu0gb6; 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; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9FDD868DA91; Fri, 4 Oct 2024 17:31:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 527EC68DA5D for ; Fri, 4 Oct 2024 17:31:29 +0300 (EEST) Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3e2a1049688so1105958b6e.1 for ; Fri, 04 Oct 2024 07:31:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728052288; x=1728657088; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BPYpHi2NiPA69tsrCtitSWWzKsP64K/8aDvBVfk2c4Q=; b=NYSu0gb6U2p21U2Vka2K8GoCvLms+vZAXPrJAjZVQzZuPVkcWGcgSmLb/CN7zYZ0CL d91zCETBz66swc75c/ZaTMoTYvC0Ziwsw9xMOIiauORyFlsirS/2zWfI8Ebs0OMDeQ5j f+xgpKXv4CVlfDPacOIB7LHixawBg++GbADR1nEeISGyub4SiDhvmie2fwlc7AFNgJy5 M6rQ50tbFi5Vczau4GjErln2kzToPDMPCgROtekIT062Nq2CT3B5USY98NfxViEHHX5w neSmUdE0hdho1ZIa3zh7VJdVpTk44fi1CNXbBpWK4m++TX2sgNeKi3wIS+iuX1qKk1rY IFRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728052288; x=1728657088; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BPYpHi2NiPA69tsrCtitSWWzKsP64K/8aDvBVfk2c4Q=; b=dMK1DiJ4TbI+J7sHQmeQNbcdM+jw+mbmidoQv9uIfAUhnke29wrxEZiHueGG3thUtQ I58HtlG0WJgjreE6XAfyLBXPiGB1DJzzYqAe/dNmzjHn3J5W1Za0aVwddAo0dr8hI3fp lklc/cYYTq8lMGiUWf4mDcW/qTyxuoXeNwpDttrLaQmTIY0edCEtqi0yQRolI4MPzSQi 2Pk7ApVCnJNWF8AhZwmTxptIPh8p/auySGojH1+Ay41Vp9ELt0zMKF8Iy427R4C6Mr1Y vnndwAR91ZJ3sWwSUsSkqm4bqyYMA29Yi+uTuAbMFV13PEyw3fH13B8JSCUh+JGlpB2v mrCA== X-Gm-Message-State: AOJu0YwaZESUz7789CmT+fIAyH5sHzCB/nhdpgQ25a2euyvg7n6XK5io psS+/zOG5FO2vC18BmrlOVIZf5u1jLW7uQIiT3RfYy+/P+2BtRUJbZj8PAA4 X-Received: by 2002:a05:6808:1b25:b0:3e0:374a:1a74 with SMTP id 5614622812f47-3e3c157b70emr2487082b6e.31.1728052287667; Fri, 04 Oct 2024 07:31:27 -0700 (PDT) Received: from localhost ([112.64.8.17]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-71dd9d6fee2sm3264788b3a.9.2024.10.04.07.31.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Oct 2024 07:31:26 -0700 (PDT) From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Oct 2024 22:31:13 +0800 Message-Id: <20241004143115.382070-2-nuomi2021@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241004143115.382070-1-nuomi2021@gmail.com> References: <20241004143115.382070-1-nuomi2021@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] avcodec/vvcdec: misc, move pcmf from min_tu_tl_init to min_cb_nz_tl_init 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: 6kBfFxjuZjW/ pcmf are cu level flags --- libavcodec/vvc/ctu.c | 8 +++++--- libavcodec/vvc/dec.c | 4 +--- libavcodec/vvc/filter.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/vvc/ctu.c b/libavcodec/vvc/ctu.c index b33ad576cf..8210ab520f 100644 --- a/libavcodec/vvc/ctu.c +++ b/libavcodec/vvc/ctu.c @@ -1240,16 +1240,18 @@ static void set_cu_tabs(const VVCLocalContext *lc, const CodingUnit *cu) set_cb_tab(lc, fc->tab.mmi, pu->mi.motion_model_idc); set_cb_tab(lc, fc->tab.msf, pu->merge_subblock_flag); - if (cu->tree_type != DUAL_TREE_CHROMA) + if (cu->tree_type != DUAL_TREE_CHROMA) { set_cb_tab(lc, fc->tab.skip, cu->skip_flag); + set_cb_tab(lc, fc->tab.pcmf[LUMA], cu->bdpcm_flag[LUMA]); + } + if (cu->tree_type != DUAL_TREE_LUMA) + set_cb_tab(lc, fc->tab.pcmf[CHROMA], cu->bdpcm_flag[CHROMA]); while (tu) { for (int j = 0; j < tu->nb_tbs; j++) { const TransformBlock *tb = tu->tbs + j; if (tb->c_idx != LUMA) set_qp_c_tab(lc, tu, tb); - if (tb->c_idx != CR && cu->bdpcm_flag[tb->c_idx]) - set_tb_tab(fc->tab.pcmf[tb->c_idx], 1, fc, tb); } tu = tu->next; } diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c index edf2607f50..13ca752eec 100644 --- a/libavcodec/vvc/dec.c +++ b/libavcodec/vvc/dec.c @@ -150,6 +150,7 @@ static void min_cb_nz_tl_init(TabList *l, VVCFrameContext *fc) TL_ADD(cb_height[i], pic_size_in_min_cb); TL_ADD(cp_mv[i], pic_size_in_min_cb * MAX_CONTROL_POINTS); TL_ADD(cpm[i], pic_size_in_min_cb); + TL_ADD(pcmf[i], pic_size_in_min_cb); } // For luma, qp can only change at the CU level, so the qp tab size is related to the CU. TL_ADD(qp[LUMA], pic_size_in_min_cb); @@ -189,9 +190,6 @@ static void min_tu_tl_init(TabList *l, VVCFrameContext *fc) TL_ADD(tu_joint_cbcr_residual_flag, pic_size_in_min_tu); - for (int i = LUMA; i <= CHROMA; i++) - TL_ADD(pcmf[i], pic_size_in_min_tu); - for (int i = 0; i < VVC_MAX_SAMPLE_ARRAYS; i++) { TL_ADD(tu_coded_flag[i], pic_size_in_min_tu); diff --git a/libavcodec/vvc/filter.c b/libavcodec/vvc/filter.c index 707fc24203..9a45a735e0 100644 --- a/libavcodec/vvc/filter.c +++ b/libavcodec/vvc/filter.c @@ -543,9 +543,9 @@ static av_always_inline int deblock_bs(const VVCLocalContext *lc, const uint8_t chroma = !!c_idx; const int tu_p = (y_p >> log2_min_tu_size) * min_tu_width + (x_p >> log2_min_tu_size); const int tu_q = (y_q >> log2_min_tu_size) * min_tu_width + (x_q >> log2_min_tu_size); - const uint8_t pcmf = fc->tab.pcmf[chroma][tu_p] && fc->tab.pcmf[chroma][tu_q]; 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 pcmf = fc->tab.pcmf[chroma][cb_p] && fc->tab.pcmf[chroma][cb_q]; 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];