スライドショー映像作成ツール
概要 操作 シナリオ ダウンロード サンプル 履歴
1.1.0.0 : 2009/04/24

追加

  • CUDA対応(処理の一部)

バグ修正

  • HTML出力完了時のブラウザ起動後,動作が不安定になるバグの修正
  • FILMブロックよりも後にSCREEN定義をすると,FILMブロックが正しく動作しないバグの修正

開発手記

どんなものかと,CUDAによる処理を実装してみました。まだ,一部の処理(フィルタ系) しか実装していないのでなんとも言えませんが,あまり処理速度は向上していません。 搭載している GPU にもよるのですが,一番の原因は,スレッド分割のしかたに 問題があるのだろうなぁ。 (Core i7 に対して,GeFORCE 9600GT での処理結果)
1.0.13.0 : 2008/12/28

バグ修正

  • Windows Media のコーデック検索処理に失敗した場合, 異常終了してしまうバグの修正。

開発手記

メインマシンを Core i7 に変更しました。結果,レンダリング処理が おそろしい程に速くなりました。ただし,マルチコア化による効果は小さい ようで,マルチスレッドなプログラムとしては失格かも...
CPU の使用率は高い状態でも 60% を超えることはなく,非常に悔しい。 やはり,構造の見直しから必要っぽい。

しかし,速い...
1.0.12.0 : 2008/03/23

追加

  • MOVIEブロックの追加。
  • 動作状況ウィンドウの追加

バグ修正

  • マクロ呼び出しの記述において、コーディングスタイルによっては 異常終了してしまうバグの修正。
  • レンダリング処理におけるメモリリークのバグ修正。

開発手記

動作状況ウィンドウに関しては、機能的に全く必要のないものです。 デバッグデータをダンプするためのウィンドウを追加する際、 それをあえて見せるようにしてみた結果です。
1.0.11.1 : 2008/02/28

バグ修正

  • バグと言うか、前回の 1.0.10.0 は誤ったバイナリを置いてしまって いました...アホか。

開発手記

チョンボにもほどがある。
1.0.10.0 : 2007/12/16

バグ修正

  • プレビューモードで作成処理を行った後に、そのまま通常の作成処理を 行うと、映像の一部がプレビューモードの画質になってしまうバグの修正。

開発手記

仕事の関係で、別なことの勉強に時間を費やしていたため、しばらく更新が 滞っていました。久しぶりの更新で、勘がかなり鈍っています。
現状でもマルチスレッド対応に作ってあるのですが、マルチコアなCPU上での 動作を試したことがありません。そろそろクァッドに手を出そうと思っており、 「まじめ」に並列処理の構造を見直す必要がありそうです。
AMDはエクスクルーシブなキャッシュと聞いているので、そうだとすると かなりヤバそう。Phenom はどうなんだろう。試してみたいなぁ。 Intel のニコイチクァッドもチューニングのやりがいがありそう。

P905i を買ったので、WMV での出力が正しく再生されるかを試そうとしている のですが、どうやって携帯にコピーすればいいの?
1.0.9.0 : 2006/10/19

改善

  • シナリオファイル読み込み処理における2バイト文字の扱い方を改善。

開発手記

今まで、2バイト文字の処理をまじめに対応していなかったのですが、 特に問題もなかったために、ほったらかしにしていました。
1.0.8.1 : 2006/09/19

追加

  • マクロの引数を配列のように指定できる機能を追加。

改善

  • モノクロ画像化処理速度の向上。

開発手記

前回の高速化の続きでインラインアセンブラ化したコードのチューニングに 取り組んでみました。

命令順序の入れ替えを進めたものの、大した改善結果は得られず。キャッシュの ミスヒットを削減させようとプリフェッチ命令を挿入するも、体感できるほどの 改善は見られず。アウトオブオーダー実行が効いて、ストールが隠蔽されているから?

INTEL の VTune と言うソフトを利用すると、このあたりの欲しい情報がピンポイントで 分析できるのだろうけど、高い。評価版はあるけど、そもそもこう言った期限が切れる ソフトはインストールするのは嫌悪感があります。

もう少し、データの並列度を高める必要がありそうです。またはアルゴリズムを 見直すか?

ところで、
デュアルコアな CPU が欲しい...
1.0.7.0 : 2006/07/24

改善

  • 処理速度の向上。
  • メモリ使用量の削減。

開発手記

ここしばらくのバージョンアップでは機能追加やバグ修正などを中心に行っており、 今回はさぼっていた処理速度の高速化を再開しました。

今回の高速化はアルゴリズムを見直すわけではなく、一部の処理を局所的に インラインアセンブラを利用して SIMD 命令に置き換えてみました。 IA32 のアセンブラは初めてなものの何とか置き換え完了。 その後 NetBurst における命令のレイテンシ表を片手に、ストールしそうな 箇所のレジスタ置き換えと命令入れ換えの結果、20%強の改善が見られました。

まぁまぁ、初めてにしてはそれなりの結果が出せた...かな?
現状ではキャッシュのヒット率が良くなさそうなので、この部分でさらに 高速化は期待できそうです。
1.0.6.0 : 2006/06/18

変更

  • FADEIN, FADEOUT, FADEINOUT ブロックを FADE ブロックに統一。
  • EXPANDIN, EXPANDOUT ブロックを EXPAND ブロックに統一。
  • ROTATE, ZOOM, SLIDE, FOCUS, MIX ブロックの BGIMAGE 指定子を削除。
※いずれの変更も下位互換性は残しており、従来のシナリオフォーマットも読み込み可能です。

バグ修正

  • メモリリークが発生するバグの修正。

開発手記

今回のバグ修正は、結果としてメモリリークが発生すると言う類のバグですが、 その原因は、極めて初歩的なものです。泣きそう。
あわてて修正を加えたため、勢い余って別のところにバグを埋めたかも知れません...
1.0.5.0 : 2006/04/20

バグ修正

  • マルチスレッドでの作成処理を行った際、スレッド間の同期処理の問題により、 まれに異常終了してしまうバグの修正。

開発手記

同期についてはかなりマジメに作りこんだつもりだったのですが、結局やってました。 この手のバグの影響はタイミング依存しているので、場合によっては再現性に乏しく かなり検出が難しいのですが、たまたま「ろ」にレンダリングエンジンを組み込んだ ことにより、見つかりました。

何か良い検出方法はないものでしょうか?
スレッドを100本くらい立ててレンダリングさせたら再現するかも。今度試してみよっと。
1.0.4.0 : 2006/04/02

追加

  • チェックポイント機能の追加

開発手記

HTML出力機能とチェックポイント作成ツール 「ろ」 を利用することによって、音楽とのタイミング調整が多少楽になりました。(ような気がする)
ほぼ、フレーム単位で音楽のタイミングに合わせることが可能です。

現状、「ろ」はバグだらけで問題ですが、それ以上に問題だったのが、 チェックポイント機能に対応した「ひ」をリリースするのを忘れていました。

もう少しマジメにやったほうが良さそうです。
1.0.3.0 : 2006/02/12

追加

  • HTML 出力機能を追加。

開発手記

スライドショーにはいろいろな見せ方があって、写真とエフェクトだけで クールに見せるのもその1つではありますが、コメントやメッセージの文字列を 入れるだけで印象は大きく変わります。

このツールはひたすらテキストでシナリオを書くことになりますので、後からコメントを 考えるのが非常に面倒になります。
そのためシナリオの流れを少しでも分かりやすくする HTML 出力機能を追加してみました。 自分以外の人にコメントを考えてもらうのも楽になります。
1.0.2.0 : 2006/02/06

バグ修正

  • STARTFRAME にて設定する値が大きい場合に、異常終了してしまうバグ修正。
  • QuickTime がインストールされていない場合でも、QuickTime 出力のボタンが有効に なってしまうバグ修正。
  • QuickTime 出力において、最終フレームの画像が反転してしまうバグ修正。

追加

  • SLIDE、ZOOM ブロックにおいて、AFTERIMAGE 指定子の追加。

開発手記

以前より、SLIDE、ZOOMブロックの(位置的な動きを伴う)エフェクトの見え方が ぎこちないように思えて、テレビ映像などを調べてみました。 結果、動いている最中の1コマ1コマの画像は、クリアな画像ではなく残像感の あるにじんだ画像であることが分かります。

それを反映したのが、今回追加した AFTERIMAGE 指定子なわけですが、これが とてつもなく処理速度を低下させてしまいます。 (1フレーム当たり10秒や20秒は余裕で消費してしまいます)
ある程度の改善の余地はありますが、根本的にアルゴリズムを見直す必要がありそうです。

また、扱い方も多少のくせがあるため、他のブロックとの組み合わせを用いないと、 逆に不自然な見え方になってしまいます。これに関しては、私が普段使用している マクロファイルを使える形にして、利用しやすいようにしてみたいと思います。
1.0.1.0 : 2005/12/28

バグ修正

  • 特定の演算式を正しく読み込むことができなかったバグ修正。
  • ビデオと比較してオーディオの時間が短い場合に、正しくレンダリングできなかったバグ修正。
  • マルチスレッド選択時の QuickTime 出力において、正しくレンダリングできなかったバグ修正。

開発手記

0.7.0.0 にて、とりあえず QuickTime フォーマット出力ができるようにしたまでは 良かったのですが、以降、改善を加えられずにいます。
そもそも、携帯などで再生できる映像ファイルを出力できるようにすることが目的だった わけですが、しばらくすれば携帯でも Windows Media Video が再生できるようになるだろうし、 いまいち、テンションがあがりません。

iPod で再生できることを目的にしたほうが、やりがいがあるかも?
1.0.0.0 : 2005/12/11

バグ修正

  • 一部の WAV ファイルが読み込めないバグ修正。

改善

  • 処理速度の向上。

変更

  • シナリオフォーマットの一部変更。

追加

  • シナリオ情報ウィンドウにおいて、画像出力ボタンの追加。

開発手記

0.7.1.0 の開発手記に記したレンダリングアルゴリズムの問題とした 根本の原因は、シナリオフォーマット仕様とレンダリングアルゴリズムの 不整合にあります。 これに対して、シナリオフォーマットを忠実に表現できるレンダリング アルゴリズムに変更したかったのですが、犠牲にするものが多くやめました。 その替わりに、シナリオフォーマットの仕様の一部を見直すことになり、 結果、変更が加わっています。

仕様通りに設計できていないのも問題ですが、その対応策を仕様の変更に 求めてしまうあたり、超3流技術者と言わざるを得ません。技術者としての 意地はいずこへ?

シナリオフォーマットの仕様変更に伴い、下位互換性が失われたため、 なんとなくバージョンを1にしてみました。

今回の処理速度向上策では20〜30%程度の効果が見られます。 極めて単純で基本的な対応だったのですが、これほど効いてくるとは 予想外でした。他にも改善の余地はありそうです。
0.7.2.0 : 2005/11/25

バグ修正

  • ZOOMブロックへの入力となる第1層の画像データが巨大である場合に、 正しく映像が出力されないバグ修正。

開発手記

テストが不十分でることから、いろいろと問題が出てきます...
お恥ずかしい...
0.7.1.0 : 2005/11/21

バグ修正

  • 特定の演算式を正しく読み込むことができなかったバグ修正。

開発手記

レンダリングのアルゴリズムに一部問題があることを見つけてしまいました。

う〜ん、どうしたものでしょう。出力される映像を見る限り、その問題を 見破られることはないように思えます。
が、開発者としての意地と言うか、気になり出すと気持ち悪くて改善した くなるものです。

う〜ん、改善しようとなると、処理速度を犠牲にせざるを得ないし...
元々、遅いからいいか?
0.7.0.0 : 2005/11/04

追加

  • QuickTime 出力機能を追加。
    ※とりあえず対応版
  • レンダリング中のロゴパターンを追加。
  • SCALE設定を追加。

改善

  • 進捗画像の色の乱れを改善。

開発手記

特に必要性に迫られたわけでもないのですが、何気に QuickTime での出力にも 対応してみたいと思い、今回のバージョンに取り入れてみることにしました。 が、やってみるとこれがなかなか曲者で...

まずは、ファイルシステムの概念からつまづくありさま。 「リソースフォーク?」
しかも、ネット上でも参考になるページが少なく、辛いものがあります。

結局、関連しそうなドキュメント、サンプルコードを APPLE のサイトからダウンロード しまくって、英語と格闘しながらようやく出力させるに至りました。
極めて単純なミスにより、2週間くらいハマった...
0.6.7.0 : 2005/09/14

追加

  • DRAWブロックの追加。
  • SHADEブロックの追加。
  • Windows Media出力において、オーディオのビットレート選択を追加。
  • 画面がさみしいので、ロゴ(?)をつけてみました。

改善

  • シナリオファイルのチェックを強化。
0.6.6.0 : 2005/08/28

追加

  • Windows Media出力において、映像のビットレートを選択するダイアログ出力を追加。
  • TEXTブロックにおける BGCOLOR 指定子の追加。
  • TEXTブロックにおける FRAME_OFFSET 指定子の追加。
  • TEXTブロックにおける VALIGN 指定子の追加。
  • TEXTブロックにおいて、JPEG画像の Exif 情報の取得機能を追加。
  • STILLブロックにおける、MAX_CUT 指定子を追加。
  • STARTFRAME 設定の追加。
  • INCLUDE 設定の追加。
  • マクロ定義の追加。

バグ修正

  • AVI出力時のコンプレッサ選択をキャンセルした場合に、異常終了してしまうバグ修正。
0.6.5.0 : 2005/07/04

追加

  • MAINブロックにおける ALINK_VOLUME_ALPHA 指定子(音楽連動機能)の追加。

バグ修正

  • 中止処理中に中止ボタンが再度押せてしまうバグ修正。

改善

  • 多少の画質向上。
0.6.4.0 : 2005/06/14

追加

  • IMAGEブロックにおける RED, GREEN, BLUE 指定子の追加。
  • MIXブロックにおける OR 指定子の追加。

改善

  • 多少の処理速度の向上。
0.6.3.0 : 2005/05/30

バグ修正

  • オーディオファイルを伴う Windows Media レンダリング完了時に異常終了するバグ修正。

改善

  • 多少の処理速度の向上。
0.6.2.0 : 2005/05/25

バグ修正

  • レンダリング中に Windows Mediaチェックボックスが変更できてしまうバグ修正。
  • マルチスレッドを選択して Windows Media 出力を行うと、異常終了してしまうバグ修正。
0.6.1.0 : 2005/05/11

バグ修正

  • AVI出力ができなくなってしまったバグの修正。
  • Windows Media 出力時、オーディオ指定がないとエラーが発生するバグの修正。
0.6.0.0 : 2005/05/10

追加

  • Windows Media Video 出力機能を追加。
    ※とりあえず対応版
0.5.15.0 : 2005/04/03

バグ修正

  • ドラッグ&ドロップによる起動で、シナリオファイルが 正しく読み込めていないバグを修正。
  • プレビューモードでの作成処理において、ZOOM、SLIDEブロックの 映像が正しく処理されない、または、異常終了してしまう問題の修正。

追加

  • プレビューモードにおける画像ファイル名の埋め込み。
  • IMAGEブロックのHIGHPASS指定子を追加。

改善

  • わずかながらの画質の向上。
0.5.14.0 : 2005/01/29

バグ修正

  • プレビューモードの作成処理完了時にプログレスバーが 正常に進行していない場合があるバグの修正。
0.5.13.0 : 2004/12/09

バグ修正

  • STILL、ROTATE、MIX ブロックにおける INPUT 指定子の配置位置を示す 矩形座標値に、演算式が使用できないバグの修正。
  • IMAGE ブロックにおいて、BLOCK_FRAME 指定子を使用した場合、 正しい画像が得られなかったり、最悪異常終了してしまうバグを修正。
  • MIX ブロックの OFFSET 指定子を使用した場合、メモリリークが 発生してしまうバグの修正。
  • プレビューモードでの作成処理において、異常終了してしまう 場合があるバグの修正。
0.5.12.0 : 2004/11/29

追加

  • ALPHA ブロックの追加。
  • MIX ブロックの OFFSET 指定子を追加。
  • IMAGE ブロックの DISCOLOR 指定子を追加。
  • シナリオ情報ウィンドウにおいて、音楽情報の表示と、音楽再生ボタンを追加。
0.5.11.0 : 2004/11/21

追加

  • シナリオ情報ウィンドウにおいて、選択しているブロックの情報に時間を追加。
  • CUT ブロックの SKIP 指定子を追加。

改善

  • FILM ブロックの動作をよりスムーズに改善。
  • SLIDEブロックにて、DST_START/DST_END 指定子にて指定した座標値に負の値が 含まれた場合に、スムーズに見えない問題を改善。
0.5.10.0 : 2004/11/05

追加

  • FILMブロックの追加。
  • CUTブロックの追加。
0.5.9.0 : 2004/11/01

追加

  • シナリオファイルにおける整数値指定箇所に、演算式を利用できるよう機能を追加。
  • 作成処理の進捗表示に経過時間を追加。
0.5.8.0 : 2004/10/10

追加

  • マルチスレッドモードの追加。

改善

  • 入力となる画像の実サイズよりも拡大させる場合に、ざらつくようなノイズが 発生していたのを抑制。
0.5.7.0 : 2004/09/16

追加

  • EXPANDIN、EXPANDOUTブロックの追加。
0.5.6.0 : 2004/09/08

追加

  • MOSAICブロックの追加。
  • ROTATEブロックのBGIMAGE指定子追加。

改善

  • プレビューモードの画質を落として速度を向上。

バグ修正

  • ビットマップ画像ファイルが 24bit 画像以外正しく読み込まれなかったバグの修正。
  • 入力の画像に対して拡大処理を伴うブロックを定義した場合、 演算誤差により色褪せが発生するバグの修正。
0.5.5.0 : 2004/08/22

バグ修正

  • シナリオ情報ウィンドウにおいて、SERIES、MAINブロックの画像描画処理が 異常終了するバグの修正。
0.5.4.0 : 2004/08/21

追加

  • IMAGEブロックにおいて、透過色指定子の追加。
  • まびきモードの追加。
0.5.3.0 : 2004/08/12

追加

  • FADEINOUTブロックの追加。
  • バージョン情報ダイアログに、ホームページを開くボタンを追加。

変更

  • MOVEブロックをZOOMブロックに名称変更。

バグ修正

  • SLIDEブロックにおいて、表示させる領域の位置が負の座標値の場合、 画像が生成されないバグの修正。

改善

  • MIXブロックにおいて、ケースによっては処理効率が著しく低下してしまう問題があったのを改善。
  • STILL、ROTATE、MIXブロックにおいて、INPUT指定子の画像の配置位置のデフォルト値対応。
0.5.2.0 : 2004/08/06

バグ修正

  • IMAGEブロックにおいて、存在しない画像ファイルを指定してもエラーがレポートされず、 さらに作成処理を進めると異常終了するバグの修正。
  • IMAGEブロックにおいて、相対パスでファイル名を記述したシナリオファイルをドラッグ&ドロップで与えた場合に、 正しく画像ファイルが読み込まれないバグの修正。
  • SLIDEブロックにおいて、意図しない映像が作成されてしまうバグの修正。
  • 正常なシナリオファイルを与えた後で、エラーのあるシナリオファイルを与えた場合、作成処理、 シナリオ情報ファイルの操作で異常終了していしまうバグの修正。
0.5.1.0 : 2004/08/02

変更

  • MOVE、SLIDEブロックの指定子として、「KEEP_ASPECT」 指定子を追加。

バグ修正

  • MIXブロックにおいて、異なるフレーム数の入力ブロックを指定すると異常終了するバグの修正。
  • シナリオ情報ウィンドウにおいて、 MOVE、SLIDE、FOCUSブロックのプレビュー画像がプレビューウィンドウに正しく表示されないバグの修正。
  • シナリオ情報ウィンドウにおいて、各ブロックに設定した BGCOLOR が反映されないバグの修正。
  • AVIファイル名を空欄にして、作成ボタンを進めると異常終了するバグの修正。

改善

  • MOVE、SLIDEブロックにて、画像の拡大、縮小を伴う定義を行った場合(SRC_START/SRC_END または DST_START/DST_END のサイズが異なる定義)、よりスムーズに見えるように改善。
  • シナリオファイルのドラッグ&ドロップに対応。
0.5.0.0 (初版) : 2004/07/14

とりあえず最初の公開版。