写真のしくみ ㉜ 動画が動いて見える理由とフレームレートのしくみ

Share
💡
シリーズ「写真のしくみ」について
光はまっすぐ進み、レンズは世界をひっくり返す。写真と映像にひそむ小さな「なぜ?」を、数式なしで解き明かす全40回。

パラパラ漫画で遊んだことはありますか?

教科書やノートのすみっこに、ちょっとずつ違う絵を描いて、パラパラッとめくる。棒人間が走ったり、ボールが飛んだり。きっとだれでも一度はやったことがあるのではないでしょうか。

このパラパラ漫画、じつはとんでもない発明の出発点です。映画も、テレビも、YouTubeも、TikTokも、スマホで撮る動画も、原理はぜんぶ同じ。「止まった絵を何枚もすばやく見せると、動いて見える」。たったこれだけのしくみで、世界中の映像はできています。

でも、ちょっと待ってください。止まった絵が「動いて見える」って、よく考えたら不思議だと思いませんか? 実はそのひみつ、カメラの中ではなく、きみの脳の中にあります。

きみの脳がだまされている

パラパラ漫画が動いて見えるのは、きみの目と脳がチームプレーをしているからです。ふたつのすごい働きが関係しています。

働きその1「残像」

暗い部屋で懐中電灯をぐるぐる回すと、光の「輪」が見えた経験はないでしょうか。光はある一点にしかないはずなのに、一周分の線がつながって見えます。これは、目がほんの少し前に見た光を、一瞬だけ覚えているからです。この現象を残像(英語ではpersistence of vision)といいます。目に残像があるおかげで、パラパラ漫画の絵と絵のあいだが真っ暗に見えず、なめらかにつながって感じられるのです。

働きその2「脳が動きをつくり出す」

こちらのほうがもっと大事なポイントです。ちょっとずつ位置が違う絵を続けて見せられると、脳は「何かが動いている」と勝手に解釈してしまいます。実際にはただの止まった絵が何枚もあるだけなのに、脳が絵と絵のあいだを補って「動き」をつくり出すのです。心理学ではこの現象を仮現運動と呼びます。1912年にプラハ出身の心理学者マックス・ヴェルトハイマーがこの現象を報告したことが、ゲシュタルト心理学という学問の始まりにもなりました。

つまり、パラパラ漫画が動いて見えるのは、「目の残像」がちらつきを消し、「脳の想像力」が動きをつくり出すという二段構えの結果です。人間の目と脳って、思った以上にすごいのです。

💡
ちょっと気になる人へ
ヴェルトハイマーは仮現運動をさらに細かく分類しました。2つの光が交互に点滅するとき、間隔が長ければ「2つの光が順番に点いたり消えたりしている」ようにしか見えません。間隔を適度に短くすると、ひとつの光が滑らかに移動して見えます(β運動)。さらに間隔を詰めると、対象物そのものは動かず「動き」だけが知覚されるふしぎな状態が現れます(φ現象)。映画やテレビが利用しているのは、おもにβ運動のほうです。

パラパラ漫画から映画へ

この「止まった絵を連続で見せれば動いて見える」という原理を使って、スクリーン上映による映画興行の道を切り開いたのが、フランスのリュミエール兄弟です。1895年12月28日、パリのグラン・カフェ地下で行われた有料公開上映は、映画史に残る記念碑的なできごとでした。この上映会を皮切りに各地で上映が重ねられ、リュミエール兄弟は数々の短編を世に送り出しました。中でもとりわけ有名なのが、列車が駅に到着する場面を写した一本です。観客は本物の列車が迫ってくるように感じて大騒ぎになったという逸話が語り継がれています。

さて、現代の映画は1秒間に何枚の写真を見せているでしょうか。

答えは、24枚。

1秒間に24枚の写真を次々と映し出します。この「1秒間に何枚の絵(フレーム)を見せるか」という数字をフレームレートといいます。単位は fps(frames per second=1秒あたりのフレーム数)で表します。映画は24fpsです。

「え、たった24枚? もっと多いと思ってた」と感じた人もいるかもしれません。じつは映画の映写機にはちょっとした工夫があります。1枚の写真を映しているあいだに、回転する羽根(シャッター)が光を2回か3回さえぎるのです。写真の枚数は24枚のままでも、光の明滅は1秒間に48回や72回になります。こうすることで、画面のちらつきをおさえて、目に優しいなめらかな映像になるわけです。

では、なぜ「24」という数字になったのでしょうか。それは1920年代の終わりごろ、映画に音がつくようになった時代にさかのぼります。音声をなめらかに再生するにはある程度の速さで映像を送る必要がありました。一方で、映画のフィルムはとても高価だったので、できるだけ節約したい。その技術的・経済的なバランスの中から24fpsという数字が生まれ、1927年から1930年ごろにかけて業界の標準になりました。それから約100年、映画はずっとこの数字を守り続けています。

テレビは30枚、ゲームは60枚

映画が24fpsなら、テレビやゲームはどうでしょう?

日本やアメリカのテレビ放送は、もともと約30fps(正確には29.97fps)で映像を送っています。ヨーロッパでは25fpsです。この違いは、各地域の電力の周波数と関係があります。アメリカは60Hz、ヨーロッパは50Hzで、テレビの仕組みがそれぞれの周波数に合わせて設計されました。ちなみに日本は東日本が50Hz、西日本が60Hzという世界的にもめずらしい国ですが、テレビ放送はアメリカと同じNTSC方式(60Hz基準)を採用しています。くわしい理由は少しややこしくなるのでここでは省きますが、大事なのは「テレビは映画より少しだけフレームレートが高い」ということです。

そしてゲームの世界はもっとすごい。60fpsはもはや当たり前で、最近では120fpsや240fpsをうたうゲームモニターまであります。

フレームレートが高いと、どうなるか。答えはシンプルで、動きがよりなめらかに見えます。パラパラ漫画で考えるとわかりやすいでしょう。10ページで走る人を描くより、30ページで描いたほうが動きがスムーズです。さらにゲームでは、プレイヤーの操作と画面の反応が直結しますから、フレームレートが高いほど「思いどおりに動く!」という感覚が強くなります。対戦ゲームやスポーツゲームでは、60fpsと30fpsの差は歴然です。

💡
やってみよう
YouTubeで「30fps 60fps 比較」と検索してみましょう。同じ映像を異なるフレームレートで並べた動画がたくさん見つかります。動きのなめらかさの違いが一目でわかるはずです。ゲームをしている人なら、設定画面でフレームレートを切り替えて操作感の違いを体験してみるのもおすすめです。

フレームレートは高ければ高いほどいいの?

「じゃあ、映画も60fpsにすればいいのに」と思うかもしれません。じつは、そう単純にはいきません。

2012年に公開された映画「ホビット 思いがけない冒険」は、映画としてはめずらしく48fps(通常の2倍)で撮影・上映されました。技術的にはとてもなめらかな映像だったのですが、観客からは意外な声が続出しました。「映画っぽくない」「なんだかテレビのニュースみたいだ」というのです。

なぜこんなことが起きるのでしょう?

理由のひとつはモーションブラー(動きによるブレ)にあります。24fpsの映画では、1コマを撮影するためにシャッターが開いている時間が比較的長くなります。映画の撮影現場でよく使われる「180度シャッター」というルールに従うと、24fpsならシャッタースピードは約1/48秒。この間に動いているものは、1コマの中で少しだけブレて写ります。このブレこそが、映画特有の「なめらかで、どこか夢のような」動きの印象をつくっていたのです。

フレームレートを48fpsに上げると、1コマあたりのシャッタースピードも短くなり、1枚1枚がくっきりシャープに写ります。動きが非常にリアルになって、まるで肉眼でその場を見ているかのような感覚になる。それが逆に「テレビっぽい」「安っぽい」と感じられてしまうことがあるのです。

つまり、フレームレートには「高ければ正解」という答えがあるわけではありません。映画には映画の、スポーツ中継にはスポーツ中継の、ゲームにはゲームの、それぞれの目的に合ったフレームレートがあります。道具は使い方しだい、ということです。

インターレースとプログレッシブ

テレビの話をもう少しだけ深掘りしてみましょう。

テレビ放送が本格的に始まったのは1930年代のこと。当時、映像のデータを電波で送るのはとても大変でした。1枚の画面をまるごと送ろうとすると、電波に乗せる情報量がとんでもなく多くなってしまいます。

そこで考え出された工夫がインターレース(飛び越し走査)という方式です。

画面が、ものすごく細い横線がびっしり並んでできていると想像してみてください。インターレースでは、まず奇数番目の線(1本目、3本目、5本目......)だけを送ります。次に、偶数番目の線(2本目、4本目、6本目......)を送ります。つまり、1枚の画面を「上半身」と「下半身」ではなく、「櫛(くし)の歯」のように交互に分けて、2回に分けて送るわけです。この半分ずつの映像をそれぞれフィールドと呼びます。

1秒間に60フィールド(=30フレーム分の映像を半分ずつ交互に)送ることで、送る情報量をおさえつつ、画面のちらつきを減らすことに成功しました。人間の目にはこの「半分ずつ」がほとんど気にならず、なめらかな1枚の映像に見えます。なかなか賢い作戦です。

昔のテレビやDVDの画質表示に「480i」や「1080i」と書いてある、あの「i」がinterlaced(インターレース)のことです。

一方、現代のテレビやパソコンのモニター、スマートフォンではプログレッシブ(順次走査)という方式が主流になっています。こちらは画面を分けたりせず、上から下まで1枚まるごと一気に表示します。「720p」「1080p」の「p」がprogressive(プログレッシブ)を意味しています。ちなみに「4K」もプログレッシブ方式ですが、こちらは慣例として「p」をつけずに「4K」とだけ表記されることが多いです。

デジタル技術が発達して大量のデータを高速に送れるようになったいま、わざわざ半分ずつ送る必要はなくなりました。プログレッシブ方式のほうが、文字や速い動きがくっきり表示されるので、現在ではこちらが標準になっています。

もし家のテレビやゲーム機の設定画面で「1080i」や「1080p」という表示を見つけたら、「ああ、あの i と p のことか」と思い出してみてください。

動画は「写真の連続」

ここまで読んで気づいた人もいるかもしれません。動画というのは、つきつめれば「たくさんの写真を連続で見せているだけ」です。

映画の1コマも、テレビの1コマも、スマホで撮った動画の1コマも、それぞれが1枚の「写真」にほかなりません。ということは、このシリーズでこれまで学んできた写真の知識が、そのまま動画にも使えるということです。

たとえばシャッタースピード。動画ではフレームレートによって、1コマに使える時間の上限が決まります。24fpsなら最大で1/24秒です。先ほど紹介した映画撮影の「180度シャッター」ルールでは、フレームレートの約2倍の分母(24fpsなら約1/48秒)のシャッタースピードで撮ります。このシャッタースピードが、映画らしい自然なモーションブラーを生みます。

絞りもISO感度も、1コマ1コマに対して写真とまったく同じように働きます。暗い場所で動画を撮ると画面がザラつくのは、写真で暗所撮影したときとまったく同じ理屈です。

だからこそ、写真を学ぶことは動画を理解するための土台になります。写真の知識がある人は、動画の世界に足を踏み入れたとき、きっと驚くほどスムーズに理解できるはずです。

この回のまとめ

この回では、「なぜ動画は動いて見えるのか」をパラパラ漫画から出発して探ってきました。ポイントを振り返りましょう。

  • 動画が「動いて見える」のは目と脳のチームプレーです。 目の残像がちらつきを消し、脳の仮現運動が「動き」を補うことで、止まった絵の連続が動いて見えます。
  • フレームレート(fps)は、1秒間に何枚の絵を見せるかを表す数字です。 映画は24fps、日本のテレビは約30fps、ゲームは60fps以上が一般的です。
  • フレームレートは高いほど動きがなめらかになりますが、「高ければいい」とは限りません。 映画のような雰囲気にはあえて低いフレームレートと、それに伴うモーションブラーが効いています。目的によって使い分けるものです。
  • インターレース(i)は画面を奇数行・偶数行に分けて交互に送る昔ながらの方式です。 プログレッシブ(p)は1枚まるごと送る現代の方式で、いまはこちらが標準になっています。
  • 動画の正体は「写真の連続」です。 シャッタースピード、絞り、ISO感度など、写真で学んだ知識はそのまま動画にも通用します。写真の基礎は、映像制作の基礎でもあります。

動画の正体は「写真のパラパラ漫画」でした。そう思うと、写真と動画の世界がぐっと近く感じられるのではないでしょうか。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu