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

📄 encode.c

📁 ISO mp3 sources (distribution 10) Layer 1/2/3, C Source, 512 k Sources of the Mpeg 1,2 layer 1,2
💻 C
📖 第 1 页 / 共 5 页
字号:
		fr_ps->header->tc_alloc[i] = 0;	}	else if (center == 3) /* && matrix != 3 */	{	    /* 3/2 Phantom Center coding */	    for (i = 0; i < 8; i++)	    {		if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)		{		    if (max_sc[6][i] < max_sc[4][i])			fr_ps->header->tc_alloc[i] = 5;		    else			fr_ps->header->tc_alloc[i] = 3;		}  		else if (((20 * log10(max_sc[4][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)		    fr_ps->header->tc_alloc[i] = 4;		else		    fr_ps->header->tc_alloc[i] = 0; 	    } 		    for (i = 8; i < 12; i++)	    {		for (k = 2; k < 7; k++)		{		    min2[k][i] = 0.0;	 		    for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++)			min2[k][i] += max_sc[k][l];	 		    min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); 		}		if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)		{		    if (min2[6][i] < min2[4][i])			fr_ps->header->tc_alloc[i] = 5;		    else			fr_ps->header->tc_alloc[i] = 3;		}  		else if (((20 * log10(min2[4][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)		    fr_ps->header->tc_alloc[i] = 4;		else		    fr_ps->header->tc_alloc[i] = 0;	    }	}		else	{	    /* 3/2 no Phantom Center coding */	    for (i = 0; i < 8; i++)	    {		if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)		{		    if (max_sc[6][i] < max_sc[5][i])			min = 6;		    else if (max_sc[6][i] == max_sc[5][i])		    {			if (max_sc[3][i] <= max_sc[5][i])			    min = 5;			else			    min = 6;	          		    }		    else			min = 5;		}  		else if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)		{		    min = 6;		    /* 01/03/1995 JMZ Simplification */		}  		else   	  	    		{		    min = 2;		}			switch (min)		{		    case 5: if (max_sc[4][i] <= max_sc[6][i])  /* left front,Rs*/				fr_ps->header->tc_alloc[i] = 1;			    else				fr_ps->header->tc_alloc[i] = 7;  /*R*/			    break;		    case 6: if (max_sc[3][i] <= max_sc[5][i])  /* right front,Ls*/				fr_ps->header->tc_alloc[i] = 2;			    else				fr_ps->header->tc_alloc[i] = 6;  /* L */			    break;		    		    case 2: if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)			    {				if  (max_sc[4][i] <= max_sc[6][i])  				    fr_ps->header->tc_alloc[i] = 3;			       else				    fr_ps->header->tc_alloc[i] = 5;			    }  			    else			    {				if (((20 * log10(max_sc[4][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)  				    fr_ps->header->tc_alloc[i] = 4;				else				    fr_ps->header->tc_alloc[i] = 0;			    }    			    break;		}	    }	    for (i = 8; i < 12; i++)    /*taking the average scalefactor of each sb-group*/	    {		for (k = 2; k < 7; k++)		{		    min2[k][i] = 0.0;	 		    for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++)			min2[k][i] += max_sc[k][l];	 		    min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); 		}		if (((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)		{		    if (min2[6][i] < min2[5][i])			min = 6;		    else if (min2[6][i] == min2[5][i])		    {			if (min2[3][i] <= min2[5][i])			    min = 5;			else			    min = 6;	          		    }		    else			min = 5;		}  		else if (((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)		{		    min = 6;		    /* 01/03/1995 JMZ Simplification */		}  		else   	  	    		{		    min = 2;		}			switch (min)		{		    case 5: if (min2[4][i] <= min2[6][i])  /* left front,Rs*/				fr_ps->header->tc_alloc[i] = 1;			    else				fr_ps->header->tc_alloc[i] = 7;  /*R*/			    break;		    case 6: if (min2[3][i] <= min2[5][i])  /* right front,Ls*/				fr_ps->header->tc_alloc[i] = 2;			    else				fr_ps->header->tc_alloc[i] = 6;  /* L */			    break;		    case 2: if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)			    {				if (min2[4][i] <= min2[6][i])  				    fr_ps->header->tc_alloc[i] = 3;				else				    fr_ps->header->tc_alloc[i] = 5;			    }  			    else			    {				if (((20 * log10(min2[4][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)  				    fr_ps->header->tc_alloc[i] = 4;				else				    fr_ps->header->tc_alloc[i] = 0;			    }    			    break;		}	    }	}    }    /* 01/03/1995 JMZ Configuration 3/1 */    if (surround == 1 && center != 0)    {	/* if (matrix == 3)		->tc_alloc = 0	   else if (center == 3)	->tc_alloc = 0,3,4	   else if (matrix == 2)	->tc_alloc = 0,1,2,3,4,5	   else				->tc_alloc = 0,1,2,3,4 */	if (matrix == 3)	{    	    for (i = 0; i < 12; i++)		fr_ps->header->tc_alloc[i] = 0;	}	else if (center == 3) /* && matrix != 3 */	{	    /* 3/1 Phantom Center coding */	    for	(i = 0; i < 8; i++)	    {		if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)		{		    if (max_sc[6][i] < max_sc[5][i])			fr_ps->header->tc_alloc[i] = 4;		    else			fr_ps->header->tc_alloc[i] = 3;		}  		else if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)		    fr_ps->header->tc_alloc[i] = 4;		else		    fr_ps->header->tc_alloc[i] = 0; 	    } 		    for (i = 8; i < 12; i++)    	    {		for (k = 2; k < 7; k++)		{		    min2[k][i] = 0.0;	 		    for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++)			    min2[k][i] += max_sc[k][l];	 		    min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); 		}		    		if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)		{		    if (min2[6][i] < min2[5][i])			fr_ps->header->tc_alloc[i] = 4;		    else 				fr_ps->header->tc_alloc[i] = 3;		}  		else 			    if (((20 * log10(min2[3][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)			fr_ps->header->tc_alloc[i] = 4;		    else   				fr_ps->header->tc_alloc[i] = 0; 	    } 	}		else/*		if(matrix==2)		{    		}		else*/	{		    /* 3/1 no Phantom Center coding */	    for (i = 0; i < 8; i++)	    {		if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)		{		    if (max_sc[6][i] < max_sc[5][i])			min = 6;		    else			min = 5;		}  		else if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)		    min = 6;		else   	  	    		    min = 2;			switch (min)		{		    case 5: fr_ps->header->tc_alloc[i] = 1;			    break;		    case 6: fr_ps->header->tc_alloc[i] = 2;			    break;		    		    case 2: if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)			    {				if (max_sc[6][i] <= max_sc[5][i])  				    fr_ps->header->tc_alloc[i] = 4;				else				    fr_ps->header->tc_alloc[i] = 3;			    }  			    else			    {				if (((20 * log10(max_sc[3][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)  				    fr_ps->header->tc_alloc[i] = 4;				else				    fr_ps->header->tc_alloc[i] = 0;			    }    			    break;		}	    } 	    for (i = 8; i < 12; i++)	    {		for (k = 2; k < 7; k++)		{		    min2[k][i] = 0.0;	 		    for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++)			min2[k][i] += max_sc[k][l];	 		    min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); 		}		if (((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)		{		    if (min2[6][i] < min2[5][i])			min = 6;		    else			min = 5;		}  		else if (((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)		    min = 6;		else   	  	    		    min = 2;			switch (min)		{		    case 5: fr_ps->header->tc_alloc[i] = 1;			    break;		    case 6: fr_ps->header->tc_alloc[i] = 2;			    break;		    		    case 2: if (((20 * log10(min2[3][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)			    {				if (min2[6][i] <= min2[5][i])  				    fr_ps->header->tc_alloc[i] = 4;				else				    fr_ps->header->tc_alloc[i] = 3;			    }  			    else			    {				if (((20 * log10(min2[3][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)  				    fr_ps->header->tc_alloc[i] = 4;				else				    fr_ps->header->tc_alloc[i] = 0;			    }    			    break;		}	    }	}    }         /* 01/03/1995 JMZ Configuration 3/0 (+2/0) */    if (center != 0 && (surround == 3 || surround == 0))    {	if (matrix == 3 || center == 3)	{    	    for (i = 0; i < 12; i++)		fr_ps->header->tc_alloc[i] = 0;	}/* 02/02/97 FdB no matrix == 2 allowed for 3/0	else if (matrix == 2) 	{		for(i = 0; i < 8; i++)		{			if(((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)			{				if(max_sc[6][i] < max_sc[5][i])					fr_ps->header->tc_alloc[i] = 2;				else 	fr_ps->header->tc_alloc[i] = 1;			}  			else 	if(((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)					fr_ps->header->tc_alloc[i] = 2;				else   	fr_ps->header->tc_alloc[i] = 0; 		} 				for(i = 8; i < 12; i++)   		for(k = 2; k < 7; k++)			min2[k][i] = 0.0;	  		for(i = 8; i < 12; i++)    		{			for(k = 2; k < 7; k++)			{				for(l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++)				{					min2[k][i] += max_sc[k][l];	 				}				min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); 			}					if(((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)			{				if(min2[6][i] < min2[5][i])					fr_ps->header->tc_alloc[i] = 2;				else 	fr_ps->header->tc_alloc[i] = 1;			}  			else 	if(((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)					fr_ps->header->tc_alloc[i] = 2;				else   	fr_ps->header->tc_alloc[i] = 0; 		} 	}*/	else	{		    for (i = 0; i < 8; i++)	    {		if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[5][i]))) > TC_ALLOC)		{		    if (max_sc[6][i] < max_sc[5][i])			min = 6;		    else			min = 5;		}  		else if (((20 * log10(max_sc[2][i])) - (20 * log10(max_sc[6][i]))) > TC_ALLOC)		    min = 6;		else   	  	    		    min = 2;		switch (min)		{		    case 5: fr_ps->header->tc_alloc[i] = 1;			    break;		    case 6: fr_ps->header->tc_alloc[i] = 2;			    break;		    case 2: fr_ps->header->tc_alloc[i] = 0;			    break;		}	    }	    for (i = 8; i < 12; i++)	    {		for (k = 2; k < 7; k++)		{		    min2[k][i] = 0.0;	 		    for (l = (sb_groups[i-1] + 1); l <= sb_groups[i]; l++)			min2[k][i] += max_sc[k][l];	 		    min2[k][i] = min2[k][i] / (sb_groups[i] - sb_groups[i-1]); 		}		if (((20 * log10(min2[2][i])) - (20 * log10(min2[5][i]))) > TC_ALLOC)		{		    if (min2[6][i] < min2[5][i])			min = 6;		    else			min = 5;		}  		else if (((20 * log10(min2[2][i])) - (20 * log10(min2[6][i]))) > TC_ALLOC)		    min = 6;		else   	  	    		    min = 2;			switch (min)		{		    case 5: fr_ps->header->tc_alloc[i] = 1;			    break;		    case 6: fr_ps->header->tc_alloc[i] = 2;			    break;		    case

⌨️ 快捷键说明

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