JP2014026541A - 画像形成装置及び仮想マシンプログラム - Google Patents

画像形成装置及び仮想マシンプログラム Download PDF

Info

Publication number
JP2014026541A
JP2014026541A JP2012167648A JP2012167648A JP2014026541A JP 2014026541 A JP2014026541 A JP 2014026541A JP 2012167648 A JP2012167648 A JP 2012167648A JP 2012167648 A JP2012167648 A JP 2012167648A JP 2014026541 A JP2014026541 A JP 2014026541A
Authority
JP
Japan
Prior art keywords
graphics
character
virtual machine
processing
processing request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012167648A
Other languages
English (en)
Other versions
JP5955148B2 (ja
Inventor
Masao Akuzawa
政男 阿久澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012167648A priority Critical patent/JP5955148B2/ja
Priority to US13/936,676 priority patent/US8860957B2/en
Priority to KR1020130085094A priority patent/KR101571595B1/ko
Publication of JP2014026541A publication Critical patent/JP2014026541A/ja
Application granted granted Critical
Publication of JP5955148B2 publication Critical patent/JP5955148B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • G06F3/1298Printer language recognition, e.g. programme control language, page description language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1827Accessing generic data, e.g. fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00278Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a printing apparatus, e.g. a laser beam printer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function
    • G06K2215/0094Colour printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】グラフィックスライブラリが、透過処理が不要な場合でも透過計算を行っていたり、GPUに有効な描画命令を発行していなかったりすると、そのグラフィックスライブラリの組み合わせで動作する仮想マシンにおいても十分な描画のパフォーマンスが得られない。
【解決手段】仮想マシンが、描画するコンテンツに応じて、透過処理をさせる、もしくは透過処理をさせないようにグラフィックスライブラリを利用する。また、GPUに対して有効な描画命令を発行するようにグラフィックスライブラリを利用する。
【選択図】図3

Description

本発明は、例えば仮想マシンのグラフィックス処理を向上させた画像形成装置及び仮想マシンプログラムに関する。
近年、スマートフォンやタブレット端末、画像形成装置などの組込み機器で、ユーザにとって使いやすい操作性(以下、リッチ操作)が実現されている。このようなリッチ操作を実現するには、高フレームレートで表示を切り替えられることが必要である。
ところで、このような組込み機器には、例えばJAVA(登録商標)等のプログラミング言語で記述されたコードを実行するための、ハードウェアやオペレーティングシステム等のソフトウェアに依存しない実行環境である仮想マシンの導入が進んでいる。そして、この仮想マシンには、アプリケーションソフトウェア(以下、アプリ)をインストールすることが可能なものがある。これは、組込み機器の付加価値向上に寄与している。
一方で、仮想マシン上で動作するアプリも、例えばタッチパネル上で行うジェスチャなどにより操作し、また、操作内容をアニメーション等を用いた高い表現力で示すリッチ操作の実現が要求されている。このために、仮想マシンからGPU(Graphics Processor Unit)を利用し、描画領域の合成を効率よく行うものがある(特許文献1)
一般的に、GPUの活用は表示処理能力を向上させ、それによって表示処理の高フレームレート化とともに、CPU(Central Processing Unit)の負荷を下げる効果がある。
特開2006−171274号公報
一方で、通常は、描画処理の実現のためにGPUやそのドライバが抽象化されたグラフィックスライブラリを用いる。組込み機器に搭載されている仮想マシンも、特定のグラフィックスライブラリの組み合わせが提供された環境で動作することが一般的である。しかし、グラフィックスライブラリを用いると、描画処理を容易に実現できる反面、GPUの特性が考慮されずに描画命令が発行されたり、仮想マシンにとって必ずしも必要としない計算がグラフィックスライブラリの内部で行われたりすることがある。このような場合、CPUとGPU間の通信の増加や、計算量増加に伴うCPUの負荷増大により、GPUのパフォーマンスを十分に享受できないという課題がある。
本発明は上記従来例に鑑みてなされたもので、仮想マシンからグラフィックスライブラリを用いて描画処理を行う構成であっても、グラフィックスライブラリがGPUを用いる際のオーバーヘッドを減らし、それによってGPUの利点を損なわずに効率的な画像処理を実現できる画像形成装置及び仮想マシンプログラムを提供することを目的とする。
上記目的を達成するために本発明は以下の構成を備える。
表示部を有する画像形成装置であって、
前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、
APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリと、
所定のプログラミング言語で記述されたプログラムを実行する仮想マシン手段であって、該仮想マシン手段は、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行する仮想マシン手段と
を備え、
前記仮想マシン手段は、プログラムの実行により描画を行う場合には、フレームバッファに描かれた画像データの色に透過値が含まれるか否か判定し、透過値が含まれる場合には、前記グラフィックスライブラリとして透過処理対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行し、透過値が含まれない場合には、前記グラフィックスライブラリとして、透過処理非対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行する。
あるいは他の側面によれば、本発明は以下の構成を有する。
表示部を有する画像形成装置であって、
前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、
APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリと、
所定のプログラミング言語で記述されたプログラムを実行する仮想マシン手段であって、該仮想マシン手段は、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行する仮想マシン手段と
を備え、
前記仮想マシン手段は、プログラムの実行により、ラスタラインに平行または直交する直線の描画を行う場合には、前記直線の幅を短辺の長さとし、前記直線の長さを長辺の長さとする矩形領域を塗りつぶす描画の処理要求を前記グラフィックスライブラリに対して発行する。
あるいは他の側面によれば、本発明は以下の構成を有する。
表示部を有する画像形成装置であって、
前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、
APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリと、
所定のプログラミング言語で記述されたプログラムを実行する仮想マシン手段であって、該仮想マシン手段は、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行する仮想マシン手段と
を備え、
前記仮想マシン手段は、プログラムの実行により、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素を、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行する。
あるいは他の側面によれば、本発明は以下の構成を有する。
表示部を有する画像形成装置のプロセッサにより実行される仮想マシンプログラムであって、前記画像形成装置は、前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリとを有しており、
前記仮想マシンプログラムは、所定のプログラミング言語で記述されたプログラムを実行し、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行し、描画を行う場合には、フレームバッファに描かれた画像データの色に透過値が含まれるか否か判定し、透過値が含まれる場合には、前記グラフィックスライブラリとして透過処理対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行し、透過値が含まれない場合には、前記グラフィックスライブラリとして、透過処理非対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行する仮想マシンプログラム。
あるいは他の側面によれば、本発明は以下の構成を有する。
表示部を有する画像形成装置のプロセッサにより実行される仮想マシンプログラムであって、前記画像形成装置は、前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリとを有しており、
前記仮想マシンプログラムは、所定のプログラミング言語で記述されたプログラムを実行し、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行し、ラスタラインに平行または直交する直線の描画を行う場合には、前記直線の幅を短辺の長さとし、前記直線の長さを長辺の長さとする矩形領域を塗りつぶす描画の処理要求を前記グラフィックスライブラリに対して発行する仮想マシンプログラム。
あるいは他の側面によれば、本発明は以下の構成を有する。
表示部を有する画像形成装置のプロセッサにより実行される仮想マシンプログラムであって、前記画像形成装置は、前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリとを有しており、
前記仮想マシンプログラムは、所定のプログラミング言語で記述されたプログラムを実行し、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行し、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素を、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行する仮想マシンプログラム。
本発明によれば、仮想マシンが、描画するコンテンツの透過値に基づいてグラフィックスライブラリの利用方法を変更する。また、仮想マシンがGPUに対して効果の高い命令を要求するようにグラフィックスライブラリを利用するようになる。これらにより、不要な計算処理を省くとともに、GPUを有効活用することで、描画のパフォーマンスを向上できる。
本発明の実施形態を適用した画像形成装置のハードウェア構成図である。 本発明の実施形態を適用した画像形成装置のソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの描画機能を示すソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの描画機能の初期化を示すフローチャートである。 本発明の実施形態を適用した仮想マシンが管理しているリソースの概念図である。 本発明の実施形態を適用した仮想マシンの描画処理全体を示すフローチャートと描画処理の過程を示す概念図である。 本発明の実施形態を適用した仮想マシンがコンテンツの描画処理を示すフローチャートである。 本発明の実施形態を適用した仮想マシンの線の描画機能を示すソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの線の描画処理を示すフローチャートである。 本発明の実施形態を適用した仮想マシンの文字の描画機能を示すソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの文字の描画処理を示すフローチャートである。 本発明の実施形態を適用した仮想マシンの文字の描画機能を示すソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの文字の描画処理を示すフローチャートである。 本発明の実施形態を適用した仮想マシンの文字の描画機能を示すソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの文字の描画処理を示すフローチャートである。 本発明の実施形態を適用した仮想マシンの文字の描画機能を示すソフトウェア構成図である。 本発明の実施形態を適用した仮想マシンの文字の描画処理を示すフローチャートである。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
[第1の実施形態]
<ハードウェア構成>
図1は、本発明の第1の実施形態に係る画像形成装置の内部構成の一例を示すハードウェア構成図である。図1に示す画像形成装置は、基本的な構成として、画像形成装置内の各部を制御するコントローラユニット100と、操作部112と、スキャナ部123と、プリンタ部125とを備える。操作部112は、例えば、数字を入力するためのテンキーや処理の実行を行うためのスタートキーなどのハードキーや液晶タッチパネルで構成され、ユーザが画像形成装置を操作するためのユーザインタフェースを提供する。操作部112のタッチパネルに表示される各設定項目を表すアイコンやボタン(もしくはハードキー)をタッチ(押下)することで、画像形成装置に設定や情報の入力を行うことが可能である。
スキャナ部123は、原稿等の画像を画像データとして読み取る。プリンタ部125は、記録用紙を搬送し、その記録用紙に画像データを可視画像として印刷する。
コントローラユニット100は、バス122を介してスキャナ部123に接続され、またバス124を介してプリンタ部125に接続される。また、コントローラユニット100は、LAN113や公衆回線(WAN)114や無線115を介して他の機器に接続して、画像情報やデバイス情報の入出力制御を行う。
CPU101は、プログラムを実行してシステム全体を制御するコントローラである。RAM102は、CPU101が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM103はブートROMである。ROM103には、システムのブートプログラムが格納されている。HDD104は、ハードディスクドライブであり、システムソフトウェアや画像データ、後述する通信部111が有するすべての無線通信に関する情報(無線通信の仕様)を格納する。
画像形成装置では、使用したい機能を実装したアプリをインストールすることで機能を増やすことができる。アプリのインストールにより、画像形成装置上で各種機能を動かすためのアプリケーションプログラムがRAM102やHDD104に記憶される。
操作部I/F106は、ユーザインターフェース(UI)である操作部112との間のインターフェース部であり、操作部112に表示すべきデータを操作部112に対して出力する。また、操作部112からユーザが入力した情報を、CPU101に伝える役割を行う。
GPU130は、RAM102上に確保された画像メモリの内容を、たとえばDMAなどで操作部112の表示部に出力するグラフィックスプロセッサである。この画像データの出力により操作部112に表示される画像が更新される。したがって画像データの出力は画像データが書き換えられた都度行えばよいが、定期的に出力を行ってもよい。GPU130はまた、画像メモリに、異なる画像バッファの画像データを合成する機能を有する。さらにこの合成時に不透過率(あるいは透過率)を反映した合成を行うアルファブレンディングの機能を持つもの、すなわち透過処理対応のものもある。アルファブレンディングの機能を持つものであっても、合成する画像データによっては透過率の値(アルファチャネル)を持たないものもあることから、透過処理の機能を用いずに合成する機能も有している。さらに、GPU130は矩形領域の塗りつぶしやビット単位のブロック転送の機能を持つ。GPUにはさらにシェーディング処理などを含む3Dレンダリング機能を持つもののあるが、本実施形態では3Dレンダリング機能は持たなくともよい。また本実施形態のGPUは、ラスタラインに平行な辺をもつ矩形の塗りつぶしに関しては高い性能を持つ。これはGPU一般に該当する。
Network部109は、LAN113に接続され、情報の入出力を行う。MODEM110は、公衆回線(WAN)114に接続され、情報の入出力を行う。
通信部111は、不図示のアンテナを介して無線(WIRELESS)115に接続され、情報の入出力を行う。また、通信部111は、複数種類の無線通信を行うことが可能である。上記各デバイスがシステムバス107上に配置される。
イメージバス105は、システムバス107と、画像データを高速で転送する画像バス108とを接続し、データ構造を変換するバスブリッジである。画像バス108は、PCIバスまたはIEEE1394等で規定されるバスである。
画像バス108上に配置される各デバイスにおいて、ラスターイメージプロセッサ(RIP)116は、PDLコードをビットマップイメージに展開する。デバイスI/F部117は、スキャナ部123またはプリンタ部125をコントローラユニット100に接続し、画像データの同期系/非同期系の変換を行う。
スキャナ画像処理部118は、入力画像データに対して補正、加工、または編集を行う。プリンタ画像処理部119は、プリント出力画像データに対して、プリンタ部125に合った補正、解像度変換等を行う。画像回転部120は、画像データの回転を行う。画像処理部121は、画像データに対する、JPEG、JBIG、MMR、MH等の圧縮伸張処理や、PDF、TIFF、OCR、暗号化等のフォーマット変換処理を行う。
<ソフトウェア構成>
図2は本発明の画像形成装置のソフトウェア構成図の一例である。なお、本図のソフトウェア構成図は説明の便宜上、階層構造で表現されているようにみえるが、必ずしも上位層と下位層が明確になっているわけではなく、機能によっては並列な関係をとりうることに注意されたい。つまり、本発明のソフトウェア構造の様態はこの形式に限定されるものではない。画像形成装置のソフトウェアは、HDD104に格納されている。
(アプリケーション及びライブラリ)
システムサービス264は、画像形成装置に事前に登録されているアプリであり、他のアプリに機能を提供するものや、単独で機能するものがある。他のアプリに機能を提供するものとして、例えば、エラー発生時の処理を代替するエラーリカバリーサービスや操作部112を制御するアプレットビューワーサービス(AVS)などがある。また、単独で機能するものとして、PCからブラウザを使用してアクセスされ、所定のアプリ・ファイルを受信するサービスマネジメントサービス(SMS)などがある。アプリA265は、SMSによってインストールされたアプリであり、画像形成装置上で様々な機能を提供するものである。アプリA265はAVSを実行時に参照し、操作部112を介してユーザとやり取りを行うことが可能である。また、アプリA265は、API263を介して、画像形成装置が提供するシステムライブラリ261や標準ライブラリ262の機能を利用できる。システムライブラリ261には、例えば、プリント処理やコピー処理やスキャン処理といったジョブを制御する機能も含まれる。アプリA265は、システムライブラリ261を利用することで画像形成装置が持つNetwork部109を介して、PCなどからデータを受信し、プリンタ部125を使って印刷することも可能である。標準ライブラリ262には計算処理や文字列処理、通信処理、画面制御処理、暗号処理などの画像形成装置上に限定されない汎用的な機能を提供するためのライブラリである。アプリフレームワーク260は、アプリのライフサイクルを管理する機能を提供するものである。
(仮想マシン)
仮想マシン250は、Java(登録商標)に代表される所定のプログラミング言語で記述されたアプリの実行環境を提供するプログラム(仮想マシンプログラム)である。仮想マシン(あるいは仮想マシン部)250は、アプリ等のソースコードを仮想マシン用にコンパイルして得られたバイトコードを解釈するバイトコード解釈部251、解釈されたネイティブコマンドを制御するネイティブコマンド制御部252、仮想マシン250上で動作するアプリ用のリソース(たとえばアプリのバイトコードや生成したインスタンスなど)を管理する仮想マシンリソース管理部253、アプリからの操作部112への描画命令を処理するグラフィックス処理制御部254、コントローラユニット100・操作部112・スキャナ部123・プリンタ部125の状態変化をアプリに通知するための制御を行うイベント制御部255、仮想マシン250がネイティブ制御部201への処理を要求する際に必要となるリソースを管理するネイティブリソース管理部256を含む。バイトコード解釈部251は、解釈したバイトコードをネイティブコマンドに変換し、ネイティブコマンド制御部252に処理を要求する。ネイティブコマンド制御部252は、ネイティブコマンドの内容に基づいて、ネイティブ制御部201、グラフィックス処理制御部254、イベント制御部255、仮想マシンリソース管理部253、ネイティブリソース管理部256に処理を要求する。例えば、ネイティブコマンド制御部252は、アプリからオブジェクトの新規生成要求を受けた時、仮想マシンリソース管理部253に該当オブジェクトの生成とオブジェクトのライフサイクルの管理を要求する。なお、オブジェクトには変数や定数を格納するフィールドと呼ばれる領域や処理命令を格納するメソッドエリアからなり、これらも仮想マシンリソース管理部253で管理される。また、ネイティブコマンド制御部252は、アプリからの画面描画命令を受けた時、グラフィックス処理制御部254に画面の描画を要求する。グラフィックス処理制御部254は、ネイティブライブラリ220を用いて、描画の準備や制御を行うとともに、ネイティブグラフィックス制御部210に描画要求を行う。描画要求を発行して要求された処理を遂行する。また、ネイティブコマンド制御部252は、例えば、アプリによる操作部112に対する入力操作の検出要求を解釈した時、イベント制御部255に操作イベントの登録を要求する。イベント制御部255は、ウィンドウシステム214から入力イベントを検知すると、その入力イベントを登録している全てのアプリに通知する。なお、イベント制御部255は、コントローラユニット100が省電力状態に変化したときのイベントやスキャナ部123に用紙がセットされたときのイベントなども制御でき、操作部112に関するイベントの制御に限定されない。また、ネイティブコマンド制御部252は、仮想マシン250自身が必要とするリソースの管理をネイティブリソース管理部256に要求する。ネイティブリソース管理部256は、仮想マシン250が動作に必要とする領域の確保や、スレッドの確保などをネイティブライブラリ220に要求する。その他、ネイティブリソース管理部256は、グラフィックス処理制御部254がネイティブグラフィックスライブラリ211から確保した内部的に利用する領域の管理も行う。
(ネイティブ制御部)
ネイティブ制御部201は、仮想マシン201による要求を処理し、また、仮想マシン201に対してイベントを通知するなどの処理を行う。ネイティブ制御部201は、ネイティブグラフィックス制御部210、ネイティブライブラリ220、OS230、ドライバ240を含む。ネイティブグラフィックス制御部210は、グラフィックスライブラリ211、ウィンドウシステム214、グラフィックスドライバ215、フレームバッファドライバ216を含む。ネイティブグラフィックス制御部210は主に、RAM102上に確保された領域への画面情報の書き出しと、その情報を操作部112に出力する機能を提供する。ここで、これらの機能は、CPU101もしくはGPU130またはその両方により行われる。
グラフィックスライブラリ211は、画面の描画に関するAPI(Application Program Interface)を提供している。グラフィックスライブラリ211は、仮想マシン210のグラフィックス処理制御部254からAPIを介してコマンド(あるいは関数)の呼び出しを受け付けると、呼び出されたコマンドに応じて画像処理を行い、ウィンドウシステム214にその結果を描画するように要求する。なお、グラフィックスライブラリ211は、複数のライブラリから構成されていても構わない。例えば、直線や四角形といった低レベルな描画処理に特化したライブラリや、透過処理・ベクトル描画などの高レベルな描画処理に対応したライブラリが同一の環境に存在しうる。本実施の形態では、透過処理に対応した高レベルな透過対応グラフィックスライブラリ212と、透過処理に未対応であるがその分高速な透過未対応グラフィックスライブラリ213がある。ある画像オブジェクトに他の画像オブジェクトを合成して描画する場合に、画像オブジェクトの色及び透過度(あるいは不透過度)を反映して行う画像合成が、透過処理に対応している描画処理である。透過度を全く反映せず、たとえば上書き合成のみをサポートする描画処理が透過処理非対応の描画処理である。グラフィクスライブラリの中の関数による描画要求を受けたウィンドウシステム214は、ウィンドウシステム214の設定情報に基づいて、適切な画面出力に関するドライバに描画処理の処理要求をする。ここで、「適切な画面出力に関するドライバ」はウィンドウシステム214の設定情報により予め決められている。また設定情報の変更によって切り替えることもできる。基本的にはフレームバッファドライバ216が提供する機能は、グラフィックスドライバ215が提供する機能を含むか、あるいは両者は同等である。同等でない場合に、グラフィックスドライバ215が提供できない機能についてはフレームバッファドライバ216が利用される。たとえば、フレームバッファドライバ216が提供する機能が、グラフィックスドライバ215が提供する機能と同等であれば、ウィンドウシステム214はグラフィックスドライバ215のみに対して描画処理を要求する。これは、GPUが、グラフィックスドライバも含めて透過処理に対応している場合である。GPUが透過処理に対応していなければ、フレームバッファへの描画はフレームバッファドライバ216を用い、他の機能、たとえばフレームバッファの画像データを操作部112の画像バッファに書き込む処理についてはグラフィックスドライバ215を用いる。
ここで、ウィンドウシステム214は、画面描画に関する機能に限らず、画面をウィンドウという単位で制御する機能や、操作部112からの入力を受けた入力ドライバ242からの信号を制御する機能などを有する。ウィンドウシステム214からの描画要求を受けとったグラフィックスドライバ215は、GPU130に対して描画命令を発行する機能を有し、GPU130は描画命令に応じて操作部112の表示部(表示用バッファ)に描画内容(画像データ)を出力する。フレームバッファドライバ216は、ウィンドウシステム214からの描画命令に基づいて、フレームバッファデバイスとよばれる操作部112の表示部と紐づいたRAM102上で管理されるメモリ領域(フレームバッファとも呼ぶ。)に描画内容を出力する。また、ウィンドウシステム214は、描画要求対象の画像データを操作部112の表示部に出力する以外に、出力されない画面(以下、オフスクリーン)としてRAM102に書き出すこともできる。そして、グラフィックスライブラリ211は、ウィンドウシステム214のオフスクリーンへの描画機能を利用できる。なお、操作部112に出力(すなわち表示)される画面(オンスクリーン)は、ウィンドウシステム214が制御しているウィンドウの一部もしくは全部として割り当てられる。
オペレーティングシステム(OS)230には一般的はリアルタイムOSが使用されるが、昨今ではLinux(登録商標)等の汎用OSが使用されることもある。ネイティブライブラリ220は、OS230の機能を呼び出すためのシステムコールや、ファイルシステム制御、スレッド制御、プロセス制御、メモリ制御といった機能を提供する。ドライバ240は、デバイスを制御するためのプログラムであり、OS230の起動時にRAM102にロードされるものや、必要に応じてロードされるものがある。例えば、ネットワークドライバ241は、通信部111の制御、入力ドライバ242は、操作部I/F106の制御、プリンタ・スキャナドライバはスキャナ部123やプリンタ部125を制御する機能を提供する。なお、説明の便宜上、画面描画に関するグラフィックスドライバ215とフレームバッファドライバ216は、ドライバ240に含めていないが、ドライバ240の1つと解釈できる。また、ドライバ240には、上述した資源以外を制御するものが含まれていてもかまわない。
<グラフィックス処理制御部>
図3は、仮想マシン250に含まれたグラフィックス処理制御部254の詳細を表すソフトウェア構成図の一例である。グラフィックス初期化部301は、仮想マシン250の起動時やオフスクリーン生成時にネイティブリソース管理部256に、対象となるスクリーンの領域の管理を要求する。なお、スクリーンとは、仮想マシン250が描画可能な領域のことである。また、グラフィックス初期化部301は、グラフィックスコンテキスト(以下、GCともいう)の生成を行う。ここで、グラフィックスコンテキストとは、スクリーンに紐づいた情報であり、描画する色や描画範囲など、描画に関する情報(描画属性)を格納しているリソースである。またたとえばJAVA(登録商標)においては、グラフィックスコンテキストは定義済みのクラスであり、情報に加えて例えば特定の項目の値を変更するメソッド等も併せて定義されている。なお、グラフィックスコンテキストは、1つのスクリーンに対して複数取得可能である。例えば、本発明では、スクリーンごとに透過処理を行うグラフィックスコンテキストと透過処理を行わないグラフィックスコンテキストの2つのグラフィックスコンテキストを生成する。そして、GC切り替え部304が、使用するグラフィックスコンテキストを切り替える。スクリーン情報管理部302は、グラフィックス初期化部301によって生成されたスクリーンとスクリーンに付随する情報(色、描画範囲など)を管理している。GC管理部303は、グラフィックス初期化部301によって生成されたグラフィックスコンテキストを管理している。グラフィックス描画制御部305は、コンテンツを描画するための準備を行い、線描画部306、文字描画部307、画像描画部308、矩形描画部309、点描画部310およびネイティブグラフィックス制御部210に描画の要求を行う。なお、コンテンツとは、スクリーンに描画する線、矩形、文字、画像などの描画オブジェクトの総称である。線描画部306は、スクリーンに線を描画する機能を有する。文字描画部307は、スクリーンに文字を描画する機能を有する。画像描画部308は、スクリーンに画像を描画する機能を有する。矩形描画部309は、スクリーンに矩形を描画する機能を有する。点描画部310は、スクリーンに点を描画する機能を有する。なお、円や多角形の描画は、線描画部306や点描画部310を組み合わせて実現可能である。それゆえ、仮想マシン250が描画可能なコンテンツは、本実施の形態であげている線や文字などに限定されるものではないことに注意されたい。
<グラフィックス初期化部による初期化処理>
図4は、グラフィックス初期化部301によって行われる初期化処理のフローチャートを示した図である。本フローチャートは、仮想マシン250の起動時や仮想マシン250がオフスクリーンの生成処理の要求を検知した時の処理である。ステップ401では、バイトコード制御部251から解釈されたスクリーンの初期化に関するネイティブコマンドを、ネイティブコマンド制御部252がグラフィックス初期化部301に通知する。ステップ402では、グラフィックス初期化部301は、通知内容に即したサイズのスクリーンを生成するように、グラフィックスライブラリ211に要求する。そして、グラフィックス初期化部301は、生成されたスクリーンをネイティブリソース管理部256に格納するように要求する。ステップ403では、グラフィックス初期化部301は、生成したスクリーンに関連した透過処理を行う透過グラフィックスコンテキスト(透過GC)の生成をグラフィックスライブラリ211に要求する。そして、生成した透過GCをGC管理部303に格納するように要求する。ステップ404では、ステップ403と同様に、生成したスクリーンに関連した透過処理を行わない不透過GCの生成と格納とを行う。なお、本実施の形態では、透過GCに基づいた描画処理は透過対応グラフィックスライブラリ212で、不透過GCに基づいた描画処理は、透過未対応グラフィックスライブラリ213で描画することに対応する。ステップ402で生成されたスクリーンは、サイズのみならずたとえば色の指定もされる。色の指定には透過度の指定を含む。したがって生成されたスクリーンは、指定されたサイズを持ち指定された色を持つ。なおスクリーンやグラフィックスコンテキストは、前述したように例えばJAVA(登録商標)においては事前定義されたクラスであり、スクリーンやグラフィックスコンテキストの生成とはそのインスタンスの生成により実現できる。
<オブジェクトの例>
図5は、仮想マシンリソース管理部253で管理されている描画処理に関するオブジェクトの情報を示す概念例である。この図では、CopyAppletClassというオブジェクトのpaintメソッドの内容を表している。図示されるg1やg2は、スクリーンに該当するものであり、g1.drawline(0,0,100,100)という処理は、g1スクリーンに2点間(0,0)、(100、100)に線を引くという処理にあたる。同様に、g2.drawRectangleはg2スクリーンに矩形を描画するという処理、g2.drawImageはg2スクリーンに画像やオフスクリーンを描画する処理にあたる。そして、g2.setColor(0,0,255)という処理は、これより後の処理でg2スクリーンに描画されるコンテンツの色を指定している。このメソッドは、グラフィックコンテキストとして設定された描画色を変更するメソッドである。このように、仮想マシンリソース管理部253には、コンテンツを描画する手順(メソッド)が事前定義されたオブジェクトが管理されている。このpaintメソッドを実行すると、図5に示した各命令が順次実行されてスクリーンg1、g2それぞれにラインや矩形が描画され、スクリーンg2がオフスクリーンで描画される。なお、図5は、あくまで説明上のものであり、仮想マシンリソース管理部253でのオブジェクトの管理形態が本概念図に限定されるものではない。
<コンテンツの描画処理>
図6(A)は、コンテンツの描画処理のフローチャートを示している。ステップ601では、仮想マシン250は、アプリから描画の要求を受け付ける。なお、描画要求の発生するタイミングとして、アプリの起動時や操作部112に対する入力検知に基づいた画面遷移、ウィンドウシステム214が管理している仮想マシン250のウィンドウが最上面でない状態から最上面になったときなどがある。ステップ602では、バイトコード制御部251は、仮想マシンリソース管理部253からバイトコードの参照が完了するまで、バイトコードを逐次解釈し、ステップ603〜ステップ605の処理を繰り返す。ステップ603では、バイトコード制御部251は解釈したバイトコードをネイティブコマンドとしてネイティブコマンド制御部252に通知する。ステップ604では、ネイティブコマンド制御部252は、描画に関するネイティブコマンドを処理するようにグラフィックス制御部254に要求する。ステップ605では、グラフィックス制御254がコンテンツの描画を行う(詳細は後述する)。
次に、実際にコンテンツが描画されていく過程を図6(B)に示す。なお、図6(B)は、画像形成装置用のコピーを実行するためのボタンがスクリーンに出力される過程を示す例である。ボタンを表示するために、たとえばひとつのクラスを定義し、その中にボタンを表示するためのメソッドを定義しておく。そのメソッドは、たとえばボタンの枠を描くdrawRectangle命令、ボタン内の文字を描くdrawString命令、drawImage命令を含む。各命令の引数は、矩形の対角点の位置や文字列などである。色や線幅、不透明度等、描画に必要な属性はグラフィックスコンテキストに定義されたものが適用される。そのメソッドの実行により、ステップ610では、仮想マシンリソース管理部253に格納されたdrawRectangle命令をバイトコード制御部251が解釈し、ネイティブコマンドとしてグラフィックス処理制御部254に描画要求を行った結果、スクリーンに矩形が描画される。ステップ611では、仮想マシンリソース管理部253に格納されたdrawString命令をバイトコード制御部251が解釈し、ネイティブコマンドとしてグラフィックス処理制御部254に描画要求を行った結果、スクリーンに「コピー」という文字が描画される。ステップ612では、仮想マシンリソース管理部253に格納されたdrawImage命令をバイトコード制御部251が解釈し、ネイティブコマンドとしてグラフィックス処理制御部254に描画要求を行った結果、スクリーンに画像が描画される。以上のステップを実行することで、スクリーン上にコピーボタンが描画される。このような処理を繰り返し行うことで、スクリーン上に様々なユーザインタフェースを実現できる。
(コンテンツの描画処理(S605))
図7は、ステップ605のコンテンツの描画処理の詳細なフローチャートを示す。ステップ701では、グラフィックス描画制御部305は、スクリーン情報管理部302から、コンテンツを描画するスクリーンに設定されている色情報を取得する。コンテンツを描画するスクリーンに設定されている色情報とは、たとえばスクリーンの背景色の色情報である。グラフィックス描画制御部305は、取得した色情報から透過値の有無を判別する。色情報には、たとえばRGBの各色成分を含むが、透過処理の対象となる色であればさらに透過値(あるいはアルファチャネル)を含む。スクリーンに設定されている色が透過値そのものを含まなければ、そのスクリーンに描画されるコンテンツに対する透過処理は不要と判断できる。逆に、色に透過値が含まれ、かつ透過値が0より大きい(あるいは不透過度が1より小さい)なら、透過処理が必要である。そこで、0より大きい透過値がある場合は、ステップ702に、透過値がない場合は、ステップ703に処理を移す。ステップ702では、GC切り替え部304は、GC管理部303に透過GCの取得を要求する。そして、取得した透過GCを現在のグラフィックスコンテキストにし、スクリーンの色情報をグラフィックスコンテキストにセットする。グラフィックスコンテキストは、それを用いた描画の際に参照されるため、透過GCをセットすれば、その後の描画では透過率を有する色で描画されることとなる。なお、ステップ701では、取得した色に透過値が含まれていても、その値が0(すなわち全く透過しない)であれば、透過処理不要としてステップ703に分岐するように構成してもよい。ステップ703では、GC切り替え部304は、GC管理部303に不透過GCの取得を要求する。そして、取得した不透過GCを現在のグラフィックスコンテキストにし、スクリーンの色情報をグラフィックスコンテキストにセットする。ステップ704では、グラフィックス描画制御部305は、描画するコンテンツの種類を判別する。コンテンツが線の場合はステップ705、文字の場合はステップ706、画像の場合はステップ707、矩形の場合はステップ708、点の場合はステップ709に処理を移す。ステップ705の線の描画、ステップ706の文字の描画の詳細は後述する。ステップ707では、画像描画部308は、仮想マシンリソース管理部253に格納されている画像オブジェクトを、バイトコード制御部251を介して取得する。画像描画部308は、取得した画像オブジェクトから画像サイズを取得し、グラフィックスライブラリ211に対して画像を描画するためのバッファの確保を要求する。そして、画像描画部308は、取得した画像バッファをネイティブリソース管理部256にいったん格納する。その後、画像描画部308は、画像バッファに画像オブジェクトのピクセルデータを格納し、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に画像バッファの描画を要求する。ステップ708では、矩形描画部309は、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に矩形の描画を要求する。ステップ709では、点描画部は、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に点の描画を要求する。
以上のようにして本実施形態の仮想マシン250は、アプリをコンパイルして得られたバイトコードを仮想マシンリソース管理部253にロードし、バイトコード制御部251が逐次解釈する。そして、解釈されたネイティブコマンドに基づいて、ネイティブコマンド制御部252が、グラフィックス処理制御部254に処理を要求し、グラフィックス処理制御部254がグラフィックスライブラリ211に描画の要求を送ることで、操作部112への描画処理を実現している。さらに、描画処理の過程において、スクリーンの色の透過値の有無に応じてグラフィックスコンテキストを切り替えて、透過処理の有無に応じたグラフィックスライブラリ211にコンテンツの描画を要求する。これにより、透過値のないコンテンツの描画には、透過非対応グラフィックスライブラリ213を使って描画することになる。このため、透過値がない場合には、透過のための描画処理を行わないために、透過対応グラフィックスライブラリ212で描画するよりも描画時間を短縮できる。これは、GPU130もしくはグラフィックスドライバ215が透過処理に対応していなければ、透過対応グラフィックスライブラリ212はフレームバッファドライバ216を用いて、すなわちCPU101により描画をおこなわねばならないため、一層顕著である。このため、本発明の仮想マシン250のように、適切に、不透過対応グラフィックスライブラリ212を利用して、不要な透過処理を省略することで、CPU101の負荷を下げることにつながり、画像形成装置のパフォーマンスを高められる。
(線の描画処理(S705))
図8は、線描画部306の詳細を表すソフトウェア構成図である。線描画処理制御部801は、グラフィックス描画制御部305からコンテンツの描画要求を受け付け、線種判定部805の結果に基づいて直線描画要求部805もしくは矩形描画要求部806にコンテンツの描画を要求する。コンテンツ記憶部803は、線描画処理制御部801からの要求に伴いコンテンツを格納する。線種判定部805は、コンテンツが垂直線・水平線かどうかを判別する。直線描画要求部805は、グラフィックスライブラリ211に直線の描画を要求する。矩形描画要求部806は、グラフィックスライブラリ211に幅が1となる矩形を用いて垂直線・水平線の描画を要求する。
図9は、ステップ705の線描画処理の詳細なフローチャートを示す。ステップ901では、線描画処理制御部801は、コンテンツに含まれる直線を構成する2点P1とP2の情報をP1x、P1y、P2x、P2yとしてコンテンツ記憶部803に格納する。なお、Pxは、直交座標系における水平軸をx軸としたときの点Pのx座標を、Pyは、同様に垂直軸をy軸としたときのy座標を表すものである。ステップ902では、線描画処理制御部801は、線種判定部805に2点P1とP2からなる線分が垂直線もしくは水平線かどうかの判定を要求する。そして、線種判定部805は、P1xとP2xが等しいかどうかを判定する。等しい場合はステップ903に、そうでなければステップ906に処理を進める。ステップ903では、線種判定部805はP1yがP2y以上かどうかを判定し、そうであればステップ904に、そうでなければステップ905に処理を進める。ステップ904では、線描画処理制御部801は、矩形描画要求部806に矩形の描画を要求する。要求をうけた矩形描画要求部806は、スクリーン情報管理部302から取得した色情報を現在のグラフィックスコンテキストにセットし、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に、横幅を1、縦幅をP1y−P2y+1の矩形描画を要求する。ステップ905では、線描画処理制御部801は、矩形描画要求部806に矩形の描画を要求する。要求をうけた矩形描画要求部806は、スクリーン情報管理部302から取得した色情報を現在のグラフィックスコンテキストにセットし、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に、横幅を1、縦幅をP2y−P1y+1の矩形描画を要求する。ステップ906では、線種判定部805は、P1yとP2yが等しいかどうかを判定する。等しい場合はステップ907に、そうでなければステップ910に処理を進める。ステップ907では、P1xがP2x以上であればステップ908に、そうでなければステップ909に処理を進める。ステップ908では、線描画処理制御部801は、矩形描画要求部806に矩形の描画を要求する。要求をうけた矩形描画要求部806は、スクリーン情報管理部302から取得した色情報を現在のグラフィックスコンテキストにセットし、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に、横幅P1x−P2x+1、縦幅を1の矩形描画を要求する。ステップ909では、線描画処理制御部801は、矩形描画要求部806に矩形の描画を要求する。要求をうけた矩形描画要求部806は、スクリーン情報管理部302から取得した色情報を現在のグラフィックスコンテキストにセットし、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に、横幅P2x−P1y+1、縦幅を1の矩形描画を要求する。ステップ910では、線描画処理制御部801は、直線描画要求部805に直線の描画を要求する。要求をうけた直線描画要求部805は、スクリーン情報管理部302から取得した色情報を現在のグラフィックスコンテキストにセットし、現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に、P1とP2間を結ぶ直線描画を要求する。
矩形描画要求を受けたグラフィックスライブラリ211は、ウィンドウシステム214を介して、その設定に応じたドライバに対して描画要求を発行する。本実施形態では、矩形描画が要求されたグラフィックスライブラリ211は、グラフィックスドライバ215に対して描画を要求する。したがって図9の矩形描画すなわち水平又は垂直の直線の描画は、GPU130により実行される。本実施形態のような直線が垂直線や水平線の場合に限って、所定値の幅の矩形による描画を行うことは、ラスタラインに水平や垂直な直線(すなわち操作パネルの表示部の辺あるいは画素列に平行な直線)の描画を効率化する。これは、矩形描画は、GPU130により高速に実行できるためである。画像形成装置のユーザインタフェースの直線のうち9割以上が垂直線や水平線で構成されており、これらの直線の描画が高速化されることは画像表示にあたり描画時間の短縮に対する貢献度が高い。
なお本実施形態では、描く直線の線幅を1としたが、色のみならず線幅もグラフィックコンテキストから取得し、その線幅を短辺の長さとし、指定された線の長さを長辺の長さとした矩形の描画(塗りつぶし)により線を描画することもできる。
(文字の描画処理(S705))
図10は、文字描画部307の詳細を表すソフトウェア構成図である。文字描画処理制御部1001は、グラフィックス描画制御部305からコンテンツの描画要求を受け付け、フォントデータ解釈部1002にコンテンツをフォントデータとして解釈させる。そして、文字描画処理制御部1001は、文字描画要求部1010にフォントデータの描画を要求する。フォントデータ解釈部1002は、コンテンツを読み取り、フォントデータとして解釈し、フォントデータ記憶部1003に格納する。なお、コンテンツをフォントデータとして解釈するということは、コンテンツが「A」という文字であった場合、「A」をスクリーンに出力するために、「A」をラスタライズされたピクセルの集まり(フォントデータ)として認識することである。文字描画部307は、グラフィックスライブラリ211にフォントデータ記憶部1003に格納されたフォントデータの描画要求を行う。点描画要求部1011は、フォントデータを構成するピクセルを解析し、不透過なピクセルをグラフィックスライブラリ211に描画するように要求する。
図11は、ステップ706の文字描画処理の詳細なフローチャートを示す。ステップ1101では、文字描画処理制御部1001は、コンテンツの解釈をフォントデータ解釈部1002に要求する。ステップ1102では、フォントデータ解釈部1002は、コンテンツをフォントデータに変換する。ステップ1103では、文字描画処理制御部1001が、ステップ1104、ステップ1105の処理をフォントデータの全てのピクセルに対して行うように反復制御を行う。ステップ1104では、文字描画処理制御部1001が、ピクセルが不透過であるかどうかを判定し、不透過であればステップ1105に、そうでなければ次のピクセルに処理を移すためステップ1103に戻る。不透過なピクセルが文字そのものを形成し、透過なピクセルは文字の背景部となる。ステップ1105では、点描画要求手段1011は、現在のグラフィックスコンテキストに基づいて、ピクセルの描画をグラフィックスライブラリ211に要求する。この結果、文字画像が画像メモリに描画され、操作パネルの表示部に当該文字を含む画像が表示される。
以上のようにして、透過ピクセルについては描画をスキップすることで、文字の描画に用いるグラフィックエンジンは透過対応である必要はなく、グラフィックスドライバ215やGPU130が透過対応であるか否かに関わらずGPU130を用いて文字を描画することができる。
<本実施形態の作用効果>
以上のように、本発明の仮想マシン250は、アプリをコンパイルして得られたバイトコードを仮想マシンリソース管理部253にロードし、バイトコード制御部251が逐次解釈する。そして、解釈されたネイティブコマンドをグラフィックス処理制御部254がグラフィックスライブラリ211に描画の要求を送ることで、操作部112への描画処理を実現している。さらに、描画処理の過程において、スクリーンの透過値に応じてグラフィックスコンテキストを切り替えて、適切なグラフィックスライブラリ211にコンテンツの描画を要求する。これにより、透過値のないコンテンツの描画には、透過未対応グラフィックスライブラリ213を使って描画することになる。このため、透過値がなくても必ず透過値を考慮して描画処理を行う透過対応グラフィックスライブラリ212で描画するよりも、描画時間を短縮できる。なぜならば、GPU130が透過処理に対応してない、もしくは、対応していてもグラフィックスドライバ215が対応していなければ、GPU130を使った透過処理の高速化は行えない。さらにいえば、ウィンドウシステム214が透過処理に対応した描画コマンドをグラフィックスドライバ215に発行する仕組みを利用していなければ、当然ながらGPU130の恩恵を享受できない。つまりは、このようなウィンドウシステム214上での動作を想定しているグラフィックスライブラリ211は、透過処理をCPU101で行うことになる。このため、本発明の仮想マシン250のように、適切に、不透過対応グラフィックスライブラリ212を利用して、不要な透過処理を省略することは、CPU101の負荷を下げることにつながり、画像形成装置のパフォーマンスを高められる。
また、本発明の仮想マシン250は、線描画部306にて、線を構成する2点の位置関係から、グラフィックスライブラリ211に対して、直線描画もしくは矩形描画を要求する。直線の描画には、直線の傾きをもとにラスタライズが必要であるが、前述したように、必ずしもGPU130を活用してラスタライズができるわけでなく、グラフィックスライブラリ211がCPUを用いて計算することもある。このようなケースでは、たとえ、直線が垂直線や水平線であったとしても、ラスタライズが一般的な直線と同様に行われる可能性があるため、その可能性を排除するには条件判定のオーバーヘッドが大きくなる。そのため、本発明のような直線が垂直線や水平線の場合に限って、幅1の矩形による描画を行うことは、ラスタライズの負荷を下げることにつながる。さらには、矩形描画に関しては、グラフィックスライブラリ211からGPU130を活用できる場合が多い。また、画像形成装置のユーザインタフェースの直線のうち9割以上が垂直線や水平線で構成されており、これらの直線の描画が高速化されることはユーザへの影響が大きい。
[第2の実施形態]
本実施形態では、文字の描画について特に説明する。本実施形態では、GPU130及びグラフィックスドライバ215が透過処理対応であることが前提である。第1の実施の形態では、文字描画要求部1010は、点描画要求部1011を用いて、操作部112に文字の描画を行っていた。しかし、グラフィックスライブラリ211がGPU130を活用できている場合、点描画は、1ピクセルごとにGPU130を呼び出すような処理となる。このため、文字に含まれる不透過ピクセルの数が多くなればなるほど、CPU101とGPU130間の通信が増えるため、ユーザへの応答速度が遅くなる。このような、点描画におけるオーバーヘッドを抑えるための実施の形態について説明する。なお、図中に表示される構成要素の番号やステップが第1の実施の形態と同じものについては、同じ機能、もしくは、同じ処理を指すため、説明を省略する。
図12は、本実施形態の文字描画部307の詳細を表すソフトウェア構成図である。図10との違いは、文字描画要求部1010に点描画要求部1011ではなくフォント画像描画要求部1201が含まれる点である。フォント画像描画要求部1201は、フォントデータを画像バッファに変換し、グラフィックスライブラリ211に文字を画像として描画するように要求する。
図13は、本実施の形態での文字描画処理の詳細なフローチャートを示す。ステップ1301では、文字描画処理制御部1001は、フォントデータから得られるフォントサイズを基に、グラフィックスライブラリ211に対してフォントデータを格納するための画像バッファの確保を要求する。そして、文字描画処理制御部1001は、取得した画像バッファをネイティブリソース管理部256にいったん格納する。そして、文字描画処理制御部1001は、スクリーン情報管理部302から色情報を取得し、フォントデータの不透過ピクセルと取得した色を割り当てたものを画像バッファに保存していく。ステップ1302では、フォント画像描画要求部1201は、画像バッファを現在のグラフィックスコンテキストに基づいてグラフィックスライブラリ211に描画するように要求する。
本実施の形態の仮想マシン250は、フォント画像描画要求部1201により文字を画像として描画する。文字を画像として描画する場合、文字を点描画で行った場合に比べてGPU130を利用する回数が減るため、オーバーヘッドの削減につながる。CPU101を用いて画像バッファにフォントデータを格納する処理は増加するが、フォントデータに含まれる不透過なピクセルが多い場合は、GPU130のオーバーヘッドの影響が大きいため文字描画処理の高速化につながる。特に、画像形成装置のユーザインタフェースには、平均して1画面に200文字程度であり、不透過なピクセルの数は10000を超えるため、点描画要求部1011による描画はGPU130を10000回以上呼び出すことになる。一方で、フォント画像描画要求部1201による描画は200回程度に抑えられる。このため、ユーザの体感速度の向上に寄与する。
[第3の実施形態]
第2の実施の形態では、すべての文字を画像として描画することにより、文字描画処理の高速化を実現している。しかし、例えば「,」や「'」といった不透過のピクセルが少ないフォントデータに対しても、画像として描画することになる。不透過のピクセルが少なければ、GPU130のオーバーヘッドよりもCPU101による画像バッファの生成と、GPU130を用いた画像描画を合わせた処理時間の方が上回ることがある。このような、画像描画におけるオーバーヘッドを抑えるための実施の形態について説明する。なお、図中に表示される構成要素の番号やステップが第1および第2の実施の形態と同じものについては、同じ機能、もしくは、同じ処理を指すため、説明を省略する。
図14は、文字描画部307の詳細を表すソフトウェア構成図である。図10および図12との違いは、文字描画要求部1010が点描画要求部1011とフォント画像描画要求部1201の2つを同時に備え、文字描画方法判定部1401と閾値格納部1402が含まれる点である。文字描画方法判定部1401は、フォントデータに含まれる不透過なピクセルの数と閾値格納部1402から得た閾値を比較し、文字の描画に点描画か画像描画のどちらを利用するかを判定する。なお、閾値格納部1402には、仮想マシン250の起動時に指定されるパラメータや、外部ファイルによって得られた数値、もしくは、画像形成装置に応じた適切な数値が格納されている。たとえば実験的に、あるはGPU130の処理能力を勘案して、文字を画像として描画した場合とピクセルごとに処理した場合とで、処理時間が等しくなるピクセル数を決定し、それを閾値とすればよい。
図15は、本実施の形態での文字描画処理の詳細なフローチャートを示す。ステップ1501では、文字描画方法判定部1401は、フォントデータの不透過ピクセル数を数える。ステップ1502では、文字描画方法判定部1401は、閾値格納部1402から取得した閾値と不透過ピクセル数を比較する。なおピクセル数を数えつつ閾値と比較してもよい。閾値が小さい場合にはその方が効率的であることもある。不透過ピクセル数が閾値以下であれば、点描画を行うため、ステップ1103へ処理を移し、そうでなければ、画像描画を行うため、ステップ1301に処理を移す。
本実施の形態の仮想マシン250は、文字描画方法判定部1401が閾値によって文字の描画方法を変更する。これにより、全ての文字を画像として描画するのに比べて、不透過ピクセル数が少ないために、点による描画よりも処理時間がかかるような場合については、点描画を行えるようになるため、文字の描画時間が短縮される。
[第4の実施形態]
第3の実施の形態では、閾値によって、文字の描画方法を切り替えている。一方で、仮想マシン250がサポートするフォントサイズは複数あることが一般的である。このため、フォントサイズに応じた閾値を与えなければ、適切に描画方法を切り替えられない。これは、フォントサイズが複数種類にわたる場合、すべてのサイズについて適切な閾値を算出する必要があることを意味し、パフォーマンスチューニングの作業工数増加につながる。このような、複数のフォントサイズをサポートする仮想マシン250における文字の描画の切り替え方法について説明する。なお、図中に表示される構成要素の番号やステップが第1、第2および第3の実施の形態と同じものについては、同じ機能、もしくは、同じ処理を指すため、説明を省略する。
図16は、文字描画部307の詳細を表すソフトウェア構成図である。図14との違いは、文字描画要求部1010が閾値格納部1402ではなく、描画時間予測部1601を備えている点である。描画時間予測部1601は、1つの点の描画に必要な処理時間と不透過ピクセル数から点描画に必要な処理時間を点描画処理時間予測値として求める機能を有する。さらに、描画時間予測部1601は、フォントサイズから、その画像の描画に必要な処理時間をフォント画像描画時間予測値として求める機能を有する。
図17は、本実施の形態での文字描画処理の詳細なフローチャートを示す。ステップ1701では、描画時間予測部1601は、フォントデータから不透過ピクセル数を求め、不透過ピクセル数から点描画処理時間予測値を求める。ステップ1702では、描画時間予測部1601は、フォントサイズからフォント画像描画処理時間予測値を求める。ステップ1703では、文字描画方法判定部1401は、点描画処理時間予測値がフォント画像描画時間予測値より小さければ点描画を行うため、ステップ1103へ、そうでなければ画像描画を行うため、ステップ1301へ処理を移す。
本実施の形態の仮想マシン250は、描画時間予測部1601が、フォントサイズおよび不透過ピクセル数から点描画処理時間予測値とフォント画像描画時間予測値を求める。そして、文字描画方法判定部1401がその予測値に基づいて文字の描画方法を変更している。これにより、事前に1つの点の描画に必要な処理時間と、画像サイズから画像の描画に必要な処理時間を予測するための計算式を割り出しておけば、フォントサイズごとに閾値を求めずとも、適切な描画方法を選択できるようになる。このため、パフォーマンスチューニングの作業工数を削減し、文字の描画時間を短縮できる。
[変形例]
また、本実施形態のように所要時間の予測を行うと、予測処理自体のオーバーヘッドが発生する。そこで、例えば図17のステップ1101からステップ1703までの処理を予め行っておき、文字コード及びサイズごとに、ピクセル単位の処理か、あるいは画像としての処理か、いずれを行うか決定しておき、決定結果を文字コード及びサイズと関連付けて保存しておく。描画時には、ステップ1101,1102の後ステップ1703に進み、保存した前述の決定結果をステップ1703における判定基準として、ステップ1103またはステップ1301に分岐する。このように構成することも可能である。
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (21)

  1. 表示部を有する画像形成装置であって、
    前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、
    APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリと、
    所定のプログラミング言語で記述されたプログラムを実行する仮想マシン手段であって、該仮想マシン手段は、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行する仮想マシン手段と
    を備え、
    前記仮想マシン手段は、プログラムの実行により描画を行う場合には、フレームバッファに描かれた画像データの色に透過値が含まれるか否か判定し、透過値が含まれる場合には、前記グラフィックスライブラリとして透過処理対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行し、透過値が含まれない場合には、前記グラフィックスライブラリとして、透過処理非対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行することを特徴とする画像形成装置。
  2. 前記透過処理対応のグラフィックスライブラリは、前記グラフィックスドライバに対して、透過処理を伴う描画要求を発行し、前記透過処理非対応のグラフィックスライブラリは、前記グラフィックスドライバに対して、透過処理を伴わない描画要求を発行することを特徴とする請求項1に記載の画像形成装置。
  3. 前記グラフィックスプロセッサを用いずに前記表示部により表示する画像を描画するフレームバッファドライバをさらに備え、
    前記グラフィックスライブラリはまた、前記グラフィックスプロセッサが対応していない描画処理については、前記グラフィックスドライバに代えて、前記フレームバッファドライバに対して描画要求を発行することを特徴とする請求項1又は2に記載の画像形成装置。
  4. 前記仮想マシン手段はさらに、プログラムの実行により、ラスタラインに平行または直交する直線の描画を行う場合には、前記直線の幅を短辺の長さとし、前記直線の長さを長辺の長さとする矩形領域を塗りつぶす描画の処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項1乃至3のいずれか一項に記載の画像形成装置。
  5. 前記直線の幅は所定値であるか、または前記仮想マシン手段が生成したグラフィックコンテキストに含まれた線幅の値であることを特徴とする請求項4に記載の画像形成装置。
  6. 前記仮想マシン手段はさらに、プログラムの実行により、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素を、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項1乃至3のいずれか一項に記載の画像形成装置。
  7. 前記仮想マシン手段は、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項6に記載の画像形成装置。
  8. 前記仮想マシン手段は、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素の数を閾値と比較し、閾値以下であれば画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行し、閾値を超えていれば、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項6に記載の画像形成装置。
  9. 前記仮想マシン手段は、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行した場合の処理時間の予測値と、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行した場合の処理時間の予測値とをそれぞれ求めて比較し、予測値が小さい方の処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項6に記載の画像形成装置。
  10. 表示部を有する画像形成装置であって、
    前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、
    APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリと、
    所定のプログラミング言語で記述されたプログラムを実行する仮想マシン手段であって、該仮想マシン手段は、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行する仮想マシン手段と
    を備え、
    前記仮想マシン手段は、プログラムの実行により、ラスタラインに平行または直交する直線の描画を行う場合には、前記直線の幅を短辺の長さとし、前記直線の長さを長辺の長さとする矩形領域を塗りつぶす描画の処理要求を前記グラフィックスライブラリに対して発行することを特徴とする画像形成装置。
  11. 前記直線の幅は所定値であるか、または前記仮想マシン手段が生成したグラフィックコンテキストに含まれた線幅の値であることを特徴とする請求項10に記載の画像形成装置。
  12. 表示部を有する画像形成装置であって、
    前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、
    APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリと、
    所定のプログラミング言語で記述されたプログラムを実行する仮想マシン手段であって、該仮想マシン手段は、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行する仮想マシン手段と
    を備え、
    前記仮想マシン手段は、プログラムの実行により、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素を、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする画像形成装置。
  13. 前記仮想マシン手段は、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項12に記載の画像形成装置。
  14. 前記仮想マシン手段は、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素の数を閾値と比較し、閾値以下であれば画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行し、閾値を超えていれば、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項12に記載の画像形成装置。
  15. 前記仮想マシン手段は、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行した場合の処理時間の予測値と、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行した場合の処理時間の予測値とをそれぞれ求めて比較し、予測値が小さい方の処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項12に記載の画像形成装置。
  16. 表示部を有する画像形成装置のプロセッサにより実行される仮想マシンプログラムであって、前記画像形成装置は、前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリとを有しており、
    前記仮想マシンプログラムは、所定のプログラミング言語で記述されたプログラムを実行し、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行し、描画を行う場合には、フレームバッファに描かれた画像データの色に透過値が含まれるか否か判定し、透過値が含まれる場合には、前記グラフィックスライブラリとして透過処理対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行し、透過値が含まれない場合には、前記グラフィックスライブラリとして、透過処理非対応のグラフィックスライブラリを選択し、該グラフィックスライブラリに対する描画の処理要求を発行することを特徴とする仮想マシンプログラム。
  17. 表示部を有する画像形成装置のプロセッサにより実行される仮想マシンプログラムであって、前記画像形成装置は、前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリとを有しており、
    前記仮想マシンプログラムは、所定のプログラミング言語で記述されたプログラムを実行し、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行し、ラスタラインに平行または直交する直線の描画を行う場合には、前記直線の幅を短辺の長さとし、前記直線の長さを長辺の長さとする矩形領域を塗りつぶす描画の処理要求を前記グラフィックスライブラリに対して発行することを特徴とする仮想マシンプログラム。
  18. 表示部を有する画像形成装置のプロセッサにより実行される仮想マシンプログラムであって、前記画像形成装置は、前記表示部により表示する画像を描画するグラフィックスプロセッサを用いたグラフィックスドライバと、APIを介した処理要求に応じて、前記グラフィックスドライバに対して描画要求を発行するグラフィックスライブラリとを有しており、
    前記仮想マシンプログラムは、所定のプログラミング言語で記述されたプログラムを実行し、実行するプログラムに応じて前記APIを介して前記グラフィックスライブラリに対する処理要求を発行して処理を遂行し、文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素を、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする仮想マシンプログラム。
  19. 文字の描画を行う場合には、前記文字に対応した文字画像を生成し、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項18に記載の仮想マシンプログラム。
  20. 文字の描画を行う場合には、前記文字に対応した文字画像を生成し、該文字画像のうち、文字を構成する画素の数を閾値と比較し、閾値以下であれば画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行し、閾値を超えていれば、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項18に記載の仮想マシンプログラム。
  21. 文字の描画を行う場合には、前記文字に対応した文字画像を生成し、画素ごとに描画する処理要求を前記グラフィックスライブラリに対して発行した場合の処理時間の予測値と、画素ごとに描画する処理要求を発行することなく、前記文字画像を描画する処理要求を前記グラフィックスライブラリに対して発行した場合の処理時間の予測値とをそれぞれ求めて比較し、予測値が小さい方の処理要求を前記グラフィックスライブラリに対して発行することを特徴とする請求項18に記載の仮想マシンプログラム。
JP2012167648A 2012-07-27 2012-07-27 画像形成装置及び仮想マシンプログラム Expired - Fee Related JP5955148B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012167648A JP5955148B2 (ja) 2012-07-27 2012-07-27 画像形成装置及び仮想マシンプログラム
US13/936,676 US8860957B2 (en) 2012-07-27 2013-07-08 Image forming apparatus having a virtual machine for performing processing by issuing a processing request to a graphics library via an API
KR1020130085094A KR101571595B1 (ko) 2012-07-27 2013-07-19 화상 형성 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012167648A JP5955148B2 (ja) 2012-07-27 2012-07-27 画像形成装置及び仮想マシンプログラム

Publications (2)

Publication Number Publication Date
JP2014026541A true JP2014026541A (ja) 2014-02-06
JP5955148B2 JP5955148B2 (ja) 2016-07-20

Family

ID=49994597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012167648A Expired - Fee Related JP5955148B2 (ja) 2012-07-27 2012-07-27 画像形成装置及び仮想マシンプログラム

Country Status (3)

Country Link
US (1) US8860957B2 (ja)
JP (1) JP5955148B2 (ja)
KR (1) KR101571595B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095580A (ja) * 2014-11-12 2016-05-26 キヤノン株式会社 画像形成装置、画像形成方法、プログラム
JP2021012703A (ja) * 2020-09-14 2021-02-04 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677858B (zh) * 2012-08-30 2019-09-10 南京中兴新软件有限责任公司 一种云环境中虚拟机软件管理的方法、系统及设备
US10127062B2 (en) * 2013-10-22 2018-11-13 Citrix Systems, Inc. Displaying graphics for local virtual machine by allocating textual buffer
JP6771874B2 (ja) * 2015-09-16 2020-10-21 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
JP6700848B2 (ja) * 2016-02-23 2020-05-27 キヤノン株式会社 管理システム、制御方法
JP6812141B2 (ja) * 2016-05-31 2021-01-13 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
KR102671404B1 (ko) 2016-12-12 2024-05-31 삼성전자주식회사 모션 기반 영상을 처리하는 방법 및 장치
US10679314B2 (en) 2017-03-15 2020-06-09 Microsoft Technology Licensing, Llc Techniques for reducing perceptible delay in rendering graphics
KR20210009515A (ko) * 2019-07-17 2021-01-27 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 사용자 정의 서비스 관리
CN116450363B (zh) * 2023-06-13 2023-11-14 荣耀终端有限公司 一种资源调度方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH052459A (ja) * 1991-06-24 1993-01-08 Brother Ind Ltd 描画装置
JP2001117750A (ja) * 1999-10-22 2001-04-27 Hitachi Ltd 表示制御装置および表示方法
JP2003510717A (ja) * 1999-09-27 2003-03-18 カナル プラス ソシエテ アノニム 複数ウィンドウ制御システム
JP2005165160A (ja) * 2003-12-05 2005-06-23 Yutaka Wada スケーラブルフォントの作成方法および表示方法
JP2006289851A (ja) * 2005-04-13 2006-10-26 Canon Inc 画像形成装置及び画像形成方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751289A (en) * 1992-10-01 1998-05-12 University Corporation For Atmospheric Research Virtual reality imaging system with image replay
JP2006171274A (ja) 2004-12-15 2006-06-29 Matsushita Electric Ind Co Ltd アプリケーション描画端末、アプリケーション描画の表示方法およびアプリケーション描画プログラム
US20070253006A1 (en) * 2006-04-27 2007-11-01 Xerox Corporation Print user interface
US8149242B2 (en) * 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US8266618B2 (en) * 2008-11-21 2012-09-11 International Business Machines Corporation Graphics hardware resource usage in a fully virtualized computing environment
US8966477B2 (en) * 2011-04-18 2015-02-24 Intel Corporation Combined virtual graphics device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH052459A (ja) * 1991-06-24 1993-01-08 Brother Ind Ltd 描画装置
JP2003510717A (ja) * 1999-09-27 2003-03-18 カナル プラス ソシエテ アノニム 複数ウィンドウ制御システム
JP2001117750A (ja) * 1999-10-22 2001-04-27 Hitachi Ltd 表示制御装置および表示方法
JP2005165160A (ja) * 2003-12-05 2005-06-23 Yutaka Wada スケーラブルフォントの作成方法および表示方法
JP2006289851A (ja) * 2005-04-13 2006-10-26 Canon Inc 画像形成装置及び画像形成方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095580A (ja) * 2014-11-12 2016-05-26 キヤノン株式会社 画像形成装置、画像形成方法、プログラム
JP2021012703A (ja) * 2020-09-14 2021-02-04 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム
JP7277423B2 (ja) 2020-09-14 2023-05-19 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム

Also Published As

Publication number Publication date
US8860957B2 (en) 2014-10-14
US20140029029A1 (en) 2014-01-30
KR20140013949A (ko) 2014-02-05
KR101571595B1 (ko) 2015-11-24
JP5955148B2 (ja) 2016-07-20

Similar Documents

Publication Publication Date Title
JP5955148B2 (ja) 画像形成装置及び仮想マシンプログラム
US9412329B2 (en) Methods and apparatuses for controlling display devices
KR100799019B1 (ko) 디지털 문서 처리
US8056006B2 (en) Systems and methods for digital document processing
US8422105B2 (en) Image forming apparatus including a display apparatus having a memory cofigured to retain settings concerning components forming a display component, a display control method, and a computer-readable recording medium thereof
US9137402B2 (en) Displaying an operational screen of an image forming apparatus on a display screen of a client device in order to control the image forming apparatus from the client device
EP2515275A1 (en) Device and method for image generation
JP5696721B2 (ja) 表示処理装置、画像形成装置、リモート画面の表示処理システム及び表示処理方法
EP1457872B1 (en) Digital document processing
JP2010175638A (ja) 表示装置及び表示装置の表示方法
JP5430491B2 (ja) 情報処理装置、表示装置、表示システム、情報処理装置の制御方法、及び表示装置の制御方法
WO2017215516A1 (zh) 确定解码任务的方法和装置
JP6107246B2 (ja) 画像処理装置、画像処理装置の制御方法、および画像処理装置の制御プログラム
JP2018026656A (ja) 情報処理装置及びプログラム
JP2012060401A (ja) 画像形成装置及び描画制御方法
JP2014120017A (ja) 画像処理システム、画像処理装置、情報端末装置及びプログラム
JP7052842B2 (ja) 情報処理装置およびプログラム
US10788925B2 (en) Touch panel sharing support apparatus, touch panel sharing method, and computer program
JP6784953B2 (ja) 情報処理装置およびプログラム
JP2018156321A (ja) 画像処理装置、情報処理方法及びプログラム
JP5444888B2 (ja) 画像処理装置、描画制御方法及び描画制御プログラム
JPH117364A (ja) 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム
JP2009064330A (ja) 外部処理装置と外部処理方法とプログラムとコンピュータ読み取り可能な記録媒体とシステム
JP2014120896A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2012234493A (ja) 表示制御装置、表示制御方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160614

R151 Written notification of patent or utility model registration

Ref document number: 5955148

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees