(57)【要約】【課題】動画やグラフィックスを扱う複数の独立したアプリケーションが、一つの表示装置を共有してウインドウを制御可能にし、更に一つのウインドウにグラフィックスと動画を同時に表示できるようにする。【解決手段】ウインドウに描画された動画領域をグラフィックスフレームバッファ上でクリッピングする。また、ウインドウ階層と動画階層を管理する手段を設け、ウインドウ階層位置と動画階層位置を関連付けて更新することで、複数の独立したアプリケーションが動作する環境でも、ウインドウ制御を可能にする。【選択図】図１
2015141706.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理装置であって、
ウインドウ階層位置を管理するウインドウ管理手段と、
前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御手段と、
動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理手段と、
前記グラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力手段と、
前記動画階層管理手段が決定した前記階層位置の前記動画フレームバッファへ格納する動画出力手段と、前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成手段とを、
有することを特徴とする画像処理装置。
【請求項２】
アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理装置であって、
前記アプリケーションからウインドウ生成命令を受け取り、ウインドウ情報を生成して生成順に記憶することでウインドウ階層位置を管理するウインドウ管理手段と、
前記アプリケーションから入力動画情報取得要求を受け取り、前記入力動画と前記動画処理経路を関連付けて管理する動画管理手段と、
前記アプリケーションから、前記ウインドウ情報と描画命令を受け取り、前記ウインドウ情報と関連付けて前記描画命令を蓄積するための描画命令リストを生成し、前記描画命令リストから前記動画処理経路を指定して動画を描画するための動画描画命令を取り出して、前記ウインドウ情報と関連付けて前記動画描画命令を蓄積するための動画描画履歴リストを生成し、更に前記アプリケーションから前記ウインドウ情報と描画実行命令を受け取り、前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御手段と、
前記描画制御手段から前記描画命令リストを取得し、前記動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理手段と、
前記描画制御手段から前記グラフィックス描画実行指示を受けて前記描画命令リストを取得し、グラフィックスを描画するためのグラフィックス描画命令を実行して前記グラフィックスフレームバッファに前記グラフィックス出力を格納し、前記動画描画命令を実行してグラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力手段と、
前記描画制御手段から前記動画描画実行指示を受けて前記動画描画履歴リストを取得し、前記動画処理経路の階層位置の動画に対して前記動画描画命令を実行して前記動画出力を生成し、前記動画階層管理手段が決定した前記階層位置の前記動画フレームバッファへ格納する動画出力手段と、
前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成手段とを、
有することを特徴とする画像処理装置。
【請求項３】
前記ウインドウ生成命令は、前記グラフィックスフレームバッファの座標におけるウインドウ矩形領域の幅、高さ、及び原点の座標を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記ウインドウ管理手段は、前記ウインドウ生成命令に含まれる前記ウインドウ矩形領域の幅と高さで定まるウインドウバッファを確保し、ウインドウ識別子、ウインドウ階層位置、前記ウインドウバッファ、及び前記ウインドウ生成命令を含むウインドウ情報を生成し、それらを生成順にリンクリストとして管理することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記動画管理手段は、前記動画処理経路の取得要求を受け取り、前記入力動画、前記動画処理経路、及び前記入力動画のフォーマットを表わす動画フォーマット情報を含む動画処理経路の管理情報を作成して管理することを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記動画描画命令は、少なくともアフィン変換を要求するコマンドと、前記動画処理経路の管理情報と、を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記動画階層管理手段は、前記入力動画情報と、前記ウインドウ情報と、前記動画処理経路の階層位置を含む動画階層情報とを生成し、それらをリンクリストで管理することを特徴とする請求項２に記載の画像処理装置。
【請求項８】
前記ウインドウ管理手段は、前記アプリケーションから前記ウインドウを廃棄するためのウインドウ廃棄命令を受け取り、ウインドウ情報リストから前記ウインドウ情報を削除し、前記描画制御手段に再描画を指示することを特徴とする請求項２に記載の画像処理装置。
【請求項９】
前記描画制御手段は、前記動画描画履歴リストをウインドウ情報へ格納することを特徴とする請求項２に記載の画像処理装置。
【請求項１０】
前記描画制御手段は、前記ウインドウ管理手段から再描画の指示を受け取ると、前記ウインドウ管理手段から廃棄対象となっている前記ウインドウ情報を取得し、前記グラフィックス出力手段へウインドウバッファを転送する指示を行い、前記ウインドウ情報の前記動画描画履歴リストから前記入力動画情報を取得し、取得した全ての前記入力動画情報と前記ウインドウ情報を前記動画階層管理手段へ渡して動画階層情報の削除を指示し、更に、前記動画出力手段へ動画再描画を指示することを特徴とする請求項２に記載の画像処理装置。
【請求項１１】
前記グラフィックスフレームバッファは、少なくとも２面以上のマルチバッファで構成されることを特徴とする請求項１に記載の画像処理装置。
【請求項１２】
前記動画フレームバッファは、少なくとも２面以上のマルチバッファで構成されることを特徴とする請求項２に記載の画像処理装置。
【請求項１３】
前記グラフィックス出力手段は、前記描画制御手段から前記グラフィックス描画実行指示を受け取ると、
前記描画制御手段から前記ウインドウ情報及び前記描画命令リストを取得し、
前記描画命令リストに含まれる前記描画命令を逐次実行し、前記描画命令が前記グラフィックス描画命令であった時には、前記グラフィックス描画命令を実行してグラフィックスオブジェクトを前記ウインドウバッファへ出力し、前記描画命令が前記動画描画命令であった時には、前記動画描画命令を実行して得られる前記動画出力の出力領域を計算して、前記ウインドウバッファをクリッピングし、
前記ウインドウ管理手段からウインドウ情報リストを取得し、
前記ウインドウ情報リストの前記ウインドウ情報に含まれる前記ウインドウバッファを、前記ウインドウ階層位置の順に透過合成して、前記グラフィックスフレームバッファを構成するバックバッファへ出力し、
前記バックバッファのアドレス及び前記グラフィックス出力の座標領域を記憶し、
前記レイヤ合成手段へグラフィックスレイヤ更新を指示する、
ことを特徴とする請求項１０に記載の画像処理装置。
【請求項１４】
前記グラフィックス出力手段は、前記描画制御手段からウインドウ転送指示を受け取ると、前記ウインドウ情報に含まれる前記ウインドウバッファを、前記ウインドウ階層位置の順に透過合成して、前記グラフィックスフレームバッファを構成するバックバッファへ出力し、前記レイヤ合成手段へグラフィックスレイヤ更新を指示する、
ことを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理方法であって、
ウインドウ階層位置を管理するウインドウ管理工程と、
前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御工程と、
動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理工程と、
前記グラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力工程と、
前記動画階層管理工程が決定した前記階層位置の前記動画フレームバッファへ格納する動画出力工程と、前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成工程とを、
有することを特徴とする画像処理方法。
【請求項１６】
アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理方法であって、
前記アプリケーションからウインドウ生成命令を受け取り、ウインドウ情報を生成して生成順に記憶することでウインドウ階層位置を管理するウインドウ管理工程と、
前記アプリケーションからウインドウバッファへ入力動画情報取得要求を受け取り、前記入力動画と前記動画処理経路を関連付けて管理する動画管理工程と、
前記アプリケーションから、前記ウインドウ情報と描画命令を受け取り、前記ウインドウ情報と関連付けて前記描画命令を蓄積するための描画命令リストを生成し、前記描画命令リストから前記動画処理経路を指定して動画を描画するための動画描画命令を取り出して、前記ウインドウ情報と関連付けて前記動画描画命令を蓄積するための動画描画履歴リストを生成し、更に前記アプリケーションから前記ウインドウ情報と描画実行命令を受け取り、前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御工程と、
前記描画制御工程から前記描画命令リストを取得し、前記動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理工程と、
前記描画制御工程から前記グラフィックス描画実行指示を受けて前記描画命令リストを取得し、グラフィックスを描画するためのグラフィックス描画命令を実行して前記グラフィックスフレームバッファに前記グラフィックス出力を格納し、前記動画描画命令を実行してグラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力工程と、
前記描画制御工程から前記動画描画実行指示を受けて前記動画描画履歴リストを取得し、前記動画処理経路の階層位置の動画に対して前記動画描画命令を実行して前記動画出力を生成し、前記動画階層管理工程において決定した前記階層位置の前記動画フレームバッファへ格納する動画出力工程と、
前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成工程とを、
有することを特徴とする画像処理方法。
【請求項１７】
アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理方法をコンピュータに実行させるプログラムであって、
ウインドウ階層位置を管理するウインドウ管理工程と、
前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御工程と、
動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理工程と、
前記グラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力工程と、
前記動画階層管理工程が決定した前記階層位置の前記動画フレームバッファへ格納する動画出力工程と、前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成工程とを、
コンピュータに実行させることを特徴とするプログラム。
【請求項１８】
アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理方法をコンピュータに実行させるプログラムであって、
前記アプリケーションからウインドウ生成命令を受け取り、ウインドウ情報を生成して生成順に記憶することでウインドウ階層位置を管理するウインドウ管理工程と、
前記アプリケーションから入力動画情報取得要求を受け取り、前記入力動画と前記動画処理経路を関連付けて管理する動画管理工程と、
前記アプリケーションから、前記ウインドウ情報と描画命令を受け取り、前記ウインドウ情報と関連付けて前記描画命令を蓄積するための描画命令リストを生成し、前記描画命令リストから前記動画処理経路を指定して動画を描画するための動画描画命令を取り出して、前記ウインドウ情報と関連付けて前記動画描画命令を蓄積するための動画描画履歴リストを生成し、更に前記アプリケーションから前記ウインドウ情報と描画実行命令を受け取り、前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御工程と、
前記描画制御工程から前記描画命令リストを取得し、前記動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理工程と、
前記描画制御工程から前記グラフィックス描画実行指示を受けて前記描画命令リストを取得し、グラフィックスを描画するためのグラフィックス描画命令を実行して前記グラフィックスフレームバッファに前記グラフィックス出力を格納し、前記動画描画命令を実行してグラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力工程と、
前記描画制御工程から前記動画描画実行指示を受けて前記動画描画履歴リストを取得し、前記動画処理経路の階層位置の動画に対して前記動画描画命令を実行して前記動画出力を生成し、前記動画階層管理工程において決定した前記階層位置の前記動画フレームバッファへ格納する動画出力工程と、
前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成工程とを、
コンピュータに実行させることを特徴とするプログラム。
【請求項１９】
請求項１７または１８に記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置及び画像処理方法に関し、特に、動画とグラフィックスを合成して表示するために用いて好適な技術に関する。
【背景技術】
【０００２】
近年では、コンピュータのみでなく家電機器などの組み込み製品でも、動画とグラフィックスを同じ機器上で処理して単一の表示装置へ表示するために、動画とグラフィックスを合成する合成装置が搭載されている。動画とグラフィックスの合成装置においては、要求されるフレームレートの違いから、動画とグラフィックスが異なる処理経路を通って終段で合成される構成を用いるのが一般的である。
【０００３】
通常、グラフィックス描画の結果はグラフィックスレンダラなどから構成されたグラフィックス処理系を介してグラフィックスフレームバッファに書き込まれる。一方、動画は解像度変換やフィルタから構成された動画処理系を介してグラフィックスとは異なる動画フレームバッファに格納される。そして、グラフィックスフレームバッファと動画フレームバッファが合成されて出力画像を形成する。
【０００４】
前述した構成を用いた動画とグラフィックスの合成装置として、例えば特許文献１にて画像処理装置が提案されている。この従来技術では、動画の出力形状及び出力座標を指示する動画描画命令を前述した動画処理系で処理して、動画を動画フレームバッファの指定位置へ指定された形状で出力する。
【０００５】
それと並行して、動画描画命令が指示する出力形状と出力座標を前述したグラフィックス処理系へ与え、グラフィックスフレームバッファ上の該当領域を透過に設定する。そして動画フレームバッファ上にグラフィックスフレームバッファを透過合成することにより、動画とグラフィックスの同時表示を可能にしている。
【０００６】
一方、近年のスマートフォーンなどに代表されるマルチメディア機器では、動画やグラフィックスを扱うアプリケーションが複数同時に動作し、それらが一つの表示装置を共有する必要性が増してきている。
【０００７】
前述した動画とグラフィックスの合成装置とウインドウシステムを連携させて、複数のアプリケーションが表示装置を共有することを可能にする技術として、例えば特許文献２にてマルチウインドウ表示装置が提案されている。この技術では、動画ウインドウと呼ばれる動画専用ウインドウの概念を導入し、そこに動画が張り付いているとみなす。動画ウインドウは動画ウインドウ階層ツリーによって、動画ウインドウ間の階層関係（z order）と矩形情報が管理される。
【０００８】
前述した動画処理系は矩形情報に基づいて動画を動画フレームバッファの該当位置へ出力する。そして、動画処理系の終段に接続された合成手段が、動画ウインドウ間の階層関係に基づいて各動画フレームバッファを合成して出力する。こうすることで、動画を扱う複数の独立したアプリケーションが、一つの表示装置を共有することが可能となる。
【０００９】
また、グラフィックスを表示するためのグラフィックスウインドウは、グラフィックスウインドウ階層ツリーによって、グラフィックスウインドウ間の階層関係（z order）と矩形情報が管理される。そして、前述したグラフィックス処理系の終段に接続された合成手段が、グラフィックスウインドウ間の階層関係に基づいて各グラフィックスフレームバッファを合成して出力する。こうすることで、グラフィックスを扱う複数の独立したアプリケーションが、一つの表示装置を共有することが可能となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−３０１２９３号公報
【特許文献２】特開平０５−０８０９６６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に示された画像処理装置では、ウインドウシステムとの連携が考慮されていないため、動画やグラフィックスを扱う複数の独立したアプリケーションが、一つの表示装置を共有することが困難であるという課題があった。
【００１２】
また、特許文献２に示されたマルチウインドウ表示装置では、グラフィックスウインドウと動画ウインドウが別々に管理されているため、双方のウインドウ間の階層関係を統合して管理することが困難であるという課題があった。
【００１３】
更に、グラフィックスウインドウ及び動画ウインドウがそれぞれグラフフィックス及び動画を唯一の描画対象としているため、一つのウインドウにグラフィックスと動画を同時に表示することができないという課題があった。
本発明は前述の問題点に鑑み、動画やグラフィックスを扱う複数の独立したアプリケーションが、一つの表示装置を共有してウインドウを制御可能にし、更に一つのウインドウにグラフィックスと動画を同時に表示できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明の画像処理装置は、アプリケーションの指示により、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力し、動画階層位置に従った順序で複数の動画出力を合成し、更にグラフィックス出力を透過合成して出力する画像処理装置であって、ウインドウ階層位置を管理するウインドウ管理手段と、前記グラフィックス出力を生成するためのグラフィックス描画実行指示と、前記動画出力を生成するための動画描画実行指示を行う描画制御手段と、動画描画命令の発生順に前記動画処理経路の階層位置を決定して記録する動画階層管理手段と、前記グラフィックスフレームバッファ上の動画出力領域をクリッピングするグラフィックス出力手段と、前記動画階層管理手段が決定した前記階層位置の前記動画フレームバッファへ格納する動画出力手段と、前記動画フレームバッファを前記階層位置順に合成し、更に前記グラフィックスフレームバッファを透過合成するレイヤ合成手段とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、動画とグラフィックスの階層関係の統合制御を可能とし、更に動画とグラフィックスを一つのウインドウ上に混在することを可能とすることで、グラフィックスユーザインターフェースの表現力を向上させる効果がある。
【図面の簡単な説明】
【００１６】
【図１】第１の実施形態をにおける画像処理装置の構成例を示すブロック図である。
【図２】第１の実施形態におけるウインドウ生成命令の一例を表わす図である。
【図３】グラフィックスフレームバッファにおけるウインドウ座標領域を表わす図である。
【図４】ウインドウ情報の一例を表わす図である。
【図５】ウインドウ情報リストの一例を表わす図である。
【図６】グラフィックス描画命令の一例を表わす図である。
【図７】動画描画命令の一例を表わす図である。
【図８】動画階層情報更新命令の一例を表わす図である。
【図９】動画階層情報の一例を表わす図である。
【図１０】動画階層情報リストの一例を表わす図である。
【図１１】グラフィックスレイヤ更新命令の一例を表わす図である。
【図１２】グラフィックスフレームバッファ上の読み出し領域を表わす図である。
【図１３】動画レイヤ合成更新命令の一例を示す図である。
【図１４】第１の実施形態における描画結果の一例を表わす図である。
【図１５】第１の実施形態における画像処理装置の全体動作を表わすフローチャートである。
【図１６】描画命令リストの一例を表わす図である。
【図１７】ウインドウ管理部が行うウインドウ生成処理を表すフローチャートである。
【図１８】動画管理部が行う入力動画情報取得処理を表すフローチャートである。
【図１９】描画制御部が行う描画命令蓄積処理を表すフローチャートである。
【図２０】描画制御部の内部構成の一例と、周辺を表すブロック図である。
【図２１】描画制御部が行う描画実行処理を表すフローチャートである。
【図２２】動画管理部が生成する入力動画情報の一例を示す図である。
【図２３】動画階層管理部が行う動画階層情報更新処理を表すフローチャートである。
【図２４】グラフィックス出力部が行うグラフィックス出力処理を表すフローチャートである。
【図２５】グラフィックス出力部の内部構成の一例と、周辺を表すブロック図である。
【図２６】動画出力部が行う動画出力処理を表すフローチャートである。
【図２７】動画出力部の内部構成の一例と、周辺を表すブロック図である。
【図２８】レイヤ合成部が行うグラフィックスレイヤ更新処理及び動画レイヤ更新処理を表すフローチャートである。
【図２９】第１の実施形態におけるウインドウ廃棄処理を表すフローチャートである。
【図３０】第１の実施形態におけるウインドウ再描画処理を表すフローチャートである。
【図３１】第２の実施形態における画像処理装置の構成例を表すブロック図である。
【図３２】第２の実施形態におけるウインドウ階層変更処理を表すフローチャートである。
【図３３】第２の実施形態における動画階層管理部が行う動画階層変更処理を表すフローチャートである。
【図３４】第３の実施形態における画像処理装置の構成を表すブロック図である。
【図３５】図１４で示した描画例において、Z=２のウインドウを動画ウインドウに設定した場合の描画結果を表わす図である。
【図３６】第３の実施形態におけるウインドウ生成命令の一例を表わす図である。
【発明を実施するための形態】
【００１７】
（第１の実施形態）
本発明の画像処理装置について、図１から図３０を用いて説明する。本実施形態の画像処理装置は、アプリケーションの指示で、複数の入力動画をそれぞれ異なる動画処理経路で処理して得られる動画出力を、それぞれ異なる動画フレームバッファに出力し、グラフィックス出力を単一のグラフィックスフレームバッファに出力する。
【００１８】
図１は、本発明の第１の実施形態の画像処理装置の構成例を表すブロック図である。図１において実線の矢印は制御または命令（指示）の流れを表しており、点線の矢印はデータの流れを表している。
図１において、１０１はアプリケーションであり、描画対象となるウインドウを生成するためのウインドウ生成命令を出力し、更にそのウインドウに対する描画命令群と描画実行命令を出力する。この描画命令群は、グラフィックスオブジェクトを描画するための複数のグラフィックス描画命令及び動画を描画するための複数の動画描画命令から構成されている。
【００１９】
アプリケーション１０１は、動画描画命令を生成する際に、描画対象となる入力動画を指定するために入力動画情報取得要求を出力する。また、生成されたウインドウを廃棄したいときは、ウインドウ廃棄命令を出力する。
【００２０】
１１７は動画管理部であり、アプリケーション１０１から入力動画情報取得要求を受け取り、指定された入力動画（１０８または１０９）を、空いている動画処理経路（１１８または１１９）に割り付ける。そして入力動画名、動画処理経路及び動画フォーマット情報を含む入力動画情報を作成し、管理情報として記憶すると共にアプリケーション１０１へ入力動画情報を返却する。
【００２１】
また、動画管理部１１７は、指定された入力動画（１０８または１０９）を、割り付けた動画処理経路（１１８または１１９）へ出力する。
１０８及び１０９は、それぞれ第２の入力動画及び第１の入力動画であり、任意の入力ソースから動画管理部１１７へ入力される。
１１８及び１１９は、それぞれ第２の動画処理経路及び第１の動画処理経路であり、動画管理部１１７が選択した入力動画（１０８または１０９）を動画出力部１１０に伝送する。
【００２２】
１０２はウインドウ管理部であり、アプリケーション１０１から出力されたウインドウ生成命令に従ってウインドウ情報を生成してウインドウ情報リストに追加する。このウインドウ情報リストへの追加順が、ウインドウ階層位置（ウインドウZ order）と等しくなる。
【００２３】
ウインドウ管理部１０２は、ウインドウの矩形領域と等しい大きさのウインドウバッファを取得し、上記ウインドウ情報に格納する。また、ウインドウ管理部１０２は、アプリケーション１０１からウインドウ廃棄命令を受け取ると、ウインドウ再描画命令と廃棄対象のウインドウ情報を描画制御部１０３へ出力する。
【００２４】
１０３は描画制御部であり、アプリケーション１０１から描画対象となるウインドウ情報と描画命令群を受け取る。そして、受け取った描画命令群をウインドウ情報と関連付けて逐次蓄積して描画命令リストを作成する。ここで描画命令が動画描画命令であった時は、そこに含まれる入力動画情報を取り出し、それとウインドウ情報を関連付けて、動画階層情報の追加を指示する動画階層情報更新命令を出力する。
【００２５】
また、描画制御部１０３がアプリケーション１０１から描画実行対象となるウインドウ情報と描画実行命令を受け取ると、描画対象外となっている動画を抽出する。そして、その入力動画情報とウインドウ情報を関連付けて、動画階層情報の削除を指示する動画階層情報更新命令を動画階層管理部１０４に出力する。
【００２６】
最後に、グラフィックス描画実行命令（グラフィックス描画実行指示）、描画命令リスト及びウインドウ情報をグラフィックス出力部１０５へ出力し、動画描画実行命令（動画描画実行指示）及びウインドウ情報を動画出力部１１０へ出力する。また、描画制御部１０３は、ウインドウ管理部１０２からウインドウ再描画命令と廃棄対象ウインドウ情報を受け取ると、ウインドウ情報に記録された入力動画情報とウインドウ情報を関連付けて、動画階層情報の削除を指示する動画階層情報更新命令を出力する。そしてウインドウ転送命令（ウインドウ転送指示）と、動画再描画命令を出力する。
【００２７】
１０４は動画階層管理部であり、描画制御部１０３から動画階層情報更新命令を受け取って動画階層管理処理を行う。そして、動画階層情報の追加指示であった場合は、入力動画情報とウインドウ情報を含む動画階層情報を新たに作成して、動画階層情報リストへ追加する。また、動画階層情報の削除指示であった場合は、動画階層情報リストから該当情報を検索して削除する。なお、動画階層情報リストへの追加順が動画階層位置（動画のZ order）と等しくなる。
【００２８】
１０５はグラフィックス出力部であり、描画制御部１０３からグラフィックス描画実行命令、ウインドウ情報及び描画命令リストを受け取り、描画命令リストに含まれた描画命令を逐次実行してグラフィックス描画を行う。まず、受け取ったウインドウ情報に格納されたウインドウバッファを取り出す。次に、描画命令リストに含まれた描画命令を逐次実行して、ウインドウバッファへの描画を行う。描画命令がグラフィックス描画命令である時には、命令に従ってグラフィックスオブジェクトを描画する。
【００２９】
一方、グラフィックス出力部１０５は、描画命令が動画描画命令である時には、命令に含まれる動画変形計算を実行して動画の出力領域を求め、ウインドウバッファ上の該当領域を透過に設定する。そして、ウインドウバッファへの描画が終了すると、ウインドウ管理部１０２からウインドウ情報リストを取得する。
【００３０】
次に、ウインドウ情報リストをウインドウZ orderの下側から走査して、ウインドウバッファの内容をグラフィックスフレームバッファ１０７のバックバッファへ透過合成していく。なお、グラフィックスフレームバッファ１０７はマルチバッファであり、グラフィックス出力部１０５の出力先は、レイヤ合成部１１５が現時点で読み込み対象としているバッファ以外のバッファ、即ちバックバッファである。
【００３１】
グラフィックス出力部１０５は、ウインドウ情報リストに含まれた全てのウインドウに対する処理が完了したら、グラフィックスフレームバッファの読み出し領域変更とバッファフリップを指示するグラフィックスレイヤ更新命令を出力する。また、描画制御部１０３からウインドウ転送命令を受け取り、ウインドウ情報リストを走査してバックバッファへの透過合成を行うために、前述と同じ処理を実行する。
【００３２】
１１０は、動画出力部であり、描画制御部１０３から動画描画実行命令及びウインドウ情報を受け取り、動画の変形処理を行う。そして、ウインドウ情報から動画描画履歴リストを取り出し、ここに含まれる動画描画命令を逐次実行する。動画描画命令の実行では、まず命令が対象としている動画処理経路を特定する。
【００３３】
この動画処理経路は、動画管理部１１７が動画出力部１１０への動画出力に用いる第１の動画処理経路１１９または第２の動画処理経路１１８の何れかを表している。次に特定した動画処理経路名を用いて、その動画の動画階層位置（動画のZ order）を動画階層管理部１０４から取得する。次に、動画階層位置に対応した動画レイヤを選択する。ここで選択される動画レイヤは第１の動画レイヤ１１３または第２の動画レイヤ１１１の何れかである。
【００３４】
動画出力部１１０は、選択した動画処理経路を転送されてくる動画データに動画描画命令で指示される変形処理を行い、選択した動画レイヤに含まれる動画フレームバッファへの出力を開始する。動画描画履歴リストに含まれる全ての動画描画命令を処理した後、各動画レイヤの動画フレームバッファにおける読み出し領域を含む動画レイヤ合成更新命令１３００を出力する。
【００３５】
一方、動画出力部１１０は、描画制御部１０３から、動画再描画命令を受け取る。この時、動画出力部１１０は、動画管理部１１７から、動画階層情報リストを取得して、そこに記録された動画描画命令を動画階層位置順に実行して、全ての動画を再描画する。
【００３６】
１１５はレイヤ合成部であり、下側から第１の動画レイヤ１１３、第２の動画レイヤ１１１の順序で合成し、更にグラフィックスレイヤ１０６を透過合成して合成出力１１６を生成する。レイヤ合成部１１５は、動画出力部１１０から受け取る動画レイヤ合成更新命令１３００から各動画レイヤの動画フレームバッファ（１１２及び１１４）の読み出し領域を決定する。
【００３７】
動画フレームバッファ（１１２及び１１４）は、２面以上のマルチバッファで構成され、レイヤ合成部１１５は、図示されていない同期信号に同期して各動画フレームバッファをフリップして前述した読み出し領域の動画データを合成する。一方、レイヤ合成部１１５は、グラフィックス出力部１０５からグラフィックスレイヤ更新命令を受け取り、グラフィックスレイヤ１０６のグラフィックスフレームバッファ１０７の読み出し領域を決定する。
【００３８】
グラフィックスフレームバッファ１０７は、２面以上のマルチバッファで構成されている。レイヤ合成部１１５はグラフィックスレイヤ更新命令に同期してグラフィックスフレームバッファ１０７をフリップし、前述した読み出し領域のグラフィックスデータを透過合成する。
【００３９】
図２は、アプリケーション１０１が出力するウインドウ生成命令の一例を表す図である。
図２において、２００はウインドウ生成命令全体である。２０１及び２０２は、それぞれウインドウの幅及びウインドウの高さを表し、単位はピクセル（画素数）である。２０３はウインドウの左上の座標を表す。
【００４０】
図３は、出力座標系におけるウインドウ領域を表す図である。
図３において、３００は出力座標系であり、単位はピクセル（画素）である。一点鎖線で表された領域３０１は、フレームバッファ（グラフィックスフレームバッファ１０７または動画フレームバッファ１１２及び１１４）領域であり、その幅と高さは（Ws,Hs）で表される。３０２はウインドウ領域であり、矩形の大きさが（Ww,Hw）であり、その座標が（Xw,Yw）である場合を示している。これらのパラメータは、ウインドウ生成命令２００に含まれるパラメータ（２０１から２０３）で与えられる。
【００４１】
図４は、ウインドウ管理部１０２が作成するウインドウ情報の一例を表す図である。
図４において、４００はウインドウ情報全体を表す。４０１及び４０２は、それぞれ次のウインドウ情報へのポインタ及び前のウインドウ情報へのポインタである。これらは、ウインドウ管理部１０２が管理するウインドウ情報リストのために用いられる。
【００４２】
４０３はウインドウ識別子であり、ウインドウ生成命令２００を受け取ったウインドウ管理部１０２が、新しいウインドウ情報を生成する際に決定する一意の識別子である。
４０４はウインドウ生成命令であり、受け取ったウインドウ生成命令２００の内容がそのままコピーされる。
【００４３】
４０５は、ウインドウ階層位置（ウインドウのZ order）であり、ウインドウ管理部１０２が新しいウインドウ情報を生成するたびに、インクリメントして設定する。ウインドウ階層位置４０５の最小値は１であり、値が大きいほど上層に位置することを表す。
４０６は、ウインドウバッファへのポインタであり、ウインドウ管理部１０２がウインドウ矩形領域と同じ大きさのバッファを確保し、設定する。４０７は動画描画履歴リストであり、描画制御部１０３が動画描画命令を受け取るたびに、その内容を追加していく。
【００４４】
図５は、ウインドウ管理部１０２が作成して管理するウインドウ情報リストの一例を示す図である。
図５において、５００はウインドウ情報リスト全体を表す。５０１はルートウインドウのウインドウ情報である。ルートウインドウはリストの先頭要素として初期化時に作成される特別なウインドウであり、実体を持たない。５０２から５０４はウインドウ管理部１０２がウインドウ生成命令に応じて生成し、リストに追加したウインドウ情報である。この例では、第１のウインドウ情報５０２のウインドウ階層位置４０５はZ=１であり、最も下層に位置する。そして、第Nウインドウ情報５０４のウインドウ階層位置４０５はZ=Nであり、最も上層に位置する。
【００４５】
図５から明らかなように、ウインドウ情報リスト５００におけるウインドウ情報位置は、そのウインドウのウインドウ階層位置と一致する。そして、ウインドウ情報リストへの追加順は、ウインドウ情報の生成順に一致する。
【００４６】
図６は、アプリケーション１０１が出力するグラフィックス描画命令の一例を示す図である。
図６において、６００は、グラフィックス描画命令全体を表す。６０１は、コマンド種別であり、例えば矩形描画命令、線分描画命令、円／楕円描画命令、ビットマップ転送命令（ブリット命令）など、一般的なグラフィックスオブジェクト描画を行うためのあらゆるコマンド種別を定義することが可能である。６０２は、パラメータ長であり、コマンド種別６０１に応じて必要な長さが設定される。６０３はパラメータリストであり、コマンド種別６０１に応じて必要なパラメータ群が、パラメータ長６０２で設定された長さだけ設定される。
【００４７】
図２２は、アプリケーション１０１の指示により、動画管理部１１７が生成する入力動画情報の一例を示す図である。
図２２において、２２００は入力動画情報全体を表す。２２０１は入力動画名であり、本実施形態では第１の入力動画１０９または第２の入力動画１０８の何れかを表す。
【００４８】
２２０２は動画処理経路であり、本実施形態では第１の動画処理経路１１９または第２の動画処理経路１１８の何れかを表す。２２０３は動画フォーマット情報であり、入力動画名２２０１で示される入力動画のフォーマットを格納する。動画フォーマット情報２２０３は、動画のフォーマットを規定するための任意の情報を含むことが可能である。例えば、入力動画の矩形情報、色空間フォーマット情報、圧縮フォーマット等を含むことが可能である。
【００４９】
図７は、アプリケーション１０１が出力する動画描画命令の一例を示す図である。
図７において、７００は動画描画命令全体を表す。７０１は処理対象となる入力動画情報であり、その詳細は、図２２に示されている。７０２はコマンド種別であり、拡大、縮小、回転、並進などアフィン変換で表すことが可能な変換は全て含むことができる。７０３はパラメータ長であり、コマンド種別に応じて必要な長さが設定される。７０４はパラメータリストであり、コマンド種別７０２に応じて必要なパラメータ群が、パラメータ長７０３で設定された長さだけ設定される。
【００５０】
図８は、描画制御部１０３が出力する動画階層情報更新命令の一例を示す図である。
図８において、８００は動画階層情報更新命令全体を表す。８０１は命令種別であり、追加または削除の何れかである。８０２は対象となる入力動画情報であり、その詳細は、図２２に示されている。８０３は、この動画階層情報更新命令を出力する原因となったウインドウ情報であり、その内容は図４に示されている。
【００５１】
図９は、動画階層管理部１０４が作成する動画階層情報の一例を表す図である。
図９において、９００は動画階層情報全体を表す。９０１及び９０２は、それぞれ次の動画階層情報へのポインタ及び前の動画階層情報へのポインタである。これらは、動画階層管理部１０４が作成して管理する動画階層情報リストのために用いられる。９０３は入力動画情報であり、動画階層情報更新命令８００において、命令種別８０１が追加であった時に、入力動画情報８０２の内容がそのまま格納される。
【００５２】
９０４はウインドウ情報であり、動画階層情報更新命令８００において、命令種別８０１が追加であった時に、ウインドウ情報８０３で指定されたウインドウ情報が設定される。９０５は動画階層位置（動画のZ order）であり、入力動画情報９０３に対応した動画出力の、動画レイヤにおける階層位置を示している。この値は、動画階層管理部１０４が新しい動画階層情報を作成するたびにインクリメントされる。動画階層位置９０５の最小値は１であり、値が大きいほど上層に位置することを表す。
【００５３】
図１０は、動画階層管理部１０４が作成して管理する動画階層情報リストの一例を表す図である。
図１０において、１０００は動画階層情報リスト全体を表す。１００１から１００３は、動画階層管理部１０４が動画階層情報更新命令に応じて生成し、リストに追加した動画階層情報である。この例では、第１の動画階層情報１００１の動画階層位置９０５はZ=１であり、最も下層に位置する。そして第N動画階層情報１００３の動画階層位置９０５はZ=Nであり、最も上層に位置する。
【００５４】
図１０から明らかなように、動画階層情報リスト１０００における動画階層情報の位置は、その動画階層情報に格納された動画階層位置と一致する。そして、動画階層情報リストへの追加順は、動画階層情報の生成順に一致する。
【００５５】
図１１は、グラフィックス出力部１０５が出力するグラフィックスレイヤ更新命令の一例を示す図であり、図１２は、グラフィックス更新命令によって指定される読み出し領域とフレームバッファ座標の関係を表す図である。
図１１において、１１００はグラフィックスレイヤ更新命令全体を表す図である。１１０１は、読み出し対象となるフレームバッファの先頭アドレスである。これは、グラフィックス出力部１０５がグラフィックス描画実行命令を実行して描画したグラフィックスフレームバッファ１０７のバックバッファの先頭アドレスである。
【００５６】
１１０２は読み出し開始位置の座標を表しており、図１２における読み出し領域１２０１の左上の座標（Xg,Yg）に一致する。１１０３及び１１０４はそれぞれ読み出し領域の幅と高さを表している。これらは、図１２における読み出し領域１２０１の大きさ（Wg,Hg）に一致する。
【００５７】
図１３は、動画出力部１１０が出力する動画レイヤ合成更新命令の一例を示す図である。
図１３において、１３００は動画レイヤ合成更新命令の全体を表す。１３０１は、第１の動画レイヤ識別子であり、対象となる動画レイヤを特定するための識別子である。例えば、本実施形態の構成では、第１の動画レイヤ１１３を表す。
【００５８】
１３０２から１３０４は、１３０１で指定された動画レイヤのフレームバッファ上の読み出し領域を指定するためのパラメータであり、その意味するところは、図１１における１１０２から１１０４と同じである。動画レイヤ合成更新命令１３００は、グラフィックスレイヤ更新命令１１００とは異なり、フレームバッファの先頭アドレスを持たない。これは、レイヤ合成部１１５が、各動画レイヤに付随する動画フレームバッファ（例えば第１の動画フレームバッファ１１４）のアドレスや面数をあらかじめ知っているからである。
【００５９】
１３０５は、第２の動画レイヤ識別子であり、対象となる動画レイヤを特定するための識別子である。例えば、本実施形態の構成では、第２の動画レイヤ１１１を表す。
１３０６〜１３０８は、前述した１３０２〜１３０４に対応している。
１３０９は第Ｎの動画レイヤ識別子であり、１３１０〜１３１２は、前述した１３０２〜１３０４に対応している。
【００６０】
図１４は、本実施形態に示した動画とグラフィックスを合成する画像処理装置を用いて、１４０１〜１４１８に示すように描画を行った一例を示す図である。
図１４において１４０１は３つのウインドウにおける仮想的な描画結果を示している。１４０２はウインドウ階層位置Z=１に位置する最下層のウインドウである。ウインドウ１４０２は、グラフィックスオブジェクト１４０３及び１４０４を描画コンテンツとして有しており、動画は描画されない。
【００６１】
１４０５は、ウインドウ階層位置Z=２に位置するウインドウであり、グラフィックスオブジェクト１４０６及び動画１４１９が描画される。
１４０７は、ウインドウ階層位置Z=３に位置するウインドウである。ウインドウ１４０７には、まずグラフィックスオブジェクト１４０８が描画され、次に動画１４０９が描画され、最後にグラフィックスオブジェクト１４１０が描画される。
【００６２】
１４１１は、各ウインドウのウインドウバッファ上の描画内容を示している。ウインドウ１４０２はグラフィックスオブジェクトのみを含むので、ウインドウバッファ上のイメージは最終描画の結果と同じである。ウインドウ１４０５及びウインドウ１４０７は、グラフィックスオブジェクトと動画を含む。
【００６３】
例えばウインドウ１４０７を例にとると、グラフィックスオブジェクトはウインドウバッファ上に描画されているのに対し、動画１４０９が存在すべき領域は１４１３に示された通り、透過に設定されている。１４１４は、３つのウインドウのウインドウバッファ１４１１をそのZ order順に透過合成した結果である。
【００６４】
１４１６は、第１の動画レイヤ１１３の動画フレームバッファ１１４の内容を表している。１４１６は、ウインドウ１４０５に表示される動画１４１９である。１４１７は、第２の動画レイヤ１１１の動画フレームバッファ１１２の内容を表している。１４１７は、ウインドウ１４０７に表示される動画１４０９である。１４１８は、第１の動画レイヤ１１３、第２の動画レイヤ１１１及びグラフィックスレイヤ１０６を合成した出力結果である。
【００６５】
図１５は、本実施形態の画像処理装置の全体動作を表すフローチャートである。図１４に示した描画を例にとり、図１５を用いて本実施形態の全体動作について詳細に説明する。なお、図１５において２重四角形で表されたステップについては、この全体動作を説明後、より詳細に説明する。
【００６６】
処理が始まると、アプリケーション１０１は、Ｓ１５０１からＳ１５１１で構成される、描画する全てのウインドウに対する処理ループに突入する。本例では、３つのウインドウを描画するので、このループのウインドウ数は３である。
【００６７】
次に、アプリケーション１０１はＳ１５０２において、ウインドウ生成処理を行う。この処理により、ウインドウ管理部１０２がウインドウ情報を生成し、ウインドウ情報リストに追加する。
【００６８】
次に、アプリケーション１０１は、Ｓ１５０３からＳ１５０８で構成される、現在の着目ウインドウに対する描画命令出力ループに突入する。アプリケーション１０１は、描画命令生成に際して、今発行しようとしている描画命令が動画描画命令であるかどうかを判断する（Ｓ１５０４）。
【００６９】
もし、動画描画命令であるときは、Ｓ１５０５において動画管理部１１７に対して入力動画情報の取得要求を行う。本例では、例えばウインドウ１４０５に対する描画ループであれば、動画１４１９に対する動画描画命令を生成する際に行う処理である。
【００７０】
次に、アプリケーション１０１は、Ｓ１５０６においてグラフィックス描画命令６００または動画描画命令７００を作成し、描画制御部１０３へ出力する。描画制御部１０３は、描画命令を受け取ると、Ｓ１５０７において、描画命令蓄積処理を行い、描画命令リストを作成する。
【００７１】
ウインドウ１４０５に対して作成される描画命令リストの一例を図１６に示す。
図１６の描画命令リスト１６００において、１６１５はウインドウ１４０５を表すウインドウ情報へのポインタである。１６０１から１６０５は、グラフィックスオブジェクト１４０６のグラフィックス描画命令であり、座標（０，０）から始まる矩形領域（Ｗ，Ｈ）を色０XFFFFFFFF（白色で不透過）で塗りつぶすことを表している。
【００７２】
１６０６から１６１４は、動画１４１９の動画描画命令であり、まず縦横方向に０.８に縮小した後、座標（Ｘ，Ｙ）へ平行移動させることを表している。描画命令出力ループを抜けると、アプリケーション１０１は、Ｓ１５０９において、描画実行命令とウインドウ情報を描画制御部１０３へ送付する。描画制御部１０３は、Ｓ１５１０において、描画実行処理を行う。以上の処理を全てのウインドウに対して行った後、アプリケーション１０１は処理ループを抜けて処理を終了する。
【００７３】
図１７は、Ｓ１５０２においてウインドウ管理部１０２が行うウインドウ生成処理を表すフローチャートである。
ウインドウ管理部１０２は、Ｓ１７０１でウインドウ生成命令を受け取ると、Ｓ１７０２においてウインドウ情報領域を確保する。Ｓ１７０２で作成したウインドウ情報をカレントウインドウ情報と呼ぶことにする。
【００７４】
カレントウインドウ情報領域を確保した後、ウインドウ管理部１０２は、Ｓ１７０３において、ウインドウバッファ領域を確保する。ウインドウバッファのサイズは、Ｓ１７０１で受け取ったウインドウ生成命令２００に含まれるウインドウ幅（Ww）、ウインドウ高（Hw）及びウインドウバッファの画素フォーマットで定まる。
【００７５】
例えば、画素フォーマットが一般的に用いられているRGBA（３２ビット）形式であるとすれば、ウインドウバッファのサイズは、Ｗｗ x Hw x ４ （バイト）となる。ウインドウバッファの確保に成功したら、ウインドウ管理部１０２は、Ｓ１７０４において、新しいウインドウ識別子を発行する。ウインドウ識別子は、生成されたウインドウを識別するために一意に振られるものであり、例えば整数が用いられる。
【００７６】
ウインドウ管理部１０２は、Ｓ１７０５において、カレントウインドウ情報にウインドウ識別子（Ｓ１７０４で取得したもの）、ウインドウ生成命令（Ｓ１７０１で取得したもの）及びウインドウバッファへのポインタ（Ｓ１７０４で取得したもの）を設定する。
次に、ウインドウ管理部１０２は、ウインドウ情報リスト５００をサーチして終端に位置するウインドウ情報を探して取得する（Ｓ１７０６）。このウインドウ情報を終端ウインドウ情報と呼ぶことにする。ウインドウ管理部１０２は、取得した終端ウインドウ情報の後ろに、カレントウインドウ情報を接続する処理を行う。（Ｓ１７０７、Ｓ１７０８）以上により、ウインドウ生成処理が完了する。
【００７７】
図１８は、Ｓ１５０５において動画管理部１１７が行う入力動画情報取得処理を表すフローチャートである。
動画管理部１１７は、Ｓ１８０１において、アプリケーション１０１から入力動画情報取得要求を受け取る。
次に、動画管理部１１７はＳ１８０１で受け取った入力動画情報取得要求から、入力動画名を取得する（Ｓ１８０２）。
【００７８】
入力動画名を取得した動画管理部１１７は、入力動画情報管理リストを探索して空いている動画処理経路（１１８または１１９）が存在しているかどうかを判断する（Ｓ１８０３）。もし存在しなかったら、呼び出し元であるアプリケーション１０１へ取得失敗を通知する（Ｓ１８０６）。空いている動画処理経路が存在したら、新しい入力動画情報２２００を生成し、それを入力動画情報管理リストへ追加し（Ｓ１８０４）、アプリケーション１０１へ、生成した入力動画情報を返却し（Ｓ１８０５）、処理を終了する。
【００７９】
図１９は、Ｓ１５０７において描画制御部１０３が行う描画命令蓄積処理を表すフローチャートである。また、図２０は、描画制御部１０３の内部構成の一例と、周辺を表すブロック図である。図１９と図２０を用いて、Ｓ１５０７において描画制御部１０３が行う描画命令蓄積処理を説明する。なお、図１９において２重四角形で表されたステップについては、この描画命令蓄積処理を説明後、より詳細に説明する。
【００８０】
描画命令蓄積部２００１は、アプリケーション１０１からウインドウ情報と描画命令を受け取ると（Ｓ１９０１）、自身が管理する描画命令リスト管理テーブルを探索して、受け取ったウインドウ情報の描画命令リストを探す（Ｓ１９０２）。Ｓ１９０３において、取得できたかどうかを判断し、対象となる描画命令リストが存在しなかった場合は、Ｓ１９０４において領域を確保し、それを描画命令リスト管理テーブルに追加する（Ｓ１９０５）。
【００８１】
なお、ここで用いる描画命令リスト管理テーブルは、どんな形式のものでもよいが、例えば図１０に示された動画階層情報リストと同じリンクリスト形式が考えられる。
次に、描画命令蓄積部２００１は、Ｓ１９０１で受け取った描画命令が動画描画命令であるかどうかを判断する（Ｓ１９０６）。
【００８２】
動画描画命令であった場合は、描画命令蓄積部２００１は、動画階層情報更新命令８００の命令種別８０１を追加に設定し、動画階層管理部１０４へ送付する（Ｓ１９０７）。動画階層管理部１０４は、Ｓ１９０８において、動画階層情報更新処理を行う。Ｓ１９０８の処理が終わると、描画命令蓄積部２００１が、Ｓ１９０１で受け取った描画命令を描画命令リストへ追加し、描画命令蓄積処理が終了する（Ｓ１９０９）。
【００８３】
図２１は、Ｓ１５１０において描画制御部１０３が行う描画実行処理を表すフローチャートである。図２０と図２１を用いて、Ｓ１５１０において描画制御部１０３が行う描画実行処理を説明する。なお、図２１において２重四角形で表されたステップについては、この描画実行処理を説明後、より詳細に説明する。
【００８４】
描画命令実行部２００２は、アプリケーション１０１から描画実行命令とウインドウ情報を受け取る（Ｓ２１０１）。描画命令実行部２００２は、受け取ったウインドウ情報に対応する描画命令リストを描画命令蓄積部２００１から取得する（Ｓ２１０２）。描画命令実行部２００２は、Ｓ２１０３において、ウインドウ情報４００の動画描画履歴リスト４０７に有効なメンバが含まれているかどうかを判断する。
【００８５】
含まれていた場合は、動画描画履歴リストの各動画描画命令を探索して全てのユニークな入力動画情報を取り出す（Ｓ２１０４）。そして、Ｓ２１０５からＳ２１０９で構成される動画階層情報更新処理ループへ突入する。ここでの目的は、動画描画履歴があるウインドウに対する再描画が生じた時に、不要な動画表示を消去することにある。
【００８６】
即ち、ウインドウに対する描画命令リストに明示されていない動画は、アプリケーション１０１が、その動画を消去する選択をしたとみなす。描画命令実行部２００２は、Ｓ２１０４で動画描画履歴リストから取得した入力動画情報の一つに着目し、それと同じ入力動画情報がＳ２１０２で取得した描画命令リストに格納された動画描画命令の中にあるかどうかを調べる（Ｓ２１０６）。
【００８７】
ここで含まれていないと判断された動画が、削除対象となる。描画命令実行部２００２は、Ｓ２１０７において、動画階層情報更新命令８００の命令種別８０１を削除に設定し、動画階層管理部１０４へ送付する。
動画階層管理部１０４はＳ１９０８において、動画階層情報更新処理（削除）を行う。動画描画履歴リストに含まれる全てのユニークな入力動画情報に対する処理を終えた後、動画階層情報更新処理ループを抜ける。
【００８８】
描画命令実行部２００２は、ウインドウの動画描画履歴リストをクリアし（Ｓ２１１０）、Ｓ２１０１で取得した描画命令リストに格納された動画描画命令により、動画描画履歴リストを更新する（Ｓ２１１１）。
【００８９】
描画命令実行部２００２は、グラフィックス描画実行命令及び描画命令リストをグラフィックス出力部１０５へ送付する（Ｓ２１１２）。
グラフィックス出力部１０５は、グラフィックス出力処理を行う（Ｓ２１１３）。
描画命令実行部２００２は、動画描画実行命令及びウインドウ情報を動画出力部１１０へ送付する（Ｓ２１１４）。
動画出力部１１０は、動画出力処理を行う（Ｓ２１１５）。以上で、描画実行処理が終了する。
【００９０】
図２３は、Ｓ１９０９において動画階層管理部１０４が行う動画階層情報更新処理を表すフローチャートである。図２３を用いて、Ｓ１９０９において動画階層管理部１０４が行う動画階層情報更新処理を説明する。
【００９１】
動画階層管理部１０４は、Ｓ２３０１で動画階層情報更新命令８００を受け取ると、まず命令種別を判断する（Ｓ２３０２）。追加命令であった場合は、Ｓ２３０３からＳ２３０８で構成される階層情報追加処理を実行する。
【００９２】
まず、動画階層管理部１０４は、動画階層情報９００を新たに作成し（Ｓ２３０３）、動画階層情報更新命令８００に含まれている入力動画情報８０２及びウインドウ情報８０３を、Ｓ２３０３で作成した動画階層情報９００へ設定する（Ｓ２３０４）。これらの情報をそれぞれカレント入力動画情報及びカレントウインドウ情報と呼ぶことにする。
【００９３】
次に、カレントウインドウ情報からカレントウインドウ階層位置を取り出す。これをカレントウインドウ階層位置と呼ぶことにする。動画階層管理部１０４は、Ｓ２３０５において、動画階層情報リスト１０００の先頭から動画階層情報を分析し、ウインドウ階層位置がカレントウインドウ階層位置より大きくなる先頭の階層情報を取得する。これを着目階層情報と呼ぶことにする。
【００９４】
次に、カレント階層情報を着目階層情報のひとつ前に挿入する（Ｓ２３０６）。Ｓ２３０６における処理は、リストの再リンク処理である。
次に、Ｓ２３０７において、着目階層情報の動画階層位置と同じ値を、カレント階層情報の動画階層位置に設定する。
最後に、Ｓ２３０８において、着目階層情報以降に位置する全ての階層情報の動画階層位置を、一つずつインクリメントして、追加処理を終了する。なお、Ｓ２３０５において、着目階層情報が見つからなかった場合は、カレント階層情報を動画階層情報リスト１０００の終端情報（第N動画階層情報）１００３に接続する。
【００９５】
一方、動画階層管理部１０４が、Ｓ２３０２において、削除命令であると判断すると、Ｓ２３０９からＳ２３１５で構成される階層情報削除処理を実行する。
削除処理では、まずＳ２３０１で受け取った動画階層情報更新命令８００から入力動画情報８０２を取得する（Ｓ２３０９）。これをカレント入力動画情報と呼ぶことにする。
【００９６】
次に、Ｓ２３１０からＳ２３１５で構成される探索ループに突入する。
まず、Ｓ２３１０において、動画階層情報リストから一つの階層情報を取り出す。この階層情報を、着目階層情報と呼ぶことにする。
次にＳ２３１１において、着目階層情報から入力動画情報を取得する。これを着目入力動画情報と呼ぶことにする。
【００９７】
Ｓ２３１２では、カレント入力動画情報と、着目入力動画情報を比較する。等しい場合は、着目動画階層情報より後ろにある全ての動画階層情報の動画階層位置を、一つずつデクリメントする（Ｓ２３１３）。最後に、Ｓ２３１４において、着目動画階層情報をリストから削除して、動画階層情報削除処理を終了する。
【００９８】
図２４は、Ｓ２１１３において、グラフィックス出力部１０５が行うグラフィックス出力処理を表すフローチャートである。また、図２５は、グラフィックス出力部１０５の内部構成の一例と、周辺を表すブロック図である。図２４と図２５を用いて、Ｓ２１１３において、グラフィックス出力部１０５が行うグラフィックス出力処理を説明する。なお、図２４において２重四角形で表されたステップについては、このグラフィックス出力処理を説明後、より詳細に説明する。
【００９９】
ウインドウ描画部２５０１は、Ｓ２４０１において、描画制御部１０３から、グラフィックス描画実行命令を受け取る。このときウインドウ描画部２５０１は、描画対象となるウインドウのウインドウ情報４００と描画命令リスト（例えば、描画命令リスト１６００）を同時に受け取る。
【０１００】
ウインドウ描画部２５０１は、Ｓ２４０２において、Ｓ２４０１で受け取った命令の種別を判定する。ここでは、前述した通り、グラフィックス描画実行命令を受け取っているので、Ｓ２４０３において、前述したウインドウ情報と描画命令リストを取り出す。なお、グラフィックス描画実行命令と、ウインドウ情報及び描画命令リストは、同一のパケットとして送付されてもよいし、Ｓ２４０３において、ウインドウ描画部２５０１が、描画制御部１０３へ新たに取得しに行ってもよい。
【０１０１】
ウインドウ描画部２５０１は、Ｓ２４０３で取り出したウインドウ情報４００から、ウインドウバッファへのウインドウバッファ２５０３を取得する（Ｓ２４０４）。更にウインドウ生成命令４０４から、ウインドウの幅２０１及び高さ２０２を取得する（Ｓ２４０５）。ウインドウ描画部２５０１は、ウインドウバッファ２５０３、ウインドウの幅２０１と高さ２０２、及びＳ２４０３で取得した描画命令リスト（例えば、描画命令リスト１６００）をグラフィックス描画部２５０２へ送付する。そして、Ｓ２４０６からＳ２４１２で構成されるウインドウ描画処理を起動する。
【０１０２】
グラフィックス描画部２５０２は、Ｓ２４０７において、描画命令リスト（例えば、描画命令リスト１６００）から描画命令を取り出す。この描画命令は、グラフィックス描画命令６００または、動画描画命令７００の何れかである。グラフィックス描画部２５０２は、取り出した描画命令の種別を判断し（Ｓ２４０８）、グラフィックス描画命令であった時には、グラフィックスオブジェクトの描画を行う（Ｓ２４０９）。
【０１０３】
例えば、グラフィックス描画命令６００が、１６０１から１６０５で表わされる矩形描画命令である場合は、ウインドウバッファ上の原点からW,Hの矩形領域が０xFFFFFFFF（白で不透過）で塗りつぶされる。この時の座標系は、ウインドウバッファの左上を原点とする座標系であり、その定義域はウインドウ描画部２５０１がＳ２４０５で取得したウインドウの幅と高さである。なお、グラフィックスオブジェクトの領域が上記定義域からはみ出している場合は、はみ出た領域をクリッピングする。
【０１０４】
一方、グラフィックス描画部２５０２が、Ｓ２４０８において、描画命令を動画描画命令であると判断した場合は、動画描画処理を行う（Ｓ２４１０、Ｓ２４１１）。グラフィックス描画部２５０２は、Ｓ２４１０において、動画の出力領域を計算する。動画の出力領域計算で用いられる座標系は、前述したグラフィックスオブジェクト描画で用いられたものと同じである。
【０１０５】
例えば、動画描画命令が１６０７から１６１４で表わされる縮小と並進の組み合わせであったとする。グラフィックス描画部２５０２は、まず対象入力動画情報１６０７に含まれる動画フォーマット情報２２０３から、入力動画の幅と高さを取得する。次に、幅と高さをそれぞれ０.８倍した領域を計算する。最後に、上記で縮小した領域を（X,Y）だけ平行移動した時の座標領域を求める。
【０１０６】
グラフィックス描画部２５０２は、このようにして求めたウインドウバッファ２５０３上の動画出力領域を透過（アルファ=０）に設定する（Ｓ２４１１）。グラフィックス描画部２５０２は、Ｓ２４０７からＳ２４１１の処理を、描画命令リストに含まれた全ての描画命令に対して行った後、ウインドウ描画部２５０１へ制御を返し、ウインドウ描画処理が終了する。
【０１０７】
ウインドウ描画部２５０１は、ウインドウ描画処理が終了した後、ウインドウ転送命令をウインドウ転送部２５０４へ送付する。ウインドウ転送命令を受け取ったウインドウ転送部２５０４は、グラフィックスフレームバッファ１０７のバックバッファをクリアする（Ｓ２４１３）。ここでは、グラフィックスフレームバッファ１０７のバックバッファを、単にバックバッファと呼ぶことにする。
【０１０８】
ウインドウ転送部２５０４は、ウインドウ管理部１０２から、ウインドウ情報リスト５００を取得し（Ｓ２４１４）、Ｓ２４１５からＳ２４１８で構成されるウインドウ透過合成処理ループへ突入する。このループの処理対象は、ウインドウ情報リスト５００に格納されている全てのウインドウ情報（例えば５０１から５０４）である。
【０１０９】
ウインドウ転送部２５０４は、ウインドウ情報リスト５００から階層位置順（ウインドウZ orderが小さい順）にウインドウ情報４００を取り出す（Ｓ２４１６）。次に、ウインドウ情報４００に格納されたウインドウ生成命令４０４から、ウインドウの幅２０１、高さ２０２、及びウインドウ座標２０３を取得する。また、ウインドウバッファ４０６を取得する。
【０１１０】
ウインドウ転送部２５０４は、ウインドウ座標領域内部で、バックバッファの画素にウインドウバッファの画素を透過合成した後、その値をバックバッファへ書き戻す（Ｓ２４１７）。なお、ここで用いられる座標系は、図３に示したものである。Ｓ２４１６とＳ２４１７の処理を、ウインドウ階層位置の順に全てのウインドウ情報に対して行った後、ウインドウ透過合成処理ループを抜ける。
【０１１１】
ウインドウ転送部２５０４は、Ｓ２４１９において、グラフィックスレイヤ更新命令１１００を作成する。ウインドウ転送部２５０４は、フレームバッファ先頭アドレス１１０１に、前述したバックバッファの先頭アドレスを設定する。また、読み出し開始位置座標１１０２、読み出し領域の幅１１０３、及び読み出し領域の高さ１１０４には、通常は、バックバッファの全領域を表わす値を設定する。
【０１１２】
例えば、図１２で示された座標系では、（Xg,Yg）=（０,０）、（Wg,Hg）=（Ws,Hs）となる。何らかのシステム的な要求により、バックバッファ領域のクリッピングが必要である場合は、ウインドウ転送部２５０４は、転送領域を例えば１２０１で示されたように限定することも可能である。最後にウインドウ転送部２５０４は、Ｓ２４１９で作成したグラフィックスレイヤ更新命令１１００をレイヤ合成部１１５へ出力して、グラフィックスレイヤ更新処理を行い（Ｓ２４２０）、グラフィックス出力処理を終了する。
【０１１３】
図２６は、Ｓ２１１５において、動画出力部１１０が行う動画出力処理を表すフローチャートである。また、図２７は、動画出力部１１０の内部構成の一例と、周辺を表すブロック図である。以下、図２６と図２７を用いて、Ｓ２１１５において、動画出力部１１０が行う動画出力処理を説明する。なお、図２６において２重四角形で表されたステップについては、この動画出力処理を説明後、より詳細に説明する。
【０１１４】
動画出力制御部２７０１は、Ｓ２６０１において、描画制御部１０３から、動画描画実行命令とウインドウ情報４００を受け取る。動画出力制御部２７０１は、動画階層管理部１０４から動画階層情報リスト１０００を取得した後（Ｓ２６０２）、命令種別の判断を行う（Ｓ２６０３）。
【０１１５】
本例の場合、Ｓ２６０２で受け取った命令は、動画描画実行命令であるので、Ｓ２６０４へ分岐する。動画出力制御部２７０１は、Ｓ２６０４で動画描画実行命令とウインドウ情報４００を取り出すが、これはＳ２６０１で既に受け取ったものである。ここでの処理は、描画制御部１０３から送付されてくる任意の命令パケットから、ペイロードを取り出す処理と等価であり、命令パケットのフォーマットは本発明と直接関連しないため、詳細な説明は省く。
【０１１６】
動画出力制御部２７０１は、Ｓ２６０４で受け取ったウインドウ情報４００から、動画描画履歴リスト４０７を取り出す（Ｓ２６０５）。動画出力制御部２７０１は、Ｓ２６０５で取り出した動画描画履歴リストから全ての動画描画命令７００を取り出す。動画出力制御部２７０１は、取り出した動画描画命令７００に含まれる入力動画情報７０１を調べ、そこに含まれる動画処理経路２２０２ごとに、取り出した動画描画命令をソートして、動画処理経路別の動画描画命令リストに再編成する（Ｓ２６０６）。
【０１１７】
動画出力制御部２７０１は、Ｓ２６０６で作成した動画処理経路別動画描画命令リストを用いて、Ｓ２６１４からＳ２６２１で構成される動画処理経路毎の処理ループへ突入する。また、動画処理経路別の動画描画命令リストの先頭にある動画描画命令７００の、入力動画情報７０１を参照する。そして、動画フォーマット情報２２０３を取得し、そこに含まれた情報に基づいて、着目した動画処理経路に対する画像処理方法を決定し、動画画像処理部２７０２へ指示する（Ｓ２６１５）。
【０１１８】
前述したように、動画フォーマット情報２２０３は、動画のフォーマットを規定するための、任意の情報を含むことが可能である。Ｓ２６１５で指示する画像処理方法には、前述したフォーマットに応じたあらゆる処理方法を指定することが可能である。例えば、入力動画の圧縮形式が含まれていたならば、画像処理方法には、圧縮形式に付随した特定の解凍方法を指定する。また、例えば入力動画の色空間情報が含まれていたならば、後段のレイヤ合成部１１５の入力色空間に合わせて、色空間変換を指定する。本実施形態においては、動画処理パラメータは、入力動画の解凍形式と、色空間変換方式を含む。
【０１１９】
動画出力制御部２７０１は、Ｓ２６１５における画像処理指示を行った後、動画変形指示処理ループ（Ｓ２６１６からＳ２６１８）へ突入する。この処理ループでは、動画処理経路別の動画描画命令リストに格納された動画描画命令を一つずつ処理する。動画出力制御部２７０１は、Ｓ２６１７において、動画描画命令が指示する動画変形方法を求め、これを動画変形部２７０３へ指示する。
【０１２０】
前述したように、動画描画命令７００は、動画を変形するあらゆるコマンドを含むことが可能である。例えば、拡大、縮小、並進、回転、或いはもっと一般化したアフィン変換として変形を指示することができる。Ｓ２６１７において、動画出力制御部２７０１が行う変形指示の方法もまた任意である。
【０１２１】
例えば、動画変形部２７０３がアフィン変換行列を動画変形パラメータとして受け取って動画変形を行う場合は、動画出力制御部２７０１はＳ２６１７において、動画描画命令７００から、アフィン変換行列を計算して、動画変形部２７０３へ設定すればよい。アフィン変換パラメータを含む動画処理パラメータ群を計算し、動画処理経路と関連付けて記憶する。また、前述した行列を一つの動画描画命令ごとに設定する方式や、リストに含まれる全ての動画描画命令から計算された行列の積を設定する方式などが考えられる。これらは、全て本実施形態の範囲に含まれることは言うまでも無い。何れの方式においても、動画出力制御部２７０１は、全ての動画描画命令を実行した後の動画の出力矩形座標領域を、動画変形部２７０３から取得して記憶しておく。
【０１２２】
動画変形指示処理ループを終了すると、動画出力制御部２７０１は、Ｓ２６０１で取得した動画階層情報リストを探索して、現在の動画処理経路に対応する動画階層情報９００を取得する。そして、動画階層位置９０５に対応した動画レイヤを求めて、動画出力選択部２７０４へ指示する（Ｓ２６１９）。なお、本実施形態においては、第１の動画レイヤ１１３が最も下層に位置し、第２の動画レイヤ１１１が最も上層に位置するものとする。
【０１２３】
動画出力制御部２７０１は、Ｓ２６２０において、現在の動画処理経路が結びつく動画レイヤに対応した動画レイヤ合成更新命令１３００を生成する。例えば、Ｓ２６１９で求めた動画レイヤが第１の動画レイヤ１１３だったとする。この時、Ｓ２６１８から抜けた時点で記憶した出力矩形座標領域から、第１の動画レイヤの読み出し開始位置座標１３０２、読み出し領域の幅１３０３、及び読み出し領域の高さ１３０４を設定する。
【０１２４】
以上の処理を全ての動画処理経路に対して行った後、動画出力制御部２７０１は、これまで指示した設定値を有効化する（Ｓ２６２２）。即ち、Ｓ２６１５で動画画像処理部２７０２へ設定した画像処理指示、Ｓ２６１６からＳ２６１８において設定した動画変形部２７０３への動画変形指示、及びＳ２６１９で設定した動画出力選択部２７０４への動画レイヤ指示である。
【０１２５】
動画出力制御部２７０１は、Ｓ２６２０で生成された各動画レイヤに対する動画レイヤ合成更新命令１３００をレイヤ合成部１１５へ出力し、動画レイヤ更新処理を行った後（Ｓ２６２３）、全ての処理を終了する。なお、動画出力制御部２７０１がＳ２６２２における設定値有効化を行うと、動画出力部１１０を構成する各処理ブロックは、次のように動作する。
【０１２６】
動画画像処理部２７０２は、各動画処理経路に対して設定された画像処理方法に対応した画像処理を行い、動画管理部１１７からの入力動画データをラスタライズして動画変形部２７０３へ出力する。
動画変形部２７０３は、各動画処理経路に対して設定された動画変形指示に従って、動画画像処理部２７０２から入力されるラスターデータを変形し、動画出力選択部２７０４に出力する。
動画出力選択部２７０４は、各動画処理経路に対して設定された動画レイヤの動画フレームバッファへ、動画変形部２７０３から出力された変形動画データを書き込む。
【０１２７】
図２８は、レイヤ合成部１１５が行うグラフィックスレイヤ更新処理（Ｓ２４２０）及び動画レイヤ更新処理（Ｓ２６２３）を表すフローチャートである。以下、図２８及び図１を用いて、レイヤ合成部１１５が行うグラフィックスレイヤ更新処理（Ｓ２４２０）及び動画レイヤ更新処理（Ｓ２６２３）を説明する。
【０１２８】
Ｓ２８０１において、レイヤ合成部１１５は、グラフィックスレイヤ更新命令１１００または、動画レイヤ合成更新命令１３００を受け取る。命令を受け取ったレイヤ合成部１１５は、Ｓ２８０２において、命令種別を判断し、動画レイヤ更新命令であった時には、Ｓ２８０３からＳ２８０５で構成される動画レイヤ読み出し領域パラメータ設定処理ループへ突入する。
【０１２９】
レイヤ合成部１１５は、動画レイヤ更新命令に含まれる全ての動画レイヤに対する読み出し領域情報（例えば第１の動画レイヤであれば、読み出し開始位置座標１３０２、読み出し領域の幅１３０３、及び読み出し領域高さ１３０４である。）を取得する。レイヤ合成部１１５は、各動画レイヤに含まれる動画フレームバッファの開始アドレスと大きさをあらかじめ知っているので、前述した読み出し領域情報から読み出し領域のアドレスを求めることができる。
【０１３０】
レイヤ合成部１１５は、Ｓ２８０３からＳ２８０５のループで全ての動画レイヤに対する読み出し領域アドレスを求めると、それらの値を内部的に設定して有効化する（Ｓ２８０６）。有効化された後は、新しい読み出し領域アドレスから動画の読み込みが開始される。
【０１３１】
再びＳ２８０２へ戻って、グラフィックス更新命令を取得した場合の動作について説明する。
レイヤ合成部１１５は、Ｓ２８０７において、グラフィックスレイヤ更新命令１１００に含まれるフレームバッファ先頭アドレス１１０１、読み出し開始位置座標１１０２、読み出し領域の幅１１０３、及び読み出し領域高さ１１０４を取得する。そして、取得したこれらの値から、新しい読み出し領域アドレスを計算する。
【０１３２】
レイヤ合成部１１５は、バッファフリップを行い、読み込み領域をＳ２８０７で計算したアドレス領域へ変更する（Ｓ２８０８）。以上で、グラフィックスレイヤ更新処理または動画レイヤ更新処理が終了する。
【０１３３】
図２９は、本実施形態におけるウインドウ廃棄処理を表すフローチャートである。図２９を用いて、ウインドウ廃棄処理について詳細に説明する。なお、図２９において２重四角形で表されたステップについては、このウインドウ廃棄処理を説明後、より詳細に説明する。
【０１３４】
アプリケーション１０１は、廃棄したいウインドウ情報４００とウインドウ廃棄命令をウインドウ管理部１０２へ送付する（Ｓ２９０１）。
ウインドウ廃棄要求を受け取ったウインドウ管理部１０２は、廃棄対象であるウインドウ情報をウインドウ情報リストから削除してリンクを再構成する（Ｓ２９０２）。
次に、ウインドウ管理部１０２は、ウインドウ再描画命令と、Ｓ２９０１で受け取ったウインドウ情報４００を描画制御部１０３へ送付し、ウインドウ再描画処理を行う（Ｓ２９０３）。
以上でウインドウ廃棄処理が終了する。なお、確保済みの入力動画情報を解放するのは、アプリケーション１０１の責務である。
【０１３５】
図３０は、Ｓ２９０３におけるウインドウ再描画処理を表すフローチャートである。
図３０を用いて、Ｓ２９０３におけるウインドウ再描画処理について、詳細に説明する。描画命令実行部２００２は、ウインドウ再描画命令とウインドウ情報４００を受け取る（Ｓ３００１）。描画命令実行部２００２は、グラフィックス出力部１０５へウインドウ転送命令を出力する（Ｓ３００２）。
【０１３６】
グラフィックス出力部１０５は、Ｓ３００３において、ウインドウ転送処理を行う。この処理は、図２４のＳ２４０２において、命令判断結果がウインドウ転送命令であるときに相当する。Ｓ２４１３以降の処理については既に説明したので、ここでは説明を省略する。
【０１３７】
描画命令実行部２００２は、受け取ったウインドウ情報４００の動画描画履歴リスト４０７を調査し、有効な入力動画情報を全て取り出す（Ｓ３００４）。
そして、入力動画情報の有無を判断し（Ｓ３００５）、もし、有効な入力動画情報が存在したら、それらを削除するために、動画階層情報削除命令を動画階層管理部１０４へ出力する（Ｓ３００６）。動画階層管理部１０４は、Ｓ３００７において、動画階層情報更新（削除）処理を行う。この処理に関しては、図２３を用いて既に説明したので、ここでは説明を省略する。
【０１３８】
描画命令実行部２００２は、Ｓ３００８において、動画再描画命令を動画出力部１１０へ出力する。動画出力部１１０は、Ｓ３００９において、動画再描画処理を行う。
Ｓ３００９での処理について、図２６を用いて説明する。動画出力制御部２７０１は、動画階層情報リストをＳ２６０２で取得した後、Ｓ２６０７へ分岐し、処理経路別動画描画命令リスト作成処理（Ｓ２６０８〜Ｓ２６１３）を行う。
【０１３９】
まず、動画階層情報リストから動画階層情報を一つ取り出して、そこに含まれるウインドウ情報４００を取得する（Ｓ２６０９）。更に、ウインドウ情報４００に含まれる動画描画履歴リストを取り出す（Ｓ２６１０）。次に、動画描画履歴リストに含まれる動画描画命令群から、現在の動画階層情報に結びついた動画処理経路を対象としているものを取り出してリスト化する（Ｓ２６１１、Ｓ２６１２）。
【０１４０】
以上の処理を全ての動画階層情報即ち、全ての動画処理経路に対して行うことで、処理経路別動画描画命令リストが完成する。Ｓ２６１４以降の処理に関しては、既に説明したので、ここでは説明を省略する。再び図３０に戻ると、Ｓ３００９において、動画再描画処理が完了すると、描画命令実行部２００２は、ウインドウ再描画処理を終了する。
以上で、本発明の第１の実施形態の説明を終わる。
【０１４１】
（第２の実施形態）
本発明の第２の実施形態について、図３１から図３３を用いて説明する。
図３１は、本発明の第２の実施形態の画像処理装置の構成例を表すブロック図である。図３１において実線の矢印は制御または命令（指示）の流れを表しており、点線の矢印はデータの流れを表している。また、既に説明したものと同じ機能を有する部分には、同一符号を記してある。
【０１４２】
図３１において、図１と異なるブロックは、ウインドウ管理部３１０１、描画制御部３１０２、及び動画階層管理部３１０３である。第１の実施形態と比較して異なる部分は、生成済みのウインドウ間の階層関係を変更する機能が付加されたことであるので、その機能についてのみ説明する。
【０１４３】
図３２は、本実施形態におけるウインドウ階層変更処理を表すフローチャートである。図３２を用いてウインドウ階層変更処理について詳細に説明する。
アプリケーション１０１は、ウインドウの階層位置を変更するために、ウインドウ階層変更命令を出力する（Ｓ３２０１）。ここでは、簡単のために、あるウインドウの階層位置を最上位に変更する命令であるとするが、任意のウインドウに対する任意の階層位置指定が可能であることは言うまでもない。
【０１４４】
ウインドウ管理部３１０１は、アプリケーション１０１からウインドウ階層変更命令と操作対象となるウインドウ情報４００を受け取り、ウインドウ情報リストの更新処理を行う（Ｓ３２０２）。ここでは、指定されたウインドウ情報４００をリストから探して、それをリンクの終端に移動させる処理を行う。
【０１４５】
次に、ウインドウ管理部３１０１は、動画階層変更命令を動画階層管理部３１０３へ出力する（Ｓ３２０３）。この命令を受け取った動画階層管理部３１０３は、Ｓ３２０４において、動画階層変更処理を行う。次に、ウインドウ管理部３１０１は、描画制御部３１０２へ、ウインドウ階層変更再描画命令を送付する（Ｓ３２０５）。この命令を受け取った描画制御部３１０２は、他のブロックも制御しながら、Ｓ３００２からＳ３００９の処理を行い、ウインドウ階層の変化を、グラフィックスレイヤと動画レイヤへ反映させる。これらの処理に関しては、図３０を用いて既に説明済みであるので、ここでは説明を省略する。
【０１４６】
図３３は、Ｓ３２０４において、動画階層管理部３１０３が行う動画階層変更処理を表すフローチャートである。図３３を用いてＳ３２０４において、動画階層管理部３１０３が行う動画階層変更処理を詳細に説明する。
動画階層管理部３１０３は、動画階層変更命令を受け取る（Ｓ３３０１）。次に、動画階層情報リストに含まれる全ての動画階層情報を、そこに含まれるウインドウ情報が示すウインドウ階層順にソートする（Ｓ３３０２）。
【０１４７】
次に、一つのウインドウ情報に対して存在する複数の動画階層情報を、そのウインドウに対して描画された順番でソートする（Ｓ３３０４）。この処理では、まずウインドウ情報に含まれた動画描画履歴リストを先頭から辿り、動画描画命令に含まれた入力動画情報をその順番で並べる。
【０１４８】
この時、入力動画情報の並び順は、動画描画命令の発生順に等しいので、この並びと同じになるように、動画階層情報を並べる。動画階層情報には、必ずユニークな入力動画情報が含まれているので、前述した方法で一意に並べ替えが可能である。
【０１４９】
以上の処理を全てのウインドウ情報に対して行えば、動画階層情報が所望の順番にソートされる（Ｓ３３０３からＳ３３０５）。最後に、動画階層情報リストとして再リンクし（Ｓ３３０６）、動画階層変更処理を終了する。なお、動画階層管理部３１０３は、他の動画階層更新命令に対しては、第１の実施形態と同じ処理を行うことを付け加えておく。
以上で、本発明の第２の実施形態の説明を終わる。
【０１５０】
（第３の実施形態）
本発明の第３の実施形態について、図３４から図３６を用いて説明する。
図３４は、本発明の第３の実施形態の画像処理装置の構成例を表すブロック図である。図３４において実線の矢印は制御または命令（指示）の流れを表しており、点線の矢印はデータの流れを表している。また、既に説明したものと同じ機能を有する部分には、同一符号を記してある。
【０１５１】
図３４において、図１と異なるブロックは、ウインドウ管理部３４０１、及びグラフィックス出力部３４０２である。第１の実施形態と比較して異なる部分は、動画のみを表示する動画ウインドウの概念を導入したことである。
【０１５２】
図３５は、図１４で示した描画例において、Z=２のウインドウを動画ウインドウに設定した場合を示している。最も大きな特徴は、ウインドウ３５０１に対応するウインドウバッファ３５０２が存在せず、３５０３で示すようにグラフィックスフレームバッファ上でウインドウ３５０１が位置する領域が、完全にクリッピングされていることである。
【０１５３】
前述した機能を実現するために、アプリケーション１０１が生成するウインドウ生成命令３６００は、図３６のようになっており、ウインドウ属性３６０１が追加されている。ウインドウ属性３６０１には、動画ウインドウか汎用ウインドウかを指定できるようになっている。ウインドウ属性３６０１が動画ウインドウであるときには、ウインドウ管理部３４０１が生成するウインドウ情報４００のウインドウバッファは空である。
【０１５４】
ウインドウ管理部３４０１におけるウインドウ生成処理以外で、第１の実施形態と異なるのは、ウインドウ転送命令を受けたときのグラフィックス出力部３４０２の動作のみである。図２４におけるグラフィックス出力部１０５の動作フローを引用して、この違いを説明する。
【０１５５】
グラフィックス出力部１０５は、Ｓ２４１７において、必ずウインドウバッファの画素値を用いて透過合成する。これに対して、グラフィックス出力部３４０２では、対象ウインドウが動画ウインドウである時には、ウインドウ矩形領域をそのまま透過させてしまうことである。即ち、ウインドウバッファの画素値が全て完全透過である場合と等価な処理を行う。
以上で、第３の実施形態の説明を終わる。
【０１５６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワークまたは各種のコンピュータ読み取り可能な記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１５７】
１０１  アプリケーション
１０２  ウインドウ管理部
１０３  描画制御部
１０４  動画階層管理部
１０５  グラフィックス出力部
１０６  グラフィックスレイヤ
１０７  グラフィックスフレームバッファ
１０８  第２の入力動画
１０９  第１の入力動画
１１０  動画出力部
１１１  第２の動画レイヤ
１１２  第２の動画フレームバッファ
１１３  第１の動画レイヤ
１１４  第１の動画フレームバッファ
１１５  レイヤ合成部
１１６  合成出力
１１７  動画管理部
１１８  第２の動画処理経路
１１９  第１の動画処理経路
【図１】
2015141706.tif 000003
【図２】
2015141706.tif 000004
【図３】
2015141706.tif 000005
【図４】
2015141706.tif 000006
【図５】
2015141706.tif 000007
【図６】
2015141706.tif 000008
【図７】
2015141706.tif 000009
【図８】
2015141706.tif 000010
【図９】
2015141706.tif 000011
【図１０】
2015141706.tif 000012
【図１１】
2015141706.tif 000013
【図１２】
2015141706.tif 000014
【図１３】
2015141706.tif 000015
【図１４】
2015141706.tif 000016
【図１５】
2015141706.tif 000017
【図１６】
2015141706.tif 000018
【図１７】
2015141706.tif 000019
【図１８】
2015141706.tif 000020
【図１９】
2015141706.tif 000021
【図２０】
2015141706.tif 000022
【図２１】
2015141706.tif 000023
【図２２】
2015141706.tif 000024
【図２３】
2015141706.tif 000025
【図２４】
2015141706.tif 000026
【図２５】
2015141706.tif 000027
【図２６】
2015141706.tif 000028
【図２７】
2015141706.tif 000029
【図２８】
2015141706.tif 000030
【図２９】
2015141706.tif 000031
【図３０】
2015141706.tif 000032
【図３１】
2015141706.tif 000033
【図３２】
2015141706.tif 000034
【図３３】
2015141706.tif 000035
【図３４】
2015141706.tif 000036
【図３５】
2015141706.tif 000037
【図３６】
2015141706.tif 000038