動画解説。
えー、先日掲載しましたBrynhildrの動作中の解説です。さらさらっと進ます。
まず、1枚目。

普通の表示画面ですが、FPSがちょっと低いです。タスクトレイのアイコンにピンと来た方はかなりスルドイですが、これはMacMiniのBootCampを使ってWindows7を起動させてます。MacMiniの世代も1つ古いのでCPUはCore2Duoです。なので、AeroがONで映像やら音楽やらリモートデスクトップが2つも起動させれば結構いっぱいいっぱいだったりします。うっかり表示し忘れてましたけど、この時点でだいたいCPU使用率は80%くらいです。このくらいのスペックのPCでも動きますとゆー事をお見せしております、はい。
あと、通信データ量の表記が「byte/s」から「bps」に変わっております。結構bpsで求められるケースが多かったもので変えました。
Brynhildrの方が通信データ量が若干多いです。映像のデータ量はほぼ変わらないのですが、操作制御系の通信データの間隔が速くなっているのと、マウスカーソルの色数が32bitに対応したので結構増えてる感じです。間隔についてはまだ確定事項では無いのでひょっとすると変わる可能性もあります。
はい、次です。

音声伝送をONにしたところです。サーバーのサウンドデバイスの設定次第ですけど、44100Hzの16bitの2chで約1.4Mbpsなのでそれくらい増えてます。単純計算ですけど。
あと、タスクトレイのサウンドのアイコンを見てピンと来た人はスルドイです。えぇ、サウンドはミュート状態です。ところがCoreAudioを使うとミュート状態でも音声をキャプチャーできます。なぜかと突っ込まれると詳しくはわかりませんけど。従いまして、サーバーでは無音なのにクライアントでは音声を鳴らすといった事が可能です、すごいです。なので音量はクライアントの音量に依存とゆー感じです。
はい、次です。

暗号化通信をONにしたところです。通信データ量もFPSもほぼそのままで、切り替わったタイミングもほぼわかりません。特に主だった変化も面白みもありません。ただ通信データはBlowfish265bitで暗号化されてます。速度が全然落ちないところがこの暗号化アルゴルズムを採用した理由の1つでもありますので。
はい、最後です。

高圧縮モードをONにしたところです。画面の変更量次第にもよりますが、通信データ量が60%くらいに減ってます。圧縮に若干時間がかかるのでFPSも落ちますが、速度の遅い通信環境ですとFPSが逆転する時があります。この辺は利用用途や環境に応じて使い分けになるかと思います。
ちなみにこの高圧縮モードは、データ圧縮のアルゴリズムを切り替えてるだけですので、キャッシュや差分といったデータはそのまま継承されるため、切り替えたタイミングでコーデックをリセットしなくても良いという特徴があります。それ故に、高圧縮モードがOFFの場合でも、最初の数フレームは高圧縮モードがONの状態で圧縮が行われています。ここで言うデータ圧縮は、バイナリ圧縮でして映像圧縮ではありません。ようはMPEGように空間型圧縮も時間型圧縮もしていないとゆー事です。ちょっとしたギミックは入ってますが、基本は差分処理の素人的な超単純な構造とゆーわけなのです。
以上で御座います(´д`)
なんかちょっとBrunhildrがちょっと解るといった感じでしょうか。まだ開発中の段階なのでまだ変わる可能性もあります。バージョンが「0.9.0.0」になっているのの御分りかとも思いますが。
あー、あとちょっとリリースが遅れそうです(´Д`;)ヾ
またまたいつもの事なんですがガツンと修正加えてしまってます。結構良いところまで出来てはいたんですが。変わるといっても基本的なところは変わらないのですが、Windowsサービスのところにちょっと手を加えてます。なぜかといーますと、TrueRemoteのコメントでもありましたが、「TrueRemoteがWindows8ConsumerPreviewで動きません」的な。ちょっと気になって余っているノートPCにWindows8ConsumerPreviewを入れてみたんですよ、恐る恐る。通常起動のTrueRemoteは動くとは思います。コメント頂いた方が動かなったのはひょっとするとユーザーの管理者権限的なものが作用しているかもしれないのですがもうちょっと確認してみます。
が、Windowsサービスモードはダメです、動作しません。Brynhildrも試してみました。通常起動は問題無いですし、音声転送もできました。が、こちらもWindowsサービスとしての起動はダメです。一般ユーザーの権限のプロセスが起動できません。Windowsサービスからプロセスが起動できないようなので、調べてみますと、原因はUAC/UIPI周りのよーです。WindowsVista/7とは動きが違います。特にCreateProcessAsUserとCreateProcessWithTokenWあたりでしょうか。なんかうまく動かないんですけど。他のCreateProcess系はチェックしてませんけど、トークン周りがちょっと変わってる感じですかね。まー、この辺はこれまでちょっとセキュリティ的にグレーかなーと思ってましたから仕方が無いっちゃ仕方無いんですけどね。Windowsサービスとシステムユーザーアプリと一般ユーザーアプリ、この3つの通信がうまくやりとりできないとこの手のリモートデスクトップアプリはつらいとこではあると思いますけどね。ここらへん誰か詳しい方がいらっしゃいましたら旨い酒が飲めそうです。
結構な遠回りでなんとか回避方法は見つけましたけど、せっかくなんでBrynhildrは保証はできないもののWindows8CPでも「一応」動くよーに出来たら良いじゃん、とゆー事で広範囲に渡ってかなり手を入れないといけないよーなんでちょっと時間がかかるとゆーワケです、すんません。
Windows8の発売までに、UAC/UIPIの仕様がさらに変わったらどーしよーとゆー不安がありますが、その時はまた考えますw
まず、1枚目。

