技術雑記
久々ですこの投稿シリーズ。なんでもないよーなことをつらつらと書いてきやす。
さて、最近ちょっとまたウルスラグナの開発をやってたんですが、映像圧縮コーデックで利用しているVP8なんですが、ライブラリのlibvpxのバージョンは1.11.0が最新なんですが、開発環境はいつものVisual Studio 2008 Expressなんで、ビルドできるのは1.6.1までなんです。いや1.7.0以降もやろうと思えばできるかもしれんのですけど。で、その1.6.xがちょっと動作が怪しかったので今はブリュンヒルデで利用していた1.4.0を採用してます。1.5.0はちょっと遅かったものでスルーしました。
で、このVP8なんですけど1.11.0でも発生してるんですが、なんか映像とか環境によってでっかいブロックノイズ的なのが乗るのが分かってまして。色々と調べてるんですけど何やらMMXを有効にした時点でNGぽいんで、これはもうどーにもならんかもしれんかなと諦め気味の毎日です。しかもウルスラグナでもブリュンヒルデでもキーフレームを利用してない設定ですのでノイズが乗るとなかなか改善しないという。ぐぬぬ。
さて、んでもって老後の楽しみとしてとってあるVP8を根幹から見直して作り直してやろーかと思ってた壮大な企画があるんですけど、上のノイズの件もあるのでこりゃVP8じゃなくてゼロからコーデックを作った方が良いかなとも思うよーにもなりまして。
てのも、Twitterにもちょっと書きましたけど、離散コサイン変換と量子化とジグザグスキャンを追加すればそれなりの性能な映像圧縮コーデック自体はとりあえず完成はするかなと。色空間変換とデータ圧縮はアセンブラの速いのが既にありますんで。あとは差分処理ですかね。これも以前にアセンブラで作ったのがあるので何とか流用可能かなと。動き予測とかそーゆーのはないんですけど何とかなるんじゃないかなと。
時代的にも圧縮率はどんどん求められなくなっていると思うので、そうなると画質とか速度になるんですよね、ずーっと言ってるやつなんですけど。ノイズとかイヤですもんね。できれば無劣化までしたいんですけどさすがに離散コサイン変換した時点で不可逆になっちゃうんで仕方ないですけどまあ良しとしませう。
そーいえばその昔にTrueRemoteに実装したGaeBolgVideoCodecて映像圧縮コーデックを開発したことがあるんですけど、アレは画面の動きが激しい際の圧縮率が低いので、あと20年くらい未来じゃないと通信帯域が耐えられないと思います。実測100Gbpsくらいは欲しいですので。その頃は解像度も凄くなって追いつかない気もしないでもないですが。ま、無劣化ですし動画用に設計してないのでしょーがないんですけど。
つーことで、なんか次の目標ができたわけでそんなことを考えてると今やってる仕事とかにもハリも出てきますよね。ちなみに今やってんのが、4つの会社の取締役とか何社かの顧問とかスマホゲーム開発とか通話アプリとかAIとかリモートデスクトップ開発とかアプリ開発とかSNS開発とかイベントとか番組制作とか・・・近況としてはそんな感じで。Twitterでも色々と情報を出していきますのでお楽しみに。