スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 処理ルーチンの共通化とか | トップページ | ソフト処理の方が速い »

映像の拡大・縮小

今は、Mac用AGMPlayerの開発フェーズで、まず、AGM⇔MP4変換用コマンドラインツールを作成しているのだが、普通の変換は可能になったので、追加機能として、映像の拡大・縮小機能も実装しようとしている。実現は容易なのだが、OS Xには色々なAPIがあるので・・・

作者的には、画像の拡大・縮小を行う自前の処理コードは既に持っている。

なので、動画変換時にデコードされた画像をこの処理コードを使って拡大・縮小し、その結果から、新しい動画をエンコードすれば、変換時に映像の拡大・縮小は簡単に行える。

実際、Windows版のAGMPlayerやAG-ムービーカッターでは、上記のコードを使って映像の拡大・縮小を行っているのだが、上記のコードは、普通にCPUを使って画像処理を行っているので、CPU負荷が、結構、かかる。

もっとも、通常は、映像の拡大は行われず、縮小が行われるので、エンコード対象映像サイズが小さくなる分、映像を縮小したエンコードの処理時間は、総合的には、短くて済む。

しかし、実際には、前述の様に、映像の縮小処理にはCPU負荷がかかっているので、何とか出来るものなら、したい所な訳だ。

そして、OS Xには、GPUに処理を行わせる画像処理ライブラリがあるので、作者的には、それを使ってみようか、としている訳なのだが、GPUに処理を行わせる場合、画像データをGPUに転送し、処理結果をCPUメモリ空間に再度転送する必要がある。

なので、そんな事をやっているよりは、CPUで素直に処理させた方が速い様な気もしないでもないのだが、今時のIntel CPUでは、GPUはCPUに内蔵されていて、GPUはメモリをCPUと共有している。

つまり、CPU⇔GPUでのデータ転送は大して問題にはならないかもしれないので、そうなれば、画像の拡大・縮小処理なんてのは、GPUが得意とする処理なので、今時、CPUでやらせるのは時代遅れかもしれない。

と、いう事で、作者的には、OS Xで使える画像処理ライブラリを使った映像の拡大・縮小処理を追加しようとしているのだが、その処理性能を見る為に、前述の自前CPUルーチンを使った場合との比較も行ってみるつもりだ。

実装には大して時間はかからない筈なのだが、OS Xの場合、APIが目的志向になっているとは思えない訳だ。

つまり、メモリ上にある手持ち画像の拡大縮小を行いたい、と、思ったとしても、そのためのAPIが存在している訳ではないので、OS Xでは、ある体系として纏められたライブラリにある使えそうな機能を幾つか組み合わせ、やりたい処理を実現させる、みたいな感じにならざるを得ない訳だ。

なので、ネットを見ていても、OS X用のコードサンプルについては、こんな実現形態で良いのかなあ? みたいな疑問符を付けつつ、提示されている事も多い。

と、いう事で、OS XのAPI体系というのは、何を基準に定められ、誰が使う事を想定しているのか、についても、作者的には、不明だ。

しかしまあ、判り辛く、使い辛い、という点を除けば、それなりの機能は存在しているかもしれないし、とりあえず、使えるモノはこれだけなので、使ってみるしかない訳だ。

« 処理ルーチンの共通化とか | トップページ | ソフト処理の方が速い »

トラックバック

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

この記事へのトラックバック一覧です: 映像の拡大・縮小:

« 処理ルーチンの共通化とか | トップページ | ソフト処理の方が速い »

2017年6月
        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  

広告

プライバシーポリシー

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

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

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

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