headerencoder.h

来自「jpeg 2000 压缩算法源代码 核心ebcot」· C头文件 代码 · 共 96 行

H
96
字号
	
			m_pHeadBuffer->writeByte((BYTE)temp);
				
			}
		}
	

}

void CHeaderEncoder::WriteMainCOC(int nComNumber)
{

	bool bPrecinctUsed=false;
	int nPPX=0,nPPY=0;
	
	int nDecLev=m_pEncoderSpec->pWTDecLev->GetCompDef(nComNumber);
	int a=0;

	CSiz PrecinctDef=m_pEncoderSpec->pPrecinctSize->GetPrecinctSiz(-1,nComNumber,nDecLev);

	nPPX=PrecinctDef.GetWidth();
	nPPY=PrecinctDef.GetHeight();



	if ((nPPX!=CPrecinctSizeSpec::PRECINCT_PPX)||(nPPY!=CPrecinctSizeSpec::PRECINCT_PPY))
	{
		bPrecinctUsed=true;
		a=nDecLev+1;
	}


	m_pHeadBuffer->writeWord(COC);

	int nComNums=m_pCodedImgData->GetImgComNums();


	WORD markLenth=8+a;
	if(nComNums<257)
	{
		markLenth+=1;
	    m_pHeadBuffer->writeWord(markLenth);
		m_pHeadBuffer->writeByte((BYTE)nComNumber);

	}
	else
	{
		markLenth+=2;
	    m_pHeadBuffer->writeWord(markLenth);
		m_pHeadBuffer->writeWord((WORD)nComNumber);

	}



	BYTE Scoc=0;

	if (bPrecinctUsed)
	{
		Scoc|=SCOX_PRECINCT_PARTITION;

	}

	m_pHeadBuffer->writeByte(Scoc);

	m_pHeadBuffer->writeByte((BYTE)nDecLev);



	CSiz BlkSizeDef=m_pEncoderSpec->pBlkSize->GetCompDef(nComNumber);

	int BlkWidthDef,BlkHeightDef;
	BlkWidthDef=BlkSizeDef.GetWidth();
	BlkHeightDef=BlkSizeDef.GetHeight();

	BYTE temp=0;
	temp=(BYTE)(BlkWidthDef-2);
	m_pHeadBuffer->writeByte(temp);
	
	temp=(BYTE)(BlkHeightDef-2);
	m_pHeadBuffer->writeByte(temp);


	temp=0;

	if (m_pEncoderSpec->pBypass->GetCompDef(nComNumber))
	{
		temp|=OPT_BYPASS;
	}

	if (m_pEncoderSpec->pMQReset->GetCompDef(nComNumber))
	{
		temp|=OPT_RESET_MQ;

	}
	if (m_pEncoderSpec-

⌨️ 快捷键说明

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