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

📄 imgcomdata.h

📁 jpeg 2000 压缩算法源代码 核心ebcot
💻 H
字号:
 eQuanType=m_pEncoderSpec->pQuantizerType->GetCompDef(nComNumber);

	m_pHeadBuffer->writeWord(QCC);

	int nComNums=m_pCodedImgData->GetImgComNums();
	
	int nCqcclenth=1;
	

	if (nComNums>=257)
	{
		nCqcclenth=2;
	}


	int marklenth;
	int GuardBits=m_pEncoderSpec->pGuardBits->GetCompDef(nComNumber);
 
	BYTE Sqcc=0;
	Sqcc=((BYTE)GuardBits)<<SQCX_GB_SHIFT;

	/**
	此处仅考虑mallat二进制塔式小波分解;
	*/


	CTileBlkWTData *pCodedTileBlkWTData=m_pCodedImgData->GetTileBlkWTData(tcIdx,nComNumber);

	
	CBandBlkWTData *pCodedBandBlkWTData=pCodedTileBlkWTData->GetTileBlkWTData();
	
	CBand BandInfo;

	int bandIdx;
    int nEb,nUb;
	WORD usEb,usUb,temp;

	switch (eQuanType)
	{
	case TYPE_NO_QUANT:
		{
		   marklenth=2+nCqcclenth+nDecLev*3+1;

		   m_pHeadBuffer->writeWord((WORD)marklenth);


		   if (nComNums>=257)
			   m_pHeadBuffer->writeWord((WORD)nComNumber);
		   else
			   m_pHeadBuffer->writeByte((BYTE)nComNumber);

		   Sqcc|=(BYTE)SQCX_NO_QUANTIZATION;
		   m_pHeadBuffer->writeByte(Sqcc);


		   for (bandIdx=0;bandIdx<3*nDecLev+1;bandIdx++)
		   {
			   BandInfo=pCodedBandBlkWTData[bandIdx].GetBandInfo();

               nEb=BandInfo.GetEb();

			   m_pHeadBuffer->writeByte((BYTE)(nEb&0x1F));

		   }
		  


		}
		break;
	case TYPE_IMPLICIT_QUANT:
		{
		   marklenth=2+nCqcclenth+2;

		   m_pHeadBuffer->writeWord((WORD)marklenth);
		   
		   if (nComNums>=257)
			   m_pHeadBuffer->writeWord((WORD)nComNumber);
		   else
			   m_pHeadBuffer->writeByte((BYTE)nComNumber);
		   
		   Sqcc|=(BYTE)SQCX_SCALAR_DERIVED;

		   m_pHeadBuffer->writeByte(Sqcc);

		   BandInfo=pCodedBandBlkWTData[0].GetBandInfo();

		   nEb=BandInfo.GetEb();
		   nUb=BandInfo.GetUb();

		   usEb=(WORD)(nEb&CQuantizerStd::QSTEP_MAX_EX

⌨️ 快捷键说明

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