我想将颜色模式从yuv444
转换为yuyv422
。
目前,我正在使用c
转换哪个更慢。
有谁知道如何使用arm NEON
转换颜色模式?
以下是使用c
的代码:
{
unsigned int i, j;
unsigned int y1, y2, cb, cr, i_rows;
const unsigned char *p;
p = src;
for (i = 0; i < height; i++) {
i_rows = i*2*width;
for (j = 0; j < 2*width; j += 4) {
y1 = p[0];
cb = (p[1] + p[4] + 1) >> 1;
y2 = p[3];
cr = (p[2] + p[5] + 1) >> 1;
*(dst + i_rows + j ) = y1;
*(dst + i_rows + j+1) = cb;
*(dst + i_rows + j+2) = y2;
*(dst + i_rows + j+3) = cr;
p += 6;
}
}
}
答案 0 :(得分:0)
试试这个:
vld3.8 {d16, d18, d20}, [pSrc]!
vld3.8 {d17, d19, d21}, [pSrc]!
vtrn.8 q9, q10
vrhadd.u8 q9, q10, q9
vst2.8 {q8, q9}, [pDst]!
以上就是我在主循环中放入的内容。其余的由你决定。