亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? macroblock.c

?? Mobile IP VCEG的信道模擬程序
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
                                     if (level != 0)		/* leave if len=1 */
									{
										coef_ctr=coef_ctr+run+1;

										i0=DBL_SCAN[coef_ctr][0][scan_loop_ctr];
										j0=DBL_SCAN[coef_ctr][1][scan_loop_ctr];

										img->cof[i][j][i0][j0]=level*JQ1[img->qp];

										if (level!=0)
										{
											loopb[img->block_x+i+1][img->block_y+j+1]=max(loopb[img->block_x+i+1][img->block_y+j+1],2);
											loopb[img->block_x+i  ][img->block_y+j+1]=max(loopb[img->block_x+i  ][img->block_y+j+1],1);
											loopb[img->block_x+i+1][img->block_y+j  ]=max(loopb[img->block_x+i+1][img->block_y+j  ],1);
											loopb[img->block_x+i+2][img->block_y+j+1]=max(loopb[img->block_x+i+2][img->block_y+j+1],1);
											loopb[img->block_x+i+1][img->block_y+j+2]=max(loopb[img->block_x+i+1][img->block_y+j+2],1);
										}
									}
								}
							}
						}
					}
				}
			}
		}
    }

	for (j=4;j<6;j++) /* reset all chroma coeffs before read */
		for (i=0;i<4;i++)
			for (iii=0;iii<4;iii++)
				for (jjj=0;jjj<4;jjj++)
					img->cof[i][j][iii][jjj]=0;

	m2=img->mb_x*2;
	jg2=img->mb_y*2;

	/* chroma 2x2 DC coeff */
	if(cbp>15)
	{
		for (ll=0;ll<3;ll+=2)
		{
			for (i=0;i<4;i++)
				img->cofu[i]=0;

			coef_ctr=-1;
			//len=0;
            level=1;
			//for(k=0;(k<5)&&(len!=1);k++)
            for(k=0;(k<5)&&(level!=0);k++)	
			{
                if (inp->symbol_mode == UVLC)
					currSE.mapping = linfo_levrun_c2x2;
				else							
					currSE.reading = readRunLevelFromBuffer_CABAC;

				if ( img->imod == INTRA_MB_OLD || img->imod == INTRA_MB_NEW)
				{
					currSE.context = 6; // for choosing context model
					currSE.type  = SE_CHR_DC_INTRA;
				}
				else
				{
					currSE.context = 5; // for choosing context model
					currSE.type  = SE_CHR_DC_INTER; 
				}
														
#if TRACE
	            sprintf(currSE.tracestring, " 2x2 DC Chroma ");
#endif
                dP = &(currSlice->partArr[partMap[currSE.type]]);
                dP->readSyntaxElement(&currSE,img,inp,dP);
		        level = currSE.value1;
                run = currSE.value2;
                len = currSE.len;
				//if (len != 1)
// printf ("2x2 Chroma DC Coeff, mb %d, blkx, y %d %d level %d run %d len %d\n", img->current_mb_nr, block_x, block_y, level, run, len);
                if (level != 0)
				{
					coef_ctr=coef_ctr+run+1;
// Bug: img->cofu has only 4 entries, hence coef_ctr MUST be <4 (which is
// caught by the assert().  If it is bigger than 4, it starts patching the
// img->predmode pointer, which leads to bugs later on.
assert (coef_ctr < 4);					
					img->cofu[coef_ctr]=level*JQ1[QP_SCALE_CR[img->qp]];

					if (level != 0 );
					{
						for (j=0;j<2;j++)
						{
							for (i=0;i<2;i++)
							{
								loopc[m2+i+1][jg2+j+1]=max(loopc[m2+i+1][jg2+j+1],2);
							}
						}

						for (i=0;i<2;i++)
						{
							loopc[m2+i+1][jg2    ]=max(loopc[m2+i+1][jg2    ],1);
							loopc[m2+i+1][jg2+3  ]=max(loopc[m2+i+1][jg2+3  ],1);
							loopc[m2    ][jg2+i+1]=max(loopc[m2    ][jg2+i+1],1);
							loopc[m2+3  ][jg2+i+1]=max(loopc[m2+3  ][jg2+i+1],1);
						}
					}
				}
			}
			img->cof[0+ll][4][0][0]=(img->cofu[0]+img->cofu[1]+img->cofu[2]+img->cofu[3])/2;
			img->cof[1+ll][4][0][0]=(img->cofu[0]-img->cofu[1]+img->cofu[2]-img->cofu[3])/2;
			img->cof[0+ll][5][0][0]=(img->cofu[0]+img->cofu[1]-img->cofu[2]-img->cofu[3])/2;
			img->cof[1+ll][5][0][0]=(img->cofu[0]-img->cofu[1]-img->cofu[2]+img->cofu[3])/2;
		}
	}

	/* chroma AC coeff, all zero fram start_scan */
	if (cbp>31)
	{
		block_y=4;
		for (block_x=0; block_x < 4; block_x += 2)
		{
			for (j=block_y; j < block_y+2; j++)
			{
				jj=j/2;
				j1=j-4;
				for (i=block_x; i < block_x+2; i++)
				{
					ii=i/2;
					i1=i%2;
					{
						coef_ctr=0;
						//len=0;
                        level=1;
						//for(k=0;(k<16)&&(len!=1);k++)
                        for(k=0;(k<16)&&(level!=0);k++)
						{
                            if (inp->symbol_mode == UVLC)
								currSE.mapping = linfo_levrun_inter;
							else							
								currSE.reading = readRunLevelFromBuffer_CABAC;

							if ( img->imod == INTRA_MB_OLD || img->imod == INTRA_MB_NEW)
							{
								currSE.context = 8; // for choosing context model	
								currSE.type  = SE_CHR_AC_INTRA;
							}
							else
							{
								currSE.context = 7; // for choosing context model	
								currSE.type  = SE_CHR_AC_INTER; 
							}
#if TRACE
	                        sprintf(currSE.tracestring, " AC Chroma ");
#endif
                            dP = &(currSlice->partArr[partMap[currSE.type]]);
                            dP->readSyntaxElement(&currSE,img,inp,dP);
		                    level = currSE.value1;
                            run = currSE.value2;
					        len = currSE.len;
                            
// printf ("2x2 Chroma AC Coeff, mb %d, blkx, y %d %d level %d run %d len %d\n", img->current_mb_nr, block_x, block_y, level, run, len);
							//if (len != 1)
                            if (level != 0)
							{
								coef_ctr=coef_ctr+run+1;
								i0=SNGL_SCAN[coef_ctr][0];
								j0=SNGL_SCAN[coef_ctr][1];
								img->cof[i][j][i0][j0]=level*JQ1[QP_SCALE_CR[img->qp]];

								if (level!=0)
								{
									loopc[m2+i1+1][jg2+j1+1]=max(loopc[m2+i1+1][jg2+j1+1],2);

									loopc[m2+i1  ][jg2+j1+1]=max(loopc[m2+i1  ][jg2+j1+1],1);
									loopc[m2+i1+1][jg2+j1  ]=max(loopc[m2+i1+1][jg2+j1  ],1);
									loopc[m2+i1+2][jg2+j1+1]=max(loopc[m2+i1+2][jg2+j1+1],1);
									loopc[m2+i1+1][jg2+j1+2]=max(loopc[m2+i1+1][jg2+j1+2],1);
								}
							}
						}
					}
				}
			}
		}
    }   
}



