HM 인코더단 PU 분할 모드 및 CU 깊이 정보 추출

5110 단어 HEVC
HM 코드 TEncCU.cpp에서CompressCtu 함수의 주요 기능은 하나의 CTU를 압축하여 이 함수에서 호출하는 것이다.함수는 CTU를 구체적으로 구분하는 작업을 한다. 이 함수가 실행된 후에 그에 상응하는 정보는 그 매개 변수에 저장된다. xCompressCU(m ppcBestcU[0], m ppcTempcU[0], 0 DEBUG STRING PASS INTO(sDebug)), mppcBestcU[0]는 현재 최적임을 나타냅니다. mppcTempcU[0]는 계산이 진행 중인 현재 cu를 나타내므로 m 에서ppcBestcU[0]에서 적절한 CU 및 PU 정보를 추출합니다.HEVC에서 정보는 모두 4*4 크기로 저장되며, 한 CTU에서 4*4 블록마다 zscan 방식으로 저장되기 때문에 읽을 때 반드시 변환해야 합니다.다음은 코드입니다.
//PU        (by lyy)
  UInt print8CUOrder[64] = {0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60,64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252};

  int  N_LCU = pCtu->getCtuRsAddr();//CTU Raster  
  fstream outPU("PU_PartitonSize.txt",ios::out|ios::app); 
  outPU<<"the LCU's partitionSize information ,NO."<":"<256] = {0};
  for(UInt i = 0; i < 256; i++)
  {
      PU_PartitionSize[i] = m_ppcBestCU[0]->getPartitionSize(i);
  }
  for(UInt i = 0; i < 64; i++)
  {
      outPU<if((i+1)==64)
      {
          outPU<//CU    (by lyy)
    UInt PU_Depth[256] = {0};
    fstream outCUDepth("CUDepth.txt",ios::out|ios::app);
    outCUDepth<<"the LCU's CUDepth information ,NO."<":"<for(UInt i = 0; i < 256; i++)
    {
        PU_Depth[i] = m_ppcBestCU[0]->getDepth(i);
        }
    for(UInt i = 0; i < 64; i++)
    {
        outCUDepth<if((i+1)==64)
        {
            outCUDepth<

초보자, 학습 노트만 합니다.

좋은 웹페이지 즐겨찾기