Index: branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncCfg.cpp
===================================================================
--- branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 388)
+++ branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 408)
@@ -397,5 +397,10 @@
   ("SAO", m_abUseSAO, std::vector<Bool>(1, true), "SAO")
   ("MaxNumOffsetsPerPic", m_maxNumOffsetsPerPic, 2048, "2048: default")   
+#if LGE_SAO_MIGRATION_D0091
+  ("SAOLcuBoundary",          m_saoLcuBoundary,          false, "0: right/bottom LCU boundary areas skipped from SAO parameter estimation, 1: non-deblocked pixels are used for those areas")
+  ("SAOLcuBasedOptimization", m_saoLcuBasedOptimization, true, "0: SAO picture-based optimization, 1: SAO LCU-based optimization ")
+#else
   ("SAOInterleaving", m_saoInterleavingFlag, false, "0: SAO Picture Mode, 1: SAO Interleaving ")   
+#endif
 
   ("ALFEncodePassReduction", m_iALFEncodePassReduction, 0, "0:Original 16-pass, 1: 1-pass, 2: 2-pass encoding")
@@ -1630,5 +1635,9 @@
   printf("CIP:%d ", m_bUseConstrainedIntraPred);
   printf("PCM:%d ", (m_usePCM && (1<<m_uiPCMLog2MinSize) <= m_uiMaxCUWidth)? 1 : 0);
+#if LGE_SAO_MIGRATION_D0091
+  printf("SAOLcuBasedOptimization:%d ", (m_saoLcuBasedOptimization)?(1):(0));
+#else
   printf("SAOInterleaving:%d ", (m_saoInterleavingFlag)?(1):(0));
+#endif
 #if LOSSLESS_CODING
   printf("LosslessCuEnabled:%d ", (m_useLossless)? 1:0 );
Index: branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncCfg.h
===================================================================
--- branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncCfg.h	(revision 388)
+++ branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncCfg.h	(revision 408)
@@ -165,5 +165,10 @@
 #endif
   Int       m_maxNumOffsetsPerPic;                            ///< SAO maximun number of offset per picture
+#if LGE_SAO_MIGRATION_D0091
+  Bool      m_saoLcuBoundary;                                 ///< SAO parameter estimation using non-deblocked pixels for LCU bottom and right boundary areas
+  Bool      m_saoLcuBasedOptimization;                        ///< SAO LCU-based optimization
+#else
   Bool      m_saoInterleavingFlag;                            ///< SAO interleaving flag
+#endif
   // coding tools (loop filter)
   vector<Bool> m_abUseALF;                                    ///< flag for using adaptive loop filter [0] - video, [1] - depth
Index: branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncTop.cpp
===================================================================
--- branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncTop.cpp	(revision 388)
+++ branches/HTM-6.2-dev1-LG/source/App/TAppEncoder/TAppEncTop.cpp	(revision 408)
@@ -311,5 +311,10 @@
 #endif
     m_acTEncTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic);
+#if LGE_SAO_MIGRATION_D0091
+    m_acTEncTopList[iViewIdx]->setSaoLcuBoundary (m_saoLcuBoundary);
+    m_acTEncTopList[iViewIdx]->setSaoLcuBasedOptimization (m_saoLcuBasedOptimization);
+#else
     m_acTEncTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag);
+#endif
     m_acTEncTopList[iViewIdx]->setPCMInputBitDepthFlag  ( m_bPCMInputBitDepthFlag); 
     m_acTEncTopList[iViewIdx]->setPCMFilterDisableFlag  ( m_bPCMFilterDisableFlag); 
@@ -619,8 +624,13 @@
 #endif
 #if INTER_VIEW_VECTOR_SCALING_C0115
-     m_acTEncDepthTopList[iViewIdx]->setUseIVS                ( m_bUseIVS );
+      m_acTEncDepthTopList[iViewIdx]->setUseIVS                ( m_bUseIVS );
 #endif
       m_acTEncDepthTopList[iViewIdx]->setMaxNumOffsetsPerPic (m_maxNumOffsetsPerPic);
+#if LGE_SAO_MIGRATION_D0091
+      m_acTEncDepthTopList[iViewIdx]->setSaoLcuBoundary (m_saoLcuBoundary);
+      m_acTEncDepthTopList[iViewIdx]->setSaoLcuBasedOptimization (m_saoLcuBasedOptimization);
+#else
       m_acTEncDepthTopList[iViewIdx]->setSaoInterleavingFlag (m_saoInterleavingFlag);
+#endif
       m_acTEncDepthTopList[iViewIdx]->setPCMInputBitDepthFlag  ( m_bPCMInputBitDepthFlag); 
       m_acTEncDepthTopList[iViewIdx]->setPCMFilterDisableFlag  ( m_bPCMFilterDisableFlag); 
