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

📄 xvid_enc_dec.h

📁 用vc++实现的xvid编码器实现的压缩解压缩
💻 H
字号:
#pragma once
#include "xvid.h"
#include "sync.h"
#include "common.h"

#pragma comment(lib, "xvid.lib")

#define NULL 0
static int const motion_presets[7] = {
	0,                                                        /* Q 0 */
	PMV_EARLYSTOP16,                                          /* Q 1 */
	PMV_EARLYSTOP16,                                          /* Q 2 */
	PMV_EARLYSTOP16 | PMV_HALFPELREFINE16,                    /* Q 3 */
	PMV_EARLYSTOP16 | PMV_HALFPELREFINE16,                    /* Q 4 */
	PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EARLYSTOP8 |  /* Q 5 */
	PMV_HALFPELREFINE8,
	PMV_EARLYSTOP16 | PMV_HALFPELREFINE16 | PMV_EXTSEARCH16 | /* Q 6 */
	PMV_USESQUARES16 | PMV_EARLYSTOP8 | PMV_HALFPELREFINE8
};

static int const general_presets[7] = {
	XVID_H263QUANT,	                              /* Q 0 */
	XVID_MPEGQUANT,                               /* Q 1 */
	XVID_H263QUANT,                               /* Q 2 */
	XVID_H263QUANT | XVID_HALFPEL,                /* Q 3 */
	XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, /* Q 4 */
	XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V, /* Q 5 */
	XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V  /* Q 6 */
};

static int const greyscale_presets[7] = {
	XVID_H263QUANT | XVID_GREYSCALE,	                              /* Q 0 */
	XVID_MPEGQUANT | XVID_GREYSCALE,                               /* Q 1 */
	XVID_H263QUANT | XVID_GREYSCALE,                               /* Q 2 */
	XVID_H263QUANT | XVID_HALFPEL,                /* Q 3 */
	XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V | XVID_GREYSCALE, /* Q 4 */
	XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V | XVID_GREYSCALE, /* Q 5 */
	XVID_H263QUANT | XVID_HALFPEL | XVID_INTER4V | XVID_GREYSCALE  /* Q 6 */
};

static int   ARG_QUALITY = 6;
static int   ARG_MINQUANT = 1;
static int   ARG_MAXQUANT = 31;

#define FRAMERATE_INCR 1001
#define SMALL_EPS 1e-10

class xvid_enc{
private:
	CriticalSection m_Lock;
	void *m_enchandle;
	int m_xdim;
	int m_ydim;
	float m_framerate;
	int m_bitrate;
	int m_keyrate;
	void enc_init();
public:
	xvid_enc(int x_dim,int y_dim,float framerate,int bitrate,int keyrate);
	~xvid_enc();
	int enc_main(unsigned char *image, unsigned char* bitstream,int *streamlength,int *frametype,int quant = 0,unsigned colorspace = XVID_CSP_RGB24,bool greyscale = false);
};
class xvid_dec{
private:
	CriticalSection m_Lock;
	void *m_dechandle;
	int m_stride;
	int m_xdim;
	int m_ydim;
	void dec_init();
public:
	xvid_dec(int x_dim,int y_dim);
	~xvid_dec();
	int dec_main(unsigned char *bitstream,int streamlength,unsigned char *image,unsigned colorspace = XVID_CSP_RGB24 | XVID_CSP_VFLIP);
};

⌨️ 快捷键说明

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