stdentropyencoderoptions.cpp

来自「jpeg 2000 压缩算法源代码 核心ebcot」· C++ 代码 · 共 70 行

CPP
70
字号
UMS,MQ_INIT);
		

	error=false;

	if ((options&OPT_BYPASS)!=0)
	{
		if (m_pBin==0)
		{
			if (in==0)
			{
				in=MQ->GetByteInputBuffer();
			}
			m_pBin=new ByteToBitInput(in);

		}
	}

   
    switch(Band.GetBandType())
	{
	case LL:
	case LH:
		pZC_LUT=ZC_LUT_LH;
		break;
	case HL:
		pZC_LUT=ZC_LUT_HL;
		break;
	case HH:
		pZC_LUT=ZC_LUT_HH;
		break;
	default:
		AfxMessageBox(" code block type unknow!");
		return;
	}


	int SkipMSBP=pBlkRateDistStats->GetSkipMSBP();
	int curbp=30-SkipMSBP;


	if ((curbp>=0)&&(npasses>0))
	{
		isTerm=(options & OPT_REG_TERM) != 0 ||
                (((options & OPT_BYPASS) != 0 )&&
                 ((31-NUM_NON_BYPASS_MS_BP-SkipMSBP)>=curbp));
		
		error=CleanupPass(pQuanData,nBWidth,nBHeight,m_pState,MQ,curbp,isTerm,pZC_LUT,options);
		npasses--;
		
		if(!error)
			curbp--;

	}

	if(!error)
	{
		while ((curbp>=0)&&(npasses>0))
		{

			 if((options & OPT_BYPASS) != 0 &&
                   (curbp < 31-NUM_NON_BYPASS_MS_BP-SkipMSBP))
			 {
                    // Use bypass decoding mode (only all bit-planes
                    // after the first 4 bit-planes).
                    
                    // Here starts a new raw segment
                    m_pBin->SetBufferArray(0,nInBufLength,-1,pTruncRates[++tsidx]);
                    
					isTerm = (opti

⌨️ 快捷键说明

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