VVC帧内预测硬件加速:MCM技术与系数平均优化
1. VVC帧内预测的硬件加速挑战视频编码技术在过去几十年里经历了飞速发展从早期的H.261到如今的VVCVersatile Video Coding每一代标准的推出都带来了显著的压缩效率提升。作为H.265/HEVC的继任者VVC在相同视觉质量下能够实现高达44%的比特率节省但代价是计算复杂度的大幅增加——在某些情况下甚至达到HEVC的十倍之多。在VVC编码器的各个模块中帧内预测Intra Prediction无疑是计算最为密集的环节之一。与帧间预测不同帧内预测仅利用当前帧内已编码区域的信息来预测当前块的内容这对于I帧编码和随机访问场景至关重要。VVC的帧内预测包含93种方向性模式directional modes每种模式都需要通过插值滤波器计算预测值涉及大量参考样本与固定系数之间的乘法运算。1.1 帧内预测的计算瓶颈VVC的帧内预测计算可以抽象为以下公式p(x)(y) Clip(((Σ(f[k][i]*r[xi0i])32) 6)其中f[k][i]代表插值滤波器系数r[xi0i]是参考样本值。对于每个4×4的预测块这需要执行16次上述计算每次计算涉及4个乘法操作对应4抽头滤波器。考虑到VVC支持从4×4到64×64的多种块大小以及需要对所有93种模式进行测试以选择最优预测计算量呈爆炸式增长。传统实现中这些乘法操作会直接映射到硬件乘法器单元。但在ASIC设计中乘法器会占用大量芯片面积并消耗可观功耗。以一个典型的65nm工艺节点为例一个32位乘法器的面积可能相当于500-1000个2输入NAND门而功耗更是比简单逻辑门高出数个数量级。1.2 MCM技术的潜力与局限多常数乘法Multiple Constant Multiplication, MCM技术为解决这一问题提供了可能。MCM的核心思想是当其中一个乘数为固定常数时乘法操作可以通过一系列加法、移位和取反操作来实现。例如乘以常数13可以分解为(x3) (x2) x这只需要两次移位和两次加法。在VVC帧内预测场景中插值滤波器系数是预先定义的常数VVC标准中定义了57个不同的系数因此非常适合采用MCM技术。通过精心设计的MCM块可以显著减少硬件资源占用。然而57个不同系数意味着需要设计57套独立的MCM逻辑这仍然会导致较大的电路面积。提示在FPGA实现中由于现代FPGA都内置了专用乘法器单元DSP块直接使用硬件乘法器往往更为高效。因此MCM技术主要适用于ASIC设计场景。2. 基于系数平均的近似计算方法2.1 核心创新思路本文提出的创新方法基于一个关键观察相邻方向的插值滤波器系数往往具有相似性。通过将一组连续的系数替换为它们的平均值可以显著减少需要处理的独立系数数量从而简化MCM块的设计。具体实现上我们定义了一个参数n表示进行平均的系数数量。例如当n2时每两个相邻系数被替换为它们的平均值当n4时每四个相邻系数被替换为它们的平均值以此类推直到n32即所有57个系数被替换为32个代表值这种近似处理仅在率失真代价RD-cost计算阶段使用最终的比特流生成仍采用精确预测。这种分离处理确保了编码器与标准解码器的兼容性因为解码器必须严格按照VVC标准实现。2.2 数学形式化描述设原始系数集合为C {c1, c2, ..., c57}对于给定的n值近似后的系数集合C计算如下C {avg(c1..cn), avg(cn1..c2n), ..., avg(c(k-1)*n1..c57)}其中k ceil(57/n)avg表示算术平均运算。图1展示了n取不同值时第三列部分系数的近似结果。图1不同n值下的系数平均效果以第三列部分系数为例2.3 硬件架构设计基于这一思想我们设计了六种不同的硬件架构精确MCM架构使用全部57个系数无近似处理近似MCM架构n2,4,8,16,32五种变体传统乘法器架构作为基准对比每种MCM架构包含四个MCM块对应4抽头滤波器的四个位置每个块计算参考样本与相应列所有系数的乘积。例如MCM块2计算r[2]与系数16、51、19、27的乘积前两个来自fC滤波器后两个来自fG滤波器。关键优化技术包括共享计算当不同模式需要相同乘积时复用计算结果零/一跳过乘以0直接输出0乘以1直接输出输入并行处理支持同时计算多个样本的预测值3. 硬件实现细节3.1 MCM块生成流程我们采用Spiral软件工具自动生成优化的MCM块Verilog代码。Spiral实现了先进的算法能够找到给定常数集的最优加法-移位组合。生成流程如下提取VVC标准定义的所有插值滤波器系数根据n值进行系数平均得到简化后的系数集使用Hcub启发式算法为每个系数生成计算序列识别并合并不同系数间的公共子表达式输出优化后的Verilog描述3.2 并行处理架构为提升吞吐量我们设计了支持并行样本预测的架构变体。核心思想是当多个预测样本共享相同的参考样本时可以复用MCM块的计算结果。例如在预测4个相邻样本时它们可能共用部分参考样本这些样本的MCM计算结果可以被多个预测单元共享。图2展示了并行处理架构的概念图2支持并行样本预测的MCM架构这种设计特别适合VVC的大尺寸编码单元如64×64因为大块内相邻样本的预测往往依赖相同的参考样本。4. 实验结果与分析4.1 编码效率影响我们在10个标准测试视频序列上评估了近似方法对编码效率的影响使用BD-Rate作为度量指标。BD-Rate表示在相同视觉质量下近似方法相比精确方法所需的额外比特率。表1总结了不同n值下的平均BD-Rate增长近似级别(n)平均BD-Rate增长(%)最大BD-Rate增长(%)20.371.240.561.881.072.9161.333.7322.684.3结果显示即使在使用最激进的近似n32时平均BD-Rate增长也控制在2.68%以内这在许多实时应用中是可以接受的折衷。4.2 硬件资源节省使用Cadence Genus工具在65nm工艺下进行综合结果如表2所示架构类型单元面积(门等效)总面积(512单元)总功耗(mW)传统乘法器650332,800384精确MCM1,748894,976818MCM(n16)520266,240402MCM(n32)290148,480257关键发现传统乘法器面积小于精确MCM这与预期不符说明对于大量不同系数MCM的优势被抵消近似MCM显著减少资源占用n32时面积减少44%功耗趋势与面积类似n32时降低33%4.3 并行架构优势表3对比了不同并行度下的面积节省并行度MCM(n8)面积传统乘法器面积节省比例1304,800288,000-5.8%4289,116284,1921.7%8279,876280,5120.2%16276,088278,9601.0%32276,032277,8160.6%虽然整体节省幅度不大但MCM架构在高度并行时展现出优势特别是在n8配置下最大可节省1784个门等效面积。5. 实际应用建议基于实验结果我们给出以下设计建议能效优先场景采用n32近似可节省44%面积和33%功耗代价是2.68% BD-Rate增长质量优先场景采用n8近似仅1.07% BD-Rate增长同时仍有22%面积节省并行度选择对于1080p30fps实时编码建议采用8-16并行度在80MHz时钟下可满足时序要求系数存储优化近似方法减少了需要存储的系数数量可以节省ROM面积特别值得注意的是低分辨率视频1080p受近似影响更大建议这类应用采用更保守的近似参数n≤8。6. 扩展与优化方向在实际芯片设计中还可以考虑以下优化混合近似策略对高频重要系数使用更精确的近似小n对低频系数使用更激进的近似动态可配置n值根据视频内容特性动态调整近似程度结合其他近似计算技术如降低内部计算精度、简化clip操作等工艺适配在更先进工艺节点如28nm以下评估因为乘法器与MCM的面积/功耗比可能变化我们在测试中发现Campfire和RitualDance等视频序列对近似很不敏感这提示可能可以开发基于内容的自适应近似策略进一步优化编码效率与硬件成本的平衡。