CABAC加速器架构:视频压缩的高效解决方案
1. CABAC实现问题概述
在探讨CABAC加速器架构之前,有必要先了解CABAC实现中的主要问题。对单个二进制位(bin)进行编码或解码时,涉及五个内存操作,并且存在两个阻碍并行和流水线方法的阻塞依赖关系。
第一个依赖与上下文模型更新有关。只有当前二进制位的上下文模型更新完成后,才能开始处理下一个二进制位,因为可能会使用相同的上下文模型对下一个二进制位进行编码或解码。
第二个依赖涉及区间范围(R)和基数(L)的更新。在重归一化阶段,必须对这两个参数进行重归一化,此过程涉及多个分支和可变数量的周期。只有完成重归一化后,才能开始处理下一个二进制位,因为下一个二进制位的概率估计取决于当前的区间范围。
这些强依赖关系是加速器设计中的主要挑战,为此提出了许多解决方案。
2. 不同类型的CABAC加速器架构
2.1 直接数据路径/控制器加速器
这种方法依赖于基于软件实现算法中的数据流,在一定程度上加速了计算,但没有充分利用应用算法的并行特性和硬件加速方法的改进潜力。在一些CABAC加速器中,处理是按二进制位顺序进行的,没有探索多二进制位并行处理的可能性,因此性能最高只能达到1个二进制位/周期。例如,未优化的简单串行硬件实现对单个二进制位进行编码需要多达14个周期。通过预取和简单并行等优化技术,可将处理一个二进制位的时间缩短至5个周期。还有人提出了一种用于相邻SE的有限状态机(FSM)和内存方案,解码吞吐量为0.33 - 0.50个二进制位/周期,但只能以30fps的速度解码CIF视频。
2.2 并行硬件加速器
直
超级会员免费看
订阅专栏 解锁全文
1094

被折叠的 条评论
为什么被折叠?



