FFmpeg sws_scale分析2
每个滤波器定义为:
对称性:length一般为奇数,coeff以中心为轴左右对称。
sws_scale库里定义了3种初始滤波器。
在网上没有看到有关SwsFilter的讨论,看FFMpeg代码,总结下面的分析结果。
typedef struct SwsFilter {
SwsVector *lumH; // 亮度水平处理
SwsVector *lumV; // 亮度垂直处理
SwsVector *chrH; // 色度水平处理
SwsVector *chrV; // 色度垂直处理
} SwsFilter;
一般都是2维水平和垂直按照相同的处理系数来滤波。
每个滤波器定义为:
typedef struct SwsVector {
double *coeff; // 滤波器系数
int length; // 滤波器长度
} SwsVector;
一般滤波器具有归一化:length个coeff之和等于1;
对称性:length一般为奇数,coeff以中心为轴左右对称。
sws_scale库里定义了3种初始滤波器。
1. 高斯模糊 Gaussian Blur
SwsVector *sws_getGaussianVec(double variance, double quality);
//variance就是σ。quality=3.0。
const int length = (int)(variance * quality &#