news 2026/2/25 3:54:36

ECM CCP

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ECM CCP

Cross-Component Prediction (CCP) Merge Mode Candidate Selection

即:跨分量预测(色度基于亮度残差建模)的合并模式候选列表构建机制


一、背景:什么是 CCP?

✅ 跨分量预测(Cross-Component Prediction, CCP)

CCP 是一种Chroma from Luma的预测技术,用于提高色度(Cb/Cr)编码效率。其核心思想是:

利用已重建的亮度分量(Y)的残差信息来预测当前块的色度分量(Cb/Cr)值

这与传统的线性模型不同,CCP 在 VTM 中通常表示为:
predchroma(x,y)=base_pred(x,y)+β⋅rec_residual_luma(x′,y′) \text{pred}_{chroma}(x,y) = \text{base\_pred}(x,y) + \beta \cdot \text{rec\_residual\_luma}(x',y')predchroma(x,y)=base_pred(x,y)+βrec_residual_luma(x,y)
其中:

  • base_pred可以是平面、DC 或角度帧内预测;
  • β\betaβ是缩放系数(由训练或 RDO 决定);
  • rec_res_luma是邻近区域亮度残差样本;
  • (x′,y′)(x', y')(x,y)是映射位置(可能偏移);

该方法能有效捕捉亮度残差与色度之间的相关性,尤其适用于纹理丰富区域。


二、为什么需要 “CCP Merge” 模式?

为了降低信号开销和复杂度,VVC 引入了Merge 模式—— 不传输运动矢量或模式参数,而是复用历史/空间候选。

类似地,在色度预测中也定义了:

CCP Merge Mode:不重新估计 β 系数和参考位置,而是从一个预构建的CCP Merge Candidate List中选择已有参数组合。

这样可以避免每次进行 RDO 判决时重复计算所有可能的 β 和模板配置,从而节省编码时间并减少语法比特。


三、ECM-19.0 中的 CCP Merge Candidate 如何生成?

虽然 ECM-19.0 并非最终标准化文档,但根据 JVET 提案系列(如 JVET-Z0058, JVET-AC0067, JVET-AD0047 等)以及 VTM-18~VTM-20 的发展路径,我们可以总结出ECM-19.0 中典型的 CCP Merge 候选选择流程如下


🔷 步骤 1:确定是否启用 CCP Merge

仅当以下条件满足时,才考虑添加 CCP Merge 候选:

  • 当前编码单元(CU)位于Chroma 分量上
  • CU 尺寸 ≥ 4×4
  • 当前 slice 类型支持帧内预测(I-slice 或 I-part in P/B)
  • 启用了 CCP 工具(通过 SPS/PPS 标志位控制)

🔷 步骤 2:构建初始候选列表(Initial Candidate List)

候选来源共五类,依次尝试插入,去重后保留最多5 个候选

候选类型 1:空间相邻块(Spatial Neighbors)

检查左侧(A1)、上方(B1)两个位置的相邻 PU 是否使用过有效的 CCP 参数

+----------------+ | B1 | +--------+-------+ | | | | B0 | Current +--------+-------+ | A1 | +--------+
  • 若 A1 或 B1 使用了 CCP 模式且有有效 β 和模板参数,则提取其:
    • 缩放因子 β
    • 残差采样模式(如 3×3 centered around top-left luma)
    • 映射偏移(offset_x, offset_y)
  • 添加为候选项

注:若两者都存在,优先顺序为 B1 → A1

候选类型 2:非直接空间邻居(Non-direct Spatial)

某些提案扩展至 B2(上方右)、A2(左下),前提是它们属于同一 CTU 行且已解码。

候选类型 3:时间同位块(Temporal Co-located Block)

查找 co-located picture 中对应位置的 PU 是否使用过 CCP 模式。

  • 如果是,提取其 β 和模板设置
  • 应用时间运动补偿后的映射调整(如 scale with temporal MV)
候选类型 4:零参数默认候选(Zero-offset Default Candidate)

即使没有历史可用,也可强制加入一个“保守”的默认候选:

  • β = 0 (即退化为普通帧内预测)
  • offset = (0,0)
  • template size = 1×1

作用:保证列表非空,便于熵编码统一处理

候选类型 5:历史缓存(History-based Buffer)

维护一个先进先出(FIFO)的历史缓冲区,存储最近成功使用的CCP 参数组

  • 最多保存 N 个条目(例如 3~5 个)
  • 每次成功编码一个使用 CCP 的 CU 后,将其参数归一化后压入缓存
  • 避免重复参数(去重)

🔷 步骤 3:去重与排序(Deduplication & Reordering)

对上述收集到的所有候选执行:

1.去重规则

比较每对候选的以下字段是否完全相同:

  • β 值(量化后整数形式)
  • 模板形状 ID(如 3×3 centered vs 2×2 top-left)
  • 偏移量 (dx, dy)

若相同,则跳过后续插入。

