65,206
社区成员
发帖
与我相关
我的任务
分享
DWORD* p = videoBuffer;
for(...) // 循环处理每一个像素
{
// 分拆。每次处理4个DWORD
DWORD cb0 = p[0] & 0x3FF; // 低10位
DWORD y1 = p[1] & 0x3FF;
DWORD cr2 = p[2] & 0x3FF;
DWORD y4 = p[3] & 0x3FF;
DWORD y0 = (p[0]>>10) & 0x3FF; // 中间10位
DWORD cb2 = (p[1]>>10) & 0x3FF;
DWORD y3 = (p[2]>>10) & 0x3FF;
DWORD cr4 = (p[3]>>10) & 0x3FF;
DWORD cr0 = (p[0]>>20) & 0x3FF; // 高10位
DWORD y2 = (p[1]>>20) & 0x3FF;
DWORD cb4 = (p[2]>>20) & 0x3FF;
DWORD y5 = (p[3]>>20) & 0x3FF;
// 其他处理:减法、乘法、加法、打包
// next
p += 4
}