スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« ピッチ補正のマルチスレッド化等 | トップページ | 他に何かあったかなあ? »

分割並列エンコードの再調整

今は、AmuseGraphics Ver1.4.1の開発フェーズで、macOS版AGMPlayerに続き、macOS版AG-ムービーカッターの更新版のリリース準備中なのだが、リリース前テストで、分割並列エンコードの繋がりが悪いのを見つけたので修正が必要だ。

「分割並列エンコード」というのは、デフォルトではOFF状態なのだが、「オプション」-「エンコード設定」-「AGM形式設定」で設定を変更すれば、使用する事が可能な機能になる。

この機能を利用すると、エンコード対象とするソース動画の領域を自動的に分割させ、それぞれに対して別のエンコード処理を同時動作させる事が可能になる。

つまり、マルチコアCPU環境では、エンコード性能が向上する可能性があるのだが、AGM形式動画のエンコーダーは、通常のエンコード時にも、マルチスレッド動作している。

なので、実際のところ、分割並列エンコードを行わせても、エンコード性能は向上しない場合が多い筈だ。

にもかかわらず、この機能が存在しているのは、AG-ムービーカッターの初期バージョンを開発した頃には、AGM形式動画のエンコーダーのマルチスレッド化が殆ど行われていなかったので、簡単にマルチスレッド化させる方策として、エンコーダー自体を複数同時動作させよう、という事にしたからだ。

なので、AGM形式動画用エンコーダーのマルチスレッド化が進んだ今となっては、殆ど必要がない機能になるのだが、今現在でも、エンコード対象とするソース動画のデコーダーの処理性能が低い場合には、エンコード時間を短縮できる。

つまり、普通は、デコーダーよりもエンコーダーの方が処理が重いので、デコーダーの処理性能なんて気にする必要はないのだが、例えば、Windows環境では、MPEGなんかの大昔の動画形式用のデコーダーも、DirectShowデコーダーとして存在しているのだが、それらの多くは、GPU支援もされていなければ、マルチスレッド動作もしていない訳だ。

これに対して、AGM形式動画のエンコーダーは、前述の様に、単体でも、マルチスレッド動作させる事で、高速処理を可能にしてきたので、今現在では、大昔の遅い一般動画のデコーダーよりも、AGM形式動画のエンコーダーの方が、より高速に処理が行える様になったりしている。

この状況で、より高速にエンコード処理を終わらせたい場合、どうすれば良いのか、というと、作者的には、デコーダーの性能を上げる事はできないので、そのデコーダーを何個も並列動作させるしかない訳だ。

と、言う事で、今でも、分割並列エンコードが必要なケースはない事もないのだが、macOS環境では、前述の様な大昔に開発されたデコーダーが使用される事はないので、AGM形式動画のエンコーダーよりも低速なデコーダーは存在しないかもしれない。

なので、実際の所、少なくともmacOS環境では、分割並列エンコード機能は使う必要はない筈なのだが、Windows版との兼ね合いもあるので、macOS版にも、この機能は残してある訳だ。

で、残してしまっている限り、次バージョンでも、この機能は正しく動作させないといけないのだが、今回、トランジション関連の機能を実装するために、元々あったエンコード処理ルーチンに、結構、手を入れた。

その結果として、分割並列エンコード結果の繋がりが悪くなってしまっていた。

具体的には、分割したソース領域の複数のエンコード結果に同じソース領域のエンコード結果が入ったり、逆に、どのエンコード結果にも入らない領域が存在してしまったりしている訳だ。

まあ、その領域というのは、コンマ数秒なので、注意していなければ判らない場合も多いのだが、現行版で確認してみると、AGM形式動画を分割並列エンコードしてAGM形式動画にする場合には、殆ど、分割した領域を識別できないくらい、上手く連結できていた。

と、言う事なので、今となっては、殆ど使う必要がない機能ではあるのだが、次バージョンにも残す事にしているので、これから分割並列エンコード機能の再調整を行う事になる。

なので、明日のリリースは無くなった感じなのだが、「オンラインマニュアル」の更新も大体はできているので、三連休中か、それが開けた頃には、リリースする事になる筈だ。

« ピッチ補正のマルチスレッド化等 | トップページ | 他に何かあったかなあ? »

2019年10月
    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