Index: /branches/HTM-15.1-dev0-NICT/cfg/SEI/alternativeDepthInfoSei_gvd_dancer.cfg
===================================================================
--- /branches/HTM-15.1-dev0-NICT/cfg/SEI/alternativeDepthInfoSei_gvd_dancer.cfg	(revision 1354)
+++ /branches/HTM-15.1-dev0-NICT/cfg/SEI/alternativeDepthInfoSei_gvd_dancer.cfg	(revision 1354)
@@ -0,0 +1,85 @@
+
+PayloadType                     : 181
+
+#======== Applicability  ==========    ( SEI is only send for pictures in intersection )
+ApplicableLayerIds              : 0                               # LayerIds      of layers   to which the SEI is added. (all when empty)
+ApplicablePocs                  : 0 24 48 72 96 120 144 168 192 216 240   # 250
+                                                                  # POCs          of pictures to which the SEI is added. (all when empty)
+ApplicableTids                  :                                 # Tids          of pictures to which the SEI is added. (all when empty)
+ApplicableVclNaluTypes          :                                 # NaluUnitTypes of picture  to which the SEI is added. (all when empty)
+
+#======== Position in bit stream  ============
+SeiNaluId                       : 0                               # Identifies to which NAL unit  the SEI is added
+PositionInSeiNalu               : 0                               # Identifies the position within the NAL unit
+
+#======== Payload modification =============
+ModifyByEncoder                 : 0                               # 0: Use payload as specified in cfg file   1: Modify SEI by encoder.
+
+#======== Payload specification =============                     # FP Value by ATM 13.3 SEI dump
+                                                                  # Undo Dancer
+#======== Part 0 ============================
+AlternativeDepthInfoCancelFlag  : 0
+DepthType                       : 0                               # 0: NICT-GVD, 1: Nagoya-Warpmap
+NumConstituentViewsGvdMinus1    : 1                               # 1: 3View
+DepthPresentGvdFlag             : 0
+ZGvdFlag                        : 1
+IntrinsicParamGvdFlag           : 1
+RotationGvdFlag                 : 1
+TranslationGvdFlag              : 1
+#======== Part 1 ============================
+SignGvdZNearFlag_0              : 0         0         0           # 2289.000000 # 2289.000000 # 2289.000000
+ExpGvdZNear_0                   : 42        42        42
+ManLenGvdZNearMinus1_0          : 24        24        24
+ManGvdZNear_0                   : 3948544   3948544   3948544
+SignGvdZFarFlag_0               : 0         0         0           # 213500.000000 # 213500.000000 # 213500.000000
+ExpGvdZFar_0                    : 48        48        48
+ManLenGvdZFarMinus1_0           : 24        24        24
+ManGvdZFar_0                    : 21101568  21101568  21101568
+#======== Part 2 ============================
+PrecGvdFocalLength              : 18                              # ATM code embeded value.
+PrecGvdPrincipalPoint           : 18
+PrecGvdRotationParam            : 18
+PrecGvdTranslationParam         : 18
+#======== Part 3 ============================
+SignGvdFocalLengthX_0           : 0         0         0           # 2302.852542 # 2302.852542 # 2302.852542
+ExpGvdFocalLengthX_0            : 42        42        42
+ManGvdFocalLengthX_0            : 66808064  66808064  66808064
+SignGvdFocalLengthY_0           : 0         0         0           # 2302.852542 # 2302.852542 # 2302.852542
+ExpGvdFocalLengthY_0            : 42        42        42
+ManGvdFocalLengthY_0            : 66808064  66808064  66808064
+SignGvdPrincipalPointX_0        : 0         0         0           # 960.000000 # 960.000000 # 960.000000
+ExpGvdPrincipalPointX_0         : 40        40        40
+ManGvdPrincipalPointX_0         : 117440512 117440512 117440512
+SignGvdPrincipalPointY_0        : 0         0         0           # 540.000000 # 540.000000 # 540.000000
+ExpGvdPrincipalPointY_0         : 40        40        40
+ManGvdPrincipalPointY_0         : 7340032   7340032   7340032
+SignGvdR00_0                    : 0         0         0           # 1.000000 # 1.000000 # 1.000000
+ExpGvdR00_0                     : 31        31        31
+ManGvdR00_0                     : 0         0         0
+SignGvdR01_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR01_0                     : 0         0         0
+ManGvdR01_0                     : 0         0         0
+SignGvdR02_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR02_0                     : 0         0         0
+ManGvdR02_0                     : 0         0         0
+SignGvdR10_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR10_0                     : 0         0         0
+ManGvdR10_0                     : 0         0         0
+SignGvdR11_0                    : 0         0         0           # 1.000000 # 1.000000 # 1.000000
+ExpGvdR11_0                     : 31        31        31
+ManGvdR11_0                     : 0         0         0
+SignGvdR12_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR12_0                     : 0         0         0
+ManGvdR12_0                     : 0         0         0
+SignGvdR20_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR20_0                     : 0         0         0
+ManGvdR20_0                     : 0         0         0
+SignGvdR21_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR21_0                     : 0         0         0
+ManGvdR21_0                     : 0         0         0
+SignGvdR22_0                    : 0         0         0           # 1.000000 # 1.000000 # 1.000000
+ExpGvdR22_0                     : 31        31        31
+ManGvdR22_0                     : 0         0         0
+SignGvdTX_0                     : 0         1         0           # 0.000000 # -80.000000 # 80.000000
+ExpGvdTX_0                      : 0         37        37
+ManGvdTX_0                      : 0         4194303   4194303
Index: /branches/HTM-15.1-dev0-NICT/cfg/SEI/alternativeDepthInfoSei_gvd_street.cfg
===================================================================
--- /branches/HTM-15.1-dev0-NICT/cfg/SEI/alternativeDepthInfoSei_gvd_street.cfg	(revision 1354)
+++ /branches/HTM-15.1-dev0-NICT/cfg/SEI/alternativeDepthInfoSei_gvd_street.cfg	(revision 1354)
@@ -0,0 +1,85 @@
+
+PayloadType                     : 181
+
+#======== Applicability  ==========    ( SEI is only send for pictures in intersection )
+ApplicableLayerIds              : 0                               # LayerIds      of layers   to which the SEI is added. (all when empty)
+ApplicablePocs                  : 0 24 48 72 96 120 144 168 192 216 240   # 250
+                                                                  # POCs          of pictures to which the SEI is added. (all when empty)
+ApplicableTids                  :                                 # Tids          of pictures to which the SEI is added. (all when empty)
+ApplicableVclNaluTypes          :                                 # NaluUnitTypes of picture  to which the SEI is added. (all when empty)
+
+#======== Position in bit stream  ============
+SeiNaluId                       : 0                               # Identifies to which NAL unit  the SEI is added
+PositionInSeiNalu               : 0                               # Identifies the position within the NAL unit
+
+#======== Payload modification =============
+ModifyByEncoder                 : 0                               # 0: Use payload as specified in cfg file   1: Modify SEI by encoder.
+
+#======== Payload specification =============                     # FP Value by ATM 13.3 SEI dump
+                                                                  # Poznan Street
+#======== Part 0 ============================
+AlternativeDepthInfoCancelFlag  : 0
+DepthType                       : 0                               # 0: NICT-GVD, 1: Nagoya-Warpmap
+NumConstituentViewsGvdMinus1    : 1                               # 1: 3View
+DepthPresentGvdFlag             : 0
+ZGvdFlag                        : 1
+IntrinsicParamGvdFlag           : 1
+RotationGvdFlag                 : 1
+TranslationGvdFlag              : 1
+#======== Part 1 ============================
+SignGvdZNearFlag_0              : 1         1         1           # -34.506386 # -34.506386 # -34.506386
+ExpGvdZNear_0                   : 36        36        36
+ManLenGvdZNearMinus1_0          : 24        24        24
+ManGvdZNear_0                   : 2628136   2628136   2628136
+SignGvdZFarFlag_0               : 1         1         1           # -2760.510889 # -2760.510889 # -2760.510889
+ExpGvdZFar_0                    : 42        42        42
+ManLenGvdZFarMinus1_0           : 24        24        24
+ManGvdZFar_0                    : 11673778  11673778  11673778
+#======== Part 2 ============================
+PrecGvdFocalLength              : 18                              # ATM code embeded value.
+PrecGvdPrincipalPoint           : 18
+PrecGvdRotationParam            : 18
+PrecGvdTranslationParam         : 18
+#======== Part 3 ============================
+SignGvdFocalLengthX_0           : 0         0         0           # 1732.875727 # 1732.875727 # 1732.875727
+ExpGvdFocalLengthX_0            : 41        41        41
+ManGvdFocalLengthX_0            : 185827518 185827518 185827518
+SignGvdFocalLengthY_0           : 0         0         0           # 1729.908923 # 1729.908923 # 1729.908923
+ExpGvdFocalLengthY_0            : 41        41        41
+ManGvdFocalLengthY_0            : 185049788 185049788 185049788
+SignGvdPrincipalPointX_0        : 0         0         0           # 943.231169 # 943.231169 # 943.231169
+ExpGvdPrincipalPointX_0         : 40        40        40
+ManGvdPrincipalPointX_0         : 113044663 113044663 113044663
+SignGvdPrincipalPointY_0        : 0         0         0           # 548.845040 # 548.845040 # 548.845040
+ExpGvdPrincipalPointY_0         : 40        40        40
+ManGvdPrincipalPointY_0         : 9658706   9658706   9658706
+SignGvdR00_0                    : 0         0         0           # 1.000000 # 1.000000 # 1.000000
+ExpGvdR00_0                     : 31        31        31
+ManGvdR00_0                     : 0         0         0
+SignGvdR01_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR01_0                     : 0         0         0
+ManGvdR01_0                     : 0         0         0
+SignGvdR02_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR02_0                     : 0         0         0
+ManGvdR02_0                     : 0         0         0
+SignGvdR10_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR10_0                     : 0         0         0
+ManGvdR10_0                     : 0         0         0
+SignGvdR11_0                    : 0         0         0           # 1.000000 # 1.000000 # 1.000000
+ExpGvdR11_0                     : 31        31        31
+ManGvdR11_0                     : 0         0         0
+SignGvdR12_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR12_0                     : 0         0         0
+ManGvdR12_0                     : 0         0         0
+SignGvdR20_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR20_0                     : 0         0         0
+ManGvdR20_0                     : 0         0         0
+SignGvdR21_0                    : 0         0         0           # 0.000000 # 0.000000 # 0.000000
+ExpGvdR21_0                     : 0         0         0
+ManGvdR21_0                     : 0         0         0
+SignGvdR22_0                    : 0         0         0           # 1.000000 # 1.000000 # 1.000000
+ExpGvdR22_0                     : 31        31        31
+ManGvdR22_0                     : 0         0         0
+SignGvdTX_0                     : 0         0         0           # 6.372093 # 7.965116 # 4.779070
+ExpGvdTX_0                      : 33        33        33
+ManGvdTX_0                      : 621829    1039431   204228
Index: /branches/HTM-15.1-dev0-NICT/source/Lib/TLibCommon/SEI.cpp
===================================================================
--- /branches/HTM-15.1-dev0-NICT/source/Lib/TLibCommon/SEI.cpp	(revision 1353)
+++ /branches/HTM-15.1-dev0-NICT/source/Lib/TLibCommon/SEI.cpp	(revision 1354)
@@ -1508,7 +1508,31 @@
     ("ExpGvdPrincipalPointY_%d"       , m_expGvdPrincipalPointY           , IntAry1d (3,0), 3   ,"ExpGvdPrincipalPointY"            )
     ("ManGvdPrincipalPointY_%d"       , m_manGvdPrincipalPointY           , IntAry1d (3,0), 3   ,"ManGvdPrincipalPointY"            )
