할로윈 특가사탕 안 주면, 영상을 고친다!세 플랜 모두 인하. 영구 라이선스 $30 할인11월 2일 23:59(태평양 시간)까지

요금 보기

영상의 시간적 일관성: 복원한 영상이 깜빡이고 반짝이고 잔상이 생기는 이유

처리한 영상이 깜빡이거나 질감이 반짝이고, 꼬리 잔상이나 프레임 보간 뒤 이중 이미지가 생기는 이유와 측정법, 직접 테스트한 FFmpeg 해결법을 정리했습니다.

핵심 요약

시간적 일관성이란 물체가 실제로 변하지 않는 한 한 프레임에서 다음 프레임으로 넘어가도 똑같이 보이는 것을 뜻합니다. 영상 처리는 흔히 네 가지 방식으로 이를 깨뜨립니다. 밝기 깜빡임, 미세 질감이 반짝이거나 기어다니는 현상, 움직이는 물체 뒤의 꼬리 잔상, 프레임 보간에서 생기는 이중 이미지입니다. 원인이 저마다 다르므로 해결법도 저마다 다릅니다.

  • 시간적 일관성이란 물체가 실제로 변하지 않는 한 프레임마다 똑같이 보이는 것을 말합니다. 영상 처리는 이를 네 가지 방식으로 깨뜨립니다. 깜빡임, 반짝임, 꼬리 잔상, 이중 이미지입니다.
  • 깜빡임과 반짝임의 근본 원인은 대부분 프레임을 하나씩 따로 처리하는 데 있습니다. 프레임 사이의 작은 차이가 서로 다른 판단으로 이어지기 때문입니다.
  • 프레임을 평균하면 노이즈는 줄지만 움직이는 것은 모두 번집니다. 테스트에서 움직이는 드론 영상에 단순 평균을 적용하자 노이즈 낀 입력보다 점수가 낮았고, 적응형 필터는 입력보다 2.7 dB 높았습니다.
  • 프레임을 섞어 보간하면 이중 이미지가 생깁니다. 움직임 보상 보간은 부드러운 드론 영상에서 35.5 dB로 블렌딩의 29.6 dB를 앞섰지만, 흔들리는 영상에서는 우위를 잃었습니다.
  • 시간 축 문제는 소스 프레임 레이트로, 재생 상태에서 판단하세요. 프레임 하나만 보면 전부 가려집니다.

시간적 일관성이란?

정지 이미지는 한 번만 제대로 보이면 됩니다. 영상 프레임은 제대로 보이는 동시에 앞뒤 프레임과도 맞아야 합니다. 눈은 변화에 아주 민감하기 때문입니다. 어떤 프레임에서는 가만히 있던 질감이 다음 프레임에서 움직이면, 프레임 하나하나는 멀쩡해 보여도 반짝임으로 읽힙니다.

실패보이는 현상흔한 원인
밝기 깜빡임화면 전체가 밝아졌다 어두워졌다 함깜빡이는 조명, 옛 필름의 노출, 프레임마다 다른 자동 보정
반짝임 또는 질감 기어다님장면은 멈춰 있는데 미세 디테일이 끓거나 흘러다님모델이 프레임마다 질감을 따로 다시 만듦
꼬리 잔상움직이는 물체 뒤로 희미한 복사본이 따라옴움직임을 고려하지 않고 프레임을 평균함
이중 이미지와 뒤틀림새 프레임에 겹친 두 복사본이나 휜 가장자리블렌딩 보간이나 매칭이 부정확한 보간
저더 또는 끊김움직임이 매끄럽지 않고 툭툭 끊김프레임 레이트 변환이나 누락된 프레임

저더와 프레임 누락은 일관성보다 타이밍 문제에 가깝습니다. 끊기는 영상 해결 방법에서 다룹니다.

프레임별 처리는 왜 깜빡일까?

이미지 모델과 필터는 101번 프레임이 100번 프레임 다음이라는 것을 모릅니다. 프레임마다 따로 돌리면 매번 새로 판단합니다. 노이즈, 압축, 작은 움직임은 프레임마다 다르므로 판단도 달라집니다. 샤프닝 필터는 조금씩 다른 가장자리를 강조하고, 생성형 모델은 조금씩 다른 모공과 잎을 지어내고, 자동 색보정은 조금씩 다른 레벨을 고릅니다. Lai 연구팀은 2018년 논문에서 이를 요약했습니다. 이미지 처리 알고리즘을 프레임마다 독립적으로 적용하면 시간에 따라 일관되지 않은 결과가 나오는 경우가 많다는 것입니다.

빠져나갈 방법은 세 가지입니다.

  • 여러 프레임을 보는 모델을 씁니다. 다중 프레임·순환형 복원 모델은 이웃 프레임을 정렬하고 서로 일치하는 정보를 재사용하므로, 디테일이 한 번 나타나면 그 자리에 머뭅니다. 작동 방식과 실패하는 지점은 AI 복원 영상이 플라스틱처럼 보이는 이유에서 설명합니다.
  • 나중에 결과를 안정화합니다. 블라인드 시간적 일관성 연구는 원본 영상과 프레임별 처리 결과를 받아 더 안정된 버전을 만듭니다. Lai의 방법은 단기·장기 시간 손실로 순환 신경망을 학습시키고, Deep Video Prior는 대규모 데이터셋이나 광학 흐름 없이 해당 영상 하나만으로 네트워크를 학습시킵니다.
  • 강도를 낮춥니다. 프레임별 처리가 화면을 덜 바꿀수록 깜빡일 거리도 줄어듭니다. 정지 화면에서는 강한 설정이 더 좋아 보여도, 재생하면 약한 설정이 더 차분해 보이는 경우가 많은 이유입니다.

질감이 기어다니는 현상이 흔한 영상 생성 AI 클립이라면 AI 생성 영상의 깜빡임 줄이는 방법을 참고하세요.

밝기 깜빡임과 deflicker 필터

화면 전체의 깜빡임은 대개 처리가 아니라 소스에서 옵니다.

  • 조명. Sony의 깜빡임 가이드에 따르면 구형 형광등은 초당 100회 또는 120회 깜빡이고, LED 조명은 초당 수백에서 수천 회 깜빡일 수 있습니다. 셔터 속도가 그 주기와 맞지 않으면 프레임마다 서로 다른 순간의 빛을 담게 됩니다.
  • 필름. 필름 스캔은 프레임마다 따로 노출된 것이라, 작은 노출과 농도 차이가 재생할 때 맥박처럼 깜빡입니다. 전체 정리 과정은 8mm·16mm 필름 스캔에서 다룹니다.
  • 자동 보정. 자동 노출, 자동 화이트 밸런스, 프레임마다 레벨을 자동으로 맞추는 필터는 프레임마다 값이 오락가락할 수 있습니다.

FFmpeg의 deflicker 필터는 프레임마다 평균 밝기를 재고, 이웃 프레임에 걸친 이동 평균을 구한 뒤 각 프레임을 그쪽으로 맞춥니다. 번들 샘플 클립에 강한 깜빡임을 더하고, 연속한 프레임 사이에서 평균 밝기가 얼마나 튀는지 측정했습니다.

버전프레임 간 변동(표준편차)
원본 클립0.27
깜빡임 추가8.71
deflicker=size=5:mode=pm1.30
deflicker=size=9:mode=am1.22
deflicker=size=15:mode=pm0.67
원본 클립, 깜빡이는 버전, deflicker를 적용한 버전의 프레임별 평균 밝기

창을 넓히면 더 많이 매끄러워지지만 페이드, 지나가는 구름, 켜지는 조명처럼 남겨야 할 밝기 변화까지 평평해집니다. 기본값인 5프레임에서 시작하세요.

ffmpeg -i input.mp4 -vf "deflicker=size=5:mode=pm" -c:v libx264 -crf 18 -c:a copy deflickered.mp4

deflicker는 화면 전체를 고르게 맞춥니다. 롤링 셔터가 빛의 맥동 중간을 잡아서 생기는, 화면을 가로질러 흐르는 띠는 고치지 못합니다. 이 경우 진짜 해결책은 촬영할 때 셔터 속도를 조명에 맞추는 것입니다.

시간적 노이즈 제거와 꼬리 잔상

시간적 노이즈 제거가 강력한 이유는 노이즈는 프레임마다 바뀌지만 장면은 대체로 바뀌지 않기 때문입니다. 함정은 '대체로'에 있습니다. 무언가 움직이는 곳에서 같은 픽셀 위치를 여러 프레임에 걸쳐 평균하면 이미 지나간 물체가 섞여 들어가 뒤에 잔상을 남깁니다.

부드러운 드론 영상에 노이즈를 더한 뒤, 단순 프레임 평균과 픽셀 변화가 너무 크면 평균을 멈추는 적응형 시간 필터를 비교했습니다.

필터깨끗한 클립 대비 PSNR
노이즈 낀 입력30.3 dB
tmix=frames=3(3프레임 단순 평균)29.8 dB
tmix=frames=5(5프레임 단순 평균)28.1 dB
hqdn3d=8:6:12:9(공간 + 시간)33.0 dB
atadenoise(적응형 시간 평균)33.1 dB

단순 평균은 아무것도 하지 않은 것보다 점수가 낮았습니다. 노이즈는 줄었지만 움직이는 풍경이 번지면서 잃은 것이 얻은 것보다 컸습니다. 더 빠른 피사체에서는 잔상이 그대로 눈에 보입니다.

같은 용 프레임의 노이즈 버전, 3프레임 평균 후 꼬리 잔상이 생긴 버전, 적응형 atadenoise 필터로 잔상 없이 처리한 버전

그러니 움직임에 적응하는 시간 필터를 쓰고, 시간 축 강도는 적당히 유지하고, 평평한 배경만이 아니라 움직이는 가장자리를 확인하세요.

ffmpeg -i input.mp4 -vf "atadenoise=0a=0.1:0b=0.2:1a=0.1:1b=0.2:2a=0.1:2b=0.2" -c:v libx264 -crf 18 -c:a copy denoised.mp4

임계값은 atadenoise가 언제 픽셀이 바뀌었다고 보고 평균을 멈출지 정합니다. 임계값을 높이면 노이즈는 더 많이 지워지지만 잔상 위험도 커집니다. 공간 노이즈 제거는 노이즈 제거, 디블로킹, 샤프닝, 색 보정을 참고하세요.

프레임 보간: 복제, 블렌딩, 움직임 보상, AI

프레임 보간은 프레임 레이트를 올리거나 슬로 모션을 만들려고 카메라가 기록하지 않은 프레임을 만듭니다. 중간 프레임을 만드는 방법은 네 가지입니다.

  • 복제는 이전 프레임을 반복합니다. 새로 지어내는 것은 없지만 움직임은 여전히 뚝뚝 끊깁니다.
  • 블렌딩은 이웃한 두 프레임을 섞습니다. 움직이는 것은 모두 절반 농도로 두 번 나타납니다. 이것이 이중 이미지입니다.
  • 움직임 보상 보간은 픽셀 블록마다 어디로 움직이는지 추정하고 그 경로의 중간에 그립니다. 잘 되면 올바른 위치에 선명한 물체 하나가 나오지만, 가장자리, 가림, 반복 패턴처럼 추정이 빗나가는 곳에서는 가장자리가 휘고 조각이 찢어집니다.
  • AI 보간은 네트워크로 움직임을 추정하고 프레임을 합성합니다. RIFE는 중간 흐름을 직접 추정해 GPU에서 실시간으로 돌아가고, FILM은 프레임 사이의 큰 움직임에 맞춰 만든 단일 네트워크를 씁니다.

앞의 세 가지를 측정하려고 번들 샘플 클립 두 개에서 프레임을 뺀 뒤 FFmpeg로 다시 만들고, 실제 프레임과 비교했습니다.

방법부드러운 드론 영상, 4×(6→24 fps)흔들리는 핸드헬드 영상, 2×(15→30 fps)
복제(fps)26.9 dB24.2 dB
블렌딩(framerate)29.6 dB25.5 dB
움직임 보상(minterpolate, mci)35.5 dB25.2 dB
5 fps 클립에서 복제, 블렌딩, 움직임 보상으로 만든 중간 프레임과 위쪽의 점수 차트

교훈은 두 가지입니다. 부드러운 움직임에서는 움직임 보상이 블렌딩보다 약 6 dB 앞서며 크게 이겼습니다. 흔들리는 핸드헬드 영상에서는 모든 방법이 고전했습니다. 보간은 두 프레임 사이의 움직임이 매끄럽다고 가정하는데, 흔들림은 프레임마다 방향이 뒤집히기 때문입니다. 카메라가 흔들렸다면 먼저 흔들림 보정이나 다른 안정화 도구로 영상을 안정시킨 뒤 보간하세요.

컷을 넘나들며 모핑되지 않도록 장면 전환 감지를 켠 FFmpeg 움직임 보상 모드입니다.

ffmpeg -i input.mp4 -vf "minterpolate=fps=60:mi_mode=mci:mc_mode=aobmc:me_mode=bidir:vsbmc=1:scd=fdiff" -c:v libx264 -crf 18 -c:a copy smooth60.mp4

CPU에서는 느립니다. 테스트 노트북에서 1080p 24 fps 5초 분량을 60 fps로 바꾸는 데 134초가 걸렸습니다. 블렌딩 버전은 빠르고, 이중 이미지가 잘 보이지 않는 느린 팬에는 이것으로 충분합니다.

ffmpeg -i input.mp4 -vf "framerate=fps=60" -c:v libx264 -crf 18 -c:a copy blend60.mp4

보간 아티팩트는 예측할 수 있는 곳에 몰립니다. 빠르게 움직이는 손발, 회전하는 바퀴, 울타리 같은 반복 패턴, 서로 앞을 지나가는 물체, 장면 전환입니다. 애초에 프레임 레이트를 올릴지 판단하려면 영상을 60 fps로 변환하는 방법을 참고하세요.

시간적 일관성을 확인하는 방법

이런 실패는 정지 화면으로는 하나도 판단할 수 없습니다. 다음 세 가지 점검으로 대부분 잡을 수 있습니다.

  1. 소스 프레임 레이트, 100% 배율로 재생해 봅니다. 평평한 면에서는 기어다니는 질감을, 움직이는 가장자리에서는 잔상을, 새 프레임에서는 이중 이미지를 찾으세요.
  2. 프레임별 평균 밝기를 그래프로 그립니다. 선이 매끄러우면 괜찮고, 톱니 모양이면 깜빡임입니다.
ffmpeg -i input.mp4 -vf "signalstats,metadata=print:key=lavfi.signalstats.YAVG:file=yavg.txt" -f null -

텍스트 파일에 모든 프레임의 평균 휘도(YAVG)가 기록되므로 바로 스프레드시트 차트로 만들 수 있습니다.

  1. 연속한 프레임의 차이를 봅니다. 정지한 장면이라면 처리한 클립이 소스보다 더 많이 변해서는 안 됩니다. 반짝임은 평평한 면에 반점처럼 밝게 드러납니다.
ffmpeg -i input.mp4 -vf "tblend=all_mode=difference,eq=contrast=4" -c:v libx264 -crf 18 -an diff.mp4

소스와 결과에 같은 명령을 실행해 비교하세요.

달라지는 점

  • 이미지 모델 대신 비디오 모델. 비디오 초해상도와 복원은 이제 프레임 쌍을 처리하는 대신 여러 프레임에 걸쳐 정보를 전파하고, 디퓨전 기반 업스케일러는 시간 레이어를 더하거나 영상 생성 모델에서 출발해 디테일이 시간에 걸쳐 일관되게 생성되도록 합니다.
  • 보간은 더 빨라지고 큰 움직임도 다룹니다. 실시간 흐름 추정(RIFE)과 큰 움직임을 위한 단일 네트워크 설계(FILM) 덕분에 보간은 오프라인 실험에서 플레이어와 편집 프로그램으로 옮겨 왔습니다.
  • 일관성은 가정하지 않고 측정합니다. 블라인드 시간적 일관성 연구가 깜빡임을 수치로 나타내는 방법을 내놓으면서, 일관성은 선명도와 나란히 보고되는 지표가 되어 가고 있습니다.

KwaFlux는 어떻게 다루나

  • 스마트 복구는 이웃 프레임을 활용합니다. 화질 복구의 스마트 복구는 프레임마다 처음부터 다시 만드는 대신 이웃 프레임을 활용합니다. 장면 복구 유형은 프레임 단위로 처리하므로 내보내기 전에 재생 상태로 미리 보세요.
  • 스마트 보간은 마지막에 실행됩니다. 화질 복구 작업대는 디인터레이스, 화질 복구, 스마트 보간 순서로 실행하므로 새 프레임은 복구된 화면으로 만들어집니다. 2x(기본값), 3x, 4x 또는 30~144 fps의 사용자 지정 목표 중에서 고르고, 일반 또는 빠름 모드를 선택합니다.
  • 화질 검출이 부드러움을 평가합니다. 부드러움 축은 "끊김, 흔들림, 깜빡임, 프레임레이트가 충분한지"를 다루며, 보간할 목표 프레임 레이트를 제안하기도 합니다.
  • 실제 프레임 레이트로 미리 봅니다. AI 미리보기는 기본적으로 15 fps로 제한되므로, 깜빡임이나 반짝임을 판단하기 전에 원본 프레임레이트를 고르세요. 보간을 켠 미리보기는 출력 프레임 레이트로 재생됩니다.
  • 소스의 깜빡임부터 고칩니다. 조명이나 필름에서 온 밝기 깜빡임은 가져오기 전에 위의 deflicker 명령을 먼저 실행한 뒤 복구하고 보간하세요.

문제 해결

문제추정 원인해결
복원한 질감이 평평한 면에서 끓어오름프레임별 처리가 디테일을 지어냄다중 프레임 복원 도구를 쓰고, 강도를 낮추고, 소스 프레임 레이트로 판단하기
화면 전체가 맥박처럼 깜빡임소스의 조명이나 노출 깜빡임5프레임 창으로 deflicker 적용, 다음 촬영 때는 셔터를 조명에 맞추기
움직임 뒤로 희미한 복사본이 따라옴움직임을 처리하지 않는 시간 평균atadenoise 같은 적응형 필터로 바꾸고 시간 축 강도 낮추기
새 프레임에 이중 이미지블렌딩 보간움직임 보상 보간이나 AI 보간 쓰기
새 프레임에 휜 가장자리나 찢어진 조각가림이나 반복 패턴에서 움직임 추정 실패배율을 낮추거나 그 장면은 보간하지 않기
두 장면 사이에 모핑이 생김컷을 넘나드는 보간장면 전환 감지를 켜거나 클립을 먼저 자르기
흔들리는 영상에서 보간 결과가 더 나쁨프레임 사이에서 움직임 방향이 뒤집힘먼저 안정화한 뒤 보간하기

할 수 없는 것

  • 카메라가 기록하지 않은 움직임을 되살리는 보간은 없습니다. 새 프레임은 추정이며, 빠르거나 가려진 움직임은 짐작으로 채웁니다.
  • deflicker는 롤링 셔터 띠를 고치지 못하고, 화면 위치마다 다르게 변하는 밝기도 고치지 못합니다.
  • 시간적 평활화는 빠른 움직임과 노이즈를 구별하지 못합니다. 너무 세게 걸면 움직이는 디테일이 번집니다.
  • 다중 프레임 모델은 반짝임을 줄이지만 없애지는 못합니다. 물, 연기, 군중처럼 정렬이 실패하는 곳에서는 남습니다.

마치며

시간적 일관성은 처리한 티가 나는 영상과 그냥 촬영한 것처럼 보이는 영상을 가르는 기준입니다. 깜빡임은 소스에서 고치고, 여러 프레임을 함께 보는 필터와 모델을 고르고, 강도는 적당히 유지하고, 모든 결과를 소스 프레임 레이트로 재생하며 판단하세요.

KwaFlux는 스마트 보간을 사용자 GPU에서 실행합니다. AI 처리는 사용자 GPU에서 실행되며 미디어 파일이 처리를 위해 업로드되지 않습니다. Windows 10(64비트, 버전 1809 이상), Windows 11, Apple Silicon 탑재 macOS 12 이상에서 실행됩니다. 미리보기에는 계정이 필요 없습니다. 어떤 클립이든 1·3·5초 미리보기를 렌더링할 수 있습니다. 내보내기, 변환, 파일 복구, 링크에서 파일 다운로드에만 로그인과 유료 플랜이 필요합니다.

내 실제 영상으로 효과를 확인하세요

KwaFlux를 받고 결제 전에 내 영상으로 효과를 무료 미리보기하세요. 계정이 필요 없고, 내 GPU에서 처리하며 미디어는 업로드하지 않습니다. 영상 미리보기는 1, 3 또는 5초, 흔들림 보정 미리보기는 5, 15 또는 30초 중에서 고를 수 있습니다.

자주 묻는 질문

AI로 화질을 개선한 영상은 왜 깜빡이나요?

모델이 프레임을 하나씩 따로 처리하면서 매번 조금씩 다르게 판단하기 때문에 질감과 밝기가 프레임마다 바뀝니다. 정렬한 이웃 프레임을 재사용하는 다중 프레임 모델이 이를 줄여 주고, 강도를 낮추는 것도 도움이 됩니다.

FFmpeg로 영상 깜빡임을 없앨 수 있나요?

일부는 가능합니다. deflicker 필터는 화면 전체의 밝기 변화를 고르게 맞추며, 테스트에서는 프레임 간 변동을 약 85% 줄였습니다. 다만 흐르는 띠나 반짝이는 질감은 고치지 못합니다. 이런 경우에는 더 안정된 소스나 다중 프레임 복원 도구가 필요합니다.

프레임 보간을 하면 왜 잔상이 생기나요?

두 프레임을 섞으면 움직이는 물체가 두 번 보이고, 움직임 보상 방식은 가림이나 반복 패턴처럼 움직임을 잘못 판단한 곳에서 가장자리를 찢거나 휘게 만들기 때문입니다. 빠르거나 흔들리거나 일부가 가려진 움직임이 가장 어렵습니다. 영상을 60 fps로 변환하는 방법을 참고하세요.

시간적 노이즈 제거가 공간 노이즈 제거보다 나은가요?

움직임에 따라 다릅니다. 정지한 부분에서는 프레임 평균이 디테일을 흐리지 않고 노이즈를 지우지만, 움직이는 부분에서는 단순 평균이 잔상을 남기고 테스트에서도 노이즈 낀 입력보다 점수가 낮았습니다. 둘을 결합한 적응형 시간 필터가 가장 높은 점수를 받았습니다.

흔들림 보정은 프레임 보간 전에 해야 하나요, 후에 해야 하나요?

전에 하세요. 보간은 두 프레임 사이의 움직임이 매끄럽다고 가정하는데, 카메라 흔들림은 그 가정을 깨뜨립니다. 핸드헬드 테스트에서 움직임 보상은 단순 블렌딩에 대한 우위를 잃었습니다. 먼저 안정화하면 보간이 다룰 매끄러운 움직임이 생깁니다.

참고 자료

  1. Lai et al., "Learning Blind Video Temporal Consistency," ECCV 2018 (per-frame processing is inconsistent over time; short-term and long-term temporal losses) (2026-10-22 확인)
  2. Lei, Xing, and Chen, "Blind Video Temporal Consistency via Deep Video Prior," NeurIPS 2020 (trained on one video pair, no optical flow) (2026-10-22 확인)
  3. Huang et al., "Real-Time Intermediate Flow Estimation for Video Frame Interpolation" (RIFE) (2026-10-22 확인)
  4. Reda et al., "FILM: Frame Interpolation for Large Motion" (single network for large motion) (2026-10-22 확인)
  5. Chan et al., "BasicVSR++: Improving Video Super-Resolution with Enhanced Propagation and Alignment" (propagation across frames) (2026-10-22 확인)
  6. Zhou et al., "Upscale-A-Video: Temporal-Consistent Diffusion Model for Real-World Video Super-Resolution" (temporal layers in a diffusion upscaler) (2026-10-22 확인)
  7. Sony, "Understanding flicker" (fluorescent lights at 100 or 120 Hz, LED lighting faster; shutter speed and the flicker cycle) (2026-10-22 확인)
  8. FFmpeg Filters Documentation (`deflicker`, `tmix`, `atadenoise`, `framerate`, `minterpolate`, `signalstats`, `tblend`) (2026-10-22 확인)
  • 프레임 보간
  • 영상 화질
  • 영상 복원

KwaFlux 작성자 겸 편집자. 글은 KwaFlux 편집팀이 검토하며, 제품 조사 노트와 공개된 사양을 바탕으로 합니다.