diff --git a/camera/hal/intel/ipu6/src/core/PSysProcessor.cpp b/camera/hal/intel/ipu6/src/core/PSysProcessor.cpp
index cea1c8e..6bc03b7 100644
--- a/camera/hal/intel/ipu6/src/core/PSysProcessor.cpp
+++ b/camera/hal/intel/ipu6/src/core/PSysProcessor.cpp
@@ -37,8 +37,6 @@
  */
 #define SOF_EVENT_MARGIN (5000000)  // 5ms
 #define SOF_EVENT_MAX_MARGIN (60000000)  // 60ms
-// GPU TNR needs to run extra 2 iterators to converge
-#define TNR_CONVERGE_COUNT 2
 
 #define EXTREME_NEGATIVE_STRENGTH (-60)
 #define EXTREME_POSITIVE_STRENGTH (20)
@@ -802,7 +800,7 @@
                 fakeTaskBuffers[item.first] = nullptr;
             }
         }
-        for (int i = TNR_CONVERGE_COUNT; i > 0; i--) {
+        for (int i = PlatformData::getTnrExtraFrameCount(mCameraId); i > 0; i--) {
             CameraBufferPortMap srcBuf;
             {
             AutoMutex lock(mBufferMapLock);
diff --git a/camera/hal/intel/ipu6/src/platformdata/CameraParser.cpp b/camera/hal/intel/ipu6/src/platformdata/CameraParser.cpp
index da63d9a..857a586 100644
--- a/camera/hal/intel/ipu6/src/platformdata/CameraParser.cpp
+++ b/camera/hal/intel/ipu6/src/platformdata/CameraParser.cpp
@@ -480,6 +480,9 @@
     } else if (strcmp(name, "videoStreamNum") == 0) {
         int val = atoi(atts[1]);
         pCurrentCam->mVideoStreamNum = val > 0 ? val : DEFAULT_VIDEO_STREAM_NUM;
+    } else if (strcmp(name, "tnrExtraFrameNum") == 0) {
+        int val = atoi(atts[1]);
+        pCurrentCam->mTnrExtraFrameNum = val > 0 ? val : DEFAULT_TNR_EXTRA_FRAME_NUM;
     }
 }
 
diff --git a/camera/hal/intel/ipu6/src/platformdata/PlatformData.cpp b/camera/hal/intel/ipu6/src/platformdata/PlatformData.cpp
index 7286650..13ecb1f 100644
--- a/camera/hal/intel/ipu6/src/platformdata/PlatformData.cpp
+++ b/camera/hal/intel/ipu6/src/platformdata/PlatformData.cpp
@@ -1390,4 +1390,8 @@
     return getInstance()->mStaticCfg.mCommonConfig.isTnrParamForceUpdate;
 }
 
+int PlatformData::getTnrExtraFrameCount(int cameraId)
+{
+    return getInstance()->mStaticCfg.mCameras[cameraId].mTnrExtraFrameNum;
+}
 } // namespace icamera
diff --git a/camera/hal/intel/ipu6/src/platformdata/PlatformData.h b/camera/hal/intel/ipu6/src/platformdata/PlatformData.h
index 5b1f76a..aa6499a 100644
--- a/camera/hal/intel/ipu6/src/platformdata/PlatformData.h
+++ b/camera/hal/intel/ipu6/src/platformdata/PlatformData.h
@@ -52,6 +52,7 @@
 
 #define FACE_ENGINE_DEFAULT_RUNNING_INTERVAL 1
 
+#define DEFAULT_TNR_EXTRA_FRAME_NUM 2
 /* Max number of the RAW buffer number is 32.
  * Max number size of the pipeline depth is 6.
  * Max setting count should be larger than raw buffer number + pipeline depth.
@@ -140,7 +141,8 @@
                 mPsysBundleWithAic(false),
                 mSwProcessingAlignWithIsp(false),
                 mMaxNvmDataSize(0),
-                mVideoStreamNum(DEFAULT_VIDEO_STREAM_NUM)
+                mVideoStreamNum(DEFAULT_VIDEO_STREAM_NUM),
+                mTnrExtraFrameNum(DEFAULT_TNR_EXTRA_FRAME_NUM)
             {
             }
 
@@ -229,6 +231,7 @@
             std::unordered_map<std::string, std::string> mCameraModuleToAiqbMap;
             std::vector<IGraphType::ScalerInfo> mScalerInfo;
             int mVideoStreamNum;
+            int mTnrExtraFrameNum;
         };
 
         std::vector<CameraInfo> mCameras;
@@ -1187,5 +1190,9 @@
      * Check if update tnr7us params every frame
      */
      static bool isTnrParamForceUpdate();
+     /**
+     * the extra frame count for still stream
+     */
+     static int getTnrExtraFrameCount(int cameraId);
 };
 } /* namespace icamera */
