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

📄 davp_argcv1.c

📁  离散余弦变换对图象信号有近似最优的去相关能力, 但多维的变换公式一直没有给出. 为此深入研究了 三维离散余弦变换, 提出了任意尺寸的三维函数f (x , y , z ) 的正交离散余弦变换公式,
💻 C
字号:

/*
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//   Copyright (C) 2006-2008  Beijing,  pengzhen (pengzhenxp@yahoo.com.cn)   //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
*/

/**
* set video (default) parameter
*/

void set_video_default_parameter(dvp_ctx * lp_dvp)
{
	
	//lp_dvp->m_handle = 0 ; /* handle */ 

	//lp_dvp->codec = FOURCC_ZPV0  ; /* FOURCC_ZPV0 ~~~ FOURCC_ZPV9 */
	lp_dvp->wavelets = 0  ; /* wavelets */ /* wavelets < 0:b97, 1:b53, 2:haar > */

	lp_dvp->width  = 352 ;  /* 352 */ /* picture width. (must be a multiple of 16) */
	lp_dvp->height = 288 ; /* 288 */ /* picture height. (must be a multiple of 16) */

	lp_dvp->frame_number  = 0  ; /* frame number */ 
	lp_dvp->frame_rate    = 25 ; /* frames/second */ /* <25,30> */ 
	lp_dvp->bit_rate      = 300*1000 ; /* bits/second */ /* <300*1000> */
	lp_dvp->bit_rate_type = 0 ; /* 0 : BRT_ABR(ABR) 1 : BRT_VBR(VBR) 2 : BRT_CBR(CBR) */
	
	lp_dvp->gop   = 0 ; /* group of picture */ /* if gop = 0, none P (POT_P) */
	lp_dvp->gop_b = 0 ; /* group of picture B (POT_B) */ /* 0 : 2 (B) 1 : 4 (B) */
	lp_dvp->ratio = 1 ; /* ratio of background to foreground */ /* if ratio = 0, none background */

	lp_dvp->previous_process = 0 ; /* previous process */ /* <0,1,2,3,4> */
	lp_dvp->post_process = 4 ; /* post process */ /* <0,1,2,3,4> */

}

/**
* get video parameter
*/

void get_video_parameter(dvp_ctx * lp_dvp , int argc, char **argv)
{

    int mark = 1 ; int value = 0 ;
	
	set_video_default_parameter( lp_dvp ) ;

    argc-- ; /* skip name */
    while (argc > 0) 
	{

		if ( get_parameter_flag("-wavelets") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value==0)|(value==1) ) lp_dvp->wavelets = value ; 

        }

		else if ( get_parameter_flag("-frame_size") ) 
		{
			char *arg_bak ; int width , height ; 
			
			get_parameter_next() ; /* next */
			//get_parameter_read() ;
			
			arg_bak = argv[mark]; 
			width = (int)strtol(arg_bak, (char **)&arg_bak, 10) ; /* width */
			arg_bak +=  (arg_bak != NULL )  ;
			height = (int)strtol(arg_bak, (char **)&arg_bak, 10) ; /* height */

			width = (width >>4) << 4 ; /* picture width. (must be a multiple of 16) */
			height = (height >>4) << 4 ; /* picture height. (must be a multiple of 16) */

			lp_dvp->width = width ; 
			lp_dvp->height = height ;
			
        }

		else if ( get_parameter_flag("-frame_rate") ) 
		{
            get_parameter_next() ; /* next */
			//get_parameter_read() ; 
			value = (int)( strtod( argv[mark], 0 ) );
			
			if( (value==50)|(value==60)|
				(value==25)|(value==30)|
				((value >= 1) & (value <= 24)) )
			{
				lp_dvp->frame_rate = value ;
			}
			
        }

		else if ( get_parameter_flag("-bit_rate") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value >= 50) & (value <= 4*1000) ) lp_dvp->bit_rate = value * 1000 ; /* KB */

        }

		else if ( get_parameter_flag("-bit_rate_type") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value >= 0) & (value <= 2) ) lp_dvp->bit_rate_type = value ; 

        }

		else if ( get_parameter_flag("-gop") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ;

			if( value > 0 ) lp_dvp->gop = value ;

        }

		else if ( get_parameter_flag("-gop_b") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value==0)|(value==2)|(value==4) ) lp_dvp->gop_b = value ; 

        }

		else if ( get_parameter_flag("-ratio") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ;

			if( value > 0 ) lp_dvp->ratio = value ;

        }

		else if ( get_parameter_flag("-previous_process") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value >= 0) & (value <= 4) ) lp_dvp->previous_process = value ; 

        }

		else if ( get_parameter_flag("-post_process") ) 
		{
            get_parameter_next() ; /* next */
			get_parameter_read() ; 
			
			if( (value >= 0) & (value <= 4) ) lp_dvp->post_process = value ; 

        }

        get_parameter_next() /* next */

	}

}


⌨️ 快捷键说明

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