将像素拆包转换为卤化物算法



我有一个缓冲区,里面装满了模式UY1VY2中的像素数据……我想把它解压到模式Y1UVY2UV中的另一个缓冲区时。。。所以基本上,如果我有一个向量的数据,我想要下面的操作

for(x=0; x<sizeof(in_buffer); x+=4)
out_buffer.push_back(in_buffer[x+1]+ in_buffer[x+0] + in_buffer [x+2: x+4]) ---> [Y1,U,V,Y2,U,V]

这种操作可以用卤化物实现吗?谢谢

当然,这样的东西应该会起作用:

out_buffer(c, x) = in_buffer(mux(c, {1, 0, c}), x);

然后在计划中,您将使用set_boundsunroll来确保c循环实际上不必检查c的值。有关更多详细信息,请参阅本教程:https://halide-lang.org/tutorials/tutorial_lesson_16_rgb_generate.html

最新更新