- Timestamp:
- 10 Nov 2014, 12:22:20 (10 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 49 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view+depth_AllIntra.cfg
r1084 r1124 52 52 53 53 #======== VPS / Dependencies ================ 54 DirectRefLayers_1 : 55 DirectRefLayers_2 : 0 56 DirectRefLayers_3 : 1 57 58 DependencyTypes_1 : 59 DependencyTypes_2 : 2 60 DependencyTypes_3 : 2 54 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 55 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 56 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 57 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 59 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 60 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 61 61 62 62 #========== Camera parameters ========== … … 173 173 174 174 #========== multiview coding tools ========== 175 IvMvPred 176 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)175 IvMvPredFlag : 1 1 # Inter-view motion prediction 176 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 177 177 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 178 178 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 179 ViewSynthesisPred 180 DepthRefinement 181 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning179 ViewSynthesisPredFlag : 1 # View synthesis prediction 180 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 181 IvMvScalingFlag : 1 # Interview motion vector scaling 182 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 183 Log2MpiSubPbSizeMinus3 : 3 # Log2 of sub-PU size for MPI (3...6) 184 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 185 185 186 186 #========== depth coding tools ========== 187 187 VSO : 1 # use of view synthesis optimization for depth coding 188 DMM: 1189 I VP: 1 # use of intra-view prediction mode190 SDC: 1191 DLT : 1192 QTL : 1193 LimQtPredFlag: 1194 InterS DC: 1 # use of inter sdc195 M PI: 1196 SingleDepthMode: 1 # use of single depth mode188 IntraWedgeFlag : 1 189 IntraContourFlag : 1 # use of intra-view prediction mode 190 IntraSdcFlag : 1 191 DLT : 1 192 QTL : 1 193 QtPredFlag : 1 194 InterSdcFlag : 1 # use of inter sdc 195 MpiFlag : 1 196 IntraSingleFlag : 1 # use of single depth mode 197 197 #========== view synthesis optimization (VSO) ========== 198 198 -
trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg
r1084 r1124 62 62 63 63 #======== VPS / Dependencies ================ 64 DirectRefLayers_1 : 65 DirectRefLayers_2 : 0 66 DirectRefLayers_3 : 1 67 DirectRefLayers_4 : 0 68 DirectRefLayers_5 : 1 64 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 65 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 66 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 67 DirectRefLayers_4 : 0 1 # Indices in VPS of direct reference layers 68 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 69 69 70 70 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion … … 191 191 192 192 #========== multiview coding tools ========== 193 IvMvPred 194 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)193 IvMvPredFlag : 1 1 # Inter-view motion prediction 194 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 195 195 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 196 196 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 197 ViewSynthesisPred 198 DepthRefinement 199 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning197 ViewSynthesisPredFlag : 1 # View synthesis prediction 198 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 199 IvMvScalingFlag : 1 # Interview motion vector scaling 200 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 201 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 202 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 203 203 204 204 #========== depth coding tools ========== 205 205 VSO : 1 # use of view synthesis optimization for depth coding 206 DMM: 1207 I VP: 1 # use of intra-view prediction mode208 SDC: 1209 DLT : 1210 QTL : 1211 LimQtPredFlag: 1212 InterS DC: 1 # use of inter sdc213 M PI: 1214 SingleDepthMode: 1 # use of single depth mode206 IntraWedgeFlag : 1 207 IntraContourFlag : 1 # use of intra-view prediction mode 208 IntraSdcFlag : 1 209 DLT : 1 210 QTL : 1 211 QtPredFlag : 1 212 InterSdcFlag : 1 # use of inter sdc 213 MpiFlag : 1 214 IntraSingleFlag : 1 # use of single depth mode 215 215 #========== view synthesis optimization (VSO) ========== 216 216 VSOConfig : [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 62 62 63 63 #======== VPS / Dependencies ================ 64 DirectRefLayers_1 : 64 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 65 65 DirectRefLayers_2 : 1 # Indices in VPS of direct reference layers 66 DirectRefLayers_3 : 0 66 DirectRefLayers_3 : 0 1 # Indices in VPS of direct reference layers 67 67 DirectRefLayers_4 : 1 # Indices in VPS of direct reference layers 68 DirectRefLayers_5 : 0 69 70 DependencyTypes_1 : 68 DirectRefLayers_5 : 0 1 # Indices in VPS of direct reference layers 69 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 71 71 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 72 DependencyTypes_3 : 2 72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 73 73 DependencyTypes_4 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 74 DependencyTypes_5 : 2 74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 75 75 76 76 #========== Camera parameters ========== … … 240 240 241 241 #========== multiview coding tools ========== 242 IvMvPred 243 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)242 IvMvPredFlag : 1 # Inter-view motion prediction 243 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 244 244 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 245 245 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 246 ViewSynthesisPred 247 DepthRefinement 248 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning246 ViewSynthesisPredFlag : 1 # View synthesis prediction 247 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 248 IvMvScalingFlag : 1 # Interview motion vector scaling 249 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred ( MinCbLog2SizeY - 3 ) ... ( CtbLog2SizeY - 3 ) 250 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 251 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 252 252 253 253 #========== depth coding tools ========== 254 VSO : 1 # use of view synthesis optimization for depth coding255 DMM: 1256 SDC: 1257 DLT : 1258 QTL : 0259 LimQtPredFlag: 0260 InterS DC: 1 # use of inter sdc261 M PI: 1254 VSO : 1 # use of view synthesis optimization for depth coding 255 IntraWedgeFlag : 1 256 IntraSdcFlag : 1 257 DLT : 1 258 QTL : 0 259 QtPredFlag : 0 260 InterSdcFlag : 1 # use of inter sdc 261 MpiFlag : 1 262 262 263 263 #========== view synthesis optimization (VSO) ========== -
trunk/cfg/3D-HEVC/NonCTC/ibp/gopCfg_IBP_3view+depth.cfg
r1066 r1124 38 38 39 39 #======== VPS / Dependencies ================ 40 DirectRefLayers_1 : 41 DirectRefLayers_2 : 0 42 DirectRefLayers_3 : 1 43 DirectRefLayers_4 : 0 2# Indices in VPS of direct reference layers44 DirectRefLayers_5 : 1 3 40 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 41 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 42 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 43 DirectRefLayers_4 : 0 1 2 3 # Indices in VPS of direct reference layers 44 DirectRefLayers_5 : 1 3 4 # Indices in VPS of direct reference layers 45 45 46 DependencyTypes_1 : 47 DependencyTypes_2 : 2 48 DependencyTypes_3 : 2 49 DependencyTypes_4 : 2 2 50 DependencyTypes_5 : 2 2 46 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 47 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 48 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 49 DependencyTypes_4 : 2 2 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 50 DependencyTypes_5 : 2 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 51 51 52 52 -
trunk/cfg/3D-HEVC/NonCTC/misc/gopCfg_ILP_on_IRAP_3view+depth.cfg
r1066 r1124 30 30 31 31 #======== VPS / Dependencies ================ 32 DirectRefLayers_1 : 33 DirectRefLayers_2 : 0 34 DirectRefLayers_3 : 1 35 DirectRefLayers_4 : 0 2# Indices in VPS of direct reference layers36 DirectRefLayers_5 : 1 3 32 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 33 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 34 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 35 DirectRefLayers_4 : 0 1 2 3 # Indices in VPS of direct reference layers 36 DirectRefLayers_5 : 1 3 4 # Indices in VPS of direct reference layers 37 37 38 38 DependencyTypes_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 28 28 29 29 #======== VPS / Dependencies ================ 30 DirectRefLayers_1 : 30 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 31 31 DirectRefLayers_2 : # Indices in VPS of direct reference layers 32 DirectRefLayers_3 : 32 DirectRefLayers_3 : 2 # Indices in VPS of direct reference layers 33 33 DirectRefLayers_4 : # Indices in VPS of direct reference layers 34 DirectRefLayers_5 : 34 DirectRefLayers_5 : 4 # Indices in VPS of direct reference layers 35 35 36 DependencyTypes_1 : 36 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 37 37 DependencyTypes_2 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 38 DependencyTypes_3 : 38 DependencyTypes_3 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 39 39 DependencyTypes_4 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 40 DependencyTypes_5 : 40 DependencyTypes_5 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 41 41 42 42 -
trunk/cfg/3D-HEVC/NonCTC/rc/baseCfg_3view+depth_rate_control.cfg
r1084 r1124 62 62 63 63 #======== VPS / Dependencies ================ 64 DirectRefLayers_1 : # Indices in VPS of direct reference layers65 DirectRefLayers_2 : 0 # Indices in VPS of direct reference layers66 DirectRefLayers_3 : 1 # Indices in VPS of direct reference layers67 DirectRefLayers_4 : 0 # Indices in VPS of direct reference layers68 DirectRefLayers_5 : 1 # Indices in VPS of direct reference layers69 70 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion71 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion72 DependencyTypes_3 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion73 DependencyTypes_4 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion74 DependencyTypes_5 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion64 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 65 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 66 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 67 DirectRefLayers_4 : 0 1 # Indices in VPS of direct reference layers 68 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 69 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 71 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 73 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 75 75 76 76 #========== Camera parameters ========== … … 252 252 253 253 #========== multiview coding tools ========== 254 IvMvPred 255 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)254 IvMvPredFlag : 1 1 # Inter-view motion prediction 255 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 256 256 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 257 257 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 258 ViewSynthesisPred 259 DepthRefinement 260 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning258 ViewSynthesisPredFlag : 1 # View synthesis prediction 259 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 260 IvMvScalingFlag : 1 # Interview motion vector scaling 261 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 262 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 263 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 264 264 265 265 #========== depth coding tools ========== 266 266 VSO : 1 # use of view synthesis optimization for depth coding 267 DMM: 1268 I VP: 1 # use of intra-view prediction mode269 SDC: 1270 DLT : 1271 QTL : 1272 LimQtPredFlag: 1273 InterS DC: 1 # use of inter sdc274 M PI: 1275 SingleDepthMode: 1 # use of single depth mode267 IntraWedgeFlag : 1 268 IntraContourFlag : 1 # use of intra-view prediction mode 269 IntraSdcFlag : 1 270 DLT : 1 271 QTL : 1 272 QtPredFlag : 1 273 InterSdcFlag : 1 # use of inter sdc 274 MpiFlag : 1 275 IntraSingleFlag : 1 # use of single depth mode 276 276 #========== view synthesis optimization (VSO) ========== 277 277 VSOConfig : [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 52 52 53 53 #======== VPS / Dependencies ================ 54 DirectRefLayers_1 : 55 DirectRefLayers_2 : 0 56 DirectRefLayers_3 : 1 57 58 DependencyTypes_1 : 59 DependencyTypes_2 : 2 60 DependencyTypes_3 : 2 54 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 55 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 56 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 57 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 59 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 60 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 61 61 62 62 #========== Camera parameters ========== … … 207 207 208 208 #========== multiview coding tools ========== 209 IvMvPred 210 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)209 IvMvPredFlag : 1 1 # Inter-view motion prediction 210 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 211 211 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 212 212 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 213 ViewSynthesisPred 214 DepthRefinement 215 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning213 ViewSynthesisPredFlag : 1 # View synthesis prediction 214 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 215 IvMvScalingFlag : 1 # Interview motion vector scaling 216 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 217 Log2MpiSubPbSizeMinus3 : 3 # Log2 of sub-PU size for MPI (3...6) 218 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 219 219 220 220 #========== depth coding tools ========== 221 VSO : 1 # use of view synthesis optimization for depth coding222 DMM: 1223 I VP: 1 # use of intra-view prediction mode224 SDC: 1225 DLT : 1226 QTL : 1227 LimQtPredFlag: 1228 InterS DC: 1 # use of inter sdc229 M PI: 1230 SingleDepthMode: 1 # use of single depth mode221 VSO : 1 # use of view synthesis optimization for depth coding 222 IntraWedgeFlag : 1 223 IntraContourFlag : 1 # use of intra-view prediction mode 224 IntraSdcFlag : 1 225 DLT : 1 226 QTL : 1 227 QtPredFlag : 1 228 InterSdcFlag : 1 # use of inter sdc 229 MpiFlag : 1 230 IntraSingleFlag : 1 # use of single depth mode 231 231 #========== view synthesis optimization (VSO) ========== 232 232 -
trunk/cfg/3D-HEVC/baseCfg_2view.cfg
r1084 r1124 178 178 179 179 #========== multiview coding tools ========== 180 IvMvPred 181 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)180 IvMvPredFlag : 1 # Inter-view motion prediction 181 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 182 182 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 183 183 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 184 ViewSynthesisPred 185 DepthRefinement 186 IvMvScaling 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 D BBP: 0 # Depth-based Block Partitioning184 ViewSynthesisPredFlag : 1 # View synthesis prediction 185 DepthRefinementFlag : 0 # Disparity refined by depth DoNBDV 186 IvMvScalingFlag : 1 # Interview motion vector scaling 187 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 188 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 189 DepthBasedBlkPartFlag : 0 # Depth-based Block Partitioning 190 190 191 191 ### DO NOT ADD ANYTHING BELOW THIS LINE ### -
trunk/cfg/3D-HEVC/baseCfg_3view+depth.cfg
r1084 r1124 62 62 63 63 #======== VPS / Dependencies ================ 64 DirectRefLayers_1 : 65 DirectRefLayers_2 : 0 66 DirectRefLayers_3 : 1 67 DirectRefLayers_4 : 0 68 DirectRefLayers_5 : 1 69 70 DependencyTypes_1 : 71 DependencyTypes_2 : 2 72 DependencyTypes_3 : 2 73 DependencyTypes_4 : 2 74 DependencyTypes_5 : 2 64 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 65 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 66 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 67 DirectRefLayers_4 : 0 1 # Indices in VPS of direct reference layers 68 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 69 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 71 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 73 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 75 75 76 76 #========== Camera parameters ========== … … 240 240 241 241 #========== multiview coding tools ========== 242 IvMvPred 243 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)242 IvMvPredFlag : 1 1 # Inter-view motion prediction 243 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 244 244 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 245 245 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 246 ViewSynthesisPred 247 DepthRefinement 248 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning246 ViewSynthesisPredFlag : 1 # View synthesis prediction 247 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 248 IvMvScalingFlag : 1 # Interview motion vector scaling 249 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 250 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 251 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 252 252 253 253 #========== depth coding tools ========== 254 VSO : 1 # use of view synthesis optimization for depth coding255 DMM: 1256 I VP: 1 # use of intra-view prediction mode257 SDC: 1258 DLT : 1259 QTL : 1260 LimQtPredFlag: 1261 InterS DC: 1 # use of inter sdc262 M PI: 1263 SingleDepthMode: 1 # use of single depth mode254 VSO : 1 # use of view synthesis optimization for depth coding 255 IntraWedgeFlag : 1 256 IntraContourFlag : 1 # use of intra-view prediction mode 257 IntraSdcFlag : 1 258 DLT : 1 259 QTL : 1 260 QtPredFlag : 1 261 InterSdcFlag : 1 # use of inter sdc 262 MpiFlag : 1 263 IntraSingleFlag : 1 # use of single depth mode 264 264 #========== view synthesis optimization (VSO) ========== 265 265 VSOConfig : [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 198 198 199 199 #========== multiview coding tools ========== 200 IvMvPred 201 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)200 IvMvPredFlag : 1 # Inter-view motion prediction 201 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 202 202 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 203 203 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 204 ViewSynthesisPred 205 DepthRefinement 206 IvMvScaling 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 D BBP: 0 # Depth-based Block Partitioning204 ViewSynthesisPredFlag : 1 # View synthesis prediction 205 DepthRefinementFlag : 0 # Disparity refined by depth DoNBDV 206 IvMvScalingFlag : 1 # Interview motion vector scaling 207 Log2SubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for IvMvPred (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 208 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 209 DepthBasedBlkPartFlag : 0 # Depth-based Block Partitioning 210 210 211 211 ### DO NOT ADD ANYTHING BELOW THIS LINE ### -
trunk/cfg/3D-HEVC/fullCfg.cfg
r1084 r1124 125 125 126 126 #======== VPS / Dependencies ================ 127 DirectRefLayers_1 : 128 DirectRefLayers_2 : 0 129 DirectRefLayers_3 : 1 130 DirectRefLayers_4 : 0 131 DirectRefLayers_5 : 1 132 133 DependencyTypes_1 : 134 DependencyTypes_2 : 2 135 DependencyTypes_3 : 2 136 DependencyTypes_4 : 2 137 DependencyTypes_5 : 2 127 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 128 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 129 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 130 DirectRefLayers_4 : 0 1 # Indices in VPS of direct reference layers 131 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 132 133 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 134 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 135 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 136 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 137 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 138 138 139 139 #========== Camera parameters ========== … … 316 316 #NumLCUInUnit : 1 # Number of LCU in an Unit. Fraction is not allowed 317 317 #========== multiview coding tools ========== 318 IvMvPred 319 AdvMultiviewResPred: 1 # Advanced inter-view residual prediction (0:off, 1:on)318 IvMvPredFlag : 1 1 # Inter-view motion prediction 319 IvResPredFlag : 1 # Advanced inter-view residual prediction (0:off, 1:on) 320 320 IlluCompEnable : 1 # Enable Illumination compensation ( 0: off, 1: on ) (v/d) 321 321 IlluCompLowLatencyEnc : 0 # Enable low-latency Illumination compensation encoding( 0: off, 1: on ) 322 ViewSynthesisPred 323 DepthRefinement 324 IvMvScaling 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 D BBP: 1 # Depth-based Block Partitioning322 ViewSynthesisPredFlag : 1 # View synthesis prediction 323 DepthRefinementFlag : 1 # Disparity refined by depth DoNBDV 324 IvMvScalingFlag : 1 # Interview motion vector scaling 325 Log2SubPbSizeMinus3 : 3 # Log2 of sub-PU size for IvMvPred (2...6) 326 Log2MpiSubPbSizeMinus3 : 0 # Log2 of sub-PU size minus 3 for MPI (0 ... 3) and smaller than or equal to log2(maxCUSize)-3 327 DepthBasedBlkPartFlag : 1 # Depth-based Block Partitioning 328 328 329 329 #========== depth coding tools ========== 330 330 VSO : 1 # use of view synthesis optimization for depth coding 331 DMM: 1332 I VP: 1 # use of intra-view prediction mode333 SDC: 1334 DLT : 1335 QTL : 1336 LimQtPredFlag: 1337 InterS DC: 1 # use of inter sdc338 M PI: 1339 SingleDepthMode: 1 # use of single depth mode331 IntraWedgeFlag : 1 332 IntraContourFlag : 1 # use of intra-view prediction mode 333 IntraSdcFlag : 1 334 DLT : 1 335 QTL : 1 336 QtPredFlag : 1 337 InterSdcFlag : 1 # use of inter sdc 338 MpiFlag : 1 339 IntraSingleFlag : 1 # use of single depth mode 340 340 #========== view synthesis optimization (VSO) ========== 341 341 VSOConfig : [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 377 377 ("DepthFlag", m_depthFlag , std::vector<Int>(1,0), "Depth Flag") 378 378 #if H_3D_DIM 379 #if !HHI_TOOL_PARAMETERS_I2_J0107 379 380 ("DMM", m_useDMM, true, "Depth intra model modes") 380 381 ("IVP", m_useIVP, true, "intra-view prediction") 381 382 ("SDC", m_useSDC, true, "Simplified depth coding") 383 #endif 382 384 ("DLT", m_useDLT, true, "Depth lookup table") 383 385 #endif 384 386 #if H_3D 387 #if !HHI_TOOL_PARAMETERS_I2_J0107 385 388 ("SingleDepthMode", m_useSingleDepthMode, true, "Single depth mode") 389 #endif 386 390 #endif 387 391 #endif … … 404 408 ("ProfileTierLevelIdx_%d", m_profileTierLevelIdx, std::vector<Int>(0), MAX_NUM_LAYERS, "Indices to profile level tier for ols") 405 409 // 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 406 413 ("DirectRefLayers_%d", m_directRefLayers , std::vector<Int>(0,0), MAX_NUM_LAYERS, "LayerIds of direct reference layers") 414 #endif 407 415 ("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") 408 416 #endif … … 530 538 ("DeblockingFilterMetric", m_DeblockingFilterMetric, false ) 531 539 540 #if !HHI_TOOL_PARAMETERS_I2_J0107 532 541 #if H_3D_ARP 533 542 ("AdvMultiviewResPred", m_uiUseAdvResPred, (UInt)1, "Usage of Advanced Residual Prediction" ) … … 537 546 ("SubPUMPILog2Size", m_iSubPUMPILog2Size, (Int)3, "Sub-PU MPI size index: 2^n") 538 547 #endif 548 #endif 539 549 #if H_3D_IC 540 550 ("IlluCompEnable", m_abUseIC, true, "Enable illumination compensation") 541 551 ("IlluCompLowLatencyEnc", m_bUseLowLatencyICEnc, false, "Enable low-latency illumination compensation encoding") 542 552 #endif 553 #if !HHI_TOOL_PARAMETERS_I2_J0107 543 554 #if H_3D_INTER_SDC 544 555 ("InterSDC", m_bDepthInterSDCFlag, true, "Enable depth inter SDC") … … 549 560 #if H_3D_IV_MERGE 550 561 ("MPI", m_bMPIFlag, true, "Enable MPI") 562 #endif 551 563 #endif 552 564 // Coding tools … … 789 801 790 802 #endif //HHI_VSO 803 #if HHI_TOOL_PARAMETERS_I2_J0107 804 ("QTL", m_bUseQTL , true , "Use depth quad tree limitation (encoder only)" ) 805 #else 791 806 #if H_3D_QTLPC 792 807 ("LimQtPredFlag", m_bLimQtPredFlag , true , "Use Predictive Coding with QTL" ) … … 804 819 #if H_3D 805 820 ("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" ) 806 840 #endif 807 841 #endif //H_3D … … 1646 1680 1647 1681 #if H_3D_ARP 1682 #if !HHI_TOOL_PARAMETERS_I2_J0107 1648 1683 xConfirmPara( ( 0 != m_uiUseAdvResPred ) && ( 1 != m_uiUseAdvResPred ), "UseAdvResPred must be 0 or 1." ); 1649 1684 #endif 1685 #endif 1650 1686 #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 1651 1696 xConfirmPara( m_iSubPULog2Size < 3, "SubPULog2Size must be 3 or greater."); 1652 1697 xConfirmPara( m_iSubPULog2Size > 6, "SubPULog2Size must be 6 or smaller."); … … 1656 1701 xConfirmPara( m_iSubPUMPILog2Size > 6, "SubPUMPILog2Size must be 6 or smaller."); 1657 1702 xConfirmPara( ( 1 << m_iSubPUMPILog2Size ) > m_uiMaxCUWidth, "SubPUMPILog2Size must be log2(maxCUSize) or smaller."); 1703 #endif 1658 1704 #endif 1659 1705 #if ADAPTIVE_QP_SELECTION … … 2602 2648 printf("WVSO:%d ", m_bUseWVSO ); 2603 2649 #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 2604 2676 #if H_3D_QTLPC 2605 2677 printf("LimQtPredFlag:%d ", m_bLimQtPredFlag ? 1 : 0); 2606 2678 printf("QTL:%d ", m_bUseQTL); 2607 2679 #endif 2608 #if H_3D_IV_MERGE 2680 #if H_3D_IV_MERGE 2609 2681 printf("IvMvPred:%d %d", m_ivMvPredFlag[0] ? 1 : 0, m_ivMvPredFlag[1] ? 1 : 0); 2610 2682 #if H_3D_SPIVMP … … 2647 2719 printf( "MPI:%d ", m_bMPIFlag ? 1 : 0 ); 2648 2720 #endif 2721 #endif 2722 2649 2723 printf("\n\n"); 2650 2724 -
trunk/source/App/TAppEncoder/TAppEncCfg.h
r1084 r1124 132 132 Bool m_higherLayerIrapSkipFlag; 133 133 134 134 #if !HHI_TOOL_PARAMETERS_I2_J0107 135 135 #if H_3D_IV_MERGE 136 136 vector<Bool> m_ivMvPredFlag; ///< Interview motion vector prediction 137 137 138 #if H_3D_SPIVMP 138 139 Int m_iSubPULog2Size; … … 147 148 UInt m_uiARPStepNum; 148 149 #endif 150 #endif 151 149 152 #if H_3D_IC 150 153 Bool m_abUseIC; 151 154 Bool m_bUseLowLatencyICEnc; 152 155 #endif 156 157 #if !HHI_TOOL_PARAMETERS_I2_J0107 153 158 #if H_3D_NBDV_REF 154 159 Bool m_depthRefinementFlag; … … 159 164 #if H_3D 160 165 Bool m_ivMvScalingFlag; 166 #endif 161 167 #endif 162 168 #endif … … 486 492 #endif 487 493 #if H_3D_DIM 494 #if !HHI_TOOL_PARAMETERS_I2_J0107 488 495 Bool m_useDMM; ///< flag for using DMM 489 496 Bool m_useIVP; 490 497 Bool m_useSDC; ///< flag for using SDC 498 #endif 491 499 Bool m_useDLT; ///< flag for using DLT 492 500 #endif 501 #if !HHI_TOOL_PARAMETERS_I2_J0107 493 502 #if H_3D_SINGLE_DEPTH 494 503 Bool m_useSingleDepthMode; ///< flag for using single depth mode 495 504 #endif 505 #endif 496 506 #if H_3D_QTLPC 497 507 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation 498 508 #endif 509 #if !HHI_TOOL_PARAMETERS_I2_J0107 499 510 #if H_3D_INTER_SDC 500 511 Bool m_bDepthInterSDCFlag; ///< flag for inter SDC of depth map coding … … 506 517 Bool m_bMPIFlag; ///< flag for MPI of depth map coding 507 518 #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 508 539 #endif 509 540 // internal member functions -
trunk/source/App/TAppEncoder/TAppEncTop.cpp
r1084 r1124 140 140 xSetVPSVUI ( vps ); 141 141 #if H_3D 142 #if !HHI_TOOL_PARAMETERS_I2_J0107 142 143 xSetVPSExtension2 ( vps ); 144 #endif 143 145 m_ivPicLists.setVPS ( &vps ); 144 146 xDeriveDltArray ( vps, dlt ); … … 173 175 vps.printPTL(); 174 176 } 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 175 207 176 208 for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++) … … 216 248 m_cTEncTop.setDWeight ( isDepth ? m_iDWeight : 0 ); 217 249 #endif // H_3D_VSO 250 #if !HHI_TOOL_PARAMETERS_I2_J0107 218 251 #if H_3D_SPIVMP 219 252 m_cTEncTop.setSubPULog2Size (( isDepth || 0==layerIdInVps ) ? 0 : m_iSubPULog2Size ); 220 253 m_cTEncTop.setSubPUMPILog2Size ( !isDepth ? 0 : m_iSubPUMPILog2Size ); 221 254 #endif 255 #endif 222 256 #if H_3D_IC 223 257 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC ); 224 258 m_cTEncTop.setUseICLowLatencyEnc ( m_bUseLowLatencyICEnc ); 225 259 #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 ========== 227 269 #if H_3D_DIM 228 270 m_cTEncTop.setUseDMM ( isDepth ? m_useDMM : false ); 271 #if !HHI_TOOL_PARAMETERS_I2_J0107 229 272 #if H_3D_FCO 230 273 m_cTEncTop.setUseIVP ( vps.getViewIndex( layerId ) == 0 && isDepth ? m_useIVP : false ); … … 232 275 m_cTEncTop.setUseIVP ( isDepth ? m_useIVP : false ); 233 276 #endif 277 #endif 234 278 m_cTEncTop.setUseSDC ( isDepth ? m_useSDC : false ); 235 279 m_cTEncTop.setUseDLT ( isDepth ? m_useDLT : false ); 236 280 #endif 281 282 237 283 #if H_3D_SINGLE_DEPTH 238 284 m_cTEncTop.setUseSingleDepthMode ( isDepth ? m_useSingleDepthMode : false ); … … 254 300 m_cTEncTop.setUseMPI ( isDepth ? m_bMPIFlag : false ); 255 301 #endif 302 #endif 303 #endif 304 305 306 #if HHI_TOOL_PARAMETERS_I2_J0107 307 m_cTEncTop.setSps3dExtension ( m_sps3dExtension ); 256 308 #endif 257 309 #endif // H_3D … … 885 937 #endif 886 938 939 #if !LGE_DDD_REMOVAL_J0042_J0030 887 940 #if H_3D_DDD 888 941 m_acTEncTopList[ layer ]->getSliceEncoder()->setDDDPar( m_cCameraData.getCodedScale()[0][ m_acTEncTopList[layer]->getViewIndex() ], 889 942 m_cCameraData.getCodedOffset()[0][ m_acTEncTopList[layer]->getViewIndex() ], 890 943 m_cCameraData.getCamParsCodedPrecision() ); 944 #endif 891 945 #endif 892 946 Int iNumEncoded = 0; … … 1320 1374 } 1321 1375 1376 #if H_MV_FIX_NUM_VIEWS 1377 vps.initNumViews(); 1378 #endif 1322 1379 Int maxViewId = xGetMax( m_viewId ); 1323 1380 … … 1344 1401 vps.setDirectDependencyType( depLayer, refLayer, -1 ); 1345 1402 } 1346 1403 } 1347 1404 1348 1405 Int defaultDirectDependencyType = -1; … … 1375 1432 vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag ); 1376 1433 vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 ); 1434 1435 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1436 vps.setRefLayers(); 1437 #endif 1377 1438 1378 1439 // Max sub layers, + presence flag … … 1393 1454 vps.setVpsSubLayersMaxMinus1PresentFlag( subLayersMaxMinus1PresentFlag ); 1394 1455 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 1396 1549 // Max temporal id for inter layer reference pictures + presence flag 1397 1550 Bool maxTidRefPresentFlag = false; … … 1400 1553 for ( Int curLayerIdInVps = 1; curLayerIdInVps < m_numberOfLayers; curLayerIdInVps++) 1401 1554 { 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++ ) 1408 1557 { 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++) 1410 1561 { 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 } 1414 1568 } 1415 1569 } 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 ); 1419 1572 } 1420 1573 } 1421 1574 1422 1575 vps.setMaxTidRefPresentFlag( maxTidRefPresentFlag ); 1576 #endif 1577 1578 1423 1579 // Max one active ref layer flag 1424 1580 Bool maxOneActiveRefLayerFlag = true; … … 1430 1586 maxOneActiveRefLayerFlag = maxOneActiveRefLayerFlag && (ge.m_numActiveRefLayerPics <= 1); 1431 1587 } 1432 }1588 } 1433 1589 1434 1590 vps.setMaxOneActiveRefLayerFlag( maxOneActiveRefLayerFlag ); … … 1441 1597 vps.setPocLsbNotPresentFlag( layerIdInVps, true ); 1442 1598 } 1443 } 1599 } 1444 1600 1445 1601 // All Ref layers active flag … … 1447 1603 for ( Int layerIdInVps = 1; layerIdInVps < m_numberOfLayers && allRefLayersActiveFlag; layerIdInVps++) 1448 1604 { 1605 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1606 Int layerIdInNuh = vps.getLayerIdInNuh( layerIdInVps ); 1607 #endif 1449 1608 for( Int i = 0; i < ( getGOPSize() + 1) && allRefLayersActiveFlag; i++ ) 1450 1609 { … … 1453 1612 1454 1613 // 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 1455 1625 for (Int k = 0; k < m_directRefLayers[ layerIdInVps].size() && allRefLayersActiveFlag; k++ ) 1456 1626 { 1457 1627 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 1458 1632 if ( vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId && vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId ) 1633 #endif 1459 1634 { 1460 1635 Bool gopEntryFoundFlag = false; … … 1473 1648 { 1474 1649 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 1475 1661 for (Int k = 0; k < m_directRefLayers[ layerIdInVps].size(); k++ ) 1476 1662 { 1477 1663 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 1479 1668 if ( vps.getMaxTidIlRefPicsPlus1(refLayerIdInVps,layerIdInVps) > tId && vps.getSubLayersVpsMaxMinus1(refLayerIdInVps) >= tId ) 1669 #endif 1480 1670 { 1481 1671 referenceLayerFoundFlag = referenceLayerFoundFlag || ( ge.m_interLayerPredLayerIdc[l] == k ); … … 1489 1679 1490 1680 vps.setAllRefLayersActiveFlag( allRefLayersActiveFlag ); 1491 1681 #if !HHI_DEPENDENCY_SIGNALLING_I1_J0107 1492 1682 vps.setRefLayers(); 1683 #endif 1493 1684 }; 1685 1494 1686 1495 1687 GOPEntry* TAppEncTop::xGetGopEntry( Int layerIdInVps, Int poc ) … … 2018 2210 2019 2211 #if H_3D 2212 #if HHI_TOOL_PARAMETERS_I2_J0107 2213 #else 2020 2214 Void TAppEncTop::xSetVPSExtension2( TComVPS& vps ) 2021 2215 { … … 2091 2285 vps.setInterSDCFlag( layer, !isLayerZero && isDepth && m_bDepthInterSDCFlag ); 2092 2286 #endif 2287 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 2288 vps.setSingleDepthModeFlag( layer, !isLayerZero && isDepth && m_useSingleDepthMode ); 2289 #endif 2093 2290 #if H_3D_IV_MERGE 2094 2291 #if H_3D_FCO … … 2100 2297 } 2101 2298 } 2299 #endif 2102 2300 2103 2301 Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt ) -
trunk/source/App/TAppEncoder/TAppEncTop.h
r1084 r1124 92 92 #if H_3D 93 93 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 94 97 #endif 95 98 … … 146 149 #endif 147 150 #if H_3D 151 #if !HHI_TOOL_PARAMETERS_I2_J0107 148 152 Void xSetVPSExtension2( TComVPS& vps ); 153 #endif 149 154 Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt ); 150 155 #endif -
trunk/source/Lib/TAppCommon/TAppComCamPara.cpp
r655 r1124 1203 1203 m_uiCamParsCodedPrecision = uiCodedCamParsPrecision; 1204 1204 m_iLog2Precision = iLog2Precision; 1205 #if !HHI_TOOL_PARAMETERS_I2_J0107 1205 1206 #if HHI_INTERVIEW_SKIP 1206 1207 m_iCurrentFrameId = 0 ; 1208 #endif 1207 1209 #endif 1208 1210 -
trunk/source/Lib/TLibCommon/TComDataCU.cpp
r1084 r1124 154 154 #endif 155 155 156 #if !LGE_DDD_REMOVAL_J0042_J0030 156 157 #if H_3D_DDD 157 158 m_pucDisparityDerivedDepth = NULL; 158 159 m_pbUseDDD = NULL; 160 #endif 159 161 #endif 160 162 } … … 298 300 // create pattern memory 299 301 m_pcPattern = (TComPattern*)xMalloc(TComPattern, 1); 300 302 303 #if !LGE_DDD_REMOVAL_J0042_J0030 301 304 #if H_3D_DDD 302 305 m_pucDisparityDerivedDepth = (UChar* )xMalloc( UChar, uiNumPartition); 303 306 m_pbUseDDD = (Bool* ) xMalloc( Bool, uiNumPartition); 304 307 #endif 308 #endif 305 309 306 310 // create motion vector fields … … 386 390 #endif 387 391 392 #if !LGE_DDD_REMOVAL_J0042_J0030 388 393 #if H_3D_DDD 389 394 if ( m_pucDisparityDerivedDepth ) { xFree(m_pucDisparityDerivedDepth); m_pucDisparityDerivedDepth = NULL; } 390 395 if ( m_pbUseDDD ) { xFree(m_pbUseDDD); m_pbUseDDD = NULL; } 396 #endif 391 397 #endif 392 398 … … 518 524 #endif 519 525 526 #if !LGE_DDD_REMOVAL_J0042_J0030 520 527 #if H_3D_DDD 521 528 m_pucDisparityDerivedDepth[ui] = pcFrom->m_pucDisparityDerivedDepth[ui]; 522 529 m_pbUseDDD[ui] = pcFrom->m_pbUseDDD[ui]; 523 530 #endif 524 531 #endif 525 532 m_puhWidth [ui] = pcFrom->getWidth(ui); 526 533 m_puhHeight [ui] = pcFrom->getHeight(ui); … … 604 611 #endif 605 612 613 #if !LGE_DDD_REMOVAL_J0042_J0030 606 614 #if H_3D_DDD 607 615 memset( m_pucDisparityDerivedDepth + firstElement, 0, numElements * sizeof( *m_pucDisparityDerivedDepth ) ); 608 616 memset( m_pbUseDDD + firstElement, 0, numElements * sizeof( *m_pbUseDDD ) ); 617 #endif 609 618 #endif 610 619 … … 784 793 #endif 785 794 795 #if !LGE_DDD_REMOVAL_J0042_J0030 786 796 #if H_3D_DDD 787 797 m_pucDisparityDerivedDepth[ui] = 0; 788 798 m_pbUseDDD[ui] = 0; 799 #endif 789 800 #endif 790 801 … … 893 904 #endif 894 905 906 #if !LGE_DDD_REMOVAL_J0042_J0030 895 907 #if H_3D_DDD 896 908 memset( m_pucDisparityDerivedDepth, 0, iSizeInUchar ); 897 909 memset( m_pbUseDDD, 0, iSizeInBool ); 910 #endif 898 911 #endif 899 912 … … 990 1003 #endif 991 1004 1005 #if !LGE_DDD_REMOVAL_J0042_J0030 992 1006 #if H_3D_DDD 993 1007 m_pucDisparityDerivedDepth[ui] = pcCU->m_pucDisparityDerivedDepth[uiPartOffset+ui]; 994 1008 m_pbUseDDD[ui] = pcCU->m_pbUseDDD[uiPartOffset+ui]; 1009 #endif 995 1010 #endif 996 1011 … … 1139 1154 #endif 1140 1155 1156 #if !LGE_DDD_REMOVAL_J0042_J0030 1141 1157 #if H_3D_DDD 1142 1158 m_pucDisparityDerivedDepth = pcCU->getDDDepth() + uiPart; 1143 1159 m_pbUseDDD = pcCU->getUseDDD() + uiPart; 1160 #endif 1144 1161 #endif 1145 1162 … … 1292 1309 #endif 1293 1310 1311 #if !LGE_DDD_REMOVAL_J0042_J0030 1294 1312 #if H_3D_DDD 1295 1313 m_pucDisparityDerivedDepth = pcCU->getDDDepth() + uiAbsPartIdx; 1296 1314 m_pbUseDDD = pcCU->getUseDDD() + uiAbsPartIdx; 1315 #endif 1297 1316 #endif 1298 1317 … … 1360 1379 memcpy( m_puhCbf[1] + uiOffset, pcCU->getCbf(TEXT_CHROMA_U), iSizeInUchar ); 1361 1380 memcpy( m_puhCbf[2] + uiOffset, pcCU->getCbf(TEXT_CHROMA_V), iSizeInUchar ); 1362 1381 1382 #if !LGE_DDD_REMOVAL_J0042_J0030 1363 1383 #if H_3D_DDD 1364 1384 memcpy( m_pucDisparityDerivedDepth + uiOffset, pcCU->getDDDepth(), iSizeInUchar ); 1365 1385 memcpy( m_pbUseDDD + uiOffset, pcCU->getUseDDD(), iSizeInBool ); 1386 #endif 1366 1387 #endif 1367 1388 … … 1464 1485 #endif 1465 1486 1487 #if !LGE_DDD_REMOVAL_J0042_J0030 1466 1488 #if H_3D_DDD 1467 1489 memcpy( rpcCU->getDDDepth() + m_uiAbsIdxInLCU, m_pucDisparityDerivedDepth, iSizeInUchar ); 1468 1490 memcpy( rpcCU->getUseDDD() + m_uiAbsIdxInLCU, m_pbUseDDD, iSizeInBool ); 1491 #endif 1469 1492 #endif 1470 1493 … … 1600 1623 memcpy( rpcCU->getCbf(TEXT_CHROMA_U) + uiPartOffset, m_puhCbf[1], iSizeInUchar ); 1601 1624 memcpy( rpcCU->getCbf(TEXT_CHROMA_V) + uiPartOffset, m_puhCbf[2], iSizeInUchar ); 1602 1625 1626 #if !LGE_DDD_REMOVAL_J0042_J0030 1603 1627 #if H_3D_DDD 1604 1628 memcpy( rpcCU->getDDDepth() + uiPartOffset, m_pucDisparityDerivedDepth, iSizeInUchar ); 1605 1629 memcpy( rpcCU->getUseDDD() + uiPartOffset, m_pbUseDDD, iSizeInBool ); 1630 #endif 1606 1631 #endif 1607 1632 … … 1671 1696 } 1672 1697 1698 #if !LGE_DDD_REMOVAL_J0042_J0030 1673 1699 #if H_3D_DDD 1674 1700 Void TComDataCU::setDDDepthSubParts ( UChar ucDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) … … 1687 1713 } 1688 1714 1715 #endif 1689 1716 #endif 1690 1717 … … 2398 2425 Bool depthRefineFlag = false; 2399 2426 #if H_3D_NBDV_REF 2427 #if HHI_TOOL_PARAMETERS_I2_J0107 2428 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 2429 #else 2400 2430 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 2431 #endif 2401 2432 #endif // H_3D_NBDV_REF 2402 2433 … … 3309 3340 inline Bool TComDataCU::xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount) 3310 3341 { 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 3311 3345 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1) 3346 #endif 3312 3347 { 3313 3348 return false; … … 3864 3899 ) 3865 3900 { 3901 #if !SEC_A1_BASED_VSP_J0039 3866 3902 UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx; 3903 #endif 3867 3904 #if H_3D_IV_MERGE 3868 3905 //////////////////////////// … … 3877 3914 UChar tmpDir; 3878 3915 3916 #if !LGE_DDD_REMOVAL_J0042_J0030 3879 3917 #if H_3D_DDD 3880 3918 m_iUseDDDCandIdx = -1; 3919 #endif 3881 3920 #endif 3882 3921 … … 3919 3958 deriveLeftBottomIdxGeneral ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3920 3959 #if H_3D 3960 #if HHI_TOOL_PARAMETERS_I2_J0107 3961 Bool bMPIFlag = getSlice()->getMpiFlag(); 3962 #else 3921 3963 Bool bMPIFlag = getSlice()->getVPS()->getMPIFlag( getSlice()->getLayerIdInVps() ); 3964 #endif 3922 3965 Bool bIsDepth = getSlice()->getIsDepth(); 3923 3966 #endif … … 3979 4022 3980 4023 // above 4024 #if !SEC_A1_BASED_VSP_J0039 3981 4025 UInt uiAbovePartIdx = 0; 3982 4026 TComDataCU* pcCUAbove = 0; 3983 4027 pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT ); 4028 #endif 3984 4029 3985 4030 if (getAvailableFlagB1()) … … 3988 4033 #if H_3D_VSP 3989 4034 , 4035 #if SEC_A1_BASED_VSP_J0039 4036 false 4037 #else 3990 4038 ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) != 0) 3991 4039 #if H_3D_IC … … 4000 4048 ) 4001 4049 #endif 4050 #endif 4002 4051 , false 4003 4052 ); … … 4006 4055 4007 4056 // above right 4057 #if !SEC_A1_BASED_VSP_J0039 4008 4058 UInt uiAboveRightPartIdx = 0; 4009 4059 TComDataCU* pcCUAboveRight = 0; 4010 4060 pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT ); 4061 #endif 4011 4062 4012 4063 if (getAvailableFlagB0()) … … 4015 4066 #if H_3D_VSP 4016 4067 , 4068 #if SEC_A1_BASED_VSP_J0039 4069 false 4070 #else 4017 4071 ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) != 0) 4018 4072 #if H_3D_IC … … 4027 4081 ) 4028 4082 #endif 4083 #endif 4029 4084 , false 4030 4085 ); … … 4033 4088 4034 4089 // left bottom 4090 #if !SEC_A1_BASED_VSP_J0039 4035 4091 UInt uiLeftBottomPartIdx = 0; 4036 4092 TComDataCU* pcCULeftBottom = getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB ); 4093 #endif 4037 4094 4038 4095 if (getAvailableFlagA0()) … … 4041 4098 #if H_3D_VSP 4042 4099 , 4100 #if SEC_A1_BASED_VSP_J0039 4101 false 4102 #else 4043 4103 (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) != 0 4044 4104 #if H_3D_IC … … 4053 4113 ) 4054 4114 #endif 4115 #endif 4055 4116 , false 4056 4117 ); … … 4059 4120 4060 4121 // above left 4122 #if !SEC_A1_BASED_VSP_J0039 4061 4123 UInt uiAboveLeftPartIdx = 0; 4062 4124 TComDataCU* pcCUAboveLeft = 0; 4063 4125 pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr ); 4126 #endif 4064 4127 4065 4128 if (getAvailableFlagB2()) … … 4068 4131 #if H_3D_VSP 4069 4132 , 4133 #if SEC_A1_BASED_VSP_J0039 4134 false 4135 #else 4070 4136 ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) != 0) 4071 4137 #if H_3D_IC … … 4079 4145 #endif 4080 4146 ) 4147 #endif 4081 4148 #endif 4082 4149 , false … … 4276 4343 } 4277 4344 } 4345 #if !LGE_DDD_REMOVAL_J0042_J0030 4278 4346 #if H_3D_DDD 4279 4347 if( m_pcSlice->getIsDepth() && m_pcSlice->getViewIndex() != 0 && bMPIFlag ) … … 4360 4428 } 4361 4429 #endif 4430 #endif 4362 4431 ///////////////////////////////////////////////////////////////// 4363 4432 //////// DERIVE IvMC, IvMCShift,IvDCShift, IvDC Candidates ///// … … 4372 4441 Int ivCandDir [4] = {0, 0, 0, 0}; 4373 4442 4443 #if HHI_TOOL_PARAMETERS_I2_J0107 4444 Bool ivMvPredFlag = getSlice()->getIvMvPredFlag(); 4445 #else 4374 4446 Bool ivMvPredFlag = getSlice()->getVPS()->getIvMvPredFlag( getSlice()->getLayerIdInVps() ); 4447 #endif 4375 4448 4376 4449 ivMvPredFlag &= (nPSW + nPSH > 12); … … 4455 4528 4456 4529 #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 4457 4533 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable + m_mergCands[MRG_B0].m_bAvailable; 4534 #endif 4458 4535 #else 4459 4536 //left … … 4554 4631 #endif 4555 4632 4633 #if !LGE_DDD_REMOVAL_J0042_J0030 4556 4634 #if H_3D_DDD 4557 4635 // early termination … … 4561 4639 } 4562 4640 #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 4563 4684 4564 4685 #if H_3D_IV_MERGE … … 4615 4736 #endif // H_3D_IV_MERGE 4616 4737 4738 #if !SEC_A1_BASED_VSP_J0039 4617 4739 #if H_3D_VSP 4618 4740 ///////////////////////////////////////////////// … … 4648 4770 #if H_3D 4649 4771 } 4772 #endif 4650 4773 #endif 4651 4774 … … 5893 6016 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5894 6017 6018 #if HHI_TOOL_PARAMETERS_I2_J0107 6019 if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) ) 6020 #else 5895 6021 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) ) 6022 #endif 5896 6023 { 5897 6024 rcMv = cColMv.scaleMv( iScale ); … … 6076 6203 6077 6204 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 6078 6225 #if MTK_I0093 6079 6226 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ]; … … 6087 6234 6088 6235 return true; 6236 #endif 6089 6237 } 6090 6238 #endif … … 6118 6266 } 6119 6267 break; 6268 #if !SINGLE_DEPTH_SIMP_J0115 6120 6269 case 2: // Above 6121 6270 if(yP != 0) … … 6139 6288 } 6140 6289 break; 6290 #endif 6141 6291 default: 6142 6292 break; … … 6177 6327 } 6178 6328 #if H_3D_NBDV_REF 6329 #if HHI_TOOL_PARAMETERS_I2_J0107 6330 if( !m_pcSlice->getDepthRefinementFlag( ) ) 6331 #else 6179 6332 if( !m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ) ) 6333 #endif 6180 6334 { 6181 6335 bDepthRefine = false; … … 6338 6492 pDInfo->m_acNBDV = defaultDV; 6339 6493 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 6340 6527 Int valid = 0; 6341 6528 Int viewIndex = 0; … … 6389 6576 pDInfo->m_acDoNBDV = defaultDV; 6390 6577 #endif 6391 } 6578 #if LGE_SIMP_DISP_AVAIL_J0041 6579 return true; 6580 #endif 6581 } 6582 #endif 6392 6583 return false; 6393 6584 } … … 6643 6834 Bool depthRefineFlag = false; 6644 6835 #if H_3D_NBDV_REF 6836 #if HHI_TOOL_PARAMETERS_I2_J0107 6837 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6838 #else 6645 6839 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 6840 #endif 6646 6841 #endif // H_3D_NBDV_REF 6647 6842 … … 6701 6896 Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight) 6702 6897 { 6898 #if HHI_TOOL_PARAMETERS_I2_J0107 6899 Int iSubPUSize = ( getSlice()->getIsDepth() ? getSlice()->getMpiSubPbSize() : getSlice()->getSubPbSize() ); 6900 #else 6703 6901 Int iSubPUSize = 1<<getSlice()->getVPS()->getSubPULog2Size(getSlice()->getLayerId()); 6704 6902 if( getSlice()->getIsDepth() ) … … 6706 6904 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId()); 6707 6905 } 6906 #endif 6708 6907 6709 6908 iNumSPInOneLine = iPUWidth/iSubPUSize; 6909 #if !HS_SP_SIMP_J0066 6710 6910 iNumSPInOneLine = iNumSPInOneLine < 1 ? 1: iNumSPInOneLine; 6911 #endif 6711 6912 Int iNumSPInOneColumn = iPUHeight/iSubPUSize; 6913 #if !HS_SP_SIMP_J0066 6712 6914 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 6713 6919 iNumSP = iNumSPInOneLine * iNumSPInOneColumn; 6714 6920 … … 6784 6990 Bool depthRefineFlag = false; 6785 6991 #if H_3D_NBDV_REF 6992 #if HHI_TOOL_PARAMETERS_I2_J0107 6993 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6994 #else 6786 6995 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 6996 #endif 6787 6997 #endif // H_3D_NBDV_REF 6788 6998 -
trunk/source/Lib/TLibCommon/TComDataCU.h
r1084 r1124 227 227 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 228 228 #endif 229 229 #if !LGE_DDD_REMOVAL_J0042_J0030 230 230 #if H_3D_DDD 231 231 UChar* m_pucDisparityDerivedDepth; … … 234 234 UChar m_ucDDTmpDepth; 235 235 #endif 236 236 #endif 237 237 #if H_3D_IV_MERGE 238 238 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; … … 743 743 UInt getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra); 744 744 745 #if !LGE_DDD_REMOVAL_J0042_J0030 745 746 #if H_3D_DDD 746 747 UChar* getDDDepth () { return m_pucDisparityDerivedDepth; } … … 759 760 Int getUseDDDCandIdx(){ return m_iUseDDDCandIdx;} 760 761 762 #endif 761 763 #endif 762 764 -
trunk/source/Lib/TLibCommon/TComPrediction.cpp
r1084 r1124 1158 1158 pcCU->clipMv(cMv); 1159 1159 1160 #if !LGE_DDD_REMOVAL_J0042_J0030 1160 1161 #if H_3D_DDD 1161 1162 if( pcCU->getUseDDD( uiPartAddr ) ) … … 1193 1194 //return; 1194 1195 } else 1196 #endif 1195 1197 #endif 1196 1198 #if H_3D_ARP … … 1949 1951 Int a, b, i, j; 1950 1952 const Int iShift = IC_CONST_SHIFT; 1953 1951 1954 xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_U ); // Cb 1952 1955 for ( i = 0; i < cxHeight; i++ ) … … 2187 2190 x += pRef[j]; 2188 2191 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 2191 2201 } 2192 2202 iCountShift += g_aucConvertToBit[ uiWidth ] + 1; … … 2217 2227 x += pRef[0]; 2218 2228 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 2223 2238 pRef += iRefStride*2; 2224 2239 pRec += iRecStride*2; … … 2234 2249 } 2235 2250 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 2236 2260 xy += xx >> IC_REG_COST_SHIFT; 2237 2261 xx += xx >> IC_REG_COST_SHIFT; … … 2275 2299 } 2276 2300 } 2301 #if LGE_CHROMA_IC_J0050_J0034 2302 } 2303 #endif 2277 2304 } 2278 2305 #endif -
trunk/source/Lib/TLibCommon/TComRom.cpp
r1084 r1124 362 362 const UChar g_dmm1TabIdxBits[6] = 363 363 { //2x2 4x4 8x8 16x16 32x32 64x64 364 #if MTK_DMM_SIM_J0035 365 0, 7, 10, 9, 9, 13 }; 366 #else 364 367 0, 7, 10, 11, 11, 13 }; 368 #endif 365 369 366 370 const UChar g_dmm3IntraTabIdxBits[6] = … … 763 767 } 764 768 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 765 779 for( Int iK = 0; iK < uiBlockSize; iK++ ) 766 780 { … … 771 785 } 772 786 } 787 #endif 773 788 } 774 789 -
trunk/source/Lib/TLibCommon/TComSlice.cpp
r1084 r1124 179 179 } 180 180 #endif 181 #if LGE_DEFAULT_DV_J0046 182 m_iDefaultRefViewIdx = -1; 183 m_bDefaultRefViewIdxAvailableFlag = false; 184 #endif 181 185 } 182 186 … … 1874 1878 m_vpsBaseLayerInternalFlag = true; 1875 1879 m_vpsBaseLayerAvailableFlag = true; 1880 1881 #if H_MV_FIX_NUM_VIEWS 1882 m_numViews = 0; 1883 #endif 1884 1876 1885 #endif 1877 1886 … … 1909 1918 m_repFormatIdxPresentFlag = false; 1910 1919 m_maxOneActiveRefLayerFlag = false; 1920 #if H_MV_HLS_FIX 1921 m_vpsPocLsbAlignedFlag = false; 1922 #endif 1911 1923 m_directDepTypeLenMinus2 = 0; 1912 1924 … … 1915 1927 m_vpsNonVuiExtensionLength = 0; 1916 1928 m_splittingFlag = false; 1929 1917 1930 1918 1931 for( Int i = 0; i < MAX_NUM_SCALABILITY_TYPES; i++ ) … … 1943 1956 m_layerIdInNuh [i] = ( i == 0 ) ? 0 : -1; 1944 1957 m_numDirectRefLayers[i] = 0; 1958 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1959 #if H_3D 1960 m_numRefListLayers[i] = 0; 1961 #endif 1962 #endif 1945 1963 m_vpsRepFormatIdx [i] = 0; 1946 1964 m_pocLsbNotPresentFlag[i] = 0; … … 1950 1968 #if H_3D 1951 1969 m_viewIndex [i] = -1; 1970 #if !HHI_TOOL_PARAMETERS_I2_J0107 1952 1971 m_vpsDepthModesFlag [i] = false; 1953 1972 m_ivMvScalingFlag[i] = true; 1954 1973 m_bIVPFlag [i] = false; 1974 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1975 m_singleDepthModeFlag[ i ] = false; 1976 #endif 1977 #endif 1955 1978 #endif 1956 1979 … … 1961 1984 m_dependencyFlag [i][j] = false; 1962 1985 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 1963 1991 m_idPredictedLayer[i][j] = -1; 1964 1992 m_idRefLayer [i][j] = -1; … … 1971 1999 } 1972 2000 #if H_3D_ARP 2001 #if !HHI_TOOL_PARAMETERS_I2_J0107 1973 2002 m_uiUseAdvResPred[i] = 0; 1974 2003 m_uiARPStepNum[i] = 1; 1975 2004 #endif 2005 #endif 1976 2006 } 1977 2007 m_vpsVUI = new TComVPSVUI; 1978 2008 m_dpbSize = new TComDpbSize; 1979 2009 2010 #if !HHI_TOOL_PARAMETERS_I2_J0107 1980 2011 #if H_3D 1981 2012 for( Int i = 0; i < MAX_NUM_LAYERS; i++ ) … … 2010 2041 } 2011 2042 #endif 2043 #endif 2044 2012 2045 #endif 2013 2046 } … … 2099 2132 Int iNuhLId = getLayerIdInNuh( i ); 2100 2133 Int d = 0; 2134 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2135 #if H_3D 2136 Int l = 0; 2137 #endif 2138 #endif 2101 2139 Int r = 0; 2102 2140 Int p = 0; 2141 2103 2142 for( Int j = 0; j <= getMaxLayersMinus1(); j++ ) 2104 2143 { … … 2108 2147 m_idDirectRefLayer[iNuhLId][d++] = jNuhLid; 2109 2148 } 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 2110 2158 if( getDependencyFlag( i , j ) ) 2111 2159 { … … 2118 2166 } 2119 2167 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 2120 2174 m_numRefLayers [ iNuhLId ] = r; 2121 2175 m_numPredictedLayers[ iNuhLId ] = p; … … 2152 2206 2153 2207 2208 #if H_MV_FIX_NUM_VIEWS 2209 Void 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 2154 2247 Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType ) 2155 2248 { … … 2310 2403 } 2311 2404 2405 #if !H_MV_FIX_NUM_VIEWS 2312 2406 Int TComVPS::getNumViews() 2313 2407 { … … 2321 2415 } 2322 2416 } 2323 2324 2417 return numViews; 2325 2418 } 2419 #endif 2326 2420 2327 2421 … … 2562 2656 xPrintArray( "IdRefLayer" , getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefLayers, m_idRefLayer, true ); 2563 2657 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 2564 2664 std::cout << std::endl; 2565 2665 } … … 2984 3084 i++; 2985 3085 } 3086 #if SHARP_DLT_SIMP_J0029 3087 iIdxUp = bFound ? iIdxDown + 1 : iNumDepthValues-1; 3088 #else 2986 3089 // iterate over indices to find upper closest depth 2987 3090 i = iNumDepthValues-2; … … 3000 3103 // assert monotony 3001 3104 assert(iIdxDown<=iIdxUp); 3105 #endif 3002 3106 3003 3107 // assign closer depth value/idx … … 3580 3684 { 3581 3685 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 3582 3690 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 3584 3700 Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >= getTLayer() ) && ( getTLayer() == 0 ) && 3585 3701 ( vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() ); 3586 3702 #endif 3587 3703 return refLayerPicFlag; 3588 3704 } … … 3592 3708 Int refLayerPicIdc = -1; 3593 3709 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 3594 3714 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 3595 3719 { 3596 3720 if( getRefLayerPicFlag( i ) ) … … 3613 3737 { 3614 3738 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 3615 3743 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 3616 3748 { 3617 3749 numRefLayerPics += getRefLayerPicFlag( i ); … … 3638 3770 numActiveRefLayerPics = 0; 3639 3771 } 3772 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3773 #if H_3D 3774 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumRefListLayers( getLayerId() ) == 1 ) 3775 #else 3640 3776 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 ) 3777 #endif 3778 #else 3779 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 ) 3780 #endif 3641 3781 { 3642 3782 numActiveRefLayerPics = 1; … … 3651 3791 Int TComSlice::getRefPicLayerId( Int i ) 3652 3792 { 3793 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3794 #if H_3D 3795 return getVPS()->getIdRefListLayer( getLayerId(), getInterLayerPredLayerIdc( i ) ); 3796 #else 3653 3797 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 3805 Void 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 3655 3836 3656 3837 #if H_3D_ARP … … 3658 3839 { 3659 3840 Bool tempRefPicInListsFlag = false; 3841 #if HHI_TOOL_PARAMETERS_I2_J0107 3842 if( !getIvResPredFlag() || this->isIRAP()) 3843 #else 3660 3844 if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP()) 3845 #endif 3661 3846 { 3662 3847 m_nARPStepNum = 0; … … 3686 3871 } 3687 3872 } 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 3688 3876 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 3689 3881 m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0; 3882 #endif 3690 3883 } 3691 3884 … … 3869 4062 { 3870 4063 Bool setupLUT = false; 4064 4065 #if HHI_TOOL_PARAMETERS_I2_J0107 4066 setupLUT = setupLUT || getViewSynthesisPredFlag( ); 4067 #else 3871 4068 Int layerIdInVPS = getVPS()->getLayerIdInNuh( m_layerId ); 3872 3873 4069 #if H_3D_VSP 3874 4070 setupLUT = setupLUT || getVPS()->getViewSynthesisPredFlag( layerIdInVPS); 3875 4071 #endif 4072 #endif 3876 4073 3877 4074 #if H_3D_NBDV_REF 4075 #if HHI_TOOL_PARAMETERS_I2_J0107 4076 setupLUT = setupLUT || getDepthRefinementFlag( ); 4077 #else 3878 4078 setupLUT = setupLUT || getVPS()->getDepthRefinementFlag( layerIdInVPS ); 4079 #endif 3879 4080 #endif 3880 4081 3881 4082 #if H_3D_IV_MERGE 4083 #if HHI_TOOL_PARAMETERS_I2_J0107 4084 setupLUT = setupLUT || ( getIvMvPredFlag() && getIsDepth() ); 4085 #else 3882 4086 setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() ); 3883 4087 #endif 3884 4088 #endif 4089 4090 #if !LGE_DDD_REMOVAL_J0042_J0030 3885 4091 #if H_3D_DDD 3886 4092 #if H_3D_FCO … … 3896 4102 } 3897 4103 #endif 4104 #endif 3898 4105 3899 4106 if( !setupLUT ) … … 3944 4151 m_depthToDisparityF[ i ][ d ] = ( invCodScale[ i ] * d + invOffset ) >> log2Div; 3945 4152 } 3946 4153 #if !LGE_DDD_REMOVAL_J0042_J0030 3947 4154 #if H_3D_DDD 3948 4155 initializeDDDPara( vps->getCamParPrecision(), codScale[ i ], codOffset[ i ], i ); 3949 4156 #endif 3950 } 3951 } 3952 #endif 3953 #endif 3954 4157 #endif 4158 } 4159 } 4160 #endif 4161 #endif 4162 4163 #if !LGE_DDD_REMOVAL_J0042_J0030 3955 4164 #if H_3D_DDD 3956 4165 Void TComSlice::initializeDDDPara( UInt uiCamParsCodedPrecision, Int iCodedScale,Int iCodedOffset, Int iBaseViewIdx ) … … 4015 4224 4016 4225 #endif 4226 #endif 4017 4227 4018 4228 #if H_MV … … 4048 4258 #endif 4049 4259 4260 #if !LGE_DDD_REMOVAL_J0042_J0030 4050 4261 #if H_3D_DBBP 4051 4262 Int TComSlice::getDepthFromDV( Int iDV, Int iBaseViewIdx ) … … 4054 4265 } 4055 4266 #endif 4267 #endif 4268 4269 #if HHI_TOOL_PARAMETERS_I2_J0107 4270 #if H_3D 4271 4272 Void 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 4056 4368 4057 4369 /** get scaling matrix from RefMatrixID -
trunk/source/Lib/TLibCommon/TComSlice.h
r1084 r1124 861 861 TComRepFormat* m_repFormat [MAX_NUM_LAYERS]; 862 862 Bool m_maxOneActiveRefLayerFlag; 863 #if H_MV_HLS7_GEN 863 #if H_MV_HLS7_GEN || H_MV_HLS_FIX 864 864 Bool m_vpsPocLsbAlignedFlag; 865 865 #endif … … 884 884 Int m_dependencyFlag [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 885 885 886 #if H_MV_FIX_NUM_VIEWS 887 Int m_numViews; 888 #endif 886 889 Int m_numDirectRefLayers [MAX_NUM_LAYERS]; 887 890 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 888 898 889 899 Int m_numRefLayers [MAX_NUM_LAYER_IDS]; … … 909 919 Void xSetRefLayerFlags( Int currLayerId ); 910 920 // VPS EXTENSION 2 SYNTAX ELEMENTS 921 #if !HHI_TOOL_PARAMETERS_I2_J0107 911 922 #if H_3D_ARP 912 923 UInt m_uiUseAdvResPred [MAX_NUM_LAYERS ]; … … 934 945 Bool m_bIVPFlag [MAX_NUM_LAYERS ]; 935 946 #endif 947 #endif 936 948 #if H_3D 937 949 UInt m_uiCamParPrecision; … … 940 952 Int ***m_aaaiCodedScale ; 941 953 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 943 963 #if H_3D_INTER_SDC 944 964 Bool m_bInterSDCFlag[MAX_NUM_LAYERS ]; … … 949 969 #if H_3D_IV_MERGE 950 970 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 951 975 #endif 952 976 … … 1135 1159 Bool getMaxOneActiveRefLayerFlag( ) { return m_maxOneActiveRefLayerFlag; } 1136 1160 1137 #if H_MV_HLS7_GEN 1161 #if H_MV_HLS7_GEN || H_MV_HLS_FIX 1138 1162 Void setVpsPocLsbAlignedFlag( Bool flag ) { m_vpsPocLsbAlignedFlag = flag; } 1139 1163 Bool getVpsPocLsbAlignedFlag( ) { return m_vpsPocLsbAlignedFlag; } … … 1172 1196 Void setRefLayers(); 1173 1197 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 1174 1203 Int getViewIndex ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX ); } 1204 #endif 1175 1205 Int getAuxId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID ); } 1176 1206 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 1177 1214 Int getNumViews(); 1215 #endif 1178 1216 1179 1217 Bool getDependencyFlag( Int i, Int j ) { return m_dependencyFlag[i][j]; } 1180 1218 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 1181 1225 Int getNumRefLayers ( Int i ) { return m_numRefLayers[i]; } 1182 1226 Int getNumPredictedLayers ( Int i ) { return m_numPredictedLayers[i]; } 1227 1183 1228 1184 1229 Int getIdRefLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers ( i )); return m_idRefLayer [i][j]; } 1185 1230 Int getIdPredictedLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; } 1186 1231 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 1187 1237 Int getNumIndependentLayers ( ) { return m_numIndependentLayers; } 1188 1238 Int getNumLayersInTreePartition( Int i ) { return m_numLayersInTreePartition[i]; } … … 1279 1329 1280 1330 /// VPS EXTENSION 2 SYNTAX ELEMENTS 1331 1332 1281 1333 #if H_3D 1282 1334 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 1283 1338 Int getLayerIdInNuh( Int viewIndex, Bool depthFlag ); 1284 1339 1340 #if !HHI_TOOL_PARAMETERS_I2_J0107 1285 1341 #if H_3D_ARP 1286 1342 UInt getUseAdvRP ( Int layerIdInVps ) { return m_uiUseAdvResPred[layerIdInVps]; } … … 1288 1344 Void setUseAdvRP ( Int layerIdInVps, UInt val ) { m_uiUseAdvResPred[layerIdInVps] = val; } 1289 1345 Void setARPStepNum( Int layerIdInVps, UInt val ) { m_uiARPStepNum[layerIdInVps] = val; } 1346 #endif 1290 1347 #endif 1291 1348 … … 1303 1360 Int* getInvCodedOffset ( Int viewIndex ) { return m_aaaiCodedOffset[viewIndex][1]; } 1304 1361 1362 #if !HHI_TOOL_PARAMETERS_I2_J0107 1305 1363 #if H_3D_IV_MERGE 1306 1364 Void setIvMvPredFlag ( Int layerIdInVps, Bool val ) { m_ivMvPredFlag[ layerIdInVps ] = val; } … … 1346 1404 Void setMPIFlag ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; } 1347 1405 #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 1348 1410 #endif 1411 #endif 1349 1412 #endif 1350 1413 }; … … 1612 1675 }; 1613 1676 1677 #if HHI_TOOL_PARAMETERS_I2_J0107 1678 #if H_3D 1679 class TComSps3dExtension 1680 { 1681 public: 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 1745 private: 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 1614 1766 /// SPS class 1615 1767 class TComSPS … … 1711 1863 #endif 1712 1864 #if H_3D 1865 #if HHI_TOOL_PARAMETERS_I2_J0107 1866 TComSps3dExtension m_sps3dExtension; 1867 #endif 1713 1868 UInt m_uiCamParPrecision; 1714 1869 Bool m_bCamParInSliceHeader; … … 1884 2039 Void setSpsRepFormatIdx( Int val ) { m_spsRepFormatIdx = val; } 1885 2040 Int getSpsRepFormatIdx( ) { return m_spsRepFormatIdx; } 1886 // SPS Extension 2041 2042 // SPS Extension 1887 2043 Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; } 1888 2044 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 1889 2052 1890 2053 // Inference … … 2342 2505 #endif 2343 2506 #endif 2344 2507 #if !LGE_DDD_REMOVAL_J0042_J0030 2345 2508 #if H_3D_DDD 2346 2509 Int m_aiDDDInvScale [MAX_NUM_LAYERS]; … … 2348 2511 UInt m_aiDDDShift [MAX_NUM_LAYERS]; 2349 2512 #endif 2513 #endif 2350 2514 #if H_3D_SINGLE_DEPTH 2351 2515 Bool m_bApplySingleDepthMode; … … 2354 2518 Int *m_aICEnableCandidate; 2355 2519 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 ; 2356 2542 #endif 2357 2543 public: … … 2425 2611 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2426 2612 #endif 2613 #if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060 2427 2614 #if H_3D_SINGLE_DEPTH 2428 2615 Void setApplySingleDepthMode( Bool b ) { m_bApplySingleDepthMode = b; } 2429 2616 Bool getApplySingleDepthMode() { return m_bApplySingleDepthMode; } 2617 #endif 2430 2618 #endif 2431 2619 #if H_3D_IC … … 2665 2853 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; }; 2666 2854 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; }; 2855 #if !HHI_TOOL_PARAMETERS_I2_J0107 2667 2856 Bool getVpsDepthModesFlag () { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); } 2668 2857 Bool getIVPFlag () { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); } 2858 #endif 2669 2859 #endif 2670 2860 #if H_3D_IC … … 2724 2914 Int getPocMsbVal( ) { return m_pocMsbVal; } 2725 2915 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 2726 2920 Bool getPocMsbValRequiredFlag() { return m_pocMsbValRequiredFlag; } 2727 2921 Void setPocMsbValRequiredFlag(Bool x) { m_pocMsbValRequiredFlag = x; } 2922 #endif 2923 2728 2924 2729 2925 UInt getPocLsbValLen() { return getSPS()->getBitsForPOC(); }; //log2_max_pic_order_cnt_lsb_minus4 + 4 … … 2742 2938 // Additional variables derived in slice header semantics 2743 2939 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 2744 2945 Int getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2745 2946 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 2746 2953 2747 2954 Int getRefLayerPicFlag( Int i ); … … 2759 2966 TComPic* getPicFromRefPicSetInterLayer( Int setIdc, Int layerId ); 2760 2967 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 2761 2992 // Inference 2762 2993 Bool inferPocMsbValPresentFlag(); 2763 2994 #endif 2995 #if !LGE_DDD_REMOVAL_J0042_J0030 2764 2996 #if H_3D_DDD 2765 2997 Void initializeDDDPara( UInt uiCamParsCodedPrecision, Int iCodedScale,Int iCodedOffset, Int iBaseViewIdx ); 2766 2998 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( ); 2767 3010 #endif 2768 3011 -
trunk/source/Lib/TLibCommon/TypeDef.h
r1084 r1124 103 103 // MTK_NBDV_TN_FIX_E0172 fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172 104 104 // 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 105 106 106 107 #define H_3D_ARP 1 // Advanced residual prediction (ARP), JCT3V-D0177 … … 114 115 // SHARP_ARP_CHROMA_I0104 115 116 // 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 116 118 117 119 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 … … 154 156 // NTT_STORE_SPDV_VSP_G0148 Storing Sub-PU based DV for VSP 155 157 // Restricted bi-prediction for VSP 158 #define SEC_A1_BASED_VSP_J0039 1 // Removal of redundant VSP in Merge list 159 156 160 157 161 #define H_3D_IV_MERGE 1 // Inter-view motion merge candidate … … 178 182 // SEC_SIMP_SHIFTED_DV_I0086 Simplification of Shifted DV candidate, JCT3V-I0086 179 183 184 #define MTK_MRG_LIST_SIZE_CLEANUP_J0059 1 // Include VSP for deriving merge candidate list size, JCT3V-J0059 180 185 181 186 … … 231 236 232 237 #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 234 244 235 245 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 253 263 // SHARP_DBBP_SIMPLE_FLTER_I0109 1 // Simple condition and one dimensional filter for DBBP 254 264 // 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 256 266 257 267 #define H_3D_DDD 1 // Disparity derived depth coding 268 #define LGE_DDD_REMOVAL_J0042_J0030 1 // DDD removal 258 269 259 270 #define H_3D_FCO 0 // Flexible coding order for 3D 260 271 #if H_3D_FCO 261 #define H_3D_FCO 1272 #define H_3D_FCO 1 262 273 #endif 263 274 … … 272 283 #define H_3D_FAST_DEPTH_INTRA 1 // Fast DMM and RBC Mode Selection 273 284 // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX 285 #define MTK_DMM_SIM_J0035 1 274 286 #endif 275 287 … … 288 300 // Fixes 289 301 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 290 313 ///// ***** SINGLE DEPTH MODE ********* 291 314 #if H_3D_SINGLE_DEPTH 292 315 #define SINGLE_DEPTH_MODE_CAND_LIST_SIZE 2 // size of the sample candidate list 316 #define SINGLE_DEPTH_SIMP_J0115 1 293 317 #endif 294 318 … … 307 331 #define DVFROM_ABOVE 1 308 332 #define IDV_CANDS 2 333 #define LGE_DEFAULT_DV_J0046 1 309 334 #endif 310 335 … … 342 367 #define IC_SHIFT_DIFF 12 343 368 #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 344 370 #endif 345 371 … … 363 389 #endif 364 390 391 392 #if H_3D_SPIVMP 393 #define HS_SP_SIMP_J0066 1 394 #endif 395 365 396 ///////////////////////////////////////////////////////////////////////////////// 366 397 /////////////////////////////////// MV_HEVC HLS ////////////////////////////// 367 398 ///////////////////////////////////////////////////////////////////////////////// 368 399 // TBD: Check if integration is necessary. 400 401 #define H_MV_HLS_FIX 1 369 402 #define H_MV_HLS_PTL_LIMITS 0 370 403 #define H_MV_HLS7_GEN 0 // General changes (not tested) … … 902 935 enum DefaultMergCandOrder 903 936 { 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 904 951 MRG_T = 0, ///< MPI 905 952 MRG_D, ///< DDD … … 914 961 MRG_IVSHIFT, ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive) 915 962 MRG_COL ///< Temporal co-located 963 #endif 916 964 }; 917 965 #endif -
trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1084 r1124 721 721 } 722 722 723 #if HHI_TOOL_PARAMETERS_I2_J0107 724 Void TDecCavlc::parseSPS(TComSPS* pcSPS) 725 #else 723 726 #if H_3D 724 727 Void TDecCavlc::parseSPS(TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 725 728 #else 726 729 Void TDecCavlc::parseSPS(TComSPS* pcSPS) 730 #endif 727 731 #endif 728 732 { … … 993 997 if ( pcSPS->getSps3dExtensionFlag() ) 994 998 { 999 #if HHI_TOOL_PARAMETERS_I2_J0107 1000 parseSPS3dExtension( pcSPS ); 1001 #else 995 1002 parseSPSExtension2( pcSPS, viewIndex, depthFlag ); 1003 #endif 996 1004 } 997 1005 … … 1020 1028 1021 1029 #if H_3D 1030 #if HHI_TOOL_PARAMETERS_I2_J0107 1031 Void 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 1022 1060 Void TDecCavlc::parseSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 1023 1061 { 1024 1062 1025 1063 } 1064 #endif 1026 1065 #endif 1027 1066 … … 1032 1071 READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 ); 1033 1072 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 1034 1115 READ_UVLC( uiCode, "num_ref_loc_offsets" ); assert( uiCode == 0 ); 1116 #endif 1035 1117 } 1036 1118 … … 1155 1237 { 1156 1238 #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 1157 1251 m_pcBitstream->readOutTrailingBits(); 1158 1252 pcVPS->createCamPars(pcVPS->getNumViews()); … … 1162 1256 { 1163 1257 #endif 1258 #endif 1164 1259 #endif 1165 1260 while ( xMoreRbspData() ) … … 1234 1329 } 1235 1330 } 1331 1332 #if H_MV_FIX_NUM_VIEWS 1333 pcVPS->initNumViews(); 1334 #endif 1236 1335 1237 1336 READ_CODE( 4, uiCode, "view_id_len" ); pcVPS->setViewIdLen( uiCode ); … … 1342 1441 for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ ) 1343 1442 { 1443 #if H_MV_HLS_FIX 1444 if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) ) 1445 #else 1344 1446 if( i >= pcVPS->getNumLayerSets( ) ) 1447 #endif 1345 1448 { 1346 1449 READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode ); … … 1413 1516 1414 1517 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 1416 1520 READ_FLAG( uiCode, "vps_poc_lsb_aligned_flag" ); pcVPS->setVpsPocLsbAlignedFlag( uiCode == 1 ); 1417 1521 #endif … … 1463 1567 parseVPSVUI( pcVPS ); 1464 1568 } 1569 #if H_MV_HLS_FIX 1570 else 1571 #endif 1465 1572 { 1466 1573 TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( ); … … 1838 1945 1839 1946 #if H_3D 1947 #if HHI_VPS_3D_EXTENSION_I3_J0107 1948 Void TDecCavlc::parseVPS3dExtension( TComVPS* pcVPS ) 1949 #else 1840 1950 Void TDecCavlc::parseVPSExtension2( TComVPS* pcVPS ) 1951 #endif 1841 1952 { 1842 1953 UInt uiCode; 1954 1955 #if !HHI_TOOL_PARAMETERS_I2_J0107 1843 1956 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1844 1957 { … … 1903 2016 READ_FLAG( uiCode, "depth_inter_SDC_flag" ); pcVPS->setInterSDCFlag( i, uiCode ? true : false ); 1904 2017 #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 1908 2025 1909 2026 UInt uiCamParPrecision = 0; … … 1912 2029 1913 2030 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 1914 2036 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++) 1915 2037 { 2038 #endif 1916 2039 pcVPS->setCamParPresent ( viewIndex, false ); 1917 2040 pcVPS->setHasCamParInSliceHeader( viewIndex, false ); … … 1922 2045 if ( !bCamParSlice ) 1923 2046 { 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 ); 1926 2051 Int iCode; 1927 2052 READ_SVLC( iCode, "vps_cp_scale" ); m_aaiTempScale [ uiBaseIndex ][ viewIndex ] = iCode; … … 1932 2057 } 1933 2058 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 1934 2071 } 1935 2072 } … … 1994 2131 #endif 1995 2132 rpcSlice->setSPS(sps); 2133 #if HHI_TOOL_PARAMETERS_I2_J0107 2134 #if H_3D 2135 rpcSlice->init3dToolParameters(); 2136 #endif 2137 #endif 1996 2138 rpcSlice->setPPS(pps); 1997 2139 if( pps->getDependentSliceSegmentsEnabledFlag() && ( !firstSliceSegmentInPic )) … … 2065 2207 rpcSlice->checkCrossLayerBlaFlag( ); 2066 2208 2067 #if !H_MV_HLS7_GEN 2209 #if !H_MV_HLS7_GEN && !H_MV_HLS_FIX 2068 2210 if ( rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb ) 2069 2211 { … … 2350 2492 Bool interLayerPredLayerIdcPresentFlag = false; 2351 2493 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 2352 2498 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 2353 2503 { 2354 2504 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 2355 2509 if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 ) 2510 #endif 2511 #else 2512 if( rpcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 ) 2513 #endif 2356 2514 { 2357 2515 if( !vps->getMaxOneActiveRefLayerFlag()) … … 2359 2517 READ_CODE( rpcSlice->getNumInterLayerRefPicsMinus1Len( ), uiCode, "num_inter_layer_ref_pics_minus1" ); rpcSlice->setNumInterLayerRefPicsMinus1( uiCode ); 2360 2518 } 2519 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2520 #if H_3D 2521 if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumRefListLayers( layerId ) ) 2522 #else 2361 2523 if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) ) 2524 #endif 2525 #else 2526 if ( rpcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) ) 2527 #endif 2362 2528 { 2363 2529 interLayerPredLayerIdcPresentFlag = true; … … 2545 2711 } 2546 2712 #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 2547 2716 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 ) 2717 #endif 2548 2718 { 2549 2719 UInt uiCodeTmp = 0; … … 2559 2729 } 2560 2730 #endif 2731 #if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060 2561 2732 #if H_3D_SINGLE_DEPTH 2562 2733 if(rpcSlice->getIsDepth()) … … 2567 2738 } 2568 2739 #endif 2740 #endif 2569 2741 if (!rpcSlice->isIntra()) 2570 2742 { 2571 2743 READ_UVLC( uiCode, "five_minus_max_num_merge_cand"); 2572 2744 #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 2573 2752 if(rpcSlice->getIsDepth()) 2574 2753 { … … 2580 2759 { 2581 2760 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 2582 2765 rpcSlice->setMaxNumMergeCand(( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode); 2583 } 2584 2766 #endif 2767 } 2768 #endif 2585 2769 #else 2586 2770 rpcSlice->setMaxNumMergeCand(MRG_MAX_NUM_CANDS - uiCode); … … 2742 2926 2743 2927 // Derive the value of PocMs8bValRequiredFlag 2928 #if !H_MV_HLS_FIX 2744 2929 rpcSlice->setPocMsbValRequiredFlag( rpcSlice->getCraPicFlag() || rpcSlice->getBlaPicFlag() 2745 2930 /* || TODO related to vps_poc_lsb_aligned_flag */ 2746 2931 ); 2747 2932 #endif 2933 2934 #if H_MV_HLS_FIX 2935 if( !rpcSlice->getPocMsbValRequiredFlag() && rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() ) 2936 #else 2748 2937 if( !rpcSlice->getPocMsbValRequiredFlag() /* TODO && rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ ) 2938 #endif 2749 2939 { 2750 2940 READ_FLAG( uiCode, "poc_msb_val_present_flag" ); rpcSlice->setPocMsbValPresentFlag( uiCode == 1 ); -
trunk/source/Lib/TLibDecoder/TDecCAVLC.h
r1084 r1124 90 90 #endif 91 91 #if H_3D 92 #if HHI_VPS_3D_EXTENSION_I3_J0107 93 Void parseVPS3dExtension ( TComVPS* pcVPS ); 94 #else 92 95 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 93 101 Void parseSPSExtension2 ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 94 102 Void parseSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 103 #endif 95 104 #else 96 105 Void parseSPS ( TComSPS* pcSPS ); -
trunk/source/Lib/TLibDecoder/TDecCu.cpp
r1084 r1124 291 291 DTRACE_CU_S("=========== coding_unit ===========\n") 292 292 #endif 293 294 293 #if !LGE_DDD_REMOVAL_J0042_J0030 295 294 #if H_3D_DDD 296 295 pcCU->setUseDDD( false, uiAbsPartIdx, uiDepth ); 296 #endif 297 297 #endif 298 298 … … 315 315 { 316 316 #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 317 320 if( pcCU->getSlice()->getVPS()->getUseAdvRP( pcCU->getSlice()->getLayerId() ) || pcCU->getSlice()->getVPS()->getIvMvPredFlag( pcCU->getSlice()->getLayerId() )) 321 #endif 318 322 #else 319 323 #if H_3D_ARP … … 345 349 #endif 346 350 #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 347 354 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 348 356 { 349 357 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true); … … 452 460 #endif 453 461 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 454 462 #if !LGE_DDD_REMOVAL_J0042_J0030 455 463 #if H_3D_DDD 456 464 if( uiMergeIndex == m_ppcCU[uiDepth]->getUseDDDCandIdx() ) … … 460 468 pcCU->setDDDepthSubParts( m_ppcCU[uiDepth]->getDDTmpDepth(),uiAbsPartIdx, 0, uiDepth ); 461 469 } 470 #endif 462 471 #endif 463 472 … … 735 744 //construction of depth candidates 736 745 Pel testDepth; 746 #if SINGLE_DEPTH_SIMP_J0115 747 Pel DepthNeighbours[2]; 748 #else 737 749 Pel DepthNeighbours[5]; 750 #endif 738 751 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 739 755 for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 756 #endif 740 757 { 741 758 if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i)) … … 745 762 DepthNeighbours[index]=testDepth; 746 763 index++; 764 #if !SINGLE_DEPTH_SIMP_J0115 747 765 for(Int j=0;j<index-1;j++) 748 766 { … … 753 771 } 754 772 } 773 #endif 755 774 } 756 775 … … 1063 1082 } 1064 1083 } 1065 1084 1066 1085 TextType eText = ( uiChromaId > 0 ? TEXT_CHROMA_V : TEXT_CHROMA_U ); 1067 1086 UInt uiWidth = pcCU ->getWidth ( 0 ) >> ( uiTrDepth + 1 ); … … 1071 1090 Pel* piPred = ( uiChromaId > 0 ? pcPredYuv->getCrAddr( uiAbsPartIdx ) : pcPredYuv->getCbAddr( uiAbsPartIdx ) ); 1072 1091 Pel* piResi = ( uiChromaId > 0 ? pcResiYuv->getCrAddr( uiAbsPartIdx ) : pcResiYuv->getCbAddr( uiAbsPartIdx ) ); 1073 1092 1074 1093 UInt uiNumCoeffInc = ( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() * pcCU->getSlice()->getSPS()->getMaxCUHeight() ) >> ( pcCU->getSlice()->getSPS()->getMaxCUDepth() << 1 ) ) >> 2; 1075 1094 TCoeff* pcCoeff = ( uiChromaId > 0 ? pcCU->getCoeffCr() : pcCU->getCoeffCb() ) + ( uiNumCoeffInc * uiAbsPartIdx ); 1076 1095 1077 1096 UInt uiChromaPredMode = pcCU->getChromaIntraDir( 0 ); 1078 1097 1079 1098 UInt uiZOrder = pcCU->getZorderIdxInCU() + uiAbsPartIdx; 1080 1099 Pel* piRecIPred = ( uiChromaId > 0 ? pcCU->getPic()->getPicYuvRec()->getCrAddr( pcCU->getAddr(), uiZOrder ) : pcCU->getPic()->getPicYuvRec()->getCbAddr( pcCU->getAddr(), uiZOrder ) ); … … 1087 1106 1088 1107 pcCU->getPattern()->initAdiPatternChroma( pcCU, uiAbsPartIdx, uiTrDepth, 1089 1090 1091 1092 1108 m_pcPrediction->getPredicBuf (), 1109 m_pcPrediction->getPredicBufWidth (), 1110 m_pcPrediction->getPredicBufHeight (), 1111 bAboveAvail, bLeftAvail ); 1093 1112 Int* pPatChroma = ( uiChromaId > 0 ? pcCU->getPattern()->getAdiCrBuf( uiWidth, uiHeight, m_pcPrediction->getPredicBuf() ) : pcCU->getPattern()->getAdiCbBuf( uiWidth, uiHeight, m_pcPrediction->getPredicBuf() ) ); 1094 1113 1095 1114 //===== get prediction signal ===== 1096 1115 { … … 1107 1126 if ( pcCU->getCbf( uiAbsPartIdx, eText, uiTrDepth ) ) 1108 1127 { 1109 //===== inverse transform =====1110 Int curChromaQpOffset;1111 if(eText == TEXT_CHROMA_U)1112 {1113 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb();1114 }1115 else1116 {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]; 1122 1141 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 } 1143 1162 else 1144 1163 { -
trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
r1084 r1124 55 55 Void TDecEntropy::decodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 56 56 { 57 if( !pcCU->getSlice()->getIntraSingleFlag() ) 58 { 59 return; 60 } 61 #if ALIGN_J0060_J0107 62 #else 57 63 if ( !pcCU->getSlice()->getIsDepth() ) 58 64 { 59 65 return; 60 66 } 67 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 68 if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps())) 69 { 70 return; 71 } 72 #else 61 73 if(!pcCU->getSlice()->getApplySingleDepthMode()) 62 74 { 63 75 return; 64 76 } 77 #endif 78 #endif 79 65 80 m_pcEntropyDecoderIf->parseSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth ); 66 81 } … … 152 167 153 168 #if H_3D_DBBP 169 #if SEC_DBBP_VIEW_REF_CHECK_J0037 170 #if HHI_TOOL_PARAMETERS_I2_J0107 171 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 172 #else 173 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() ) 174 #endif 175 #else 154 176 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 ) 177 #endif 155 178 { 156 179 decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth); … … 337 360 } 338 361 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 339 362 #if !LGE_DDD_REMOVAL_J0042_J0030 340 363 #if H_3D_DDD 341 364 if( uiMergeIndex == pcSubCU->getUseDDDCandIdx() ) … … 349 372 pcCU->setUseDDD( false, uiSubPartIdx, uiPartIdx, uiDepth ); 350 373 } 374 #endif 351 375 #endif 352 376 … … 828 852 pcCU->setSDCFlagSubParts( false, uiAbsPartIdx, uiDepth ); 829 853 854 #if HHI_TOOL_PARAMETERS_I2_J0107 855 if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getInterSdcFlag() ) || 856 ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getIntraSdcWedgeFlag() ) ) 857 #else 830 858 if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) || 831 859 ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getVpsDepthModesFlag( pcCU->getSlice()->getLayerIdInVps() ) ) ) 860 #endif 832 861 { 833 862 return; -
trunk/source/Lib/TLibDecoder/TDecEntropy.h
r1084 r1124 66 66 67 67 virtual Void parseVPS ( TComVPS* pcVPS ) = 0; 68 #if HHI_TOOL_PARAMETERS_I2_J0107 69 virtual Void parseSPS ( TComSPS* pcSPS ) = 0; 70 #else 68 71 #if H_3D 69 72 virtual Void parseSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) = 0; 70 73 #else 71 74 virtual Void parseSPS ( TComSPS* pcSPS ) = 0; 75 #endif 72 76 #endif 73 77 #if H_3D … … 157 161 Void resetEntropy ( TComSlice* p) { m_pcEntropyDecoderIf->resetEntropy(p); } 158 162 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 159 166 #if H_3D 160 167 Void decodeSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) { m_pcEntropyDecoderIf->parseSPS(pcSPS, viewIndex, depthFlag ); } 161 168 #else 162 169 Void decodeSPS ( TComSPS* pcSPS ) { m_pcEntropyDecoderIf->parseSPS(pcSPS); } 170 #endif 163 171 #endif 164 172 #if H_3D -
trunk/source/Lib/TLibDecoder/TDecSbac.cpp
r1084 r1124 702 702 Bool bParseSplitFlag = true; 703 703 704 705 #if HHI_TOOL_PARAMETERS_I2_J0107 706 Bool bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag(); 707 #else 704 708 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 705 709 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 710 #endif 706 711 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 707 712 Bool bDepthMapDetect = (pcTexture != NULL); … … 756 761 #if H_3D_QTLPC 757 762 Bool bParsePartSize = true; 763 764 #if HHI_TOOL_PARAMETERS_I2_J0107 765 Bool bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag(); 766 #else 758 767 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 759 768 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 769 #endif 760 770 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 761 771 Bool bDepthMapDetect = (pcTexture != NULL); … … 982 992 { 983 993 #if H_3D_DIM 994 #if HHI_TOOL_PARAMETERS_I2_J0107 995 if( pcCU->getSlice()->getIntraSdcWedgeFlag() || pcCU->getSlice()->getIntraContourFlag() ) 996 #else 984 997 if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() ) 998 #endif 985 999 { 986 1000 parseIntraDepth( pcCU, absPartIdx+partOffset*j, depth ); … … 1096 1110 UInt uiTabIdx = 0; 1097 1111 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 1098 1117 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 1099 1118 } break; … … 1124 1143 if( uiIsDimMode ) 1125 1144 { 1145 #if HHI_TOOL_PARAMETERS_I2_J0107 1146 if( pcCU->getSlice()->getIntraSdcWedgeFlag() && pcCU->getSlice()->getIntraContourFlag() ) 1147 #else 1126 1148 if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag() ) 1149 #endif 1127 1150 { 1128 1151 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) ); … … 1136 1159 } 1137 1160 } 1161 #if HHI_TOOL_PARAMETERS_I2_J0107 1162 else if ( pcCU->getSlice()->getIntraSdcWedgeFlag() ) 1163 #else 1138 1164 else if ( pcCU->getSlice()->getVpsDepthModesFlag() ) 1165 #endif 1139 1166 { 1140 1167 pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth ); 1141 1168 } 1169 #if HHI_TOOL_PARAMETERS_I2_J0107 1170 else if( pcCU->getSlice()->getIntraContourFlag() ) 1171 #else 1142 1172 else if( pcCU->getSlice()->getIVPFlag() ) 1173 #endif 1143 1174 { 1144 1175 pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth ); … … 2120 2151 Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2121 2152 { 2153 #if HHI_TOOL_PARAMETERS_I2_J0107 2154 AOF( pcCU->getSlice()->getDepthBasedBlkPartFlag() ); 2155 #else 2122 2156 AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ); 2157 #endif 2123 2158 AOF( !pcCU->getSlice()->getIsDepth() ); 2124 2159 -
trunk/source/Lib/TLibDecoder/TDecSbac.h
r1084 r1124 76 76 Void setBitstream ( TComInputBitstream* p ) { m_pcBitstream = p; m_pcTDecBinIf->init( p ); } 77 77 Void parseVPS ( TComVPS* /*pcVPS*/ ) {} 78 #if HHI_TOOL_PARAMETERS_I2_J0107 79 Void parseSPS ( TComSPS* /*pcSPS*/ ) {} 80 #else 78 81 #if H_3D 79 82 Void parseSPS ( TComSPS* /*pcSPS*/ , Int /*viewIndex*/, Bool /*depthFlag*/ ) {} 80 83 #else 81 84 Void parseSPS ( TComSPS* /*pcSPS*/ ) {} 85 #endif 82 86 #endif 83 87 #if H_3D -
trunk/source/Lib/TLibDecoder/TDecSlice.cpp
r976 r1124 280 280 iNumSubstreamsPerTile = 1; 281 281 } 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 282 314 283 315 if ( (iCUAddr == rpcPic->getPicSym()->getTComTile(rpcPic->getPicSym()->getTileIdxMap(iCUAddr))->getFirstCUAddr()) && // 1st in tile. -
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r1084 r1124 726 726 727 727 #endif 728 #if HHI_TOOL_PARAMETERS_I2_J0107 729 #if H_3D 730 m_apcSlicePilot->init3dToolParameters(); 731 #endif 732 #endif 728 733 pps->setSPS(sps); 729 734 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1); … … 1082 1087 pcSlice->getTempRefPicLists( m_cListPic, m_refPicSetInterLayer0, m_refPicSetInterLayer1, tempRefPicLists, usedAsLongTerm, numPocTotalCurr); 1083 1088 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 1084 1094 #if H_3D_ARP 1085 1095 pcSlice->setARPStepNum(m_ivPicLists); … … 1234 1244 TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 ); 1235 1245 assert( vps != 0 ); 1246 #if HHI_TOOL_PARAMETERS_I2_J0107 1247 m_cEntropyDecoder.decodeSPS( sps ); 1248 #else 1236 1249 m_cEntropyDecoder.decodeSPS( sps, vps->getViewIndex( m_layerId ), ( vps->getDepthId( m_layerId ) == 1 ) ); 1250 #endif 1237 1251 #else 1238 1252 m_cEntropyDecoder.decodeSPS( sps ); -
trunk/source/Lib/TLibDecoder/TDecTop.h
r976 r1124 83 83 #endif 84 84 85 #if !LGE_DDD_REMOVAL_J0042_J0030 85 86 #if H_3D_DDD 86 87 Int getCodedScale( Int iBaseView, Int iCureView){ return m_aaiCodedScale[ iBaseView ][ iCureView ];} 87 88 Int getCodedOffset( Int iBaseView, Int iCureView){ return m_aaiCodedOffset[ iBaseView ][ iCureView ];} 88 89 UInt getCamParsCodedPrecision(){ return m_vps->getCamParPrecision(); } 90 #endif 89 91 #endif 90 92 -
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r1084 r1124 638 638 } 639 639 640 #if HHI_TOOL_PARAMETERS_I2_J0107 641 Void TEncCavlc::codeSPS( TComSPS* pcSPS ) 642 #else 640 643 #if H_3D 641 644 Void TEncCavlc::codeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 642 645 #else 643 646 Void TEncCavlc::codeSPS( TComSPS* pcSPS ) 647 #endif 644 648 #endif 645 649 { … … 842 846 if ( pcSPS->getSps3dExtensionFlag() ) 843 847 { 848 #if HHI_TOOL_PARAMETERS_I2_J0107 849 codeSPS3dExtension( pcSPS ); 850 #else 844 851 codeSPSExtension2( pcSPS, viewIndex, depthFlag ); 852 #endif 845 853 } 846 854 … … 863 871 WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" ); 864 872 WRITE_UVLC( 0, "num_ref_loc_offsets" ); 873 #if H_MV_HLS_FIX 874 WRITE_FLAG( 0 , "colour_mapping_enabled_flag" ); 875 #endif 876 865 877 } 866 878 … … 868 880 869 881 #if H_3D 882 #if HHI_TOOL_PARAMETERS_I2_J0107 883 Void 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 870 911 Void TEncCavlc::codeSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 871 912 { 872 913 873 914 } 915 #endif 874 916 #endif 875 917 … … 969 1011 codeVPSExtension( pcVPS ); 970 1012 #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 972 1019 m_pcBitIf->writeAlignOne(); 973 1020 codeVPSExtension2( pcVPS ); 1021 #endif 974 1022 WRITE_FLAG( 0, "vps_extension3_flag" ); 975 1023 #else … … 1141 1189 for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ ) 1142 1190 { 1191 #if H_MV_HLS_FIX 1192 if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) ) 1193 #else 1143 1194 if( i >= pcVPS->getNumLayerSets( ) ) 1195 #endif 1144 1196 { 1145 1197 WRITE_CODE( pcVPS->getLayerSetIdxForOlsMinus1( i ), pcVPS->getLayerSetIdxForOlsMinus1Len( i ) , "layer_set_idx_for_ols_minus1[i]" ); … … 1211 1263 1212 1264 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 1214 1266 WRITE_FLAG( pcVPS->getVpsPocLsbAlignedFlag( ) ? 1 : 0 , "vps_poc_lsb_aligned_flag" ); 1215 1267 #endif … … 1261 1313 codeVPSVUI( pcVPS ); 1262 1314 } 1315 #if H_MV_HLS_FIX 1316 else 1317 #endif 1263 1318 { 1264 1319 TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( ); … … 1575 1630 1576 1631 #if H_3D 1632 #if HHI_VPS_3D_EXTENSION_I3_J0107 1633 Void TEncCavlc::codeVPS3dExtension( TComVPS* pcVPS ) 1634 #else 1577 1635 Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS ) 1636 #endif 1578 1637 { 1638 #if !HHI_TOOL_PARAMETERS_I2_J0107 1579 1639 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1580 1640 { … … 1619 1679 WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" ); 1620 1680 #endif 1681 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1682 WRITE_FLAG( pcVPS->getSingleDepthModeFlag( i ) ? 1 : 0, "single_depth_mode_flag" ); 1683 #endif 1621 1684 } 1622 1685 } 1623 1686 } 1687 #endif 1624 1688 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" ); 1625 1689 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++) … … 1725 1789 } 1726 1790 pcSlice->checkCrossLayerBlaFlag( ); 1727 #if !H_MV_HLS7_GEN 1791 #if !H_MV_HLS7_GEN && !H_MV_HLS_FIX 1728 1792 if ( pcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb ) 1729 1793 { … … 1887 1951 Bool interLayerPredLayerIdcPresentFlag = false; 1888 1952 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 1889 1957 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 1890 1962 { 1891 1963 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 1892 1968 if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 ) 1969 #endif 1970 #else 1971 if( pcSlice->getInterLayerPredEnabledFlag() && vps->getNumDirectRefLayers( layerId ) > 1 ) 1972 #endif 1893 1973 { 1894 1974 if( !vps->getMaxOneActiveRefLayerFlag()) … … 1896 1976 WRITE_CODE( pcSlice->getNumInterLayerRefPicsMinus1( ), pcSlice->getNumInterLayerRefPicsMinus1Len( ), "num_inter_layer_ref_pics_minus1" ); 1897 1977 } 1978 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1979 #if H_3D 1980 if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumRefListLayers( layerId ) ) 1981 #else 1898 1982 if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) ) 1983 #endif 1984 #else 1985 if ( pcSlice->getNumActiveRefLayerPics() != vps->getNumDirectRefLayers( layerId ) ) 1986 #endif 1899 1987 { 1900 1988 interLayerPredLayerIdcPresentFlag = true; … … 2037 2125 } 2038 2126 #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 2039 2130 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 ) 2131 #endif 2040 2132 { 2041 2133 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); … … 2046 2138 } 2047 2139 #endif 2140 #if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060 2048 2141 #if H_3D_SINGLE_DEPTH 2049 2142 if(pcSlice->getIsDepth()) … … 2052 2145 } 2053 2146 #endif 2147 #endif 2054 2148 #if H_3D_IV_MERGE 2055 2149 assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS_MEM); … … 2060 2154 { 2061 2155 #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 2062 2163 if(pcSlice->getIsDepth()) 2063 2164 { … … 2069 2170 { 2070 2171 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 2071 2176 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 2073 2180 #else 2074 2181 WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); … … 2136 2243 { 2137 2244 // Derive the value of PocMsbValRequiredFlag 2245 #if !H_MV_HLS_FIX 2138 2246 pcSlice->setPocMsbValRequiredFlag( pcSlice->getCraPicFlag() || pcSlice->getBlaPicFlag() 2139 2247 /* || related to vps_poc_lsb_aligned_flag */ 2140 2248 ); 2249 #endif 2141 2250 2142 2251 // Determine value of SH extension length. … … 2156 2265 2157 2266 2267 #if H_MV_HLS_FIX 2268 if( !pcSlice->getPocMsbValRequiredFlag() && pcSlice->getVPS()->getVpsPocLsbAlignedFlag() ) 2269 #else 2158 2270 if( !pcSlice->getPocMsbValRequiredFlag() /* TODO && pcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ ) 2271 #endif 2159 2272 { 2160 2273 shExtnLengthInBit++; // For poc_msb_val_present_flag … … 2219 2332 pcSlice->checkPocLsbVal(); 2220 2333 2334 #if H_MV_HLS_FIX 2335 if( !pcSlice->getPocMsbValRequiredFlag() && pcSlice->getVPS()->getVpsPocLsbAlignedFlag() ) 2336 #else 2221 2337 if( !pcSlice->getPocMsbValRequiredFlag() /* TODO && pcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ ) 2338 #endif 2222 2339 { 2223 2340 WRITE_FLAG( pcSlice->getPocMsbValPresentFlag( ) ? 1 : 0 , "poc_msb_val_present_flag" ); -
trunk/source/Lib/TLibEncoder/TEncCavlc.h
r1084 r1124 99 99 #endif 100 100 #if H_3D 101 #if HHI_VPS_3D_EXTENSION_I3_J0107 102 Void codeVPS3dExtension ( TComVPS* pcVPS ); 103 #else 101 104 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 102 110 Void codeSPSExtension2 ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 103 111 Void codeSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 112 #endif 104 113 #else 105 114 Void codeSPS ( TComSPS* pcSPS ); -
trunk/source/Lib/TLibEncoder/TEncCfg.h
r1084 r1124 392 392 Double m_dDispCoeff; 393 393 #endif 394 #if !HHI_TOOL_PARAMETERS_I2_J0107 394 395 #if H_3D_ARP 395 396 UInt m_uiUseAdvResPred; … … 400 401 Int m_iSubPUMPILog2Size; 401 402 #endif 403 #endif 402 404 #if H_3D_IC 403 405 Bool m_bUseIC; 404 406 Bool m_bUseICLowLatencyEnc; 405 407 #endif 408 #if !HHI_TOOL_PARAMETERS_I2_J0107 406 409 #if H_3D_INTER_SDC 407 410 bool m_bInterSDC; … … 409 412 #if H_3D_DBBP 410 413 Bool m_bUseDBBP; 414 #endif 411 415 #endif 412 416 //====== Depth Intra Modes ====== 413 417 #if H_3D_DIM 414 418 Bool m_useDMM; 419 #if !HHI_TOOL_PARAMETERS_I2_J0107 415 420 Bool m_useIVP; 421 #endif 416 422 Bool m_useSDC; 417 423 Bool m_useDLT; 418 424 #endif 425 #if !HHI_TOOL_PARAMETERS_I2_J0107 419 426 #if H_3D_SINGLE_DEPTH 420 427 Bool m_useSingleDepthMode; 421 428 #endif 429 422 430 #if H_3D_IV_MERGE 423 431 Bool m_useMPI; 432 #endif 424 433 #endif 425 434 #if H_3D_QTLPC … … 497 506 Void setMaxTempLayer ( Int maxTempLayer ) { m_maxTempLayer = maxTempLayer; } 498 507 508 #if !HHI_TOOL_PARAMETERS_I2_J0107 499 509 #if H_3D_ARP 500 510 UInt getUseAdvRP ( ) { return m_uiUseAdvResPred; } … … 510 520 Void setSubPUMPILog2Size (Int u) { m_iSubPUMPILog2Size = u; } 511 521 #endif 522 #endif 512 523 #if H_3D_IC 513 524 Void setUseIC ( Bool bVal ) { m_bUseIC = bVal; } … … 516 527 Bool getUseICLowLatencyEnc () { return m_bUseICLowLatencyEnc; } 517 528 #endif 529 #if !HHI_TOOL_PARAMETERS_I2_J0107 518 530 #if H_3D_INTER_SDC 519 531 Void setInterSDCEnable ( Bool bVal ) { m_bInterSDC = bVal; } … … 523 535 Void setUseDBBP ( Bool b ) { m_bUseDBBP = b; } 524 536 Bool getUseDBBP() { return m_bUseDBBP; } 537 #endif 525 538 #endif 526 539 //======== Transform ============= … … 932 945 Void setFrameOnlyConstraintFlag(Bool b) { m_frameOnlyConstraintFlag = b; } 933 946 #if H_3D 947 948 // Only flags that are not in the SPS3dExtension should go here. 934 949 /// 3D Tools 935 950 … … 976 991 Bool getUseDMM () { return m_useDMM; } 977 992 Void setUseDMM ( Bool b) { m_useDMM = b; } 993 #if !HHI_TOOL_PARAMETERS_I2_J0107 978 994 Bool getUseIVP () { return m_useIVP; } 979 995 Void setUseIVP ( Bool b) { m_useIVP = b; } 996 #endif 980 997 Bool getUseSDC () { return m_useSDC; } 981 998 Void setUseSDC ( Bool b) { m_useSDC = b; } 999 982 1000 Bool getUseDLT () { return m_useDLT; } 983 1001 Void setUseDLT ( Bool b) { m_useDLT = b; } 984 1002 #endif 1003 #if !HHI_TOOL_PARAMETERS_I2_J0107 985 1004 #if H_3D_SINGLE_DEPTH 986 1005 Void setUseSingleDepthMode ( Bool bVal ) { m_useSingleDepthMode = bVal; } 987 1006 Bool getUseSingleDepthMode () { return m_useSingleDepthMode; } 988 1007 #endif 1008 #endif 989 1009 #if H_3D_QTLPC 990 1010 Void setUseQTL ( Bool b ) { m_bUseQTL = b; } 991 1011 Bool getUseQTL () { return m_bUseQTL; } 992 1012 #endif 1013 #if !HHI_TOOL_PARAMETERS_I2_J0107 993 1014 #if H_3D_IV_MERGE 994 1015 Void setUseMPI ( Bool b ) { m_useMPI = b; } 995 1016 Bool getUseMPI () { return m_useMPI; } 996 1017 #endif 1018 #endif 997 1019 #endif // H_3D 998 1020 }; -
trunk/source/Lib/TLibEncoder/TEncCu.cpp
r1084 r1124 409 409 410 410 #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(); 412 415 Bool bLimQtPredFalg = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId()); 416 #endif 413 417 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); 414 418 … … 566 570 { 567 571 #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 568 575 if( rpcTempCU->getSlice()->getVPS()->getUseAdvRP(rpcTempCU->getSlice()->getLayerId()) || rpcTempCU->getSlice()->getVPS()->getIvMvPredFlag(rpcTempCU->getSlice()->getLayerId()) ) 576 #endif 569 577 #else 570 578 #if H_3D_ARP … … 590 598 #endif 591 599 #if H_3D_NBDV_REF 600 #if HHI_TOOL_PARAMETERS_I2_J0107 601 if( rpcTempCU->getSlice()->getDepthRefinementFlag() ) 602 #else 592 603 if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps())) 604 #endif 593 605 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo, true); 594 606 else … … 605 617 } 606 618 #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 607 622 if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth()) 623 #endif 608 624 { 609 625 PartSize ePartTemp = rpcTempCU->getPartitionSize(0); … … 668 684 669 685 #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 670 693 if( m_pcEncCfg->getUseDBBP() ) 694 #endif 671 695 { 672 696 xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false ); … … 715 739 #if H_3D_SINGLE_DEPTH 716 740 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 717 748 if(rpcBestCU->getSlice()->getApplySingleDepthMode()) 749 #endif 718 750 { 719 751 xCheckRDCostSingleDepth( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); … … 1869 1901 1870 1902 #endif 1871 1903 #if !LGE_DDD_REMOVAL_J0042_J0030 1872 1904 #if H_3D_DDD 1873 1905 Int iDDDCand = rpcTempCU->getUseDDDCandIdx(); 1874 1906 UChar ucDDDepth = rpcTempCU->getDDTmpDepth(); 1875 1907 rpcTempCU->setUseDDD( false, 0, uhDepth ); 1908 #endif 1876 1909 #endif 1877 1910 … … 1908 1941 rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth ); 1909 1942 #endif 1943 #if !LGE_DDD_REMOVAL_J0042_J0030 1910 1944 #if H_3D_DDD 1911 1945 if( rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewIndex() != 0 && iDDDCand == uiMergeCand ) … … 1918 1952 rpcTempCU->setUseDDD( false, 0, 0, uhDepth ); 1919 1953 } 1954 #endif 1920 1955 #endif 1921 1956 #if H_3D_SPIVMP … … 2021 2056 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth); 2022 2057 #if H_3D_INTER_SDC 2058 #if HHI_TOOL_PARAMETERS_I2_J0107 2059 if( rpcTempCU->getSlice()->getInterSdcFlag() && !uiNoResidual ) 2060 #else 2023 2061 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual ) 2062 #endif 2024 2063 { 2025 2064 Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE}; … … 2093 2132 { 2094 2133 #if H_3D_INTER_SDC 2134 #if HHI_TOOL_PARAMETERS_I2_J0107 2135 if( rpcTempCU->getSlice()->getInterSdcFlag() ) 2136 #else 2095 2137 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) ) 2138 #endif 2096 2139 { 2097 2140 bestIsSkip = !rpcBestCU->getSDCFlag( 0 ) && ( rpcBestCU->getQtRootCbf(0) == 0 ); … … 2169 2212 UChar uhDepth = rpcTempCU->getDepth( 0 ); 2170 2213 #if H_3D_ARP 2214 #if !HHI_TOOL_PARAMETERS_I2_J0107 2171 2215 Int iLayerId = rpcTempCU->getSlice()->getLayerId(); 2216 #endif 2172 2217 Bool bFirstTime = true; 2173 2218 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; … … 2180 2225 for( Int nARPW = 0; nARPW <= nARPWMax; nARPW++ ) 2181 2226 { 2227 #if HHI_TOOL_PARAMETERS_I2_J0107 2228 if( !bFirstTime && rpcTempCU->getSlice()->getIvResPredFlag() ) 2229 #else 2182 2230 if( bFirstTime == false && rpcTempCU->getSlice()->getVPS()->getUseAdvRP( iLayerId ) ) 2231 #endif 2183 2232 { 2184 2233 rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0),bTransquantBypassFlag ); … … 2204 2253 rpcTempCU->setPartSizeSubParts ( ePartSize, 0, uhDepth ); 2205 2254 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2255 #if !LGE_DDD_REMOVAL_J0042_J0030 2206 2256 #if H_3D_DDD 2207 2257 rpcTempCU->setUseDDD( false, 0, uhDepth ); 2258 #endif 2208 2259 #endif 2209 2260 … … 2284 2335 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth); 2285 2336 #if H_3D_INTER_SDC 2337 #if HHI_TOOL_PARAMETERS_I2_J0107 2338 if( rpcTempCU->getSlice()->getInterSdcFlag() && ePartSize == SIZE_2Nx2N) 2339 #else 2286 2340 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && ePartSize == SIZE_2Nx2N) 2341 #endif 2287 2342 { 2288 2343 Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE}; -
trunk/source/Lib/TLibEncoder/TEncEntropy.cpp
r1084 r1124 78 78 } 79 79 80 #if HHI_TOOL_PARAMETERS_I2_J0107 81 Void TEncEntropy::encodeSPS( TComSPS* pcSPS ) 82 { 83 m_pcEntropyCoderIf->codeSPS( pcSPS ); 84 return; 85 } 86 #else 80 87 #if H_3D 81 88 Void TEncEntropy::encodeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) … … 91 98 } 92 99 #endif 100 #endif 93 101 94 102 Void TEncEntropy::encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) … … 122 130 Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 123 131 { 132 #if ALIGN_J0060_J0107 133 if(!pcCU->getSlice()->getIntraSingleFlag() ) 134 { 135 return; 136 } 137 #else 124 138 if ( !pcCU->getSlice()->getIsDepth() ) 125 139 { 126 140 return; 127 141 } 142 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 143 if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps())) 144 { 145 return; 146 } 147 #else 128 148 if(!pcCU->getSlice()->getApplySingleDepthMode()) 129 149 { 130 150 return; 131 151 } 132 152 #endif 153 #endif 133 154 if( bRD ) 134 155 { … … 268 289 269 290 #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 270 298 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 ) 299 #endif 271 300 { 272 301 encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD); … … 780 809 Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 781 810 { 811 #if HHI_TOOL_PARAMETERS_I2_J0107 812 if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getInterSdcFlag() ) || 813 ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getIntraSdcWedgeFlag() ) ) 814 #else 782 815 if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) || 783 816 ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getVpsDepthModesFlag( pcCU->getSlice()->getLayerIdInVps() ) ) ) 817 #endif 784 818 { 785 819 return; -
trunk/source/Lib/TLibEncoder/TEncEntropy.h
r1084 r1124 69 69 70 70 virtual Void codeVPS ( TComVPS* pcVPS ) = 0; 71 #if HHI_TOOL_PARAMETERS_I2_J0107 72 virtual Void codeSPS ( TComSPS* pcSPS ) = 0; 73 #else 71 74 #if !H_3D 72 75 virtual Void codeSPS ( TComSPS* pcSPS ) = 0; 73 76 #else 74 77 virtual Void codeSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) = 0; 78 #endif 75 79 #endif 76 80 virtual Void codePPS ( TComPPS* pcPPS ) = 0; … … 165 169 Void encodeVPS ( TComVPS* pcVPS); 166 170 // SPS 171 #if HHI_TOOL_PARAMETERS_I2_J0107 172 Void encodeSPS ( TComSPS* pcSPS ); 173 #else 167 174 #if H_3D 168 175 Void encodeSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 169 176 #else 170 177 Void encodeSPS ( TComSPS* pcSPS ); 178 #endif 171 179 #endif 172 180 Void encodePPS ( TComPPS* pcPPS ); -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r1084 r1124 880 880 881 881 TComVPS* vps = pcSlice->getVPS(); 882 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 883 #if H_3D 884 Int numDirectRefLayers = vps ->getNumRefListLayers( getLayerId() ); 885 #else 882 886 Int numDirectRefLayers = vps ->getNumDirectRefLayers( getLayerId() ); 887 #endif 888 #else 889 Int numDirectRefLayers = vps ->getNumDirectRefLayers( getLayerId() ); 890 #endif 883 891 GOPEntry gopEntry = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid ); 884 892 … … 893 901 pcSlice->setNumInterLayerRefPicsMinus1( gopEntry.m_numActiveRefLayerPics - 1 ); 894 902 } 903 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 904 #if H_3D 905 if ( gopEntry.m_numActiveRefLayerPics != vps->getNumRefListLayers( getLayerId() ) ) 906 #else 895 907 if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) ) 908 #endif 909 #else 910 if ( gopEntry.m_numActiveRefLayerPics != vps->getNumDirectRefLayers( getLayerId() ) ) 911 #endif 896 912 { 897 913 interLayerPredLayerIdcPresentFlag = true; … … 941 957 pcSlice->setRefPicList ( rcListPic ); 942 958 #endif 959 #if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060 943 960 #if H_3D_SINGLE_DEPTH 961 #if HHI_TOOL_PARAMETERS_I2_J0107 962 pcSlice->setApplySingleDepthMode( pcSlice->getIntraSingleFlag() ); 963 #else 944 964 TEncTop* pcEncTop = (TEncTop*) m_pcCfg; 945 965 bool enableSingleDepthMode=false; … … 952 972 } 953 973 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 955 980 #if H_3D_ARP 956 981 //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh … … 1414 1439 pcSlice->getSPS()->getVuiParameters()->setHrdParametersPresentFlag( true ); 1415 1440 } 1441 #if HHI_TOOL_PARAMETERS_I2_J0107 1442 m_pcEntropyCoder->encodeSPS(pcSlice->getSPS()); 1443 #else 1416 1444 #if !H_3D 1417 1445 m_pcEntropyCoder->encodeSPS(pcSlice->getSPS()); 1418 1446 #else 1419 1447 m_pcEntropyCoder->encodeSPS(pcSlice->getSPS(), pcSlice->getViewIndex(), pcSlice->getIsDepth() ); 1448 #endif 1420 1449 #endif 1421 1450 writeRBSPTrailingBits(nalu.m_Bitstream); -
trunk/source/Lib/TLibEncoder/TEncSbac.cpp
r1084 r1124 255 255 curCost += m_CUTransquantBypassFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG ); 256 256 #if H_3D_DIM 257 #if HHI_TOOL_PARAMETERS_I2_J0107 258 if( m_pcSlice->getIntraSdcWedgeFlag() || m_pcSlice->getIntraContourFlag() ) 259 #else 257 260 if( m_pcSlice->getVpsDepthModesFlag() || m_pcSlice->getIVPFlag() ) 261 #endif 258 262 { 259 263 curCost += m_cDepthIntraModeSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE ); … … 346 350 } 347 351 352 #if HHI_TOOL_PARAMETERS_I2_J0107 353 Void TEncSbac::codeSPS( TComSPS* pcSPS ) 354 #else 348 355 #if H_3D 349 356 Void TEncSbac::codeSPS( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 350 357 #else 351 358 Void TEncSbac::codeSPS( TComSPS* pcSPS ) 359 #endif 352 360 #endif 353 361 { … … 625 633 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 626 634 #if H_3D_QTLPC 635 #if HHI_TOOL_PARAMETERS_I2_J0107 636 Bool bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag(); 637 #else 627 638 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 628 639 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 640 #endif 629 641 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 630 642 Bool bDepthMapDetect = (pcTexture != NULL); … … 998 1010 Bool bCodeSplitFlag = true; 999 1011 1012 1013 #if HHI_TOOL_PARAMETERS_I2_J0107 1014 Bool bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag(); 1015 #else 1000 1016 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 1001 1017 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 1018 #endif 1002 1019 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 1003 1020 Bool bDepthMapDetect = (pcTexture != NULL); … … 1060 1077 dir[j] = pcCU->getLumaIntraDir( absPartIdx+partOffset*j ); 1061 1078 #if H_3D_DIM 1079 #if HHI_TOOL_PARAMETERS_I2_J0107 1080 if( pcCU->getSlice()->getIntraSdcWedgeFlag() || pcCU->getSlice()->getIntraContourFlag() ) 1081 #else 1062 1082 if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() ) 1083 #endif 1063 1084 { 1064 1085 codeIntraDepth( pcCU, absPartIdx+partOffset*j ); … … 1206 1227 } 1207 1228 //mode coding 1229 #if HHI_TOOL_PARAMETERS_I2_J0107 1230 if( pcCU->getSlice()->getIntraSdcWedgeFlag() && pcCU->getSlice()->getIntraContourFlag()) 1231 #else 1208 1232 if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag()) 1233 #endif 1209 1234 { 1210 1235 m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) ); … … 2305 2330 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2306 2331 AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N ); 2332 #if HHI_TOOL_PARAMETERS_I2_J0107 2333 AOF( pcCU->getSlice()->getDepthBasedBlkPartFlag() ); 2334 #else 2307 2335 AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ); 2336 #endif 2308 2337 AOF( !pcCU->getSlice()->getIsDepth() ); 2309 2338 -
trunk/source/Lib/TLibEncoder/TEncSbac.h
r1084 r1124 94 94 95 95 Void codeVPS ( TComVPS* pcVPS ); 96 #if HHI_TOOL_PARAMETERS_I2_J0107 97 Void codeSPS ( TComSPS* pcSPS ); 98 #else 96 99 #if !H_3D 97 100 Void codeSPS ( TComSPS* pcSPS ); 98 101 #else 99 102 Void codeSPS ( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ); 103 #endif 100 104 #endif 101 105 Void codePPS ( TComPPS* pcPPS ); -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r1084 r1124 2881 2881 Int index=0; 2882 2882 Pel testDepth; 2883 #if SINGLE_DEPTH_SIMP_J0115 2884 Pel DepthNeighbours[2]; 2885 #else 2883 2886 Pel DepthNeighbours[5]; 2887 #endif 2884 2888 //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 2885 2892 for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 2893 #endif 2886 2894 { 2887 2895 if(!pcCU->getNeighDepth (0, 0, &testDepth, i)) … … 2891 2899 DepthNeighbours[index]=testDepth; 2892 2900 index++; 2901 #if !SINGLE_DEPTH_SIMP_J0115 2893 2902 for(Int j=0;j<index-1;j++) 2894 2903 { … … 2899 2908 } 2900 2909 } 2910 #endif 2901 2911 } 2902 2912 … … 3117 3127 } 3118 3128 #endif 3119 3129 3120 3130 #if H_3D_DIM 3121 3131 //===== determine set of depth intra modes to be tested ===== 3122 3132 if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight ) 3123 3133 { 3134 #if HHI_TOOL_PARAMETERS_I2_J0107 3135 if( bOnlyIVP && pcCU->getSlice()->getIntraContourFlag() ) 3136 #else 3124 3137 if( bOnlyIVP && m_pcEncCfg->getUseIVP() ) 3138 #endif 3125 3139 { 3126 3140 TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight ); … … 3144 3158 3145 3159 #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 3146 3163 if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() ) 3164 #endif 3147 3165 #if H_3D_FAST_DEPTH_INTRA 3148 3166 && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold) … … 3151 3169 { 3152 3170 UInt uiStart, uiEnd; 3171 #if HHI_TOOL_PARAMETERS_I2_J0107 3172 if( ( m_pcEncCfg->getUseDMM() && pcCU->getSlice()->getIntraSdcWedgeFlag() ) && pcCU->getSlice()->getIntraContourFlag() ) 3173 #else 3153 3174 if( m_pcEncCfg->getUseDMM() && m_pcEncCfg->getUseIVP() ) 3175 #endif 3154 3176 { 3155 3177 uiStart = 0; 3156 3178 uiEnd = 2; 3157 3179 } 3180 #if HHI_TOOL_PARAMETERS_I2_J0107 3181 else if( ( m_pcEncCfg->getUseDMM() && pcCU->getSlice()->getIntraSdcWedgeFlag() ) ) 3182 #else 3158 3183 else if( m_pcEncCfg->getUseDMM() ) 3184 #endif 3159 3185 { 3160 3186 uiStart = 0; 3161 3187 uiEnd = 1; 3162 3188 } 3189 #if HHI_TOOL_PARAMETERS_I2_J0107 3190 else if( pcCU->getSlice()->getIntraContourFlag() ) 3191 #else 3163 3192 else if( m_pcEncCfg->getUseIVP() ) 3193 #endif 3164 3194 { 3165 3195 uiStart = 1; … … 3299 3329 #if H_3D_DIM_SDC 3300 3330 #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 3301 3334 Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD); 3335 #endif 3302 3336 #else 3303 3337 Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) ); … … 4143 4177 } 4144 4178 #endif 4145 4179 #if !LGE_DDD_REMOVAL_J0042_J0030 4146 4180 #if H_3D_DDD 4147 4181 if( uiMergeCand == pcCU->getUseDDDCandIdx() ) … … 4154 4188 pcCU->setUseDDD( false, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 4155 4189 } 4190 #endif 4156 4191 #endif 4157 4192 … … 4841 4876 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4842 4877 #endif 4878 #if !LGE_DDD_REMOVAL_J0042_J0030 4843 4879 #if H_3D_DDD 4844 4880 if( uiMRGIndex == pcCU->getUseDDDCandIdx() ) … … 4853 4889 pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4854 4890 } 4891 #endif 4855 4892 #endif 4856 4893 #if H_3D_SPIVMP … … 4930 4967 pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4931 4968 #endif 4969 #if !LGE_DDD_REMOVAL_J0042_J0030 4932 4970 #if H_3D_DDD 4933 4971 pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4972 #endif 4934 4973 #endif 4935 4974 // set ME result … … 5314 5353 #endif 5315 5354 #if H_3D_INTER_SDC 5355 #if HHI_TOOL_PARAMETERS_I2_J0107 5356 pcPatternKey->setSDCMRSADFlag( pcCU->getSlice()->getInterSdcFlag() ); 5357 #else 5316 5358 if ( pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) 5317 5359 { … … 5322 5364 pcPatternKey->setSDCMRSADFlag( false ); 5323 5365 } 5366 #endif 5324 5367 #endif 5325 5368 -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r976 r1124 215 215 rpcSlice->setPicOutputFlag( true ); 216 216 rpcSlice->setPOC( pocCurr ); 217 #if HHI_TOOL_PARAMETERS_I2_J0107 218 #if H_3D 219 rpcSlice->init3dToolParameters(); 220 #endif 221 #endif 217 222 #if H_3D_IC 218 223 rpcSlice->setApplyIC( false ); … … 608 613 rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() ); 609 614 #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 610 622 if(rpcSlice->getIsDepth()) 611 623 { … … 614 626 else 615 627 { 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 616 631 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) ); 617 } 632 #endif 633 } 634 #endif 618 635 #else 619 636 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() ); … … 1011 1028 } 1012 1029 } 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 1013 1063 // for every CU in slice 1014 1064 #if H_3D … … 1169 1219 #endif 1170 1220 } 1171 1172 1221 // run CU encoder 1173 1222 m_pcCuEncoder->compressCU( pcCU ); -
trunk/source/Lib/TLibEncoder/TEncSlice.h
r884 r1124 107 107 UInt m_uiSliceIdx; 108 108 std::vector<TEncSbac*> CTXMem; 109 #if !LGE_DDD_REMOVAL_J0042_J0030 109 110 #if H_3D_DDD 110 111 Int m_iDDDScale; 111 112 Int m_iDDDOffset; 112 113 UInt m_uiDDDPrecision; 114 #endif 113 115 #endif 114 116 public: … … 145 147 Void initCtxMem( UInt i ); 146 148 Void setCtxMem( TEncSbac* sb, Int b ) { CTXMem[b] = sb; } 147 149 #if !LGE_DDD_REMOVAL_J0042_J0030 148 150 #if H_3D_DDD 149 151 Void setDDDPar( Int iScale, Int iOffset, UInt uiPrecision ){ m_iDDDScale = iScale; m_iDDDOffset = iOffset; m_uiDDDPrecision = uiPrecision; } 152 #endif 150 153 #endif 151 154 -
trunk/source/Lib/TLibEncoder/TEncTop.cpp
r1084 r1124 534 534 Void TEncTop::encode(Bool flush, TComPicYuv* pcPicYuvOrg, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsOut, Int& iNumEncoded, bool isTff, Int gopId ) 535 535 { 536 assert( 0 ); // Field coding and multiview need to be fur hter harmonized.536 assert( 0 ); // Field coding and multiview need to be further harmonized. 537 537 } 538 538 #else … … 896 896 #if H_MV 897 897 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 898 903 if( getVPS()->getNumDirectRefLayers( getLayerId() ) > 0 ) 904 #endif 905 #else 906 if( getVPS()->getNumDirectRefLayers( getLayerId() ) > 0 ) 907 #endif 899 908 { 900 909 m_cPPS.setListsModificationPresentFlag( true ); -
trunk/source/Lib/TLibEncoder/TEncTop.h
r1084 r1124 270 270 Void setIvPicLists ( TComPicLists* picLists) { m_ivPicLists = picLists; } 271 271 #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 272 277 #if H_3D_IC 273 278 Void setICEnableCandidate ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; } -
trunk/source/Lib/TLibExtractor/TExtrTop.cpp
r655 r1124 73 73 TComSPS cSPS; 74 74 #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 ); 76 80 m_cEntropyDecoder .decodeSPS( &cSPS, m_cVPS.getViewIndex( layerIdInVPS ), ( m_cVPS.getDepthId( layerIdInVPS ) == 1 ) ); 81 #endif 77 82 #else 78 83 m_cEntropyDecoder .decodeSPS( &cSPS );
Note: See TracChangeset for help on using the changeset viewer.