JVET-AJ0082

📄 提案名称:

EE2-2.19a: Multi-model Extrapolation-based Intra Prediction (MM-EIP)

多模型外推滤波帧内预测

提案编号:

  • JVET-AJ0082-v2
  • 作者单位:OPPO
  • 基础平台:ECM-14.0(VVC 实验参考软件)
  • 所属会议:36th JVET Meeting, Kemer, TR, Nov 2024

一、背景回顾:什么是 EIP?

在进入 MM-EIP 之前,先简要回顾原始的 EIP(Extrapolation filter-based Intra Prediction) 模式:

  • 使用一个 15-tap 线性滤波器对邻近已重建像素加权求和
  • 滤波器系数通过最小二乘法拟合得到
  • 预测按对角线顺序生成
  • 支持两种模式:
    • 本地推导:基于当前块周围样本训练滤波器
    • EIP Merge 模式:复用前序块的滤波器参数

虽然 EIP 能有效建模局部纹理,但使用单一滤波器难以适应复杂多变的图像结构(如边缘与平坦区域共存)。为此,本提案提出 MM-EIP:为不同上下文动态选择不同的滤波器模型


二、核心思想:为什么要引入"多模型"?

❓ 问题分析

传统 EIP 使用统一的滤波器模板去拟合所有类型的区域:

区域类型 是否适合单个滤波器
平滑渐变区 ✅ 可以较好建模
强边缘区 ✅ 可以捕捉跳变
混合区域(平滑+锐边相邻) ❌ 单一滤波器无法兼顾

例如:一个块中左侧是天空(缓变),右侧是建筑轮廓(陡变),若用同一组系数预测整个块,会导致部分区域失配。


✅ 解决方案:根据输入信号自适应切换两个独立滤波器

MM-EIP 将训练样本划分为两类,分别训练两个专用滤波器

  • Filter 1(Group1):适用于低强度/平滑区域
  • Filter 2(Group2):适用于高强度/边缘区域

然后根据当前预测位置的"参考值"决定使用哪一个模型。


三、MM-EIP 方法详解

🔧 整体流程概览

text 复制代码
开始
  ↓
当前 CU 启用 EIP 模式?
  ↓ 是
EIP-Merge 模式启用?
  ↓ 否 → 进入 MM-EIP 分支
  ↓
提取训练样本(来自上方/左侧邻域)
  ↓
对每个样本计算"reference value"
  ↓
与阈值 threshold 比较
  ↓
≤ threshold → 归入 Group1
> threshold → 归入 Group2
  ↓
分别构建两组自相关矩阵 R 和互相关向量 r
  ↓
解方程得两套滤波器系数:C1[] 和 C2[]
  ↓
预测阶段:根据当前位置的 reference 值选择对应滤波器
  ↓
生成最终预测块

四、关键技术步骤详解

步骤 1:定义"Reference Value"作为分类依据

什么是 Reference Value?

它是一个代表当前预测上下文特征的标量值,用于判断该位置属于哪种纹理类型。

提案中未明确说明具体形式,但通常可采用以下之一:

类型 说明
邻域平均亮度 如取左上 3×3 区域均值
梯度幅值 计算 Sobel 或 Prewitt 梯度大小
Laplacian 响应 检测是否为边缘点
直接用参考像素本身 如 TL、T[0]、L[0] 等

示例:reference = clip((T[-1]+T[0]+L[0])/3, minVal, maxVal)


步骤 2:设置分类阈值 threshold

  • 阈值可以是固定常数(如 128 for 8bit)
  • 或动态设定(如基于全局均值或中位数)

作用:将训练样本划分为两类:

  • Group1:reference ≤ threshold
  • Group2:reference > threshold

步骤 3:分组训练两个独立滤波器

对于每一组样本,单独执行标准 EIP 训练流程:

对于 Group1:

构建:

  • 自相关矩阵 \\mathbf{R}*1 = \\sum \\mathbf{t}*{1,i} \\cdot \\mathbf{t}_{1,i}\^T
  • 互相关向量 \\mathbf{r}*1 = \\sum \\mathbf{t}*{1,i} \\cdot d_i

求解:
c1=R1−1r1 \mathbf{c}_1 = \mathbf{R}_1^{-1} \mathbf{r}_1 c1=R1−1r1

得到第一套滤波器系数 C1_0, C1_1, ..., C1_{14}

对于 Group2:

同理:
c2=R2−1r2 \mathbf{c}_2 = \mathbf{R}_2^{-1} \mathbf{r}_2 c2=R2−1r2

得到第二套系数 C2_0, C2_1, ..., C2_{14}

⚠️ 注意:两个滤波器可以有不同的模板形状(offsetX, offsetY),也可相同


步骤 4:预测阶段动态选择模型

当对当前像素 (x, y) 进行预测时:

  1. 计算其对应的 reference_value

  2. 判断:

    • reference_value ≤ threshold → 使用 Filter 1
    • 否则 → 使用 Filter 2
  3. 应用对应公式:

pred(x,y)={∑i=014C1i⋅t(x−dx1i,y−dy1i)+C114×2bitDepth−1,if ref≤threshold∑i=014C2i⋅t(x−dx2i,y−dy2i)+C214×2bitDepth−1,otherwise \text{pred}(x, y) = \begin{cases} \displaystyle \sum_{i=0}^{14} C1_i \cdot t(x-\text{dx1}i, y-\text{dy1}i) + C1{14} \times 2^{\text{bitDepth}-1}, & \text{if } \text{ref} \leq \text{threshold} \\ \displaystyle \sum{i=0}^{14} C2_i \cdot t(x-\text{dx2}_i, y-\text{dy2}i) + C2{14} \times 2^{\text{bitDepth}-1}, & \text{otherwise} \end{cases} pred(x,y)=⎩ ⎨ ⎧i=0∑14C1i⋅t(x−dx1i,y−dy1i)+C114×2bitDepth−1,i=0∑14C2i⋅t(x−dx2i,y−dy2i)+C214×2bitDepth−1,if ref≤thresholdotherwise

注:末尾项 C_{14} \\times 2\^{\\text{bitDepth}-1} 可能表示偏置补偿(需结合代码确认)


五、语法与编码控制

✅ 新增语法元素

语法 含义
eip_flag 是否启用 EIP 模式(原有)
eip_merge_flag 是否使用继承模式(原有)
mm_eip_flag (隐含)仅当 EIP 开启且非 merge 模式时自动启用 MM-EIP

当前提案未显式传输 mm_eip_flag,而是将其作为 EIP 推导模式下的子分支处理


✅ 候选数量调整机制

为了不增加整体复杂度,提案规定:

"The number of derived EIP filter candidates are modified so that the total number of derived EIP filter candidates (including both EIP and MM-EIP) doesn't exceed the previous number."

即:

  • 原本可能生成 N 个传统 EIP 滤波器候选
  • 现在改为生成若干个普通 EIP + 若干个 MM-EIP 候选
  • 总数仍限制为 N

✅ 目的:保持编码器决策负担不变


✅ 滤波器模板尺寸限制

  • 最大模板大小设为 8×8
  • 控制训练复杂度,避免过大的支持区域影响效率

六、图示还原:MM-EIP 分类与预测机制

由于原文未提供清晰图示,我们根据描述还原关键示意图。

图 1:训练样本分类示意图

text 复制代码
Current Coding Unit (CU)
+-------------------------------------------+
|                                           |
|              Predicted Area               |
|                                           |
|        +--------------------+             |
|        |     Training       |             |
|        |      Samples       | ← From above/left
|        +--------------------+             |
|                                           |
+-------------------------------------------+
↑
Each training sample has a "reference value"

Classification:
┌──────────────────────┐    ┌──────────────────────┐
│   Group 1              │    │   Group 2              │
│   Low Intensity        │    │   High Intensity       │
│   ref ≤ threshold      │    │   ref > threshold      │
│                        │    │                        │
│  Use common pattern    │    │  Capture edge change   │
└────────────────────────┘    └────────────────────────┘

→ Train separate filters: Filter1 vs Filter2

图 2:预测阶段模型选择流程

text 复制代码
Predicting pixel at (x,y)
         ↓
Extract reference value (e.g., avg of neighbors)
         ↓
Compare with threshold
         ↓
    +-------------+
    ↓             ↓
≤ threshold      > threshold
    ↓             ↓
Use Filter 1     Use Filter 2
(C1 coefficients) (C2 coefficients)
    ↓             ↓
Apply extrapolation formula
         ↓
Generate pred(x,y)

七、解码端如何同步?

由于所有操作都基于公开规则(分类阈值、训练方法、滤波器结构),解码端可完全复现:

  1. 使用相同的参考值计算方式
  2. 使用相同的 threshold
  3. 在相同区域内提取训练样本并分类
  4. 分别训练两个滤波器
  5. 根据当前像素的 reference 决定使用哪个模型

✅ 不需要额外传输任何语法元素(如 use_filter_1_flag


八、总结:MM-EIP 的核心技术亮点

特性 说明
双模型架构 定义两个独立滤波器,分别适配不同纹理特性
上下文感知分类 基于"reference value"将样本划分为两组
分组训练 每组独立构建 R 矩阵和 r 向量,提升拟合精度
动态预测选择 每个像素根据上下文选择最优滤波器
零信令开销 无需新增标志位,复用 EIP 推导流程
兼容性强 可与 EIP Merge 模式共存,不影响其他工具

✅ 结论

本提案提出的 Multi-model EIP (MM-EIP) 方法是一种轻量级、高效益的增强型帧内预测技术。其核心做法是:

在传统 EIP 框架下,引入基于上下文的双模型机制

  • 将训练样本按"reference value"分为两类
  • 分别训练两个专用滤波器(Filter1 / Filter2)
  • 预测时根据当前像素的 context 动态选择合适的模型

这种方法显著提升了 EIP 对混合纹理区域的建模能力,同时保持了编解码一致性与低复杂度特性。


相关推荐
小咖自动剪辑4 天前
自动批量混剪视频软件配置流程
实时互动·音视频·语音识别·实时音视频·视频编解码
简鹿视频5 天前
图文详解视频转换音频mp3方法
实时音视频·视频编解码·格式工厂
霜雪i6 天前
ECM CCCM
视频编解码·h.266
聊天QQ:4877392787 天前
探索 L4 无人车自动驾驶系统方案:无代码的蓝图魅力
视频编解码
简鹿视频7 天前
mp4视频转换成avi格式攻略
ffmpeg·音视频·视频编解码·格式工厂
小咖自动剪辑9 天前
提升电商素材剪辑效率:多场景内容自动生成流程解析
人工智能·实时互动·音视频·语音识别·视频编解码
霜雪i9 天前
PU::getAffineMergeCand
视频编解码·h.266
询问QQ:48773927811 天前
基于Matlab的三坐标雷达目标跟踪数据融合程序:采用概率数据关联算法和EKF的轨迹展示
h.266
霜雪i14 天前
SbTMVP
视频编解码