スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 静止画合成は可能に | トップページ | RGBA出力は可能に »

動画合成作業を始めたが

今はAmuseGraphicsの開発フェーズで、AG-デスクトップレコーダー・AG-Webカメラレコーダー・AGMPlayerに続いて、AG-ムービーカッターでの動画合成を可能とするために、AmuseGraphics本体にRGBA形式での動画ファイル出力機能を追加し始めたのだが。

AmuseGraphics本体に、細かいバグを見つけたので、その修正を先に行っていたので、まだ、RGBA形式での出力機能の追加は出来ていない。

で、その細かいバグというのは、現行版を開発するにあたって、従来のマルチバイト文字セットからUnicode文字セットに変更したのだが、その対応漏れが、まだあった訳だ。

具体的には、スライドショー設定の背景画像/BGMのファイルパスが未対応だったので、デフォルトに戻すだとかファイルからの読み込みを行うと、文字化けが発生していた。

で、その問題の修正は容易だったので、次に、RGBA形式での動画ファイル出力機能の盛り込みを始めたのだが、そのベースには、現行版にもあるRGB形式での出力機能を使おうと思っているので、テスト用に、テキストをスクロールさせるスライドショー動画を現行のRGB形式で出力して再生してみようとした。

しかし、そこでも問題が発生した訳だ。具体的には、そのファイルをAG-ムービーカッターで再生しようとすると、クラッシュする場合があった。

場合があった、という事は、クラッシュしない事もあったので、書きこまれているデータが滅茶苦茶になっている、という事は無かった訳だ。

このため、その原因究明に時間がかかったのだが、RGB形式の画像データは単純なので、例えば、全画面が黒のキーフレームでは、全データは0になる。

もっとも、RGB形式では、ハフマン圧縮を行っているので、実際のファイルデータは0にはならないのだが、そのデータのデコード用高速化テーブルの作成処理に、問題があった訳だ。

具体的には、ハフマン圧縮のデコード処理では、メモリ上のビット列を見て、元々のコードを取り出す訳なのだが、一々、ビット毎にデータを見ていたのでは、処理時間がかかる。

なので、AGM形式用のデコード処理では、例えば、メモリ上の32Bitデータを一括して読み出し、そのデータパターンにより、複数のコードを一括して抽出できるような高速化テーブルを作成しているのだが、元データが全て同一だった場合、メモリ上には存在しえないパターンが発生する訳だ。

例えば、オリジナルデータが全て0Bだった場合、ハフマン圧縮では、0Bを1bとしてエンコードする事になるので、エンコード後のメモリデータは全ビットが1になる。

なので、メモリ上に0bが存在する事はありえないのだが、高速化テーブルの作成処理では、そういう事態は想定されていなかったので、メモリ上に0bがあった場合のデータ作成処理が可笑しな感じになってしまっていて、結果的に、存在しないかもしれないメモリを参照する格好になっていた訳だ。

前述の通りなので、高速化テーブルの作成処理で参照しているメモリが存在した場合には、クラッシュは発生せず、作成されるテーブルデータは参照される事も無いので、問題は発生しないのだが、前述のメモリが存在していなかった場合には、クラッシュしてしまう訳だ。

通常のデスクトップ映像なんかでは、全データが同一になる事は普通はなく、もし、そういう事になっていたとしても、正しく再生される事もある訳なので、AG-デスクトップレコーダーなんかでRGB録画していた人も、恐らく、気が付いていなかったかもしれないのだが、この問題については、明らかなバグなので、今回、修正した。

同一のデコードルーチンはAG-ムービーカッターだけではなく、その他のAmuseGraphics系ソフトでも共通に使っているので、それらについても修正したのだが、AGMDecoderにも、同じ処理があるので、今回、長らく更新して来なかったAGMDecoderも修正する格好になる筈だ。

と、いう事で、あまり前向きの変更ばかりしていると、Windows10みたいになってしまう様な気もするので、今回の機能追加については、この動画合成機能までにして、後は、完成度を上げて、リリースに持っていく格好にする事にした。

なので、機能追加自体については、数日中に終わる筈なのだが、リリースは、その後、完成度を上げて使いこみも行う事になるので、8月の終わり頃になる筈だ。

更に言えば、AmuseGraphics系のリリースでは、まず、AmuseGraphicsのリリースを行い、Vectorでそれが公開された後、フリー版のリリースを行うので、フリー版のリリースについては、9月にずれ込む可能性が高いかもしれない。

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

AmuseGraphics

AmuseGraphics

(2016/10/25追加)

« 静止画合成は可能に | トップページ | RGBA出力は可能に »

トラックバック

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

この記事へのトラックバック一覧です: 動画合成作業を始めたが:

« 静止画合成は可能に | トップページ | RGBA出力は可能に »

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