Part Number:TDA2SX
想使用 vpeSwMs link 实现这样一个功能:把五个摄像头拍摄的图像,缩放后拼接在一起;不过录制出来的录像是杂乱无章的,想了解一下是哪里出了问题,谢谢!
其中:
链路设计是这样的:
Capture -> Dup
Dup -> Select_front -> Merge -> Gate_enc -> Encode -> Null (A15)
Dup -> Gate_avm -> Select_avm -> VPE_avm -> DesaySync_avm -> Alg_DmaSwMs_avm -> Merge
参数设置是这样的:
static Void desay_APA_SetAvmVpeDmaMosaicPrms(
AlgorithmLink_VpeSwMsCreateParams *pPrm,
UInt32 inputChannelNum,
UInt32 channelWidth,
UInt32 channelHeight
)
{
UInt32 winId,chId;
AlgorithmLink_VpeSwMsLayoutWinInfo *pWinInfo;
//UInt32 widthFactor, heightFactor;
pPrm->maxOutBufWidth = channelWidth;
pPrm->maxOutBufHeight = channelHeight;
pPrm->numOutBuf = 10;
pPrm->numInputCh = inputChannelNum;
pPrm->initLayoutParams.numWin = inputChannelNum;
pPrm->initLayoutParams.outBufWidth = pPrm->maxOutBufWidth;
pPrm->initLayoutParams.outBufHeight = pPrm->maxOutBufHeight;
pPrm->enableOut[0] = TRUE;
/* assuming 5Ch layout */
for(winId=0; winId<pPrm->initLayoutParams.numWin; winId++)
{
pWinInfo = &pPrm->initLayoutParams.winInfo[winId];
pWinInfo->chId = winId;
pWinInfo->inStartX = 0;
pWinInfo->inStartY = 0;
switch(winId)
{
case 0:
{
pWinInfo->width = SystemUtils_floor(channelWidth/3,16);
pWinInfo->height = channelHeight/2;
pWinInfo->outStartX = 0;
pWinInfo->outStartY = 0;
}
break;
case 1:
{
pWinInfo->width = SystemUtils_floor(channelWidth/3,16);
pWinInfo->height = channelHeight/2;
pWinInfo->outStartX = 0;
pWinInfo->outStartY = channelHeight/2;
}
break;
case 2:
{
pWinInfo->width = SystemUtils_floor(channelWidth/3,16);
pWinInfo->height = channelHeight;
pWinInfo->outStartX = SystemUtils_floor(channelWidth/3,16);
pWinInfo->outStartY = 0;
}
break;
case 3:
{
pWinInfo->width = SystemUtils_floor(channelWidth/3,16);
pWinInfo->height = channelHeight/2;
pWinInfo->outStartX = SystemUtils_floor(channelWidth/3,16)*2;
pWinInfo->outStartY = 0;
}
break;
case 4:
{
pWinInfo->width = SystemUtils_floor(channelWidth/3,16);
pWinInfo->height = channelHeight/2;
pWinInfo->outStartX = SystemUtils_floor(channelWidth/3,16)*2;
pWinInfo->outStartY = channelHeight/2;
}
break;
default:
break;
}
}
for(chId = 0; chId < inputChannelNum; chId++)
{
pWinInfo = &pPrm->initLayoutParams.winInfo[chId];
pPrm->chParams[chId].outParams[0].width
= pWinInfo->width ;
pPrm->chParams[chId].outParams[0].height
= pWinInfo->height ;
pPrm->chParams[chId].outParams[0].dataFormat
= SYSTEM_DF_YUV420SP_UV;
pPrm->chParams[chId].outParams[0].numBufsPerCh = 10;
/* Setting Crop parameter */
pPrm->chParams[chId].scCropCfg.cropStartX = 0;
pPrm->chParams[chId].scCropCfg.cropStartY = 0;
pPrm->chParams[chId].scCropCfg.cropWidth = channelWidth;
pPrm->chParams[chId].scCropCfg.cropHeight = channelHeight;
}
}
Cherry Zhou:
您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!
,
henry o:
thanks.
,
Cherry Zhou:
Due to the U.S. Thanksgiving holiday, please expect delayed responses during the week of 11/22. Thanks for your comprehension!
,
henry o:
get it, and wish you have a good Thanksgiving day!
,
Cherry Zhou:
sorry for the delayed response. Please confirm back if you made progress on your code debug. If still pending, we will forward to the driver team.
,
henry o:
thanks for your kindly help. for this quetion, I've made some trials but failed. if you could use vpeSWMS link to do the same job of vpe link and dmaSWMS link at the same time, that would be helpful. since it costs many memory space when using vpe and dmaSwMS links.thanks and have a good day.
,
Cherry Zhou:
Hey,
We have asked help from the engineer and due to some reasons, the response will be delayed. Sorry for any inconvenience.
,
henry o:
Hey, Cherry,thanks for your help, this question is for optimization about reducing allocated memory and running links. you and your colleague have provided many supports.
thanks and have a good day.
,
Cherry Zhou:
Hi Henry,
Below is the link on E2E forum, you could take a look at it:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1055049/tda2sx-the-usage-and-the-parameter-setting-of-algorithmlink_vpeswms