帧内错误隐藏算法集合:
1、空间加权像素平均算法(加权像素平均插值算法)
P0就是丢失的宏块,灰色的是最近的像素点。
2、方向插值:
(1)边缘检测及梯度计算:
使用Sobel算子,计算的是Sx和Sy(水平边缘和垂直边缘)下图中,a,b,c,d是缺失的宏块,灰色的是参考像素。
Sobel算子如下,这是用来进行边缘检测的:
对于Q要特别说明,它是灰色像素点的领域3*3矩阵。
这样我们就得到了该点的角度。然后我们分类:
这样角度就分成1~8,用k表示。
领域的点用i表示,也是1~8。
计算式:
在计算梯度时,我们设置一个阈值,认为大于某阈值的就是相关像素点(比如60)
我们要为每个相邻块Si [k] 取出最大的那个值并作为该邻域块的最佳边缘方向。
(2)丢失宏块的方向加权与插值:对于a块的插值,取编号为2,3,5,8的相邻块边缘方向作为a块方向加权的候选方向集,以此类推出b,c,d。
对a进行插值的时候,使用R=S i[k] * d
S i [k]是邻块最佳边缘方向对应的像素个数,d是丢失宏尺寸减去宏丢失块像素到相邻块的距离。
以上摘自:基于H_264_AVC改进的时空域错误掩藏算法_吴明坤
(3)自适应帧内错误隐藏算法:结合前两种算法的优点,我们可以在某种条件下采用更好的做法来进行错误隐藏。
采用方向熵来区别:
方向熵的计算:
当H为3的时候最大,这时候方向梯度每个方向大小都一样。H越大说明越不清晰,适合采用加权平均算法;反之采用方向加权插值。一般阈值为2.8。