スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 本質的な部分の改良も | トップページ | 16インチMacBook Proは・・・ »

変更内容を微修正

今はAmuseGraphics Ver1.4.1の開発フェーズで、既に、AGMPlayerとAG-ムービーカッターに引き続き、AG-デスクトップレコーダーの開発を行っていて、ほぼ、予定していた実装は終わったのだが、ここで、変更内容を微修正している。

微修正には、機能の追加の取りやめと、新規の追加があるのだが、取りやめる事にした機能は、AGM-DCTの画像変化領域の判定によるエンコード負荷の軽減機能だ。

上記の機能は、Mirror-DTCのECOモードに近い機能として実装し、例えば、YouTubeの動画を窓表示している様な状況を全画面録画すると、1,2割程度は、エンコード負荷を軽減できたのだが、例えば、YouTubeの動画を全画面表示している状況で、このオプションが指定されていると、処理負荷は、若干、増えたりもした訳だ。

つまり、適切に適用しても、あまり効果はなく、適用したままにしておくと、処理負荷を増加させるリスクもあった。

で、Ver1.4.1では、当初の予想に反して、結構な変更を行ってきているので、上記の改良がなくても、十分、格好が付きそうなので、ある意味、ハイリスク・ローリターンの上記変更は取りやめる事にした訳だ。

もっとも、次バージョンでは、AGM形式の全モードに「高並列エンコード」オプションを追加していて、デフォルト状態では、このオプションは適用されなくしているので、フリー版(Ver1.3.2)や現行版(Ver1.4.0)と比べると、リアルタイム録画時にAGM形式を選択した場合のCPU使用率は、上記の様なオプションを適用しなくても、全てのAGM形式で、大体は、1,2割程度、低く抑えられる様になっている。

最近の記事を読んでいない人は、「高並列エンコード」みたいな高度の機能を追加実装しておいて、デフォルトでそれを選択しないとは、何とネガティブ思考の作者だろう、なんて事を思っているかもしれないのだが、この「高並列エンコード」機能というのは、Ver1.3.2で搭載した機能で、Ver1.3.2/現行版では、常に、適用する設定になっているのと同等だ。

つまり、今回の更新では、その「高並列エンコード」を行わせない設定を可能としたので、デフォルトでは、行わせない設定にしてある訳だ。

その結果として、別段、そこまでしなくてもフレーム落ちはしないよ、というような状況では、CPU使用率を不必要に増加させる事がなくなるので、余ったCPU資源を別目的で使用したり出来る様になる。

ただし、この機能をOn/Offして録画ログを採ってみると判るのだが、やはり、「高並列エンコード」を行わせた場合には、エンコード時間が短くなる傾向が強いので、エンコード処理がフレームレートに対してギリギリの様な場合には、このオプションはOnにした方がフレーム落ちを防げるケースは多くなる筈ではある。

しかし、作者のCore i5-4278U 2.6GHz のMac mini Late2014でも、フルHDの29.97FPS録画は、「高並列オプション」を指定しなくても、ほぼ、フレーム落ちなく行えるので、より高速なCPUが搭載された最近のPCなら、馬力よりも効率を優先したくなるケースの方が多い筈だ。

更に言えば、今回の目玉となる「実質FPSに最適化」オプションを適用すると、デスクトップ映像に全く変化がないタイミングでは、録画中のCPU使用率が、現行版で数十%必要な場合にも、数%程度にまで激減する訳だ。

なので、「実質FPSに最適化」しつつ「高並列オプション」をOffにすると、AGM形式エンコード時の処理負荷も、劇的に減るので、AGM-DCTでしか使えず、状況によってはCPU使用率が増えてしまうかもしれないオプションの提供はヤメにした訳だ。

上記以外にも、Ver1.4.1では、デュアルモニターでの録画時のフレーム落ちを防止する処理と、マウスカーソルとデスクトップ映像の時間差を減らす処理を追加したので、これらについては、ユーザー設定はないのだが、フリー版(Ver1.3.2)や現行版(Ver1.4.0)よりも、より良い録画が行える様になっている。

それらに加えて、mp4形式では、過負荷時に自動的にフレームレートを下げる事で過負荷による実質フレームレートの低下を抑制するオプションも追加したので、AGM/MP4形式での録画については、より、状況に応じた最適な録画が行える様になっている訳だ。

で、上記は全て、録画機能の本質的な所についての改良だったのだが、Ver1.4.1では、それ以外の、その他の改良も行っている。

その他の改良の中で、最も目立つものは、領域指定録画時に、ウインドウを指定する事で、その領域を録画領域とできる機能を追加した事なのだが、それ以外にも、ウインドウ録画時にも、ウインドウのクライアント領域のみ、の録画なんかも可能にしている。

上記に加えて、現行版だと、ウインドウ録画時には、領域指定時とは異なり、指定したウインドウ内の領域を記憶させておく手段がないので、今回、その機能も、追加する事にした。

と、いう事で、作者的には、プレビュー版の公開間近のこのタイミングで、AGM-DCTでのエンコード形式の変更は取りやめ、ウインドウ録画時の領域指定方法を改善する変更を追加する事にしたのだが、多分、実装に時間はかからないので、プレビュー版の公開は、来週の前半には行えている筈だ。

ちなみに、GUIが追加されない改良としては、ウインドウ録画でウインドウを隠す処理の方式を変更した、というのがあるのだが、現行版だと、ウインドウをデスクトップ領域外に移動させているだけなので、ウインドウを隠す処理を実行している最中に、AG-デスクトップレコーダーが何等かの要因によってクラッシュした場合にも、隠されているウインドウは、タスクバーアイコンをシフト付き右クリックして「移動」を選択すれば、再表示可能だ。

これに対して、Ver1.4.1の隠す処理では、ウインドウの属性を書き替えるので、隠している最中にAG-デスクトップレコーダーがクラッシュしてしまうと、特別なツールを持っていない普通のユーザーは、隠されたウインドウを再表示する事ができなくなるので、そのウインドウを持つソフトは強制終了するしかなくなる。

と、いうような状況は望ましくないので、上記の様な状況では、バッファリングエンコード中にAG-デスクトップレコーダーがクラッシュしても、次回起動時に何とかできる仕組みを入れているのと同様に、次回起動時に、隠したままのウインドウがあった場合には、そのウインドウを再表示可能にする機能も追加しようとしている。

« 本質的な部分の改良も | トップページ | 16インチMacBook Proは・・・ »

2019年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google