⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mot_est.h

📁 H.263的编码程序,加了CPU指令优化,VC版.
💻 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 + -