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

dm6446 h264 编码结果异常

硬件环境:dm6446

h264编码库:使用ti提供的h264venc_ti.l64P库文件

源图像画面:

h264编码后输出图像画面:

参数配置如下:

以下参数内容用于算法创建:

VIDENC1_Params  init_params;

init_params.size= sizeof(VIDENC1_Params);init_params.encodingPreset= XDM_DEFAULT;init_params.rateControlPreset= IVIDEO_LOW_DELAY;init_params.maxHeight= 288;init_params.maxWidth= 352;init_params.maxFrameRate= 25000; // fps * 1000init_params.maxBitRate= 512000; //码率init_params.dataEndianness= XDM_BYTE; // XDM_LE_32: 32 bit little endian streaminit_params.maxInterFrameInterval= 0;init_params.inputChromaFormat= XDM_YUV_422ILE; // uyvyinit_params.inputContentType= IVIDEO_PROGRESSIVE;init_params.reconChromaFormat= XDM_CHROMA_NA; // not required

以下参数内容用于参数动态配置:
VIDENC1_DynamicParams dynamic_params;

dynamic_params.size = sizeof(IVIDENC1_DynamicParams);
dynamic_params.inputHeight = 288; 
dynamic_params.inputWidth = 352; 
dynamic_params.refFrameRate = 25000;
dynamic_params.targetFrameRate = 25000;
dynamic_params.targetBitRate = 512000;
dynamic_params.intraFrameInterval = 30;
dynamic_params.generateHeader = XDM_DECODE_AU;
dynamic_params.captureWidth = 0; 
dynamic_params.forceIFrame = IVIDEO_NA_FRAME;

在输出的h264结果中,画面下方出现异常,请问这是什么原因导致的?或者我可以从哪些方面入手去考虑这个问题呢?

Ternence_Hsu:

你好;

会不会是你在添加TI logo的时候,YUV数据处理的时候,出现错误的

感觉不是编码的问题,而是你在添加swosd的时候导致的,建议查查这部分;

eric eric3:

回复 Ternence_Hsu:

你好:

     感谢回复。logo不是我添加上去的,我调用ti 提供的h264venc_ti.l64P来进行编码的,出来的结果中就有带logo了。h264venc_ti.l64P内部实现不可见的,我只能配置参数和输入视频。

Ternence_Hsu:

回复 eric eric3:

是不是添加TI logo 后编码就出现这个错误了?

eric eric3:

回复 Ternence_Hsu:

不知道,ti logo是在库里面自动添加的,没得选择不使用那个logo的,我没有试过没有那个logo的。

Ternence_Hsu:

回复 eric eric3:

你好,

你看你上面编码错误的,加了logo的下面的数据就错了,

我想应当是logo 添加的时候,yuv数据处理导致的错误

eric eric3:

回复 Ternence_Hsu:

如果我使用的是360 * 288分辨率,格式照样是yuv422I的,得出的结果是这样的

刚好是下面那个地方有,上面大半截的地方错乱了。。。。

Ternence_Hsu:

回复 eric eric3:

如果你上面没有TI logo的时候,编码是不是就对了呢 ???

eric eric3:

回复 Ternence_Hsu:

主要是我尝试不了没有logo的时候,我有的只是一个现成的h264库文件,二进制的,我只能对该库进行调用,不能修改它的实现。

我觉得我用352 x 288分辨率的时候,下面四分一的图像会错乱,但是我用360 x 288分辨率的时候,上面四分之三的图形会错乱,是不是意味着只是编码参数配置有问题呢?logo应该是后期加上去的,应该没多大关系吧?目前也动不了那个logo

eric eric3:

回复 Ternence_Hsu:

第一张源图像是编码 前 的yuv图像,不是编码 后 的h264数据的。

eric eric3:

回复 Ternence_Hsu:

你好,很感谢你这么耐心的回答,我找到我的问题了,我输入的图形是yuv422I格式的,但是输入缓冲的时候,我输入的缓存大小写少了,导致了后面一截数据没地方缓存(由于运行环境是dsp,内存越界了也没有报错),所以最后我写下来的数据,后面一截也是没有的。

刚才我说的输入360 x 288分辨率的图像时,其实下面一部分数据也是没有的,只是我先前使用elecard那个软件打开过同一张图像的原始图像,所以下半截数据一直保存在那里,也正是这点提示了我,让我确定问题应该是出在参数部分。

在此再次感谢你为我付出的宝贵时间,谢谢~~~

赞(0)
未经允许不得转载:TI中文支持网 » dm6446 h264 编码结果异常
分享到: 更多 (0)