(57)【要約】【課題】画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を、生成することができる画像生成装置、及び画像生成プログラムを提供する。【解決手段】画像生成装置１００は、入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する算出部１１０と、オプティカルフローに応じて幾何学図形が移動するように、動画像としての出力画像に幾何学図形を配置する制御部１４０とを備える。また、制御部１４０は、出力画像における単位領域に配置された幾何学図形の個数が閾値以上である場合、少なくとも一つの幾何学図形を当該単位領域から削除してもよい。【選択図】図１
2014044596.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する算出部と、
前記オプティカルフローに応じて幾何学図形が移動するように、動画像としての前記出力画像に前記幾何学図形を配置する制御部と、
を備えることを特徴とする画像生成装置。
【請求項２】
前記算出部は、前記入力画像に関連付けられた距離情報に基づいて、前記オプティカルフローを算出することを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記算出部は、前記入力画像としてのコンピュータグラフィックスから算出された距離情報に基づいて、前記オプティカルフローを算出することを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記制御部は、前記出力画像における単位領域に配置された幾何学図形の個数が第１閾値以上である場合、少なくとも一つの幾何学図形を当該単位領域から削除することを特徴とする請求項１から請求項３のいずれか一項に記載の画像生成装置。
【請求項５】
前記制御部は、前記出力画像における単位領域に配置された幾何学図形の個数が第２閾値未満である場合、少なくとも一つの幾何学図形を当該単位領域に追加することを特徴とする請求項１から請求項４のいずれか一項に記載の画像生成装置。
【請求項６】
前記制御部は、前記出力画像における単位領域に幾何学図形を配置してから削除するまでの幾何学図形の寿命を定め、当該単位領域に配置された幾何学図形の個数が第３閾値以上である場合、前記幾何学図形の寿命を減少させ、当該単位領域に配置された幾何学図形の個数が第４閾値未満である場合、前記幾何学図形の寿命を増加させることを特徴とする請求項１から請求項５のいずれか一項に記載の画像生成装置。
【請求項７】
前記制御部は、前記出力画像における表示領域以外の単位領域に、少なくとも一つの幾何学図形を追加することを特徴とする請求項１から請求項６のいずれか一項に記載の画像生成装置。
【請求項８】
前記制御部は、前記出力画像における隣り合う単位領域の一方に配置する幾何学図形の速度に対して、前記隣り合う単位領域の他方に配置する幾何学図形の速度が、第５閾値以上の比率で低下する場合、前記隣り合う単位領域の一方から他方に移動する幾何学図形のうち、少なくとも一つの幾何学図形を削除することを特徴とする請求項１から請求項７のいずれか一項に記載の画像生成装置。
【請求項９】
前記制御部は、前記出力画像における隣り合う単位領域の一方に配置する幾何学図形の移動方向と、前記隣り合う単位領域の他方に配置する幾何学図形の移動方向とが逆である場合、前記隣り合う単位領域の一方から他方に移動する幾何学図形を削除することを特徴とする請求項１から請求項８のいずれか一項に記載の画像生成装置。
【請求項１０】
前記制御部は、不透明度が可変である幾何学図形を前記出力画像に配置することを特徴とする請求項１から請求項９のいずれか一項に記載の画像生成装置。
【請求項１１】
コンピュータに、
入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する手順と、
前記オプティカルフローに応じて幾何学図形が移動するように、動画像としての前記出力画像に前記幾何学図形を配置する手順と、
を実行させるための画像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、及び画像生成プログラムに関する。
【背景技術】
【０００２】
鑑賞者の視聴環境に最適化されたコンテンツ画像（ユニバーサルコンテンツ画像）を生成することを目的に、画像の動きが鑑賞者に与える感性的効果（例えば、画像の迫力感）が調査されている。例えば、画像生成装置は、カメラワークを自由に変化させることができるというＶＲ（Ｖｉｒｔｕａｌ Ｒｅａｌｉｔｙ）の特徴を活用し、同一の原カメラワークから、動きの異なる画像を生成する。感性的効果（主観的印象）は、動きの異なる画像を評価者が鑑賞者に提示し、自己の受けた印象の強さを鑑賞者が評価者に報告するという主観評価法により評価される。特許文献１には、鑑賞者の嗜好に応じた動画像を生成することを目的とした画像生成装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２６２３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、画像生成装置が生成した画像には、被写体自体の持つ意味など、感性的効果に影響を与える、画像の動き以外の要素が含まれている。つまり、画像生成装置は、画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を、生成することができないという問題がある。画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を、画像生成装置が生成することができなければ、評価者は、鑑賞者が受ける感性的効果に画像の動き以外の要素が影響している可能性を、排除することができない。
【０００５】
本発明は、前記の点に鑑みてなされたものであり、画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を、生成することができる画像生成装置、及び画像生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様は、入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する算出部と、前記オプティカルフローに応じて幾何学図形が移動するように、動画像としての前記出力画像に前記幾何学図形を配置する制御部と、を備えることを特徴とする画像生成装置である。
【０００７】
また、本発明の一態様は、前記算出部が、前記入力画像に関連付けられた距離情報に基づいて、前記オプティカルフローを算出することを特徴とする画像生成装置である。
【０００８】
また、本発明の一態様は、前記算出部が、前記入力画像としてのコンピュータグラフィックスから算出された距離情報に基づいて、前記オプティカルフローを算出することを特徴とする画像生成装置である。
【０００９】
また、本発明の一態様は、前記制御部が、前記出力画像における単位領域に配置された幾何学図形の個数が第１閾値以上である場合、少なくとも一つの幾何学図形を当該単位領域から削除することを特徴とする画像生成装置である。
【００１０】
また、本発明の一態様は、前記制御部が、前記出力画像における単位領域に配置された幾何学図形の個数が第２閾値未満である場合、少なくとも一つの幾何学図形を当該単位領域に追加することを特徴とする画像生成装置である。
【００１１】
また、本発明の一態様は、前記制御部が、前記出力画像における単位領域に幾何学図形を配置してから削除するまでの幾何学図形の寿命を定め、当該単位領域に配置された幾何学図形の個数が第３閾値以上である場合、前記幾何学図形の寿命を減少させ、当該単位領域に配置された幾何学図形の個数が第４閾値未満である場合、前記幾何学図形の寿命を増加させることを特徴とする画像生成装置である。
【００１２】
また、本発明の一態様は、前記制御部が、前記出力画像における表示領域以外の単位領域に、少なくとも一つの幾何学図形を追加することを特徴とする画像生成装置である。
【００１３】
また、本発明の一態様は、前記制御部が、前記出力画像における隣り合う単位領域の一方に配置する幾何学図形の速度に対して、前記隣り合う単位領域の他方に配置する幾何学図形の速度が、第５閾値以上の比率で低下する場合、前記隣り合う単位領域の一方から他方に移動する幾何学図形のうち、少なくとも一つの幾何学図形を削除することを特徴とする画像生成装置である。
【００１４】
また、本発明の一態様は、前記制御部が、前記出力画像における隣り合う単位領域の一方に配置する幾何学図形の移動方向と、前記隣り合う単位領域の他方に配置する幾何学図形の移動方向とが逆である場合、前記隣り合う単位領域の一方から他方に移動する幾何学図形を削除することを特徴とする画像生成装置である。
【００１５】
また、本発明の一態様は、前記制御部が、不透明度が可変である幾何学図形を前記出力画像に配置することを特徴とする画像生成装置である。
【００１６】
また、本発明の一態様は、コンピュータに、入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する手順と、前記オプティカルフローに応じて幾何学図形が移動するように、動画像としての前記出力画像に前記幾何学図形を配置する手順と、を実行させるための画像生成プログラムである。
【発明の効果】
【００１７】
本発明によれば、制御部は、オプティカルフローに応じて幾何学図形が移動するように、動画像としての出力画像に幾何学図形を配置する。これにより、画像生成装置、及び画像生成プログラムは、画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を、生成することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態における、画像生成装置の構成例を示すブロック図である。
【図２】本発明の一実施形態における、コンピュータグラフィックス及びデプス画像の例を示す図である。
【図３】本発明の一実施形態における、透視投影変換を説明するための図である。
【図４】本発明の一実施形態における、カメラパスの例を示す図である。
【図５】本発明の一実施形態における、オプティカルフローを示す出力画像の例を示す図である。
【図６】本発明の一実施形態における、オプティカルフローを示す情報の記憶形式の例を示す図である。
【図７】本発明の一実施形態における、単位領域及びランダムドットの例を示す図である。
【図８】本発明の一実施形態における、隣り合う単位領域の境界を超えた移動の例を示す図である。
【図９】本発明の一実施形態における、ドットの追加及び削除の例を示す図である。
【図１０】本発明の一実施形態における、表示領域以外の単位領域へのドットの追加の例を示す図である。
【図１１】本発明の一実施形態における、ドットの急な速度変化の例を示す図である。
【図１２】本発明の一実施形態における、ドットの方向反転の例を示す図である。
【図１３】本発明の一実施形態における、テクスチャを貼ったポリゴンから成るドットの例を示す図である。
【図１４】本発明の一実施形態における、操作パネルの例を示す図である。
【図１５】本発明の一実施形態における、出力画像としてのランダムドットの例をドットの密度及び色毎に示す図である。
【図１６】本発明の一実施形態における、オプティカルフローを算出する処理の動作手順例を示すフローチャートである。
【図１７】本発明の一実施形態における、ドットを配置するための制御処理の動作手順例を示すフローチャートである。
【図１８】本発明の一実施形態における、ドットテーブルの例を示す図である。
【図１９】本発明の一実施形態における、ドットの配置を更新する処理の動作手順例を示すフローチャートである。
【図２０】本発明の一実施形態における、ランダムドットの密度を調整する処理の動作手順例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
本発明の一実施形態について図面を参照して詳細に説明する。図１には、画像生成装置の構成例が、ブロック図により示されている。画像生成装置１００は、画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を生成する。画像生成装置１００は、算出部１１０と、記憶部１２０と、操作部１３０と、制御部１４０と、表示部１５０とを備える。
【００２０】
算出部１１０は、入力画像としてのコンピュータグラフィックス（Ｃｏｍｐｕｔｅｒ Ｇｒａｐｈｉｃｓ：ＣＧ）を示す三次元空間データ（シーンデータ）を、記憶部１２０から読み込む。算出部１１０は、この三次元空間データに定められたカメラパス（移動経路）を、カメラが移動した場合における、入力画像に基づく出力画像のオプティカルフローを算出する。
【００２１】
ここで、オプティカルフローとは、画像における動きの分布を示すベクトルである。入力画像が実写画像である場合、算出部１１０は、ブロックマッチング法などの画像処理により、動画像としての入力画像に含まれるフレーム間の差分に基づいて、入力画像に基づく出力画像のオプティカルフローを算出する。一方、入力画像がコンピュータグラフィックスである場合、入力画像の三次元空間を表す幾何学情報が全て既知であるため、算出部１１０は、画像処理を実行することなく、三次元空間データに含まれるＣＧモデル、及び、カメラワークに関する数値データに基づいて、入力画像に基づく出力画像のオプティカルフローを算出する。
【００２２】
また、算出部１１０は、入力画像がコンピュータグラフィックスである場合、入力画像の三次元空間に仮想的に置かれたカメラ（視点）から、入力画像の三次元空間に仮想的に置かれた被写体（オブジェクト）の表面までの距離を示すデプス（深度）画像を生成する。例えば、ＯｐｅｎＧＬ（登録商標）を用いる場合、算出部１１０は、レンダリングを実行する過程において、ｇｌＲｅａｄＰｉｘｅｌｓ関数（ｇｌＲｅａｄＰｉｘｅｌｓ(０，０，ｎＷｉｄｔｈ，ｎＨｅｉｇｈｔ，ＧＬ＿ＤＥＰＴＨ＿ＣＯＭＰＯＮＥＮＴ，ＧＬ＿ＦＬＯＡＴ，ｄｅｐｔｈＩｍａｇｅ)）を呼び出すことにより、デプス画像を得る。
【００２３】
図２には、コンピュータグラフィックス及びデプス画像の例が示されている。図２（Ａ）には、入力画像としてのコンピュータグラフィックスが、スクリーン座標系に示されている。このコンピュータグラフィックスには、被写体２００の一例として、神殿が描かれている。また、図２（Ｂ）は、このコンピュータグラフィックスに基づいて生成された、デプス画像である。図２（Ｂ）では、カメラ（視点）から被写体２００の表面までの距離が短いほど黒く表され、長いほど白く表されている。
【００２４】
図３は、透視投影変換を説明するための図である。ＯｐｅｎＧＬ（登録商標）を用いる場合、算出部１１０は、ｇｌＦｒｕｓｔｕｍ関数を呼び出すことにより、入力画像の三次元空間に対して、ビュー座標系からスクリーン座標系に変換する透視投影変換を設定することができる。算出部１１０は、前方クリップ面３１０から後方クリップ面３２０までのＺ座標値（奥行き）を、式（１）に基づいて、−１．０〜１．０の範囲に変換する。
【００２５】
【数１】
2014044596.tif 000003
【００２６】
ここで、ｎｅａｒは、カメラ３００から前方クリップ面３１０までの距離を示す。また、ｆａｒは、カメラ３００から後方クリップ面３２０までの距離を示す。また、ｔｏｐは、前方クリップ面３１０の上（Ｙ軸正方向）端を示す。また、ｂｏｔｔｏｍは、前方クリップ面３１０の下（Ｙ軸負方向）端を示す。また、ｒｉｇｈｔは、前方クリップ面３１０の右（Ｘ軸正方向）端を示す。また、ｌｅｆｔは、前方クリップ面３１０の左（Ｘ軸負方向）端を示す。
【００２７】
デプス画像は、ＧＬ＿ＦＬＯＡＴ形式で読み出された場合、−１．０〜１．０の範囲に透視投影変換された値が、さらに０．０〜１．０の範囲に正規化されている。したがって、算出部１１０は、この逆演算をデプス画像に施すことにより、カメラ３００（視点）から被写体の表面の点までの距離Ｚを、入力画像に予め定められた単位領域毎に算出する。なお、演算量が多くてもよい場合、算出部１１０は、入力画像の画素毎に、距離Ｚを算出してもよい。また、算出部１１０は、入力画像の複数の画素について、距離Ｚの平均値を算出してもよい。
【００２８】
また、算出部１１０は、ビュー座標系における視点の移動速度（Ｖｘ，Ｖｙ，Ｖｚ）と、視点の回転角速度（ωｐ，ωｙ，ωｒ）と、スクリーン座標（Ｓｘ，Ｓｙ）と、視体積（ｒｉｇｈｔ，ｌｅｆｔ，ｔｏｐ，ｂｏｔｔｏｍ，ｆａｒ，ｎｅａｒにより定まる体積）とに基づいて、スクリーン座標系における動きベクトル（Ｆｘ，Ｆｙ）を算出する。ここで、スクリーン座標（Ｓｘ，Ｓｙ）は、−１．０〜１．０の範囲に正規化されていてもよい。
【００２９】
入力画像のスクリーン座標系における動きベクトルは、入力画像の三次元空間を、カメラ３００（図３を参照）が移動等することにより生じる。動きベクトルは、生じる要因に応じて、式（２）〜（６）により算出される。以下、これら動きベクトルの和を、「オプティカルフロー」という。また、算出部１１０は、入力画像に基づく出力画像に予め定められた単位領域（図７を用いて後述する）毎に、出力画像のオプティカルフローを算出する。
【００３０】
入力画像の三次元空間で、カメラ３００が被写体に対して平行移動することにより生じる、入力画像のスクリーン座標系における動きベクトルは、式（２）により示される。ここで、Ｄは、被写体距離を示す。なお、ビュー座標系では、Ｄ＝−Ｚである。
【００３１】
【数２】
2014044596.tif 000004
【００３２】
また、入力画像の三次元空間で、カメラ３００が直線移動することにより生じる、入力画像のスクリーン座標系における動きベクトルは、式（３）により示される。ここで、Ｄは、被写体距離を示す。なお、ビュー座標系では、Ｄ＝−Ｚである。
【００３３】
【数３】
2014044596.tif 000005
【００３４】
また、入力画像の三次元空間で、カメラ３００がヨー回転（左右回転）することにより生じる、入力画像のスクリーン座標系における動きベクトルは、式（４）により示される。
【００３５】
【数４】
2014044596.tif 000006
【００３６】
また、入力画像の三次元空間で、カメラ３００がピッチ回転（上下回転）することにより生じる、入力画像のスクリーン座標系における動きベクトルは、式（５）により示される。
【００３７】
【数５】
2014044596.tif 000007
【００３８】
また、入力画像の三次元空間で、カメラ３００がロール回転（ねじり回転）することにより生じる、入力画像のスクリーン座標系における動きベクトルは、式（６）により示される。
【００３９】
【数６】
2014044596.tif 000008
【００４０】
図４には、カメラパスの例が示されている。以下では、カメラパス４００は、一例として、被写体２００の周囲を時計回りに旋回する移動経路に定められているものとして説明を続ける。
【００４１】
図５には、オプティカルフローを示す出力画像の例が示されている。図５（Ａ）には、カメラ３００（図３を参照）が、被写体２００を向きながら、カメラパス４００（図４を参照）に沿って、被写体２００の周囲を高速旋回している場合における、オプティカルフローの例が、矢印の向き及び大きさにより示されている。
【００４２】
図５（Ａ）において、出力画像の下側領域（図２における、地面が描かれている領域に相当）には、右方向（Ｘ軸正方向）を向く所定値以上のオプティカルフローが示されている。また、出力画像の中央領域（図２における、被写体２００が描かれている領域に相当）には、前記所定値以下のオプティカルフローが示されている。また、出力画像の上側領域（図２における、空が描かれている領域に相当）には、左方向（Ｘ軸負方向）を向くオプティカルフローが示されている。
【００４３】
一方、図５（Ｂ）には、カメラ３００が、被写体２００を向きながら、カメラパス４００に沿って、被写体２００の周囲を低速旋回している場合における、オプティカルフローの例が、矢印の向き及び大きさにより示されている。図５（Ｂ）において、出力画像の右下側領域（図２における、被写体２００の右側の輪郭が描かれている領域に相当）には、１点に向かって集中するオプティカルフローが示されている。ここで、１点に向かって集中するオプティカルフローが示されている理由は、カメラ３００が旋回したことにより、被写体２００の右側の輪郭（図２を参照）から、カメラ３００が離れ始めたからである。
【００４４】
図１に戻り、画像生成装置の構成例の説明を続ける。
記憶部１２０は、入力画像としてのコンピュータグラフィックスを示す三次元空間データ（シーンデータ）を、予め記憶する。また、記憶部１２０は、算出部１１０による算出結果、例えば、オプティカルフローを示す情報を記憶する。また、記憶部１２０は、カメラパス４００（図４を参照）などのカメラワークに関する数値データを、予め記憶する。なお、記憶部１２０は、制御部１４０を動作させるためのプログラムを予め記憶してもよい。
【００４５】
図６には、オプティカルフローを示す情報の記憶形式の例が示されている。オプティカルフローを示す出力画像は、複数の単位領域（図７を用いて後述する）となるよう、Ｘ方向及びＹ方向に格子状に分割されている。記憶部１２０は、単位領域（Ｘ，Ｙ）毎のオプティカルフローを示す情報（Ｖｘ，Ｖｙ）と、単位領域（Ｘ，Ｙ）毎のデプス情報（Ｚ）とを、フレームシーケンシャルに、フレーム毎に記憶する。図６では、例えば、「Ｖｘ０−０」は、単位領域（Ｘ，Ｙ）＝（０，０）における、Ｘ方向のオプティカルフローを示す情報が格納されている記憶領域を示す。また、例えば、「Ｖｘ６３−６３」は、単位領域（Ｘ，Ｙ）＝（６３，６３）における、Ｘ方向のオプティカルフローを示す情報が格納されている記憶領域を示す。
【００４６】
図１に戻り、画像生成装置の構成例の説明を続ける。
操作部１３０は、ユーザによる操作入力を受け付け、操作入力に応じた信号を制御部１４０に出力する。ここで、操作入力に応じた信号は、例えば、各種の設定条件（閾値など）を示す信号である。
【００４７】
制御部１４０は、オプティカルフローに応じて幾何学図形が移動するように、動画像としての出力画像に、幾何学図形を配置する。以下、幾何学図形は、ドット（以下では、丸い形状により表す）であるものとして説明を続ける。
【００４８】
図７には、単位領域及びランダムドットの例が示されている。図７では、出力画像は、１６×１６個の単位領域５００−Ｘ−Ｙ（単位領域５００−０−０〜単位領域５００−１５−１５）に分割されている。以下、単位領域５００−Ｘ−Ｙの全てに共通する事項については、符号Ｘ及びＹを省略して、「単位領域５００」と表記する。
【００４９】
制御部１４０（図１を参照）は、少なくとも一つ以上のドットを、出力画像にランダムに初期配置する（ランダムドット）。また、制御部１４０は、ドットが配置されている単位領域５００におけるオプティカルフローに応じて、そのドットが移動するように、動画像としての出力画像に、フレーム（図６を参照）毎にドットを再配置する。
【００５０】
図８には、隣り合う単位領域の境界を超えた移動の例が示されている。ドットは、隣り合う単位領域５００の境界を越えて再配置される。図８では、単位領域５００−Ｘ−Ｙから、単位領域５００−（Ｘ＋１）−Ｙに、少なくとも一つのドットが再配置されている。これにより、ドットが滑らかに順次移動するように見えるので、隣り合う単位領域５００の境界は、出力画像においてほとんど目立たない。同様に、被写体２００の輪郭は、出力画像においてほとんど目立たない。
【００５１】
図９には、ドットの追加及び削除の例が示されている。制御部１４０は、出力画像におけるドットの密度を、単位領域５００毎に制御する。具体的には、制御部１４０は、出力画像における単位領域５００に配置されたドットの個数が第１閾値以上である場合、少なくとも一つのドットを当該単位領域５００から削除する。図９では、一例として、３個のドットが、単位領域５００−（Ｘ＋１）−Ｙから削除されている。
【００５２】
また、制御部１４０は、出力画像における単位領域５００に配置されたドットの個数が第２閾値未満である場合、少なくとも一つのドットを当該単位領域５００に追加する。図９では、一例として、１個のドットが、単位領域５００−Ｘ−Ｙに追加されている。ドットが、追加され、削除され、又は、隣の単位領域５００に再配置（移動）された場合、制御部１４０は、それらに関連する単位領域５００について、他のドットを再配置する。これにより、制御部１４０は、出力画像におけるドットの密度を、所定範囲内にすることができる。
【００５３】
また、制御部１４０は、操作入力に応じた信号に基づいて、ドットの寿命を定める。ここで、ドットの寿命とは、制御部１４０が、出力画像における単位領域５００にドットを配置してから、当該ドットを削除するまでのフレーム数（時間）である。制御部１４０は、当該単位領域５００に配置されたドットの個数が第３閾値以上である場合、ドットの寿命を減少させる。また、制御部１４０は、当該単位領域５００に配置されたドットの個数が第４閾値未満である場合、ドットの寿命を増加させる。これにより、制御部１４０は、ドットの追加又は削除による出力画像のチラつきを低減させることができる。
【００５４】
ここで、ドットの流入が集中している単位領域５００では、ドットが寿命となるまでの間に、当該単位領域５００におけるドットの密度が大きく上昇する場合がある。これを防止するため、ドットの密度には、上限値（上限閾値）が定められていてもよい。制御部１４０は、単位領域５００におけるドットの密度が上限値を超えた場合、ドットの寿命にかかわらず、少なくとも一つ以上のドットを削除してもよい。
【００５５】
図１０には、表示領域以外の単位領域へのドットの追加の例が示されている。例えば、８０×８０個の単位領域５００に分割された出力画像の全体のうち、出力画像の所定範囲には、例えば、６４×６４個の単位領域５００に分割された表示領域が定められてもよい。この表示領域以外の単位領域５００は、表示部１５０に表示されなくてもよい。
【００５６】
制御部１４０は、出力画像に定められた表示領域（図１０では、単位領域５００−Ｘ−Ｙ）以外の領域（外縁部）（図１０では、単位領域５００−（Ｘ＋１）−Ｙ）に、少なくとも一つのドットを追加する。ここで、出力画像の所定範囲とは、例えば、出力画像の中央を含む範囲である。
【００５７】
この構成により、ドットの密度の偏りは、表示領域以外の単位領域５００（図１０では、単位領域５００−（Ｘ＋１）−Ｙ）のみに発生することになる。これにより、制御部１４０は、表示領域（図１０では、単位領域５００−Ｘ−Ｙ）におけるドットの密度の偏りを防止することができる。
【００５８】
図１１には、ドットの急な速度変化の例が示されている。制御部１４０は、出力画像における隣り合う単位領域５００の一方（図１１では、単位領域５００−（Ｘ＋１）−Ｙ）に配置するドットの速度に対して、隣り合う単位領域５００の他方（図１１では、単位領域５００−Ｘ−Ｙ）に配置するドットの速度が、第５閾値以上の比率で低下する場合、隣り合う領域の一方から他方に移動するドットのうち、少なくとも一つのドットを削除する。これにより、制御部１４０は、隣り合う単位領域５００の境界近傍でのドットの密度を上昇させることなく、出力画像におけるドットの配置を均一にすることができる。
【００５９】
ここで、制御部１４０は、第５閾値（ドットの速度比）が、例えば、変化前の速度：変化後の速度＝８：１である場合、隣り合う単位領域５００の一方から他方に移動する全てのドットを削除してもよい。また、制御部１４０は、第５閾値（ドットの速度比）が、例えば、変化前の速度：変化後の速度＝２：１である場合、隣り合う単位領域５００の一方から他方に移動するドットのうち、一例として、半数のドットを削除してもよい。
【００６０】
図１２には、ドットの方向反転の例が示されている。制御部１４０は、出力画像における隣り合う単位領域５００の一方（図１２では、単位領域５００−Ｘ−Ｙ）に配置するドットの移動方向と、隣り合う単位領域５００の他方（図１２では、単位領域５００−（Ｘ＋１）−Ｙ）に配置するドットの移動方向とが逆である場合、隣り合う単位領域５００の一方から他方に移動するドットを削除する。これにより、制御部１４０は、隣り合う単位領域５００の境界近傍でのドットの密度を上昇させることなく、出力画像におけるドットの配置を均一にすることができる。
【００６１】
ここで、制御部１４０は、隣り合う単位領域５００の一方のオプティカルフローと、隣り合う単位領域５００のオプティカルフローとの内積を算出し、内積が負値である場合、隣り合う単位領域５００の一方から他方に移動するドットを全て削除してもよい。
【００６２】
図１３には、テクスチャを貼ったポリゴンから成るドットの例が示されている。制御部１４０は、アルファ値（不透明度）が可変であるテクスチャを貼ったポリゴンから成るドットを、出力画像に配置する。これにより、制御部１４０は、ドットのエッジのガタツキを防止し、任意のサイズでドットを描画させることができる。
【００６３】
図１に戻り、画像生成装置の構成例の説明を続ける。
表示部１５０は、制御部１４０によりドットが配置された動画像としての出力画像のうち、出力画像に定められた表示領域を表示する。また、表示部１５０は、操作部１３０をユーザが操作するための操作パネルを表示する。
【００６４】
図１４には、操作パネルの例が示されている。操作パネルに表示される設定条件の項目には、ドット密度と、表示色と、ドットサイズとがある。ドット密度には、閾値低（第２閾値）と、閾値高（第１閾値）と、上限値とがある。また、表示色には、背景の色と、ドットの色とがある。ユーザは、表示部１５０に表示された操作パネルを操作することにより、操作入力に応じた信号を、操作部１３０から制御部１４０に出力させることができる。
【００６５】
図１５には、出力画像としてのランダムドットの例が、ドットの密度及び色毎に示されている。図１５（Ａ）には、操作入力によりドットの密度が高く設定された場合における、ランダムドットの例が示されている。また、図１５（Ｂ）には、操作入力によりドットの密度が低く設定された場合における、ランダムドットの例が示されている。また、図１５（Ｃ）には、操作入力によりドットの色が変更された場合における、ランダムドットの例が示されている。
【００６６】
出力画像を動画像として鑑賞する場合、ユーザは、ドットの配置に基づいて、被写体２００（図４を参照）の輪郭を認識することができる。一方、動画像としての出力画像からキャプチャされた静止画像を鑑賞する場合、ドットの密度がほぼ均質に保たれているため、ユーザは、ドットの配置に基づいて、被写体２００の輪郭を認識することができない。
【００６７】
次に、画像生成装置の動作手順例を説明する。
図１６は、オプティカルフローを算出する処理（ＣＧ再生処理）の動作手順例を示すフローチャートである。
（ステップＳ１）算出部１１０（図１を参照）は、三次元空間を示す入力画像（コンピュータグラフィックス）を表すシーンデータを、記憶部１２０（図１を参照）から読み込む。
【００６８】
（ステップＳ２）算出部１１０は、カメラパス４００（図４を参照）を示す情報と、カメラパス４００を移動するカメラ３００（図３を参照）の向き（角度）を位置毎に示す情報とを、カメラワークに関する数値データとして、記憶部１２０から読み込む。ここで、カメラパス４００は、補間曲線を用いて記述されてもよい。
また、算出部１１０は、予め定められた総再生時間ＴＴＯＴＡＬ、すなわち、ランダムドットを表示する処理を続ける時間を示す情報を、記憶部１２０から読み込む。
【００６９】
（ステップＳ３）算出部１１０は、タイマー変数Ｔを時刻０にリセットする。タイマー変数Ｔとは、ランダムドットの表示を開始してからの経過時間をカウントするための変数である。例えば、カメラ３００の位置は、タイマー変数Ｔの値に基づいて算出される。
【００７０】
（ステップＳ４）算出部１１０は、時刻Ｔにおけるカメラ３００の位置及び向きを算出し、カメラ３００の位置及び向きを更新する。ここで、算出部１１０は、カメラの位置及び向きを、補間より算出してもよい。
（ステップＳ５）算出部１１０は、三次元空間データに基づいて、レンダリングを実行する。
（ステップＳ６）算出部１１０は、レンダリングの結果に基づいて、デプス情報を算出する。
【００７１】
（ステップＳ７）算出部１１０は、カメラパス４００を移動するカメラ３００の速度を算出する。
（ステップＳ８）算出部１１０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｘ及びＹを、値０にそれぞれ初期化する。
（ステップＳ９）算出部１１０は、単位領域５００−Ｘ−Ｙについて、Ｚ座標（奥行き距離）を算出する。
【００７２】
（ステップＳ１０）算出部１１０は、単位領域５００−Ｘ−Ｙについて、オプティカルフローを算出する。
（ステップＳ１１）算出部１１０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｘに、値１を加算する。
【００７３】
（ステップＳ１２）算出部１１０は、インデックス変数Ｘが、Ｘ方向に並ぶ単位領域５００の個数（列の総数）未満であるか否かを判定する。インデックス変数Ｘが、Ｘ方向に並ぶ単位領域５００の個数未満である場合（ステップＳ１２：Ｙｅｓ）、算出部１１０は、ステップＳ９に処理を戻す。一方、インデックス変数Ｘが、Ｘ方向に並ぶ単位領域５００の個数未満でない場合（ステップＳ１２：Ｎｏ）、算出部１１０は、ステップＳ１３に処理を進める。
【００７４】
（ステップＳ１３）算出部１１０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｙに値１を加算し、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｘを、値０に初期化する。
【００７５】
（ステップＳ１４）算出部１１０は、インデックス変数Ｙが、Ｙ方向に並ぶ単位領域５００の個数（行の総数）未満であるか否かを判定する。インデックス変数Ｙが、Ｙ方向に並ぶ単位領域５００の個数未満である場合（ステップＳ１４：Ｙｅｓ）、算出部１１０は、ステップＳ９に処理を戻す。一方、インデックス変数Ｙが、Ｙ方向に並ぶ単位領域５００の個数未満でない場合（ステップＳ１４：Ｎｏ）、算出部１１０は、ステップＳ１５に処理を進める。これにより、算出部１１０は、全ての単位領域５００について、オプティカルフローを順次算出することになる。
【００７６】
（ステップＳ１５）算出部１１０は、オプティカルフローデータを、記憶部１２０に記憶させる。
（ステップＳ１６）算出部１１０は、時刻Ｔに時間差分ΔＴを加算した値をタイマー変数Ｔに代入することにより、タイマー変数Ｔを更新する。時間差分ΔＴは、例えば、動画像のフレームレートが６０［ｆｐｓ］である場合、６０分の１［秒］でもよい。
【００７７】
（ステップＳ１７）算出部１１０は、時刻０から時刻Ｔまでの時間Ｔが、総再生時間ＴＴＯＴＡＬ未満であるか否かを判定する。時間Ｔが総再生時間ＴＴＯＴＡＬ未満である場合（ステップＳ１７：Ｙｅｓ）、算出部１１０は、ステップＳ４に処理を戻す。一方、時間Ｔが総再生時間ＴＴＯＴＡＬ未満でない場合（ステップＳ１７：Ｎｏ）、算出部１１０は、オプティカルフローを算出する処理を終了する。
【００７８】
図１７は、ドットを配置するための制御処理（ドット再生処理）の動作手順例を示すフローチャートである。
（ステップＳａ１）制御部１４０（図１を参照）は、総再生時間ＴＴＯＴＡＬの全時刻におけるオプティカルフローデータを、記憶部１２０から予め読み込む。これにより、制御部１４０は、出力画像上で移動するランダムドットを、表示部１５０に滑らかに表示させることができる。なお、制御部１４０は、記憶部１２０を介さずに、オプティカルフローデータを算出部１１０から直接取得してもよい。
（ステップＳａ２）制御部１４０は、出力画像上から全てのドットを一旦削除する。
【００７９】
（ステップＳａ３）制御部１４０は、単位領域５００にドットを配置することにより、出力画像におけるドットの密度を調整する。
（ステップＳａ４）制御部１４０は、タイマー変数Ｔを時刻０にリセットする。
（ステップＳａ５）制御部１４０は、記憶部１２０から読み込んだオプティカルフローデータのうち、時刻Ｔに対応するオプティカルフローデータを選択する。
【００８０】
（ステップＳａ６）制御部１４０は、選択したオプティカルフローデータに基づいて、出力画像にドットを配置することにより、出力画像上でドットをオプティカルフローに応じて移動させる。
（ステップＳａ７）制御部１４０は、出力画像における単位領域５００−Ｘ−Ｙ（図７を参照）に配置されたドットを追加又は削除することにより、出力画像におけるドットの密度を調整する。制御部１４０は、ドットの配置を示す情報（ドットテーブル）を、表示部１５０（図１を参照）に出力する。
【００８１】
図１８は、ドットテーブルの例を示す図である。ドットテーブルの項目には、ドットの識別番号と、ドットのＸ座標及びＹ座標と、ドットの寿命とがある。ドットの識別番号には、ドットのＸ座標及びＹ座標と、ドットの寿命とが対応付けられている。
【００８２】
図１７に戻り、オプティカルフローを算出する処理の動作手順例の説明を続ける。
（ステップＳａ８）表示部１５０は、ドットの配置を示す情報に基づいて、ドットが描画された出力画像を表示する。
（ステップＳａ９）制御部１４０は、時刻Ｔに時間差分ΔＴを加算した値をタイマー変数Ｔに代入することにより、タイマー変数Ｔを更新する。時間差分ΔＴは、例えば、動画像のフレームレートが６０［ｆｐｓ］である場合、６０分の１［秒］でもよい。
【００８３】
（ステップＳａ１０）制御部１４０は、時刻０から時刻Ｔまでの時間Ｔが、総再生時間ＴＴＯＴＡＬ未満であるか否かを判定する。時間Ｔが総再生時間ＴＴＯＴＡＬ未満である場合（ステップＳａ１０：Ｙｅｓ）、制御部１４０は、ステップＳａ５に処理を戻す。一方、時間Ｔが総再生時間ＴＴＯＴＡＬ未満でない場合（ステップＳａ１０：Ｎｏ）、制御部１４０は、ドットを配置するための制御処理を終了する。
【００８４】
図１９は、ドットの配置を更新する処理（ドット移動処理）の動作手順例を示すフローチャートである。
（ステップＳｂ１）制御部１４０は、ドットの識別情報を示す変数Ｋを、値０に初期化する。
（ステップＳｂ２）制御部１４０は、Ｋ個目のドットＤＫの座標を、（ＸＫ，ＹＫ）と定める。
【００８５】
（ステップＳｂ３）制御部１４０は、ドットＤＫの座標が属する単位領域ＧにおけるオプティカルフローのベクトルＯと、経過時間ΔＴとに基づいて、ドットＤＫの移動量（ΔＸ，ΔＹ）を算出する。ここで、制御部１４０は、ドットの座標及び速度を、出力画像の全体（例えば、８０×８０個の単位領域５００）の座標で扱ってもよいし、出力画像の所定範囲に定められた表示領域（例えば、６４×６４個の単位領域５００）の座標で扱ってもよい。
【００８６】
（ステップＳｂ４）制御部１４０は、ドットＤＫの座標を、移動後の座標に更新する。ここで、ドットＤＫの移動後の座標（Ｘ’Ｋ，Ｙ’Ｋ）は、「Ｘ’Ｋ＝ＸＫ＋ΔＸ」、「Ｙ’Ｋ＝ＹＫ＋ΔＹ」である。
（ステップＳｂ５）制御部１４０は、ドットＤＫの移動後の座標（Ｘ’，Ｙ’Ｋ）が属する単位領域Ｇ’を特定する。
【００８７】
（ステップＳｂ６）制御部１４０は、ドットＤＫの移動後の座標（Ｘ’Ｋ，Ｙ’Ｋ）が属する単位領域Ｇ’が無効であるか否か、すなわち、単位領域Ｇ’が出力画像以外にあるか否かを判定する。ここで、出力画像以外とは、例えば、出力画像の全体（８０×８０の単位領域群）以外である。
【００８８】
制御部１４０は、単位領域Ｇ’が無効である場合（ステップＳｂ６：Ｙｅｓ）、制御部１４０は、ステップＳｂ７に処理を進める。一方、単位領域Ｇ’が無効でない（有効である）場合（ステップＳｂ６：Ｎｏ）、制御部１４０は、ステップＳｂ８に処理を進める。
（ステップＳｂ７）制御部１４０は、ドットテーブル（図１８を参照）から、ドットＤＫを削除する。これにより、ドットＤＫは、出力画像に配置されなくなる。
【００８９】
（ステップＳｂ８）制御部１４０は、ドットＤＫの移動前の座標（ＸＫ，ＹＫ）が属する単位領域ＧにおけるオプティカルフローのベクトルＯと、ドットＤＫの移動後の座標（Ｘ’Ｋ，Ｙ’Ｋ）が属する単位領域Ｇ’におけるオプティカルフローのベクトルＯ’との内積「Ｏ・Ｏ’」を算出する。
【００９０】
（ステップＳｂ９）制御部１４０は、オプティカルフローのベクトルの内積「Ｏ・Ｏ’」が負値であるか否かを判定する。内積「Ｏ・Ｏ’」が負値である場合（ステップＳｂ９：Ｙｅｓ）、制御部１４０は、ステップＳｂ１０に処理を進める。一方、内積「Ｏ・Ｏ’」が負値でない場合（ステップＳｂ９：Ｎｏ）、制御部１４０は、ステップＳｂ１１に処理を進める。
【００９１】
（ステップＳｂ１０）制御部１４０は、ドットテーブル（図１８を参照）から、ドットＤＫを削除する。つまり、内積「Ｏ・Ｏ’」が負値であることは、ドットＤＫの移動方向が反転していることを意味するため、ドットＤＫを滞留させないよう、制御部１４０は、ドットＤＫを削除する（図１２を参照）。
【００９２】
（ステップＳｂ１１）制御部１４０は、ドットの識別情報を示す変数Ｋに、値１を加算する。
（ステップＳｂ１２）制御部１４０は、ドットの識別情報を示す変数Ｋが、削除前のドットＤの総数未満であるか否かを判定する。変数Ｋが、削除前のドットＤの総数未満である場合（ステップＳｂ１２：Ｙｅｓ）、制御部１４０は、ステップＳｂ２に処理を戻す。一方、変数Ｋが、削除前のドットＤの総数未満でない場合（ステップＳｂ１２：Ｎｏ）、制御部１４０は、ドットの配置を更新する処理を終了する。
【００９３】
図２０は、ランダムドットの密度を調整する処理の動作手順例を示すフローチャートである。以下、初期寿命Ｌｉｆｅｉｎｉｔｉａｌと、寿命の減少分ΔＬＭＩＮＵＳと、寿命の増加分ΔＬＰＬＵＳとは、出力画像におけるチラつきが目立たないように、予め定められているものとして説明を続ける。
【００９４】
（ステップＳｃ１）制御部１４０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｘ及びＹを、値０にそれぞれ初期化する。
（ステップＳｃ２）制御部１４０は、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹを計数する。
【００９５】
（ステップＳｃ３）制御部１４０は、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、下限閾値Ｎｍｉｎ未満であるか否かを判定する。単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、下限閾値Ｎｍｉｎ未満である場合（ステップＳｃ３：Ｙｅｓ）、制御部１４０は、ステップＳｃ４に処理を進める。一方、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、下限閾値Ｎｍｉｎ未満でない場合（ステップＳｃ３：Ｎｏ）、制御部１４０は、ステップＳｃ６に処理を進める。
【００９６】
（ステップＳｃ４）制御部１４０は、単位領域５００−Ｘ−Ｙ内のランダムな座標に新たなドットを配置するよう、ドットテーブル（図１８を参照）にドットＤを追加する。
（ステップＳｃ５）制御部１４０は、追加したドットＤの寿命ＬｉｆｅＤを、初期寿命Ｌｉｆｅｉｎｉｔｉａｌに初期化する。そして、制御部１４０は、ステップＳｃ２に処理を戻す。
【００９７】
（ステップＳｃ６）制御部１４０は、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、閾値Ｎｌｉｍｉｔを超えているか否かを判定する。単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、閾値Ｎｌｉｍｉｔを超えている場合（ステップＳｃ６：Ｙｅｓ）、制御部１４０は、ステップＳｃ７に処理を進める。一方、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、閾値Ｎｌｉｍｉｔを超えていない場合（ステップＳｃ６：Ｎｏ）、制御部１４０は、ステップＳｃ８に処理を進める。
【００９８】
（ステップＳｃ７）制御部１４０は、単位領域５００−Ｘ−Ｙに配置されているドットのうち、「ＮＸＹ−Ｎｌｉｍｉｔ」個のドットを削除する。そして、制御部１４０は、ステップＳｃ２に処理を戻す。
【００９９】
（ステップＳｃ８）制御部１４０は、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、上限閾値Ｎｍａｘを超えているか否かを判定する。単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、上限閾値Ｎｍａｘを超えている場合（ステップＳｃ８：Ｙｅｓ）、制御部１４０は、ステップＳｃ９に処理を進める。一方、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、上限閾値Ｎｍａｘを超えていない場合（ステップＳｃ８：Ｎｏ）、制御部１４０は、ステップＳｃ１０に処理を進める。
【０１００】
（ステップＳｃ９）制御部１４０は、単位領域５００−Ｘ−Ｙ内の全てのドットの寿命Ｌｉｆｅから、寿命の減少分ΔＬＭＩＮＵＳを減算する。
（ステップＳｃ１０）制御部１４０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｘに、値１を加算する。
【０１０１】
（ステップＳｃ１１）制御部１４０は、インデックス変数Ｘが、Ｘ方向に並ぶ単位領域の個数（列の総数）未満であるか否かを判定する。インデックス変数Ｘが、Ｘ方向に並ぶ単位領域の個数未満である場合（ステップＳｃ１１：Ｙｅｓ）、制御部１４０は、ステップＳｃ２に処理を戻す。一方、インデックス変数Ｘが、Ｘ方向に並ぶ単位領域の個数未満でない場合（ステップＳｃ１１：Ｎｏ）、制御部１４０は、ステップＳｃ１２に処理を進める。
【０１０２】
（ステップＳｃ１２）制御部１４０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｙに、値１を加算する。また、制御部１４０は、単位領域５００−Ｘ−Ｙを特定するためのインデックス変数Ｘを、値０に初期化する。
【０１０３】
（ステップＳｃ１３）制御部１４０は、インデックス変数Ｙが、Ｙ方向に並ぶ単位領域の個数（行の総数）未満であるか否かを判定する。インデックス変数Ｙが、Ｙ方向に並ぶ単位領域の個数未満である場合（ステップＳｃ１３：Ｙｅｓ）、制御部１４０は、ステップＳｃ２に処理を戻す。一方、インデックス変数Ｙが、Ｙ方向に並ぶ単位領域の個数未満でない場合（ステップＳｃ１３：Ｎｏ）、制御部１４０は、ステップＳｃ１４に処理を進める。
【０１０４】
（ステップＳｃ１４）制御部１４０は、ドットの識別情報を示す変数Ｍを、値０に初期化する。
（ステップＳｃ１５）制御部１４０は、Ｍ個目のドットＤＭの寿命ＬｉｆｅＭを、ドットテーブル（図１８を参照）から取得する。
（ステップＳｃ１６）制御部１４０は、Ｍ個目のドットＤＭの寿命ＬｉｆｅＭが、負値であるか否かを判定する。Ｍ個目のドットＤＭの寿命ＬｉｆｅＭが、負値である場合（ステップＳｃ１６：Ｙｅｓ）、制御部１４０は、ステップＳｃ１７に処理を進める。一方、Ｍ個目のドットＤＭの寿命ＬｉｆｅＭが、負値でない場合（ステップＳｃ１６：Ｎｏ）、制御部１４０は、ステップＳｃ２０に処理を進める。
【０１０５】
（ステップＳｃ１７）制御部１４０は、同一の単位領域内のドットの個数ＮＸＹ、すなわち、Ｍ個目のドットＤＭが配置されている単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹを計数する。
【０１０６】
（ステップＳｃ１８）制御部１４０は、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、上限閾値Ｎｍａｘを超えているか否かを判定する。単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、上限閾値Ｎｍａｘを超えている場合（ステップＳｃ１８：Ｙｅｓ）、制御部１４０は、ステップＳｃ１９に処理を進める。一方、単位領域５００−Ｘ−Ｙに配置されているドットの個数ＮＸＹが、上限閾値Ｎｍａｘを超えていない場合（ステップＳｃ１８：Ｎｏ）、制御部１４０は、ステップＳｃ２０に処理を進める。
【０１０７】
なお、同一の単位領域内のドットの個数ＮＸＹが、下限閾値Ｎｍｉｎ未満になった場合、制御部１４０は、複数のドットの寿命が負値であっても、それらのドットを削除しないようにしてもよい。これにより、制御部１４０は、ドットを過剰に削除しないようにすることができる。
【０１０８】
（ステップＳｃ１９）制御部１４０は、ドットテーブル（図１８を参照）から、Ｍ個目のドットＤＭを削除する。これにより、ドットＤＭは、出力画像に配置されなくなる。
（ステップＳｃ２０）制御部１４０は、ドットＤＭの寿命ＬｉｆｅＭに、寿命の増加分ΔＬＰＬＵＳを加算する。
（ステップＳｃ２１）制御部１４０は、ドットの識別情報を示す変数Ｍに、値１を加算する。
【０１０９】
（ステップＳｃ２２）制御部１４０は、ドットの識別情報を示す変数Ｍが、削除前のドットＤの総数未満であるか否かを判定する。変数Ｍが、削除前のドットＤの総数未満である場合（ステップＳｃ２２：Ｙｅｓ）、制御部１４０は、ステップＳｃ１５に処理を戻す。一方、変数Ｍが、削除前のドットＤの総数未満でない場合（ステップＳｃ２２：Ｎｏ）、制御部１４０は、ランダムドットの密度を調整する処理を終了する。
【０１１０】
以上のように、画像生成装置１００は、入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する算出部１１０と、前記オプティカルフローに応じて幾何学図形（例えば、ドット）が移動するように、動画像としての前記出力画像に前記幾何学図形を配置する制御部１４０と、を備える。
また、画像生成プログラムは、コンピュータに、入力画像に基づく出力画像に予め定められた単位領域毎に、当該出力画像のオプティカルフローを算出する手順と、前記オプティカルフローに応じて幾何学図形（例えば、ドット）が移動するように、動画像としての前記出力画像に幾何学図形を配置する手順と、を実行させる。
【０１１１】
この構成により、制御部１４０は、オプティカルフローに応じて幾何学図形が移動するように、出力画像に幾何学図形を配置する。これにより、画像生成装置１００及び画像生成プログラムは、画像の動きが鑑賞者に与える感性的効果のみを評価することが可能な動画像を、生成することができる。すなわち、制御部１４０は、オプティカルフローに応じて幾何学図形を移動させる。これにより、画像生成装置１００及び画像生成プログラムは、入力画像に含まれる動き要素のみを含む出力画像を、生成することができる。なお、出力画像は、記憶部１２０に記憶されてもよい。
【０１１２】
また、制御部１４０は、前記入力画像に関連付けられた距離情報（例えば、デプス画像）に基づいて、前記オプティカルフローを算出する。ここで、制御部１４０は、前記入力画像としてのコンピュータグラフィックスから算出された距離情報に基づいて、前記オプティカルフローを算出する。
【０１１３】
また、制御部１４０は、前記出力画像における領域に配置された幾何学図形の個数が第１閾値以上である場合、少なくとも一つの幾何学図形を当該領域から削除する。
また、制御部１４０は、前記出力画像における領域に配置されたドットの個数が第２閾値未満である場合、少なくとも一つの幾何学図形を当該領域に追加する。
これにより、制御部１４０は、出力画像における幾何学図形の密度を、所定範囲内にすることができる。
【０１１４】
また、制御部１４０は、前記出力画像における領域に幾何学図形を配置してから削除するまでの幾何学図形の寿命を定め、当該領域に配置された幾何学図形の個数が第３閾値以上である場合、前記幾何学図形の寿命を減少させ、当該領域に配置された幾何学図形の個数が第４閾値未満である場合、前記幾何学図形の寿命を増加させる。
これにより、制御部１４０は、幾何学図形の追加又は削除による出力画像のチラつきを低減させることができる。
【０１１５】
また、制御部１４０は、前記出力画像における表示領域以外の領域に、少なくとも一つの幾何学図形を追加する。
また、制御部１４０は、前記出力画像における隣り合う領域の一方に配置する幾何学図形の速度に対して、前記隣り合う領域の他方に配置する幾何学図形の速度が、第５閾値以上の比率で低下する場合、前記隣り合う領域の一方から他方に移動する幾何学図形のうち、少なくとも一つの幾何学図形を削除する。
また、制御部１４０は、前記出力画像における隣り合う領域の一方に配置する幾何学図形の移動方向と、前記隣り合う領域の他方に配置する幾何学図形の移動方向とが逆である場合、前記隣り合う領域の一方から他方に移動する幾何学図形を削除する。
これにより、制御部１４０は、出力画像における幾何学図形の配置を均一にすることができる。
【０１１６】
また、制御部１４０は、不透明度が可変である幾何学図形を前記出力画像に配置する。
これにより、制御部１４０は、幾何学図形の輪郭のガタツキを低減させることができる。
【０１１７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【０１１８】
例えば、デプス画像の分解能（算出単位）は、出力画像における単位領域５００の数以上の任意の数とされてもよい。例えば、高解像度（Ｈｉｇｈ Ｄｅｆｉｎｉｔｉｏｎ：ＨＤ）の出力画像を表示する場合、レンダリング結果が１９２０×１０８０画素であっても、オプティカルフローを算出する段階では、出力画像は表示されない。そこで、画像生成装置１００は、高解像度の出力画像の画素のうち、例えば、６４×６４個の単位領域５００に含まれる６４×６４画素について、レンダリングを実行してもよい。また、例えば、画像生成装置１００は、６４×６４個の単位領域５００に含まれる２５６×２５６画素についてレンダリングを実行し、この実行結果を単位領域５００毎に平均化してもよい。これにより、画像生成装置１００は、処理負荷を低減することができる。
【０１１９】
また、上記に説明した画像生成装置を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、実行処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
【０１２０】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１２１】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ−ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１２２】
１００…画像生成装置、１１０…算出部、１２０…記憶部、１３０…操作部、１４０…制御部、１５０…表示部、２００…被写体、３００…カメラ、３１０…前方クリップ面、３２０…後方クリップ面、３３０…視錐台、４００…カメラパス、５００…単位領域
【図１】
2014044596.tif 000009
【図３】
2014044596.tif 000010
【図６】
2014044596.tif 000011
【図８】
2014044596.tif 000012
【図９】
2014044596.tif 000013
【図１０】
2014044596.tif 000014
【図１１】
2014044596.tif 000015
【図１２】
2014044596.tif 000016
【図１４】
2014044596.tif 000017
【図１６】
2014044596.tif 000018
【図１７】
2014044596.tif 000019
【図１８】
2014044596.tif 000020
【図１９】
2014044596.tif 000021
【図２０】
2014044596.tif 000022
【図２】
2014044596.tif 000023
【図４】
2014044596.tif 000024
【図５】
2014044596.tif 000025
【図７】
2014044596.tif 000026
【図１３】
2014044596.tif 000027
【図１５】
2014044596.tif 000028