Changeset 823 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibDecoder
- Timestamp:
- 9 Jul 2014, 03:42:42 (11 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibDecoder
- Files:
-
- 2 edited
-
TDecCAVLC.cpp (modified) (2 diffs)
-
TDecTop.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r815 r823 255 255 if( pcPPS->getTilesEnabledFlag() ) 256 256 { 257 READ_UVLC ( uiCode, "num_tile_columns_minus1" ); pcPPS->setNum ColumnsMinus1( uiCode );258 READ_UVLC ( uiCode, "num_tile_rows_minus1" ); pcPPS->setNum RowsMinus1( uiCode );259 READ_FLAG ( uiCode, "uniform_spacing_flag" ); pcPPS->set UniformSpacingFlag( uiCode);260 261 if( !pcPPS->get UniformSpacingFlag())262 { 263 UInt* columnWidth = (UInt*)malloc(pcPPS->getNumColumnsMinus1()*sizeof(UInt));264 for(UInt i=0; i<pcPPS->getNum ColumnsMinus1(); i++)257 READ_UVLC ( uiCode, "num_tile_columns_minus1" ); pcPPS->setNumTileColumnsMinus1( uiCode ); 258 READ_UVLC ( uiCode, "num_tile_rows_minus1" ); pcPPS->setNumTileRowsMinus1( uiCode ); 259 READ_FLAG ( uiCode, "uniform_spacing_flag" ); pcPPS->setTileUniformSpacingFlag( uiCode == 1 ); 260 261 if( !pcPPS->getTileUniformSpacingFlag()) 262 { 263 std::vector<Int> columnWidth(pcPPS->getNumTileColumnsMinus1()); 264 for(UInt i=0; i<pcPPS->getNumTileColumnsMinus1(); i++) 265 265 { 266 266 READ_UVLC( uiCode, "column_width_minus1" ); 267 267 columnWidth[i] = uiCode+1; 268 268 } 269 pcPPS->setColumnWidth(columnWidth); 270 free(columnWidth); 271 272 UInt* rowHeight = (UInt*)malloc(pcPPS->getNumRowsMinus1()*sizeof(UInt)); 273 for(UInt i=0; i<pcPPS->getNumRowsMinus1(); i++) 269 pcPPS->setTileColumnWidth(columnWidth); 270 271 std::vector<Int> rowHeight (pcPPS->getTileNumRowsMinus1()); 272 for(UInt i=0; i<pcPPS->getTileNumRowsMinus1(); i++) 274 273 { 275 274 READ_UVLC( uiCode, "row_height_minus1" ); 276 275 rowHeight[i] = uiCode + 1; 277 276 } 278 pcPPS->setRowHeight(rowHeight); 279 free(rowHeight); 280 } 281 282 if(pcPPS->getNumColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0) 277 pcPPS->setTileRowHeight(rowHeight); 278 } 279 280 if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0) 283 281 { 284 282 READ_FLAG ( uiCode, "loop_filter_across_tiles_enabled_flag" ); pcPPS->setLoopFilterAcrossTilesEnabledFlag( uiCode ? true : false ); … … 1025 1023 READ_FLAG( uiCode, "cprms_present_flag[i]" ); pcVPS->setCprmsPresentFlag( uiCode == 1 ? true : false, i ); 1026 1024 } 1025 else 1026 { 1027 pcVPS->setCprmsPresentFlag( true, i ); 1028 } 1029 1027 1030 parseHrdParameters(pcVPS->getHrdParameters(i), pcVPS->getCprmsPresentFlag( i ), pcVPS->getMaxTLayers() - 1); 1028 1031 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecTop.cpp
r822 r823 854 854 pps->setSPS(sps); 855 855 #if REPN_FORMAT_IN_VPS 856 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNum ColumnsMinus1() + 1) : 1);857 #else 858 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNum ColumnsMinus1() + 1) : 1);856 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1); 857 #else 858 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1); 859 859 #endif 860 860 pps->setMinCuDQPSize( sps->getMaxCUWidth() >> ( pps->getMaxCuDQPDepth()) ); … … 1651 1651 Bool bNextSlice = pcSlice->isNextSlice(); 1652 1652 1653 UInt uiCummulativeTileWidth; 1654 UInt uiCummulativeTileHeight; 1655 UInt i, j, p; 1656 1657 //set NumColumnsMins1 and NumRowsMinus1 1658 pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() ); 1659 pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() ); 1660 1661 //create the TComTileArray 1662 pcPic->getPicSym()->xCreateTComTileArray(); 1663 1664 if( pcSlice->getPPS()->getUniformSpacingFlag() ) 1665 { 1666 //set the width for each tile 1667 for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++) 1668 { 1669 for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++) 1670 { 1671 pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )-> 1672 setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1) 1673 - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) ); 1674 } 1675 } 1676 1677 //set the height for each tile 1678 for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++) 1679 { 1680 for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++) 1681 { 1682 pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )-> 1683 setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1) 1684 - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) ); 1685 } 1686 } 1687 } 1688 else 1689 { 1690 //set the width for each tile 1691 for(j=0; j < pcSlice->getPPS()->getNumRowsMinus1()+1; j++) 1692 { 1693 uiCummulativeTileWidth = 0; 1694 for(i=0; i < pcSlice->getPPS()->getNumColumnsMinus1(); i++) 1695 { 1696 pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcSlice->getPPS()->getColumnWidth(i) ); 1697 uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(i); 1698 } 1699 pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth ); 1700 } 1701 1702 //set the height for each tile 1703 for(j=0; j < pcSlice->getPPS()->getNumColumnsMinus1()+1; j++) 1704 { 1705 uiCummulativeTileHeight = 0; 1706 for(i=0; i < pcSlice->getPPS()->getNumRowsMinus1(); i++) 1707 { 1708 pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcSlice->getPPS()->getRowHeight(i) ); 1709 uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(i); 1710 } 1711 pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight ); 1712 } 1713 } 1714 1715 pcPic->getPicSym()->xInitTiles(); 1653 UInt i; 1654 pcPic->getPicSym()->initTiles(pcSlice->getPPS()); 1716 1655 1717 1656 //generate the Coding Order Map and Inverse Coding Order Map
Note: See TracChangeset for help on using the changeset viewer.