📄 mot_est.h
字号:
/*!
********************************************************
*\file
* mot_est.h
*\brief
* interface for functions which is used for motion estimation.
*\date
* 12/6/2002
*
********************************************************/
#ifndef MOT_EST_H
#define MOT_EST_H
#include "HEnc.h"
//! grab vector
void grabVec(H263VencStatus *encoder, MCParam *MC, int BACKWARD);
//! find predictive MV
void FindPMV(MotionVector *MV[6][MBR+1][MBC+2], int x, int y, int *pmv0, int *pmv1, int block, int newgob, int half_pel);
//! find predictive MV for B picture
void FindPMV_B(MotionVector *MV[6][MBR+1][MBC+2], int x, int y,
int *pmv0, int *pmv1, int newgob, int half_pel,int BACKWARD);
//! FS search
void mv_search_fs(H263VencStatus *encoder, MCParam *MC, int x, int y, int blocksize, int BACKWARD);
//! MVFAST search
void mv_search_dmd(H263VencStatus *encoder, MCParam *MC, int x, int y, int blocksize, int BACKWARD);
//! Find half pel values of MV
void findhalfpel(H263VencStatus *encoder, MCParam *MC, int x, int y, int blocksize, int BACKWARD);
//! Set MV to zero
void zeroVec(MotionVector *MV);
//! choose mode
void choose_mode(H263VencStatus *encoder, MCParam *MC, int x, int y);
//! if the MV is zero
int ZeroVector(MotionVector *mv);
//! find neighbour MV
void FindNbrMV(MotionVector *MV[6][MBR+1][MBC+2], int block, int index,
int mb_x, int mb_y, int *vec_x, int *vec_y, int BACKWARD);
//! print all mv data for a macroblock
void printmv(H263VencStatus *encoder, MCParam *MC, int r, int c, int BACKWARD);
//! find MV for chroma block according to MV(s) of luma block
void findchromMV(H263VencStatus *encoder, MCParam *MC, int x, int y, int *dx, int *dy, int BACKWARD);
//! find both forward and backward MV for chroma block in direct prediction mode of B pictures
void findchromMV_dir(H263VencStatus *encoder, MCParam *MC, int x, int y,
int *dx1, int *dy1, int *dx2, int *dy2);
//! save vectors for the use of following B frames
void saveVec(MCParam *MC, int pels, int lines);
//C language function declare///////////////////////////////////////////////////////
void interpolate_lum_c(H263VencStatus *encoder);
int me_sad_a_c(int lx1, int lx2, int x1, int y1, int x2, int y2,
unsigned char *P1, unsigned char *P2,
int sad_last, int blocksize);
int me_sad_b_c(int lx1, int lx2, int x1, int y1, int x2, int y2,
unsigned char *P1, unsigned char *P2,
int sad_last, int blocksize);
//sse function declare//////////////////////////////////////////////////////////////
void interpolate_lum_sse(H263VencStatus *encoder);
int me_sad_a_sse(int lx1, int lx2, int x1, int y1, int x2, int y2,
unsigned char *P1, unsigned char *P2,
int sad_last, int blocksize);
int me_sad_b_sse(int lx1, int lx2, int x1, int y1, int x2, int y2,
unsigned char *P1, unsigned char *P2,
int sad_last, int blocksize);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -