MPEG-2 VIDEO VFAPI Plug-In ver. 0.7.16 を公開しました。ダウンロードは [URI] からどうぞ。更新内容は次の通りです。
今回 lukewarm さんから情報提供していただき、メモリリークの存在に気が付くことができました。大変感謝しています。
MPEG-2 VIDEO VFAPI Plug-In ver. 0.7.15 を公開しました。ダウンロードは [URI] からどうぞ。更新内容は次の通りです。
一部の TS ファイルが開けないバグについては tana3n さまからのサンプル提供でこの問題を認識することができました。情報提供ありがとうございます。「パナソニック製のマスターを採用した放送局から送出されるMPEG2-TSで発生すると思われる」「テレビ信州のマスター更新前2020年以前のTSファイル全般で発生」していたと聞いています。
ver.0.7.14 までは TS をパースする処理に問題があり一部変数を未初期化のまま放置していたために今回の問題が発生していました。PES::stream_id が 0xE0 の場合は偶然動いていたという状況でした。
残りの変更点はこの機会に今でも入手可能なコンパイラでビルドできるようにしておくかとコンパイラ変更に手を出したために付随的に発生したものです。
今回のバージョンは Microsoft Visual Studio 2019 Comunity Edition と Intel OneAPI DPC++/C++ Compiler 2022.0.0 でビルドしました。これ自体は Makefile の微調整で済んだのですが、Intel OneAPI DPC++/C++ Compiler ではインラインアセンブリからのグローバル変数参照がうまく行えなくなっているようで浮動小数点 IDCT の SSE コードでリンクエラーが出るようになっていました。
MASM を使ってオブジェクトファイルを生成している純アセンブリコードは特に問題が起きていなかったので、浮動小数点 IDCT の SIMD 実装も純アセンブリで書き直して回避することにしてしまいました。面倒でしたが高速化できたのでヨシという風に考えています。
旧実装との比較では浮動小数点 IDCT 部分がざっくり倍速になってくれました。通常はより高速な AP-922 を選択する人が多いので労力を投入する意味はほぼ無いのですが純全たる趣味のコードなので。
MPEG-2 VIDEO VFAPI Plug-In ver. 0.7.14 を公開しました。ダウンロードは [URI] からどうぞ。更新内容は次の通りです。
マクロブロックの動き補償タイプが DUAL PRIME と認識する場合で MV の範囲チェックに漏れがあり、不正アクセス例外を発生させることがあったので修正を行いました。
今回 tokohito さんからのサンプル提供によってこの問題を認識することができました。情報提供ありがとうございます。
MPEG-2 VIDEO VFAPI Plug-In ver. 0.7.13 を公開しました。ダウンロードは [URI] からどうぞ。更新内容は次の通りです。
最初の項目について。前回、ver. 0.7.12 で追加した破損データ対処で誤爆する場合があり、短い GOP で正常な I ピクチャを破損していると判定してデコードを省略し、デコード結果が崩れるケースがありました。
はみゅ さま より問題の発生する箇所を含むサンプルを提供いただけたため、問題を認識して修正することができました。サンプル提供に深く感謝します。
二つ目の項目について。2007 年に発行された ITU-T H.262(2000) Amd2 で ITU-R BT.709 の色空間変換係数が最新のものに変更されていたのですが、それに気付かずにこれまでは古い係数から算出したものを利用していました。
今回、Tac さま からの連絡で更新を知ることができたので、利用する係数を最新版から算出したものに差し替え、readme の記述も更新しました。連絡に感謝します。
三つ目の項目について。mme.exe にも -g -q オプションがあり、GOP List を作成するだけならこちらを使うこともできるのですが、GOP List を作るだけなのに mme.exe のウィンドウ&進捗ダイアログが表示されてフォーカスを奪うことがあるのはウザいとの意見があり、納得できる内容だったので単体の CUI アプリを追加することにしました。GOP List 作成だけであれば mme.exe よりも make_gl.exe の方が BAT ファイル等からも扱いやすいかと思います。
MPEG-2 VIDEO VFAPI Plug-In ver. 0.7.12 を公開しました。ダウンロードは [URI] からどうぞ。更新内容は次の通りです。
こうしたデータが供給された場合に、ver. 0.7.11 以前では不正アクセス例外を出してプログラム毎落ちたり、問題発生箇所以降でフィールドがズレた状態で画像がデコードされ、復帰しなくなったりしていましたが、今回の ver. 0.7.12 からは「落ちない」「異常データは無視して早期に正常デコードに復帰させる」ようにしました。
今回、佐々木さまからピンポイントで問題が発生するサンプルを提供いただけたため問題を修正することができました。ここに記録して感謝を表明します。
ひさしぶりの更新がこれかーと思いつつ、ある程度まとまった分量の文章と画像をつける必要があるネタだったのでこちらに掲載。インデックス長期投資で平均回帰効果は確認できるかについて。
そもそも何故これを書いているかというと、5ch 投資一般板の NISA/つみたてNISA スレ 23 [URI] で、長期のモンテカルロシミュレーションってどこまで信用できるのかという話題が繰り広げられていたため。興味が湧いていくつか実験してみた結果をまとめておきたくなったから。(当該スレの 107 とかを書きこんだのは私)
結論を先に書いておくと、インデックス長期投資での平均回帰効果は MSCI KOKUSAI (先進国除く日本) の場合確かに存在が確認できて、長期のバイ&ホールドは短期の取引と比較するとリスクは低下する。以下で確認方法とかを書いていく。
やったこと。
結果。
乱数系がモンテカルロシミュレーションで求めた値で、現実系が実データから求めた値。平均と上位16%・下位16%のラインで分布範囲のイメージを示してる。
両方とも、5年目 (投資期間 60ヶ月) 程度まではそこそこ一致してるのだけど、その先は現実系の分布が平均に寄っていって、モンテカルロシミュレーションから乖離を始める。
10年以上の長期だとその影響は顕著で、ほぼ別の分布と評価すべきような様相を示してる。乱数系だと投資期間を延ばすほど分布が広がっていくけれど、実データでは、サンプルが少ないために暴れている影響を無視すると、平均リターンの推移をほぼ上下に並行移動させただけのような線になる。
ここからは考察。これがいわゆる「長期投資での平均回帰効果によるリスクの減少」に相当してるのかなーと評価してる。
5年以内の短期〜中期投資だと、投資家の熱狂や恐怖によって株価は本来の価値から逸脱することがあるけれども、投資家が正気に戻るだけの十分な期間を置けば本来価値に再評価されていくので、期待リターンに準じた値動きへと収束していくという仕組みなのかと考えている。
短期のリターンとリスク(標準偏差)を使ってモンテカルロシミュレーションで長期間の株価変動を予測しようとしても、モデルに織り込まれていない平均回帰効果の分だけズレた結果になってしまう。10年超の予想をする場合モンテカルロシミュレーションを使うぐらいならば、平均リターンの単純複利にある程度の幅を付与してやるだけの方がまだ現実に即した結果になるのだろう。
懸念点として、実データは 45 年分しか使っていないため投資期間 20 年の場合重複した期間の存在しないサンプルは 2 つしか取れてない。この辺の影響で標準偏差が小さくなってしまっていないかという辺りの分析も必要だろうと思うけれども、そこまで考える元気がなかったのでこの程度で検討終了する。
今回の遊びに使ったアレコレは [ ここ ] に置いてるので興味のある人はそれぞれで検証してみて欲しい。
MPEG-2 VIDEO VFAPI Plug-In ver. 0.7.11 を公開しました。ダウンロードは [URI] からどうぞ。更新内容は次の通りです。
モリケン (twitter id : @tokohito_priv) さんからのバグレポートおよびサンプル提供のおかげで今回のバグを修正することができました。深く感謝します。