各位TI的专家,请教一个问题,关于DMPAC里面的DOF。
tda4的开发工具链里面有这样一个文件:ti-processor-sdk-rtos-j721e-evm-08_04_00_06/tiovx/kernels_j7/include/TI/j7_dmpac_dof.h
关于dof的数据结构是这样的:
/*!
* \brief The configuration data structure used by the
TIVX_KERNEL_DMPAC_DOF kernel.
*
* \ingroup group_vision_function_dmpac_dof
*/
typedef struct {
/*! Range [0, 62] Recommended = 48, 48
if horizontal_search_range is 191 then
(vertical_search_range[0] (upward) +
vertical_search_range[1] (downward) <= 112)
*/
uint16_t vertical_search_range[2];
/*! Range [0, 191] Recommended value = 191
if vertical_search_range[0] = vertical_search_range[1] = 62
then horizontal_search_range <= 170
*/
uint16_t horizontal_search_range;
/*! 0: Disabled; 1: Enable post-processing median filter [recommended] */
uint16_t median_filter_enable;
/*! Range [0, 31] recommended = 24 */
uint16_t motion_smoothness_factor;
/*! 0 = Motion neutral, 5x5 Census Transform
1 = Forward motion
2 = Reverse motion
3 = Motion neutral, 7x Census Transform */
uint16_t motion_direction;
/*! Predictor for the base image */
uint16_t base_predictor[2];
/*! Predictor for the intermediate pyramid level */
uint16_t inter_predictor[2];
/*! IIR filter alpha value recommended = 0x66 */
uint16_t iir_filter_alpha;
/*! Number of internal delay slots to use for applying previous flow vector
* output to temporal predictor. The use of this field and the valid values
* it can take is as explained below:
* - Range [0 TIVX_DMPAC_DOF_MAX_FLOW_VECTOR_DELAY]
* - This field is validated and used only if temporal predictor is ON. This
* is a pre-condition for all the cases below.
* 1) When pipelining is OFF, then this field must be set to 0. The understanding
* is that with this configuration, external delay object shall be used for
* providing the input flow vector.
* 2) When pipelining is ON and if an external delay object is used, then this
* field must be set to 0.
* 3) When pipelining is ON and if no external delay object is used, then this
* field must be set to a valid non-zero value.
*
* In case (3) above, the node stores pointers to the previous output flow vectors
* to be used as potential inputs later so it is important that under this configuration
* the higher level application does not alter the output buffer data in any way. Also, the
* node parameter must be configured with the buffer depth appropriately such that all the
* configured buffers are used and recycled during the pipelining operation.
*/
uint16_t flow_vector_internal_delay_num;
} tivx_dmpac_dof_params_t;
我对dof的这几个参数不是很明白:
1)vertical_search_range和horizontal_search_range是什么意思,从字面意思上看,它们是一个搜索范围,它们表达的是什么的搜索,是块匹配吗,能告知这两个参数的具体含义吗?
2)motion_smoothness_factor,从字面意思上看是运动平滑,这个参数是如何作用于算法的?在算法层面该如何理解?
3)motion_direction,从字面意思上看是运动的方向,不明白是什么意思。
4)iir_filter_alpha,这个iir又是在算法中发挥什么作用的?
简单说,我没找到TI关于DOF算法的详细说明文档,所以,根据公开文档和DOF相关的算法原理,我不知道TI的DOF算法的具体实现的原理,进而无法理解这几个参数是什么意思?
所以,能不能介绍一个相关的TI的文档,或者相应的paper,不然,我不知道在实践中应该如果对这些参数进行设置