小编Orc*_*eum的帖子

Rust 中交错 RGB 通道(从 [R, R, G, G, B, B] 到 [R, G, B, R, G, B])的最快方法

我一直致力于寻找一种更快的方法来将向量的内容与 [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

0
推荐指数
1
解决办法
60
查看次数

标签 统计

rust ×1