(57)【要約】  情報処理装置（１００）は、ＣＰＵ（１）により、特定の機能を実現するための情報処理が行われるとともに、全体的な制御が行われる装置である。情報処理装置（１００）では、描画回路（２）が、実行開始命令を受信すると、ＶＲＡＭ（３）に記憶した、静止画を描画する命令の集合であるディスプレイリスト（３１）を実行して、静止画を描画する。静止画が描画されると、ＣＰＵ（１）によりＶＲＡＭ（３）が記憶したディスプレイリスト（３１）を書き換え、実行開始命令を描画回路（２）へ送信する。これにより、情報処理装置（１００）は、アニメーションを表示する。
2015083279.tif 000002
【特許請求の範囲】
【請求項１】
処理装置により情報処理を行う情報処理装置であって、複数の静止画を順に描画することにより実現されるアニメーションを表示する機能を有する情報処理装置であり、
１つの静止画を描画する命令の集合であるディスプレイリストを記憶する記憶装置と、
実行開始命令を受信すると、前記記憶装置によって記憶されたディスプレイリストを実行して、静止画を描画する描画回路と
を備え、
前記処理装置は、前記描画回路によって静止画が描画されると、前記ディスプレイリストを書き換え、新たな実行開始命令を前記描画回路へ送信する
ことを特徴とする情報処理装置。
【請求項２】
前記ディスプレイリストは、図形を描画するサブルーチンと、前記サブルーチンを呼び出す呼出命令と、前記サブルーチンによって描画される図形の属性を指定する属性命令とを含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記属性命令は、前記図形の位置と姿勢と大きさと色との少なくともいずれかの属性を指定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記処理装置は、前記描画回路によって静止画が描画されると、前記サブルーチンと前記呼出命令と前記属性命令との少なくともいずれかを書き換える
ことを特徴とする請求項２に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置におけるアニメーション描画技術に関する。
【背景技術】
【０００２】
産業用機器や基盤設備機器等のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ，処理装置の一例）によって特定の情報処理を行う情報処理装置では、以前は、単純なＨＭＩ（Ｈｕｍａｎ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｒｆａｃｅ）が用いられていた。しかし、最近は、情報処理装置では、アニメーションが使用されることが増えている。【０００３】
アニメーションは、表示されているボタンや絵等、画面を構成する部品の位置やサイズ、色といった属性が少しずつ異なる複数の静止画を順に描画することで実現される。アニメーションを滑らかに見せるためには、３０ｆｐｓ（ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）程度以上の速度で描画を実行する必要がある。【０００４】
しかし、産業機器や基盤設備機器のように用途が限定された情報処理装置は、必要最低限の性能しか持たないため、３０ｆｐｓ以上の速度で描画を実行することは困難である。
そのため、このような情報処理装置では、アニメーションを実現するために専用の描画回路を搭載することが多い。しかし、描画回路がアニメーションを実現するための全ての処理を実行する場合、回路規模が大きくなり、コストが上昇してしまう。反対に、描画回路の回路規模を小さくし、一部の処理をＣＰＵで実行する場合、ＣＰＵの負荷が大きくなり、描画以外の処理を圧迫してしまう。【０００５】
特許文献１には、ＣＰＵの負荷を小さく抑えつつ、描画回路の回路規模を小さくして、アニメーションを実現する技術についての記載がある。
特許文献１に記載された技術では、画面を構成する部品であるスプライト画像の集合と、各スプライト画像を描画する位置及び大きさを表すスプライト属性と、スプライト画像を描画する手順を記録したアニメーション実行プログラムとを用意しておく。そして、描画回路がアニメーション実行プログラムを解釈し、スプライト属性を参照してスプライト画像を描画する。一方で、ＣＰＵは、経過時間に応じてスプライト属性を書き換える処理だけを実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０１８２９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載された技術では、アニメーション実行プログラムが固定されているため、アニメーション表現に制限がある。
例えば、スプライト画像を描画する順を変更できないため、重なった位置にスプライト画像を描画する場合に、スプライト画像の配置の前後関係を変更することができない。アニメーションの途中でスプライト画像を別のスプライト画像に置き換えたり、スプライト画像の数を増減したりすることもできない。スプライト画像も予め定められているため、アニメーションの進行に応じて一部の画像を変更することもできない。スプライト画像がラスタ画像であるため、拡大すると品質が低下してしまう。【０００８】
この発明は、ＣＰＵ負荷を小さく抑えつつ、描画回路の回路規模を小さくして、柔軟な表現が可能なアニメーションを実現することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る情報処理装置は、
処理装置により情報処理を行う情報処理装置であって、複数の静止画を順に描画することにより実現されるアニメーションを表示する機能を有する情報処理装置であり、
１つの静止画を描画する命令の集合であるディスプレイリストを記憶する記憶装置と、
実行開始命令を受信すると、前記記憶装置によって記憶されたディスプレイリストを実行して、静止画を描画する描画回路と
を備え、
前記処理装置は、前記描画回路によって静止画が描画されると、前記ディスプレイリストを書き換え、新たな実行開始命令を前記描画回路へ送信する
ことを特徴とする。
【発明の効果】
【００１０】
この発明に係る情報処理装置では、描画回路は、ディスプレイリストを実行して静止画を描画するだけであるため、回路規模が小さい。処理装置は、ディスプレイリストを書き換えるだけであるため、負荷が小さい。また、静止画を描画する命令の集合であるディスプレイリストを静止画毎に書き換えることにより、柔軟な表現が可能である。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る情報処理装置１００の構成図。
【図２】実施の形態１に係る情報処理装置１００のアニメーション描画処理を示すフローチャート。
【図３】ディスプレイリスト３１を示す図。
【図４】サブルーチンＸで描画される図形を示す図。
【図５】サブルーチンＹで描画される図形を示す図。
【図６】サブルーチンＸの各命令を示す図。
【図７】サブルーチンＸの説明図。
【図８】図３に示すディスプレイリスト３１によって描画される出力画像３２を示す図。
【図９】書き換えられたディスプレイリスト３１を示す図。
【図１０】図９に示すディスプレイリスト３１によって描画される出力画像３２を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１は、実施の形態１に係る情報処理装置１００の構成図である。
情報処理装置１００は、産業用機器や基盤設備機器等であり、特定の機能を有している。また、特定の機能をサポートするため等に、アニメーションを描画する機能を有している。
情報処理装置１００は、ＣＰＵ１、描画回路２、ＶＲＡＭ３（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、出力部４を備える。
【００１３】
ＣＰＵ１は、情報処理装置１００が有する特定の機能を実現するための情報処理や、情報処理装置１００の全体的な制御を行う。
ＣＰＵ１は、アニメーションを描画する機能のうち、静止画を描画する命令の集合であるディスプレイリスト３１をＶＲＡＭ３に記憶し、１フレーム毎（静止画毎）にディスプレイリスト３１の一部を書き換える処理を行う。また、ＣＰＵ１は、描画回路２にディスプレイリスト３１の実行開始命令を送信する。
【００１４】
描画回路２は、ＶＲＡＭ３に記憶されたディスプレイリスト３１を実行して静止画である出力画像３２を描画し、描画した出力画像３２をＶＲＡＭ３に出力する。
描画回路２は、ディスプレイリスト実行部２１、描画部２２を備える。ディスプレイリスト実行部２１は、ディスプレイリスト３１を実行して、描画用の命令やデータを出力する。描画部２２は、ディスプレイリスト実行部２１が出力した命令やデータに基づき、出力画像３２を描画して、描画した出力画像３２をＶＲＡＭ３に出力する。
【００１５】
ＶＲＡＭ３は、ディスプレイリスト３１と、出力画像３２とを記憶する記憶装置である。
【００１６】
出力部４は、ＶＲＡＭ３に出力された出力画像３２をＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の表示装置に出力する。
【００１７】
図２は、実施の形態１に係る情報処理装置１００のアニメーション描画処理を示すフローチャートである。
まず、ＣＰＵ１は、アニメーションの最初のフレームの描画内容を記述したディスプレイリスト３１を生成し、又は、何らかの記憶装置から取得して、ＶＲＡＭ３に記憶する（Ｓ１）。そして、ＣＰＵ１は、描画回路２にディスプレイリスト３１の実行開始命令を送信する（Ｓ２）。
【００１８】
描画回路２のディスプレイリスト実行部２１は、実行開始命令を受信すると、ＶＲＡＭ３に記憶されたディスプレイリスト３１の命令を順に実行して、描画用の命令やデータを出力する（Ｓ３）。描画回路２の描画部２２は、出力された命令やデータに基づき、出力画像３２を描画して、描画した出力画像３２をＶＲＡＭ３に出力する（Ｓ４）。
出力部４は、ＶＲＡＭ３に出力された出力画像３２を表示装置に出力する（Ｓ５）。
【００１９】
ＣＰＵ１は、次のフレームがあるか否かを判定する（Ｓ６）。
次のフレームがある場合（Ｓ６で“ある”）、ＣＰＵ１は、次のフレームの描画内容を記述する命令に、ＶＲＡＭ３に記憶されたディスプレイリスト３１を書き換える（Ｓ７）。そして、ＣＰＵ１は、処理をＳ２に戻し、描画回路２にディスプレイリスト３１の実行開始命令を送信する。
一方、次のフレームがない場合（Ｓ６で“ない”）、ＣＰＵ１は、アニメーション描画処理を終了する。
【００２０】
図３は、ディスプレイリスト３１を示す図である。
ディスプレイリスト３１は、描画回路２が解釈可能な命令を順に並べたものである。ディスプレイリスト３１は、少なくとも画面を構成する図形を描画する命令群であるサブルーチンと、サブルーチンを呼び出す呼出命令と、サブルーチンによって描画される図形の位置姿勢等の属性を指定する属性命令と、ディスプレイリスト３１の終了を示す終了命令とを含む。
ディスプレイリスト３１は、属性命令の次に呼出命令が配置され、呼出命令よりも後に呼出命令で呼び出されるサブルーチンが配置される。そして、最後の呼出命令の後に終了命令が配置される。
【００２１】
図３に示すディスプレイリスト３１では、アドレスＡ０に、回転、拡大縮小、平行移動等を同時に指定できる行列設定命令（属性命令の一例）が配置され、アドレスＡ１にアドレスＡ５に配置されたサブルーチンを呼び出す呼出命令が配置されている。さらに、アドレスＡ２には、再び、行列設定命令が配置され、アドレスＡ３にアドレスＡ６に配置されたサブルーチンを呼び出す呼出命令が配置されている。そして、アドレスＡ４には、終了命令が配置されている。
【００２２】
ここでは、サブルーチンＸは図４に示す矩形を描画するサブルーチンであり、サブルーチンＹは図５に示す図形を描画するサブルーチンであるとする。
【００２３】
図６は、サブルーチンＸの命令を示す図である。図７は、サブルーチンＸの説明図である。
アドレスＡ５０からアドレスＡ５４までには、描画する矩形の各点１〜４の位置を指定する命令が配置されている。アドレスＡ５５には、描画する線の太さを指定する命令が配置され、アドレスＡ５６には、描画する線の色を指定する命令が配置されている。アドレスＡ５７には、アドレスＡ５０からアドレスＡ５４までで指定した各点の間（点１と点２の間、点２と点３の間、点３と点４の間、点４と点１の間）を、アドレスＡ５５，Ａ５６で指定した線で結ぶ命令が配置されている。アドレス５８には、サブルーチンの呼び出し元に戻るリターン命令が配置されている。
【００２４】
サブルーチンＹについても、サブルーチンＸと同様に、まず各点の位置を指定する命令が配置され、その後に描画する線の太さ及び色を指定する命令が配置され、各点間を線で結ぶ命令が配置され、リターン命令が配置される。
【００２５】
情報処理装置１００の動作例を説明する。
ＣＰＵ１は、アニメーションの１フレーム目の描画内容を示すディスプレイリスト３１をＶＲＡＭ３に記憶した後（Ｓ１）、ディスプレイリスト３１の実行開始命令を描画回路２に送信する（Ｓ２）。ここでは、図３に示すディスプレイリスト３１がＶＲＡＭ３に記憶されたものとする。
【００２６】
すると、ディスプレイリスト実行部２１は、ディスプレイリスト３１を順に実行して描画用の命令やデータを出力し（Ｓ３）、描画部２２は、出力された命令やデータに基づき、出力画像３２を描画して、描画した出力画像３２をＶＲＡＭ３に出力する（Ｓ４）。ここでは、図８に示す出力画像３２がＶＲＡＭ３に出力されたものとする。
具体的には、ディスプレイリスト実行部２１は、まず図３に示すディスプレイリスト３１のアドレスＡ０の行列設定命令を読み込み、行列Ｍ０を出力する。次に、ディスプレイリスト実行部２１は、アドレスＡ１の呼出命令を読み込み、呼出命令に従いアドレスＡ５のサブルーチンＸへ移動する。そして、ディスプレイリスト実行部２１は、図６に示すアドレスＡ５０からアドレスＡ５６までを順に読み込み、各点の位置と、線の太さ及び色とを出力し、さらにアドレスＡ５７を読み込み、直線を描画する命令を出力する。
このとき、描画部２２は、アドレスＡ５０〜Ａ５４で指定された点の座標に行列Ｍ０で指定された回転、拡大縮小、平行移動等を作用させて各点の位置を決定し、アドレスＡ５５，Ａ５６で指定された太さ及び色の線で、決定した各点をつないだ絵を描く。
続いて、ディスプレイリスト実行部２１は、アドレスＡ５８のリターン命令でアドレスＡ２に戻り、アドレスＡ３の行列設定命令の読み込み、サブルーチンＹの実行を行い、命令及びデータを出力する。このとき、描画部２２は、サブルーチンＹで指定された点の座標に、アドレスＡ３の行列Ｍ１で指定された回転、拡大縮小、平行移動等を作用させて各点の位置を決定し、サブルーチンＹで指定された太さ及び色の線で、決定した各点をつないだ絵を描く。
【００２７】
そして、出力部４は、ＶＲＡＭ３に出力された出力画像３２を表示装置に出力する（Ｓ５）。
【００２８】
ＣＰＵ１は、１フレーム目の静止画が表示装置に出力されると、次のフレームがあるか否かを判定する（Ｓ６）。ここでは、次のフレームがあるとする。
次のフレームがあるので、ＣＰＵ１は、ＶＲＡＭ３に記憶されたディスプレイリスト３１の一部を書き換えた後（Ｓ７）、ディスプレイリスト３１の実行開始命令を描画回路２に送信する（Ｓ２）。ここでは、図９に示すように、図３に示すディスプレイリスト３１のアドレスＡ０に配置された行列Ｍ０がＭ０’に書き換えられ、アドレスＡ２に配置された行列Ｍ１が行列Ｍ１’に書き換えられたとする。
【００２９】
すると、１フレーム目の描画時と同様に、ディスプレイリスト実行部２１は、ディスプレイリスト３１を順に実行して描画用の命令やデータを出力し（Ｓ３）、描画部２２は、出力された命令やデータに基づき、出力画像３２を描画して、描画した出力画像３２をＶＲＡＭ３に出力する（Ｓ４）。ここでは、図１０に示す出力画像３２がＶＲＡＭ３に出力されたものとする。図１０では、描画されている図形は図８と同じであるが、行列Ｍ０，Ｍ１が行列Ｍ０’，Ｍ１’に書き換えられているため、描画されている位置が図８と異なっている。
【００３０】
そして、出力部４は、ＶＲＡＭ３に出力された出力画像３２を表示装置に出力する（Ｓ５）。
【００３１】
以降、フレームがなくなるまで、ディスプレイリスト３１の書き換えと（Ｓ７）、書き換えられたディスプレイリスト３１に基づく描画処理と（Ｓ２〜Ｓ５）とを繰り返す。これにより、出力画像３２の内容が逐次変化し、アニメーション表示が実現される。
【００３２】
以上のように、実施の形態１に係る情報処理装置１００では、描画回路２はディスプレイリスト３１を実行して静止画を描画するだけであるため、回路規模を小さい。ＣＰＵ１は、ディスプレイリスト３１を書き換えるだけであるため、負荷が小さい。
【００３３】
また、静止画を描画する命令の集合であるディスプレイリスト３１を静止画毎に書き換えることにより、描画する図形の位置、姿勢だけでなく、図形を描画する順、図形の出現及び削除、描画する図形の部分的な変化等、表現の幅の広いアニメーションを実現できる。
【００３４】
さらに、描画される図形は点座標の羅列で構成されたベクタ形式である。そのため、拡縮、回転しても描画結果の画質が劣化しない。
【００３５】
なお、上記説明では、図形を描画する命令として線を描画する命令の例を示した。しかし、図形を描画する命令は、線を描画する命令だけでなく、ディスプレイリスト３１で実行できる任意の命令であってもよい。
例えば、ラスタ形式のスプライト画像を描画する命令や、点を線で結んだ領域を塗りつぶす命令等であってもよい。塗りつぶすのは単色だけでなく、不透明度を持つ配色、グラデーションになっている配色、特定のパターン、特定の画像で塗りつぶしてもよい。また、点を結ぶ線は、直線だけでなく、ベジェ曲線やスプライン曲線等の任意の曲線を用いて接続してもよい。その他、ラスタオペレーションを指定するものや、シザー領域を指定するもの等、描画内容に影響を及ぼす他の命令であってもよい。
【００３６】
また、上記説明では、呼出命令の前に、属性命令の例である行列設定命令を設定する例を示した。しかし、呼出命令の前には、行列設定命令以外の任意の属性命令を配置してもよい。
例えば、単純に位置のみを指定する命令、図形全体に特定の色を加算あるいは積算する命令等を配置してもよい。
【００３７】
また、上記説明では、ディスプレイリスト３１は、呼出命令で移動した先のサブルーチンを実行する例を説明した。しかし、ディスプレイリスト３１は、呼出命令で呼び出したサブルーチンに、さらに呼出命令を配置したネスト構造を有していてもよい。
例えば、ディスプレイリスト３１は、人物を描画するサブルーチンが、いくつかの行列設定命令と呼出命令とを持ち、それぞれの呼出命令で呼び出されるサブルーチンが手や足等を描画するような構成であってもよい。
【００３８】
また、上記説明では、Ｓ７でＣＰＵ１は、ディスプレイリスト３１のうち行列設定命令を書き換える例を説明した。しかし、ＣＰＵ１は、ディスプレイリスト３１の行列設定命令以外の任意の命令を書き換えてもよい。
例えば、ＣＰＵ１は、ディスプレイリスト３１の呼出命令を書き換えてもよい。図３において、アドレスＡ１の呼出命令の移動先をアドレスＡ６へ、アドレスＡ３の呼出命令の移動先をアドレスＡ５に書き換えれば、アニメーション途中で図形の描画順を入れ替えることができる。これにより、図形が重なった場合の配置の前後関係を入れ替えることができる。
また、例えば、呼び出されるサブルーチンを別のサブルーチンに書き換えてもよい。これにより、描画される図形を別の図形に変更することができる。また、呼び出されるサブルーチンを何もしないＮＯＰ命令に書き換えてもよいし、反対に、呼び出されるサブルーチンとして予めＮＯＰ命令を配置しておき、ＮＯＰ命令を図形を描画するサブルーチンに書き換えてもよい。これにより、アニメーション途中で図形を削除したり、出現させたりすることができる。
また、例えば、呼び出されるサブルーチンの一部の内容を書き換えてもよい。例えば、図６に示すサブルーチンＸのうち、アドレスＡ５１を書き換えることで図形の一部を変形させることができるし、アドレスＡ５５やアドレスＡ５６を書き換えることで、線の太さや色を変化させることができる。
【００３９】
また、ＣＰＵ１は、前記サブルーチンと前記呼出命令と前記属性命令とのうちいずれかのみを書き換えるとしてもよい。これにより、アニメーションの表現の幅は狭くなるが、ＣＰＵ１の負荷をより小さくすることができる。
【符号の説明】
【００４０】
１  ＣＰＵ、２  描画回路、２１  ディスプレイリスト実行部、２２  描画部、３  ＶＲＡＭ、３１  ディスプレイリスト、３２  出力画像、４  出力部、１００  情報処理装置。
【図１】
2015083279.tif 000003
【図２】
2015083279.tif 000004
【図３】
2015083279.tif 000005
【図４】
2015083279.tif 000006
【図５】
2015083279.tif 000007
【図６】
2015083279.tif 000008
【図７】
2015083279.tif 000009
【図８】
2015083279.tif 000010
【図９】
2015083279.tif 000011
【図１０】
2015083279.tif 000012
【手続補正書】
【提出日】平成27年10月27日(2015.10.27)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
この発明に係る情報処理装置は、
処理装置により情報処理を行う情報処理装置であって、複数の静止画を順に描画することにより実現されるアニメーションを表示する機能を有する情報処理装置であり、
１つの静止画を描画する命令の集合であるディスプレイリストを記憶する記憶装置と、
実行開始命令を受信すると、前記記憶装置によって記憶されたディスプレイリストを実行して、静止画を描画する描画回路と
を備え、
前記処理装置は、前記描画回路によって静止画が描画されると、前記ディスプレイリストの一部のみを書き換え、新たな実行開始命令を前記描画回路へ送信する
ことを特徴とする。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理装置により情報処理を行う情報処理装置であって、複数の静止画を順に描画することにより実現されるアニメーションを表示する機能を有する情報処理装置であり、
１つの静止画を描画する命令の集合であるディスプレイリストを記憶する記憶装置と、
実行開始命令を受信すると、前記記憶装置によって記憶されたディスプレイリストを実行して、静止画を描画する描画回路と
を備え、
前記処理装置は、前記描画回路によって静止画が描画されると、前記ディスプレイリストの一部のみを書き換え、新たな実行開始命令を前記描画回路へ送信する
ことを特徴とする情報処理装置。
【請求項２】
ディスプレイリストは、１つの静止画を構成する図形の位置、姿勢、描画順、出現及び削除、部分的な変化を表現する命令の集合であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ディスプレイリストは、図形を描画するサブルーチンと、前記サブルーチンを呼び出す呼出命令と、前記サブルーチンによって描画される図形の属性を指定する属性命令とを含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記属性命令は、前記図形の位置と姿勢と大きさと色との少なくともいずれかの属性を指定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記処理装置は、前記描画回路によって静止画が描画されると、前記サブルーチンと前記呼出命令と前記属性命令との少なくともいずれかを書き換える
ことを特徴とする請求項３に記載の情報処理装置。
【国際調査報告】
2015083279.tif 000013
2015083279.tif 000014