diff --git a/app/otbSAROrthoInterferogram.cxx b/app/otbSAROrthoInterferogram.cxx
index 210dead0630028958f6a4072d18b155e34d7ec3b..cbf7beb9448f0056bc70ae2173d64067b2d69908 100644
--- a/app/otbSAROrthoInterferogram.cxx
+++ b/app/otbSAROrthoInterferogram.cxx
@@ -94,6 +94,12 @@ namespace otb
 	SetDefaultParameterInt("margin", 1000);
 	SetMinimumParameterIntValue("margin", 0);
 	MandatoryOff("margin");
+	
+	AddParameter(ParameterType_Int, "streamingsizevalue", "Value to specify the streaming size (in MB)");
+	SetParameterDescription("streamingsizevalue","Value to specify the streaming size (in MB)");
+	SetDefaultParameterInt("streamingsizevalue", 3000); // Default 3GB
+	SetMinimumParameterIntValue("streamingsizevalue", 0);
+	MandatoryOff("streamingsizevalue");
 
 	AddParameter(ParameterType_OutputImage, "out", "Interferogram");
 	SetParameterDescription("out","Output Vector Image : Interferogram.");
@@ -118,9 +124,11 @@ namespace otb
 	// Get numeric parameters
 	double factor_gain = GetParameterFloat("gain");
 	int margin = GetParameterInt("margin");
+	int streamingSizeValue = GetParameterInt("streamingsizevalue");
 	
 	otbAppLogINFO(<<"Gain Factor : "<<factor_gain);
 	otbAppLogINFO(<<"Margin : "<<margin);
+	
 
 	/////////////////////////////////// Compensated Complex Filter ////////////////////////////////////////
 	// Instanciate the first filter
@@ -162,6 +170,32 @@ namespace otb
 	filterGroupedBy->SetCartesianMeanInput(CartMeanPtr);
 	filterGroupedBy->SetCompensatedComplexInput(filterCompensatedComplex->GetOutput());
 
+
+	// Define the main pipeline (controlled with extended FileName in order to obtain better performances)
+	Parameter* param = GetParameterByKey("out");
+	OutputImageParameter* paramDown = dynamic_cast<OutputImageParameter*>(param);
+	std::string origin_FileName = paramDown->GetFileName();
+
+	// Check if FileName is extended (with the ? caracter)
+	// If not extended then override the FileName
+	if (origin_FileName.find("?") == std::string::npos && !origin_FileName.empty()) 
+	  {
+	    otbAppLogINFO(<<"Streaming Size Value : "<<streamingSizeValue);
+
+	    std::string extendedFileName = origin_FileName;
+	
+	    // Construct the extendedPart
+	    std::ostringstream os;
+	    os << "?&streaming:type=tiled&streaming:sizevalue=" << streamingSizeValue ;
+	
+	    // Add the extendedPart
+	    std::string extendedPart = os.str();
+	    extendedFileName.append(extendedPart);
+	
+	    // Set the new FileName with extended options
+	    SetParameterString("out", extendedFileName);
+	  }
+
 	// Main Output
 	SetParameterOutputImage("out", filterGroupedBy->GetOutput());
       }