Changeset 1124 in 3DVCSoftware


Ignore:
Timestamp:
10 Nov 2014, 12:22:20 (9 years ago)
Author:
tech
Message:

Merged branch 12.2-dev0@1123

Location:
trunk
Files:
1 added
49 edited

Legend:

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

    r1084 r1124  
    5252
    5353#======== VPS / Dependencies ================
    54 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    55 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    56 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    57 
    58 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    59 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    60 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     54DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     55DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     56DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     57
     58DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     59DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     60DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    6161
    6262#========== Camera parameters ==========
     
    173173
    174174#========== multiview coding tools ==========
    175 IvMvPred                            : 1 1              # Inter-view motion prediction
    176 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     175IvMvPredFlag                        : 1 1              # Inter-view motion prediction
     176IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    177177IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
    178178IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    179 ViewSynthesisPred                   : 1                # View synthesis prediction
    180 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    181 IvMvScaling                         : 1                # Interview motion vector scaling
    182 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    183 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    184 DBBP                                : 1                # Depth-based Block Partitioning
     179ViewSynthesisPredFlag               : 1                # View synthesis prediction
     180DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     181IvMvScalingFlag                     : 1                # Interview motion vector scaling
     182Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     183Log2MpiSubPbSizeMinus3              : 3                # Log2 of sub-PU size for MPI (3...6)
     184DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    185185
    186186#========== depth coding tools ==========
    187187VSO                       : 1                                      # use of view synthesis optimization for depth coding
    188 DMM                                : 1
    189 IVP                                : 1                 # use of intra-view prediction mode
    190 SDC                                : 1
    191 DLT                                : 1
    192 QTL                                : 1
    193 LimQtPredFlag                      : 1
    194 InterSDC                           : 1                             # use of inter sdc
    195 MPI                                : 1
    196 SingleDepthMode                    : 1                 # use of single depth mode
     188IntraWedgeFlag                      : 1
     189IntraContourFlag                    : 1                 # use of intra-view prediction mode
     190IntraSdcFlag                        : 1
     191DLT                                 : 1
     192QTL                                 : 1
     193QtPredFlag                          : 1
     194InterSdcFlag                        : 1                             # use of inter sdc
     195MpiFlag                             : 1
     196IntraSingleFlag                     : 1                 # use of single depth mode
    197197#========== view synthesis optimization (VSO) ==========
    198198
  • trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg

    r1084 r1124  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    65 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    67 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
     64DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     65DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     67DirectRefLayers_4             : 0 1         # Indices in VPS of direct reference layers
     68DirectRefLayers_5             : 1 4         # Indices in VPS of direct reference layers
    6969
    7070DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     
    191191
    192192#========== multiview coding tools ==========
    193 IvMvPred                            : 1 1              # Inter-view motion prediction
    194 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     193IvMvPredFlag                        : 1 1              # Inter-view motion prediction
     194IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    195195IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
    196196IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    197 ViewSynthesisPred                   : 1                # View synthesis prediction
    198 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    199 IvMvScaling                         : 1                # Interview motion vector scaling
    200 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    201 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    202 DBBP                                : 1                # Depth-based Block Partitioning
     197ViewSynthesisPredFlag               : 1                # View synthesis prediction
     198DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     199IvMvScalingFlag                     : 1                # Interview motion vector scaling
     200Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     201Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     202DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    203203
    204204#========== depth coding tools ==========
    205205VSO                       : 1                                      # use of view synthesis optimization for depth coding
    206 DMM                                : 1
    207 IVP                                : 1                 # use of intra-view prediction mode
    208 SDC                                : 1
    209 DLT                                : 1
    210 QTL                                : 1
    211 LimQtPredFlag                      : 1
    212 InterSDC                           : 1                             # use of inter sdc
    213 MPI                                : 1
    214 SingleDepthMode                    : 1                 # use of single depth mode
     206IntraWedgeFlag                      : 1
     207IntraContourFlag                    : 1                 # use of intra-view prediction mode
     208IntraSdcFlag                        : 1
     209DLT                                 : 1
     210QTL                                 : 1
     211QtPredFlag                          : 1
     212InterSdcFlag                        : 1                             # use of inter sdc
     213MpiFlag                             : 1
     214IntraSingleFlag                     : 1                 # use of single depth mode
    215215#========== view synthesis optimization (VSO) ==========
    216216VSOConfig                 : [cx0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][cx2 B(cc1) I(s1.25 s1.5 s1.75)] # VSO configuration string
  • trunk/cfg/3D-HEVC/NonCTC/fco/baseCfg_3view+depth.cfg

    r1084 r1124  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
     64DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
    6565DirectRefLayers_2             : 1           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 0           # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 0 1         # Indices in VPS of direct reference layers
    6767DirectRefLayers_4             : 1           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 0           # Indices in VPS of direct reference layers
    69 
    70 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     68DirectRefLayers_5             : 0 1         # Indices in VPS of direct reference layers
     69
     70DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7171DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    72 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     72DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7373DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    74 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     74DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7575
    7676#========== Camera parameters ==========
     
    240240
    241241#========== multiview coding tools ==========
    242 IvMvPred                            : 1                # Inter-view motion prediction
    243 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     242IvMvPredFlag                        : 1                # Inter-view motion prediction
     243IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    244244IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
    245245IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    246 ViewSynthesisPred                   : 1                # View synthesis prediction
    247 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    248 IvMvScaling                         : 1                # Interview motion vector scaling
    249 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    250 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    251 DBBP                                : 1                # Depth-based Block Partitioning
     246ViewSynthesisPredFlag               : 1                # View synthesis prediction
     247DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     248IvMvScalingFlag                     : 1                # Interview motion vector scaling
     249Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred ( MinCbLog2SizeY - 3 ) ... ( CtbLog2SizeY - 3 )
     250Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     251DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    252252
    253253#========== depth coding tools ==========
    254 VSO                                : 1                 # use of view synthesis optimization for depth coding
    255 DMM                                : 1
    256 SDC                                : 1
    257 DLT                                : 1
    258 QTL                                : 0
    259 LimQtPredFlag                      : 0
    260 InterSDC                           : 1                             # use of inter sdc
    261 MPI                                : 1
     254VSO                                 : 1                 # use of view synthesis optimization for depth coding
     255IntraWedgeFlag                      : 1
     256IntraSdcFlag                        : 1
     257DLT                                 : 1
     258QTL                                 : 0
     259QtPredFlag                          : 0
     260InterSdcFlag                        : 1                             # use of inter sdc
     261MpiFlag                             : 1
    262262
    263263#========== view synthesis optimization (VSO) ==========
  • trunk/cfg/3D-HEVC/NonCTC/ibp/gopCfg_IBP_3view+depth.cfg

    r1066 r1124  
    3838
    3939#======== VPS / Dependencies ================
    40 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    41 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    42 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    43 DirectRefLayers_4             : 0 2         # Indices in VPS of direct reference layers
    44 DirectRefLayers_5             : 1 3         # Indices in VPS of direct reference layers
     40DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     41DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     42DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     43DirectRefLayers_4             : 0 1 2 3     # Indices in VPS of direct reference layers
     44DirectRefLayers_5             : 1 3 4       # Indices in VPS of direct reference layers
    4545
    46 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    47 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    48 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    49 DependencyTypes_4             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    50 DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     46DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     47DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     48DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     49DependencyTypes_4             : 2 2 2 2     # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     50DependencyTypes_5             : 2 2 2       # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    5151
    5252
  • trunk/cfg/3D-HEVC/NonCTC/misc/gopCfg_ILP_on_IRAP_3view+depth.cfg

    r1066 r1124  
    3030
    3131#======== VPS / Dependencies ================
    32 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    33 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    34 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    35 DirectRefLayers_4             : 0 2         # Indices in VPS of direct reference layers
    36 DirectRefLayers_5             : 1 3         # Indices in VPS of direct reference layers
     32DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     33DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     34DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     35DirectRefLayers_4             : 0 1 2 3     # Indices in VPS of direct reference layers
     36DirectRefLayers_5             : 1 3 4       # Indices in VPS of direct reference layers
    3737
    3838DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
  • trunk/cfg/3D-HEVC/NonCTC/misc/gopCfg_NoIv_3view+depth.cfg

    r1066 r1124  
    2828
    2929#======== VPS / Dependencies ================
    30 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
     30DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
    3131DirectRefLayers_2             :             # Indices in VPS of direct reference layers
    32 DirectRefLayers_3             :             # Indices in VPS of direct reference layers
     32DirectRefLayers_3             : 2           # Indices in VPS of direct reference layers
    3333DirectRefLayers_4             :             # Indices in VPS of direct reference layers
    34 DirectRefLayers_5             :             # Indices in VPS of direct reference layers
     34DirectRefLayers_5             : 4           # Indices in VPS of direct reference layers
    3535
    36 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     36DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    3737DependencyTypes_2             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    38 DependencyTypes_3             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     38DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    3939DependencyTypes_4             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    40 DependencyTypes_5             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     40DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    4141
    4242
  • trunk/cfg/3D-HEVC/NonCTC/rc/baseCfg_3view+depth_rate_control.cfg

    r1084 r1124  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    65 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    67 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
    69 
    70 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    71 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    72 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    73 DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    74 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     64DirectRefLayers_1             : 0            # Indices in VPS of direct reference layers
     65DirectRefLayers_2             : 0 1          # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 1 2          # Indices in VPS of direct reference layers
     67DirectRefLayers_4             : 0 1          # Indices in VPS of direct reference layers
     68DirectRefLayers_5             : 1 4          # Indices in VPS of direct reference layers
     69
     70DependencyTypes_1             : 2            # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     71DependencyTypes_2             : 2 2          # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     72DependencyTypes_3             : 2 2          # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     73DependencyTypes_4             : 2 2          # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     74DependencyTypes_5             : 2 2          # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7575
    7676#========== Camera parameters ==========
     
    252252
    253253#========== multiview coding tools ==========
    254 IvMvPred                            : 1 1              # Inter-view motion prediction
    255 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     254IvMvPredFlag                        : 1 1              # Inter-view motion prediction
     255IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    256256IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
    257257IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    258 ViewSynthesisPred                   : 1                # View synthesis prediction
    259 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    260 IvMvScaling                         : 1                # Interview motion vector scaling
    261 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    262 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    263 DBBP                                : 1                # Depth-based Block Partitioning
     258ViewSynthesisPredFlag               : 1                # View synthesis prediction
     259DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     260IvMvScalingFlag                     : 1                # Interview motion vector scaling
     261Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     262Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     263DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    264264
    265265#========== depth coding tools ==========
    266266VSO                       : 1                                      # use of view synthesis optimization for depth coding
    267 DMM                                : 1
    268 IVP                                : 1                 # use of intra-view prediction mode
    269 SDC                                : 1
    270 DLT                                : 1
    271 QTL                                : 1
    272 LimQtPredFlag                      : 1
    273 InterSDC                           : 1                             # use of inter sdc
    274 MPI                                : 1
    275 SingleDepthMode                    : 1                 # use of single depth mode
     267IntraWedgeFlag                      : 1
     268IntraContourFlag                    : 1                 # use of intra-view prediction mode
     269IntraSdcFlag                        : 1
     270DLT                                 : 1
     271QTL                                 : 1
     272QtPredFlag                          : 1
     273InterSdcFlag                        : 1                             # use of inter sdc
     274MpiFlag                             : 1
     275IntraSingleFlag                     : 1                 # use of single depth mode
    276276#========== view synthesis optimization (VSO) ==========
    277277VSOConfig                 : [cx0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][cx2 B(cc1) I(s1.25 s1.5 s1.75)] # VSO configuration string
  • trunk/cfg/3D-HEVC/baseCfg_2view+depth.cfg

    r1084 r1124  
    5252
    5353#======== VPS / Dependencies ================
    54 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    55 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    56 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    57 
    58 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    59 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    60 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     54DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     55DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     56DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     57
     58DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     59DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     60DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    6161
    6262#========== Camera parameters ==========
     
    207207
    208208#========== multiview coding tools ==========
    209 IvMvPred                            : 1 1              # Inter-view motion prediction
    210 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     209IvMvPredFlag                        : 1 1              # Inter-view motion prediction
     210IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    211211IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )   (v/d)
    212212IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    213 ViewSynthesisPred                   : 1                # View synthesis prediction
    214 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    215 IvMvScaling                         : 1                # Interview motion vector scaling
    216 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    217 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    218 DBBP                                : 1                # Depth-based Block Partitioning
     213ViewSynthesisPredFlag               : 1                # View synthesis prediction
     214DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     215IvMvScalingFlag                     : 1                # Interview motion vector scaling
     216Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     217Log2MpiSubPbSizeMinus3              : 3                # Log2 of sub-PU size for MPI (3...6)
     218DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    219219
    220220#========== depth coding tools ==========
    221 VSO                                : 1                 # use of view synthesis optimization for depth coding
    222 DMM                                : 1
    223 IVP                                : 1                 # use of intra-view prediction mode
    224 SDC                                : 1
    225 DLT                                : 1
    226 QTL                                : 1
    227 LimQtPredFlag                      : 1
    228 InterSDC                           : 1                             # use of inter sdc
    229 MPI                                : 1
    230 SingleDepthMode                    : 1                 # use of single depth mode
     221VSO                                 : 1                 # use of view synthesis optimization for depth coding
     222IntraWedgeFlag                      : 1
     223IntraContourFlag                    : 1                 # use of intra-view prediction mode
     224IntraSdcFlag                        : 1
     225DLT                                 : 1
     226QTL                                 : 1
     227QtPredFlag                          : 1
     228InterSdcFlag                        : 1                             # use of inter sdc
     229MpiFlag                             : 1
     230IntraSingleFlag                     : 1                 # use of single depth mode
    231231#========== view synthesis optimization (VSO) ==========
    232232
  • trunk/cfg/3D-HEVC/baseCfg_2view.cfg

    r1084 r1124  
    178178
    179179#========== multiview coding tools ==========
    180 IvMvPred                            : 1                # Inter-view motion prediction
    181 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     180IvMvPredFlag                        : 1                # Inter-view motion prediction
     181IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    182182IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on ) (v/d)
    183183IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    184 ViewSynthesisPred                   : 1                # View synthesis prediction
    185 DepthRefinement                     : 0                # Disparity refined by depth DoNBDV
    186 IvMvScaling                         : 1                # Interview motion vector scaling
    187 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    188 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    189 DBBP                                : 0                # Depth-based Block Partitioning
     184ViewSynthesisPredFlag               : 1                # View synthesis prediction
     185DepthRefinementFlag                 : 0                # Disparity refined by depth DoNBDV
     186IvMvScalingFlag                     : 1                # Interview motion vector scaling
     187Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     188Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     189DepthBasedBlkPartFlag               : 0                # Depth-based Block Partitioning
    190190
    191191### DO NOT ADD ANYTHING BELOW THIS LINE ###
  • trunk/cfg/3D-HEVC/baseCfg_3view+depth.cfg

    r1084 r1124  
    6262
    6363#======== VPS / Dependencies ================
    64 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    65 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    66 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    67 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    68 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
    69 
    70 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    71 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    72 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    73 DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    74 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     64DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     65DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     66DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     67DirectRefLayers_4             : 0 1         # Indices in VPS of direct reference layers
     68DirectRefLayers_5             : 1 4         # Indices in VPS of direct reference layers
     69
     70DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     71DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     72DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     73DependencyTypes_4             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     74DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    7575
    7676#========== Camera parameters ==========
     
    240240
    241241#========== multiview coding tools ==========
    242 IvMvPred                            : 1 1              # Inter-view motion prediction
    243 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     242IvMvPredFlag                        : 1 1              # Inter-view motion prediction
     243IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    244244IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )  (v/d)
    245245IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    246 ViewSynthesisPred                   : 1                # View synthesis prediction
    247 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    248 IvMvScaling                         : 1                # Interview motion vector scaling
    249 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    250 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    251 DBBP                                : 1                # Depth-based Block Partitioning
     246ViewSynthesisPredFlag               : 1                # View synthesis prediction
     247DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     248IvMvScalingFlag                     : 1                # Interview motion vector scaling
     249Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     250Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     251DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    252252
    253253#========== depth coding tools ==========
    254 VSO                                : 1                 # use of view synthesis optimization for depth coding
    255 DMM                                : 1
    256 IVP                                : 1                 # use of intra-view prediction mode
    257 SDC                                : 1
    258 DLT                                : 1
    259 QTL                                : 1
    260 LimQtPredFlag                      : 1
    261 InterSDC                           : 1                             # use of inter sdc
    262 MPI                                : 1
    263 SingleDepthMode                    : 1                 # use of single depth mode
     254VSO                                 : 1                 # use of view synthesis optimization for depth coding
     255IntraWedgeFlag                      : 1
     256IntraContourFlag                    : 1                 # use of intra-view prediction mode
     257IntraSdcFlag                        : 1
     258DLT                                 : 1
     259QTL                                 : 1
     260QtPredFlag                          : 1
     261InterSdcFlag                        : 1                             # use of inter sdc
     262MpiFlag                             : 1
     263IntraSingleFlag                     : 1                 # use of single depth mode
    264264#========== view synthesis optimization (VSO) ==========
    265265VSOConfig                 : [cx0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][cx2 B(cc1) I(s1.25 s1.5 s1.75)] # VSO configuration string
  • trunk/cfg/3D-HEVC/baseCfg_3view.cfg

    r1084 r1124  
    198198
    199199#========== multiview coding tools ==========
    200 IvMvPred                            : 1                # Inter-view motion prediction
    201 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     200IvMvPredFlag                        : 1                # Inter-view motion prediction
     201IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    202202IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on )   (v/d)
    203203IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    204 ViewSynthesisPred                   : 1                # View synthesis prediction
    205 DepthRefinement                     : 0                # Disparity refined by depth DoNBDV
    206 IvMvScaling                         : 1                # Interview motion vector scaling
    207 SubPULog2Size                       : 3                # Log2 of sub-PU size for IvMvPred (2...6)
    208 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    209 DBBP                                : 0                # Depth-based Block Partitioning
     204ViewSynthesisPredFlag               : 1                # View synthesis prediction
     205DepthRefinementFlag                 : 0                # Disparity refined by depth DoNBDV
     206IvMvScalingFlag                     : 1                # Interview motion vector scaling
     207Log2SubPbSizeMinus3                 : 0                # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     208Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     209DepthBasedBlkPartFlag               : 0                # Depth-based Block Partitioning
    210210
    211211### DO NOT ADD ANYTHING BELOW THIS LINE ###
  • trunk/cfg/3D-HEVC/fullCfg.cfg

    r1084 r1124  
    125125
    126126#======== VPS / Dependencies ================
    127 DirectRefLayers_1             :             # Indices in VPS of direct reference layers
    128 DirectRefLayers_2             : 0           # Indices in VPS of direct reference layers
    129 DirectRefLayers_3             : 1           # Indices in VPS of direct reference layers
    130 DirectRefLayers_4             : 0           # Indices in VPS of direct reference layers
    131 DirectRefLayers_5             : 1           # Indices in VPS of direct reference layers
    132 
    133 DependencyTypes_1             :             # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    134 DependencyTypes_2             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    135 DependencyTypes_3             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    136 DependencyTypes_4             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    137 DependencyTypes_5             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     127DirectRefLayers_1             : 0           # Indices in VPS of direct reference layers
     128DirectRefLayers_2             : 0 1         # Indices in VPS of direct reference layers
     129DirectRefLayers_3             : 1 2         # Indices in VPS of direct reference layers
     130DirectRefLayers_4             : 0 1         # Indices in VPS of direct reference layers
     131DirectRefLayers_5             : 1 4         # Indices in VPS of direct reference layers
     132
     133DependencyTypes_1             : 2           # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     134DependencyTypes_2             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     135DependencyTypes_3             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     136DependencyTypes_4             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
     137DependencyTypes_5             : 2 2         # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion
    138138
    139139#========== Camera parameters ==========
     
    316316#NumLCUInUnit                       : 1                # Number of LCU in an Unit. Fraction is not allowed
    317317#========== multiview coding tools ==========
    318 IvMvPred                            : 1 1              # Inter-view motion prediction
    319 AdvMultiviewResPred                 : 1                # Advanced inter-view residual prediction (0:off, 1:on)
     318IvMvPredFlag                        : 1 1              # Inter-view motion prediction
     319IvResPredFlag                       : 1                # Advanced inter-view residual prediction (0:off, 1:on)
    320320IlluCompEnable                      : 1                # Enable Illumination compensation ( 0: off, 1: on ) (v/d)
    321321IlluCompLowLatencyEnc               : 0                # Enable low-latency Illumination compensation encoding( 0: off, 1: on )
    322 ViewSynthesisPred                   : 1                # View synthesis prediction
    323 DepthRefinement                     : 1                # Disparity refined by depth DoNBDV
    324 IvMvScaling                         : 1                # Interview motion vector scaling
    325 SubPULog2Size                       : 3                            # Log2 of sub-PU size for IvMvPred (2...6)
    326 SubPUMPILog2Size                    : 3                # Log2 of sub-PU size for MPI (3...6)
    327 DBBP                                : 1                # Depth-based Block Partitioning
     322ViewSynthesisPredFlag               : 1                # View synthesis prediction
     323DepthRefinementFlag                 : 1                # Disparity refined by depth DoNBDV
     324IvMvScalingFlag                     : 1                # Interview motion vector scaling
     325Log2SubPbSizeMinus3                 : 3                            # Log2 of sub-PU size for IvMvPred (2...6)
     326Log2MpiSubPbSizeMinus3              : 0                # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3
     327DepthBasedBlkPartFlag               : 1                # Depth-based Block Partitioning
    328328
    329329#========== depth coding tools ==========
    330330VSO                       : 1                          # use of view synthesis optimization for depth coding
    331 DMM                                : 1
    332 IVP                                : 1                 # use of intra-view prediction mode
    333 SDC                                : 1
    334 DLT                                : 1
    335 QTL                                : 1
    336 LimQtPredFlag                      : 1
    337 InterSDC                           : 1                             # use of inter sdc
    338 MPI                                : 1
    339 SingleDepthMode                    : 1                 # use of single depth mode
     331IntraWedgeFlag                      : 1
     332IntraContourFlag                    : 1                 # use of intra-view prediction mode
     333IntraSdcFlag                        : 1
     334DLT                                 : 1
     335QTL                                 : 1
     336QtPredFlag                          : 1
     337InterSdcFlag                        : 1                             # use of inter sdc
     338MpiFlag                             : 1
     339IntraSingleFlag                     : 1                 # use of single depth mode
    340340#========== view synthesis optimization (VSO) ==========
    341341VSOConfig                 : [cx0 B(cc1) I(s0.25 s0.5 s0.75)][cx1 B(oo0) B(oo2) I(s0.25 s0.5 s0.75 s1.25 s1.5 s1.75)][cx2 B(cc1) I(s1.25 s1.5 s1.75)] # VSO configuration string
  • trunk/source/App/TAppEncoder/TAppEncCfg.cpp

    r1084 r1124  
    377377  ("DepthFlag",             m_depthFlag          , std::vector<Int>(1,0), "Depth Flag")
    378378#if H_3D_DIM
     379#if !HHI_TOOL_PARAMETERS_I2_J0107
    379380  ("DMM",                   m_useDMM,           true,  "Depth intra model modes")
    380381  ("IVP",                   m_useIVP,           true,  "intra-view prediction")
    381382  ("SDC",                   m_useSDC,           true,  "Simplified depth coding")
     383#endif
    382384  ("DLT",                   m_useDLT,           true,  "Depth lookup table")
    383385#endif
    384386#if H_3D
     387#if !HHI_TOOL_PARAMETERS_I2_J0107
    385388  ("SingleDepthMode",    m_useSingleDepthMode, true, "Single depth mode")                         
     389#endif
    386390#endif
    387391#endif
     
    404408  ("ProfileTierLevelIdx_%d",  m_profileTierLevelIdx, std::vector<Int>(0), MAX_NUM_LAYERS, "Indices to profile level tier for ols")
    405409  // Layer dependencies
     410#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     411  ("DirectRefLayers_%d",    m_directRefLayers    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIdx in VPS of direct reference layers")
     412#else
    406413  ("DirectRefLayers_%d",    m_directRefLayers    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIds of direct reference layers")
     414#endif
    407415  ("DependencyTypes_%d",    m_dependencyTypes    , std::vector<Int>(0,0), MAX_NUM_LAYERS, "Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion")
    408416#endif
     
    530538  ("DeblockingFilterMetric",         m_DeblockingFilterMetric,         false )
    531539
     540#if !HHI_TOOL_PARAMETERS_I2_J0107
    532541#if H_3D_ARP
    533542  ("AdvMultiviewResPred",      m_uiUseAdvResPred,           (UInt)1, "Usage of Advanced Residual Prediction" )
     
    537546  ("SubPUMPILog2Size", m_iSubPUMPILog2Size, (Int)3, "Sub-PU MPI size index: 2^n")
    538547#endif
     548#endif
    539549#if H_3D_IC
    540550  ("IlluCompEnable",           m_abUseIC, true, "Enable illumination compensation")
    541551  ("IlluCompLowLatencyEnc",    m_bUseLowLatencyICEnc, false, "Enable low-latency illumination compensation encoding")
    542552#endif
     553#if !HHI_TOOL_PARAMETERS_I2_J0107
    543554#if H_3D_INTER_SDC
    544555  ("InterSDC",                 m_bDepthInterSDCFlag,        true, "Enable depth inter SDC")
     
    549560#if H_3D_IV_MERGE
    550561  ("MPI",                      m_bMPIFlag,        true, "Enable MPI")
     562#endif
    551563#endif
    552564  // Coding tools
     
    789801
    790802#endif //HHI_VSO
     803#if HHI_TOOL_PARAMETERS_I2_J0107
     804  ("QTL",                             m_bUseQTL                 , true          , "Use depth quad tree limitation (encoder only)" )
     805#else
    791806#if H_3D_QTLPC
    792807  ("LimQtPredFlag",                   m_bLimQtPredFlag          , true          , "Use Predictive Coding with QTL" )
     
    804819#if H_3D
    805820  ("IvMvScaling",                     m_ivMvScalingFlag      ,  true            , "inter view motion vector scaling" )   
     821#endif
     822#endif
     823
     824#if HHI_TOOL_PARAMETERS_I2_J0107
     825  ("IvMvPredFlag"          , m_ivMvPredFlag          , std::vector< Bool >(2,true)                    , "Inter-view motion prediction"              )
     826  ("IvMvScalingFlag"       , m_ivMvScalingFlag       , std::vector< Bool >(2,true)                    , "Inter-view motion vector scaling"          )
     827  ("Log2SubPbSizeMinus3"   , m_log2SubPbSizeMinus3   , 0                                              , "Log2 minus 3 of sub Pb size"               )
     828  ("IvResPredFlag"         , m_ivResPredFlag         , true                                           , "Inter-view residual prediction"            )
     829  ("DepthRefinementFlag"   , m_depthRefinementFlag   , true                                           , "Depth to refine disparity"                 )
     830  ("ViewSynthesisPredFlag" , m_viewSynthesisPredFlag , true                                           , "View synthesis prediction"                 )
     831  ("DepthBasedBlkPartFlag" , m_depthBasedBlkPartFlag , true                                           , "Depth base block partitioning"             )
     832  ("MpiFlag"               , m_mpiFlag               , true                                           , "Motion inheritance from texture to depth"  )
     833  ("Log2MpiSubPbSizeMinus3", m_log2MpiSubPbSizeMinus3, 0                                              , "Log2 minus 3 of sub Pb size for MPI"       )
     834  ("IntraContourFlag"      , m_intraContourFlag      , true                                           , "Intra contour mode"                        )
     835  ("IntraWedgeFlag"        , m_intraWedgeFlag        , true                                           , "Intra wedge mode and segmental depth DCs"  )
     836  ("IntraSdcFlag"          , m_intraSdcFlag          , true                                           , "Intra depth DCs"                           )
     837  ("QtPredFlag"            , m_qtPredFlag            , true                                           , "Quad tree prediction from texture to depth")
     838  ("InterSdcFlag"          , m_interSdcFlag          , true                                           , "Inter depth DCs"                           )
     839  ("IntraSingleFlag"       , m_intraSingleFlag       , true                                           , "Intra single mode"                         )
    806840#endif
    807841#endif //H_3D
     
    16461680
    16471681#if H_3D_ARP
     1682#if !HHI_TOOL_PARAMETERS_I2_J0107
    16481683  xConfirmPara( ( 0 != m_uiUseAdvResPred ) &&  ( 1 != m_uiUseAdvResPred ), "UseAdvResPred must be 0 or 1." );
    16491684#endif
     1685#endif
    16501686#if H_3D_SPIVMP
     1687#if HHI_TOOL_PARAMETERS_I2_J0107
     1688  xConfirmPara( m_log2SubPbSizeMinus3 < 0,                                        "Log2SubPbSizeMinus3 must be equal to 0 or greater.");
     1689  xConfirmPara( m_log2SubPbSizeMinus3 > 3,                                        "Log2SubPbSizeMinus3 must be equal to 3 or smaller.");
     1690  xConfirmPara( (1<< ( m_log2SubPbSizeMinus3 + 3) ) > m_uiMaxCUWidth,              "Log2SubPbSizeMinus3 must be  equal to log2(maxCUSize)-3 or smaller.");
     1691 
     1692  xConfirmPara( m_log2MpiSubPbSizeMinus3 < 0,                                        "Log2MpiSubPbSizeMinus3 must be equal to 0 or greater.");
     1693  xConfirmPara( m_log2MpiSubPbSizeMinus3 > 3,                                        "Log2MpiSubPbSizeMinus3 must be equal to 3 or smaller.");
     1694  xConfirmPara( (1<< (m_log2MpiSubPbSizeMinus3 + 3)) > m_uiMaxCUWidth,               "Log2MpiSubPbSizeMinus3 must be equal to log2(maxCUSize)-3 or smaller.");
     1695#else
    16511696  xConfirmPara( m_iSubPULog2Size < 3,                                        "SubPULog2Size must be 3 or greater.");
    16521697  xConfirmPara( m_iSubPULog2Size > 6,                                        "SubPULog2Size must be 6 or smaller.");
     
    16561701  xConfirmPara( m_iSubPUMPILog2Size > 6,                                        "SubPUMPILog2Size must be 6 or smaller.");
    16571702  xConfirmPara( ( 1 << m_iSubPUMPILog2Size ) > m_uiMaxCUWidth,                  "SubPUMPILog2Size must be log2(maxCUSize) or smaller.");
     1703#endif
    16581704#endif
    16591705#if ADAPTIVE_QP_SELECTION
     
    26022648  printf("WVSO:%d ", m_bUseWVSO ); 
    26032649#endif
     2650
     2651#if HHI_TOOL_PARAMETERS_I2_J0107
     2652  printf( "QTL:%d "                  , m_bUseQTL);
     2653  printf( "IlluCompEnable:%d "       , m_abUseIC);
     2654  printf( "IlluCompLowLatencyEnc:%d ",  m_bUseLowLatencyICEnc);
     2655  printf( "DLT:%d ", m_useDLT );
     2656
     2657
     2658  printf( "IvMvPred:%d %d "            , m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1]  ? 1 : 0);
     2659  printf( "IvMvScaling:%d %d "         , m_ivMvScalingFlag[0] ? 1 : 0 , m_ivMvScalingFlag[1]  ? 1 : 0);
     2660
     2661  printf( "Log2SubPbSizeMinus3:%d "    , m_log2SubPbSizeMinus3            );
     2662  printf( "IvResPred:%d "              , m_ivResPredFlag          ? 1 : 0 );
     2663  printf( "DepthRefinement:%d "        , m_depthRefinementFlag    ? 1 : 0 );
     2664  printf( "ViewSynthesisPred:%d "      , m_viewSynthesisPredFlag  ? 1 : 0 );
     2665  printf( "DepthBasedBlkPart:%d "      , m_depthBasedBlkPartFlag  ? 1 : 0 );
     2666  printf( "Mpi:%d "                    , m_mpiFlag                ? 1 : 0 );
     2667  printf( "Log2MpiSubPbSizeMinus3:%d " , m_log2MpiSubPbSizeMinus3         );
     2668  printf( "IntraContour:%d "           , m_intraContourFlag       ? 1 : 0 );
     2669  printf( "IntraWedge:%d "             , m_intraWedgeFlag         ? 1 : 0 );
     2670  printf( "IntraSdc:%d "               , m_intraSdcFlag           ? 1 : 0 );
     2671  printf( "QtPred:%d "                 , m_qtPredFlag             ? 1 : 0 );
     2672  printf( "InterSdc:%d "               , m_interSdcFlag           ? 1 : 0 );
     2673  printf( "IntraSingle:%d "            , m_intraSingleFlag        ? 1 : 0 );
     2674
     2675#else
    26042676#if H_3D_QTLPC
    26052677  printf("LimQtPredFlag:%d ", m_bLimQtPredFlag ? 1 : 0);
    26062678  printf("QTL:%d ", m_bUseQTL);
    26072679#endif
    2608 #if H_3D_IV_MERGE
     2680#if H_3D_IV_MERGE 
    26092681  printf("IvMvPred:%d %d", m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1] ? 1 : 0);
    26102682#if H_3D_SPIVMP
     
    26472719  printf( "MPI:%d ", m_bMPIFlag ? 1 : 0 );
    26482720#endif
     2721#endif
     2722
    26492723  printf("\n\n"); 
    26502724
  • trunk/source/App/TAppEncoder/TAppEncCfg.h

    r1084 r1124  
    132132  Bool m_higherLayerIrapSkipFlag;
    133133
    134 
     134#if !HHI_TOOL_PARAMETERS_I2_J0107
    135135#if H_3D_IV_MERGE
    136136  vector<Bool>           m_ivMvPredFlag;                      ///< Interview motion vector prediction
     137
    137138#if H_3D_SPIVMP
    138139  Int                    m_iSubPULog2Size;                   
     
    147148  UInt                   m_uiARPStepNum;
    148149#endif
     150#endif
     151
    149152#if H_3D_IC
    150153  Bool   m_abUseIC;
    151154  Bool   m_bUseLowLatencyICEnc;
    152155#endif
     156
     157#if !HHI_TOOL_PARAMETERS_I2_J0107
    153158#if H_3D_NBDV_REF
    154159  Bool m_depthRefinementFlag; 
     
    159164#if H_3D
    160165  Bool m_ivMvScalingFlag;
     166#endif
    161167#endif
    162168#endif
     
    486492#endif
    487493#if H_3D_DIM
     494#if !HHI_TOOL_PARAMETERS_I2_J0107
    488495  Bool      m_useDMM;                                        ///< flag for using DMM
    489496  Bool      m_useIVP;
    490497  Bool      m_useSDC;                                        ///< flag for using SDC
     498#endif
    491499  Bool      m_useDLT;                                        ///< flag for using DLT
    492500#endif
     501#if !HHI_TOOL_PARAMETERS_I2_J0107
    493502#if H_3D_SINGLE_DEPTH
    494503  Bool     m_useSingleDepthMode;                          ///< flag for using single depth mode
    495504#endif
     505#endif
    496506#if H_3D_QTLPC
    497507  Bool      m_bUseQTL;                                        ///< flag for using depth QuadTree Limitation
    498508#endif
     509#if !HHI_TOOL_PARAMETERS_I2_J0107
    499510#if H_3D_INTER_SDC
    500511  Bool m_bDepthInterSDCFlag;                                ///< flag for inter SDC of depth map coding
     
    506517  Bool m_bMPIFlag;                                           ///< flag for MPI of depth map coding
    507518#endif
     519#endif
     520
     521#if HHI_TOOL_PARAMETERS_I2_J0107
     522  std::vector< Bool >    m_ivMvPredFlag;
     523  std::vector< Bool >    m_ivMvScalingFlag;
     524  Int                    m_log2SubPbSizeMinus3;
     525  Bool                   m_ivResPredFlag;
     526  Bool                   m_depthRefinementFlag;
     527  Bool                   m_viewSynthesisPredFlag;
     528  Bool                   m_depthBasedBlkPartFlag;
     529  Bool                   m_mpiFlag;
     530  Int                    m_log2MpiSubPbSizeMinus3;
     531  Bool                   m_intraContourFlag;
     532  Bool                   m_intraWedgeFlag;
     533  Bool                   m_intraSdcFlag;
     534  Bool                   m_qtPredFlag;
     535  Bool                   m_interSdcFlag;
     536  Bool                   m_intraSingleFlag;
     537#endif
     538
    508539#endif
    509540  // internal member functions
  • trunk/source/App/TAppEncoder/TAppEncTop.cpp

    r1084 r1124  
    140140  xSetVPSVUI               ( vps );
    141141#if H_3D
     142#if !HHI_TOOL_PARAMETERS_I2_J0107
    142143  xSetVPSExtension2        ( vps );
     144#endif
    143145  m_ivPicLists.setVPS      ( &vps );
    144146  xDeriveDltArray          ( vps, dlt );
     
    173175    vps.printPTL();
    174176  }
     177
     178#if HHI_TOOL_PARAMETERS_I2_J0107
     179#if H_3D
     180  // Set 3d tool parameters
     181
     182  for (Int d = 0; d < 2; d++)
     183  { 
     184    m_sps3dExtension.setIvMvPredFlag          ( d, m_ivMvPredFlag[d]       );
     185    m_sps3dExtension.setIvMvScalingFlag       ( d, m_ivMvScalingFlag[d]    );
     186    if (d == 0 )
     187    {   
     188      m_sps3dExtension.setLog2SubPbSizeMinus3   ( d, m_log2SubPbSizeMinus3   );
     189      m_sps3dExtension.setIvResPredFlag         ( d, m_ivResPredFlag         );
     190      m_sps3dExtension.setDepthRefinementFlag   ( d, m_depthRefinementFlag   );
     191      m_sps3dExtension.setViewSynthesisPredFlag ( d, m_viewSynthesisPredFlag );
     192      m_sps3dExtension.setDepthBasedBlkPartFlag ( d, m_depthBasedBlkPartFlag );
     193    }
     194    else
     195    {   
     196      m_sps3dExtension.setMpiFlag               ( d, m_mpiFlag               );
     197      m_sps3dExtension.setLog2MpiSubPbSizeMinus3( d, m_log2MpiSubPbSizeMinus3);
     198      m_sps3dExtension.setIntraContourFlag      ( d, m_intraContourFlag      );
     199      m_sps3dExtension.setIntraSdcWedgeFlag     ( d, m_intraSdcFlag || m_intraWedgeFlag     );
     200      m_sps3dExtension.setQtPredFlag            ( d, m_qtPredFlag            );
     201      m_sps3dExtension.setInterSdcFlag          ( d, m_interSdcFlag          );
     202      m_sps3dExtension.setIntraSingleFlag       ( d, m_intraSingleFlag       ); 
     203    }
     204  }
     205#endif
     206#endif
    175207
    176208  for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++)
     
    216248    m_cTEncTop.setDWeight                      ( isDepth ? m_iDWeight             : 0     );
    217249#endif // H_3D_VSO
     250#if !HHI_TOOL_PARAMETERS_I2_J0107
    218251#if H_3D_SPIVMP
    219252    m_cTEncTop.setSubPULog2Size                 (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size   );
    220253    m_cTEncTop.setSubPUMPILog2Size              ( !isDepth ? 0 : m_iSubPUMPILog2Size   );
    221254#endif
     255#endif
    222256#if H_3D_IC
    223257    m_cTEncTop.setUseIC                        ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC );
    224258    m_cTEncTop.setUseICLowLatencyEnc           ( m_bUseLowLatencyICEnc );
    225259#endif
    226   //========== Depth intra modes ==========
     260
     261   
     262#if HHI_TOOL_PARAMETERS_I2_J0107
     263    m_cTEncTop.setUseDMM                       ( isDepth ? m_intraWedgeFlag   : false );
     264    m_cTEncTop.setUseSDC                       ( isDepth ? m_intraSdcFlag     : false );
     265    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT   : false );
     266    m_cTEncTop.setUseQTL                       ( isDepth ? m_bUseQTL  : false );
     267#else
     268//========== Depth intra modes ==========
    227269#if H_3D_DIM
    228270    m_cTEncTop.setUseDMM                       ( isDepth ? m_useDMM               : false );
     271#if !HHI_TOOL_PARAMETERS_I2_J0107
    229272#if H_3D_FCO
    230273    m_cTEncTop.setUseIVP                       ( vps.getViewIndex( layerId ) == 0 && isDepth ? m_useIVP               : false );
     
    232275    m_cTEncTop.setUseIVP                       ( isDepth ? m_useIVP               : false );
    233276#endif
     277#endif
    234278    m_cTEncTop.setUseSDC                       ( isDepth ? m_useSDC               : false );
    235279    m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
    236280#endif
     281
     282
    237283#if H_3D_SINGLE_DEPTH
    238284    m_cTEncTop.setUseSingleDepthMode           ( isDepth ? m_useSingleDepthMode   : false );
     
    254300    m_cTEncTop.setUseMPI                       ( isDepth ? m_bMPIFlag    : false );
    255301#endif
     302#endif
     303#endif
     304
     305
     306#if HHI_TOOL_PARAMETERS_I2_J0107
     307  m_cTEncTop.setSps3dExtension                 ( m_sps3dExtension );
    256308#endif
    257309#endif // H_3D
     
    885937#endif
    886938
     939#if !LGE_DDD_REMOVAL_J0042_J0030
    887940#if H_3D_DDD
    888941          m_acTEncTopList[ layer ]->getSliceEncoder()->setDDDPar( m_cCameraData.getCodedScale()[0][ m_acTEncTopList[layer]->getViewIndex() ],
    889942              m_cCameraData.getCodedOffset()[0][ m_acTEncTopList[layer]->getViewIndex() ],
    890943              m_cCameraData.getCamParsCodedPrecision() );
     944#endif
    891945#endif
    892946        Int   iNumEncoded = 0;
     
    13201374  }
    13211375
     1376#if H_MV_FIX_NUM_VIEWS
     1377  vps.initNumViews();
     1378#endif
    13221379  Int maxViewId = xGetMax( m_viewId );
    13231380
     
    13441401      vps.setDirectDependencyType( depLayer, refLayer,    -1 );
    13451402    }
    1346     }
     1403  }
    13471404
    13481405  Int  defaultDirectDependencyType = -1;
     
    13751432  vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag );       
    13761433  vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 );       
     1434
     1435#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1436  vps.setRefLayers();
     1437#endif
    13771438
    13781439  // Max sub layers, + presence flag
     
    13931454  vps.setVpsSubLayersMaxMinus1PresentFlag( subLayersMaxMinus1PresentFlag );
    13941455
    1395 
     1456#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1457  // Max temporal id for inter layer reference pictures
     1458  for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++)
     1459  {
     1460    Int refLayerIdInNuh = vps.getLayerIdInNuh( refLayerIdInVps );
     1461    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
     1462    {
     1463      Int curLayerIdInNuh = vps.getLayerIdInNuh( curLayerIdInVps );     
     1464#if H_3D
     1465      Int maxTid = -1;
     1466      if ( vps.getDirectDependencyFlag( curLayerIdInVps, refLayerIdInVps ) )
     1467      {
     1468        if ( m_depthFlag[ curLayerIdInVps] == m_depthFlag[ refLayerIdInVps ] )
     1469        {
     1470#endif
     1471          for( Int i = 0; i < ( getGOPSize() + 1); i++ )
     1472          {       
     1473            GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1474            GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1475            for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
     1476            {
     1477#if H_3D
     1478              if ( vps.getIdRefListLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[ j ] ) == refLayerIdInNuh )
     1479#else
     1480              if ( vps.getIdDirectRefLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[ j ] ) == refLayerIdInNuh )
     1481#endif
     1482              {
     1483                Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
     1484                Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
     1485                maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
     1486              }
     1487            }
     1488          }             
     1489#if H_3D
     1490        }
     1491        else
     1492        {       
     1493#if HHI_TOOL_PARAMETERS_I2_J0107
     1494          if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) )
     1495#else
     1496          if( m_depthFlag[ curLayerIdInVps ] && ( m_bMPIFlag || m_bLimQtPredFlag || m_useIVP  ) )
     1497#endif
     1498          {         
     1499            Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false );
     1500            if ( nuhLayerIdTex == refLayerIdInNuh )
     1501            {
     1502              maxTid = std::max( maxTid, vps.getSubLayersVpsMaxMinus1( refLayerIdInVps) + 1 );
     1503            }
     1504          }
     1505#if HHI_TOOL_PARAMETERS_I2_J0107
     1506          if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0  && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_depthBasedBlkPartFlag ) )
     1507#else
     1508          if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0  && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_bUseDBBP) )
     1509#endif
     1510          { 
     1511            Int maxPresentTid =-1;
     1512            Bool allPresent = true;
     1513            for (Int i = 0; i < vps.getNumRefListLayers( curLayerIdInNuh); i++ )
     1514            {
     1515              Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer(curLayerIdInNuh, i ) ), true );
     1516              if ( nuhLayerIdDep== refLayerIdInNuh )
     1517              {
     1518                maxPresentTid= std::max( maxTid, vps.getSubLayersVpsMaxMinus1( refLayerIdInVps) + 1 );             
     1519              }
     1520              else
     1521              {
     1522                allPresent = false;
     1523              }
     1524            }
     1525
     1526            if ( allPresent )
     1527            {
     1528              maxTid= std::max( maxTid, maxPresentTid );             
     1529            }
     1530          }       
     1531        }
     1532      }
     1533      vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
     1534#endif
     1535    }   
     1536  }
     1537
     1538  // Max temporal id for inter layer reference pictures presence flag
     1539  Bool maxTidRefPresentFlag = false;   
     1540  for ( Int refLayerIdInVps = 0; refLayerIdInVps < m_numberOfLayers; refLayerIdInVps++)
     1541  {
     1542    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
     1543    {
     1544        maxTidRefPresentFlag = maxTidRefPresentFlag || ( vps.getMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps ) != 7 );   
     1545    }
     1546  }
     1547  vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag );
     1548#else
    13961549  // Max temporal id for inter layer reference pictures + presence flag
    13971550  Bool maxTidRefPresentFlag = false;
     
    14001553    for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++)
    14011554    {
    1402       Int maxTid = -1;
    1403       for( Int i = 0; i < ( getGOPSize() + 1); i++ )
    1404       {       
    1405         GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
    1406         GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
    1407         for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
     1555        Int maxTid = -1;
     1556        for( Int i = 0; i < ( getGOPSize() + 1); i++ )
    14081557        {       
    1409           if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps )
     1558          GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1559          GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
     1560          for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++)
    14101561          {
    1411             Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
    1412             Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
    1413             maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
     1562            if ( m_directRefLayers[ curLayerIdInVps ][ geCur.m_interLayerPredLayerIdc[ j ]] == refLayerIdInVps )
     1563            {
     1564              Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
     1565              Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
     1566              maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );
     1567            }
    14141568          }
    14151569        }
    1416       }
    1417       vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
    1418       maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
     1570        vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
     1571        maxTidRefPresentFlag = maxTidRefPresentFlag || ( maxTid != 6 );   
    14191572    }
    14201573  }
    14211574
    14221575  vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag );
     1576#endif 
     1577
     1578
    14231579  // Max one active ref layer flag
    14241580  Bool maxOneActiveRefLayerFlag = true; 
     
    14301586      maxOneActiveRefLayerFlag =  maxOneActiveRefLayerFlag && (ge.m_numActiveRefLayerPics <= 1);
    14311587    }           
    1432 }
     1588  }
    14331589
    14341590  vps.setMaxOneActiveRefLayerFlag( maxOneActiveRefLayerFlag );
     
    14411597      vps.setPocLsbNotPresentFlag( layerIdInVps,  true ); 
    14421598    }
    1443   }
     1599  } 
    14441600 
    14451601  // All Ref layers active flag
     
    14471603  for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers && allRefLayersActiveFlag; layerIdInVps++)
    14481604  {   
     1605#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1606    Int layerIdInNuh = vps.getLayerIdInNuh( layerIdInVps );
     1607#endif
    14491608    for( Int i = 0; i < ( getGOPSize() + 1) && allRefLayersActiveFlag; i++ )
    14501609    {       
     
    14531612     
    14541613      // check if all reference layers when allRefLayerActiveFlag is equal to 1 are reference layer pictures specified in the gop entry
     1614#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1615#if H_3D
     1616      for (Int k = 0; k < vps.getNumRefListLayers( layerIdInNuh ) && allRefLayersActiveFlag; k++ )
     1617      {
     1618        Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdRefListLayer( layerIdInNuh , k ) );
     1619#else
     1620      for (Int k = 0; k < vps.getNumDirectRefLayers( layerIdInNuh ) && allRefLayersActiveFlag; k++ )
     1621      {
     1622        Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdDirectRefLayer( layerIdInNuh , k ) );
     1623#endif
     1624#else
    14551625      for (Int k = 0; k < m_directRefLayers[ layerIdInVps].size() && allRefLayersActiveFlag; k++ )
    14561626      {
    14571627        Int refLayerIdInVps = vps.getLayerIdInVps( m_directRefLayers[ layerIdInVps ][ k ] );
     1628#endif
     1629#if H_MV_FIX_REF_LAYER_PIC_FLAG
     1630        if ( vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId  && ( tId == 0 || vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId )  )
     1631#else
    14581632        if ( vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId  && vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId )
     1633#endif
    14591634        {
    14601635          Bool gopEntryFoundFlag = false;
     
    14731648      {   
    14741649        Bool referenceLayerFoundFlag = false;
     1650#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1651#if H_3D
     1652        for (Int k = 0; k < vps.getNumRefListLayers( layerIdInNuh ); k++ )
     1653        {
     1654          Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdRefListLayer( layerIdInNuh, k) );
     1655#else
     1656        for (Int k = 0; k < vps.getNumDirectRefLayers( layerIdInNuh ); k++ )
     1657        {
     1658          Int refLayerIdInVps = vps.getLayerIdInVps( vps.getIdDirectRefLayer( layerIdInNuh, k) );
     1659#endif
     1660#else
    14751661        for (Int k = 0; k < m_directRefLayers[ layerIdInVps].size(); k++ )
    14761662        {
    14771663          Int refLayerIdInVps = vps.getLayerIdInVps( m_directRefLayers[ layerIdInVps ][ k ] );
    1478 
     1664#endif
     1665#if H_MV_FIX_REF_LAYER_PIC_FLAG
     1666          if ( vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId  && ( tId == 0 || vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId )  )
     1667#else
    14791668          if ( vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId  && vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId )
     1669#endif
    14801670          {         
    14811671            referenceLayerFoundFlag = referenceLayerFoundFlag || ( ge.m_interLayerPredLayerIdc[l] == k );
     
    14891679
    14901680  vps.setAllRefLayersActiveFlag( allRefLayersActiveFlag );
    1491 
     1681#if !HHI_DEPENDENCY_SIGNALLING_I1_J0107
    14921682  vps.setRefLayers();
     1683#endif
    14931684};
     1685
    14941686
    14951687GOPEntry* TAppEncTop::xGetGopEntry( Int layerIdInVps, Int poc )
     
    20182210
    20192211#if H_3D
     2212#if HHI_TOOL_PARAMETERS_I2_J0107
     2213#else
    20202214Void TAppEncTop::xSetVPSExtension2( TComVPS& vps )
    20212215{
     
    20912285    vps.setInterSDCFlag( layer, !isLayerZero && isDepth && m_bDepthInterSDCFlag );
    20922286#endif
     2287#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     2288    vps.setSingleDepthModeFlag( layer, !isLayerZero && isDepth && m_useSingleDepthMode );         
     2289#endif
    20932290#if H_3D_IV_MERGE
    20942291#if H_3D_FCO
     
    21002297  } 
    21012298}
     2299#endif
    21022300
    21032301Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt )
  • trunk/source/App/TAppEncoder/TAppEncTop.h

    r1084 r1124  
    9292#if H_3D
    9393  TComDLT                    m_dlt;                         ///< dlt
     94#if HHI_TOOL_PARAMETERS_I2_J0107
     95  TComSps3dExtension         m_sps3dExtension;              ///< Currently all layers share the same sps 3D Extension 
     96#endif
    9497#endif
    9598
     
    146149#endif
    147150#if H_3D
     151#if !HHI_TOOL_PARAMETERS_I2_J0107
    148152  Void xSetVPSExtension2( TComVPS& vps );
     153#endif
    149154  Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt );
    150155#endif
  • trunk/source/Lib/TAppCommon/TAppComCamPara.cpp

    r655 r1124  
    12031203  m_uiCamParsCodedPrecision = uiCodedCamParsPrecision;
    12041204  m_iLog2Precision          = iLog2Precision;
     1205#if !HHI_TOOL_PARAMETERS_I2_J0107
    12051206#if HHI_INTERVIEW_SKIP
    12061207  m_iCurrentFrameId         = 0 ;
     1208#endif
    12071209#endif
    12081210
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r1084 r1124  
    154154#endif
    155155
     156#if !LGE_DDD_REMOVAL_J0042_J0030
    156157#if H_3D_DDD
    157158  m_pucDisparityDerivedDepth = NULL;
    158159  m_pbUseDDD = NULL;
     160#endif
    159161#endif
    160162}
     
    298300  // create pattern memory
    299301  m_pcPattern            = (TComPattern*)xMalloc(TComPattern, 1);
    300  
     302
     303#if !LGE_DDD_REMOVAL_J0042_J0030
    301304#if H_3D_DDD
    302305  m_pucDisparityDerivedDepth         = (UChar*  )xMalloc( UChar,  uiNumPartition);
    303306  m_pbUseDDD                         = (Bool*  ) xMalloc( Bool,   uiNumPartition);
    304307#endif
     308#endif
    305309
    306310  // create motion vector fields
     
    386390#endif
    387391
     392#if !LGE_DDD_REMOVAL_J0042_J0030
    388393#if H_3D_DDD
    389394    if ( m_pucDisparityDerivedDepth ) { xFree(m_pucDisparityDerivedDepth);          m_pucDisparityDerivedDepth        = NULL; }
    390395    if ( m_pbUseDDD                 ) { xFree(m_pbUseDDD);                          m_pbUseDDD                        = NULL; }
     396#endif
    391397#endif
    392398
     
    518524#endif
    519525
     526#if !LGE_DDD_REMOVAL_J0042_J0030
    520527#if H_3D_DDD
    521528    m_pucDisparityDerivedDepth[ui] = pcFrom->m_pucDisparityDerivedDepth[ui];
    522529    m_pbUseDDD[ui] = pcFrom->m_pbUseDDD[ui];
    523530#endif
    524 
     531#endif
    525532    m_puhWidth  [ui] = pcFrom->getWidth(ui);
    526533    m_puhHeight [ui] = pcFrom->getHeight(ui);
     
    604611#endif
    605612
     613#if !LGE_DDD_REMOVAL_J0042_J0030
    606614#if H_3D_DDD
    607615    memset( m_pucDisparityDerivedDepth        + firstElement, 0,           numElements * sizeof( *m_pucDisparityDerivedDepth ) );
    608616    memset( m_pbUseDDD                        + firstElement, 0,           numElements * sizeof( *m_pbUseDDD ) );
     617#endif
    609618#endif
    610619
     
    784793#endif
    785794
     795#if !LGE_DDD_REMOVAL_J0042_J0030
    786796#if H_3D_DDD
    787797      m_pucDisparityDerivedDepth[ui] = 0;
    788798      m_pbUseDDD[ui] = 0;
     799#endif
    789800#endif
    790801
     
    893904#endif
    894905
     906#if !LGE_DDD_REMOVAL_J0042_J0030
    895907#if H_3D_DDD
    896908  memset( m_pucDisparityDerivedDepth,         0, iSizeInUchar );
    897909  memset( m_pbUseDDD,                         0, iSizeInBool );
     910#endif
    898911#endif
    899912
     
    9901003#endif
    9911004
     1005#if !LGE_DDD_REMOVAL_J0042_J0030
    9921006#if H_3D_DDD
    9931007      m_pucDisparityDerivedDepth[ui] = pcCU->m_pucDisparityDerivedDepth[uiPartOffset+ui];
    9941008      m_pbUseDDD[ui]                 = pcCU->m_pbUseDDD[uiPartOffset+ui];
     1009#endif
    9951010#endif
    9961011
     
    11391154#endif
    11401155
     1156#if !LGE_DDD_REMOVAL_J0042_J0030
    11411157#if H_3D_DDD
    11421158  m_pucDisparityDerivedDepth          = pcCU->getDDDepth()        + uiPart;
    11431159  m_pbUseDDD                          = pcCU->getUseDDD()         + uiPart;
     1160#endif
    11441161#endif
    11451162
     
    12921309#endif
    12931310
     1311#if !LGE_DDD_REMOVAL_J0042_J0030
    12941312#if H_3D_DDD
    12951313  m_pucDisparityDerivedDepth         = pcCU->getDDDepth()              + uiAbsPartIdx;
    12961314  m_pbUseDDD                         = pcCU->getUseDDD()              + uiAbsPartIdx;
     1315#endif
    12971316#endif
    12981317   
     
    13601379  memcpy( m_puhCbf[1] + uiOffset, pcCU->getCbf(TEXT_CHROMA_U), iSizeInUchar );
    13611380  memcpy( m_puhCbf[2] + uiOffset, pcCU->getCbf(TEXT_CHROMA_V), iSizeInUchar );
    1362  
     1381
     1382#if !LGE_DDD_REMOVAL_J0042_J0030
    13631383#if H_3D_DDD
    13641384  memcpy( m_pucDisparityDerivedDepth          + uiOffset, pcCU->getDDDepth(),         iSizeInUchar );
    13651385  memcpy( m_pbUseDDD                          + uiOffset, pcCU->getUseDDD(),          iSizeInBool );
     1386#endif
    13661387#endif
    13671388
     
    14641485#endif
    14651486
     1487#if !LGE_DDD_REMOVAL_J0042_J0030
    14661488#if H_3D_DDD
    14671489  memcpy( rpcCU->getDDDepth()          + m_uiAbsIdxInLCU, m_pucDisparityDerivedDepth,         iSizeInUchar  );
    14681490  memcpy( rpcCU->getUseDDD()           + m_uiAbsIdxInLCU, m_pbUseDDD,                         iSizeInBool  );
     1491#endif
    14691492#endif
    14701493
     
    16001623  memcpy( rpcCU->getCbf(TEXT_CHROMA_U) + uiPartOffset, m_puhCbf[1], iSizeInUchar );
    16011624  memcpy( rpcCU->getCbf(TEXT_CHROMA_V) + uiPartOffset, m_puhCbf[2], iSizeInUchar );
    1602  
     1625
     1626#if !LGE_DDD_REMOVAL_J0042_J0030
    16031627#if H_3D_DDD
    16041628  memcpy( rpcCU->getDDDepth()          + uiPartOffset, m_pucDisparityDerivedDepth,         iSizeInUchar );
    16051629  memcpy( rpcCU->getUseDDD()           + uiPartOffset, m_pbUseDDD,                         iSizeInBool );
     1630#endif
    16061631#endif
    16071632
     
    16711696}
    16721697
     1698#if !LGE_DDD_REMOVAL_J0042_J0030
    16731699#if H_3D_DDD
    16741700Void TComDataCU::setDDDepthSubParts ( UChar ucDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth )
     
    16871713}
    16881714
     1715#endif
    16891716#endif
    16901717
     
    23982425    Bool depthRefineFlag = false;
    23992426#if H_3D_NBDV_REF
     2427#if HHI_TOOL_PARAMETERS_I2_J0107
     2428    depthRefineFlag = m_pcSlice->getDepthRefinementFlag(  );
     2429#else
    24002430    depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );
     2431#endif
    24012432#endif // H_3D_NBDV_REF
    24022433   
     
    33093340inline Bool TComDataCU::xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount)
    33103341{
     3342#if HHI_TOOL_PARAMETERS_I2_J0107
     3343  if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getViewSynthesisPredFlag( ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1)
     3344#else
    33113345  if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1)
     3346#endif
    33123347  {
    33133348    return false;
     
    38643899)
    38653900{
     3901#if !SEC_A1_BASED_VSP_J0039
    38663902  UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx;
     3903#endif
    38673904#if H_3D_IV_MERGE
    38683905  ////////////////////////////
     
    38773914  UChar tmpDir;
    38783915
     3916#if !LGE_DDD_REMOVAL_J0042_J0030
    38793917#if H_3D_DDD
    38803918  m_iUseDDDCandIdx = -1;
     3919#endif
    38813920#endif
    38823921
     
    39193958  deriveLeftBottomIdxGeneral  ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB );
    39203959#if H_3D
     3960#if HHI_TOOL_PARAMETERS_I2_J0107
     3961  Bool bMPIFlag   = getSlice()->getMpiFlag();
     3962#else
    39213963  Bool bMPIFlag   = getSlice()->getVPS()->getMPIFlag( getSlice()->getLayerIdInVps() );
     3964#endif
    39223965  Bool bIsDepth = getSlice()->getIsDepth();
    39233966#endif
     
    39794022
    39804023  // above
     4024#if !SEC_A1_BASED_VSP_J0039
    39814025  UInt uiAbovePartIdx = 0;
    39824026  TComDataCU* pcCUAbove = 0;
    39834027  pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT );
     4028#endif
    39844029
    39854030  if (getAvailableFlagB1())
     
    39884033#if H_3D_VSP
    39894034    ,
     4035#if SEC_A1_BASED_VSP_J0039
     4036      false
     4037#else
    39904038      ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) != 0)
    39914039#if H_3D_IC
     
    40004048      )
    40014049#endif
     4050#endif
    40024051      , false
    40034052      );
     
    40064055
    40074056  // above right
     4057#if !SEC_A1_BASED_VSP_J0039
    40084058  UInt uiAboveRightPartIdx = 0;
    40094059  TComDataCU* pcCUAboveRight = 0;
    40104060  pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT );
     4061#endif
    40114062
    40124063  if (getAvailableFlagB0())
     
    40154066#if H_3D_VSP
    40164067    ,
     4068#if SEC_A1_BASED_VSP_J0039
     4069      false
     4070#else
    40174071      ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) != 0)
    40184072#if H_3D_IC
     
    40274081      )
    40284082#endif
     4083#endif
    40294084      , false
    40304085      );
     
    40334088
    40344089  // left bottom
     4090#if !SEC_A1_BASED_VSP_J0039
    40354091  UInt uiLeftBottomPartIdx = 0;
    40364092  TComDataCU* pcCULeftBottom = getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB );
     4093#endif
    40374094
    40384095  if (getAvailableFlagA0())
     
    40414098#if H_3D_VSP
    40424099    ,
     4100#if SEC_A1_BASED_VSP_J0039
     4101      false
     4102#else
    40434103      (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) != 0
    40444104#if H_3D_IC
     
    40534113      )
    40544114#endif
     4115#endif
    40554116      , false
    40564117      );
     
    40594120
    40604121  // above left
     4122#if !SEC_A1_BASED_VSP_J0039
    40614123  UInt uiAboveLeftPartIdx = 0;
    40624124  TComDataCU* pcCUAboveLeft = 0;
    40634125  pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr );
     4126#endif
    40644127
    40654128  if (getAvailableFlagB2())
     
    40684131#if H_3D_VSP
    40694132    ,
     4133#if SEC_A1_BASED_VSP_J0039
     4134      false
     4135#else
    40704136      ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) != 0)
    40714137#if H_3D_IC
     
    40794145#endif
    40804146      )
     4147#endif
    40814148#endif
    40824149      , false
     
    42764343    }
    42774344  }
     4345#if !LGE_DDD_REMOVAL_J0042_J0030
    42784346#if H_3D_DDD
    42794347  if( m_pcSlice->getIsDepth() && m_pcSlice->getViewIndex() != 0  && bMPIFlag )
     
    43604428  }
    43614429#endif
     4430#endif
    43624431  /////////////////////////////////////////////////////////////////
    43634432  //////// DERIVE IvMC, IvMCShift,IvDCShift, IvDC  Candidates /////
     
    43724441  Int    ivCandDir   [4] = {0, 0, 0, 0};
    43734442
     4443#if HHI_TOOL_PARAMETERS_I2_J0107
     4444  Bool ivMvPredFlag   = getSlice()->getIvMvPredFlag();
     4445#else
    43744446  Bool ivMvPredFlag   = getSlice()->getVPS()->getIvMvPredFlag( getSlice()->getLayerIdInVps() );
     4447#endif
    43754448
    43764449  ivMvPredFlag &= (nPSW + nPSH > 12);
     
    44554528
    44564529#if H_3D
     4530#if SEC_A1_BASED_VSP_J0039
     4531  iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable;
     4532#else
    44574533  iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable + m_mergCands[MRG_B0].m_bAvailable;
     4534#endif
    44584535#else
    44594536  //left
     
    45544631#endif
    45554632
     4633#if !LGE_DDD_REMOVAL_J0042_J0030
    45564634#if H_3D_DDD
    45574635  // early termination
     
    45614639  }
    45624640#endif
     4641#endif
     4642
     4643#if SEC_A1_BASED_VSP_J0039
     4644#if H_3D_VSP
     4645  /////////////////////////////////////////////////
     4646  //////// VIEW SYNTHESIS PREDICTION (VSP) ////////
     4647  /////////////////////////////////////////////////
     4648  if (iCount<getSlice()->getMaxNumMergeCand())
     4649  {
     4650    if (
     4651      (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) &&
     4652#if H_3D_IC
     4653      !bICFlag &&
     4654#endif
     4655#if H_3D_ARP
     4656      !bARPFlag &&
     4657#endif
     4658#if H_3D
     4659      (nPSW + nPSH > 12) &&
     4660#endif
     4661#if H_3D_DBBP
     4662      !bDBBPFlag &&
     4663#endif
     4664      xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) )
     4665    {
     4666      return;
     4667    }
     4668
     4669    // early termination
     4670    if (iCount == getSlice()->getMaxNumMergeCand())
     4671    {
     4672      return;
     4673    }
     4674#endif
     4675#if H_3D_VSP
     4676  }
     4677#endif
     4678
     4679#if H_3D
     4680  iCount += m_mergCands[MRG_B0].m_bAvailable;
     4681#endif
     4682#endif
     4683
    45634684
    45644685#if H_3D_IV_MERGE
     
    46154736#endif // H_3D_IV_MERGE
    46164737
     4738#if !SEC_A1_BASED_VSP_J0039
    46174739#if H_3D_VSP
    46184740  /////////////////////////////////////////////////
     
    46484770#if H_3D
    46494771  }
     4772#endif
    46504773#endif
    46514774
     
    58936016    iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
    58946017
     6018#if HHI_TOOL_PARAMETERS_I2_J0107
     6019    if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) )
     6020#else
    58956021    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) )
     6022#endif
    58966023    {
    58976024      rcMv = cColMv.scaleMv( iScale );
     
    60766203
    60776204  TComMv cMv;
     6205#if LGE_DEFAULT_DV_J0046
     6206  if ( getSlice()->getDefaultRefViewIdxAvailableFlag() )
     6207  {
     6208      Int iViewIdx = getSlice()->getDefaultRefViewIdx();
     6209      pDisp->m_aVIdxCan = iViewIdx;
     6210#if HHI_TOOL_PARAMETERS_I2_J0107
     6211      Int iDisp     = getSlice()->getDepthToDisparityB( iViewIdx )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
     6212#else
     6213      Int iDisp     = getSlice()->getDepthToDisparityB( iViewIdx )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];
     6214#endif
     6215
     6216      cMv.setHor(iDisp);
     6217      cMv.setVer(0);
     6218      pDisp->m_acNBDV = cMv;
     6219      pDisp->m_aVIdxCan = iViewIdx;
     6220
     6221      return true;
     6222  }
     6223  return false;
     6224#else
    60786225#if MTK_I0093
    60796226  Int iDisp     = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ];
     
    60876234
    60886235  return true;
     6236#endif
    60896237}
    60906238#endif
     
    61186266    }
    61196267    break;
     6268#if !SINGLE_DEPTH_SIMP_J0115
    61206269  case 2: // Above
    61216270    if(yP != 0)
     
    61396288    }
    61406289    break;
     6290#endif
    61416291  default:
    61426292      break;
     
    61776327  }
    61786328#if H_3D_NBDV_REF
     6329#if HHI_TOOL_PARAMETERS_I2_J0107
     6330  if( !m_pcSlice->getDepthRefinementFlag( ) )
     6331#else
    61796332  if( !m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ) )
     6333#endif
    61806334  {
    61816335    bDepthRefine = false;
     
    63386492  pDInfo->m_acNBDV = defaultDV;
    63396493
     6494#if LGE_DEFAULT_DV_J0046
     6495  if (getSlice()->getDefaultRefViewIdxAvailableFlag())
     6496  {
     6497      pDInfo->m_aVIdxCan = getSlice()->getDefaultRefViewIdx();
     6498
     6499#if H_3D_NBDV_REF
     6500          TComPic* picDepth = NULL;
     6501#if H_3D_FCO_VSP_DONBDV_E0163
     6502          picDepth  = getSlice()->getIvPic(true, getSlice()->getViewIndex() );
     6503      if ( picDepth->getPicYuvRec() != NULL ) 
     6504      {
     6505          defaultDV.setZero();
     6506      }
     6507      else // Go back with virtual depth
     6508      {
     6509          picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx());
     6510      }
     6511
     6512      assert(picDepth != NULL);
     6513#else
     6514          picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx());
     6515#endif
     6516      if (picDepth && bDepthRefine)
     6517      {
     6518          estimateDVFromDM(getSlice()->getDefaultRefViewIdx(), uiPartIdx, picDepth, uiPartAddr, &defaultDV ); // from base view
     6519      }
     6520      pDInfo->m_acDoNBDV = defaultDV;
     6521#endif
     6522#if LGE_SIMP_DISP_AVAIL_J0041
     6523      return true;
     6524#endif
     6525  }
     6526#else
    63406527  Int valid = 0;
    63416528  Int viewIndex = 0;
     
    63896576    pDInfo->m_acDoNBDV = defaultDV;
    63906577#endif
    6391   }
     6578#if LGE_SIMP_DISP_AVAIL_J0041
     6579    return true;
     6580#endif
     6581  }
     6582#endif
    63926583  return false;
    63936584}
     
    66436834  Bool depthRefineFlag = false;
    66446835#if H_3D_NBDV_REF
     6836#if HHI_TOOL_PARAMETERS_I2_J0107
     6837  depthRefineFlag = m_pcSlice->getDepthRefinementFlag( );
     6838#else
    66456839  depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );
     6840#endif
    66466841#endif // H_3D_NBDV_REF
    66476842
     
    67016896Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight)
    67026897{
     6898#if HHI_TOOL_PARAMETERS_I2_J0107
     6899  Int iSubPUSize = ( getSlice()->getIsDepth() ? getSlice()->getMpiSubPbSize() : getSlice()->getSubPbSize() );
     6900#else
    67036901  Int iSubPUSize = 1<<getSlice()->getVPS()->getSubPULog2Size(getSlice()->getLayerId());
    67046902  if( getSlice()->getIsDepth() )
     
    67066904    iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId());
    67076905  }
     6906#endif
    67086907
    67096908  iNumSPInOneLine = iPUWidth/iSubPUSize;
     6909#if !HS_SP_SIMP_J0066
    67106910  iNumSPInOneLine = iNumSPInOneLine < 1 ? 1: iNumSPInOneLine;
     6911#endif
    67116912  Int iNumSPInOneColumn = iPUHeight/iSubPUSize;
     6913#if !HS_SP_SIMP_J0066
    67126914  iNumSPInOneColumn = iNumSPInOneColumn < 1 ? 1: iNumSPInOneColumn;
     6915#else
     6916  iNumSPInOneLine = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneLine;
     6917  iNumSPInOneColumn = (iPUHeight % iSubPUSize != 0  || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneColumn;
     6918#endif
    67136919  iNumSP = iNumSPInOneLine * iNumSPInOneColumn;
    67146920
     
    67846990  Bool depthRefineFlag = false;
    67856991#if H_3D_NBDV_REF
     6992#if HHI_TOOL_PARAMETERS_I2_J0107
     6993  depthRefineFlag = m_pcSlice->getDepthRefinementFlag( );
     6994#else
    67866995  depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() );
     6996#endif
    67876997#endif // H_3D_NBDV_REF
    67886998
  • trunk/source/Lib/TLibCommon/TComDataCU.h

    r1084 r1124  
    227227  DisInfo       m_cDefaultDisInfo;    ///< Default disparity information for initializing
    228228#endif
    229 
     229#if !LGE_DDD_REMOVAL_J0042_J0030
    230230#if H_3D_DDD
    231231  UChar*        m_pucDisparityDerivedDepth;
     
    234234  UChar         m_ucDDTmpDepth;
    235235#endif
    236 
     236#endif
    237237#if H_3D_IV_MERGE
    238238  TComMotionCand  m_mergCands[MRG_IVSHIFT+1];
     
    743743  UInt          getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra);
    744744
     745#if !LGE_DDD_REMOVAL_J0042_J0030
    745746#if H_3D_DDD
    746747  UChar*       getDDDepth        ()                        { return m_pucDisparityDerivedDepth;        }
     
    759760  Int          getUseDDDCandIdx(){ return m_iUseDDDCandIdx;}
    760761
     762#endif
    761763#endif
    762764
  • trunk/source/Lib/TLibCommon/TComPrediction.cpp

    r1084 r1124  
    11581158  pcCU->clipMv(cMv);
    11591159
     1160#if !LGE_DDD_REMOVAL_J0042_J0030
    11601161#if H_3D_DDD
    11611162  if( pcCU->getUseDDD( uiPartAddr ) )
     
    11931194      //return;
    11941195  } else
     1196#endif
    11951197#endif
    11961198#if H_3D_ARP
     
    19491951    Int a, b, i, j;
    19501952    const Int iShift = IC_CONST_SHIFT;
     1953
    19511954    xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_U ); // Cb
    19521955    for ( i = 0; i < cxHeight; i++ )
     
    21872190      x += pRef[j];
    21882191      y += pRec[j];
    2189       xx += (pRef[j] * pRef[j])>>precShift;
    2190       xy += (pRef[j] * pRec[j])>>precShift;
     2192#if LGE_CHROMA_IC_J0050_J0034
     2193      if ( eType == TEXT_LUMA )
     2194      {
     2195#endif
     2196        xx += (pRef[j] * pRef[j])>>precShift;
     2197        xy += (pRef[j] * pRec[j])>>precShift;
     2198#if LGE_CHROMA_IC_J0050_J0034
     2199      }
     2200#endif
    21912201    }
    21922202    iCountShift += g_aucConvertToBit[ uiWidth ] + 1;
     
    22172227      x += pRef[0];
    22182228      y += pRec[0];
    2219 
    2220       xx += (pRef[0] * pRef[0])>>precShift;
    2221       xy += (pRef[0] * pRec[0])>>precShift;
    2222 
     2229#if LGE_CHROMA_IC_J0050_J0034
     2230      if ( eType == TEXT_LUMA )
     2231      {
     2232#endif
     2233        xx += (pRef[0] * pRef[0])>>precShift;
     2234        xy += (pRef[0] * pRec[0])>>precShift;
     2235#if LGE_CHROMA_IC_J0050_J0034
     2236      }
     2237#endif     
    22232238      pRef += iRefStride*2;
    22242239      pRec += iRecStride*2;
     
    22342249  }
    22352250
     2251#if LGE_CHROMA_IC_J0050_J0034
     2252  if (  eType != TEXT_LUMA )
     2253  {
     2254    a = 32;
     2255    b = (  y - x + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift;
     2256  }
     2257  else
     2258  {
     2259#endif
    22362260  xy += xx >> IC_REG_COST_SHIFT;
    22372261  xx += xx >> IC_REG_COST_SHIFT;
     
    22752299    }
    22762300  }   
     2301#if LGE_CHROMA_IC_J0050_J0034
     2302  }
     2303#endif
    22772304}
    22782305#endif
  • trunk/source/Lib/TLibCommon/TComRom.cpp

    r1084 r1124  
    362362const UChar g_dmm1TabIdxBits[6] =
    363363{ //2x2   4x4   8x8 16x16 32x32 64x64
     364#if MTK_DMM_SIM_J0035
     365     0,    7,   10,   9,    9,   13 };
     366#else
    364367     0,    7,   10,   11,   11,   13 };
     368#endif
    365369
    366370const UChar g_dmm3IntraTabIdxBits[6] =
     
    763767    }
    764768
     769#if MTK_DMM_SIM_J0035
     770    for( Int iK = 0; iK < uiBlockSize; iK += (uiWidth>=16 ?2:1))
     771    {
     772      for( Int iL = 0; iL < uiBlockSize; iL += ((uiWidth>=16 && uiOri<4)?2:1) )
     773      {
     774        cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) );
     775        addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList );
     776      }
     777    }
     778#else
    765779    for( Int iK = 0; iK < uiBlockSize; iK++ )
    766780    {
     
    771785      }
    772786    }
     787#endif
    773788  }
    774789
  • trunk/source/Lib/TLibCommon/TComSlice.cpp

    r1084 r1124  
    179179  }
    180180#endif
     181#if LGE_DEFAULT_DV_J0046
     182  m_iDefaultRefViewIdx = -1;
     183  m_bDefaultRefViewIdxAvailableFlag = false;
     184#endif
    181185}
    182186
     
    18741878  m_vpsBaseLayerInternalFlag = true;
    18751879  m_vpsBaseLayerAvailableFlag = true;
     1880
     1881#if  H_MV_FIX_NUM_VIEWS
     1882  m_numViews = 0;
     1883#endif
     1884
    18761885#endif
    18771886
     
    19091918  m_repFormatIdxPresentFlag = false;
    19101919  m_maxOneActiveRefLayerFlag = false;
     1920#if H_MV_HLS_FIX
     1921  m_vpsPocLsbAlignedFlag  = false;
     1922#endif
    19111923  m_directDepTypeLenMinus2   = 0;         
    19121924 
     
    19151927  m_vpsNonVuiExtensionLength = 0;
    19161928  m_splittingFlag    = false;
     1929
    19171930 
    19181931  for( Int i = 0; i < MAX_NUM_SCALABILITY_TYPES; i++ )
     
    19431956    m_layerIdInNuh      [i] = ( i == 0 ) ? 0 : -1;
    19441957    m_numDirectRefLayers[i] = 0;
     1958#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1959#if H_3D
     1960    m_numRefListLayers[i] = 0;
     1961#endif
     1962#endif
    19451963    m_vpsRepFormatIdx    [i] = 0;
    19461964    m_pocLsbNotPresentFlag[i] = 0;
     
    19501968#if H_3D
    19511969    m_viewIndex         [i] = -1;
     1970#if !HHI_TOOL_PARAMETERS_I2_J0107
    19521971    m_vpsDepthModesFlag [i] = false;
    19531972    m_ivMvScalingFlag[i] = true;
    19541973    m_bIVPFlag [i]      = false;
     1974#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1975    m_singleDepthModeFlag[ i ] = false;
     1976#endif
     1977#endif
    19551978#endif
    19561979
     
    19611984      m_dependencyFlag  [i][j]    = false;
    19621985      m_idDirectRefLayer[i][j]    = -1;
     1986#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1987#if H_3D
     1988      m_idRefListLayer[i][j]    = -1;
     1989#endif
     1990#endif
    19631991      m_idPredictedLayer[i][j]    = -1;
    19641992      m_idRefLayer      [i][j]    = -1;
     
    19711999    }
    19722000#if H_3D_ARP
     2001#if !HHI_TOOL_PARAMETERS_I2_J0107
    19732002    m_uiUseAdvResPred[i]  = 0;
    19742003    m_uiARPStepNum[i]     = 1;
    19752004#endif
     2005#endif
    19762006  }
    19772007  m_vpsVUI = new TComVPSVUI;
    19782008  m_dpbSize = new TComDpbSize;
    19792009
     2010#if !HHI_TOOL_PARAMETERS_I2_J0107
    19802011#if H_3D
    19812012  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
     
    20102041  } 
    20112042#endif
     2043#endif
     2044
    20122045#endif
    20132046}
     
    20992132    Int iNuhLId = getLayerIdInNuh( i );
    21002133    Int d = 0;
     2134#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2135#if H_3D
     2136    Int l = 0;
     2137#endif
     2138#endif
    21012139    Int r = 0;
    21022140    Int p = 0;
     2141
    21032142    for( Int j = 0; j  <=  getMaxLayersMinus1(); j++ )
    21042143    {
     
    21082147        m_idDirectRefLayer[iNuhLId][d++] = jNuhLid;
    21092148      }
     2149#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2150#if H_3D
     2151      if( getDirectDependencyFlag( i , j ) && ( getDepthId( iNuhLId ) == getDepthId( jNuhLid ) ))
     2152      {
     2153        m_idRefListLayer [iNuhLId][l++] = jNuhLid;
     2154      }
     2155#endif
     2156#endif
     2157
    21102158      if( getDependencyFlag( i , j ) )
    21112159      {
     
    21182166    }
    21192167    m_numDirectRefLayers[ iNuhLId ] = d;
     2168#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2169#if H_3D
     2170    m_numRefListLayers[ iNuhLId ] = l;
     2171#endif
     2172#endif
     2173
    21202174    m_numRefLayers      [ iNuhLId ] = r;
    21212175    m_numPredictedLayers[ iNuhLId ] = p;
     
    21522206
    21532207
     2208#if H_MV_FIX_NUM_VIEWS
     2209Void     TComVPS::initNumViews( )
     2210{
     2211  m_numViews = 1;
     2212#if HHI_VIEW_ID_LIST_I5_J0107
     2213#if H_3D
     2214  AOF( m_viewOIdxList.size() == 0 );
     2215  m_viewOIdxList.push_back( 0 );       
     2216#endif
     2217#endif
     2218
     2219  for( Int i = 0; i <=  getMaxLayersMinus1(); i++ )
     2220  {
     2221    Int lId = getLayerIdInNuh( i );
     2222    if( i > 0 )
     2223    {
     2224      Bool newViewFlag = true;
     2225      for( Int j = 0; j < i; j++ )
     2226      {
     2227        if( getViewOrderIdx( lId )  ==  getViewOrderIdx( getLayerIdInNuh( j ) )  )
     2228        {
     2229          newViewFlag = false;
     2230        }
     2231      }
     2232      if( newViewFlag )
     2233      {
     2234        m_numViews++;
     2235#if HHI_VIEW_ID_LIST_I5_J0107
     2236#if H_3D
     2237        m_viewOIdxList.push_back( getViewOrderIdx( lId ) );       
     2238#endif
     2239#endif
     2240      }
     2241    }
     2242  }
     2243}
     2244#endif
     2245
     2246
    21542247Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType )
    21552248{
     
    23102403}
    23112404
     2405#if !H_MV_FIX_NUM_VIEWS
    23122406Int TComVPS::getNumViews()
    23132407{
     
    23212415    }   
    23222416  }
    2323 
    23242417  return numViews;
    23252418}
     2419#endif
    23262420
    23272421
     
    25622656  xPrintArray( "IdRefLayer"      , getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefLayers, m_idRefLayer, true );
    25632657  xPrintArray( "IdDirectRefLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numDirectRefLayers, m_idDirectRefLayer, true );
     2658#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2659#if H_3D
     2660  xPrintArray( "IdRefListLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefListLayers, m_idRefListLayer, true );
     2661#endif
     2662#endif
     2663
    25642664  std::cout << std::endl;
    25652665}
     
    29843084      i++;
    29853085    }
     3086#if SHARP_DLT_SIMP_J0029
     3087    iIdxUp = bFound ?  iIdxDown + 1 : iNumDepthValues-1;
     3088#else
    29863089    // iterate over indices to find upper closest depth
    29873090    i = iNumDepthValues-2;
     
    30003103    // assert monotony
    30013104    assert(iIdxDown<=iIdxUp);
     3105#endif
    30023106
    30033107    // assign closer depth value/idx
     
    35803684{
    35813685  TComVPS* vps = getVPS();
     3686#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3687#if H_3D
     3688  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdRefListLayer( getLayerId(), i ) );
     3689#else
    35823690  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
    3583 
     3691#endif
     3692#else
     3693  Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) );
     3694#endif
     3695
     3696#if H_MV_FIX_REF_LAYER_PIC_FLAG
     3697  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer()  && ( getTLayer() == 0   ||
     3698    vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() ));
     3699#else
    35843700  Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >=  getTLayer() )  && ( getTLayer() == 0  ) &&
    35853701    ( vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() );
    3586 
     3702#endif
    35873703  return refLayerPicFlag;       
    35883704}   
     
    35923708  Int refLayerPicIdc = -1;
    35933709  Int curj = 0;
     3710#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3711#if H_3D
     3712  for( Int i = 0;  i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ )
     3713#else
    35943714  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3715#endif
     3716#else
     3717  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3718#endif
    35953719  {
    35963720    if( getRefLayerPicFlag( i ) )
     
    36133737
    36143738  Int numRefLayerPics = 0;
     3739#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3740#if H_3D
     3741  for( Int i = 0;  i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ )
     3742#else
    36153743  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3744#endif
     3745#else
     3746  for( Int i = 0;  i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ )
     3747#endif
    36163748  {
    36173749    numRefLayerPics += getRefLayerPicFlag( i );
     
    36383770    numActiveRefLayerPics = 0;
    36393771  }
     3772#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3773#if H_3D
     3774  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumRefListLayers( getLayerId() ) == 1 )
     3775#else
    36403776  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 )
     3777#endif
     3778#else
     3779  else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 )
     3780#endif 
    36413781  {
    36423782    numActiveRefLayerPics = 1;
     
    36513791Int TComSlice::getRefPicLayerId( Int i )
    36523792{
     3793#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     3794#if H_3D
     3795  return getVPS()->getIdRefListLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3796#else
    36533797  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
    3654 }
     3798#endif
     3799#else
     3800  return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) );
     3801#endif
     3802}
     3803
     3804#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     3805Void TComSlice::setDefaultRefView( )
     3806{
     3807  setDefaultRefViewIdx( -1 );
     3808  setDefaultRefViewIdxAvailableFlag( false );
     3809
     3810  Int valid = 0;
     3811  Int DefaultRefViewIdx = -1;
     3812  for( UInt curViewIdx = 0; curViewIdx < getViewIndex() && valid == 0; curViewIdx++ )
     3813  {
     3814    for( Int iRefListId = 0; ( iRefListId < (isInterB() ? 2 : 1) ) && !isIntra() && valid == 0; iRefListId++ )
     3815    {
     3816      RefPicList eRefPicList = RefPicList( iRefListId );
     3817      Int        iNumRefPics = getNumRefIdx( eRefPicList );
     3818      for( Int i = 0; i < iNumRefPics; i++ )
     3819      {
     3820        if(getPOC() == getRefPic( eRefPicList, i )->getPOC() && curViewIdx == getRefPic( eRefPicList, i )->getViewIndex())
     3821        {
     3822          valid = 1;
     3823          DefaultRefViewIdx = curViewIdx;
     3824          break;
     3825        }
     3826      }
     3827    }
     3828  }
     3829  if( valid )
     3830  {
     3831    setDefaultRefViewIdx( DefaultRefViewIdx );
     3832    setDefaultRefViewIdxAvailableFlag( true );   
     3833  }
     3834}
     3835#endif
    36553836
    36563837#if H_3D_ARP
     
    36583839{
    36593840  Bool tempRefPicInListsFlag = false;
     3841#if HHI_TOOL_PARAMETERS_I2_J0107
     3842  if( !getIvResPredFlag() || this->isIRAP())
     3843#else
    36603844  if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP())
     3845#endif
    36613846  {
    36623847    m_nARPStepNum = 0;
     
    36863871      }
    36873872    }
     3873#if SEC_ARP_VIEW_REF_CHECK_J0037
     3874    tempRefPicInListsFlag = (getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0) && getDefaultRefViewIdxAvailableFlag();
     3875#else
    36883876    tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0;
     3877#endif
     3878#if HHI_TOOL_PARAMETERS_I2_J0107
     3879    m_nARPStepNum = tempRefPicInListsFlag ?  H_3D_ARP_WFNR : 0;
     3880#else
    36893881    m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0;
     3882#endif
    36903883  }
    36913884
     
    38694062{
    38704063  Bool setupLUT = false;
     4064 
     4065#if HHI_TOOL_PARAMETERS_I2_J0107
     4066  setupLUT = setupLUT || getViewSynthesisPredFlag( );
     4067#else
    38714068  Int layerIdInVPS = getVPS()->getLayerIdInNuh( m_layerId );
    3872 
    38734069#if H_3D_VSP
    38744070  setupLUT = setupLUT || getVPS()->getViewSynthesisPredFlag( layerIdInVPS);
    38754071#endif
     4072#endif
    38764073
    38774074#if H_3D_NBDV_REF
     4075#if HHI_TOOL_PARAMETERS_I2_J0107
     4076  setupLUT = setupLUT || getDepthRefinementFlag( );
     4077#else
    38784078  setupLUT = setupLUT || getVPS()->getDepthRefinementFlag( layerIdInVPS );
     4079#endif
    38794080#endif
    38804081
    38814082#if H_3D_IV_MERGE
     4083#if HHI_TOOL_PARAMETERS_I2_J0107
     4084  setupLUT = setupLUT || ( getIvMvPredFlag() && getIsDepth() );
     4085#else
    38824086  setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() );
    38834087#endif
    3884 
     4088#endif
     4089
     4090#if !LGE_DDD_REMOVAL_J0042_J0030
    38854091#if H_3D_DDD
    38864092#if H_3D_FCO
     
    38964102  } 
    38974103#endif
     4104#endif
    38984105
    38994106  if( !setupLUT )
     
    39444151      m_depthToDisparityF[ i ][ d ] = ( invCodScale[ i ] * d + invOffset ) >> log2Div;
    39454152    }
    3946 
     4153#if !LGE_DDD_REMOVAL_J0042_J0030
    39474154#if H_3D_DDD
    39484155    initializeDDDPara( vps->getCamParPrecision(), codScale[ i ], codOffset[ i ], i );
    39494156#endif
    3950   }
    3951 }
    3952 #endif
    3953 #endif
    3954 
     4157#endif
     4158  }
     4159}
     4160#endif
     4161#endif
     4162
     4163#if !LGE_DDD_REMOVAL_J0042_J0030
    39554164#if H_3D_DDD
    39564165Void TComSlice::initializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx )
     
    40154224
    40164225#endif
     4226#endif
    40174227
    40184228#if H_MV
     
    40484258#endif
    40494259
     4260#if !LGE_DDD_REMOVAL_J0042_J0030
    40504261#if H_3D_DBBP
    40514262Int TComSlice::getDepthFromDV( Int iDV, Int iBaseViewIdx )
     
    40544265}
    40554266#endif
     4267#endif
     4268
     4269#if HHI_TOOL_PARAMETERS_I2_J0107
     4270#if H_3D
     4271
     4272Void TComSlice::init3dToolParameters()
     4273{
     4274  Bool depthFlag = getIsDepth();
     4275
     4276  Bool depthOfRefViewsAvailFlag = false;
     4277  Bool textOfCurViewAvailFlag = false;
     4278
     4279  TComVPS* vps = getVPS();
     4280
     4281  if( !depthFlag )
     4282  {
     4283    depthOfRefViewsAvailFlag = true;
     4284    for( Int i = 0; i <= vps->getNumRefListLayers( getLayerId() ) - 1; i++)
     4285    {
     4286      Bool curDepthAvailableFlag = false;   
     4287      for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ )
     4288      {
     4289        if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j )
     4290          && vps->getVpsDepthFlag        ( vps->getLayerIdInNuh( j ) ) == 1
     4291          && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == vps->getViewOrderIdx( vps->getIdRefListLayer( getLayerId(), i ) )
     4292          && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 0
     4293          && vps->getAuxId       ( vps->getLayerIdInNuh( j ) ) == 0
     4294          )
     4295        {
     4296          curDepthAvailableFlag = true;
     4297        }
     4298      }
     4299      if ( !curDepthAvailableFlag )
     4300      {
     4301        depthOfRefViewsAvailFlag = false;
     4302      }   
     4303    }
     4304  }
     4305  else
     4306  {
     4307    for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ )
     4308    {
     4309      if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j )
     4310        && vps->getVpsDepthFlag( vps->getLayerIdInNuh( j ) ) == 0
     4311        && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == getViewIndex()
     4312        && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 0
     4313        && vps->getAuxId       ( vps->getLayerIdInNuh( j ) ) == 0
     4314        )
     4315      {       
     4316        textOfCurViewAvailFlag = true;
     4317      }
     4318    }
     4319  }
     4320
     4321  Bool lidG0  = ( getLayerId() > 0 );
     4322  Bool nRLLG0 =  ( getVPS()->getNumRefListLayers( getLayerId() ) > 0 );     
     4323
     4324  TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension();
     4325
     4326  m_ivMvPredFlag           = sps3dExt->getIvMvPredFlag         ( depthFlag ) && lidG0 && nRLLG0                           ;                             
     4327  m_ivMvScalingFlag        = sps3dExt->getIvMvScalingFlag      ( depthFlag ) && lidG0                                    ;                             
     4328  m_ivResPredFlag          = sps3dExt->getIvResPredFlag        ( depthFlag ) && lidG0 && nRLLG0                           ;                               
     4329  m_depthRefinementFlag    = sps3dExt->getDepthRefinementFlag  ( depthFlag ) && lidG0           && depthOfRefViewsAvailFlag;                           
     4330  m_viewSynthesisPredFlag  = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && lidG0 && nRLLG0 && depthOfRefViewsAvailFlag;                         
     4331  m_depthBasedBlkPartFlag  = sps3dExt->getDepthBasedBlkPartFlag( depthFlag ) && lidG0           && depthOfRefViewsAvailFlag;                         
     4332  m_mpiFlag                = sps3dExt->getMpiFlag              ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
     4333  m_intraContourFlag       = sps3dExt->getIntraContourFlag     ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
     4334  m_intraSdcWedgeFlag      = sps3dExt->getIntraSdcWedgeFlag    ( depthFlag ) && lidG0                                     ;                         
     4335  m_qtPredFlag             = sps3dExt->getQtPredFlag           ( depthFlag ) && lidG0           &&   textOfCurViewAvailFlag;
     4336  m_interSdcFlag           = sps3dExt->getInterSdcFlag         ( depthFlag ) && lidG0                                    ;                               
     4337  m_intraSingleFlag        = sps3dExt->getIntraSingleFlag      ( depthFlag ) && lidG0                                    ;                         
     4338
     4339  m_subPbSize              = lidG0 ? ( 1 << ( sps3dExt->getLog2SubPbSizeMinus3   ( depthFlag ) + 3 ) ) : getSPS()->getMaxCUWidth(); 
     4340  m_mpiSubPbSize           = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 );
     4341
     4342#if H_3D_OUTPUT_ACTIVE_TOOLS
     4343  std::cout << "Layer:                  :" << getLayerId()             << std::endl;
     4344  std::cout << "DepthFlag:              :" << getIsDepth()             << std::endl;
     4345  std::cout << "ViewOrderIdx:           :" << getViewIndex()           << std::endl;
     4346  std::cout << "DepthOfRefViewsAvailFlag:" << depthOfRefViewsAvailFlag << std::endl;
     4347  std::cout << "TextOfCurViewAvailFlag  :" << textOfCurViewAvailFlag   << std::endl;
     4348 
     4349  std::cout << "ivMvPredFlag            :" << m_ivMvPredFlag           << std::endl;
     4350  std::cout << "ivMvScalingFlag         :" << m_ivMvScalingFlag        << std::endl;
     4351  std::cout << "ivResPredFlag           :" << m_ivResPredFlag          << std::endl;
     4352  std::cout << "depthRefinementFlag     :" << m_depthRefinementFlag    << std::endl;
     4353  std::cout << "viewSynthesisPredFlag   :" << m_viewSynthesisPredFlag  << std::endl;
     4354  std::cout << "depthBasedBlkPartFlag   :" << m_depthBasedBlkPartFlag  << std::endl;
     4355  std::cout << "mpiFlag                 :" << m_mpiFlag                << std::endl;
     4356  std::cout << "intraContourFlag        :" << m_intraContourFlag       << std::endl;
     4357  std::cout << "intraSdcWedgeFlag       :" << m_intraSdcWedgeFlag      << std::endl;
     4358  std::cout << "qtPredFlag              :" << m_qtPredFlag             << std::endl;
     4359  std::cout << "interSdcFlag            :" << m_interSdcFlag           << std::endl;
     4360  std::cout << "intraSingleFlag         :" << m_intraSingleFlag        << std::endl;   
     4361  std::cout << "subPbSize               :" << m_subPbSize              << std::endl;
     4362  std::cout << "mpiSubPbSize            :" << m_mpiSubPbSize           << std::endl;
     4363#endif
     4364}
     4365#endif
     4366#endif
     4367
    40564368
    40574369/** get scaling matrix from RefMatrixID
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r1084 r1124  
    861861  TComRepFormat* m_repFormat             [MAX_NUM_LAYERS];
    862862  Bool        m_maxOneActiveRefLayerFlag;       
    863 #if H_MV_HLS7_GEN
     863#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    864864  Bool        m_vpsPocLsbAlignedFlag;
    865865#endif
     
    884884  Int         m_dependencyFlag           [MAX_NUM_LAYERS][MAX_NUM_LAYERS];
    885885
     886#if H_MV_FIX_NUM_VIEWS
     887  Int         m_numViews;
     888#endif
    886889  Int         m_numDirectRefLayers       [MAX_NUM_LAYERS];
    887890  Int         m_idDirectRefLayer         [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     891#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     892#if H_3D
     893  Int         m_numRefListLayers         [MAX_NUM_LAYERS];
     894  Int         m_idRefListLayer           [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 
     895#endif
     896#endif
     897
    888898
    889899  Int         m_numRefLayers             [MAX_NUM_LAYER_IDS];
     
    909919  Void        xSetRefLayerFlags( Int currLayerId );
    910920  // VPS EXTENSION 2 SYNTAX ELEMENTS
     921#if !HHI_TOOL_PARAMETERS_I2_J0107
    911922#if H_3D_ARP
    912923  UInt        m_uiUseAdvResPred          [MAX_NUM_LAYERS   ];
     
    934945  Bool        m_bIVPFlag                 [MAX_NUM_LAYERS   ];
    935946#endif
     947#endif
    936948#if H_3D
    937949  UInt        m_uiCamParPrecision;
     
    940952  Int         ***m_aaaiCodedScale ;
    941953  Int         ***m_aaaiCodedOffset;
    942 #endif
     954
     955#if H_MV_FIX_NUM_VIEWS
     956#if HHI_VIEW_ID_LIST_I5_J0107
     957  std::vector<Int>  m_viewOIdxList;
     958#endif
     959#endif
     960
     961#endif
     962#if !HHI_TOOL_PARAMETERS_I2_J0107
    943963#if H_3D_INTER_SDC
    944964  Bool        m_bInterSDCFlag[MAX_NUM_LAYERS   ];
     
    949969#if H_3D_IV_MERGE
    950970  Bool        m_bMPIFlag[MAX_NUM_LAYERS   ];
     971#endif
     972#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     973  Bool        m_singleDepthModeFlag    [ MAX_NUM_LAYERS ];
     974#endif
    951975#endif
    952976
     
    11351159  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
    11361160
    1137 #if H_MV_HLS7_GEN
     1161#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    11381162  Void    setVpsPocLsbAlignedFlag( Bool flag )                             { m_vpsPocLsbAlignedFlag = flag; }
    11391163  Bool    getVpsPocLsbAlignedFlag(  )                                      { return m_vpsPocLsbAlignedFlag; }
     
    11721196  Void    setRefLayers();
    11731197
     1198#if H_MV_FIX_NUM_VIEWS
     1199  // To be aligned with spec naming, getViewIndex will be removed in future versions
     1200  Int     getViewOrderIdx ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
     1201  Int     getViewIndex    ( Int layerIdInNuh )                             { return getViewOrderIdx( layerIdInNuh ); }   
     1202#else
    11741203  Int     getViewIndex    ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX  ); }   
     1204#endif
    11751205  Int     getAuxId        ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID  ); }   
    11761206  Int     getDependencyId ( Int layerIdInNuh )                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID  ); }   
     1207#if H_MV_FIX_NUM_VIEWS
     1208  Int     getNumViews()                                                    { return m_numViews; }
     1209  Void    initNumViews();
     1210#if HHI_VIEW_ID_LIST_I5_J0107
     1211  Int     getViewOIdxList( Int i )                                         { return m_viewOIdxList[i]; }
     1212#endif
     1213#else
    11771214  Int     getNumViews();
     1215#endif
    11781216
    11791217  Bool    getDependencyFlag( Int i, Int j )                                { return m_dependencyFlag[i][j]; }
    11801218  Int     getNumDirectRefLayers( Int layerIdInNuh )                        { return m_numDirectRefLayers[ layerIdInNuh ];  };                               
     1219#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1220#if H_3D
     1221  Int     getNumRefListLayers( Int layerIdInNuh )                         { return m_numRefListLayers[ layerIdInNuh ];  };                               
     1222#endif
     1223#endif
     1224
    11811225  Int     getNumRefLayers            ( Int i )        { return m_numRefLayers[i]; }
    11821226  Int     getNumPredictedLayers      ( Int i )        { return m_numPredictedLayers[i]; }
     1227
    11831228
    11841229  Int     getIdRefLayer              ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers      ( i )); return m_idRefLayer      [i][j]; }
    11851230  Int     getIdPredictedLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; }
    11861231  Int     getIdDirectRefLayer        ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; }
     1232#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1233#if H_3D
     1234  Int     getIdRefListLayer          ( Int i, Int j ) { assert( j >= 0 && j < getNumRefListLayers   ( i )); return m_idRefListLayer[i][j]; }
     1235#endif
     1236#endif
    11871237  Int     getNumIndependentLayers    (  )             { return m_numIndependentLayers; }
    11881238  Int     getNumLayersInTreePartition( Int i )        { return m_numLayersInTreePartition[i]; }
     
    12791329
    12801330  /// VPS EXTENSION 2 SYNTAX ELEMENTS
     1331
     1332
    12811333#if H_3D 
    12821334  Int     getDepthId      ( Int layerIdInNuh)                             { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPTH_ID ); }
     1335#if HHI_TOOL_PARAMETERS_I2_J0107
     1336  Bool    getVpsDepthFlag( Int layerIdInNuh)                              { return (getDepthId( layerIdInNuh ) > 0);  }
     1337#endif
    12831338  Int     getLayerIdInNuh( Int viewIndex, Bool depthFlag );   
    12841339
     1340#if !HHI_TOOL_PARAMETERS_I2_J0107
    12851341#if H_3D_ARP
    12861342  UInt    getUseAdvRP  ( Int layerIdInVps )                                { return m_uiUseAdvResPred[layerIdInVps];    }
     
    12881344  Void    setUseAdvRP  ( Int layerIdInVps, UInt val )                      { m_uiUseAdvResPred[layerIdInVps] = val;     }
    12891345  Void    setARPStepNum( Int layerIdInVps, UInt val )                      { m_uiARPStepNum[layerIdInVps]    = val;     }
     1346#endif
    12901347#endif
    12911348
     
    13031360  Int* getInvCodedOffset     ( Int viewIndex )  { return m_aaaiCodedOffset[viewIndex][1]; }
    13041361
     1362#if !HHI_TOOL_PARAMETERS_I2_J0107
    13051363#if H_3D_IV_MERGE
    13061364  Void    setIvMvPredFlag     ( Int layerIdInVps, Bool val )  { m_ivMvPredFlag[ layerIdInVps ] = val; }
     
    13461404  Void    setMPIFlag      ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; }
    13471405#endif
     1406#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1407  Void    setSingleDepthModeFlag  ( Int layerIdInVps, Bool val )  { m_singleDepthModeFlag[ layerIdInVps ] = val; }
     1408  Bool    getSingleDepthModeFlag  ( Int layerIdInVps )            { return m_singleDepthModeFlag[ layerIdInVps ]; };
     1409#endif
    13481410#endif 
     1411#endif
    13491412#endif
    13501413};
     
    16121675};
    16131676
     1677#if HHI_TOOL_PARAMETERS_I2_J0107
     1678#if H_3D
     1679class TComSps3dExtension
     1680{
     1681public:
     1682  TComSps3dExtension()
     1683  {
     1684    for (Int d = 0; d < 2; d++)
     1685    {
     1686      m_ivMvPredFlag          [d] = false;
     1687      m_ivMvScalingFlag       [d] = false;
     1688      m_log2SubPbSizeMinus3   [d] = 3;
     1689      m_ivResPredFlag         [d] = false;
     1690      m_depthRefinementFlag   [d] = false;
     1691      m_viewSynthesisPredFlag [d] = false;
     1692      m_depthBasedBlkPartFlag [d] = false;
     1693      m_mpiFlag               [d] = false;
     1694      m_log2MpiSubPbSizeMinus3[d] = 3;
     1695      m_intraContourFlag      [d] = false;
     1696      m_intraSdcWedgeFlag     [d] = false;
     1697      m_qtPredFlag            [d] = false;
     1698      m_interSdcFlag          [d] = false;
     1699      m_intraSingleFlag       [d] = false;   
     1700    }
     1701  }
     1702
     1703  Void setIvMvPredFlag( Int d, Bool flag ) { m_ivMvPredFlag[d] = flag; }
     1704  Bool getIvMvPredFlag( Int d ) { return m_ivMvPredFlag[d]; }
     1705
     1706  Void setIvMvScalingFlag( Int d, Bool flag ) { m_ivMvScalingFlag[d] = flag; }
     1707  Bool getIvMvScalingFlag( Int d ) { return m_ivMvScalingFlag[d]; }
     1708
     1709  Void setLog2SubPbSizeMinus3( Int d, Int  val ) { m_log2SubPbSizeMinus3[d] = val; }
     1710  Int  getLog2SubPbSizeMinus3( Int d ) { return m_log2SubPbSizeMinus3[d]; }
     1711
     1712  Void setIvResPredFlag( Int d, Bool flag ) { m_ivResPredFlag[d] = flag; }
     1713  Bool getIvResPredFlag( Int d ) { return m_ivResPredFlag[d]; }
     1714
     1715  Void setDepthRefinementFlag( Int d, Bool flag ) { m_depthRefinementFlag[d] = flag; }
     1716  Bool getDepthRefinementFlag( Int d ) { return m_depthRefinementFlag[d]; }
     1717
     1718  Void setViewSynthesisPredFlag( Int d, Bool flag ) { m_viewSynthesisPredFlag[d] = flag; }
     1719  Bool getViewSynthesisPredFlag( Int d ) { return m_viewSynthesisPredFlag[d]; }
     1720
     1721  Void setDepthBasedBlkPartFlag( Int d, Bool flag ) { m_depthBasedBlkPartFlag[d] = flag; }
     1722  Bool getDepthBasedBlkPartFlag( Int d ) { return m_depthBasedBlkPartFlag[d]; }
     1723
     1724  Void setMpiFlag( Int d, Bool flag ) { m_mpiFlag[d] = flag; }
     1725  Bool getMpiFlag( Int d ) { return m_mpiFlag[d]; }
     1726
     1727  Void setLog2MpiSubPbSizeMinus3( Int d, Int  val ) { m_log2MpiSubPbSizeMinus3[d] = val; }
     1728  Int  getLog2MpiSubPbSizeMinus3( Int d ) { return m_log2MpiSubPbSizeMinus3[d]; }
     1729
     1730  Void setIntraContourFlag( Int d, Bool flag ) { m_intraContourFlag[d] = flag; }
     1731  Bool getIntraContourFlag( Int d ) { return m_intraContourFlag[d]; }
     1732
     1733  Void setIntraSdcWedgeFlag( Int d, Bool flag ) { m_intraSdcWedgeFlag[d] = flag; }
     1734  Bool getIntraSdcWedgeFlag( Int d ) { return m_intraSdcWedgeFlag[d]; }
     1735
     1736  Void setQtPredFlag( Int d, Bool flag ) { m_qtPredFlag[d] = flag; }
     1737  Bool getQtPredFlag( Int d ) { return m_qtPredFlag[d]; }
     1738
     1739  Void setInterSdcFlag( Int d, Bool flag ) { m_interSdcFlag[d] = flag; }
     1740  Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; }
     1741
     1742  Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; }
     1743  Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; }
     1744
     1745private:
     1746
     1747  Bool        m_ivMvPredFlag          [2];
     1748  Bool        m_ivMvScalingFlag       [2];
     1749  Int         m_log2SubPbSizeMinus3   [2];
     1750  Bool        m_ivResPredFlag         [2];
     1751  Bool        m_depthRefinementFlag   [2];
     1752  Bool        m_viewSynthesisPredFlag [2];
     1753  Bool        m_depthBasedBlkPartFlag [2];
     1754  Bool        m_mpiFlag               [2];
     1755  Int         m_log2MpiSubPbSizeMinus3[2];
     1756  Bool        m_intraContourFlag      [2];
     1757  Bool        m_intraSdcWedgeFlag     [2];
     1758  Bool        m_qtPredFlag            [2];
     1759  Bool        m_interSdcFlag          [2];
     1760  Bool        m_intraSingleFlag       [2]; 
     1761};
     1762
     1763#endif
     1764#endif
     1765
    16141766/// SPS class
    16151767class TComSPS
     
    17111863#endif
    17121864#if H_3D
     1865#if HHI_TOOL_PARAMETERS_I2_J0107
     1866  TComSps3dExtension m_sps3dExtension;
     1867#endif
    17131868  UInt        m_uiCamParPrecision;
    17141869  Bool        m_bCamParInSliceHeader;
     
    18842039  Void setSpsRepFormatIdx( Int  val )          { m_spsRepFormatIdx = val; }
    18852040  Int  getSpsRepFormatIdx(  )                  { return m_spsRepFormatIdx; }
    1886   // SPS Extension
     2041 
     2042// SPS Extension
    18872043  Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; }
    18882044  Bool getInterViewMvVertConstraintFlag()         { return m_interViewMvVertConstraintFlag;}
     2045
     2046#if HHI_TOOL_PARAMETERS_I2_J0107
     2047#if H_3D
     2048  Void setSps3dExtension ( TComSps3dExtension& sps3dExtension ) { m_sps3dExtension = sps3dExtension; }
     2049  TComSps3dExtension* getSps3dExtension ( )                     { return &m_sps3dExtension; }
     2050#endif
     2051#endif
    18892052
    18902053  // Inference
     
    23422505#endif
    23432506#endif
    2344 
     2507#if !LGE_DDD_REMOVAL_J0042_J0030
    23452508#if H_3D_DDD
    23462509  Int          m_aiDDDInvScale [MAX_NUM_LAYERS];
     
    23482511  UInt         m_aiDDDShift    [MAX_NUM_LAYERS];
    23492512#endif
     2513#endif
    23502514#if H_3D_SINGLE_DEPTH
    23512515  Bool      m_bApplySingleDepthMode;
     
    23542518  Int *m_aICEnableCandidate;
    23552519  Int *m_aICEnableNum;
     2520#endif
     2521#if LGE_DEFAULT_DV_J0046
     2522  Int       m_iDefaultRefViewIdx;
     2523  Bool      m_bDefaultRefViewIdxAvailableFlag;
     2524#endif
     2525
     2526#if HHI_TOOL_PARAMETERS_I2_J0107
     2527  Bool m_ivMvPredFlag         ;
     2528  Bool m_ivMvScalingFlag      ;
     2529  Bool m_ivResPredFlag        ;
     2530  Bool m_depthRefinementFlag  ;
     2531  Bool m_viewSynthesisPredFlag;
     2532  Bool m_depthBasedBlkPartFlag;
     2533  Bool m_mpiFlag              ;
     2534  Bool m_intraContourFlag     ;
     2535  Bool m_intraSdcWedgeFlag    ;
     2536  Bool m_qtPredFlag           ;
     2537  Bool m_interSdcFlag         ;
     2538  Bool m_intraSingleFlag      ;
     2539
     2540  Int  m_mpiSubPbSize         ;
     2541  Int  m_subPbSize            ;
    23562542#endif
    23572543public:
     
    24252611  TComPic*  getTexturePic       ()                              { return  m_ivPicsCurrPoc[0][ m_viewIndex ]; }
    24262612#endif
     2613#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    24272614#if H_3D_SINGLE_DEPTH
    24282615  Void      setApplySingleDepthMode( Bool b )                                { m_bApplySingleDepthMode = b; }
    24292616  Bool      getApplySingleDepthMode()                                        { return m_bApplySingleDepthMode; }
     2617#endif
    24302618#endif
    24312619#if H_3D_IC
     
    26652853  Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; };
    26662854  Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };
     2855#if !HHI_TOOL_PARAMETERS_I2_J0107
    26672856  Bool getVpsDepthModesFlag  ()  { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
    26682857  Bool getIVPFlag       ()  { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); }
     2858#endif
    26692859#endif
    26702860#if H_3D_IC
     
    27242914  Int  getPocMsbVal(  ) { return m_pocMsbVal; }
    27252915
     2916#if H_MV_HLS_FIX
     2917  Bool getCraOrBlaPicFlag() { return ( getCraPicFlag() || getBlaPicFlag() ); }
     2918  Bool getPocMsbValRequiredFlag() { return ( getCraOrBlaPicFlag() && ( getVPS()->getVpsPocLsbAlignedFlag() || getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) == 0 ) );  }
     2919#else
    27262920  Bool getPocMsbValRequiredFlag() { return m_pocMsbValRequiredFlag; }
    27272921  Void setPocMsbValRequiredFlag(Bool x) { m_pocMsbValRequiredFlag = x; }
     2922#endif
     2923
    27282924
    27292925  UInt getPocLsbValLen() { return getSPS()->getBitsForPOC(); }; //log2_max_pic_order_cnt_lsb_minus4 + 4 
     
    27422938  // Additional variables derived in slice header semantics
    27432939
     2940#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2941#if H_3D
     2942  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumRefListLayers( getLayerId() )); }
     2943  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumRefListLayers( getLayerId() )); }
     2944#else
    27442945  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
    27452946  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2947#endif
     2948
     2949#else
     2950  Int  getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2951  Int  getInterLayerPredLayerIdcLen    ( ) { return gCeilLog2(  getVPS()->getNumDirectRefLayers( getLayerId() )); }
     2952#endif
    27462953
    27472954  Int  getRefLayerPicFlag( Int i );
     
    27592966  TComPic* getPicFromRefPicSetInterLayer( Int setIdc, Int layerId );
    27602967
     2968
     2969#if HHI_TOOL_PARAMETERS_I2_J0107
     2970#if H_3D
     2971  // 3D-HEVC tool parameters
     2972  Void init3dToolParameters();   
     2973  Bool getIvMvPredFlag           ( ) { return m_ivMvPredFlag           ; };
     2974  Bool getIvMvScalingFlag        ( ) { return m_ivMvScalingFlag        ; };
     2975  Bool getIvResPredFlag          ( ) { return m_ivResPredFlag          ; };
     2976  Bool getDepthRefinementFlag    ( ) { return m_depthRefinementFlag    ; };
     2977  Bool getViewSynthesisPredFlag  ( ) { return m_viewSynthesisPredFlag  ; };
     2978  Bool getDepthBasedBlkPartFlag  ( ) { return m_depthBasedBlkPartFlag  ; };
     2979  Bool getMpiFlag                ( ) { return m_mpiFlag                ; };
     2980  Bool getIntraContourFlag       ( ) { return m_intraContourFlag       ; };
     2981  Bool getIntraSdcWedgeFlag      ( ) { return m_intraSdcWedgeFlag      ; };
     2982  Bool getQtPredFlag             ( ) { return m_qtPredFlag             ; };
     2983  Bool getInterSdcFlag           ( ) { return m_interSdcFlag           ; };
     2984  Bool getIntraSingleFlag        ( ) { return m_intraSingleFlag        ; };
     2985
     2986  Int  getMpiSubPbSize           ( ) { return m_mpiSubPbSize           ; };
     2987  Int  getSubPbSize              ( ) { return m_subPbSize              ; };
     2988#endif
     2989#endif
     2990
     2991
    27612992  // Inference
    27622993  Bool inferPocMsbValPresentFlag(); 
    27632994#endif
     2995#if !LGE_DDD_REMOVAL_J0042_J0030
    27642996#if H_3D_DDD
    27652997  Void initializeDDDPara( UInt uiCamParsCodedPrecision, Int  iCodedScale,Int  iCodedOffset, Int iBaseViewIdx );
    27662998  Int  getDepthFromDV( Int iDV, Int iBaseViewIdx );
     2999#endif
     3000#endif
     3001#if LGE_DEFAULT_DV_J0046
     3002  Int  getDefaultRefViewIdx() { return m_iDefaultRefViewIdx; }
     3003  Void setDefaultRefViewIdx(Int iViewIdx) { m_iDefaultRefViewIdx = iViewIdx; }
     3004
     3005  Bool getDefaultRefViewIdxAvailableFlag() { return m_bDefaultRefViewIdxAvailableFlag; }
     3006  Void setDefaultRefViewIdxAvailableFlag(Bool bViewIdx) { m_bDefaultRefViewIdxAvailableFlag = bViewIdx; }
     3007#endif
     3008#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     3009  Void setDefaultRefView( );
    27673010#endif
    27683011
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r1084 r1124  
    103103                                              // MTK_NBDV_TN_FIX_E0172     fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172
    104104                                              // MTK_TEXTURE_MRGCAND_BUGFIX_E0182  Bug fix for TEXTURE MERGING CANDIDATE     , JCT3V-E0182
     105#define LGE_SIMP_DISP_AVAIL_J0041    1   // Use 2 status for disparity availability - DISP_AVAILABLE and DISP_NONE
    105106
    106107#define H_3D_ARP                          1   // Advanced residual prediction (ARP), JCT3V-D0177
     
    114115                                              // SHARP_ARP_CHROMA_I0104     
    115116                                              // MTK_I0072_IVARP_SCALING_FIX
     117#define SEC_ARP_VIEW_REF_CHECK_J0037      1   // Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1
    116118
    117119#define H_3D_IC                           1   // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060
     
    154156                                              // NTT_STORE_SPDV_VSP_G0148 Storing Sub-PU based DV for VSP
    155157                                              // Restricted bi-prediction for VSP
     158#define SEC_A1_BASED_VSP_J0039            1   // Removal of redundant VSP in Merge list
     159
    156160
    157161#define H_3D_IV_MERGE                     1   // Inter-view motion merge candidate
     
    178182                                              // SEC_SIMP_SHIFTED_DV_I0086     Simplification of Shifted DV candidate, JCT3V-I0086
    179183
     184#define MTK_MRG_LIST_SIZE_CLEANUP_J0059   1   // Include VSP for deriving merge candidate list size, JCT3V-J0059
    180185
    181186
     
    231236
    232237#define H_3D_SINGLE_DEPTH                 1   // Single depth mode proposed in JCT3V-I0095
    233 
     238#define MTK_SINGLE_DEPTH_VPS_FLAG_J0060   1   // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060
     239#define ALIGN_J0060_J0107                 1   // Alignment of changed tool parameters
     240#define ALGIN_J0107_J0059                 1   // Alignment of changed tool parameters               
     241
     242#define MTK_J0033                         1
     243#define SHARP_DLT_SIMP_J0029              1   // DLT(DepthValue2Idx[]) table derivation cleanup
    234244
    235245#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    253263                                              // SHARP_DBBP_SIMPLE_FLTER_I0109     1   // Simple condition and one dimensional filter for DBBP
    254264                                              // SEC_DBBP_DMM4_THRESHOLD_I0076     Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076
    255 
     265#define SEC_DBBP_VIEW_REF_CHECK_J0037     1   // Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4
    256266
    257267#define H_3D_DDD                          1   // Disparity derived depth coding
     268#define LGE_DDD_REMOVAL_J0042_J0030       1   // DDD removal
    258269
    259270#define H_3D_FCO                          0   // Flexible coding order for 3D
    260271#if H_3D_FCO
    261 #define H_3D_FCO                     1
     272#define H_3D_FCO                          1
    262273#endif
    263274
     
    272283#define H_3D_FAST_DEPTH_INTRA             1   // Fast DMM and RBC Mode Selection
    273284                                              // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX
     285#define MTK_DMM_SIM_J0035                 1
    274286#endif
    275287
     
    288300// Fixes
    289301
     302
     303#if H_3D
     304#define HHI_DEPENDENCY_SIGNALLING_I1_J0107     1
     305#define HHI_TOOL_PARAMETERS_I2_J0107           1
     306#define HHI_VPS_3D_EXTENSION_I3_J0107          1
     307#define HHI_VIEW_ID_LIST_I5_J0107              0
     308#endif
     309#define H_MV_FIX_REF_LAYER_PIC_FLAG            1
     310#define H_MV_FIX_NUM_VIEWS                     1
     311#define H_3D_OUTPUT_ACTIVE_TOOLS               0
     312
    290313///// ***** SINGLE DEPTH MODE *********
    291314#if H_3D_SINGLE_DEPTH
    292315#define SINGLE_DEPTH_MODE_CAND_LIST_SIZE            2 // size of the sample candidate list
     316#define SINGLE_DEPTH_SIMP_J0115           1
    293317#endif
    294318
     
    307331#define DVFROM_ABOVE                      1
    308332#define IDV_CANDS                         2
     333#define LGE_DEFAULT_DV_J0046              1
    309334#endif
    310335
     
    342367#define IC_SHIFT_DIFF                     12
    343368#define IC_LOW_LATENCY_ENCODING_THRESHOLD 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086
     369#define LGE_CHROMA_IC_J0050_J0034         1
    344370#endif
    345371
     
    363389#endif
    364390
     391
     392#if H_3D_SPIVMP
     393#define HS_SP_SIMP_J0066                        1
     394#endif
     395
    365396/////////////////////////////////////////////////////////////////////////////////
    366397///////////////////////////////////   MV_HEVC HLS  //////////////////////////////
    367398/////////////////////////////////////////////////////////////////////////////////
    368399// TBD: Check if integration is necessary.
     400
     401#define H_MV_HLS_FIX                         1
    369402#define H_MV_HLS_PTL_LIMITS                  0
    370403#define H_MV_HLS7_GEN                        0  // General changes (not tested)
     
    902935enum DefaultMergCandOrder
    903936{
     937#if SEC_A1_BASED_VSP_J0039
     938  MRG_T = 0,            ///< MPI
     939  MRG_D,                ///< DDD
     940  MRG_IVMC,             ///< Temporal inter-view
     941  MRG_A1,               ///< Left
     942  MRG_B1,               ///< Above
     943  MRG_VSP,              ///< VSP
     944  MRG_B0,               ///< Above right
     945  MRG_IVDC,             ///< Disparity inter-view
     946  MRG_A0,               ///< Left bottom
     947  MRG_B2,               ///< Above left
     948  MRG_IVSHIFT,          ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive)
     949  MRG_COL               ///< Temporal co-located
     950#else
    904951  MRG_T = 0,            ///< MPI
    905952  MRG_D,                ///< DDD
     
    914961  MRG_IVSHIFT,          ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive)
    915962  MRG_COL               ///< Temporal co-located
     963#endif
    916964};
    917965#endif
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1084 r1124  
    721721}
    722722
     723#if HHI_TOOL_PARAMETERS_I2_J0107
     724Void TDecCavlc::parseSPS(TComSPS* pcSPS)
     725#else
    723726#if H_3D
    724727Void TDecCavlc::parseSPS(TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    725728#else
    726729Void TDecCavlc::parseSPS(TComSPS* pcSPS)
     730#endif
    727731#endif
    728732{
     
    993997  if ( pcSPS->getSps3dExtensionFlag() )
    994998  {
     999#if HHI_TOOL_PARAMETERS_I2_J0107
     1000    parseSPS3dExtension( pcSPS );
     1001#else
    9951002    parseSPSExtension2( pcSPS, viewIndex, depthFlag  );
     1003#endif
    9961004  }
    9971005
     
    10201028
    10211029#if H_3D
     1030#if HHI_TOOL_PARAMETERS_I2_J0107
     1031Void TDecCavlc::parseSPS3dExtension( TComSPS* pcSPS )
     1032{
     1033  TComSps3dExtension* sps3dExt = pcSPS->getSps3dExtension();
     1034  UInt uiCode;
     1035  for( Int d = 0; d  <=  1; d++ )
     1036  {
     1037    READ_FLAG( uiCode, "iv_mv_pred_flag" ); sps3dExt->setIvMvPredFlag( d, uiCode == 1 );
     1038    READ_FLAG( uiCode, "iv_mv_scaling_flag" ); sps3dExt->setIvMvScalingFlag( d, uiCode == 1 );
     1039    if( d  ==  0 )
     1040    {
     1041      READ_UVLC( uiCode, "log2_sub_pb_size_minus3" ); sps3dExt->setLog2SubPbSizeMinus3( d, uiCode );
     1042      READ_FLAG( uiCode, "iv_res_pred_flag" ); sps3dExt->setIvResPredFlag( d, uiCode == 1 );
     1043      READ_FLAG( uiCode, "depth_refinement_flag" ); sps3dExt->setDepthRefinementFlag( d, uiCode == 1 );
     1044      READ_FLAG( uiCode, "view_synthesis_pred_flag" ); sps3dExt->setViewSynthesisPredFlag( d, uiCode == 1 );
     1045      READ_FLAG( uiCode, "depth_based_blk_part_flag" ); sps3dExt->setDepthBasedBlkPartFlag( d, uiCode == 1 );
     1046    }
     1047    else
     1048    {
     1049      READ_FLAG( uiCode, "mpi_flag" ); sps3dExt->setMpiFlag( d, uiCode == 1 );
     1050      READ_UVLC( uiCode, "log2_mpi_sub_pb_size_minus3" ); sps3dExt->setLog2MpiSubPbSizeMinus3( d, uiCode );
     1051      READ_FLAG( uiCode, "intra_contour_flag" ); sps3dExt->setIntraContourFlag( d, uiCode == 1 );
     1052      READ_FLAG( uiCode, "intra_sdc_wedge_flag" ); sps3dExt->setIntraSdcWedgeFlag( d, uiCode == 1 );
     1053      READ_FLAG( uiCode, "qt_pred_flag" ); sps3dExt->setQtPredFlag( d, uiCode == 1 );
     1054      READ_FLAG( uiCode, "inter_sdc_flag" ); sps3dExt->setInterSdcFlag( d, uiCode == 1 );
     1055      READ_FLAG( uiCode, "intra_single_flag" ); sps3dExt->setIntraSingleFlag( d, uiCode == 1 );
     1056    }
     1057  }
     1058}
     1059#else
    10221060Void TDecCavlc::parseSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    10231061{
    10241062
    10251063}
     1064#endif
    10261065#endif
    10271066
     
    10321071  READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 );
    10331072  READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode );
     1073#if H_MV_HLS_FIX
     1074
     1075  UInt numRefLocOffsets;;
     1076  READ_UVLC( numRefLocOffsets, "num_ref_loc_offsets" );
     1077
     1078  // All of the following stuff is not needed, but allowed to be present.
     1079  for (Int i = 0; i < numRefLocOffsets; i++ )
     1080  {
     1081    Int   iCode = 0;
     1082    READ_CODE( 6, uiCode, "ref_loc_offset_layer_id" );
     1083    READ_FLAG( uiCode, "scaled_ref_layer_offset_present_flag" );
     1084
     1085    if (uiCode)
     1086    {   
     1087      READ_SVLC( iCode, "scaled_ref_layer_left_offset" );   
     1088      READ_SVLC( iCode, "scaled_ref_layer_top_offset" );   
     1089      READ_SVLC( iCode, "scaled_ref_layer_right_offset" ); 
     1090      READ_SVLC( iCode, "scaled_ref_layer_bottom_offset" );
     1091    }
     1092
     1093    READ_FLAG( uiCode, "ref_region_offset_present_flag" ); 
     1094    if (uiCode)
     1095    {   
     1096      READ_SVLC( iCode, "ref_region_left_offset" );     
     1097      READ_SVLC( iCode, "ref_region_top_offset" );     
     1098      READ_SVLC( iCode, "ref_region_right_offset" );   
     1099      READ_SVLC( iCode, "ref_region_bottom_offset" );   
     1100    }
     1101
     1102    READ_FLAG( uiCode, "resample_phase_set_present_flag" );
     1103    if (uiCode)
     1104    {     
     1105      READ_UVLC( uiCode, "phase_hor_luma" );             
     1106      READ_UVLC( uiCode, "phase_ver_luma" );             
     1107      READ_UVLC( uiCode, "phase_hor_chroma_plus8" );     
     1108      READ_UVLC( uiCode, "phase_ver_chroma_plus8" );     
     1109    }
     1110  }
     1111  READ_FLAG( uiCode, "colour_mapping_enabled_flag" );   
     1112  // This is required to equal to 0 for Multiview Main profile.
     1113  assert( uiCode == 0 );
     1114#else
    10341115  READ_UVLC( uiCode, "num_ref_loc_offsets" ); assert( uiCode == 0 );
     1116#endif
    10351117}
    10361118
     
    11551237    {
    11561238#if H_3D
     1239#if HHI_VPS_3D_EXTENSION_I3_J0107
     1240      READ_FLAG( uiCode,  "vps_3d_extension_flag" );
     1241      if ( uiCode )
     1242      {
     1243        m_pcBitstream->readOutTrailingBits();
     1244        pcVPS->createCamPars(pcVPS->getNumViews());
     1245        parseVPS3dExtension( pcVPS );   
     1246      }
     1247      READ_FLAG( uiCode,  "vps_extension3_flag" );
     1248      if (uiCode)
     1249      {     
     1250#else
    11571251      m_pcBitstream->readOutTrailingBits();
    11581252      pcVPS->createCamPars(pcVPS->getNumViews());
     
    11621256      {     
    11631257#endif
     1258#endif
    11641259#endif 
    11651260        while ( xMoreRbspData() )
     
    12341329    }
    12351330  }
     1331
     1332#if H_MV_FIX_NUM_VIEWS
     1333  pcVPS->initNumViews();
     1334#endif
    12361335
    12371336  READ_CODE( 4, uiCode, "view_id_len" ); pcVPS->setViewIdLen( uiCode );
     
    13421441  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    13431442  {
     1443#if H_MV_HLS_FIX
     1444    if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) )   
     1445#else
    13441446    if( i >= pcVPS->getNumLayerSets( ) )   
     1447#endif
    13451448    {       
    13461449      READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
     
    14131516
    14141517  READ_FLAG( uiCode, "max_one_active_ref_layer_flag" ); pcVPS->setMaxOneActiveRefLayerFlag ( uiCode == 1 );
    1415 #if H_MV_HLS7_GEN
     1518
     1519#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    14161520  READ_FLAG( uiCode, "vps_poc_lsb_aligned_flag" ); pcVPS->setVpsPocLsbAlignedFlag( uiCode == 1 );
    14171521#endif
     
    14631567    parseVPSVUI( pcVPS );
    14641568  }     
     1569#if H_MV_HLS_FIX
     1570  else
     1571#endif
    14651572  {
    14661573    TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
     
    18381945
    18391946#if H_3D
     1947#if HHI_VPS_3D_EXTENSION_I3_J0107
     1948Void TDecCavlc::parseVPS3dExtension( TComVPS* pcVPS )
     1949#else
    18401950Void TDecCavlc::parseVPSExtension2( TComVPS* pcVPS )
     1951#endif
    18411952{
    18421953  UInt uiCode;
     1954
     1955#if !HHI_TOOL_PARAMETERS_I2_J0107
    18431956  for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    18441957  {
     
    19032016            READ_FLAG( uiCode, "depth_inter_SDC_flag" );              pcVPS->setInterSDCFlag( i, uiCode ? true : false );
    19042017#endif
    1905       }
    1906     }
    1907   }
     2018#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     2019        READ_FLAG( uiCode, "single_depth_mode_flag[i]"); pcVPS->setSingleDepthModeFlag( i, uiCode == 1 ? true : false );       
     2020#endif
     2021      }
     2022    }
     2023  }
     2024#endif
    19082025
    19092026  UInt uiCamParPrecision = 0;
     
    19122029
    19132030  READ_UVLC( uiCamParPrecision, "cp_precision" );
     2031#if HHI_VIEW_ID_LIST_I5_J0107
     2032  for (Int n = 1; n < pcVPS->getNumViews(); n++)
     2033  {
     2034    Int viewIndex = pcVPS->getViewOIdxList( n );
     2035#else
    19142036  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
    19152037  {
     2038#endif
    19162039    pcVPS->setCamParPresent         ( viewIndex, false );
    19172040    pcVPS->setHasCamParInSliceHeader( viewIndex, false );
     
    19222045      if ( !bCamParSlice )
    19232046      {
    1924         for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )
    1925         {
     2047#if HHI_VIEW_ID_LIST_I5_J0107
     2048        for( UInt m = 0; m < n; n++ )
     2049        {
     2050          Int uiBaseIndex = pcVPS->getViewOIdxList ( m );
    19262051          Int iCode;
    19272052          READ_SVLC( iCode, "vps_cp_scale" );                m_aaiTempScale  [ uiBaseIndex ][ viewIndex ]   = iCode;
     
    19322057      }
    19332058      pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );
     2059#else
     2060        for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )
     2061        {
     2062          Int iCode;
     2063          READ_SVLC( iCode, "vps_cp_scale" );                m_aaiTempScale  [ uiBaseIndex ][ viewIndex ]   = iCode;
     2064          READ_SVLC( iCode, "vps_cp_off" );                  m_aaiTempOffset [ uiBaseIndex ][ viewIndex ]   = iCode;
     2065          READ_SVLC( iCode, "vps_cp_inv_scale_plus_scale" ); m_aaiTempScale  [ viewIndex   ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ viewIndex ];
     2066          READ_SVLC( iCode, "vps_cp_inv_off_plus_off" );     m_aaiTempOffset [ viewIndex   ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ viewIndex ];
     2067        }
     2068      }
     2069      pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );
     2070#endif
    19342071    }
    19352072  }
     
    19942131#endif
    19952132  rpcSlice->setSPS(sps);
     2133#if HHI_TOOL_PARAMETERS_I2_J0107
     2134#if H_3D
     2135  rpcSlice->init3dToolParameters();
     2136#endif
     2137#endif
    19962138  rpcSlice->setPPS(pps);
    19972139  if( pps->getDependentSliceSegmentsEnabledFlag() && ( !firstSliceSegmentInPic ))
     
    20652207    rpcSlice->checkCrossLayerBlaFlag( );
    20662208
    2067 #if !H_MV_HLS7_GEN
     2209#if !H_MV_HLS7_GEN && !H_MV_HLS_FIX
    20682210    if ( rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb )
    20692211    {
     
    23502492    Bool interLayerPredLayerIdcPresentFlag = false;
    23512493    Int layerId       = rpcSlice->getLayerId();
     2494#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2495#if H_3D
     2496    if( rpcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumRefListLayers( layerId ) > 0 )
     2497#else
    23522498    if( rpcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2499#endif
     2500#else
     2501    if( rpcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2502#endif
    23532503    {   
    23542504      READ_FLAG( uiCode, "inter_layer_pred_enabled_flag" ); rpcSlice->setInterLayerPredEnabledFlag( uiCode == 1 );
     2505#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2506#if H_3D
     2507      if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumRefListLayers( layerId ) > 1 )
     2508#else
    23552509      if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     2510#endif
     2511#else
     2512      if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     2513#endif
    23562514      {           
    23572515        if( !vps->getMaxOneActiveRefLayerFlag()) 
     
    23592517          READ_CODE( rpcSlice->getNumInterLayerRefPicsMinus1Len( ), uiCode, "num_inter_layer_ref_pics_minus1" ); rpcSlice->setNumInterLayerRefPicsMinus1( uiCode );
    23602518        }
     2519#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2520#if H_3D
     2521        if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumRefListLayers( layerId ) )
     2522#else
    23612523        if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     2524#endif
     2525#else
     2526        if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     2527#endif
    23622528        {
    23632529          interLayerPredLayerIdcPresentFlag = true;
     
    25452711    }
    25462712#if H_3D_IC
     2713#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2714    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 )
     2715#else
    25472716    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2717#endif
    25482718    {
    25492719      UInt uiCodeTmp = 0;
     
    25592729    }
    25602730#endif
     2731#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    25612732#if H_3D_SINGLE_DEPTH
    25622733    if(rpcSlice->getIsDepth())
     
    25672738    }
    25682739#endif
     2740#endif
    25692741    if (!rpcSlice->isIntra())
    25702742    {
    25712743      READ_UVLC( uiCode, "five_minus_max_num_merge_cand");
    25722744#if H_3D_IV_MERGE
     2745#if HHI_TOOL_PARAMETERS_I2_J0107
     2746#if ALGIN_J0107_J0059
     2747      rpcSlice->setMaxNumMergeCand(( ( rpcSlice->getMpiFlag() || rpcSlice->getIvMvPredFlag() || rpcSlice->getViewSynthesisPredFlag() ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     2748#else
     2749      rpcSlice->setMaxNumMergeCand(( ( rpcSlice->getMpiFlag() || rpcSlice->getIvMvPredFlag() ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     2750#endif
     2751#else
    25732752      if(rpcSlice->getIsDepth())
    25742753      {
     
    25802759      {
    25812760        Bool ivMvPredFlag = rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ;
     2761#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
     2762        Bool vspFlag = rpcSlice->getVPS()->getViewSynthesisPredFlag( rpcSlice->getLayerIdInVps() ) ;
     2763        rpcSlice->setMaxNumMergeCand(( ivMvPredFlag || vspFlag? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
     2764#else
    25822765        rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode);
    2583       }
    2584 
     2766#endif
     2767      }
     2768#endif
    25852769#else
    25862770      rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode);
     
    27422926
    27432927    // Derive the value of PocMs8bValRequiredFlag
     2928#if !H_MV_HLS_FIX
    27442929    rpcSlice->setPocMsbValRequiredFlag( rpcSlice->getCraPicFlag() || rpcSlice->getBlaPicFlag()
    27452930                                          /* || TODO related to vps_poc_lsb_aligned_flag */
    27462931                                          );
    2747 
     2932#endif
     2933
     2934#if H_MV_HLS_FIX
     2935    if( !rpcSlice->getPocMsbValRequiredFlag() && rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() )
     2936#else
    27482937    if( !rpcSlice->getPocMsbValRequiredFlag() /* TODO &&  rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2938#endif
    27492939    {
    27502940      READ_FLAG( uiCode, "poc_msb_val_present_flag" ); rpcSlice->setPocMsbValPresentFlag( uiCode == 1 );
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.h

    r1084 r1124  
    9090#endif
    9191#if H_3D
     92#if HHI_VPS_3D_EXTENSION_I3_J0107
     93  Void  parseVPS3dExtension  ( TComVPS* pcVPS );
     94#else
    9295  Void  parseVPSExtension2  ( TComVPS* pcVPS );
     96#endif
     97#if HHI_TOOL_PARAMETERS_I2_J0107
     98  Void  parseSPS3dExtension ( TComSPS* pcSPS );
     99  Void  parseSPS            ( TComSPS* pcSPS );
     100#else
    93101  Void  parseSPSExtension2  ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag );
    94102  Void  parseSPS            ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag );
     103#endif 
    95104#else
    96105  Void  parseSPS            ( TComSPS* pcSPS );
  • trunk/source/Lib/TLibDecoder/TDecCu.cpp

    r1084 r1124  
    291291  DTRACE_CU_S("=========== coding_unit ===========\n")
    292292#endif
    293 
    294 
     293#if !LGE_DDD_REMOVAL_J0042_J0030
    295294#if H_3D_DDD
    296295      pcCU->setUseDDD( false, uiAbsPartIdx, uiDepth );
     296#endif
    297297#endif
    298298
     
    315315  {
    316316#if H_3D_ARP && H_3D_IV_MERGE
     317#if HHI_TOOL_PARAMETERS_I2_J0107
     318    if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() )
     319#else
    317320    if( pcCU->getSlice()->getVPS()->getUseAdvRP( pcCU->getSlice()->getLayerId() ) || pcCU->getSlice()->getVPS()->getIvMvPredFlag( pcCU->getSlice()->getLayerId() ))
     321#endif
    318322#else
    319323#if H_3D_ARP
     
    345349#endif
    346350#if H_3D_NBDV_REF
     351#if HHI_TOOL_PARAMETERS_I2_J0107
     352      if( pcCU->getSlice()->getDepthBasedBlkPartFlag() )  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
     353#else
    347354      if(pcCU->getSlice()->getVPS()->getDepthRefinementFlag( pcCU->getSlice()->getLayerIdInVps() ))  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
     355#endif
    348356      {
    349357        DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);
     
    452460#endif
    453461    pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    454 
     462#if !LGE_DDD_REMOVAL_J0042_J0030
    455463#if H_3D_DDD
    456464    if( uiMergeIndex == m_ppcCU[uiDepth]->getUseDDDCandIdx() )
     
    460468        pcCU->setDDDepthSubParts( m_ppcCU[uiDepth]->getDDTmpDepth(),uiAbsPartIdx, 0, uiDepth );
    461469    }
     470#endif
    462471#endif
    463472
     
    735744  //construction of depth candidates
    736745  Pel testDepth;
     746#if SINGLE_DEPTH_SIMP_J0115
     747  Pel DepthNeighbours[2];
     748#else
    737749  Pel DepthNeighbours[5];
     750#endif
    738751  Int index =0;
     752#if SINGLE_DEPTH_SIMP_J0115
     753  for( Int i = 0; (i < 2) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     754#else
    739755  for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     756#endif
    740757  {
    741758    if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i))
     
    745762    DepthNeighbours[index]=testDepth;
    746763    index++;
     764#if !SINGLE_DEPTH_SIMP_J0115
    747765    for(Int j=0;j<index-1;j++)
    748766    {
     
    753771     }
    754772    }
     773#endif
    755774  }
    756775
     
    10631082    }
    10641083  }
    1065  
     1084
    10661085  TextType  eText             = ( uiChromaId > 0 ? TEXT_CHROMA_V : TEXT_CHROMA_U );
    10671086  UInt      uiWidth           = pcCU     ->getWidth   ( 0 ) >> ( uiTrDepth + 1 );
     
    10711090  Pel*      piPred            = ( uiChromaId > 0 ? pcPredYuv->getCrAddr( uiAbsPartIdx ) : pcPredYuv->getCbAddr( uiAbsPartIdx ) );
    10721091  Pel*      piResi            = ( uiChromaId > 0 ? pcResiYuv->getCrAddr( uiAbsPartIdx ) : pcResiYuv->getCbAddr( uiAbsPartIdx ) );
    1073  
     1092
    10741093  UInt      uiNumCoeffInc     = ( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() * pcCU->getSlice()->getSPS()->getMaxCUHeight() ) >> ( pcCU->getSlice()->getSPS()->getMaxCUDepth() << 1 ) ) >> 2;
    10751094  TCoeff*   pcCoeff           = ( uiChromaId > 0 ? pcCU->getCoeffCr() : pcCU->getCoeffCb() ) + ( uiNumCoeffInc * uiAbsPartIdx );
    1076  
     1095
    10771096  UInt      uiChromaPredMode  = pcCU->getChromaIntraDir( 0 );
    1078  
     1097
    10791098  UInt      uiZOrder          = pcCU->getZorderIdxInCU() + uiAbsPartIdx;
    10801099  Pel*      piRecIPred        = ( uiChromaId > 0 ? pcCU->getPic()->getPicYuvRec()->getCrAddr( pcCU->getAddr(), uiZOrder ) : pcCU->getPic()->getPicYuvRec()->getCbAddr( pcCU->getAddr(), uiZOrder ) );
     
    10871106
    10881107  pcCU->getPattern()->initAdiPatternChroma( pcCU, uiAbsPartIdx, uiTrDepth,
    1089                                            m_pcPrediction->getPredicBuf       (),
    1090                                            m_pcPrediction->getPredicBufWidth  (),
    1091                                            m_pcPrediction->getPredicBufHeight (),
    1092                                            bAboveAvail, bLeftAvail );
     1108    m_pcPrediction->getPredicBuf       (),
     1109    m_pcPrediction->getPredicBufWidth  (),
     1110    m_pcPrediction->getPredicBufHeight (),
     1111    bAboveAvail, bLeftAvail );
    10931112  Int* pPatChroma   = ( uiChromaId > 0 ? pcCU->getPattern()->getAdiCrBuf( uiWidth, uiHeight, m_pcPrediction->getPredicBuf() ) : pcCU->getPattern()->getAdiCbBuf( uiWidth, uiHeight, m_pcPrediction->getPredicBuf() ) );
    1094  
     1113
    10951114  //===== get prediction signal =====
    10961115  {
     
    11071126  if ( pcCU->getCbf( uiAbsPartIdx, eText, uiTrDepth ) )
    11081127  {
    1109   //===== inverse transform =====
    1110   Int curChromaQpOffset;
    1111   if(eText == TEXT_CHROMA_U)
    1112   {
    1113     curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb();
    1114   }
    1115   else
    1116   {
    1117     curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
    1118   }
    1119   m_pcTrQuant->setQPforQuant  ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
    1120 
    1121   Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)eText];
     1128    //===== inverse transform =====
     1129    Int curChromaQpOffset;
     1130    if(eText == TEXT_CHROMA_U)
     1131    {
     1132      curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb();
     1133    }
     1134    else
     1135    {
     1136      curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
     1137    }
     1138    m_pcTrQuant->setQPforQuant  ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     1139
     1140    Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)eText];
    11221141    assert(scalingListType < SCALING_LIST_NUM);
    1123   m_pcTrQuant->invtransformNxN( pcCU->getCUTransquantBypass(uiAbsPartIdx), eText, REG_DCT, piResi, uiStride, pcCoeff, uiWidth, uiHeight, scalingListType, useTransformSkipChroma );
    1124 
    1125   //===== reconstruction =====
    1126   Pel* pPred      = piPred;
    1127   Pel* pResi      = piResi;
    1128   Pel* pReco      = piReco;
    1129   Pel* pRecIPred  = piRecIPred;
    1130   for( UInt uiY = 0; uiY < uiHeight; uiY++ )
    1131   {
    1132     for( UInt uiX = 0; uiX < uiWidth; uiX++ )
    1133     {
    1134       pReco    [ uiX ] = ClipC( pPred[ uiX ] + pResi[ uiX ] );
    1135       pRecIPred[ uiX ] = pReco[ uiX ];
    1136     }
    1137     pPred     += uiStride;
    1138     pResi     += uiStride;
    1139     pReco     += uiStride;
    1140     pRecIPred += uiRecIPredStride;
    1141   }
    1142 }
     1142    m_pcTrQuant->invtransformNxN( pcCU->getCUTransquantBypass(uiAbsPartIdx), eText, REG_DCT, piResi, uiStride, pcCoeff, uiWidth, uiHeight, scalingListType, useTransformSkipChroma );
     1143
     1144    //===== reconstruction =====
     1145    Pel* pPred      = piPred;
     1146    Pel* pResi      = piResi;
     1147    Pel* pReco      = piReco;
     1148    Pel* pRecIPred  = piRecIPred;
     1149    for( UInt uiY = 0; uiY < uiHeight; uiY++ )
     1150    {
     1151      for( UInt uiX = 0; uiX < uiWidth; uiX++ )
     1152      {
     1153        pReco    [ uiX ] = ClipC( pPred[ uiX ] + pResi[ uiX ] );
     1154        pRecIPred[ uiX ] = pReco[ uiX ];
     1155      }
     1156      pPred     += uiStride;
     1157      pResi     += uiStride;
     1158      pReco     += uiStride;
     1159      pRecIPred += uiRecIPredStride;
     1160    }
     1161  }
    11431162  else
    11441163  {
  • trunk/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1084 r1124  
    5555Void TDecEntropy::decodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    5656{
     57  if( !pcCU->getSlice()->getIntraSingleFlag() )
     58  {
     59    return;
     60  } 
     61#if ALIGN_J0060_J0107
     62#else
    5763  if ( !pcCU->getSlice()->getIsDepth() )
    5864  {
    5965    return;
    6066  }
     67#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     68  if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps()))
     69  {
     70     return;
     71  }
     72#else
    6173  if(!pcCU->getSlice()->getApplySingleDepthMode())
    6274  {
    6375     return;
    6476  }
     77#endif
     78#endif
     79
    6580  m_pcEntropyDecoderIf->parseSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );
    6681}
     
    152167 
    153168#if H_3D_DBBP
     169#if SEC_DBBP_VIEW_REF_CHECK_J0037
     170  #if HHI_TOOL_PARAMETERS_I2_J0107
     171if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     172#else
     173if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     174#endif
     175#else
    154176  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
     177#endif
    155178  {
    156179    decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth);
     
    337360      }
    338361      pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    339 
     362#if !LGE_DDD_REMOVAL_J0042_J0030
    340363#if H_3D_DDD
    341364      if( uiMergeIndex == pcSubCU->getUseDDDCandIdx() )
     
    349372          pcCU->setUseDDD( false, uiSubPartIdx, uiPartIdx, uiDepth );
    350373      }
     374#endif
    351375#endif
    352376
     
    828852  pcCU->setSDCFlagSubParts( false, uiAbsPartIdx, uiDepth );
    829853
     854#if HHI_TOOL_PARAMETERS_I2_J0107
     855  if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getInterSdcFlag() ) ||
     856    ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getIntraSdcWedgeFlag() ) )
     857#else
    830858  if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) ||
    831859    ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getVpsDepthModesFlag( pcCU->getSlice()->getLayerIdInVps() ) ) )
     860#endif
    832861  {
    833862    return;
  • trunk/source/Lib/TLibDecoder/TDecEntropy.h

    r1084 r1124  
    6666
    6767  virtual Void  parseVPS                  ( TComVPS* pcVPS )                       = 0;
     68#if HHI_TOOL_PARAMETERS_I2_J0107
     69  virtual Void  parseSPS                  ( TComSPS* pcSPS )                                      = 0;
     70#else
    6871#if H_3D
    6972  virtual Void  parseSPS                  ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag  )                    = 0;
    7073#else
    7174  virtual Void  parseSPS                  ( TComSPS* pcSPS )                                      = 0;
     75#endif
    7276#endif
    7377#if H_3D
     
    157161  Void    resetEntropy                ( TComSlice* p)           { m_pcEntropyDecoderIf->resetEntropy(p);                    }
    158162  Void    decodeVPS                   ( TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parseVPS(pcVPS); }
     163#if HHI_TOOL_PARAMETERS_I2_J0107
     164  Void    decodeSPS                   ( TComSPS* pcSPS     )    { m_pcEntropyDecoderIf->parseSPS(pcSPS);                    }
     165#else
    159166#if H_3D
    160167  Void    decodeSPS                   ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )    { m_pcEntropyDecoderIf->parseSPS(pcSPS, viewIndex, depthFlag );                    }
    161168#else
    162169  Void    decodeSPS                   ( TComSPS* pcSPS     )    { m_pcEntropyDecoderIf->parseSPS(pcSPS);                    }
     170#endif
    163171#endif
    164172#if H_3D
  • trunk/source/Lib/TLibDecoder/TDecSbac.cpp

    r1084 r1124  
    702702  Bool bParseSplitFlag    = true;
    703703
     704 
     705#if HHI_TOOL_PARAMETERS_I2_J0107
     706  Bool    bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag();
     707#else
    704708  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    705709  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
     710#endif
    706711  TComPic *pcTexture      = pcCU->getSlice()->getTexturePic();
    707712  Bool bDepthMapDetect    = (pcTexture != NULL);
     
    756761#if H_3D_QTLPC
    757762  Bool bParsePartSize    = true;
     763 
     764#if HHI_TOOL_PARAMETERS_I2_J0107
     765  Bool    bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag();
     766#else
    758767  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    759768  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
     769#endif
    760770  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    761771  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    982992  {
    983993#if H_3D_DIM
     994#if HHI_TOOL_PARAMETERS_I2_J0107
     995    if( pcCU->getSlice()->getIntraSdcWedgeFlag() || pcCU->getSlice()->getIntraContourFlag() )
     996#else
    984997    if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() )
     998#endif
    985999    {
    9861000      parseIntraDepth( pcCU, absPartIdx+partOffset*j, depth );
     
    10961110      UInt uiTabIdx = 0;
    10971111      xParseDmm1WedgeIdx( uiTabIdx, g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
     1112
     1113#if MTK_J0033
     1114      assert( uiTabIdx < g_dmmWedgeLists[ g_aucConvertToBit[ pcCU->getDMM1BasePatternWidth( pcCU->getWidth( absPartIdx ) )]].size());
     1115#endif
     1116
    10981117      pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth );
    10991118    } break;
     
    11241143  if( uiIsDimMode )
    11251144  {
     1145#if HHI_TOOL_PARAMETERS_I2_J0107
     1146    if( pcCU->getSlice()->getIntraSdcWedgeFlag() && pcCU->getSlice()->getIntraContourFlag() )
     1147#else
    11261148    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag() )
     1149#endif
    11271150    {
    11281151      m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
     
    11361159      }
    11371160    }
     1161#if HHI_TOOL_PARAMETERS_I2_J0107
     1162    else if ( pcCU->getSlice()->getIntraSdcWedgeFlag() )
     1163#else
    11381164    else if ( pcCU->getSlice()->getVpsDepthModesFlag() )
     1165#endif
    11391166    {
    11401167      pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
    11411168    }
     1169#if HHI_TOOL_PARAMETERS_I2_J0107
     1170    else if( pcCU->getSlice()->getIntraContourFlag() )
     1171#else
    11421172    else if( pcCU->getSlice()->getIVPFlag() )
     1173#endif
    11431174    {
    11441175      pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
     
    21202151Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
    21212152{
     2153#if HHI_TOOL_PARAMETERS_I2_J0107
     2154  AOF( pcCU->getSlice()->getDepthBasedBlkPartFlag() );
     2155#else
    21222156  AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
     2157#endif
    21232158  AOF( !pcCU->getSlice()->getIsDepth() );
    21242159 
  • trunk/source/Lib/TLibDecoder/TDecSbac.h

    r1084 r1124  
    7676  Void  setBitstream              ( TComInputBitstream* p  ) { m_pcBitstream = p; m_pcTDecBinIf->init( p ); }
    7777  Void  parseVPS                  ( TComVPS* /*pcVPS*/ ) {}
     78#if HHI_TOOL_PARAMETERS_I2_J0107
     79  Void  parseSPS                  ( TComSPS* /*pcSPS*/ ) {}
     80#else
    7881#if H_3D
    7982  Void  parseSPS                  ( TComSPS* /*pcSPS*/ , Int /*viewIndex*/, Bool /*depthFlag*/ ) {}
    8083#else
    8184  Void  parseSPS                  ( TComSPS* /*pcSPS*/ ) {}
     85#endif
    8286#endif
    8387#if H_3D
  • trunk/source/Lib/TLibDecoder/TDecSlice.cpp

    r976 r1124  
    280280      iNumSubstreamsPerTile = 1;
    281281    }
     282#if LGE_DEFAULT_DV_J0046 && !SEC_ARP_VIEW_REF_CHECK_J0037 && !SEC_DBBP_VIEW_REF_CHECK_J0037
     283    pcSlice->setDefaultRefViewIdx( -1 );
     284    pcSlice->setDefaultRefViewIdxAvailableFlag( false );
     285
     286    Int valid = 0;
     287    Int viewIndex = 0;
     288    for( UInt uiBId = 0; uiBId < pcSlice->getViewIndex() && valid==0; uiBId++ )
     289    {
     290        UInt        uiBaseId    = uiBId;
     291        TComPic*    pcBasePic   = pcSlice->getIvPic( false, uiBaseId );
     292        for( Int iRefListId = 0; ( iRefListId < (pcSlice->isInterB()? 2:1) ) && !pcSlice->isIntra() && valid==0; iRefListId++ )
     293        {
     294            RefPicList  eRefPicListTest = RefPicList( iRefListId );
     295            Int         iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;
     296            for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )
     297            {
     298                if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()
     299                    && pcBasePic->getViewIndex() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewIndex())
     300                {
     301                    valid=1;
     302                    viewIndex = uiBaseId;
     303                    break;
     304                }
     305            }
     306        }
     307    }
     308    if( valid )
     309    {
     310        pcSlice->setDefaultRefViewIdx( viewIndex );
     311        pcSlice->setDefaultRefViewIdxAvailableFlag( true );   
     312    }
     313#endif
    282314
    283315    if ( (iCUAddr == rpcPic->getPicSym()->getTComTile(rpcPic->getPicSym()->getTileIdxMap(iCUAddr))->getFirstCUAddr()) && // 1st in tile.
  • trunk/source/Lib/TLibDecoder/TDecTop.cpp

    r1084 r1124  
    726726
    727727#endif
     728#if HHI_TOOL_PARAMETERS_I2_J0107
     729#if H_3D
     730  m_apcSlicePilot->init3dToolParameters();
     731#endif
     732#endif
    728733  pps->setSPS(sps);
    729734  pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1);
     
    10821087    pcSlice->getTempRefPicLists( m_cListPic, m_refPicSetInterLayer0, m_refPicSetInterLayer1, tempRefPicLists, usedAsLongTerm, numPocTotalCurr);
    10831088    pcSlice->setRefPicList     ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true );
     1089
     1090#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     1091    pcSlice->setDefaultRefView();
     1092#endif
     1093
    10841094#if H_3D_ARP
    10851095    pcSlice->setARPStepNum(m_ivPicLists);
     
    12341244  TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 );
    12351245  assert( vps != 0 );
     1246#if HHI_TOOL_PARAMETERS_I2_J0107
     1247  m_cEntropyDecoder.decodeSPS( sps );
     1248#else
    12361249  m_cEntropyDecoder.decodeSPS( sps, vps->getViewIndex( m_layerId ), ( vps->getDepthId( m_layerId ) == 1 ) );
     1250#endif
    12371251#else
    12381252  m_cEntropyDecoder.decodeSPS( sps );
  • trunk/source/Lib/TLibDecoder/TDecTop.h

    r976 r1124  
    8383#endif
    8484
     85#if !LGE_DDD_REMOVAL_J0042_J0030
    8586#if H_3D_DDD
    8687  Int getCodedScale( Int iBaseView, Int iCureView){ return m_aaiCodedScale[ iBaseView ][ iCureView ];}
    8788  Int getCodedOffset( Int iBaseView, Int iCureView){ return m_aaiCodedOffset[ iBaseView ][ iCureView ];}
    8889  UInt getCamParsCodedPrecision(){ return m_vps->getCamParPrecision(); }
     90#endif
    8991#endif
    9092
  • trunk/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1084 r1124  
    638638}
    639639
     640#if HHI_TOOL_PARAMETERS_I2_J0107
     641Void TEncCavlc::codeSPS( TComSPS* pcSPS )
     642#else
    640643#if H_3D
    641644Void TEncCavlc::codeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    642645#else
    643646Void TEncCavlc::codeSPS( TComSPS* pcSPS )
     647#endif
    644648#endif
    645649{
     
    842846  if ( pcSPS->getSps3dExtensionFlag() )
    843847  {
     848#if HHI_TOOL_PARAMETERS_I2_J0107
     849    codeSPS3dExtension( pcSPS );
     850#else
    844851    codeSPSExtension2( pcSPS, viewIndex, depthFlag  );
     852#endif
    845853  }
    846854
     
    863871  WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" );
    864872  WRITE_UVLC( 0, "num_ref_loc_offsets" );
     873#if H_MV_HLS_FIX
     874  WRITE_FLAG( 0 , "colour_mapping_enabled_flag" );
     875#endif
     876
    865877}
    866878
     
    868880
    869881#if H_3D
     882#if HHI_TOOL_PARAMETERS_I2_J0107
     883Void TEncCavlc::codeSPS3dExtension( TComSPS* pcSPS )
     884{
     885  TComSps3dExtension* sps3dExt = pcSPS->getSps3dExtension();
     886  for( Int d = 0; d  <=  1; d++ )
     887  {
     888    WRITE_FLAG( sps3dExt->getIvMvPredFlag( d ) ? 1 : 0 , "iv_mv_pred_flag" );
     889    WRITE_FLAG( sps3dExt->getIvMvScalingFlag( d ) ? 1 : 0 , "iv_mv_scaling_flag" );
     890    if( d  ==  0 )
     891    {
     892      WRITE_UVLC( sps3dExt->getLog2SubPbSizeMinus3( d ), "log2_sub_pb_size_minus3" );
     893      WRITE_FLAG( sps3dExt->getIvResPredFlag( d ) ? 1 : 0 , "iv_res_pred_flag" );
     894      WRITE_FLAG( sps3dExt->getDepthRefinementFlag( d ) ? 1 : 0 , "depth_refinement_flag" );
     895      WRITE_FLAG( sps3dExt->getViewSynthesisPredFlag( d ) ? 1 : 0 , "view_synthesis_pred_flag" );
     896      WRITE_FLAG( sps3dExt->getDepthBasedBlkPartFlag( d ) ? 1 : 0 , "depth_based_blk_part_flag" );
     897    }
     898    else
     899    {
     900      WRITE_FLAG( sps3dExt->getMpiFlag( d ) ? 1 : 0 , "mpi_flag" );
     901      WRITE_UVLC( sps3dExt->getLog2MpiSubPbSizeMinus3( d ), "log2_mpi_sub_pb_size_minus3" );
     902      WRITE_FLAG( sps3dExt->getIntraContourFlag( d ) ? 1 : 0 , "intra_contour_flag" );
     903      WRITE_FLAG( sps3dExt->getIntraSdcWedgeFlag( d ) ? 1 : 0 , "intra_sdc_wedge_flag" );
     904      WRITE_FLAG( sps3dExt->getQtPredFlag( d ) ? 1 : 0 , "qt_pred_flag" );
     905      WRITE_FLAG( sps3dExt->getInterSdcFlag( d ) ? 1 : 0 , "inter_sdc_flag" );
     906      WRITE_FLAG( sps3dExt->getIntraSingleFlag( d ) ? 1 : 0 , "intra_single_flag" );
     907    }
     908  }
     909}
     910#else
    870911Void TEncCavlc::codeSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    871912{
    872913
    873914}
     915#endif
    874916#endif
    875917
     
    9691011  codeVPSExtension( pcVPS );                           
    9701012#if H_3D
    971   WRITE_FLAG( 1,                     "vps_extension2_flag" );
     1013  WRITE_FLAG( 1,                     "vps_extension2_flag" ); 
     1014#if HHI_VPS_3D_EXTENSION_I3_J0107
     1015  WRITE_FLAG( 1,                     "vps_3d_extension_flag" );
     1016  m_pcBitIf->writeAlignOne();     
     1017  codeVPS3dExtension( pcVPS );
     1018#else
    9721019  m_pcBitIf->writeAlignOne();     
    9731020  codeVPSExtension2( pcVPS );
     1021#endif
    9741022  WRITE_FLAG( 0,                     "vps_extension3_flag" );
    9751023#else
     
    11411189  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    11421190  {
     1191#if H_MV_HLS_FIX
     1192    if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) )   
     1193#else
    11431194    if( i >= pcVPS->getNumLayerSets( ) )   
     1195#endif
    11441196    {     
    11451197      WRITE_CODE( pcVPS->getLayerSetIdxForOlsMinus1( i ), pcVPS->getLayerSetIdxForOlsMinus1Len( i ) ,      "layer_set_idx_for_ols_minus1[i]" );
     
    12111263
    12121264  WRITE_FLAG( pcVPS->getMaxOneActiveRefLayerFlag( ) ? 1 : 0, "max_one_active_ref_layer_flag" );
    1213 #if H_MV_HLS7_GEN
     1265#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    12141266  WRITE_FLAG( pcVPS->getVpsPocLsbAlignedFlag( ) ? 1 : 0 , "vps_poc_lsb_aligned_flag" );
    12151267#endif
     
    12611313    codeVPSVUI( pcVPS );
    12621314  }     
     1315#if H_MV_HLS_FIX
     1316  else
     1317#endif
    12631318  {
    12641319    TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
     
    15751630
    15761631#if H_3D
     1632#if HHI_VPS_3D_EXTENSION_I3_J0107
     1633Void TEncCavlc::codeVPS3dExtension( TComVPS* pcVPS )
     1634#else
    15771635Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS )
     1636#endif
    15781637{
     1638#if !HHI_TOOL_PARAMETERS_I2_J0107
    15791639  for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ )
    15801640  {
     
    16191679        WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" );
    16201680#endif
     1681#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     1682        WRITE_FLAG( pcVPS->getSingleDepthModeFlag( i ) ? 1 : 0, "single_depth_mode_flag" );
     1683#endif
    16211684      }
    16221685    } 
    16231686  }
     1687#endif
    16241688  WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" );
    16251689  for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)
     
    17251789    }
    17261790    pcSlice->checkCrossLayerBlaFlag( );
    1727 #if !H_MV_HLS7_GEN
     1791#if !H_MV_HLS7_GEN && !H_MV_HLS_FIX
    17281792    if ( pcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb )
    17291793    {
     
    18871951    Bool interLayerPredLayerIdcPresentFlag = false;
    18881952    Int layerId = pcSlice->getLayerId();
     1953#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1954#if H_3D
     1955    if( pcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumRefListLayers( layerId ) > 0 )
     1956#else
    18891957    if( pcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     1958#endif
     1959#else
     1960    if( pcSlice->getLayerId() > 0 && !vps->getAllRefLayersActiveFlag() && vps->getNumDirectRefLayers( layerId ) > 0 )
     1961#endif
    18901962    {   
    18911963      WRITE_FLAG( pcSlice->getInterLayerPredEnabledFlag( ) ? 1 : 0 , "inter_layer_pred_enabled_flag" );
     1964#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1965#if H_3D
     1966      if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumRefListLayers( layerId ) > 1 )
     1967#else
    18921968      if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     1969#endif
     1970#else
     1971      if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 )
     1972#endif
    18931973      {           
    18941974        if( !vps->getMaxOneActiveRefLayerFlag()) 
     
    18961976          WRITE_CODE( pcSlice->getNumInterLayerRefPicsMinus1( ), pcSlice->getNumInterLayerRefPicsMinus1Len( ), "num_inter_layer_ref_pics_minus1" );
    18971977        }
     1978#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     1979#if H_3D
     1980        if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumRefListLayers( layerId ) )
     1981#else
    18981982        if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     1983#endif
     1984#else
     1985        if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) )
     1986#endif
    18991987        {       
    19001988          interLayerPredLayerIdcPresentFlag = true;
     
    20372125    }
    20382126#if H_3D_IC
     2127#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     2128    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 )
     2129#else
    20392130    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
     2131#endif
    20402132    {
    20412133      WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );
     
    20462138    }
    20472139#endif
     2140#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    20482141#if H_3D_SINGLE_DEPTH
    20492142    if(pcSlice->getIsDepth())
     
    20522145    }
    20532146#endif
     2147#endif
    20542148#if H_3D_IV_MERGE
    20552149    assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS_MEM);
     
    20602154    {
    20612155#if H_3D_IV_MERGE
     2156#if HHI_TOOL_PARAMETERS_I2_J0107     
     2157#if ALGIN_J0107_J0059
     2158      WRITE_UVLC( ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) || pcSlice->getViewSynthesisPredFlag( ) ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     2159#else
     2160      WRITE_UVLC( ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     2161#endif
     2162#else
    20622163      if(pcSlice->getIsDepth())
    20632164      {
     
    20692170      {
    20702171        Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
     2172#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
     2173        Bool vspFlag = pcSlice->getVPS()->getViewSynthesisPredFlag( pcSlice->getLayerIdInVps() ) ;
     2174        WRITE_UVLC( ( ivMvPredFlag || vspFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     2175#else
    20712176        WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
    2072       }
     2177#endif
     2178      }
     2179#endif
    20732180#else
    20742181      WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
     
    21362243  {
    21372244    // Derive the value of PocMsbValRequiredFlag
     2245#if !H_MV_HLS_FIX
    21382246    pcSlice->setPocMsbValRequiredFlag( pcSlice->getCraPicFlag() || pcSlice->getBlaPicFlag()
    21392247                                          /* || related to vps_poc_lsb_aligned_flag */
    21402248                                          );
     2249#endif
    21412250
    21422251    // Determine value of SH extension length.
     
    21562265
    21572266
     2267#if H_MV_HLS_FIX
     2268    if( !pcSlice->getPocMsbValRequiredFlag() &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag() )
     2269#else
    21582270    if( !pcSlice->getPocMsbValRequiredFlag() /* TODO &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2271#endif
    21592272    {
    21602273      shExtnLengthInBit++;    // For poc_msb_val_present_flag
     
    22192332    pcSlice->checkPocLsbVal();
    22202333
     2334#if H_MV_HLS_FIX
     2335    if( !pcSlice->getPocMsbValRequiredFlag() &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag()  )
     2336#else
    22212337    if( !pcSlice->getPocMsbValRequiredFlag() /* TODO &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2338#endif
    22222339    {
    22232340      WRITE_FLAG( pcSlice->getPocMsbValPresentFlag( ) ? 1 : 0 , "poc_msb_val_present_flag" );
  • trunk/source/Lib/TLibEncoder/TEncCavlc.h

    r1084 r1124  
    9999#endif
    100100#if H_3D
     101#if HHI_VPS_3D_EXTENSION_I3_J0107
     102  Void  codeVPS3dExtension       ( TComVPS* pcVPS );
     103#else
    101104  Void  codeVPSExtension2       ( TComVPS* pcVPS );
     105#endif
     106#if HHI_TOOL_PARAMETERS_I2_J0107
     107  Void  codeSPS3dExtension      ( TComSPS* pcSPS );
     108  Void  codeSPS                 ( TComSPS* pcSPS );
     109#else
    102110  Void  codeSPSExtension2       ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag  );
    103111  Void  codeSPS                 ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag );
     112#endif
    104113#else
    105114  Void  codeSPS                 ( TComSPS* pcSPS );
  • trunk/source/Lib/TLibEncoder/TEncCfg.h

    r1084 r1124  
    392392  Double    m_dDispCoeff;
    393393#endif
     394#if !HHI_TOOL_PARAMETERS_I2_J0107
    394395#if H_3D_ARP
    395396  UInt      m_uiUseAdvResPred;
     
    400401  Int      m_iSubPUMPILog2Size;
    401402#endif
     403#endif
    402404#if H_3D_IC
    403405  Bool      m_bUseIC;
    404406  Bool      m_bUseICLowLatencyEnc;
    405407#endif
     408#if !HHI_TOOL_PARAMETERS_I2_J0107
    406409#if H_3D_INTER_SDC
    407410  bool      m_bInterSDC;
     
    409412#if H_3D_DBBP
    410413  Bool      m_bUseDBBP;
     414#endif
    411415#endif
    412416  //====== Depth Intra Modes ======
    413417#if H_3D_DIM
    414418  Bool      m_useDMM;
     419#if !HHI_TOOL_PARAMETERS_I2_J0107
    415420  Bool      m_useIVP;
     421#endif
    416422  Bool      m_useSDC;
    417423  Bool      m_useDLT;
    418424#endif
     425#if !HHI_TOOL_PARAMETERS_I2_J0107
    419426#if H_3D_SINGLE_DEPTH
    420427  Bool      m_useSingleDepthMode;
    421428#endif
     429
    422430#if H_3D_IV_MERGE
    423431  Bool      m_useMPI;
     432#endif
    424433#endif
    425434#if H_3D_QTLPC
     
    497506  Void      setMaxTempLayer                 ( Int maxTempLayer )            { m_maxTempLayer = maxTempLayer;      }
    498507
     508#if !HHI_TOOL_PARAMETERS_I2_J0107
    499509#if H_3D_ARP
    500510  UInt       getUseAdvRP                    ( )              { return m_uiUseAdvResPred; }
     
    510520  Void       setSubPUMPILog2Size            (Int u)          { m_iSubPUMPILog2Size = u;   }     
    511521#endif
     522#endif
    512523#if H_3D_IC
    513524  Void       setUseIC                       ( Bool bVal )    { m_bUseIC = bVal; }
     
    516527  Bool       getUseICLowLatencyEnc          ()               { return m_bUseICLowLatencyEnc; }
    517528#endif
     529#if !HHI_TOOL_PARAMETERS_I2_J0107
    518530#if H_3D_INTER_SDC
    519531  Void       setInterSDCEnable              ( Bool bVal )    { m_bInterSDC = bVal; }
     
    523535  Void       setUseDBBP                     ( Bool  b )      { m_bUseDBBP   = b; }
    524536  Bool       getUseDBBP()                                    { return m_bUseDBBP;     }
     537#endif
    525538#endif
    526539  //======== Transform =============
     
    932945  Void setFrameOnlyConstraintFlag(Bool b) { m_frameOnlyConstraintFlag = b; }
    933946#if H_3D
     947
     948  // Only flags that are not in the SPS3dExtension should go here.
    934949  /// 3D Tools
    935950
     
    976991  Bool      getUseDMM                       ()        { return m_useDMM; }
    977992  Void      setUseDMM                       ( Bool b) { m_useDMM = b;    }
     993#if !HHI_TOOL_PARAMETERS_I2_J0107
    978994  Bool      getUseIVP                       ()        { return m_useIVP; }
    979995  Void      setUseIVP                       ( Bool b) { m_useIVP = b;    }
     996#endif
    980997  Bool      getUseSDC                       ()        { return m_useSDC; }
    981998  Void      setUseSDC                       ( Bool b) { m_useSDC = b;    }
     999
    9821000  Bool      getUseDLT                       ()        { return m_useDLT; }
    9831001  Void      setUseDLT                       ( Bool b) { m_useDLT = b;    }
    9841002#endif
     1003#if !HHI_TOOL_PARAMETERS_I2_J0107
    9851004#if H_3D_SINGLE_DEPTH
    9861005  Void       setUseSingleDepthMode          ( Bool bVal )    { m_useSingleDepthMode = bVal; }
    9871006  Bool       getUseSingleDepthMode          ()               { return m_useSingleDepthMode; }
    9881007#endif
     1008#endif
    9891009#if H_3D_QTLPC
    9901010  Void      setUseQTL                       ( Bool b ) { m_bUseQTL = b;    }
    9911011  Bool      getUseQTL                       ()         { return m_bUseQTL; }
    9921012#endif
     1013#if !HHI_TOOL_PARAMETERS_I2_J0107
    9931014#if H_3D_IV_MERGE
    9941015  Void      setUseMPI                       ( Bool b ) { m_useMPI = b;    }
    9951016  Bool      getUseMPI                       ()         { return m_useMPI; }
    9961017#endif
     1018#endif
    9971019#endif // H_3D
    9981020};
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r1084 r1124  
    409409
    410410#if H_3D_QTLPC
    411   TComVPS *vps            = pcPic->getSlice(0)->getVPS();
     411#if HHI_TOOL_PARAMETERS_I2_J0107
     412  Bool  bLimQtPredFalg    = pcPic->getSlice(0)->getQtPredFlag();
     413#else
     414    TComVPS *vps            = pcPic->getSlice(0)->getVPS();
    412415  Bool  bLimQtPredFalg    = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId());
     416#endif
    413417  TComPic *pcTexture      = rpcBestCU->getSlice()->getTexturePic();
    414418
     
    566570      {
    567571#if H_3D_ARP && H_3D_IV_MERGE
     572#if HHI_TOOL_PARAMETERS_I2_J0107
     573        if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getIvMvPredFlag() )
     574#else
    568575        if( rpcTempCU->getSlice()->getVPS()->getUseAdvRP(rpcTempCU->getSlice()->getLayerId()) || rpcTempCU->getSlice()->getVPS()->getIvMvPredFlag(rpcTempCU->getSlice()->getLayerId()) )
     576#endif
    569577#else
    570578#if H_3D_ARP
     
    590598#endif
    591599#if H_3D_NBDV_REF
     600#if HHI_TOOL_PARAMETERS_I2_J0107
     601          if( rpcTempCU->getSlice()->getDepthRefinementFlag() )
     602#else
    592603          if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps()))
     604#endif
    593605            DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo, true);
    594606          else
     
    605617      }
    606618#if  H_3D_FAST_TEXTURE_ENCODING
     619#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     620      if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     621#else
    607622      if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth())
     623#endif
    608624      {
    609625        PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
     
    668684         
    669685#if H_3D_DBBP
     686#if SEC_DBBP_VIEW_REF_CHECK_J0037
     687#if HHI_TOOL_PARAMETERS_I2_J0107
     688          if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     689#else
     690          if( m_pcEncCfg->getUseDBBP() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     691#endif
     692#else
    670693          if( m_pcEncCfg->getUseDBBP() )
     694#endif
    671695          {
    672696            xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false );
     
    715739#if H_3D_SINGLE_DEPTH
    716740    rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP  );
     741#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     742#if ALIGN_J0060_J0107
     743    if( rpcBestCU->getSlice()->getIntraSingleFlag() )
     744#else
     745    if(rpcBestCU->getSlice()->getVPS()->getSingleDepthModeFlag(rpcBestCU->getSlice()->getLayerIdInVps()))
     746#endif
     747#else
    717748    if(rpcBestCU->getSlice()->getApplySingleDepthMode())
     749#endif
    718750    {
    719751      xCheckRDCostSingleDepth( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
     
    18691901
    18701902#endif
    1871 
     1903#if !LGE_DDD_REMOVAL_J0042_J0030
    18721904#if H_3D_DDD
    18731905    Int iDDDCand = rpcTempCU->getUseDDDCandIdx();
    18741906    UChar ucDDDepth = rpcTempCU->getDDTmpDepth();
    18751907    rpcTempCU->setUseDDD( false, 0, uhDepth );
     1908#endif
    18761909#endif
    18771910
     
    19081941          rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth );
    19091942#endif
     1943#if !LGE_DDD_REMOVAL_J0042_J0030
    19101944#if H_3D_DDD
    19111945          if( rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewIndex() != 0 && iDDDCand == uiMergeCand )
     
    19181952              rpcTempCU->setUseDDD( false, 0, 0, uhDepth );
    19191953          }
     1954#endif
    19201955#endif
    19211956#if H_3D_SPIVMP
     
    20212056          xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    20222057#if H_3D_INTER_SDC
     2058#if HHI_TOOL_PARAMETERS_I2_J0107
     2059          if( rpcTempCU->getSlice()->getInterSdcFlag() && !uiNoResidual )
     2060#else
    20232061          if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual )
     2062#endif
    20242063          {
    20252064            Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
     
    20932132      {
    20942133#if H_3D_INTER_SDC
     2134#if HHI_TOOL_PARAMETERS_I2_J0107
     2135        if( rpcTempCU->getSlice()->getInterSdcFlag() )
     2136#else
    20952137        if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) )
     2138#endif
    20962139        {
    20972140          bestIsSkip = !rpcBestCU->getSDCFlag( 0 ) && ( rpcBestCU->getQtRootCbf(0) == 0 );
     
    21692212  UChar uhDepth = rpcTempCU->getDepth( 0 );
    21702213#if H_3D_ARP
     2214#if !HHI_TOOL_PARAMETERS_I2_J0107
    21712215  Int iLayerId    = rpcTempCU->getSlice()->getLayerId();
     2216#endif
    21722217  Bool bFirstTime = true;
    21732218  Int nARPWMax    = rpcTempCU->getSlice()->getARPStepNum() - 1;
     
    21802225  for( Int nARPW = 0; nARPW <= nARPWMax; nARPW++ )
    21812226  {
     2227#if HHI_TOOL_PARAMETERS_I2_J0107
     2228    if( !bFirstTime && rpcTempCU->getSlice()->getIvResPredFlag() )
     2229#else
    21822230    if( bFirstTime == false && rpcTempCU->getSlice()->getVPS()->getUseAdvRP( iLayerId ) )
     2231#endif
    21832232    {
    21842233      rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0),bTransquantBypassFlag );     
     
    22042253  rpcTempCU->setPartSizeSubParts  ( ePartSize,  0, uhDepth );
    22052254  rpcTempCU->setPredModeSubParts  ( MODE_INTER, 0, uhDepth );
     2255#if !LGE_DDD_REMOVAL_J0042_J0030
    22062256#if H_3D_DDD
    22072257  rpcTempCU->setUseDDD( false, 0, uhDepth );
     2258#endif
    22082259#endif
    22092260
     
    22842335  xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    22852336#if H_3D_INTER_SDC
     2337#if HHI_TOOL_PARAMETERS_I2_J0107
     2338  if( rpcTempCU->getSlice()->getInterSdcFlag() && ePartSize == SIZE_2Nx2N)
     2339#else
    22862340  if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && ePartSize == SIZE_2Nx2N)
     2341#endif
    22872342  {
    22882343    Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE};
  • trunk/source/Lib/TLibEncoder/TEncEntropy.cpp

    r1084 r1124  
    7878}
    7979
     80#if HHI_TOOL_PARAMETERS_I2_J0107
     81Void TEncEntropy::encodeSPS( TComSPS* pcSPS )
     82{
     83  m_pcEntropyCoderIf->codeSPS( pcSPS );
     84  return;
     85}
     86#else
    8087#if H_3D
    8188Void TEncEntropy::encodeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
     
    9198}
    9299#endif
     100#endif
    93101
    94102Void TEncEntropy::encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
     
    122130Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    123131{
     132#if ALIGN_J0060_J0107
     133  if(!pcCU->getSlice()->getIntraSingleFlag() )
     134  {
     135    return;
     136  }
     137#else
    124138  if ( !pcCU->getSlice()->getIsDepth() )
    125139  {
    126140    return;
    127141  }
     142#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
     143  if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps()))
     144  {
     145     return;
     146  }
     147#else
    128148  if(!pcCU->getSlice()->getApplySingleDepthMode())
    129149  {
    130150     return;
    131151  }
    132  
     152#endif
     153#endif
    133154  if( bRD )
    134155  {
     
    268289 
    269290#if H_3D_DBBP
     291#if SEC_DBBP_VIEW_REF_CHECK_J0037
     292#if HHI_TOOL_PARAMETERS_I2_J0107
     293  if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     294#else
     295  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
     296#endif
     297#else
    270298  if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 )
     299#endif
    271300  {
    272301    encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD);
     
    780809Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    781810{
     811#if HHI_TOOL_PARAMETERS_I2_J0107
     812  if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getInterSdcFlag() ) ||
     813    ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getIntraSdcWedgeFlag() ) )
     814#else
    782815  if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) ||
    783816    ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getVpsDepthModesFlag( pcCU->getSlice()->getLayerIdInVps() ) ) )
     817#endif
    784818  {
    785819    return;
  • trunk/source/Lib/TLibEncoder/TEncEntropy.h

    r1084 r1124  
    6969
    7070  virtual Void  codeVPS                 ( TComVPS* pcVPS )                                      = 0;
     71#if HHI_TOOL_PARAMETERS_I2_J0107
     72  virtual Void  codeSPS                 ( TComSPS* pcSPS )                                      = 0;
     73#else
    7174#if !H_3D
    7275  virtual Void  codeSPS                 ( TComSPS* pcSPS )                                      = 0;
    7376#else
    7477  virtual Void  codeSPS                 ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )       = 0;
     78#endif
    7579#endif
    7680  virtual Void  codePPS                 ( TComPPS* pcPPS )                                      = 0;
     
    165169  Void encodeVPS               ( TComVPS* pcVPS);
    166170  // SPS
     171#if HHI_TOOL_PARAMETERS_I2_J0107
     172  Void encodeSPS               ( TComSPS* pcSPS );
     173#else
    167174#if H_3D
    168175  Void encodeSPS               ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag );
    169176#else
    170177  Void encodeSPS               ( TComSPS* pcSPS );
     178#endif
    171179#endif
    172180  Void encodePPS               ( TComPPS* pcPPS );
  • trunk/source/Lib/TLibEncoder/TEncGOP.cpp

    r1084 r1124  
    880880
    881881    TComVPS*           vps = pcSlice->getVPS();     
     882#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     883#if H_3D
     884    Int numDirectRefLayers = vps    ->getNumRefListLayers( getLayerId() );
     885#else
    882886    Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() );
     887#endif
     888#else
     889    Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() );
     890#endif
    883891    GOPEntry gopEntry      = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid );     
    884892   
     
    893901          pcSlice->setNumInterLayerRefPicsMinus1( gopEntry.m_numActiveRefLayerPics - 1 );
    894902        }
     903#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     904#if H_3D
     905        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumRefListLayers( getLayerId() ) )
     906#else
    895907        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) )
     908#endif
     909#else
     910        if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) )
     911#endif
    896912        {       
    897913          interLayerPredLayerIdcPresentFlag = true;
     
    941957    pcSlice->setRefPicList ( rcListPic );
    942958#endif
     959#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
    943960#if H_3D_SINGLE_DEPTH
     961#if HHI_TOOL_PARAMETERS_I2_J0107
     962    pcSlice->setApplySingleDepthMode( pcSlice->getIntraSingleFlag() );
     963#else
    944964    TEncTop* pcEncTop = (TEncTop*) m_pcCfg;
    945965    bool enableSingleDepthMode=false;
     
    952972    }
    953973    pcSlice->setApplySingleDepthMode(enableSingleDepthMode);
    954 #endif   
     974#endif
     975#endif   
     976#endif
     977#if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     978    pcSlice->setDefaultRefView();
     979#endif
    955980#if H_3D_ARP
    956981    //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh
     
    14141439        pcSlice->getSPS()->getVuiParameters()->setHrdParametersPresentFlag( true );
    14151440      }
     1441#if HHI_TOOL_PARAMETERS_I2_J0107
     1442      m_pcEntropyCoder->encodeSPS(pcSlice->getSPS());
     1443#else
    14161444#if !H_3D
    14171445      m_pcEntropyCoder->encodeSPS(pcSlice->getSPS());
    14181446#else
    14191447      m_pcEntropyCoder->encodeSPS(pcSlice->getSPS(), pcSlice->getViewIndex(), pcSlice->getIsDepth() );
     1448#endif
    14201449#endif
    14211450      writeRBSPTrailingBits(nalu.m_Bitstream);
  • trunk/source/Lib/TLibEncoder/TEncSbac.cpp

    r1084 r1124  
    255255      curCost += m_CUTransquantBypassFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG );
    256256#if H_3D_DIM
     257#if HHI_TOOL_PARAMETERS_I2_J0107
     258    if( m_pcSlice->getIntraSdcWedgeFlag() || m_pcSlice->getIntraContourFlag() )
     259#else
    257260    if( m_pcSlice->getVpsDepthModesFlag() || m_pcSlice->getIVPFlag() )
     261#endif
    258262    {
    259263      curCost += m_cDepthIntraModeSCModel.calcCost    ( curSliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE );
     
    346350}
    347351
     352#if HHI_TOOL_PARAMETERS_I2_J0107
     353Void TEncSbac::codeSPS( TComSPS* pcSPS )
     354#else
    348355#if H_3D
    349356Void TEncSbac::codeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
    350357#else
    351358Void TEncSbac::codeSPS( TComSPS* pcSPS )
     359#endif
    352360#endif
    353361{
     
    625633  PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
    626634#if H_3D_QTLPC
     635#if HHI_TOOL_PARAMETERS_I2_J0107
     636  Bool    bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag();
     637#else
    627638  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    628639  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
     640#endif
    629641  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    630642  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    9981010  Bool bCodeSplitFlag    = true;
    9991011
     1012 
     1013#if HHI_TOOL_PARAMETERS_I2_J0107
     1014  Bool    bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag();
     1015#else
    10001016  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
    10011017  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
     1018#endif
    10021019  TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
    10031020  Bool bDepthMapDetect   = (pcTexture != NULL);
     
    10601077    dir[j] = pcCU->getLumaIntraDir( absPartIdx+partOffset*j );
    10611078#if H_3D_DIM
     1079#if HHI_TOOL_PARAMETERS_I2_J0107
     1080    if( pcCU->getSlice()->getIntraSdcWedgeFlag() ||  pcCU->getSlice()->getIntraContourFlag() )
     1081#else
    10621082    if( pcCU->getSlice()->getVpsDepthModesFlag() ||  pcCU->getSlice()->getIVPFlag() )
     1083#endif
    10631084    {
    10641085      codeIntraDepth( pcCU, absPartIdx+partOffset*j );
     
    12061227    }
    12071228    //mode coding
     1229#if HHI_TOOL_PARAMETERS_I2_J0107
     1230    if( pcCU->getSlice()->getIntraSdcWedgeFlag() && pcCU->getSlice()->getIntraContourFlag())
     1231#else
    12081232    if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag())
     1233#endif
    12091234    {
    12101235      m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );
     
    23052330  PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx );
    23062331  AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N );
     2332#if HHI_TOOL_PARAMETERS_I2_J0107
     2333  AOF( pcCU->getSlice()->getDepthBasedBlkPartFlag() );
     2334#else
    23072335  AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );
     2336#endif
    23082337  AOF( !pcCU->getSlice()->getIsDepth() );
    23092338 
  • trunk/source/Lib/TLibEncoder/TEncSbac.h

    r1084 r1124  
    9494
    9595  Void  codeVPS                 ( TComVPS* pcVPS );
     96#if HHI_TOOL_PARAMETERS_I2_J0107
     97  Void  codeSPS                 ( TComSPS* pcSPS     );
     98#else
    9699#if !H_3D
    97100  Void  codeSPS                 ( TComSPS* pcSPS     );
    98101#else
    99102  Void  codeSPS                 ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag );
     103#endif
    100104#endif
    101105  Void  codePPS                 ( TComPPS* pcPPS     );
  • trunk/source/Lib/TLibEncoder/TEncSearch.cpp

    r1084 r1124  
    28812881  Int index=0;
    28822882  Pel testDepth;
     2883#if SINGLE_DEPTH_SIMP_J0115
     2884  Pel DepthNeighbours[2];
     2885#else
    28832886  Pel DepthNeighbours[5];
     2887#endif
    28842888  //construction of depth candidates
     2889#if SINGLE_DEPTH_SIMP_J0115
     2890  for( Int i = 0; (i < 2)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     2891#else
    28852892  for( Int i = 0; (i < 5)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
     2893#endif
    28862894  {
    28872895    if(!pcCU->getNeighDepth (0, 0, &testDepth, i))
     
    28912899    DepthNeighbours[index]=testDepth;
    28922900    index++;
     2901#if !SINGLE_DEPTH_SIMP_J0115
    28932902    for(Int j=0;j<index-1;j++)
    28942903    {
     
    28992908      }
    29002909    }
     2910#endif
    29012911  }
    29022912
     
    31173127    }
    31183128#endif
    3119 
     3129   
    31203130#if H_3D_DIM
    31213131    //===== determine set of depth intra modes to be tested =====
    31223132    if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight )
    31233133    {
     3134#if HHI_TOOL_PARAMETERS_I2_J0107
     3135      if( bOnlyIVP && pcCU->getSlice()->getIntraContourFlag() )
     3136#else
    31243137      if( bOnlyIVP && m_pcEncCfg->getUseIVP() )
     3138#endif
    31253139      {
    31263140        TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
     
    31443158
    31453159#if H_3D_DIM_DMM
     3160#if HHI_TOOL_PARAMETERS_I2_J0107
     3161      if( ( ( m_pcEncCfg->getUseDMM() &&  pcCU->getSlice()->getIntraSdcWedgeFlag() )  || pcCU->getSlice()->getIntraContourFlag() )
     3162#else
    31463163      if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() )
     3164#endif
    31473165#if H_3D_FAST_DEPTH_INTRA
    31483166         && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold)
     
    31513169      {
    31523170        UInt uiStart, uiEnd;
     3171#if HHI_TOOL_PARAMETERS_I2_J0107
     3172        if( ( m_pcEncCfg->getUseDMM() &&  pcCU->getSlice()->getIntraSdcWedgeFlag() ) &&  pcCU->getSlice()->getIntraContourFlag() )
     3173#else
    31533174        if( m_pcEncCfg->getUseDMM() &&  m_pcEncCfg->getUseIVP() )
     3175#endif
    31543176        {
    31553177          uiStart = 0;
    31563178          uiEnd   = 2;
    31573179        }
     3180#if HHI_TOOL_PARAMETERS_I2_J0107
     3181        else if( ( m_pcEncCfg->getUseDMM() &&  pcCU->getSlice()->getIntraSdcWedgeFlag() ) )
     3182#else
    31583183        else if( m_pcEncCfg->getUseDMM() )
     3184#endif
    31593185        {
    31603186          uiStart = 0;
    31613187          uiEnd   = 1;
    31623188        }
     3189#if HHI_TOOL_PARAMETERS_I2_J0107
     3190        else if( pcCU->getSlice()->getIntraContourFlag() )
     3191#else
    31633192        else if( m_pcEncCfg->getUseIVP() )
     3193#endif
    31643194        {
    31653195          uiStart = 1;
     
    32993329#if H_3D_DIM_SDC
    33003330#if H_3D_FAST_INTRA_SDC
     3331#if HHI_TOOL_PARAMETERS_I2_J0107
     3332      Bool bTestSDC = ( ( m_pcEncCfg->getUseSDC() &&  pcCU->getSlice()->getIntraSdcWedgeFlag() ) && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD);
     3333#else
    33013334      Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD);
     3335#endif
    33023336#else
    33033337      Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) );
     
    41434177      }
    41444178#endif
    4145 
     4179#if !LGE_DDD_REMOVAL_J0042_J0030
    41464180#if H_3D_DDD
    41474181      if( uiMergeCand == pcCU->getUseDDDCandIdx() )
     
    41544188        pcCU->setUseDDD( false, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    41554189      }
     4190#endif
    41564191#endif
    41574192
     
    48414876        pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    48424877#endif
     4878#if !LGE_DDD_REMOVAL_J0042_J0030
    48434879#if H_3D_DDD
    48444880        if( uiMRGIndex == pcCU->getUseDDDCandIdx() )
     
    48534889            pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    48544890        }
     4891#endif
    48554892#endif
    48564893#if H_3D_SPIVMP
     
    49304967        pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    49314968#endif
     4969#if !LGE_DDD_REMOVAL_J0042_J0030
    49324970#if H_3D_DDD
    49334971        pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
     4972#endif
    49344973#endif
    49354974        // set ME result
     
    53145353#endif
    53155354#if H_3D_INTER_SDC
     5355#if HHI_TOOL_PARAMETERS_I2_J0107 
     5356   pcPatternKey->setSDCMRSADFlag( pcCU->getSlice()->getInterSdcFlag() );
     5357#else
    53165358  if ( pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) )
    53175359  {
     
    53225364    pcPatternKey->setSDCMRSADFlag( false );
    53235365  }
     5366#endif
    53245367#endif
    53255368
  • trunk/source/Lib/TLibEncoder/TEncSlice.cpp

    r976 r1124  
    215215  rpcSlice->setPicOutputFlag( true );
    216216  rpcSlice->setPOC( pocCurr );
     217#if HHI_TOOL_PARAMETERS_I2_J0107
     218#if H_3D
     219  rpcSlice->init3dToolParameters();
     220#endif
     221#endif
    217222#if H_3D_IC
    218223  rpcSlice->setApplyIC( false );
     
    608613  rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() );
    609614#if H_3D_IV_MERGE
     615#if HHI_TOOL_PARAMETERS_I2_J0107
     616#if ALGIN_J0107_J0059
     617  rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( ( rpcSlice->getMpiFlag( ) || rpcSlice->getIvMvPredFlag( ) || rpcSlice->getViewSynthesisPredFlag( )   ) ? 1 : 0 ));
     618#else
     619  rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( ( rpcSlice->getMpiFlag( ) || rpcSlice->getIvMvPredFlag( ) ) ? 1 : 0 ));
     620#endif
     621#else
    610622  if(rpcSlice->getIsDepth())
    611623  {
     
    614626  else
    615627  {
     628#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
     629    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() )  || rpcSlice->getVPS()->getViewSynthesisPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
     630#else
    616631    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
    617   }
     632#endif
     633  }
     634#endif
    618635#else
    619636  rpcSlice->setMaxNumMergeCand        ( m_pcCfg->getMaxNumMergeCand()        );
     
    10111028    }
    10121029  }
     1030#if LGE_DEFAULT_DV_J0046 && !SEC_ARP_VIEW_REF_CHECK_J0037 && !SEC_DBBP_VIEW_REF_CHECK_J0037
     1031  pcSlice->setDefaultRefViewIdx( -1 );
     1032  pcSlice->setDefaultRefViewIdxAvailableFlag( false );
     1033
     1034  Int valid = 0;
     1035  Int viewIndex = 0;
     1036  for( UInt uiBId = 0; uiBId < pcSlice->getViewIndex() && valid==0; uiBId++ )
     1037  {
     1038      UInt        uiBaseId    = uiBId;
     1039      TComPic*    pcBasePic   = pcSlice->getIvPic( false, uiBaseId );
     1040      for( Int iRefListId = 0; ( iRefListId < (pcSlice->isInterB()? 2:1) ) && !pcSlice->isIntra() && valid==0; iRefListId++ )
     1041      {
     1042          RefPicList  eRefPicListTest = RefPicList( iRefListId );
     1043          Int         iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;
     1044          for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )
     1045          {
     1046              if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()
     1047                  && pcBasePic->getViewIndex() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewIndex())
     1048              {
     1049                  valid=1;
     1050                  viewIndex = uiBaseId;
     1051                  break;
     1052              }
     1053          }
     1054      }
     1055  }
     1056  if( valid )
     1057  {
     1058      pcSlice->setDefaultRefViewIdx( viewIndex );
     1059      pcSlice->setDefaultRefViewIdxAvailableFlag( true );   
     1060  }
     1061#endif
     1062
    10131063  // for every CU in slice
    10141064#if H_3D
     
    11691219#endif
    11701220      }
    1171 
    11721221      // run CU encoder
    11731222      m_pcCuEncoder->compressCU( pcCU );
  • trunk/source/Lib/TLibEncoder/TEncSlice.h

    r884 r1124  
    107107  UInt                    m_uiSliceIdx;
    108108  std::vector<TEncSbac*> CTXMem;
     109#if !LGE_DDD_REMOVAL_J0042_J0030
    109110#if H_3D_DDD
    110111  Int          m_iDDDScale;
    111112  Int          m_iDDDOffset;
    112113  UInt         m_uiDDDPrecision;
     114#endif
    113115#endif
    114116public:
     
    145147  Void      initCtxMem( UInt i );
    146148  Void      setCtxMem( TEncSbac* sb, Int b )   { CTXMem[b] = sb; }
    147 
     149#if !LGE_DDD_REMOVAL_J0042_J0030
    148150#if H_3D_DDD
    149151  Void setDDDPar( Int iScale, Int iOffset, UInt uiPrecision ){ m_iDDDScale = iScale; m_iDDDOffset = iOffset; m_uiDDDPrecision = uiPrecision; }
     152#endif
    150153#endif
    151154
  • trunk/source/Lib/TLibEncoder/TEncTop.cpp

    r1084 r1124  
    534534Void TEncTop::encode(Bool flush, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded, bool isTff, Int gopId )
    535535{
    536   assert( 0 ); // Field coding and multiview need to be furhter harmonized.
     536  assert( 0 ); // Field coding and multiview need to be further harmonized.
    537537}
    538538#else
     
    896896#if H_MV
    897897  m_cPPS.setLayerId( getLayerId() );
     898#if HHI_DEPENDENCY_SIGNALLING_I1_J0107
     899#if H_3D
     900  // Check if this condition is still correct
     901  if( getVPS()->getNumRefListLayers( getLayerId() ) > 0 )
     902#else
    898903  if( getVPS()->getNumDirectRefLayers( getLayerId() ) > 0 )
     904#endif
     905#else
     906  if( getVPS()->getNumDirectRefLayers( getLayerId() ) > 0 )
     907#endif
    899908  {
    900909    m_cPPS.setListsModificationPresentFlag( true );
  • trunk/source/Lib/TLibEncoder/TEncTop.h

    r1084 r1124  
    270270  Void                    setIvPicLists         ( TComPicLists* picLists) { m_ivPicLists = picLists; }
    271271#endif
     272#if HHI_TOOL_PARAMETERS_I2_J0107
     273#if H_3D
     274  Void                    setSps3dExtension     ( TComSps3dExtension sps3dExtension ) { m_cSPS.setSps3dExtension( sps3dExtension );  };
     275#endif
     276#endif
    272277#if H_3D_IC
    273278  Void                    setICEnableCandidate         ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; }
  • trunk/source/Lib/TLibExtractor/TExtrTop.cpp

    r655 r1124  
    7373     TComSPS     cSPS;
    7474#if H_3D
    75      Int layerIdInVPS = m_cVPS.getLayerIdInVps( uiLayerId );
     75
     76#if HHI_TOOL_PARAMETERS_I2_J0107
     77     m_cEntropyDecoder   .decodeSPS( &cSPS );
     78#else
     79      Int layerIdInVPS = m_cVPS.getLayerIdInVps( uiLayerId );
    7680     m_cEntropyDecoder   .decodeSPS( &cSPS, m_cVPS.getViewIndex( layerIdInVPS ), ( m_cVPS.getDepthId( layerIdInVPS ) == 1 ) );
     81#endif
    7782#else
    7883     m_cEntropyDecoder   .decodeSPS( &cSPS );
Note: See TracChangeset for help on using the changeset viewer.