Brynhildr

KeroRemote

リモートデスクトップエンジニアのブログ。

映像圧縮エンジン「KUGA」。
KeBORDに搭載されている新型の映像圧縮エンジン「KUGA」なんですが、現在チューニング中で御座います。

KUGAは、Murakumoで実装されていたVP8ベースの映像圧縮エンジンをベースにしています。設定もほぼそのまんまだったのですが、Murakumoの頃はGBVCとゆーか疑似YUV444とゆーか無劣化とゆーか、ソレが実装されておらず、結構な高画質の設定じゃないと納得いってませんで、ビットレートを4Mbps固定にしてたんです。ですので、画質の設定が「1」でもそれなりに高画質だったのですが、とーぜんKUGAもそのままになってました。

その設定をちょっと調整中で、画質の設定が「1」と「2」に関しましては、ビットレートを下げて他のパラメータも調整もしまして、画質をさらに下げるようにしました。結構ギリギリラインまで下げてみましたけど、KUGAの機能で徐々に無劣化画像に変化する仕組みで御座います。

ちなみに通信サイズ的には、1/2~1/4くらいと結構減りましたのでインターネット越しでの描画がさらにスムーズになると思います。画質も結構下がってますけど。

あと、画面の動き判定で内部的にVP8とGBVCが切り替わっているのですが、このGBVCの状態の際の通信サイズを調整しました。ちょっと量が多すぎて、画面の動きが少ない時の方が極端に通信サイズが大きいという状態を回避するのが狙いです。

仕組み的には、コーデック内で0.25秒毎にビットレートを計算して、極端にサイズが大きい状態になった際に、処理頻度を抑制してビットレートを抑えるといった仕組みです。これまでは流せるだけ流してましたけど、チューニング後は自動的にビットレートが調整されます。もちろん抑制量は画質の設定の値に依存する感じですが。

こんな感じでKUGAをチューニング中ではありますけど、完了次第KeBORDのバージョンアップで実装されると思いますので暫し御待ち下さいませ。

そんなKUGAなんですが、実は別のトコにも納品予定g・・・ゲフンゲフン!




4件のコメント ... ( 管理人承認制 )



KUGAの記事ですが、Brynhildrの要望です。(KeBORDも該当しますが)


BrynhildrからKeBORDのに移行したことにより、
私の管理する環境では全体的にパフォーマンスが落ちてしまったので、
KUGAの最低画質に近い部分のチューニングは大変期待しています。
しかし上記の理由により、現状はBrynhildrを使用しております。


ただ、Brynhildrを数十台に導入している環境下において、
バージョンアップ作業がなかなかに苦痛でして。。。


Brynhildr等をインストーラー形式で配布する予定はありませんか?
インストーラーに対して引数等により接続パスワードを指定して
現在のサービスを停止・アンインストールした上で、
Serverとしてサービス登録まで自動化できないものでしょうか。


上記が可能になれば、自動アップデート処理も実現できそうですが、
今回の要望はそこまで求めるものではありません。


我儘ばかり申して悪いのですが、ご検討いただけると幸いです。


る~  2014/02/14


> バージョンアップ自動化


えーとですね、時たまコメント欄に記述しておりましたので、御存じの方は御存じなのですが、実は隠れ機能としてアップデートを簡単に行う仕組みが御座います。何故隠れ機能なのか申し上げますとやはりセキュリティの面から見ますと余り好ましいとは言えませんので隠れ機能という事にしてあります。ここで書くと隠れ機能でも無くなりますが。


さて、肝心のアップデートの方法ですが、「brynhildr.exe」の存在するフォルダに「new」というフォルダを作成しまして、新しい「brynhildr.exe」を中に入れます。すると自動的に新しいモジュールに入れ替わって再起動されます。もちろんパスワードや設定等はそのまま引き継がれます。また、「brynhildr.dll」も同じくアップデートが可能です。但し、DLLはクライアントからの非接続時に実行される仕組みです。


あと、KUGAについてですが、低画質実装で通信量は減りますがパフォーマンスは上がらないような気がします・・・。こちらはサーバー側のCPUパワーに依存するような感じかと思います。恐れ入ります。


あと、インストーラー形式で配布という予定は現在のところ御座いません。恐れ入ります。宜しく御願い致します。


IchiGeki  2014/02/14


> バージョンアップ自動化
素早い御回答ありがとうございました。現在実装されている更新方法については理解しました。
つまるところ、プロトコル仕様が変わった場合には接続が取れるVer同士で接続し、リモート操作中に新Verを配置してやる、もしくはクライアントPCを直接操作して新Verを配置してやる必要があるわけですよね。


ならば、Serverに接続する際に「Clientとのバージョン比較をしてServer側を更新しますか?的なダイアログを表示するといった動きはできないのか?」とか、「パスワード認証によるUpdateMode的な接続はできないか?」と、思ったのですが、バージョンが異なるが故、互換性が取れてない場合では厳しいのかなぁ、とも思います。


結構小刻みに更新があったように思う(それゆえ更新作業に苦痛を感じていたわけですが)ので、今後のバージョンアップの見通しは・・・なんてことはわかりませんよね・・・。


仕様ということで受け止めますが、もうちょっと楽になればいいなと淡い期待をしつつ、重ねて感謝の言葉で結びます。ありがとうございました。


る~  2014/02/14


> バージョンアップ


バージョンアップは今後も頻繁に行って行く事にはなると思いますが、通信プロトコルの仕様が変わらない限りはバージョンが異なっても接続する事は可能です。開発上は「通信バージョン」と呼んでおりますが、こちらはなるべく変えないようには努力しておりますが、止むを得ず変えざるを得ない事があるかと思いますので御理解頂ければと思います。


IchiGeki  2014/02/17




... 不具合報告の際は、アプリのバージョンやOS等の動作環境の記載を御願い致します。

表記されている会社名・製品名・システム名などは、各社の商標、または登録商標です。
当サイトはAmazon.co.jpアソシエイトプログラムに参加しています。
© 2010 IchiGeki