Changeset 1179 in 3DVCSoftware
- Timestamp:
- 7 Apr 2015, 17:05:30 (10 years ago)
- Location:
- trunk
- Files:
-
- 187 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view+depth_AllIntra.cfg
r1124 r1179 56 56 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 57 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 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 59 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 60 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 61 61 62 62 #========== Camera parameters ========== … … 194 194 InterSdcFlag : 1 # use of inter sdc 195 195 MpiFlag : 1 196 IntraSingleFlag : 1 # use of single depth mode 196 DepthIntraSkip : 1 197 197 198 #========== view synthesis optimization (VSO) ========== 198 199 -
trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_2view_AllIntra.cfg
r1084 r1179 46 46 #======== VPS / Dependencies ================ 47 47 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 48 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 48 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 49 49 50 50 #========== Camera parameters ========== -
trunk/cfg/3D-HEVC/NonCTC/allintra/baseCfg_3view+depth_AllIntra.cfg
r1124 r1179 68 68 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 69 69 70 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 71 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 72 DependencyTypes_3 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 73 DependencyTypes_4 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 74 DependencyTypes_5 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 70 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 71 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 72 DependencyTypes_3 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 73 DependencyTypes_4 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 74 DependencyTypes_5 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 75 75 76 76 #========== Camera parameters ========== … … 212 212 InterSdcFlag : 1 # use of inter sdc 213 213 MpiFlag : 1 214 IntraSingleFlag : 1 # use of single depth mode 214 DepthIntraSkip : 1 215 215 216 #========== view synthesis optimization (VSO) ========== 216 217 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/allintra/baseCfg_3view_AllIntra.cfg
r1084 r1179 56 56 DirectRefLayers_2 : 0 # Indices in VPS of direct reference layers 57 57 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 59 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 59 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 60 60 61 61 #========== Camera parameters ========== -
trunk/cfg/3D-HEVC/NonCTC/fco/baseCfg_3view+depth.cfg
r1124 r1179 68 68 DirectRefLayers_5 : 0 1 # Indices in VPS of direct reference layers 69 69 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 71 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 73 DependencyTypes_4 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 71 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 73 DependencyTypes_4 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 75 75 76 76 #========== Camera parameters ========== … … 260 260 InterSdcFlag : 1 # use of inter sdc 261 261 MpiFlag : 1 262 DepthIntraSkip : 1 262 263 263 264 #========== view synthesis optimization (VSO) ========== -
trunk/cfg/3D-HEVC/NonCTC/ibp/gopCfg_IBP_3view+depth.cfg
r1124 r1179 44 44 DirectRefLayers_5 : 1 3 4 # Indices in VPS of direct reference layers 45 45 46 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion47 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion48 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion49 DependencyTypes_4 : 2 2 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion50 DependencyTypes_5 : 2 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion46 DependencyTypes_1 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 47 DependencyTypes_2 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 48 DependencyTypes_3 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 49 DependencyTypes_4 : 2 0 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 50 DependencyTypes_5 : 2 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 51 51 52 52 53 53 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 54 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 55 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 56 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 57 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 58 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 59 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 60 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 61 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 62 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 63 64 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 65 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 66 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 67 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 68 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 69 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 70 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 71 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 72 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 73 74 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 75 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 76 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 77 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 78 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 79 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 80 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 81 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 82 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 83 84 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 85 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 86 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 87 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 88 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 89 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 90 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 91 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 92 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 93 94 FrameI_l4: B 0 3 0.442 0 0 0 1 0 0 2 0 1 0 -1 -1 0 95 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 2 0 1 1 -1 -1 1 96 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 2 0 1 1 -1 -1 1 97 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 2 0 1 1 -1 -1 1 98 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 2 0 1 1 -1 -1 1 99 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 100 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 2 0 1 2 -1 -1 2 101 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 2 0 1 2 -1 -1 2 102 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 103 104 FrameI_l5: B 0 3 0.442 0 0 0 1 0 0 2 0 1 0 -1 -1 0 105 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 2 0 1 1 -1 -1 1 106 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 2 0 1 1 -1 -1 1 107 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 2 0 1 1 -1 -1 1 108 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 2 0 1 1 -1 -1 1 109 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 110 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 2 0 1 2 -1 -1 2 111 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 2 0 1 2 -1 -1 2 112 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 54 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 55 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 56 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 57 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 58 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 59 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 60 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 61 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 62 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 63 64 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 1 65 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 66 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 67 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 68 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 69 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 70 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 71 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 72 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 73 74 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 75 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 76 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 77 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 78 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 79 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 80 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 81 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 82 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 83 84 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 85 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 86 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 87 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 88 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 89 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 90 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 91 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 92 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 93 94 FrameI_l4: B 0 3 0.442 0 0 0 1 0 0 2 0 1 0 -1 -1 0 1 95 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 2 0 1 1 -1 -1 1 1 96 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 2 0 1 1 -1 -1 1 1 97 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 2 0 1 1 -1 -1 1 1 98 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 2 0 1 1 -1 -1 1 1 99 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 1 100 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 2 0 1 2 -1 -1 2 1 101 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 2 0 1 2 -1 -1 2 1 102 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 1 103 104 FrameI_l5: B 0 3 0.442 0 0 0 1 0 0 2 0 1 0 -1 -1 0 1 105 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 2 0 1 1 -1 -1 1 1 106 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 2 0 1 1 -1 -1 1 1 107 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 2 0 1 1 -1 -1 1 1 108 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 2 0 1 1 -1 -1 1 1 109 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 1 110 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 2 0 1 2 -1 -1 2 1 111 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 2 0 1 2 -1 -1 2 1 112 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 1 113 113 114 114 ### DO NOT ADD ANYTHING BELOW THIS LINE ### -
trunk/cfg/3D-HEVC/NonCTC/ibp/gopCfg_IBP_3view.cfg
r1066 r1179 34 34 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 35 35 DirectRefLayers_2 : 0 1 # Indices in VPS of direct reference layers 36 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 37 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 36 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 37 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 38 38 39 39 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 40 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 41 42 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 43 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 44 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 45 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 46 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 47 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 48 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 49 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 50 51 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 52 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 53 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 54 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 55 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 56 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 57 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 58 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 59 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 60 61 FrameI_l2: B 0 3 0.442 0 0 0 1 0 0 2 0 1 0 -1 -1 0 62 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 2 0 1 1 -1 -1 1 63 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 2 0 1 1 -1 -1 1 64 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 2 0 1 1 -1 -1 1 65 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 2 0 1 1 -1 -1 1 66 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 67 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 2 0 1 2 -1 -1 2 68 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 2 0 1 2 -1 -1 2 69 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 40 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 41 42 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 43 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 44 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 45 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 46 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 47 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 48 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 49 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 50 51 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 0 52 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 0 53 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 0 54 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 0 55 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 0 56 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 0 57 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 0 58 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 0 59 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 0 60 61 FrameI_l2: B 0 3 0.442 0 0 0 1 0 0 2 0 1 0 -1 -1 0 0 62 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 2 0 1 1 -1 -1 1 0 63 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 2 0 1 1 -1 -1 1 0 64 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 2 0 1 1 -1 -1 1 0 65 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 2 0 1 1 -1 -1 1 0 66 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 0 67 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 2 0 1 2 -1 -1 2 0 68 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 2 0 1 2 -1 -1 2 0 69 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 2 0 1 2 -1 -1 2 0 70 70 71 71 ### DO NOT ADD ANYTHING BELOW THIS LINE ### -
trunk/cfg/3D-HEVC/NonCTC/misc/gopCfg_ILP_on_IRAP_3view+depth.cfg
r1124 r1179 36 36 DirectRefLayers_5 : 1 3 4 # Indices in VPS of direct reference layers 37 37 38 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion39 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion40 DependencyTypes_3 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion41 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion42 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion38 DependencyTypes_1 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 39 DependencyTypes_2 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 40 DependencyTypes_3 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 41 DependencyTypes_4 : 2 0 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 42 DependencyTypes_5 : 2 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 43 43 44 44 45 45 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 46 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 47 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 48 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 49 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 50 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 51 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 52 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 53 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 54 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 55 56 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 57 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 58 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 59 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 60 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 61 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 62 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 63 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 64 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 65 66 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 67 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 68 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 69 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 70 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 71 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 72 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 73 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 74 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 75 76 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 77 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 78 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 79 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 80 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 81 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 82 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 83 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 84 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 85 86 FrameI_l4: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 87 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 88 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 89 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 90 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 91 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 92 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 93 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 94 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 95 96 FrameI_l5: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 97 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 98 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 99 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 100 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 101 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 102 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 103 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 104 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 46 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 47 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 48 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 49 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 50 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 51 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 52 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 53 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 54 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 55 56 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 1 57 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 58 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 59 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 60 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 61 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 62 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 63 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 64 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 65 66 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 67 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 68 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 69 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 70 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 71 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 72 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 73 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 74 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 75 76 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 77 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 78 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 79 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 80 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 81 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 82 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 83 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 84 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 85 86 FrameI_l4: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 87 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 88 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 89 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 90 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 91 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 92 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 93 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 94 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 95 96 FrameI_l5: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 97 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 98 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 99 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 100 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 101 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 102 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 103 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 104 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 105 105 106 106 ### DO NOT ADD ANYTHING BELOW THIS LINE ### -
trunk/cfg/3D-HEVC/NonCTC/misc/gopCfg_NoIv_3view+depth.cfg
r1124 r1179 25 25 ProfileTierLevelIdx_5 : 1 2 2 2 2 2 # VpsProfileTierLevel indices of layers in output layer set 5 (m) (should be -1, when layer is not necessary) 26 26 27 28 29 27 #======== VPS / Dependencies ================ 30 28 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers … … 34 32 DirectRefLayers_5 : 4 # Indices in VPS of direct reference layers 35 33 36 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion37 DependencyTypes_2 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 38 DependencyTypes_3 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion39 DependencyTypes_4 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 40 DependencyTypes_5 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion34 DependencyTypes_1 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 35 DependencyTypes_2 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 36 DependencyTypes_3 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 37 DependencyTypes_4 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 38 DependencyTypes_5 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 41 39 42 40 43 41 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 44 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 45 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 46 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 47 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 48 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 49 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 50 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 51 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 52 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 53 54 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 55 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 56 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 57 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 58 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 59 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 60 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 61 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 62 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 63 64 FrameI_l2: I 0 3 0.442 0 0 0 1 0 0 0 65 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 66 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 67 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 68 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 69 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 70 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 71 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 72 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 73 74 FrameI_l3: I 0 3 0.442 0 0 0 1 0 0 0 75 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 76 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 77 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 78 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 79 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 80 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 81 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 82 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 83 84 FrameI_l4: I 0 3 0.442 0 0 0 1 0 0 0 85 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 86 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 87 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 88 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 89 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 90 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 91 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 92 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 93 94 FrameI_l5: I 0 3 0.442 0 0 0 1 0 0 0 95 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 96 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 97 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 98 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 99 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 100 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 101 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 102 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 42 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 43 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 44 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 45 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 46 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 47 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 48 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 49 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 50 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 51 52 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 1 53 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 54 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 55 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 56 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 57 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 58 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 59 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 60 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 61 62 FrameI_l2: I 0 3 0.442 0 0 0 1 0 0 0 0 63 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 64 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 65 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 66 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 67 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 68 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 69 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 70 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 71 72 FrameI_l3: I 0 3 0.442 0 0 0 1 0 0 0 1 73 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 74 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 75 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 76 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 77 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 78 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 79 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 80 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 81 82 FrameI_l4: I 0 3 0.442 0 0 0 1 0 0 0 0 83 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 84 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 85 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 86 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 87 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 88 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 89 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 90 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 91 92 FrameI_l5: I 0 3 0.442 0 0 0 1 0 0 0 1 93 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 94 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 95 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 96 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 97 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 98 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 99 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 100 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 103 101 104 102 ### DO NOT ADD ANYTHING BELOW THIS LINE ### -
trunk/cfg/3D-HEVC/NonCTC/misc/gopCfg_NoIv_3view.cfg
r1066 r1179 22 22 ProfileTierLevelIdx_2 : 1 2 # VpsProfileTierLevel indices of layers in output layer set 2 (m) (should be -1, when layer is not necessary) 23 23 ProfileTierLevelIdx_3 : 1 2 2 # VpsProfileTierLevel indices of layers in output layer set 3 (m) (should be -1, when layer is not necessary) 24 ProfileTierLevelIdx_4 : 1 2 # VpsProfileTierLevel indices of layers in output layer set 4 (m) (should be -1, when layer is not necessary)24 ProfileTierLevelIdx_4 : 1 2 # VpsProfileTierLevel indices of layers in output layer set 4 (m) (should be -1, when layer is not necessary) 25 25 ProfileTierLevelIdx_5 : 1 2 # VpsProfileTierLevel indices of layers in output layer set 5 (m) (should be -1, when layer is not necessary) 26 26 … … 28 28 DirectRefLayers_1 : # Indices in VPS of direct reference layers 29 29 DirectRefLayers_2 : # Indices in VPS of direct reference layers 30 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 31 DependencyTypes_2 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 30 DependencyTypes_1 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 31 DependencyTypes_2 : # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 32 32 33 33 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 34 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 35 36 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 37 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 38 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 39 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 40 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 41 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 42 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 43 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 44 45 FrameI_l1: I 0 3 0.442 0 0 0 1 0 0 0 46 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 47 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 48 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 49 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 50 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 51 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 52 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 53 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 54 55 FrameI_l2: I 0 3 0.442 0 0 0 1 0 0 0 56 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 57 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 58 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 59 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 60 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 61 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 62 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 63 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 64 65 ### DO NOT ADD ANYTHING BELOW THIS LINE ### 66 ### DO NOT DELETE THE EMPTY LINE BELOW ### 34 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 35 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 36 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 37 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 38 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 39 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 40 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 41 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 42 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 43 44 FrameI_l1: I 0 3 0.442 0 0 0 1 0 0 0 0 45 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 46 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 47 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 48 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 49 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 50 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 51 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 52 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 53 54 FrameI_l2: I 0 3 0.442 0 0 0 1 0 0 0 0 55 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 56 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 57 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 58 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 59 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 60 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 61 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 62 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 63 64 ### DO NOT ADD ANYTHING BELOW THIS LINE ### 65 ### DO NOT DELETE THE EMPTY LINE BELOW ### -
trunk/cfg/3D-HEVC/NonCTC/rc/baseCfg_3view+depth_rate_control.cfg
r1124 r1179 68 68 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 69 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 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 71 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 73 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 75 75 76 76 #========== Camera parameters ========== … … 273 273 InterSdcFlag : 1 # use of inter sdc 274 274 MpiFlag : 1 275 IntraSingleFlag : 1 # use of single depth mode 275 DepthIntraSkip : 1 276 276 277 #========== view synthesis optimization (VSO) ========== 277 278 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
r1124 r1179 56 56 DirectRefLayers_3 : 1 2 # Indices in VPS of direct reference layers 57 57 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion59 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion60 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion58 DependencyTypes_1 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 59 DependencyTypes_2 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 60 DependencyTypes_3 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 61 61 62 62 #========== Camera parameters ========== … … 81 81 82 82 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 83 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 84 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 85 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 86 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 87 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 88 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 89 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 90 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 91 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 92 93 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 94 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 95 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 96 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 97 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 98 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 99 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 100 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 101 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 102 103 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 104 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 105 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 106 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 107 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 108 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 109 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 110 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 111 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 112 113 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 114 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 115 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 116 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 117 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 118 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 119 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 120 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 121 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 83 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 84 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 85 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 86 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 87 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 88 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 89 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 90 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 91 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 92 93 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 1 94 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 95 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 96 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 97 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 98 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 99 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 100 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 101 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 102 103 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 104 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 105 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 106 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 107 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 108 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 109 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 110 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 111 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 112 113 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 114 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 115 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 116 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 117 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 118 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 119 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 120 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 121 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 122 122 123 123 #=========== Motion Search ============= … … 228 228 InterSdcFlag : 1 # use of inter sdc 229 229 MpiFlag : 1 230 IntraSingleFlag : 1 # use of single depth mode 230 DepthIntraSkip : 1 231 231 232 #========== view synthesis optimization (VSO) ========== 232 233 -
trunk/cfg/3D-HEVC/baseCfg_2view.cfg
r1124 r1179 46 46 #======== VPS / Dependencies ================ 47 47 DirectRefLayers_1 : 0 # Indices in VPS of direct reference layers 48 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 48 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 49 49 50 50 #========== Camera parameters ========== … … 70 70 71 71 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 72 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 73 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 74 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 75 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 76 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 77 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 78 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 79 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 80 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 81 82 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 83 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 84 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 85 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 86 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 87 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 88 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 89 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 90 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 72 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 73 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 74 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 75 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 76 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 77 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 78 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 79 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 80 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 81 82 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 0 83 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 0 84 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 0 85 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 0 86 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 0 87 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 0 88 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 0 89 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 0 90 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 0 91 91 92 92 #=========== Motion Search ============= -
trunk/cfg/3D-HEVC/baseCfg_3view+depth.cfg
r1124 r1179 68 68 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 69 69 70 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion71 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion72 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion73 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion74 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion70 DependencyTypes_1 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 71 DependencyTypes_2 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 72 DependencyTypes_3 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 73 DependencyTypes_4 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 74 DependencyTypes_5 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 75 75 76 76 #========== Camera parameters ========== … … 95 95 96 96 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 97 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 98 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 99 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 100 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 101 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 102 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 103 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 104 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 105 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 106 107 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 108 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 109 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 110 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 111 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 112 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 113 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 114 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 115 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 116 117 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 118 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 119 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 120 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 121 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 122 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 123 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 124 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 125 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 126 127 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 128 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 129 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 130 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 131 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 132 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 133 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 134 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 135 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 136 137 FrameI_l4: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 138 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 139 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 140 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 141 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 142 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 143 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 144 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 145 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 146 147 FrameI_l5: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 148 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 149 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 150 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 151 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 152 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 153 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 154 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 155 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 97 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 98 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 99 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 100 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 101 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 102 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 103 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 104 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 105 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 106 107 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 1 108 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 109 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 110 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 111 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 112 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 113 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 114 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 115 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 116 117 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 118 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 119 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 120 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 121 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 122 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 123 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 124 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 125 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 126 127 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 128 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 129 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 130 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 131 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 132 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 133 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 134 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 135 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 136 137 FrameI_l4: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 138 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 139 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 140 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 141 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 142 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 143 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 144 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 145 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 146 147 FrameI_l5: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 148 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 149 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 150 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 151 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 152 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 153 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 154 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 155 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 156 156 157 157 #=========== Motion Search ============= … … 261 261 InterSdcFlag : 1 # use of inter sdc 262 262 MpiFlag : 1 263 IntraSingleFlag : 1 # use of single depth mode 263 DepthIntraSkip : 1 264 264 265 #========== view synthesis optimization (VSO) ========== 265 266 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
r1124 r1179 56 56 DirectRefLayers_2 : 0 # Indices in VPS of direct reference layers 57 57 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 59 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 58 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 59 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 60 60 61 61 #========== Camera parameters ========== … … 80 80 81 81 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 82 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 83 84 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 85 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 86 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 87 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 88 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 89 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 90 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 91 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 92 93 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 94 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 95 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 96 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 97 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 98 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 99 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 100 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 101 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 102 103 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 104 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 105 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 106 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 107 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 108 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 109 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 110 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 111 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 82 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 83 84 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 85 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 86 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 87 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 88 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 89 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 90 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 91 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 92 93 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 0 94 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 0 95 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 0 96 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 0 97 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 0 98 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 0 99 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 0 100 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 0 101 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 0 102 103 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 0 104 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 0 105 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 0 106 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 0 107 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 0 108 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 0 109 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 0 110 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 0 111 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 0 112 112 113 113 #=========== Motion Search ============= -
trunk/cfg/3D-HEVC/deltaCfg_3view.cfg
r1124 r1179 38 38 39 39 40 41 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 40 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 41 DependencyTypes_2 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 42 42 DependencyTypes_3 : 43 43 DependencyTypes_4 : … … 45 45 46 46 47 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 48 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 49 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 50 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 51 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 52 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 53 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 54 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 55 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 47 FrameI_l1: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 48 Frame1_l1: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 49 Frame2_l1: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 50 Frame3_l1: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 51 Frame4_l1: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 52 Frame5_l1: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 53 Frame6_l1: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 54 Frame7_l1: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 55 Frame8_l1: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 56 56 57 57 FrameI_l3: -
trunk/cfg/3D-HEVC/fullCfg.cfg
r1124 r1179 131 131 DirectRefLayers_5 : 1 4 # Indices in VPS of direct reference layers 132 132 133 DependencyTypes_1 : 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion134 DependencyTypes_2 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion135 DependencyTypes_3 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion136 DependencyTypes_4 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion137 DependencyTypes_5 : 2 2 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion133 DependencyTypes_1 : 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 134 DependencyTypes_2 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 135 DependencyTypes_3 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 136 DependencyTypes_4 : 2 0 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 137 DependencyTypes_5 : 2 6 # Dependency types of direct reference layers, 0: Sample 1: Motion 2: Sample+Motion 6: Sample+Motion+Quadtree 138 138 139 139 #========== Camera parameters ========== … … 159 159 160 160 # QPfactor betaOffsetDiv2 #ref_pics_active reference pictures deltaRPS reference idcs ilPredLayerIdc refLayerPicPosIl_L1 161 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 162 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 00163 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 10164 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 10165 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 10166 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 00167 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0168 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 10169 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 00170 171 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0172 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0173 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0174 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0175 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0176 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0177 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0178 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0179 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0180 181 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 182 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 183 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 184 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 185 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 186 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 187 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 188 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 189 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 190 191 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 192 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 193 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 194 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 195 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 196 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 197 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 198 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 199 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 200 201 FrameI_l4: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 202 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 203 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 204 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 205 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 206 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 207 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 208 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 209 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 210 211 FrameI_l5: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 212 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 213 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 214 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 215 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 216 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 217 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 218 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 219 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 161 # Type POC QPoffset tcOffsetDiv2 temporal_id #ref_pics predict #ref_idcs #ActiveRefLayerPics refLayerPicPosIl_L0 interCompPred 162 Frame1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 0 163 Frame2: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 0 164 Frame3: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 0 165 Frame4: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 0 166 Frame5: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 0 167 Frame6: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 0 168 Frame7: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 0 169 Frame8: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 0 170 171 FrameI_l1: I 0 0 0.442 0 0 0 0 0 0 0 1 172 Frame1_l1: B 8 1 0.442 0 0 0 4 4 -8 -10 -12 -16 0 0 1 173 Frame2_l1: B 4 2 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 0 1 174 Frame3_l1: B 2 3 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 0 1 175 Frame4_l1: B 1 4 0.68 0 0 0 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 0 1 176 Frame5_l1: B 3 4 0.68 0 0 0 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 0 1 177 Frame6_l1: B 6 3 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 0 1 178 Frame7_l1: B 5 4 0.68 0 0 0 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 0 1 179 Frame8_l1: B 7 4 0.68 0 0 0 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 0 1 180 181 FrameI_l2: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 182 Frame1_l2: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 183 Frame2_l2: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 184 Frame3_l2: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 185 Frame4_l2: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 186 Frame5_l2: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 187 Frame6_l2: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 188 Frame7_l2: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 189 Frame8_l2: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 190 191 FrameI_l3: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 192 Frame1_l3: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 193 Frame2_l3: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 194 Frame3_l3: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 195 Frame4_l3: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 196 Frame5_l3: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 197 Frame6_l3: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 198 Frame7_l3: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 199 Frame8_l3: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 200 201 FrameI_l4: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 202 Frame1_l4: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 203 Frame2_l4: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 204 Frame3_l4: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 205 Frame4_l4: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 206 Frame5_l4: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 207 Frame6_l4: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 208 Frame7_l4: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 209 Frame8_l4: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 210 211 FrameI_l5: P 0 3 0.442 0 0 0 1 0 0 1 0 0 -1 1 212 Frame1_l5: B 8 4 0.442 0 0 0 4 4 -8 -10 -12 -16 0 1 0 1 -1 1 213 Frame2_l5: B 4 5 0.3536 0 0 0 3 3 -4 -6 4 1 4 5 1 1 0 0 1 1 0 1 -1 1 214 Frame3_l5: B 2 6 0.3536 0 0 0 3 4 -2 -4 2 6 1 2 4 1 1 1 1 1 0 1 -1 1 215 Frame4_l5: B 1 7 0.68 0 0 0 3 4 -1 1 3 7 1 1 5 1 0 1 1 1 1 0 1 -1 1 216 Frame5_l5: B 3 7 0.68 0 0 0 3 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 1 0 2 -1 1 217 Frame6_l5: B 6 6 0.3536 0 0 0 3 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 1 0 2 -1 1 218 Frame7_l5: B 5 7 0.68 0 0 0 3 4 -1 -5 1 3 1 1 5 1 0 1 1 1 1 0 2 -1 1 219 Frame8_l5: B 7 7 0.68 0 0 0 3 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 1 0 2 -1 1 220 220 221 221 #=========== Motion Search ============= … … 337 337 InterSdcFlag : 1 # use of inter sdc 338 338 MpiFlag : 1 339 IntraSingleFlag : 1 # use of single depth mode 339 DepthIntraSkip : 1 340 340 341 #========== view synthesis optimization (VSO) ========== 341 342 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/MV-HEVC/baseCfg_2view.cfg
r1084 r1179 94 94 FEN : 1 # Fast encoder decision 95 95 FDM : 1 # Fast Decision for Merge RD cost 96 DispSearchRangeRestriction : 0 # Limit Search range for vertical component of disparity vector 97 VerticalDispSearchRange : 56 # Vertical Search range in pixel 96 98 97 99 #======== Quantization ============= -
trunk/cfg/MV-HEVC/baseCfg_3view.cfg
r1084 r1179 120 120 FEN : 1 # Fast encoder decision 121 121 FDM : 1 # Fast Decision for Merge RD cost 122 DispSearchRangeRestriction : 0 # Limit Search range for vertical component of disparity vector 123 VerticalDispSearchRange : 56 # Vertical Search range in pixel 122 124 123 125 #======== Quantization ============= -
trunk/cfg/MV-HEVC/fullCfg.cfg
r1084 r1179 226 226 FEN : 1 # Fast encoder decision 227 227 FDM : 1 # Fast Decision for Merge RD cost 228 DispSearchRangeRestriction : 0 # Limit Search range for vertical component of disparity vector 229 VerticalDispSearchRange : 56 # Vertical Search range in pixel 228 230 229 231 #======== Quantization ============= -
trunk/source/App/TAppDecoder/TAppDecCfg.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppDecoder/TAppDecCfg.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppDecoder/TAppDecTop.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 248 248 { 249 249 m_tDecTop[decIdx]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 250 #if H_3D_ANNEX_SELECTION_FIX 251 m_tDecTop[decIdx]->setProfileIdc( ); 252 #endif 250 253 } 251 254 … … 1050 1053 m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags ); 1051 1054 m_tDecTop[ decIdx ]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 1055 #if H_3D_ANNEX_SELECTION_FIX 1056 m_tDecTop[ decIdx ]->setProfileIdc ( ); 1057 #endif 1052 1058 1053 1059 #if H_3D -
trunk/source/App/TAppDecoder/TAppDecTop.h
r976 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppDecoder/decmain.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppEncoder/TAppEncCfg.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 225 225 } 226 226 #endif 227 #if HHI_INTER_COMP_PRED_K0052 228 #if H_3D 229 in>>entry.m_interCompPredFlag; 230 #endif 231 #endif 227 232 return in; 228 233 } … … 477 482 ("FastSearch", m_iFastSearch, 1, "0:Full search 1:Diamond 2:PMVFAST") 478 483 ("SearchRange,-sr", m_iSearchRange, 96, "Motion search range") 484 #if SONY_MV_V_CONST_C0078 485 ("DispSearchRangeRestriction", m_bUseDisparitySearchRangeRestriction, false, "restrict disparity search range") 486 ("VerticalDispSearchRange", m_iVerticalDisparitySearchRange, 56, "vertical disparity search range") 487 #endif 479 488 ("BipredSearchRange", m_bipredSearchRange, 4, "Motion search range for bipred refinement") 480 489 ("HadamardME", m_bUseHADME, true, "Hadamard ME for fractional-pel") … … 785 794 ("QtPredFlag" , m_qtPredFlag , true , "Quad tree prediction from texture to depth") 786 795 ("InterSdcFlag" , m_interSdcFlag , true , "Inter depth DCs" ) 796 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 797 ("DepthIntraSkip" , m_depthIntraSkipFlag , true , "Depth intra skip mode" ) 798 #else 787 799 ("IntraSingleFlag" , m_intraSingleFlag , true , "Intra single mode" ) 800 #endif 788 801 #endif //H_3D 789 802 ; … … 1546 1559 { 1547 1560 xConfirmPara( m_directRefLayers[i][j] < 0 || m_directRefLayers[i][j] >= i , "Reference layer id shall be greater than or equal to 0 and less than dependent layer id"); 1548 xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] > 2 , "Dependency type shall be greater than or equal to 0 and less than 3"); 1561 #if H_3D_DIRECT_DEP_TYPE 1562 xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] > 6 , "Dependency type shall be greater than or equal to 0 and less than 7"); 1563 #else 1564 xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] > 2 , "Dependency type shall be greater than or equal to 0 and less than 3"); 1565 #endif 1549 1566 } 1550 1567 } … … 1582 1599 xConfirmPara( m_iSearchRange < 0 , "Search Range must be more than 0" ); 1583 1600 xConfirmPara( m_bipredSearchRange < 0 , "Search Range must be more than 0" ); 1601 #if SONY_MV_V_CONST_C0078 1602 xConfirmPara( m_iVerticalDisparitySearchRange <= 0 , "Vertical Disparity Search Range must be more than 0" ); 1603 #endif 1584 1604 xConfirmPara( m_iMaxDeltaQP > 7, "Absolute Delta QP exceeds supported range (0 to 7)" ); 1585 1605 xConfirmPara( m_iMaxCuDQPDepth > m_uiMaxCUDepth - 1, "Absolute depth for a minimum CuDQP exceeds maximum coding unit depth" ); … … 1697 1717 xConfirmPara( m_pchBaseViewCameraNumbers == 0 , "BaseViewCameraNumbers must be given" ); 1698 1718 #if BUG_FIX_TK65 1719 #if HHI_CAM_PARA_K0052 1720 xConfirmPara( m_iNumberOfViews != m_cCameraData.getBaseViewNumbers().size() , "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" ); 1721 #else 1699 1722 xConfirmPara( ( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size() ) && ( m_numberOfLayers != m_cCameraData.getBaseViewNumbers().size() ), "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" ); 1723 #endif 1700 1724 #else 1701 1725 xConfirmPara( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size(), "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" ); … … 2453 2477 printf("Min PCM size : %d\n", 1 << m_uiPCMLog2MinSize); 2454 2478 printf("Motion search range : %d\n", m_iSearchRange ); 2479 #if SONY_MV_V_CONST_C0078 2480 printf("Disp search range restriction: %d\n", m_bUseDisparitySearchRangeRestriction ); 2481 printf("Vertical disp search range : %d\n", m_iVerticalDisparitySearchRange ); 2482 #endif 2455 2483 #if H_MV 2456 2484 xPrintParaVector( "Intra period", m_iIntraPeriod ); … … 2604 2632 printf( "QtPred:%d " , m_qtPredFlag ? 1 : 0 ); 2605 2633 printf( "InterSdc:%d " , m_interSdcFlag ? 1 : 0 ); 2634 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2635 printf( "DepthIntraSkip:%d " , m_depthIntraSkipFlag ? 1 : 0 ); 2636 #else 2606 2637 printf( "IntraSingle:%d " , m_intraSingleFlag ? 1 : 0 ); 2638 #endif 2607 2639 #endif 2608 2640 -
trunk/source/App/TAppEncoder/TAppEncCfg.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 289 289 Int m_iSearchRange; ///< ME search range 290 290 Int m_bipredSearchRange; ///< ME search range for bipred refinement 291 #if SONY_MV_V_CONST_C0078 292 Bool m_bUseDisparitySearchRangeRestriction; ///< restrict vertical search range for inter-view prediction 293 Int m_iVerticalDisparitySearchRange; ///< ME vertical search range for inter-view prediction 294 #endif 291 295 Bool m_bUseFastEnc; ///< flag for using fast encoder setting 292 296 Bool m_bUseEarlyCU; ///< flag for using Early CU setting … … 484 488 Bool m_qtPredFlag; 485 489 Bool m_interSdcFlag; 490 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 491 Bool m_depthIntraSkipFlag; 492 #else 486 493 Bool m_intraSingleFlag; 487 494 #endif 488 495 #endif 489 496 // internal member functions -
trunk/source/App/TAppEncoder/TAppEncTop.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 140 140 xSetVPSVUI ( vps ); 141 141 #if H_3D 142 #if HHI_CAM_PARA_K0052 143 xSetCamPara ( vps ); 144 #endif 145 #endif 146 #if H_3D 142 147 m_ivPicLists.setVPS ( &vps ); 143 148 xDeriveDltArray ( vps, dlt ); … … 196 201 m_sps3dExtension.setQtPredFlag ( d, m_qtPredFlag ); 197 202 m_sps3dExtension.setInterSdcFlag ( d, m_interSdcFlag ); 203 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 204 m_sps3dExtension.setDepthIntraSkipFlag ( d, m_depthIntraSkipFlag ); 205 #else 198 206 m_sps3dExtension.setIntraSingleFlag ( d, m_intraSingleFlag ); 199 } 200 }201 #endif 202 207 #endif 208 } 209 } 210 #endif 203 211 for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++) 204 212 { … … 221 229 //====== Camera Parameters ========= 222 230 m_cTEncTop.setCameraParameters ( &m_cCameraData ); 231 #if !HHI_CAM_PARA_K0052 223 232 m_cTEncTop.setCamParPrecision ( m_cCameraData.getCamParsCodedPrecision () ); 224 233 m_cTEncTop.setCamParInSliceHeader ( m_cCameraData.getVaryingCameraParameters() ); 234 225 235 m_cTEncTop.setCodedScale ( m_cCameraData.getCodedScale () ); 226 236 m_cTEncTop.setCodedOffset ( m_cCameraData.getCodedOffset () ); 237 #endif 227 238 #if H_3D_VSO 228 239 //====== VSO ========= … … 348 359 m_cTEncTop.setBipredSearchRange ( m_bipredSearchRange ); 349 360 361 #if SONY_MV_V_CONST_C0078 362 m_cTEncTop.setUseDisparitySearchRangeRestriction ( m_bUseDisparitySearchRangeRestriction ); 363 m_cTEncTop.setVerticalDisparitySearchRange ( m_iVerticalDisparitySearchRange ); 364 #endif 350 365 //====== Quality control ======== 351 366 m_cTEncTop.setMaxDeltaQP ( m_iMaxDeltaQP ); … … 636 651 } 637 652 #endif 653 #if H_3D_ANNEX_SELECTION_FIX 654 #if H_3D 655 /// SET Profiles 656 for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++) 657 { 658 Int profileIdc = -1; 659 for (Int olsIdx = 0; olsIdx < vps.getNumOutputLayerSets(); olsIdx++ ) 660 { 661 Int lsIdx = vps.olsIdxToLsIdx( olsIdx ); 662 for(Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++ ) 663 { 664 if( vps.getLayerIdInNuh( layerIdInVps) == vps.getLayerSetLayerIdList(lsIdx, i) ) 665 { 666 Int ptlIdx = vps.getProfileTierLevelIdx( olsIdx, i ); 667 if ( ptlIdx != -1 ) 668 { 669 Int curProfileIdc = vps.getPTL(ptlIdx)->getGeneralPTL()->getProfileIdc(); 670 if (profileIdc == -1) 671 { 672 profileIdc = curProfileIdc; 673 } 674 else 675 { 676 if ( profileIdc != curProfileIdc ) 677 { 678 fprintf(stderr, "Error: ProfileIdc for layer with index %d in VPS not equal in all OLSs. \n", layerIdInVps ); 679 exit(EXIT_FAILURE); 680 } 681 } 682 } 683 } 684 } 685 } 686 if (profileIdc == -1 ) 687 { 688 fprintf(stderr, "Error: No profile given for layer with index %d in VPS not equal in all OLS. \n", layerIdInVps ); 689 exit(EXIT_FAILURE); 690 } 691 m_acTEncTopList[ layerIdInVps ]->setProfileIdc( profileIdc ); 692 } 693 #endif 694 #endif 638 695 #if H_3D_VSO 639 696 if ( m_bUseVSO ) … … 742 799 { 743 800 #if H_3D 801 #if !HHI_CAM_PARA_K0052 744 802 for ( Int viewIndex = 0; viewIndex < m_vps->getNumViews(); viewIndex++ ) 745 803 { … … 747 805 m_cCameraData.getVaryingCameraParameters(), m_cCameraData.getCodedScale(), m_cCameraData.getCodedOffset() ); 748 806 } 807 #endif 749 808 #endif 750 809 … … 1329 1388 1330 1389 assert( m_iNumberOfViews == vps.getNumViews() ); 1390 1391 1392 #if HHI_INTER_COMP_PRED_K0052 1393 #if H_3D 1394 vps.initViewCompLayer( ); 1395 #endif 1396 #endif 1331 1397 } 1332 1398 … … 1346 1412 Bool defaultDirectDependencyFlag = false; 1347 1413 1414 #if H_3D_DIRECT_DEP_TYPE 1415 Int directDepTypeLenMinus2 = 0; 1416 #endif 1348 1417 for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ ) 1349 1418 { … … 1355 1424 vps.setDirectDependencyFlag( depLayer, refLayer, true); 1356 1425 Int curDirectDependencyType = m_dependencyTypes[depLayer][i]; 1357 1426 #if H_3D_DIRECT_DEP_TYPE 1427 directDepTypeLenMinus2 = std::max( directDepTypeLenMinus2, gCeilLog2( curDirectDependencyType + 1 ) - 2 ); 1428 #endif 1358 1429 if ( defaultDirectDependencyType != -1 ) 1359 1430 { … … 1372 1443 vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag ); 1373 1444 vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 ); 1445 1446 #if H_3D_DIRECT_DEP_TYPE 1447 assert( directDepTypeLenMinus2 <= 1 ); 1448 vps.setDirectDepTypeLenMinus2( directDepTypeLenMinus2 ); 1449 #endif 1450 1374 1451 1375 1452 vps.setRefLayers(); … … 1418 1495 #endif 1419 1496 { 1497 #if !HHI_INTER_COMP_PRED_K0052 1420 1498 Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 ); 1499 #endif 1421 1500 Bool refLayerZero = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 ); 1501 #if HHI_INTER_COMP_PRED_K0052 1502 // refAlwaysIntra actually not needed, since TemporalIds need to be aligned within an AU. 1503 // Thus, reference pictures of IRAP pictures have TemporalId equal to 0. 1504 maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 1505 #else 1422 1506 maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId ); 1507 #endif 1423 1508 } 1424 1509 } … … 1428 1513 else 1429 1514 { 1515 #if HHI_INTER_COMP_PRED_K0052 1516 if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) ) 1517 { 1518 Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false ); 1519 if ( nuhLayerIdTex == refLayerIdInNuh ) 1520 { 1521 for( Int i = 0; i < ( getGOPSize() + 1); i++ ) 1522 { 1523 GOPEntry geCur = m_GOPListMvc[curLayerIdInVps][( i < getGOPSize() ? i : MAX_GOP )]; 1524 GOPEntry geRef = m_GOPListMvc[refLayerIdInVps][( i < getGOPSize() ? i : MAX_GOP )]; 1525 if ( geCur.m_interCompPredFlag ) 1526 { 1527 Bool refLayerZero = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 ); 1528 maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 1529 } 1530 } 1531 } 1532 } 1533 if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0 && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_depthBasedBlkPartFlag ) ) 1534 { 1535 for( Int i = 0; i < ( getGOPSize() + 1); i++ ) 1536 { 1537 GOPEntry geCur = m_GOPListMvc[curLayerIdInVps][( i < getGOPSize() ? i : MAX_GOP )]; 1538 GOPEntry geRef = m_GOPListMvc[refLayerIdInVps][( i < getGOPSize() ? i : MAX_GOP )]; 1539 1540 if ( geCur.m_interCompPredFlag ) 1541 { 1542 for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++ ) 1543 { 1544 Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[j] ) ), true ); 1545 if ( nuhLayerIdDep == refLayerIdInNuh ) 1546 { 1547 Bool refLayerZero = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 ); 1548 maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 1549 } 1550 } 1551 } 1552 } 1553 } 1554 #else 1430 1555 if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) ) 1431 1556 { … … 1458 1583 } 1459 1584 } 1585 #endif 1460 1586 } 1461 } 1587 } // if ( vps.getDirectDependencyFlag( curLayerIdInVps, refLayerIdInVps ) ) 1462 1588 vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 ); 1463 1589 #endif 1464 } 1465 } 1590 } // Loop curLayerIdInVps 1591 } // Loop refLayerIdInVps 1466 1592 1467 1593 // Max temporal id for inter layer reference pictures presence flag … … 1673 1799 Void TAppEncTop::xSetRepFormat( TComVPS& vps ) 1674 1800 { 1801 1802 #if H_3D_DISABLE_CHROMA 1803 Bool anyDepth = false; 1804 for ( Int i = 0; i < m_numberOfLayers; i++ ) 1805 { 1806 vps.setVpsRepFormatIdx( i, m_depthFlag[ i ] ? 1 : 0 ); 1807 anyDepth = anyDepth || m_depthFlag[ i ]; 1808 } 1809 1810 vps.setRepFormatIdxPresentFlag( anyDepth ); 1811 vps.setVpsNumRepFormatsMinus1 ( anyDepth ? 1 : 0 ); 1812 1813 for ( Int j = 0; j <= vps.getVpsNumRepFormatsMinus1(); j++ ) 1814 { 1815 TComRepFormat* repFormat = new TComRepFormat; 1816 1817 repFormat->setBitDepthVpsChromaMinus8 ( g_bitDepthC - 8 ); 1818 repFormat->setBitDepthVpsLumaMinus8 ( g_bitDepthY - 8 ); 1819 repFormat->setChromaFormatVpsIdc ( j == 1 ? CHROMA_400 : CHROMA_420 ); 1820 repFormat->setPicHeightVpsInLumaSamples ( m_iSourceHeight ); 1821 repFormat->setPicWidthVpsInLumaSamples ( m_iSourceWidth ); 1822 repFormat->setChromaAndBitDepthVpsPresentFlag( true ); 1823 // ToDo not supported yet. 1824 //repFormat->setSeparateColourPlaneVpsFlag( ); 1825 #if H_MV_FIX_CONF_WINDOW 1826 Bool conformanceWindowVpsFlag = ( m_confWinBottom != 0 ) || ( m_confWinRight != 0 ) || ( m_confWinTop != 0 ) || ( m_confWinBottom != 0 ); 1827 repFormat->setConformanceWindowVpsFlag( conformanceWindowVpsFlag ); 1828 if ( conformanceWindowVpsFlag ) 1829 { 1830 repFormat->setConfWinVpsLeftOffset ( m_confWinLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1831 repFormat->setConfWinVpsRightOffset ( m_confWinRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1832 repFormat->setConfWinVpsTopOffset ( m_confWinTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1833 repFormat->setConfWinVpsBottomOffset ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1834 } 1835 #else 1836 repFormat->setConformanceWindowVpsFlag( true ); 1837 repFormat->setConfWinVpsLeftOffset ( m_confWinLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1838 repFormat->setConfWinVpsRightOffset ( m_confWinRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1839 repFormat->setConfWinVpsTopOffset ( m_confWinTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1840 repFormat->setConfWinVpsBottomOffset ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1841 #endif 1842 assert( vps.getRepFormat( j ) == NULL ); 1843 vps.setRepFormat( j , repFormat ); 1844 }; 1845 1846 1847 #else 1675 1848 vps.setRepFormatIdxPresentFlag( false ); 1676 1849 vps.setVpsNumRepFormatsMinus1 ( 0 ); … … 1701 1874 assert( vps.getRepFormat( 0 ) == NULL ); 1702 1875 vps.setRepFormat( 0 , repFormat ); 1876 #endif 1703 1877 } 1704 1878 … … 2075 2249 } 2076 2250 } 2251 2252 #if HHI_CAM_PARA_K0052 2253 #if H_3D 2254 Void TAppEncTop::xSetCamPara ( TComVPS& vps ) 2255 { 2256 vps.setCpPrecision( m_cCameraData.getCamParsCodedPrecision()); 2257 2258 for ( Int n = 1; n < vps.getNumViews(); n++ ) 2259 { 2260 Int i = vps.getViewOIdxList( n ); 2261 Int iInVps = vps.getVoiInVps ( i ); 2262 vps.setNumCp( iInVps, n); 2263 2264 if ( vps.getNumCp( iInVps ) > 0 ) 2265 { 2266 vps.setCpInSliceSegmentHeaderFlag( iInVps, m_cCameraData.getVaryingCameraParameters() ); 2267 2268 for( Int m = 0; m < vps.getNumCp( iInVps ); m++ ) 2269 { 2270 vps.setCpRefVoi( iInVps, m, vps.getViewOIdxList( m ) ); 2271 if( !vps.getCpInSliceSegmentHeaderFlag( iInVps ) ) 2272 { 2273 Int j = vps.getCpRefVoi( iInVps, m ); 2274 Int jInVps = vps.getVoiInVps( j ); 2275 2276 vps.setVpsCpScale ( iInVps, jInVps, m_cCameraData.getCodedScale() [ jInVps ][ iInVps ] ) ; 2277 vps.setVpsCpInvScale( iInVps, jInVps, m_cCameraData.getCodedScale() [ iInVps ][ jInVps ] ) ; 2278 vps.setVpsCpOff ( iInVps, jInVps, m_cCameraData.getCodedOffset()[ jInVps ][ iInVps ] ) ; 2279 vps.setVpsCpInvOff ( iInVps, jInVps, m_cCameraData.getCodedOffset()[ iInVps ][ jInVps ] ) ; 2280 } 2281 } 2282 } 2283 } 2284 vps.deriveCpPresentFlag(); 2285 } 2286 #endif 2287 #endif 2288 2289 2077 2290 Bool TAppEncTop::xLayerIdInTargetEncLayerIdList(Int nuhLayerId) 2078 2291 { -
trunk/source/App/TAppEncoder/TAppEncTop.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 142 142 Void xSetDpbSize ( TComVPS& vps ); 143 143 Void xSetVPSVUI ( TComVPS& vps ); 144 #if HHI_CAM_PARA_K0052 145 #if H_3D 146 Void xSetCamPara ( TComVPS& vps ); 147 #endif 148 #endif 144 149 GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc ); 145 150 Int xGetMax( std::vector<Int>& vec); -
trunk/source/App/TAppEncoder/encmain.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppExtractor/TAppExtrCfg.cpp
r56 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppExtractor/TAppExtrCfg.h
r42 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppExtractor/TAppExtrTop.cpp
r608 r1179 4 4 // * granted under this license. 5 5 // * 6 // * Copyright (c) 2010-201 1,ISO/IEC6 // * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 // * All rights reserved. 8 8 // * -
trunk/source/App/TAppExtractor/TAppExtrTop.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppExtractor/extrmain.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppRenderer/RendererMain.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppRenderer/TAppRendererCfg.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppRenderer/TAppRendererCfg.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppRenderer/TAppRendererTop.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/App/TAppRenderer/TAppRendererTop.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TAppCommon/TAppComCamPara.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 399 399 400 400 401 #if !HHI_CAM_PARA_K0052 401 402 Void 402 403 TAppComCamPara::xGetViewOrderIndices( const std::vector<Int>& raiId2SortedId, std::vector<Int>& raiVOIdx ) … … 411 412 } 412 413 } 414 #endif 413 415 414 416 … … 447 449 else 448 450 { 449 Int iBaseView = m_aiBaseViews[ iBaseViewId ];450 Double dFL1, dFLX;451 Double dCP1, dCPX;452 Double dCS1, dCSX;453 Double dZN1, dZNX;454 Double dZF1, dZFX;455 Bool bInterpolated;456 xGetGeometryData( iBaseView, m_uiFirstFrameId, dFL1, dCP1, dCS1, bInterpolated ); AOT( bInterpolated );457 xGetZNearZFar ( iBaseView, m_uiFirstFrameId, dZN1, dZF1 );458 459 for( UInt uiFrameId = m_uiFirstFrameId + 1; !bChangeDetected && uiFrameId <= m_uiLastFrameId; uiFrameId++ )460 {461 xGetGeometryData( iBaseView, uiFrameId, dFLX, dCPX, dCSX, bInterpolated ); AOT( bInterpolated );462 xGetZNearZFar ( iBaseView, uiFrameId, dZNX, dZFX );463 464 if( dFL1 != dFLX || dCP1 != dCPX || dCS1 != dCSX || dZN1 != dZNX || dZF1 != dZFX )465 {466 bChangeDetected = true;467 }468 }469 }451 Int iBaseView = m_aiBaseViews[ iBaseViewId ]; 452 Double dFL1, dFLX; 453 Double dCP1, dCPX; 454 Double dCS1, dCSX; 455 Double dZN1, dZNX; 456 Double dZF1, dZFX; 457 Bool bInterpolated; 458 xGetGeometryData( iBaseView, m_uiFirstFrameId, dFL1, dCP1, dCS1, bInterpolated ); AOT( bInterpolated ); 459 xGetZNearZFar ( iBaseView, m_uiFirstFrameId, dZN1, dZF1 ); 460 461 for( UInt uiFrameId = m_uiFirstFrameId + 1; !bChangeDetected && uiFrameId <= m_uiLastFrameId; uiFrameId++ ) 462 { 463 xGetGeometryData( iBaseView, uiFrameId, dFLX, dCPX, dCSX, bInterpolated ); AOT( bInterpolated ); 464 xGetZNearZFar ( iBaseView, uiFrameId, dZNX, dZFX ); 465 466 if( dFL1 != dFLX || dCP1 != dCPX || dCS1 != dCSX || dZN1 != dZNX || dZF1 != dZFX ) 467 { 468 bChangeDetected = true; 469 } 470 } 471 } 470 472 } 471 473 return bChangeDetected; … … 721 723 else 722 724 { 723 Double dScale, dOffset; 724 Bool bInterpolated = xGetShiftParameterReal( uiSourceView, uiTargetView, uiFrame, false, bByIdx, dScale, dOffset ); 725 AOT( bInterpolated ); // must be base view 726 727 Double dMultOffset = (Double)( 1 << ( m_uiCamParsCodedPrecision + 1 ) ); 728 Double dMultScale = (Double)( 1 << ( m_uiCamParsCodedPrecision + 1 + m_uiInputBitDepth ) ); 729 riOffset = (Int)floor( dMultOffset * dOffset + .5 ); 730 riScale = (Int)floor( dMultScale * dScale + .5 ); 731 } 732 725 Double dScale, dOffset; 726 Bool bInterpolated = xGetShiftParameterReal( uiSourceView, uiTargetView, uiFrame, false, bByIdx, dScale, dOffset ); 727 AOT( bInterpolated ); // must be base view 728 729 Double dMultOffset = (Double)( 1 << ( m_uiCamParsCodedPrecision + 1 ) ); 730 Double dMultScale = (Double)( 1 << ( m_uiCamParsCodedPrecision + 1 + m_uiInputBitDepth ) ); 731 riOffset = (Int)floor( dMultOffset * dOffset + .5 ); 732 riScale = (Int)floor( dMultScale * dScale + .5 ); 733 } 733 734 } 734 735 … … 958 959 959 960 961 962 #if !HHI_CAM_PARA_K0052 960 963 Void 961 964 TAppComCamPara::xSetPdmConversionParams() … … 995 998 } 996 999 } 1000 #endif 997 1001 998 1002 … … 1280 1284 1281 1285 //===== set derived parameters ===== 1286 #if !HHI_CAM_PARA_K0052 1282 1287 xGetViewOrderIndices( m_aiBaseId2SortedId, m_aiViewOrderIndex ); 1288 #endif 1283 1289 m_bCamParsVaryOverTime = xGetCamParsChangeFlag(); 1284 1290 -
trunk/source/Lib/TAppCommon/TAppComCamPara.h
r655 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 85 85 86 86 // SPS and slice header related variables 87 #if !HHI_CAM_PARA_K0052 87 88 std::vector<Int> m_aiViewOrderIndex; ///< list of view order indices 89 #endif 88 90 UInt m_uiCamParsCodedPrecision; ///< precision for coding of camera parameters (x: max error in disparity is 2^(-x) luma samples) 89 91 Bool m_bCamParsVaryOverTime; ///< flag specifying whether camera parameters vary for given frame numbers … … 145 147 // getting conversion parameters for disparity to virtual depth conversion 146 148 Void xGetCameraShifts ( UInt uiSourceView, UInt uiTargetView, UInt uiFrame, Double& rdCamPosShift, Double& rdPicPosShift ); 149 #if !HHI_CAM_PARA_K0052 147 150 Void xSetPdmConversionParams (); 151 #endif 148 152 149 153 public: … … 216 220 Bool getVaryingCameraParameters() { return m_bCamParsVaryOverTime; } 217 221 UInt getCamParsCodedPrecision () { return m_uiCamParsCodedPrecision; } 222 #if !HHI_CAM_PARA_K0052 218 223 std::vector<Int>& getViewOrderIndex () { return m_aiViewOrderIndex; } 224 #endif 219 225 Int** getCodedScale () { return m_aaiCodedScale; } 220 226 Int** getCodedOffset () { return m_aaiCodedOffset; } -
trunk/source/Lib/TAppCommon/program_options_lite.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TAppCommon/program_options_lite.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/AccessUnit.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/CommonDef.h
r1134 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/ContextModel.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/ContextModel.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/ContextModel3DBuffer.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/ContextModel3DBuffer.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/ContextTables.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 51 51 #define NUM_SPLIT_FLAG_CTX 3 ///< number of context models for split flag 52 52 #define NUM_SKIP_FLAG_CTX 3 ///< number of context models for skip flag 53 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 54 #define NUM_DIS_FLAG_CTX 1 55 #define NUM_DIS_TYPE_CTX 1 56 #else 53 57 #if H_3D_SINGLE_DEPTH 54 58 #define NUM_SINGLEDEPTH_FLAG_CTX 1 55 59 #define NUM_SINGLE_DEPTH_VALUE_DATA_CTX 1 60 #endif 56 61 #endif 57 62 #define NUM_MERGE_FLAG_EXT_CTX 1 ///< number of context models for merge flag of merge extended … … 153 158 { CNU, CNU, CNU, }, 154 159 }; 160 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 161 static const UChar 162 INIT_DIS_FLAG[3][NUM_DIS_FLAG_CTX] = 163 { 164 { 185 }, 165 { 185 }, 166 { 185 }, 167 }; 168 static const UChar 169 INIT_DIS_TYPE[3][NUM_DIS_TYPE_CTX] = 170 { 171 { 137 }, 172 { 137 }, 173 { 137 }, 174 }; 175 #else 155 176 #if H_3D_SINGLE_DEPTH 156 177 static const UChar … … 169 190 }; 170 191 #endif 192 #endif 171 193 static const UChar 172 194 INIT_MERGE_FLAG_EXT[3][NUM_MERGE_FLAG_EXT_CTX] = -
trunk/source/Lib/TLibCommon/NAL.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/SEI.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/SEI.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComBitCounter.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComBitStream.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComBitStream.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComCABACTables.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComCABACTables.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComDataCU.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 60 60 61 61 m_skipFlag = NULL; 62 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 63 m_bDISFlag = NULL; 64 m_uiDISType = NULL; 65 #else 62 66 #if H_3D_SINGLE_DEPTH 63 67 m_singleDepthFlag = NULL; 64 68 m_apSingleDepthValue = NULL; 65 #endif 69 #endif 70 #endif 66 71 m_pePartSize = NULL; 67 72 m_pePredMode = NULL; … … 181 186 182 187 m_skipFlag = new Bool[ uiNumPartition ]; 188 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 189 m_bDISFlag = new Bool[ uiNumPartition ]; 190 m_uiDISType = (UInt*)xMalloc(UInt, uiNumPartition); 191 #else 183 192 #if H_3D_SINGLE_DEPTH 184 193 m_singleDepthFlag = new Bool[ uiNumPartition ]; 185 194 m_apSingleDepthValue = (Pel*)xMalloc(Pel, uiNumPartition); 195 #endif 186 196 #endif 187 197 m_pePartSize = new Char[ uiNumPartition ]; … … 327 337 328 338 if ( m_skipFlag ) { delete[] m_skipFlag; m_skipFlag = NULL; } 339 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 340 if ( m_bDISFlag ) { delete[] m_bDISFlag; m_bDISFlag = NULL; } 341 if ( m_uiDISType ) { xFree(m_uiDISType); m_uiDISType = NULL; } 342 #else 329 343 #if H_3D_SINGLE_DEPTH 330 344 if ( m_singleDepthFlag ) { delete[] m_singleDepthFlag; m_singleDepthFlag = NULL; } 331 345 if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue); m_apSingleDepthValue = NULL; } 346 #endif 332 347 #endif 333 348 if ( m_pePartSize ) { delete[] m_pePartSize; m_pePartSize = NULL; } … … 491 506 TComDataCU * pcFrom = pcPic->getCU(getAddr()); 492 507 m_skipFlag[ui] = pcFrom->getSkipFlag(ui); 508 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 509 m_bDISFlag[ui] = pcFrom->getDISFlag(ui); 510 m_uiDISType[ui] = pcFrom->getDISType(ui); 511 #else 493 512 #if H_3D_SINGLE_DEPTH 494 513 m_singleDepthFlag[ui] = pcFrom->getSingleDepthFlag(ui); 495 514 m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui); 515 #endif 496 516 #endif 497 517 m_pePartSize[ui] = pcFrom->getPartitionSize(ui); … … 546 566 { 547 567 memset( m_skipFlag + firstElement, false, numElements * sizeof( *m_skipFlag ) ); 568 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 569 memset( m_bDISFlag + firstElement, false, numElements * sizeof( *m_bDISFlag ) ); 570 memset( m_uiDISType + firstElement, 0, numElements * sizeof( *m_uiDISType) ); 571 #else 548 572 #if H_3D_SINGLE_DEPTH 549 573 memset( m_singleDepthFlag + firstElement, false, numElements * sizeof( *m_singleDepthFlag ) ); 550 574 memset( m_apSingleDepthValue + firstElement, 0, numElements * sizeof( *m_apSingleDepthValue ) ); 575 #endif 551 576 #endif 552 577 memset( m_pePartSize + firstElement, SIZE_NONE, numElements * sizeof( *m_pePartSize ) ); … … 733 758 m_puhTransformSkip[2][ui] = 0; 734 759 m_skipFlag[ui] = false; 760 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 761 m_bDISFlag[ui] = false; 762 m_uiDISType[ui] = 0; 763 #else 735 764 #if H_3D_SINGLE_DEPTH 736 765 m_singleDepthFlag[ui] = false; 737 766 m_apSingleDepthValue[ui] = 0; 767 #endif 738 768 #endif 739 769 m_pePartSize[ui] = SIZE_NONE; … … 861 891 memset( m_puhCbf[2], 0, iSizeInUchar ); 862 892 memset( m_puhDepth, uiDepth, iSizeInUchar ); 863 #if H_3D_NBDV 893 #if H_3D_NBDV && !SEC_ARP_REM_ENC_RESTRICT_K0035 864 894 m_pDvInfo->bDV = false; 865 895 #endif … … 904 934 { 905 935 m_skipFlag[ui] = false; 936 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 937 m_bDISFlag[ui] = false; 938 m_uiDISType[ui] = 0; 939 #else 906 940 #if H_3D_SINGLE_DEPTH 907 941 m_singleDepthFlag[ui] = false; 908 942 m_apSingleDepthValue[ui]= 0; 943 #endif 909 944 #endif 910 945 m_pePartSize[ui] = SIZE_NONE; … … 929 964 m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V); 930 965 m_skipFlag[ui] = pcCU->getSkipFlag(uiPartOffset+ui); 966 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 967 m_bDISFlag[ui] = pcCU->getDISFlag(uiPartOffset+ui); 968 m_uiDISType[ui] = pcCU->getDISType(uiPartOffset+ui); 969 #else 931 970 #if H_3D_SINGLE_DEPTH 932 971 m_singleDepthFlag[ui] = pcCU->getSingleDepthFlag(uiPartOffset+ui); 933 972 m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui); 973 #endif 934 974 #endif 935 975 m_pePartSize[ui] = pcCU->getPartitionSize(uiPartOffset+ui); … … 1078 1118 1079 1119 m_skipFlag=pcCU->getSkipFlag() + uiPart; 1120 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1121 m_bDISFlag = pcCU->getDISFlag() + uiPart; 1122 m_uiDISType = pcCU->getDISType() + uiPart; 1123 #else 1080 1124 #if H_3D_SINGLE_DEPTH 1081 1125 m_singleDepthFlag = pcCU->getSingleDepthFlag() + uiPart; 1082 1126 m_apSingleDepthValue = pcCU->getSingleDepthValue() + uiPart; 1083 #endif 1127 #endif 1128 #endif 1084 1129 m_phQP=pcCU->getQP() + uiPart; 1085 1130 m_pePartSize = pcCU->getPartitionSize() + uiPart; … … 1215 1260 1216 1261 m_skipFlag = pcCU->getSkipFlag () + uiAbsPartIdx; 1262 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1263 m_bDISFlag = pcCU->getDISFlag () + uiAbsPartIdx; 1264 m_uiDISType = pcCU->getDISType() + uiAbsPartIdx; 1265 #else 1217 1266 #if H_3D_SINGLE_DEPTH 1218 1267 m_singleDepthFlag = pcCU->getSingleDepthFlag () + uiAbsPartIdx; 1219 1268 m_apSingleDepthValue = pcCU->getSingleDepthValue () + uiAbsPartIdx; 1220 #endif 1269 #endif 1270 #endif 1221 1271 m_pePartSize = pcCU->getPartitionSize () + uiAbsPartIdx; 1222 1272 #if H_3D_NBDV … … 1290 1340 Int sizeInChar = sizeof( Char ) * uiNumPartition; 1291 1341 memcpy( m_skipFlag + uiOffset, pcCU->getSkipFlag(), sizeof( *m_skipFlag ) * uiNumPartition ); 1342 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1343 memcpy( m_bDISFlag + uiOffset, pcCU->getDISFlag(), sizeof( *m_bDISFlag ) * uiNumPartition ); 1344 memcpy( m_uiDISType + uiOffset, pcCU->getDISType(), sizeof( *m_uiDISType ) * uiNumPartition); 1345 #else 1292 1346 #if H_3D_SINGLE_DEPTH 1293 1347 memcpy( m_singleDepthFlag + uiOffset, pcCU->getSingleDepthFlag(), sizeof( *m_singleDepthFlag ) * uiNumPartition ); 1294 1348 memcpy( m_apSingleDepthValue + uiOffset, pcCU->getSingleDepthValue(), sizeof( *m_apSingleDepthValue ) * uiNumPartition); 1349 #endif 1295 1350 #endif 1296 1351 memcpy( m_phQP + uiOffset, pcCU->getQP(), sizeInChar ); … … 1410 1465 1411 1466 memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition ); 1467 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1468 memcpy( rpcCU->getDISFlag() + m_uiAbsIdxInLCU, m_bDISFlag, sizeof( *m_bDISFlag ) * m_uiNumPartition ); 1469 memcpy( rpcCU->getDISType() + m_uiAbsIdxInLCU, m_uiDISType, sizeof( *m_uiDISType ) * m_uiNumPartition ); 1470 #else 1412 1471 #if H_3D_SINGLE_DEPTH 1413 1472 memcpy( rpcCU->getSingleDepthFlag() + m_uiAbsIdxInLCU, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * m_uiNumPartition ); 1414 1473 memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition); 1474 #endif 1415 1475 #endif 1416 1476 memcpy( rpcCU->getQP() + m_uiAbsIdxInLCU, m_phQP, sizeInChar ); … … 1525 1585 Int sizeInChar = sizeof( Char ) * uiQNumPart; 1526 1586 memcpy( rpcCU->getSkipFlag() + uiPartOffset, m_skipFlag, sizeof( *m_skipFlag ) * uiQNumPart ); 1587 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1588 memcpy( rpcCU->getDISFlag() + uiPartOffset, m_bDISFlag, sizeof( *m_bDISFlag ) * uiQNumPart ); 1589 memcpy( rpcCU->getDISType() + uiPartOffset, m_uiDISType, sizeof( *m_uiDISType ) * uiQNumPart ); 1590 #else 1527 1591 #if H_3D_SINGLE_DEPTH 1528 1592 memcpy( rpcCU->getSingleDepthFlag() + uiPartOffset, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * uiQNumPart ); 1529 1593 memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart); 1594 #endif 1530 1595 #endif 1531 1596 memcpy( rpcCU->getQP() + uiPartOffset, m_phQP, sizeInChar ); … … 2323 2388 Int iPictureHeight = depthPicYuv->getHeight(); 2324 2389 2390 #if !HS_DBBP_CLEAN_K0048 2325 2391 Int iWidth = uiWidth; 2326 2392 Int iHeight = uiHeight; 2393 #endif 2327 2394 2328 2395 Bool depthRefineFlag = false; … … 2337 2404 } 2338 2405 2406 #if HS_DBBP_CLEAN_K0048 2407 Int depthPosX = Clip3(0, iPictureWidth - 1, iBlkX + ((cDv.getHor()+2)>>2)); 2408 Int depthPosY = Clip3(0, iPictureHeight - 1, iBlkY + ((cDv.getVer()+2)>>2)); 2409 #else 2339 2410 Int depthPosX = Clip3(0, iPictureWidth - iWidth, iBlkX + ((cDv.getHor()+2)>>2)); 2340 2411 Int depthPosY = Clip3(0, iPictureHeight- iHeight, iBlkY + ((cDv.getVer()+2)>>2)); 2412 #endif 2341 2413 2342 2414 pDepthPels = depthPicYuv->getLumaAddr() + depthPosX + depthPosY * uiDepthStride; … … 2382 2454 Void TComDataCU::setCbfSubParts( UInt uiCbf, TextType eTType, UInt uiAbsPartIdx, UInt uiDepth ) 2383 2455 { 2456 2384 2457 UInt uiCurrPartNumb = m_pcPic->getNumPartInCU() >> (uiDepth << 1); 2385 2458 memset( m_puhCbf[g_aucConvertTxtTypeToIdx[eTType]] + uiAbsPartIdx, uiCbf, sizeof( UChar ) * uiCurrPartNumb ); … … 2427 2500 memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) ); 2428 2501 } 2502 2503 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2504 Void TComDataCU::setDISFlagSubParts( Bool bDIS, UInt absPartIdx, UInt depth ) 2505 { 2506 assert( sizeof( *m_bDISFlag) == 1 ); 2507 memset( m_bDISFlag + absPartIdx, bDIS, m_pcPic->getNumPartInCU() >> ( 2 * depth ) ); 2508 } 2509 2510 Void TComDataCU::setDISTypeSubParts(UInt uiDISType, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth ) 2511 { 2512 setSubPartT( uiDISType, m_uiDISType, uiAbsPartIdx, uiDepth, uiPUIdx ); 2513 } 2514 #else 2429 2515 #if H_3D_SINGLE_DEPTH 2430 2516 Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth ) … … 2439 2525 } 2440 2526 #endif 2527 #endif 2528 2441 2529 Void TComDataCU::setPredModeSubParts( PredMode eMode, UInt uiAbsPartIdx, UInt uiDepth ) 2442 2530 { … … 4109 4197 } 4110 4198 } 4199 #if !SHARP_SUBBLOCK_CLEAN_K0044 4111 4200 if (iPUHeight + iPUWidth == 12) 4112 4201 { … … 4117 4206 } 4118 4207 } 4208 #endif 4119 4209 4120 4210 iPartition ++; … … 5332 5422 } 5333 5423 5424 #if SONY_MV_V_CONST_C0078 5425 Void TComDataCU::checkMV_V (TComMv& rcMv, RefPicList eRefPicList, int iRefIdx ) 5426 { 5427 if ( getSlice()->getSPS()->getInterViewMvVertConstraintFlag() ) 5428 { 5429 if ( getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC() == getSlice()->getPOC() ) 5430 { 5431 //When inter_view_mv_vert_constraint_flag is equal to 1, 5432 //the vertical component of the motion vectors used for inter-layer prediction 5433 //shall be equal to or less than 56 in units of luma samples 5434 assert ( rcMv.getVer() <= (56<<2) ); 5435 } 5436 } 5437 } 5438 #endif 5439 5334 5440 UInt TComDataCU::getIntraSizeIdx(UInt uiAbsPartIdx) 5335 5441 { … … 5674 5780 } 5675 5781 5676 if ( bIsCurrRefLongTerm || bIsColRefLongTerm ) 5782 if ( bIsCurrRefLongTerm || bIsColRefLongTerm ) // CY: this condition equals to both bIsCurrRefLongTerm and bIsColRefLongTerm being 1 5677 5783 { 5678 5784 #if H_3D_TMVP 5785 #if !H_3D_FIX_TMVP_SCALING_VIEW_ID 5679 5786 Int iCurrViewId = m_pcSlice->getViewIndex (); 5680 5787 Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewIndex (); 5681 5788 Int iColViewId = pColCU->getSlice()->getViewIndex(); 5682 5789 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex(); 5683 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5684 5790 #else 5791 Int iCurrViewId = m_pcSlice->getViewId (); 5792 Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewId (); 5793 Int iColViewId = pColCU->getSlice()->getViewId(); 5794 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewId(); 5795 #endif 5796 #if H_3D_TMVP_SCALING_FIX_K0053 5797 iScale = 4096; 5798 if ( iCurrRefViewId != iCurrViewId && iColViewId != iColRefViewId ) 5799 #endif 5800 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5801 #if H_3D_TMVP_FIX_TICKET_97 5802 if ( bMRG && iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) ) 5803 #else 5685 5804 if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) ) 5805 #endif 5686 5806 { 5687 5807 rcMv = cColMv.scaleMv( iScale ); … … 5695 5815 #endif 5696 5816 } 5697 else 5817 else // CY: both bIsCurrRefLongTerm and bIsColRefLongTerm are 0 5698 5818 { 5699 5819 iScale = xGetDistScaleFactor(iCurrPOC, iCurrRefPOC, iColPOC, iColRefPOC); … … 5860 5980 #endif 5861 5981 #if H_3D_IV_MERGE 5982 #if SEC_ARP_REM_ENC_RESTRICT_K0035 5983 Void TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp) 5984 #else 5862 5985 Bool TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp) 5986 #endif 5863 5987 { 5864 5988 … … 5876 6000 pDisp->m_acNBDV = cMv; 5877 6001 pDisp->m_aVIdxCan = iViewIdx; 5878 6002 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 5879 6003 return true; 5880 } 6004 #endif 6005 } 6006 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 5881 6007 return false; 5882 } 5883 #endif 5884 5885 #if H_3D_SINGLE_DEPTH 5886 Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index) 5887 { 5888 6008 #endif 6009 } 6010 #endif 6011 6012 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 6013 Bool TComDataCU::getNeighDepth ( UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index ) 6014 { 6015 #if NEIGHBORING_PIX_AVAILABILITY_FIX 6016 UInt uiPartIdxLT, uiPartIdxRT; 6017 this->deriveLeftRightTopIdxAdi( uiPartIdxLT, uiPartIdxRT, 0, 0 ); 6018 UInt uiMidPart, uiPartNeighbor; 6019 TComDataCU* pcCUNeighbor; 6020 Bool bDepAvail = false; 6021 Pel *pDepth = this->getPic()->getPicYuvRec()->getLumaAddr(); 6022 Int iDepStride = this->getPic()->getPicYuvRec()->getStride(); 6023 6024 Int xP, yP, nPSW, nPSH; 6025 this->getPartPosition( uiPartIdx, xP, yP, nPSW, nPSH ); 6026 6027 switch( index ) 6028 { 6029 case 0: // Mid Left 6030 uiMidPart = g_auiZscanToRaster[uiPartIdxLT] + (nPSH>>1) / this->getPic()->getMinCUHeight() * this->getPic()->getNumPartInWidth(); 6031 pcCUNeighbor = this->getPULeft( uiPartNeighbor, g_auiRasterToZscan[uiMidPart] ); 6032 if ( pcCUNeighbor ) 6033 { 6034 if( !this->getSlice()->getPPS()->getConstrainedIntraPred() ) 6035 { 6036 *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ]; 6037 bDepAvail = true; 6038 } 6039 else if ( pcCUNeighbor->getPredictionMode( uiPartNeighbor ) == MODE_INTRA ) 6040 { 6041 *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ]; 6042 bDepAvail = true; 6043 } 6044 } 6045 break; 6046 case 1: // Mid Above 6047 uiMidPart = g_auiZscanToRaster[uiPartIdxLT] + (nPSW>>1) / this->getPic()->getMinCUWidth(); 6048 pcCUNeighbor = this->getPUAbove( uiPartNeighbor, g_auiRasterToZscan[uiMidPart] ); 6049 if( pcCUNeighbor ) 6050 { 6051 if( !this->getSlice()->getPPS()->getConstrainedIntraPred() ) 6052 { 6053 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ]; 6054 bDepAvail = true; 6055 } 6056 else if ( pcCUNeighbor->getPredictionMode( uiPartNeighbor ) == MODE_INTRA ) 6057 { 6058 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ]; 6059 bDepAvail = true; 6060 } 6061 } 6062 break; 6063 default: 6064 break; 6065 } 6066 6067 return bDepAvail; 6068 #else 5889 6069 Bool bDepAvail = false; 5890 6070 Pel *pDepth = this->getPic()->getPicYuvRec()->getLumaAddr(); … … 5912 6092 break; 5913 6093 default: 6094 break; 6095 } 6096 return bDepAvail; 6097 #endif 6098 } 6099 #else 6100 #if H_3D_SINGLE_DEPTH 6101 Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index) 6102 { 6103 6104 Bool bDepAvail = false; 6105 Pel *pDepth = this->getPic()->getPicYuvRec()->getLumaAddr(); 6106 Int iDepStride = this->getPic()->getPicYuvRec()->getStride(); 6107 6108 Int xP, yP, nPSW, nPSH; 6109 this->getPartPosition(uiPartIdx, xP, yP, nPSW, nPSH); 6110 UInt PicHeight=this->getPic()->getPicYuvRec()->getHeight(); 6111 UInt PicWidth=this->getPic()->getPicYuvRec()->getWidth(); 6112 switch(index) 6113 { 6114 case 0: // Mid Left 6115 if( ( xP != 0 ) && ( ( yP + ( nPSH >> 1 ) ) < PicHeight ) ) 6116 { 6117 *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ]; 6118 bDepAvail = true; 6119 } 6120 break; 6121 case 1: // Mid Above 6122 if( ( yP != 0 ) && ( ( xP + ( nPSW >> 1 ) ) < PicWidth ) ) 6123 { 6124 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ]; 6125 bDepAvail = true; 6126 } 6127 break; 6128 default: 5914 6129 break; 5915 6130 } 5916 6131 return bDepAvail; 5917 6132 } 5918 5919 #endif 6133 #endif 6134 #endif 6135 5920 6136 #if H_3D_NBDV 5921 6137 //Notes from QC: … … 5923 6139 //TBD#2: set of DvMCP values need to be done as part of inter-view motion prediction process. Remove this comment once merge related integration is done 5924 6140 //To be checked: Parallel Merge features for NBDV, related to DV_DERIVATION_PARALLEL_B0096 and LGE_IVMP_PARALLEL_MERGE_B0136 are not integrated. The need of these features due to the adoption of CU-based NBDV is not clear. We need confirmation on this, especially by proponents 6141 #if SEC_ARP_REM_ENC_RESTRICT_K0035 6142 Void TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo 6143 #else 5925 6144 Bool TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo 6145 #endif 5926 6146 #if H_3D_NBDV_REF 5927 6147 , Bool bDepthRefine … … 5931 6151 //// ******* Init variables ******* ///// 5932 6152 // Init disparity struct for results 6153 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 5933 6154 pDInfo->bDV = false; 6155 #endif 5934 6156 pDInfo->m_aVIdxCan = -1; 5935 6157 … … 6026 6248 pDInfo->m_acDoNBDV = cColMv; 6027 6249 #endif //H_3D_NBDV_REF 6250 #if SEC_ARP_REM_ENC_RESTRICT_K0035 6251 return; 6252 #else 6028 6253 return true; 6254 #endif 6029 6255 } 6030 6256 } … … 6043 6269 #endif 6044 6270 ) ) 6271 #if SEC_ARP_REM_ENC_RESTRICT_K0035 6272 return; 6273 #else 6045 6274 return true; 6275 #endif 6046 6276 6047 6277 //// ******* Get disparity from above block ******* ///// … … 6055 6285 #endif 6056 6286 ) ) 6287 #if SEC_ARP_REM_ENC_RESTRICT_K0035 6288 return; 6289 #else 6057 6290 return true; 6291 #endif 6058 6292 } 6059 6293 … … 6101 6335 pDInfo->m_acDoNBDV = cDispVec; 6102 6336 #endif 6337 #if SEC_ARP_REM_ENC_RESTRICT_K0035 6338 return; 6339 #else 6103 6340 return true; 6341 #endif 6104 6342 } 6105 6343 } … … 6137 6375 pDInfo->m_acDoNBDV = defaultDV; 6138 6376 #endif 6377 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 6139 6378 return true; 6140 } 6379 #endif 6380 } 6381 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 6141 6382 return false; 6383 #endif 6142 6384 } 6143 6385 … … 6712 6954 6713 6955 } 6956 #if !SHARP_SUBBLOCK_CLEAN_K0044 6714 6957 if (iSPHeight + iSPWidth == 12) 6715 6958 { … … 6720 6963 } 6721 6964 } 6965 #endif 6722 6966 iPartition ++; 6723 6967 } … … 6752 6996 Int iBaseAbsPartIdx; 6753 6997 6998 #if SEC_SHIFTED_IVMC_POS_K0036 6999 Int offsetW = (iLoopCan == 0) ? 0 : ( iWidth * 2 ); 7000 Int offsetH = (iLoopCan == 0) ? 0 : ( iHeight * 2 ); 7001 #else 6754 7002 Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 ); 6755 7003 Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 ); 7004 #endif 6756 7005 6757 7006 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) ); -
trunk/source/Lib/TLibCommon/TComDataCU.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 110 110 // ------------------------------------------------------------------------------------------------------------------- 111 111 Bool* m_skipFlag; ///< array of skip flags 112 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 113 Bool* m_bDISFlag; 114 UInt* m_uiDISType; 115 #else 112 116 #if H_3D_SINGLE_DEPTH 113 117 Bool* m_singleDepthFlag; ///< array of single depth flags 114 118 Pel* m_apSingleDepthValue; 119 #endif 115 120 #endif 116 121 Char* m_pePartSize; ///< array of partition sizes … … 308 313 TComPic* getPic () { return m_pcPic; } 309 314 TComSlice* getSlice () { return m_pcSlice; } 315 #if H_3D_DISABLE_CHROMA 316 Void setSlice ( TComSlice* pcSlice) { m_pcSlice = pcSlice; } 317 #endif 310 318 UInt& getAddr () { return m_uiCUAddr; } 311 319 UInt& getZorderIdxInCU () { return m_uiAbsIdxInLCU; } … … 342 350 Void setSkipFlag ( UInt idx, Bool skip) { m_skipFlag[idx] = skip; } 343 351 Void setSkipFlagSubParts ( Bool skip, UInt absPartIdx, UInt depth ); 352 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 353 Bool* getDISFlag () { return m_bDISFlag; } 354 Bool getDISFlag ( UInt idx) { return m_bDISFlag[idx]; } 355 Void setDISFlag ( UInt idx, Bool bDIS) { m_bDISFlag[idx] = bDIS; } 356 Void setDISFlagSubParts ( Bool bDIS, UInt absPartIdx, UInt depth ); 357 358 UInt* getDISType () { return m_uiDISType; } 359 UInt getDISType ( UInt idx) { return m_uiDISType[idx]; } 360 Void getDISType ( UInt idx, UInt uiDISType) { m_uiDISType[idx] = uiDISType; } 361 Void setDISTypeSubParts ( UInt uiDISType, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth ); 362 #else 344 363 #if H_3D_SINGLE_DEPTH 345 364 Bool* getSingleDepthFlag () { return m_singleDepthFlag; } … … 353 372 Void setSingleDepthValueSubParts (Pel singleDepthValue, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth ); 354 373 #endif 374 #endif 355 375 Char* getPredictionMode () { return m_pePredMode; } 356 376 PredMode getPredictionMode ( UInt uiIdx ) { return static_cast<PredMode>( m_pePredMode[uiIdx] ); } … … 418 438 UChar getCbf ( UInt uiIdx, TextType eType ) { return m_puhCbf[g_aucConvertTxtTypeToIdx[eType]][uiIdx]; } 419 439 UChar* getCbf ( TextType eType ) { return m_puhCbf[g_aucConvertTxtTypeToIdx[eType]]; } 440 420 441 UChar getCbf ( UInt uiIdx, TextType eType, UInt uiTrDepth ) { return ( ( getCbf( uiIdx, eType ) >> uiTrDepth ) & 0x1 ); } 421 442 Void setCbf ( UInt uiIdx, TextType eType, UChar uh ) { m_puhCbf[g_aucConvertTxtTypeToIdx[eType]][uiIdx] = uh; } 443 422 444 Void clearCbf ( UInt uiIdx, TextType eType, UInt uiNumParts ); 423 445 UChar getQtRootCbf ( UInt uiIdx ) { return getCbf( uiIdx, TEXT_LUMA, 0 ) || getCbf( uiIdx, TEXT_CHROMA_U, 0 ) || getCbf( uiIdx, TEXT_CHROMA_V, 0 ); } … … 484 506 ); 485 507 Bool xGetColDisMV ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); 508 #if SEC_ARP_REM_ENC_RESTRICT_K0035 509 Void getDisMvpCandNBDV ( DisInfo* pDInfo 510 #else 486 511 Bool getDisMvpCandNBDV ( DisInfo* pDInfo 512 #endif 487 513 #if H_3D_NBDV_REF 488 514 , Bool bDepthRefine = false … … 491 517 492 518 #if H_3D 519 #if SEC_ARP_REM_ENC_RESTRICT_K0035 520 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 521 #else 493 522 Bool getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 523 #endif 494 524 Bool getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm ); 495 525 #endif 526 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 527 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index); 528 #else 496 529 #if H_3D_SINGLE_DEPTH 497 530 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index); 531 #endif 498 532 #endif 499 533 #if H_3D_NBDV_REF … … 591 625 592 626 Void clipMv ( TComMv& rcMv ); 627 #if SONY_MV_V_CONST_C0078 628 Void checkMV_V (TComMv& rcMv, RefPicList eRefPicList, int iRefIdx ); 629 #endif 593 630 Void getMvPredLeft ( TComMv& rcMvPred ) { rcMvPred = m_cMvFieldA.getMv(); } 594 631 Void getMvPredAbove ( TComMv& rcMvPred ) { rcMvPred = m_cMvFieldB.getMv(); } -
trunk/source/Lib/TLibCommon/TComInterpolationFilter.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComInterpolationFilter.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComList.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComLoopFilter.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComLoopFilter.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComMotionInfo.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComMotionInfo.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 63 63 typedef struct _DisCand 64 64 { 65 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 65 66 Bool bDV; 67 #endif 66 68 TComMv m_acNBDV; // DV from NBDV 67 69 #if H_3D_NBDV_REF -
trunk/source/Lib/TLibCommon/TComMv.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPattern.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPattern.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPic.cpp
r976 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPic.h
r976 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPicSym.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPicSym.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPicYuv.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPicYuv.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPicYuvMD5.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComPrediction.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 630 630 631 631 #if H_3D_DBBP 632 #if HS_DBBP_CLEAN_K0048 633 PartSize TComPrediction::getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU) 634 #else 632 635 PartSize TComPrediction::getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize) 636 #endif 633 637 { 634 638 // find virtual partitioning for this CU based on depth block … … 639 643 Int iSumDepth = 0; 640 644 Int iSubSample = 4; 645 #if HS_DBBP_CLEAN_K0048 646 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(); 647 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(); 648 TComMv cDv = pcCU->getSlice()->getDepthRefinementFlag( ) ? pcCU->getDvInfo(0).m_acDoNBDV : pcCU->getDvInfo(0).m_acNBDV; 649 if( pcCU->getSlice()->getDepthRefinementFlag( ) ) 650 { 651 cDv.setVer(0); 652 } 653 Int iBlkX = ( pcCU->getAddr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getHor()+2)>>2); 654 Int iBlkY = ( pcCU->getAddr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getVer()+2)>>2); 655 UInt t=0; 656 657 for (Int y=0; y<uiSize; y+=iSubSample) 658 { 659 for (Int x=0; x<uiSize; x+=iSubSample) 660 { 661 if (iBlkX+x>iPictureWidth) 662 { 663 Int depthPel = pDepthPels[t]; 664 iSumDepth += depthPel; 665 } 666 else 667 { 668 Int depthPel = pDepthPels[x]; 669 t=x; 670 iSumDepth += depthPel; 671 } 672 } 673 674 // next row 675 if (!(iBlkY+y+4>iPictureHeight)) 676 pDepthPels += uiDepthStride*iSubSample; 677 #else 641 678 for (Int y=0; y<uiSize; y+=iSubSample) 642 679 { … … 650 687 // next row 651 688 pDepthPels += uiDepthStride*iSubSample; 689 #endif 652 690 } 653 691 … … 667 705 for (Int x=0; x<uiSize; x+=iSubSample) 668 706 { 707 #if HS_DBBP_CLEAN_K0048 708 Int depthPel = 0; 709 if (iBlkX+x>iPictureWidth) 710 { 711 depthPel = pDepthPels[t]; 712 } 713 else 714 { 715 depthPel = pDepthPels[x]; 716 t=x; 717 } 718 #else 669 719 Int depthPel = pDepthPels[x]; 720 #endif 670 721 671 722 // decide which segment this pixel belongs to … … 696 747 697 748 // next row 749 #if HS_DBBP_CLEAN_K0048 750 if (!(iBlkY+y+4>iPictureHeight)) 751 #endif 698 752 pDepthPels += uiDepthStride*iSubSample; 699 753 } … … 719 773 } 720 774 775 #if HS_DBBP_CLEAN_K0048 776 Bool TComPrediction::getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU) 777 #else 721 778 Bool TComPrediction::getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask ) 779 #endif 722 780 { 723 781 // segmentation of texture block --> mask IDs 724 782 Pel* pDepthBlockStart = pDepthPels; 725 783 726 784 // first compute average of depth block for thresholding 727 785 Int iSumDepth = 0; 728 786 Int uiMinDepth = MAX_INT; 729 787 Int uiMaxDepth = 0; 730 788 #if HS_DBBP_CLEAN_K0048 789 uiMinDepth = pDepthPels[ 0 ]; 790 uiMaxDepth = pDepthPels[ 0 ]; 791 iSumDepth = pDepthPels[ 0 ]; 792 UInt t=0; 793 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(); 794 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(); 795 TComMv cDv = pcCU->getSlice()->getDepthRefinementFlag( ) ? pcCU->getDvInfo(0).m_acDoNBDV : pcCU->getDvInfo(0).m_acNBDV; 796 if( pcCU->getSlice()->getDepthRefinementFlag( ) ) 797 { 798 cDv.setVer(0); 799 } 800 Int iBlkX = ( pcCU->getAddr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getHor()+2)>>2); 801 Int iBlkY = ( pcCU->getAddr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getVer()+2)>>2); 802 if (iBlkX>(Int)(iPictureWidth - uiWidth)) 803 { 804 iSumDepth += pDepthPels[ iPictureWidth - iBlkX - 1 ]; 805 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ iPictureWidth - iBlkX - 1 ]); 806 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ iPictureWidth - iBlkX - 1 ]); 807 } 808 else 809 { 810 iSumDepth += pDepthPels[ uiWidth - 1 ]; 811 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiWidth - 1 ]); 812 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiWidth - 1 ]); 813 } 814 if (iBlkY>(Int)(iPictureHeight - uiHeight)) 815 { 816 iSumDepth += pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) ]; 817 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) ]); 818 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) ]); 819 } 820 else 821 { 822 iSumDepth += pDepthPels[ uiDepthStride * (uiHeight - 1) ]; 823 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]); 824 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]); 825 } 826 if (iBlkY>(Int)(iPictureHeight - uiHeight) && iBlkX>(Int)(iPictureWidth - uiWidth)) 827 { 828 iSumDepth += pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) + iPictureWidth - iBlkX - 1 ]; 829 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) + iPictureWidth - iBlkX - 1 ]); 830 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) + iPictureWidth - iBlkX - 1 ]); 831 } 832 else if (iBlkY>(Int)(iPictureHeight - uiHeight)) 833 { 834 iSumDepth += pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) + uiWidth - 1 ]; 835 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) + uiWidth - 1 ]); 836 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (iPictureHeight - iBlkY - 1) + uiWidth - 1 ]); 837 } 838 else if (iBlkX>(Int)(iPictureWidth - uiWidth)) 839 { 840 iSumDepth += pDepthPels[ uiDepthStride * (uiHeight - 1) + iPictureWidth - iBlkX - 1 ]; 841 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + iPictureWidth - iBlkX - 1 ]); 842 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + iPictureWidth - iBlkX - 1 ]); 843 } 844 else 845 { 846 iSumDepth += pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]; 847 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]); 848 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]); 849 } 850 #else 731 851 iSumDepth = pDepthPels[ 0 ]; 732 852 iSumDepth += pDepthPels[ uiWidth - 1 ]; … … 743 863 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]); 744 864 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]); 745 746 865 #endif 866 747 867 // don't generate mask for blocks with small depth range (encoder decision) 748 868 if( uiMaxDepth - uiMinDepth < 10 ) … … 750 870 return false; 751 871 } 752 872 753 873 AOF(uiWidth==uiHeight); 754 874 Int iMean = iSumDepth >> 2; 755 875 756 876 // start again for segmentation 757 877 pDepthPels = pDepthBlockStart; 758 878 759 879 Bool bInvertMask = pDepthPels[0]>iMean; // top-left segment needs to be mapped to partIdx 0 760 880 761 881 // generate mask 762 882 UInt uiSumPix[2] = {0,0}; … … 765 885 for (Int x=0; x<uiHeight; x++) 766 886 { 887 #if HS_DBBP_CLEAN_K0048 888 Int depthPel = 0; 889 if (iBlkX+x>iPictureWidth) 890 { 891 depthPel = pDepthPels[t]; 892 } 893 else 894 { 895 depthPel = pDepthPels[x]; 896 t=x; 897 } 898 #else 767 899 Int depthPel = pDepthPels[x]; 768 900 #endif 901 769 902 // decide which segment this pixel belongs to 770 903 Int ucSegment = (Int)(depthPel>iMean); 771 904 772 905 if( bInvertMask ) 773 906 { 774 907 ucSegment = 1-ucSegment; 775 908 } 776 909 777 910 // count pixels for each segment 778 911 uiSumPix[ucSegment]++; 779 912 780 913 // set mask value 781 914 pMask[x] = (Bool)ucSegment; 782 915 } 783 916 784 917 // next row 785 pDepthPels += uiDepthStride; 918 #if HS_DBBP_CLEAN_K0048 919 if (!(iBlkY+y+1>iPictureHeight)) 920 #endif 921 pDepthPels += uiDepthStride; 786 922 pMask += MAX_CU_SIZE; 787 923 } 788 924 789 925 // don't generate valid mask for tiny segments (encoder decision) 790 926 // each segment needs to cover at least 1/8th of block … … 794 930 return false; 795 931 } 796 932 797 933 // all good 798 934 return true; … … 1157 1293 TComMv cMv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr ); 1158 1294 pcCU->clipMv(cMv); 1159 1295 #if SONY_MV_V_CONST_C0078 1296 pcCU->checkMV_V(cMv, eRefPicList, iRefIdx ); 1297 #endif 1160 1298 #if H_3D_ARP 1161 1299 if(pcCU->getARPW( uiPartAddr ) > 0 && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()== pcCU->getSlice()->getPOC()) … … 1255 1393 #if H_3D_NBDV 1256 1394 DisInfo cDistparity; 1395 #if SEC_ARP_REM_ENC_RESTRICT_K0035 1396 cDistparity.m_acNBDV = pcCU->getDvInfo(0).m_acNBDV; 1397 cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan; 1398 #else 1257 1399 cDistparity.bDV = pcCU->getDvInfo(uiPartAddr).bDV; 1258 1400 if( cDistparity.bDV ) … … 1262 1404 cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan; 1263 1405 } 1406 #endif 1264 1407 #else 1265 1408 assert(0); // ARP can be applied only when a DV is available 1266 1409 #endif 1267 1410 #if SEC_ARP_REM_ENC_RESTRICT_K0035 1411 UChar dW = pcCU->getARPW ( uiPartAddr ); 1412 #else 1268 1413 UChar dW = cDistparity.bDV ? pcCU->getARPW ( uiPartAddr ) : 0; 1269 1414 #endif 1415 1416 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 1270 1417 if( cDistparity.bDV ) 1418 #endif 1271 1419 { 1272 1420 Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList); … … 1320 1468 pYuvB0->clear(); pYuvB1->clear(); 1321 1469 } 1322 1470 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 1323 1471 assert ( cDistparity.bDV ); 1324 1472 #endif 1325 1473 TComMv cNBDV = cDistparity.m_acNBDV; 1326 1474 pcCU->clipMv( cNBDV ); -
trunk/source/Lib/TLibCommon/TComPrediction.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 175 175 176 176 #if H_3D_DBBP 177 #if HS_DBBP_CLEAN_K0048 178 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU); 179 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU); 180 #else 177 181 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize); 178 182 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask ); 183 #endif 179 184 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize ); 180 185 #endif -
trunk/source/Lib/TLibCommon/TComRdCost.cpp
r884 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 341 341 else if( eDFunc >= DF_HADS && eDFunc <= DF_HADS16N ) 342 342 { 343 #if !RWTH_DBBP_NO_SATD_K0028 343 344 rcDistParam.DistFunc = TComRdCost::xGetMaskedHADs; 345 #else 346 rcDistParam.DistFunc = TComRdCost::xGetMaskedSAD; 347 #endif 344 348 } 345 349 else if( eDFunc >= DF_VSD && eDFunc <= DF_VSD16N ) … … 441 445 if( m_bUseMask ) 442 446 { 447 #if !RWTH_DBBP_NO_SATD_K0028 443 448 rcDistParam.DistFunc = (bHADME)?TComRdCost::xGetMaskedHADs:TComRdCost::xGetMaskedSAD; 449 #else 450 rcDistParam.DistFunc = TComRdCost::xGetMaskedSAD; 451 #endif 444 452 } 445 453 #endif … … 464 472 if( m_bUseMask ) 465 473 { 474 #if !RWTH_DBBP_NO_SATD_K0028 466 475 rcDP.DistFunc = (bHadamard)?TComRdCost::xGetMaskedHADs:TComRdCost::xGetMaskedSAD; 476 #else 477 rcDP.DistFunc = TComRdCost::xGetMaskedSAD; 478 #endif 467 479 } 468 480 #endif … … 717 729 } 718 730 731 #if !RWTH_DBBP_NO_SATD_K0028 719 732 UInt TComRdCost::xGetMaskedHADs( DistParam* pcDtParam ) 720 733 { … … 834 847 return uiSum >> DISTORTION_PRECISION_ADJUSTMENT(pcDtParam->bitDepth-8); 835 848 } 849 #endif 836 850 837 851 UInt TComRdCost::xGetMaskedVSD( DistParam* pcDtParam ) -
trunk/source/Lib/TLibCommon/TComRdCost.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 320 320 static UInt xGetMaskedSSE ( DistParam* pcDtParam ); 321 321 static UInt xGetMaskedSAD ( DistParam* pcDtParam ); 322 #if !RWTH_DBBP_NO_SATD_K0028 322 323 static UInt xGetMaskedHADs ( DistParam* pcDtParam ); 324 #endif 323 325 static UInt xGetMaskedVSD ( DistParam* pcDtParam ); 324 326 #endif -
trunk/source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComRdCostWeightPrediction.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComRom.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 391 391 Bool g_tracePU = false; 392 392 Bool g_traceTU = false; 393 Bool g_disableNumbering = false; 393 394 Bool g_disableHLSTrace = false; 394 UInt64 g_stopAtCounter = 0;395 UInt64 g_stopAtCounter = 937234; 395 396 Bool g_traceCopyBack = false; 396 397 Bool g_decTraceDispDer = false; 397 398 Bool g_decTraceMvFromMerge = false; 398 399 Bool g_decTracePicOutput = false; 399 Bool g_stopAtPos = false; 400 Bool g_outputPos = false; 400 Bool g_stopAtPos = true; 401 Bool g_outputPos = true; 402 Bool g_traceCameraParameters = false; 403 Bool g_encNumberOfWrittenBits = true; 401 404 #endif 402 405 #endif … … 600 603 601 604 Bool stopFlag = false; 602 if ( g_stopAtPos && poc == 0 && layerId == 1)605 if ( g_stopAtPos && poc == 0 && layerId == 2 ) 603 606 { 604 607 Bool stopAtCU = true; 605 608 if ( stopAtCU ) // Stop at CU with specific size 606 609 { 607 stopFlag = ( cuPelX == 888 ) && ( cuPelY == 248 ) && ( cuWidth == 8 ) && ( cuHeight == 8);610 stopFlag = ( cuPelX == 0 ) && ( cuPelY == 0 ) && ( cuWidth == 8 ) && ( cuHeight == 8 ); 608 611 } 609 612 else … … 633 636 std::cout << "Break point here." << std::endl; 634 637 } 635 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 638 if ( !g_disableNumbering ) 639 { 640 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 641 } 636 642 fprintf( g_hTrace, "%-50s : %d\n", symbolName, val ); 637 643 fflush ( g_hTrace ); … … 739 745 assert( uiWidth == uiHeight ); 740 746 747 #if SHARP_DMM_CLEAN_K0042 748 Int posStart = 0, posEnd = 0; 749 #else 741 750 UChar uhStartX = 0, uhStartY = 0, uhEndX = 0, uhEndY = 0; 742 751 Int iStepStartX = 0, iStepStartY = 0, iStepEndX = 0, iStepEndY = 0; 752 #endif 743 753 744 754 UInt uiBlockSize = 0; … … 752 762 for( UInt uiOri = 0; uiOri < 6; uiOri++ ) 753 763 { 764 #if !SHARP_DMM_CLEAN_K0042 754 765 // init the edge line parameters for each of the 6 wedgelet types 755 766 switch( uiOri ) … … 762 773 case( 5 ): { uhStartX = (uiBlockSize-1); uhStartY = 0; uhEndX = 0; uhEndY = 0; iStepStartX = 0; iStepStartY = +1; iStepEndX = 0; iStepEndY = +1; break; } 763 774 } 764 775 #endif 776 777 #if SHARP_DMM_CLEAN_K0042 778 posEnd = (Int) racWedgeList.size(); 779 if (uiOri == 0 || uiOri == 4) 780 { 781 #endif 765 782 for( Int iK = 0; iK < uiBlockSize; iK += (uiWidth>=16 ?2:1)) 766 783 { 767 784 for( Int iL = 0; iL < uiBlockSize; iL += ((uiWidth>=16 && uiOri<4)?2:1) ) 768 785 { 786 #if SHARP_DMM_CLEAN_K0042 787 Int xS = iK; 788 Int yS = 0; 789 Int xE = (uiOri == 0) ? 0 : iL; 790 Int yE = (uiOri == 0) ? iL : uiBlockSize - 1; 791 cTempWedgelet.setWedgelet( xS, yS, xE, yE, uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) ); 792 #else 769 793 cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) ); 794 #endif 770 795 addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList ); 771 796 } 772 797 } 798 #if SHARP_DMM_CLEAN_K0042 799 } 800 else 801 { 802 for (Int pos = posStart; pos < posEnd; pos++) 803 { 804 cTempWedgelet.generateWedgePatternByRotate(racWedgeList[pos], uiOri); 805 addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList ); 806 } 807 } 808 posStart = posEnd; 809 #endif 773 810 } 774 811 -
trunk/source/Lib/TLibCommon/TComRom.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 230 230 231 231 #ifndef ENC_DEC_TRACE 232 #define ENC_DEC_TRACE 0 232 #define ENC_DEC_TRACE 0 233 233 #endif 234 234 … … 257 257 extern Bool g_traceTU; 258 258 extern Bool g_disableHLSTrace; // USE g_HLSTraceEnable to toggle HLS trace. Not this one! 259 extern Bool g_disableNumbering; // Don't print numbers to trace file 259 260 extern UInt64 g_stopAtCounter; // Counter to set breakpoint. 260 261 extern Bool g_traceCopyBack; // Output samples on copy back … … 264 265 extern Bool g_stopAtPos; // Stop at position 265 266 extern Bool g_outputPos; // Output position 267 extern Bool g_traceCameraParameters; // Trace camera parameters 268 extern Bool g_encNumberOfWrittenBits;// Trace number of written bits 266 269 267 270 #define DTRACE_CU(x,y) writeToTraceFile( x,y, g_traceCU ); -
trunk/source/Lib/TLibCommon/TComSampleAdaptiveOffset.cpp
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComSampleAdaptiveOffset.h
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComSlice.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 137 137 #endif 138 138 #if H_3D 139 #if HHI_INTER_COMP_PRED_K0052 140 , m_inCmpPredFlag ( false ) 141 #endif 142 #if HHI_CAM_PARA_K0052 143 , m_numViews ( 0 ) 144 #endif 139 145 , m_depthToDisparityB ( NULL ) 140 146 , m_depthToDisparityF ( NULL ) 141 147 #endif 148 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 149 , m_bApplyDIS (false) 150 #else 142 151 #if H_3D_SINGLE_DEPTH 143 152 , m_bApplySingleDepthMode (false) 153 #endif 144 154 #endif 145 155 #endif … … 181 191 m_iDefaultRefViewIdx = -1; 182 192 m_bDefaultRefViewIdxAvailableFlag = false; 193 #if HHI_INTER_COMP_PRED_K0052 194 m_ivMvPredFlag = false; 195 m_ivMvScalingFlag = false; 196 m_ivResPredFlag = false; 197 m_depthRefinementFlag = false; 198 m_viewSynthesisPredFlag = false; 199 m_depthBasedBlkPartFlag = false; 200 m_mpiFlag = false; 201 m_intraContourFlag = false; 202 m_intraSdcWedgeFlag = false; 203 m_qtPredFlag = false; 204 m_interSdcFlag = false; 205 m_depthIntraSkipFlag = false; 206 m_subPbSize = 1 << 6; 207 m_mpiSubPbSize = 1 << 6; 208 #endif 183 209 } 184 210 … … 188 214 m_puiSubstreamSizes = NULL; 189 215 #if H_3D 216 #if HHI_CAM_PARA_K0052 217 for( UInt i = 0; i < m_numViews; i++ ) 218 #else 190 219 for( UInt i = 0; i < getViewIndex(); i++ ) 220 #endif 191 221 { 192 222 if ( m_depthToDisparityB && m_depthToDisparityB[ i ] ) … … 198 228 { 199 229 delete[] m_depthToDisparityF [ i ]; 200 }230 } 201 231 } 202 232 … … 575 605 Int i; 576 606 607 #if HHI_RES_PRED_K0052 608 m_pocsInCurrRPSs.clear(); 609 #endif 610 577 611 for(i=0; i < m_pcRPS->getNumberOfNegativePictures(); i++) 578 612 { … … 585 619 NumPocStCurr0++; 586 620 pcRefPic->setCheckLTMSBPresent(false); 621 #if HHI_RES_PRED_K0052 622 m_pocsInCurrRPSs.push_back( pcRefPic->getPOC() ); 623 #endif 587 624 } 588 625 } … … 598 635 NumPocStCurr1++; 599 636 pcRefPic->setCheckLTMSBPresent(false); 637 #if HHI_RES_PRED_K0052 638 m_pocsInCurrRPSs.push_back( pcRefPic->getPOC() ); 639 #endif 600 640 } 601 641 } … … 610 650 RefPicSetLtCurr[NumPocLtCurr] = pcRefPic; 611 651 NumPocLtCurr++; 652 #if HHI_RES_PRED_K0052 653 m_pocsInCurrRPSs.push_back( pcRefPic->getPOC() ); 654 #endif 612 655 } 613 656 if(pcRefPic==NULL) … … 619 662 620 663 Int numPocInterCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr; 664 #if HHI_RES_PRED_K0052 665 assert( numPocInterCurr == (Int) m_pocsInCurrRPSs.size() ); 666 #endif 621 667 numPocTotalCurr = numPocInterCurr + getNumActiveRefLayerPics( ); 622 668 assert( numPocTotalCurr == getNumRpsCurrTempList() ); … … 791 837 Void TComSlice::setCamparaSlice( Int** aaiScale, Int** aaiOffset ) 792 838 { 839 #if HHI_CAM_PARA_K0052 840 Int voiInVps = m_pcVPS->getVoiInVps(getViewIndex() ); 841 if( m_pcVPS->getNumCp( voiInVps ) > 0 ) 842 { 843 if( m_pcVPS->getCpInSliceSegmentHeaderFlag( voiInVps ) ) 844 { 845 for( Int m = 0; m < m_pcVPS->getNumCp( voiInVps ); m++ ) 846 { 847 Int j = m_pcVPS->getCpRefVoi( voiInVps, m ); 848 Int jInVps = m_pcVPS->getVoiInVps( j ); 849 850 setCpScale ( jInVps , aaiScale [ jInVps ][ voiInVps ]); 851 setCpInvScale( jInVps , aaiScale [ voiInVps ][ jInVps ]); 852 setCpOff ( jInVps , aaiOffset[ jInVps ][ voiInVps ]); 853 setCpInvOff ( jInVps , aaiOffset[ voiInVps ][ jInVps ]); 854 } 855 } 856 } 857 #else 793 858 if( m_pcVPS->hasCamParInSliceHeader( m_viewIndex ) ) 794 859 { … … 801 866 } 802 867 } 868 #endif 803 869 } 804 870 #endif … … 1099 1165 } 1100 1166 #endif 1167 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1168 m_bApplyDIS = pSrc->m_bApplyDIS; 1169 #else 1101 1170 #if H_3D_SINGLE_DEPTH 1102 1171 m_bApplySingleDepthMode = pSrc->m_bApplySingleDepthMode; 1172 #endif 1103 1173 #endif 1104 1174 #if H_3D_IC … … 2147 2217 { 2148 2218 m_numViews = 1; 2149 #if HHI_VIEW_ID_LIST_I5_J0107 2219 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052 2150 2220 #if H_3D 2151 2221 AOF( m_viewOIdxList.size() == 0 ); 2222 2152 2223 m_viewOIdxList.push_back( 0 ); 2153 2224 #endif … … 2170 2241 { 2171 2242 m_numViews++; 2172 #if HHI_VIEW_ID_LIST_I5_J0107 2243 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052 2173 2244 #if H_3D 2174 2245 m_viewOIdxList.push_back( getViewOrderIdx( lId ) ); … … 2210 2281 Int i = 0, j = 0; 2211 2282 2283 #if HHI_CAM_PARA_K0052 2284 m_numCp = new Int [ iNumViews ]; 2285 m_cpRefVoi = new Int*[ iNumViews ]; 2286 m_cpInSliceSegmentHeaderFlag = new Bool[ iNumViews ]; 2287 2288 m_cpPresentFlag = new Bool*[ iNumViews ]; 2289 #else 2212 2290 m_bCamParPresent = new Bool[ iNumViews ]; 2213 2291 m_bCamParInSliceHeader = new Bool[ iNumViews ]; 2292 #endif 2293 2214 2294 2215 2295 m_aaaiCodedScale = new Int**[ iNumViews ]; … … 2217 2297 for ( i = 0; i < iNumViews ; i++ ) 2218 2298 { 2299 #if HHI_CAM_PARA_K0052 2300 m_cpInSliceSegmentHeaderFlag[i] = false; 2301 #else 2219 2302 m_bCamParPresent[i] = false; 2220 2303 m_bCamParInSliceHeader[i] = false; 2304 #endif 2305 2221 2306 m_aaaiCodedScale[i] = new Int*[ 2 ]; 2222 2307 m_aaaiCodedOffset[i] = new Int*[ 2 ]; 2308 2309 #if HHI_CAM_PARA_K0052 2310 m_numCp [i] = 0; 2311 m_cpRefVoi[i] = new Int[ iNumViews ]; 2312 m_cpPresentFlag[i] = new Bool[ iNumViews ]; 2313 for ( j = 0; j < iNumViews; j++) 2314 { 2315 m_cpRefVoi[i][j] = 0; 2316 m_cpPresentFlag[i][j] = false; 2317 } 2318 #endif 2223 2319 for ( j = 0; j < 2; j++ ) 2224 2320 { … … 2239 2335 Int i = 0, j = 0; 2240 2336 2337 #if !HHI_CAM_PARA_K0052 2241 2338 if ( m_bCamParPresent != NULL ) 2242 2339 { … … 2247 2344 delete [] m_bCamParInSliceHeader; 2248 2345 } 2346 #else 2347 if ( m_numCp != NULL ) 2348 { 2349 delete [] m_numCp; 2350 } 2351 2352 if ( m_cpRefVoi != NULL ) 2353 { 2354 for ( i = 0; i < iNumViews ; i++ ) 2355 { 2356 delete [] m_cpRefVoi[i]; 2357 } 2358 delete[] m_cpRefVoi; 2359 } 2360 2361 if ( m_cpPresentFlag != NULL ) 2362 { 2363 for ( i = 0; i < iNumViews ; i++ ) 2364 { 2365 delete [] m_cpPresentFlag[i]; 2366 } 2367 delete[] m_cpPresentFlag; 2368 } 2369 2370 2371 if ( m_cpInSliceSegmentHeaderFlag != NULL ) 2372 { 2373 delete [] m_cpInSliceSegmentHeaderFlag; 2374 } 2375 #endif 2376 2249 2377 2250 2378 if ( m_aaaiCodedScale != NULL ) … … 2276 2404 2277 2405 2278 Void 2279 2406 #if !HHI_CAM_PARA_K0052 2407 Void TComVPS::initCamParaVPS( UInt uiViewIndex, Bool bCamParPresent, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset ) 2280 2408 { 2281 2409 AOT( uiViewIndex != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) ); … … 2296 2424 } 2297 2425 } 2426 #endif 2298 2427 2299 2428 #endif // H_3D … … 2730 2859 #endif 2731 2860 #if H_3D 2861 #if !HHI_CAM_PARA_K0052 2732 2862 , m_bCamParInSliceHeader (false) 2863 #endif 2733 2864 #endif 2734 2865 { … … 3754 3885 { 3755 3886 Int layerIdInNuh = getRefPicLayerId( i ); 3887 #if HHI_RES_PRED_K0052 3888 TComPic* picV = getIvPic( getIsDepth(), getVPS()->getViewIndex( layerIdInNuh ) ); 3889 assert( picV != NULL ); 3890 std::vector<Int> pocsInCurrRPSsPicV = picV->getSlice(0)->getPocsInCurrRPSs(); 3891 Bool refRpRefAvailFlag = false; 3892 for (Int idx = 0; idx < pocsInCurrRPSsPicV.size(); idx++) 3893 { 3894 if ( pocsInCurrRPSsPicV[idx] == prevPOC ) 3895 { 3896 refRpRefAvailFlag = true; 3897 break; 3898 } 3899 } 3900 3901 if (getFirstTRefIdx(eRefPicList) >= 0 && refRpRefAvailFlag ) 3902 #else 3756 3903 Int viewIdx = getVPS()->getViewId( layerIdInNuh ); 3757 3904 TComPic*pcPicPrev = ivPicLists->getPic(viewIdx, 0, prevPOC); 3758 3905 if (getFirstTRefIdx(eRefPicList) >= 0 && pcPicPrev && pcPicPrev->getSlice( 0 )->isReferenced()) 3906 #endif 3759 3907 { 3760 3908 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = true; … … 3929 4077 #if H_3D_NBDV_REF 3930 4078 setupLUT = setupLUT || getDepthRefinementFlag( ); 3931 #endif 4079 #endif 3932 4080 3933 4081 #if H_3D_IV_MERGE … … 3939 4087 return; 3940 4088 4089 #if HHI_CAM_PARA_K0052 4090 m_numViews = getVPS()->getNumViews(); 4091 #endif 3941 4092 /// GT: Allocation should be moved to a better place later; 3942 4093 if ( m_depthToDisparityB == NULL ) 3943 4094 { 4095 #if HHI_CAM_PARA_K0052 4096 m_depthToDisparityB = new Int*[ m_numViews ]; 4097 for ( Int i = 0; i < getVPS()->getNumViews(); i++ ) 4098 #else 3944 4099 m_depthToDisparityB = new Int*[ getViewIndex() ]; 3945 4100 for ( Int i = 0; i < getViewIndex(); i++ ) 4101 #endif 3946 4102 { 3947 4103 m_depthToDisparityB[ i ] = new Int[ Int(1 << g_bitDepthY) ]; … … 3949 4105 } 3950 4106 4107 3951 4108 if ( m_depthToDisparityF == NULL ) 3952 4109 { 4110 #if HHI_CAM_PARA_K0052 4111 m_depthToDisparityF = new Int*[ m_numViews ]; 4112 for ( Int i = 0; i < m_numViews; i++ ) 4113 #else 3953 4114 m_depthToDisparityF= new Int*[ getViewIndex() ]; 3954 4115 for ( Int i = 0; i < getViewIndex(); i++ ) 4116 #endif 3955 4117 { 3956 4118 m_depthToDisparityF[ i ] = new Int[ Int(1 << g_bitDepthY) ]; … … 3963 4125 TComVPS* vps = getVPS(); 3964 4126 4127 #if HHI_CAM_PARA_K0052 4128 Int log2Div = g_bitDepthY - 1 + vps->getCpPrecision(); 4129 Int voiInVps = vps->getVoiInVps( getViewIndex() ); 4130 Bool camParaSH = vps->getCpInSliceSegmentHeaderFlag( voiInVps ); 4131 4132 Int* codScale = camParaSH ? m_aaiCodedScale [ 0 ] : vps->getCodedScale ( voiInVps ); 4133 Int* codOffset = camParaSH ? m_aaiCodedOffset[ 0 ] : vps->getCodedOffset ( voiInVps ); 4134 Int* invCodScale = camParaSH ? m_aaiCodedScale [ 1 ] : vps->getInvCodedScale ( voiInVps ); 4135 Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : vps->getInvCodedOffset( voiInVps ); 4136 4137 4138 for (Int i = 0; i < voiInVps; i++) 4139 { 4140 Int iInVoi = vps->getVoiInVps( i ); 4141 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 4142 if ( g_traceCameraParameters ) 4143 { 4144 std::cout << std::endl << "Cp: " << codScale [ iInVoi ] << " " << codOffset[ iInVoi ] << " " 4145 << invCodScale[ iInVoi ] << " " << invCodOffset[ iInVoi ] << " " << log2Div; 4146 } 4147 #endif 4148 for ( Int d = 0; d <= ( ( 1 << g_bitDepthY ) - 1 ); d++ ) 4149 { 4150 Int offset = ( codOffset [ iInVoi ] << g_bitDepthY ) + ( ( 1 << log2Div ) >> 1 ); 4151 m_depthToDisparityB[ iInVoi ][ d ] = ( codScale [ iInVoi ] * d + offset ) >> log2Div; 4152 4153 Int invOffset = ( invCodOffset[ iInVoi ] << g_bitDepthY ) + ( ( 1 << log2Div ) >> 1 ); 4154 m_depthToDisparityF[ iInVoi ][ d ] = ( invCodScale[ iInVoi ] * d + invOffset ) >> log2Div; 4155 } 4156 } 4157 #else 3965 4158 Int log2Div = g_bitDepthY - 1 + vps->getCamParPrecision(); 4159 3966 4160 Int viewIndex = getViewIndex(); 3967 4161 … … 3984 4178 } 3985 4179 } 4180 #endif 3986 4181 } 3987 4182 #endif … … 4023 4218 4024 4219 #if H_3D 4025 4026 4220 Void TComSlice::init3dToolParameters() 4027 4221 { 4028 4222 Bool depthFlag = getIsDepth(); 4029 4223 4224 #if !HHI_INTER_COMP_PRED_K0052 4030 4225 Bool depthOfRefViewsAvailFlag = false; 4031 4226 Bool textOfCurViewAvailFlag = false; … … 4072 4267 } 4073 4268 } 4269 4074 4270 4075 4271 Bool lidG0 = ( getLayerId() > 0 ); … … 4088 4284 m_intraSdcWedgeFlag = sps3dExt->getIntraSdcWedgeFlag ( depthFlag ) && lidG0 ; 4089 4285 m_qtPredFlag = sps3dExt->getQtPredFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag; 4090 m_interSdcFlag = sps3dExt->getInterSdcFlag ( depthFlag ) && lidG0 ; 4286 m_interSdcFlag = sps3dExt->getInterSdcFlag ( depthFlag ) && lidG0 ; 4287 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 4288 m_depthIntraSkipFlag = sps3dExt->getDepthIntraSkipFlag ( depthFlag ) && lidG0 ; 4289 #else 4091 4290 m_intraSingleFlag = sps3dExt->getIntraSingleFlag ( depthFlag ) && lidG0 ; 4291 #endif 4092 4292 4093 4293 m_subPbSize = lidG0 ? ( 1 << ( sps3dExt->getLog2SubPbSizeMinus3 ( depthFlag ) + 3 ) ) : getSPS()->getMaxCUWidth(); 4094 4294 m_mpiSubPbSize = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 ); 4295 #else 4296 Bool nRLLG0 = ( getVPS()->getNumRefListLayers( getLayerId() ) > 0 ); 4297 4298 TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension(); 4299 4300 m_ivMvPredFlag = sps3dExt->getIvMvPredFlag ( depthFlag ) && nRLLG0 ; 4301 m_ivMvScalingFlag = sps3dExt->getIvMvScalingFlag ( depthFlag ) ; 4302 m_ivResPredFlag = sps3dExt->getIvResPredFlag ( depthFlag ) && nRLLG0 ; 4303 #if HHI_CAM_PARA_K0052 4304 m_depthRefinementFlag = sps3dExt->getDepthRefinementFlag ( depthFlag ) && getInCompPredFlag() && m_cpAvailableFlag; 4305 m_viewSynthesisPredFlag = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && nRLLG0 && getInCompPredFlag() && m_cpAvailableFlag; 4306 #else 4307 m_depthRefinementFlag = sps3dExt->getDepthRefinementFlag ( depthFlag ) && getInCompPredFlag(); 4308 m_viewSynthesisPredFlag = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && nRLLG0 && getInCompPredFlag(); 4309 #endif 4310 m_depthBasedBlkPartFlag = sps3dExt->getDepthBasedBlkPartFlag( depthFlag ) && getInCompPredFlag(); 4311 m_mpiFlag = sps3dExt->getMpiFlag ( depthFlag ) && getInCompPredFlag(); 4312 m_intraContourFlag = sps3dExt->getIntraContourFlag ( depthFlag ) && getInCompPredFlag(); 4313 m_intraSdcWedgeFlag = sps3dExt->getIntraSdcWedgeFlag ( depthFlag ) ; 4314 m_qtPredFlag = sps3dExt->getQtPredFlag ( depthFlag ) && getInCompPredFlag(); 4315 m_interSdcFlag = sps3dExt->getInterSdcFlag ( depthFlag ) ; 4316 m_depthIntraSkipFlag = sps3dExt->getDepthIntraSkipFlag ( depthFlag ) ; 4317 4318 m_subPbSize = 1 << ( sps3dExt->getLog2SubPbSizeMinus3 ( depthFlag ) + 3 ); 4319 m_mpiSubPbSize = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 ); 4320 4321 #endif 4095 4322 4096 4323 #if H_3D_OUTPUT_ACTIVE_TOOLS … … 4098 4325 std::cout << "DepthFlag: :" << getIsDepth() << std::endl; 4099 4326 std::cout << "ViewOrderIdx: :" << getViewIndex() << std::endl; 4327 #if HHI_INTER_COMP_PRED_K0052 4328 std::cout << "InterCmpPredAvailableFlag:" << getInCmpPredAvailFlag() << std::endl; 4329 std::cout << "InterCompPredFlag :" << getInCompPredFlag() << std::endl; 4330 //std::cout << "TextOfCurViewAvailFlag :" << textOfCurViewAvailFlag << std::endl; 4331 #else 4100 4332 std::cout << "DepthOfRefViewsAvailFlag:" << depthOfRefViewsAvailFlag << std::endl; 4101 4333 std::cout << "TextOfCurViewAvailFlag :" << textOfCurViewAvailFlag << std::endl; 4334 #endif 4102 4335 4103 4336 std::cout << "ivMvPredFlag :" << m_ivMvPredFlag << std::endl; … … 4112 4345 std::cout << "qtPredFlag :" << m_qtPredFlag << std::endl; 4113 4346 std::cout << "interSdcFlag :" << m_interSdcFlag << std::endl; 4347 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 4348 std::cout << "depthIntraSkipFlag :" << m_depthIntraSkipFlag << std::endl; 4349 #else 4114 4350 std::cout << "intraSingleFlag :" << m_intraSingleFlag << std::endl; 4351 #endif 4115 4352 std::cout << "subPbSize :" << m_subPbSize << std::endl; 4116 4353 std::cout << "mpiSubPbSize :" << m_mpiSubPbSize << std::endl; -
trunk/source/Lib/TLibCommon/TComSlice.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 914 914 // VPS EXTENSION 2 SYNTAX ELEMENTS 915 915 #if H_3D 916 #if HHI_CAM_PARA_K0052 917 Int* m_numCp; 918 Int** m_cpRefVoi; 919 Bool** m_cpPresentFlag; 920 Int m_cpPrecision; 921 Bool* m_cpInSliceSegmentHeaderFlag; 922 #else 916 923 UInt m_uiCamParPrecision; 917 924 Bool* m_bCamParInSliceHeader; 918 925 Bool* m_bCamParPresent; 926 #endif 919 927 Int ***m_aaaiCodedScale ; 920 928 Int ***m_aaaiCodedOffset; 921 929 922 #if HHI_VIEW_ID_LIST_I5_J0107 930 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052 923 931 std::vector<Int> m_viewOIdxList; 924 932 #endif 925 933 #if HHI_INTER_COMP_PRED_K0052 934 std::vector< std::vector<Bool> > m_viewCompLayerPresentFlag; 935 std::vector< std::vector<Int> > m_viewCompLayerId; 936 #endif 926 937 #endif 927 938 … … 1152 1163 Int getNumViews() { return m_numViews; } 1153 1164 Void initNumViews(); 1154 #if HHI_VIEW_ID_LIST_I5_J0107 1165 #if HHI_INTER_COMP_PRED_K0052 1166 #if H_3D 1167 Void initViewCompLayer( ) 1168 { 1169 assert( m_viewCompLayerId.size() == 0 && m_viewCompLayerPresentFlag.size() == 0 ); 1170 for( Int i = 0; i < getNumViews(); i++ ) 1171 { 1172 m_viewCompLayerId .push_back( std::vector<Int>(0) ); 1173 m_viewCompLayerPresentFlag.push_back( std::vector<Bool>(0) ); 1174 1175 for( Int depFlag = 0; depFlag <= 1; depFlag++ ) 1176 { 1177 Int iViewOIdx = getViewOIdxList( i ); 1178 Int layerId = -1; 1179 for( Int j = 0; j <= getMaxLayersMinus1(); j++ ) 1180 { 1181 Int jNuhLId = getLayerIdInNuh( j ); 1182 if( getVpsDepthFlag( jNuhLId ) == ( (Bool) depFlag ) && getViewOrderIdx( jNuhLId ) == iViewOIdx 1183 && getDependencyId( jNuhLId ) == 0 && getAuxId( jNuhLId ) == 0 ) 1184 { 1185 layerId = jNuhLId; 1186 } 1187 } 1188 m_viewCompLayerPresentFlag[ i ].push_back( layerId != -1 ); 1189 m_viewCompLayerId [ i ].push_back( layerId ); 1190 } 1191 } 1192 }; 1193 #endif 1194 #endif 1195 1196 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052 1155 1197 Int getViewOIdxList( Int i ) { return m_viewOIdxList[i]; } 1156 #endif 1157 1198 #if HHI_CAM_PARA_K0052 1199 std::vector<Int> getViewOIdxList( ) { return m_viewOIdxList; } 1200 #endif 1201 #endif 1202 1203 #if HHI_INTER_COMP_PRED_K0052 1204 #if HHI_CAM_PARA_K0052 1205 Int getVoiInVps( Int viewOIdx ) 1206 #else 1207 Int getInvViewOIdxList( Int viewOIdx ) 1208 #endif 1209 { 1210 for ( Int i = 0; i < m_viewOIdxList.size(); i++ ) 1211 { 1212 if ( m_viewOIdxList[ i ] == viewOIdx ) 1213 { 1214 return i; 1215 } 1216 } 1217 assert( 0 ); 1218 return -1; 1219 }; 1220 1221 #if HHI_CAM_PARA_K0052 1222 Bool getViewCompLayerPresentFlag (Int i, Bool d ) { return m_viewCompLayerPresentFlag[ getVoiInVps(i) ][d]; } 1223 Bool getViewCompLayerId (Int i, Bool d ) { return m_viewCompLayerId [ getVoiInVps(i) ][d]; } 1224 #else 1225 Bool getViewCompLayerPresentFlag (Int i, Bool d ) { return m_viewCompLayerPresentFlag[ getInvViewOIdxList(i) ][d]; } 1226 Bool getViewCompLayerId (Int i, Bool d ) { return m_viewCompLayerId [ getInvViewOIdxList(i) ][d]; } 1227 #endif 1228 #endif 1158 1229 Bool getDependencyFlag( Int i, Int j ) { return m_dependencyFlag[i][j]; } 1159 1230 Int getNumDirectRefLayers( Int layerIdInNuh ) { return m_numDirectRefLayers[ layerIdInNuh ]; }; … … 1276 1347 Void createCamPars(Int iNumViews); 1277 1348 Void deleteCamPars(); 1349 #if HHI_CAM_PARA_K0052 1350 Void initCamParaVPS( Int vOIdxInVps, Int numCp, Bool cpInSliceSegmentHeaderFlag, Int* cpRefVoi, Int** aaiScale, Int** aaiOffset ); 1351 #else 1278 1352 Void initCamParaVPS ( UInt uiViewIndex, Bool bCamParPresent = false, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 ); 1353 #endif 1354 1355 #if HHI_CAM_PARA_K0052 1356 1357 Void setCpPrecision( Int val ) { m_cpPrecision = val; } 1358 Int getCpPrecision( ) { return m_cpPrecision; } 1359 1360 Void setNumCp( Int i, Int val ) { m_numCp[i] = val; } 1361 Int getNumCp( Int i ) { return m_numCp[i]; } 1362 1363 Void setCpRefVoi( Int i, Int m, Int val ) { m_cpRefVoi[i][m] = val; } 1364 Int getCpRefVoi( Int i, Int m ) { return m_cpRefVoi[i][m]; } 1365 1366 Void setCpInSliceSegmentHeaderFlag( Int i, Bool flag ) { m_cpInSliceSegmentHeaderFlag[i] = flag; } 1367 Bool getCpInSliceSegmentHeaderFlag( Int i ) { return m_cpInSliceSegmentHeaderFlag[i]; } 1368 1369 Void setVpsCpScale( Int i, Int j, Int val ) { m_aaaiCodedScale [i][0][j] = val; } 1370 Int getVpsCpScale( Int i, Int j ) { return m_aaaiCodedScale[i][0][j]; } 1371 1372 Void setVpsCpOff( Int i, Int j, Int val ) { m_aaaiCodedOffset[i][0][j] = val; } 1373 Int getVpsCpOff( Int i, Int j ) { return m_aaaiCodedOffset[i][0][j]; } 1374 1375 Void setVpsCpInvScale( Int i, Int j, Int val ) { m_aaaiCodedScale[i][1][j] = val; } 1376 Int getVpsCpInvScale( Int i, Int j ) { return m_aaaiCodedScale[i][1][j]; } 1377 1378 Void setVpsCpInvOff( Int i, Int j, Int val ) { m_aaaiCodedOffset[i][1][j] = val; } 1379 Int getVpsCpInvOff( Int i, Int j ) { return m_aaaiCodedOffset[i][1][j]; } 1380 1381 // Derived 1382 Void deriveCpPresentFlag( ) 1383 { 1384 for( Int nInVps = 0; nInVps < getNumViews(); nInVps++ ) 1385 { 1386 for( Int mInVps = 0; mInVps < getNumViews(); mInVps++ ) 1387 { 1388 m_cpPresentFlag[nInVps][mInVps] = 0; 1389 } 1390 } 1391 1392 for( Int n = 1; n < getNumViews(); n++ ) 1393 { 1394 Int iInVps = getVoiInVps( getViewOIdxList( n ) ); 1395 for( Int m = 0; m < getNumCp( iInVps ); m++ ) 1396 { 1397 m_cpPresentFlag[ iInVps ][ getVoiInVps( getCpRefVoi( iInVps, m ) ) ] = 1; 1398 } 1399 } 1400 } 1401 1402 Void setCpPresentFlag( Int i, Int m, Bool flag ) { m_cpPresentFlag[i][m] = flag; } 1403 Bool getCpPresentFlag( Int i, Int m ) { return m_cpPresentFlag[i][m]; } 1404 1405 #else 1279 1406 UInt getCamParPrecision () { return m_uiCamParPrecision; } 1407 1280 1408 Bool getCamParPresent ( Int viewIndex ) { return m_bCamParPresent[viewIndex]; } 1281 1409 Void setCamParPresent ( Int viewIndex, Bool val ) { m_bCamParPresent[viewIndex] = val; } 1282 1410 Bool hasCamParInSliceHeader( Int viewIndex ) { return m_bCamParInSliceHeader[viewIndex]; } 1283 1411 Void setHasCamParInSliceHeader( Int viewIndex, Bool b ) { m_bCamParInSliceHeader[viewIndex] = b; } 1412 #endif 1413 1414 1284 1415 Int* getCodedScale ( Int viewIndex ) { return m_aaaiCodedScale [viewIndex][0]; } 1285 1416 Int* getCodedOffset ( Int viewIndex ) { return m_aaaiCodedOffset[viewIndex][0]; } … … 1574 1705 m_qtPredFlag [d] = false; 1575 1706 m_interSdcFlag [d] = false; 1576 m_intraSingleFlag [d] = false; 1707 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1708 m_depthIntraSkipFlag [d] = false; 1709 #else 1710 m_intraSingleFlag [d] = false; 1711 #endif 1577 1712 } 1578 1713 } … … 1617 1752 Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; } 1618 1753 1754 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1755 Void setDepthIntraSkipFlag( Int d, Bool flag ) { m_depthIntraSkipFlag[d] = flag; } 1756 Bool getDepthIntraSkipFlag( Int d ) { return m_depthIntraSkipFlag[d]; } 1757 #else 1619 1758 Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; } 1620 1759 Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; } 1760 #endif 1621 1761 1622 1762 private: … … 1635 1775 Bool m_qtPredFlag [2]; 1636 1776 Bool m_interSdcFlag [2]; 1777 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1778 Bool m_depthIntraSkipFlag [2]; 1779 #else 1637 1780 Bool m_intraSingleFlag [2]; 1781 #endif 1638 1782 }; 1639 1783 … … 1740 1884 #if H_3D 1741 1885 TComSps3dExtension m_sps3dExtension; 1886 #if !HHI_CAM_PARA_K0052 1742 1887 UInt m_uiCamParPrecision; 1743 1888 Bool m_bCamParInSliceHeader; 1889 #endif 1744 1890 Int m_aaiCodedScale [2][MAX_NUM_LAYERS]; 1745 1891 Int m_aaiCodedOffset[2][MAX_NUM_LAYERS]; … … 1759 1905 Void setChromaFormatIdc (Int i) { m_chromaFormatIdc = i; } 1760 1906 1907 #if H_3D_DISABLE_CHROMA 1908 static Int getWinUnitX (Int chromaFormatIdc) { assert (chromaFormatIdc >= 0 && chromaFormatIdc <= MAX_CHROMA_FORMAT_IDC); return m_winUnitX[chromaFormatIdc]; } 1909 static Int getWinUnitY (Int chromaFormatIdc) { assert (chromaFormatIdc >= 0 && chromaFormatIdc <= MAX_CHROMA_FORMAT_IDC); return m_winUnitY[chromaFormatIdc]; } 1910 #else 1761 1911 static Int getWinUnitX (Int chromaFormatIdc) { assert (chromaFormatIdc > 0 && chromaFormatIdc <= MAX_CHROMA_FORMAT_IDC); return m_winUnitX[chromaFormatIdc]; } 1762 1912 static Int getWinUnitY (Int chromaFormatIdc) { assert (chromaFormatIdc > 0 && chromaFormatIdc <= MAX_CHROMA_FORMAT_IDC); return m_winUnitY[chromaFormatIdc]; } 1913 #endif 1763 1914 1764 1915 // structure … … 2366 2517 UInt m_nARPStepNum; 2367 2518 Int m_aiFirstTRefIdx [2]; 2519 #if HHI_RES_PRED_K0052 2520 std::vector<Int> m_pocsInCurrRPSs; 2521 #endif 2368 2522 #endif 2369 2523 #if H_3D_IC … … 2372 2526 #endif 2373 2527 #if H_3D 2528 #if HHI_INTER_COMP_PRED_K0052 2529 std::vector<Int> m_inCmpRefViewIdcs; 2530 Bool m_inCmpPredAvailFlag; 2531 Bool m_inCmpPredFlag; 2532 #endif 2533 #if HHI_CAM_PARA_K0052 2534 Bool m_cpAvailableFlag; 2535 Int m_numViews; 2536 #endif 2374 2537 TComPic* m_ivPicsCurrPoc [2][MAX_NUM_LAYERS]; 2375 2538 Int** m_depthToDisparityB; … … 2377 2540 #endif 2378 2541 #endif 2542 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2543 Bool m_bApplyDIS; 2544 #else 2379 2545 #if H_3D_SINGLE_DEPTH 2380 2546 Bool m_bApplySingleDepthMode; 2547 #endif 2381 2548 #endif 2382 2549 #if H_3D_IC … … 2398 2565 Bool m_qtPredFlag ; 2399 2566 Bool m_interSdcFlag ; 2567 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2568 Bool m_depthIntraSkipFlag ; 2569 #else 2400 2570 Bool m_intraSingleFlag ; 2401 2571 #endif 2402 2572 Int m_mpiSubPbSize ; 2403 2573 Int m_subPbSize ; … … 2467 2637 Int getRefPOC ( RefPicList e, Int iRefIdx) { return m_aiRefPOCList[e][iRefIdx]; } 2468 2638 #if H_3D 2639 #if HHI_INTER_COMP_PRED_K0052 2640 Bool getInCmpPredAvailFlag( ) { return m_inCmpPredAvailFlag; } 2641 #if HHI_CAM_PARA_K0052 2642 Bool getCpAvailableFlag( ) { return m_cpAvailableFlag; } 2643 #endif 2644 Bool getInCompPredFlag( ) { return m_inCmpPredFlag; } 2645 Void setInCompPredFlag( Bool b ) { m_inCmpPredFlag = b; } 2646 Int getInCmpRefViewIdcs( Int i ) { return m_inCmpRefViewIdcs [i]; } 2647 Int getNumCurCmpLIds( ) { return (Int) m_inCmpRefViewIdcs.size(); } 2648 #endif 2469 2649 TComPic* getIvPic ( Bool depthFlag, Int viewIndex){ return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 2470 2650 #endif … … 2568 2748 UInt getTLayer () { return m_uiTLayer; } 2569 2749 Void setTLayer ( UInt uiTLayer ) { m_uiTLayer = uiTLayer; } 2750 #if H_MV 2751 Int getTemporalId ( ) { return (Int) m_uiTLayer; } 2752 #endif 2570 2753 2571 2754 Void setTLayerInfo( UInt uiTLayer ); … … 2692 2875 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } 2693 2876 Bool getArpRefPicAvailable( RefPicList e, Int viewIdx) {return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; } 2877 #if HHI_RES_PRED_K0052 2878 std::vector<Int> getPocsInCurrRPSs() { return m_pocsInCurrRPSs; }; 2879 #endif 2694 2880 #endif 2695 2881 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; } … … 2700 2886 Int* getInvCodedScale () { return m_aaiCodedScale [1]; } 2701 2887 Int* getInvCodedOffset () { return m_aaiCodedOffset[1]; } 2888 #if HHI_CAM_PARA_K0052 2889 Void setCpScale( Int j, Int val ) { m_aaiCodedScale[0][j] = val; } 2890 Int getCpScale( Int j ) { return m_aaiCodedScale[0][j]; } 2891 2892 Void setCpOff( Int j, Int val ) { m_aaiCodedOffset[0][j] = val; } 2893 Int getCpOff( Int j ) { return m_aaiCodedOffset[0][j]; } 2894 2895 Void setCpInvScale( Int j, Int val ) { m_aaiCodedScale[1][j] = val; } 2896 Int getCpInvScale( Int j ) { return m_aaiCodedScale[1][j]; } 2897 2898 Void setCpInvOff( Int j, Int val ) { m_aaiCodedOffset[1][j] = val; } 2899 Int getCpInvOff( Int j ) { return m_aaiCodedOffset[1][j]; } 2900 #endif 2901 2702 2902 #endif 2703 2903 #endif … … 2706 2906 Void setDepthToDisparityLUTs(); 2707 2907 2908 #if HHI_CAM_PARA_K0052 2909 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ getVPS()->getVoiInVps( refViewIdx) ]; }; 2910 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ getVPS()->getVoiInVps( refViewIdx) ]; }; 2911 #else 2708 2912 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; }; 2709 2913 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; }; 2914 #endif 2710 2915 #endif 2711 2916 #if H_3D_IC … … 2810 3015 #if H_3D 2811 3016 // 3D-HEVC tool parameters 3017 #if HHI_INTER_COMP_PRED_K0052 3018 Void deriveInCmpPredAndCpAvailFlag() 3019 { 3020 Int numCurCmpLIds = getIsDepth() ? 1 : getNumActiveRefLayerPics(); 3021 std::vector<Int> curCmpLIds; 3022 if ( getIsDepth() ) 3023 { 3024 curCmpLIds.push_back( getLayerId() ); 3025 } 3026 else 3027 { 3028 for (Int i = 0; i < numCurCmpLIds; i++) 3029 { 3030 curCmpLIds.push_back( getRefPicLayerId( i ) ); 3031 } 3032 } 3033 3034 #if HHI_CAM_PARA_K0052 3035 m_cpAvailableFlag = true; 3036 m_inCmpRefViewIdcs.clear(); 3037 #endif 3038 Bool allRefCmpLayersAvailFlag = true; 3039 3040 for( Int i = 0; i <= numCurCmpLIds - 1; i++ ) 3041 { 3042 m_inCmpRefViewIdcs.push_back( getVPS()->getViewOrderIdx( curCmpLIds[ i ] )); 3043 #if HHI_CAM_PARA_K0052 3044 if( !getVPS()->getCpPresentFlag( getVPS()->getVoiInVps( getViewIndex() ), getVPS()->getVoiInVps( m_inCmpRefViewIdcs[ i ] ) ) ) 3045 { 3046 m_cpAvailableFlag = false; 3047 } 3048 #endif 3049 Bool refCmpCurLIdAvailFlag = false; 3050 if( getVPS()->getViewCompLayerPresentFlag( m_inCmpRefViewIdcs[ i ], !getIsDepth() ) ) 3051 { 3052 Int j = getVPS()->getLayerIdInVps( getVPS()->getViewCompLayerId( m_inCmpRefViewIdcs[ i ], !getIsDepth() ) ); 3053 if ( getVPS()->getDirectDependencyFlag( getVPS()->getLayerIdInVps( getLayerId() ) , j ) && 3054 getVPS()->getSubLayersVpsMaxMinus1( j ) >= getTemporalId() && 3055 ( getTemporalId() == 0 || getVPS()->getMaxTidIlRefPicsPlus1( j , getVPS()->getLayerIdInVps( getLayerId() ) ) > getTemporalId() ) 3056 ) 3057 { 3058 refCmpCurLIdAvailFlag = true; 3059 } 3060 } 3061 if( !refCmpCurLIdAvailFlag ) 3062 { 3063 allRefCmpLayersAvailFlag = false; 3064 } 3065 } 3066 3067 if( !allRefCmpLayersAvailFlag ) 3068 { 3069 m_inCmpPredAvailFlag = false; 3070 } 3071 else 3072 { 3073 TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension(); 3074 if( !getIsDepth() ) 3075 { 3076 m_inCmpPredAvailFlag = sps3dExt->getViewSynthesisPredFlag( getIsDepth() ) || 3077 sps3dExt->getDepthBasedBlkPartFlag( getIsDepth() ) || 3078 sps3dExt->getDepthRefinementFlag ( getIsDepth() ); 3079 } 3080 else 3081 { 3082 m_inCmpPredAvailFlag = sps3dExt->getIntraContourFlag( getIsDepth() ) || 3083 sps3dExt->getQtPredFlag( getIsDepth() ) || 3084 sps3dExt->getMpiFlag( getIsDepth() ); 3085 } 3086 } 3087 }; 3088 3089 #endif 3090 2812 3091 Void init3dToolParameters(); 3092 #if HHI_INTER_COMP_PRED_K0052 3093 Void checkInCompPredRefLayers() 3094 { 3095 if ( getInCompPredFlag() ) 3096 { 3097 for (Int i = 0; i < getNumCurCmpLIds(); i++ ) 3098 { 3099 assert( getIvPic(!getIsDepth(), getInCmpRefViewIdcs( i ) ) != NULL ); 3100 // It is a requirement of bitstream conformance that there 3101 // is a picture in the DPB with PicOrderCntVal equal to the PicOrderCntVal of the current picture, 3102 // and a nuh_layer_id value equal to ViewCompLayerId[ inCmpRefViewIdcs[ i ] ][ !DepthFlag ]. 3103 } 3104 } 3105 }; 3106 3107 #endif 2813 3108 Bool getIvMvPredFlag ( ) { return m_ivMvPredFlag ; }; 2814 3109 Bool getIvMvScalingFlag ( ) { return m_ivMvScalingFlag ; }; … … 2822 3117 Bool getQtPredFlag ( ) { return m_qtPredFlag ; }; 2823 3118 Bool getInterSdcFlag ( ) { return m_interSdcFlag ; }; 3119 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 3120 Bool getDepthIntraSkipFlag ( ) { return m_depthIntraSkipFlag ; }; 3121 #else 2824 3122 Bool getIntraSingleFlag ( ) { return m_intraSingleFlag ; }; 3123 #endif 2825 3124 2826 3125 Int getMpiSubPbSize ( ) { return m_mpiSubPbSize ; }; -
trunk/source/Lib/TLibCommon/TComTrQuant.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComTrQuant.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComWedgelet.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 177 177 } 178 178 179 #if SHARP_DMM_CLEAN_K0042 180 Void TComWedgelet::generateWedgePatternByRotate(const TComWedgelet &rcWedge, Int rotate) 181 { 182 Int stride = m_uiWidth; 183 Int sinc, offsetI, offsetJ; 184 185 sinc = 1; 186 offsetI = ( sinc) < 0 ? stride-1 : 0; // 0 187 offsetJ = (-sinc) < 0 ? stride-1 : 0; // stride - 1 188 189 for (Int y = 0; y < stride; y++) 190 { 191 for (Int x = 0; x < stride; x++) 192 { 193 Int i = offsetI + sinc * y; // y 194 Int j = offsetJ - sinc * x; // stride - 1 - x 195 m_pbPattern[(y * stride) + x] = !rcWedge.m_pbPattern[(j * stride) + i]; 196 } 197 } 198 Int blocksize = rcWedge.m_uiWidth * (rcWedge.m_eWedgeRes == HALF_PEL ? 2 : 1); 199 Int offsetX = (-sinc) < 0 ? blocksize - 1 : 0; 200 Int offsetY = ( sinc) < 0 ? blocksize - 1 : 0; 201 m_uhXs = offsetX - sinc * rcWedge.m_uhYs; 202 m_uhYs = offsetY + sinc * rcWedge.m_uhXs; 203 m_uhXe = offsetX - sinc * rcWedge.m_uhYe; 204 m_uhYe = offsetY + sinc * rcWedge.m_uhXe; 205 m_uhOri = rotate; 206 m_eWedgeRes = rcWedge.m_eWedgeRes; 207 m_bIsCoarse = rcWedge.m_bIsCoarse; 208 m_uiAng = rcWedge.m_uiAng; 209 m_uiWidth = rcWedge.m_uiWidth; 210 m_uiHeight = rcWedge.m_uiHeight; 211 } 212 #endif 213 179 214 Void TComWedgelet::xGenerateWedgePattern() 180 215 { … … 193 228 xDrawEdgeLine( uhXs, uhYs, uhXe, uhYe, pbTempPattern, iTempStride ); 194 229 230 #if SHARP_DMM_CLEAN_K0042 231 Int shift = (m_eWedgeRes == HALF_PEL) ? 1 : 0; 232 Int endPos = uhYe>>shift; 233 for (Int y = 0; y <= endPos; y++) 234 { 235 for (Int x = 0; x < m_uiWidth && pbTempPattern[(y * m_uiWidth) + x] == 0; x++) 236 { 237 pbTempPattern[(y * m_uiWidth) + x] = true; 238 } 239 } 240 for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) 241 { 242 m_pbPattern[k] = pbTempPattern[k]; 243 }; 244 #else 195 245 switch( m_uhOri ) 196 246 { … … 252 302 break; 253 303 } 304 #endif 254 305 255 306 if( pbTempPattern ) … … 294 345 for( Int x = x0; x <= x1; x++ ) 295 346 { 347 #if SHARP_DMM_CLEAN_K0042 348 Int shift = (m_eWedgeRes == HALF_PEL) ? 1 : 0; 349 Int stride = iPatternStride >> shift; 350 if( steep ) { pbPattern[((x>>shift) * stride) + (y>>shift)] = true; } 351 else { pbPattern[((y>>shift) * stride) + (x>>shift)] = true; } 352 #else 296 353 if( steep ) { pbPattern[(x * iPatternStride) + y] = true; } 297 354 else { pbPattern[(y * iPatternStride) + x] = true; } 355 #endif 298 356 299 357 error += deltaerr; -
trunk/source/Lib/TLibCommon/TComWedgelet.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 124 124 Bool* getScaledPattern(UInt uiWidth); 125 125 126 #if SHARP_DMM_CLEAN_K0042 127 Void generateWedgePatternByRotate(const TComWedgelet &rcWedge, Int rotate); 128 #endif 126 129 Void setWedgelet( UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe, UChar uhOri, WedgeResolution eWedgeRes, Bool bIsCoarse = false ); 127 130 Void findClosestAngle(); -
trunk/source/Lib/TLibCommon/TComWeightPrediction.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComWeightPrediction.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComYuv.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TComYuv.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibCommon/TypeDef.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 65 65 #define H_3D ( HEVC_EXT == 2) 66 66 67 #if H_MV 68 #define SONY_MV_V_CONST_C0078 1 // Control disparity vector search range via configuration file 69 #define H_MV_FIX_CONF_WINDOW 1 70 #endif 71 67 72 #define NTT_BUG_FIX_TK54 1 68 73 #define BUG_FIX_TK65 1 69 74 70 75 #define MTK_I0093 1 76 77 #define RWTH_DBBP_NO_SATD_K0028 1 71 78 ///////////////////////////////////////////////////////////////////////////////////////// 72 79 /////////////////////////////////// MAJOR DEFINES /////////////////////////////////// … … 78 85 79 86 #if H_3D 87 #define SEC_DEPTH_INTRA_SKIP_MODE_K0033 1 // Depth intra skip mode 88 89 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 90 #define NEIGHBORING_PIX_AVAILABILITY_FIX 1 91 #endif 92 93 80 94 #define H_3D_QTLPC 1 // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068 81 95 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units … … 117 131 #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 118 132 133 #define SEC_ARP_REM_ENC_RESTRICT_K0035 1 // Removal of encoder restriction of ARP, JCT3V-K0035 134 119 135 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 120 136 // Unifying rounding offset, for IC part, JCT3V-D0135 … … 185 201 // SEC_SIMP_SHIFTED_DV_I0086 Simplification of Shifted DV candidate, JCT3V-I0086 186 202 187 203 #define SEC_SHIFTED_IVMC_POS_K0036 1 // Position Derivation for Shifted-IVMC, JCT3V-K0036 188 204 189 205 190 206 #define H_3D_TMVP 1 // QC_TMVP_C0047 191 207 // Sony_M23639 208 #if H_3D_TMVP 209 #define H_3D_TMVP_SCALING_FIX_K0053 1 // QC/CY for K0053 210 #endif 192 211 193 212 #define H_3D_DIM 1 // DIM, Depth intra modes, includes: … … 239 258 // SHARP_DLT_SIMP_J0029 1 // DLT(DepthValue2Idx[]) table derivation cleanup 240 259 260 #if !SEC_DEPTH_INTRA_SKIP_MODE_K0033 241 261 #define H_3D_SINGLE_DEPTH 1 // Single depth mode proposed in JCT3V-I0095 242 262 // HS_SP_SIMP_J0066 243 263 // SINGLE_DEPTH_SIMP_J0115 1 244 264 // MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1 // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060 265 #endif 245 266 246 267 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 265 286 // SEC_DBBP_DMM4_THRESHOLD_I0076 Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076 266 287 // SEC_DBBP_VIEW_REF_CHECK_J0037 1 // Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4 288 #define HS_DBBP_CLEAN_K0048 1 267 289 268 290 #define H_3D_DDD 1 // Disparity derived depth coding … … 305 327 // Fixes 306 328 329 #define FIX_TICKET_95 1 // pps_scaling_list_ref_layer_id parsing 307 330 308 331 #if H_3D 332 #define H_3D_DISABLE_CHROMA 1 309 333 #define HHI_VIEW_ID_LIST_I5_J0107 0 334 #define HHI_INTER_COMP_PRED_K0052 1 335 #define HHI_RES_PRED_K0052 1 336 #define HHI_CAM_PARA_K0052 1 337 #define HHI_MOVE_SYN_K0052 1 338 #define H_3D_ANNEX_SELECTION_FIX 1 339 #define H_3D_TMVP_FIX_TICKET_97 1 340 #define H_3D_DIRECT_DEP_TYPE 1 341 #define H_3D_FIX_TMVP_SCALING_VIEW_ID 1 310 342 #endif 311 343 #define H_MV_FIX_REF_LAYER_PIC_FLAG 1 … … 313 345 #define H_3D_OUTPUT_ACTIVE_TOOLS 0 314 346 347 #if !SEC_DEPTH_INTRA_SKIP_MODE_K0033 315 348 ///// ***** SINGLE DEPTH MODE ********* 316 349 #if H_3D_SINGLE_DEPTH 317 350 #define SINGLE_DEPTH_MODE_CAND_LIST_SIZE 2 // size of the sample candidate list 318 351 352 #endif 319 353 #endif 320 354 … … 350 384 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 351 385 // LG_ZEROINTRADEPTHRESI_A0087 386 #define SHARP_DMM_CLEAN_K0042 1 // Generate DMM pattern with rotation 352 387 353 388 #define TICKET083_IVPFLAG_FIX 1 389 #define SHARP_SUBBLOCK_CLEAN_K0044 1 // Remove unused bipred restriction 390 354 391 #endif 355 392 ///// ***** VIEW SYNTHESIS PREDICTION ********* -
trunk/source/Lib/TLibDecoder/AnnexBread.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/AnnexBread.h
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/NALread.cpp
r976 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/NALread.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/SEIread.cpp
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/SEIread.h
r884 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/SyntaxElementParser.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 54 54 return; 55 55 } 56 #endif 57 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 56 if ( !g_disableNumbering ) 57 { 58 #endif 59 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 60 #if H_MV_ENC_DEC_TRAC 61 } 62 #endif 63 58 64 if (length < 10) 59 65 { … … 75 81 return; 76 82 } 77 #endif 78 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 83 if ( !g_disableNumbering ) 84 { 85 #endif 86 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 87 #if H_MV_ENC_DEC_TRAC 88 } 89 #endif 79 90 fprintf( g_hTrace, "%-50s ue(v) : %u\n", pSymbolName, rValue ); 80 91 fflush ( g_hTrace ); … … 89 100 return; 90 101 } 91 #endif 92 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 102 if ( !g_disableNumbering ) 103 { 104 #endif 105 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 106 #if H_MV_ENC_DEC_TRAC 107 } 108 #endif 109 93 110 fprintf( g_hTrace, "%-50s se(v) : %d\n", pSymbolName, rValue ); 94 111 fflush ( g_hTrace ); … … 103 120 return; 104 121 } 105 #endif 106 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 122 if ( !g_disableNumbering ) 123 { 124 #endif 125 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 126 #if H_MV_ENC_DEC_TRAC 127 } 128 #endif 107 129 fprintf( g_hTrace, "%-50s u(1) : %d\n", pSymbolName, rValue ); 108 130 fflush ( g_hTrace ); -
trunk/source/Lib/TLibDecoder/SyntaxElementParser.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/TDecBinCoder.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/TDecBinCoderCABAC.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/TDecBinCoderCABAC.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 39 39 #include "SEIread.h" 40 40 #include "TDecSlice.h" 41 41 #if H_3D_ANNEX_SELECTION_FIX 42 #include "TDecTop.h" 43 #endif 42 44 //! \ingroup TLibDecoder 43 45 //! \{ … … 91 93 TDecCavlc::TDecCavlc() 92 94 { 95 #if !HHI_CAM_PARA_K0052 93 96 #if H_3D 94 97 m_aaiTempScale = new Int* [ MAX_NUM_LAYERS ]; … … 100 103 } 101 104 #endif 105 #endif 102 106 } 103 107 104 108 TDecCavlc::~TDecCavlc() 105 109 { 110 #if !HHI_CAM_PARA_K0052 106 111 #if H_3D 107 112 for( UInt uiVId = 0; uiVId < MAX_NUM_LAYERS; uiVId++ ) … … 112 117 delete [] m_aaiTempScale; 113 118 delete [] m_aaiTempOffset; 119 #endif 114 120 #endif 115 121 } … … 777 783 assert(uiCode <= 3); 778 784 // in the first version we only support chroma_format_idc equal to 1 (4:2:0), so separate_colour_plane_flag cannot appear in the bitstream 785 #if !H_3D_DISABLE_CHROMA 779 786 assert (uiCode == 1); 787 #endif 780 788 if( uiCode == 3 ) 781 789 { … … 1040 1048 READ_FLAG( uiCode, "qt_pred_flag" ); sps3dExt->setQtPredFlag( d, uiCode == 1 ); 1041 1049 READ_FLAG( uiCode, "inter_sdc_flag" ); sps3dExt->setInterSdcFlag( d, uiCode == 1 ); 1050 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1051 READ_FLAG( uiCode, "intra_skip_flag" ); sps3dExt->setDepthIntraSkipFlag( d, uiCode == 1 ); 1052 #else 1042 1053 READ_FLAG( uiCode, "intra_single_flag" ); sps3dExt->setIntraSingleFlag( d, uiCode == 1 ); 1054 #endif 1043 1055 } 1044 1056 } … … 1051 1063 READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 ); 1052 1064 READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 ); 1065 #if FIX_TICKET_95 1066 if (pcPPS->getPpsInferScalingListFlag()) 1067 { 1053 1068 READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode ); 1069 } 1070 #else 1071 READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode ); 1072 #endif 1054 1073 1055 1074 UInt numRefLocOffsets;; … … 1317 1336 } 1318 1337 1338 #if HHI_INTER_COMP_PRED_K0052 1339 #if H_3D 1340 pcVPS->initViewCompLayer( ); 1341 #endif 1342 #endif 1319 1343 1320 1344 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) … … 1466 1490 for( Int i = pcVPS->getVpsBaseLayerInternalFlag() ? 1 : 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1467 1491 { 1468 1492 READ_CODE( pcVPS->getVpsRepFormatIdxLen(), uiCode, "vps_rep_format_idx[i]" ); pcVPS->setVpsRepFormatIdx( i, uiCode ); 1469 1493 } 1470 1494 } … … 1905 1929 Void TDecCavlc::parseVPS3dExtension( TComVPS* pcVPS ) 1906 1930 { 1931 #if HHI_CAM_PARA_K0052 1932 UInt uiCode; 1933 READ_UVLC( uiCode, "cp_precision"); pcVPS->setCpPrecision( uiCode ) ; 1934 1935 for (Int n = 1; n < pcVPS->getNumViews(); n++) 1936 { 1937 Int i = pcVPS->getViewOIdxList( n ); 1938 Int iInVps = pcVPS->getVoiInVps( i ); 1939 READ_CODE( 6, uiCode, "num_cp" ); pcVPS->setNumCp( iInVps, uiCode ); 1940 1941 if( pcVPS->getNumCp( iInVps ) > 0 ) 1942 { 1943 READ_FLAG( uiCode, "cp_in_slice_segment_header_flag" ); pcVPS->setCpInSliceSegmentHeaderFlag( iInVps, uiCode == 1 ); 1944 for( Int m = 0; m < pcVPS->getNumCp( iInVps ); m++ ) 1945 { 1946 READ_UVLC( uiCode, "cp_ref_voi" ); pcVPS->setCpRefVoi( iInVps, m, uiCode ); 1947 if( !pcVPS->getCpInSliceSegmentHeaderFlag( iInVps ) ) 1948 { 1949 Int j = pcVPS->getCpRefVoi( iInVps, m ); 1950 Int jInVps = pcVPS->getVoiInVps( j ); 1951 Int iCode; 1952 READ_SVLC( iCode, "vps_cp_scale" ); pcVPS->setVpsCpScale ( iInVps, jInVps, iCode ); 1953 READ_SVLC( iCode, "vps_cp_off" ); pcVPS->setVpsCpOff ( iInVps, jInVps, iCode ); 1954 READ_SVLC( iCode, "vps_cp_inv_scale_plus_scale" ); pcVPS->setVpsCpInvScale( iInVps, jInVps, iCode - pcVPS->getVpsCpScale( iInVps, jInVps ) ); 1955 READ_SVLC( iCode, "vps_cp_inv_off_plus_off" ); pcVPS->setVpsCpInvOff ( iInVps, jInVps, iCode - pcVPS->getVpsCpOff ( iInVps, jInVps ) ); 1956 } 1957 } 1958 } 1959 } 1960 pcVPS->deriveCpPresentFlag(); 1961 #else 1907 1962 UInt uiCode; 1908 1909 1963 1910 1964 UInt uiCamParPrecision = 0; … … 1955 2009 } 1956 2010 } 2011 #endif 1957 2012 } 1958 2013 #endif … … 2015 2070 #endif 2016 2071 rpcSlice->setSPS(sps); 2072 #if !HHI_INTER_COMP_PRED_K0052 2017 2073 #if H_3D 2018 2074 rpcSlice->init3dToolParameters(); 2075 #endif 2019 2076 #endif 2020 2077 rpcSlice->setPPS(pps); … … 2108 2165 } 2109 2166 // in the first version chroma_format_idc is equal to one, thus colour_plane_id will not be present 2167 2168 #if H_3D_DISABLE_CHROMA 2169 assert (sps->getChromaFormatIdc() == 1 || rpcSlice->getIsDepth() ); 2170 assert (sps->getChromaFormatIdc() == 0 || !rpcSlice->getIsDepth() ); 2171 #else 2110 2172 assert (sps->getChromaFormatIdc() == 1 ); 2173 #endif 2111 2174 // if( separate_colour_plane_flag == 1 ) 2112 2175 // colour_plane_id u(2) … … 2405 2468 } 2406 2469 } 2470 #if HHI_INTER_COMP_PRED_K0052 2471 #if H_3D 2472 if ( getDecTop()->decProcAnnexI() ) 2473 { 2474 rpcSlice->deriveInCmpPredAndCpAvailFlag(); 2475 if ( rpcSlice->getInCmpPredAvailFlag() ) 2476 { 2477 READ_FLAG(uiCode, "in_comp_pred_flag"); rpcSlice->setInCompPredFlag((Bool)uiCode); 2478 } 2479 rpcSlice->init3dToolParameters(); 2480 } 2481 #endif 2482 #endif 2407 2483 #endif 2408 2484 if(sps->getUseSAO()) 2409 2485 { 2410 2486 READ_FLAG(uiCode, "slice_sao_luma_flag"); rpcSlice->setSaoEnabledFlag((Bool)uiCode); 2487 #if H_3D_DISABLE_CHROMA 2488 if( rpcSlice->getSPS()->getChromaFormatIdc() != 0 ) 2489 { 2411 2490 READ_FLAG(uiCode, "slice_sao_chroma_flag"); rpcSlice->setSaoEnabledFlagChroma((Bool)uiCode); 2491 } 2492 else 2493 { 2494 rpcSlice->setSaoEnabledFlagChroma( false ); 2495 } 2496 2497 #else 2498 READ_FLAG(uiCode, "slice_sao_chroma_flag"); rpcSlice->setSaoEnabledFlagChroma((Bool)uiCode); 2499 #endif 2412 2500 } 2413 2501 … … 2574 2662 } 2575 2663 #if H_3D_IC 2664 #if H_3D_ANNEX_SELECTION_FIX 2665 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) 2666 && !rpcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 2667 && getDecTop()->decProcAnnexI() 2668 ) 2669 #else 2576 2670 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 ) 2671 #endif 2577 2672 { 2578 2673 UInt uiCodeTmp = 0; … … 2671 2766 rpcSlice->setLFCrossSliceBoundaryFlag( (uiCode==1)?true:false); 2672 2767 2768 #if HHI_CAM_PARA_K0052 2769 #if H_3D 2770 if ( getDecTop()->decProcAnnexI() ) 2771 { 2772 Int voiInVps = vps->getVoiInVps( rpcSlice->getViewIndex() ); 2773 if( vps->getCpInSliceSegmentHeaderFlag( voiInVps ) && !rpcSlice->getIsDepth() ) 2774 { 2775 for( Int m = 0; m < vps->getNumCp( voiInVps ); m++ ) 2776 { 2777 Int jInVps = vps->getVoiInVps( vps->getCpRefVoi( voiInVps, m )); 2778 READ_SVLC( iCode, "cp_scale" ); rpcSlice->setCpScale ( jInVps, iCode ); 2779 READ_SVLC( iCode, "cp_off" ); rpcSlice->setCpOff ( jInVps, iCode ); 2780 READ_SVLC( iCode, "cp_inv_scale_plus_scale" ); rpcSlice->setCpInvScale( jInVps, iCode - rpcSlice->getCpScale ( jInVps )); 2781 READ_SVLC( iCode, "cp_inv_off_plus_off" ); rpcSlice->setCpInvOff ( jInVps, iCode - rpcSlice->getCpOff ( jInVps )); 2782 } 2783 } 2784 } 2785 #endif 2786 #endif 2673 2787 } 2674 2788 … … 2694 2808 } 2695 2809 2810 #if !HHI_CAM_PARA_K0052 2696 2811 #if H_3D 2697 2812 #if H_3D_FCO … … 2711 2826 rpcSlice->setCamparaSlice( m_aaiTempScale, m_aaiTempOffset ); 2712 2827 } 2828 #endif 2713 2829 #endif 2714 2830 … … 2984 3100 assert(0); 2985 3101 } 3102 3103 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 3104 Void TDecCavlc::parseDIS( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ ) 3105 { 3106 assert(0); 3107 } 3108 #else 2986 3109 #if H_3D_SINGLE_DEPTH 2987 3110 Void TDecCavlc::parseSingleDepthMode( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ ) … … 2990 3113 } 2991 3114 #endif 3115 #endif 3116 2992 3117 Void TDecCavlc::parseCUTransquantBypassFlag( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ ) 2993 3118 { … … 3145 3270 { 3146 3271 wpScalingParam *wp; 3272 #if H_3D_DISABLE_CHROMA 3273 Bool bChroma = ( pcSlice->getSPS()->getChromaFormatIdc() != 0 ); 3274 #else 3147 3275 Bool bChroma = true; // color always present in HEVC ? 3276 #endif 3148 3277 SliceType eSliceType = pcSlice->getSliceType(); 3149 3278 Int iNbRef = (eSliceType == B_SLICE ) ? (2) : (1); 3150 3279 UInt uiLog2WeightDenomLuma, uiLog2WeightDenomChroma; 3151 3280 UInt uiTotalSignalledWeightFlags = 0; 3152 3281 3153 3282 Int iDeltaDenom; 3154 3283 // decode delta_luma_log2_weight_denom : … … 3162 3291 uiLog2WeightDenomChroma = (UInt)(iDeltaDenom + uiLog2WeightDenomLuma); 3163 3292 } 3293 else 3294 { 3295 // For some reasons this is also needed to fix a compiler warning when H_3D_DISABLE_CHROMA is equal to 0. 3296 uiLog2WeightDenomChroma = 0; 3297 } 3298 3164 3299 3165 3300 for ( Int iNumRef=0 ; iNumRef<iNbRef ; iNumRef++ ) -
trunk/source/Lib/TLibDecoder/TDecCAVLC.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 52 52 // Class definition 53 53 // ==================================================================================================================== 54 #if H_3D_ANNEX_SELECTION_FIX 55 class TDecTop; 56 #endif 54 57 55 58 /// CAVLC decoder class … … 63 66 void parseShortTermRefPicSet (TComSPS* pcSPS, TComReferencePictureSet* pcRPS, Int idx); 64 67 68 69 #if !HHI_CAM_PARA_K0052 65 70 #if H_3D 66 71 Int** m_aaiTempScale; 67 72 Int** m_aaiTempOffset; 68 73 #endif 74 #endif 75 #if H_3D_ANNEX_SELECTION_FIX 76 TDecTop* m_decTop; 77 #endif 78 69 79 70 80 public: … … 108 118 Void parsePPS ( TComPPS* pcPPS); 109 119 #endif 110 120 #if H_3D_ANNEX_SELECTION_FIX 121 Void setDecTop ( TDecTop* decTop ) { m_decTop = decTop; }; 122 #endif 111 123 Void parseVUI ( TComVUI* pcVUI, TComSPS* pcSPS ); 112 124 Void parseSEI ( SEIMessages& ); … … 124 136 125 137 Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 138 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 139 Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 140 #else 126 141 #if H_3D_SINGLE_DEPTH 127 142 Void parseSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 128 #endif 143 #endif 144 #endif 129 145 Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 130 146 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); … … 166 182 Void parseScalingList ( TComScalingList* scalingList ); 167 183 Void xDecodeScalingList ( TComScalingList *scalingList, UInt sizeId, UInt listId); 184 185 #if H_3D_ANNEX_SELECTION_FIX 186 TDecTop* getDecTop() { return m_decTop; }; 187 #endif 188 168 189 protected: 169 190 Bool xMoreRbspData(); -
trunk/source/Lib/TLibDecoder/TDecCu.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 290 290 #if H_MV_ENC_DEC_TRAC 291 291 DTRACE_CU_S("=========== coding_unit ===========\n") 292 #if H_MV_ENC_DEC_TRAC 293 #if ENC_DEC_TRACE 294 stopAtPos ( pcCU->getSlice()->getPOC(), 295 pcCU->getSlice()->getLayerId(), 296 uiLPelX, 297 uiTPelY, 298 uiRPelX-uiLPelX+1, 299 uiBPelY-uiTPelY+1); 300 #endif 301 #endif 302 292 303 #endif 293 304 … … 299 310 #if H_3D_NBDV 300 311 DisInfo DvInfo; 312 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 301 313 DvInfo.bDV = false; 314 #endif 302 315 DvInfo.m_acNBDV.setZero(); 303 316 DvInfo.m_aVIdxCan = 0; … … 334 347 if( pcCU->getSlice()->getIsDepth()) 335 348 { 349 #if SEC_ARP_REM_ENC_RESTRICT_K0035 350 m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo); 351 #else 336 352 DvInfo.bDV = m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo); 353 #endif 337 354 } 338 355 else … … 342 359 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done. 343 360 { 361 #if SEC_ARP_REM_ENC_RESTRICT_K0035 362 m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true); 363 #else 344 364 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true); 365 #endif 345 366 } 346 367 else 347 368 #endif 348 369 { 370 #if SEC_ARP_REM_ENC_RESTRICT_K0035 371 m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo); 372 #else 349 373 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo); 374 #endif 350 375 } 351 376 #if H_3D_IV_MERGE … … 520 545 return; 521 546 } 547 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 548 m_pcEntropyDecoder->decodeDIS( pcCU, uiAbsPartIdx, uiDepth ); 549 if(!pcCU->getDISFlag(uiAbsPartIdx)) 550 { 551 #else 522 552 #if H_3D_SINGLE_DEPTH 523 553 m_pcEntropyDecoder->decodeSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth ); … … 525 555 { 526 556 #endif 557 #endif 527 558 m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth ); 528 559 m_pcEntropyDecoder->decodePartSize( pcCU, uiAbsPartIdx, uiDepth ); 529 560 561 #if !HHI_MOVE_SYN_K0052 530 562 #if H_3D_DIM_SDC 531 563 m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth ); 532 564 #endif 565 #endif 533 566 if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) 534 567 { … … 537 570 if(pcCU->getIPCMFlag(uiAbsPartIdx)) 538 571 { 572 #if HHI_MOVE_SYN_K0052 573 #if H_3D_DIM_SDC 574 m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth ); 575 #endif 576 #endif 539 577 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 540 578 #if H_3D_IV_MERGE … … 550 588 // prediction mode ( Intra : direction mode, Inter : Mv, reference idx ) 551 589 m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]); 590 552 591 // Coefficient decoding 553 592 Bool bCodeDQP = getdQPFlag(); 554 593 m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, uiCurrWidth, uiCurrHeight, bCodeDQP ); 555 594 setdQPFlag( bCodeDQP ); 595 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 596 } 597 #else 556 598 #if H_3D_SINGLE_DEPTH 557 599 } 600 #endif 558 601 #endif 559 602 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); … … 616 659 617 660 m_ppcCU[uiDepth]->copySubCU( pcCU, uiAbsPartIdx, uiDepth ); 618 619 #if H_MV_ENC_DEC_TRAC620 #if ENC_DEC_TRACE621 stopAtPos ( m_ppcCU[uiDepth]->getSlice()->getPOC(),622 m_ppcCU[uiDepth]->getSlice()->getLayerId(),623 m_ppcCU[uiDepth]->getCUPelX(),624 m_ppcCU[uiDepth]->getCUPelY(),625 m_ppcCU[uiDepth]->getWidth(0),626 m_ppcCU[uiDepth]->getHeight(0) );627 #endif628 #endif629 661 630 662 switch( m_ppcCU[uiDepth]->getPredictionMode(0) ) … … 656 688 break; 657 689 case MODE_INTRA: 690 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 691 if( m_ppcCU[uiDepth]->getDISFlag(0) ) 692 { 693 xReconDIS( m_ppcCU[uiDepth], 0, uiDepth ); 694 } 695 #if H_3D_DIM_SDC 696 else if( m_ppcCU[uiDepth]->getSDCFlag(0) ) 697 { 698 xReconIntraSDC( m_ppcCU[uiDepth], 0, uiDepth ); 699 } 700 #endif 701 else 702 #else 658 703 #if H_3D_SINGLE_DEPTH 659 704 if( m_ppcCU[uiDepth]->getSingleDepthFlag(0) ) … … 671 716 #endif 672 717 #endif 718 #endif 673 719 xReconIntraQT( m_ppcCU[uiDepth], uiDepth ); 674 720 break; … … 704 750 } 705 751 } 752 753 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 754 Void TDecCu::xReconDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 755 { 756 UInt uiWidth = pcCU->getWidth ( 0 ); 757 UInt uiHeight = pcCU->getHeight ( 0 ); 758 759 TComYuv* pcRecoYuv = m_ppcYuvReco[uiDepth]; 760 761 UInt uiStride = pcRecoYuv->getStride (); 762 Pel* piReco = pcRecoYuv->getLumaAddr( uiAbsPartIdx ); 763 764 765 AOF( uiWidth == uiHeight ); 766 AOF( uiAbsPartIdx == 0 ); 767 768 Bool bAboveAvail = false; 769 Bool bLeftAvail = false; 770 pcCU->getPattern()->initPattern ( pcCU, 0, uiAbsPartIdx ); 771 pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, 0, 772 m_pcPrediction->getPredicBuf (), 773 m_pcPrediction->getPredicBufWidth (), 774 m_pcPrediction->getPredicBufHeight (), 775 bAboveAvail, bLeftAvail 776 ); 777 778 if ( pcCU->getDISType(uiAbsPartIdx) == 0 ) 779 { 780 m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), VER_IDX, piReco, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 781 } 782 else if ( pcCU->getDISType(uiAbsPartIdx) == 1 ) 783 { 784 m_pcPrediction->predIntraLumaAng( pcCU->getPattern(), HOR_IDX, piReco, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 785 } 786 else if ( pcCU->getDISType(uiAbsPartIdx) == 2 ) 787 { 788 Pel pSingleDepth = 1 << ( g_bitDepthY - 1 ); 789 pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 0 ); 790 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 791 { 792 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 793 { 794 piReco[ uiX ] = pSingleDepth; 795 } 796 piReco+= uiStride; 797 } 798 } 799 else if ( pcCU->getDISType(uiAbsPartIdx) == 3 ) 800 { 801 Pel pSingleDepth = 1 << ( g_bitDepthY - 1 ); 802 pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 1 ); 803 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 804 { 805 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 806 { 807 piReco[ uiX ] = pSingleDepth; 808 } 809 piReco+= uiStride; 810 } 811 } 812 813 // clear UV 814 UInt uiStrideC = pcRecoYuv->getCStride(); 815 Pel *pRecCb = pcRecoYuv->getCbAddr(); 816 Pel *pRecCr = pcRecoYuv->getCrAddr(); 817 818 for (Int y=0; y<uiHeight/2; y++) 819 { 820 for (Int x=0; x<uiWidth/2; x++) 821 { 822 pRecCb[x] = 1<<(g_bitDepthC-1); 823 pRecCr[x] = 1<<(g_bitDepthC-1); 824 } 825 826 pRecCb += uiStrideC; 827 pRecCr += uiStrideC; 828 } 829 } 830 #else 706 831 #if H_3D_SINGLE_DEPTH 707 832 Void TDecCu::xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) … … 772 897 } 773 898 #endif 899 #endif 900 774 901 #if H_3D_INTER_SDC 775 902 Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) … … 835 962 // compute mask by segmenting depth block 836 963 Bool pMask[MAX_CU_SIZE*MAX_CU_SIZE]; 964 #if HS_DBBP_CLEAN_K0048 965 Bool bValidMask = m_pcPrediction->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, pcCU->getWidth(0), pcCU->getHeight(0), pMask, pcCU); 966 #else 837 967 Bool bValidMask = m_pcPrediction->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, pcCU->getWidth(0), pcCU->getHeight(0), pMask); 968 #endif 838 969 AOF(bValidMask); 839 970 -
trunk/source/Lib/TLibDecoder/TDecCu.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 123 123 Void setdQPFlag ( Bool b ) { m_bDecodeDQP = b; } 124 124 Void xFillPCMBuffer (TComDataCU* pCU, UInt depth); 125 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 126 Void xReconDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 127 #else 125 128 #if H_3D_SINGLE_DEPTH 126 129 Void xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 130 #endif 127 131 #endif 128 132 #if H_3D_DIM_SDC -
trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 52 52 m_pcEntropyDecoderIf->parseSkipFlag( pcCU, uiAbsPartIdx, uiDepth ); 53 53 } 54 55 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 56 Void TDecEntropy::decodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 57 { 58 if( !pcCU->getSlice()->getDepthIntraSkipFlag() ) 59 { 60 return; 61 } 62 63 m_pcEntropyDecoderIf->parseDIS( pcCU, uiAbsPartIdx, uiDepth ); 64 } 65 #else 54 66 #if H_3D_SINGLE_DEPTH 55 67 Void TDecEntropy::decodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) … … 63 75 } 64 76 #endif 77 #endif 78 65 79 Void TDecEntropy::decodeCUTransquantBypassFlag(TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 66 80 { … … 147 161 { 148 162 m_pcEntropyDecoderIf->parsePartSize( pcCU, uiAbsPartIdx, uiDepth ); 149 163 #if !HHI_MOVE_SYN_K0052 150 164 #if H_3D_DBBP 151 165 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) … … 154 168 } 155 169 #endif 170 #endif 156 171 } 157 172 … … 161 176 { 162 177 decodeIntraDirModeLuma ( pcCU, uiAbsPartIdx, uiDepth ); 178 #if HHI_MOVE_SYN_K0052 179 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 180 #endif 163 181 #if H_3D_DIM_SDC 182 #if H_3D_DISABLE_CHROMA 183 #if !HHI_MOVE_SYN_K0052 184 if(!pcCU->getSDCFlag(uiAbsPartIdx) && !pcCU->getSlice()->getIsDepth() ) 185 #else 186 if(!pcCU->getSDCFlag(uiAbsPartIdx) && pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 187 #endif 188 #else 164 189 if(!pcCU->getSDCFlag(uiAbsPartIdx)) 190 #endif 165 191 #endif 166 192 decodeIntraDirModeChroma( pcCU, uiAbsPartIdx, uiDepth ); … … 239 265 pcSubCU->copyDVInfoFrom( pcCU, uiAbsPartIdx); 240 266 #endif 267 #if HHI_MOVE_SYN_K0052 241 268 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 242 269 { … … 247 274 //DTRACE_PU("x1", uiTPelY) 248 275 #endif 276 277 ////// Parse PUs syntax 249 278 decodeMergeFlag( pcCU, uiSubPartIdx, uiDepth, uiPartIdx ); 250 279 if ( pcCU->getMergeFlag( uiSubPartIdx ) ) 251 280 { 252 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 281 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 282 } 283 else 284 { 285 decodeInterDirPU( pcCU, uiSubPartIdx, uiDepth, uiPartIdx ); 286 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) 287 { 288 if ( pcCU->getSlice()->getNumRefIdx( RefPicList( uiRefListIdx ) ) > 0 ) 289 { 290 decodeRefFrmIdxPU( pcCU, uiSubPartIdx, uiDepth, uiPartIdx, RefPicList( uiRefListIdx ) ); 291 decodeMvdPU ( pcCU, uiSubPartIdx, uiDepth, uiPartIdx, RefPicList( uiRefListIdx ) ); 292 decodeMVPIdxPU ( pcSubCU, uiSubPartIdx-uiAbsPartIdx, uiDepth, uiPartIdx, RefPicList( uiRefListIdx ) ); 293 } 294 } 295 } 296 } 297 298 ////// Parse CUs extension syntax 299 decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 300 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 301 302 #if H_3D_ARP 303 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 304 #endif 305 #if H_3D_IC 306 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 307 #endif 308 309 ////// Decode motion vectors 310 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 311 { 312 if ( pcCU->getMergeFlag( uiSubPartIdx ) ) 313 { 253 314 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 254 #if H_3D_ARP255 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth );256 #endif257 #if H_3D_IC258 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );259 #endif260 315 #if H_3D_DBBP 261 316 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false ) … … 390 445 else 391 446 { 447 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) 448 { 449 if ( pcCU->getSlice()->getNumRefIdx( RefPicList( uiRefListIdx ) ) > 0 ) 450 { 451 decodeMvsAMVP ( pcSubCU, uiSubPartIdx-uiAbsPartIdx, uiDepth, uiPartIdx, RefPicList( uiRefListIdx ) ); 452 } 453 } 454 } 455 456 if ( (pcCU->getInterDir(uiSubPartIdx) == 3) && pcSubCU->isBipredRestriction(uiPartIdx) ) 457 { 458 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMv( TComMv(0,0), ePartSize, uiSubPartIdx, uiDepth, uiPartIdx); 459 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllRefIdx( -1, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx); 460 pcCU->setInterDirSubParts( 1, uiSubPartIdx, uiPartIdx, uiDepth); 461 } 462 } 463 #else 464 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 465 { 466 #if H_MV_ENC_DEC_TRAC 467 DTRACE_PU_S("=========== prediction_unit ===========\n") 468 // ToDo: 469 //DTRACE_PU("x0", uiLPelX) 470 //DTRACE_PU("x1", uiTPelY) 471 #endif 472 decodeMergeFlag( pcCU, uiSubPartIdx, uiDepth, uiPartIdx ); 473 if ( pcCU->getMergeFlag( uiSubPartIdx ) ) 474 { 475 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 476 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 477 #if H_3D_ARP 478 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 479 #endif 480 #if H_3D_IC 481 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 482 #endif 483 #if H_3D_DBBP 484 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false ) 485 #else 486 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 ) 487 #endif 488 { 489 pcSubCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 490 if ( !isMerged ) 491 { 492 #if H_3D_VSP 493 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 494 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 495 #if H_3D_SPIVMP 496 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 497 #endif 498 pcSubCU->initAvailableFlags(); 499 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 500 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 501 #if H_3D_SPIVMP 502 , pcMvFieldSP, puhInterDirSP 503 #endif 504 , numValidMergeCand ); 505 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 506 #if H_3D_SPIVMP 507 , bSPIVMPFlag 508 #endif 509 , numValidMergeCand ); 510 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 511 512 #else 513 #if H_3D 514 pcSubCU->initAvailableFlags(); 515 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 516 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 517 518 #else 519 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 520 #endif 521 #endif 522 isMerged = true; 523 } 524 pcSubCU->setPartSizeSubParts( ePartSize, 0, uiDepth ); 525 } 526 else 527 { 528 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 529 #if H_3D_VSP 530 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 531 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 532 #if H_3D_SPIVMP 533 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 534 #endif 535 pcSubCU->initAvailableFlags(); 536 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 537 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours 538 #if H_3D_SPIVMP 539 , pcMvFieldSP, puhInterDirSP 540 #endif 541 ,numValidMergeCand, uiMergeIndex ); 542 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 543 #if H_3D_SPIVMP 544 , bSPIVMPFlag 545 #endif 546 ,numValidMergeCand ); 547 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 548 #else 549 #if H_3D 550 pcSubCU->initAvailableFlags(); 551 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 552 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 553 #else 554 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 555 #endif 556 #endif 557 } 558 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 559 560 TComMv cTmpMv( 0, 0 ); 561 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) 562 { 563 if ( pcCU->getSlice()->getNumRefIdx( RefPicList( uiRefListIdx ) ) > 0 ) 564 { 565 pcCU->setMVPIdxSubParts( 0, RefPicList( uiRefListIdx ), uiSubPartIdx, uiPartIdx, uiDepth); 566 pcCU->setMVPNumSubParts( 0, RefPicList( uiRefListIdx ), uiSubPartIdx, uiPartIdx, uiDepth); 567 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 568 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 569 #if H_3D_VSP 570 #if H_3D_DBBP 571 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) ) 572 #else 573 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 ) 574 #endif 575 { 576 if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) ) 577 { 578 UInt dummy; 579 Int vspSize; 580 Int width, height; 581 pcCU->getPartIndexAndSize( uiPartIdx, dummy, width, height, uiSubPartIdx, pcCU->getTotalNumPart()==256 ); 582 pcCU->setMvFieldPUForVSP( pcCU, uiSubPartIdx, width, height, RefPicList( uiRefListIdx ), cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ].getRefIdx(), vspSize ); 583 pcCU->setVSPFlag( uiSubPartIdx, vspSize ); 584 } 585 } 586 #endif 587 } 588 } 589 #if H_3D_SPIVMP 590 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 591 if (bSPIVMPFlag[uiMergeIndex] != 0) 592 { 593 Int iWidth, iHeight; 594 UInt uiIdx; 595 pcCU->getPartIndexAndSize( uiPartIdx, uiIdx, iWidth, iHeight, uiSubPartIdx, true ); 596 597 UInt uiSPAddr; 598 599 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 600 601 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 602 603 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 604 { 605 pcCU->getSPAbsPartIdx(uiSubPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 606 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 607 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 608 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 609 } 610 } 611 #endif 612 } 613 else 614 { 392 615 decodeInterDirPU( pcCU, uiSubPartIdx, uiDepth, uiPartIdx ); 393 616 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 414 637 } 415 638 } 639 #endif 416 640 #if H_3D_SPIVMP 417 641 delete[] pcMvFieldSP; … … 482 706 } 483 707 708 #if HHI_MOVE_SYN_K0052 484 709 Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) 485 710 { 486 711 Int iMVPIdx = -1; 487 488 TComMv cZeroMv( 0, 0 );489 TComMv cMv = cZeroMv;490 Int iRefIdx = -1;491 492 TComCUMvField* pcSubCUMvField = pcSubCU->getCUMvField( eRefList );493 AMVPInfo* pAMVPInfo = pcSubCUMvField->getAMVPInfo();494 495 iRefIdx = pcSubCUMvField->getRefIdx(uiPartAddr);496 cMv = cZeroMv;497 712 498 713 if ( (pcSubCU->getInterDir(uiPartAddr) & ( 1 << eRefList )) ) … … 512 727 #endif 513 728 } 729 pcSubCU->setMVPIdxSubParts( iMVPIdx, eRefList, uiPartAddr, uiPartIdx, uiDepth ); 730 } 731 732 Void TDecEntropy::decodeMvsAMVP( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) 733 { 734 TComMv cZeroMv( 0, 0 ); 735 TComMv cMv = cZeroMv; 736 Int iRefIdx = -1; 737 738 TComCUMvField* pcSubCUMvField = pcSubCU->getCUMvField( eRefList ); 739 AMVPInfo* pAMVPInfo = pcSubCUMvField->getAMVPInfo(); 740 741 iRefIdx = pcSubCUMvField->getRefIdx(uiPartAddr); 742 cMv = cZeroMv; 743 744 pcSubCU->fillMvpCand(uiPartIdx, uiPartAddr, eRefList, iRefIdx, pAMVPInfo); 745 pcSubCU->setMVPNumSubParts(pAMVPInfo->iN, eRefList, uiPartAddr, uiPartIdx, uiDepth); 746 if ( iRefIdx >= 0 ) 747 { 748 m_pcPrediction->getMvPredAMVP( pcSubCU, uiPartIdx, uiPartAddr, eRefList, cMv); 749 cMv += pcSubCUMvField->getMvd( uiPartAddr ); 750 } 751 752 PartSize ePartSize = pcSubCU->getPartitionSize( uiPartAddr ); 753 pcSubCU->getCUMvField( eRefList )->setAllMv(cMv, ePartSize, uiPartAddr, 0, uiPartIdx); 754 } 755 756 #else 757 Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) 758 { 759 Int iMVPIdx = -1; 760 761 TComMv cZeroMv( 0, 0 ); 762 TComMv cMv = cZeroMv; 763 Int iRefIdx = -1; 764 765 TComCUMvField* pcSubCUMvField = pcSubCU->getCUMvField( eRefList ); 766 AMVPInfo* pAMVPInfo = pcSubCUMvField->getAMVPInfo(); 767 768 iRefIdx = pcSubCUMvField->getRefIdx(uiPartAddr); 769 cMv = cZeroMv; 770 771 if ( (pcSubCU->getInterDir(uiPartAddr) & ( 1 << eRefList )) ) 772 { 773 m_pcEntropyDecoderIf->parseMVPIdx( iMVPIdx ); 774 #if H_MV_ENC_DEC_TRAC 775 #if ENC_DEC_TRACE 776 if ( eRefList == REF_PIC_LIST_0 ) 777 { 778 DTRACE_PU("mvp_l0_flag", iMVPIdx) 779 } 780 else 781 { 782 DTRACE_PU("mvp_l1_flag", iMVPIdx) 783 } 784 #endif 785 #endif 786 } 514 787 pcSubCU->fillMvpCand(uiPartIdx, uiPartAddr, eRefList, iRefIdx, pAMVPInfo); 515 788 pcSubCU->setMVPNumSubParts(pAMVPInfo->iN, eRefList, uiPartAddr, uiPartIdx, uiDepth); … … 524 797 pcSubCU->getCUMvField( eRefList )->setAllMv(cMv, ePartSize, uiPartAddr, 0, uiPartIdx); 525 798 } 526 799 #endif 527 800 Void TDecEntropy::xDecodeTransform( TComDataCU* pcCU, UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP, Int quadtreeTULog2MinSizeInCU) 528 801 { 802 803 #if H_MV_ENC_DEC_TRAC 804 #if ENC_DEC_TRACE 805 UInt uiLPelX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ]; 806 UInt uiTPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ]; 807 808 DTRACE_TU_S("=========== transform_tree ===========\n") 809 DTRACE_TU("x0", uiLPelX) 810 DTRACE_TU("x1", uiTPelY) 811 DTRACE_TU("log2TrafoSize", g_uiMaxCUWidth>>uiDepth) 812 DTRACE_TU("trafoDepth" , uiDepth) 813 #endif 814 #endif 815 529 816 UInt uiSubdiv; 530 817 const UInt uiLog2TrafoSize = g_aucConvertToBit[pcCU->getSlice()->getSPS()->getMaxCUWidth()]+2 - uiDepth; … … 579 866 if( bFirstCbfOfCU || uiLog2TrafoSize > 2 ) 580 867 { 868 #if H_3D_DISABLE_CHROMA 869 if (pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 870 { 581 871 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepth - 1 ) ) 582 872 { … … 587 877 m_pcEntropyDecoderIf->parseQtCbf( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepth, uiDepth ); 588 878 } 879 } 880 else 881 { 882 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepth - 1 ) ) 883 { 884 pcCU->setCbfSubParts( 0, TEXT_CHROMA_U, uiAbsPartIdx, uiTrDepth - 1 ); 885 } 886 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepth - 1 ) ) 887 { 888 pcCU->setCbfSubParts( 0, TEXT_CHROMA_V, uiAbsPartIdx, uiTrDepth - 1 ); 889 } 890 } 891 #else 892 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepth - 1 ) ) 893 { 894 m_pcEntropyDecoderIf->parseQtCbf( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepth, uiDepth ); 895 } 896 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepth - 1 ) ) 897 { 898 m_pcEntropyDecoderIf->parseQtCbf( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepth, uiDepth ); 899 } 900 #endif 589 901 } 590 902 else … … 748 1060 assert( pcCU->getTransformIdx(uiAbsPartIdx) == 0 ); 749 1061 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_LUMA) == 1 ); 1062 #if H_3D_DISABLE_CHROMA 1063 if (pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 1064 { 1065 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 1066 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 1067 } 1068 #else 750 1069 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 751 1070 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 1071 #endif 752 1072 } 753 1073 … … 811 1131 { 812 1132 pcCU->setSDCFlagSubParts( false, uiAbsPartIdx, uiDepth ); 1133 #if HHI_MOVE_SYN_K0052 1134 if ( pcCU->isSkipped( uiAbsPartIdx ) ) 1135 { 1136 return; 1137 } 1138 #endif 1139 813 1140 814 1141 if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getInterSdcFlag() ) || … … 830 1157 Void TDecEntropy::decodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 831 1158 { 832 m_pcEntropyDecoderIf->parseDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 1159 #if HHI_MOVE_SYN_K0052 1160 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 1161 { 1162 #endif 1163 m_pcEntropyDecoderIf->parseDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 1164 #if HHI_MOVE_SYN_K0052 1165 } 1166 #endif 833 1167 } 834 1168 #endif -
trunk/source/Lib/TLibDecoder/TDecEntropy.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 85 85 public: 86 86 virtual Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 87 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 88 virtual Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 89 #else 87 90 #if H_3D_SINGLE_DEPTH 88 91 virtual Void parseSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 92 #endif 89 93 #endif 90 94 virtual Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; … … 148 152 Void decodeMvdPU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 149 153 Void decodeMVPIdxPU ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 150 154 #if HHI_MOVE_SYN_K0052 155 Void decodeMvsAMVP ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 156 #endif 151 157 Void setEntropyDecoder ( TDecEntropyIf* p ); 152 158 Void setBitstream ( TComInputBitstream* p ) { m_pcEntropyDecoderIf->setBitstream(p); } … … 171 177 Void decodeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 172 178 Void decodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 179 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 180 Void decodeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ; 181 #else 173 182 #if H_3D_SINGLE_DEPTH 174 183 Void decodeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ; 184 #endif 175 185 #endif 176 186 Void decodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
trunk/source/Lib/TLibDecoder/TDecGop.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 92 92 m_pcSliceDecoder = pcSliceDecoder; 93 93 m_pcLoopFilter = pcLoopFilter; 94 m_pcSAO = pcSAO; 94 m_pcSAO = pcSAO; 95 95 } 96 96 -
trunk/source/Lib/TLibDecoder/TDecGop.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 56 56 #include "TDecBinCoderCABAC.h" 57 57 58 58 59 //! \ingroup TLibDecoder 59 60 //! \{ … … 62 63 // Class definition 63 64 // ==================================================================================================================== 65 #if H_3D_ANNEX_SELECTION_FIX 66 class TDecTop; 67 #endif 68 64 69 65 70 /// GOP decoder class … … 78 83 TDecSlice* m_pcSliceDecoder; 79 84 TComLoopFilter* m_pcLoopFilter; 85 #if H_3D_ANNEX_SELECTION_FIX 86 TDecTop* m_decTop; 87 #endif 80 88 81 89 TComSampleAdaptiveOffset* m_pcSAO; -
trunk/source/Lib/TLibDecoder/TDecSbac.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 52 52 , m_cCUSplitFlagSCModel ( 1, 1, NUM_SPLIT_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels ) 53 53 , m_cCUSkipFlagSCModel ( 1, 1, NUM_SKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 54 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 55 , m_cCUDISFlagSCModel ( 1, 1, NUM_DIS_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 56 , m_cCUDISTypeSCModel ( 1, 1, NUM_DIS_TYPE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 57 #else 54 58 #if H_3D_SINGLE_DEPTH 55 59 , m_cCUSingleDepthFlagSCModel ( 1, 1, NUM_SINGLEDEPTH_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 56 60 , m_cSingleDepthValueSCModel ( 1, 1, NUM_SINGLE_DEPTH_VALUE_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 61 #endif 57 62 #endif 58 63 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 136 141 m_cCUSplitFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SPLIT_FLAG ); 137 142 m_cCUSkipFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SKIP_FLAG ); 143 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 144 m_cCUDISFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DIS_FLAG ); 145 m_cCUDISTypeSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DIS_TYPE ); 146 #else 138 147 #if H_3D_SINGLE_DEPTH 139 148 m_cCUSingleDepthFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 140 149 m_cSingleDepthValueSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); 150 #endif 141 151 #endif 142 152 m_cCUMergeFlagExtSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT ); … … 207 217 m_cCUSplitFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SPLIT_FLAG ); 208 218 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 219 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 220 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 221 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 222 #else 209 223 #if H_3D_SINGLE_DEPTH 210 224 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 211 225 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); 226 #endif 212 227 #endif 213 228 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT ); … … 486 501 } 487 502 503 504 #if H_3D_DISABLE_CHROMA 505 if( pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 506 { 507 #endif 488 508 piPCMSample = pcCU->getPCMSampleCb() + uiChromaOffset; 489 509 uiWidth = pcCU->getWidth(uiAbsPartIdx)/2; … … 517 537 piPCMSample += uiWidth; 518 538 } 539 #if H_3D_DISABLE_CHROMA 540 } 541 #endif 542 519 543 520 544 m_pcTDecBinIf->start(); … … 570 594 #endif 571 595 } 596 597 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 598 Void TDecSbac::parseDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 599 { 600 pcCU->setDISFlagSubParts( false, uiAbsPartIdx, uiDepth ); 601 UInt uiSymbol = 0; 602 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUDISFlagSCModel.get( 0, 0, 0 ) ); 603 if( uiSymbol ) 604 { 605 pcCU->setDISFlagSubParts( true, uiAbsPartIdx, uiDepth ); 606 pcCU->setSkipFlagSubParts( false, uiAbsPartIdx, uiDepth ); 607 pcCU->setSDCFlagSubParts( false, uiAbsPartIdx, uiDepth ); 608 pcCU->setPredModeSubParts( MODE_INTRA, uiAbsPartIdx, uiDepth ); 609 pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 610 pcCU->setLumaIntraDirSubParts (DC_IDX, uiAbsPartIdx, uiDepth ); 611 pcCU->setSizeSubParts( g_uiMaxCUWidth>>uiDepth, g_uiMaxCUHeight>>uiDepth, uiAbsPartIdx, uiDepth ); 612 pcCU->setMergeFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 613 pcCU->setTrIdxSubParts(0, uiAbsPartIdx, uiDepth); 614 pcCU->setCbfSubParts(0, 1, 1, uiAbsPartIdx, uiDepth); 615 616 UInt uiUnaryIdx = 0; 617 UInt uiNumCand = 4; 618 619 if ( uiNumCand > 1 ) 620 { 621 for( ; uiUnaryIdx < uiNumCand - 1; ++uiUnaryIdx ) 622 { 623 UInt uiSymbol2 = 0; 624 if ( uiUnaryIdx==0 ) 625 { 626 m_pcTDecBinIf->decodeBin( uiSymbol2, m_cCUDISTypeSCModel.get( 0, 0, 0 ) ); 627 } 628 else 629 { 630 m_pcTDecBinIf->decodeBinEP( uiSymbol2); 631 } 632 if( uiSymbol2 == 0 ) 633 { 634 break; 635 } 636 } 637 } 638 pcCU->setDISTypeSubParts(uiUnaryIdx, uiAbsPartIdx, 0, uiDepth); 639 } 640 } 641 #else 572 642 #if H_3D_SINGLE_DEPTH 573 643 Void TDecSbac::parseSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) … … 616 686 } 617 687 } 618 619 #endif 688 #endif 689 #endif 690 620 691 /** parse merge flag 621 692 * \param pcCU … … 1304 1375 DTRACE_CABAC_V( uiLog2TransformBlockSize ) 1305 1376 DTRACE_CABAC_T( "\n" ) 1377 #else 1378 DTRACE_TU("split_transform_flag", ruiSubdivFlag ) 1306 1379 #endif 1307 1380 } … … 1382 1455 DTRACE_CABAC_V( uiAbsPartIdx ) 1383 1456 DTRACE_CABAC_T( "\n" ) 1457 #else 1458 if ( eType == TEXT_CHROMA_U ) 1459 { 1460 DTRACE_TU("cbf_cb", uiSymbol ) 1461 } 1462 else if ( eType == TEXT_CHROMA_V ) 1463 { 1464 DTRACE_TU("cbf_cr", uiSymbol ) 1465 } 1466 else 1467 { 1468 DTRACE_TU("cbf_luma", uiSymbol ) 1469 } 1384 1470 #endif 1385 1471 … … 2105 2191 2106 2192 m_pcTDecBinIf->decodeBin( uiSymbol, m_cSDCFlagSCModel.get( 0, 0, uiCtxSDCFlag ) ); 2107 2193 DTRACE_CU("dc_only_flag", uiSymbol) 2108 2194 if( uiSymbol ) 2109 2195 { … … 2129 2215 2130 2216 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) ); 2131 2217 DTRACE_CU("dbbp_flag", uiSymbol) 2132 2218 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2133 2219 AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N ); -
trunk/source/Lib/TLibDecoder/TDecSbac.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 125 125 126 126 Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 127 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 128 Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 129 #else 127 130 #if H_3D_SINGLE_DEPTH 128 131 Void parseSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 129 #endif 132 #endif 133 #endif 130 134 Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 131 135 Void parseSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); … … 178 182 ContextModel3DBuffer m_cCUSplitFlagSCModel; 179 183 ContextModel3DBuffer m_cCUSkipFlagSCModel; 184 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 185 ContextModel3DBuffer m_cCUDISFlagSCModel; 186 ContextModel3DBuffer m_cCUDISTypeSCModel; 187 #else 180 188 #if H_3D_SINGLE_DEPTH 181 189 ContextModel3DBuffer m_cCUSingleDepthFlagSCModel; 182 190 ContextModel3DBuffer m_cSingleDepthValueSCModel; 191 #endif 183 192 #endif 184 193 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; -
trunk/source/Lib/TLibDecoder/TDecSlice.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/TDecSlice.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibDecoder/TDecTop.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 76 76 xDeleteArray( m_adBaseViewShiftLUT, MAX_NUM_LAYERS, MAX_NUM_LAYERS, 2 ); 77 77 xDeleteArray( m_aiBaseViewShiftLUT, MAX_NUM_LAYERS, MAX_NUM_LAYERS, 2 ); 78 #if HHI_CAM_PARA_K0052 79 xDeleteArray( m_receivedIdc, m_vps->getNumViews() ); 80 #else 78 81 xDeleteArray( m_receivedIdc, m_uiMaxViewIndex + 1 ); 82 #endif 79 83 } 80 84 … … 91 95 m_firstReceivedPoc = -2; 92 96 97 #if HHI_CAM_PARA_K0052 98 for (Int i = 0; i <= vps->getMaxLayersMinus1(); i++) 99 { 100 Int curViewIdxInVps = m_vps->getVoiInVps( m_vps->getViewIndex( m_vps->getLayerIdInNuh( i ) ) ) ; 101 m_bCamParsVaryOverTime = m_bCamParsVaryOverTime || vps->getCpInSliceSegmentHeaderFlag( curViewIdxInVps ); 102 } 103 104 assert( m_receivedIdc == NULL ); 105 m_receivedIdc = new Int*[ m_vps->getNumViews() ]; 106 for (Int i = 0; i < m_vps->getNumViews(); i++) 107 { 108 m_receivedIdc[i] = new Int[ m_vps->getNumViews() ]; 109 } 110 111 xResetReceivedIdc( true ); 112 113 for (Int voiInVps = 0; voiInVps < m_vps->getNumViews(); voiInVps++ ) 114 { 115 if( !m_vps->getCpInSliceSegmentHeaderFlag( voiInVps ) ) 116 { 117 for (Int baseVoiInVps = 0; baseVoiInVps < m_vps->getNumViews(); baseVoiInVps++ ) 118 { 119 if( m_vps->getCpPresentFlag( voiInVps, baseVoiInVps ) ) 120 { 121 m_receivedIdc [ baseVoiInVps ][ voiInVps ] = -1; 122 m_aaiCodedScale [ baseVoiInVps ][ voiInVps ] = m_vps->getCodedScale (voiInVps) [ baseVoiInVps ]; 123 m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ] = m_vps->getCodedOffset (voiInVps) [ baseVoiInVps ]; 124 125 m_receivedIdc [ voiInVps ][ baseVoiInVps ] = -1; 126 m_aaiCodedScale [ voiInVps ][ baseVoiInVps ] = m_vps->getInvCodedScale (voiInVps) [ baseVoiInVps ]; 127 m_aaiCodedOffset[ voiInVps ][ baseVoiInVps ] = m_vps->getInvCodedOffset(voiInVps) [ baseVoiInVps ]; 128 xInitLUTs( baseVoiInVps, voiInVps, m_aaiCodedScale[ baseVoiInVps ][ voiInVps ], m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); 129 xInitLUTs( voiInVps, baseVoiInVps, m_aaiCodedScale[ voiInVps ][ baseVoiInVps ], m_aaiCodedOffset[ voiInVps ][ baseVoiInVps ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT ); 130 } 131 } 132 } 133 } 134 } 135 136 #else 93 137 m_uiMaxViewIndex = -1; 94 138 for (Int i = 0; i <= vps->getMaxLayersMinus1(); i++) … … 98 142 m_uiMaxViewIndex = std::max( m_uiMaxViewIndex, curViewIdx ) ; 99 143 } 100 101 144 assert( m_receivedIdc == NULL ); 102 145 m_receivedIdc = new Int*[ m_uiMaxViewIndex + 1]; … … 131 174 } 132 175 176 #endif 177 178 179 133 180 Void 134 181 CamParsCollector::xResetReceivedIdc( Bool overWriteFlag ) 135 182 { 183 #if HHI_CAM_PARA_K0052 184 for (Int i = 0; i < m_vps->getNumViews(); i++) 185 { 186 for (Int j = 0; j < m_vps->getNumViews(); j++) 187 { 188 #else 136 189 for (Int i = 0; i <= m_uiMaxViewIndex; i++) 137 190 { 138 191 for (Int j = 0; j <= m_uiMaxViewIndex; j++) 139 192 { 193 #endif 140 194 if ( overWriteFlag || ( m_receivedIdc[i][j] != -1 ) ) 141 195 { … … 178 232 CamParsCollector::xInitLUTs( UInt uiSourceView, UInt uiTargetView, Int iScale, Int iOffset, Double****& radLUT, Int****& raiLUT) 179 233 { 234 #if HHI_CAM_PARA_K0052 235 Int iLog2DivLuma = m_uiBitDepthForLUT + m_vps->getCpPrecision() + 1 - m_iLog2Precision; AOF( iLog2DivLuma > 0 ); 236 #else 180 237 Int iLog2DivLuma = m_uiBitDepthForLUT + m_vps->getCamParPrecision() + 1 - m_iLog2Precision; AOF( iLog2DivLuma > 0 ); 238 #endif 181 239 Int iLog2DivChroma = iLog2DivLuma + 1; 182 240 … … 255 313 } 256 314 315 #if HHI_CAM_PARA_K0052 316 UInt voiInVps = m_vps->getVoiInVps(pcSlice->getViewIndex()); 317 if( m_vps->getCpInSliceSegmentHeaderFlag( voiInVps ) ) // check consistency of slice parameters here 318 { 319 for( Int baseVoiInVps = 0; baseVoiInVps < m_vps->getNumViews(); baseVoiInVps++ ) 320 { 321 if ( m_vps->getCpPresentFlag( voiInVps, baseVoiInVps ) ) 322 { 323 if ( m_receivedIdc[ voiInVps ][ baseVoiInVps ] != 0 ) 324 { 325 AOF( m_aaiCodedScale [ voiInVps ][ baseVoiInVps ] == pcSlice->getInvCodedScale () [ baseVoiInVps ] ); 326 AOF( m_aaiCodedOffset[ voiInVps ][ baseVoiInVps ] == pcSlice->getInvCodedOffset() [ baseVoiInVps ] ); 327 } 328 else 329 { 330 m_receivedIdc [ voiInVps ][ baseVoiInVps ] = 1; 331 m_aaiCodedScale [ voiInVps ][ baseVoiInVps ] = pcSlice->getInvCodedScale () [ baseVoiInVps ]; 332 m_aaiCodedOffset[ voiInVps ][ baseVoiInVps ] = pcSlice->getInvCodedOffset() [ baseVoiInVps ]; 333 xInitLUTs( voiInVps, baseVoiInVps, m_aaiCodedScale[ voiInVps ][ baseVoiInVps ], m_aaiCodedOffset[ voiInVps ][ baseVoiInVps ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT); 334 } 335 if ( m_receivedIdc[ baseVoiInVps ][ voiInVps ] != 0 ) 336 { 337 AOF( m_aaiCodedScale [ baseVoiInVps ][ voiInVps ] == pcSlice->getCodedScale () [ baseVoiInVps ] ); 338 AOF( m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ] == pcSlice->getCodedOffset () [ baseVoiInVps ] ); 339 } 340 else 341 { 342 m_receivedIdc [ baseVoiInVps ][ voiInVps ] = 1; 343 m_aaiCodedScale [ baseVoiInVps ][ voiInVps ] = pcSlice->getCodedScale () [ baseVoiInVps ]; 344 m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ] = pcSlice->getCodedOffset () [ baseVoiInVps ]; 345 xInitLUTs( baseVoiInVps, voiInVps, m_aaiCodedScale[ baseVoiInVps ][ voiInVps ], m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT); 346 } 347 } 348 } 349 } 350 #else 257 351 UInt uiViewIndex = pcSlice->getViewIndex(); 258 352 if( m_vps->getCamParPresent( uiViewIndex ) ) … … 289 383 } 290 384 } 385 #endif 386 387 291 388 } 292 389 … … 311 408 if( iPOC == m_firstReceivedPoc ) 312 409 { 410 #if HHI_CAM_PARA_K0052 411 fprintf( m_pCodedScaleOffsetFile, "#ViewOrderIdx ViewIdVal\n" ); 412 fprintf( m_pCodedScaleOffsetFile, "#------------ -------------\n" ); 413 414 for( UInt voiInVps = 0; voiInVps < m_vps->getNumViews(); voiInVps++ ) 415 { 416 fprintf( m_pCodedScaleOffsetFile, "%13d %13d\n", m_vps->getViewOIdxList( voiInVps ), m_vps->getViewIdVal( m_vps->getViewOIdxList( voiInVps ) ) ); 417 } 418 fprintf( m_pCodedScaleOffsetFile, "\n\n"); 419 fprintf( m_pCodedScaleOffsetFile, "# StartFrame EndFrame TargetVOI BaseVOI CodedScale CodedOffset Precision\n" ); 420 fprintf( m_pCodedScaleOffsetFile, "#----------- ------------ ------------ ------------ ------------ ------------ ------------\n" ); 421 } 422 if( iPOC == m_firstReceivedPoc || m_bCamParsVaryOverTime ) 423 { 424 Int iS = iPOC; 425 Int iE = ( m_bCamParsVaryOverTime ? iPOC : ~( 1 << 31 ) ); 426 for( UInt voiInVps = 0; voiInVps < m_vps->getNumViews(); voiInVps++ ) 427 { 428 for( UInt baseVoiInVps = 0; baseVoiInVps < m_vps->getNumViews(); baseVoiInVps++ ) 429 { 430 if( voiInVps != baseVoiInVps ) 431 { 432 if ( m_receivedIdc[baseVoiInVps][voiInVps] != 0 ) 433 { 434 fprintf( m_pCodedScaleOffsetFile, "%12d %12d %12d %12d %12d %12d %12d\n", 435 iS, iE, m_vps->getViewOIdxList( voiInVps ), m_vps->getViewOIdxList( baseVoiInVps ), 436 m_aaiCodedScale [ baseVoiInVps ][ voiInVps ], 437 m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ], m_vps->getCpPrecision() ); 438 #else 313 439 fprintf( m_pCodedScaleOffsetFile, "# ViewIndex ViewId\n" ); 314 440 fprintf( m_pCodedScaleOffsetFile, "#----------- ------------\n" ); … … 325 451 Int iS = iPOC; 326 452 Int iE = ( m_bCamParsVaryOverTime ? iPOC : ~( 1 << 31 ) ); 453 #if HHI_CAM_PARA_K0052 454 for( UInt uiViewIndex = 0; uiViewIndex < m_vps->getNumViews(); uiViewIndex++ ) 455 { 456 for( UInt uiBaseIndex = 0; uiBaseIndex < m_vps->getNumViews(); uiBaseIndex++ ) 457 #else 327 458 for( UInt uiViewIndex = 0; uiViewIndex <= m_uiMaxViewIndex; uiViewIndex++ ) 328 459 { 329 460 for( UInt uiBaseIndex = 0; uiBaseIndex <= m_uiMaxViewIndex; uiBaseIndex++ ) 461 #endif 330 462 { 331 463 if( uiViewIndex != uiBaseIndex ) … … 333 465 if ( m_receivedIdc[uiBaseIndex][uiViewIndex] != 0 ) 334 466 { 467 #if HHI_CAM_PARA_K0052 468 fprintf( m_pCodedScaleOffsetFile, "%12d %12d %12d %12d %12d %12d %12d\n", 469 iS, iE, uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_vps->getCpPrecision() ); 470 #else 335 471 fprintf( m_pCodedScaleOffsetFile, "%12d %12d %12d %12d %12d %12d %12d\n", 336 472 iS, iE, uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_vps->getCamParPrecision() ); 473 #endif 474 #endif 337 475 } 338 476 } … … 417 555 #if !H_MV 418 556 initROM(); 557 #endif 558 #if H_3D_ANNEX_SELECTION_FIX 559 m_cCavlcDecoder.setDecTop( this ); 419 560 #endif 420 561 m_cGopDecoder.init( &m_cEntropyDecoder, &m_cSbacDecoder, &m_cBinCABAC, &m_cCavlcDecoder, &m_cSliceDecoder, &m_cLoopFilter, &m_cSAO ); … … 727 868 #endif 728 869 #if H_3D 870 #if !HHI_INTER_COMP_PRED_K0052 729 871 m_apcSlicePilot->init3dToolParameters(); 872 #endif 730 873 #endif 731 874 pps->setSPS(sps); … … 955 1098 xActivateParameterSets(); 956 1099 1100 #if SONY_MV_V_CONST_C0078 1101 //Check Multiview Main profile constraint in G.11.1.1 1102 // When ViewOrderIdx[ i ] derived according to any active VPS is equal to 1 1103 // for the layer with nuh_layer_id equal to i in subBitstream, 1104 // inter_view_mv_vert_constraint_flag shall be equal to 1 1105 // in the sps_multilayer_extension( ) syntax structure in each active SPS for that layer. 1106 if( m_apcSlicePilot->getSPS()->getPTL()->getGeneralPTL()->getProfileIdc()==Profile::MULTIVIEWMAIN 1107 && 1108 m_apcSlicePilot->getVPS()->getViewOrderIdx(m_apcSlicePilot->getVPS()->getLayerIdInNuh(getLayerId()))==1 1109 ) 1110 { 1111 assert( m_apcSlicePilot->getSPS()->getInterViewMvVertConstraintFlag()==1 ); 1112 } 1113 #endif 1114 957 1115 if (m_apcSlicePilot->isNextSlice()) 958 1116 { … … 1074 1232 #endif 1075 1233 #endif 1234 #if HHI_RES_PRED_K0052 1235 pcSlice->setIvPicLists( m_ivPicLists ); 1236 #endif 1237 1076 1238 if (bNextSlice) 1077 1239 { … … 1109 1271 1110 1272 #if H_3D 1273 #if !HHI_RES_PRED_K0052 1111 1274 pcSlice->setIvPicLists( m_ivPicLists ); 1275 #endif 1276 1277 #if HHI_INTER_COMP_PRED_K0052 1278 pcSlice->checkInCompPredRefLayers(); 1112 1279 #if H_3D_IV_MERGE 1113 1280 #if H_3D_FCO … … 1117 1284 #endif 1118 1285 #endif 1286 #else 1287 #if H_3D_IV_MERGE 1288 #if H_3D_FCO 1289 //assert( !getIsDepth() ); 1290 #else 1291 assert( !getIsDepth() || ( pcSlice->getTexturePic() != 0 ) ); 1292 #endif 1293 #endif 1294 #endif 1119 1295 #endif 1120 1296 #if H_MV -
trunk/source/Lib/TLibDecoder/TDecTop.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 97 97 TComVPS* m_vps; 98 98 Int** m_receivedIdc; 99 #if!HHI_CAM_PARA_K0052 99 100 Int m_uiMaxViewIndex; 101 #endif 100 102 Int m_lastPoc; 101 103 Int m_firstReceivedPoc; … … 243 245 CamParsCollector* m_pcCamParsCollector; 244 246 #endif 247 #if H_3D_ANNEX_SELECTION_FIX 248 Int m_profileIdc; 249 #endif 245 250 #endif 246 251 … … 301 306 Void setCamParsCollector( CamParsCollector* pcCamParsCollector ) { m_pcCamParsCollector = pcCamParsCollector; } 302 307 #endif 308 #if H_3D_ANNEX_SELECTION_FIX 309 Void setProfileIdc() 310 { 311 if (m_targetOptLayerSetIdx != -1 ) 312 { 313 TComVPS* vps = getPrefetchedVPS(); 314 Int lsIdx = vps->olsIdxToLsIdx( m_targetOptLayerSetIdx ); 315 Int lIdx = -1; 316 for (Int j = 0; j < vps->getNumLayersInIdList( lsIdx ); j++ ) 317 { 318 if ( vps->getLayerSetLayerIdList( lsIdx, j ) == getLayerId() ) 319 { 320 lIdx = j; 321 break; 322 } 323 } 324 assert( lIdx != -1 ); 325 326 Int profileIdc = vps->getPTL( vps->getProfileTierLevelIdx( m_targetOptLayerSetIdx, lIdx ) )->getGeneralPTL()->getProfileIdc(); 327 assert( profileIdc == 1 || profileIdc == 6 || profileIdc == 8 ); 328 m_profileIdc = profileIdc; 329 }; 330 } 331 Bool decProcAnnexI() { assert( m_profileIdc != -1 ); return ( m_profileIdc == 8); } 332 #endif 333 303 334 #endif 304 335 protected: -
trunk/source/Lib/TLibEncoder/AnnexBwrite.h
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/NALwrite.cpp
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/NALwrite.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/SEIwrite.cpp
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/SEIwrite.h
r884 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/SyntaxElementWriter.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 49 49 if( g_HLSTraceEnable ) 50 50 { 51 #if H_MV_ENC_DEC_TRAC 52 if ( !g_disableNumbering ) 53 { 54 #endif 51 55 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 56 #if H_MV_ENC_DEC_TRAC 57 } 58 #endif 59 52 60 if( length<10 ) 53 61 { … … 66 74 if( g_HLSTraceEnable ) 67 75 { 76 #if H_MV_ENC_DEC_TRAC 77 if ( !g_disableNumbering ) 78 { 79 #endif 68 80 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 81 #if H_MV_ENC_DEC_TRAC 82 } 83 #endif 84 69 85 fprintf( g_hTrace, "%-50s ue(v) : %d\n", pSymbolName, value ); 70 86 } … … 76 92 if( g_HLSTraceEnable ) 77 93 { 94 #if H_MV_ENC_DEC_TRAC 95 if ( !g_disableNumbering ) 96 { 97 #endif 78 98 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 99 #if H_MV_ENC_DEC_TRAC 100 } 101 #endif 102 79 103 fprintf( g_hTrace, "%-50s se(v) : %d\n", pSymbolName, value ); 80 104 } … … 86 110 if( g_HLSTraceEnable ) 87 111 { 112 #if H_MV_ENC_DEC_TRAC 113 if ( !g_disableNumbering ) 114 { 115 #endif 88 116 fprintf( g_hTrace, "%8lld ", g_nSymbolCounter++ ); 117 #if H_MV_ENC_DEC_TRAC 118 } 119 #endif 89 120 fprintf( g_hTrace, "%-50s u(1) : %d\n", pSymbolName, value ); 90 121 } -
trunk/source/Lib/TLibEncoder/SyntaxElementWriter.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncAnalyze.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncAnalyze.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncBinCoder.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncBinCoderCABAC.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncBinCoderCABAC.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncBinCoderCABACCounter.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncBinCoderCABACCounter.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 40 40 #include "SEIwrite.h" 41 41 #include "../TLibCommon/TypeDef.h" 42 42 #if H_3D_ANNEX_SELECTION_FIX 43 #include "TEncTop.h" 44 #endif 43 45 //! \ingroup TLibEncoder 44 46 //! \{ 47 45 48 46 49 #if ENC_DEC_TRACE … … 678 681 #endif 679 682 WRITE_UVLC( pcSPS->getChromaFormatIdc (), "chroma_format_idc" ); 683 #if !H_3D_DISABLE_CHROMA 680 684 assert(pcSPS->getChromaFormatIdc () == 1); 685 #endif 681 686 // in the first version chroma_format_idc can only be equal to 1 (4:2:0) 682 687 if( pcSPS->getChromaFormatIdc () == 3 ) … … 857 862 WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag( ) ? 1 : 0 , "poc_reset_info_present_flag" ); 858 863 WRITE_FLAG( pcPPS->getPpsInferScalingListFlag( ) ? 1 : 0 , "pps_infer_scaling_list_flag" ); 864 #if FIX_TICKET_95 865 if (pcPPS->getPpsInferScalingListFlag()) 866 { 867 WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" ); 868 } 869 #else 859 870 WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" ); 871 #endif 860 872 WRITE_UVLC( 0, "num_ref_loc_offsets" ); 861 873 WRITE_FLAG( 0 , "colour_mapping_enabled_flag" ); … … 889 901 WRITE_FLAG( sps3dExt->getQtPredFlag( d ) ? 1 : 0 , "qt_pred_flag" ); 890 902 WRITE_FLAG( sps3dExt->getInterSdcFlag( d ) ? 1 : 0 , "inter_sdc_flag" ); 903 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 904 WRITE_FLAG( sps3dExt->getDepthIntraSkipFlag( d ) ? 1 : 0 , "intra_skip_flag" ); 905 #else 891 906 WRITE_FLAG( sps3dExt->getIntraSingleFlag( d ) ? 1 : 0 , "intra_single_flag" ); 907 #endif 892 908 } 893 909 } … … 1365 1381 if ( pcRepFormat->getChromaAndBitDepthVpsPresentFlag() ) 1366 1382 { 1367 WRITE_CODE( pcRepFormat->getChromaFormatVpsIdc( ), 2, "chroma_format_vps_idc" );1368 1369 if ( pcRepFormat->getChromaFormatVpsIdc() == 3 )1370 {1371 WRITE_FLAG( pcRepFormat->getSeparateColourPlaneVpsFlag( ) ? 1 : 0 , "separate_colour_plane_vps_flag" );1372 }1373 WRITE_CODE( pcRepFormat->getBitDepthVpsLumaMinus8( ), 4, "bit_depth_vps_luma_minus8" );1374 WRITE_CODE( pcRepFormat->getBitDepthVpsChromaMinus8( ), 4, "bit_depth_vps_chroma_minus8" );1383 WRITE_CODE( pcRepFormat->getChromaFormatVpsIdc( ), 2, "chroma_format_vps_idc" ); 1384 1385 if ( pcRepFormat->getChromaFormatVpsIdc() == 3 ) 1386 { 1387 WRITE_FLAG( pcRepFormat->getSeparateColourPlaneVpsFlag( ) ? 1 : 0 , "separate_colour_plane_vps_flag" ); 1388 } 1389 WRITE_CODE( pcRepFormat->getBitDepthVpsLumaMinus8( ), 4, "bit_depth_vps_luma_minus8" ); 1390 WRITE_CODE( pcRepFormat->getBitDepthVpsChromaMinus8( ), 4, "bit_depth_vps_chroma_minus8" ); 1375 1391 } 1376 1392 else … … 1598 1614 Void TEncCavlc::codeVPS3dExtension( TComVPS* pcVPS ) 1599 1615 { 1616 #if HHI_CAM_PARA_K0052 1617 WRITE_UVLC( pcVPS->getCpPrecision( ), "cp_precision" ); 1618 for (Int n = 1; n < pcVPS->getNumViews(); n++) 1619 { 1620 Int i = pcVPS->getViewOIdxList( n ); 1621 Int iInVps = pcVPS->getVoiInVps( i ); 1622 WRITE_CODE( pcVPS->getNumCp( iInVps ), 6, "num_cp" ); 1623 1624 if( pcVPS->getNumCp( iInVps ) > 0 ) 1625 { 1626 WRITE_FLAG( pcVPS->getCpInSliceSegmentHeaderFlag( iInVps ) ? 1 : 0 , "cp_in_slice_segment_header_flag" ); 1627 for( Int m = 0; m < pcVPS->getNumCp( iInVps ); m++ ) 1628 { 1629 WRITE_UVLC( pcVPS->getCpRefVoi( iInVps, m ), "cp_ref_voi" ); 1630 if( !pcVPS->getCpInSliceSegmentHeaderFlag( iInVps ) ) 1631 { 1632 Int j = pcVPS->getCpRefVoi( iInVps, m ); 1633 Int jInVps = pcVPS->getVoiInVps( j ); 1634 WRITE_SVLC( pcVPS->getVpsCpScale ( iInVps, jInVps ), "vps_cp_scale" ); 1635 WRITE_SVLC( pcVPS->getVpsCpOff ( iInVps, jInVps ), "vps_cp_off" ); 1636 WRITE_SVLC( pcVPS->getVpsCpInvScale( iInVps, jInVps ) + pcVPS->getVpsCpScale( iInVps, jInVps ), "vps_cp_inv_scale_plus_scale" ); 1637 WRITE_SVLC( pcVPS->getVpsCpInvOff ( iInVps, jInVps ) + pcVPS->getVpsCpOff ( iInVps, jInVps ), "vps_cp_inv_off_plus_off" ); 1638 } 1639 } 1640 } 1641 } 1642 #else 1600 1643 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" ); 1601 1644 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++) … … 1617 1660 } 1618 1661 } 1662 #endif 1619 1663 } 1620 1664 #endif … … 1721 1765 1722 1766 // in the first version chroma_format_idc is equal to one, thus colour_plane_id will not be present 1767 #if H_3D_DISABLE_CHROMA 1768 assert (pcSlice->getSPS()->getChromaFormatIdc() == 1 || pcSlice->getIsDepth() ); 1769 assert (pcSlice->getSPS()->getChromaFormatIdc() == 0 || !pcSlice->getIsDepth() ); 1770 #else 1723 1771 assert (pcSlice->getSPS()->getChromaFormatIdc() == 1 ); 1772 #endif 1724 1773 // if( separate_colour_plane_flag == 1 ) 1725 1774 // colour_plane_id u(2) … … 1895 1944 } 1896 1945 #endif 1946 1947 #if HHI_INTER_COMP_PRED_K0052 1948 #if H_3D 1949 if( getEncTop()->decProcAnnexI() ) 1950 { 1951 if ( pcSlice->getInCmpPredAvailFlag() ) 1952 { 1953 WRITE_FLAG( pcSlice->getInCompPredFlag(), "in_comp_pred_flag" ); 1954 } 1955 } 1956 #endif 1957 #endif 1897 1958 if(pcSlice->getSPS()->getUseSAO()) 1898 1959 { … … 1900 1961 { 1901 1962 WRITE_FLAG( pcSlice->getSaoEnabledFlag(), "slice_sao_luma_flag" ); 1963 #if H_3D_DISABLE_CHROMA 1964 if ( !pcSlice->getIsDepth() ) 1965 { 1902 1966 WRITE_FLAG( pcSlice->getSaoEnabledFlagChroma(), "slice_sao_chroma_flag" ); 1967 } 1968 #else 1969 WRITE_FLAG( pcSlice->getSaoEnabledFlagChroma(), "slice_sao_chroma_flag" ); 1970 #endif 1903 1971 } 1904 1972 } … … 2018 2086 } 2019 2087 #if H_3D_IC 2088 #if H_3D_ANNEX_SELECTION_FIX 2089 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) 2090 && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 2091 && getEncTop()->decProcAnnexI() 2092 ) 2093 #else 2020 2094 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 ) 2095 #endif 2021 2096 { 2022 2097 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); … … 2073 2148 WRITE_FLAG(pcSlice->getLFCrossSliceBoundaryFlag()?1:0, "slice_loop_filter_across_slices_enabled_flag"); 2074 2149 } 2075 } 2150 #if HHI_CAM_PARA_K0052 2151 #if H_3D 2152 if (getEncTop()->decProcAnnexI() ) 2153 { 2154 Int voiInVps = vps->getVoiInVps( pcSlice->getViewIndex() ); 2155 if( vps->getCpInSliceSegmentHeaderFlag( voiInVps ) && !pcSlice->getIsDepth() ) 2156 { 2157 for( Int m = 0; m < vps->getNumCp( voiInVps ); m++ ) 2158 { 2159 Int jInVps = vps->getVoiInVps( vps->getCpRefVoi( voiInVps, m )); 2160 WRITE_SVLC( pcSlice->getCpScale ( jInVps ) , "cp_scale" ); 2161 WRITE_SVLC( pcSlice->getCpOff ( jInVps ) , "cp_off" ); 2162 WRITE_SVLC( pcSlice->getCpInvScale( jInVps ) + pcSlice->getCpScale( jInVps ) , "cp_inv_scale_plus_scale" ); 2163 WRITE_SVLC( pcSlice->getCpInvOff ( jInVps ) + pcSlice->getCpOff ( jInVps ) , "cp_inv_off_plus_off" ); 2164 } 2165 } 2166 } 2167 #endif 2168 #endif 2169 } 2170 2171 #if !HHI_CAM_PARA_K0052 2076 2172 #if H_3D 2077 2173 #if H_3D_FCO … … 2089 2185 } 2090 2186 } 2187 #endif 2091 2188 #endif 2092 2189 … … 2435 2532 assert(0); 2436 2533 } 2534 2535 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2536 Void TEncCavlc::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2537 { 2538 assert(0); 2539 } 2540 #else 2437 2541 #if H_3D_SINGLE_DEPTH 2438 2542 Void TEncCavlc::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ) … … 2441 2545 } 2442 2546 #endif 2547 #endif 2548 2443 2549 Void TEncCavlc::codeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2444 2550 { … … 2544 2650 { 2545 2651 wpScalingParam *wp; 2652 #if H_3D_DISABLE_CHROMA 2653 Bool bChroma = !pcSlice->getIsDepth(); // color always present in HEVC ? 2654 #else 2546 2655 Bool bChroma = true; // color always present in HEVC ? 2656 #endif 2547 2657 Int iNbRef = (pcSlice->getSliceType() == B_SLICE ) ? (2) : (1); 2548 2658 Bool bDenomCoded = false; -
trunk/source/Lib/TLibEncoder/TEncCavlc.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 68 68 TComSlice* m_pcSlice; 69 69 UInt m_uiCoeffCost; 70 70 #if H_3D_ANNEX_SELECTION_FIX 71 TEncTop* m_encTop; 72 #endif 71 73 Void codeShortTermRefPicSet ( TComSPS* pcSPS, TComReferencePictureSet* pcRPS, Bool calledFromSliceHeader, Int idx ); 72 74 Bool findMatchingLTRP ( TComSlice* pcSlice, UInt *ltrpsIndex, Int ltrpPOC, Bool usedFlag ); … … 127 129 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 128 130 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 131 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 132 Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 133 #else 129 134 #if H_3D_SINGLE_DEPTH 130 135 Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ); 136 #endif 131 137 #endif 132 138 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); … … 181 187 Void codeDFFlag ( UInt uiCode, const Char *pSymbolName ); 182 188 Void codeDFSvlc ( Int iCode, const Char *pSymbolName ); 183 189 #if H_3D_ANNEX_SELECTION_FIX 190 TEncTop* getEncTop() { return m_encTop; }; 191 Void setEncTop( TEncTop* et ) { m_encTop = et; }; 192 #endif 184 193 }; 185 194 -
trunk/source/Lib/TLibEncoder/TEncCfg.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 78 78 Int m_interViewRefPosL[2][MAX_NUM_REF_PICS]; 79 79 #endif 80 #if HHI_INTER_COMP_PRED_K0052 81 Bool m_interCompPredFlag; 82 #endif 80 83 GOPEntry() 81 84 : m_POC(-1) … … 95 98 , m_numActiveRefLayerPics(0) 96 99 #endif 100 #if HHI_INTER_COMP_PRED_K0052 101 #if H_3D 102 , m_interCompPredFlag(false) 103 #endif 104 #endif 97 105 { 98 106 ::memset( m_referencePics, 0, sizeof(m_referencePics) ); … … 180 188 Int m_iSearchRange; // 0:Full frame 181 189 Int m_bipredSearchRange; 182 190 #if SONY_MV_V_CONST_C0078 191 Bool m_bUseDisparitySearchRangeRestriction; 192 Int m_iVerticalDisparitySearchRange; 193 #endif 183 194 //====== Quality control ======== 184 195 Int m_iMaxDeltaQP; // Max. absolute delta QP (1:default) … … 369 380 370 381 //====== Camera Parameters ====== 382 #if !HHI_CAM_PARA_K0052 371 383 UInt m_uiCamParPrecision; 372 384 Bool m_bCamParInSliceHeader; 373 385 Int** m_aaiCodedScale; 374 386 Int** m_aaiCodedOffset; 387 #endif 375 388 TAppComCamPara* m_cameraParameters; 376 389 … … 405 418 Bool m_bUseQTL; 406 419 #endif 420 #if H_3D_ANNEX_SELECTION_FIX 421 Int m_profileIdc; 422 #endif 423 407 424 #endif 408 425 public: … … 418 435 , m_isDepth(false) 419 436 , m_bUseVSO(false) 437 #if H_3D_ANNEX_SELECTION_FIX 438 , m_profileIdc( -1 ) 439 #endif 420 440 #endif 421 441 #endif … … 502 522 Void setSearchRange ( Int i ) { m_iSearchRange = i; } 503 523 Void setBipredSearchRange ( Int i ) { m_bipredSearchRange = i; } 524 #if SONY_MV_V_CONST_C0078 525 Void setUseDisparitySearchRangeRestriction ( Bool b ) { m_bUseDisparitySearchRangeRestriction = b; } 526 Void setVerticalDisparitySearchRange ( Int i ) { m_iVerticalDisparitySearchRange = i; } 527 #endif 504 528 505 529 //====== Quality control ======== … … 554 578 Int getFastSearch () { return m_iFastSearch; } 555 579 Int getSearchRange () { return m_iSearchRange; } 580 #if SONY_MV_V_CONST_C0078 581 Bool getUseDisparitySearchRangeRestriction () { return m_bUseDisparitySearchRangeRestriction; } 582 Int getVerticalDisparitySearchRange () { return m_iVerticalDisparitySearchRange; } 583 #endif 556 584 557 585 //==== Quality control ======== … … 895 923 896 924 //==== CAMERA PARAMETERS ========== 925 #if !HHI_CAM_PARA_K0052 897 926 Void setCamParPrecision ( UInt u ) { m_uiCamParPrecision = u; } 898 927 Void setCamParInSliceHeader ( Bool b ) { m_bCamParInSliceHeader = b; } 899 928 Void setCodedScale ( Int** p ) { m_aaiCodedScale = p; } 900 929 Void setCodedOffset ( Int** p ) { m_aaiCodedOffset = p; } 930 #endif 901 931 Void setCameraParameters ( TAppComCamPara* c) { m_cameraParameters = c; } 902 932 … … 946 976 Bool getUseQTL () { return m_bUseQTL; } 947 977 #endif 978 #if H_3D_ANNEX_SELECTION_FIX 979 Void setProfileIdc( Int a ) { assert( a == 1 || a == 6 || a == 8 ); m_profileIdc = a; } 980 Bool decProcAnnexI() { assert( m_profileIdc != -1 ); return ( m_profileIdc == 8); } 981 #endif 982 948 983 #endif // H_3D 949 984 }; -
trunk/source/Lib/TLibEncoder/TEncCu.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 275 275 m_ppcTempCU[0]->initCU( rpcCU->getPic(), rpcCU->getAddr() ); 276 276 277 #if H_3D_DISABLE_CHROMA 278 m_ppcWeightedTempCU[0]->initCU( rpcCU->getPic(), rpcCU->getAddr() ); 279 #endif 280 277 281 #if KWU_RC_MADPRED_E0227 278 282 m_LCUPredictionSAD = 0; … … 437 441 #if H_3D_VSP 438 442 DisInfo DvInfo; 443 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 439 444 DvInfo.bDV = false; 445 #endif 440 446 DvInfo.m_acNBDV.setZero(); 441 447 DvInfo.m_aVIdxCan = 0; … … 583 589 if (rpcTempCU->getSlice()->getIsDepth() ) 584 590 { 591 #if SEC_ARP_REM_ENC_RESTRICT_K0035 592 rpcTempCU->getDispforDepth(0, 0, &DvInfo); 593 #else 585 594 DvInfo.bDV = rpcTempCU->getDispforDepth(0, 0, &DvInfo); 595 #endif 586 596 } 587 597 else … … 590 600 #if H_3D_NBDV_REF 591 601 if( rpcTempCU->getSlice()->getDepthRefinementFlag() ) 602 #if SEC_ARP_REM_ENC_RESTRICT_K0035 603 rpcTempCU->getDisMvpCandNBDV(&DvInfo, true); 604 #else 592 605 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo, true); 606 #endif 593 607 else 594 608 #endif 609 #if SEC_ARP_REM_ENC_RESTRICT_K0035 610 rpcTempCU->getDisMvpCandNBDV(&DvInfo); 611 #else 595 612 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo); 613 #endif 596 614 597 615 #if H_3D_IV_MERGE … … 712 730 } 713 731 #endif 732 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 733 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 734 if( rpcBestCU->getSlice()->getDepthIntraSkipFlag() ) 735 { 736 xCheckRDCostDIS( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); 737 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 738 } 739 #else 714 740 #if H_3D_SINGLE_DEPTH 715 741 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); … … 719 745 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 720 746 } 747 #endif 721 748 #endif 722 749 if(!earlyDetectionSkipMode) … … 1226 1253 TComDataCU* pcSubTempPartCU = m_ppcTempCU[uhNextDepth]; 1227 1254 1255 #if H_3D_DISABLE_CHROMA 1256 m_ppcWeightedTempCU[uhNextDepth]->setSlice( m_ppcWeightedTempCU[ uiDepth]->getSlice()); 1257 #endif 1228 1258 for ( UInt uiPartUnitIdx = 0; uiPartUnitIdx < 4; uiPartUnitIdx++ ) 1229 1259 { … … 1577 1607 return; 1578 1608 } 1609 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1610 m_pcEntropyCoder->encodeDIS( pcCU, uiAbsPartIdx ); 1611 if(!pcCU->getDISFlag(uiAbsPartIdx)) 1612 { 1613 #else 1579 1614 #if H_3D_SINGLE_DEPTH 1580 1615 m_pcEntropyCoder->encodeSingleDepthMode( pcCU, uiAbsPartIdx ); … … 1582 1617 { 1583 1618 #endif 1619 #endif 1584 1620 m_pcEntropyCoder->encodePredMode( pcCU, uiAbsPartIdx ); 1585 1621 1586 1622 m_pcEntropyCoder->encodePartSize( pcCU, uiAbsPartIdx, uiDepth ); 1587 1623 1624 #if !HHI_MOVE_SYN_K0052 1588 1625 #if H_3D_DIM_SDC 1589 1626 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1590 1627 #endif 1628 #endif 1591 1629 if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) 1592 1630 { 1593 1631 m_pcEntropyCoder->encodeIPCMInfo( pcCU, uiAbsPartIdx ); 1594 1595 1632 if(pcCU->getIPCMFlag(uiAbsPartIdx)) 1596 1633 { 1634 #if HHI_MOVE_SYN_K0052 1635 #if H_3D_DIM_SDC 1636 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1637 #endif 1638 #endif 1597 1639 // Encode slice finish 1598 1640 finishCU(pcCU,uiAbsPartIdx,uiDepth); … … 1603 1645 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1604 1646 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1605 1647 #if HHI_MOVE_SYN_K0052 1648 m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx ); 1649 #if H_3D_DIM_SDC 1650 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1651 #endif 1652 #endif 1606 1653 #if H_3D_ARP 1607 1654 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); … … 1612 1659 // Encode Coefficients 1613 1660 Bool bCodeDQP = getdQPFlag(); 1661 #if H_3D_DISABLE_CHROMA 1662 m_pcEntropyCoder->encodeCoeff( pcCU, uiAbsPartIdx, uiDepth, pcCU->getWidth (uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), bCodeDQP, false ); 1663 #else 1614 1664 m_pcEntropyCoder->encodeCoeff( pcCU, uiAbsPartIdx, uiDepth, pcCU->getWidth (uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), bCodeDQP ); 1665 #endif 1615 1666 setdQPFlag( bCodeDQP ); 1667 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1668 } 1669 #else 1616 1670 #if H_3D_SINGLE_DEPTH 1617 1671 } 1672 #endif 1618 1673 #endif 1619 1674 // --- write terminating bit --- … … 1834 1889 #if H_3D_ARP 1835 1890 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 1891 #if SEC_ARP_REM_ENC_RESTRICT_K0035 1892 if( nARPWMax < 0 || bICFlag ) 1893 #else 1836 1894 if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag ) 1895 #endif 1837 1896 { 1838 1897 nARPWMax = 0; … … 2000 2059 2001 2060 rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth ); 2061 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2062 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2063 #else 2002 2064 #if H_3D_SINGLE_DEPTH 2003 2065 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2066 #endif 2004 2067 #endif 2005 2068 #if H_3D_VSP // possible bug fix … … 2042 2105 } 2043 2106 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2107 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2108 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2109 #else 2044 2110 #if H_3D_SINGLE_DEPTH 2045 2111 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2112 #endif 2046 2113 #endif 2047 2114 rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth ); … … 2166 2233 Bool bFirstTime = true; 2167 2234 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 2168 2235 #if SEC_ARP_REM_ENC_RESTRICT_K0035 2236 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || rpcTempCU->getICFlag(0) ) 2237 #else 2169 2238 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) ) 2239 #endif 2170 2240 { 2171 2241 nARPWMax = 0; … … 2193 2263 2194 2264 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2265 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2266 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2267 #else 2195 2268 #if H_3D_SINGLE_DEPTH 2196 2269 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2270 #endif 2197 2271 #endif 2198 2272 rpcTempCU->setPartSizeSubParts ( ePartSize, 0, uhDepth ); … … 2303 2377 } 2304 2378 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2379 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2380 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2381 #else 2305 2382 #if H_3D_SINGLE_DEPTH 2306 2383 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2384 #endif 2307 2385 #endif 2308 2386 rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth ); … … 2413 2491 } 2414 2492 } 2493 2494 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2495 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2496 { 2497 UInt uiDepth = rpcTempCU->getDepth( 0 ); 2498 if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N)) 2499 { 2500 return; 2501 } 2502 2503 #if H_3D_VSO // M5 2504 if( m_pcRdCost->getUseRenModel() ) 2505 { 2506 UInt uiWidth = m_ppcOrigYuv[uiDepth]->getWidth (); 2507 UInt uiHeight = m_ppcOrigYuv[uiDepth]->getHeight (); 2508 Pel* piSrc = m_ppcOrigYuv[uiDepth]->getLumaAddr(); 2509 UInt uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride (); 2510 m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight ); 2511 } 2512 #endif 2513 2514 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2515 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 2516 rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth ); 2517 rpcTempCU->setCUTransquantBypassSubParts( rpcTempCU->getCUTransquantBypass(0), 0, uiDepth ); 2518 2519 rpcTempCU->setTrIdxSubParts(0, 0, uiDepth); 2520 rpcTempCU->setCbfSubParts(0, 1, 1, 0, uiDepth); 2521 rpcTempCU->setDISFlagSubParts(true, 0, uiDepth); 2522 rpcTempCU->setLumaIntraDirSubParts (DC_IDX, 0, uiDepth); 2523 #if H_3D_DIM_SDC 2524 rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth); 2525 #endif 2526 2527 UInt uiPreCalcDistC; 2528 m_pcPredSearch ->estIntraPredDIS ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, false ); 2529 2530 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 2531 Int oldTraceCopyBack = g_traceCopyBack; 2532 g_traceCopyBack = false; 2533 #endif 2534 m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() ); 2535 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 2536 g_traceCopyBack = oldTraceCopyBack; 2537 #endif 2538 2539 2540 m_pcEntropyCoder->resetBits(); 2541 if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag()) 2542 { 2543 m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0, true ); 2544 } 2545 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2546 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2547 2548 2549 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]); 2550 2551 rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits(); 2552 rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded(); 2553 2554 2555 #if H_3D_VSO // M6 2556 if( m_pcRdCost->getUseLambdaScaleVSO()) 2557 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCostVSO( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 2558 else 2559 #endif 2560 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() ); 2561 2562 2563 xCheckDQP( rpcTempCU ); 2564 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2565 } 2566 #else 2415 2567 #if H_3D_SINGLE_DEPTH 2416 2568 Void TEncCu::xCheckRDCostSingleDepth( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) … … 2480 2632 } 2481 2633 #endif 2634 #endif 2482 2635 2483 2636 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) … … 2522 2675 AOF( uiDepthStride != 0 ); 2523 2676 2677 #if HS_DBBP_CLEAN_K0048 2678 PartSize eVirtualPartSize = m_pcPredSearch->getPartitionSizeFromDepth(pDepthPels, uiDepthStride, uiWidth, rpcTempCU); 2679 2524 2680 // derive partitioning from depth 2681 Bool pMask[MAX_CU_SIZE*MAX_CU_SIZE]; 2682 Bool bValidMask = m_pcPredSearch->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, uiWidth, uiHeight, pMask, rpcTempCU); 2683 #else 2525 2684 PartSize eVirtualPartSize = m_pcPredSearch->getPartitionSizeFromDepth(pDepthPels, uiDepthStride, uiWidth); 2526 2685 … … 2528 2687 Bool pMask[MAX_CU_SIZE*MAX_CU_SIZE]; 2529 2688 Bool bValidMask = m_pcPredSearch->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, uiWidth, uiHeight, pMask); 2689 #endif 2530 2690 2531 2691 if( !bValidMask ) … … 2636 2796 2637 2797 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2798 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2799 rpcTempCU->setDISFlagSubParts( false, 0, uiDepth ); 2800 #else 2638 2801 #if H_3D_SINGLE_DEPTH 2639 2802 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth ); 2803 #endif 2640 2804 #endif 2641 2805 rpcTempCU->setPartSizeSubParts( eSize, 0, uiDepth ); … … 2656 2820 2657 2821 #if H_3D_DIM_SDC 2822 #if 0 // H_3D_DISABLE_CHROMA 2823 if( !rpcTempCU->getSDCFlag( 0 ) && !rpcTempCU->getSlice()->getIsDepth() ) 2824 #else 2658 2825 if( !rpcTempCU->getSDCFlag( 0 ) ) 2826 #endif 2659 2827 #endif 2660 2828 m_pcPredSearch ->estIntraPredChromaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC ); … … 2666 2834 } 2667 2835 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2836 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2837 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2838 if(!rpcTempCU->getDISFlag(0)) 2839 { 2840 #else 2668 2841 #if H_3D_SINGLE_DEPTH 2669 2842 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true ); … … 2671 2844 { 2672 2845 #endif 2846 #endif 2673 2847 m_pcEntropyCoder->encodePredMode( rpcTempCU, 0, true ); 2674 2848 m_pcEntropyCoder->encodePartSize( rpcTempCU, 0, uiDepth, true ); 2849 #if !HHI_MOVE_SYN_K0052 2675 2850 #if H_3D_DIM_SDC 2676 2851 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2677 2852 #endif 2853 #endif 2678 2854 m_pcEntropyCoder->encodePredInfo( rpcTempCU, 0, true ); 2679 2855 m_pcEntropyCoder->encodeIPCMInfo(rpcTempCU, 0, true ); 2856 #if HHI_MOVE_SYN_K0052 2857 #if H_3D_DIM_SDC 2858 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2859 #endif 2860 #endif 2680 2861 2681 2862 // Encode Coefficients 2682 2863 Bool bCodeDQP = getdQPFlag(); 2864 #if H_3D_DISABLE_CHROMA 2865 m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, rpcTempCU->getWidth (0), rpcTempCU->getHeight(0), bCodeDQP, true ); 2866 #else 2683 2867 m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, rpcTempCU->getWidth (0), rpcTempCU->getHeight(0), bCodeDQP ); 2868 #endif 2869 2870 2684 2871 setdQPFlag( bCodeDQP ); 2872 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2873 } 2874 #else 2685 2875 #if H_3D_SINGLE_DEPTH 2686 2876 } 2687 #endif 2877 #endif 2878 #endif 2688 2879 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]); 2689 2880 … … 2713 2904 2714 2905 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2906 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2907 rpcTempCU->setDISFlagSubParts( false, 0, uiDepth ); 2908 #else 2715 2909 #if H_3D_SINGLE_DEPTH 2716 2910 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth ); 2911 #endif 2717 2912 #endif 2718 2913 rpcTempCU->setIPCMFlag(0, true); … … 2732 2927 } 2733 2928 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2929 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2930 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2931 #else 2734 2932 #if H_3D_SINGLE_DEPTH 2735 2933 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true ); 2736 2934 #endif 2935 #endif 2737 2936 m_pcEntropyCoder->encodePredMode ( rpcTempCU, 0, true ); 2738 2937 m_pcEntropyCoder->encodePartSize ( rpcTempCU, 0, uiDepth, true ); 2938 #if !HHI_MOVE_SYN_K0052 2739 2939 #if H_3D_DIM_SDC 2740 2940 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2741 2941 #endif 2942 #endif 2742 2943 m_pcEntropyCoder->encodeIPCMInfo ( rpcTempCU, 0, true ); 2743 2944 #if HHI_MOVE_SYN_K0052 2945 #if H_3D_DIM_SDC 2946 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2947 #endif 2948 #endif 2744 2949 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]); 2745 2950 -
trunk/source/Lib/TLibEncoder/TEncCu.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 159 159 Void xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false ); 160 160 #endif 161 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 162 Void xCheckRDCostDIS ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 163 #else 161 164 #if H_3D_SINGLE_DEPTH 162 165 Void xCheckRDCostSingleDepth ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 166 #endif 163 167 #endif 164 168 #if H_3D_DIM -
trunk/source/Lib/TLibEncoder/TEncEntropy.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 111 111 m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx ); 112 112 } 113 114 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 115 Void TEncEntropy::encodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 116 { 117 if ( !pcCU->getSlice()->getIsDepth() ) 118 { 119 return; 120 } 121 if( bRD ) 122 { 123 uiAbsPartIdx = 0; 124 } 125 m_pcEntropyCoderIf->codeDIS( pcCU, uiAbsPartIdx ); 126 } 127 #else 113 128 #if H_3D_SINGLE_DEPTH 114 129 Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) … … 125 140 } 126 141 #endif 142 #endif 143 127 144 /** encode merge flag 128 145 * \param pcCU … … 254 271 m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth ); 255 272 273 #if !HHI_MOVE_SYN_K0052 256 274 #if H_3D_DBBP 257 275 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) … … 259 277 encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD); 260 278 } 279 #endif 261 280 #endif 262 281 } … … 285 304 } 286 305 306 #if H_3D_DISABLE_CHROMA 307 Void TEncEntropy::xEncodeTransform( TComDataCU* pcCU,UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP, Bool rd ) 308 #else 287 309 Void TEncEntropy::xEncodeTransform( TComDataCU* pcCU,UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP ) 288 { 310 #endif 311 { 312 313 #if H_MV_ENC_DEC_TRAC 314 #if ENC_DEC_TRACE 315 UInt uiLPelX = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ]; 316 UInt uiTPelY = pcCU->getCUPelY() + g_auiRasterToPelY[ g_auiZscanToRaster[uiAbsPartIdx] ]; 317 318 DTRACE_TU_S("=========== transform_tree ===========\n") 319 DTRACE_TU("x0", uiLPelX) 320 DTRACE_TU("x1", uiTPelY) 321 DTRACE_TU("log2TrafoSize", g_uiMaxCUWidth>>uiDepth) 322 DTRACE_TU("trafoDepth" , uiDepth) 323 #endif 324 #endif 325 289 326 const UInt uiSubdiv = pcCU->getTransformIdx( uiAbsPartIdx ) + pcCU->getDepth( uiAbsPartIdx ) > uiDepth; 290 327 const UInt uiLog2TrafoSize = g_aucConvertToBit[pcCU->getSlice()->getSPS()->getMaxCUWidth()]+2 - uiDepth; … … 292 329 UInt cbfU = pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrIdx ); 293 330 UInt cbfV = pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrIdx ); 294 331 #if H_3D_DISABLE_CHROMA 332 if( !rd && pcCU->getSlice()->getSPS()->getChromaFormatIdc() == 0 ) 333 { 334 cbfU = 0; 335 cbfV = 0; 336 } 337 #endif 295 338 if(uiTrIdx==0) 296 339 { … … 309 352 cbfU = pcCU->getCbf( m_uiBakAbsPartIdx, TEXT_CHROMA_U, uiTrIdx ); 310 353 cbfV = pcCU->getCbf( m_uiBakAbsPartIdx, TEXT_CHROMA_V, uiTrIdx ); 354 #if H_3D_DISABLE_CHROMA 355 if( !rd && pcCU->getSlice()->getSPS()->getChromaFormatIdc() == 0 ) 356 { 357 cbfU = 0; 358 cbfV = 0; 359 } 360 #endif 311 361 } 312 362 } … … 349 399 if( bFirstCbfOfCU || uiLog2TrafoSize > 2 ) 350 400 { 401 #if H_3D_DISABLE_CHROMA 402 if (pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 || rd) 403 { 404 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr - 1 ) ) 405 { 406 m_pcEntropyCoderIf->codeQtCbf( pcCU, uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr ); 407 } 408 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr - 1 ) ) 409 { 410 m_pcEntropyCoderIf->codeQtCbf( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr ); 411 } 412 } 413 #else 351 414 if( bFirstCbfOfCU || pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr - 1 ) ) 352 415 { … … 357 420 m_pcEntropyCoderIf->codeQtCbf( pcCU, uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr ); 358 421 } 422 #endif 359 423 } 360 424 else if( uiLog2TrafoSize == 2 ) 361 425 { 426 #if H_3D_DISABLE_CHROMA 427 if ( rd && pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 428 { 362 429 assert( pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr ) == pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr - 1 ) ); 363 430 assert( pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr ) == pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr - 1 ) ); 431 } 432 #else 433 assert( pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr ) == pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, uiTrDepthCurr - 1 ) ); 434 assert( pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr ) == pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, uiTrDepthCurr - 1 ) ); 435 #endif 364 436 } 365 437 … … 374 446 const UInt partNum = pcCU->getPic()->getNumPartInCU() >> (uiDepth << 1); 375 447 448 #if H_3D_DISABLE_CHROMA 449 xEncodeTransform( pcCU, offsetLuma, offsetChroma, uiAbsPartIdx, uiDepth, width, height, uiTrIdx, bCodeDQP, rd ); 450 451 uiAbsPartIdx += partNum; offsetLuma += size; offsetChroma += (size>>2); 452 xEncodeTransform( pcCU, offsetLuma, offsetChroma, uiAbsPartIdx, uiDepth, width, height, uiTrIdx, bCodeDQP ,rd ); 453 454 uiAbsPartIdx += partNum; offsetLuma += size; offsetChroma += (size>>2); 455 xEncodeTransform( pcCU, offsetLuma, offsetChroma, uiAbsPartIdx, uiDepth, width, height, uiTrIdx, bCodeDQP, rd ); 456 457 uiAbsPartIdx += partNum; offsetLuma += size; offsetChroma += (size>>2); 458 xEncodeTransform( pcCU, offsetLuma, offsetChroma, uiAbsPartIdx, uiDepth, width, height, uiTrIdx, bCodeDQP, rd ); 459 #else 376 460 xEncodeTransform( pcCU, offsetLuma, offsetChroma, uiAbsPartIdx, uiDepth, width, height, uiTrIdx, bCodeDQP ); 377 461 … … 384 468 uiAbsPartIdx += partNum; offsetLuma += size; offsetChroma += (size>>2); 385 469 xEncodeTransform( pcCU, offsetLuma, offsetChroma, uiAbsPartIdx, uiDepth, width, height, uiTrIdx, bCodeDQP ); 470 #endif 386 471 } 387 472 else … … 400 485 #endif 401 486 487 #if H_3D_DISABLE_CHROMA 488 Bool notcbfUV = !rd && pcCU->getSlice()->getSPS()->getChromaFormatIdc() == 0 ? 1 : ( !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) ) ; 489 if( pcCU->getPredictionMode(uiAbsPartIdx) != MODE_INTRA && 490 uiDepth == pcCU->getDepth( uiAbsPartIdx ) && notcbfUV ) 491 #else 402 492 if( pcCU->getPredictionMode(uiAbsPartIdx) != MODE_INTRA && uiDepth == pcCU->getDepth( uiAbsPartIdx ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_U, 0 ) && !pcCU->getCbf( uiAbsPartIdx, TEXT_CHROMA_V, 0 ) ) 493 #endif 403 494 { 404 495 assert( pcCU->getCbf( uiAbsPartIdx, TEXT_LUMA, 0 ) ); … … 489 580 encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx,true ); 490 581 #if H_3D_DIM_SDC 582 #if H_3D_DISABLE_CHROMA 583 if(!pcCU->getSDCFlag(uiAbsPartIdx) && ( pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 || bRD ) ) 584 #else 491 585 if(!pcCU->getSDCFlag(uiAbsPartIdx)) 586 #endif 492 587 #endif 493 588 encodeIntraDirModeChroma( pcCU, uiAbsPartIdx, bRD ); … … 657 752 * \param uiHeight 658 753 */ 754 #if H_3D_DISABLE_CHROMA 755 Void TEncEntropy::encodeCoeff( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiWidth, UInt uiHeight, Bool& bCodeDQP, Bool rd ) 756 #else 659 757 Void TEncEntropy::encodeCoeff( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiWidth, UInt uiHeight, Bool& bCodeDQP ) 758 #endif 660 759 { 661 760 UInt uiMinCoeffSize = pcCU->getPic()->getMinCUWidth()*pcCU->getPic()->getMinCUHeight(); … … 668 767 assert( pcCU->getTransformIdx(uiAbsPartIdx) == 0 ); 669 768 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_LUMA) == 1 ); 769 #if H_3D_DISABLE_CHROMA 770 if (!pcCU->getSlice()->getIsDepth() ) 771 { 772 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 773 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 774 } 775 #else 670 776 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 ); 671 777 assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 ); 672 } 778 #endif 779 } 780 673 781 674 782 if( pcCU->getSDCFlag( uiAbsPartIdx ) && !pcCU->isIntra( uiAbsPartIdx ) ) … … 723 831 } 724 832 833 #if H_3D_DISABLE_CHROMA 834 xEncodeTransform( pcCU, uiLumaOffset, uiChromaOffset, uiAbsPartIdx, uiDepth, uiWidth, uiHeight, 0, bCodeDQP, rd); 835 #else 725 836 xEncodeTransform( pcCU, uiLumaOffset, uiChromaOffset, uiAbsPartIdx, uiDepth, uiWidth, uiHeight, 0, bCodeDQP); 837 #endif 726 838 } 727 839 … … 792 904 Void TEncEntropy::encodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 793 905 { 794 if( bRD ) 795 { 796 uiAbsPartIdx = 0; 797 } 798 m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx ); 906 #if HHI_MOVE_SYN_K0052 907 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && 908 ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || 909 pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && 910 pcCU->getWidth(uiAbsPartIdx) > 8 && 911 pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 912 { 913 #endif 914 if( bRD ) 915 { 916 uiAbsPartIdx = 0; 917 } 918 m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx ); 919 #if HHI_MOVE_SYN_K0052 920 } 921 #endif 799 922 } 800 923 #endif -
trunk/source/Lib/TLibEncoder/TEncEntropy.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 82 82 virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 83 83 virtual Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 84 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 85 virtual Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 86 #else 84 87 #if H_3D_SINGLE_DEPTH 85 88 virtual Void codeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 89 #endif 86 90 #endif 87 91 virtual Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; … … 147 151 Void resetBits () { m_pcEntropyCoderIf->resetBits(); } 148 152 Void resetCoeffCost () { m_pcEntropyCoderIf->resetCoeffCost(); } 149 UInt getNumberOfWrittenBits () { return m_pcEntropyCoderIf->getNumberOfWrittenBits(); } 153 UInt getNumberOfWrittenBits () 154 { 155 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC 156 Bool oldJustDoIt = g_bJustDoIt; 157 g_bJustDoIt = true; 158 writeToTraceFile( "NumberOfWrittenBits", m_pcEntropyCoderIf->getNumberOfWrittenBits(), g_encNumberOfWrittenBits ); 159 g_bJustDoIt = oldJustDoIt; 160 #endif 161 return m_pcEntropyCoderIf->getNumberOfWrittenBits(); 162 } 150 163 UInt getCoeffCost () { return m_pcEntropyCoderIf->getCoeffCost(); } 151 164 Void resetEntropy () { m_pcEntropyCoderIf->resetEntropy(); } … … 166 179 Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 167 180 Void encodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 181 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 182 Void encodeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false ); 183 #else 168 184 #if H_3D_SINGLE_DEPTH 169 185 Void encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false ); 186 #endif 170 187 #endif 171 188 Void encodePUWise ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); … … 209 226 210 227 private: 228 #if H_3D_DISABLE_CHROMA 229 Void xEncodeTransform ( TComDataCU* pcCU,UInt offsetLumaOffset, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP, Bool rd ); 230 public: 231 Void encodeCoeff ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiWidth, UInt uiHeight, Bool& bCodeDQP, Bool rd ); 232 #else 211 233 Void xEncodeTransform ( TComDataCU* pcCU,UInt offsetLumaOffset, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP ); 212 234 public: 213 235 Void encodeCoeff ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiWidth, UInt uiHeight, Bool& bCodeDQP ); 236 #endif 214 237 215 238 Void encodeCoeffNxN ( TComDataCU* pcCU, TCoeff* pcCoeff, UInt uiAbsPartIdx, UInt uiTrWidth, UInt uiTrHeight, UInt uiDepth, TextType eType ); -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 885 885 Int numDirectRefLayers = vps ->getNumDirectRefLayers( getLayerId() ); 886 886 #endif 887 #if HHI_INTER_COMP_PRED_K0052 888 pcSlice->setIvPicLists( m_ivPicLists ); 889 890 Int gopNum = (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid; 891 GOPEntry gopEntry = m_pcCfg->getGOPEntry( gopNum ); 892 #else 887 893 GOPEntry gopEntry = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid ); 894 #endif 888 895 889 896 Bool interLayerPredLayerIdcPresentFlag = false; … … 922 929 assert( pcSlice->getNumActiveRefLayerPics() == gopEntry.m_numActiveRefLayerPics ); 923 930 931 #if HHI_INTER_COMP_PRED_K0052 932 #if H_3D 933 if ( m_pcEncTop->decProcAnnexI() ) 934 { 935 pcSlice->deriveInCmpPredAndCpAvailFlag(); 936 if ( pcSlice->getInCmpPredAvailFlag() ) 937 { 938 pcSlice->setInCompPredFlag( gopEntry.m_interCompPredFlag ); 939 } 940 else 941 { 942 if (gopEntry.m_interCompPredFlag ) 943 { 944 if ( gopNum == MAX_GOP) 945 { 946 printf( "\nError: FrameI_l%d cannot enable inter-component prediction.\n", pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) ); 947 } 948 else 949 { 950 printf( "\nError: Frame%d_l%d cannot enable inter-component prediction.\n", gopNum, pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) ); 951 } 952 953 exit(EXIT_FAILURE); 954 } 955 } 956 pcSlice->init3dToolParameters(); 957 pcSlice->checkInCompPredRefLayers(); 958 } 959 960 961 // This needs to be done after initilizaiton of 3D tool parameters. 962 pcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) || pcSlice->getViewSynthesisPredFlag( ) ) ? 1 : 0 )); 963 #endif 964 #endif 965 924 966 pcSlice->createInterLayerReferencePictureSet( m_ivPicLists, m_refPicSetInterLayer0, m_refPicSetInterLayer1 ); 925 967 pcSlice->setNumRefIdx(REF_PIC_LIST_0,min(gopEntry.m_numRefPicsActive,( pcSlice->getRPS()->getNumberOfPictures() + (Int) m_refPicSetInterLayer0.size() + (Int) m_refPicSetInterLayer1.size()) ) ); … … 968 1010 } 969 1011 #endif 1012 #if !HHI_INTER_COMP_PRED_K0052 970 1013 #if H_3D 971 1014 pcSlice->setIvPicLists( m_ivPicLists ); … … 973 1016 assert( !m_pcEncTop->getIsDepth() || ( pcSlice->getTexturePic() != 0 ) ); 974 1017 #endif 1018 #endif 975 1019 #endif 976 1020 #if H_3D_IC … … 1950 1994 m_pcSAO->PCMLFDisableProcess(pcPic); 1951 1995 1996 #if H_3D_DISABLE_CHROMA 1997 if (pcSlice->getIsDepth()) 1998 { 1999 sliceEnabled[SAO_Cb] = false; 2000 sliceEnabled[SAO_Cr] = false; 2001 } 2002 #endif 1952 2003 //assign SAO slice header 1953 2004 for(Int s=0; s< uiNumSlices; s++) -
trunk/source/Lib/TLibEncoder/TEncGOP.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncPic.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncPic.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncPreanalyzer.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncPreanalyzer.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncRateCtrl.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncRateCtrl.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp
r964 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncSbac.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 58 58 , m_cCUSplitFlagSCModel ( 1, 1, NUM_SPLIT_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels ) 59 59 , m_cCUSkipFlagSCModel ( 1, 1, NUM_SKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 60 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 61 , m_cCUDISFlagSCModel ( 1, 1, NUM_DIS_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 62 , m_cCUDISTypeSCModel ( 1, 1, NUM_DIS_TYPE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 63 #else 60 64 #if H_3D_SINGLE_DEPTH 61 65 , m_cCUSingleDepthFlagSCModel ( 1, 1, NUM_SINGLEDEPTH_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 62 66 , m_cSingleDepthValueSCModel ( 1, 1, NUM_SINGLE_DEPTH_VALUE_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 67 #endif 63 68 #endif 64 69 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 134 139 135 140 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 141 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 142 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 143 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 144 #else 136 145 #if H_3D_SINGLE_DEPTH 137 146 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 138 147 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); 148 #endif 139 149 #endif 140 150 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT); … … 214 224 curCost = m_cCUSplitFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG ); 215 225 curCost += m_cCUSkipFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG ); 226 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 227 curCost += m_cCUDISFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DIS_FLAG ); 228 curCost += m_cCUDISTypeSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DIS_TYPE ); 229 #else 216 230 #if H_3D_SINGLE_DEPTH 217 231 curCost += m_cCUSingleDepthFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 218 232 curCost += m_cSingleDepthValueSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); 233 #endif 219 234 #endif 220 235 curCost += m_cCUMergeFlagExtSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT); … … 287 302 288 303 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 304 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 305 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 306 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 307 #else 289 308 #if H_3D_SINGLE_DEPTH 290 309 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 291 310 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); 292 #endif 311 #endif 312 #endif 293 313 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT); 294 314 m_cCUMergeIdxExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_IDX_EXT); … … 446 466 m_pcBinIf->encodeBinsEP( bins, numBins ); 447 467 } 468 469 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 470 Void TEncSbac::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx ) 471 { 472 UInt uiSymbol = pcCU->getDISFlag(uiAbsPartIdx ) ? 1 : 0; 473 m_pcBinIf->encodeBin( uiSymbol, m_cCUDISFlagSCModel.get( 0, 0, 0 ) ); 474 if(uiSymbol) 475 { 476 UInt uiUnaryIdx = (UInt) pcCU->getDISType(uiAbsPartIdx); 477 UInt uiNumCand = 4; 478 479 if ( uiNumCand > 1 ) 480 { 481 for( UInt ui = 0; ui < uiNumCand - 1; ++ui ) 482 { 483 const UInt uiSymbol2 = ui == uiUnaryIdx ? 0 : 1; 484 if ( ui == 0 ) 485 { 486 m_pcBinIf->encodeBin( uiSymbol2, m_cCUDISTypeSCModel.get( 0, 0, 0 ) ); 487 } 488 else 489 { 490 m_pcBinIf->encodeBinEP( uiSymbol2 ); 491 } 492 if( uiSymbol2 == 0 ) 493 { 494 break; 495 } 496 } 497 } 498 } 499 } 500 #else 448 501 #if H_3D_SINGLE_DEPTH 449 502 Void TEncSbac::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ) … … 477 530 } 478 531 #endif 532 #endif 533 479 534 /** Coding of coeff_abs_level_minus3 480 535 * \param uiSymbol value of coeff_abs_level_minus3 … … 1040 1095 DTRACE_CABAC_V( uiCtx ) 1041 1096 DTRACE_CABAC_T( "\n" ) 1042 #endif 1097 #else 1098 DTRACE_TU("split_transform_flag", uiSymbol ) 1099 #endif 1100 1043 1101 } 1044 1102 … … 1371 1429 DTRACE_CABAC_V( uiAbsPartIdx ) 1372 1430 DTRACE_CABAC_T( "\n" ) 1431 #else 1432 if ( eType == TEXT_CHROMA_U ) 1433 { 1434 DTRACE_TU("cbf_cb", uiCbf ) 1435 } 1436 else if ( eType == TEXT_CHROMA_V ) 1437 { 1438 DTRACE_TU("cbf_cr", uiCbf ) 1439 } 1440 else 1441 { 1442 DTRACE_TU("cbf_luma", uiCbf ) 1443 } 1373 1444 #endif 1374 1445 } … … 1446 1517 } 1447 1518 1519 #if H_3D_DISABLE_CHROMA 1520 if( pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 1521 { 1522 #endif 1448 1523 piPCMSample = pcCU->getPCMSampleCb() + uiChromaOffset; 1449 1524 uiWidth = pcCU->getWidth(uiAbsPartIdx)/2; … … 1477 1552 piPCMSample += uiWidth; 1478 1553 } 1554 #if H_3D_DISABLE_CHROMA 1555 } 1556 #endif 1479 1557 m_pcBinIf->resetBac(); 1480 1558 } … … 2289 2367 UInt uiSymbol = pcCU->getSDCFlag( uiAbsPartIdx ) ? 1 : 0; 2290 2368 UInt uiCtxSDCFlag = pcCU->getCtxSDCFlag( uiAbsPartIdx ); 2291 2369 DTRACE_CU("dc_only_flag", uiSymbol) 2292 2370 m_pcBinIf->encodeBin( uiSymbol, m_cSDCFlagSCModel.get( 0, 0, uiCtxSDCFlag ) ); 2293 2371 } … … 2305 2383 UInt uiSymbol = pcCU->getDBBPFlag( uiAbsPartIdx ) ? 1 : 0; 2306 2384 m_pcBinIf->encodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) ); 2385 DTRACE_CU("dbbp_flag", uiSymbol) 2307 2386 } 2308 2387 #endif -
trunk/source/Lib/TLibEncoder/TEncSbac.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 146 146 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 147 147 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 148 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 149 Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 150 #else 148 151 #if H_3D_SINGLE_DEPTH 149 152 Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ); 153 #endif 150 154 #endif 151 155 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); … … 215 219 ContextModel3DBuffer m_cCUSplitFlagSCModel; 216 220 ContextModel3DBuffer m_cCUSkipFlagSCModel; 221 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 222 ContextModel3DBuffer m_cCUDISFlagSCModel; 223 ContextModel3DBuffer m_cCUDISTypeSCModel; 224 #else 217 225 #if H_3D_SINGLE_DEPTH 218 226 ContextModel3DBuffer m_cCUSingleDepthFlagSCModel; 219 227 ContextModel3DBuffer m_cSingleDepthValueSCModel; 228 #endif 220 229 #endif 221 230 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 915 915 } 916 916 m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true ); 917 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 918 m_pcEntropyCoder->encodeDIS(pcCU, 0, true ); 919 if(!pcCU->getDISFlag(uiAbsPartIdx)) 920 #else 917 921 #if H_3D_SINGLE_DEPTH 918 922 m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true ); 919 923 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 920 924 #endif 921 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 922 } 925 #endif 926 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 927 } 928 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 929 else 930 { 931 m_pcEntropyCoder->encodeDIS(pcCU, 0, true ); 932 } 933 #else 923 934 #if H_3D_SINGLE_DEPTH 924 935 else … … 926 937 m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true ); 927 938 } 928 #endif 939 #endif 940 #endif 941 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 942 if(!pcCU->getDISFlag(uiAbsPartIdx)) 943 { 944 #else 929 945 #if H_3D_SINGLE_DEPTH 930 946 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 931 947 { 932 948 #endif 933 m_pcEntropyCoder ->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 934 949 #endif 950 m_pcEntropyCoder ->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 951 952 #if !HHI_MOVE_SYN_K0052 935 953 #if H_3D_DIM_SDC 936 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 937 #endif 938 if (pcCU->isIntra(0) && pcCU->getPartitionSize(0) == SIZE_2Nx2N ) 939 { 940 m_pcEntropyCoder->encodeIPCMInfo( pcCU, 0, true ); 941 942 if ( pcCU->getIPCMFlag (0)) 943 { 944 return; 945 } 946 } 954 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 955 #endif 956 #endif 957 if (pcCU->isIntra(0) && pcCU->getPartitionSize(0) == SIZE_2Nx2N ) 958 { 959 m_pcEntropyCoder->encodeIPCMInfo( pcCU, 0, true ); 960 if ( pcCU->getIPCMFlag (0)) 961 { 962 #if HHI_MOVE_SYN_K0052 963 #if H_3D_DIM_SDC 964 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 965 #endif 966 #endif 967 return; 968 } 969 } 970 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 971 } 972 #else 947 973 #if H_3D_SINGLE_DEPTH 948 } 949 #endif 950 } 974 } 975 #endif 976 #endif 977 } 978 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 979 if(!pcCU->getDISFlag(uiAbsPartIdx)) 980 { 981 #else 951 982 #if H_3D_SINGLE_DEPTH 952 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 953 { 954 #endif 955 // luma prediction mode 956 if( pcCU->getPartitionSize(0) == SIZE_2Nx2N ) 957 { 958 if( uiAbsPartIdx == 0 ) 959 { 960 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, 0 ); 983 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 984 { 985 #endif 986 #endif 987 // luma prediction mode 988 if( pcCU->getPartitionSize(0) == SIZE_2Nx2N ) 989 { 990 if( uiAbsPartIdx == 0 ) 991 { 992 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, 0 ); 961 993 #if H_3D_DIM_SDC 962 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( 0 ) ) && getDimType( pcCU->getLumaIntraDir( 0 ) ) < DIM_NUM_TYPE ) 963 { 964 m_pcEntropyCoder->encodeDeltaDC( pcCU, 0 ); 965 } 966 #endif 967 } 968 } 969 else 970 { 971 UInt uiQNumParts = pcCU->getTotalNumPart() >> 2; 972 if( uiTrDepth == 0 ) 973 { 974 assert( uiAbsPartIdx == 0 ); 975 for( UInt uiPart = 0; uiPart < 4; uiPart++ ) 976 { 977 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiPart * uiQNumParts ); 994 #if HHI_MOVE_SYN_K0052 978 995 #if H_3D_DIM_SDC 979 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && getDimType( pcCU->getLumaIntraDir( uiPart * uiQNumParts ) ) < DIM_NUM_TYPE ) 996 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 997 #endif 998 #endif 999 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( 0 ) ) && getDimType( pcCU->getLumaIntraDir( 0 ) ) < DIM_NUM_TYPE ) 980 1000 { 981 m_pcEntropyCoder->encodeDeltaDC( pcCU, uiPart * uiQNumParts);1001 m_pcEntropyCoder->encodeDeltaDC( pcCU, 0 ); 982 1002 } 983 1003 #endif 984 1004 } 985 1005 } 986 else if( ( uiAbsPartIdx % uiQNumParts ) == 0 ) 987 { 988 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx ); 1006 else 1007 { 1008 UInt uiQNumParts = pcCU->getTotalNumPart() >> 2; 1009 if( uiTrDepth == 0 ) 1010 { 1011 assert( uiAbsPartIdx == 0 ); 1012 for( UInt uiPart = 0; uiPart < 4; uiPart++ ) 1013 { 1014 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiPart * uiQNumParts ); 1015 1016 #if HHI_MOVE_SYN_K0052 1017 } 1018 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 1019 for( UInt uiPart = 0; uiPart < 4; uiPart++ ) 1020 { 1021 #endif 989 1022 #if H_3D_DIM_SDC 990 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && getDimType( pcCU->getLumaIntraDir( uiAbsPartIdx ) ) < DIM_NUM_TYPE ) 991 { 992 m_pcEntropyCoder->encodeDeltaDC( pcCU, uiAbsPartIdx ); 993 } 994 #endif 995 } 996 } 1023 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && getDimType( pcCU->getLumaIntraDir( uiPart * uiQNumParts ) ) < DIM_NUM_TYPE ) 1024 { 1025 m_pcEntropyCoder->encodeDeltaDC( pcCU, uiPart * uiQNumParts ); 1026 } 1027 #endif 1028 } 1029 } 1030 else if( ( uiAbsPartIdx % uiQNumParts ) == 0 ) 1031 { 1032 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx ); 1033 #if H_3D_DIM_SDC 1034 #if HHI_MOVE_SYN_K0052 1035 if( uiAbsPartIdx == 0 ) 1036 { 1037 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 1038 } 1039 #endif 1040 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && getDimType( pcCU->getLumaIntraDir( uiAbsPartIdx ) ) < DIM_NUM_TYPE ) 1041 { 1042 m_pcEntropyCoder->encodeDeltaDC( pcCU, uiAbsPartIdx ); 1043 } 1044 #endif 1045 } 1046 } 1047 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1048 } 1049 #else 997 1050 #if H_3D_SINGLE_DEPTH 998 1051 } 1052 #endif 999 1053 #endif 1000 1054 } … … 1859 1913 dRDCost += dSingleCost; 1860 1914 } 1915 1916 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1917 Void TEncSearch::xIntraCodingDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode ) 1918 { 1919 UInt uiWidth = pcCU ->getWidth ( 0 ); 1920 UInt uiHeight = pcCU ->getHeight ( 0 ); 1921 UInt uiStride = pcOrgYuv ->getStride (); 1922 Pel* piOrg = pcOrgYuv ->getLumaAddr( uiAbsPartIdx ); 1923 Pel* piPred = pcPredYuv->getLumaAddr( uiAbsPartIdx ); 1924 1925 AOF( uiWidth == uiHeight ); 1926 AOF( uiAbsPartIdx == 0 ); 1927 pcCU->setDISTypeSubParts(uiPredMode, uiAbsPartIdx, 0, pcCU->getDepth(0)); 1928 //===== reconstruction ===== 1929 1930 Bool bAboveAvail = false; 1931 Bool bLeftAvail = false; 1932 pcCU->getPattern()->initPattern ( pcCU, 0, 0 ); 1933 pcCU->getPattern()->initAdiPattern( pcCU, 0, 0, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail ); 1934 1935 if ( uiPredMode == 0 ) 1936 { 1937 predIntraLumaAng( pcCU->getPattern(), VER_IDX, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 1938 } 1939 else if ( uiPredMode == 1 ) 1940 { 1941 predIntraLumaAng( pcCU->getPattern(), HOR_IDX, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail ); 1942 } 1943 else if ( uiPredMode == 2 ) 1944 { 1945 Pel pSingleDepth = 1 << ( g_bitDepthY - 1 ); 1946 pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 0 ); 1947 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 1948 { 1949 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1950 { 1951 piPred[ uiX ] = pSingleDepth; 1952 } 1953 piPred+= uiStride; 1954 } 1955 } 1956 else if ( uiPredMode == 3 ) 1957 { 1958 Pel pSingleDepth = 1 << ( g_bitDepthY - 1 ); 1959 pcCU->getNeighDepth ( 0, 0, &pSingleDepth, 1 ); 1960 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 1961 { 1962 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1963 { 1964 piPred[ uiX ] = pSingleDepth; 1965 } 1966 piPred+= uiStride; 1967 } 1968 } 1969 1970 // clear UV 1971 UInt uiStrideC = pcPredYuv->getCStride(); 1972 Pel *pRecCb = pcPredYuv->getCbAddr(); 1973 Pel *pRecCr = pcPredYuv->getCrAddr(); 1974 1975 for (Int y=0; y<uiHeight/2; y++) 1976 { 1977 for (Int x=0; x<uiWidth/2; x++) 1978 { 1979 pRecCb[x] = 1<<(g_bitDepthC-1); 1980 pRecCr[x] = 1<<(g_bitDepthC-1); 1981 } 1982 1983 pRecCb += uiStrideC; 1984 pRecCr += uiStrideC; 1985 } 1986 1987 piPred = pcPredYuv->getLumaAddr( uiAbsPartIdx ); 1988 //===== determine distortion ===== 1989 #if H_3D_VSO 1990 if ( m_pcRdCost->getUseVSO() ) 1991 ruiDist = m_pcRdCost->getDistPartVSO ( pcCU, uiAbsPartIdx, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false ); 1992 else 1993 #endif 1994 ruiDist = m_pcRdCost->getDistPart(g_bitDepthY, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight ); 1995 1996 //===== determine rate and r-d cost ===== 1997 m_pcEntropyCoder->resetBits(); 1998 m_pcEntropyCoder->encodeDIS( pcCU, 0, true ); 1999 UInt uiBits = m_pcEntropyCoder->getNumberOfWrittenBits(); 2000 2001 #if H_3D_VSO 2002 if ( m_pcRdCost->getUseLambdaScaleVSO()) 2003 dRDCost = m_pcRdCost->calcRdCostVSO( uiBits, ruiDist ); 2004 else 2005 #endif 2006 dRDCost = m_pcRdCost->calcRdCost( uiBits, ruiDist ); 2007 } 2008 #else 1861 2009 #if H_3D_SINGLE_DEPTH 1862 2010 Void TEncSearch::xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel *DepthNeighbor ) … … 1921 2069 } 1922 2070 #endif 2071 #endif 2072 1923 2073 #if H_3D_DIM_SDC 1924 2074 Void TEncSearch::xIntraCodingSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Bool bZeroResidual, Int iSDCDeltaResi ) … … 2168 2318 2169 2319 m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth( 0 ), true ); 2320 #if !HHI_MOVE_SYN_K0052 2170 2321 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 2322 #endif 2171 2323 2172 2324 // encode pred direction + DC residual data 2173 2325 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 2326 #if HHI_MOVE_SYN_K0052 2327 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 2328 #endif 2329 2174 2330 Bool bDummy = false; 2331 #if H_3D_DISABLE_CHROMA 2332 m_pcEntropyCoder->encodeCoeff( pcCU, 0, pcCU->getDepth( 0 ), uiWidth, uiHeight, bDummy, true ); 2333 #else 2175 2334 m_pcEntropyCoder->encodeCoeff( pcCU, 0, pcCU->getDepth( 0 ), uiWidth, uiHeight, bDummy ); 2335 #endif 2176 2336 UInt uiBits = m_pcEntropyCoder->getNumberOfWrittenBits(); 2177 2337 … … 2861 3021 pcCU->setChromIntraDirSubParts( uiBestMode, 0, pcCU->getDepth( 0 ) ); 2862 3022 } 3023 3024 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 3025 Void TEncSearch::estIntraPredDIS( TComDataCU* pcCU, 3026 TComYuv* pcOrgYuv, 3027 TComYuv* pcPredYuv, 3028 TComYuv* pcResiYuv, 3029 TComYuv* pcRecoYuv, 3030 UInt& ruiDistC, 3031 Bool bLumaOnly ) 3032 { 3033 UInt uiDepth = pcCU->getDepth(0); 3034 UInt uiWidth = pcCU->getWidth (0); 3035 UInt uiHeight = pcCU->getHeight(0); 3036 3037 3038 Pel* piOrg = pcOrgYuv ->getLumaAddr( 0, uiWidth ); 3039 UInt uiStride = pcPredYuv->getStride(); 3040 3041 Dist uiDist = 0; 3042 Double dCost = 0.0; 3043 Dist uiBestDist = 0; 3044 Double dBestCost = MAX_DOUBLE; 3045 UInt uiBestDISType = 0; 3046 3047 for( UInt uiPredMode = 0; uiPredMode < 4 ; uiPredMode++ ) 3048 { 3049 // set context models 3050 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[uiDepth][CI_CURR_BEST] ); 3051 3052 // determine residual for partition 3053 uiDist = 0; 3054 dCost = 0.0; 3055 #if H_3D_VSO // M36 3056 if( m_pcRdCost->getUseRenModel() ) 3057 { 3058 m_pcRdCost->setRenModelData( pcCU, 0, piOrg, uiStride, uiWidth, uiHeight ); 3059 } 3060 #endif 3061 xIntraCodingDIS(pcCU, 0, pcOrgYuv, pcPredYuv, uiDist, dCost, uiPredMode); 3062 // check r-d cost 3063 if( dCost < dBestCost ) 3064 { 3065 uiBestDist = uiDist; 3066 dBestCost = dCost; 3067 uiBestDISType = pcCU->getDISType(0); 3068 // copy reconstruction 3069 pcPredYuv->copyPartToPartYuv(pcRecoYuv, 0, uiWidth, uiHeight); 3070 } 3071 } 3072 3073 3074 pcCU->setDISTypeSubParts(uiBestDISType, 0, 0, uiDepth); 3075 assert(uiBestDISType >= 0); 3076 3077 //===== reset context models ===== 3078 m_pcRDGoOnSbacCoder->load(m_pppcRDSbacCoder[uiDepth][CI_CURR_BEST]); 3079 3080 //===== set distortion (rate and r-d costs are determined later) ===== 3081 pcCU->getTotalDistortion() = uiBestDist; 3082 } 3083 #else 2863 3084 #if H_3D_SINGLE_DEPTH 2864 3085 Void … … 2950 3171 2951 3172 #endif 3173 #endif 3174 2952 3175 Void 2953 3176 TEncSearch::estIntraPredQT( TComDataCU* pcCU, … … 5311 5534 TComMv cMvPred = *pcMvPred; 5312 5535 5536 #if SONY_MV_V_CONST_C0078 5537 Bool bMv_VRng_Restricted = false; 5538 if( m_pcEncCfg->getUseDisparitySearchRangeRestriction() 5539 && 5540 pcCU->getSlice()->getRefPic( eRefPicList, iRefIdxPred )->getPOC() == pcCU->getSlice()->getPOC() 5541 ) 5542 { 5543 bMv_VRng_Restricted = true; 5544 } 5545 if ( bBi ) xSetSearchRange ( pcCU, rcMv , iSrchRng, cMvSrchRngLT, cMvSrchRngRB, bMv_VRng_Restricted, m_pcEncCfg->getVerticalDisparitySearchRange() ); 5546 else xSetSearchRange ( pcCU, cMvPred, iSrchRng, cMvSrchRngLT, cMvSrchRngRB, bMv_VRng_Restricted, m_pcEncCfg->getVerticalDisparitySearchRange() ); 5547 #else 5313 5548 if ( bBi ) xSetSearchRange ( pcCU, rcMv , iSrchRng, cMvSrchRngLT, cMvSrchRngRB ); 5314 5549 else xSetSearchRange ( pcCU, cMvPred, iSrchRng, cMvSrchRngLT, cMvSrchRngRB ); 5550 #endif 5315 5551 5316 5552 m_pcRdCost->getMotionCost ( 1, 0 ); … … 5365 5601 5366 5602 5603 #if SONY_MV_V_CONST_C0078 5604 Void TEncSearch::xSetSearchRange ( TComDataCU* pcCU, TComMv& cMvPred, Int iSrchRng, TComMv& rcMvSrchRngLT, TComMv& rcMvSrchRngRB, Bool bMv_VRng_Restricted, Int iVerDispSrchRng ) 5605 #else 5367 5606 Void TEncSearch::xSetSearchRange ( TComDataCU* pcCU, TComMv& cMvPred, Int iSrchRng, TComMv& rcMvSrchRngLT, TComMv& rcMvSrchRngRB ) 5607 #endif 5368 5608 { 5369 5609 Int iMvShift = 2; … … 5380 5620 rcMvSrchRngRB.setHor( cTmpMvPred.getHor() + (iSrchRng << iMvShift) ); 5381 5621 rcMvSrchRngRB.setVer( cTmpMvPred.getVer() + (iSrchRng << iMvShift) ); 5622 5623 #if SONY_MV_V_CONST_C0078 5624 if ( bMv_VRng_Restricted ) { 5625 Int iRestrictMvVrange = ( iVerDispSrchRng - 1 ) << iMvShift ; // -1 to consider subpel search 5626 if ( rcMvSrchRngRB.getVer() >= iRestrictMvVrange ){ 5627 rcMvSrchRngRB.setVer( iRestrictMvVrange ); //only positive side is restricted 5628 } 5629 } 5630 #endif 5631 5382 5632 pcCU->clipMv ( rcMvSrchRngLT ); 5383 5633 pcCU->clipMv ( rcMvSrchRngRB ); … … 7119 7369 const UInt uiQTTempAccessLayer = pcCU->getSlice()->getSPS()->getQuadtreeTULog2MaxSize() - uiLog2TrSize; 7120 7370 7371 #if 0 //H_3D_DISABLE_CHROMA 7372 Bool bCodeChroma = !pcCU->getSlice()->getIsDepth(); 7373 #else 7121 7374 Bool bCodeChroma = true; 7375 #endif 7122 7376 UInt uiTrModeC = uiTrMode; 7123 7377 UInt uiLog2TrSizeC = uiLog2TrSize-1; … … 7261 7515 } 7262 7516 m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true ); 7517 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 7518 m_pcEntropyCoder->encodeDIS ( pcCU, 0, true ); 7519 #else 7263 7520 #if H_3D_SINGLE_DEPTH 7264 7521 m_pcEntropyCoder->encodeSingleDepthMode ( pcCU, 0, true ); 7265 7522 #endif 7523 #endif 7266 7524 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 7267 7525 m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 7526 #if !HHI_MOVE_SYN_K0052 7268 7527 #if H_3D_DIM_SDC 7269 7528 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 7270 7529 #endif 7530 #endif 7271 7531 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 7532 #if HHI_MOVE_SYN_K0052 7533 #if H_3D_DIM_SDC 7534 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 7535 #endif 7536 #endif 7272 7537 #if H_3D_ARP 7273 m_pcEntropyCoder->encodeARPW( pcCU , 0 );7538 m_pcEntropyCoder->encodeARPW( pcCU , 0 ); 7274 7539 #endif 7275 7540 #if H_3D_IC 7276 7541 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7277 7542 #endif 7543 #if HHI_MOVE_SYN_K0052 7544 m_pcEntropyCoder->encodeDBBPFlag( pcCU, 0, true ); 7545 #endif 7278 7546 Bool bDummy = false; 7547 #if H_3D_DISABLE_CHROMA 7548 m_pcEntropyCoder->encodeCoeff ( pcCU, 0, pcCU->getDepth(0), pcCU->getWidth(0), pcCU->getHeight(0), bDummy, true ); 7549 #else 7279 7550 m_pcEntropyCoder->encodeCoeff ( pcCU, 0, pcCU->getDepth(0), pcCU->getWidth(0), pcCU->getHeight(0), bDummy ); 7551 #endif 7280 7552 7281 7553 ruiBits += m_pcEntropyCoder->getNumberOfWrittenBits(); -
trunk/source/Lib/TLibEncoder/TEncSearch.h
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 191 191 TComYuv* pcRecoYuv, 192 192 UInt uiPreCalcDistC ); 193 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 194 Void estIntraPredDIS ( TComDataCU* pcCU, 195 TComYuv* pcOrgYuv, 196 TComYuv* pcPredYuv, 197 TComYuv* pcResiYuv, 198 TComYuv* pcRecoYuv, 199 UInt& ruiDistC, 200 Bool bLumaOnly ); 201 #else 193 202 #if H_3D_SINGLE_DEPTH 194 203 Void estIntraPredSingleDepth ( TComDataCU* pcCU, … … 199 208 UInt& ruiDistC, 200 209 Bool bLumaOnly ); 201 #endif 210 #endif 211 #endif 202 212 203 213 /// encoder estimation - inter prediction (non-skip) … … 354 364 UInt uiAbsPartIdx, 355 365 UInt stateU0V1Both2 ); 366 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 367 Void xIntraCodingDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode ); 368 #else 356 369 #if H_3D_SINGLE_DEPTH 357 370 Void xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel * DepthNeighbor ); 371 #endif 358 372 #endif 359 373 #if H_3D_DIM … … 466 480 UInt& ruiSAD ); 467 481 482 #if SONY_MV_V_CONST_C0078 483 Void xSetSearchRange ( TComDataCU* pcCU, 484 TComMv& cMvPred, 485 Int iSrchRng, 486 TComMv& rcMvSrchRngLT, 487 TComMv& rcMvSrchRngRB, 488 Bool bMv_VRng_Restricted, 489 Int iVerDispSrchRng ); 490 #else 468 491 Void xSetSearchRange ( TComDataCU* pcCU, 469 492 TComMv& cMvPred, … … 471 494 TComMv& rcMvSrchRngLT, 472 495 TComMv& rcMvSrchRngRB ); 496 #endif 473 497 474 498 Void xPatternSearchFast ( TComDataCU* pcCU, -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 215 215 rpcSlice->setPicOutputFlag( true ); 216 216 rpcSlice->setPOC( pocCurr ); 217 #if !HHI_INTER_COMP_PRED_K0052 217 218 #if H_3D 218 rpcSlice->init3dToolParameters(); 219 rpcSlice->init3dToolParameters(); 220 #endif 219 221 #endif 220 222 #if H_3D_IC … … 610 612 rpcSlice->setSliceSegmentMode ( m_pcCfg->getSliceSegmentMode() ); 611 613 rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() ); 614 #if !HHI_INTER_COMP_PRED_K0052 612 615 #if H_3D_IV_MERGE 613 616 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( ( rpcSlice->getMpiFlag( ) || rpcSlice->getIvMvPredFlag( ) || rpcSlice->getViewSynthesisPredFlag( ) ) ? 1 : 0 )); 614 617 #else 615 618 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() ); 619 #endif 620 #else 621 #if !H_3D 622 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() ); 623 #endif 616 624 #endif 617 625 xStoreWPparam( pPPS->getUseWP(), pPPS->getWPBiPred() ); -
trunk/source/Lib/TLibEncoder/TEncSlice.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/TEncTop.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 91 91 m_aICEnableNum = NULL; 92 92 #endif 93 #if H_3D_ANNEX_SELECTION_FIX 94 m_cCavlcCoder.setEncTop(this); 95 #endif 93 96 } 94 97 … … 364 367 } 365 368 #endif 369 366 370 // initialize processing unit classes 367 371 m_cGOPEncoder. init( this ); … … 413 417 #endif 414 418 #if H_3D 419 #if HHI_CAM_PARA_K0052 420 pcPicCurr->setScaleOffset( m_cameraParameters->getCodedScale(), m_cameraParameters->getCodedOffset() ); 421 #else 415 422 pcPicCurr->setScaleOffset( m_aaiCodedScale, m_aaiCodedOffset ); 423 #endif 416 424 #endif 417 425 } … … 760 768 m_cSPS.setSpsInferScalingListFlag ( true ); 761 769 m_cSPS.setSpsScalingListRefLayerId( m_cVPS->getIdRefLayer( getLayerId(), 0 ) ); 762 } 770 #if SONY_MV_V_CONST_C0078 771 if ( m_bUseDisparitySearchRangeRestriction ) 772 { 773 m_cSPS.setInterViewMvVertConstraintFlag ( true ) ; 774 } 775 #endif 776 } 763 777 m_cSPS.setSpsExtensionPresentFlag ( true ); 764 778 m_cSPS.setSpsMultilayerExtensionFlag ( true ); … … 773 787 m_cSPS.setMaxCUHeight ( g_uiMaxCUHeight ); 774 788 m_cSPS.setMaxCUDepth ( g_uiMaxCUDepth ); 789 #if H_3D_DISABLE_CHROMA 790 m_cSPS.setChromaFormatIdc( getIsDepth() ? CHROMA_400 : CHROMA_420 ); 791 #endif 775 792 776 793 Int minCUSize = m_cSPS.getMaxCUWidth() >> ( m_cSPS.getMaxCUDepth()-g_uiAddCUDepth ); -
trunk/source/Lib/TLibEncoder/TEncTop.h
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/WeightPredAnalysis.cpp
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibEncoder/WeightPredAnalysis.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibExtractor/TExtrTop.cpp
r1133 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibExtractor/TExtrTop.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenFilter.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenFilter.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenImage.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenImage.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenImagePlane.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenImagePlane.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenInterpFilter.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenInterpFilter.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenModSetupStrParser.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenModSetupStrParser.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenModel.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenModel.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenSingleModel.cpp
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenSingleModel.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenTop.cpp
r655 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibRenderer/TRenTop.h
r608 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 1,ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibVideoIO/TVideoIOYuv.cpp
r1084 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/TLibVideoIO/TVideoIOYuv.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/libmd5/MD5.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
trunk/source/Lib/libmd5/libmd5.h
r872 r1179 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 4, ITU/ISO/IEC6 * Copyright (c) 2010-2015, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 *
Note: See TracChangeset for help on using the changeset viewer.