我一直致力于寻找一种更快的方法来将向量的内容与 [R,R,R,...,G,G,G,...,B,B,B 形式的数据交错,...] 到 [R,G,B,R,G,B,R,G,B,...]。目前我有这段代码,对于大小为 (1024*1024*3) 的向量运行大约需要 60-200ms,但如果可能的话,我需要它在 10ms 范围内。我尝试过一些函数方法,但除非我做了一些非常错误的事情,否则它们会将时间增加到 500-700 毫秒。
static TILE_LENGTH: usize = 1024 * 1024;
let channels = vec![0; TILE_LENGTH * 3];
let mut tile = Vec::with_capacity(TILE_LENGTH * 3);
for i in 0..TILE_LENGTH {
tile.push(channels[i]);
tile.push(channels[i + (TILE_LENGTH)]);
tile.push(channels[i + (TILE_LENGTH * 2)]);
}
Run Code Online (Sandbox Code Playgroud) rust ×1