Ignore:
Timestamp:
29 Jan 2014, 03:07:07 (11 years ago)
Author:
ntt
Message:

Integration of G0148

Location:
branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder/TEncCu.cpp

    r795 r809  
    19551955          }
    19561956          else
     1957#endif
     1958#if NTT_STORE_SPDV_VSP_G0148
     1959          if ( vspFlag[uiMergeCand] )
    19571960          {
    1958 #endif
     1961            UInt partAddr;
     1962            Int vspSize;
     1963            Int width, height;
     1964            rpcTempCU->getPartIndexAndSize( 0, partAddr, width, height );
     1965
     1966            if( uhInterDirNeighbours[ uiMergeCand ] & 0x01 )
     1967            {
     1968              rpcTempCU->setMvFieldPUForVSP( rpcTempCU, partAddr, width, height, REF_PIC_LIST_0, cMvFieldNeighbours[ 2*uiMergeCand + 0 ].getRefIdx(), vspSize );
     1969              rpcTempCU->setVSPFlag( partAddr, vspSize );
     1970            }
     1971            else
     1972            {
     1973              rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     1974            }
     1975            if( uhInterDirNeighbours[ uiMergeCand ] & 0x02 )
     1976            {
     1977              rpcTempCU->setMvFieldPUForVSP( rpcTempCU, partAddr, width, height, REF_PIC_LIST_1 , cMvFieldNeighbours[ 2*uiMergeCand + 1 ].getRefIdx(), vspSize );
     1978              rpcTempCU->setVSPFlag( partAddr, vspSize );
     1979            }
     1980            else
     1981            {
     1982              rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
     1983            }
     1984
     1985            rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
     1986          }
     1987          else
     1988#endif
     1989          {
    19591990            rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level
    19601991            rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    19611992            rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1962 #if H_3D_SPIVMP
    19631993          }
    1964 #endif
    19651994       // do MC
    19661995       m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     
    19922021
    19932022          rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth );
     2023#if NTT_STORE_SPDV_VSP_G0148 // possible bug fix
     2024          if( rpcTempCU->getSkipFlag(0) )
     2025          {
     2026            rpcTempCU->setTrIdxSubParts(0, 0, uhDepth);
     2027          }
     2028#endif
    19942029#if H_3D_INTER_SDC
    19952030          TComDataCU *rpcTempCUPre = rpcTempCU;
     
    22142249
    22152250  m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
    2216 
     2251 
     2252#if NTT_STORE_SPDV_VSP_G0148 // possible bug fix
     2253  if( rpcTempCU->getQtRootCbf(0)==0 )
     2254  {
     2255    rpcTempCU->setTrIdxSubParts(0, 0, uhDepth);
     2256  }
     2257#endif
    22172258
    22182259#if H_3D_VSO // M4
  • branches/HTM-9.3-dev1-NTT/source/Lib/TLibEncoder/TEncSearch.cpp

    r795 r809  
    36433643     
    36443644      PartSize ePartSize = pcCU->getPartitionSize( 0 );
     3645     
     3646#if H_3D_VSP && NTT_STORE_SPDV_VSP_G0148
     3647      pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3648      pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3649#endif
    36453650
    36463651#if H_3D_SPIVMP
     
    36623667      }
    36633668      else
    3664       {
    3665 #endif
     3669#endif
     3670#if NTT_STORE_SPDV_VSP_G0148
     3671      if ( vspFlag[uiMergeCand] )
     3672      {
     3673        UInt partAddr;
     3674        Int vspSize;
     3675        Int width, height;
     3676        pcCU->getPartIndexAndSize( iPUIdx, partAddr, width, height );
     3677
     3678        if( uhInterDirNeighbours[ uiMergeCand ] & 0x01 )
     3679        {
     3680          pcCU->setMvFieldPUForVSP( pcCU, partAddr, width, height, REF_PIC_LIST_0, cMvFieldNeighbours[ 2*uiMergeCand + 0 ].getRefIdx(), vspSize );
     3681          pcCU->setVSPFlag( partAddr, vspSize );
     3682        }
     3683        else
     3684        {
     3685          pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
     3686        }
     3687        if( uhInterDirNeighbours[ uiMergeCand ] & 0x02 )
     3688        {
     3689          pcCU->setMvFieldPUForVSP( pcCU, partAddr, width, height, REF_PIC_LIST_1, cMvFieldNeighbours[ 2*uiMergeCand + 1 ].getRefIdx(), vspSize );
     3690          pcCU->setVSPFlag( partAddr, vspSize );
     3691        }
     3692        else
     3693        {
     3694          pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
     3695        }
     3696      }
     3697      else
     3698#endif
     3699      {
    36663700        pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    36673701        pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    3668 #if H_3D_SPIVMP
    3669       }
    3670 #endif
    3671 
    3672 #if H_3D_VSP
     3702      }
     3703
     3704#if H_3D_VSP && !NTT_STORE_SPDV_VSP_G0148
    36733705      pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    36743706      pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     
    44264458        }
    44274459        else
    4428         {
    4429 #endif
     4460#endif
     4461#if NTT_STORE_SPDV_VSP_G0148
     4462        if ( vspFlag[uiMRGIndex] )
     4463        {
     4464          UInt partAddrTemp;
     4465          Int vspSize;
     4466          Int width, height;
     4467          pcCU->getPartIndexAndSize( iPartIdx, partAddrTemp, width, height ); // true or pcCU->getTotalNumPart()==256
     4468
     4469          if( uiMRGInterDir & 0x01 )
     4470          {
     4471            pcCU->setMvFieldPUForVSP( pcCU, partAddrTemp, width, height, REF_PIC_LIST_0, cMRGMvField[0].getRefIdx(), vspSize );
     4472            pcCU->setVSPFlag( partAddrTemp, vspSize );
     4473          }
     4474          else
     4475          {
     4476            pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx );
     4477          }
     4478          if( uiMRGInterDir & 0x02 )
     4479          {
     4480            pcCU->setMvFieldPUForVSP( pcCU, partAddrTemp, width, height, REF_PIC_LIST_1, cMRGMvField[1].getRefIdx(), vspSize );
     4481            pcCU->setVSPFlag( partAddrTemp, vspSize );
     4482          }
     4483          else
     4484          {
     4485            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx );
     4486          }
     4487          pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4488        }
     4489        else
     4490#endif
     4491        {
    44304492          pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    44314493          {
     
    44334495            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx );
    44344496          }
    4435 #if H_3D_SPIVMP
    4436         }
    4437 #endif
     4497        }
    44384498
    44394499        pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvd    ( cMvZero,            ePartSize, uiPartAddr, 0, iPartIdx );
Note: See TracChangeset for help on using the changeset viewer.