Changeset 856 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibEncoder
- Timestamp:
- 11 Aug 2014, 19:11:02 (11 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibEncoder
- Files:
-
- 5 edited
-
SEIwrite.cpp (modified) (4 diffs)
-
SEIwrite.h (modified) (1 diff)
-
TEncCfg.h (modified) (2 diffs)
-
TEncGOP.cpp (modified) (2 diffs)
-
TEncGOP.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.cpp
r847 r856 92 92 break; 93 93 #endif 94 #if Q0074_ SEI_COLOR_MAPPING95 case SEI::COLO R_MAPPING_INFO:96 fprintf( g_hTrace, "=========== Colo r Mapping InfoSEI message ===========\n");94 #if Q0074_COLOUR_REMAPPING_SEI 95 case SEI::COLOUR_REMAPPING_INFO: 96 fprintf( g_hTrace, "=========== Colour Remapping Information SEI message ===========\n"); 97 97 break; 98 98 #endif … … 126 126 fprintf( g_hTrace, "=========== Bitstream parition initial arrival time SEI message ===========\n"); 127 127 break; 128 #if !REMOVE_BSP_HRD_SEI 128 129 case SEI::BSP_HRD: 129 130 fprintf( g_hTrace, "=========== Bitstream parition HRD parameters SEI message ===========\n"); 130 131 break; 132 #endif 131 133 #endif 132 134 #if Q0078_ADD_LAYER_SETS … … 195 197 break; 196 198 #endif 197 #if Q0074_ SEI_COLOR_MAPPING198 case SEI::COLO R_MAPPING_INFO:199 xWriteSEIColo rMappingInfo(*static_cast<const SEIColorMappingInfo*>(&sei));199 #if Q0074_COLOUR_REMAPPING_SEI 200 case SEI::COLOUR_REMAPPING_INFO: 201 xWriteSEIColourRemappingInfo(*static_cast<const SEIColourRemappingInfo*>(&sei)); 200 202 break; 201 203 #endif … … 636 638 } 637 639 #endif 638 #if Q0074_SEI_COLOR_MAPPING 639 Void SEIWriter::xWriteSEIColorMappingInfo(const SEIColorMappingInfo& sei) 640 { 641 WRITE_UVLC( sei.m_colorMapId, "colour_map_id" ); 642 WRITE_FLAG( sei.m_colorMapCancelFlag, "colour_map_cancel_flag" ); 643 if( !sei.m_colorMapCancelFlag ) 644 { 645 WRITE_FLAG( sei.m_colorMapPersistenceFlag, "colour_map_persistence_flag" ); 646 WRITE_FLAG( sei.m_colorMap_video_signal_type_present_flag, "colour_map_video_signal_type_present_flag" ); 647 if ( sei.m_colorMap_video_signal_type_present_flag ) 648 { 649 WRITE_FLAG( sei.m_colorMap_video_full_range_flag, "colour_map_video_full_range_flag" ); 650 WRITE_CODE( sei.m_colorMap_primaries, 8, "colour_map_primaries" ); 651 WRITE_CODE( sei.m_colorMap_transfer_characteristics, 8, "colour_map_transfer_characteristics" ); 652 WRITE_CODE( sei.m_colorMap_matrix_coeffs, 8, "colour_map_matrix_coeffs" ); 653 } 654 } 655 656 WRITE_CODE( sei.m_colour_map_coded_data_bit_depth, 5, "colour_map_coded_data_bit_depth" ); 657 WRITE_CODE( sei.m_colour_map_target_bit_depth, 5, "colour_map_target_bit_depth" ); 658 WRITE_UVLC( sei.m_colorMapModelId, "colour_map_model_id" ); 659 660 assert( sei.m_colorMapModelId == 0 ); 661 662 for( Int i=0 ; i<3 ; i++ ) 663 { 664 WRITE_CODE( sei.m_num_input_pivots[i] - 1, 8, "num_input_pivots_minus1[i]" ); 665 for( Int j=0 ; j<sei.m_num_input_pivots[i] ; j++ ) 666 { 667 WRITE_CODE( sei.m_coded_input_pivot_value[i][j], (( sei.m_colour_map_coded_data_bit_depth + 7 ) >> 3 ) << 3, "coded_input_pivot_value[i][j]" ); 668 WRITE_CODE( sei.m_target_input_pivot_value[i][j], (( sei.m_colour_map_coded_data_bit_depth + 7 ) >> 3 ) << 3, "target_input_pivot_value[i][j]" ); 669 } 670 } 671 672 WRITE_FLAG( sei.m_matrix_flag, "matrix_flag" ); 673 if( sei.m_matrix_flag ) 674 { 675 WRITE_CODE( sei.m_log2_matrix_denom, 4, "log2_matrix_denom" ); 676 for( Int i=0 ; i<3 ; i++ ) 677 { 678 for( Int j=0 ; j<3 ; j++ ) 679 { 680 WRITE_SVLC( sei.m_matrix_coef[i][j], "matrix_coef[i][j]" ); 681 } 682 } 683 } 684 685 for( Int i=0 ; i<3 ; i++ ) 686 { 687 WRITE_CODE( sei.m_num_output_pivots[i] - 1, 8, "num_output_pivots_minus1[i]" ); 688 for( Int j=0 ; j<sei.m_num_output_pivots[i] ; j++ ) 689 { 690 WRITE_CODE( sei.m_coded_output_pivot_value[i][j], (( sei.m_colour_map_coded_data_bit_depth + 7 ) >> 3 ) << 3, "coded_output_pivot_value[i][j]" ); 691 WRITE_CODE( sei.m_target_output_pivot_value[i][j], (( sei.m_colour_map_coded_data_bit_depth + 7 ) >> 3 ) << 3, "target_output_pivot_value[i][j]" ); 640 #if Q0074_COLOUR_REMAPPING_SEI 641 Void SEIWriter::xWriteSEIColourRemappingInfo(const SEIColourRemappingInfo& sei) 642 { 643 WRITE_UVLC( sei.m_colourRemapId, "colour_remap_id" ); 644 WRITE_FLAG( sei.m_colourRemapCancelFlag, "colour_remap_cancel_flag" ); 645 if( !sei.m_colourRemapCancelFlag ) 646 { 647 WRITE_FLAG( sei.m_colourRemapPersistenceFlag, "colour_remap_persistence_flag" ); 648 WRITE_FLAG( sei.m_colourRemapVideoSignalTypePresentFlag, "colour_remap_video_signal_type_present_flag" ); 649 if ( sei.m_colourRemapVideoSignalTypePresentFlag ) 650 { 651 WRITE_FLAG( sei.m_colourRemapVideoFullRangeFlag, "colour_remap_video_full_range_flag" ); 652 WRITE_CODE( sei.m_colourRemapPrimaries, 8, "colour_remap_primaries" ); 653 WRITE_CODE( sei.m_colourRemapTransferCharacteristics, 8, "colour_remap_transfer_characteristics" ); 654 WRITE_CODE( sei.m_colourRemapMatrixCoeffs, 8, "colour_remap_matrix_coeffs" ); 655 } 656 WRITE_CODE( sei.m_colourRemapCodedDataBitDepth, 8, "colour_remap_coded_data_bit_depth" ); 657 WRITE_CODE( sei.m_colourRemapTargetBitDepth, 8, "colour_remap_target_bit_depth" ); 658 for( Int c=0 ; c<3 ; c++ ) 659 { 660 WRITE_CODE( sei.m_preLutNumValMinus1[c], 8, "pre_lut_num_val_minus1[c]" ); 661 if( sei.m_preLutNumValMinus1[c]>0 ) 662 for( Int i=0 ; i<=sei.m_preLutNumValMinus1[c] ; i++ ) 663 { 664 WRITE_CODE( sei.m_preLutCodedValue[c][i], (( sei.m_colourRemapCodedDataBitDepth + 7 ) >> 3 ) << 3, "pre_lut_coded_value[c][i]" ); 665 WRITE_CODE( sei.m_preLutTargetValue[c][i], (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, "pre_lut_target_value[c][i]" ); 666 } 667 } 668 WRITE_FLAG( sei.m_colourRemapMatrixPresentFlag, "colour_remap_matrix_present_flag" ); 669 if( sei.m_colourRemapMatrixPresentFlag ) 670 { 671 WRITE_CODE( sei.m_log2MatrixDenom, 4, "log2_matrix_denom" ); 672 for( Int c=0 ; c<3 ; c++ ) 673 for( Int i=0 ; i<3 ; i++ ) 674 WRITE_SVLC( sei.m_colourRemapCoeffs[c][i], "colour_remap_coeffs[c][i]" ); 675 } 676 677 for( Int c=0 ; c<3 ; c++ ) 678 { 679 WRITE_CODE( sei.m_postLutNumValMinus1[c], 8, "m_postLutNumValMinus1[c]" ); 680 if( sei.m_postLutNumValMinus1[c]>0 ) 681 for( Int i=0 ; i<=sei.m_postLutNumValMinus1[c] ; i++ ) 682 { 683 if( sei.m_preLutNumValMinus1[c]>0 || sei.m_colourRemapMatrixPresentFlag ) 684 WRITE_CODE( sei.m_postLutCodedValue[c][i], (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, "post_lut_coded_value[c][i]" ); 685 else 686 WRITE_CODE( sei.m_postLutCodedValue[c][i], (( sei.m_colourRemapCodedDataBitDepth + 7 ) >> 3 ) << 3, "post_lut_coded_value[c][i]" ); 687 WRITE_CODE( sei.m_postLutTargetValue[c][i], (( sei.m_colourRemapTargetBitDepth + 7 ) >> 3 ) << 3, "post_lut_target_value[c][i]" ); 688 } 692 689 } 693 690 } -
branches/SHM-dev/source/Lib/TLibEncoder/SEIwrite.h
r846 r856 75 75 Void xWriteSEIKneeFunctionInfo(const SEIKneeFunctionInfo &sei); 76 76 #endif 77 #if Q0074_ SEI_COLOR_MAPPING78 Void xWriteSEIColo rMappingInfo(const SEIColorMappingInfo& sei);77 #if Q0074_COLOUR_REMAPPING_SEI 78 Void xWriteSEIColourRemappingInfo(const SEIColourRemappingInfo& sei); 79 79 #endif 80 80 Void xWriteSEISOPDescription(const SEISOPDescription& sei); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncCfg.h
r849 r856 385 385 Int* m_kneeSEIOutputKneePoint; 386 386 #endif 387 #if Q0074_SEI_COLOR_MAPPING388 Char* m_seiColorMappingFile;389 #endif390 387 #if Q0189_TMVP_CONSTRAINTS 391 388 Int m_TMVPConstraintsSEIEnabled; 392 389 #endif 393 390 #endif //SVC_EXTENSION 391 #if Q0074_COLOUR_REMAPPING_SEI 392 Char* m_colourRemapSEIFile; ///< SEI Colour Remapping File (initialized from external file) 393 Int m_colourRemapSEIId; 394 Bool m_colourRemapSEICancelFlag; 395 Bool m_colourRemapSEIPersistenceFlag; 396 Bool m_colourRemapSEIVideoSignalTypePresentFlag; 397 Bool m_colourRemapSEIVideoFullRangeFlag; 398 Int m_colourRemapSEIPrimaries; 399 Int m_colourRemapSEITransferCharacteristics; 400 Int m_colourRemapSEIMatrixCoeffs; 401 Int m_colourRemapSEICodedDataBitDepth; 402 Int m_colourRemapSEITargetBitDepth; 403 Int m_colourRemapSEIPreLutNumValMinus1[3]; 404 Int* m_colourRemapSEIPreLutCodedValue[3]; 405 Int* m_colourRemapSEIPreLutTargetValue[3]; 406 Bool m_colourRemapSEIMatrixPresentFlag; 407 Int m_colourRemapSEILog2MatrixDenom; 408 Int m_colourRemapSEICoeffs[3][3]; 409 Int m_colourRemapSEIPostLutNumValMinus1[3]; 410 Int* m_colourRemapSEIPostLutCodedValue[3]; 411 Int* m_colourRemapSEIPostLutTargetValue[3]; 412 #endif 394 413 395 414 public: … … 684 703 Int* getKneeSEIOutputKneePoint() { return m_kneeSEIOutputKneePoint; } 685 704 #endif 686 #if Q0074_SEI_COLOR_MAPPING 687 Void setColorMappingInfoSEIFile( Char* nameFile ) { m_seiColorMappingFile = nameFile; } 688 Char* getColorMappingInfoSEIFile() { return m_seiColorMappingFile; } 705 #if Q0074_COLOUR_REMAPPING_SEI 706 Void setCRISEIFile( Char* pch ) { m_colourRemapSEIFile = pch; } 707 Char* getCRISEIFile() { return m_colourRemapSEIFile; } 708 Void setCRISEIId(Int i) { m_colourRemapSEIId = i; } 709 Int getCRISEIId() { return m_colourRemapSEIId; } 710 Void setCRISEICancelFlag(Bool b) { m_colourRemapSEICancelFlag = b; } 711 Bool getCRISEICancelFlag() { return m_colourRemapSEICancelFlag; } 712 Void setCRISEIPersistenceFlag(Bool b) { m_colourRemapSEIPersistenceFlag = b; } 713 Bool getCRISEIPersistenceFlag() { return m_colourRemapSEIPersistenceFlag; } 714 Void setCRISEIVideoSignalTypePresentFlag(Bool b) { m_colourRemapSEIVideoSignalTypePresentFlag = b; } 715 Bool getCRISEIVideoSignalTypePresentFlag() { return m_colourRemapSEIVideoSignalTypePresentFlag; } 716 Void setCRISEIVideoFullRangeFlag(Bool b) { m_colourRemapSEIVideoFullRangeFlag = b; } 717 Bool getCRISEIVideoFullRangeFlag() { return m_colourRemapSEIVideoFullRangeFlag; } 718 Void setCRISEIPrimaries(Int i) { m_colourRemapSEIPrimaries = i; } 719 Int getCRISEIPrimaries() { return m_colourRemapSEIPrimaries; } 720 Void setCRISEITransferCharacteristics(Int i) { m_colourRemapSEITransferCharacteristics = i; } 721 Int getCRISEITransferCharacteristics() { return m_colourRemapSEITransferCharacteristics; } 722 Void setCRISEIMatrixCoeffs(Int i) { m_colourRemapSEIMatrixCoeffs = i; } 723 Int getCRISEIMatrixCoeffs() { return m_colourRemapSEIMatrixCoeffs; } 724 Void setCRISEICodedDataBitDepth(Int i) { m_colourRemapSEICodedDataBitDepth = i; } 725 Int getCRISEICodedDataBitDepth() { return m_colourRemapSEICodedDataBitDepth; } 726 Void setCRISEITargetBitDepth(Int i) { m_colourRemapSEITargetBitDepth = i; } 727 Int getCRISEITargetBitDepth() { return m_colourRemapSEITargetBitDepth; } 728 Void setCRISEIPreLutNumValMinus1(Int *i) { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPreLutNumValMinus1[c] = i[c]; } 729 Int getCRISEIPreLutNumValMinus1(Int i) { return m_colourRemapSEIPreLutNumValMinus1[i]; } 730 Void setCRISEIPreLutCodedValue(Int **i) { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPreLutCodedValue[c] = i[c]; } 731 Int* getCRISEIPreLutCodedValue(Int i) { return m_colourRemapSEIPreLutCodedValue[i]; } 732 Void setCRISEIPreLutTargetValue(Int **i) { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPreLutTargetValue[c] = i[c]; } 733 Int* getCRISEIPreLutTargetValue(Int i) { return m_colourRemapSEIPreLutTargetValue[i]; } 734 Void setCRISEIMatrixPresentFlag(Bool b) { m_colourRemapSEIMatrixPresentFlag = b; } 735 Bool getCRISEIMatrixPresentFlag() { return m_colourRemapSEIMatrixPresentFlag; } 736 Void setCRISEILog2MatrixDenom(Int i) { m_colourRemapSEILog2MatrixDenom = i; } 737 Int getCRISEILog2MatrixDenom() { return m_colourRemapSEILog2MatrixDenom; } 738 Void setCRISEICoeffs(Int i[3][3]) { for(Int c=0 ; c<3 ; c++) for(Int j=0 ; j<3 ; j++) m_colourRemapSEICoeffs[c][j] = i[c][j]; } 739 Int* getCRISEICoeffs(Int i) { return m_colourRemapSEICoeffs[i]; } 740 Void setCRISEIPostLutNumValMinus1(Int *i) { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPostLutNumValMinus1[c] = i[c]; } 741 Int getCRISEIPostLutNumValMinus1(Int i) { return m_colourRemapSEIPostLutNumValMinus1[i]; } 742 Void setCRISEIPostLutCodedValue(Int **i) { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPostLutCodedValue[c] = i[c]; } 743 Int* getCRISEIPostLutCodedValue(Int i) { return m_colourRemapSEIPostLutCodedValue[i]; } 744 Void setCRISEIPostLutTargetValue(Int **i) { for(Int c=0 ; c<3 ; c++) m_colourRemapSEIPostLutTargetValue[c] = i[c]; } 745 Int* getCRISEIPostLutTargetValue(Int i) { return m_colourRemapSEIPostLutTargetValue[i]; } 689 746 #endif 690 747 Void setFramePackingArrangementSEIEnabled(Int b) { m_framePackingSEIEnabled = b; } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r849 r856 365 365 #endif 366 366 367 #if Q0074_ SEI_COLOR_MAPPING368 SEIColo rMappingInfo* TEncGOP::xCreateSEIColorMappingInfo( Char* file)367 #if Q0074_COLOUR_REMAPPING_SEI 368 SEIColourRemappingInfo* TEncGOP::xCreateSEIColourRemappingInfo() 369 369 { 370 SEIColorMappingInfo *seiColorMappingInfo = new SEIColorMappingInfo(); 371 372 FILE* fic = fopen( file, "r" ); 373 374 Int iVal, retval; 375 376 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_colorMapId ); 377 retval = fscanf( fic, "%d", &iVal ); 378 seiColorMappingInfo->m_colorMapCancelFlag = iVal; 379 if( !seiColorMappingInfo->m_colorMapCancelFlag ) 380 { 381 retval = fscanf( fic, "%d", &iVal ); 382 seiColorMappingInfo->m_colorMapPersistenceFlag = iVal; 383 retval = fscanf( fic, "%d", &iVal ); 384 seiColorMappingInfo->m_colorMap_video_signal_type_present_flag = iVal; 385 if( seiColorMappingInfo->m_colorMap_video_signal_type_present_flag ) 386 { 387 retval = fscanf( fic, "%d", &iVal ); 388 seiColorMappingInfo->m_colorMap_video_full_range_flag = iVal; 389 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_colorMap_primaries ); 390 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_colorMap_transfer_characteristics ); 391 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_colorMap_matrix_coeffs ); 392 } 393 } 394 395 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_colour_map_coded_data_bit_depth ); 396 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_colour_map_target_bit_depth ); 397 retval = fscanf( fic, "%d", &iVal ); 398 seiColorMappingInfo->m_colorMapModelId = iVal; 399 400 assert( seiColorMappingInfo->m_colorMapModelId == 0 ); 401 402 for( Int i=0 ; i<3 ; i++ ) 403 { 404 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_num_input_pivots[i] ); 405 seiColorMappingInfo->m_coded_input_pivot_value[i] = new Int[ seiColorMappingInfo->m_num_input_pivots[i] ]; 406 seiColorMappingInfo->m_target_input_pivot_value[i] = new Int[ seiColorMappingInfo->m_num_input_pivots[i] ]; 407 for( Int j=0 ; j<seiColorMappingInfo->m_num_input_pivots[i] ; j++ ) 408 { 409 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_coded_input_pivot_value[i][j] ); 410 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_target_input_pivot_value[i][j] ); 411 } 412 } 413 414 retval = fscanf( fic, "%d", &iVal ); 415 seiColorMappingInfo->m_matrix_flag = iVal; 416 if( seiColorMappingInfo->m_matrix_flag ) 417 { 418 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_log2_matrix_denom ); 419 for( Int i=0 ; i<3 ; i++ ) 420 { 421 for( Int j=0 ; j<3 ; j++ ) 422 { 423 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_matrix_coef[i][j] ); 424 } 425 } 426 } 427 428 for( Int i=0 ; i<3 ; i++ ) 429 { 430 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_num_output_pivots[i] ); 431 seiColorMappingInfo->m_coded_output_pivot_value[i] = new Int[ seiColorMappingInfo->m_num_output_pivots[i] ]; 432 seiColorMappingInfo->m_target_output_pivot_value[i] = new Int[ seiColorMappingInfo->m_num_output_pivots[i] ]; 433 for( Int j=0 ; j<seiColorMappingInfo->m_num_output_pivots[i] ; j++ ) 434 { 435 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_coded_output_pivot_value[i][j] ); 436 retval = fscanf( fic, "%d", &seiColorMappingInfo->m_target_output_pivot_value[i][j] ); 437 } 438 } 439 440 fclose( fic ); 441 442 if( retval != 1 ) 443 { 444 printf("Error: can't read color mapping information\n"); 445 } 446 447 return seiColorMappingInfo; 370 SEIColourRemappingInfo *seiColourRemappingInfo = new SEIColourRemappingInfo(); 371 seiColourRemappingInfo->m_colourRemapId = m_pcCfg->getCRISEIId(); 372 seiColourRemappingInfo->m_colourRemapCancelFlag = m_pcCfg->getCRISEICancelFlag(); 373 if( !seiColourRemappingInfo->m_colourRemapCancelFlag ) 374 { 375 seiColourRemappingInfo->m_colourRemapPersistenceFlag = m_pcCfg->getCRISEIPersistenceFlag(); 376 seiColourRemappingInfo->m_colourRemapVideoSignalTypePresentFlag = m_pcCfg->getCRISEIVideoSignalTypePresentFlag(); 377 if( seiColourRemappingInfo->m_colourRemapVideoSignalTypePresentFlag ) 378 { 379 seiColourRemappingInfo->m_colourRemapVideoFullRangeFlag = m_pcCfg->getCRISEIVideoFullRangeFlag(); 380 seiColourRemappingInfo->m_colourRemapPrimaries = m_pcCfg->getCRISEIPrimaries(); 381 seiColourRemappingInfo->m_colourRemapTransferCharacteristics = m_pcCfg->getCRISEITransferCharacteristics(); 382 seiColourRemappingInfo->m_colourRemapMatrixCoeffs = m_pcCfg->getCRISEIMatrixCoeffs(); 383 } 384 seiColourRemappingInfo->m_colourRemapCodedDataBitDepth = m_pcCfg->getCRISEICodedDataBitDepth(); 385 seiColourRemappingInfo->m_colourRemapTargetBitDepth = m_pcCfg->getCRISEITargetBitDepth(); 386 for( Int c=0 ; c<3 ; c++ ) 387 { 388 seiColourRemappingInfo->m_preLutNumValMinus1[c] = m_pcCfg->getCRISEIPreLutNumValMinus1(c); 389 if( seiColourRemappingInfo->m_preLutNumValMinus1[c]>0 ) 390 { 391 seiColourRemappingInfo->m_preLutCodedValue[c].resize(seiColourRemappingInfo->m_preLutNumValMinus1[c]+1); 392 seiColourRemappingInfo->m_preLutTargetValue[c].resize(seiColourRemappingInfo->m_preLutNumValMinus1[c]+1); 393 for( Int i=0 ; i<=seiColourRemappingInfo->m_preLutNumValMinus1[c] ; i++) 394 { 395 seiColourRemappingInfo->m_preLutCodedValue[c][i] = (m_pcCfg->getCRISEIPreLutCodedValue(c))[i]; 396 seiColourRemappingInfo->m_preLutTargetValue[c][i] = (m_pcCfg->getCRISEIPreLutTargetValue(c))[i]; 397 } 398 } 399 } 400 seiColourRemappingInfo->m_colourRemapMatrixPresentFlag = m_pcCfg->getCRISEIMatrixPresentFlag(); 401 if( seiColourRemappingInfo->m_colourRemapMatrixPresentFlag ) 402 { 403 seiColourRemappingInfo->m_log2MatrixDenom = m_pcCfg->getCRISEILog2MatrixDenom(); 404 for( Int c=0 ; c<3 ; c++ ) 405 for( Int i=0 ; i<3 ; i++ ) 406 seiColourRemappingInfo->m_colourRemapCoeffs[c][i] = (m_pcCfg->getCRISEICoeffs(c))[i]; 407 } 408 for( Int c=0 ; c<3 ; c++ ) 409 { 410 seiColourRemappingInfo->m_postLutNumValMinus1[c] = m_pcCfg->getCRISEIPostLutNumValMinus1(c); 411 if( seiColourRemappingInfo->m_postLutNumValMinus1[c]>0 ) 412 { 413 seiColourRemappingInfo->m_postLutCodedValue[c].resize(seiColourRemappingInfo->m_postLutNumValMinus1[c]+1); 414 seiColourRemappingInfo->m_postLutTargetValue[c].resize(seiColourRemappingInfo->m_postLutNumValMinus1[c]+1); 415 for( Int i=0 ; i<=seiColourRemappingInfo->m_postLutNumValMinus1[c] ; i++) 416 { 417 seiColourRemappingInfo->m_postLutCodedValue[c][i] = (m_pcCfg->getCRISEIPostLutCodedValue(c))[i]; 418 seiColourRemappingInfo->m_postLutTargetValue[c][i] = (m_pcCfg->getCRISEIPostLutTargetValue(c))[i]; 419 } 420 } 421 } 422 } 423 return seiColourRemappingInfo; 448 424 } 449 425 #endif … … 532 508 } 533 509 #endif 534 #if Q0074_ SEI_COLOR_MAPPING535 if(m_pcCfg->getC olorMappingInfoSEIFile())536 { 537 SEIColo rMappingInfo *sei = xCreateSEIColorMappingInfo( m_pcCfg->getColorMappingInfoSEIFile());510 #if Q0074_COLOUR_REMAPPING_SEI 511 if(m_pcCfg->getCRISEIFile()) 512 { 513 SEIColourRemappingInfo *sei = xCreateSEIColourRemappingInfo (); 538 514 539 515 #if SVC_EXTENSION 540 nalu = NALUnit(NAL_UNIT_PREFIX_SEI, 0, m_layerId); // temporalId = 0 ?516 nalu = NALUnit(NAL_UNIT_PREFIX_SEI, 0, sps->getLayerId()); // SEI-CRI is applied per layer 541 517 #else 542 518 nalu = NALUnit(NAL_UNIT_PREFIX_SEI); -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.h
r823 r856 225 225 SEIKneeFunctionInfo* xCreateSEIKneeFunctionInfo(); 226 226 #endif 227 #if Q0074_ SEI_COLOR_MAPPING228 SEIColo rMappingInfo* xCreateSEIColorMappingInfo( Char* file);227 #if Q0074_COLOUR_REMAPPING_SEI 228 SEIColourRemappingInfo* xCreateSEIColourRemappingInfo(); 229 229 #endif 230 230
Note: See TracChangeset for help on using the changeset viewer.