-    ("SignGvdR_%d_%d"                 , m_signGvdR                        , BoolAry1d(3,0), 3, 3,"SignGvdR"                         )
-    ("ExpGvdR_%d_%d"                  , m_expGvdR                         , IntAry1d (3,0), 3, 3,"ExpGvdR"                          )
-    ("ManGvdR_%d_%d"                  , m_manGvdR                         , IntAry1d (3,0), 3, 3,"ManGvdR"                          )
+    ("SignGvdR00_%d"                  , m_signGvdR00                      , BoolAry1d(3,0), 3   ,"SignGvdR00"                       )
+    ("ExpGvdR00_%d"                   , m_expGvdR00                       , IntAry1d (3,0), 3   ,"ExpGvdR00"                        )
+    ("ManGvdR00_%d"                   , m_manGvdR00                       , IntAry1d (3,0), 3   ,"ManGvdR00"                        )
+    ("SignGvdR01_%d"                  , m_signGvdR01                      , BoolAry1d(3,0), 3   ,"SignGvdR01"                       )
+    ("ExpGvdR01_%d"                   , m_expGvdR01                       , IntAry1d (3,0), 3   ,"ExpGvdR01"                        )
+    ("ManGvdR01_%d"                   , m_manGvdR01                       , IntAry1d (3,0), 3   ,"ManGvdR01"                        )
+    ("SignGvdR02_%d"                  , m_signGvdR02                      , BoolAry1d(3,0), 3   ,"SignGvdR02"                       )
+    ("ExpGvdR02_%d"                   , m_expGvdR02                       , IntAry1d (3,0), 3   ,"ExpGvdR02"                        )
+    ("ManGvdR02_%d"                   , m_manGvdR02                       , IntAry1d (3,0), 3   ,"ManGvdR02"                        )
+    ("SignGvdR10_%d"                  , m_signGvdR10                      , BoolAry1d(3,0), 3   ,"SignGvdR10"                       )
+    ("ExpGvdR10_%d"                   , m_expGvdR10                       , IntAry1d (3,0), 3   ,"ExpGvdR10"                        )
+    ("ManGvdR10_%d"                   , m_manGvdR10                       , IntAry1d (3,0), 3   ,"ManGvdR10"                        )
+    ("SignGvdR11_%d"                  , m_signGvdR11                      , BoolAry1d(3,0), 3   ,"SignGvdR11"                       )
+    ("ExpGvdR11_%d"                   , m_expGvdR11                       , IntAry1d (3,0), 3   ,"ExpGvdR11"                        )
+    ("ManGvdR11_%d"                   , m_manGvdR11                       , IntAry1d (3,0), 3   ,"ManGvdR11"                        )
+    ("SignGvdR12_%d"                  , m_signGvdR12                      , BoolAry1d(3,0), 3   ,"SignGvdR12"                       )
+    ("ExpGvdR12_%d"                   , m_expGvdR12                       , IntAry1d (3,0), 3   ,"ExpGvdR12"                        )
+    ("ManGvdR12_%d"                   , m_manGvdR12                       , IntAry1d (3,0), 3   ,"ManGvdR12"                        )
+    ("SignGvdR20_%d"                  , m_signGvdR20                      , BoolAry1d(3,0), 3   ,"SignGvdR20"                       )
+    ("ExpGvdR20_%d"                   , m_expGvdR20                       , IntAry1d (3,0), 3   ,"ExpGvdR20"                        )
+    ("ManGvdR20_%d"                   , m_manGvdR20                       , IntAry1d (3,0), 3   ,"ManGvdR20"                        )
+    ("SignGvdR21_%d"                  , m_signGvdR21                      , BoolAry1d(3,0), 3   ,"SignGvdR21"                       )
+    ("ExpGvdR21_%d"                   , m_expGvdR21                       , IntAry1d (3,0), 3   ,"ExpGvdR21"                        )
+    ("ManGvdR21_%d"                   , m_manGvdR21                       , IntAry1d (3,0), 3   ,"ManGvdR21"                        )
+    ("SignGvdR22_%d"                  , m_signGvdR22                      , BoolAry1d(3,0), 3   ,"SignGvdR22"                       )
+    ("ExpGvdR22_%d"                   , m_expGvdR22                       , IntAry1d (3,0), 3   ,"ExpGvdR22"                        )
+    ("ManGvdR22_%d"                   , m_manGvdR22                       , IntAry1d (3,0), 3   ,"ManGvdR22"                        )
     ("SignGvdTX_%d"                   , m_signGvdTX                       , BoolAry1d(3,0), 3   ,"SignGvdTX"                        )
     ("ExpGvdTX_%d"                    , m_expGvdTX                        , IntAry1d (3,0), 3   ,"ExpGvdTX"                         )
@@ -1556,30 +1580,62 @@
 UInt SEIAlternativeDepthInfo::getManGvdFocalLengthXLen       ( Int i, int j ) const
 {
-  return xGetSyntaxElementLen( m_expGvdFocalLengthX[i][j], m_precGvdFocalLength, m_manGvdFocalLengthX[i][j]  );
+  UInt rval;
+  rval = xGetSyntaxElementLen( m_expGvdFocalLengthX[i][j], m_precGvdFocalLength, m_manGvdFocalLengthX[i][j]  );
+  if (rval == 0)
+    return m_precGvdFocalLength;
+  else
+    return rval;
 };
 
 UInt SEIAlternativeDepthInfo::getManGvdFocalLengthYLen       ( Int i, int j ) const
 {
-  return xGetSyntaxElementLen( m_expGvdFocalLengthY[i][j], m_precGvdFocalLength, m_manGvdFocalLengthY[i][j]  );
+  UInt rval;
+  rval = xGetSyntaxElementLen( m_expGvdFocalLengthY[i][j], m_precGvdFocalLength, m_manGvdFocalLengthY[i][j]  );
+  if (rval == 0)
+    return m_precGvdFocalLength;
+  else
+    return rval;
 };
 
 UInt SEIAlternativeDepthInfo::getManGvdPrincipalPointXLen    ( Int i, int j ) const
 {
-  return xGetSyntaxElementLen( m_expGvdPrincipalPointX[i][j], m_precGvdPrincipalPoint, m_manGvdPrincipalPointX[i][j]  );
+  UInt rval;
+  rval = xGetSyntaxElementLen( m_expGvdPrincipalPointX[i][j], m_precGvdPrincipalPoint, m_manGvdPrincipalPointX[i][j]  );
+  if (rval == 0)
+    return m_precGvdPrincipalPoint;
+  else
+    return rval;
 };
 
 UInt SEIAlternativeDepthInfo::getManGvdPrincipalPointYLen    ( Int i, int j ) const
 {
-  return xGetSyntaxElementLen( m_expGvdPrincipalPointY[i][j], m_precGvdPrincipalPoint, m_manGvdPrincipalPointY[i][j]  );
-};
-
+  UInt rval;
+  rval = xGetSyntaxElementLen( m_expGvdPrincipalPointY[i][j], m_precGvdPrincipalPoint, m_manGvdPrincipalPointY[i][j]  );
+  if (rval == 0)
+    return m_precGvdPrincipalPoint;
+  else
+    return rval;
+};
+
+/*
 UInt SEIAlternativeDepthInfo::getManGvdRLen                  ( Int i, int j, int k ) const
 {
-  return xGetSyntaxElementLen( m_expGvdR[i][j][k], m_precGvdRotationParam, m_manGvdR[i][j][k] );
-};
+  UInt rval;
+  rval = xGetSyntaxElementLen( m_expGvdR[i][j][k], m_precGvdRotationParam, m_manGvdR[i][j][k] );
+  if (rval == 0)
+    return m_precGvdRotationParam;
+  else
+    return rval;
+};
+*/
 
 UInt SEIAlternativeDepthInfo::getManGvdTXLen                 ( Int i, int j ) const
 {
-  return xGetSyntaxElementLen( m_expGvdTX[i][j], m_precGvdTranslationParam, m_manGvdTX[i][j]  );
+  UInt rval;
+  rval = xGetSyntaxElementLen( m_expGvdTX[i][j], m_precGvdTranslationParam, m_manGvdTX[i][j]  );
+  if (rval == 0)
+    return m_precGvdTranslationParam;
+  else
+    return rval;
 };
 
