倍速液晶が0.5フレーム遅延するのはどうして?今回の検証の中で倍速液晶(60Hzのビデオ信号を120Hzで表示するテレビやモニター)は60Hz駆動の液晶と比べ0.5フレーム遅延すると書いてきました。実際REGZAの公称値でも60Hz駆動の26ZP2の処理遅延が0.2フレーム、倍速液晶の32ZP2が0.7フレームとなっており倍速液晶の方が0.5フレーム多くなっています。東芝のサイトでも「倍速補間のところにかかっていた1フレームの遅延を、0.5フレーム、理論限界まで抑えた。」とありますので倍速液晶における0.5フレーム遅延と言うのは仕組み上避けることのできないものであるということがわかります。その理論についての説明はなくネット上を検索してもなかなかでてきませんので私なりの考えを書きたいと思います。60Hzのビデオ信号についてまずはビデオ信号について知る必要があります。60Hzのビデオ信号では1画面分の画像を約16.6ms(話を単純にするため以下16msとします)かけて画像の上から下に向かって転送します。速いので一瞬で送っているように感じてしまいますが、実際は16msかけて”ゆっくり”上から順番に送っていると捉えることが重要になります。PlayStation3、XBox360はもとよりほぼすべてのゲーム機が60Hzのビデオ信号で画像を出力します。現在のPCも60Hzをメインで使うようになっています。60Hzのビデオ信号を60Hzで表示する場合60Hz駆動の液晶で表示する場合は、ビデオ信号の初めの方(画像の上端)を受信してすぐに液晶パネルの表示(スキャン)を開始することができます。液晶パネルも画面の上から下に向かって16msかけてスキャンしていきますので、画面の中央や下端でもビデオ信号を受信してすぐに表示することができます。理論上は遅延を限りなく0にすることができます。120Hz駆動の液晶パネルでは画面の上から下に向かって8msかけて表示します。60Hzの液晶が16msですのでその倍の速さと言う意味で倍速液晶と呼ばれています。(2)のケースと同様に60Hzのビデオ信号の初めの方を受信してすぐに表示を開始したらどうなるでしょうか。画面の上側はビデオ信号が送られてきてから表示するので問題ありませんが、画面の下に向かうにしたがって液晶の表示位置(スキャン位置)がビデオ信号を追い抜いてしまいます。表示を開始して8ms後に液晶パネルは画面の下端を表示しようとしますが、ビデオ信号はまだ画像の半分しか受信できていません。画像の下端のビデオ信号が受信できるのは16ms後です。これでは表示する画像が無くて困ってしまいますね。原則は画面の上端でも下端でも入力されるビデオ信号より後に表示処理を行わなければいけません。入力されるビデオ信号をスキャン位置が追い抜かないように制御する必要があるわけです。簡単な制御方法としては1フレーム分をメモリーにキャプチャしてからメモリーの内容を液晶パネルに表示することです。液晶テレビでは様々な画像処理を行いたいため、一度メモリーにキャプチャしてからフレーム単位で画像処理するという設計は理にかなっています。この方法では最低でも1フレーム分の遅延が生じてしまい遅延の点では不利となってしまいます。実は1フレーム分キャプチャしてから表示を開始しなくても、キャプチャ途中で見切り発車して大丈夫な場合があります。重要なのは「入力されるビデオ信号をスキャン位置が追い抜かない」ですので、この条件を満たすぎりぎりの表示開始タイミングを模索することができます。考え方としてはビデオ信号の終わり(画像の下端)を受信するタイミングと、液晶パネルの下端を表示するタイミングがそろうように開始時間を逆算します。結果だけ書くとビデオ信号が入力され始めてから8ms後に表示を開始することで途中で追い抜くことなく画面の下端まで表示することができるようになります。(待ち時間が8msより短いと途中で追い越してしまいます。)この8ms遅らせる部分が0.5フレームの遅延の正体です。同様に4倍速液晶の場合も12ms遅らせて表示開始することでビデオ信号の終端と240Hz液晶パネルの下端を表示するタイミングを揃えます。最短遅延=(4-1)/4=0.75フレーム4倍速液晶の場合ビデオ信号を受信してから最低でも0.75フレーム以上遅れて液晶パネルの表示を開始する必要がある。これは表示速度(スキャン速度、画面の上端から下端まで表示するのにかかる時間)が速くなればなるほど液晶の表示開始タイミングを遅らせる必要があることを意味しています。32ZP2に720pのビデオ信号を入力した場合のズームによる遅延についても今回検証を行いました。dot(以下DbD)」ではDbDの方が遅延が少ないと思い込んでいましたが、検証の結果は逆にスケーラーを使った「ゲームフル」の方が4msほど遅延が少ない結果となっています。これも倍速液晶と同じ原理で表示速度(スキャン速度)による避けることのできない遅延が関係しています。今回倍速液晶で検証したのでここでも倍速液晶を例に説明します。倍速液晶の液晶パネル全体にゲーム画面を表示した場合画面の上から下に向かって8msかけて表示することは先に説明した通りですが、DbDの場合は液晶パネル全体ではなく画面の中央に小さくゲーム画面が表示されます。その表示領域(画面縦方向)は1080分の720なので約66%となります。32ZP2では1080画素を8msかけて表示するようになっていますので、720画素ではその66%の約5msでゲーム画面を表示(スキャン)することになります。きたかもしれませんが、表示速度が上がった(表示するのにかかる時間が短くなった)のでその分液晶パネルの表示開始タイミングを遅らせる必要が出てくるわけです。しないと液晶に表示する処理が入力されてきたビデオ信号を追い越してしまい破綻します。どの程度表示開始を遅らせるかと言うと画面いっぱいの表示にかかる時間の8msとDbDの表示にかかる時間の5msの差である3ms分DbDは表示開始を遅らせることになります。することでDbDでもゲーム画面の下端(液晶パネルの下端ではなく額縁の内側)と入力されてくるビデオ信号の終端をそろえます。考え方としては表示領域が狭くなればなるほど相対的にゲーム画面を表示するのにかかる時間が短くなりその分表示開始タイミングを遅らせる必要が出てきます。DbD表示)16.6msの33%=約5ms遅延が増えます。Dotなどにより表示領域が狭くなる(額縁が大きくなる)→遅延は増える(額縁遅延)ただし、これらはスケーラーによる処理遅延が0の場合の話です。dotの方が低遅延となります。「キャプチャとの差」は基準となるモニターからどれだけ早く32ZP2が表示されたかです。数値が大きいほど32ZP2の遅延が少ないことを意味します。1080pを基準にみると720pゲームフルはスケーラーにより4ms遅延が増えていることになります。DbDはスケーラーの処理が入らないので理論上は額縁による3ms遅延となるはずですが、検証では8msとやや大きい遅延となっています。推測ですが32ZP2はDbDの場合もスケーラーかなにかの余計な処理を通すようになっているのでしょうか。倍速液晶はほぼすべての製品において60Hz駆動液晶より0.5フレーム以上遅延が増える。「倍速補完をOFFにすることで遅延を軽減」と説明されている場合でも、補完処理にかかる2フレーム程の大きな遅延が軽減されるだけで最低でも0.5フレームの遅延はのこるし、液晶パネル自体が60Hz駆動になるわけではないようです。4倍速液晶はさらに遅延が増える(最低0.75フレーム)。dotなどの額縁表示では表示領域が小さくなるほど遅延が増える。XL2420Tでは60Hzのビデオ信号が入力された場合に液晶パネルも60Hzで駆動し、0.5フレームの遅延はない。遅延対決ビデオキャプチャカードの処理に遅延があることはみなさんご存知だと思います。その対策(遅延対策)のために分配器を使ってテレビとキャプチャカードに分けてテレビ画面を見ながらゲームをしましょうと言われています。キャプチャカードに遅延があることは本当ですが、現在主流の液晶テレビにも遅延は存在します。本来ならそれぞれの遅延がどの程度か調べ、大きい方の遅延から対策をとるのがスマートです。そこで、液晶テレビの遅延、PC用液晶モニターの遅延、キャプチャカードの遅延について検証したいと思います。PC用液晶モニターにも遅延がありますが、一般的に液晶テレビより少ないと言われていますので「キャプチャカード+PC用液晶モニターの遅延」と分配した「液晶テレビの遅延」では液晶テレビの遅延の方が大きくなり分配する意味がないケースもあるかもしれません。ベンチの映像をHDMI分配器で2系統にわけて表示します。32ZP2)に表示します。一方をSC512でキャプチャしアマレコTVでプレビュー、PC用液晶モニターXL2420Tで表示します。秒間480コマで動画撮影テスト1(液晶テレビとPC用液晶モニターの比較)キャプチャカードを使わず純粋に液晶テレビとPC用液晶モニターの遅延を比較します。32ZP2を使いました。これは32型の倍速液晶で、ゲーム用に遅延の少ない液晶テレビとして高く評価されている製品です。メーカー公称値として処理遅延0.7フレームを誇ります。テスト2(キャプチャした場合の比較1080p)SC512でキャプチャしアマレコTVでプレビュー、XL2420Tで表示したものと液晶テレビを比較します。キャプチャ環境はEVRのソフトウエアエミュレーションを使い、画面を120Hzに設定。これはWindows7でもっとも遅延が少なくなる設定です。以降キャプチャ側はすべてこの条件になります。120Hzのままです。60pに設定しての検証です。実際のゲーム機やキャプチャ環境では720pが主流ですのでより実践的な検証となります。32ZP2の公式サイトを見ても遅延が少ないのは1080pの場合と但し書きがされていますので720pの場合はどうなるでしょうか。実際の使用環境に最も近いのでより詳しく、真っ白の状態から黒く画面が変化する際の検証もします。Dot」にして検証します。液晶テレビ側にてスケーラーを使わないことで遅延を減らすことができるでしょうか。■結果テスト1(液晶テレビとPC用液晶モニターの比較)液晶テレビ32ZP2はPC用液晶モニターXL2420Tより5コマ(約10.4ms、約0.62フレーム)遅れています。XL2420TはPC用モニターとして1位,2位を争う遅延の少ないモニターなのでゲーム用に定評のある32ZP2であってもこれくらいの差がついてしまうようです。32ZP2と同じシリーズで画面サイズが一回り小さい26ZP2という製品があるのですが、26ZP2は60Hz液晶パネルの製品で処理遅延の公称値が0.2フレームと32ZP2より0.5フレーム少なくなっています。このテレビであればXL2420Tと良い勝負になるかもしれません。テスト2(キャプチャした場合の比較1080p)キャプチャ側が32ZP2より6コマ(約12.5ms、約0.75フレーム)遅れています。1080pの場合の遅延はこの程度と言えますが、実際は1080pでキャプチャするケースはまだまだ少ない(1080p対応のゲームはごく一部、また1080pでキャプチャできるキャプチャカードはまだまだ高価)のでこの結果はあまり重要ではありません。現在は720pが主流ですので液晶テレビ側にスケーラーなどの処理が加わるため、差が縮まる可能性があります。テスト3(キャプチャの比較720p)キャプチャ側が32ZP2より4コマ(約8.3ms、約0.5フレーム)遅れています。1080pの時より遅延の差が縮まりました。液晶テレビにとって720pのビデオ信号はやや不利に働くようです。32ZP2の処理遅延0.7フレームと言うのは1080pの場合と但し書きがされている通り、ビデオ信号が変わってくると処理遅延も変わるようです。今回の検証では720p時の32ZP2の処理遅延は0.7+0.25=0.95フレームとなります。0.25フレームはテスト2とテスト3の結果の差から算出もう一つ真っ白な状態から真っ黒に変わるケースでの検証結果です。キャプチャ側が32ZP2より2コマ(約4.1ms、約0.25フレーム)遅れています。黒くなり始めるタイミングではなく真っ黒になるまでを観察するとほぼ差がないかキャプチャ側がやや早い結果となっています。液晶の反応速度まで考慮すると720pの場合においてキャプチャした画面と液晶テレビとで遅延の差はほとんどないと言えます。dot」(以下DbD)にした結果です。キャプチャ側が32ZP2より2コマ(約4.1ms、約0.25フレーム)遅れています。意外にもDbDにしたらさらにテレビ側の遅延が増えてしまいました。ここからは憶測になりますが、32ZP2では720pが入力された場合次の通りになるようです。ズーム設定による遅延の差はほとんどない。DbDでは画面の周囲の黒帯を表示する分だけ画面上端の開始タイミングが約3ms遅れる■まとめ今回の検証ではビデオキャプチャのプレビュー表示と分配した液晶テレビの表示では遅延に大きな差は生じないと言えるのではないでしょうか。ビデオキャプチャだから遅延するという認識ではなく、遅延に関してはキャプチャカードや液晶テレビなど個々の製品の性能差に注目したほうがいいように思います。今回使った液晶テレビ32ZP2は遅延の少なさに定評がある製品ですが、他社の液晶テレビの大半は2フレーム(約33ms)以上の遅延があると言われています(東芝製の液晶テレビでも遅延の大きい製品はあります)。それでは完全に分配する意味がありません。同様にビデオキャプチャカードのSC512(SC500)も仕組み上最速で動作しており無駄な遅延がありませんので分配する効果は薄いですが、GV-USB2ではキャプチャカード単体の遅延で64ms程度となってしまいます。この場合は分配する効果が大きくなります。所有している液晶テレビの遅延が2フレーム(約33ms)以上と大きい場合は分配器を用意するよりPC用液晶モニターを遅延の少ないものに買い替えた方が良いかもしれませんね。前回に引き続き遅延の様子をハイスピードカメラEX-ZR300で撮影して検証します。今回はSC512でキャプチャした映像をアマレコTVでプレビューした際にどの程度遅延するか検証します。前回の記事と合わせてご覧ください。基本的にはSC500を使って以前検証したこの記事と同じ内容になりますが、ハイスピードカメラを使うことでより多くの情報がえられます。ベンチの映像をHDMI分配器で2系統にわけ表示します。一方を直接モニター(RDT233WX-Z)に表示し基準とします。一方をSC512でキャプチャしアマレコTVでプレビュー、XL2420Tで表示します。前回の結果から左のモニターは右より7コマ早く表示を開始できる点を考慮して、遅延を算出します。テスト1(Windows7標準)Windows7でEVRを使ってプレビューした場合をテストします。画面の設定は60Hzにします。これはWindows7でアマレコTVを使った場合の一般的なケースです。テスト2(EVRソフトウエアエミュレーション)Windows7でデスクトップコンポジション(Aero)を無効にした状態でEVRを使った場合のテストです。以前の検証によりこの条件では垂直同期待ちを行わないため遅延が少なくなります。以下、単にEVRと記述した場合はデスクトップコンポジションを有効にしてEVRを使った場合、EVRエミュレーションと書いた場合はデスクトップコンポジションを無効にした場合を指します。テスト3(120Hz)EVRエミュレーションに加え、画面を120Hzに設定したテストです。120HzモニターXL2420Tの特性が遅延に影響するか検証します。■結果テスト1(Windows7標準)右のモニターが2コマ目で表示を開始したのに対し、左は16コマ遅れた18コマ目で表示を開始しています。約2.88フレーム)の遅延となります。テスト3(120Hz)テスト2、テスト3とも左のモニターが4コマ遅れています。約1.38フレーム)となります。■ティアリングについてテスト2とテスト3ではレンダラーが垂直同期待ちを行わないためティアリングが生じます。本来は画面の上端から白くなってきますが、レンダラーが垂直同期待ちをせず直接フロントバッファ(表示用のバッファ)へ画像を書き込むため写真のように画面の途中から白くなります。今回のテスト2、テスト3の結果はこのタイミングが徐々にずれてきて丁度画面の上端から表示が開始されるたところで観察しています。テスト1は垂直同期待ちを行うためこのようなティアリングは生じませんが画面の表示タイミングを待つためその分遅延が大きくなっています。理論上画面の上端において60Hzと120Hzで差は出ません。今回の検証でもテスト2とテスト3で画面上端では大きな差は見られませんでした。差が出るのは画面の下方です。テスト3ではNo.9で画面下端が白く表示されているのに対し、テスト2ではまだ画面の中央付近を表示しています。これはリフレッシュ速度(画面を書き換えていく速度)が120Hzの方が早いからです。理論上、画面の中央では120Hzモニターの方が2コマ分早く表示され有利です。画面の下部では差が小さく、画面の上部で差が大きくなります。約0.25フレーム)有利と見るのが妥当と思います。一つ120Hzモニターが有利になるケースとして「垂直同期待ちの待ち時間が短くなる」というのがあります。テスト2とテスト3では垂直同期待ちを行っていないので結果に差は出ませんがEVRやオーバーレイレンダラーではティアリングが起こらないように垂直同期タイミングが画面の上(正確には垂直帰線期間)に来るのを待ちますがその待ち時間の最大が60Hzモニターの場合約16.7ms弱なのに対し、120Hzモニターでは約8.3ms弱と半分になります。待ち時間の最小はどちらも0msなので平均をとって60Hzモニターでは平均8.3ms待つ可能性がある。120Hzモニターでは平均4.2ms待つ可能性がある。し、その差の4.2msが120Hzモニターを使うメリットとみるのが妥当です。60pをキャプチャしアマレコTVでプレビューした時の遅延は次のようになります。0SC-512N1-L/DVIのスルー出力について検証SC512のスルー出力(HDMI)について遅延が無いか検証してみました。同じモニターを2つ用意できれば簡単ですが、持っていないのでSC512を挟まない場合と、挟んだ場合の2回に分けて別々にテストして結果を比較して判断します。DirectDraw」を用意しました。ベンチは画面を10分割して右端から1フレームごとに白く塗りつぶしていきます。10フレーム経つと画面が真っ白になるので今度は10フレームかけて黒く塗りつぶします。この繰り返しとなっています。今回のテストでは解像度1920x1080、フレームレート60にして、なるべくモニター側でリサイズなどの余計な処理が入らないようにしています。各モニターの設定もできるだけ画像処理をOFFにして余計な遅延が生じないようにしてあります。EX-ZR300)で動画撮影し、出来上がった動画ファイルから連続したビットマップファイルを作成しています。動画は秒間480コマで撮影したので1コマあたり約2.08msです。テストしたビデオ信号は60Hzなので8コマ毎にフレーム(画面)が更新され隣の列へ移動する様子がわかります。左のモニターは2コマ目で表示が開始されている(画面の上側がほんの少し白くなったコマが表示開始地点です)のに対し、右のモニターは9コマ目で表示が開始されています。これは右のモニターが7コマ分(約14.5ms)遅れていることになります。左右のモニターが同じであればおそらく同じタイミングで表示が始まるのだと思いますが、今回は機種が違うためこのような違いが生じてしまいます。■テスト2(SC512を挟んだ場合)続いて分配器と左側のモニターの間にSC512を挟んでスルー出力※のテストをします。左のモニターに映っているのはアマレコTVのプレビュー画面ではなくSC512のスルー出力です。「SC512のHDMIスルー出力に遅延は無い(極めて少ない)」と言っていいようです。■モニターについて左のモニター(XL2420T)は120Hz入力、120Hz表示が可能な120Hzモニターです。今回のように60Hzのビデオ信号を入力した場合は、その特性を生かせず倍速液晶と同じ挙動をすると思っていましたが、今回の結果では画面の上方が白くなり始めてから8コマかけて画面の下に向かって白くなっています(No.2からNo.9)。このことから120Hzでは駆動しておらず、60Hzで駆動していることがわかります※。XL2420Tは60Hzのビデオ信号が入力された場合、液晶の駆動も60Hzと柔軟に対応できるみたいです。秒間480コマで撮影しているので8コマは60Hz(60fps)に相当します。右のモニター(RDT233WX-Z)は倍速液晶(倍速駆動)なので60Hzのビデオ信号を入力した場合、問答無用で120Hzに変換され表示(120Hz駆動)されます※1。今回の結果では画面の上方が白くなり始めて4コマ(No.1からno.4)で画面下まで白くなっているので液晶が120Hzで駆動している様子がわかります※2。その後の4コマ(No.5からNo.8)では同じ画像を上書きしているので変化がありません。三菱のサイトには「スルーモードをONにすると倍速補完が無効になります。」とありますが、補完処理は無効になるけど同じフレームが複製されて結局120Hz駆動するようです。60Hzでの駆動は無理でした。秒間480コマで撮影しているので4コマは120Hz(120fps)に相当します。一般的に60Hzのビデオ信号を120Hzで駆動させる場合、どうしても0.5フレーム(約8.3ms)以上のタイミング待ち(遅延)が仕組み上必要になりますので、60Hzのビデオ信号を扱う場合において倍速液晶などは遅延の点で不利になります。60Hzのビデオ信号を60Hzで駆動させた場合はそのような遅延を必要としないので、今回のケースでは等速駆動ができたXL2420Tの方がRDT233WX-Z(倍速駆動)より遅延が少ない結果となっています。120Hzモニターにも関わらず、60Hzのビデオ信号が入力された場合は遅延を伴う倍速駆動とはならず、60Hzで液晶を駆動することができるXL2420Tは遅延の評価として非常に優秀だと感じました。32ZP2などもテストしてみたいと思います。0あまラボへようこそこのブログでは自作ソフトの最新情報やtips、PC動画に関する話題を掲載していきます。各記事へは下にあるカテゴリからアクセスして下さい。