TI中文支持网
TI专业的中文技术问题搜集分享网站

8168 h264 编码问题

hi, all!

            capture捕获1952*1472的数据进行h264编码,发现图像被一层绿色覆盖(如图)。

            如果捕获的是1952*2048大小的数据就不会有问题。

           做了下实验高度1472~2048,越靠近2048绿色的范围就越小。

           问下怎么能去掉那个绿色?谢谢!

yueping Tian:

补充下, A8直接读出capture捕获的yuv,使用elecard看,yuv是正常的,没有绿色的。

Chris Meng:

回复 yueping Tian:

你好,

你能获得一下编码前的YUV420sp数据么?

据我了解elecard的yuv工具是不能看yuv420sp的图像的。

yueping Tian:

回复 Chris Meng:

en elecard 不能看yuv420sp 但可以看yuv420p, 从captrue得到yuv420sp转换成yuv420, 使用elecard发现yuv是对的

Chris Meng:

回复 yueping Tian:

你好,

请问你的编码器使用的是哪个版本的?

你能否配置maxWidth=2560,再编码看看,是否有同样的问题?

yueping Tian:

回复 Chris Meng:

DVRRDK04.00.00.01 DM8168-EVM REL.500.V.H264AVC.E.IVAHD.02.00.04.01 在什么地方设置maxWidth?

Chris Meng:

回复 yueping Tian:

你好,

encLink_h264.c

static Int enclink_h264_set_static_params(IH264ENC_Params * staticParams,                                          EncLink_AlgCreateParams *                                          algCreateParams){    /* Initialize default values for static params */    *staticParams = H264ENC_TI_PARAMS;

    /* Both width & height needs to be align with 2 bytes */    staticParams->videnc2Params.maxHeight =                  VpsUtils_align(algCreateParams->maxHeight, 2);

    staticParams->videnc2Params.maxWidth =                  VpsUtils_align(algCreateParams->maxWidth, 16);  –》修改为2560

yueping Tian:

回复 Chris Meng:

case1: capture -> ipcFrameOut -> ipcFrameIn(A8),  A8保存yuv420数据

case2: capture ->ipcOutM3 ->ipcInM3 -> enc -> ipcBitsOut -> ipcBitsIn       a8保存h264数据

capture 捕获的是1952*1920的数据,  在captureLink_drv.c中输出uv值:

1248             {1249                 pFrame = frameList.frames[frameId];1250 #if 11251               int mm = 0;1252               for (mm =0; mm < 1952 * 8; mm+=16)1253               {1254                   Vps_printf("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",1255                           *((unsigned char*)pFrame->addr[0][1] + mm),1256                           *((unsigned char*)pFrame->addr[0][1] + mm+1),1257                           *((unsigned char*)pFrame->addr[0][1] + mm+2),1258                           *((unsigned char*)pFrame->addr[0][1] + mm+3),1259                           *((unsigned char*)pFrame->addr[0][1] + mm+4),1260                           *((unsigned char*)pFrame->addr[0][1] + mm+5),1261                           *((unsigned char*)pFrame->addr[0][1] + mm+6),1262                           *((unsigned char*)pFrame->addr[0][1] + mm+7),1263                           *((unsigned char*)pFrame->addr[0][1] + mm+8),1264                           *((unsigned char*)pFrame->addr[0][1] + mm+9),1265                           *((unsigned char*)pFrame->addr[0][1] + mm+10),1266                           *((unsigned char*)pFrame->addr[0][1] + mm+12),1267                           *((unsigned char*)pFrame->addr[0][1] + mm+13),1268                           *((unsigned char*)pFrame->addr[0][1] + mm+14),1269                           *((unsigned char*)pFrame->addr[0][1] + mm+14));1270               }1271               Vps_printf("—————————-end \n");1272               Vps_printf("—————————-end \n");1273 #endif发现case1 和case2输出的数值不一样

yueping Tian:

回复 Chris Meng:

你好! maxWidth 改2560也不行,还是老样子

Chris Meng:

回复 yueping Tian:

你好,

你之前说YUV是对的是基于case1获得的yuv是么?

你说case2输出uv和case1不一样,这是可能的,你摄像头的数据总会有点变化的。你是发现case2的有特别不一样么?

IPNC上有使用IVAHD编码10MP的数据,使用的是4kx4k的编码选项,我之前让你把maxWidth加大就是想看看4kx4k的编码选项是否有问题,应该可以可以的。所以我还是怀疑是输入数据的问题。

赞(0)
未经允许不得转载:TI中文支持网 » 8168 h264 编码问题
分享到: 更多 (0)