| 510 | } |
| 511 | |
| 512 | void PCCDecoder::setPLRData( PCCFrameContext& tile, PCCPatch& patch, PLRData& plrd, size_t occupancyPackingBlockSize ) { |
| 513 | patch.allocOneLayerData(); |
| 514 | TRACE_PATCH( "WxH = %zu x %zu \n", plrd.getBlockToPatchMapWidth(), plrd.getBlockToPatchMapHeight() ); |
| 515 | patch.getPointLocalReconstructionLevel() = static_cast<uint8_t>( plrd.getLevelFlag() ); |
| 516 | TRACE_PATCH( " LevelFlag = %d \n", plrd.getLevelFlag() ); |
| 517 | if ( plrd.getLevelFlag() ) { |
| 518 | if ( plrd.getPresentFlag() ) { |
| 519 | patch.setPointLocalReconstructionMode( plrd.getModeMinus1() + 1 ); |
| 520 | } else { |
| 521 | patch.setPointLocalReconstructionMode( 0 ); |
| 522 | } |
| 523 | TRACE_PATCH( " ModePatch: Present = %d ModeMinus1 = %2d \n", plrd.getPresentFlag(), |
| 524 | plrd.getPresentFlag() ? (int32_t)plrd.getModeMinus1() : -1 ); |
| 525 | } else { |
| 526 | for ( size_t v0 = 0; v0 < plrd.getBlockToPatchMapHeight(); ++v0 ) { |
| 527 | for ( size_t u0 = 0; u0 < plrd.getBlockToPatchMapWidth(); ++u0 ) { |
| 528 | size_t index = v0 * plrd.getBlockToPatchMapWidth() + u0; |
| 529 | if ( plrd.getBlockPresentFlag( index ) ) { |
| 530 | patch.setPointLocalReconstructionMode( u0, v0, plrd.getBlockModeMinus1( index ) + 1 ); |
| 531 | } else { |
| 532 | patch.setPointLocalReconstructionMode( u0, v0, 0 ); |
| 533 | } |
| 534 | TRACE_PATCH( " Mode[%3u]: Present = %d ModeMinus1 = %2d \n", index, plrd.getBlockPresentFlag( index ), |
| 535 | plrd.getBlockPresentFlag( index ) ? (int32_t)plrd.getBlockModeMinus1( index ) : -1 ); |
| 536 | } |
| 537 | } |
| 538 | } |
| 539 | #ifdef CODEC_TRACE |
| 540 | for ( size_t v0 = 0; v0 < patch.getSizeV0(); ++v0 ) { |
| 541 | for ( size_t u0 = 0; u0 < patch.getSizeU0(); ++u0 ) { |
| 542 | TRACE_PATCH( |
| 543 | "Block[ %2lu %2lu <=> %4zu ] / [ %2lu %2lu ]: Level = %d Present = " |
| 544 | "%d mode = %zu \n", |
| 545 | u0, v0, v0 * patch.getSizeU0() + u0, patch.getSizeU0(), patch.getSizeV0(), |
| 546 | patch.getPointLocalReconstructionLevel(), plrd.getBlockPresentFlag( v0 * patch.getSizeU0() + u0 ), |
| 547 | patch.getPointLocalReconstructionMode( u0, v0 ) ); |
| 548 | } |
| 549 | } |
| 550 | #endif |
| 551 | } |
| 552 | |
| 553 | void PCCDecoder::setPostProcessingSeiParameters( GeneratePointCloudParameters& params, |
| 554 | PCCContext& context, |
nothing calls this directly
no test coverage detected