/usr/include/schroedinger-1.0/schroedinger/schrometric.h is in libschroedinger-dev 1.0.11-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | #ifndef SCHRO_METRIC_H
#define SCHRO_METRIC_H
#include <schroedinger/schroutils.h>
#include <schroedinger/schroframe.h>
#include <limits.h>
SCHRO_BEGIN_DECLS
typedef struct _SchroMetricScan SchroMetricScan;
typedef struct _SchroMetricInfo SchroMetricInfo;
#ifdef SCHRO_ENABLE_UNSTABLE_API
#define SCHRO_LIMIT_METRIC_SCAN 42
struct _SchroMetricInfo {
SchroFrame *frame;
SchroFrame *ref_frame;
int block_width[3];
int block_height[3];
int h_shift[3];
int v_shift[3];
int (*metric) (SchroMetricInfo *info, int ref_x, int ref_y,
int dx, int dy);
int (*metric_right) (SchroMetricInfo *info, int ref_x, int ref_y,
int dx, int dy);
int (*metric_bottom) (SchroMetricInfo *info, int ref_x, int ref_y,
int dx, int dy);
int (*metric_corner) (SchroMetricInfo *info, int ref_x, int ref_y,
int dx, int dy);
};
struct _SchroMetricScan {
SchroFrame *frame;
SchroFrame *ref_frame;
int block_width;
int block_height;
int x, y;
int ref_x, ref_y;
int scan_width;
int scan_height;
int gravity_scale;
int gravity_x, gravity_y;
int use_chroma;
/* output */
uint32_t metrics[SCHRO_LIMIT_METRIC_SCAN*SCHRO_LIMIT_METRIC_SCAN];
uint32_t chroma_metrics[SCHRO_LIMIT_METRIC_SCAN*SCHRO_LIMIT_METRIC_SCAN];
};
#define SCHRO_METRIC_INVALID INT_MAX
int schro_metric_absdiff_u8 (uint8_t *a, int a_stride, uint8_t *b,
int b_stride, int width, int height);
int schro_metric_haar (uint8_t *src1, int stride1, uint8_t *src2, int stride2,
int width, int height);
int schro_metric_haar_const (uint8_t *data, int stride, int dc_value,
int width, int height);
int schro_metric_abssum_s16 (int16_t *data, int stride, int width, int height);
int schro_metric_sum_u8 (uint8_t *data, int stride, int width, int height);
void schro_metric_scan_do_scan (SchroMetricScan *scan);
int schro_metric_scan_get_min (SchroMetricScan *scan, int *dx, int *dy
, uint32_t* chroma_metric);
void schro_metric_scan_setup (SchroMetricScan *scan, int dx, int dy, int dist
, int use_chroma);
int schro_metric_get (SchroFrameData *src1, SchroFrameData *src2, int width, int height);
int schro_metric_get_biref (SchroFrameData *fd, SchroFrameData *src1,
int weight1, SchroFrameData *src2, int weight2, int shift, int width,
int height);
int schro_metric_get_dc (SchroFrameData *src, int value, int width, int height);
void schro_metric_info_init (SchroMetricInfo *info, SchroFrame *frame,
SchroFrame *ref_frame, int block_width, int block_height);
int schro_metric_fast_block (SchroMetricInfo *info, int x, int y,
int dx, int dy);
int schro_metric_fast_subsuperblock (SchroMetricInfo *info, int x, int y,
int dx, int dy);
int schro_metric_fast_superblock (SchroMetricInfo *info, int x, int y,
int dx, int dy);
#endif
SCHRO_END_DECLS
#endif
|