スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 更なる圧縮率の向上 | トップページ | ストリーミング圧縮も三段階 »

やはりGPUに任せる

今は、Mirror-DTCの次バージョンを開発中で、大体の変更は終わったのだが、今日は、昨日書いたエンコード系の変更を行っていた。圧縮率の向上施策は、まだ実装が終わっていないのだが、Window表示時の縮小については、やはり、クライアントのGPUに任せる事にした。

昨日書いた様に、今日はAmuseGraphics系ソフトに実装してある縮小ルーチンを使って、クライアントが要求している出力サイズに縮小する処理を入れてみた。

AmuseGraphics系ソフトの縮小ルーチンというのは、2つあって、一つはAmuseGraphics本体の画像表示用に使っているモノ、もう一つは動画エンコード時に解像度の変更が指定されていた場合に使用するモノだ。

何故、二つあるのか、というと、AmuseGraphics本体の縮小ルーチンは画質は良いのだが、処理に時間がかかるので、動画エンコード用には画質を少し犠牲にしつつも高速に処理できる別ルーチンを用意した訳だ。

で、今日は、その両方を使ってみたのだが、まず、AmuseGraphics本体の処理ルーチンはやはり重すぎるので、適用すると縮小処理をしなくても60FPSでデータを転送できる現在の環境で、75%程度への縮小では、データ転送は30FPS程度にまで低下してしまった。

縮小比率が高くなれば、その分、本来のエンコードを行うサイズは減るので、CPU負荷は楽になるのだが、75%程度では、その比率は大した事はなく、重い縮小処理が足を引っ張る格好になった訳だ。

二つ目の縮小ルーチンについては、75%程度の縮小率でも、サーバー側のCPU負荷は減ったので、性能的には問題は無かったのだが、このルーチンで縮小すると、サーバー側で縮小せず、クライアント側のGPUで縮小させた場合ほど、クリアな表示にはならなかった。

これは何故なのかというと、本来、50%までの任意サイズの縮小では、縮小結果の各ピクセルは、縮小前の9ピクセルを使って生成しなければならないのだが、このルーチンでは、4ピクセルしか使っていないからだ。

つまり、その分、処理は高速に行えるのだが、画質は少し悪くなる訳だ。

と、いう事で、画質にそれほど拘らなければ、二つ目のルーチンを使うとWindow表示時のサーバー側の処理負荷とネットワーク転送量の両方を改善できるのだが、前に書いた様に、次バージョンでも、「画像」-「中画質」/「低画質」を選択すれば、サーバー側で75% / 50%への縮小処理を行わせてサーバー負荷とネットワーク転送量を改善する事は出来る。

しかし、サーバー側に上記の縮小ルーチンを適用してしまうと、高画質のWindow表示は出来なくなるので、選択肢を増やす意味からも、適用するのはやめにしておく事にした訳だ。

まあ、上記のルーチンを適用するかしないかをクライアント側から指定できる様にしても良かったのだが、上記のルーチンを適用した場合にメリットがあるユーザーは少ない筈なので、あまり重要でも無い設定項目は増やしたくなかった訳だ。

ちなみに、それでも、サーバー側では75%と50%の縮小処理は行えるのだが、これは何故なのか、というと、75%と50%への縮小の場合には、前述の縮小ピクセルを生成するのに必要になる縮小前ピクセルは、画質を劣化させない条件でも、4個で済むからだ。

つまり、75%への縮小なら、4ピクセルから1ピクセルを生成でき、エンコード対象となる画像サイズも半減するので、縮小処理を行った方がサーバー側の処理負荷を減らせる訳だ。

当然の事ながら、50%への縮小なら、より楽勝になるのだが、今日は、ついでに75%への縮小処理ルーチンもより高性能化したので、次バージョンでは、75%への縮小時、つまり、「画質」-「中画質」時のサーバー側の処理性能も向上する事になる。

= この記事に関連する公開中ソフト =

Mirror-DTC

Mirror-DTC

(2016/05/04追記)

« 更なる圧縮率の向上 | トップページ | ストリーミング圧縮も三段階 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63122454

この記事へのトラックバック一覧です: やはりGPUに任せる:

« 更なる圧縮率の向上 | トップページ | ストリーミング圧縮も三段階 »

2017年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 のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google