## schromotionest schromotionest |

## Synopsis

    struct              SchroMotionEst;
                        SchroMotionScan;
    struct              SchroBlock;
    void                schro_motionest_free                (SchroMotionEst *me);
    SchroMotionEst *    schro_motionest_new                 (SchroEncoderFrame *frame);
    int                 schro_motionest_superblock_get_metric
                                                            (SchroMotionEst *me,
                                                             SchroBlock *block,
                                                             int i,
                                                             int j);
    int                 schro_block_check                   (SchroBlock *block);
    void                schro_block_fixup                   (SchroBlock *block);

## Description

## Details

### struct SchroMotionEst

    struct SchroMotionEst {
      SchroEncoderFrame *encoder_frame;
      SchroParams *params;

      double lambda;

      SchroFrame *downsampled_src0[SCHRO_MAX_HIER_LEVELS];
      SchroFrame *downsampled_src1[SCHRO_MAX_HIER_LEVELS];

      SchroMotion *motion;

      int scan_distance;

      int badblocks;
      double hier_score;
    };

### SchroMotionScan

    typedef struct _SchroMotionScan SchroMotionScan;

### struct SchroBlock

    struct SchroBlock {
      int valid;
      int error;
      int entropy;

      double score;

      SchroMotionVector mv[4][4];
    };

### schro_motionest_free ()

    void                schro_motionest_free                (SchroMotionEst *me);

### schro_motionest_new ()

    SchroMotionEst *    schro_motionest_new                 (SchroEncoderFrame *frame);

### schro_motionest_superblock_get_metric ()

    int                 schro_motionest_superblock_get_metric
                                                            (SchroMotionEst *me,
                                                             SchroBlock *block,
                                                             int i,
                                                             int j);

### schro_block_check ()

    int                 schro_block_check                   (SchroBlock *block);

### schro_block_fixup ()

    void                schro_block_fixup                   (SchroBlock *block);