ffmpeg中的idct解码算法
请问下 谁研究过ffmpeg中h264解码器的idct算法,我想请教下h264pred_template.c这个文件里的函数是怎么计算的,谢谢
我不明白的是:
他在idct的时候,为什么不是乘法运算,而是直接把数据依行或列的形式 累加上去呢,谢谢!
比如下面的函数:
static void FUNCC(pred4x4_vertical_add)(uint8_t *p_pix, const DCTELEM *p_block, int stride){
int i;
pixel *pix = (pixel*)p_pix;
const dctcoef *block = (const dctcoef*)p_block;
stride >>= sizeof(pixel)-1;
pix -= stride;
for(i=0; i<4; i++){
pixel v = pix[0];
pix[1*stride]= v += block[0]; //这里的操作就是把列的上一个数据+现在的数据等于结果,可是为什么这样操作呢,
pix[2*stride]= v += block[4];
pix[3*stride]= v += block[8];
pix[4*stride]= v + block[12];
pix++;
block++;
}
}