(57)【特許請求の範囲】
【請求項１】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、文字を示すコード情報については該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化することを特徴とする画像処理装置。
【請求項２】
前記管理手段は、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、文字を示すコード情報については該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理装置。
【請求項４】
前記管理手段は、前記コード情報が文字を示すとともに該文字の形状のうち一部のみを描画する指定がなされているとき、描画する一部の形状データを前記コード情報格納手段に格納することを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、前記コード情報格納手段に格納されている同じ文字を示すコード情報については、前記フォント格納手段に格納されている該文字の形状データを一端とする相互参照リストとして相互に接続し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正することを特徴とする画像処理装置。
【請求項６】
前記管理手段は、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、前記コード情報格納手段に格納されている同じ文字を示すコード情報については、前記フォント格納手段に格納されている該文字の形状データを一端とする相互参照リストとして相互に接続し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理装置。
【請求項８】
前記管理手段は、前記コード情報が文字を示すとともに該文字の形状のうち一部のみを描画する指定がなされているとき、描画する一部の形状データを前記コード情報格納手段に格納することを特徴とする請求項５ないし請求項７のいずれか１項に記載の画像処理装置。
【請求項９】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化することを特徴とする画像処理方法。
【請求項１０】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理方法。
【請求項１１】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報に対応付けて前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記コード情報が示す文字と同じ文字を示す別のコード情報が既に前記コード情報格納手段に格納されているときは、該文字の形状データに対応付けて前記フォント格納手段に格納されている参照情報をもとに前記別のコード情報に対応付けられている参照情報を前記コード情報を指し示す参照情報に変更するとともに、前記コード情報に対応付けて前記別のコード情報を指し示す参照情報を前記コード情報格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正することを特徴とする画像処理方法。
【請求項１２】
描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報に対応付けて前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記コード情報が示す文字と同じ文字を示す別のコード情報が既に前記コード情報格納手段に格納されているときは、該文字の形状データに対応付けて前記フォント格納手段に格納されている参照情報をもとに前記別のコード情報に対応付けられている参照情報を前記コード情報を指し示す参照情報に変更するとともに、前記コード情報に対応付けて前記別のコード情報を指し示す参照情報を前記コード情報格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理方法。
【請求項１３】
入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する１ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び１ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、文字を示す中間コード情報を生成するとともに該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記中間コード情報とともに前記中間コード処理手段に渡して前記中間コード情報格納手段に格納させ、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報から後で描画する中間コード情報によって書き換えられてしまう前に描画する中間コード情報を削除し、前記中間コード情報格納手段の空き容量を増加させるとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報に対応する文字の形状データから該中間コード情報を指し示す参照情報を無効化することを特徴とする画像形成装置。
【請求項１４】
入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する１ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び１ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、文字を示す中間コード情報を生成するとともに該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記中間コード情報とともに前記中間コード処理手段に渡して前記中間コード情報格納手段に格納させ、また該文字の形状データを参照する中間コード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報の一部または全部を用いて描画処理を行い、描画処理を行った中間コード情報を前記中間コード情報格納手段から削除するとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報に対応する文字の形状データから該中間コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示す中間コード情報を前記中間コード情報格納手段に格納することを特徴とする画像形成装置。
【請求項１５】
入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する１ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び１ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、前記中間コード情報格納手段に格納されている同じ文字を示す中間コード情報については前記フォント格納手段内の該文字の形状データを一端とする相互参照リストとして相互に接続し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報から後で描画する中間コード情報によって書き換えられてしまう前に描画する中間コード情報を削除し、前記中間コード情報格納手段の空き容量を増加させるとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報を相互参照リストから削除するとともに、他の中間コード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正することを特徴とする画像形成装置。
【請求項１６】
入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する１ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び１ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、前記中間コード情報格納手段に格納されている同じ文字を示す中間コード情報については前記フォント格納手段内の該文字の形状データを一端とする相互参照リストとして相互に接続し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報の一部または全部を用いて描画処理を行い、描画処理を行った中間コード情報を前記中間コード情報格納手段から削除するとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報を相互参照リストから削除するとともに、他の中間コード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示す中間コード情報を前記中間コード情報格納手段に格納することを特徴とする画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、描画のためのコード情報、特に文字を描画するコード情報の制御及び管理を行う画像処理装置及び画像処理方法と、その画像処理装置及び画像処理方法を用いた画像形成装置に関するものである。
【０００２】
【従来の技術】
図１９は、一般的な画像形成装置の一例を示すブロック図である。図中、１は入力データ解釈部、２は文字データ処理部、３はグラフィックスデータ処理部、４はイメージデータ処理部、５は中間コード処理部、６はバンドバッファ、７は出力部である。図１９に示した画像形成装置は、入力データとして例えばプリンタ記述言語などによって記述されたデータを受け取り、一旦、中間コードに変換してから描画処理を行い、画像を形成する装置の例を示している。
【０００３】
入力データ解釈部１は、例えばプリンタ記述言語によって記述された入力データを解釈し、描画種別に応じて入力データを分類する。ここでは、入力データを“文字”、“グラフィックス”、“イメージ”の３つに分類する。分類された入力データは、それぞれの種別に応じて、文字データ処理部２，グラフィックスデータ処理部３，イメージデータ処理部４に渡される。
【０００４】
文字データ処理部２は、入力データ解釈部１から渡される文字を描画する入力データを中間コードに変換し、中間コード処理部５に対して出力する。同様に、グラフィックスデータ処理部３は、入力データ解釈部１から渡される図形などを描画する入力データを中間コードに変換し、中間コード処理部５に対して出力する。また、イメージデータ処理部４は、描画するイメージデータを含む入力データを中間コードに変換し、中間コード処理部５に対して出力する。
【０００５】
中間コード処理部５は、文字データ処理部２，グラフィックスデータ処理部３，イメージデータ処理部４から渡される中間コードを蓄積し、１ページ分の中間コードが蓄積された時点で、中間コードをデコードして描画処理を行い、画像をバンドバッファ６に格納する。
【０００６】
出力部７は、バンドバッファ６に格納されている画像を取り出し、例えば記録紙などの被記録媒体上に画像を形成する。
【０００７】
図２０は、文字データ処理部及び中間コード処理部の一例を示すブロック図である。図中、１１は文字データ管理部、１２は文字データ生成処理部、１３はフォントキャッシュバッファ、１４は中間コード管理部、１５は中間コードバッファである。図１９の入力データ解釈部１で“文字”に分類された入力データ（以下、文字データと呼ぶ）は、文字データ管理部１１に入力される。文字データは、例えば書体、サイズ、方向、文字コード、色、印字位置等の情報を含んで構成されている。
【０００８】
文字データ管理部１１は、文字データが入力されると、その文字の形状データや描画位置などの情報を含む中間コードへの変換を行う。このとき、文字データが示す文字の形状データをフォントキャッシュバッファ１３から探し、存在しなければ文字データ生成処理部１２に依頼して、文字の形状データを生成させる。文字データ管理部１１は、フォントキャッシュバッファ１３の管理も行い、文字データ生成処理部１２で生成した文字の形状データは、フォントキャッシュバッファ１３にも登録する。また、登録の際に、フォントキャッシュバッファ１３に空き領域がない場合には、所定のアルゴリズムに従ってフォントキャッシュバッファ１３に登録されている文字の形状データを削除し、空き領域を確保してから新たな文字の形状データを登録する。
【０００９】
文字データ生成処理部１２は、文字データ管理部１１から渡される文字データを元に、文字の形状データを生成する。また、フォントキャッシュバッファ１３は、文字データ生成処理部１２で生成された文字の形状データを、再利用できるように貯えておく。このフォントキャッシュバッファ１３に文字の形状データを格納しておくことによって、同じ文字については文字データ生成処理部１２で文字の形状データを生成する必要がないため、高速に文字の形状データを得ることができる。
【００１０】
中間コード管理部１４は、文字データ管理部１１や、他の処理部から受け取った中間コードを中間コードバッファ１５へ格納する。また、中間コードバッファ１５に格納された中間コードに従って描画処理を行い、描画した画像をバンドバッファ６に格納する。中間コードバッファ１５は、それぞれの処理部で生成された中間コードを格納する。
【００１１】
図２１は、従来の文字データの処理手順の一例を示すフローチャートである。Ｓ１０１において、入力データが文字データか否かを入力データ解釈部１で判定し、文字データ以外の場合にはＳ１０７においてグラフィックスデータ処理部３やイメージデータ処理部４などにおいてそれぞれの入力データの種類に応じた処理を行う。
【００１２】
入力データが文字データであれば、Ｓ１０２において、文字データ管理部１１は文字データが示す文字の形状データがフォントキャッシュバッファ１３に登録されているか否かを判定する。文字データが示す文字の形状データがフォントキャッシュバッファ１３に登録されていれば、その登録されている形状データを読み出して用いることができるので、そのままＳ１０５に進む。文字データが示す文字の形状データがフォントキャッシュバッファ１３に登録されていない場合には、Ｓ１０３において、文字データ生成処理部１２で文字データが示す文字に対応する形状データを生成する。そしてＳ１０４において、Ｓ１０３で生成した文字の形状データをフォントキャッシュバッファ１３に登録する。
【００１３】
Ｓ１０５において、得られた文字の形状データに例えば描画位置などの情報を含めて中間コードを生成し、生成した中間コードを中間コード管理部１４により中間コードバッファ１５に書き込む。
【００１４】
Ｓ１０６において、１ページ分の入力データを処理したか否かを判定し、ページの途中である場合にはＳ１０１に戻って次の入力データについての処理を繰り返し行う。１ページ分の入力データについて処理を終えると、文字データに対する処理を終える。そして中間コード管理部１４が中間コードバッファ１５に格納された中間コードを元に描画処理を行って、バンドバッファ６に画像を展開する。バンドバッファ６に展開された画像は、出力部７に送られ、画像が形成される。
【００１５】
図２２は、従来の文字データの処理手順の一例を実行した場合のフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。図２１に示すような文字データに対する処理を行うと、各文字データに対応する中間コードは、それぞれが文字の形状データを保持することになる。そのため、図２２に示すように、同じ文字を描画する文字データが複数回出現する場合には、その都度、その文字の形状データが中間コードバッファ１５に転送され、書き込まれることになる。なお図２２では、文字「あ」について、同じ文字「あ」の形状データが書き込まれている領域について矩形で示している。
【００１６】
この方法では、文字の中間コードデータが一つずつ独立しており、他の文字中間コードとの関連がないため、例えばハードウェアで描画処理する場合には中間コードを順次転送するだけで描画処理を行うことができ、非常に簡単に描画制御を行うことができる。しかし、図２２からも分かるように、中間コードバッファ１５内には同じ文字の形状データが多数格納される可能性があるため、中間コードバッファを無駄に消費してしまうという問題がある。また、同じ文字を示す中間コードを生成して中間コードバッファ１５に書き込む際に、形状データをその度に転送して書き込むため、中間コードを中間コードバッファ１５に書き込むための時間がかかり、高速化を阻害していた。
【００１７】
このような問題を解決するため、例えば特開平１０−１６３１９号公報に記載されている装置では、基本的には中間コードバッファ１５に文字の形状データを転送しない方式が考えられている。図２３は、従来の文字データの処理方法の別の例におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。この方式では、文字の形状データはフォントキャッシュバッファ１３に配置し、中間コードバッファ１５にはフォントキャッシュバッファ１３内の文字の形状データを参照する情報を書き込むことによって、中間コードバッファ１５が無駄に消費されるのを防止している。また、フォントキャッシュバッファ１３内の文字の形状データには、中間コードから参照されている数（参照数）が付加されている。この参照数は、中間コードから参照されている限り、形状データをフォントキャッシュバッファ１３から削除しないようにするためのものである。
【００１８】
図２４は、従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きがない場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。上述のように、このフォントキャッシュバッファ１３内の形状データを参照する方式では、中間コードからの参照がなくならない限り、フォントキャッシュバッファ１３内の文字の形状データは削除されない。そのため、文字数が多くなってくるとフォントキャッシュバッファ１３に空きがなくなってしまう。さらに描画する文字が発生すると、フォントキャッシュバッファ１３には登録できない。このような場合には、図２４に示すように、登録できなかった文字の形状データを中間コードバッファ１５に仮置きし、中間コードには仮置きした文字の形状データを参照する情報を付加しておく。これによって、フォントキャッシュバッファ１３の溢れを回避している。
【００１９】
図２５は、従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きができた場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。上述の図２４に示すように、フォントキャッシュバッファ１３に空きがない場合には、中間コードバッファ１５に文字の形状データを仮置きする。この状態において、例えば中間コードバッファ１５内の中間コードに従って描画処理を行う等により、フォントキャッシュバッファ１３には空きができる。例えば図２４に示す例において、文字「あ」を描画する４つの中間コードが処理されて中間コードが削除されると、フォントキャッシュバッファ１３に格納されている文字「あ」の形状データの参照数は０になる。このとき、中間コードバッファ１５に仮置きされていた文字の形状データをフォントキャッシュバッファ１３に移動させる。図２５に示す例では、文字「い」の形状データをフォントキャッシュバッファ１３の空いた領域に移動させた場合を示している。このとき、中間コードバッファ１５に格納されている中間コードのうち、文字「い」の形状データを参照する情報を書き換える。
【００２０】
このようにして、フォントキャッシュバッファ１３に空きができ次第、中間コードバッファ１５に仮置きしていた文字の形状データをフォントキャッシュバッファ１３に移し替える。これによって、中間コードバッファ１５の空き容量をなるべく多くするとともに、フォントキャッシュバッファ１３に常に最新の文字の形状データを保持させることができる。
【００２１】
しかし、文字の形状データを中間コードバッファ１５からフォントキャッシュバッファ１３に移し替えると、その形状データを参照していた中間コードの情報を書き換えなければならない。そのためには、移し替える文字の形状データを参照している中間コードを、中間コードバッファ１５全体から探索する必要がある。そのため、文字の形状データを中間コードバッファ１５からフォントキャッシュバッファ１３に移し替えるための処理に時間がかかり、全体として文字の描画処理を高速に行うことができないという問題がある。
【００２２】
また、上述の方式ではフォントキャッシュバッファ１３に登録された文字の形状データは、その参照数が０になって領域が開放されない限り、その領域を占有する。そのため、例えば中間コードバッファ１５に格納されている他の文字の形状データと入れ替えることでフォントキャッシュバッファ１３を効率的に使用できる場合でも、そのようなことは行われていない。逆に、フォントキャッシュバッファ１３から中間コードバッファ１５へ文字の形状データを移し替えるには、上述のように中間コードバッファ１５に格納されている中間コードをすべて検査し、移し替えた文字の形状データを参照している中間コードについてその参照の情報を書き換えなければならない。そのため、処理速度が遅くなるという問題があった。
【００２３】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、中間コードバッファなどのコード情報の格納領域を有効に活用できるとともに、高速に文字を描画するコード情報の処理を行うことができる画像処理装置及び画像処理方法と、そのような画像処理装置および画像処理方法を用いた画像形成装置を提供することを目的とするものである。
【００２４】
【課題を解決するための手段】
第１の発明は、画像処理装置及び画像処理方法において、文字を示すコード情報が入力されたとき、そのコード情報が示す文字の形状データを参照するためのフォント格納手段内の形状データの参照情報をコード情報格納手段に格納し、またその文字の形状データを参照するコード情報を指し示す参照情報を、その文字の形状データに対応付けてフォント格納手段に格納し、文字の形状データをフォント格納手段に格納させる際に、フォント格納手段に空きがない場合、フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報をコード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けてコード情報格納手段に格納している形状データを参照するための参照情報を書き換え、コード情報格納手段にコード情報を格納可能な空き容量がなくなると、コード情報格納手段に格納されているコード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、または、コード情報格納手段に格納されているコード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報をコード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とするものである。これによって、それぞれの文字を示すコード情報は文字の形状データとの間で相互に参照するデータ構造となる。そのため、例えば文字の形状データをコード情報格納手段からフォント格納手段へ、あるいはフォント格納手段からコード情報格納手段へ移し替えても、相互参照をたどることによって、移し替えた形状データを参照しているコード情報について参照情報を容易に変更することができる。そのため、文字の形状データのコード情報格納手段とフォント格納手段の間での移し替えを高速に行い、効率よくフォント格納手段を利用するとともに、全体の処理を高速化することができる。
【００２５】
また第２の発明は、画像処理装置及び画像処理方法において、文字を示すコード情報が入力されたとき、そのコード情報が示す文字の形状データを参照するためのフォント格納手段内の形状データの参照情報をコード情報に対応付けてコード情報格納手段に格納し、またその文字の形状データを参照するコード情報を指し示す参照情報を、その文字の形状データに対応付けてフォント格納手段に格納する。これによって、文字の形状データとその文字の形状データを参照する中間コードとの間で相互参照が図られる。さらに、そのコード情報が示す文字と同じ文字を示す別のコード情報が既にコード情報格納手段に格納されているときは、その文字の形状データに対応付けてフォント格納手段に格納されている参照情報をもとに、先のコード情報に対応付けられている参照情報を後のコード情報を指し示す参照情報に変更するとともに、後のコード情報に対応付けて先のコード情報を指し示す参照情報を前記コード情報格納手段に格納する。これによって、文字の形状データを一端のノードとし、その文字の形状データを参照するコード情報を中間のノード及び他端のノードとする相互参照リストを構成することができる。例えば文字の形状データをコード情報格納手段からフォント格納手段へ、あるいはフォント格納手段からコード情報格納手段へ移し替えても、文字の形状データに対応付けて格納されている参照情報と、その形状データと相互参照されているコード情報の参照情報とを変更するのみでよい。そのため、文字の形状データのコード情報格納手段とフォント格納手段の間での移し替えを高速に行い、効率よくフォント格納手段を利用するとともに、全体の処理を高速化することができる。さらに、文字の形状データをフォント格納手段に格納させる際に、フォント格納手段に空きがない場合、フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報をコード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けてコード情報格納手段に格納している形状データを参照するための参照情報を書き換える。さらにまた、コード情報格納手段にコード情報を格納可能な空き容量がなくなると、コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正する。あるいは、コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報をコード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とするものである。
【００２７】
【発明の実施の形態】
図１は、本発明の画像処理装置の第１の実施の形態を示すブロック図である。図中の符号は図２０と同様である。なお図１は、本発明の画像処理方法の第１の実施の形態を実現するための構成でもある。文字データ管理部１１及び中間コード管理部１４によって管理手段を構成している。また、中間コードバッファ１５はコード情報格納手段を、フォントキャッシュバッファ１３はフォント格納手段を、文字データ生成処理部１２は文字データ生成手段をそれぞれ構成している。図１における文字データは、上述のように文字を描画する入力データであってもよいし、上述の中間コードに相当するデータであってもよい。また、図１における中間コードはコード情報に対応するものである。
【００２８】
文字データ管理部１１は、文字データが入力されると、文字データが示す文字の形状データをフォントキャッシュバッファ１３から探す。存在すれば中間コードにフォントキャッシュバッファ１３内の文字の形状データを指し示す参照情報を付加して中間コード管理部１４に渡す。そして、中間コード管理部１４から中間コードを指し示す参照情報を取得し、フォントキャッシュバッファ１３内の対応する文字の形状データに、取得した参照情報を付加する。このようにしてフォントキャッシュバッファ１３内の対応する文字の形状データには、その形状データを参照するすべての中間コードの参照情報が対応付けられる。
【００２９】
文字データが示す文字の形状データがフォントキャッシュバッファ１３内に存在しない場合には、後述するように中間コードバッファ１５に待避した文字の形状データから探す。この場合も、中間コードバッファ１５に待避している文字の形状データを指し示す参照情報を中間コードに付加して中間コード管理部１４に渡す。そして、中間コード管理部１４から中間コードを指し示す参照情報を取得し、中間コードバッファ１４内の対応する文字の形状データに、取得した参照情報を付加する。このようにして中間コードバッファ１４内の対応する文字の形状データについても、その形状データを参照するすべての中間コードの参照情報が対応付けられる。
【００３０】
文字データが示す文字の形状データがフォントキャッシュバッファ１３にも中間コードバッファ１５にも存在しない場合には、文字データ生成処理部１２に依頼して、文字の形状データを生成させる。生成した文字の形状データは、基本的にフォントキャッシュバッファ１３に格納する。フォントキャッシュバッファ１３に空き領域がなく、生成した文字の形状データが格納できない場合には、所定の手順により中間コードバッファ１５に待避する文字の形状データを選択し、選択した文字の形状データを中間コードバッファ１５に待避させる。待避した文字の形状データが、新たに生成したものである場合には、上述の中間コードバッファ１５に文字の形状データが存在する場合と同様に処理を行う。中間コードバッファ１５に待避させる文字の形状データは、フォントキャッシュバッファ１３に格納されているときと同様に書体や文字コードなどの情報を持ったまま待避させることができる。また、フォントキャッシュバッファ１３内に存在していた文字の形状データを中間コードバッファ１５に待避する場合には、後述する文字の形状データの追い出し処理を行って空き領域を確保してから、新たに生成した文字の形状データをフォントキャッシュバッファ１３に格納し、上述のフォントキャッシュバッファ１３内に文字の形状データが存在する場合と同様に処理を行う。
【００３１】
中間コード管理部１４は、文字データ管理部１１から渡される中間コードや他の処理部から渡される中間コードを中間コードバッファ１５に格納する。文字データ管理部１１から渡された中間コードを中間コードバッファ１５に格納した場合には、その中間コードを指し示す参照情報を文字データ管理部１１に返す。また、中間コードバッファ１５に空き領域がなくなると、後述するフォールバック処理を行って中間コードバッファ１５内に空き領域を生成する。中間コードバッファ１５に格納された中間コードに従って文字の描画処理が行われた後は、その文字の形状データに付されていた中間コードへの参照情報を書き換える。あるいは、１ページや１バンドといった描画単位ごとに、文字の形状データに付されていた中間コードへの参照情報を初期化してもよい。このとき、文字データ管理部１１と協働して初期化の処理を行ってもよい。
【００３２】
図２は、本発明の画像処理装置の第１の実施の形態における動作の一例を示すフローチャートである。なお図２は、本発明の画像処理方法の第１の実施の形態も示している。文字データが文字データ管理部１１に入力されると、Ｓ１１１において、文字データが示す文字の形状データをフォントキャッシュバッファ１３から探す。見つかればＳ１２０に進み、中間コード管理部１４を介して中間コードとともに、見つかった文字の形状データを参照するための参照情報を中間コードバッファ１５へ書き込む。さらにＳ１２１において、中間コードバッファ１５へ書き込んだ中間コードを参照するための参照情報を、見つかった文字の形状データに対応付けてフォントキャッシュバッファ１３へ書き込む。
【００３３】
入力された文字データが示す文字の形状データがフォントキャッシュバッファ１３に存在しない場合には、Ｓ１１２において、その文字の形状データを中間コードバッファ１５から探す。中間コードバッファ１５に存在する文字の形状データにも、フォントキャッシュバッファ１３に存在する場合と同様に文字コードや書体などの情報を付加しておくことにより、中間コードバッファ１５内の文字の形状データも簡単に検索することが可能である。
【００３４】
中間コードバッファ１５に存在する場合には、Ｓ１２０に進み、中間コード管理部１４を介して中間コードとともに、見つかった文字の形状データを参照するための参照情報を中間コードバッファ１５へ書き込む。さらにＳ１２１において、中間コードバッファ１５へ書き込んだ中間コードを参照するための参照情報を、見つかった文字の形状データに対応付けて中間コードバッファ１５へ書き込む。
【００３５】
入力された文字データが示す文字の形状データがフォントキャッシュバッファ１３及び中間コードバッファ１５に存在しない場合には、Ｓ１１３において、文字データが示す文字の形状データを文字データ生成処理部１２で生成する。Ｓ１１４において、新たに生成した文字の形状データがフォントキャッシュバッファ１３に登録可能か否かを調べる。フォントキャッシュバッファ１３に空きがあり、新たに生成した文字の形状データが登録可能であれば、Ｓ１１９において、新たに生成した文字の形状データをフォントキャッシュバッファ１３に登録する。そしてＳ１２０に進み、中間コード管理部１４を介して中間コードとともに、フォントキャッシュバッファ１３に登録した文字の形状データを参照するための参照情報を中間コードバッファ１５へ書き込む。さらにＳ１２１において、中間コードバッファ１５へ書き込んだ中間コードを参照するための参照情報を、フォントキャッシュバッファ１３に登録した文字の形状データに対応付けてフォントキャッシュバッファ１３へ書き込む。
【００３６】
フォントキャッシュバッファ１３に空きがなく、新たに生成した文字の形状データがフォントキャッシュバッファ１３に登録できない場合には、Ｓ１１５〜Ｓ１１８において、フォントキャッシュバッファ１３から中間コードバッファ１５に文字の形状データを待避させる追い出し処理を行う。Ｓ１１５において、フォントキャッシュバッファ１３に既に登録されている文字の形状データのうちから、所定の方式により中間コードバッファ１５に待避する文字の形状データを選択する。
【００３７】
Ｓ１１６において、Ｓ１１５で選択した文字の形状データを中間コードバッファ１５に待避可能か否かを判定する。もし、中間コードバッファ１５へ文字の形状データを待避させるだけの空き領域がなく、待避できない場合には、Ｓ１１７において、中間コードバッファ１５に空き領域を生成するフォールバック処理を行う。このフォールバック処理については後述する。
【００３８】
中間コードバッファ１５に空きが存在する場合、あるいはＳ１１７におけるフォールバック処理で空き領域を確保した後、Ｓ１１８において、Ｓ１１５で選択した文字の形状データを中間コードバッファ１５へ移し替える。このとき、フォントキャッシュバッファ１３に格納されているときと同様に書体や文字コードなどの情報を持ったまま、文字の形状データを中間コードバッファ１５に待避させる。これによって中間コードバッファ１５内の文字の形状データの検索を容易に行うことができるようにする。そしてＳ１１４へ戻り、フォントキャッシュバッファ１３の空き容量を確認する。空き容量がまだ不足している場合には、Ｓ１１５〜Ｓ１１８の処理を繰り返して行う。
【００３９】
フォントキャッシュバッファ１３に新たに生成した文字の形状データを登録可能な空き容量が確保できると、上述のようにＳ１１９で新たに生成した文字の形状データをフォントキャッシュバッファ１３に登録する。そしてＳ１２０において、中間コード管理部１４を介して中間コードとともに、フォントキャッシュバッファ１３に新たに登録した文字の形状データを参照するための参照情報を中間コードバッファ１５へ書き込む。さらにＳ１２１において、中間コードバッファ１５へ書き込んだ中間コードを参照するための参照情報を、フォントキャッシュバッファ１３に新たに登録した文字の形状データに対応付けてフォントキャッシュバッファ１３へ書き込む。
【００４０】
このようにして、入力された文字データに対する中間コードは、その文字データが示す文字の形状データと対応付けて中間コードバッファ１５に格納される。なお、上述の追い出し処理において中間コードバッファ１５に追い出す文字の形状データは、フォントキャッシュバッファ１３に既に登録されている中から選択したが、新たに生成した文字の形状データを含めた中から選択するように構成してもよい。中間コードバッファ１５に追い出す文字の形状データの選択方法は、従来より各種の手法が考案されており、任意の方法を用いることが可能である。また、上述のフローチャートでは示していないが、文字の形状データを中間コードバッファ１５に格納するときだけでなく、中間コードバッファ１５にデータを書き込む際に中間コードバッファ１５に空きがない場合には、Ｓ１１７で行うフォールバック処理を実行して、中間コードバッファ１５の空き容量を増加させる。
【００４１】
図３は、本発明の画像処理装置及び画像処理方法の第１の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図２のＳ１２０及びＳ１２１で説明したように、文字の形状データを参照するための参照情報を中間コードバッファに書き込むとともに、その形状データを参照する中間コードを参照するための参照情報を、その文字の形状データに対応付けて書き込む。例えば図３に示すように、中間コードバッファ１５のアドレスａに格納された中間コードが文字「あ」を描画するコードであるとき、その中間コードには、フォントキャッシュバッファ１３に登録されている文字「あ」の形状データが格納されているアドレスＡが参照情報として書き込まれる。それとともに、文字「あ」の形状データには、この形状データを参照している中間コードの参照情報、例えばアドレスａ、アドレスｂ、アドレスｃが形状データに対応付けて書き込まれる。これによって、文字の形状データと中間コードは相互に参照できるようになる。
【００４２】
例えば新たに文字「あ」を描画する文字データが入力されると、フォントキャッシュバッファ１３内の文字「あ」の形状データを参照するためのアドレスＡを、入録された文字データに対応する中間コードに付加して中間コードバッファ１５に書き込む。それとともに、例えばその中間コードを書き込んだアドレスを参照情報として、フォントキャッシュバッファ１３の文字「あ」の形状データに対応付けて追加して書き込めばよい。
【００４３】
なお、例えば描画処理をバンドごとに行うことがある。このとき、文字の形状がバンドの境界にまたがる場合がある。図４は、文字の形状がバンド境界にまたがる場合に中間コードが保持するデータの一例の説明図である。文字の形状がバンド境界にまたがる場合には、バンドの境界で分割された文字形状の部分について、その先頭への参照情報とともに、そのバンドに含まれる部分の幅や高さといったサイズ情報を中間コードに保持させておけばよい。例えば図４に示した例では、アドレスａに格納された中間コードは、文字「あ」の先頭から高さＨ１だけの部分のみを描画することを示している。同様に、アドレスｂに格納された中間コードは、文字「あ」のアドレスＢの位置から高さＨ２だけの部分のみを描画することを示し、アドレスｃに格納された中間コードは、文字「あ」のアドレスＣの位置から高さＨ３だけの部分のみを描画することを示している。このようにすることによって、分割された文字の形状をそれぞれ保持する必要が無く、バンドをまたがる場合にも１つの文字の形状データを保持するのみでよい。そのため、記憶領域を節約することができる。
【００４４】
また、図３に示した例では、クリップ処理を行った文字の形状データについては中間コードバッファ１５に格納している。もちろん、クリップ処理を行った文字の形状データについてもフォントキャッシュバッファ１３に格納するように構成してもよい。図５は、クリップ処理の一例の説明図である。クリップ処理とは、図形や文字について、与えられた領域内の部分についてのみ描画されるように処理することである。例えば図５（Ａ）に示すような文字「あ」が与えられたとき、図５（Ｂ）に太線で囲んで示す領域でクリップする場合には、図５（Ｃ）に示すように描画することになる。もちろんクリップ処理は文字に限られるものではなく、グラフィック図形やイメージなどにおいても同様の処理が行われる。文字についてクリップ処理を行った場合には、図５（Ｃ）に示すようにクリップ処理の結果得られた形状データを、例えば図３に示す例では中間コードバッファ１５に格納している。
【００４５】
なお、主走査方向へのクリップを行う場合には、図４に示したように文字の形状データへの参照情報とともに幅や高さの情報を中間コードに保持させることによって、フォントキャッシュバッファ１３内の文字の形状データを利用することが可能である。この場合、クリップされた文字の形状データを中間コードバッファ１５に格納しなくて済むので、中間コードバッファ１５のメモリ消費を低減することができる。
【００４６】
新たな文字を描画する文字データが入力されると、フォントキャッシュバッファ１３，中間コードバッファ１５内の文字の形状データを探す。見つからなければ文字データ生成処理部１２により新たに文字の形状データを生成して、フォントキャッシュバッファ１３に登録するとともに、その文字データの中間コードとの間で相互に参照するためのデータをフォントキャッシュバッファ１３及び中間コードバッファ１５に書き込む。
【００４７】
このようにして新たに文字の形状データが生成される度に、フォントキャッシュバッファ１３に生成された文字の形状データが登録されてゆく。生成する文字の形状データが多い場合、登録してゆくうちにフォントキャッシュバッファ１３に形状データを登録できる空きがなくなってしまう。このような場合には、フォントキャッシュバッファ１３に登録されている文字の形状データ（あるいは新たに登録する文字の形状データも含めて）のうちから、所定の手法に従って選択した文字の形状データを中間コードバッファ１５に待避する追い出し処理を行う。
【００４８】
図６は、本発明の画像処理装置及び画像処理方法の第１の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。例えばフォントキャッシュバッファ１３に空きがない状態で、文字「い」の形状データを新たに生成したとする。この場合、図２に示したフローチャートに従い、追い出し処理を行う。図６に示す例では、所定の方式によってフォントキャッシュバッファ１３に既に登録されていた文字「あ」の形状データが選択され、この形状データを中間コードバッファ１５に待避させた場合を示している。
【００４９】
選択された文字「あ」の形状データは、中間コードバッファ１５の空き容量を確認後、フォントキャッシュバッファ１３から中間コードバッファ１５に移し替えられる。このとき、移し替える文字の形状データは、フォントキャッシュバッファ１３に格納されているときと同様に書体や文字コードなどの情報を持ったまま中間コードバッファ１５に移し替えることができる。それとともに、文字「あ」の形状データに付加されている中間コードに対する参照情報をもとに、中間コードに付加されている文字「あ」の形状データを参照するための参照情報を書き換える。これによって、文字の形状データと中間コードとの間の相互参照の関係を維持する。また、このように相互に参照しているので、文字の形状データを中間コードバッファ１５に移し替えたとき、中間コードに付加されている参照情報の書き換えは、文字の形状データに付加されている参照情報に基づいて行うことができる。そのため、中間コードバッファ１５内の検索する必要がなく、高速に追い出し処理を行うことができる。
【００５０】
このようにして文字「あ」の形状データをフォントキャッシュバッファ１３から中間コードバッファ１５に移し替えた後、フォントキャッシュバッファ１３の空き容量をチェックし、登録可能であれば新たに生成した文字「い」の形状データをフォントキャッシュバッファ１３に格納する。そして、文字「い」を描画する中間コードとの間で相互に参照する参照情報をそれぞれ書き込む。これによって図６に示すような状態となる。
【００５１】
なお、中間コードバッファ１５に追い出された文字の形状データは、例えば中間コードからの参照がなくなった時点で削除される。あるいは、中間コードバッファ１５は例えば１ページ等の所定の単位で画像を描画するごとに更新されるので、その更新の際に削除される。
【００５２】
また、中間コードバッファ１５に追い出される形状データとして選択された文字の形状データに対して、中間コードからの参照がない場合には、中間コードバッファ１５に転送せずに、フォントキャッシュバッファ１３から削除してもよい。
【００５３】
上述のような追い出し処理の過程において、中間コードバッファ１５に空きがなく、フォントキャッシュバッファ１３から追い出す文字の形状データを中間コードバッファ１５に格納できない場合がある。また、文字にかかわらず、中間コードを中間コードバッファ１５に登録してゆくうちに、中間コードバッファ１５が満杯になってしまう場合がある。このような場合には、中間コードバッファ１５に空き領域を生成するフォールバック処理を行う。
【００５４】
図７は、フォールバック処理の第１の例の説明図である。図中の▲１▼〜▲４▼はそれぞれ描画するオブジェクトを示している。図７（Ａ）には、描画の重なりを示している。すなわち、▲１▼及び▲２▼のオブジェクトを描画した上に、▲３▼のオブジェクトを▲１▼のオブジェクトに掛かるように描画し、さらにその後、▲４▼のオブジェクトを描画したことを示している。
【００５５】
このようにオブジェクトを上書きしてゆくと、▲１▼〜▲３▼のオブジェクトに従って描画した図形は、▲４▼のオブジェクトを描画することで消えてしまう。そのため、描画結果としては図７（Ｂ）に示すように▲４▼のオブジェクトのみを描画した場合と等価になる。なお、ここでは描画したオブジェクトは透過しないものとしている。
【００５６】
このように、後で描画するオブジェクトの描画領域に完全に含まれている先のオブジェクトは、描画しなくてもよいため削除することができる。このような性質を利用し、図７に示す▲１▼〜▲３▼のオブジェクトのような関係の中間コードを中間コードバッファ１５から探索して削除することができる。これによって、中間コードバッファ１５の空き容量を増加させることができる。
【００５７】
図８は、フォールバック処理の第２の例の説明図である。この例では、中間コードバッファ１５に格納された、フォールバック処理時点における中間コードの全部あるいは一部を元に、実際に描画処理を行ってしまう。そして描画処理を行った中間コードを中間コードバッファ１５から削除する。このフォールバック処理によって生成される描画結果は、最終的な描画画像ではなく、あくまでも中間的な描画画像である。このような描画画像を例えばバンドバッファ６に格納しておく。図８に示す例では、さらに圧縮処理を施し、圧縮画像を形成し、例えばバンドバッファ６あるいは別に設けられている圧縮バンドバッファ等に格納しておくことができる。そして中間コードバッファ１５には、描画画像あるいは圧縮画像を参照する参照情報を含む中間コードを格納する。このようなフォールバック処理によって、描画した中間コードを削除できるので、中間コードバッファ１５の空き容量を大幅に増加させることができる。
【００５８】
このようにして生成された中間的な描画画像あるいは圧縮画像は、以後、イメージデータとして取り扱い、この画像に対して後で登録される中間コードによって上書き描画を行ってゆく。最終的に例えば１ページ分のオブジェクトの描画が完了すれば、最初の中間コードから順に描画した場合とほぼ等価な画像が得られる。なお、非可逆の圧縮を施した場合には、多少の画質劣化が生じる。しかし、フォールバック処理は中間コードバッファ１５に空きがなくなったときの例外的な処理であり、中間コードバッファ１５の容量を増加させればフォールバック処理は減少させることが可能である。
【００５９】
図９は、本発明の画像処理装置及び画像処理方法におけるフォールバック処理の一例を示すフローチャートである。この例では、図７に示すフォールバック処理の第１の例を実行し、まだ空きが不足する場合には図８に示すフォールバック処理の第２の例を実行する場合について示している。もちろん、いずれかを実行するように構成してもよい。なお、この図９に示す処理は、例えば図２のＳ１１７において行うことができる。
【００６０】
Ｓ１３１において、まず図７に示したように、後のオブジェクトによって完全に重複して描画される先のオブジェクトに対応する中間コードを、中間コードバッファ１５から削除する。この処理によって、ある程度、中間コードバッファ１５に空き領域を確保することができる。
【００６１】
Ｓ１３２において、Ｓ１３１で空き領域を確保することによって、中間コードバッファ１５への書き込みが可能になったか否かを判定する。書き込みが可能であれば、フォールバック処理を終了する。
【００６２】
まだ中間コードバッファ１５への書き込みを行うことができない、即ち空き容量がまだ少ない場合には、図８に示した方法によって、フォールバック処理を行う。Ｓ１３３において、現時点における中間コードバッファ１５の内容に従って描画処理を行い、中間的な描画画像を生成する。描画処理を行った中間コードは、中間コードバッファ１５から削除してゆく。さらにここでは、Ｓ１３４において、描画画像を圧縮して、圧縮画像を生成する。なお、このＳ１３４における圧縮処理は行わなくてもよい。このようにして生成された描画画像あるいは圧縮画像を参照する参照情報を含む中間コードを中間コードバッファ１５に格納する。このようにして、フォールバック処理を行うことができる。
【００６３】
図１０は、本発明の画像処理装置及び画像処理方法の第１の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図１０では、図３に示した状態において中間コードバッファ１５に空きがなくなり、フォールバック処理を行った場合を示している。この例では、図１０の中間コードバッファ１５において上から破線で示した部分までの中間コードについて図８に示した方法によってフォールバック処理を行ったものとする。即ち、図１０中の中間コードバッファ１５の上から破線で示した部分までの中間コードに従って描画処理を行い、中間的な描画画像を生成する。そして描画画像を圧縮し、図１０の下部に示す圧縮画像を得る。
【００６４】
描画処理を行った中間コードについては削除する。このとき、文字を描画する中間コードについては、文字の形状データとの間で相互参照の関係がある。文字を描画する中間コードを削除する際には、削除する中間コードを参照している文字の形状データの参照情報を、図１０に示すように無効な値に変更する。あるいは、その参照情報を削除してもよい。このようにして、削除する中間コードと文字の形状データとの間の参照関係を無効にする。
【００６５】
このような描画処理を順次行い、中間コードを削除してゆくことによって、中間コードバッファ１５には大きな空き領域が生成される。この空いた領域に、中間的な描画画像あるいはその描画画像を圧縮した圧縮画像を参照する参照情報を含む中間コードを格納する。このようにして、フォントキャッシュバッファ１３及び中間コードバッファ１５の内容は、図１０に示すようになる。なお、中間コードバッファ１５において破線から上の部分が、フォールバック処理によって空き領域となる。
【００６６】
なお、通常の描画処理の際にも、上述のフォールバック処理と同様の処理を文字の形状データに付加されている参照情報について行うことができる。すなわち、文字の描画処理を行った中間コードについては、その中間コードを参照している文字の形状データの参照情報を無効な値に変更したり、あるいは、その参照情報を削除する。これによって、描画処理が終了した中間コードと文字の形状データとの間の参照関係を無効にしておく。あるいは、１ページや１バンドなどの所定の単位で描画処理を行った後、一括して文字の形状データに付加されている参照情報を更新するように処理を行ってもよい。
【００６７】
以上、説明したように、本発明の第１の実施の形態では、文字の形状データと中間コードとの間に相互参照の関係を持たせておくことにより、各中間コードごとに文字の形状データを複写する場合に比べて中間コードの登録を高速に行うことができるとともに、中間コードバッファ１５を有効に利用することができる。また、中間コードから文字の形状データを参照するのみの構成に比べて、例えば追い出し処理を行う場合にも中間コードバッファ１５を探索する必要がなく、高速な追い出し処理を行うことができる。
【００６８】
次に、本発明の画像処理装置及び画像処理方法の第２の実施の形態について説明する。構成及び動作は、上述の第１の実施の形態とほぼ同じであり、図１に示す構成及び図２に示す動作の一例を適用できる。この第２の実施の形態では、文字の形状データと、その文字の形状データを参照する中間コードとの間の参照関係を示すデータ構造が異なっている。
【００６９】
図１１は、本発明の画像処理装置及び画像処理方法の第２の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。この第２の実施の形態では、フォントキャッシュバッファ１３に格納されている文字の形状データと、その文字の形状データを参照する中間コードバッファ１５内の１ないし複数の中間コードとを、文字の形状データを一端とする相互参照リスト構造として相互に接続している。
【００７０】
例えば図１１に示すように、文字「あ」の形状データと、その文字「あ」の形状データを参照する３つの中間コードが存在するとき、文字「あ」の形状データには、中間コードの１つを参照する参照情報（図１１に示す例ではアドレスａ）を対応付けておく。また、アドレスａに格納されている中間コードには、文字「あ」の形状データを参照する参照情報（アドレスＡ）を対応付けておくとともに、他の中間コードの一つを参照する参照情報（アドレスｂ）を対応付けておく。さらにアドレスｂに格納されている中間コードには、この中間コードを参照している中間コードを参照するための参照情報（アドレスａ）と、さらに別の中間コードの一つを参照する参照情報（アドレスｃ）を対応付ける。アドレスｃに格納されている中間コードも同様であり、アドレスｃの中間コードを参照するための参照情報（アドレスｂ）と、他の中間コードの一つを参照する参照情報を対応付ける。このようにして、文字「あ」の形状データを一端とし、相互に参照情報を有する中間コードがリスト構造によって結合されたデータ構造によって構成されている。
【００７１】
新たな中間コードが既存の文字を描画するものである場合には、その中間コードをリスト中に組み込めばよい。例えば図１１に示す例においては、文字「あ」の形状データと、その形状データを参照するアドレスａに格納された中間コードとの間に、新たな中間コードを挿入することができる。このとき、アドレスａに格納された中間コードにおける文字の形状データを参照する参照情報を、新たな中間コードを参照する参照情報に変更する。また、文字「あ」の形状データの参照情報は、新たな中間コードを参照する参照情報に書き換える。さらに新たな中間コードには、文字「あ」の形状データを参照する参照情報と、アドレスａに格納された中間コードを参照する参照情報（アドレスａ）を格納すればよい。もちろん、新たな中間コードを挿入する位置は、文字の形状データの直後である必要はなく、リストの最後尾など、任意の位置に挿入、接続することが可能である。
【００７２】
なお、上述の第１の実施の形態と同様に、例えばバンドごとに描画処理を行う場合に対応して、バンド境界で文字の形状データが分割されるときには、例えば図４に示したように、分割される形状データの参照位置と幅や高さなどの情報を中間コードに付加しておくとよい。また、図１１に示した例では、クリップ処理を行った文字の形状データについては中間コードバッファ１５に格納している。もちろん、クリップ処理を行った文字の形状データについてもフォントキャッシュバッファ１３に格納するように構成してもよいし、主走査方向へのクリップ時には。上述のバンド境界で分割される場合と同様に、クリップしない文字の形状データを参照するように処理を行ってもよい。
【００７３】
図１２は、本発明の画像処理装置及び画像処理方法の第２の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図１２では、図１１における状態において、文字「あ」の形状データが追い出され、中間コードバッファ１５に格納された状態を示している。
【００７４】
この第２の実施の形態では、この追い出し処理を非常に簡単に行うことができる。即ち、図１２に示すように文字「あ」の形状データを中間コードバッファ１５に格納した後、その参照関係は文字「あ」の形状データを参照している中間コード（アドレスａに格納されている中間コード）の参照情報を変更するのみでよい。文字の形状データを中間コードバッファ１５に格納する際には、フォントキャッシュバッファ１３に格納されているときと同様に、書体や文字コードなどの情報を持ったまま格納すればよい。
【００７５】
このように、追い出し処理を行った場合でも、参照情報の変更は１つの中間コードにおいて行うだけで済むので、従来のように中間コードバッファ１５を探索したり、上述の第１の実施の形態のように複数の中間コードの参照情報を変更する場合に比べて、簡単に、しかも高速に処理することができる。
【００７６】
図１３は、本発明の画像処理装置及び画像処理方法の第２の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図１３では、図１１における状態から、図１３に示す破線より上に格納されている中間コードについて、図８で説明した方法によりフォールバック処理を行った例を示している。
【００７７】
ここでは図１１に示すアドレスａとアドレスｂに格納されていた中間コードについては、描画処理を行って削除されている。この場合、削除される中間コードの前後の中間コードに対して、それぞれ対応付けられていた参照データを書き込むことで相互参照リスト構造を保持したまま、中間コードの削除を行うことができる。例えば図１１に示すアドレスａに格納されている中間コードを削除する場合には、文字「あ」の形状データを参照する参照情報で、アドレスｂに格納されている中間コードのアドレスａに格納されている中間コードを参照する参照情報を書き換える。また、アドレスｂに格納されている中間コードを参照する参照情報を、文字「あ」の形状データの参照情報として書き込む。これによって、文字「あ」の形状データはアドレスｂに格納されている中間コードを参照し、逆にアドレスｂに格納されている中間コードは文字「あ」の形状データを参照することになる。同様にしてアドレスｂに格納されている中間コードも削除されると、図１３に示すように、文字「あ」の形状データとアドレスｃに格納されている中間コードが相互に参照するようになる。
【００７８】
このように、フォールバック処理によって中間コードが削除される場合の処理も、削除する中間コードが直接参照する中間コードまたは文字の形状データの参照情報を書き換えるだけであり、簡単な処理でデータ構造を保持したまま処理を行うことができる。
【００７９】
なお、通常の描画処理の際にも、上述のフォールバック処理と同様の処理を文字の形状データに付加されている参照情報及び中間コードに付加されている参照情報について行うことができる。すなわち、文字の描画処理を行った中間コードについては、その中間コードに付加されている２つの参照情報によって参照している文字の形状データあるいは中間コードの参照情報をそれぞれ更新する。これによって、描画処理が終了した中間コードが相互参照リストからはずされて削除可能になる。あるいは、１ページや１バンドなどの所定の単位で描画処理を行った後、一括して文字の形状データ及び中間コードに付加されている参照情報を更新するように処理を行ってもよい。
【００８０】
図１４は、本発明の画像処理装置の第３の実施の形態を示すブロック図である。図中の符号は図２０と同様である。なお図１４は、本発明の画像処理方法の第３の実施の形態を実現するための構成でもある。この第３の例においても、文字データ管理部１１及び中間コード管理部１４によって管理手段を構成している。また、中間コードバッファ１５はコード情報格納手段を、フォントキャッシュバッファ１３はフォント格納手段を、文字データ生成処理部１２は文字データ生成手段をそれぞれ構成している。図１４における文字データは、上述のように文字を描画する入力データでもよいし、上述の中間コードに相当するデータでもよい。また、図１４における中間コードはコード情報に対応するものである。
【００８１】
この第３の実施の形態では、文字データ管理部１１は、文字データが入力されると、文字データが示す文字の形状データを、まず中間コードバッファ１５から探す。もし、文字データが示す文字の形状データが中間コードバッファ１５に既に格納されている場合には、その文字の形状データを参照する参照情報を含む中間コードを中間コード管理部１４に渡す。中間コードバッファ１５に文字データが示す文字の形状データが格納されていない場合には、フォントキャッシュバッファ１３を検索して文字の形状データを取得し、その文字の形状データを中間コードバッファ１５に格納させるとともに、その文字の形状データを参照する参照情報を含む中間コードを中間コードバッファ１５に格納させる。文字の形状データを中間コードバッファ１５に格納させる際には、フォントキャッシュバッファ１３に格納されているときと同様に、文字の形状データに書体や文字コードなどの情報を持たせたまま、中間コードバッファ１５に格納させるとよい。これにより中間コードバッファ１５内の文字の形状データを探す際に容易に行うことができるようになる。
【００８２】
また、フォントキャッシュバッファ１５に文字データが示す文字の形状データが格納されていない場合には、文字データ生成処理部１２で新たに文字の形状データを生成し、フォントキャッシュバッファ１５に格納するとともに、中間コードバッファ１５に格納させ、中間コードバッファ１５に格納した文字の形状データを参照する参照情報を含む中間コードを中間コードバッファ１５に格納させる。文字の形状データ及び中間コードを中間コードバッファ１５に格納する際には、中間コード管理部１４を介して行うことができる。なお、文字データ管理部１１はフォントキャッシュバッファ１３の管理も行うが、管理手法は任意であり、周知の種々の手法を用いることができる。
【００８３】
中間コード管理部１４は、文字データ管理部１１から渡される中間コードや他の処理部から渡される中間コードを中間コードバッファ１５に格納する。また、文字データ管理部１１から渡される文字の形状データについても中間コードバッファ１５に格納する。中間コード管理部１４は中間コードバッファ１５を管理し、中間コードバッファ１５に空き領域がなくなると、上述したようなフォールバック処理を行って中間コードバッファ１５内に空き領域を生成する。例えば１ページ分などの単位で中間コードが中間コードバッファ１５に格納されると、中間コードを参照して描画処理を行い、画像を出力する。
【００８４】
なお、上述の説明では文字データ管理部１１が中間コードバッファ１５内に存在する文字の形状データを探索するものとして説明したが、これに限らない。例えば文字データ管理部１１は文字の形状データを中間コード管理部１４に渡し、中間コード管理部１４において、渡された文字の形状データが中間コードバッファ１５に格納されている場合には、既に格納されている文字の形状データを参照する参照情報を文字の形状情報に代えて中間コードバッファ１５に格納するように構成してもよい。
【００８５】
このように、この第３の実施の形態では、文字の形状データを中間コードバッファ１５に配置するとともに、重複して中間コードバッファ１５に格納せずに、各中間コードには文字の形状データを参照する参照情報を付加している。これによって、中間コードバッファ１５の消費量を減少させ、有効に利用することができるようになる。
【００８６】
図１５は、本発明の画像処理装置の第３の実施の形態における動作の一例を示すフローチャートである。なお図１５は、本発明の画像処理方法の第３の実施の形態も示している。文字データが文字データ管理部１１に入力されると、Ｓ１４１において、文字データが示す文字の形状データを中間コードバッファ１５から探す。このとき、文字の形状データに書体や文字コードなどの情報が付加されていれば、容易に探すことができる。見つかればＳ１５０に進み、中間コード管理部１４を介して中間コードとともに、見つかった文字の形状データを参照するための参照情報を中間コードバッファ１５へ書き込む。
【００８７】
入力された文字データが示す文字の形状データが中間コードバッファ１５に存在しない場合には、Ｓ１４２において、その文字の形状データをフォントキャッシュバッファ１３から探す。フォントキャッシュバッファ１３に存在する場合には、Ｓ１４７に進み、文字の形状データを中間コードバッファ１５に格納するための処理を行う。
【００８８】
入力された文字データが示す文字の形状データがフォントキャッシュバッファ１３及び中間コードバッファ１５に存在しない場合には、Ｓ１４３において、文字データが示す文字の形状データを文字データ生成処理部１２で生成する。Ｓ１４４において、新たに生成した文字の形状データがフォントキャッシュバッファ１３に登録可能か否かを調べる。フォントキャッシュバッファ１３に空きがなく、新たに生成した文字の形状データがフォントキャッシュバッファ１３に登録できない場合には、Ｓ１４５において、所定の手法によってフォントキャッシュバッファ１３内の優先度の低い文字の形状データを選択して削除する追い出し処理を行う。そしてＳ１４４に戻って、フォントキャッシュバッファ１３の空きの判定を行う。Ｓ１４５の追い出し処理を１ないし複数回繰り返すことによって、Ｓ１４３で新たに生成した文字の形状データを格納できるだけの空き領域を設ける。フォントキャッシュバッファ１３に新たに生成した文字の形状データが登録可能な空きがあり、あるいは追い出しにより空きができると、Ｓ１４６において、新たに生成した文字の形状データをフォントキャッシュバッファ１３に登録する。
【００８９】
次に文字の形状データを中間コードバッファ１５に格納するが、その前にＳ１４７において、文字の形状データを中間コードバッファ１５に格納可能か否かを判定する。もし、中間コードバッファ１５へ文字の形状データを格納するだけの空き領域がない場合には、Ｓ１４８において、中間コードバッファ１５に空き領域を生成するフォールバック処理を行う。このフォールバック処理は、上述の第１の実施の形態における説明と同様である。
【００９０】
中間コードバッファ１５に空きが存在する場合、あるいはＳ１４８におけるフォールバック処理で空き領域を確保した後、Ｓ１４９において、フォントキャッシュバッファ１３に格納されていた文字の形状データ、あるいは新たに生成した文字の形状データを、中間コードバッファ１５へ格納する。文字の形状データを中間コードバッファ１５へ格納する際には、フォントキャッシュバッファ１３に格納されているときと同様に、書体や文字コードなどの情報も付加しておくとよい。そしてＳ１５０において、中間コードバッファ１５に格納した文字の形状データを参照する参照情報を含む中間コードを、中間コードバッファ１５に格納する。これによって、１つの文字データに対する処理を終了する。
【００９１】
このようにして、入力された文字データが示す文字の形状データと、その文字の形状データを参照する参照情報を含む中間コードが中間コードバッファ１５に格納される。このとき、同じ文字については中間コードバッファ１５内に１つしか形状データが格納されず、その文字の形状データを用いる中間コードには、その文字の形状データを参照する参照情報が対応付けられる。そのため、従来のように中間コードバッファ１５内に同じ文字の形状データが多数配置されるようなことはなく、中間コードバッファ１５を効率よく利用することができる。
【００９２】
なお、上述のフローチャートでは示していないが、文字の形状データを中間コードバッファ１５に格納するときだけでなく、中間コードバッファ１５にデータを書き込む際に中間コードバッファ１５に空きがない場合についても、Ｓ１４８で行うフォールバック処理を実行して、中間コードバッファ１５の空き容量を増加させる。
【００９３】
図１６は、本発明の画像処理装置及び画像処理方法の第３の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。上述のように、この第３の実施の形態では、文字の形状データをフォントキャッシュバッファ１３とは別に中間コードバッファ１５内に格納する。このとき中間コードバッファ１５に格納する文字の形状データは、フォントキャッシュバッファ１３に格納されているときと同様に、書体や文字コードなどの情報を持たせておく。そして、その文字の形状データを用いて描画を行う中間コードには、中間コードバッファ１５内の文字の形状データを参照する参照情報が付加されている。これによって、図１６に示すように、例えば文字「あ」を描画する中間コードには、中間コードバッファ１５内の文字「あ」の形状データを参照する参照情報が付加され、各中間コードが文字の形状データの実体を持たずに、形状データを参照可能に構成している。
【００９４】
このようなデータ構造を採用することによって、フォントキャッシュバッファ１３と中間コードバッファ１５の管理を独立させることができる。そのため、フォントキャッシュバッファ１３の管理手法には影響せずに、中間コードバッファ１５のデータ量の低減を図り、中間コードバッファ１５の有効利用を図ることができる。
【００９５】
なお、例えばバンドごとに描画処理を行う場合に対応して、バンド境界で文字の形状データが分割されるときには、例えば図４に示したように幅や高さなどの情報を中間コードに付加し、文字の形状データについて分割される位置を参照位置として保持させておくとよい。また、図１６に示した例では、クリップ処理を行った文字の形状データについては中間コードにクリップ処理後の文字の形状データを付加している。もちろん、クリップ処理を行った文字の形状データについても、上述のように文字の形状データと中間コードとを別に中間コードバッファ１５に格納し、中間コードに文字の形状データを参照する参照情報を付加するように構成してもよい。また、主走査方向へのクリップ時には。上述のバンド境界で分割される場合と同様に、クリップしない文字の形状データを参照するように処理を行ってもよい。
【００９６】
図１７は、本発明の画像処理装置及び画像処理方法の第３の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。上述のように、この第３の実施の形態ではフォントキャッシュバッファ１３と中間コードバッファ１５の管理を独立させることができる。そのため、フォントキャッシュバッファ１３に空きがなくなり、追い出し処理を行う場合には、従来から行われている手法によって優先度の低い文字の形状データを削除してゆき、空いた領域に新たに生成した文字の形状データを登録すればよい。中間コードバッファ１５については、追い出し処理においては何ら処理を施す必要はない。そのため、上述の２つの実施の形態に比べて追い出し処理を簡単にしかも高速に実行することができる。
【００９７】
図１８は、本発明の画像処理装置及び画像処理方法の第３の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図１８では、図１６に示した状態において中間コードバッファ１５に空きがなくなり、図１８の中間コードバッファ１５において上から破線で示した部分までの中間コードについて図８に示した方法によってフォールバック処理を行った例を示している。即ち、図１８中の中間コードバッファ１５の上から破線で示した部分までの中間コードに従って描画処理を行い、中間的な描画画像を生成する。そして描画画像を圧縮し、図１８の下部に示す圧縮画像を得る。また、その描画画像あるいは圧縮画像を参照する参照情報を含む中間コードが中間コードバッファ１５に格納される。
【００９８】
このフォールバック処理において、描画処理を行った中間コードについては削除する。このとき、文字の形状データについてはフォールバック処理の対象領域に存在していても削除しない。そのため、描画処理を行わない領域に存在している中間コードが文字の形状データを参照していても、その参照関係は失われない。文字の形状データは、例えば１ページなどの単位で描画処理を行い、中間コードバッファ１５をすべて解放する際に、文字の形状データの領域も解放されて利用できなくなる。
【００９９】
以上、説明したように、本発明の第３の実施の形態では、文字の形状データを中間コードバッファ１５に格納するとともに、中間コードには文字の形状データを参照するための参照情報を対応付けておく。これによって、各中間コードに文字の形状データを持たせる場合に比べて中間コード量が減少し、中間コードバッファ１５を有効に利用することができる。
【０１００】
上述した本発明の第１ないし第３の実施の形態は、例えば画像形成装置に適用することができる。図１９に示したような画像形成装置に適用する場合には、文字データ処理部２及び中間コード処理部５として、本発明の画像処理装置を組み込み、あるいは本発明の画像処理方法を適用すればよい。これによって、中間コードを格納するメモリを有効に利用することができるとともに、文字を描画する入力データを高速に処理することができる。そのため、画像形成装置全体としての処理を高速化することが可能である。
【０１０１】
【発明の効果】
以上の説明から明らかなように、本発明によれば、文字の形状データをコード情報とは別に格納し、コード情報には文字の形状データを参照する参照情報を付加することによって、コード情報格納手段におけるデータ量を減少させ、コード情報格納手段を有効に利用することができる。また、文字の形状データとそれぞれのコード情報とを相互に参照可能なように、両者にそれぞれの参照情報を持たせることができる。これによって、例えば文字の形状データをフォント格納手段からコード情報格納手段に移し替える追い出し処理の場合や、コード情報格納手段の空き領域を増加させるフォールバック処理を行う場合でも、文字の形状データを参照しているコード情報の参照情報を簡単に、しかも高速に書き換えることができる。さらに、文字の形状データとその文字の形状データを参照するコード情報を相互参照リスト構造で構成することによって、例えば追い出し処理やフォールバック処理をさらに高速化することが可能である。本発明によれば、このような効果を奏するとともに、詳細に上述したように様々な効果を有している。
【図面の簡単な説明】
【図１】  本発明の画像処理装置の第１の実施の形態を示すブロック図である。
【図２】  本発明の画像処理装置の第１の実施の形態における動作の一例を示すフローチャートである。
【図３】  本発明の画像処理装置及び画像処理方法の第１の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図４】  文字の形状がバンド境界にまたがる場合に中間コードが保持するデータの一例の説明図である。
【図５】  クリップ処理の一例の説明図である。
【図６】  本発明の画像処理装置及び画像処理方法の第１の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図７】  フォールバック処理の第１の例の説明図である。
【図８】  フォールバック処理の第２の例の説明図である。
【図９】  本発明の画像処理装置及び画像処理方法におけるフォールバック処理の一例を示すフローチャートである。
【図１０】  本発明の画像処理装置及び画像処理方法の第１の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１１】  本発明の画像処理装置及び画像処理方法の第２の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１２】  本発明の画像処理装置及び画像処理方法の第２の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１３】  本発明の画像処理装置及び画像処理方法の第２の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１４】  本発明の画像処理装置の第３の実施の形態を示すブロック図である。
【図１５】  本発明の画像処理装置の第３の実施の形態における動作の一例を示すフローチャートである。
【図１６】  本発明の画像処理装置及び画像処理方法の第３の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１７】  本発明の画像処理装置及び画像処理方法の第３の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１８】  本発明の画像処理装置及び画像処理方法の第３の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図１９】  一般的な画像形成装置の一例を示すブロック図である。
【図２０】  文字データ処理部及び中間コード処理部の一例を示すブロック図である。
【図２１】  従来の文字データの処理手順の一例を示すフローチャートである。
【図２２】  従来の文字データの処理手順の一例を実行した場合のフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【図２３】  従来の文字データの処理方法の別の例におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【図２４】  従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きがない場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【図２５】  従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きができた場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【符号の説明】
１…入力データ解釈部、２…文字データ処理部、３…グラフィックスデータ処理部、４…イメージデータ処理部、５…中間コード処理部、６…バンドバッファ、７…出力部、１１…文字データ管理部、１２…文字データ生成処理部、１３…フォントキャッシュバッファ、１４…中間コード管理部、１５…中間コードバッファ。
【図１】
0004344898.tif 000002
【図２】
0004344898.tif 000003
【図３】
0004344898.tif 000004
【図４】
0004344898.tif 000005
【図５】
0004344898.tif 000006
【図６】
0004344898.tif 000007
【図７】
0004344898.tif 000008
【図８】
0004344898.tif 000009
【図９】
0004344898.tif 000010
【図１０】
0004344898.tif 000011
【図１１】
0004344898.tif 000012
【図１２】
0004344898.tif 000013
【図１３】
0004344898.tif 000014
【図１４】
0004344898.tif 000015
【図１５】
0004344898.tif 000016
【図１６】
0004344898.tif 000017
【図１７】
0004344898.tif 000018
【図１８】
0004344898.tif 000019
【図１９】
0004344898.tif 000020
【図２０】
0004344898.tif 000021
【図２１】
0004344898.tif 000022
【図２２】
0004344898.tif 000023
【図２３】
0004344898.tif 000024
【図２４】
0004344898.tif 000025
【図２５】
0004344898.tif 000026