您好,
我注意到 DM8127中 H.264的低分辨率编码。 但有些问题让我很长时间感到困惑。我按照 G 部分数据表中的步骤操作。 编解码器版本为2.0。演示版本为"500.V.H264AVC。E.IVAHD.02.00\IVAHD_001\Client\test\src"
问题1. 层输入
1)我想将720*576逐片视频编码为720*16..所以我设置 params->videnc2Params.inputDataMode = IVIDEO_NUMROWS,params->videnc2Params.numInputDataUnits = 1,Dynamic_params->videnc2DynamicParams.getDataFxn。
在 getDataFxn 中、我按如下方式设置参数。
/*------------------ *
/*假定每个块的基地址继续并且编解码器*/
/*如果由于其他一些限制而更改,则不起作用*/
/*------------------ *
dataSyncDesc->baseAddr =空;
dataSyncDesc->numBlocks = 1;//gConfigOr.numBlocks[block_count];
dataSyncDesc->varBlockSizeFlag = 1;
dataSyncDesc->blocksizes =(XDAS_Int32*) Input_BlockSizeArray;
当我发送一个帧进行编码时、getDataFxn 被调用36次。 我认为是对的。 但是,为什么 baseAddr 为 NULL,如果我通过片(720*16)捕获帧,我如何发送 baseAddr。它是 Y addr 还是 UV addr? 在数据表中、没有提到每个切片的 addr 会继续、但在演示中提到了它。 由于 addr 的对齐方式,可能是每个层 addr 都不会继续,因此我如何处理它? 如何将帧发送到编解码器中?
模式1
/******* /
是的
/******** /
/******* /
UV0
/******** /
/******* /
Y1
/******** /
/******* /
UV1
/******** /
模式2
/******* /
是的
/******** /
/******* /
Y1
/******** /
/******* /
UV0
/******** /
/******* /
UV1
/******** /
问题2. 层输出
我希望编解码器输出帧(720*576)逐层,即6*720*16。 因此、我将参数设置如下。
Params->videnc2Params.outputDataMode = IVIDEO_SLICEMODE
params->videnc2Params.numOutputDataUnits = 6.
Dynamic_params->videnc2DynamicParams.putDataFxn = H264ETest_DataSyncPutDataFxn;
在数据表中,当6个 NALU 输出时,putDataFxn 应该被调用一次。但它不起作用,每次调用 putDataFxn 时,都会输出一个整帧,但不会是6个 NALU。 这是值得注意的其他重要事项吗?
顺便说一下、如果您可以为我提供一个用于切片输入和切片输出的完整参数、我将不胜感激。 非常感谢。