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

📄 vtc_shape_shapeenhcommon.cpp

📁 完整的RTP RTSP代码库
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		Int blkx, 		Int blky, 		Int mblksize, 		Int max_blkx){    Int i, j, i2, j2, x, y, x2, y2, k, l;    Int mborder		= MBORDER,	mblksize_ext	= mblksize+(mborder<<1);/* bordered bab size in the current layer: 20 */    Int border		= BORDER,	blksize		= mblksize>>1,		/* bab size in the lower layer : 8 */	blksize_ext	= blksize+(border<<1);	/* bordered bab size in the lower layer: 8 */    Int width2 = object_width,	height2 = object_height,	width = width2 >> 1,	height = height2 >> 1;     /*-- Initialize bordered babs -----------------------------------*/    for ( i=k=0; i<blksize_ext; i++)	for( j=0; j<blksize_ext; j++, k++)		bordered_lower_bab[k] = 0;    for ( i=k=0; i<mblksize_ext; i++)	for( j=0; j<blksize_ext; j++, k++)		bordered_half_bab[k] = 0;    for ( i=k=0; i<mblksize_ext; i++)	for( j=0; j<mblksize_ext; j++, k++)		bordered_curr_bab[k] = 0;	    /*-- Copy original babs ----------------------------------------*/    for ( j=k=0, l=border*blksize_ext; j<blksize; j++, l+=blksize_ext )         for ( i=0; i<blksize; i++, k++ ) 	   bordered_lower_bab[l+i+border] = lower_bab[k];    for ( j=k=0, l=mborder*blksize_ext; j<mblksize; j++, l+=blksize_ext )         for ( i=0; i<blksize; i++, k++ ) 	   bordered_half_bab[l+i+border] = half_bab[k];    for ( j=k=0, l=mborder*mblksize_ext; j<mblksize; j++, l+=mblksize_ext )         for ( i=0; i<mblksize; i++, k++ ) 	   bordered_curr_bab[l+i+mborder] = curr_bab[k];    /*----- Top border -----------------------------------------------*/    /*-- Top border for lower  layer --*/    x = blkx * blksize - border;    y = blky * blksize - border;    for( j=l=0, k=y*width; j<border; j++, k+=width, l+=blksize_ext )     {          for( i=0; i<blksize_ext; i++ ) 	  {	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_lower_bab[l+i] = ( LowShape[k+x+i] != 0);	  }    }   /*-- Top border for half  layer --*/    x = blkx * blksize - border;    y = blky * mblksize - mborder;    for( j=l=0, k=y*width; j<mborder; j++, k+=width, l+=blksize_ext )     {          for( i=0; i<blksize_ext; i++ ) 	  {	    if( (0 <= y+j && y+j < height2) && (0 <= x+i && x+i < width) ) 	    	bordered_half_bab[l+i] = ( HalfShape[k+x+i] != 0);	  }    }    /*-- Top border for current layer --*/    x2 = blkx * mblksize - mborder;    y2 = blky * mblksize - mborder;    for( j2=l=0, k=y2*width2; j2<mborder; j2++, k+=width2, l+=mblksize_ext )     {          for( i2=0; i2<mblksize_ext; i2++ ) 	  {	    if( (0 <= y2+j2 && y2+j2 < height2) && (0 <= x2+i2 && x2+i2 < width2) ) 	    	bordered_curr_bab[l+i2] = ( CurShape[k+x2+i2] != 0);	  }    }    /*----- Left border ----------------------------------------------*/    /*--  Left border for the lower layer --*/    x = blkx * blksize - border;    y = blky * blksize;    for( j=0, l=border*blksize_ext, k=y*width; j<blksize; j++, k+=width, l+=blksize_ext)     {          for( i=0; i<border; i++ ) 	  {	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_lower_bab[l+i] = ( LowShape[k+x+i] != 0);	  }    }   /*--  Left border for the half higher layer --*/    x = blkx * blksize - border;    y = blky * mblksize;    for( j=0, l=mborder*blksize_ext, k=y*width; j<mblksize; j++, k+=width, l+=blksize_ext)     {          for( i=0; i<border; i++ ) 	  {	    if( (0 <= y+j && y+j < height2) && (0 <= x+i && x+i < width) ) 	    	bordered_half_bab[l+i] = ( HalfShape[k+x+i] != 0);	  }    }   /*--  Left border for the current layer --*/    x2 = blkx * mblksize - mborder;    y2 = blky * mblksize;    for( j2=0, l=mborder*mblksize_ext, k=y2*width2; j2<mblksize; 					j2++, k+=width2, l+=mblksize_ext)     {          for( i2=0; i2<mborder; i2++ ) 	  {	    if( (0 <= y2+j2 && y2+j2 < height2) && (0 <= x2+i2 && x2+i2 < width2) ) 	    	bordered_curr_bab[l+i2] = ( CurShape[k+x2+i2] != 0);	  }    }    /*----- Right border ---------------------------------------------*/    x = (blkx + 1) * blksize;    y = blky * blksize;    x2 = (blkx + 1) * mblksize;    y2 = blky * mblksize;    /*-- Right border for the lower layer --*/    for ( j=0, l=border*blksize_ext, k=y*width; j<blksize; j++, k+=width, l+=blksize_ext)     {          for ( i=0; i<border; i++ ) 	  {	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_lower_bab[l+i+blksize+border] = ( LowShape[k+x+i] != 0);          }    }   /*----- Right border ---------------------------------------------*/    x = (blkx + 1) * blksize;    y = blky * blksize;    x2 = (blkx + 1) * mblksize;    y2 = blky * mblksize;    /*-- Right border for the half layer --*/    for ( j2=0, l=mborder*blksize_ext; j2<mblksize; j2++, l+=blksize_ext)     {	  j = j2>>1;	  k = (y+j)*width;          for ( i=0; i<border; i++ ) 	  {	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) {	    	bordered_half_bab[l+i+blksize+border] = ( LowShape[k+x+i] != 0);		if(/* LowShape[k+x+i-1] == 0 && */ y+j+1 < height && j2%2==1) { /* avoid the odd subsampling mishap */		  bordered_half_bab[l+i+blksize+border] =  ( LowShape[k+x+i] != 0) | ( LowShape[k+width+x+i] != 0);		}	    }          }    }    /*-- Right border for the currnet layer --*/    for ( j2=0, l=mborder*mblksize_ext; j2<mblksize; j2++, l+=mblksize_ext)     {	  j = j2>>1;	  k = (y+j)*width;          for ( i2=0; i2<mborder; i2++ ) 	  {	    i = i2 >> 1;	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_curr_bab[l+i2+mblksize+mborder] = ( LowShape[k+x+i] != 0);          }    }       /*----- Bottom border --------------------------------------------*/    x = blkx * blksize - border;    y = (blky + 1) * blksize;    x2 = blkx * mblksize - mborder;    y2 = (blky + 1) * mblksize;    /*-- Bottom border for the lower layer --*/    for ( j=0, l=(blksize+border)*blksize_ext, k=y*width; j<border; 						j++, k+=width, l+=blksize_ext)     {          for ( i=0; i<blksize_ext; i++ ) 	  {	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_lower_bab[l+i] = ( LowShape[k+x+i] != 0);          }    }    /*-- Bottom border for the half layer --*/    for ( j2=0, l=(mblksize+mborder)*blksize_ext; j2<mborder; j2++, l+=blksize_ext)     {	  j = j2>>1;	  k = (y+j)*width;	          for ( i=0; i<blksize_ext; i++ ) 	  {	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_half_bab[l+i] = ( LowShape[k+x+i] != 0);          }    }   /*-- Bottom border for the current layer --*/    for ( j2=0, l=(mblksize+mborder)*mblksize_ext; j2<mborder; j2++, l+=mblksize_ext)     {	  j = j2>>1;	  k = (y+j)*width;	          for ( i2=0; i2<mblksize_ext; i2++ ) 	  {	    i = i2>>1;	    if( (0 <= y+j && y+j < height) && (0 <= x+i && x+i < width) ) 	    	bordered_curr_bab[l+i2] = ( LowShape[k+x+i] != 0);          }    }    return;}

⌨️ 快捷键说明

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