- Timestamp:
- 22 Oct 2014, 01:32:55 (10 years ago)
- Location:
- branches/HTM-12.1-dev0
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_intra_main.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : 1 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 1 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures … … 77 77 78 78 #============ Tiles ================ 79 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array79 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 80 80 # 1: the column and row boundaries are distributed uniformly 81 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 182 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)83 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 184 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)81 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 82 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 83 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 84 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 85 85 86 86 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_intra_main10.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : 1 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 1 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures … … 77 77 78 78 #============ Tiles ================ 79 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array79 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 80 80 # 1: the column and row boundaries are distributed uniformly 81 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 182 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)83 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 184 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)81 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 82 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 83 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 84 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 85 85 86 86 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_lowdelay_P_main.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : -1 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs … … 82 82 83 83 #============ Tiles ================ 84 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array84 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 85 85 # 1: the column and row boundaries are distributed uniformly 86 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 187 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)88 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 189 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)86 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 87 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 88 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 89 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 90 90 91 91 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_lowdelay_P_main10.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : -1 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs … … 82 82 83 83 #============ Tiles ================ 84 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array84 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 85 85 # 1: the column and row boundaries are distributed uniformly 86 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 187 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)88 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 189 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)86 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 87 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 88 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 89 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 90 90 91 91 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_lowdelay_main.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : -1 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs … … 82 82 83 83 #============ Tiles ================ 84 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array84 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 85 85 # 1: the column and row boundaries are distributed uniformly 86 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 187 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)88 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 189 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)86 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 87 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 88 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 89 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 90 90 91 91 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_lowdelay_main10.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : -1 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs … … 82 82 83 83 #============ Tiles ================ 84 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array84 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 85 85 # 1: the column and row boundaries are distributed uniformly 86 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 187 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)88 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 189 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)86 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 87 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 88 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 89 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 90 90 91 91 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_randomaccess_main.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : 32 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs … … 25 25 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 26 26 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 27 Frame4: B 1 4 0.68 0 0 02 4 -1 1 3 7 1 1 5 1 0 1 1 128 Frame5: B 3 4 0.68 0 0 02 4 -1 -3 1 5 1 -2 5 1 1 1 1 027 Frame4: B 1 4 0.68 0 0 1 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 28 Frame5: B 3 4 0.68 0 0 1 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 29 29 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 30 Frame7: B 5 4 0.68 0 0 02 4 -1 -5 1 3 1 1 5 1 0 1 1 131 Frame8: B 7 4 0.68 0 0 02 4 -1 -3 -7 1 1 -2 5 1 1 1 1 030 Frame7: B 5 4 0.68 0 0 1 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 31 Frame8: B 7 4 0.68 0 0 1 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 32 32 33 33 #=========== Motion Search ============= … … 86 86 87 87 #============ Tiles ================ 88 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array88 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 89 89 # 1: the column and row boundaries are distributed uniformly 90 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 191 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)92 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 193 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)90 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 91 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 92 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 93 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 94 94 95 95 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/encoder_randomaccess_main10.cfg
r872 r1081 19 19 #======== Coding Structure ============= 20 20 IntraPeriod : 32 # Period of I-Frame ( -1 = only first) 21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:C DR, 2:IDR21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 23 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs … … 25 25 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 26 26 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 27 Frame4: B 1 4 0.68 0 0 02 4 -1 1 3 7 1 1 5 1 0 1 1 128 Frame5: B 3 4 0.68 0 0 02 4 -1 -3 1 5 1 -2 5 1 1 1 1 027 Frame4: B 1 4 0.68 0 0 1 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 28 Frame5: B 3 4 0.68 0 0 1 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 29 29 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 30 Frame7: B 5 4 0.68 0 0 02 4 -1 -5 1 3 1 1 5 1 0 1 1 131 Frame8: B 7 4 0.68 0 0 02 4 -1 -3 -7 1 1 -2 5 1 1 1 1 030 Frame7: B 5 4 0.68 0 0 1 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 31 Frame8: B 7 4 0.68 0 0 1 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 32 32 33 33 #=========== Motion Search ============= … … 86 86 87 87 #============ Tiles ================ 88 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array88 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 89 89 # 1: the column and row boundaries are distributed uniformly 90 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 191 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)92 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 193 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)90 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 91 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 92 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 93 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 94 94 95 95 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/cfg/HEVC/HM/misc/encoder_randomaccess_field_coding.cfg
r872 r1081 36 36 #======== Coding Structure ============= 37 37 IntraPeriod : 32 # Period of I-Frame ( -1 = only first) 38 DecodingRefreshType : 1 # Random Accesss 0:none, 1:C DR, 2:IDR38 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 39 39 GOPSize : 16 # GOP Size (number of B slice = GOPSize-1) 40 40 … … 113 113 114 114 #============ Tiles ================ 115 UniformSpacingIdc : 0 # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated byRowHeight array115 TileUniformSpacing : 0 # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array 116 116 # 1: the column and row boundaries are distributed uniformly 117 NumTileColumnsMinus1 : 0 # Number of columns in a picture minus 1118 ColumnWidthArray : 2 3 # Array containing ColumnWidth values in units of LCU (from left to right in picture)119 NumTileRowsMinus1 : 0 # Number of rows in a picture minus 1120 RowHeightArray : 2 # Array containing RowHeight values in units of LCU (from top to bottom in picture)117 NumTileColumnsMinus1 : 0 # Number of tile columns in a picture minus 1 118 TileColumnWidthArray : 2 3 # Array containing tile column width values in units of CTU (from left to right in picture) 119 NumTileRowsMinus1 : 0 # Number of tile rows in a picture minus 1 120 TileRowHeightArray : 2 # Array containing tile row height values in units of CTU (from top to bottom in picture) 121 121 122 122 LFCrossTileBoundaryFlag : 1 # In-loop filtering is across or not across tile boundary. -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r1079 r1081 72 72 #endif 73 73 , m_pchdQPFile() 74 , m_pColumnWidth()75 , m_pRowHeight()76 74 , m_scalingListFile() 77 75 { … … 139 137 #endif 140 138 free(m_pchdQPFile); 141 free(m_pColumnWidth);142 free(m_pRowHeight);143 139 free(m_scalingListFile); 144 140 #if H_MV … … 344 340 #endif 345 341 string cfg_dQPFile; 346 string cfg _ColumnWidth;347 string cfg _RowHeight;342 string cfgColumnWidth; 343 string cfgRowHeight; 348 344 string cfg_ScalingListFile; 349 345 string cfg_startOfCodedInterval; … … 420 416 ("OutputBitDepthC", m_outputBitDepthC, 0, "As per OutputBitDepth but for chroma component. (default:InternalBitDepthC)") 421 417 ("InternalBitDepthC", m_internalBitDepthC, 0, "As per InternalBitDepth but for chroma component. (default:IntrenalBitDepth)") 422 ("ConformanceMode", m_conformanceMode, 0, "Window conformance mode (0: no window, 1:automatic padding, 2:padding, 3:conformance") 418 ("ConformanceMode", m_conformanceWindowMode, 0, "Deprecated alias of ConformanceWindowMode") 419 ("ConformanceWindowMode", m_conformanceWindowMode, 0, "Window conformance mode (0: no window, 1:automatic padding, 2:padding, 3:conformance") 423 420 ("HorizontalPadding,-pdx",m_aiPad[0], 0, "Horizontal source padding for conformance window mode 2") 424 421 ("VerticalPadding,-pdy", m_aiPad[1], 0, "Vertical source padding for conformance window mode 2") 425 ("ConfLeft", m_confLeft, 0, "Left offset for window conformance mode 3") 426 ("ConfRight", m_confRight, 0, "Right offset for window conformance mode 3") 427 ("ConfTop", m_confTop, 0, "Top offset for window conformance mode 3") 428 ("ConfBottom", m_confBottom, 0, "Bottom offset for window conformance mode 3") 422 ("ConfLeft", m_confWinLeft, 0, "Deprecated alias of ConfWinLeft") 423 ("ConfRight", m_confWinRight, 0, "Deprecated alias of ConfWinRight") 424 ("ConfTop", m_confWinTop, 0, "Deprecated alias of ConfWinTop") 425 ("ConfBottom", m_confWinBottom, 0, "Deprecated alias of ConfWinBottom") 426 ("ConfWinLeft", m_confWinLeft, 0, "Left offset for window conformance mode 3") 427 ("ConfWinRight", m_confWinRight, 0, "Right offset for window conformance mode 3") 428 ("ConfWinTop", m_confWinTop, 0, "Top offset for window conformance mode 3") 429 ("ConfWinBottom", m_confWinBottom, 0, "Bottom offset for window conformance mode 3") 429 430 ("FrameRate,-fr", m_iFrameRate, 0, "Frame rate") 430 431 ("FrameSkip,-fs", m_FrameSkip, 0u, "Number of frames to skip at start of input YUV") … … 583 584 ("WeightedPredB,-wpB", m_useWeightedBiPred, false, "Use weighted (bidirectional) prediction in B slices") 584 585 ("Log2ParallelMergeLevel", m_log2ParallelMergeLevel, 2u, "Parallel merge estimation region") 585 ("UniformSpacingIdc", m_iUniformSpacingIdr, 0, "Indicates if the column and row boundaries are distributed uniformly") 586 ("NumTileColumnsMinus1", m_iNumColumnsMinus1, 0, "Number of columns in a picture minus 1") 587 ("ColumnWidthArray", cfg_ColumnWidth, string(""), "Array containing ColumnWidth values in units of LCU") 588 ("NumTileRowsMinus1", m_iNumRowsMinus1, 0, "Number of rows in a picture minus 1") 589 ("RowHeightArray", cfg_RowHeight, string(""), "Array containing RowHeight values in units of LCU") 586 587 //deprecated copies of renamed tile parameters 588 ("UniformSpacingIdc", m_tileUniformSpacingFlag, false, "deprecated alias of TileUniformSpacing") 589 ("ColumnWidthArray", cfgColumnWidth, string(""), "deprecated alias of TileColumnWidthArray") 590 ("RowHeightArray", cfgRowHeight, string(""), "deprecated alias of TileRowHeightArray") 591 592 ("TileUniformSpacing", m_tileUniformSpacingFlag, false, "Indicates that tile columns and rows are distributed uniformly") 593 ("NumTileColumnsMinus1", m_numTileColumnsMinus1, 0, "Number of tile columns in a picture minus 1") 594 ("NumTileRowsMinus1", m_numTileRowsMinus1, 0, "Number of rows in a picture minus 1") 595 ("TileColumnWidthArray", cfgColumnWidth, string(""), "Array containing tile column width values in units of LCU") 596 ("TileRowHeightArray", cfgRowHeight, string(""), "Array containing tile row height values in units of LCU") 590 597 ("LFCrossTileBoundaryFlag", m_bLFCrossTileBoundaryFlag, true, "1: cross-tile-boundary loop filtering. 0:non-cross-tile-boundary loop filtering") 591 598 ("WaveFrontSynchro", m_iWaveFrontSynchro, 0, "0: no synchro; 1 synchro with TR; 2 TRR etc") … … 669 676 ("ColourDescriptionPresent", m_colourDescriptionPresentFlag, false, "Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present") 670 677 ("ColourPrimaries", m_colourPrimaries, 2, "Indicates chromaticity coordinates of the source primaries") 671 ("TransferChara teristics",m_transferCharacteristics, 2, "Indicates the opto-electronic transfer characteristics of the source")678 ("TransferCharacteristics", m_transferCharacteristics, 2, "Indicates the opto-electronic transfer characteristics of the source") 672 679 ("MatrixCoefficients", m_matrixCoefficients, 2, "Describes the matrix coefficients used in deriving luma and chroma from RGB primaries") 673 680 ("ChromaLocInfoPresent", m_chromaLocInfoPresentFlag, false, "Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present") … … 889 896 m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str()); 890 897 891 Char* pColumnWidth = cfg_ColumnWidth.empty() ? NULL: strdup(cfg_ColumnWidth.c_str()); 892 Char* pRowHeight = cfg_RowHeight.empty() ? NULL : strdup(cfg_RowHeight.c_str()); 893 if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 ) 894 { 895 char *columnWidth; 898 Char* pColumnWidth = cfgColumnWidth.empty() ? NULL: strdup(cfgColumnWidth.c_str()); 899 Char* pRowHeight = cfgRowHeight.empty() ? NULL : strdup(cfgRowHeight.c_str()); 900 901 if( !m_tileUniformSpacingFlag && m_numTileColumnsMinus1 > 0 ) 902 { 903 char *str; 896 904 int i=0; 897 m_ pColumnWidth = new UInt[m_iNumColumnsMinus1];898 columnWidth= strtok(pColumnWidth, " ,-");899 while( columnWidth!=NULL)900 { 901 if( i >=m_iNumColumnsMinus1 )905 m_tileColumnWidth.resize( m_numTileColumnsMinus1 ); 906 str = strtok(pColumnWidth, " ,-"); 907 while(str!=NULL) 908 { 909 if( i >= m_numTileColumnsMinus1 ) 902 910 { 903 911 printf( "The number of columns whose width are defined is larger than the allowed number of columns.\n" ); 904 912 exit( EXIT_FAILURE ); 905 913 } 906 *( m_pColumnWidth + i ) = atoi( columnWidth);907 columnWidth= strtok(NULL, " ,-");914 m_tileColumnWidth[i] = atoi( str ); 915 str = strtok(NULL, " ,-"); 908 916 i++; 909 917 } 910 if( i <m_iNumColumnsMinus1 )918 if( i < m_numTileColumnsMinus1 ) 911 919 { 912 920 printf( "The width of some columns is not defined.\n" ); … … 916 924 else 917 925 { 918 m_ pColumnWidth = NULL;919 } 920 921 if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 )922 { 923 char * rowHeight;926 m_tileColumnWidth.clear(); 927 } 928 929 if( !m_tileUniformSpacingFlag && m_numTileRowsMinus1 > 0 ) 930 { 931 char *str; 924 932 int i=0; 925 m_ pRowHeight = new UInt[m_iNumRowsMinus1];926 rowHeight= strtok(pRowHeight, " ,-");927 while( rowHeight!=NULL)928 { 929 if( i>=m_ iNumRowsMinus1 )933 m_tileRowHeight.resize(m_numTileRowsMinus1); 934 str = strtok(pRowHeight, " ,-"); 935 while(str!=NULL) 936 { 937 if( i>=m_numTileRowsMinus1 ) 930 938 { 931 939 printf( "The number of rows whose height are defined is larger than the allowed number of rows.\n" ); 932 940 exit( EXIT_FAILURE ); 933 941 } 934 *( m_pRowHeight + i ) = atoi( rowHeight);935 rowHeight= strtok(NULL, " ,-");942 m_tileRowHeight[i] = atoi( str ); 943 str = strtok(NULL, " ,-"); 936 944 i++; 937 945 } 938 if( i <m_iNumRowsMinus1 )946 if( i < m_numTileRowsMinus1 ) 939 947 { 940 948 printf( "The height of some rows is not defined.\n" ); … … 944 952 else 945 953 { 946 m_ pRowHeight = NULL;954 m_tileRowHeight.clear(); 947 955 } 948 956 #if H_MV … … 960 968 961 969 // TODO:ChromaFmt assumes 4:2:0 below 962 switch (m_conformance Mode)970 switch (m_conformanceWindowMode) 963 971 { 964 972 case 0: 965 973 { 966 974 // no conformance or padding 967 m_conf Left = m_confRight = m_confTop = m_confBottom = 0;975 m_confWinLeft = m_confWinRight = m_confWinTop = m_confWinBottom = 0; 968 976 m_aiPad[1] = m_aiPad[0] = 0; 969 977 break; … … 975 983 if (m_iSourceWidth % minCuSize) 976 984 { 977 m_aiPad[0] = m_conf Right = ((m_iSourceWidth / minCuSize) + 1) * minCuSize - m_iSourceWidth;978 m_iSourceWidth += m_conf Right;985 m_aiPad[0] = m_confWinRight = ((m_iSourceWidth / minCuSize) + 1) * minCuSize - m_iSourceWidth; 986 m_iSourceWidth += m_confWinRight; 979 987 } 980 988 if (m_iSourceHeight % minCuSize) 981 989 { 982 m_aiPad[1] = m_conf Bottom = ((m_iSourceHeight / minCuSize) + 1) * minCuSize - m_iSourceHeight;983 m_iSourceHeight += m_conf Bottom;990 m_aiPad[1] = m_confWinBottom = ((m_iSourceHeight / minCuSize) + 1) * minCuSize - m_iSourceHeight; 991 m_iSourceHeight += m_confWinBottom; 984 992 if ( m_isField ) 985 993 { 986 m_iSourceHeightOrg += m_conf Bottom << 1;987 m_aiPad[1] = m_conf Bottom << 1;994 m_iSourceHeightOrg += m_confWinBottom << 1; 995 m_aiPad[1] = m_confWinBottom << 1; 988 996 } 989 997 } … … 1005 1013 m_iSourceWidth += m_aiPad[0]; 1006 1014 m_iSourceHeight += m_aiPad[1]; 1007 m_conf Right = m_aiPad[0];1008 m_conf Bottom = m_aiPad[1];1015 m_confWinRight = m_aiPad[0]; 1016 m_confWinBottom = m_aiPad[1]; 1009 1017 break; 1010 1018 } … … 1012 1020 { 1013 1021 // conformance 1014 if ((m_conf Left == 0) && (m_confRight == 0) && (m_confTop == 0) && (m_confBottom == 0))1022 if ((m_confWinLeft == 0) && (m_confWinRight == 0) && (m_confWinTop == 0) && (m_confWinBottom == 0)) 1015 1023 { 1016 1024 fprintf(stderr, "Warning: Conformance window enabled, but all conformance window parameters set to zero\n"); … … 1680 1688 } 1681 1689 1682 Bool tileFlag = (m_ iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0 );1690 Bool tileFlag = (m_numTileColumnsMinus1 > 0 || m_numTileRowsMinus1 > 0 ); 1683 1691 xConfirmPara( tileFlag && m_iWaveFrontSynchro, "Tile and Wavefront can not be applied together"); 1684 1692 … … 1690 1698 xConfirmPara( m_aiPad[1] % TComSPS::getWinUnitY(CHROMA_420) != 0, "Vertical padding must be an integer multiple of the specified chroma subsampling"); 1691 1699 1692 xConfirmPara( m_confLeft % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left conformance window offset must be an integer multiple of the specified chroma subsampling"); 1693 xConfirmPara( m_confRight % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right conformance window offset must be an integer multiple of the specified chroma subsampling"); 1694 xConfirmPara( m_confTop % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top conformance window offset must be an integer multiple of the specified chroma subsampling"); 1695 xConfirmPara( m_confBottom % TComSPS::getWinUnitY(CHROMA_420) != 0, "Bottom conformance window offset must be an integer multiple of the specified chroma subsampling"); 1700 xConfirmPara( m_confWinLeft % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left conformance window offset must be an integer multiple of the specified chroma subsampling"); 1701 xConfirmPara( m_confWinRight % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right conformance window offset must be an integer multiple of the specified chroma subsampling"); 1702 xConfirmPara( m_confWinTop % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top conformance window offset must be an integer multiple of the specified chroma subsampling"); 1703 xConfirmPara( m_confWinBottom % TComSPS::getWinUnitY(CHROMA_420) != 0, "Bottom conformance window offset must be an integer multiple of the specified chroma subsampling"); 1704 1705 xConfirmPara( m_defaultDisplayWindowFlag && !m_vuiParametersPresentFlag, "VUI needs to be enabled for default display window"); 1706 1707 if (m_defaultDisplayWindowFlag) 1708 { 1709 xConfirmPara( m_defDispWinLeftOffset % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left default display window offset must be an integer multiple of the specified chroma subsampling"); 1710 xConfirmPara( m_defDispWinRightOffset % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right default display window offset must be an integer multiple of the specified chroma subsampling"); 1711 xConfirmPara( m_defDispWinTopOffset % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top default display window offset must be an integer multiple of the specified chroma subsampling"); 1712 xConfirmPara( m_defDispWinBottomOffset % TComSPS::getWinUnitY(CHROMA_420) != 0, "Bottom default display window offset must be an integer multiple of the specified chroma subsampling"); 1713 } 1696 1714 1697 1715 #if H_3D … … 2213 2231 Int widthInCU = (m_iSourceWidth % m_uiMaxCUWidth) ? m_iSourceWidth/m_uiMaxCUWidth + 1: m_iSourceWidth/m_uiMaxCUWidth; 2214 2232 Int heightInCU = (m_iSourceHeight % m_uiMaxCUHeight) ? m_iSourceHeight/m_uiMaxCUHeight + 1: m_iSourceHeight/m_uiMaxCUHeight; 2215 if(m_ iUniformSpacingIdr)2216 { 2217 maxTileWidth = m_uiMaxCUWidth*((widthInCU+m_ iNumColumnsMinus1)/(m_iNumColumnsMinus1+1));2218 maxTileHeight = m_uiMaxCUHeight*((heightInCU+m_ iNumRowsMinus1)/(m_iNumRowsMinus1+1));2233 if(m_tileUniformSpacingFlag) 2234 { 2235 maxTileWidth = m_uiMaxCUWidth*((widthInCU+m_numTileColumnsMinus1)/(m_numTileColumnsMinus1+1)); 2236 maxTileHeight = m_uiMaxCUHeight*((heightInCU+m_numTileRowsMinus1)/(m_numTileRowsMinus1+1)); 2219 2237 // if only the last tile-row is one treeblock higher than the others 2220 2238 // the maxTileHeight becomes smaller if the last row of treeblocks has lower height than the others 2221 if(!((heightInCU-1)%(m_ iNumRowsMinus1+1)))2239 if(!((heightInCU-1)%(m_numTileRowsMinus1+1))) 2222 2240 { 2223 2241 maxTileHeight = maxTileHeight - m_uiMaxCUHeight + (m_iSourceHeight % m_uiMaxCUHeight); … … 2225 2243 // if only the last tile-column is one treeblock wider than the others 2226 2244 // the maxTileWidth becomes smaller if the last column of treeblocks has lower width than the others 2227 if(!((widthInCU-1)%(m_ iNumColumnsMinus1+1)))2245 if(!((widthInCU-1)%(m_numTileColumnsMinus1+1))) 2228 2246 { 2229 2247 maxTileWidth = maxTileWidth - m_uiMaxCUWidth + (m_iSourceWidth % m_uiMaxCUWidth); … … 2232 2250 else // not uniform spacing 2233 2251 { 2234 if(m_ iNumColumnsMinus1<1)2252 if(m_numTileColumnsMinus1<1) 2235 2253 { 2236 2254 maxTileWidth = m_iSourceWidth; … … 2239 2257 { 2240 2258 Int accColumnWidth = 0; 2241 for(Int col=0; col<(m_ iNumColumnsMinus1); col++)2259 for(Int col=0; col<(m_numTileColumnsMinus1); col++) 2242 2260 { 2243 maxTileWidth = m_ pColumnWidth[col]>maxTileWidth ? m_pColumnWidth[col]:maxTileWidth;2244 accColumnWidth += m_ pColumnWidth[col];2261 maxTileWidth = m_tileColumnWidth[col]>maxTileWidth ? m_tileColumnWidth[col]:maxTileWidth; 2262 accColumnWidth += m_tileColumnWidth[col]; 2245 2263 } 2246 2264 maxTileWidth = (widthInCU-accColumnWidth)>maxTileWidth ? m_uiMaxCUWidth*(widthInCU-accColumnWidth):m_uiMaxCUWidth*maxTileWidth; 2247 2265 } 2248 if(m_ iNumRowsMinus1<1)2266 if(m_numTileRowsMinus1<1) 2249 2267 { 2250 2268 maxTileHeight = m_iSourceHeight; … … 2253 2271 { 2254 2272 Int accRowHeight = 0; 2255 for(Int row=0; row<(m_ iNumRowsMinus1); row++)2273 for(Int row=0; row<(m_numTileRowsMinus1); row++) 2256 2274 { 2257 maxTileHeight = m_ pRowHeight[row]>maxTileHeight ? m_pRowHeight[row]:maxTileHeight;2258 accRowHeight += m_ pRowHeight[row];2275 maxTileHeight = m_tileRowHeight[row]>maxTileHeight ? m_tileRowHeight[row]:maxTileHeight; 2276 accRowHeight += m_tileRowHeight[row]; 2259 2277 } 2260 2278 maxTileHeight = (heightInCU-accRowHeight)>maxTileHeight ? m_uiMaxCUHeight*(heightInCU-accRowHeight):m_uiMaxCUHeight*maxTileHeight; … … 2429 2447 xPrintParaVector( "SAO" , m_bUseSAO ); 2430 2448 #endif 2431 printf("Real Format : %dx%d %dHz\n", m_iSourceWidth - m_conf Left - m_confRight, m_iSourceHeight - m_confTop - m_confBottom, m_iFrameRate );2449 printf("Real Format : %dx%d %dHz\n", m_iSourceWidth - m_confWinLeft - m_confWinRight, m_iSourceHeight - m_confWinTop - m_confWinBottom, m_iFrameRate ); 2432 2450 printf("Internal Format : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate ); 2433 2451 if (m_isField) -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncCfg.h
r1076 r1081 43 43 #include "TLibEncoder/TEncCfg.h" 44 44 #include <sstream> 45 #include <vector> 45 46 #if H_3D 46 47 #include "TAppCommon/TAppComCamPara.h" … … 172 173 bool m_isTopFieldFirst; 173 174 174 Int m_conformance Mode;175 Int m_conf Left;176 Int m_conf Right;177 Int m_conf Top;178 Int m_conf Bottom;175 Int m_conformanceWindowMode; 176 Int m_confWinLeft; 177 Int m_confWinRight; 178 Int m_confWinTop; 179 Int m_confWinBottom; 179 180 Int m_framesToBeEncoded; ///< number of encoded frames 180 181 Int m_aiPad[2]; ///< number of padded pixels for width and height … … 324 325 Bool m_bLFCrossSliceBoundaryFlag; ///< 1: filter across slice boundaries 0: do not filter across slice boundaries 325 326 Bool m_bLFCrossTileBoundaryFlag; ///< 1: filter across tile boundaries 0: do not filter across tile boundaries 326 Int m_iUniformSpacingIdr; 327 Int m_iNumColumnsMinus1; 328 Char* m_pchColumnWidth; 329 Int m_iNumRowsMinus1; 330 Char* m_pchRowHeight; 331 UInt* m_pColumnWidth; 332 UInt* m_pRowHeight; 327 Bool m_tileUniformSpacingFlag; 328 Int m_numTileColumnsMinus1; 329 Int m_numTileRowsMinus1; 330 std::vector<Int> m_tileColumnWidth; 331 std::vector<Int> m_tileRowHeight; 333 332 Int m_iWaveFrontSynchro; //< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current. 334 333 Int m_iWaveFrontSubstreams; //< If iWaveFrontSynchro, this is the number of substreams per frame (dependent tiles) or per tile (independent tiles). -
branches/HTM-12.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r1076 r1081 281 281 m_cTEncTop.setSourceWidth ( m_iSourceWidth ); 282 282 m_cTEncTop.setSourceHeight ( m_iSourceHeight ); 283 m_cTEncTop.setConformanceWindow ( m_conf Left, m_confRight, m_confTop, m_confBottom );283 m_cTEncTop.setConformanceWindow ( m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom ); 284 284 m_cTEncTop.setFramesToBeEncoded ( m_framesToBeEncoded ); 285 285 … … 489 489 } 490 490 #endif 491 m_cTEncTop.set UniformSpacingIdr ( m_iUniformSpacingIdr);492 m_cTEncTop.setNumColumnsMinus1 ( m_ iNumColumnsMinus1 );493 m_cTEncTop.setNumRowsMinus1 ( m_ iNumRowsMinus1 );494 if( m_iUniformSpacingIdr==0)495 { 496 m_cTEncTop.setColumnWidth ( m_ pColumnWidth );497 m_cTEncTop.setRowHeight ( m_ pRowHeight );491 m_cTEncTop.setTileUniformSpacingFlag ( m_tileUniformSpacingFlag ); 492 m_cTEncTop.setNumColumnsMinus1 ( m_numTileColumnsMinus1 ); 493 m_cTEncTop.setNumRowsMinus1 ( m_numTileRowsMinus1 ); 494 if(!m_tileUniformSpacingFlag) 495 { 496 m_cTEncTop.setColumnWidth ( m_tileColumnWidth ); 497 m_cTEncTop.setRowHeight ( m_tileRowHeight ); 498 498 } 499 499 m_cTEncTop.xCheckGSParameters(); 500 Int uiTilesCount = (m_ iNumRowsMinus1+1) * (m_iNumColumnsMinus1+1);500 Int uiTilesCount = (m_numTileRowsMinus1+1) * (m_numTileColumnsMinus1+1); 501 501 if(uiTilesCount == 1) 502 502 { … … 603 603 m_cTEncTop.setActiveParameterSetsSEIEnabled ( m_activeParameterSetsSEIEnabled ); 604 604 m_cTEncTop.setVuiParametersPresentFlag( m_vuiParametersPresentFlag ); 605 m_cTEncTop.setAspectRatioInfoPresentFlag( m_aspectRatioInfoPresentFlag); 605 606 m_cTEncTop.setAspectRatioIdc( m_aspectRatioIdc ); 606 607 m_cTEncTop.setSarWidth( m_sarWidth ); … … 1087 1088 if (m_pchReconFileList[layerId]) 1088 1089 { 1090 #if H_MV_ALIGN_HM_15 1091 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom, m_isTopFieldFirst ); 1092 #else 1089 1093 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confLeft, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst ); 1094 #endif 1090 1095 } 1091 1096 } … … 1104 1109 if (m_pchReconFile) 1105 1110 { 1106 m_cTVideoIOYuvReconFile.write( pcPicYuvRecTop, pcPicYuvRecBottom, m_conf Left, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst );1111 m_cTVideoIOYuvReconFile.write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom, m_isTopFieldFirst ); 1107 1112 } 1108 1113 … … 1140 1145 if (m_pchReconFileList[layerId]) 1141 1146 { 1147 #if H_MV_ALIGN_HM_15 1148 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom ); 1149 #else 1142 1150 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confLeft, m_confRight, m_confTop, m_confBottom ); 1151 #endif 1143 1152 } 1144 1153 } … … 1156 1165 if (m_pchReconFile) 1157 1166 { 1158 m_cTVideoIOYuvReconFile.write( pcPicYuvRec, m_conf Left, m_confRight, m_confTop, m_confBottom );1167 m_cTVideoIOYuvReconFile.write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom ); 1159 1168 } 1160 1169 … … 1612 1621 1613 1622 repFormat->setConformanceWindowVpsFlag( true ); 1623 #if H_MV_ALIGN_HM_15 1624 repFormat->setConfWinVpsLeftOffset ( m_confWinLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1625 repFormat->setConfWinVpsRightOffset ( m_confWinRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1626 repFormat->setConfWinVpsTopOffset ( m_confWinTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1627 repFormat->setConfWinVpsBottomOffset ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1628 #else 1614 1629 repFormat->setConfWinVpsLeftOffset ( m_confLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1615 1630 repFormat->setConfWinVpsRightOffset ( m_confRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1616 1631 repFormat->setConfWinVpsTopOffset ( m_confTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1617 1632 repFormat->setConfWinVpsBottomOffset ( m_confBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1618 1633 #endif 1619 1634 assert( vps.getRepFormat( 0 ) == NULL ); 1620 1635 vps.setRepFormat( 0 , repFormat ); -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/CommonDef.h
r1067 r1081 61 61 #if H_MV 62 62 #define NV_VERSION "12.1" ///< Current software version 63 #define HM_VERSION "1 4.0" ///<63 #define HM_VERSION "15.0" ///< 64 64 #else 65 65 #define NV_VERSION "14.0" ///< Current software version -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/SEI.h
r964 r1081 161 161 UInt m_bpSeqParameterSetId; 162 162 Bool m_rapCpbParamsPresentFlag; 163 Boolm_cpbDelayOffset;164 Boolm_dpbDelayOffset;163 UInt m_cpbDelayOffset; 164 UInt m_dpbDelayOffset; 165 165 UInt m_initialCpbRemovalDelay [MAX_CPB_CNT][2]; 166 166 UInt m_initialCpbRemovalDelayOffset [MAX_CPB_CNT][2]; -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComPicSym.cpp
r872 r1081 38 38 #include "TComPicSym.h" 39 39 #include "TComSampleAdaptiveOffset.h" 40 #include "TComSlice.h" 40 41 41 42 //! \ingroup TLibCommon … … 63 64 ,m_iNumColumnsMinus1 (0) 64 65 ,m_iNumRowsMinus1(0) 65 ,m_apcTComTile(NULL)66 66 ,m_puiCUOrderMap(0) 67 67 ,m_puiTileIdxMap(NULL) … … 101 101 delete [] m_apcTComSlice; 102 102 } 103 m_apcTComSlice = new TComSlice*[m_uiNumCUsInFrame *m_uiNumPartitions];103 m_apcTComSlice = new TComSlice*[m_uiNumCUsInFrame]; 104 104 m_apcTComSlice[0] = new TComSlice; 105 105 m_uiNumAllocatedSlice = 1; … … 148 148 m_apcTComDataCU = NULL; 149 149 150 for(Int i = 0; i < (m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ )151 {152 delete m_apcTComTile[i];153 }154 delete [] m_apcTComTile;155 156 m_apcTComTile = NULL;157 158 150 delete [] m_puiCUOrderMap; 159 151 m_puiCUOrderMap = NULL; … … 173 165 Void TComPicSym::allocateNewSlice() 174 166 { 167 assert ((m_uiNumAllocatedSlice + 1) <= m_uiNumCUsInFrame); 175 168 m_apcTComSlice[m_uiNumAllocatedSlice ++] = new TComSlice; 176 169 if (m_uiNumAllocatedSlice>=2) … … 201 194 } 202 195 203 Void TComPicSym::xCreateTComTileArray() 204 { 205 m_apcTComTile = new TComTile*[(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1)]; 206 for( UInt i=0; i<(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ ) 207 { 208 m_apcTComTile[i] = new TComTile; 209 } 210 } 211 212 Void TComPicSym::xInitTiles() 213 { 214 UInt uiTileIdx; 215 UInt uiColumnIdx = 0; 216 UInt uiRowIdx = 0; 217 UInt uiRightEdgePosInCU; 218 UInt uiBottomEdgePosInCU; 219 Int i, j; 196 Void TComPicSym::initTiles(TComPPS *pps) 197 { 198 //set NumColumnsMinus1 and NumRowsMinus1 199 setNumColumnsMinus1( pps->getNumTileColumnsMinus1() ); 200 setNumRowsMinus1( pps->getTileNumRowsMinus1() ); 201 202 const Int numCols = pps->getNumTileColumnsMinus1() + 1; 203 const Int numRows = pps->getTileNumRowsMinus1() + 1; 204 const Int numTiles = numRows * numCols; 205 206 // allocate memory for tile parameters 207 m_tileParameters.resize(numTiles); 208 209 if( pps->getTileUniformSpacingFlag() ) 210 { 211 //set width and height for each (uniform) tile 212 for(Int row=0; row < numRows; row++) 213 { 214 for(Int col=0; col < numCols; col++) 215 { 216 const Int tileIdx = row * numCols + col; 217 m_tileParameters[tileIdx].setTileWidth( (col+1)*getFrameWidthInCU()/numCols 218 - (col*getFrameWidthInCU())/numCols ); 219 m_tileParameters[tileIdx].setTileHeight( (row+1)*getFrameHeightInCU()/numRows 220 - (row*getFrameHeightInCU())/numRows ); 221 } 222 } 223 } 224 else 225 { 226 //set the width for each tile 227 for(Int row=0; row < numRows; row++) 228 { 229 Int cumulativeTileWidth = 0; 230 for(Int col=0; col < getNumColumnsMinus1(); col++) 231 { 232 } 233 m_tileParameters[row * numCols + getNumColumnsMinus1()].setTileWidth( getFrameWidthInCU()-cumulativeTileWidth ); 234 } 235 236 //set the height for each tile 237 for(Int col=0; col < numCols; col++) 238 { 239 Int cumulativeTileHeight = 0; 240 for(Int row=0; row < getNumRowsMinus1(); row++) 241 { 242 m_tileParameters[row * numCols + col].setTileHeight( pps->getTileRowHeight(row) ); 243 cumulativeTileHeight += pps->getTileRowHeight(row); 244 } 245 m_tileParameters[getNumRowsMinus1() * numCols + col].setTileHeight( getFrameHeightInCU()-cumulativeTileHeight ); 246 } 247 } 248 249 #if TILE_SIZE_CHECK 250 Int minWidth = 1; 251 Int minHeight = 1; 252 const Int profileIdc = pps->getSPS()->getPTL()->getGeneralPTL()->getProfileIdc(); 253 if ( profileIdc == Profile::MAIN || profileIdc == Profile::MAIN10) 254 { 255 if (pps->getTilesEnabledFlag()) 256 { 257 minHeight = 64 / g_uiMaxCUHeight; 258 minWidth = 256 / g_uiMaxCUWidth; 259 } 260 } 261 for(Int row=0; row < numRows; row++) 262 { 263 for(Int col=0; col < numCols; col++) 264 { 265 const Int tileIdx = row * numCols + col; 266 assert (m_tileParameters[tileIdx].getTileWidth() >= minWidth); 267 assert (m_tileParameters[tileIdx].getTileHeight() >= minHeight); 268 } 269 } 270 #endif 220 271 221 272 //initialize each tile of the current picture 222 for( uiRowIdx=0; uiRowIdx < m_iNumRowsMinus1+1; uiRowIdx++ )223 { 224 for( uiColumnIdx=0; uiColumnIdx < m_iNumColumnsMinus1+1; uiColumnIdx++ )225 { 226 uiTileIdx = uiRowIdx * (m_iNumColumnsMinus1+1) + uiColumnIdx;273 for( Int row=0; row < numRows; row++ ) 274 { 275 for( Int col=0; col < numCols; col++ ) 276 { 277 const Int tileIdx = row * numCols + col; 227 278 228 279 //initialize the RightEdgePosInCU for each tile 229 uiRightEdgePosInCU = 0;230 for( i=0; i <= uiColumnIdx; i++ )231 { 232 uiRightEdgePosInCU += this->getTComTile(uiRowIdx * (m_iNumColumnsMinus1+1) + i)->getTileWidth();233 } 234 this->getTComTile(uiTileIdx)->setRightEdgePosInCU(uiRightEdgePosInCU-1);280 Int rightEdgePosInCTU = 0; 281 for( Int i=0; i <= col; i++ ) 282 { 283 rightEdgePosInCTU += m_tileParameters[row * numCols + i].getTileWidth(); 284 } 285 m_tileParameters[tileIdx].setRightEdgePosInCU(rightEdgePosInCTU-1); 235 286 236 287 //initialize the BottomEdgePosInCU for each tile 237 uiBottomEdgePosInCU = 0;238 for( i=0; i <= uiRowIdx; i++ )239 { 240 uiBottomEdgePosInCU += this->getTComTile(i * (m_iNumColumnsMinus1+1) + uiColumnIdx)->getTileHeight();241 } 242 this->getTComTile(uiTileIdx)->setBottomEdgePosInCU(uiBottomEdgePosInCU-1);288 Int bottomEdgePosInCTU = 0; 289 for( Int i=0; i <= row; i++ ) 290 { 291 bottomEdgePosInCTU += m_tileParameters[i * numCols + col].getTileHeight(); 292 } 293 m_tileParameters[tileIdx].setBottomEdgePosInCU(bottomEdgePosInCTU-1); 243 294 244 295 //initialize the FirstCUAddr for each tile 245 this->getTComTile(uiTileIdx)->setFirstCUAddr( (this->getTComTile(uiTileIdx)->getBottomEdgePosInCU() - this->getTComTile(uiTileIdx)->getTileHeight() +1)*m_uiWidthInCU + 246 this->getTComTile(uiTileIdx)->getRightEdgePosInCU() - this->getTComTile(uiTileIdx)->getTileWidth() + 1); 247 } 248 } 296 m_tileParameters[tileIdx].setFirstCUAddr( (m_tileParameters[tileIdx].getBottomEdgePosInCU() - m_tileParameters[tileIdx].getTileHeight() + 1) * getFrameWidthInCU() + 297 m_tileParameters[tileIdx].getRightEdgePosInCU() - m_tileParameters[tileIdx].getTileWidth() + 1); 298 } 299 } 300 301 Int columnIdx = 0; 302 Int rowIdx = 0; 249 303 250 304 //initialize the TileIdxMap 251 for( i=0; i<m_uiNumCUsInFrame; i++)252 { 253 for( j=0; j < m_iNumColumnsMinus1+1; j++)254 { 255 if(i % m_uiWidthInCU <= this->getTComTile(j)->getRightEdgePosInCU())256 { 257 uiColumnIdx = j;258 j = m_iNumColumnsMinus1+1;259 } 260 } 261 for( j=0; j < m_iNumRowsMinus1+1; j++)262 { 263 if(i /m_uiWidthInCU <= this->getTComTile(j*(m_iNumColumnsMinus1 + 1))->getBottomEdgePosInCU())264 { 265 uiRowIdx = j;266 j = m_iNumRowsMinus1 + 1;267 } 268 } 269 m_puiTileIdxMap[i] = uiRowIdx * (m_iNumColumnsMinus1 + 1) + uiColumnIdx;305 for( Int i=0; i<m_uiNumCUsInFrame; i++) 306 { 307 for( Int col=0; col < numCols; col++) 308 { 309 if(i % getFrameWidthInCU() <= m_tileParameters[col].getRightEdgePosInCU()) 310 { 311 columnIdx = col; 312 break; 313 } 314 } 315 for(Int row=0; row < numRows; row++) 316 { 317 if(i / getFrameWidthInCU() <= m_tileParameters[row*numCols].getBottomEdgePosInCU()) 318 { 319 rowIdx = row; 320 break; 321 } 322 } 323 m_puiTileIdxMap[i] = rowIdx * numCols + columnIdx; 270 324 } 271 325 … … 417 471 418 472 TComTile::TComTile() 473 : m_uiTileWidth (0) 474 , m_uiTileHeight (0) 475 , m_uiRightEdgePosInCU (0) 476 , m_uiBottomEdgePosInCU (0) 477 , m_uiFirstCUAddr (0) 478 419 479 { 420 480 } -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComPicSym.h
r872 r1081 45 45 #include "TComDataCU.h" 46 46 class TComSampleAdaptiveOffset; 47 class TComPPS; 47 48 48 49 //! \ingroup TLibCommon … … 102 103 Int m_iNumColumnsMinus1; 103 104 Int m_iNumRowsMinus1; 104 TComTile** m_apcTComTile;105 std::vector<TComTile> m_tileParameters; 105 106 UInt* m_puiCUOrderMap; //the map of LCU raster scan address relative to LCU encoding order 106 107 UInt* m_puiTileIdxMap; //the map of the tile index relative to LCU raster scan address … … 133 134 Int getNumRowsMinus1() { return m_iNumRowsMinus1; } 134 135 Int getNumTiles() { return (m_iNumRowsMinus1+1)*(m_iNumColumnsMinus1+1); } 135 TComTile* getTComTile ( UInt tileIdx ) { return *(m_apcTComTile + tileIdx); }136 TComTile* getTComTile ( UInt tileIdx ) { return &(m_tileParameters[tileIdx]); } 136 137 Void setCUOrderMap( Int encCUOrder, Int cuAddr ) { *(m_puiCUOrderMap + encCUOrder) = cuAddr; } 137 138 UInt getCUOrderMap( Int encCUOrder ) { return *(m_puiCUOrderMap + (encCUOrder>=m_uiNumCUsInFrame ? m_uiNumCUsInFrame : encCUOrder)); } … … 141 142 UInt getPicSCUEncOrder( UInt SCUAddr ); 142 143 UInt getPicSCUAddr( UInt SCUEncOrder ); 143 Void xCreateTComTileArray(); 144 Void xInitTiles(); 144 Void initTiles(TComPPS *pps); 145 145 UInt xCalculateNxtCUAddr( UInt uiCurrCUAddr ); 146 146 SAOBlkParam* getSAOBlkParam() { return m_saoBlkParams;} -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComSlice.cpp
r1078 r1081 2873 2873 , m_entropyCodingSyncEnabledFlag (false) 2874 2874 , m_loopFilterAcrossTilesEnabledFlag (true) 2875 , m_uniformSpacingFlag (0) 2876 , m_iNumColumnsMinus1 (0) 2877 , m_puiColumnWidth (NULL) 2878 , m_iNumRowsMinus1 (0) 2879 , m_puiRowHeight (NULL) 2880 , m_iNumSubstreams (1) 2875 , m_uniformSpacingFlag (false) 2876 , m_numTileColumnsMinus1 (0) 2877 , m_numTileRowsMinus1 (0) 2878 , m_numSubstreams (1) 2881 2879 , m_signHideFlag(0) 2882 2880 , m_cabacInitPresentFlag (false) … … 2911 2909 TComPPS::~TComPPS() 2912 2910 { 2913 if( m_iNumColumnsMinus1 > 0 && m_uniformSpacingFlag == 0 )2914 {2915 if (m_puiColumnWidth) delete [] m_puiColumnWidth;2916 m_puiColumnWidth = NULL;2917 }2918 if( m_iNumRowsMinus1 > 0 && m_uniformSpacingFlag == 0 )2919 {2920 if (m_puiRowHeight) delete [] m_puiRowHeight;2921 m_puiRowHeight = NULL;2922 }2923 2911 delete m_scalingList; 2924 2912 } -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TComSlice.h
r1076 r1081 1970 1970 1971 1971 Bool m_loopFilterAcrossTilesEnabledFlag; 1972 Intm_uniformSpacingFlag;1973 Int m_iNumColumnsMinus1;1974 UInt* m_puiColumnWidth;1975 Int m_iNumRowsMinus1;1976 UInt* m_puiRowHeight;1977 1978 Int m_ iNumSubstreams;1972 Bool m_uniformSpacingFlag; 1973 Int m_numTileColumnsMinus1; 1974 Int m_numTileRowsMinus1; 1975 std::vector<Int> m_tileColumnWidth; 1976 std::vector<Int> m_tileRowHeight; 1977 1978 Int m_numSubstreams; 1979 1979 1980 1980 Int m_signHideFlag; … … 2073 2073 Bool getDependentSliceSegmentsEnabledFlag() const { return m_dependentSliceSegmentsEnabledFlag; } 2074 2074 Void setDependentSliceSegmentsEnabledFlag(Bool val) { m_dependentSliceSegmentsEnabledFlag = val; } 2075 Bool getTilesEnabledFlag() const { return m_tilesEnabledFlag; }2076 Void setTilesEnabledFlag(Bool val) { m_tilesEnabledFlag = val; }2077 2075 Bool getEntropyCodingSyncEnabledFlag() const { return m_entropyCodingSyncEnabledFlag; } 2078 2076 Void setEntropyCodingSyncEnabledFlag(Bool val) { m_entropyCodingSyncEnabledFlag = val; } 2079 Void setUniformSpacingFlag ( Bool b ) { m_uniformSpacingFlag = b; } 2080 Bool getUniformSpacingFlag () { return m_uniformSpacingFlag; } 2081 Void setNumColumnsMinus1 ( Int i ) { m_iNumColumnsMinus1 = i; } 2082 Int getNumColumnsMinus1 () { return m_iNumColumnsMinus1; } 2083 Void setColumnWidth ( UInt* columnWidth ) 2084 { 2085 if( m_uniformSpacingFlag == 0 && m_iNumColumnsMinus1 > 0 ) 2086 { 2087 m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ]; 2088 2089 for(Int i=0; i<m_iNumColumnsMinus1; i++) 2090 { 2091 m_puiColumnWidth[i] = columnWidth[i]; 2092 } 2093 } 2094 } 2095 UInt getColumnWidth (UInt columnIdx) { return *( m_puiColumnWidth + columnIdx ); } 2096 Void setNumRowsMinus1( Int i ) { m_iNumRowsMinus1 = i; } 2097 Int getNumRowsMinus1() { return m_iNumRowsMinus1; } 2098 Void setRowHeight ( UInt* rowHeight ) 2099 { 2100 if( m_uniformSpacingFlag == 0 && m_iNumRowsMinus1 > 0 ) 2101 { 2102 m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ]; 2103 2104 for(Int i=0; i<m_iNumRowsMinus1; i++) 2105 { 2106 m_puiRowHeight[i] = rowHeight[i]; 2107 } 2108 } 2109 } 2110 UInt getRowHeight (UInt rowIdx) { return *( m_puiRowHeight + rowIdx ); } 2111 Void setNumSubstreams(Int iNumSubstreams) { m_iNumSubstreams = iNumSubstreams; } 2112 Int getNumSubstreams() { return m_iNumSubstreams; } 2077 2078 Void setTilesEnabledFlag (Bool val) { m_tilesEnabledFlag = val; } 2079 Bool getTilesEnabledFlag () const { return m_tilesEnabledFlag; } 2080 Void setTileUniformSpacingFlag (Bool b) { m_uniformSpacingFlag = b; } 2081 Bool getTileUniformSpacingFlag () const { return m_uniformSpacingFlag; } 2082 Void setNumTileColumnsMinus1 (Int i) { m_numTileColumnsMinus1 = i; } 2083 Int getNumTileColumnsMinus1 () const { return m_numTileColumnsMinus1; } 2084 Void setTileColumnWidth (const std::vector<Int>& columnWidth ) { m_tileColumnWidth = columnWidth; } 2085 UInt getTileColumnWidth (UInt columnIdx) const { return m_tileColumnWidth[columnIdx]; } 2086 Void setNumTileRowsMinus1 (Int i) { m_numTileRowsMinus1 = i; } 2087 Int getTileNumRowsMinus1 () const { return m_numTileRowsMinus1; } 2088 Void setTileRowHeight (const std::vector<Int>& rowHeight) { m_tileRowHeight = rowHeight; } 2089 UInt getTileRowHeight (UInt rowIdx) const { return m_tileRowHeight[rowIdx]; } 2090 2091 Void setNumSubstreams (Int numSubstreams) { m_numSubstreams = numSubstreams; } 2092 Int getNumSubstreams () { return m_numSubstreams; } 2113 2093 2114 2094 Void setSignHideFlag( Int signHideFlag ) { m_signHideFlag = signHideFlag; } -
branches/HTM-12.1-dev0/source/Lib/TLibCommon/TypeDef.h
r1078 r1081 369 369 #define H_MV_HLS_PTL_LIMITS 0 370 370 #define H_MV_HLS7_GEN 0 // General changes (not tested) 371 371 #define H_MV_ALIGN_HM_15 1 372 372 373 373 // POC … … 418 418 #define SAO_SGN_FUNC 1 419 419 420 #define TILE_SIZE_CHECK 1 421 420 422 #define FIX1172 1 ///< fix ticket #1172 421 423 … … 433 435 #define MAX_NESTING_NUM_LAYER 64 434 436 437 #if H_MV 435 438 #define MAX_VPS_NUM_HRD_PARAMETERS 1024 439 #else 440 #define MAX_VPS_NUM_HRD_PARAMETERS 1 441 #endif 436 442 #if H_MV 437 443 #define MAX_NUM_SUB_LAYERS 7 -
branches/HTM-12.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1079 r1081 292 292 if( pcPPS->getTilesEnabledFlag() ) 293 293 { 294 READ_UVLC ( uiCode, "num_tile_columns_minus1" ); pcPPS->setNum ColumnsMinus1( uiCode );295 READ_UVLC ( uiCode, "num_tile_rows_minus1" ); pcPPS->setNum RowsMinus1( uiCode );296 READ_FLAG ( uiCode, "uniform_spacing_flag" ); pcPPS->set UniformSpacingFlag( uiCode);297 298 if( !pcPPS->get UniformSpacingFlag())299 { 300 UInt* columnWidth = (UInt*)malloc(pcPPS->getNumColumnsMinus1()*sizeof(UInt));301 for(UInt i=0; i<pcPPS->getNum ColumnsMinus1(); i++)294 READ_UVLC ( uiCode, "num_tile_columns_minus1" ); pcPPS->setNumTileColumnsMinus1( uiCode ); 295 READ_UVLC ( uiCode, "num_tile_rows_minus1" ); pcPPS->setNumTileRowsMinus1( uiCode ); 296 READ_FLAG ( uiCode, "uniform_spacing_flag" ); pcPPS->setTileUniformSpacingFlag( uiCode == 1 ); 297 298 if( !pcPPS->getTileUniformSpacingFlag()) 299 { 300 std::vector<Int> columnWidth(pcPPS->getNumTileColumnsMinus1()); 301 for(UInt i=0; i<pcPPS->getNumTileColumnsMinus1(); i++) 302 302 { 303 303 READ_UVLC( uiCode, "column_width_minus1" ); 304 304 columnWidth[i] = uiCode+1; 305 305 } 306 pcPPS->setColumnWidth(columnWidth); 307 free(columnWidth); 308 309 UInt* rowHeight = (UInt*)malloc(pcPPS->getNumRowsMinus1()*sizeof(UInt)); 310 for(UInt i=0; i<pcPPS->getNumRowsMinus1(); i++) 306 pcPPS->setTileColumnWidth(columnWidth); 307 308 std::vector<Int> rowHeight (pcPPS->getTileNumRowsMinus1()); 309 for(UInt i=0; i<pcPPS->getTileNumRowsMinus1(); i++) 311 310 { 312 311 READ_UVLC( uiCode, "row_height_minus1" ); 313 312 rowHeight[i] = uiCode + 1; 314 313 } 315 pcPPS->setRowHeight(rowHeight); 316 free(rowHeight); 317 } 318 319 if(pcPPS->getNumColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0) 314 pcPPS->setTileRowHeight(rowHeight); 315 } 316 317 if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0) 320 318 { 321 319 READ_FLAG ( uiCode, "loop_filter_across_tiles_enabled_flag" ); pcPPS->setLoopFilterAcrossTilesEnabledFlag( uiCode ? true : false ); … … 1134 1132 READ_FLAG( uiCode, "cprms_present_flag[i]" ); pcVPS->setCprmsPresentFlag( uiCode == 1 ? true : false, i ); 1135 1133 } 1134 else 1135 { 1136 pcVPS->setCprmsPresentFlag( true, i ); 1137 } 1138 1136 1139 parseHrdParameters(pcVPS->getHrdParameters(i), pcVPS->getCprmsPresentFlag( i ), pcVPS->getMaxTLayers() - 1); 1137 1140 } -
branches/HTM-12.1-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r1079 r1081 727 727 #endif 728 728 pps->setSPS(sps); 729 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNum ColumnsMinus1() + 1) : 1);729 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1); 730 730 pps->setMinCuDQPSize( sps->getMaxCUWidth() >> ( pps->getMaxCuDQPDepth()) ); 731 731 … … 1024 1024 Bool bNextSlice = pcSlice->isNextSlice(); 1025 1025 1026 UInt uiCummulativeTileWidth; 1027 UInt uiCummulativeTileHeight; 1028 UInt i, j, p; 1029 1030 //set NumColumnsMins1 and NumRowsMinus1 1031 pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() ); 1032 pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() ); 1033 1034 //create the TComTileArray 1035 pcPic->getPicSym()->xCreateTComTileArray(); 1036 1037 if( pcSlice->getPPS()->getUniformSpacingFlag() ) 1038 { 1039 //set the width for each tile 1040 for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++) 1041 { 1042 for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++) 1043 { 1044 pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )-> 1045 setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1) 1046 - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) ); 1047 } 1048 } 1049 1050 //set the height for each tile 1051 for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++) 1052 { 1053 for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++) 1054 { 1055 pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )-> 1056 setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1) 1057 - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) ); 1058 } 1059 } 1060 } 1061 else 1062 { 1063 //set the width for each tile 1064 for(j=0; j < pcSlice->getPPS()->getNumRowsMinus1()+1; j++) 1065 { 1066 uiCummulativeTileWidth = 0; 1067 for(i=0; i < pcSlice->getPPS()->getNumColumnsMinus1(); i++) 1068 { 1069 pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcSlice->getPPS()->getColumnWidth(i) ); 1070 uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(i); 1071 } 1072 pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth ); 1073 } 1074 1075 //set the height for each tile 1076 for(j=0; j < pcSlice->getPPS()->getNumColumnsMinus1()+1; j++) 1077 { 1078 uiCummulativeTileHeight = 0; 1079 for(i=0; i < pcSlice->getPPS()->getNumRowsMinus1(); i++) 1080 { 1081 pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcSlice->getPPS()->getRowHeight(i) ); 1082 uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(i); 1083 } 1084 pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight ); 1085 } 1086 } 1087 1088 pcPic->getPicSym()->xInitTiles(); 1026 UInt i; 1027 pcPic->getPicSym()->initTiles(pcSlice->getPPS()); 1089 1028 1090 1029 //generate the Coding Order Map and Inverse Coding Order Map -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r1079 r1081 210 210 if( pcPPS->getTilesEnabledFlag() ) 211 211 { 212 WRITE_UVLC( pcPPS->getNum ColumnsMinus1(), "num_tile_columns_minus1" );213 WRITE_UVLC( pcPPS->get NumRowsMinus1(), "num_tile_rows_minus1" );214 WRITE_FLAG( pcPPS->get UniformSpacingFlag(), "uniform_spacing_flag" );215 if( pcPPS->getUniformSpacingFlag() == 0)216 { 217 for(UInt i=0; i<pcPPS->getNum ColumnsMinus1(); i++)218 { 219 WRITE_UVLC( pcPPS->get ColumnWidth(i)-1, "column_width_minus1" );220 } 221 for(UInt i=0; i<pcPPS->get NumRowsMinus1(); i++)222 { 223 WRITE_UVLC( pcPPS->get RowHeight(i)-1, "row_height_minus1" );224 } 225 } 226 if(pcPPS->getNum ColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0)212 WRITE_UVLC( pcPPS->getNumTileColumnsMinus1(), "num_tile_columns_minus1" ); 213 WRITE_UVLC( pcPPS->getTileNumRowsMinus1(), "num_tile_rows_minus1" ); 214 WRITE_FLAG( pcPPS->getTileUniformSpacingFlag(), "uniform_spacing_flag" ); 215 if( !pcPPS->getTileUniformSpacingFlag() ) 216 { 217 for(UInt i=0; i<pcPPS->getNumTileColumnsMinus1(); i++) 218 { 219 WRITE_UVLC( pcPPS->getTileColumnWidth(i)-1, "column_width_minus1" ); 220 } 221 for(UInt i=0; i<pcPPS->getTileNumRowsMinus1(); i++) 222 { 223 WRITE_UVLC( pcPPS->getTileRowHeight(i)-1, "row_height_minus1" ); 224 } 225 } 226 if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0) 227 227 { 228 228 WRITE_FLAG( pcPPS->getLoopFilterAcrossTilesEnabledFlag()?1 : 0, "loop_filter_across_tiles_enabled_flag"); … … 528 528 if( defaultDisplayWindow.getWindowEnabledFlag() ) 529 529 { 530 WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset() ,"def_disp_win_left_offset");531 WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset() ,"def_disp_win_right_offset");532 WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset() ,"def_disp_win_top_offset");533 WRITE_UVLC(defaultDisplayWindow.getWindowBottomOffset() ,"def_disp_win_bottom_offset");530 WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset() / TComSPS::getWinUnitX(pcSPS->getChromaFormatIdc()), "def_disp_win_left_offset"); 531 WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset() / TComSPS::getWinUnitX(pcSPS->getChromaFormatIdc()), "def_disp_win_right_offset"); 532 WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset() / TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc()), "def_disp_win_top_offset"); 533 WRITE_UVLC(defaultDisplayWindow.getWindowBottomOffset()/ TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc()), "def_disp_win_bottom_offset"); 534 534 } 535 535 TimingInfo *timingInfo = pcVUI->getTimingInfo(); -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCfg.h
r1074 r1081 124 124 Int m_iSourceWidth; 125 125 Int m_iSourceHeight; 126 Int m_conformanceMode;127 126 Window m_conformanceWindow; 128 127 Int m_framesToBeEncoded; … … 229 228 Bool m_bPCMFilterDisableFlag; 230 229 Bool m_loopFilterAcrossTilesEnabledFlag; 231 Int m_iUniformSpacingIdr;230 Bool m_tileUniformSpacingFlag; 232 231 Int m_iNumColumnsMinus1; 233 UInt* m_puiColumnWidth;234 232 Int m_iNumRowsMinus1; 235 UInt* m_puiRowHeight; 233 std::vector<Int> m_tileColumnWidth; 234 std::vector<Int> m_tileRowHeight; 236 235 237 236 Int m_iWaveFrontSynchro; … … 430 429 public: 431 430 TEncCfg() 432 : m_ puiColumnWidth()433 , m_ puiRowHeight()431 : m_tileColumnWidth() 432 , m_tileRowHeight() 434 433 #if H_MV 435 434 , m_layerId(-1) … … 445 444 446 445 virtual ~TEncCfg() 447 { 448 delete[] m_puiColumnWidth; 449 delete[] m_puiRowHeight; 450 } 446 {} 451 447 452 448 Void setProfile(Profile::Name profile) { m_profile = profile; } … … 671 667 Void setLFCrossTileBoundaryFlag ( Bool val ) { m_loopFilterAcrossTilesEnabledFlag = val; } 672 668 Bool getLFCrossTileBoundaryFlag () { return m_loopFilterAcrossTilesEnabledFlag; } 673 Void set UniformSpacingIdr ( Int i ) { m_iUniformSpacingIdr = i; }674 Int getUniformSpacingIdr () { return m_iUniformSpacingIdr; }669 Void setTileUniformSpacingFlag ( Bool b ) { m_tileUniformSpacingFlag = b; } 670 Bool getTileUniformSpacingFlag () { return m_tileUniformSpacingFlag; } 675 671 Void setNumColumnsMinus1 ( Int i ) { m_iNumColumnsMinus1 = i; } 676 672 Int getNumColumnsMinus1 () { return m_iNumColumnsMinus1; } 677 Void setColumnWidth ( UInt* columnWidth ) 678 { 679 if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 ) 680 { 681 Int m_iWidthInCU = ( m_iSourceWidth%g_uiMaxCUWidth ) ? m_iSourceWidth/g_uiMaxCUWidth + 1 : m_iSourceWidth/g_uiMaxCUWidth; 682 m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ]; 683 684 for(Int i=0; i<m_iNumColumnsMinus1; i++) 685 { 686 m_puiColumnWidth[i] = columnWidth[i]; 687 printf("col: m_iWidthInCU= %4d i=%4d width= %4d\n",m_iWidthInCU,i,m_puiColumnWidth[i]); //AFU 688 } 689 } 690 } 691 UInt getColumnWidth ( UInt columnidx ) { return *( m_puiColumnWidth + columnidx ); } 673 Void setColumnWidth ( const std::vector<Int>& columnWidth ) { m_tileColumnWidth = columnWidth; } 674 UInt getColumnWidth ( UInt columnIdx ) { return m_tileColumnWidth[columnIdx]; } 692 675 Void setNumRowsMinus1 ( Int i ) { m_iNumRowsMinus1 = i; } 693 676 Int getNumRowsMinus1 () { return m_iNumRowsMinus1; } 694 Void setRowHeight (UInt* rowHeight) 695 { 696 if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 ) 697 { 698 Int m_iHeightInCU = ( m_iSourceHeight%g_uiMaxCUHeight ) ? m_iSourceHeight/g_uiMaxCUHeight + 1 : m_iSourceHeight/g_uiMaxCUHeight; 699 m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ]; 700 701 for(Int i=0; i<m_iNumRowsMinus1; i++) 702 { 703 m_puiRowHeight[i] = rowHeight[i]; 704 printf("row: m_iHeightInCU=%4d i=%4d height=%4d\n",m_iHeightInCU,i,m_puiRowHeight[i]); //AFU 705 } 706 } 707 } 708 UInt getRowHeight ( UInt rowIdx ) { return *( m_puiRowHeight + rowIdx ); } 677 Void setRowHeight ( const std::vector<Int>& rowHeight) { m_tileRowHeight = rowHeight; } 678 UInt getRowHeight ( UInt rowIdx ) { return m_tileRowHeight[rowIdx]; } 709 679 Void xCheckGSParameters(); 710 680 Void setWaveFrontSynchro(Int iWaveFrontSynchro) { m_iWaveFrontSynchro = iWaveFrontSynchro; } -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r1074 r1081 395 395 Void TEncGOP::initGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP) 396 396 { 397 #if H_MV_ALIGN_HM_15 398 xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut, false ); 399 #else 397 400 xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut ); 401 #endif 398 402 m_iNumPicCoded = 0; 399 403 } … … 1228 1232 UInt uiRealEndAddress = uiExternalAddress*pcPic->getNumPartInCU()+uiInternalAddress; 1229 1233 1230 UInt uiCummulativeTileWidth;1231 UInt uiCummulativeTileHeight;1232 1234 Int p, j; 1233 1235 UInt uiEncCUAddr; 1234 1236 1235 //set NumColumnsMinus1 and NumRowsMinus1 1236 pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() ); 1237 pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() ); 1238 1239 //create the TComTileArray 1240 pcPic->getPicSym()->xCreateTComTileArray(); 1241 1242 if( pcSlice->getPPS()->getUniformSpacingFlag() == 1 ) 1243 { 1244 //set the width for each tile 1245 for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++) 1246 { 1247 for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++) 1248 { 1249 pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )-> 1250 setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1) 1251 - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) ); 1252 } 1253 } 1254 1255 //set the height for each tile 1256 for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++) 1257 { 1258 for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++) 1259 { 1260 pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )-> 1261 setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1) 1262 - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) ); 1263 } 1264 } 1265 } 1266 else 1267 { 1268 //set the width for each tile 1269 for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++) 1270 { 1271 uiCummulativeTileWidth = 0; 1272 for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1(); p++) 1273 { 1274 pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->setTileWidth( pcSlice->getPPS()->getColumnWidth(p) ); 1275 uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(p); 1276 } 1277 pcPic->getPicSym()->getTComTile(j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth ); 1278 } 1279 1280 //set the height for each tile 1281 for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++) 1282 { 1283 uiCummulativeTileHeight = 0; 1284 for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1(); p++) 1285 { 1286 pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->setTileHeight( pcSlice->getPPS()->getRowHeight(p) ); 1287 uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(p); 1288 } 1289 pcPic->getPicSym()->getTComTile(p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight ); 1290 } 1291 } 1292 //intialize each tile of the current picture 1293 pcPic->getPicSym()->xInitTiles(); 1237 pcPic->getPicSym()->initTiles(pcSlice->getPPS()); 1294 1238 1295 1239 // Allocate some coders, now we know how many tiles there are. … … 1814 1758 1815 1759 #if SETTING_NO_OUT_PIC_PRIOR 1760 pcSlice->setNoRaslOutputFlag(false); 1816 1761 if (pcSlice->isIRAP()) 1817 1762 { … … 1821 1766 } 1822 1767 //the inference for NoOutputPriorPicsFlag 1768 // KJS: This cannot happen at the encoder 1823 1769 if (!m_bFirst && pcSlice->isIRAP() && pcSlice->getNoRaslOutputFlag()) 1824 1770 { … … 2492 2438 assert (m_iGopSize > 0); 2493 2439 2494 return;2495 }2496 2497 Void TEncGOP::xInitGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut )2498 {2499 assert( iNumPicRcvd > 0 );2500 // Exception for the first frame2501 if ( iPOCLast == 0 )2502 {2503 m_iGopSize = 1;2504 }2505 else2506 m_iGopSize = m_pcCfg->getGOPSize();2507 2508 assert (m_iGopSize > 0);2509 2510 2440 return; 2511 2441 } -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncGOP.h
r1074 r1081 200 200 201 201 Void xInitGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, bool isField ); 202 Void xInitGOP ( Int iPOC, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut );203 202 Void xGetBuffer ( TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, Int iNumPicRcvd, Int iTimeOffset, TComPic*& rpcPic, TComPicYuv*& rpcPicYuvRecOut, Int pocCurr, bool isField ); 204 203 -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r1074 r1081 6329 6329 if( bCodeChroma ) 6330 6330 { 6331 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6332 m_pcEntropyCoder->resetBits(); 6331 6333 m_pcEntropyCoder->encodeQtCbf ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode ); 6332 6334 m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U ); 6333 uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsY;6335 uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits(); 6334 6336 6337 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6338 m_pcEntropyCoder->resetBits(); 6335 6339 m_pcEntropyCoder->encodeQtCbf ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode ); 6336 6340 m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V ); 6337 uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - ( uiSingleBitsY + uiSingleBitsU );6341 uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits(); 6338 6342 } 6339 6343 … … 6416 6420 const Double singleCostY = m_pcRdCost->calcRdCost( uiSingleBitsY, uiNonzeroDistY ); 6417 6421 #endif 6422 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6423 6418 6424 m_pcEntropyCoder->resetBits(); 6419 6425 m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA, uiTrMode ); … … 6449 6455 else if( checkTransformSkipY ) 6450 6456 { 6457 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6451 6458 m_pcEntropyCoder->resetBits(); 6452 6459 m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA, uiTrMode ); … … 6505 6512 { 6506 6513 const Double dSingleCostU = m_pcRdCost->calcRdCost( uiSingleBitsU, uiNonzeroDistU ); 6514 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6507 6515 m_pcEntropyCoder->resetBits(); 6508 6516 m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U, uiTrMode ); … … 6530 6538 else if( checkTransformSkipUV ) 6531 6539 { 6540 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6532 6541 m_pcEntropyCoder->resetBits(); 6533 6542 m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U, uiTrMode ); … … 6574 6583 { 6575 6584 const Double dSingleCostV = m_pcRdCost->calcRdCost( uiSingleBitsV, uiNonzeroDistV ); 6585 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6576 6586 m_pcEntropyCoder->resetBits(); 6577 6587 m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V, uiTrMode ); … … 6599 6609 else if( checkTransformSkipUV ) 6600 6610 { 6611 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6601 6612 m_pcEntropyCoder->resetBits(); 6602 6613 m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V, uiTrMode ); … … 6795 6806 pcCU->setCbfSubParts( uiAbsSumTransformSkipV ? uiSetCbf : 0, TEXT_CHROMA_V, uiAbsPartIdx, pcCU->getDepth(0)+uiTrModeC ); 6796 6807 6797 m_pcEntropyCoder->resetBits();6798 6808 uiSingleBitsU = 0; 6799 6809 uiSingleBitsV = 0; … … 6801 6811 if( uiAbsSumTransformSkipU ) 6802 6812 { 6813 m_pcEntropyCoder->resetBits(); 6803 6814 m_pcEntropyCoder->encodeQtCbf ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode ); 6804 6815 m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U ); … … 6843 6854 if( uiAbsSumTransformSkipV ) 6844 6855 { 6856 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] ); 6857 m_pcEntropyCoder->resetBits(); 6845 6858 m_pcEntropyCoder->encodeQtCbf ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode ); 6846 6859 m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V ); 6847 uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsU;6860 uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits(); 6848 6861 6849 6862 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr(); -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r1076 r1081 854 854 { 855 855 TComVUI* pcVUI = m_cSPS.getVuiParameters(); 856 pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioI dc() != -1);856 pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioInfoPresentFlag()); 857 857 pcVUI->setAspectRatioIdc(getAspectRatioIdc()); 858 858 pcVUI->setSarWidth(getSarWidth()); … … 1288 1288 Void TEncTop::xInitPPSforTiles() 1289 1289 { 1290 m_cPPS.set UniformSpacingFlag( m_iUniformSpacingIdr);1291 m_cPPS.setNum ColumnsMinus1( m_iNumColumnsMinus1 );1292 m_cPPS.setNum RowsMinus1( m_iNumRowsMinus1 );1293 if( m_iUniformSpacingIdr == 0)1294 { 1295 m_cPPS.set ColumnWidth( m_puiColumnWidth );1296 m_cPPS.set RowHeight( m_puiRowHeight );1290 m_cPPS.setTileUniformSpacingFlag( m_tileUniformSpacingFlag ); 1291 m_cPPS.setNumTileColumnsMinus1( m_iNumColumnsMinus1 ); 1292 m_cPPS.setNumTileRowsMinus1( m_iNumRowsMinus1 ); 1293 if( !m_tileUniformSpacingFlag ) 1294 { 1295 m_cPPS.setTileColumnWidth( m_tileColumnWidth ); 1296 m_cPPS.setTileRowHeight( m_tileRowHeight ); 1297 1297 } 1298 1298 m_cPPS.setLoopFilterAcrossTilesEnabledFlag( m_loopFilterAcrossTilesEnabledFlag ); 1299 1299 1300 1300 // # substreams is "per tile" when tiles are independent. 1301 if (m_iWaveFrontSynchro 1302 ) 1301 if (m_iWaveFrontSynchro ) 1303 1302 { 1304 1303 m_cPPS.setNumSubstreams(m_iWaveFrontSubstreams * (m_iNumColumnsMinus1+1)); … … 1326 1325 } 1327 1326 1328 if( m_iNumColumnsMinus1 && m_iUniformSpacingIdr==0)1327 if( m_iNumColumnsMinus1 && !m_tileUniformSpacingFlag ) 1329 1328 { 1330 1329 for(Int i=0; i<m_iNumColumnsMinus1; i++) 1331 1330 { 1332 uiCummulativeColumnWidth += m_ puiColumnWidth[i];1331 uiCummulativeColumnWidth += m_tileColumnWidth[i]; 1333 1332 } 1334 1333 … … 1353 1352 } 1354 1353 1355 if( m_iNumRowsMinus1 && m_iUniformSpacingIdr==0)1354 if( m_iNumRowsMinus1 && !m_tileUniformSpacingFlag ) 1356 1355 { 1357 1356 for(Int i=0; i<m_iNumRowsMinus1; i++) 1358 uiCummulativeRowHeight += m_ puiRowHeight[i];1357 uiCummulativeRowHeight += m_tileRowHeight[i]; 1359 1358 1360 1359 if( uiCummulativeRowHeight >= iHeightInCU ) -
branches/HTM-12.1-dev0/source/Lib/TLibVideoIO/TVideoIOYuv.cpp
r872 r1081 470 470 Bool retval = true; 471 471 472 if ((width==0)||(height==0)) 473 { 474 printf ("\nWarning: writing %d x %d luma sample output picture!", width, height); 475 } 476 472 477 if (m_bitDepthShiftY != 0 || m_bitDepthShiftC != 0) 473 478 { … … 563 568 564 569 Bool retval = true; 570 571 if ((width==0)||(height==0)) 572 { 573 printf ("\nWarning: writing %d x %d luma sample output picture!", width, height); 574 } 565 575 566 576 if (m_bitDepthShiftY != 0 || m_bitDepthShiftC != 0)
Note: See TracChangeset for help on using the changeset viewer.