(57)【特許請求の範囲】
【請求項１】
文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示プログラムであって、
描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定機能と、その設定機能による設定結果に従って前記引数を取り扱って前記文字を表示する表示機能と、をコンピュータに実行させ、
前記引数は、座標値であり、
前記描画モードとして、新たに取得された座標値を整数部のみで表現されたものとして扱うモードと、新たに取得された座標値を整数部と小数部との組で表現されたものとして扱うモードとを有し、
前記設定機能は、前記後に取得される命令に付随する座標値を前記整数部のみ及び前記整数部と小数部との組のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定することを特徴とする表示プログラム。
【請求項２】
前記設定機能は、前記後に取得される命令に付随する座標値を、前記整数部と小数部との組で表現したものとして扱うようにした場合には、前記整数部のみで表現したものとして扱うようにした場合より多くのビット幅が割り当てられているものとして扱うように前記取扱い方法を設定することを特徴とする請求項１に記載の表示プログラム。
【請求項３】
文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示装置であって、
描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定手段と、その設定手段による設定結果に従って前記引数を取り扱って前記文字を表示する表示手段と、を備え、
前記引数は、座標値であり、
前記描画モードとして、新たに取得された座標値を整数部のみで表現されたものとして扱うモードと、新たに取得された座標値を整数部と小数部との組で表現されたものとして扱うモードとを有し、
前記設定手段は、前記後に取得される命令に付随する座標値を前記整数部のみ及び前記整数部と小数部との組のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定することを特徴とする表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて文字を表示する表示プログラム及び表示装置に関する。
【背景技術】
【０００２】
従来、この種の技術としては、例えば、付随する引数（座標値）を相対座標で表現したものとして取り扱わせる命令、及び前記座標値を絶対座標で表現したものとして取り扱わせる命令のいずれかが取得されると、その命令に従った形式で、当該命令に付随する座標値を取り扱う表示プログラムが知られている（例えば、非特許文献１参照）。
また、このような技術にあっては、一般に、命令及び当該命令に付随する引数の組み合わせからなるセグメントに出現率に応じた最適な圧縮符号を割り当てることで、描画命令データ（複数のセグメントを含むデータ）のデータ量を圧縮するようになっている。
【非特許文献１】http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の技術にあっては、付随する引数を相対座標として取り扱わせる命令と絶対座標として取り扱わせる命令とをそれぞれ異なる命令として用意しているため、命令の種類が増大し、その結果、描画命令データの圧縮率が低下する恐れがあった。
本発明は、上記従来の技術の未解決の課題を解決することを目的とするものであって、描画命令データの圧縮率を向上可能な表示プログラム及び表示装置を提供することを課題とする。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の表示プログラムは、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示プログラムであって、描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定機能と、その設定機能による設定結果に従って前記引数を取り扱って前記文字を表示する表示機能と、をコンピュータに実行させることを特徴とする。
【０００５】
また、前記引数は、座標値であり、前記描画モードとして、新たに取得された座標値を直前に描画された要素の終点の座標値との相対座標で表現されたものとして扱うモードと、新たに取得された座標値を絶対座標で表現されたものとして扱うモードとを有し、前記設定機能は、前記後に取得される命令に付随する座標値を前記相対座標及び前記絶対座標のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定してもよい。
【０００６】
さらに、前記引数は、座標値であり、前記描画モードとして、新たに取得された座標値を整数部のみで表現されたものとして扱うモードと、新たに取得された座標値を整数部と小数部との組で表現されたものとして扱うモードとを有し、前記設定機能は、前記後に取得される命令に付随する座標値を前記整数部のみ及び前記整数部と小数部との組のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定してもよい。
【０００７】
また、前記引数は、座標値であり、前記描画モードとして、新たに取得された座標値を低圧縮座標指定で表現されたものとして扱うモードと、新たに取得された座標値を高圧縮座標指定で表現されたものとして扱うモードとを有し、前記設定機能は、前記後に取得される命令に付随する座標値を前記低圧縮座標指定及び前記高圧縮座標指定のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定してもよい。
【０００８】
さらに、本発明のデータ構造は、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示プログラムで用いられるデータ構造であって、描画モードを設定するモード設定用命令を、その描画モードに従って引数を取り扱わせる命令の前に配したことを特徴とする。
また、本発明の表示装置は、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示装置であって、描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定手段と、その設定手段による設定結果に従って前記引数を取り扱って前記文字を表示する表示手段と、を備えたことを特徴とする。
【０００９】
このような構成により、例えば、付随する座標値を相対座標（又は整数部のみ）で表現したものとして取り扱わせる命令と絶対座標（又は整数部と小数部との組）で表現したものとして取り扱わせる命令とで同じ命令を用いることができるため、命令の種類が少なくて済み、その結果、描画命令データの圧縮率を向上することができる。
さらに、本発明の表示プログラムにあっては、前記設定機能は、前記後に取得される命令に付随する座標値を、前記整数部と小数部との組で表現したものとして扱うようにした場合には、前記整数部のみで表現したものとして扱うようにした場合より多くのビット幅が割り当てられているものとして扱うように前記取扱い方法を設定してもよい。
【００１０】
このような構成により、例えば、図形を描画するための命令の取得前に、座標値を整数部と小数部との組で表現したものとして取り扱う描画モードに設定するモード設定用命令を取得させることで、前記命令に付随する座標値に多くのビット幅を割り当てることができるため、表示体全体に図形を描画する際に、拡大・縮小率を変更することなく、緻密な図形を描画することができる。また、例えば、図形を構成する直線やベジエ曲線を分割せずに済み、その結果、命令の総数が増えることを防止することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の表示装置の一実施形態を図面に基づいて説明する。
＜第１実施形態＞
【００１２】
＜表示装置の構成＞
図１は、本実施形態の表示装置の内部構成を示すブロック図である。この図１に示すように、表示装置１は、入力手段２、入力手段コントローラ３、メモリ４、メモリコントローラ５、外部記憶６、外部記憶コントローラ７、ＣＰＵ８、表示コントローラ９、表示体１０、バスコントローラ１１、及び電源コントローラ１２を含んで構成される。
【００１３】
入力手段２は、マウスやキーボード等、文字の描画を指示するときに操作させる機器である。そして、入力手段２は、文字の描画を指示するための操作が行われると、文字の描画指示を入力手段コントローラ３を介してＣＰＵ８に出力する。
入力手段コントローラ３は、入力手段２とＣＰＵ８との間のデータ転送を制御する。  メモリ４は、ＣＰＵ８がプログラムを実行するときに各種プログラムを展開するワークエリアを形成するとともに、ＣＰＵ８により実行される各種プログラムに係るデータや、表示対象である情報のデータを記憶する記憶領域を形成する。
【００１４】
メモリコントローラ５は、メモリ４とＣＰＵ８との間のデータ転送を制御する。
外部記憶６は、ＣＰＵ８により実行される基本制御プログラムやアプリケーションプログラム等の各種プログラム及びこれら各種プログラムに係るデータを格納する。
外部記憶コントローラ７は、外部記憶６とＣＰＵ８との間のデータ転送を制御する。
ＣＰＵ８は、外部記憶６に格納されている各種プログラムを読み込み、それらをメモリ４内に形成されるワークエリアに展開して各部２〜１２を制御する。
【００１５】
具体的には、ＣＰＵ８は、入力手段２から文字の描画指示が出力されると、文字描画処理を実行する。そして、文字描画処理によって、その文字の文字コードに基づいて描画命令データ（前記文字を構成する各要素それぞれを描画するための複数のニーモニック（命令と当該命令に付随する引数との組み合わせを示すデータ）からなるデータ、所定の順番でニーモニックが並べられたデータ）を取得し、その描画命令データからニーモニックを前記所定の順序に従って１つずつ取得し、そのニーモニックに基づいて、前記描画指示があった文字のビットマップを生成する。
【００１６】
また、ＣＰＵ８は、描画モードを設定するためのニーモニック（モード設定用ニーモニック）が取得された場合には、そのモード設定用ニーモニックに従って、後に取得される前記描画指示があった文字を構成する各要素に対応するニーモニック（要素対応ニーモニック）に含まれる座標値（ビット列）の取り扱い方法を設定する。
すなわち、描画命令データを構成するニーモニックは、モード設定用ニーモニックの後に、その描画モードに従って座標値を取り扱わせるニーモニックが配されている。
【００１７】
ここで、モード設定用ニーモニックとしては、図２に示すように、ChangeRelInt、ChangeRelFix、ChangeAbsInt、及びChangeAbsFixが挙げられる。
ChangeRelIntは、要素対応ニーモニックの座標値を、直前に描画された要素の終点の座標値との相対座標を整数形式（整数部のみを含む形式）で表現したものとして扱うことを指示する。
ChangeRelFixは、要素対応ニーモニックの座標値を、直前に描画された要素の終点の座標値との相対座標を小数形式（整数部と小数部との両方を含む形式）で表現したものとして扱うことを指示する。
【００１８】
ChangeAbsIntは、要素対応ニーモニックの座標値を、絶対座標を整数形式で表現したものとして扱うことを指示する。
ChangeAbsFixは、要素対応ニーモニックの座標値を、絶対座標を小数形式で表現したものとして扱うことを指示する。
なお、図２において、EndOfCodeは、描画命令データを構成する最後のニーモニックであることを示すコードである。
【００１９】
また、要素対応ニーモニックとしては、図３〜図６に示すように、MoveTo_S、MoveTo_M、MoveTo_L、HorLineTo_S、HorLineTo_M、HorLineTo_L、VerLineTo_S、VerLineTo_M、VerLineTo_L、LineTo_S、LineTo_M、LineTo_L、ConicCurveTo_S、ConicCurveTo_M、ConicCurveTo_L、CubicCurveTo_S、CubicCurveTo_M、及びCubicCurveTo_Lが挙げられる。
【００２０】
MoveTo_S、MoveTo_M及びMoveTo_Lは、引数の数（２）及び座標値（Ｘ１、Ｙ１）を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt又はChangeRelFixである場合には、直前に描画された要素の終点からの相対座標が座標値（Ｘ１，Ｙ１）となる点に移動することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt又はChangeAbsFixである場合には、絶対座標系で座標値（Ｘ１，Ｙ１）に移動することを指示する。なお、本実施形態では、表示体１０の左上隅に絶対座標の原点が設定され、平面視右方向にＸ軸が形成され、平面視下方向にＹ軸が形成される。
【００２１】
HorLineTo_S、HorLineTo_M及びHorLineTo_Lは、引数の数（１）及びＸ方向の座標値Ｘ１を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からＸ方向に長さＸ１の水平線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、その始点とＹ座標が等しく且つＸ座標値がＸ１となる点を終点とする水平線を描画することを指示する。
【００２２】
VerLineTo_S、VerLineTo_M及びVerLineTo_Lは、引数の数（１）及びＹ方向の座標値Ｙ１を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からＹ方向に長さＹ１の垂直線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、その始点とＸ座標が等しく且つＹ座標値がＹ１となる点を終点とする垂直線を描画することを指示する。
【００２３】
LineTo_S、LineTo_M及びLineTo_Lは、引数の数（２）及び１つの座標値（Ｘ１、Ｙ１）を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からの相対座標が座標値（Ｘ１、Ｙ１）となる点を終点とする直線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、座標値（Ｘ１、Ｙ１）を終点とする直線を描画することを指示する。
【００２４】
ConicCurveTo_S、ConicCurveTo_M及びConicCurveTo_Lは、引数の数（４）及び座標値（Ｘ１、Ｙ１）（Ｘ２、Ｙ２）を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からの相対座標が座標値（Ｘ１、Ｙ１）となる点を制御点とし、前記制御点からの相対座標が座標値（Ｘ２、Ｙ２）となる点を終点とする２次ベジエ曲線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、座標値（Ｘ１、Ｙ１）を制御点とし、座標値（Ｘ２、Ｙ２）を終点とする２次ベジエ曲線を描画することを指示する。
【００２５】
CubicCurveTo_S、CubicCurveTo_M及びCubicCurveTo_Lは、引数の数（６）及び座標値（Ｘ１、Ｙ１）（Ｘ２、Ｙ２）（Ｘ３、Ｙ３）を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からの相対座標が座標値（Ｘ１、Ｙ１）となる点を第一制御点とし、前記第一制御点からの相対座標が座標値（Ｘ２、Ｙ２）となる点を第二制御点とし、前記第二制御点からの相対座標が座標値（Ｘ３、Ｙ３）となる点を終点とする３次ベジエ曲線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、座標値（Ｘ１、Ｙ１）を第一制御点とし、座標値（Ｘ２、Ｙ２）を第二制御点とし、（Ｘ３、Ｙ３）を終点とする３次ベジエ曲線を描画することを指示する。
【００２６】
また、MoveTo_S、HorLineTo_S、VerLineTo_S、LineTo_S、ConicCurveTo_S、CubicCurveTo_Sにあっては、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeAbsIntである場合には、座標値として７ビットのビット列を用いている。また、最後に読み込まれたモード設定用ニーモニックがChangeRelFix又はChangeAbsFixである場合には、座標値として整数部分に３ビットのビット列を用い且つ小数部分に４ビットのビット列を用いている。
【００２７】
MoveTo_M、HorLineTo_M、VerLineTo_M、LineTo_M、ConicCurveTo_M、CubicCurveTo_Mは、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeAbsIntである場合には、座標値として１０ビットのビット列を用いている。また、最後に読み込まれたモード設定用ニーモニックがChangeRelFix又はChangeAbsFixである場合には、座標値として整数部分に６ビットのビット列を用い且つ小数部分に４ビットのビット列を用いている。
【００２８】
MoveTo_L、HorLineTo_L、VerLineTo_L、LineTo_L、ConicCurveTo_L及びCubicCurveTo_Lは、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeAbsIntである場合には、座標値として１６ビットのビット列を用いている。また、最後に読み込まれたモード設定用ニーモニックがChangeRelFix又はChangeAbsFixである場合には、座標値として整数部分に２０ビットのビット列を用い且つ小数部分に４ビットのビット列を用いている。
表示コントローラ９は、ＣＰＵ８でビットマップが生成されると、そのビットマップを表示体１０に描画する。
【００２９】
表示体１０は、電力供給が停止されても表示内容を保持できる記憶性表示体（コレステリック液晶）を含んで構成される。そして、表示体１０は、表示コントローラ９の描画動作によって表示内容が書き換えられる。
バスコントローラ１１は、ＣＰＵ８と各部２〜１２との間のデータ転送を制御する。
電源コントローラ１２は、ＣＰＵ８からの指令に従って、表示装置１の各部２〜１２への電源供給を制御する。
【００３０】
＜ＣＰＵの動作＞
次に、ＣＰＵ８で実行される文字描画処理を図７のフローチャートに基づいて説明する。
この文字描画処理は、文字の描画指示があると実行される処理であって、まず、そのステップＳ１０１で、前記描画指示された文字の文字コードを取得し、その文字コードをフォントデータのインデックスに変換する。
【００３１】
次にステップＳ１０２に移行して、前記ステップＳ１０１で変換されたインデックスに基づいて描画命令データ（所定の順番に従って並べられた、複数のニーモニックからなるデータ）を取得する。
次にステップＳ１０３に移行して、前記ステップＳ１０２で取得された描画命令データに基づいて、前記描画指示があった文字のビットマップを生成するビットマップ生成処理（後述）を実行してから、この演算処理を終了する。
【００３２】
次に、前記文字描画処理のステップＳ１０３で実行されるビットマップ生成処理を図８のフローチャートに基づいて説明する。
このビットマップ生成処理は、まず、そのステップＳ２０１で、処理対象である画素を示す座標値（現在座標値）ｖを（０、０）とする。
次にステップＳ２０２に移行して、描画モードを示すパラメータModeを（Rel、Int）（モード設定用ニーモニックChanegeRelIntが読み込まれた状態）とする。
【００３３】
次にステップＳ２０３に移行して、前記ステップＳ１０２で取得された描画命令データからニーモニックを所定の順番に従って１つ取得する。
次にステップＳ２０４に移行して、前記ステップＳ２０３で取得されたニーモニックがEndOfCodeであるか否かを判定する。そして、EndOfCodeである場合には（Ｙｅｓ）ステップＳ２０６に移行し、EndOfCodeでない場合には（Ｎｏ）ステップＳ２０５に移行する。
【００３４】
前記ステップＳ２０５では、前記ステップＳ２０３で取得されたニーモニックに基づいて、前記描画指示があった文字の輪郭を示す輪郭データを生成する輪郭データ生成処理（後述）を実行してから、前記ステップＳ２０３に移行する。
一方、前記ステップＳ２０６では、前記ステップＳ２０５で生成された輪郭データに基づいて、前記描画指示があった文字のビットマップを生成してから、この演算処理を終了する。
【００３５】
次に、前記ビットマップ生成処理のステップＳ２０５で実行される輪郭データ生成処理を図９のフローチャートに基づいて説明する。
この輪郭データ生成処理は、まず、そのステップＳ３０１で、前記ステップＳ２０３で取得されたニーモニックがChangeRelInt、ChangeRelFix、ChangeAbsInt、ChangeAbsFix、及びEndOfCodeのいずれかであるか否かを判定する。そして、ChangeRelInt等のいずれかである場合には（Ｙｅｓ）ステップＳ３０２に移行し、ChangeRelInt等のいずれでもない場合には（Ｎｏ）ステップＳ３０３に移行する。
【００３６】
前記ステップＳ３０２では、前記ステップＳ２０３で取得されたニーモニックに応じてパラメータModeを設定してから、この演算処理を終了する。
一方、前記ステップＳ３０３では、前記ステップＳ２０３で取得されたニーモニックから引数の数を取得し、座標値の数を示すパラメータargnumとする。
次にステップＳ３０４に移行して、前記ステップＳ３０３で設定されたパラメータargnumが「０」であるか否かを判定する。そして、「０」である場合には（Ｙｅｓ）ステップＳ３１３に移行し、「０」でない場合には（Ｎｏ）ステップＳ３０５に移行する。
【００３７】
前記ステップＳ３０５では、前記ステップＳ２０３で取得されたニーモニックから座標値を所定の順番に従って１つ取得する。
次にステップＳ３０６に移行して、前記ステップＳ３０２で設定されたModeにIntが含まれるか否かを判定する。そして、Intが含まれる場合には（Ｙｅｓ）ステップＳ３０７に移行し、Intが含まれない場合には（Ｎｏ）ステップＳ３０８に移行する。
【００３８】
前記ステップＳ３０７では、前記ステップＳ３０５で取得された座標値（ビット列）を整数値ｄに変換してから、ステップＳ３０９に移行する。
一方、前記ステップＳ３０８では、前記ステップＳ３０５で取得された座標値を小数値ｄに変換してから、前記ステップＳ３０９に移行する。
前記ステップＳ３０９では、前記ステップＳ３０２で設定されたModeにRelが含まれるか否かを判定する。そして、Relが含まれる場合には（Ｙｅｓ）ステップＳ３１０に移行し、Relが含まれていない場合には（Ｎｏ）ステップＳ３１１に移行する。
【００３９】
前記ステップＳ３１０では、前記ステップＳ３０７又はＳ３０８で変換された座標値ｄをそれまでの現在座標値ｖに加算して、新しい現在座標値ｖを算出してから、ステップＳ３１２に移行する。
一方、前記ステップＳ３１１では、前記ステップＳ３０７又はＳ３０８で変換された座標値ｄを新しい現在座標値ｖとしてから、前記ステップＳ３１２に移行する。
【００４０】
前記ステップＳ３１２では、パラメータargnumから「１」を減算して、新しいargnumを算出してから、前記ステップＳ３０４に移行する。
一方、前記ステップＳ３１３では、前記ステップＳ３１０又はＳ３１１で順次設定された現在座標値ｖに基づいて、前記描画指示のあった文字の輪郭データを生成してから、この演算処理を終了する。
なお、前記ステップＳ２０３で取得されたニーモニックにMoveToが含まれる場合には、座標値の計算だけを行い、文字の輪郭データは生成しない。
【００４１】
＜表示装置の動作＞
次に、本実施形態の表示装置１の動作を具体的状況に基づいて説明する。
まず、利用者が文字の描画を指示する操作を行い、入力手段２によって、文字の描画指示がＣＰＵ８に出力されたとする。すると、ＣＰＵ８によって、文字描画処理が実行され、図７に示すように、まず、そのステップＳ１０１で、前記描画指示された文字の文字コードが取得され、その文字コードがフォントデータのインデックスに変換され、ステップＳ１０２で、そのインデックスに基づいて描画命令データが取得され、ステップＳ１０３で、その描画命令データに基づいてビットマップ生成処理を実行される。
【００４２】
ビットマップ生成処理が実行されると、図８に示すように、まず、そのステップＳ２０１で、処理対象である画素を示す座標値（現在座標値）ｖが（０、０）とされ、ステップＳ２０２で、描画モードを示すパラメータModeが（Rel、Int）とされ、ステップＳ２０３で、前記取得された描画命令データからニーモニックが所定の順番に従って１つ取得され、ステップＳ２０４の判定が「Ｎｏ」となり、ステップＳ２０５で、前記取得されたニーモニックに基づいて輪郭データ生成処理が実行される。
【００４３】
図１０に示すように、前記取得されたニーモニックがChangeRelIntであった場合、輪郭データ生成処理が実行されると、図９に示すように、まず、そのステップＳ３０１の判定が「Ｙｅｓ」となり、ステップＳ３０２で、前記取得されたニーモニックに応じてパラメータMode（Rel、Int）が設定された後、この演算処理を終了する。
そして、前記ステップＳ２０３及びＳ２０４を経て、次のニーモニックが取得され、前記ステップＳ２０５で、そのニーモニックに基づいて輪郭データ生成処理が実行される。
【００４４】
前記取得されたニーモニックがMoveTo_Sであった場合、輪郭データ生成処理が実行されると、図９に示すように、前記ステップＳ３０１の判定が「Ｎｏ」となり、ステップＳ３０３で、前記取得されたニーモニックから引数の数（２）が取得され、座標値の数を示すパラメータargnumとされ、ステップＳ３０４の判定が「Ｎｏ」となり、ステップＳ３０５で、前記取得されたニーモニックから座標値が所定の順番に従って１つ取得され、ステップＳ３０６の判定が「Ｙｅｓ」となり、ステップＳ３０７で、前記取得された座標値が整数値ｄに変換され、ステップＳ３０９の判定が「Ｙｅｓ」となり、ステップＳ３１０で、前記変換された座標値ｄがそれまでの現在座標値ｖに加算され、新しい現在座標値ｖが算出され、ステップＳ３１２で、パラメータargnum（１）から「１」が減算され、新しいargnum（０）が算出され、前記ステップＳ３０４の判定が「Ｙｅｓ」となり、ステップＳ３１３を経た後、この演算処理を終了する。
【００４５】
そして、前記ステップＳ２０３及びＳ２０４を経て、次のニーモニックが取得され、上記フローが繰り返し実行され、文字の輪郭データが生成される。
上記フローが繰り返されるうちに、EndOfCodeが取得されたとする。すると、前記ステップＳ２０４の判定が「Ｙｅｓ」となり、ステップＳ２０６で、前記生成された輪郭データに基づいて、前記描画指示があった文字のビットマップが生成される。
そして、表示コントローラ９によって、その生成されたビットマップが表示体１０に描画され、前記描画指示された文字が表示体１０に表示される。
【００４６】
このように、本実施形態の表示装置にあっては、ChangeRelInt、ChangeRelFixが取得された場合、後に取得されるニーモニックに含まれる座標値を、直前に描画した要素の終点の座標値との相対座標の形式で表現したものとして扱い、ChangeAbsInt、ChangeAbsFixが取得された場合、後に取得されるニーモニックに含まれる座標値を、絶対座標の形式で表現したものとして扱うようにした。また、ChangeRelInt、ChangeAbsIntが取得された場合、後に取得されるニーモニックに含まれる座標値を、整数部のみで表現したものとして扱い、ChangeRelFix、ChangeAbsFixが取得された場合、後に取得されるニーモニックに含まれる座標値を、整数部と小数部との組で表現したものとして扱うようにした。そのため、ニーモニックに含まれる座標値を相対座標（又は整数部のみ）で表現したものとして取り扱わせるニーモニックと絶対座標（又は整数部と小数部との組）で表現したものとして取り扱わせるニーモニックとで同じニーモニックを用いることができるため、ニーモニックの種類が少なくて済み、その結果、描画命令データの圧縮率を向上することができる。
【００４７】
なお、図１１に示すように、ChangeRelInt等のモード設定用ニーモニックを用いることで描画命令データの累計ビット数は当該モード設定用ニーモニックの分増加するものの、通常、描画モードの変更の頻度は低いため、ビット数の増加量は僅かである。
【００４８】
また、ChangeRelFix、ChangeAbsFixが取得された場合には、ChangeRelInt、ChangeAbsIntが取得された場合に比べ、後に取得されるニーモニックに含まれる座標値を、より多くのビット幅（２４ビット）が割り当てられているものとして扱うようにした。そのため、例えば、図形を描画するためのニーモニックの取得前に、ChangeRelFix、ChangeAbsFixを取得させることで、前記ニーモニックに含まれる座標値に２４ビットを割り当てることができ、表示体１０全体に図形を描画する際に、拡大・縮小率を変更することなく、緻密な描画が可能になる。また、例えば、直線やベジエ曲線を分割せずに済み、その結果、ニーモニックの総数が増えることを防止することができる。
【００４９】
＜第２実施形態＞
次に、本発明の表示装置で利用される描画命令データの生成方法について説明する。
【００５０】
＜ChangeRelIntによる生成方法＞
図１２は、ChangeRelIntで描画モードが設定された描画命令データを生成するRelInt描画命令生成処理を示すフローチャートである。
このRelInt描画命令生成処理は、描画命令生成用のコンピュータで実行される処理であって、まず、そのステップＳ４０１で、書き込みバッファに格納されているデータを全て破棄する（書き込みバッファをクリアする）。
【００５１】
次にステップＳ４０２に移行して、描画命令データを構成する最初のニーモニックとしてChangeRelIntを格納する。
次にステップＳ４０３に移行して、現在座標値ｖを（０、０）とする。
次にステップＳ４０４に移行して、描画命令データの構成に用いるニーモニックが残っているか否かを判定する。そして、残っている場合には（Ｙｅｓ）ステップＳ４０５に移行し、残っていない場合には（Ｎｏ）ステップＳ４０６に移行する。
【００５２】
前記ステップＳ４０５では、前記ステップＳ４０４で残っていると判定されたニーモニックに対応するデータを書き込みバッファに格納するRelInt命令格納処理（後述）を実行してから、前記ステップＳ４０４に移行する。
一方、前記ステップＳ４０６では、描画命令データを構成する最後のニーモニックとしてEndOfCodeを格納する。
【００５３】
次にステップＳ４０７に移行して、前記ステップＳ４０５の命令格納処理で書き込みバッファに格納されたデータを、描画命令データを構成する要素として出力してから（書き込みバッファをフラッシュしてから）、この演算処理を終了する。
次に、前記RelInt描画命令生成処理のステップＳ４０５で実行されるRelInt命令格納処理を図１３のフローチャートに基づいて説明する。
【００５４】
このRelInt命令格納処理は、まず、そのステップＳ５０１で、前記ステップＳ４０４で残っていると判定されたニーモニックの種類を判定する。
次にステップＳ５０２に移行して、変数ｎを「０」とする。
次にステップＳ５０３に移行して、前記ステップＳ５０１で種類が判定されたニーモニックの引数（例えば、Ｘ１、Ｙ１等）を後述するステップＳ５０４〜５０７で全て処理したか否かを判定する。そして、引数を全て処理した場合には（Ｙｅｓ）ステップＳ５０８に移行し、全ては処理していない場合には（Ｎｏ）ステップＳ５０４に移行する。
【００５５】
次にステップＳ５０４に移行して、前記ステップＳ５０１で種類が判定されたニーモニックの引数argを取得する。
次にステップＳ５０５に移行して、現在座標値ｖとの差分ｄ［ｎ］を算出する。
次にステップＳ５０６に移行して、前記ステップＳ５０４で取得された引数argを新しい現在座標値ｖとする。
【００５６】
次にステップＳ５０７に移行して、変数ｎに「１」を加算して、新しい変数ｎを算出してから、前記ステップＳ５０３に移行する。
一方、前記ステップＳ５０８では、引数bit長に対応する命令を取得する。
次にステップＳ５０９に移行して、前記ステップＳ５０１で判定された種類に応じた命令コードを書き込みバッファに格納させる。
次にステップＳ５１０に移行して、前記ステップＳ５０５で算出された差分ｄ［ｎ］それぞれを書き込みバッファに格納させる。
【００５７】
次にステップＳ５１１に移行して、前記ステップＳ５０９又はＳ５１０で書き込みバッファに格納されたデータの総量が３２ビット以上であるか否かを判定する。そして、３２ビット以上である場合には（Ｙｅｓ）ステップＳ５１２に移行し、３２ビットより少ない場合には（Ｎｏ）この演算処理を終了する。
前記ステップＳ５１２では、前記ステップＳ５０９又はＳ５１０で書き込みバッファに格納されたデータを、描画命令データの構成要素として３２ビット分出力してから、前記ステップＳ５１１に移行する。
【００５８】
＜ChangeAbsIntによる生成方法＞
図１４は、ChangeAbsIntで描画モードが設定された描画命令データを生成するAbsInt描画命令生成処理を示すフローチャートである。
このAbsInt描画命令生成処理は、描画命令生成用のコンピュータで実行される処理であって、まず、そのステップＳ６０１で、描画命令データを構成する最初のニーモニックとしてChangeAbsIntを格納する。
【００５９】
次にステップＳ６０２に移行して、描画命令データの構成に用いるニーモニックが残っているか否かを判定する。そして、残っている場合には（Ｙｅｓ）ステップＳ６０３に移行し、残っていない場合には（Ｎｏ）ステップＳ６０４に移行する。
前記ステップＳ６０３では、前記ステップＳ６０２で残っていると判定されたニーモニックに対応するデータを書き込みバッファに格納するAbsInt命令格納処理（後述）を実行してから、前記ステップＳ６０２に移行する。
【００６０】
一方、前記ステップＳ６０４では、描画命令データを構成する最後のニーモニックとしてEndOfCodeを格納してから、この演算処理を格納する。
次に、前記AbsInt描画命令生成処理のステップＳ６０３で実行されるAbsInt命令格納処理を図１５のフローチャートに基づいて説明する。
このAbsInt命令格納処理は、まず、そのステップＳ７０１で、前記ステップＳ６０２で残っていると判定されたニーモニックの種類を判定する。
【００６１】
次にステップＳ７０２に移行して、前記ステップＳ７０１で判定された種類に応じた命令コードを書き込みバッファに格納させる。
次にステップＳ７０３に移行して、前記ステップＳ７０１で種類が判定されたニーモニックの引数（例えば、Ｘ１、Ｙ１等）を後述するステップＳ７０４、７０５で全て処理したか否かを判定する。そして、引数を全て処理した場合には（Ｙｅｓ）この演算処理を終了し、全ては処理していない場合には（Ｎｏ）ステップＳ７０４に移行する。
【００６２】
次にステップＳ７０４に移行して、前記ステップＳ７０１で種類が判定されたニーモニックの引数argを取得する。
次にステップＳ７０５に移行して、前記ステップＳ７０４で取得された引数argそれぞれを書き込みバッファに格納させてから、前記ステップＳ７０３に移行する。
そして、このようなフロー構成とすることにより、RelInt描画命令生成処理或いはChangeAbsInt描画命令生成処理を実行することで、描画命令データとして、モード設定用ニーモニック（ChangeRelInt、ChangeAbsInt）の後に、その描画モードに従って座標値を取り扱わせるニーモニックが配されたものを生成することができる。
【００６３】
なお、上記実施形態では、図９のステップＳ３０１及びＳ３０２が特許請求の範囲に記載の設定機能を構成し、以下同様に、図９のステップＳ３０６〜Ｓ３１１が表示機能を構成し、図１のＣＰＵ８、図９のステップＳ３０１及びＳ３０２が設定手段を構成し、図１のＣＰＵ８、表示コントローラ９、表示体１０、図９のステップＳ３０６〜Ｓ３１１が表示手段を構成する。
また、本発明の表示プログラム、データ構造及び表示装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【００６４】
上記実施形態では、モード設定用ニーモニック（ChangeRelInt、ChangeAbsInt等）が取得された場合に、後に取得されるニーモニックに含まれる座標値を相対座標及び絶対座標のいずれかの形式で表現したものとして扱う例を示したが、これに限られるものではない。例えば、描画モードとして、新たに取得された座標値を低圧縮座標指定（ニーモニックの命令ビット長と座標ビット長との合計が８、１６、３２等、ソフトウェア処理にとって扱いやすいビット数の倍数になるように調整された命令体系）で表現されたものとして扱うモードと、新たに取得された座標値を高圧縮座標指定（低圧縮座標指定以外の命令体系）で表現されたものとして扱うモードとを有し、特定のモード設定用ニーモニックを取得された場合に、後に取得されるニーモニックに含まれる座標値を前記低圧縮座標指定及び前記高圧縮座標指定のいずれかの形式で表現したものとして扱うようにしてもよい。そのようにすれば、低圧縮座標指定を用いることにより、ソフトウェアで動的に命令を生成する際、ビット演算が不要になるため、高速に処理ができるようになる。
【図面の簡単な説明】
【００６５】
【図１】本発明の表示装置の一実施形態の内部構成を示すブロック図である。
【図２】モード設定用ニーモニックを説明するための説明図である。
【図３】ChangeRelIntが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。
【図４】ChangeAbsIntが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。
【図５】ChangeRelFixが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。
【図６】ChangeAbsFixが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。
【図７】文字描画処理のフローを示すフローチャートである。
【図８】ビットマップ生成処理のフローを示すフローチャートである。
【図９】輪郭データ生成処理のフローを示すフローチャートである。
【図１０】本実施形態の動作を説明するための説明図である。
【図１１】本実施形態の動作を説明するための説明図である。
【図１２】RelInt描画命令生成処理のフローを示すフローチャートである。
【図１３】RelInt命令格納処理のフローを示すフローチャートである。
【図１４】AbsInt描画命令生成処理のフローを示すフローチャートである。
【図１５】AbsInt命令格納処理のフローを示すフローチャートである。
【符号の説明】
【００６６】
１は表示装置、２は入力手段、３は入力手段コントローラ、４はメモリ、５はメモリコントローラ、６は外部記憶、７は外部記憶コントローラ、８はＣＰＵ、９は表示コントローラ、１０は表示体、１１はバスコントローラ、１２は電源コントローラ
【図１】
0004419973.tif 000002
【図２】
0004419973.tif 000003
【図３】
0004419973.tif 000004
【図４】
0004419973.tif 000005
【図５】
0004419973.tif 000006
【図６】
0004419973.tif 000007
【図７】
0004419973.tif 000008
【図８】
0004419973.tif 000009
【図９】
0004419973.tif 000010
【図１０】
0004419973.tif 000011
【図１１】
0004419973.tif 000012
【図１２】
0004419973.tif 000013
【図１３】
0004419973.tif 000014
【図１４】
0004419973.tif 000015
【図１５】
0004419973.tif 000016