快速摘要:
我有一个24位值的数组.关于如何快速将各个24位数组元素扩展为32位元素的任何建议?
细节:
我正在使用DirectX 10中的Pixel Shaders实时处理传入的视频帧.一个绊脚石是我的帧是从具有24位像素的捕获硬件(作为YUV或RGB图像)进入的,但是DX10需要32位像素纹理.因此,在将其加载到GPU之前,我必须将24位值扩展为32位.
我真的不在乎我将剩余的8位设置为什么,或者输入的24位是否在32位值中 - 我可以在像素着色器中修复所有这些.但我需要非常快速地将24位转换为32位.
我对SIMD SSE操作并不十分熟悉,但从粗略的一瞥看起来我看起来不能使用它们进行扩展,因为我的读写操作大小不一样.有什么建议?还是我按顺序按摩这个数据集?
这感觉非常愚蠢 - 我使用像素着色器进行并行处理,但在此之前我必须执行顺序逐像素操作.我一定错过了一些明显的东西......