ティアリング
再生するとなんか不自然な動きが・・・

PCモニター上でTV放送を見る場合や、動画ファイルを見る場合に、かなりの率でティアリングという現象が発生します。
まず、この画像を見てください。

単純に、円を右から左にスクロールさせています。
しかし、綺麗にスクロールしているようには見えず、ちらつきの様なものが見えているとおもいます。


恐らく、上記の様に円が上下でずれているような状態に瞬間的になっていると思います。
ブラウザやPCのスペックによってはあまり確認しずらいかも知れません。

これが、ティアリングという現象です。ただし、ここでの現象はキャプチャや動画再生時のティアリングとは若干異なります。

では、なぜこのような現象が起きるのでしょうか。まず、今ここで例をあげた画像について考えてみます。
まず、この円のアニメーションはブラウザが適当に時間間隔を置いて絵を描き直しています。
また、PCモニターは指定されたリフレッシュレート(Windowsならば画面のプロパティで確認できます)で走査し、画面を表示しています。
ここで、アニメーションの書き換えとモニターの走査が無関係である、という事がポイントになります。

それでは、例えばPCモニターには左の様に表示されているとします。
そして、今、走査線は矢印のラインを走査し終わった瞬間だとします。
もし、この瞬間にアニメーション画像も書き変わったとするとどうなるでしょうか。

もちろん、見た目上では、矢印のラインより下側だけが次のアニメーション画像が表示されてしまいます。
また、走査線が画面を一周した後、その次からは正常に表示されます。
そして、また、アニメーション画像が切り替わるときには、タイミングによっては同様の現象が発生します。
この現象が、上記のアニメーション画像にのっているちらつきの原因です。
しかし、この例ですとアニメーション枚数はせいぜい秒間5〜6枚くらいですので、この現象はちらつきにしか見えません。

それでは、実際のキャプチャのプレビュー画像はどうでしょうか。

まず、キャプチャーは外部の映像を1フレーム取り込みます。そして、その画像をPCモニターに表示します。
ここで、キャプチャーが1フレームを取り込み終えた瞬間にPCモニターも走査が終わっていると、何も問題は無いのですが、実際にはそう都合良くはありません。
ですので、先ほどの説明と同じく、走査線が画面を描画しているときにキャプチャ画像をPCモニターに表示することになります。
すると、当然ですが先ほどの例と全く同じ現象がおきます。
しかし、実際の見え方としては先ほどの様にちらつきとしては見えなく、プレビュー画面が適当な所から上下に別れているような感じになります。ちょうど、2枚目の画像の例の様な状態が続く訳です。
何故このように全く同じ現象でも違った見え方になるのでしょうか。
それは、キャプチャ画像の書き換えの周期が関係してきます。

それを考えると、PCモニターのリフレッシュレートも関係してきます。
PCモニターのリフレッシュレートが60Hzに設定されている場合を考えると、1秒間にモニターは60回更新されている訳です。 すると、ティアリングが発生した瞬間の画像(上下で異なる画像)は、1/60秒で消えてしまいます。

そして、このティアリングという現象は、アニメーション画像やキャプチャ画像を書き換える時に発生します。
先のアニメーション画像の例ですと、1秒間あたりにティアリングは5〜6回くらいしか発生しません。

つまり、先ほどのアニメーション画像では、1秒間あたりの合計で5/60〜6/60秒程度ティアリングが発生しているわけです。
それでは、キャプチャ画像の場合はどうでしょう。
NTSCでは、秒間30枚で動画が構成されています。インターレースの事を考えると、60枚と考えるべきかもしれませんが、とりあえずキャプチャの画像描画は1フレーム単位なのでここでは30枚と考えます。
では、この場合のティアリングの発生頻度はどのくらいになるでしょう。
30枚ですので、1秒間あたり30/60秒、つまり、PCモニターで見ている画像の半分はティアリングが発生している画像という事になります。
そして、リフレッシュレートが60Hzだと、PCモニターは秒間60枚の画像を表示し、秒間30回ティアリングが発生しているわけですから、交互に正常な画像とティアリングが発生した画像が表示されているという事になります。
この秒間60枚中30枚という枚数を、NTSCの特性からも考えてみると、私たちの目にはそれらの画像が重なって見えてしまいます。
すると、キャプチャーのプレビュー画面では、画像が上下に別れているというような現象が発生してしまいます。

そして、さらに、それに付随する要因で、見え方が変わってきます。
まず、キャプチャ周期が30Hz、モニターのリフレッシュレートが60Hzの場合、走査線は1/60秒で同じ場所に戻ってくるので、キャプチャ画像が更新されるときは、つねに同じ位置にモニターの走査線がありそうな気がします。
もしそうならば、プレビュー画像のティアリングで発生する「上下のずれ」の場所は、変動しないはずです。

しかし、実際には、それぞれ全く関係のない別の機械で発生する信号な為、この30と60という数字にはそれぞれ誤差があります。
また、「カラー放送」のNTSC規格では正確には秒間30枚ではなく、29.97枚となっていますので、これも誤差の理由の一つとなります。
そうすると、この「上下のずれ」の場所はティアリングが発生するたびに若干ずれていく事になります。
ですので、この「上下のずれ」の境目の場所が下から上などにゆっくり(経験的には1〜2数秒でしょうか)と動いていくという現象になる訳です。
この境目の部分が、帯状のノイズとして目に見えてくるわけです。

では、今度は、プレビュー画像ではなく、実際に取り込んだ画像を再生した場合はどうなるでしょう。
基本的に、取り込んだ動画ファイルには、「秒間30枚で再生しろ」という様な情報が書き込まれています。
そこで、再生ソフトは、1/30秒ごとに画像を書き換える訳です。
ですので、プレビュー時とまったく同じ現象が発生します。

感想、要望、バグ報告、その他何かありましたら、メールもしくは掲示板にてご連絡ください。
裕之  
ホームに戻る