H.264里的插值滤波器的理论基础

一下是一大神发的帖子,觉得写的比较好,就收集了。

昨晚上在群里和别人探讨了一下H.264里的插值滤波器的原理。在这里做一点总结。(写完以后回头看,发现写的十分罗嗦。懂信号理论的人可以速速浏览。)

插值与上采样

插值的过程从信号处理的角度其实就是一个上采样(提升空间采样频率)的过程。因此我们首先从信号处理的角度回顾一下上采样问题。下图为某一维信号上采样的例子:


### Farrow 插值滤波器理论 Farrow结构是一种灵活的多相滤波器设计,允许连续可变延迟。这种特性使得该结构非常适合于分数延时滤波以及重采样应用[^1]。 #### 数学基础 假设输入序列$x[n]$需要被插值得到任意位置$t$处的输出样本,则可以表示为: $$ y(t)=\sum_{n=-N}^{N}{h(n-t)x[n]} $$ 其中$h(\cdot)$代表理想低通内插核函数。然而,在实际操作中直接计算上述卷积并不高效;因此引入多项式逼近来简化这一过程。对于给定阶数$L$,采用拉格朗日或其他形式构建局部近似表达式如下所示: $$ H(z,\mu )=\sum _{k=0}^{L}\alpha_k(\mu)z^{-k}, \quad |\mu|<1 $$ 这$\mu=(t-\lfloor t\rfloor)-0.5$,即相对于最近整数索引偏移量减去一半单位长度作为参数化变量。 #### 实现方式 为了有效地实现基于Farrow架构的插值滤波器,通常会预先离线计算并存储系数矩阵$\{\alpha_k[\ell]\}$对应不同取样的$\mu_\ell$值。在线工作阶段仅需通过查表获取相应权重因子完成实时运算即可。具体流程涉及以下几个方面: - **预处理**:确定所需最大过渡带宽、阻带衰减值等性能指标基础上选定合适的原型窗型(如Kaiser),进而得到优化后的有限冲击响应(FIR)模板; - **分段拟合**:利用最小二乘法或者其他数值分析手段求解最优多项式的系数组成向量${\bf a}_i=[a_0,a_1,...,a_L]^T$关联各子区间边界点数据集$(m_i,y(m_i))$; - **运行期调整**:当接收到新的时间戳请求时,依据当前时刻相对最邻近参考刻度的位置关系选取恰当的一组权值执行加权累加得出最终估计结果。 ```matlab function yi = farrow_interp(x,t,L,alpha) % x: 输入信号 % t: 需要插值的时间轴坐标 % L: 多项式阶次 % alpha: 提前准备好的系数表格 n = length(x); m = floor(t); % 整数部分 if (m < 0 || m >= n-1), error('Time index out of range'); end mu = mod(t-m+0.5,1)-0.5; % 计算μ b = zeros(1,L+1); for k = 0:L, b(k+1) = polyval(alpha(:,k+1),mu); end yi = dot(b,x(m:m+L)); end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值