1. 程式人生 > >HEVC/H265 HM10 0 分析(二)TComDataCU cpp

HEVC/H265 HM10 0 分析(二)TComDataCU cpp

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

以下分析TComDataCU.cpp。這個cpp是很重要的,要分幾次分析完,這是分析TComDataCU.cpp(一)。


Void TComDataCU::getPartPosition( UInt partIdx, Int& xP, Int& yP, Int& nPSW, Int& nPSH){  UInt col = m_uiCUPelX;  UInt row = m_uiCUPelY;  switch
( m_pePartSize[0] )  {  case SIZE_2NxN:    nPSW = getWidth(0);          nPSH = getHeight(0) >> 1;     xP   = col;    yP   = (partIdx ==0)? row: row + nPSH;    breakcase
SIZE_Nx2N:    nPSW = getWidth(0) >> 1;     nPSH = getHeight(0);          xP   = (partIdx ==0)? col: col + nPSW;    yP   = row;    breakcase SIZE_NxN:    nPSW = getWidth(0
) >> 1;     nPSH = getHeight(0) >> 1;     xP   = col + (partIdx&0x1)*nPSW;    yP   = row + (partIdx>>1)*nPSH;    breakcase SIZE_2NxnU:    nPSW = getWidth(0);    nPSH = ( partIdx == 0 ) ?  getHeight(0) >> 2 : ( getHeight(0) >> 2 ) + ( getHeight(0) >> 1 );    xP   = col;    yP   = (partIdx ==0)? row: row + getHeight(0) - nPSH;    breakcase SIZE_2NxnD:    nPSW = getWidth(0);    nPSH = ( partIdx == 0 ) ?  ( getHeight(0) >> 2 ) + ( getHeight(0) >> 1 ) : getHeight(0) >> 2;    xP   = col;    yP   = (partIdx ==0)? row: row + getHeight(0) - nPSH;    breakcase SIZE_nLx2N:    nPSW = ( partIdx == 0 ) ? getWidth(0) >> 2 : ( getWidth(0) >> 2 ) + ( getWidth(0) >> 1 );    nPSH = getHeight(0);    xP   = (partIdx ==0)? col: col + getWidth(0) - nPSW;    yP   = row;    breakcase SIZE_nRx2N:    nPSW = ( partIdx == 0 ) ? ( getWidth(0) >> 2 ) + ( getWidth(0) >> 1 ) : getWidth(0) >> 2;    nPSH = getHeight(0);    xP   = (partIdx ==0)? col: col + getWidth(0) - nPSW;    yP   = row;    breakdefault:    assert ( m_pePartSize[0] == SIZE_2Nx2N );    nPSW = getWidth(0);          nPSH = getHeight(0);          xP   = col ;    yP   = row ;    break;  }}


在 2N*N, 2N*nU,2N*nD 中,上面部分的partIdx 為0,下面部分為1;

在N*2N,nL*2N,nR*2N中, 左邊部分的partIdx為0,右邊部分為1;

在N*N中, 按四叉樹的結構,partIdx 分別為0,1,2,3;

在2N*2N中, partIdx只能為0;


xP,yP的值是CU塊左上角的絕對位置值,nPSW,nPSH是當前CU塊的寬度和高度,記住,CU是可以巢狀的,CU包含CU,所以有xP,yP,nPSW,nPSH就能夠唯一的確定CU塊,

限於時間關係,今天先分析至此。


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述