Index: /branches/HTM-15.1-dev0-NICT/source/Lib/TLibCommon/SEI.h
===================================================================
--- /branches/HTM-15.1-dev0-NICT/source/Lib/TLibCommon/SEI.h	(revision 1353)
+++ /branches/HTM-15.1-dev0-NICT/source/Lib/TLibCommon/SEI.h	(revision 1354)
@@ -1155,5 +1155,5 @@
   UInt getManGvdPrincipalPointXLen    ( Int i, Int j ) const;
   UInt getManGvdPrincipalPointYLen    ( Int i, Int j ) const;
-  UInt getManGvdRLen                  ( Int i, int j, int k ) const;
+  //UInt getManGvdRLen                  ( Int i, int j ) const;
   UInt getManGvdTXLen                 ( Int i, Int j ) const;
   UInt xGetSyntaxElementLen           ( Int expo, Int prec, Int val ) const;
@@ -1185,7 +1185,31 @@
     m_manGvdPrincipalPointY.resize(3);
 
-    m_signGvdR.resize(3);
-    m_expGvdR.resize(3);
-    m_manGvdR.resize(3);
+    m_signGvdR00.resize(3);
+    m_expGvdR00.resize(3);
+    m_manGvdR00.resize(3);
+    m_signGvdR01.resize(3);
+    m_expGvdR01.resize(3);
+    m_manGvdR01.resize(3);
+    m_signGvdR02.resize(3);
+    m_expGvdR02.resize(3);
+    m_manGvdR02.resize(3);
+    m_signGvdR10.resize(3);
+    m_expGvdR10.resize(3);
+    m_manGvdR10.resize(3);
+    m_signGvdR11.resize(3);
+    m_expGvdR11.resize(3);
+    m_manGvdR11.resize(3);
+    m_signGvdR12.resize(3);
+    m_expGvdR12.resize(3);
+    m_manGvdR12.resize(3);
+    m_signGvdR20.resize(3);
+    m_expGvdR20.resize(3);
+    m_manGvdR20.resize(3);
+    m_signGvdR21.resize(3);
+    m_expGvdR21.resize(3);
+    m_manGvdR21.resize(3);
+    m_signGvdR22.resize(3);
+    m_expGvdR22.resize(3);
+    m_manGvdR22.resize(3);
 
     m_signGvdTX.resize(3);
@@ -1217,13 +1241,31 @@
       m_manGvdPrincipalPointY[i].resize(3);
 
-      m_signGvdR[i].resize(3);
-      m_expGvdR[i].resize(3);
-      m_manGvdR[i].resize(3);
-      for( Int j = 0; j < 3; j++ )
-      {
-        m_signGvdR[i][j].resize(3);
-        m_expGvdR[i][j].resize(3);
-        m_manGvdR[i][j].resize(3);
-      }
+      m_signGvdR00[i].resize(3);
+      m_expGvdR00[i].resize(3);
+      m_manGvdR00[i].resize(3);
+      m_signGvdR01[i].resize(3);
+      m_expGvdR01[i].resize(3);
+      m_manGvdR01[i].resize(3);
+      m_signGvdR02[i].resize(3);
+      m_expGvdR02[i].resize(3);
+      m_manGvdR02[i].resize(3);
+      m_signGvdR10[i].resize(3);
+      m_expGvdR10[i].resize(3);
+      m_manGvdR10[i].resize(3);
+      m_signGvdR11[i].resize(3);
+      m_expGvdR11[i].resize(3);
+      m_manGvdR11[i].resize(3);
+      m_signGvdR12[i].resize(3);
+      m_expGvdR12[i].resize(3);
+      m_manGvdR12[i].resize(3);
+      m_signGvdR20[i].resize(3);
+      m_expGvdR20[i].resize(3);
+      m_manGvdR20[i].resize(3);
+      m_signGvdR21[i].resize(3);
+      m_expGvdR21[i].resize(3);
+      m_manGvdR21[i].resize(3);
+      m_signGvdR22[i].resize(3);
+      m_expGvdR22[i].resize(3);
+      m_manGvdR22[i].resize(3);
 
       m_signGvdTX[i].resize(3);
@@ -1266,10 +1308,37 @@
   IntAry2d  m_expGvdPrincipalPointY;
   IntAry2d  m_manGvdPrincipalPointY;
-  BoolAry3d m_signGvdR;
-  IntAry3d  m_expGvdR;
-  IntAry3d  m_manGvdR;
+
+  BoolAry2d m_signGvdR00;
+  IntAry2d  m_expGvdR00;
+  IntAry2d  m_manGvdR00;
+  BoolAry2d m_signGvdR01;
+  IntAry2d  m_expGvdR01;
+  IntAry2d  m_manGvdR01;
+  BoolAry2d m_signGvdR02;
+  IntAry2d  m_expGvdR02;
+  IntAry2d  m_manGvdR02;
+  BoolAry2d m_signGvdR10;
+  IntAry2d  m_expGvdR10;
+  IntAry2d  m_manGvdR10;
+  BoolAry2d m_signGvdR11;
+  IntAry2d  m_expGvdR11;
+  IntAry2d  m_manGvdR11;
+  BoolAry2d m_signGvdR12;
+  IntAry2d  m_expGvdR12;
+  IntAry2d  m_manGvdR12;
+  BoolAry2d m_signGvdR20;
+  IntAry2d  m_expGvdR20;
+  IntAry2d  m_manGvdR20;
+  BoolAry2d m_signGvdR21;
+  IntAry2d  m_expGvdR21;
+  IntAry2d  m_manGvdR21;
+  BoolAry2d m_signGvdR22;
+  IntAry2d  m_expGvdR22;
+  IntAry2d  m_manGvdR22;
+
   BoolAry2d m_signGvdTX;
   IntAry2d  m_expGvdTX;
   IntAry2d  m_manGvdTX;
+
   Int       m_minOffsetXInt;
   Int       m_minOffsetXFrac;
Index: /branches/HTM-15.1-dev0-NICT/source/Lib/TLibDecoder/SEIread.cpp
===================================================================
--- /branches/HTM-15.1-dev0-NICT/source/Lib/TLibDecoder/SEIread.cpp	(revision 1353)
+++ /branches/HTM-15.1-dev0-NICT/source/Lib/TLibDecoder/SEIread.cpp	(revision 1354)
@@ -1768,11 +1768,32 @@
         if( sei.m_rotationGvdFlag )
         {
-          for( Int k = 0; k  <  3; k++ )  /* column */
-          {
-            sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r" ); sei.m_signGvdR[i][j][k] = (code == 1);
-            sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r" ); sei.m_expGvdR[i][j][k] = code;
-            sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r" ); sei.m_manGvdR[i][j][k] = code;
-            //sei_read_code( pDecodedMessageOutputStream, sei.getManGvdRLen(i,j,k), code, "man_gvd_r" ); sei.m_manGvdR[i][j][k] = code;
-          }
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r00" ); sei.m_signGvdR00[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r00" ); sei.m_expGvdR00[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r00" ); sei.m_manGvdR00[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r01" ); sei.m_signGvdR01[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r01" ); sei.m_expGvdR01[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r01" ); sei.m_manGvdR01[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r02" ); sei.m_signGvdR02[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r02" ); sei.m_expGvdR02[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r02" ); sei.m_manGvdR02[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r10" ); sei.m_signGvdR10[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r10" ); sei.m_expGvdR10[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r10" ); sei.m_manGvdR10[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r11" ); sei.m_signGvdR11[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r11" ); sei.m_expGvdR11[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r11" ); sei.m_manGvdR11[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r12" ); sei.m_signGvdR12[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r12" ); sei.m_expGvdR12[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r12" ); sei.m_manGvdR12[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r20" ); sei.m_signGvdR20[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r20" ); sei.m_expGvdR20[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r20" ); sei.m_manGvdR20[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r21" ); sei.m_signGvdR21[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r21" ); sei.m_expGvdR21[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r21" ); sei.m_manGvdR21[i][j] = code;
+          sei_read_flag( pDecodedMessageOutputStream, code, "sign_gvd_r22" ); sei.m_signGvdR22[i][j] = (code == 1);
+          sei_read_code( pDecodedMessageOutputStream, 6, code, "exp_gvd_r22" ); sei.m_expGvdR22[i][j] = code;
+          sei_read_code( pDecodedMessageOutputStream, sei.m_precGvdRotationParam, code, "man_gvd_r22" ); sei.m_manGvdR22[i][j] = code;
+          //sei_read_code( pDecodedMessageOutputStream, sei.getManGvdRLen(i,j,k), code, "man_gvd_r" ); sei.m_manGvdR[i][j] = code;
         }
         if( sei.m_translationGvdFlag )
Index: /branches/HTM-15.1-dev0-NICT/source/Lib/TLibEncoder/SEIwrite.cpp
===================================================================
--- /branches/HTM-15.1-dev0-NICT/source/Lib/TLibEncoder/SEIwrite.cpp	(revision 1353)
+++ /branches/HTM-15.1-dev0-NICT/source/Lib/TLibEncoder/SEIwrite.cpp	(revision 1354)
@@ -1418,17 +1418,45 @@
         if( sei.m_rotationGvdFlag )
         {
-          for( Int k = 0; k < 3; k++ )  // column
-          {
-#if DEBUG_NH_3D_SEI
-            printf("sign_gvd_r                    : sei.m_signGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_signGvdR[i][j][k]);
-            printf("exp_gvd_r                     : sei.m_expGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_expGvdR[i][j][k]);
-            printf("man_gvd_r                     : sei.m_manGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_manGvdR[i][j][k]);
-            printf("manLEN_gvd_r                  : sei.getManGvdRLen(%d,%d,%d): %u\n", i, j, k, sei.getManGvdRLen(i,j,k));
-#endif
-            WRITE_FLAG( ( sei.m_signGvdR[i][j][k] ? 1 : 0 ), "sign_gvd_r" );
-            WRITE_CODE( sei.m_expGvdR[i][j][k], 6, "exp_gvd_r" );
-            WRITE_CODE( sei.m_manGvdR[i][j][k], sei.m_precGvdRotationParam, "man_gvd_r" );
-            //WRITE_CODE( sei.m_manGvdR[i][j][k], sei.getManGvdRLen(i,j,k), "man_gvd_r" );
-          }
+#if DEBUG_NH_3D_SEI/*
+          printf("sign_gvd_r                    : sei.m_signGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_signGvdR[i][j][k]);
+          printf("exp_gvd_r                     : sei.m_expGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_expGvdR[i][j][k]);
+          printf("man_gvd_r                     : sei.m_manGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_manGvdR[i][j][k]);
+          printf("sign_gvd_r                    : sei.m_signGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_signGvdR[i][j][k]);
+          printf("exp_gvd_r                     : sei.m_expGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_expGvdR[i][j][k]);
+          printf("man_gvd_r                     : sei.m_manGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_manGvdR[i][j][k]);
+          printf("sign_gvd_r                    : sei.m_signGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_signGvdR[i][j][k]);
+          printf("exp_gvd_r                     : sei.m_expGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_expGvdR[i][j][k]);
+          printf("man_gvd_r                     : sei.m_manGvdR[%d][%d][%d]: %u\n", i, j, k, sei.m_manGvdR[i][j][k]);
+          */
+          //printf("manLEN_gvd_r                  : sei.getManGvdRLen(%d,%d,%d): %u\n", i, j, k, sei.getManGvdRLen(i,j,k));
+#endif
+          WRITE_FLAG( ( sei.m_signGvdR00[i][j] ? 1 : 0 ), "sign_gvd_r00" );
+          WRITE_CODE( sei.m_expGvdR00[i][j], 6, "exp_gvd_r00" );
+          WRITE_CODE( sei.m_manGvdR00[i][j], sei.m_precGvdRotationParam, "man_gvd_r00" );
+          WRITE_FLAG( ( sei.m_signGvdR01[i][j] ? 1 : 0 ), "sign_gvd_r01" );
+          WRITE_CODE( sei.m_expGvdR01[i][j], 6, "exp_gvd_r01" );
+          WRITE_CODE( sei.m_manGvdR01[i][j], sei.m_precGvdRotationParam, "man_gvd_r01" );
+          WRITE_FLAG( ( sei.m_signGvdR02[i][j] ? 1 : 0 ), "sign_gvd_r02" );
+          WRITE_CODE( sei.m_expGvdR02[i][j], 6, "exp_gvd_r02" );
+          WRITE_CODE( sei.m_manGvdR02[i][j], sei.m_precGvdRotationParam, "man_gvd_r02" );
+          WRITE_FLAG( ( sei.m_signGvdR10[i][j] ? 1 : 0 ), "sign_gvd_r10" );
+          WRITE_CODE( sei.m_expGvdR10[i][j], 6, "exp_gvd_r10" );
+          WRITE_CODE( sei.m_manGvdR10[i][j], sei.m_precGvdRotationParam, "man_gvd_r10" );
+          WRITE_FLAG( ( sei.m_signGvdR11[i][j] ? 1 : 0 ), "sign_gvd_r11" );
+          WRITE_CODE( sei.m_expGvdR11[i][j], 6, "exp_gvd_r11" );
+          WRITE_CODE( sei.m_manGvdR11[i][j], sei.m_precGvdRotationParam, "man_gvd_r11" );
+          WRITE_FLAG( ( sei.m_signGvdR12[i][j] ? 1 : 0 ), "sign_gvd_r12" );
+          WRITE_CODE( sei.m_expGvdR12[i][j], 6, "exp_gvd_r12" );
+          WRITE_CODE( sei.m_manGvdR12[i][j], sei.m_precGvdRotationParam, "man_gvd_r12" );
+          WRITE_FLAG( ( sei.m_signGvdR20[i][j] ? 1 : 0 ), "sign_gvd_r20" );
+          WRITE_CODE( sei.m_expGvdR20[i][j], 6, "exp_gvd_r20" );
+          WRITE_CODE( sei.m_manGvdR20[i][j], sei.m_precGvdRotationParam, "man_gvd_r20" );
+          WRITE_FLAG( ( sei.m_signGvdR21[i][j] ? 1 : 0 ), "sign_gvd_r21" );
+          WRITE_CODE( sei.m_expGvdR21[i][j], 6, "exp_gvd_r21" );
+          WRITE_CODE( sei.m_manGvdR21[i][j], sei.m_precGvdRotationParam, "man_gvd_r21" );
+          WRITE_FLAG( ( sei.m_signGvdR22[i][j] ? 1 : 0 ), "sign_gvd_r22" );
+          WRITE_CODE( sei.m_expGvdR22[i][j], 6, "exp_gvd_r22" );
+          WRITE_CODE( sei.m_manGvdR22[i][j], sei.m_precGvdRotationParam, "man_gvd_r22" );
+          //WRITE_CODE( sei.m_manGvdR2[i][j], sei.getManGvdRLen(i,j,k), "man_gvd_r" );
         }
         if( sei.m_translationGvdFlag )
