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

📄 full.cpp

📁 预测编码中的全搜索编码方法 该算法用c实现 大家可以参考参考
💻 CPP
📖 第 1 页 / 共 2 页
字号:
 int dx=0;
 int dy=0;

 void main()
 {

	 for(int i=0;i<16;i++)
	{
	     for(int j=0;j<16;j++)
		{
		       cur_block[i][j]=cur_frame[i+16*m][j+16*n];
		}
	}//取出帧中的一个像素块放到cur_block[16][16]中去

	 
	 int error_full[16][16];
	 int result_full=0;
     result_full=full_search();

	 dx=16*m-full_x[result_full];
	 dy=16*n-full_y[result_full];

	for(int a=0;a<16;a++)
	{
		for(int b=0;b<16;b++)
		{
			error_full[a][b]=0;
		}
	}
cout<<"该块的带运动补偿的全搜索的预测误差为:"<<endl;
for(int a7=0;a7<16;a7++)
{cout<<"  ";
for(int b7=0;b7<16;b7++)
{
	error_full[a7][b7]=cur_block[a7][b7]-old_frame[full_x[result_full]+a7][full_y[result_full]+b7];
	cout<<error_full[a7][b7]<<" ";
}
cout<<endl;
}
cout<<"运动矢量为:("<<dx<<","<<dy<<")"<<endl;
 }
int mad(int curblock[16][16],int oldblock[16][16])
{
	int temp=0;
	int value=0;
	int sum=0;
	int mad_value=0;
	for(int i2=0;i2<16;i2++)
	{
		for(int j2=0;j2<16;j2++)
		{
			temp=curblock[i2][j2]-oldblock[i2][j2];
			value=(int)abs(temp);
			sum=sum+value;
		} 
	}

	mad_value=sum/256;
	return mad_value;
}//两块的平均绝对帧差MAD


int full_search()
{int temp_full[900];
int i_full=0;
  for(int i=0;i<900;i++)
  {
	  temp_full[i]=0;
      full_x[i]=0;
      full_y[i]=0;
  }
  int j=0;
  for(int i1=0;i1<30;i1++)
	  for(int j1=0;j1<30;j1++)
	  {
	    for(int i_1=0;i_1<16;i_1++)
		{for(int j_1=0;j_1<16;j_1++)
		  
			{old_block[i_1][j_1]=old_frame[16*m-d+i1+i_1][16*n-d+j1+j_1];}
		}

		temp_full[j]=mad(cur_block,old_block);
		full_x[j]=16*m-d+i1;
		full_y[j]=16*n-d+j1;
		j++;
	  }
 int temp_full1[900];
 for(int i2=0;i2<900;i2++)
 {
	 temp_full1[i2]=temp_full[i2];
 }	 
 
 int temp_full2=0;
 for(int i3=0;i3<900;i3++)
 {
 
	 for(int j3=i3+1;j3<900;j3++)
	 {
		 if(temp_full1[i3]>temp_full1[j3])
		 {
			 temp_full2=temp_full1[i3];
	         temp_full1[i3]=temp_full1[j3];
		     temp_full1[j3]=temp_full2;
		 }
	 }
 }//从小到大排序
 
 for(int i4=0;i4<900;i4++)
 {
	 if(temp_full1[0]==temp_full[i4])
	 {
	 
		 i_full=i4;
	 }
 }
return i_full;
}

⌨️ 快捷键说明

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