動画の時間的一貫性:修復した映像がちらつき、揺らぎ、残像を生む理由
処理した動画がちらつく、細部が揺らぐ、尾を引く、フレーム補間で二重像が出る理由を解説。測り方と、実際に検証した FFmpeg での対処法も紹介します。
要点
時間的一貫性とは、物体が実際に変化しない限り、あるフレームから次のフレームへ同じに見えることです。動画の処理はこれをよく 4 つの形で崩します。明るさのちらつき、細かな質感の揺らぎやうごめき、動く物体の後ろの尾引き、フレーム補間による二重像です。原因はそれぞれ違うので、対処もそれぞれ違います。
- 時間的一貫性とは、物体が実際に変化しない限り、フレームが変わっても同じに見えることです。処理はこれを 4 つの形で崩します。ちらつき、揺らぎ、尾引き、二重像です。
- ちらつきと揺らぎの多くは、フレームを 1 枚ずつ単独で処理することが根本原因です。フレーム間の小さな違いが、違う判断につながるからです。
- フレームを平均するとノイズは消えますが、動くものはすべてにじみます。私たちのテストでは、動きのあるドローン映像に単純平均をかけるとノイズの多い入力よりスコアが下がり、適応型フィルターは入力を 2.7 dB 上回りました。
- 補間でフレームを混ぜると二重像になります。動き補償の補間は滑らかなドローン映像で 35.5 dB(混合は 29.6 dB)でしたが、手ぶれのある映像ではその優位を失いました。
- 時間方向の問題は、ソースのフレームレートで、動きの中で判断してください。1 枚のフレームでは、どれも見えません。
時間的一貫性とは
静止画は 1 回正しく見えればそれで済みます。動画のフレームは、正しく見えるうえに前後のフレームとも食い違ってはいけません。目は変化にとても敏感だからです。あるフレームで止まっている質感が次のフレームで動くと、1 枚ずつは問題なく見えても揺らぎとして感じられます。
| 失敗 | 見え方 | よくある原因 |
|---|---|---|
| 明るさのちらつき | 画面全体が明るくなったり暗くなったりを繰り返す | 明滅する照明、古いフィルムの露出、フレームごとの自動調整 |
| 揺らぎ・質感のうごめき | シーンが静止しているのに細部が沸き立つ、泳ぐ | モデルが各フレームで質感を個別に作り直している |
| 尾引き | 動く物体が薄いコピーを後ろに引きずる | 動きを考慮せずにフレームを平均している |
| 二重像とゆがみ | 新しいフレームに重なった 2 つのコピーや曲がったエッジ | 混合、またはうまく対応付けできなかったフレーム補間 |
| ジャダー・カクつき | 動きが流れずに飛ぶ | フレームレート変換やフレーム落ち |
ジャダーやフレーム落ちは、一貫性よりもタイミングの問題です。カクつく動画の直し方 で扱っています。
フレームごとの処理がちらつく理由
画像モデルやフィルターは、101 番目のフレームが 100 番目の次に来ることを知りません。フレームごとに別々に実行すると、毎回新しく判断します。ノイズ、圧縮、小さな動きはフレームごとに違うので、判断も違ってきます。シャープ化はわずかに違うエッジを強調し、生成モデルはわずかに違う毛穴や葉を作り出し、自動グレーディングはわずかに違うレベルを選びます。Lai らは 2018 年の論文でこうまとめています。画像処理アルゴリズムを各フレームに独立して適用すると、時間的に一貫しない結果になることが多い、と。
抜け道は 3 つあります。
- 複数フレームを見るモデルを使う。 複数フレーム型や再帰型の修復モデルは隣接フレームの位置を合わせ、一致する部分を使い回すので、細部は一度現れたらその場にとどまります。しくみと失敗する場面は AI 修復がのっぺりする理由 で説明しています。
- あとから結果を安定させる。 ブラインドな時間的一貫性の研究では、元の動画とフレームごとの結果から、より安定したバージョンを作ります。Lai の手法は短期と長期の時間的損失で再帰型ネットワークを学習させ、Deep Video Prior は大規模なデータセットもオプティカルフローも使わず、その 1 本の動画だけでネットワークを学習させます。
- 強度を下げる。 フレームごとの処理が画面を変える量が少ないほど、ちらつく余地も小さくなります。静止画では強い設定のほうがよく見えても、動きの中では軽い設定のほうが落ち着いて見えることが多いのはこのためです。
質感のうごめきがよく出る動画生成 AI のクリップについては、AI 生成動画のちらつきを抑える方法 をご覧ください。
明るさのちらつきと deflicker フィルター
画面全体のちらつきは、たいてい処理ではなくソースから来ます。
- 照明。 Sony のフリッカーガイドによれば、古い蛍光灯は毎秒 100 回か 120 回明滅し、LED 照明は毎秒数百回から数千回明滅することがあります。シャッタースピードがその周期と合わないと、フレームごとに光の違う瞬間をとらえます。
- フィルム。 フィルムスキャンの各コマは別々に露光されているので、露出や濃度の小さな違いが再生時に明滅として現れます。全体のクリーンアップは 8mm・16mm フィルムスキャンの修復 で扱っています。
- 自動調整。 自動露出、オートホワイトバランス、フレームごとの自動レベル調整フィルターは、フレームごとに値が行き来することがあります。
FFmpeg の deflicker フィルターは、各フレームの平均の明るさを測り、隣接フレームの移動平均を計算して、各フレームをそこへ近づけます。私たちは同梱のサンプルクリップに強いちらつきを加え、連続するフレーム間で平均の明るさがどれだけ跳ねるかを測りました。
| バージョン | フレーム間の跳ね(標準偏差) |
|---|---|
| 元のクリップ | 0.27 |
| ちらつきを追加 | 8.71 |
deflicker=size=5:mode=pm | 1.30 |
deflicker=size=9:mode=am | 1.22 |
deflicker=size=15:mode=pm | 0.67 |

ウィンドウを広げるほど滑らかになりますが、フェード、雲の通過、照明のスイッチオンのように残したい明るさの変化まで平らにしてしまいます。まずは既定の 5 フレームから始めてください。
ffmpeg -i input.mp4 -vf "deflicker=size=5:mode=pm" -c:v libx264 -crf 18 -c:a copy deflickered.mp4deflicker は画面全体をならします。ローリングシャッターが明滅の途中で光をとらえることで生じる、画面を流れる帯は直せません。それには、撮影時にシャッタースピードを照明に合わせるのが本当の対処です。
時間方向のノイズ除去と残像
時間方向のノイズ除去が強力なのは、ノイズはフレームごとに変わり、シーンはほとんど変わらないからです。落とし穴は「ほとんど」にあります。何かが動いている場所では、フレームをまたいで同じピクセル位置を平均すると、すでに移動した物体が混ざり、後ろに残像が残ります。
私たちは滑らかなドローン映像にノイズを加え、単純なフレーム平均と、ピクセルの変化が大きすぎる場所では平均をやめる適応型の時間フィルターを比べました。
| フィルター | きれいなクリップとの 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 |
単純平均は何もしないよりスコアが下がりました。ノイズは減りましたが、動く風景のにじみで失ったもののほうが大きかったのです。動きの速い被写体では、尾引きがはっきり見えます。

ですから、動きに適応する時間フィルターを使い、時間方向の強さは控えめにし、平らな背景だけでなく動くエッジも確認してください。
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
フレーム補間は、フレームレートを上げたりスローモーションにしたりするために、カメラが記録しなかったフレームを作ります。中間フレームの作り方は 4 つあります。
- 複製 は前のフレームを繰り返します。新しく作り出すものはありませんが、動きのぎこちなさは元のままです。
- 混合 は隣り合う 2 つのフレームを混ぜます。動くものは半分の濃さで 2 回現れます。これが二重像です。
- 動き補償の補間 は、ピクセルのブロックがそれぞれどこへ動くかを推定し、その経路の中間に描きます。うまくいけば、正しい位置に 1 つのシャープな物体が描かれます。エッジ、遮蔽、繰り返し模様のように推定が外れる場所では、エッジが曲がり、破片がちぎれます。
- AI 補間 は、ネットワークで動きを推定してフレームを合成します。RIFE は中間のフローを直接推定し、GPU でリアルタイムに動きます。FILM は、フレーム間の大きな動き向けに作られた単一のネットワークを使います。
最初の 3 つを測るため、同梱の 2 つのサンプルクリップからフレームを間引き、FFmpeg で作り直して、本物のフレームと比べました。
| 方法 | 滑らかなドローン映像、4×(6 → 24 fps) | 手ぶれのある手持ち映像、2×(15 → 30 fps) |
|---|---|---|
複製(fps) | 26.9 dB | 24.2 dB |
混合(framerate) | 29.6 dB | 25.5 dB |
動き補償(minterpolate、mci) | 35.5 dB | 25.2 dB |

教訓は 2 つです。滑らかな動きでは、動き補償が混合より約 6 dB 高く、大きくリードしました。手ぶれのある手持ち映像では、どの方法も苦戦しました。補間は 2 つのフレーム間の動きが滑らかだと仮定していますが、手ぶれはフレームごとに向きが反転するからです。カメラが揺れているなら、まず手ぶれ補正などのスタビライザーで安定させてから補間してください。
シーンチェンジ検出を付けて、カットをまたいでモーフィングしないようにした 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.mp4CPU では遅く、私たちのノートパソコンでは、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 に変換する方法 をご覧ください。
時間的一貫性の確認方法
これらの失敗は、どれも静止画では判断できません。次の 3 つの確認で、ほとんどを見つけられます。
- ソースのフレームレートで、100% 表示で見る。 平らな部分では質感のうごめき、動くエッジでは尾引き、新しいフレームでは二重像を探します。
- 各フレームの平均の明るさをグラフにする。 滑らかな線なら問題なし、のこぎり歯ならちらつきです。
ffmpeg -i input.mp4 -vf "signalstats,metadata=print:key=lavfi.signalstats.YAVG:file=yavg.txt" -f null -テキストファイルには全フレームの平均輝度(YAVG)が並ぶので、そのまま表計算ソフトでグラフにできます。
- 連続するフレームの差分を見る。 静止したシーンでは、処理後のクリップの変化はソース以下であるべきです。揺らぎは平らな部分の細かな斑点として浮かび上がります。
ffmpeg -i input.mp4 -vf "tblend=all_mode=difference,eq=contrast=4" -c:v libx264 -crf 18 -an diff.mp4同じコマンドをソースと結果の両方に実行して比べてください。
変わりつつあること
- 画像モデルから動画モデルへ。 動画の超解像や修復は、2 枚ずつ処理するのではなく、多くのフレームにわたって情報を伝えるようになりました。拡散型のアップスケーラーも、時間方向のレイヤーを加えたり動画生成モデルを出発点にしたりして、細部が時間的に一貫して生成されるようにしています。
- 補間はより速く、より大きな動きに対応。 リアルタイムのフロー推定(RIFE)や大きな動き向けの単一ネットワーク設計(FILM)によって、補間はオフラインの実験からプレーヤーや編集ソフトの機能になりました。
- 一貫性は仮定するものから測るものへ。 ブラインドな時間的一貫性の研究がちらつきを数値化する方法をもたらし、ちらつきはシャープさと並んで報告される指標になりつつあります。
KwaFlux での扱い
- スマート修復は隣接フレームを使います。 画質修復の スマート修復 は、各フレームを一から作り直すのではなく隣接フレームを利用します。シーン修復 の各タイプは 1 フレームずつ処理するので、書き出す前に動きの中でプレビューしてください。
- スマート補間は最後に実行されます。 画質修復のワークベンチは インターレース解除、画質修復、スマート補間の順に実行するので、新しいフレームは修復後の映像から作られます。2x(既定)、3x、4x、または 30〜144 fps の カスタム 目標を選び、モードは 汎用 か 高速 にします。
- 画質検出が滑らかさを評価します。 滑らかさ の軸は「カクつき、揺れ、ちらつき、フレームレートが足りているか」を対象にし、補間の目標フレームレートを提案することもあります。
- 実際のフレームレートでプレビューします。 AI のプレビューは既定で 15 fps に制限されているので、ちらつきや揺らぎを判断する前に 元のフレームレート を選んでください。補間を含むプレビューは出力のフレームレートで再生されます。
- ソースのちらつきを先に直します。 照明やフィルムによる明るさのちらつきは、読み込む前に上の
deflickerコマンドを実行し、それから修復と補間をします。
よくあるトラブルと対処
| 問題 | 考えられる原因 | 対処 |
|---|---|---|
| 修復した質感が平らな部分で沸き立つ | フレームごとの処理が細部を作り出している | 複数フレーム型の修復を使い、強度を下げ、ソースのフレームレートで判断する |
| 画面全体が明滅する | ソースの照明や露出のちらつき | 5 フレームのウィンドウで deflicker。次回はシャッターを照明に合わせる |
| 動きの後ろに薄いコピーが尾を引く | 動きを扱わない時間方向の平均 | atadenoise などの適応型フィルターに切り替え、時間方向の強さを下げる |
| 新しいフレームに二重像 | 混合による補間 | 動き補償か AI の補間を使う |
| 新しいフレームでエッジが曲がる、破片がちぎれる | 遮蔽や繰り返し模様で動きの推定に失敗 | 倍率を下げるか、そのショットは補間しない |
| 2 つのショットのあいだでモーフィングする | カットをまたいだ補間 | シーンチェンジ検出を有効にするか、先にクリップを分割する |
| 手ぶれのある映像で補間が悪化する | フレーム間で動きが反転する | 先に手ぶれ補正をかけてから補間する |
できないこと
- カメラが記録しなかった動きを取り戻せる補間はありません。 新しいフレームは推定であり、速い動きや隠れた動きは推測です。
- 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% 減らしましたが、流れる帯や揺らぐ質感は直せません。それには、より安定したソースか複数フレーム型の修復が必要です。
フレーム補間で残像が出るのはなぜ?
2 つのフレームを混ぜると動く物体が 2 回映り、動き補償の手法は遮蔽や繰り返し模様などで動きを見誤った場所のエッジをちぎったり曲げたりするからです。速い動き、手ぶれ、一部が隠れた動きがいちばん難しいケースです。動画を 60 fps に変換する方法 もご覧ください。
時間方向のノイズ除去は空間方向より優れている?
動きによります。静止した部分ではフレームを平均すれば細部を甘くせずにノイズを取れますが、動きのある部分では単純平均は尾を引き、私たちのテストではノイズの多い入力よりスコアが下がりました。両者を組み合わせた適応型の時間フィルターのスコアがいちばん高くなりました。
手ぶれ補正はフレーム補間の前と後、どちらにすべき?
前です。補間は 2 つのフレーム間の動きが滑らかだと仮定していて、カメラの揺れはその前提を崩します。私たちの手持ち映像のテストでは、動き補償は単純な混合に対する優位を失いました。先に手ぶれ補正をかければ、補間が滑らかな動きを前提に処理できます。
参考資料
- 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 閲覧)
- 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 閲覧)
- Huang et al., "Real-Time Intermediate Flow Estimation for Video Frame Interpolation" (RIFE) (2026-10-22 閲覧)
- Reda et al., "FILM: Frame Interpolation for Large Motion" (single network for large motion) (2026-10-22 閲覧)
- Chan et al., "BasicVSR++: Improving Video Super-Resolution with Enhanced Propagation and Alignment" (propagation across frames) (2026-10-22 閲覧)
- 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 閲覧)
- Sony, "Understanding flicker" (fluorescent lights at 100 or 120 Hz, LED lighting faster; shutter speed and the flicker cycle) (2026-10-22 閲覧)
- FFmpeg Filters Documentation (`deflicker`, `tmix`, `atadenoise`, `framerate`, `minterpolate`, `signalstats`, `tblend`) (2026-10-22 閲覧)