2.重排序依据

按优先级重新排列候选顺序,常用策略包括:

优先级规则
1st空间相邻(A1/B1)
2nd时间候选
3rd历史缓存
4th默认零参数

目的:将最可能匹配当前块特性的候选放在前面,有利于快速收敛。


🔷 步骤 4:截断至最大长度

最终保留最多maxNumCcpMergeCandidates(典型值为 5)个候选。

可通过 SPS 层信令配置此数量。


🔷 步骤 5:语法传输与解码端重建

在码流中:

  • 不显式传输候选列表内容
  • 解码器按相同规则自主重建候选列表
  • 编码器只需发送一个索引ccp_merge_idx
  • 解码器查表获取对应的 β 和模板参数

实现了解码一致性,无需额外传输参数


四、示例:CCP Merge 候选列表构建过程(简化版)

假设当前色度 CU 条件如下:

来源是否有效参数
左侧 A1β=2, template=3×3 center, offset=(-1,-1)
上方 B1β=2, same template & offset → 与 A1 相同
时间块β=3, template=2×2 TL, offset=(-2,-2)
历史缓存有两个条目[β=1], [β=4]
默认强制添加β=0

→ 构建流程:

  1. 加入 A1:(β=2, ...)✔️
  2. 尝试加入 B1 → 与 A1 完全相同 → 跳过 ❌
  3. 加入时间候选:(β=3, ...)✔️
  4. 加入历史缓存:
    • 第一项(β=1)→ 新增 ✔️
    • 第二项(β=4)→ 新增 ✔️
  5. 加入默认候选(β=0)→ ✔️
  6. 去重完成,共 5 个候选 → 截断(已达上限)

最终候选列表(顺序):

IndexTypeβTemplateOffset
0Spatial (A1)23×3 center(-1,-1)
1Temporal32×2 TL(-2,-2)
2History1default(0,0)
3History4default(0,0)
4Default0

编码器通过 RDO 测试每个候选,选择成本最低者,并传输ccp_merge_idx


五、性能影响与优化方向(来自 JVET 报告)

方面数据/结论
BD-rate gain相比无 CCP:可达 -1.5% ~ -3.0%(色度平均)
编码时间增加+3% ~ +8%,主要来自 RDO 测试多个候选
内存需求需缓存历史参数、亮度残差图
改进方向
- 快速模式决策:提前终止低效候选测试
- 自适应候选数量(纹理简单则减少)
- 使用 CNN 预测最佳 β 初始值

六、相关提案参考(真实 JVET 文档)

提案编号内容概要
JVET-Z0058提出基于亮度残差的色度预测增强方法
JVET-AC0067引入 CCP Merge 模式及候选列表结构
JVET-AD0047优化历史缓存管理与去重机制
JVET-AE0082快速算法:基于 SATD 成本剔除无效候选

总结

项目内容
名称CCP Merge Prediction Candidates
用途复用历史跨分量预测参数,减少信号开销
候选来源空间相邻、时间同位、历史缓存、默认项
构建流程收集 → 去重 → 排序 → 截断
最大数量通常为 5
传输方式仅传索引ccp_merge_idx
解码同步双方独立重建,确保一致性
优势提升编码效率,降低比特率
挑战复杂度高,需平衡速度与收益
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 15:37:38

2025可观测平台选型指南:全球领先厂商综合对比与推荐

引言:为什么企业需要可观测平台? 随着数字化转型深入,企业IT系统日益复杂,微服务、容器化、多云架构成为常态。传统监控手段已难以实现对系统状态的全面洞察。根据Gartner预测,到2027年,超过50%的企业将依…

作者头像 李华
网站建设 2026/2/24 5:18:11

数字世界的“骨架”:一篇文章教会你查看目录树形结构

📁 数字世界的“骨架”:一篇文章教会你查看目录树形结构无论你使用哪种操作系统,目录树都是文件世界的骨架,掌握了它,你就掌握了数字世界的导航图🌳 先来认识一下:什么是目录树? 想象…

作者头像 李华
网站建设 2026/2/20 2:29:28

70、深入探究 Linux 系统安全技术

深入探究 Linux 系统安全技术 1. 用户账户监控 用户账户常被用于对系统的恶意攻击,攻击者可能通过未经授权访问现有账户、创建新的虚假账户或留下账户以便日后访问。为避免此类安全问题,监控用户账户至关重要。 1.1 检测假冒新账户和特权 未经适当授权创建的账户应被视为…

作者头像 李华
网站建设 2026/2/15 7:32:30

EtherCAT主站协议栈EC-Master在ROS(机器人操作系统)中的应用

机器人操作系统(ROS)是一个开源框架和软件库集合,专门用于简化机器人应用的开发。尽管名称中含“操作系统”,但ROS并非像Windows或Linux那样的真正操作系统,而是通常被称为元操作系统或中间件层。它通常运行在宿主操作…

作者头像 李华