/************************************************************************
*
*  Name :       decode_one_CopyMB()
*
*  Description: copy current MB from last MB
*
************************************************************************/
void decode_one_CopyMB(struct img_par *img,struct inp_par *inp)
{
    int i, j, ii, jj, uv, i3, j3;
    Macroblock *currMB = &img->mb_data[img->current_mb_nr];
    int ref_frame = currMB->ref_frame;
	int mv_mul;

	if(img->mv_res)
	  mv_mul=8;
	else
	  mv_mul=4;

	/* get luma pixel **************************************************/
    for(j=0;j<MB_BLOCK_SIZE;j++)
	{
		jj=img->pix_y+j;
		for(i=0;i<MB_BLOCK_SIZE;i++)
		{
			ii=img->pix_x+i;
		    imgY[jj][ii]=get_pixel(ref_frame,ii*mv_mul,jj*mv_mul,img);
			// imgY[jj][ii]=mref[ref_frame][jj*4][ii*4];
		}
	}

    /* get chroma pixel ***********************************************/
	for(uv=0;uv<2;uv++)
	{
		for(j=0;j<MB_BLOCK_SIZE/2;j++)
		{
			jj=img->pix_c_y+j;
			for(i=0;i<MB_BLOCK_SIZE/2;i++)
			{
				ii=img->pix_c_x+i;
				imgUV[uv][jj][ii]=mcef[ref_frame][uv][jj][ii];
			}
		}
	}

    /* set loop filter ************************************************/
	for (i=0;i<4;i++)
	{
		ii=img->block_x+i;
		i3=ii/2;
		for (j=0;j<4;j++)
		{
			jj=img->block_y+j;
			j3=jj/2;	
			if (((img->mv[ii-1+4][jj][0]/4)!=0||(img->mv[ii-1+4][jj][1]/4!=0)) && ii > 0)				
			{
				loopb[ii  ][jj+1]=max(loopb[ii  ][jj+1],1);
				loopb[ii+1][jj+1]=max(loopb[ii+1][jj+1],1);
				loopc[i3  ][j3+1]=max(loopc[i3  ][j3+1],1);
				loopc[i3+1][j3+1]=max(loopc[i3+1][j3+1],1);
			}
			if (jj > 0 &&((img->mv[ii+4][jj-1][0]/4!=0)||(img->mv[ii+4][jj-1][1]/4!=0)))
			{
				loopb[ii+1][jj  ]=max(loopb[ii+1][jj  ],1);
				loopb[ii+1][jj+1]=max(loopb[ii+1][jj+1],1);
				loopc[i3+1][j3  ]=max(loopc[i3+1][j3  ],1);
				loopc[i3+1][j3+1]=max(loopc[i3+1][j3+1],1);
			}
		}
	}	
}
/************************************************************************
*
*  Name :       decode_one_macroblock()
*
*  Description: decode one macroblock
*
************************************************************************/
int decode_one_macroblock(struct img_par *img,struct inp_par *inp)
{				
    int js[2][2];
	int i=0,j=0,ii=0,jj=0,i1=0,j1=0,j4=0,i4=0;
	int js0=0,js1=0,js2=0,js3=0,jf=0;
	int uv;
	int vec1_x=0,vec1_y=0,vec2_x=0,vec2_y=0;
	//const int ICBPTAB[6] = {0,16,32,15,31,47};
	int ioff,joff;

	int ii0,jj0,ii1,jj1,if1,jf1,if0,jf0;
	int mv_mul,f1,f2,f3,f4;

	Macroblock *currMB = &img->mb_data[img->current_mb_nr];
    int ref_frame = currMB->ref_frame;
    
	/* set variables depending on mv_res */
	if(img->mv_res)
	{
	  mv_mul=8;
	  f1=16;
	  f2=15;
	}
	else
	{
	  mv_mul=4;
	  f1=8;
	  f2=7;
	}

	f3=f1*f1;
	f4=f3/2;

	/* luma decoding ***************************************************/

    /* get prediction for INTRA_MB_16x16 */
    if (currMB->mb_imode == INTRA_MB_NEW)
		intrapred_luma_2(img,currMB->intra_pred_modes[0]);

	for(j=0;j<MB_BLOCK_SIZE/BLOCK_SIZE;j++)
	{
		joff=j*4;
		j4=img->block_y+j;
		for(i=0;i<MB_BLOCK_SIZE/BLOCK_SIZE;i++)
		{
			ioff=i*4;
			i4=img->block_x+i;
            /* get prediction for INTRA_MB_4x4 */
			if(currMB->mb_imode == INTRA_MB_OLD)
			{
				if (intrapred(img,ioff,joff,i4,j4)==SEARCH_SYNC)  /* make 4x4 prediction block mpr from given prediction img->mb_mode */
					return SEARCH_SYNC;                   /* bit error */
			}
            /* get motion prediction for INTER_MB */
			else if(currMB->mb_imode == INTRA_MB_INTER)
			{

				for(ii=0;ii<BLOCK_SIZE;ii++)
				{
					vec2_x=(i4*4+ii)*mv_mul;
					vec1_x=vec2_x+img->mv[i4+BLOCK_SIZE][j4][0];
					for(jj=0;jj<MB_BLOCK_SIZE/BLOCK_SIZE;jj++)
					{
						vec2_y=(j4*4+jj)*mv_mul;
						vec1_y=vec2_y+img->mv[i4+4][j4][1];
						img->mpr[ii+ioff][jj+joff]=get_pixel(ref_frame,vec1_x,vec1_y,img);
						// img->mpr[ii+ioff][jj+joff]=mref[ref_frame][vec1_y][vec1_x];
					}
				}
			}

			itrans(img,ioff,joff,i,j);      /* use DCT transform and make 4x4 block m7 from prediction block mpr */

			for(ii=0;ii<BLOCK_SIZE;ii++)
			{
				for(jj=0;jj<BLOCK_SIZE;jj++)
				{
					imgY[j4*BLOCK_SIZE+jj][i4*BLOCK_SIZE+ii]=img->m7[ii][jj]; /* contruct picture from 4x4 blocks*/
				}
			}
		}
    }
	/* chroma decoding ********************************************************/

	for(uv=0;uv<2;uv++)
	{
		if (img->imod==INTRA_MB_OLD || img->imod==INTRA_MB_NEW)/* intra mode */
		{
			js0=0;
			js1=0;
			js2=0;
			js3=0;
			for(i=0;i<4;i++)
			{
				if(currMB->mb_available[0][1]) //mb_available_up
				{
					js0=js0+imgUV[uv][img->pix_c_y-1][img->pix_c_x+i];
					js1=js1+imgUV[uv][img->pix_c_y-1][img->pix_c_x+i+4];
				}
				if(currMB->mb_available[1][0]) //mb_available_left
				{
					js2=js2+imgUV[uv][img->pix_c_y+i][img->pix_c_x-1];
					js3=js3+imgUV[uv][img->pix_c_y+i+4][img->pix_c_x-1];
				}
			}
			if(currMB->mb_available[0][1] && currMB->mb_available[1][0]) //mb_available_up && mb_available_left
			{
				js[0][0]=(js0+js2+4)/8;
				js[1][0]=(js1+2)/4;
				js[0][1]=(js3+2)/4;
				js[1][1]=(js1+js3+4)/8;
			}
			if(currMB->mb_available[0][1] && !currMB->mb_available[1][0]) //mb_available_up && !mb_available_left
			{
				js[0][0]=(js0+2)/4;
				js[1][0]=(js1+2)/4;
				js[0][1]=(js0+2)/4;
				js[1][1]=(js1+2)/4;
			}
			if(!currMB->mb_available[0][1] && currMB->mb_available[1][0]) //mb_available_left && !mb_available_up
			{
				js[0][0]=(js2+2)/4;
				js[1][0]=(js2+2)/4;
				js[0][1]=(js3+2)/4;
				js[1][1]=(js3+2)/4;
			}
			if(!currMB->mb_available[0][1] && !currMB->mb_available[1][0]) //!mb_available_up && !mb_available_left
			{
				js[0][0]=128;
				js[1][0]=128;
				js[0][1]=128;
				js[1][1]=128;
			}
		}

		for (j=4;j<6;j++)
		{
			joff=(j-4)*4;
			j4=img->pix_c_y+joff;
			for(i=0;i<2;i++)
			{
				ioff=i*4;
				i4=img->pix_c_x+ioff;
				/* make pred */
				if(img->imod==INTRA_MB_OLD|| img->imod==INTRA_MB_NEW)/* intra */
				{
					for(ii=0;ii<4;ii++)
						for(jj=0;jj<4;jj++)
						{
							img->mpr[ii+ioff][jj+joff]=js[i][j-4];
						}
				}
				else
				{
					for(jj=0;jj<4;jj++)
					{
						jf=(j4+jj)/2;
						for(ii=0;ii<4;ii++)
						{
							if1=(i4+ii)/2;
							i1=(img->pix_c_x+ii+ioff)*f1+img->mv[if1+4][jf][0];
							j1=(img->pix_c_y+jj+joff)*f1+img->mv[if1+4][jf][1];

#ifndef UMV
							ii0=i1/f1;
							jj0=j1/f1;
							ii1=(i1+f2)/f1;
							jj1=(j1+f2)/f1;
#endif
#ifdef UMV
							ii0=max (0, min (i1/f1, img->width_cr-1));
							jj0=max (0, min (j1/f1, img->height_cr-1));
							ii1=max (0, min ((i1+f2)/f1, img->width_cr-1));
							jj1=max (0, min ((j1+f2)/f1, img->height_cr-1));
#endif

							if1=(i1 & f2);
							jf1=(j1 & f2);
							if0=f1-if1;
							jf0=f1-jf1;
							img->mpr[ii+ioff][jj+joff]=(if0*jf0*mcef[ref_frame][uv][jj0][ii0]+
							                            if1*jf0*mcef[ref_frame][uv][jj0][ii1]+
							                            if0*jf1*mcef[ref_frame][uv][jj1][ii0]+
							                            if1*jf1*mcef[ref_frame][uv][jj1][ii1]+f4)/f3;

						}
					}
				}
				itrans(img,ioff,joff,2*uv+i,j);
				for(ii=0;ii<4;ii++)
					for(jj=0;jj<4;jj++)
					{
						imgUV[uv][j4+jj][i4+ii]=img->m7[ii][jj];
					}
			}
		}
    }
    SetLoopfilterStrength_P(img);
    return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成av人片一区二区| 欧美日韩电影一区| 日韩av一区二区三区四区| 久久久99久久| 欧美日韩国产在线播放网站| 国产精品一级在线| 日日夜夜一区二区| 亚洲视频一区二区在线| 久久先锋资源网| 欧美日韩精品一区视频| 99热精品一区二区| 国产一区二区三区久久久| 亚洲第一精品在线| 亚洲欧美视频在线观看| 欧美国产综合色视频| 日韩欧美电影一二三| 欧美色视频在线观看| 不卡欧美aaaaa| 国产精选一区二区三区| 美国十次了思思久久精品导航| 亚洲精品视频一区二区| 国产日韩精品一区二区三区在线| 欧美一区二区三区人| 欧美日韩精品一区二区在线播放| 99精品视频免费在线观看| 国产精品1024| 国产一区二区三区电影在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲精品少妇30p| 国产精品乱码一区二区三区软件| 久久久久亚洲蜜桃| 久久女同精品一区二区| 2023国产精品自拍| 2欧美一区二区三区在线观看视频| 欧美一区二区三区的| 欧美日本精品一区二区三区| 欧美性高清videossexo| 欧美三级韩国三级日本一级| 91福利精品第一导航| 色女孩综合影院| 一本久久综合亚洲鲁鲁五月天| av一区二区三区黑人| 91精品国产乱码久久蜜臀| 欧美伊人久久久久久久久影院 | 久久99九九99精品| 捆绑调教一区二区三区| 麻豆成人免费电影| 国产真实乱子伦精品视频| 国产激情精品久久久第一区二区| 国产成a人亚洲精品| 成人在线一区二区三区| 99精品视频免费在线观看| 91亚洲精品久久久蜜桃| 欧美在线观看一区| 欧美一区2区视频在线观看| 91精品国模一区二区三区| 精品噜噜噜噜久久久久久久久试看| 精品国产a毛片| 久久精品夜色噜噜亚洲a∨| 国产精品女同一区二区三区| 亚洲欧美激情一区二区| 亚洲成人免费看| 韩国视频一区二区| 成人app网站| 欧美午夜理伦三级在线观看| 欧美一二三区在线观看| 日本一区二区三区在线观看| 亚洲欧美日韩系列| 日韩av电影天堂| 国产东北露脸精品视频| 91色九色蝌蚪| 欧美一区二区三区视频免费播放| 国产午夜精品一区二区| 一区二区日韩电影| 琪琪一区二区三区| 丁香婷婷综合五月| 欧美视频精品在线观看| 精品美女在线观看| 亚洲欧美国产高清| 经典一区二区三区| 色天使久久综合网天天| 精品国产区一区| 亚洲免费电影在线| 国内精品久久久久影院薰衣草| 91免费观看在线| 欧美变态tickling挠脚心| 国产精品麻豆99久久久久久| 日本系列欧美系列| 97aⅴ精品视频一二三区| 91精品国产一区二区三区| 国产日韩精品一区| 视频一区中文字幕国产| av成人免费在线| 精品精品欲导航| 亚洲一区在线播放| 波多野结衣中文一区| 日韩一区二区三区免费看| 1024成人网| 国产精品99久久久久久久vr| 欧美久久久久久久久久| 久久精品人人做人人爽人人| 午夜精品久久久久影视| 不卡的av在线播放| 亚洲精品一区在线观看| 亚洲成人一区二区在线观看| 成人黄色777网| 欧美成人国产一区二区| 亚洲成人一区在线| 在线一区二区三区做爰视频网站| 国产三区在线成人av| 日本成人超碰在线观看| 欧美中文字幕不卡| 亚洲欧美国产三级| 波波电影院一区二区三区| 精品国产91乱码一区二区三区| 五月婷婷欧美视频| 欧美视频一区二区三区在线观看| 亚洲欧洲av在线| 白白色 亚洲乱淫| 欧美国产禁国产网站cc| 国产一区二区不卡| 精品国产伦一区二区三区免费| 午夜一区二区三区视频| 91国偷自产一区二区开放时间| 专区另类欧美日韩| 91在线观看地址| 亚洲视频免费在线观看| av不卡在线播放| 国产精品国产三级国产普通话蜜臀 | 一本大道综合伊人精品热热| 欧美国产成人在线| 国产99久久久久久免费看农村| 精品欧美乱码久久久久久| 青青草原综合久久大伊人精品 | 日韩一级成人av| 日本特黄久久久高潮| 7777精品伊人久久久大香线蕉 | 91女神在线视频| 国产精品久久久久久久久免费桃花 | 精品影院一区二区久久久| 日韩欧美一级特黄在线播放| 麻豆精品视频在线观看视频| 日韩免费在线观看| 国内精品国产三级国产a久久| 久久天堂av综合合色蜜桃网| 国产成人精品免费网站| 亚洲国产精品成人久久综合一区| 不卡的av电影| 夜夜亚洲天天久久| 欧美撒尿777hd撒尿| 丝袜美腿亚洲综合| 日韩欧美激情一区| 国产激情视频一区二区在线观看| 国产精品色一区二区三区| caoporn国产精品| 亚洲欧美另类小说视频| 欧美日本精品一区二区三区| 久久精品99久久久| 国产婷婷色一区二区三区| 91丨九色丨国产丨porny| 性感美女久久精品| 精品人伦一区二区色婷婷| 不卡电影免费在线播放一区| 亚洲国产中文字幕在线视频综合| 欧美一区日韩一区| 国产精品亚洲一区二区三区在线 | 丁香六月久久综合狠狠色| 亚洲欧美欧美一区二区三区| 欧美精品乱码久久久久久按摩| 久久99热99| 亚洲女爱视频在线| 91精品国产综合久久久久久久久久 | 国产精品午夜免费| 欧美视频在线观看一区二区| 久久99精品一区二区三区| 一区在线播放视频| 91精品国产综合久久精品麻豆| 成人午夜视频在线观看| 亚洲国产精品一区二区久久 | 欧美变态凌虐bdsm| 99久久精品国产精品久久| 青青草精品视频| 国产精品久久久久久久久快鸭| 欧美日韩激情在线| 成人综合日日夜夜| 天堂蜜桃一区二区三区 | 亚洲乱码日产精品bd| 日韩精品一区国产麻豆| 色噜噜夜夜夜综合网| 精品一区二区三区免费视频| 亚洲精品老司机| 久久色.com| 欧美一区二区女人| 色欧美日韩亚洲| 国产成人午夜精品5599| 午夜视频久久久久久| 亚洲国产岛国毛片在线| 日韩欧美在线一区二区三区| 色偷偷久久一区二区三区| 国产91精品一区二区麻豆网站|