この分野でアメコミっぽいの珍しい。さすがAndurilって感じ。
“ひきこもりリスク”の高い人は、オンラインゲームでも交流を好まない傾向。匿名でも“人付き合いはしんどい”可能性、日本人ゲーマーを対象に研究 - AUTOMATON
相関関係はある、因果関係は不明、という段階。あとは実験上の注意点もいくつか。
しかし、思い当たる節がいくつか…… あのゲームとか、あのゲームで減点判断した要素、プレイヤーの社会性の低さが原因だった可能性が。。。
AUTOMATON、コンテンツの質が安定して高いので好きなんだけど、最近記事を読んでいるとポップアップが出てくるのが体質的に結構厳しい。あと、自分の場合はRSSで1日分のタイトルやヘッダーを見て読みたい記事を開いてから読むから、ポップアップで出てくる記事は「後で読みたいからすでに開いている」or「興味がないので飛ばした」の二択なので、余計にうるさい。RSSにはタイトルと序文が出てくるけど、ポップアップにはタイトルの一部しかないから、RSSを先に見ると情報量が増えない。RSS経由で入ってくる読者はURLパラメータで識別してポップアップを出さない、みたいな機能が欲しいなぁ。
こういう計画性皆無のページ配分するメディア大っ嫌い。この程度の2ページ目を作るくらいなら1ページにまとめろよ。ページビュー(=広告収入)を水増ししたいだけのデザイン。どうしても広告費を稼ぎたいならせめてそれを前面に出さないデザイン(バランスの良い分割)にしろ。
***
fl2kでNTSCを出力する遊び。
最初なぜかfl2kから信号が出なかった。カチャカチャやってたらなぜか出力するようになった。謎い。もしかしたらUSB 3.0の「ゆっくり挿したら正しく動かない」系のトラブルかも。
とりあえず、CVBSで固定のカラーバー画像を出せるようにはなった。前回は正しい色が出なかったけど、おそらく座標系の取り扱い(特に33度のオフセット)の間違いだったっぽい。Y, R-Y, B-Yで変調すれば綺麗に出る。ただし色信号の帯域制限とかはやっていない(真面目に実装するとコストが。。。)。
真面目に変調しようとすると、まずYIQで帯域制限して、それをRGBに戻して、色ごとにガンマ補正をしたうえで、Y, R-Y, B-Yで変調しなきゃいけないのかな? RGBの段階で非線形処理が必要だから、YIQ→Y,R-Y,B-Yへの直接変換はできないはず。FIRで帯域制限をやるならそっちの演算コストが圧倒的に高いから、3x3行列2回分のコスト程度は無視できるだろうけど。ただ、ロジックが圧倒的に複雑になるし、帯域制限にしろガンマ補正にしろ確認がとても面倒なので、今回は省略した次第。
*
fl2kで使用可能なサンプリングレートとfscの倍率の関係(倍率の誤差が整数比に対して1%未満に限定)
x3, 10.740738 Msps ( 0.0006)
x4, 14.318170 Msps (-0.0000)
x5, 17.894733 Msps (-0.0008)
x6, 21.481477 Msps ( 0.0012)
x8, 28.636356 Msps (-0.0000)
x9, 32.222216 Msps ( 0.0018)
x10, 35.789470 Msps (-0.0017)
x11, 39.375000 Msps ( 0.0000)
x12, 42.941173 Msps (-0.0037)
x13, 46.521732 Msps (-0.0035)
x15, 53.684205 Msps (-0.0025)
x16, 57.272713 Msps (-0.0000)
x17, 60.833330 Msps (-0.0053)
x18, 64.444443 Msps ( 0.0035)
x19, 68.000000 Msps (-0.0032)
x22, 78.750000 Msps ( 0.0000)
x23, 82.307683 Msps (-0.0061)
x27, 96.666660 Msps ( 0.0053)
x31, 111.000000 Msps ( 0.0095)
x38, 136.000000 Msps (-0.0063)
x44, 157.500000 Msps ( 0.0000)
x57, 204.000000 Msps (-0.0095)
x88, 315.000000 Msps ( 0.0000)
実用的にはx38の136Mspsが最大かな?
x11とその2^n倍はfscに対して整数比になる。x4とその2^n倍は厳密には整数比ではないが、-6乗程度に収まる。
fl2kの高調波でアナログテレビ(ch1,2,3)を出す場合の配置
1つのチャンネルだけでいいならch1のx6かx8、2つ必要ならch1/ch2のx12、3つ必要ならx16かx22、あたりかな。x16は偶数ゾーン、それ以外は奇数ゾーンなので、そのあたりは注意が必要か。まあ、符号だけ気をつければ……
*
映像/音声信号をfl2kで出力
音声は44.056kspsを650倍して8fscへ上げて4.5MHzの周波数変調、映像も同じく8fscで負極性のNTSCを作成して、これを加算してから2倍にゼロパディングしたうえで、-1 - +5MHzくらいのざっくりした複素フィルタに通してVSB化したうえで、16fscのゼロIFに-17.3MHzの信号をミックスして、実部を吐き出して、これをfl2kで出力するとゾーン4の96-102MHzにアナログch2テレビ信号に相当する信号が出てくる。DAC/高調波のSinc特性は補正していない。
オシロで受けてFFTで見れば、97.25MHzに映像のキャリアがあるのと、101.75MHzに音声のキャリアがあるのと、100.83MHzに色信号が見える。
広帯域受信機のアンテナを容量結合すると、101.75MHz/WFMでテストに入れた音が聞こえる。少なくとも、音声信号(モノラル)は正しく変調できているはず。
しかし、こうしてみると電波割り当ての6MHz間隔のなかで、アナログ放送ってかなり上に寄ってるな。映像信号は1.25MHzのVBSで、音声信号は上から250kHzの位置。たしかにこういうのが横にあると、デジタル放送は上に150kHzくらいオフセットするか、という感じもある。
地デジ放送に+1/7MHzのオフセットがあるのはアナログ放送に対する保護みたいな目的なのかと思っていたけど、実際にはアナログ放送から受ける妨害を避けるためなのかも。
現状最適化も何もせずDebugビルドで回しているので、変調するのに、実時間に対して数十倍の時間がかかる。Releaseビルドにしてもまだだいぶ遅いはず。基本的にコストが高いのはFIR系の処理だから、ここをマルチスレッド化すればだいぶ早くなるはず。とはいえ、それでもやはり実時間で処理できるかは怪しい気がするが。
C#はC++のtemplateみたいな書き方ができないから、型を固定しないとフィルタのコードが膨大になって困る。下手にfloat, double, Complex32, Complexあたりから選んでデータレートを削るより、まずはComplexだけで、実数データも虚部0埋めの複素データで扱って、フィルタのアルゴリズム側で頑張るほうが速度が稼げそう。
そもそもFIRみたいな基本的なコードを毎回書き直すな、という話なんだけど。
*
だいぶ前に買って積んでいた(開封すらしていなかった)中国製のアナログチューナー(アナログテレビで地デジを見るためのチューナーではなく、TV受信機能のないCVBSモニタでアナログテレビを見るためのチューナー)を開封。リモコンの電池トレイには絶縁シートが挟んであるけど、肝心の電池は入っていないという、いかにも中国クオリティな製品。
とりあえず、通電する前にさらに開封
中央(基板左側)にあるのがRF→IFのダウンコンバータ(左端の金属板はそのシールド)、右側の基板がIF→CVBSの変換とかのロジック周り。
ダウンコンバータはフィリップス製のモジュール。このモジュールは本来2個の同軸コネクタ(IEC 169-2、日本ではPAL端子と呼ばれている、欧州・豪州のラジオ/テレビでよく使われているもの)があって、片方が入力、もう一方がパススルー出力、らしい(パススルー出力は無理やり外されている)。おそらくダウンコンバータ自体はHi-Z受けで、本来はスルー出力側にターミネータが必要なはず。こだわるならPAL端子にRFを入れる前にターミネータが必要になる。
シールドの中身は、4MHzの水晶、PLLが入ったSOP、IFフィルタのSIP、他にコイルがたくさん、その他、という感じ。よく見るとPCBにもパターンコイルが作ってあったりする。シールドの蓋には調整用の穴が空いているけど、その下には触れるようなものは何もない。蓋は昔作ったものの流用で、かつては発振周波数やフィルタの調整が必要だったのかな?
このダウンコンバータのモジュールは1990年代のものだと思うんだけど、2010年代に入るとE4000やR830Tのようにワンチップでこのモジュールをほぼ丸ごと構成できるわけで、半導体技術の発達とは凄まじいものよな。
このダウンコンバータはフィリップス製らしく、PLLはI2Cでコントロールできるらしい? モジュール自体の入手性やデータシートの入手性が良ければ、ちょっとした受信機を作って遊ぶのに便利そうなのだが。数十MHzから800MHzまでを一気に適当なIFへ落とせるダウンコンバータって結構面白そう。IFと言ってもテレビ用だから40MHzあたりだと思うけど、それでもBPFを通っているから、アンダーサンプリングで受ければいいだろうし。
それこそR830Tブレークアウトボードとかがあればそれで済むんだけど。
*
fl2kの映像出力とこのSTBのRFラインをAC結合してスキャン。STBはCVBS出力なので、これをRCA→HDMI変換に入れて、HDMI→USBキャプチャでPCに取り込み。いろいろなプロトコルを介して、PCから出した信号をPCに取り込むような形。
STBのメニュー画面
かなり操作性が悪い。SEARCHはおそらく周波数を直接入力できるっぽいんだけど、この項目に入ると二度と抜け出せなくなる(電源断でリセットする必要がある)。謎い。AUTO SEARCHでは非常に幅広い周波数レンジ(数十MHzから1GHz弱まで)をスキャンしている間、中断ができない。
チューナーが映像を受信する前
右上の1がチャンネル番号に相当する表示
映像を受信している状態
SMPTEカラーバーっぽい映像を変調していて、それらしい白黒映像が見えているので、少なくともモノクロのテレビ信号としては正しく変調できているっぽい。ただ、カラー信号が無いし、非常にノイズが多い。
右上のチャンネル番号も乱れているから、テレビ映像→RCAで壊れているわけじゃなくて、RCA→UVCで壊れているんだと思う。見づらいけど、メニュー画面や映像受信前はPAL(モノクロ)としてキャプチャデバイスに認識されているけど、映像が入った状態ではNTSCとして認識されている。
輝度映像信号はNTSCでもPALでも同じだから、色信号の部分で問題があるんだと思う。もしかしたら、スキャンして別のゾーンの映像信号を捕まえて、奇遇が違う場所でVSB映像信号がミラーになっている場所を受信していて、カラー信号(&輝度の高周波成分)が無いからノイズだらけのモノクロになっている、という可能性がありそう。輝度信号しかないからチューナー側がNTSCを認識できず、OSDがPALで書かれて、NTSCで受けているRCA→HDMIで映像が乱れる、とか。映像がない時点ではチューナーのOSDがPALの同期信号を作るからRCA→HDMIはPAL映像として認識するが、映像が入った時点でチューナーのOSDは輝度だけ上書きして、同期信号はNTSCの形になるから、RCA→HDMIはNTSCとして認識するが、チューナー側はPLAのまま、みたいな。
***
Forza Horizon 6を起動もアンインストールもできなくなった。
Windows Updateを適用してOSを再起動後に起動できなくなった。前回PCがクラッシュして、その時もFH6が起動できなくなり、その時はアンインストール→インストールで起動できるようになった。今回はそれ以降初の再起動なので、OS再起動が原因で起動できなくなった、みたいなトリガはありそう。やはり前回のクラッシュでジワジワとダメージが入ってる感じがする。
今回の再起動後、cmd.exeの外観も変わった。最近のタブや若干リッチなフォントと違って、シンプルなウインドウに簡素なフォントで表示される。このあたりもなにか不具合がありそう。
FH6はMicrosoft Storeで購入/インストールしたので、とりあえずwsresetを打っておいて、sfcとdism。sfc /scannnowでは検出なし。dism /online /cleanup-image /restorehealthは数時間かかるとか書いてあるので恐る恐る打ってみたら、50%くらいまでものの数秒程度で走ってこんなのすぐ終わるじゃんと思っていたら、60%から遅々として進まない。と思って10分くらい目を話したら80%を超えていたりして、プログレスバーは残り時間の目安には使えなさそう。30分くらいで終わって、正常に終了したとのこと。再起動して再びscannnowをやって、問題なさそう。
ただ、やはりFH6を起動したりアンインストールしたりができない。
なんか、以前のクラッシュを引きずってWindowsが不調な気がする。
さて、どうしたものかなぁ。最終手段はWin11のクリーンインストールだけど、さすがに気が乗らない。現在の起動ドライブは丸ごと残しておきたいし、数年使ったNVMeだから使いまわしも嫌だし、と考えると、少なくとも起動ドライブ用に7万円くらいかかる。データドライブの方もRAIDで組んでいて、念のためにバックアップを、とか言い始めると、また8万円くらいかかる。15万円かけてまで治すべきかというと。。。
かといって、15万円をベースラインにすると、かなり絞った構成にしたとしても新しいPCを組むこともできないし、微妙な線なのよなぁ。
アンインストールができない、という点に限って言えば、Microsoft Store版はファイル管理が厳しいから手も足も出ない、という状況にある。これがSteam版だと、ストレージからインストールファイルを全部削除して、みたいな荒療治ができる。
Microsoft系のゲームだからMicrosoft Storeで買ったけど、やはりゲームはSteam版とかで買ったほうが楽そうな気がする。あるいは、クラウドゲーミングに振り切るか。
とかなんとか、ノートPCで経過を書きつつ、念押しのdism+sfcをやって、なんの問題もなく終わり、再起動したところ、cmd.exeも戻り、Forza Horizon 4/6も消えていた。appxpackageも触ってたので、どれが効いたのかはわからないけど。
ただ、それで消えて、再インストールして、起動しても、また起動画面で止まって起動できない。そのまま10分くらい放置していたらエラーコード付きのクラッシュ画面が出てきて、もう一回起動すると、今度はうまく起動できた。
いまいち安定しないけど、まあ、起動できたしいいや。
ストレージ故障だと再起動でトドメになることもあるだろうけど、多少のソフトウェア的な問題なら、再起動で治るっぽいな。最近のWindowsってだいぶロバストな気がする。やはりクライアント用Windowsは高い頻度で再起動するのが良さそう。
10年くらい前は小さい組み込みデバイスの試作の下請けみたいなのをやったり(量産品じゃないから実質本番用を作ってた)、あるいはイベントの撮影のバイトみたいなことをやっていたので、それなりのPCが必要だったけど、最近はそういうこともやってないので、PCの必要性があんまり無いんだよなー。ということで、バックアップ用途含め、値段の高いストレージの購入を渋っている次第。大量に溜め込んだ15TBくらいのデータが飛ぶと心が痛むし、多分しばらく寝込むけど、とはいえそれで商売をしているわけではないから、特に実害はないという。
***
Windowsってctrlを押しながらタスクバーのアプリアイコンをクリックすると、ウインドウを一つずつ表示してくれる機能があるんだな。例えばExcelのウインドウを3個開いていると、タスクバーをクリックしたらサムネイルが表示されて、そこから表示したいウインドウをもう一度クリックするけど、ctrl+クリックだと最後に使った順?でウインドウが順番に表示される。ウインドウが3個なら3回クリックすればすべてを表示できる。
多用する機能ではないけど、地味に嬉しい機能。