| 
    FFmpeg
    
   | 
 
#include "motion_estimation.h"#include "libavcodec/mathops.h"#include "libavutil/avassert.h"#include "libavutil/common.h"#include "libavutil/motion_vector.h"#include "libavutil/opt.h"#include "libavutil/pixdesc.h"#include "libavutil/pixelutils.h"#include "avfilter.h"#include "formats.h"#include "internal.h"#include "video.h"Go to the source code of this file.
Data Structures | |
| struct | Cluster | 
| struct | Block | 
| struct | Pixel | 
| struct | Frame | 
| struct | MIContext | 
Macros | |
| #define | ME_MODE_BIDIR 0 | 
| Copyright (c) 2014-2015 Michael Niedermayer michaelni@gmx.at Copyright (c) 2016 Davinder Singh (DSM_) <ds.mudhar<.com>  More... | |
| #define | ME_MODE_BILAT 1 | 
| #define | MC_MODE_OBMC 0 | 
| #define | MC_MODE_AOBMC 1 | 
| #define | SCD_METHOD_NONE 0 | 
| #define | SCD_METHOD_FDIFF 1 | 
| #define | NB_FRAMES 4 | 
| #define | NB_PIXEL_MVS 32 | 
| #define | NB_CLUSTERS 128 | 
| #define | ALPHA_MAX 1024 | 
| #define | CLUSTER_THRESHOLD 4 | 
| #define | PX_WEIGHT_MAX 255 | 
| #define | COST_PRED_SCALE 64 | 
| #define | OFFSET(x) offsetof(MIContext, x) | 
| #define | FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM | 
| #define | CONST(name, help, val, unit) { name, help, 0, AV_OPT_TYPE_CONST, {.i64=val}, 0, 0, FLAGS, unit } | 
| #define | ADD_PRED(preds, px, py) | 
| #define | ADD_PIXELS(b_weight, mv_x, mv_y) | 
Enumerations | |
| enum | MIMode { MI_MODE_DUP = 0, MI_MODE_BLEND = 1, MI_MODE_MCI = 2 } | 
Functions | |
| AVFILTER_DEFINE_CLASS (minterpolate) | |
| static int | query_formats (AVFilterContext *ctx) | 
| static uint64_t | get_sbad (AVMotionEstContext *me_ctx, int x, int y, int x_mv, int y_mv) | 
| static uint64_t | get_sbad_ob (AVMotionEstContext *me_ctx, int x, int y, int x_mv, int y_mv) | 
| static uint64_t | get_sad_ob (AVMotionEstContext *me_ctx, int x, int y, int x_mv, int y_mv) | 
| static int | config_input (AVFilterLink *inlink) | 
| static int | config_output (AVFilterLink *outlink) | 
| static void | search_mv (MIContext *mi_ctx, Block *blocks, int mb_x, int mb_y, int dir) | 
| static void | bilateral_me (MIContext *mi_ctx) | 
| static int | var_size_bme (MIContext *mi_ctx, Block *block, int x_mb, int y_mb, int n) | 
| static int | cluster_mvs (MIContext *mi_ctx) | 
| static int | inject_frame (AVFilterLink *inlink, AVFrame *avf_in) | 
| static int | detect_scene_change (MIContext *mi_ctx) | 
| static void | bidirectional_obmc (MIContext *mi_ctx, int alpha) | 
| static void | set_frame_data (MIContext *mi_ctx, int alpha, AVFrame *avf_out) | 
| static void | var_size_bmc (MIContext *mi_ctx, Block *block, int x_mb, int y_mb, int n, int alpha) | 
| static void | bilateral_obmc (MIContext *mi_ctx, Block *block, int mb_x, int mb_y, int alpha) | 
| static void | interpolate (AVFilterLink *inlink, AVFrame *avf_out) | 
| static int | filter_frame (AVFilterLink *inlink, AVFrame *avf_in) | 
| static av_cold void | free_blocks (Block *block, int sb) | 
| static av_cold void | uninit (AVFilterContext *ctx) | 
Variables | |
| static const uint8_t | obmc_linear32 [1024] | 
| static const uint8_t | obmc_linear16 [256] | 
| static const uint8_t | obmc_linear8 [64] | 
| static const uint8_t | obmc_linear4 [16] | 
| static const uint8_t *const | obmc_tab_linear [4] | 
| static const AVOption | minterpolate_options [] | 
| static const AVFilterPad | minterpolate_inputs [] | 
| static const AVFilterPad | minterpolate_outputs [] | 
| AVFilter | ff_vf_minterpolate | 
| #define ME_MODE_BIDIR 0 | 
Copyright (c) 2014-2015 Michael Niedermayer michaelni@gmx.at 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 35 of file vf_minterpolate.c.
Referenced by config_input(), inject_frame(), and interpolate().
| #define ME_MODE_BILAT 1 | 
Definition at line 36 of file vf_minterpolate.c.
Referenced by config_input(), inject_frame(), and interpolate().
| #define MC_MODE_OBMC 0 | 
Definition at line 38 of file vf_minterpolate.c.
| #define MC_MODE_AOBMC 1 | 
Definition at line 39 of file vf_minterpolate.c.
Referenced by bilateral_obmc(), and inject_frame().
| #define SCD_METHOD_NONE 0 | 
Definition at line 41 of file vf_minterpolate.c.
| #define SCD_METHOD_FDIFF 1 | 
Definition at line 42 of file vf_minterpolate.c.
Referenced by config_input(), and detect_scene_change().
| #define NB_FRAMES 4 | 
Definition at line 44 of file vf_minterpolate.c.
Referenced by config_input(), filter_frame(), inject_frame(), and uninit().
| #define NB_PIXEL_MVS 32 | 
Definition at line 45 of file vf_minterpolate.c.
| #define NB_CLUSTERS 128 | 
Definition at line 46 of file vf_minterpolate.c.
Referenced by cluster_mvs(), and inject_frame().
| #define ALPHA_MAX 1024 | 
Definition at line 48 of file vf_minterpolate.c.
Referenced by bidirectional_obmc(), bilateral_obmc(), interpolate(), and set_frame_data().
| #define CLUSTER_THRESHOLD 4 | 
Definition at line 49 of file vf_minterpolate.c.
Referenced by cluster_mvs().
| #define PX_WEIGHT_MAX 255 | 
Definition at line 50 of file vf_minterpolate.c.
Referenced by var_size_bmc().
| #define COST_PRED_SCALE 64 | 
Definition at line 51 of file vf_minterpolate.c.
Referenced by get_sad_ob(), get_sbad(), and get_sbad_ob().
| #define OFFSET | ( | x | ) | offsetof(MIContext, x) | 
Definition at line 192 of file vf_minterpolate.c.
| #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM | 
Definition at line 193 of file vf_minterpolate.c.
| #define CONST | ( | name, | |
| help, | |||
| val, | |||
| unit | |||
| ) | { name, help, 0, AV_OPT_TYPE_CONST, {.i64=val}, 0, 0, FLAGS, unit } | 
Definition at line 194 of file vf_minterpolate.c.
| #define ADD_PRED | ( | preds, | |
| px, | |||
| py | |||
| ) | 
Definition at line 398 of file vf_minterpolate.c.
Referenced by search_mv().
| #define ADD_PIXELS | ( | b_weight, | |
| mv_x, | |||
| mv_y | |||
| ) | 
Definition at line 835 of file vf_minterpolate.c.
Referenced by bidirectional_obmc(), bilateral_obmc(), and var_size_bmc().
| enum MIMode | 
| Enumerator | |
|---|---|
| MI_MODE_DUP | |
| MI_MODE_BLEND | |
| MI_MODE_MCI | |
Definition at line 129 of file vf_minterpolate.c.
| AVFILTER_DEFINE_CLASS | ( | minterpolate | ) | 
      
  | 
  static | 
Definition at line 230 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 250 of file vf_minterpolate.c.
Referenced by bilateral_obmc(), and inject_frame().
      
  | 
  static | 
Definition at line 275 of file vf_minterpolate.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 301 of file vf_minterpolate.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 327 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 388 of file vf_minterpolate.c.
Definition at line 405 of file vf_minterpolate.c.
Referenced by bilateral_me(), and inject_frame().
Definition at line 547 of file vf_minterpolate.c.
Referenced by inject_frame().
Definition at line 568 of file vf_minterpolate.c.
Referenced by cluster_mvs().
      
  | 
  static | 
Definition at line 630 of file vf_minterpolate.c.
Referenced by inject_frame().
      
  | 
  static | 
Definition at line 720 of file vf_minterpolate.c.
Referenced by filter_frame().
      
  | 
  static | 
Definition at line 807 of file vf_minterpolate.c.
Referenced by filter_frame().
Definition at line 851 of file vf_minterpolate.c.
Referenced by interpolate().
Definition at line 899 of file vf_minterpolate.c.
Referenced by interpolate().
      
  | 
  static | 
Definition at line 955 of file vf_minterpolate.c.
Referenced by interpolate().
      
  | 
  static | 
Definition at line 992 of file vf_minterpolate.c.
Referenced by interpolate().
      
  | 
  static | 
Definition at line 1054 of file vf_minterpolate.c.
Referenced by filter_frame().
      
  | 
  static | 
Definition at line 1136 of file vf_minterpolate.c.
Definition at line 1186 of file vf_minterpolate.c.
Referenced by uninit().
      
  | 
  static | 
Definition at line 1194 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 53 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 88 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 107 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 118 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 125 of file vf_minterpolate.c.
Referenced by bidirectional_obmc(), and bilateral_obmc().
      
  | 
  static | 
Definition at line 196 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 1215 of file vf_minterpolate.c.
      
  | 
  static | 
Definition at line 1225 of file vf_minterpolate.c.
| AVFilter ff_vf_minterpolate | 
Definition at line 1234 of file vf_minterpolate.c.
 1.8.6