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

📄 tilecomdata.cpp

📁 jpeg 2000 压缩算法源代码 核心ebcot
💻 CPP
字号:
>1)<<1;
			    bi=m*w+n;
			    m_pnTreeValues[r+1][(m>>1)*((w+1)>>1)+(n>>1)]=((m_pnTreeValues[r][bi]<m_pnTreeValues[r][bi+w])?m_pnTreeValues[r][bi]:m_pnTreeValues[r][bi+w]);


			}
		}

	    if (h%2!=0)
		{
		    m=((h>>1)<<1);

		    for (n=((w>>1)<<1)-2;n>=0;n-=2)
			{
			    bi=m*w+n;

			    m_pnTreeValues[r+1][(m>>1)*((w+1)>>1)+(n>>1)]=((m_pnTreeValues[r][bi]<m_pnTreeValues[r][bi+1])? m_pnTreeValues[r][bi]:m_pnTreeValues[r][bi+1]);

			}
		
		    if (w%2!=0)
			{
		    	n=(w>>1)<<1;
		    	
		    	m_pnTreeValues[r+1][(m>>1)*((w+1)>>1)+(n>>1)]=m_pnTreeValues[r][m*w+n];


			}
		}


	}
}



void CTagTreeEncoder::SetValue(int *pnTreeValues)
{
	if (m_nLevs==0)
	{
		printf("TagTree's Level cann't be 0 !\n");
		return;
	}


	int nMinTreeValue;

	nMinTreeValue=m_pnTreeStates[m_nLevs-1][0];

	int i;

	for (i=0;i<m_nBaseWidth*m_nBaseHeight;i++)
	{
		if (((m_pnTreeValues[0][i]<nMinTreeValue)||(pnTreeValues[i]<nMinTreeValue))&&(m_pnTreeValues[0][i]!=pnTreeValues[i]))
		{
			printf("TagTree set values error!\n");
			return;
		}

		m_pnTreeValues[0][i]=pnTreeValues[i];

	}

	RecalcTreeValues();

}

void CTagTreeEncoder::SetValue(int m, int n, int nValue)
{
	if ((m_nLevs==0)||(n>=m_nBaseWidth)||(m>=m_nBaseHeight)||(nValue<m_pnTreeStates[m_nLevs-1][0])||(m_pnTreeValues[0][m*m_nBaseWidth+n]<m_pnTreeStates[m_nLevs-1][0]))
	{
		printf("TagTree set value error!\n");
		return;
	}

	m_pnTreeValues[0][m*m_nBaseWidth+n]=nValue;

	int r,index;

	for (r=1;r<m_nLevs;r++)
	{
		index=(m>>r)*((m_nBaseWidth+(1<<r)-1)>>r)+(n>>r);
		
		if (nValue<m_pnTreeValues[r][index])
		{
			m_pnTreeValues[r][index]=nValue;
		}
		else
		{
			break;
		}

	}

}

void CTagTreeEncoder::Reset(int *pnValues)
{
	int r;

	int w=m_nBaseWidth,h=m_nBaseHeight;

	int OrgVal=0;
	for(r=0;r<m_nLevs;r++)
	{
		InitializeArray(m_pnTreeStates[r],w*h,OrgVal);

	}

	int k;
	
	for (k=0;k<m_nBaseWidth*m_nBaseHeight-1;k++)
		m_pnTreeValues[0][k]=pnValues[k];

	RecalcTreeValues();

	m_bSaved=false;


	



}


 /**
     * Encodes information for the specified element of the tree,
     * given the t

⌨️ 快捷键说明

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