JP4419973B2 - 表示プログラム及び表示装置 - Google Patents

表示プログラム及び表示装置 Download PDF

Info

Publication number
JP4419973B2
JP4419973B2 JP2006073088A JP2006073088A JP4419973B2 JP 4419973 B2 JP4419973 B2 JP 4419973B2 JP 2006073088 A JP2006073088 A JP 2006073088A JP 2006073088 A JP2006073088 A JP 2006073088A JP 4419973 B2 JP4419973 B2 JP 4419973B2
Authority
JP
Japan
Prior art keywords
coordinate value
acquired
mnemonic
setting
mode
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.)
Expired - Fee Related
Application number
JP2006073088A
Other languages
English (en)
Other versions
JP2007248882A (ja
Inventor
高 澤崎
義之 小野
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006073088A priority Critical patent/JP4419973B2/ja
Priority to US11/705,894 priority patent/US20070216688A1/en
Publication of JP2007248882A publication Critical patent/JP2007248882A/ja
Application granted granted Critical
Publication of JP4419973B2 publication Critical patent/JP4419973B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Description

本発明は、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて文字を表示する表示プログラム及び表示装置に関する。
従来、この種の技術としては、例えば、付随する引数(座標値)を相対座標で表現したものとして取り扱わせる命令、及び前記座標値を絶対座標で表現したものとして取り扱わせる命令のいずれかが取得されると、その命令に従った形式で、当該命令に付随する座標値を取り扱う表示プログラムが知られている(例えば、非特許文献1参照)。
また、このような技術にあっては、一般に、命令及び当該命令に付随する引数の組み合わせからなるセグメントに出現率に応じた最適な圧縮符号を割り当てることで、描画命令データ(複数のセグメントを含むデータ)のデータ量を圧縮するようになっている。
http://partners.adobe.com/public/developer/en/font/T1_SPEC.PDF
しかしながら、上記従来の技術にあっては、付随する引数を相対座標として取り扱わせる命令と絶対座標として取り扱わせる命令とをそれぞれ異なる命令として用意しているため、命令の種類が増大し、その結果、描画命令データの圧縮率が低下する恐れがあった。
本発明は、上記従来の技術の未解決の課題を解決することを目的とするものであって、描画命令データの圧縮率を向上可能な表示プログラム及び表示装置を提供することを課題とする。
上記課題を解決するために、本発明の表示プログラムは、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示プログラムであって、描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定機能と、その設定機能による設定結果に従って前記引数を取り扱って前記文字を表示する表示機能と、をコンピュータに実行させることを特徴とする。
また、前記引数は、座標値であり、前記描画モードとして、新たに取得された座標値を直前に描画された要素の終点の座標値との相対座標で表現されたものとして扱うモードと、新たに取得された座標値を絶対座標で表現されたものとして扱うモードとを有し、前記設定機能は、前記後に取得される命令に付随する座標値を前記相対座標及び前記絶対座標のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定してもよい。
さらに、前記引数は、座標値であり、前記描画モードとして、新たに取得された座標値を整数部のみで表現されたものとして扱うモードと、新たに取得された座標値を整数部と小数部との組で表現されたものとして扱うモードとを有し、前記設定機能は、前記後に取得される命令に付随する座標値を前記整数部のみ及び前記整数部と小数部との組のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定してもよい。
また、前記引数は、座標値であり、前記描画モードとして、新たに取得された座標値を低圧縮座標指定で表現されたものとして扱うモードと、新たに取得された座標値を高圧縮座標指定で表現されたものとして扱うモードとを有し、前記設定機能は、前記後に取得される命令に付随する座標値を前記低圧縮座標指定及び前記高圧縮座標指定のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定してもよい。
さらに、本発明のデータ構造は、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示プログラムで用いられるデータ構造であって、描画モードを設定するモード設定用命令を、その描画モードに従って引数を取り扱わせる命令の前に配したことを特徴とする。
また、本発明の表示装置は、文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示装置であって、描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定手段と、その設定手段による設定結果に従って前記引数を取り扱って前記文字を表示する表示手段と、を備えたことを特徴とする。
このような構成により、例えば、付随する座標値を相対座標(又は整数部のみ)で表現したものとして取り扱わせる命令と絶対座標(又は整数部と小数部との組)で表現したものとして取り扱わせる命令とで同じ命令を用いることができるため、命令の種類が少なくて済み、その結果、描画命令データの圧縮率を向上することができる。
さらに、本発明の表示プログラムにあっては、前記設定機能は、前記後に取得される命令に付随する座標値を、前記整数部と小数部との組で表現したものとして扱うようにした場合には、前記整数部のみで表現したものとして扱うようにした場合より多くのビット幅が割り当てられているものとして扱うように前記取扱い方法を設定してもよい。
このような構成により、例えば、図形を描画するための命令の取得前に、座標値を整数部と小数部との組で表現したものとして取り扱う描画モードに設定するモード設定用命令を取得させることで、前記命令に付随する座標値に多くのビット幅を割り当てることができるため、表示体全体に図形を描画する際に、拡大・縮小率を変更することなく、緻密な図形を描画することができる。また、例えば、図形を構成する直線やベジエ曲線を分割せずに済み、その結果、命令の総数が増えることを防止することができる。
以下、本発明の表示装置の一実施形態を図面に基づいて説明する。
<第1実施形態>
<表示装置の構成>
図1は、本実施形態の表示装置の内部構成を示すブロック図である。この図1に示すように、表示装置1は、入力手段2、入力手段コントローラ3、メモリ4、メモリコントローラ5、外部記憶6、外部記憶コントローラ7、CPU8、表示コントローラ9、表示体10、バスコントローラ11、及び電源コントローラ12を含んで構成される。
入力手段2は、マウスやキーボード等、文字の描画を指示するときに操作させる機器である。そして、入力手段2は、文字の描画を指示するための操作が行われると、文字の描画指示を入力手段コントローラ3を介してCPU8に出力する。
入力手段コントローラ3は、入力手段2とCPU8との間のデータ転送を制御する。 メモリ4は、CPU8がプログラムを実行するときに各種プログラムを展開するワークエリアを形成するとともに、CPU8により実行される各種プログラムに係るデータや、表示対象である情報のデータを記憶する記憶領域を形成する。
メモリコントローラ5は、メモリ4とCPU8との間のデータ転送を制御する。
外部記憶6は、CPU8により実行される基本制御プログラムやアプリケーションプログラム等の各種プログラム及びこれら各種プログラムに係るデータを格納する。
外部記憶コントローラ7は、外部記憶6とCPU8との間のデータ転送を制御する。
CPU8は、外部記憶6に格納されている各種プログラムを読み込み、それらをメモリ4内に形成されるワークエリアに展開して各部2〜12を制御する。
具体的には、CPU8は、入力手段2から文字の描画指示が出力されると、文字描画処理を実行する。そして、文字描画処理によって、その文字の文字コードに基づいて描画命令データ(前記文字を構成する各要素それぞれを描画するための複数のニーモニック(命令と当該命令に付随する引数との組み合わせを示すデータ)からなるデータ、所定の順番でニーモニックが並べられたデータ)を取得し、その描画命令データからニーモニックを前記所定の順序に従って1つずつ取得し、そのニーモニックに基づいて、前記描画指示があった文字のビットマップを生成する。
また、CPU8は、描画モードを設定するためのニーモニック(モード設定用ニーモニック)が取得された場合には、そのモード設定用ニーモニックに従って、後に取得される前記描画指示があった文字を構成する各要素に対応するニーモニック(要素対応ニーモニック)に含まれる座標値(ビット列)の取り扱い方法を設定する。
すなわち、描画命令データを構成するニーモニックは、モード設定用ニーモニックの後に、その描画モードに従って座標値を取り扱わせるニーモニックが配されている。
ここで、モード設定用ニーモニックとしては、図2に示すように、ChangeRelInt、ChangeRelFix、ChangeAbsInt、及びChangeAbsFixが挙げられる。
ChangeRelIntは、要素対応ニーモニックの座標値を、直前に描画された要素の終点の座標値との相対座標を整数形式(整数部のみを含む形式)で表現したものとして扱うことを指示する。
ChangeRelFixは、要素対応ニーモニックの座標値を、直前に描画された要素の終点の座標値との相対座標を小数形式(整数部と小数部との両方を含む形式)で表現したものとして扱うことを指示する。
ChangeAbsIntは、要素対応ニーモニックの座標値を、絶対座標を整数形式で表現したものとして扱うことを指示する。
ChangeAbsFixは、要素対応ニーモニックの座標値を、絶対座標を小数形式で表現したものとして扱うことを指示する。
なお、図2において、EndOfCodeは、描画命令データを構成する最後のニーモニックであることを示すコードである。
また、要素対応ニーモニックとしては、図3〜図6に示すように、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は、引数の数(2)及び座標値(X1、Y1)を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt又はChangeRelFixである場合には、直前に描画された要素の終点からの相対座標が座標値(X1,Y1)となる点に移動することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt又はChangeAbsFixである場合には、絶対座標系で座標値(X1,Y1)に移動することを指示する。なお、本実施形態では、表示体10の左上隅に絶対座標の原点が設定され、平面視右方向にX軸が形成され、平面視下方向にY軸が形成される。
HorLineTo_S、HorLineTo_M及びHorLineTo_Lは、引数の数(1)及びX方向の座標値X1を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からX方向に長さX1の水平線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、その始点とY座標が等しく且つX座標値がX1となる点を終点とする水平線を描画することを指示する。
VerLineTo_S、VerLineTo_M及びVerLineTo_Lは、引数の数(1)及びY方向の座標値Y1を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からY方向に長さY1の垂直線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、その始点とX座標が等しく且つY座標値がY1となる点を終点とする垂直線を描画することを指示する。
LineTo_S、LineTo_M及びLineTo_Lは、引数の数(2)及び1つの座標値(X1、Y1)を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からの相対座標が座標値(X1、Y1)となる点を終点とする直線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、座標値(X1、Y1)を終点とする直線を描画することを指示する。
ConicCurveTo_S、ConicCurveTo_M及びConicCurveTo_Lは、引数の数(4)及び座標値(X1、Y1)(X2、Y2)を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からの相対座標が座標値(X1、Y1)となる点を制御点とし、前記制御点からの相対座標が座標値(X2、Y2)となる点を終点とする2次ベジエ曲線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、座標値(X1、Y1)を制御点とし、座標値(X2、Y2)を終点とする2次ベジエ曲線を描画することを指示する。
CubicCurveTo_S、CubicCurveTo_M及びCubicCurveTo_Lは、引数の数(6)及び座標値(X1、Y1)(X2、Y2)(X3、Y3)を含むコードである。そして、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeRelFixである場合には、直前に描画された要素の終点を始点とし、その始点からの相対座標が座標値(X1、Y1)となる点を第一制御点とし、前記第一制御点からの相対座標が座標値(X2、Y2)となる点を第二制御点とし、前記第二制御点からの相対座標が座標値(X3、Y3)となる点を終点とする3次ベジエ曲線を描画することを指示する。また、最後に読み込まれたモード設定用ニーモニックがChangeAbsInt 又はChangeAbsFixである場合には、直前に描画された要素の終点を始点とし、座標値(X1、Y1)を第一制御点とし、座標値(X2、Y2)を第二制御点とし、(X3、Y3)を終点とする3次ベジエ曲線を描画することを指示する。
また、MoveTo_S、HorLineTo_S、VerLineTo_S、LineTo_S、ConicCurveTo_S、CubicCurveTo_Sにあっては、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeAbsIntである場合には、座標値として7ビットのビット列を用いている。また、最後に読み込まれたモード設定用ニーモニックがChangeRelFix又はChangeAbsFixである場合には、座標値として整数部分に3ビットのビット列を用い且つ小数部分に4ビットのビット列を用いている。
MoveTo_M、HorLineTo_M、VerLineTo_M、LineTo_M、ConicCurveTo_M、CubicCurveTo_Mは、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeAbsIntである場合には、座標値として10ビットのビット列を用いている。また、最後に読み込まれたモード設定用ニーモニックがChangeRelFix又はChangeAbsFixである場合には、座標値として整数部分に6ビットのビット列を用い且つ小数部分に4ビットのビット列を用いている。
MoveTo_L、HorLineTo_L、VerLineTo_L、LineTo_L、ConicCurveTo_L及びCubicCurveTo_Lは、最後に読み込まれたモード設定用ニーモニックがChangeRelInt 又はChangeAbsIntである場合には、座標値として16ビットのビット列を用いている。また、最後に読み込まれたモード設定用ニーモニックがChangeRelFix又はChangeAbsFixである場合には、座標値として整数部分に20ビットのビット列を用い且つ小数部分に4ビットのビット列を用いている。
表示コントローラ9は、CPU8でビットマップが生成されると、そのビットマップを表示体10に描画する。
表示体10は、電力供給が停止されても表示内容を保持できる記憶性表示体(コレステリック液晶)を含んで構成される。そして、表示体10は、表示コントローラ9の描画動作によって表示内容が書き換えられる。
バスコントローラ11は、CPU8と各部2〜12との間のデータ転送を制御する。
電源コントローラ12は、CPU8からの指令に従って、表示装置1の各部2〜12への電源供給を制御する。
<CPUの動作>
次に、CPU8で実行される文字描画処理を図7のフローチャートに基づいて説明する。
この文字描画処理は、文字の描画指示があると実行される処理であって、まず、そのステップS101で、前記描画指示された文字の文字コードを取得し、その文字コードをフォントデータのインデックスに変換する。
次にステップS102に移行して、前記ステップS101で変換されたインデックスに基づいて描画命令データ(所定の順番に従って並べられた、複数のニーモニックからなるデータ)を取得する。
次にステップS103に移行して、前記ステップS102で取得された描画命令データに基づいて、前記描画指示があった文字のビットマップを生成するビットマップ生成処理(後述)を実行してから、この演算処理を終了する。
次に、前記文字描画処理のステップS103で実行されるビットマップ生成処理を図8のフローチャートに基づいて説明する。
このビットマップ生成処理は、まず、そのステップS201で、処理対象である画素を示す座標値(現在座標値)vを(0、0)とする。
次にステップS202に移行して、描画モードを示すパラメータModeを(Rel、Int)(モード設定用ニーモニックChanegeRelIntが読み込まれた状態)とする。
次にステップS203に移行して、前記ステップS102で取得された描画命令データからニーモニックを所定の順番に従って1つ取得する。
次にステップS204に移行して、前記ステップS203で取得されたニーモニックがEndOfCodeであるか否かを判定する。そして、EndOfCodeである場合には(Yes)ステップS206に移行し、EndOfCodeでない場合には(No)ステップS205に移行する。
前記ステップS205では、前記ステップS203で取得されたニーモニックに基づいて、前記描画指示があった文字の輪郭を示す輪郭データを生成する輪郭データ生成処理(後述)を実行してから、前記ステップS203に移行する。
一方、前記ステップS206では、前記ステップS205で生成された輪郭データに基づいて、前記描画指示があった文字のビットマップを生成してから、この演算処理を終了する。
次に、前記ビットマップ生成処理のステップS205で実行される輪郭データ生成処理を図9のフローチャートに基づいて説明する。
この輪郭データ生成処理は、まず、そのステップS301で、前記ステップS203で取得されたニーモニックがChangeRelInt、ChangeRelFix、ChangeAbsInt、ChangeAbsFix、及びEndOfCodeのいずれかであるか否かを判定する。そして、ChangeRelInt等のいずれかである場合には(Yes)ステップS302に移行し、ChangeRelInt等のいずれでもない場合には(No)ステップS303に移行する。
前記ステップS302では、前記ステップS203で取得されたニーモニックに応じてパラメータModeを設定してから、この演算処理を終了する。
一方、前記ステップS303では、前記ステップS203で取得されたニーモニックから引数の数を取得し、座標値の数を示すパラメータargnumとする。
次にステップS304に移行して、前記ステップS303で設定されたパラメータargnumが「0」であるか否かを判定する。そして、「0」である場合には(Yes)ステップS313に移行し、「0」でない場合には(No)ステップS305に移行する。
前記ステップS305では、前記ステップS203で取得されたニーモニックから座標値を所定の順番に従って1つ取得する。
次にステップS306に移行して、前記ステップS302で設定されたModeにIntが含まれるか否かを判定する。そして、Intが含まれる場合には(Yes)ステップS307に移行し、Intが含まれない場合には(No)ステップS308に移行する。
前記ステップS307では、前記ステップS305で取得された座標値(ビット列)を整数値dに変換してから、ステップS309に移行する。
一方、前記ステップS308では、前記ステップS305で取得された座標値を小数値dに変換してから、前記ステップS309に移行する。
前記ステップS309では、前記ステップS302で設定されたModeにRelが含まれるか否かを判定する。そして、Relが含まれる場合には(Yes)ステップS310に移行し、Relが含まれていない場合には(No)ステップS311に移行する。
前記ステップS310では、前記ステップS307又はS308で変換された座標値dをそれまでの現在座標値vに加算して、新しい現在座標値vを算出してから、ステップS312に移行する。
一方、前記ステップS311では、前記ステップS307又はS308で変換された座標値dを新しい現在座標値vとしてから、前記ステップS312に移行する。
前記ステップS312では、パラメータargnumから「1」を減算して、新しいargnumを算出してから、前記ステップS304に移行する。
一方、前記ステップS313では、前記ステップS310又はS311で順次設定された現在座標値vに基づいて、前記描画指示のあった文字の輪郭データを生成してから、この演算処理を終了する。
なお、前記ステップS203で取得されたニーモニックにMoveToが含まれる場合には、座標値の計算だけを行い、文字の輪郭データは生成しない。
<表示装置の動作>
次に、本実施形態の表示装置1の動作を具体的状況に基づいて説明する。
まず、利用者が文字の描画を指示する操作を行い、入力手段2によって、文字の描画指示がCPU8に出力されたとする。すると、CPU8によって、文字描画処理が実行され、図7に示すように、まず、そのステップS101で、前記描画指示された文字の文字コードが取得され、その文字コードがフォントデータのインデックスに変換され、ステップS102で、そのインデックスに基づいて描画命令データが取得され、ステップS103で、その描画命令データに基づいてビットマップ生成処理を実行される。
ビットマップ生成処理が実行されると、図8に示すように、まず、そのステップS201で、処理対象である画素を示す座標値(現在座標値)vが(0、0)とされ、ステップS202で、描画モードを示すパラメータModeが(Rel、Int)とされ、ステップS203で、前記取得された描画命令データからニーモニックが所定の順番に従って1つ取得され、ステップS204の判定が「No」となり、ステップS205で、前記取得されたニーモニックに基づいて輪郭データ生成処理が実行される。
図10に示すように、前記取得されたニーモニックがChangeRelIntであった場合、輪郭データ生成処理が実行されると、図9に示すように、まず、そのステップS301の判定が「Yes」となり、ステップS302で、前記取得されたニーモニックに応じてパラメータMode(Rel、Int)が設定された後、この演算処理を終了する。
そして、前記ステップS203及びS204を経て、次のニーモニックが取得され、前記ステップS205で、そのニーモニックに基づいて輪郭データ生成処理が実行される。
前記取得されたニーモニックがMoveTo_Sであった場合、輪郭データ生成処理が実行されると、図9に示すように、前記ステップS301の判定が「No」となり、ステップS303で、前記取得されたニーモニックから引数の数(2)が取得され、座標値の数を示すパラメータargnumとされ、ステップS304の判定が「No」となり、ステップS305で、前記取得されたニーモニックから座標値が所定の順番に従って1つ取得され、ステップS306の判定が「Yes」となり、ステップS307で、前記取得された座標値が整数値dに変換され、ステップS309の判定が「Yes」となり、ステップS310で、前記変換された座標値dがそれまでの現在座標値vに加算され、新しい現在座標値vが算出され、ステップS312で、パラメータargnum(1)から「1」が減算され、新しいargnum(0)が算出され、前記ステップS304の判定が「Yes」となり、ステップS313を経た後、この演算処理を終了する。
そして、前記ステップS203及びS204を経て、次のニーモニックが取得され、上記フローが繰り返し実行され、文字の輪郭データが生成される。
上記フローが繰り返されるうちに、EndOfCodeが取得されたとする。すると、前記ステップS204の判定が「Yes」となり、ステップS206で、前記生成された輪郭データに基づいて、前記描画指示があった文字のビットマップが生成される。
そして、表示コントローラ9によって、その生成されたビットマップが表示体10に描画され、前記描画指示された文字が表示体10に表示される。
このように、本実施形態の表示装置にあっては、ChangeRelInt、ChangeRelFixが取得された場合、後に取得されるニーモニックに含まれる座標値を、直前に描画した要素の終点の座標値との相対座標の形式で表現したものとして扱い、ChangeAbsInt、ChangeAbsFixが取得された場合、後に取得されるニーモニックに含まれる座標値を、絶対座標の形式で表現したものとして扱うようにした。また、ChangeRelInt、ChangeAbsIntが取得された場合、後に取得されるニーモニックに含まれる座標値を、整数部のみで表現したものとして扱い、ChangeRelFix、ChangeAbsFixが取得された場合、後に取得されるニーモニックに含まれる座標値を、整数部と小数部との組で表現したものとして扱うようにした。そのため、ニーモニックに含まれる座標値を相対座標(又は整数部のみ)で表現したものとして取り扱わせるニーモニックと絶対座標(又は整数部と小数部との組)で表現したものとして取り扱わせるニーモニックとで同じニーモニックを用いることができるため、ニーモニックの種類が少なくて済み、その結果、描画命令データの圧縮率を向上することができる。
なお、図11に示すように、ChangeRelInt等のモード設定用ニーモニックを用いることで描画命令データの累計ビット数は当該モード設定用ニーモニックの分増加するものの、通常、描画モードの変更の頻度は低いため、ビット数の増加量は僅かである。
また、ChangeRelFix、ChangeAbsFixが取得された場合には、ChangeRelInt、ChangeAbsIntが取得された場合に比べ、後に取得されるニーモニックに含まれる座標値を、より多くのビット幅(24ビット)が割り当てられているものとして扱うようにした。そのため、例えば、図形を描画するためのニーモニックの取得前に、ChangeRelFix、ChangeAbsFixを取得させることで、前記ニーモニックに含まれる座標値に24ビットを割り当てることができ、表示体10全体に図形を描画する際に、拡大・縮小率を変更することなく、緻密な描画が可能になる。また、例えば、直線やベジエ曲線を分割せずに済み、その結果、ニーモニックの総数が増えることを防止することができる。
<第2実施形態>
次に、本発明の表示装置で利用される描画命令データの生成方法について説明する。
<ChangeRelIntによる生成方法>
図12は、ChangeRelIntで描画モードが設定された描画命令データを生成するRelInt描画命令生成処理を示すフローチャートである。
このRelInt描画命令生成処理は、描画命令生成用のコンピュータで実行される処理であって、まず、そのステップS401で、書き込みバッファに格納されているデータを全て破棄する(書き込みバッファをクリアする)。
次にステップS402に移行して、描画命令データを構成する最初のニーモニックとしてChangeRelIntを格納する。
次にステップS403に移行して、現在座標値vを(0、0)とする。
次にステップS404に移行して、描画命令データの構成に用いるニーモニックが残っているか否かを判定する。そして、残っている場合には(Yes)ステップS405に移行し、残っていない場合には(No)ステップS406に移行する。
前記ステップS405では、前記ステップS404で残っていると判定されたニーモニックに対応するデータを書き込みバッファに格納するRelInt命令格納処理(後述)を実行してから、前記ステップS404に移行する。
一方、前記ステップS406では、描画命令データを構成する最後のニーモニックとしてEndOfCodeを格納する。
次にステップS407に移行して、前記ステップS405の命令格納処理で書き込みバッファに格納されたデータを、描画命令データを構成する要素として出力してから(書き込みバッファをフラッシュしてから)、この演算処理を終了する。
次に、前記RelInt描画命令生成処理のステップS405で実行されるRelInt命令格納処理を図13のフローチャートに基づいて説明する。
このRelInt命令格納処理は、まず、そのステップS501で、前記ステップS404で残っていると判定されたニーモニックの種類を判定する。
次にステップS502に移行して、変数nを「0」とする。
次にステップS503に移行して、前記ステップS501で種類が判定されたニーモニックの引数(例えば、X1、Y1等)を後述するステップS504〜507で全て処理したか否かを判定する。そして、引数を全て処理した場合には(Yes)ステップS508に移行し、全ては処理していない場合には(No)ステップS504に移行する。
次にステップS504に移行して、前記ステップS501で種類が判定されたニーモニックの引数argを取得する。
次にステップS505に移行して、現在座標値vとの差分d[n]を算出する。
次にステップS506に移行して、前記ステップS504で取得された引数argを新しい現在座標値vとする。
次にステップS507に移行して、変数nに「1」を加算して、新しい変数nを算出してから、前記ステップS503に移行する。
一方、前記ステップS508では、引数bit長に対応する命令を取得する。
次にステップS509に移行して、前記ステップS501で判定された種類に応じた命令コードを書き込みバッファに格納させる。
次にステップS510に移行して、前記ステップS505で算出された差分d[n]それぞれを書き込みバッファに格納させる。
次にステップS511に移行して、前記ステップS509又はS510で書き込みバッファに格納されたデータの総量が32ビット以上であるか否かを判定する。そして、32ビット以上である場合には(Yes)ステップS512に移行し、32ビットより少ない場合には(No)この演算処理を終了する。
前記ステップS512では、前記ステップS509又はS510で書き込みバッファに格納されたデータを、描画命令データの構成要素として32ビット分出力してから、前記ステップS511に移行する。
<ChangeAbsIntによる生成方法>
図14は、ChangeAbsIntで描画モードが設定された描画命令データを生成するAbsInt描画命令生成処理を示すフローチャートである。
このAbsInt描画命令生成処理は、描画命令生成用のコンピュータで実行される処理であって、まず、そのステップS601で、描画命令データを構成する最初のニーモニックとしてChangeAbsIntを格納する。
次にステップS602に移行して、描画命令データの構成に用いるニーモニックが残っているか否かを判定する。そして、残っている場合には(Yes)ステップS603に移行し、残っていない場合には(No)ステップS604に移行する。
前記ステップS603では、前記ステップS602で残っていると判定されたニーモニックに対応するデータを書き込みバッファに格納するAbsInt命令格納処理(後述)を実行してから、前記ステップS602に移行する。
一方、前記ステップS604では、描画命令データを構成する最後のニーモニックとしてEndOfCodeを格納してから、この演算処理を格納する。
次に、前記AbsInt描画命令生成処理のステップS603で実行されるAbsInt命令格納処理を図15のフローチャートに基づいて説明する。
このAbsInt命令格納処理は、まず、そのステップS701で、前記ステップS602で残っていると判定されたニーモニックの種類を判定する。
次にステップS702に移行して、前記ステップS701で判定された種類に応じた命令コードを書き込みバッファに格納させる。
次にステップS703に移行して、前記ステップS701で種類が判定されたニーモニックの引数(例えば、X1、Y1等)を後述するステップS704、705で全て処理したか否かを判定する。そして、引数を全て処理した場合には(Yes)この演算処理を終了し、全ては処理していない場合には(No)ステップS704に移行する。
次にステップS704に移行して、前記ステップS701で種類が判定されたニーモニックの引数argを取得する。
次にステップS705に移行して、前記ステップS704で取得された引数argそれぞれを書き込みバッファに格納させてから、前記ステップS703に移行する。
そして、このようなフロー構成とすることにより、RelInt描画命令生成処理或いはChangeAbsInt描画命令生成処理を実行することで、描画命令データとして、モード設定用ニーモニック(ChangeRelInt、ChangeAbsInt)の後に、その描画モードに従って座標値を取り扱わせるニーモニックが配されたものを生成することができる。
なお、上記実施形態では、図9のステップS301及びS302が特許請求の範囲に記載の設定機能を構成し、以下同様に、図9のステップS306〜S311が表示機能を構成し、図1のCPU8、図9のステップS301及びS302が設定手段を構成し、図1のCPU8、表示コントローラ9、表示体10、図9のステップS306〜S311が表示手段を構成する。
また、本発明の表示プログラム、データ構造及び表示装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
上記実施形態では、モード設定用ニーモニック(ChangeRelInt、ChangeAbsInt等)が取得された場合に、後に取得されるニーモニックに含まれる座標値を相対座標及び絶対座標のいずれかの形式で表現したものとして扱う例を示したが、これに限られるものではない。例えば、描画モードとして、新たに取得された座標値を低圧縮座標指定(ニーモニックの命令ビット長と座標ビット長との合計が8、16、32等、ソフトウェア処理にとって扱いやすいビット数の倍数になるように調整された命令体系)で表現されたものとして扱うモードと、新たに取得された座標値を高圧縮座標指定(低圧縮座標指定以外の命令体系)で表現されたものとして扱うモードとを有し、特定のモード設定用ニーモニックを取得された場合に、後に取得されるニーモニックに含まれる座標値を前記低圧縮座標指定及び前記高圧縮座標指定のいずれかの形式で表現したものとして扱うようにしてもよい。そのようにすれば、低圧縮座標指定を用いることにより、ソフトウェアで動的に命令を生成する際、ビット演算が不要になるため、高速に処理ができるようになる。
本発明の表示装置の一実施形態の内部構成を示すブロック図である。 モード設定用ニーモニックを説明するための説明図である。 ChangeRelIntが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。 ChangeAbsIntが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。 ChangeRelFixが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。 ChangeAbsFixが取得された後の要素対応ニーモニックの取り扱いを説明するための説明図である。 文字描画処理のフローを示すフローチャートである。 ビットマップ生成処理のフローを示すフローチャートである。 輪郭データ生成処理のフローを示すフローチャートである。 本実施形態の動作を説明するための説明図である。 本実施形態の動作を説明するための説明図である。 RelInt描画命令生成処理のフローを示すフローチャートである。 RelInt命令格納処理のフローを示すフローチャートである。 AbsInt描画命令生成処理のフローを示すフローチャートである。 AbsInt命令格納処理のフローを示すフローチャートである。
符号の説明
1は表示装置、2は入力手段、3は入力手段コントローラ、4はメモリ、5はメモリコントローラ、6は外部記憶、7は外部記憶コントローラ、8はCPU、9は表示コントローラ、10は表示体、11はバスコントローラ、12は電源コントローラ

Claims (3)

  1. 文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示プログラムであって、
    描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定機能と、その設定機能による設定結果に従って前記引数を取り扱って前記文字を表示する表示機能と、をコンピュータに実行させ
    前記引数は、座標値であり、
    前記描画モードとして、新たに取得された座標値を整数部のみで表現されたものとして扱うモードと、新たに取得された座標値を整数部と小数部との組で表現されたものとして扱うモードとを有し、
    前記設定機能は、前記後に取得される命令に付随する座標値を前記整数部のみ及び前記整数部と小数部との組のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定することを特徴とする表示プログラム。
  2. 前記設定機能は、前記後に取得される命令に付随する座標値を、前記整数部と小数部との組で表現したものとして扱うようにした場合には、前記整数部のみで表現したものとして扱うようにした場合より多くのビット幅が割り当てられているものとして扱うように前記取扱い方法を設定することを特徴とする請求項1に記載の表示プログラム。
  3. 文字を構成する各要素それぞれを描画するための命令を取得し、その命令に基づいて前記要素を描画して前記文字を表示する表示装置であって、
    描画モードを設定するモード設定用命令が取得されると、そのモード設定用命令に対応する描画モードに従って、後に取得される命令に付随する引数の取り扱い方法を設定する設定手段と、その設定手段による設定結果に従って前記引数を取り扱って前記文字を表示する表示手段と、を備え
    前記引数は、座標値であり、
    前記描画モードとして、新たに取得された座標値を整数部のみで表現されたものとして扱うモードと、新たに取得された座標値を整数部と小数部との組で表現されたものとして扱うモードとを有し、
    前記設定手段は、前記後に取得される命令に付随する座標値を前記整数部のみ及び前記整数部と小数部との組のいずれかの形式で表現したものとして扱うように前記取り扱い方法を設定することを特徴とする表示装置。
JP2006073088A 2006-03-16 2006-03-16 表示プログラム及び表示装置 Expired - Fee Related JP4419973B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006073088A JP4419973B2 (ja) 2006-03-16 2006-03-16 表示プログラム及び表示装置
US11/705,894 US20070216688A1 (en) 2006-03-16 2007-02-13 Display program, data structure and display device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006073088A JP4419973B2 (ja) 2006-03-16 2006-03-16 表示プログラム及び表示装置

Publications (2)

Publication Number Publication Date
JP2007248882A JP2007248882A (ja) 2007-09-27
JP4419973B2 true JP4419973B2 (ja) 2010-02-24

Family

ID=38517296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006073088A Expired - Fee Related JP4419973B2 (ja) 2006-03-16 2006-03-16 表示プログラム及び表示装置

Country Status (2)

Country Link
US (1) US20070216688A1 (ja)
JP (1) JP4419973B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6240117B2 (ja) * 2015-04-03 2017-11-29 ファナック株式会社 文字の表示幅の自動変更機能を有する数値制御装置
US11749335B2 (en) * 2020-11-03 2023-09-05 Jianzhong Bi Host and its memory module and memory controller

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005089397A2 (en) * 2004-03-16 2005-09-29 Advanced Tracking Technologies, Inc. Geographic information data base engine

Also Published As

Publication number Publication date
US20070216688A1 (en) 2007-09-20
JP2007248882A (ja) 2007-09-27

Similar Documents

Publication Publication Date Title
JP5294313B2 (ja) ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム
KR100748802B1 (ko) 이미지를 랜더링하기 위한 방법, 그래픽 객체들을 처리하기 위한 시스템 및 컴퓨터 프로그램 저장 매체
US10796466B2 (en) Graph drawing method, graph drawing system, server apparatus, graph drawing apparatus, and recording medium
JP2007094182A (ja) アウトラインフォント圧縮方法
JP2010257460A (ja) コンピュータグラフィックスシステムにおける立方ベジェ制御点の生成
JP4419973B2 (ja) 表示プログラム及び表示装置
KR101344457B1 (ko) 글리프를 이용해 폰트를 생성하는 폰트 생성 장치 및 방법
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
JP6472171B2 (ja) 画像処理装置およびその方法
CN113345048B (zh) 地理信息图像编辑方法、装置及计算机设备
JPWO2012137243A1 (ja) テクスチャマッピング装置
JP2010287110A (ja) 情報処理装置、情報処理方法、プログラム及び記録媒体
JP2007240848A (ja) 表示プログラム、データ構造及び表示装置
WO2016092588A1 (ja) 描画装置、および描画方法
WO2015146517A1 (ja) 画像表示システム
JP2010501891A (ja) 命令のフォント生成のサイズを減少させて、速度を向上するための方法
JP5159949B2 (ja) ベクトル図形描画装置
JP2007249666A (ja) 情報処理装置、情報処理プログラムおよび情報処理方法
JP2012098951A (ja) 図形描画処理装置、図形描画処理方法、及びコンピュータプログラム
JP7133094B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2016081187A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法、及びコンピュータプログラム
JP2007248583A (ja) 表示プログラム、データ構造及び表示装置
JP7279986B1 (ja) 情報処理方法、情報処理システム及び情報処理プログラム
JP6085197B2 (ja) 携帯情報処理装置、表示処理方法、表示処理プログラム
KR101513009B1 (ko) 폰트 자동 생성 시스템 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

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: 20091110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131211

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees