在osdLink_alg.c中,怎么提取Y元素? 形式是422还是420?
UInt8 *pFrameAddrU;
pFrameAddrU = pSwOsdObj->videoWindowAddr;
pFrameAddrU += 8;
Int16 wx, wy;
Int16 count = 0;
for (wx = 0; wx < pSwOsdObj->videoWindowPrm.height; wx++) {
UInt8 data, dataafter;
for (wy = 0; wy < pSwOsdObj->videoWindowPrm.width; wy++) {
if (wx%1000==0 && wy%1000 == 0) {
Vps_printf("wx-%d, wy-%d , data0-%d, data1-%d, data2-%d, data3-%d, data4-%d, data5-%d, data6-%d, data7-%d\n",
wx, wy, *pFrameAddrU, *(pFrameAddrU+8),*(pFrameAddrU+16),*(pFrameAddrU+24),*(pFrameAddrU+32),
*(pFrameAddrU+40),*(pFrameAddrU+48),*(pFrameAddrU+56));
}
data = *pFrameAddrU;
//*pFrameAddrU = 0x80;
dataafter = *pFrameAddrU;
if ((data > dataafter) || (data < dataafter)) {
count +=1;
if (count%1000 == 1) {
Vps_printf(" xxyyzz: count-%d, wx-%d, wy-%d, addr-0x%x, data before-%d, data after-%d, next data-%d\n",
count, wx, wy, pFrameAddrU, data, dataafter, *pFrameAddrU);
}
}
pFrameAddrU += 16;
}
}
这段代码中得data 与 dataafter不是一样的吗?
还有pFrameAddrU +=8 是什么意思?
Chris Meng:
你好,
请问你使用的软件版本是?我在dvr rdk 4.01里面没有搜索到相关代码。
如果是h264enc之前的OSD,那YUV的格式应该是YUV420的,因为h264编码需要YUV420的数据,而SWOSD是在编码前给视频加上OSD信息。
user5813816:
回复 Chris Meng:
您好,用的是DVRRDK_04.01.00.02 代码在osdLink_alg.c中有
1 现在想将addr[0][0]中Y像素转化成图片用于我的算法
2 将FVID2_Fram 转化成 Image 格式
void convertFV2Image(FVID2_Frame* input, Image* output);
void convertImage2FV(Image* input, FVID2_Frame* output);
不知道从何下手