2017年4月23日日曜日

Linuxで動画に横線のノイズ(ティアリング)が発生する時の対処法

Linuxで動画再生すると横線のノイズが入る
Linuxで動画を再生すると、横線のノイズやちらつき(いわゆる、ティアリング)が発生することがある。ティアリングが発生すると、以下の動画のように横方向の映像の同期がうまくいかず、動画が横方向にちらついてしまう。動画中のブロックノイズは、動画の解像度が低いために発生しただけで本来は発生していない。

video

ティアリングが発生する時の対処法
Linuxで、ティアリングが入る時の対処法をまとめておく。使用している環境によって、ティアリング発生の原因は異なるので、色々な方法を試してみてほしい。

自分のテストした環境では、根本的な原因は、ディスプレイサーバーのXorgにあるようだった。ディスプレイサーバーをXorgからWaylandに変更すると、ティアリングの発生はなくなった。Waylandは、開発当初から優れたレンダリング性能を意識して開発されたらしい。
Kristian Høgsberg, a Linux graphics and X.Org developer who previously worked on AIGLX and DRI2, started Wayland as a spare-time project in 2008 while working for Red Hat.His stated goal was a system in which "every frame is perfect, by which I mean that applications will be able to control the rendering enough that we'll never see tearing, lag, redrawing or flicker."...


今回テストした環境
この記事の内容をテストした環境を、まとめておく。

  • グラフィック:Intel HD Graphics 4000 (i7-3770S)
  • OS:Arch Linux x86_64 (Linux 4.10.11)
  • デスクトップ環境:GNOME 3.22
  • ディスプレイサーバー:Xorg Server 1.19.3-2
  • ドライバー:xf86-video-intel 1:2.99.917
  • 動画プレイヤー:VLC 2.2.4

Xorgを使っている場合の対処法
ディスプレイサーバーとしてXorgを使っていて、ティアリングが発生する場合の対処法をまとめておく。

まず、Xorgの設定で、TearFreeのオプションを追加する。/usr/share/X11/xorg.conf.d/20-intel.confというファイルを作成し、以下の様に設定を記入する。

# vim /usr/share/X11/xorg.conf.d/20-intel.conf

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "sna"
   Option      "TearFree"  "true"
EndSection

XorgでTearFreeの設定をしても治らない場合は、動画プレイヤーの設定を変更してみる。動画プレイヤーとしてVLCを使っている場合は、デインターレースの設定を有効にしてみる。

VLCの「ツール」→「設定」→「ビデオ」から、デインターレースの項目を「オン」にする。


の設定を試してみる。

これらの設定をしても、ティアリングが治らないこともある。その場合は、ディスプレイサーバーをXorgからWaylandに変更する必要がある。ディスプレイサーバーを変更する方法は、以下にまとめた。

ディスプレイサーバーをXorgからWaylandに切り替える
ディスプレイサーバーをXorgからWaylandへ切り替えるには、デスクトップ環境がWaylandに対応している必要がある。例えば、デスクトップ環境がGNOMEやKDEであればWaylandに対応している。

GNOMEでWaylandを使うようにする場合は、ログイン画面で「サインイン」の隣の歯車マークをクリックして、「GNOME on Xorg」ではなく、無印の「GNOME」を選んでログインする。無印の「GNOME」を選ぶことで、ディスプレイサーバーとしてWaylandが使われるようになる。


自分が使用している環境では、ディスプレイサーバーをXorgからWaylandに変更することで、動画のティアリングは解消された。


参考:
[1]Why wayland? from a users view / GNU/Linux Discussion / Arch Linux Forums
[2]Does Wayland actually eliminate tearing? : linux
[3]Wayland (display server protocol) - Wikipedia

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