| 
    FFmpeg
    
   | 
 
#include <float.h>#include "libavutil/avassert.h"#include "libavutil/imgutils.h"#include "libavutil/opt.h"#include "libavutil/pixdesc.h"#include "libavcodec/avfft.h"#include "avfilter.h"#include "filters.h"#include "formats.h"#include "framesync.h"#include "internal.h"#include "video.h"Go to the source code of this file.
Data Structures | |
| struct | ThreadData | 
| Used for passing data between threads.  More... | |
| struct | PosCode | 
| struct | PosPairCode | 
| struct | SliceContext | 
| struct | BM3DContext | 
Macros | |
| #define | MAX_NB_THREADS 32 | 
| #define | OFFSET(x) offsetof(BM3DContext, x) | 
| #define | FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM | 
| #define | SQR(x) ((x) * (x)) | 
Enumerations | |
| enum | FilterModes { BASIC, FINAL, NB_MODES } | 
Functions | |
| AVFILTER_DEFINE_CLASS (bm3d) | |
| static int | query_formats (AVFilterContext *ctx) | 
| static int | do_search_boundary (int pos, int plane_boundary, int search_range, int search_step) | 
| static int | search_boundary (int plane_boundary, int search_range, int search_step, int vertical, int y, int x) | 
| static int | cmp_scores (const void *a, const void *b) | 
| static double | do_block_ssd (BM3DContext *s, PosCode *pos, const uint8_t *src, int src_stride, int r_y, int r_x) | 
| static double | do_block_ssd16 (BM3DContext *s, PosCode *pos, const uint8_t *src, int src_stride, int r_y, int r_x) | 
| static void | do_block_matching_multi (BM3DContext *s, const uint8_t *src, int src_stride, int src_range, const PosCode *search_pos, int search_size, float th_mse, int r_y, int r_x, int plane, int jobnr) | 
| static void | block_matching_multi (BM3DContext *s, const uint8_t *ref, int ref_linesize, int y, int x, int exclude_cur_pos, int plane, int jobnr) | 
| static void | block_matching (BM3DContext *s, const uint8_t *ref, int ref_linesize, int j, int i, int plane, int jobnr) | 
| static void | get_block_row (const uint8_t *srcp, int src_linesize, int y, int x, int block_size, float *dst) | 
| static void | get_block_row16 (const uint8_t *srcp, int src_linesize, int y, int x, int block_size, float *dst) | 
| static void | basic_block_filtering (BM3DContext *s, const uint8_t *src, int src_linesize, const uint8_t *ref, int ref_linesize, int y, int x, int plane, int jobnr) | 
| static void | final_block_filtering (BM3DContext *s, const uint8_t *src, int src_linesize, const uint8_t *ref, int ref_linesize, int y, int x, int plane, int jobnr) | 
| static void | do_output (BM3DContext *s, uint8_t *dst, int dst_linesize, int plane, int nb_jobs) | 
| static void | do_output16 (BM3DContext *s, uint8_t *dst, int dst_linesize, int plane, int nb_jobs) | 
| static int | filter_slice (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) | 
| static int | filter_frame (AVFilterContext *ctx, AVFrame **out, AVFrame *in, AVFrame *ref) | 
| static int | config_input (AVFilterLink *inlink) | 
| static int | activate (AVFilterContext *ctx) | 
| static int | process_frame (FFFrameSync *fs) | 
| static av_cold int | init (AVFilterContext *ctx) | 
| static int | config_output (AVFilterLink *outlink) | 
| static av_cold void | uninit (AVFilterContext *ctx) | 
Variables | |
| static const AVOption | bm3d_options [] | 
| static const AVFilterPad | bm3d_outputs [] | 
| AVFilter | ff_vf_bm3d | 
| #define MAX_NB_THREADS 32 | 
| #define OFFSET | ( | x | ) | offsetof(BM3DContext, x) | 
| #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM | 
| enum FilterModes | 
| AVFILTER_DEFINE_CLASS | ( | bm3d | ) | 
      
  | 
  static | 
      
  | 
  static | 
Definition at line 194 of file vf_bm3d.c.
Referenced by search_boundary().
      
  | 
  static | 
Definition at line 219 of file vf_bm3d.c.
Referenced by block_matching_multi(), and do_search_boundary().
      
  | 
  static | 
Definition at line 224 of file vf_bm3d.c.
Referenced by do_block_matching_multi().
      
  | 
  static | 
Definition at line 231 of file vf_bm3d.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 252 of file vf_bm3d.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 273 of file vf_bm3d.c.
Referenced by block_matching_multi().
      
  | 
  static | 
Definition at line 311 of file vf_bm3d.c.
Referenced by block_matching().
      
  | 
  static | 
Definition at line 351 of file vf_bm3d.c.
Referenced by filter_slice().
      
  | 
  static | 
Definition at line 368 of file vf_bm3d.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 379 of file vf_bm3d.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 641 of file vf_bm3d.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 668 of file vf_bm3d.c.
Referenced by config_input().
      
  | 
  static | 
Definition at line 696 of file vf_bm3d.c.
Referenced by blend_frame(), and filter_frame().
      
  | 
  static | 
Definition at line 739 of file vf_bm3d.c.
Referenced by activate(), and process_frame().
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
Definition at line 882 of file vf_bm3d.c.
Referenced by config_output().
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
      
  | 
  static | 
| AVFilter ff_vf_bm3d | 
 1.8.17