I made some test and found out that they are "butterfly" operations like in idct :
Code: Select all
vbtf1.q/p vd, vs :
{
vd[i+0] = vs[i+0] + vs[i+1];
vd[i+1] = vs[i+0] - vs[i+1];
}
vbtf2.q vd, vs :
{
vd[0] = vs[0] + vs[2];
vd[1] = vs[1] + vs[3];
vd[2] = vs[0] - vs[2];
vd[3] = vs[1] - vs[3];
}
vbtf2.q vd, vs[0, 2, 1, 3] :
{
vd[0] = vs[0] + vs[1];
vd[1] = vs[2] + vs[3];
vd[2] = vs[0] - vs[1];
vd[3] = vs[2] - vs[3];
}