diff --git a/source/Lib/DecoderLib/CABACReader.cpp b/source/Lib/DecoderLib/CABACReader.cpp index 95315e93c25dd649321794324901e156a811b795..d3c9b38b061534f18445ed241fdbb16cbf03a644 100644 --- a/source/Lib/DecoderLib/CABACReader.cpp +++ b/source/Lib/DecoderLib/CABACReader.cpp @@ -142,6 +142,7 @@ void CABACReader::remaining_bytes( bool noTrailingBytesExpected ) void CABACReader::coding_tree_unit( CodingStructure& cs, const UnitArea& area, int (&qps)[2], unsigned ctuRsAddr ) { + DTRACE(g_trace_ctx, D_SYNTAX, "coding_tree_unit() pos=(%d,%d)\n", area.lx(), area.ly()); CUCtx cuCtx( qps[CH_L] ); QTBTPartitioner partitioner; @@ -369,7 +370,7 @@ void CABACReader::ccAlfFilterControlIdc(CodingStructure &cs, const ComponentID c filterControlIdc[curIdx] = idcVal; - DTRACE(g_trace_ctx, D_SYNTAX, "ccAlfFilterControlIdc() compID=%d pos=(%d,%d) ctxt=%d, filterCount=%d, idcVal=%d\n", + DTRACE(g_trace_ctx, D_SYNTAX, "cc_alf_filter_control_idc() compID=%d pos=(%d,%d) ctxt=%d, filterCount=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, filterCount, idcVal); } @@ -662,7 +663,7 @@ void CABACReader::ccSaoControlIdc(CodingStructure &cs, const ComponentID compID, } controlIdc[curIdx] = idcVal; - DTRACE(g_trace_ctx, D_SYNTAX, "ccSaoControlIdc() compID=%d pos=(%d,%d) ctxt=%d, setNum=%d, idcVal=%d\n", + DTRACE(g_trace_ctx, D_SYNTAX, "cc_sao_control_idc() compID=%d pos=(%d,%d) ctxt=%d, setNum=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, setNum, idcVal); } #endif @@ -897,6 +898,7 @@ void CABACReader::coding_tree( CodingStructure& cs, Partitioner& partitioner, CU #endif // coding unit + DTRACE(g_trace_ctx, D_SYNTAX, "coding_unit() pos=(%d,%d) size=%dx%d chType=%d depth=%d\n", cu.blocks[cu.chType].x, cu.blocks[cu.chType].y, cu.blocks[cu.chType].width, cu.blocks[cu.chType].height, cu.chType, cu.depth); coding_unit( cu, partitioner, cuCtx ); #if !INTRA_RM_SMALL_BLOCK_SIZE_CONSTRAINTS @@ -1006,7 +1008,10 @@ PartSplit CABACReader::split_cu_mode( CodingStructure& cs, Partitioner &partitio isSplit = m_BinDecoder.decodeBin( Ctx::SplitFlag( ctxSplit ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() ctx=%d split=%d\n", ctxSplit, isSplit ); +#if ENABLE_TRACING + const CompArea& block = partitioner.currArea().blocks[partitioner.chType]; +#endif + DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() pos=(%d,%d) size=%dx%d chType=%d ctx=%d split=%d\n", block.x, block.y, block.width, block.height, partitioner.chType, ctxSplit, isSplit ); if( !isSplit ) { @@ -1021,7 +1026,7 @@ PartSplit CABACReader::split_cu_mode( CodingStructure& cs, Partitioner &partitio isQt = m_BinDecoder.decodeBin( Ctx::SplitQtFlag( ctxQtSplit ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() ctx=%d qt=%d\n", ctxQtSplit, isQt ); + DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() pos=(%d,%d) size=%dx%d chType=%d ctx=%d qt=%d\n", block.x, block.y, block.width, block.height, partitioner.chType, ctxQtSplit, isQt ); if( isQt ) { @@ -1061,7 +1066,7 @@ PartSplit CABACReader::split_cu_mode( CodingStructure& cs, Partitioner &partitio mode = CU_TRIH_SPLIT; } - DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() ctxHv=%d ctx12=%d mode=%d\n", ctxBttHV, isVer ? ctxBttV12 : ctxBttH12, mode ); + DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() pos=(%d,%d) size=%dx%d chType=%d ctxHv=%d ctx12=%d mode=%d\n", block.x, block.y, block.width, block.height, partitioner.chType, ctxBttHV, isVer ? ctxBttV12 : ctxBttH12, mode ); return mode; } @@ -1572,6 +1577,7 @@ void CABACReader::pred_mode( CodingUnit& cu ) } } } + DTRACE(g_trace_ctx, D_SYNTAX, "pred_mode() pred_mode=%d\n", cu.predMode); } void CABACReader::bdpcm_mode( CodingUnit& cu, const ComponentID compID ) @@ -1625,7 +1631,7 @@ void CABACReader::cu_pred_data( CodingUnit &cu ) if( CU::isIntra( cu ) ) { if( cu.Y().valid() ) - { + { bdpcm_mode(cu, COMPONENT_Y ); } intra_luma_pred_modes( cu ); @@ -1752,9 +1758,12 @@ void CABACReader::obmc_flag(CodingUnit& cu) RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET_SIZE(STATS__CABAC_BITS__OBMC, cu.lumaSize()); #if JVET_AD0193_ADAPTIVE_OBMC_CONTROL - cu.obmcFlag = (bool)m_BinDecoder.decodeBin((cu.affine == false || cu.firstPU->addHypData.size() > 0) ? Ctx::ObmcFlag(0) : Ctx::ObmcFlag(1)); + bool ctxCond = cu.affine == false || cu.firstPU->addHypData.size() > 0; + cu.obmcFlag = (bool)m_BinDecoder.decodeBin(ctxCond ? Ctx::ObmcFlag(0) : Ctx::ObmcFlag(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "obmc_flag() pos=(%d,%d) ctx=%d obmc_flag=%d\n", cu.lx(), cu.ly(), ctxCond ? 0 : 1, cu.obmcFlag); #else cu.obmcFlag = (bool)m_BinDecoder.decodeBin(Ctx::ObmcFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "obmc_flag() pos=(%d,%d) obmc_flag=%d\n", cu.lx(), cu.ly(), cu.obmcFlag); #endif } #endif @@ -2132,6 +2141,7 @@ void CABACReader::intra_luma_pred_modes( CodingUnit &cu ) plIdx += m_BinDecoder.decodeBin(Ctx::IntraLumaPlanarFlag(3)); } cu.plIdx = plIdx; + DTRACE(g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) pl_idx=%d\n", k, pu->lumaPos().x, pu->lumaPos().y, cu.plIdx); } else { @@ -2140,7 +2150,7 @@ void CABACReader::intra_luma_pred_modes( CodingUnit &cu ) #endif #if ENABLE_DIMD || JVET_W0123_TIMD_FUSION - DTRACE( g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) predIdx=%d mpm=%d secondmpm=%d \n", k, pu->lumaPos().x, pu->lumaPos().y, pu->ipredIdx, pu->mpmFlag, pu->secondMpmFlag); + DTRACE( g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) predIdx=%d mpm=%d secondmpm=%d\n", k, pu->lumaPos().x, pu->lumaPos().y, pu->ipredIdx, pu->mpmFlag, pu->secondMpmFlag); #else DTRACE( g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) mode=%d\n", k, pu->lumaPos().x, pu->lumaPos().y, pu->intraDir[0] ); #endif @@ -2240,12 +2250,14 @@ void CABACReader::sgpm_flag(CodingUnit &cu) unsigned ctxId = DeriveCtx::CtxSgpmFlag(cu); cu.sgpm = m_BinDecoder.decodeBin(Ctx::SgpmFlag(ctxId)); + DTRACE(g_trace_ctx, D_SYNTAX, "sgpm_flag() pos=(%d,%d) ctx=%d sgpm_flag=%d\n", cu.lumaPos().x, cu.lumaPos().y, ctxId, cu.sgpm); if (cu.sgpm) { uint32_t sgpmIdx = 0; xReadTruncBinCode(sgpmIdx, SGPM_NUM); cu.sgpmIdx = sgpmIdx; + DTRACE(g_trace_ctx, D_SYNTAX, "sgpm_flag() pos=(%d,%d) sgpm_idx=%d\n", cu.lumaPos().x, cu.lumaPos().y, cu.sgpmIdx); } } #endif @@ -2261,15 +2273,19 @@ void CABACReader::intra_chroma_pred_modes( CodingUnit& cu ) return; } + PredictionUnit* pu = cu.firstPU; if( cu.bdpcmModeChroma ) { - cu.firstPU->intraDir[1] = cu.bdpcmModeChroma == 2 ? VER_IDX : HOR_IDX; + pu->intraDir[1] = cu.bdpcmModeChroma == 2 ? VER_IDX : HOR_IDX; + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu->blocks[CHANNEL_TYPE_CHROMA].x, pu->blocks[CHANNEL_TYPE_CHROMA].y, pu->intraDir[CHANNEL_TYPE_CHROMA]); return; } - PredictionUnit *pu = cu.firstPU; - CHECK(pu->cu != &cu, "Inkonsistent PU-CU mapping"); + CHECK(pu->cu != &cu, "Inconsistent PU-CU mapping"); intra_chroma_pred_mode(*pu); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) fusion_mode=%d cccm_mode=%d\n", + pu->blocks[CHANNEL_TYPE_CHROMA].x, pu->blocks[CHANNEL_TYPE_CHROMA].y, pu->isChromaFusion, pu->cccmFlag); } #if JVET_Z0050_CCLM_SLOPE @@ -2706,6 +2722,8 @@ void CABACReader::intra_chroma_pred_mode(PredictionUnit& pu) if (isLMCMode) { intra_chroma_lmc_mode(pu); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } } @@ -2723,6 +2741,8 @@ void CABACReader::intra_chroma_pred_mode(PredictionUnit& pu) pu.isChromaFusion = true; } } + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } } @@ -2744,6 +2764,8 @@ void CABACReader::intra_chroma_pred_mode(PredictionUnit& pu) #endif } #endif + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } @@ -2764,6 +2786,8 @@ void CABACReader::intra_chroma_pred_mode(PredictionUnit& pu) } #endif } + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } } @@ -2773,6 +2797,7 @@ void CABACReader::intra_chroma_pred_mode(PredictionUnit& pu) pu.parseChromaMode = true; #endif unsigned candId = m_BinDecoder.decodeBinsEP(2); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) cand_idx=%d\n", pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, candId); #if JVET_Z0050_DIMD_CHROMA_FUSION if (PU::hasChromaFusionFlag(pu, pu.intraDir[1])) { @@ -2925,6 +2950,7 @@ void CABACReader::adaptive_color_transform(CodingUnit& cu) { RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET_SIZE( STATS__CABAC_BITS__ACT, cu.lumaSize()); cu.colorTransform = (m_BinDecoder.decodeBin(Ctx::ACTFlag())); + DTRACE(g_trace_ctx, D_SYNTAX, "adaptive_color_transform() act_flag=(%d,%d)\n", cu.lumaPos().x, cu.lumaPos().y, cu.colorTransform); } } @@ -2981,7 +3007,7 @@ void CABACReader::sbt_mode( CodingUnit& cu ) bool sbtPosFlag = m_BinDecoder.decodeBin( Ctx::SbtPosFlag( 0 ) ); cu.setSbtPos( sbtPosFlag ? SBT_POS1 : SBT_POS0 ); - DTRACE( g_trace_ctx, D_SYNTAX, "sbt_mode() pos=(%d,%d) sbtInfo=%d\n", cu.lx(), cu.ly(), (int)cu.sbtInfo ); + DTRACE( g_trace_ctx, D_SYNTAX, "sbt_mode() pos=(%d,%d) sbt_info=%d\n", cu.lx(), cu.ly(), (int)cu.sbtInfo ); } @@ -4042,7 +4068,7 @@ void CABACReader::affine_mmvd_data(PredictionUnit& pu) } } pu.afMmvdBaseIdx = afMmvdBaseIdx; - DTRACE(g_trace_ctx, D_SYNTAX, "afMmvd_base_idx() afMmvd_base_idx=%d\n", afMmvdBaseIdx); + DTRACE(g_trace_ctx, D_SYNTAX, "affine_mmvd_base_idx() af_mmvd_base_idx=%d\n", afMmvdBaseIdx); #if JVET_Y0067_ENHANCED_MMVD_MVD_SIGN_PRED #if JVET_AA0132_CONFIGURABLE_TM_TOOLS @@ -4110,7 +4136,7 @@ void CABACReader::affine_mmvd_data(PredictionUnit& pu) } } pu.afMmvdStep = stepOffset; - DTRACE(g_trace_ctx, D_SYNTAX, "afMmvd_offsetStep() afMmvd_offSetstep=%d\n", stepOffset); + DTRACE(g_trace_ctx, D_SYNTAX, "affine_mmvd_offset_step() af_mmvd_offset_step=%d\n", stepOffset); // Decode offset direction uint8_t b0 = 0, b1 = 0; @@ -4121,7 +4147,7 @@ void CABACReader::affine_mmvd_data(PredictionUnit& pu) #if JVET_AA0132_CONFIGURABLE_TM_TOOLS && JVET_Y0067_ENHANCED_MMVD_MVD_SIGN_PRED pu.afMmvdMergeIdx = (uint8_t)(pu.afMmvdBaseIdx * ECM3_AF_MMVD_MAX_REFINE_NUM + pu.afMmvdStep * ECM3_AF_MMVD_OFFSET_DIR + pu.afMmvdDir); #endif - DTRACE(g_trace_ctx, D_SYNTAX, "afMmvd_offsetDir() afMmvd_offsetDir=%d\n", offDir); + DTRACE(g_trace_ctx, D_SYNTAX, "affine_mmvd_offset_dir() af_mmvd_offset_dir=%d\n", offDir); } #endif } @@ -4136,7 +4162,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) } pu.ibcMbvdMergeFlag = (m_BinDecoder.decodeBin(Ctx::IbcMbvdFlag())); - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_flag() ibc_mbvd_merge=%d pos=(%d,%d) size=%dx%d\n", pu.ibcMbvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() ibc_mbvd_flag=%d pos=(%d,%d) size=%dx%d\n", pu.ibcMbvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); if (!pu.ibcMbvdMergeFlag) { @@ -4147,7 +4173,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) if (pu.interDir == 3) { biMbvdMode = m_BinDecoder.decodeBin(Ctx::IbcMbvdFlag(1)) + 1; - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_flag() bi_mbvd_mode=%d\n", biMbvdMode); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() bi_mbvd_mode=%d\n", biMbvdMode); } #endif @@ -4173,7 +4199,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) } } } - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() base_idx=%d\n", var0); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() base_idx=%d\n", var0); #if JVET_AE0169_IBC_MBVD_LIST_DERIVATION const int mbvdsPerBase = pu.cu->slice->getSPS()->getUseIbcMbvdAdSearch() ? IBC_MBVD_SIZE_ENC : IBC_MBVD_MAX_REFINE_NUM; @@ -4210,7 +4236,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) { ibcMbvdSizeEnc--; } - DTRACE(g_trace_ctx, D_SYNTAX, "ibcMbvdBaseIdx() ibcMbvdBaseIdx1=%d\n", var1); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() base_idx1=%d\n", var1); } unsigned int ricePar = 1; @@ -4234,7 +4260,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) } uiUnaryIdx += temp; pu.ibcMbvdMergeIdx = var0 * mbvdsPerBase + uiUnaryIdx; - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() merge_idx=%d\n", pu.ibcMbvdMergeIdx); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() merge_idx=%d\n", pu.ibcMbvdMergeIdx); if (biMbvdMode == 1) { @@ -4274,7 +4300,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) uiUnaryIdx1 += (uiUnaryIdx+1); } pu.ibcMergeIdx1 = var1 * mbvdsPerBase + uiUnaryIdx1 + IBC_MRG_MAX_NUM_CANDS; - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() merge_idx1=%d\n", pu.ibcMergeIdx1 - IBC_MRG_MAX_NUM_CANDS); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() merge_idx1=%d\n", pu.ibcMergeIdx1 - IBC_MRG_MAX_NUM_CANDS); } #else unsigned int uiUnaryIdx = 0; @@ -4293,7 +4319,7 @@ void CABACReader::ibcMbvdData(PredictionUnit& pu) uiUnaryIdx <<= ricePar; uiUnaryIdx += temp; pu.ibcMbvdMergeIdx = var0 * mbvdsPerBase + uiUnaryIdx; - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() merge_idx=%d\n", pu.ibcMbvdMergeIdx); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() merge_idx=%d\n", pu.ibcMbvdMergeIdx); #endif } #endif @@ -4314,6 +4340,7 @@ void CABACReader::tm_merge_flag(PredictionUnit& pu) if (pu.cs->slice->getSPS()->getUseCiipTmMrg()) { pu.tmMergeFlag = m_BinDecoder.decodeBin(Ctx::CiipTMMergeFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); } return; } @@ -4364,9 +4391,9 @@ void CABACReader::tm_merge_flag(PredictionUnit& pu) pu.tmMergeFlag = (m_BinDecoder.decodeBin(Ctx::TMMergeFlag())); #endif #if JVET_X0049_ADAPT_DMVR - DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tmMergeFlag || bmMergeFlag=%d\n", pu.tmMergeFlag); + DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tm_merge_flag || bm_merge_flag=%d\n", pu.tmMergeFlag); #else - DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tmMergeFlag=%d\n", pu.tmMergeFlag ? 1 : 0); + DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tm_merge_flag=%d\n", pu.tmMergeFlag ? 1 : 0); #endif } } @@ -4424,11 +4451,13 @@ void CABACReader::ibcCiipFlag(PredictionUnit& pu) } pu.ibcCiipFlag = m_BinDecoder.decodeBin(Ctx::IbcCiipFlag(1)); } + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_ciip_flag() ibc_ciip_flag=%d\n", pu.ibcCiipFlag); } void CABACReader::ibcCiipIntraIdx(PredictionUnit& pu) { pu.ibcCiipIntraIdx = m_BinDecoder.decodeBin( Ctx::IbcCiipIntraIdx() ); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_ciip_intra_idx() ibc_ciip_intra_idx=%d\n", pu.ibcCiipIntraIdx); } #endif @@ -4446,6 +4475,7 @@ void CABACReader::ibcGpmFlag(PredictionUnit& pu) return; } pu.ibcGpmFlag = (m_BinDecoder.decodeBin(Ctx::IbcGpmFlag())); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_gpm_flag() ibc_gpm_flag=%d\n", pu.ibcGpmFlag); } void CABACReader::ibcGpmMergeIdx(PredictionUnit& pu) @@ -4541,6 +4571,7 @@ void CABACReader::ibcGpmMergeIdx(PredictionUnit& pu) #endif pu.ibcGpmMergeIdx0 = mergeCand0; pu.ibcGpmMergeIdx1 = mergeCand1; + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_gpm_merge_idx() ibc_gpm_splt_dir=%d merge_idx0=%d merge_idx1=%d\n", pu.ibcGpmSplitDir, pu.ibcGpmMergeIdx0, pu.ibcGpmMergeIdx1); } void CABACReader::ibcGpmAdaptBlendIdx(PredictionUnit& pu) @@ -4587,6 +4618,7 @@ void CABACReader::ibcGpmAdaptBlendIdx(PredictionUnit& pu) } } } + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_gpm_adapt_blend_idx() ibc_gpm_bld_idx=%d\n", pu.ibcGpmBldIdx); } #endif @@ -4615,6 +4647,7 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu ) { unsigned ctxIdx = 1 + DeriveCtx::ctxIbcFilterFlag(cu); cu.ibcFilterFlag = m_BinDecoder.decodeBin(Ctx::IbcLicFlag(ctxIdx)); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() filter_flag=%d\n", cu.ibcFilterFlag); } else { @@ -4627,6 +4660,7 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu ) #endif { cu.ibcLicFlag = m_BinDecoder.decodeBin(Ctx::IbcLicFlag(0)); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_flag=%d\n", cu.ibcLicFlag); #if JVET_AE0078_IBC_LIC_EXTENSION if (cu.ibcLicFlag) { @@ -4640,6 +4674,7 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu ) { cu.ibcLicIdx = bin2 ? IBC_LIC_IDX_M : IBC_LIC_IDX; } + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_idx=%d\n", cu.ibcLicIdx); } else { @@ -4683,6 +4718,7 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu ) return; } cu.ibcLicFlag = m_BinDecoder.decodeBin( Ctx::IbcLicFlag() ); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_flag=%d\n", cu.ibcLicFlag); #if JVET_AE0078_IBC_LIC_EXTENSION if (cu.ibcLicFlag) { @@ -4696,6 +4732,7 @@ void CABACReader::cuIbcLicFlag( CodingUnit& cu ) { cu.ibcLicIdx = bin2 ? IBC_LIC_IDX_M : IBC_LIC_IDX; } + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_idx=%d\n", cu.ibcLicIdx); } else { @@ -4723,7 +4760,7 @@ void CABACReader::bm_merge_flag(PredictionUnit& pu) { pu.bmDir = 1 << m_BinDecoder.decodeBin(Ctx::BMMergeFlag(3)); } - DTRACE(g_trace_ctx, D_SYNTAX, "bm_merge_flag() bmMergeFlag=%d, bmDir = %d\n", pu.bmMergeFlag ? 1 : 0, pu.bmDir); + DTRACE(g_trace_ctx, D_SYNTAX, "bm_merge_flag() bm_merge_flag=%d, bmDir = %d\n", pu.bmMergeFlag ? 1 : 0, pu.bmDir); } #endif #if JVET_AD0182_AFFINE_DMVR_PLUS_EXTENSIONS @@ -4736,9 +4773,11 @@ void CABACReader::affBmFlag(PredictionUnit& pu) return; } pu.affBMMergeFlag = (m_BinDecoder.decodeBin(Ctx::affBMFlag(0))); + DTRACE(g_trace_ctx, D_SYNTAX, "aff_bm_flag() aff_bm_flag=%d\n", pu.affBMMergeFlag); if (pu.affBMMergeFlag) { pu.affBMDir = 1 << m_BinDecoder.decodeBin(Ctx::affBMFlag(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "aff_bm_flag() aff_bm_dir=%d\n", pu.affBMDir); } } #endif @@ -4881,6 +4920,7 @@ void CABACReader::merge_data( PredictionUnit& pu ) if (geoAvailable || ciipAvailable) { cu.firstPU->regularMergeFlag = m_BinDecoder.decodeBin(Ctx::RegularMergeFlag(cu.skip ? 0 : 1)); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() regular_merge=%d pos=(%d,%d) size=%dx%d\n", cu.firstPU->regularMergeFlag ? 1 : 0, cu.firstPU->lumaPos().x, cu.firstPU->lumaPos().y, cu.firstPU->lumaSize().width, cu.firstPU->lumaSize().height); } else { @@ -4929,7 +4969,7 @@ void CABACReader::merge_data( PredictionUnit& pu ) #else cu.firstPU->mmvdMergeFlag = m_BinDecoder.decodeBin(Ctx::MmvdFlag(0)); #endif - DTRACE(g_trace_ctx, D_SYNTAX, "mmvd_merge_flag() mmvd_merge=%d pos=(%d,%d) size=%dx%d\n", cu.firstPU->mmvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() mmvd_merge=%d pos=(%d,%d) size=%dx%d\n", cu.firstPU->mmvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } else { @@ -4965,12 +5005,14 @@ void CABACReader::merge_data( PredictionUnit& pu ) { RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET_SIZE(STATS__CABAC_BITS__MERGE_FLAG, pu.lumaSize()); pu.tmMergeFlag = (m_BinDecoder.decodeBin(Ctx::CiipTMMergeFlag())); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); } #endif #endif #if CIIP_PDPC RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET_SIZE(STATS__CABAC_BITS__INTRA_PDPC_FLAG, pu.lumaSize()); pu.ciipPDPC = ( m_BinDecoder.decodeBin( Ctx::CiipFlag( 1 ) ) ); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() ciip_pdpc_flag=%d\n", pu.ciipPDPC); #endif } else @@ -5333,7 +5375,7 @@ void CABACReader::ibcBiPredictionFlag( PredictionUnit& pu ) } pu.interDir = m_BinDecoder.decodeBin(Ctx::BiPredIbcFlag(pu.mergeFlag ? 0 : 1)) ? 3 : 1; - DTRACE( g_trace_ctx, D_SYNTAX, "ibcBiPredictionFlag() interDir=%d\n", pu.interDir ); + DTRACE( g_trace_ctx, D_SYNTAX, "ibc_bi_prediction_flag() inter_dir=%d\n", pu.interDir ); } void CABACReader::ibcMergeIdx1( PredictionUnit& pu ) @@ -5365,7 +5407,7 @@ void CABACReader::ibcMergeIdx1( PredictionUnit& pu ) pu.ibcMergeIdx1 += uiUnaryIdx; } - DTRACE( g_trace_ctx, D_SYNTAX, "ibcMergeIdx1() ibcMergeIdx1=%d\n", pu.ibcMergeIdx1 ); + DTRACE( g_trace_ctx, D_SYNTAX, "ibc_merge_idx1() ibc_merge_idx1=%d\n", pu.ibcMergeIdx1 ); } #endif @@ -5402,6 +5444,7 @@ void CABACReader::geo_mmvd_idx(PredictionUnit& pu, RefPicList eRefPicList) { pu.geoMMVDIdx1 = mvpIdx; } + DTRACE(g_trace_ctx, D_SYNTAX, "geo_mmvd_idx() geo_mmvd_idx%d=%d\n", eRefPicList, mvpIdx); } @@ -5436,6 +5479,7 @@ void CABACReader::geo_merge_idx(PredictionUnit& pu) mergeCand1 += mergeCand1 >= mergeCand0 ? 1 : 0; pu.geoMergeIdx0 = mergeCand0; pu.geoMergeIdx1 = mergeCand1; + DTRACE(g_trace_ctx, D_SYNTAX, "geo_merge_idx() geo_merge_idx0=%d geo_merge_idx1=%d\n", pu.geoMergeIdx0, pu.geoMergeIdx1); } #if JVET_Y0065_GPM_INTRA @@ -5493,6 +5537,7 @@ void CABACReader::geo_merge_idx1(PredictionUnit& pu) #endif pu.geoMergeIdx0 = mergeCand0; pu.geoMergeIdx1 = mergeCand1; + DTRACE(g_trace_ctx, D_SYNTAX, "geo_merge_idx1() geo_merge_idx0=%d geo_merge_idx1=%d\n", pu.geoMergeIdx0, pu.geoMergeIdx1); } #endif @@ -5532,6 +5577,7 @@ void CABACReader::geoAdaptiveBlendingIdx( PredictionUnit& pu ) } } } + DTRACE(g_trace_ctx, D_SYNTAX, "geo_adaptive_blending_idx() geo_bld_idx=%d\n", pu.geoBldIdx); } #endif @@ -5681,7 +5727,7 @@ void CABACReader::mmvd_merge_idx(PredictionUnit& pu) } } } - DTRACE(g_trace_ctx, D_SYNTAX, "MmvdStepMvpIdx() MmvdStepMvpIdx=%d\n", var1); + DTRACE(g_trace_ctx, D_SYNTAX, "mmvd_step_mvp_idx() mmvd_step_mvp_idx=%d\n", var1); int var2 = 0; if (m_BinDecoder.decodeBinEP()) { @@ -5742,11 +5788,11 @@ void CABACReader::inter_pred_idc( PredictionUnit& pu ) if( m_BinDecoder.decodeBin( Ctx::InterDir(6) ) ) #endif { - DTRACE( g_trace_ctx, D_SYNTAX, "inter_pred_idc() ctx=5 value=%d pos=(%d,%d)\n", 2, pu.lumaPos().x, pu.lumaPos().y ); + DTRACE( g_trace_ctx, D_SYNTAX, "inter_pred_idc() ctx=7 value=%d pos=(%d,%d)\n", 2, pu.lumaPos().x, pu.lumaPos().y ); pu.interDir = 2; return; } - DTRACE( g_trace_ctx, D_SYNTAX, "inter_pred_idc() ctx=5 value=%d pos=(%d,%d)\n", 1, pu.lumaPos().x, pu.lumaPos().y ); + DTRACE( g_trace_ctx, D_SYNTAX, "inter_pred_idc() ctx=7 value=%d pos=(%d,%d)\n", 1, pu.lumaPos().x, pu.lumaPos().y ); pu.interDir = 1; return; } @@ -6049,7 +6095,7 @@ void CABACReader::Ciip_flag(PredictionUnit& pu) RExt__DECODER_DEBUG_BIT_STATISTICS_CREATE_SET_SIZE(STATS__CABAC_BITS__MH_INTRA_FLAG, pu.lumaSize()); pu.ciipFlag = (m_BinDecoder.decodeBin(Ctx::CiipFlag())); - DTRACE(g_trace_ctx, D_SYNTAX, "Ciip_flag() Ciip=%d pos=(%d,%d) size=%dx%d\n", pu.ciipFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip=%d pos=(%d,%d) size=%dx%d\n", pu.ciipFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); #if CIIP_PDPC if( pu.ciipFlag ) { @@ -6060,10 +6106,12 @@ void CABACReader::Ciip_flag(PredictionUnit& pu) if (pu.cs->slice->getSPS()->getUseCiipTmMrg()) { pu.tmMergeFlag = (m_BinDecoder.decodeBin(Ctx::CiipTMMergeFlag())); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); } #endif #endif pu.ciipPDPC = (m_BinDecoder.decodeBin(Ctx::CiipFlag(1))); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip_pdpc_flag=%d pos=(%d,%d) size=%dx%d\n", pu.ciipPDPC ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } #else #if JVET_X0141_CIIP_TIMD_TM && TM_MRG @@ -6073,6 +6121,7 @@ void CABACReader::Ciip_flag(PredictionUnit& pu) tm_merge_flag(pu); #else pu.tmMergeFlag = (m_BinDecoder.decodeBin(Ctx::CiipTMMergeFlag())); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); #endif } #endif @@ -6363,25 +6412,25 @@ void CABACReader::mvd_coding( Mv &rMvd, MvdSuffixInfo* const pSi #if ENABLE_TRACING if (horParam == -1) { - DTRACE(g_trace_ctx, D_SYNTAX, "abs(MVD_hor) = %d \n", horAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_hor) = %d \n", horAbs); } else { - DTRACE(g_trace_ctx, D_SYNTAX, "MVD_hor prefix=%d \n", horParam); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() mvd_hor prefix=%d \n", horParam); } if (verParam == -1) { - DTRACE(g_trace_ctx, D_SYNTAX, "abs(MVD_ver) = %d \n", verAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_ver) = %d \n", verAbs); } else { - DTRACE(g_trace_ctx, D_SYNTAX, "MVD_ver prefix=%d \n", verParam); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() mvd_ver prefix=%d \n", verParam); } #endif } else { - DTRACE(g_trace_ctx, D_SYNTAX, "codeSign=%d \n", codeSign); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() code_sign=%d \n", codeSign); if (horAbs) { if (horAbs > 1) @@ -6410,8 +6459,8 @@ void CABACReader::mvd_coding( Mv &rMvd, MvdSuffixInfo* const pSi verAbs = -verAbs; } } - DTRACE(g_trace_ctx, D_SYNTAX, "horAbs=%d \n", horAbs); - DTRACE(g_trace_ctx, D_SYNTAX, "verAbs=%d \n", verAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_hor)=%d \n", horAbs > 0 ? horAbs : -horAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_ver)=%d \n", verAbs > 0 ? verAbs : -verAbs); } rMvd = Mv(horAbs, verAbs); if (ctxCoding) @@ -6545,7 +6594,7 @@ void CABACReader::mvdCodingRemainder(Mv& rMvd, MvdSuffixInfo& si, const int imv) horSuffix = xReadMvdContextSuffix(horGolombMin, horParam ); horAbs = horSuffix + 2; - DTRACE(g_trace_ctx, D_SYNTAX, "horSuffix=%d \n", horSuffix); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding_remainder() hor_suffix=%d \n", horSuffix); } if (verAbs != 0) @@ -6554,10 +6603,10 @@ void CABACReader::mvdCodingRemainder(Mv& rMvd, MvdSuffixInfo& si, const int imv) verSuffix = xReadMvdContextSuffix(verGolombMin, verParam ); verAbs = verSuffix + 2; - DTRACE(g_trace_ctx, D_SYNTAX, "verSuffix=%d \n", verSuffix); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding_remainder() ver_uffix=%d \n", verSuffix); } - DTRACE(g_trace_ctx, D_SYNTAX, "abs(mvd)=(%d,%d) \n", horAbs, verAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding_remainder() abs(mvd)=(%d,%d) \n", horAbs, verAbs); rMvd = Mv(horAbs, verAbs); } } @@ -6699,7 +6748,6 @@ unsigned CABACReader::xReadBvdContext(unsigned ctxT, int offset, int param ) { bit = m_BinDecoder.decodeBin(Ctx::Bvd( offset + uiIdx + 1)); } - DTRACE(g_trace_ctx, D_SYNTAX, "uiIdx: %d, bit: %d\n", uiIdx, bit); uiIdx++; symbol += bit << param++; } @@ -7499,6 +7547,7 @@ void CABACReader::mvsdAffineIdxFunc(PredictionUnit &pu, RefPicList eRefList) } #endif pu.mvsdIdx[eRefList] = mvsdIdx; + DTRACE(g_trace_ctx, D_SYNTAX, "mvsd_affine_idx_func() mvsdIdx=%d\n", pu.mvsdIdx[eRefList]); // eRefList can have enc-dec mismatch } #endif //================================================================================ @@ -7771,7 +7820,11 @@ void CABACReader::residual_coding( TransformUnit& tu, ComponentID compID, CUCtx& ) { const CodingUnit& cu = *tu.cu; +#if JVET_AE0102_LFNST_CTX + DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding() codeTuCoeff=%d etype=%d pos=(%d,%d) size=%dx%d predMode=%d\n", codeTuCoeff, tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height, cu.predMode ); +#else DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding() etype=%d pos=(%d,%d) size=%dx%d predMode=%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height, cu.predMode ); +#endif if( compID == COMPONENT_Cr && tu.jointCbCr == 3 ) { @@ -7958,7 +8011,7 @@ void CABACReader::ts_flag( TransformUnit& tu, ComponentID compID ) tu.mtsIdx[compID] = tsFlag ? MTS_SKIP : MTS_DCT2_DCT2; - DTRACE(g_trace_ctx, D_SYNTAX, "ts_flag() etype=%d pos=(%d,%d) mtsIdx=%d\n", COMPONENT_Y, tu.cu->lx(), tu.cu->ly(), tsFlag); + DTRACE(g_trace_ctx, D_SYNTAX, "ts_flag() etype=%d pos=(%d,%d) mtsIdx=%d\n", COMPONENT_Y, tu.blocks[compID].x, tu.blocks[compID].y, tsFlag); } void CABACReader::mts_idx( CodingUnit& cu, CUCtx& cuCtx ) @@ -8070,7 +8123,7 @@ void CABACReader::isp_mode( CodingUnit& cu ) { cu.ispMode = 1 + m_BinDecoder.decodeBin( Ctx::ISPMode( 1 ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "intra_subPartitions() etype=%d pos=(%d,%d) ispIdx=%d\n", cu.chType, cu.blocks[cu.chType].x, cu.blocks[cu.chType].y, (int)cu.ispMode ); + DTRACE( g_trace_ctx, D_SYNTAX, "intra_subpartitions() etype=%d pos=(%d,%d) ispIdx=%d\n", cu.chType, cu.blocks[cu.chType].x, cu.blocks[cu.chType].y, (int)cu.ispMode ); } void CABACReader::residual_lfnst_mode( CodingUnit& cu, CUCtx& cuCtx ) @@ -8227,6 +8280,7 @@ int CABACReader::last_sig_coeff( CoeffCodingContext& cctx, TransformUnit& tu, Co break; } } + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "last_sig_coeff() scan_pos_last=%d\n", scanPos); return scanPos; } @@ -8296,6 +8350,7 @@ void CABACReader::residual_coding_subblock( CoeffCodingContext& cctx, TCoeff* co if( !sigGroup ) { sigGroup = m_BinDecoder.decodeBin( cctx.sigGroupCtxId() ); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "sig_group() bin=%d\n", sigGroup); } if( sigGroup ) { @@ -8353,8 +8408,8 @@ void CABACReader::residual_coding_subblock( CoeffCodingContext& cctx, TCoeff* co RExt__DECODER_DEBUG_BIT_STATISTICS_SET( ctype_gt1 ); unsigned gt1Flag = m_BinDecoder.decodeBin( cctx.greater1CtxIdAbs(ctxOff) ); - DTRACE( g_trace_ctx, D_SYNTAX_RESI, "gt1_flag() bin=%d ctx=%d\n", gt1Flag, cctx.greater1CtxIdAbs(ctxOff) ); + remRegBins--; unsigned parFlag = 0; @@ -8501,7 +8556,7 @@ void CABACReader::residual_coding_subblock( CoeffCodingContext& cctx, TCoeff* co void CABACReader::residual_codingTS( TransformUnit& tu, ComponentID compID ) { - DTRACE( g_trace_ctx, D_SYNTAX, "residual_codingTS() etype=%d pos=(%d,%d) size=%dx%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height ); + DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding_ts() etype=%d pos=(%d,%d) size=%dx%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height ); // init coeff coding context CoeffCodingContext cctx ( tu, compID, false, isLuma(compID) ? tu.cu->bdpcmMode : tu.cu->bdpcmModeChroma); @@ -8549,7 +8604,7 @@ void CABACReader::residual_coding_subblockTS( CoeffCodingContext& cctx, TCoeff* if( !sigGroup ) { sigGroup = m_BinDecoder.decodeBin(cctx.sigGroupCtxId(true)); - DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_sigGroup() bin=%d ctx=%d\n", sigGroup, cctx.sigGroupCtxId()); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_sig_group() bin=%d ctx=%d\n", sigGroup, cctx.sigGroupCtxId()); } if( sigGroup ) { @@ -8591,6 +8646,7 @@ void CABACReader::residual_coding_subblockTS( CoeffCodingContext& cctx, TCoeff* int sign; const unsigned signCtxId = cctx.signCtxIdAbsTS(nextSigPos, coeff, cctx.bdpcm()); sign = m_BinDecoder.decodeBin(signCtxId); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_sign() bin=%d ctx=%d\n", sign, signCtxId); cctx.decimateNumCtxBins(1); signPattern += ( sign << numNonZero ); @@ -8670,6 +8726,7 @@ void CABACReader::residual_coding_subblockTS( CoeffCodingContext& cctx, TCoeff* { int blkPos = cctx.blockPos(scanPos); int sign = m_BinDecoder.decodeBinEP(); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_rice_sign() bin=%d\n", sign); signPattern += (sign << numNonZero); sigBlkPos[numNonZero++] = blkPos; } @@ -8966,7 +9023,7 @@ void CABACReader::bvOneZeroComp(CodingUnit &cu) } #endif } - DTRACE(g_trace_ctx, D_SYNTAX, "rribcData() rribcFlipType = %d\n", cu.rribcFlipType); + DTRACE(g_trace_ctx, D_SYNTAX, "rribc_data() rribc_flip_type = %d\n", cu.rribcFlipType); } #endif @@ -8990,7 +9047,7 @@ void CABACReader::rribcData(CodingUnit &cu) { cu.rribcFlipType += m_BinDecoder.decodeBin(Ctx::rribcFlipType(3)); } - DTRACE(g_trace_ctx, D_SYNTAX, "rribcData() rribcFlipType = %d\n", cu.rribcFlipType); + DTRACE(g_trace_ctx, D_SYNTAX, "rribc_data() rribc_flip_type = %d\n", cu.rribcFlipType); } #endif @@ -9114,6 +9171,7 @@ void CABACReader::amvpMerge_mode( PredictionUnit& pu ) #endif { useAmMode = m_BinDecoder.decodeBin(Ctx::amFlagState()); + DTRACE(g_trace_ctx, D_SYNTAX, "amvp_merge_mode() am_flag=%d\n", useAmMode); } if (useAmMode) { @@ -9129,6 +9187,7 @@ void CABACReader::amvpMerge_mode( PredictionUnit& pu ) if (pu.cu->cs->picHeader->getMvdL1ZeroFlag() == false) { mergeDir = m_BinDecoder.decodeBinEP(); + DTRACE(g_trace_ctx, D_SYNTAX, "amvp_merge_mode() dir=%d\n", mergeDir); } else { @@ -9211,6 +9270,7 @@ void CABACReader::interCccm(TransformUnit& tu) if (TU::interCccmAllowed(tu)) { tu.interCccm = m_BinDecoder.decodeBin(Ctx::InterCccmFlag(0)); + DTRACE(g_trace_ctx, D_SYNTAX, "inter_cccm() pos=(%d,%d) inter_cccm_flag=%d\n", tu.blocks[tu.chType].x, tu.blocks[tu.chType].y, tu.interCccm); } } #endif diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp index 5c62a35684dc13d4574aabc7255f5e6127d75ebf..7e4f71805d3f532ec6bfb03ce69a45c2142cc82a 100644 --- a/source/Lib/DecoderLib/VLCReader.cpp +++ b/source/Lib/DecoderLib/VLCReader.cpp @@ -6485,9 +6485,9 @@ void HLSyntaxReader::parseCcSao( Slice* pcSlice, PicHeader* picHeader, const SPS uint32_t uiCode; if (sps->getCCSAOEnabledFlag()) { - READ_FLAG(uiCode, "slice_ccsao_y_enabled_flag" ); pcSlice->setCcSaoEnabledFlag(COMPONENT_Y, uiCode); ccSaoParam.enabled[COMPONENT_Y ] = uiCode; - READ_FLAG(uiCode, "slice_ccsao_cb_enabled_flag"); pcSlice->setCcSaoEnabledFlag(COMPONENT_Cb, uiCode); ccSaoParam.enabled[COMPONENT_Cb] = uiCode; - READ_FLAG(uiCode, "slice_ccsao_cr_enabled_flag"); pcSlice->setCcSaoEnabledFlag(COMPONENT_Cr, uiCode); ccSaoParam.enabled[COMPONENT_Cr] = uiCode; + READ_FLAG(uiCode, "ccsao_y_enabled_flag" ); pcSlice->setCcSaoEnabledFlag(COMPONENT_Y, uiCode); ccSaoParam.enabled[COMPONENT_Y ] = uiCode; + READ_FLAG(uiCode, "ccsao_cb_enabled_flag"); pcSlice->setCcSaoEnabledFlag(COMPONENT_Cb, uiCode); ccSaoParam.enabled[COMPONENT_Cb] = uiCode; + READ_FLAG(uiCode, "ccsao_cr_enabled_flag"); pcSlice->setCcSaoEnabledFlag(COMPONENT_Cr, uiCode); ccSaoParam.enabled[COMPONENT_Cr] = uiCode; } else { @@ -6499,7 +6499,7 @@ void HLSyntaxReader::parseCcSao( Slice* pcSlice, PicHeader* picHeader, const SPS #if JVET_AE0151_CCSAO_HISTORY_OFFSETS_AND_EXT_EO if (ccSaoParam.enabled[COMPONENT_Y] || ccSaoParam.enabled[COMPONENT_Cb] || ccSaoParam.enabled[COMPONENT_Cr]) { - READ_FLAG(uiCode, "ccsao_ext_chroma"); + READ_FLAG(uiCode, "ccsao_ext_chroma_flag"); ccSaoParam.extChroma[COMPONENT_Y] = ccSaoParam.extChroma[COMPONENT_Cb] = ccSaoParam.extChroma[COMPONENT_Cr] = uiCode; } #endif diff --git a/source/Lib/EncoderLib/CABACWriter.cpp b/source/Lib/EncoderLib/CABACWriter.cpp index 799ef9f86196fd416bd0b341701115595ffee859..14762b658e3980a3f9641db8f6f249374d830676 100644 --- a/source/Lib/EncoderLib/CABACWriter.cpp +++ b/source/Lib/EncoderLib/CABACWriter.cpp @@ -202,6 +202,7 @@ void CABACWriter::bif( const ComponentID compID, const Slice& slice, const BifPa void CABACWriter::coding_tree_unit( CodingStructure& cs, const UnitArea& area, int (&qps)[2], unsigned ctuRsAddr, bool skipSao /* = false */, bool skipAlf /* = false */ ) { + DTRACE(g_trace_ctx, D_SYNTAX, "coding_tree_unit() pos=(%d,%d)\n", area.lx(), area.ly()); CUCtx cuCtx( qps[CH_L] ); QTBTPartitioner partitioner; @@ -501,7 +502,7 @@ void CABACWriter::codeCcSaoControlIdc(uint8_t idcVal, CodingStructure &cs, const m_BinEncoder.encodeBinEP( 0 ); } } - DTRACE( g_trace_ctx, D_SYNTAX, "ccSaoControlIdc() compID=%d pos=(%d,%d) ctxt=%d, setNum=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, setNum, idcVal ); + DTRACE( g_trace_ctx, D_SYNTAX, "cc_sao_control_idc() compID=%d pos=(%d,%d) ctxt=%d, setNum=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, setNum, idcVal ); } #endif @@ -670,6 +671,7 @@ void CABACWriter::coding_tree(const CodingStructure& cs, Partitioner& partitione #endif // coding unit + DTRACE(g_trace_ctx, D_SYNTAX, "coding_unit() pos=(%d,%d) size=%dx%d chType=%d depth=%d\n", cu.blocks[cu.chType].x, cu.blocks[cu.chType].y, cu.blocks[cu.chType].width, cu.blocks[cu.chType].height, cu.chType, cu.depth); coding_unit( cu, partitioner, cuCtx ); #if !INTRA_RM_SMALL_BLOCK_SIZE_CONSTRAINTS if( cu.chType == CHANNEL_TYPE_CHROMA ) @@ -730,7 +732,10 @@ void CABACWriter::split_cu_mode( const PartSplit split, const CodingStructure& c m_BinEncoder.encodeBin( !isNo, Ctx::SplitFlag( ctxSplit ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() ctx=%d split=%d\n", ctxSplit, !isNo ); +#if ENABLE_TRACING + const CompArea& block = partitioner.currArea().blocks[partitioner.chType]; +#endif + DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() pos=(%d,%d) size=%dx%d chType=%d ctx=%d split=%d\n", block.x, block.y, block.width, block.height, partitioner.chType, ctxSplit, !isNo); if( isNo ) { @@ -745,7 +750,7 @@ void CABACWriter::split_cu_mode( const PartSplit split, const CodingStructure& c m_BinEncoder.encodeBin( isQt, Ctx::SplitQtFlag( ctxQtSplit ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() ctx=%d qt=%d\n", ctxQtSplit, isQt ); + DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() pos=(%d,%d) size=%dx%d chType=%d ctx=%d qt=%d\n", block.x, block.y, block.width, block.height, partitioner.chType, ctxQtSplit, isQt ); if( isQt ) { @@ -770,7 +775,7 @@ void CABACWriter::split_cu_mode( const PartSplit split, const CodingStructure& c m_BinEncoder.encodeBin( is12, Ctx::Split12Flag( isVer ? ctxBttV12 : ctxBttH12 ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() ctxHv=%d ctx12=%d mode=%d\n", ctxBttHV, isVer ? ctxBttV12 : ctxBttH12, split ); + DTRACE( g_trace_ctx, D_SYNTAX, "split_cu_mode() pos=(%d,%d) size=%dx%d chType=%d ctxHv=%d ctx12=%d mode=%d\n", block.x, block.y, block.width, block.height, partitioner.chType, ctxBttHV, isVer ? ctxBttV12 : ctxBttH12, split); } //================================================================================ @@ -1061,18 +1066,21 @@ void CABACWriter::pred_mode( const CodingUnit& cu ) if (cu.cs->slice->getSPS()->getPLTMode() && cu.lwidth() <= 64 && cu.lheight() <= 64 && ( ( (!isLuma(cu.chType)) && (cu.chromaSize().width * cu.chromaSize().height > 16) ) || ((isLuma(cu.chType)) && ((cu.lumaSize().width * cu.lumaSize().height) > 16 ) ) ) && (!cu.isLocalSepTree() || isLuma(cu.chType) ) ) #endif m_BinEncoder.encodeBin((CU::isPLT(cu)), Ctx::PLTFlag(0)); - return; } - m_BinEncoder.encodeBin((CU::isIntra(cu) || CU::isPLT(cu)), Ctx::PredMode(DeriveCtx::CtxPredModeFlag(cu))); + else + { + m_BinEncoder.encodeBin((CU::isIntra(cu) || CU::isPLT(cu)), Ctx::PredMode(DeriveCtx::CtxPredModeFlag(cu))); #if INTRA_RM_SMALL_BLOCK_SIZE_CONSTRAINTS - if ((CU::isIntra(cu) || CU::isPLT(cu)) && cu.cs->slice->getSPS()->getPLTMode() && cu.lwidth() <= 64 && cu.lheight() <= 64 && (((!isLuma(cu.chType)) && (cu.chromaSize().width * cu.chromaSize().height > 16)) || ((isLuma(cu.chType)) && ((cu.lumaSize().width * cu.lumaSize().height) > 16))) && (CS::isDualITree(*cu.cs) || isLuma(cu.chType))) + if ((CU::isIntra(cu) || CU::isPLT(cu)) && cu.cs->slice->getSPS()->getPLTMode() && cu.lwidth() <= 64 && cu.lheight() <= 64 && (((!isLuma(cu.chType)) && (cu.chromaSize().width * cu.chromaSize().height > 16)) || ((isLuma(cu.chType)) && ((cu.lumaSize().width * cu.lumaSize().height) > 16))) && (CS::isDualITree(*cu.cs) || isLuma(cu.chType))) #else - if ((CU::isIntra(cu) || CU::isPLT(cu)) && cu.cs->slice->getSPS()->getPLTMode() && cu.lwidth() <= 64 && cu.lheight() <= 64 && ( ( (!isLuma(cu.chType)) && (cu.chromaSize().width * cu.chromaSize().height > 16) ) || ((isLuma(cu.chType)) && ((cu.lumaSize().width * cu.lumaSize().height) > 16 ) ) ) && (!cu.isLocalSepTree() || isLuma(cu.chType) ) ) + if ((CU::isIntra(cu) || CU::isPLT(cu)) && cu.cs->slice->getSPS()->getPLTMode() && cu.lwidth() <= 64 && cu.lheight() <= 64 && (((!isLuma(cu.chType)) && (cu.chromaSize().width * cu.chromaSize().height > 16)) || ((isLuma(cu.chType)) && ((cu.lumaSize().width * cu.lumaSize().height) > 16))) && (!cu.isLocalSepTree() || isLuma(cu.chType))) #endif - { - m_BinEncoder.encodeBin((CU::isPLT(cu)), Ctx::PLTFlag(0)); + { + m_BinEncoder.encodeBin((CU::isPLT(cu)), Ctx::PLTFlag(0)); + } } } + DTRACE(g_trace_ctx, D_SYNTAX, "pred_mode() pred_mode=%d\n", cu.predMode); } void CABACWriter::bdpcm_mode( const CodingUnit& cu, const ComponentID compID ) { @@ -1221,9 +1229,12 @@ void CABACWriter::obmc_flag(const CodingUnit& cu) return; } #if JVET_AD0193_ADAPTIVE_OBMC_CONTROL - m_BinEncoder.encodeBin(cu.obmcFlag ? 1 : 0, (cu.affine == false || cu.firstPU->addHypData.size() > 0) ? Ctx::ObmcFlag(0) : Ctx::ObmcFlag(1)); + bool ctxCond = cu.affine == false || cu.firstPU->addHypData.size() > 0; + m_BinEncoder.encodeBin(cu.obmcFlag ? 1 : 0, ctxCond ? Ctx::ObmcFlag(0) : Ctx::ObmcFlag(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "obmc_flag() pos=(%d,%d) ctx=%d obmc_flag=%d\n", cu.lx(), cu.ly(), ctxCond ? 0 : 1, cu.obmcFlag); #else m_BinEncoder.encodeBin(cu.obmcFlag ? 1 : 0, Ctx::ObmcFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "obmc_flag() pos=(%d,%d) obmc_flag=%d\n", cu.lx(), cu.ly(), cu.obmcFlag); #endif } #endif @@ -1708,11 +1719,12 @@ void CABACWriter::intra_luma_pred_modes( const CodingUnit& cu ) { m_BinEncoder.encodeBin(cu.plIdx > 1, Ctx::IntraLumaPlanarFlag(3)); } + DTRACE(g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) pl_idx=%d\n", k, pu->lumaPos().x, pu->lumaPos().y, cu.plIdx); } #endif #if ENABLE_DIMD || JVET_W0123_TIMD_FUSION - DTRACE(g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) predIdx=%d mpm=%d secondmpm=%d \n", k, pu->lumaPos().x, pu->lumaPos().y, pred_idx, mpm_idx < numMPMs, secondMpmFlag); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) predIdx=%d mpm=%d secondmpm=%d\n", k, pu->lumaPos().x, pu->lumaPos().y, pred_idx, mpm_idx < numMPMs, secondMpmFlag); #else DTRACE( g_trace_ctx, D_SYNTAX, "intra_luma_pred_modes() idx=%d pos=(%d,%d) mode=%d\n", k, pu->lumaPos().x, pu->lumaPos().y, pu->intraDir[0] ); #endif @@ -2015,10 +2027,12 @@ void CABACWriter::sgpm_flag(const CodingUnit &cu) unsigned ctxId = DeriveCtx::CtxSgpmFlag(cu); m_BinEncoder.encodeBin(cu.sgpm, Ctx::SgpmFlag(ctxId)); + DTRACE(g_trace_ctx, D_SYNTAX, "sgpm_flag() pos=(%d,%d) ctx=%d sgpm_flag=%d\n", cu.lumaPos().x, cu.lumaPos().y, ctxId, cu.sgpm); if (cu.sgpm) { xWriteTruncBinCode(cu.sgpmIdx, SGPM_NUM); + DTRACE(g_trace_ctx, D_SYNTAX, "sgpm_flag() pos=(%d,%d) sgpm_idx=%d\n", cu.lumaPos().x, cu.lumaPos().y, cu.sgpmIdx); } } #endif @@ -2049,12 +2063,17 @@ void CABACWriter::intra_chroma_pred_modes( const CodingUnit& cu ) if( cu.bdpcmModeChroma ) { - cu.firstPU->intraDir[1] = cu.bdpcmModeChroma == 2 ? VER_IDX : HOR_IDX; + PredictionUnit* pu = cu.firstPU; + pu->intraDir[1] = cu.bdpcmModeChroma == 2 ? VER_IDX : HOR_IDX; + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu->blocks[CHANNEL_TYPE_CHROMA].x, pu->blocks[CHANNEL_TYPE_CHROMA].y, pu->intraDir[CHANNEL_TYPE_CHROMA]); return; } const PredictionUnit* pu = cu.firstPU; intra_chroma_pred_mode( *pu ); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) fusion_mode=%d cccm_mode=%d\n", + pu->blocks[CHANNEL_TYPE_CHROMA].x, pu->blocks[CHANNEL_TYPE_CHROMA].y, pu->isChromaFusion, pu->cccmFlag); } #if JVET_Z0050_CCLM_SLOPE @@ -2483,6 +2502,8 @@ void CABACWriter::intra_chroma_pred_mode(const PredictionUnit& pu) if (PU::isLMCMode(intraDir)) { intra_chroma_lmc_mode(pu); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } } @@ -2499,6 +2520,8 @@ void CABACWriter::intra_chroma_pred_mode(const PredictionUnit& pu) const bool isFusion = pu.isChromaFusion; m_BinEncoder.encodeBin(isFusion ? 1 : 0, Ctx::ChromaFusionMode()); } + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } } @@ -2519,6 +2542,8 @@ void CABACWriter::intra_chroma_pred_mode(const PredictionUnit& pu) #endif } #endif + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } @@ -2538,6 +2563,8 @@ void CABACWriter::intra_chroma_pred_mode(const PredictionUnit& pu) m_BinEncoder.encodeBin(isFusion ? 1 : 0, Ctx::ChromaFusionMode()); #endif } + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) dir=%d\n", + pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, pu.intraDir[CHANNEL_TYPE_CHROMA]); return; } } @@ -2560,6 +2587,7 @@ void CABACWriter::intra_chroma_pred_mode(const PredictionUnit& pu) CHECK(chromaCandModes[candId] == DM_CHROMA_IDX, "The intra dir cannot be DM_CHROMA for this path"); { m_BinEncoder.encodeBinsEP(candId, 2); + DTRACE(g_trace_ctx, D_SYNTAX, "intra_chroma_pred_modes() pos=(%d,%d) cand_idx=%d\n", pu.blocks[CHANNEL_TYPE_CHROMA].x, pu.blocks[CHANNEL_TYPE_CHROMA].y, candId); #if JVET_Z0050_DIMD_CHROMA_FUSION if (PU::hasChromaFusionFlag(pu, pu.intraDir[1])) { @@ -2696,6 +2724,7 @@ void CABACWriter::adaptive_color_transform(const CodingUnit& cu) if (CU::isInter(cu) || CU::isIBC(cu) || CU::isIntra(cu)) { m_BinEncoder.encodeBin(cu.colorTransform, Ctx::ACTFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "adaptive_color_transform() act_flag=(%d,%d)\n", cu.lumaPos().x, cu.lumaPos().y, cu.colorTransform); } } @@ -2753,7 +2782,7 @@ void CABACWriter::sbt_mode( const CodingUnit& cu ) //bin - pos m_BinEncoder.encodeBin( sbtPosFlag, Ctx::SbtPosFlag( 0 ) ); - DTRACE( g_trace_ctx, D_SYNTAX, "sbt_mode() pos=(%d,%d) sbtInfo=%d\n", cu.lx(), cu.ly(), (int)cu.sbtInfo ); + DTRACE( g_trace_ctx, D_SYNTAX, "sbt_mode() pos=(%d,%d) sbt_info=%d\n", cu.lx(), cu.ly(), (int)cu.sbtInfo ); } void CABACWriter::end_of_ctu( const CodingUnit& cu, CUCtx& cuCtx ) @@ -3593,7 +3622,7 @@ void CABACWriter::affine_mmvd_data(const PredictionUnit& pu) } } } - DTRACE(g_trace_ctx, D_SYNTAX, "afMmvd_base_idx() afMmvd_base_idx=%d\n", afMmvdBaseIdx); + DTRACE(g_trace_ctx, D_SYNTAX, "affine_mmvd_base_idx() af_mmvd_base_idx=%d\n", afMmvdBaseIdx); #if JVET_Y0067_ENHANCED_MMVD_MVD_SIGN_PRED #if JVET_AA0132_CONFIGURABLE_TM_TOOLS @@ -3667,7 +3696,7 @@ void CABACWriter::affine_mmvd_data(const PredictionUnit& pu) } } } - DTRACE(g_trace_ctx, D_SYNTAX, "afMmvd_offsetStep() afMmvd_offSetstep=%d\n", pu.afMmvdStep); + DTRACE(g_trace_ctx, D_SYNTAX, "affine_mmvd_offset_step() af_mmvd_offset_step=%d\n", pu.afMmvdStep); } { @@ -3677,7 +3706,7 @@ void CABACWriter::affine_mmvd_data(const PredictionUnit& pu) uint8_t b1 = (offsetDir >> 1) & 0x1; m_BinEncoder.encodeBinEP(b0); m_BinEncoder.encodeBinEP(b1); - DTRACE(g_trace_ctx, D_SYNTAX, "afMmvd_offsetDir() afMmvd_offsetDir=%d\n", pu.afMmvdDir); + DTRACE(g_trace_ctx, D_SYNTAX, "affine_mmvd_offset_dir() af_mmvd_offset_dir=%d\n", pu.afMmvdDir); } #endif } @@ -3696,7 +3725,7 @@ void CABACWriter::ibcBiPredictionFlag( const PredictionUnit& pu ) } m_BinEncoder.encodeBin(pu.interDir == 3 ? 1 : 0, Ctx::BiPredIbcFlag(pu.mergeFlag ? 0 : 1)); - DTRACE( g_trace_ctx, D_SYNTAX, "ibcBiPredictionFlag() interDir=%d\n", pu.interDir ); + DTRACE( g_trace_ctx, D_SYNTAX, "ibc_bi_prediction_flag() inter_dir=%d\n", pu.interDir ); } void CABACWriter::ibcMergeIdx1( const PredictionUnit& pu ) @@ -3730,7 +3759,7 @@ void CABACWriter::ibcMergeIdx1( const PredictionUnit& pu ) } } - DTRACE( g_trace_ctx, D_SYNTAX, "ibcMergeIdx1() ibcMergeIdx1=%d\n", pu.ibcMergeIdx1 ); + DTRACE( g_trace_ctx, D_SYNTAX, "ibc_merge_idx1() ibc_merge_idx1=%d\n", pu.ibcMergeIdx1 ); } #endif @@ -3742,7 +3771,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) return; } m_BinEncoder.encodeBin(pu.ibcMbvdMergeFlag, Ctx::IbcMbvdFlag()); - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_flag() ibc_mbvd_merge=%d pos=(%d,%d) size=%dx%d\n", pu.ibcMbvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() ibc_mbvd_flag=%d pos=(%d,%d) size=%dx%d\n", pu.ibcMbvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); if (!pu.ibcMbvdMergeFlag) { @@ -3758,7 +3787,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) if (pu.interDir == 3) { m_BinEncoder.encodeBin(pu.ibcMergeIdx1 < IBC_MRG_MAX_NUM_CANDS ? 0 : 1, Ctx::IbcMbvdFlag(1)); - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_flag() bi_mbvd_mode=%d\n", pu.ibcMergeIdx1 < IBC_MRG_MAX_NUM_CANDS ? 1 : 2); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() bi_mbvd_mode=%d\n", pu.ibcMergeIdx1 < IBC_MRG_MAX_NUM_CANDS ? 1 : 2); } #endif int mvpIdx = pu.ibcMbvdMergeIdx; @@ -3790,7 +3819,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) } } } - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() base_idx=%d\n", var0); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() base_idx=%d\n", var0); #if JVET_AE0169_BIPREDICTIVE_IBC int ibcMbvdSizeEnc = IBC_MBVD_SIZE_ENC; @@ -3830,7 +3859,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) { ibcMbvdSizeEnc--; } - DTRACE(g_trace_ctx, D_SYNTAX, "ibcMbvdBaseIdx() ibcMbvdBaseIdx1=%d\n", var1); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() base_idx1=%d\n", var1); } unsigned int ricePar = 1; @@ -3851,7 +3880,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) { m_BinEncoder.encodeBinsEP( mvpIdx % riceParVal, length); } - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() merge_idx=%d\n", pu.ibcMbvdMergeIdx); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() merge_idx=%d\n", pu.ibcMbvdMergeIdx); if (pu.interDir == 3 && pu.ibcMergeIdx1 >= IBC_MRG_MAX_NUM_CANDS) { @@ -3877,7 +3906,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) { m_BinEncoder.encodeBinsEP( mvpIdx1 % riceParVal, length1); } - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() merge_idx1=%d\n", pu.ibcMergeIdx1-IBC_MRG_MAX_NUM_CANDS); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() merge_idx1=%d\n", pu.ibcMergeIdx1-IBC_MRG_MAX_NUM_CANDS); } #else unsigned int ricePar = 1; @@ -3897,7 +3926,7 @@ void CABACWriter::ibcMbvdData(const PredictionUnit& pu) } } - DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_merge_idx() merge_idx=%d\n", pu.ibcMbvdMergeIdx); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_mbvd_data() merge_idx=%d\n", pu.ibcMbvdMergeIdx); #endif } #endif @@ -3917,6 +3946,7 @@ void CABACWriter::tm_merge_flag(const PredictionUnit& pu) if (pu.cs->slice->getSPS()->getUseCiipTmMrg()) { m_BinEncoder.encodeBin(pu.tmMergeFlag, Ctx::CiipTMMergeFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); } return; } @@ -3971,9 +4001,9 @@ void CABACWriter::tm_merge_flag(const PredictionUnit& pu) #endif #if JVET_X0049_ADAPT_DMVR - DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tmMergeFlag || bmMergeFlag=%d\n", pu.tmMergeFlag || pu.bmMergeFlag); + DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tm_merge_flag || bm_merge_flag=%d\n", pu.tmMergeFlag || pu.bmMergeFlag); #else - DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tmMergeFlag=%d\n", pu.tmMergeFlag ? 1 : 0); + DTRACE(g_trace_ctx, D_SYNTAX, "tm_merge_flag() tm_merge_flag=%d\n", pu.tmMergeFlag ? 1 : 0); #endif } #endif @@ -4023,11 +4053,13 @@ void CABACWriter::ibcCiipFlag(const PredictionUnit& pu) } m_BinEncoder.encodeBin(pu.ibcCiipFlag, Ctx::IbcCiipFlag(1)); } + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_ciip_flag() ibc_ciip_flag=%d\n", pu.ibcCiipFlag); } void CABACWriter::ibcCiipIntraIdx(const PredictionUnit& pu) { m_BinEncoder.encodeBin( pu.ibcCiipIntraIdx > 0, Ctx::IbcCiipIntraIdx() ); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_ciip_intra_idx() ibc_ciip_intra_idx=%d\n", pu.ibcCiipIntraIdx); } #endif @@ -4043,6 +4075,7 @@ void CABACWriter::ibcGpmFlag(const PredictionUnit& pu) return; } m_BinEncoder.encodeBin(pu.ibcGpmFlag, Ctx::IbcGpmFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_gpm_flag() ibc_gpm_flag=%d\n", pu.ibcGpmFlag); } void CABACWriter::ibcGpmMergeIdx(const PredictionUnit& pu) @@ -4138,32 +4171,34 @@ void CABACWriter::ibcGpmMergeIdx(const PredictionUnit& pu) } } #endif + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_gpm_merge_idx() ibc_gpm_splt_dir=%d merge_idx0=%d merge_idx1=%d\n", pu.ibcGpmSplitDir, pu.ibcGpmMergeIdx0, pu.ibcGpmMergeIdx1); } -void CABACWriter::ibcGpmAdaptBlendIdx(const int flag) +void CABACWriter::ibcGpmAdaptBlendIdx(const int idx) { if (IBC_GPM_NUM_BLENDING == 1) { return; } - if (flag == 0) + if (idx == 0) { m_BinEncoder.encodeBin(1, Ctx::IbcGpmBldIdx(0)); } else { m_BinEncoder.encodeBin(0, Ctx::IbcGpmBldIdx(0)); - if (flag == 2 || flag == 1) + if (idx == 2 || idx == 1) { m_BinEncoder.encodeBin(1, Ctx::IbcGpmBldIdx(1)); - m_BinEncoder.encodeBin(flag == 2, Ctx::IbcGpmBldIdx(2)); + m_BinEncoder.encodeBin(idx == 2, Ctx::IbcGpmBldIdx(2)); } else { m_BinEncoder.encodeBin(0, Ctx::IbcGpmBldIdx(1)); - m_BinEncoder.encodeBin(flag == 3, Ctx::IbcGpmBldIdx(3)); + m_BinEncoder.encodeBin(idx == 3, Ctx::IbcGpmBldIdx(3)); } } + DTRACE(g_trace_ctx, D_SYNTAX, "ibc_gpm_adapt_blend_idx() ibc_gpm_bld_idx=%d\n", idx); } #endif @@ -4205,6 +4240,7 @@ void CABACWriter::cuIbcLicFlag(const CodingUnit& cu) { unsigned ctxIdx = 1 + DeriveCtx::ctxIbcFilterFlag(cu); m_BinEncoder.encodeBin(cu.ibcFilterFlag ? 1 : 0, Ctx::IbcLicFlag(ctxIdx)); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() filter_flag=%d\n", cu.ibcFilterFlag); } #if JVET_AE0078_IBC_LIC_EXTENSION if (!cu.ibcFilterFlag) @@ -4213,6 +4249,7 @@ void CABACWriter::cuIbcLicFlag(const CodingUnit& cu) #endif { m_BinEncoder.encodeBin(cu.ibcLicFlag ? 1 : 0, Ctx::IbcLicFlag(0)); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_flag=%d\n", cu.ibcLicFlag); #if JVET_AE0078_IBC_LIC_EXTENSION if (cu.ibcLicFlag) { @@ -4220,11 +4257,13 @@ void CABACWriter::cuIbcLicFlag(const CodingUnit& cu) const int bin2 = (cu.ibcLicIdx == IBC_LIC_IDX) || (cu.ibcLicIdx == IBC_LIC_IDX_T) ? 0 : 1; m_BinEncoder.encodeBin(bin1, Ctx::IbcLicIndex(0)); m_BinEncoder.encodeBin(bin2, Ctx::IbcLicIndex(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_idx=%d\n", cu.ibcLicIdx); } #endif } #else m_BinEncoder.encodeBin(cu.ibcLicFlag ? 1 : 0, Ctx::IbcLicFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_flag=%d\n", cu.ibcLicFlag); #if JVET_AE0078_IBC_LIC_EXTENSION if (cu.ibcLicFlag) { @@ -4232,6 +4271,7 @@ void CABACWriter::cuIbcLicFlag(const CodingUnit& cu) const int bin2 = (cu.ibcLicIdx == IBC_LIC_IDX) || (cu.ibcLicIdx == IBC_LIC_IDX_T) ? 0 : 1; m_BinEncoder.encodeBin(bin1, Ctx::IbcLicIndex(0)); m_BinEncoder.encodeBin(bin2, Ctx::IbcLicIndex(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "cu_ibc_lic_flag() lic_idx=%d\n", cu.ibcLicIdx); } #endif #endif @@ -4254,7 +4294,7 @@ void CABACWriter::bm_merge_flag(const PredictionUnit& pu) m_BinEncoder.encodeBin(pu.bmDir >> 1, Ctx::BMMergeFlag(3)); } - DTRACE(g_trace_ctx, D_SYNTAX, "bm_merge_flag() bmMergeFlag=%d, bmDir = %d\n", pu.bmMergeFlag ? 1 : 0, pu.bmDir); + DTRACE(g_trace_ctx, D_SYNTAX, "bm_merge_flag() bm_merge_flag=%d, bmDir = %d\n", pu.bmMergeFlag ? 1 : 0, pu.bmDir); } #endif #if JVET_AD0182_AFFINE_DMVR_PLUS_EXTENSIONS @@ -4267,10 +4307,12 @@ void CABACWriter::affBmFlag(const PredictionUnit& pu) return; } m_BinEncoder.encodeBin(pu.affBMMergeFlag, Ctx::affBMFlag(0)); + DTRACE(g_trace_ctx, D_SYNTAX, "aff_bm_flag() aff_bm_flag=%d\n", pu.affBMMergeFlag); if (pu.affBMMergeFlag) { CHECK(pu.affBMDir != 1 && pu.affBMDir != 2, "pu.affBMDir != 1 && pu.affBMDir != 2"); m_BinEncoder.encodeBin(pu.affBMDir >> 1, Ctx::affBMFlag(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "aff_bm_flag() aff_bm_dir=%d\n", pu.affBMDir); } } #endif @@ -4401,6 +4443,7 @@ void CABACWriter::merge_data(const PredictionUnit& pu) if (geoAvailable || ciipAvailable) { m_BinEncoder.encodeBin(pu.regularMergeFlag, Ctx::RegularMergeFlag(pu.cu->skip ? 0 : 1)); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() regular_merge=%d pos=(%d,%d) size=%dx%d\n", pu.regularMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } if (pu.regularMergeFlag) { @@ -4438,7 +4481,7 @@ void CABACWriter::merge_data(const PredictionUnit& pu) #else m_BinEncoder.encodeBin(pu.mmvdMergeFlag, Ctx::MmvdFlag(0)); #endif - DTRACE(g_trace_ctx, D_SYNTAX, "mmvd_merge_flag() mmvd_merge=%d pos=(%d,%d) size=%dx%d\n", pu.mmvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() mmvd_merge=%d pos=(%d,%d) size=%dx%d\n", pu.mmvdMergeFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } if (pu.mmvdMergeFlag || pu.cu->mmvdSkip) { @@ -4466,10 +4509,12 @@ void CABACWriter::merge_data(const PredictionUnit& pu) if (pu.cs->slice->getSPS()->getUseCiipTmMrg()) { m_BinEncoder.encodeBin(pu.tmMergeFlag, Ctx::CiipTMMergeFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); } #endif #endif m_BinEncoder.encodeBin(pu.ciipPDPC, Ctx::CiipFlag(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "merge_data() ciip_pdpc_flag=%d\n", pu.ciipPDPC); } #else #if JVET_X0141_CIIP_TIMD_TM && TM_MRG @@ -5078,7 +5123,7 @@ void CABACWriter::mmvd_merge_idx(const PredictionUnit& pu) } } } - DTRACE(g_trace_ctx, D_SYNTAX, "MmvdStepMvpIdx() MmvdStepMvpIdx=%d\n", var1); + DTRACE(g_trace_ctx, D_SYNTAX, "mmvd_step_mvp_idx() mmvd_step_mvp_idx=%d\n", var1); m_BinEncoder.encodeBinsEP(var2, 2); @@ -5183,6 +5228,7 @@ void CABACWriter::geo_mmvd_idx(const PredictionUnit& pu, RefPicList eRefPicList) int maxMMVDDir = (extMMVD ? GPM_EXT_MMVD_REFINE_DIRECTION : GPM_MMVD_REFINE_DIRECTION); m_BinEncoder.encodeBinsEP(direction, maxMMVDDir > 4 ? 3 : 2); + DTRACE(g_trace_ctx, D_SYNTAX, "geo_mmvd_idx() geo_mmvd_idx%d=%d\n", eRefPicList, geoMMVDIdx); } void CABACWriter::geo_merge_idx(const PredictionUnit& pu) @@ -5215,6 +5261,7 @@ void CABACWriter::geo_merge_idx(const PredictionUnit& pu) unary_max_eqprob(candIdx1 - 1, numCandminus2 - 1); } } + DTRACE(g_trace_ctx, D_SYNTAX, "geo_merge_idx() geo_merge_idx0=%d geo_merge_idx1=%d\n", pu.geoMergeIdx0, pu.geoMergeIdx1); } void CABACWriter::geo_merge_idx1(const PredictionUnit& pu) @@ -5267,6 +5314,7 @@ void CABACWriter::geo_merge_idx1(const PredictionUnit& pu) #if JVET_Y0065_GPM_INTRA } #endif + DTRACE(g_trace_ctx, D_SYNTAX, "geo_merge_idx1() geo_merge_idx0=%d geo_merge_idx1=%d\n", pu.geoMergeIdx0, pu.geoMergeIdx1); } uint64_t CABACWriter::geo_mode_est(const TempCtx& ctxStart, const int geoMode @@ -5401,26 +5449,27 @@ uint64_t CABACWriter::geoBldFlagEst(const TempCtx& ctxStart, const int flag) return getEstFracBits(); } -void CABACWriter::geoAdaptiveBlendingIdx(const int flag) +void CABACWriter::geoAdaptiveBlendingIdx(const int idx) { - if (flag == 2) + if (idx == 2) { m_BinEncoder.encodeBin(1, Ctx::GeoBldFlag(0)); } else { m_BinEncoder.encodeBin(0, Ctx::GeoBldFlag(0)); - if (flag == 0 || flag == 1) + if (idx == 0 || idx == 1) { m_BinEncoder.encodeBin(1, Ctx::GeoBldFlag(1)); - m_BinEncoder.encodeBin(flag == 0, Ctx::GeoBldFlag(2)); + m_BinEncoder.encodeBin(idx == 0, Ctx::GeoBldFlag(2)); } else { m_BinEncoder.encodeBin(0, Ctx::GeoBldFlag(1)); - m_BinEncoder.encodeBin(flag == 3, Ctx::GeoBldFlag(3)); + m_BinEncoder.encodeBin(idx == 3, Ctx::GeoBldFlag(3)); } } + DTRACE(g_trace_ctx, D_SYNTAX, "geo_adaptive_blending_idx() geo_bld_idx=%d\n", idx); } #endif @@ -5455,7 +5504,7 @@ void CABACWriter::inter_pred_idc( const PredictionUnit& pu ) #else m_BinEncoder.encodeBin( ( pu.interDir == 2 ), Ctx::InterDir( 6 ) ); #endif - DTRACE( g_trace_ctx, D_SYNTAX, "inter_pred_idc() ctx=5 value=%d pos=(%d,%d)\n", pu.interDir, pu.lumaPos().x, pu.lumaPos().y ); + DTRACE( g_trace_ctx, D_SYNTAX, "inter_pred_idc() ctx=7 value=%d pos=(%d,%d)\n", pu.interDir, pu.lumaPos().x, pu.lumaPos().y ); } #if JVET_Z0054_BLK_REF_PIC_REORDER @@ -5901,7 +5950,7 @@ void CABACWriter::Ciip_flag(const PredictionUnit& pu) return; } m_BinEncoder.encodeBin(pu.ciipFlag, Ctx::CiipFlag()); - DTRACE(g_trace_ctx, D_SYNTAX, "Ciip_flag() Ciip=%d pos=(%d,%d) size=%dx%d\n", pu.ciipFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip=%d pos=(%d,%d) size=%dx%d\n", pu.ciipFlag ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); #if CIIP_PDPC if( pu.ciipFlag ) { @@ -5912,10 +5961,12 @@ void CABACWriter::Ciip_flag(const PredictionUnit& pu) if (pu.cs->slice->getSPS()->getUseCiipTmMrg()) { m_BinEncoder.encodeBin(pu.tmMergeFlag, Ctx::CiipTMMergeFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); } #endif #endif m_BinEncoder.encodeBin(pu.ciipPDPC, Ctx::CiipFlag(1)); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip_pdpc_flag=%d pos=(%d,%d) size=%dx%d\n", pu.ciipPDPC ? 1 : 0, pu.lumaPos().x, pu.lumaPos().y, pu.lumaSize().width, pu.lumaSize().height); } #else #if JVET_X0141_CIIP_TIMD_TM && TM_MRG @@ -5925,6 +5976,7 @@ void CABACWriter::Ciip_flag(const PredictionUnit& pu) tm_merge_flag(pu); #else m_BinEncoder.encodeBin(pu.tmMergeFlag, Ctx::CiipTMMergeFlag()); + DTRACE(g_trace_ctx, D_SYNTAX, "ciip_flag() ciip_tm_merge_flag=%d\n", pu.tmMergeFlag); #endif } #endif @@ -6097,25 +6149,25 @@ void CABACWriter::mvd_coding( const Mv &rMvd, int8_t imv, const MvdSuffixInfo* c #if ENABLE_TRACING if (horParam == -1) { - DTRACE(g_trace_ctx, D_SYNTAX, "abs(MVD_hor) = %d \n", horAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_hor) = %d \n", horAbs); } else { - DTRACE(g_trace_ctx, D_SYNTAX, "MVD_hor prefix=%d \n", horParam); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() mvd_hor prefix=%d \n", horParam); } if (verParam == -1) { - DTRACE(g_trace_ctx, D_SYNTAX, "abs(MVD_ver) = %d \n", verAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_ver) = %d \n", verAbs); } else { - DTRACE(g_trace_ctx, D_SYNTAX, "MVD_ver prefix=%d \n", verParam); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() mvd_ver prefix=%d \n", verParam); } #endif } else { - DTRACE(g_trace_ctx, D_SYNTAX, "codeSign=%d \n", codeSign); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() code_sign=%d \n", codeSign); if( horAbs > 0 ) { if( horAbs > 1 ) @@ -6138,8 +6190,8 @@ void CABACWriter::mvd_coding( const Mv &rMvd, int8_t imv, const MvdSuffixInfo* c #endif m_BinEncoder.encodeBinEP( (verMvd < 0) ); } - DTRACE(g_trace_ctx, D_SYNTAX, "horAbs=%d \n", horAbs); - DTRACE(g_trace_ctx, D_SYNTAX, "verAbs=%d \n", verAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_hor)=%d \n", horAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding() abs(mvd_ver)=%d \n", verAbs); } } @@ -6280,14 +6332,14 @@ void CABACWriter::mvdCodingRemainder(const Mv& rMvd, const MvdSuffixInfo& si, in if (horAbs > 1) { xWriteMvdContextSuffix(horAbs - 2, MVD_CODING_GOLOMB_ORDER, horParam, 0 ); - DTRACE(g_trace_ctx, D_SYNTAX, "horSuffix=%d \n", horAbs - 2); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding_remainder() hor_suffix=%d \n", horAbs - 2); } if (verAbs > 1) { xWriteMvdContextSuffix(verAbs - 2, MVD_CODING_GOLOMB_ORDER, verParam, 0 ); - DTRACE(g_trace_ctx, D_SYNTAX, "verSuffix=%d \n", verAbs - 2); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding_remainder() ver_suffix=%d \n", verAbs - 2); } - DTRACE(g_trace_ctx, D_SYNTAX, "abs(mvd)=(%d,%d) \n", horAbs, verAbs); + DTRACE(g_trace_ctx, D_SYNTAX, "mvd_coding_remainder() abs(mvd)=(%d,%d) \n", horAbs, verAbs); } } @@ -7184,6 +7236,7 @@ void CABACWriter::mvsdAffineIdxFunc(const PredictionUnit &pu, RefPicList eRefLis } } #endif + DTRACE(g_trace_ctx, D_SYNTAX, "mvsd_affine_idx_func() mvsdIdx=%d\n", pu.mvsdIdx[eRefList]); // eRefList can have enc-dec mismatch } #endif @@ -7494,7 +7547,11 @@ void CABACWriter::residual_coding( const TransformUnit& tu, ComponentID compID, ) { const CodingUnit& cu = *tu.cu; +#if JVET_AE0102_LFNST_CTX + DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding() codeTuCoeff=%d etype=%d pos=(%d,%d) size=%dx%d predMode=%d\n", codeTuCoeff, tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height, cu.predMode ); +#else DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding() etype=%d pos=(%d,%d) size=%dx%d predMode=%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height, cu.predMode ); +#endif if( compID == COMPONENT_Cr && tu.jointCbCr == 3 ) return; @@ -7718,7 +7775,7 @@ void CABACWriter::ts_flag( const TransformUnit& tu, ComponentID compID ) { m_BinEncoder.encodeBin( tsFlag, Ctx::TransformSkipFlag(ctxIdx)); } - DTRACE( g_trace_ctx, D_SYNTAX, "ts_flag() etype=%d pos=(%d,%d) mtsIdx=%d\n", COMPONENT_Y, tu.cu->lx(), tu.cu->ly(), tsFlag ); + DTRACE(g_trace_ctx, D_SYNTAX, "ts_flag() etype=%d pos=(%d,%d) mtsIdx=%d\n", COMPONENT_Y, tu.blocks[compID].x, tu.blocks[compID].y, tsFlag); } void CABACWriter::mts_idx( const CodingUnit& cu, CUCtx* cuCtx ) @@ -7823,7 +7880,7 @@ void CABACWriter::isp_mode( const CodingUnit& cu ) #endif m_BinEncoder.encodeBin( cu.ispMode - 1, Ctx::ISPMode( 1 ) ); } - DTRACE( g_trace_ctx, D_SYNTAX, "intra_subPartitions() etype=%d pos=(%d,%d) ispIdx=%d\n", cu.chType, cu.blocks[cu.chType].x, cu.blocks[cu.chType].y, (int)cu.ispMode ); + DTRACE( g_trace_ctx, D_SYNTAX, "intra_subpartitions() etype=%d pos=(%d,%d) ispIdx=%d\n", cu.chType, cu.blocks[cu.chType].x, cu.blocks[cu.chType].y, (int)cu.ispMode ); } void CABACWriter::residual_lfnst_mode( const CodingUnit& cu, CUCtx& cuCtx ) @@ -7974,6 +8031,7 @@ void CABACWriter::last_sig_coeff( CoeffCodingContext& cctx, const TransformUnit& m_BinEncoder.encodeBinEP( ( posY >> i ) & 1 ); } } + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "last_sig_coeff() scan_pos_last=%d\n", cctx.scanPosLast()); } #if TCQ_8STATES @@ -8009,10 +8067,12 @@ void CABACWriter::residual_coding_subblock( CoeffCodingContext& cctx, const TCoe if( cctx.isSigGroup() ) { m_BinEncoder.encodeBin( 1, cctx.sigGroupCtxId() ); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "sig_group() bin=%d\n", 1); } else { m_BinEncoder.encodeBin( 0, cctx.sigGroupCtxId() ); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "sig_group() bin=%d\n", 0); return; } } @@ -8177,7 +8237,7 @@ void CABACWriter::residual_coding_subblock( CoeffCodingContext& cctx, const TCoe void CABACWriter::residual_codingTS( const TransformUnit& tu, ComponentID compID ) { - DTRACE( g_trace_ctx, D_SYNTAX, "residual_codingTS() etype=%d pos=(%d,%d) size=%dx%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height ); + DTRACE( g_trace_ctx, D_SYNTAX, "residual_coding_ts() etype=%d pos=(%d,%d) size=%dx%d\n", tu.blocks[compID].compID, tu.blocks[compID].x, tu.blocks[compID].y, tu.blocks[compID].width, tu.blocks[compID].height ); // init coeff coding context CoeffCodingContext cctx ( tu, compID, false, isLuma(compID) ? tu.cu->bdpcmMode : tu.cu->bdpcmModeChroma); @@ -8217,12 +8277,12 @@ void CABACWriter::residual_coding_subblockTS( CoeffCodingContext& cctx, const TC if( cctx.isSigGroup() ) { m_BinEncoder.encodeBin( 1, cctx.sigGroupCtxId( true ) ); - DTRACE( g_trace_ctx, D_SYNTAX_RESI, "ts_sigGroup() bin=%d ctx=%d\n", 1, cctx.sigGroupCtxId() ); + DTRACE( g_trace_ctx, D_SYNTAX_RESI, "ts_sig_group() bin=%d ctx=%d\n", 1, cctx.sigGroupCtxId() ); } else { m_BinEncoder.encodeBin( 0, cctx.sigGroupCtxId( true ) ); - DTRACE( g_trace_ctx, D_SYNTAX_RESI, "ts_sigGroup() bin=%d ctx=%d\n", 0, cctx.sigGroupCtxId() ); + DTRACE( g_trace_ctx, D_SYNTAX_RESI, "ts_sig_group() bin=%d ctx=%d\n", 0, cctx.sigGroupCtxId() ); return; } } @@ -8252,9 +8312,10 @@ void CABACWriter::residual_coding_subblockTS( CoeffCodingContext& cctx, const TC { //===== encode sign's ===== int sign = Coeff < 0; - const unsigned signCtxId = cctx.signCtxIdAbsTS(nextSigPos, coeff, cctx.bdpcm()); - m_BinEncoder.encodeBin(sign, signCtxId); - cctx.decimateNumCtxBins(1); + const unsigned signCtxId = cctx.signCtxIdAbsTS(nextSigPos, coeff, cctx.bdpcm()); + m_BinEncoder.encodeBin(sign, signCtxId); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_sign() bin=%d ctx=%d\n", sign, signCtxId); + cctx.decimateNumCtxBins(1); numNonZero++; cctx.neighTS(rightPixel, belowPixel, nextSigPos, coeff); modAbsCoeff = cctx.deriveModCoeff(rightPixel, belowPixel, abs(Coeff), cctx.bdpcm()); @@ -8262,9 +8323,9 @@ void CABACWriter::residual_coding_subblockTS( CoeffCodingContext& cctx, const TC unsigned gt1 = !!remAbsLevel; const unsigned gt1CtxId = cctx.lrg1CtxIdAbsTS(nextSigPos, coeff, cctx.bdpcm()); - m_BinEncoder.encodeBin(gt1, gt1CtxId); - DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_gt1_flag() bin=%d ctx=%d\n", gt1, gt1CtxId); - cctx.decimateNumCtxBins(1); + m_BinEncoder.encodeBin(gt1, gt1CtxId); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_gt1_flag() bin=%d ctx=%d\n", gt1, gt1CtxId); + cctx.decimateNumCtxBins(1); if( gt1 ) { @@ -8318,6 +8379,7 @@ void CABACWriter::residual_coding_subblockTS( CoeffCodingContext& cctx, const TC { int sign = coeff[cctx.blockPos(scanPos)] < 0; m_BinEncoder.encodeBinEP(sign); + DTRACE(g_trace_ctx, D_SYNTAX_RESI, "ts_rice_sign() bin=%d\n", sign); } } } @@ -8495,7 +8557,7 @@ void CABACWriter::codeCcAlfFilterControlIdc(uint8_t idcVal, CodingStructure &cs, m_BinEncoder.encodeBinEP(0); } } - DTRACE(g_trace_ctx, D_SYNTAX, "ccAlfFilterControlIdc() compID=%d pos=(%d,%d) ctxt=%d, filterCount=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, filterCount, idcVal); + DTRACE(g_trace_ctx, D_SYNTAX, "cc_alf_filter_control_idc() compID=%d pos=(%d,%d) ctxt=%d, filterCount=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, filterCount, idcVal); } #else @@ -8538,7 +8600,7 @@ void CABACWriter::codeCcAlfFilterControlIdc(uint8_t idcVal, CodingStructure &cs, m_BinEncoder.encodeBinEP( 0 ); } } - DTRACE( g_trace_ctx, D_SYNTAX, "ccAlfFilterControlIdc() compID=%d pos=(%d,%d) ctxt=%d, filterCount=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, filterCount, idcVal ); + DTRACE( g_trace_ctx, D_SYNTAX, "cc_alf_filter_control_idc() compID=%d pos=(%d,%d) ctxt=%d, filterCount=%d, idcVal=%d\n", compID, lumaPos.x, lumaPos.y, ctxt, filterCount, idcVal ); } #endif @@ -8887,7 +8949,7 @@ void CABACWriter::bvOneZeroComp(const CodingUnit &cu) #endif #endif } - DTRACE(g_trace_ctx, D_SYNTAX, "rribcData() rribcFlipType = %d\n", cu.rribcFlipType); + DTRACE(g_trace_ctx, D_SYNTAX, "rribc_data() rribc_flip_type = %d\n", cu.rribcFlipType); } #endif @@ -8910,7 +8972,7 @@ void CABACWriter::rribcData(const CodingUnit& cu) CHECK(cu.rribcFlipType != 1 && cu.rribcFlipType != 2, "cu.rribcFlipType != 1 && cu.rribcFlipType != 2"); m_BinEncoder.encodeBin(cu.rribcFlipType >> 1, Ctx::rribcFlipType(3)); } - DTRACE(g_trace_ctx, D_SYNTAX, "rribcData() rribcFlipType = %d\n", cu.rribcFlipType); + DTRACE(g_trace_ctx, D_SYNTAX, "rribc_data() rribc_flip_type = %d\n", cu.rribcFlipType); } #endif @@ -9092,6 +9154,7 @@ void CABACWriter::amvpMerge_mode( const PredictionUnit& pu ) if (pu.amvpMergeModeFlag[0] || pu.amvpMergeModeFlag[1]) { m_BinEncoder.encodeBin(1, Ctx::amFlagState()); + DTRACE(g_trace_ctx, D_SYNTAX, "amvp_merge_mode() am_flag=%d\n", 1); #if JVET_Z0054_BLK_REF_PIC_REORDER if (pu.cs->sps->getUseARL()) { @@ -9104,10 +9167,12 @@ void CABACWriter::amvpMerge_mode( const PredictionUnit& pu ) if (pu.amvpMergeModeFlag[REF_PIC_LIST_0]) { m_BinEncoder.encodeBinEP(0); + DTRACE(g_trace_ctx, D_SYNTAX, "amvp_merge_mode() dir=%d\n", 0); } else { m_BinEncoder.encodeBinEP(1); + DTRACE(g_trace_ctx, D_SYNTAX, "amvp_merge_mode() dir=%d\n", 1); } } } @@ -9120,6 +9185,7 @@ void CABACWriter::amvpMerge_mode( const PredictionUnit& pu ) #endif { m_BinEncoder.encodeBin(0, Ctx::amFlagState()); + DTRACE(g_trace_ctx, D_SYNTAX, "amvp_merge_mode() am_flag=%d\n", 0); } } } @@ -9193,6 +9259,7 @@ void CABACWriter::interCccm(const TransformUnit& tu) if (TU::interCccmAllowed(tu)) { m_BinEncoder.encodeBin(tu.interCccm > 0 ? 1 : 0, Ctx::InterCccmFlag(0)); + DTRACE(g_trace_ctx, D_SYNTAX, "inter_cccm() pos=(%d,%d) inter_cccm_flag=%d\n", tu.blocks[tu.chType].x, tu.blocks[tu.chType].y, tu.interCccm > 0 ? 1 : 0); } } #endif diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp index c427c056952f2942aa1298a1d0b12f617d2ac3c3..c695b690c8655135f6f3bf9b77a89d5d551705c8 100644 --- a/source/Lib/EncoderLib/VLCWriter.cpp +++ b/source/Lib/EncoderLib/VLCWriter.cpp @@ -4018,14 +4018,14 @@ void HLSWriter::codeCcSao(Slice* pcSlice, PicHeader* picHeader, const SPS* sps, { if (pcSlice->getSPS()->getCCSAOEnabledFlag()) { - WRITE_FLAG(ccSaoParam.enabled[COMPONENT_Y ] ? 1 : 0, "slice_ccsao_y_enabled_flag"); - WRITE_FLAG(ccSaoParam.enabled[COMPONENT_Cb] ? 1 : 0, "slice_ccsao_cb_enabled_flag"); - WRITE_FLAG(ccSaoParam.enabled[COMPONENT_Cr] ? 1 : 0, "slice_ccsao_cr_enabled_flag"); + WRITE_FLAG(ccSaoParam.enabled[COMPONENT_Y ] ? 1 : 0, "ccsao_y_enabled_flag"); + WRITE_FLAG(ccSaoParam.enabled[COMPONENT_Cb] ? 1 : 0, "ccsao_cb_enabled_flag"); + WRITE_FLAG(ccSaoParam.enabled[COMPONENT_Cr] ? 1 : 0, "ccsao_cr_enabled_flag"); #if JVET_AE0151_CCSAO_HISTORY_OFFSETS_AND_EXT_EO if (ccSaoParam.enabled[COMPONENT_Y] || ccSaoParam.enabled[COMPONENT_Cb] || ccSaoParam.enabled[COMPONENT_Cr]) { - WRITE_FLAG(ccSaoParam.extChroma[COMPONENT_Y] ? 1 : 0, "slice_ccsao_ext_chroma_flag"); + WRITE_FLAG(ccSaoParam.extChroma[COMPONENT_Y] ? 1 : 0, "ccsao_ext_chroma_flag"); } #endif