You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于HM软件提取B帧中4x4 CU的Merge模式信息技术问询

HM解码后提取B帧Merge模式4x4 CU的判断逻辑补全

核心逻辑说明

HM中B帧的Merge候选列表有固定结构:

  • 前5个为空间候选,每个候选会明确使用L0、L1或双向参考
  • 第6个为时间候选
  • 后续为组合双向候选(本次需求暂不涉及)

要区分空间/时间预测及L0/L1方向,需通过TComDataCU的接口获取Merge候选的索引和参考方向信息,同时要确保只处理4x4尺寸的CU。

补全后的完整代码

string save = "**********";

ofstream CU_merge;
string CU_file_name = "cu_merge.txt";
CU_merge.open(save + CU_file_name, std::ios_base::app);

for (UInt ctuRsAddr = 0; ctuRsAddr < pcPic->getNumberOfCtusInFrame(); ctuRsAddr++)
{
    TComDataCU* pCtu = pcPic->getCtu(ctuRsAddr);
    for (int i = 0; i < pCtu->getTotalNumPart(); i++)
    {
        int zscan = g_auiRasterToZscan[i];
        
        // 仅处理B帧、无双向预测限制、使用Merge模式的4x4 CU
        if ((pcSlice->isInterB()) && (!pCtu->isBipredRestriction(zscan)) && (pCtu->getMergeFlag(zscan)) && (pCtu->getPartSize(zscan) == SIZE_4x4))
        {
            UInt mergeIdx = pCtu->getMergeIndex(zscan);
            const TComMvField& mergeCand = pCtu->getMergeCand(zscan)[mergeIdx];

            if (mergeIdx < 5) // 空间候选范围
            {
                if (mergeCand.getRefIdx(REF_PIC_LIST_0) != -1 && mergeCand.getRefIdx(REF_PIC_LIST_1) == -1)
                {
                    // 单向空间预测(L0)
                    CU_merge << "S0";
                }
                else if (mergeCand.getRefIdx(REF_PIC_LIST_1) != -1 && mergeCand.getRefIdx(REF_PIC_LIST_0) == -1)
                {
                    // 单向空间预测(L1)
                    CU_merge << "S1";
                }
                // 若需处理双向空间候选,可添加else分支标记为"B"
            }
            else if (mergeIdx == 5) // 时间候选
            {
                // 时间预测
                CU_merge << "T";
            }
            // 后续组合候选可根据需求补充处理
        }
    }
}
CU_merge.close();

关键接口说明

  1. getPartSize(zscan):判断当前CU的尺寸,SIZE_4x4是HM定义的枚举值,确保只处理目标尺寸单元
  2. getMergeIndex(zscan):获取当前CU选中的Merge候选在列表中的索引
  3. getMergeCand(zscan)[mergeIdx]:获取对应索引的Merge候选数据,包含参考列表索引信息
  4. getRefIdx(REF_PIC_LIST_0/1):获取候选使用的参考列表索引,返回-1表示未使用该列表

内容的提问来源于stack exchange,提问作者Y90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 04:55:17