📄 partitioninfo.cpp
字号:
Number][nComNumber][r][s][nBlkNumber].SetCoordOrg(ntblkx0InPrec,ntblky0InPrec);
m_pCBlkInResTile[nTileNumber][nComNumber][r][s][nBlkNumber].SetCoordSiz(ntblkx1InPrec,ntblky1InPrec);
*/
m_pCBlkInResTile[nTileNumber][nComNumber][r][s][nBlkNumber].SetCoordOrg(ntblkx0,ntblky0);
m_pCBlkInResTile[nTileNumber][nComNumber][r][s][nBlkNumber].SetCoordSiz(ntblkx1,ntblky1);
}
}
}
//在返回的数组pCBlkIndexPrec中存放有位于nPrecIndex的precinct中的索引为sidx的子带上的码块;
//pCBlkInPrecIndex[0]是位于该precinct上的码块的个数;
//pCBlkInPrecIndex[1]表示x方向码块的个数;
//pCBlkInPrecIndex[2]表示y方向的码块个数;
int * CPacketEncoder::GetBlkInPrec(int nTileNumber, int nComNumber, int r, int sidx, int nPrecIndex)
{
int *pnCBlkInPrec=0;
int nPrecNums=(m_pcoordPrecNums[nTileNumber][nComNumber][r].m_nX)*(m_pcoordPrecNums[nTileNumber][nComNumber][r].m_nY);
int mrl=m_pnMrl[nTileNumber][nComNumber];
if (r==0)
mrl=mrl-1;
if (nPrecNums<=0)
{
// printf("no precinct in the resolution!\n");
return 0;
}
if ((nPrecIndex<0)||(nPrecIndex>=nPrecNums))
{
// printf("the precinct index beyond precnums!\n");
return 0;
}
CUnitInfo PrecInResTile=m_pPrecInResTile[nTileNumber][nComNumber][r][sidx][nPrecIndex];
int nPrecNumber;
nPrecNumber=PrecInResTile.GetUnitNumber();
if (nPrecNumber==-1)
{
// printf("no precinct in the subband!\n");
return 0;
}
int ntprecx0,ntprecy0,ntprecx1,ntprecy1;
ntprecx0=PrecInResTile.GetCoordUnitOrg().m_nX;
ntprecy0=PrecInResTile.GetCoordUnitOrg().m_nY;
ntprecx1=PrecInResTile.GetCoordUnitSiz().m_nX;
ntprecy1=PrecInResTile.GetCoordUnitSiz().m_nY;
CBandBlkWTData *pCodedBandBlkData=m_pCodedImgBlkData->GetTileBlkWTData(nTileNumber,nComNumber)->GetBandBlkWTData(mrl-r,sidx);
int nBlkNums=pCodedBandBlkData->GetBlkNums();
int nXBlkNums,nYBlkNums;
nXBlkNums=pCodedBandBlkData->GetXBlkNums();
nYBlkNums=pCodedBandBlkData->GetYBlkNums();
int nBlkNumber;
CUnitInfo BlkInfo;
if (m_pCBlkInResTile[nTileNumber][nComNumber][r][s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -