## schromotionest schromotionest |

## Synopsis

                        SchroMotionEst;
                        SchroMotionScan;
                        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

### SchroMotionEst

    typedef struct {
      SchroEncoderFrame *encoder_frame;
      SchroParams *params;

      double lambda;

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

      SchroMotion *motion;

      SchroBlock *sblocks;

      //SchroMotionField *downsampled_mf[2][8];
      int scan_distance;

      int badblocks;
      double hier_score;
    } SchroMotionEst;

### SchroMotionScan

    typedef struct _SchroMotionScan SchroMotionScan;

### SchroBlock

    typedef struct {
      int valid;
      int error;
      int entropy;

      double score;

      SchroMotionVector mv[4][4];
    } SchroBlock;

### schro_motionest_free ()

    void                schro_motionest_free                (SchroMotionEst *me);

`me` : |

### schro_motionest_new ()

    SchroMotionEst *    schro_motionest_new                 (SchroEncoderFrame *frame);

`frame` : |
Returns : |

### schro_motionest_superblock_get_metric ()

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

`me` : |
`block` : |
`i` : |
`j` : |
Returns : |

### schro_block_check ()

    int                 schro_block_check                   (SchroBlock *block);

`block` : |
Returns : |

### schro_block_fixup ()

    void                schro_block_fixup                   (SchroBlock *block);

`block` : |