首先说明,dm8168不支持fmo。 依据: 1. ti官方用户手册h264_encoder_hdvicp2_userguide.pdf (http://download.csdn.net/detail/gzengh/8288223) 文件中有几个地方都写到了fmo, 1.1. 第74页.table 4-4. h.264 encoder error statuses 里面有一个错误名为ih2
首先说明,dm8168不支持fmo。
依据:
1. ti官方用户手册 h264_encoder_hdvicp2_userguide.pdf (http://download.csdn.net/detail/gzengh/8288223)
文件中有几个地方都写到了fmo,
1.1. 第74页. table 4-4. h.264 encoder error statuses 里面有一个错误名为ih264enc_profile_incomplaint_fmo_setting,描述为
bit 2 - profile in-complaint fmo setting. this error is applicable when fmo is enabled but ividenc2_params::profile is not set as ih264_baseline_profile.
就是编码档次和fmo设置不兼容,使能了fmo,却没有设置成baseline基本档次。
这个错误标志侧面反映出,假如该编码器支持fmo,那也只是baseline档次支持,(hdvicp2支持h264的baseline、main和high档次,不支持extended扩展档次)。
1.2. 第173页. table 4-13. default and supported values for ih264enc_fmocodingparams.
fmocodingpreset 参数的 supported value 是 ih264_fmocoding_none。然后后面几个参数支持的值都是ignore。
这里就等于明确的告诉我们目前版本不支持fmo。
1.3. 第158页. frequently asked questions的 5.4 algorithm related中
question:what are the profiles supported in this version of encoder?
answer:this version of encoder supports baseline, main and high profiles.fmo feature is not supported for baseline profile.
在1.1中说明了dm8168只可能在baseline档次支持fmo,现在这个问答里写了其baseline也不支持fmo,所以再次证明dm8168不支持fmo。
2. omx_ti_index.h(http://download.csdn.net/detail/gzengh/8288377)文件声明了几乎所有相关的结构体。
/* h264 encoder indices*/ omx_ti_indexparamvideodatasyncmode, //!唯独omx_ti_indexparamvideoadvancedfmo,后面没有 //!3. 我自己通过改写omx中encode例程,试图使用fmo,尝试多种方法,都没有成功。当时也是看到sdk代码里已经具备了各种fmo相关代码及参数,所以才抱着侥幸心理尝试,应该还是hdvicp2硬核编码目前不支持。
——————————————————————————————
其实我前些天写得一篇文章里面有张图,就是各种开源h264软件程序支持特性,文章链接:http://blog.csdn.net/gzengh/article/details/40512021
只有vsofts支持fmo。图里没写jm8.6,jm8.6作为最完善的h264技术测试软件,是支持fmo的。