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

📄 dsp_type.h

📁 基于DM642平台的H.264编码器优化代码
💻 H
字号:
#ifndef _DSP_SVP_TYPE_H_
#define _DSP_SVP_TYPE_H_

//typedef int                  Int        ;
typedef unsigned int         UInt       ;
typedef short    int         SInt       ;
typedef unsigned int         U_Int      ;
//typedef char                 Char       ;
typedef unsigned char        UChar      ;
typedef long     int         LInt       ;

#define I_VOP		0		/* vop coding modes */
#define P_VOP		1
#define VERSION		1
#define SCENE_CHANGE_THREADHOLD 30
typedef double      Double     ;
#define BITSTREAM_ALLOC_SIZE 256

#define VOP_START_CODE 0x1B6
#define VOP_START_CODE_LENGTH	32

#define MAX_NUM_VOS 32
#define MAX_NUM_VOLS 16

	#define MODE_INTRA                      0
	#define MODE_INTER                      1
	#define MODE_INTRA_Q			2	/* not used currently */
	#define MODE_INTER_Q			3 	/* not used currently */	
	#define MODE_INTER4V                    4
	#define MODE_GMC                        5	/* NTT for GMC coding */
	#define MODE_GMC_Q                      6
	
#define MB_SIZE 16
#define BLOCK_SIZE 8
#define PCT_INTRA                       0
#define PCT_INTER                       1
#define PCT_SPRITE			2
#define  ABS(x)                (((x) < 0) ? -(x) : (x))

//#define MOMCHECK(a)	if ((a) == 0) fprintf(stdout, "MOMCHECK failed in file %s, line %i\n", __FILE__, __LINE__)

#ifndef MAX
#define  MAX(a,b)              (((a) > (b)) ? (a) : (b))
#endif

#ifndef MIN
#define  MIN(a,b)              (((a) < (b)) ? (a) : (b))
#endif

#define  CLIP(a,i,s)           (((a) > (s)) ? (s) : MAX(a,i))
#define  SIGN(x)               (((x) < 0) ? -1 : 1)

#define MARKER_BIT 1

typedef struct
{
  char prediction_type;		/* VOP prediction type */
//  short mod_time_base;		/* VOP modulo time base (absolute) */
//  short time_inc;		/* VOP time increment (relative to last mtb) */
  char rounding_type;

  short width;			/* VOP height (smallest rectangle) */
  short height;			/* VOP width  (smallest rectangle) */
//  short size;
  char hor_spat_ref;		/*  -16,for previous recon vop  */
  char ver_spat_ref;		/*  -16,for previous recon vop  */
  
//  short intra_dc_vlc_thr;

  char quantizer;		/* VOP quantizer for P-VOPs */
  char intra_quantizer;		/* VOP quantizer for I-VOPs */
 
//  char vo_id;                    /* VO Id */
//  char ident;			/* VOL identifier (for tracking) */
  short time_increment_resolution;

  short sr_for;			/* VOP search range of motion vectors */
  char fcode_for;		/* VOP dynamic range of motion vectors */
  char quant_precision;
  char bits_per_pixel;
  short	modulo_time_base;

}voppara;

typedef struct
{
  U_Int code; /* right justified */
  UChar len;
} VLCtable;

//mot mot mot mot mot mot mot mot mot
#define DEFAULT_8_WIN    2
#define MBM_INTRA 			0
#define MBM_INTER16 		1
//#define MBM_SPRITE 			3
//#define MBM_INTER8 			4//优化时候屏蔽的
//#define MBM_TRANSPARENT 	2
//#define MBM_OUT 			5
//#define MBM_SKIPPED			6
#define B_SIZE           8
#define INDEX_BIG(x,y) ((x)+(y)*(vop_width))
#define INDEX_NOR(x,y) ((x)+(y)*(MB_SIZE))
#define MV_MAX_ERROR    0x2000000
#ifndef INT_MAX
#define INT_MAX       2147483647    /* maximum (signed) int value */
#endif
#define SKIPP       6
#define BV(p,xdim,h,v,h2,v2) (p[(2*(v)+(v2))*(xdim)+2*(h)+(h2)])
/* 16x16 MV obtainment */
#define MBV_H(h,v)      (ph[2*(v)*2*hdim+2*(h)])
#define MBV_V(h,v)      (pv[2*(v)*2*hdim+2*(h)])
/* 8x8 MV obtainment */
#define BV_H(h,v,h2,v2) (ph[(2*(v)+(v2))*2*hdim+2*(h)+(h2)])
#define BV_V(h,v,h2,v2) (pv[(2*(v)+(v2))*2*hdim+2*(h)+(h2)])

#endif /* _DSP_SVP_TYPE_H_*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -