割り込み頻度を3956Hzにする「心理視覚最適化パッチ」、LKMLに投稿される 61
ストーリー by hylom
あるAnonymous Coward 曰く、
LKMLにおいて、Linuxカーネルの割り込み頻度の心理視覚最適化パッチが提出されている (メーリングリストのメール)。具体的には人間が約0.5ms以下の変化が認識できないことを利用して、割り込み頻度を3956 Hz (何故?) にするだけであるが、グラフィックワークステーションやOpenGLアプリケーションに有益かもしれないとしている。60fpsの場合フレーム間隔は16.66msで、約0.5msとなると約2000fpsとなるわけであるが、ディスプレイや処理速度やアプリケーションの限界があるなかで違いが感じられるのだろうか。
iPhone 4では「10~12インチ離れた距離で人間が認識できる限界は300dpi」ということで解像度を360dpiに設定しているし(GIZMODOの記事)、画像形式や動画形式においても知覚的均等性を重視したLab色空間や、x264における複雑さを考慮した量子化量調整(Psy RDO)など各種の心理視覚最適化が使われている。
いっぽう、心理視覚にはいわゆる「ポケモンショック」やサブリミナル効果など負の面も多い。芸術家は自殺が多いと言われているが、心理視覚が関係している例もあるのかもしれない。
心理視覚への最適化の例や、負の面の回避策など、他にも知っている方が居たら教えてください。
3956 Hzの根拠 (スコア:5, 参考になる)
タレコミの文章自体、ちょっと誤訳というか誤解してる感じですね。
(グラフィックワークステーションはOpenGLアプリケーションにおいて、フレームレートのジッタを軽減するという利点がある)
ということだそうで。
実際に秒2000回も表示しなければならないとか言ってるわけでなく、表示間隔のぶれ(ジッタ)を問題にしているのでしょう。
たとえば、割り込み周期が1000Hz だとすると、60Hz のリフレッシュレートの画面表示1回あたり、16.67回の割り込みが発生します。
これで割り込みベースで処理すると、処理単位が17msの時と16msの時があるため、内部処理の時間間隔に1msのずれが発生する可能性があります。
このように、1000は60で割り切れないため、タイミングがずれて表示がなめらかにならないのを「フレームレートジッタ」と称しているのでしょう。
これを防ぐためには、割り込み周波数が表示周波数の整数倍になっているのが望ましい。
一方、リフレッシュレートは60Hzとか72Hzとかいろいろあるので、とりあえずこのどちらの周波数に対しても
4000Hz付近の数値の中でも最も誤差が少ない数値ということで、3956Hzが選ばれたのだと思います。
3956Hzは0.2528ms周期周期ですが、
60Hz:16.67ms←66×0.2528ms=16.68ms(誤差0.0169ms)が14回、67×0.2528ms=16.94ms(誤差0.2696ms)が1回
72Hz:13.89ms←55×0.2528ms=13.90ms(誤差0.0140ms)が17回、54×0.2528ms=13.65ms(誤差0.2387ms)が1回
となり、ジッタが最小になります。
でも、アニメや映画のテレビ放送では、2-3プルダウンといって、24fps(42ms/コマ)の各コマを、
秒60フィールドのテレビで、2フィールド(33ms)と3フィールド(50ms)で交互に表示という乱暴なことをしているので、
それ見慣れた者としては、60fpsと1000Hz程度程度のずれなんて気になるわけないだろとちょっと思ってみたり。
ぴゅあおーでぃおの世界では、もっと厳しいところでズレが気になるつもりな人はたくさんいそうですけど…
Re:3956 Hzの根拠 (スコア:3, 興味深い)
このパッチを作られた方が投稿されたメーリングリスト内にある別記事を読んでみたのですが、
この方は、DOOM3などのゲーム(OpenGLアプリケーション)のパフォーマンスを最適化しようとされているようですね。
今回のチューニングの結果、wine上で動かしたHalf-Life:Sourceまでもが "quite a different experience" になったらしいです。
ゲームがサクサク動くのならグラフィックワークステーションにも恩恵があるだろう、ということでしょうか。
デフォルトで1000Hzだった割り込み頻度を3956Hzも選択できるようにした、と言うことですが、
この割り込み頻度が何を指してるのかわかりません。(ソースが上がってましたが60MBくらいあったので私には読むの無理ですw)
勘ですけど(おい!)ハードウェア(ビデオカード、マウス、キーボード)から上がってきた割り込みをカーネルが受けて、
それを各アプリケーションに通知する頻度を1000Hzに制限してる、ってことなんですかね?
そうだとすると、最悪1msec遅れる可能性があるわけで、(マウスorキーボード入力→ビデオカードで反映、ならさらに倍)
60Hz(16.68ms)や72Hz(13.90ms)で次フレームの処理に入りたいアプリにとってはそれなりの損失かもしれません。
Linuxでゲームやったことないのでなんとも言えないのですが、
現状でWindowsと比べて反応の鈍さとか感じられるんですかねぇ?
(Windowsの実装がどうなってるかも知りませんけど)
元ネタを読むと「心理視覚最適化」なんて言葉を持ち出すのはなんか違うと思います。
Re:3956 Hzの根拠 (スコア:3, 興味深い)
unixのスケジュール粒度は昔は10ms程度が普通で(おおむかしはもっと遅かった)、それでも(ほぼ)静止画(キャラクタディスプレイとか、動画を伴わないGUI)だけ出せばすむころは、でまったく問題なかったのですが。インタラクティブな60FPSの描画とかをしたければ、プロセススケジューリングの時間粒度を小さくすると嬉しいんでしょうね。 たしか、昔のUNIX WSでもフライトシミュレータで本気で遊ぶために HZを変えるとかやってました。
3956という値そのものより、現状の1000より4倍早いってほうが効いてるのでは?
Re:3956 Hzの根拠 (スコア:2, 参考になる)
業務用では違う周波数を使います。
日米の放送など業務用途では 59.97Hz や 23.97Hz を使うのが一般的です(欧州は知らない)。
60ちょうどや24ちょうどの規格も存在しますが、ほとんど使われません(SMPTE-292Mなどを参照)。
# 59.97=60*1001/1000, 23.97=24*1001/1000で、なぜ1001なのかは、NTSCカラー化の時代に由来するんだったかな。
3956Hzでそれらの周期を表すと、
59.97Hz ≒ 3956Hz/66 (1周期の誤差185ns)
23.97Hz ≒ 3956Hz/165 (1周期の誤差4.6ns)
となって、けっこうよく一致します。
59.97Hzの場合1時間半で1msずれる計算ですが、そのような微妙な周波数(位相)ずれは別の方法で補正します。
Re: (スコア:0)
60*1001/1000では何度計算しても60より大きくなるような……という突っ込みはおいといて。
補足ですが、直感的に理解するなら、60と72の最小公倍数である360を基準に考えるといいと思います。つまり、厳密に60Hzと72Hzであるならば、360の10倍である3600、11倍の3960、12倍の4320などが「良い」値です。しかし現実の数字には1000/1001という呪い [ite.or.jp]がかかっているため、実は1000で割り切れる数に近い方が都合が「良い」。そこでピックアップされたのが3960であり、4000/1000=4ですから、4Hz減じた3956が最も合理的(この近傍ではジッダ最小)です。
Re:3956 Hzの根拠 (スコア:1, 興味深い)
仮現運動の認知にその程度のずれなど関係ないでしょう
>ぴゅあおーでぃおの世界では、もっと厳しいところでズレが気になるつもりな人はたくさんいそうですけど…
現在の市販製品の実力レベルのクロックジッタなど問題になりません
オーディオやってる人はΣΔ型A/D・D/Aのオーバーサンプリングの仕組みを理解していないだけです
(オーバーサンプリングしている分,ジッタによる歪は小さくなるのです)
そんな微少レベルの歪みを気にする人がスピーカの歪による音質低下を問題としないのは不思議なことです
(OT)オトキ●(Re:3956 Hzの根拠 (スコア:1)
あー、スピーカーの歪は「特性」って事になるのでは。
別に正弦波がきちんと正弦波になることを期待してるんじゃなくて、自分の心地いいような歪み方になるのを期待してるわけですから<オトキ●の人は
# そこがあの分野での定量化や定性化を妨げてるわけで…
そういう意味では入力と出力が歪んでることが分かっていてもそこは容易にかえようがないから、増幅段階で歪特性や周波数特性を都合のいいようにしましょう。と言うのははたから見ても合理性ありますよ。
問題は手法が余りにダメなだけであって。
Re:3956 Hzの根拠 (スコア:1)
ちょっとソースが示せないのですが
スト2(ストリートファイター2)華やかなりし頃、上級プレイヤーは1/60フレームで4コマと5コマだかのアニメーションパターンの違いを見切ってたそうな
4コマだとガード可だが5コマだと不可、とかなんとか。正確に何コマかは覚えてないですが
Re: (スコア:0)
彼らの価値観では、
音質を調整する目的の回路は邪悪きわまりないが、
最小限の回路において音質が変化してしまう困った特性をもつ部品を使うことで音質をコントロールするのはピュアで良いことなのだそうです。
Re: (スコア:0)
シグマ・デルタ型A-D及びD-A変換におけるオーバーサンプリングを理解している者として、貴方には謝罪しなければいけません。
過去に私の同類とされる者がご迷惑をおかけしました。
そろそろ許してあげては頂けませんでしょうか。
Re: (スコア:0)
オーバーサンプリング、つまりサンプリング周波数をあげている分だけ
ジッタに影響されやすいはずなんですがねぇ。
等間隔サンプリングを前提としている信号処理システムでは、その等間隔が
崩れるとその後はすべて総崩れになります。Δ∑とて例外ではない。
つまり、オーバーサンプリングしている領域でジッタがあって等間隔
サンプリングが崩れると、どんな信号処理をしたってダメってこと。
Re: (スコア:0)
リンク先のさらに先を読んでもよくわからんです。
> ぴゅあおーでぃおの世界では、もっと厳しいところでズレが気になるつもりな人はたくさんいそうですけど…
彼らは発振器のジッタを語ることはあっても、データ元とDACのクロック差を語る
ことはほとんどない、とても面白い人たちです。
Re:3956 Hzの根拠 (スコア:1, 興味深い)
http://archives.free.net.ph/message/20100529.115400.17a8ef44.ja.html [free.net.ph]
パッチ投稿者が「3956 Hzは殆どの情報における人間感覚レジスタのプロファイルに合う」と言っていますね。
ソースはどこなのだろうか。
ピュアオーディオの人たちにも朗報な予感。
Re: (スコア:0)
きっと彼らは 3956Hz で変化する CPU の電源電流で鳴く、コイルやコンデンサの音が聞こえるに違いない。心地よいのだろうか?
Re: (スコア:0)
古くはRTCなど、インターバルな割り込みを入れてくれる何かは、何らかのクロックを2のN乗で分周したものを出力にする構造になっていますので。
Re:3956 Hzの根拠 (スコア:1)
linuxカーネルの話なんだから、ハードウェアはgivenでソフトウェアの設定でどの範囲でクロックやタイマー割り込みインターバルを変更できるか、って議論でしょ。ここは。」
Re: (スコア:0)
あなたの使っているシステムではそうでしょう。
例えば水晶発振子ならば、どんな周波数でも可能ですよ(プランク域は駄目だが)。通常はコストに合わないから作りませんが。
Re: (スコア:0)
> 2-3プルダウン
コマ送りで見る限り、最近はちゃんと2-1(前後フレームのミックス)-2に分割してるようですよ。
Re: (スコア:0)
>コマ送りで見る限り、最近はちゃんと2-1(前後フレームのミックス)-2に分割してるようですよ。
最近の機械はたいてい24フレームでも再生できます。
4倍速とかだと120フレームなので単に5回表示するだけです。
そもそもプルダウンしてないのでは。
Re: (スコア:0)
心理視覚最適化の例・負の面の回避策 (スコア:2)
まずビデオカードに向かって心を込めて「ありがとう」と言いましょう。
心理視覚って…何??? (スコア:1)
これって心理うんぬんでなくて単に人間の目の分解能 (という表現でいいのかな?) じゃ
ないかと思ってたんですが、そういうのとは違う次元の話なんでせうか?
Re:心理視覚って…何??? (スコア:1, すばらしい洞察)
真に受けるなよ。
本当は単に前世代を倍にしただけだよ。
整数倍ならスケーリングしても汚くなりにくいしね。
日本の携帯でもQVGAから(HVGAを経過せずに)VGAになったし。
Re: (スコア:0)
タレこんだ人や編集者は理解してるのかなぁ?
是非当人に説明してもらいたい。
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:0)
> どこから360DPIなんて値が出てきたんでしょうね?
タレコミが参照しているギズモードの記事が間違ってる。
ギズモードの記事を参照している時点で...って話だよね。
最近のiPadやiPhoneの記事、クオリティ面でもオピニオン面でも酷すぎるよね。
Re:心理視覚って…何??? (スコア:4, おもしろおかしい)
大丈夫です。「最近のスラドは質が落ちた」と、スラド開設当初から言われつつけてます。
Re: (スコア:0)
若い人にしか見えないものです
構文解析 (スコア:0)
iPhone 4では(*1)設定しているし(GIZMODOの記事)、
画像形式や動画形式においても(*2)使われている。
*1: 「10~12インチ離れた距離で人間が認識できる限界は300dpi」ということで解像度を360dpiに
*2: 知覚的均等性を重視したLab色空間や、x264における複雑さを考慮した量子化量調整(Psy RDO)など各種の心理視覚最適化が
ということであれば、iPhoneで行われていたのは「設定」ですので「使われている」何かとは別格。
強いていえば、*2の直前は「も」ではなく「は」にすべきでしたでしょうか。
Re: (スコア:0)
人間の視覚システムにはローパスフィルターがあるとのことなので、心理視覚の限界と言っていいのでは?
http://en.wikipedia.org/wiki/Human_visual_system_model [wikipedia.org]
Re:心理視覚って…何??? (スコア:1)
ローパスフィルターが心理的なものなら心理視覚の限界かもしれませんが
# Low-pass filter characteristic (limited number of rods in human eye): see Mach bands
視細胞 [wikipedia.org]の数が限られているのでローパスフィルタ特性をしめす、と書いているように思われます。
ざっとしか読んでないので、別のところを指摘しているのなら申し訳ない。
Re:心理視覚って…何??? (スコア:2)
細胞の数が限られていることからローパスになったりはしないのでは?
分解能に限界があるため、高周波成分をそのまま取り込むと折り返しができます。
# デジカメだとモアレっぽくなる。だから、デジタルカメラはすべからくローパスフィルタを入れとるわけです。
人間ならそれが心理的なフィルタなのでは。
人間の目は詳しくないですが、そのリンク先のMach bandsを読むと心理的なフィルタがかかってるように思います。
# ただまあ、そう言う限界を含んでも「人間の目の限界」とは言っても「心理的な限界」とはいわないような気はしますな:-P
Re:心理視覚って…何??? (スコア:1)
心理的というのは、少なくともソフトウェアレベルを指しているのではないでしょうか。
RAWデータを取り込んだ後のソフトウェア処理、という位置づけだと思います。
英語版WikipediaのMach bands [wikipedia.org]の項目では、
とありますから、ほぼ心理的(ソフトウェア)ではなく生理的(ハードウェア)処理なのでしょう。
(取り込んだRAWデータの時点で既にフィルタリング済み)
おふとぴ(Re:心理視覚って…何??? (スコア:1)
確かにlateral inhibitionだと純粋にハードウェアの処理なんですね。
視神経に渡る前の部分なのでASICっぽいっちゃあぽいけど、脳内で画像を再構成する時の処理(どんな処理なのか良くわかんないけど)とは捉えられなそう。
# 何をソフトウェアレベルとするかは難しい……
# ストレスへの反応としてアドレナリンが出て興奮するのは生理的な処理?とか
Re:おふとぴ(Re:心理視覚って…何??? (スコア:2)
ちょいややこしいのは、「心理」ってのが、日本と欧米とでは使われるニュアンスが違うところです。日本で心理というと、「心理学」つまり「メンタルな心のありよう」みたいな感じで、しかも日本においては「心理学」というのは、文学部からの流れでの「文系の心理学」的な意味合いが濃いわけです(もちろん日本でも理系の心理学はありますが欧米ほどは研究が盛んではありませんし、そういうイメージも一般的ではありません)。
逆に欧米では、もちろん従来の文系的な心理学も盛んですが、それよりも、生理学や生物学に近い神経科学由来の心理学やらの理系の心理学の研究が進んでいます。こちらは、もちろん従来の心理学と重なる部分はあるにしても、主として神経回路であるとか、反応速度であるとか、神経のハードウェア的な「しくみ」から行動(出力の制御)を解析するような色合いが強いわけです。
そういう意味では、例えばジッター低減することによって「滑らかに知覚されやすくなる」というのは、網膜や神経回路の問題であっても「心理的な最適化」という説明に矛盾はしないわけです。少なくとも「(より高次の精神作用であるところの)人間の思い込みを利用する」という事を意味しなくても、そういった用語の使用はそれほど不自然ではないです。そのあたりがゴッチャになると、妙な「不気味さ」を感じてしまうわけです。
とはいえ、原文読んでないので、本当にそういう事なのかは保証の限りではないですが。
Medu Lah! en' gula vrechen d' MOL! ~箇更なる高みで廼の困惑を姜す
Re: (スコア:0)
実際はヒトの視覚の分解能って、ローパスどころか視細胞のピッチを超えてるんですけどね。
脳内で視覚情報として構築しなおされる過程で発揮される能力で、ハードウェア的にはローパスフィルタリングされてても問題ないのかな。
Re: (スコア:0)
人間の目の場合は水晶体がローパスフィルタになっているような気がします。
モアレ除去はデジタル処理でもできるのでローパスフィルタが必須というわけではないでしょう。
LeicaのMシリーズなどにはローパスフィルタは入っていませんし。
知覚できなくても感じてたり? (スコア:1, 興味深い)
人間が知覚可能なのが0.5ms=2000Hzなので、その倍の4000Hz分の情報があれば、人間は十分に再現可能(ナイキスト周波数 [wikipedia.org])という発想なんでしょう、と解釈しました。数字が半端なのはよくわかりません。
でも、人間が知覚できない周波数領域を削ったCDやMP3よりも、周波数が残ってるアナログレコードが「音の広がり」とか「温かみ」とかの点で優れているという主張があるように、もっと圧倒的に周波数を上げたほうが気持ちよかったりして。
Re:知覚できなくても感じてたり? (スコア:1, 興味深い)
アナログレコードの「音の広がり」はレコードプレーヤー内で響いて残響音が付加されるためで、「温かみ」はレコードの記録媒体としての特性に合わせたフィルタ回路によるものです。CDをソースにしてレコードを作っても、アナログレコード愛好家が好む音になるんですよ。
Re: (スコア:0)
ポケモンショックは病気 (スコア:1, 興味深い)
これは癲癇。
海外では認められていてこの癲癇患者向けのコンピュータウィル
スが出たこともあるんだが、日本だと
http://www.shizuokamind.org/
ここくらいしかまともに直してくれないので見つけたらここを
紹介してください。この病気だんだん悪化していきなりどうにも
ならなくなるので直すのを勧めます。ちなみに年に10何件かは
これが原因の交通事故が起こるそうです。信号の点滅で意識を
失うらしい。日本の医者は認めたがらないのでなかなか治す人は
いないそうだ。
Re:ポケモンショックは病気 (スコア:1)
段々悪化するのですかorz
昨年(だったと思う)、某スポーツ用品メーカのweb広告見て
頭痛と吐き気を起こしたんですよね……。
10年以上前、有料道路の同じ区間を夜間通過すると、
毎回、気が付かない間に寝てるetc、見に覚えが……。
#癲癇なら車の免許取得に制限あるけど、どうなるんだろう……
☆大きい羊は美しい☆
ターンアラウンドタイムが (スコア:0)
Webサーバーやアプリケーションサーバーのようなクライアントサーバー型で
レスポンスタイムが0.5msなら、どうなんでしょうか?
Re: (スコア:0)
サーバがその速度で対応しても通信遅延の方が遙かに大きいので問題になりませんよ。
pingの単位がマイクロ秒なんてむりっしょ?(ご近所[国内]のpingだってmsだよ!、昔のOCNなんか10000ミリ秒とかあったよ!)
視覚以外 (スコア:0)
たとえば音を出す処理には、このパッチ、どんな影響があるんでしょうか?特にメリットは…
もしかして色々ありますか?
確か Windows の最小割り込みは 16ms だったような (スコア:0)
IE だったか忘れちゃいましたが、この心理を元に Windows さんのところは最小割り込みが 16ms だったよーな気がします。
set_timeout(0) ってやっても 16ms 以下にならなくてバグだ!と思ったんですが、「仕様」だったような。
# もう既に Windows では通った道なんだよ!
心理的に (スコア:0)
5963Hzにするといいんじゃないかな?
ごくろーさん
#心理的に寒気がしても当方は関知しません。
Re:うーん… (スコア:1)
印刷やっている人間から (スコア:1)
印刷屋で製版してます。
画像の解像度については通常350dpiで作業することが多いです。(日本では)
DTPの本なんかで解像度を違えただけの画像が並んでいたりしますが、普通は300dpiと350dpiの違いが「並べれば見分けられる」ぐらいですね。
ただしそれもスクリーニングがAM変調だったとき。網点が規則正しく並んでいて、その大きさを変えることで濃淡を表現するしくみです。
スクリーニングがFM変調の場合には、200dpiくらいのもっと低解像度の画像でも細かくきれいに見えます。この場合は、網点の大きさは同じで、その密度を変えることで濃淡を表現します。
モニタの場合はドットの大きさを変えることはできないのでAMスクリーニングに近く、インクジェットプリンタなどではFMスクリーニングに近いでしょう。
1ドットの階調表現を考えれば200dpiでも充分だと思いますけどね。
あと(最近は仕事がなくなりましたが)テレカなんかの画像は400dpiで作業していました。
これは、小さいものに印刷するため、より近づけて見ることを想定してのことだと思います。あと小さいから解像度を上げないと表現力が落ちるということもあったと思います。
逆にポスターみたいな大きなものなら、多少解像度が落ちても構わないです。近づいて細部を見ることはないですから。