普通の表示画面ですが、FPSがちょっと低いです。タスクトレイのアイコンにピンと来た方はかなりスルドイですが、これはMacMiniのBootCampを使ってWindows7を起動させてます。MacMiniの世代も1つ古いのでCPUはCore2Duoです。なので、AeroがONで映像やら音楽やらリモートデスクトップが2つも起動させれば結構いっぱいいっぱいだったりします。うっかり表示し忘れてましたけど、この時点でだいたいCPU使用率は80%くらいです。このくらいのスペックのPCでも動きますとゆー事をお見せしております、はい。
あと、通信データ量の表記が「byte/s」から「bps」に変わっております。結構bpsで求められるケースが多かったもので変えました。
Brynhildrの方が通信データ量が若干多いです。映像のデータ量はほぼ変わらないのですが、操作制御系の通信データの間隔が速くなっているのと、マウスカーソルの色数が32bitに対応したので結構増えてる感じです。間隔についてはまだ確定事項では無いのでひょっとすると変わる可能性もあります。
はい、次です。

音声伝送をONにしたところです。サーバーのサウンドデバイスの設定次第ですけど、44100Hzの16bitの2chで約1.4Mbpsなのでそれくらい増えてます。単純計算ですけど。
あと、タスクトレイのサウンドのアイコンを見てピンと来た人はスルドイです。えぇ、サウンドはミュート状態です。ところがCoreAudioを使うとミュート状態でも音声をキャプチャーできます。なぜかと突っ込まれると詳しくはわかりませんけど。従いまして、サーバーでは無音なのにクライアントでは音声を鳴らすといった事が可能です、すごいです。なので音量はクライアントの音量に依存とゆー感じです。
はい、次です。

暗号化通信をONにしたところです。通信データ量もFPSもほぼそのままで、切り替わったタイミングもほぼわかりません。特に主だった変化も面白みもありません。ただ通信データはBlowfish265bitで暗号化されてます。速度が全然落ちないところがこの暗号化アルゴルズムを採用した理由の1つでもありますので。
はい、最後です。

高圧縮モードをONにしたところです。画面の変更量次第にもよりますが、通信データ量が60%くらいに減ってます。圧縮に若干時間がかかるのでFPSも落ちますが、速度の遅い通信環境ですとFPSが逆転する時があります。この辺は利用用途や環境に応じて使い分けになるかと思います。
ちなみにこの高圧縮モードは、データ圧縮のアルゴリズムを切り替えてるだけですので、キャッシュや差分といったデータはそのまま継承されるため、切り替えたタイミングでコーデックをリセットしなくても良いという特徴があります。それ故に、高圧縮モードがOFFの場合でも、最初の数フレームは高圧縮モードがONの状態で圧縮が行われています。ここで言うデータ圧縮は、バイナリ圧縮でして映像圧縮ではありません。ようはMPEGように空間型圧縮も時間型圧縮もしていないとゆー事です。ちょっとしたギミックは入ってますが、基本は差分処理の素人的な超単純な構造とゆーわけなのです。
以上で御座います(´д`)
なんかちょっとBrunhildrがちょっと解るといった感じでしょうか。まだ開発中の段階なのでまだ変わる可能性もあります。バージョンが「0.9.0.0」になっているのの御分りかとも思いますが。
あー、あとちょっとリリースが遅れそうです(´Д`;)ヾ
またまたいつもの事なんですがガツンと修正加えてしまってます。結構良いところまで出来てはいたんですが。変わるといっても基本的なところは変わらないのですが、Windowsサービスのところにちょっと手を加えてます。なぜかといーますと、TrueRemoteのコメントでもありましたが、「TrueRemoteがWindows8ConsumerPreviewで動きません」的な。ちょっと気になって余っているノートPCにWindows8ConsumerPreviewを入れてみたんですよ、恐る恐る。通常起動のTrueRemoteは動くとは思います。コメント頂いた方が動かなったのはひょっとするとユーザーの管理者権限的なものが作用しているかもしれないのですがもうちょっと確認してみます。
が、Windowsサービスモードはダメです、動作しません。Brynhildrも試してみました。通常起動は問題無いですし、音声転送もできました。が、こちらもWindowsサービスとしての起動はダメです。一般ユーザーの権限のプロセスが起動できません。Windowsサービスからプロセスが起動できないようなので、調べてみますと、原因はUAC/UIPI周りのよーです。WindowsVista/7とは動きが違います。特にCreateProcessAsUserとCreateProcessWithTokenWあたりでしょうか。なんかうまく動かないんですけど。他のCreateProcess系はチェックしてませんけど、トークン周りがちょっと変わってる感じですかね。まー、この辺はこれまでちょっとセキュリティ的にグレーかなーと思ってましたから仕方が無いっちゃ仕方無いんですけどね。Windowsサービスとシステムユーザーアプリと一般ユーザーアプリ、この3つの通信がうまくやりとりできないとこの手のリモートデスクトップアプリはつらいとこではあると思いますけどね。ここらへん誰か詳しい方がいらっしゃいましたら旨い酒が飲めそうです。
結構な遠回りでなんとか回避方法は見つけましたけど、せっかくなんでBrynhildrは保証はできないもののWindows8CPでも「一応」動くよーに出来たら良いじゃん、とゆー事で広範囲に渡ってかなり手を入れないといけないよーなんでちょっと時間がかかるとゆーワケです、すんません。
Windows8の発売までに、UAC/UIPIの仕様がさらに変わったらどーしよーとゆー不安がありますが、その時はまた考えますw