ESP32 motion
|
#include "motion.h"
#include <math.h>
#include <assert.h>
#include <string.h>
#include "esp_heap_caps.h"
#include "esp_log.h"
Functions | |
void | uninit (MotionEstContext *ctx) |
bool | init_context (MotionEstContext *ctx) |
Init & allocate context ctx accordingly to the method used. More... | |
bool | motion_estimation (MotionEstContext *ctx, uint8_t *img_prev, uint8_t *img_cur) |
motion estimation wrapper More... | |
uint64_t | me_comp_sad (MotionEstContext *me_ctx, int x_mb, int y_mb, int x_mv, int y_mv) |
omputes the Sum of Absolute Difference (SAD) for the given two blocks More... | |
motion header
bool init_context | ( | MotionEstContext * | ctx | ) |
Init & allocate context ctx accordingly to the method used.
ctx | : motion estimation context object |
uint64_t me_comp_sad | ( | MotionEstContext * | me_ctx, |
int | x_mb, | ||
int | y_mb, | ||
int | x_mv, | ||
int | y_mv | ||
) |
omputes the Sum of Absolute Difference (SAD) for the given two blocks
\[ SAD = \sum_{i=0}^{mbSize}\sum_{j=0}^{mbSize} |Cur_{ij}-Ref_{ij}| \]
Used as cost function for EPZS algorithm.
me_ctx | |
x_mb | curr frame x located MB (MacroBlock) |
y_mb | curr frame y located MB |
x_mv | prev frame x located MB |
y_mv | prev frame y located MB |
bool motion_estimation | ( | MotionEstContext * | ctx, |
uint8_t * | img_prev, | ||
uint8_t * | img_cur | ||
) |
motion estimation wrapper
Example usage :
ctx | Motion vectors will be saved in (MotionVector16_t) ctx->mv_table[0] |
void uninit | ( | MotionEstContext * | ctx | ) |