Changeset 1084 in 3DVCSoftware


Ignore:
Timestamp:
24 Oct 2014, 11:44:58 (10 years ago)
Author:
tech
Message:

Merged branches/HTM-12.1-dev0@1083.

Location:
trunk
Files:
1 added
76 edited

Legend:

Unmodified
Added
Removed
  • trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view+depth_AllIntra.cfg

    r1066 r1084  
    7777#======== Coding Structure =============
    7878IntraPeriod                   : 1           # Period of I-Frame ( -1 = only first)
    79 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     79DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    8080GOPSize                       : 1           # GOP Size (number of B slice = GOPSize-1)
    8181Frame1    : B  1  1  0.442   0  0  0  4  0                  0                    0
     
    142142
    143143#============ Tiles ================
    144 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     144TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    145145                                                       # 1: the column and row boundaries are distributed uniformly
    146 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    147 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    148 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    149 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     146NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     147TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     148NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     149TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    150150LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    151151                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view_AllIntra.cfg

    r1066 r1084  
    6565#======== Coding Structure =============
    6666IntraPeriod                   : 1           # Period of I-Frame ( -1 = only first)
    67 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     67DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    6868GOPSize                       : 1           # GOP Size (number of B slice = GOPSize-1)
    6969Frame1    : B  1  1  0.442   0  0  0  4  0                  0                    0
     
    127127
    128128#============ Tiles ================
    129 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     129TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    130130                                                       # 1: the column and row boundaries are distributed uniformly
    131 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    132 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    133 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    134 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     131NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     132TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     133NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     134TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    135135
    136136LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg

    r1066 r1084  
    9191#======== Coding Structure =============
    9292IntraPeriod                   : 1           # Period of I-Frame ( -1 = only first)
    93 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     93DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    9494GOPSize                       : 1           # GOP Size (number of B slice = GOPSize-1)
    9595
     
    160160
    161161#============ Tiles ================
    162 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     162TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    163163                                                       # 1: the column and row boundaries are distributed uniformly
    164 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    165 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    166 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    167 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     164NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     165TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     166NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     167TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    168168LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    169169                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view_AllIntra.cfg

    r1066 r1084  
    7676#======== Coding Structure =============
    7777IntraPeriod                   : 1           # Period of I-Frame ( -1 = only first)
    78 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     78DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    7979GOPSize                       : 1           # GOP Size (number of B slice = GOPSize-1)
    8080Frame1    : B  1  1  0.442   0  0  0  4  0                  0                    0
     
    139139
    140140#============ Tiles ================
    141 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     141TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    142142                                                       # 1: the column and row boundaries are distributed uniformly
    143 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    144 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    145 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    146 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     143NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     144TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     145NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     146TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    147147
    148148LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/3D-HEVC/NonCTC/fco/baseCfg_3view+depth.cfg

    r1066 r1084  
    9191#======== Coding Structure =============
    9292IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    93 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     93DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    9494GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    9595
     
    209209
    210210#============ Tiles ================
    211 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     211TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    212212                                                       # 1: the column and row boundaries are distributed uniformly
    213 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    214 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    215 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    216 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     213NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     214TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     215NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     216TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    217217LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    218218                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/3D-HEVC/NonCTC/rc/baseCfg_3view+depth_rate_control.cfg

    r1066 r1084  
    9191#======== Coding Structure =============
    9292IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    93 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     93DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    9494GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    9595
     
    209209
    210210#============ Tiles ================
    211 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     211TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    212212                                                       # 1: the column and row boundaries are distributed uniformly
    213 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    214 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    215 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    216 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     213NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     214TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     215NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     216TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    217217LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    218218                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/3D-HEVC/baseCfg_2view+depth.cfg

    r1066 r1084  
    7777#======== Coding Structure =============
    7878IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    79 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     79DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    8080GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    8181
     
    176176
    177177#============ Tiles ================
    178 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     178TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    179179                                                       # 1: the column and row boundaries are distributed uniformly
    180 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    181 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    182 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    183 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     180NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     181TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     182NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     183TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    184184LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    185185                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/3D-HEVC/baseCfg_2view.cfg

    r1066 r1084  
    6565#======== Coding Structure =============
    6666IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    67 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     67DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    6868GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    6969
     
    146146
    147147#============ Tiles ================
    148 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     148TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    149149                                                       # 1: the column and row boundaries are distributed uniformly
    150 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    151 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    152 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    153 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     150NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     151TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     152NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     153TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    154154
    155155LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/3D-HEVC/baseCfg_3view+depth.cfg

    r1066 r1084  
    9191#======== Coding Structure =============
    9292IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    93 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     93DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    9494GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    9595
     
    209209
    210210#============ Tiles ================
    211 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     211TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    212212                                                       # 1: the column and row boundaries are distributed uniformly
    213 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    214 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    215 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    216 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     213NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     214TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     215NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     216TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    217217LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    218218                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/3D-HEVC/baseCfg_3view.cfg

    r1066 r1084  
    7676#======== Coding Structure =============
    7777IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    78 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     78DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    7979GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    8080
     
    166166
    167167#============ Tiles ================
    168 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     168TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    169169                                                       # 1: the column and row boundaries are distributed uniformly
    170 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    171 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    172 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    173 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     170NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     171TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     172NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     173TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    174174
    175175LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/3D-HEVC/fullCfg.cfg

    r1066 r1084  
    155155#======== Coding Structure =============
    156156IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    157 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     157DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    158158GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    159159
     
    274274
    275275#============ Tiles ================
    276 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     276TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    277277                                                       # 1: the column and row boundaries are distributed uniformly
    278 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    279 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    280 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    281 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     278NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     279TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     280NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     281TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    282282LFCrossTileBoundaryFlag             : 1                  # In-loop filtering is across or not across tile boundary.
    283283                                                       # 0:not across, 1: across                                                       
  • trunk/cfg/HEVC/HM/encoder_intra_main.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : 1           # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 1           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2  temporal_id #ref_pics_active #ref_pics reference pictures
     
    7777
    7878#============ Tiles ================
    79 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     79TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8080                                                       # 1: the column and row boundaries are distributed uniformly
    81 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    82 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 1
    84 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     81NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     82TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     83NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     84TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    8585
    8686LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_intra_main10.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : 1           # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 1           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2  temporal_id #ref_pics_active #ref_pics reference pictures 
     
    7777
    7878#============ Tiles ================
    79 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     79TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8080                                                       # 1: the column and row boundaries are distributed uniformly
    81 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    82 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 1
    84 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     81NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     82TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     83NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     84TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    8585
    8686LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_lowdelay_P_main.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : -1          # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 4           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2  temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
     
    8282
    8383#============ Tiles ================
    84 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     84TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8585                                                       # 1: the column and row boundaries are distributed uniformly
    86 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    87 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 1
    89 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     86NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     87TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     88NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     89TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    9090
    9191LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_lowdelay_P_main10.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : -1          # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 4           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2  temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
     
    8282
    8383#============ Tiles ================
    84 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     84TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8585                                                       # 1: the column and row boundaries are distributed uniformly
    86 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    87 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 1
    89 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     86NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     87TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     88NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     89TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    9090
    9191LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_lowdelay_main.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : -1          # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 4           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2  temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
     
    8282
    8383#============ Tiles ================
    84 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     84TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8585                                                       # 1: the column and row boundaries are distributed uniformly
    86 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    87 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 1
    89 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     86NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     87TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     88NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     89TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    9090
    9191LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_lowdelay_main10.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : -1          # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 0           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 4           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2  temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
     
    8282
    8383#============ Tiles ================
    84 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     84TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8585                                                       # 1: the column and row boundaries are distributed uniformly
    86 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    87 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 1
    89 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     86NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     87TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     88NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     89TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    9090
    9191LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_randomaccess_main.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : 32          # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures     predict deltaRPS #ref_idcs reference idcs
     
    2525Frame2:  B    4   2        0.3536   0            0              0           2                3         -4 -6  4               1       4        5         1 1 0 0 1
    2626Frame3:  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              0           2                4         -1  1  3 7             1       1        5         1 0 1 1 1
    28 Frame5:  B    3   4        0.68     0            0              0           2                4         -1 -3  1 5             1      -2        5         1 1 1 1 0
     27Frame4:  B    1   4        0.68     0            0              1           2                4         -1  1  3 7             1       1        5         1 0 1 1 1
     28Frame5:  B    3   4        0.68     0            0              1           2                4         -1 -3  1 5             1      -2        5         1 1 1 1 0
    2929Frame6:  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              0           2                4         -1 -5  1 3             1       1        5         1 0 1 1 1 
    31 Frame8:  B    7   4        0.68     0            0              0           2                4         -1 -3 -7 1             1      -2        5         1 1 1 1 0
     30Frame7:  B    5   4        0.68     0            0              1           2                4         -1 -5  1 3             1       1        5         1 0 1 1 1 
     31Frame8:  B    7   4        0.68     0            0              1           2                4         -1 -3 -7 1             1      -2        5         1 1 1 1 0
    3232
    3333#=========== Motion Search =============
     
    8686
    8787#============ Tiles ================
    88 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     88TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8989                                                       # 1: the column and row boundaries are distributed uniformly
    90 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    91 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 1
    93 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     90NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     91TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     92NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     93TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    9494
    9595LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/encoder_randomaccess_main10.cfg

    r872 r1084  
    1919#======== Coding Structure =============
    2020IntraPeriod                   : 32          # Period of I-Frame ( -1 = only first)
    21 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     21DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    2222GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    2323#        Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures     predict deltaRPS #ref_idcs reference idcs
     
    2525Frame2:  B    4   2        0.3536   0            0              0           2                3         -4 -6  4               1       4        5         1 1 0 0 1
    2626Frame3:  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              0           2                4         -1  1  3 7             1       1        5         1 0 1 1 1
    28 Frame5:  B    3   4        0.68     0            0              0           2                4         -1 -3  1 5             1      -2        5         1 1 1 1 0
     27Frame4:  B    1   4        0.68     0            0              1           2                4         -1  1  3 7             1       1        5         1 0 1 1 1
     28Frame5:  B    3   4        0.68     0            0              1           2                4         -1 -3  1 5             1      -2        5         1 1 1 1 0
    2929Frame6:  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              0           2                4         -1 -5  1 3             1       1        5         1 0 1 1 1 
    31 Frame8:  B    7   4        0.68     0            0              0           2                4         -1 -3 -7 1             1      -2        5         1 1 1 1 0
     30Frame7:  B    5   4        0.68     0            0              1           2                4         -1 -5  1 3             1       1        5         1 0 1 1 1 
     31Frame8:  B    7   4        0.68     0            0              1           2                4         -1 -3 -7 1             1      -2        5         1 1 1 1 0
    3232
    3333#=========== Motion Search =============
     
    8686
    8787#============ Tiles ================
    88 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     88TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    8989                                                       # 1: the column and row boundaries are distributed uniformly
    90 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    91 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 1
    93 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     90NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     91TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     92NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     93TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    9494
    9595LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/HEVC/HM/misc/encoder_randomaccess_field_coding.cfg

    r872 r1084  
    3636#======== Coding Structure =============
    3737IntraPeriod                   : 32          # Period of I-Frame ( -1 = only first)
    38 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     38DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    3939GOPSize                       : 16          # GOP Size (number of B slice = GOPSize-1)
    4040
     
    113113
    114114#============ Tiles ================
    115 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     115TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    116116                                                       # 1: the column and row boundaries are distributed uniformly
    117 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    118 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 1
    120 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     117NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     118TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     119NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     120TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    121121
    122122LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/MV-HEVC/NonCTC/layerwise_startup_IBP_3view.cfg

    r1066 r1084  
    4444#======== Coding Structure =============
    4545IntraPeriod                   : 8 16 12      # Period of I-Frame ( -1 = only first)
    46 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR  // Currently only working for CDR
     46DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI  // Currently only working for CDR
    4747GOPSize                       : 4           # GOP Size (number of B slice = GOPSize-1)
    4848#                           QPfactor      betaOffsetDiv2   #ref_pics_active  reference pictures     deltaRPS     reference idcs          ilPredLayerIdc       refLayerPicPosIl_L1
  • trunk/cfg/MV-HEVC/baseCfg_2view.cfg

    r1066 r1084  
    6363#======== Coding Structure =============
    6464IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    65 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     65DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    6666GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    6767
     
    143143
    144144#============ Tiles ================
    145 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     145TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    146146                                                       # 1: the column and row boundaries are distributed uniformly
    147 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    148 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    149 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    150 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     147NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     148TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     149NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     150TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    151151
    152152LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/MV-HEVC/baseCfg_3view.cfg

    r1066 r1084  
    7878#======== Coding Structure =============
    7979IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    80 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     80DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    8181GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    8282
     
    168168
    169169#============ Tiles ================
    170 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     170TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    171171                                                       # 1: the column and row boundaries are distributed uniformly
    172 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    173 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    174 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    175 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     172NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     173TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     174NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     175TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    176176
    177177LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/cfg/MV-HEVC/fullCfg.cfg

    r1066 r1084  
    153153#======== Coding Structure =============
    154154IntraPeriod                   : 24          # Period of I-Frame ( -1 = only first)
    155 DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CDR, 2:IDR
     155DecodingRefreshType           : 1           # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
    156156GOPSize                       : 8           # GOP Size (number of B slice = GOPSize-1)
    157157
     
    274274
    275275#============ Tiles ================
    276 UniformSpacingIdc                   : 0                # 0: the column boundaries are indicated by ColumnWidth array, the row boundaries are indicated by RowHeight array
     276TileUniformSpacing                  : 0                # 0: the column boundaries are indicated by TileColumnWidth array, the row boundaries are indicated by TileRowHeight array
    277277                                                       # 1: the column and row boundaries are distributed uniformly
    278 NumTileColumnsMinus1                : 0                # Number of columns in a picture minus 1
    279 ColumnWidthArray                    : 2 3              # Array containing ColumnWidth values in units of LCU (from left to right in picture)   
    280 NumTileRowsMinus1                   : 0                # Number of rows in a picture minus 1
    281 RowHeightArray                      : 2                # Array containing RowHeight values in units of LCU (from top to bottom in picture)
     278NumTileColumnsMinus1                : 0                # Number of tile columns in a picture minus 1
     279TileColumnWidthArray                : 2 3              # Array containing tile column width values in units of CTU (from left to right in picture)   
     280NumTileRowsMinus1                   : 0                # Number of tile rows in a picture minus 1
     281TileRowHeightArray                  : 2                # Array containing tile row height values in units of CTU (from top to bottom in picture)
    282282
    283283LFCrossTileBoundaryFlag           : 1                  # In-loop filtering is across or not across tile boundary.
  • trunk/source/App/TAppDecoder/TAppDecCfg.cpp

    r1066 r1084  
    9595  ("RespectDefDispWindow,w", m_respectDefDispWindow, 0, "Only output content inside the default display window\n")
    9696#if H_MV
    97 #if H_MV_HLS10_GEN_FIX
    9897  ("OutputVpsInfo,v", m_outputVpsInfo, false, "Output information about the layer dependencies and layer sets")
    99 #endif
    10098#endif
    10199  ;
  • trunk/source/App/TAppDecoder/TAppDecCfg.h

    r1066 r1084  
    8080
    8181#if H_MV
    82 #if H_MV_HLS10_GEN_FIX
    8382  Bool          m_outputVpsInfo;                     ///< Output VPS information
    84 #endif
    8583  Void xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char*& rpchOutputFileName); ///< create filenames
    8684#endif
  • trunk/source/App/TAppDecoder/TAppDecTop.cpp

    r1066 r1084  
    257257            m_targetDecLayerIdSet = vps->getTargetDecLayerIdList( m_targetOptLayerSetIdx );
    258258          }
    259 #if H_MV_HLS10_GEN_FIX
    260259          if (m_outputVpsInfo )
    261260          {
    262 #if H_MV_HLS10_AUX
    263261            m_vps->printScalabilityId();
    264 #endif
    265262            m_vps->printLayerDependencies();
    266263            m_vps->printLayerSets();
    267264            m_vps->printPTL();
    268265          }
    269 #endif
    270266        }
    271267#if H_3D
     
    580576  Int dpbFullness = 0;
    581577#if H_MV
    582 #if H_MV_HLS10_ADD_LAYERSETS
    583578  TComSPS* activeSPS = m_tDecTop[ decIdx ]->getActiveSPS();
    584 #else
    585   // preliminary fix
    586   TComSPS* activeSPS = m_tDecTop[0]->getActiveSPS();
    587 #endif
    588579#else
    589580  TComSPS* activeSPS = m_cTDecTop.getActiveSPS();
     
    11551146    Int curLayerId = m_tDecTop[dIdx]->getLayerId();
    11561147    Int curLayerIdxInVps = m_vps->getLayerIdInNuh( curLayerId  );
    1157 #if H_MV_HLS10_REF_PRED_LAYERS
    11581148    if ( m_vps->getDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) )
    1159 #else
    1160     if ( m_vps->getInDirectDependencyFlag(optLayerIdxInVps, curLayerIdxInVps ) )
    1161 #endif
    11621149    {
    11631150      TComPic* curPic = m_ivPicLists.getPic( curLayerId, pocLastPic );
  • trunk/source/App/TAppEncoder/TAppEncCfg.cpp

    r1066 r1084  
    7272#endif
    7373, m_pchdQPFile()
    74 , m_pColumnWidth()
    75 , m_pRowHeight()
    7674, m_scalingListFile()
    7775{
     
    139137#endif
    140138  free(m_pchdQPFile);
    141   free(m_pColumnWidth);
    142   free(m_pRowHeight);
    143139  free(m_scalingListFile);
    144140#if H_MV
     
    241237  {"main-still-picture", Profile::MAINSTILLPICTURE},
    242238#if H_MV
    243 #if H_MV_HLS10_PTL
    244239  {"multiview-main", Profile::MULTIVIEWMAIN},
    245240#if H_3D
     
    247242#endif
    248243
    249 #else
    250   {"main-stereo",    Profile::MAINSTEREO},
    251   {"main-multiview", Profile::MAINMULTIVIEW},
    252 #if H_3D
    253   {"main-3d"    , Profile::MAIN3D},
    254 #endif
    255 #endif
    256244#endif
    257245};
     
    341329#if H_MV
    342330  vector<Int>   cfg_dimensionLength;
    343 #if H_MV_HLS10_PTL
    344331  string        cfg_profiles;
    345332  string        cfg_levels;
    346333  string        cfg_tiers;
    347 #endif
    348334#if H_3D
    349335  cfg_dimensionLength.push_back( 2  );  // depth
     
    354340#endif
    355341  string cfg_dQPFile;
    356   string cfg_ColumnWidth;
    357   string cfg_RowHeight;
     342  string cfgColumnWidth;
     343  string cfgRowHeight;
    358344  string cfg_ScalingListFile;
    359345  string cfg_startOfCodedInterval;
     
    380366  ("NumberOfLayers",        m_numberOfLayers     , 1,                     "Number of layers")
    381367#if !H_3D
    382 #if H_MV_HLS10_AUX
    383368  ("ScalabilityMask",       m_scalabilityMask    , 2                    , "Scalability Mask: 2: Multiview, 8: Auxiliary, 10: Multiview + Auxiliary")   
    384 #else
    385   ("ScalabilityMask",       m_scalabilityMask    , 2                    , "Scalability Mask")   
    386 #endif
    387369#else
    388370  ("ScalabilityMask",       m_scalabilityMask    , 3                    , "Scalability Mask, 1: Texture 3: Texture + Depth ")   
     
    391373  ("ViewOrderIndex",        m_viewOrderIndex     , std::vector<Int>(1,0), "View Order Index per layer")
    392374  ("ViewId",                m_viewId             , std::vector<Int>(1,0), "View Id per View Order Index")
    393 #if H_MV_HLS10_AUX
    394375  ("AuxId",                 m_auxId              , std::vector<Int>(1,0), "AuxId per layer")
    395 #endif
    396376#if H_3D
    397377  ("DepthFlag",             m_depthFlag          , std::vector<Int>(1,0), "Depth Flag")
    398378#if H_3D_DIM
    399379  ("DMM",                   m_useDMM,           true,  "Depth intra model modes")
    400 #if SEPARATE_FLAG_I0085
    401380  ("IVP",                   m_useIVP,           true,  "intra-view prediction")
    402 #endif
    403381  ("SDC",                   m_useSDC,           true,  "Simplified depth coding")
    404382  ("DLT",                   m_useDLT,           true,  "Depth lookup table")
    405383#endif
    406 #if MTK_SINGLE_DEPTH_MODE_I0095
     384#if H_3D
    407385  ("SingleDepthMode",    m_useSingleDepthMode, true, "Single depth mode")                         
    408386#endif
    409387#endif
    410 #if H_MV_HLS10_GEN_FIX
    411388  ("TargetEncLayerIdList",  m_targetEncLayerIdList, std::vector<Int>(0,0), "LayerIds in Nuh to be encoded") 
    412 #endif
    413389  ("LayerIdInNuh",          m_layerIdInNuh       , std::vector<Int>(1,0), "LayerId in Nuh") 
    414390  ("SplittingFlag",         m_splittingFlag      , false                , "Splitting Flag")   
     
    417393  ("VpsNumLayerSets",       m_vpsNumLayerSets    , 1                    , "Number of layer sets")   
    418394  ("LayerIdsInSet_%d",      m_layerIdsInSets     , std::vector<Int>(1,0), MAX_VPS_OP_SETS_PLUS1 ,"LayerIds of Layer set") 
    419 #if H_MV_HLS10_ADD_LAYERSETS
    420395  ("NumAddLayerSets"     , m_numAddLayerSets     , 0                                              , "NumAddLayerSets     ")
    421396  ("HighestLayerIdxPlus1_%d", m_highestLayerIdxPlus1, std::vector< Int  >(0,0)  ,MAX_VPS_NUM_ADD_LAYER_SETS, "HighestLayerIdxPlus1")
    422 #endif
    423397  ("DefaultTargetOutputLayerIdc"     , m_defaultOutputLayerIdc     , 0, "Specifies output layers of layer sets, 0: output all layers, 1: output highest layer, 2: specified by LayerIdsInDefOutputLayerSet")
    424398  ("OutputLayerSetIdx",     m_outputLayerSetIdx  , std::vector<Int>(0,0), "Indices of layer sets used as additional output layer sets") 
     
    428402  ("AltOutputLayerFlag",    m_altOutputLayerFlag , std::vector<Bool>(1,0), "Alt output layer flag")
    429403 
    430 #if H_MV_HLS10_PTL
    431404  ("ProfileTierLevelIdx_%d",  m_profileTierLevelIdx, std::vector<Int>(0), MAX_NUM_LAYERS, "Indices to profile level tier for ols")
    432 #else
    433   ("ProfileLevelTierIdx",   m_profileLevelTierIdx, std::vector<Int>(1,0), "Indices to profile level tier")
    434 #endif
    435405  // Layer dependencies
    436406  ("DirectRefLayers_%d",    m_directRefLayers    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIds of direct reference layers")
     
    446416  ("OutputBitDepthC",       m_outputBitDepthC,   0, "As per OutputBitDepth but for chroma component. (default:InternalBitDepthC)")
    447417  ("InternalBitDepthC",     m_internalBitDepthC, 0, "As per InternalBitDepth but for chroma component. (default:IntrenalBitDepth)")
    448   ("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")
    449420  ("HorizontalPadding,-pdx",m_aiPad[0],            0, "Horizontal source padding for conformance window mode 2")
    450421  ("VerticalPadding,-pdy",  m_aiPad[1],            0, "Vertical source padding for conformance window mode 2")
    451   ("ConfLeft",              m_confLeft,            0, "Left offset for window conformance mode 3")
    452   ("ConfRight",             m_confRight,           0, "Right offset for window conformance mode 3")
    453   ("ConfTop",               m_confTop,             0, "Top offset for window conformance mode 3")
    454   ("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")
    455430  ("FrameRate,-fr",         m_iFrameRate,          0, "Frame rate")
    456431  ("FrameSkip,-fs",         m_FrameSkip,          0u, "Number of frames to skip at start of input YUV")
     
    462437 
    463438  // Profile and level
    464 #if H_MV_HLS10_PTL
     439#if H_MV
    465440  ("Profile", cfg_profiles,   string(""),           "Profile in VpsProfileTierLevel (Indication only)")
    466441  ("Level",   cfg_levels ,    string(""),           "Level indication in VpsProfileTierLevel (Indication only)")
     
    609584  ("WeightedPredB,-wpB",          m_useWeightedBiPred,             false,      "Use weighted (bidirectional) prediction in B slices")
    610585  ("Log2ParallelMergeLevel",      m_log2ParallelMergeLevel,     2u,          "Parallel merge estimation region")
    611   ("UniformSpacingIdc",           m_iUniformSpacingIdr,            0,          "Indicates if the column and row boundaries are distributed uniformly")
    612   ("NumTileColumnsMinus1",        m_iNumColumnsMinus1,             0,          "Number of columns in a picture minus 1")
    613   ("ColumnWidthArray",            cfg_ColumnWidth,                 string(""), "Array containing ColumnWidth values in units of LCU")
    614   ("NumTileRowsMinus1",           m_iNumRowsMinus1,                0,          "Number of rows in a picture minus 1")
    615   ("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")
    616597  ("LFCrossTileBoundaryFlag",      m_bLFCrossTileBoundaryFlag,             true,          "1: cross-tile-boundary loop filtering. 0:non-cross-tile-boundary loop filtering")
    617598  ("WaveFrontSynchro",            m_iWaveFrontSynchro,             0,          "0: no synchro; 1 synchro with TR; 2 TRR etc")
     
    650631#endif
    651632#if H_MV
    652 #if H_MV_HLS10_GEN_FIX
    653633// A lot of this stuff could should actually be derived by the encoder.
    654 #endif // H_MV_HLS10_GEN
    655634  // VPS VUI
    656635  ("VpsVuiPresentFlag"           , m_vpsVuiPresentFlag           , false                                           , "VpsVuiPresentFlag           ")
     
    676655  ("CtuBasedOffsetEnabledFlag"   , m_ctuBasedOffsetEnabledFlag   , std::vector< Bool >(1,0)  ,MAX_NUM_LAYERS       , "CtuBasedOffsetEnabledFlag    per direct reference for the N-th layer")
    677656  ("MinHorizontalCtuOffsetPlus1" , m_minHorizontalCtuOffsetPlus1 , std::vector< Int  >(1,0)  ,MAX_NUM_LAYERS       , "MinHorizontalCtuOffsetPlus1  per direct reference for the N-th layer")
    678 #if H_MV_HLS10_VPS_VUI
    679657  ("SingleLayerForNonIrapFlag", m_singleLayerForNonIrapFlag, false                                          , "SingleLayerForNonIrapFlag")
    680658  ("HigherLayerIrapSkipFlag"  , m_higherLayerIrapSkipFlag  , false                                          , "HigherLayerIrapSkipFlag  ")
    681 #endif
    682659#endif
    683660
     
    699676  ("ColourDescriptionPresent",       m_colourDescriptionPresentFlag,       false, "Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present")
    700677  ("ColourPrimaries",                m_colourPrimaries,                        2, "Indicates chromaticity coordinates of the source primaries")
    701   ("TransferCharateristics",         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")
    702679  ("MatrixCoefficients",             m_matrixCoefficients,                     2, "Describes the matrix coefficients used in deriving luma and chroma from RGB primaries")
    703680  ("ChromaLocInfoPresent",           m_chromaLocInfoPresentFlag,           false, "Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present")
     
    786763  ("SEISubBitstreamMaxBitRate",               m_sbPropMaxBitRate,             std::vector< Int  >(1,0)  ,"Specifies maximum bit rate of the i-th sub-bitstream")
    787764
    788 #if H_MV_HLS10_GEN_FIX
    789765  ("OutputVpsInfo",                           m_outputVpsInfo,                false                     ,"Output information about the layer dependencies and layer sets")
    790 #endif
    791766#endif
    792767#if H_3D
     
    814789
    815790#endif //HHI_VSO
    816 #if MTK_I0099_VPS_EX2
     791#if H_3D_QTLPC
    817792  ("LimQtPredFlag",                   m_bLimQtPredFlag          , true          , "Use Predictive Coding with QTL" )
    818 #endif
    819 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    820 #if H_3D_QTLPC
    821793  ("QTL",                             m_bUseQTL                 , true          , "Use depth Quadtree Limitation" )
    822 #if !MTK_I0099_VPS_EX2
    823   ("PC",                              m_bUsePC                  , true          , "Use Predictive Coding with QTL" )
    824 #endif
    825 #endif
    826794#endif
    827795#if H_3D_IV_MERGE
     
    928896  m_pchdQPFile = cfg_dQPFile.empty() ? NULL : strdup(cfg_dQPFile.c_str());
    929897 
    930   Char* pColumnWidth = cfg_ColumnWidth.empty() ? NULL: strdup(cfg_ColumnWidth.c_str());
    931   Char* pRowHeight = cfg_RowHeight.empty() ? NULL : strdup(cfg_RowHeight.c_str());
    932   if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 )
    933   {
    934     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;
    935904    int  i=0;
    936     m_pColumnWidth = new UInt[m_iNumColumnsMinus1];
    937     columnWidth = strtok(pColumnWidth, " ,-");
    938     while(columnWidth!=NULL)
    939     {
    940       if( i>=m_iNumColumnsMinus1 )
     905    m_tileColumnWidth.resize( m_numTileColumnsMinus1 );
     906    str = strtok(pColumnWidth, " ,-");
     907    while(str!=NULL)
     908    {
     909      if( i >= m_numTileColumnsMinus1 )
    941910      {
    942911        printf( "The number of columns whose width are defined is larger than the allowed number of columns.\n" );
    943912        exit( EXIT_FAILURE );
    944913      }
    945       *( m_pColumnWidth + i ) = atoi( columnWidth );
    946       columnWidth = strtok(NULL, " ,-");
     914      m_tileColumnWidth[i] = atoi( str );
     915      str = strtok(NULL, " ,-");
    947916      i++;
    948917    }
    949     if( i<m_iNumColumnsMinus1 )
     918    if( i < m_numTileColumnsMinus1 )
    950919    {
    951920      printf( "The width of some columns is not defined.\n" );
     
    955924  else
    956925  {
    957     m_pColumnWidth = NULL;
    958   }
    959 
    960   if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 )
    961   {
    962     char *rowHeight;
     926    m_tileColumnWidth.clear();
     927  }
     928
     929  if( !m_tileUniformSpacingFlag && m_numTileRowsMinus1 > 0 )
     930  {
     931    char *str;
    963932    int  i=0;
    964     m_pRowHeight = new UInt[m_iNumRowsMinus1];
    965     rowHeight = strtok(pRowHeight, " ,-");
    966     while(rowHeight!=NULL)
    967     {
    968       if( i>=m_iNumRowsMinus1 )
     933    m_tileRowHeight.resize(m_numTileRowsMinus1);
     934    str = strtok(pRowHeight, " ,-");
     935    while(str!=NULL)
     936    {
     937      if( i>=m_numTileRowsMinus1 )
    969938      {
    970939        printf( "The number of rows whose height are defined is larger than the allowed number of rows.\n" );
    971940        exit( EXIT_FAILURE );
    972941      }
    973       *( m_pRowHeight + i ) = atoi( rowHeight );
    974       rowHeight = strtok(NULL, " ,-");
     942      m_tileRowHeight[i] = atoi( str );
     943      str = strtok(NULL, " ,-");
    975944      i++;
    976945    }
    977     if( i<m_iNumRowsMinus1 )
     946    if( i < m_numTileRowsMinus1 )
    978947    {
    979948      printf( "The height of some rows is not defined.\n" );
     
    983952  else
    984953  {
    985     m_pRowHeight = NULL;
     954    m_tileRowHeight.clear();
    986955  }
    987956#if H_MV
     
    999968
    1000969  // TODO:ChromaFmt assumes 4:2:0 below
    1001   switch (m_conformanceMode)
     970  switch (m_conformanceWindowMode)
    1002971  {
    1003972  case 0:
    1004973    {
    1005974      // no conformance or padding
    1006       m_confLeft = m_confRight = m_confTop = m_confBottom = 0;
     975      m_confWinLeft = m_confWinRight = m_confWinTop = m_confWinBottom = 0;
    1007976      m_aiPad[1] = m_aiPad[0] = 0;
    1008977      break;
     
    1014983      if (m_iSourceWidth % minCuSize)
    1015984      {
    1016         m_aiPad[0] = m_confRight  = ((m_iSourceWidth / minCuSize) + 1) * minCuSize - m_iSourceWidth;
    1017         m_iSourceWidth  += m_confRight;
     985        m_aiPad[0] = m_confWinRight  = ((m_iSourceWidth / minCuSize) + 1) * minCuSize - m_iSourceWidth;
     986        m_iSourceWidth  += m_confWinRight;
    1018987      }
    1019988      if (m_iSourceHeight % minCuSize)
    1020989      {
    1021         m_aiPad[1] = m_confBottom = ((m_iSourceHeight / minCuSize) + 1) * minCuSize - m_iSourceHeight;
    1022         m_iSourceHeight += m_confBottom;
     990        m_aiPad[1] = m_confWinBottom = ((m_iSourceHeight / minCuSize) + 1) * minCuSize - m_iSourceHeight;
     991        m_iSourceHeight += m_confWinBottom;
    1023992        if ( m_isField )
    1024993        {
    1025           m_iSourceHeightOrg += m_confBottom << 1;
    1026           m_aiPad[1] = m_confBottom << 1;
     994          m_iSourceHeightOrg += m_confWinBottom << 1;
     995          m_aiPad[1] = m_confWinBottom << 1;
    1027996        }
    1028997      }
     
    10441013      m_iSourceWidth  += m_aiPad[0];
    10451014      m_iSourceHeight += m_aiPad[1];
    1046       m_confRight  = m_aiPad[0];
    1047       m_confBottom = m_aiPad[1];
     1015      m_confWinRight  = m_aiPad[0];
     1016      m_confWinBottom = m_aiPad[1];
    10481017      break;
    10491018    }
     
    10511020    {
    10521021      // conformance
    1053       if ((m_confLeft == 0) && (m_confRight == 0) && (m_confTop == 0) && (m_confBottom == 0))
     1022      if ((m_confWinLeft == 0) && (m_confWinRight == 0) && (m_confWinTop == 0) && (m_confWinBottom == 0))
    10541023      {
    10551024        fprintf(stderr, "Warning: Conformance window enabled, but all conformance window parameters set to zero\n");
     
    10821051  }
    10831052  m_iNumberOfViews = (Int) uniqueViewOrderIndices.size();
    1084 #if H_MV_HLS10_AUX
    10851053  xResizeVector( m_auxId );
    1086 #endif
    10871054
    10881055#if H_3D
     
    11181085  xResizeVector( m_wppInUseFlag );
    11191086
    1120 #if H_MV_HLS10_ADD_LAYERSETS
    11211087  for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + m_numAddLayerSets + (Int) m_outputLayerSetIdx.size(); olsIdx++)
    1122 #else
    1123   for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + (Int) m_outputLayerSetIdx.size(); olsIdx++)
    1124 #endif
    11251088  {   
    11261089    m_altOutputLayerFlag.push_back( false );     
     
    12341197
    12351198#if H_MV
    1236 #if H_MV_HLS10_PTL
    12371199  // parse PTL
    12381200  Bool anyEmpty = false;
     
    12811243  xReadStrToEnum( cfg_levels,   m_level     );
    12821244  xReadStrToEnum( cfg_tiers ,   m_levelTier );
    1283 #endif
    12841245#endif
    12851246#if H_3D
     
    13991360
    14001361
    1401 #if !H_MV_HLS10_PTL
     1362#if !H_MV
    14021363  if( m_profile==Profile::NONE )
    14031364  {
     
    14311392  xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 3, "Scalability Mask must be equal to 2 or 3. ");
    14321393#else
    1433 #if H_MV_HLS10_AUX
    14341394  xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 8 && m_scalabilityMask != 10, "Scalability Mask must be equal to 2, 8 or 10");
    1435 #else
    1436   xConfirmPara( m_scalabilityMask != 2 , "Scalability Mask must be equal to 2. ");
    1437 #endif
    14381395#endif
    14391396
     
    14461403
    14471404  m_dimIds.push_back( m_viewOrderIndex );   
    1448 #if H_MV_HLS10_AUX
    14491405  for (Int i = 0; i < m_auxId.size(); i++)
    14501406  {
     
    14551411    m_dimIds.push_back ( m_auxId );
    14561412  }
    1457 #endif 
    14581413  xConfirmPara(  m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. "   );
    14591414  Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1];
     
    15401495    for ( Int i = 0; i < m_layerIdsInSets[lsIdx].size(); i++ )
    15411496    {
    1542 #if FIX_TICKET_61
    15431497      xConfirmPara( m_layerIdsInSets[lsIdx][i] < 0 || m_layerIdsInSets[lsIdx][i] >= MAX_NUM_LAYER_IDS, "LayerIdsInSet must be greater than 0 and less than MAX_NUM_LAYER_IDS" );
    1544 #else
    1545       xConfirmPara( m_layerIdsInSets[lsIdx][i] < 0 || m_layerIdsInSets[lsIdx].size() >= MAX_NUM_LAYER_IDS, "LayerIdsInSet must be greater than and less than MAX_NUM_LAYER_IDS" );
    1546 #endif
    15471498    }
    15481499  }
     
    15531504  {   
    15541505    Int refLayerSetIdx = m_outputLayerSetIdx[ lsIdx ];
    1555 #if H_MV_HLS10_ADD_LAYERSETS
    15561506    xConfirmPara(  refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets + m_numAddLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets plus NumAddLayerSets." );
    1557 #else
    1558     xConfirmPara(  refLayerSetIdx < 0 || refLayerSetIdx >= m_vpsNumLayerSets, "Output layer set idx must be greater or equal to 0 and less than the VpsNumLayerSets." );
    1559 #endif
    1560 #if !H_MV_HLS10_ADD_LAYERSETS
    1561     for (Int i = 0; i < m_layerIdsInAddOutputLayerSet[ lsIdx ].size(); i++)
    1562     {
    1563       Bool isAlsoInLayerSet = false;
    1564       for (Int j = 0; j < m_layerIdsInSets[ refLayerSetIdx ].size(); j++ )
    1565       {
    1566         if ( m_layerIdsInSets[ refLayerSetIdx ][ j ] == m_layerIdsInAddOutputLayerSet[ lsIdx ][ i ] )
    1567         {
    1568           isAlsoInLayerSet = true;
    1569           break;
    1570         }       
    1571       }
    1572       xConfirmPara( !isAlsoInLayerSet, "All output layers of a output layer set be included in corresponding layer set.");
    1573     }
    1574 #endif
    15751507  }
    15761508
     
    15841516      anyDefaultOutputFlag = anyDefaultOutputFlag || ( m_layerIdsInDefOutputLayerSet[lsIdx].size() != 0 );
    15851517    }   
    1586 #if H_MV_HLS10_ADD_LAYERSETS
    15871518    if ( anyDefaultOutputFlag )
    15881519    {   
    15891520      printf( "\nWarning: Ignoring LayerIdsInDefOutputLayerSet parameters, since defaultTargetOuputLayerIdc is not equal 2.\n" );   
    15901521    }
    1591 #else
    1592     printf( "\nWarning: Ignoring LayerIdsInDefOutputLayerSet parameters, since defaultTargetOuputLayerIdc is not equal 2.\n" );   
    1593 #endif
    15941522  }
    15951523  else 
     
    16131541  }
    16141542
    1615 #if H_MV_HLS10_ADD_LAYERSETS
    16161543  xConfirmPara( m_altOutputLayerFlag.size() < m_vpsNumLayerSets + m_numAddLayerSets + m_outputLayerSetIdx.size(), "The number of alt output layer flags must be equal to the number of layer set additional output layer sets plus the number of output layer set indices" );
    1617 #else
    1618   xConfirmPara( m_altOutputLayerFlag.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" );
    1619 #endif
    16201544
    16211545  // PTL
    1622 #if H_MV_HLS10_PTL
    16231546    xConfirmPara( ( m_profile.size() != m_inblFlag.size() || m_profile.size() != m_level.size()  ||  m_profile.size() != m_levelTier.size() ), "The number of Profiles, Levels, Tiers and InblFlags must be equal." );
    16241547
     
    16331556      }
    16341557    }
    1635 #else
    1636     xConfirmPara( m_profileLevelTierIdx.size() < m_vpsNumLayerSets + m_outputLayerSetIdx.size(), "The number of Profile Level Tier indices must be equal to the number of layer set plus the number of output layer set indices" );
    1637 #endif
    16381558
    16391559    // Layer Dependencies 
     
    17681688  }
    17691689 
    1770   Bool tileFlag = (m_iNumColumnsMinus1 > 0 || m_iNumRowsMinus1 > 0 );
     1690  Bool tileFlag = (m_numTileColumnsMinus1 > 0 || m_numTileRowsMinus1 > 0 );
    17711691  xConfirmPara( tileFlag && m_iWaveFrontSynchro,            "Tile and Wavefront can not be applied together");
    17721692
     
    17781698  xConfirmPara( m_aiPad[1] % TComSPS::getWinUnitY(CHROMA_420) != 0, "Vertical padding must be an integer multiple of the specified chroma subsampling");
    17791699
    1780   xConfirmPara( m_confLeft   % TComSPS::getWinUnitX(CHROMA_420) != 0, "Left conformance window offset must be an integer multiple of the specified chroma subsampling");
    1781   xConfirmPara( m_confRight  % TComSPS::getWinUnitX(CHROMA_420) != 0, "Right conformance window offset must be an integer multiple of the specified chroma subsampling");
    1782   xConfirmPara( m_confTop    % TComSPS::getWinUnitY(CHROMA_420) != 0, "Top conformance window offset must be an integer multiple of the specified chroma subsampling");
    1783   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  }
    17841714
    17851715#if H_3D
     
    23012231      Int widthInCU = (m_iSourceWidth % m_uiMaxCUWidth) ? m_iSourceWidth/m_uiMaxCUWidth + 1: m_iSourceWidth/m_uiMaxCUWidth;
    23022232      Int heightInCU = (m_iSourceHeight % m_uiMaxCUHeight) ? m_iSourceHeight/m_uiMaxCUHeight + 1: m_iSourceHeight/m_uiMaxCUHeight;
    2303       if(m_iUniformSpacingIdr)
    2304       {
    2305         maxTileWidth = m_uiMaxCUWidth*((widthInCU+m_iNumColumnsMinus1)/(m_iNumColumnsMinus1+1));
    2306         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));
    23072237        // if only the last tile-row is one treeblock higher than the others
    23082238        // the maxTileHeight becomes smaller if the last row of treeblocks has lower height than the others
    2309         if(!((heightInCU-1)%(m_iNumRowsMinus1+1)))
     2239        if(!((heightInCU-1)%(m_numTileRowsMinus1+1)))
    23102240        {
    23112241          maxTileHeight = maxTileHeight - m_uiMaxCUHeight + (m_iSourceHeight % m_uiMaxCUHeight);
     
    23132243        // if only the last tile-column is one treeblock wider than the others
    23142244        // the maxTileWidth becomes smaller if the last column of treeblocks has lower width than the others   
    2315         if(!((widthInCU-1)%(m_iNumColumnsMinus1+1)))
     2245        if(!((widthInCU-1)%(m_numTileColumnsMinus1+1)))
    23162246        {
    23172247          maxTileWidth = maxTileWidth - m_uiMaxCUWidth + (m_iSourceWidth % m_uiMaxCUWidth);
     
    23202250      else // not uniform spacing
    23212251      {
    2322         if(m_iNumColumnsMinus1<1)
     2252        if(m_numTileColumnsMinus1<1)
    23232253        {
    23242254          maxTileWidth = m_iSourceWidth;
     
    23272257        {
    23282258          Int accColumnWidth = 0;
    2329           for(Int col=0; col<(m_iNumColumnsMinus1); col++)
     2259          for(Int col=0; col<(m_numTileColumnsMinus1); col++)
    23302260          {
    2331             maxTileWidth = m_pColumnWidth[col]>maxTileWidth ? m_pColumnWidth[col]:maxTileWidth;
    2332             accColumnWidth += m_pColumnWidth[col];
     2261            maxTileWidth = m_tileColumnWidth[col]>maxTileWidth ? m_tileColumnWidth[col]:maxTileWidth;
     2262            accColumnWidth += m_tileColumnWidth[col];
    23332263          }
    23342264          maxTileWidth = (widthInCU-accColumnWidth)>maxTileWidth ? m_uiMaxCUWidth*(widthInCU-accColumnWidth):m_uiMaxCUWidth*maxTileWidth;
    23352265        }
    2336         if(m_iNumRowsMinus1<1)
     2266        if(m_numTileRowsMinus1<1)
    23372267        {
    23382268          maxTileHeight = m_iSourceHeight;
     
    23412271        {
    23422272          Int accRowHeight = 0;
    2343           for(Int row=0; row<(m_iNumRowsMinus1); row++)
     2273          for(Int row=0; row<(m_numTileRowsMinus1); row++)
    23442274          {
    2345             maxTileHeight = m_pRowHeight[row]>maxTileHeight ? m_pRowHeight[row]:maxTileHeight;
    2346             accRowHeight += m_pRowHeight[row];
     2275            maxTileHeight = m_tileRowHeight[row]>maxTileHeight ? m_tileRowHeight[row]:maxTileHeight;
     2276            accRowHeight += m_tileRowHeight[row];
    23472277          }
    23482278          maxTileHeight = (heightInCU-accRowHeight)>maxTileHeight ? m_uiMaxCUHeight*(heightInCU-accRowHeight):m_uiMaxCUHeight*maxTileHeight;
     
    24992429#endif
    25002430#if H_MV
    2501 #if H_MV_HLS10_GEN_FIX
    25022431  xPrintParaVector( "NuhLayerId"     , m_layerIdInNuh );
    25032432  if ( m_targetEncLayerIdList.size() > 0)
     
    25052434    xPrintParaVector( "TargetEncLayerIdList"     , m_targetEncLayerIdList );
    25062435  }
    2507 #endif
    25082436  xPrintParaVector( "ViewIdVal"     , m_viewId );
    25092437  xPrintParaVector( "ViewOrderIndex", m_viewOrderIndex );
    2510 #if H_MV_HLS10_AUX
    25112438  xPrintParaVector( "AuxId", m_auxId );
    2512 #endif
    25132439#endif
    25142440#if H_3D
     
    25212447  xPrintParaVector( "SAO"              , m_bUseSAO            );
    25222448#endif
    2523   printf("Real     Format              : %dx%d %dHz\n", m_iSourceWidth - m_confLeft - 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 );
    25242450  printf("Internal Format              : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate );
    25252451  if (m_isField)
     
    26762602  printf("WVSO:%d ", m_bUseWVSO ); 
    26772603#endif
    2678 #if MTK_I0099_VPS_EX2
     2604#if H_3D_QTLPC
    26792605  printf("LimQtPredFlag:%d ", m_bLimQtPredFlag ? 1 : 0);
    2680 #endif
    2681 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    2682 #if H_3D_QTLPC
    26832606  printf("QTL:%d ", m_bUseQTL);
    2684 #if !MTK_I0099_VPS_EX2
    2685   printf("PC:%d " , m_bUsePC );
    2686 #endif
    2687 #endif
    26882607#endif
    26892608#if H_3D_IV_MERGE
     
    27122631#if H_3D_DIM
    27132632  printf("DMM:%d ", m_useDMM );
    2714 #if SEPARATE_FLAG_I0085
    27152633  printf("IVP:%d ", m_useIVP );
    2716 #endif
    27172634  printf("SDC:%d ", m_useSDC );
    27182635  printf("DLT:%d ", m_useDLT );
    27192636#endif
    2720 #if MTK_SINGLE_DEPTH_MODE_I0095
     2637#if H_3D
    27212638  printf("SingleDepthMode:%d ",    m_useSingleDepthMode);
    27222639#endif
  • trunk/source/App/TAppEncoder/TAppEncCfg.h

    r1066 r1084  
    4343#include "TLibEncoder/TEncCfg.h"
    4444#include <sstream>
     45#include <vector>
    4546#if H_3D
    4647#include "TAppCommon/TAppComCamPara.h"
     
    7879  std::vector<Int>       m_viewId;                            ///< view id
    7980  std::vector<Int>       m_viewOrderIndex;                    ///< view order index 
    80 #if H_MV_HLS10_AUX
    8181  std::vector<Int>       m_auxId;                             ///< auxiliary id
    82 #endif
    8382#if H_3D
    8483  std::vector<Int>       m_depthFlag;                         ///< depth flag
    8584#endif
    86 #if H_MV_HLS10_GEN_FIX
    8785  std::vector<Int>       m_targetEncLayerIdList;              ///< layer Ids in Nuh to be encoded
    88 #endif
    8986  std::vector<Int>       m_layerIdInNuh;                      ///< layer Id in Nuh for each layer
    9087  Bool                   m_splittingFlag;                     ///< Splitting Flag
     
    9592  Int                    m_vpsNumLayerSets;                   ///< Number of layer sets
    9693  std::vector< std::vector<Int> > m_layerIdsInSets;           ///< LayerIds in vps of layer set
    97 #if H_MV_HLS10_ADD_LAYERSETS
    9894  Int                    m_numAddLayerSets;                    ///< Number of additional layer sets
    9995  std::vector< std::vector<Int> > m_highestLayerIdxPlus1;      ///< HighestLayerIdxPlus1 for each additional layer set and each independent layer (value with index 0 will be ignored)
    100 #endif
    10196  Int                    m_defaultOutputLayerIdc;             ///< Specifies output layers of layer sets, 0: output all layers, 1: output highest layers, 2: specified by LayerIdsInDefOuputLayerSet
    10297  std::vector<Int>       m_outputLayerSetIdx;                 ///< Indices of layer sets used as additional output layer sets 
    10398  std::vector< std::vector<Int> > m_layerIdsInAddOutputLayerSet; ///< LayerIds in vps of additional output layers
    10499  std::vector< std::vector<Int> > m_layerIdsInDefOutputLayerSet; ///< Indices in vps of output layers in layer sets
    105 #if H_MV_HLS10_ADD_LAYERSETS
    106100  std::vector< std::vector< Int > > m_profileTierLevelIdx;      ///< Indices of of profile, per layer in layer set
    107 #else
    108   std::vector<Int>       m_profileLevelTierIdx;               ///< Indices of of profile level tier
    109 #endif
    110101  std::vector<Bool>      m_altOutputLayerFlag;                ///< Alt output layer flag
    111102
     
    138129  std::vector< std::vector<Bool > > m_ctuBasedOffsetEnabledFlag;
    139130  std::vector< std::vector<Int  > > m_minHorizontalCtuOffsetPlus1;
    140 #if H_MV_HLS10_VPS_VUI
    141131  Bool m_singleLayerForNonIrapFlag;
    142132  Bool m_higherLayerIrapSkipFlag;
    143 #endif // H_MV_HLS10_VPS_VUI
    144133
    145134
     
    151140#endif
    152141#endif
    153 #if MTK_I0099_VPS_EX2
     142#if H_3D_QTLPC
    154143  Bool                   m_bLimQtPredFlag;
    155144#endif
     
    184173  bool      m_isTopFieldFirst;
    185174 
    186   Int       m_conformanceMode;
    187   Int       m_confLeft;
    188   Int       m_confRight;
    189   Int       m_confTop;
    190   Int       m_confBottom;
     175  Int       m_conformanceWindowMode;
     176  Int       m_confWinLeft;
     177  Int       m_confWinRight;
     178  Int       m_confWinTop;
     179  Int       m_confWinBottom;
    191180  Int       m_framesToBeEncoded;                              ///< number of encoded frames
    192181  Int       m_aiPad[2];                                       ///< number of padded pixels for width and height
    193182 
    194183  // profile/level
    195 #if H_MV_HLS10_PTL
    196184#if H_MV
    197185  std::vector< Profile::Name > m_profile;
     
    203191  Level::Tier   m_levelTier;
    204192  Level::Name   m_level;
    205 #endif
    206193#endif
    207194
     
    338325  Bool      m_bLFCrossSliceBoundaryFlag;  ///< 1: filter across slice boundaries 0: do not filter across slice boundaries
    339326  Bool      m_bLFCrossTileBoundaryFlag;   ///< 1: filter across tile boundaries  0: do not filter across tile boundaries
    340   Int       m_iUniformSpacingIdr;
    341   Int       m_iNumColumnsMinus1;
    342   Char*     m_pchColumnWidth;
    343   Int       m_iNumRowsMinus1;
    344   Char*     m_pchRowHeight;
    345   UInt*     m_pColumnWidth;
    346   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;
    347332  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.
    348333  Int       m_iWaveFrontSubstreams; //< If iWaveFrontSynchro, this is the number of substreams per frame (dependent tiles) or per tile (independent tiles).
     
    468453  std::vector<Int>  m_sbPropAvgBitRate;
    469454  std::vector<Int>  m_sbPropMaxBitRate;
    470 #if H_MV_HLS10_GEN_FIX
    471455  Bool              m_outputVpsInfo;
    472 #endif
    473456#endif
    474457#if H_3D
     
    504487#if H_3D_DIM
    505488  Bool      m_useDMM;                                        ///< flag for using DMM
    506 #if SEPARATE_FLAG_I0085
    507489  Bool      m_useIVP;
    508 #endif
    509490  Bool      m_useSDC;                                        ///< flag for using SDC
    510491  Bool      m_useDLT;                                        ///< flag for using DLT
    511492#endif
    512 #if MTK_SINGLE_DEPTH_MODE_I0095
     493#if H_3D_SINGLE_DEPTH
    513494  Bool     m_useSingleDepthMode;                          ///< flag for using single depth mode
    514495#endif
    515 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    516496#if H_3D_QTLPC
    517497  Bool      m_bUseQTL;                                        ///< flag for using depth QuadTree Limitation
    518 #if !MTK_I0099_VPS_EX2
    519   Bool      m_bUsePC;                                         ///< flag for using Predictive Coding with QTL
    520 #endif
    521 #endif
    522498#endif
    523499#if H_3D_INTER_SDC
     
    538514#if H_MV
    539515
    540 #if H_MV_HLS10_PTL
    541516  template<typename T>
    542517  Void xReadStrToEnum(string in, std::vector<T> &val)
     
    559534    delete[] cString;
    560535  }
    561 #endif
    562536
    563537
  • trunk/source/App/TAppEncoder/TAppEncTop.cpp

    r1066 r1084  
    144144  xDeriveDltArray          ( vps, dlt );
    145145#endif
    146 #if H_MV_HLS10_GEN_FIX
    147146  if ( m_targetEncLayerIdList.size() == 0 )
    148147  {
     
    166165    }
    167166  }
    168 #endif
    169 
    170 #if H_MV_HLS10_ADD_LAYERSETS
     167
    171168  if ( m_outputVpsInfo )
    172169  { 
    173 #if H_MV_HLS10_AUX
    174170    vps.printScalabilityId();
    175 #endif
    176171    vps.printLayerDependencies();
    177172    vps.printLayerSets();
    178173    vps.printPTL();
    179174  }
    180 #endif
    181175
    182176  for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++)
     
    233227#if H_3D_DIM
    234228    m_cTEncTop.setUseDMM                       ( isDepth ? m_useDMM               : false );
    235 #if SEPARATE_FLAG_I0085
    236 #if LGE_FCO_I0116
     229#if H_3D_FCO
    237230    m_cTEncTop.setUseIVP                       ( vps.getViewIndex( layerId ) == 0 && isDepth ? m_useIVP               : false );
    238231#else
    239232    m_cTEncTop.setUseIVP                       ( isDepth ? m_useIVP               : false );
    240 #endif
    241233#endif
    242234    m_cTEncTop.setUseSDC                       ( isDepth ? m_useSDC               : false );
    243235    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
    244236#endif
    245 #if MTK_SINGLE_DEPTH_MODE_I0095
     237#if H_3D_SINGLE_DEPTH
    246238    m_cTEncTop.setUseSingleDepthMode           ( isDepth ? m_useSingleDepthMode   : false );
    247239#endif
    248 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    249240#if H_3D_QTLPC
    250 #if LGE_FCO_I0116
    251     m_cTEncTop.setUseQTL                       ( vps.getViewIndex( layerId ) == 0 && isDepth ? m_bUseQTL               : false );
    252 #else
    253241    m_cTEncTop.setUseQTL                       ( isDepth ? m_bUseQTL               : false );
    254 #endif
    255 #if !MTK_I0099_VPS_EX2   
    256     m_cTEncTop.setUsePC                        ( isDepth ? m_bUsePC                : false );
    257 #endif
    258 #endif
    259242#endif
    260243    //====== Depth Inter SDC =========
     
    266249#endif
    267250#if H_3D_IV_MERGE
    268 #if LGE_FCO_I0116
     251#if H_3D_FCO
    269252    m_cTEncTop.setUseMPI                       ( vps.getViewIndex( layerId ) == 0 && isDepth ? m_bMPIFlag    : false );
    270253#else
     
    298281  m_cTEncTop.setSourceWidth                  ( m_iSourceWidth );
    299282  m_cTEncTop.setSourceHeight                 ( m_iSourceHeight );
    300   m_cTEncTop.setConformanceWindow            ( m_confLeft, m_confRight, m_confTop, m_confBottom );
     283  m_cTEncTop.setConformanceWindow            ( m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom );
    301284  m_cTEncTop.setFramesToBeEncoded            ( m_framesToBeEncoded );
    302285 
     
    506489  }
    507490#endif
    508   m_cTEncTop.setUniformSpacingIdr          ( m_iUniformSpacingIdr );
    509   m_cTEncTop.setNumColumnsMinus1           ( m_iNumColumnsMinus1 );
    510   m_cTEncTop.setNumRowsMinus1              ( m_iNumRowsMinus1 );
    511   if(m_iUniformSpacingIdr==0)
    512   {
    513     m_cTEncTop.setColumnWidth              ( m_pColumnWidth );
    514     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 );
    515498  }
    516499  m_cTEncTop.xCheckGSParameters();
    517   Int uiTilesCount          = (m_iNumRowsMinus1+1) * (m_iNumColumnsMinus1+1);
     500  Int uiTilesCount          = (m_numTileRowsMinus1+1) * (m_numTileColumnsMinus1+1);
    518501  if(uiTilesCount == 1)
    519502  {
     
    620603  m_cTEncTop.setActiveParameterSetsSEIEnabled ( m_activeParameterSetsSEIEnabled );
    621604  m_cTEncTop.setVuiParametersPresentFlag( m_vuiParametersPresentFlag );
     605  m_cTEncTop.setAspectRatioInfoPresentFlag( m_aspectRatioInfoPresentFlag);
    622606  m_cTEncTop.setAspectRatioIdc( m_aspectRatioIdc );
    623607  m_cTEncTop.setSarWidth( m_sarWidth );
     
    840824 
    841825#if H_MV
    842 #if H_MV_HLS10_GEN_FIX
    843826  while ( (m_targetEncLayerIdList.size() != 0 ) && !allEos )
    844 #else
    845   while ( !allEos )
    846 #endif
    847827  {
    848828    for(Int layer=0; layer < m_numberOfLayers; layer++ )
    849829    {
    850 #if H_MV_HLS10_GEN_FIX
    851830      if (!xLayerIdInTargetEncLayerIdList( m_vps->getLayerIdInNuh( layer ) ))
    852831      {
    853832        continue;
    854833      }
    855 #endif
    856834
    857835      Int frmCnt = 0;
     
    894872      for(Int layer=0; layer < m_numberOfLayers; layer++ )
    895873      {
    896 #if H_MV_HLS10_GEN_FIX
    897874        if (!xLayerIdInTargetEncLayerIdList( m_vps->getLayerIdInNuh( layer ) ))
    898875        {
    899876          continue;
    900877        }
    901 #endif
    902878
    903879#if H_3D_VSO       
     
    927903  for(Int layer=0; layer < m_numberOfLayers; layer++ )
    928904  {
    929 #if H_MV_HLS10_GEN_FIX
    930905    if (!xLayerIdInTargetEncLayerIdList( m_vps->getLayerIdInNuh( layer ) ))
    931906    {
    932907      continue;
    933908    }
    934 #endif
    935909    m_acTEncTopList[layer]->printSummary( m_acTEncTopList[layer]->getNumAllPicCoded(), m_isField );
    936910  }
     
    11141088      if (m_pchReconFileList[layerId])
    11151089      {
     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
    11161093        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confLeft, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst );
     1094#endif
    11171095      }
    11181096    }
     
    11311109      if (m_pchReconFile)
    11321110      {
    1133         m_cTVideoIOYuvReconFile.write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confLeft, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst );
     1111        m_cTVideoIOYuvReconFile.write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom, m_isTopFieldFirst );
    11341112      }
    11351113
     
    11671145      if (m_pchReconFileList[layerId])
    11681146      {
     1147#if H_MV_ALIGN_HM_15
     1148        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom );
     1149#else
    11691150        m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confLeft, m_confRight, m_confTop, m_confBottom );
     1151#endif
    11701152      }   
    11711153    }
     
    11831165      if (m_pchReconFile)
    11841166      {
    1185         m_cTVideoIOYuvReconFile.write( pcPicYuvRec, m_confLeft, m_confRight, m_confTop, m_confBottom );
     1167        m_cTVideoIOYuvReconFile.write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom );
    11861168      }
    11871169
     
    13961378  // Max sub layers, + presence flag
    13971379  Bool subLayersMaxMinus1PresentFlag = false;
    1398 #if !H_MV_FIX_SUB_LAYERS_MAX_MINUS1
    1399   Int  subLayersMaxMinus1 = -1;
    1400 #endif
    14011380  for (Int curLayerIdInVps = 0; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++ )
    14021381  {   
     
    14091388
    14101389    vps.setSubLayersVpsMaxMinus1( curLayerIdInVps, curSubLayersMaxMinus1 );
    1411 #if !H_MV_FIX_SUB_LAYERS_MAX_MINUS1
    1412     if ( subLayersMaxMinus1 == -1 )
    1413     {
    1414       subLayersMaxMinus1 = curSubLayersMaxMinus1;
    1415     }
    1416     else
    1417     {
    1418       subLayersMaxMinus1PresentFlag = subLayersMaxMinus1PresentFlag || ( curSubLayersMaxMinus1 != subLayersMaxMinus1 );
    1419     }
    1420 #else
    14211390    subLayersMaxMinus1PresentFlag = subLayersMaxMinus1PresentFlag || ( curSubLayersMaxMinus1 != vps.getMaxSubLayersMinus1() );
    1422 #endif
    14231391  }
    14241392
     
    14331401    {
    14341402      Int maxTid = -1;
    1435 #if H_MV_FIX_LOOP_GOPSIZE
    14361403      for( Int i = 0; i < ( getGOPSize() + 1); i++ )
    14371404      {       
    14381405        GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
    14391406        GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
    1440 #else
    1441       for( Int i = 0; i < getGOPSize(); i++ )
    1442       {       
    1443         GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][i];
    1444         GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][i];     
    1445 #endif
    14461407        for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
    14471408        {       
    14481409          if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps )
    14491410          {
    1450 #if H_MV_FIX_LOOP_GOPSIZE
    14511411            Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
    14521412            Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
    14531413            maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
    1454 #else
    1455             maxTid = std::max( maxTid, geRef.m_temporalId );
    1456 #endif
    14571414          }
    14581415        }
     
    15801537Void TAppEncTop::xSetProfileTierLevel( TComVPS& vps )
    15811538{
    1582 #if H_MV_HLS10_PTL
    15831539
    15841540  // SET PTL
     
    15981554      m_nonPackedConstraintFlag, m_frameOnlyConstraintFlag,  m_inblFlag[ptlIdx] );     
    15991555  } 
    1600 #else
    1601   const Int vpsNumProfileTierLevelMinus1 = 0; //TBD
    1602   vps.setVpsNumProfileTierLevelMinus1( vpsNumProfileTierLevelMinus1 );
    1603  
    1604   for (Int i = 0; i <= vps.getVpsNumProfileTierLevelMinus1(); i++ )
    1605   {
    1606     vps.setVpsProfilePresentFlag( i, true );
    1607   }
    1608 #endif
    1609 }
    1610 
    1611 #if H_MV_HLS10_PTL
     1556}
     1557
    16121558Void TAppEncTop::xSetProfileTierLevel(TComVPS& vps, Int profileTierLevelIdx, Int subLayer, Profile::Name profile, Level::Name level, Level::Tier tier, Bool progressiveSourceFlag, Bool interlacedSourceFlag, Bool nonPackedConstraintFlag, Bool frameOnlyConstraintFlag, Bool inbldFlag)
    16131559{
     
    16311577  ptl->setLevelIdc  ( level   );
    16321578  ptl->setProfileCompatibilityFlag( profile, true );
    1633 #if H_MV_HLS10_PTL_INBL_FIX
    16341579  ptl->setInbldFlag( inbldFlag );
    1635 #endif
    16361580
    16371581  switch ( profile )
     
    16591603  }
    16601604}
    1661 #endif
    16621605
    16631606Void TAppEncTop::xSetRepFormat( TComVPS& vps )
     
    16771620  //repFormat->setSeparateColourPlaneVpsFlag( );
    16781621
    1679 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    16801622  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
    16811629  repFormat->setConfWinVpsLeftOffset    ( m_confLeft   / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );
    16821630  repFormat->setConfWinVpsRightOffset   ( m_confRight  / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() )  );
     
    16841632  repFormat->setConfWinVpsBottomOffset  ( m_confBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );
    16851633#endif
    1686 
    16871634  assert( vps.getRepFormat( 0 ) == NULL );
    16881635  vps.setRepFormat( 0 , repFormat );
     
    17001647  { 
    17011648    Int currLsIdx = vps.olsIdxToLsIdx( i );
    1702 #if !H_MV_HLS10_ADD_LAYERSETS
    1703     std::vector<Int> targetDecLayerIdList = vps.getTargetDecLayerIdList( i );
    1704 #endif
    17051649    Bool subLayerFlagInfoPresentFlag = false;
    17061650
     
    17081652    {   
    17091653      Bool subLayerDpbInfoPresentFlag = false;
    1710 #if !H_MV_HLS10_ADD_LAYERSETS
    1711       assert( vps.getNumLayersInIdList( currLsIdx ) == targetDecLayerIdList.size() );
    1712 #endif
    17131654      for( Int k = 0; k < vps.getNumLayersInIdList( currLsIdx ); k++ )   
    17141655      {
    1715 #if H_MV_HLS10_DBP_SIZE
    17161656        Int layerIdInVps = vps.getLayerIdInVps( vps.getLayerSetLayerIdList( currLsIdx, k ) );
    17171657        if ( vps.getNecessaryLayerFlag( i,k ) && ( vps.getVpsBaseLayerInternalFlag() || vps.getLayerSetLayerIdList( currLsIdx, k ) != 0 ) )
     
    17301670          }
    17311671        }
    1732 #else
    1733         Int layerIdInVps = vps.getLayerIdInVps( targetDecLayerIdList[k] );           
    1734         dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, m_maxDecPicBufferingMvc[ layerIdInVps ][ j ] - 1 );
    1735 
    1736         if ( j > 0 )
    1737         {
    1738           subLayerDpbInfoPresentFlag = subLayerDpbInfoPresentFlag || ( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ) != dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j - 1 ) );
    1739         }
    1740 #endif
    17411672      }       
    17421673
    17431674      Int maxNumReorderPics = MIN_INT;
    1744 #if H_MV_HLS10_DBP_SIZE
    17451675      for ( Int idx = 0; idx < vps.getNumLayersInIdList( currLsIdx ); idx++ )
    17461676      {
     
    17511681        }
    17521682      }
    1753 #else
    1754       for ( Int idx = 0; idx < targetDecLayerIdList.size(); idx++ )
    1755       {
    1756         Int layerIdInVps = vps.getLayerIdInVps( targetDecLayerIdList[ idx ] );
    1757         maxNumReorderPics = std::max( maxNumReorderPics, m_numReorderPicsMvc[ layerIdInVps ][ j ] );
    1758       }
    1759 #endif
    17601683      assert( maxNumReorderPics != MIN_INT );
    17611684
     
    18041727  // Additional output layer sets + profileLevelTierIdx
    18051728  vps.setDefaultOutputLayerIdc      ( m_defaultOutputLayerIdc );   
    1806 #if H_MV_HLS10_ADD_LAYERSETS
    18071729  if( vps.getNumIndependentLayers() == 0 && m_numAddLayerSets > 0  )
    18081730  {
     
    18381760    }       
    18391761  } 
    1840 #else
    1841   vps.setNumAddLayerSets            ( 0                             ); 
    1842 #endif
    18431762  vps.setNumAddOlss                 ( numAddOuputLayerSets          );
    18441763  vps.initTargetLayerIdLists();
    18451764
    1846 #if H_MV_HLS10_ADD_LAYERSETS
    18471765  for (Int olsIdx = 0; olsIdx < vps.getNumLayerSets() + numAddOuputLayerSets; olsIdx++)
    18481766  {
    18491767    Int addOutLsIdx = olsIdx - vps.getNumLayerSets();     
    1850 #else
    1851   for (Int olsIdx = 0; olsIdx < m_vpsNumLayerSets + numAddOuputLayerSets; olsIdx++)
    1852   {
    1853     Int addOutLsIdx = olsIdx - m_vpsNumLayerSets;     
    1854 #endif   
    18551768    vps.setLayerSetIdxForOlsMinus1( olsIdx, ( ( addOutLsIdx < 0 ) ?  olsIdx  : m_outputLayerSetIdx[ addOutLsIdx ] ) - 1 );
    18561769
    1857 #if H_MV_HLS10_ADD_LAYERSETS
    18581770    Int lsIdx = vps.olsIdxToLsIdx( olsIdx );
    1859 #else
    1860     std::vector<Int>& layerIdList    = m_layerIdsInSets[ vps.olsIdxToLsIdx( olsIdx ) ];
    1861 #endif
    18621771    if (vps.getDefaultOutputLayerIdc() == 2 || addOutLsIdx >= 0 )
    18631772    {
    1864 #if H_MV_HLS10_ADD_LAYERSETS
    18651773      for ( Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++)
    1866 #else
    1867       for ( Int i = 0; i < layerIdList.size(); i++)
    1868 #endif
    18691774      {
    18701775        vps.setOutputLayerFlag( olsIdx, i, ( olsIdx == 0 && i == 0 ) ? vps.inferOutputLayerFlag(olsIdx, i ) : false ); // This is a software only fix for a bug in the spec. In spec outputLayerFlag neither present nor inferred for this case !
     
    18761781      for (Int j = 0; j < outLayerIdList.size(); j++)
    18771782      {   
    1878 #if H_MV_HLS10_ADD_LAYERSETS
    18791783        for ( Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++)
    18801784        {
    18811785          if ( vps.getLayerSetLayerIdList( lsIdx, i ) == outLayerIdList[ j ] )
    1882 #else
    1883         for (Int i = 0; i < layerIdList.size(); i++ )
    1884         {
    1885           if ( layerIdList[ i ] == outLayerIdList[ j ] )
    1886 #endif
    18871786          {
    18881787            vps.setOutputLayerFlag( olsIdx, i, true );       
     
    18911790          }
    18921791        }
    1893 #if H_MV_HLS10_ADD_LAYERSETS
    18941792        if ( !outputLayerInLayerSetFlag )
    18951793        {
     
    18971795          exit(EXIT_FAILURE);
    18981796        }
    1899 #else
    1900         assert( outputLayerInLayerSetFlag ); // The output layer is not in the layer set.
    1901 #endif
    19021797      }
    19031798    }
    19041799    else
    19051800    {
    1906 #if H_MV_HLS10_ADD_LAYERSETS
    19071801      for ( Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++)
    1908 #else
    1909       for ( Int i = 0; i < layerIdList.size(); i++)
    1910 #endif
    19111802      {
    19121803        vps.setOutputLayerFlag( olsIdx, i, vps.inferOutputLayerFlag( olsIdx, i ) );       
     
    19141805    }
    19151806
    1916 #if H_MV_HLS10_NESSECARY_LAYER
    19171807    vps.deriveNecessaryLayerFlags( olsIdx );
    1918 #endif
    19191808    vps.deriveTargetLayerIdList(  olsIdx );
    19201809
    1921 #if H_MV_HLS10_PTL
    19221810    // SET profile_tier_level_index.
    19231811    if ( olsIdx == 0 )
     
    19361824        {
    19371825          vps.setProfileTierLevelIdx(olsIdx, j, m_profileTierLevelIdx[olsIdx][j] );
    1938 #if H_MV_HLS10_PTL_FIX
    19391826          if( !vps.getNecessaryLayerFlag(olsIdx,j) && m_profileTierLevelIdx[ olsIdx ][ j ] != -1 )
    19401827          {
     
    19431830        }
    19441831        else if ( vps.getNecessaryLayerFlag(olsIdx,j) )
    1945 #else
    1946         }
    1947         else
    1948 #endif
    19491832        {
    19501833          // setting default values
     
    19621845      }
    19631846    }
    1964 #else
    1965     if ( olsIdx > 0 )
    1966     {
    1967       vps.setProfileLevelTierIdx( olsIdx, m_profileLevelTierIdx[ olsIdx ] );
    1968     }
    1969 #endif
    19701847   
    19711848    if ( vps.getNumOutputLayersInOutputLayerSet( olsIdx ) == 1 &&
     
    20051882    if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    20061883    {
    2007 #if H_MV_HLS10_VPS_VUI
    20081884      for( Int i = 0; i  <  vps.getNumLayerSets(); i++ )
    2009 #else
    2010       for( Int i = 0; i  <=  vps.getVpsNumLayerSetsMinus1(); i++ )
    2011 #endif
    20121885      {
    20131886        for( Int j = 0; j  <=  vps.getMaxTLayers(); j++ )
     
    20581931        for( Int j = 0; j < vps.getNumDirectRefLayers( vps.getLayerIdInNuh( i ) ) ; j++ )
    20591932        { 
    2060 #if H_MV_HLS10_REF_PRED_LAYERS
    20611933          Int layerIdx = vps.getLayerIdInVps( vps.getIdDirectRefLayer(vps.getLayerIdInNuh( i ) , j  )); 
    2062 #else
    2063           Int layerIdx = vps.getLayerIdInVps( vps.getRefLayerId(vps.getLayerIdInNuh( i ) , j  )); 
    2064 #endif
    20651934          if( pcVPSVUI->getTilesInUseFlag( i )  &&  pcVPSVUI->getTilesInUseFlag( layerIdx ) ) 
    20661935          {
     
    20811950    }
    20821951
    2083 #if H_MV_HLS10_VPS_VUI
    20841952  pcVPSVUI->setSingleLayerForNonIrapFlag( m_singleLayerForNonIrapFlag );
    20851953  pcVPSVUI->setHigherLayerIrapSkipFlag( m_higherLayerIrapSkipFlag );
    2086 #endif
    20871954
    20881955    pcVPSVUI->setIlpRestrictedRefLayersFlag( m_ilpRestrictedRefLayersFlag );
     
    21412008  }
    21422009}
    2143 #if H_MV_HLS10_GEN_FIX
    21442010Bool TAppEncTop::xLayerIdInTargetEncLayerIdList(Int nuhLayerId)
    21452011{
    21462012  return  ( std::find(m_targetEncLayerIdList.begin(), m_targetEncLayerIdList.end(), nuhLayerId) != m_targetEncLayerIdList.end()) ;
    21472013}
    2148 #endif
    21492014
    21502015
     
    21592024    Bool isDepth      = ( vps.getDepthId( layer ) == 1 ) ;
    21602025    Bool isLayerZero  = ( layer == 0 );
    2161 #if LGE_FCO_I0116
     2026#if H_3D_FCO
    21622027    Bool isDepthFirst = (layer > 1 ? true : false);
    21632028#endif
     
    21712036    {
    21722037      vps.setSubPULog2Size         ( layer, (layer != 1) ? 6: 0 );
    2173 #if MTK_I0099_VPS_EX2
    21742038      vps.setSubPUMPILog2Size      ( layer, (!isLayerZero) ? m_iSubPUMPILog2Size: 0 );
    2175 #endif
    21762039    }
    21772040    else
     
    21832046#if H_3D_DIM
    21842047    vps.setVpsDepthModesFlag( layer, isDepth && !isLayerZero && (m_useDMM || m_useSDC || m_useDLT ) );
    2185 #if SEPARATE_FLAG_I0085
    2186 #if LGE_FCO_I0116
     2048#if H_3D_FCO
    21872049    vps.setIVPFlag          ( layer, isDepth && !isLayerZero && m_useIVP && !isDepthFirst );
    21882050#else
    21892051    vps.setIVPFlag          ( layer, isDepth && !isLayerZero && m_useIVP );
    2190 #endif
    21912052#endif
    21922053#endif
     
    21962057    {
    21972058      vps.setIvMvPredFlag    (layer, false);
    2198 #if SEC_HLS_CLEANUP_I0100
    21992059      vps.setIvMvScalingFlag (layer, false);
    2200 #endif
    22012060    }
    22022061    else
     
    22102069        vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] );
    22112070      }
    2212 #if SEC_HLS_CLEANUP_I0100
    22132071      vps.setIvMvScalingFlag (layer, m_ivMvScalingFlag);
    2214 #endif
    2215     }
    2216 #endif
    2217 #if MTK_I0099_VPS_EX2
    2218 #if LGE_FCO_I0116
     2072    }
     2073#endif
     2074#if H_3D_QTLPC
     2075#if H_3D_FCO
    22192076    vps.setLimQtPredFlag         ( layer, isDepth && m_bLimQtPredFlag && !isDepthFirst );
    22202077#else
     
    22352092#endif
    22362093#if H_3D_IV_MERGE
    2237 #if LGE_FCO_I0116
     2094#if H_3D_FCO
    22382095    vps.setMPIFlag( layer, !isLayerZero && isDepth && m_bMPIFlag && !isDepthFirst );
    22392096#else
     
    22422099#endif
    22432100  } 
    2244 #if !MTK_I0099_VPS_EX2
    2245 #if H_3D_SPIVMP
    2246   vps.setSubPUMPILog2Size( m_iSubPUMPILog2Size );
    2247 #endif
    2248 #endif
    2249 #if H_3D
    2250 #if !SEC_HLS_CLEANUP_I0100
    2251   vps.setIvMvScalingFlag( m_ivMvScalingFlag );   
    2252 #endif
    2253 #endif
    22542101}
    22552102
     
    22732120      xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod[layer], 24), &vps, &dlt);
    22742121      bDltPresentFlag = bDltPresentFlag || dlt.getUseDLTFlag(layer);
    2275 #if H_3D_DELTA_DLT
    22762122      dlt.setInterViewDltPredEnableFlag(layer, (dlt.getUseDLTFlag(layer) && (layer>1)));
    2277 #endif
    22782123    }
    22792124  }
  • trunk/source/App/TAppEncoder/TAppEncTop.h

    r1066 r1084  
    133133  Void xSetProfileTierLevel       ( TComVPS& vps );
    134134
    135 #if H_MV_HLS10_PTL
    136135  Void xSetProfileTierLevel( TComVPS& vps, Int profileTierLevelIdx, Int subLayer,                             
    137136                             Profile::Name profile, Level::Name level, Level::Tier tier,
     
    139138                             Bool nonPackedConstraintFlag, Bool frameOnlyConstraintFlag,
    140139                             Bool inbldFlag );
    141 #endif
    142140  Void xSetRepFormat              ( TComVPS& vps );
    143141  Void xSetDpbSize                ( TComVPS& vps );
     
    145143  GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc );
    146144  Int  xGetMax( std::vector<Int>& vec);
    147 #if H_MV_HLS10_GEN_FIX
    148145  Bool xLayerIdInTargetEncLayerIdList( Int nuhLayerId );
    149 #endif
    150146#endif
    151147#if H_3D
  • trunk/source/Lib/TAppCommon/program_options_lite.h

    r1039 r1084  
    378378        std::string cDescBuffer;
    379379
    380 #if !FIX_TICKET_62
    381         cNameBuffer       .resize( name.size() + 10 );
    382         cDescBuffer.resize( desc.size() + 10 );
    383 #endif
    384 
    385380        storage.resize(uiMaxNum);
    386381        for ( unsigned int uiK = 0; uiK < uiMaxNum; uiK++ )
    387382        {
    388 
    389 #if FIX_TICKET_62
    390383          cNameBuffer       .resize( name.size() + 10 );
    391384          cDescBuffer.resize( desc.size() + 10 );
    392 #endif
    393385
    394386          Bool duplicate = (uiK != 0);
  • trunk/source/Lib/TLibCommon/CommonDef.h

    r1067 r1084  
    6161#if H_MV
    6262#define NV_VERSION        "12.1"                ///< Current software version
    63 #define HM_VERSION        "14.0"                ///<
     63#define HM_VERSION        "15.0"                ///<
    6464#else
    6565#define NV_VERSION        "14.0"                 ///< Current software version
  • trunk/source/Lib/TLibCommon/ContextTables.h

    r1039 r1084  
    5151#define NUM_SPLIT_FLAG_CTX            3       ///< number of context models for split flag
    5252#define NUM_SKIP_FLAG_CTX             3       ///< number of context models for skip flag
    53 #if MTK_SINGLE_DEPTH_MODE_I0095
     53#if H_3D_SINGLE_DEPTH
    5454#define NUM_SINGLEDEPTH_FLAG_CTX                     1
    5555#define NUM_SINGLE_DEPTH_VALUE_DATA_CTX              1       
     
    153153  { CNU,  CNU,  CNU, },
    154154};
    155 #if MTK_SINGLE_DEPTH_MODE_I0095
     155#if H_3D_SINGLE_DEPTH
    156156static const UChar
    157157INIT_SINGLEDEPTH_FLAG[3][NUM_SINGLEDEPTH_FLAG_CTX] = 
     
    450450static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] =
    451451{
    452 #if SEC_DBBP_EXPLICIT_SIG_I0077
    453   { CNU },
    454   { CNU },
    455   { CNU },
    456 #else
    457   { 161 },
    458   { 161 },
    459   { 161 },
    460 #endif
    461 };
    462 #endif
    463 
    464 #endif
     452  { CNU },
     453  { CNU },
     454  { CNU },
     455};
     456#endif
     457
     458#endif
  • trunk/source/Lib/TLibCommon/SEI.h

    r964 r1084  
    161161  UInt m_bpSeqParameterSetId;
    162162  Bool m_rapCpbParamsPresentFlag;
    163   Bool m_cpbDelayOffset;
    164   Bool m_dpbDelayOffset;
     163  UInt m_cpbDelayOffset;
     164  UInt m_dpbDelayOffset;
    165165  UInt m_initialCpbRemovalDelay         [MAX_CPB_CNT][2];
    166166  UInt m_initialCpbRemovalDelayOffset   [MAX_CPB_CNT][2];
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r1066 r1084  
    6060 
    6161  m_skipFlag           = NULL;
    62 #if MTK_SINGLE_DEPTH_MODE_I0095
     62#if H_3D_SINGLE_DEPTH
    6363  m_singleDepthFlag     = NULL;
    6464  m_apSingleDepthValue  = NULL;
     
    185185
    186186    m_skipFlag           = new Bool[ uiNumPartition ];
    187 #if MTK_SINGLE_DEPTH_MODE_I0095
     187#if H_3D_SINGLE_DEPTH
    188188    m_singleDepthFlag     = new Bool[ uiNumPartition ];
    189189    m_apSingleDepthValue  = (Pel*)xMalloc(Pel, uiNumPartition);
     
    335335
    336336    if ( m_skipFlag           ) { delete[] m_skipFlag;          m_skipFlag          = NULL; }
    337 #if MTK_SINGLE_DEPTH_MODE_I0095
     337#if H_3D_SINGLE_DEPTH
    338338    if ( m_singleDepthFlag    ) { delete[] m_singleDepthFlag;   m_singleDepthFlag     = NULL; }
    339339    if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue);  m_apSingleDepthValue  = NULL; }
     
    503503    TComDataCU * pcFrom = pcPic->getCU(getAddr());
    504504    m_skipFlag[ui]   = pcFrom->getSkipFlag(ui);
    505 #if MTK_SINGLE_DEPTH_MODE_I0095
     505#if H_3D_SINGLE_DEPTH
    506506    m_singleDepthFlag[ui]    = pcFrom->getSingleDepthFlag(ui);
    507507    m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui);
     
    563563  {
    564564    memset( m_skipFlag          + firstElement, false,                    numElements * sizeof( *m_skipFlag ) );
    565 #if MTK_SINGLE_DEPTH_MODE_I0095
     565#if H_3D_SINGLE_DEPTH
    566566    memset( m_singleDepthFlag     + firstElement, false,                  numElements * sizeof( *m_singleDepthFlag ) );
    567567    memset( m_apSingleDepthValue  + firstElement,     0,                  numElements * sizeof( *m_apSingleDepthValue ) );
     
    754754      m_puhTransformSkip[2][ui] = 0;
    755755      m_skipFlag[ui]   = false;
    756 #if MTK_SINGLE_DEPTH_MODE_I0095
     756#if H_3D_SINGLE_DEPTH
    757757      m_singleDepthFlag[ui]     = false;
    758758      m_apSingleDepthValue[ui]  = 0;
     
    933933  {
    934934    m_skipFlag[ui]   = false;
    935 #if MTK_SINGLE_DEPTH_MODE_I0095
     935#if H_3D_SINGLE_DEPTH
    936936    m_singleDepthFlag[ui]   = false;
    937937    m_apSingleDepthValue[ui]= 0;
     
    958958      m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V);
    959959      m_skipFlag[ui]   = pcCU->getSkipFlag(uiPartOffset+ui);
    960 #if MTK_SINGLE_DEPTH_MODE_I0095
     960#if H_3D_SINGLE_DEPTH
    961961      m_singleDepthFlag[ui]    = pcCU->getSingleDepthFlag(uiPartOffset+ui);
    962962      m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui);
     
    11111111 
    11121112  m_skipFlag=pcCU->getSkipFlag()          + uiPart;
    1113 #if MTK_SINGLE_DEPTH_MODE_I0095
     1113#if H_3D_SINGLE_DEPTH
    11141114  m_singleDepthFlag     = pcCU->getSingleDepthFlag()   + uiPart;
    11151115  m_apSingleDepthValue  = pcCU->getSingleDepthValue()  + uiPart;
     
    12521252 
    12531253  m_skipFlag           = pcCU->getSkipFlag ()             + uiAbsPartIdx;
    1254 #if MTK_SINGLE_DEPTH_MODE_I0095
     1254#if H_3D_SINGLE_DEPTH
    12551255  m_singleDepthFlag     = pcCU->getSingleDepthFlag ()             + uiAbsPartIdx;
    12561256  m_apSingleDepthValue  = pcCU->getSingleDepthValue ()            + uiAbsPartIdx;
     
    13311331  Int sizeInChar  = sizeof( Char ) * uiNumPartition;
    13321332  memcpy( m_skipFlag   + uiOffset, pcCU->getSkipFlag(),       sizeof( *m_skipFlag )   * uiNumPartition );
    1333 #if MTK_SINGLE_DEPTH_MODE_I0095
     1333#if H_3D_SINGLE_DEPTH
    13341334  memcpy( m_singleDepthFlag     + uiOffset, pcCU->getSingleDepthFlag(),       sizeof( *m_singleDepthFlag )   * uiNumPartition );
    13351335  memcpy( m_apSingleDepthValue  + uiOffset, pcCU->getSingleDepthValue(),      sizeof( *m_apSingleDepthValue ) * uiNumPartition);
     
    14551455
    14561456  memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition );
    1457 #if MTK_SINGLE_DEPTH_MODE_I0095
     1457#if H_3D_SINGLE_DEPTH
    14581458  memcpy( rpcCU->getSingleDepthFlag()  + m_uiAbsIdxInLCU, m_singleDepthFlag,    sizeof( *m_singleDepthFlag ) * m_uiNumPartition );
    14591459  memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition);
     
    15741574  Int sizeInChar  = sizeof( Char ) * uiQNumPart;
    15751575  memcpy( rpcCU->getSkipFlag()       + uiPartOffset, m_skipFlag,   sizeof( *m_skipFlag )   * uiQNumPart );
    1576 #if MTK_SINGLE_DEPTH_MODE_I0095
     1576#if H_3D_SINGLE_DEPTH
    15771577  memcpy( rpcCU->getSingleDepthFlag()  + uiPartOffset, m_singleDepthFlag,    sizeof( *m_singleDepthFlag )   * uiQNumPart );
    15781578  memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart);
     
    24972497  memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) );
    24982498}
    2499 #if MTK_SINGLE_DEPTH_MODE_I0095
     2499#if H_3D_SINGLE_DEPTH
    25002500Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth )
    25012501{
     
    26772677  }
    26782678
    2679 #if HS_DMM_SIGNALLING_I0120
    26802679  if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) )
    2681 #else
    2682   if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) && !isDimDeltaDC( getLumaIntraDir( uiAbsPartIdx ) ) )
    2683 #endif
    26842680  {
    26852681    return true;
     
    26942690  // check prediction mode
    26952691  UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 
    2696 #if HS_DMM_SIGNALLING_I0120
    26972692  if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX  ) )
    2698 #else
    2699   if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) )
    2700 #endif
    27012693    return true;
    27022694 
     
    33733365  for(Int iLoop = 0; iLoop < 2; iLoop ++ )
    33743366  {
    3375 #if !SEC_SIMP_SHIFTED_DV_I0086
    3376     // IvDcShift (Derived from spatial Iv neighboring blocks)
    3377     if( iLoop == 1 )
    3378     {
    3379       Int iFirDispCand = -1;
    3380       TComMvField mvIvDcShift[2];
    3381       UChar dirIvDcShift;
    3382 
    3383       if (xGetPosFirstAvailDmvCand(MRG_IVSHIFT, iFirDispCand))
    3384       {
    3385         TComMv cMv;
    3386         cMv = m_mergCands[iFirDispCand].m_cMvField[0].getMv();
    3387         cMv.setHor(cMv.getHor()+4);
    3388         if(m_pcSlice->getVPS()->getViewSynthesisPredFlag(m_pcSlice->getLayerIdInVps()))
    3389         {
    3390           cMv.setVer(0);
    3391         }
    3392 #if !(NTT_BUG_FIX_TK54)
    3393         clipMv( cMv );
    3394 #endif
    3395 
    3396         dirIvDcShift = m_mergCands[iFirDispCand].m_uDir;
    3397         mvIvDcShift[0].setMvField(cMv, m_mergCands[iFirDispCand].m_cMvField[0].getRefIdx() );
    3398         mvIvDcShift[1].setMvField(m_mergCands[iFirDispCand].m_cMvField[1].getMv(), m_mergCands[iFirDispCand].m_cMvField[1].getRefIdx() );
    3399         m_mergCands[MRG_IVSHIFT].setCand(mvIvDcShift, dirIvDcShift, false, false);
    3400        
    3401         if( mrgCandIdx == iCount )
    3402         {
    3403           return true;
    3404         }
    3405         iCount++;
    3406         break;
    3407       }
    3408     }
    3409 #endif
    3410 
    34113367    /// iLoop = 0 --> IvMCShift
    34123368    /// iLoop = 1 --> IvDCShift  (Derived from IvDC)
     
    34553411}
    34563412
    3457 #if !SEC_SIMP_SHIFTED_DV_I0086
    3458 inline Bool TComDataCU::xGetPosFirstAvailDmvCand(Int iCount, Int& posFirstAvailDmvCand )
    3459 {
    3460   for ( Int currListPos = 0; currListPos < iCount; currListPos++ )
    3461   {
    3462     if ( !m_mergCands[currListPos].m_bAvailable || ( currListPos == MRG_IVMC ) || ( currListPos == MRG_IVDC ) || ( m_mergCands[currListPos].m_iVspFlag != 0 ))
    3463     {
    3464       continue;
    3465     }
    3466     else if((m_mergCands[currListPos].m_bAvailable) && (m_mergCands[currListPos].m_cMvField[0].getRefIdx() != -1 ) && (getSlice()->getViewIndex() != getSlice()->getRefPic(RefPicList(0), m_mergCands[currListPos].m_cMvField[0].getRefIdx())->getViewIndex()))
    3467     {
    3468       posFirstAvailDmvCand = currListPos;
    3469       return true;
    3470     }
    3471   }
    3472   return false; 
    3473 }
    3474 #endif
    3475                                      
    34763413#endif
    34773414
     
    39213858Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours
    39223859#endif
    3923 #if H_3D_VSP && !FIX_TICKET_79
    3924       , InheritedVSPDisInfo*  inheritedVSPDisInfo
    3925 #endif
    39263860#if H_3D_SPIVMP
    39273861      , TComMvField* pcMvFieldSP, UChar* puhInterDirSP
     
    39513885  //////////////////////////////////
    39523886  DisInfo cDisInfo = getDvInfo(uiAbsPartIdx);
    3953 #if !FIX_TICKET_79
    3954   for(Int i = 0; i < MRG_MAX_NUM_CANDS_MEM; i++)
    3955   {
    3956     inheritedVSPDisInfo[i].m_acDvInfo = cDisInfo;   // To prevent run-time error, this code must be executed always for merging process.
    3957   }
    3958 #endif
    39593887  m_cDefaultDisInfo = cDisInfo;
    39603888
     
    41774105    TComPic * pcTexPic = m_pcSlice->getTexturePic();
    41784106#if H_3D_FCO
    4179 #if LGE_FCO_I0116
     4107#if H_3D_FCO
    41804108    if (pcTexPic && pcTexPic->getReconMark())
    41814109#else
     
    42514179                TComMv cMv = cDefaultMvField.getMv() + cMvRounding;
    42524180                cMv >>= 2;
    4253 #if !FIX_TICKET_68
    4254                 clipMv( cMv );
    4255 #endif
    42564181                cMvFieldSaved[eCurrRefPicList].setMvField(cMv, iRefPicList) ;
    42574182                break;
     
    53255250#endif
    53265251
    5327 #if !FIX_TICKET_76
    5328 #if H_3D_VSP
    5329 inline Void TComDataCU::xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount, InheritedVSPDisInfo*  inheritedVSPDisInfo)
    5330 {
    5331   inheritedVSPDisInfo[iCount].m_acDvInfo.m_acNBDV   = pcCURef->getDvInfo(uiAbsPartIdx).m_acNBDV;
    5332   inheritedVSPDisInfo[iCount].m_acDvInfo.m_aVIdxCan = pcCURef->getDvInfo(uiAbsPartIdx).m_aVIdxCan;
    5333 }
    5334 #endif
    5335 #endif
    53365252/** Check whether the current PU and a spatial neighboring PU are in a same ME region.
    53375253 * \param xN, xN   location of the upper-left corner pixel of a neighboring PU
     
    59765892    Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();
    59775893    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    5978 #if SEC_HLS_CLEANUP_I0100
     5894
    59795895    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) )
    5980 #else
    5981     if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() )
    5982 #endif
    59835896    {
    59845897      rcMv = cColMv.scaleMv( iScale );
     
    61646077  TComMv cMv;
    61656078#if MTK_I0093
    6166 #if H_3D_FIX_64BIT_SHIFT
    61676079  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
    6168 #else
    6169   Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[  1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];
    6170 #endif
    61716080#else
    61726081  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ 128 ];
     
    61816090#endif
    61826091
    6183 #if MTK_SINGLE_DEPTH_MODE_I0095
     6092#if H_3D_SINGLE_DEPTH
    61846093Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index)
    61856094{
     
    67956704  if( getSlice()->getIsDepth() )
    67966705  {
    6797 #if MTK_I0099_VPS_EX2
    67986706    iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId());
    6799 #else
    6800     iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size();
    6801 #endif
    68026707  }
    68036708
  • trunk/source/Lib/TLibCommon/TComDataCU.h

    r1039 r1084  
    110110  // -------------------------------------------------------------------------------------------------------------------
    111111  Bool*         m_skipFlag;           ///< array of skip flags
    112 #if MTK_SINGLE_DEPTH_MODE_I0095
     112#if H_3D_SINGLE_DEPTH
    113113  Bool*         m_singleDepthFlag;           ///< array of single depth flags
    114114  Pel*          m_apSingleDepthValue;
     
    250250#if H_3D_IV_MERGE
    251251  Bool          xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int*   ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx );
    252 #if! SEC_SIMP_SHIFTED_DV_I0086
    253   Bool          xGetPosFirstAvailDmvCand( Int iCount, Int& iFirDispCand );
    254 #endif
    255252#endif
    256253
     
    353350  Void         setSkipFlag           ( UInt idx, Bool skip)     { m_skipFlag[idx] = skip;   }
    354351  Void         setSkipFlagSubParts   ( Bool skip, UInt absPartIdx, UInt depth );
    355 #if MTK_SINGLE_DEPTH_MODE_I0095
     352#if H_3D_SINGLE_DEPTH
    356353  Bool*        getSingleDepthFlag            ()                        { return m_singleDepthFlag;          }
    357354  Bool         getSingleDepthFlag            (UInt idx)                { return m_singleDepthFlag[idx];     }
     
    505502  Bool          getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm );
    506503#endif
    507 #if MTK_SINGLE_DEPTH_MODE_I0095
     504#if H_3D_SINGLE_DEPTH
    508505   Bool          getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index);
    509506#endif
     
    670667  Void          getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours
    671668#endif
    672 #if H_3D_VSP && !FIX_TICKET_79
    673                                             , InheritedVSPDisInfo*  inheritedVSPDisInfo
    674 #endif
    675669#if H_3D_SPIVMP
    676670                                            , TComMvField* pcMvFieldSP, UChar* puhInterDirSP
     
    680674
    681675#if H_3D_VSP
    682 #if !FIX_TICKET_76
    683   inline Void   xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount,  InheritedVSPDisInfo*  inheritedVSPDisInfo);
    684 #endif
    685 
    686676#if H_3D_SPIVMP
    687677  Bool*         getSPIVMPFlag        ()                        { return m_pbSPIVMPFlag;          }
     
    771761#endif
    772762
    773 #if SHARP_DMM1_I0110
     763#if H_3D_DIM
    774764  Bool         isDMM1UpscaleMode       ( UInt uiWidth ){ Bool bDMM1UpsampleModeFlag = true; UInt uiBaseWidth = 16; if( uiBaseWidth >= uiWidth ){ bDMM1UpsampleModeFlag = false; } return bDMM1UpsampleModeFlag; };
    775765  UInt         getDMM1BasePatternWidth ( UInt uiWidth ){ UInt uiBaseWidth = 16; if( uiBaseWidth >= uiWidth ){ uiBaseWidth =  uiWidth; } return uiBaseWidth; }
  • trunk/source/Lib/TLibCommon/TComMotionInfo.h

    r1039 r1084  
    7979} IDVInfo;
    8080#endif
    81 #if H_3D_VSP && !FIX_TICKET_79
    82 typedef struct _InheritedVSPDisCand
    83 {
    84   DisInfo m_acDvInfo;
    85 } InheritedVSPDisInfo;
    86 #endif
     81
    8782// ====================================================================================================================
    8883// Class definition
  • trunk/source/Lib/TLibCommon/TComPicSym.cpp

    r872 r1084  
    3838#include "TComPicSym.h"
    3939#include "TComSampleAdaptiveOffset.h"
     40#include "TComSlice.h"
    4041
    4142//! \ingroup TLibCommon
     
    6364,m_iNumColumnsMinus1 (0)
    6465,m_iNumRowsMinus1(0)
    65 ,m_apcTComTile(NULL)
    6666,m_puiCUOrderMap(0)
    6767,m_puiTileIdxMap(NULL)
     
    101101    delete [] m_apcTComSlice;
    102102  }
    103   m_apcTComSlice      = new TComSlice*[m_uiNumCUsInFrame*m_uiNumPartitions]; 
     103  m_apcTComSlice      = new TComSlice*[m_uiNumCUsInFrame];
    104104  m_apcTComSlice[0]   = new TComSlice;
    105105  m_uiNumAllocatedSlice = 1;
     
    148148  m_apcTComDataCU = NULL;
    149149
    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 
    158150  delete [] m_puiCUOrderMap;
    159151  m_puiCUOrderMap = NULL;
     
    173165Void TComPicSym::allocateNewSlice()
    174166{
     167  assert ((m_uiNumAllocatedSlice + 1) <= m_uiNumCUsInFrame);
    175168  m_apcTComSlice[m_uiNumAllocatedSlice ++] = new TComSlice;
    176169  if (m_uiNumAllocatedSlice>=2)
     
    201194}
    202195
    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;
     196Void 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        m_tileParameters[row * numCols + col].setTileWidth( pps->getTileColumnWidth(col) );
     233        cumulativeTileWidth += pps->getTileColumnWidth(col);
     234  }
     235      m_tileParameters[row * numCols + getNumColumnsMinus1()].setTileWidth( getFrameWidthInCU()-cumulativeTileWidth );
     236}
     237
     238    //set the height for each tile
     239    for(Int col=0; col < numCols; col++)
     240{
     241      Int cumulativeTileHeight = 0;
     242      for(Int row=0; row < getNumRowsMinus1(); row++)
     243      {
     244        m_tileParameters[row * numCols + col].setTileHeight( pps->getTileRowHeight(row) );
     245        cumulativeTileHeight += pps->getTileRowHeight(row);
     246      }
     247      m_tileParameters[getNumRowsMinus1() * numCols + col].setTileHeight( getFrameHeightInCU()-cumulativeTileHeight );
     248    }
     249  }
     250
     251#if TILE_SIZE_CHECK
     252  Int minWidth  = 1;
     253  Int minHeight = 1;
     254  const Int profileIdc = pps->getSPS()->getPTL()->getGeneralPTL()->getProfileIdc();
     255  if (  profileIdc == Profile::MAIN || profileIdc == Profile::MAIN10)
     256  {
     257    if (pps->getTilesEnabledFlag())
     258    {
     259      minHeight = 64  / g_uiMaxCUHeight;
     260      minWidth  = 256 / g_uiMaxCUWidth;
     261    }
     262  }
     263  for(Int row=0; row < numRows; row++)
     264  {
     265    for(Int col=0; col < numCols; col++)
     266    {
     267      const Int tileIdx = row * numCols + col;
     268      assert (m_tileParameters[tileIdx].getTileWidth() >= minWidth);
     269      assert (m_tileParameters[tileIdx].getTileHeight() >= minHeight);
     270    }
     271  }
     272#endif
    220273
    221274  //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;
     275  for( Int row=0; row < numRows; row++ )
     276  {
     277    for( Int col=0; col < numCols; col++ )
     278    {
     279      const Int tileIdx = row * numCols + col;
    227280
    228281      //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);
     282      Int rightEdgePosInCTU = 0;
     283      for( Int i=0; i <= col; i++ )
     284      {
     285        rightEdgePosInCTU += m_tileParameters[row * numCols + i].getTileWidth();
     286      }
     287      m_tileParameters[tileIdx].setRightEdgePosInCU(rightEdgePosInCTU-1);
    235288
    236289      //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);
     290      Int bottomEdgePosInCTU = 0;
     291      for( Int i=0; i <= row; i++ )
     292      {
     293        bottomEdgePosInCTU += m_tileParameters[i * numCols + col].getTileHeight();
     294      }
     295      m_tileParameters[tileIdx].setBottomEdgePosInCU(bottomEdgePosInCTU-1);
    243296
    244297      //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   }
     298      m_tileParameters[tileIdx].setFirstCUAddr( (m_tileParameters[tileIdx].getBottomEdgePosInCU() - m_tileParameters[tileIdx].getTileHeight() + 1) * getFrameWidthInCU() +
     299                                                 m_tileParameters[tileIdx].getRightEdgePosInCU() - m_tileParameters[tileIdx].getTileWidth() + 1);
     300    }
     301  }
     302
     303  Int  columnIdx = 0;
     304  Int  rowIdx = 0;
    249305
    250306  //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;
     307  for( Int i=0; i<m_uiNumCUsInFrame; i++)
     308  {
     309    for( Int col=0; col < numCols; col++)
     310    {
     311      if(i % getFrameWidthInCU() <= m_tileParameters[col].getRightEdgePosInCU())
     312      {
     313        columnIdx = col;
     314        break;
     315      }
     316    }
     317    for(Int row=0; row < numRows; row++)
     318    {
     319      if(i / getFrameWidthInCU() <= m_tileParameters[row*numCols].getBottomEdgePosInCU())
     320      {
     321        rowIdx = row;
     322        break;
     323      }
     324    }
     325    m_puiTileIdxMap[i] = rowIdx * numCols + columnIdx;
    270326  }
    271327
     
    417473
    418474TComTile::TComTile()
     475: m_uiTileWidth         (0)
     476, m_uiTileHeight        (0)
     477, m_uiRightEdgePosInCU  (0)
     478, m_uiBottomEdgePosInCU (0)
     479, m_uiFirstCUAddr       (0)
     480
    419481{
    420482}
  • trunk/source/Lib/TLibCommon/TComPicSym.h

    r872 r1084  
    4545#include "TComDataCU.h"
    4646class TComSampleAdaptiveOffset;
     47class TComPPS;
    4748
    4849//! \ingroup TLibCommon
     
    102103  Int           m_iNumColumnsMinus1;
    103104  Int           m_iNumRowsMinus1;
    104   TComTile**    m_apcTComTile;
     105  std::vector<TComTile> m_tileParameters;
    105106  UInt*         m_puiCUOrderMap;       //the map of LCU raster scan address relative to LCU encoding order
    106107  UInt*         m_puiTileIdxMap;       //the map of the tile index relative to LCU raster scan address
     
    133134  Int          getNumRowsMinus1()                                    { return m_iNumRowsMinus1; }
    134135  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]); }
    136137  Void         setCUOrderMap( Int encCUOrder, Int cuAddr )           { *(m_puiCUOrderMap + encCUOrder) = cuAddr; }
    137138  UInt         getCUOrderMap( Int encCUOrder )                       { return *(m_puiCUOrderMap + (encCUOrder>=m_uiNumCUsInFrame ? m_uiNumCUsInFrame : encCUOrder)); }
     
    141142  UInt         getPicSCUEncOrder( UInt SCUAddr );
    142143  UInt         getPicSCUAddr( UInt SCUEncOrder );
    143   Void         xCreateTComTileArray();
    144   Void         xInitTiles();
     144  Void         initTiles(TComPPS *pps);
    145145  UInt         xCalculateNxtCUAddr( UInt uiCurrCUAddr );
    146146  SAOBlkParam* getSAOBlkParam() { return m_saoBlkParams;}
  • trunk/source/Lib/TLibCommon/TComPrediction.cpp

    r1039 r1084  
    423423
    424424  UInt dimType    = getDimType  ( uiIntraMode );
    425 #if !HS_DMM_SIGNALLING_I0120
    426   Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );
    427 #endif
    428425  Bool isDmmMode  = (dimType <  DMM_NUM_TYPE);
    429426
     
    440437    case( DMM1_IDX ):
    441438      {
    442 #if SHARP_DMM1_I0110
    443439        dmmSegmentation = pcCU->isDMM1UpscaleMode((UInt)iWidth) ?
    444440            &(g_dmmWedgeLists[ g_aucConvertToBit[pcCU->getDMM1BasePatternWidth((UInt)iWidth)] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]) :
    445441            &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    446 #else
    447         dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    448 #endif
    449442      } break;
    450443    case( DMM4_IDX ):
     
    464457    }
    465458    assert( dmmSegmentation );
    466 #if SHARP_DMM1_I0110
    467459    if( dimType == DMM1_IDX && pcCU->isDMM1UpscaleMode((UInt)iWidth) )
    468460    {
     
    475467        patternStride = dmmSegmentation->getStride ();
    476468    }
    477 #else
    478     biSegPattern  = dmmSegmentation->getPattern();
    479     patternStride = dmmSegmentation->getStride ();
    480 #endif
    481469  }
    482470#endif
     
    495483  Pel segDC1 = 0;
    496484  Pel segDC2 = 0;
    497 #if HS_DMM_SIGNALLING_I0120
    498485  if( !pcCU->getSDCFlag( uiAbsPartIdx ) )
    499 #else
    500   if( dimDeltaDC )
    501 #endif
    502486  {
    503487    Pel deltaDC1 = pcCU->getDimDeltaDC( dimType, 0, uiAbsPartIdx );
     
    568552    pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, i, iNumSPInOneLine, uiSPAddr[i]);
    569553  }
    570 #if SHARP_ARP_CHROMA_I0104
    571554  if( pcCU->getARPW( uiPartAddr ) != 0 )
    572555  {
    573556    return;
    574557  }
    575 #endif
     558
    576559  // horizontal sub-PU merge
    577560  for (Int i=0; i<iNumSP; i++)
     
    745728  Int uiMinDepth = MAX_INT;
    746729  Int uiMaxDepth = 0;
    747 #if SEC_DBBP_DMM4_THRESHOLD_I0076
     730
    748731  iSumDepth  = pDepthPels[ 0 ];
    749732  iSumDepth += pDepthPels[ uiWidth - 1 ];
     
    760743  uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]);
    761744  uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]);
    762 #else
    763   for (Int y=0; y<uiHeight; y++)
    764   {
    765     for (Int x=0; x<uiWidth; x++)
    766     {
    767       Int depthPel = pDepthPels[x];
    768       iSumDepth += depthPel;
    769      
    770       if( depthPel > uiMaxDepth )
    771       {
    772         uiMaxDepth = depthPel;
    773       }
    774       if( depthPel < uiMinDepth )
    775       {
    776         uiMinDepth = depthPel;
    777       }
    778     }
    779    
    780     // next row
    781     pDepthPels += uiDepthStride;
    782   }
    783 #endif
     745
    784746 
    785747  // don't generate mask for blocks with small depth range (encoder decision)
     
    790752 
    791753  AOF(uiWidth==uiHeight);
    792 #if SEC_DBBP_DMM4_THRESHOLD_I0076
    793754  Int iMean = iSumDepth >> 2;
    794 #else
    795   Int iSizeInBits = g_aucConvertToBit[uiWidth]+2;
    796   Int iMean = iSumDepth >> iSizeInBits*2;       // iMean /= (uiWidth*uiHeight);
    797 #endif
    798755 
    799756  // start again for segmentation
     
    842799}
    843800
    844 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    845801Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize )
    846 #else
    847 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr )
    848 #endif
    849802{
    850803  Pel*  piSrc[2]    = {pInYuv[0]->getLumaAddr(uiPartAddr), pInYuv[1]->getLumaAddr(uiPartAddr)};
     
    854807 
    855808  UInt  uiMaskStride= MAX_CU_SIZE;
    856 #if !SHARP_DBBP_SIMPLE_FLTER_I0109
    857   Pel  filSrc = 0;
    858 #endif
    859809  Pel* tmpTar = 0;
    860810  tmpTar = (Pel *)xMalloc(Pel, uiWidth*uiHeight);
     
    880830  }
    881831 
    882 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    883832  if (partSize == SIZE_Nx2N)
    884833  {
     
    917866    }
    918867  }
    919 #else
    920   for (Int y=0; y<uiHeight; y++)
    921   {
    922     for (Int x=0; x<uiWidth; x++)
    923     {
    924       Bool t = (y==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y-1)*uiMaskStride+x];
    925       Bool l = (x==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x-1];
    926       Bool b = (y==uiHeight-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y+1)*uiMaskStride+x];
    927       Bool r = (x==uiWidth-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x+1];
    928       Bool c =pMaskStart[y*uiMaskStride+x];
    929 
    930       Pel left, right, top, bottom;
    931       left   = (x==0)          ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x-1];
    932       right  = (x==uiWidth-1)  ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x+1];
    933       top    = (y==0)          ? tmpTar[y*uiWidth+x] : tmpTar[(y-1)*uiWidth+x];
    934       bottom = (y==uiHeight-1) ? tmpTar[y*uiWidth+x] : tmpTar[(y+1)*uiWidth+x];
    935 
    936       if(!((l&&r&&c) || (!l&&!r&&!c)))
    937       {
    938         filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 ));
    939       }
    940       else
    941       {
    942         filSrc = tmpTar[y*uiWidth+x];
    943       }
    944 
    945       if(!((t&&b&&c) || (!t&&!b&&!c)))
    946       {
    947         filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( top + (filSrc << 1) + bottom ) >> 2 ));
    948       }
    949       piDst[x] = filSrc;
    950     }
    951     piDst     += uiDstStride;
    952   }
    953 #endif
    954868
    955869  if ( tmpTar    ) { xFree(tmpTar);             tmpTar        = NULL; }
     
    989903  }
    990904
    991 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    992905  if (partSize == SIZE_Nx2N)
    993906  {
     
    1056969    }
    1057970  }
    1058 #else
    1059   for (Int y=0; y<uiHeightC; y++)
    1060   {
    1061     for (Int x=0; x<uiWidthC; x++)
    1062     {
    1063       Bool t = (y==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y-1)*2*uiMaskStride+x*2];
    1064       Bool l = (x==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x-1)*2];
    1065       Bool b = (y==uiHeightC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y+1)*2*uiMaskStride+x*2];
    1066       Bool r = (x==uiWidthC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x+1)*2];
    1067       Bool c =pMaskStart[y*2*uiMaskStride+x*2];
    1068 
    1069       Pel leftU, rightU, topU, bottomU;
    1070       leftU   = (x==0)           ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x-1];
    1071       rightU  = (x==uiWidthC-1)  ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x+1];
    1072       topU    = (y==0)           ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y-1)*uiWidthC+x];
    1073       bottomU = (y==uiHeightC-1) ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y+1)*uiWidthC+x];
    1074 
    1075       Pel leftV, rightV, topV, bottomV;
    1076       leftV   = (x==0)           ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x-1];
    1077       rightV  = (x==uiWidthC-1)  ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x+1];
    1078       topV    = (y==0)           ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y-1)*uiWidthC+x];
    1079       bottomV = (y==uiHeightC-1) ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y+1)*uiWidthC+x];
    1080 
    1081       if(!((l&&r&&c) || (!l&&!r&&!c)))
    1082       {
    1083         filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 ));
    1084         filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 ));
    1085       }
    1086       else
    1087       {
    1088         filSrcU = tmpTarU[y*uiWidthC+x];
    1089         filSrcV = tmpTarV[y*uiWidthC+x];
    1090       }
    1091 
    1092       if(!((t&&b&&c) || (!t&&!b&&!c)))
    1093       {
    1094         filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topU + (filSrcU << 1) + bottomU ) >> 2 ));
    1095         filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topV + (filSrcV << 1) + bottomV ) >> 2 ));
    1096       }
    1097 
    1098       piDstU[x] = filSrcU;
    1099       piDstV[x] = filSrcV;
    1100     }
    1101     piDstU      += uiDstStrideC;
    1102     piDstV      += uiDstStrideC;
    1103   }
    1104 #endif
     971
    1105972  if ( tmpTarU    ) { xFree(tmpTarU);             tmpTarU        = NULL; }
    1106973  if ( tmpTarV    ) { xFree(tmpTarV);             tmpTarV        = NULL; }
     
    14751342  pcCU->clipMv(cMv);
    14761343  TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec();
    1477 #if QC_I0129_ARP_FIX
    14781344  xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true );
    14791345  xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true );
    1480 #else
    1481   xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true );
    1482   xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true );
    1483 #endif
     1346
    14841347  if( dW > 0 )
    14851348  {
     
    14891352    TComMv cMVwithDisparity = cMv + cDistparity.m_acNBDV;
    14901353    pcCU->clipMv(cMVwithDisparity);
    1491 #if SHARP_ARP_CHROMA_I0104
    14921354    if (iWidth <= 8)
    14931355    {
    14941356      pYuvB0->clear(); pYuvB1->clear();
    14951357    }
    1496 #endif
    14971358
    14981359    assert ( cDistparity.bDV );
    14991360   
    1500 #if NTT_BUG_FIX_TK54
    15011361    TComMv cNBDV = cDistparity.m_acNBDV;
    15021362    pcCU->clipMv( cNBDV );
    15031363   
    15041364    pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec();
    1505 #if QC_I0129_ARP_FIX
    15061365    xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true );
    1507 #if SHARP_ARP_CHROMA_I0104
    15081366    if (iWidth > 8)
    1509 #endif
    1510     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true );
    1511 #else
    1512     xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1513     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1514 #endif
    1515 #else
    1516     pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec();
    1517     xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cDistparity.m_acNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1518     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cDistparity.m_acNBDV, iWidth, iHeight, pYuvB0, bi, true );
    1519 #endif
     1367      xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true );
    15201368   
    15211369    pcPicYuvRef = pcPicYuvBaseRef->getPicYuvRec();
    1522 #if QC_I0129_ARP_FIX
    15231370    xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true );
    1524 #if SHARP_ARP_CHROMA_I0104
     1371 
    15251372    if (iWidth > 8)
    1526 #endif
    1527     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true );
    1528 #else
    1529     xPredInterLumaBlk  ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true );
    1530     xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true );
    1531 #endif
     1373      xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true );
     1374   
    15321375    pYuvB0->subtractARP( pYuvB0 , pYuvB1 , uiPartAddr , iWidth , iHeight );
    15331376
     
    15401383}
    15411384
    1542 #if QC_I0051_ARP_SIMP
    15431385Bool TComPrediction::xCheckBiInterviewARP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc )
    15441386{
     
    15721414        Int  iCurrRefPOC = pcPicYuvBaseTRef->getPOC();
    15731415        Int  iCurrRef    = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr);
    1574 #if MTK_I0072_IVARP_SCALING_FIX
     1416
    15751417        if( iCurrRef >= 0 && iCurrPOC != iCurrRefPOC)
    1576 #else
    1577         if( iCurrRef >= 0)
    1578 #endif
    15791418        {
    15801419          pcPicYuvCurrTRef =  pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); 
     
    16081447  return false;
    16091448}
    1610 #endif
    16111449
    16121450Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled )
     
    16431481  pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr);
    16441482  TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr );
    1645 #if QC_I0051_ARP_SIMP
    16461483  if( pcCU->getSlice()->isInterB() && !pcCU->getSlice()->getIsDepth() )
    16471484  {
     
    17081545
    17091546  if( !pColCU->isIntra( uiAbsPartAddr ) && !bTMVAvai )
    1710 #else
    1711   if(!pColCU->isIntra(uiAbsPartAddr))
    1712 #endif
    17131547  {
    17141548    TComMvField puMVField;
     
    17231557        Int  iCurrRefPOC = pcPicYuvBaseTRef->getPOC();
    17241558        Int  iCurrRef    = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr);
    1725 #if MTK_I0072_IVARP_SCALING_FIX
    17261559        if (iCurrRef >= 0 && iCurrRefPOC != iCurrPOC)
    1727 #else
    1728         if( iCurrRef >= 0)
    1729 #endif
    17301560        {
    17311561          pcPicYuvCurrTRef =  pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); 
     
    17541584    pcPicYuvCurrTRef =  pcCU->getSlice()->getRefPic  (eRefPicList,  pcCU->getSlice()->getFirstTRefIdx(eRefPicList));     
    17551585  }
    1756 #if QC_I0129_ARP_FIX
     1586
    17571587  xPredInterLumaBlk  ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ),        bTMVAvai);
    17581588  xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ),        bTMVAvai);
    1759 #else
    1760   xPredInterLumaBlk  ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi,        bTMVAvai);
    1761   xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi,        bTMVAvai);
    1762 #endif
     1589
    17631590  if( dW > 0 && bTMVAvai )
    17641591  {
     
    17711598    pcCU->clipMv(cBaseTMV);
    17721599    pcCU->clipMv(cTempMv);
    1773 #if SHARP_ARP_CHROMA_I0104
     1600
    17741601    if (iWidth <= 8)
    17751602    {
    17761603      pYuvCurrTRef->clear(); pYuvBaseTRef->clear();
    17771604    }
    1778 #endif
    1779 #if QC_I0129_ARP_FIX
    17801605    xPredInterLumaBlk  ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true,   true);
    1781 #if SHARP_ARP_CHROMA_I0104
     1606
    17821607    if (iWidth > 8)
    1783 #endif
    1784     xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true,   true);
     1608      xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true,   true);
     1609
    17851610    xPredInterLumaBlk  ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, true,   true);
    1786 #if SHARP_ARP_CHROMA_I0104
     1611
    17871612    if (iWidth > 8)
    1788 #endif
    1789     xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, true,   true);
    1790 #else
    1791     xPredInterLumaBlk  ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi,   true);
    1792     xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi,   true);
    1793     xPredInterLumaBlk  ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, bi,   true);
    1794     xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, bi,   true);
    1795 
    1796 #endif
     1613      xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv,  iWidth, iHeight, pYuvBaseTRef, true,   true);
     1614
    17971615    pYuvCurrTRef->subtractARP( pYuvCurrTRef , pYuvBaseTRef , uiPartAddr , iWidth , iHeight ); 
    17981616    if(dW == 2)
     
    18031621  }
    18041622}
    1805 
    18061623#endif
    18071624
     
    23282145  Int iRecStride = ( eType == TEXT_LUMA ) ? pRecPic->getStride() : pRecPic->getCStride();
    23292146  Int iRefStride = ( eType == TEXT_LUMA ) ? pRefPic->getStride() : pRefPic->getCStride();
    2330 #if SEC_IC_NEIGHBOR_CLIP_I0080
    23312147  Int iRefOffset, iHor, iVer;
    2332 #else
    2333   Int iCUPelX, iCUPelY, iRefX, iRefY, iRefOffset, iHor, iVer;
    2334 
    2335   iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    2336   iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    2337 #endif
    23382148  iHor = pcCU->getSlice()->getIsDepth() ? pMv->getHor() : ( ( pMv->getHor() + 2 ) >> 2 );
    23392149  iVer = pcCU->getSlice()->getIsDepth() ? pMv->getVer() : ( ( pMv->getVer() + 2 ) >> 2 );
    2340 #if !SEC_IC_NEIGHBOR_CLIP_I0080
    2341   iRefX   = iCUPelX + iHor;
    2342   iRefY   = iCUPelY + iVer;
    2343 #endif
    23442150  if( eType != TEXT_LUMA )
    23452151  {
     
    23572163  Int precShift = std::max(0, (( eType == TEXT_LUMA ) ? g_bitDepthY : g_bitDepthC) - 12);
    23582164
    2359 #if SEC_IC_NEIGHBOR_CLIP_I0080
    23602165  if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) )
    2361 #else
    2362   if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelY > 0 && iRefY > 0 )
    2363 #endif
    23642166  {
    23652167    iRefOffset = iHor + iVer * iRefStride - iRefStride;
     
    23912193  }
    23922194
    2393 #if SEC_IC_NEIGHBOR_CLIP_I0080
    23942195  if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) )
    2395 #else
    2396   if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelX > 0 && iRefX > 0 )
    2397 #endif
    23982196  {
    23992197    iRefOffset = iHor + iVer * iRefStride - 1;
     
    24292227  }
    24302228
    2431 #if FIX_TICKET_71
    24322229  if( iCountShift == 0 )
    24332230  {
     
    24362233    return;
    24372234  }
    2438 #endif
    24392235
    24402236  xy += xx >> IC_REG_COST_SHIFT;
     
    25532349  // find contour for texture luma block
    25542350  UInt iDC = 0;
    2555 #if SEC_DBBP_DMM4_THRESHOLD_I0076
     2351
    25562352  iDC  = piRefBlkY[ 0 ];
    25572353  iDC += piRefBlkY[ uiWidth - 1 ];
     
    25592355  iDC += piRefBlkY[ uiWidth * (uiHeight - 1) + uiWidth - 1 ];
    25602356  iDC = iDC >> 2;
    2561 #else
    2562   for( UInt k = 0; k < (uiWidth*uiHeight); k++ )
    2563   {
    2564     iDC += piRefBlkY[k];
    2565   }
    2566 
    2567   Int cuMaxLog2Size = g_aucConvertToBit[g_uiMaxCUWidth]+2;   //
    2568   iDC = iDC >> (cuMaxLog2Size - pcCU->getDepth(0))*2;        //  iDC /= (uiWidth*uiHeight);
    2569 #endif
    25702357
    25712358  piRefBlkY = cTempYuv.getLumaAddr();
  • trunk/source/Lib/TLibCommon/TComPrediction.h

    r1039 r1084  
    9090#if H_3D_ARP
    9191  Void xPredInterUniARP         ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL );
    92 #if QC_I0051_ARP_SIMP
    9392  Bool xCheckBiInterviewARP     ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc );
    94 #endif
    9593  Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL );
    9694#endif
     
    179177  PartSize      getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize);
    180178  Bool          getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask );
    181 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    182179  Void          combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize );
    183 #else
    184   Void          combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr = 0 );
    185 #endif
    186180#endif
    187181
  • trunk/source/Lib/TLibCommon/TComRom.cpp

    r1066 r1084  
    355355  HALF_PEL,    //   8x8
    356356  FULL_PEL,    //  16x16
    357 #if SHARP_DMM1_I0110
    358357  FULL_PEL,    //  32x32
    359358  FULL_PEL,    //  64x64
    360359  FULL_PEL     // 128x128
    361 #else
    362   DOUBLE_PEL,  //  32x32
    363   DOUBLE_PEL,  //  64x64
    364   DOUBLE_PEL   // 128x128
    365 #endif
    366360};
    367361
     
    374368     0,    4,    7,    8,    8,    0 };
    375369
    376 #if SHARP_DMM1_I0110
    377370Bool g_wedgePattern[32*32];
    378 #endif
    379371
    380372extern std::vector< std::vector<TComWedgelet> >   g_dmmWedgeLists;
     
    388380
    389381Char  g_aucConvertToBit  [ MAX_CU_SIZE+1 ];
    390 #if !MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    391 #if H_3D_IC
    392 UInt g_aICEnableCANDIDATE[10] = { 0, };
    393 UInt g_aICEnableNUM[ 10 ] = { 0, };
    394 Int g_lastlayer=0;
    395 #endif
    396 #endif
    397382#if ENC_DEC_TRACE
    398383FILE*  g_hTrace = NULL;
     
    676661  if( !g_dmmWedgeLists.empty() ) return;
    677662
    678 #if SHARP_DMM1_I0110
    679663  for( UInt ui = g_aucConvertToBit[DIM_MIN_SIZE]; ui < (g_aucConvertToBit[DIM_MAX_SIZE]); ui++ )
    680 #else
    681   for( UInt ui = g_aucConvertToBit[DIM_MIN_SIZE]; ui < (g_aucConvertToBit[DIM_MAX_SIZE]+1); ui++ )
    682 #endif
    683664  {
    684665    UInt uiWedgeBlockSize = ((UInt)DIM_MIN_SIZE)<<ui;
     
    764745  switch( eWedgeRes )
    765746  {
    766 #if !SHARP_DMM1_I0110
    767   case( DOUBLE_PEL ): { uiBlockSize = (uiWidth>>1); break; }
    768 #endif
    769747  case(   FULL_PEL ): { uiBlockSize =  uiWidth;     break; }
    770748  case(   HALF_PEL ): { uiBlockSize = (uiWidth<<1); break; }
  • trunk/source/Lib/TLibCommon/TComRom.h

    r1066 r1084  
    166166extern const UChar                                           g_dmm3IntraTabIdxBits[6];
    167167
    168 #if SHARP_DMM1_I0110
    169168extern Bool                                                  g_wedgePattern[32*32];
    170 #endif
    171169
    172170extern       std::vector< std::vector<TComWedgelet> >        g_dmmWedgeLists;
     
    230228
    231229extern       Char   g_aucConvertToBit  [ MAX_CU_SIZE+1 ];   // from width to log2(width)-2
    232 #if !MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    233 #if H_3D_IC
    234 extern UInt g_aICEnableCANDIDATE[10];
    235 extern UInt g_aICEnableNUM[ 10 ]; //10 layers
    236 extern Int  g_lastlayer;
    237 #endif
    238 #endif
    239230
    240231#ifndef ENC_DEC_TRACE
  • trunk/source/Lib/TLibCommon/TComSlice.cpp

    r1066 r1084  
    103103, m_temporalLayerNonReferenceFlag ( false )
    104104, m_enableTMVPFlag                ( true )
    105 #if I0044_SLICE_TMVP
     105#if H_MV
    106106, m_availableForTMVPRefFlag       ( true )
    107 #endif
    108 #if H_MV
    109107, m_refPicSetInterLayer0           ( NULL )
    110108, m_refPicSetInterLayer1           ( NULL )
     
    142140, m_depthToDisparityF             ( NULL )
    143141#endif
    144 #if MTK_SINGLE_DEPTH_MODE_I0095
     142#if H_3D_SINGLE_DEPTH
    145143, m_bApplySingleDepthMode         (false)
    146144#endif
     
    650648 
    651649  TComPic**             refPicSetStCurr    [2] = { RefPicSetStCurr0, RefPicSetStCurr1 };
    652 #if FIX_WARNING
    653650  Int numPocStCurr[2] = { (Int)NumPocStCurr0, (Int)NumPocStCurr1 };
    654 #else
    655   Int numPocStCurr[2] = { NumPocStCurr0, NumPocStCurr1 };
    656 #endif
    657651
    658652  for (Int li = 0; li < ((m_eSliceType==B_SLICE) ? 2 : 1); li++)
     
    728722
    729723        assert( rpsCurrList[li][ orgIdx ] != NULL );
    730 #if DISCARDABLE_PIC_RPS
    731724        assert( rpsCurrList[li][ orgIdx ]->getSlice(0)->getDiscardableFlag() == 0 );    // Inter-layer RPS shall not contain picture with discardable_flag = 1.
    732 #endif
    733725        m_apcRefPicList    [li][rIdx] = rpsCurrList    [li][ orgIdx ];
    734726        m_bIsUsedAsLongTerm[li][rIdx] = usedAsLongTerm [li][ orgIdx ] ;
     
    11051097  }
    11061098#endif
    1107 #if MTK_SINGLE_DEPTH_MODE_I0095
     1099#if H_3D_SINGLE_DEPTH
    11081100  m_bApplySingleDepthMode = pSrc->m_bApplySingleDepthMode;
    11091101#endif
     
    18811873#if H_MV
    18821874  m_vpsBaseLayerInternalFlag = true;
    1883 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    18841875  m_vpsBaseLayerAvailableFlag = true;
    1885 #endif
    18861876#endif
    18871877
     
    19091899  {
    19101900    m_layerSetIdxForOlsMinus1[i]  = -1;
    1911 #if !H_MV_HLS10_PTL
    1912     m_profileLevelTierIdx[i]      = 0;
    1913 #endif
    19141901    for ( Int j = 0; j < MAX_VPS_NUH_LAYER_ID_PLUS1; j++)
    19151902    {
    1916 #if H_MV_HLS10_PTL
    1917 #if H_MV_HLS10_PTL_FIX
    19181903      m_profileTierLevelIdx[i][j] = -1;
    1919 #else
    1920       m_profileTierLevelIdx[i][j] = false;
    1921 #endif
    1922 #endif
    19231904      m_outputLayerFlag[i][j] = false;
    19241905    }
     
    19701951    m_viewIndex         [i] = -1;
    19711952    m_vpsDepthModesFlag [i] = false;
    1972 #if SEC_HLS_CLEANUP_I0100
    19731953    m_ivMvScalingFlag[i] = true;
    1974 #else
    1975     m_ivMvScalingFlag = true;
    1976 #endif
    1977 #if SEPARATE_FLAG_I0085
    19781954    m_bIVPFlag [i]      = false;
    1979 #endif
    19801955#endif
    19811956
     
    19841959      m_directDependencyFlag[i][j] = false;
    19851960      m_directDependencyType[i][j] = -1;
    1986 #if H_MV_HLS10_REF_PRED_LAYERS
    19871961      m_dependencyFlag  [i][j]    = false;
    19881962      m_idDirectRefLayer[i][j]    = -1;
    19891963      m_idPredictedLayer[i][j]    = -1;
    19901964      m_idRefLayer      [i][j]    = -1;
    1991 #else
    1992       m_refLayerId[i][j]           = -1;
    1993 #endif
    19941965      m_maxTidIlRefPicsPlus1[i][j]  = 7;
    19951966    }
     
    20161987#endif
    20171988#endif
    2018 #if MTK_I0099_VPS_EX2
     1989#if H_3D_QTLPC
    20191990    m_bLimQtPredFlag       [ i ] = false;
    20201991#endif
     
    20281999    m_bInterSDCFlag        [ i ] = false;
    20292000#endif
    2030 #if SEPARATE_FLAG_I0085
     2001#if H_3D
    20312002    m_bIVPFlag             [ i ] = false;
    20322003#endif
     
    20752046  assert( getVpsNumRepFormatsMinus1() <= 255 );
    20762047
    2077 #if H_MV_HLS10_ADD_LAYERSETS
    20782048  // The value of num_add_layer_sets shall be in the range of 0 to 1023, inclusive.
    20792049  assert( getNumAddLayerSets() >= 0 && getNumAddLayerSets() <= 1023 );
    2080 #endif
    20812050  return true;
    20822051}
     
    21112080{
    21122081
    2113 #if H_MV_HLS10_REF_PRED_LAYERS
    21142082  for( Int i = 0; i  <=  getMaxLayersMinus1(); i++ )
    21152083  {
     
    21812149  }
    21822150  m_numIndependentLayers = k;
    2183 #else // H_MV_HLS10_GEN
    2184 
    2185   for( Int i = 0; i  <= getMaxLayersMinus1(); i++ )
    2186   {
    2187     Int iNuhLId = getLayerIdInNuh( i );
    2188     m_numDirectRefLayers[ iNuhLId ] = 0;
    2189     for( Int j = 0; j < i; j++ )
    2190     {
    2191       if( getDirectDependencyFlag(i , j) )
    2192       {
    2193         m_refLayerId[ iNuhLId ][m_numDirectRefLayers[ iNuhLId ]++ ] = getLayerIdInNuh( j );
    2194       }
    2195     }
    2196   }
    2197 
    2198   for (Int i = 0 ; i < MAX_NUM_LAYER_IDS; i++ )
    2199   {
    2200     m_numRefLayers[i] = 0;
    2201   }
    2202 
    2203   for (Int currLayerId = 0; currLayerId <= 62; currLayerId++ )
    2204   {
    2205     for (Int i = 0 ; i < MAX_NUM_LAYER_IDS; i++ )
    2206     {
    2207       m_recursiveRefLayerFlag[currLayerId][i] = 0;
    2208     }
    2209   }
    2210 
    2211   for( Int i = 0; i  <=  getMaxLayersMinus1(); i++ )
    2212   {
    2213     Int iNuhLId = getLayerIdInNuh( i );
    2214     xSetRefLayerFlags( iNuhLId );
    2215     for( Int j = 0; j < 63; j++ )
    2216     {
    2217       m_numRefLayers[ iNuhLId ]  +=  m_recursiveRefLayerFlag[ iNuhLId ][ j ];
    2218     }
    2219   }
    2220  
    2221   for( Int i = 0; i <= getMaxLayersMinus1(); i++ )  // Bug in spec "<" instead of "<="
    2222   {
    2223     Int iNuhLId = getLayerIdInNuh( i );
    2224     Int predIdx = 0;
    2225     for( Int j = iNuhLId + 1; j < 63; j++ )
    2226     {
    2227       if( m_recursiveRefLayerFlag[ j ][ iNuhLId ] )
    2228       {
    2229         m_predictedLayerId[ iNuhLId ][ predIdx++ ] = j;
    2230       }
    2231     }
    2232     m_numPredictedLayers[ iNuhLId ] = predIdx;
    2233   }
    2234  
    2235   Bool countedLayerIdxFlag[ MAX_NUM_LAYERS ];
    2236   for( Int i = 0; i  <=  getMaxLayersMinus1(); i++ )
    2237   {
    2238     countedLayerIdxFlag[ i ] = 0;
    2239   }
    2240   for( Int i = 0, k = 0; i  <=  getMaxLayersMinus1(); i++ )
    2241   {
    2242     Int iNuhLId = getLayerIdInNuh( i );
    2243     if( m_numDirectRefLayers[ iNuhLId ]  ==  0 )
    2244     {
    2245       m_treePartitionLayerIdList[ k ][ 0 ] = iNuhLId;
    2246       m_numLayersInTreePartition[ k ]      = 1;
    2247 
    2248       for( Int j = 0; j < m_numPredictedLayers[ iNuhLId ]; j++ ) 
    2249       {
    2250         if( !countedLayerIdxFlag[ getLayerIdInVps( m_predictedLayerId[ iNuhLId ][ j ] ) ] )   
    2251         {
    2252           m_treePartitionLayerIdList[ k ][ m_numLayersInTreePartition[ k ] ] = m_predictedLayerId[ iNuhLId ][ j ];
    2253           m_numLayersInTreePartition[ k ]++;
    2254           countedLayerIdxFlag[ getLayerIdInVps( m_predictedLayerId[ iNuhLId ][ j ] ) ] = 1;
    2255         }
    2256       }
    2257       k++;
    2258 
    2259       m_numIndependentLayers = k;
    2260     }
    2261   }
    2262 #endif // H_MV_HLS10_GEN
    2263 }
    2264 
    2265 #if !H_MV_HLS10_REF_PRED_LAYERS
    2266 Int TComVPS::getRefLayerId( Int layerIdInNuh, Int idx )
    2267 {
    2268   assert( idx >= 0 && idx < m_numDirectRefLayers[layerIdInNuh] );     
    2269   Int refLayerIdInNuh = m_refLayerId[ layerIdInNuh ][ idx ];   
    2270   assert ( refLayerIdInNuh >= 0 );
    2271   return refLayerIdInNuh;
    2272 }
    2273 #endif
     2151}
     2152
    22742153
    22752154Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType )
     
    23092188  for ( i = 0; i < iNumViews ; i++ )
    23102189  {
    2311 #if H_3D_FIX_UNINIT
    23122190    m_bCamParPresent[i] = false;
    2313 #endif
    23142191    m_bCamParInSliceHeader[i] = false;
    23152192    m_aaaiCodedScale[i] = new Int*[ 2 ];
     
    24242301{
    24252302  assert( lsIdx >= 0 );
    2426 #if H_MV_HLS10_ADD_LAYERSETS
    24272303  assert( lsIdx <= getNumLayerSets() );
    2428 #else
    2429   assert( lsIdx <= getVpsNumLayerSetsMinus1() );
    2430 #endif
    24312304  return (Int) m_layerSetLayerIdList[ lsIdx ].size();
    24322305}
     
    24522325}
    24532326
    2454 #if !H_MV_HLS10_REF_PRED_LAYERS
    2455 Bool TComVPS::getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth /*= 0 */ )
    2456 {
    2457 #if H_MV_HLS10_REF_PRED_LAYERS
    2458   // TBD: Remove getInDirectDependencyFlag entirely.
    2459   return getDependencyFlag( depLayeridInVps, refLayeridInVps );
    2460 #else
    2461   assert( depth < 65 );
    2462   Bool dependentFlag = getDirectDependencyFlag( depLayeridInVps, refLayeridInVps );
    2463 
    2464   for( Int i = 0; i < depLayeridInVps && !dependentFlag; i++ )
    2465   {
    2466     if ( getDirectDependencyFlag( depLayeridInVps, i ) )
    2467     {
    2468       dependentFlag = getInDirectDependencyFlag( i, refLayeridInVps, depth++ );
    2469     }
    2470   }
    2471   return dependentFlag;
    2472 #endif
    2473 }
    2474 #endif
    24752327
    24762328Void TComVPS::deriveLayerSetLayerIdList()
     
    25012353  for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ )
    25022354  {
    2503 #if H_MV_HLS10_NESSECARY_LAYER
    25042355    if ( getNecessaryLayerFlag( i , j ))
    25052356    {
    2506 #endif
    25072357      m_targetDecLayerIdLists[i].push_back( m_layerSetLayerIdList[ lsIdx ][ j ] );
    2508 #if H_MV_HLS10_NESSECARY_LAYER
    2509     }
    2510 #endif
     2358    }
    25112359
    25122360    if( getOutputLayerFlag( i, j  ))
     
    25572405}
    25582406
    2559 #if !H_MV_HLS10_ADD_LAYERSETS
    2560 Void TComVPS::inferDbpSizeLayerSetZero( TComSPS* sps, Bool encoder )
    2561 {
    2562   for( Int j = 0; j <= getMaxSubLayersInLayerSetMinus1( 0 ); j++ )
    2563   {
    2564     Int maxDecPicBufferingMinus1 = sps->getMaxDecPicBuffering( j ) - 1;
    2565     Int numReorderPics           = sps->getNumReorderPics    ( j );
    2566     Int maxLatencyIncreasePlus1  = sps->getMaxLatencyIncrease( j );
    2567 
    2568     if ( encoder )
    2569     {
    2570       assert( getDpbSize()->getMaxVpsDecPicBufferingMinus1(0, 0, j ) == maxDecPicBufferingMinus1 );
    2571       assert( getDpbSize()->getMaxVpsNumReorderPics       (0,    j ) == numReorderPics           );
    2572       assert( getDpbSize()->getMaxVpsLatencyIncreasePlus1 (0,    j ) == maxLatencyIncreasePlus1  );
    2573     }
    2574     else
    2575     {
    2576       getDpbSize()->setMaxVpsDecPicBufferingMinus1(0, 0, j, maxDecPicBufferingMinus1 );
    2577       getDpbSize()->setMaxVpsNumReorderPics       (0,    j, numReorderPics           );
    2578       getDpbSize()->setMaxVpsLatencyIncreasePlus1 (0,    j, maxLatencyIncreasePlus1  );       
    2579     }     
    2580   }
    2581 }
    2582 #endif
    25832407Bool TComVPS::getAltOutputLayerFlagVar( Int i )
    25842408{
     
    25942418}
    25952419
    2596 #if !H_MV_HLS10_MAXNUMPICS
    2597 Int TComVPS::getMaxNumPics( Int layerId )
    2598 {
    2599   Int maxNumPics = MAX_INT;
    2600   for( Int olsIdx = 0; olsIdx < getNumOutputLayerSets(); olsIdx++)
    2601   {
    2602     Int lsIdx = olsIdxToLsIdx( olsIdx );
    2603     for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ )
    2604     {
    2605       if( getLayerSetLayerIdList(lsIdx, j ) ==  layerId )
    2606       {
    2607         Int maxSL = getMaxSubLayersInLayerSetMinus1( lsIdx );
    2608         maxNumPics = std::min( maxNumPics, getDpbSize()->getMaxVpsDecPicBufferingMinus1( olsIdx , j,  maxSL ) );
    2609       }
    2610     }
    2611   }
    2612   assert( maxNumPics != MAX_INT );
    2613   return maxNumPics;
    2614 }
    2615 #endif
    2616 
    2617 #if !H_MV_HLS10_REF_PRED_LAYERS
    2618 Void TComVPS::xSetRefLayerFlags( Int currLayerId )
    2619 {
    2620   for( Int j = 0; j < getNumDirectRefLayers( currLayerId ); j++ )
    2621   {
    2622     Int refLayerId = m_refLayerId[ currLayerId ][ j ];
    2623     m_recursiveRefLayerFlag[ currLayerId ][ refLayerId ] = 1;
    2624     for( Int k = 0; k < MAX_NUM_LAYER_IDS; k++ )
    2625     {
    2626       m_recursiveRefLayerFlag[ currLayerId ][ k ] = m_recursiveRefLayerFlag[ currLayerId ][ k ]  ||  m_recursiveRefLayerFlag[ refLayerId ][ k ];
    2627     }
    2628   }
    2629 }
    2630 
    2631 #endif
    2632 
    2633 #if H_MV_HLS10_PTL_FIX
     2420
     2421
    26342422Int TComVPS::inferProfileTierLevelIdx(Int i, Int j)
    26352423{
     
    26512439  return ptlIdx;
    26522440}
    2653 #endif
    2654 
    2655 #if H_MV_HLS10_ADD_LAYERSETS
     2441
    26562442Void TComVPS::deriveAddLayerSetLayerIdList(Int i)
    26572443{
     
    26762462}
    26772463
    2678 #endif
    2679 
    2680 #if H_MV_HLS10_NESSECARY_LAYER
     2464
    26812465Void TComVPS::deriveNecessaryLayerFlags(Int olsIdx)
    26822466{
     
    27092493  }
    27102494}
    2711 #endif
    2712 
    2713 #if H_MV_HLS10_ADD_LAYERSETS
     2495
    27142496Void TComVPS::printPTL()
    27152497{
     
    27572539#endif
    27582540
    2759 #if H_MV_HLS10_AUX
    27602541  vector<Int> viewOrderIndex;
    27612542  vector<Int> auxId;
    27622543  vector<Int> dependencyId;
    27632544  vector<Int> viewId;
    2764 #endif
    27652545  for (Int i = 0; i <= getMaxLayersMinus1(); i++ )
    27662546  {
    27672547    fullArray.push_back( getMaxLayersMinus1() + 1 );
    27682548    range.push_back( i );
    2769 #if H_MV_HLS10_AUX     
    27702549    viewOrderIndex.push_back( getViewIndex   ( i ) );
    27712550    dependencyId  .push_back( getDependencyId( i ) );
     
    27742553#if H_3D 
    27752554    depthId.push_back( getDepthId( i ) );
    2776 #endif
    27772555#endif
    27782556  }
     
    27872565}
    27882566
    2789 #if H_MV_HLS10_AUX
    27902567Void TComVPS::printScalabilityId()
    27912568{
     
    28252602  std::cout << std::endl;
    28262603}
    2827 #endif
    28282604
    28292605Void TComVPS::printLayerSets()
     
    28802656}
    28812657
    2882 #endif
    28832658
    28842659#endif // H_MV
     
    29102685, m_pcmLog2MaxSize            (  5)
    29112686, m_uiPCMLog2MinSize          (  7)
    2912 #if !MTK_I0099_VPS_EX2
    2913 #if H_3D_QTLPC
    2914 , m_bUseQTL                   (false)
    2915 , m_bUsePC                    (false)
    2916 #endif
    2917 #endif
    29182687, m_bitDepthY                 (  8)
    29192688, m_bitDepthC                 (  8)
     
    29642733#endif
    29652734
    2966 #if !H_MV_HLS10_PPS
    2967   m_numScaledRefLayerOffsets = 0;
    2968 
    2969   for (Int i = 0; i < MAX_NUM_SCALED_REF_LAYERS; i++ )
    2970   {
    2971     m_scaledRefLayerId             [i] = -1;
    2972   }
    2973 
    2974   for (Int i = 0; i < MAX_NUM_LAYERS; i++ )
    2975   {
    2976     m_scaledRefLayerLeftOffset     [i] = 0;
    2977     m_scaledRefLayerTopOffset      [i] = 0;
    2978     m_scaledRefLayerRiFghtOffset    [i] = 0;
    2979     m_scaledRefLayerBottomOffset   [i] = 0;
    2980   }
    2981 #endif
    29822735#endif
    29832736}
     
    31202873, m_entropyCodingSyncEnabledFlag   (false)
    31212874, m_loopFilterAcrossTilesEnabledFlag  (true)
    3122 , m_uniformSpacingFlag           (0)
    3123 , m_iNumColumnsMinus1            (0)
    3124 , m_puiColumnWidth               (NULL)
    3125 , m_iNumRowsMinus1               (0)
    3126 , m_puiRowHeight                 (NULL)
    3127 , m_iNumSubstreams             (1)
     2875, m_uniformSpacingFlag           (false)
     2876, m_numTileColumnsMinus1         (0)
     2877, m_numTileRowsMinus1            (0)
     2878, m_numSubstreams               (1)
    31282879, m_signHideFlag(0)
    31292880, m_cabacInitPresentFlag        (false)
     
    31582909TComPPS::~TComPPS()
    31592910{
    3160   if( m_iNumColumnsMinus1 > 0 && m_uniformSpacingFlag == 0 )
    3161   {
    3162     if (m_puiColumnWidth) delete [] m_puiColumnWidth;
    3163     m_puiColumnWidth = NULL;
    3164   }
    3165   if( m_iNumRowsMinus1 > 0 && m_uniformSpacingFlag == 0 )
    3166   {
    3167     if (m_puiRowHeight) delete [] m_puiRowHeight;
    3168     m_puiRowHeight = NULL;
    3169   }
    31702911  delete m_scalingList;
    31712912}
     
    31862927    // allocate some memory and initialize with default mapping
    31872928    m_iNumDepthmapValues[i] = ((1 << m_uiDepthViewBitDepth)-1)+1;
    3188 #if !FIX_TICKET_77
    3189     m_iBitsPerDepthValue[i] = numBitsForValue(m_iNumDepthmapValues[i]);
    3190 #endif
    31912929    m_iDepthValue2Idx[i]    = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);
    31922930    m_iIdx2DepthValue[i]    = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);
     
    32773015  // update DLT variables
    32783016  m_iNumDepthmapValues[layerIdInVps] = iNumDepthValues;
    3279 #if !FIX_TICKET_77
    3280   m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]);
    3281 #endif
    3282 }
    3283 
    3284 #if H_3D_DELTA_DLT
     3017}
     3018
    32853019Void TComDLT::getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum )
    32863020{
     
    33473081  setDepthLUTs(layerIdInVps, aiIdx2DepthValue, uiNumDepthValues);
    33483082}
    3349 #endif
    33503083
    33513084#endif
     
    33543087Void TComSPS::inferRepFormat( TComVPS* vps, Int layerIdCurr )
    33553088{
    3356 #if H_MV_HLS10_MULTILAYERSPS
    33573089  if ( getMultiLayerExtSpsFlag() )
    3358 #else
    3359   if ( layerIdCurr > 0 )
    3360 #endif
    33613090  {
    33623091    Int            repFormatIdx = getUpdateRepFormatFlag() ?  getSpsRepFormatIdx() : vps->getVpsRepFormatIdx( vps->getLayerIdInVps( layerIdCurr ) ) ;
     
    33743103    setBitDepthC             ( repFormat->getBitDepthVpsChromaMinus8() + 8 );
    33753104    setQpBDOffsetC           ( (Int) (6* ( getBitDepthC() -8 ) ) );
    3376  #if H_MV_HLS10_GEN_VSP_CONF_WIN
    33773105    Window &spsConf    = getConformanceWindow();   
    33783106
     
    33833111    spsConf.setWindowTopOffset   ( repFormat->getConfWinVpsTopOffset()     );
    33843112    spsConf.setWindowBottomOffset( repFormat->getConfWinVpsBottomOffset()  );   
    3385 #endif
    3386 
    3387 #if H_MV_HLS10_MULTILAYERSPS
     3113
    33883114   if ( getMultiLayerExtSpsFlag() && getUpdateRepFormatFlag() )
    3389 #else
    3390    if ( getLayerId() > 0 && getUpdateRepFormatFlag() )
    3391 #endif
    33923115    {
    33933116      assert( getChromaFormatIdc()      <=  repFormat->getChromaFormatVpsIdc()         );
     
    34233146  const std::vector<Int>& targetDecLayerIdList = vps->getTargetDecLayerIdList( vps->olsIdxToLsIdx( targetOptLayerSetIdx ));
    34243147
    3425 #if H_MV_HLS10_MULTILAYERSPS
    34263148  if ( getMultiLayerExtSpsFlag() )
    3427 #else
    3428   if (getLayerId() > 0 )
    3429 #endif
    34303149  {
    34313150    Int layerIdx = 0;         
     
    34453164      Int maxDecPicBufferingMinus1 = vps->getDpbSize()->getMaxVpsDecPicBufferingMinus1( targetOptLayerSetIdx, layerIdx, i ) ;
    34463165
    3447 #if H_MV_HLS10_MULTILAYERSPS
    34483166      // This preliminary fix needs to be checked.
    34493167      Int maxNumReorderPics       = vps->getDpbSize()->getMaxVpsNumReorderPics( targetOptLayerSetIdx, i );
    34503168      Int maxLatencyIncreasePlus1 = vps->getDpbSize()->getMaxVpsLatencyIncreasePlus1( targetOptLayerSetIdx, i );
    3451 #endif
    34523169      if ( encoder )     
    34533170      {
    34543171        assert( getMaxDecPicBuffering( i ) - 1 == maxDecPicBufferingMinus1 );
    3455 #if H_MV_HLS10_MULTILAYERSPS
    34563172        // This preliminary fix needs to be checked.
    34573173        assert( getNumReorderPics( i )     == maxNumReorderPics       );
    34583174        assert( getMaxLatencyIncrease( i ) == maxLatencyIncreasePlus1 );
    3459 #endif   
    34603175
    34613176      }
    34623177      else
    34633178      {
    3464 #if !H_MV_HLS10_MULTILAYERSPS
    3465         setMaxDecPicBuffering(i, maxDecPicBufferingMinus1 + 1 );
    3466 #else
    34673179        // This preliminary fix needs to be checked.
    34683180        setMaxDecPicBuffering( maxDecPicBufferingMinus1 + 1 , i);
    34693181        setNumReorderPics    ( maxNumReorderPics, i );
    34703182        setMaxLatencyIncrease( maxLatencyIncreasePlus1 - 1 , i);
    3471 #endif
    34723183      }
    34733184    }   
     
    34773188Void TComSPS::checkRpsMaxNumPics( TComVPS* vps, Int currLayerId )
    34783189{
    3479 #if !H_MV_HLS10_MAXNUMPICS
    3480   // In spec, when rps is in SPS, nuh_layer_id of SPS is used instead
    3481   // of nuh_layer_id of slice (currLayerId), this seems to be a bug.
    3482 #endif
    34833190  for (Int i = 0; i < getRPSList()->getNumberOfReferencePictureSets(); i++ )
    34843191  {
     
    34863193    if ( !rps->getInterRPSPrediction() )
    34873194    {
    3488 #if H_MV_HLS10_MAXNUMPICS
    34893195      rps->checkMaxNumPics( vps->getVpsExtensionFlag(), MAX_INT, getLayerId(), getMaxDecPicBuffering( getSpsMaxSubLayersMinus1() ) - 1 );   // INT_MAX to be replaced by DpbSize
    3490 #else
    3491       rps->checkMaxNumPics( vps->getVpsExtensionFlag(), vps->getMaxNumPics( currLayerId ),
    3492         getLayerId(), getMaxDecPicBuffering( getSpsMaxSubLayersMinus1() ) - 1 ); 
    3493 #endif
    3494     }
    3495   }
    3496 }
    3497 
    3498 #if H_MV_HLS10_MULTILAYERSPS
     3196    }
     3197  }
     3198}
     3199
    34993200Void TComSPS::inferSpsMaxSubLayersMinus1(Bool atPsActivation, TComVPS* vps)
    35003201{
     
    35173218  }
    35183219}
    3519 #endif
    35203220#endif
    35213221
     
    38803580{
    38813581  TComVPS* vps = getVPS();
    3882 #if H_MV_HLS10_REF_PRED_LAYERS
    38833582  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
    3884 #else
    3885   Int refLayerIdx = vps->getLayerIdInVps( vps->getRefLayerId( getLayerId(), i ) );
    3886 #endif
    38873583
    38883584  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer() )  && ( getTLayer() == 0  ) &&
     
    39553651Int TComSlice::getRefPicLayerId( Int i )
    39563652{
    3957 #if H_MV_HLS10_REF_PRED_LAYERS
    39583653  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
    3959 #else
    3960   return getVPS()->getRefLayerId( getLayerId(), getInterLayerPredLayerIdc( i ) );
    3961 #endif
    39623654}
    39633655
     
    40653757      m_bApplyIC = true;
    40663758      Int refLayer = curLayer-1;
    4067 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     3759
    40683760      Int ICEnableCandidate = getICEnableCandidate(refLayer);
    40693761      Int ICEnableNum = getICEnableNum(refLayer);
     
    40833775      setICEnableCandidate(curLayer, 0);
    40843776      setICEnableNum(curLayer, 0);
    4085 #else
    4086       if( (refLayer>=0) && (g_aICEnableCANDIDATE[refLayer]>0) )
    4087       {   
    4088         Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]);
    4089 
    4090         if( ratio > IC_LOW_LATENCY_ENCODING_THRESHOLD)
    4091 {
    4092           m_bApplyIC=true;
    4093         }
    4094         else
    4095         {
    4096           m_bApplyIC=false;
    4097         }
    4098       }
    4099       g_aICEnableNUM[curLayer]=0;
    4100       g_aICEnableCANDIDATE[curLayer]=0;
    4101       g_lastlayer=getDepth();
    4102 #endif
    41033777    }
    41043778  }
     
    42103884
    42113885#if H_3D_DDD
    4212 #if LGE_FCO_I0116
     3886#if H_3D_FCO
    42133887  if( getIsDepth() && getViewIndex() > 0 && getVPS()->getMPIFlag(layerIdInVPS))
    42143888#else
     
    46964370, m_nonPackedConstraintFlag(false)
    46974371, m_frameOnlyConstraintFlag(false)
    4698 #if H_MV_HLS10_PTL
     4372#if H_MV
    46994373  , m_max12bitConstraintFlag      ( false )
    47004374  , m_max10bitConstraintFlag      ( false )
     
    47124386}
    47134387
    4714 #if H_MV_HLS10_PTL_INFER_FIX
     4388#if H_MV
    47154389Bool ProfileTierLevel::getV2ConstraintsPresentFlag()
    47164390{
     
    47574431  copyV2ConstraintFlags      ( ptlRef );
    47584432}
    4759 
    47604433#endif
    47614434
     
    47674440
    47684441#if H_MV
    4769 #if !H_MV_HLS10_PTL_INFER_FIX
    4770 Void TComPTL::copyLevelFrom( TComPTL* source )
    4771 {
    4772   getGeneralPTL()->setLevelIdc( source->getGeneralPTL()->getLevelIdc() );
    4773   for( Int subLayer = 0; subLayer < 6; subLayer++ )
    4774   {
    4775     setSubLayerLevelPresentFlag( subLayer, source->getSubLayerLevelPresentFlag( subLayer ) );
    4776     getSubLayerPTL( subLayer )->setLevelIdc( source->getSubLayerPTL( subLayer )->getLevelIdc() );
    4777   }
    4778 }
    4779 #else
    47804442Void TComPTL::inferGeneralValues(Bool profilePresentFlag, Int k, TComPTL* refPTL)
    47814443{
     
    48654527}
    48664528
    4867 #endif
    48684529#endif
    48694530//! \}
     
    49084569
    49094570  m_vpsVuiBspHrdPresentFlag = false;
    4910 #if H_MV_HLS10_VPS_VUI_BSP
    49114571  m_vpsVuiBspHrdParameters  = NULL;
    4912 #else
    4913   m_vpsVuiBspHrdParameters  = new TComVpsVuiBspHrdParameters();
    4914 #endif
    49154572}
    49164573
     
    49584615}
    49594616
    4960 #if !H_MV_HLS10_VPS_VUI_BSP
    4961 Void TComVpsVuiBspHrdParameters::checkLayerInBspFlag( TComVPS* vps, Int h )
    4962 {
    4963   // It is a requirement of bitstream conformance that bitstream partition with index j shall not include
    4964   // direct or indirect reference layers of any layers in bitstream partition i for any values of i and j
    4965   // in the range of 0 to num_bitstream_partitions[ h ] ?1, inclusive, such that i is less than j.
    4966 
    4967   for ( Int partJ = 0; partJ < getNumBitstreamPartitions( h ); partJ++ )
    4968   {       
    4969     for ( Int partI = 0; partI < partJ; partI++ )
    4970     {
    4971       for ( Int layerJ = 0; layerJ < vps->getMaxLayersMinus1(); layerJ++ )
    4972       {
    4973         if ( m_layerInBspFlag[ h ][partJ][layerJ ] )
    4974         {
    4975           for ( Int layerI = 0; layerI < vps->getMaxLayersMinus1(); layerI++ )
    4976           {
    4977             if ( m_layerInBspFlag[ h ][partI][layerI] )
    4978             {
    4979               assert( !vps->getInDirectDependencyFlag( layerI, layerJ ) );
    4980             }
    4981           }
    4982         }
    4983       }
    4984     }
    4985   }
    4986 
    4987   // ---------------
    4988   // To be added:
    4989   // When vps_base_layer_internal_flag is equal to 0 and layer_in_bsp_flag[ h ][ i ][ 0 ] is equal to 1 for any value of h in the
    4990   // range of 1 to vps_num_layer_sets_minus1, inclusive, and any value of i in the range of 0 to num_bitstream_partitions[ h ] - 1,
    4991   // inclusive, the value of layer_in_bsp_flag[ h ][ i ][ j ] for at least one value of j in the range of 1 to
    4992   // NumLayersInIdList[ h ] - 1, inclusive, shall be equal to 1.
    4993   // ---------------
    4994 
    4995 
    4996   // When num_bitstream_partitions[ h ] is equal to 1 for any value of h in the range 1 to vps_num_layer_set_minus1, inclusive,
    4997   // the value of layer_in_bsp_flag[ h ][ 0 ][ j ] should be equal to 0 for at least one value of j in the range 0 to
    4998   // NumLayersInIdList[ h ] ? 1, inclusive.
    4999 
    5000 
    5001   if ( getNumBitstreamPartitions( h ) == 1 )
    5002   {
    5003     Bool atLeastOneZero = false;
    5004     for ( Int j = 0; j <= vps->getNumLayersInIdList( h ) - 1; j++ )
    5005     {
    5006       atLeastOneZero = atLeastOneZero || !getLayerInBspFlag( h, 0, j );
    5007     }   
    5008     assert( atLeastOneZero );
    5009   }
    5010 
    5011  
    5012   // For any value of h in the range 1 to vps_num_layer_set_minus1, inclusive, the value of layer_in_bsp_flag[ h ][ i ][ j ]
    5013   // shall be equal to 1 for at most one value of i in the range of 0 to num_bitstream_partitions[ h ] ? 1, inclusive.
    5014 
    5015   for ( Int j = 0; j <= vps->getNumLayersInIdList( h ) - 1; j++ )
    5016   {
    5017     Int numLayerInBsp = 0;
    5018     for ( Int i = 0; i <= getNumBitstreamPartitions( h ) - 1; i++ )
    5019     {
    5020       numLayerInBsp += ( getLayerInBspFlag( h, i, j ) ? 1 : 0 ); 
    5021     }   
    5022     assert( numLayerInBsp <= 1 );
    5023   }
    5024 
    5025 }
    5026 
    5027 Void TComVpsVuiBspHrdParameters::checkBspCombHrdAndShedIdx( TComVPS* vps, Int h, Int i, Int j )
    5028 {
    5029   // bsp_comb_hrd_idx
    5030   assert( getBspCombSchedIdx(h, i, j ) >= 0 );
    5031   assert( getBspCombSchedIdx(h, i, j ) <= getVpsNumBspHrdParametersMinus1() );
    5032 
    5033   // bsp_comb_sched_idx
    5034   assert( getBspCombSchedIdx(h, i, j ) >= 0 );
    5035 
    5036   //* This check needs to activated,  when HighestTid is available here   
    5037   //  assert(  getBspCombSchedIdx(h, i, j ) <= vps->getHrdParameters( getBspCombHrdIdx( h, i, j ) )->getCpbCntMinus1( highestTid ) );
    5038 }
    5039 #endif
    5040 
    5041 #if H_MV_HLS10_VPS_VUI_BSP
     4617
    50424618
    50434619TComVpsVuiBspHrdParameters::~TComVpsVuiBspHrdParameters()
     
    51374713}
    51384714
    5139 #endif
    51404715
    51414716Void TComVUI::inferVideoSignalInfo( TComVPS* vps, Int layerIdCurr )
     
    51734748      for (Int k = 0; k < MAX_NUM_LAYER_IDS; k++ )
    51744749      {
    5175 #if H_MV_HLS10_ADD_LAYERSETS
    51764750        m_maxVpsDecPicBufferingMinus1[i][k][j] = MIN_INT;
    5177 #else
    5178         m_maxVpsDecPicBufferingMinus1[i][k][j] = 0;
    5179 #endif
    51804751      }
    51814752    }
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r1066 r1084  
    4545#include "TComRom.h"
    4646#include "TComList.h"
    47 #if H_MV_HLS10_GEN_FIX
    4847#if H_MV
    4948#include <ios>
    5049#include <iostream>
    5150#include <iomanip>
    52 #endif
    5351#endif
    5452//! \ingroup TLibCommon
     
    207205  Bool m_frameOnlyConstraintFlag;
    208206 
    209 #if H_MV_HLS10_PTL
    210207#if H_MV
    211208  Bool m_max12bitConstraintFlag;
     
    220217  Bool m_inbldFlag;
    221218#endif
    222 #endif
    223219public:
    224220  ProfileTierLevel();
     
    252248
    253249#if H_MV
    254 #if H_MV_HLS10_PTL
    255250  Void setMax12bitConstraintFlag( Bool flag ) { m_max12bitConstraintFlag = flag; }
    256251  Bool getMax12bitConstraintFlag(  ) { return m_max12bitConstraintFlag; }
     
    281276  Void setInbldFlag( Bool flag ) { m_inbldFlag = flag; }
    282277  Bool getInbldFlag(  ) { return m_inbldFlag; }
    283 #endif
    284 #if H_MV_HLS10_PTL_INFER_FIX
    285278  Bool getV2ConstraintsPresentFlag(); 
    286279  Bool getInbldPresentFlag();
    287280  Void copyV2ConstraintFlags( ProfileTierLevel* ptlRef );
    288281  Void copyProfile( ProfileTierLevel* ptlRef );
    289 #endif
    290282#endif
    291283};
     
    310302  ProfileTierLevel* getSubLayerPTL(Int i)  { return &m_subLayerPTL[i]; }
    311303#if H_MV
    312 #if H_MV_HLS10_PTL_INFER_FIX
    313304  Void inferGeneralValues ( Bool profilePresentFlag  , Int k, TComPTL* refPTL );;
    314305  Void inferSubLayerValues( Int maxNumSubLayersMinus1, Int k, TComPTL* refPTL );;
    315 #else
    316   Void copyLevelFrom( TComPTL* source );
    317 #endif
    318306#endif
    319307};
     
    501489class TComVpsVuiBspHrdParameters
    502490{
    503 #if H_MV_HLS10_VPS_VUI_BSP
    504491
    505492  /* Not yet tested */
     
    563550  Void setHrdParametermeters( Int k, TComHRD* val  ) {  *(m_hrdParameters + k ) = *val; };
    564551  TComHRD* getHrdParametermeters( Int k ) {  return m_hrdParameters + k; };
    565 #else
    566 private:
    567   Int  m_vpsNumBspHrdParametersMinus1;
    568   Bool m_bspCprmsPresentFlag[MAX_NUM_BSP_HRD_PARAMETERS];
    569   Int  m_numBitstreamPartitions[MAX_VPS_OP_SETS_PLUS1];
    570   Bool m_layerInBspFlag[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_LAYERS];
    571   Int  m_numBspSchedCombinationsMinus1[MAX_VPS_OP_SETS_PLUS1];
    572   Int  m_bspCombHrdIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];
    573   Int  m_bspCombSchedIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];
    574   TComHRD* m_hrdParameters[MAX_NUM_BSP_HRD_PARAMETERS];
    575 public:
    576 
    577   Void setVpsNumBspHrdParametersMinus1( Int  val ) { m_vpsNumBspHrdParametersMinus1 = val; }
    578   Int  getVpsNumBspHrdParametersMinus1(  ) { return m_vpsNumBspHrdParametersMinus1; }
    579 
    580   Void setBspCprmsPresentFlag( Int i, Bool flag ) { m_bspCprmsPresentFlag[i] = flag; }
    581   Bool getBspCprmsPresentFlag( Int i ) { return m_bspCprmsPresentFlag[i]; }
    582 
    583   Void setNumBitstreamPartitions( Int h, Int  val ) { m_numBitstreamPartitions[h] = val; }
    584   Int  getNumBitstreamPartitions( Int h ) { return m_numBitstreamPartitions[h]; }
    585 
    586   Void setLayerInBspFlag( Int h, Int i, Int j, Bool flag ) { m_layerInBspFlag[h][i][j] = flag; }
    587   Bool getLayerInBspFlag( Int h, Int i, Int j ) { return m_layerInBspFlag[h][i][j]; }
    588   Void checkLayerInBspFlag ( TComVPS* vps, Int h ); 
    589 
    590   Void setNumBspSchedCombinationsMinus1( Int h, Int  val ) { m_numBspSchedCombinationsMinus1[h] = val; }
    591   Int  getNumBspSchedCombinationsMinus1( Int h ) { return m_numBspSchedCombinationsMinus1[h]; }
    592 
    593   Void setBspCombHrdIdx( Int h, Int i, Int j, Int  val ) { m_bspCombHrdIdx[h][i][j] = val; }
    594   Int  getBspCombHrdIdx( Int h, Int i, Int j ) { return m_bspCombHrdIdx[h][i][j]; }
    595   Int  getBspCombHrdIdxLen() { return gCeilLog2( getVpsNumBspHrdParametersMinus1() + 1);  };
    596 
    597 
    598   Void setBspCombSchedIdx( Int h, Int i, Int j, Int  val ) { m_bspCombSchedIdx[h][i][j] = val; }
    599   Int  getBspCombSchedIdx( Int h, Int i, Int j ) { return m_bspCombSchedIdx[h][i][j]; }
    600 
    601   Void checkBspCombHrdAndShedIdx( TComVPS* vps, Int h, Int i, Int j );
    602 
    603   Void setHrdParametermeters( Int k, TComHRD* val  ) {  m_hrdParameters[k] = val; };
    604   TComHRD* getHrdParametermeters( Int k ) {  return m_hrdParameters[k]; };
    605 #endif
    606552};
    607553
     
    630576  Bool m_wppNotInUseFlag;
    631577  Bool m_wppInUseFlag                [MAX_NUM_LAYERS];
    632 #if H_MV_HLS10_VPS_VUI
    633578  Bool m_singleLayerForNonIrapFlag;
    634579  Bool m_higherLayerIrapSkipFlag;
    635 #endif
    636580  Bool m_ilpRestrictedRefLayersFlag;
    637581  Int  m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS][MAX_NUM_LAYERS];
     
    708652  Bool getWppInUseFlag( Int i ) { return m_wppInUseFlag[i]; }
    709653
    710 #if H_MV_HLS10_VPS_VUI
    711654  Void setSingleLayerForNonIrapFlag( Bool flag ) { m_singleLayerForNonIrapFlag = flag; }
    712655  Bool getSingleLayerForNonIrapFlag(  ) { return m_singleLayerForNonIrapFlag; }
     
    714657  Void setHigherLayerIrapSkipFlag( Bool flag ) { m_higherLayerIrapSkipFlag = flag; }
    715658  Bool getHigherLayerIrapSkipFlag(  ) { return m_higherLayerIrapSkipFlag; }
    716 #endif
    717659
    718660  Void setIlpRestrictedRefLayersFlag( Bool flag ) { m_ilpRestrictedRefLayersFlag = flag; }
     
    750692  Int  m_bitDepthVpsLumaMinus8;
    751693  Int  m_bitDepthVpsChromaMinus8;
    752 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    753694  Bool m_conformanceWindowVpsFlag;
    754695  Int  m_confWinVpsLeftOffset;
     
    756697  Int  m_confWinVpsTopOffset;
    757698  Int  m_confWinVpsBottomOffset;
    758 #endif
    759699
    760700public:
    761701
    762 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    763702  TComRepFormat()
    764703  {
     
    769708  m_confWinVpsBottomOffset   = 0;
    770709  }; 
    771 #else
    772   TComRepFormat() { }; 
    773 #endif
    774710
    775711  Void setChromaAndBitDepthVpsPresentFlag( Bool flag ) { m_chromaAndBitDepthVpsPresentFlag = flag; }
     
    796732  Int  getBitDepthVpsChromaMinus8(  ) { return m_bitDepthVpsChromaMinus8; }
    797733
    798 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    799734  Void setConformanceWindowVpsFlag( Bool flag ) { m_conformanceWindowVpsFlag = flag; }
    800735  Bool getConformanceWindowVpsFlag(  ) { return m_conformanceWindowVpsFlag; }
     
    811746  Void setConfWinVpsBottomOffset( Int  val ) { m_confWinVpsBottomOffset = val; }
    812747  Int  getConfWinVpsBottomOffset(  ) { return m_confWinVpsBottomOffset; }
    813 #endif
    814748};
    815749
     
    834768
    835769  Void setMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j, Int  val ) { m_maxVpsDecPicBufferingMinus1[i][k][j] = val; }
    836   #if H_MV_HLS10_ADD_LAYERSETS
    837770  Int  getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { assert( m_maxVpsDecPicBufferingMinus1[i][k][j] >= 0 ); return m_maxVpsDecPicBufferingMinus1[i][k][j]; }     
    838   #else
    839   Int  getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { return m_maxVpsDecPicBufferingMinus1[i][k][j]; }
    840   #endif
    841771
    842772  Void setMaxVpsNumReorderPics( Int i, Int j, Int  val ) { m_maxVpsNumReorderPics[i][j] = val; }
     
    853783#if H_MV
    854784  Bool        m_vpsBaseLayerInternalFlag;
    855 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    856785  Bool        m_vpsBaseLayerAvailableFlag;
    857 #endif // H_MV_HLS10_GEN
    858786#endif
    859787
     
    925853  Int         m_layerSetIdxForOlsMinus1  [MAX_VPS_OUTPUTLAYER_SETS]; 
    926854  Bool        m_outputLayerFlag          [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1];
    927 #if H_MV_HLS10_PTL
    928855  Int         m_profileTierLevelIdx      [MAX_VPS_OUTPUTLAYER_SETS ][MAX_NUM_LAYERS];
    929 #else 
    930   Int         m_profileLevelTierIdx      [MAX_VPS_OUTPUTLAYER_SETS ];
    931 #endif
    932856  Bool        m_altOutputLayerFlag       [MAX_VPS_OUTPUTLAYER_SETS];
    933857  Bool        m_repFormatIdxPresentFlag;
     
    958882  // VPS EXTENSION SEMANTICS VARIABLES
    959883  Int         m_layerIdInVps             [MAX_NUM_LAYERS   ];
    960 #if H_MV_HLS10_REF_PRED_LAYERS
    961884  Int         m_dependencyFlag           [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    962 #endif
    963885
    964886  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
    965 #if H_MV_HLS10_REF_PRED_LAYERS
    966887  Int         m_idDirectRefLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
    967 #else
    968   Int         m_refLayerId               [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
    969 #endif
    970888
    971889  Int         m_numRefLayers             [MAX_NUM_LAYER_IDS];
    972 #if H_MV_HLS10_REF_PRED_LAYERS
    973890  Int         m_idRefLayer               [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
    974 #endif
    975891
    976892
    977893  Int         m_numPredictedLayers       [MAX_NUM_LAYERS ];
    978 #if !H_MV_HLS10_REF_PRED_LAYERS
    979   Int         m_predictedLayerId         [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];
    980 #else
    981894  Int         m_idPredictedLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];
    982 #endif
    983895  Int         m_numIndependentLayers;
    984896  Int         m_numLayersInTreePartition [MAX_NUM_LAYER_IDS];
    985897  Int         m_treePartitionLayerIdList [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];
    986 #if H_MV_HLS10_REF_PRED_LAYERS
    987898  Bool        m_recursiveRefLayerFlag    [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS];
    988   #endif
    989899  Int         m_viewIndex                [MAX_NUM_LAYERS   ];
    990900 
     
    993903  std::vector< std::vector< Int> >       m_layerSetLayerIdList;
    994904
    995 #if H_MV_HLS10_NESSECARY_LAYER
    996905  Int        m_numNecessaryLayers        [MAX_VPS_OUTPUTLAYER_SETS];
    997906  Bool       m_necessaryLayerFlag        [MAX_VPS_OUTPUTLAYER_SETS][MAX_NUM_LAYERS];
    998 #endif
    999907
    1000908  Int         xGetDimBitOffset( Int j );
    1001 #if H_MV_HLS10_REF_PRED_LAYERS
    1002909  Void        xSetRefLayerFlags( Int currLayerId );
    1003 #endif
    1004910  // VPS EXTENSION 2 SYNTAX ELEMENTS
    1005911#if H_3D_ARP
     
    1009915#if H_3D_IV_MERGE
    1010916  Bool        m_ivMvPredFlag             [ MAX_NUM_LAYERS ];
    1011 #if SEC_HLS_CLEANUP_I0100
    1012917  Bool        m_ivMvScalingFlag          [ MAX_NUM_LAYERS ];
    1013 #endif
    1014918#if H_3D_SPIVMP
    1015919  Int         m_iSubPULog2Size           [MAX_NUM_LAYERS   ];
    1016 #if MTK_I0099_VPS_EX2
    1017920  Int         m_iSubPUMPILog2Size        [MAX_NUM_LAYERS   ];
    1018 #else
    1019   Int         m_iSubPUMPILog2Size;
    1020 #endif
    1021 #endif
    1022 #endif
    1023 #if MTK_I0099_VPS_EX2
     921#endif
     922#endif
     923#if H_3D_QTLPC
    1024924  Bool        m_bLimQtPredFlag           [ MAX_NUM_LAYERS ];
    1025925#endif
     
    1031931#endif
    1032932  Bool        m_vpsDepthModesFlag        [MAX_NUM_LAYERS   ];
    1033 #if SEPARATE_FLAG_I0085
     933#if H_3D
    1034934  Bool        m_bIVPFlag                 [MAX_NUM_LAYERS   ];
    1035935#endif
    1036 
    1037936#if H_3D
    1038937  UInt        m_uiCamParPrecision;
     
    1041940  Int         ***m_aaaiCodedScale ;
    1042941  Int         ***m_aaaiCodedOffset;
    1043 
    1044 #if !SEC_HLS_CLEANUP_I0100
    1045   Bool        m_ivMvScalingFlag;
    1046 #endif
    1047 
    1048942#endif
    1049943#if H_3D_INTER_SDC
     
    1081975  Void    setVpsBaseLayerInternalFlag( Bool flag ) { m_vpsBaseLayerInternalFlag = flag; }
    1082976  Bool    getVpsBaseLayerInternalFlag(  )          { return m_vpsBaseLayerInternalFlag; }
    1083 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    1084977  Void    setVpsBaseLayerAvailableFlag( Bool flag ) { m_vpsBaseLayerAvailableFlag = flag; }
    1085978  Bool    getVpsBaseLayerAvailableFlag(  )          { return m_vpsBaseLayerAvailableFlag; }
    1086979#endif
    1087 #endif
    1088980
    1089981  UInt    getMaxTLayers  ()                   { return m_uiMaxTLayers;   }
     
    1092984#if H_MV   
    1093985  UInt    getMaxSubLayersMinus1()             { return m_uiMaxTLayers - 1;  }  // For consistency with draft spec
    1094 #if H_MV_HLS10_GEN_FIX
    1095986  Void    setMaxSubLayersMinus1(UInt val)     { m_uiMaxTLayers = (val + 1); };
    1096 #endif
    1097987  UInt    getMaxLayersMinus1()                { return m_uiMaxLayersMinus1;  };
    1098988  Void    setMaxLayersMinus1(UInt l)          { m_uiMaxLayersMinus1 = l; }
     
    11341024
    11351025#if H_MV
    1136 #if H_MV_HLS10_PTL
    11371026  TComPTL* getPTL( Int idx = 0 ) { return &m_pcPTL[idx]; }
    1138 #else
    1139   TComPTL* getPTL( Int layerSet = 0 ) { return &m_pcPTL[layerSet]; }
    1140 #endif
    11411027#else
    11421028  TComPTL* getPTL() { return &m_pcPTL; }
     
    12181104  Void    setLayerSetIdxForOlsMinus1( Int outLayerSetIdx, Int val )        { m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]  = val; }
    12191105  Int     getLayerSetIdxForOlsMinus1( Int outLayerSetIdx )                 { return m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]; }
    1220 #if VPS_MISC_UPDATES
    12211106  Int     getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx )              { return gCeilLog2( getNumLayerSets() ); }
    1222 #endif
    12231107
    12241108  Void    setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag )       { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; }
     
    12271111  Bool    inferOutputLayerFlag( Int i, Int j );
    12281112
    1229 #if H_MV_HLS10_PTL
    12301113  Void    setProfileTierLevelIdx( Int i, Int j, Int val )                  { m_profileTierLevelIdx[ i ][ j ] = val; }
    12311114  Int     getProfileTierLevelIdx( Int i, Int j )                           { return m_profileTierLevelIdx[ i ][ j ]; }
    1232 #if H_MV_HLS10_PTL_FIX
    12331115  Int     inferProfileTierLevelIdx( Int i, Int j );
    1234 #endif
    1235 #else
    1236   Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx ] = val; }
    1237   Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; }
    1238 #endif
    12391116 
    12401117  Void    setAltOutputLayerFlag( Int i, Bool flag )                        { m_altOutputLayerFlag[i] = flag; }
     
    12661143  TComDpbSize* getDpbSize( )                                               { return m_dpbSize;}
    12671144 
    1268 #if !H_MV_HLS10_ADD_LAYERSETS 
    1269   Void    inferDbpSizeLayerSetZero( TComSPS* sps, Bool encoder );
    1270 #endif
    12711145
    12721146  Void    setPocLsbNotPresentFlag( Int i, Bool flag )                      { m_pocLsbNotPresentFlag[i] = flag; }
     
    12991173
    13001174  Int     getViewIndex    ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
    1301 #if H_MV_HLS10_AUX
    13021175  Int     getAuxId        ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID  ); }   
    13031176  Int     getDependencyId ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID  ); }   
    1304 #endif
    13051177  Int     getNumViews();
    13061178
    1307 #if H_MV_HLS10_REF_PRED_LAYERS
    13081179  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
    1309 #endif
    13101180  Int     getNumDirectRefLayers( Int layerIdInNuh )                        { return m_numDirectRefLayers[ layerIdInNuh ];  };                               
    1311 #if !H_MV_HLS10_REF_PRED_LAYERS
    1312   Int     getRefLayerId        ( Int layerIdInNuh, Int idx );;
    1313 #endif
    13141181  Int     getNumRefLayers            ( Int i )        { return m_numRefLayers[i]; }
    13151182  Int     getNumPredictedLayers      ( Int i )        { return m_numPredictedLayers[i]; }
    13161183
    1317 #if !H_MV_HLS10_REF_PRED_LAYERS 
    1318   Int     getPredictedLayerId        ( Int i, Int j ) { return m_predictedLayerId[i][j]; }
    1319 #else
    13201184  Int     getIdRefLayer              ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers      ( i )); return m_idRefLayer      [i][j]; }
    13211185  Int     getIdPredictedLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; }
    13221186  Int     getIdDirectRefLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; }
    1323 #endif
    13241187  Int     getNumIndependentLayers    (  )             { return m_numIndependentLayers; }
    13251188  Int     getNumLayersInTreePartition( Int i )        { return m_numLayersInTreePartition[i]; }
     
    13281191  Int     getNumLayerSets( )                                               { return getVpsNumLayerSetsMinus1() + 1 + getNumAddLayerSets();  }; 
    13291192 
    1330 #if H_MV_HLS10_ADD_LAYERSETS
    13311193  Int     getFirstAddLayerSetIdx()                    { return getVpsNumLayerSetsMinus1() + 1; }
    13321194  Int     getLastAddLayerSetIdx()                     { return getFirstAddLayerSetIdx() + getNumAddLayerSets() - 1; }
    1333 #endif
    13341195  Bool    checkVPSExtensionSyntax();
    13351196  Int     scalTypeToScalIdx   ( ScalabilityType scalType );
    13361197
    1337 #if H_MV_HLS10_PTL
    13381198  Int     getProfileTierLevelIdxLen()                                      { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    1339 #else
    1340   Int     getProfileLevelTierIdxLen()                                      { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };       
    1341 #endif
    13421199  Int     getVpsRepFormatIdxLen()                                          { return gCeilLog2( getVpsNumRepFormatsMinus1() + 1 ); };       
    13431200
     
    13501207  Void    deriveLayerSetLayerIdList();
    13511208
    1352 #if H_MV_HLS10_ADD_LAYERSETS
    13531209  Int     olsIdxToLsIdx( Int i )                                           { return ( i < getNumLayerSets() ) ? i  : getLayerSetIdxForOlsMinus1( i ) + 1 ; };
    1354 #else
    1355   Int     olsIdxToLsIdx( Int i )                                           { return ( i <= getVpsNumLayerSetsMinus1() ) ? i  : getLayerSetIdxForOlsMinus1( i ) + 1 ; };
    1356 #endif
    13571210  Void    initTargetLayerIdLists  ( );
    13581211  Void    deriveTargetLayerIdList ( Int i );
     
    13631216  Int     getOlsHighestOutputLayerId( Int i )                              { return getTargetOptLayerIdList( i ).back(); }; 
    13641217
    1365 #if H_MV_HLS10_ADD_LAYERSETS
    13661218  Void    deriveAddLayerSetLayerIdList( Int i );
    1367 #endif
    1368 #if H_MV_HLS10_NESSECARY_LAYER
    13691219  Void    deriveNecessaryLayerFlags( Int olsIdx );;
    13701220  Int     getNecessaryLayerFlag( Int i, Int j )                            { AOF( i >= 0 && i < getNumOutputLayerSets() ); AOF( j >= 0 && j < getNumLayersInIdList( olsIdxToLsIdx( i ) )  );  return m_necessaryLayerFlag[i][j]; }; 
    1371 #endif
    13721221
    13731222  Int     getMaxSubLayersInLayerSetMinus1( Int i );
     
    13801229
    13811230  // helpers
    1382 #if !H_MV_HLS10_REF_PRED_LAYERS
    1383   Bool    getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth = 0 );
    1384 #endif
    1385 #if !H_MV_HLS10_MAXNUMPICS
    1386   Int     getMaxNumPics( Int layerId );
    1387 #endif
    1388 #if H_MV_HLS10_ADD_LAYERSETS
    13891231  Void    printPTL();
    13901232  Void    printLayerDependencies();
    1391 #if H_MV_HLS10_AUX
    13921233  Void    printScalabilityId();;
    1393 #endif
    13941234  Void    printLayerSets();;
    13951235
     
    14361276    xPrintArray( name, 1, idx2, numElemDim2, vec2, printNumber, false );
    14371277  }
    1438 #endif
    14391278
    14401279
     
    14701309  Int     getSubPULog2Size(Int layerIdInVps)           { return m_iSubPULog2Size[layerIdInVps]; }
    14711310  Void    setSubPULog2Size(Int layerIdInVps, Int u)    { m_iSubPULog2Size[layerIdInVps] = u;}
    1472 #if MTK_I0099_VPS_EX2
    14731311  Int     getSubPUMPILog2Size(Int layerIdInVps)           { return m_iSubPUMPILog2Size[layerIdInVps]; }
    14741312  Void    setSubPUMPILog2Size(Int layerIdInVps, Int u)    { m_iSubPUMPILog2Size[layerIdInVps] = u;}
    1475 #else
    1476   Int     getSubPUMPILog2Size( )           { return m_iSubPUMPILog2Size; }
    1477   Void    setSubPUMPILog2Size( Int u )     { m_iSubPUMPILog2Size = u;    }
    1478 #endif
    1479 #endif
    1480 #endif
    1481 #if MTK_I0099_VPS_EX2
     1313#endif
     1314#endif
     1315#if H_3D_QTLPC
    14821316  Void    setLimQtPredFlag    ( Int layerIdInVps, Bool val )  { m_bLimQtPredFlag[ layerIdInVps ] = val; }
    14831317  Bool    getLimQtPredFlag    ( Int layerIdInVps ) { return m_bLimQtPredFlag[layerIdInVps];}
     
    14931327  Void    setVpsDepthModesFlag( Int layerIdInVps, Bool val )               { m_vpsDepthModesFlag[ layerIdInVps ] = val; }
    14941328  Bool    getVpsDepthModesFlag( Int layerIdInVps )                         { return m_vpsDepthModesFlag[ layerIdInVps ]; }
    1495 #if SEPARATE_FLAG_I0085
     1329
    14961330  Void    setIVPFlag( Int layerIdInVps, Bool val )                    { m_bIVPFlag[ layerIdInVps ] = val; }
    14971331  Bool    getIVPFlag( Int layerIdInVps )                              { return m_bIVPFlag[ layerIdInVps ]; }
    1498 #endif
    1499 
    1500 #if SEC_HLS_CLEANUP_I0100
     1332
    15011333  Bool    getIvMvScalingFlag   ( Int layerIdInVps )                        { return m_ivMvScalingFlag[ layerIdInVps ]; }
    15021334  Void    setIvMvScalingFlag   (Int layerIdInVps, Bool b )                 { m_ivMvScalingFlag[ layerIdInVps ] = b;    } 
    1503 #else
    1504   Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
    1505   Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    } 
    1506 #endif
    15071335
    15081336#if H_3D_INTER_SDC
     
    15301358  Bool        m_bInterViewDltPredEnableFlag[ MAX_NUM_LAYERS ];
    15311359
    1532 #if !FIX_TICKET_77
    1533   Int         m_iBitsPerDepthValue       [ MAX_NUM_LAYERS ];
    1534 #endif
    15351360  Int         m_iNumDepthmapValues       [ MAX_NUM_LAYERS ];
    15361361  Int*        m_iDepthValue2Idx          [ MAX_NUM_LAYERS ];
     
    15591384  UInt    getDepthViewBitDepth()                          { return m_uiDepthViewBitDepth; }
    15601385
    1561 #if !FIX_TICKET_77
    1562   Int     getBitsPerDepthValue( Int layerIdInVps )        { return getUseDLTFlag(layerIdInVps)?m_iBitsPerDepthValue[layerIdInVps]:g_bitDepthY; }
    1563 #endif
    15641386  Int     getNumDepthValues( Int layerIdInVps )           { return getUseDLTFlag(layerIdInVps)?m_iNumDepthmapValues[layerIdInVps]:((1 << g_bitDepthY)-1); }
    15651387  Int     depthValue2idx( Int layerIdInVps, Pel value )   { return getUseDLTFlag(layerIdInVps)?m_iDepthValue2Idx[layerIdInVps][value]:value; }
    1566 #if RWTH_DLT_CLIP_I0057
    15671388  Pel     idx2DepthValue( Int layerIdInVps, UInt uiIdx )  { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][ClipY(uiIdx)]:uiIdx; }
    1568 #else
    1569   Pel     idx2DepthValue( Int layerIdInVps, UInt uiIdx )  { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][uiIdx]:uiIdx; }
    1570 #endif
    15711389  Void    setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 );
    1572 #if H_3D_DELTA_DLT
    15731390  Int*    idx2DepthValue( Int layerIdInVps )  { return m_iIdx2DepthValue[layerIdInVps]; }
    15741391  Void    getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum );
    15751392  Void    setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTIn, UInt uiDeltaDLTInNum );
    1576 #endif
    15771393};
    15781394#endif
     
    18331649  Bool        m_useAMP;
    18341650
    1835 #if !MTK_I0099_VPS_EX2
    1836 #if H_3D_QTLPC
    1837   Bool        m_bUseQTL;
    1838   Bool        m_bUsePC;
    1839 #endif
    1840 #endif
    18411651  // Parameter
    18421652  Int         m_bitDepthY;
     
    18801690  TComVPS*    m_pcVPS;
    18811691  // SPS
    1882 #if H_MV_HLS10_MULTILAYERSPS
    18831692  Int         m_spsMaxSubLayersMinus1;
    18841693  Int         m_spsExtOrMaxSubLayersMinus1;
    1885 #endif
    18861694  Bool        m_spsExtensionPresentFlag;
    18871695
     
    19011709  // SPS Extension
    19021710  Bool        m_interViewMvVertConstraintFlag;
    1903 #if !H_MV_HLS10_PPS
    1904   Int         m_numScaledRefLayerOffsets;
    1905   Int         m_scaledRefLayerId          [MAX_NUM_SCALED_REF_LAYERS];
    1906   Int         m_scaledRefLayerLeftOffset  [MAX_NUM_LAYERS];
    1907   Int         m_scaledRefLayerTopOffset   [MAX_NUM_LAYERS];
    1908   Int         m_scaledRefLayerRightOffset [MAX_NUM_LAYERS];
    1909   Int         m_scaledRefLayerBottomOffset[MAX_NUM_LAYERS];
    1910 #endif
    19111711#endif
    19121712#if H_3D
     
    20121812#if H_MV
    20131813  UInt      getSpsMaxSubLayersMinus1()                { return ( m_uiMaxTLayers - 1); }
    2014 #if H_MV_HLS10_MULTILAYERSPS
    20151814  Void      setSpsMaxSubLayersMinus1( UInt val )       { setMaxTLayers( val + 1 ); }
    2016 #endif
    20171815#endif
    20181816
     
    20471845  TComPTL* getPTL()     { return &m_pcPTL; }
    20481846#if H_MV
    2049 #if H_MV_HLS10_MULTILAYERSPS
    20501847  Void setSpsExtOrMaxSubLayersMinus1( Int  val ) { m_spsExtOrMaxSubLayersMinus1 = val; }
    20511848  Int  getSpsExtOrMaxSubLayersMinus1(  ) { return m_spsExtOrMaxSubLayersMinus1; }
     
    20531850
    20541851  Bool getMultiLayerExtSpsFlag()            { return ( getLayerId() != 0  &&  getSpsExtOrMaxSubLayersMinus1() == 7 ); }
    2055 #endif
    20561852  Void inferSpsMaxDecPicBufferingMinus1( TComVPS* vps, Int targetOptLayerSetIdx, Int currLayerId, Bool encoder );
    20571853
     
    20921888  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
    20931889
    2094 #if !H_MV_HLS10_PPS
    2095   Void setNumScaledRefLayerOffsets( Int  val )    { m_numScaledRefLayerOffsets = val; }
    2096   Int  getNumScaledRefLayerOffsets(  )            { return m_numScaledRefLayerOffsets; }
    2097 
    2098   Void setScaledRefLayerId( Int i, Int  val )     { m_scaledRefLayerId[i] = val; }
    2099   Int  getScaledRefLayerId( Int i )               { return m_scaledRefLayerId[i]; }
    2100 
    2101   Void setScaledRefLayerLeftOffset( Int j, Int  val ) { m_scaledRefLayerLeftOffset[j] = val; }
    2102   Int  getScaledRefLayerLeftOffset( Int j )           { return m_scaledRefLayerLeftOffset[j]; }
    2103 
    2104   Void setScaledRefLayerTopOffset( Int j, Int  val )  { m_scaledRefLayerTopOffset[j] = val; }
    2105   Int  getScaledRefLayerTopOffset( Int j )            { return m_scaledRefLayerTopOffset[j]; }
    2106 
    2107   Void setScaledRefLayerRightOffset( Int j, Int  val ) { m_scaledRefLayerRightOffset[j] = val; }
    2108   Int  getScaledRefLayerRightOffset( Int j )           { return m_scaledRefLayerRightOffset[j]; }
    2109 
    2110   Void setScaledRefLayerBottomOffset( Int j, Int  val ) { m_scaledRefLayerBottomOffset[j] = val; }
    2111   Int  getScaledRefLayerBottomOffset( Int j )           { return m_scaledRefLayerBottomOffset[j]; }
    2112 #endif
    21131890  // Inference
    21141891
     
    21191896  Void checkRpsMaxNumPics( TComVPS* vps, Int currLayerId );
    21201897
    2121 #endif
    2122 #if !MTK_I0099_VPS_EX2
    2123 #if H_3D_QTLPC
    2124   Void setUseQTL( Bool b ) { m_bUseQTL = b;    }
    2125   Bool getUseQTL()         { return m_bUseQTL; }
    2126   Void setUsePC ( Bool b ) { m_bUsePC  = b;    }
    2127   Bool getUsePC ()         { return m_bUsePC;  }
    2128 #endif
    21291898#endif
    21301899#if H_MV
     
    22011970 
    22021971  Bool     m_loopFilterAcrossTilesEnabledFlag;
    2203   Int      m_uniformSpacingFlag;
    2204   Int      m_iNumColumnsMinus1;
    2205   UInt*    m_puiColumnWidth;
    2206   Int      m_iNumRowsMinus1;
    2207   UInt*    m_puiRowHeight;
    2208 
    2209   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;
    22101979
    22111980  Int      m_signHideFlag;
     
    23042073  Bool    getDependentSliceSegmentsEnabledFlag() const     { return m_dependentSliceSegmentsEnabledFlag; }
    23052074  Void    setDependentSliceSegmentsEnabledFlag(Bool val)   { m_dependentSliceSegmentsEnabledFlag = val; }
    2306   Bool    getTilesEnabledFlag() const                      { return m_tilesEnabledFlag; }
    2307   Void    setTilesEnabledFlag(Bool val)                    { m_tilesEnabledFlag = val; }
    23082075  Bool    getEntropyCodingSyncEnabledFlag() const          { return m_entropyCodingSyncEnabledFlag; }
    23092076  Void    setEntropyCodingSyncEnabledFlag(Bool val)        { m_entropyCodingSyncEnabledFlag = val; }
    2310   Void     setUniformSpacingFlag            ( Bool b )          { m_uniformSpacingFlag = b; }
    2311   Bool     getUniformSpacingFlag            ()                  { return m_uniformSpacingFlag; }
    2312   Void     setNumColumnsMinus1              ( Int i )           { m_iNumColumnsMinus1 = i; }
    2313   Int      getNumColumnsMinus1              ()                  { return m_iNumColumnsMinus1; }
    2314   Void     setColumnWidth ( UInt* columnWidth )
    2315   {
    2316     if( m_uniformSpacingFlag == 0 && m_iNumColumnsMinus1 > 0 )
    2317     {
    2318       m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ];
    2319 
    2320       for(Int i=0; i<m_iNumColumnsMinus1; i++)
    2321       {
    2322         m_puiColumnWidth[i] = columnWidth[i];
    2323       }
    2324     }
    2325   }
    2326   UInt     getColumnWidth  (UInt columnIdx) { return *( m_puiColumnWidth + columnIdx ); }
    2327   Void     setNumRowsMinus1( Int i )        { m_iNumRowsMinus1 = i; }
    2328   Int      getNumRowsMinus1()               { return m_iNumRowsMinus1; }
    2329   Void     setRowHeight    ( UInt* rowHeight )
    2330   {
    2331     if( m_uniformSpacingFlag == 0 && m_iNumRowsMinus1 > 0 )
    2332     {
    2333       m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ];
    2334 
    2335       for(Int i=0; i<m_iNumRowsMinus1; i++)
    2336       {
    2337         m_puiRowHeight[i] = rowHeight[i];
    2338       }
    2339     }
    2340   }
    2341   UInt     getRowHeight           (UInt rowIdx)    { return *( m_puiRowHeight + rowIdx ); }
    2342   Void     setNumSubstreams(Int iNumSubstreams)               { m_iNumSubstreams = iNumSubstreams; }
    2343   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; }
    23442093
    23452094  Void      setSignHideFlag( Int signHideFlag ) { m_signHideFlag = signHideFlag; }
     
    25372286
    25382287  Bool       m_enableTMVPFlag;
    2539 #if I0044_SLICE_TMVP
     2288#if H_MV
    25402289  Bool       m_availableForTMVPRefFlag;
    25412290#endif
     
    25992348  UInt         m_aiDDDShift    [MAX_NUM_LAYERS];
    26002349#endif
    2601 #if MTK_SINGLE_DEPTH_MODE_I0095
     2350#if H_3D_SINGLE_DEPTH
    26022351  Bool      m_bApplySingleDepthMode;
    26032352#endif
    2604 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     2353#if H_3D_IC
    26052354  Int *m_aICEnableCandidate;
    26062355  Int *m_aICEnableNum;
     
    26762425  TComPic*  getTexturePic       ()                              { return  m_ivPicsCurrPoc[0][ m_viewIndex ]; }
    26772426#endif
    2678 #if MTK_SINGLE_DEPTH_MODE_I0095
     2427#if H_3D_SINGLE_DEPTH
    26792428  Void      setApplySingleDepthMode( Bool b )                                { m_bApplySingleDepthMode = b; }
    26802429  Bool      getApplySingleDepthMode()                                        { return m_bApplySingleDepthMode; }
     
    28772626  Void      setEnableTMVPFlag     ( Bool   b )    { m_enableTMVPFlag = b; }
    28782627  Bool      getEnableTMVPFlag     ()              { return m_enableTMVPFlag;}
    2879 #if I0044_SLICE_TMVP
     2628#if H_MV
    28802629  Void      setAvailableForTMVPRefFlag     ( Bool   b )    { m_availableForTMVPRefFlag = b; }
    28812630  Bool      getAvailableForTMVPRefFlag     ()              { return m_availableForTMVPRefFlag;}
     
    29172666  Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };
    29182667  Bool getVpsDepthModesFlag  ()  { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    2919 #if SEPARATE_FLAG_I0085
    29202668  Bool getIVPFlag       ()  { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    29212669#endif
    2922 #endif
    2923 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     2670#if H_3D_IC
    29242671  Void    setICEnableCandidate( Int* ICEnableCandidate)   { m_aICEnableCandidate = ICEnableCandidate; };
    29252672  Void    setICEnableNum( Int* ICEnableNum)   { m_aICEnableNum = ICEnableNum; };
  • trunk/source/Lib/TLibCommon/TComWedgelet.cpp

    r1039 r1084  
    6868                                                            m_uiHeight ( rcWedge.m_uiHeight  ),
    6969                                                            m_pbPattern( (Bool*)xMalloc( Bool, (m_uiWidth * m_uiHeight) ) )
    70 #if SHARP_DMM1_I0110
    7170                                                            ,m_pbScaledPattern( g_wedgePattern )
    72 #endif
    7371{
    7472  ::memcpy( m_pbPattern, rcWedge.m_pbPattern, sizeof(Bool) * (m_uiWidth * m_uiHeight));
     
    8886
    8987  m_pbPattern = (Bool*)xMalloc( Bool, (m_uiWidth * m_uiHeight) );
    90 #if SHARP_DMM1_I0110
    9188  m_pbScaledPattern = g_wedgePattern;
    92 #endif
    9389}
    9490
     
    187183  switch( m_eWedgeRes )
    188184  {
    189 #if !SHARP_DMM1_I0110
    190   case( DOUBLE_PEL ): { uiTempBlockSize =  m_uiWidth;     uhXs = (m_uhXs<<1); uhYs = (m_uhYs<<1); uhXe = (m_uhXe<<1); uhYe = (m_uhYe<<1); } break;
    191 #endif
    192185  case(   FULL_PEL ): { uiTempBlockSize =  m_uiWidth;     uhXs =  m_uhXs;     uhYs =  m_uhYs;     uhXe =  m_uhXe;     uhYe =  m_uhYe;     } break;
    193186  case(   HALF_PEL ): { uiTempBlockSize = (m_uiWidth<<1); uhXs =  m_uhXs;     uhYs =  m_uhYs;     uhXe =  m_uhXe;     uhYe =  m_uhYe;     } break;
    194187  }
    195 
    196 #if !SHARP_DMM1_I0110
    197   if( m_eWedgeRes == DOUBLE_PEL) // adjust line-end for DOUBLE_PEL resolution
    198   {
    199     if( m_uhOri == 1 ) { uhXs = uiTempBlockSize-1; }
    200     if( m_uhOri == 2 ) { uhXe = uiTempBlockSize-1; uhYs = uiTempBlockSize-1; }
    201     if( m_uhOri == 3 ) { uhYe = uiTempBlockSize-1; }
    202     if( m_uhOri == 4 ) { uhYe = uiTempBlockSize-1; }
    203     if( m_uhOri == 5 ) { uhXs = uiTempBlockSize-1; }
    204   }
    205 #endif
    206188
    207189  Bool* pbTempPattern = new Bool[ (uiTempBlockSize * uiTempBlockSize) ];
     
    233215  switch( m_eWedgeRes )
    234216  {
    235 #if !SHARP_DMM1_I0110
    236   case( DOUBLE_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break;
    237 #endif
    238217  case(   FULL_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break;
    239218  case(   HALF_PEL ): // sub-sampling by factor 2
     
    327306}
    328307
    329 #if SHARP_DMM1_I0110
    330308Bool* TComWedgelet::getScaledPattern(UInt uiDstSize)
    331309{
    332     Bool *pbSrcPat = this->getPattern();
    333     UInt uiSrcSize = this->getStride();
    334 
    335     Int scale = (g_aucConvertToBit[uiDstSize] - g_aucConvertToBit[uiSrcSize]);
    336     assert(scale>=0);
    337     for (Int y=0; y<uiDstSize; y++)
    338     {
    339        for (Int x=0; x<uiDstSize; x++)
    340        {
    341            Int srcX = x>>scale;
    342            Int srcY = y>>scale;
    343            m_pbScaledPattern[y*uiDstSize + x] = pbSrcPat[ srcY*uiSrcSize + srcX ];
    344        }
    345    }
    346    return m_pbScaledPattern;
    347 }
    348 #endif
     310  Bool *pbSrcPat = this->getPattern();
     311  UInt uiSrcSize = this->getStride();
     312
     313  Int scale = (g_aucConvertToBit[uiDstSize] - g_aucConvertToBit[uiSrcSize]);
     314  assert(scale>=0);
     315  for (Int y=0; y<uiDstSize; y++)
     316  {
     317    for (Int x=0; x<uiDstSize; x++)
     318    {
     319      Int srcX = x>>scale;
     320      Int srcY = y>>scale;
     321      m_pbScaledPattern[y*uiDstSize + x] = pbSrcPat[ srcY*uiSrcSize + srcX ];
     322    }
     323  }
     324  return m_pbScaledPattern;
     325}
    349326
    350327TComWedgeNode::TComWedgeNode()
  • trunk/source/Lib/TLibCommon/TComWedgelet.h

    r1039 r1084  
    5858#define DIM_NO_IDX     MAX_UINT
    5959
    60 #if HS_DMM_SIGNALLING_I0120
    6160__inline UInt getDimType  ( Int intraMode )
    6261{
     
    6463    return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX;
    6564}
    66 #else
    67 __inline UInt getDimType  ( Int intraMode ) { Int dimType = (intraMode-DIM_OFFSET)/2; return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; }
    68 #endif
    6965__inline Bool isDimMode   ( Int intraMode ) { return (getDimType( intraMode ) < DIM_NUM_TYPE); }
    70 #if !HS_DMM_SIGNALLING_I0120
    71 __inline Bool isDimDeltaDC( Int intraMode ) { return (isDimMode( intraMode ) && ((intraMode-DIM_OFFSET)%2) == 1); }
    72 #endif
    7366#endif
    7467
     
    7972enum WedgeResolution
    8073{
    81 #if !SHARP_DMM1_I0110
    82   DOUBLE_PEL,
    83 #endif
    8474  FULL_PEL,
    8575  HALF_PEL
     
    10696
    10797  Bool* m_pbPattern;
    108 #if SHARP_DMM1_I0110
    10998  Bool* m_pbScaledPattern;
    110 #endif
    11199
    112100  Void  xGenerateWedgePattern();
     
    134122  Bool            getIsCoarse() { return m_bIsCoarse; }
    135123  UInt            getAng     () { return m_uiAng; }
    136 #if SHARP_DMM1_I0110
    137124  Bool*           getScaledPattern(UInt uiWidth);
    138 #endif
    139125
    140126  Void  setWedgelet( UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe, UChar uhOri, WedgeResolution eWedgeRes, Bool bIsCoarse = false );
  • trunk/source/Lib/TLibCommon/TComYuv.cpp

    r1039 r1084  
    689689  UInt iSrc1Stride = pcYuvSrc1->getStride();
    690690  UInt iDstStride  = getStride();
    691 #if QC_I0129_ARP_FIX
    692691  Int iIFshift = IF_INTERNAL_PREC - g_bitDepthY;
    693692  Int iOffSet  = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS;
    694 #endif
    695693  for ( y = uiHeight-1; y >= 0; y-- )
    696694  {
     
    700698      if( bClip )
    701699      {
    702 #if QC_I0129_ARP_FIX
    703700        pDst[x] = ClipY( ( pDst[x] + iOffSet ) >> iIFshift );
    704 #else
    705         pDst[x] = ClipY( pDst[x] );
    706 #endif
    707701      }
    708702    }
     
    727721  UInt  iSrc1Stride = pcYuvSrc1->getCStride();
    728722  UInt  iDstStride  = getCStride();
    729 #if QC_I0129_ARP_FIX
     723
    730724  Int iIFshift = IF_INTERNAL_PREC - g_bitDepthC;
    731725  Int iOffSet  = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS;
    732 #endif
     726
    733727  for ( y = uiHeight-1; y >= 0; y-- )
    734728  {
     
    739733      if( bClip )
    740734      {
    741 #if QC_I0129_ARP_FIX
    742735        pDstU[x] = ClipC( ( pDstU[x] + iOffSet ) >> iIFshift );
    743736        pDstV[x] = ClipC( ( pDstV[x] + iOffSet ) >> iIFshift );
    744 #else
    745         pDstU[x] = ClipC( pDstU[x] );
    746         pDstV[x] = ClipC( pDstV[x] );
    747 #endif
    748737      }
    749738    }
     
    761750{
    762751  subtractARPLuma  ( pcYuvSrc0, pcYuvSrc1,  uiAbsPartIdx, uiWidth    , uiHeight    );
    763 #if SHARP_ARP_CHROMA_I0104
     752
    764753  if (uiWidth > 8)
    765 #endif
    766   subtractARPChroma( pcYuvSrc0, pcYuvSrc1,  uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 );
     754    subtractARPChroma( pcYuvSrc0, pcYuvSrc1,  uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 );
    767755}
    768756
     
    823811{
    824812  multiplyARPLuma( uiAbsPartIdx , uiWidth , uiHeight , dW );
    825 #if SHARP_ARP_CHROMA_I0104
     813
    826814  if (uiWidth > 8)
    827 #endif
    828   multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW );
     815    multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW );
    829816}
    830817
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r1066 r1084  
    111111                                              // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053
    112112                                              // MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085  Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085
    113 
     113                                              // QC_I0051_ARP_SIMP         
     114                                              // SHARP_ARP_CHROMA_I0104     
     115                                              // MTK_I0072_IVARP_SCALING_FIX
    114116
    115117#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
     
    123125                                              // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121
    124126                                              // MTK_LOW_LATENCY_IC_ENCODING_H0086  Low-latency IC encoding in JCT3V-H0086
    125 
    126 #define MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX  1  // Remove the global variables used in JCT3V-H0086
    127 
    128 
    129 #define SEC_IC_NEIGHBOR_CLIP_I0080        1   // Clipping of neighboring sample position, JCT3V-I0080
    130 
     127                                              // MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX  1  // Remove the global variables used in JCT3V-H0086
     128                                              // SEC_IC_NEIGHBOR_CLIP_I0080    // Clipping of neighboring sample position, JCT3V-I0080
    131129
    132130#if H_3D_NBDV
     
    177175                                              // SHARP_SIMPLE_MERGE_H0062      Restrict 3D-HEVC merge cand in small PUs
    178176                                              // MTK_DIS_SPBIP8X4_H0205        Disable bi-prediction for 8x4 and 4x8 sub PU and remove the SPIVMP 2Nx2N restriction
    179                                               // SEC_ADAPT_DISABLE_IVMP        Disalbing IVMP merge candidates when IC is enabled, JCT3V-H0070
    180 
    181 #define SEC_SIMP_SHIFTED_DV_I0086         1   // Simplification of Shifted DV candidate, JCT3V-I0086
     177                                              // SEC_ADAPT_DISABLE_IVMP        Disabling IVMP merge candidates when IC is enabled, JCT3V-H0070
     178                                              // SEC_SIMP_SHIFTED_DV_I0086     Simplification of Shifted DV candidate, JCT3V-I0086
     179
     180
    182181
    183182#define H_3D_TMVP                         1   // QC_TMVP_C0047
     
    222221                                              // SEC_NO_RESI_DLT_H0105   
    223222                                              // MTK_DLT_CODING_FIX_H0091
    224 
    225 #define MTK_SINGLE_DEPTH_MODE_I0095       1   // Single depth mode proposed in JCT3V-I0095
    226 #if MTK_SINGLE_DEPTH_MODE_I0095
    227 #define MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE            2 // size of the sample candidate list
    228 #endif
    229 
    230 #define H_3D_FIX_UNINIT                   1   // Fix uninitialized flag
     223                                              // HS_DMM_SIGNALLING_I0120
     224                                              // SHARP_DMM1_I0110 // LUT size reduction for DMM1 proposed in JCT3V-I0110
     225                                              // FAST_SDC_OFFSET_DECISION_I0084
     226                                              // SEPARATE_FLAG_I0085
     227                                              // H_3D_DELTA_DLT
     228                                              // RWTH_DLT_CLIP_I0057               1
     229
     230
     231
     232#define H_3D_SINGLE_DEPTH                 1   // Single depth mode proposed in JCT3V-I0095
     233
     234
    231235#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
    232236                                              // LGE_INTER_SDC_E0156 Enable inter SDC for depth coding
     
    245249                                              // MTK_DBBP_SIGNALING_H0094   
    246250                                              // H_3D_FIX_DBBP_IVMP        Fix . Enable IVMP is always disabled, when DBBP is enabled. The original intention is to disable Sub-PU IVMP when DBBP is enabled, not to disable IVMP itself.
    247 
    248 #define SEC_DBBP_EXPLICIT_SIG_I0077       1   // Remove the partition derivation and signal dbbp_flag only when the partion mode is 2NxN/Nx2N, JCT3V-I0077
    249 #define SEC_DBBP_DISALLOW_8x8_I0078       1   // Disallow DBBP in 8x8 CU, JCT3V-I0078
    250 #define SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional dilter for DBBP
    251 #define SEC_DBBP_DMM4_THRESHOLD_I0076     1   // Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
     251                                              // SEC_DBBP_EXPLICIT_SIG_I0077       1   // Remove the partition derivation and signal dbbp_flag only when the partition mode is 2NxN/Nx2N, JCT3V-I0077
     252                                              // Disallow DBBP in 8x8 CU, JCT3V-I0078
     253                                              // SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional filter for DBBP
     254                                              // SEC_DBBP_DMM4_THRESHOLD_I0076     Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
    252255
    253256
     
    256259#define H_3D_FCO                          0   // Flexible coding order for 3D
    257260#if H_3D_FCO
    258 #define LGE_FCO_I0116                     1
    259 #endif
    260 
    261 #define SCU_HS_FAST_INTRA_SDC_I0123       1
     261#define H_3D_FCO                     1
     262#endif
     263
     264#define H_3D_FAST_INTRA_SDC               1   // I0123
    262265
    263266// OTHERS
     
    271274#endif
    272275
    273 #define MTK_I0099_VPS_EX2                 1  ///< JCT3V-I0099, sub-PU size signaling and lim_qt_pred_flag in VPS extension 2
    274 #define MTK_I0099_FIX                     1  ///< Fix the problem of removing encoder only QTL
    275 
    276276// Rate Control
    277277#define KWU_FIX_URQ                       1
    278278#define KWU_RC_VIEWRC_E0227               0  ///< JCT3V-E0227, view-wise target bitrate allocation
    279279#define KWU_RC_MADPRED_E0227              0  ///< JCT3V-E0227, inter-view MAD prediction
    280 
    281 #define SEC_VPS_CLEANUP_I0090             1
    282 #define SEC_HLS_CLEANUP_I0100             1
    283 
    284 #define H_3D_FIX_64BIT_SHIFT              1
    285280#endif // H_3D
    286281
     
    292287
    293288// Fixes
    294 #define FIX_TICKET_79                     1    // Unused VSP code
    295 #define FIX_TICKET_75                     1    // Bi-pred restriction bug in VSP
    296 #define FIX_TICKET_68                     1    // MV clipping bug in the sub-PU MPI default MV generation
    297 #define FIX_TICKET_71                     1    // IC parameters is meaningless in HTM when no training samples are available
    298 #define FIX_TICKET_77                     1    // Unused variable m_iBitsPerDepthValue
    299 #define FIX_TICKET_76                     1    // unused functions
    300 #define FIX_TICKET_62                     1    // buffer overflow for print
    301 #define FIX_TICKET_61                     1    // layerIdsInSets size check
     289
     290///// ***** SINGLE DEPTH MODE *********
     291#if H_3D_SINGLE_DEPTH
     292#define SINGLE_DEPTH_MODE_CAND_LIST_SIZE            2 // size of the sample candidate list
     293#endif
    302294
    303295///// ***** VIEW SYNTHESIS OPTIMIZAION *********
     
    308300#define H_3D_VSO_RM_ASSERTIONS            0   // Output VSO assertions
    309301#define H_3D_VSO_SYNTH_DIST_OUT           0   // Output of synthesized view distortion instead of depth distortion in encoder output
    310 #define H_3D_VSO_FIX                      1   // This fix should be enabled after verification
    311302#endif
    312303
     
    321312#if H_3D_ARP
    322313#define H_3D_ARP_WFNR                     3
    323 #define QC_I0129_ARP_FIX                  1
    324 #define QC_I0051_ARP_SIMP                 1
    325 #define SHARP_ARP_CHROMA_I0104            1
    326 #define MTK_I0072_IVARP_SCALING_FIX       1
    327314#endif
    328315
    329316///// ***** DEPTH INTRA MODES *********
    330317#if H_3D_DIM
     318                                              // HHI_DMM4_ENC_I0066
    331319#define H_3D_DIM_DMM                      1   // Depth Modeling Modes
    332320#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
    333321#define H_3D_DIM_DLT                      1   // Depth Lookup Table
    334 #define HS_DMM_SIGNALLING_I0120  1   
    335 #define SHARP_DMM1_I0110                  1   // LUT size reduction for DMM1 proposed in JCT3V-I0110
    336 #define FIX_WARNING                       1   // fix narrowing conversion of NumPocStCurr0,NumPocStCurr1 at TComSlice.cpp
    337 #define FAST_SDC_OFFSET_DECISION_I0084    1
    338 #define SEPARATE_FLAG_I0085               1
    339 
    340 #if H_3D_DIM_DLT
    341 #define H_3D_DELTA_DLT                    1
    342 #define RWTH_DLT_CLIP_I0057               1
    343 #endif
     322
    344323#define H_3D_DIM_ENC                      1   // Depth Intra encoder optimizations, includes:
    345324                                              // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
    346325                                              // LG_ZEROINTRADEPTHRESI_A0087
    347 #define HHI_DMM4_ENC_I0066                1
    348326#endif
    349327///// ***** VIEW SYNTHESIS PREDICTION *********
     
    370348#if H_3D_DBBP
    371349#define DBBP_INVALID_SHORT                (-4)
    372 #define RWTH_DBBP_PACK_MODE               SIZE_2NxN
     350#define DBBP_PACK_MODE               SIZE_2NxN
    373351#endif
    374352
     
    389367/////////////////////////////////////////////////////////////////////////////////
    390368// TBD: Check if integration is necessary.
    391 
    392 
    393 
    394 //Added by Qualcomm for HLS
    395 #define DISCARDABLE_PIC_RPS              1      ///< JCT3V-G0131: Inter-layer RPS and temporal RPS should not contain picture with discardable_flag equal to 1
    396 #define VPS_MISC_UPDATES                 1      ///< Misc updates:JCT3V-0240,
    397 #define NON_REF_NAL_TYPE_DISCARDABLE     1      ///< JCT3V-G0031: If discardable picture is a non-IRAP, it must be a non-referenced sub-layer picture
    398 #define INFERENCE_POC_MSB_VAL_PRESENT    1      ///< JCT3V-H0042: poc_msb_val_present_flag shall be equal to 0 when slice_header_extension_length is (inferred to be ) equal to 0
    399 #define INFERENCE_POC_RESET_INFO_PRESENT 1      ///< JCT3V-H0042: Infer the value of poc_reset_info_present_flag to be equal to 0 when no pps extension / pps extension for multilayer.
    400 #define I0044_SLICE_TMVP                 1      ///< JCT3V-I0044: Regarding slice_temporal_mvp_enabled_flag
    401 #define I0045_BR_PR_ADD_LAYER_SET        1      ///< JCT3V-I0045: Signalling of bit-rate and picture rate for additional layer set
    402 #define I0045_VPS_VUI_VST_PARAMS         1      ///< JCT3V-I0045: Related to signalling of VST parameters of the base layer.
    403 
    404 
    405 #define H_MV_HLS10_GEN                       0  // General changes (not tested)
    406 
    407 #define H_MV_HLS10_AUX                       1 // Auxiliary pictures
    408 #define H_MV_HLS10_GEN_FIX                   1
    409 #define H_MV_FIX_LOOP_GOPSIZE                1
    410 #define H_MV_FIX_SUB_LAYERS_MAX_MINUS1       1
    411 
    412 #define H_MV_HLS10_GEN_VSP_CONF_WIN          1  // VPS conformance window
    413 #define H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL  1  // vps_base_layer_available
    414 #define H_MV_HLS10_REF_PRED_LAYERS           1  // reference and predicted layer derivation
    415 #define H_MV_HLS10_NESSECARY_LAYER           1  // necessary layers
    416 #define H_MV_HLS10_ADD_LAYERSETS             1  // additional layer sets
    417 #define H_MV_HLS10_DBP_SIZE                  1  // dpb size syntax structure
    418 #define H_MV_HLS10_MAXNUMPICS                1  // constraint on number of pictures in rps 
    419 #define H_MV_HLS10_PTL                       1  // profile tier level
    420 #define H_MV_HLS10_PTL_FIX                   1  // profile tier level fix
    421 #define H_MV_HLS10_PTL_INBL_FIX              1  // profile tier level fix
    422 #define H_MV_HLS10_PTL_INFER_FIX             1  // fix inference ptl
    423 #define H_MV_HLS10_MULTILAYERSPS             1  // multilayer SPS extension
    424 #define H_MV_HLS10_VPS_VUI                   1  // vsp vui
    425 #define H_MV_HLS10_VPS_VUI_BSP               1  // vsp vui bsp
    426 #define H_MV_HLS10_PPS                       1  // PPS modifications
    427 
    428 #define H_MV_HLS10_VPS_VUI_BSP_STORE         0  // Currently bsp vui bsp hrd parameters are not stored, some dynamic memory allocation with upper bounds is required.
    429 
    430 
     369#define H_MV_HLS_PTL_LIMITS                  0
    431370#define H_MV_HLS7_GEN                        0  // General changes (not tested)
    432 
     371#define H_MV_ALIGN_HM_15                     1 
    433372
    434373// POC
     
    452391//#define H_MV_HLS_7_SEI_P0123_25  0 // (SEI/P0123/Alpha channel info) #25 Add alpha channel information SEI message Decision: Adopt. Constrain the bit depth indicated to be equal to the coded bit depth of the aux picture.
    453392
    454 // Auxiliary picture related
    455 //#define H_MV_HLS_8_AUX_NODOC_40  0 // #40 (AUX    /NODOC/primary pic) Clarify that an auxiliary picture can be associated with more than one primary picture. Consider if the language associating an alpha auxiliary picture with a primary picture in the semantics of dimension_id[ ][ ] near the AuxId derivation could be moved to the alpha SEI message.
    456 //#define H_MV_HLS_8_AUX_Q0081_2   0 // #2  (AUX    /Q0081/primary) Decision: Remove the constraint that an alpha picture must be accompanied by a primary picture.
    457 //#define H_MV_HLS_8_AUX_Q0078_44  0 // #44 (AUX    /Q0078/concepts Auxiliary picture concepts:
    458 //#define H_MV_HLS_8_AUX_Q0078_39  0 // #39 (AUX    /Q0078/conformance): mechanism for signaling a profile/tier/level conformance point for auxiliary pictures
    459 
    460 // Profiles
    461 //#define H_MV_HLS_8_PRO_NODOC_50  0 // #50 (PROF   /NODOC/Monochrome) Add Monochrome 8-bit profile
    462 //#define H_MV_HLS_8_PRO_NODOC_31  0 // #31 (PROF   /NODOC/Profile constraint) Add a profile constraint to the Scalable Main, Scalable Main 10, and Stereo Main profiles against allowing layers with duplicate values of DependencyId (or ViewOrderIdx) when AuxId equal to 0.
    463 //#define H_MV_HLS_8_PRO_H0126_45  0 // #45 (PROF   /H0126/Stereo main) Phrasing used in specifying the Stereo Main profile.
    464 //#define H_MV_HLS_8_PRO_Q0160_33  0 // #33 (PROF   /Q0160/alt_output_flag) v2: Add constraint to stereo main profile that it must contain exactly two texture views, and add a note to state that the constraint implies a restriction that alt_output_flag equal to 0.
    465 
    466393// DPB
    467394//#define H_MV_HLS_8_HRD_Q0102_09  0 // #9  (HRD    /Q0102/NoOutputOfPriorPicsFlag) It was suggested that also the separate_colour_plane_flag should affect inference of NoOutputOfPriorPicsFlag. Decision (Ed.): Agreed (affects RExt text).
     
    491418#define SAO_SGN_FUNC 1
    492419
     420#define TILE_SIZE_CHECK 1
     421
    493422#define FIX1172 1 ///< fix ticket #1172
    494423
     
    506435#define MAX_NESTING_NUM_LAYER       64
    507436
    508 #if H_MV_HLS10_VPS_VUI_BSP
     437#if H_MV
    509438#define MAX_VPS_NUM_HRD_PARAMETERS                1024
     439#else
     440#define MAX_VPS_NUM_HRD_PARAMETERS                1
     441#endif
     442#if H_MV
    510443#define MAX_NUM_SUB_LAYERS                        7
    511444#define MAX_NUM_SIGNALLED_PARTITIONING_SCHEMES    16
    512 #else
    513 #define MAX_VPS_NUM_HRD_PARAMETERS                1
    514 #endif
    515 
     445#endif
    516446#define MAX_VPS_OP_SETS_PLUS1                     1024
    517447#if H_MV
    518 #if H_MV_HLS10_ADD_LAYERSETS
    519448#define MAX_VPS_NUM_ADD_LAYER_SETS                1024
    520 #endif
    521449#define MAX_VPS_NUH_LAYER_ID_PLUS1  63
    522450#define MAX_NUM_SCALABILITY_TYPES   16
     
    533461#define MAX_VPS_PROFILE_TIER_LEVEL      64
    534462#define MAX_VPS_ADD_OUTPUT_LAYER_SETS   1024
    535 #if H_MV_HLS10_ADD_LAYERSETS
    536463#define MAX_VPS_OUTPUTLAYER_SETS        ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 + MAX_VPS_OP_SETS_PLUS1 )
    537 #else
    538 #define MAX_VPS_OUTPUTLAYER_SETS        ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 )
    539 #endif
    540464#define  MAX_NUM_VIDEO_SIGNAL_INFO      16
    541465#define MAX_NUM_SCALED_REF_LAYERS       MAX_NUM_LAYERS-1
    542 #if !H_MV_HLS10_VPS_VUI_BSP
    543 #define MAX_NUM_BSP_HRD_PARAMETERS      100 ///< Maximum value is actually not specified
    544 #define MAX_NUM_BITSTREAM_PARTITIONS    100 ///< Maximum value is actually not specified
    545 #define MAX_NUM_BSP_SCHED_COMBINATION   100 ///< Maximum value is actually not specified
    546 #define MAX_SUB_STREAMS                 1024
    547 #endif
    548466#else
    549467#define MAX_NUM_LAYER_IDS                64
     
    1016934    MAINSTILLPICTURE = 3,
    1017935#if H_MV
    1018 #if H_MV_HLS10_PTL
    1019936    MULTIVIEWMAIN = 6,
    1020937#if H_3D
    1021938    MAIN3D = 8,
    1022 #endif
    1023 #else
    1024     MAINSTEREO = 4,
    1025     MAINMULTIVIEW = 5,
    1026 #if H_3D
    1027     MAIN3D = 6,
    1028 #endif
    1029939#endif
    1030940#endif
     
    1069979#endif   
    1070980    VIEW_ORDER_INDEX  = 1,
    1071 #if H_MV_HLS10_AUX
    1072981    DEPENDENCY_ID = 2,
    1073982    AUX_ID = 3,
    1074 #endif   
    1075983  };
    1076984#endif
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1066 r1084  
    5353  }
    5454  // To avoid mismatches
    55 #if H_MV_HLS10_GEN_FIX
    5655  fprintf( g_hTrace, "=========== Sequence Parameter Set LayerId: %d ===========\n", pSPS->getLayerId() );
    5756#else
    58   fprintf( g_hTrace, "=========== Sequence Parameter Set ===========\n" );
    59 #endif
    60 #else
    6157  fprintf( g_hTrace, "=========== Sequence Parameter Set ID: %d ===========\n", pSPS->getSPSId() );
    6258#endif
     
    7066    return;
    7167  }
    72 #if H_MV_HLS10_GEN_FIX
    7368  fprintf( g_hTrace, "=========== Picture Parameter Set LayerId: %d ===========\n", pPPS->getLayerId() );
    74 #else
    75   fprintf( g_hTrace, "=========== Picture Parameter Set ===========\n" );
    76 #endif
    7769#else
    7870  fprintf( g_hTrace, "=========== Picture Parameter Set ID: %d ===========\n", pPPS->getPPSId() );
     
    300292  if( pcPPS->getTilesEnabledFlag() )
    301293  {
    302     READ_UVLC ( uiCode, "num_tile_columns_minus1" );                pcPPS->setNumColumnsMinus1( uiCode ); 
    303     READ_UVLC ( uiCode, "num_tile_rows_minus1" );                   pcPPS->setNumRowsMinus1( uiCode ); 
    304     READ_FLAG ( uiCode, "uniform_spacing_flag" );                   pcPPS->setUniformSpacingFlag( uiCode );
    305 
    306     if( !pcPPS->getUniformSpacingFlag())
    307     {
    308       UInt* columnWidth = (UInt*)malloc(pcPPS->getNumColumnsMinus1()*sizeof(UInt));
    309       for(UInt i=0; i<pcPPS->getNumColumnsMinus1(); 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++)
    310302      {
    311303        READ_UVLC( uiCode, "column_width_minus1" ); 
    312304        columnWidth[i] = uiCode+1;
    313305      }
    314       pcPPS->setColumnWidth(columnWidth);
    315       free(columnWidth);
    316 
    317       UInt* rowHeight = (UInt*)malloc(pcPPS->getNumRowsMinus1()*sizeof(UInt));
    318       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++)
    319310      {
    320311        READ_UVLC( uiCode, "row_height_minus1" );
    321312        rowHeight[i] = uiCode + 1;
    322313      }
    323       pcPPS->setRowHeight(rowHeight);
    324       free(rowHeight); 
    325     }
    326 
    327     if(pcPPS->getNumColumnsMinus1() !=0 || pcPPS->getNumRowsMinus1() !=0)
     314      pcPPS->setTileRowHeight(rowHeight);
     315    }
     316
     317    if(pcPPS->getNumTileColumnsMinus1() !=0 || pcPPS->getTileNumRowsMinus1() !=0)
    328318    {
    329319      READ_FLAG ( uiCode, "loop_filter_across_tiles_enabled_flag" );   pcPPS->setLoopFilterAcrossTilesEnabledFlag( uiCode ? true : false );
     
    342332    }
    343333  }
    344 #if !H_MV_HLS10_PPS
    345 #if H_MV
    346   if ( pcPPS->getLayerId() > 0 )
    347   {
    348     READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 );   
    349   }
    350 
    351   if( pcPPS->getPpsInferScalingListFlag( ) )
    352   {
    353     READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode );
    354   }
    355   else
    356   { 
    357 #endif
    358 #endif
    359334  READ_FLAG( uiCode, "pps_scaling_list_data_present_flag" );           pcPPS->setScalingListPresentFlag( uiCode ? true : false );
    360335  if(pcPPS->getScalingListPresentFlag ())
     
    362337    parseScalingList( pcPPS->getScalingList() );
    363338  }
    364 #if !H_MV_HLS10_PPS
    365 #if H_MV
    366   }
    367 #endif
    368 #endif
    369339  READ_FLAG( uiCode, "lists_modification_present_flag");
    370340  pcPPS->setListsModificationPresentFlag(uiCode);
     
    400370    if ( pcPPS->getPpsMultilayerExtensionFlag() )
    401371    {
    402 #if H_MV_HLS10_PPS
    403372      parsePPSMultilayerExtension( pcPPS );
    404 #else
    405       READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 );
    406       READ_FLAG( uiCode, "pps_extension_reserved_zero_flag" );
    407 #endif
    408373    }
    409374#if !H_3D
     
    505470              READ_CODE(8, uiNumDepthValues, "num_depth_values_in_dlt[i]");   // num_entry
    506471
    507 #if !H_3D_DELTA_DLT
    508               if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )       // Single-view DLT Diff Coding
    509 #endif
    510472              {
    511473                // The condition if( pcVPS->getNumDepthValues(i) > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component.
     
    555517            }
    556518           
    557 #if H_3D_DELTA_DLT
    558519            if( pcDLT->getInterViewDltPredEnableFlag( i ) )
    559520            {
     
    571532              pcDLT->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
    572533            }
    573 #else
    574             // store final DLT
    575             pcDLT->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
    576 #endif
     534
    577535          }
    578536        }
     
    782740    READ_CODE( 3,  uiCode, "sps_max_sub_layers_minus1" );          pcSPS->setMaxTLayers   ( uiCode+1 );
    783741    assert(uiCode <= 6);
    784 #if H_MV_HLS10_MULTILAYERSPS
    785742#if H_MV
    786743  }
     
    793750  {
    794751#endif
    795 #endif
    796752
    797753    READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" );               pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false );
     
    803759
    804760    parsePTL(pcSPS->getPTL(), 1, pcSPS->getMaxTLayers() - 1);
    805 #if H_MV_HLS10_PTL_INFER_FIX
     761#if H_MV
    806762    pcSPS->getPTL()->inferGeneralValues ( true, 0, NULL );
    807763    pcSPS->getPTL()->inferSubLayerValues( pcSPS->getMaxTLayers() - 1, 0, NULL );
    808 #endif
    809 #if H_MV
    810764  }
    811765#endif
     
    813767  assert(uiCode <= 15);
    814768#if H_MV
    815 #if H_MV_HLS10_MULTILAYERSPS
    816769  if ( pcSPS->getMultiLayerExtSpsFlag() )
    817 #else
    818   if ( pcSPS->getLayerId() > 0 )
    819 #endif
    820770  {
    821771    READ_FLAG( uiCode, "update_rep_format_flag" );               pcSPS->setUpdateRepFormatFlag( uiCode == 1 );
     
    839789    READ_UVLC (    uiCode, "pic_width_in_luma_samples" );          pcSPS->setPicWidthInLumaSamples ( uiCode    );
    840790    READ_UVLC (    uiCode, "pic_height_in_luma_samples" );         pcSPS->setPicHeightInLumaSamples( uiCode    );
    841 #if !H_MV_HLS10_MULTILAYERSPS
    842 #if H_MV
    843   }
    844 #endif
    845 #endif
    846791  READ_FLAG(     uiCode, "conformance_window_flag");
    847792  if (uiCode != 0)
     
    855800    READ_UVLC(   uiCode, "conf_win_top_offset" );                conf.setWindowTopOffset   ( uiCode  );
    856801    READ_UVLC(   uiCode, "conf_win_bottom_offset" );             conf.setWindowBottomOffset( uiCode  );   
    857 #if H_MV_HLS10_MULTILAYERSPS
    858   }
    859 #endif
     802  }
    860803#else
    861804    READ_UVLC(   uiCode, "conf_win_left_offset" );               conf.setWindowLeftOffset  ( uiCode * TComSPS::getWinUnitX( pcSPS->getChromaFormatIdc() ) );
     
    867810
    868811#if H_MV
    869 #if H_MV_HLS10_MULTILAYERSPS
    870812  if ( !pcSPS->getMultiLayerExtSpsFlag() )
    871 #else // H_MV_HLS10_GEN
    872   if ( pcSPS->getLayerId() == 0 )
    873 #endif // H_MV_HLS10_GEN
    874813  {
    875814#endif
     
    891830
    892831#if H_MV
    893 #if H_MV_HLS10_MULTILAYERSPS
    894832  if ( !pcSPS->getMultiLayerExtSpsFlag())
    895 #else
    896   if ( pcSPS->getLayerId() == 0 )
    897 #endif
    898833  { 
    899834#endif
     
    954889  {
    955890#if H_MV
    956 #if H_MV_HLS10_MULTILAYERSPS
    957891    if ( pcSPS->getMultiLayerExtSpsFlag() )
    958 #else
    959     if ( pcSPS->getLayerId() > 0 )
    960 #endif
    961892    {   
    962893      READ_FLAG( uiCode, "sps_infer_scaling_list_flag" ); pcSPS->setSpsInferScalingListFlag( uiCode == 1 );
     
    10861017  READ_FLAG( uiCode, "inter_view_mv_vert_constraint_flag" );    pcSPS->setInterViewMvVertConstraintFlag(uiCode == 1 ? true : false);
    10871018 
    1088 #if !H_MV_HLS10_PPS
    1089   READ_UVLC( uiCode, "num_scaled_ref_layer_offsets" ); pcSPS->setNumScaledRefLayerOffsets( uiCode );
    1090 
    1091   for( Int i = 0; i < pcSPS->getNumScaledRefLayerOffsets( ); i++)
    1092   {   
    1093     READ_CODE( 6, uiCode, "scaled_ref_layer_id" ); pcSPS->setScaledRefLayerId( i, uiCode );
    1094 
    1095     Int j = pcSPS->getScaledRefLayerId( i );
    1096     Int iCode;
    1097     READ_SVLC( iCode, "scaled_ref_layer_left_offset" ); pcSPS->setScaledRefLayerLeftOffset( j, iCode );
    1098     READ_SVLC( iCode, "scaled_ref_layer_top_offset" ); pcSPS->setScaledRefLayerTopOffset( j, iCode );
    1099     READ_SVLC( iCode, "scaled_ref_layer_right_offset" ); pcSPS->setScaledRefLayerRightOffset( j, iCode );
    1100     READ_SVLC( iCode, "scaled_ref_layer_bottom_offset" ); pcSPS->setScaledRefLayerBottomOffset( j, iCode );
    1101     READ_FLAG( uiCode, "sps_multilayer_ext_reserved_zero_flag[ i ]" );
    1102   }
    1103 #endif
    11041019}
    11051020
     
    11071022Void TDecCavlc::parseSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    11081023{
    1109 #if !MTK_I0099_VPS_EX2
    1110   UInt uiCode;
    1111 #if H_3D_QTLPC
    1112   //GT: This has to go to VPS
    1113   if( depthFlag )
    1114   {
    1115     READ_FLAG( uiCode, "use_qtl_flag" );
    1116     pcSPS->setUseQTL( uiCode );
    1117     READ_FLAG( uiCode, "use_pc_flag" );
    1118     pcSPS->setUsePC( uiCode );
    1119   }
    1120 #endif
    1121 #endif
    1122 }
    1123 #endif
    1124 
    1125 #if H_MV_HLS10_PPS
     1024
     1025}
     1026#endif
     1027
    11261028Void TDecCavlc::parsePPSMultilayerExtension(TComPPS* pcPPS)
    11271029{
     
    11341036
    11351037#endif
    1136 #endif
    11371038
    11381039Void TDecCavlc::parseVPS(TComVPS* pcVPS)
     
    11431044#if H_MV
    11441045  READ_FLAG( uiCode, "vps_base_layer_internal_flag" );            pcVPS->setVpsBaseLayerInternalFlag( uiCode == 1 );
    1145 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    11461046  READ_FLAG( uiCode, "vps_base_layer_available_flag" );           pcVPS->setVpsBaseLayerAvailableFlag( uiCode == 1 );
    1147 #else
    1148   READ_FLAG( uiCode, "vps_reserved_one_bit" );                    assert( uiCode == 1 );
    1149 #endif
    11501047#else
    11511048  READ_CODE( 2,  uiCode,  "vps_reserved_three_2bits" );           assert(uiCode == 3);
     
    11621059  READ_CODE( 16, uiCode,  "vps_reserved_ffff_16bits" );           assert(uiCode == 0xffff);
    11631060  parsePTL ( pcVPS->getPTL(), true, pcVPS->getMaxTLayers()-1);
    1164 #if H_MV_HLS10_PTL_INFER_FIX
    11651061#if H_MV
    11661062  pcVPS->getPTL()->inferGeneralValues ( true, 0, NULL );
    11671063  pcVPS->getPTL()->inferSubLayerValues( pcVPS->getMaxTLayers() - 1, 0, NULL );
    1168 #endif
    11691064#endif
    11701065  UInt subLayerOrderingInfoPresentFlag;
     
    11931088  READ_CODE( 6, uiCode, "vps_max_layer_id" );   pcVPS->setVpsMaxLayerId( uiCode );
    11941089
    1195 #if H_MV_HLS10_GEN_FIX
    11961090  READ_UVLC(    uiCode, "vps_num_layer_sets_minus1" );  pcVPS->setVpsNumLayerSetsMinus1( uiCode );
    1197 #else
    1198   READ_UVLC(    uiCode, "vps_max_num_layer_sets_minus1" );               pcVPS->setVpsNumLayerSetsMinus1( uiCode );
    1199 #endif
    12001091  for( UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx ++ )
    12011092  {
     
    12411132        READ_FLAG( uiCode, "cprms_present_flag[i]" );              pcVPS->setCprmsPresentFlag( uiCode == 1 ? true : false, i );
    12421133      }
     1134      else
     1135      {
     1136        pcVPS->setCprmsPresentFlag( true, i );
     1137      }
     1138
    12431139      parseHrdParameters(pcVPS->getHrdParameters(i), pcVPS->getCprmsPresentFlag( i ), pcVPS->getMaxTLayers() - 1);
    12441140    }
     
    12861182  UInt uiCode;
    12871183
    1288 #if H_MV_HLS10_PTL
    12891184  if( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() )
    12901185  {
    12911186    parsePTL( pcVPS->getPTL( 1 ),0, pcVPS->getMaxSubLayersMinus1()  ); 
    12921187   
    1293 #if !H_MV_HLS10_PTL_INFER_FIX
    1294     // Copy Profile info
    1295     TComPTL temp = *pcVPS->getPTL( 1 );
    1296     *pcVPS->getPTL( 1 ) = *pcVPS->getPTL( 0 );
    1297     pcVPS->getPTL( 1 )->copyLevelFrom( &temp );
    1298 #else
    12991188    pcVPS->getPTL( 1 )->inferGeneralValues ( false, 1, pcVPS->getPTL( 0 ) );
    13001189    pcVPS->getPTL( 1 )->inferSubLayerValues( pcVPS->getMaxSubLayersMinus1(), 1, pcVPS->getPTL( 0 ) );   
    1301 #endif
    1302   }
    1303 #endif
     1190  }
    13041191
    13051192  READ_FLAG( uiCode, "splitting_flag" );                          pcVPS->setSplittingFlag( uiCode == 1 ? true : false );
     
    13751262  pcVPS->setRefLayers();
    13761263
    1377 #if H_MV_HLS10_ADD_LAYERSETS
    13781264  if ( pcVPS->getNumIndependentLayers() > 1 )
    13791265  {
     
    13881274    pcVPS->deriveAddLayerSetLayerIdList( i );
    13891275  }
    1390 #endif
    13911276
    13921277  READ_FLAG( uiCode, "vps_sub_layers_max_minus1_present_flag" ); pcVPS->setVpsSubLayersMaxMinus1PresentFlag( uiCode == 1 );
     
    14251310  READ_UVLC( uiCode, "vps_num_profile_tier_level_minus1" );  pcVPS->setVpsNumProfileTierLevelMinus1( uiCode ); 
    14261311
    1427 #if H_MV_HLS10_PTL
    14281312  Int offsetVal =  ( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() ) ? 2 : 1;   
    14291313  for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 2 : 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
     
    14311315    READ_FLAG(  uiCode, "vps_profile_present_flag[i]" );    pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 );
    14321316    parsePTL ( pcVPS->getPTL( offsetVal ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers()-1);
    1433 #if H_MV_HLS10_PTL_INFER_FIX
    14341317    pcVPS->getPTL( offsetVal )->inferGeneralValues ( pcVPS->getVpsProfilePresentFlag( i ), offsetVal, pcVPS->getPTL( offsetVal - 1 ) );   
    14351318    pcVPS->getPTL( offsetVal )->inferSubLayerValues( pcVPS->getMaxSubLayersMinus1()      , offsetVal, pcVPS->getPTL( offsetVal - 1 ) );   
    1436 #else
    1437     if( !pcVPS->getVpsProfilePresentFlag( i ) )
    1438     {
    1439       TComPTL temp = *pcVPS->getPTL( offsetVal );
    1440       *pcVPS->getPTL( offsetVal ) = *pcVPS->getPTL( offsetVal - 1 );
    1441       pcVPS->getPTL( offsetVal )->copyLevelFrom( &temp );
    1442     }
    1443 #endif
    14441319    offsetVal++;
    14451320  }
    1446 #else
    1447   for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
    1448   {
    1449     READ_FLAG(  uiCode, "vps_profile_present_flag[i]" );    pcVPS->setVpsProfilePresentFlag( i, uiCode == 1 );
    1450     parsePTL ( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers()-1);
    1451     if( !pcVPS->getVpsProfilePresentFlag( i ) )
    1452     {
    1453       TComPTL temp = *pcVPS->getPTL( i );
    1454       *pcVPS->getPTL( i ) = *pcVPS->getPTL( i - 1 );
    1455       pcVPS->getPTL( i )->copyLevelFrom( &temp );
    1456     }
    1457   }
    1458 #endif
    1459 
    1460 #if !H_MV_HLS10_ADD_LAYERSETS
    1461   if ( pcVPS->getNumIndependentLayers() > 1 )
    1462   {
    1463    READ_UVLC( uiCode, "num_add_layer_sets"      ); pcVPS->setNumAddLayerSets( uiCode );
    1464   }
    1465   for (Int i = 0; i < pcVPS->getNumAddLayerSets(); i++)
    1466   {
    1467     for (Int j = 0; j < pcVPS->getNumIndependentLayers(); j++)
    1468     {
    1469       READ_CODE( pcVPS->getHighestLayerIdxPlus1Len( j ) , uiCode, "highest_layer_idx_plus1" ); pcVPS->setHighestLayerIdxPlus1( i, j, uiCode );
    1470     }
    1471   }
    1472 #endif
     1321
    14731322
    14741323  if (pcVPS->getNumLayerSets() > 1)
     
    14841333  pcVPS->setLayerSetIdxForOlsMinus1(0, -1);
    14851334
    1486 #if H_MV_HLS10_NESSECARY_LAYER
    14871335  pcVPS->deriveNecessaryLayerFlags( 0 );
    1488 #endif
    14891336  pcVPS->deriveTargetLayerIdList( 0 );
    14901337
    1491 #if H_MV_HLS10_PTL_FIX
    14921338  if (pcVPS->getVpsBaseLayerInternalFlag() )
    14931339  { 
    14941340    pcVPS->setProfileTierLevelIdx(0,0, pcVPS->inferProfileTierLevelIdx(0,0) );
    14951341  }
    1496 #endif
    14971342  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    14981343  {
    14991344    if( i >= pcVPS->getNumLayerSets( ) )   
    15001345    {       
    1501 #if !VPS_MISC_UPDATES
    1502       READ_UVLC( uiCode,      "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
    1503 #else
    15041346      READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
    1505 #endif
    15061347    }
    15071348
     
    15201361      }
    15211362    }
    1522 #if H_MV_HLS10_NESSECARY_LAYER
    15231363    pcVPS->deriveNecessaryLayerFlags( i );
    1524 #endif
    15251364    pcVPS->deriveTargetLayerIdList( i );
    15261365
    1527 #if H_MV_HLS10_PTL
    15281366    for ( Int j = 0; j < pcVPS->getNumLayersInIdList( pcVPS->olsIdxToLsIdx(i)); j++ )
    15291367    {   
     
    15321370        READ_CODE( pcVPS->getProfileTierLevelIdxLen(), uiCode,"profile_tier_level_idx[ i ][ j ]" );   pcVPS->setProfileTierLevelIdx( i, j, uiCode );
    15331371      }
    1534 #if H_MV_HLS10_PTL_FIX
    15351372      if (pcVPS->getNecessaryLayerFlag( i, j ) && pcVPS->getVpsNumProfileTierLevelMinus1() == 0 )
    15361373      {
    15371374        pcVPS->setProfileTierLevelIdx( i , j, pcVPS->inferProfileTierLevelIdx( i, j) );
    15381375      }
    1539 #endif
    1540     }
    1541 #else
    1542     if ( pcVPS->getProfileLevelTierIdxLen()  > 0 )
    1543     {
    1544       READ_CODE( pcVPS->getProfileLevelTierIdxLen(), uiCode,"profile_level_tier_idx[ i ]" );   pcVPS->setProfileLevelTierIdx( i , uiCode );
    1545     }
    1546 #endif
     1376    }
    15471377
    15481378    if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 )
     
    15941424  }
    15951425
    1596 #if !H_MV_HLS10_GEN_FIX
    1597   READ_FLAG( uiCode, "vps_reserved_zero_flag" );
    1598 #endif
    15991426  parseDpbSize( pcVPS );
    16001427
     
    16701497    pcRepFormat->inferChromaAndBitDepth(pcPrevRepFormat, false );
    16711498  }
    1672 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    16731499  READ_FLAG( uiCode, "conformance_window_vps_flag" ); pcRepFormat->setConformanceWindowVpsFlag( uiCode == 1 );
    16741500  if ( pcRepFormat->getConformanceWindowVpsFlag() )
     
    16791505    READ_UVLC( uiCode, "conf_win_vps_bottom_offset" ); pcRepFormat->setConfWinVpsBottomOffset( uiCode );
    16801506  }
    1681 #endif
    16821507}
    16831508
     
    17051530  if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    17061531  {
    1707 #if H_MV_HLS10_VPS_VUI
    17081532    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <  pcVPS->getNumLayerSets(); i++ )
    1709 #else
    1710     for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1711 #endif
    17121533    {
    17131534      for( Int j = 0; j  <=  pcVPS->getMaxSubLayersInLayerSetMinus1( i ); j++ )
     
    17421563  else
    17431564  {
    1744 #if H_MV_HLS10_VPS_VUI
    17451565    pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() - pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1 );
    1746 #else
    1747     pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() );
    1748 #endif
    17491566  }
    17501567
     
    17571574  }
    17581575
    1759 #if I0045_VPS_VUI_VST_PARAMS
    17601576  if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    17611577  {
     
    17791595    }
    17801596  }
    1781 #else
    1782   if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    1783   {
    1784     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1785     {
    1786       READ_CODE( 4, uiCode, "vps_video_signal_info_idx" ); pcVPSVUI->setVpsVideoSignalInfoIdx( i, uiCode );
    1787       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );
    1788     }
    1789   }
    1790   else
    1791   {
    1792     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1793     {
    1794       pcVPSVUI->setVpsVideoSignalInfoIdx( i, pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i );
    1795     }
    1796   }
    1797 #endif
     1597
    17981598  READ_FLAG( uiCode, "tiles_not_in_use_flag" ); pcVPSVUI->setTilesNotInUseFlag( uiCode == 1 );
    17991599  if( !pcVPSVUI->getTilesNotInUseFlag() )
     
    18111611      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ) ; j++ )
    18121612      {
    1813 #if H_MV_HLS10_REF_PRED_LAYERS
    18141613        Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getIdDirectRefLayer(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1815 #else
    1816         Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getRefLayerId(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1817 #endif
    18181614        if( pcVPSVUI->getTilesInUseFlag( i )  &&  pcVPSVUI->getTilesInUseFlag( layerIdx ) ) 
    18191615        {
     
    18331629    }
    18341630  }
    1835 #if H_MV_HLS10_VPS_VUI
    18361631  READ_FLAG( uiCode, "single_layer_for_non_irap_flag" ); pcVPSVUI->setSingleLayerForNonIrapFlag( uiCode == 1 );
    18371632  READ_FLAG( uiCode, "higher_layer_irap_skip_flag" ); pcVPSVUI->setHigherLayerIrapSkipFlag( uiCode == 1 );
    1838 #else
    1839   READ_CODE( 3, uiCode, "vps_vui_reserved_zero_3bits" );
    1840 #endif
    18411633  READ_FLAG( uiCode, "ilp_restricted_ref_layers_flag" ); pcVPSVUI->setIlpRestrictedRefLayersFlag( uiCode == 1 );
    18421634
     
    18471639      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ); j++ )
    18481640      {
    1849 #if H_MV_HLS10_REF_PRED_LAYERS
    18501641        if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getIdDirectRefLayer( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1851 #else
    1852         if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getRefLayerId( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1853 #endif
    18541642        {       
    18551643          READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcVPSVUI->setMinSpatialSegmentOffsetPlus1( i, j, uiCode );
     
    18701658  if ( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) )
    18711659  {
    1872 #if VPS_MISC_UPDATES
    18731660    assert(pcVPS->getTimingInfo()->getTimingInfoPresentFlag() == 1);
    1874 #endif
    18751661    parseVpsVuiBspHrdParameters( pcVPS );
    18761662  }
     
    18931679
    18941680  TComVpsVuiBspHrdParameters*  vpsVuiBspHrdP = pcVPSVUI->getVpsVuiBspHrdParameters();
    1895 #if H_MV_HLS10_VPS_VUI_BSP
    18961681  assert( vpsVuiBspHrdP == NULL );
    18971682  vpsVuiBspHrdP = new TComVpsVuiBspHrdParameters;
    18981683  pcVPSVUI->setVpsVuiBspHrdParameters( vpsVuiBspHrdP );
    1899 #else
    1900   assert ( vpsVuiBspHrdP );
    1901 #endif
    19021684  UInt uiCode;
    1903 #if H_MV_HLS10_VPS_VUI_BSP
    19041685  READ_UVLC( uiCode, "vps_num_add_hrd_params" ); vpsVuiBspHrdP->setVpsNumAddHrdParams( uiCode );
    19051686  vpsVuiBspHrdP->createAfterVpsNumAddHrdParams( pcVPS );
     
    19901771    }
    19911772  } 
    1992 #else
    1993   READ_UVLC( uiCode, "vps_num_bsp_hrd_parameters_minus1" ); vpsVuiBspHrdP->setVpsNumBspHrdParametersMinus1( uiCode );
    1994   for( Int i = 0; i <= vpsVuiBspHrdP->getVpsNumBspHrdParametersMinus1( ); i++ )
    1995   { 
    1996     if( i > 0 )
    1997     {
    1998       READ_FLAG( uiCode, "bsp_cprms_present_flag" ); vpsVuiBspHrdP->setBspCprmsPresentFlag( i, uiCode == 1 );
    1999     }
    2000     TComHRD* hrdParameters = vpsVuiBspHrdP->getHrdParametermeters( i );
    2001     parseHrdParameters( hrdParameters, vpsVuiBspHrdP->getBspCprmsPresentFlag( i ), pcVPS->getMaxSubLayersMinus1() );     
    2002   } 
    2003   for( Int h = 1; h <= pcVPS->getVpsNumLayerSetsMinus1(); h++ )
    2004   { 
    2005     READ_UVLC( uiCode, "num_bitstream_partitions" ); vpsVuiBspHrdP->setNumBitstreamPartitions( h, uiCode );
    2006     for( Int i = 0; i < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); i++ ) 
    2007     {
    2008       for( Int j = 0; j < pcVPS->getNumLayersInIdList( h ); j++ ) 
    2009       {
    2010         READ_FLAG( uiCode, "layer_in_bsp_flag" ); vpsVuiBspHrdP->setLayerInBspFlag( h, i, j, uiCode == 1 );
    2011       }
    2012     }
    2013     vpsVuiBspHrdP->checkLayerInBspFlag( pcVPS, h );
    2014    
    2015     if( vpsVuiBspHrdP->getNumBitstreamPartitions( h ) )
    2016     { 
    2017       READ_UVLC( uiCode, "num_bsp_sched_combinations_minus1" ); vpsVuiBspHrdP->setNumBspSchedCombinationsMinus1( h, uiCode );
    2018       for( Int i = 0; i <= vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )
    2019       {
    2020         for( Int j = 0; j < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); j++ )
    2021         { 
    2022           READ_CODE( vpsVuiBspHrdP->getBspCombHrdIdxLen(), uiCode, "bsp_comb_hrd_idx" ); vpsVuiBspHrdP->setBspCombHrdIdx( h, i, j, uiCode );
    2023           READ_UVLC( uiCode, "bsp_comb_sched_idx" ); vpsVuiBspHrdP->setBspCombSchedIdx( h, i, j, uiCode );
    2024           vpsVuiBspHrdP->checkBspCombHrdAndShedIdx( pcVPS, h, i, j );
    2025         } 
    2026       }
    2027     } 
    2028   } 
    2029 #endif 
    20301773}
    20311774
     
    20601803        for( Int k = 0; k < vps->getNumLayersInIdList( currLsIdx ); k++ )   
    20611804        {
    2062 #if H_MV_HLS10_DBP_SIZE
    20631805          if ( vps->getNecessaryLayerFlag( i, k ) && ( vps->getVpsBaseLayerInternalFlag() || ( vps->getLayerSetLayerIdList(vps->olsIdxToLsIdx(i),k) != 0 ) ))
    20641806          {
     
    20721814            }
    20731815          }
    2074 #else
    2075           READ_UVLC( uiCode, "max_vps_dec_pic_buffering_minus1" ); dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, uiCode );
    2076 #endif
    20771816        }
    20781817        READ_UVLC( uiCode, "max_vps_num_reorder_pics" ); dpbSize->setMaxVpsNumReorderPics( i, j, uiCode );
     
    20851824          for( Int k = 0; k < vps->getNumLayersInIdList( vps->olsIdxToLsIdx( i ) ); k++ )   
    20861825          {
    2087 #if H_MV_HLS10_DBP_SIZE
    20881826            if ( vps->getNecessaryLayerFlag(i, k ) )
    20891827            {           
    2090 #endif
    20911828              dpbSize->setMaxVpsDecPicBufferingMinus1( i, k, j, dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) );
    2092 #if H_MV_HLS10_DBP_SIZE
    20931829            }
    2094 #endif           
    20951830          }
    20961831          dpbSize->setMaxVpsNumReorderPics      ( i, j, dpbSize->getMaxVpsNumReorderPics      ( i, j - 1 ) );
     
    21061841{
    21071842  UInt uiCode;
    2108 #if SEC_VPS_CLEANUP_I0090
    21091843  for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    2110 #else
    2111   for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )
    2112 #endif
    21131844  {
    21141845#if H_3D_ARP
     
    21191850    pcVPS->setSubPULog2Size(i, 0);
    21201851#endif
    2121 #if !SEC_VPS_CLEANUP_I0090
    2122     if ( i != 0 )
    2123 #endif
    2124     {
    2125 #if MTK_I0099_VPS_EX2
     1852    {
     1853#if H_3D_IV_MERGE
    21261854      READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    2127 #if SEC_HLS_CLEANUP_I0100
    21281855      READ_FLAG( uiCode, "iv_mv_scaling_flag[i]");       pcVPS->setIvMvScalingFlag         ( i, uiCode == 1 ? true : false );
    21291856#endif
    2130 #endif
    21311857      if( !( pcVPS->getDepthId( i ) == 1 ) )
    21321858      {
    21331859#if H_3D_IV_MERGE
    2134 #if !MTK_I0099_VPS_EX2
    2135         READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    2136 #endif
    21371860        if( !pcVPS->getNumDirectRefLayers(i) )
    21381861        {
     
    21661889      else
    21671890      {
    2168 #if !MTK_I0099_VPS_EX2
    2169 #if H_3D_IV_MERGE
    2170         if(i!=1)
    2171         {
    2172           READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
    2173           if( !pcVPS->getNumDirectRefLayers(i) )
    2174           {
    2175             assert( !uiCode );         
    2176           }
    2177         }
    2178 #endif
    2179 #if H_3D_SPIVMP
    2180         if (i!=1)
    2181         {
    2182           READ_UVLC (uiCode, "log2_sub_PU_size_minus3[i]");     pcVPS->setSubPULog2Size(i, uiCode+3);
    2183         }
    2184 #endif
    2185 #endif
    21861891#if H_3D_IV_MERGE
    21871892        READ_FLAG( uiCode, "mpi_flag[i]" );             pcVPS->setMPIFlag( i, uiCode == 1 ? true : false );
    2188 #endif
    2189 #if MTK_I0099_VPS_EX2
    21901893        READ_UVLC (uiCode, "log2_mpi_sub_PU_size_minus3[i]");     pcVPS->setSubPUMPILog2Size(i, uiCode+3);
    21911894#endif
    21921895        READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
    2193 #if SEPARATE_FLAG_I0085
     1896#if H_3D
    21941897        READ_FLAG( uiCode, "ivp_flag[i]" );                   pcVPS->setIVPFlag( i, uiCode == 1 ? true : false );
    21951898#endif
    2196 #if MTK_I0099_VPS_EX2
     1899#if H_3D_QTLPC
    21971900        READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPredFlag     ( i, uiCode == 1 ? true : false );
    21981901#endif
     
    22091912
    22101913  READ_UVLC( uiCamParPrecision, "cp_precision" );
    2211 #if SEC_VPS_CLEANUP_I0090
    22121914  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
    2213 #else
    2214   for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)
    2215 #endif
    22161915  {
    22171916    pcVPS->setCamParPresent         ( viewIndex, false );
     
    22351934    }
    22361935  }
    2237 #if !MTK_I0099_VPS_EX2
    2238   READ_UVLC (uiCode, "log2_sub_PU_MPI_size_minus3");              pcVPS->setSubPUMPILog2Size( uiCode + 3 );
    2239 #endif
    2240 #if !SEC_HLS_CLEANUP_I0100
    2241   READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false );
    2242 #endif
    22431936}
    22441937#endif
     
    22881981  sps->inferScalingList( parameterSetManager->getActiveSPS( sps->getSpsScalingListRefLayerId() ) );   
    22891982  sps->inferSpsMaxDecPicBufferingMinus1( vps, targetOlsIdx, rpcSlice->getLayerId(), false );
    2290 #if !H_MV_HLS10_ADD_LAYERSETS
    2291   vps->inferDbpSizeLayerSetZero( sps, false );
    2292 #endif
    22931983
    22941984  if ( sps->getVuiParametersPresentFlag() )
     
    23582048      esb++;
    23592049      READ_FLAG( uiCode, "discardable_flag" ); rpcSlice->setDiscardableFlag( uiCode == 1 );
    2360 #if NON_REF_NAL_TYPE_DISCARDABLE
    23612050      if ( uiCode == 1 )
    23622051      {
     
    23672056          rpcSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL_R);
    23682057      }
    2369 #endif
    23702058    }
    23712059
     
    25152203          rps->checkMaxNumPics(
    25162204            vps->getVpsExtensionFlag(),
    2517 #if H_MV_HLS10_MAXNUMPICS
    25182205            MAX_INT,  // To be replaced by MaxDbpSize
    2519 #else
    2520             vps->getMaxNumPics( rpcSlice->getLayerId() ),
    2521 #endif
    25222206            rpcSlice->getLayerId(),
    25232207            sps->getMaxDecPicBuffering( sps->getSpsMaxSubLayersMinus1() ) - 1 );
     
    26322316        rps->checkMaxNumPics(
    26332317          vps->getVpsExtensionFlag(),
    2634 #if H_MV_HLS10_MAXNUMPICS
    26352318            MAX_INT,  // To be replaced by MaxDbpsize
    2636 #else
    2637           vps->getMaxNumPics( rpcSlice->getLayerId() ),
    2638 #endif
    26392319          rpcSlice->getLayerId(),
    26402320          sps->getMaxDecPicBuffering( sps->getSpsMaxSubLayersMinus1() ) - 1 );
     
    26552335      if (rpcSlice->getSPS()->getTMVPFlagsPresent())
    26562336      {
    2657 #if I0044_SLICE_TMVP
     2337#if H_MV
    26582338        READ_FLAG( uiCode, "slice_temporal_mvp_enabled_flag" );
    26592339#else
     
    28652545    }
    28662546#if H_3D_IC
    2867 #if SEC_HLS_CLEANUP_I0100
    28682547    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
    2869 #else
    2870     else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth())
    2871 #endif
    28722548    {
    28732549      UInt uiCodeTmp = 0;
     
    28832559    }
    28842560#endif
    2885 #if MTK_SINGLE_DEPTH_MODE_I0095
     2561#if H_3D_SINGLE_DEPTH
    28862562    if(rpcSlice->getIsDepth())
    28872563    {
     
    30092685
    30102686#if H_3D
    3011 #if LGE_FCO_I0116
     2687#if H_3D_FCO
    30122688  if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() )  && rpcSlice->getIsDepth() )
    30132689#else
     
    30902766    }
    30912767    assert( ( m_pcBitstream->getNumBitsRead() - posFollSliceSegHeaderExtLen ) == rpcSlice->getSliceSegmentHeaderExtensionLength() * 8  );
     2768  }
    30922769#else
    30932770    READ_UVLC( uiCode, "slice_header_extension_length" );
     
    30972774      READ_CODE(8,ignore,"slice_header_extension_data_byte");
    30982775    } 
    3099 #endif
    3100   }
    3101 #if INFERENCE_POC_MSB_VAL_PRESENT
    3102   else
    3103   {
    3104     rpcSlice->setSliceSegmentHeaderExtensionLength( 0 );
    3105     rpcSlice->setPocMsbValPresentFlag( false );
    3106   }
    3107 #endif
    3108 
    3109 
     2776  }
     2777#endif
    31102778  m_pcBitstream->readByteAlignment();
    31112779
     
    31982866      READ_FLAG( uiCode, "sub_layer_profile_present_flag[i]" ); rpcPTL->setSubLayerProfilePresentFlag(i, uiCode);
    31992867#if H_MV
    3200 #if !H_MV_HLS10_PTL_INFER_FIX
    3201       rpcPTL->setSubLayerProfilePresentFlag( i, profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) );
    3202 #else
    32032868      // When profilePresentFlag is equal to 0, sub_layer_profile_present_flag[ i ] shall be equal to 0.
    32042869      assert( profilePresentFlag || !rpcPTL->getSubLayerProfilePresentFlag(i) );
    3205 #endif
    32062870#else
    32072871    }
     
    32212885  for(Int i = 0; i < maxNumSubLayersMinus1; i++)
    32222886  {
    3223 #if H_MV_HLS10_PTL_INFER_FIX
    32242887#if H_MV
    32252888    if( rpcPTL->getSubLayerProfilePresentFlag(i) )         
    32262889#else
    32272890    if( profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) )         
    3228 #endif
    3229 #else
    3230     if( profilePresentFlag && rpcPTL->getSubLayerProfilePresentFlag(i) )   
    32312891#endif
    32322892    {
     
    32622922  ptl->setFrameOnlyConstraintFlag(uiCode ? true : false);
    32632923 
    3264 #if H_MV_HLS10_PTL
    3265 #if H_MV_HLS10_PTL_INFER_FIX
     2924#if H_MV
    32662925  if( ptl->getV2ConstraintsPresentFlag() )
    3267 #else
    3268   if( ptl->getProfileIdc( ) ==  4 || ptl->getProfileCompatibilityFlag( 4 )  ||
    3269       ptl->getProfileIdc( ) ==  5 || ptl->getProfileCompatibilityFlag( 5 )  ||
    3270       ptl->getProfileIdc( ) ==  6 || ptl->getProfileCompatibilityFlag( 6 )  ||
    3271       ptl->getProfileIdc( ) ==  7 || ptl->getProfileCompatibilityFlag( 7 ) )
    3272 #endif
    32732926  {
    32742927    READ_FLAG( uiCode, "max_12bit_constraint_flag" );        ptl->setMax12bitConstraintFlag      ( uiCode == 1 );
     
    32912944    READ_CODE(11, uiCode, "XXX_reserved_zero_43bits[32..42]");
    32922945  }
    3293 #if H_MV_HLS10_PTL_INFER_FIX
    32942946  if( ptl->getInbldPresentFlag() )
    3295 #else
    3296   if( ( ptl->getProfileIdc() >= 1 && ptl->getProfileIdc() <= 5 )  ||
    3297     ptl->getProfileCompatibilityFlag( 1 ) || ptl->getProfileCompatibilityFlag( 2 )  ||
    3298     ptl->getProfileCompatibilityFlag( 3 ) || ptl->getProfileCompatibilityFlag( 4 )  ||
    3299     ptl->getProfileCompatibilityFlag( 5 ) )
    3300 #endif
    33012947  {
    33022948    READ_FLAG( uiCode, "inbld_flag" ); ptl->setInbldFlag( uiCode == 1 );
     
    33312977  assert(0);
    33322978}
    3333 #if MTK_SINGLE_DEPTH_MODE_I0095
     2979#if H_3D_SINGLE_DEPTH
    33342980Void TDecCavlc::parseSingleDepthMode( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ )
    33352981{
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.h

    r1066 r1084  
    9797#endif
    9898
    99 #if H_MV_HLS10_PPS
    10099#if H_MV
    101100  Void  parsePPSMultilayerExtension( TComPPS* pcPPS );
    102 #endif
    103101#endif
    104102
     
    126124 
    127125  Void  parseSkipFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    128 #if MTK_SINGLE_DEPTH_MODE_I0095
     126#if H_3D_SINGLE_DEPTH
    129127  Void  parseSingleDepthMode        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    130128#endif 
  • trunk/source/Lib/TLibDecoder/TDecCu.cpp

    r1066 r1084  
    420420    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    421421    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    422 #if !FIX_TICKET_79
    423     InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    424 #endif
    425422#if H_3D_SPIVMP
    426423    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    434431    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    435432    m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
    436 #if !FIX_TICKET_79
    437       , inheritedVSPDisInfo
    438 #endif
    439433#if H_3D_SPIVMP
    440434      , pcMvFieldSP, puhInterDirSP
     
    456450    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    457451#endif
    458 #endif
    459 #if H_3D_VSP && !FIX_TICKET_79
    460     if(vspFlag[uiMergeIndex])
    461     {
    462       pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiAbsPartIdx, 0, uiDepth);
    463     }
    464452#endif
    465453    pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
     
    546534    return;
    547535  }
    548 #if MTK_SINGLE_DEPTH_MODE_I0095
     536#if H_3D_SINGLE_DEPTH
    549537  m_pcEntropyDecoder->decodeSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );
    550538  if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
     
    580568  m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, uiCurrWidth, uiCurrHeight, bCodeDQP );
    581569  setdQPFlag( bCodeDQP );
    582 #if MTK_SINGLE_DEPTH_MODE_I0095
     570#if H_3D_SINGLE_DEPTH
    583571  }
    584572#endif
     
    682670      break;
    683671    case MODE_INTRA:
    684 #if MTK_SINGLE_DEPTH_MODE_I0095
     672#if H_3D_SINGLE_DEPTH
    685673      if( m_ppcCU[uiDepth]->getSingleDepthFlag(0) )
    686674        xReconIntraSingleDepth( m_ppcCU[uiDepth], 0, uiDepth );
     
    730718  }
    731719}
    732 #if MTK_SINGLE_DEPTH_MODE_I0095
     720#if H_3D_SINGLE_DEPTH
    733721Void TDecCu::xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    734722{
     
    749737  Pel DepthNeighbours[5];
    750738  Int index =0;
    751   for( Int i = 0; (i < 5) && (index<MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE) ; i++ )
     739  for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
    752740  {
    753741    if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i))
     
    859847  // get collocated depth block
    860848  UInt uiDepthStride = 0;
    861 #if LGE_FCO_I0116
     849#if H_3D_FCO
    862850  Pel* pDepthPels = pcCU->getVirtualDepthBlock(pcCU->getZorderIdxInCU(), pcCU->getWidth(0), pcCU->getHeight(0), uiDepthStride);
    863851#else
     
    932920 
    933921  // reconstruct final prediction signal by combining both segments
    934 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    935922  m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize);
    936 #else
    937   m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0));
    938 #endif
    939  
     923
    940924  // inter recon
    941925  xDecodeInterTexture( pcCU, 0, uiDepth );
     
    13111295    Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx);
    13121296
    1313 #if SHARP_DMM1_I0110
    13141297    WedgeList* pacWedgeList  = pcCU->isDMM1UpscaleMode(uiWidth) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] :  &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    1315 #else
    1316     WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    1317 #endif
    13181298    TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx ));
    13191299
    13201300    uiNumSegments = 2;
    13211301
    1322 #if SHARP_DMM1_I0110
    13231302    pbMask       = pcCU->isDMM1UpscaleMode( uiWidth ) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern();
    13241303    uiMaskStride = pcCU->isDMM1UpscaleMode( uiWidth ) ? uiWidth : pcWedgelet->getStride();
    1325 #else
    1326     pbMask = pcWedgelet->getPattern();
    1327     uiMaskStride = pcWedgelet->getStride();
    1328 #endif
    13291304  }
    13301305  if( getDimType( uiLumaPredMode ) == DMM4_IDX )
  • trunk/source/Lib/TLibDecoder/TDecCu.h

    r1039 r1084  
    123123  Void setdQPFlag               ( Bool b )                { m_bDecodeDQP = b;           }
    124124  Void xFillPCMBuffer           (TComDataCU* pCU, UInt depth);
    125 #if MTK_SINGLE_DEPTH_MODE_I0095
     125#if H_3D_SINGLE_DEPTH
    126126  Void xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    127127#endif
  • trunk/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1039 r1084  
    5252  m_pcEntropyDecoderIf->parseSkipFlag( pcCU, uiAbsPartIdx, uiDepth );
    5353}
    54 #if MTK_SINGLE_DEPTH_MODE_I0095
     54#if H_3D_SINGLE_DEPTH
    5555Void TDecEntropy::decodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    5656{
     
    152152 
    153153#if H_3D_DBBP
    154 
    155 #if SEC_DBBP_EXPLICIT_SIG_I0077
    156 #if SEC_DBBP_DISALLOW_8x8_I0078
    157154  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    158 #else
    159   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )
    160 #endif
    161 #else
    162 #if SEC_DBBP_DISALLOW_8x8_I0078
    163   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    164 #else
    165   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )
    166 #endif
    167 #endif
    168155  {
    169156    decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth);
    170 #if !SEC_DBBP_EXPLICIT_SIG_I0077   
    171     if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    172     {
    173      
    174       // get collocated depth block
    175       UInt uiDepthStride = 0;
    176       Pel* pDepthPels = NULL;
    177       pDepthPels = pcCU->getVirtualDepthBlock(uiAbsPartIdx, pcCU->getWidth(uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), uiDepthStride);
    178      
    179       AOF( pDepthPels != NULL );
    180       AOF( uiDepthStride != 0 );
    181      
    182       // derive true partitioning for this CU based on depth
    183       // (needs to be done in parsing process as motion vector predictors are also derived during parsing)
    184       PartSize eVirtualPartSize = m_pcPrediction->getPartitionSizeFromDepth(pDepthPels, uiDepthStride, pcCU->getWidth(uiAbsPartIdx));
    185       AOF( eVirtualPartSize != SIZE_NONE );
    186      
    187       pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);
    188      
    189       // make sure that DBBP flag is set for both segments
    190       UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxCUDepth() - uiDepth ) << 1 ) ) >> 4;
    191       pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth);
    192       pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
    193     }
    194 #endif
    195157  }
    196158#endif
     
    311273          Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    312274          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    313 #if !FIX_TICKET_79
    314           InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    315 #endif
    316275#if H_3D_SPIVMP
    317276          memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    320279          pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);
    321280          pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
    322 #if !FIX_TICKET_79
    323             , inheritedVSPDisInfo
    324 #endif
    325281#if H_3D_SPIVMP
    326282            , pcMvFieldSP, puhInterDirSP
     
    334290          pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    335291
    336 #if !FIX_TICKET_79
    337           if(vspFlag[uiMergeIndex])
    338           {
    339             pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiSubPartIdx, uiPartIdx, uiDepth);
    340           }
    341 #endif
    342292#else
    343293#if H_3D
     
    360310        Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    361311        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    362 #if !FIX_TICKET_79
    363         InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    364 #endif
    365312#if H_3D_SPIVMP
    366313        memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     
    369316        pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    370317        pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours
    371 #if !FIX_TICKET_79
    372           , inheritedVSPDisInfo
    373 #endif
    374318#if H_3D_SPIVMP
    375319          , pcMvFieldSP, puhInterDirSP
     
    382326          ,numValidMergeCand );
    383327        pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    384 #if !FIX_TICKET_79
    385         if(vspFlag[uiMergeIndex])
    386         {
    387           pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeIndex].m_acDvInfo, uiSubPartIdx, uiPartIdx, uiDepth);
    388         }
    389 #endif
    390328#else
    391329#if H_3D
     
    485423#endif
    486424    }
    487 #if H_3D_VSP && !FIX_TICKET_75
    488     if ( (pcCU->getInterDir(uiSubPartIdx) == 3) && pcSubCU->isBipredRestriction(uiPartIdx) && (pcCU->getVSPFlag(uiSubPartIdx) == 0))
    489 #else
    490425    if ( (pcCU->getInterDir(uiSubPartIdx) == 3) && pcSubCU->isBipredRestriction(uiPartIdx) )
    491 #endif
    492426    {
    493427      pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMv( TComMv(0,0), ePartSize, uiSubPartIdx, uiDepth, uiPartIdx);
  • trunk/source/Lib/TLibDecoder/TDecEntropy.h

    r1039 r1084  
    8989public:
    9090  virtual Void parseSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    91 #if MTK_SINGLE_DEPTH_MODE_I0095
     91#if H_3D_SINGLE_DEPTH
    9292  virtual Void parseSingleDepthMode       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
    9393#endif
     
    132132  virtual Void updateContextTables( SliceType eSliceType, Int iQp ) = 0;
    133133 
    134   virtual ~TDecEntropyIf() {};
     134  virtual ~TDecEntropyIf() {}
    135135};
    136136
     
    179179  Void decodeSplitFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    180180  Void decodeSkipFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    181 #if MTK_SINGLE_DEPTH_MODE_I0095
     181#if H_3D_SINGLE_DEPTH
    182182  Void decodeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ;
    183183#endif
  • trunk/source/Lib/TLibDecoder/TDecGop.cpp

    r976 r1084  
    248248    calcAndPrintHashStatus(*rpcPic->getPicYuvRec(), hash);
    249249  }
     250#if !H_MV
     251#if SETTING_PIC_OUTPUT_MARK
     252  rpcPic->setOutputMark(rpcPic->getSlice(0)->getPicOutputFlag() ? true : false);
     253#else
     254  rpcPic->setOutputMark(true);
     255#endif
     256  rpcPic->setReconMark(true);
     257#endif
    250258}
    251259
  • trunk/source/Lib/TLibDecoder/TDecSbac.cpp

    r1066 r1084  
    5252, m_cCUSplitFlagSCModel       ( 1,             1,               NUM_SPLIT_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels )
    5353, m_cCUSkipFlagSCModel        ( 1,             1,               NUM_SKIP_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    54 #if MTK_SINGLE_DEPTH_MODE_I0095
     54#if H_3D_SINGLE_DEPTH
    5555, m_cCUSingleDepthFlagSCModel        ( 1,             1,               NUM_SINGLEDEPTH_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    5656, m_cSingleDepthValueSCModel         ( 1,             1,               NUM_SINGLE_DEPTH_VALUE_DATA_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
     
    136136  m_cCUSplitFlagSCModel.initBuffer       ( sliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    137137  m_cCUSkipFlagSCModel.initBuffer        ( sliceType, qp, (UChar*)INIT_SKIP_FLAG );
    138 #if MTK_SINGLE_DEPTH_MODE_I0095
     138#if H_3D_SINGLE_DEPTH
    139139  m_cCUSingleDepthFlagSCModel.initBuffer        ( sliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    140140  m_cSingleDepthValueSCModel.initBuffer         ( sliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    207207  m_cCUSplitFlagSCModel.initBuffer       ( eSliceType, iQp, (UChar*)INIT_SPLIT_FLAG );
    208208  m_cCUSkipFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    209 #if MTK_SINGLE_DEPTH_MODE_I0095
     209#if H_3D_SINGLE_DEPTH
    210210  m_cCUSingleDepthFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    211211  m_cSingleDepthValueSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    432432#endif
    433433
    434 #if !FIX_TICKET_76
    435 #if H_3D_DIM_SDC
    436 Void TDecSbac::xParseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiSegment )
    437 {
    438   assert( pcCU->getSlice()->getIsDepth() );
    439   assert( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N );
    440   assert( pcCU->getSDCFlag(uiAbsPartIdx) );
    441   assert( uiSegment < 2 );
    442  
    443   UInt uiResidual = 0;
    444   UInt uiBit      = 0;
    445   UInt uiAbsIdx   = 0;
    446   UInt uiSign     = 0;
    447   Int  iIdx       = 0;
    448  
    449 #if H_3D_DIM_DLT
    450   UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
    451 #else
    452   UInt uiMaxResidualBits = g_bitDepthY;
    453 #endif
    454   assert( uiMaxResidualBits <= g_bitDepthY );
    455  
    456   m_pcTDecBinIf->decodeBin(uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );
    457  
    458 #if H_MV_ENC_DEC_TRAC
    459   DTRACE_CU("sdc_residual_flag[i]", uiResidual)
    460 #endif
    461  
    462   if (uiResidual)
    463   {
    464     // decode residual sign bit
    465     m_pcTDecBinIf->decodeBinEP(uiSign);
    466 #if H_MV_ENC_DEC_TRAC
    467     DTRACE_CU("sdc_residual_sign_flag[i]", uiSign)
    468 #endif
    469    
    470     // decode residual magnitude
    471     // prefix part
    472     UInt uiCount = 0;
    473 #if H_3D_DIM_DLT
    474     UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
    475 #else
    476     UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);
    477 #endif
    478     UInt uiPrefixThreshold = ((uiNumDepthValues * 3) >> 2);
    479     for ( UInt ui = 0; ui < uiPrefixThreshold; ui++)
    480     {
    481       m_pcTDecBinIf->decodeBin( uiBit, m_cSDCResidualSCModel.get(0, 0, 0) );
    482       if ( uiBit == 0 )
    483         break;
    484       else
    485         uiCount++;
    486     }
    487     // suffix part
    488     if ( uiCount == uiPrefixThreshold )
    489     {
    490       for ( UInt ui = 0; ui < numBitsForValue(uiNumDepthValues - uiPrefixThreshold); ui++ )
    491       {
    492         m_pcTDecBinIf->decodeBinEP( uiBit );
    493         uiAbsIdx |= uiBit << ui;
    494       }
    495       uiAbsIdx += uiCount;
    496     }
    497     else
    498     {
    499       uiAbsIdx = uiCount;
    500     }
    501  
    502 #if H_MV_ENC_DEC_TRAC
    503     DTRACE_CU("sdc_residual_abs_minus1[i]", uiAbsIdx)
    504 #endif
    505    
    506     uiAbsIdx += 1;
    507     iIdx =(Int)(uiSign ? -1 : 1)*uiAbsIdx;
    508   }
    509  
    510   pcCU->setSDCSegmentDCOffset(iIdx, uiSegment, uiAbsPartIdx);
    511 }
    512 #endif
    513 #endif
     434
    514435#endif
    515436/** Parse I_PCM information.
     
    649570#endif
    650571}
    651 #if MTK_SINGLE_DEPTH_MODE_I0095
     572#if H_3D_SINGLE_DEPTH
    652573Void TDecSbac::parseSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    653574{
     
    671592
    672593    UInt uiUnaryIdx = 0;
    673     UInt uiNumCand = MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE;
     594    UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE;
    674595    if ( uiNumCand > 1 )
    675596    {
     
    781702  Bool bParseSplitFlag    = true;
    782703
    783 #if MTK_I0099_VPS_EX2
    784704  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    785705  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    786 #else
    787   TComSPS *sps            = pcCU->getPic()->getSlice(0)->getSPS();
    788 #endif
    789706  TComPic *pcTexture      = pcCU->getSlice()->getTexturePic();
    790707  Bool bDepthMapDetect    = (pcTexture != NULL);
     
    793710  Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    794711
    795 #if MTK_I0099_VPS_EX2
    796 #if LGE_FCO_I0116
     712#if H_3D_FCO
    797713  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag && pcTexture->getReconMark())
    798714#else
    799715  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag)
    800 #endif
    801 #else
    802   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
    803716#endif
    804717  {
     
    843756#if H_3D_QTLPC
    844757  Bool bParsePartSize    = true;
    845 #if MTK_I0099_VPS_EX2
    846758  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    847759  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    848 #else
    849   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
    850 #endif
    851760  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    852761  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    857766  Bool depthDependent = false;
    858767  UInt uiTexturePart = uiMode;
    859 #if MTK_I0099_VPS_EX2
    860 #if LGE_FCO_I0116
     768
     769#if H_3D_FCO
    861770  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag && pcTexture->getReconMark())
    862771#else
    863772  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag )
    864 #endif
    865 #else
    866   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
    867773#endif
    868774  {
     
    1076982  {
    1077983#if H_3D_DIM
    1078 #if SEPARATE_FLAG_I0085
    1079984    if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() )
    1080 #else
    1081     if( pcCU->getSlice()->getVpsDepthModesFlag() )
    1082 #endif
    1083985    {
    1084986      parseIntraDepth( pcCU, absPartIdx+partOffset*j, depth );
     
    12221124  if( uiIsDimMode )
    12231125  {
    1224 #if SEPARATE_FLAG_I0085
    12251126    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag() )
    12261127    {
     
    12281129      if( !uiSymbol )
    12291130      {
    1230 #if HS_DMM_SIGNALLING_I0120
    12311131        pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    1232 #else
    1233         pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
    1234 #endif
    12351132      }
    12361133      else
    12371134      {
    1238 #if HS_DMM_SIGNALLING_I0120
    12391135        pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
    1240 #else
    1241         pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
    1242 #endif
    12431136      }
    12441137    }
    12451138    else if ( pcCU->getSlice()->getVpsDepthModesFlag() )
    12461139    {
    1247 #if HS_DMM_SIGNALLING_I0120
    12481140      pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    1249 #else
    1250       pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
    1251 #endif
    12521141    }
    12531142    else if( pcCU->getSlice()->getIVPFlag() )
    12541143    {
    1255 #if HS_DMM_SIGNALLING_I0120
    12561144      pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
    1257 #else
    1258       pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
    1259 #endif
    1260     }
    1261 #else
    1262     m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    1263     if( !uiSymbol )
    1264     {
    1265 #if HS_DMM_SIGNALLING_I0120
    1266       pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    1267 #else
    1268       pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
    1269 #endif
    1270     }
    1271     else
    1272     {
    1273 #if HS_DMM_SIGNALLING_I0120
    1274       pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
    1275 #else
    1276       pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
    1277 #endif
    1278     }
    1279 #endif
     1145    }
    12801146  }
    12811147}
     
    21902056  }
    21912057
    2192 #if HS_DMM_SIGNALLING_I0120
    21932058  UInt symbol = 1;
    21942059  UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1;
    2195 #else
    2196   UInt symbol = 0;
    2197   UInt uiNumSegments = 0;
    2198 #endif
    2199 
    2200 #if HS_DMM_SIGNALLING_I0120
     2060
    22012061  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
    22022062  {
    2203 #else
    2204   if( pcCU->isIntra( absPartIdx ) )
    2205   {
    2206     UInt dir     = pcCU->getLumaIntraDir( absPartIdx );
    2207     uiNumSegments = isDimMode( dir ) ? 2 : 1;
    2208 #endif
     2063
    22092064    m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    2210 #if !HS_DMM_SIGNALLING_I0120
    2211     if( pcCU->getSDCFlag( absPartIdx ) )
    2212     {
    2213 #endif
    22142065      assert( pcCU->getPartitionSize( absPartIdx ) == SIZE_2Nx2N );
    22152066      pcCU->setTrIdxSubParts( 0, absPartIdx, depth );
    22162067      pcCU->setCbfSubParts( 1, 1, 1, absPartIdx, depth );
    22172068    }
    2218 #if !HS_DMM_SIGNALLING_I0120
    2219     else
    2220     {
    2221       pcCU->setLumaIntraDirSubParts( dir + symbol, absPartIdx, depth );
    2222     }
    2223   }
    2224   else
    2225   {
    2226     uiNumSegments = 1;
    2227     symbol = 1;
    2228   }
    2229 #endif
    2230 
    22312069
    22322070  for( UInt segment = 0; segment < uiNumSegments; segment++ )
     
    22892127  m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) );
    22902128 
    2291 #if SEC_DBBP_EXPLICIT_SIG_I0077
    22922129  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
    22932130  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
     
    22952132  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth);
    22962133  pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth);
    2297 #else
    2298   if( uiSymbol )
    2299   {
    2300     pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx, 0, uiDepth);
    2301     UInt uiCurrPartNumQ = (pcCU->getPic()->getNumPartInCU() >> (2 * uiDepth)) >> 2;
    2302     pcCU->setDBBPFlagSubParts(true, uiAbsPartIdx + 2*uiCurrPartNumQ, 1, uiDepth);
    2303   }
    2304 #endif
    23052134}
    23062135#endif
  • trunk/source/Lib/TLibDecoder/TDecSbac.h

    r1039 r1084  
    129129 
    130130  Void parseSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    131 #if MTK_SINGLE_DEPTH_MODE_I0095 
     131#if H_3D_SINGLE_DEPTH 
    132132  Void parseSingleDepthMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    133133#endif 
     
    182182  ContextModel3DBuffer m_cCUSplitFlagSCModel;
    183183  ContextModel3DBuffer m_cCUSkipFlagSCModel;
    184 #if MTK_SINGLE_DEPTH_MODE_I0095
     184#if H_3D_SINGLE_DEPTH
    185185  ContextModel3DBuffer m_cCUSingleDepthFlagSCModel;
    186186  ContextModel3DBuffer m_cSingleDepthValueSCModel;
  • trunk/source/Lib/TLibDecoder/TDecTop.cpp

    r1066 r1084  
    229229  }
    230230
    231 #if !LGE_FCO_I0116
     231#if !H_3D_FCO
    232232  if ( pcSlice->getIsDepth())
    233233  {
     
    669669#if H_MV
    670670  sps->inferSpsMaxDecPicBufferingMinus1( vps, m_targetOptLayerSetIdx, getLayerId(), false );
    671 #if !H_MV_HLS10_ADD_LAYERSETS
    672   vps->inferDbpSizeLayerSetZero( sps, false );
    673 #endif
    674671  // When the value of vps_num_rep_formats_minus1 in the active VPS is equal to 0
    675672  if ( vps->getVpsNumRepFormatsMinus1() == 0 )
     
    679676  }
    680677  sps->checkRpsMaxNumPics( vps, getLayerId() );
    681 #if H_MV_HLS10_MULTILAYERSPS
    682678
    683679  if( sps->getLayerId() != 0 )
     
    686682  }
    687683
    688 #if H_MV_HLS10_MULTILAYERSPS
    689684  // It is a requirement of bitstream conformance that, when the SPS is referred to by
    690685  // any current picture that belongs to an independent non-base layer, the value of
     
    695690    assert( sps->getMultiLayerExtSpsFlag() == 0 );
    696691  }
    697 #endif
    698692
    699693  if( sps->getMultiLayerExtSpsFlag() )
     
    701695    sps->setTemporalIdNestingFlag( (sps->getMaxTLayers() > 1) ? vps->getTemporalNestingFlag() : true );
    702696  }
    703 #else
    704   if( m_layerId > 0 )
    705   {
    706     sps->setTemporalIdNestingFlag( (sps->getMaxTLayers() > 1) ? vps->getTemporalNestingFlag() : true );
    707   }
    708 #endif
    709697#endif
    710698
     
    730718#if H_MV
    731719  m_apcSlicePilot->setVPS(vps); 
    732 #if H_MV_HLS10_REF_PRED_LAYERS
    733720  // The nuh_layer_id value of the NAL unit containing the PPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    734721  assert( pps->getLayerId() == m_layerId || pps->getLayerId( ) == 0 || vps->getDependencyFlag( m_layerId, pps->getLayerId() ) );   
    735722  // The nuh_layer_id value of the NAL unit containing the SPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    736723  assert( sps->getLayerId() == m_layerId || sps->getLayerId( ) == 0 || vps->getDependencyFlag( m_layerId, sps->getLayerId() ) );
    737 #else
    738   // The nuh_layer_id value of the NAL unit containing the PPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    739   assert( pps->getLayerId() == m_layerId || pps->getLayerId( ) == 0 || vps->getInDirectDependencyFlag( m_layerId, pps->getLayerId() ) );   
    740   // The nuh_layer_id value of the NAL unit containing the SPS that is activated for a layer layerA with nuh_layer_id equal to nuhLayerIdA shall be equal to 0, or nuhLayerIdA, or the nuh_layer_id of a direct or indirect reference layer of layerA.
    741   assert( sps->getLayerId() == m_layerId || sps->getLayerId( ) == 0 || vps->getInDirectDependencyFlag( m_layerId, sps->getLayerId() ) );
    742 #endif
    743724  sps->inferRepFormat  ( vps , m_layerId );
    744725  sps->inferScalingList( m_parameterSetManagerDecoder.getActiveSPS( sps->getSpsScalingListRefLayerId() ) );
     
    746727#endif
    747728  pps->setSPS(sps);
    748   pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumColumnsMinus1() + 1) : 1);
     729  pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1);
    749730  pps->setMinCuDQPSize( sps->getMaxCUWidth() >> ( pps->getMaxCuDQPDepth()) );
    750731
     
    807788  m_apcSlicePilot->setLayerId( nalu.m_layerId );
    808789  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder, m_targetOptLayerSetIdx );
     790#else
     791  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder);
    809792#endif
    810793  // set POC for dependent slices in skipped pictures
     
    944927     xResetPocInPicBuffer();
    945928   }
    946 #endif
    947    
    948 #if I0044_SLICE_TMVP
    949   if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 )
     929
     930   if ( m_apcSlicePilot->getTLayer() == 0 && m_apcSlicePilot->getEnableTMVPFlag() == 0 )
    950931  {
    951932    //update all pics in the DPB such that they cannot be used for TMPV ref
     
    10431024  Bool bNextSlice     = pcSlice->isNextSlice();
    10441025
    1045   UInt uiCummulativeTileWidth;
    1046   UInt uiCummulativeTileHeight;
    1047   UInt i, j, p;
    1048 
    1049   //set NumColumnsMins1 and NumRowsMinus1
    1050   pcPic->getPicSym()->setNumColumnsMinus1( pcSlice->getPPS()->getNumColumnsMinus1() );
    1051   pcPic->getPicSym()->setNumRowsMinus1( pcSlice->getPPS()->getNumRowsMinus1() );
    1052 
    1053   //create the TComTileArray
    1054   pcPic->getPicSym()->xCreateTComTileArray();
    1055 
    1056   if( pcSlice->getPPS()->getUniformSpacingFlag() )
    1057   {
    1058     //set the width for each tile
    1059     for(j=0; j < pcPic->getPicSym()->getNumRowsMinus1()+1; j++)
    1060     {
    1061       for(p=0; p < pcPic->getPicSym()->getNumColumnsMinus1()+1; p++)
    1062       {
    1063         pcPic->getPicSym()->getTComTile( j * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + p )->
    1064           setTileWidth( (p+1)*pcPic->getPicSym()->getFrameWidthInCU()/(pcPic->getPicSym()->getNumColumnsMinus1()+1)
    1065           - (p*pcPic->getPicSym()->getFrameWidthInCU())/(pcPic->getPicSym()->getNumColumnsMinus1()+1) );
    1066       }
    1067     }
    1068 
    1069     //set the height for each tile
    1070     for(j=0; j < pcPic->getPicSym()->getNumColumnsMinus1()+1; j++)
    1071     {
    1072       for(p=0; p < pcPic->getPicSym()->getNumRowsMinus1()+1; p++)
    1073       {
    1074         pcPic->getPicSym()->getTComTile( p * (pcPic->getPicSym()->getNumColumnsMinus1()+1) + j )->
    1075           setTileHeight( (p+1)*pcPic->getPicSym()->getFrameHeightInCU()/(pcPic->getPicSym()->getNumRowsMinus1()+1)
    1076           - (p*pcPic->getPicSym()->getFrameHeightInCU())/(pcPic->getPicSym()->getNumRowsMinus1()+1) );   
    1077       }
    1078     }
    1079   }
    1080   else
    1081   {
    1082     //set the width for each tile
    1083     for(j=0; j < pcSlice->getPPS()->getNumRowsMinus1()+1; j++)
    1084     {
    1085       uiCummulativeTileWidth = 0;
    1086       for(i=0; i < pcSlice->getPPS()->getNumColumnsMinus1(); i++)
    1087       {
    1088         pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcSlice->getPPS()->getColumnWidth(i) );
    1089         uiCummulativeTileWidth += pcSlice->getPPS()->getColumnWidth(i);
    1090       }
    1091       pcPic->getPicSym()->getTComTile(j * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + i)->setTileWidth( pcPic->getPicSym()->getFrameWidthInCU()-uiCummulativeTileWidth );
    1092     }
    1093 
    1094     //set the height for each tile
    1095     for(j=0; j < pcSlice->getPPS()->getNumColumnsMinus1()+1; j++)
    1096     {
    1097       uiCummulativeTileHeight = 0;
    1098       for(i=0; i < pcSlice->getPPS()->getNumRowsMinus1(); i++)
    1099       {
    1100         pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcSlice->getPPS()->getRowHeight(i) );
    1101         uiCummulativeTileHeight += pcSlice->getPPS()->getRowHeight(i);
    1102       }
    1103       pcPic->getPicSym()->getTComTile(i * (pcSlice->getPPS()->getNumColumnsMinus1()+1) + j)->setTileHeight( pcPic->getPicSym()->getFrameHeightInCU()-uiCummulativeTileHeight );
    1104     }
    1105   }
    1106 
    1107   pcPic->getPicSym()->xInitTiles();
     1026  UInt i;
     1027  pcPic->getPicSym()->initTiles(pcSlice->getPPS());
    11081028
    11091029  //generate the Coding Order Map and Inverse Coding Order Map
     
    11921112#endif   
    11931113#endif
    1194     // For generalized B
    1195 #if I0044_SLICE_TMVP
     1114#if H_MV
    11961115    if( m_layerId > 0 && !pcSlice->isIntra() && pcSlice->getEnableTMVPFlag() )
    11971116    {
     
    12721191
    12731192#if H_3D_IV_MERGE
    1274 #if LGE_FCO_I0116
     1193#if H_3D_FCO
    12751194  if( !pcSlice->getIsDepth() && m_pcCamParsCollector )
    12761195#else
     
    17271646  for (Int i = 0; i < vps->getNumDirectRefLayers( getLayerId()  ); i++ )
    17281647  {
    1729 #if H_MV_HLS10_REF_PRED_LAYERS
    17301648    Int refLayerId = vps->getIdDirectRefLayer( m_layerId, i );
    1731 #else
    1732     Int refLayerId = vps->getRefLayerId( m_layerId, i );
    1733 #endif
    17341649    allRefLayersInitilizedFlag = allRefLayersInitilizedFlag && m_layerInitilizedFlag[ refLayerId ];
    17351650  }
  • trunk/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1066 r1084  
    4949{
    5050#if H_MV_ENC_DEC_TRAC
    51 #if H_MV_HLS10_GEN_FIX
    5251  fprintf( g_hTrace, "=========== Sequence Parameter Set LayerId: %d ===========\n", pSPS->getLayerId() );
    5352#else
    54   fprintf( g_hTrace, "=========== Sequence Parameter Set ===========\n" );
    55 #endif
    56 #else
    5753  fprintf( g_hTrace, "=========== Sequence Parameter Set ID: %d ===========\n", pSPS->getSPSId() );
    5854#endif
     
    6258{
    6359#if H_MV_ENC_DEC_TRAC
    64 #if H_MV_HLS10_GEN_FIX
    6560  fprintf( g_hTrace, "=========== Picture Parameter Set LayerId: %d ===========\n", pPPS->getLayerId() );
    66 #else
    67   fprintf( g_hTrace, "=========== Picture Parameter Set ===========\n" );
    68 #endif
    6961#else
    7062  fprintf( g_hTrace, "=========== Picture Parameter Set ID: %d ===========\n", pPPS->getPPSId() );
     
    218210  if( pcPPS->getTilesEnabledFlag() )
    219211  {
    220     WRITE_UVLC( pcPPS->getNumColumnsMinus1(),                                    "num_tile_columns_minus1" );
    221     WRITE_UVLC( pcPPS->getNumRowsMinus1(),                                       "num_tile_rows_minus1" );
    222     WRITE_FLAG( pcPPS->getUniformSpacingFlag(),                                  "uniform_spacing_flag" );
    223     if( pcPPS->getUniformSpacingFlag() == 0 )
    224     {
    225       for(UInt i=0; i<pcPPS->getNumColumnsMinus1(); i++)
    226       {
    227         WRITE_UVLC( pcPPS->getColumnWidth(i)-1,                                  "column_width_minus1" );
    228       }
    229       for(UInt i=0; i<pcPPS->getNumRowsMinus1(); i++)
    230       {
    231         WRITE_UVLC( pcPPS->getRowHeight(i)-1,                                    "row_height_minus1" );
    232       }
    233     }
    234     if(pcPPS->getNumColumnsMinus1() !=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)
    235227    {
    236228      WRITE_FLAG( pcPPS->getLoopFilterAcrossTilesEnabledFlag()?1 : 0,          "loop_filter_across_tiles_enabled_flag");
     
    249241    }
    250242  }
    251 #if !H_MV_HLS10_PPS
    252 #if H_MV
    253   if ( pcPPS->getLayerId() > 0 )
    254   {
    255     WRITE_FLAG( pcPPS->getPpsInferScalingListFlag( ) ? 1 : 0 , "pps_infer_scaling_list_flag" );
    256   }
    257 
    258   if( pcPPS->getPpsInferScalingListFlag( ) )
    259   {
    260     WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" );
    261   }
    262   else
    263   { 
    264 #endif 
    265 #endif
    266243  WRITE_FLAG( pcPPS->getScalingListPresentFlag() ? 1 : 0,                          "pps_scaling_list_data_present_flag" );
    267244  if( pcPPS->getScalingListPresentFlag() )
     
    269246    codeScalingList( m_pcSlice->getScalingList() );
    270247  }
    271 #if !H_MV_HLS10_PPS
    272 #if H_MV
    273   }
    274 #endif
    275 #endif
    276248#if PPS_FIX_DEPTH
    277249  if( pcPPS->getSPS()->getVPS()->getDepthId(pcPPS->getSPS()->getLayerId()) )
     
    313285    if ( pcPPS->getPpsMultilayerExtensionFlag() )
    314286    {
    315 #if H_MV_HLS10_PPS
    316287      codePPSMultilayerExtension( pcPPS );
    317 #else
    318       WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag( ) ? 1 : 0 , "poc_reset_info_present_flag" );
    319       WRITE_FLAG( 0, "pps_extension_reserved_zero_flag" );
    320 #endif
    321288    }
    322289
     
    385352            }
    386353           
    387 #if H_3D_DELTA_DLT
    388354            if( pcDLT->getInterViewDltPredEnableFlag( i ) )
    389355            {
     
    395361              pcDLT->getDeltaDLT(i, piRefDLT, uiRefNum, aiIdx2DepthValue_coded, &uiNumDepthValues_coded);
    396362            }
    397 #endif
    398363
    399364            if ( NULL == (puiDltDiffValues = (UInt *)calloc(uiNumDepthValues_coded, sizeof(UInt))) )
    400365            {
     366              // This should be changed to an assertion.
    401367              exit(-1);
    402368            }
     
    477443            {
    478444              WRITE_CODE(uiNumDepthValues_coded, 8, "num_depth_values_in_dlt[i]");    // num_entry
    479 
    480 #if !H_3D_DELTA_DLT
    481               if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )   // Single-view DLT Diff Coding
    482 #endif
    483445              {
    484446                // The condition if( uiNumDepthValues_coded > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component.
     
    566528  if( defaultDisplayWindow.getWindowEnabledFlag() )
    567529  {
    568     WRITE_UVLC(defaultDisplayWindow.getWindowLeftOffset(),      "def_disp_win_left_offset");
    569     WRITE_UVLC(defaultDisplayWindow.getWindowRightOffset(),    "def_disp_win_right_offset");
    570     WRITE_UVLC(defaultDisplayWindow.getWindowTopOffset(),      "def_disp_win_top_offset");
    571     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");
    572534  }
    573535  TimingInfo *timingInfo = pcVUI->getTimingInfo();
     
    691653#endif
    692654  WRITE_CODE( pcSPS->getMaxTLayers() - 1,  3,       "sps_max_sub_layers_minus1" );
    693 #if H_MV_HLS10_MULTILAYERSPS
    694655#if H_MV
    695656  }
     
    700661  if ( !pcSPS->getMultiLayerExtSpsFlag() )
    701662  {
    702 #endif
    703663#endif
    704664
     
    710670  WRITE_UVLC( pcSPS->getSPSId (),                   "sps_seq_parameter_set_id" );
    711671#if H_MV
    712 #if H_MV_HLS10_MULTILAYERSPS
    713672    if ( pcSPS->getMultiLayerExtSpsFlag() )
    714 #else
    715   if ( pcSPS->getLayerId() > 0 )
    716 #endif
    717673  {
    718674    WRITE_FLAG( pcSPS->getUpdateRepFormatFlag( ) ? 1 : 0 , "update_rep_format_flag" );
     
    735691  WRITE_UVLC( pcSPS->getPicWidthInLumaSamples (),   "pic_width_in_luma_samples" );
    736692  WRITE_UVLC( pcSPS->getPicHeightInLumaSamples(),   "pic_height_in_luma_samples" );
    737 #if !H_MV_HLS10_MULTILAYERSPS
    738 #if H_MV
    739   }
    740 #endif
    741 #endif
    742693  Window conf = pcSPS->getConformanceWindow();
    743694
     
    750701    WRITE_UVLC( conf.getWindowBottomOffset() / TComSPS::getWinUnitY(pcSPS->getChromaFormatIdc() ), "conf_win_bottom_offset" );
    751702  }
    752 #if H_MV_HLS10_MULTILAYERSPS
    753703#if H_MV
    754704}
    755705#endif
    756 #endif
    757706
    758707#if H_MV
    759 #if H_MV_HLS10_MULTILAYERSPS
    760708  if ( !pcSPS->getMultiLayerExtSpsFlag() )
    761 #else
    762   if ( pcSPS->getLayerId() == 0 )
    763 #endif
    764709  {
    765710#endif
     
    771716  WRITE_UVLC( pcSPS->getBitsForPOC()-4,                 "log2_max_pic_order_cnt_lsb_minus4" );
    772717#if H_MV
    773 #if H_MV_HLS10_MULTILAYERSPS
    774718  if ( !pcSPS->getMultiLayerExtSpsFlag())
    775 #else
    776   if ( pcSPS->getLayerId() == 0 )
    777 #endif
    778719  { 
    779720#endif
     
    806747  {
    807748#if H_MV
    808 #if H_MV_HLS10_MULTILAYERSPS
    809749    if ( pcSPS->getMultiLayerExtSpsFlag() )
    810 #else
    811     if ( pcSPS->getLayerId() > 0 )
    812 #endif
    813750    {   
    814751      WRITE_FLAG( pcSPS->getSpsInferScalingListFlag( ) ? 1 : 0 , "sps_infer_scaling_list_flag" );
     
    917854{
    918855  WRITE_FLAG( pcSPS->getInterViewMvVertConstraintFlag() ? 1 : 0, "inter_view_mv_vert_constraint_flag" );
    919 #if !H_MV_HLS10_PPS
    920   WRITE_UVLC( pcSPS->getNumScaledRefLayerOffsets( ), "num_scaled_ref_layer_offsets" );
    921 
    922   for( Int i = 0; i < pcSPS->getNumScaledRefLayerOffsets( ); i++)
    923   {   
    924     WRITE_CODE( pcSPS->getScaledRefLayerId( i ), 6, "scaled_ref_layer_id" );
    925 
    926     Int j = pcSPS->getScaledRefLayerId( i );
    927    
    928     WRITE_SVLC( pcSPS->getScaledRefLayerLeftOffset( j ), "scaled_ref_layer_left_offset" );
    929     WRITE_SVLC( pcSPS->getScaledRefLayerTopOffset( j ), "scaled_ref_layer_top_offset" );
    930     WRITE_SVLC( pcSPS->getScaledRefLayerRightOffset( j ), "scaled_ref_layer_right_offset" );
    931     WRITE_SVLC( pcSPS->getScaledRefLayerBottomOffset( j ), "scaled_ref_layer_bottom_offset" );
    932     WRITE_FLAG( 0, "sps_multilayer_ext_reserved_zero_flag[ j ]" );
    933   }
    934 #endif
    935 }
    936 
    937 
    938 #if H_MV_HLS10_PPS
     856}
     857
     858
    939859Void TEncCavlc::codePPSMultilayerExtension(TComPPS* pcPPS)
    940860{
     
    944864  WRITE_UVLC( 0, "num_ref_loc_offsets" );
    945865}
    946 #endif
    947866
    948867#endif
     
    951870Void TEncCavlc::codeSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    952871{
    953 #if H_3D_QTLPC
    954 #if !MTK_I0099_VPS_EX2
    955 //GT: This has to go to VPS
    956 if( depthFlag )
    957 {
    958   WRITE_FLAG( pcSPS->getUseQTL() ? 1 : 0, "use_qtl_flag");
    959   WRITE_FLAG( pcSPS->getUsePC()  ? 1 : 0, "use_pc_flag");
    960 }
    961 #endif
    962 #endif
    963 }
    964 
    965 
     872
     873}
    966874#endif
    967875
     
    974882#if H_MV
    975883  WRITE_FLAG( pcVPS->getVpsBaseLayerInternalFlag( ) ? 1 : 0 , "vps_base_layer_internal_flag" );
    976 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL
    977884  WRITE_FLAG( pcVPS->getVpsBaseLayerAvailableFlag( ) ? 1 : 0 , "vps_base_layer_available_flag" );
    978 #else // H_MV_HLS10_GEN
    979   WRITE_FLAG( 1                                             , "vps_reserved_one_bit" );
    980 #endif // H_MV_HLS10_GEN
    981885#else
    982886  WRITE_CODE( 3,                                    2,        "vps_reserved_three_2bits" );
     
    1008912  assert( pcVPS->getVpsMaxLayerId() < MAX_VPS_NUH_LAYER_ID_PLUS1 );
    1009913  WRITE_CODE( pcVPS->getVpsMaxLayerId(), 6,                 "vps_max_layer_id" ); 
    1010 #if H_MV_HLS10_GEN_FIX
    1011914  WRITE_UVLC( pcVPS->getVpsNumLayerSetsMinus1(),  "vps_num_layer_sets_minus1" );
    1012 #else
    1013   WRITE_UVLC( pcVPS->getVpsNumLayerSetsMinus1(),  "vps_max_num_layer_sets_minus1" );
    1014 #endif
    1015915  for( UInt opsIdx = 1; opsIdx <= pcVPS->getVpsNumLayerSetsMinus1(); opsIdx ++ )
    1016916  {
     
    1089989Void TEncCavlc::codeVPSExtension( TComVPS *pcVPS )
    1090990{
    1091 #if H_MV_HLS10_PTL
    1092991  if( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() )
    1093992  {
    1094993    codePTL( pcVPS->getPTL( 1 ),0, pcVPS->getMaxSubLayersMinus1()  );
    1095994  }
    1096 #endif
    1097995
    1098996  WRITE_FLAG( pcVPS->getSplittingFlag() ? 1 : 0,             "splitting_flag" );
     
    11671065  }
    11681066
    1169 #if H_MV_HLS10_ADD_LAYERSETS
    11701067  if ( pcVPS->getNumIndependentLayers() > 1 )
    11711068  {
     
    11801077 
    11811078  }
    1182 #endif
    11831079
    11841080
     
    12181114  WRITE_UVLC( pcVPS->getVpsNumProfileTierLevelMinus1( ), "vps_num_profile_tier_level_minus1" );
    12191115
    1220 #if H_MV_HLS10_PTL
    12211116  Int offsetVal =  ( pcVPS->getMaxLayersMinus1() > 0  &&  pcVPS->getVpsBaseLayerInternalFlag() ) ? 2 : 1;   
    12221117  for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 2 : 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
     
    12261121    offsetVal++;
    12271122  }
    1228 #else
    1229   for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
    1230   {
    1231     WRITE_FLAG( pcVPS->getVpsProfilePresentFlag( i ) ? 1 : 0, "vps_profile_present_flag[i]" );
    1232     codePTL( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers() - 1 );
    1233   }
    1234 #endif
    1235 
    1236 #if !H_MV_HLS10_ADD_LAYERSETS
    1237   if ( pcVPS->getNumIndependentLayers() > 1 )
    1238   {
    1239    WRITE_UVLC( pcVPS->getNumAddLayerSets( ), "num_add_layer_sets" );
    1240   }
    1241   for (Int i = 0; i < pcVPS->getNumAddLayerSets(); i++)
    1242   {
    1243     for (Int j = 0; j < pcVPS->getNumIndependentLayers(); j++)
    1244     {
    1245       WRITE_CODE( pcVPS->getHighestLayerIdxPlus1( i, j ), pcVPS->getHighestLayerIdxPlus1Len( j )  , "highest_layer_idx_plus1" );
    1246     }
    1247   }
    1248 #endif
     1123
    12491124
    12501125  if (pcVPS->getNumLayerSets() > 1)
     
    12581133
    12591134
    1260 #if H_MV_HLS10_PTL_FIX
    12611135  if (pcVPS->getVpsBaseLayerInternalFlag() )
    12621136  { 
    12631137    assert( pcVPS->getProfileTierLevelIdx(0,0) == pcVPS->inferProfileTierLevelIdx(0,0) );
    12641138  }
    1265 #endif
    12661139
    12671140
     
    12701143    if( i >= pcVPS->getNumLayerSets( ) )   
    12711144    {     
    1272 #if !VPS_MISC_UPDATES
    1273       WRITE_UVLC( pcVPS->getLayerSetIdxForOlsMinus1( i ),      "layer_set_idx_for_ols_minus1[i]" );
    1274 #else
    12751145      WRITE_CODE( pcVPS->getLayerSetIdxForOlsMinus1( i ), pcVPS->getLayerSetIdxForOlsMinus1Len( i ) ,      "layer_set_idx_for_ols_minus1[i]" );
    1276 #endif
    12771146    }
    12781147
     
    12921161    }       
    12931162       
    1294 #if H_MV_HLS10_PTL
    12951163    for ( Int j = 0; j < pcVPS->getNumLayersInIdList( pcVPS->olsIdxToLsIdx(i)); j++ )
    12961164    {   
     
    12991167        WRITE_CODE( pcVPS->getProfileTierLevelIdx( i, j ), pcVPS->getProfileTierLevelIdxLen() ,"profile_tier_level_idx[ i ][ j ]" );   
    13001168      }
    1301 #if H_MV_HLS10_PTL_FIX
    13021169      if (pcVPS->getNecessaryLayerFlag( i, j ) && pcVPS->getVpsNumProfileTierLevelMinus1() == 0 )
    13031170      {
    13041171        assert( pcVPS->getProfileTierLevelIdx( i , j ) == pcVPS->inferProfileTierLevelIdx( i, j ) );
    13051172      }
    1306 #endif
    1307 
    1308     }
    1309 #else
    1310     if ( pcVPS->getProfileLevelTierIdxLen()  > 0 )
    1311     {     
    1312       WRITE_CODE( pcVPS->getProfileLevelTierIdx( i ), pcVPS->getProfileLevelTierIdxLen() ,"profile_level_tier_idx[ i ]" );   
    1313     }
    1314 #endif
     1173
     1174    }
    13151175    if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 )
    13161176    {
     
    13621222  }
    13631223
    1364 #if !H_MV_HLS10_GEN_FIX
    1365   WRITE_FLAG( 0, "vps_reserved_zero_flag" );
    1366 #endif
    13671224  codeDpbSize( pcVPS );
    13681225
     
    14411298        for( Int k = 0; k < vps->getNumLayersInIdList( currLsIdx ); k++ )   
    14421299        {
    1443 #if H_MV_HLS10_DBP_SIZE
    14441300          if ( vps->getNecessaryLayerFlag( i, k ) && ( vps->getVpsBaseLayerInternalFlag() || ( vps->getLayerSetLayerIdList(vps->olsIdxToLsIdx(i),k) != 0 ) ))
    14451301          {
     
    14531309            }
    14541310          }
    1455 #else
    1456           WRITE_UVLC( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ), "max_vps_dec_pic_buffering_minus1" );
    1457 #endif
    14581311        }
    14591312        WRITE_UVLC( dpbSize->getMaxVpsNumReorderPics( i, j ), "max_vps_num_reorder_pics" );
     
    14661319          for( Int k = 0; k < vps->getNumLayersInIdList( vps->olsIdxToLsIdx( i ) ); k++ )   
    14671320          {
    1468 #if H_MV_HLS10_DBP_SIZE
    14691321            if ( vps->getNecessaryLayerFlag(i, k ) )
    14701322            {           
    1471 #endif
    14721323              assert( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ) == dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) );
    1473 #if H_MV_HLS10_DBP_SIZE
    14741324            }
    1475 #endif 
    14761325          }
    14771326          assert( dpbSize->getMaxVpsNumReorderPics      ( i, j ) ==  dpbSize->getMaxVpsNumReorderPics      ( i, j - 1 ) );
     
    15081357    pcRepFormat->inferChromaAndBitDepth(pcPrevRepFormat, true );
    15091358  }
    1510 #if H_MV_HLS10_GEN_VSP_CONF_WIN
    15111359  WRITE_FLAG( pcRepFormat->getConformanceWindowVpsFlag( ) ? 1 : 0 , "conformance_window_vps_flag" );
    15121360  if ( pcRepFormat->getConformanceWindowVpsFlag() )
     
    15171365    WRITE_UVLC( pcRepFormat->getConfWinVpsBottomOffset( ), "conf_win_vps_bottom_offset" );
    15181366  }
    1519 #endif
    15201367}
    15211368
     
    15421389  if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    15431390  {
    1544 #if H_MV_HLS10_VPS_VUI
    15451391    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i < pcVPS->getNumLayerSets(); i++ )
    1546 #else
    1547     for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1548 #endif
    15491392    {
    15501393      for( Int j = 0; j  <=  pcVPS->getMaxSubLayersInLayerSetMinus1( i ); j++ )
     
    15791422  else
    15801423  {
    1581 #if H_MV_HLS10_VPS_VUI
    15821424    assert( pcVPSVUI->getVpsNumVideoSignalInfoMinus1() == pcVPS->getMaxLayersMinus1() - ( pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1)  );
    1583 #else
    1584     pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() );
    1585 #endif
    15861425  }
    15871426
     
    15961435  if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    15971436  {
    1598 #if I0045_VPS_VUI_VST_PARAMS
    15991437    for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    16001438    {
    16011439      WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" );
    16021440    }
    1603 #else
    1604     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1605     {
    1606       WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" );
    1607       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );
    1608     }
    1609   }
    1610   else
    1611   {
    1612     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1613     {
    1614       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i  ) == ( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i ) );
    1615     }
    1616 #endif
    16171441  }
    16181442  WRITE_FLAG( pcVPSVUI->getTilesNotInUseFlag( ) ? 1 : 0 , "tiles_not_in_use_flag" );
     
    16311455      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ) ; j++ )
    16321456      { 
    1633 #if H_MV_HLS10_REF_PRED_LAYERS
    16341457        Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getIdRefLayer(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1635 #else
    1636         Int layerIdx = pcVPS->getLayerIdInVps(pcVPS->getRefLayerId(pcVPS->getLayerIdInNuh( i ) , j  )); 
    1637 #endif
    16381458        if( pcVPSVUI->getTilesInUseFlag( i )  &&  pcVPSVUI->getTilesInUseFlag( layerIdx ) ) 
    16391459        {
     
    16531473    }
    16541474  }
    1655 #if H_MV_HLS10_VPS_VUI
    16561475  WRITE_FLAG( pcVPSVUI->getSingleLayerForNonIrapFlag( ) ? 1 : 0 , "single_layer_for_non_irap_flag" );
    16571476  WRITE_FLAG( pcVPSVUI->getHigherLayerIrapSkipFlag( ) ? 1 : 0 , "higher_layer_irap_skip_flag" );
    1658 #else
    1659   WRITE_CODE( 0, 3, "vps_vui_reserved_zero_3bits" );
    1660 #endif
    16611477  WRITE_FLAG( pcVPSVUI->getIlpRestrictedRefLayersFlag( ) ? 1 : 0 , "ilp_restricted_ref_layers_flag" );
    16621478
     
    16671483      for( Int j = 0; j < pcVPS->getNumDirectRefLayers( pcVPS->getLayerIdInNuh( i ) ); j++ )
    16681484      {
    1669 #if H_MV_HLS10_REF_PRED_LAYERS
    16701485        if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getIdRefLayer( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1671 #else
    1672         if( pcVPS->getVpsBaseLayerInternalFlag() || pcVPS->getRefLayerId( pcVPS->getLayerIdInNuh( i ), j ) > 0 )
    1673 #endif
    16741486        {       
    16751487          WRITE_UVLC( pcVPSVUI->getMinSpatialSegmentOffsetPlus1( i, j ), "min_spatial_segment_offset_plus1" );
     
    17141526  assert ( vpsVuiBspHrdP );
    17151527 
    1716 #if H_MV_HLS10_VPS_VUI_BSP
    17171528  WRITE_UVLC( vpsVuiBspHrdP->getVpsNumAddHrdParams( ), "vps_num_add_hrd_params" );
    17181529
     
    17601571  } 
    17611572
    1762 #else // H_MV_HLS10_GEN
    1763   WRITE_UVLC( vpsVuiBspHrdP->getVpsNumBspHrdParametersMinus1( ), "vps_num_bsp_hrd_parameters_minus1" );
    1764   for( Int i = 0; i <= vpsVuiBspHrdP->getVpsNumBspHrdParametersMinus1( ); i++ )
    1765   { 
    1766     if( i > 0 )
    1767     {
    1768       WRITE_FLAG( vpsVuiBspHrdP->getBspCprmsPresentFlag( i ) ? 1 : 0 , "bsp_cprms_present_flag" );
    1769     }
    1770     TComHRD* hrdParameters = vpsVuiBspHrdP->getHrdParametermeters( i );
    1771     codeHrdParameters( hrdParameters, vpsVuiBspHrdP->getBspCprmsPresentFlag( i ), pcVPS->getMaxSubLayersMinus1() );     
    1772   } 
    1773   for( Int h = 1; h <= pcVPS->getVpsNumLayerSetsMinus1(); h++ )
    1774   { 
    1775     WRITE_UVLC( vpsVuiBspHrdP->getNumBitstreamPartitions( h ), "num_bitstream_partitions" );
    1776     for( Int i = 0; i < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); i++ ) 
    1777     {
    1778       for( Int j = 0; j < pcVPS->getNumLayersInIdList( h ); j++ ) 
    1779       {
    1780         WRITE_FLAG( vpsVuiBspHrdP->getLayerInBspFlag( h, i, j ) ? 1 : 0 , "layer_in_bsp_flag" );
    1781       }
    1782     }
    1783     vpsVuiBspHrdP->checkLayerInBspFlag( pcVPS, h );
    1784 
    1785     if( vpsVuiBspHrdP->getNumBitstreamPartitions( h ) )
    1786     {
    1787       WRITE_UVLC( vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ), "num_bsp_sched_combinations_minus1" );
    1788       for( Int i = 0; i <= vpsVuiBspHrdP->getNumBspSchedCombinationsMinus1( h ); i++ )
    1789       {
    1790         for( Int j = 0; j < vpsVuiBspHrdP->getNumBitstreamPartitions( h ); j++ )
    1791         { 
    1792           WRITE_CODE( vpsVuiBspHrdP->getBspCombHrdIdx( h, i, j ),  vpsVuiBspHrdP->getBspCombHrdIdxLen(), "bsp_comb_hrd_idx" );
    1793           WRITE_UVLC( vpsVuiBspHrdP->getBspCombSchedIdx( h, i, j ), "bsp_comb_sched_idx" );
    1794 
    1795           vpsVuiBspHrdP->checkBspCombHrdAndShedIdx( pcVPS, h, i, j );
    1796         } 
    1797       }
    1798     } 
    1799   }
    1800 #endif 
    18011573
    18021574#endif
     
    18051577Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS )
    18061578{
    1807 #if SEC_VPS_CLEANUP_I0090
    18081579  for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    1809 #else
    1810   for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )
    1811 #endif
    1812   {
    1813 #if !SEC_VPS_CLEANUP_I0090
    1814     if (i!= 0)
    1815 #endif
    1816     {
    1817 #if MTK_I0099_VPS_EX2
     1580  {
     1581    {
    18181582      WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1819 #if SEC_HLS_CLEANUP_I0100
    18201583      WRITE_FLAG( pcVPS->getIvMvScalingFlag( i ) ? 1 : 0 ,       "iv_mv_scaling_flag[i]" );
    1821 #endif
    1822 
    1823 #endif
     1584
    18241585      if ( !( pcVPS->getDepthId( i ) == 1 ) )
    18251586      {
    18261587#if H_3D_IV_MERGE
    1827 #if !MTK_I0099_VPS_EX2
    1828         WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1829 #endif
    18301588#if H_3D_SPIVMP
    18311589        WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
     
    18471605      else
    18481606      {
    1849 #if !MTK_I0099_VPS_EX2
    1850         if(i!=1)
    1851         {
    1852           WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    1853         }
    1854 #if H_3D_SPIVMP
    1855         if (i!=1)
    1856         {
    1857           WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
    1858         }
    1859 #endif
    1860 #endif
    18611607#if H_3D_IV_MERGE
    18621608        WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 ,          "mpi_flag[i]" );
    18631609#endif
    1864 #if MTK_I0099_VPS_EX2
    18651610        WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]");
    1866 #endif
     1611
    18671612        WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
    1868 #if SEPARATE_FLAG_I0085
     1613#if H_3D
    18691614        WRITE_FLAG( pcVPS->getIVPFlag( i ) ? 1 : 0 ,               "IVP_flag[i]" );
    18701615#endif
    1871 #if MTK_I0099_VPS_EX2
    18721616        WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     );
    1873 #endif
    18741617
    18751618#if H_3D_INTER_SDC
     
    18801623  }
    18811624  WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" );
    1882 #if SEC_VPS_CLEANUP_I0090
    18831625  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
    1884 #else
    1885   for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)
    1886 #endif
    18871626  {
    18881627    WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" );
     
    19021641    }
    19031642  }
    1904 #if !MTK_I0099_VPS_EX2
    1905   WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3");
    1906 #endif
    1907 #if H_3D_TMVP
    1908 #if !SEC_HLS_CLEANUP_I0100
    1909   WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
    1910 #endif
    1911 #endif
    19121643}
    19131644#endif
     
    19781709      esb++;
    19791710      WRITE_FLAG( pcSlice->getDiscardableFlag( ) ? 1 : 0 , "discardable_flag" );
    1980 #if NON_REF_NAL_TYPE_DISCARDABLE
    19811711      if (pcSlice->getDiscardableFlag( ))
    19821712      {
     
    19871717          pcSlice->getNalUnitType() != NAL_UNIT_CODED_SLICE_RASL_R);
    19881718      }
    1989 #endif
    19901719    }
    19911720
     
    21481877      if (pcSlice->getSPS()->getTMVPFlagsPresent())
    21491878      {
    2150 #if I0044_SLICE_TMVP
     1879#if H_MV
    21511880        WRITE_FLAG( pcSlice->getEnableTMVPFlag() ? 1 : 0, "slice_temporal_mvp_enabled_flag" );
    21521881#else
     
    23082037    }
    23092038#if H_3D_IC
    2310 #if SEC_HLS_CLEANUP_I0100
    23112039    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
    2312 #else
    2313     else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth())
    2314 #endif
    23152040    {
    23162041      WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );
     
    23212046    }
    23222047#endif
    2323 #if MTK_SINGLE_DEPTH_MODE_I0095
     2048#if H_3D_SINGLE_DEPTH
    23242049    if(pcSlice->getIsDepth())
    23252050    {
     
    23852110  }
    23862111#if H_3D
    2387 #if LGE_FCO_I0116
     2112#if H_3D_FCO
    23882113  if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && pcSlice->getIsDepth() )
    23892114#else
     
    25752300  WRITE_FLAG(ptl->getFrameOnlyConstraintFlag(), "general_frame_only_constraint_flag");
    25762301 
    2577 #if H_MV_HLS10_PTL
    2578 #if H_MV_HLS10_PTL_INFER_FIX
     2302#if H_MV
    25792303  if( ptl->getV2ConstraintsPresentFlag() )
    2580 #else
    2581   if( ptl->getProfileIdc( ) ==  4 || ptl->getProfileCompatibilityFlag( 4 )  ||
    2582     ptl->getProfileIdc( ) ==  5 || ptl->getProfileCompatibilityFlag( 5 )  ||
    2583     ptl->getProfileIdc( ) ==  6 || ptl->getProfileCompatibilityFlag( 6 )  ||
    2584     ptl->getProfileIdc( ) ==  7 || ptl->getProfileCompatibilityFlag( 7 ) )
    2585 #endif
    25862304  {
    25872305    WRITE_FLAG( ptl->getMax12bitConstraintFlag( ) ? 1 : 0 , "max_12bit_constraint_flag" );
     
    26042322    WRITE_CODE( 0, 11, "XXX_reserved_zero_43bits[32..42]");
    26052323  }
    2606 #if H_MV_HLS10_PTL_INFER_FIX
    26072324    if( ptl->getInbldPresentFlag() )
    2608 #else
    2609   if( ( ptl->getProfileIdc() >= 1 && ptl->getProfileIdc() <= 5 )  ||
    2610     ptl->getProfileCompatibilityFlag( 1 ) || ptl->getProfileCompatibilityFlag( 2 )  ||
    2611     ptl->getProfileCompatibilityFlag( 3 ) || ptl->getProfileCompatibilityFlag( 4 )  ||
    2612     ptl->getProfileCompatibilityFlag( 5 ) )
    2613 #endif
    26142325  {
    26152326    WRITE_FLAG( ptl->getInbldFlag( ) ? 1 : 0 , "inbld_flag" );
     
    27622473  assert(0);
    27632474}
    2764 #if MTK_SINGLE_DEPTH_MODE_I0095
     2475#if H_3D_SINGLE_DEPTH
    27652476Void TEncCavlc::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx )
    27662477{
  • trunk/source/Lib/TLibEncoder/TEncCavlc.h

    r1066 r1084  
    107107  Void  codePPS                 ( TComPPS* pcPPS );
    108108
    109 #if H_MV_HLS10_PPS
    110109#if H_MV
    111110  Void codePPSMultilayerExtension( TComPPS* pcPPS );
    112 #endif
    113111#endif
    114112
     
    129127  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    130128  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    131 #if MTK_SINGLE_DEPTH_MODE_I0095
     129#if H_3D_SINGLE_DEPTH
    132130  Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx );
    133131#endif
  • trunk/source/Lib/TLibEncoder/TEncCfg.h

    r1039 r1084  
    124124  Int       m_iSourceWidth;
    125125  Int       m_iSourceHeight;
    126   Int       m_conformanceMode;
    127126  Window    m_conformanceWindow;
    128127  Int       m_framesToBeEncoded;
     
    229228  Bool      m_bPCMFilterDisableFlag;
    230229  Bool      m_loopFilterAcrossTilesEnabledFlag;
    231   Int       m_iUniformSpacingIdr;
     230  Bool      m_tileUniformSpacingFlag;
    232231  Int       m_iNumColumnsMinus1;
    233   UInt*     m_puiColumnWidth;
    234232  Int       m_iNumRowsMinus1;
    235   UInt*     m_puiRowHeight;
     233  std::vector<Int> m_tileColumnWidth;
     234  std::vector<Int> m_tileRowHeight;
    236235
    237236  Int       m_iWaveFrontSynchro;
     
    414413#if H_3D_DIM
    415414  Bool      m_useDMM;
    416 #if SEPARATE_FLAG_I0085
    417415  Bool      m_useIVP;
    418 #endif
    419416  Bool      m_useSDC;
    420417  Bool      m_useDLT;
    421418#endif
    422 #if MTK_SINGLE_DEPTH_MODE_I0095
     419#if H_3D_SINGLE_DEPTH
    423420  Bool      m_useSingleDepthMode;
    424421#endif
     
    426423  Bool      m_useMPI;
    427424#endif
    428 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    429425#if H_3D_QTLPC
    430426  Bool      m_bUseQTL;
    431 #if !MTK_I0099_VPS_EX2
    432   Bool      m_bUsePC;
    433 #endif
    434 #endif
    435427#endif
    436428#endif
    437429public:
    438430  TEncCfg()
    439   : m_puiColumnWidth()
    440   , m_puiRowHeight()
     431  : m_tileColumnWidth()
     432  , m_tileRowHeight()
    441433#if H_MV
    442434  , m_layerId(-1)
     
    452444
    453445  virtual ~TEncCfg()
    454   {
    455     delete[] m_puiColumnWidth;
    456     delete[] m_puiRowHeight;
    457   }
     446  {}
    458447 
    459448  Void setProfile(Profile::Name profile) { m_profile = profile; }
     
    678667  Void  setLFCrossTileBoundaryFlag               ( Bool   val  )       { m_loopFilterAcrossTilesEnabledFlag = val; }
    679668  Bool  getLFCrossTileBoundaryFlag               ()                    { return m_loopFilterAcrossTilesEnabledFlag;   }
    680   Void  setUniformSpacingIdr           ( Int i )           { m_iUniformSpacingIdr = i; }
    681   Int   getUniformSpacingIdr           ()                  { return m_iUniformSpacingIdr; }
     669  Void  setTileUniformSpacingFlag      ( Bool b )          { m_tileUniformSpacingFlag = b; }
     670  Bool  getTileUniformSpacingFlag      ()                  { return m_tileUniformSpacingFlag; }
    682671  Void  setNumColumnsMinus1            ( Int i )           { m_iNumColumnsMinus1 = i; }
    683672  Int   getNumColumnsMinus1            ()                  { return m_iNumColumnsMinus1; }
    684   Void  setColumnWidth ( UInt* columnWidth )
    685   {
    686     if( m_iUniformSpacingIdr == 0 && m_iNumColumnsMinus1 > 0 )
    687     {
    688       Int  m_iWidthInCU = ( m_iSourceWidth%g_uiMaxCUWidth ) ? m_iSourceWidth/g_uiMaxCUWidth + 1 : m_iSourceWidth/g_uiMaxCUWidth;
    689       m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ];
    690 
    691       for(Int i=0; i<m_iNumColumnsMinus1; i++)
    692       {
    693         m_puiColumnWidth[i] = columnWidth[i];
    694         printf("col: m_iWidthInCU= %4d i=%4d width= %4d\n",m_iWidthInCU,i,m_puiColumnWidth[i]); //AFU
    695       }
    696     }
    697   }
    698   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]; }
    699675  Void  setNumRowsMinus1               ( Int i )           { m_iNumRowsMinus1 = i; }
    700676  Int   getNumRowsMinus1               ()                  { return m_iNumRowsMinus1; }
    701   Void  setRowHeight (UInt* rowHeight)
    702   {
    703     if( m_iUniformSpacingIdr == 0 && m_iNumRowsMinus1 > 0 )
    704     {
    705       Int  m_iHeightInCU = ( m_iSourceHeight%g_uiMaxCUHeight ) ? m_iSourceHeight/g_uiMaxCUHeight + 1 : m_iSourceHeight/g_uiMaxCUHeight;
    706       m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ];
    707 
    708       for(Int i=0; i<m_iNumRowsMinus1; i++)
    709       {
    710         m_puiRowHeight[i] = rowHeight[i];
    711         printf("row: m_iHeightInCU=%4d i=%4d height=%4d\n",m_iHeightInCU,i,m_puiRowHeight[i]); //AFU
    712       }
    713     }
    714   }
    715   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]; }
    716679  Void  xCheckGSParameters();
    717680  Void  setWaveFrontSynchro(Int iWaveFrontSynchro)       { m_iWaveFrontSynchro = iWaveFrontSynchro; }
     
    1013976  Bool      getUseDMM                       ()        { return m_useDMM; }
    1014977  Void      setUseDMM                       ( Bool b) { m_useDMM = b;    }
    1015 #if SEPARATE_FLAG_I0085
    1016978  Bool      getUseIVP                       ()        { return m_useIVP; }
    1017979  Void      setUseIVP                       ( Bool b) { m_useIVP = b;    }
    1018 #endif
    1019980  Bool      getUseSDC                       ()        { return m_useSDC; }
    1020981  Void      setUseSDC                       ( Bool b) { m_useSDC = b;    }
     
    1022983  Void      setUseDLT                       ( Bool b) { m_useDLT = b;    }
    1023984#endif
    1024 #if MTK_SINGLE_DEPTH_MODE_I0095
     985#if H_3D_SINGLE_DEPTH
    1025986  Void       setUseSingleDepthMode          ( Bool bVal )    { m_useSingleDepthMode = bVal; }
    1026987  Bool       getUseSingleDepthMode          ()               { return m_useSingleDepthMode; }
    1027988#endif
    1028 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX
    1029989#if H_3D_QTLPC
    1030990  Void      setUseQTL                       ( Bool b ) { m_bUseQTL = b;    }
    1031991  Bool      getUseQTL                       ()         { return m_bUseQTL; }
    1032 #if !MTK_I0099_VPS_EX2
    1033   Void      setUsePC                        ( Bool b ) { m_bUsePC  = b;    }
    1034   Bool      getUsePC                        ()         { return m_bUsePC;  }
    1035 #endif
    1036 #endif
    1037992#endif
    1038993#if H_3D_IV_MERGE
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r1066 r1084  
    409409
    410410#if H_3D_QTLPC
    411 #if MTK_I0099_VPS_EX2
    412411  TComVPS *vps            = pcPic->getSlice(0)->getVPS();
    413412  Bool  bLimQtPredFalg    = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId());
    414 #else
    415   TComSPS *sps            = pcPic->getSlice(0)->getSPS();
    416 #endif
    417413  TComPic *pcTexture      = rpcBestCU->getSlice()->getTexturePic();
    418414
     
    535531#if H_3D_QTLPC
    536532      //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU
    537 
    538 #if MTK_I0099_VPS_EX2
    539 #if MTK_I0099_FIX
    540 #if LGE_FCO_I0116
     533#if H_3D_FCO
    541534      if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ) && pcTexture->getReconMark())
    542535#else
    543536      if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ))
    544 #endif
    545 #else
    546       if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)
    547 #endif
    548 #else
    549       if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
    550537#endif
    551538      {
     
    702689
    703690#if H_3D_QTLPC     
    704 #if MTK_I0099_VPS_EX2
    705 #if MTK_I0099_FIX
    706691      if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ))
    707 #else
    708       if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)
    709 #endif
    710 #else
    711       if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
    712 #endif
    713692      {
    714693        bTrySplitDQP = bTrySplit;
     
    734713    }
    735714#endif
    736 #if MTK_SINGLE_DEPTH_MODE_I0095
     715#if H_3D_SINGLE_DEPTH
    737716    rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP  );
    738717    if(rpcBestCU->getSlice()->getApplySingleDepthMode())
     
    10571036              rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0     
    10581037#if H_3D_DIM_ENC
    1059 #if HHI_DMM4_ENC_I0066
    10601038              || rpcBestCU->getSlice()->getIsDepth()
    1061 #else
    1062             || ( rpcBestCU->getSlice()->getIsDepth() && rpcBestCU->getSlice()->isIRAP() )
    1063 #endif
    10641039#endif
    10651040            ) // avoid very complex intra if it is unlikely
    10661041          {
    1067 #if HHI_DMM4_ENC_I0066
     1042#if H_3D_DIM
    10681043            Bool bOnlyIVP = false;
    10691044            if( rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP()) &&
     
    10981073                if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    10991074                {
    1100 #if HHI_DMM4_ENC_I0066
     1075#if H_3D_DIM
    11011076                  xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN, bOnlyIVP );
    11021077#else
     
    15901565    return;
    15911566  }
    1592 #if MTK_SINGLE_DEPTH_MODE_I0095
     1567#if H_3D_SINGLE_DEPTH
    15931568  m_pcEntropyCoder->encodeSingleDepthMode( pcCU, uiAbsPartIdx );
    15941569  if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
     
    16271602  m_pcEntropyCoder->encodeCoeff( pcCU, uiAbsPartIdx, uiDepth, pcCU->getWidth (uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), bCodeDQP );
    16281603  setdQPFlag( bCodeDQP );
    1629 #if MTK_SINGLE_DEPTH_MODE_I0095
     1604#if H_3D_SINGLE_DEPTH
    16301605  }
    16311606#endif
     
    18631838    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    18641839    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    1865 #if !FIX_TICKET_79
    1866     InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    1867 #endif
    18681840#if H_3D_SPIVMP
    18691841    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    18781850    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
    18791851    rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
    1880 #if !FIX_TICKET_79
    1881       , inheritedVSPDisInfo
    1882 #endif
    18831852#if H_3D_SPIVMP
    18841853      , pcMvFieldSP, puhInterDirSP
     
    18951864
    18961865#else
    1897 #if FIX_TICKET_79
    18981866    rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, numValidMergeCand );
    1899 #else
    1900     rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );
    1901 #endif
    19021867#endif
    19031868
     
    19421907#if H_3D_VSP
    19431908          rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth );
    1944 #if !FIX_TICKET_79
    1945           rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    1946 #endif
    19471909#endif
    19481910#if H_3D_DDD
     
    20432005
    20442006          rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth );
    2045 #if MTK_SINGLE_DEPTH_MODE_I0095
     2007#if H_3D_SINGLE_DEPTH
    20462008          rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    20472009#endif
     
    20612023          if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual )
    20622024          {
    2063 #if FAST_SDC_OFFSET_DECISION_I0084
    20642025            Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
    20652026            for( Int uiOffest = 1 ; uiOffest <= 5 ; uiOffest++ )
    2066 #else
    2067             for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )
    2068 #endif
    20692027            {
    2070 #if FAST_SDC_OFFSET_DECISION_I0084
    20712028              if( uiOffest > 3)
    20722029              {
     
    20842041                }
    20852042              }
    2086 #endif
    20872043              if( rpcTempCU != rpcTempCUPre )
    20882044              {
     
    20912047              }
    20922048              rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2093 #if MTK_SINGLE_DEPTH_MODE_I0095
     2049#if H_3D_SINGLE_DEPTH
    20942050              rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    20952051#endif
     
    21062062              }
    21072063#endif
    2108 #if FAST_SDC_OFFSET_DECISION_I0084
    21092064              Int iSdcOffset = 0;
    21102065              if(uiOffest % 2 == 0)
     
    21272082                dOffsetCost [uiOffest -1] = rpcTempCU->getTotalCost();
    21282083              }
    2129 #else
    2130               m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,
    2131                 m_ppcOrigYuv[uhDepth],
    2132                 ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],
    2133                 m_ppcResiYuvTemp[uhDepth],
    2134                 m_ppcRecoYuvTemp[uhDepth],
    2135                 uiOffest,
    2136                 uhDepth );
    2137 #endif
    21382084
    21392085              xCheckDQP( rpcTempCU );
     
    22532199 
    22542200  rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2255 #if MTK_SINGLE_DEPTH_MODE_I0095
     2201#if H_3D_SINGLE_DEPTH
    22562202  rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    22572203#endif
     
    23262272  }
    23272273#endif
    2328 
    23292274#if H_3D_VSO // M4
    23302275  if( m_pcRdCost->getUseLambdaScaleVSO() )
     
    23322277  else
    23332278#endif
    2334 
    23352279  rpcTempCU->getTotalCost()  = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );
    23362280#if H_3D_INTER_SDC
     
    23422286  if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && ePartSize == SIZE_2Nx2N)
    23432287  {
    2344 #if FAST_SDC_OFFSET_DECISION_I0084
    23452288    Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
    23462289    for( Int uiOffest = 1 ; uiOffest <= 5 ; uiOffest++ )
    2347 #else
    2348     for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )
    2349 #endif
    2350     {
    2351 #if FAST_SDC_OFFSET_DECISION_I0084
     2290    {
    23522291      if( uiOffest > 3)
    23532292      {
     
    23652304        }
    23662305      }
    2367 #endif
     2306
    23682307      if( rpcTempCU != rpcTempCUPre )
    23692308      {
     
    23732312      }
    23742313      rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2375 #if MTK_SINGLE_DEPTH_MODE_I0095
     2314#if H_3D_SINGLE_DEPTH
    23762315      rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );
    23772316#endif
     
    23892328#endif
    23902329
    2391 #if FAST_SDC_OFFSET_DECISION_I0084
    23922330      Int iSdcOffset = 0;
    23932331      if(uiOffest % 2 == 0)
     
    24102348        dOffsetCost [uiOffest -1] = rpcTempCU->getTotalCost();
    24112349      }
    2412 #else
    2413       m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,
    2414         m_ppcOrigYuv[uhDepth],
    2415         ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],
    2416         m_ppcResiYuvTemp[uhDepth],
    2417         m_ppcRecoYuvTemp[uhDepth],
    2418         uiOffest,
    2419         uhDepth );
    2420 #endif
    24212350
    24222351      xCheckDQP( rpcTempCU );
     
    24932422  }
    24942423}
    2495 #if MTK_SINGLE_DEPTH_MODE_I0095
     2424#if H_3D_SINGLE_DEPTH
    24962425Void TEncCu::xCheckRDCostSingleDepth( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )
    24972426{
     
    25602489}
    25612490#endif
     2491
    25622492Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG )
    25632493{
     
    25812511  AOF( uiWidth == uiHeight );
    25822512 
    2583 #if SEC_DBBP_DISALLOW_8x8_I0078
     2513#if H_3D_DBBP
     2514  // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode
    25842515  if(uiWidth <= 8)
    25852516  {
     
    25922523  // fetch virtual depth block
    25932524  UInt uiDepthStride = 0;
    2594 #if LGE_FCO_I0116
     2525#if H_3D_FCO
    25952526  Pel* pDepthPels = rpcTempCU->getVirtualDepthBlock(rpcTempCU->getZorderIdxInCU(), uiWidth, uiHeight, uiDepthStride);
    25962527#else
     
    26882619 
    26892620  // reconstruct final prediction signal by combining both segments
    2690 #if SHARP_DBBP_SIMPLE_FLTER_I0109
    26912621  m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize);
    2692 #else
    2693   m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight);
    2694 #endif
    2695  
    26962622  m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
    26972623 
     
    27002626}
    27012627#endif
    2702 
    2703 #if HHI_DMM4_ENC_I0066
     2628#if H_3D_DIM
    27042629Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize, Bool bOnlyIVP )
    27052630#else
     
    27072632#endif
    27082633{
    2709   UInt uiDepth = rpcTempCU->getDepth( 0 );
    2710  
     2634  UInt uiDepth = rpcTempCU->getDepth( 0 ); 
    27112635#if H_3D_VSO // M5
    27122636  if( m_pcRdCost->getUseRenModel() )
     
    27212645
    27222646  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2723 #if MTK_SINGLE_DEPTH_MODE_I0095
     2647#if H_3D_SINGLE_DEPTH
    27242648  rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth );
    27252649#endif
     
    27332657    m_pcPredSearch->preestChromaPredMode( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth] );
    27342658  }
    2735 #if HHI_DMM4_ENC_I0066
     2659#if H_3D_DIM
    27362660  m_pcPredSearch  ->estIntraPredQT      ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, bSeparateLumaChroma, bOnlyIVP );
    27372661#else
     
    27512675  }
    27522676  m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
    2753 #if MTK_SINGLE_DEPTH_MODE_I0095
     2677#if H_3D_SINGLE_DEPTH
    27542678  m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0,          true );
    27552679  if(!rpcTempCU->getSingleDepthFlag(0))
     
    27682692  m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, rpcTempCU->getWidth (0), rpcTempCU->getHeight(0), bCodeDQP );
    27692693  setdQPFlag( bCodeDQP );
    2770 #if MTK_SINGLE_DEPTH_MODE_I0095
     2694#if H_3D_SINGLE_DEPTH
    27712695  }
    27722696#endif       
     
    27982722
    27992723  rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );
    2800 #if MTK_SINGLE_DEPTH_MODE_I0095
     2724#if H_3D_SINGLE_DEPTH
    28012725  rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth );
    28022726#endif
     
    28172741  }
    28182742  m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0,          true );
    2819 #if MTK_SINGLE_DEPTH_MODE_I0095
     2743#if H_3D_SINGLE_DEPTH
    28202744  m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0,          true );
    28212745#endif
  • trunk/source/Lib/TLibEncoder/TEncCu.h

    r1039 r1084  
    159159  Void  xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false );
    160160#endif
    161 #if MTK_SINGLE_DEPTH_MODE_I0095
     161#if H_3D_SINGLE_DEPTH
    162162  Void  xCheckRDCostSingleDepth   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize  );
    163163#endif
    164 #if HHI_DMM4_ENC_I0066
     164#if H_3D_DIM
    165165  Void  xCheckRDCostIntra   ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bOnlyIVP );
    166166#else
  • trunk/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1066 r1084  
    119119  m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx );
    120120}
    121 #if MTK_SINGLE_DEPTH_MODE_I0095
     121#if H_3D_SINGLE_DEPTH
    122122Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    123123{
     
    185185  else
    186186  {
    187 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    188187    Int ICEnableCandidate = pcCU->getSlice()->getICEnableCandidate(pcCU->getSlice()->getDepth());
    189188    Int ICEnableNum = pcCU->getSlice()->getICEnableNum(pcCU->getSlice()->getDepth());
     
    195194    pcCU->getSlice()->setICEnableCandidate(pcCU->getSlice()->getDepth(), ICEnableCandidate);
    196195    pcCU->getSlice()->setICEnableNum(pcCU->getSlice()->getDepth(), ICEnableNum);
    197 #else
    198     g_aICEnableCANDIDATE[pcCU->getSlice()->getDepth()]++;
    199     if(pcCU->getICFlag(uiAbsPartIdx))
    200     {
    201       g_aICEnableNUM[pcCU->getSlice()->getDepth()]++;
    202     }
    203 #endif
    204196  }
    205197  if( pcCU->isICFlagRequired( uiAbsPartIdx ) )
     
    273265  }
    274266 
     267  m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth );
     268 
    275269#if H_3D_DBBP
    276 #if! SEC_DBBP_EXPLICIT_SIG_I0077
    277   PartSize eVirtualPartSize = pcCU->getPartitionSize(uiAbsPartIdx);
    278   if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    279   {
    280     AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
    281    
    282     // temporarily change partition size for DBBP blocks
    283     pcCU->setPartSizeSubParts(RWTH_DBBP_PACK_MODE, uiAbsPartIdx, uiDepth);
    284   }
    285 #endif
    286 #endif
    287  
    288   m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth );
    289  
    290 #if H_3D_DBBP
    291 #if SEC_DBBP_EXPLICIT_SIG_I0077
    292 #if SEC_DBBP_DISALLOW_8x8_I0078
    293270  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    294 #else
    295   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )
    296 #endif
    297 #else
    298 #if SEC_DBBP_DISALLOW_8x8_I0078
    299   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getWidth(uiAbsPartIdx) > 8 )
    300 #else
    301   if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )
    302 #endif
    303 #endif
    304271  {
    305272    encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD);
    306 #if !SEC_DBBP_EXPLICIT_SIG_I0077
    307     if( pcCU->getDBBPFlag(uiAbsPartIdx) )
    308     {
    309       // restore virtual partition size for DBBP blocks
    310       pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);
    311     }
    312 #endif
    313273  }
    314274#endif
  • trunk/source/Lib/TLibEncoder/TEncEntropy.h

    r1039 r1084  
    8686  virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    8787  virtual Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    88 #if MTK_SINGLE_DEPTH_MODE_I0095
     88#if H_3D_SINGLE_DEPTH
    8989  virtual Void codeSingleDepthMode      ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    9090#endif
     
    174174  Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    175175  Void encodeSkipFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    176 #if MTK_SINGLE_DEPTH_MODE_I0095
     176#if H_3D_SINGLE_DEPTH
    177177  Void encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false );
    178178#endif
  • trunk/source/Lib/TLibEncoder/TEncGOP.cpp

    r1066 r1084  
    160160#endif
    161161#endif
    162 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    163   m_aICEnableCandidate           = pcTEncTop->getICEnableCandidate();
    164   m_aICEnableNum           = pcTEncTop->getICEnableNum();
     162#if H_3D_IC
     163  m_aICEnableCandidate   = pcTEncTop->getICEnableCandidate();
     164  m_aICEnableNum         = pcTEncTop->getICEnableNum();
    165165#endif
    166166#if KWU_FIX_URQ
     
    395395Void TEncGOP::initGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP)
    396396{
     397#if H_MV_ALIGN_HM_15
     398  xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut, false );
     399#else
    397400  xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut );
     401#endif
    398402  m_iNumPicCoded = 0;
    399403}
     
    937941    pcSlice->setRefPicList ( rcListPic );
    938942#endif
    939 #if MTK_SINGLE_DEPTH_MODE_I0095
     943#if H_3D_SINGLE_DEPTH
    940944    TEncTop* pcEncTop = (TEncTop*) m_pcCfg;
    941945    bool enableSingleDepthMode=false;
     
    971975#endif   
    972976#endif
    973 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     977#if H_3D_IC
    974978    pcSlice->setICEnableCandidate( m_aICEnableCandidate );         
    975979    pcSlice->setICEnableNum( m_aICEnableNum );         
     
    12281232    UInt uiRealEndAddress = uiExternalAddress*pcPic->getNumPartInCU()+uiInternalAddress;
    12291233
    1230     UInt uiCummulativeTileWidth;
    1231     UInt uiCummulativeTileHeight;
    12321234    Int  p, j;
    12331235    UInt uiEncCUAddr;
    12341236
    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());
    12941238
    12951239    // Allocate some coders, now we know how many tiles there are.
     
    18141758
    18151759#if SETTING_NO_OUT_PIC_PRIOR
     1760          pcSlice->setNoRaslOutputFlag(false);
    18161761          if (pcSlice->isIRAP())
    18171762          {
     
    18211766            }
    18221767            //the inference for NoOutputPriorPicsFlag
     1768            // KJS: This cannot happen at the encoder
    18231769            if (!m_bFirst && pcSlice->isIRAP() && pcSlice->getNoRaslOutputFlag())
    18241770            {
     
    24922438  assert (m_iGopSize > 0);
    24932439 
    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 frame
    2501   if ( iPOCLast == 0 )
    2502   {
    2503     m_iGopSize    = 1;
    2504   }
    2505   else
    2506     m_iGopSize    = m_pcCfg->getGOPSize();
    2507  
    2508   assert (m_iGopSize > 0);
    2509 
    25102440  return;
    25112441}
  • trunk/source/Lib/TLibEncoder/TEncGOP.h

    r1066 r1084  
    116116#endif
    117117#endif
    118 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    119   Int *m_aICEnableCandidate;
    120   Int *m_aICEnableNum;
     118#if H_3D_IC
     119  Int*                    m_aICEnableCandidate;
     120  Int*                    m_aICEnableNum;
    121121#endif
    122122  //--Adaptive Loop filter
     
    200200
    201201  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 );
    203202  Void  xGetBuffer        ( TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, Int iNumPicRcvd, Int iTimeOffset, TComPic*& rpcPic, TComPicYuv*& rpcPicYuvRecOut, Int pocCurr, bool isField );
    204203 
  • trunk/source/Lib/TLibEncoder/TEncSbac.cpp

    r1066 r1084  
    5858, m_cCUSplitFlagSCModel       ( 1,             1,               NUM_SPLIT_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels )
    5959, m_cCUSkipFlagSCModel        ( 1,             1,               NUM_SKIP_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    60 #if MTK_SINGLE_DEPTH_MODE_I0095
     60#if H_3D_SINGLE_DEPTH
    6161, m_cCUSingleDepthFlagSCModel        ( 1,             1,               NUM_SINGLEDEPTH_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    6262, m_cSingleDepthValueSCModel         ( 1,             1,               NUM_SINGLE_DEPTH_VALUE_DATA_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
     
    134134 
    135135  m_cCUSkipFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    136 #if MTK_SINGLE_DEPTH_MODE_I0095
     136#if H_3D_SINGLE_DEPTH
    137137  m_cCUSingleDepthFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    138138  m_cSingleDepthValueSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    214214      curCost  = m_cCUSplitFlagSCModel.calcCost       ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG );
    215215      curCost += m_cCUSkipFlagSCModel.calcCost        ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG );
    216 #if MTK_SINGLE_DEPTH_MODE_I0095
     216#if H_3D_SINGLE_DEPTH
    217217      curCost += m_cCUSingleDepthFlagSCModel.calcCost        ( curSliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    218218      curCost += m_cSingleDepthValueSCModel.calcCost         ( curSliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    255255      curCost += m_CUTransquantBypassFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG );
    256256#if H_3D_DIM
    257 #if SEPARATE_FLAG_I0085
    258257    if( m_pcSlice->getVpsDepthModesFlag() || m_pcSlice->getIVPFlag() )
    259 #else
    260     if( m_pcSlice->getVpsDepthModesFlag() )
    261 #endif
    262258    {
    263259      curCost += m_cDepthIntraModeSCModel.calcCost    ( curSliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE );
     
    291287 
    292288  m_cCUSkipFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG );
    293 #if MTK_SINGLE_DEPTH_MODE_I0095
     289#if H_3D_SINGLE_DEPTH
    294290  m_cCUSingleDepthFlagSCModel.initBuffer        ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );
    295291  m_cSingleDepthValueSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );
     
    454450  m_pcBinIf->encodeBinsEP( bins, numBins );
    455451}
    456 #if MTK_SINGLE_DEPTH_MODE_I0095
     452#if H_3D_SINGLE_DEPTH
    457453Void TEncSbac::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx )
    458454{
     
    462458  {
    463459    UInt uiUnaryIdx = (UInt) pcCU->getSingleDepthValue(uiAbsPartIdx);
    464     UInt uiNumCand = MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE;
     460    UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE;
    465461    if ( uiNumCand > 1 )
    466462    {
     
    563559
    564560#endif
    565 
    566 #if !FIX_TICKET_76
    567 #if H_3D_DIM_SDC
    568 Void TEncSbac::xCodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment )
    569 {
    570   assert( pcCU->getSlice()->getIsDepth() );
    571   assert( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N );
    572   assert( pcCU->getSDCFlag(uiAbsPartIdx) );
    573   assert( uiSegment < 2 );
    574  
    575   Pel segmentDCOffset = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
    576  
    577   UInt uiResidual = segmentDCOffset == 0 ? 0 : 1;
    578   UInt uiSign     = segmentDCOffset < 0 ? 1 : 0;
    579   UInt uiAbsIdx   = abs(segmentDCOffset);
    580 
    581 #if H_3D_DIM_DLT
    582   UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
    583 #else
    584   UInt uiMaxResidualBits = g_bitDepthY;
    585 #endif
    586   assert( uiMaxResidualBits <= g_bitDepthY );
    587  
    588   // residual flag
    589   m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );
    590 #if H_MV_ENC_DEC_TRAC
    591   DTRACE_CU("sdc_residual_flag[i]", uiResidual)
    592 #endif 
    593  
    594   if (uiResidual)
    595   {
    596     // encode sign bit of residual
    597     m_pcBinIf->encodeBinEP( uiSign );
    598 #if H_MV_ENC_DEC_TRAC
    599     DTRACE_CU("sdc_residual_sign_flag[i]", uiSign)
    600 #endif
    601 #if H_3D_DIM_DLT   
    602     UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
    603 #else
    604     UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);
    605 #endif
    606 
    607     assert(uiAbsIdx <= uiNumDepthValues);
    608    
    609     // encode residual magnitude
    610     uiAbsIdx -= 1;
    611 
    612 #if H_MV_ENC_DEC_TRAC
    613     DTRACE_CU("sdc_residual_abs_minus1[i]", uiAbsIdx)
    614 #endif
    615 
    616     // prefix part
    617     if ( uiAbsIdx == 0 )
    618     {
    619       m_pcBinIf->encodeBin( 0, m_cSDCResidualSCModel.get(0, 0, 0) );
    620     }
    621     else
    622     {
    623       UInt l = uiAbsIdx;
    624       UInt k = 0;
    625       UInt uiPrefixThreshold = ((uiNumDepthValues * 3) >> 2);
    626       while ( l > 0 && k < uiPrefixThreshold )
    627       {
    628         m_pcBinIf->encodeBin( 1, m_cSDCResidualSCModel.get(0, 0, 0) );
    629         l--;
    630         k++;
    631       }
    632       if ( uiAbsIdx < uiPrefixThreshold )
    633       {
    634         m_pcBinIf->encodeBin( 0, m_cSDCResidualSCModel.get(0, 0, 0) );
    635       }     
    636       else
    637       { // suffix part
    638         uiAbsIdx -= uiPrefixThreshold;
    639         UInt uiSuffixLength = numBitsForValue(uiNumDepthValues - uiPrefixThreshold);
    640         UInt uiBitInfo = 0;
    641         for ( Int i = 0; i < uiSuffixLength; i++)
    642         {
    643           uiBitInfo = ( uiAbsIdx & ( 1 << i ) ) >> i;
    644           m_pcBinIf->encodeBinEP( uiBitInfo);
    645         }
    646       }
    647     }
    648    
    649   }
    650 }
    651 #endif
    652 #endif
    653561#endif
    654562
     
    717625  PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
    718626#if H_3D_QTLPC
    719 #if MTK_I0099_VPS_EX2
    720627  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    721628  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    722 #else
    723   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
    724 #endif
    725629  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    726630  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    731635  Bool depthDependent = false;
    732636  UInt uiTexturePart = eSize;
    733 #if MTK_I0099_VPS_EX2
    734 #if LGE_FCO_I0116
     637
     638#if H_3D_FCO
    735639  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag && pcTexture->getReconMark())
    736640#else
    737641  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag )
    738 #endif
    739 #else
    740   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() )
    741642#endif
    742643  {
     
    1097998  Bool bCodeSplitFlag    = true;
    1098999
    1099 #if MTK_I0099_VPS_EX2
    11001000  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    11011001  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
    1102 #else
    1103   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
    1104 #endif
    11051002  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    11061003  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    11091006  Bool rapPic     = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    11101007
    1111 #if MTK_I0099_VPS_EX2
    1112 #if LGE_FCO_I0116
     1008#if H_3D_FCO
    11131009  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag && pcTexture->getReconMark() )
    11141010#else
    11151011  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag  )
    1116 #endif
    1117 #else
    1118   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC())
    11191012#endif
    11201013  {
     
    11671060    dir[j] = pcCU->getLumaIntraDir( absPartIdx+partOffset*j );
    11681061#if H_3D_DIM
    1169 #if SEPARATE_FLAG_I0085
    11701062    if( pcCU->getSlice()->getVpsDepthModesFlag() ||  pcCU->getSlice()->getIVPFlag() )
    1171 #else
    1172     if( pcCU->getSlice()->getVpsDepthModesFlag() )
    1173 #endif
    11741063    {
    11751064      codeIntraDepth( pcCU, absPartIdx+partOffset*j );
     
    13171206    }
    13181207    //mode coding
    1319 #if SEPARATE_FLAG_I0085
    13201208    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag())
    13211209    {
    13221210      m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    13231211    }
    1324 #else
    1325     m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
    1326 #endif
    13271212  }
    13281213}
     
    23682253  }
    23692254
    2370 #if HS_DMM_SIGNALLING_I0120
    23712255  UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1;
    23722256  UInt dimDeltaDC = 1;
    2373 #else
    2374   UInt uiNumSegments = 0;
    2375   UInt dimDeltaDC = 0;
    2376 #endif
    2377 
    2378 #if HS_DMM_SIGNALLING_I0120
     2257
    23792258  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
    23802259  {
    2381 #else
    2382   if( pcCU->isIntra( absPartIdx ) )
    2383   {
    2384     UInt dir     = pcCU->getLumaIntraDir( absPartIdx );
    2385     uiNumSegments = isDimMode( dir ) ? 2 : 1;
    2386 
    2387     if( pcCU->getSDCFlag( absPartIdx ) )
    2388     {
    2389 #endif
    23902260      if( uiNumSegments == 1 )
    23912261      {
     
    23962266        dimDeltaDC = ( pcCU->getSDCSegmentDCOffset( 0, absPartIdx ) || pcCU->getSDCSegmentDCOffset( 1, absPartIdx ) ) ? 1 : 0;
    23972267      }
    2398 #if !HS_DMM_SIGNALLING_I0120
    2399     }
    2400     else
    2401     {
    2402       dimDeltaDC = isDimDeltaDC( dir );
    2403     }
    2404 #endif
    24052268    m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    24062269  }
    2407 #if !HS_DMM_SIGNALLING_I0120
    2408   else //all-zero inter SDC is not allowed
    2409   {
    2410     uiNumSegments = 1;
    2411     dimDeltaDC = 1;
    2412   }
    2413 #endif
    24142270
    24152271  if( dimDeltaDC )
     
    24472303Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    24482304{
    2449 #if SEC_DBBP_EXPLICIT_SIG_I0077
    24502305  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
    24512306  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
    2452 #endif
    24532307  AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
    24542308  AOF( !pcCU->getSlice()->getIsDepth() );
  • trunk/source/Lib/TLibEncoder/TEncSbac.h

    r1039 r1084  
    130130  Void  xCodeDmm1WedgeIdx    ( UInt uiTabIdx, Int iNumBit );
    131131#endif
    132 #if !FIX_TICKET_76
    133 #if H_3D_DIM_SDC
    134   Void  xCodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment );
    135 #endif
    136 #endif
    137132#endif
    138133 
     
    155150  Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx );
    156151  Void codeSkipFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    157 #if MTK_SINGLE_DEPTH_MODE_I0095
     152#if H_3D_SINGLE_DEPTH
    158153  Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx );
    159154#endif
     
    224219  ContextModel3DBuffer m_cCUSplitFlagSCModel;
    225220  ContextModel3DBuffer m_cCUSkipFlagSCModel;
    226 #if MTK_SINGLE_DEPTH_MODE_I0095
     221#if H_3D_SINGLE_DEPTH
    227222  ContextModel3DBuffer m_cCUSingleDepthFlagSCModel;
    228223  ContextModel3DBuffer m_cSingleDepthValueSCModel;
  • trunk/source/Lib/TLibEncoder/TEncSearch.cpp

    r1066 r1084  
    915915        }
    916916        m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true );
    917 #if MTK_SINGLE_DEPTH_MODE_I0095
     917#if H_3D_SINGLE_DEPTH
    918918        m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true );
    919919        if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
     
    921921        m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    922922      }
    923 #if MTK_SINGLE_DEPTH_MODE_I0095
     923#if H_3D_SINGLE_DEPTH
    924924      else
    925925      {
     
    927927      }
    928928#endif     
    929 #if MTK_SINGLE_DEPTH_MODE_I0095
     929#if H_3D_SINGLE_DEPTH
    930930      if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
    931931      {
     
    945945        }
    946946      }
    947 #if MTK_SINGLE_DEPTH_MODE_I0095
    948     }
    949 #endif
    950     }
    951 #if MTK_SINGLE_DEPTH_MODE_I0095
     947#if H_3D_SINGLE_DEPTH
     948    }
     949#endif
     950    }
     951#if H_3D_SINGLE_DEPTH
    952952      if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))
    953953      {
     
    995995    }
    996996  }
    997 #if MTK_SINGLE_DEPTH_MODE_I0095
     997#if H_3D_SINGLE_DEPTH
    998998    }
    999999#endif
     
    18591859  dRDCost  += dSingleCost;
    18601860}
    1861 #if MTK_SINGLE_DEPTH_MODE_I0095
     1861#if H_3D_SINGLE_DEPTH
    18621862Void TEncSearch::xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel *DepthNeighbor )
    18631863{
     
    19701970      UInt dimType   = getDimType  ( uiLumaPredMode );
    19711971      UInt patternID = pcCU->getDmmWedgeTabIdx(dimType, uiAbsPartIdx);
    1972 #if SHARP_DMM1_I0110
    19731972      UInt uiBaseWidth = pcCU->isDMM1UpscaleMode(uiWidth) ? pcCU->getDMM1BasePatternWidth(uiWidth) : uiWidth;
    19741973      if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiBaseWidth]].size() && dimType == DMM1_IDX )
    1975 #else
    1976       if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiWidth]].size() && dimType == DMM1_IDX )
    1977 #endif
    1978       {
    1979 #if SHARP_DMM1_I0110
     1974      {
    19801975        if (g_aucConvertToBit[uiBaseWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.
    1981 #else
    1982         if (g_aucConvertToBit[uiWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.
    1983 #endif
    19841976        {                                   
    19851977          patternID = 1349;  // Split 32x32 to 16x16. 1349: Maximum DMM1 pattern number when block size is 16x16
     
    20432035    Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx);
    20442036
    2045 #if SHARP_DMM1_I0110
    20462037    WedgeList* pacWedgeList  = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    2047 #else
    2048     WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    2049 #endif
    20502038    TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx ));
    20512039
    20522040    uiNumSegments = 2;
    2053 #if SHARP_DMM1_I0110
    20542041    pbMask       = pcCU->isDMM1UpscaleMode( uiWidth ) ? pcWedgelet->getScaledPattern( uiWidth ) : pcWedgelet->getPattern();
    20552042    uiMaskStride = pcCU->isDMM1UpscaleMode( uiWidth ) ? uiWidth : pcWedgelet->getStride();
    2056 #else
    2057     pbMask = pcWedgelet->getPattern();
    2058     uiMaskStride = pcWedgelet->getStride();
    2059 #endif
    20602043  }
    20612044  if( getDimType( uiLumaPredMode ) == DMM4_IDX )
     
    28782861  pcCU->setChromIntraDirSubParts( uiBestMode, 0, pcCU->getDepth( 0 ) );
    28792862}
    2880 #if MTK_SINGLE_DEPTH_MODE_I0095
     2863#if H_3D_SINGLE_DEPTH
    28812864Void
    28822865TEncSearch::estIntraPredSingleDepth( TComDataCU* pcCU,
     
    29002883  Pel DepthNeighbours[5];
    29012884  //construction of depth candidates
    2902   for( Int i = 0; (i < 5)  && (index<MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE) ; i++ )
     2885  for( Int i = 0; (i < 5)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
    29032886  {
    29042887    if(!pcCU->getNeighDepth (0, 0, &testDepth, i))
     
    29832966                            UInt&       ruiDistC,
    29842967                            Bool        bLumaOnly
    2985 #if HHI_DMM4_ENC_I0066
     2968#if H_3D_DIM
    29862969                          , Bool        bOnlyIVP
    29872970#endif
     
    30323015    Int numModesForFullRD = g_aucIntraModeNumFast[ uiWidthBit ];
    30333016   
    3034 #if HHI_DMM4_ENC_I0066
     3017#if H_3D_DIM
    30353018    if( bOnlyIVP )
    30363019    {
     
    30803063        UInt   iModeBits = xModeBitsIntra( pcCU, uiMode, uiPU, uiPartOffset, uiDepth, uiInitTrDepth );
    30813064#if H_3D_VSO // M35
    3082 #if H_3D_VSO_FIX // This fix should be enabled after verification
    30833065        Double dLambda;
    30843066        if ( m_pcRdCost->getUseLambdaScaleVSO() )
     
    30923074
    30933075        Double cost      = (Double)uiSad + (Double)iModeBits * dLambda;
    3094 #else
    3095         Double cost      = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda();
    3096 #endif
    30973076#else
    30983077        Double cost      = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda();
     
    31353114      }
    31363115    }
    3137 #if HHI_DMM4_ENC_I0066
     3116#if H_3D_DIM
    31383117    }
    31393118#endif
     
    31433122    if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight )
    31443123    {
    3145 #if HHI_DMM4_ENC_I0066
    3146 #if SEPARATE_FLAG_I0085
    31473124      if( bOnlyIVP && m_pcEncCfg->getUseIVP() )
    3148 #else
    3149       if( bOnlyIVP )
    3150 #endif
    31513125      {
    31523126        TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
     
    31583132        pcCU->setDimDeltaDC( DMM4_IDX, 1, uiPartOffset, deltaDC2 );
    31593133
    3160 #if HS_DMM_SIGNALLING_I0120
    31613134        uiRdModeList[ numModesForFullRD++ ] = (DMM4_IDX+DIM_OFFSET);
    3162 #else
    3163         uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX  +DIM_OFFSET);
    3164         if( deltaDC1 != 0 || deltaDC2 != 0 )
    3165           uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX+1+DIM_OFFSET);
    3166 #endif
    31673135        dmm4Segmentation->destroy(); delete dmm4Segmentation;
    31683136      }
    31693137      else
    31703138      {
    3171 #endif
    31723139#if H_3D_FAST_DEPTH_INTRA
    31733140      Int  threshold    = max(((pcCU->getQP(0))>>3)-1,3);
     
    31773144
    31783145#if H_3D_DIM_DMM
    3179 #if SEPARATE_FLAG_I0085
    31803146      if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() )
    3181 #else
    3182       if( m_pcEncCfg->getUseDMM()
    3183 #endif
    31843147#if H_3D_FAST_DEPTH_INTRA
    31853148         && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold)
     
    31873150        )
    31883151      {
    3189 #if SEPARATE_FLAG_I0085
    31903152        UInt uiStart, uiEnd;
    31913153        if( m_pcEncCfg->getUseDMM() &&  m_pcEncCfg->getUseIVP() )
     
    32103172        }
    32113173        for( UInt dmmType = uiStart; dmmType < uiEnd; dmmType++ )
    3212 #else
    3213         for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )
    3214 #endif
    32153174        {
    32163175#if H_3D_FCO
    32173176            TComPic* picTexture  = pcCU->getSlice()->getIvPic(false, pcCU->getSlice()->getViewIndex() );
    3218 #if LGE_FCO_I0116
     3177#if H_3D_FCO
    32193178            if ( !picTexture->getReconMark() && (DMM4_IDX == dmmType ) )
    32203179#else
     
    32343193              xSearchDmm1Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx );
    32353194              pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dmmType,  uiPartOffset, uiDepth + uiInitTrDepth );
    3236 #if SHARP_DMM1_I0110
    32373195              biSegmentation = pcCU->isDMM1UpscaleMode( uiWidth ) ?
    32383196                  &(g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])][uiTabIdx]) : &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    3239 #else
    3240               biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    3241 #endif
    32423197            } break;
    32433198
     
    32543209          if( biSegmentation )
    32553210          {
    3256 #if SHARP_DMM1_I0110
    32573211            if( dmmType == DMM1_IDX && pcCU->isDMM1UpscaleMode( uiWidth ) ){
    32583212                xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getScaledPattern(uiWidth), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 );
     
    32623216                xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );
    32633217            }
    3264 #else
    3265             xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );
    3266 #endif
    32673218            pcCU->setDimDeltaDC( dmmType, 0, uiPartOffset, deltaDC1 );
    32683219            pcCU->setDimDeltaDC( dmmType, 1, uiPartOffset, deltaDC2 );
    32693220
    3270 #if HS_DMM_SIGNALLING_I0120
    32713221            uiRdModeList[ numModesForFullRD++ ] = (dmmType  +DIM_OFFSET);
    3272 #else
    3273             uiRdModeList[ numModesForFullRD++ ] = (2*dmmType  +DIM_OFFSET);
    3274 #if HHI_DMM4_ENC_I0066
    3275             if( deltaDC1 != 0 || deltaDC2 != 0 )
    3276 #endif
    3277             uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET);
    3278 #endif
    3279 
    32803222            if( DMM4_IDX == dmmType ) { biSegmentation->destroy(); delete biSegmentation; }
    32813223          }
    32823224        }
    32833225      }
    3284 #if HHI_DMM4_ENC_I0066
     3226#if H_3D_DIM
    32853227      }
    32863228#endif
     
    32953237   
    32963238    UInt    uiBestPUMode  = 0;
    3297 #if SCU_HS_FAST_INTRA_SDC_I0123
     3239#if H_3D_FAST_INTRA_SDC
    32983240    UInt    uiBestPUModeConv  = 0;
    32993241    UInt    uiSecondBestPUModeConv  = 0;
     
    33093251    Double  dBestPUCost   = MAX_DOUBLE;
    33103252
    3311 #if SCU_HS_FAST_INTRA_SDC_I0123
     3253#if H_3D_FAST_INTRA_SDC
    33123254    Double  dBestPUCostConv   = MAX_DOUBLE;
    33133255    UInt varCU      = m_pcRdCost->calcVAR(piOrg, uiStride, uiWidth,uiHeight,pcCU->getDepth(0));
     
    33193261    Pel     apBestDCOffsets[2] = {0,0};
    33203262#endif
    3321 #if SCU_HS_FAST_INTRA_SDC_I0123
     3263#if H_3D_FAST_INTRA_SDC
    33223264    for( UInt uiMode = 0; uiMode < numModesForFullRD + rdSDC; uiMode++ )
    33233265#else
     
    33263268    {
    33273269      // set luma prediction mode
    3328 #if !SCU_HS_FAST_INTRA_SDC_I0123
     3270#if !H_3D_FAST_INTRA_SDC
    33293271     UInt uiOrgMode = uiRdModeList[uiMode]; 
    33303272#endif
    33313273     
    3332 #if SCU_HS_FAST_INTRA_SDC_I0123
     3274#if H_3D_FAST_INTRA_SDC
    33333275      UInt uiOrgMode;
    33343276      if (uiMode < numModesForFullRD)
     
    33563298     
    33573299#if H_3D_DIM_SDC
    3358 #if SCU_HS_FAST_INTRA_SDC_I0123
     3300#if H_3D_FAST_INTRA_SDC
    33593301      Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD);
    33603302#else
     
    33643306      for( UInt uiSDC=0; uiSDC<=(bTestSDC?1:0); uiSDC++ )
    33653307      {
    3366 #if SCU_HS_FAST_INTRA_SDC_I0123
     3308#if H_3D_FAST_INTRA_SDC
    33673309        if (!uiSDC && uiMode >= numModesForFullRD) continue;
    33683310#endif
    33693311        pcCU->setSDCFlagSubParts( (uiSDC != 0), uiPartOffset, uiDepth + uiInitTrDepth );
    3370 #if FAST_SDC_OFFSET_DECISION_I0084
    33713312        Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
    33723313        for( Int iOffset = 1; iOffset <= 5; iOffset++ )
    3373 #else
    3374         for( Int iSDCDeltaResi = -2; iSDCDeltaResi <= 2; iSDCDeltaResi++ )
    3375 #endif
    3376         {
    3377 #if FAST_SDC_OFFSET_DECISION_I0084
     3314        {
    33783315          Int iSDCDeltaResi = 0;
    33793316          if(iOffset % 2 == 0)
     
    33853322            iSDCDeltaResi = -1 * (iOffset >> 1);
    33863323          }
    3387 #endif
    33883324          if( ( uiSDC == 0 ) && iSDCDeltaResi != 0 )
    33893325          {
    33903326            continue;
    33913327          }
    3392 #if FAST_SDC_OFFSET_DECISION_I0084
    33933328          if( iOffset > 3)
    33943329          {
     
    34073342          }
    34083343#endif
    3409 #endif
    34103344     
    34113345#if H_3D_DIM_ENC || H_3D_DIM_SDC
     
    34523386          // start encoding with SDC
    34533387          xIntraCodingSDC(pcCU, uiPartOffset, pcOrgYuv, pcPredYuv, uiPUDistY, dPUCost, ( testZeroResi != 0 ), iSDCDeltaResi );
    3454 #if FAST_SDC_OFFSET_DECISION_I0084
    34553388          if ( testZeroResi == 0 && iOffset <= 3 )
    34563389          {
    34573390            dOffsetCost [iOffset -1] = dPUCost;
    34583391          }
    3459 #endif
    34603392        }
    34613393        else
     
    34653397#if H_3D_DIM_ENC
    34663398          xRecurIntraCodingQT( pcCU, uiInitTrDepth, uiPartOffset, bLumaOnly, pcOrgYuv, pcPredYuv, pcResiYuv, uiPUDistY, uiPUDistC, true, dPUCost, (testZeroResi != 0) );
    3467 #if SCU_HS_FAST_INTRA_SDC_I0123   
     3399#if H_3D_FAST_INTRA_SDC   
    34683400      if( dPUCost < dBestPUCostConv )
    34693401      {
     
    40173949#if H_3D_VSP
    40183950                                 , Int* vspFlag
    4019 #if !FIX_TICKET_79
    4020                                  , InheritedVSPDisInfo*  inheritedVSPDisInfo
    4021 #endif
    40223951#endif
    40233952#if H_3D_SPIVMP
     
    40794008      pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
    40804009      pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours
    4081 #if H_3D_VSP && !FIX_TICKET_79
    4082                                         , inheritedVSPDisInfo
    4083 #endif
    40844010#if H_3D_SPIVMP
    40854011        , pcMvFieldSP, puhInterDirSP
     
    41094035    pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand);
    41104036    pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours
    4111 #if H_3D_VSP && !FIX_TICKET_79
    4112                                       , inheritedVSPDisInfo
    4113 #endif
    41144037#if H_3D_SPIVMP
    41154038      , pcMvFieldSP, puhInterDirSP
     
    41324055#endif
    41334056  }
    4134 #if H_3D_VSP && !FIX_TICKET_75
    4135   xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand );
    4136 #else
    41374057  xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
    4138 #endif
    41394058
    41404059#if H_3D_DBBP
     
    41644083#if H_3D_VSP
    41654084    pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    4166 #if !FIX_TICKET_79
    4167     pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    4168 #endif
    41694085#endif
    41704086
     
    42664182 * \returns Void
    42674183 */
    4268 #if H_3D_VSP && !FIX_TICKET_75
    4269 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand )
    4270 #else
    42714184Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int numValidMergeCand )
    4272 #endif
    42734185{
    42744186  if ( pcCU->isBipredRestriction(puIdx) )
     
    42764188    for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand )
    42774189    {
    4278 #if H_3D_VSP && !FIX_TICKET_75
    4279       if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) )
    4280 #else
    42814190      if ( interDirNeighbours[mergeCand] == 3 )
    4282 #endif
    42834191      {
    42844192        interDirNeighbours[mergeCand] = 1;
     
    49024810      Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    49034811      memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
    4904 #if !FIX_TICKET_79
    4905       InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];
    4906 #endif
    49074812      UInt uiAbsPartIdx = 0;
    49084813      Int iWidth = 0;
     
    49224827#if H_3D_VSP
    49234828                      , vspFlag
    4924 #if !FIX_TICKET_79
    4925                       , inheritedVSPDisInfo
    4926 #endif
    49274829#endif
    49284830#if H_3D_SPIVMP
     
    49384840#if H_3D_VSP
    49394841        pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    4940 #if !FIX_TICKET_79
    4941         pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    4942 #endif
    49434842#endif
    49444843#if H_3D_DDD
     
    64306329    if( bCodeChroma )
    64316330    {
     6331      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6332      m_pcEntropyCoder->resetBits();
    64326333        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode );
    64336334      m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U );
    6434       uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsY;
     6335      uiSingleBitsU = m_pcEntropyCoder->getNumberOfWrittenBits();
    64356336     
     6337      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6338      m_pcEntropyCoder->resetBits();
    64366339        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode );
    64376340      m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V );
    6438       uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - ( uiSingleBitsY + uiSingleBitsU );
     6341      uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits();
    64396342    }
    64406343   
     
    65176420        const Double singleCostY = m_pcRdCost->calcRdCost( uiSingleBitsY, uiNonzeroDistY );
    65186421#endif
     6422        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6423
    65196424        m_pcEntropyCoder->resetBits();
    65206425        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA,     uiTrMode );
     
    65506455    else if( checkTransformSkipY )
    65516456    {
     6457      m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    65526458      m_pcEntropyCoder->resetBits();
    65536459      m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_LUMA, uiTrMode );
     
    66066512        {
    66076513          const Double dSingleCostU = m_pcRdCost->calcRdCost( uiSingleBitsU, uiNonzeroDistU );
     6514          m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    66086515          m_pcEntropyCoder->resetBits();
    66096516          m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U,     uiTrMode );
     
    66316538      else if( checkTransformSkipUV )
    66326539      {
     6540        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    66336541        m_pcEntropyCoder->resetBits();
    66346542        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_U, uiTrMode );
     
    66756583        {
    66766584          const Double dSingleCostV = m_pcRdCost->calcRdCost( uiSingleBitsV, uiNonzeroDistV );
     6585          m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    66776586          m_pcEntropyCoder->resetBits();
    66786587          m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V,     uiTrMode );
     
    67006609      else if( checkTransformSkipUV )
    67016610      {
     6611        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
    67026612        m_pcEntropyCoder->resetBits();
    67036613        m_pcEntropyCoder->encodeQtCbfZero( pcCU, TEXT_CHROMA_V, uiTrMode );
     
    68966806      pcCU->setCbfSubParts( uiAbsSumTransformSkipV ? uiSetCbf : 0, TEXT_CHROMA_V, uiAbsPartIdx, pcCU->getDepth(0)+uiTrModeC );
    68976807
    6898       m_pcEntropyCoder->resetBits();
    68996808      uiSingleBitsU = 0;
    69006809      uiSingleBitsV = 0;
     
    69026811      if( uiAbsSumTransformSkipU )
    69036812      {
     6813        m_pcEntropyCoder->resetBits();
    69046814        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrMode );
    69056815        m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrU, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_U );
     
    69446854      if( uiAbsSumTransformSkipV )
    69456855      {
     6856        m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[ uiDepth ][ CI_QT_TRAFO_ROOT ] );
     6857        m_pcEntropyCoder->resetBits();
    69466858        m_pcEntropyCoder->encodeQtCbf   ( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrMode );
    69476859        m_pcEntropyCoder->encodeCoeffNxN( pcCU, pcCoeffCurrV, uiAbsPartIdx, trWidthC, trHeightC, uiDepth, TEXT_CHROMA_V );
    6948         uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits() - uiSingleBitsU;
     6860        uiSingleBitsV = m_pcEntropyCoder->getNumberOfWrittenBits();
    69496861
    69506862        curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
     
    73887300    }
    73897301    m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true );
    7390 #if MTK_SINGLE_DEPTH_MODE_I0095
     7302#if H_3D_SINGLE_DEPTH
    73917303    m_pcEntropyCoder->encodeSingleDepthMode ( pcCU, 0, true );
    73927304#endif
     
    78457757
    78467758  Pel refDC1 = 0; Pel refDC2 = 0;
    7847 #if SHARP_DMM1_I0110
    78487759  WedgeList*     pacWedgeList     = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    78497760  WedgeNodeList* pacWedgeNodeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeNodeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])];
    7850 #else
    7851   WedgeList*     pacWedgeList     = &g_dmmWedgeLists    [(g_aucConvertToBit[uiWidth])];
    7852   WedgeNodeList* pacWedgeNodeList = &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])];
    7853 #endif
    78547761
    78557762  // coarse wedge search
     
    78597766  {
    78607767    TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx()));
    7861 #if SHARP_DMM1_I0110
    78627768    Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern();
    78637769    UInt uiStride   = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride();
    78647770    xCalcBiSegDCs  ( piRef,  uiRefStride,  pbPattern, uiStride, refDC1, refDC2 );
    78657771    xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 );
    7866 #else
    7867     xCalcBiSegDCs  ( piRef,  uiRefStride,  pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7868     xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7869 #endif
    78707772
    78717773    Dist uiActDist = RDO_DIST_MAX;
     
    79037805    {
    79047806      TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiBestNodeId).getRefineIdx( uiRefId )));
    7905 #if SHARP_DMM1_I0110
    79067807      Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern();
    79077808      UInt uiStride   = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride();
    79087809      xCalcBiSegDCs  ( piRef,  uiRefStride,  pbPattern, uiStride, refDC1, refDC2 );
    79097810      xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 );
    7910 #else
    7911       xCalcBiSegDCs  ( piRef,  uiRefStride,  pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7912       xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );
    7913 #endif
    79147811      Dist uiActDist = RDO_DIST_MAX;
    79157812#if H_3D_VSO
  • trunk/source/Lib/TLibEncoder/TEncSearch.h

    r1039 r1084  
    181181                                  UInt&       ruiDistC,
    182182                                  Bool        bLumaOnly
    183 #if HHI_DMM4_ENC_I0066
     183#if H_3D_DIM
    184184                                , Bool        bOnlyIVP
    185185#endif
     
    191191                                  TComYuv*    pcRecoYuv,
    192192                                  UInt        uiPreCalcDistC );
    193 #if MTK_SINGLE_DEPTH_MODE_I0095
     193#if H_3D_SINGLE_DEPTH
    194194  Void  estIntraPredSingleDepth  ( TComDataCU* pcCU,
    195195                                  TComYuv*    pcOrgYuv,
     
    354354                                    UInt         uiAbsPartIdx,
    355355                                    UInt         stateU0V1Both2 );
    356 #if MTK_SINGLE_DEPTH_MODE_I0095
     356#if H_3D_SINGLE_DEPTH
    357357  Void xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel * DepthNeighbor );
    358358#endif
     
    429429#if H_3D_VSP
    430430                                  , Int* vspFlag
    431 #if !FIX_TICKET_79
    432                                   , InheritedVSPDisInfo*  inheritedVSPDisInfo
    433 #endif
    434431#endif
    435432#if H_3D_SPIVMP
     
    443440                                    TComMvField*    mvFieldNeighbours,
    444441                                    UChar*          interDirNeighbours,
    445 #if H_3D_VSP && !FIX_TICKET_75
    446                                     Int* vspFlag,
    447 #endif
    448442                                    Int             numValidMergeCand );
    449443
  • trunk/source/Lib/TLibEncoder/TEncTop.cpp

    r1066 r1084  
    7272  ContextModel::buildNextStateTable();
    7373#endif
    74 #if H_MV_HLS10_GEN_FIX
    7574#if H_MV
    7675  m_iNumSubstreams         = 0;
    77 #endif
    7876#endif
    7977
     
    8987  m_ivPicLists = NULL;
    9088#endif
    91 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     89#if H_3D_IC
    9290  m_aICEnableCandidate = NULL;
    9391  m_aICEnableNum = NULL;
     
    236234      for (Int iCIIdx = 0; iCIIdx < CI_NUM; iCIIdx ++ )
    237235      {
    238 #if H_MV_HLS10_GEN_FIX
    239236#if H_MV
    240237        xDelete( false, m_pppcRDSbacCoder, iDepth, iCIIdx);
     
    244241        delete m_pppcBinCoderCABAC[iDepth][iCIIdx];
    245242#endif
    246 #endif
    247243      }
    248244    }
     
    250246    for ( iDepth = 0; iDepth < g_uiMaxCUDepth+1; iDepth++ )
    251247    {
    252 #if H_MV_HLS10_GEN_FIX
    253248#if H_MV
    254249      xDelete( true, m_pppcRDSbacCoder  , iDepth);
     
    258253      delete [] m_pppcBinCoderCABAC[iDepth];
    259254#endif
    260 #endif
    261     }
    262 
    263 #if H_MV_HLS10_GEN_FIX
     255    }
     256
    264257#if H_MV
    265258     xDelete( true, m_pppcRDSbacCoder  );
     
    269262    delete [] m_pppcBinCoderCABAC;
    270263#endif
    271 #endif
    272264    for ( UInt ui = 0; ui < m_iNumSubstreams; ui++ )
    273265    {
     
    276268        for (Int iCIIdx = 0; iCIIdx < CI_NUM; iCIIdx ++ )
    277269        {
    278 #if H_MV_HLS10_GEN_FIX
    279270#if H_MV
    280271          xDelete(false, m_ppppcRDSbacCoders  ,ui, iDepth, iCIIdx);
     
    284275          delete m_ppppcBinCodersCABAC[ui][iDepth][iCIIdx];
    285276#endif
    286 #endif
    287277        }
    288278      }
     
    290280      for ( iDepth = 0; iDepth < g_uiMaxCUDepth+1; iDepth++ )
    291281      {
    292 #if H_MV_HLS10_GEN_FIX
    293282#if H_MV
    294283        xDelete(true, m_ppppcRDSbacCoders  ,ui, iDepth);
     
    298287        delete [] m_ppppcBinCodersCABAC[ui][iDepth];
    299288#endif
    300 #endif
    301       }
    302 
    303 
    304 #if H_MV_HLS10_GEN_FIX
     289      }
     290
     291
    305292#if H_MV
    306293      xDelete(true, m_ppppcRDSbacCoders,   ui);
     
    310297      delete[] m_ppppcBinCodersCABAC[ui];
    311298#endif
    312 #endif
    313     }
    314 #if H_MV_HLS10_GEN_FIX
     299    }
    315300#if H_MV
    316301    xDelete(true, m_ppppcRDSbacCoders    ) ;
     
    332317  delete[] m_pcRdCosts;
    333318#endif
    334 #endif
    335319
    336320#if !H_MV
     
    370354
    371355  xInitPPSforTiles();
    372 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     356#if H_3D_IC
    373357  m_aICEnableCandidate = new Int[ 10 ];
    374358  m_aICEnableNum = new Int[ 10 ];
     
    769753#if H_MV 
    770754  m_cSPS.setUpdateRepFormatFlag           ( false );   
    771 #if H_MV_HLS10_MULTILAYERSPS 
    772755  Bool multiLayerExtensionFlag  = ( getLayerId() > 0 ) && ( m_cVPS->getNumRefLayers( getLayerId() ) > 0 );
    773756 
     
    778761    m_cSPS.setSpsScalingListRefLayerId( m_cVPS->getIdRefLayer( getLayerId(), 0 ) );
    779762  }
    780 #else
    781   m_cSPS.setSpsInferScalingListFlag       ( m_layerId > 0 && m_cVPS->getInDirectDependencyFlag( getLayerIdInVps(), 0 ) );
    782   m_cSPS.setSpsScalingListRefLayerId      ( 0              );
    783 #endif
    784763  m_cSPS.setSpsExtensionPresentFlag       ( true );
    785764  m_cSPS.setSpsMultilayerExtensionFlag    ( true );
     
    829808  m_cSPS.setUseAMP ( m_useAMP );
    830809
    831 #if !MTK_I0099_VPS_EX2
    832 #if H_3D_QTLPC
    833   m_cSPS.setUseQTL( m_bUseQTL );
    834   m_cSPS.setUsePC ( m_bUsePC  );
    835 #endif
    836 #endif
    837 
    838810  for (i = g_uiMaxCUDepth-g_uiAddCUDepth; i < g_uiMaxCUDepth; i++ )
    839811  {
     
    863835    for( Int is = 0; is < targetDecLayerIdList.size(); is++  )
    864836    {
    865 #if H_MV_HLS10_ADD_LAYERSETS
    866837      if ( m_cVPS->getNecessaryLayerFlag( ols, is ) )
    867838      {     
    868839        m_cSPS.inferSpsMaxDecPicBufferingMinus1( m_cVPS, ols, targetDecLayerIdList[is], true );       
    869840      }
    870 #else
    871       m_cSPS.inferSpsMaxDecPicBufferingMinus1( m_cVPS, ols, targetDecLayerIdList[is], true );       
    872 #endif
    873     }
    874   }
    875 #if !H_MV_HLS10_ADD_LAYERSETS
    876   m_cVPS->inferDbpSizeLayerSetZero( &m_cSPS, true );
    877 #endif
     841    }
     842  }
    878843#endif
    879844  m_cSPS.setPCMBitDepthLuma (g_uiPCMBitDepthLuma);
     
    889854  {
    890855    TComVUI* pcVUI = m_cSPS.getVuiParameters();
    891     pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioIdc() != -1);
     856    pcVUI->setAspectRatioInfoPresentFlag(getAspectRatioInfoPresentFlag());
    892857    pcVUI->setAspectRatioIdc(getAspectRatioIdc());
    893858    pcVUI->setSarWidth(getSarWidth());
     
    13231288Void  TEncTop::xInitPPSforTiles()
    13241289{
    1325   m_cPPS.setUniformSpacingFlag( m_iUniformSpacingIdr );
    1326   m_cPPS.setNumColumnsMinus1( m_iNumColumnsMinus1 );
    1327   m_cPPS.setNumRowsMinus1( m_iNumRowsMinus1 );
    1328   if( m_iUniformSpacingIdr == 0 )
    1329   {
    1330     m_cPPS.setColumnWidth( m_puiColumnWidth );
    1331     m_cPPS.setRowHeight( 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 );
    13321297  }
    13331298  m_cPPS.setLoopFilterAcrossTilesEnabledFlag( m_loopFilterAcrossTilesEnabledFlag );
    13341299
    13351300  // # substreams is "per tile" when tiles are independent.
    1336   if (m_iWaveFrontSynchro
    1337     )
     1301  if (m_iWaveFrontSynchro )
    13381302  {
    13391303    m_cPPS.setNumSubstreams(m_iWaveFrontSubstreams * (m_iNumColumnsMinus1+1));
     
    13611325  }
    13621326
    1363   if( m_iNumColumnsMinus1 && m_iUniformSpacingIdr==0 )
     1327  if( m_iNumColumnsMinus1 && !m_tileUniformSpacingFlag )
    13641328  {
    13651329    for(Int i=0; i<m_iNumColumnsMinus1; i++)
    13661330    {
    1367       uiCummulativeColumnWidth += m_puiColumnWidth[i];
     1331      uiCummulativeColumnWidth += m_tileColumnWidth[i];
    13681332    }
    13691333
     
    13881352  }
    13891353
    1390   if( m_iNumRowsMinus1 && m_iUniformSpacingIdr==0 )
     1354  if( m_iNumRowsMinus1 && !m_tileUniformSpacingFlag )
    13911355  {
    13921356    for(Int i=0; i<m_iNumRowsMinus1; i++)
    1393       uiCummulativeRowHeight += m_puiRowHeight[i];
     1357      uiCummulativeRowHeight += m_tileRowHeight[i];
    13941358
    13951359    if( uiCummulativeRowHeight >= iHeightInCU )
  • trunk/source/Lib/TLibEncoder/TEncTop.h

    r1066 r1084  
    8080  TComPicLists*           m_ivPicLists;                   ///< access to picture lists of other layers
    8181#endif
    82 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     82#if H_3D_IC
    8383  Int *m_aICEnableCandidate;
    8484  Int *m_aICEnableNum;
     
    150150  Void  xInitPPSforTiles  ();
    151151  Void  xInitRPS          (Bool isFieldCoding);           ///< initialize PPS from encoder options
    152 #if H_MV_HLS10_GEN_FIX
    153152#if H_MV
    154153
     
    193192
    194193#endif
    195 #endif
    196194public:
    197195  TEncTop();
     
    209207  TComPicLists* getIvPicLists() { return m_ivPicLists; }
    210208#endif
    211 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
    212   Int *getICEnableCandidate() { return m_aICEnableCandidate; }
    213   Int *getICEnableNum() { return m_aICEnableNum; }
     209#if H_3D_IC
     210  Int*      getICEnableCandidate() { return m_aICEnableCandidate; }
     211  Int*      getICEnableNum() { return m_aICEnableNum; }
    214212#endif
    215213  Void      deletePicBuffer ();
     
    272270  Void                    setIvPicLists         ( TComPicLists* picLists) { m_ivPicLists = picLists; }
    273271#endif
    274 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX
     272#if H_3D_IC
    275273  Void                    setICEnableCandidate         ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; }
    276274  Void                    setICEnableNum         ( Int* ICEnableNum) { m_aICEnableNum = ICEnableNum; }
  • trunk/source/Lib/TLibVideoIO/TVideoIOYuv.cpp

    r872 r1084  
    470470  Bool retval = true;
    471471
     472  if ((width==0)||(height==0))
     473  {
     474    printf ("\nWarning: writing %d x %d luma sample output picture!", width, height);
     475  }
     476
    472477  if (m_bitDepthShiftY != 0 || m_bitDepthShiftC != 0)
    473478  {
     
    563568 
    564569  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  }
    565575 
    566576  if (m_bitDepthShiftY != 0 || m_bitDepthShiftC != 0)
Note: See TracChangeset for help on using the changeset viewer.