FFmpeg  4.0
Macros | Functions | Variables
motion_estimation.c File Reference
#include "motion_estimation.h"

Go to the source code of this file.

Macros

#define COST_MV(x, y)
 
#define COST_P_MV(x, y)
 

Functions

void ff_me_init_context (AVMotionEstContext *me_ctx, int mb_size, int search_param, int width, int height, int x_min, int x_max, int y_min, int y_max)
 
uint64_t ff_me_cmp_sad (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int x_mv, int y_mv)
 
uint64_t ff_me_search_esa (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_tss (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_tdls (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_ntss (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_fss (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_ds (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_hexbs (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_epzs (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 
uint64_t ff_me_search_umh (AVMotionEstContext *me_ctx, int x_mb, int y_mb, int *mv)
 

Variables

static const int8_t sqr1 [8][2] = {{ 0,-1}, { 0, 1}, {-1, 0}, { 1, 0}, {-1,-1}, {-1, 1}, { 1,-1}, { 1, 1}}
 Copyright (c) 2016 Davinder Singh (DSM_) <ds.mudhar<.com> More...
 
static const int8_t dia1 [4][2] = {{-1, 0}, { 0,-1}, { 1, 0}, { 0, 1}}
 
static const int8_t dia2 [8][2] = {{-2, 0}, {-1,-1}, { 0,-2}, { 1,-1}, { 2, 0}, { 1, 1}, { 0, 2}, {-1, 1}}
 
static const int8_t hex2 [6][2] = {{-2, 0}, {-1,-2}, {-1, 2}, { 1,-2}, { 1, 2}, { 2, 0}}
 
static const int8_t hex4 [16][2]
 

Macro Definition Documentation

◆ COST_MV

#define COST_MV (   x,
 
)
Value:
do {\
cost = me_ctx->get_cost(me_ctx, x_mb, y_mb, x, y);\
if (cost < cost_min) {\
cost_min = cost;\
mv[0] = x;\
mv[1] = y;\
}\
} while(0)

Definition at line 31 of file motion_estimation.c.

Referenced by ff_me_search_esa().

◆ COST_P_MV

#define COST_P_MV (   x,
 
)
Value:
if (x >= x_min && x <= x_max && y >= y_min && y <= y_max)\
COST_MV(x, y);

Definition at line 41 of file motion_estimation.c.

Referenced by ff_me_search_ds(), ff_me_search_epzs(), ff_me_search_fss(), ff_me_search_hexbs(), ff_me_search_ntss(), ff_me_search_tdls(), ff_me_search_tss(), and ff_me_search_umh().

Function Documentation

◆ ff_me_init_context()

void ff_me_init_context ( AVMotionEstContext me_ctx,
int  mb_size,
int  search_param,
int  width,
int  height,
int  x_min,
int  x_max,
int  y_min,
int  y_max 
)

Definition at line 45 of file motion_estimation.c.

Referenced by config_input().

◆ ff_me_cmp_sad()

uint64_t ff_me_cmp_sad ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int  x_mv,
int  y_mv 
)

Definition at line 59 of file motion_estimation.c.

Referenced by ff_me_init_context().

◆ ff_me_search_esa()

uint64_t ff_me_search_esa ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 77 of file motion_estimation.c.

Referenced by search_mv().

◆ ff_me_search_tss()

uint64_t ff_me_search_tss ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 96 of file motion_estimation.c.

Referenced by search_mv().

◆ ff_me_search_tdls()

uint64_t ff_me_search_tdls ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 127 of file motion_estimation.c.

Referenced by search_mv().

◆ ff_me_search_ntss()

uint64_t ff_me_search_ntss ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 159 of file motion_estimation.c.

Referenced by search_mv().

◆ ff_me_search_fss()

uint64_t ff_me_search_fss ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 212 of file motion_estimation.c.

Referenced by search_mv().

◆ ff_me_search_ds()

uint64_t ff_me_search_ds ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 244 of file motion_estimation.c.

Referenced by search_mv(), and var_size_bme().

◆ ff_me_search_hexbs()

uint64_t ff_me_search_hexbs ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 299 of file motion_estimation.c.

Referenced by search_mv().

◆ ff_me_search_epzs()

uint64_t ff_me_search_epzs ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 332 of file motion_estimation.c.

Referenced by filter_frame(), and search_mv().

◆ ff_me_search_umh()

uint64_t ff_me_search_umh ( AVMotionEstContext me_ctx,
int  x_mb,
int  y_mb,
int mv 
)

Definition at line 373 of file motion_estimation.c.

Referenced by filter_frame(), and search_mv().

Variable Documentation

◆ sqr1

const int8_t sqr1[8][2] = {{ 0,-1}, { 0, 1}, {-1, 0}, { 1, 0}, {-1,-1}, {-1, 1}, { 1,-1}, { 1, 1}}
static

Copyright (c) 2016 Davinder Singh (DSM_) <ds.mudhar<.com>

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition at line 23 of file motion_estimation.c.

Referenced by ff_me_search_fss(), ff_me_search_ntss(), and ff_me_search_tss().

◆ dia1

const int8_t dia1[4][2] = {{-1, 0}, { 0,-1}, { 1, 0}, { 0, 1}}
static

◆ dia2

const int8_t dia2[8][2] = {{-2, 0}, {-1,-1}, { 0,-2}, { 1,-1}, { 2, 0}, { 1, 1}, { 0, 2}, {-1, 1}}
static

Definition at line 25 of file motion_estimation.c.

Referenced by ff_me_search_ds().

◆ hex2

const int8_t hex2[6][2] = {{-2, 0}, {-1,-2}, {-1, 2}, { 1,-2}, { 1, 2}, { 2, 0}}
static

Definition at line 26 of file motion_estimation.c.

Referenced by ff_me_search_hexbs(), and ff_me_search_umh().

◆ hex4

const int8_t hex4[16][2]
static
Initial value:
= {{-4,-2}, {-4,-1}, {-4, 0}, {-4, 1}, {-4, 2},
{ 4,-2}, { 4,-1}, { 4, 0}, { 4, 1}, { 4, 2},
{-2, 3}, { 0, 4}, { 2, 3}, {-2,-3}, { 0,-4}, { 2,-3}}

Definition at line 27 of file motion_estimation.c.

Referenced by ff_me_search_umh().