diff --git a/encode.m b/encode.m
index 6c6b5c94fb042c6b08c689da0ad93c802d3f06ee..f1a84488152bd7fc4e85329408c8263ffedd6051 100644
--- a/encode.m
+++ b/encode.m
@@ -16,6 +16,7 @@ p.addParameter('LogFile'          ,'log.rtf' ,@ischar);
 p.addParameter('SourceWidth'      ,'512'     ,@ischar);
 p.addParameter('SourceHeight'     ,'512'     ,@ischar);
 p.addParameter('InputBitDepth'    ,'8'       ,@ischar);
+p.addParameter('InternalBitDepth' ,'8'       ,@ischar);
 p.addParameter('InputChromaFormat','420'     ,@ischar);
 p.addParameter('FrameRate'        ,'60'      ,@ischar);
 p.addParameter('FrameSkip'        ,'0'       ,@ischar);
@@ -31,6 +32,17 @@ values     = struct2cell(p.Results);
 extraParameters = fieldnames (p.Unmatched);
 extraValues     = struct2cell(p.Unmatched);
 
+ReconFile     = p.Results.ReconFile;
+BitstreamFile = p.Results.BitstreamFile;
+LogFile       = p.Results.LogFile;
+
+for file={ReconFile,BitstreamFile,LogFile}
+    [folder,~,~] = fileparts(file{:});
+    if ~(7==exist(folder,'dir'))
+        mkdir(folder);
+    end
+end
+
 try
     argList = paramToArg([parameters;extraParameters],[values;extraValues]);
     status = system([TAppEncoder,' ',argList]);
@@ -42,19 +54,18 @@ catch
     system([TAppEncoder,' ',argList]);
 end
 
-    function argList = paramToArg(parameters,values)
-        indConf = cellfun(@(str) strcmp(str,'ConfigFile'),parameters);
-        indLog  = cellfun(@(str) strcmp(str,'LogFile'   ),parameters);
-        ind     = indConf|indLog;
-        
-        argConf = strjoin(['-c',values(indConf)]);
-        argLog  = strjoin(['>' ,values(indLog) ]);
-        argList = cellfun(@(param,val) ['--',param,'=',val],...
-            parameters(~ind),values(~ind),'UniformOutput',false);
-        
-        argList = [argConf;argList;argLog];
-        argList = strjoin(argList(:));
-    end
-
 end
 
+function argList = paramToArg(parameters,values)
+indConf = cellfun(@(str) strcmp(str,'ConfigFile'),parameters);
+indLog  = cellfun(@(str) strcmp(str,'LogFile'   ),parameters);
+ind     = indConf|indLog;
+
+argConf = strjoin(['-c',values(indConf)]);
+argLog  = strjoin(['>' ,values(indLog) ]);
+argList = cellfun(@(param,val) ['--',param,'=',val],...
+    parameters(~ind),values(~ind),'UniformOutput',false);
+
+argList = [argConf;argList;argLog];
+argList = strjoin(argList(:));
+end
\ No newline at end of file